From ea5a17fac228473546be36ae788eb3b528cd6afc Mon Sep 17 00:00:00 2001 From: luochao <1055120207@qq.com> Date: Mon, 22 Apr 2024 10:27:30 +0800 Subject: [PATCH] feat: init --- .github/workflows/ci.yaml | 37 + .gitignore | 2 + LICENSE | 21 + Makefile | 20 + README.md | 91 +++ _examples/echo/go.mod | 24 + _examples/echo/go.sum | 37 + _examples/echo/main.go | 23 + _examples/echo/openapi.json | 1 + _examples/fiber/go.mod | 27 + _examples/fiber/go.sum | 37 + _examples/fiber/main.go | 23 + _examples/fiber/openapi.json | 1 + _examples/gen/Makefile | 5 + _examples/gen/docs/docs.go | 37 + _examples/gen/docs/swagger.json | 12 + _examples/gen/docs/swagger.yaml | 9 + _examples/gen/go.mod | 41 + _examples/gen/go.sum | 97 +++ _examples/gen/main.go | 33 + _examples/gin/go.mod | 39 + _examples/gin/go.sum | 78 ++ _examples/gin/main.go | 23 + _examples/gin/openapi.json | 1 + _examples/gorilla/go.mod | 10 + _examples/gorilla/go.sum | 10 + _examples/gorilla/main.go | 23 + _examples/gorilla/openapi.json | 1 + _examples/http/go.mod | 7 + _examples/http/go.sum | 8 + _examples/http/main.go | 20 + _examples/http/openapi.json | 1 + assets/index.html | 19 + assets/openapi-ui.umd.js | 1333 +++++++++++++++++++++++++++++++ doc.go | 106 +++ doc_test.go | 62 ++ echo/echo.go | 22 + echo/go.mod | 22 + echo/go.sum | 31 + fiber/fiber.go | 11 + fiber/go.mod | 25 + fiber/go.sum | 37 + gin/gin.go | 15 + gin/go.mod | 38 + gin/go.sum | 87 ++ go.mod | 11 + go.sum | 5 + test-data/spec.json | 1 + 48 files changed, 2624 insertions(+) create mode 100644 .github/workflows/ci.yaml create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 README.md create mode 100644 _examples/echo/go.mod create mode 100644 _examples/echo/go.sum create mode 100644 _examples/echo/main.go create mode 100644 _examples/echo/openapi.json create mode 100644 _examples/fiber/go.mod create mode 100644 _examples/fiber/go.sum create mode 100644 _examples/fiber/main.go create mode 100644 _examples/fiber/openapi.json create mode 100644 _examples/gen/Makefile create mode 100644 _examples/gen/docs/docs.go create mode 100644 _examples/gen/docs/swagger.json create mode 100644 _examples/gen/docs/swagger.yaml create mode 100644 _examples/gen/go.mod create mode 100644 _examples/gen/go.sum create mode 100644 _examples/gen/main.go create mode 100644 _examples/gin/go.mod create mode 100644 _examples/gin/go.sum create mode 100644 _examples/gin/main.go create mode 100644 _examples/gin/openapi.json create mode 100644 _examples/gorilla/go.mod create mode 100644 _examples/gorilla/go.sum create mode 100644 _examples/gorilla/main.go create mode 100644 _examples/gorilla/openapi.json create mode 100644 _examples/http/go.mod create mode 100644 _examples/http/go.sum create mode 100644 _examples/http/main.go create mode 100644 _examples/http/openapi.json create mode 100644 assets/index.html create mode 100644 assets/openapi-ui.umd.js create mode 100644 doc.go create mode 100644 doc_test.go create mode 100644 echo/echo.go create mode 100644 echo/go.mod create mode 100644 echo/go.sum create mode 100644 fiber/fiber.go create mode 100644 fiber/go.mod create mode 100644 fiber/go.sum create mode 100644 gin/gin.go create mode 100644 gin/go.mod create mode 100644 gin/go.sum create mode 100644 go.mod create mode 100644 go.sum create mode 100644 test-data/spec.json diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..8493b16 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,37 @@ +name: CI +on: + push: + branches: + - main + pull_request: + branches: + - main +permissions: + contents: read +jobs: + lint: + strategy: + matrix: + go: ['1.17','1.21'] + os: ['ubuntu-latest'] + name: lint + runs-on: ${{ matrix.os }} + steps: + - uses: actions/setup-go@v3 + with: + go-version: ${{ matrix.go }} + - uses: actions/checkout@v3 + - uses: golangci/golangci-lint-action@v3 + test: + strategy: + matrix: + go: ['1.17','1.21'] + os: ['ubuntu-latest'] + name: test + runs-on: ${{ matrix.os }} + steps: + - uses: actions/setup-go@v3 + with: + go-version: ${{ matrix.go }} + - uses: actions/checkout@v3 + - run: go test -race ./... diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1f1025f --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea +.DS_Store \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..ef0aaa9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 rookie-luochao + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3667271 --- /dev/null +++ b/Makefile @@ -0,0 +1,20 @@ +.PHONY: all lint test deps + +DOC_PATH=assets/openapi-ui.umd.js +DOC_URL=https://cdn.jsdelivr.net/npm/openapi-ui-dist@latest/lib/openapi-ui.umd.js + +all: $(DOC_PATH) lint test + +lint: + go fmt ./... + go vet ./... + golangci-lint run ./... + +test: + go test -race ./... + +deps: + go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest + +$(DOC_PATH): + curl -sL -o $(DOC_PATH) $(DOC_URL) diff --git a/README.md b/README.md new file mode 100644 index 0000000..a8f46ca --- /dev/null +++ b/README.md @@ -0,0 +1,91 @@ +# go-openapi-ui + +`go-openapi-ui` is an embedded OpenAPI documentation ui for Go using [OpenAPI-UI](https://github.com/rookie-luochao/openapi-ui) and Go's [1.17+'s embed package](https://golang.org/pkg/embed/), with middleware implementations for: `net/http`, `gin`, `fiber`, and `echo`. + +The template is based on the OpenAPI-UI [bundle.js](https://github.com/rookie-luochao/openapi-ui/blob/master/lib/openapi-ui.umd.js) with the script already placed in the html instead of depending on a CDN. + +This package does not generate openapi spec file. Check [this example](_examples/gen) for using code generation with swag. + +## Usage + +```go +import "github.com/rookie-luochao/go-openapi-ui" + +... + +doc := doc.Doc{ + Title: "Example API", + Description: "Example API Description", + SpecFile: "./openapi.json", // "./openapi.yaml" + SpecPath: "/openapi.json", // "/openapi.yaml" + DocsPath: "/docs", +} +``` + +- `net/http` + +```go +import ( + "net/http" + "github.com/rookie-luochao/go-openapi-ui" +) + +... + +http.ListenAndServe(address, doc.Handler()) +``` + +- `gin` + +```go +import ( + "github.com/gin-gonic/gin" + "github.com/rookie-luochao/go-openapi-ui" + ginopenapiui "github.com/rookie-luochao/go-openapi-ui/gin" +) + +... + +r := gin.New() +r.Use(ginopenapiui.New(doc)) +``` + +- `echo` + +```go +import ( + "github.com/labstack/echo/v4" + "github.com/rookie-luochao/go-openapi-ui" + echoopenapiui "github.com/rookie-luochao/go-openapi-ui/echo" +) + +... + +r := echo.New() +r.Use(echoopenapiui.New(doc)) +``` + +- `fiber` + +```go +import ( + "github.com/gofiber/fiber/v2" + "github.com/rookie-luochao/go-openapi-ui" + fiberopenapiui "github.com/rookie-luochao/go-openapi-ui/fiber" +) + +... + +r := fiber.New() +r.Use(fiberopenapiui.New(doc)) +``` + +See [examples](/_examples) + +## 致谢 + +- [go-redoc](https://github.com/mvrilo/go-redoc) + +## LICENSE + +[MIT](LICENSE) diff --git a/_examples/echo/go.mod b/_examples/echo/go.mod new file mode 100644 index 0000000..4003658 --- /dev/null +++ b/_examples/echo/go.mod @@ -0,0 +1,24 @@ +module github.com/rookie-luochao/go-openapi-ui/_examples/echo + +go 1.21.6 + +replace github.com/rookie-luochao/go-openapi-ui => ../../ +replace github.com/rookie-luochao/go-openapi-ui/echo => ../../echo + +require ( + github.com/labstack/echo/v4 v4.11.4 + github.com/rookie-luochao/go-openapi-ui v0.0.0 + github.com/rookie-luochao/go-openapi-ui/echo v0.0.0 +) + +require ( + github.com/labstack/gommon v0.4.2 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/valyala/bytebufferpool v1.0.0 // indirect + github.com/valyala/fasttemplate v1.2.2 // indirect + golang.org/x/crypto v0.22.0 // indirect + golang.org/x/net v0.21.0 // indirect + golang.org/x/sys v0.19.0 // indirect + golang.org/x/text v0.14.0 // indirect +) diff --git a/_examples/echo/go.sum b/_examples/echo/go.sum new file mode 100644 index 0000000..533136e --- /dev/null +++ b/_examples/echo/go.sum @@ -0,0 +1,37 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/labstack/echo/v4 v4.11.4 h1:vDZmA+qNeh1pd/cCkEicDMrjtrnMGQ1QFI9gWN1zGq8= +github.com/labstack/echo/v4 v4.11.4/go.mod h1:noh7EvLwqDsmh/X/HWKPUl1AjzJrhyptRyEbQJfxen8= +github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= +github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= +github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= +golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/_examples/echo/main.go b/_examples/echo/main.go new file mode 100644 index 0000000..853072c --- /dev/null +++ b/_examples/echo/main.go @@ -0,0 +1,23 @@ +package main + +import ( + "github.com/labstack/echo/v4" + "github.com/rookie-luochao/go-openapi-ui" + echoredoc "github.com/rookie-luochao/go-openapi-ui/echo" +) + +func main() { + doc := doc.Doc{ + Title: "Example API", + Description: "Example API Description", + SpecFile: "./openapi.json", + SpecPath: "/openapi.json", + DocsPath: "/docs", + } + + r := echo.New() + r.Use(echoredoc.New(doc)) + + println("Documentation served at http://127.0.0.1:8000/docs") + panic(r.Start(":8000")) +} diff --git a/_examples/echo/openapi.json b/_examples/echo/openapi.json new file mode 100644 index 0000000..0165f3c --- /dev/null +++ b/_examples/echo/openapi.json @@ -0,0 +1 @@ +{"openapi":"3.0.2","info":{"title":"Swagger Petstore - OpenAPI 3.0","description":"This is a sample Pet Store Server based on the OpenAPI 3.0 specification. You can find out more about\nSwagger at [http://swagger.io](http://swagger.io). In the third iteration of the pet store, we've switched to the design first approach!\nYou can now help us improve the API whether it's by making changes to the definition itself or to the code.\nThat way, with time, we can improve the API in general, and expose some of the new features in OAS3.\n\nSome useful links:\n- [The Pet Store repository](https://github.com/swagger-api/swagger-petstore)\n- [The source API definition for the Pet Store](https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml)","termsOfService":"http://swagger.io/terms/","contact":{"email":"apiteam@swagger.io"},"license":{"name":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"},"version":"1.0.5"},"externalDocs":{"description":"Find out more about Swagger","url":"http://swagger.io"},"servers":[{"url":"/api/v3"}],"tags":[{"name":"pet","description":"Everything about your Pets","externalDocs":{"description":"Find out more","url":"http://swagger.io"}},{"name":"store","description":"Operations about user"},{"name":"user","description":"Access to Petstore orders","externalDocs":{"description":"Find out more about our store","url":"http://swagger.io"}}],"paths":{"/pet":{"put":{"tags":["pet"],"summary":"Update an existing pet","description":"Update an existing pet by Id","operationId":"updatePet","requestBody":{"description":"Update an existent pet in the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Pet"}}},"required":true},"responses":{"200":{"description":"Successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Pet not found"},"405":{"description":"Validation exception"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]},"post":{"tags":["pet"],"summary":"Add a new pet to the store","description":"Add a new pet to the store","operationId":"addPet","requestBody":{"description":"Create a new pet in the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Pet"}}},"required":true},"responses":{"200":{"description":"Successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"405":{"description":"Invalid input"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/findByStatus":{"get":{"tags":["pet"],"summary":"Finds Pets by status","description":"Multiple status values can be provided with comma separated strings","operationId":"findPetsByStatus","parameters":[{"name":"status","in":"query","description":"Status values that need to be considered for filter","required":false,"explode":true,"schema":{"type":"string","default":"available","enum":["available","pending","sold"]}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}}}},"400":{"description":"Invalid status value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/findByTags":{"get":{"tags":["pet"],"summary":"Finds Pets by tags","description":"Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.","operationId":"findPetsByTags","parameters":[{"name":"tags","in":"query","description":"Tags to filter by","required":false,"explode":true,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}}}},"400":{"description":"Invalid tag value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/{petId}":{"get":{"tags":["pet"],"summary":"Find pet by ID","description":"Returns a single pet","operationId":"getPetById","parameters":[{"name":"petId","in":"path","description":"ID of pet to return","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Pet not found"}},"security":[{"api_key":[]},{"petstore_auth":["write:pets","read:pets"]}]},"post":{"tags":["pet"],"summary":"Updates a pet in the store with form data","description":"","operationId":"updatePetWithForm","parameters":[{"name":"petId","in":"path","description":"ID of pet that needs to be updated","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"name","in":"query","description":"Name of pet that needs to be updated","schema":{"type":"string"}},{"name":"status","in":"query","description":"Status of pet that needs to be updated","schema":{"type":"string"}}],"responses":{"405":{"description":"Invalid input"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]},"delete":{"tags":["pet"],"summary":"Deletes a pet","description":"","operationId":"deletePet","parameters":[{"name":"api_key","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"petId","in":"path","description":"Pet id to delete","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"400":{"description":"Invalid pet value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/{petId}/uploadImage":{"post":{"tags":["pet"],"summary":"uploads an image","description":"","operationId":"uploadFile","parameters":[{"name":"petId","in":"path","description":"ID of pet to update","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"additionalMetadata","in":"query","description":"Additional Metadata","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/store/inventory":{"get":{"tags":["store"],"summary":"Returns pet inventories by status","description":"Returns a map of status codes to quantities","operationId":"getInventory","responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}}}}},"security":[{"api_key":[]}]}},"/store/order":{"post":{"tags":["store"],"summary":"Place an order for a pet","description":"Place a new order in the store","operationId":"placeOrder","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Order"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Order"}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"405":{"description":"Invalid input"}}}},"/store/order/{orderId}":{"get":{"tags":["store"],"summary":"Find purchase order by ID","description":"For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions","operationId":"getOrderById","parameters":[{"name":"orderId","in":"path","description":"ID of order that needs to be fetched","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Order"}},"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Order not found"}}},"delete":{"tags":["store"],"summary":"Delete purchase order by ID","description":"For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors","operationId":"deleteOrder","parameters":[{"name":"orderId","in":"path","description":"ID of the order that needs to be deleted","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"400":{"description":"Invalid ID supplied"},"404":{"description":"Order not found"}}}},"/user":{"post":{"tags":["user"],"summary":"Create user","description":"This can only be done by the logged in user.","operationId":"createUser","requestBody":{"description":"Created user object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}},"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/User"}}}},"responses":{"default":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}},"application/xml":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/user/createWithList":{"post":{"tags":["user"],"summary":"Creates list of users with given input array","description":"Creates list of users with given input array","operationId":"createUsersWithListInput","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}}},"responses":{"200":{"description":"Successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"default":{"description":"successful operation"}}}},"/user/login":{"get":{"tags":["user"],"summary":"Logs user into the system","description":"","operationId":"loginUser","parameters":[{"name":"username","in":"query","description":"The user name for login","required":false,"schema":{"type":"string"}},{"name":"password","in":"query","description":"The password for login in clear text","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","headers":{"X-Rate-Limit":{"description":"calls per hour allowed by the user","schema":{"type":"integer","format":"int32"}},"X-Expires-After":{"description":"date in UTC when toekn expires","schema":{"type":"string","format":"date-time"}}},"content":{"application/xml":{"schema":{"type":"string"}},"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid username/password supplied"}}}},"/user/logout":{"get":{"tags":["user"],"summary":"Logs out current logged in user session","description":"","operationId":"logoutUser","parameters":[],"responses":{"default":{"description":"successful operation"}}}},"/user/{username}":{"get":{"tags":["user"],"summary":"Get user by user name","description":"","operationId":"getUserByName","parameters":[{"name":"username","in":"path","description":"The name that needs to be fetched. Use user1 for testing. ","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"400":{"description":"Invalid username supplied"},"404":{"description":"User not found"}}},"put":{"tags":["user"],"summary":"Update user","description":"This can only be done by the logged in user.","operationId":"updateUser","parameters":[{"name":"username","in":"path","description":"name that need to be deleted","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Update an existent user in the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}},"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/User"}}}},"responses":{"default":{"description":"successful operation"}}},"delete":{"tags":["user"],"summary":"Delete user","description":"This can only be done by the logged in user.","operationId":"deleteUser","parameters":[{"name":"username","in":"path","description":"The name that needs to be deleted","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Invalid username supplied"},"404":{"description":"User not found"}}}}},"components":{"schemas":{"Order":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":10},"petId":{"type":"integer","format":"int64","example":198772},"quantity":{"type":"integer","format":"int32","example":7},"shipDate":{"type":"string","format":"date-time"},"status":{"type":"string","description":"Order Status","example":"approved","enum":["placed","approved","delivered"]},"complete":{"type":"boolean"}},"xml":{"name":"order"}},"Customer":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":100000},"username":{"type":"string","example":"fehguy"},"address":{"type":"array","xml":{"name":"addresses","wrapped":true},"items":{"$ref":"#/components/schemas/Address"}}},"xml":{"name":"customer"}},"Address":{"type":"object","properties":{"street":{"type":"string","example":"437 Lytton"},"city":{"type":"string","example":"Palo Alto"},"state":{"type":"string","example":"CA"},"zip":{"type":"string","example":"94301"}},"xml":{"name":"address"}},"Category":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":1},"name":{"type":"string","example":"Dogs"}},"xml":{"name":"category"}},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":10},"username":{"type":"string","example":"theUser"},"firstName":{"type":"string","example":"John"},"lastName":{"type":"string","example":"James"},"email":{"type":"string","example":"john@email.com"},"password":{"type":"string","example":"12345"},"phone":{"type":"string","example":"12345"},"userStatus":{"type":"integer","description":"User Status","format":"int32","example":1}},"xml":{"name":"user"}},"Tag":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}},"xml":{"name":"tag"}},"Pet":{"required":["name","photoUrls"],"type":"object","properties":{"id":{"type":"integer","format":"int64","example":10},"name":{"type":"string","example":"doggie"},"category":{"$ref":"#/components/schemas/Category"},"photoUrls":{"type":"array","xml":{"wrapped":true},"items":{"type":"string","xml":{"name":"photoUrl"}}},"tags":{"type":"array","xml":{"wrapped":true},"items":{"$ref":"#/components/schemas/Tag"}},"status":{"type":"string","description":"pet status in the store","enum":["available","pending","sold"]}},"xml":{"name":"pet"}},"ApiResponse":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"type":{"type":"string"},"message":{"type":"string"}},"xml":{"name":"##default"}}},"requestBodies":{"Pet":{"description":"Pet object that needs to be added to the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"UserArray":{"description":"List of user object","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}}}},"securitySchemes":{"petstore_auth":{"type":"oauth2","flows":{"implicit":{"authorizationUrl":"https://petstore3.swagger.io/oauth/authorize","scopes":{"write:pets":"modify pets in your account","read:pets":"read your pets"}}}},"api_key":{"type":"apiKey","name":"api_key","in":"header"}}}} \ No newline at end of file diff --git a/_examples/fiber/go.mod b/_examples/fiber/go.mod new file mode 100644 index 0000000..f756331 --- /dev/null +++ b/_examples/fiber/go.mod @@ -0,0 +1,27 @@ +module github.com/rookie-luochao/go-openapi-ui/_examples/fiber + +go 1.21.6 + +replace github.com/rookie-luochao/go-openapi-ui => ../../ +replace github.com/rookie-luochao/go-openapi-ui/fiber => ../../fiber + +require ( + github.com/gofiber/fiber/v2 v2.52.0 + github.com/rookie-luochao/go-openapi-ui v0.0.0 + github.com/rookie-luochao/go-openapi-ui/fiber v0.0.0 +) + +require ( + github.com/andybalholm/brotli v1.0.5 // indirect + github.com/gofiber/adaptor/v2 v2.2.1 // indirect + github.com/google/uuid v1.5.0 // indirect + github.com/klauspost/compress v1.17.0 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect + github.com/rivo/uniseg v0.2.0 // indirect + github.com/valyala/bytebufferpool v1.0.0 // indirect + github.com/valyala/fasthttp v1.51.0 // indirect + github.com/valyala/tcplisten v1.0.0 // indirect + golang.org/x/sys v0.15.0 // indirect +) diff --git a/_examples/fiber/go.sum b/_examples/fiber/go.sum new file mode 100644 index 0000000..169851a --- /dev/null +++ b/_examples/fiber/go.sum @@ -0,0 +1,37 @@ +github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= +github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gofiber/adaptor/v2 v2.2.1 h1:givE7iViQWlsTR4Jh7tB4iXzrlKBgiraB/yTdHs9Lv4= +github.com/gofiber/adaptor/v2 v2.2.1/go.mod h1:AhR16dEqs25W2FY/l8gSj1b51Azg5dtPDmm+pruNOrc= +github.com/gofiber/fiber/v2 v2.52.0 h1:S+qXi7y+/Pgvqq4DrSmREGiFwtB7Bu6+QFLuIHYw/UE= +github.com/gofiber/fiber/v2 v2.52.0/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ= +github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= +github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA= +github.com/valyala/fasthttp v1.51.0/go.mod h1:oI2XroL+lI7vdXyYoQk03bXBThfFl2cVdIA3Xl7cH8g= +github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= +github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= \ No newline at end of file diff --git a/_examples/fiber/main.go b/_examples/fiber/main.go new file mode 100644 index 0000000..b5ce74f --- /dev/null +++ b/_examples/fiber/main.go @@ -0,0 +1,23 @@ +package main + +import ( + "github.com/gofiber/fiber/v2" + "github.com/rookie-luochao/go-openapi-ui" + fiberredoc "github.com/rookie-luochao/go-openapi-ui/fiber" +) + +func main() { + doc := doc.Doc{ + Title: "Example API", + Description: "Example API Description", + SpecFile: "./openapi.json", + SpecPath: "/openapi.json", + DocsPath: "/docs", + } + + r := fiber.New() + r.Use(fiberredoc.New(doc)) + + println("Documentation served at http://127.0.0.1:8000/docs") + panic(r.Listen(":8000")) +} diff --git a/_examples/fiber/openapi.json b/_examples/fiber/openapi.json new file mode 100644 index 0000000..0165f3c --- /dev/null +++ b/_examples/fiber/openapi.json @@ -0,0 +1 @@ +{"openapi":"3.0.2","info":{"title":"Swagger Petstore - OpenAPI 3.0","description":"This is a sample Pet Store Server based on the OpenAPI 3.0 specification. You can find out more about\nSwagger at [http://swagger.io](http://swagger.io). In the third iteration of the pet store, we've switched to the design first approach!\nYou can now help us improve the API whether it's by making changes to the definition itself or to the code.\nThat way, with time, we can improve the API in general, and expose some of the new features in OAS3.\n\nSome useful links:\n- [The Pet Store repository](https://github.com/swagger-api/swagger-petstore)\n- [The source API definition for the Pet Store](https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml)","termsOfService":"http://swagger.io/terms/","contact":{"email":"apiteam@swagger.io"},"license":{"name":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"},"version":"1.0.5"},"externalDocs":{"description":"Find out more about Swagger","url":"http://swagger.io"},"servers":[{"url":"/api/v3"}],"tags":[{"name":"pet","description":"Everything about your Pets","externalDocs":{"description":"Find out more","url":"http://swagger.io"}},{"name":"store","description":"Operations about user"},{"name":"user","description":"Access to Petstore orders","externalDocs":{"description":"Find out more about our store","url":"http://swagger.io"}}],"paths":{"/pet":{"put":{"tags":["pet"],"summary":"Update an existing pet","description":"Update an existing pet by Id","operationId":"updatePet","requestBody":{"description":"Update an existent pet in the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Pet"}}},"required":true},"responses":{"200":{"description":"Successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Pet not found"},"405":{"description":"Validation exception"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]},"post":{"tags":["pet"],"summary":"Add a new pet to the store","description":"Add a new pet to the store","operationId":"addPet","requestBody":{"description":"Create a new pet in the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Pet"}}},"required":true},"responses":{"200":{"description":"Successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"405":{"description":"Invalid input"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/findByStatus":{"get":{"tags":["pet"],"summary":"Finds Pets by status","description":"Multiple status values can be provided with comma separated strings","operationId":"findPetsByStatus","parameters":[{"name":"status","in":"query","description":"Status values that need to be considered for filter","required":false,"explode":true,"schema":{"type":"string","default":"available","enum":["available","pending","sold"]}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}}}},"400":{"description":"Invalid status value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/findByTags":{"get":{"tags":["pet"],"summary":"Finds Pets by tags","description":"Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.","operationId":"findPetsByTags","parameters":[{"name":"tags","in":"query","description":"Tags to filter by","required":false,"explode":true,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}}}},"400":{"description":"Invalid tag value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/{petId}":{"get":{"tags":["pet"],"summary":"Find pet by ID","description":"Returns a single pet","operationId":"getPetById","parameters":[{"name":"petId","in":"path","description":"ID of pet to return","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Pet not found"}},"security":[{"api_key":[]},{"petstore_auth":["write:pets","read:pets"]}]},"post":{"tags":["pet"],"summary":"Updates a pet in the store with form data","description":"","operationId":"updatePetWithForm","parameters":[{"name":"petId","in":"path","description":"ID of pet that needs to be updated","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"name","in":"query","description":"Name of pet that needs to be updated","schema":{"type":"string"}},{"name":"status","in":"query","description":"Status of pet that needs to be updated","schema":{"type":"string"}}],"responses":{"405":{"description":"Invalid input"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]},"delete":{"tags":["pet"],"summary":"Deletes a pet","description":"","operationId":"deletePet","parameters":[{"name":"api_key","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"petId","in":"path","description":"Pet id to delete","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"400":{"description":"Invalid pet value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/{petId}/uploadImage":{"post":{"tags":["pet"],"summary":"uploads an image","description":"","operationId":"uploadFile","parameters":[{"name":"petId","in":"path","description":"ID of pet to update","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"additionalMetadata","in":"query","description":"Additional Metadata","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/store/inventory":{"get":{"tags":["store"],"summary":"Returns pet inventories by status","description":"Returns a map of status codes to quantities","operationId":"getInventory","responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}}}}},"security":[{"api_key":[]}]}},"/store/order":{"post":{"tags":["store"],"summary":"Place an order for a pet","description":"Place a new order in the store","operationId":"placeOrder","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Order"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Order"}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"405":{"description":"Invalid input"}}}},"/store/order/{orderId}":{"get":{"tags":["store"],"summary":"Find purchase order by ID","description":"For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions","operationId":"getOrderById","parameters":[{"name":"orderId","in":"path","description":"ID of order that needs to be fetched","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Order"}},"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Order not found"}}},"delete":{"tags":["store"],"summary":"Delete purchase order by ID","description":"For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors","operationId":"deleteOrder","parameters":[{"name":"orderId","in":"path","description":"ID of the order that needs to be deleted","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"400":{"description":"Invalid ID supplied"},"404":{"description":"Order not found"}}}},"/user":{"post":{"tags":["user"],"summary":"Create user","description":"This can only be done by the logged in user.","operationId":"createUser","requestBody":{"description":"Created user object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}},"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/User"}}}},"responses":{"default":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}},"application/xml":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/user/createWithList":{"post":{"tags":["user"],"summary":"Creates list of users with given input array","description":"Creates list of users with given input array","operationId":"createUsersWithListInput","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}}},"responses":{"200":{"description":"Successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"default":{"description":"successful operation"}}}},"/user/login":{"get":{"tags":["user"],"summary":"Logs user into the system","description":"","operationId":"loginUser","parameters":[{"name":"username","in":"query","description":"The user name for login","required":false,"schema":{"type":"string"}},{"name":"password","in":"query","description":"The password for login in clear text","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","headers":{"X-Rate-Limit":{"description":"calls per hour allowed by the user","schema":{"type":"integer","format":"int32"}},"X-Expires-After":{"description":"date in UTC when toekn expires","schema":{"type":"string","format":"date-time"}}},"content":{"application/xml":{"schema":{"type":"string"}},"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid username/password supplied"}}}},"/user/logout":{"get":{"tags":["user"],"summary":"Logs out current logged in user session","description":"","operationId":"logoutUser","parameters":[],"responses":{"default":{"description":"successful operation"}}}},"/user/{username}":{"get":{"tags":["user"],"summary":"Get user by user name","description":"","operationId":"getUserByName","parameters":[{"name":"username","in":"path","description":"The name that needs to be fetched. Use user1 for testing. ","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"400":{"description":"Invalid username supplied"},"404":{"description":"User not found"}}},"put":{"tags":["user"],"summary":"Update user","description":"This can only be done by the logged in user.","operationId":"updateUser","parameters":[{"name":"username","in":"path","description":"name that need to be deleted","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Update an existent user in the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}},"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/User"}}}},"responses":{"default":{"description":"successful operation"}}},"delete":{"tags":["user"],"summary":"Delete user","description":"This can only be done by the logged in user.","operationId":"deleteUser","parameters":[{"name":"username","in":"path","description":"The name that needs to be deleted","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Invalid username supplied"},"404":{"description":"User not found"}}}}},"components":{"schemas":{"Order":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":10},"petId":{"type":"integer","format":"int64","example":198772},"quantity":{"type":"integer","format":"int32","example":7},"shipDate":{"type":"string","format":"date-time"},"status":{"type":"string","description":"Order Status","example":"approved","enum":["placed","approved","delivered"]},"complete":{"type":"boolean"}},"xml":{"name":"order"}},"Customer":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":100000},"username":{"type":"string","example":"fehguy"},"address":{"type":"array","xml":{"name":"addresses","wrapped":true},"items":{"$ref":"#/components/schemas/Address"}}},"xml":{"name":"customer"}},"Address":{"type":"object","properties":{"street":{"type":"string","example":"437 Lytton"},"city":{"type":"string","example":"Palo Alto"},"state":{"type":"string","example":"CA"},"zip":{"type":"string","example":"94301"}},"xml":{"name":"address"}},"Category":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":1},"name":{"type":"string","example":"Dogs"}},"xml":{"name":"category"}},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":10},"username":{"type":"string","example":"theUser"},"firstName":{"type":"string","example":"John"},"lastName":{"type":"string","example":"James"},"email":{"type":"string","example":"john@email.com"},"password":{"type":"string","example":"12345"},"phone":{"type":"string","example":"12345"},"userStatus":{"type":"integer","description":"User Status","format":"int32","example":1}},"xml":{"name":"user"}},"Tag":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}},"xml":{"name":"tag"}},"Pet":{"required":["name","photoUrls"],"type":"object","properties":{"id":{"type":"integer","format":"int64","example":10},"name":{"type":"string","example":"doggie"},"category":{"$ref":"#/components/schemas/Category"},"photoUrls":{"type":"array","xml":{"wrapped":true},"items":{"type":"string","xml":{"name":"photoUrl"}}},"tags":{"type":"array","xml":{"wrapped":true},"items":{"$ref":"#/components/schemas/Tag"}},"status":{"type":"string","description":"pet status in the store","enum":["available","pending","sold"]}},"xml":{"name":"pet"}},"ApiResponse":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"type":{"type":"string"},"message":{"type":"string"}},"xml":{"name":"##default"}}},"requestBodies":{"Pet":{"description":"Pet object that needs to be added to the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"UserArray":{"description":"List of user object","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}}}},"securitySchemes":{"petstore_auth":{"type":"oauth2","flows":{"implicit":{"authorizationUrl":"https://petstore3.swagger.io/oauth/authorize","scopes":{"write:pets":"modify pets in your account","read:pets":"read your pets"}}}},"api_key":{"type":"apiKey","name":"api_key","in":"header"}}}} \ No newline at end of file diff --git a/_examples/gen/Makefile b/_examples/gen/Makefile new file mode 100644 index 0000000..0710d66 --- /dev/null +++ b/_examples/gen/Makefile @@ -0,0 +1,5 @@ +build: generate + go build + +generate: + go generate diff --git a/_examples/gen/docs/docs.go b/_examples/gen/docs/docs.go new file mode 100644 index 0000000..1c1d724 --- /dev/null +++ b/_examples/gen/docs/docs.go @@ -0,0 +1,37 @@ +// Code generated by swaggo/swag. DO NOT EDIT. + +package docs + +import "github.com/swaggo/swag" + +const docTemplate = `{ + "schemes": {{ marshal .Schemes }}, + "swagger": "2.0", + "info": { + "description": "{{escape .Description}}", + "title": "{{.Title}}", + "contact": {}, + "version": "{{.Version}}" + }, + "host": "{{.Host}}", + "basePath": "{{.BasePath}}", + "paths": {} +}` + +// SwaggerInfo holds exported Swagger Info so clients can modify it +var SwaggerInfo = &swag.Spec{ + Version: "1.0", + Host: "localhost:8000", + BasePath: "/", + Schemes: []string{}, + Title: "Fiber Example API", + Description: "Fiber example for openapi spec generation", + InfoInstanceName: "swagger", + SwaggerTemplate: docTemplate, + LeftDelim: "{{", + RightDelim: "}}", +} + +func init() { + swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo) +} diff --git a/_examples/gen/docs/swagger.json b/_examples/gen/docs/swagger.json new file mode 100644 index 0000000..5645def --- /dev/null +++ b/_examples/gen/docs/swagger.json @@ -0,0 +1,12 @@ +{ + "swagger": "2.0", + "info": { + "description": "Fiber example for openapi spec generation", + "title": "Fiber Example API", + "contact": {}, + "version": "1.0" + }, + "host": "localhost:8000", + "basePath": "/", + "paths": {} +} \ No newline at end of file diff --git a/_examples/gen/docs/swagger.yaml b/_examples/gen/docs/swagger.yaml new file mode 100644 index 0000000..0b9fbd6 --- /dev/null +++ b/_examples/gen/docs/swagger.yaml @@ -0,0 +1,9 @@ +basePath: / +host: localhost:8000 +info: + contact: {} + description: Fiber example for openapi spec generation + title: Fiber Example API + version: "1.0" +paths: {} +swagger: "2.0" diff --git a/_examples/gen/go.mod b/_examples/gen/go.mod new file mode 100644 index 0000000..b99fb43 --- /dev/null +++ b/_examples/gen/go.mod @@ -0,0 +1,41 @@ +module github.com/rookie-luochao/go-openapi-ui/_examples/gen + +go 1.21.6 + +replace github.com/rookie-luochao/go-openapi-ui => ../../ +replace github.com/rookie-luochao/go-openapi-ui/fiber => ../../fiber + +require ( + github.com/gofiber/fiber/v2 v2.52.0 + github.com/rookie-luochao/go-openapi-ui v0.0.0 + github.com/rookie-luochao/go-openapi-ui/fiber v0.0.0 + github.com/swaggo/swag v1.16.2 +) + +require ( + github.com/KyleBanks/depth v1.2.1 // indirect + github.com/PuerkitoBio/purell v1.1.1 // indirect + github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect + github.com/andybalholm/brotli v1.0.5 // indirect + github.com/go-openapi/jsonpointer v0.19.5 // indirect + github.com/go-openapi/jsonreference v0.19.6 // indirect + github.com/go-openapi/spec v0.20.4 // indirect + github.com/go-openapi/swag v0.19.15 // indirect + github.com/gofiber/adaptor/v2 v2.2.1 // indirect + github.com/google/uuid v1.5.0 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/klauspost/compress v1.17.0 // indirect + github.com/mailru/easyjson v0.7.6 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect + github.com/rivo/uniseg v0.2.0 // indirect + github.com/valyala/bytebufferpool v1.0.0 // indirect + github.com/valyala/fasthttp v1.51.0 // indirect + github.com/valyala/tcplisten v1.0.0 // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/sys v0.15.0 // indirect + golang.org/x/text v0.13.0 // indirect + golang.org/x/tools v0.7.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect +) diff --git a/_examples/gen/go.sum b/_examples/gen/go.sum new file mode 100644 index 0000000..c63bc20 --- /dev/null +++ b/_examples/gen/go.sum @@ -0,0 +1,97 @@ +github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc= +github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= +github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= +github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= +github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= +github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonreference v0.19.6 h1:UBIxjkht+AWIgYzCDSv2GN+E/togfwXUJFRTWhl2Jjs= +github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= +github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M= +github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.19.15 h1:D2NRCBzS9/pEY3gP9Nl8aDqGUcPFrwG2p+CNFrLyrCM= +github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/gofiber/adaptor/v2 v2.2.1 h1:givE7iViQWlsTR4Jh7tB4iXzrlKBgiraB/yTdHs9Lv4= +github.com/gofiber/adaptor/v2 v2.2.1/go.mod h1:AhR16dEqs25W2FY/l8gSj1b51Azg5dtPDmm+pruNOrc= +github.com/gofiber/fiber/v2 v2.52.0 h1:S+qXi7y+/Pgvqq4DrSmREGiFwtB7Bu6+QFLuIHYw/UE= +github.com/gofiber/fiber/v2 v2.52.0/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ= +github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= +github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= +github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/swaggo/swag v1.16.2 h1:28Pp+8DkQoV+HLzLx8RGJZXNGKbFqnuvSbAAtoxiY04= +github.com/swaggo/swag v1.16.2/go.mod h1:6YzXnDcpr0767iOejs318CwYkCQqyGer6BizOg03f+E= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA= +github.com/valyala/fasthttp v1.51.0/go.mod h1:oI2XroL+lI7vdXyYoQk03bXBThfFl2cVdIA3Xl7cH8g= +github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= +github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= +golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= \ No newline at end of file diff --git a/_examples/gen/main.go b/_examples/gen/main.go new file mode 100644 index 0000000..80b7f99 --- /dev/null +++ b/_examples/gen/main.go @@ -0,0 +1,33 @@ +package main + +import ( + "github.com/gofiber/fiber/v2" + "github.com/rookie-luochao/go-openapi-ui" + + _ "github.com/rookie-luochao/go-openapi-ui/_examples/gen/docs" + + fiberopenapiui "github.com/rookie-luochao/go-openapi-ui/fiber" +) + +//go:generate swag init + +// @title Fiber Example API +// @version 1.0 +// @description Fiber example for openapi spec generation +// @host localhost:8000 +// @BasePath / +func main() { + doc := doc.Doc{ + Title: "Example API", + Description: "Example API Description", + SpecFile: "./docs/swagger.json", + SpecPath: "/swagger.json", + DocsPath: "/docs", + } + + r := fiber.New() + r.Use(fiberredoc.New(doc)) + + println("Documentation served at http://127.0.0.1:8000/docs") + panic(r.Listen(":8000")) +} diff --git a/_examples/gin/go.mod b/_examples/gin/go.mod new file mode 100644 index 0000000..af89c14 --- /dev/null +++ b/_examples/gin/go.mod @@ -0,0 +1,39 @@ +module github.com/rookie-luochao/go-openapi-ui/_examples/gin + +go 1.21.6 + +replace github.com/rookie-luochao/go-openapi-ui => ../../ +replace github.com/rookie-luochao/go-openapi-ui/gin => ../../gin + +require ( + github.com/gin-gonic/gin v1.9.1 + github.com/rookie-luochao/go-openapi-ui v0.0.0 + github.com/rookie-luochao/go-openapi-ui/gin v0.0.0 +) + +require ( + github.com/bytedance/sonic v1.9.1 // indirect + github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect + github.com/gabriel-vasile/mimetype v1.4.2 // indirect + github.com/gin-contrib/sse v0.1.0 // indirect + github.com/go-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/go-playground/validator/v10 v10.14.0 // indirect + github.com/goccy/go-json v0.10.2 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/klauspost/cpuid/v2 v2.2.4 // indirect + github.com/leodido/go-urn v1.2.4 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/pelletier/go-toml/v2 v2.0.8 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/ugorji/go/codec v1.2.11 // indirect + golang.org/x/arch v0.3.0 // indirect + golang.org/x/crypto v0.14.0 // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/sys v0.13.0 // indirect + golang.org/x/text v0.13.0 // indirect + google.golang.org/protobuf v1.30.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/_examples/gin/go.sum b/_examples/gin/go.sum new file mode 100644 index 0000000..3d8e74e --- /dev/null +++ b/_examples/gin/go.sum @@ -0,0 +1,78 @@ +github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= +github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s= +github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= +github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= +github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= +github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= +github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= +github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= +github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js= +github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= +github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= +github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= +github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU= +github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= +golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= +golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/_examples/gin/main.go b/_examples/gin/main.go new file mode 100644 index 0000000..cb0bef1 --- /dev/null +++ b/_examples/gin/main.go @@ -0,0 +1,23 @@ +package main + +import ( + "github.com/gin-gonic/gin" + doc "github.com/rookie-luochao/go-openapi-ui" + ginopenapiui "github.com/rookie-luochao/go-openapi-ui/gin" +) + +func main() { + doc := doc.Doc{ + Title: "Example API", + Description: "Example API Description", + SpecFile: "./openapi.json", + SpecPath: "/openapi.json", + DocsPath: "/docs", + } + + r := gin.New() + r.Use(ginopenapiui.New(doc)) + + println("Documentation served at http://127.0.0.1:8000/docs") + panic(r.Run(":8000")) +} diff --git a/_examples/gin/openapi.json b/_examples/gin/openapi.json new file mode 100644 index 0000000..0165f3c --- /dev/null +++ b/_examples/gin/openapi.json @@ -0,0 +1 @@ +{"openapi":"3.0.2","info":{"title":"Swagger Petstore - OpenAPI 3.0","description":"This is a sample Pet Store Server based on the OpenAPI 3.0 specification. You can find out more about\nSwagger at [http://swagger.io](http://swagger.io). In the third iteration of the pet store, we've switched to the design first approach!\nYou can now help us improve the API whether it's by making changes to the definition itself or to the code.\nThat way, with time, we can improve the API in general, and expose some of the new features in OAS3.\n\nSome useful links:\n- [The Pet Store repository](https://github.com/swagger-api/swagger-petstore)\n- [The source API definition for the Pet Store](https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml)","termsOfService":"http://swagger.io/terms/","contact":{"email":"apiteam@swagger.io"},"license":{"name":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"},"version":"1.0.5"},"externalDocs":{"description":"Find out more about Swagger","url":"http://swagger.io"},"servers":[{"url":"/api/v3"}],"tags":[{"name":"pet","description":"Everything about your Pets","externalDocs":{"description":"Find out more","url":"http://swagger.io"}},{"name":"store","description":"Operations about user"},{"name":"user","description":"Access to Petstore orders","externalDocs":{"description":"Find out more about our store","url":"http://swagger.io"}}],"paths":{"/pet":{"put":{"tags":["pet"],"summary":"Update an existing pet","description":"Update an existing pet by Id","operationId":"updatePet","requestBody":{"description":"Update an existent pet in the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Pet"}}},"required":true},"responses":{"200":{"description":"Successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Pet not found"},"405":{"description":"Validation exception"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]},"post":{"tags":["pet"],"summary":"Add a new pet to the store","description":"Add a new pet to the store","operationId":"addPet","requestBody":{"description":"Create a new pet in the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Pet"}}},"required":true},"responses":{"200":{"description":"Successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"405":{"description":"Invalid input"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/findByStatus":{"get":{"tags":["pet"],"summary":"Finds Pets by status","description":"Multiple status values can be provided with comma separated strings","operationId":"findPetsByStatus","parameters":[{"name":"status","in":"query","description":"Status values that need to be considered for filter","required":false,"explode":true,"schema":{"type":"string","default":"available","enum":["available","pending","sold"]}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}}}},"400":{"description":"Invalid status value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/findByTags":{"get":{"tags":["pet"],"summary":"Finds Pets by tags","description":"Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.","operationId":"findPetsByTags","parameters":[{"name":"tags","in":"query","description":"Tags to filter by","required":false,"explode":true,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}}}},"400":{"description":"Invalid tag value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/{petId}":{"get":{"tags":["pet"],"summary":"Find pet by ID","description":"Returns a single pet","operationId":"getPetById","parameters":[{"name":"petId","in":"path","description":"ID of pet to return","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Pet not found"}},"security":[{"api_key":[]},{"petstore_auth":["write:pets","read:pets"]}]},"post":{"tags":["pet"],"summary":"Updates a pet in the store with form data","description":"","operationId":"updatePetWithForm","parameters":[{"name":"petId","in":"path","description":"ID of pet that needs to be updated","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"name","in":"query","description":"Name of pet that needs to be updated","schema":{"type":"string"}},{"name":"status","in":"query","description":"Status of pet that needs to be updated","schema":{"type":"string"}}],"responses":{"405":{"description":"Invalid input"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]},"delete":{"tags":["pet"],"summary":"Deletes a pet","description":"","operationId":"deletePet","parameters":[{"name":"api_key","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"petId","in":"path","description":"Pet id to delete","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"400":{"description":"Invalid pet value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/{petId}/uploadImage":{"post":{"tags":["pet"],"summary":"uploads an image","description":"","operationId":"uploadFile","parameters":[{"name":"petId","in":"path","description":"ID of pet to update","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"additionalMetadata","in":"query","description":"Additional Metadata","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/store/inventory":{"get":{"tags":["store"],"summary":"Returns pet inventories by status","description":"Returns a map of status codes to quantities","operationId":"getInventory","responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}}}}},"security":[{"api_key":[]}]}},"/store/order":{"post":{"tags":["store"],"summary":"Place an order for a pet","description":"Place a new order in the store","operationId":"placeOrder","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Order"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Order"}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"405":{"description":"Invalid input"}}}},"/store/order/{orderId}":{"get":{"tags":["store"],"summary":"Find purchase order by ID","description":"For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions","operationId":"getOrderById","parameters":[{"name":"orderId","in":"path","description":"ID of order that needs to be fetched","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Order"}},"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Order not found"}}},"delete":{"tags":["store"],"summary":"Delete purchase order by ID","description":"For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors","operationId":"deleteOrder","parameters":[{"name":"orderId","in":"path","description":"ID of the order that needs to be deleted","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"400":{"description":"Invalid ID supplied"},"404":{"description":"Order not found"}}}},"/user":{"post":{"tags":["user"],"summary":"Create user","description":"This can only be done by the logged in user.","operationId":"createUser","requestBody":{"description":"Created user object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}},"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/User"}}}},"responses":{"default":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}},"application/xml":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/user/createWithList":{"post":{"tags":["user"],"summary":"Creates list of users with given input array","description":"Creates list of users with given input array","operationId":"createUsersWithListInput","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}}},"responses":{"200":{"description":"Successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"default":{"description":"successful operation"}}}},"/user/login":{"get":{"tags":["user"],"summary":"Logs user into the system","description":"","operationId":"loginUser","parameters":[{"name":"username","in":"query","description":"The user name for login","required":false,"schema":{"type":"string"}},{"name":"password","in":"query","description":"The password for login in clear text","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","headers":{"X-Rate-Limit":{"description":"calls per hour allowed by the user","schema":{"type":"integer","format":"int32"}},"X-Expires-After":{"description":"date in UTC when toekn expires","schema":{"type":"string","format":"date-time"}}},"content":{"application/xml":{"schema":{"type":"string"}},"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid username/password supplied"}}}},"/user/logout":{"get":{"tags":["user"],"summary":"Logs out current logged in user session","description":"","operationId":"logoutUser","parameters":[],"responses":{"default":{"description":"successful operation"}}}},"/user/{username}":{"get":{"tags":["user"],"summary":"Get user by user name","description":"","operationId":"getUserByName","parameters":[{"name":"username","in":"path","description":"The name that needs to be fetched. Use user1 for testing. ","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"400":{"description":"Invalid username supplied"},"404":{"description":"User not found"}}},"put":{"tags":["user"],"summary":"Update user","description":"This can only be done by the logged in user.","operationId":"updateUser","parameters":[{"name":"username","in":"path","description":"name that need to be deleted","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Update an existent user in the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}},"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/User"}}}},"responses":{"default":{"description":"successful operation"}}},"delete":{"tags":["user"],"summary":"Delete user","description":"This can only be done by the logged in user.","operationId":"deleteUser","parameters":[{"name":"username","in":"path","description":"The name that needs to be deleted","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Invalid username supplied"},"404":{"description":"User not found"}}}}},"components":{"schemas":{"Order":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":10},"petId":{"type":"integer","format":"int64","example":198772},"quantity":{"type":"integer","format":"int32","example":7},"shipDate":{"type":"string","format":"date-time"},"status":{"type":"string","description":"Order Status","example":"approved","enum":["placed","approved","delivered"]},"complete":{"type":"boolean"}},"xml":{"name":"order"}},"Customer":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":100000},"username":{"type":"string","example":"fehguy"},"address":{"type":"array","xml":{"name":"addresses","wrapped":true},"items":{"$ref":"#/components/schemas/Address"}}},"xml":{"name":"customer"}},"Address":{"type":"object","properties":{"street":{"type":"string","example":"437 Lytton"},"city":{"type":"string","example":"Palo Alto"},"state":{"type":"string","example":"CA"},"zip":{"type":"string","example":"94301"}},"xml":{"name":"address"}},"Category":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":1},"name":{"type":"string","example":"Dogs"}},"xml":{"name":"category"}},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":10},"username":{"type":"string","example":"theUser"},"firstName":{"type":"string","example":"John"},"lastName":{"type":"string","example":"James"},"email":{"type":"string","example":"john@email.com"},"password":{"type":"string","example":"12345"},"phone":{"type":"string","example":"12345"},"userStatus":{"type":"integer","description":"User Status","format":"int32","example":1}},"xml":{"name":"user"}},"Tag":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}},"xml":{"name":"tag"}},"Pet":{"required":["name","photoUrls"],"type":"object","properties":{"id":{"type":"integer","format":"int64","example":10},"name":{"type":"string","example":"doggie"},"category":{"$ref":"#/components/schemas/Category"},"photoUrls":{"type":"array","xml":{"wrapped":true},"items":{"type":"string","xml":{"name":"photoUrl"}}},"tags":{"type":"array","xml":{"wrapped":true},"items":{"$ref":"#/components/schemas/Tag"}},"status":{"type":"string","description":"pet status in the store","enum":["available","pending","sold"]}},"xml":{"name":"pet"}},"ApiResponse":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"type":{"type":"string"},"message":{"type":"string"}},"xml":{"name":"##default"}}},"requestBodies":{"Pet":{"description":"Pet object that needs to be added to the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"UserArray":{"description":"List of user object","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}}}},"securitySchemes":{"petstore_auth":{"type":"oauth2","flows":{"implicit":{"authorizationUrl":"https://petstore3.swagger.io/oauth/authorize","scopes":{"write:pets":"modify pets in your account","read:pets":"read your pets"}}}},"api_key":{"type":"apiKey","name":"api_key","in":"header"}}}} \ No newline at end of file diff --git a/_examples/gorilla/go.mod b/_examples/gorilla/go.mod new file mode 100644 index 0000000..8d007a4 --- /dev/null +++ b/_examples/gorilla/go.mod @@ -0,0 +1,10 @@ +module github.com/rookie-luochao/go-openapi-ui/_examples/fiber + +go 1.21.6 + +replace github.com/rookie-luochao/go-openapi-ui => ../../ + +require ( + github.com/gorilla/mux v1.8.1 + github.com/rookie-luochao/go-openapi-ui v0.0.0 +) diff --git a/_examples/gorilla/go.sum b/_examples/gorilla/go.sum new file mode 100644 index 0000000..734197d --- /dev/null +++ b/_examples/gorilla/go.sum @@ -0,0 +1,10 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= \ No newline at end of file diff --git a/_examples/gorilla/main.go b/_examples/gorilla/main.go new file mode 100644 index 0000000..5cd7eac --- /dev/null +++ b/_examples/gorilla/main.go @@ -0,0 +1,23 @@ +package main + +import ( + "net/http" + + "github.com/gorilla/mux" + "github.com/rookie-luochao/go-openapi-ui" +) + +func main() { + doc := &doc.Doc{ + Title: "Example API", + Description: "Example API Description", + SpecFile: "./openapi.json", + SpecPath: "/docs/openapi.json", + } + + r := mux.NewRouter() + r.PathPrefix("/docs").Handler(doc.Handler()) + + println("Documentation served at http://127.0.0.1:8000/docs") + http.ListenAndServe(":8000", r) +} diff --git a/_examples/gorilla/openapi.json b/_examples/gorilla/openapi.json new file mode 100644 index 0000000..0165f3c --- /dev/null +++ b/_examples/gorilla/openapi.json @@ -0,0 +1 @@ +{"openapi":"3.0.2","info":{"title":"Swagger Petstore - OpenAPI 3.0","description":"This is a sample Pet Store Server based on the OpenAPI 3.0 specification. You can find out more about\nSwagger at [http://swagger.io](http://swagger.io). In the third iteration of the pet store, we've switched to the design first approach!\nYou can now help us improve the API whether it's by making changes to the definition itself or to the code.\nThat way, with time, we can improve the API in general, and expose some of the new features in OAS3.\n\nSome useful links:\n- [The Pet Store repository](https://github.com/swagger-api/swagger-petstore)\n- [The source API definition for the Pet Store](https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml)","termsOfService":"http://swagger.io/terms/","contact":{"email":"apiteam@swagger.io"},"license":{"name":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"},"version":"1.0.5"},"externalDocs":{"description":"Find out more about Swagger","url":"http://swagger.io"},"servers":[{"url":"/api/v3"}],"tags":[{"name":"pet","description":"Everything about your Pets","externalDocs":{"description":"Find out more","url":"http://swagger.io"}},{"name":"store","description":"Operations about user"},{"name":"user","description":"Access to Petstore orders","externalDocs":{"description":"Find out more about our store","url":"http://swagger.io"}}],"paths":{"/pet":{"put":{"tags":["pet"],"summary":"Update an existing pet","description":"Update an existing pet by Id","operationId":"updatePet","requestBody":{"description":"Update an existent pet in the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Pet"}}},"required":true},"responses":{"200":{"description":"Successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Pet not found"},"405":{"description":"Validation exception"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]},"post":{"tags":["pet"],"summary":"Add a new pet to the store","description":"Add a new pet to the store","operationId":"addPet","requestBody":{"description":"Create a new pet in the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Pet"}}},"required":true},"responses":{"200":{"description":"Successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"405":{"description":"Invalid input"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/findByStatus":{"get":{"tags":["pet"],"summary":"Finds Pets by status","description":"Multiple status values can be provided with comma separated strings","operationId":"findPetsByStatus","parameters":[{"name":"status","in":"query","description":"Status values that need to be considered for filter","required":false,"explode":true,"schema":{"type":"string","default":"available","enum":["available","pending","sold"]}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}}}},"400":{"description":"Invalid status value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/findByTags":{"get":{"tags":["pet"],"summary":"Finds Pets by tags","description":"Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.","operationId":"findPetsByTags","parameters":[{"name":"tags","in":"query","description":"Tags to filter by","required":false,"explode":true,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}}}},"400":{"description":"Invalid tag value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/{petId}":{"get":{"tags":["pet"],"summary":"Find pet by ID","description":"Returns a single pet","operationId":"getPetById","parameters":[{"name":"petId","in":"path","description":"ID of pet to return","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Pet not found"}},"security":[{"api_key":[]},{"petstore_auth":["write:pets","read:pets"]}]},"post":{"tags":["pet"],"summary":"Updates a pet in the store with form data","description":"","operationId":"updatePetWithForm","parameters":[{"name":"petId","in":"path","description":"ID of pet that needs to be updated","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"name","in":"query","description":"Name of pet that needs to be updated","schema":{"type":"string"}},{"name":"status","in":"query","description":"Status of pet that needs to be updated","schema":{"type":"string"}}],"responses":{"405":{"description":"Invalid input"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]},"delete":{"tags":["pet"],"summary":"Deletes a pet","description":"","operationId":"deletePet","parameters":[{"name":"api_key","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"petId","in":"path","description":"Pet id to delete","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"400":{"description":"Invalid pet value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/{petId}/uploadImage":{"post":{"tags":["pet"],"summary":"uploads an image","description":"","operationId":"uploadFile","parameters":[{"name":"petId","in":"path","description":"ID of pet to update","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"additionalMetadata","in":"query","description":"Additional Metadata","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/store/inventory":{"get":{"tags":["store"],"summary":"Returns pet inventories by status","description":"Returns a map of status codes to quantities","operationId":"getInventory","responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}}}}},"security":[{"api_key":[]}]}},"/store/order":{"post":{"tags":["store"],"summary":"Place an order for a pet","description":"Place a new order in the store","operationId":"placeOrder","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Order"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Order"}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"405":{"description":"Invalid input"}}}},"/store/order/{orderId}":{"get":{"tags":["store"],"summary":"Find purchase order by ID","description":"For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions","operationId":"getOrderById","parameters":[{"name":"orderId","in":"path","description":"ID of order that needs to be fetched","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Order"}},"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Order not found"}}},"delete":{"tags":["store"],"summary":"Delete purchase order by ID","description":"For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors","operationId":"deleteOrder","parameters":[{"name":"orderId","in":"path","description":"ID of the order that needs to be deleted","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"400":{"description":"Invalid ID supplied"},"404":{"description":"Order not found"}}}},"/user":{"post":{"tags":["user"],"summary":"Create user","description":"This can only be done by the logged in user.","operationId":"createUser","requestBody":{"description":"Created user object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}},"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/User"}}}},"responses":{"default":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}},"application/xml":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/user/createWithList":{"post":{"tags":["user"],"summary":"Creates list of users with given input array","description":"Creates list of users with given input array","operationId":"createUsersWithListInput","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}}},"responses":{"200":{"description":"Successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"default":{"description":"successful operation"}}}},"/user/login":{"get":{"tags":["user"],"summary":"Logs user into the system","description":"","operationId":"loginUser","parameters":[{"name":"username","in":"query","description":"The user name for login","required":false,"schema":{"type":"string"}},{"name":"password","in":"query","description":"The password for login in clear text","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","headers":{"X-Rate-Limit":{"description":"calls per hour allowed by the user","schema":{"type":"integer","format":"int32"}},"X-Expires-After":{"description":"date in UTC when toekn expires","schema":{"type":"string","format":"date-time"}}},"content":{"application/xml":{"schema":{"type":"string"}},"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid username/password supplied"}}}},"/user/logout":{"get":{"tags":["user"],"summary":"Logs out current logged in user session","description":"","operationId":"logoutUser","parameters":[],"responses":{"default":{"description":"successful operation"}}}},"/user/{username}":{"get":{"tags":["user"],"summary":"Get user by user name","description":"","operationId":"getUserByName","parameters":[{"name":"username","in":"path","description":"The name that needs to be fetched. Use user1 for testing. ","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"400":{"description":"Invalid username supplied"},"404":{"description":"User not found"}}},"put":{"tags":["user"],"summary":"Update user","description":"This can only be done by the logged in user.","operationId":"updateUser","parameters":[{"name":"username","in":"path","description":"name that need to be deleted","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Update an existent user in the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}},"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/User"}}}},"responses":{"default":{"description":"successful operation"}}},"delete":{"tags":["user"],"summary":"Delete user","description":"This can only be done by the logged in user.","operationId":"deleteUser","parameters":[{"name":"username","in":"path","description":"The name that needs to be deleted","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Invalid username supplied"},"404":{"description":"User not found"}}}}},"components":{"schemas":{"Order":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":10},"petId":{"type":"integer","format":"int64","example":198772},"quantity":{"type":"integer","format":"int32","example":7},"shipDate":{"type":"string","format":"date-time"},"status":{"type":"string","description":"Order Status","example":"approved","enum":["placed","approved","delivered"]},"complete":{"type":"boolean"}},"xml":{"name":"order"}},"Customer":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":100000},"username":{"type":"string","example":"fehguy"},"address":{"type":"array","xml":{"name":"addresses","wrapped":true},"items":{"$ref":"#/components/schemas/Address"}}},"xml":{"name":"customer"}},"Address":{"type":"object","properties":{"street":{"type":"string","example":"437 Lytton"},"city":{"type":"string","example":"Palo Alto"},"state":{"type":"string","example":"CA"},"zip":{"type":"string","example":"94301"}},"xml":{"name":"address"}},"Category":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":1},"name":{"type":"string","example":"Dogs"}},"xml":{"name":"category"}},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":10},"username":{"type":"string","example":"theUser"},"firstName":{"type":"string","example":"John"},"lastName":{"type":"string","example":"James"},"email":{"type":"string","example":"john@email.com"},"password":{"type":"string","example":"12345"},"phone":{"type":"string","example":"12345"},"userStatus":{"type":"integer","description":"User Status","format":"int32","example":1}},"xml":{"name":"user"}},"Tag":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}},"xml":{"name":"tag"}},"Pet":{"required":["name","photoUrls"],"type":"object","properties":{"id":{"type":"integer","format":"int64","example":10},"name":{"type":"string","example":"doggie"},"category":{"$ref":"#/components/schemas/Category"},"photoUrls":{"type":"array","xml":{"wrapped":true},"items":{"type":"string","xml":{"name":"photoUrl"}}},"tags":{"type":"array","xml":{"wrapped":true},"items":{"$ref":"#/components/schemas/Tag"}},"status":{"type":"string","description":"pet status in the store","enum":["available","pending","sold"]}},"xml":{"name":"pet"}},"ApiResponse":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"type":{"type":"string"},"message":{"type":"string"}},"xml":{"name":"##default"}}},"requestBodies":{"Pet":{"description":"Pet object that needs to be added to the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"UserArray":{"description":"List of user object","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}}}},"securitySchemes":{"petstore_auth":{"type":"oauth2","flows":{"implicit":{"authorizationUrl":"https://petstore3.swagger.io/oauth/authorize","scopes":{"write:pets":"modify pets in your account","read:pets":"read your pets"}}}},"api_key":{"type":"apiKey","name":"api_key","in":"header"}}}} \ No newline at end of file diff --git a/_examples/http/go.mod b/_examples/http/go.mod new file mode 100644 index 0000000..04e345a --- /dev/null +++ b/_examples/http/go.mod @@ -0,0 +1,7 @@ +module github.com/rookie-luochao/go-openapi-ui/_examples/fiber + +go 1.21.6 + +replace github.com/rookie-luochao/go-openapi-ui => ../../ + +require github.com/rookie-luochao/go-openapi-ui v0.0.0 diff --git a/_examples/http/go.sum b/_examples/http/go.sum new file mode 100644 index 0000000..8952aa2 --- /dev/null +++ b/_examples/http/go.sum @@ -0,0 +1,8 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/_examples/http/main.go b/_examples/http/main.go new file mode 100644 index 0000000..c652cb1 --- /dev/null +++ b/_examples/http/main.go @@ -0,0 +1,20 @@ +package main + +import ( + "net/http" + + "github.com/rookie-luochao/go-openapi-ui" +) + +func main() { + doc := doc.Doc{ + Title: "Example API", + Description: "Example API Description", + SpecFile: "./openapi.json", + SpecPath: "/openapi.json", + DocsPath: "/docs", + } + + println("Documentation served at http://127.0.0.1:8000/docs") + panic(http.ListenAndServe(":8000", doc.Handler())) +} diff --git a/_examples/http/openapi.json b/_examples/http/openapi.json new file mode 100644 index 0000000..0165f3c --- /dev/null +++ b/_examples/http/openapi.json @@ -0,0 +1 @@ +{"openapi":"3.0.2","info":{"title":"Swagger Petstore - OpenAPI 3.0","description":"This is a sample Pet Store Server based on the OpenAPI 3.0 specification. You can find out more about\nSwagger at [http://swagger.io](http://swagger.io). In the third iteration of the pet store, we've switched to the design first approach!\nYou can now help us improve the API whether it's by making changes to the definition itself or to the code.\nThat way, with time, we can improve the API in general, and expose some of the new features in OAS3.\n\nSome useful links:\n- [The Pet Store repository](https://github.com/swagger-api/swagger-petstore)\n- [The source API definition for the Pet Store](https://github.com/swagger-api/swagger-petstore/blob/master/src/main/resources/openapi.yaml)","termsOfService":"http://swagger.io/terms/","contact":{"email":"apiteam@swagger.io"},"license":{"name":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"},"version":"1.0.5"},"externalDocs":{"description":"Find out more about Swagger","url":"http://swagger.io"},"servers":[{"url":"/api/v3"}],"tags":[{"name":"pet","description":"Everything about your Pets","externalDocs":{"description":"Find out more","url":"http://swagger.io"}},{"name":"store","description":"Operations about user"},{"name":"user","description":"Access to Petstore orders","externalDocs":{"description":"Find out more about our store","url":"http://swagger.io"}}],"paths":{"/pet":{"put":{"tags":["pet"],"summary":"Update an existing pet","description":"Update an existing pet by Id","operationId":"updatePet","requestBody":{"description":"Update an existent pet in the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Pet"}}},"required":true},"responses":{"200":{"description":"Successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Pet not found"},"405":{"description":"Validation exception"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]},"post":{"tags":["pet"],"summary":"Add a new pet to the store","description":"Add a new pet to the store","operationId":"addPet","requestBody":{"description":"Create a new pet in the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Pet"}}},"required":true},"responses":{"200":{"description":"Successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"405":{"description":"Invalid input"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/findByStatus":{"get":{"tags":["pet"],"summary":"Finds Pets by status","description":"Multiple status values can be provided with comma separated strings","operationId":"findPetsByStatus","parameters":[{"name":"status","in":"query","description":"Status values that need to be considered for filter","required":false,"explode":true,"schema":{"type":"string","default":"available","enum":["available","pending","sold"]}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}}}},"400":{"description":"Invalid status value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/findByTags":{"get":{"tags":["pet"],"summary":"Finds Pets by tags","description":"Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.","operationId":"findPetsByTags","parameters":[{"name":"tags","in":"query","description":"Tags to filter by","required":false,"explode":true,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}},"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pet"}}}}},"400":{"description":"Invalid tag value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/{petId}":{"get":{"tags":["pet"],"summary":"Find pet by ID","description":"Returns a single pet","operationId":"getPetById","parameters":[{"name":"petId","in":"path","description":"ID of pet to return","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Pet not found"}},"security":[{"api_key":[]},{"petstore_auth":["write:pets","read:pets"]}]},"post":{"tags":["pet"],"summary":"Updates a pet in the store with form data","description":"","operationId":"updatePetWithForm","parameters":[{"name":"petId","in":"path","description":"ID of pet that needs to be updated","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"name","in":"query","description":"Name of pet that needs to be updated","schema":{"type":"string"}},{"name":"status","in":"query","description":"Status of pet that needs to be updated","schema":{"type":"string"}}],"responses":{"405":{"description":"Invalid input"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]},"delete":{"tags":["pet"],"summary":"Deletes a pet","description":"","operationId":"deletePet","parameters":[{"name":"api_key","in":"header","description":"","required":false,"schema":{"type":"string"}},{"name":"petId","in":"path","description":"Pet id to delete","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"400":{"description":"Invalid pet value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/{petId}/uploadImage":{"post":{"tags":["pet"],"summary":"uploads an image","description":"","operationId":"uploadFile","parameters":[{"name":"petId","in":"path","description":"ID of pet to update","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"additionalMetadata","in":"query","description":"Additional Metadata","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponse"}}}}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/store/inventory":{"get":{"tags":["store"],"summary":"Returns pet inventories by status","description":"Returns a map of status codes to quantities","operationId":"getInventory","responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}}}}},"security":[{"api_key":[]}]}},"/store/order":{"post":{"tags":["store"],"summary":"Place an order for a pet","description":"Place a new order in the store","operationId":"placeOrder","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Order"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Order"}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"405":{"description":"Invalid input"}}}},"/store/order/{orderId}":{"get":{"tags":["store"],"summary":"Find purchase order by ID","description":"For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions","operationId":"getOrderById","parameters":[{"name":"orderId","in":"path","description":"ID of order that needs to be fetched","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/Order"}},"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Order not found"}}},"delete":{"tags":["store"],"summary":"Delete purchase order by ID","description":"For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors","operationId":"deleteOrder","parameters":[{"name":"orderId","in":"path","description":"ID of the order that needs to be deleted","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"400":{"description":"Invalid ID supplied"},"404":{"description":"Order not found"}}}},"/user":{"post":{"tags":["user"],"summary":"Create user","description":"This can only be done by the logged in user.","operationId":"createUser","requestBody":{"description":"Created user object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}},"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/User"}}}},"responses":{"default":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}},"application/xml":{"schema":{"$ref":"#/components/schemas/User"}}}}}}},"/user/createWithList":{"post":{"tags":["user"],"summary":"Creates list of users with given input array","description":"Creates list of users with given input array","operationId":"createUsersWithListInput","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}}},"responses":{"200":{"description":"Successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"default":{"description":"successful operation"}}}},"/user/login":{"get":{"tags":["user"],"summary":"Logs user into the system","description":"","operationId":"loginUser","parameters":[{"name":"username","in":"query","description":"The user name for login","required":false,"schema":{"type":"string"}},{"name":"password","in":"query","description":"The password for login in clear text","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","headers":{"X-Rate-Limit":{"description":"calls per hour allowed by the user","schema":{"type":"integer","format":"int32"}},"X-Expires-After":{"description":"date in UTC when toekn expires","schema":{"type":"string","format":"date-time"}}},"content":{"application/xml":{"schema":{"type":"string"}},"application/json":{"schema":{"type":"string"}}}},"400":{"description":"Invalid username/password supplied"}}}},"/user/logout":{"get":{"tags":["user"],"summary":"Logs out current logged in user session","description":"","operationId":"logoutUser","parameters":[],"responses":{"default":{"description":"successful operation"}}}},"/user/{username}":{"get":{"tags":["user"],"summary":"Get user by user name","description":"","operationId":"getUserByName","parameters":[{"name":"username","in":"path","description":"The name that needs to be fetched. Use user1 for testing. ","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","content":{"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"400":{"description":"Invalid username supplied"},"404":{"description":"User not found"}}},"put":{"tags":["user"],"summary":"Update user","description":"This can only be done by the logged in user.","operationId":"updateUser","parameters":[{"name":"username","in":"path","description":"name that need to be deleted","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"Update an existent user in the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}},"application/xml":{"schema":{"$ref":"#/components/schemas/User"}},"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/User"}}}},"responses":{"default":{"description":"successful operation"}}},"delete":{"tags":["user"],"summary":"Delete user","description":"This can only be done by the logged in user.","operationId":"deleteUser","parameters":[{"name":"username","in":"path","description":"The name that needs to be deleted","required":true,"schema":{"type":"string"}}],"responses":{"400":{"description":"Invalid username supplied"},"404":{"description":"User not found"}}}}},"components":{"schemas":{"Order":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":10},"petId":{"type":"integer","format":"int64","example":198772},"quantity":{"type":"integer","format":"int32","example":7},"shipDate":{"type":"string","format":"date-time"},"status":{"type":"string","description":"Order Status","example":"approved","enum":["placed","approved","delivered"]},"complete":{"type":"boolean"}},"xml":{"name":"order"}},"Customer":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":100000},"username":{"type":"string","example":"fehguy"},"address":{"type":"array","xml":{"name":"addresses","wrapped":true},"items":{"$ref":"#/components/schemas/Address"}}},"xml":{"name":"customer"}},"Address":{"type":"object","properties":{"street":{"type":"string","example":"437 Lytton"},"city":{"type":"string","example":"Palo Alto"},"state":{"type":"string","example":"CA"},"zip":{"type":"string","example":"94301"}},"xml":{"name":"address"}},"Category":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":1},"name":{"type":"string","example":"Dogs"}},"xml":{"name":"category"}},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int64","example":10},"username":{"type":"string","example":"theUser"},"firstName":{"type":"string","example":"John"},"lastName":{"type":"string","example":"James"},"email":{"type":"string","example":"john@email.com"},"password":{"type":"string","example":"12345"},"phone":{"type":"string","example":"12345"},"userStatus":{"type":"integer","description":"User Status","format":"int32","example":1}},"xml":{"name":"user"}},"Tag":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}},"xml":{"name":"tag"}},"Pet":{"required":["name","photoUrls"],"type":"object","properties":{"id":{"type":"integer","format":"int64","example":10},"name":{"type":"string","example":"doggie"},"category":{"$ref":"#/components/schemas/Category"},"photoUrls":{"type":"array","xml":{"wrapped":true},"items":{"type":"string","xml":{"name":"photoUrl"}}},"tags":{"type":"array","xml":{"wrapped":true},"items":{"$ref":"#/components/schemas/Tag"}},"status":{"type":"string","description":"pet status in the store","enum":["available","pending","sold"]}},"xml":{"name":"pet"}},"ApiResponse":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"type":{"type":"string"},"message":{"type":"string"}},"xml":{"name":"##default"}}},"requestBodies":{"Pet":{"description":"Pet object that needs to be added to the store","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pet"}},"application/xml":{"schema":{"$ref":"#/components/schemas/Pet"}}}},"UserArray":{"description":"List of user object","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}}}},"securitySchemes":{"petstore_auth":{"type":"oauth2","flows":{"implicit":{"authorizationUrl":"https://petstore3.swagger.io/oauth/authorize","scopes":{"write:pets":"modify pets in your account","read:pets":"read your pets"}}}},"api_key":{"type":"apiKey","name":"api_key","in":"header"}}}} \ No newline at end of file diff --git a/assets/index.html b/assets/index.html new file mode 100644 index 0000000..ca5ae46 --- /dev/null +++ b/assets/index.html @@ -0,0 +1,19 @@ + + + + + {{ .title }} + + + + + +
+ + + diff --git a/assets/openapi-ui.umd.js b/assets/openapi-ui.umd.js new file mode 100644 index 0000000..a5ff19f --- /dev/null +++ b/assets/openapi-ui.umd.js @@ -0,0 +1,1333 @@ +(function(){"use strict";try{if(typeof document<"u"){var A=document.createElement("style");A.appendChild(document.createTextNode('.monaco-aria-container{position:absolute;left:-999em}::-ms-clear{display:none}.monaco-editor .editor-widget input{color:inherit}.monaco-editor{position:relative;overflow:visible;-webkit-text-size-adjust:100%;color:var(--vscode-editor-foreground);background-color:var(--vscode-editor-background)}.monaco-editor-background{background-color:var(--vscode-editor-background)}.monaco-editor .rangeHighlight{background-color:var(--vscode-editor-rangeHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-rangeHighlightBorder)}.monaco-editor.hc-black .rangeHighlight,.monaco-editor.hc-light .rangeHighlight{border-style:dotted}.monaco-editor .symbolHighlight{background-color:var(--vscode-editor-symbolHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-symbolHighlightBorder)}.monaco-editor.hc-black .symbolHighlight,.monaco-editor.hc-light .symbolHighlight{border-style:dotted}.monaco-editor .overflow-guard{position:relative;overflow:hidden}.monaco-editor .view-overlays{position:absolute;top:0}.monaco-editor .squiggly-error{border-bottom:4px double var(--vscode-editorError-border)}.monaco-editor .squiggly-error:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorError-background)}.monaco-editor .squiggly-warning{border-bottom:4px double var(--vscode-editorWarning-border)}.monaco-editor .squiggly-warning:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorWarning-background)}.monaco-editor .squiggly-info{border-bottom:4px double var(--vscode-editorInfo-border)}.monaco-editor .squiggly-info:before{display:block;content:"";width:100%;height:100%;background:var(--vscode-editorInfo-background)}.monaco-editor .squiggly-hint{border-bottom:2px dotted var(--vscode-editorHint-border)}.monaco-editor.showUnused .squiggly-unnecessary{border-bottom:2px dashed var(--vscode-editorUnnecessaryCode-border)}.monaco-editor.showDeprecated .squiggly-inline-deprecated{text-decoration:line-through;text-decoration-color:var(--vscode-editor-foreground, inherit)}.monaco-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.monaco-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.monaco-scrollable-element>.invisible{opacity:0;pointer-events:none}.monaco-scrollable-element>.invisible.fade{transition:opacity .8s linear}.monaco-scrollable-element>.shadow{position:absolute;display:none}.monaco-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.monaco-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow) 6px 0 6px -6px inset}.monaco-scrollable-element>.scrollbar>.slider{background:var(--vscode-scrollbarSlider-background)}.monaco-scrollable-element>.scrollbar>.slider:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-scrollable-element>.scrollbar>.slider.active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .inputarea{min-width:0;min-height:0;margin:0;padding:0;position:absolute;outline:none!important;resize:none;border:none;overflow:hidden;color:transparent;background-color:transparent;z-index:-10}.monaco-editor .inputarea.ime-input{z-index:10;caret-color:var(--vscode-editorCursor-foreground);color:var(--vscode-editor-foreground)}.monaco-editor .margin-view-overlays .line-numbers{font-variant-numeric:tabular-nums;position:absolute;text-align:right;display:inline-block;vertical-align:middle;box-sizing:border-box;cursor:default;height:100%}.monaco-editor .relative-current-line-number{text-align:left;display:inline-block;width:100%}.monaco-editor .margin-view-overlays .line-numbers.lh-odd{margin-top:1px}.monaco-editor .line-numbers{color:var(--vscode-editorLineNumber-foreground)}.monaco-editor .line-numbers.active-line-number{color:var(--vscode-editorLineNumber-activeForeground)}.monaco-editor .margin{background-color:var(--vscode-editorGutter-background)}.monaco-mouse-cursor-text{cursor:text}.monaco-editor .blockDecorations-container{position:absolute;top:0;pointer-events:none}.monaco-editor .blockDecorations-block{position:absolute;box-sizing:border-box}.monaco-editor .view-overlays .current-line,.monaco-editor .margin-view-overlays .current-line{display:block;position:absolute;left:0;top:0;box-sizing:border-box}.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both{border-right:0}.monaco-editor .lines-content .cdr{position:absolute}.monaco-editor .glyph-margin{position:absolute;top:0}.monaco-editor .glyph-margin-widgets .cgmr{position:absolute;display:flex;align-items:center;justify-content:center}.monaco-editor .glyph-margin-widgets .cgmr.codicon-modifier-spin:before{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.monaco-editor .lines-content .core-guide{position:absolute;box-sizing:border-box}.mtkcontrol{color:#fff!important;background:#960000!important}.mtkoverflow{background-color:var(--vscode-button-background, var(--vscode-editor-background));color:var(--vscode-button-foreground, var(--vscode-editor-foreground));border-width:1px;border-style:solid;border-color:var(--vscode-contrastBorder);border-radius:2px;padding:4px;cursor:pointer}.mtkoverflow:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-editor.no-user-select .lines-content,.monaco-editor.no-user-select .view-line,.monaco-editor.no-user-select .view-lines{user-select:none;-webkit-user-select:none}.monaco-editor.mac .lines-content:hover,.monaco-editor.mac .view-line:hover,.monaco-editor.mac .view-lines:hover{user-select:text;-webkit-user-select:text;-ms-user-select:text}.monaco-editor.enable-user-select{user-select:initial;-webkit-user-select:initial}.monaco-editor .view-lines{white-space:nowrap}.monaco-editor .view-line{position:absolute;width:100%}.monaco-editor .mtkw{color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .mtkz{display:inline-block;color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .lines-decorations{position:absolute;top:0;background:#fff}.monaco-editor .margin-view-overlays .cldr{position:absolute;height:100%}.monaco-editor .margin-view-overlays .cmdr{position:absolute;left:0;width:100%;height:100%}.monaco-editor .minimap.slider-mouseover .minimap-slider{opacity:0;transition:opacity .1s linear}.monaco-editor .minimap.slider-mouseover:hover .minimap-slider,.monaco-editor .minimap.slider-mouseover .minimap-slider.active{opacity:1}.monaco-editor .minimap-slider .minimap-slider-horizontal{background:var(--vscode-minimapSlider-background)}.monaco-editor .minimap-slider:hover .minimap-slider-horizontal{background:var(--vscode-minimapSlider-hoverBackground)}.monaco-editor .minimap-slider.active .minimap-slider-horizontal{background:var(--vscode-minimapSlider-activeBackground)}.monaco-editor .minimap-shadow-visible{box-shadow:var(--vscode-scrollbar-shadow) -6px 0 6px -6px inset}.monaco-editor .minimap-shadow-hidden{position:absolute;width:0}.monaco-editor .minimap-shadow-visible{position:absolute;left:-6px;width:6px}.monaco-editor.no-minimap-shadow .minimap-shadow-visible{position:absolute;left:-1px;width:1px}.minimap.autohide{opacity:0;transition:opacity .5s}.minimap.autohide:hover{opacity:1}.monaco-editor .minimap{z-index:5}.monaco-editor .overlayWidgets{position:absolute;top:0;left:0}.monaco-editor .view-ruler{position:absolute;top:0;box-shadow:1px 0 0 0 var(--vscode-editorRuler-foreground) inset}.monaco-editor .scroll-decoration{position:absolute;top:0;left:0;height:6px;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-editor .lines-content .cslr{position:absolute}.monaco-editor .focused .selected-text{background-color:var(--vscode-editor-selectionBackground)}.monaco-editor .selected-text{background-color:var(--vscode-editor-inactiveSelectionBackground)}.monaco-editor .top-left-radius{border-top-left-radius:3px}.monaco-editor .bottom-left-radius{border-bottom-left-radius:3px}.monaco-editor .top-right-radius{border-top-right-radius:3px}.monaco-editor .bottom-right-radius{border-bottom-right-radius:3px}.monaco-editor.hc-black .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-black .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-black .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-black .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor.hc-light .top-left-radius{border-top-left-radius:0}.monaco-editor.hc-light .bottom-left-radius{border-bottom-left-radius:0}.monaco-editor.hc-light .top-right-radius{border-top-right-radius:0}.monaco-editor.hc-light .bottom-right-radius{border-bottom-right-radius:0}.monaco-editor .cursors-layer{position:absolute;top:0}.monaco-editor .cursors-layer>.cursor{position:absolute;overflow:hidden;box-sizing:border-box}.monaco-editor .cursors-layer.cursor-smooth-caret-animation>.cursor{transition:all 80ms}.monaco-editor .cursors-layer.cursor-block-outline-style>.cursor{background:transparent!important;border-style:solid;border-width:1px}.monaco-editor .cursors-layer.cursor-underline-style>.cursor{border-bottom-width:2px;border-bottom-style:solid;background:transparent!important}.monaco-editor .cursors-layer.cursor-underline-thin-style>.cursor{border-bottom-width:1px;border-bottom-style:solid;background:transparent!important}@keyframes monaco-cursor-smooth{0%,20%{opacity:1}60%,to{opacity:0}}@keyframes monaco-cursor-phase{0%,20%{opacity:1}90%,to{opacity:0}}@keyframes monaco-cursor-expand{0%,20%{transform:scaleY(1)}80%,to{transform:scaleY(0)}}.cursor-smooth{animation:monaco-cursor-smooth .5s ease-in-out 0s 20 alternate}.cursor-phase{animation:monaco-cursor-phase .5s ease-in-out 0s 20 alternate}.cursor-expand>.cursor{animation:monaco-cursor-expand .5s ease-in-out 0s 20 alternate}.monaco-editor .mwh{position:absolute;color:var(--vscode-editorWhitespace-foreground)!important}.monaco-editor .diff-hidden-lines-widget{width:100%}.monaco-editor .diff-hidden-lines{height:0px;transform:translateY(-10px);font-size:13px;line-height:14px}.monaco-editor .diff-hidden-lines:not(.dragging) .top:hover,.monaco-editor .diff-hidden-lines:not(.dragging) .bottom:hover,.monaco-editor .diff-hidden-lines .top.dragging,.monaco-editor .diff-hidden-lines .bottom.dragging{background-color:var(--vscode-focusBorder)}.monaco-editor .diff-hidden-lines .top,.monaco-editor .diff-hidden-lines .bottom{transition:background-color .1s ease-out;height:4px;background-color:transparent;background-clip:padding-box;border-bottom:2px solid transparent;border-top:4px solid transparent}.monaco-editor.draggingUnchangedRegion.canMoveTop:not(.canMoveBottom) *,.monaco-editor .diff-hidden-lines .top.canMoveTop:not(.canMoveBottom),.monaco-editor .diff-hidden-lines .bottom.canMoveTop:not(.canMoveBottom){cursor:n-resize!important}.monaco-editor.draggingUnchangedRegion:not(.canMoveTop).canMoveBottom *,.monaco-editor .diff-hidden-lines .top:not(.canMoveTop).canMoveBottom,.monaco-editor .diff-hidden-lines .bottom:not(.canMoveTop).canMoveBottom{cursor:s-resize!important}.monaco-editor.draggingUnchangedRegion.canMoveTop.canMoveBottom *,.monaco-editor .diff-hidden-lines .top.canMoveTop.canMoveBottom,.monaco-editor .diff-hidden-lines .bottom.canMoveTop.canMoveBottom{cursor:ns-resize!important}.monaco-editor .diff-hidden-lines .top{transform:translateY(4px)}.monaco-editor .diff-hidden-lines .bottom{transform:translateY(-6px)}.monaco-editor .diff-unchanged-lines{background:var(--vscode-diffEditor-unchangedCodeBackground)}.monaco-editor .noModificationsOverlay{z-index:1;background:var(--vscode-editor-background);display:flex;justify-content:center;align-items:center}.monaco-editor .diff-hidden-lines .center{background:var(--vscode-diffEditor-unchangedRegionBackground);color:var(--vscode-diffEditor-unchangedRegionForeground);overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;height:24px;box-shadow:inset 0 -5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow),inset 0 5px 5px -7px var(--vscode-diffEditor-unchangedRegionShadow)}.monaco-editor .diff-hidden-lines .center span.codicon{vertical-align:middle}.monaco-editor .diff-hidden-lines .center a:hover .codicon{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .diff-hidden-lines div.breadcrumb-item{cursor:pointer}.monaco-editor .diff-hidden-lines div.breadcrumb-item:hover{color:var(--vscode-editorLink-activeForeground)}.monaco-editor .movedOriginal,.monaco-editor .movedModified{border:2px solid var(--vscode-diffEditor-move-border)}.monaco-editor .movedOriginal.currentMove,.monaco-editor .movedModified.currentMove{border:2px solid var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path.currentMove{stroke:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines path{pointer-events:visiblestroke}.monaco-diff-editor .moved-blocks-lines .arrow{fill:var(--vscode-diffEditor-move-border)}.monaco-diff-editor .moved-blocks-lines .arrow.currentMove{fill:var(--vscode-diffEditor-moveActive-border)}.monaco-diff-editor .moved-blocks-lines .arrow-rectangle{fill:var(--vscode-editor-background)}.monaco-diff-editor .moved-blocks-lines{position:absolute;pointer-events:none}.monaco-diff-editor .moved-blocks-lines path{fill:none;stroke:var(--vscode-diffEditor-move-border);stroke-width:2}.monaco-editor .char-delete.diff-range-empty{margin-left:-1px;border-left:solid var(--vscode-diffEditor-removedTextBackground) 3px}.monaco-editor .char-insert.diff-range-empty{border-left:solid var(--vscode-diffEditor-insertedTextBackground) 3px}.monaco-editor .fold-unchanged{cursor:pointer}.monaco-diff-editor .diff-moved-code-block{display:flex;justify-content:flex-end;margin-top:-4px}.monaco-diff-editor .diff-moved-code-block .action-bar .action-label.codicon{width:12px;height:12px;font-size:12px}.monaco-diff-editor .diffOverview{z-index:9}.monaco-diff-editor .diffOverview .diffViewport{z-index:10}.monaco-diff-editor.vs .diffOverview{background:#00000008}.monaco-diff-editor.vs-dark .diffOverview{background:#ffffff03}.monaco-scrollable-element.modified-in-monaco-diff-editor.vs .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark .scrollbar{background:#0000}.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black .scrollbar,.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-light .scrollbar{background:none}.monaco-scrollable-element.modified-in-monaco-diff-editor .slider{z-index:10}.modified-in-monaco-diff-editor .slider.active{background:#ababab66}.modified-in-monaco-diff-editor.hc-black .slider.active,.modified-in-monaco-diff-editor.hc-light .slider.active{background:none}.monaco-editor .insert-sign,.monaco-diff-editor .insert-sign,.monaco-editor .delete-sign,.monaco-diff-editor .delete-sign{font-size:11px!important;opacity:.7!important;display:flex!important;align-items:center}.monaco-editor.hc-black .insert-sign,.monaco-diff-editor.hc-black .insert-sign,.monaco-editor.hc-black .delete-sign,.monaco-diff-editor.hc-black .delete-sign,.monaco-editor.hc-light .insert-sign,.monaco-diff-editor.hc-light .insert-sign,.monaco-editor.hc-light .delete-sign,.monaco-diff-editor.hc-light .delete-sign{opacity:1}.monaco-editor .inline-deleted-margin-view-zone,.monaco-editor .inline-added-margin-view-zone{text-align:right}.monaco-editor .arrow-revert-change{z-index:10;position:absolute}.monaco-editor .arrow-revert-change:hover{cursor:pointer}.monaco-editor .view-zones .view-lines .view-line span{display:inline-block}.monaco-editor .margin-view-zones .lightbulb-glyph:hover{cursor:pointer}.monaco-editor .char-insert,.monaco-diff-editor .char-insert{background-color:var(--vscode-diffEditor-insertedTextBackground)}.monaco-editor .line-insert,.monaco-diff-editor .line-insert{background-color:var(--vscode-diffEditor-insertedLineBackground, var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .line-insert,.monaco-editor .char-insert{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-insertedTextBorder)}.monaco-editor.hc-black .line-insert,.monaco-editor.hc-light .line-insert,.monaco-editor.hc-black .char-insert,.monaco-editor.hc-light .char-insert{border-style:dashed}.monaco-editor .line-delete,.monaco-editor .char-delete{box-sizing:border-box;border:1px solid var(--vscode-diffEditor-removedTextBorder)}.monaco-editor.hc-black .line-delete,.monaco-editor.hc-light .line-delete,.monaco-editor.hc-black .char-delete,.monaco-editor.hc-light .char-delete{border-style:dashed}.monaco-editor .inline-added-margin-view-zone,.monaco-editor .gutter-insert,.monaco-diff-editor .gutter-insert{background-color:var(--vscode-diffEditorGutter-insertedLineBackground, var(--vscode-diffEditor-insertedLineBackground), var(--vscode-diffEditor-insertedTextBackground))}.monaco-editor .char-delete,.monaco-diff-editor .char-delete{background-color:var(--vscode-diffEditor-removedTextBackground)}.monaco-editor .line-delete,.monaco-diff-editor .line-delete{background-color:var(--vscode-diffEditor-removedLineBackground, var(--vscode-diffEditor-removedTextBackground))}.monaco-editor .inline-deleted-margin-view-zone,.monaco-editor .gutter-delete,.monaco-diff-editor .gutter-delete{background-color:var(--vscode-diffEditorGutter-removedLineBackground, var(--vscode-diffEditor-removedLineBackground), var(--vscode-diffEditor-removedTextBackground))}.monaco-diff-editor.side-by-side .editor.modified{box-shadow:-6px 0 5px -5px var(--vscode-scrollbar-shadow);border-left:1px solid var(--vscode-diffEditor-border)}.monaco-diff-editor .diffViewport{background:var(--vscode-scrollbarSlider-background)}.monaco-diff-editor .diffViewport:hover{background:var(--vscode-scrollbarSlider-hoverBackground)}.monaco-diff-editor .diffViewport:active{background:var(--vscode-scrollbarSlider-activeBackground)}.monaco-editor .diagonal-fill{background-image:linear-gradient(-45deg,var(--vscode-diffEditor-diagonalFill) 12.5%,#0000 12.5%,#0000 50%,var(--vscode-diffEditor-diagonalFill) 50%,var(--vscode-diffEditor-diagonalFill) 62.5%,#0000 62.5%,#0000 100%);background-size:8px 8px}.monaco-list{position:relative;height:100%;width:100%;white-space:nowrap}.monaco-list.mouse-support{user-select:none;-webkit-user-select:none}.monaco-list>.monaco-scrollable-element{height:100%}.monaco-list-rows{position:relative;width:100%;height:100%}.monaco-list.horizontal-scrolling .monaco-list-rows{width:auto;min-width:100%}.monaco-list-row{position:absolute;box-sizing:border-box;overflow:hidden;width:100%}.monaco-list.mouse-support .monaco-list-row{cursor:pointer;touch-action:none}.monaco-list .monaco-scrollable-element>.scrollbar.vertical,.monaco-pane-view>.monaco-split-view2.vertical>.monaco-scrollable-element>.scrollbar.vertical{z-index:14}.monaco-list-row.scrolling{display:none!important}.monaco-list.element-focused,.monaco-list.selection-single,.monaco-list.selection-multiple{outline:0!important}.monaco-drag-image{display:inline-block;padding:1px 7px;border-radius:10px;font-size:12px;position:absolute;z-index:1000}.monaco-list-type-filter-message{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;padding:40px 1em 1em;text-align:center;white-space:normal;opacity:.7;pointer-events:none}.monaco-list-type-filter-message:empty{display:none}.monaco-select-box-dropdown-padding{--dropdown-padding-top: 1px;--dropdown-padding-bottom: 1px}.hc-black .monaco-select-box-dropdown-padding,.hc-light .monaco-select-box-dropdown-padding{--dropdown-padding-top: 3px;--dropdown-padding-bottom: 4px}.monaco-select-box-dropdown-container{display:none;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown *{margin:0}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown a:focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px}.monaco-select-box-dropdown-container>.select-box-details-pane>.select-box-description-markdown code{line-height:15px;font-family:var(--monaco-monospace-font)}.monaco-select-box-dropdown-container.visible{display:flex;flex-direction:column;text-align:left;width:1px;overflow:hidden;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container{flex:0 0 auto;align-self:flex-start;padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom);padding-left:1px;padding-right:1px;width:100%;overflow:hidden;box-sizing:border-box}.monaco-select-box-dropdown-container>.select-box-details-pane{padding:5px}.hc-black .monaco-select-box-dropdown-container>.select-box-dropdown-list-container{padding-top:var(--dropdown-padding-top);padding-bottom:var(--dropdown-padding-bottom)}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row{cursor:pointer}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-text{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-detail{text-overflow:ellipsis;overflow:hidden;padding-left:3.5px;white-space:nowrap;float:left;opacity:.7}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.option-decorator-right{text-overflow:ellipsis;overflow:hidden;padding-right:10px;white-space:nowrap;float:right}.monaco-select-box-dropdown-container>.select-box-dropdown-list-container .monaco-list .monaco-list-row>.visually-hidden{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control{flex:1 1 auto;align-self:flex-start;opacity:0}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div{overflow:hidden;max-height:0px}.monaco-select-box-dropdown-container>.select-box-dropdown-container-width-control>.width-control-div>.option-text-width-control{padding-left:4px;padding-right:8px;white-space:nowrap}.monaco-select-box{width:100%;cursor:pointer;border-radius:2px}.monaco-select-box-dropdown-container{font-size:13px;font-weight:400;text-transform:none}.monaco-action-bar .action-item.select-container{cursor:default}.monaco-action-bar .action-item .monaco-select-box{cursor:pointer;min-width:100px;min-height:18px;padding:2px 23px 2px 8px}.mac .monaco-action-bar .action-item .monaco-select-box{font-size:11px;border-radius:5px}.monaco-action-bar{white-space:nowrap;height:100%}.monaco-action-bar .actions-container{display:flex;margin:0 auto;padding:0;height:100%;width:100%;align-items:center}.monaco-action-bar.vertical .actions-container{display:inline-block}.monaco-action-bar .action-item{display:block;align-items:center;justify-content:center;cursor:pointer;position:relative}.monaco-action-bar .action-item.disabled{cursor:default}.monaco-action-bar .action-item .icon,.monaco-action-bar .action-item .codicon{display:block}.monaco-action-bar .action-item .codicon{display:flex;align-items:center;width:16px;height:16px}.monaco-action-bar .action-label{display:flex;font-size:11px;padding:3px;border-radius:5px}.monaco-action-bar .action-item.disabled .action-label,.monaco-action-bar .action-item.disabled .action-label:before,.monaco-action-bar .action-item.disabled .action-label:hover{color:var(--vscode-disabledForeground)}.monaco-action-bar.vertical{text-align:left}.monaco-action-bar.vertical .action-item{display:block}.monaco-action-bar.vertical .action-label.separator{display:block;border-bottom:1px solid #bbb;padding-top:1px;margin-left:.8em;margin-right:.8em}.monaco-action-bar .action-item .action-label.separator{width:1px;height:16px;margin:5px 4px!important;cursor:default;min-width:1px;padding:0;background-color:#bbb}.secondary-actions .monaco-action-bar .action-label{margin-left:6px}.monaco-action-bar .action-item.select-container{overflow:hidden;flex:1;max-width:170px;min-width:60px;display:flex;align-items:center;justify-content:center;margin-right:10px}.monaco-action-bar .action-item.action-dropdown-item{display:flex}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator{display:flex;align-items:center;cursor:default}.monaco-action-bar .action-item.action-dropdown-item>.action-dropdown-item-separator>div{width:1px}.monaco-component.diff-review{user-select:none;-webkit-user-select:none;z-index:99}.monaco-diff-editor .diff-review{position:absolute}.monaco-component.diff-review .diff-review-line-number{text-align:right;display:inline-block;color:var(--vscode-editorLineNumber-foreground)}.monaco-component.diff-review .diff-review-summary{padding-left:10px}.monaco-component.diff-review .diff-review-shadow{position:absolute;box-shadow:var(--vscode-scrollbar-shadow) 0 -6px 6px -6px inset}.monaco-component.diff-review .diff-review-row{white-space:pre}.monaco-component.diff-review .diff-review-table{display:table;min-width:100%}.monaco-component.diff-review .diff-review-row{display:table-row;width:100%}.monaco-component.diff-review .diff-review-spacer{display:inline-block;width:10px;vertical-align:middle}.monaco-component.diff-review .diff-review-spacer>.codicon{font-size:9px!important}.monaco-component.diff-review .diff-review-actions{display:inline-block;position:absolute;right:10px;top:2px;z-index:100}.monaco-component.diff-review .diff-review-actions .action-label{width:16px;height:16px;margin:2px 0}.monaco-component.diff-review .revertButton{cursor:pointer}:root{--vscode-sash-size: 4px;--vscode-sash-hover-size: 4px}.monaco-sash{position:absolute;z-index:35;touch-action:none}.monaco-sash.disabled{pointer-events:none}.monaco-sash.mac.vertical{cursor:col-resize}.monaco-sash.vertical.minimum{cursor:e-resize}.monaco-sash.vertical.maximum{cursor:w-resize}.monaco-sash.mac.horizontal{cursor:row-resize}.monaco-sash.horizontal.minimum{cursor:s-resize}.monaco-sash.horizontal.maximum{cursor:n-resize}.monaco-sash.disabled{cursor:default!important;pointer-events:none!important}.monaco-sash.vertical{cursor:ew-resize;top:0;width:var(--vscode-sash-size);height:100%}.monaco-sash.horizontal{cursor:ns-resize;left:0;width:100%;height:var(--vscode-sash-size)}.monaco-sash:not(.disabled)>.orthogonal-drag-handle{content:" ";height:calc(var(--vscode-sash-size) * 2);width:calc(var(--vscode-sash-size) * 2);z-index:100;display:block;cursor:all-scroll;position:absolute}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.start,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.end{cursor:nwse-resize}.monaco-sash.horizontal.orthogonal-edge-north:not(.disabled)>.orthogonal-drag-handle.end,.monaco-sash.horizontal.orthogonal-edge-south:not(.disabled)>.orthogonal-drag-handle.start{cursor:nesw-resize}.monaco-sash.vertical>.orthogonal-drag-handle.start{left:calc(var(--vscode-sash-size) * -.5);top:calc(var(--vscode-sash-size) * -1)}.monaco-sash.vertical>.orthogonal-drag-handle.end{left:calc(var(--vscode-sash-size) * -.5);bottom:calc(var(--vscode-sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.start{top:calc(var(--vscode-sash-size) * -.5);left:calc(var(--vscode-sash-size) * -1)}.monaco-sash.horizontal>.orthogonal-drag-handle.end{top:calc(var(--vscode-sash-size) * -.5);right:calc(var(--vscode-sash-size) * -1)}.monaco-sash:before{content:"";pointer-events:none;position:absolute;width:100%;height:100%;background:transparent}.monaco-workbench:not(.reduce-motion) .monaco-sash:before{transition:background-color .1s ease-out}.monaco-sash.hover:before,.monaco-sash.active:before{background:var(--vscode-sash-hoverBorder)}.monaco-sash.vertical:before{width:var(--vscode-sash-hover-size);left:calc(50% - (var(--vscode-sash-hover-size) / 2))}.monaco-sash.horizontal:before{height:var(--vscode-sash-hover-size);top:calc(50% - (var(--vscode-sash-hover-size) / 2))}.pointer-events-disabled{pointer-events:none!important}.monaco-sash.debug{background:#0ff}.monaco-sash.debug.disabled{background:#0ff3}.monaco-sash.debug:not(.disabled)>.orthogonal-drag-handle{background:red}.monaco-editor .selection-anchor{background-color:#007acc;width:2px!important}.monaco-editor .bracket-match{box-sizing:border-box;background-color:var(--vscode-editorBracketMatch-background);border:1px solid var(--vscode-editorBracketMatch-border)}.inline-editor-progress-decoration{display:inline-block;width:1em;height:1em}.inline-progress-widget{display:flex!important;justify-content:center;align-items:center}.inline-progress-widget .icon{font-size:80%!important}.inline-progress-widget:hover .icon{font-size:90%!important;animation:none}.inline-progress-widget:hover .icon:before{content:""}.monaco-text-button{box-sizing:border-box;display:flex;width:100%;padding:4px;border-radius:2px;text-align:center;cursor:pointer;justify-content:center;align-items:center;border:1px solid var(--vscode-button-border, transparent);line-height:18px}.monaco-text-button:focus{outline-offset:2px!important}.monaco-text-button:hover{text-decoration:none!important}.monaco-button.disabled:focus,.monaco-button.disabled{opacity:.4!important;cursor:default}.monaco-text-button .codicon{margin:0 .2em;color:inherit!important}.monaco-text-button.monaco-text-button-with-short-label{flex-direction:row;flex-wrap:wrap;padding:0 4px;overflow:hidden;height:28px}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label{flex-basis:100%}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{flex-grow:1;width:0;overflow:hidden}.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label,.monaco-text-button.monaco-text-button-with-short-label>.monaco-button-label-short{display:flex;justify-content:center;align-items:center;font-weight:400;font-style:inherit;padding:4px 0}.monaco-button-dropdown{display:flex;cursor:pointer}.monaco-button-dropdown.disabled{cursor:default}.monaco-button-dropdown>.monaco-button:focus{outline-offset:-1px!important}.monaco-button-dropdown.disabled>.monaco-button.disabled,.monaco-button-dropdown.disabled>.monaco-button.disabled:focus,.monaco-button-dropdown.disabled>.monaco-button-dropdown-separator{opacity:.4!important}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-right-width:0!important}.monaco-button-dropdown .monaco-button-dropdown-separator{padding:4px 0;cursor:default}.monaco-button-dropdown .monaco-button-dropdown-separator>div{height:100%;width:1px}.monaco-button-dropdown>.monaco-button.monaco-dropdown-button{border:1px solid var(--vscode-button-border, transparent);border-left-width:0!important;border-radius:0 2px 2px 0;display:flex;align-items:center}.monaco-button-dropdown>.monaco-button.monaco-text-button{border-radius:2px 0 0 2px}.monaco-description-button{display:flex;flex-direction:column;align-items:center;margin:4px 5px}.monaco-description-button .monaco-button-description{font-style:italic;font-size:11px;padding:4px 20px}.monaco-description-button .monaco-button-label,.monaco-description-button .monaco-button-description{display:flex;justify-content:center;align-items:center}.monaco-description-button .monaco-button-label>.codicon,.monaco-description-button .monaco-button-description>.codicon{margin:0 .2em;color:inherit!important}.monaco-button.default-colors,.monaco-button-dropdown.default-colors>.monaco-button{color:var(--vscode-button-foreground);background-color:var(--vscode-button-background)}.monaco-button.default-colors:hover,.monaco-button-dropdown.default-colors>.monaco-button:hover{background-color:var(--vscode-button-hoverBackground)}.monaco-button.default-colors.secondary,.monaco-button-dropdown.default-colors>.monaco-button.secondary{color:var(--vscode-button-secondaryForeground);background-color:var(--vscode-button-secondaryBackground)}.monaco-button.default-colors.secondary:hover,.monaco-button-dropdown.default-colors>.monaco-button.secondary:hover{background-color:var(--vscode-button-secondaryHoverBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator{background-color:var(--vscode-button-background);border-top:1px solid var(--vscode-button-border);border-bottom:1px solid var(--vscode-button-border)}.monaco-button-dropdown.default-colors .monaco-button.secondary+.monaco-button-dropdown-separator{background-color:var(--vscode-button-secondaryBackground)}.monaco-button-dropdown.default-colors .monaco-button-dropdown-separator>div{background-color:var(--vscode-button-separator)}.post-edit-widget{box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:1px solid var(--vscode-widget-border, transparent);border-radius:4px;background-color:var(--vscode-editorWidget-background);overflow:hidden}.post-edit-widget .monaco-button{padding:2px;border:none;border-radius:0}.post-edit-widget .monaco-button:hover{background-color:var(--vscode-button-secondaryHoverBackground)!important}.post-edit-widget .monaco-button .codicon{margin:0}.monaco-editor .monaco-editor-overlaymessage{padding-bottom:8px;z-index:10000}.monaco-editor .monaco-editor-overlaymessage.below{padding-bottom:0;padding-top:8px;z-index:10000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.monaco-editor .monaco-editor-overlaymessage.fadeIn{animation:fadeIn .15s ease-out}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.monaco-editor .monaco-editor-overlaymessage.fadeOut{animation:fadeOut .1s ease-out}.monaco-editor .monaco-editor-overlaymessage .message{padding:2px 4px;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-inputValidation-infoBorder);border-radius:3px}.monaco-editor .monaco-editor-overlaymessage .message p{margin-block:0px}.monaco-editor .monaco-editor-overlaymessage .message a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-editor-overlaymessage .message a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor.hc-black .monaco-editor-overlaymessage .message,.monaco-editor.hc-light .monaco-editor-overlaymessage .message{border-width:2px}.monaco-editor .monaco-editor-overlaymessage .anchor{width:0!important;height:0!important;border-color:transparent;border-style:solid;z-index:1000;border-width:8px;position:absolute;left:2px}.monaco-editor .monaco-editor-overlaymessage .anchor.top{border-bottom-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage .anchor.below{border-top-color:var(--vscode-inputValidation-infoBorder)}.monaco-editor .monaco-editor-overlaymessage:not(.below) .anchor.top,.monaco-editor .monaco-editor-overlaymessage.below .anchor.below{display:none}.monaco-editor .monaco-editor-overlaymessage.below .anchor.top{display:inherit;top:-8px}.monaco-editor .rendered-markdown kbd{background-color:var(--vscode-keybindingLabel-background);color:var(--vscode-keybindingLabel-foreground);border-style:solid;border-width:1px;border-radius:3px;border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow);vertical-align:middle;padding:1px 3px}.rendered-markdown li:has(input[type=checkbox]){list-style-type:none}@font-face{font-family:codicon;font-display:block;src:url(data:font/ttf;base64,AAEAAAALAIAAAwAwR1NVQiCLJXoAAAE4AAAAVE9TLzI3T0tHAAABjAAAAGBjbWFwObsASQAACRAAABqYZ2x5ZpMnncEAACc8AAD0wGhlYWRYl6BTAAAA4AAAADZoaGVhAlsC9AAAALwAAAAkaG10eBZl//oAAAHsAAAHJGxvY2G8OPkkAAAjqAAAA5RtYXhwAuoBgQAAARgAAAAgbmFtZZP3uUsAARv8AAAB+HBvc3Ta7+sdAAEd9AAAGNoAAQAAASwAAAAAASz////+AS4AAQAAAAAAAAAAAAAAAAAAAckAAQAAAAEAANX/6k9fDzz1AAsBLAAAAAB8JbCAAAAAAHwlsID////9AS4BLQAAAAgAAgAAAAAAAAABAAAByQF1ABcAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAQBKwGQAAUAAADLANIAAAAqAMsA0gAAAJAADgBNAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwOpg8QEBLAAAABsBRwADAAAAAQAAAAAAAAAAAAAAAAACAAAAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASz//wEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASz//wEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLP//ASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEs//8BLAAAASwAAAEsAAABLP//ASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAAAAAUAAAADAAAALAAAAAQAAAUcAAEAAAAABBYAAwABAAAALAADAAoAAAUcAAQD6gAAABIAEAADAALqiOqM6sfqyesJ607sL/EB//8AAOpg6orqj+rJ6szrC+tQ8QH//wAAAAAAAAAAAAAAAAAAAAAAAQASAGIAZgDWANYBUAHWA5QAAAADAO8BRQFCALMBMgGQASABaQEKAW8ATQG+AVsBZQFkAJAANQErAIUAzQD8AEABjgB4ABYBuQCaAIcBPgEZARABEQGjAMcApQC7AZsBewCKAYwBdAGDAYEBdQGEAYsBhgF/AL0BegGIAAIABAAFAAoACwAMAA0ADgAPABAAEgAaABwAHQAeAFsAXABdAF4AYQBiACEAIgAjACQAJQAoACoAKwAsAC0ALgAvADEAMgAzADQAOwA4ADwAPQA+AD8AQQBCAEUARwBIAEoAVABVAFYAVwBmAGgAagBtAHEAcwB0AHUAdgB3AHkAegB7AHwAfQB+AIAAgQCDAIQAhgCIAIsAjgCPAJIAkwCUAJUAlgCXAJgAmQCbAJ0AngCfAKAAoQCiAKQApwCoAKkAkwCqAKsArQC3ALgAvAC+AMIAwwDGAMgAyQDKAMsA0QDSANMA1ADVANYA1wDYAO0A8ADxAPQA9wD4APkA+gD+AP8BAgEDAQQBCQELAQwBDQEPARMBFAEXARgBGwEcASMBJwEoASkBKgEsAS0BLgEvATABMQE2ATcBOAE5AToBOwE8AT0BPwFBAUMBRAFGAUcBSQFKAUsBTAFNAVQBVQFWAVcBWAFaAV8BYAFhAWMBZgFoAWwBbQFuAXABcQF2AXcBeAF5AXwBfQF+AYABggGFAYcBiQGSAZMBnAGdAZ8BoQGiAaQBpQGmAacBqAGsAa4BrwGwAbMBtAG1AbcBuAG/AcABwQHCAcMBxwHIAPIA8wD1APYAXwBgAG8AOQBwAGMBigBuAHIAbABaACYAJwEFAIwAkQDEAa0AAQAXAGQA7AEaAVABjQElALkBXgFdAR4BcgEmATQAWQG2AEMBBgCNAL8A/QEWATUAKQEkAR0ANgA3AEkBjwGxAasBqQGqAK8BTgFRARUAawHEAcYBxQGVAZYBlwGYAZkBmgGUABEAUgEfAJwBvQBpAM8A2wDaANkAUABPAE4AFADQAK4AsABYAGcBUwCjAGUAFQDAAMEBIgAfACAA+wATAbIBEgDrANwA3QDiAOAA4QDkAOUA5wDpAOoA3wDeAZEAzAEzAIkABgAHAAgACQDoAOMA5gAbAMUBAQEAADoAGQAYAEwAsQCyAVkASwFcAWsAzgEIAZ4BoABGAWcApgG6ADABIQEOAQcBQABRAO4BSAFqAIIAfwFzAWIAtgC0ALUBvAG7AEQBUgFPAFMAugCsAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAABV8AAAAAAAAAckAAOpgAADqYAAAAAMAAOphAADqYQAAAO8AAOpiAADqYgAAAUUAAOpjAADqYwAAAUIAAOpkAADqZAAAALMAAOplAADqZQAAATIAAOpmAADqZgAAAZAAAOpnAADqZwAAASAAAOpoAADqaAAAAWkAAOppAADqaQAAAQoAAOpqAADqagAAAW8AAOprAADqawAAAE0AAOpsAADqbAAAAb4AAOptAADqbQAAAVsAAOpuAADqbgAAAWUAAOpvAADqbwAAAWQAAOpwAADqcAAAAJAAAOpxAADqcQAAADUAAOpyAADqcgAAASsAAOpzAADqcwAAAIUAAOp0AADqdAAAAM0AAOp1AADqdQAAAPwAAOp2AADqdgAAAEAAAOp3AADqdwAAAY4AAOp4AADqeAAAAHgAAOp5AADqeQAAABYAAOp6AADqegAAAbkAAOp7AADqewAAAJoAAOp8AADqfAAAAIcAAOp9AADqfQAAAT4AAOp+AADqfgAAARkAAOp/AADqfwAAARAAAOqAAADqgAAAAREAAOqBAADqgQAAAaMAAOqCAADqggAAAMcAAOqDAADqgwAAAKUAAOqEAADqhAAAALsAAOqFAADqhQAAAZsAAOqGAADqhgAAAXsAAOqHAADqhwAAAIoAAOqIAADqiAAAAYwAAOqKAADqigAAAXQAAOqLAADqiwAAAYMAAOqMAADqjAAAAYEAAOqPAADqjwAAAXUAAOqQAADqkAAAAYQAAOqRAADqkQAAAYsAAOqSAADqkgAAAYYAAOqTAADqkwAAAX8AAOqUAADqlAAAAL0AAOqVAADqlQAAAXoAAOqWAADqlgAAAYgAAOqXAADqlwAAAAIAAOqYAADqmAAAAAQAAOqZAADqmQAAAAUAAOqaAADqmgAAAAoAAOqbAADqmwAAAAsAAOqcAADqnAAAAAwAAOqdAADqnQAAAA0AAOqeAADqngAAAA4AAOqfAADqnwAAAA8AAOqgAADqoAAAABAAAOqhAADqoQAAABIAAOqiAADqogAAABoAAOqjAADqowAAABwAAOqkAADqpAAAAB0AAOqlAADqpQAAAB4AAOqmAADqpgAAAFsAAOqnAADqpwAAAFwAAOqoAADqqAAAAF0AAOqpAADqqQAAAF4AAOqqAADqqgAAAGEAAOqrAADqqwAAAGIAAOqsAADqrAAAACEAAOqtAADqrQAAACIAAOquAADqrgAAACMAAOqvAADqrwAAACQAAOqwAADqsAAAACUAAOqxAADqsQAAACgAAOqyAADqsgAAACoAAOqzAADqswAAACsAAOq0AADqtAAAACwAAOq1AADqtQAAAC0AAOq2AADqtgAAAC4AAOq3AADqtwAAAC8AAOq4AADquAAAADEAAOq5AADquQAAADIAAOq6AADqugAAADMAAOq7AADquwAAADQAAOq8AADqvAAAADsAAOq9AADqvQAAADgAAOq+AADqvgAAADwAAOq/AADqvwAAAD0AAOrAAADqwAAAAD4AAOrBAADqwQAAAD8AAOrCAADqwgAAAEEAAOrDAADqwwAAAEIAAOrEAADqxAAAAEUAAOrFAADqxQAAAEcAAOrGAADqxgAAAEgAAOrHAADqxwAAAEoAAOrJAADqyQAAAFQAAOrMAADqzAAAAFUAAOrNAADqzQAAAFYAAOrOAADqzgAAAFcAAOrPAADqzwAAAGYAAOrQAADq0AAAAGgAAOrRAADq0QAAAGoAAOrSAADq0gAAAG0AAOrTAADq0wAAAHEAAOrUAADq1AAAAHMAAOrVAADq1QAAAHQAAOrWAADq1gAAAHUAAOrXAADq1wAAAHYAAOrYAADq2AAAAHcAAOrZAADq2QAAAHkAAOraAADq2gAAAHoAAOrbAADq2wAAAHsAAOrcAADq3AAAAHwAAOrdAADq3QAAAH0AAOreAADq3gAAAH4AAOrfAADq3wAAAIAAAOrgAADq4AAAAIEAAOrhAADq4QAAAIMAAOriAADq4gAAAIQAAOrjAADq4wAAAIYAAOrkAADq5AAAAIgAAOrlAADq5QAAAIsAAOrmAADq5gAAAI4AAOrnAADq5wAAAI8AAOroAADq6AAAAJIAAOrpAADq6QAAAJMAAOrqAADq6gAAAJQAAOrrAADq6wAAAJUAAOrsAADq7AAAAJYAAOrtAADq7QAAAJcAAOruAADq7gAAAJgAAOrvAADq7wAAAJkAAOrwAADq8AAAAJsAAOrxAADq8QAAAJ0AAOryAADq8gAAAJ4AAOrzAADq8wAAAJ8AAOr0AADq9AAAAKAAAOr1AADq9QAAAKEAAOr2AADq9gAAAKIAAOr3AADq9wAAAKQAAOr4AADq+AAAAKcAAOr5AADq+QAAAKgAAOr6AADq+gAAAKkAAOr7AADq+wAAAJMAAOr8AADq/AAAAKoAAOr9AADq/QAAAKsAAOr+AADq/gAAAK0AAOr/AADq/wAAALcAAOsAAADrAAAAALgAAOsBAADrAQAAALwAAOsCAADrAgAAAL4AAOsDAADrAwAAAMIAAOsEAADrBAAAAMMAAOsFAADrBQAAAMYAAOsGAADrBgAAAMgAAOsHAADrBwAAAMkAAOsIAADrCAAAAMoAAOsJAADrCQAAAMsAAOsLAADrCwAAANEAAOsMAADrDAAAANIAAOsNAADrDQAAANMAAOsOAADrDgAAANQAAOsPAADrDwAAANUAAOsQAADrEAAAANYAAOsRAADrEQAAANcAAOsSAADrEgAAANgAAOsTAADrEwAAAO0AAOsUAADrFAAAAPAAAOsVAADrFQAAAPEAAOsWAADrFgAAAPQAAOsXAADrFwAAAPcAAOsYAADrGAAAAPgAAOsZAADrGQAAAPkAAOsaAADrGgAAAPoAAOsbAADrGwAAAP4AAOscAADrHAAAAP8AAOsdAADrHQAAAQIAAOseAADrHgAAAQMAAOsfAADrHwAAAQQAAOsgAADrIAAAAQkAAOshAADrIQAAAQsAAOsiAADrIgAAAQwAAOsjAADrIwAAAQ0AAOskAADrJAAAAQ8AAOslAADrJQAAARMAAOsmAADrJgAAARQAAOsnAADrJwAAARcAAOsoAADrKAAAARgAAOspAADrKQAAARsAAOsqAADrKgAAARwAAOsrAADrKwAAASMAAOssAADrLAAAAScAAOstAADrLQAAASgAAOsuAADrLgAAASkAAOsvAADrLwAAASoAAOswAADrMAAAASwAAOsxAADrMQAAAS0AAOsyAADrMgAAAS4AAOszAADrMwAAAS8AAOs0AADrNAAAATAAAOs1AADrNQAAATEAAOs2AADrNgAAATYAAOs3AADrNwAAATcAAOs4AADrOAAAATgAAOs5AADrOQAAATkAAOs6AADrOgAAAToAAOs7AADrOwAAATsAAOs8AADrPAAAATwAAOs9AADrPQAAAT0AAOs+AADrPgAAAT8AAOs/AADrPwAAAUEAAOtAAADrQAAAAUMAAOtBAADrQQAAAUQAAOtCAADrQgAAAUYAAOtDAADrQwAAAUcAAOtEAADrRAAAAUkAAOtFAADrRQAAAUoAAOtGAADrRgAAAUsAAOtHAADrRwAAAUwAAOtIAADrSAAAAU0AAOtJAADrSQAAAVQAAOtKAADrSgAAAVUAAOtLAADrSwAAAVYAAOtMAADrTAAAAVcAAOtNAADrTQAAAVgAAOtOAADrTgAAAVoAAOtQAADrUAAAAV8AAOtRAADrUQAAAWAAAOtSAADrUgAAAWEAAOtTAADrUwAAAWMAAOtUAADrVAAAAWYAAOtVAADrVQAAAWgAAOtWAADrVgAAAWwAAOtXAADrVwAAAW0AAOtYAADrWAAAAW4AAOtZAADrWQAAAXAAAOtaAADrWgAAAXEAAOtbAADrWwAAAXYAAOtcAADrXAAAAXcAAOtdAADrXQAAAXgAAOteAADrXgAAAXkAAOtfAADrXwAAAXwAAOtgAADrYAAAAX0AAOthAADrYQAAAX4AAOtiAADrYgAAAYAAAOtjAADrYwAAAYIAAOtkAADrZAAAAYUAAOtlAADrZQAAAYcAAOtmAADrZgAAAYkAAOtnAADrZwAAAZIAAOtoAADraAAAAZMAAOtpAADraQAAAZwAAOtqAADragAAAZ0AAOtrAADrawAAAZ8AAOtsAADrbAAAAaEAAOttAADrbQAAAaIAAOtuAADrbgAAAaQAAOtvAADrbwAAAaUAAOtwAADrcAAAAaYAAOtxAADrcQAAAacAAOtyAADrcgAAAagAAOtzAADrcwAAAawAAOt0AADrdAAAAa4AAOt1AADrdQAAAa8AAOt2AADrdgAAAbAAAOt3AADrdwAAAbMAAOt4AADreAAAAbQAAOt5AADreQAAAbUAAOt6AADregAAAbcAAOt7AADrewAAAbgAAOt8AADrfAAAAb8AAOt9AADrfQAAAcAAAOt+AADrfgAAAcEAAOt/AADrfwAAAcIAAOuAAADrgAAAAcMAAOuBAADrgQAAAccAAOuCAADrggAAAcgAAOuDAADrgwAAAPIAAOuEAADrhAAAAPMAAOuFAADrhQAAAPUAAOuGAADrhgAAAPYAAOuHAADrhwAAAF8AAOuIAADriAAAAGAAAOuJAADriQAAAG8AAOuKAADrigAAADkAAOuLAADriwAAAHAAAOuMAADrjAAAAGMAAOuNAADrjQAAAYoAAOuOAADrjgAAAG4AAOuPAADrjwAAAHIAAOuQAADrkAAAAGwAAOuRAADrkQAAAFoAAOuSAADrkgAAACYAAOuTAADrkwAAACcAAOuUAADrlAAAAQUAAOuVAADrlQAAAIwAAOuWAADrlgAAAJEAAOuXAADrlwAAAMQAAOuYAADrmAAAAa0AAOuZAADrmQAAAAEAAOuaAADrmgAAABcAAOubAADrmwAAAGQAAOucAADrnAAAAOwAAOudAADrnQAAARoAAOueAADrngAAAVAAAOufAADrnwAAAY0AAOugAADroAAAASUAAOuhAADroQAAALkAAOuiAADrogAAAV4AAOujAADrowAAAV0AAOukAADrpAAAAR4AAOulAADrpQAAAXIAAOumAADrpgAAASYAAOunAADrpwAAATQAAOuoAADrqAAAAFkAAOupAADrqQAAAbYAAOuqAADrqgAAAEMAAOurAADrqwAAAQYAAOusAADrrAAAAI0AAOutAADrrQAAAL8AAOuuAADrrgAAAP0AAOuvAADrrwAAARYAAOuwAADrsAAAATUAAOuxAADrsQAAACkAAOuyAADrsgAAASQAAOuzAADrswAAAR0AAOu0AADrtAAAADYAAOu1AADrtQAAADcAAOu2AADrtgAAAEkAAOu3AADrtwAAAY8AAOu4AADruAAAAbEAAOu5AADruQAAAasAAOu6AADrugAAAakAAOu7AADruwAAAaoAAOu8AADrvAAAAK8AAOu9AADrvQAAAU4AAOu+AADrvgAAAVEAAOu/AADrvwAAARUAAOvAAADrwAAAAGsAAOvBAADrwQAAAcQAAOvCAADrwgAAAcYAAOvDAADrwwAAAcUAAOvEAADrxAAAAZUAAOvFAADrxQAAAZYAAOvGAADrxgAAAZcAAOvHAADrxwAAAZgAAOvIAADryAAAAZkAAOvJAADryQAAAZoAAOvKAADrygAAAZQAAOvLAADrywAAABEAAOvMAADrzAAAAFIAAOvNAADrzQAAAR8AAOvOAADrzgAAAJwAAOvPAADrzwAAAb0AAOvQAADr0AAAAGkAAOvRAADr0QAAAM8AAOvSAADr0gAAANsAAOvTAADr0wAAANoAAOvUAADr1AAAANkAAOvVAADr1QAAAFAAAOvWAADr1gAAAE8AAOvXAADr1wAAAE4AAOvYAADr2AAAABQAAOvZAADr2QAAANAAAOvaAADr2gAAAK4AAOvbAADr2wAAALAAAOvcAADr3AAAAFgAAOvdAADr3QAAAGcAAOveAADr3gAAAVMAAOvfAADr3wAAAKMAAOvgAADr4AAAAGUAAOvhAADr4QAAABUAAOviAADr4gAAAMAAAOvjAADr4wAAAMEAAOvkAADr5AAAASIAAOvlAADr5QAAAB8AAOvmAADr5gAAACAAAOvnAADr5wAAAPsAAOvoAADr6AAAABMAAOvpAADr6QAAAbIAAOvqAADr6gAAARIAAOvrAADr6wAAAOsAAOvsAADr7AAAANwAAOvtAADr7QAAAN0AAOvuAADr7gAAAOIAAOvvAADr7wAAAOAAAOvwAADr8AAAAOEAAOvxAADr8QAAAOQAAOvyAADr8gAAAOUAAOvzAADr8wAAAOcAAOv0AADr9AAAAOkAAOv1AADr9QAAAOoAAOv2AADr9gAAAN8AAOv3AADr9wAAAN4AAOv4AADr+AAAAZEAAOv5AADr+QAAAMwAAOv6AADr+gAAATMAAOv7AADr+wAAAIkAAOv8AADr/AAAAAYAAOv9AADr/QAAAAcAAOv+AADr/gAAAAgAAOv/AADr/wAAAAkAAOwAAADsAAAAAOgAAOwBAADsAQAAAOMAAOwCAADsAgAAAOYAAOwDAADsAwAAABsAAOwEAADsBAAAAMUAAOwFAADsBQAAAQEAAOwGAADsBgAAAQAAAOwHAADsBwAAADoAAOwIAADsCAAAABkAAOwJAADsCQAAABgAAOwKAADsCgAAAEwAAOwLAADsCwAAALEAAOwMAADsDAAAALIAAOwNAADsDQAAAVkAAOwOAADsDgAAAEsAAOwPAADsDwAAAVwAAOwQAADsEAAAAWsAAOwRAADsEQAAAM4AAOwSAADsEgAAAQgAAOwTAADsEwAAAZ4AAOwUAADsFAAAAaAAAOwVAADsFQAAAEYAAOwWAADsFgAAAWcAAOwXAADsFwAAAKYAAOwYAADsGAAAAboAAOwZAADsGQAAADAAAOwaAADsGgAAASEAAOwbAADsGwAAAQ4AAOwcAADsHAAAAQcAAOwdAADsHQAAAUAAAOweAADsHgAAAFEAAOwfAADsHwAAAO4AAOwgAADsIAAAAUgAAOwhAADsIQAAAWoAAOwiAADsIgAAAIIAAOwjAADsIwAAAH8AAOwkAADsJAAAAXMAAOwlAADsJQAAAWIAAOwmAADsJgAAALYAAOwnAADsJwAAALQAAOwoAADsKAAAALUAAOwpAADsKQAAAbwAAOwqAADsKgAAAbsAAOwrAADsKwAAAEQAAOwsAADsLAAAAVIAAOwtAADsLQAAAU8AAOwuAADsLgAAAFMAAOwvAADsLwAAALoAAPEBAADxAQAAAKwAAAAAAJQA1ADoARQBMgFsAaYB4AIaAi4CQgJWAmoCfgKSAqYCyALeAvwDTgOoA9QEKgSQBOAFLgUuBVwFrgXKBmoHHgdeB+gIBghuCOAJmApMCpIKugrMCxQLJgs4C0oLXAukC74L0AvcC/oMJgxUDLgM7g0CDSoNUg3ADfIOQA56DpQO6g9ED4wPxg/qEHYQohDIESYRYBG0EeoSDhJ8EtoTJBPYE/wUUhR8FIgU+hVOFbgWGBZ6FrAW1BbsFvwXDBcYFywXOhdeF9wX9hgQGF4Yzhj6GQwZRhmQGcAZ2hoCGh4aNBpmGogarBrgGvgbeBuoG84cHBw6HGAcgBykHN4c+h0cHUwdfh2qHcwd9B4gHkgegB7YH1ofjB+mH94gPCB+IOIhPiF2IcgiMCJ4Ir4i/iNkI4YjtCPGI+IkZiSEJKAkvCUKJUglfCWqJhwmjicGJ1InfCf8KCIoqCk8KbgqQCqKKs4rYiuiK9gsDixMLO4taC2MLiYuqC7mLvovQC9kL5Av0C/2MFQwhDDmMSIxUDGWMfYyJjJEMpIyxjLqM1gzrjPqNBo0aDUgNVI1uDYgNnQ2tjbkNvw3FDcyN1o3fjegN7433Df6OBI4MDhIOGY4fjiWONA5DDleOfg6ODpcOr461jryO4g7oDvAO/I8Vjx0PMY88j0gPWY9jD2sPcQ98D4WPkY+pj7APxY/TD+YP8I//kA2QHZAqkD6QSxBWkGUQbJB9kIeQqRC3kNYQ6JEhkS+RPBFVkV6RchGKkaCRr5HBEdYR9BIJEh2SIxIvEkCSTpJUkl6SZpJ+kouSrhLFkt4S6pL+kwmTIxMvEziTTpNVk1kTh5OhE6oTyJPnk/kUFRQjFDEURxRSlF6UgpSZFLAUxpTQlNmU4pT4lQCVCZUelTWVRBVUFV2VapV5FYuVoxWvlbcVxhXpFgOWIhY0FkwWaZZ3loYWnJa5lssW5hcIFzmXQRdIl4QXkJeWF5+XshfDl8uX2BfpGA0YFZgkGDQYPRhIGFCYXhiDmJCYm5itGNsY5ZkFmRSZLxk5GUeZZRl0GYUZlZmkmbYZyRnfGegZ+pogmjaatpskGy8bOBtTG10baBtuG3mbjhuZm64b1ZvkG+gb7BvwG/QcDBwcHCwcPpxQHGwcdpyKHKuc0pzenPMc/50OnSQdNJ1HnU+dbB19HY2dpB2sHbudxp3dHeSeFZ4xnloeeB6JHpgAAQAAP//ASwBLAARACIANABkAAAlNC4BIg4BFRQWHwEWMj8BPgEHIic3PgQzMh4BFxYXBicmND4CMh4CFA4BBwYnLgEXMD0BLgEnJic2NzY3Nic2LgIiDgIVFB4BFxYXBgcOAQcVLgE1ND4BMh4BFRQGASwoRVJFKBwZDSZcJg4YHJYpIgEDCg4QFQoPHRUGAwIiWAQIDRIWEQ4ICA4JExQIDocEEQwJCwUEBwUKAQELFBodGhMLBggIBAUKCQwRBRIUIzxIPCMTlilFKChFKSE8FQoaGgoVPGIYBwoRDgoFCxUOCAkYiwkUEg0JCA4SFREOBAgIBA5bAQEOGAkHBQMEBwgQFA4aFAoKFBoOChMOCAQEBAcJGA8BEjAaJDwjIzwkGjAAAAAAAgAAAAABGgEaABoAKAAAJRYOAQc0Jz4BNy4DDgEHJiM+AjMyHgIHIg4BFB4BMj4BNC4BIwEZARQiFgMZIgEBEB0jHhMCCQoDGCUVER8YDLIXJxYWJy4nFxcnF8UWJRgCCgkDJRoRHhIBDxwRAxUiFAwYHxoXJy4nFhYnLicWAAABAAAAAAEHARoACwAAJRUjFSM1IzUzNTMVAQdxE3BwE6kTcHATcHAABAAAAAABGgEaAA0AEgAWABoAAAEjBxUXMxUXMzc1Mzc1ByM1MxUHNTMVJyMVMwEQ9AkJCgnOCgkJHNfhz7wmcHABGQk4Cp8JCZ8KOC8mJqmWlnETAAAAAAEAAAAAARIAzAAPAAA3FwcnNTcXBzMnNxcVByc3OCgNODgNKLwoDTg4DSiDKA04DTkOKCgOOQ04DSgAAAMAAAAAAQcBBwAJABYAIwAANxc1MxU3FwcjJzc0LgEiDgEUHgEyPgEnFA4BIi4BND4BMh4BZSgTJg44DTiwHzM+Mx4eMz4zHxMZLDIsGRksMiwZlChsaiYNNzcPHzMfHzM+Mx4eMx8ZLBkZLDIsGRksAAAAAwAAAAABBwEHAAkAFwAkAAA3JzM1IzcnBxUXNzIeARQOAi4CPgEXFSIOARQeATI+ATQuAZQobGomDTc3Dx8zHx8zPjMeAR8zHxksGRksMiwZGSxlKBMmDjgNOLAfMz4zHgEfMz4zHwESGSwyLBkZLDIsGQADAAAAAAEHAQcACQAWACMAADcXIxUzBxc3NScHBi4CPgEyHgEUDgEnMj4BNC4BIg4BFB4BmChsaiYNNzcPHzMeAR8zPjMfHzMfGSwZGSwyLBkZLMcoEyYOOA04rwEfMz4zHx8zPjMeEhksMiwZGSwyLBkAAAMAAAAAAQcBBwAJABYAIwAAPwEVMzUXNycjBxcUDgIuAj4BMh4BBzQuASIOARQeATI+AWUoEyYOOA04sB8zPjMeAR8zPjMfExksMiwZGSwyLBmYKGxqJg03Nw8fMx4BHzM+Mx8fMx8ZLBkZLDIsGRksAAAAAQAAAAABBAEHAAkAADcXMzcnBzUjFSc7Xg1eDU4TToNdXQ5OxMROAAEAAAAAAQcA8wAJAAA3BxUXNyczNSM3g11dDk7ExE7yXg1eDk0TTgABAAAAAAEHAPEACQAAPwE1JwcXIxUzB6leXg5Ow8NOKF0OXQ1OEk4AAQAAAAAAyQDhAAkAADcHIyc3FzUzFTfJLw0vDR8TH4ovLw0eaGgfAAEAAAAAANEAzwAJAAA3JzU3FwczFSMXei8vDR9paR9jLw0vDR8THgABAAAAAADRAM8ACQAANxcVByc3IzUzJ6IvLw0eaGgezi8NLw4eEx8AAQAAAAAAyQDhAAkAAD8BMxcHJxUjNQdeLw0vDR8TH7IvLw0faWkfAAIAAAAAARoBGwAJABMAADcnNTcXBzMVIxc/ATUnBxcjFTMHTzw8DSzp6SyBPDwNLOnpLBI8DTwNLBMsdjwNPA0sEywAAQAAAAABBAEHAAkAACUnIwcXNxUzNRcBBF4NXg1OE02pXl4OTsPDTgAAAAACAAAAAAEaARoABwAPAAAlFQcnFScXNRcnFQ8BFRc1ARlBZjqoAV5WGiXooDUlJUsNkAE5JRohSxFhAAADAAAAAAEiARoAGwAnADYAACUnLgEHIyIGDwEGHgI7ATI2PwEXFjsBMj4CByIvATM3FxwBDgEjMyM2LwEzHgEVFxYOAiMBIEsCCgdYBgoCTAICBQkFNwUKAgw4BQZYBAkFAmsCAmw5FCoCBAFXRQICTEUCBEwBAQICAizhBQgBBwXhBQkIAwcGISsDBAcJCAFQNH0BAwMBBgfhAQIC4QEDAgIAAAQAAAAAARoBGgAdACwANQA9AAA3MyYnIzczNDcjNzUzFRc2Nyc1MzUjFTMVBwYeAjc2MzIeAhUUDgEuAjYXFhcyNycGFRQ3FzY1NCYjIjheCwhLHRsCEyQmAQkJARNwEkkCAQUIchIXDxwVCxkqLSAJEhQRFxIPTwoYTgshGBITCAo5CQlITk8DBAIBSxMSS44FCQkEiQ0MFRsPFyYRCSAsKlkQAQtODhIYRk8PEhchAAAAAAMAAAAAAQoBGgAPABYAGgAAJSc1MzUjFTMVBwYWOwEyNic3NTMVFyMHNzMXAQRIEnATSgQLCrwKC4gCJiRuJx2CHS6NSxMSS44KERGQBE5PR0s5OQAAAAADAAAAAAEaARsAKgAxADoAADcGIxUUHwEjNzY9ATQ+AhczNjcmJyYOAh0BFA8BFzMUFjI2NTM3JyY1BzI2JyMUFjcyNjQmIgYUFvQJCggHtQcJDRcfDwMFBwYHFCYdEAcLCEIWHxZCCQsHXgcMASULUxchIS4hIZgCBBoZFBUZGSkQHhUKAgkHAgECDRskFCkWFiENDxYWDw0hFhZtCwgIC4QhLiEhLiEAAAAABgAAAAABKgEmABUAJwAuADMAOABBAAATBgciBw4CHQEUDwE3Nj0BND4CHwEGBxYfASMHMxQWMjY1MzcnJgcGIiY1MxY3Jic3Fw8BFzcmFzI2NCYiBhQWogoHCQoPFw0EHAYHEB0mFFUJCgIGB3oSDBYfFkIJCwZSBg8LJQF1BgcLDYKUDZUHMxchIS4hIQEYCAoDBRUeECkRER0TFhYpFCQbDQKRAwETEhQTDxYWDw0hEUwGCwgI3QcHCg1nlQ2VBgEhLiEhLiEAAAAABAAAAAABKgEmABUAJwAuADIAABMmJyYOAh0BFAc3Nj0BND4CFxYXBzMnJj0BNxUUHwEHIxQGIiYnFzI2JyMUFgcBFwHPFRsUJh0QBxkBDRcfDxQQPWwHCBMHCwlCFh8VASYHDAElC3sBCQ3+9wEFEAQCDRskFCkWFRkJCSkQHhUKAgMMrBQZGhYTKRYWIQ0PFhUPEgsICAsJAQkN/vcAAAMAAAAAAQYBGwAaACEANAAANyY9ATQuAicmDgIdARQPARczFBYyNjUzNwcGIiY1MxYnNzY9ATQ+AhcWFx4BHQEUHwH7BwwYHxIUJh0QBwsIQhYfFkIJYwYPCyUBbgcJDRcfDx4TCQoIB2YVFyYSIRsRAgINGyQUKRcVIQ0PFhYPDRoGCwgIGxUYGikQHhUKAgQWCxsOJhoZFAAAAAMAAAAAAOEA9AAOABYAHgAANzUzMhYVFAYHHgEVFAYjJxUzMjY1NCMnMzI2NCYrAV4/HyAQDRASIh4qKhIUJSsnEBQSEyY4vBoYDRUFBBgRGR1YRBIQIhQQHQ4ACQAAAAABGgEHABAAFwAeACIAJgAqAC4AMgA2AAABIw8BLwEjBxUXMxczNzM3NQcvASM1Mx8BIw8BNTczByMVMxUjFTMnMxUjNyMVMwczFSMVMxUjARBnBwwMB2cJCWMQDhBjCYwEBl1ZDnpeBwINWpY5OTk5OTk5vDg4ODg4ODgBBwMMDAMKuwoQEAq7uAMDqQ6bAwKhDSYSORI4EzgSExMTEgACAAAAAAD0ARoACAAOAAATIwcVFzcXNzUHJyMHNTPqqAoRTU0RE0QORJYBGQn0BlZWBvTbS0vSAAMAAAAAARoBBwBHAHEAfQAANzEjIg4CHQEUDgIHHgMdARQeAjsBFSMiLgEnMSYnNSY3NTQnMSYnNSYnMSYrATUzMj4BNzE2PQEmNzE2NzE+AjsBFzM1IyInMSYnNSYnMSY9ATYnNSYnMS4CKwEVMzIeAh0BFB4CFyMWByIOAR4CPgE1NCZxAgYKBwQCBAcFBQcEAgQHCgYCAgkQDQMDAQEBAgIEAwUFBgEBBgoHAgIBAQEDAw0QCQKUAgIGBQUDBAICAQEBAwMNEAkBAQYKBwQCBAcFAQ8XERwNBhgiHxMh9AQICgYZBgwLCAQECAsMBhkGCggEEgYNCAgHAQgIEAYFBQMBAwIDEgUHBQUGEAgICAgIDQd6EgMCAwEDBQUGEAgIAQcICA0HEwQICgYZBgwLCAQCERMfIhgGDRwRFyEABAAAAAABGgEHAEcAcQB+AIoAADcxIyIOAh0BFA4CBx4DHQEUHgI7ARUjIi4BJzEmJzUmNzU0JzEmJzUmJzEmKwE1MzI+ATcxNj0BJjcxNjcxPgI7ARczNSMiJzEmJzUmJzEmPQE2JzUmJzEuAisBFTMyHgIdARQeAhcjFgc2MzIWFRQOAS4CNhcHJwcXBxc3FzcnN3ECBgoHBAIEBwUFBwQCBAcKBgICCRANAwMBAQECAgQDBQUGAQEGCgcCAgEBAQMDDRAJApQCAgYFBQMEAgIBAQEDAw0QCQEBBgoHBAIEBwUBDzYOERchEx8iGAYNQhUVDhYWDhUVDhYW9AQICgYZBgwLCAQECAsMBhkGCggEEgYNCAgHAQgIEAYFBQMBAwIDEgUHBQUGEAgICAgIDQd6EgMCAwEDBQUGEAgIAQcICA0HEwQICgYZBgwLCAQCGgkhFxEcDQYYIh8CFhYOFRUOFhYOFRUABQAAAAABGgEHAA0AEQAbAB8AKQAAJSM1JyMHFSMHFRczNzUnMxUjFxUHNScjBxUnNRcVIzUHNRcVFzM3NTcVARBCCV4JQgkJ9AmoS0uWSwo4CUuDJl1LCTgKS+EcCgocCZYKCpYcExMOKgkKCgkrDTgTE0tgKwYJCQYqXwAAAAAEAAAAAAEHARoAIgA/AFsAZAAAEzYzMh4BFw4BBzUxNj0BPgImJy4BDgIWFxUUFxUuAjYXBiMVFAYrATAjMS4BPQEiJj0BNDY7ATIWHQEUBzcUBxYdAT4CJicuAQ4CFhc1NDcmPgIeAQcjFAYiJjQ2MhZYHCIfMx4BASkhCREXCQcKETY5KAkaGQkeKAgbcgIEBQQUAQQEBAULCBIICwMZCQYJCwELCQ0kIxoJCw0GCQEUHh4TAR4LEAsLEAsBBhMeNB4kOgwBCQsDCSAmJxAZFQwrOjUOAwwIAQsxQDqnAy8EBQEEBC8FBCYICwsIJgQCWw8NCQoCCRkcGQkOCgoaJCMNAgsJDR8aCQsZEAgLCxALCwADAAAAAAEaARoABwALAA8AABMzFxUHIyc1FxUzNSczNSMc9AkJ9AkT4eHh4QEZCeEJCeFClpYTJgAAAAADAAAAAAEYARoAMQA5AEkAADc1NCYiBh0BIycHFwcGHQEjFTsBFh8BBxc3Fx4BMjY/ARc3JzU2NzEzNSM1Ni8BNycHIzU0NjIWHQEXFRYVFA4CIi4CNTQ3NcwgLSAQHwseAQkmKAEEDQElCyMCDB8iHwwBJAslDgUpJwEKAR4LH20XIBcdCQ0WGx0cFgwI2AsWICAWCx8LHgEaGwwQGxUBJQsjAQ4QDw4BJAsmARYbEAwbGgEeCx8LEBcXEAsQARYZFyccDw8cJxcZFgEAAAAAEQAAAAABGgEaAA8AEwAXABsAHwAjACcAKwAvADMANwA7AD8AQwBHAEsATwAAASM1IxUjNSMVIwcVFzM3NQcjNTM1IzUzByMVMwczFSMXIxUzNzMVIxcjFTMHMxUjNyMVMxczFSMXIxUzBzMVIzcjFTMXMxUjFyMVMyczFSMBEBwTlhMcCQn0CRLh4eHhvBMTExMTExMTJhISEhISEhISEhISJhMTExMTExMTExMTJRMTExMTExMTAQcSEhISCuEJCeHXqBMTXhMSExMTXhMSExMThBMTExITExOEExMTEhNeEwAAAwAAAAABGgEaAD0AeQCCAAA3LgEOAQ8CBiYvASYnLgI/Aj4CNTQnLgMjIg8BDgIVFB4GMzI+AT8BNjU0Ji8BJi8BJgcGJyImJyYnLgM1Jj4BPwE2MzIfARYfARYUDwEOAhQWHwEWMzI3Nj8BPgEyHwIWHwEWFRQPAQ4BNwczFSM1MxU36wULCgcDBgUDCAIpCwsEBgEDBAcDBgMIBQsMDQgMCA4FCQMKERgcICIhEAoRDQYOCAMDBwQEDwQNBwgOHg4fGg0WEAkBBAYFCwMEAgQHCgcGAwILBAUEBAVFCQwFBQkGBgIGBQQHCQUDBgMECgUKL1c+XhNXfQIBBQUEBgQDAQMnCwwFCAUDBQYDBwkGDAkFDAsICA4GDREKDyIhIBwZEQoECAUOCAwFCgQIBAQOBFQCAQkHEhoNHB4eDwcOCQUKBAMGCAkHBAUDCwMHCgsKBUUJAgQHBgMEAwYIBAUIAwIEAwsEB+NXE14+VwADAAAAAAEaARoACABEAIAAAD8BIzUzFSM1BxcyHwMeARUUDwEOAiMiLgY1ND4BPwE2MzIeAhcWFRQOAQ8CBhQWFxYfAR4BPwI+AgcyPgE/ATYnNi8BJi8CJiIGDwEOAiMiLwEuATQ+Aj8BNjQvBCYjIg8BDgIHHgMXFhceAaJXPV0SWDEMCQ8IBwMDCA4FDhEKECIhIBwYEQoDCAYOCAwHDg0KBQgDBgMHBAIGBAsLKQIIAwUGAwgJBgkMCgUKBAEBAwYDBQkHBAUGAgYDBwoFDAlFBQQEBQcDBQIDBggJBwQCBAMLBAcDAQEJEBYNGh8OHq9YEl09VyMIDggIBAoFDAgOBQgEChIYHCAhIRALEA0GDggICw0ECQwFCQgDBgUDBQgFDAsnAwEDBAYEBQVaAwYFCwMEAgMIBQQIBgMEAwYEBQQJRQQLDAkHBgMFAwUEBwkIBgMECgQLDQcOHx4cDRoRCAkAAAAEAAAAAAECAOEABwAPACQALwAANyMnIwcjNzMXJyYnIwYPARcjNTEGIyImNTQ/ATQjIgc1NjMyFQ8BDgEVFBYzMjY1phMPPQ8SNxEQFgEBAQEBF7YRCxUPEiIfFRIPDxQkERgMDAsJDBBRKCiQWT4DBgYDPjcQExAOHQUEGgwQCiYPBAEICwcKEQ0AAAQAAAAAASUA9AAGAAoADAATAAAlByMnNxc3BzcnDwEXBxcHIyc3FwElkg46DjSLkFINUBIKKQsPDjoONOmtUwpJpG1iC14WDxUPEVMKSQAAAQAAAAABDwD6AAYAACUHLwE3FzcBD58PPw84l+68AVkLT7IACAAAAAABGgEHAAYACgAOABIAFgAdACQAKwAANyMnNxc3HwEzFSMVMxUjFyMVMwczFSMnMzcnBycHFyMnNxc3FwczNycHJwdGDRMNDRoOG5aWlpaWlpaWlpZKDSIOGg0NIA0TDQ0aDi8NIg4aDQ3YFA0NGw4FEyUTJhImE2ghDRoNDkwUDQ0bDVohDRoNDQAAAQAAAAAA8wDBAAYAAD8BFwcjJzeWUQxYC1gMb1IMV1cMAAAAAQAAAAAAwQD0AAYAADcXByc1NxdvUgxXVwyWUQxYC1gMAAAAAQAAAAAAzwDzAAYAADcnNxcVBye9UgxXVwyWUQxYC1gMAAAAAQAAAAAA9ADPAAYAADcHJzczFweWUQxYC1gMvVIMV1cMAAAAAgAAAAABBwEaADcAOwAAEzMVMzUzFTM1MxUzFxUzFSMVMxUjFTMVIxUHIxUjNSMVIzUjFSM1Iyc1IzUzNSM1MzUjNTM1NzMHMzUjXhMSExMTEhMmJiYmJiYTEhMTExITExMlJSUlJSUTExODgwEZJSUlJSUTExITExMSExMlJSUlJSUTExITExMSExOWgwAAAQAAAAAA/QD9AAsAADcHFzcXNyc3JwcnB4VVEVVVEVVVEVVVEZZVEVVVEVVVEVVVEQAAAAIAAAAAAPQA9AADAAcAADcVMzUHIzUzOLwTlpb0vLyplgAAAAEAAAAAAQcAlgADAAAlFSM1AQfPlhMTAAMAAAAAAQcA9AADAAcAEQAANxUzNQcjNTMnMzUzFSMVMzUjOKkTg4NwE4MTJqnOqKiWhBITgxOpAAAAAAEAAAAAAOIA4gAZAAA3MhceARcWFAcOAQcGIicuAScmNDY3Njc+AZYKChMcBQMDBRwTChQKExwFAwUFChEJE+EDBRwTChQKExwFAwMFHBMKFBMJEQoFBQABAAAAAAEaARoAGgAAEzIXHgEXFhQGBwYHDgEiLgQ0Njc2Nz4BlhIRITEKBAkJER4PISQhHhgRCQkJER4PIQEZBAoxIREkIQ8eEQkJCREYHiEkIQ8eEQkJAAAAAAIAAAAAARoBGgAqAEQAABMmIgcxBgcGBzEOARYXFhceAj4BNzE2NzY3MTYmJzEmJzEmJzEmJzEmJxcGBw4BIi4ENDY3Njc+ATIXHgEXFhQGtA8eDw4NGQ8ICAEDCBULGR0fHA0ZDwgDBQEEAwgHCwoMDQ5TER4PISQhHhgRCQkJER4PISQRITEKBAkBAgUFAwgPGQ0dHw4cFgoPCAEHCA8ZDQ4PHw4ODQwKCwcIA64eEQkJCREYHiEkIQ8eEQkJBAoxIREkIQAAAwAAAAABGgEaAAwAFgAfAAATMh4BFA4BIi4BND4BBxQWFzcuAQ4BFTM0JicHHgE+AZYkPCMjPEg8IyM8TA0NnxlCOyTiDg2fGUI7JAEZIzxIPCMjPEg8I4MUJRCfFQkcNyEUJRCfFQkcNwAAAQAAAAAAvAC8AAgAADcUBi4BNDYyFrwWIBUVIBaWEBYBFSAWFgAAAAIAAAAAALwAvAAKABcAADcOAS4CPgEyFhQXNjU0JiMiDgEeAjamBAoLCAIECQ4LDAcWEAsTCQQRFhWMBQQCCAsKBwsODwoLEBYNFRYRBAkAAwAAAAAA4QDiAAwAFQAWAAA3Mj4BNC4BIg4BFB4BNxQGIiY0NjIWJ5YUIxQUIygjFBQjRR0oHR0oHTFLFCMoIxQUIygjFEsUHR0oHR0gAAAFAAAAAAEaARoABwA0AD0ARgBPAAABIwcVFzM3NQcjNTMeATMyNjQmIgYVIxUjNTMVDgEVFBYyNjUzFBYyNjQmIyIGByMuASM1Mwc0NjIWFAYiJicyFhQGIiY0NjMyFhQGIiY0NgEQ9AkJ9AkSqSsEEgoPFhYfFjglJQgLFh8WJhYfFhYQChEFMAURCqlxChELCxEKOAgLCxEKCnkJCgoRCgoBGQn0CQn06iUICxYfFhYPOOEsBBIJEBYWEBAWFh8WCgkJCiapCAsLEQoKeQoRCgoRCgoRCgoRCgAABQAAAAABGgD0AAsADwATABgAHAAANxc3FzcnNycHJwcXJyE1IRUhNSEXNSMVMxU1IxW8DR4eDyAgDx4eDR7HAQb++gEG/vqWlpaWQA0eHg0eHg8gIA8egxNLE0IJEjkTEwAAAAQAAAAAARYBGgAWACIALAA2AAA3IzUzFTM1JyM1IzQmIgYVIxUjBxUXMzU+Ah4BFA4BLgIXBzUjFScHFzM3JzMXBycVIzUHJ4M4lhMKHBIWIBUUGwoKQQEJCwoHBQoLCAWGFBMUDiUNJHwNJQ4UExQNJqglLwkTDxYWDxMJvAnlBQkCBAoKCgUBBgqsFGRkFA0kJFskDRRkZBQNAAQAAAAAAQcBBwALABkAIAAkAAA3JwcnBxcHFzcXNy8BNzMXFQcjFQcjJzU3OwIXFTM1IxcjFTOiDhobDRsbDRsaDhspE4MTEyYShBISJhNLEiaDS4SElA4bGw4aGw0bGw0behMTgxMmEhKEEhJLgziEAAAAAQAAAAAA6ADoAAsAADcXNyc3JwcnBxcHF5ZEDkVFDkREDkVFDolFDkREDkVFDkREDgAAAAIAAAAAARoA9gAvADkAADczHgEUBiM1MjY0JicjJy4CBg8BJyYnIgcOAR4BOwEVIyImJy4BPgE3Nhc+AR4BBxc1MxU3FwcjJ+ABFyEhFw8VFQ8RAgIXHxsGBhAFBRQNCgYLGA4JCQ4aCQwHCxsRDg4JJisfXxgTGA0oDSi8ASAvIRMWHhYBEA8WBRAODgMBAQ4KHBoQEwsLDSMiFwMDBBQWBh92GGZlFw0oKAACAAAAAAEaAPYAMgA8AAA3Mx4BFAYrATUzMjY0JicjJy4CBg8BJyYnBgcOAR4BOwEVIyImJy4BNz4CFz4BHgEXBycVIzUHJzczF+ABFyEhFyUlDxUVDxECAhcfGwYGEAUFFA0KBgsYDi8vDhoJDwQLBxccDgkmKx8DHxkSGA0oDSi8ASAvIRMWHhYBEA8WBRAODgMBAQENChwaEBMLCxArEgwRBQQUFgYfFkgZZmUYDigoAAACAAAAAAEaAPYAFQAuAAA3Mx4BFAYrASImJy4BPgE3Nhc+AR4BBzMyNjQmKwEnLgIGDwEnJiciBw4BHgEz4AEXISEXjA4aCQwHCxsRDg4JJisff4MQFhYQEQICFx8bBgYQBQUUDQoGCxgOvAEgLyELCw0jIhcDAwQUFgYfcxYfFhAPFgUQDg4DAQEOChwaEAAHAAAAAAEaARoAAwAHAAsADwATABcAJwAAEzMVIzczFSMXMxUjFTMVIxUzFSMHMxUjJwcVMzUzFSM1IxUXMzc1J14TEyVLSyZLS0tLS0smS0tdExPh4RMT4RISAQfPvBMTEhMTExITE84SXl7PcXESEs8SAAMAAAAAARQA9AAGAA0AEQAANwcXByc1NzMHFwcXNzUHFzcnWDExDTg4kQ4yMg44uBFeEcMxMg04DTkOMTINOA1gCLsJAAAAAAYAAAAAASwBGgAVACsAQQBTAF0AZQAAExUUFhczFhcWHQEjNTQmLwEmJyY9ATMVBhYXMxYXFh0BIzU0Jic1JicmPQEzFRQWFzEWFxYdASM1NCYvASYnJj0BBzczMhYUBisBDgErASIuAT0BFzUjFRQWOwEyNjcVMxY2NCYjOAcIAQoECBMHCAEKBAhMAQcIAQoECBMGCQoFB0sGCQoFBxIHCAEKBAhwEsUUGxsUDAYoGjgVIhW8qSEXORchEwkMEBAMARkJBggHCAUKDAoKBggGAQcGCgwJCQYIBwgFCgwKCgYIBgEHBgoMCQkGCAcIBQoMCgoGCAYBBwYKDAlwExwnGxkfFCIUOTg4OBghIVA4AREXEQAAAAAEAAAAAAEHAQcAAwARABgAHAAANyMVMyc3MxcVByMVByMnNTc7AhcVMzUjFyMVM6leXksTgxMTJhKEEhImE0sSJoNLhISDEoMTE4MTJhIShBISS4M4hAAAAgAAAAABGgEaAAwAFAAAEyIOARQeATI+ATQuAQc1Mh4BFA4BliQ8IyM8SDwjIzwkHzMfHzMBGSM8SDwjIzxIPCPz4R8zPjMeAAAAAAoAAAAAASwBGgAHAAsAEwAXAB8AIwArAC8AMwA9AAATBxUXMzc1Jwc1MxUPARUXMzc1Jwc1MxUHNzMXFQcjJzcVMzU3BxUXMzc1JwcjNTMVIzUzJyMVMwcXNzUnBxwJCTgKCi4lLwkJOAoKLiU4CTgKCjgJEyWfCQk5CQkKJSUlJW46OhMNIiINARkJOAoKOAk4JiYlCjgJCTgKOSYmLwoKOAkJLyUlgwlxCQlxCTgmXiUTExIMIg0iDQAAAwAAAAABGgEaABIAHgAnAAA/ARUHJzUjJzU3MxcVIzUjFTMfAjc1Mzc1JyMHFRc3IzUzFSMHFSdLExYQHAkJ4QoTzhwJdiMQHAkJlgkJS0KEHQkWWBMbFQcvCZYJCVRLhAlCIgYcCl0KCl0KE0tLCQ8VAAAKAAAAAAEaAQcABgAKAA4AFAAYACMAJwAtADEAOAAAASMVMxUzNSczFSMnMxUjFx0BMzc1BzUjFScjDwE1JyMVFzczNzUjFQc1IxUXMz0BIxU3FSM1NzMVARAcExJwJSVLJSWpCQk4JSYJBygKCRA2BYMS4RMJChMTEwkcAQYSExwJEhIShBITCRwlExMTAyghCkIHNkslJTgSHAlLJSVeExwJEgAAAAACAAAAAAEaAQcAFwAjAAATMxcVJic1IxUzFxU/ATMGFSMHJzUjJzUXIg4BHgI+ATU0Jhz0CQgK4S4KKAcLAgU2EC8JzhEcDQYYIh8TIQEHCoAJBmiWCiEoAwkKNgcvCal6Ex8iGAYNHBEXIQACAAAAAAEaAQcACwAUAAABIwcVFzMVFzczNzUHIw8BNScjNTMBEPQJCS8QNn8JEnoHKAou4QEHCqkJLwc2CamfAyghCpYAAAAFAAD//QEtARoALAAyADYAQwBKAAA3BiM1IxUuAiczNSM+AjcVMzUeAhcjFTMHFhc2NTQuASIOARQeATMyNyY3LwEfAQYvAh8BNhcyFhUUDgEuAjYXNycHJwcXqwYGEhsuHAISEgIdLRsSGy4cAhISAQkIAyM8SDwjIzwkDg0EDTcmTBsGDRIkEkcPERchEx8iGAcNLiIPHBAMGCcBEhICHS0bExstHAISEgIcLhsSDAIEDQ4kPCMjPEg8IwMIShtMJjcEDSQSJCYKASAYERwNBhkhID8tCyUODxMABAAAAAABLAEaACwAMgA2AD8AADcGIzUjFS4CJzM1Iz4CNxUzNR4CFyMVMwcWFzY1NC4BIg4BFB4BMzI3JjcvAR8BBi8CHwEUFjI2NCYiBqsGBhIbLhwCEhICHS0bEhsuHAISEgEJCAMjPEg8IyM8JA4NBA03JkwbBg0SJBIvIC8hIS8gJwESEgIdLRsTGy0cAhISAhwuGxIMAgQNDiQ8IyM8SDwjAwhKG0wmNwQNJBIkVRchIS8hIQAAAAAEAAAAAAEaARoAAwAHACMAMAAANxcvARcvARczDgIHNSMVLgInMzUjPgI3FTM1HgIXIxUHMj4BNC4BIg4BFB4BqSZMJlQSJBJ5AhwuGxIbLhwCEhICHS0bEhsuHAISXiQ8IyM8SDwjIzypTCZMVCQSJBsuHAISEgIdLRsTGy0cAhISAhwuGxJ6IzxIPCMjPEg8IwAABv//AAABLAELAAwAGABOAGcAcQB7AAA3MhYdARQGIiY9ATQ2FzQmIgYdARQWMjY1JxYXNzYXFhcWFRQHFzMeAR0BFAcOAQ8BBgcGBwYiJyYnJi8BLgEnJj0BNDY3MzcmNTQ3Njc2DwEVFxYXFjI3Nj8BNScGIyInJicGBwYjIjcmDgEUFjI2NzY3BhceATI2NC4BdQYICAwICFYIDAgIDAgyAgEDESYjEA0FAwEODwMCBwcLBgcMDSlSKQ0MBwYLBwcCAw8OAQMFDRAjJkkBAQoMJEYkDAoBAQwUIRIGBAQGEiEUOggwDwwqEwIDJwcDAhMqDA8wcQkGHAYICAYcBgkPBgkJBhwGCAgGsgECAxMFBBMRHhMMEAcZDhgFBgMJBQgFBAcFEhIFBwQFCAUJAwYFGA4ZBxAMEx4REwQFggJQAQYFDw8FBgFQAgYTBggIBhNiCAUTKA4UFBYICBYUFA4oEwUAAAAAAwAAAAABBwEaAAcADAATAAA/ATMXFQcjJzcnIxUzJwcVFzUzJ0sTZUQTlhOpOF6WvBISeRPhE0OLExODOLvzErwTzxIAAAAABAAAAAABBwD0AAYAGwAoADYAADcPASc3FzcXPgE1NC4BIyIHJiM2MzIeARQGBzYHIi4BND4CHgIOAQcyPgE0LgEiDgEUHgEXpy8OHA0VKEkJChIeEg0MDQ8XHhcnFxkUBWUSHhISHiQeEQESHhIXJxYWJy4nFhYnF5A4ARwOFTArCRgNEh4SBQUTFycuKAsOKxIeJB4RARIeJB4SEhYnLicWFicuJxYBAAAAAAQAAAAAARoA4gADAAcAFwAbAAAlFSM1FTMVIzcjIgYdARQWOwEyNj0BNCYHMxUjAQfh4eHh4QgLCwjhBwsLQCYmzhISJV6WCwiDCAsLCIMIC3ATAAEAAAAAAM8AlgADAAA3MxUjXnBwlhMAAAYAAAAAAQkBHAAMABwAKAAwADoASAAAEz4BHgIOAi4CNhcWMzI+ATU0LgIOAh4BNxcHFg4BLgI+ARcHFjY0Jg4BFjcHFhUUBxc+AS8BJiMiDgEUFwcmPgIXSRtBOyQEHTZBOiUEHCYaIBwvHBYlMC4kEwMYgg0oBAURFA8CDBQKEgUKBwgEAVQPBQkODAMKNAsMEh4SCQ0QAyY4GgEFEgQdNkE7JAQcN0E6qBIcLxwZKh4JDCAtLyqKDSkJFAwCDhURBQQhAwQLBQEHBysOCw0SDw4TLhQXBRIeJA8OGDkrDA0AAAMAAAAAAPQBGgATACQANQAANzQuASIOARUXIxUXHgEyNj8BNSMnMhceARQGBwYiJy4BNDY3NhcHDgEHBiInLgEvATUWNxY39BksMiwZAQEBBDVINQQBAV0VExATExATKhMQExMQE2ABARMPEioSDxMBASMoKCPqDRYMDBYNAqYHERcXEQemHgUEDgoNBAUFBA0KDgQFxAMFDAQFBQQMBQOMFAEBFQAAAAUAAAAAASgBBwAlACwANQA/AEYAADcHLgEiBgcnBxcHFSMVMxUWFwcXNx4BMjY3FzcnNjc1MzUjNSc3JzIWFSM0NhcOAQcuASc1MycHFTM1FwcVNzUHNTcnNRcViREEGSAZBBENFgMTEwEEGA0VBxYYFgcVDRgEARMTAxZLDBA4EDICFQ8PFQFLKg8TjjBHR2mPpYMQDxQUDxANFgITEwEJCRgNFQoLCwoVDRgJCgESEwIWDRAMDBBLDxUBARUPHLMIVkRfIBcvEGQWRl8XbhAAAAAABAAAAAABFgEHACUALAA1AD8AADcHLgEiBgcnBxcHFSMVMxUWFwcXNx4BMjY3FzcnNjc1MzUjNSc3JzIWFSM0NhcOAQcuASc1Myc3FxUHNTcnFSOJEQQZIBkEEQ0WAxMTAQQYDRUHFhgWBxUNGAQBExMDFksMEDgQMgIVDw8VAUsTDqlsVo4TgxAPFBQPEA0WAhMTAQkJGA0VCgsLChUNGAkKARITAhYNEAwMEEsPFQEBFQ8cqwhxEEgXOV9EAAAABAAAAAABKQEsACUALAA1AEAAADcHLgEiBgcnBxcHFSMVMxUWFwcXNx4BMjY3FzcnNjc1MzUjNSc3JzIWFSM0NhcOAQcuASc1MzcVBzU3JxUmJzU3iREEGSAZBBENFgMTEwEEGA0VBxYYFgcVDRgEARMTAhVLDBA4EDICFQ8PFQFLuIBqogkKDoMQDxQUDxANFQMTEwEJCRgNFQoLCwoVDRkICgESEwMVDRAMDBBLDxUBARUPHGAQURZDZ3YGA34IAAAAAAQAAAAAAOMA4wAMABgAHAAgAAA3PgEeAg4CLgI2Fx4BPgImJyYOARY3IxUzFSMVM2wRKCQXAhIhKCQWAxIdDBwZDwINCxIpGAhKODg4ONQMAhEiKCQXAhIhKCReCAIMFxwZCAsIIyo7ExITAAMAAAAAAOEA4gAMABAAFAAANyIOARQeATI+ATQuARcVIzU3FSM1lhQjFBQjKCMUFCMSS0tL4RQjKCMUFCMoIxReEhI5ExMAAAIAAAAAAOYA4QAFAAsAADcjBxczNwcjJzczF7pWLCxWLDo6Hh46HeFLS0szMzMzAAEAAAAAAOYA4QAFAAA3ByMnNzPlK1YsLFaWS0tLAAAAAgAAAAAA4QDhAAIABQAANzMnBzMnS5ZLI0YjXoNsPQABAAAAAADhAOEAAgAANxcjlkuW4YEAAAACAAAAAAD0APQAAwAHAAA/ARcHNTcnBzldXV00NDSWXl5dKTQ1NQAAAQAAAAAA9AD0AAMAADcXByeWXl5e9F5eXgAAAAMAAAAAAOMA4wAMABAAFAAANz4BLgIOAh4CNicjFTMnNTMV1AwCESIoJBcCESIoJCcXFxcXbBEoJBcCESIoJBcCERYTJUtLAAUAAAAAARwBHAAVAB4ARABMAFYAABM3Mx8CFQ8BKwE1NCczNSMVJiM9ARcHJi8BNyc3Fwc3FwcXFTMVIxUGBxcHJw4BIiYnByc3Jic1IzUzNTcnNxc+ATIWBy4BDgEVMzQHNjc1IxUeARc2WAKxAQ8BAQ8BXAdgrAkKhiMCAgYcLQo0VxENFQITEwEEGA0VBxYYFgcVDRgEARMTAxYNEQQZIBkVBhEQCTgCCgFKARUPDwEbAQEPAbECDwIKB6xbAlwBZyMDAwUcLgozOxANFQMTEgEKCRgNFQoLCwoVDRkICQETEwMVDRAPFBQHBgMGDgkMVAoPHBwPFQEBAAMAAAAAAQwBBwADAAkADAAAEyMVMzcHFRc3NQ8BNUsTEz4PD4MWaQEH4dUHvAddEAhMmAADAAAAAAEPAQcAAwAJAAwAABMzFSM3BxUXNzUPATUvHBxcFhaEIV0BB+HZC7wLXhYLQoQAAwAAAAABFgEHAAkALgA4AAA/ARcVBzU3JxUjFw4BHQEUDgIrASIuAj0BNC4CNTQ+BDIeBBUUBgcjFRQWOwEyNjVeDqlsVo4TFQUGAgMFAxADBQMCBgsHAwYICgwMDAoIBgQHHBYCARABAv8IcRBIFzlfRGAFDQcQAwUDAgIDBQMQBw0LEAoGCwsIBgMDBggLCwYKEBkWAQICAQAABAAAAAABEQEaABEAHwA3AEQAADcmJzcnByYnJgcGDwEXNzY3NgcGDwEnNzY3NhceARcWBzcnByc3JwcnBw4BFBYXBxc3HgEyNj8BBwYiLgI1ND8BFwcG/wMFGQsaBwkUFAsIHVEdCQQIFwMGEjoSBgcQEAcLBAZhHAwbIxwMHAsdCQgFBhkLGgcSFRUIHTYIEA8MBgwSOhIG5AkHGgsZBgIHCAQJHVEdCAsUDgcGEjoSBgMGBgQLBxBuHQwdIx0MHQsdCBUVEQgZDBkFBgkIHRoEBwsPCBEMEjoSBQAAAAAGAAAAAAEaAQAAAwAHAAsADwAVABgAADc1MxUnMxUjNxUjNR0BMzUlNxcVByc3FTdxqF1dXV2oqP76DmVlDhNKcRISSxNLExOpExOtB0MPRAh1YzEAAAAAAgAAAAAA2AD0AAMABwAANzMVIzcVIzVUHR2EHPS8vLy8AAAAAgAA//0BFgEHABoAJAAANxQOASYnBx4BPgIuAQYHNSMVFzM1Iz4BHgEnNxcVBzU3JxUjhhknIwgSCi0yIwcaLzEPEwksGAojJRcoDqlZQ44TSxQfCBISBxcZByUyLBMNFBcyChMRDgoeoQhxEDsWLV9EAAAFAAAAAAEcAPQABAAJAA4AEgAtAAA3NTMGBzc2NyMVFyYnIxUlFSE1FzI+AS4BBgczFSMnNTMVPgEeAQ4CJic3HgETYQIBFwkLiWkFA2EBBv76xxIaBhEhIAkUJQgQDSonFgYeKiUJDwYXcRIJCTgKCBJxCQoTvBMTvBYiHgwMDxAIKhMRCxEkKx4HFRQGDQ8AAAAAAQAAAAABDAENAB0AADcUDgEmJwceAj4CNTQuAQYHNSMVFzM1Iz4BHgHvJjo1DBoKKDIzKRcqREUWHA5BIw41NyOWHi4NGxwLGCENCiAvGiQ7FxUcIksOHBkWDy0AAAAAAwAAAAAA/gEHAAMACQAMAAATIxUzJxcVByc1HwE1/RwcXBYWhCFdAQfh2Qu8C14WC0KEAAMAAAAAARABBwAIABIAFwAANxQGLgE0NjIWMy8BIwcVFzM/AQcjNTMXvBYgFRUgFlRQEV8YGF8RUGFfX0+WEBYBFSAWFlkIGLIXCFlKslkAAgAAAAABEAEHAAkADgAAJS8BIwcVFzM/AQcjNTMXARBQEV8YGF8RUGFfX0+mWQgYshcIWUqyWQACAAAAAAD8AQAABQAIAAA/ARcVByc3FTdQFpaWFhxu9AtkF2QMrZNKAAAAAAIAAAAAAQwBDAAXACAAADc1MxU+ATMyHgEfASM1LgIiBgczFSMnFyImNDYyFhQGIRwQMBsdNCACAR0CGCcuKQs1ThJ1EBUVIBYWwEsvExYbLhwFBBQiFBYTHBKQFSAWFiAVAAACAAAAAADqARoACgATAAA3MzcnBzUjFScHHwEUBiImNDYyFpYKSRQxHDEUSS8WHxYWHxZ5SRQxdHQxFElBEBUVIBYWAAIAAAAAAOoBGgAKABMAABMjBxc3FTM1FzcnFxQGIiY0NjIWlgpJFDEcMRRJGxYfFhYfFgEZSRQxdHQxFEnhEBUVIBYWAAAAAAIAAAAAAQwBDAAXACEAACU1IxUuASMiDgEPATM1PgIyFhcjFTM3BzI2NC4BBhQWMwELHBAwGx00IAIBHQIYJy4pCzVOEnUQFhYgFRUQwEsvExYbLhwFBBQiFBYTHBKQFSAVARYgFgAAAgAAAAABBwEHAAcACwAAExcVByMnNTcXIxUz9BMTvBISt7KyAQcTvBISvBMYsgAABQAAAAABKwEsAAEADQBBAEkAWQAANzUXJzcXNxcHFwcnByc3FTM3FwcVFhUHMxUjMQYPARcHJwcOASImLwEHJzcnJicrATUzNTQ3NSc3FzM1ND4BMh4BBxUzNTQmIgYXNSMHBhUUHgIyPgI1NCtbJg0oJw0mJg0oJw10ECQNIgwBLC4GDwErDSkBDiQmJA4BKQwqAQ8FAS4sCyMNJBIQHSIdEWtZGiUaepsBCQ4ZHyIfGQ+LAQkmDCgoDSYmDSkoDZAMJA0iAR4fDhIfGQErDCkCDxISEAIoDCoBGR4SDiAcASMNJAwRHRERHREMDBMaGjIBARocGS0hEREhLRkdAAIAAAAAARoBBwAUAB4AADc1MjY3NjUjJzU3MxcVJzUjFTMHFzM3Jwc1IxUnBxdLERECAlUJCfQJEuFrCS4oLw0fEx4OLxMTBQUDBQq7CgqtE5GpCS8vDR95eR8NLwAAAAMAAAAAARoA4QANABEAFQAAJQc1JyMHFRczNzUXNzUHIzUzFyc1NwELPQmpCQmpCT0OXZaWSzk50yMoCQmECQkmIwlrbXBdHwoiAAAFAAAAAAEaAQcADQAXACAAKQAyAAA3MxcVByMnNTczPwEzFwczNSMvASMPASMXIgYUFj4BNCYXMhYUBi4BNDY3IgYUFjI2NCbJRwkJ9AkJRxAHOAeT4UIHEDAQB0EcBAYGCAUFUBAWFiAVFRAXISEuISH0CqgKCqgKEAMDuZYDEBADEwUIBgEFCAUSFiAWARUgFhIhLiEhLiEAAAADAAAAAAD0ARoABwALAA8AABMzFxUHIyc1FzM1IxczFSNUlgoKlgkTg4MvJSUBGQn0CQn06uG8EwAAAAADAAAAAAEHARoABwALABcAABMzFxUHIyc1FzM1IxcjFSMVMxUzNTM1IxzhCgrhCRPOznATODgTODgBGQnhCQnh2M8mOBM4OBMAAAAAAwAAAAABGgEaAAcACwARAAATMxcVByMnNRczNSMXMxUHIzUc9AkJ9AkT4eGWJXAmARkJ9AkJ9OrhJiVxJgAAAAMAAAAAARoBGgAHAAsAFAAAEzMXFQcjJzUXFTM1BzI2NCYiBhQWHPQJCfQJE+FxFyEhLiEhARkJ9AkJ9Anh4akhLiEhLiEAAAUAAAAAARoBGgAJAA4AGgAeACUAABMfARUHIyc1NzMHMzUnIxcjFTMVMzUzNSM1IwczFSM3HwEVBy8BtjgGE6kTE3FxqThxSyUlEyYmEyVeXosrBRIBOAEUOA6oExPhEvOoOUsTJiYTJYMTzisNuxPOOAAAAwAAAAABBwEaAAMACwAPAAA3FSM1JzMXFQcjJzUXMzUjvF5C4QoK4QkTzs6pExNwCeEJCeHYzwADAAAAAAEaARoABwALABIAABMzFxUHIyc1FzM1IxczFTcnFSMc9AkJ9AkT4eElOF5eOAEZCfQJCfTq4YQ4S0s4AAAAAAQAAAAAAQcBGgAJAA4AGgAeAAATHwEVByMnNTczBzM1JyMXIxUzFTM1MzUjNSMHMxUjyTgFEqkTE3BwqTlwSyUlEyUlEyVdXQEUOA6oExPhEvOoOUsTJiYTJYMTAAAAAAYAAAAAARoA9AAHAAsADwAXABsAHwAAPwEzFxUHIyc3MzUjNTM1IzczFxUHIyc1FzM1IzUzNSMmCV4JCV4JEktLS0t6XgkJXgkTS0tLS+oKCqgKCglxEhMTCqgKCqifJiVLAAABAAAAAAD3AQoAGQAAExUXMzUjNz4BHgIGDwEXNz4BLgIGDwE1QglCMBINIiMZCgoNYQ1iEAwMISwsEA4BB0IJEhINCQkZIyMMYg1hESwsIQsLEQ0nAAAAAwAAAAABGgEaAAkADAAQAAATIw8CFz8CNQc3FzcnNxf4G5sDLBpNBZrsHRsQIZYhARmaBU0aLAObG8s4GwohliEAAAADAAAAAAEaARoADQARABgAACUnIzUnIwcVFzMVFzM3JzUzFRcjNTM3NTMBGQmNCV4JCS8JvAnzS5apHAmEsgpUCQmXCFUJCWdxcV1LCB0AAAMAAAAAAQcAqQAIABEAGgAANxQGIiY0NjIWFxQGIiY0NjIWFxQGIiY0NjIWSwsQCgoQC14LEAsLEAteCxALCxALlggLCxALCwgICwsQCwsICAsLEAsLAAACAAAAAAEaARoACwAcAAA3MxUjFSM1IzUzNTMHNTMVMzUjNTM1IzUzFxUHI0s4OBM4OBM4E+FxcXF6CQn04RM4OBM4/WddgxMlEwrOCQAAAAMAAAAAAOIA4QALABgAIQAANycHJzcnNxc3FwcXNxQOASIuATQ+ATIeAQc0JiIGFBYyNqwWFhEWFhEWFhEWFiQUIygjFBQjKCMUEyEuISEuIW8WFhEWFhEWFhEWFhYUIxQUIygjFBQjFBchIS4hIQADAAAAAAEWARsAFQAoADQAABMeARcWFRQHDgEHBicuAzc2Nz4BFzY3Nic0JicmJyYGBw4BFhceASc3FwcXBycHJzcnN6EWKRAmHg8mFjAnFB4QAwcPJhIrISYZGQIRDx0mEyYPIBchIhAmBC0NLS0NLS0NLS0NARkBFBApNysnEhcECRYLIiouFS4ZDAz0CR8iJRcqEB0DAQkLGE5IEwoGfC8NLy8NLy8NLy8NAAAAAAQAAAAAAR0BGgAvAEMAUABUAAATIwcnBxcHFRcHFzcXMyYnIy8BByc3LwE1PwEnNxc/ATMfATcXBx8BFRYXNSc3Jw8BMhYXBgcuAQ4CFhcGBy4BPgEfAT4BHgIOAi4CNhcVMzWwNAomJhotLRomJgonCggGCQ4mDxkGLCwGGQ8mDgkWCQ4mDxkGLAsILRomJiQMEwQJCAELDgoBCAcGAw0NBBUOGA4jIRcFDRwiIBYGDAheARktGiYmCjQKJiYaLQgLLAYZDyYOCRYJDiYPGQYsLAYZDyYOCQYICicKJiYaMA4LAwYHCAEKDgsBCAkFFxsSATQMBgwcIyEWBQwbIiEeExMABQAAAAABBwEHAAMABwAVABwAIAAANyMVMwc1IxUnNzMXFQcjFQcjJzU3OwIXFTM1IxcjFTOpXl4mEhMTgxMTJhKEEhImE0sSJoNLhISDEiZeXqkTE4MTJhIShBISS4M4hAAAAAIAAAAAARoA4wAIAAwAADcnNxcHJzcjNSczFSP1LA1DQw0svSUTE6ktDURDDS0TOIMAAAAGAAAAAAEsASwABwALABcAGwAfACMAABM3MxcVByMnNxUzNQU1NzMXFTMXFQcjJzc1IxUXIxU7AjUjqRNdExNdExNd/ucTXhJeExPOE3FeXl5eEl5eARkTE10TE11dXahwExNeEl4TE3BeXhJeXgAABAAAAAABFAEUACAAJgA3ADsAABMGFB8BDgEHBh4BNjc+ATcXBhQWMjcXFjI2NC8BMScmIh8BBiImNDciBxc2MzIWFx4BPgEnLgIHFy4BHAMCMxIaBQEEBwcBBRcRFg4dKQ9KAwgFAoBoAwhiLAkaEh8TEQ8LCiU5CQEHBwQBByMzGjABGwEQAgcDMw0lFgQHAgQEFCALFw4pHg9KAwUHA4BoA3QsCRMZUQUQAy4jBAQCBwQbKxgsLxMbAAADAAAAAAERAOgACAARACgAADcyFhQGIiY0NhciBhQWMjY0JicyHgEXFg4BJicuASIGBw4BLgE3PgKWFR0dKh0dFQ0SEhoSEg0cMyMHAQQHBwEJOUo5CQEHBwQBByMzux0pHh4pHRITGhISGhM+GCsbBAcCBAQjLS0jBAQCBwQbKxgAAAAD//8AAAEaARoAFQA7AEQAABMHFTcXNTMVIwc1IxcHMxUXNzM3NScHPgE0LgEiDgEUFhcOAQcGDwEzNTQ+AjsBMh4CHQEzJyYnLgEnIiY0NjIWFAZUCQkKqSEYJgEBFBAiIgkJmA4QEh4jHxEQDQ0WBwQBARMKEhgNAQ0YEgoTAQEFBhYyExsbJxsbARkJHQEBFF4YGAoJHAcjCXEJsQkdIx4SEh4jHQkGFhALDBIKDRcTCgoTFw0KEwsLEBYPGycbGycbAAAAAAgAAAAAAQcBGgAJAA4AGAAdACcAMQA7AEAAABMfARUHIyc1NzMHFTM1JwcUMzI2NTQjIgYXNDIUIhczNSM1BxU3FSMHIzUzNQc1NxUzNxQzMjY1NCMiBhc0MhQixj4DCs4JCZGIvDhoGQ0OGQ0OEBQUPC0PHxAPGi0PECAOFBoNDRkNDhAUFAEXPge2CQn0CRLhqDlMJRQSJRQSGjILDD0GDQMtagwtAw0GPRgkExMlFBMaMgAAAAAFAAAAAAEHARoACQAMABMAGgAhAAATHwEVByMnNTczBzMnIxUzNSMnNQc3JwcVFz8CFxUHJzfGPgMKzgkJkQQ4OIS8QglKIg0pKQ0kDSkpDSIBFz4HtgkJ9AlLOeGWCUKOIw0pDSkNRA4pDSkNIgAABwAAAAABGgEaABEAFAAcACUAKQAtADYAABMzFRczFTM1LwIjBxUXMzUjNxcjFyMHFRczNzUHFScjBycjBzUXNxcrATU3FzcyNjQmIgYUFiZwCUITAz4GkQkJQjiDODhnlgkJlgkSHw0WKA0NTw8dHl0TLyUEBgYIBQUBB0IJEykHPgIJ9AkT4Tk4CXEJCXEKSx4WKAwnUA8cGxMuQQYHBgYHBgAJAAAAAAEHARoADgARABkAHgAoAC4ANwA/AEkAACUvASMHFTM1MxUXMxUzNQc1Fw8BFRczNzUnBxUjNTMHIxUjNTMyFRQGJyMVMzI0FzYnNAcjFTMyJzUzNhYUBic3IxUjNTMVIxUzAQQ+BpEJEnEJQhNLOMUJCc4KCgm8vJYGDRQVDQoFBQpCCQEeFBQNFAYHCwoITRINIRQS2T4CCWdeQgkTKQQ5OTgJcQkJcQleEl04EzkTCAsbEREmCQwcATgLIwELDwsBCxY5Cw4AAAAABAAAAAABGgEHAAMAIQArADIAADczNSM3NTczHwEzFxUHIyc1Iyc1NzMfATMXFSM1Iy8BIxUXJyMVMz8BMzUjByMVMzUjByYSEhIKUwgIawkJzgocCQlTCAhrChNnCAhEcQhEOwgIcWgTQbxrCF5LEwkJBA4KlgkJLwmpCgUOCi4lBQ44Dw85DgUTOEtdDgAABAAAAAABGgEHAAoAEgAcACwAADczFxUHIyc1NzMfATU3Iw8BIxU3MzcjLwEjFTM3Fyc3FxUHJzcjDgEXIzQ2N5F/CQn0CQleB4UBdxAGVGZ6AXoHEFBQEDEZDikrDRsaDxUBEx4X9Aq7CQnOCgPMHWcQA3GWEwMQORBJGg0qDSoOGQEVDhYgAQAAAAAFAAAAAAEHARoAEQAUABwAIAAqAAATHwEVByM1MzUjJzUjFSM1NzMHMycHIwcVFzM3NQcjNTMHFSM1Byc3IzUzxj4DCkE4QglxEgmRBDg4HYMJCYMKE3BwExIyDTEhOAEXPge2CROWCUJLVAlLOV4KgwkJg3lwHDghMQ0yEgAAAAsAAAAAAQcBGgAKAA4AIwAnACsALwAzADcAOwA/AEkAABMzFxUPARUHIyc1FyMVMxUzNS8BNSMVByMVIzUjJzUjFTM1MzUVMzUnFSM1NzMVIzUVIzU3MxUjNRUjNTsBNSMXNzUjFR8BFTM1L84KAxAKuwlLExNLEAMmCQkTCgkTJhMSEhMTEhITExISExMSEnMQOA8DEwEZCV4GEX8JCfQJJrt2EAdULwoSEgov4RITExMTExMTEyUSEhMTJhMTExYQUVEPB3p5AAAAAAMAAAAAAQcBGgAJAA8AEgAAJS8BIwcVFzM3NQcjNTMVMyc1FwEBOA1xExOpExOpXks4ONw4BRLhExOoqOFLEjk5AAAABAAAAAABEwEsAA0AEAAXAB0AABMjBxUjBxUXMzc1Mzc1JxcjByM1MxUXMzcjNTMVM9txEjkSEpcSOxA4Hh4mljkSS0uWXjgBLBM4E7wSEjkSlx4e4btxEhO7OAABAAAAAAEaAQcABwAAARUHFSM1JzUBGV1LXgEHIFloaFkgAAACAAAAAAEaAQcABwAPAAABFQcVIzUnNRcVMzU3NSMVARldS15wJl7hAQcgWWhoWSBxXl5ZBQUAAAIAAAAAAPsBGgAtAFMAADcnNiYnJicGBwYXFhcHLgI3NTY3Njc2PwE2NzY3Nic3HgEHNj8BFRYXFgcOAScXBhYXHgEHPgE3NiYnDgEvATYmJwYHBg8BBgcGFTEGFhcmNzY3qwoJAwsSBA4CAwYDCgsUHxEBAQMECQoQCAkHCgMEBg0fGwkGBBEKBgsLCSU7EAEJCQ0KBAwSBQUECAYTCgYMCRQCEQkPAhcJBAEQDwoFBhwTDgscCQ8WExEODQgODgQYJRQHCQkNDQ8OCAoLDwwRDAwWRyUHCAIBEBMlGxQafwcNGQkJHA8EEQsRIxAJCQINGzsWFhoNDwIUFwwKEh8KFxUcHwAAAAIAAAAAAQsBGgAGAA0AAAEnBycHFzM3JwcnBxczAQoNcHENdw13DXBxDXcNAQwNcHANdwYOcXEOdwAAAAIAAAAAAQ4BGgAGAA0AADcXNxc3JyMHFzcXNycjEw1wcQ12DXgNcHENdg2hDXFxDXjoDXBwDXgAAgAAAAAA7gEAAAYADQAANwcnBxczNwc3FzcnIwfgSksMUQtRo01MDFMLUv9KSgtRUc5MTAtSUgAEAAD//wEuAQcAFAAeACsAMgAANzMXFSYnNSMPASMVMxYXIyc1NzMfATM3Iy8BIxUzNxc+AR4CDgIuAjYXNycHJwcXkX8JCAt2EAZVYAIEbwkJXgcLegF6BxBQUBAxESgkFwISISgkFgMSOC0PJxgMIPQKVAcEGxADcQkJCc4KAzYTAxA5EEIMAhEiKCQXAhIhKCRSOww0Ew4aAAAFAAAAAAEaAQcAEgAcACAAJAAoAAA3MxcVIzUjDwEjFTMVIyc1NzMfATM3Iy8BIxUzNxczFSM3MxUjPwEXB5F/CRJ3EAdUXmcJCV4HC3oBegcQUFAQEBMTJhISJRImEfQKQRMQA3ESCc4KAzYTAxA5EDVwcHBpB2oGAAAAAwAAAAABJQEHAA0AGQAgAAA3Mz8BJyM1JyMvASMHFTczHwEzFSMPASMPARcjNzM/ATMczgkyCRUKbBEGXgkTUBAHZ1UGEEcJE726H0UGEG0mBoQMLgoQAwrOxRADJQMQBzkxXgMQAAADAAAAAAEaAQcACgASABwAACUjLwEjBxUXMzc1BxUjNTM/ATMnIw8BIzUzHwEzARB/EAdeCQn0CRPhVQYQdwF6BhBQUBAHevQQAwrOCQm7lR1xAxASAxA5EAMAAAUAAAAAASwA9AATACMAQABJAFMAADczMh4BHQEUDgErASIuAT0BND4BFyIGHQEUFjsBMjY9ATQmIwciBh0BIyIGFBY7ARUUFjI2PQEzMjY0JisBNTQmFxQGIiY0Nh4BBxQGIiY+ATIWFUuWFCMUFCMUlhQjFBQjFBchIReWFyEhF3oEBRwEBgYEHAUIBhwEBQUEHAaJCxALCxALEwsQCwEKEAv0FCMUOBUiFBQiFDkUIxQTIRc4GCEhGDgXISUGBBwFCAYcBAUFBBwGCAUcBAYTCAsLEAsBCkAICwsPCwsIAAAAAAQAAAAAARoBGgAfADcAQABJAAA3JyMPAScHFw8BFR8BBxc3HwEzPwEXNyc/ATUvATcnBycXNxcHFxUHFwcnByMnByc3JzU3JzcXNxcUBiImNDYyFgcyNjQmIgYUFqsKFgoNJREYAy0tBRgPJQ8IFgoPJQ8YBSwtBhgPJQgKJyYbLS0bJicKNAonJRotLRkmJwhAFx4WFh4XJggLCxALC9otLQYYDyUNChYKDyUPGAUrLQUYDyUPCBYKDyUPGEMtGSYnCDQKJyUaLS0ZJicINAonJhstgw8WFh4XFyILEAsLEAsAAAUAAAAAAQcBGgAiACYAOQBMAFAAADcjNjUmJyYvASYiBgcGByYnJiMiBwYHBg8BFBcjBxUXMzc1ByM1MzUjNSY1NzY3Njc2MhcWFxYXFhUzNDc2NzY3NjIWFxYfARQHFQcjFyM1M/0eAgQDBggFCAkIAxENDREMBQkIBwYDBAECHgkJ4QqEXV04AgECAwIHAg8ECQYEAQITAgIEBQoDDwgFAQECAgI2Xl5e4QgPCwUJAwIDAQIFFBQFAwUDCQMLAw4ICakJCamglhMEBQoDBQEEBAICBAgFAwUFBQUDBQgEAgQGAQMFCgUCAqmWAAAAAAUAAAAAARoBGgATABYAJgAwADQAADczFRcjJzU3Mx8CFSYnNSMnNSMXJxUXFTMXFQcjJzU3MzU0NjIWBwYdATM1NC4BBgcVMzU4SwJWCQmRBj4DCAtCCXG8OEETCQlxCQkTFh8WMwUlBgoMJV4mEgEJ9AkCPgcwCwcICUI5OTlLEgpLCQlLChIQFhYCBggSEgYJBQI3ODgAAgAAAAAA4QEsAA8AGAAAEzMVHgEUBgcVIzUuATQ2NxcyNjQmIgYUFo0SHCYmHBIcJiYcCRQdHSgdHQEsTAMqOioDTEwDKjoqA3sdKB0dKB0AAAAABAAA//4BHAEaAB8AKgBJAFUAADcnNxcVByc3IwYmPQEuAj4BMzIXFhcWFRQGBxUUFjMnFj4CLgEOAhYXFhceAQcOAS4CNjc2NzU0JisBFwcnNTcXBzMyFg8BPgIuAg4CHgGLGAwoKA0YIxMcDhQFCxcPCQkSCAMVEBAMNQgUDgIKEBANAwfIDgoMAwkIGhwUBgsMCAkRCyMYDigoDhgjExwBBgcMBwEJEBEMAwcQOBgNKA0oDhgBHBNoAxQcGhADCBIJCREaA2cMEZsFAg4UDwcDDRAQewMKDCEODAsGFBwaCAUCaAwQGA0oDSgNGBsUsgEIDg4OBgMMERAKAAAAAAQAAAAAAQQBBwADAA0AEQAVAAATIxUzByc3FzUzFTcXByczFSMXIxUzqRMTEF4NThNNDl4QExMTExMBBxPOXQ5OGxtODl2oEiYTAAAEAAAAAAEIAS0ANAA/AEoAVwAANy4BBwYHBgcuAScyNz4BNTQnJicmIyIOAR4BFxUGBw4BHgI+ATU2LgEnNRYXFhceAT4BNAceAQ4CLgE+AiciLgE+Ah4BDgEXDgEuAj4CHgIG+QwhDgwGAQEeKgMEBA0QBAcSCQoOFwsFFA4JCAsLBRQcGw8BCRILDxYTFAQdJBioCAoCDhQPBwMNEAMIDgcDDRARCgQPjQUODgsGBAwRDgkDBJsMAwkIDQQEAyoeAgYXDgoJEgcEEBocFANfAgUIGxsUBgsXDwkUDwItFQsKARIVAxslMgQPFA4CChAQDQOCCg8RDAMHERQNewUEAwkOEQwDBgsNDgAABgAA//4BGgEaACEALQA5AEoAVQBhAAA3Bg8BFRYXHgEVFA4CIyIuAT4BNzUuAj4BMzIeAhUUBy4BIg4BHgI+AicWMj4BLgIOAhYXFhcWFRQOAS4CNjc2NzUzFz4BLgEOAh4BNicHFzcXNyc3JwcnB2kIDQgEBA0QBw0SCQ8XCwUUDg4UBQsXDwkSDQcWBA0QDgcDDRAQCQEsBxANCAEJEBEMAwfIDgoOEBocFAYLDAcKEgsHAgoQEQwDBhAUHR8NHyANHx8NIB8N0AwGAl4BAgUYDgoRDgcQGhwUA18DFBwaEAcNEgkPnwcICg8RDAMGDg+eBQgOEA0HBAwQEHsDCg4TDhgLBhQcGggFAkOFBxQQBgMMEQ8LAtgfDiAgDh8gDR8fDQAAAAAFAAAAAAEsARoAHQAqADYASgBWAAA3Bg8BFRYXFhUUBw4BIi4BPgE3NS4CPgEzNhYHFAcuASMiBhceAj4CJxYyPgEuAg4CFhcjNTQmKwEXByc1NxcHMzIWFxYHFSM1IzUzNTMVMxUjaQgNCBMKCAMGGB0XCwUUDg4UBQsXDxMdARYEDQgNEQMBDRAQCQEsBxANCAEJEBEMAwfIEhELIxgOKCgOGCMOGAUEARM4OBM4ONAMBgJeBBAMDgoJDRAQGhwUA18DFBwaEAEcFA+fBwgVDQgMAwYOD54FCA4QDQcEDBAQLxwMEBgNKA0oDRgQDQkJxTgTODgTAAcAAAAAARsBGgAgACwAOABBAEoAUwBcAAA3PgE1NC4CIyIOAR4BFxUOAh4BMzI+AjU0JicmJzUXHgEOAi4CPgEyJyIuAT4CHgIOARcUBiImNDYyFgcyNjQmIgYUFicUFjI2NCYiBjUUFjI2NCYiBlQNEAcNEgkPFwsFFA4OFAULFw8JEg0HEA0EBAUGCAEJEBANAwcOEAgIDgcDDBEQCQEIDdAbJxsbJxsvDBERFxERBwsPCwsPCwsPCwsPC74GFw8JEg0HEBocFANfAxQcGhAHDhEKDhgFAgFedQQODw4GAwwRDwqDChAQDAQHDRAOCJ8UGxsnHBwvEBgQEBgQiAgLCw8LC0gHCwsPCwsAAAAABP//AAABBwEaAA8AGwAfADUAADcVFzM3NS8CIxUzFxUjNTcjNSMVIxUzFTM1MwczFSM3Byc3IyIGFBY7ARUjIiY0NjsBJzcXOBOpEgU4DiUlOamDJRMlJRMlXV1dEygNGDgMEBAMCQkUGxsUOBgNKHFLExOoDjgFEjmoS0slJRMmJksTmSgNGBAYEBMbJxwYDSgAAAQAAAAAARoBGgARABYAIgAuAAAlLwEjBxUXMyYnIzUzFxUWFzUHIxUzNCczNTMVMxUjFSM1IxciDgEeAj4BNTQmAQE4DnATE2QJBlVwOQoIbiclJSUTJSUTJXARHA0GGCIfEyHcOAUS4RMICuI5OgMFQnATCmclJRMmJiYTHyIYBg0cERchAAAFAAD//gEaARoAHQAqADYAVwBjAAA3Bg8BFRYXFhUUBw4BIi4BPgE3NS4CPgEzNhYHFAcuASMiBhceAj4CJxYyPgEuAg4CFhcWFxYVFA4BLgI2NzY3NTQmKwEXByc1NxcHMzIWFxYHFz4BLgEOAh4CNmkIDQgTCggDBhgdFwsFFA4OFAULFw8THQEWBA0IDREDAQ0QEAkBLAcQDQgBCRARDAMHyA4KDhAaHBQGCwwICRELIxgOKCgOGCMOGAUEAQsHAgoQEQwDBgsNDtAMBgJeBBAMDgoJDRAQGhwUA18DFBwaEAEcFA+fBwgVDQgMAwYOD54FCA4QDQcEDBAQewMKDhMOGAsGFBwaCAUCaAwQGA0oDSgNGBANCQmqBxQQBgMMEQ4JAwQAAAUAAAAAAQcBDgAJABcAIQAlACkAADcVMzUXNycjBxcPARUXMzc1JyMOASImJxczFSM1Mx4BMjYnMxUjFTMVI4MTMg1CDUIONgkJ4QoKQgQaIRoDaSzOKwggJyA9ExMTE/AiIjIOQUEOOwleCQleCRAVFRASS0sRFRVcExMTAAAAAwAAAAABBwEOAAkAFwAhAAA3FTM1FzcnIwcXDwEVFzM3NScjDgEiJicXMxUjNTMeATI2gxMyDUINQg42CQnhCgpCBBohGgNpLM4rCCAnIPBtbTIOQUEOOwleCQleCRAVFRASS0sRFRUAAAAAAwAAAAABBwEaAAkAFwAhAAA3NTMVNxcHIyc3DwEVFzM3NScjDgEiJicXMxUjNTMeATI2gxMyDUINQg42CQnhCgpCBBohGgNpLM4rCCAnIK1sbDENQkINWwleCQleCRAVFRASS0sRFRUAAAAABQAAAAABGgEaAAwAGAAfACMAJwAANzMXIyc1NzMXFSc1IxcHMzcnIzcnIw8BFzczBzMHNyMnIzUzByM1MzkwDUYKCuEJE85oGyppDR8PDzYRKxErNiNCbB8zCjY/GiUucRMJqQkJWiEwqUFsIBsdC14acDhtSDgTORMAAAEAAAAAARgBIQBsAAAlFhUUBwYHFh0BFAYiJj0BNiYnNzY3Njc2NTQvATYnBg8BJgcnJiMGFwcOARUUFxYXFh8BBhcVFgYiJj0BBicmJyYvAS4BJy4BPgEXFhcWHwEWFxY3NSY3JicmNTQ3Jj8BNhcWFzYXNjc2HwEWAQcRFxIgBgUHBQEFBQUWDREJCxACBwYREwcpKQcaCwYHAwgJCwgSDRYFCwEBBgcGEQ0LCQUIAQUHAwIDAgYDBwcDBwEKCA0VAgcgERkRBQkGBAoQFSkqFBALBAYJ6hQbLRgRBQoRLgQFBQQuCA0GDgMGBw8SHRYRChASBA0CCwsCEBMQCQgVCh0RDwgGAw8KDy8EBgYEGgQEAwgECwEGBgEBBgYEAgEFAwgCDQQHBQQODQYRGCscFBoVBAIBAw0KCg0EAgIFGQAAAAH//wAAAS0BLABUAAATIg4BFRQeARcyNj0BBicmJyYvAS4BLwEmNzYzMR4BHwEWFxY3NjcmJyY1NDcxJjczMhcWFzYzMhc2NzYXMRYPARYVFAcGBx4BHQEUFjM+AjU0LgGWKUUoGi4eBQUOCwkHBAMDAggDAwkEAgQGCwMDCQ4KCgEIHhAWEAcJBAYICg0PFxEUEg0HAwgFARAWDx8EBgUFHi8ZKUUBLChFKSA6KgoEBBkDAwIFBAUECAoDAQYDAQEHBAQPAQEEDAgEDRMnFxETFAMECQUFDAMCARMUAREXJxINBAMOCikEBAorOh8pRSgAAAADAAAAAAEHAQcACwATABcAADczNTM1IzUjFSMVMyczFxUHIyc1FzM1I3EScXESOTlCzgoKzgkSvLw4cRI5ORJeCs4JCc7FvAACAAAAAAEtASwADABqAAATIg4BFB4BMj4BNC4BAyMiJj0BNCYnPgI3NjU0Jic+ATQmJyMiBg8CJgcvAS4BKwEOARQWFw4BFRQXHgIXDgEHDgEmLwIuASMHBhQfARYfAR4BNzM3FRQGKwEuAj4CMh4CDgEHlilFKChFUkUoKEUBAgIEBAUNFxADBAcGAQECAgIFCAQJByAgBwkECQQDAQIBAQYHBAMQFg0DBAEHDwsEBAQDBgMFAQIIAgIGAxEKBgcEAwEdLBMKJDc+NyQKEywdASwoRVJFKChFUkUo/vADAyMHDQQBCRALDQ4JEgcEBwkJBQICBQQJCQQFAgIFCQkHBAcSCQ4NCxAJAQMJBQMBCAcEBQEDAQECAgYCAgsJCgEBFgMDCSw6PjIcHDI+OiwJAAAAAAoAAAAAARoBGgAMABIAHgAqADEANwBBAEgATQBTAAATMh4BFA4BIi4BND4BFy4BJxYfATY1JicjFhUUBzM2JzU2NCcjBhUUFzM2JyYnKwEGByM2Nw4BDwEGFBczJjU0NyMXIx4BFyYnFzY3IxY3Bgc+ATefITghIThCOCEhOH0JHhIMBjIBAQMsAQQvAkEBAkgBBEMCAwcQCgkRBhQFDRMdCQgEBC8EASw0LAomFxIJLxIKNwlCCRIXJQsBGSE4QjggIDhCOCFLEhoGFxs4BQQPDQoIExMJCgEJEgkJCRMTCkEeGhoeGxgHGhISDh0OExMICkoWHAUZHTEWGxscHhkFHBYAAwAAAAABLAEaABYAJwAqAAA/ATUnBxcjIgYUFjsBNSMiLgE2OwEHFzcjJzMfAhUHIyc1FxUzNSM3FTNxJigNGDgUGxsUCQkMEAERDDgYDV8yE1gNOQUTqBMTqEsTOL0nDSgNGBwnGxMQGBAYDUsSBTgOqBMTjBB8lks5AAIAAAAAARoAvAADAAcAACUhFSEVIRUhARn++gEG/voBBrwTJhIAAAAHAAAAAAEaAQ8ACQARABUAHQAhACkALQAANxcHJzU3FwczFQc1NzMXFQcjNzUjFTc1NzMXFQcjNzUjFTcVFzM3NScjFxUjNSgQCyAgCw/wzgkmCQkmHRM4CSYJCSYdEzgJJgkJJh0T4RELHwwfDA8TxqsICKsIEZmZHYUICIUJEXV1fWAICGAIEFBQAAIAAAAAASABLAAGABMAACUVIyc1MxU3ByMnByc3Mxc3MxcHARn9CRPOYQ0fRA5LDh9gDSYNOBIJ/fS4YR9EDUsfYSYNAAAAAAYAAAAAARoBLAAGAAoADgASABYAGgAAJRUjJzUzFTczFSM3MxUjBzMVIwczFSM3MxUjARn9CRM4JSWDJiZLJiY4JSWDJiY4Egn99M8mOCUmJSYlOCUAAAAHAAAAAAEaASwABgAOABIAGgAeACYAKgAANzM1IzUjFTc1NzMXFQcjNzUjFTcVFzM3NScjFxUjNQc1NzMXFQcjNzUjFRz98xMlCiUKCiUcE4MKJQoKJRwTXgolCgolHBMmEvT9JZYKCpYJE4ODsrwJCbwJEqmps3EJCXEJE15eAAYAAAAAAM8A9AADAAcACwAPABMAFwAANzMVIxUzFSMVMxUjNzMVIxUzFSMVMxUjXiUlJSUlJUslJSUlJSX0JiUmJSa8JiUmJSYAAAALAAAAAAEHARoACQARABUAHQAhACkALQA1ADkAPQBBAAATMxUjFTMVIyc1FyMnNTczFxUnMzUjFyMnNTczFxUnMzUjByMnNTczFxUnMzUjFyMnNTczFxUnMzUrAhUzNSMVMxwmHBwmCXomCQkmCSUSEow4CQk4CjkmJkEmCQkmCSUSEow4CQk4CjkmJhImJiYmARkS4RMJ9GcJJgkJJgoSJQk4Cgo4CiWWCSYJCSYKEzkKOAkJOAkmE3ASAAEAAAAAARoBBwAcAAAlLgEnLgEiBg8BJy4BIgYHDgIUHgEfATc+AjQBFwIJBwoaGxkKDQ0KGRsaCgcJBAQJB29vBwkE0gkRBgoKCgkNDQkKCgoHEBISEhAHbm4HEBISAAIAAAAAARoBBwAdAD0AACUuAScuASIGDwEnLgEiBgcGBwYUHgEfATc2NzY1NAcGDwEnLgI0PgE3Njc2FxYfATc2NzYXFhcWFxYVFAcBFwIJBwoaGxkKDQ0KGRsaCg0FAgQJB29vBwQJFQMKYWIFBwMDBwUHChMUCQcaGQcKExQJBwUDBwHSCREGCgsLCQ0NCQsLCg0TCRISEAZvbwYIEBMJFQ0KYWEFDAwODQsFBwQICAMIGRkHBAgIBAcFBgsOBwYAAAACAAAAAAEdARsAHgAlAAA3PgEmJy4BDgEHNSMVFzM1Iz4BHgEOAiYnBx4CNic3JzUjFRf9Eg0MEhM8QTgQEwlCKRNISi4CMUtGEhAPOEI+Kw42EwNFFzk5FxocBCEcLUIJEiIdFT5NPBIhIgkdJgYbLA02R0sHAAACAAAAAAEUARMAEQAcAAATFwcnFQcjJzUjFQcjJzUHJzcHFTM1NzMXFTM1J513DRMKOAkmCTgKEg53RCYJOAolSwESbA4RegkJQkIJCXoRDmxYgkIJCUKCRAAAAAQAAAAAAPQA4gALACAALAAwAAA3MzUjFSM1IxUzNTMXMyc2NzY3NjQuAScmJyYrARUzNTM3BisBNTMyFhUUBwYXIxUzeQ8PMRAQMWoRGAMECAMCAwUEBgcEAy4PHAkDAiAgBgoBAxe8vHFwMTFwMDAxAQMGCQULCgcDBQIBcC4QASQKCAUDB2YTAAAABQAAAAABBwEaACQALgA7AD8AQwAANzMXFTMXFQcjFQcjByc1Iyc1Iyc1NzM1NzM1LgE1NDYyFhUGBxc1IxUXMxU/ATMnBgcxBiYnBx4BMjY3JyMVMzczFSOfSwkKCgoKCTovEC8KCQkJCQpLBAYLEAsBCUKWLwkiBzUoCw4NGAkNChkcGQlMExM4ExPhCSYKEgk5CTQHLQw2CRIKKAcVAwgGBwsLBwsFYThuAikmAy4KAwMICQ4JCwsJMxMTEwAAAwAAAAABGgEaAAkAEwAdAAA3Mzc1LwEjDwEVNyM1Mx8BMz8BMycjDwEjLwEjNzMc9Ak0CI0JNPThLw4IVggNMQE1CQxLDgg1MX8mCVSQBgaLWQk4FwUFFxMFFxcFhAAAAQAAAAAA9ADPABEAADcVFBY7ASc3FxUHJzcjIiY9AUsFBIEeDTAwDR6BCxHOJQQFHg4wCy8NHhAMJQAABAAAAAABGQEbABMAJwArAC8AABMeARceAQYHDgEmJy4DPgMXPgE3PgEmJy4BBgcOAR4BFx4BNyczNSMXFSM1oRYpDxgSDBUTNzwbFB4RAg0aJisgEiEMEgsQFBIxMxUZGgMfGhEmEh8YGBgYARkDExAYPkAaGBkCDgsiKi0sJBoL8wQUDxY3NRUSEQcOETU7Mg4JBgSUEiVLSwAABQAAAAABGgEaAAcACwATABcAHQAAARcVByMnNTcXIxUzFRcVByMnNTcXIxUzJxcHFzcnAQcSEpYTE5aWlhISlhMTlpaW9B4eDSsrARkSSxMTSxISSzkSSxMTSxISS44eHg0rKwAAAAADAAAAAAEnAQcADAAQABQAAD8BMxcVIzUjFTMVIycFJxU3BzUXIxMT4RIS4V1dEwEUfjMgPSX0ExNxcZYTEyB+sTMGVj4AAAAJAAAAAAEHARoABwANABUAGwAkACoAMgA4AEEAADcXNjQnBxYUJzcmJwcWJzcmIgcXNjIHJwYHFzYHNDcXBhYXByYXBxYXNyYXBx4BNycGIjcXNjcnBicyNjQmIgYUFu8SBgYSBQsQEiMJHiwFEicSBg8hPwkjEhEPLQYSBgEFEgYeERIjCR4tBhInEgUQIT8JIxIQEEwHCwsPCwt/BRInEgYPIT8JIxIRDxUSBgYSBgwREiMJHk0UEgYPIRAFEhsJIxIQEBYSBQEGEgULEBIjCR46Cw8LCw8LAAAAAwAAAAABIwEbABUAMAA5AAA3By8BNxc+Ax4DFyMuAgYHNx8BBycOAy4DJzM1FB4DPgI3Byc3JxQWMjY0JiIGYz0NGREPCBskKCklHBABEgQySD4MLK0ZEQ8IGyQpKSQcEAITDBgfJCMgFwcrBz1/CxALCxALwhkFPAckEx8UCAYUHiYUJDQJJyISQz0IJRMfFAgHFB4mFQkSIhwSBgYSHBESEhkKCAsLDwsLAAMAAAAAAQcBGgANABsAJAAAEyIOAR4CPgEnNi4CByIuAT4CHgEVFA4CJxQWMjY0JiIGjSU+HA41SEQqAQETIi0YIDQYDSw9OiMQHSYnCw8LCw8LARkpREk0Dhw9JRksIxLhIzo9LA0YNCAUJh0QZwcLCw8LCwAAAAEAAAAAAOABBwAcAAA3ByM3Mjc2NzY/ATY1NC4BIzczByYOAQ8BBhQeAakCXAIOBQcDBgYmBQQJDAJWAgoNCAYmBgQJLQYGAgMFCBSHEAkEBwIHBwEGDBWHEwkGAwAAAAIAAAAAARoBBwAbADEAADcjJzUjLwE/ARceARcWFxY3Nj8DHwEPASMVJzM1NzM3JwcGBw4BIiYnJi8BBxczF9+TCRsJDAZQDAEFAgUGDg0GBQUEDFAGDAkbk4AJHQg/AwMDCBQVEwcEAwNACRwKIQp9BzILGwYFBwIFAwUGAgUFCQYbCzIHfQl9CSMVBAUDCAgICAMFBBUjCQAAAAIAAAAAAQcBBwBGAI0AADc1IyIOAQcxBgcxBhcVFAcxBgcGKwEVMzIXFRYXFRYXMRYdAQYXFRYXMR4CFzM1IyIuAj0BNCYnJic2Nz4BPQE0Njc2MxcVMzI+ATcxNjcxNic1NDcxNjc2OwE1IyInNSYnNSYnMSY9ATYnNSYnMS4CByMVMzIeAh0BFBYXFhcGBw4BHQEUBgcGI3ECCREMAwMBAQECBAoFBgEBBgUFAwQCAgEBAQMDDRAJAgIGCgcEAgIFCQkFAgIJBwUGTQEJEA0DAwEBAQIECgUGAgIGBQUDBAICAQEBAwMNEAkBAQYKBwQCAgUJCQUCAgkHBQb0EwcNCAgICAgQBgUKBQISAgECAwEDBQUGEAgIAQcICA0GARMECAoGGQYMBQsHBwsFDAYZCQ0EArwSBg0IBwkICBAGBQoFAhICAQIDAQMFBQYQCAgBBwgIDQcBEgQICgYZBgwFCwcHCwUMBhkJDQQCAAAAAwAAAAAAqgEHAAsAFAAdAAA3HgE+AiYnJg4BFjciJjQ2MhYUBiciJjQ2MhYUBowECgkFAQQFBg8IAhEICwsQCwsICAsLEAsLKQMBBQgKCQMEAw0PVgsQCwsQC14LEAsLEAsAAAMAAAAAARwBHAAcADkARQAAEx4CBw4BIyInDwEjFQcjFQcjJzU/ASY1ND4CFzY3MTYuAgcOARUGFw8BFTM1NzM1NzM/ARYzMjc+AS4CBgcGHgE21RcjDAQGLx4NCw8HEwkcCjgJAl4EER0lLBIFAwkYIBEWHgEFAl4lCR0JFxEKDAwXAwMBBQgLCQIEAw0OARgFICsWHSYEEgMcChwJCSsHXQ0OEiMXCYoOFxEgGAkDBSQXDQwKXx4dCRwJEwMEQgQKCQYBBQQHDwgDAAYAAAAAARoBGgAvADYAOQA9AEAARwAAJSczNSM1IxUjFTMHIxUzHgEyNjczNSMnMxUjDwEXMzcvASM1MwcjFTMeATI2NzM1BwYiJiczBicjNx8BIz8BFyMXBiImJzMGARIeE14TXhMeBwIFGB4ZBQIIHzolCCUHqQclCCU6HwgCBRgfGAUCtwYPDAQvBAEmE3YXgxd2EyYgBg8MBC8EqUsTEhITSxMOEhIOE0uWBC8PDy8ElksTDhISDhMdAwcGBhktixwcii0cBAgGBgAAAAAGAAD//QEtARgABwALABcAHwAsADMAABMjBxUXMzc1BzcXDwEnMxc3MwcjIgYPARcHJyMXMzcmNzYXMhYVFA4BLgI2FzcnBycHF5kKb28Kc9ZeYWEFbSFRVCIPBxknCBMQFVEhbQoUBCsPERchEx8iGAcNLiIPHBAMGAEYTBBKShAIQUE/Qko3NwodFg0ODjdKDQk9CgEgGBEcDQYZISA/LQslDg8TAAAFAAAAAAEsARgABwALABcAHwAoAAATIwcVFzM3NQc3Fw8BJzMXNzMHIyIGDwEXBycjFzM3JjcUFjI2NCYiBpkKb28Kc9ZeYWEFbSFRVCIPBxknCBMQFVEhbQoUBBMgLyEhLyABGEwQSkoQCEFBP0JKNzcKHRYNDg43Sg0JDhchIS8hIQAEAAAAAAEMARgABwALABIAGQAAEzMXFQcjJzU3Bxc3BxczNyMHJxcnMxc3MwePCnNzCm90Xl5h020KcSJUUUxtIVFUInEBGEwQSkoQOUE/PzdKSjc3eUo3N0oAAAIAAAAAARoBGgAHAAsAABMHFRczNzUnFSM1MyYTE+ESEry8ARkS4RMT4RLz4QAAAAIAAAAAARoBGgAHAAsAABMHFRczNzUnBzUzFSYTE+ESEuG7ARkS4RMT4RLz4eEAAAMAAAAAARoBGgAHAAsADwAAEwcVFzM3NScHNTMVMzUzFSYTE+ESEuFLS0sBGRLhExPhEvPh4eHhAAAAAAUAAAAAARoBGgAHAAsADwATABcAABM3MxcVByMnNxUzNQczFSM3MxUjNyMVMxMT4RIS4RMT4c8mJjklJV0lJQEGExPhEhLh4eESExMTExMABAAAAAABGgEaAAcACwAPABMAABMHFRczNzUnBzUzFTc1MxU3MxUjJhMT4RIS4SUTcBMmJgEZEuETE+ES8+HhS5aWluEAAAAABAAAAAABGgEaAAcACwAPABMAABMHFRczNzUnBzUzFTM1MxUzNTMVJhMT4RIS4SUTcBMmARkS4RMT4RKolpaWlpaWAAADAAAAAAEaARoABwALAA8AABM3MxcVByMnNxUzNTMVMzUTE+ESEuETE5YSOQEHEhLhExPhlpbh4QAAAAADAAAAAAEaARoABwALAA8AABMHFRczNzUnBzUzFQczFSMmExPhEhLh4eHh4QEZE+ESEuETqZaWEjkAAAADAAAAAAEaARoABwALAA8AABM3MxcVByMnNxUzNTMVMzUTE+ESEuETEzgTlgEHEhLhExPh4eGWlgAAAAACAAAAAAEaARoABwALAAATBxUXMzc1Jwc1MxUmExPhEhLh4QEZEuETE+ESqJaWAAADAAAAAAEaARoABwALAA8AABMHFRczNzUnBzUzFTM1MxUmExPhEhLhSxKEARkT4RIS4RP04eHh4QAAAAACAAAAAAEaARoABwALAAATBxUXMzc1JxUjNTMmExPhEhKEhAEZEuETE+ES8+EAAAADAAAAAAEaARoABwALAA8AABMHFRczNzUnBzUzFTM1MxUmExPhEhLhgxNLARkT4RIS4RP04eHh4QAAAAACAAAAAAEaARoABwALAAATBxUXMzc1Jwc1MxUmExPhEhLhgwEZEuETE+ES8+HhAAACAAAAAAEaARoABwALAAATBxUXMzc1Jwc1MxUmExPhEhLh4QEZE+ESEuET4c7OAAAGAAAAAAEaAQcABwALABMAFwAfACMAABMHFRczNzUnBzUzFT8BMxcVByMnNxUzNQc3MxcVByMnNxUzNTgSEksTE0tLORI5EhI5EhI5SxI5EhI5EhI5AQcTvBISvBPPvLy8ExM4ExM4ODiDEhI5EhI5OTkAAAYAAAAAASgBBwAHAAsAEwAXAB8AIwAAPwEzFxUHIyc3FTM1Fz8BHwEPAS8BFzcvATczFxUHIyc3FTM1XgkmCQkmCRMSKQYjDEYFIwwyQBJBvwkmCQkmCRMS/QoKzgkJxby8BwwNBcIMDQXAsAawDAoKzgkJxby8AAMAAAAAARoBGgAIABIANwAANyIGFBYyNjQmFycHNyczNxczBycOAQcjFRQWOwEWFyMGJj0BNCYnLgE1NDc+AzMyHgEVFAcG4RchIS4hIQIZGAkWGwoKHBcfEh0HIwMDGgMFIgoPCgkMDgwFEBMVDBcnFwcEgyEuISEuIV0SEhwQHx8QUgMYEikCBAoIAQ8KHg0YCQsfERcTCg8LBhYnFxIOCQAAAwAAAAABHQEaADsAWABsAAA3Njc2PwE2NzY1NC4EIg4EBx4BFx4BHQEUHgI7ATI+AjUnIyYnFRQGKwEiJj0BMz4BMzcyFzY3Njc2MzAxJyYnJicmJwYHBgcGDwEXFhcWFxYXNjc2MhcWFxYUBwYHBiInJicmNKgFCAYEAgIHBQYLEBMVGBUTDwsGAQENDAoKAwcJBR4FCQcEAQIJBwMDHgIEJQMLBwIEMwYOCw0HBQcICAsICgQFCggLBwkHBwkHCwgKHwkGAgcCBgkCAgkGAgcCBgkCeAoIBQYHCAUNDwwVEw8LBgYLDxMVDBIdDAoXDR4FCQcDAwcJBQgBBg8CBAQCKQYIAVAYDwoFAgEBBQYKDhMTDgoGBQEBAQIEBgsNBQYJAgIJBgIGAgYJAwMJBgIGAAACAAAAAAD1ARoAIQArAAA3DgEdARQGBwYnIwYmPQE0JicuATU0Nz4DMzIeARUUBgcjFRQWOwEyNjXbCQsIBwQFHgsOCgkMDgwFDxMWDBcnFg0zKQMDHgIDigkYDR4HDQMCAQEPCh4NGAkLHxEXEwoPCwYWJxcSHi4pAgQDAwAAAAIAAAAAARoBGgAMABYAABMzFSMVMzUzFQcjJzUhFSM1Byc3IzUzHFVL4RIJ9AkBBhJ/DX5jegEZEuFLVQkJ9Hpjfg1/EgAAAAIAAAAAARoA9AAkAEkAADczMh4BHQEUDgErATUzMjY9ATQmKwEiBh0BHgEXFS4BPQE0PgEXNR4BHQEUDgErASIuAT0BND4BOwEVIyIGHQEUFjsBMjY3NS4BUzkSHRERHRIJCRMaGhM5ExsBFRAYIBEdoBggER0ROhIdEREdEgkJExoaEzoSGgEBFfQRHhEEER0SExsSBBMaGhMEEBkDEwMkGAQRHhFMEwMkGAQRHhERHhEEER0REhsSBBMaGhMEEBkAAAADAAAAAAEHAPQAAwAHAAsAADc1MxUnMxUjNxUjNXFLcZaWvOFLExNeE14TEwAAAAAEAAAAAAEHAPQAAwAHAAsADwAANzMVIxUzFSM1MxUjNTMVIyaoqJaW4eHOzoMSJhOEE0sTAAAAAAYAAAAAARoBBwAGAAoADgASADMAawAAEzczFSM1BzczFSMVMxUjFyMVMyc/ATY0JyYnJiIHBgcGBxUzNTQ/ATIzFxUWDwIVMzUjFzIXFhUUBwYHBiIuAS8BJicxMxUXFjM/Ai8BKwE1NzM/ASc0Jg8BBh0BIzU0Nz4CMh4CFAcrBw0NBzO7u7u7u7u70wEBAwECBwUIBQYCAQEQAQEBAgEBAQITJRELAgEDAQIHBQgFBAICAQEQAQIBAQEBAQEBBAQBAQEBAwEBAQ8DAQQGBwYGBAMBAAc5KgYCEzgTOBNSAQEFCAQHAgICAgcDAwEBAQIBAgEDAwMVCw06AgQGAwMHAgICAwIEAwQCAgEBAgIDAgwBAQMCAQEBAQECAQEGBQIDAgIDBwkEAAAAAAMAAAAAARoA9AADAAcACwAANzUzFSchFSE3FSM1E6mpAQb++s7OSxMTXhNeExMAAAUAAAAAAQcA9AADAAcACwAPABMAADczFSMVMxUjNTMVIyczFSM7ARUjS6mpg4O8vDjOzjgTE4MSJhOEE0sTqQAIAAAAAAEaAPQAAwAHAAsADwATABcAGwAfAAA3IxUzFSMVMwczFSMXIxUzNzMVIxcjFTMHMxUjFyMVMyYTExMTExMTExMTJc7Ozs7Ozs7Ozs7O9BMlEyYSJhO8EyUTJhImEwAABAAAAAABIwEgABYAJwAzAD8AABM3FxUHJzUjIgcGBwYHJyY3PgMXMxcVNycVIyYGBwYHNjc2NzYzBz4BHgIGBwYuATYXHgE+AiYnJg4BFqwSZGQSCB8PFhQVFxMBBAQZKDAaDRZHRiQYLhEVCRQUEhYPHEIMHRoQAg0MEysZCR4HERAJAggHDBoPBgEXCVARTAkjAwQNDx4GDg4ZLCARAUEjNjghARERFh0TCggDAkoJAg0YHRsHDAkkLDsFAggPERAECAYWGgABAAAAAAEYARoADwAAJS4CIg4BByM+AjIeARcBBQUfMDYwHwUTBSU4QDglBakaKxgYKxogMx0dMyAAAAAEAAAAAADiARAAEAAeACcAMwAANy4BIzEiDgIfATM3Nic0Jic7AR4BFxQPAScmNT4BFyYOAR4BPgEmJz4BHgIGBwYuATbLChwPFSIUAQw7CjsMAQtBAQIWIAEJMDAJASAiBhAIAw0PCQMmCBUSCwEJCQweEQX6CgwVIioSd3cSFg8bDgEhFxANYWENEBchKAUDDQ8JAw0PFAYCCREVEgUIBhkeAAMAAAAAAPQBBwAHAAsAGwAAPwEzFxUHIyc3FTM1JzU0JiIGHQEzNTQ2MhYdATgTlhMTlhMTlhMhLiETFSAVlhMTXhISXl5eEyUYISEYJSUQFhYQJQAAAAADAAAAAAEHARoAEQAZAB0AADcjNTQuASIOAR0BIwcVFzM3NSc0PgEWHQEjFyM1M/QTFCMoIxQTEhK8E6khLiFwlry8qSUVIhQUIhUlE3ATE3A4GCABIRglg3AAAAQAAAAAARoBEAAWABoAHgAwAAATIg4BHQEXMzc1NDYyFh0BFzM3NTQuAQcjNTMXIzUzJzU0JiIGBxUjNTQ+ATIeAR0BliQ8IxM4ExYeFxI5EiM8XDg4qTk5OSAuIQE4HjQ8NB8BECM8JF4TE14PFhYPXhMTXiQ8I+E4ODgTExggHxYWEx40Hh40HhMAAwAAAAABGgEPAAcADAAUAAATIwcVFzM3NScXByMnFyM1HwEzPwGbCn4J9AmDahqgGNnhFAioCBUBD0uVCQmVOD8dHYVyGgMDGgAAAAMAAAAAARoA9AAHAA0AEAAAPwEzFxUHIyc3FTM1ByM3IxcTCfQJCfQJE+FrDGS8XuoKCqgKCpWMjFJcSQAAAAADAAAAAAEHAPQAAwAHAAsAADcVNzUXNScVFzU3FSZBSzhLQsWNKY2wjSONI40pjQAEAAAAAAEQAPwAAwAHABUAGQAANxU3NTMVFzUPASc1PwEzFzcXFQ8BIzcVNzUvOBM4QUcOBUsJR0YOBUsJDjjAdyN3dyN3ZCwIjQgvLCwIjQgvkHcjdwAAAgAAAAABGgDPABAAFwAANzMVIzcHIycUFRcjNTMXFhc3NSMVIxc3dycbASEXIQEZKA8OAZwlJDc2znpjY2MHLy16KysEFkJCNjYAAAMAAAAAARoA7gAPABcAGwAAPwEXFQcnDgIuAjcvATUXBhUUHgE2NycXNQcm5wwMcgMPFRYPBgMmCEABCxAOAljX161ACqEKHgsPBgUQFQsKCiQ9AgIJDAIICCw5ij0AAAIAAAAAAO4A9QA4AEIAADcGJwYuAjc0PgIzMhcWFRQGIyI1DgEjIiY0PgEzNhYXNzMHBhYzMjY1NCYjIg4BFQYeAjcWNycUMzI2NzYjIgbEGh8RIRkMAQ4dJhQkFhkfFxUGEQoOEQ0XDQkPAwQRDwMDBg4VJR8YJRUBCRQbDhwZTBELEAQJGQ4SRA8BAQwZIBIUJx0QExUjHicSCQkTIh0SAQoIDzwNCh8WHSAYKRgPGhQKAQENOBcSESQeAAAAAAMAAAAAASwA4QADAAcACwAAJSE1IRUhNSE1ITUhASz+1AEs/tQBLP7UASzOE6kTOBMAAAACAAAAAADrAP4AJgA7AAA3JyMHFzcVMRUxFRQfARYXHgEfAR4CHQEzNTQuAi8BLgI3JxcHNjcmLwEGDwEOAx0BMzU0PgE3xSgOKA0VAQICAgQNBw4HDAcaBQsMBw0GCwYBARU0AwMHBAIFBg0HDAsFGgcMB9UoKA0UEwkGBQULBgYLEQgPBxETDRERDRgSEAcOBhAUCx0UUwQDCgwFBwYOBw8TGA0REQ0TEQcAAwAAAAAA/gEQAAsADwAjAAA3NDYyFh0BFAYiJjUXNTMVJwYuATUzFB4BOwEyPgE1MxQOASNeIS4hIS4hLxISGisZExQiFRIVIhQTGSsa2BchIRdLGCEhGI0mJiYBGisZFCMUFCMUGSsZAAAABAAAAAAA/gEaAAsAHAAgADQAADc1NDYyFh0BFAYiJjciDgEdARQeATI+AT0BNC4BAzUzFScGLgE1MxQeATsBMj4BNTMUDgEjZxwmHBwmHC8SHhISHiQeEhIeGxISGisZExQiFRIVIhQTGSsajUsTHBwTSxQbG6ARHxFLEh4SEh4SSxEfEf7nJiYmARorGRQjFBQjFBkrGQADAAAAAAEaARoAEQAWABoAABMjFSMHFRczFTM1Mz8BNS8BIxcjNTMXJzMVI5YTZwkJZxNUBygoB1RQwMAfp15eARklCksJg4MCJg4lA0s4HAkSAAADAAAAAAEaARoACgAVACUAABMfARUHJwcnNT8BHwE1JxUjNQcVNzE/ARcVByc3IxcHJzU3FwczoXQEDnV1DgR0FWdnE2dnIw4uLg0ecR4NLi4NH3IBGUsHrAhLSwisB0urQpZCNjZClkJaDS8NLg0eHg0uDS8NHwADAAAAAAEaAPQAEwAeACIAACUnIwcVMzUXBh0BHwEzPwE1NCc3BxUHJzU2NxczNxYvATcXARmABoATKw8FSwhJBg8/QkFCAQ0xBzANQWdnZ8IyMndeERUaCAciIggIGRUZRwEeHgEWEhMTEhEoKCgABAAAAAABEAEaAAkAEwAdACcAADcHNSMVJwcXMzcnFzcVMzUXNycjDwEzFSMXByc1NxczJzcXFQcnNyPAIRIhDTAOMG4NIRIhDTAONSFBQSENMTFlQSENMTENIUFjIEBAIA0wMJMNIEBAIA0wUCATIA4xDTAtIA0wDTEOIAAAAAAFAAAAAAEaARoADAAQABgAHAAgAAATNzMXFQcjNTM1IxUjNxUzNQ8BFRczNzUnBzUzFQczFSNxCZYJCS8mhBIShOsJCZYKCoyDg4ODARAJCYMKE0sTORMTXgqDCQmDCiYTExJLAAAAAAUAAAAAAQcBBwAMABUAJwArADQAACUjFSYjIgYUFj4BPQEHMhYUBiImPgE3DwEVJiMOARQWMjY9ATcVMzUHFQc1BzIWFAYiJjQ2AQcTDQ8UGxsnGy4LEREXEQEQMZYJDQ8UGxsnG4QTE4MvCxERFxAQqS8JGyccARsTVTgRFxERFxGVCQmNCgEbJxsbFHEIElQKJQkmjREXEBAXEQAAAAADAAAAAAEZARcACQARAB0AADczNxcVBycjJzUfATUPASMVMzcXBxcHJwcnNyc3Fxw0SRAQSTQJSDs7By4utw0gIA0hIA0gIA0gzkgG9AZICV5YO8c7AktJDSAhDSAgDSEgDSAAAwAAAAABLAEaABAAEwAfAAATHwEVIzUjNSMVMxUjJzU3MwcVMxcjNSM1MzUzFTMVI7JAAhNLXktUCQl+BDYVEzg4Ezg4ARdBCCUTS88SCeEJEjnOOBM4OBMAAAADAAAAAAEsARoAEgAcACgAAAEjLwEjBxUXMzUjNTM/ATMHMzUHIw8BIzUzHwEzByM1IzUzNTMVMxUjARB/EAdeCQlnXlUGEHcBExN6BhBQUBAHehMTODgTODgBBw8DCc4KE3ECECVUHAMQOBAC9DgTODgTAAEAAAAAAPQAxQARAAA3FRQGKwE3JwcVFzcnMzI2PQHhBQSBHg0wMA0egQsRxSUEBh8NMAowDR8QDCUAAAQAAAAAARoA0gAIAA8AFgAoAAA3Nh4BDgEuATYXLgEOARYfAR4BPgEmJzcVFAYrATcnBxUXNyczMjY9ASwTLhoJJy4aCUYJFBIKAQUNCRQSCgEFnAYETR4NMDANHk0MEMUNCScuGgknLgIFAQoSFAkNBQEKEhQJJSUEBR4OMAsvDR4QDCUAAAAFAAAAAAEaAQcABwALAA8AEwAXAAATMxcVByMnNRcVMzUHMxUjFyMVMwczFSMc9AkJ9AkT4byWlnFxcXFLSwEHCrsKCrsJqakmEhMTExIAABcAAAAAASwBLAADAAcACwAPABMAFwAbAB8AIwAnACsALwAzADcAOwA/AEMASwBPAFMAVwBbAF8AADcjNTMVIzUzFSM1MxUjNTMVIzUzHQEjNRczFSM3MxUjAyM1MxcjNTsCFSMzIzUzFyM1MxcjNTMVNTMdASM1MysBNTMXNzMXFQcjJzcVMzUXMxUjFTMVIxUzFSMnMxUjExMTExMTExMTExMTExMTJRMTJRMTJRISExMTOBISJhMTJRISExMTzhMTSxODExODExODJRMTExMTE5ZeXs4TOBM5EzgTORMlExMTExMTARkTExMTExMTExMlEhImExNLEhKpExOpqakTJhImEyWDEwAAAAAHAAAAAAEaARoABwALABMAFwAbAB8AIwAAEzczFxUHIyc3FTM1BzczFxUHIyc3FTM1FyMVMwczFSMXIxUzJhKpExOpEhKplhNeEhJeExNeXRISEhISEhISAQcSEuETE+Hh4SYTExMSEhMTExMlEyUTJgAAAAQAAAAAARoA+gAlAEAASQBSAAAlNjc2JyMmBwYHBgcmIgcmJyYHMQYXFhcGFRQXFhcWMjc2NzY1NAciJyYnJjU0NzY3MhcWMjc2MxYXFhUUBwYHBiciBhQWMjY0JjMiBhQWMjY0JgEEAwEBBwQEBggJDA4SQhIZEgkFBwEBAxURDx8aUxsfDxGDIRAYDA0RCA8KFhESEhUKDwgRDQwYEEoIDAwQDAxKCAwMEAwMwggKEhIBAgEFBQkFBRAEAgESEgoIFyApGBUKCAgKFRgpIHgDBAsMGRMPCAIBAQEBAggPExgNCwQDUhEYEREYEREYEREYEQAEAAAAAAEtARoADAAQACIALgAAEzMXFSYnNSMVByMnNRczNSMXIgcjDgEXBxc3HgE+Ai4CBwYuAT4CHgIOATjPEgkKXRVcEhJeXsMMCgERCQssDSwJFxUPBwQNFQgKDwcEDBAQCQEGDAEZEmQEAl7MFRLPz89xBwonESwNLAYDCBAVFhIKSwELDxEMAwYNDw4IAAAACgAAAAABGgEcAAsAFwAkAC0ASABiAHcAkgCeAKcAADcOAS4CNjc2HgEGJy4BDgIWFxY+ASY3NhYXHgEOAiYnJjYXFjI2NCYiBhQHMxUjIiY9ASImPQE0NjsBBgcjIgYdATMVFBY3JisBIgYdARQWMxUGFxYXMz4BPQEyNj0BNAcjFRQGKwEiJj0BIzUmNjsBMh4BFRcjNTMyNj0BMzU0JisBJiczMhYdARQGIxUUBiciDgEeAj4BNTQmByImNDYyFhQGqwkUEgsCCggNHhIGGAQKCQYBBQUGDwgDKwkUBwUEAwkOEQYJAhQDCAUFCAWcIiIJDgcLEw4iBwMYBgkTAosKDi4OEwsIAQcFByYICwcLEhMCAh4CAhIBCQYuBQcDNCIiAQMTCQYYAwciDhMLBw6uCQ4GAwwREAkQDAQFBQgFBdUGAgkRFBIGCAYZHyYDAQQJCgkDBAQMDwQFAgcFDQ4LBgMGChoWAwUIBgYIpRMNCiIMCCkNFAgLCQUqNQICegoUDjsIDCwJBwUBAgwILAwIPA1KPwECAgE/PQUJBQcCdhMCAjUqBQkLCBQNKQgMIgoN2QoQEQwDBg8IDBEmBQgGBggFAAAABQAAAAABBwEsABUAGQAdACEAJQAAExUXFQcjJzU3NTMVMzUzFTM1MxUzNQMzNSMXMxUjFyMVMwczFSP0ExO8EhITJhImEyWpvLwmcHBwcHBwcHABLBMS9BMT9BITExMTExMT/uf0JhM4EzgTAAAAAAQAAAAAARoA9AAKABAAFAAcAAA3HwEVDwEvATU/ARcHHwE/AQcXNScXFTc1BxUHNaFsDAdzcwYLawRLCkA5EbFeXnFeJhP0HQl+CSAgCX4JHRMTAxEPBXcabBkZbBprCjAFMAADAAAAAAESARoAIwAtAEIAACUnNSc1NCcmJyYjIgYdAQcGFB8BFhcWNzY/AQcUHgIyPgInJj4CHgEdAQcXDgEmLwEmND8BFQYUHgE+ASYnNRcBERZcAgQLBgUMEDkJCUQEBQsKBQRdDQEGBwoIBgKWAQEDBAYEEhMBBQYBRAMDUgUGCgkEAwRITzoBXBcGBQsEAhAMPTgIFwlEBAIEBAIEXSoECQcEBAcIswIEAwEBBQQXE6oCAgICRAIIA1E1BAsJAwUJCgM1SQAAAAACAAAAAAEaARoADAATAAA3Mj4BNC4BIg4BFB4BNyMnNxc3F5YkPCMjPEg8IyM8EQ0rDSRPDRMjPEg8IyM8SDwjTSsNJE8NAAADAAAAAAEWARsABgAcAC8AADczNycHJwc3HgEXFhUUBw4BBwYnLgM3Njc+ARc2NzYnNCYnJicmBgcOARYXHgF2DVUNTyQNVhYpECYeDyYWMCcUHhADBw8mEishJhkZAhEPHSYTJg8gFyEiECZgVg1PJA2OARQQKTcrJxIXBAkWCyIqLhUuGQwM9AkfIiUXKhAdAwEJCxhOSBMKBgAEAAAAAAEaARsACwAXACMARQAANyMVIxUzFTM1MzUjJy4BDgIWFxY+ASYnPgEeAgYHBi4BNhczMhYdASM1NCYrASIGHQEzFRQWOwEVIyImNzUiJjc1NDb0EyUlEyUlVAQKCQUBBAUGDwkDJgkUEgsCCggNHhEGCi4OExIJBi4GCRMCAg8PCQ4BCQsBE3EmEyUlE7gDAQUICgkDBAMNDxQGAQkRFBIFCQcZHkUTDg4OBggIBjM/AQITDQksDAgyDhMAAAAABAAAAAAAzwEaAAgAEQApAD0AABMyFhQGIiY0NjciBh4BMjY0JhcjIgYdAQYWMxUGFjsBMjY9ATI2JzU0Jgc1JjY7ATIWBxUjFRQGKwEiJj0BlggLCxALCwgQFgEVIBYWBy4OEwELCQEOCR4KDQgLARNKAQkGLgYJARICAh4CAgEHCxALCxALEhYfFhYfFlQTDjIIDCwJDQ0KKwwIMg4TVDMGCAgGMz8BAgIBPwAAAAABAAAAAAEsAQcALQAAEwcVMzUzFRczNzUzFRczNzUzFRczNzUzFSM1IxUjNSMVIzUjFSM1IxUXITc1JxMTEyUKEgolChIKJQoSCiU4Ey8SLxM4ExMBBhMTAQcTcXFnCgpnZwoKZ2cKCme8OTk5OTk5S0sSErwTAAAEAAAAAAEaARoABQAOABsALQAANzMuAScVNx4BFxYVIzUyBxczDgEjIi4BNTQ2NxcyPgE3NjUjNSIHDgIXFB4BvEkGKBwBIzMGAXAJLxNcBzMiGSwZKyATGzAgBAJxCQoaKxkBHjO8GygGSVwGMyMKCXCDEyArGSwZIjMHzBgrGgoJcQIEIDAbHzMeAAIAAAAAAQcA4QAcADcAACUVIyImJyMOAysBNSMnNzM1MzIWFxYXMz4BMwcGBwYPASMnJicuAScVPgE3Nj8BMxcWHwEWFwEHBgsTBzYEDA8SCgk8ExM8CQoRCBAINgcTCwkDAwUDBE0CBAkEDwYGDwQJBAJNBAECBQIEzoMKCQkOCgVLCglLBQUKEgkKFAECAwYFBgwIAwcBgwEHBAgLBwYDAgQCAQAAAAIAAAAAAS0BBwA2AFAAABMzFRQGBxUeARcGBzEmLwE1NzY/ATY3IxYXFh8BFQcGBw4BBzMGByMVByc1IzU0Njc2NzUuATUXPgIXHgEXFhQHDgEHBiInLgEnJjY3Njc2S4MJCgkNBAkICQwGBQMCBAIBWwIBBAUGBwsIBAcBXgUECgkKSwYEChIJCowHDg8IDhUEAgIEFQ4IDwcOFgQCAQEFDAQBBwYLEwc2BAsGAwUKBAJNBAECBQMDBAIFAwRNAgQJBA8GBwg8ExM8CQoRCBAINgcTC5gEAwEDAxUPBw8IDhUEAgIEFQ4IDwcQCwQAAAIAAAAAAOEBBwAcADcAABMzFRQGBxUeAx0BIxUHJzUjNTQ2NzY3NS4BNRcWFxYfARUHBgcOAQczLgEnJi8BNTc2PwE2N0uDCQoJDgoFSwkKSwYEChIJChQCAQQFBgcLCAQHAYMBBgQIDAYFAwIEAgEBBwYLEwc2BAwPEgoJPBMTPAkKEQgQCDYHEwsJBAIFAwRNAgQJBA8GBg8ECQQCTQQBAgUDAwAAAAQAAAAAARYBGwAVACgALgAxAAATHgEXFhUUBw4BBwYnLgM3Njc+ARc2NzYnNCYnJicmBgcOARYXHgEnNxcVByc3FTehFikQJh4PJhYwJxQeEAMHDyYSKyEmGRkCEQ8dJhMmDyAXISIQJicOVFQOEjoBGQEUECk3KycSFwQJFgsiKi4VLhkMDPQJHyIlFyoQHQMBCQsYTkgTCgarCDgQOAhfTicAAgAAAAAA8AEHAAUACAAAEwcVFzc1BzUXRw8PqaWPAQcI4QhwEGe+XwAAAAACAAAAAADiARoAFQAfAAATIxUjBxUUFhcVMzU+AT0BJyM1IxUjFw4BLgE9ATMVFIMSHQklHRIdJQkcEyY7DCIfE3ABGTgJQhwrAzk5AyscQgk4OHMMBg0cETg4FwAAAAAFAAAAAAENAO8ABwAPAB8AJwAvAAA3IycjByM3MxcnJicxBg8BFzUzMhYVFAYHFR4BFRQGIycVMzI2NTQjBxUzMjY1NCOgEw8+DhM4ERAXAQEBAhZuKRMWDgsOEhsUGREOEBwTFw8QI14oKJBZPgMHBwM+N5ASDwwSBAEBEw8SF4EvDgwVPjQODBoAAAgAAAAAARoBBwAHAAsADwATABcAGwAfACMAABMzFxUHIyc1FzM1IxcjFTMnIzUzBzM1IxczFSMnIxUzBzMVIybhEhLhExPh4c68vBOWljhLSxMlJTlLS0tLSwEHE7wSEry8vBM4ExKDSxMlOBMlEwACAAAAAADrAOsABwALAAA/ATMXFQcjJzcVMzVCCZYJCZYJEoThCQmWCQmNhIQAAAAFAAAAAAEaARoABwALAA8AEwAXAAATMxcVByMnNRczNSMXMxUjNyMVMzczFSMc9AkJ9AkT4eESJiZxJiYlJiYBGQn0CQn06uETvLxxcZYAAAEAAAAAARoA9AASAAA3JyMHJyMHIxUzPwEXMzcfATM13SETIxYSFjU8Cg0WEyMbCUODcX1dURIHMl+EWAYSAAAEAAAAAAEHARoADAAZADwAQAAAEyIOARQeATI+ATQuAQciLgE+AjIeARQOATcuASIOAgczND4BMh4CFAYPAQ4BFxUzNTQ2PwE+AjQmBzMVI40hOCEhOEI4ISE4IRwwHAEbMDgvHBwvAQUPEQ8KBAEXBQcGBQQCBAMOAwQBFgQDBwQGBAQuFRUBGSE4QjggIDhCOCHhHC84MBwcMDgvHJ4FBgYLDQcFBwMBAwUICQQQBAkFDAkECAQIBAoLDQxeFgACAAAAAAEKAQ0AEAAiAAA3DgEVMjMyFhQGIyImNTQ2NxcOARUyMzIWFAYjIiY1NDY3F4YjIAMFExwaFRsdLy+ZJCADBRMcGhUbHTAuFuoWMyQYKxsqJjVOGyMWMyQYKxsqJjVOGyMAAAgAAAAAARkBGgAMABkAJQAxAEMATgBSAFYAADc0NjcnDgEUFhc3LgE3FBYXNy4BNDY3Jw4BFyc+ATQmJzceARQGNwceARQGBxc+ATQmBxYPARcHJyMHJzcuAT4CHgEHDgIeATI2NC4BFyMHMxcnIwc4EA8OERMTEQ4PEBQNDA0JCgoJDQwNkA4KCgoKDgsNDQ4NDhAQDg0RExNLAQUFQBEOaA8RQAUEBw0PDQkeAgQBAgUGBgQFAgURJhkRNhDDFSYODREsMSwRDQ4mFBAfDA0JGBoYCQ4MH00OCRgaGAkNDB8hH4YNDiYpJg4NESwxLEIKCASRCCEhCJEGEBAJAQYMAQEEBQUDBQcEAickOCUlAAAAAAUAAAAAARoBCwAVAB4AKgAzAD8AADcUBzM2LgEOAh4BNzUGLgE+Ah4BBzI2NCYiBhQWFzI3Fw4BIiYnNx4BNzI2NCYiBhQWFzMVMxUjFSM1IzUz4QETAyA7QC4MHDkgGi4YBiMzMR56CAsLEAsLLhQODQkZGxkJDQcSLwgLCxALCzcTJSUTJSWfBAUgORwMLkA7IAMTAxgvNCcNEysRCw8LCw8LLw4NCQsLCg0HCC8LDwsLDws4JhMlJRMADgAAAAABGgD0AA8AEwAXABsAHwAjACcAKwAvADMANwA7AD8AQwAAJSMiBh0BFBY7ATI2PQE0JgcjNTMHIxUzByMVMzczFSMXIxUzJzMVIzcjFTMnMxUjFSMVMwczFSM1MxUjNyMVMwczFSMBB88ICgoIzwcLCwfPzzkSEhITEyUTExMTE4NdXYMmJl4TExMTSxMTExM4EhI4Jib0CwiDCAsLCIMIC5aDExITEzgSORISEjgTOBITExMSXRISEhMTAAAAAAMAAAAAAOIA4QAIABUAHgAANzI2NCYiBhQWNxQOASIuATQ+ATIeAQc0JiIGFBYyNpYICwsQCwtTFCMoIxQUIygjFBMhLiEhLiGDCxALCxALExQjFBQjKCMUFCMUFyEhLiEhAAADAAAAAAEWARsACAAeADEAADcyNjQmIgYeATceARcWFRQHDgEHBicuAzc2Nz4BFzY3Nic0JicmJyYGBw4BFhceAZYQFhYgFgEVGxYpECYeDyYWMCcUHhADBw8mEishJhkZAhEPHSYTJg8gFyEiECZxFSAWFiAVqAEUECk3KycSFwQJFgsiKi4VLhkMDPQJHyIlFyoQHQMBCQsYTkgTCgYAAQAAAAAA6wEKABkAABMVByM1MycuAQ4CFh8BBycuAT4CFh8BNeoJQjASDSIjGQoKDWENYhAMDCEsLBENAQdCCRISDQkJGSMjDGINYREsLCELCxENJwAAAAoAAAAAASoBLAAVAB0AIQAuADIANgA6AD4AQgBHAAA3Byc3IyIGFBY7ARUjLgE0NjczJzcXEyMnNTczFxUnMzUjNzMXFQcjNTM1IxUjNRcjFTMHMxUjFyMVMzczFSMXIxUzJzEzFSOLKw4aPA0REQ0LCxQcHBQ8Gg4rRXgKCngKeGRkRngKCjIoZBQUPDw8PDw8PDwUPDw8FBQqKhbzKw4aERkSFAEdKB0BGg4r/v8KoAoKoAqMeAqgChSMPEaCFBQUFBTIFDwUPBQAAAEAAAAAAQkBBwAdAAA3IzUzFxUjNQ4BHgE+AiYnNx4CDgMuAj4BWDJBChMaERo5QCsFJB8FGSUSBBorMzElEgQa9BMKQSUTPzwfCzBBNQoSCCMwMywdBxAjMDMsAAAAAAIAAAAAAQgBBwARABUAABMzFTcXBxcHJxUjNQcnNyc3FwczFSO8EjAJMDAJMBIwCTAwCTCWS0sBBzsdEB0eEB06Oh0QHh0QHVtLAAAFAAAAAAEtARIAEgAfACwAMgA4AAATMxcVJic1IxUzFBcjNTM1Iyc1FyIOARQeATI+ATQuAQciLgE0PgEyHgEUDgE3JzcXBxcnFwcXNycR/gkJCuphFE46awrXFSQVFSQqJBUVJBUQGxAQGyAbDw8bEBoaCRMTSxISCBsbAREJbAcFVrAgGhMUCcRsFSQqJBUVJCokFYgPGyAbEBAbIBsPJxsbCRITERITCBsbAAAAAAIAAAAAAPIBGgAGAA0AADcnNycHFRcnFwcXNzUn8ktLDFBQrk1NDFJSeUpLC1AMUFZNTAxTC1IAAQAAAAABGgCpAAMAACUhNSEBGf76AQaWEwAAAAsAAAAAARoBGgALABUAJgA6AEQAWABhAHMAewB/AIYAADc2MhYUBiInByM1MxUUFjI2NCYiBhUHJzcXNTQ2OwEVIyIGHQE3FzczNTQjIgYHFTYyDwEGFRQWMzI/ARUUBiImNTQ/AQcjNQYjIiY1ND8BNCIHNT4BNzIVBzUHBhUUFjI2FzI3NQYiJjQ2Mhc1JiciBhQWJzczFxUHIyc3FTM1JzczFxUHNdoEDggJDgMBCwsEBwQDBwWMJwwTDwssLAQFEgw7DRIECQMHDwELDgcGCAQBBQYDBgcsDAQIBgcOCw4HAwkEEQwHBgMGBDcJBQUMBwgLBAMIDA4NfRKpExOpEhKpcBKEEhL6CQ4YDwcGSjQEBwgOBwgFTigMEx0KEBEGAx0SDA0gFwMCDAUJAQMQBwkJEgQEBwQCBwEBrwcJCQcQAwEJBQwCAgEXCwQBAQcCBAYSAw4ECA4JBA4CARAaD0sTE10TE11dXSYTE14TcQAAAAYAAAAAAOIBGgAQAB0AJwA6AEIARgAANxc3Jwc1NDY7ATUjIgYdAScXMxY+ATQmIgcnIxUzPQE0NjIWFAYiJgcGIyImNSY2MzIXFSYiBhQWMjcnBxUXMzc1JwczFSM8KykNEwYDHRwMEBRvAQUVDQsWBgEQEAYLBgYLBhAHDhATARYRDAYHEQsKEQheExODExODg4PmKyoNEx4EBhIQDB4ULwkBEh4RCydcGwcHCAkRCgmWBRQQEhUDEwULEwsFWxNwExNwExNwAAAAAAEAAAAAAQcBBAAVAAATBxUXNyczMhYXFh0BMzU0LgIrATd2S0sOPSQnNBAeExEmPCkiOwEETA1LDTwQEB9HBgYnOSYTOgAAAAkAAAAAARoBGgAoACwAMAA0ADsASwBTAFcAWwAANyM1MzUjIg4CHQEGFhcWFzM1IyInJic0PQE0NTY3NjsBFSMVMzc1IycjFTMHMxUjFTMVIxcjNTMVIyc3MxcVByMVIzUjIiY9ATQ2FzM1IyIGHgE7ATUjJzM1I/SpS1AGDQkEAQsKBgYFBQMCBgICBgIDrktUChODExMTExMTEwUFOAUXQlQJCS8TEggLCxEJCQQGAQUgJiYTOTlxlhIFCgwGsgoQBAIBEwEDBQMCCgIDBQMBJhMKVHETExITE4M4OBzqCXEJExMLCF4HC3ATBggFExI5AAAHAAAAAAEaASwADwAfAC8APwBHAFcAYAAANzEyFhUxFAYjMSImNTE0NhcxMhYVMRQGIzEiJjUxNDY3MTIWFTEUBiMxIiY1MTQ2NzEyFhUxFAYjMSImNTE0NgczNxcHIyc3FyMVMx4BMjY3MzUjLgEiBhcUBiIuAT4BFp8EBgYEBAUFBAQGBgQEBQUEBAYGBAQFBQQEBgYEBAUFBRNEDVQNVQ4MODgEJTElAzk5AyUxJWwbJxsBHCcb4QUEBAYGBAQFJQYEBAUFBAQGSwYEBAUFBAQGJQUEBAYGBAQFeUUOVFQOrRMYICAYExggICEUGxsnGwEcAAAAAAQAAAAAARoBGgAJABMAIwAsAAA3FTM1FzcnIwcXNxUzNRc3JyMHHwEjFTMeATI2NzM1Iy4BIgYXFAYiLgE+ARaWE0QNVA1VDkQTRA1UDVUODDg4BCUxJQM5OQMlMSVsGycbARwnG/wSEkQNVFQNDC4uRQ5UVA40ExggIBgTGCAgIRQbGycbARwAAAAABAAAAAABBwEIAC8AOABBAEoAACU0LgEOARYXFRQPAScmPQE+AS4BIg4BFhcVFBYfARUOAR4BMj4BJic1Nz4BPQE+ASc0NjIWFAYiJhcUBiImNDYyFjciJjQ2MhYUBgEHFB4XBBAOBTQ0BQ4QBBUcFQQQDggHMw4QBBUdFQMQDTIICAwPuwsQCgoQC2cLEAsLEAsvCAsLEAsL4Q8VAxMcGQMUBgMaGgMGFAMYHBISHBgDFAgOAxsYBBccExMcFwQYGgQOCBQDFA0ICwsQCwuhCAoKEAsLjgsQCwsQCwAAAAADAAAAAAEaASwADwAYACIAADcjFTMeATI2NzM1Iy4BIgYXFAYiLgE+ARYnNTMVNxcHIyc3Xjg4BCUxJQM5OQMlMSVsGycbARwnGzgTRA1UDVUOSxMYICAYExggICEUGxsnGwEcXnl5RQ5UVA4AAAAAAwAAAAABGgEaAAkAGQAiAAA3FTM1FzcnIwcfASMVMx4BMjY3MzUjLgEiBhcUBiIuAT4BFpYTRA1UDVUODDg4BCUxJQM5OQMlMSVsGycbARwnG/xmZkQNVFQNbRMYICAYExggICEUGxsnGwEcAAAAAAYAAAAAAQcBGgAmACoALgAyADYAPQAAJTUnIyIHBgcGBxUUFxYXFjsBNSMiJyYnJj0BNDc2NzY7ARUjFTM3JzUzFSczFSMVMxUjFyMVMxcHIzUzFSMBBwq3BgYNBQIBAwUNBgYFBQMCBgIBAQIGAgOuS1QKvKmWExMTExMTEwkXBTgFcZ8JAgYNBgayBgYNBQISAQMFAwIKAgMFAwEmEglClpaDExMSExNnHDg4AAAABAAAAAABGgEaAAsAFAAYABwAABMzFxUHIwcnNSMnNRczNSMVMxcVPwEzFSMVMzUjHPQJCX82EC8JenrhLgooBxISEhIBGQm8CTYHLwm8sqmpCiEomV4lEgAAAAAEAAAAAAEHARoACQAOABoAHgAAEx8BFQcjJzU3MwczNScjFyMVMxUzNTM1IzUjBzMVI8k4BRKpExNwcKk5cEslJRMlJRMlXV0BFDgOqBMT4RLzqDlLEyYmEyWDEwAAAAAHAAAAAAEaASwACAARABoAIwAwAFYAZgAANxQGIiY0NjIWBxQWMjY0JiIGFxQWMjY0JiIGFxQGIiY0NjIWBzY3Fw4BIiYnNx4BPwEUBgcVMzIWHQEXFQcVFAYrASImPQEnNTc1NDY7ATUuATU0NjIWByIGHQEUFjsBPgE9ATQmI5YWHxYWHxY4Cw8LCw8LOBYfFhYfFjgLDwsLDwsuDgsNCRkcGQoNCRgNEgoJLxggExIhGHAYIBMTIBgvCQoQGBBUEBYWEHAQFhYQlhAVFSAVFRAICwsQCwsIEBUVIBUVEAgLCxALC0UDCw0KCgoKDQkHArcJDwMBIRcTEyUTExchIRcTEyUTExchAQMPCQwQEDsWD3EQFgEVEHEPFgAAAAAGAAAAAAEaARoAEQAWABsAKAAuADcAAAEiBwYHIwcVHwIzNzU2NzY1BzMGBycXJzY3FS8BNjc2NzY3BgcGBwYHNSM1IxU3Ni4BDgEeATYBEC8uJSROCQNwBzgJIRMX8zEXEwdqBxsXQEAQFSMkMC8DHhckF0glE7cGBRMXDQUTFwEZFxMhCTgHcQIJTiQlLi9UGBsHagcTFzEVQBgXJBceAy8wJCMVOBMlOJAJFw0FExcNBQAEAAAAAAElAQcAHgAoADUAPgAANzU3Mx8BMxcVMxcPASM2NzM3IyYnPwEzNSMvASMVBhcUBiImNDYyFhUzFA4BIi4BND4BMh4BBzI2NCYiBhQWEwleBhFsChUJMglGBwUzLWwGCAMGVWcHEFAKVREXEREXECYSHiMfEREfIx4SQhQbGycbG7dGCgMQCi4MhAYICnEHBgMDJQMQMQVXDBAQGBAQDBIeEREeJB4SEh5BHCcbGyccAAAABAAAAAABGgEHABwAJgAzADwAADczFxUHIzY3MzcjFSYnPwEzNyMvASMVBgc1NzMXBxQGIiY0NjIWFTMUDgEiLgE0PgEyHgEHMjY0JiIGFBaRfwkJbAcFVgF3CAkHBnoBegcQUAoJCV4HEBEXEREXECYSHiMfEREfIx4SQhQbGycbG/QKuwkICoQBBgQGAxMDEDEFB0YKA50MEBAYEBAMEh4RER4kHhISHkEcJxsbJxwAAAAAAwAAAAAA9AD0AAQADgAYAAA3IzUyFicVMh4BFTM0LgEHFTIeARUzNC4BXiYQFiYuTi0TM1YzGisZEx8zOCYWrBMtTi4zVjNLExkrGh8zHwADAAAAAAEaAPQACQAOABIAADcXMzc1LwEjDwEXJzczFyczFwcTfA58Pgd8Bz6DbzV0NW8yIlSlfHwOPgMDPnZvNTUiIlMAAAADAAAAAAEgARoABQAIABIAABMHFRc3NQc1HwEzFwcnFSM1BychDg6ppI4wDS8NHxMfDQEZCOEHcBBnvl8LLw0fZmYfDQAAAAAFAAAAAAEXAPgABgAQACAAMgA5AAA/ATUnFRcHJzcXFQc1NycVIxcmDgEeATY3MTY1NCcxLgEHNhcxFhceARUxFg4BLgE3MTYXByMnNxc3n3eahmNqDp9DLoYSIRgmDhEpLhAPEwgVLQ0TEQ0GCAEWIx4PBgVKIw0RDAwdL1AOZxVZQqwHag4tFR9ZQA4BGS0sFwgTFBYbFQgKGAoBAg0GEwsQHQgSIBIREyMRDQwdAAMAAAAAARYBBwAFAAgADwAAEwcVFzc1BzUXBzc1JxUXBzQODqmlj1akpI6OAQcI4QhwEGe+X3VtEG4XX18AAAADAAAAAAEgARoABQAIABIAABMHFRc3NQc1HwEjJzcXNTMVNxciDw+ppY49DS8NHxMfDQEZCOEHcBBnvl+OLw0fZmYfDgAAAAAEAAAAAAEWAQcACQAcAC4ANQAAPwEXFQc1NycVIwcmBgcGFhceATY3MTY1NCc1LgEHNhcxFhceARUxFg4BLgE3MTYXByMnNxc3Xg6pbFaOEwMZKAgEAgQJKzEREBQJFjAOFBIOBwgBGCQgEAYFTyUOEg0MH/8IcRBIFzlfRA8BGhkMGAwWGQoTFRceFQEICxkKAQINCBQLER8IEyETExUlEw0MHwAAAAAEAAAAAAEWAQcACQAcAC4AOgAAPwEXFQc1NycVIwcmBgcGFhceATY3MTY1NCc1LgEHNhcxFhceARUxFg4BLgE3MTYXJwcXBxc3FzcnNydeDqlsVo4TAxkoCAQCBAkrMREQFAkWMA4UEg4HCAEYJCAQBgUsFgwXFwwWFwwXFwz/CHEQSBc5X0QPARoZDBgMFhkKExUXHhUBCAsZCgECDQgUCxEfCBMhExMXFwwYFwwXFwwXGAwAAAAABAAAAAABGgEaAA8AGAAcACYAACUvASMHFSMHFRczNzUzNzUHIzUzFTM1MxcHNTMVFyM1LwIjNTMXARYcBqAJLwkJvAkvCUuoEnEPFl0lcSYDHAZekhf6HAMJLwm8CQkvCaDOqDk5Fg8lJUteBhwDJhcAAAAFAAAAAAEaARkAFAAYACAAIwAnAAATHwEVIwc1JyMVIzUjFTMHIyc1NzMHMzUjHwEVDwEnPwEPAT8BFzcnzx8GCgkfBnElOAouExOcPyYmehxyOQwccmcKEwMPYQ8BEx8OBgkPIEtLvBISvBNLOTkcDXIcDThyhxMJHQ9hDgAAAAMAAAAAARoBGgAJABIAFgAAEx8BFQcjJzU3MwcVMzUnIxUjNTMVMzX6HAMJ9AkJ2M7hFyKDSyYBFx0G2AkJ9AkS4coXS0s5OQAAAAAGAAAAAAEaAQcAAwAHAA4AFQAcACMAADczNSMXMxUjJyM1NzMVIzcVIzUjNTMHMxUHIzUzIzMVIyc1Mzi8vCZwcDgTCUI48xI5QgkSCUI54ThCCRNLliVLS0EKEwlBOBOWQgkSEglCAAYAAAAAARoBGgAGAA0AFAAbACMAJwAANyM1MzUzFTc1IxUXMzUHFTM1MzUrARUzFTM1JzcHIyc1NzMXByMVM0IvJROpEwkvOBMlL9clEwmfCYQJCYQJJUtL4RMlLwolLwkTsi8lExMlLwkcCQleCQkcJgAAAwAA//8BLAEQABIAHwAvAAATIg4BFRQWFwcXNxYzMj4BNC4BBzQ+ATIeARQOASIuARcHIyc3FzczFzczFxUnByOWFycWDAtFDUYVGhcnFhYnWRIeJB4SEh4kHhJVKA4cDRYoDSkoDR8lKQ0BEBcnFhEeDEUNRg4XJy0nF1QRHhISHiMeEhIegigcDRUoKCgfGiUoAAQAAAAAARsBHwAcACkAMgA6AAA3DgEXFhcGFxUnByc3LgE+AR4BFRQHJic1NC4BBhc+AR4CDgIuAjYXFjcWNycGFRQ3FzYnNiYjImwTCQsIDwIBCUcORxcFJEFCKQEICR0vMicQKSQWAxIiKCQWAhESERcSD08KGE4LAQEhGBLuEzUYEgwJCQMGRQ1FGUU6GRM3IwcIBwYCGioUCmQLAxIhKCQXAhEiKCRbEQEBC04OEhhGTw8SFyEAAAAAAgAAAAABLAEtAA8AHQAAEyIOARYXBxc3HgE+AS4BIxUiLgE0PgEyHgEUDgEjvx8zGQkUZA5kG0M4FhQ3IRcnFxcnLiYXFyYXASwhODwWcwxyFQImQEEouxYnLicWFicuJxcAAAIAAAAAARoBEAAGAA0AABM3FxUHJzcXBzcnHwEVEw74+A4dFBjR0RhlAQgIcBFwCG8JV2JfVgISAAAAAAYAAAAAARwBGgADAAcACwAdACEAKQAANzMVIxUzFSMVMxUjFyE3MzU0PgI7ATIeAh0BMwczNSMXJyMVIzUjB3FLS0tLS0ur/vQYIwMFBwRwBAcFAyOmcHCmDhWWFQ70E14SExNLXqkDBwUDAwUHBKgmz/Q4JSU4AAYAAAAAARoBBwAMABAALgA3AFUAXgAAEzMXFSM1IxUzFSMnNRczNSMXNSYnByc3JjcnNxc2NzUzFRYXNxcHFgcXBycGBxUnFBYyNjQmIgYXNSYnByc3JjcnNxc2NzUzFRYXNxcHFgcXBycGBxUnFBYyNjQmIgYc9AkS4YONCRPh4V0FBBEKEgEBEgoRBQQTBQQSCRIBARIJEgQFFwgLCQkLCWUFBBIJEQEBEQkSBAUSBQQSCREBAREJEgQFFwgMCAgMCAEHCno5hBIJzi8mqRUBAwoRCgUFChAKBAEVFQEEChAKBQUKEQsEARUvBggIDAgIbRQCAwoQCwUFChAKAwIVFQIDChAKBQULEAoDAhQvBgkJCwkJAAAGAAAAAAEHARoABwAbACMANwA/AFMAADcnNTczFxUHJyMVIzUjFSM1IxUjNSMVMzUjFSMHJzU3MxcVBycjFSM1IxUzNSMVIzUjFSM1IxUjFzc1JyMHFRc3NTMVMzUzFTM1MxUzNTMVMzUzFS8JCc4KCkETExMSExMTvCYSjQkJzgoKjBMTE7wmEhMTExKMCgrOCQkJExMTEhMTExImzgo4CQk4CjkTExMTExMmJhODCTgKCjgJOBMTJiYTExMTE4MJOAoKOAkTJRMTExMTExMTJQAAAAQAAAAAASwBLAAXADcAQwBOAAA3FxUHFwcnByMnByc3JzU3JzcXNzMXNxcHNzUvATcnBy8BIw8BJwcXDwEVHwEHFzcfATM/ARc3LwE2MzIWFRQOAS4BNhcWMzI2NC4BDgEW+DQ0HissCzwLLCodNDQdKiwLPAssKzEyMgccESsRChkKECsSHQcyMgcdEisQChkKESsRHGALDRIZFB4bCwgZBgYJDAkPDgYFvws8CywqHTQ0HissCzwLLCseNDQeK2wKGQsQKxIdBzIyBx0SKxALGQoQKxIdBzIyBx0SK0sHGRIPGAYOHR0tAwwRCwMHDg8AAAAJAAAAAAEaAQcAAwALABMAFwAbAB8AJwArAC8AABMjFTsBIyc1NzMXFQcjJzU3MxcVNyMVMwczFSMnIxUzNzM3NScjBxU3IxUzBzMVI0ITE3I8Bwc8CGY8Bwc8CEESEhISEksTE5Q8Bwc8CC8TExMTEwEHXgoTCAkTQQkTCQkTjSZLcDg4OAkSCQkSoHFLJQAFAAAAAAEZARoADAAlAD0AQABCAAA3IwcVFzM3NSMVIzUzFyM1NDY3NTQ2Mh8BFQcGIiY9AQYHBg8BIzciDgEPATM2NzY3NjMXFBYyPwEnLgEGFQcyMCMxXkIJCc4KE7s4ExMqIQ8VB0VFBxUPFQoEAgETTBQhFQEBBAUKDxcJCQEDBgJERAIGAzkBAeEJvAkJOC+pcC8hNAYYCg8ISRlJCA8KFAURBwoGehMgEyEPCw8EASgDAwJJSAIBBAOiAAADAAAAAAEaARwAJABFAFEAADcuBTc1NzI+Ajc2NzYXFhcWFx4DMxcVFA4EBycVFB4DHwE2Nz4EPQEjJicmLwEmJyYHDgMHFz4BLgEiDgEWFwczmw8cGhYRCgEJChARDwcLDBITDAsGBQgPERAKCQkRFxkcD2wIDxUYDRYMCw0YFQ4JCwkKFBEJCAoODwkRExMKaAkKBBAUDwQJCgglGAkTFhkeIxI8CQIDBgUHBAUDAQYDAwUGAwIJPBIjHhkWEwnRMxAdGxcVCA8HCAkUFxsdEDMBAgQLBQQCAgQDCwgEAVEEEhMNDRMSBDEAAAMAAAAAARsBBwAVABkAIwAANzUXNScjBxUfATc1Mzc1BxUjNS8BMwcnNR8BMxUjFwcnNTcXzxIJqQkGXgxCCRI5BkSDTEtLOl1cHg4uLw3lARMqCgrKCSAJEwkqEw6cCBjUGa0ZLhMeDS4NLw0AAAADAAAAAAEbAQcAFwAbACUAADcVNzUnIwcVMRUfATc1Mzc1JxUjNS8BMwcnNR8BIzUzJzcXFQcnzxIJqQkGXgxCCRI5BkSDTEtLe15dHg0uLg3lHRMiCgoJwQkgCRMJIhMsnAgY1BmtGUATHg0uDi4NAAAAAAUAAAAAAR0BHQAMABkAIgArADgAABM+AR4CDgIuAjYXHgE+Ai4CDgIWNxQGIiY0NjIWFxQGIiY0NjIWByImJwceAT4BNycOAU0dRz8oBCA7RT8oBB4pGTw2IgQbMzs2IgQaPAsQCwsQC14LEAsLEAtCEBoIEAolKiMJEAccAQMUBR87RkAnBB48RT+3EAUbMj02IQQbMjw1XwgLCxALCwgICwsQCwtTEA0JEhUBFhMIDhEAAAMAAAAAARoBGgAIADEAWAAANxQGIiY0NjIWJyIGFRQXByMVMxUzNTcWFzMVIyIGFSIGHgE7AT4BNCYjNCYjNTQuASMHNDY7ATIWHQEXMzIWHQEzMhYUBisBIiY0NjsBNTQ2OwE3NScjIiaWBQgGBggFLxMcCBUiHRIVDA4cEhAWEBYBFRCpDxYWDxYQER8RQhAMJhMbCgkICxMICwsIqQgLCwgTCwgcCQkmDBDqBAUFCAYGKxsUDgsVExwhFQcBJRYPFiAWARUgFg8WQhEfES8MERwTSwoLCBILEAsLEAsTBwsKOAkRAAAHAAAAAAEaAQcACgAOABIAGgAeACIALAAAEwcVMzUzFTcXNScHMxUjByMVMycHFRczNzUnBzUzFScjFTM3IxUnBxczNycHgxIShAMPEnEmJjgmJjgTE4MTE4ODEyUlXhMWDSYNJg0WAQcTODguAw86EyYlOSVLE14SEl4TcV5eOSaWSBYOJiYOFgAAAAQAAP//AQcBLAAsADUAPgBHAAAlNC4BDgIeARcOASsBIgc1PgEuASIOARYXFQ4BHgI+ASYnPgE7ATI2Nz4BJzQ2MhYUBiImFxQGIiY0NjIWNyImNDYyFhQGAQcOGBoWCQQSDQUSCyUWEBIVAxskGwMVEhIWAxkkHAYSEgUSCyUSHQYRGM4QGBAQGBA4EBgQEBgQZwwQEBcREcUNFwwCEBkaEwQKCw9bAx0kGBgkHQNyBBwkGQIWJB4FCgsVEQIbSQwQEBcREcIMEBAXERFuERcQEBcRAAAAAAIAAAAAARoBGgAsAFcAADcWMjY/AT4BPwE+Ai4BLwEuAS8BLgIOAQ8BDgEPAQ4CHgEfARYXFh8BFhcWMjY/AT4BPwE+Ai4BLwEuAS8BLgIOAQ8BDgEPAQ4BFBYfAR4BHwEWZQUNCgIIBA4KGgUGAwIGBxkKDwMJAgkJCQYCCAMPCRoFBgMCBgYaDAkEAwgCeAQKCAEFAQcFDgUFAQMFAw8EBwEFAgYIBgUCBAIGBQ4FBQUFDgUHAQUBYQMHBhoKDgQIAgYJCQkCCQMOChoGBgIDBwQaCg4DCQEHCQkJAggECwYHGgZPAwUFDgUHAQUBBwcHBQEFAQcFDgUFAQMFAw4FBwEFAQgKCAEFAQcFDgUABAAAAAABGgEaACwAQABrAH8AADcWMjY/AT4BPwE+Ai4BLwEuAS8BLgIOAQ8BDgEPAQ4CHgEfARYXFh8BFj8BFx4BHwEHDgEPAScuAS8BNz4BFxYyNj8BPgE/AT4CLgEvAS4BLwEuAg4BDwEOAQ8BDgEUFh8BHgEfARYvATc+AT8BFx4BHwEHDgEPAScuAWUFDQoCCAQOChoFBgMCBgcZCg8DCQIJCQkGAggDDwkaBQYDAgYGGgwJBAMIAgcKCAUVDhoaDhUFCQkEFQ4aGg4UdgQKCAEFAQcFDgUFAQMFAw8EBwEFAgYIBgUCBAIGBQ4FBQUFDgUHAQUBDQMDCQ0DAQEDDQkDAwkNAwEBAw1hAwcGGgoOBAgCBgkJCQIJAw4KGgYGAgMHBBoKDgMJAQcJCQkCCAQLBgcaBocaGg4VBAoJBBUOGhoOFQUJCQUUyAMFBQ4FBwEFAQcHBwUBBQEHBQ4FBQEDBQMOBQYCBQEICggBBQEHBQ4FMgEBAw0JAwMJDQMBAQMNCQMDCQ0AAwAAAAABGgEaAAcACwAPAAABIwcVFzM3NQcjNTMXIzUzAQfPEhLPEoNeXnFeXgEZEs8SEs/Pz8/PAAAAAwAAAAABGgEaAAcACwAPAAABIwcVFzM3NQcjNTM1IzUzAQfPEhLPEhLPz8/PARkSzxISz89eE14AAAAAAwAAAAABGgESAE0AnACmAAA3JiMuASMVDgEHFRYXFhcyMQYHBgcGHQEUFjI3MwYHIw4BFQYWOwEWPgInJi8BLgE2PwEzMhcWFxY2NzY1NCcmJyYHBgcGByYnNTQmJxcWBwYHBisBNDY7ATUmNjcnBgcjIgcGJj4BOwEyNj8BBiYnPgE3MzIXFhcWHwEzNSY2Nz4BNzYXHgEXFRQOASYnJgcOAQcGFh8BHgEHJi8BIgYUFj4BNCYjaAEBAg8KFh4EBREICgEQCggEAwsPBycFAgYRFwEEBH0QHBYJAQENAgcFAwMCAwMDBgcKEgUCDQwRGBoSDQoFBQcPDGQCAgMOCAluCggYARIODAgDPAMCBQUECgcTBAUBBg8cCgQhFQIIBwoQCAYBAwECAQQTDhMQDRECBQcIBAoLBwkCAwcIAgoBBgEHgwQGBgcGBgT6AQkMGQkjFwgKBgQCAgcGCAYHBgcKAwkKAhsSBAUBCxcdEBYRAwgLCQIBAQQCAQkJBgcRFhILDQUDDgsOBwcDCxABuQ8JDggDBwsKDRQBEQMCAQIDCwgFAxgCCQoVHAEDBRULCgEBBxcGDBMCBAkIGwwCBwUCAgIGAwIKBwsXCAMMHg0NDHAFCAYBBQgFAAAFAAAAAAEaARoACQANAA8AEQAbAAA3JwcjFwc3Fyc3BzM3DwI3IwczNxczBxcnBze0Hh5lUh9QUB9S7VIYGBAYqlJSLA4OLCQOJCQOt2JiQGQ+PmRACU9PNFCEES0tHC0cHC0AAQAAAAABGgEaAAkAADcnByMXBzcXJze0Hh5lUh9QUB9St2JiQGQ+PmRAAAAEAAAAAAEaARoACQAPABAAEgAAPwEXMwcXJwc3Jx8BJzcjJzUXI3geHmVSH1BQH1KDJA4kLA5qUrdiYkBkPj5kQEccLRwtM08AAAAAAwAAAAABFgEbAAMAGQAsAAA3MxUjNx4BFxYVFAcOAQcGJy4DNzY3PgEXNjc2JzQmJyYnJgYHDgEWFx4BcUtLMBYpECYeDyYWMCcUHhADBw8mEishJhkZAhEPHSYTJg8gFyEiECa8S6gBFBApNysnEhcECRYLIiouFS4ZDAz0CR8iJRcqEB0DAQkLGE5IEwoGAAAAAAUAAAAAARoA9AAJABMAHAAlAC4AADczNSMHFRczNSM3IxUzFSMVMzc1BzI2NCYiBhQWNxQGIiY0NjIWFzI2NCYiBh4BJhIcCQkcEuocExMcCbsICwsQCwtTCxALCxALJQgLCxALAQrhEwqoChOpE5YTCqhnCxALCxALEwgLCxALCxsLEAsLEAsAAAAAAgAAAAABGgEHAAkAEwAAEwcVFzM1IzUzNRc3NScjFTMVIxUcCQkvJSXFCQkvJiYBBwrOCRK8E+EJzgoTvBIAAAIAAAAAARoA9AAHAB8AAD8BMxcVByMnNyMVIzcnBxUXNyczNTMnNxcVByc3IxUzEwn0CQn0CfRxTCcNODgNKE1JJw03Nw0nSXHqCgqoCgqfQScNNw43DSgSKA03DjcNJ0EAAAAEAAAAAAEUARoAIAAkACgALAAANzM3NScjByM1NzUnIwcVFzM3FRczFRczNzUnIwcjNTMVNxcHJx8BBy8CNxfVDTIZDSJeIyYNSyUOFQlYGA4yGQ0jXk84DCUMJQwlDJAYPRl2Mg0ZIhgiDiVLDSYWbQkKGTIOGSNLCSoLJgw4DCYMeBk9GAAABwAAAAABGgEaABkANQA+AEcAUABZAGIAABMiDgIdAR4BPgEeAg4BFhczMj4BNC4BIwcjLgE1Jjc2NCYiBwYnIiY9ATQ+ATIeARQOASM3FAYiJjQ2MhYXFAYiJj4BMhYnMjYuASIGFBY3FAYiJj4BMhYXFAYiJjQ2MhaWGjAlFAETGhQcFAEUAw4PCyM9IyM9IwEKBAUCCA8fLBAHCgIEHzM9NB4eNB4SCxALCxALOAsQCwEKEAuDCAsBChALC4sLEAsBChALEwsQCwsQCwEZFCUwGggODQQTARQbFRwVASQ8Rzwk9QEEBAwIECsgEAgCBAMHHzMfHzM9NB68CAsLEAsLiwgLCw8LC1YLEAsLEAsTCAsLEAsLQAgLCxALCwAABAAAAAABGgD0AAMABwAPABMAADczFSMXIxUzJzczFxUHIyc3FTM1S5aWlpaWzhPhEhLhExPhvBMmEnATE5YTE5aWlgAGAAAAAAEaAQcADAAVABkAHgAiACYAAD8BMxcVByM1MzUjFSMXNScjBxUXMzcnFSM1Nyc1MxUnMxUjByMVM4MTcRISS0txEyYTcBMTcBMTcIsIS0tLSyZLS/QTE14TE144ORMTE14SEl5eXhMICxM4E10TAAcAAAAAARoBBwAMABEAGgAeACIAJgAqAAABIwcVMzUzFSMVMzc1BzMVIycHIwcVFzM3NScVIzUzBzMVIxUzFSM3MxUjAQdxExNxS0sScEtEByZdExNwExNwcF5LS0tLcUtLAQcTODheExNeOBMHBxNeEhJeE3FeExITE5YTAAAAAgAAAAAA7wEaAAsAEgAAEzczFwczFwcnNyMnFwc3IzcjB4sRPg8pIQ6GHigXEUc2hUU+PkABDwodQCCJFkgbCWOJXoQAAAAABAAAAAABGgEHAAsADwATABcAACUnIw8BFR8BMz8BNQcnNRc3JzcfAQc1NwEPXhGDCgpeEYMKoFRUCVd9Vwd6etgvQhFUES9CEVSRKkYmECc/LFc9STkAAAMAAAAAAQcBGgAJAAwAEwAAJS8BIwcVFzM3NQcjNQc1MxUXMxUBBD4GkQkJzgoTOIRxCULZPgIJ9AkJtgQ54eFCCZYAAgAAAAABGwDiABcAIQAANyIGByMuAQ4BFB4BNjczHgI+Ai4CByImNDYyFhQGI9gZJQM6BBcdEhIdFwQ6AhUfIhwPAhIdERQbGycbGxPhIBgNEAMVHRUEEA4RGw4EEx4jHBFwGycbGyccAAAABQAAAAABGgDrABIAJQA/AEoAZQAANxY+ATc2JzYnLgEjIgc1IxUzNTc2FzYXFhUWBw4BJwYmNzUmNzYnDgEPARU3NjcyFhUHDgEUFjMyPwEVMzU2JhcUBiMiJjQ3Nj8BFxY3Fj8BNQcGIiY0NhcyHwE1JyYiBgcGFBcWhwoUEgYNAQEMBhAJEAwTExAFBgsGBwEJAwkGCw8BAQgEUAkRBwIICw8HCRcOFRMOCwkGEQETAQ8LBgkECAoTnAgKDgwDCQkXEBINCggIAwoWEwcPDgZfBgEICBEWFA8HBws0jwZMAwEBCQoNDw0EBgEBEQsLDAoEFgEFBQEXBwoBDAgEARIaEgYFCT8QFzkNEQgMBAUBAy8EAQEIARYGBxQcFgEFBRYBBQgHESoQBwAACAAAAAABGgEHAAMABwALAA8AEwAXABsAHwAAJSM1MwcjFTMnIxUzFyMVMycjFTM3IxUzJxUjNRcjFTMBGV1dEiYmS6mpJc7OXnBwll1dg4NwXV3hE0sTExNeEksTExOpOTkTEwAAAAAEAAAAAAEHARoACwAPABMAFwAANycjDwEVHwEzPwE1Byc1Fyc3FwcXBzU3/V0TXgkJXhNdCnpVVVBZWVleVFThODgQcRA4OBBxozJhLkE1NTFDMmUuAAAABQAAAAABHAEaAAgADAAQAB0AKQAAEzMVFhc1IxU3FycHMyc/ARc3PgEeAg4CLgI2Fx4BPgImJyYOARZLlgoJvBMoFUuWdiALKyoPIyAUAhAeIh8UAg8ZChkXDgIMChAmFggBB0sBBGKfISolgxM4E0t4CgIPHiMgEwIQHSIgVAcCCxUaFgcLCCAmAAACAAAAAAEHAQcARgCNAAA3NSMiDgEHMQYHMQYXFRQHMQYHBisBFTMyFxUWFxUWFzEWHQEGFxUWFzEeAhczNSMiLgI9ATQmJyYnNjc+AT0BNDY3NjMXFTMyPgE3MTY3MTYnNTQ3MTY3NjsBNSMiJzUmJzUmJzEmPQE2JzUmJzEuAgcjFTMyHgIdARQWFxYXBgcOAR0BFAcOASNxAgkRDAMDAQEBAgQKBQYBAQYFBQMEAgIBAQEDAw0QCQICBgoHBAICBQkJBQICCQcFBk0BCRANAwMBAQECBAoFBgICBgUFAwQCAgEBAQMDDBEJAQEGCgcEAgIFCQkFAgIIAwoG9BMHDQgICAgIEAYFCgUCEgIBAgMBAwUFBhAICAEHCAgNBgETBAgKBhkGDAULBwcLBQwGGQkNBAK8EgYNCAcJCAgQBgUKBQISAgECAwEDBQUGEAgIAQcICA0HARIECAoGGQYMBQsHBwsFDAYZDAgEBAAAAAIAAAAAARoBGgAbAB8AABMVMxUjFTMVIxUjNSMVIzUjNTM1IzUzNTMVMzUHFTM1zktLS0sSSxNLS0tLE0tLSwEZSxJLE0tLS0sTSxJLS0tdS0sAAAgAAAAAARoBHAAOABkAHQApADUAQgBPAFMAABMWFxYUDgEjIiY1NDY3Nhc2NzQuAQ4BFB4BNwcXNxczFTMVIxUjNSM1MycXBxcHJwcnNyc3FzcuASIOAR4DPgIHBgcGJy4BPgIWFxY3IxUzNgoEAgYMCAoPCAcKBAYBBQYGBAUGTGQNY1MSLy8SLy9sDSEhDSEhDSEhDSE6AwwQDQUBBwsNDAcBEQEEBgUCAgEFBgUBBY1LSwEXBAkFDAsIDwsHDQMEJQMHAwYCAwUHBQIiZAxjhy8SLy8SJQ0hIQ0hIQ0hIQ0hcAcJCQ0NCgYBBwoNCAQBAwUBBQYFAQICBTQTAAADAAAAAAEZAOEAGwAiACkAADcjNTQmKwEVFBY7ARUjNTMyNj0BIyIGBxUjNTMXJzcXFQcnIyc3JwcVF84SBgQTBQQKOQoEBRIEBQEScDccDiIhDqccGw4hIrwJBAVnBAUTEwUEZwUECSVMHA0iDiEOGxsNIQ4iAAACAAAAAAEaARsAHwBDAAA3Ii4BNzY3JjQ3Njc+AR8BBxc3FxYUBgcGBw4BJwYHBjciBwYHDgEfAQcGBwYeAjI3Nj8BFxY2NzY3PgE1NCcHJzcmNQ4TAggjQAUGChURKRIMNhc4BQYMCwYIECUSRCAJiRIQBgUOBwgDBEQjAwEHBggDHkkFBQ8gDgYFCQkBMTAwBhMTGQomPg4eDhgNCwQIBTgXNgwPIB4LBgULBAdFHgj1CwMFDiYSBgRCJQULBwIDG0sEAgcDCQMFCRcNBgYwMDEBAAIAAAAAAPQBGgAHABsAABMHFRczNzUnBzUzFSM1MzUjNTM1IzUzNSM1MzVLExOWExOWlpYmJktLJiZLARkS4RMT4RIlE+ESEyYSJhMlEwAACAAAAAABGgEaAAkADQARABUAGQAdACEAJQAAEwcVMzUzFTM1JwM1MxU3IxUzNzMVIzcjFTM3MxUjMzUjFSczFSMvCRLPEgnqEiYTExMSEjgTExMSEl0SJhMTARkJ2M/P2An++hMTExMTExMTExMTExMTAAAHAAAAAAEaAQcABwALAB8AKQA2AEAAUgAAEwcVFzM3NScHNTMVJzM1NCMiBgcVNjIVBwYVFBYzMj8BFRQGIiY1ND8BFyMVIzUzFzYyFhQGIicVFBYyNjQmIgYXMjc1BiImNDYyFzUmByYGFBYmExPhEhLh4aMNEgQJAwcPDA4HBggEAQUGAwYHKwELCwEEDggJDgQEBwQDBwVFCQUFCwcHDAQECAsODQEHE6kTE6kTvKmpOiAXAwIMBQkBAxAHCQkSBAQHBAIHAQEUBkofCQ4YDxwFBAcIDgcIIQMOBAgOCQQOAwEBEBoPAAAAAAYAAAAAARoBBwAHAAsAEwAYACAAJQAAEwcVFzM3NScHMxUjBzczFxUHIyc3IxUzNTM3MxcVByMnNyMVMzUmExPhEhLh4eETEzgTEzgTJRI4XhI5EhI5EiUTOQEHEzgTEzgTEzhLEhI5EhI5OTkSEjkSEjk5OQAAAAYAAAAAARoA4QAJABMAHwAjACcAKwAANzM1IwcVFzM1IzcjFTMVIxUzNzUHFxUPASMvATU/ATMHFzUnNxc3Jwc3NQcmJS8JCS8l6i8mJi8JPAQGVAkuBQZUCVAcHAsbPxsbQkLOEwmWChOWE4MTCpYnCC8JJRwILwgmVxEZEQ8QHBBXHRodAAADAAAAAAErAQgAEQAjACcAADcnPgEeARc3FwcjJzcXLgIGHwEGLgInByc3MxcHJx4DJzcXB2cPGj02IAEXDicPJw8XARosMUAPGjoyHgEXDycOKA8WAhgnLpIN3w3nDREDHDMfFg4nKA4XGCoYAbMNDgEdMR0XDicoDhYXJxcDvg3QDgACAAAAAAErAQ0AEQAjAAA3Byc3MxcHJx4CNjcXDgEuATcnBxczNycHLgIGBxc+AR4BJhcPJw4oDxYDKT05Dw8TRUkwzRcPJw8nDhcBLkhFFA8QOjwnkRcOJygOFh8vDRocCyEeETovFw4oJw4WJToTGyALGxgQMAALAAAAAAEHAQcABwALAA8AEwAXABsAHwAjACcAKwAvAAATIwcVFzM3NQczFSMXIzUzHQEjNSczFSMVMxUjFTUzFTM1MxUzIzUzNSM1Myc1MxX94QkJ4Qrhzs6DODg4Szg4ODg4EzhLODg4ODg4AQcKzgkJzgkTOCU4JSU4JRMlOSYmJiYmEyUTJSUAAAMAAAAAAScBBwARACMAMAAAEyMPARUXMzcWMj4BPwE0Jic1ByYjIgYUFjMyFxUHBg8BJzczFx4BFQYVDgMnPwH4YgZ9YQ0qEiolFwIBFBETDg4EBQUEDw1JAwIlVHNUEwkKAQIRGx4ORQMBBwN9DWIqChQiFQoVJQwqIQUFCAYGKEoBAyZUdDkKFw0FBQ8ZDwIGRQcAAAAABQAAAAABGgEaAAgAFQAeACsAOAAANzI2NCYiBhQWNxQOASIuATQ+ATIeAQcyNjQmIgYUFjcUDgEiLgE0PgEyHgEHMj4BNC4BIg4BFB4BlggLCxALC1MUIygjFBQjKCMUSxchIS4hIZojPEg8IyM8SDwjgx8zHx8zPjMeHjODCxALCxALExQjFBQjKCMUFCNMIS4hIS4hOCQ8IyM8SDwjIzyUHjM+Mx8fMz4zHgAAAAAEAAAAAAEaARoABgAKAA4AEgAAPwEnBycHFzcjNzMHMxUjFyMVM0NrDWQcDiLkmStuqKioqKiorl0OViIMKh8mSyYlJgAAAAAFAAAAAAEGARoAEwAXABsAIAAqAAATHwEPAS8BBy8BBy8BPwEnPwEnNwcXNyc3FzcnNxc3Jw8BFyMnFSM1ByM30wsnBD4LA0MKAzALDgUvAwRDAwVnBioHChU4FAojKyEuBTkWIxMjFSABGQRdCxoECBwEBxQFHwsUCAodCAtiEBEQFy4YLRhNE00Tc1s4S2FOSQAABAAAAAABEgEjABcARwBRAG4AACUnJiIPAQ4BHQEUFh8BFjI/AT4BPQE0JgcVFA8BBj0BBiciNTc0NzMWNzY0IiY1NDc1ND8BMh0BNhcyDwEUBzEmBhUUFjMyFDcUIwcjNTQ/ATE3Bw4BHQEUFyMiLwEuAT0BNDY/ATYyHwEWFy4BBwEAWQgSCFkICQkIWQgSCFkICQlNAQUBBQUBAgEBBQQHDQYKAQUBBAQCAQIBBQoEBAwkARYBARYQVAkJCAUHB1kGCAgGWQcPBlkLAgIJBuk1BQU1BRAJagkQBTUFBTUFEAlqCRCfCAEBAwECCAMCAQcBAQECAw0EBw0ICAEBAwEIAgECBgEBAQUHAgIaBAEOBgEBDXw0BQwJZwsDAzUEDgdqBw4ENQMDNQcNBAIDAAcAAAAAASwBGgADACAAJAAoADAANAA4AAA3FyMnByIOAhQeAjI3FwYjBiIuAjQ+AjIWFwcuARczFSMVMxUjNyEHFRchNzUHITUhNSE1IcwmDiVTCAwKBQUJDBIJAgQFBxAQDAcHDBISCgICBAklExMTE43+5gkJARoJE/76AQb++gEGqV5eCwUJDxANCQUDCQICBgwRFBEMBwICCQICCBMSE7sJ9AkJ9OqoEyYAAAAAD///AAAA8gEtAAQBFwEaAS0BNQE7AUoBUAFSAVcBXgFjAWQBbgF0AAATIisBNxc2NQc2PQEjLgEnLgEHPgEnDgEHBgcGMzcwByMOAQcUNjEHJgcGBzMGBzEGFQcGFRQXBxcjHgMXJicUFhcHFh8BJhcWHwE3BhczHgEzBxYXMxYXJxceAhcjJicuAjcmNzQnNTY3NTEWPwE2NzM2NzY3MTY3FTY3Nj8BBjM3BzYXMTIzBwYxFjcxNhcnFxYXMjcxNhcVFhcyJzEeARcmMRUWIxYXNSYnFCMxJgYXFjcxNDEXFh8BIicxJhUeARUxIhUUFjczBwYXJxQVMRYHNjQHFgcxBhUnBhYHNjUxNDciDwEOASc0JyYnJjc2NzY3PgIWFy4BDgEXNzI1FB4BNxU2PwEHBjY/ATY1MSY/AQcwOQEUFhcWNwYuAScyFzEWFyYnFhc3IiMyFiMwJxc0IgcXFAcGBzQmNjcUBzEGFD8BNgcuATcWNycPAhcWFycWHwEnJic3BwYHNicVMDMxMhQPATU2BxQHNTQ3hQQDAg5IAwICAQEbEA0jCQEGAQcIAwYGAQEGAwUFCAUEAggPDQUDAgQFAQIEAQMBAgQFBQQEAgUDAgIDAQQDAgYDAgEIBQEIAwMFAgEDBgMGBQ0OBQQUBxwyHAIBAQEHBwIDAwMBAgEFBAcHAgcMBw0IAQEPBwUEBAUFAgUFBgYBCwoKAgIEBQEIAQUPGgUDAQEEAgYGAwIBAgEBAgEBAQEBAgEDAQIBAQIDAQMBAgECAQUEAwQBAwEBAQUHECYUAhIGCQMCAgMFBBIWEgUJGhgOAQEBFR8OBQMJAQMFDgMBAQIEVAYDCxIJGxgGAQUIBAQGCQsDAQEGAgIENgIBAgMCBAQBBAICBAEDGQUGBAcFGgEnAQMEAwUCAgEBAwGMAQIGB+ACAQEEAgYCAwErAZAIBgUIEAoTJgcGAgQBAQEBAgIEAgEBAgEDBgECAwEPDAkFBwkEDBEIDQUHBwkEAQUJAQQCCQUCAwIBAgYDCAQCBQkDBwQBAgMCBAUGBQICAQIILUAhBgwPAgIWDgECBQUHBAQGBAcGAgMGBwMGAwECBAEBAQEBAgECAwQDBQEBAgEDBAUIHhEEBAULCgEUCQIBAwUCAQEEAgYFAgMBBAYBAwUDAQQJBwgDBAUGBgkDBwoIAwQHBQQCAQECBQcNBQcBAg4LDxcBBgsDBwwBCgcIBAsZDgECERsLBwEBAggCAwENAwICAgMDKQEEAgQBBAYQCgUKAQMICgW7AQF6BgQDAQsHBgEBBAUCAgQBAgEEEwECAQEBmQGfBAQGAxcEAgUCBgMYAg8NDlcBAQMDAQMVBAQCBAQAAAUAAAAAARIBLQBaALEAzwEZAT4AADceAR8BFh8BHgEUDgEPAQ4CBw4BIyImJyYvAiIPASIPAQ4BIiYnJi8BLgI0NjUnNDY3Nj8DJzQ+Ajc+ATUnNDU0PgIzMh4CHQEWFxYfAR4CFRQnMhYfARUPAQYPAQYUFxYfAR4BOwEyPwM0LwIuAS8BPQE0PgEzMhYUBhQXMzI2NScuAiMiBgcXJyYHIyI9AS4CIg4BFQcUHwEWMjY1IyIvASY2BzI+AyYvAi4CBg8BDgIVFxQGFBYfAhYXNzI3Njc2NzU/ATQ+ATc1ND8BNj8BLwEmLwEmNScmLwImIg8BBiImLwEmIh0BBwYHFxQXBw4BHQIyHwEWHwEWHwEUBgceAxcyPgE3Nj8CNj0BLwImIyIPAQYiJi8BBwYHBhUHBg8CFBb5BAUBAgEDAwIDAwYEBwYJCgYEBwQICwQCAQQdBwYNAQEEAwgLCgUJCRkDBQMDAQcHAwIFBwEBBwoMBggJAQULEg0OEgkDAQMDBA4HDAh+AgMBAQEEAQIGAgIDAQQBBgYBBgUOCwEBAgUDBwMBAgMCBQQCAQIDAwEBAwYECAYBAQUCAgICAQIEBgMDAQIBAQICAQEBAgEEHQQGBgMBAgINCgIEBQYDCgMIBQECBQQQCAMFQwQFCQkEBAIFAwYDAQIBAgMFAgICBwEBAgMDAwIFBRQFCQcDBQMCCAMBAQEFBgQDAwcEBAYEAQIFAwIICApAAwcIAwgKCgMBBQMFAwYDAgoDBQUBBAICAQICAQMBAQlbAgcFBgQFBAIGBwUEAQQDBwoEAgMGCAIBAQEBAgIFAgQCAwQCBAEDBggIBQ0HBwIBAgQJAgcKFBMSCAoYDgsGBgwSDgcMExcMDQoJBAYSCRQWDQqPAgEEBAIFAQEFAgMBAgQGAwUDCAgEAgECAQEEAQECBwIDAgcFBAIBAwMHBAgEBwgJAQEBAQYDBgUDBAMFBAMFAQIBAQUEBuQCAwYHBQISEAQGBAECCgMDBAQMBAcHAwEDAQEDDgECBAIDAQgfBAYFAgEBAgMBAQIXBgQCCgICBAcHBwUDAw0CBQQGAwIHDQcIBAICBwgTCQoEAgQDBAgDBAYEBQEEBgQCFQIFBAkFBQICAgIIBQ8EAQYBAwIKAwICBQURCAgFBQcKAAAAAAQAAAAAASsBGgAHAAsADwAVAAATHwEPAS8BNwcXNycXBxc3LwEHFwcXL/QIIgv0CCIO4SDhTQNeAj1FDTI9CQEZAwnyCQMK8egD3wKdEgITLzcPJycPAAAEAAAAAAEHARoABwAMABAAFAAAEyMHFRczNzUHFSM1MxcjNTM1IzUz/eEJCeEKhF1dcV5eXl4BGQn0CQn0cWfPz14TXgAAAAAG//8AAAEcARoACAARAB4AJwA0AEQAADcUBiImNDYyFgcUBiImNDYyFhcuAScGJx4BFxYzJjU3FAYiJjQ2MhYXNjc2JicGBxYHBgcWJyIxPgEXBg8BDgEHJicmI/YXIRcXIRemGCEXFyEYMhYiChESDTEgDg4LYRchGBghFxATBgYKDwYQEQgDCQ7SARJEJgkCARgpDggKBgbzERYWIRYWZREWFiEWFnQEGhMIBB4oBwIOEgEQFhYhFhYCFx0ZMhYRCR8iEA4LfCAjAwoNCAEVEwUCAQAAAAAEAAAAAAEaARoABwALABIAFgAAEzczFxUHIyc3FTM1DwEXBxc3NRUzFSMTE+ESEuETE+GvDTU1DT5LSwEHEhLhExPh4eE5DTU1DT0KMxMAAAQAAAAAARoA4QAHAAoAEgAYAAA3BzM3MxczJwc3FzcjBzM3MxczJzc2Nx8BPywZCSsKGSwbDw6FHj0eDj8OHWQWAgECF6lxHBxxQigoeqkrK0JDBgULQwADAAAAAAEHAPQAAwAHAAsAACUjNTMVIzUzBzM1IwEH4eHh4eHh4c4mcSZxJgAAAAABAAAAAAEaAQcAGwAANyIuAT8BIwYuAjc2Nz4BNzMeAR0BFAYrAQcGZggOBQQSNAcMBwEDIwgDDQinCw8PCxluCCMLEQkpAQYLDgZKFwcJAQEPC0IKD2cHAAAAAAIAAAAAARoBBwAbADYAADciLgE/ASMGLgI3Njc+ATczHgEdARQGKwEHBiciBwYHBhY3MxcVBwYeATI/AjMyNj0BNCYjZggOBQQSNAcMBwEDIwgDDQinCw8PCxluCBgFAgsgAgQFPgkUAQEEBQJyCRkDBQUDIwsRCSkBBgsOBkoXBwkBAQ8LQgoPZwfRBR9DBAcBDAkuAgUDAmgDBANCAwUAAAAAAQAAAAABGgEHABsAABMeAg8BMzYeAgcGBw4BKwEuAT0BNDY7ATc2xggOBQQSNAcMBwEDIwgDDQinCw8PCxptCAEHAQoRCSkBBwsNBkoXBwoBDwtCCg9nBgAAAAACAAAAAAEaAQcAGwA2AAATHgIPATM2HgIHBgcOASsBLgE9ATQ2OwE3NhcyNzY3NiYHIyc1NzYuASIPAiMiBhcVBhYzxggOBQQSNAcMBwEDIwgDDQinCw8PCxptCBgFAgshAQQFPQoUAQEEBQJyCRkDBQEBBQMBBwEKEQkpAQcLDQZKFwcKAQ8LQgoPZwbQBR9DBAcBDAkuAgUDAmgDBANCAwUAAAYAAAAAARkBGgAgAC8AQQBNAFIAaAAAJScHJzcnJiIOAhQXBgcGFhceATMyNzY3NjcWMj4CNAcGKwEiLgI3NjceARcGNxYGIicuATc+AjsBBxUXMzcHMxc3JzcvAQ8CFycXFSMnFzcXFhQHDgEnJi8BNxceAT4CNCYnARUPJxcnAw0bGhQLBTo5BgEIBAkFCQcVJCIaDRwaFAviAQICAgIDAgEqRgMGBEmpASAsDwwGBgQPFAoFIiMNIsocDgwMAQQ2Cw8CIworFByKDToICAYPCAUDOw06AgUFAgEBAesDJxcoDwQLFBsdDTo7CBUHBAUHEyUhGwYLFRoctwEBBAYCLEYEBwNLhRcfDwwgDwoQCCMNIyInDg0NHwgkAg8MNkAdFSx9DTwIFggGAwMCBDwNPAICAgMDBAMBAAAGAAAAAAD0ARoAEwAXABsAHwAjACcAADczFSMVByMnNSM1MzU0NjsBMhYVKwEVMwczNSMXIxUzNzMVIzczFSO8OBMTgxMSOAsIOAgLEzg4XoODJhMTEhMTJhMT9BOpEhKpExMHCwsHE7ypE4ODg4ODAAAAAAEAAAAAAQcAzwAFAAA/ATMXByMmB9IIahDECgpmAAAAAQAAAAAAzwEHAAUAABMXFQcnNcQKCmYBBwjSCGoQAAABAAAAAADPAQcABQAANyc1NxcVaAoKZiYH0ghqEAAAAAEAAAAAAQcAzwAFAAAlByMnNzMBBwjSB2kQaAoKZgAAAQAAAAABGgD/AD4AACUOAQcXFAYHDgMiJicWNjciJicmJxcWNy4BJyY1MRYzJicmJyY3NjcWFxYXFhcnNTQ3Njc2MhYXNjcGBzYBGQUOCAEHBwkdJCstKhIVKhAMFwcFAwUKCQkQBgwMDQsHAwIDBAEECg0ZHxAQAQQIFQoWFAgSEAYSEOUIDgYHEB8PFSIYDAwMAgsODAoHCAEBAwIJCA4UBgcMBgYODQcGDAoVCAQBBgYMCRUIBAkIBAkTCgEABAAAAAABBwEaAB4AIgAmACoAADcjJzM3NScjBxUXMwcjBxUXMzc1JyM3FyMHFRczNzUnNTMVBxUjNRcjNTP9ID8UCgpLCQkUPiEJCTgKCgE6OQEJCTgKljheJc4mJl5eCUsJCUsJXgo4CQk4ClZWCjgJCTh6OTmDJSUlJQAAAAAEAAAAAAEHARoAHgAiACYAKgAAEyMHFRczByczNzUnIwcVFzMXIwcVFzM3NScjNzM3NQc1MxUXFSM1NyM1M/04CQkBOToBCgo4CQkhPhQJCUsKChQ/IArhJV44gyYmARkJOApWVgo4CQk4Cl0KSwkJSwpdCjgvJiaDODiDJgAAAAUAAAAAAQcBGgAjACcAKwAvADMAADcjJzUnIzUzNzUnIwcVFzMVIwcVByMHFRczNzU3MxcVFzM3NSczFSMHMxUjByM1MxcjNTP9ISAKHAkKCiUJCQkcCSAiCQkmCSBDIAolCoQTExI4ODkSErwTE0sgRwolCSYJCSYJJQpHIAkmCQkiICAiCQkmxRNLOEsSEhIAAAADAAAAAAEHARoACQATAC0AADc1Byc3MxcHJxUHFScHFzM3Jwc1NxcHFwcjNTMnIwczFSMnNyc3MxUjFzM3IzWNEw0iDiINExITDSIOIg0TYgZFRQZOODg4OjlPBUVFBU85ODg6OLJLEw4hIg0TSzhLEw0iIg0TS2cTNzkTEy0tExM3ORMTLS0TAAAAAAwAAAAAARoBGgAJABMAGwAfACcAKwAzADcAPwBDAEcASwAAExcHJxUjNQcnNxc1IxUnBxczNyc3Iyc1NzMXFSczNSMXIyc1NzMXFSczNSMHIyc1NzMXFSczNSMXIyc1NzMXFSczNSsCFTM1IxUzNigPFxIXDScPEhcNJw0oDU4lCQklCiYTE404Cgo4CTgmJkIlCQklCiYTE404Cgo4CTgmJhMlJSUlARknDRZSVBgNJ+hSUhYNJycNYgkmCQkmChIlCTgKCjgKJZYJJgkJJgoTOQo4CQk4CSYTcBIAAAAAAgAAAAABBwEdABUAGgAANzU0PgEWFzMuAQ4BHQEjBxUXMzc1JwczFSM1XhopIwcUCC44JhMSErwTEyYmvKklFR8HFRMbIAcqHSUTcBMTcBMTcHAABQAAAAABGgEaAAkAEQAeACcALwAANzM3FxUHJyMnNR8BNQ8BIxUzNxQGByc+ASc2JzceAQcUByc2NCc3FgcUByc2JzcWHDRJEBBJNAlIOzsHLi7FDw4ODA0BARkODg8lEw0NDQ0TJggOBwcOCNFIBvQGSAleVzvGOgNLJRcqEg0PJBMnHw0RKxcfGQ0ULxMNGR8QDQ4PEA0NAAAABAAAAAABFQEUABcALwBbAF8AADczNzM3NTc1JzUnIycjByMHFQcVFxUXMzcjNS8BPwE1Mz8BHwEzFR8BDwEVIw8BJzcGDwEjNTY3PgMzMh4CFA4BDwEOAR0BIzU0Nj8BPgE0JzEuAScxJiIGFyM1M5ANIC0KICAJLiANHy8KHx8KLwMpAh0cAykGHB0GKAMdHQMoBxwcFQIBAREBAwIEBwkFCAsIAwQFAwYCBBEEAwsDAwEBAwIDBgYPEBAYIAotIA4gLgkgIAotIA4gLQoTKAccHAcoAxwcAygHHBwHKAMcHHEDAwYBCQcDBgQDBQgLDAkIBAcDBgMJCgUIAw4DCAcDAgQBAgRdEAAAAAYAAAAAASwBGgBCAE4AWgBiAGYAagAANzQ2HwEWMjY/AicuAiIHNTcWHwE3PgMWFRQjIiYiBgcGBxcWHwEWMjc2PwEXDgMiLgEvASYnDwEOAiImFz4BNCYnMxYVFAYHIy4BNTQ3Mw4BFRQXNyEHFRchNzUHITUhNSE1IWUHBAUBAwUDCwYHAQUGBwMbBgMFBQMJCQkGCAMFBgYDBQQIAQECAQQBBQMDAwEGBwgGBQMBBAEBCQYDCAcIBnMHCQkHDRIJCZ4JCRINCAgQz/7mCQkBGgkT/voBBv76AQZUBAUCBAEFAxANGwMFAwEEBQYIEAgGCQYBBAQIAwYEBggiBAMDAQEEBQQCAwgHBgQGAxQEAw8JBQYFBQUKGBoYChUaDhcKCRkNGhUKGQwbFM4J9AkJ9OqoEyYAAAIAAAAAARUBFAAXAB4AADcjJyMnNSc1NzU3MzczFzMXFRcVBxUHIyczNycHJwedDR8vCh8fCi8fDSAuCSAgCi0/DkYNQBoNGCAKLSAOIC0KICAJLiAOIC0KMEYOQRoNAAMAAAAAARUBFAAXAC8ANgAANzM3Mzc1NzUnNScjJyMHIwcVBxUXFRczNyM1LwE/ATUzPwEfATMVHwEPARUjDwEnNzM3JwcnB5ANIC0KICAJLiANHy8KHx8KLwMpAh0cAykGHB0GKAMdHQMoBxwcBA5GDUAaDRggCi0gDiAuCSAgCi0gDiAtChMoBxwcBygDHBwDKAccHAcoAxwcIEYOQRoNAAAABAAAAAABGgD0AAcACwAWACEAADcHFRczNzUnFSM1Mwc1MzUjBxUXMzUjJzUzNSMHFRczNSOWExNxEhJxcakTHQkJHRM4EhwJCRwS9BOWExOWE6mWXksTCYQJEzgmEgleCRMAAAMAAP//AS4BBwASAB8AJgAAEzMXFSYnNSMVMxQXIzUzNSMnNRc+AR4CDgIuAjYXNycHJwcXHPQJCAvgXRNLOGcJpBEoJBcCEiEoJBYDEjgtDycYDCABBwpnBwRTqR8ZExIKu3QMAhEiKCQXAhIhKCRSOww0Ew4aAAUAAAAAASwBBwASAB8AKwAxADcAABMzFxUmJzUjFTMUFyM1MzUjJzUXIg4BFB4BMj4BNC4BByIuATQ+ATMyFhQGJxc3JzcnByc3FwcnHPQJCAvgXRNLOGcJzhQjFBQjKCMUFCMUDxoPDxoPFyEhFRsJExMJMBIIGxsIAQcKZwcEU6kfGRMSCrtnFCMoIxQUIygjFIMPGh4aDyEuIUMbCBMSCC4SCBobCAAAAAADAAAAAAEsAQcAEgAfACsAABMzFxUmJzUjFTMUFyM1MzUjJzUXIg4BFB4BMj4BNC4BByIuATQ+ATMyFhQGHPQJCAvgXRNLOGcJzhQjFBQjKCMUFCMUDxoPDxoPFyEhAQcKZwcEU6kfGRMSCrtnFCMoIxQUIygjFIMPGh4aDyEuIQAAAAADAAD//gEuAQcAEgAuADEAABMzFxUmJzUjFTMUFyM1MzUjJzUXMh4CFx4BBw4CBw4BJy4CJy4BNz4CNzYXJxUc9AkIC+BdE0s4ZwnOChMRDgUHBAQCCg4IDR4PCREOBQcEBAIKDggSOjkBBwpnBwRTqR8ZExIKu2cFCg4IDR4PCREOBQcEBAIKDggNHg8JEQ4FCksmSwAAAAIAAAAAARoBBwAPABMAAAEjBxUXMxUjFTM1IzUzNzUHIzUzARD0CQlnOJY4ZwkS4eEBBwq7ChITExIKu7KpAAAGAAAAAAEsAPQAGQAzADcAOwBHAFMAADczMhYdARQGKwEiLwEmIg8BBisBIiY9ATQ2FyIGHQEeATsBMj8BNjIfARY7ATI2PQE0JiMHMxUjJTMVIycyFhQGKwEiJjQ2OwEyFhQGKwEiJjQ2M0uWFyEhFwcRDw8KFgoPDxEHFyEhFxAWARUQBwwJEA4iDhAJDAcQFhYQ4RMTARkTE58EBQUELwQFBQSWBAUFBC8EBQUE9CEXSxghCgoGBgoKIRhLFyETFg9LEBYGCwkJCwYWEEsPFjg4ODglBQgGBggFBQgGBggFAAAEAAAAAAEHARkABQARAB8AKQAAEwcXNzU0FScmIg8BDgEfATY1NxYdARQHNz4BPQE2JicHNxcHBiIvASY0t08oLIwCCAMNAwEEoQUOBAQ0BAQBBQToFh8bAggDDQMBEkgfITsGmmoCAwwDCQOUBQbhCQnPCQkZAggEpQQIAYEVHBUCAwwDCQAAAQAAAAABBwEaACoAADcGJyYvAQcGIi8BJjQ/AScmND8BNjIfATc+AR8BHgEdASM1Bxc1MxUUBgfMBgYDA2AqAggDDQMDJCQDAw0DCAIqYgQIBDIEBDxJST0FBCcDAwECWCACAwwDCQMhIgMJAwwDAiBZAwECGQEIBFxBODcuSQQIAgAABgAAAAABGgEaAAsAFwAjADAAOABAAAA3MzUzNSM1IxUjFTMXIxUjFTMVMzUzNSM3NSMVIxUzFTM1MzUHJiIPAQYUFjI/ATY0BwYiJjQ/ARc3Byc3NjIWFFITExMTExOWExISExMTHxMTExMSSggXCYwIEBgIjAiiAggGA3kOEwYNBgIIBs4TExMTE14SExMTE5YSEhMTExMuCAiNCBcRCYwIF54DBgcDeQ0TBg4GAgUIAAAABAAAAAABGQEaAAUACAAMABAAABMzFwcjJzcHMyc1IxU9ATMVjhB7CPYIg2vWXxgYARnmDQ3OyRMTEyZLSwAAAAMAAAAAAPQBGgAGABoAJwAANzM1IzUjFScOARQWFxUXMzc1PgE0Jic1JyMHFxQOASIuATQ+ATIeAY0lHBMcFhkZFgpLCRYZGRYJSwp6FCMoIxQUIygjFIMTLzhaDCwyLAwpCQkpDCwyLAwpCQl6FCMUFCMoIxQUIwAAAAADAAAAAADhARoAEQAZAB0AABM1IyIOARQeATsBFSMVMzUjNQcjIiY0NjsBFyM1M+FnEh4SEh4SHBNeEzgcFBsbFBwmExMBBxIRHyMeEl4SEs9eGyccz88ABQAAAAABLAD3AAcAHAAnADcAQwAANTMVITUzFSE3IzUjBiMiJjU0PwE0IyIHNTYzMhUPAQ4BFRQWMzI2NRcxFSM1MxUxNjMyFhUUBiInFRQWMzI2NTQmIgYTAQYT/tSAEAEKFRARIh8WEg8PFCQQGQwLCgkNED8REQwYFBYZKgsQDQ8REBwRXiYmODgQExENHQUEGgwRCSYPBAEICwcKEQ4bD5hDFBsYGh87Dg0SFxURExQAAwAAAAABGgEHAAcACwAPAAABIwcVFzM3NQcjNTM1IzUzARD0CQn0CRLh4eHhAQcKzgkJzsWEEiYAAAAABgAAAAABGgEaAB8ALwBFAFoAegCKAAA3JicmBwYPARU3PgEyFhcHDgIHBhYXFjMyNxUzNTQmBxUUBw4BJy4CPQE0PgEzNy4CIgcGBzUjFTM1FhcWMzI+AjQHFA4BBwYnLgI9AT4DFzYXHgEHPgEyFh8BNScmDgMUHgIyNj8BNQ8BBicuAjQ2NyM1MxcVByMXByc1NxcHM0kEBQkLBwYGBAQLCwUBEgcJBgEDBgkFBQsHEwMPAQIKBQICAQMEA2sBBgsOBQMCEhIDBgIEBwsHBBICBAIGBQIEAgECAwUDBgQBAl4DBggGAwcCCBIOCgUFCQ0OCgQCBgoGBgMFAwTcS1QJCXwnDjY2DiZy6wUCAwIBAwMUAwMFBgYCAQUHBAoSBAIJBzEHCx8FAwMGBQIBAgMCBAEDAhYGCwcEAgMudAUFAQEGDBAQBwcKBgEDAgIEBgQKBAgFAwEBBgIJYAMDAgIFFQEFAQYMDxEOCgYDAgERAgQBAgIGCAsJTRIJcQknDTYNNw4lAAADAAAAAAElAS0AJAA/AEwAABMyHgIXFhcWFxYzFRQOBA8BJy4FPQEyPgI3PgEXLgEnLgEiBgcOAQcVFB4EFz4FNS8BDwEvAQ8BHwI/AZcIDQ0MBwoLFRcMCwsTGR8hEQQFESIeGhMKCxgWFQoMGogVKRIJFhYVCRIpFgoRGBoeDxAdGxcSCTQICFEcCAgCJAQJBFsBLAIEBgQGBQgCAUoWJiMeGxcKAwMKFxseIycUTAEFCQYICDgBDAwGBgYGDAwBORIiIBsYFQkJFBkbICISGQcBYCcCBwczAgECawAAAAQAAAAAASUBLQAkAD8AaQBxAAATMh4CFxYXFhcyFxUUDgQPAScuBT0BFj4CNz4BFy4BJy4BIgYHDgEHFRQeBBc+BTUnHgEUDgEPAQ4BHQEHIyc1ND4BPwE+ATQmJyYiBw4BFQcjJzQ+ATc2FxYHNzMXFQcjJ5cIDQ0MBwoLFRYNCwsTGR8hEQUEESIeGhMKCxgWFQoMGogVKRIJFhYVCRIpFgoRGBoeDxAdGxcRCmAFBgUGBAYDAwMNAwUGBAYDAwMCBQ8FAgMDDQMGCgYODwYeAw0DAw0DASwCBAYEBgUIAgFKFiYjHhsXCgMDChcbHiMnFEwBAgUJBggIOAEMDAYGBgYMDAE5EiIgGxgVCQkUGRsgIhIZBgwOCwgDBgMGBAYDAwYHCwcDBgQGBwYDBQUDBgQCAggNCgIGBgNhAwMNAwMAAAMAAAAAASUBLQAkAD8AUwAAEzIeAhcWFxYXMhcVFA4EDwEnLgU9ARY+Ajc+ARcuAScuASIGBw4BBxUUHgQXPgU1LwEjBycjBxUXBxUXMzcXMzc1JzeXCA0NDAcKCxUWDQsLExkfIREFBBEiHhoTCgsYFhUKDBqIFSkSCRYWFQkSKRYKERgaHg8QHRsXEQpHBwQlJQQIJSUIBCUlBAclJQEsAgQGBAYFCAIBShYmIx4bFwoDAwoXGx4jJxRMAQIFCQYICDgBDAwGBgYGDAwBORIiIBsYFQkJFBkbICISCwgmJggEJSUECCYmCAQlJQAAAAMAAAAAARoBHgAOAB8AKwAANxYGBxcHJw4BLgE+AR4BBzI2Nwc+ATU0LgEiDgEUHgE3NSM1IxUjFTMVMzXiAQ0MUA5PHEg5Exw/RzBkER8MAQwOFycuJhcXJkUlEyYmE7kUJhBPDlAXAitFQiMMNYANDAEMHxEXJxcXJy0nF0sTJSUTJSUAAAADAAAAAAEaAR4ADgAfACMAADcWBgcXBycOAS4BPgEeAQcyNjcHPgE1NC4BIg4BFB4BJzMVI+IBDQxQDk8cSDkTHD9HMGQRHwwBDA4XJy4mFxcmGF1duRQmEE8OUBcCK0VCIww1gA0MAQwfERcnFxcnLScXXRIAAAAAABAAxgABAAAAAAABAAcAAAABAAAAAAACAAcABwABAAAAAAADAAcADgABAAAAAAAEAAcAFQABAAAAAAAFAAwAHAABAAAAAAAGAAcAKAABAAAAAAAKACQALwABAAAAAAALABMAUwADAAEECQABAA4AZgADAAEECQACAA4AdAADAAEECQADAA4AggADAAEECQAEAA4AkAADAAEECQAFABgAngADAAEECQAGAA4AtgADAAEECQAKAEgAxAADAAEECQALACYBDGNvZGljb25SZWd1bGFyY29kaWNvbmNvZGljb25WZXJzaW9uIDEuMTFjb2RpY29uVGhlIGljb24gZm9udCBmb3IgVmlzdWFsIFN0dWRpbyBDb2RlaHR0cDovL2ZvbnRlbGxvLmNvbQBjAG8AZABpAGMAbwBuAFIAZQBnAHUAbABhAHIAYwBvAGQAaQBjAG8AbgBjAG8AZABpAGMAbwBuAFYAZQByAHMAaQBvAG4AIAAxAC4AMQAxAGMAbwBkAGkAYwBvAG4AVABoAGUAIABpAGMAbwBuACAAZgBvAG4AdAAgAGYAbwByACAAVgBpAHMAdQBhAGwAIABTAHQAdQBkAGkAbwAgAEMAbwBkAGUAaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQACAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAckBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAF1AXYBdwF4AXkBegF7AXwBfQF+AX8BgAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AbgBuQG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAccByAHJAcoBywHMAc0BzgHPAdAB0QHSAdMB1AHVAdYB1wHYAdkB2gHbAdwB3QHeAd8B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAfQB9QH2AfcB+AH5AfoB+wH8Af0B/gH/AgACAQICAgMCBAIFAgYCBwIIAgkCCgILAgwCDQIOAg8CEAIRAhICEwIUAhUCFgIXAhgCGQIaAhsCHAIdAh4CHwIgAiECIgIjAiQCJQImAicCKAIpAioCKwIsAi0CLgIvAjACMQIyAjMCNAI1AjYCNwI4AjkCOgI7AjwCPQI+Aj8CQAJBAkICQwJEAkUCRgJHAkgCSQJKAksCTAJNAk4CTwJQAlECUgJTAlQCVQJWAlcCWAJZAloCWwJcAl0CXgJfAmACYQJiAmMCZAJlAmYCZwJoAmkCagJrAmwCbQJuAm8CcAJxAnICcwJ0AnUCdgJ3AngCeQJ6AnsCfAJ9An4CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCmgKbApwCnQKeAp8CoAKhAqICowKkAqUCpgKnAqgCqQKqAqsCrAKtAq4CrwKwArECsgKzArQCtQK2ArcCuAK5AroCuwK8Ar0CvgK/AsACwQLCAsMCxALFAsYCxwLIAskCygAHYWNjb3VudBRhY3RpdmF0ZS1icmVha3BvaW50cwNhZGQHYXJjaGl2ZQphcnJvdy1ib3RoEWFycm93LWNpcmNsZS1kb3duEWFycm93LWNpcmNsZS1sZWZ0EmFycm93LWNpcmNsZS1yaWdodA9hcnJvdy1jaXJjbGUtdXAKYXJyb3ctZG93bgphcnJvdy1sZWZ0C2Fycm93LXJpZ2h0EGFycm93LXNtYWxsLWRvd24QYXJyb3ctc21hbGwtbGVmdBFhcnJvdy1zbWFsbC1yaWdodA5hcnJvdy1zbWFsbC11cAphcnJvdy1zd2FwCGFycm93LXVwDGF6dXJlLWRldm9wcwVhenVyZQtiZWFrZXItc3RvcAZiZWFrZXIIYmVsbC1kb3QOYmVsbC1zbGFzaC1kb3QKYmVsbC1zbGFzaARiZWxsBWJsYW5rBGJvbGQEYm9vawhib29rbWFyawticmFja2V0LWRvdA1icmFja2V0LWVycm9yCWJyaWVmY2FzZQlicm9hZGNhc3QHYnJvd3NlcgNidWcIY2FsZW5kYXINY2FsbC1pbmNvbWluZw1jYWxsLW91dGdvaW5nDmNhc2Utc2Vuc2l0aXZlCWNoZWNrLWFsbAVjaGVjawljaGVja2xpc3QMY2hldnJvbi1kb3duDGNoZXZyb24tbGVmdA1jaGV2cm9uLXJpZ2h0CmNoZXZyb24tdXAEY2hpcAxjaHJvbWUtY2xvc2UPY2hyb21lLW1heGltaXplD2Nocm9tZS1taW5pbWl6ZQ5jaHJvbWUtcmVzdG9yZQ1jaXJjbGUtZmlsbGVkE2NpcmNsZS1sYXJnZS1maWxsZWQMY2lyY2xlLWxhcmdlDGNpcmNsZS1zbGFzaBNjaXJjbGUtc21hbGwtZmlsbGVkDGNpcmNsZS1zbWFsbAZjaXJjbGUNY2lyY3VpdC1ib2FyZAljbGVhci1hbGwGY2xpcHB5CWNsb3NlLWFsbAVjbG9zZQ5jbG91ZC1kb3dubG9hZAxjbG91ZC11cGxvYWQFY2xvdWQIY29kZS1vc3MEY29kZQZjb2ZmZWUMY29sbGFwc2UtYWxsCmNvbG9yLW1vZGUHY29tYmluZRJjb21tZW50LWRpc2N1c3Npb24NY29tbWVudC1kcmFmdBJjb21tZW50LXVucmVzb2x2ZWQHY29tbWVudA5jb21wYXNzLWFjdGl2ZQtjb21wYXNzLWRvdAdjb21wYXNzB2NvcGlsb3QEY29weQhjb3ZlcmFnZQtjcmVkaXQtY2FyZARkYXNoCWRhc2hib2FyZAhkYXRhYmFzZQlkZWJ1Zy1hbGwPZGVidWctYWx0LXNtYWxsCWRlYnVnLWFsdCdkZWJ1Zy1icmVha3BvaW50LWNvbmRpdGlvbmFsLXVudmVyaWZpZWQcZGVidWctYnJlYWtwb2ludC1jb25kaXRpb25hbCBkZWJ1Zy1icmVha3BvaW50LWRhdGEtdW52ZXJpZmllZBVkZWJ1Zy1icmVha3BvaW50LWRhdGEkZGVidWctYnJlYWtwb2ludC1mdW5jdGlvbi11bnZlcmlmaWVkGWRlYnVnLWJyZWFrcG9pbnQtZnVuY3Rpb24fZGVidWctYnJlYWtwb2ludC1sb2ctdW52ZXJpZmllZBRkZWJ1Zy1icmVha3BvaW50LWxvZxxkZWJ1Zy1icmVha3BvaW50LXVuc3VwcG9ydGVkDWRlYnVnLWNvbnNvbGUUZGVidWctY29udGludWUtc21hbGwOZGVidWctY29udGludWUOZGVidWctY292ZXJhZ2UQZGVidWctZGlzY29ubmVjdBJkZWJ1Zy1saW5lLWJ5LWxpbmULZGVidWctcGF1c2ULZGVidWctcmVydW4TZGVidWctcmVzdGFydC1mcmFtZQ1kZWJ1Zy1yZXN0YXJ0FmRlYnVnLXJldmVyc2UtY29udGludWUXZGVidWctc3RhY2tmcmFtZS1hY3RpdmUQZGVidWctc3RhY2tmcmFtZQtkZWJ1Zy1zdGFydA9kZWJ1Zy1zdGVwLWJhY2sPZGVidWctc3RlcC1pbnRvDmRlYnVnLXN0ZXAtb3V0D2RlYnVnLXN0ZXAtb3ZlcgpkZWJ1Zy1zdG9wBWRlYnVnEGRlc2t0b3AtZG93bmxvYWQTZGV2aWNlLWNhbWVyYS12aWRlbw1kZXZpY2UtY2FtZXJhDWRldmljZS1tb2JpbGUKZGlmZi1hZGRlZAxkaWZmLWlnbm9yZWQNZGlmZi1tb2RpZmllZA1kaWZmLW11bHRpcGxlDGRpZmYtcmVtb3ZlZAxkaWZmLXJlbmFtZWQLZGlmZi1zaW5nbGUEZGlmZgdkaXNjYXJkBGVkaXQNZWRpdG9yLWxheW91dAhlbGxpcHNpcwxlbXB0eS13aW5kb3cLZXJyb3Itc21hbGwFZXJyb3IHZXhjbHVkZQpleHBhbmQtYWxsBmV4cG9ydApleHRlbnNpb25zCmV5ZS1jbG9zZWQDZXllCGZlZWRiYWNrC2ZpbGUtYmluYXJ5CWZpbGUtY29kZQpmaWxlLW1lZGlhCGZpbGUtcGRmDmZpbGUtc3VibW9kdWxlFmZpbGUtc3ltbGluay1kaXJlY3RvcnkRZmlsZS1zeW1saW5rLWZpbGUIZmlsZS16aXAEZmlsZQVmaWxlcw1maWx0ZXItZmlsbGVkBmZpbHRlcgVmbGFtZQlmb2xkLWRvd24HZm9sZC11cARmb2xkDWZvbGRlci1hY3RpdmUOZm9sZGVyLWxpYnJhcnkNZm9sZGVyLW9wZW5lZAZmb2xkZXIEZ2FtZQRnZWFyBGdpZnQLZ2lzdC1zZWNyZXQKZ2l0LWNvbW1pdAtnaXQtY29tcGFyZQlnaXQtZmV0Y2gJZ2l0LW1lcmdlF2dpdC1wdWxsLXJlcXVlc3QtY2xvc2VkF2dpdC1wdWxsLXJlcXVlc3QtY3JlYXRlFmdpdC1wdWxsLXJlcXVlc3QtZHJhZnQeZ2l0LXB1bGwtcmVxdWVzdC1nby10by1jaGFuZ2VzHGdpdC1wdWxsLXJlcXVlc3QtbmV3LWNoYW5nZXMQZ2l0LXB1bGwtcmVxdWVzdA9naXQtc3Rhc2gtYXBwbHkNZ2l0LXN0YXNoLXBvcAlnaXQtc3Rhc2gNZ2l0aHViLWFjdGlvbgpnaXRodWItYWx0D2dpdGh1Yi1pbnZlcnRlZA5naXRodWItcHJvamVjdAZnaXRodWIFZ2xvYmUKZ28tdG8tZmlsZQdncmFiYmVyCmdyYXBoLWxlZnQKZ3JhcGgtbGluZQ1ncmFwaC1zY2F0dGVyBWdyYXBoB2dyaXBwZXIRZ3JvdXAtYnktcmVmLXR5cGUMaGVhcnQtZmlsbGVkBWhlYXJ0B2hpc3RvcnkEaG9tZQ9ob3Jpem9udGFsLXJ1bGUFaHVib3QFaW5ib3gGaW5kZW50BGluZm8GaW5zZXJ0B2luc3BlY3QLaXNzdWUtZHJhZnQOaXNzdWUtcmVvcGVuZWQGaXNzdWVzBml0YWxpYwZqZXJzZXkEanNvbg5rZWJhYi12ZXJ0aWNhbANrZXkDbGF3DWxheWVycy1hY3RpdmUKbGF5ZXJzLWRvdAZsYXllcnMXbGF5b3V0LWFjdGl2aXR5YmFyLWxlZnQYbGF5b3V0LWFjdGl2aXR5YmFyLXJpZ2h0D2xheW91dC1jZW50ZXJlZA5sYXlvdXQtbWVudWJhchNsYXlvdXQtcGFuZWwtY2VudGVyFGxheW91dC1wYW5lbC1qdXN0aWZ5EWxheW91dC1wYW5lbC1sZWZ0EGxheW91dC1wYW5lbC1vZmYSbGF5b3V0LXBhbmVsLXJpZ2h0DGxheW91dC1wYW5lbBdsYXlvdXQtc2lkZWJhci1sZWZ0LW9mZhNsYXlvdXQtc2lkZWJhci1sZWZ0GGxheW91dC1zaWRlYmFyLXJpZ2h0LW9mZhRsYXlvdXQtc2lkZWJhci1yaWdodBBsYXlvdXQtc3RhdHVzYmFyBmxheW91dAdsaWJyYXJ5EWxpZ2h0YnVsYi1hdXRvZml4EWxpZ2h0YnVsYi1zcGFya2xlCWxpZ2h0YnVsYg1saW5rLWV4dGVybmFsBGxpbmsLbGlzdC1maWx0ZXIJbGlzdC1mbGF0DGxpc3Qtb3JkZXJlZA5saXN0LXNlbGVjdGlvbglsaXN0LXRyZWUObGlzdC11bm9yZGVyZWQKbGl2ZS1zaGFyZQdsb2FkaW5nCGxvY2F0aW9uCmxvY2stc21hbGwEbG9jawZtYWduZXQJbWFpbC1yZWFkBG1haWwKbWFwLWZpbGxlZANtYXAIbWFya2Rvd24JbWVnYXBob25lB21lbnRpb24EbWVudQVtZXJnZQptaWMtZmlsbGVkA21pYwltaWxlc3RvbmUGbWlycm9yDG1vcnRhci1ib2FyZARtb3ZlEG11bHRpcGxlLXdpbmRvd3MFbXVzaWMEbXV0ZQhuZXctZmlsZQpuZXctZm9sZGVyB25ld2xpbmUKbm8tbmV3bGluZQRub3RlEW5vdGVib29rLXRlbXBsYXRlCG5vdGVib29rCG9jdG9mYWNlDG9wZW4tcHJldmlldwxvcmdhbml6YXRpb24Gb3V0cHV0B3BhY2thZ2UIcGFpbnRjYW4LcGFzcy1maWxsZWQEcGFzcwpwZXJzb24tYWRkBnBlcnNvbgVwaWFubwlwaWUtY2hhcnQDcGluDHBpbm5lZC1kaXJ0eQZwaW5uZWQLcGxheS1jaXJjbGUEcGxheQRwbHVnDXByZXNlcnZlLWNhc2UHcHJldmlldxBwcmltaXRpdmUtc3F1YXJlB3Byb2plY3QFcHVsc2UIcXVlc3Rpb24FcXVvdGULcmFkaW8tdG93ZXIJcmVhY3Rpb25zC3JlY29yZC1rZXlzDHJlY29yZC1zbWFsbAZyZWNvcmQEcmVkbwpyZWZlcmVuY2VzB3JlZnJlc2gFcmVnZXgPcmVtb3RlLWV4cGxvcmVyBnJlbW90ZQZyZW1vdmULcmVwbGFjZS1hbGwHcmVwbGFjZQVyZXBseQpyZXBvLWNsb25lCnJlcG8tZmV0Y2gPcmVwby1mb3JjZS1wdXNoC3JlcG8tZm9ya2VkCXJlcG8tcHVsbAlyZXBvLXB1c2gEcmVwbwZyZXBvcnQPcmVxdWVzdC1jaGFuZ2VzBXJvYm90BnJvY2tldBJyb290LWZvbGRlci1vcGVuZWQLcm9vdC1mb2xkZXIDcnNzBHJ1YnkJcnVuLWFib3ZlEHJ1bi1hbGwtY292ZXJhZ2UHcnVuLWFsbAlydW4tYmVsb3cMcnVuLWNvdmVyYWdlCnJ1bi1lcnJvcnMIc2F2ZS1hbGwHc2F2ZS1hcwRzYXZlC3NjcmVlbi1mdWxsDXNjcmVlbi1ub3JtYWwMc2VhcmNoLWZ1enp5C3NlYXJjaC1zdG9wBnNlYXJjaARzZW5kEnNlcnZlci1lbnZpcm9ubWVudA5zZXJ2ZXItcHJvY2VzcwZzZXJ2ZXINc2V0dGluZ3MtZ2VhcghzZXR0aW5ncwVzaGFyZQZzaGllbGQHc2lnbi1pbghzaWduLW91dAZzbWlsZXkFc25ha2UPc29ydC1wcmVjZWRlbmNlDnNvdXJjZS1jb250cm9sDnNwYXJrbGUtZmlsbGVkB3NwYXJrbGUQc3BsaXQtaG9yaXpvbnRhbA5zcGxpdC12ZXJ0aWNhbAhzcXVpcnJlbApzdGFyLWVtcHR5CXN0YXItZnVsbAlzdGFyLWhhbGYLc3RvcC1jaXJjbGUNc3Vycm91bmQtd2l0aAxzeW1ib2wtYXJyYXkOc3ltYm9sLWJvb2xlYW4Mc3ltYm9sLWNsYXNzDHN5bWJvbC1jb2xvcg9zeW1ib2wtY29uc3RhbnQSc3ltYm9sLWVudW0tbWVtYmVyC3N5bWJvbC1lbnVtDHN5bWJvbC1ldmVudAxzeW1ib2wtZmllbGQLc3ltYm9sLWZpbGUQc3ltYm9sLWludGVyZmFjZQpzeW1ib2wta2V5DnN5bWJvbC1rZXl3b3JkDXN5bWJvbC1tZXRob2QLc3ltYm9sLW1pc2MQc3ltYm9sLW5hbWVzcGFjZQ5zeW1ib2wtbnVtZXJpYw9zeW1ib2wtb3BlcmF0b3IQc3ltYm9sLXBhcmFtZXRlcg9zeW1ib2wtcHJvcGVydHkMc3ltYm9sLXJ1bGVyDnN5bWJvbC1zbmlwcGV0DXN5bWJvbC1zdHJpbmcQc3ltYm9sLXN0cnVjdHVyZQ9zeW1ib2wtdmFyaWFibGUMc3luYy1pZ25vcmVkBHN5bmMFdGFibGUDdGFnBnRhcmdldAh0YXNrbGlzdAl0ZWxlc2NvcGUNdGVybWluYWwtYmFzaAx0ZXJtaW5hbC1jbWQPdGVybWluYWwtZGViaWFuDnRlcm1pbmFsLWxpbnV4E3Rlcm1pbmFsLXBvd2Vyc2hlbGwNdGVybWluYWwtdG11eA90ZXJtaW5hbC11YnVudHUIdGVybWluYWwJdGV4dC1zaXplCnRocmVlLWJhcnMRdGh1bWJzZG93bi1maWxsZWQKdGh1bWJzZG93bg90aHVtYnN1cC1maWxsZWQIdGh1bWJzdXAFdG9vbHMFdHJhc2gNdHJpYW5nbGUtZG93bg10cmlhbmdsZS1sZWZ0DnRyaWFuZ2xlLXJpZ2h0C3RyaWFuZ2xlLXVwB3R3aXR0ZXISdHlwZS1oaWVyYXJjaHktc3ViFHR5cGUtaGllcmFyY2h5LXN1cGVyDnR5cGUtaGllcmFyY2h5BnVuZm9sZBN1bmdyb3VwLWJ5LXJlZi10eXBlBnVubG9jawZ1bm11dGUKdW52ZXJpZmllZA52YXJpYWJsZS1ncm91cA92ZXJpZmllZC1maWxsZWQIdmVyaWZpZWQIdmVyc2lvbnMJdm0tYWN0aXZlCnZtLWNvbm5lY3QKdm0tb3V0bGluZQp2bS1ydW5uaW5nAnZtAnZyD3ZzY29kZS1pbnNpZGVycwZ2c2NvZGUEd2FuZAd3YXJuaW5nBXdhdGNoCndoaXRlc3BhY2UKd2hvbGUtd29yZAZ3aW5kb3cJd29yZC13cmFwEXdvcmtzcGFjZS10cnVzdGVkEXdvcmtzcGFjZS11bmtub3duE3dvcmtzcGFjZS11bnRydXN0ZWQHem9vbS1pbgh6b29tLW91dAAAAAA=) format("truetype")}.codicon[class*=codicon-]{font: 16px/1 codicon;display:inline-block;text-decoration:none;text-rendering:auto;text-align:center;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none}.codicon-wrench-subaction{opacity:.5}@keyframes codicon-spin{to{transform:rotate(360deg)}}.codicon-sync.codicon-modifier-spin,.codicon-loading.codicon-modifier-spin,.codicon-gear.codicon-modifier-spin,.codicon-notebook-state-executing.codicon-modifier-spin{animation:codicon-spin 1.5s steps(30) infinite}.codicon-modifier-disabled{opacity:.4}.codicon-loading,.codicon-tree-item-loading:before{animation-duration:1s!important;animation-timing-function:cubic-bezier(.53,.21,.29,.67)!important}.monaco-editor .codicon.codicon-symbol-array,.monaco-workbench .codicon.codicon-symbol-array{color:var(--vscode-symbolIcon-arrayForeground)}.monaco-editor .codicon.codicon-symbol-boolean,.monaco-workbench .codicon.codicon-symbol-boolean{color:var(--vscode-symbolIcon-booleanForeground)}.monaco-editor .codicon.codicon-symbol-class,.monaco-workbench .codicon.codicon-symbol-class{color:var(--vscode-symbolIcon-classForeground)}.monaco-editor .codicon.codicon-symbol-method,.monaco-workbench .codicon.codicon-symbol-method{color:var(--vscode-symbolIcon-methodForeground)}.monaco-editor .codicon.codicon-symbol-color,.monaco-workbench .codicon.codicon-symbol-color{color:var(--vscode-symbolIcon-colorForeground)}.monaco-editor .codicon.codicon-symbol-constant,.monaco-workbench .codicon.codicon-symbol-constant{color:var(--vscode-symbolIcon-constantForeground)}.monaco-editor .codicon.codicon-symbol-constructor,.monaco-workbench .codicon.codicon-symbol-constructor{color:var(--vscode-symbolIcon-constructorForeground)}.monaco-editor .codicon.codicon-symbol-value,.monaco-workbench .codicon.codicon-symbol-value,.monaco-editor .codicon.codicon-symbol-enum,.monaco-workbench .codicon.codicon-symbol-enum{color:var(--vscode-symbolIcon-enumeratorForeground)}.monaco-editor .codicon.codicon-symbol-enum-member,.monaco-workbench .codicon.codicon-symbol-enum-member{color:var(--vscode-symbolIcon-enumeratorMemberForeground)}.monaco-editor .codicon.codicon-symbol-event,.monaco-workbench .codicon.codicon-symbol-event{color:var(--vscode-symbolIcon-eventForeground)}.monaco-editor .codicon.codicon-symbol-field,.monaco-workbench .codicon.codicon-symbol-field{color:var(--vscode-symbolIcon-fieldForeground)}.monaco-editor .codicon.codicon-symbol-file,.monaco-workbench .codicon.codicon-symbol-file{color:var(--vscode-symbolIcon-fileForeground)}.monaco-editor .codicon.codicon-symbol-folder,.monaco-workbench .codicon.codicon-symbol-folder{color:var(--vscode-symbolIcon-folderForeground)}.monaco-editor .codicon.codicon-symbol-function,.monaco-workbench .codicon.codicon-symbol-function{color:var(--vscode-symbolIcon-functionForeground)}.monaco-editor .codicon.codicon-symbol-interface,.monaco-workbench .codicon.codicon-symbol-interface{color:var(--vscode-symbolIcon-interfaceForeground)}.monaco-editor .codicon.codicon-symbol-key,.monaco-workbench .codicon.codicon-symbol-key{color:var(--vscode-symbolIcon-keyForeground)}.monaco-editor .codicon.codicon-symbol-keyword,.monaco-workbench .codicon.codicon-symbol-keyword{color:var(--vscode-symbolIcon-keywordForeground)}.monaco-editor .codicon.codicon-symbol-module,.monaco-workbench .codicon.codicon-symbol-module{color:var(--vscode-symbolIcon-moduleForeground)}.monaco-editor .codicon.codicon-symbol-namespace,.monaco-workbench .codicon.codicon-symbol-namespace{color:var(--vscode-symbolIcon-namespaceForeground)}.monaco-editor .codicon.codicon-symbol-null,.monaco-workbench .codicon.codicon-symbol-null{color:var(--vscode-symbolIcon-nullForeground)}.monaco-editor .codicon.codicon-symbol-number,.monaco-workbench .codicon.codicon-symbol-number{color:var(--vscode-symbolIcon-numberForeground)}.monaco-editor .codicon.codicon-symbol-object,.monaco-workbench .codicon.codicon-symbol-object{color:var(--vscode-symbolIcon-objectForeground)}.monaco-editor .codicon.codicon-symbol-operator,.monaco-workbench .codicon.codicon-symbol-operator{color:var(--vscode-symbolIcon-operatorForeground)}.monaco-editor .codicon.codicon-symbol-package,.monaco-workbench .codicon.codicon-symbol-package{color:var(--vscode-symbolIcon-packageForeground)}.monaco-editor .codicon.codicon-symbol-property,.monaco-workbench .codicon.codicon-symbol-property{color:var(--vscode-symbolIcon-propertyForeground)}.monaco-editor .codicon.codicon-symbol-reference,.monaco-workbench .codicon.codicon-symbol-reference{color:var(--vscode-symbolIcon-referenceForeground)}.monaco-editor .codicon.codicon-symbol-snippet,.monaco-workbench .codicon.codicon-symbol-snippet{color:var(--vscode-symbolIcon-snippetForeground)}.monaco-editor .codicon.codicon-symbol-string,.monaco-workbench .codicon.codicon-symbol-string{color:var(--vscode-symbolIcon-stringForeground)}.monaco-editor .codicon.codicon-symbol-struct,.monaco-workbench .codicon.codicon-symbol-struct{color:var(--vscode-symbolIcon-structForeground)}.monaco-editor .codicon.codicon-symbol-text,.monaco-workbench .codicon.codicon-symbol-text{color:var(--vscode-symbolIcon-textForeground)}.monaco-editor .codicon.codicon-symbol-type-parameter,.monaco-workbench .codicon.codicon-symbol-type-parameter{color:var(--vscode-symbolIcon-typeParameterForeground)}.monaco-editor .codicon.codicon-symbol-unit,.monaco-workbench .codicon.codicon-symbol-unit{color:var(--vscode-symbolIcon-unitForeground)}.monaco-editor .codicon.codicon-symbol-variable,.monaco-workbench .codicon.codicon-symbol-variable{color:var(--vscode-symbolIcon-variableForeground)}.monaco-editor .lightBulbWidget{display:flex;align-items:center;justify-content:center}.monaco-editor .lightBulbWidget:hover{cursor:pointer}.monaco-editor .lightBulbWidget.codicon-light-bulb,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle{color:var(--vscode-editorLightBulb-foreground)}.monaco-editor .lightBulbWidget.codicon-lightbulb-autofix,.monaco-editor .lightBulbWidget.codicon-lightbulb-sparkle-autofix{color:var(--vscode-editorLightBulbAutoFix-foreground, var(--vscode-editorLightBulb-foreground))}.monaco-editor .lightBulbWidget.codicon-sparkle-filled{color:var(--vscode-editorLightBulbAi-foreground, var(--vscode-icon-foreground))}.monaco-editor .lightBulbWidget:before{position:relative;z-index:2}.monaco-editor .lightBulbWidget:after{position:absolute;top:0;left:0;content:"";display:block;width:100%;height:100%;opacity:.3;background-color:var(--vscode-editor-background);z-index:1}.action-widget{font-size:13px;min-width:160px;max-width:80vw;z-index:40;display:block;width:100%;border:1px solid var(--vscode-editorWidget-border)!important;border-radius:2px;background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground)}.context-view-block{position:fixed;cursor:initial;left:0;top:0;width:100%;height:100%;z-index:-1}.context-view-pointerBlock{position:fixed;cursor:initial;left:0;top:0;width:100%;height:100%;z-index:2}.action-widget .monaco-list{user-select:none;-webkit-user-select:none;border:none!important;border-width:0!important}.action-widget .monaco-list:focus:before{outline:0!important}.action-widget .monaco-list .monaco-scrollable-element{overflow:visible}.action-widget .monaco-list .monaco-list-row{padding:0 10px;white-space:nowrap;cursor:pointer;touch-action:none;width:100%}.action-widget .monaco-list .monaco-list-row.action.focused:not(.option-disabled){background-color:var(--vscode-quickInputList-focusBackground)!important;color:var(--vscode-quickInputList-focusForeground);outline:1px solid var(--vscode-menu-selectionBorder, transparent);outline-offset:-1px}.action-widget .monaco-list-row.group-header{color:var(--vscode-descriptionForeground)!important;font-weight:600}.action-widget .monaco-list .group-header,.action-widget .monaco-list .option-disabled,.action-widget .monaco-list .option-disabled:before,.action-widget .monaco-list .option-disabled .focused,.action-widget .monaco-list .option-disabled .focused:before{cursor:default!important;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background-color:transparent!important;outline:0 solid!important}.action-widget .monaco-list-row.action{display:flex;gap:6px;align-items:center}.action-widget .monaco-list-row.action.option-disabled,.action-widget .monaco-list:focus .monaco-list-row.focused.action.option-disabled,.action-widget .monaco-list-row.action.option-disabled .codicon,.action-widget .monaco-list:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused).option-disabled{color:var(--vscode-disabledForeground)}.action-widget .monaco-list-row.action:not(.option-disabled) .codicon{color:inherit}.action-widget .monaco-list-row.action .title{flex:1;overflow:hidden;text-overflow:ellipsis}.action-widget .monaco-list-row.action .monaco-keybinding>.monaco-keybinding-key{background-color:var(--vscode-keybindingLabel-background);color:var(--vscode-keybindingLabel-foreground);border-style:solid;border-width:1px;border-radius:3px;border-color:var(--vscode-keybindingLabel-border);border-bottom-color:var(--vscode-keybindingLabel-bottomBorder);box-shadow:inset 0 -1px 0 var(--vscode-widget-shadow)}.action-widget .action-widget-action-bar{background-color:var(--vscode-editorHoverWidget-statusBarBackground);border-top:1px solid var(--vscode-editorHoverWidget-border)}.action-widget .action-widget-action-bar:before{display:block;content:"";width:100%}.action-widget .action-widget-action-bar .actions-container{padding:0 8px}.action-widget-action-bar .action-label{color:var(--vscode-textLink-activeForeground);font-size:12px;line-height:22px;padding:0;pointer-events:all}.action-widget-action-bar .action-item{margin-right:16px;pointer-events:none}.action-widget-action-bar .action-label:hover{background-color:transparent!important}.monaco-action-bar .actions-container.highlight-toggled .action-label.checked{background:var(--vscode-actionBar-toggledBackground)!important}.monaco-keybinding{display:flex;align-items:center;line-height:10px}.monaco-keybinding>.monaco-keybinding-key{display:inline-block;border-style:solid;border-width:1px;border-radius:3px;vertical-align:middle;font-size:11px;padding:3px 5px;margin:0 2px}.monaco-keybinding>.monaco-keybinding-key:first-child{margin-left:0}.monaco-keybinding>.monaco-keybinding-key:last-child{margin-right:0}.monaco-keybinding>.monaco-keybinding-key-separator{display:inline-block}.monaco-keybinding>.monaco-keybinding-key-chord-separator{width:6px}.monaco-editor .codelens-decoration{overflow:hidden;display:inline-block;text-overflow:ellipsis;white-space:nowrap;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize);padding-right:calc(var(--vscode-editorCodeLens-fontSize)*.5);font-feature-settings:var(--vscode-editorCodeLens-fontFeatureSettings);font-family:var(--vscode-editorCodeLens-fontFamily),var(--vscode-editorCodeLens-fontFamilyDefault)}.monaco-editor .codelens-decoration>span,.monaco-editor .codelens-decoration>a{user-select:none;-webkit-user-select:none;white-space:nowrap;vertical-align:sub}.monaco-editor .codelens-decoration>a{text-decoration:none}.monaco-editor .codelens-decoration>a:hover{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration>a:hover .codicon{color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .codelens-decoration .codicon{vertical-align:middle;color:currentColor!important;color:var(--vscode-editorCodeLens-foreground);line-height:var(--vscode-editorCodeLens-lineHeight);font-size:var(--vscode-editorCodeLens-fontSize)}.monaco-editor .codelens-decoration>a:hover .codicon:before{cursor:pointer}@keyframes fadein{0%{opacity:0;visibility:visible}to{opacity:1}}.monaco-editor .codelens-decoration.fadein{animation:fadein .1s linear}.colorpicker-widget{height:190px;user-select:none;-webkit-user-select:none}.colorpicker-color-decoration,.hc-light .colorpicker-color-decoration{border:solid .1em #000;box-sizing:border-box;margin:.1em .2em 0;width:.8em;height:.8em;line-height:.8em;display:inline-block;cursor:pointer}.hc-black .colorpicker-color-decoration,.vs-dark .colorpicker-color-decoration{border:solid .1em #eee}.colorpicker-header{display:flex;height:24px;position:relative;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-header .picked-color{width:240px;display:flex;align-items:center;justify-content:center;line-height:24px;cursor:pointer;color:#fff;flex:1;white-space:nowrap;overflow:hidden}.colorpicker-header .picked-color .picked-color-presentation{white-space:nowrap;margin-left:5px;margin-right:5px}.colorpicker-header .picked-color .codicon{color:inherit;font-size:14px}.colorpicker-header .picked-color.light{color:#000}.colorpicker-header .original-color{width:74px;z-index:inherit;cursor:pointer}.standalone-colorpicker{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header.standalone-colorpicker{border-bottom:none}.colorpicker-header .close-button{cursor:pointer;background-color:var(--vscode-editorHoverWidget-background);border-left:1px solid var(--vscode-editorHoverWidget-border)}.colorpicker-header .close-button-inner-div{width:100%;height:100%;text-align:center}.colorpicker-header .close-button-inner-div:hover{background-color:var(--vscode-toolbar-hoverBackground)}.colorpicker-header .close-icon{padding:3px}.colorpicker-body{display:flex;padding:8px;position:relative}.colorpicker-body .saturation-wrap{overflow:hidden;height:150px;position:relative;min-width:220px;flex:1}.colorpicker-body .saturation-box{height:150px;position:absolute}.colorpicker-body .saturation-selection{width:9px;height:9px;margin:-5px 0 0 -5px;border:1px solid rgb(255,255,255);border-radius:100%;box-shadow:0 0 2px #000c;position:absolute}.colorpicker-body .strip{width:25px;height:150px}.colorpicker-body .standalone-strip{width:25px;height:122px}.colorpicker-body .hue-strip{position:relative;margin-left:8px;cursor:grab;background:linear-gradient(to bottom,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.colorpicker-body .opacity-strip{position:relative;margin-left:8px;cursor:grab;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTZEaa/1AAAAHUlEQVQYV2PYvXu3JAi7uLiAMaYAjAGTQBPYLQkAa/0Zef3qRswAAAAASUVORK5CYII=);background-size:9px 9px;image-rendering:pixelated}.colorpicker-body .strip.grabbing{cursor:grabbing}.colorpicker-body .slider{position:absolute;top:0;left:-2px;width:calc(100% + 4px);height:4px;box-sizing:border-box;border:1px solid rgba(255,255,255,.71);box-shadow:0 0 1px #000000d9}.colorpicker-body .strip .overlay{height:150px;pointer-events:none}.colorpicker-body .standalone-strip .standalone-overlay{height:122px;pointer-events:none}.standalone-colorpicker-body{display:block;border:1px solid transparent;border-bottom:1px solid var(--vscode-editorHoverWidget-border);overflow:hidden}.colorpicker-body .insert-button{position:absolute;height:20px;width:58px;padding:0;right:8px;bottom:8px;background:var(--vscode-button-background);color:var(--vscode-button-foreground);border-radius:2px;border:none;cursor:pointer}.colorpicker-body .insert-button:hover{background:var(--vscode-button-hoverBackground)}.monaco-editor .goto-definition-link{text-decoration:underline;cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .peekview-widget .head{box-sizing:border-box;display:flex;justify-content:space-between;flex-wrap:nowrap}.monaco-editor .peekview-widget .head .peekview-title{display:flex;align-items:baseline;font-size:13px;margin-left:20px;min-width:0;text-overflow:ellipsis;overflow:hidden}.monaco-editor .peekview-widget .head .peekview-title.clickable{cursor:pointer}.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty){font-size:.9em;margin-left:.5em}.monaco-editor .peekview-widget .head .peekview-title .meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monaco-editor .peekview-widget .head .peekview-title .dirname,.monaco-editor .peekview-widget .head .peekview-title .filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .peekview-widget .head .peekview-title .meta:not(:empty):before{content:"-";padding:0 .3em}.monaco-editor .peekview-widget .head .peekview-actions{flex:1;text-align:right;padding-right:2px}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar{display:inline-block}.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar,.monaco-editor .peekview-widget .head .peekview-actions>.monaco-action-bar>.actions-container{height:100%}.monaco-editor .peekview-widget>.body{border-top:1px solid;position:relative}.monaco-editor .peekview-widget .head .peekview-title .codicon{margin-right:4px;align-self:center}.monaco-editor .peekview-widget .monaco-list .monaco-list-row.focused .codicon{color:inherit!important}.monaco-editor .zone-widget{position:absolute;z-index:10}.monaco-editor .zone-widget .zone-widget-container{border-top-style:solid;border-bottom-style:solid;border-top-width:0;border-bottom-width:0;position:relative}.monaco-dropdown{height:100%;padding:0}.monaco-dropdown>.dropdown-label{cursor:pointer;height:100%;display:flex;align-items:center;justify-content:center}.monaco-dropdown>.dropdown-label>.action-label.disabled{cursor:default}.monaco-dropdown-with-primary{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-primary>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-primary>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:center center;background-repeat:no-repeat}.monaco-action-bar .action-item.menu-entry .action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-dropdown-with-default{display:flex!important;flex-direction:row;border-radius:5px}.monaco-dropdown-with-default>.action-container>.action-label{margin-right:0}.monaco-dropdown-with-default>.action-container.menu-entry>.action-label.icon{width:16px;height:16px;background-repeat:no-repeat;background-position:50%;background-size:16px}.monaco-dropdown-with-default:hover{background-color:var(--vscode-toolbar-hoverBackground)}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label .codicon[class*=codicon-]{font-size:12px;padding-left:0;padding-right:0;line-height:16px;margin-left:-3px}.monaco-dropdown-with-default>.dropdown-action-container>.monaco-dropdown>.dropdown-label>.action-label{display:block;background-size:16px;background-position:center center;background-repeat:no-repeat}.monaco-split-view2{position:relative;width:100%;height:100%}.monaco-split-view2>.sash-container{position:absolute;width:100%;height:100%;pointer-events:none}.monaco-split-view2>.sash-container>.monaco-sash{pointer-events:initial}.monaco-split-view2>.monaco-scrollable-element{width:100%;height:100%}.monaco-split-view2>.monaco-scrollable-element>.split-view-container{width:100%;height:100%;white-space:nowrap;position:relative}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view{white-space:initial;position:absolute}.monaco-split-view2>.monaco-scrollable-element>.split-view-container>.split-view-view:not(.visible){display:none}.monaco-split-view2.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view{width:100%}.monaco-split-view2.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view{height:100%}.monaco-split-view2.separator-border>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{content:" ";position:absolute;top:0;left:0;z-index:5;pointer-events:none;background-color:var(--separator-border)}.monaco-split-view2.separator-border.horizontal>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:100%;width:1px}.monaco-split-view2.separator-border.vertical>.monaco-scrollable-element>.split-view-container>.split-view-view:not(:first-child):before{height:1px;width:100%}.monaco-table{display:flex;flex-direction:column;position:relative;height:100%;width:100%;white-space:nowrap;overflow:hidden}.monaco-table>.monaco-split-view2{border-bottom:1px solid transparent}.monaco-table>.monaco-list{flex:1}.monaco-table-tr{display:flex;height:100%}.monaco-table-th{width:100%;height:100%;font-weight:700;overflow:hidden;text-overflow:ellipsis}.monaco-table-th,.monaco-table-td{box-sizing:border-box;flex-shrink:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{content:"";position:absolute;left:calc(var(--vscode-sash-size) / 2);width:0;border-left:1px solid transparent}.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2,.monaco-workbench:not(.reduce-motion) .monaco-table>.monaco-split-view2 .monaco-sash.vertical:before{transition:border-color .2s ease-out}.monaco-custom-toggle{margin-left:2px;float:left;cursor:pointer;overflow:hidden;width:20px;height:20px;border-radius:3px;border:1px solid transparent;padding:1px;box-sizing:border-box;user-select:none;-webkit-user-select:none}.monaco-custom-toggle:hover{background-color:var(--vscode-inputOption-hoverBackground)}.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{border:1px dashed var(--vscode-focusBorder)}.hc-black .monaco-custom-toggle,.hc-light .monaco-custom-toggle,.hc-black .monaco-custom-toggle:hover,.hc-light .monaco-custom-toggle:hover{background:none}.monaco-custom-toggle.monaco-checkbox{height:18px;width:18px;border:1px solid transparent;border-radius:3px;margin-right:9px;margin-left:0;padding:0;opacity:1;background-size:16px!important}.monaco-action-bar .checkbox-action-item{display:flex;align-items:center}.monaco-action-bar .checkbox-action-item>.monaco-custom-toggle.monaco-checkbox{margin-right:4px}.monaco-action-bar .checkbox-action-item>.checkbox-label{font-size:12px}.monaco-custom-toggle.monaco-checkbox:not(.checked):before{visibility:hidden}.monaco-inputbox{position:relative;display:block;padding:0;box-sizing:border-box;border-radius:2px;font-size:inherit}.monaco-inputbox>.ibwrapper>.input,.monaco-inputbox>.ibwrapper>.mirror{padding:4px 6px}.monaco-inputbox>.ibwrapper{position:relative;width:100%;height:100%}.monaco-inputbox>.ibwrapper>.input{display:inline-block;box-sizing:border-box;width:100%;height:100%;line-height:inherit;border:none;font-family:inherit;font-size:inherit;resize:none;color:inherit}.monaco-inputbox>.ibwrapper>input{text-overflow:ellipsis}.monaco-inputbox>.ibwrapper>textarea.input{display:block;scrollbar-width:none;outline:none}.monaco-inputbox>.ibwrapper>textarea.input::-webkit-scrollbar{display:none}.monaco-inputbox>.ibwrapper>textarea.input.empty{white-space:nowrap}.monaco-inputbox>.ibwrapper>.mirror{position:absolute;display:inline-block;width:100%;top:0;left:0;box-sizing:border-box;white-space:pre-wrap;visibility:hidden;word-wrap:break-word}.monaco-inputbox-container{text-align:right}.monaco-inputbox-container .monaco-inputbox-message{display:inline-block;overflow:hidden;text-align:left;width:100%;box-sizing:border-box;padding:.4em;font-size:12px;line-height:17px;margin-top:-1px;word-wrap:break-word}.monaco-inputbox .monaco-action-bar{position:absolute;right:2px;top:4px}.monaco-inputbox .monaco-action-bar .action-item{margin-left:2px}.monaco-inputbox .monaco-action-bar .action-item .codicon{background-repeat:no-repeat;width:16px;height:16px}.monaco-findInput{position:relative}.monaco-findInput .monaco-inputbox{font-size:13px;width:100%}.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.monaco-findInput.highlight-0 .controls,.hc-light .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-0 .1s linear 0s}.monaco-findInput.highlight-1 .controls,.hc-light .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-1 .1s linear 0s}.hc-black .monaco-findInput.highlight-0 .controls,.vs-dark .monaco-findInput.highlight-0 .controls{animation:monaco-findInput-highlight-dark-0 .1s linear 0s}.hc-black .monaco-findInput.highlight-1 .controls,.vs-dark .monaco-findInput.highlight-1 .controls{animation:monaco-findInput-highlight-dark-1 .1s linear 0s}@keyframes monaco-findInput-highlight-0{0%{background:#fdff00cc}to{background:transparent}}@keyframes monaco-findInput-highlight-1{0%{background:#fdff00cc}99%{background:transparent}}@keyframes monaco-findInput-highlight-dark-0{0%{background:#ffffff70}to{background:transparent}}@keyframes monaco-findInput-highlight-dark-1{0%{background:#ffffff70}99%{background:transparent}}.monaco-tl-row{display:flex;height:100%;align-items:center;position:relative}.monaco-tl-row.disabled{cursor:default}.monaco-tl-indent{height:100%;position:absolute;top:0;left:16px;pointer-events:none}.hide-arrows .monaco-tl-indent{left:12px}.monaco-tl-indent>.indent-guide{display:inline-block;box-sizing:border-box;height:100%;border-left:1px solid transparent}.monaco-workbench:not(.reduce-motion) .monaco-tl-indent>.indent-guide{transition:border-color .1s linear}.monaco-tl-twistie,.monaco-tl-contents{height:100%}.monaco-tl-twistie{font-size:10px;text-align:right;padding-right:6px;flex-shrink:0;width:16px;display:flex!important;align-items:center;justify-content:center;transform:translate(3px)}.monaco-tl-contents{flex:1;overflow:hidden}.monaco-tl-twistie:before{border-radius:20px}.monaco-tl-twistie.collapsed:before{transform:rotate(-90deg)}.monaco-tl-twistie.codicon-tree-item-loading:before{animation:codicon-spin 1.25s steps(30) infinite}.monaco-tree-type-filter{position:absolute;top:0;display:flex;padding:3px;max-width:200px;z-index:100;margin:0 6px;border:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px}.monaco-workbench:not(.reduce-motion) .monaco-tree-type-filter{transition:top .3s}.monaco-tree-type-filter.disabled{top:-40px!important}.monaco-tree-type-filter-grab{display:flex!important;align-items:center;justify-content:center;cursor:grab;margin-right:2px}.monaco-tree-type-filter-grab.grabbing{cursor:grabbing}.monaco-tree-type-filter-input{flex:1}.monaco-tree-type-filter-input .monaco-inputbox{height:23px}.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.input,.monaco-tree-type-filter-input .monaco-inputbox>.ibwrapper>.mirror{padding:2px 4px}.monaco-tree-type-filter-input .monaco-findInput>.controls{top:2px}.monaco-tree-type-filter-actionbar{margin-left:4px}.monaco-tree-type-filter-actionbar .monaco-action-bar .action-label{padding:2px}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container{position:absolute;top:0;left:0;width:100%;height:0;z-index:13;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row.monaco-list-row{position:absolute;width:100%;opacity:1!important;overflow:hidden;background-color:var(--vscode-sideBar-background)}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row:hover{background-color:var(--vscode-list-hoverBackground)!important;cursor:pointer}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty,.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container.empty .monaco-tree-sticky-container-shadow{display:none}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-container-shadow{position:absolute;bottom:-3px;left:0;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px inset}.monaco-list .monaco-scrollable-element .monaco-tree-sticky-container[tabindex="0"]:focus{outline:none}.monaco-editor .zone-widget .zone-widget-container.reference-zone-widget{border-top-width:1px;border-bottom-width:1px}.monaco-editor .reference-zone-widget .inline{display:inline-block;vertical-align:top}.monaco-editor .reference-zone-widget .messages{height:100%;width:100%;text-align:center;padding:3em 0}.monaco-editor .reference-zone-widget .ref-tree{line-height:23px;background-color:var(--vscode-peekViewResult-background);color:var(--vscode-peekViewResult-lineForeground)}.monaco-editor .reference-zone-widget .ref-tree .reference{text-overflow:ellipsis;overflow:hidden}.monaco-editor .reference-zone-widget .ref-tree .reference-file{display:inline-flex;width:100%;height:100%;color:var(--vscode-peekViewResult-fileForeground)}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .selected .reference-file{color:inherit!important}.monaco-editor .reference-zone-widget .ref-tree .monaco-list:focus .monaco-list-rows>.monaco-list-row.selected:not(.highlighted){background-color:var(--vscode-peekViewResult-selectionBackground);color:var(--vscode-peekViewResult-selectionForeground)!important}.monaco-editor .reference-zone-widget .ref-tree .reference-file .count{margin-right:12px;margin-left:auto}.monaco-editor .reference-zone-widget .ref-tree .referenceMatch .highlight{background-color:var(--vscode-peekViewResult-matchHighlightBackground)}.monaco-editor .reference-zone-widget .preview .reference-decoration{background-color:var(--vscode-peekViewEditor-matchHighlightBackground);border:2px solid var(--vscode-peekViewEditor-matchHighlightBorder);box-sizing:border-box}.monaco-editor .reference-zone-widget .preview .monaco-editor .monaco-editor-background,.monaco-editor .reference-zone-widget .preview .monaco-editor .inputarea.ime-input{background-color:var(--vscode-peekViewEditor-background)}.monaco-editor .reference-zone-widget .preview .monaco-editor .margin{background-color:var(--vscode-peekViewEditorGutter-background)}.monaco-editor.hc-black .reference-zone-widget .ref-tree .reference-file,.monaco-editor.hc-light .reference-zone-widget .ref-tree .reference-file{font-weight:700}.monaco-editor.hc-black .reference-zone-widget .ref-tree .referenceMatch .highlight,.monaco-editor.hc-light .reference-zone-widget .ref-tree .referenceMatch .highlight{border:1px dotted var(--vscode-contrastActiveBorder, transparent);box-sizing:border-box}.monaco-count-badge{padding:3px 6px;border-radius:11px;font-size:11px;min-width:18px;min-height:18px;line-height:11px;font-weight:400;text-align:center;display:inline-block;box-sizing:border-box}.monaco-count-badge.long{padding:2px 3px;border-radius:2px;min-height:auto;line-height:normal}.monaco-icon-label{display:flex;overflow:hidden;text-overflow:ellipsis}.monaco-icon-label:before{background-size:16px;background-position:left center;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;line-height:inherit!important;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;flex-shrink:0}.monaco-icon-label-container.disabled{color:var(--vscode-disabledForeground)}.monaco-icon-label>.monaco-icon-label-container{min-width:0;overflow:hidden;text-overflow:ellipsis;flex:1}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name{color:inherit;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-name-container>.label-name>.label-separator{margin:0 2px;opacity:.5}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-suffix-container>.label-suffix{opacity:.7;white-space:pre}.monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.7;margin-left:.5em;font-size:.9em;white-space:pre}.monaco-icon-label.nowrap>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{white-space:nowrap}.vs .monaco-icon-label>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{opacity:.95}.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.monaco-icon-label.italic>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{font-style:italic}.monaco-icon-label.deprecated{text-decoration:line-through;opacity:.66}.monaco-icon-label.italic:after{font-style:italic}.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-name-container>.label-name,.monaco-icon-label.strikethrough>.monaco-icon-label-container>.monaco-icon-description-container>.label-description{text-decoration:line-through}.monaco-icon-label:after{opacity:.75;font-size:90%;font-weight:600;margin:auto 16px 0 5px;text-align:center}.monaco-list:focus .selected .monaco-icon-label,.monaco-list:focus .selected .monaco-icon-label:after{color:inherit!important}.monaco-list-row.focused.selected .label-description,.monaco-list-row.selected .label-description{opacity:.8}.monaco-hover{cursor:default;position:absolute;overflow:hidden;user-select:text;-webkit-user-select:text;box-sizing:border-box;animation:fadein .1s linear;line-height:1.5em;white-space:var(--vscode-hover-whiteSpace, normal)}.monaco-hover.hidden{display:none}.monaco-hover a:hover:not(.disabled){cursor:pointer}.monaco-hover .hover-contents:not(.html-hover-contents){padding:4px 8px}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents){max-width:var(--vscode-hover-maxWidth, 500px);word-wrap:break-word}.monaco-hover .markdown-hover>.hover-contents:not(.code-hover-contents) hr{min-width:100%}.monaco-hover p,.monaco-hover .code,.monaco-hover ul,.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{margin:8px 0}.monaco-hover h1,.monaco-hover h2,.monaco-hover h3,.monaco-hover h4,.monaco-hover h5,.monaco-hover h6{line-height:1.1}.monaco-hover code{font-family:var(--monaco-monospace-font)}.monaco-hover hr{box-sizing:border-box;border-left:0px;border-right:0px;margin:4px -8px -4px;height:1px}.monaco-hover p:first-child,.monaco-hover .code:first-child,.monaco-hover ul:first-child{margin-top:0}.monaco-hover p:last-child,.monaco-hover .code:last-child,.monaco-hover ul:last-child{margin-bottom:0}.monaco-hover ul,.monaco-hover ol{padding-left:20px}.monaco-hover li>p{margin-bottom:0}.monaco-hover li>ul{margin-top:0}.monaco-hover code{border-radius:3px;padding:0 .4em}.monaco-hover .monaco-tokenized-source{white-space:var(--vscode-hover-sourceWhiteSpace, pre-wrap)}.monaco-hover .hover-row.status-bar{font-size:12px;line-height:22px}.monaco-hover .hover-row.status-bar .info{font-style:italic;padding:0 8px}.monaco-hover .hover-row.status-bar .actions{display:flex;padding:0 8px}.monaco-hover .hover-row.status-bar .actions .action-container{margin-right:16px;cursor:pointer}.monaco-hover .hover-row.status-bar .actions .action-container .action .icon{padding-right:4px}.monaco-hover .markdown-hover .hover-contents .codicon{color:inherit;font-size:inherit;vertical-align:middle}.monaco-hover .hover-contents a.code-link:hover,.monaco-hover .hover-contents a.code-link{color:inherit}.monaco-hover .hover-contents a.code-link:before{content:"("}.monaco-hover .hover-contents a.code-link:after{content:")"}.monaco-hover .hover-contents a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-foreground)}.monaco-hover .hover-contents a.code-link>span:hover{color:var(--vscode-textLink-activeForeground)}.monaco-hover .markdown-hover .hover-contents:not(.code-hover-contents):not(.html-hover-contents) span{margin-bottom:4px;display:inline-block}.monaco-hover-content .action-container a{-webkit-user-select:none;user-select:none}.monaco-hover-content .action-container.disabled{pointer-events:none;opacity:.4;cursor:default}.monaco-editor .peekview-widget .head .peekview-title .severity-icon{display:inline-block;vertical-align:text-top;margin-right:4px}.monaco-editor .marker-widget{text-overflow:ellipsis;white-space:nowrap}.monaco-editor .marker-widget>.stale{opacity:.6;font-style:italic}.monaco-editor .marker-widget .title{display:inline-block;padding-right:5px}.monaco-editor .marker-widget .descriptioncontainer{position:absolute;white-space:pre;user-select:text;-webkit-user-select:text;padding:8px 12px 0 20px}.monaco-editor .marker-widget .descriptioncontainer .message{display:flex;flex-direction:column}.monaco-editor .marker-widget .descriptioncontainer .message .details{padding-left:6px}.monaco-editor .marker-widget .descriptioncontainer .message .source,.monaco-editor .marker-widget .descriptioncontainer .message span.code{opacity:.6}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link{opacity:.6;color:inherit}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:before{content:"("}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link:after{content:")"}.monaco-editor .marker-widget .descriptioncontainer .message a.code-link>span{text-decoration:underline;border-bottom:1px solid transparent;text-underline-position:under;color:var(--vscode-textLink-activeForeground)}.monaco-editor .marker-widget .descriptioncontainer .filename{cursor:pointer;color:var(--vscode-textLink-activeForeground)}.monaco-editor .zone-widget .codicon.codicon-error,.markers-panel .marker-icon.error,.markers-panel .marker-icon .codicon.codicon-error,.text-search-provider-messages .providerMessage .codicon.codicon-error,.extensions-viewlet>.extensions .codicon.codicon-error,.extension-editor .codicon.codicon-error,.preferences-editor .codicon.codicon-error{color:var(--vscode-problemsErrorIcon-foreground)}.monaco-editor .zone-widget .codicon.codicon-warning,.markers-panel .marker-icon.warning,.markers-panel .marker-icon .codicon.codicon-warning,.text-search-provider-messages .providerMessage .codicon.codicon-warning,.extensions-viewlet>.extensions .codicon.codicon-warning,.extension-editor .codicon.codicon-warning,.preferences-editor .codicon.codicon-warning{color:var(--vscode-problemsWarningIcon-foreground)}.monaco-editor .zone-widget .codicon.codicon-info,.markers-panel .marker-icon.info,.markers-panel .marker-icon .codicon.codicon-info,.text-search-provider-messages .providerMessage .codicon.codicon-info,.extensions-viewlet>.extensions .codicon.codicon-info,.extension-editor .codicon.codicon-info,.preferences-editor .codicon.codicon-info{color:var(--vscode-problemsInfoIcon-foreground)}.monaco-editor .inlineSuggestionsHints.withBorder{z-index:39;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .inlineSuggestionsHints a,.monaco-editor .inlineSuggestionsHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineSuggestionsHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineSuggestionsHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineSuggestionsHints .availableSuggestionCount a{display:flex;min-width:19px;justify-content:center}.monaco-editor .inlineSuggestionStatusBarItemLabel{margin-right:2px}.monaco-toolbar{height:100%}.monaco-toolbar .toolbar-toggle-more{display:inline-block;padding:0}.monaco-editor .hoverHighlight{background-color:var(--vscode-editor-hoverHighlightBackground)}.monaco-editor .monaco-hover{color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px}.monaco-editor .monaco-hover a{color:var(--vscode-textLink-foreground)}.monaco-editor .monaco-hover a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .monaco-hover .hover-row .actions{background-color:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-editor .monaco-hover code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor.vs .dnd-target,.monaco-editor.hc-light .dnd-target{border-right:2px dotted black;color:#fff}.monaco-editor.vs-dark .dnd-target{border-right:2px dotted #AEAFAD;color:#51504f}.monaco-editor.hc-black .dnd-target{border-right:2px dotted #fff;color:#000}.monaco-editor.mouse-default .view-lines,.monaco-editor.vs-dark.mac.mouse-default .view-lines,.monaco-editor.hc-black.mac.mouse-default .view-lines,.monaco-editor.hc-light.mac.mouse-default .view-lines{cursor:default}.monaco-editor.mouse-copy .view-lines,.monaco-editor.vs-dark.mac.mouse-copy .view-lines,.monaco-editor.hc-black.mac.mouse-copy .view-lines,.monaco-editor.hc-light.mac.mouse-copy .view-lines{cursor:copy}.monaco-editor .findOptionsWidget{background-color:var(--vscode-editorWidget-background);color:var(--vscode-editorWidget-foreground);box-shadow:0 0 8px 2px var(--vscode-widget-shadow);border:2px solid var(--vscode-contrastBorder)}.monaco-editor .find-widget{position:absolute;z-index:35;height:33px;overflow:hidden;line-height:19px;transition:transform .2s linear;padding:0 4px;box-sizing:border-box;transform:translateY(calc(-100% - 10px));box-shadow:0 0 8px 2px var(--vscode-widget-shadow);color:var(--vscode-editorWidget-foreground);border-left:1px solid var(--vscode-widget-border);border-right:1px solid var(--vscode-widget-border);border-bottom:1px solid var(--vscode-widget-border);border-bottom-left-radius:4px;border-bottom-right-radius:4px;background-color:var(--vscode-editorWidget-background)}.monaco-workbench.reduce-motion .monaco-editor .find-widget{transition:transform 0ms linear}.monaco-editor .find-widget textarea{margin:0}.monaco-editor .find-widget.hiddenEditor{display:none}.monaco-editor .find-widget.replaceToggled>.replace-part{display:flex}.monaco-editor .find-widget.visible{transform:translateY(0)}.monaco-editor .find-widget .monaco-inputbox.synthetic-focus{outline:1px solid -webkit-focus-ring-color;outline-offset:-1px;outline-color:var(--vscode-focusBorder)}.monaco-editor .find-widget .monaco-inputbox .input{background-color:transparent;min-height:0}.monaco-editor .find-widget .monaco-findInput .input{font-size:13px}.monaco-editor .find-widget>.find-part,.monaco-editor .find-widget>.replace-part{margin:3px 25px 0 17px;font-size:12px;display:flex}.monaco-editor .find-widget>.find-part .monaco-inputbox,.monaco-editor .find-widget>.replace-part .monaco-inputbox{min-height:25px}.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-right:22px}.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.find-part .monaco-inputbox>.ibwrapper>.mirror,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.input,.monaco-editor .find-widget>.replace-part .monaco-inputbox>.ibwrapper>.mirror{padding-top:2px;padding-bottom:2px}.monaco-editor .find-widget>.find-part .find-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget>.replace-part .replace-actions{height:25px;display:flex;align-items:center}.monaco-editor .find-widget .monaco-findInput{vertical-align:middle;display:flex;flex:1}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element{width:100%}.monaco-editor .find-widget .monaco-findInput .monaco-scrollable-element .scrollbar.vertical{opacity:0}.monaco-editor .find-widget .matchesCount{display:flex;flex:initial;margin:0 0 0 3px;padding:2px 0 0 2px;height:25px;vertical-align:middle;box-sizing:border-box;text-align:center;line-height:23px}.monaco-editor .find-widget .button{width:16px;height:16px;padding:3px;border-radius:5px;flex:initial;margin-left:3px;background-position:center center;background-repeat:no-repeat;cursor:pointer;display:flex;align-items:center;justify-content:center}.monaco-editor .find-widget .codicon-find-selection{width:22px;height:22px;padding:3px;border-radius:5px}.monaco-editor .find-widget .button.left{margin-left:0;margin-right:3px}.monaco-editor .find-widget .button.wide{width:auto;padding:1px 6px;top:-1px}.monaco-editor .find-widget .button.toggle{position:absolute;top:0;left:3px;width:18px;height:100%;border-radius:0;box-sizing:border-box}.monaco-editor .find-widget .button.toggle.disabled{display:none}.monaco-editor .find-widget .disabled{color:var(--vscode-disabledForeground);cursor:default}.monaco-editor .find-widget>.replace-part{display:none}.monaco-editor .find-widget>.replace-part>.monaco-findInput{position:relative;display:flex;vertical-align:middle;flex:auto;flex-grow:0;flex-shrink:0}.monaco-editor .find-widget>.replace-part>.monaco-findInput>.controls{position:absolute;top:3px;right:2px}.monaco-editor .find-widget.reduced-find-widget .matchesCount{display:none}.monaco-editor .find-widget.narrow-find-widget{max-width:257px!important}.monaco-editor .find-widget.collapsed-find-widget{max-width:170px!important}.monaco-editor .find-widget.collapsed-find-widget .button.previous,.monaco-editor .find-widget.collapsed-find-widget .button.next,.monaco-editor .find-widget.collapsed-find-widget .button.replace,.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,.monaco-editor .find-widget.collapsed-find-widget>.find-part .monaco-findInput .controls{display:none}.monaco-editor .find-widget.no-results .matchesCount{color:var(--vscode-errorForeground)}.monaco-editor .findMatch{animation-duration:0;animation-name:inherit!important;background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor .currentFindMatch{background-color:var(--vscode-editor-findMatchBackground);border:2px solid var(--vscode-editor-findMatchBorder);padding:1px;box-sizing:border-box}.monaco-editor .findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor .find-widget .monaco-sash{left:0!important;background-color:var(--vscode-editorWidget-resizeBorder, var(--vscode-editorWidget-border))}.monaco-editor.hc-black .find-widget .button:before{position:relative;top:1px;left:2px}.monaco-editor .find-widget .button:not(.disabled):hover,.monaco-editor .find-widget .codicon-find-selection:hover{background-color:var(--vscode-toolbar-hoverBackground)!important}.monaco-editor.findMatch{background-color:var(--vscode-editor-findMatchHighlightBackground)}.monaco-editor.currentFindMatch{background-color:var(--vscode-editor-findMatchBackground)}.monaco-editor.findScope{background-color:var(--vscode-editor-findRangeHighlightBackground)}.monaco-editor.findMatch{background-color:var(--vscode-editorWidget-background)}.monaco-editor .find-widget>.button.codicon-widget-close{position:absolute;top:5px;right:4px}.monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,.monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-editor .margin-view-overlays .codicon-folding-collapsed{cursor:pointer;opacity:0;transition:opacity .5s;display:flex;align-items:center;justify-content:center;font-size:140%;margin-left:2px}.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-collapsed,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-manual-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-expanded,.monaco-workbench.reduce-motion .monaco-editor .margin-view-overlays .codicon-folding-collapsed{transition:initial}.monaco-editor .margin-view-overlays:hover .codicon,.monaco-editor .margin-view-overlays .codicon.codicon-folding-collapsed,.monaco-editor .margin-view-overlays .codicon.codicon-folding-manual-collapsed,.monaco-editor .margin-view-overlays .codicon.alwaysShowFoldIcons{opacity:1}.monaco-editor .inline-folded:after{color:gray;margin:.1em .2em 0;content:"⋯";display:inline;line-height:1em;cursor:pointer}.monaco-editor .folded-background{background-color:var(--vscode-editor-foldBackground)}.monaco-editor .cldr.codicon.codicon-folding-expanded,.monaco-editor .cldr.codicon.codicon-folding-collapsed,.monaco-editor .cldr.codicon.codicon-folding-manual-expanded,.monaco-editor .cldr.codicon.codicon-folding-manual-collapsed{color:var(--vscode-editorGutter-foldingControlForeground)!important}.monaco-editor .suggest-preview-additional-widget{white-space:nowrap}.monaco-editor .suggest-preview-additional-widget .content-spacer{color:transparent;white-space:pre}.monaco-editor .suggest-preview-additional-widget .button{display:inline-block;cursor:pointer;text-decoration:underline;text-underline-position:under}.monaco-editor .ghost-text-hidden{opacity:0;font-size:0}.monaco-editor .ghost-text-decoration,.monaco-editor .suggest-preview-text .ghost-text{font-style:italic}.monaco-editor .ghost-text-decoration,.monaco-editor .ghost-text-decoration-preview,.monaco-editor .suggest-preview-text .ghost-text{color:var(--vscode-editorGhostText-foreground)!important;background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border)}.monaco-editor .snippet-placeholder{min-width:2px;outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetTabstopHighlightBackground, transparent);outline-color:var(--vscode-editor-snippetTabstopHighlightBorder, transparent)}.monaco-editor .finish-snippet-placeholder{outline-style:solid;outline-width:1px;background-color:var(--vscode-editor-snippetFinalTabstopHighlightBackground, transparent);outline-color:var(--vscode-editor-snippetFinalTabstopHighlightBorder, transparent)}.monaco-editor .suggest-widget{width:430px;z-index:40;display:flex;flex-direction:column;border-radius:3px}.monaco-editor .suggest-widget.message{flex-direction:row;align-items:center}.monaco-editor .suggest-widget,.monaco-editor .suggest-details{flex:0 1 auto;width:100%;border-style:solid;border-width:1px;border-color:var(--vscode-editorSuggestWidget-border);background-color:var(--vscode-editorSuggestWidget-background)}.monaco-editor.hc-black .suggest-widget,.monaco-editor.hc-black .suggest-details,.monaco-editor.hc-light .suggest-widget,.monaco-editor.hc-light .suggest-details{border-width:2px}.monaco-editor .suggest-widget .suggest-status-bar{box-sizing:border-box;display:none;flex-flow:row nowrap;justify-content:space-between;width:100%;font-size:80%;padding:0 4px;border-top:1px solid var(--vscode-editorSuggestWidget-border);overflow:hidden}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar{display:flex}.monaco-editor .suggest-widget .suggest-status-bar .left{padding-right:8px}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-label{color:var(--vscode-editorSuggestWidgetStatus-foreground)}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label{margin-right:0}.monaco-editor .suggest-widget.with-status-bar .suggest-status-bar .action-item:not(:last-of-type) .action-label:after{content:", ";margin-right:.3em}.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row>.contents>.main>.right>.readMore,.monaco-editor .suggest-widget.with-status-bar .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget.with-status-bar:not(.docs-side) .monaco-list .monaco-list-row:hover>.contents>.main>.right.can-expand-details>.details-label{width:100%}.monaco-editor .suggest-widget>.message{padding-left:22px}.monaco-editor .suggest-widget>.tree{height:100%;width:100%}.monaco-editor .suggest-widget .monaco-list{user-select:none;-webkit-user-select:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row{display:flex;-mox-box-sizing:border-box;box-sizing:border-box;padding-right:10px;background-repeat:no-repeat;background-position:2px 2px;white-space:nowrap;cursor:pointer;touch-action:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused{color:var(--vscode-editorSuggestWidget-selectedForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused .codicon{color:var(--vscode-editorSuggestWidget-selectedIconForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents{flex:1;height:100%;overflow:hidden;padding-left:2px}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main{display:flex;overflow:hidden;text-overflow:ellipsis;white-space:pre;justify-content:space-between}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{display:flex}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.focused)>.contents>.main .monaco-icon-label{color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight{font-weight:700}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-highlightForeground)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused>.contents>.main .monaco-highlighted-label .highlight{color:var(--vscode-editorSuggestWidget-focusHighlightForeground)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:before{color:inherit;opacity:1;font-size:14px;cursor:pointer}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close{position:absolute;top:6px;right:2px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.codicon-close:hover,.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore:hover{opacity:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{opacity:.7}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.signature-label{overflow:hidden;text-overflow:ellipsis;opacity:.6}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.qualifier-label{margin-left:12px;opacity:.4;font-size:85%;line-height:initial;text-overflow:ellipsis;overflow:hidden;align-self:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{font-size:85%;margin-left:1.1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label>.monaco-tokenized-source{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.details-label{display:none}.monaco-editor .suggest-widget:not(.shows-details) .monaco-list .monaco-list-row.focused>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.right>.details-label,.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused:not(.string-label)>.contents>.main>.right>.details-label{display:inline}.monaco-editor .suggest-widget:not(.docs-side) .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right.can-expand-details>.details-label{width:calc(100% - 26px)}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left{flex-shrink:1;flex-grow:1;overflow:hidden}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.left>.monaco-icon-label{flex-shrink:0}.monaco-editor .suggest-widget .monaco-list .monaco-list-row:not(.string-label)>.contents>.main>.left>.monaco-icon-label{max-width:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.left>.monaco-icon-label{flex-shrink:1}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right{overflow:hidden;flex-shrink:4;max-width:70%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:inline-block;position:absolute;right:10px;width:18px;height:18px;visibility:hidden}.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row>.contents>.main>.right>.readMore{display:none!important}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.string-label>.contents>.main>.right>.readMore{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused.string-label>.contents>.main>.right>.readMore{display:inline-block}.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused:hover>.contents>.main>.right>.readMore{visibility:visible}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated{opacity:.66;text-decoration:unset}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label.deprecated>.monaco-icon-label-container>.monaco-icon-name-container{text-decoration:line-through}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-icon-label:before{height:100%}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon{display:block;height:16px;width:16px;margin-left:2px;background-repeat:no-repeat;background-size:80%;background-position:center}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.hide{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .suggest-icon{display:flex;align-items:center;margin-right:4px}.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .icon,.monaco-editor .suggest-widget.no-icons .monaco-list .monaco-list-row .suggest-icon:before{display:none}.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan{margin:0 0 0 .3em;border:.1em solid #000;width:.7em;height:.7em;display:inline-block}.monaco-editor .suggest-details-container{z-index:41}.monaco-editor .suggest-details{display:flex;flex-direction:column;cursor:default;color:var(--vscode-editorSuggestWidget-foreground)}.monaco-editor .suggest-details.focused{border-color:var(--vscode-focusBorder)}.monaco-editor .suggest-details a{color:var(--vscode-textLink-foreground)}.monaco-editor .suggest-details a:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor .suggest-details code{background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .suggest-details.no-docs{display:none}.monaco-editor .suggest-details>.monaco-scrollable-element{flex:1}.monaco-editor .suggest-details>.monaco-scrollable-element>.body{box-sizing:border-box;height:100%;width:100%}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type{flex:2;overflow:hidden;text-overflow:ellipsis;opacity:.7;white-space:pre;margin:0 24px 0 0;padding:4px 0 12px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.header>.type.auto-wrap{white-space:normal;word-break:break-all}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs{margin:0;padding:4px 5px;white-space:pre-wrap}.monaco-editor .suggest-details.no-type>.monaco-scrollable-element>.body>.docs{margin-right:24px;overflow:hidden}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs{padding:0;white-space:initial;min-height:calc(1rem + 8px)}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div,.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>span:not(:empty){padding:4px 5px}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:first-child{margin-top:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs>div>p:last-child{margin-bottom:0}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .monaco-tokenized-source{white-space:pre}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs .code{white-space:pre-wrap;word-wrap:break-word}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>.docs.markdown-docs .codicon{vertical-align:sub}.monaco-editor .suggest-details>.monaco-scrollable-element>.body>p:empty{display:none}.monaco-editor .suggest-details code{border-radius:3px;padding:0 .4em}.monaco-editor .suggest-details ul,.monaco-editor .suggest-details ol{padding-left:20px}.monaco-editor .suggest-details p code{font-family:var(--monaco-monospace-font)}.monaco-editor.vs .valueSetReplacement{outline:solid 2px var(--vscode-editorBracketMatch-border)}.monaco-editor .linked-editing-decoration{background-color:var(--vscode-editor-linkedEditingBackground);min-width:1px}.monaco-editor .detected-link,.monaco-editor .detected-link-active{text-decoration:underline;text-underline-position:under}.monaco-editor .detected-link-active{cursor:pointer;color:var(--vscode-editorLink-activeForeground)!important}.monaco-editor .focused .selectionHighlight{background-color:var(--vscode-editor-selectionHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-selectionHighlightBorder)}.monaco-editor.hc-black .focused .selectionHighlight,.monaco-editor.hc-light .focused .selectionHighlight{border-style:dotted}.monaco-editor .wordHighlight{background-color:var(--vscode-editor-wordHighlightBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightBorder)}.monaco-editor.hc-black .wordHighlight,.monaco-editor.hc-light .wordHighlight{border-style:dotted}.monaco-editor .wordHighlightStrong{background-color:var(--vscode-editor-wordHighlightStrongBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightStrongBorder)}.monaco-editor.hc-black .wordHighlightStrong,.monaco-editor.hc-light .wordHighlightStrong{border-style:dotted}.monaco-editor .wordHighlightText{background-color:var(--vscode-editor-wordHighlightTextBackground);box-sizing:border-box;border:1px solid var(--vscode-editor-wordHighlightTextBorder)}.monaco-editor.hc-black .wordHighlightText,.monaco-editor.hc-light .wordHighlightText{border-style:dotted}.monaco-editor .inline-edit-remove{background-color:var(--vscode-editorGhostText-background);font-style:italic;text-decoration:line-through}.monaco-editor .inline-edit-remove.backgroundColoring{background-color:var(--vscode-diffEditor-removedLineBackground)}.monaco-editor .inline-edit-hidden{opacity:0;font-size:0}.monaco-editor .inline-edit-decoration,.monaco-editor .suggest-preview-text .inline-edit{font-style:italic}.monaco-editor .inline-completion-text-to-replace{text-decoration:underline;text-underline-position:under}.monaco-editor .inline-edit-decoration,.monaco-editor .inline-edit-decoration-preview,.monaco-editor .suggest-preview-text .inline-edit{color:var(--vscode-editorGhostText-foreground)!important;background-color:var(--vscode-editorGhostText-background);border:1px solid var(--vscode-editorGhostText-border)}.monaco-editor .inlineEditHints.withBorder{z-index:39;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .inlineEditHints a,.monaco-editor .inlineEditHints a:hover{color:var(--vscode-foreground)}.monaco-editor .inlineEditHints .keybinding{display:flex;margin-left:4px;opacity:.6}.monaco-editor .inlineEditHints .keybinding .monaco-keybinding-key{font-size:8px;padding:2px 3px}.monaco-editor .inlineEditStatusBarItemLabel{margin-right:2px}.monaco-editor .parameter-hints-widget{z-index:39;display:flex;flex-direction:column;line-height:1.5em;cursor:default;color:var(--vscode-editorHoverWidget-foreground);background-color:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border)}.hc-black .monaco-editor .parameter-hints-widget,.hc-light .monaco-editor .parameter-hints-widget{border-width:2px}.monaco-editor .parameter-hints-widget>.phwrapper{max-width:440px;display:flex;flex-direction:row}.monaco-editor .parameter-hints-widget.multiple{min-height:3.3em;padding:0}.monaco-editor .parameter-hints-widget.multiple .body:before{content:"";display:block;height:100%;position:absolute;opacity:.5;border-left:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget p,.monaco-editor .parameter-hints-widget ul{margin:8px 0}.monaco-editor .parameter-hints-widget .monaco-scrollable-element,.monaco-editor .parameter-hints-widget .body{display:flex;flex:1;flex-direction:column;min-height:100%}.monaco-editor .parameter-hints-widget .signature{padding:4px 5px;position:relative}.monaco-editor .parameter-hints-widget .signature.has-docs:after{content:"";display:block;position:absolute;left:0;width:100%;padding-top:4px;opacity:.5;border-bottom:1px solid var(--vscode-editorHoverWidget-border)}.monaco-editor .parameter-hints-widget .docs{padding:0 10px 0 5px;white-space:pre-wrap}.monaco-editor .parameter-hints-widget .docs.empty{display:none}.monaco-editor .parameter-hints-widget .docs a{color:var(--vscode-textLink-foreground)}.monaco-editor .parameter-hints-widget .docs a:hover{color:var(--vscode-textLink-activeForeground);cursor:pointer}.monaco-editor .parameter-hints-widget .docs .markdown-docs{white-space:initial}.monaco-editor .parameter-hints-widget .docs code{font-family:var(--monaco-monospace-font);border-radius:3px;padding:0 .4em;background-color:var(--vscode-textCodeBlock-background)}.monaco-editor .parameter-hints-widget .docs .monaco-tokenized-source,.monaco-editor .parameter-hints-widget .docs .code{white-space:pre-wrap}.monaco-editor .parameter-hints-widget .controls{display:none;flex-direction:column;align-items:center;min-width:22px;justify-content:flex-end}.monaco-editor .parameter-hints-widget.multiple .controls{display:flex;padding:0 2px}.monaco-editor .parameter-hints-widget.multiple .button{width:16px;height:16px;background-repeat:no-repeat;cursor:pointer}.monaco-editor .parameter-hints-widget .button.previous{bottom:24px}.monaco-editor .parameter-hints-widget .overloads{text-align:center;height:12px;line-height:12px;font-family:var(--monaco-monospace-font)}.monaco-editor .parameter-hints-widget .signature .parameter.active{color:var(--vscode-editorHoverWidget-highlightForeground);font-weight:700}.monaco-editor .parameter-hints-widget .documentation-parameter>.parameter{font-weight:700;margin-right:.5em}.monaco-editor .rename-box{z-index:100;color:inherit;border-radius:4px}.monaco-editor .rename-box.preview{padding:4px 4px 0}.monaco-editor .rename-box .rename-input{padding:3px;border-radius:2px;width:calc(100% - 8px)}.monaco-editor .rename-box .rename-label{display:none;opacity:.8}.monaco-editor .rename-box.preview .rename-label{display:inherit}.monaco-editor .sticky-widget{overflow:hidden}.monaco-editor .sticky-widget-line-numbers{float:left;background-color:inherit}.monaco-editor .sticky-widget-lines-scrollable{display:inline-block;position:absolute;overflow:hidden;width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit}.monaco-editor .sticky-widget-lines{position:absolute;background-color:inherit}.monaco-editor .sticky-line-number,.monaco-editor .sticky-line-content{color:var(--vscode-editorLineNumber-foreground);white-space:nowrap;display:inline-block;position:absolute;background-color:inherit}.monaco-editor .sticky-line-number .codicon-folding-expanded,.monaco-editor .sticky-line-number .codicon-folding-collapsed{float:right;transition:var(--vscode-editorStickyScroll-foldingOpacityTransition)}.monaco-editor .sticky-line-content{width:var(--vscode-editorStickyScroll-scrollableWidth);background-color:inherit;white-space:nowrap}.monaco-editor .sticky-line-number-inner{display:inline-block;text-align:right}.monaco-editor .sticky-widget{border-bottom:1px solid var(--vscode-editorStickyScroll-border)}.monaco-editor .sticky-line-content:hover{background-color:var(--vscode-editorStickyScrollHover-background);cursor:pointer}.monaco-editor .sticky-widget{width:100%;box-shadow:var(--vscode-editorStickyScroll-shadow) 0 3px 2px -2px;z-index:4;background-color:var(--vscode-editorStickyScroll-background)}.monaco-editor .sticky-widget.peek{background-color:var(--vscode-peekViewEditorStickyScroll-background)}.monaco-editor .unicode-highlight{border:1px solid var(--vscode-editorUnicodeHighlight-border);background-color:var(--vscode-editorUnicodeHighlight-background);box-sizing:border-box}.editor-banner{box-sizing:border-box;cursor:default;width:100%;font-size:12px;display:flex;overflow:visible;height:26px;background:var(--vscode-banner-background)}.editor-banner .icon-container{display:flex;flex-shrink:0;align-items:center;padding:0 6px 0 10px}.editor-banner .icon-container.custom-icon{background-repeat:no-repeat;background-position:center center;background-size:16px;width:16px;padding:0;margin:0 6px 0 10px}.editor-banner .message-container{display:flex;align-items:center;line-height:26px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.editor-banner .message-container p{margin-block-start:0;margin-block-end:0}.editor-banner .message-actions-container{flex-grow:1;flex-shrink:0;line-height:26px;margin:0 4px}.editor-banner .message-actions-container a.monaco-button{width:inherit;margin:2px 8px;padding:0 12px}.editor-banner .message-actions-container a{padding:3px;margin-left:12px;text-decoration:underline}.editor-banner .action-container{padding:0 10px 0 6px}.editor-banner{background-color:var(--vscode-banner-background)}.editor-banner,.editor-banner .action-container .codicon,.editor-banner .message-actions-container .monaco-link{color:var(--vscode-banner-foreground)}.editor-banner .icon-container .codicon{color:var(--vscode-banner-iconForeground)}.monaco-link{color:var(--vscode-textLink-foreground)}.monaco-link:hover{color:var(--vscode-textLink-activeForeground)}.monaco-editor{font-family:-apple-system,BlinkMacSystemFont,Segoe WPC,Segoe UI,HelveticaNeue-Light,system-ui,Ubuntu,Droid Sans,sans-serif;--monaco-monospace-font: "SF Mono", Monaco, Menlo, Consolas, "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace}.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,.monaco-editor.hc-light .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label{stroke-width:1.2px}.monaco-hover p{margin:0}.monaco-aria-container{position:absolute!important;top:0;height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%)}.monaco-editor,.monaco-diff-editor .synthetic-focus,.monaco-diff-editor [tabindex="0"]:focus,.monaco-diff-editor [tabindex="-1"]:focus,.monaco-diff-editor button:focus,.monaco-diff-editor input[type=button]:focus,.monaco-diff-editor input[type=checkbox]:focus,.monaco-diff-editor input[type=search]:focus,.monaco-diff-editor input[type=text]:focus,.monaco-diff-editor select:focus,.monaco-diff-editor textarea:focus{outline-width:1px;outline-style:solid;outline-offset:-1px;outline-color:var(--vscode-focusBorder);opacity:1}.monaco-workbench .workbench-hover{position:relative;font-size:13px;line-height:19px;z-index:40;overflow:hidden;max-width:700px;background:var(--vscode-editorHoverWidget-background);border:1px solid var(--vscode-editorHoverWidget-border);border-radius:3px;color:var(--vscode-editorHoverWidget-foreground);box-shadow:0 2px 8px var(--vscode-widget-shadow)}.monaco-workbench .workbench-hover hr{border-bottom:none}.monaco-workbench .workbench-hover:not(.skip-fade-in){animation:fadein .1s linear}.monaco-workbench .workbench-hover.compact{font-size:12px}.monaco-workbench .workbench-hover.compact .hover-contents{padding:2px 8px}.monaco-workbench .workbench-hover-container.locked .workbench-hover{outline:1px solid var(--vscode-editorHoverWidget-border)}.monaco-workbench .workbench-hover-container.locked .workbench-hover:focus,.monaco-workbench .workbench-hover-lock:focus{outline:1px solid var(--vscode-focusBorder)}.monaco-workbench .workbench-hover-container.locked .workbench-hover-lock:hover{background:var(--vscode-toolbar-hoverBackground)}.monaco-workbench .workbench-hover-pointer{position:absolute;z-index:41;pointer-events:none}.monaco-workbench .workbench-hover-pointer:after{content:"";position:absolute;width:5px;height:5px;background-color:var(--vscode-editorHoverWidget-background);border-right:1px solid var(--vscode-editorHoverWidget-border);border-bottom:1px solid var(--vscode-editorHoverWidget-border)}.monaco-workbench .locked .workbench-hover-pointer:after{width:4px;height:4px;border-right-width:2px;border-bottom-width:2px}.monaco-workbench .workbench-hover-pointer.left{left:-3px}.monaco-workbench .workbench-hover-pointer.right{right:3px}.monaco-workbench .workbench-hover-pointer.top{top:-3px}.monaco-workbench .workbench-hover-pointer.bottom{bottom:3px}.monaco-workbench .workbench-hover-pointer.left:after{transform:rotate(135deg)}.monaco-workbench .workbench-hover-pointer.right:after{transform:rotate(315deg)}.monaco-workbench .workbench-hover-pointer.top:after{transform:rotate(225deg)}.monaco-workbench .workbench-hover-pointer.bottom:after{transform:rotate(45deg)}.monaco-workbench .workbench-hover a{color:var(--vscode-textLink-foreground)}.monaco-workbench .workbench-hover a:focus{outline:1px solid;outline-offset:-1px;text-decoration:underline;outline-color:var(--vscode-focusBorder)}.monaco-workbench .workbench-hover a:hover,.monaco-workbench .workbench-hover a:active{color:var(--vscode-textLink-activeForeground)}.monaco-workbench .workbench-hover code{background:var(--vscode-textCodeBlock-background)}.monaco-workbench .workbench-hover .hover-row .actions{background:var(--vscode-editorHoverWidget-statusBarBackground)}.monaco-workbench .workbench-hover.right-aligned{left:1px}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions{flex-direction:row-reverse}.monaco-workbench .workbench-hover.right-aligned .hover-row.status-bar .actions .action-container{margin-right:0;margin-left:16px}.context-view{position:absolute}.context-view.fixed{all:initial;font-family:inherit;font-size:13px;position:fixed;color:inherit}.quick-input-widget{font-size:13px}.quick-input-widget .monaco-highlighted-label .highlight{color:#0066bf}.vs .quick-input-widget .monaco-list-row.focused .monaco-highlighted-label .highlight{color:#9dddff}.vs-dark .quick-input-widget .monaco-highlighted-label .highlight{color:#0097fb}.hc-black .quick-input-widget .monaco-highlighted-label .highlight{color:#f38518}.hc-light .quick-input-widget .monaco-highlighted-label .highlight{color:#0f4a85}.monaco-keybinding>.monaco-keybinding-key{background-color:#ddd6;border:solid 1px rgba(204,204,204,.4);border-bottom-color:#bbb6;box-shadow:inset 0 -1px #bbb6;color:#555}.hc-black .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:solid 1px rgb(111,195,223);box-shadow:none;color:#fff}.hc-light .monaco-keybinding>.monaco-keybinding-key{background-color:transparent;border:solid 1px #0F4A85;box-shadow:none;color:#292929}.vs-dark .monaco-keybinding>.monaco-keybinding-key{background-color:#8080802b;border:solid 1px rgba(51,51,51,.6);border-bottom-color:#4449;box-shadow:inset 0 -1px #4449;color:#ccc}.quick-input-widget{position:absolute;width:600px;z-index:2550;left:50%;margin-left:-300px;-webkit-app-region:no-drag;border-radius:6px}.quick-input-titlebar{display:flex;align-items:center;border-top-left-radius:5px;border-top-right-radius:5px}.quick-input-left-action-bar{display:flex;margin-left:4px;flex:1}.quick-input-title{padding:3px 0;text-align:center;text-overflow:ellipsis;overflow:hidden}.quick-input-right-action-bar{display:flex;margin-right:4px;flex:1}.quick-input-right-action-bar>.actions-container{justify-content:flex-end}.quick-input-titlebar .monaco-action-bar .action-label.codicon{background-position:center;background-repeat:no-repeat;padding:2px}.quick-input-description{margin:6px 6px 6px 11px}.quick-input-header .quick-input-description{margin:4px 2px;flex:1}.quick-input-header{display:flex;padding:8px 6px 6px}.quick-input-widget.hidden-input .quick-input-header{padding:0;margin-bottom:0}.quick-input-and-message{display:flex;flex-direction:column;flex-grow:1;min-width:0;position:relative}.quick-input-check-all{align-self:center;margin:0}.quick-input-filter{flex-grow:1;display:flex;position:relative}.quick-input-box{flex-grow:1}.quick-input-widget.show-checkboxes .quick-input-box,.quick-input-widget.show-checkboxes .quick-input-message{margin-left:5px}.quick-input-visible-count{position:absolute;left:-10000px}.quick-input-count{align-self:center;position:absolute;right:4px;display:flex;align-items:center}.quick-input-count .monaco-count-badge{vertical-align:middle;padding:2px 4px;border-radius:2px;min-height:auto;line-height:normal}.quick-input-action{margin-left:6px}.quick-input-action .monaco-text-button{font-size:11px;padding:0 6px;display:flex;height:25px;align-items:center}.quick-input-message{margin-top:-1px;padding:5px;overflow-wrap:break-word}.quick-input-message>.codicon{margin:0 .2em;vertical-align:text-bottom}.quick-input-message a{color:inherit}.quick-input-progress.monaco-progress-container{position:relative}.quick-input-list{line-height:22px}.quick-input-widget.hidden-input .quick-input-list{margin-top:4px;padding-bottom:4px}.quick-input-list .monaco-list{overflow:hidden;max-height:440px;padding-bottom:5px}.quick-input-list .monaco-scrollable-element{padding:0 5px}.quick-input-list .quick-input-list-entry{box-sizing:border-box;overflow:hidden;display:flex;height:100%;padding:0 6px}.quick-input-list .quick-input-list-entry.quick-input-list-separator-border{border-top-width:1px;border-top-style:solid}.quick-input-list .monaco-list-row{border-radius:3px}.quick-input-list .monaco-list-row[data-index="0"] .quick-input-list-entry.quick-input-list-separator-border{border-top-style:none}.quick-input-list .quick-input-list-label{overflow:hidden;display:flex;height:100%;flex:1}.quick-input-list .quick-input-list-checkbox{align-self:center;margin:0}.quick-input-list .quick-input-list-icon{background-size:16px;background-position:left center;background-repeat:no-repeat;padding-right:6px;width:16px;height:22px;display:flex;align-items:center;justify-content:center}.quick-input-list .quick-input-list-rows{overflow:hidden;text-overflow:ellipsis;display:flex;flex-direction:column;height:100%;flex:1;margin-left:5px}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-rows{margin-left:10px}.quick-input-widget .quick-input-list .quick-input-list-checkbox{display:none}.quick-input-widget.show-checkboxes .quick-input-list .quick-input-list-checkbox{display:inline}.quick-input-list .quick-input-list-rows>.quick-input-list-row{display:flex;align-items:center}.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label,.quick-input-list .quick-input-list-rows>.quick-input-list-row .monaco-icon-label .monaco-icon-label-container>.monaco-icon-name-container{flex:1}.quick-input-list .quick-input-list-rows>.quick-input-list-row .codicon[class*=codicon-]{vertical-align:text-bottom}.quick-input-list .quick-input-list-rows .monaco-highlighted-label>span{opacity:1}.quick-input-list .quick-input-list-entry .quick-input-list-entry-keybinding{margin-right:8px}.quick-input-list .quick-input-list-label-meta{opacity:.7;line-height:normal;text-overflow:ellipsis;overflow:hidden}.quick-input-list .monaco-highlighted-label .highlight{font-weight:700}.quick-input-list .quick-input-list-entry .quick-input-list-separator{margin-right:4px}.quick-input-list .quick-input-list-entry-action-bar{display:flex;flex:0;overflow:visible}.quick-input-list .quick-input-list-entry-action-bar .action-label{display:none}.quick-input-list .quick-input-list-entry-action-bar .action-label.codicon{margin-right:4px;padding:0 2px 2px}.quick-input-list .quick-input-list-entry-action-bar{margin-top:1px}.quick-input-list .quick-input-list-entry-action-bar{margin-right:4px}.quick-input-list .quick-input-list-entry .quick-input-list-entry-action-bar .action-label.always-visible,.quick-input-list .quick-input-list-entry:hover .quick-input-list-entry-action-bar .action-label,.quick-input-list .monaco-list-row.focused .quick-input-list-entry-action-bar .action-label{display:flex}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key,.quick-input-list .monaco-list-row.focused .quick-input-list-entry .quick-input-list-separator{color:inherit}.quick-input-list .monaco-list-row.focused .monaco-keybinding-key{background:none}.quick-input-list .quick-input-list-separator-as-item{font-weight:600;font-size:12px}.monaco-progress-container{width:100%;height:2px;overflow:hidden}.monaco-progress-container .progress-bit{width:2%;height:2px;position:absolute;left:0;display:none}.monaco-progress-container.active .progress-bit{display:inherit}.monaco-progress-container.discrete .progress-bit{left:0;transition:width .1s linear}.monaco-progress-container.discrete.done .progress-bit{width:100%}.monaco-progress-container.infinite .progress-bit{animation-name:progress;animation-duration:4s;animation-iteration-count:infinite;transform:translateZ(0);animation-timing-function:linear}.monaco-progress-container.infinite.infinite-long-running .progress-bit{animation-timing-function:steps(100)}@keyframes progress{0%{transform:translate(0) scaleX(1)}50%{transform:translate(2500%) scaleX(3)}to{transform:translate(4900%) scaleX(1)}}.monaco-component.multiDiffEditor{background:var(--vscode-multiDiffEditor-background);overflow-y:hidden}.monaco-component.multiDiffEditor .focused{--vscode-multiDiffEditor-border: var(--vscode-focusBorder)}.monaco-component.multiDiffEditor .multiDiffEntry{display:flex;flex-direction:column;flex:1;overflow:hidden}.monaco-component.multiDiffEditor .multiDiffEntry .collapse-button{margin:0 5px;cursor:pointer}.monaco-component.multiDiffEditor .multiDiffEntry .collapse-button a{display:block}.monaco-component.multiDiffEditor .multiDiffEntry .header{z-index:1000;background:var(--vscode-editor-background)}.monaco-component.multiDiffEditor .multiDiffEntry .header:not(.collapsed) .header-content{border-bottom:1px solid var(--vscode-sideBarSectionHeader-border)}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content{margin:8px 8px 0;padding:8px 5px;border-top:1px solid var(--vscode-multiDiffEditor-border);border-right:1px solid var(--vscode-multiDiffEditor-border);border-left:1px solid var(--vscode-multiDiffEditor-border);border-top-left-radius:2px;border-top-right-radius:2px;display:flex;align-items:center;color:var(--vscode-foreground);background:var(--vscode-multiDiffEditor-headerBackground)}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content.shadow{box-shadow:var(--vscode-scrollbar-shadow) 0 6px 6px -6px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path{display:flex;flex:1;min-width:0}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .title{font-size:14px;line-height:22px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .title.original{flex:1;min-width:0;text-overflow:ellipsis}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .file-path .status{font-weight:600;opacity:.75;margin:0 10px;line-height:22px}.monaco-component.multiDiffEditor .multiDiffEntry .header .header-content .actions{padding:0 8px}.monaco-component.multiDiffEditor .multiDiffEntry .editorParent{flex:1;display:flex;flex-direction:column;margin-right:8px;margin-left:8px;border-right:1px solid var(--vscode-multiDiffEditor-border);border-left:1px solid var(--vscode-multiDiffEditor-border);border-bottom:1px solid var(--vscode-multiDiffEditor-border);border-radius:2px;overflow:hidden}.monaco-component.multiDiffEditor .multiDiffEntry .editorContainer{flex:1}')),document.head.appendChild(A)}}catch(o){console.error("vite-plugin-css-injected-by-js",o)}})(); +(function(tx){typeof define=="function"&&define.amd?define(tx):tx()})(function(){"use strict";function tx(n,e){for(var t=0;ti[r]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}var Xm=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Kl(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function lee(n){if(n.__esModule)return n;var e=n.default;if(typeof e=="function"){var t=function i(){return this instanceof i?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};t.prototype=e.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(n).forEach(function(i){var r=Object.getOwnPropertyDescriptor(n,i);Object.defineProperty(t,i,r.get?r:{enumerable:!0,get:function(){return n[i]}})}),t}var uee={exports:{}},Oi={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var cee;function Cke(){if(cee)return Oi;cee=1;var n=Symbol.for("react.element"),e=Symbol.for("react.portal"),t=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),o=Symbol.for("react.provider"),s=Symbol.for("react.context"),a=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),u=Symbol.for("react.memo"),c=Symbol.for("react.lazy"),d=Symbol.iterator;function h(k){return k===null||typeof k!="object"?null:(k=d&&k[d]||k["@@iterator"],typeof k=="function"?k:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,f={};function b(k,X,U){this.props=k,this.context=X,this.refs=f,this.updater=U||g}b.prototype.isReactComponent={},b.prototype.setState=function(k,X){if(typeof k!="object"&&typeof k!="function"&&k!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,k,X,"setState")},b.prototype.forceUpdate=function(k){this.updater.enqueueForceUpdate(this,k,"forceUpdate")};function C(){}C.prototype=b.prototype;function v(k,X,U){this.props=k,this.context=X,this.refs=f,this.updater=U||g}var w=v.prototype=new C;w.constructor=v,m(w,b.prototype),w.isPureReactComponent=!0;var S=Array.isArray,F=Object.prototype.hasOwnProperty,L={current:null},D={key:!0,ref:!0,__self:!0,__source:!0};function A(k,X,U){var R,ee={},oe=null,se=null;if(X!=null)for(R in X.ref!==void 0&&(se=X.ref),X.key!==void 0&&(oe=""+X.key),X)F.call(X,R)&&!D.hasOwnProperty(R)&&(ee[R]=X[R]);var ue=arguments.length-2;if(ue===1)ee.children=U;else if(1=20.0.0",npm_config_node_gyp:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",XPC_SERVICE_NAME:"0",npm_package_version:"2.0.1",VSCODE_INJECTION:"1",HOME:"/Users/alexander",SHLVL:"2",VSCODE_GIT_ASKPASS_MAIN:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js",GOROOT:"/Users/alexander/.gvm/gos/go1.21.6",DYLD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",gvm_go_name:"go1.21.6",LOGNAME:"alexander",LESS:"-R",VSCODE_PATH_PREFIX:"/Users/alexander/.gvm/gos/go1.20/bin:",npm_config_cache:"/Users/alexander/.npm",GVM_OVERLAY_PREFIX:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay",npm_lifecycle_script:"tsc && vite build --config vite.package.config.ts --mode package",LC_CTYPE:"zh_CN.UTF-8",VSCODE_GIT_IPC_HANDLE:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/vscode-git-79a18f10f2.sock",NVM_BIN:"/Users/alexander/.nvm/versions/node/v16.10.0/bin",PKG_CONFIG_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:",GOPATH:"/Users/alexander/mygo",npm_config_user_agent:"npm/7.24.0 node/v16.10.0 darwin x64 workspaces/false",GIT_ASKPASS:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh",VSCODE_GIT_ASKPASS_NODE:"/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin)",GVM_PATH_BACKUP:"/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",COLORTERM:"truecolor",npm_config_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",npm_node_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NODE_ENV:"production"};function yke(n){if(n.sheet)return n.sheet;for(var e=0;e0?Wa(vy,--Iu):0,Cy--,Rs===10&&(Cy=1,uk--),Rs}function sc(){return Rs=Iu2||ox(Rs)>3?"":" "}function Zke(n,e){for(;--e&&sc()&&!(Rs<48||Rs>102||Rs>57&&Rs<65||Rs>70&&Rs<97););return rx(n,dk()+(e<6&&sg()==32&&sc()==32))}function PV(n){for(;sc();)switch(Rs){case n:return Iu;case 34:case 39:n!==34&&n!==39&&PV(Rs);break;case 40:n===41&&PV(n);break;case 92:sc();break}return Iu}function Tke(n,e){for(;sc()&&n+Rs!==57;)if(n+Rs===84&&sg()===47)break;return"/*"+rx(e,Iu-1)+"*"+ak(n===47?n:sc())}function Eke(n){for(;!ox(sg());)sc();return rx(n,Iu)}function Wke(n){return pee(gk("",null,null,null,[""],n=fee(n),0,[0],n))}function gk(n,e,t,i,r,o,s,a,l){for(var u=0,c=0,d=s,h=0,g=0,m=0,f=1,b=1,C=1,v=0,w="",S=r,F=o,L=i,D=w;b;)switch(m=v,v=sc()){case 40:if(m!=108&&Wa(D,d-1)==58){VV(D+=_r(hk(v),"&","&\f"),"&\f")!=-1&&(C=-1);break}case 34:case 39:case 91:D+=hk(v);break;case 9:case 10:case 13:case 32:D+=Mke(m);break;case 92:D+=Zke(dk()-1,7);continue;case 47:switch(sg()){case 42:case 47:lk(Rke(Tke(sc(),dk()),e,t),l);break;default:D+="/"}break;case 123*f:a[u++]=og(D)*C;case 125*f:case 59:case 0:switch(v){case 0:case 125:b=0;case 59+c:C==-1&&(D=_r(D,/\f/g,"")),g>0&&og(D)-d&&lk(g>32?Cee(D+";",i,t,d-1):Cee(_r(D," ","")+";",i,t,d-2),l);break;case 59:D+=";";default:if(lk(L=bee(D,e,t,u,c,r,a,w,S=[],F=[],d),o),v===123)if(c===0)gk(D,e,L,L,S,o,d,a,F);else switch(h===99&&Wa(D,3)===110?100:h){case 100:case 108:case 109:case 115:gk(n,L,L,i&&lk(bee(n,L,L,0,0,r,a,w,r,S=[],d),F),r,F,d,a,i?S:F);break;default:gk(D,L,L,L,[""],F,0,a,F)}}u=c=g=0,f=C=1,w=D="",d=s;break;case 58:d=1+og(D),g=m;default:if(f<1){if(v==123)--f;else if(v==125&&f++==0&&kke()==125)continue}switch(D+=ak(v),v*f){case 38:C=c>0?1:(D+="\f",-1);break;case 44:a[u++]=(og(D)-1)*C,C=1;break;case 64:sg()===45&&(D+=hk(sc())),h=sg(),c=d=og(w=D+=Eke(dk())),v++;break;case 45:m===45&&og(D)==2&&(f=0)}}return o}function bee(n,e,t,i,r,o,s,a,l,u,c){for(var d=r-1,h=r===0?o:[""],g=XV(h),m=0,f=0,b=0;m0?h[C]+" "+v:_r(v,/&\f/g,h[C])))&&(l[b++]=w);return ck(n,e,t,r===0?RV:a,l,u,c)}function Rke(n,e,t){return ck(n,e,t,dee,ak(Nke()),nx(n,2,-2),0)}function Cee(n,e,t,i){return ck(n,e,t,GV,nx(n,0,i),nx(n,i+1,-1),i)}function yy(n,e){for(var t="",i=XV(n),r=0;r6)switch(Wa(n,e+1)){case 109:if(Wa(n,e+4)!==45)break;case 102:return _r(n,/(.+:)(.+)-([^]+)/,"$1"+Fr+"$2-$3$1"+sk+(Wa(n,e+3)==108?"$3":"$2-$3"))+n;case 115:return~VV(n,"stretch")?yee(_r(n,"stretch","fill-available"),e)+n:n}break;case 4949:if(Wa(n,e+1)!==115)break;case 6444:switch(Wa(n,og(n)-3-(~VV(n,"!important")&&10))){case 107:return _r(n,":",":"+Fr)+n;case 101:return _r(n,/(.+:)([^;!]+)(;|!.+)?/,"$1"+Fr+(Wa(n,14)===45?"inline-":"")+"box$3$1"+Fr+"$2$3$1"+pl+"$2box$3")+n}break;case 5936:switch(Wa(n,e+11)){case 114:return Fr+n+pl+_r(n,/[svh]\w+-[tblr]{2}/,"tb")+n;case 108:return Fr+n+pl+_r(n,/[svh]\w+-[tblr]{2}/,"tb-rl")+n;case 45:return Fr+n+pl+_r(n,/[svh]\w+-[tblr]{2}/,"lr")+n}return Fr+n+pl+n+n}return n}var Uke=function(e,t,i,r){if(e.length>-1&&!e.return)switch(e.type){case GV:e.return=yee(e.value,e.length);break;case hee:return yy([ix(e,{value:_r(e.value,"@","@"+Fr)})],r);case RV:if(e.length)return Ake(e.props,function(o){switch(Dke(o,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return yy([ix(e,{props:[_r(o,/:(read-\w+)/,":"+sk+"$1")]})],r);case"::placeholder":return yy([ix(e,{props:[_r(o,/:(plac\w+)/,":"+Fr+"input-$1")]}),ix(e,{props:[_r(o,/:(plac\w+)/,":"+sk+"$1")]}),ix(e,{props:[_r(o,/:(plac\w+)/,pl+"input-$1")]})],r)}return""})}},Jke=[Uke],Kke=function(e){var t=e.key;if(t==="css"){var i=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(i,function(f){var b=f.getAttribute("data-emotion");b.indexOf(" ")!==-1&&(document.head.appendChild(f),f.setAttribute("data-s",""))})}var r=e.stylisPlugins||Jke,o={},s,a=[];s=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),function(f){for(var b=f.getAttribute("data-emotion").split(" "),C=1;C=4;++i,r-=4)t=n.charCodeAt(i)&255|(n.charCodeAt(++i)&255)<<8|(n.charCodeAt(++i)&255)<<16|(n.charCodeAt(++i)&255)<<24,t=(t&65535)*1540483477+((t>>>16)*59797<<16),t^=t>>>24,e=(t&65535)*1540483477+((t>>>16)*59797<<16)^(e&65535)*1540483477+((e>>>16)*59797<<16);switch(r){case 3:e^=(n.charCodeAt(i+2)&255)<<16;case 2:e^=(n.charCodeAt(i+1)&255)<<8;case 1:e^=n.charCodeAt(i)&255,e=(e&65535)*1540483477+((e>>>16)*59797<<16)}return e^=e>>>13,e=(e&65535)*1540483477+((e>>>16)*59797<<16),((e^e>>>15)>>>0).toString(36)}var iMe={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},rMe={TERM_PROGRAM:"vscode",NODE:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NVM_CD_FLAGS:"-q",INIT_CWD:"/Users/alexander/my-code/github/openapi-ui",SHELL:"/bin/zsh",TERM:"xterm-256color",TMPDIR:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/",npm_config_metrics_registry:"https://registry.npmjs.org/",npm_config_global_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",TERM_PROGRAM_VERSION:"1.88.1",GVM_ROOT:"/Users/alexander/.gvm",MallocNanoZone:"0",ORIGINAL_XDG_CURRENT_DESKTOP:"undefined",ZDOTDIR:"/Users/alexander",COLOR:"1",npm_config_noproxy:"",ZSH:"/Users/alexander/.oh-my-zsh",PNPM_HOME:"/Users/alexander/Library/pnpm",npm_config_local_prefix:"/Users/alexander/my-code/github/openapi-ui",USER:"alexander",NVM_DIR:"/Users/alexander/.nvm",LD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",COMMAND_MODE:"unix2003",npm_config_globalconfig:"/Users/alexander/.nvm/versions/node/v16.10.0/etc/npmrc",SSH_AUTH_SOCK:"/private/tmp/com.apple.launchd.jaFD8W3kId/Listeners",__CF_USER_TEXT_ENCODING:"0x1F5:0x19:0x34",npm_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/bin/npm-cli.js",PAGER:"less",LSCOLORS:"Gxfxcxdxbxegedabagacad",PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.bin:/Users/alexander/my-code/github/node_modules/.bin:/Users/alexander/my-code/node_modules/.bin:/Users/alexander/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",npm_package_json:"/Users/alexander/my-code/github/openapi-ui/package.json",__CFBundleIdentifier:"com.microsoft.VSCode",USER_ZDOTDIR:"/Users/alexander",npm_config_auto_install_peers:"true",npm_config_init_module:"/Users/alexander/.npm-init.js",npm_config_userconfig:"/Users/alexander/.npmrc",PWD:"/Users/alexander/my-code/github/openapi-ui",GVM_VERSION:"1.0.22",npm_command:"run-script",EDITOR:"vi",npm_lifecycle_event:"build:package",LANG:"zh_CN.UTF-8",npm_package_name:"openapi-ui-dist",gvm_pkgset_name:"global",NODE_PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.pnpm/node_modules",XPC_FLAGS:"0x0",VSCODE_GIT_ASKPASS_EXTRA_ARGS:"",npm_package_engines_node:"^18.0.0 || >=20.0.0",npm_config_node_gyp:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",XPC_SERVICE_NAME:"0",npm_package_version:"2.0.1",VSCODE_INJECTION:"1",HOME:"/Users/alexander",SHLVL:"2",VSCODE_GIT_ASKPASS_MAIN:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js",GOROOT:"/Users/alexander/.gvm/gos/go1.21.6",DYLD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",gvm_go_name:"go1.21.6",LOGNAME:"alexander",LESS:"-R",VSCODE_PATH_PREFIX:"/Users/alexander/.gvm/gos/go1.20/bin:",npm_config_cache:"/Users/alexander/.npm",GVM_OVERLAY_PREFIX:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay",npm_lifecycle_script:"tsc && vite build --config vite.package.config.ts --mode package",LC_CTYPE:"zh_CN.UTF-8",VSCODE_GIT_IPC_HANDLE:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/vscode-git-79a18f10f2.sock",NVM_BIN:"/Users/alexander/.nvm/versions/node/v16.10.0/bin",PKG_CONFIG_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:",GOPATH:"/Users/alexander/mygo",npm_config_user_agent:"npm/7.24.0 node/v16.10.0 darwin x64 workspaces/false",GIT_ASKPASS:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh",VSCODE_GIT_ASKPASS_NODE:"/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin)",GVM_PATH_BACKUP:"/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",COLORTERM:"truecolor",npm_config_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",npm_node_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NODE_ENV:"production"},oMe=/[A-Z]|^ms/g,sMe=/_EMO_([^_]+?)_([^]*?)_EMO_/g,_ee=function(e){return e.charCodeAt(1)===45},Dee=function(e){return e!=null&&typeof e!="boolean"},OV=Pke(function(n){return _ee(n)?n:n.replace(oMe,"-$&").toLowerCase()}),Aee=function(e,t){switch(e){case"animation":case"animationName":if(typeof t=="string")return t.replace(sMe,function(i,r,o){return ag={name:r,styles:o,next:ag},r})}return iMe[e]!==1&&!_ee(e)&&typeof t=="number"&&t!==0?t+"px":t},aMe="Component selectors can only be used in conjunction with @emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware compiler transform.";function sx(n,e,t){if(t==null)return"";if(t.__emotion_styles!==void 0)return t;switch(typeof t){case"boolean":return"";case"object":{if(t.anim===1)return ag={name:t.name,styles:t.styles,next:ag},t.name;if(t.styles!==void 0){var i=t.next;if(i!==void 0)for(;i!==void 0;)ag={name:i.name,styles:i.styles,next:ag},i=i.next;var r=t.styles+";";return r}return lMe(n,e,t)}case"function":{if(n!==void 0){var o=ag,s=t(n);return ag=o,sx(n,e,s)}break}}if(e==null)return t;var a=e[t];return a!==void 0?a:t}function lMe(n,e,t){var i="";if(Array.isArray(t))for(var r=0;r=20.0.0",npm_config_node_gyp:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",XPC_SERVICE_NAME:"0",npm_package_version:"2.0.1",VSCODE_INJECTION:"1",HOME:"/Users/alexander",SHLVL:"2",VSCODE_GIT_ASKPASS_MAIN:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js",GOROOT:"/Users/alexander/.gvm/gos/go1.21.6",DYLD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",gvm_go_name:"go1.21.6",LOGNAME:"alexander",LESS:"-R",VSCODE_PATH_PREFIX:"/Users/alexander/.gvm/gos/go1.20/bin:",npm_config_cache:"/Users/alexander/.npm",GVM_OVERLAY_PREFIX:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay",npm_lifecycle_script:"tsc && vite build --config vite.package.config.ts --mode package",LC_CTYPE:"zh_CN.UTF-8",VSCODE_GIT_IPC_HANDLE:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/vscode-git-79a18f10f2.sock",NVM_BIN:"/Users/alexander/.nvm/versions/node/v16.10.0/bin",PKG_CONFIG_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:",GOPATH:"/Users/alexander/mygo",npm_config_user_agent:"npm/7.24.0 node/v16.10.0 darwin x64 workspaces/false",GIT_ASKPASS:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh",VSCODE_GIT_ASKPASS_NODE:"/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin)",GVM_PATH_BACKUP:"/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",COLORTERM:"truecolor",npm_config_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",npm_node_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NODE_ENV:"production"},ax={}.hasOwnProperty,Zee=I.createContext(typeof HTMLElement<"u"?Kke({key:"css"}):null);Zee.Provider;var Tee=function(e){return I.forwardRef(function(t,i){var r=I.useContext(Zee);return e(t,r,i)})},Eee=I.createContext({}),zV="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",YV=function(e,t){var i={};for(var r in t)ax.call(t,r)&&(i[r]=t[r]);return i[zV]=e,i},hMe=function(e){var t=e.cache,i=e.serialized,r=e.isStringTag;return Lee(t,i,r),cMe(function(){return Fee(t,i,r)}),null},gMe=Tee(function(n,e,t){var i=n.css;typeof i=="string"&&e.registered[i]!==void 0&&(i=e.registered[i]);var r=n[zV],o=[i],s="";typeof n.className=="string"?s=tMe(e.registered,o,n.className):n.className!=null&&(s=n.className+" ");var a=BV(o,void 0,I.useContext(Eee));s+=e.key+"-"+a.name;var l={};for(var u in n)ax.call(n,u)&&u!=="css"&&u!==zV&&dMe.NODE_ENV==="production"&&(l[u]=n[u]);return l.ref=t,l.className=s,I.createElement(I.Fragment,null,I.createElement(hMe,{cache:e,serialized:a,isStringTag:typeof r=="string"}),I.createElement(r,l))}),HV=gMe,mMe=function(e,t){var i=arguments;if(t==null||!ax.call(t,"css"))return I.createElement.apply(void 0,i);var r=i.length,o=new Array(r);o[0]=HV,o[1]=YV(e,t);for(var s=2;s1&&arguments[1]!==void 0?arguments[1]:{},t=[];return Ye.Children.forEach(n,function(i){i==null&&!e.keepEmpty||(Array.isArray(i)?t=t.concat(Kc(i)):lx.isFragment(i)&&i.props?t=t.concat(Kc(i.props.children,e)):t.push(i))}),t}var UV={},CMe=function(e){};function vMe(n,e){}function yMe(n,e){}function IMe(){UV={}}function Vee(n,e,t){!e&&!UV[t]&&(n(!1,t),UV[t]=!0)}function ia(n,e){Vee(vMe,n,e)}function Xee(n,e){Vee(yMe,n,e)}ia.preMessage=CMe,ia.resetWarned=IMe,ia.noteOnce=Xee;function Vn(n){"@babel/helpers - typeof";return Vn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Vn(n)}function wMe(n,e){if(Vn(n)!="object"||!n)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var i=t.call(n,e||"default");if(Vn(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function Pee(n){var e=wMe(n,"string");return Vn(e)=="symbol"?e:e+""}function me(n,e,t){return e=Pee(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Oee(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(n);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(n,r).enumerable})),t.push.apply(t,i)}return t}function Se(n){for(var e=1;e>>1,U=B[X];if(0>>1;Xr(oe,k))ser(ue,oe)?(B[X]=ue,B[se]=k,X=se):(B[X]=oe,B[ee]=k,X=ee);else if(ser(ue,k))B[X]=ue,B[se]=k,X=se;else break e}}return Y}function r(B,Y){var k=B.sortIndex-Y.sortIndex;return k!==0?k:B.id-Y.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;n.unstable_now=function(){return o.now()}}else{var s=Date,a=s.now();n.unstable_now=function(){return s.now()-a}}var l=[],u=[],c=1,d=null,h=3,g=!1,m=!1,f=!1,b=typeof setTimeout=="function"?setTimeout:null,C=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function w(B){for(var Y=t(u);Y!==null;){if(Y.callback===null)i(u);else if(Y.startTime<=B)i(u),Y.sortIndex=Y.expirationTime,e(l,Y);else break;Y=t(u)}}function S(B){if(f=!1,w(B),!m)if(t(l)!==null)m=!0,O(F);else{var Y=t(u);Y!==null&&P(S,Y.startTime-B)}}function F(B,Y){m=!1,f&&(f=!1,C(A),A=-1),g=!0;var k=h;try{for(w(Y),d=t(l);d!==null&&(!(d.expirationTime>Y)||B&&!Z());){var X=d.callback;if(typeof X=="function"){d.callback=null,h=d.priorityLevel;var U=X(d.expirationTime<=Y);Y=n.unstable_now(),typeof U=="function"?d.callback=U:d===t(l)&&i(l),w(Y)}else i(l);d=t(l)}if(d!==null)var R=!0;else{var ee=t(u);ee!==null&&P(S,ee.startTime-Y),R=!1}return R}finally{d=null,h=k,g=!1}}var L=!1,D=null,A=-1,M=5,W=-1;function Z(){return!(n.unstable_now()-WB||125X?(B.sortIndex=k,e(u,B),t(l)===null&&B===t(u)&&(f?(C(A),A=-1):f=!0,P(S,k-X))):(B.sortIndex=U,e(l,B),m||g||(m=!0,O(F))),B},n.unstable_shouldYield=Z,n.unstable_wrapCallback=function(B){var Y=h;return function(){var k=h;h=Y;try{return B.apply(this,arguments)}finally{h=k}}}}(KV)),KV}var Yee;function xMe(){return Yee||(Yee=1,JV.exports=SMe()),JV.exports}/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Hee;function LMe(){if(Hee)return wu;Hee=1;var n=I,e=xMe();function t(p){for(var y="https://reactjs.org/docs/error-decoder.html?invariant="+p,_=1;_"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),l=Object.prototype.hasOwnProperty,u=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,c={},d={};function h(p){return l.call(d,p)?!0:l.call(c,p)?!1:u.test(p)?d[p]=!0:(c[p]=!0,!1)}function g(p,y,_,N){if(_!==null&&_.type===0)return!1;switch(typeof y){case"function":case"symbol":return!0;case"boolean":return N?!1:_!==null?!_.acceptsBooleans:(p=p.toLowerCase().slice(0,5),p!=="data-"&&p!=="aria-");default:return!1}}function m(p,y,_,N){if(y===null||typeof y>"u"||g(p,y,_,N))return!0;if(N)return!1;if(_!==null)switch(_.type){case 3:return!y;case 4:return y===!1;case 5:return isNaN(y);case 6:return isNaN(y)||1>y}return!1}function f(p,y,_,N,G,H,ie){this.acceptsBooleans=y===2||y===3||y===4,this.attributeName=N,this.attributeNamespace=G,this.mustUseProperty=_,this.propertyName=p,this.type=y,this.sanitizeURL=H,this.removeEmptyString=ie}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(p){b[p]=new f(p,0,!1,p,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(p){var y=p[0];b[y]=new f(y,1,!1,p[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(p){b[p]=new f(p,2,!1,p.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(p){b[p]=new f(p,2,!1,p,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(p){b[p]=new f(p,3,!1,p.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(p){b[p]=new f(p,3,!0,p,null,!1,!1)}),["capture","download"].forEach(function(p){b[p]=new f(p,4,!1,p,null,!1,!1)}),["cols","rows","size","span"].forEach(function(p){b[p]=new f(p,6,!1,p,null,!1,!1)}),["rowSpan","start"].forEach(function(p){b[p]=new f(p,5,!1,p.toLowerCase(),null,!1,!1)});var C=/[\-:]([a-z])/g;function v(p){return p[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(p){var y=p.replace(C,v);b[y]=new f(y,1,!1,p,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(p){var y=p.replace(C,v);b[y]=new f(y,1,!1,p,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(p){var y=p.replace(C,v);b[y]=new f(y,1,!1,p,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(p){b[p]=new f(p,1,!1,p.toLowerCase(),null,!1,!1)}),b.xlinkHref=new f("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(p){b[p]=new f(p,1,!1,p.toLowerCase(),null,!0,!0)});function w(p,y,_,N){var G=b.hasOwnProperty(y)?b[y]:null;(G!==null?G.type!==0:N||!(2Fe||G[ie]!==H[Fe]){var Ge=` +`+G[ie].replace(" at new "," at ");return p.displayName&&Ge.includes("")&&(Ge=Ge.replace("",p.displayName)),Ge}while(1<=ie&&0<=Fe);break}}}finally{R=!1,Error.prepareStackTrace=_}return(p=p?p.displayName||p.name:"")?U(p):""}function oe(p){switch(p.tag){case 5:return U(p.type);case 16:return U("Lazy");case 13:return U("Suspense");case 19:return U("SuspenseList");case 0:case 2:case 15:return p=ee(p.type,!1),p;case 11:return p=ee(p.type.render,!1),p;case 1:return p=ee(p.type,!0),p;default:return""}}function se(p){if(p==null)return null;if(typeof p=="function")return p.displayName||p.name||null;if(typeof p=="string")return p;switch(p){case D:return"Fragment";case L:return"Portal";case M:return"Profiler";case A:return"StrictMode";case E:return"Suspense";case V:return"SuspenseList"}if(typeof p=="object")switch(p.$$typeof){case Z:return(p.displayName||"Context")+".Consumer";case W:return(p._context.displayName||"Context")+".Provider";case T:var y=p.render;return p=p.displayName,p||(p=y.displayName||y.name||"",p=p!==""?"ForwardRef("+p+")":"ForwardRef"),p;case z:return y=p.displayName||null,y!==null?y:se(p.type)||"Memo";case O:y=p._payload,p=p._init;try{return se(p(y))}catch{}}return null}function ue(p){var y=p.type;switch(p.tag){case 24:return"Cache";case 9:return(y.displayName||"Context")+".Consumer";case 10:return(y._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return p=y.render,p=p.displayName||p.name||"",y.displayName||(p!==""?"ForwardRef("+p+")":"ForwardRef");case 7:return"Fragment";case 5:return y;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return se(y);case 8:return y===A?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof y=="function")return y.displayName||y.name||null;if(typeof y=="string")return y}return null}function ce(p){switch(typeof p){case"boolean":case"number":case"string":case"undefined":return p;case"object":return p;default:return""}}function ye(p){var y=p.type;return(p=p.nodeName)&&p.toLowerCase()==="input"&&(y==="checkbox"||y==="radio")}function fe(p){var y=ye(p)?"checked":"value",_=Object.getOwnPropertyDescriptor(p.constructor.prototype,y),N=""+p[y];if(!p.hasOwnProperty(y)&&typeof _<"u"&&typeof _.get=="function"&&typeof _.set=="function"){var G=_.get,H=_.set;return Object.defineProperty(p,y,{configurable:!0,get:function(){return G.call(this)},set:function(ie){N=""+ie,H.call(this,ie)}}),Object.defineProperty(p,y,{enumerable:_.enumerable}),{getValue:function(){return N},setValue:function(ie){N=""+ie},stopTracking:function(){p._valueTracker=null,delete p[y]}}}}function le(p){p._valueTracker||(p._valueTracker=fe(p))}function Ze(p){if(!p)return!1;var y=p._valueTracker;if(!y)return!0;var _=y.getValue(),N="";return p&&(N=ye(p)?p.checked?"true":"false":p.value),p=N,p!==_?(y.setValue(p),!0):!1}function ke(p){if(p=p||(typeof document<"u"?document:void 0),typeof p>"u")return null;try{return p.activeElement||p.body}catch{return p.body}}function Ne(p,y){var _=y.checked;return k({},y,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:_??p._wrapperState.initialChecked})}function ze(p,y){var _=y.defaultValue==null?"":y.defaultValue,N=y.checked!=null?y.checked:y.defaultChecked;_=ce(y.value!=null?y.value:_),p._wrapperState={initialChecked:N,initialValue:_,controlled:y.type==="checkbox"||y.type==="radio"?y.checked!=null:y.value!=null}}function Ke(p,y){y=y.checked,y!=null&&w(p,"checked",y,!1)}function ut(p,y){Ke(p,y);var _=ce(y.value),N=y.type;if(_!=null)N==="number"?(_===0&&p.value===""||p.value!=_)&&(p.value=""+_):p.value!==""+_&&(p.value=""+_);else if(N==="submit"||N==="reset"){p.removeAttribute("value");return}y.hasOwnProperty("value")?ot(p,y.type,_):y.hasOwnProperty("defaultValue")&&ot(p,y.type,ce(y.defaultValue)),y.checked==null&&y.defaultChecked!=null&&(p.defaultChecked=!!y.defaultChecked)}function Ct(p,y,_){if(y.hasOwnProperty("value")||y.hasOwnProperty("defaultValue")){var N=y.type;if(!(N!=="submit"&&N!=="reset"||y.value!==void 0&&y.value!==null))return;y=""+p._wrapperState.initialValue,_||y===p.value||(p.value=y),p.defaultValue=y}_=p.name,_!==""&&(p.name=""),p.defaultChecked=!!p._wrapperState.initialChecked,_!==""&&(p.name=_)}function ot(p,y,_){(y!=="number"||ke(p.ownerDocument)!==p)&&(_==null?p.defaultValue=""+p._wrapperState.initialValue:p.defaultValue!==""+_&&(p.defaultValue=""+_))}var he=Array.isArray;function de(p,y,_,N){if(p=p.options,y){y={};for(var G=0;G<_.length;G++)y["$"+_[G]]=!0;for(_=0;_"+y.valueOf().toString()+"",y=Le.firstChild;p.firstChild;)p.removeChild(p.firstChild);for(;y.firstChild;)p.appendChild(y.firstChild)}});function Oe(p,y){if(y){var _=p.firstChild;if(_&&_===p.lastChild&&_.nodeType===3){_.nodeValue=y;return}}p.textContent=y}var tt={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},We=["Webkit","ms","Moz","O"];Object.keys(tt).forEach(function(p){We.forEach(function(y){y=y+p.charAt(0).toUpperCase()+p.substring(1),tt[y]=tt[p]})});function ht(p,y,_){return y==null||typeof y=="boolean"||y===""?"":_||typeof y!="number"||y===0||tt.hasOwnProperty(p)&&tt[p]?(""+y).trim():y+"px"}function He(p,y){p=p.style;for(var _ in y)if(y.hasOwnProperty(_)){var N=_.indexOf("--")===0,G=ht(_,y[_],N);_==="float"&&(_="cssFloat"),N?p.setProperty(_,G):p[_]=G}}var Re=k({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function dt(p,y){if(y){if(Re[p]&&(y.children!=null||y.dangerouslySetInnerHTML!=null))throw Error(t(137,p));if(y.dangerouslySetInnerHTML!=null){if(y.children!=null)throw Error(t(60));if(typeof y.dangerouslySetInnerHTML!="object"||!("__html"in y.dangerouslySetInnerHTML))throw Error(t(61))}if(y.style!=null&&typeof y.style!="object")throw Error(t(62))}}function yt(p,y){if(p.indexOf("-")===-1)return typeof y.is=="string";switch(p){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Kt=null;function Wt(p){return p=p.target||p.srcElement||window,p.correspondingUseElement&&(p=p.correspondingUseElement),p.nodeType===3?p.parentNode:p}var Ut=null,Nn=null,di=null;function pe(p){if(p=BN(p)){if(typeof Ut!="function")throw Error(t(280));var y=p.stateNode;y&&(y=QG(y),Ut(p.stateNode,p.type,y))}}function xe(p){Nn?di?di.push(p):di=[p]:Nn=p}function _e(){if(Nn){var p=Nn,y=di;if(di=Nn=null,pe(p),y)for(p=0;p>>=0,p===0?32:31-(Ma(p)/gl|0)|0}var gi=64,rn=4194304;function mn(p){switch(p&-p){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return p&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return p&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return p}}function Di(p,y){var _=p.pendingLanes;if(_===0)return 0;var N=0,G=p.suspendedLanes,H=p.pingedLanes,ie=_&268435455;if(ie!==0){var Fe=ie&~G;Fe!==0?N=mn(Fe):(H&=ie,H!==0&&(N=mn(H)))}else ie=_&~G,ie!==0?N=mn(ie):H!==0&&(N=mn(H));if(N===0)return 0;if(y!==0&&y!==N&&!(y&G)&&(G=N&-N,H=y&-y,G>=H||G===16&&(H&4194240)!==0))return y;if(N&4&&(N|=_&16),y=p.entangledLanes,y!==0)for(p=p.entanglements,y&=N;0_;_++)y.push(p);return y}function Gi(p,y,_){p.pendingLanes|=y,y!==536870912&&(p.suspendedLanes=0,p.pingedLanes=0),p=p.eventTimes,y=31-Ko(y),p[y]=_}function bo(p,y){var _=p.pendingLanes&~y;p.pendingLanes=y,p.suspendedLanes=0,p.pingedLanes=0,p.expiredLanes&=y,p.mutableReadLanes&=y,p.entangledLanes&=y,y=p.entanglements;var N=p.eventTimes;for(p=p.expirationTimes;0<_;){var G=31-Ko(_),H=1<=TN),sAe=" ",aAe=!1;function lAe(p,y){switch(p){case"keyup":return FHt.indexOf(y.keyCode)!==-1;case"keydown":return y.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function uAe(p){return p=p.detail,typeof p=="object"&&"data"in p?p.data:null}var ES=!1;function DHt(p,y){switch(p){case"compositionend":return uAe(y);case"keypress":return y.which!==32?null:(aAe=!0,sAe);case"textInput":return p=y.data,p===sAe&&aAe?null:p;default:return null}}function AHt(p,y){if(ES)return p==="compositionend"||!R$&&lAe(p,y)?(p=eAe(),XG=k$=d1=null,ES=!1,p):null;switch(p){case"paste":return null;case"keypress":if(!(y.ctrlKey||y.altKey||y.metaKey)||y.ctrlKey&&y.altKey){if(y.char&&1=y)return{node:_,offset:y-p};p=N}e:{for(;_;){if(_.nextSibling){_=_.nextSibling;break e}_=_.parentNode}_=void 0}_=pAe(_)}}function CAe(p,y){return p&&y?p===y?!0:p&&p.nodeType===3?!1:y&&y.nodeType===3?CAe(p,y.parentNode):"contains"in p?p.contains(y):p.compareDocumentPosition?!!(p.compareDocumentPosition(y)&16):!1:!1}function vAe(){for(var p=window,y=ke();y instanceof p.HTMLIFrameElement;){try{var _=typeof y.contentWindow.location.href=="string"}catch{_=!1}if(_)p=y.contentWindow;else break;y=ke(p.document)}return y}function X$(p){var y=p&&p.nodeName&&p.nodeName.toLowerCase();return y&&(y==="input"&&(p.type==="text"||p.type==="search"||p.type==="tel"||p.type==="url"||p.type==="password")||y==="textarea"||p.contentEditable==="true")}function GHt(p){var y=vAe(),_=p.focusedElem,N=p.selectionRange;if(y!==_&&_&&_.ownerDocument&&CAe(_.ownerDocument.documentElement,_)){if(N!==null&&X$(_)){if(y=N.start,p=N.end,p===void 0&&(p=y),"selectionStart"in _)_.selectionStart=y,_.selectionEnd=Math.min(p,_.value.length);else if(p=(y=_.ownerDocument||document)&&y.defaultView||window,p.getSelection){p=p.getSelection();var G=_.textContent.length,H=Math.min(N.start,G);N=N.end===void 0?H:Math.min(N.end,G),!p.extend&&H>N&&(G=N,N=H,H=G),G=bAe(_,H);var ie=bAe(_,N);G&&ie&&(p.rangeCount!==1||p.anchorNode!==G.node||p.anchorOffset!==G.offset||p.focusNode!==ie.node||p.focusOffset!==ie.offset)&&(y=y.createRange(),y.setStart(G.node,G.offset),p.removeAllRanges(),H>N?(p.addRange(y),p.extend(ie.node,ie.offset)):(y.setEnd(ie.node,ie.offset),p.addRange(y)))}}for(y=[],p=_;p=p.parentNode;)p.nodeType===1&&y.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof _.focus=="function"&&_.focus(),_=0;_=document.documentMode,WS=null,P$=null,GN=null,O$=!1;function yAe(p,y,_){var N=_.window===_?_.document:_.nodeType===9?_:_.ownerDocument;O$||WS==null||WS!==ke(N)||(N=WS,"selectionStart"in N&&X$(N)?N={start:N.selectionStart,end:N.selectionEnd}:(N=(N.ownerDocument&&N.ownerDocument.defaultView||window).getSelection(),N={anchorNode:N.anchorNode,anchorOffset:N.anchorOffset,focusNode:N.focusNode,focusOffset:N.focusOffset}),GN&&RN(GN,N)||(GN=N,N=JG(P$,"onSelect"),0PS||(p.current=eq[PS],eq[PS]=null,PS--)}function Do(p,y){PS++,eq[PS]=p.current,p.current=y}var f1={},Yl=m1(f1),tc=m1(!1),sy=f1;function OS(p,y){var _=p.type.contextTypes;if(!_)return f1;var N=p.stateNode;if(N&&N.__reactInternalMemoizedUnmaskedChildContext===y)return N.__reactInternalMemoizedMaskedChildContext;var G={},H;for(H in _)G[H]=y[H];return N&&(p=p.stateNode,p.__reactInternalMemoizedUnmaskedChildContext=y,p.__reactInternalMemoizedMaskedChildContext=G),G}function nc(p){return p=p.childContextTypes,p!=null}function $G(){Xo(tc),Xo(Yl)}function EAe(p,y,_){if(Yl.current!==f1)throw Error(t(168));Do(Yl,y),Do(tc,_)}function WAe(p,y,_){var N=p.stateNode;if(y=y.childContextTypes,typeof N.getChildContext!="function")return _;N=N.getChildContext();for(var G in N)if(!(G in y))throw Error(t(108,ue(p)||"Unknown",G));return k({},_,N)}function qG(p){return p=(p=p.stateNode)&&p.__reactInternalMemoizedMergedChildContext||f1,sy=Yl.current,Do(Yl,p),Do(tc,tc.current),!0}function RAe(p,y,_){var N=p.stateNode;if(!N)throw Error(t(169));_?(p=WAe(p,y,sy),N.__reactInternalMemoizedMergedChildContext=p,Xo(tc),Xo(Yl),Do(Yl,p)):Xo(tc),Do(tc,_)}var Fp=null,eV=!1,tq=!1;function GAe(p){Fp===null?Fp=[p]:Fp.push(p)}function jHt(p){eV=!0,GAe(p)}function p1(){if(!tq&&Fp!==null){tq=!0;var p=0,y=cn;try{var _=Fp;for(cn=1;p<_.length;p++){var N=_[p];do N=N(!0);while(N!==null)}Fp=null,eV=!1}catch(G){throw Fp!==null&&(Fp=Fp.slice(p+1)),Kn(Ro,p1),G}finally{cn=y,tq=!1}}return null}var BS=[],zS=0,tV=null,nV=0,Wd=[],Rd=0,ay=null,_p=1,Dp="";function ly(p,y){BS[zS++]=nV,BS[zS++]=tV,tV=p,nV=y}function VAe(p,y,_){Wd[Rd++]=_p,Wd[Rd++]=Dp,Wd[Rd++]=ay,ay=p;var N=_p;p=Dp;var G=32-Ko(N)-1;N&=~(1<>=ie,G-=ie,_p=1<<32-Ko(y)+G|_<pi?(Ea=si,si=null):Ea=si.sibling;var Lr=Et(Qe,si,$e[pi],Jt);if(Lr===null){si===null&&(si=Ea);break}p&&si&&Lr.alternate===null&&y(Qe,si),Xe=H(Lr,Xe,pi),oi===null?Gn=Lr:oi.sibling=Lr,oi=Lr,si=Ea}if(pi===$e.length)return _(Qe,si),jo&&ly(Qe,pi),Gn;if(si===null){for(;pi<$e.length;pi++)si=Xt(Qe,$e[pi],Jt),si!==null&&(Xe=H(si,Xe,pi),oi===null?Gn=si:oi.sibling=si,oi=si);return jo&&ly(Qe,pi),Gn}for(si=N(Qe,si);pi<$e.length;pi++)Ea=hn(si,Qe,pi,$e[pi],Jt),Ea!==null&&(p&&Ea.alternate!==null&&si.delete(Ea.key===null?pi:Ea.key),Xe=H(Ea,Xe,pi),oi===null?Gn=Ea:oi.sibling=Ea,oi=Ea);return p&&si.forEach(function(L1){return y(Qe,L1)}),jo&&ly(Qe,pi),Gn}function kn(Qe,Xe,$e,Jt){var Gn=Y($e);if(typeof Gn!="function")throw Error(t(150));if($e=Gn.call($e),$e==null)throw Error(t(151));for(var oi=Gn=null,si=Xe,pi=Xe=0,Ea=null,Lr=$e.next();si!==null&&!Lr.done;pi++,Lr=$e.next()){si.index>pi?(Ea=si,si=null):Ea=si.sibling;var L1=Et(Qe,si,Lr.value,Jt);if(L1===null){si===null&&(si=Ea);break}p&&si&&L1.alternate===null&&y(Qe,si),Xe=H(L1,Xe,pi),oi===null?Gn=L1:oi.sibling=L1,oi=L1,si=Ea}if(Lr.done)return _(Qe,si),jo&&ly(Qe,pi),Gn;if(si===null){for(;!Lr.done;pi++,Lr=$e.next())Lr=Xt(Qe,Lr.value,Jt),Lr!==null&&(Xe=H(Lr,Xe,pi),oi===null?Gn=Lr:oi.sibling=Lr,oi=Lr);return jo&&ly(Qe,pi),Gn}for(si=N(Qe,si);!Lr.done;pi++,Lr=$e.next())Lr=hn(si,Qe,pi,Lr.value,Jt),Lr!==null&&(p&&Lr.alternate!==null&&si.delete(Lr.key===null?pi:Lr.key),Xe=H(Lr,Xe,pi),oi===null?Gn=Lr:oi.sibling=Lr,oi=Lr);return p&&si.forEach(function(N6t){return y(Qe,N6t)}),jo&&ly(Qe,pi),Gn}function Es(Qe,Xe,$e,Jt){if(typeof $e=="object"&&$e!==null&&$e.type===D&&$e.key===null&&($e=$e.props.children),typeof $e=="object"&&$e!==null){switch($e.$$typeof){case F:e:{for(var Gn=$e.key,oi=Xe;oi!==null;){if(oi.key===Gn){if(Gn=$e.type,Gn===D){if(oi.tag===7){_(Qe,oi.sibling),Xe=G(oi,$e.props.children),Xe.return=Qe,Qe=Xe;break e}}else if(oi.elementType===Gn||typeof Gn=="object"&&Gn!==null&&Gn.$$typeof===O&&$Ae(Gn)===oi.type){_(Qe,oi.sibling),Xe=G(oi,$e.props),Xe.ref=zN(Qe,oi,$e),Xe.return=Qe,Qe=Xe;break e}_(Qe,oi);break}else y(Qe,oi);oi=oi.sibling}$e.type===D?(Xe=py($e.props.children,Qe.mode,Jt,$e.key),Xe.return=Qe,Qe=Xe):(Jt=DV($e.type,$e.key,$e.props,null,Qe.mode,Jt),Jt.ref=zN(Qe,Xe,$e),Jt.return=Qe,Qe=Jt)}return ie(Qe);case L:e:{for(oi=$e.key;Xe!==null;){if(Xe.key===oi)if(Xe.tag===4&&Xe.stateNode.containerInfo===$e.containerInfo&&Xe.stateNode.implementation===$e.implementation){_(Qe,Xe.sibling),Xe=G(Xe,$e.children||[]),Xe.return=Qe,Qe=Xe;break e}else{_(Qe,Xe);break}else y(Qe,Xe);Xe=Xe.sibling}Xe=$q($e,Qe.mode,Jt),Xe.return=Qe,Qe=Xe}return ie(Qe);case O:return oi=$e._init,Es(Qe,Xe,oi($e._payload),Jt)}if(he($e))return Fn(Qe,Xe,$e,Jt);if(Y($e))return kn(Qe,Xe,$e,Jt);uV(Qe,$e)}return typeof $e=="string"&&$e!==""||typeof $e=="number"?($e=""+$e,Xe!==null&&Xe.tag===6?(_(Qe,Xe.sibling),Xe=G(Xe,$e),Xe.return=Qe,Qe=Xe):(_(Qe,Xe),Xe=Qq($e,Qe.mode,Jt),Xe.return=Qe,Qe=Xe),ie(Qe)):_(Qe,Xe)}return Es}var JS=qAe(!0),eNe=qAe(!1),YN={},Rm=m1(YN),HN=m1(YN),UN=m1(YN);function cy(p){if(p===YN)throw Error(t(174));return p}function fq(p,y){switch(Do(UN,y),Do(HN,p),Do(Rm,YN),p=y.nodeType,p){case 9:case 11:y=(y=y.documentElement)?y.namespaceURI:Ce(null,"");break;default:p=p===8?y.parentNode:y,y=p.namespaceURI||null,p=p.tagName,y=Ce(y,p)}Xo(Rm),Do(Rm,y)}function KS(){Xo(Rm),Xo(HN),Xo(UN)}function tNe(p){cy(UN.current);var y=cy(Rm.current),_=Ce(y,p.type);y!==_&&(Do(HN,p),Do(Rm,_))}function pq(p){HN.current===p&&(Xo(Rm),Xo(HN))}var os=m1(0);function cV(p){for(var y=p;y!==null;){if(y.tag===13){var _=y.memoizedState;if(_!==null&&(_=_.dehydrated,_===null||_.data==="$?"||_.data==="$!"))return y}else if(y.tag===19&&y.memoizedProps.revealOrder!==void 0){if(y.flags&128)return y}else if(y.child!==null){y.child.return=y,y=y.child;continue}if(y===p)break;for(;y.sibling===null;){if(y.return===null||y.return===p)return null;y=y.return}y.sibling.return=y.return,y=y.sibling}return null}var bq=[];function Cq(){for(var p=0;p_?_:4,p(!0);var N=vq.transition;vq.transition={};try{p(!1),y()}finally{cn=_,vq.transition=N}}function vNe(){return Vd().memoizedState}function e6t(p,y,_){var N=w1(p);if(_={lane:N,action:_,hasEagerState:!1,eagerState:null,next:null},yNe(p))INe(y,_);else if(_=zAe(p,y,_,N),_!==null){var G=yu();rg(_,p,N,G),wNe(_,y,N)}}function t6t(p,y,_){var N=w1(p),G={lane:N,action:_,hasEagerState:!1,eagerState:null,next:null};if(yNe(p))INe(y,G);else{var H=p.alternate;if(p.lanes===0&&(H===null||H.lanes===0)&&(H=y.lastRenderedReducer,H!==null))try{var ie=y.lastRenderedState,Fe=H(ie,_);if(G.hasEagerState=!0,G.eagerState=Fe,qh(Fe,ie)){var Ge=y.interleaved;Ge===null?(G.next=G,dq(y)):(G.next=Ge.next,Ge.next=G),y.interleaved=G;return}}catch{}finally{}_=zAe(p,y,G,N),_!==null&&(G=yu(),rg(_,p,N,G),wNe(_,y,N))}}function yNe(p){var y=p.alternate;return p===ss||y!==null&&y===ss}function INe(p,y){JN=hV=!0;var _=p.pending;_===null?y.next=y:(y.next=_.next,_.next=y),p.pending=y}function wNe(p,y,_){if(_&4194240){var N=y.lanes;N&=p.pendingLanes,_|=N,y.lanes=_,rs(p,_)}}var fV={readContext:Gd,useCallback:Hl,useContext:Hl,useEffect:Hl,useImperativeHandle:Hl,useInsertionEffect:Hl,useLayoutEffect:Hl,useMemo:Hl,useReducer:Hl,useRef:Hl,useState:Hl,useDebugValue:Hl,useDeferredValue:Hl,useTransition:Hl,useMutableSource:Hl,useSyncExternalStore:Hl,useId:Hl,unstable_isNewReconciler:!1},n6t={readContext:Gd,useCallback:function(p,y){return Gm().memoizedState=[p,y===void 0?null:y],p},useContext:Gd,useEffect:dNe,useImperativeHandle:function(p,y,_){return _=_!=null?_.concat([p]):null,gV(4194308,4,mNe.bind(null,y,p),_)},useLayoutEffect:function(p,y){return gV(4194308,4,p,y)},useInsertionEffect:function(p,y){return gV(4,2,p,y)},useMemo:function(p,y){var _=Gm();return y=y===void 0?null:y,p=p(),_.memoizedState=[p,y],p},useReducer:function(p,y,_){var N=Gm();return y=_!==void 0?_(y):y,N.memoizedState=N.baseState=y,p={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:p,lastRenderedState:y},N.queue=p,p=p.dispatch=e6t.bind(null,ss,p),[N.memoizedState,p]},useRef:function(p){var y=Gm();return p={current:p},y.memoizedState=p},useState:uNe,useDebugValue:Fq,useDeferredValue:function(p){return Gm().memoizedState=p},useTransition:function(){var p=uNe(!1),y=p[0];return p=qHt.bind(null,p[1]),Gm().memoizedState=p,[y,p]},useMutableSource:function(){},useSyncExternalStore:function(p,y,_){var N=ss,G=Gm();if(jo){if(_===void 0)throw Error(t(407));_=_()}else{if(_=y(),Ta===null)throw Error(t(349));dy&30||rNe(N,y,_)}G.memoizedState=_;var H={value:_,getSnapshot:y};return G.queue=H,dNe(sNe.bind(null,N,H,p),[p]),N.flags|=2048,QN(9,oNe.bind(null,N,H,_,y),void 0,null),_},useId:function(){var p=Gm(),y=Ta.identifierPrefix;if(jo){var _=Dp,N=_p;_=(N&~(1<<32-Ko(N)-1)).toString(32)+_,y=":"+y+"R"+_,_=KN++,0<_&&(y+="H"+_.toString(32)),y+=":"}else _=$Ht++,y=":"+y+"r"+_.toString(32)+":";return p.memoizedState=y},unstable_isNewReconciler:!1},i6t={readContext:Gd,useCallback:pNe,useContext:Gd,useEffect:Lq,useImperativeHandle:fNe,useInsertionEffect:hNe,useLayoutEffect:gNe,useMemo:bNe,useReducer:Sq,useRef:cNe,useState:function(){return Sq(jN)},useDebugValue:Fq,useDeferredValue:function(p){var y=Vd();return CNe(y,ba.memoizedState,p)},useTransition:function(){var p=Sq(jN)[0],y=Vd().memoizedState;return[p,y]},useMutableSource:nNe,useSyncExternalStore:iNe,useId:vNe,unstable_isNewReconciler:!1},r6t={readContext:Gd,useCallback:pNe,useContext:Gd,useEffect:Lq,useImperativeHandle:fNe,useInsertionEffect:hNe,useLayoutEffect:gNe,useMemo:bNe,useReducer:xq,useRef:cNe,useState:function(){return xq(jN)},useDebugValue:Fq,useDeferredValue:function(p){var y=Vd();return ba===null?y.memoizedState=p:CNe(y,ba.memoizedState,p)},useTransition:function(){var p=xq(jN)[0],y=Vd().memoizedState;return[p,y]},useMutableSource:nNe,useSyncExternalStore:iNe,useId:vNe,unstable_isNewReconciler:!1};function jS(p,y){try{var _="",N=y;do _+=oe(N),N=N.return;while(N);var G=_}catch(H){G=` +Error generating stack: `+H.message+` +`+H.stack}return{value:p,source:y,stack:G,digest:null}}function _q(p,y,_){return{value:p,source:null,stack:_??null,digest:y??null}}function Dq(p,y){try{}catch(_){setTimeout(function(){throw _})}}var o6t=typeof WeakMap=="function"?WeakMap:Map;function SNe(p,y,_){_=Np(-1,_),_.tag=3,_.payload={element:null};var N=y.value;return _.callback=function(){wV||(wV=!0,Bq=N),Dq(p,y)},_}function xNe(p,y,_){_=Np(-1,_),_.tag=3;var N=p.type.getDerivedStateFromError;if(typeof N=="function"){var G=y.value;_.payload=function(){return N(G)},_.callback=function(){Dq(p,y)}}var H=p.stateNode;return H!==null&&typeof H.componentDidCatch=="function"&&(_.callback=function(){Dq(p,y),typeof N!="function"&&(y1===null?y1=new Set([this]):y1.add(this));var ie=y.stack;this.componentDidCatch(y.value,{componentStack:ie!==null?ie:""})}),_}function LNe(p,y,_){var N=p.pingCache;if(N===null){N=p.pingCache=new o6t;var G=new Set;N.set(y,G)}else G=N.get(y),G===void 0&&(G=new Set,N.set(y,G));G.has(_)||(G.add(_),p=v6t.bind(null,p,y,_),y.then(p,p))}function FNe(p){do{var y;if((y=p.tag===13)&&(y=p.memoizedState,y=y!==null?y.dehydrated!==null:!0),y)return p;p=p.return}while(p!==null);return null}function _Ne(p,y,_,N,G){return p.mode&1?(p.flags|=65536,p.lanes=G,p):(p===y?p.flags|=65536:(p.flags|=128,_.flags|=131072,_.flags&=-52805,_.tag===1&&(_.alternate===null?_.tag=17:(y=Np(-1,1),y.tag=2,C1(_,y,1))),_.lanes|=1),p)}var s6t=S.ReactCurrentOwner,ic=!1;function vu(p,y,_,N){y.child=p===null?eNe(y,null,_,N):JS(y,p.child,_,N)}function DNe(p,y,_,N,G){_=_.render;var H=y.ref;return US(y,G),N=Iq(p,y,_,N,H,G),_=wq(),p!==null&&!ic?(y.updateQueue=p.updateQueue,y.flags&=-2053,p.lanes&=~G,kp(p,y,G)):(jo&&_&&nq(y),y.flags|=1,vu(p,y,N,G),y.child)}function ANe(p,y,_,N,G){if(p===null){var H=_.type;return typeof H=="function"&&!jq(H)&&H.defaultProps===void 0&&_.compare===null&&_.defaultProps===void 0?(y.tag=15,y.type=H,NNe(p,y,H,N,G)):(p=DV(_.type,null,N,y,y.mode,G),p.ref=y.ref,p.return=y,y.child=p)}if(H=p.child,!(p.lanes&G)){var ie=H.memoizedProps;if(_=_.compare,_=_!==null?_:RN,_(ie,N)&&p.ref===y.ref)return kp(p,y,G)}return y.flags|=1,p=x1(H,N),p.ref=y.ref,p.return=y,y.child=p}function NNe(p,y,_,N,G){if(p!==null){var H=p.memoizedProps;if(RN(H,N)&&p.ref===y.ref)if(ic=!1,y.pendingProps=N=H,(p.lanes&G)!==0)p.flags&131072&&(ic=!0);else return y.lanes=p.lanes,kp(p,y,G)}return Aq(p,y,_,N,G)}function kNe(p,y,_){var N=y.pendingProps,G=N.children,H=p!==null?p.memoizedState:null;if(N.mode==="hidden")if(!(y.mode&1))y.memoizedState={baseLanes:0,cachePool:null,transitions:null},Do($S,Jc),Jc|=_;else{if(!(_&1073741824))return p=H!==null?H.baseLanes|_:_,y.lanes=y.childLanes=1073741824,y.memoizedState={baseLanes:p,cachePool:null,transitions:null},y.updateQueue=null,Do($S,Jc),Jc|=p,null;y.memoizedState={baseLanes:0,cachePool:null,transitions:null},N=H!==null?H.baseLanes:_,Do($S,Jc),Jc|=N}else H!==null?(N=H.baseLanes|_,y.memoizedState=null):N=_,Do($S,Jc),Jc|=N;return vu(p,y,G,_),y.child}function MNe(p,y){var _=y.ref;(p===null&&_!==null||p!==null&&p.ref!==_)&&(y.flags|=512,y.flags|=2097152)}function Aq(p,y,_,N,G){var H=nc(_)?sy:Yl.current;return H=OS(y,H),US(y,G),_=Iq(p,y,_,N,H,G),N=wq(),p!==null&&!ic?(y.updateQueue=p.updateQueue,y.flags&=-2053,p.lanes&=~G,kp(p,y,G)):(jo&&N&&nq(y),y.flags|=1,vu(p,y,_,G),y.child)}function ZNe(p,y,_,N,G){if(nc(_)){var H=!0;qG(y)}else H=!1;if(US(y,G),y.stateNode===null)bV(p,y),jAe(y,_,N),mq(y,_,N,G),N=!0;else if(p===null){var ie=y.stateNode,Fe=y.memoizedProps;ie.props=Fe;var Ge=ie.context,st=_.contextType;typeof st=="object"&&st!==null?st=Gd(st):(st=nc(_)?sy:Yl.current,st=OS(y,st));var Vt=_.getDerivedStateFromProps,Xt=typeof Vt=="function"||typeof ie.getSnapshotBeforeUpdate=="function";Xt||typeof ie.UNSAFE_componentWillReceiveProps!="function"&&typeof ie.componentWillReceiveProps!="function"||(Fe!==N||Ge!==st)&&QAe(y,ie,N,st),b1=!1;var Et=y.memoizedState;ie.state=Et,aV(y,N,ie,G),Ge=y.memoizedState,Fe!==N||Et!==Ge||tc.current||b1?(typeof Vt=="function"&&(gq(y,_,Vt,N),Ge=y.memoizedState),(Fe=b1||KAe(y,_,Fe,N,Et,Ge,st))?(Xt||typeof ie.UNSAFE_componentWillMount!="function"&&typeof ie.componentWillMount!="function"||(typeof ie.componentWillMount=="function"&&ie.componentWillMount(),typeof ie.UNSAFE_componentWillMount=="function"&&ie.UNSAFE_componentWillMount()),typeof ie.componentDidMount=="function"&&(y.flags|=4194308)):(typeof ie.componentDidMount=="function"&&(y.flags|=4194308),y.memoizedProps=N,y.memoizedState=Ge),ie.props=N,ie.state=Ge,ie.context=st,N=Fe):(typeof ie.componentDidMount=="function"&&(y.flags|=4194308),N=!1)}else{ie=y.stateNode,YAe(p,y),Fe=y.memoizedProps,st=y.type===y.elementType?Fe:tg(y.type,Fe),ie.props=st,Xt=y.pendingProps,Et=ie.context,Ge=_.contextType,typeof Ge=="object"&&Ge!==null?Ge=Gd(Ge):(Ge=nc(_)?sy:Yl.current,Ge=OS(y,Ge));var hn=_.getDerivedStateFromProps;(Vt=typeof hn=="function"||typeof ie.getSnapshotBeforeUpdate=="function")||typeof ie.UNSAFE_componentWillReceiveProps!="function"&&typeof ie.componentWillReceiveProps!="function"||(Fe!==Xt||Et!==Ge)&&QAe(y,ie,N,Ge),b1=!1,Et=y.memoizedState,ie.state=Et,aV(y,N,ie,G);var Fn=y.memoizedState;Fe!==Xt||Et!==Fn||tc.current||b1?(typeof hn=="function"&&(gq(y,_,hn,N),Fn=y.memoizedState),(st=b1||KAe(y,_,st,N,Et,Fn,Ge)||!1)?(Vt||typeof ie.UNSAFE_componentWillUpdate!="function"&&typeof ie.componentWillUpdate!="function"||(typeof ie.componentWillUpdate=="function"&&ie.componentWillUpdate(N,Fn,Ge),typeof ie.UNSAFE_componentWillUpdate=="function"&&ie.UNSAFE_componentWillUpdate(N,Fn,Ge)),typeof ie.componentDidUpdate=="function"&&(y.flags|=4),typeof ie.getSnapshotBeforeUpdate=="function"&&(y.flags|=1024)):(typeof ie.componentDidUpdate!="function"||Fe===p.memoizedProps&&Et===p.memoizedState||(y.flags|=4),typeof ie.getSnapshotBeforeUpdate!="function"||Fe===p.memoizedProps&&Et===p.memoizedState||(y.flags|=1024),y.memoizedProps=N,y.memoizedState=Fn),ie.props=N,ie.state=Fn,ie.context=Ge,N=st):(typeof ie.componentDidUpdate!="function"||Fe===p.memoizedProps&&Et===p.memoizedState||(y.flags|=4),typeof ie.getSnapshotBeforeUpdate!="function"||Fe===p.memoizedProps&&Et===p.memoizedState||(y.flags|=1024),N=!1)}return Nq(p,y,_,N,H,G)}function Nq(p,y,_,N,G,H){MNe(p,y);var ie=(y.flags&128)!==0;if(!N&&!ie)return G&&RAe(y,_,!1),kp(p,y,H);N=y.stateNode,s6t.current=y;var Fe=ie&&typeof _.getDerivedStateFromError!="function"?null:N.render();return y.flags|=1,p!==null&&ie?(y.child=JS(y,p.child,null,H),y.child=JS(y,null,Fe,H)):vu(p,y,Fe,H),y.memoizedState=N.state,G&&RAe(y,_,!0),y.child}function TNe(p){var y=p.stateNode;y.pendingContext?EAe(p,y.pendingContext,y.pendingContext!==y.context):y.context&&EAe(p,y.context,!1),fq(p,y.containerInfo)}function ENe(p,y,_,N,G){return YS(),sq(G),y.flags|=256,vu(p,y,_,N),y.child}var kq={dehydrated:null,treeContext:null,retryLane:0};function Mq(p){return{baseLanes:p,cachePool:null,transitions:null}}function WNe(p,y,_){var N=y.pendingProps,G=os.current,H=!1,ie=(y.flags&128)!==0,Fe;if((Fe=ie)||(Fe=p!==null&&p.memoizedState===null?!1:(G&2)!==0),Fe?(H=!0,y.flags&=-129):(p===null||p.memoizedState!==null)&&(G|=1),Do(os,G&1),p===null)return oq(y),p=y.memoizedState,p!==null&&(p=p.dehydrated,p!==null)?(y.mode&1?p.data==="$!"?y.lanes=8:y.lanes=1073741824:y.lanes=1,null):(ie=N.children,p=N.fallback,H?(N=y.mode,H=y.child,ie={mode:"hidden",children:ie},!(N&1)&&H!==null?(H.childLanes=0,H.pendingProps=ie):H=AV(ie,N,0,null),p=py(p,N,_,null),H.return=y,p.return=y,H.sibling=p,y.child=H,y.child.memoizedState=Mq(_),y.memoizedState=kq,p):Zq(y,ie));if(G=p.memoizedState,G!==null&&(Fe=G.dehydrated,Fe!==null))return a6t(p,y,ie,N,Fe,G,_);if(H){H=N.fallback,ie=y.mode,G=p.child,Fe=G.sibling;var Ge={mode:"hidden",children:N.children};return!(ie&1)&&y.child!==G?(N=y.child,N.childLanes=0,N.pendingProps=Ge,y.deletions=null):(N=x1(G,Ge),N.subtreeFlags=G.subtreeFlags&14680064),Fe!==null?H=x1(Fe,H):(H=py(H,ie,_,null),H.flags|=2),H.return=y,N.return=y,N.sibling=H,y.child=N,N=H,H=y.child,ie=p.child.memoizedState,ie=ie===null?Mq(_):{baseLanes:ie.baseLanes|_,cachePool:null,transitions:ie.transitions},H.memoizedState=ie,H.childLanes=p.childLanes&~_,y.memoizedState=kq,N}return H=p.child,p=H.sibling,N=x1(H,{mode:"visible",children:N.children}),!(y.mode&1)&&(N.lanes=_),N.return=y,N.sibling=null,p!==null&&(_=y.deletions,_===null?(y.deletions=[p],y.flags|=16):_.push(p)),y.child=N,y.memoizedState=null,N}function Zq(p,y){return y=AV({mode:"visible",children:y},p.mode,0,null),y.return=p,p.child=y}function pV(p,y,_,N){return N!==null&&sq(N),JS(y,p.child,null,_),p=Zq(y,y.pendingProps.children),p.flags|=2,y.memoizedState=null,p}function a6t(p,y,_,N,G,H,ie){if(_)return y.flags&256?(y.flags&=-257,N=_q(Error(t(422))),pV(p,y,ie,N)):y.memoizedState!==null?(y.child=p.child,y.flags|=128,null):(H=N.fallback,G=y.mode,N=AV({mode:"visible",children:N.children},G,0,null),H=py(H,G,ie,null),H.flags|=2,N.return=y,H.return=y,N.sibling=H,y.child=N,y.mode&1&&JS(y,p.child,null,ie),y.child.memoizedState=Mq(ie),y.memoizedState=kq,H);if(!(y.mode&1))return pV(p,y,ie,null);if(G.data==="$!"){if(N=G.nextSibling&&G.nextSibling.dataset,N)var Fe=N.dgst;return N=Fe,H=Error(t(419)),N=_q(H,N,void 0),pV(p,y,ie,N)}if(Fe=(ie&p.childLanes)!==0,ic||Fe){if(N=Ta,N!==null){switch(ie&-ie){case 4:G=2;break;case 16:G=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:G=32;break;case 536870912:G=268435456;break;default:G=0}G=G&(N.suspendedLanes|ie)?0:G,G!==0&&G!==H.retryLane&&(H.retryLane=G,Ap(p,G),rg(N,p,G,-1))}return Kq(),N=_q(Error(t(421))),pV(p,y,ie,N)}return G.data==="$?"?(y.flags|=128,y.child=p.child,y=y6t.bind(null,p),G._reactRetry=y,null):(p=H.treeContext,Uc=g1(G.nextSibling),Hc=y,jo=!0,eg=null,p!==null&&(Wd[Rd++]=_p,Wd[Rd++]=Dp,Wd[Rd++]=ay,_p=p.id,Dp=p.overflow,ay=y),y=Zq(y,N.children),y.flags|=4096,y)}function RNe(p,y,_){p.lanes|=y;var N=p.alternate;N!==null&&(N.lanes|=y),cq(p.return,y,_)}function Tq(p,y,_,N,G){var H=p.memoizedState;H===null?p.memoizedState={isBackwards:y,rendering:null,renderingStartTime:0,last:N,tail:_,tailMode:G}:(H.isBackwards=y,H.rendering=null,H.renderingStartTime=0,H.last=N,H.tail=_,H.tailMode=G)}function GNe(p,y,_){var N=y.pendingProps,G=N.revealOrder,H=N.tail;if(vu(p,y,N.children,_),N=os.current,N&2)N=N&1|2,y.flags|=128;else{if(p!==null&&p.flags&128)e:for(p=y.child;p!==null;){if(p.tag===13)p.memoizedState!==null&&RNe(p,_,y);else if(p.tag===19)RNe(p,_,y);else if(p.child!==null){p.child.return=p,p=p.child;continue}if(p===y)break e;for(;p.sibling===null;){if(p.return===null||p.return===y)break e;p=p.return}p.sibling.return=p.return,p=p.sibling}N&=1}if(Do(os,N),!(y.mode&1))y.memoizedState=null;else switch(G){case"forwards":for(_=y.child,G=null;_!==null;)p=_.alternate,p!==null&&cV(p)===null&&(G=_),_=_.sibling;_=G,_===null?(G=y.child,y.child=null):(G=_.sibling,_.sibling=null),Tq(y,!1,G,_,H);break;case"backwards":for(_=null,G=y.child,y.child=null;G!==null;){if(p=G.alternate,p!==null&&cV(p)===null){y.child=G;break}p=G.sibling,G.sibling=_,_=G,G=p}Tq(y,!0,_,null,H);break;case"together":Tq(y,!1,null,null,void 0);break;default:y.memoizedState=null}return y.child}function bV(p,y){!(y.mode&1)&&p!==null&&(p.alternate=null,y.alternate=null,y.flags|=2)}function kp(p,y,_){if(p!==null&&(y.dependencies=p.dependencies),hy|=y.lanes,!(_&y.childLanes))return null;if(p!==null&&y.child!==p.child)throw Error(t(153));if(y.child!==null){for(p=y.child,_=x1(p,p.pendingProps),y.child=_,_.return=y;p.sibling!==null;)p=p.sibling,_=_.sibling=x1(p,p.pendingProps),_.return=y;_.sibling=null}return y.child}function l6t(p,y,_){switch(y.tag){case 3:TNe(y),YS();break;case 5:tNe(y);break;case 1:nc(y.type)&&qG(y);break;case 4:fq(y,y.stateNode.containerInfo);break;case 10:var N=y.type._context,G=y.memoizedProps.value;Do(rV,N._currentValue),N._currentValue=G;break;case 13:if(N=y.memoizedState,N!==null)return N.dehydrated!==null?(Do(os,os.current&1),y.flags|=128,null):_&y.child.childLanes?WNe(p,y,_):(Do(os,os.current&1),p=kp(p,y,_),p!==null?p.sibling:null);Do(os,os.current&1);break;case 19:if(N=(_&y.childLanes)!==0,p.flags&128){if(N)return GNe(p,y,_);y.flags|=128}if(G=y.memoizedState,G!==null&&(G.rendering=null,G.tail=null,G.lastEffect=null),Do(os,os.current),N)break;return null;case 22:case 23:return y.lanes=0,kNe(p,y,_)}return kp(p,y,_)}var VNe,Eq,XNe,PNe;VNe=function(p,y){for(var _=y.child;_!==null;){if(_.tag===5||_.tag===6)p.appendChild(_.stateNode);else if(_.tag!==4&&_.child!==null){_.child.return=_,_=_.child;continue}if(_===y)break;for(;_.sibling===null;){if(_.return===null||_.return===y)return;_=_.return}_.sibling.return=_.return,_=_.sibling}},Eq=function(){},XNe=function(p,y,_,N){var G=p.memoizedProps;if(G!==N){p=y.stateNode,cy(Rm.current);var H=null;switch(_){case"input":G=Ne(p,G),N=Ne(p,N),H=[];break;case"select":G=k({},G,{value:void 0}),N=k({},N,{value:void 0}),H=[];break;case"textarea":G=ge(p,G),N=ge(p,N),H=[];break;default:typeof G.onClick!="function"&&typeof N.onClick=="function"&&(p.onclick=jG)}dt(_,N);var ie;_=null;for(st in G)if(!N.hasOwnProperty(st)&&G.hasOwnProperty(st)&&G[st]!=null)if(st==="style"){var Fe=G[st];for(ie in Fe)Fe.hasOwnProperty(ie)&&(_||(_={}),_[ie]="")}else st!=="dangerouslySetInnerHTML"&&st!=="children"&&st!=="suppressContentEditableWarning"&&st!=="suppressHydrationWarning"&&st!=="autoFocus"&&(r.hasOwnProperty(st)?H||(H=[]):(H=H||[]).push(st,null));for(st in N){var Ge=N[st];if(Fe=G!=null?G[st]:void 0,N.hasOwnProperty(st)&&Ge!==Fe&&(Ge!=null||Fe!=null))if(st==="style")if(Fe){for(ie in Fe)!Fe.hasOwnProperty(ie)||Ge&&Ge.hasOwnProperty(ie)||(_||(_={}),_[ie]="");for(ie in Ge)Ge.hasOwnProperty(ie)&&Fe[ie]!==Ge[ie]&&(_||(_={}),_[ie]=Ge[ie])}else _||(H||(H=[]),H.push(st,_)),_=Ge;else st==="dangerouslySetInnerHTML"?(Ge=Ge?Ge.__html:void 0,Fe=Fe?Fe.__html:void 0,Ge!=null&&Fe!==Ge&&(H=H||[]).push(st,Ge)):st==="children"?typeof Ge!="string"&&typeof Ge!="number"||(H=H||[]).push(st,""+Ge):st!=="suppressContentEditableWarning"&&st!=="suppressHydrationWarning"&&(r.hasOwnProperty(st)?(Ge!=null&&st==="onScroll"&&Vo("scroll",p),H||Fe===Ge||(H=[])):(H=H||[]).push(st,Ge))}_&&(H=H||[]).push("style",_);var st=H;(y.updateQueue=st)&&(y.flags|=4)}},PNe=function(p,y,_,N){_!==N&&(y.flags|=4)};function $N(p,y){if(!jo)switch(p.tailMode){case"hidden":y=p.tail;for(var _=null;y!==null;)y.alternate!==null&&(_=y),y=y.sibling;_===null?p.tail=null:_.sibling=null;break;case"collapsed":_=p.tail;for(var N=null;_!==null;)_.alternate!==null&&(N=_),_=_.sibling;N===null?y||p.tail===null?p.tail=null:p.tail.sibling=null:N.sibling=null}}function Ul(p){var y=p.alternate!==null&&p.alternate.child===p.child,_=0,N=0;if(y)for(var G=p.child;G!==null;)_|=G.lanes|G.childLanes,N|=G.subtreeFlags&14680064,N|=G.flags&14680064,G.return=p,G=G.sibling;else for(G=p.child;G!==null;)_|=G.lanes|G.childLanes,N|=G.subtreeFlags,N|=G.flags,G.return=p,G=G.sibling;return p.subtreeFlags|=N,p.childLanes=_,y}function u6t(p,y,_){var N=y.pendingProps;switch(iq(y),y.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ul(y),null;case 1:return nc(y.type)&&$G(),Ul(y),null;case 3:return N=y.stateNode,KS(),Xo(tc),Xo(Yl),Cq(),N.pendingContext&&(N.context=N.pendingContext,N.pendingContext=null),(p===null||p.child===null)&&(iV(y)?y.flags|=4:p===null||p.memoizedState.isDehydrated&&!(y.flags&256)||(y.flags|=1024,eg!==null&&(Hq(eg),eg=null))),Eq(p,y),Ul(y),null;case 5:pq(y);var G=cy(UN.current);if(_=y.type,p!==null&&y.stateNode!=null)XNe(p,y,_,N,G),p.ref!==y.ref&&(y.flags|=512,y.flags|=2097152);else{if(!N){if(y.stateNode===null)throw Error(t(166));return Ul(y),null}if(p=cy(Rm.current),iV(y)){N=y.stateNode,_=y.type;var H=y.memoizedProps;switch(N[Wm]=y,N[ON]=H,p=(y.mode&1)!==0,_){case"dialog":Vo("cancel",N),Vo("close",N);break;case"iframe":case"object":case"embed":Vo("load",N);break;case"video":case"audio":for(G=0;G<\/script>",p=p.removeChild(p.firstChild)):typeof N.is=="string"?p=ie.createElement(_,{is:N.is}):(p=ie.createElement(_),_==="select"&&(ie=p,N.multiple?ie.multiple=!0:N.size&&(ie.size=N.size))):p=ie.createElementNS(p,_),p[Wm]=y,p[ON]=N,VNe(p,y,!1,!1),y.stateNode=p;e:{switch(ie=yt(_,N),_){case"dialog":Vo("cancel",p),Vo("close",p),G=N;break;case"iframe":case"object":case"embed":Vo("load",p),G=N;break;case"video":case"audio":for(G=0;GqS&&(y.flags|=128,N=!0,$N(H,!1),y.lanes=4194304)}else{if(!N)if(p=cV(ie),p!==null){if(y.flags|=128,N=!0,_=p.updateQueue,_!==null&&(y.updateQueue=_,y.flags|=4),$N(H,!0),H.tail===null&&H.tailMode==="hidden"&&!ie.alternate&&!jo)return Ul(y),null}else 2*wn()-H.renderingStartTime>qS&&_!==1073741824&&(y.flags|=128,N=!0,$N(H,!1),y.lanes=4194304);H.isBackwards?(ie.sibling=y.child,y.child=ie):(_=H.last,_!==null?_.sibling=ie:y.child=ie,H.last=ie)}return H.tail!==null?(y=H.tail,H.rendering=y,H.tail=y.sibling,H.renderingStartTime=wn(),y.sibling=null,_=os.current,Do(os,N?_&1|2:_&1),y):(Ul(y),null);case 22:case 23:return Jq(),N=y.memoizedState!==null,p!==null&&p.memoizedState!==null!==N&&(y.flags|=8192),N&&y.mode&1?Jc&1073741824&&(Ul(y),y.subtreeFlags&6&&(y.flags|=8192)):Ul(y),null;case 24:return null;case 25:return null}throw Error(t(156,y.tag))}function c6t(p,y){switch(iq(y),y.tag){case 1:return nc(y.type)&&$G(),p=y.flags,p&65536?(y.flags=p&-65537|128,y):null;case 3:return KS(),Xo(tc),Xo(Yl),Cq(),p=y.flags,p&65536&&!(p&128)?(y.flags=p&-65537|128,y):null;case 5:return pq(y),null;case 13:if(Xo(os),p=y.memoizedState,p!==null&&p.dehydrated!==null){if(y.alternate===null)throw Error(t(340));YS()}return p=y.flags,p&65536?(y.flags=p&-65537|128,y):null;case 19:return Xo(os),null;case 4:return KS(),null;case 10:return uq(y.type._context),null;case 22:case 23:return Jq(),null;case 24:return null;default:return null}}var CV=!1,Jl=!1,d6t=typeof WeakSet=="function"?WeakSet:Set,Sn=null;function QS(p,y){var _=p.ref;if(_!==null)if(typeof _=="function")try{_(null)}catch(N){bs(p,y,N)}else _.current=null}function Wq(p,y,_){try{_()}catch(N){bs(p,y,N)}}var ONe=!1;function h6t(p,y){if(J$=GG,p=vAe(),X$(p)){if("selectionStart"in p)var _={start:p.selectionStart,end:p.selectionEnd};else e:{_=(_=p.ownerDocument)&&_.defaultView||window;var N=_.getSelection&&_.getSelection();if(N&&N.rangeCount!==0){_=N.anchorNode;var G=N.anchorOffset,H=N.focusNode;N=N.focusOffset;try{_.nodeType,H.nodeType}catch{_=null;break e}var ie=0,Fe=-1,Ge=-1,st=0,Vt=0,Xt=p,Et=null;t:for(;;){for(var hn;Xt!==_||G!==0&&Xt.nodeType!==3||(Fe=ie+G),Xt!==H||N!==0&&Xt.nodeType!==3||(Ge=ie+N),Xt.nodeType===3&&(ie+=Xt.nodeValue.length),(hn=Xt.firstChild)!==null;)Et=Xt,Xt=hn;for(;;){if(Xt===p)break t;if(Et===_&&++st===G&&(Fe=ie),Et===H&&++Vt===N&&(Ge=ie),(hn=Xt.nextSibling)!==null)break;Xt=Et,Et=Xt.parentNode}Xt=hn}_=Fe===-1||Ge===-1?null:{start:Fe,end:Ge}}else _=null}_=_||{start:0,end:0}}else _=null;for(K$={focusedElem:p,selectionRange:_},GG=!1,Sn=y;Sn!==null;)if(y=Sn,p=y.child,(y.subtreeFlags&1028)!==0&&p!==null)p.return=y,Sn=p;else for(;Sn!==null;){y=Sn;try{var Fn=y.alternate;if(y.flags&1024)switch(y.tag){case 0:case 11:case 15:break;case 1:if(Fn!==null){var kn=Fn.memoizedProps,Es=Fn.memoizedState,Qe=y.stateNode,Xe=Qe.getSnapshotBeforeUpdate(y.elementType===y.type?kn:tg(y.type,kn),Es);Qe.__reactInternalSnapshotBeforeUpdate=Xe}break;case 3:var $e=y.stateNode.containerInfo;$e.nodeType===1?$e.textContent="":$e.nodeType===9&&$e.documentElement&&$e.removeChild($e.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(t(163))}}catch(Jt){bs(y,y.return,Jt)}if(p=y.sibling,p!==null){p.return=y.return,Sn=p;break}Sn=y.return}return Fn=ONe,ONe=!1,Fn}function qN(p,y,_){var N=y.updateQueue;if(N=N!==null?N.lastEffect:null,N!==null){var G=N=N.next;do{if((G.tag&p)===p){var H=G.destroy;G.destroy=void 0,H!==void 0&&Wq(y,_,H)}G=G.next}while(G!==N)}}function vV(p,y){if(y=y.updateQueue,y=y!==null?y.lastEffect:null,y!==null){var _=y=y.next;do{if((_.tag&p)===p){var N=_.create;_.destroy=N()}_=_.next}while(_!==y)}}function Rq(p){var y=p.ref;if(y!==null){var _=p.stateNode;switch(p.tag){case 5:p=_;break;default:p=_}typeof y=="function"?y(p):y.current=p}}function BNe(p){var y=p.alternate;y!==null&&(p.alternate=null,BNe(y)),p.child=null,p.deletions=null,p.sibling=null,p.tag===5&&(y=p.stateNode,y!==null&&(delete y[Wm],delete y[ON],delete y[q$],delete y[JHt],delete y[KHt])),p.stateNode=null,p.return=null,p.dependencies=null,p.memoizedProps=null,p.memoizedState=null,p.pendingProps=null,p.stateNode=null,p.updateQueue=null}function zNe(p){return p.tag===5||p.tag===3||p.tag===4}function YNe(p){e:for(;;){for(;p.sibling===null;){if(p.return===null||zNe(p.return))return null;p=p.return}for(p.sibling.return=p.return,p=p.sibling;p.tag!==5&&p.tag!==6&&p.tag!==18;){if(p.flags&2||p.child===null||p.tag===4)continue e;p.child.return=p,p=p.child}if(!(p.flags&2))return p.stateNode}}function Gq(p,y,_){var N=p.tag;if(N===5||N===6)p=p.stateNode,y?_.nodeType===8?_.parentNode.insertBefore(p,y):_.insertBefore(p,y):(_.nodeType===8?(y=_.parentNode,y.insertBefore(p,_)):(y=_,y.appendChild(p)),_=_._reactRootContainer,_!=null||y.onclick!==null||(y.onclick=jG));else if(N!==4&&(p=p.child,p!==null))for(Gq(p,y,_),p=p.sibling;p!==null;)Gq(p,y,_),p=p.sibling}function Vq(p,y,_){var N=p.tag;if(N===5||N===6)p=p.stateNode,y?_.insertBefore(p,y):_.appendChild(p);else if(N!==4&&(p=p.child,p!==null))for(Vq(p,y,_),p=p.sibling;p!==null;)Vq(p,y,_),p=p.sibling}var ml=null,ng=!1;function v1(p,y,_){for(_=_.child;_!==null;)HNe(p,y,_),_=_.sibling}function HNe(p,y,_){if(zr&&typeof zr.onCommitFiberUnmount=="function")try{zr.onCommitFiberUnmount(Jo,_)}catch{}switch(_.tag){case 5:Jl||QS(_,y);case 6:var N=ml,G=ng;ml=null,v1(p,y,_),ml=N,ng=G,ml!==null&&(ng?(p=ml,_=_.stateNode,p.nodeType===8?p.parentNode.removeChild(_):p.removeChild(_)):ml.removeChild(_.stateNode));break;case 18:ml!==null&&(ng?(p=ml,_=_.stateNode,p.nodeType===8?$$(p.parentNode,_):p.nodeType===1&&$$(p,_),kN(p)):$$(ml,_.stateNode));break;case 4:N=ml,G=ng,ml=_.stateNode.containerInfo,ng=!0,v1(p,y,_),ml=N,ng=G;break;case 0:case 11:case 14:case 15:if(!Jl&&(N=_.updateQueue,N!==null&&(N=N.lastEffect,N!==null))){G=N=N.next;do{var H=G,ie=H.destroy;H=H.tag,ie!==void 0&&(H&2||H&4)&&Wq(_,y,ie),G=G.next}while(G!==N)}v1(p,y,_);break;case 1:if(!Jl&&(QS(_,y),N=_.stateNode,typeof N.componentWillUnmount=="function"))try{N.props=_.memoizedProps,N.state=_.memoizedState,N.componentWillUnmount()}catch(Fe){bs(_,y,Fe)}v1(p,y,_);break;case 21:v1(p,y,_);break;case 22:_.mode&1?(Jl=(N=Jl)||_.memoizedState!==null,v1(p,y,_),Jl=N):v1(p,y,_);break;default:v1(p,y,_)}}function UNe(p){var y=p.updateQueue;if(y!==null){p.updateQueue=null;var _=p.stateNode;_===null&&(_=p.stateNode=new d6t),y.forEach(function(N){var G=I6t.bind(null,p,N);_.has(N)||(_.add(N),N.then(G,G))})}}function ig(p,y){var _=y.deletions;if(_!==null)for(var N=0;N<_.length;N++){var G=_[N];try{var H=p,ie=y,Fe=ie;e:for(;Fe!==null;){switch(Fe.tag){case 5:ml=Fe.stateNode,ng=!1;break e;case 3:ml=Fe.stateNode.containerInfo,ng=!0;break e;case 4:ml=Fe.stateNode.containerInfo,ng=!0;break e}Fe=Fe.return}if(ml===null)throw Error(t(160));HNe(H,ie,G),ml=null,ng=!1;var Ge=G.alternate;Ge!==null&&(Ge.return=null),G.return=null}catch(st){bs(G,y,st)}}if(y.subtreeFlags&12854)for(y=y.child;y!==null;)JNe(y,p),y=y.sibling}function JNe(p,y){var _=p.alternate,N=p.flags;switch(p.tag){case 0:case 11:case 14:case 15:if(ig(y,p),Vm(p),N&4){try{qN(3,p,p.return),vV(3,p)}catch(kn){bs(p,p.return,kn)}try{qN(5,p,p.return)}catch(kn){bs(p,p.return,kn)}}break;case 1:ig(y,p),Vm(p),N&512&&_!==null&&QS(_,_.return);break;case 5:if(ig(y,p),Vm(p),N&512&&_!==null&&QS(_,_.return),p.flags&32){var G=p.stateNode;try{Oe(G,"")}catch(kn){bs(p,p.return,kn)}}if(N&4&&(G=p.stateNode,G!=null)){var H=p.memoizedProps,ie=_!==null?_.memoizedProps:H,Fe=p.type,Ge=p.updateQueue;if(p.updateQueue=null,Ge!==null)try{Fe==="input"&&H.type==="radio"&&H.name!=null&&Ke(G,H),yt(Fe,ie);var st=yt(Fe,H);for(ie=0;ieG&&(G=ie),N&=~H}if(N=G,N=wn()-N,N=(120>N?120:480>N?480:1080>N?1080:1920>N?1920:3e3>N?3e3:4320>N?4320:1960*m6t(N/1960))-N,10p?16:p,I1===null)var N=!1;else{if(p=I1,I1=null,xV=0,Ir&6)throw Error(t(331));var G=Ir;for(Ir|=4,Sn=p.current;Sn!==null;){var H=Sn,ie=H.child;if(Sn.flags&16){var Fe=H.deletions;if(Fe!==null){for(var Ge=0;Gewn()-Oq?my(p,0):Pq|=_),oc(p,y)}function ske(p,y){y===0&&(p.mode&1?(y=rn,rn<<=1,!(rn&130023424)&&(rn=4194304)):y=1);var _=yu();p=Ap(p,y),p!==null&&(Gi(p,y,_),oc(p,_))}function y6t(p){var y=p.memoizedState,_=0;y!==null&&(_=y.retryLane),ske(p,_)}function I6t(p,y){var _=0;switch(p.tag){case 13:var N=p.stateNode,G=p.memoizedState;G!==null&&(_=G.retryLane);break;case 19:N=p.stateNode;break;default:throw Error(t(314))}N!==null&&N.delete(y),ske(p,_)}var ake;ake=function(p,y,_){if(p!==null)if(p.memoizedProps!==y.pendingProps||tc.current)ic=!0;else{if(!(p.lanes&_)&&!(y.flags&128))return ic=!1,l6t(p,y,_);ic=!!(p.flags&131072)}else ic=!1,jo&&y.flags&1048576&&VAe(y,nV,y.index);switch(y.lanes=0,y.tag){case 2:var N=y.type;bV(p,y),p=y.pendingProps;var G=OS(y,Yl.current);US(y,_),G=Iq(null,y,N,p,G,_);var H=wq();return y.flags|=1,typeof G=="object"&&G!==null&&typeof G.render=="function"&&G.$$typeof===void 0?(y.tag=1,y.memoizedState=null,y.updateQueue=null,nc(N)?(H=!0,qG(y)):H=!1,y.memoizedState=G.state!==null&&G.state!==void 0?G.state:null,hq(y),G.updater=lV,y.stateNode=G,G._reactInternals=y,mq(y,N,p,_),y=Nq(null,y,N,!0,H,_)):(y.tag=0,jo&&H&&nq(y),vu(null,y,G,_),y=y.child),y;case 16:N=y.elementType;e:{switch(bV(p,y),p=y.pendingProps,G=N._init,N=G(N._payload),y.type=N,G=y.tag=S6t(N),p=tg(N,p),G){case 0:y=Aq(null,y,N,p,_);break e;case 1:y=ZNe(null,y,N,p,_);break e;case 11:y=DNe(null,y,N,p,_);break e;case 14:y=ANe(null,y,N,tg(N.type,p),_);break e}throw Error(t(306,N,""))}return y;case 0:return N=y.type,G=y.pendingProps,G=y.elementType===N?G:tg(N,G),Aq(p,y,N,G,_);case 1:return N=y.type,G=y.pendingProps,G=y.elementType===N?G:tg(N,G),ZNe(p,y,N,G,_);case 3:e:{if(TNe(y),p===null)throw Error(t(387));N=y.pendingProps,H=y.memoizedState,G=H.element,YAe(p,y),aV(y,N,null,_);var ie=y.memoizedState;if(N=ie.element,H.isDehydrated)if(H={element:N,isDehydrated:!1,cache:ie.cache,pendingSuspenseBoundaries:ie.pendingSuspenseBoundaries,transitions:ie.transitions},y.updateQueue.baseState=H,y.memoizedState=H,y.flags&256){G=jS(Error(t(423)),y),y=ENe(p,y,N,_,G);break e}else if(N!==G){G=jS(Error(t(424)),y),y=ENe(p,y,N,_,G);break e}else for(Uc=g1(y.stateNode.containerInfo.firstChild),Hc=y,jo=!0,eg=null,_=eNe(y,null,N,_),y.child=_;_;)_.flags=_.flags&-3|4096,_=_.sibling;else{if(YS(),N===G){y=kp(p,y,_);break e}vu(p,y,N,_)}y=y.child}return y;case 5:return tNe(y),p===null&&oq(y),N=y.type,G=y.pendingProps,H=p!==null?p.memoizedProps:null,ie=G.children,j$(N,G)?ie=null:H!==null&&j$(N,H)&&(y.flags|=32),MNe(p,y),vu(p,y,ie,_),y.child;case 6:return p===null&&oq(y),null;case 13:return WNe(p,y,_);case 4:return fq(y,y.stateNode.containerInfo),N=y.pendingProps,p===null?y.child=JS(y,null,N,_):vu(p,y,N,_),y.child;case 11:return N=y.type,G=y.pendingProps,G=y.elementType===N?G:tg(N,G),DNe(p,y,N,G,_);case 7:return vu(p,y,y.pendingProps,_),y.child;case 8:return vu(p,y,y.pendingProps.children,_),y.child;case 12:return vu(p,y,y.pendingProps.children,_),y.child;case 10:e:{if(N=y.type._context,G=y.pendingProps,H=y.memoizedProps,ie=G.value,Do(rV,N._currentValue),N._currentValue=ie,H!==null)if(qh(H.value,ie)){if(H.children===G.children&&!tc.current){y=kp(p,y,_);break e}}else for(H=y.child,H!==null&&(H.return=y);H!==null;){var Fe=H.dependencies;if(Fe!==null){ie=H.child;for(var Ge=Fe.firstContext;Ge!==null;){if(Ge.context===N){if(H.tag===1){Ge=Np(-1,_&-_),Ge.tag=2;var st=H.updateQueue;if(st!==null){st=st.shared;var Vt=st.pending;Vt===null?Ge.next=Ge:(Ge.next=Vt.next,Vt.next=Ge),st.pending=Ge}}H.lanes|=_,Ge=H.alternate,Ge!==null&&(Ge.lanes|=_),cq(H.return,_,y),Fe.lanes|=_;break}Ge=Ge.next}}else if(H.tag===10)ie=H.type===y.type?null:H.child;else if(H.tag===18){if(ie=H.return,ie===null)throw Error(t(341));ie.lanes|=_,Fe=ie.alternate,Fe!==null&&(Fe.lanes|=_),cq(ie,_,y),ie=H.sibling}else ie=H.child;if(ie!==null)ie.return=H;else for(ie=H;ie!==null;){if(ie===y){ie=null;break}if(H=ie.sibling,H!==null){H.return=ie.return,ie=H;break}ie=ie.return}H=ie}vu(p,y,G.children,_),y=y.child}return y;case 9:return G=y.type,N=y.pendingProps.children,US(y,_),G=Gd(G),N=N(G),y.flags|=1,vu(p,y,N,_),y.child;case 14:return N=y.type,G=tg(N,y.pendingProps),G=tg(N.type,G),ANe(p,y,N,G,_);case 15:return NNe(p,y,y.type,y.pendingProps,_);case 17:return N=y.type,G=y.pendingProps,G=y.elementType===N?G:tg(N,G),bV(p,y),y.tag=1,nc(N)?(p=!0,qG(y)):p=!1,US(y,_),jAe(y,N,G),mq(y,N,G,_),Nq(null,y,N,!0,p,_);case 19:return GNe(p,y,_);case 22:return kNe(p,y,_)}throw Error(t(156,y.tag))};function lke(p,y){return Kn(p,y)}function w6t(p,y,_,N){this.tag=p,this.key=_,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=y,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=N,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Pd(p,y,_,N){return new w6t(p,y,_,N)}function jq(p){return p=p.prototype,!(!p||!p.isReactComponent)}function S6t(p){if(typeof p=="function")return jq(p)?1:0;if(p!=null){if(p=p.$$typeof,p===T)return 11;if(p===z)return 14}return 2}function x1(p,y){var _=p.alternate;return _===null?(_=Pd(p.tag,y,p.key,p.mode),_.elementType=p.elementType,_.type=p.type,_.stateNode=p.stateNode,_.alternate=p,p.alternate=_):(_.pendingProps=y,_.type=p.type,_.flags=0,_.subtreeFlags=0,_.deletions=null),_.flags=p.flags&14680064,_.childLanes=p.childLanes,_.lanes=p.lanes,_.child=p.child,_.memoizedProps=p.memoizedProps,_.memoizedState=p.memoizedState,_.updateQueue=p.updateQueue,y=p.dependencies,_.dependencies=y===null?null:{lanes:y.lanes,firstContext:y.firstContext},_.sibling=p.sibling,_.index=p.index,_.ref=p.ref,_}function DV(p,y,_,N,G,H){var ie=2;if(N=p,typeof p=="function")jq(p)&&(ie=1);else if(typeof p=="string")ie=5;else e:switch(p){case D:return py(_.children,G,H,y);case A:ie=8,G|=8;break;case M:return p=Pd(12,_,y,G|2),p.elementType=M,p.lanes=H,p;case E:return p=Pd(13,_,y,G),p.elementType=E,p.lanes=H,p;case V:return p=Pd(19,_,y,G),p.elementType=V,p.lanes=H,p;case P:return AV(_,G,H,y);default:if(typeof p=="object"&&p!==null)switch(p.$$typeof){case W:ie=10;break e;case Z:ie=9;break e;case T:ie=11;break e;case z:ie=14;break e;case O:ie=16,N=null;break e}throw Error(t(130,p==null?p:typeof p,""))}return y=Pd(ie,_,y,G),y.elementType=p,y.type=N,y.lanes=H,y}function py(p,y,_,N){return p=Pd(7,p,N,y),p.lanes=_,p}function AV(p,y,_,N){return p=Pd(22,p,N,y),p.elementType=P,p.lanes=_,p.stateNode={isHidden:!1},p}function Qq(p,y,_){return p=Pd(6,p,null,y),p.lanes=_,p}function $q(p,y,_){return y=Pd(4,p.children!==null?p.children:[],p.key,y),y.lanes=_,y.stateNode={containerInfo:p.containerInfo,pendingChildren:null,implementation:p.implementation},y}function x6t(p,y,_,N,G){this.tag=y,this.containerInfo=p,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Cn(0),this.expirationTimes=Cn(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Cn(0),this.identifierPrefix=N,this.onRecoverableError=G,this.mutableSourceEagerHydrationData=null}function qq(p,y,_,N,G,H,ie,Fe,Ge){return p=new x6t(p,y,_,Fe,Ge),y===1?(y=1,H===!0&&(y|=8)):y=0,H=Pd(3,null,null,y),p.current=H,H.stateNode=p,H.memoizedState={element:N,isDehydrated:_,cache:null,transitions:null,pendingSuspenseBoundaries:null},hq(H),p}function L6t(p,y,_){var N=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Uee)}catch{}}Uee(),Bee.exports=LMe();var zd=Bee.exports;const Jee=Kl(zd),Kee=tx({__proto__:null,default:Jee},[zd]);function mk(n){return n instanceof HTMLElement||n instanceof SVGElement}function ux(n){return mk(n)?n:n instanceof Ye.Component?Jee.findDOMNode(n):null}function cx(n,e,t){var i=I.useRef({});return(!("value"in i.current)||t(i.current.condition,e))&&(i.current.value=n(),i.current.condition=e),i.current.value}function jV(n,e){typeof n=="function"?n(e):Vn(n)==="object"&&n&&"current"in n&&(n.current=e)}function Su(){for(var n=arguments.length,e=new Array(n),t=0;t0},n.prototype.connect_=function(){!$V||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),ZMe?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},n.prototype.disconnect_=function(){!$V||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},n.prototype.onTransitionEnd_=function(e){var t=e.propertyName,i=t===void 0?"":t,r=MMe.some(function(o){return!!~i.indexOf(o)});r&&this.refresh()},n.getInstance=function(){return this.instance_||(this.instance_=new n),this.instance_},n.instance_=null,n}(),Qee=function(n,e){for(var t=0,i=Object.keys(e);t"u"||!(Element instanceof Object))){if(!(e instanceof Iy(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)||(t.set(e,new OMe(e)),this.controller_.addObserver(this),this.controller_.refresh())}},n.prototype.unobserve=function(e){if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");if(!(typeof Element>"u"||!(Element instanceof Object))){if(!(e instanceof Iy(e).Element))throw new TypeError('parameter 1 is not of type "Element".');var t=this.observations_;t.has(e)&&(t.delete(e),t.size||this.controller_.removeObserver(this))}},n.prototype.disconnect=function(){this.clearActive(),this.observations_.clear(),this.controller_.removeObserver(this)},n.prototype.gatherActive=function(){var e=this;this.clearActive(),this.observations_.forEach(function(t){t.isActive()&&e.activeObservations_.push(t)})},n.prototype.broadcastActive=function(){if(this.hasActive()){var e=this.callbackCtx_,t=this.activeObservations_.map(function(i){return new BMe(i.target,i.broadcastRect())});this.callback_.call(e,t,e),this.clearActive()}},n.prototype.clearActive=function(){this.activeObservations_.splice(0)},n.prototype.hasActive=function(){return this.activeObservations_.length>0},n}(),ete=typeof WeakMap<"u"?new WeakMap:new jee,tte=function(){function n(e){if(!(this instanceof n))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var t=TMe.getInstance(),i=new zMe(e,t,this);ete.set(this,i)}return n}();["observe","unobserve","disconnect"].forEach(function(n){tte.prototype[n]=function(){var e;return(e=ete.get(this))[n].apply(e,arguments)}});var YMe=function(){return typeof fk.ResizeObserver<"u"?fk.ResizeObserver:tte}(),Tp=new Map;function HMe(n){n.forEach(function(e){var t,i=e.target;(t=Tp.get(i))===null||t===void 0||t.forEach(function(r){return r(i)})})}var nte=new YMe(HMe);function UMe(n,e){Tp.has(n)||(Tp.set(n,new Set),nte.observe(n)),Tp.get(n).add(e)}function JMe(n,e){Tp.has(n)&&(Tp.get(n).delete(e),Tp.get(n).size||(nte.unobserve(n),Tp.delete(n)))}function Cs(n,e){if(!(n instanceof e))throw new TypeError("Cannot call a class as a function")}function ite(n,e){for(var t=0;tn.length)&&(e=n.length);for(var t=0,i=new Array(e);t1&&arguments[1]!==void 0?arguments[1]:1;lte+=1;var i=lte;function r(o){if(o===0)ute(i),e();else{var s=ste(function(){r(o-1)});iX.set(i,s)}}return r(t),i};xi.cancel=function(n){var e=iX.get(n);return ute(n),ate(e)};function cte(n){if(Array.isArray(n))return n}function nZe(n,e){var t=n==null?null:typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(t!=null){var i,r,o,s,a=[],l=!0,u=!1;try{if(o=(t=t.call(n)).next,e===0){if(Object(t)!==t)return;l=!1}else for(;!(l=(i=o.call(t)).done)&&(a.push(i.value),a.length!==e);l=!0);}catch(c){u=!0,r=c}finally{try{if(!l&&t.return!=null&&(s=t.return(),Object(s)!==s))return}finally{if(u)throw r}}return a}}function dte(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function we(n,e){return cte(n)||nZe(n,e)||nX(n,e)||dte()}function dx(n){for(var e=0,t,i=0,r=n.length;r>=4;++i,r-=4)t=n.charCodeAt(i)&255|(n.charCodeAt(++i)&255)<<8|(n.charCodeAt(++i)&255)<<16|(n.charCodeAt(++i)&255)<<24,t=(t&65535)*1540483477+((t>>>16)*59797<<16),t^=t>>>24,e=(t&65535)*1540483477+((t>>>16)*59797<<16)^(e&65535)*1540483477+((e>>>16)*59797<<16);switch(r){case 3:e^=(n.charCodeAt(i+2)&255)<<16;case 2:e^=(n.charCodeAt(i+1)&255)<<8;case 1:e^=n.charCodeAt(i)&255,e=(e&65535)*1540483477+((e>>>16)*59797<<16)}return e^=e>>>13,e=(e&65535)*1540483477+((e>>>16)*59797<<16),((e^e>>>15)>>>0).toString(36)}function bl(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}function rX(n,e){if(!n)return!1;if(n.contains)return n.contains(e);for(var t=e;t;){if(t===n)return!0;t=t.parentNode}return!1}var hte="data-rc-order",gte="data-rc-priority",iZe="rc-util-key",oX=new Map;function mte(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=n.mark;return e?e.startsWith("data-")?e:"data-".concat(e):iZe}function Ck(n){if(n.attachTo)return n.attachTo;var e=document.querySelector("head");return e||document.body}function rZe(n){return n==="queue"?"prependQueue":n?"prepend":"append"}function sX(n){return Array.from((oX.get(n)||n).children).filter(function(e){return e.tagName==="STYLE"})}function fte(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!bl())return null;var t=e.csp,i=e.prepend,r=e.priority,o=r===void 0?0:r,s=rZe(i),a=s==="prependQueue",l=document.createElement("style");l.setAttribute(hte,s),a&&o&&l.setAttribute(gte,"".concat(o)),t!=null&&t.nonce&&(l.nonce=t==null?void 0:t.nonce),l.innerHTML=n;var u=Ck(e),c=u.firstChild;if(i){if(a){var d=(e.styles||sX(u)).filter(function(h){if(!["prepend","prependQueue"].includes(h.getAttribute(hte)))return!1;var g=Number(h.getAttribute(gte)||0);return o>=g});if(d.length)return u.insertBefore(l,d[d.length-1].nextSibling),l}u.insertBefore(l,c)}else u.appendChild(l);return l}function pte(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=Ck(e);return(e.styles||sX(t)).find(function(i){return i.getAttribute(mte(e))===n})}function hx(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=pte(n,e);if(t){var i=Ck(e);i.removeChild(t)}}function oZe(n,e){var t=oX.get(n);if(!t||!rX(document,t)){var i=fte("",e),r=i.parentNode;oX.set(n,r),n.removeChild(i)}}function Bm(n,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=Ck(t),r=sX(i),o=Se(Se({},t),{},{styles:r});oZe(i,o);var s=pte(e,o);if(s){var a,l;if((a=o.csp)!==null&&a!==void 0&&a.nonce&&s.nonce!==((l=o.csp)===null||l===void 0?void 0:l.nonce)){var u;s.nonce=(u=o.csp)===null||u===void 0?void 0:u.nonce}return s.innerHTML!==n&&(s.innerHTML=n),s}var c=fte(n,o);return c.setAttribute(mte(o),e),c}function sZe(n,e){if(n==null)return{};var t={},i=Object.keys(n),r,o;for(o=0;o=0)&&(t[r]=n[r]);return t}function zn(n,e){if(n==null)return{};var t=sZe(n,e),i,r;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(n);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(n,i)&&(t[i]=n[i])}return t}function gx(n,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=new Set;function r(o,s){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,l=i.has(o);if(ia(!l,"Warning: There may be circular references"),l)return!1;if(o===s)return!0;if(t&&a>1)return!1;i.add(o);var u=a+1;if(Array.isArray(o)){if(!Array.isArray(s)||o.length!==s.length)return!1;for(var c=0;c1&&arguments[1]!==void 0?arguments[1]:!1,s={map:this.cache};return t.forEach(function(a){if(!s)s=void 0;else{var l;s=(l=s)===null||l===void 0||(l=l.map)===null||l===void 0?void 0:l.get(a)}}),(i=s)!==null&&i!==void 0&&i.value&&o&&(s.value[1]=this.cacheCallTimes++),(r=s)===null||r===void 0?void 0:r.value}},{key:"get",value:function(t){var i;return(i=this.internalGet(t,!0))===null||i===void 0?void 0:i[0]}},{key:"has",value:function(t){return!!this.internalGet(t)}},{key:"set",value:function(t,i){var r=this;if(!this.has(t)){if(this.size()+1>n.MAX_CACHE_SIZE+n.MAX_CACHE_OFFSET){var o=this.keys.reduce(function(u,c){var d=we(u,2),h=d[1];return r.internalGet(c)[1]0,void 0),bte+=1}return vs(n,[{key:"getDerivativeToken",value:function(t){return this.derivatives.reduce(function(i,r){return r(t,i)},void 0)}}]),n}(),uX=new lX;function cX(n){var e=Array.isArray(n)?n:[n];return uX.has(e)||uX.set(e,new Cte(e)),uX.get(e)}var dZe=new WeakMap,dX={};function hZe(n,e){for(var t=dZe,i=0;i1&&arguments[1]!==void 0?arguments[1]:!1,t=vte.get(n)||"";return t||(Object.keys(n).forEach(function(i){var r=n[i];t+=i,r instanceof Cte?t+=r.id:r&&Vn(r)==="object"?t+=mx(r,e):t+=r}),e&&(t=dx(t)),vte.set(n,t)),t}function yte(n,e){return dx("".concat(e,"_").concat(mx(n,!0)))}var hX=bl();function Te(n){return typeof n=="number"?"".concat(n,"px"):n}function yk(n,e,t){var i,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;if(o)return n;var s=Se(Se({},r),{},(i={},me(i,Sy,e),me(i,Yd,t),i)),a=Object.keys(s).map(function(l){var u=s[l];return u?"".concat(l,'="').concat(u,'"'):null}).filter(function(l){return l}).join(" ");return"")}var Ite=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";return"--".concat(t?"".concat(t,"-"):"").concat(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([A-Z]+)([A-Z][a-z0-9]+)/g,"$1-$2").replace(/([a-z])([A-Z0-9])/g,"$1-$2").toLowerCase()},gZe=function(e,t,i){return Object.keys(e).length?".".concat(t).concat(i!=null&&i.scope?".".concat(i.scope):"","{").concat(Object.entries(e).map(function(r){var o=we(r,2),s=o[0],a=o[1];return"".concat(s,":").concat(a,";")}).join(""),"}"):""},wte=function(e,t,i){var r={},o={};return Object.entries(e).forEach(function(s){var a,l,u=we(s,2),c=u[0],d=u[1];if(i!=null&&(a=i.preserve)!==null&&a!==void 0&&a[c])o[c]=d;else if((typeof d=="string"||typeof d=="number")&&!(i!=null&&(l=i.ignore)!==null&&l!==void 0&&l[c])){var h,g=Ite(c,i==null?void 0:i.prefix);r[g]=typeof d=="number"&&!(i!=null&&(h=i.unitless)!==null&&h!==void 0&&h[c])?"".concat(d,"px"):String(d),o[c]="var(".concat(g,")")}}),[o,gZe(r,t,{scope:i==null?void 0:i.scope})]},Ste=bl()?I.useLayoutEffect:I.useEffect,lr=function(e,t){var i=I.useRef(!0);Ste(function(){return e(i.current)},t),Ste(function(){return i.current=!1,function(){i.current=!0}},[])},D1=function(e,t){lr(function(i){if(!i)return e()},t)},mZe=Se({},F1),xte=mZe.useInsertionEffect,fZe=function(e,t,i){I.useMemo(e,i),lr(function(){return t(!0)},i)},pZe=xte?function(n,e,t){return xte(function(){return n(),e()},t)}:fZe,bZe=Se({},F1),CZe=bZe.useInsertionEffect,vZe=function(e){var t=[],i=!1;function r(o){i||t.push(o)}return I.useEffect(function(){return i=!1,function(){i=!0,t.length&&t.forEach(function(o){return o()})}},e),r},yZe=function(){return function(e){e()}},IZe=typeof CZe<"u"?vZe:yZe;function gX(n,e,t,i,r){var o=I.useContext(vk),s=o.cache,a=[n].concat(_t(e)),l=aX(a),u=IZe([l]),c=function(m){s.opUpdate(l,function(f){var b=f||[void 0,void 0],C=we(b,2),v=C[0],w=v===void 0?0:v,S=C[1],F=S,L=F||t(),D=[w,L];return m?m(D):D})};I.useMemo(function(){c()},[l]);var d=s.opGet(l),h=d[1];return pZe(function(){r==null||r(h)},function(g){return c(function(m){var f=we(m,2),b=f[0],C=f[1];return g&&b===0&&(r==null||r(h)),[b+1,C]}),function(){s.opUpdate(l,function(m){var f=m||[],b=we(f,2),C=b[0],v=C===void 0?0:C,w=b[1],S=v-1;return S===0?(u(function(){(g||!s.opGet(l))&&(i==null||i(w,!1))}),null):[v-1,w]})}},[l]),h}var wZe={},SZe="css",A1=new Map;function xZe(n){A1.set(n,(A1.get(n)||0)+1)}function LZe(n,e){if(typeof document<"u"){var t=document.querySelectorAll("style[".concat(Sy,'="').concat(n,'"]'));t.forEach(function(i){if(i[Ep]===e){var r;(r=i.parentNode)===null||r===void 0||r.removeChild(i)}})}}var FZe=0;function _Ze(n,e){A1.set(n,(A1.get(n)||0)-1);var t=Array.from(A1.keys()),i=t.filter(function(r){var o=A1.get(r)||0;return o<=0});t.length-i.length>FZe&&i.forEach(function(r){LZe(r,e),A1.delete(r)})}var DZe=function(e,t,i,r){var o=i.getDerivativeToken(e),s=Se(Se({},o),t);return r&&(s=r(s)),s},Lte="token";function AZe(n,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},i=I.useContext(vk),r=i.cache.instanceId,o=i.container,s=t.salt,a=s===void 0?"":s,l=t.override,u=l===void 0?wZe:l,c=t.formatToken,d=t.getComputedToken,h=t.cssVar,g=hZe(function(){return Object.assign.apply(Object,[{}].concat(_t(e)))},e),m=mx(g),f=mx(u),b=h?mx(h):"",C=gX(Lte,[a,n.id,m,f,b],function(){var v,w=d?d(g,u,n):DZe(g,u,n,c),S=Se({},w),F="";if(h){var L=wte(w,h.key,{prefix:h.prefix,ignore:h.ignore,unitless:h.unitless,preserve:h.preserve}),D=we(L,2);w=D[0],F=D[1]}var A=yte(w,a);w._tokenKey=A,S._tokenKey=yte(S,a);var M=(v=h==null?void 0:h.key)!==null&&v!==void 0?v:A;w._themeKey=M,xZe(M);var W="".concat(SZe,"-").concat(dx(A));return w._hashId=W,[w,W,S,F,(h==null?void 0:h.key)||""]},function(v){_Ze(v[0]._themeKey,r)},function(v){var w=we(v,4),S=w[0],F=w[3];if(h&&F){var L=Bm(F,dx("css-variables-".concat(S._themeKey)),{mark:Yd,prepend:"queue",attachTo:o,priority:-999});L[Ep]=r,L.setAttribute(Sy,S._themeKey)}});return C}var NZe=function(e,t,i){var r=we(e,5),o=r[2],s=r[3],a=r[4],l=i||{},u=l.plain;if(!s)return null;var c=o._tokenKey,d=-999,h={"data-rc-order":"prependQueue","data-rc-priority":"".concat(d)},g=yk(s,a,c,h,u);return[d,c,g]},kZe={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},Fte="comm",_te="rule",Dte="decl",MZe="@import",ZZe="@keyframes",TZe="@layer",Ate=Math.abs,mX=String.fromCharCode;function Nte(n){return n.trim()}function Ik(n,e,t){return n.replace(e,t)}function EZe(n,e,t){return n.indexOf(e,t)}function fx(n,e){return n.charCodeAt(e)|0}function px(n,e,t){return n.slice(e,t)}function zm(n){return n.length}function WZe(n){return n.length}function wk(n,e){return e.push(n),n}var Sk=1,xy=1,kte=0,jc=0,Gs=0,Ly="";function fX(n,e,t,i,r,o,s,a){return{value:n,root:e,parent:t,type:i,props:r,children:o,line:Sk,column:xy,length:s,return:"",siblings:a}}function RZe(){return Gs}function GZe(){return Gs=jc>0?fx(Ly,--jc):0,xy--,Gs===10&&(xy=1,Sk--),Gs}function Hd(){return Gs=jc2||pX(Gs)>3?"":" "}function OZe(n,e){for(;--e&&Hd()&&!(Gs<48||Gs>102||Gs>57&&Gs<65||Gs>70&&Gs<97););return Lk(n,xk()+(e<6&&N1()==32&&Hd()==32))}function CX(n){for(;Hd();)switch(Gs){case n:return jc;case 34:case 39:n!==34&&n!==39&&CX(Gs);break;case 40:n===41&&CX(n);break;case 92:Hd();break}return jc}function BZe(n,e){for(;Hd()&&n+Gs!==57;)if(n+Gs===84&&N1()===47)break;return"/*"+Lk(e,jc-1)+"*"+mX(n===47?n:Hd())}function zZe(n){for(;!pX(N1());)Hd();return Lk(n,jc)}function YZe(n){return XZe(Fk("",null,null,null,[""],n=VZe(n),0,[0],n))}function Fk(n,e,t,i,r,o,s,a,l){for(var u=0,c=0,d=s,h=0,g=0,m=0,f=1,b=1,C=1,v=0,w="",S=r,F=o,L=i,D=w;b;)switch(m=v,v=Hd()){case 40:if(m!=108&&fx(D,d-1)==58){EZe(D+=Ik(bX(v),"&","&\f"),"&\f",Ate(u?a[u-1]:0))!=-1&&(C=-1);break}case 34:case 39:case 91:D+=bX(v);break;case 9:case 10:case 13:case 32:D+=PZe(m);break;case 92:D+=OZe(xk()-1,7);continue;case 47:switch(N1()){case 42:case 47:wk(HZe(BZe(Hd(),xk()),e,t,l),l);break;default:D+="/"}break;case 123*f:a[u++]=zm(D)*C;case 125*f:case 59:case 0:switch(v){case 0:case 125:b=0;case 59+c:C==-1&&(D=Ik(D,/\f/g,"")),g>0&&zm(D)-d&&wk(g>32?Zte(D+";",i,t,d-1,l):Zte(Ik(D," ","")+";",i,t,d-2,l),l);break;case 59:D+=";";default:if(wk(L=Mte(D,e,t,u,c,r,a,w,S=[],F=[],d,o),o),v===123)if(c===0)Fk(D,e,L,L,S,o,d,a,F);else switch(h===99&&fx(D,3)===110?100:h){case 100:case 108:case 109:case 115:Fk(n,L,L,i&&wk(Mte(n,L,L,0,0,r,a,w,r,S=[],d,F),F),r,F,d,a,i?S:F);break;default:Fk(D,L,L,L,[""],F,0,a,F)}}u=c=g=0,f=C=1,w=D="",d=s;break;case 58:d=1+zm(D),g=m;default:if(f<1){if(v==123)--f;else if(v==125&&f++==0&&GZe()==125)continue}switch(D+=mX(v),v*f){case 38:C=c>0?1:(D+="\f",-1);break;case 44:a[u++]=(zm(D)-1)*C,C=1;break;case 64:N1()===45&&(D+=bX(Hd())),h=N1(),c=d=zm(w=D+=zZe(xk())),v++;break;case 45:m===45&&zm(D)==2&&(f=0)}}return o}function Mte(n,e,t,i,r,o,s,a,l,u,c,d){for(var h=r-1,g=r===0?o:[""],m=WZe(g),f=0,b=0,C=0;f0?g[v]+" "+w:Ik(w,/&\f/g,g[v])))&&(l[C++]=S);return fX(n,e,t,r===0?_te:a,l,u,c,d)}function HZe(n,e,t,i){return fX(n,e,t,Fte,mX(RZe()),px(n,2,-2),0,i)}function Zte(n,e,t,i,r){return fX(n,e,t,Dte,px(n,0,i),px(n,i+1,-1),i,r)}function vX(n,e){for(var t="",i=0;i1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{root:!0,parentSelectors:[]},r=i.root,o=i.injectHash,s=i.parentSelectors,a=t.hashId,l=t.layer;t.path;var u=t.hashPriority,c=t.transformers,d=c===void 0?[]:c;t.linters;var h="",g={};function m(C){var v=C.getName(a);if(!g[v]){var w=n(C.style,t,{root:!1,parentSelectors:s}),S=we(w,1),F=S[0];g[v]="@keyframes ".concat(C.getName(a)).concat(F)}}function f(C){var v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return C.forEach(function(w){Array.isArray(w)?f(w,v):w&&v.push(w)}),v}var b=f(Array.isArray(e)?e:[e]);return b.forEach(function(C){var v=typeof C=="string"&&!r?{}:C;if(typeof v=="string")h+="".concat(v,` +`);else if(v._keyframe)m(v);else{var w=d.reduce(function(S,F){var L;return(F==null||(L=F.visit)===null||L===void 0?void 0:L.call(F,S))||S},v);Object.keys(w).forEach(function(S){var F=w[S];if(Vn(F)==="object"&&F&&(S!=="animationName"||!F._keyframe)&&!$Ze(F)){var L=!1,D=S.trim(),A=!1;(r||o)&&a?D.startsWith("@")?L=!0:D=qZe(S,a,u):r&&!a&&(D==="&"||D==="")&&(D="",A=!0);var M=n(F,t,{root:A,injectHash:L,parentSelectors:[].concat(_t(s),[D])}),W=we(M,2),Z=W[0],T=W[1];g=Se(Se({},g),T),h+="".concat(D).concat(Z)}else{let z=function(O,P){var B=O.replace(/[A-Z]/g,function(k){return"-".concat(k.toLowerCase())}),Y=P;!kZe[O]&&typeof Y=="number"&&Y!==0&&(Y="".concat(Y,"px")),O==="animationName"&&P!==null&&P!==void 0&&P._keyframe&&(m(P),Y=P.getName(a)),h+="".concat(B,":").concat(Y,";")};var E,V=(E=F==null?void 0:F.value)!==null&&E!==void 0?E:F;Vn(F)==="object"&&F!==null&&F!==void 0&&F[Rte]&&Array.isArray(V)?V.forEach(function(O){z(S,O)}):z(S,V)}})}}),r?l&&(h="@layer ".concat(l.name," {").concat(h,"}"),l.dependencies&&(g["@layer ".concat(l.name)]=l.dependencies.map(function(C){return"@layer ".concat(C,", ").concat(l.name,";")}).join(` +`))):h="{".concat(h,"}"),[h,g]};function Gte(n,e){return dx("".concat(n.join("%")).concat(e))}function t9e(){return null}var Vte="style";function yX(n,e){var t=n.token,i=n.path,r=n.hashId,o=n.layer,s=n.nonce,a=n.clientOnly,l=n.order,u=l===void 0?0:l,c=I.useContext(vk),d=c.autoClear;c.mock;var h=c.defaultCache,g=c.hashPriority,m=c.container,f=c.ssrInline,b=c.transformers,C=c.linters,v=c.cache,w=c.layer,S=t._tokenKey,F=[S];w&&F.push("layer"),F.push.apply(F,_t(i));var L=hX,D=gX(Vte,F,function(){var T=F.join("|");if(KZe(T)){var E=jZe(T),V=we(E,2),z=V[0],O=V[1];if(z)return[z,S,O,{},a,u]}var P=e(),B=e9e(P,{hashId:r,hashPriority:g,layer:w?o:void 0,path:i.join("-"),transformers:b,linters:C}),Y=we(B,2),k=Y[0],X=Y[1],U=_k(k),R=Gte(F,U);return[U,S,R,X,a,u]},function(T,E){var V=we(T,3),z=V[2];(E||d)&&hX&&hx(z,{mark:Yd})},function(T){var E=we(T,4),V=E[0];E[1];var z=E[2],O=E[3];if(L&&V!==Ete){var P={mark:Yd,prepend:w?!1:"queue",attachTo:m,priority:u},B=typeof s=="function"?s():s;B&&(P.csp={nonce:B});var Y=[],k=[];Object.keys(O).forEach(function(U){U.startsWith("@layer")?Y.push(U):k.push(U)}),Y.forEach(function(U){Bm(_k(O[U]),"_layer-".concat(U),Se(Se({},P),{},{prepend:!0}))});var X=Bm(V,z,P);X[Ep]=v.instanceId,X.setAttribute(Sy,S),k.forEach(function(U){Bm(_k(O[U]),"_effect-".concat(U),P)})}}),A=we(D,3),M=A[0],W=A[1],Z=A[2];return function(T){var E;if(!f||L||!h)E=I.createElement(t9e,null);else{var V;E=I.createElement("style",pt({},(V={},me(V,Sy,W),me(V,Yd,Z),V),{dangerouslySetInnerHTML:{__html:M}}))}return I.createElement(I.Fragment,null,E,T)}}var n9e=function(e,t,i){var r=we(e,6),o=r[0],s=r[1],a=r[2],l=r[3],u=r[4],c=r[5],d=i||{},h=d.plain;if(u)return null;var g=o,m={"data-rc-order":"prependQueue","data-rc-priority":"".concat(c)};return g=yk(o,s,a,m,h),l&&Object.keys(l).forEach(function(f){if(!t[f]){t[f]=!0;var b=_k(l[f]),C=yk(b,s,"_effect-".concat(f),m,h);f.startsWith("@layer")?g=C+g:g+=C}}),[c,a,g]},Xte="cssVar",i9e=function(e,t){var i=e.key,r=e.prefix,o=e.unitless,s=e.ignore,a=e.token,l=e.scope,u=l===void 0?"":l,c=I.useContext(vk),d=c.cache.instanceId,h=c.container,g=a._tokenKey,m=[].concat(_t(e.path),[i,u,g]),f=gX(Xte,m,function(){var b=t(),C=wte(b,i,{prefix:r,unitless:o,ignore:s,scope:u}),v=we(C,2),w=v[0],S=v[1],F=Gte(m,S);return[w,S,F,i]},function(b){var C=we(b,3),v=C[2];hX&&hx(v,{mark:Yd})},function(b){var C=we(b,3),v=C[1],w=C[2];if(v){var S=Bm(v,w,{mark:Yd,prepend:"queue",attachTo:h,priority:-999});S[Ep]=d,S.setAttribute(Sy,i)}});return f},r9e=function(e,t,i){var r=we(e,4),o=r[1],s=r[2],a=r[3],l=i||{},u=l.plain;if(!o)return null;var c=-999,d={"data-rc-order":"prependQueue","data-rc-priority":"".concat(c)},h=yk(o,a,s,d,u);return[c,s,h]},bx;bx={},me(bx,Vte,n9e),me(bx,Lte,NZe),me(bx,Xte,r9e);var Ni=function(){function n(e,t){Cs(this,n),me(this,"name",void 0),me(this,"style",void 0),me(this,"_keyframe",!0),this.name=e,this.style=t}return vs(n,[{key:"getName",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";return t?"".concat(t,"-").concat(this.name):this.name}}]),n}();function Fy(n){return n.notSplit=!0,n}Fy(["borderTop","borderBottom"]),Fy(["borderTop"]),Fy(["borderBottom"]),Fy(["borderLeft","borderRight"]),Fy(["borderLeft"]),Fy(["borderRight"]);var IX=I.createContext({});function Pte(n){return cte(n)||ote(n)||nX(n)||dte()}function lg(n,e){for(var t=n,i=0;i3&&arguments[3]!==void 0?arguments[3]:!1;return e.length&&i&&t===void 0&&!lg(n,e.slice(0,-1))?n:Ote(n,e,t,i)}function o9e(n){return Vn(n)==="object"&&n!==null&&Object.getPrototypeOf(n)===Object.prototype}function Bte(n){return Array.isArray(n)?[]:{}}var s9e=typeof Reflect>"u"?Object.keys:Reflect.ownKeys;function _y(){for(var n=arguments.length,e=new Array(n),t=0;t{const n=()=>{};return n.deprecated=a9e,n},zte=I.createContext(void 0);var u9e={items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"Page",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages",page_size:"Page Size"},c9e={locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"OK",clear:"Clear",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",yearFormat:"YYYY",dateFormat:"M/D/YYYY",dayFormat:"D",dateTimeFormat:"M/D/YYYY HH:mm:ss",monthBeforeYear:!0,previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"};const Yte={placeholder:"Select time",rangePlaceholder:["Start time","End time"]},Dk={lang:Object.assign({placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeQuarterPlaceholder:["Start quarter","End quarter"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"]},c9e),timePickerLocale:Object.assign({},Yte)},lc="${label} is not a valid ${type}",Ym={locale:"en",Pagination:u9e,DatePicker:Dk,TimePicker:Yte,Calendar:Dk,global:{placeholder:"Please select"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",filterEmptyText:"No filters",filterCheckall:"Select all items",filterSearchPlaceholder:"Search in filters",emptyText:"No data",selectAll:"Select current page",selectInvert:"Invert current page",selectNone:"Clear all data",selectionAll:"Select all data",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row",triggerDesc:"Click to sort descending",triggerAsc:"Click to sort ascending",cancelSort:"Click to cancel sorting"},Tour:{Next:"Next",Previous:"Previous",Finish:"Finish"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items",remove:"Remove",selectCurrent:"Select current page",removeCurrent:"Remove current page",selectAll:"Select all data",removeAll:"Remove all data",selectInvert:"Invert current page"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand",collapse:"Collapse"},Form:{optional:"(optional)",defaultValidateMessages:{default:"Field validation error for ${label}",required:"Please enter ${label}",enum:"${label} must be one of [${enum}]",whitespace:"${label} cannot be a blank character",date:{format:"${label} date format is invalid",parse:"${label} cannot be converted to a date",invalid:"${label} is an invalid date"},types:{string:lc,method:lc,array:lc,object:lc,number:lc,date:lc,boolean:lc,integer:lc,float:lc,regexp:lc,email:lc,url:lc,hex:lc},string:{len:"${label} must be ${len} characters",min:"${label} must be at least ${min} characters",max:"${label} must be up to ${max} characters",range:"${label} must be between ${min}-${max} characters"},number:{len:"${label} must be equal to ${len}",min:"${label} must be minimum ${min}",max:"${label} must be maximum ${max}",range:"${label} must be between ${min}-${max}"},array:{len:"Must be ${len} ${label}",min:"At least ${min} ${label}",max:"At most ${max} ${label}",range:"The amount of ${label} must be between ${min}-${max}"},pattern:{mismatch:"${label} does not match the pattern ${pattern}"}}},Image:{preview:"Preview"},QRCode:{expired:"QR code expired",refresh:"Refresh",scanned:"Scanned"},ColorPicker:{presetEmpty:"Empty"}};let Ak=Object.assign({},Ym.Modal),Nk=[];const Hte=()=>Nk.reduce((n,e)=>Object.assign(Object.assign({},n),e),Ym.Modal);function d9e(n){if(n){const e=Object.assign({},n);return Nk.push(e),Ak=Hte(),()=>{Nk=Nk.filter(t=>t!==e),Ak=Hte()}}Ak=Object.assign({},Ym.Modal)}function Ute(){return Ak}const wX=I.createContext(void 0),Wp=(n,e)=>{const t=I.useContext(wX),i=I.useMemo(()=>{var o;const s=e||Ym[n],a=(o=t==null?void 0:t[n])!==null&&o!==void 0?o:{};return Object.assign(Object.assign({},typeof s=="function"?s():s),a||{})},[n,e,t]),r=I.useMemo(()=>{const o=t==null?void 0:t.locale;return t!=null&&t.exist&&!o?Ym.locale:o},[t]);return[i,r]},h9e="internalMark",g9e=n=>{const{locale:e={},children:t,_ANT_MARK__:i}=n;I.useEffect(()=>d9e(e&&e.Modal),[e]);const r=I.useMemo(()=>Object.assign(Object.assign({},e),{exist:!0}),[e]);return I.createElement(wX.Provider,{value:r},t)};function Ra(n,e){m9e(n)&&(n="100%");var t=f9e(n);return n=e===360?n:Math.min(e,Math.max(0,parseFloat(n))),t&&(n=parseInt(String(n*e),10)/100),Math.abs(n-e)<1e-6?1:(e===360?n=(n<0?n%e+e:n%e)/parseFloat(String(e)):n=n%e/parseFloat(String(e)),n)}function kk(n){return Math.min(1,Math.max(0,n))}function m9e(n){return typeof n=="string"&&n.indexOf(".")!==-1&&parseFloat(n)===1}function f9e(n){return typeof n=="string"&&n.indexOf("%")!==-1}function Jte(n){return n=parseFloat(n),(isNaN(n)||n<0||n>1)&&(n=1),n}function Mk(n){return n<=1?"".concat(Number(n)*100,"%"):n}function M1(n){return n.length===1?"0"+n:String(n)}function p9e(n,e,t){return{r:Ra(n,255)*255,g:Ra(e,255)*255,b:Ra(t,255)*255}}function Kte(n,e,t){n=Ra(n,255),e=Ra(e,255),t=Ra(t,255);var i=Math.max(n,e,t),r=Math.min(n,e,t),o=0,s=0,a=(i+r)/2;if(i===r)s=0,o=0;else{var l=i-r;switch(s=a>.5?l/(2-i-r):l/(i+r),i){case n:o=(e-t)/l+(e1&&(t-=1),t<1/6?n+(e-n)*(6*t):t<1/2?e:t<2/3?n+(e-n)*(2/3-t)*6:n}function b9e(n,e,t){var i,r,o;if(n=Ra(n,360),e=Ra(e,100),t=Ra(t,100),e===0)r=t,o=t,i=t;else{var s=t<.5?t*(1+e):t+e-t*e,a=2*t-s;i=SX(a,s,n+1/3),r=SX(a,s,n),o=SX(a,s,n-1/3)}return{r:i*255,g:r*255,b:o*255}}function xX(n,e,t){n=Ra(n,255),e=Ra(e,255),t=Ra(t,255);var i=Math.max(n,e,t),r=Math.min(n,e,t),o=0,s=i,a=i-r,l=i===0?0:a/i;if(i===r)o=0;else{switch(i){case n:o=(e-t)/a+(e>16,g:(n&65280)>>8,b:n&255}}var FX={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function Ay(n){var e={r:0,g:0,b:0},t=1,i=null,r=null,o=null,s=!1,a=!1;return typeof n=="string"&&(n=x9e(n)),typeof n=="object"&&(Hm(n.r)&&Hm(n.g)&&Hm(n.b)?(e=p9e(n.r,n.g,n.b),s=!0,a=String(n.r).substr(-1)==="%"?"prgb":"rgb"):Hm(n.h)&&Hm(n.s)&&Hm(n.v)?(i=Mk(n.s),r=Mk(n.v),e=C9e(n.h,i,r),s=!0,a="hsv"):Hm(n.h)&&Hm(n.s)&&Hm(n.l)&&(i=Mk(n.s),o=Mk(n.l),e=b9e(n.h,i,o),s=!0,a="hsl"),Object.prototype.hasOwnProperty.call(n,"a")&&(t=n.a)),t=Jte(t),{ok:s,format:n.format||a,r:Math.min(255,Math.max(e.r,0)),g:Math.min(255,Math.max(e.g,0)),b:Math.min(255,Math.max(e.b,0)),a:t}}var w9e="[-\\+]?\\d+%?",S9e="[-\\+]?\\d*\\.\\d+%?",Rp="(?:".concat(S9e,")|(?:").concat(w9e,")"),_X="[\\s|\\(]+(".concat(Rp,")[,|\\s]+(").concat(Rp,")[,|\\s]+(").concat(Rp,")\\s*\\)?"),DX="[\\s|\\(]+(".concat(Rp,")[,|\\s]+(").concat(Rp,")[,|\\s]+(").concat(Rp,")[,|\\s]+(").concat(Rp,")\\s*\\)?"),Jd={CSS_UNIT:new RegExp(Rp),rgb:new RegExp("rgb"+_X),rgba:new RegExp("rgba"+DX),hsl:new RegExp("hsl"+_X),hsla:new RegExp("hsla"+DX),hsv:new RegExp("hsv"+_X),hsva:new RegExp("hsva"+DX),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function x9e(n){if(n=n.trim().toLowerCase(),n.length===0)return!1;var e=!1;if(FX[n])n=FX[n],e=!0;else if(n==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var t=Jd.rgb.exec(n);return t?{r:t[1],g:t[2],b:t[3]}:(t=Jd.rgba.exec(n),t?{r:t[1],g:t[2],b:t[3],a:t[4]}:(t=Jd.hsl.exec(n),t?{h:t[1],s:t[2],l:t[3]}:(t=Jd.hsla.exec(n),t?{h:t[1],s:t[2],l:t[3],a:t[4]}:(t=Jd.hsv.exec(n),t?{h:t[1],s:t[2],v:t[3]}:(t=Jd.hsva.exec(n),t?{h:t[1],s:t[2],v:t[3],a:t[4]}:(t=Jd.hex8.exec(n),t?{r:uc(t[1]),g:uc(t[2]),b:uc(t[3]),a:jte(t[4]),format:e?"name":"hex8"}:(t=Jd.hex6.exec(n),t?{r:uc(t[1]),g:uc(t[2]),b:uc(t[3]),format:e?"name":"hex"}:(t=Jd.hex4.exec(n),t?{r:uc(t[1]+t[1]),g:uc(t[2]+t[2]),b:uc(t[3]+t[3]),a:jte(t[4]+t[4]),format:e?"name":"hex8"}:(t=Jd.hex3.exec(n),t?{r:uc(t[1]+t[1]),g:uc(t[2]+t[2]),b:uc(t[3]+t[3]),format:e?"name":"hex"}:!1)))))))))}function Hm(n){return!!Jd.CSS_UNIT.exec(String(n))}var Po=function(){function n(e,t){e===void 0&&(e=""),t===void 0&&(t={});var i;if(e instanceof n)return e;typeof e=="number"&&(e=I9e(e)),this.originalInput=e;var r=Ay(e);this.originalInput=e,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=(i=t.format)!==null&&i!==void 0?i:r.format,this.gradientType=t.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}return n.prototype.isDark=function(){return this.getBrightness()<128},n.prototype.isLight=function(){return!this.isDark()},n.prototype.getBrightness=function(){var e=this.toRgb();return(e.r*299+e.g*587+e.b*114)/1e3},n.prototype.getLuminance=function(){var e=this.toRgb(),t,i,r,o=e.r/255,s=e.g/255,a=e.b/255;return o<=.03928?t=o/12.92:t=Math.pow((o+.055)/1.055,2.4),s<=.03928?i=s/12.92:i=Math.pow((s+.055)/1.055,2.4),a<=.03928?r=a/12.92:r=Math.pow((a+.055)/1.055,2.4),.2126*t+.7152*i+.0722*r},n.prototype.getAlpha=function(){return this.a},n.prototype.setAlpha=function(e){return this.a=Jte(e),this.roundA=Math.round(100*this.a)/100,this},n.prototype.isMonochrome=function(){var e=this.toHsl().s;return e===0},n.prototype.toHsv=function(){var e=xX(this.r,this.g,this.b);return{h:e.h*360,s:e.s,v:e.v,a:this.a}},n.prototype.toHsvString=function(){var e=xX(this.r,this.g,this.b),t=Math.round(e.h*360),i=Math.round(e.s*100),r=Math.round(e.v*100);return this.a===1?"hsv(".concat(t,", ").concat(i,"%, ").concat(r,"%)"):"hsva(".concat(t,", ").concat(i,"%, ").concat(r,"%, ").concat(this.roundA,")")},n.prototype.toHsl=function(){var e=Kte(this.r,this.g,this.b);return{h:e.h*360,s:e.s,l:e.l,a:this.a}},n.prototype.toHslString=function(){var e=Kte(this.r,this.g,this.b),t=Math.round(e.h*360),i=Math.round(e.s*100),r=Math.round(e.l*100);return this.a===1?"hsl(".concat(t,", ").concat(i,"%, ").concat(r,"%)"):"hsla(".concat(t,", ").concat(i,"%, ").concat(r,"%, ").concat(this.roundA,")")},n.prototype.toHex=function(e){return e===void 0&&(e=!1),LX(this.r,this.g,this.b,e)},n.prototype.toHexString=function(e){return e===void 0&&(e=!1),"#"+this.toHex(e)},n.prototype.toHex8=function(e){return e===void 0&&(e=!1),v9e(this.r,this.g,this.b,this.a,e)},n.prototype.toHex8String=function(e){return e===void 0&&(e=!1),"#"+this.toHex8(e)},n.prototype.toHexShortString=function(e){return e===void 0&&(e=!1),this.a===1?this.toHexString(e):this.toHex8String(e)},n.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},n.prototype.toRgbString=function(){var e=Math.round(this.r),t=Math.round(this.g),i=Math.round(this.b);return this.a===1?"rgb(".concat(e,", ").concat(t,", ").concat(i,")"):"rgba(".concat(e,", ").concat(t,", ").concat(i,", ").concat(this.roundA,")")},n.prototype.toPercentageRgb=function(){var e=function(t){return"".concat(Math.round(Ra(t,255)*100),"%")};return{r:e(this.r),g:e(this.g),b:e(this.b),a:this.a}},n.prototype.toPercentageRgbString=function(){var e=function(t){return Math.round(Ra(t,255)*100)};return this.a===1?"rgb(".concat(e(this.r),"%, ").concat(e(this.g),"%, ").concat(e(this.b),"%)"):"rgba(".concat(e(this.r),"%, ").concat(e(this.g),"%, ").concat(e(this.b),"%, ").concat(this.roundA,")")},n.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var e="#"+LX(this.r,this.g,this.b,!1),t=0,i=Object.entries(FX);t=0,o=!t&&r&&(e.startsWith("hex")||e==="name");return o?e==="name"&&this.a===0?this.toName():this.toRgbString():(e==="rgb"&&(i=this.toRgbString()),e==="prgb"&&(i=this.toPercentageRgbString()),(e==="hex"||e==="hex6")&&(i=this.toHexString()),e==="hex3"&&(i=this.toHexString(!0)),e==="hex4"&&(i=this.toHex8String(!0)),e==="hex8"&&(i=this.toHex8String()),e==="name"&&(i=this.toName()),e==="hsl"&&(i=this.toHslString()),e==="hsv"&&(i=this.toHsvString()),i||this.toHexString())},n.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},n.prototype.clone=function(){return new n(this.toString())},n.prototype.lighten=function(e){e===void 0&&(e=10);var t=this.toHsl();return t.l+=e/100,t.l=kk(t.l),new n(t)},n.prototype.brighten=function(e){e===void 0&&(e=10);var t=this.toRgb();return t.r=Math.max(0,Math.min(255,t.r-Math.round(255*-(e/100)))),t.g=Math.max(0,Math.min(255,t.g-Math.round(255*-(e/100)))),t.b=Math.max(0,Math.min(255,t.b-Math.round(255*-(e/100)))),new n(t)},n.prototype.darken=function(e){e===void 0&&(e=10);var t=this.toHsl();return t.l-=e/100,t.l=kk(t.l),new n(t)},n.prototype.tint=function(e){return e===void 0&&(e=10),this.mix("white",e)},n.prototype.shade=function(e){return e===void 0&&(e=10),this.mix("black",e)},n.prototype.desaturate=function(e){e===void 0&&(e=10);var t=this.toHsl();return t.s-=e/100,t.s=kk(t.s),new n(t)},n.prototype.saturate=function(e){e===void 0&&(e=10);var t=this.toHsl();return t.s+=e/100,t.s=kk(t.s),new n(t)},n.prototype.greyscale=function(){return this.desaturate(100)},n.prototype.spin=function(e){var t=this.toHsl(),i=(t.h+e)%360;return t.h=i<0?360+i:i,new n(t)},n.prototype.mix=function(e,t){t===void 0&&(t=50);var i=this.toRgb(),r=new n(e).toRgb(),o=t/100,s={r:(r.r-i.r)*o+i.r,g:(r.g-i.g)*o+i.g,b:(r.b-i.b)*o+i.b,a:(r.a-i.a)*o+i.a};return new n(s)},n.prototype.analogous=function(e,t){e===void 0&&(e=6),t===void 0&&(t=30);var i=this.toHsl(),r=360/t,o=[this];for(i.h=(i.h-(r*e>>1)+720)%360;--e;)i.h=(i.h+r)%360,o.push(new n(i));return o},n.prototype.complement=function(){var e=this.toHsl();return e.h=(e.h+180)%360,new n(e)},n.prototype.monochromatic=function(e){e===void 0&&(e=6);for(var t=this.toHsv(),i=t.h,r=t.s,o=t.v,s=[],a=1/e;e--;)s.push(new n({h:i,s:r,v:o})),o=(o+a)%1;return s},n.prototype.splitcomplement=function(){var e=this.toHsl(),t=e.h;return[this,new n({h:(t+72)%360,s:e.s,l:e.l}),new n({h:(t+216)%360,s:e.s,l:e.l})]},n.prototype.onBackground=function(e){var t=this.toRgb(),i=new n(e).toRgb(),r=t.a+i.a*(1-t.a);return new n({r:(t.r*t.a+i.r*i.a*(1-t.a))/r,g:(t.g*t.a+i.g*i.a*(1-t.a))/r,b:(t.b*t.a+i.b*i.a*(1-t.a))/r,a:r})},n.prototype.triad=function(){return this.polyad(3)},n.prototype.tetrad=function(){return this.polyad(4)},n.prototype.polyad=function(e){for(var t=this.toHsl(),i=t.h,r=[this],o=360/e,s=1;s=60&&Math.round(n.h)<=240?i=t?Math.round(n.h)-Zk*e:Math.round(n.h)+Zk*e:i=t?Math.round(n.h)+Zk*e:Math.round(n.h)-Zk*e,i<0?i+=360:i>=360&&(i-=360),i}function nne(n,e,t){if(n.h===0&&n.s===0)return n.s;var i;return t?i=n.s-Qte*e:e===qte?i=n.s+Qte:i=n.s+L9e*e,i>1&&(i=1),t&&e===$te&&i>.1&&(i=.1),i<.06&&(i=.06),Number(i.toFixed(2))}function ine(n,e,t){var i;return t?i=n.v+F9e*e:i=n.v-_9e*e,i>1&&(i=1),Number(i.toFixed(2))}function Z1(n){for(var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=[],i=Ay(n),r=$te;r>0;r-=1){var o=ene(i),s=Tk(Ay({h:tne(o,r,!0),s:nne(o,r,!0),v:ine(o,r,!0)}));t.push(s)}t.push(Tk(i));for(var a=1;a<=qte;a+=1){var l=ene(i),u=Tk(Ay({h:tne(l,a),s:nne(l,a),v:ine(l,a)}));t.push(u)}return e.theme==="dark"?D9e.map(function(c){var d=c.index,h=c.opacity,g=Tk(A9e(Ay(e.backgroundColor||"#141414"),Ay(t[d]),h*100));return g}):t}var Ny={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1677FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},Ek={},AX={};Object.keys(Ny).forEach(function(n){Ek[n]=Z1(Ny[n]),Ek[n].primary=Ek[n][5],AX[n]=Z1(Ny[n],{theme:"dark",backgroundColor:"#141414"}),AX[n].primary=AX[n][5]});var NX=Ek.blue;const rne={blue:"#1677ff",purple:"#722ED1",cyan:"#13C2C2",green:"#52C41A",magenta:"#EB2F96",pink:"#eb2f96",red:"#F5222D",orange:"#FA8C16",yellow:"#FADB14",volcano:"#FA541C",geekblue:"#2F54EB",gold:"#FAAD14",lime:"#A0D911"},Cx=Object.assign(Object.assign({},rne),{colorPrimary:"#1677ff",colorSuccess:"#52c41a",colorWarning:"#faad14",colorError:"#ff4d4f",colorInfo:"#1677ff",colorLink:"",colorTextBase:"",colorBgBase:"",fontFamily:`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, +'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', +'Noto Color Emoji'`,fontFamilyCode:"'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace",fontSize:14,lineWidth:1,lineType:"solid",motionUnit:.1,motionBase:0,motionEaseOutCirc:"cubic-bezier(0.08, 0.82, 0.17, 1)",motionEaseInOutCirc:"cubic-bezier(0.78, 0.14, 0.15, 0.86)",motionEaseOut:"cubic-bezier(0.215, 0.61, 0.355, 1)",motionEaseInOut:"cubic-bezier(0.645, 0.045, 0.355, 1)",motionEaseOutBack:"cubic-bezier(0.12, 0.4, 0.29, 1.46)",motionEaseInBack:"cubic-bezier(0.71, -0.46, 0.88, 0.6)",motionEaseInQuint:"cubic-bezier(0.755, 0.05, 0.855, 0.06)",motionEaseOutQuint:"cubic-bezier(0.23, 1, 0.32, 1)",borderRadius:6,sizeUnit:4,sizeStep:4,sizePopupArrow:16,controlHeight:32,zIndexBase:0,zIndexPopupBase:1e3,opacityImage:1,wireframe:!1,motion:!0});function N9e(n,e){let{generateColorPalettes:t,generateNeutralColorPalettes:i}=e;const{colorSuccess:r,colorWarning:o,colorError:s,colorInfo:a,colorPrimary:l,colorBgBase:u,colorTextBase:c}=n,d=t(l),h=t(r),g=t(o),m=t(s),f=t(a),b=i(u,c),C=n.colorLink||n.colorInfo,v=t(C);return Object.assign(Object.assign({},b),{colorPrimaryBg:d[1],colorPrimaryBgHover:d[2],colorPrimaryBorder:d[3],colorPrimaryBorderHover:d[4],colorPrimaryHover:d[5],colorPrimary:d[6],colorPrimaryActive:d[7],colorPrimaryTextHover:d[8],colorPrimaryText:d[9],colorPrimaryTextActive:d[10],colorSuccessBg:h[1],colorSuccessBgHover:h[2],colorSuccessBorder:h[3],colorSuccessBorderHover:h[4],colorSuccessHover:h[4],colorSuccess:h[6],colorSuccessActive:h[7],colorSuccessTextHover:h[8],colorSuccessText:h[9],colorSuccessTextActive:h[10],colorErrorBg:m[1],colorErrorBgHover:m[2],colorErrorBorder:m[3],colorErrorBorderHover:m[4],colorErrorHover:m[5],colorError:m[6],colorErrorActive:m[7],colorErrorTextHover:m[8],colorErrorText:m[9],colorErrorTextActive:m[10],colorWarningBg:g[1],colorWarningBgHover:g[2],colorWarningBorder:g[3],colorWarningBorderHover:g[4],colorWarningHover:g[4],colorWarning:g[6],colorWarningActive:g[7],colorWarningTextHover:g[8],colorWarningText:g[9],colorWarningTextActive:g[10],colorInfoBg:f[1],colorInfoBgHover:f[2],colorInfoBorder:f[3],colorInfoBorderHover:f[4],colorInfoHover:f[4],colorInfo:f[6],colorInfoActive:f[7],colorInfoTextHover:f[8],colorInfoText:f[9],colorInfoTextActive:f[10],colorLinkHover:v[4],colorLink:v[6],colorLinkActive:v[7],colorBgMask:new Po("#000").setAlpha(.45).toRgbString(),colorWhite:"#fff"})}const k9e=n=>{let e=n,t=n,i=n,r=n;return n<6&&n>=5?e=n+1:n<16&&n>=6?e=n+2:n>=16&&(e=16),n<7&&n>=5?t=4:n<8&&n>=7?t=5:n<14&&n>=8?t=6:n<16&&n>=14?t=7:n>=16&&(t=8),n<6&&n>=2?i=1:n>=6&&(i=2),n>4&&n<8?r=4:n>=8&&(r=6),{borderRadius:n,borderRadiusXS:i,borderRadiusSM:t,borderRadiusLG:e,borderRadiusOuter:r}};function M9e(n){const{motionUnit:e,motionBase:t,borderRadius:i,lineWidth:r}=n;return Object.assign({motionDurationFast:`${(t+e).toFixed(1)}s`,motionDurationMid:`${(t+e*2).toFixed(1)}s`,motionDurationSlow:`${(t+e*3).toFixed(1)}s`,lineWidthBold:r+1},k9e(i))}const Z9e=n=>{const{controlHeight:e}=n;return{controlHeightSM:e*.75,controlHeightXS:e*.5,controlHeightLG:e*1.25}};function Wk(n){return(n+8)/n}function T9e(n){const e=new Array(10).fill(null).map((t,i)=>{const r=i-1,o=n*Math.pow(2.71828,r/5),s=i>1?Math.floor(o):Math.ceil(o);return Math.floor(s/2)*2});return e[1]=n,e.map(t=>({size:t,lineHeight:Wk(t)}))}const E9e=n=>{const e=T9e(n),t=e.map(c=>c.size),i=e.map(c=>c.lineHeight),r=t[1],o=t[0],s=t[2],a=i[1],l=i[0],u=i[2];return{fontSizeSM:o,fontSize:r,fontSizeLG:s,fontSizeXL:t[3],fontSizeHeading1:t[6],fontSizeHeading2:t[5],fontSizeHeading3:t[4],fontSizeHeading4:t[3],fontSizeHeading5:t[2],lineHeight:a,lineHeightLG:u,lineHeightSM:l,fontHeight:Math.round(a*r),fontHeightLG:Math.round(u*s),fontHeightSM:Math.round(l*o),lineHeightHeading1:i[6],lineHeightHeading2:i[5],lineHeightHeading3:i[4],lineHeightHeading4:i[3],lineHeightHeading5:i[2]}};function W9e(n){const{sizeUnit:e,sizeStep:t}=n;return{sizeXXL:e*(t+8),sizeXL:e*(t+4),sizeLG:e*(t+2),sizeMD:e*(t+1),sizeMS:e*t,size:e*t,sizeSM:e*(t-1),sizeXS:e*(t-2),sizeXXS:e*(t-3)}}const Um=(n,e)=>new Po(n).setAlpha(e).toRgbString(),vx=(n,e)=>new Po(n).darken(e).toHexString(),R9e=n=>{const e=Z1(n);return{1:e[0],2:e[1],3:e[2],4:e[3],5:e[4],6:e[5],7:e[6],8:e[4],9:e[5],10:e[6]}},G9e=(n,e)=>{const t=n||"#fff",i=e||"#000";return{colorBgBase:t,colorTextBase:i,colorText:Um(i,.88),colorTextSecondary:Um(i,.65),colorTextTertiary:Um(i,.45),colorTextQuaternary:Um(i,.25),colorFill:Um(i,.15),colorFillSecondary:Um(i,.06),colorFillTertiary:Um(i,.04),colorFillQuaternary:Um(i,.02),colorBgLayout:vx(t,4),colorBgContainer:vx(t,0),colorBgElevated:vx(t,0),colorBgSpotlight:Um(i,.85),colorBgBlur:"transparent",colorBorder:vx(t,15),colorBorderSecondary:vx(t,6)}};function V9e(n){const e=Object.keys(rne).map(t=>{const i=Z1(n[t]);return new Array(10).fill(1).reduce((r,o,s)=>(r[`${t}-${s+1}`]=i[s],r[`${t}${s+1}`]=i[s],r),{})}).reduce((t,i)=>(t=Object.assign(Object.assign({},t),i),t),{});return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},n),e),N9e(n,{generateColorPalettes:R9e,generateNeutralColorPalettes:G9e})),E9e(n.fontSize)),W9e(n)),Z9e(n)),M9e(n))}const one=cX(V9e),kX={token:Cx,override:{override:Cx},hashed:!0},sne=Ye.createContext(kX),MX="anticon",X9e=(n,e)=>e||(n?`ant-${n}`:"ant"),Tn=I.createContext({getPrefixCls:X9e,iconPrefixCls:MX}),P9e=`-ant-${Date.now()}-${Math.random()}`;function O9e(n,e){const t={},i=(s,a)=>{let l=s.clone();return l=(a==null?void 0:a(l))||l,l.toRgbString()},r=(s,a)=>{const l=new Po(s),u=Z1(l.toRgbString());t[`${a}-color`]=i(l),t[`${a}-color-disabled`]=u[1],t[`${a}-color-hover`]=u[4],t[`${a}-color-active`]=u[6],t[`${a}-color-outline`]=l.clone().setAlpha(.2).toRgbString(),t[`${a}-color-deprecated-bg`]=u[0],t[`${a}-color-deprecated-border`]=u[2]};if(e.primaryColor){r(e.primaryColor,"primary");const s=new Po(e.primaryColor),a=Z1(s.toRgbString());a.forEach((u,c)=>{t[`primary-${c+1}`]=u}),t["primary-color-deprecated-l-35"]=i(s,u=>u.lighten(35)),t["primary-color-deprecated-l-20"]=i(s,u=>u.lighten(20)),t["primary-color-deprecated-t-20"]=i(s,u=>u.tint(20)),t["primary-color-deprecated-t-50"]=i(s,u=>u.tint(50)),t["primary-color-deprecated-f-12"]=i(s,u=>u.setAlpha(u.getAlpha()*.12));const l=new Po(a[0]);t["primary-color-active-deprecated-f-30"]=i(l,u=>u.setAlpha(u.getAlpha()*.3)),t["primary-color-active-deprecated-d-02"]=i(l,u=>u.darken(2))}return e.successColor&&r(e.successColor,"success"),e.warningColor&&r(e.warningColor,"warning"),e.errorColor&&r(e.errorColor,"error"),e.infoColor&&r(e.infoColor,"info"),` + :root { + ${Object.keys(t).map(s=>`--${n}-${s}: ${t[s]};`).join(` +`)} + } + `.trim()}function B9e(n,e){const t=O9e(n,e);bl()&&Bm(t,`${P9e}-dynamic-theme`)}const ZX=I.createContext(!1),TX=n=>{let{children:e,disabled:t}=n;const i=I.useContext(ZX);return I.createElement(ZX.Provider,{value:t??i},e)},Kd=ZX,EX=I.createContext(void 0),z9e=n=>{let{children:e,size:t}=n;const i=I.useContext(EX);return I.createElement(EX.Provider,{value:t||i},e)},yx=EX;function Y9e(){const n=I.useContext(Kd),e=I.useContext(yx);return{componentDisabled:n,componentSize:e}}const Ix=["blue","purple","cyan","green","magenta","pink","red","orange","yellow","volcano","geekblue","lime","gold"],H9e="5.16.2";function WX(n){return n>=0&&n<=255}function Rk(n,e){const{r:t,g:i,b:r,a:o}=new Po(n).toRgb();if(o<1)return n;const{r:s,g:a,b:l}=new Po(e).toRgb();for(let u=.01;u<=1;u+=.01){const c=Math.round((t-s*(1-u))/u),d=Math.round((i-a*(1-u))/u),h=Math.round((r-l*(1-u))/u);if(WX(c)&&WX(d)&&WX(h))return new Po({r:c,g:d,b:h,a:Math.round(u*100)/100}).toRgbString()}return new Po({r:t,g:i,b:r,a:1}).toRgbString()}var U9e=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{delete i[h]});const r=Object.assign(Object.assign({},t),i),o=480,s=576,a=768,l=992,u=1200,c=1600;if(r.motion===!1){const h="0s";r.motionDurationFast=h,r.motionDurationMid=h,r.motionDurationSlow=h}return Object.assign(Object.assign(Object.assign({},r),{colorFillContent:r.colorFillSecondary,colorFillContentHover:r.colorFill,colorFillAlter:r.colorFillQuaternary,colorBgContainerDisabled:r.colorFillTertiary,colorBorderBg:r.colorBgContainer,colorSplit:Rk(r.colorBorderSecondary,r.colorBgContainer),colorTextPlaceholder:r.colorTextQuaternary,colorTextDisabled:r.colorTextQuaternary,colorTextHeading:r.colorText,colorTextLabel:r.colorTextSecondary,colorTextDescription:r.colorTextTertiary,colorTextLightSolid:r.colorWhite,colorHighlight:r.colorError,colorBgTextHover:r.colorFillSecondary,colorBgTextActive:r.colorFill,colorIcon:r.colorTextTertiary,colorIconHover:r.colorText,colorErrorOutline:Rk(r.colorErrorBg,r.colorBgContainer),colorWarningOutline:Rk(r.colorWarningBg,r.colorBgContainer),fontSizeIcon:r.fontSizeSM,lineWidthFocus:r.lineWidth*4,lineWidth:r.lineWidth,controlOutlineWidth:r.lineWidth*2,controlInteractiveSize:r.controlHeight/2,controlItemBgHover:r.colorFillTertiary,controlItemBgActive:r.colorPrimaryBg,controlItemBgActiveHover:r.colorPrimaryBgHover,controlItemBgActiveDisabled:r.colorFill,controlTmpOutline:r.colorFillQuaternary,controlOutline:Rk(r.colorPrimaryBg,r.colorBgContainer),lineType:r.lineType,borderRadius:r.borderRadius,borderRadiusXS:r.borderRadiusXS,borderRadiusSM:r.borderRadiusSM,borderRadiusLG:r.borderRadiusLG,fontWeightStrong:600,opacityLoading:.65,linkDecoration:"none",linkHoverDecoration:"none",linkFocusDecoration:"none",controlPaddingHorizontal:12,controlPaddingHorizontalSM:8,paddingXXS:r.sizeXXS,paddingXS:r.sizeXS,paddingSM:r.sizeSM,padding:r.size,paddingMD:r.sizeMD,paddingLG:r.sizeLG,paddingXL:r.sizeXL,paddingContentHorizontalLG:r.sizeLG,paddingContentVerticalLG:r.sizeMS,paddingContentHorizontal:r.sizeMS,paddingContentVertical:r.sizeSM,paddingContentHorizontalSM:r.size,paddingContentVerticalSM:r.sizeXS,marginXXS:r.sizeXXS,marginXS:r.sizeXS,marginSM:r.sizeSM,margin:r.size,marginMD:r.sizeMD,marginLG:r.sizeLG,marginXL:r.sizeXL,marginXXL:r.sizeXXL,boxShadow:` + 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowSecondary:` + 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowTertiary:` + 0 1px 2px 0 rgba(0, 0, 0, 0.03), + 0 1px 6px -1px rgba(0, 0, 0, 0.02), + 0 2px 4px 0 rgba(0, 0, 0, 0.02) + `,screenXS:o,screenXSMin:o,screenXSMax:s-1,screenSM:s,screenSMMin:s,screenSMMax:a-1,screenMD:a,screenMDMin:a,screenMDMax:l-1,screenLG:l,screenLGMin:l,screenLGMax:u-1,screenXL:u,screenXLMin:u,screenXLMax:c-1,screenXXL:c,screenXXLMin:c,boxShadowPopoverArrow:"2px 2px 5px rgba(0, 0, 0, 0.05)",boxShadowCard:` + 0 1px 2px -2px ${new Po("rgba(0, 0, 0, 0.16)").toRgbString()}, + 0 3px 6px 0 ${new Po("rgba(0, 0, 0, 0.12)").toRgbString()}, + 0 5px 12px 4px ${new Po("rgba(0, 0, 0, 0.09)").toRgbString()} + `,boxShadowDrawerRight:` + -6px 0 16px 0 rgba(0, 0, 0, 0.08), + -3px 0 6px -4px rgba(0, 0, 0, 0.12), + -9px 0 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerLeft:` + 6px 0 16px 0 rgba(0, 0, 0, 0.08), + 3px 0 6px -4px rgba(0, 0, 0, 0.12), + 9px 0 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerUp:` + 0 6px 16px 0 rgba(0, 0, 0, 0.08), + 0 3px 6px -4px rgba(0, 0, 0, 0.12), + 0 9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowDrawerDown:` + 0 -6px 16px 0 rgba(0, 0, 0, 0.08), + 0 -3px 6px -4px rgba(0, 0, 0, 0.12), + 0 -9px 28px 8px rgba(0, 0, 0, 0.05) + `,boxShadowTabsOverflowLeft:"inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowRight:"inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowTop:"inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowBottom:"inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)"}),i)}var lne=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{const i=t.getDerivativeToken(n),{override:r}=e,o=lne(e,["override"]);let s=Object.assign(Object.assign({},i),{override:r});return s=ane(s),o&&Object.entries(o).forEach(a=>{let[l,u]=a;const{theme:c}=u,d=lne(u,["theme"]);let h=d;c&&(h=dne(Object.assign(Object.assign({},s),d),{override:d},c)),s[l]=h}),s};function Ga(){const{token:n,hashed:e,theme:t,override:i,cssVar:r}=Ye.useContext(sne),o=`${H9e}-${e||""}`,s=t||one,[a,l,u]=AZe(s,[Cx,n],{salt:o,override:i,getComputedToken:dne,formatToken:ane,cssVar:r&&{prefix:r.prefix,key:r.key,unitless:une,ignore:cne,preserve:J9e}});return[s,u,e?l:"",a,r]}function hne(n,e,t){return e=wy(e),rte(n,eX()?Reflect.construct(e,t||[],wy(n).constructor):e.apply(n,t))}const gne=vs(function n(){Cs(this,n)}),mne="CALC_UNIT";function RX(n){return typeof n=="number"?`${n}${mne}`:n}let K9e=function(n){function e(t){var i;return Cs(this,e),i=hne(this,e),i.result="",t instanceof e?i.result=`(${t.result})`:typeof t=="number"?i.result=RX(t):typeof t=="string"&&(i.result=t),i}return Om(e,n),vs(e,[{key:"add",value:function(i){return i instanceof e?this.result=`${this.result} + ${i.getResult()}`:(typeof i=="number"||typeof i=="string")&&(this.result=`${this.result} + ${RX(i)}`),this.lowPriority=!0,this}},{key:"sub",value:function(i){return i instanceof e?this.result=`${this.result} - ${i.getResult()}`:(typeof i=="number"||typeof i=="string")&&(this.result=`${this.result} - ${RX(i)}`),this.lowPriority=!0,this}},{key:"mul",value:function(i){return this.lowPriority&&(this.result=`(${this.result})`),i instanceof e?this.result=`${this.result} * ${i.getResult(!0)}`:(typeof i=="number"||typeof i=="string")&&(this.result=`${this.result} * ${i}`),this.lowPriority=!1,this}},{key:"div",value:function(i){return this.lowPriority&&(this.result=`(${this.result})`),i instanceof e?this.result=`${this.result} / ${i.getResult(!0)}`:(typeof i=="number"||typeof i=="string")&&(this.result=`${this.result} / ${i}`),this.lowPriority=!1,this}},{key:"getResult",value:function(i){return this.lowPriority||i?`(${this.result})`:this.result}},{key:"equal",value:function(i){const{unit:r=!0}=i||{},o=new RegExp(`${mne}`,"g");return this.result=this.result.replace(o,r?"px":""),typeof this.lowPriority<"u"?`calc(${this.result})`:this.result}}])}(gne),j9e=function(n){function e(t){var i;return Cs(this,e),i=hne(this,e),i.result=0,t instanceof e?i.result=t.result:typeof t=="number"&&(i.result=t),i}return Om(e,n),vs(e,[{key:"add",value:function(i){return i instanceof e?this.result+=i.result:typeof i=="number"&&(this.result+=i),this}},{key:"sub",value:function(i){return i instanceof e?this.result-=i.result:typeof i=="number"&&(this.result-=i),this}},{key:"mul",value:function(i){return i instanceof e?this.result*=i.result:typeof i=="number"&&(this.result*=i),this}},{key:"div",value:function(i){return i instanceof e?this.result/=i.result:typeof i=="number"&&(this.result/=i),this}},{key:"equal",value:function(){return this.result}}])}(gne);const Q9e=n=>{const e=n==="css"?K9e:j9e;return t=>new e(t)};function Ki(n){var e=I.useRef();e.current=n;var t=I.useCallback(function(){for(var i,r=arguments.length,o=new Array(r),s=0;s1&&arguments[1]!==void 0?arguments[1]:!1;return{boxSizing:"border-box",margin:0,padding:0,color:n.colorText,fontSize:n.fontSize,lineHeight:n.lineHeight,listStyle:"none",fontFamily:e?"inherit":n.fontFamily}},wx=()=>({display:"inline-flex",alignItems:"center",color:"inherit",fontStyle:"normal",lineHeight:0,textAlign:"center",textTransform:"none",verticalAlign:"-0.125em",textRendering:"optimizeLegibility","-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale","> *":{lineHeight:1},svg:{display:"inline-block"}}),ky=()=>({"&::before":{display:"table",content:'""'},"&::after":{display:"table",clear:"both",content:'""'}}),$9e=n=>({a:{color:n.colorLink,textDecoration:n.linkDecoration,backgroundColor:"transparent",outline:"none",cursor:"pointer",transition:`color ${n.motionDurationSlow}`,"-webkit-text-decoration-skip":"objects","&:hover":{color:n.colorLinkHover},"&:active":{color:n.colorLinkActive},"&:active,\n &:hover":{textDecoration:n.linkHoverDecoration,outline:0},"&:focus":{textDecoration:n.linkFocusDecoration,outline:0},"&[disabled]":{color:n.colorTextDisabled,cursor:"not-allowed"}}}),q9e=(n,e,t)=>{const{fontFamily:i,fontSize:r}=n,o=`[class^="${e}"], [class*=" ${e}"]`;return{[t?`.${t}`:o]:{fontFamily:i,fontSize:r,boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"},[o]:{boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"}}}}},Gk=n=>({outline:`${Te(n.lineWidthFocus)} solid ${n.colorPrimaryBorder}`,outlineOffset:1,transition:"outline-offset 0s, outline 0s"}),T1=n=>({"&:focus-visible":Object.assign({},Gk(n))});function e5e(n){return n==="js"?{max:Math.max,min:Math.min}:{max:function(){for(var e=arguments.length,t=new Array(e),i=0;iTe(r)).join(",")})`},min:function(){for(var e=arguments.length,t=new Array(e),i=0;iTe(r)).join(",")})`}}}const fne=typeof CSSINJS_STATISTIC<"u";let VX=!0;function Bi(){for(var n=arguments.length,e=new Array(n),t=0;t{Object.keys(r).forEach(s=>{Object.defineProperty(i,s,{configurable:!0,enumerable:!0,get:()=>r[s]})})}),VX=!0,i}const pne={};function t5e(){}const n5e=n=>{let e,t=n,i=t5e;return fne&&typeof Proxy<"u"&&(e=new Set,t=new Proxy(n,{get(r,o){return VX&&e.add(o),r[o]}}),i=(r,o)=>{var s;pne[r]={global:Array.from(e),component:Object.assign(Object.assign({},(s=pne[r])===null||s===void 0?void 0:s.component),o)}}),{token:t,keys:e,flush:i}},bne=(n,e)=>{const[t,i]=Ga();return yX({theme:t,token:i,hashId:"",path:["ant-design-icons",n],nonce:()=>e==null?void 0:e.nonce},()=>[{[`.${n}`]:Object.assign(Object.assign({},wx()),{[`.${n} .${n}-icon`]:{display:"block"}})}])},Cne=(n,e,t)=>{var i;return typeof t=="function"?t(Bi(e,(i=e[n])!==null&&i!==void 0?i:{})):t??{}},vne=(n,e,t,i)=>{const r=Object.assign({},e[n]);if(i!=null&&i.deprecatedTokens){const{deprecatedTokens:s}=i;s.forEach(a=>{let[l,u]=a;var c;(r!=null&&r[l]||r!=null&&r[u])&&((c=r[u])!==null&&c!==void 0||(r[u]=r==null?void 0:r[l]))})}const o=Object.assign(Object.assign({},t),r);return Object.keys(o).forEach(s=>{o[s]===e[s]&&delete o[s]}),o},i5e=(n,e)=>`${[e,n.replace(/([A-Z]+)([A-Z][a-z]+)/g,"$1-$2").replace(/([a-z])([A-Z])/g,"$1-$2")].filter(Boolean).join("-")}`;function XX(n,e,t){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const r=Array.isArray(n)?n:[n,n],[o]=r,s=r.join("-");return function(a){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:a;const[u,c,d,h,g]=Ga(),{getPrefixCls:m,iconPrefixCls:f,csp:b}=I.useContext(Tn),C=m(),v=g?"css":"js",w=Q9e(v),{max:S,min:F}=e5e(v),L={theme:u,token:h,hashId:d,nonce:()=>b==null?void 0:b.nonce,clientOnly:i.clientOnly,order:i.order||-999};return yX(Object.assign(Object.assign({},L),{clientOnly:!1,path:["Shared",C]}),()=>[{"&":$9e(h)}]),bne(f,b),[yX(Object.assign(Object.assign({},L),{path:[s,a,f]}),()=>{if(i.injectStyle===!1)return[];const{token:A,flush:M}=n5e(h),W=Cne(o,c,t),Z=`.${a}`,T=vne(o,c,W,{deprecatedTokens:i.deprecatedTokens});g&&Object.keys(W).forEach(z=>{W[z]=`var(${Ite(z,i5e(o,g.prefix))})`});const E=Bi(A,{componentCls:Z,prefixCls:a,iconCls:`.${f}`,antCls:`.${C}`,calc:w,max:S,min:F},g?W:T),V=e(E,{hashId:d,prefixCls:a,rootPrefixCls:C,iconPrefixCls:f});return M(o,T),[i.resetStyle===!1?null:q9e(E,a,l),V]}),d]}}const Vk=(n,e,t,i)=>{const r=XX(n,e,t,Object.assign({resetStyle:!1,order:-998},i));return s=>{let{prefixCls:a,rootCls:l=a}=s;return r(a,l),null}},r5e=(n,e,t)=>{function i(u){return`${n}${u.slice(0,1).toUpperCase()}${u.slice(1)}`}const{unitless:r={},injectStyle:o=!0}=t??{},s={[i("zIndexPopup")]:!0};Object.keys(r).forEach(u=>{s[i(u)]=r[u]});const a=u=>{let{rootCls:c,cssVar:d}=u;const[,h]=Ga();return i9e({path:[n],prefix:d.prefix,key:d==null?void 0:d.key,unitless:Object.assign(Object.assign({},une),s),ignore:cne,token:h,scope:c},()=>{const g=Cne(n,h,e),m=vne(n,h,g,{deprecatedTokens:t==null?void 0:t.deprecatedTokens});return Object.keys(g).forEach(f=>{m[i(f)]=m[f],delete m[f]}),m}),null};return u=>{const[,,,,c]=Ga();return[d=>o&&c?Ye.createElement(Ye.Fragment,null,Ye.createElement(a,{rootCls:u,cssVar:c,component:n}),d):d,c==null?void 0:c.key]}},Oo=(n,e,t,i)=>{const r=XX(n,e,t,i),o=r5e(Array.isArray(n)?n[0]:n,t,i);return function(s){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:s;const[,l]=r(s,a),[u,c]=o(a);return[u,l,c]}};function o5e(n,e){return Ix.reduce((t,i)=>{const r=n[`${i}1`],o=n[`${i}3`],s=n[`${i}6`],a=n[`${i}7`];return Object.assign(Object.assign({},t),e(i,{lightColor:r,lightBorderColor:o,darkColor:s,textColor:a}))},{})}const s5e=Object.assign({},F1),{useId:yne}=s5e,a5e=typeof yne>"u"?()=>"":yne;var Ine={TERM_PROGRAM:"vscode",NODE:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NVM_CD_FLAGS:"-q",INIT_CWD:"/Users/alexander/my-code/github/openapi-ui",SHELL:"/bin/zsh",TERM:"xterm-256color",TMPDIR:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/",npm_config_metrics_registry:"https://registry.npmjs.org/",npm_config_global_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",TERM_PROGRAM_VERSION:"1.88.1",GVM_ROOT:"/Users/alexander/.gvm",MallocNanoZone:"0",ORIGINAL_XDG_CURRENT_DESKTOP:"undefined",ZDOTDIR:"/Users/alexander",COLOR:"1",npm_config_noproxy:"",ZSH:"/Users/alexander/.oh-my-zsh",PNPM_HOME:"/Users/alexander/Library/pnpm",npm_config_local_prefix:"/Users/alexander/my-code/github/openapi-ui",USER:"alexander",NVM_DIR:"/Users/alexander/.nvm",LD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",COMMAND_MODE:"unix2003",npm_config_globalconfig:"/Users/alexander/.nvm/versions/node/v16.10.0/etc/npmrc",SSH_AUTH_SOCK:"/private/tmp/com.apple.launchd.jaFD8W3kId/Listeners",__CF_USER_TEXT_ENCODING:"0x1F5:0x19:0x34",npm_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/bin/npm-cli.js",PAGER:"less",LSCOLORS:"Gxfxcxdxbxegedabagacad",PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.bin:/Users/alexander/my-code/github/node_modules/.bin:/Users/alexander/my-code/node_modules/.bin:/Users/alexander/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",npm_package_json:"/Users/alexander/my-code/github/openapi-ui/package.json",__CFBundleIdentifier:"com.microsoft.VSCode",USER_ZDOTDIR:"/Users/alexander",npm_config_auto_install_peers:"true",npm_config_init_module:"/Users/alexander/.npm-init.js",npm_config_userconfig:"/Users/alexander/.npmrc",PWD:"/Users/alexander/my-code/github/openapi-ui",GVM_VERSION:"1.0.22",npm_command:"run-script",EDITOR:"vi",npm_lifecycle_event:"build:package",LANG:"zh_CN.UTF-8",npm_package_name:"openapi-ui-dist",gvm_pkgset_name:"global",NODE_PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.pnpm/node_modules",XPC_FLAGS:"0x0",VSCODE_GIT_ASKPASS_EXTRA_ARGS:"",npm_package_engines_node:"^18.0.0 || >=20.0.0",npm_config_node_gyp:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",XPC_SERVICE_NAME:"0",npm_package_version:"2.0.1",VSCODE_INJECTION:"1",HOME:"/Users/alexander",SHLVL:"2",VSCODE_GIT_ASKPASS_MAIN:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js",GOROOT:"/Users/alexander/.gvm/gos/go1.21.6",DYLD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",gvm_go_name:"go1.21.6",LOGNAME:"alexander",LESS:"-R",VSCODE_PATH_PREFIX:"/Users/alexander/.gvm/gos/go1.20/bin:",npm_config_cache:"/Users/alexander/.npm",GVM_OVERLAY_PREFIX:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay",npm_lifecycle_script:"tsc && vite build --config vite.package.config.ts --mode package",LC_CTYPE:"zh_CN.UTF-8",VSCODE_GIT_IPC_HANDLE:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/vscode-git-79a18f10f2.sock",NVM_BIN:"/Users/alexander/.nvm/versions/node/v16.10.0/bin",PKG_CONFIG_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:",GOPATH:"/Users/alexander/mygo",npm_config_user_agent:"npm/7.24.0 node/v16.10.0 darwin x64 workspaces/false",GIT_ASKPASS:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh",VSCODE_GIT_ASKPASS_NODE:"/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin)",GVM_PATH_BACKUP:"/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",COLORTERM:"truecolor",npm_config_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",npm_node_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NODE_ENV:"production"};function l5e(n,e,t){var i,r;const o=Dy(),s=n||{},a=s.inherit===!1||!e?Object.assign(Object.assign({},kX),{hashed:(i=e==null?void 0:e.hashed)!==null&&i!==void 0?i:kX.hashed,cssVar:e==null?void 0:e.cssVar}):e,l=a5e();if(Ine.NODE_ENV!=="production"){const u=s.cssVar||a.cssVar,c=!!(typeof s.cssVar=="object"&&(!((r=s.cssVar)===null||r===void 0)&&r.key)||l);Ine.NODE_ENV!=="production"&&o(!u||c,"breaking","Missing key in `cssVar` config. Please upgrade to React 18 or set `cssVar.key` manually in each ConfigProvider inside `cssVar` enabled ConfigProvider.")}return cx(()=>{var u,c;if(!n)return e;const d=Object.assign({},a.components);Object.keys(n.components||{}).forEach(m=>{d[m]=Object.assign(Object.assign({},d[m]),n.components[m])});const h=`css-var-${l.replace(/:/g,"")}`,g=((u=s.cssVar)!==null&&u!==void 0?u:a.cssVar)&&Object.assign(Object.assign(Object.assign({prefix:t==null?void 0:t.prefixCls},typeof a.cssVar=="object"?a.cssVar:{}),typeof s.cssVar=="object"?s.cssVar:{}),{key:typeof s.cssVar=="object"&&((c=s.cssVar)===null||c===void 0?void 0:c.key)||h});return Object.assign(Object.assign(Object.assign({},a),s),{token:Object.assign(Object.assign({},a.token),s.token),components:d,cssVar:g})},[s,a],(u,c)=>u.some((d,h)=>{const g=c[h];return!gx(d,g,!0)}))}var u5e=["children"],wne=I.createContext({});function c5e(n){var e=n.children,t=zn(n,u5e);return I.createElement(wne.Provider,{value:t},e)}var d5e=function(n){Om(t,n);var e=_1(t);function t(){return Cs(this,t),e.apply(this,arguments)}return vs(t,[{key:"render",value:function(){return this.props.children}}]),t}(I.Component),E1="none",Xk="appear",Pk="enter",Ok="leave",Sne="none",jd="prepare",My="start",Zy="active",PX="end",xne="prepared";function Lne(n,e){var t={};return t[n.toLowerCase()]=e.toLowerCase(),t["Webkit".concat(n)]="webkit".concat(e),t["Moz".concat(n)]="moz".concat(e),t["ms".concat(n)]="MS".concat(e),t["O".concat(n)]="o".concat(e.toLowerCase()),t}function h5e(n,e){var t={animationend:Lne("Animation","AnimationEnd"),transitionend:Lne("Transition","TransitionEnd")};return n&&("AnimationEvent"in e||delete t.animationend.animation,"TransitionEvent"in e||delete t.transitionend.transition),t}var g5e=h5e(bl(),typeof window<"u"?window:{}),Fne={};if(bl()){var m5e=document.createElement("div");Fne=m5e.style}var Bk={};function _ne(n){if(Bk[n])return Bk[n];var e=g5e[n];if(e)for(var t=Object.keys(e),i=t.length,r=0;r1&&arguments[1]!==void 0?arguments[1]:2;e();var o=xi(function(){r<=1?i({isCanceled:function(){return o!==n.current}}):t(i,r-1)});n.current=o}return I.useEffect(function(){return function(){e()}},[]),[t,e]};var b5e=[jd,My,Zy,PX],C5e=[jd,xne],Ene=!1,v5e=!0;function Wne(n){return n===Zy||n===PX}const y5e=function(n,e,t){var i=Gp(Sne),r=we(i,2),o=r[0],s=r[1],a=p5e(),l=we(a,2),u=l[0],c=l[1];function d(){s(jd,!0)}var h=e?C5e:b5e;return Tne(function(){if(o!==Sne&&o!==PX){var g=h.indexOf(o),m=h[g+1],f=t(o);f===Ene?s(m,!0):m&&u(function(b){function C(){b.isCanceled()||s(m,!0)}f===!0?C():Promise.resolve(f).then(C)})}},[n,o]),I.useEffect(function(){return function(){c()}},[]),[d,o]};function I5e(n,e,t,i){var r=i.motionEnter,o=r===void 0?!0:r,s=i.motionAppear,a=s===void 0?!0:s,l=i.motionLeave,u=l===void 0?!0:l,c=i.motionDeadline,d=i.motionLeaveImmediately,h=i.onAppearPrepare,g=i.onEnterPrepare,m=i.onLeavePrepare,f=i.onAppearStart,b=i.onEnterStart,C=i.onLeaveStart,v=i.onAppearActive,w=i.onEnterActive,S=i.onLeaveActive,F=i.onAppearEnd,L=i.onEnterEnd,D=i.onLeaveEnd,A=i.onVisibleChanged,M=Gp(),W=we(M,2),Z=W[0],T=W[1],E=Gp(E1),V=we(E,2),z=V[0],O=V[1],P=Gp(null),B=we(P,2),Y=B[0],k=B[1],X=I.useRef(!1),U=I.useRef(null);function R(){return t()}var ee=I.useRef(!1);function oe(){O(E1,!0),k(null,!0)}function se(ot){var he=R();if(!(ot&&!ot.deadline&&ot.target!==he)){var de=ee.current,ge;z===Xk&&de?ge=F==null?void 0:F(he,ot):z===Pk&&de?ge=L==null?void 0:L(he,ot):z===Ok&&de&&(ge=D==null?void 0:D(he,ot)),z!==E1&&de&&ge!==!1&&oe()}}var ue=f5e(se),ce=we(ue,1),ye=ce[0],fe=function(he){var de,ge,j;switch(he){case Xk:return de={},me(de,jd,h),me(de,My,f),me(de,Zy,v),de;case Pk:return ge={},me(ge,jd,g),me(ge,My,b),me(ge,Zy,w),ge;case Ok:return j={},me(j,jd,m),me(j,My,C),me(j,Zy,S),j;default:return{}}},le=I.useMemo(function(){return fe(z)},[z]),Ze=y5e(z,!n,function(ot){if(ot===jd){var he=le[jd];return he?he(R()):Ene}if(ze in le){var de;k(((de=le[ze])===null||de===void 0?void 0:de.call(le,R(),null))||null)}return ze===Zy&&(ye(R()),c>0&&(clearTimeout(U.current),U.current=setTimeout(function(){se({deadline:!0})},c))),ze===xne&&oe(),v5e}),ke=we(Ze,2),Ne=ke[0],ze=ke[1],Ke=Wne(ze);ee.current=Ke,Tne(function(){T(e);var ot=X.current;X.current=!0;var he;!ot&&e&&a&&(he=Xk),ot&&e&&o&&(he=Pk),(ot&&!e&&u||!ot&&d&&!e&&u)&&(he=Ok);var de=fe(he);he&&(n||de[jd])?(O(he),Ne()):O(E1)},[e]),I.useEffect(function(){(z===Xk&&!a||z===Pk&&!o||z===Ok&&!u)&&O(E1)},[a,o,u]),I.useEffect(function(){return function(){X.current=!1,clearTimeout(U.current)}},[]);var ut=I.useRef(!1);I.useEffect(function(){Z&&(ut.current=!0),Z!==void 0&&z===E1&&((ut.current||Z)&&(A==null||A(Z)),ut.current=!0)},[Z,z]);var Ct=Y;return le[jd]&&ze===My&&(Ct=Se({transition:"none"},Ct)),[z,ze,Ct,Z??e]}function w5e(n){var e=n;Vn(n)==="object"&&(e=n.transitionSupport);function t(r,o){return!!(r.motionName&&e&&o!==!1)}var i=I.forwardRef(function(r,o){var s=r.visible,a=s===void 0?!0:s,l=r.removeOnLeave,u=l===void 0?!0:l,c=r.forceRender,d=r.children,h=r.motionName,g=r.leavedClassName,m=r.eventProps,f=I.useContext(wne),b=f.motion,C=t(r,b),v=I.useRef(),w=I.useRef();function S(){try{return v.current instanceof HTMLElement?v.current:ux(w.current)}catch{return null}}var F=I5e(C,a,S,r),L=we(F,4),D=L[0],A=L[1],M=L[2],W=L[3],Z=I.useRef(W);W&&(Z.current=!0);var T=I.useCallback(function(k){v.current=k,jV(o,k)},[o]),E,V=Se(Se({},m),{},{visible:a});if(!d)E=null;else if(D===E1)W?E=d(Se({},V),T):!u&&Z.current&&g?E=d(Se(Se({},V),{},{className:g}),T):c||!u&&!g?E=d(Se(Se({},V),{},{style:{display:"none"}}),T):E=null;else{var z,O;A===jd?O="prepare":Wne(A)?O="active":A===My&&(O="start");var P=Zne(h,"".concat(D,"-").concat(O));E=d(Se(Se({},V),{},{className:Me(Zne(h,D),(z={},me(z,P,P&&O),me(z,h,typeof h=="string"),z)),style:M}),T)}if(I.isValidElement(E)&&Pm(E)){var B=E,Y=B.ref;Y||(E=I.cloneElement(E,{ref:T}))}return I.createElement(d5e,{ref:w},E)});return i.displayName="CSSMotion",i}const Qc=w5e(Nne);var OX="add",BX="keep",zX="remove",YX="removed";function S5e(n){var e;return n&&Vn(n)==="object"&&"key"in n?e=n:e={key:n},Se(Se({},e),{},{key:String(e.key)})}function HX(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];return n.map(S5e)}function x5e(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],t=[],i=0,r=e.length,o=HX(n),s=HX(e);o.forEach(function(u){for(var c=!1,d=i;d1});return l.forEach(function(u){t=t.filter(function(c){var d=c.key,h=c.status;return d!==u||h!==zX}),t.forEach(function(c){c.key===u&&(c.status=BX)})}),t}var L5e=["component","children","onVisibleChanged","onAllRemoved"],F5e=["status"],_5e=["eventProps","visible","children","motionName","motionAppear","motionEnter","motionLeave","motionLeaveImmediately","motionDeadline","removeOnLeave","leavedClassName","onAppearPrepare","onAppearStart","onAppearActive","onAppearEnd","onEnterStart","onEnterActive","onEnterEnd","onLeaveStart","onLeaveActive","onLeaveEnd"];function D5e(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Qc,t=function(i){Om(o,i);var r=_1(o);function o(){var s;Cs(this,o);for(var a=arguments.length,l=new Array(a),u=0;unull;var k5e=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);re.endsWith("Color"))}const W5e=n=>{const{prefixCls:e,iconPrefixCls:t,theme:i,holderRender:r}=n;e!==void 0&&(zk=e),t!==void 0&&(Rne=t),"holderRender"in n&&(Vne=r),i&&(E5e(i)?B9e(Yk(),i):Gne=i)},JX=()=>({getPrefixCls:(n,e)=>e||(n?`${Yk()}-${n}`:Yk()),getIconPrefixCls:T5e,getRootPrefixCls:()=>zk||Yk(),getTheme:()=>Gne,holderRender:Vne}),R5e=n=>{const{children:e,csp:t,autoInsertSpaceInButton:i,alert:r,anchor:o,form:s,locale:a,componentSize:l,direction:u,space:c,virtual:d,dropdownMatchSelectWidth:h,popupMatchSelectWidth:g,popupOverflow:m,legacyLocale:f,parentContext:b,iconPrefixCls:C,theme:v,componentDisabled:w,segmented:S,statistic:F,spin:L,calendar:D,carousel:A,cascader:M,collapse:W,typography:Z,checkbox:T,descriptions:E,divider:V,drawer:z,skeleton:O,steps:P,image:B,layout:Y,list:k,mentions:X,modal:U,progress:R,result:ee,slider:oe,breadcrumb:se,menu:ue,pagination:ce,input:ye,textArea:fe,empty:le,badge:Ze,radio:ke,rate:Ne,switch:ze,transfer:Ke,avatar:ut,message:Ct,tag:ot,table:he,card:de,tabs:ge,timeline:j,timePicker:Q,upload:q,notification:te,tree:Ce,colorPicker:Le,datePicker:Ae,rangePicker:Oe,flex:tt,wave:We,dropdown:ht,warning:He,tour:Re,floatButtonGroup:dt}=n,yt=I.useCallback((nt,wt)=>{const{prefixCls:St}=n;if(wt)return wt;const et=St||b.getPrefixCls("");return nt?`${et}-${nt}`:et},[b.getPrefixCls,n.prefixCls]),Kt=C||b.iconPrefixCls||MX,Wt=t||b.csp;bne(Kt,Wt);const Ut=l5e(v,b.theme,{prefixCls:yt("")}),Nn={csp:Wt,autoInsertSpaceInButton:i,alert:r,anchor:o,locale:a||f,direction:u,space:c,virtual:d,popupMatchSelectWidth:g??h,popupOverflow:m,getPrefixCls:yt,iconPrefixCls:Kt,theme:Ut,segmented:S,statistic:F,spin:L,calendar:D,carousel:A,cascader:M,collapse:W,typography:Z,checkbox:T,descriptions:E,divider:V,drawer:z,skeleton:O,steps:P,image:B,input:ye,textArea:fe,layout:Y,list:k,mentions:X,modal:U,progress:R,result:ee,slider:oe,breadcrumb:se,menu:ue,pagination:ce,empty:le,badge:Ze,radio:ke,rate:Ne,switch:ze,transfer:Ke,avatar:ut,message:Ct,tag:ot,table:he,card:de,tabs:ge,timeline:j,timePicker:Q,upload:q,notification:te,tree:Ce,colorPicker:Le,datePicker:Ae,rangePicker:Oe,flex:tt,wave:We,dropdown:ht,warning:He,tour:Re,floatButtonGroup:dt},di=Object.assign({},b);Object.keys(Nn).forEach(nt=>{Nn[nt]!==void 0&&(di[nt]=Nn[nt])}),M5e.forEach(nt=>{const wt=n[nt];wt&&(di[nt]=wt)});const pe=cx(()=>di,di,(nt,wt)=>{const St=Object.keys(nt),et=Object.keys(wt);return St.length!==et.length||St.some(xt=>nt[xt]!==wt[xt])}),xe=I.useMemo(()=>({prefixCls:Kt,csp:Wt}),[Kt,Wt]);let _e=I.createElement(I.Fragment,null,I.createElement(N5e,{dropdownMatchSelectWidth:h}),e);const Pe=I.useMemo(()=>{var nt,wt,St,et;return _y(((nt=Ym.Form)===null||nt===void 0?void 0:nt.defaultValidateMessages)||{},((St=(wt=pe.locale)===null||wt===void 0?void 0:wt.Form)===null||St===void 0?void 0:St.defaultValidateMessages)||{},((et=pe.form)===null||et===void 0?void 0:et.validateMessages)||{},(s==null?void 0:s.validateMessages)||{})},[pe,s==null?void 0:s.validateMessages]);Object.keys(Pe).length>0&&(_e=I.createElement(zte.Provider,{value:Pe},_e)),a&&(_e=I.createElement(g9e,{locale:a,_ANT_MARK__:h9e},_e)),(Kt||Wt)&&(_e=I.createElement(IX.Provider,{value:xe},_e)),l&&(_e=I.createElement(z9e,{size:l},_e)),_e=I.createElement(A5e,null,_e);const qe=I.useMemo(()=>{const nt=Ut||{},{algorithm:wt,token:St,components:et,cssVar:xt}=nt,Zt=k5e(nt,["algorithm","token","components","cssVar"]),Mt=wt&&(!Array.isArray(wt)||wt.length>0)?cX(wt):one,zt={};Object.entries(et||{}).forEach(ri=>{let[Bn,Mn]=ri;const Yt=Object.assign({},Mn);"algorithm"in Yt&&(Yt.algorithm===!0?Yt.theme=Mt:(Array.isArray(Yt.algorithm)||typeof Yt.algorithm=="function")&&(Yt.theme=cX(Yt.algorithm)),delete Yt.algorithm),zt[Bn]=Yt});const jt=Object.assign(Object.assign({},Cx),St);return Object.assign(Object.assign({},Zt),{theme:Mt,token:jt,components:zt,override:Object.assign({override:jt},zt),cssVar:xt})},[Ut]);return v&&(_e=I.createElement(sne.Provider,{value:qe},_e)),pe.warning&&(_e=I.createElement(l9e.Provider,{value:pe.warning},_e)),w!==void 0&&(_e=I.createElement(TX,{disabled:w},_e)),I.createElement(Tn.Provider,{value:pe},_e)},Ty=n=>{const e=I.useContext(Tn),t=I.useContext(wX);return I.createElement(R5e,Object.assign({parentContext:e,legacyLocale:t},n))};Ty.ConfigContext=Tn,Ty.SizeContext=yx,Ty.config=W5e,Ty.useConfig=Y9e,Object.defineProperty(Ty,"SizeContext",{get:()=>yx});const W1=Ty;var G5e={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z"}}]},name:"check-circle",theme:"filled"};const V5e=G5e;function Xne(n){var e;return n==null||(e=n.getRootNode)===null||e===void 0?void 0:e.call(n)}function X5e(n){return Xne(n)instanceof ShadowRoot}function Hk(n){return X5e(n)?Xne(n):null}function P5e(n){return n.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}function O5e(n,e){ia(n,"[@ant-design/icons] ".concat(e))}function Pne(n){return Vn(n)==="object"&&typeof n.name=="string"&&typeof n.theme=="string"&&(Vn(n.icon)==="object"||typeof n.icon=="function")}function One(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Object.keys(n).reduce(function(e,t){var i=n[t];switch(t){case"class":e.className=i,delete e.class;break;default:delete e[t],e[P5e(t)]=i}return e},{})}function KX(n,e,t){return t?Ye.createElement(n.tag,Se(Se({key:e},One(n.attrs)),t),(n.children||[]).map(function(i,r){return KX(i,"".concat(e,"-").concat(n.tag,"-").concat(r))})):Ye.createElement(n.tag,Se({key:e},One(n.attrs)),(n.children||[]).map(function(i,r){return KX(i,"".concat(e,"-").concat(n.tag,"-").concat(r))}))}function Bne(n){return Z1(n)[0]}function zne(n){return n?Array.isArray(n)?n:[n]:[]}var B5e=` +.anticon { + display: inline-flex; + alignItems: center; + color: inherit; + font-style: normal; + line-height: 0; + text-align: center; + text-transform: none; + vertical-align: -0.125em; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.anticon > * { + line-height: 1; +} + +.anticon svg { + display: inline-block; +} + +.anticon::before { + display: none; +} + +.anticon .anticon-icon { + display: block; +} + +.anticon[tabindex] { + cursor: pointer; +} + +.anticon-spin::before, +.anticon-spin { + display: inline-block; + -webkit-animation: loadingCircle 1s infinite linear; + animation: loadingCircle 1s infinite linear; +} + +@-webkit-keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} + +@keyframes loadingCircle { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +`,z5e=function(e){var t=I.useContext(IX),i=t.csp,r=t.prefixCls,o=B5e;r&&(o=o.replace(/anticon/g,r)),I.useEffect(function(){var s=e.current,a=Hk(s);Bm(o,"@ant-design-icons",{prepend:!0,csp:i,attachTo:a})},[])},Y5e=["icon","className","onClick","style","primaryColor","secondaryColor"],Sx={primaryColor:"#333",secondaryColor:"#E6E6E6",calculated:!1};function H5e(n){var e=n.primaryColor,t=n.secondaryColor;Sx.primaryColor=e,Sx.secondaryColor=t||Bne(e),Sx.calculated=!!t}function U5e(){return Se({},Sx)}var Uk=function(e){var t=e.icon,i=e.className,r=e.onClick,o=e.style,s=e.primaryColor,a=e.secondaryColor,l=zn(e,Y5e),u=I.useRef(),c=Sx;if(s&&(c={primaryColor:s,secondaryColor:a||Bne(s)}),z5e(u),O5e(Pne(t),"icon should be icon definiton, but got ".concat(t)),!Pne(t))return null;var d=t;return d&&typeof d.icon=="function"&&(d=Se(Se({},d),{},{icon:d.icon(c.primaryColor,c.secondaryColor)})),KX(d.icon,"svg-".concat(d.name),Se(Se({className:i,onClick:r,style:o,"data-icon":d.name,width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true"},l),{},{ref:u}))};Uk.displayName="IconReact",Uk.getTwoToneColors=U5e,Uk.setTwoToneColors=H5e;const jX=Uk;function Yne(n){var e=zne(n),t=we(e,2),i=t[0],r=t[1];return jX.setTwoToneColors({primaryColor:i,secondaryColor:r})}function J5e(){var n=jX.getTwoToneColors();return n.calculated?[n.primaryColor,n.secondaryColor]:n.primaryColor}var K5e=["className","icon","spin","rotate","tabIndex","onClick","twoToneColor"];Yne(NX.primary);var Jk=I.forwardRef(function(n,e){var t=n.className,i=n.icon,r=n.spin,o=n.rotate,s=n.tabIndex,a=n.onClick,l=n.twoToneColor,u=zn(n,K5e),c=I.useContext(IX),d=c.prefixCls,h=d===void 0?"anticon":d,g=c.rootClassName,m=Me(g,h,me(me({},"".concat(h,"-").concat(i.name),!!i.name),"".concat(h,"-spin"),!!r||i.name==="loading"),t),f=s;f===void 0&&a&&(f=-1);var b=o?{msTransform:"rotate(".concat(o,"deg)"),transform:"rotate(".concat(o,"deg)")}:void 0,C=zne(l),v=we(C,2),w=v[0],S=v[1];return I.createElement("span",pt({role:"img","aria-label":i.name},u,{ref:e,tabIndex:f,onClick:a,className:m}),I.createElement(jX,{icon:i,primaryColor:w,secondaryColor:S,style:b}))});Jk.displayName="AntdIcon",Jk.getTwoToneColor=J5e,Jk.setTwoToneColor=Yne;const vo=Jk;var j5e=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:V5e}))},Q5e=I.forwardRef(j5e);const xx=Q5e;var $5e={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64c247.4 0 448 200.6 448 448S759.4 960 512 960 64 759.4 64 512 264.6 64 512 64zm127.98 274.82h-.04l-.08.06L512 466.75 384.14 338.88c-.04-.05-.06-.06-.08-.06a.12.12 0 00-.07 0c-.03 0-.05.01-.09.05l-45.02 45.02a.2.2 0 00-.05.09.12.12 0 000 .07v.02a.27.27 0 00.06.06L466.75 512 338.88 639.86c-.05.04-.06.06-.06.08a.12.12 0 000 .07c0 .03.01.05.05.09l45.02 45.02a.2.2 0 00.09.05.12.12 0 00.07 0c.02 0 .04-.01.08-.05L512 557.25l127.86 127.87c.04.04.06.05.08.05a.12.12 0 00.07 0c.03 0 .05-.01.09-.05l45.02-45.02a.2.2 0 00.05-.09.12.12 0 000-.07v-.02a.27.27 0 00-.05-.06L557.25 512l127.87-127.86c.04-.04.05-.06.05-.08a.12.12 0 000-.07c0-.03-.01-.05-.05-.09l-45.02-45.02a.2.2 0 00-.09-.05.12.12 0 00-.07 0z"}}]},name:"close-circle",theme:"filled"};const q5e=$5e;var eTe=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:q5e}))},tTe=I.forwardRef(eTe);const R1=tTe;var nTe={icon:{tag:"svg",attrs:{"fill-rule":"evenodd",viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M799.86 166.31c.02 0 .04.02.08.06l57.69 57.7c.04.03.05.05.06.08a.12.12 0 010 .06c0 .03-.02.05-.06.09L569.93 512l287.7 287.7c.04.04.05.06.06.09a.12.12 0 010 .07c0 .02-.02.04-.06.08l-57.7 57.69c-.03.04-.05.05-.07.06a.12.12 0 01-.07 0c-.03 0-.05-.02-.09-.06L512 569.93l-287.7 287.7c-.04.04-.06.05-.09.06a.12.12 0 01-.07 0c-.02 0-.04-.02-.08-.06l-57.69-57.7c-.04-.03-.05-.05-.06-.07a.12.12 0 010-.07c0-.03.02-.05.06-.09L454.07 512l-287.7-287.7c-.04-.04-.05-.06-.06-.09a.12.12 0 010-.07c0-.02.02-.04.06-.08l57.7-57.69c.03-.04.05-.05.07-.06a.12.12 0 01.07 0c.03 0 .05.02.09.06L512 454.07l287.7-287.7c.04-.04.06-.05.09-.06a.12.12 0 01.07 0z"}}]},name:"close",theme:"outlined"};const iTe=nTe;var rTe=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:iTe}))},oTe=I.forwardRef(rTe);const Xp=oTe;var sTe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"exclamation-circle",theme:"filled"};const aTe=sTe;var lTe=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:aTe}))},uTe=I.forwardRef(lTe);const Kk=uTe;var cTe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z"}}]},name:"info-circle",theme:"filled"};const dTe=cTe;var hTe=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:dTe}))},gTe=I.forwardRef(hTe);const QX=gTe;var mTe=`accept acceptCharset accessKey action allowFullScreen allowTransparency + alt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge + charSet checked classID className colSpan cols content contentEditable contextMenu + controls coords crossOrigin data dateTime default defer dir disabled download draggable + encType form formAction formEncType formMethod formNoValidate formTarget frameBorder + headers height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity + is keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media + mediaGroup method min minLength multiple muted name noValidate nonce open + optimum pattern placeholder poster preload radioGroup readOnly rel required + reversed role rowSpan rows sandbox scope scoped scrolling seamless selected + shape size sizes span spellCheck src srcDoc srcLang srcSet start step style + summary tabIndex target title type useMap value width wmode wrap`,fTe=`onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown + onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick + onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown + onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel + onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough + onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata + onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError`,pTe="".concat(mTe," ").concat(fTe).split(/[\s\n]+/),bTe="aria-",CTe="data-";function Hne(n,e){return n.indexOf(e)===0}function xu(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,t;e===!1?t={aria:!0,data:!0,attr:!0}:e===!0?t={aria:!0}:t=Se({},e);var i={};return Object.keys(n).forEach(function(r){(t.aria&&(r==="role"||Hne(r,bTe))||t.data&&Hne(r,CTe)||t.attr&&pTe.includes(r))&&(i[r]=n[r])}),i}function Une(n){return n&&Ye.isValidElement(n)&&n.type===Ye.Fragment}const vTe=(n,e,t)=>Ye.isValidElement(n)?Ye.cloneElement(n,typeof t=="function"?t(n.props||{}):t):e;function jl(n,e){return vTe(n,n,e)}const Jne=n=>typeof n=="object"&&n!=null&&n.nodeType===1,Kne=(n,e)=>(!e||n!=="hidden")&&n!=="visible"&&n!=="clip",$X=(n,e)=>{if(n.clientHeight{const r=(o=>{if(!o.ownerDocument||!o.ownerDocument.defaultView)return null;try{return o.ownerDocument.defaultView.frameElement}catch{return null}})(i);return!!r&&(r.clientHeightoe||o>n&&s=e&&a>=t?o-n-i:s>e&&at?s-e+r:0,yTe=n=>{const e=n.parentElement;return e??(n.getRootNode().host||null)},jne=(n,e)=>{var t,i,r,o;if(typeof document>"u")return[];const{scrollMode:s,block:a,inline:l,boundary:u,skipOverflowHiddenElements:c}=e,d=typeof u=="function"?u:O=>O!==u;if(!Jne(n))throw new TypeError("Invalid target");const h=document.scrollingElement||document.documentElement,g=[];let m=n;for(;Jne(m)&&d(m);){if(m=yTe(m),m===h){g.push(m);break}m!=null&&m===document.body&&$X(m)&&!$X(document.documentElement)||m!=null&&$X(m,c)&&g.push(m)}const f=(i=(t=window.visualViewport)==null?void 0:t.width)!=null?i:innerWidth,b=(o=(r=window.visualViewport)==null?void 0:r.height)!=null?o:innerHeight,{scrollX:C,scrollY:v}=window,{height:w,width:S,top:F,right:L,bottom:D,left:A}=n.getBoundingClientRect(),{top:M,right:W,bottom:Z,left:T}=(O=>{const P=window.getComputedStyle(O);return{top:parseFloat(P.scrollMarginTop)||0,right:parseFloat(P.scrollMarginRight)||0,bottom:parseFloat(P.scrollMarginBottom)||0,left:parseFloat(P.scrollMarginLeft)||0}})(n);let E=a==="start"||a==="nearest"?F-M:a==="end"?D+Z:F+w/2-M+Z,V=l==="center"?A+S/2-T+W:l==="end"?L+W:A-T;const z=[];for(let O=0;O=0&&A>=0&&D<=b&&L<=f&&F>=k&&D<=U&&A>=R&&L<=X)return z;const ee=getComputedStyle(P),oe=parseInt(ee.borderLeftWidth,10),se=parseInt(ee.borderTopWidth,10),ue=parseInt(ee.borderRightWidth,10),ce=parseInt(ee.borderBottomWidth,10);let ye=0,fe=0;const le="offsetWidth"in P?P.offsetWidth-P.clientWidth-oe-ue:0,Ze="offsetHeight"in P?P.offsetHeight-P.clientHeight-se-ce:0,ke="offsetWidth"in P?P.offsetWidth===0?0:Y/P.offsetWidth:0,Ne="offsetHeight"in P?P.offsetHeight===0?0:B/P.offsetHeight:0;if(h===P)ye=a==="start"?E:a==="end"?E-b:a==="nearest"?jk(v,v+b,b,se,ce,v+E,v+E+w,w):E-b/2,fe=l==="start"?V:l==="center"?V-f/2:l==="end"?V-f:jk(C,C+f,f,oe,ue,C+V,C+V+S,S),ye=Math.max(0,ye+v),fe=Math.max(0,fe+C);else{ye=a==="start"?E-k-se:a==="end"?E-U+ce+Ze:a==="nearest"?jk(k,U,B,se,ce+Ze,E,E+w,w):E-(k+B/2)+Ze/2,fe=l==="start"?V-R-oe:l==="center"?V-(R+Y/2)+le/2:l==="end"?V-X+ue+le:jk(R,X,Y,oe,ue+le,V,V+S,S);const{scrollLeft:ze,scrollTop:Ke}=P;ye=Ne===0?0:Math.max(0,Math.min(Ke+ye/Ne,P.scrollHeight-B/Ne+Ze)),fe=ke===0?0:Math.max(0,Math.min(ze+fe/ke,P.scrollWidth-Y/ke+le)),E+=Ke-ye,V+=ze-fe}z.push({el:P,top:ye,left:fe})}return z},ITe=n=>n===!1?{block:"end",inline:"nearest"}:(e=>e===Object(e)&&Object.keys(e).length!==0)(n)?n:{block:"start",inline:"nearest"};function wTe(n,e){if(!n.isConnected||!(r=>{let o=r;for(;o&&o.parentNode;){if(o.parentNode===document)return!0;o=o.parentNode instanceof ShadowRoot?o.parentNode.host:o.parentNode}return!1})(n))return;const t=(r=>{const o=window.getComputedStyle(r);return{top:parseFloat(o.scrollMarginTop)||0,right:parseFloat(o.scrollMarginRight)||0,bottom:parseFloat(o.scrollMarginBottom)||0,left:parseFloat(o.scrollMarginLeft)||0}})(n);if((r=>typeof r=="object"&&typeof r.behavior=="function")(e))return e.behavior(jne(n,e));const i=typeof e=="boolean"||e==null?void 0:e.behavior;for(const{el:r,top:o,left:s}of jne(n,ITe(e))){const a=o-t.top+t.bottom,l=s-t.left+t.right;r.scroll({top:a,left:l,behavior:i})}}const ys=n=>{const[,,,,e]=Ga();return e?`${n}-css-var`:""};var At={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(e){var t=e.keyCode;if(e.altKey&&!e.ctrlKey||e.metaKey||t>=At.F1&&t<=At.F12)return!1;switch(t){case At.ALT:case At.CAPS_LOCK:case At.CONTEXT_MENU:case At.CTRL:case At.DOWN:case At.END:case At.ESC:case At.HOME:case At.INSERT:case At.LEFT:case At.MAC_FF_META:case At.META:case At.NUMLOCK:case At.NUM_CENTER:case At.PAGE_DOWN:case At.PAGE_UP:case At.PAUSE:case At.PRINT_SCREEN:case At.RIGHT:case At.SHIFT:case At.UP:case At.WIN_KEY:case At.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=At.ZERO&&e<=At.NINE||e>=At.NUM_ZERO&&e<=At.NUM_MULTIPLY||e>=At.A&&e<=At.Z||window.navigator.userAgent.indexOf("WebKit")!==-1&&e===0)return!0;switch(e){case At.SPACE:case At.QUESTION_MARK:case At.NUM_PLUS:case At.NUM_MINUS:case At.NUM_PERIOD:case At.NUM_DIVISION:case At.SEMICOLON:case At.DASH:case At.EQUALS:case At.COMMA:case At.PERIOD:case At.SLASH:case At.APOSTROPHE:case At.SINGLE_QUOTE:case At.OPEN_SQUARE_BRACKET:case At.BACKSLASH:case At.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}},qX=I.forwardRef(function(n,e){var t=n.prefixCls,i=n.style,r=n.className,o=n.duration,s=o===void 0?4.5:o,a=n.eventKey,l=n.content,u=n.closable,c=n.closeIcon,d=c===void 0?"x":c,h=n.props,g=n.onClick,m=n.onNoticeClose,f=n.times,b=n.hovering,C=I.useState(!1),v=we(C,2),w=v[0],S=v[1],F=b||w,L=function(){m(a)},D=function(T){(T.key==="Enter"||T.code==="Enter"||T.keyCode===At.ENTER)&&L()};I.useEffect(function(){if(!F&&s>0){var Z=setTimeout(function(){L()},s*1e3);return function(){clearTimeout(Z)}}},[s,F,f]);var A=I.useMemo(function(){return Vn(u)==="object"&&u!==null?u:u?{closeIcon:d}:{}},[u,d]),M=xu(A,!0),W="".concat(t,"-notice");return I.createElement("div",pt({},h,{ref:e,className:Me(W,r,me({},"".concat(W,"-closable"),u)),style:i,onMouseEnter:function(T){var E;S(!0),h==null||(E=h.onMouseEnter)===null||E===void 0||E.call(h,T)},onMouseLeave:function(T){var E;S(!1),h==null||(E=h.onMouseLeave)===null||E===void 0||E.call(h,T)},onClick:g}),I.createElement("div",{className:"".concat(W,"-content")},l),u&&I.createElement("a",pt({tabIndex:0,className:"".concat(W,"-close"),onKeyDown:D,"aria-label":"Close"},M,{onClick:function(T){T.preventDefault(),T.stopPropagation(),L()}}),A.closeIcon))}),Qne=Ye.createContext({}),$ne=function(e){var t=e.children,i=e.classNames;return Ye.createElement(Qne.Provider,{value:{classNames:i}},t)},qne=8,eie=3,tie=16,STe=function(e){var t={offset:qne,threshold:eie,gap:tie};if(e&&Vn(e)==="object"){var i,r,o;t.offset=(i=e.offset)!==null&&i!==void 0?i:qne,t.threshold=(r=e.threshold)!==null&&r!==void 0?r:eie,t.gap=(o=e.gap)!==null&&o!==void 0?o:tie}return[!!e,t]},xTe=["className","style","classNames","styles"],LTe=function(e){var t=e.configList,i=e.placement,r=e.prefixCls,o=e.className,s=e.style,a=e.motion,l=e.onAllNoticeRemoved,u=e.onNoticeClose,c=e.stack,d=I.useContext(Qne),h=d.classNames,g=I.useRef({}),m=I.useState(null),f=we(m,2),b=f[0],C=f[1],v=I.useState([]),w=we(v,2),S=w[0],F=w[1],L=t.map(function(O){return{config:O,key:String(O.key)}}),D=STe(c),A=we(D,2),M=A[0],W=A[1],Z=W.offset,T=W.threshold,E=W.gap,V=M&&(S.length>0||L.length<=T),z=typeof a=="function"?a(i):a;return I.useEffect(function(){M&&S.length>1&&F(function(O){return O.filter(function(P){return L.some(function(B){var Y=B.key;return P===Y})})})},[S,L,M]),I.useEffect(function(){var O;if(M&&g.current[(O=L[L.length-1])===null||O===void 0?void 0:O.key]){var P;C(g.current[(P=L[L.length-1])===null||P===void 0?void 0:P.key])}},[L,M]),Ye.createElement(UX,pt({key:i,className:Me(r,"".concat(r,"-").concat(i),h==null?void 0:h.list,o,me(me({},"".concat(r,"-stack"),!!M),"".concat(r,"-stack-expanded"),V)),style:s,keys:L,motionAppear:!0},z,{onAllRemoved:function(){l(i)}}),function(O,P){var B=O.config,Y=O.className,k=O.style,X=O.index,U=B,R=U.key,ee=U.times,oe=String(R),se=B,ue=se.className,ce=se.style,ye=se.classNames,fe=se.styles,le=zn(se,xTe),Ze=L.findIndex(function(Q){return Q.key===oe}),ke={};if(M){var Ne=L.length-1-(Ze>-1?Ze:X-1),ze=i==="top"||i==="bottom"?"-50%":"0";if(Ne>0){var Ke,ut,Ct;ke.height=V?(Ke=g.current[oe])===null||Ke===void 0?void 0:Ke.offsetHeight:b==null?void 0:b.offsetHeight;for(var ot=0,he=0;he-1?g.current[oe]=q:delete g.current[oe]},prefixCls:r,classNames:ye,styles:fe,className:Me(ue,h==null?void 0:h.notice),style:ce,times:ee,key:R,eventKey:R,onNoticeClose:u,hovering:M&&S.length>0})))})},FTe=I.forwardRef(function(n,e){var t=n.prefixCls,i=t===void 0?"rc-notification":t,r=n.container,o=n.motion,s=n.maxCount,a=n.className,l=n.style,u=n.onAllRemoved,c=n.stack,d=n.renderNotifications,h=I.useState([]),g=we(h,2),m=g[0],f=g[1],b=function(M){var W,Z=m.find(function(T){return T.key===M});Z==null||(W=Z.onClose)===null||W===void 0||W.call(Z),f(function(T){return T.filter(function(E){return E.key!==M})})};I.useImperativeHandle(e,function(){return{open:function(M){f(function(W){var Z=_t(W),T=Z.findIndex(function(z){return z.key===M.key}),E=Se({},M);if(T>=0){var V;E.times=(((V=W[T])===null||V===void 0?void 0:V.times)||0)+1,Z[T]=E}else E.times=0,Z.push(E);return s>0&&Z.length>s&&(Z=Z.slice(-s)),Z})},close:function(M){b(M)},destroy:function(){f([])}}});var C=I.useState({}),v=we(C,2),w=v[0],S=v[1];I.useEffect(function(){var A={};m.forEach(function(M){var W=M.placement,Z=W===void 0?"topRight":W;Z&&(A[Z]=A[Z]||[],A[Z].push(M))}),Object.keys(w).forEach(function(M){A[M]=A[M]||[]}),S(A)},[m]);var F=function(M){S(function(W){var Z=Se({},W),T=Z[M]||[];return T.length||delete Z[M],Z})},L=I.useRef(!1);if(I.useEffect(function(){Object.keys(w).length>0?L.current=!0:L.current&&(u==null||u(),L.current=!1)},[w]),!r)return null;var D=Object.keys(w);return zd.createPortal(I.createElement(I.Fragment,null,D.map(function(A){var M=w[A],W=I.createElement(LTe,{key:A,configList:M,placement:A,prefixCls:i,className:a==null?void 0:a(A),style:l==null?void 0:l(A),motion:o,onNoticeClose:b,onAllNoticeRemoved:F,stack:c});return d?d(W,{prefixCls:i,key:A}):W})),r)}),_Te=["getContainer","motion","prefixCls","maxCount","className","style","onAllRemoved","stack","renderNotifications"],DTe=function(){return document.body},nie=0;function ATe(){for(var n={},e=arguments.length,t=new Array(e),i=0;i0&&arguments[0]!==void 0?arguments[0]:{},e=n.getContainer,t=e===void 0?DTe:e,i=n.motion,r=n.prefixCls,o=n.maxCount,s=n.className,a=n.style,l=n.onAllRemoved,u=n.stack,c=n.renderNotifications,d=zn(n,_Te),h=I.useState(),g=we(h,2),m=g[0],f=g[1],b=I.useRef(),C=I.createElement(FTe,{container:m,ref:b,prefixCls:r,motion:i,maxCount:o,className:s,style:a,onAllRemoved:l,stack:u,renderNotifications:c}),v=I.useState([]),w=we(v,2),S=w[0],F=w[1],L=I.useMemo(function(){return{open:function(A){var M=ATe(d,A);(M.key===null||M.key===void 0)&&(M.key="rc-notification-".concat(nie),nie+=1),F(function(W){return[].concat(_t(W),[{type:"open",config:M}])})},close:function(A){F(function(M){return[].concat(_t(M),[{type:"close",key:A}])})},destroy:function(){F(function(A){return[].concat(_t(A),[{type:"destroy"}])})}}},[]);return I.useEffect(function(){f(t())}),I.useEffect(function(){b.current&&S.length&&(S.forEach(function(D){switch(D.type){case"open":b.current.open(D.config);break;case"close":b.current.close(D.key);break;case"destroy":b.current.destroy();break}}),F(function(D){return D.filter(function(A){return!S.includes(A)})}))},[S]),[L,C]}var NTe={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z"}}]},name:"loading",theme:"outlined"};const kTe=NTe;var MTe=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:kTe}))},ZTe=I.forwardRef(MTe);const Ey=ZTe,Qk=Ye.createContext(void 0),G1=100,$k=G1*10,rie={Modal:G1,Drawer:G1,Popover:G1,Popconfirm:G1,Tooltip:G1,Tour:G1},TTe={SelectLike:50,Dropdown:50,DatePicker:50,Menu:50,ImagePreview:1};function ETe(n){return n in rie}function V1(n,e){const[,t]=Ga(),i=Ye.useContext(Qk),r=ETe(n);if(e!==void 0)return[e,e];let o=i??0;return r?(o+=(i?0:t.zIndexPopupBase)+rie[n],o=Math.min(o,t.zIndexPopupBase+$k)):o+=TTe[n],[i===void 0?e:o,o]}const WTe=n=>{const{componentCls:e,iconCls:t,boxShadow:i,colorText:r,colorSuccess:o,colorError:s,colorWarning:a,colorInfo:l,fontSizeLG:u,motionEaseInOutCirc:c,motionDurationSlow:d,marginXS:h,paddingXS:g,borderRadiusLG:m,zIndexPopup:f,contentPadding:b,contentBg:C}=n,v=`${e}-notice`,w=new Ni("MessageMoveIn",{"0%":{padding:0,transform:"translateY(-100%)",opacity:0},"100%":{padding:g,transform:"translateY(0)",opacity:1}}),S=new Ni("MessageMoveOut",{"0%":{maxHeight:n.height,padding:g,opacity:1},"100%":{maxHeight:0,padding:0,opacity:0}}),F={padding:g,textAlign:"center",[`${e}-custom-content > ${t}`]:{verticalAlign:"text-bottom",marginInlineEnd:h,fontSize:u},[`${v}-content`]:{display:"inline-block",padding:b,background:C,borderRadius:m,boxShadow:i,pointerEvents:"all"},[`${e}-success > ${t}`]:{color:o},[`${e}-error > ${t}`]:{color:s},[`${e}-warning > ${t}`]:{color:a},[`${e}-info > ${t}, + ${e}-loading > ${t}`]:{color:l}};return[{[e]:Object.assign(Object.assign({},oo(n)),{color:r,position:"fixed",top:h,width:"100%",pointerEvents:"none",zIndex:f,[`${e}-move-up`]:{animationFillMode:"forwards"},[` + ${e}-move-up-appear, + ${e}-move-up-enter + `]:{animationName:w,animationDuration:d,animationPlayState:"paused",animationTimingFunction:c},[` + ${e}-move-up-appear${e}-move-up-appear-active, + ${e}-move-up-enter${e}-move-up-enter-active + `]:{animationPlayState:"running"},[`${e}-move-up-leave`]:{animationName:S,animationDuration:d,animationPlayState:"paused",animationTimingFunction:c},[`${e}-move-up-leave${e}-move-up-leave-active`]:{animationPlayState:"running"},"&-rtl":{direction:"rtl",span:{direction:"rtl"}}})},{[e]:{[`${v}-wrapper`]:Object.assign({},F)}},{[`${e}-notice-pure-panel`]:Object.assign(Object.assign({},F),{padding:0,textAlign:"start"})}]},oie=Oo("Message",n=>{const e=Bi(n,{height:150});return[WTe(e)]},n=>({zIndexPopup:n.zIndexPopupBase+$k+10,contentBg:n.colorBgElevated,contentPadding:`${(n.controlHeightLG-n.fontSize*n.lineHeight)/2}px ${n.paddingSM}px`}));var RTe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{let{prefixCls:e,type:t,icon:i,children:r}=n;return I.createElement("div",{className:Me(`${e}-custom-content`,`${e}-${t}`)},i||GTe[t],I.createElement("span",null,r))},VTe=n=>{const{prefixCls:e,className:t,type:i,icon:r,content:o}=n,s=RTe(n,["prefixCls","className","type","icon","content"]),{getPrefixCls:a}=I.useContext(Tn),l=e||a("message"),u=ys(l),[c,d,h]=oie(l,u);return c(I.createElement(qX,Object.assign({},s,{prefixCls:l,className:Me(t,d,`${l}-notice-pure-panel`,h,u),eventKey:"pure",duration:null,content:I.createElement(sie,{prefixCls:l,type:i,icon:r},o)})))};function XTe(n,e){return{motionName:e??`${n}-move-up`}}function e4(n){let e;const t=new Promise(r=>{e=n(()=>{r(!0)})}),i=()=>{e==null||e()};return i.then=(r,o)=>t.then(r,o),i.promise=t,i}var PTe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{let{children:e,prefixCls:t}=n;const i=ys(t),[r,o,s]=oie(t,i);return r(I.createElement($ne,{classNames:{list:Me(o,s,i)}},e))},YTe=(n,e)=>{let{prefixCls:t,key:i}=e;return I.createElement(zTe,{prefixCls:t,key:i},n)},HTe=I.forwardRef((n,e)=>{const{top:t,prefixCls:i,getContainer:r,maxCount:o,duration:s=BTe,rtl:a,transitionName:l,onAllRemoved:u}=n,{getPrefixCls:c,getPopupContainer:d,message:h,direction:g}=I.useContext(Tn),m=i||c("message"),f=()=>({left:"50%",transform:"translateX(-50%)",top:t??OTe}),b=()=>Me({[`${m}-rtl`]:a??g==="rtl"}),C=()=>XTe(m,l),v=I.createElement("span",{className:`${m}-close-x`},I.createElement(Xp,{className:`${m}-close-icon`})),[w,S]=iie({prefixCls:m,style:f,className:b,motion:C,closable:!1,closeIcon:v,duration:s,getContainer:()=>(r==null?void 0:r())||(d==null?void 0:d())||document.body,maxCount:o,onAllRemoved:u,renderNotifications:YTe});return I.useImperativeHandle(e,()=>Object.assign(Object.assign({},w),{prefixCls:m,message:h})),S});let aie=0;function lie(n){const e=I.useRef(null);return Dy(),[I.useMemo(()=>{const i=l=>{var u;(u=e.current)===null||u===void 0||u.close(l)},r=l=>{if(!e.current){const L=()=>{};return L.then=()=>{},L}const{open:u,prefixCls:c,message:d}=e.current,h=`${c}-notice`,{content:g,icon:m,type:f,key:b,className:C,style:v,onClose:w}=l,S=PTe(l,["content","icon","type","key","className","style","onClose"]);let F=b;return F==null&&(aie+=1,F=`antd-message-${aie}`),e4(L=>(u(Object.assign(Object.assign({},S),{key:F,content:I.createElement(sie,{prefixCls:c,type:f,icon:m},g),placement:"top",className:Me(f&&`${h}-${f}`,C,d==null?void 0:d.className),style:Object.assign(Object.assign({},d==null?void 0:d.style),v),onClose:()=>{w==null||w(),L()}})),()=>{i(F)}))},s={open:r,destroy:l=>{var u;l!==void 0?i(l):(u=e.current)===null||u===void 0||u.destroy()}};return["info","success","warning","error","loading"].forEach(l=>{const u=(c,d,h)=>{let g;c&&typeof c=="object"&&"content"in c?g=c:g={content:c};let m,f;typeof d=="function"?f=d:(m=d,f=h);const b=Object.assign(Object.assign({onClose:f,duration:m},g),{type:l});return r(b)};s[l]=u}),s},[]),I.createElement(HTe,Object.assign({key:"message-holder"},n,{ref:e}))]}function UTe(n){return lie(n)}function JTe(){const[n,e]=I.useState([]),t=I.useCallback(i=>(e(r=>[].concat(_t(r),[i])),()=>{e(r=>r.filter(o=>o!==i))}),[]);return[n,t]}function Va(){Va=function(){return e};var n,e={},t=Object.prototype,i=t.hasOwnProperty,r=Object.defineProperty||function(O,P,B){O[P]=B.value},o=typeof Symbol=="function"?Symbol:{},s=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",l=o.toStringTag||"@@toStringTag";function u(O,P,B){return Object.defineProperty(O,P,{value:B,enumerable:!0,configurable:!0,writable:!0}),O[P]}try{u({},"")}catch{u=function(B,Y,k){return B[Y]=k}}function c(O,P,B,Y){var k=P&&P.prototype instanceof C?P:C,X=Object.create(k.prototype),U=new V(Y||[]);return r(X,"_invoke",{value:W(O,B,U)}),X}function d(O,P,B){try{return{type:"normal",arg:O.call(P,B)}}catch(Y){return{type:"throw",arg:Y}}}e.wrap=c;var h="suspendedStart",g="suspendedYield",m="executing",f="completed",b={};function C(){}function v(){}function w(){}var S={};u(S,s,function(){return this});var F=Object.getPrototypeOf,L=F&&F(F(z([])));L&&L!==t&&i.call(L,s)&&(S=L);var D=w.prototype=C.prototype=Object.create(S);function A(O){["next","throw","return"].forEach(function(P){u(O,P,function(B){return this._invoke(P,B)})})}function M(O,P){function B(k,X,U,R){var ee=d(O[k],O,X);if(ee.type!=="throw"){var oe=ee.arg,se=oe.value;return se&&Vn(se)=="object"&&i.call(se,"__await")?P.resolve(se.__await).then(function(ue){B("next",ue,U,R)},function(ue){B("throw",ue,U,R)}):P.resolve(se).then(function(ue){oe.value=ue,U(oe)},function(ue){return B("throw",ue,U,R)})}R(ee.arg)}var Y;r(this,"_invoke",{value:function(X,U){function R(){return new P(function(ee,oe){B(X,U,ee,oe)})}return Y=Y?Y.then(R,R):R()}})}function W(O,P,B){var Y=h;return function(k,X){if(Y===m)throw Error("Generator is already running");if(Y===f){if(k==="throw")throw X;return{value:n,done:!0}}for(B.method=k,B.arg=X;;){var U=B.delegate;if(U){var R=Z(U,B);if(R){if(R===b)continue;return R}}if(B.method==="next")B.sent=B._sent=B.arg;else if(B.method==="throw"){if(Y===h)throw Y=f,B.arg;B.dispatchException(B.arg)}else B.method==="return"&&B.abrupt("return",B.arg);Y=m;var ee=d(O,P,B);if(ee.type==="normal"){if(Y=B.done?f:g,ee.arg===b)continue;return{value:ee.arg,done:B.done}}ee.type==="throw"&&(Y=f,B.method="throw",B.arg=ee.arg)}}}function Z(O,P){var B=P.method,Y=O.iterator[B];if(Y===n)return P.delegate=null,B==="throw"&&O.iterator.return&&(P.method="return",P.arg=n,Z(O,P),P.method==="throw")||B!=="return"&&(P.method="throw",P.arg=new TypeError("The iterator does not provide a '"+B+"' method")),b;var k=d(Y,O.iterator,P.arg);if(k.type==="throw")return P.method="throw",P.arg=k.arg,P.delegate=null,b;var X=k.arg;return X?X.done?(P[O.resultName]=X.value,P.next=O.nextLoc,P.method!=="return"&&(P.method="next",P.arg=n),P.delegate=null,b):X:(P.method="throw",P.arg=new TypeError("iterator result is not an object"),P.delegate=null,b)}function T(O){var P={tryLoc:O[0]};1 in O&&(P.catchLoc=O[1]),2 in O&&(P.finallyLoc=O[2],P.afterLoc=O[3]),this.tryEntries.push(P)}function E(O){var P=O.completion||{};P.type="normal",delete P.arg,O.completion=P}function V(O){this.tryEntries=[{tryLoc:"root"}],O.forEach(T,this),this.reset(!0)}function z(O){if(O||O===""){var P=O[s];if(P)return P.call(O);if(typeof O.next=="function")return O;if(!isNaN(O.length)){var B=-1,Y=function k(){for(;++B=0;--k){var X=this.tryEntries[k],U=X.completion;if(X.tryLoc==="root")return Y("end");if(X.tryLoc<=this.prev){var R=i.call(X,"catchLoc"),ee=i.call(X,"finallyLoc");if(R&&ee){if(this.prev=0;--Y){var k=this.tryEntries[Y];if(k.tryLoc<=this.prev&&i.call(k,"finallyLoc")&&this.prev=0;--B){var Y=this.tryEntries[B];if(Y.finallyLoc===P)return this.complete(Y.completion,Y.afterLoc),E(Y),b}},catch:function(P){for(var B=this.tryEntries.length-1;B>=0;--B){var Y=this.tryEntries[B];if(Y.tryLoc===P){var k=Y.completion;if(k.type==="throw"){var X=k.arg;E(Y)}return X}}throw Error("illegal catch attempt")},delegateYield:function(P,B,Y){return this.delegate={iterator:z(P),resultName:B,nextLoc:Y},this.method==="next"&&(this.arg=n),b}},e}function uie(n,e,t,i,r,o,s){try{var a=n[o](s),l=a.value}catch(u){t(u);return}a.done?e(l):Promise.resolve(l).then(i,r)}function Pp(n){return function(){var e=this,t=arguments;return new Promise(function(i,r){var o=n.apply(e,t);function s(l){uie(o,i,r,s,a,"next",l)}function a(l){uie(o,i,r,s,a,"throw",l)}s(void 0)})}}var Lx=Se({},Kee),KTe=Lx.version,jTe=Lx.render,QTe=Lx.unmountComponentAtNode,qk;try{var $Te=Number((KTe||"").split(".")[0]);$Te>=18&&(qk=Lx.createRoot)}catch{}function cie(n){var e=Lx.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;e&&Vn(e)==="object"&&(e.usingClientEntryPoint=n)}var eM="__rc_react_root__";function qTe(n,e){cie(!0);var t=e[eM]||qk(e);cie(!1),t.render(n),e[eM]=t}function eEe(n,e){jTe(n,e)}function tM(n,e){if(qk){qTe(n,e);return}eEe(n,e)}function tEe(n){return t4.apply(this,arguments)}function t4(){return t4=Pp(Va().mark(function n(e){return Va().wrap(function(i){for(;;)switch(i.prev=i.next){case 0:return i.abrupt("return",Promise.resolve().then(function(){var r;(r=e[eM])===null||r===void 0||r.unmount(),delete e[eM]}));case 1:case"end":return i.stop()}},n)})),t4.apply(this,arguments)}function nEe(n){QTe(n)}function die(n){return n4.apply(this,arguments)}function n4(){return n4=Pp(Va().mark(function n(e){return Va().wrap(function(i){for(;;)switch(i.prev=i.next){case 0:if(qk===void 0){i.next=2;break}return i.abrupt("return",tEe(e));case 2:nEe(e);case 3:case"end":return i.stop()}},n)})),n4.apply(this,arguments)}const i4=()=>({height:0,opacity:0}),hie=n=>{const{scrollHeight:e}=n;return{height:e,opacity:1}},iEe=n=>({height:n?n.offsetHeight:0}),r4=(n,e)=>(e==null?void 0:e.deadline)===!0||e.propertyName==="height",nM=function(){return{motionName:`${arguments.length>0&&arguments[0]!==void 0?arguments[0]:"ant"}-motion-collapse`,onAppearStart:i4,onEnterStart:i4,onAppearActive:hie,onEnterActive:hie,onLeaveStart:iEe,onLeaveActive:i4,onAppearEnd:r4,onEnterEnd:r4,onLeaveEnd:r4,motionDeadline:500}},Op=(n,e,t)=>t!==void 0?t:`${n}-${e}`,Fx=function(n){if(!n)return!1;if(n instanceof Element){if(n.offsetParent)return!0;if(n.getBBox){var e=n.getBBox(),t=e.width,i=e.height;if(t||i)return!0}if(n.getBoundingClientRect){var r=n.getBoundingClientRect(),o=r.width,s=r.height;if(o||s)return!0}}return!1},rEe=n=>{const{componentCls:e,colorPrimary:t}=n;return{[e]:{position:"absolute",background:"transparent",pointerEvents:"none",boxSizing:"border-box",color:`var(--wave-color, ${t})`,boxShadow:"0 0 0 0 currentcolor",opacity:.2,"&.wave-motion-appear":{transition:[`box-shadow 0.4s ${n.motionEaseOutCirc}`,`opacity 2s ${n.motionEaseOutCirc}`].join(","),"&-active":{boxShadow:"0 0 0 6px currentcolor",opacity:0},"&.wave-quick":{transition:[`box-shadow ${n.motionDurationSlow} ${n.motionEaseInOut}`,`opacity ${n.motionDurationSlow} ${n.motionEaseInOut}`].join(",")}}}}},oEe=XX("Wave",n=>[rEe(n)]),o4="ant-wave-target";function sEe(n){const e=(n||"").match(/rgba?\((\d*), (\d*), (\d*)(, [\d.]*)?\)/);return e&&e[1]&&e[2]&&e[3]?!(e[1]===e[2]&&e[2]===e[3]):!0}function s4(n){return n&&n!=="#fff"&&n!=="#ffffff"&&n!=="rgb(255, 255, 255)"&&n!=="rgba(255, 255, 255, 1)"&&sEe(n)&&!/rgba\((?:\d*, ){3}0\)/.test(n)&&n!=="transparent"}function aEe(n){const{borderTopColor:e,borderColor:t,backgroundColor:i}=getComputedStyle(n);return s4(e)?e:s4(t)?t:s4(i)?i:null}function a4(n){return Number.isNaN(n)?0:n}const lEe=n=>{const{className:e,target:t,component:i}=n,r=I.useRef(null),[o,s]=I.useState(null),[a,l]=I.useState([]),[u,c]=I.useState(0),[d,h]=I.useState(0),[g,m]=I.useState(0),[f,b]=I.useState(0),[C,v]=I.useState(!1),w={left:u,top:d,width:g,height:f,borderRadius:a.map(L=>`${L}px`).join(" ")};o&&(w["--wave-color"]=o);function S(){const L=getComputedStyle(t);s(aEe(t));const D=L.position==="static",{borderLeftWidth:A,borderTopWidth:M}=L;c(D?t.offsetLeft:a4(-parseFloat(A))),h(D?t.offsetTop:a4(-parseFloat(M))),m(t.offsetWidth),b(t.offsetHeight);const{borderTopLeftRadius:W,borderTopRightRadius:Z,borderBottomLeftRadius:T,borderBottomRightRadius:E}=L;l([W,Z,E,T].map(V=>a4(parseFloat(V))))}if(I.useEffect(()=>{if(t){const L=xi(()=>{S(),v(!0)});let D;return typeof ResizeObserver<"u"&&(D=new ResizeObserver(S),D.observe(t)),()=>{xi.cancel(L),D==null||D.disconnect()}}},[]),!C)return null;const F=(i==="Checkbox"||i==="Radio")&&(t==null?void 0:t.classList.contains(o4));return I.createElement(Qc,{visible:!0,motionAppear:!0,motionName:"wave-motion",motionDeadline:5e3,onAppearEnd:(L,D)=>{var A;if(D.deadline||D.propertyName==="opacity"){const M=(A=r.current)===null||A===void 0?void 0:A.parentElement;die(M).then(()=>{M==null||M.remove()})}return!1}},L=>{let{className:D}=L;return I.createElement("div",{ref:r,className:Me(e,{"wave-quick":F},D),style:w})})},uEe=(n,e)=>{var t;const{component:i}=e;if(i==="Checkbox"&&!(!((t=n.querySelector("input"))===null||t===void 0)&&t.checked))return;const r=document.createElement("div");r.style.position="absolute",r.style.left="0px",r.style.top="0px",n==null||n.insertBefore(r,n==null?void 0:n.firstChild),tM(I.createElement(lEe,Object.assign({},e,{target:n})),r)},cEe=(n,e,t)=>{const{wave:i}=I.useContext(Tn),[,r,o]=Ga(),s=Ki(u=>{const c=n.current;if(i!=null&&i.disabled||!c)return;const d=c.querySelector(`.${o4}`)||c,{showEffect:h}=i||{};(h||uEe)(d,{className:e,token:r,component:t,event:u,hashId:o})}),a=I.useRef();return u=>{xi.cancel(a.current),a.current=xi(()=>{s(u)})}},gie=n=>{const{children:e,disabled:t,component:i}=n,{getPrefixCls:r}=I.useContext(Tn),o=I.useRef(null),s=r("wave"),[,a]=oEe(s),l=cEe(o,Me(s,a),i);if(Ye.useEffect(()=>{const c=o.current;if(!c||c.nodeType!==1||t)return;const d=h=>{!Fx(h.target)||!c.getAttribute||c.getAttribute("disabled")||c.disabled||c.className.includes("disabled")||c.className.includes("-leave")||l(h)};return c.addEventListener("click",d,!0),()=>{c.removeEventListener("click",d,!0)}},[t]),!Ye.isValidElement(e))return e??null;const u=Pm(e)?Su(e.ref,o):o;return jl(e,{ref:u})},cc=n=>{const e=Ye.useContext(yx);return Ye.useMemo(()=>n?typeof n=="string"?n??e:n instanceof Function?n(e):e:e,[n,e])},dEe=n=>{const{componentCls:e}=n;return{[e]:{"&-block":{display:"flex",width:"100%"},"&-vertical":{flexDirection:"column"}}}},hEe=n=>{const{componentCls:e,antCls:t}=n;return{[e]:{display:"inline-flex","&-rtl":{direction:"rtl"},"&-vertical":{flexDirection:"column"},"&-align":{flexDirection:"column","&-center":{alignItems:"center"},"&-start":{alignItems:"flex-start"},"&-end":{alignItems:"flex-end"},"&-baseline":{alignItems:"baseline"}},[`${e}-item:empty`]:{display:"none"},[`${e}-item > ${t}-badge-not-a-wrapper:only-child`]:{display:"block"}}}},gEe=n=>{const{componentCls:e}=n;return{[e]:{"&-gap-row-small":{rowGap:n.spaceGapSmallSize},"&-gap-row-middle":{rowGap:n.spaceGapMiddleSize},"&-gap-row-large":{rowGap:n.spaceGapLargeSize},"&-gap-col-small":{columnGap:n.spaceGapSmallSize},"&-gap-col-middle":{columnGap:n.spaceGapMiddleSize},"&-gap-col-large":{columnGap:n.spaceGapLargeSize}}}},mie=Oo("Space",n=>{const e=Bi(n,{spaceGapSmallSize:n.paddingXS,spaceGapMiddleSize:n.padding,spaceGapLargeSize:n.paddingLG});return[hEe(e),gEe(e),dEe(e)]},()=>({}),{resetStyle:!1});var fie=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{const t=I.useContext(iM),i=I.useMemo(()=>{if(!t)return"";const{compactDirection:r,isFirstItem:o,isLastItem:s}=t,a=r==="vertical"?"-vertical-":"-";return Me(`${n}-compact${a}item`,{[`${n}-compact${a}first-item`]:o,[`${n}-compact${a}last-item`]:s,[`${n}-compact${a}item-rtl`]:e==="rtl"})},[n,e,t]);return{compactSize:t==null?void 0:t.compactSize,compactDirection:t==null?void 0:t.compactDirection,compactItemClassnames:i}},Jm=n=>{let{children:e}=n;return I.createElement(iM.Provider,{value:null},e)},mEe=n=>{var{children:e}=n,t=fie(n,["children"]);return I.createElement(iM.Provider,{value:t},e)},fEe=n=>{const{getPrefixCls:e,direction:t}=I.useContext(Tn),{size:i,direction:r,block:o,prefixCls:s,className:a,rootClassName:l,children:u}=n,c=fie(n,["size","direction","block","prefixCls","className","rootClassName","children"]),d=cc(w=>i??w),h=e("space-compact",s),[g,m]=mie(h),f=Me(h,m,{[`${h}-rtl`]:t==="rtl",[`${h}-block`]:o,[`${h}-vertical`]:r==="vertical"},a,l),b=I.useContext(iM),C=Kc(u),v=I.useMemo(()=>C.map((w,S)=>{const F=w&&w.key||`${h}-item-${S}`;return I.createElement(mEe,{key:F,compactSize:d,compactDirection:r,isFirstItem:S===0&&(!b||(b==null?void 0:b.isFirstItem)),isLastItem:S===C.length-1&&(!b||(b==null?void 0:b.isLastItem))},w)}),[i,C,b]);return C.length===0?null:g(I.createElement("div",Object.assign({className:f},c),v))};var pEe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{const{getPrefixCls:e,direction:t}=I.useContext(Tn),{prefixCls:i,size:r,className:o}=n,s=pEe(n,["prefixCls","size","className"]),a=e("btn-group",i),[,,l]=Ga();let u="";switch(r){case"large":u="lg";break;case"small":u="sm";break}const c=Me(a,{[`${a}-${u}`]:u,[`${a}-rtl`]:t==="rtl"},o,l);return I.createElement(pie.Provider,{value:r},I.createElement("div",Object.assign({},s,{className:c})))},bie=/^[\u4e00-\u9fa5]{2}$/,l4=bie.test.bind(bie);function Cie(n){return n==="danger"?{danger:!0}:{type:n}}function vie(n){return typeof n=="string"}function u4(n){return n==="text"||n==="link"}function CEe(n,e){if(n==null)return;const t=e?" ":"";return typeof n!="string"&&typeof n!="number"&&vie(n.type)&&l4(n.props.children)?jl(n,{children:n.props.children.split("").join(t)}):vie(n)?l4(n)?Ye.createElement("span",null,n.split("").join(t)):Ye.createElement("span",null,n):Une(n)?Ye.createElement("span",null,n):n}function vEe(n,e){let t=!1;const i=[];return Ye.Children.forEach(n,r=>{const o=typeof r,s=o==="string"||o==="number";if(t&&s){const a=i.length-1,l=i[a];i[a]=`${l}${r}`}else i.push(r);t=s}),Ye.Children.map(i,r=>CEe(r,e))}const yie=I.forwardRef((n,e)=>{const{className:t,style:i,children:r,prefixCls:o}=n,s=Me(`${o}-icon`,t);return Ye.createElement("span",{ref:e,className:s,style:i},r)}),Iie=I.forwardRef((n,e)=>{let{prefixCls:t,className:i,style:r,iconClassName:o}=n;const s=Me(`${t}-loading-icon`,i);return Ye.createElement(yie,{prefixCls:t,className:s,style:r,ref:e},Ye.createElement(Ey,{className:o}))}),c4=()=>({width:0,opacity:0,transform:"scale(0)"}),d4=n=>({width:n.scrollWidth,opacity:1,transform:"scale(1)"}),yEe=n=>{const{prefixCls:e,loading:t,existIcon:i,className:r,style:o}=n,s=!!t;return i?Ye.createElement(Iie,{prefixCls:e,className:r,style:o}):Ye.createElement(Qc,{visible:s,motionName:`${e}-loading-icon-motion`,motionLeave:s,removeOnLeave:!0,onAppearStart:c4,onAppearActive:d4,onEnterStart:c4,onEnterActive:d4,onLeaveStart:d4,onLeaveActive:c4},(a,l)=>{let{className:u,style:c}=a;return Ye.createElement(Iie,{prefixCls:e,className:r,style:Object.assign(Object.assign({},o),c),ref:l,iconClassName:u})})},wie=(n,e)=>({[`> span, > ${n}`]:{"&:not(:last-child)":{[`&, & > ${n}`]:{"&:not(:disabled)":{borderInlineEndColor:e}}},"&:not(:first-child)":{[`&, & > ${n}`]:{"&:not(:disabled)":{borderInlineStartColor:e}}}}}),IEe=n=>{const{componentCls:e,fontSize:t,lineWidth:i,groupBorderColor:r,colorErrorHover:o}=n;return{[`${e}-group`]:[{position:"relative",display:"inline-flex",[`> span, > ${e}`]:{"&:not(:last-child)":{[`&, & > ${e}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},"&:not(:first-child)":{marginInlineStart:n.calc(i).mul(-1).equal(),[`&, & > ${e}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}},[e]:{position:"relative",zIndex:1,"&:hover,\n &:focus,\n &:active":{zIndex:2},"&[disabled]":{zIndex:0}},[`${e}-icon-only`]:{fontSize:t}},wie(`${e}-primary`,r),wie(`${e}-danger`,o)]}},Sie=n=>{const{paddingInline:e,onlyIconSize:t,paddingBlock:i}=n;return Bi(n,{buttonPaddingHorizontal:e,buttonPaddingVertical:i,buttonIconOnlyFontSize:t})},xie=n=>{var e,t,i,r,o,s;const a=(e=n.contentFontSize)!==null&&e!==void 0?e:n.fontSize,l=(t=n.contentFontSizeSM)!==null&&t!==void 0?t:n.fontSize,u=(i=n.contentFontSizeLG)!==null&&i!==void 0?i:n.fontSizeLG,c=(r=n.contentLineHeight)!==null&&r!==void 0?r:Wk(a),d=(o=n.contentLineHeightSM)!==null&&o!==void 0?o:Wk(l),h=(s=n.contentLineHeightLG)!==null&&s!==void 0?s:Wk(u);return{fontWeight:400,defaultShadow:`0 ${n.controlOutlineWidth}px 0 ${n.controlTmpOutline}`,primaryShadow:`0 ${n.controlOutlineWidth}px 0 ${n.controlOutline}`,dangerShadow:`0 ${n.controlOutlineWidth}px 0 ${n.colorErrorOutline}`,primaryColor:n.colorTextLightSolid,dangerColor:n.colorTextLightSolid,borderColorDisabled:n.colorBorder,defaultGhostColor:n.colorBgContainer,ghostBg:"transparent",defaultGhostBorderColor:n.colorBgContainer,paddingInline:n.paddingContentHorizontal-n.lineWidth,paddingInlineLG:n.paddingContentHorizontal-n.lineWidth,paddingInlineSM:8-n.lineWidth,onlyIconSize:n.fontSizeLG,onlyIconSizeSM:n.fontSizeLG-2,onlyIconSizeLG:n.fontSizeLG+2,groupBorderColor:n.colorPrimaryHover,linkHoverBg:"transparent",textHoverBg:n.colorBgTextHover,defaultColor:n.colorText,defaultBg:n.colorBgContainer,defaultBorderColor:n.colorBorder,defaultBorderColorDisabled:n.colorBorder,defaultHoverBg:n.colorBgContainer,defaultHoverColor:n.colorPrimaryHover,defaultHoverBorderColor:n.colorPrimaryHover,defaultActiveBg:n.colorBgContainer,defaultActiveColor:n.colorPrimaryActive,defaultActiveBorderColor:n.colorPrimaryActive,contentFontSize:a,contentFontSizeSM:l,contentFontSizeLG:u,contentLineHeight:c,contentLineHeightSM:d,contentLineHeightLG:h,paddingBlock:Math.max((n.controlHeight-a*c)/2-n.lineWidth,0),paddingBlockSM:Math.max((n.controlHeightSM-l*d)/2-n.lineWidth,0),paddingBlockLG:Math.max((n.controlHeightLG-u*h)/2-n.lineWidth,0)}},wEe=n=>{const{componentCls:e,iconCls:t,fontWeight:i}=n;return{[e]:{outline:"none",position:"relative",display:"inline-block",fontWeight:i,whiteSpace:"nowrap",textAlign:"center",backgroundImage:"none",background:"transparent",border:`${Te(n.lineWidth)} ${n.lineType} transparent`,cursor:"pointer",transition:`all ${n.motionDurationMid} ${n.motionEaseInOut}`,userSelect:"none",touchAction:"manipulation",color:n.colorText,"&:disabled > *":{pointerEvents:"none"},"> span":{display:"inline-block"},[`${e}-icon`]:{lineHeight:0},[`> ${t} + span, > span + ${t}`]:{marginInlineStart:n.marginXS},[`&:not(${e}-icon-only) > ${e}-icon`]:{[`&${e}-loading-icon, &:not(:last-child)`]:{marginInlineEnd:n.marginXS}},"> a":{color:"currentColor"},"&:not(:disabled)":Object.assign({},T1(n)),[`&${e}-two-chinese-chars::first-letter`]:{letterSpacing:"0.34em"},[`&${e}-two-chinese-chars > *:not(${t})`]:{marginInlineEnd:"-0.34em",letterSpacing:"0.34em"},[`&-icon-only${e}-compact-item`]:{flex:"none"}}}},Km=(n,e,t)=>({[`&:not(:disabled):not(${n}-disabled)`]:{"&:hover":e,"&:active":t}}),SEe=n=>({minWidth:n.controlHeight,paddingInlineStart:0,paddingInlineEnd:0,borderRadius:"50%"}),xEe=n=>({borderRadius:n.controlHeight,paddingInlineStart:n.calc(n.controlHeight).div(2).equal(),paddingInlineEnd:n.calc(n.controlHeight).div(2).equal()}),LEe=n=>({cursor:"not-allowed",borderColor:n.borderColorDisabled,color:n.colorTextDisabled,background:n.colorBgContainerDisabled,boxShadow:"none"}),_x=(n,e,t,i,r,o,s,a)=>({[`&${n}-background-ghost`]:Object.assign(Object.assign({color:t||void 0,background:e,borderColor:i||void 0,boxShadow:"none"},Km(n,Object.assign({background:e},s),Object.assign({background:e},a))),{"&:disabled":{cursor:"not-allowed",color:r||void 0,borderColor:o||void 0}})}),h4=n=>({[`&:disabled, &${n.componentCls}-disabled`]:Object.assign({},LEe(n))}),Lie=n=>Object.assign({},h4(n)),rM=n=>({[`&:disabled, &${n.componentCls}-disabled`]:{cursor:"not-allowed",color:n.colorTextDisabled}}),Fie=n=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Lie(n)),{background:n.defaultBg,borderColor:n.defaultBorderColor,color:n.defaultColor,boxShadow:n.defaultShadow}),Km(n.componentCls,{color:n.defaultHoverColor,borderColor:n.defaultHoverBorderColor,background:n.defaultHoverBg},{color:n.defaultActiveColor,borderColor:n.defaultActiveBorderColor,background:n.defaultActiveBg})),_x(n.componentCls,n.ghostBg,n.defaultGhostColor,n.defaultGhostBorderColor,n.colorTextDisabled,n.colorBorder)),{[`&${n.componentCls}-dangerous`]:Object.assign(Object.assign(Object.assign({color:n.colorError,borderColor:n.colorError},Km(n.componentCls,{color:n.colorErrorHover,borderColor:n.colorErrorBorderHover},{color:n.colorErrorActive,borderColor:n.colorErrorActive})),_x(n.componentCls,n.ghostBg,n.colorError,n.colorError,n.colorTextDisabled,n.colorBorder)),h4(n))}),FEe=n=>Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},Lie(n)),{color:n.primaryColor,background:n.colorPrimary,boxShadow:n.primaryShadow}),Km(n.componentCls,{color:n.colorTextLightSolid,background:n.colorPrimaryHover},{color:n.colorTextLightSolid,background:n.colorPrimaryActive})),_x(n.componentCls,n.ghostBg,n.colorPrimary,n.colorPrimary,n.colorTextDisabled,n.colorBorder,{color:n.colorPrimaryHover,borderColor:n.colorPrimaryHover},{color:n.colorPrimaryActive,borderColor:n.colorPrimaryActive})),{[`&${n.componentCls}-dangerous`]:Object.assign(Object.assign(Object.assign({background:n.colorError,boxShadow:n.dangerShadow,color:n.dangerColor},Km(n.componentCls,{background:n.colorErrorHover},{background:n.colorErrorActive})),_x(n.componentCls,n.ghostBg,n.colorError,n.colorError,n.colorTextDisabled,n.colorBorder,{color:n.colorErrorHover,borderColor:n.colorErrorHover},{color:n.colorErrorActive,borderColor:n.colorErrorActive})),h4(n))}),_Ee=n=>Object.assign(Object.assign({},Fie(n)),{borderStyle:"dashed"}),DEe=n=>Object.assign(Object.assign(Object.assign({color:n.colorLink},Km(n.componentCls,{color:n.colorLinkHover,background:n.linkHoverBg},{color:n.colorLinkActive})),rM(n)),{[`&${n.componentCls}-dangerous`]:Object.assign(Object.assign({color:n.colorError},Km(n.componentCls,{color:n.colorErrorHover},{color:n.colorErrorActive})),rM(n))}),AEe=n=>Object.assign(Object.assign(Object.assign({},Km(n.componentCls,{color:n.colorText,background:n.textHoverBg},{color:n.colorText,background:n.colorBgTextActive})),rM(n)),{[`&${n.componentCls}-dangerous`]:Object.assign(Object.assign({color:n.colorError},rM(n)),Km(n.componentCls,{color:n.colorErrorHover,background:n.colorErrorBg},{color:n.colorErrorHover,background:n.colorErrorBg}))}),NEe=n=>{const{componentCls:e}=n;return{[`${e}-default`]:Fie(n),[`${e}-primary`]:FEe(n),[`${e}-dashed`]:_Ee(n),[`${e}-link`]:DEe(n),[`${e}-text`]:AEe(n),[`${e}-ghost`]:_x(n.componentCls,n.ghostBg,n.colorBgContainer,n.colorBgContainer,n.colorTextDisabled,n.colorBorder)}},g4=function(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const{componentCls:t,controlHeight:i,fontSize:r,lineHeight:o,borderRadius:s,buttonPaddingHorizontal:a,iconCls:l,buttonPaddingVertical:u}=n,c=`${t}-icon-only`;return[{[`${e}`]:{fontSize:r,lineHeight:o,height:i,padding:`${Te(u)} ${Te(a)}`,borderRadius:s,[`&${c}`]:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:i,paddingInlineStart:0,paddingInlineEnd:0,[`&${t}-round`]:{width:"auto"},[l]:{fontSize:n.buttonIconOnlyFontSize}},[`&${t}-loading`]:{opacity:n.opacityLoading,cursor:"default"},[`${t}-loading-icon`]:{transition:`width ${n.motionDurationSlow} ${n.motionEaseInOut}, opacity ${n.motionDurationSlow} ${n.motionEaseInOut}`}}},{[`${t}${t}-circle${e}`]:SEe(n)},{[`${t}${t}-round${e}`]:xEe(n)}]},kEe=n=>{const e=Bi(n,{fontSize:n.contentFontSize,lineHeight:n.contentLineHeight});return g4(e,n.componentCls)},MEe=n=>{const e=Bi(n,{controlHeight:n.controlHeightSM,fontSize:n.contentFontSizeSM,lineHeight:n.contentLineHeightSM,padding:n.paddingXS,buttonPaddingHorizontal:n.paddingInlineSM,buttonPaddingVertical:n.paddingBlockSM,borderRadius:n.borderRadiusSM,buttonIconOnlyFontSize:n.onlyIconSizeSM});return g4(e,`${n.componentCls}-sm`)},ZEe=n=>{const e=Bi(n,{controlHeight:n.controlHeightLG,fontSize:n.contentFontSizeLG,lineHeight:n.contentLineHeightLG,buttonPaddingHorizontal:n.paddingInlineLG,buttonPaddingVertical:n.paddingBlockLG,borderRadius:n.borderRadiusLG,buttonIconOnlyFontSize:n.onlyIconSizeLG});return g4(e,`${n.componentCls}-lg`)},TEe=n=>{const{componentCls:e}=n;return{[e]:{[`&${e}-block`]:{width:"100%"}}}},EEe=Oo("Button",n=>{const e=Sie(n);return[wEe(e),kEe(e),MEe(e),ZEe(e),TEe(e),NEe(e),IEe(e)]},xie,{unitless:{fontWeight:!0,contentLineHeight:!0,contentLineHeightSM:!0,contentLineHeightLG:!0}});function WEe(n,e,t){const{focusElCls:i,focus:r,borderElCls:o}=t,s=o?"> *":"",a=["hover",r?"focus":null,"active"].filter(Boolean).map(l=>`&:${l} ${s}`).join(",");return{[`&-item:not(${e}-last-item)`]:{marginInlineEnd:n.calc(n.lineWidth).mul(-1).equal()},"&-item":Object.assign(Object.assign({[a]:{zIndex:2}},i?{[`&${i}`]:{zIndex:2}}:{}),{[`&[disabled] ${s}`]:{zIndex:0}})}}function REe(n,e,t){const{borderElCls:i}=t,r=i?`> ${i}`:"";return{[`&-item:not(${e}-first-item):not(${e}-last-item) ${r}`]:{borderRadius:0},[`&-item:not(${e}-last-item)${e}-first-item`]:{[`& ${r}, &${n}-sm ${r}, &${n}-lg ${r}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&-item:not(${e}-first-item)${e}-last-item`]:{[`& ${r}, &${n}-sm ${r}, &${n}-lg ${r}`]:{borderStartStartRadius:0,borderEndStartRadius:0}}}}function Dx(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{focus:!0};const{componentCls:t}=n,i=`${t}-compact`;return{[i]:Object.assign(Object.assign({},WEe(n,i,e)),REe(t,i,e))}}function GEe(n,e){return{[`&-item:not(${e}-last-item)`]:{marginBottom:n.calc(n.lineWidth).mul(-1).equal()},"&-item":{"&:hover,&:focus,&:active":{zIndex:2},"&[disabled]":{zIndex:0}}}}function VEe(n,e){return{[`&-item:not(${e}-first-item):not(${e}-last-item)`]:{borderRadius:0},[`&-item${e}-first-item:not(${e}-last-item)`]:{[`&, &${n}-sm, &${n}-lg`]:{borderEndEndRadius:0,borderEndStartRadius:0}},[`&-item${e}-last-item:not(${e}-first-item)`]:{[`&, &${n}-sm, &${n}-lg`]:{borderStartStartRadius:0,borderStartEndRadius:0}}}}function XEe(n){const e=`${n.componentCls}-compact-vertical`;return{[e]:Object.assign(Object.assign({},GEe(n,e)),VEe(n.componentCls,e))}}const PEe=n=>{const{componentCls:e,calc:t}=n;return{[e]:{[`&-compact-item${e}-primary`]:{[`&:not([disabled]) + ${e}-compact-item${e}-primary:not([disabled])`]:{position:"relative","&:before":{position:"absolute",top:t(n.lineWidth).mul(-1).equal(),insetInlineStart:t(n.lineWidth).mul(-1).equal(),display:"inline-block",width:n.lineWidth,height:`calc(100% + ${Te(n.lineWidth)} * 2)`,backgroundColor:n.colorPrimaryHover,content:'""'}}},"&-compact-vertical-item":{[`&${e}-primary`]:{[`&:not([disabled]) + ${e}-compact-vertical-item${e}-primary:not([disabled])`]:{position:"relative","&:before":{position:"absolute",top:t(n.lineWidth).mul(-1).equal(),insetInlineStart:t(n.lineWidth).mul(-1).equal(),display:"inline-block",width:`calc(100% + ${Te(n.lineWidth)} * 2)`,height:n.lineWidth,backgroundColor:n.colorPrimaryHover,content:'""'}}}}}}},OEe=Vk(["Button","compact"],n=>{const e=Sie(n);return[Dx(e),XEe(e),PEe(e)]},xie);var BEe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{var t,i;const{loading:r=!1,prefixCls:o,type:s,danger:a,shape:l="default",size:u,styles:c,disabled:d,className:h,rootClassName:g,children:m,icon:f,ghost:b=!1,block:C=!1,htmlType:v="button",classNames:w,style:S={}}=n,F=BEe(n,["loading","prefixCls","type","danger","shape","size","styles","disabled","className","rootClassName","children","icon","ghost","block","htmlType","classNames","style"]),L=s||"default",{getPrefixCls:D,autoInsertSpaceInButton:A,direction:M,button:W}=I.useContext(Tn),Z=D("btn",o),[T,E,V]=EEe(Z),z=I.useContext(Kd),O=d??z,P=I.useContext(pie),B=I.useMemo(()=>zEe(r),[r]),[Y,k]=I.useState(B.loading),[X,U]=I.useState(!1),ee=Su(e,I.createRef()),oe=I.Children.count(m)===1&&!f&&!u4(L);I.useEffect(()=>{let ge=null;B.delay>0?ge=setTimeout(()=>{ge=null,k(!0)},B.delay):k(B.loading);function j(){ge&&(clearTimeout(ge),ge=null)}return j},[B]),I.useEffect(()=>{if(!ee||!ee.current||A===!1)return;const ge=ee.current.textContent;oe&&l4(ge)?X||U(!0):X&&U(!1)},[ee]);const se=ge=>{const{onClick:j}=n;if(Y||O){ge.preventDefault();return}j==null||j(ge)},ue=A!==!1,{compactSize:ce,compactItemClassnames:ye}=Bp(Z,M),fe={large:"lg",small:"sm",middle:void 0},le=cc(ge=>{var j,Q;return(Q=(j=u??ce)!==null&&j!==void 0?j:P)!==null&&Q!==void 0?Q:ge}),Ze=le&&fe[le]||"",ke=Y?"loading":f,Ne=ra(F,["navigate"]),ze=Me(Z,E,V,{[`${Z}-${l}`]:l!=="default"&&l,[`${Z}-${L}`]:L,[`${Z}-${Ze}`]:Ze,[`${Z}-icon-only`]:!m&&m!==0&&!!ke,[`${Z}-background-ghost`]:b&&!u4(L),[`${Z}-loading`]:Y,[`${Z}-two-chinese-chars`]:X&&ue&&!Y,[`${Z}-block`]:C,[`${Z}-dangerous`]:!!a,[`${Z}-rtl`]:M==="rtl"},ye,h,g,W==null?void 0:W.className),Ke=Object.assign(Object.assign({},W==null?void 0:W.style),S),ut=Me(w==null?void 0:w.icon,(t=W==null?void 0:W.classNames)===null||t===void 0?void 0:t.icon),Ct=Object.assign(Object.assign({},(c==null?void 0:c.icon)||{}),((i=W==null?void 0:W.styles)===null||i===void 0?void 0:i.icon)||{}),ot=f&&!Y?Ye.createElement(yie,{prefixCls:Z,className:ut,style:Ct},f):Ye.createElement(yEe,{existIcon:!!f,prefixCls:Z,loading:!!Y}),he=m||m===0?vEe(m,oe&&ue):null;if(Ne.href!==void 0)return T(Ye.createElement("a",Object.assign({},Ne,{className:Me(ze,{[`${Z}-disabled`]:O}),href:O?void 0:Ne.href,style:Ke,onClick:se,ref:ee,tabIndex:O?-1:0}),ot,he));let de=Ye.createElement("button",Object.assign({},F,{type:v,className:ze,style:Ke,onClick:se,disabled:O,ref:ee}),ot,he,!!ye&&Ye.createElement(OEe,{key:"compact",prefixCls:Z}));return u4(L)||(de=Ye.createElement(gie,{component:"Button",disabled:!!Y},de)),T(de)});m4.Group=bEe,m4.__ANT_BUTTON=!0;const so=m4;function _ie(n){return!!(n&&n.then)}const Die=n=>{const{type:e,children:t,prefixCls:i,buttonProps:r,close:o,autoFocus:s,emitEvent:a,isSilent:l,quitOnNullishReturnValue:u,actionFn:c}=n,d=I.useRef(!1),h=I.useRef(null),[g,m]=Gp(!1),f=function(){o==null||o.apply(void 0,arguments)};I.useEffect(()=>{let v=null;return s&&(v=setTimeout(()=>{var w;(w=h.current)===null||w===void 0||w.focus()})),()=>{v&&clearTimeout(v)}},[]);const b=v=>{_ie(v)&&(m(!0),v.then(function(){m(!1,!0),f.apply(void 0,arguments),d.current=!1},w=>{if(m(!1,!0),d.current=!1,!(l!=null&&l()))return Promise.reject(w)}))},C=v=>{if(d.current)return;if(d.current=!0,!c){f();return}let w;if(a){if(w=c(v),u&&!_ie(w)){d.current=!1,f(v);return}}else if(c.length)w=c(o),d.current=!1;else if(w=c(),!w){f();return}b(w)};return I.createElement(so,Object.assign({},Cie(e),{onClick:C,loading:g,prefixCls:i},r,{ref:h}),t)},Ax=Ye.createContext({}),{Provider:Aie}=Ax,Nie=()=>{const{autoFocusButton:n,cancelButtonProps:e,cancelTextLocale:t,isSilent:i,mergedOkCancel:r,rootPrefixCls:o,close:s,onCancel:a,onConfirm:l}=I.useContext(Ax);return r?Ye.createElement(Die,{isSilent:i,actionFn:a,close:function(){s==null||s.apply(void 0,arguments),l==null||l(!1)},autoFocus:n==="cancel",buttonProps:e,prefixCls:`${o}-btn`},t):null},kie=()=>{const{autoFocusButton:n,close:e,isSilent:t,okButtonProps:i,rootPrefixCls:r,okTextLocale:o,okType:s,onConfirm:a,onOk:l}=I.useContext(Ax);return Ye.createElement(Die,{isSilent:t,type:s||"primary",actionFn:l,close:function(){e==null||e.apply(void 0,arguments),a==null||a(!0)},autoFocus:n==="ok",buttonProps:i,prefixCls:`${r}-btn`},o)};var Mie=I.createContext(null),Zie=[];function YEe(n,e){var t=I.useState(function(){if(!bl())return null;var m=document.createElement("div");return m}),i=we(t,1),r=i[0],o=I.useRef(!1),s=I.useContext(Mie),a=I.useState(Zie),l=we(a,2),u=l[0],c=l[1],d=s||(o.current?void 0:function(m){c(function(f){var b=[m].concat(_t(f));return b})});function h(){r.parentElement||document.body.appendChild(r),o.current=!0}function g(){var m;(m=r.parentElement)===null||m===void 0||m.removeChild(r),o.current=!1}return lr(function(){return n?s?s(h):h():g(),g},[n]),lr(function(){u.length&&(u.forEach(function(m){return m()}),c(Zie))},[u]),[r,d]}function HEe(n){var e="rc-scrollbar-measure-".concat(Math.random().toString(36).substring(7)),t=document.createElement("div");t.id=e;var i=t.style;i.position="absolute",i.left="0",i.top="0",i.width="100px",i.height="100px",i.overflow="scroll";var r,o;if(n){var s=getComputedStyle(n);i.scrollbarColor=s.scrollbarColor,i.scrollbarWidth=s.scrollbarWidth;var a=getComputedStyle(n,"::-webkit-scrollbar"),l=parseInt(a.width,10),u=parseInt(a.height,10);try{var c=l?"width: ".concat(a.width,";"):"",d=u?"height: ".concat(a.height,";"):"";Bm(` +#`.concat(e,`::-webkit-scrollbar { +`).concat(c,` +`).concat(d,` +}`),e)}catch{r=l,o=u}}document.body.appendChild(t);var h=n&&r&&!isNaN(r)?r:t.offsetWidth-t.clientWidth,g=n&&o&&!isNaN(o)?o:t.offsetHeight-t.clientHeight;return document.body.removeChild(t),hx(e),{width:h,height:g}}function UEe(n){return typeof document>"u"||!n||!(n instanceof Element)?{width:0,height:0}:HEe(n)}function JEe(){return document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth}var KEe="rc-util-locker-".concat(Date.now()),Tie=0;function jEe(n){var e=!!n,t=I.useState(function(){return Tie+=1,"".concat(KEe,"_").concat(Tie)}),i=we(t,1),r=i[0];lr(function(){if(e){var o=UEe(document.body).width,s=JEe();Bm(` +html body { + overflow-y: hidden; + `.concat(s?"width: calc(100% - ".concat(o,"px);"):"",` +}`),r)}else hx(r);return function(){hx(r)}},[e,r])}var Eie=!1;function QEe(n){return typeof n=="boolean"&&(Eie=n),Eie}var Wie=function(e){return e===!1?!1:!bl()||!e?null:typeof e=="string"?document.querySelector(e):typeof e=="function"?e():e},f4=I.forwardRef(function(n,e){var t=n.open,i=n.autoLock,r=n.getContainer;n.debug;var o=n.autoDestroy,s=o===void 0?!0:o,a=n.children,l=I.useState(t),u=we(l,2),c=u[0],d=u[1],h=c||t;I.useEffect(function(){(s||t)&&d(t)},[t,s]);var g=I.useState(function(){return Wie(r)}),m=we(g,2),f=m[0],b=m[1];I.useEffect(function(){var Z=Wie(r);b(Z??null)});var C=YEe(h&&!f),v=we(C,2),w=v[0],S=v[1],F=f??w;jEe(i&&t&&bl()&&(F===w||F===document.body));var L=null;if(a&&Pm(a)&&e){var D=a;L=D.ref}var A=Zp(L,e);if(!h||!bl()||f===void 0)return null;var M=F===!1||QEe(),W=a;return e&&(W=I.cloneElement(a,{ref:A})),I.createElement(Mie.Provider,{value:S},M?W:zd.createPortal(W,F))}),Rie=I.createContext({});function $Ee(){var n=Se({},F1);return n.useId}var Gie=0,Vie=$Ee();const Xie=Vie?function(e){var t=Vie();return e||t}:function(e){var t=I.useState("ssr-id"),i=we(t,2),r=i[0],o=i[1];return I.useEffect(function(){var s=Gie;Gie+=1,o("rc_unique_".concat(s))},[]),e||r};function Pie(n,e,t){var i=e;return!i&&t&&(i="".concat(n,"-").concat(t)),i}function Oie(n,e){var t=n["page".concat(e?"Y":"X","Offset")],i="scroll".concat(e?"Top":"Left");if(typeof t!="number"){var r=n.document;t=r.documentElement[i],typeof t!="number"&&(t=r.body[i])}return t}function qEe(n){var e=n.getBoundingClientRect(),t={left:e.left,top:e.top},i=n.ownerDocument,r=i.defaultView||i.parentWindow;return t.left+=Oie(r),t.top+=Oie(r,!0),t}const eWe=I.memo(function(n){var e=n.children;return e},function(n,e){var t=e.shouldUpdate;return!t});var Bie={width:0,height:0,overflow:"hidden",outline:"none"},tWe={outline:"none"},zie=Ye.forwardRef(function(n,e){var t=n.prefixCls,i=n.className,r=n.style,o=n.title,s=n.ariaId,a=n.footer,l=n.closable,u=n.closeIcon,c=n.onClose,d=n.children,h=n.bodyStyle,g=n.bodyProps,m=n.modalRender,f=n.onMouseDown,b=n.onMouseUp,C=n.holderRef,v=n.visible,w=n.forceRender,S=n.width,F=n.height,L=n.classNames,D=n.styles,A=Ye.useContext(Rie),M=A.panel,W=Zp(C,M),Z=I.useRef(),T=I.useRef(),E=I.useRef();Ye.useImperativeHandle(e,function(){return{focus:function(){var U;(U=E.current)===null||U===void 0||U.focus()},changeActive:function(U){var R=document,ee=R.activeElement;U&&ee===T.current?Z.current.focus():!U&&ee===Z.current&&T.current.focus()}}});var V={};S!==void 0&&(V.width=S),F!==void 0&&(V.height=F);var z;a&&(z=Ye.createElement("div",{className:Me("".concat(t,"-footer"),L==null?void 0:L.footer),style:Se({},D==null?void 0:D.footer)},a));var O;o&&(O=Ye.createElement("div",{className:Me("".concat(t,"-header"),L==null?void 0:L.header),style:Se({},D==null?void 0:D.header)},Ye.createElement("div",{className:"".concat(t,"-title"),id:s},o)));var P=I.useMemo(function(){return Vn(l)==="object"&&l!==null?l:l?{closeIcon:u??Ye.createElement("span",{className:"".concat(t,"-close-x")})}:{}},[l,u]),B=xu(P,!0),Y;l&&(Y=Ye.createElement("button",pt({type:"button",onClick:c,"aria-label":"Close"},B,{className:"".concat(t,"-close")}),P.closeIcon));var k=Ye.createElement("div",{className:Me("".concat(t,"-content"),L==null?void 0:L.content),style:D==null?void 0:D.content},Y,O,Ye.createElement("div",pt({className:Me("".concat(t,"-body"),L==null?void 0:L.body),style:Se(Se({},h),D==null?void 0:D.body)},g),d),z);return Ye.createElement("div",{key:"dialog-element",role:"dialog","aria-labelledby":o?s:null,"aria-modal":"true",ref:W,style:Se(Se({},r),V),className:Me(t,i),onMouseDown:f,onMouseUp:b},Ye.createElement("div",{tabIndex:0,ref:Z,style:Bie,"aria-hidden":"true"}),Ye.createElement("div",{ref:E,tabIndex:-1,style:tWe},Ye.createElement(eWe,{shouldUpdate:v||w},m?m(k):k)),Ye.createElement("div",{tabIndex:0,ref:T,style:Bie,"aria-hidden":"true"}))}),Yie=I.forwardRef(function(n,e){var t=n.prefixCls,i=n.title,r=n.style,o=n.className,s=n.visible,a=n.forceRender,l=n.destroyOnClose,u=n.motionName,c=n.ariaId,d=n.onVisibleChanged,h=n.mousePosition,g=I.useRef(),m=I.useState(),f=we(m,2),b=f[0],C=f[1],v={};b&&(v.transformOrigin=b);function w(){var S=qEe(g.current);C(h?"".concat(h.x-S.left,"px ").concat(h.y-S.top,"px"):"")}return I.createElement(Qc,{visible:s,onVisibleChanged:d,onAppearPrepare:w,onEnterPrepare:w,forceRender:a,motionName:u,removeOnLeave:l,ref:g},function(S,F){var L=S.className,D=S.style;return I.createElement(zie,pt({},n,{ref:e,title:i,ariaId:c,prefixCls:t,holderRef:F,style:Se(Se(Se({},D),r),v),className:Me(o,L)}))})});Yie.displayName="Content";function nWe(n){var e=n.prefixCls,t=n.style,i=n.visible,r=n.maskProps,o=n.motionName,s=n.className;return I.createElement(Qc,{key:"mask",visible:i,motionName:o,leavedClassName:"".concat(e,"-mask-hidden")},function(a,l){var u=a.className,c=a.style;return I.createElement("div",pt({ref:l,style:Se(Se({},c),t),className:Me("".concat(e,"-mask"),u,s)},r))})}function iWe(n){var e=n.prefixCls,t=e===void 0?"rc-dialog":e,i=n.zIndex,r=n.visible,o=r===void 0?!1:r,s=n.keyboard,a=s===void 0?!0:s,l=n.focusTriggerAfterClose,u=l===void 0?!0:l,c=n.wrapStyle,d=n.wrapClassName,h=n.wrapProps,g=n.onClose,m=n.afterOpenChange,f=n.afterClose,b=n.transitionName,C=n.animation,v=n.closable,w=v===void 0?!0:v,S=n.mask,F=S===void 0?!0:S,L=n.maskTransitionName,D=n.maskAnimation,A=n.maskClosable,M=A===void 0?!0:A,W=n.maskStyle,Z=n.maskProps,T=n.rootClassName,E=n.classNames,V=n.styles,z=I.useRef(),O=I.useRef(),P=I.useRef(),B=I.useState(o),Y=we(B,2),k=Y[0],X=Y[1],U=Xie();function R(){rX(O.current,document.activeElement)||(z.current=document.activeElement)}function ee(){if(!rX(O.current,document.activeElement)){var ke;(ke=P.current)===null||ke===void 0||ke.focus()}}function oe(ke){if(ke)ee();else{if(X(!1),F&&z.current&&u){try{z.current.focus({preventScroll:!0})}catch{}z.current=null}k&&(f==null||f())}m==null||m(ke)}function se(ke){g==null||g(ke)}var ue=I.useRef(!1),ce=I.useRef(),ye=function(){clearTimeout(ce.current),ue.current=!0},fe=function(){ce.current=setTimeout(function(){ue.current=!1})},le=null;M&&(le=function(Ne){ue.current?ue.current=!1:O.current===Ne.target&&se(Ne)});function Ze(ke){if(a&&ke.keyCode===At.ESC){ke.stopPropagation(),se(ke);return}o&&ke.keyCode===At.TAB&&P.current.changeActive(!ke.shiftKey)}return I.useEffect(function(){o&&(X(!0),R())},[o]),I.useEffect(function(){return function(){clearTimeout(ce.current)}},[]),I.createElement("div",pt({className:Me("".concat(t,"-root"),T)},xu(n,{data:!0})),I.createElement(nWe,{prefixCls:t,visible:F&&o,motionName:Pie(t,L,D),style:Se(Se({zIndex:i},W),V==null?void 0:V.mask),maskProps:Z,className:E==null?void 0:E.mask}),I.createElement("div",pt({tabIndex:-1,onKeyDown:Ze,className:Me("".concat(t,"-wrap"),d,E==null?void 0:E.wrapper),ref:O,onClick:le,style:Se(Se(Se({zIndex:i},c),V==null?void 0:V.wrapper),{},{display:k?null:"none"})},h),I.createElement(Yie,pt({},n,{onMouseDown:ye,onMouseUp:fe,ref:P,closable:w,ariaId:U,prefixCls:t,visible:o&&k,onClose:se,onVisibleChanged:oe,motionName:Pie(t,b,C)}))))}var Hie=function(e){var t=e.visible,i=e.getContainer,r=e.forceRender,o=e.destroyOnClose,s=o===void 0?!1:o,a=e.afterClose,l=e.panelRef,u=I.useState(t),c=we(u,2),d=c[0],h=c[1],g=I.useMemo(function(){return{panel:l}},[l]);return I.useEffect(function(){t&&h(!0)},[t]),!r&&s&&!d?null:I.createElement(Rie.Provider,{value:g},I.createElement(f4,{open:t||r||d,autoDestroy:!1,getContainer:i,autoLock:t||d},I.createElement(iWe,pt({},e,{destroyOnClose:s,afterClose:function(){a==null||a(),h(!1)}}))))};Hie.displayName="Dialog";function Uie(n){if(n)return{closable:n.closable,closeIcon:n.closeIcon}}function Jie(n){const{closable:e,closeIcon:t}=n||{};return Ye.useMemo(()=>{if(!e&&(e===!1||t===!1||t===null))return!1;if(e===void 0&&t===void 0)return null;let i={closeIcon:typeof t!="boolean"&&t!==null?t:void 0};return e&&typeof e=="object"&&(i=Object.assign(Object.assign({},i),e)),i},[e,t])}function Kie(){const n={};for(var e=arguments.length,t=new Array(e),i=0;i{r&&Object.keys(r).forEach(o=>{r[o]!==void 0&&(n[o]=r[o])})}),n}const rWe={};function oWe(n,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:rWe;const i=Jie(n),r=Jie(e),o=Ye.useMemo(()=>Object.assign({closeIcon:Ye.createElement(Xp,null)},t),[t]),s=Ye.useMemo(()=>i===!1?!1:i?Kie(o,r,i):r===!1?!1:r?Kie(o,r):o.closable?o:!1,[i,r,o]);return Ye.useMemo(()=>{if(s===!1)return[!1,null];const{closeIconRender:a}=o,{closeIcon:l}=s;let u=l;if(u!=null){a&&(u=a(l));const c=xu(s,!0);Object.keys(c).length&&(u=Ye.isValidElement(u)?Ye.cloneElement(u,c):Ye.createElement("span",Object.assign({},c),u))}return[!0,u]},[s,o])}const sWe=()=>bl()&&window.document.documentElement;var X1="RC_FORM_INTERNAL_HOOKS",Jr=function(){ia(!1,"Can not find FormContext. Please make sure you wrap Field under Form.")},P1=I.createContext({getFieldValue:Jr,getFieldsValue:Jr,getFieldError:Jr,getFieldWarning:Jr,getFieldsError:Jr,isFieldsTouched:Jr,isFieldTouched:Jr,isFieldValidating:Jr,isFieldsValidating:Jr,resetFields:Jr,setFields:Jr,setFieldValue:Jr,setFieldsValue:Jr,validateFields:Jr,submit:Jr,getInternalHooks:function(){return Jr(),{dispatch:Jr,initEntityValue:Jr,registerField:Jr,useSubscribe:Jr,setInitialValues:Jr,destroyForm:Jr,setCallbacks:Jr,registerWatch:Jr,getFields:Jr,setValidateMessages:Jr,setPreserve:Jr,getInitialValue:Jr}}}),Nx=I.createContext(null);function p4(n){return n==null?[]:Array.isArray(n)?n:[n]}function aWe(n){return n&&!!n._init}var jie={TERM_PROGRAM:"vscode",NODE:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NVM_CD_FLAGS:"-q",INIT_CWD:"/Users/alexander/my-code/github/openapi-ui",SHELL:"/bin/zsh",TERM:"xterm-256color",TMPDIR:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/",npm_config_metrics_registry:"https://registry.npmjs.org/",npm_config_global_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",TERM_PROGRAM_VERSION:"1.88.1",GVM_ROOT:"/Users/alexander/.gvm",MallocNanoZone:"0",ORIGINAL_XDG_CURRENT_DESKTOP:"undefined",ZDOTDIR:"/Users/alexander",COLOR:"1",npm_config_noproxy:"",ZSH:"/Users/alexander/.oh-my-zsh",PNPM_HOME:"/Users/alexander/Library/pnpm",npm_config_local_prefix:"/Users/alexander/my-code/github/openapi-ui",USER:"alexander",NVM_DIR:"/Users/alexander/.nvm",LD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",COMMAND_MODE:"unix2003",npm_config_globalconfig:"/Users/alexander/.nvm/versions/node/v16.10.0/etc/npmrc",SSH_AUTH_SOCK:"/private/tmp/com.apple.launchd.jaFD8W3kId/Listeners",__CF_USER_TEXT_ENCODING:"0x1F5:0x19:0x34",npm_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/bin/npm-cli.js",PAGER:"less",LSCOLORS:"Gxfxcxdxbxegedabagacad",PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.bin:/Users/alexander/my-code/github/node_modules/.bin:/Users/alexander/my-code/node_modules/.bin:/Users/alexander/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",npm_package_json:"/Users/alexander/my-code/github/openapi-ui/package.json",__CFBundleIdentifier:"com.microsoft.VSCode",USER_ZDOTDIR:"/Users/alexander",npm_config_auto_install_peers:"true",npm_config_init_module:"/Users/alexander/.npm-init.js",npm_config_userconfig:"/Users/alexander/.npmrc",PWD:"/Users/alexander/my-code/github/openapi-ui",GVM_VERSION:"1.0.22",npm_command:"run-script",EDITOR:"vi",npm_lifecycle_event:"build:package",LANG:"zh_CN.UTF-8",npm_package_name:"openapi-ui-dist",gvm_pkgset_name:"global",NODE_PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.pnpm/node_modules",XPC_FLAGS:"0x0",VSCODE_GIT_ASKPASS_EXTRA_ARGS:"",npm_package_engines_node:"^18.0.0 || >=20.0.0",npm_config_node_gyp:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",XPC_SERVICE_NAME:"0",npm_package_version:"2.0.1",VSCODE_INJECTION:"1",HOME:"/Users/alexander",SHLVL:"2",VSCODE_GIT_ASKPASS_MAIN:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js",GOROOT:"/Users/alexander/.gvm/gos/go1.21.6",DYLD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",gvm_go_name:"go1.21.6",LOGNAME:"alexander",LESS:"-R",VSCODE_PATH_PREFIX:"/Users/alexander/.gvm/gos/go1.20/bin:",npm_config_cache:"/Users/alexander/.npm",GVM_OVERLAY_PREFIX:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay",npm_lifecycle_script:"tsc && vite build --config vite.package.config.ts --mode package",LC_CTYPE:"zh_CN.UTF-8",VSCODE_GIT_IPC_HANDLE:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/vscode-git-79a18f10f2.sock",NVM_BIN:"/Users/alexander/.nvm/versions/node/v16.10.0/bin",PKG_CONFIG_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:",GOPATH:"/Users/alexander/mygo",npm_config_user_agent:"npm/7.24.0 node/v16.10.0 darwin x64 workspaces/false",GIT_ASKPASS:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh",VSCODE_GIT_ASKPASS_NODE:"/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin)",GVM_PATH_BACKUP:"/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",COLORTERM:"truecolor",npm_config_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",npm_node_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NODE_ENV:"production"};function O1(){return O1=Object.assign?Object.assign.bind():function(n){for(var e=1;e"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function oM(n,e,t){return uWe()?oM=Reflect.construct.bind():oM=function(r,o,s){var a=[null];a.push.apply(a,o);var l=Function.bind.apply(r,a),u=new l;return s&&kx(u,s.prototype),u},oM.apply(null,arguments)}function cWe(n){return Function.toString.call(n).indexOf("[native code]")!==-1}function C4(n){var e=typeof Map=="function"?new Map:void 0;return C4=function(i){if(i===null||!cWe(i))return i;if(typeof i!="function")throw new TypeError("Super expression must either be null or a function");if(typeof e<"u"){if(e.has(i))return e.get(i);e.set(i,r)}function r(){return oM(i,arguments,b4(this).constructor)}return r.prototype=Object.create(i.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),kx(r,i)},C4(n)}var dWe=/%[sdj%]/g,Qie=function(){};typeof process<"u"&&jie&&jie.NODE_ENV!=="production"&&typeof window<"u"&&typeof document<"u"&&(Qie=function(e,t){typeof console<"u"&&console.warn&&typeof ASYNC_VALIDATOR_NO_WARNING>"u"&&t.every(function(i){return typeof i=="string"})});function v4(n){if(!n||!n.length)return null;var e={};return n.forEach(function(t){var i=t.field;e[i]=e[i]||[],e[i].push(t)}),e}function dc(n){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i=o)return a;switch(a){case"%s":return String(t[r++]);case"%d":return Number(t[r++]);case"%j":try{return JSON.stringify(t[r++])}catch{return"[Circular]"}break;default:return a}});return s}return n}function hWe(n){return n==="string"||n==="url"||n==="hex"||n==="email"||n==="date"||n==="pattern"}function oa(n,e){return!!(n==null||e==="array"&&Array.isArray(n)&&!n.length||hWe(e)&&typeof n=="string"&&!n)}function gWe(n,e,t){var i=[],r=0,o=n.length;function s(a){i.push.apply(i,a||[]),r++,r===o&&t(i)}n.forEach(function(a){e(a,s)})}function $ie(n,e,t){var i=0,r=n.length;function o(s){if(s&&s.length){t(s);return}var a=i;i=i+1,a()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},Mx={integer:function(e){return Mx.number(e)&&parseInt(e,10)===e},float:function(e){return Mx.number(e)&&!Mx.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch{return!1}},date:function(e){return typeof e.getTime=="function"&&typeof e.getMonth=="function"&&typeof e.getYear=="function"&&!isNaN(e.getTime())},number:function(e){return isNaN(e)?!1:typeof e=="number"},object:function(e){return typeof e=="object"&&!Mx.array(e)},method:function(e){return typeof e=="function"},email:function(e){return typeof e=="string"&&e.length<=320&&!!e.match(ire.email)},url:function(e){return typeof e=="string"&&e.length<=2048&&!!e.match(vWe())},hex:function(e){return typeof e=="string"&&!!e.match(ire.hex)}},yWe=function(e,t,i,r,o){if(e.required&&t===void 0){nre(e,t,i,r,o);return}var s=["integer","float","array","regexp","object","method","email","number","date","url","hex"],a=e.type;s.indexOf(a)>-1?Mx[a](t)||r.push(dc(o.messages.types[a],e.fullField,e.type)):a&&typeof t!==e.type&&r.push(dc(o.messages.types[a],e.fullField,e.type))},IWe=function(e,t,i,r,o){var s=typeof e.len=="number",a=typeof e.min=="number",l=typeof e.max=="number",u=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=t,d=null,h=typeof t=="number",g=typeof t=="string",m=Array.isArray(t);if(h?d="number":g?d="string":m&&(d="array"),!d)return!1;m&&(c=t.length),g&&(c=t.replace(u,"_").length),s?c!==e.len&&r.push(dc(o.messages[d].len,e.fullField,e.len)):a&&!l&&ce.max?r.push(dc(o.messages[d].max,e.fullField,e.max)):a&&l&&(ce.max)&&r.push(dc(o.messages[d].range,e.fullField,e.min,e.max))},Wy="enum",wWe=function(e,t,i,r,o){e[Wy]=Array.isArray(e[Wy])?e[Wy]:[],e[Wy].indexOf(t)===-1&&r.push(dc(o.messages[Wy],e.fullField,e[Wy].join(", ")))},SWe=function(e,t,i,r,o){if(e.pattern){if(e.pattern instanceof RegExp)e.pattern.lastIndex=0,e.pattern.test(t)||r.push(dc(o.messages.pattern.mismatch,e.fullField,t,e.pattern));else if(typeof e.pattern=="string"){var s=new RegExp(e.pattern);s.test(t)||r.push(dc(o.messages.pattern.mismatch,e.fullField,t,e.pattern))}}},ji={required:nre,whitespace:CWe,type:yWe,range:IWe,enum:wWe,pattern:SWe},xWe=function(e,t,i,r,o){var s=[],a=e.required||!e.required&&r.hasOwnProperty(e.field);if(a){if(oa(t,"string")&&!e.required)return i();ji.required(e,t,r,s,o,"string"),oa(t,"string")||(ji.type(e,t,r,s,o),ji.range(e,t,r,s,o),ji.pattern(e,t,r,s,o),e.whitespace===!0&&ji.whitespace(e,t,r,s,o))}i(s)},LWe=function(e,t,i,r,o){var s=[],a=e.required||!e.required&&r.hasOwnProperty(e.field);if(a){if(oa(t)&&!e.required)return i();ji.required(e,t,r,s,o),t!==void 0&&ji.type(e,t,r,s,o)}i(s)},FWe=function(e,t,i,r,o){var s=[],a=e.required||!e.required&&r.hasOwnProperty(e.field);if(a){if(t===""&&(t=void 0),oa(t)&&!e.required)return i();ji.required(e,t,r,s,o),t!==void 0&&(ji.type(e,t,r,s,o),ji.range(e,t,r,s,o))}i(s)},_We=function(e,t,i,r,o){var s=[],a=e.required||!e.required&&r.hasOwnProperty(e.field);if(a){if(oa(t)&&!e.required)return i();ji.required(e,t,r,s,o),t!==void 0&&ji.type(e,t,r,s,o)}i(s)},DWe=function(e,t,i,r,o){var s=[],a=e.required||!e.required&&r.hasOwnProperty(e.field);if(a){if(oa(t)&&!e.required)return i();ji.required(e,t,r,s,o),oa(t)||ji.type(e,t,r,s,o)}i(s)},AWe=function(e,t,i,r,o){var s=[],a=e.required||!e.required&&r.hasOwnProperty(e.field);if(a){if(oa(t)&&!e.required)return i();ji.required(e,t,r,s,o),t!==void 0&&(ji.type(e,t,r,s,o),ji.range(e,t,r,s,o))}i(s)},NWe=function(e,t,i,r,o){var s=[],a=e.required||!e.required&&r.hasOwnProperty(e.field);if(a){if(oa(t)&&!e.required)return i();ji.required(e,t,r,s,o),t!==void 0&&(ji.type(e,t,r,s,o),ji.range(e,t,r,s,o))}i(s)},kWe=function(e,t,i,r,o){var s=[],a=e.required||!e.required&&r.hasOwnProperty(e.field);if(a){if(t==null&&!e.required)return i();ji.required(e,t,r,s,o,"array"),t!=null&&(ji.type(e,t,r,s,o),ji.range(e,t,r,s,o))}i(s)},MWe=function(e,t,i,r,o){var s=[],a=e.required||!e.required&&r.hasOwnProperty(e.field);if(a){if(oa(t)&&!e.required)return i();ji.required(e,t,r,s,o),t!==void 0&&ji.type(e,t,r,s,o)}i(s)},ZWe="enum",TWe=function(e,t,i,r,o){var s=[],a=e.required||!e.required&&r.hasOwnProperty(e.field);if(a){if(oa(t)&&!e.required)return i();ji.required(e,t,r,s,o),t!==void 0&&ji[ZWe](e,t,r,s,o)}i(s)},EWe=function(e,t,i,r,o){var s=[],a=e.required||!e.required&&r.hasOwnProperty(e.field);if(a){if(oa(t,"string")&&!e.required)return i();ji.required(e,t,r,s,o),oa(t,"string")||ji.pattern(e,t,r,s,o)}i(s)},WWe=function(e,t,i,r,o){var s=[],a=e.required||!e.required&&r.hasOwnProperty(e.field);if(a){if(oa(t,"date")&&!e.required)return i();if(ji.required(e,t,r,s,o),!oa(t,"date")){var l;t instanceof Date?l=t:l=new Date(t),ji.type(e,l,r,s,o),l&&ji.range(e,l.getTime(),r,s,o)}}i(s)},RWe=function(e,t,i,r,o){var s=[],a=Array.isArray(t)?"array":typeof t;ji.required(e,t,r,s,o,a),i(s)},y4=function(e,t,i,r,o){var s=e.type,a=[],l=e.required||!e.required&&r.hasOwnProperty(e.field);if(l){if(oa(t,s)&&!e.required)return i();ji.required(e,t,r,a,o,s),oa(t,s)||ji.type(e,t,r,a,o)}i(a)},GWe=function(e,t,i,r,o){var s=[],a=e.required||!e.required&&r.hasOwnProperty(e.field);if(a){if(oa(t)&&!e.required)return i();ji.required(e,t,r,s,o)}i(s)},Zx={string:xWe,method:LWe,number:FWe,boolean:_We,regexp:DWe,integer:AWe,float:NWe,array:kWe,object:MWe,enum:TWe,pattern:EWe,date:WWe,url:y4,hex:y4,email:y4,required:RWe,any:GWe};function I4(){return{default:"Validation error on field %s",required:"%s is required",enum:"%s must be one of %s",whitespace:"%s cannot be empty",date:{format:"%s date %s is invalid for format %s",parse:"%s date could not be parsed, %s is invalid ",invalid:"%s date %s is invalid"},types:{string:"%s is not a %s",method:"%s is not a %s (function)",array:"%s is not an %s",object:"%s is not an %s",number:"%s is not a %s",date:"%s is not a %s",boolean:"%s is not a %s",integer:"%s is not an %s",float:"%s is not a %s",regexp:"%s is not a valid %s",email:"%s is not a valid %s",url:"%s is not a valid %s",hex:"%s is not a valid %s"},string:{len:"%s must be exactly %s characters",min:"%s must be at least %s characters",max:"%s cannot be longer than %s characters",range:"%s must be between %s and %s characters"},number:{len:"%s must equal %s",min:"%s cannot be less than %s",max:"%s cannot be greater than %s",range:"%s must be between %s and %s"},array:{len:"%s must be exactly %s in length",min:"%s cannot be less than %s in length",max:"%s cannot be greater than %s in length",range:"%s must be between %s and %s in length"},pattern:{mismatch:"%s value %s does not match pattern %s"},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var w4=I4(),Tx=function(){function n(t){this.rules=null,this._messages=w4,this.define(t)}var e=n.prototype;return e.define=function(i){var r=this;if(!i)throw new Error("Cannot configure a schema with no rules");if(typeof i!="object"||Array.isArray(i))throw new Error("Rules must be an object");this.rules={},Object.keys(i).forEach(function(o){var s=i[o];r.rules[o]=Array.isArray(s)?s:[s]})},e.messages=function(i){return i&&(this._messages=tre(I4(),i)),this._messages},e.validate=function(i,r,o){var s=this;r===void 0&&(r={}),o===void 0&&(o=function(){});var a=i,l=r,u=o;if(typeof l=="function"&&(u=l,l={}),!this.rules||Object.keys(this.rules).length===0)return u&&u(null,a),Promise.resolve(a);function c(f){var b=[],C={};function v(S){if(Array.isArray(S)){var F;b=(F=b).concat.apply(F,S)}else b.push(S)}for(var w=0;w2&&arguments[2]!==void 0?arguments[2]:!1;return n&&n.some(function(i){return lre(e,i,t)})}function lre(n,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return!n||!e||!t&&n.length!==e.length?!1:e.every(function(i,r){return n[r]===i})}function BWe(n,e){if(n===e)return!0;if(!n&&e||n&&!e||!n||!e||Vn(n)!=="object"||Vn(e)!=="object")return!1;var t=Object.keys(n),i=Object.keys(e),r=new Set([].concat(t,i));return _t(r).every(function(o){var s=n[o],a=e[o];return typeof s=="function"&&typeof a=="function"?!0:s===a})}function zWe(n){var e=arguments.length<=1?void 0:arguments[1];return e&&e.target&&Vn(e.target)==="object"&&n in e.target?e.target[n]:e}function ure(n,e,t){var i=n.length;if(e<0||e>=i||t<0||t>=i)return n;var r=n[e],o=e-t;return o>0?[].concat(_t(n.slice(0,t)),[r],_t(n.slice(t,e)),_t(n.slice(e+1,i))):o<0?[].concat(_t(n.slice(0,e)),_t(n.slice(e+1,t+1)),[r],_t(n.slice(t+1,i))):n}var YWe=["name"],$c=[];function cre(n,e,t,i,r,o){return typeof n=="function"?n(e,t,"source"in o?{source:o.source}:{}):i!==r}var _4=function(n){Om(t,n);var e=_1(t);function t(i){var r;if(Cs(this,t),r=e.call(this,i),me(bi(r),"state",{resetCount:0}),me(bi(r),"cancelRegisterFunc",null),me(bi(r),"mounted",!1),me(bi(r),"touched",!1),me(bi(r),"dirty",!1),me(bi(r),"validatePromise",void 0),me(bi(r),"prevValidating",void 0),me(bi(r),"errors",$c),me(bi(r),"warnings",$c),me(bi(r),"cancelRegister",function(){var l=r.props,u=l.preserve,c=l.isListField,d=l.name;r.cancelRegisterFunc&&r.cancelRegisterFunc(c,u,Is(d)),r.cancelRegisterFunc=null}),me(bi(r),"getNamePath",function(){var l=r.props,u=l.name,c=l.fieldContext,d=c.prefixName,h=d===void 0?[]:d;return u!==void 0?[].concat(_t(h),_t(u)):[]}),me(bi(r),"getRules",function(){var l=r.props,u=l.rules,c=u===void 0?[]:u,d=l.fieldContext;return c.map(function(h){return typeof h=="function"?h(d):h})}),me(bi(r),"refresh",function(){r.mounted&&r.setState(function(l){var u=l.resetCount;return{resetCount:u+1}})}),me(bi(r),"metaCache",null),me(bi(r),"triggerMetaEvent",function(l){var u=r.props.onMetaChange;if(u){var c=Se(Se({},r.getMeta()),{},{destroy:l});gx(r.metaCache,c)||u(c),r.metaCache=c}else r.metaCache=null}),me(bi(r),"onStoreChange",function(l,u,c){var d=r.props,h=d.shouldUpdate,g=d.dependencies,m=g===void 0?[]:g,f=d.onReset,b=c.store,C=r.getNamePath(),v=r.getValue(l),w=r.getValue(b),S=u&&Ry(u,C);switch(c.type==="valueUpdate"&&c.source==="external"&&!gx(v,w)&&(r.touched=!0,r.dirty=!0,r.validatePromise=null,r.errors=$c,r.warnings=$c,r.triggerMetaEvent()),c.type){case"reset":if(!u||S){r.touched=!1,r.dirty=!1,r.validatePromise=void 0,r.errors=$c,r.warnings=$c,r.triggerMetaEvent(),f==null||f(),r.refresh();return}break;case"remove":{if(h){r.reRender();return}break}case"setField":{var F=c.data;if(S){"touched"in F&&(r.touched=F.touched),"validating"in F&&!("originRCField"in F)&&(r.validatePromise=F.validating?Promise.resolve([]):null),"errors"in F&&(r.errors=F.errors||$c),"warnings"in F&&(r.warnings=F.warnings||$c),r.dirty=!0,r.triggerMetaEvent(),r.reRender();return}else if("value"in F&&Ry(u,C,!0)){r.reRender();return}if(h&&!C.length&&cre(h,l,b,v,w,c)){r.reRender();return}break}case"dependenciesUpdate":{var L=m.map(Is);if(L.some(function(D){return Ry(c.relatedFields,D)})){r.reRender();return}break}default:if(S||(!m.length||C.length||h)&&cre(h,l,b,v,w,c)){r.reRender();return}break}h===!0&&r.reRender()}),me(bi(r),"validateRules",function(l){var u=r.getNamePath(),c=r.getValue(),d=l||{},h=d.triggerName,g=d.validateOnly,m=g===void 0?!1:g,f=Promise.resolve().then(Pp(Va().mark(function b(){var C,v,w,S,F,L,D;return Va().wrap(function(M){for(;;)switch(M.prev=M.next){case 0:if(r.mounted){M.next=2;break}return M.abrupt("return",[]);case 2:if(C=r.props,v=C.validateFirst,w=v===void 0?!1:v,S=C.messageVariables,F=C.validateDebounce,L=r.getRules(),h&&(L=L.filter(function(W){return W}).filter(function(W){var Z=W.validateTrigger;if(!Z)return!0;var T=p4(Z);return T.includes(h)})),!(F&&h)){M.next=10;break}return M.next=8,new Promise(function(W){setTimeout(W,F)});case 8:if(r.validatePromise===f){M.next=10;break}return M.abrupt("return",[]);case 10:return D=XWe(u,c,L,l,w,S),D.catch(function(W){return W}).then(function(){var W=arguments.length>0&&arguments[0]!==void 0?arguments[0]:$c;if(r.validatePromise===f){var Z;r.validatePromise=null;var T=[],E=[];(Z=W.forEach)===null||Z===void 0||Z.call(W,function(V){var z=V.rule.warningOnly,O=V.errors,P=O===void 0?$c:O;z?E.push.apply(E,_t(P)):T.push.apply(T,_t(P))}),r.errors=T,r.warnings=E,r.triggerMetaEvent(),r.reRender()}}),M.abrupt("return",D);case 13:case"end":return M.stop()}},b)})));return m||(r.validatePromise=f,r.dirty=!0,r.errors=$c,r.warnings=$c,r.triggerMetaEvent(),r.reRender()),f}),me(bi(r),"isFieldValidating",function(){return!!r.validatePromise}),me(bi(r),"isFieldTouched",function(){return r.touched}),me(bi(r),"isFieldDirty",function(){if(r.dirty||r.props.initialValue!==void 0)return!0;var l=r.props.fieldContext,u=l.getInternalHooks(X1),c=u.getInitialValue;return c(r.getNamePath())!==void 0}),me(bi(r),"getErrors",function(){return r.errors}),me(bi(r),"getWarnings",function(){return r.warnings}),me(bi(r),"isListField",function(){return r.props.isListField}),me(bi(r),"isList",function(){return r.props.isList}),me(bi(r),"isPreserve",function(){return r.props.preserve}),me(bi(r),"getMeta",function(){r.prevValidating=r.isFieldValidating();var l={touched:r.isFieldTouched(),validating:r.prevValidating,errors:r.errors,warnings:r.warnings,name:r.getNamePath(),validated:r.validatePromise===null};return l}),me(bi(r),"getOnlyChild",function(l){if(typeof l=="function"){var u=r.getMeta();return Se(Se({},r.getOnlyChild(l(r.getControlled(),u,r.props.fieldContext))),{},{isFunction:!0})}var c=Kc(l);return c.length!==1||!I.isValidElement(c[0])?{child:c,isFunction:!1}:{child:c[0],isFunction:!1}}),me(bi(r),"getValue",function(l){var u=r.props.fieldContext.getFieldsValue,c=r.getNamePath();return lg(l||u(!0),c)}),me(bi(r),"getControlled",function(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},u=r.props,c=u.name,d=u.trigger,h=u.validateTrigger,g=u.getValueFromEvent,m=u.normalize,f=u.valuePropName,b=u.getValueProps,C=u.fieldContext,v=h!==void 0?h:C.validateTrigger,w=r.getNamePath(),S=C.getInternalHooks,F=C.getFieldsValue,L=S(X1),D=L.dispatch,A=r.getValue(),M=b||function(V){return me({},f,V)},W=l[d],Z=c!==void 0?M(A):{},T=Se(Se({},l),Z);T[d]=function(){r.touched=!0,r.dirty=!0,r.triggerMetaEvent();for(var V,z=arguments.length,O=new Array(z),P=0;P=0&&W<=Z.length?(c.keys=[].concat(_t(c.keys.slice(0,W)),[c.id],_t(c.keys.slice(W))),w([].concat(_t(Z.slice(0,W)),[M],_t(Z.slice(W))))):(c.keys=[].concat(_t(c.keys),[c.id]),w([].concat(_t(Z),[M]))),c.id+=1},remove:function(M){var W=F(),Z=new Set(Array.isArray(M)?M:[M]);Z.size<=0||(c.keys=c.keys.filter(function(T,E){return!Z.has(E)}),w(W.filter(function(T,E){return!Z.has(E)})))},move:function(M,W){if(M!==W){var Z=F();M<0||M>=Z.length||W<0||W>=Z.length||(c.keys=ure(c.keys,M,W),w(ure(Z,M,W)))}}},D=v||[];return Array.isArray(D)||(D=[]),i(D.map(function(A,M){var W=c.keys[M];return W===void 0&&(c.keys[M]=c.id,W=c.keys[M],c.id+=1),{name:M,key:W,isListField:!0}}),L,b)})))}function HWe(n){var e=!1,t=n.length,i=[];return n.length?new Promise(function(r,o){n.forEach(function(s,a){s.catch(function(l){return e=!0,l}).then(function(l){t-=1,i[a]=l,!(t>0)&&(e&&o(i),r(i))})})}):Promise.resolve([])}var hre="__@field_split__";function A4(n){return n.map(function(e){return"".concat(Vn(e),":").concat(e)}).join(hre)}var Gy=function(){function n(){Cs(this,n),me(this,"kvs",new Map)}return vs(n,[{key:"set",value:function(t,i){this.kvs.set(A4(t),i)}},{key:"get",value:function(t){return this.kvs.get(A4(t))}},{key:"update",value:function(t,i){var r=this.get(t),o=i(r);o?this.set(t,o):this.delete(t)}},{key:"delete",value:function(t){this.kvs.delete(A4(t))}},{key:"map",value:function(t){return _t(this.kvs.entries()).map(function(i){var r=we(i,2),o=r[0],s=r[1],a=o.split(hre);return t({key:a.map(function(l){var u=l.match(/^([^:]*):(.*)$/),c=we(u,3),d=c[1],h=c[2];return d==="number"?Number(h):h}),value:s})})}},{key:"toJSON",value:function(){var t={};return this.map(function(i){var r=i.key,o=i.value;return t[r.join(".")]=o,null}),t}}]),n}(),UWe=["name"],JWe=vs(function n(e){var t=this;Cs(this,n),me(this,"formHooked",!1),me(this,"forceRootUpdate",void 0),me(this,"subscribable",!0),me(this,"store",{}),me(this,"fieldEntities",[]),me(this,"initialValues",{}),me(this,"callbacks",{}),me(this,"validateMessages",null),me(this,"preserve",null),me(this,"lastValidatePromise",null),me(this,"getForm",function(){return{getFieldValue:t.getFieldValue,getFieldsValue:t.getFieldsValue,getFieldError:t.getFieldError,getFieldWarning:t.getFieldWarning,getFieldsError:t.getFieldsError,isFieldsTouched:t.isFieldsTouched,isFieldTouched:t.isFieldTouched,isFieldValidating:t.isFieldValidating,isFieldsValidating:t.isFieldsValidating,resetFields:t.resetFields,setFields:t.setFields,setFieldValue:t.setFieldValue,setFieldsValue:t.setFieldsValue,validateFields:t.validateFields,submit:t.submit,_init:!0,getInternalHooks:t.getInternalHooks}}),me(this,"getInternalHooks",function(i){return i===X1?(t.formHooked=!0,{dispatch:t.dispatch,initEntityValue:t.initEntityValue,registerField:t.registerField,useSubscribe:t.useSubscribe,setInitialValues:t.setInitialValues,destroyForm:t.destroyForm,setCallbacks:t.setCallbacks,setValidateMessages:t.setValidateMessages,getFields:t.getFields,setPreserve:t.setPreserve,getInitialValue:t.getInitialValue,registerWatch:t.registerWatch}):(ia(!1,"`getInternalHooks` is internal usage. Should not call directly."),null)}),me(this,"useSubscribe",function(i){t.subscribable=i}),me(this,"prevWithoutPreserves",null),me(this,"setInitialValues",function(i,r){if(t.initialValues=i||{},r){var o,s=_y(i,t.store);(o=t.prevWithoutPreserves)===null||o===void 0||o.map(function(a){var l=a.key;s=Ud(s,l,lg(i,l))}),t.prevWithoutPreserves=null,t.updateStore(s)}}),me(this,"destroyForm",function(){var i=new Gy;t.getFieldEntities(!0).forEach(function(r){t.isMergedPreserve(r.isPreserve())||i.set(r.getNamePath(),!0)}),t.prevWithoutPreserves=i}),me(this,"getInitialValue",function(i){var r=lg(t.initialValues,i);return i.length?_y(r):r}),me(this,"setCallbacks",function(i){t.callbacks=i}),me(this,"setValidateMessages",function(i){t.validateMessages=i}),me(this,"setPreserve",function(i){t.preserve=i}),me(this,"watchList",[]),me(this,"registerWatch",function(i){return t.watchList.push(i),function(){t.watchList=t.watchList.filter(function(r){return r!==i})}}),me(this,"notifyWatch",function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];if(t.watchList.length){var r=t.getFieldsValue(),o=t.getFieldsValue(!0);t.watchList.forEach(function(s){s(r,o,i)})}}),me(this,"timeoutId",null),me(this,"warningUnhooked",function(){}),me(this,"updateStore",function(i){t.store=i}),me(this,"getFieldEntities",function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;return i?t.fieldEntities.filter(function(r){return r.getNamePath().length}):t.fieldEntities}),me(this,"getFieldsMap",function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,r=new Gy;return t.getFieldEntities(i).forEach(function(o){var s=o.getNamePath();r.set(s,o)}),r}),me(this,"getFieldEntitiesForNamePathList",function(i){if(!i)return t.getFieldEntities(!0);var r=t.getFieldsMap(!0);return i.map(function(o){var s=Is(o);return r.get(s)||{INVALIDATE_NAME_PATH:Is(o)}})}),me(this,"getFieldsValue",function(i,r){t.warningUnhooked();var o,s,a;if(i===!0||Array.isArray(i)?(o=i,s=r):i&&Vn(i)==="object"&&(a=i.strict,s=i.filter),o===!0&&!s)return t.store;var l=t.getFieldEntitiesForNamePathList(Array.isArray(o)?o:null),u=[];return l.forEach(function(c){var d,h,g="INVALIDATE_NAME_PATH"in c?c.INVALIDATE_NAME_PATH:c.getNamePath();if(a){var m,f;if((m=(f=c).isList)!==null&&m!==void 0&&m.call(f))return}else if(!o&&(d=(h=c).isListField)!==null&&d!==void 0&&d.call(h))return;if(!s)u.push(g);else{var b="getMeta"in c?c.getMeta():null;s(b)&&u.push(g)}}),are(t.store,u.map(Is))}),me(this,"getFieldValue",function(i){t.warningUnhooked();var r=Is(i);return lg(t.store,r)}),me(this,"getFieldsError",function(i){t.warningUnhooked();var r=t.getFieldEntitiesForNamePathList(i);return r.map(function(o,s){return o&&!("INVALIDATE_NAME_PATH"in o)?{name:o.getNamePath(),errors:o.getErrors(),warnings:o.getWarnings()}:{name:Is(i[s]),errors:[],warnings:[]}})}),me(this,"getFieldError",function(i){t.warningUnhooked();var r=Is(i),o=t.getFieldsError([r])[0];return o.errors}),me(this,"getFieldWarning",function(i){t.warningUnhooked();var r=Is(i),o=t.getFieldsError([r])[0];return o.warnings}),me(this,"isFieldsTouched",function(){t.warningUnhooked();for(var i=arguments.length,r=new Array(i),o=0;o0&&arguments[0]!==void 0?arguments[0]:{},r=new Gy,o=t.getFieldEntities(!0);o.forEach(function(l){var u=l.props.initialValue,c=l.getNamePath();if(u!==void 0){var d=r.get(c)||new Set;d.add({entity:l,value:u}),r.set(c,d)}});var s=function(u){u.forEach(function(c){var d=c.props.initialValue;if(d!==void 0){var h=c.getNamePath(),g=t.getInitialValue(h);if(g!==void 0)ia(!1,"Form already set 'initialValues' with path '".concat(h.join("."),"'. Field can not overwrite it."));else{var m=r.get(h);if(m&&m.size>1)ia(!1,"Multiple Field with path '".concat(h.join("."),"' set 'initialValue'. Can not decide which one to pick."));else if(m){var f=t.getFieldValue(h),b=c.isListField();!b&&(!i.skipExist||f===void 0)&&t.updateStore(Ud(t.store,h,_t(m)[0].value))}}}})},a;i.entities?a=i.entities:i.namePathList?(a=[],i.namePathList.forEach(function(l){var u=r.get(l);if(u){var c;(c=a).push.apply(c,_t(_t(u).map(function(d){return d.entity})))}})):a=o,s(a)}),me(this,"resetFields",function(i){t.warningUnhooked();var r=t.store;if(!i){t.updateStore(_y(t.initialValues)),t.resetWithFieldInitialValue(),t.notifyObservers(r,null,{type:"reset"}),t.notifyWatch();return}var o=i.map(Is);o.forEach(function(s){var a=t.getInitialValue(s);t.updateStore(Ud(t.store,s,a))}),t.resetWithFieldInitialValue({namePathList:o}),t.notifyObservers(r,o,{type:"reset"}),t.notifyWatch(o)}),me(this,"setFields",function(i){t.warningUnhooked();var r=t.store,o=[];i.forEach(function(s){var a=s.name,l=zn(s,UWe),u=Is(a);o.push(u),"value"in l&&t.updateStore(Ud(t.store,u,l.value)),t.notifyObservers(r,[u],{type:"setField",data:s})}),t.notifyWatch(o)}),me(this,"getFields",function(){var i=t.getFieldEntities(!0),r=i.map(function(o){var s=o.getNamePath(),a=o.getMeta(),l=Se(Se({},a),{},{name:s,value:t.getFieldValue(s)});return Object.defineProperty(l,"originRCField",{value:!0}),l});return r}),me(this,"initEntityValue",function(i){var r=i.props.initialValue;if(r!==void 0){var o=i.getNamePath(),s=lg(t.store,o);s===void 0&&t.updateStore(Ud(t.store,o,r))}}),me(this,"isMergedPreserve",function(i){var r=i!==void 0?i:t.preserve;return r??!0}),me(this,"registerField",function(i){t.fieldEntities.push(i);var r=i.getNamePath();if(t.notifyWatch([r]),i.props.initialValue!==void 0){var o=t.store;t.resetWithFieldInitialValue({entities:[i],skipExist:!0}),t.notifyObservers(o,[i.getNamePath()],{type:"valueUpdate",source:"internal"})}return function(s,a){var l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];if(t.fieldEntities=t.fieldEntities.filter(function(d){return d!==i}),!t.isMergedPreserve(a)&&(!s||l.length>1)){var u=s?void 0:t.getInitialValue(r);if(r.length&&t.getFieldValue(r)!==u&&t.fieldEntities.every(function(d){return!lre(d.getNamePath(),r)})){var c=t.store;t.updateStore(Ud(c,r,u,!0)),t.notifyObservers(c,[r],{type:"remove"}),t.triggerDependenciesUpdate(c,r)}}t.notifyWatch([r])}}),me(this,"dispatch",function(i){switch(i.type){case"updateValue":{var r=i.namePath,o=i.value;t.updateValue(r,o);break}case"validateField":{var s=i.namePath,a=i.triggerName;t.validateFields([s],{triggerName:a});break}}}),me(this,"notifyObservers",function(i,r,o){if(t.subscribable){var s=Se(Se({},o),{},{store:t.getFieldsValue(!0)});t.getFieldEntities().forEach(function(a){var l=a.onStoreChange;l(i,r,s)})}else t.forceRootUpdate()}),me(this,"triggerDependenciesUpdate",function(i,r){var o=t.getDependencyChildrenFields(r);return o.length&&t.validateFields(o),t.notifyObservers(i,o,{type:"dependenciesUpdate",relatedFields:[r].concat(_t(o))}),o}),me(this,"updateValue",function(i,r){var o=Is(i),s=t.store;t.updateStore(Ud(t.store,o,r)),t.notifyObservers(s,[o],{type:"valueUpdate",source:"internal"}),t.notifyWatch([o]);var a=t.triggerDependenciesUpdate(s,o),l=t.callbacks.onValuesChange;if(l){var u=are(t.store,[o]);l(u,t.getFieldsValue())}t.triggerOnFieldsChange([o].concat(_t(a)))}),me(this,"setFieldsValue",function(i){t.warningUnhooked();var r=t.store;if(i){var o=_y(t.store,i);t.updateStore(o)}t.notifyObservers(r,null,{type:"valueUpdate",source:"external"}),t.notifyWatch()}),me(this,"setFieldValue",function(i,r){t.setFields([{name:i,value:r}])}),me(this,"getDependencyChildrenFields",function(i){var r=new Set,o=[],s=new Gy;t.getFieldEntities().forEach(function(l){var u=l.props.dependencies;(u||[]).forEach(function(c){var d=Is(c);s.update(d,function(){var h=arguments.length>0&&arguments[0]!==void 0?arguments[0]:new Set;return h.add(l),h})})});var a=function l(u){var c=s.get(u)||new Set;c.forEach(function(d){if(!r.has(d)){r.add(d);var h=d.getNamePath();d.isFieldDirty()&&h.length&&(o.push(h),l(h))}})};return a(i),o}),me(this,"triggerOnFieldsChange",function(i,r){var o=t.callbacks.onFieldsChange;if(o){var s=t.getFields();if(r){var a=new Gy;r.forEach(function(u){var c=u.name,d=u.errors;a.set(c,d)}),s.forEach(function(u){u.errors=a.get(u.name)||u.errors})}var l=s.filter(function(u){var c=u.name;return Ry(i,c)});l.length&&o(l,s)}}),me(this,"validateFields",function(i,r){t.warningUnhooked();var o,s;Array.isArray(i)||typeof i=="string"||typeof r=="string"?(o=i,s=r):s=i;var a=!!o,l=a?o.map(Is):[],u=[],c=String(Date.now()),d=new Set,h=s||{},g=h.recursive,m=h.dirty;t.getFieldEntities(!0).forEach(function(v){if(a||l.push(v.getNamePath()),!(!v.props.rules||!v.props.rules.length)&&!(m&&!v.isFieldDirty())){var w=v.getNamePath();if(d.add(w.join(c)),!a||Ry(l,w,g)){var S=v.validateRules(Se({validateMessages:Se(Se({},rre),t.validateMessages)},s));u.push(S.then(function(){return{name:w,errors:[],warnings:[]}}).catch(function(F){var L,D=[],A=[];return(L=F.forEach)===null||L===void 0||L.call(F,function(M){var W=M.rule.warningOnly,Z=M.errors;W?A.push.apply(A,_t(Z)):D.push.apply(D,_t(Z))}),D.length?Promise.reject({name:w,errors:D,warnings:A}):{name:w,errors:D,warnings:A}}))}}});var f=HWe(u);t.lastValidatePromise=f,f.catch(function(v){return v}).then(function(v){var w=v.map(function(S){var F=S.name;return F});t.notifyObservers(t.store,w,{type:"validateFinish"}),t.triggerOnFieldsChange(w,v)});var b=f.then(function(){return t.lastValidatePromise===f?Promise.resolve(t.getFieldsValue(l)):Promise.reject([])}).catch(function(v){var w=v.filter(function(S){return S&&S.errors.length});return Promise.reject({values:t.getFieldsValue(l),errorFields:w,outOfDate:t.lastValidatePromise!==f})});b.catch(function(v){return v});var C=l.filter(function(v){return d.has(v.join(c))});return t.triggerOnFieldsChange(C),b}),me(this,"submit",function(){t.warningUnhooked(),t.validateFields().then(function(i){var r=t.callbacks.onFinish;if(r)try{r(i)}catch{}}).catch(function(i){var r=t.callbacks.onFinishFailed;r&&r(i)})}),this.forceRootUpdate=e});function N4(n){var e=I.useRef(),t=I.useState({}),i=we(t,2),r=i[1];if(!e.current)if(n)e.current=n;else{var o=function(){r({})},s=new JWe(o);e.current=s.getForm()}return[e.current]}var k4=I.createContext({triggerFormChange:function(){},triggerFormFinish:function(){},registerForm:function(){},unregisterForm:function(){}}),gre=function(e){var t=e.validateMessages,i=e.onFormChange,r=e.onFormFinish,o=e.children,s=I.useContext(k4),a=I.useRef({});return I.createElement(k4.Provider,{value:Se(Se({},s),{},{validateMessages:Se(Se({},s.validateMessages),t),triggerFormChange:function(u,c){i&&i(u,{changedFields:c,forms:a.current}),s.triggerFormChange(u,c)},triggerFormFinish:function(u,c){r&&r(u,{values:c,forms:a.current}),s.triggerFormFinish(u,c)},registerForm:function(u,c){u&&(a.current=Se(Se({},a.current),{},me({},u,c))),s.registerForm(u,c)},unregisterForm:function(u){var c=Se({},a.current);delete c[u],a.current=c,s.unregisterForm(u)}})},o)},KWe=["name","initialValues","fields","form","preserve","children","component","validateMessages","validateTrigger","onValuesChange","onFieldsChange","onFinish","onFinishFailed"],jWe=function(e,t){var i=e.name,r=e.initialValues,o=e.fields,s=e.form,a=e.preserve,l=e.children,u=e.component,c=u===void 0?"form":u,d=e.validateMessages,h=e.validateTrigger,g=h===void 0?"onChange":h,m=e.onValuesChange,f=e.onFieldsChange,b=e.onFinish,C=e.onFinishFailed,v=zn(e,KWe),w=I.useContext(k4),S=N4(s),F=we(S,1),L=F[0],D=L.getInternalHooks(X1),A=D.useSubscribe,M=D.setInitialValues,W=D.setCallbacks,Z=D.setValidateMessages,T=D.setPreserve,E=D.destroyForm;I.useImperativeHandle(t,function(){return L}),I.useEffect(function(){return w.registerForm(i,L),function(){w.unregisterForm(i)}},[w,L,i]),Z(Se(Se({},w.validateMessages),d)),W({onValuesChange:m,onFieldsChange:function(U){if(w.triggerFormChange(i,U),f){for(var R=arguments.length,ee=new Array(R>1?R-1:0),oe=1;oe{}}),pre=I.createContext(null),bre=n=>{const e=ra(n,["prefixCls"]);return I.createElement(gre,Object.assign({},e))},M4=I.createContext({prefixCls:""}),Xa=I.createContext({}),Ex=n=>{let{children:e,status:t,override:i}=n;const r=I.useContext(Xa),o=I.useMemo(()=>{const s=Object.assign({},r);return i&&delete s.isFormItemInput,t&&(delete s.status,delete s.hasFeedback,delete s.feedbackIcon),s},[t,i,r]);return I.createElement(Xa.Provider,{value:o},e)},Cre=I.createContext(void 0);function vre(){}const $We=I.createContext({add:vre,remove:vre});function qWe(n){const e=I.useContext($We),t=I.useRef();return Ki(r=>{if(r){const o=n?r.querySelector(n):r;e.add(o),t.current=o}else e.remove(t.current)})}const yre=()=>{const{cancelButtonProps:n,cancelTextLocale:e,onCancel:t}=I.useContext(Ax);return Ye.createElement(so,Object.assign({onClick:t},n),e)},Ire=()=>{const{confirmLoading:n,okButtonProps:e,okType:t,okTextLocale:i,onOk:r}=I.useContext(Ax);return Ye.createElement(so,Object.assign({},Cie(t),{loading:n,onClick:r},e),i)};function wre(n,e){return Ye.createElement("span",{className:`${n}-close-x`},e||Ye.createElement(Xp,{className:`${n}-close-icon`}))}const Sre=n=>{const{okText:e,okType:t="primary",cancelText:i,confirmLoading:r,onOk:o,onCancel:s,okButtonProps:a,cancelButtonProps:l,footer:u}=n,[c]=Wp("Modal",Ute()),d=e||(c==null?void 0:c.okText),h=i||(c==null?void 0:c.cancelText),g={confirmLoading:r,okButtonProps:a,cancelButtonProps:l,okTextLocale:d,cancelTextLocale:h,okType:t,onOk:o,onCancel:s},m=Ye.useMemo(()=>g,_t(Object.values(g)));let f;return typeof u=="function"||typeof u>"u"?(f=Ye.createElement(Ye.Fragment,null,Ye.createElement(yre,null),Ye.createElement(Ire,null)),typeof u=="function"&&(f=u(f,{OkBtn:Ire,CancelBtn:yre})),f=Ye.createElement(Aie,{value:m},f)):f=u,Ye.createElement(TX,{disabled:!1},f)},Z4=n=>({[n.componentCls]:{[`${n.antCls}-motion-collapse-legacy`]:{overflow:"hidden","&-active":{transition:`height ${n.motionDurationMid} ${n.motionEaseInOut}, + opacity ${n.motionDurationMid} ${n.motionEaseInOut} !important`}},[`${n.antCls}-motion-collapse`]:{overflow:"hidden",transition:`height ${n.motionDurationMid} ${n.motionEaseInOut}, + opacity ${n.motionDurationMid} ${n.motionEaseInOut} !important`}}}),eRe=n=>({animationDuration:n,animationFillMode:"both"}),tRe=n=>({animationDuration:n,animationFillMode:"both"}),aM=function(n,e,t,i){const o=(arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1)?"&":"";return{[` + ${o}${n}-enter, + ${o}${n}-appear + `]:Object.assign(Object.assign({},eRe(i)),{animationPlayState:"paused"}),[`${o}${n}-leave`]:Object.assign(Object.assign({},tRe(i)),{animationPlayState:"paused"}),[` + ${o}${n}-enter${n}-enter-active, + ${o}${n}-appear${n}-appear-active + `]:{animationName:e,animationPlayState:"running"},[`${o}${n}-leave${n}-leave-active`]:{animationName:t,animationPlayState:"running",pointerEvents:"none"}}},nRe=new Ni("antFadeIn",{"0%":{opacity:0},"100%":{opacity:1}}),iRe=new Ni("antFadeOut",{"0%":{opacity:1},"100%":{opacity:0}}),xre=function(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const{antCls:t}=n,i=`${t}-fade`,r=e?"&":"";return[aM(i,nRe,iRe,n.motionDurationMid,e),{[` + ${r}${i}-enter, + ${r}${i}-appear + `]:{opacity:0,animationTimingFunction:"linear"},[`${r}${i}-leave`]:{animationTimingFunction:"linear"}}]},rRe=new Ni("antMoveDownIn",{"0%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),oRe=new Ni("antMoveDownOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, 100%, 0)",transformOrigin:"0 0",opacity:0}}),sRe=new Ni("antMoveLeftIn",{"0%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),aRe=new Ni("antMoveLeftOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(-100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),lRe=new Ni("antMoveRightIn",{"0%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),uRe=new Ni("antMoveRightOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(100%, 0, 0)",transformOrigin:"0 0",opacity:0}}),cRe=new Ni("antMoveUpIn",{"0%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1}}),dRe=new Ni("antMoveUpOut",{"0%":{transform:"translate3d(0, 0, 0)",transformOrigin:"0 0",opacity:1},"100%":{transform:"translate3d(0, -100%, 0)",transformOrigin:"0 0",opacity:0}}),hRe={"move-up":{inKeyframes:cRe,outKeyframes:dRe},"move-down":{inKeyframes:rRe,outKeyframes:oRe},"move-left":{inKeyframes:sRe,outKeyframes:aRe},"move-right":{inKeyframes:lRe,outKeyframes:uRe}},Xy=(n,e)=>{const{antCls:t}=n,i=`${t}-${e}`,{inKeyframes:r,outKeyframes:o}=hRe[e];return[aM(i,r,o,n.motionDurationMid),{[` + ${i}-enter, + ${i}-appear + `]:{opacity:0,animationTimingFunction:n.motionEaseOutCirc},[`${i}-leave`]:{animationTimingFunction:n.motionEaseInOutCirc}}]},lM=new Ni("antSlideUpIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1}}),uM=new Ni("antSlideUpOut",{"0%":{transform:"scaleY(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"0% 0%",opacity:0}}),cM=new Ni("antSlideDownIn",{"0%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0},"100%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1}}),dM=new Ni("antSlideDownOut",{"0%":{transform:"scaleY(1)",transformOrigin:"100% 100%",opacity:1},"100%":{transform:"scaleY(0.8)",transformOrigin:"100% 100%",opacity:0}}),gRe=new Ni("antSlideLeftIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1}}),mRe=new Ni("antSlideLeftOut",{"0%":{transform:"scaleX(1)",transformOrigin:"0% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"0% 0%",opacity:0}}),fRe=new Ni("antSlideRightIn",{"0%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0},"100%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1}}),pRe=new Ni("antSlideRightOut",{"0%":{transform:"scaleX(1)",transformOrigin:"100% 0%",opacity:1},"100%":{transform:"scaleX(0.8)",transformOrigin:"100% 0%",opacity:0}}),bRe={"slide-up":{inKeyframes:lM,outKeyframes:uM},"slide-down":{inKeyframes:cM,outKeyframes:dM},"slide-left":{inKeyframes:gRe,outKeyframes:mRe},"slide-right":{inKeyframes:fRe,outKeyframes:pRe}},ug=(n,e)=>{const{antCls:t}=n,i=`${t}-${e}`,{inKeyframes:r,outKeyframes:o}=bRe[e];return[aM(i,r,o,n.motionDurationMid),{[` + ${i}-enter, + ${i}-appear + `]:{transform:"scale(0)",transformOrigin:"0% 0%",opacity:0,animationTimingFunction:n.motionEaseOutQuint,"&-prepare":{transform:"scale(1)"}},[`${i}-leave`]:{animationTimingFunction:n.motionEaseInQuint}}]},T4=new Ni("antZoomIn",{"0%":{transform:"scale(0.2)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),CRe=new Ni("antZoomOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.2)",opacity:0}}),Lre=new Ni("antZoomBigIn",{"0%":{transform:"scale(0.8)",opacity:0},"100%":{transform:"scale(1)",opacity:1}}),Fre=new Ni("antZoomBigOut",{"0%":{transform:"scale(1)"},"100%":{transform:"scale(0.8)",opacity:0}}),vRe=new Ni("antZoomUpIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 0%"}}),yRe=new Ni("antZoomUpOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 0%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 0%",opacity:0}}),IRe=new Ni("antZoomLeftIn",{"0%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"0% 50%"}}),wRe=new Ni("antZoomLeftOut",{"0%":{transform:"scale(1)",transformOrigin:"0% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"0% 50%",opacity:0}}),SRe=new Ni("antZoomRightIn",{"0%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"100% 50%"}}),xRe=new Ni("antZoomRightOut",{"0%":{transform:"scale(1)",transformOrigin:"100% 50%"},"100%":{transform:"scale(0.8)",transformOrigin:"100% 50%",opacity:0}}),LRe=new Ni("antZoomDownIn",{"0%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0},"100%":{transform:"scale(1)",transformOrigin:"50% 100%"}}),FRe=new Ni("antZoomDownOut",{"0%":{transform:"scale(1)",transformOrigin:"50% 100%"},"100%":{transform:"scale(0.8)",transformOrigin:"50% 100%",opacity:0}}),_Re={zoom:{inKeyframes:T4,outKeyframes:CRe},"zoom-big":{inKeyframes:Lre,outKeyframes:Fre},"zoom-big-fast":{inKeyframes:Lre,outKeyframes:Fre},"zoom-left":{inKeyframes:IRe,outKeyframes:wRe},"zoom-right":{inKeyframes:SRe,outKeyframes:xRe},"zoom-up":{inKeyframes:vRe,outKeyframes:yRe},"zoom-down":{inKeyframes:LRe,outKeyframes:FRe}},Wx=(n,e)=>{const{antCls:t}=n,i=`${t}-${e}`,{inKeyframes:r,outKeyframes:o}=_Re[e];return[aM(i,r,o,e==="zoom-big-fast"?n.motionDurationFast:n.motionDurationMid),{[` + ${i}-enter, + ${i}-appear + `]:{transform:"scale(0)",opacity:0,animationTimingFunction:n.motionEaseOutCirc,"&-prepare":{transform:"none"}},[`${i}-leave`]:{animationTimingFunction:n.motionEaseInOutCirc}}]};function _re(n){return{position:n,inset:0}}const DRe=n=>{const{componentCls:e,antCls:t}=n;return[{[`${e}-root`]:{[`${e}${t}-zoom-enter, ${e}${t}-zoom-appear`]:{transform:"none",opacity:0,animationDuration:n.motionDurationSlow,userSelect:"none"},[`${e}${t}-zoom-leave ${e}-content`]:{pointerEvents:"none"},[`${e}-mask`]:Object.assign(Object.assign({},_re("fixed")),{zIndex:n.zIndexPopupBase,height:"100%",backgroundColor:n.colorBgMask,pointerEvents:"none",[`${e}-hidden`]:{display:"none"}}),[`${e}-wrap`]:Object.assign(Object.assign({},_re("fixed")),{zIndex:n.zIndexPopupBase,overflow:"auto",outline:0,WebkitOverflowScrolling:"touch"})}},{[`${e}-root`]:xre(n)}]},ARe=n=>{const{componentCls:e}=n;return[{[`${e}-root`]:{[`${e}-wrap-rtl`]:{direction:"rtl"},[`${e}-centered`]:{textAlign:"center","&::before":{display:"inline-block",width:0,height:"100%",verticalAlign:"middle",content:'""'},[e]:{top:0,display:"inline-block",paddingBottom:0,textAlign:"start",verticalAlign:"middle"}},[`@media (max-width: ${n.screenSMMax}px)`]:{[e]:{maxWidth:"calc(100vw - 16px)",margin:`${Te(n.marginXS)} auto`},[`${e}-centered`]:{[e]:{flex:1}}}}},{[e]:Object.assign(Object.assign({},oo(n)),{pointerEvents:"none",position:"relative",top:100,width:"auto",maxWidth:`calc(100vw - ${Te(n.calc(n.margin).mul(2).equal())})`,margin:"0 auto",paddingBottom:n.paddingLG,[`${e}-title`]:{margin:0,color:n.titleColor,fontWeight:n.fontWeightStrong,fontSize:n.titleFontSize,lineHeight:n.titleLineHeight,wordWrap:"break-word"},[`${e}-content`]:{position:"relative",backgroundColor:n.contentBg,backgroundClip:"padding-box",border:0,borderRadius:n.borderRadiusLG,boxShadow:n.boxShadow,pointerEvents:"auto",padding:n.contentPadding},[`${e}-close`]:Object.assign({position:"absolute",top:n.calc(n.modalHeaderHeight).sub(n.modalCloseBtnSize).div(2).equal(),insetInlineEnd:n.calc(n.modalHeaderHeight).sub(n.modalCloseBtnSize).div(2).equal(),zIndex:n.calc(n.zIndexPopupBase).add(10).equal(),padding:0,color:n.modalCloseIconColor,fontWeight:n.fontWeightStrong,lineHeight:1,textDecoration:"none",background:"transparent",borderRadius:n.borderRadiusSM,width:n.modalCloseBtnSize,height:n.modalCloseBtnSize,border:0,outline:0,cursor:"pointer",transition:`color ${n.motionDurationMid}, background-color ${n.motionDurationMid}`,"&-x":{display:"flex",fontSize:n.fontSizeLG,fontStyle:"normal",lineHeight:`${Te(n.modalCloseBtnSize)}`,justifyContent:"center",textTransform:"none",textRendering:"auto"},"&:hover":{color:n.modalCloseIconHoverColor,backgroundColor:n.colorBgTextHover,textDecoration:"none"},"&:active":{backgroundColor:n.colorBgTextActive}},T1(n)),[`${e}-header`]:{color:n.colorText,background:n.headerBg,borderRadius:`${Te(n.borderRadiusLG)} ${Te(n.borderRadiusLG)} 0 0`,marginBottom:n.headerMarginBottom,padding:n.headerPadding,borderBottom:n.headerBorderBottom},[`${e}-body`]:{fontSize:n.fontSize,lineHeight:n.lineHeight,wordWrap:"break-word",padding:n.bodyPadding},[`${e}-footer`]:{textAlign:"end",background:n.footerBg,marginTop:n.footerMarginTop,padding:n.footerPadding,borderTop:n.footerBorderTop,borderRadius:n.footerBorderRadius,[`> ${n.antCls}-btn + ${n.antCls}-btn`]:{marginInlineStart:n.marginXS}},[`${e}-open`]:{overflow:"hidden"}})},{[`${e}-pure-panel`]:{top:"auto",padding:0,display:"flex",flexDirection:"column",[`${e}-content, + ${e}-body, + ${e}-confirm-body-wrapper`]:{display:"flex",flexDirection:"column",flex:"auto"},[`${e}-confirm-body`]:{marginBottom:"auto"}}}]},NRe=n=>{const{componentCls:e}=n;return{[`${e}-root`]:{[`${e}-wrap-rtl`]:{direction:"rtl",[`${e}-confirm-body`]:{direction:"rtl"}}}}},Dre=n=>{const e=n.padding,t=n.fontSizeHeading5,i=n.lineHeightHeading5;return Bi(n,{modalHeaderHeight:n.calc(n.calc(i).mul(t).equal()).add(n.calc(e).mul(2).equal()).equal(),modalFooterBorderColorSplit:n.colorSplit,modalFooterBorderStyle:n.lineType,modalFooterBorderWidth:n.lineWidth,modalCloseIconColor:n.colorIcon,modalCloseIconHoverColor:n.colorIconHover,modalCloseBtnSize:n.controlHeight,modalConfirmIconSize:n.fontHeight,modalTitleHeight:n.calc(n.titleFontSize).mul(n.titleLineHeight).equal()})},Are=n=>({footerBg:"transparent",headerBg:n.colorBgElevated,titleLineHeight:n.lineHeightHeading5,titleFontSize:n.fontSizeHeading5,contentBg:n.colorBgElevated,titleColor:n.colorTextHeading,contentPadding:n.wireframe?0:`${Te(n.paddingMD)} ${Te(n.paddingContentHorizontalLG)}`,headerPadding:n.wireframe?`${Te(n.padding)} ${Te(n.paddingLG)}`:0,headerBorderBottom:n.wireframe?`${Te(n.lineWidth)} ${n.lineType} ${n.colorSplit}`:"none",headerMarginBottom:n.wireframe?0:n.marginXS,bodyPadding:n.wireframe?n.paddingLG:0,footerPadding:n.wireframe?`${Te(n.paddingXS)} ${Te(n.padding)}`:0,footerBorderTop:n.wireframe?`${Te(n.lineWidth)} ${n.lineType} ${n.colorSplit}`:"none",footerBorderRadius:n.wireframe?`0 0 ${Te(n.borderRadiusLG)} ${Te(n.borderRadiusLG)}`:0,footerMarginTop:n.wireframe?0:n.marginSM,confirmBodyPadding:n.wireframe?`${Te(n.padding*2)} ${Te(n.padding*2)} ${Te(n.paddingLG)}`:0,confirmIconMarginInlineEnd:n.wireframe?n.margin:n.marginSM,confirmBtnsMarginTop:n.wireframe?n.marginLG:n.marginSM}),Nre=Oo("Modal",n=>{const e=Dre(n);return[ARe(e),NRe(e),DRe(e),Wx(e,"zoom")]},Are,{unitless:{titleLineHeight:!0}});var kRe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{E4={x:n.pageX,y:n.pageY},setTimeout(()=>{E4=null},100)};sWe()&&document.documentElement.addEventListener("click",MRe,!0);const kre=n=>{var e;const{getPopupContainer:t,getPrefixCls:i,direction:r,modal:o}=I.useContext(Tn),s=k=>{const{onCancel:X}=n;X==null||X(k)},a=k=>{const{onOk:X}=n;X==null||X(k)},{prefixCls:l,className:u,rootClassName:c,open:d,wrapClassName:h,centered:g,getContainer:m,focusTriggerAfterClose:f=!0,style:b,visible:C,width:v=520,footer:w,classNames:S,styles:F}=n,L=kRe(n,["prefixCls","className","rootClassName","open","wrapClassName","centered","getContainer","focusTriggerAfterClose","style","visible","width","footer","classNames","styles"]),D=i("modal",l),A=i(),M=ys(D),[W,Z,T]=Nre(D,M),E=Me(h,{[`${D}-centered`]:!!g,[`${D}-wrap-rtl`]:r==="rtl"}),V=w!==null&&I.createElement(Sre,Object.assign({},n,{onOk:a,onCancel:s})),[z,O]=oWe(Uie(n),Uie(o),{closable:!0,closeIcon:I.createElement(Xp,{className:`${D}-close-icon`}),closeIconRender:k=>wre(D,k)}),P=qWe(`.${D}-content`),[B,Y]=V1("Modal",L.zIndex);return W(I.createElement(Jm,null,I.createElement(Ex,{status:!0,override:!0},I.createElement(Qk.Provider,{value:Y},I.createElement(Hie,Object.assign({width:v},L,{zIndex:B,getContainer:m===void 0?t:m,prefixCls:D,rootClassName:Me(Z,c,T,M),footer:V,visible:d??C,mousePosition:(e=L.mousePosition)!==null&&e!==void 0?e:E4,onClose:s,closable:z,closeIcon:O,focusTriggerAfterClose:f,transitionName:Op(A,"zoom",n.transitionName),maskTransitionName:Op(A,"fade",n.maskTransitionName),className:Me(Z,u,o==null?void 0:o.className),style:Object.assign(Object.assign({},o==null?void 0:o.style),b),classNames:Object.assign(Object.assign(Object.assign({},o==null?void 0:o.classNames),S),{wrapper:Me(E,S==null?void 0:S.wrapper)}),styles:Object.assign(Object.assign({},o==null?void 0:o.styles),F),panelRef:P}))))))},ZRe=n=>{const{componentCls:e,titleFontSize:t,titleLineHeight:i,modalConfirmIconSize:r,fontSize:o,lineHeight:s,modalTitleHeight:a,fontHeight:l,confirmBodyPadding:u}=n,c=`${e}-confirm`;return{[c]:{"&-rtl":{direction:"rtl"},[`${n.antCls}-modal-header`]:{display:"none"},[`${c}-body-wrapper`]:Object.assign({},ky()),[`&${e} ${e}-body`]:{padding:u},[`${c}-body`]:{display:"flex",flexWrap:"nowrap",alignItems:"start",[`> ${n.iconCls}`]:{flex:"none",fontSize:r,marginInlineEnd:n.confirmIconMarginInlineEnd,marginTop:n.calc(n.calc(l).sub(r).equal()).div(2).equal()},[`&-has-title > ${n.iconCls}`]:{marginTop:n.calc(n.calc(a).sub(r).equal()).div(2).equal()}},[`${c}-paragraph`]:{display:"flex",flexDirection:"column",flex:"auto",rowGap:n.marginXS},[`${n.iconCls} + ${c}-paragraph`]:{maxWidth:`calc(100% - ${Te(n.calc(n.modalConfirmIconSize).add(n.marginSM).equal())})`},[`${c}-title`]:{color:n.colorTextHeading,fontWeight:n.fontWeightStrong,fontSize:t,lineHeight:i},[`${c}-content`]:{color:n.colorText,fontSize:o,lineHeight:s},[`${c}-btns`]:{textAlign:"end",marginTop:n.confirmBtnsMarginTop,[`${n.antCls}-btn + ${n.antCls}-btn`]:{marginBottom:0,marginInlineStart:n.marginXS}}},[`${c}-error ${c}-body > ${n.iconCls}`]:{color:n.colorError},[`${c}-warning ${c}-body > ${n.iconCls}, + ${c}-confirm ${c}-body > ${n.iconCls}`]:{color:n.colorWarning},[`${c}-info ${c}-body > ${n.iconCls}`]:{color:n.colorInfo},[`${c}-success ${c}-body > ${n.iconCls}`]:{color:n.colorSuccess}}},TRe=Vk(["Modal","confirm"],n=>{const e=Dre(n);return[ZRe(e)]},Are,{order:-1e3});var ERe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);rv,_t(Object.values(v))),S=I.createElement(I.Fragment,null,I.createElement(Nie,null),I.createElement(kie,null)),F=n.title!==void 0&&n.title!==null,L=`${o}-body`;return I.createElement("div",{className:`${o}-body-wrapper`},I.createElement("div",{className:Me(L,{[`${L}-has-title`]:F})},d,I.createElement("div",{className:`${o}-paragraph`},F&&I.createElement("span",{className:`${o}-title`},n.title),I.createElement("div",{className:`${o}-content`},n.content))),l===void 0||typeof l=="function"?I.createElement(Aie,{value:w},I.createElement("div",{className:`${o}-btns`},typeof l=="function"?l(S,{OkBtn:kie,CancelBtn:Nie}):S)):l,I.createElement(TRe,{prefixCls:e}))}const WRe=n=>{const{close:e,zIndex:t,afterClose:i,open:r,keyboard:o,centered:s,getContainer:a,maskStyle:l,direction:u,prefixCls:c,wrapClassName:d,rootPrefixCls:h,bodyStyle:g,closable:m=!1,closeIcon:f,modalRender:b,focusTriggerAfterClose:C,onConfirm:v,styles:w}=n,S=`${c}-confirm`,F=n.width||416,L=n.style||{},D=n.mask===void 0?!0:n.mask,A=n.maskClosable===void 0?!1:n.maskClosable,M=Me(S,`${S}-${n.type}`,{[`${S}-rtl`]:u==="rtl"},n.className),[,W]=Ga(),Z=I.useMemo(()=>t!==void 0?t:W.zIndexPopupBase+$k,[t,W]);return I.createElement(kre,{prefixCls:c,className:M,wrapClassName:Me({[`${S}-centered`]:!!n.centered},d),onCancel:()=>{e==null||e({triggerCancel:!0}),v==null||v(!1)},open:r,title:"",footer:null,transitionName:Op(h||"","zoom",n.transitionName),maskTransitionName:Op(h||"","fade",n.maskTransitionName),mask:D,maskClosable:A,style:L,styles:Object.assign({body:g,mask:l},w),width:F,zIndex:Z,afterClose:i,keyboard:o,centered:s,getContainer:a,closable:m,closeIcon:f,modalRender:b,focusTriggerAfterClose:C},I.createElement(Mre,Object.assign({},n,{confirmPrefixCls:S})))},Zre=n=>{const{rootPrefixCls:e,iconPrefixCls:t,direction:i,theme:r}=n;return I.createElement(W1,{prefixCls:e,iconPrefixCls:t,direction:i,theme:r},I.createElement(WRe,Object.assign({},n)))},B1=[];let Tre="";function Ere(){return Tre}const RRe=n=>{var e,t;const{prefixCls:i,getContainer:r,direction:o}=n,s=Ute(),a=I.useContext(Tn),l=Ere()||a.getPrefixCls(),u=i||`${l}-modal`;let c=r;return c===!1&&(c=void 0),Ye.createElement(Zre,Object.assign({},n,{rootPrefixCls:l,prefixCls:u,iconPrefixCls:a.iconPrefixCls,theme:a.theme,direction:o??a.direction,locale:(t=(e=a.locale)===null||e===void 0?void 0:e.Modal)!==null&&t!==void 0?t:s,getContainer:c}))};function Rx(n){const e=JX(),t=document.createDocumentFragment();let i=Object.assign(Object.assign({},n),{close:a,open:!0}),r;function o(){for(var u=arguments.length,c=new Array(u),d=0;dg&&g.triggerCancel);n.onCancel&&h&&n.onCancel.apply(n,[()=>{}].concat(_t(c.slice(1))));for(let g=0;g{const c=e.getPrefixCls(void 0,Ere()),d=e.getIconPrefixCls(),h=e.getTheme(),g=Ye.createElement(RRe,Object.assign({},u));tM(Ye.createElement(W1,{prefixCls:c,iconPrefixCls:d,theme:h},e.holderRender?e.holderRender(g):g),t)})}function a(){for(var u=arguments.length,c=new Array(u),d=0;d{typeof n.afterClose=="function"&&n.afterClose(),o.apply(this,c)}}),i.visible&&delete i.visible,s(i)}function l(u){typeof u=="function"?i=u(i):i=Object.assign(Object.assign({},i),u),s(i)}return s(i),B1.push(a),{destroy:a,update:l}}function Wre(n){return Object.assign(Object.assign({},n),{type:"warning"})}function Rre(n){return Object.assign(Object.assign({},n),{type:"info"})}function Gre(n){return Object.assign(Object.assign({},n),{type:"success"})}function Vre(n){return Object.assign(Object.assign({},n),{type:"error"})}function Xre(n){return Object.assign(Object.assign({},n),{type:"confirm"})}function GRe(n){let{rootPrefixCls:e}=n;Tre=e}var VRe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{var t,{afterClose:i,config:r}=n,o=VRe(n,["afterClose","config"]);const[s,a]=I.useState(!0),[l,u]=I.useState(r),{direction:c,getPrefixCls:d}=I.useContext(Tn),h=d("modal"),g=d(),m=()=>{var v;i(),(v=l.afterClose)===null||v===void 0||v.call(l)},f=function(){a(!1);for(var v=arguments.length,w=new Array(v),S=0;SL&&L.triggerCancel);l.onCancel&&F&&l.onCancel.apply(l,[()=>{}].concat(_t(w.slice(1))))};I.useImperativeHandle(e,()=>({destroy:f,update:v=>{u(w=>Object.assign(Object.assign({},w),v))}}));const b=(t=l.okCancel)!==null&&t!==void 0?t:l.type==="confirm",[C]=Wp("Modal",Ym.Modal);return I.createElement(Zre,Object.assign({prefixCls:h,rootPrefixCls:g},l,{close:f,open:s,afterClose:m,okText:l.okText||(b?C==null?void 0:C.okText:C==null?void 0:C.justOkText),direction:l.direction||c,cancelText:l.cancelText||(C==null?void 0:C.cancelText)},o))},PRe=I.forwardRef(XRe);let Pre=0;const ORe=I.memo(I.forwardRef((n,e)=>{const[t,i]=JTe();return I.useImperativeHandle(e,()=>({patchElement:i}),[]),I.createElement(I.Fragment,null,t)}));function BRe(){const n=I.useRef(null),[e,t]=I.useState([]);I.useEffect(()=>{e.length&&(_t(e).forEach(s=>{s()}),t([]))},[e]);const i=I.useCallback(o=>function(a){var l;Pre+=1;const u=I.createRef();let c;const d=new Promise(b=>{c=b});let h=!1,g;const m=I.createElement(PRe,{key:`modal-${Pre}`,config:o(a),ref:u,afterClose:()=>{g==null||g()},isSilent:()=>h,onConfirm:b=>{c(b)}});return g=(l=n.current)===null||l===void 0?void 0:l.patchElement(m),g&&B1.push(g),{destroy:()=>{function b(){var C;(C=u.current)===null||C===void 0||C.destroy()}u.current?b():t(C=>[].concat(_t(C),[b]))},update:b=>{function C(){var v;(v=u.current)===null||v===void 0||v.update(b)}u.current?C():t(v=>[].concat(_t(v),[C]))},then:b=>(h=!0,d.then(b))}},[]);return[I.useMemo(()=>({info:i(Rre),success:i(Gre),error:i(Vre),warning:i(Wre),confirm:i(Xre)}),[]),I.createElement(ORe,{key:"modal-holder",ref:n})]}const zRe=n=>{const{componentCls:e,notificationMarginEdge:t,animationMaxHeight:i}=n,r=`${e}-notice`,o=new Ni("antNotificationFadeIn",{"0%":{transform:"translate3d(100%, 0, 0)",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",opacity:1}}),s=new Ni("antNotificationTopFadeIn",{"0%":{top:-i,opacity:0},"100%":{top:0,opacity:1}}),a=new Ni("antNotificationBottomFadeIn",{"0%":{bottom:n.calc(i).mul(-1).equal(),opacity:0},"100%":{bottom:0,opacity:1}}),l=new Ni("antNotificationLeftFadeIn",{"0%":{transform:"translate3d(-100%, 0, 0)",opacity:0},"100%":{transform:"translate3d(0, 0, 0)",opacity:1}});return{[e]:{[`&${e}-top, &${e}-bottom`]:{marginInline:0,[r]:{marginInline:"auto auto"}},[`&${e}-top`]:{[`${e}-fade-enter${e}-fade-enter-active, ${e}-fade-appear${e}-fade-appear-active`]:{animationName:s}},[`&${e}-bottom`]:{[`${e}-fade-enter${e}-fade-enter-active, ${e}-fade-appear${e}-fade-appear-active`]:{animationName:a}},[`&${e}-topRight, &${e}-bottomRight`]:{[`${e}-fade-enter${e}-fade-enter-active, ${e}-fade-appear${e}-fade-appear-active`]:{animationName:o}},[`&${e}-topLeft, &${e}-bottomLeft`]:{marginRight:{value:0,_skip_check_:!0},marginLeft:{value:t,_skip_check_:!0},[r]:{marginInlineEnd:"auto",marginInlineStart:0},[`${e}-fade-enter${e}-fade-enter-active, ${e}-fade-appear${e}-fade-appear-active`]:{animationName:l}}}}},YRe=["top","topLeft","topRight","bottom","bottomLeft","bottomRight"],HRe={topLeft:"left",topRight:"right",bottomLeft:"left",bottomRight:"right",top:"left",bottom:"left"},URe=(n,e)=>{const{componentCls:t}=n;return{[`${t}-${e}`]:{[`&${t}-stack > ${t}-notice-wrapper`]:{[e.startsWith("top")?"top":"bottom"]:0,[HRe[e]]:{value:0,_skip_check_:!0}}}}},JRe=n=>{const e={};for(let t=1;t ${n.componentCls}-notice`]:{opacity:0,transition:`opacity ${n.motionDurationMid}`}};return Object.assign({[`&:not(:nth-last-child(-n+${n.notificationStackLayer}))`]:{opacity:0,overflow:"hidden",color:"transparent",pointerEvents:"none"}},e)},KRe=n=>{const e={};for(let t=1;t{const{componentCls:e}=n;return Object.assign({[`${e}-stack`]:{[`& > ${e}-notice-wrapper`]:Object.assign({transition:`all ${n.motionDurationSlow}, backdrop-filter 0s`,position:"absolute"},JRe(n))},[`${e}-stack:not(${e}-stack-expanded)`]:{[`& > ${e}-notice-wrapper`]:Object.assign({},KRe(n))},[`${e}-stack${e}-stack-expanded`]:{[`& > ${e}-notice-wrapper`]:{"&:not(:nth-last-child(-n + 1))":{opacity:1,overflow:"unset",color:"inherit",pointerEvents:"auto",[`& > ${n.componentCls}-notice`]:{opacity:1}},"&:after":{content:'""',position:"absolute",height:n.margin,width:"100%",insetInline:0,bottom:n.calc(n.margin).mul(-1).equal(),background:"transparent",pointerEvents:"auto"}}}},YRe.map(t=>URe(n,t)).reduce((t,i)=>Object.assign(Object.assign({},t),i),{}))},Ore=n=>{const{iconCls:e,componentCls:t,boxShadow:i,fontSizeLG:r,notificationMarginBottom:o,borderRadiusLG:s,colorSuccess:a,colorInfo:l,colorWarning:u,colorError:c,colorTextHeading:d,notificationBg:h,notificationPadding:g,notificationMarginEdge:m,fontSize:f,lineHeight:b,width:C,notificationIconSize:v,colorText:w}=n,S=`${t}-notice`;return{position:"relative",marginBottom:o,marginInlineStart:"auto",background:h,borderRadius:s,boxShadow:i,[S]:{padding:g,width:C,maxWidth:`calc(100vw - ${Te(n.calc(m).mul(2).equal())})`,overflow:"hidden",lineHeight:b,wordWrap:"break-word"},[`${S}-message`]:{marginBottom:n.marginXS,color:d,fontSize:r,lineHeight:n.lineHeightLG},[`${S}-description`]:{fontSize:f,color:w},[`${S}-closable ${S}-message`]:{paddingInlineEnd:n.paddingLG},[`${S}-with-icon ${S}-message`]:{marginBottom:n.marginXS,marginInlineStart:n.calc(n.marginSM).add(v).equal(),fontSize:r},[`${S}-with-icon ${S}-description`]:{marginInlineStart:n.calc(n.marginSM).add(v).equal(),fontSize:f},[`${S}-icon`]:{position:"absolute",fontSize:v,lineHeight:1,[`&-success${e}`]:{color:a},[`&-info${e}`]:{color:l},[`&-warning${e}`]:{color:u},[`&-error${e}`]:{color:c}},[`${S}-close`]:Object.assign({position:"absolute",top:n.notificationPaddingVertical,insetInlineEnd:n.notificationPaddingHorizontal,color:n.colorIcon,outline:"none",width:n.notificationCloseButtonSize,height:n.notificationCloseButtonSize,borderRadius:n.borderRadiusSM,transition:`background-color ${n.motionDurationMid}, color ${n.motionDurationMid}`,display:"flex",alignItems:"center",justifyContent:"center","&:hover":{color:n.colorIconHover,backgroundColor:n.colorBgTextHover},"&:active":{backgroundColor:n.colorBgTextActive}},T1(n)),[`${S}-btn`]:{float:"right",marginTop:n.marginSM}}},QRe=n=>{const{componentCls:e,notificationMarginBottom:t,notificationMarginEdge:i,motionDurationMid:r,motionEaseInOut:o}=n,s=`${e}-notice`,a=new Ni("antNotificationFadeOut",{"0%":{maxHeight:n.animationMaxHeight,marginBottom:t},"100%":{maxHeight:0,marginBottom:0,paddingTop:0,paddingBottom:0,opacity:0}});return[{[e]:Object.assign(Object.assign({},oo(n)),{position:"fixed",zIndex:n.zIndexPopup,marginRight:{value:i,_skip_check_:!0},[`${e}-hook-holder`]:{position:"relative"},[`${e}-fade-appear-prepare`]:{opacity:"0 !important"},[`${e}-fade-enter, ${e}-fade-appear`]:{animationDuration:n.motionDurationMid,animationTimingFunction:o,animationFillMode:"both",opacity:0,animationPlayState:"paused"},[`${e}-fade-leave`]:{animationTimingFunction:o,animationFillMode:"both",animationDuration:r,animationPlayState:"paused"},[`${e}-fade-enter${e}-fade-enter-active, ${e}-fade-appear${e}-fade-appear-active`]:{animationPlayState:"running"},[`${e}-fade-leave${e}-fade-leave-active`]:{animationName:a,animationPlayState:"running"},"&-rtl":{direction:"rtl",[`${s}-btn`]:{float:"left"}}})},{[e]:{[`${s}-wrapper`]:Object.assign({},Ore(n))}}]},Bre=n=>({zIndexPopup:n.zIndexPopupBase+$k+50,width:384}),zre=n=>{const e=n.paddingMD,t=n.paddingLG;return Bi(n,{notificationBg:n.colorBgElevated,notificationPaddingVertical:e,notificationPaddingHorizontal:t,notificationIconSize:n.calc(n.fontSizeLG).mul(n.lineHeightLG).equal(),notificationCloseButtonSize:n.calc(n.controlHeightLG).mul(.55).equal(),notificationMarginBottom:n.margin,notificationPadding:`${Te(n.paddingMD)} ${Te(n.paddingContentHorizontalLG)}`,notificationMarginEdge:n.marginLG,animationMaxHeight:150,notificationStackLayer:3})},Yre=Oo("Notification",n=>{const e=zre(n);return[QRe(e),zRe(e),jRe(e)]},Bre),$Re=Vk(["Notification","PurePanel"],n=>{const e=`${n.componentCls}-notice`,t=zre(n);return{[`${e}-pure-panel`]:Object.assign(Object.assign({},Ore(t)),{width:t.width,maxWidth:`calc(100vw - ${Te(n.calc(t.notificationMarginEdge).mul(2).equal())})`,margin:0})}},Bre);var qRe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{const{prefixCls:e,icon:t,type:i,message:r,description:o,btn:s,role:a="alert"}=n;let l=null;return t?l=I.createElement("span",{className:`${e}-icon`},t):i&&(l=I.createElement(e3e[i]||null,{className:Me(`${e}-icon`,`${e}-icon-${i}`)})),I.createElement("div",{className:Me({[`${e}-with-icon`]:l}),role:a},l,I.createElement("div",{className:`${e}-message`},r),I.createElement("div",{className:`${e}-description`},o),s&&I.createElement("div",{className:`${e}-btn`},s))},t3e=n=>{const{prefixCls:e,className:t,icon:i,type:r,message:o,description:s,btn:a,closable:l=!0,closeIcon:u,className:c}=n,d=qRe(n,["prefixCls","className","icon","type","message","description","btn","closable","closeIcon","className"]),{getPrefixCls:h}=I.useContext(Tn),g=e||h("notification"),m=`${g}-notice`,f=ys(g),[b,C,v]=Yre(g,f);return b(I.createElement("div",{className:Me(`${m}-pure-panel`,C,t,v,f)},I.createElement($Re,{prefixCls:g}),I.createElement(qX,Object.assign({},d,{prefixCls:g,eventKey:"pure",duration:null,closable:l,className:Me({notificationClassName:c}),closeIcon:W4(g,u),content:I.createElement(Hre,{prefixCls:m,icon:i,type:r,message:o,description:s,btn:a})}))))};function n3e(n,e,t){let i;switch(n){case"top":i={left:"50%",transform:"translateX(-50%)",right:"auto",top:e,bottom:"auto"};break;case"topLeft":i={left:0,top:e,bottom:"auto"};break;case"topRight":i={right:0,top:e,bottom:"auto"};break;case"bottom":i={left:"50%",transform:"translateX(-50%)",right:"auto",top:"auto",bottom:t};break;case"bottomLeft":i={left:0,top:"auto",bottom:t};break;default:i={right:0,top:"auto",bottom:t};break}return i}function i3e(n){return{motionName:`${n}-fade`}}var r3e=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{let{children:e,prefixCls:t}=n;const i=ys(t),[r,o,s]=Yre(t,i);return r(Ye.createElement($ne,{classNames:{list:Me(o,s,i)}},e))},l3e=(n,e)=>{let{prefixCls:t,key:i}=e;return Ye.createElement(a3e,{prefixCls:t,key:i},n)},u3e=Ye.forwardRef((n,e)=>{const{top:t,bottom:i,prefixCls:r,getContainer:o,maxCount:s,rtl:a,onAllRemoved:l,stack:u,duration:c}=n,{getPrefixCls:d,getPopupContainer:h,notification:g,direction:m}=I.useContext(Tn),[,f]=Ga(),b=r||d("notification"),C=L=>n3e(L,t??Ure,i??Ure),v=()=>Me({[`${b}-rtl`]:a??m==="rtl"}),w=()=>i3e(b),[S,F]=iie({prefixCls:b,style:C,className:v,motion:w,closable:!0,closeIcon:W4(b),duration:c??o3e,getContainer:()=>(o==null?void 0:o())||(h==null?void 0:h())||document.body,maxCount:s,onAllRemoved:l,renderNotifications:l3e,stack:u===!1?!1:{threshold:typeof u=="object"?u==null?void 0:u.threshold:void 0,offset:8,gap:f.margin}});return Ye.useImperativeHandle(e,()=>Object.assign(Object.assign({},S),{prefixCls:b,notification:g})),F});function Jre(n){const e=Ye.useRef(null);return Dy(),[Ye.useMemo(()=>{const i=a=>{var l;if(!e.current)return;const{open:u,prefixCls:c,notification:d}=e.current,h=`${c}-notice`,{message:g,description:m,icon:f,type:b,btn:C,className:v,style:w,role:S="alert",closeIcon:F,closable:L}=a,D=r3e(a,["message","description","icon","type","btn","className","style","role","closeIcon","closable"]),A=W4(h,typeof F<"u"?F:d==null?void 0:d.closeIcon);return u(Object.assign(Object.assign({placement:(l=n==null?void 0:n.placement)!==null&&l!==void 0?l:s3e},D),{content:Ye.createElement(Hre,{prefixCls:h,icon:f,type:b,message:g,description:m,btn:C,role:S}),className:Me(b&&`${h}-${b}`,v,d==null?void 0:d.className),style:Object.assign(Object.assign({},d==null?void 0:d.style),w),closeIcon:A,closable:L??!!A}))},o={open:i,destroy:a=>{var l,u;a!==void 0?(l=e.current)===null||l===void 0||l.close(a):(u=e.current)===null||u===void 0||u.destroy()}};return["success","info","warning","error"].forEach(a=>{o[a]=l=>i(Object.assign(Object.assign({},l),{type:a}))}),o},[]),Ye.createElement(u3e,Object.assign({key:"notification-holder"},n,{ref:e}))]}function c3e(n){return Jre(n)}const Kre=Ye.createContext({});function jre(n){return e=>I.createElement(W1,{theme:{token:{motion:!1,zIndexPopupBase:0}}},I.createElement(n,Object.assign({},e)))}const hM=(n,e,t,i)=>jre(o=>{const{prefixCls:s,style:a}=o,l=I.useRef(null),[u,c]=I.useState(0),[d,h]=I.useState(0),[g,m]=Ur(!1,{value:o.open}),{getPrefixCls:f}=I.useContext(Tn),b=f(e||"select",s);I.useEffect(()=>{if(m(!0),typeof ResizeObserver<"u"){const w=new ResizeObserver(F=>{const L=F[0].target;c(L.offsetHeight+8),h(L.offsetWidth)}),S=setInterval(()=>{var F;const L=t?`.${t(b)}`:`.${b}-dropdown`,D=(F=l.current)===null||F===void 0?void 0:F.querySelector(L);D&&(clearInterval(S),w.observe(D))},10);return()=>{clearInterval(S),w.disconnect()}}},[]);let C=Object.assign(Object.assign({},o),{style:Object.assign(Object.assign({},a),{margin:0}),open:g,visible:g,getPopupContainer:()=>l.current});i&&(C=i(C));const v={paddingBottom:u,position:"relative",minWidth:d};return I.createElement("div",{ref:l,style:v},I.createElement(n,Object.assign({},C)))}),gM=function(){if(typeof navigator>"u"||typeof window>"u")return!1;var n=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(n)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw-(n|u)|c55\/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|-[a-w])|libw|lynx|m1-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)|sdk\/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-|your|zeto|zte-/i.test(n==null?void 0:n.substr(0,4))};var mM=function(e){var t=e.className,i=e.customizeIcon,r=e.customizeIconProps,o=e.children,s=e.onMouseDown,a=e.onClick,l=typeof i=="function"?i(r):i;return I.createElement("span",{className:t,onMouseDown:function(c){c.preventDefault(),s==null||s(c)},style:{userSelect:"none",WebkitUserSelect:"none"},unselectable:"on",onClick:a,"aria-hidden":!0},l!==void 0?l:I.createElement("span",{className:Me(t.split(/\s+/).map(function(u){return"".concat(u,"-icon")}))},o))},d3e=function(e,t,i,r,o){var s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!1,a=arguments.length>6?arguments[6]:void 0,l=arguments.length>7?arguments[7]:void 0,u=Ye.useMemo(function(){if(Vn(r)==="object")return r.clearIcon;if(o)return o},[r,o]),c=Ye.useMemo(function(){return!!(!s&&r&&(i.length||a)&&!(l==="combobox"&&a===""))},[r,s,i.length,a,l]);return{allowClear:c,clearIcon:Ye.createElement(mM,{className:"".concat(e,"-clear"),onMouseDown:t,customizeIcon:u},"×")}},Qre=I.createContext(null);function h3e(){return I.useContext(Qre)}function g3e(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:10,e=I.useState(!1),t=we(e,2),i=t[0],r=t[1],o=I.useRef(null),s=function(){window.clearTimeout(o.current)};I.useEffect(function(){return s},[]);var a=function(u,c){s(),o.current=window.setTimeout(function(){r(u),c&&c()},n)};return[i,a,s]}function $re(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:250,e=I.useRef(null),t=I.useRef(null);I.useEffect(function(){return function(){window.clearTimeout(t.current)}},[]);function i(r){(r||e.current===null)&&(e.current=r),window.clearTimeout(t.current),t.current=window.setTimeout(function(){e.current=null},n)}return[function(){return e.current},i]}function m3e(n,e,t,i){var r=I.useRef(null);r.current={open:e,triggerOpen:t,customizedTrigger:i},I.useEffect(function(){function o(s){var a;if(!((a=r.current)!==null&&a!==void 0&&a.customizedTrigger)){var l=s.target;l.shadowRoot&&s.composed&&(l=s.composedPath()[0]||l),r.current.open&&n().filter(function(u){return u}).every(function(u){return!u.contains(l)&&u!==l})&&r.current.triggerOpen(!1)}}return window.addEventListener("mousedown",o),function(){return window.removeEventListener("mousedown",o)}},[])}function f3e(n){return![At.ESC,At.SHIFT,At.BACKSPACE,At.TAB,At.WIN_KEY,At.ALT,At.META,At.WIN_KEY_RIGHT,At.CTRL,At.SEMICOLON,At.EQUALS,At.CAPS_LOCK,At.CONTEXT_MENU,At.F1,At.F2,At.F3,At.F4,At.F5,At.F6,At.F7,At.F8,At.F9,At.F10,At.F11,At.F12].includes(n)}var p3e=["prefixCls","invalidate","item","renderItem","responsive","responsiveDisabled","registerSize","itemKey","className","style","children","display","order","component"],Py=void 0;function b3e(n,e){var t=n.prefixCls,i=n.invalidate,r=n.item,o=n.renderItem,s=n.responsive,a=n.responsiveDisabled,l=n.registerSize,u=n.itemKey,c=n.className,d=n.style,h=n.children,g=n.display,m=n.order,f=n.component,b=f===void 0?"div":f,C=zn(n,p3e),v=s&&!g;function w(A){l(u,A)}I.useEffect(function(){return function(){w(null)}},[]);var S=o&&r!==Py?o(r):h,F;i||(F={opacity:v?0:1,height:v?0:Py,overflowY:v?"hidden":Py,order:s?m:Py,pointerEvents:v?"none":Py,position:v?"absolute":Py});var L={};v&&(L["aria-hidden"]=!0);var D=I.createElement(b,pt({className:Me(!i&&t,c),style:Se(Se({},F),d)},L,C,{ref:e}),S);return s&&(D=I.createElement(ac,{onResize:function(M){var W=M.offsetWidth;w(W)},disabled:a},D)),D}var Gx=I.forwardRef(b3e);Gx.displayName="Item";function C3e(n){if(typeof MessageChannel>"u")xi(n);else{var e=new MessageChannel;e.port1.onmessage=function(){return n()},e.port2.postMessage(void 0)}}function v3e(){var n=I.useRef(null),e=function(i){n.current||(n.current=[],C3e(function(){zd.unstable_batchedUpdates(function(){n.current.forEach(function(r){r()}),n.current=null})})),n.current.push(i)};return e}function Vx(n,e){var t=I.useState(e),i=we(t,2),r=i[0],o=i[1],s=Ki(function(a){n(function(){o(a)})});return[r,s]}var fM=Ye.createContext(null),y3e=["component"],I3e=["className"],w3e=["className"],S3e=function(e,t){var i=I.useContext(fM);if(!i){var r=e.component,o=r===void 0?"div":r,s=zn(e,y3e);return I.createElement(o,pt({},s,{ref:t}))}var a=i.className,l=zn(i,I3e),u=e.className,c=zn(e,w3e);return I.createElement(fM.Provider,{value:null},I.createElement(Gx,pt({ref:t,className:Me(a,u)},l,c)))},qre=I.forwardRef(S3e);qre.displayName="RawItem";var x3e=["prefixCls","data","renderItem","renderRawItem","itemKey","itemWidth","ssr","style","className","maxCount","renderRest","renderRawRest","suffix","component","itemComponent","onVisibleChange"],eoe="responsive",toe="invalidate";function L3e(n){return"+ ".concat(n.length," ...")}function F3e(n,e){var t=n.prefixCls,i=t===void 0?"rc-overflow":t,r=n.data,o=r===void 0?[]:r,s=n.renderItem,a=n.renderRawItem,l=n.itemKey,u=n.itemWidth,c=u===void 0?10:u,d=n.ssr,h=n.style,g=n.className,m=n.maxCount,f=n.renderRest,b=n.renderRawRest,C=n.suffix,v=n.component,w=v===void 0?"div":v,S=n.itemComponent,F=n.onVisibleChange,L=zn(n,x3e),D=d==="full",A=v3e(),M=Vx(A,null),W=we(M,2),Z=W[0],T=W[1],E=Z||0,V=Vx(A,new Map),z=we(V,2),O=z[0],P=z[1],B=Vx(A,0),Y=we(B,2),k=Y[0],X=Y[1],U=Vx(A,0),R=we(U,2),ee=R[0],oe=R[1],se=Vx(A,0),ue=we(se,2),ce=ue[0],ye=ue[1],fe=I.useState(null),le=we(fe,2),Ze=le[0],ke=le[1],Ne=I.useState(null),ze=we(Ne,2),Ke=ze[0],ut=ze[1],Ct=I.useMemo(function(){return Ke===null&&D?Number.MAX_SAFE_INTEGER:Ke||0},[Ke,Z]),ot=I.useState(!1),he=we(ot,2),de=he[0],ge=he[1],j="".concat(i,"-item"),Q=Math.max(k,ee),q=m===eoe,te=o.length&&q,Ce=m===toe,Le=te||typeof m=="number"&&o.length>m,Ae=I.useMemo(function(){var qe=o;return te?Z===null&&D?qe=o:qe=o.slice(0,Math.min(o.length,E/c)):typeof m=="number"&&(qe=o.slice(0,m)),qe},[o,c,Z,m,te]),Oe=I.useMemo(function(){return te?o.slice(Ct+1):o.slice(Ae.length)},[o,Ae,te,Ct]),tt=I.useCallback(function(qe,nt){var wt;return typeof l=="function"?l(qe):(wt=l&&(qe==null?void 0:qe[l]))!==null&&wt!==void 0?wt:nt},[l]),We=I.useCallback(s||function(qe){return qe},[s]);function ht(qe,nt,wt){Ke===qe&&(nt===void 0||nt===Ze)||(ut(qe),wt||(ge(qeE){ht(St-1,qe-et-ce+ee);break}}C&&Kt(0)+ce>E&&ke(null)}},[E,O,ee,ce,tt,Ae]);var Wt=de&&!!Oe.length,Ut={};Ze!==null&&te&&(Ut={position:"absolute",left:Ze,top:0});var Nn={prefixCls:j,responsive:te,component:S,invalidate:Ce},di=a?function(qe,nt){var wt=tt(qe,nt);return I.createElement(fM.Provider,{key:wt,value:Se(Se({},Nn),{},{order:nt,item:qe,itemKey:wt,registerSize:Re,display:nt<=Ct})},a(qe,nt))}:function(qe,nt){var wt=tt(qe,nt);return I.createElement(Gx,pt({},Nn,{order:nt,key:wt,item:qe,renderItem:We,itemKey:wt,registerSize:Re,display:nt<=Ct}))},pe,xe={order:Wt?Ct:Number.MAX_SAFE_INTEGER,className:"".concat(j,"-rest"),registerSize:dt,display:Wt};if(b)b&&(pe=I.createElement(fM.Provider,{value:Se(Se({},Nn),xe)},b(Oe)));else{var _e=f||L3e;pe=I.createElement(Gx,pt({},Nn,xe),typeof _e=="function"?_e(Oe):_e)}var Pe=I.createElement(w,pt({className:Me(!Ce&&i,g),style:h,ref:e},L),Ae.map(di),Le?pe:null,C&&I.createElement(Gx,pt({},Nn,{responsive:q,responsiveDisabled:!te,order:Ct,className:"".concat(j,"-suffix"),registerSize:yt,display:!0,style:Ut}),C));return q&&(Pe=I.createElement(ac,{onResize:He,disabled:!te},Pe)),Pe}var Qd=I.forwardRef(F3e);Qd.displayName="Overflow",Qd.Item=qre,Qd.RESPONSIVE=eoe,Qd.INVALIDATE=toe;var _3e=function(e,t){var i,r=e.prefixCls,o=e.id,s=e.inputElement,a=e.disabled,l=e.tabIndex,u=e.autoFocus,c=e.autoComplete,d=e.editable,h=e.activeDescendantId,g=e.value,m=e.maxLength,f=e.onKeyDown,b=e.onMouseDown,C=e.onChange,v=e.onPaste,w=e.onCompositionStart,S=e.onCompositionEnd,F=e.open,L=e.attrs,D=s||I.createElement("input",null),A=D,M=A.ref,W=A.props,Z=W.onKeyDown,T=W.onChange,E=W.onMouseDown,V=W.onCompositionStart,z=W.onCompositionEnd,O=W.style;return"maxLength"in D.props,D=I.cloneElement(D,Se(Se(Se({type:"search"},W),{},{id:o,ref:Su(t,M),disabled:a,tabIndex:l,autoComplete:c||"off",autoFocus:u,className:Me("".concat(r,"-selection-search-input"),(i=D)===null||i===void 0||(i=i.props)===null||i===void 0?void 0:i.className),role:"combobox","aria-expanded":F||!1,"aria-haspopup":"listbox","aria-owns":"".concat(o,"_list"),"aria-autocomplete":"list","aria-controls":"".concat(o,"_list"),"aria-activedescendant":F?h:void 0},L),{},{value:d?g:"",maxLength:m,readOnly:!d,unselectable:d?null:"on",style:Se(Se({},O),{},{opacity:d?null:0}),onKeyDown:function(B){f(B),Z&&Z(B)},onMouseDown:function(B){b(B),E&&E(B)},onChange:function(B){C(B),T&&T(B)},onCompositionStart:function(B){w(B),V&&V(B)},onCompositionEnd:function(B){S(B),z&&z(B)},onPaste:v})),D},noe=I.forwardRef(_3e);function ioe(n){return Array.isArray(n)?n:n!==void 0?[n]:[]}var D3e=typeof window<"u"&&window.document&&window.document.documentElement,A3e=D3e;function N3e(n){return n!=null}function k3e(n){return!n&&n!==0}function roe(n){return["string","number"].includes(Vn(n))}function ooe(n){var e=void 0;return n&&(roe(n.title)?e=n.title.toString():roe(n.label)&&(e=n.label.toString())),e}function M3e(n,e){A3e?I.useLayoutEffect(n,e):I.useEffect(n,e)}function Z3e(n){var e;return(e=n.key)!==null&&e!==void 0?e:n.value}var soe=function(e){e.preventDefault(),e.stopPropagation()},T3e=function(e){var t=e.id,i=e.prefixCls,r=e.values,o=e.open,s=e.searchValue,a=e.autoClearSearchValue,l=e.inputRef,u=e.placeholder,c=e.disabled,d=e.mode,h=e.showSearch,g=e.autoFocus,m=e.autoComplete,f=e.activeDescendantId,b=e.tabIndex,C=e.removeIcon,v=e.maxTagCount,w=e.maxTagTextLength,S=e.maxTagPlaceholder,F=S===void 0?function(ke){return"+ ".concat(ke.length," ...")}:S,L=e.tagRender,D=e.onToggleOpen,A=e.onRemove,M=e.onInputChange,W=e.onInputPaste,Z=e.onInputKeyDown,T=e.onInputMouseDown,E=e.onInputCompositionStart,V=e.onInputCompositionEnd,z=I.useRef(null),O=I.useState(0),P=we(O,2),B=P[0],Y=P[1],k=I.useState(!1),X=we(k,2),U=X[0],R=X[1],ee="".concat(i,"-selection"),oe=o||d==="multiple"&&a===!1||d==="tags"?s:"",se=d==="tags"||d==="multiple"&&a===!1||h&&(o||U);M3e(function(){Y(z.current.scrollWidth)},[oe]);var ue=function(Ne,ze,Ke,ut,Ct){return I.createElement("span",{title:ooe(Ne),className:Me("".concat(ee,"-item"),me({},"".concat(ee,"-item-disabled"),Ke))},I.createElement("span",{className:"".concat(ee,"-item-content")},ze),ut&&I.createElement(mM,{className:"".concat(ee,"-item-remove"),onMouseDown:soe,onClick:Ct,customizeIcon:C},"×"))},ce=function(Ne,ze,Ke,ut,Ct){var ot=function(de){soe(de),D(!o)};return I.createElement("span",{onMouseDown:ot},L({label:ze,value:Ne,disabled:Ke,closable:ut,onClose:Ct}))},ye=function(Ne){var ze=Ne.disabled,Ke=Ne.label,ut=Ne.value,Ct=!c&&!ze,ot=Ke;if(typeof w=="number"&&(typeof Ke=="string"||typeof Ke=="number")){var he=String(ot);he.length>w&&(ot="".concat(he.slice(0,w),"..."))}var de=function(j){j&&j.stopPropagation(),A(Ne)};return typeof L=="function"?ce(ut,ot,ze,Ct,de):ue(Ne,ot,ze,Ct,de)},fe=function(Ne){var ze=typeof F=="function"?F(Ne):F;return ue({title:ze},ze,!1)},le=I.createElement("div",{className:"".concat(ee,"-search"),style:{width:B},onFocus:function(){R(!0)},onBlur:function(){R(!1)}},I.createElement(noe,{ref:l,open:o,prefixCls:i,id:t,inputElement:null,disabled:c,autoFocus:g,autoComplete:m,editable:se,activeDescendantId:f,value:oe,onKeyDown:Z,onMouseDown:T,onChange:M,onPaste:W,onCompositionStart:E,onCompositionEnd:V,tabIndex:b,attrs:xu(e,!0)}),I.createElement("span",{ref:z,className:"".concat(ee,"-search-mirror"),"aria-hidden":!0},oe," ")),Ze=I.createElement(Qd,{prefixCls:"".concat(ee,"-overflow"),data:r,renderItem:ye,renderRest:fe,suffix:le,itemKey:Z3e,maxCount:v});return I.createElement(I.Fragment,null,Ze,!r.length&&!oe&&I.createElement("span",{className:"".concat(ee,"-placeholder")},u))},E3e=function(e){var t=e.inputElement,i=e.prefixCls,r=e.id,o=e.inputRef,s=e.disabled,a=e.autoFocus,l=e.autoComplete,u=e.activeDescendantId,c=e.mode,d=e.open,h=e.values,g=e.placeholder,m=e.tabIndex,f=e.showSearch,b=e.searchValue,C=e.activeValue,v=e.maxLength,w=e.onInputKeyDown,S=e.onInputMouseDown,F=e.onInputChange,L=e.onInputPaste,D=e.onInputCompositionStart,A=e.onInputCompositionEnd,M=e.title,W=I.useState(!1),Z=we(W,2),T=Z[0],E=Z[1],V=c==="combobox",z=V||f,O=h[0],P=b||"";V&&C&&!T&&(P=C),I.useEffect(function(){V&&E(!1)},[V,C]);var B=c!=="combobox"&&!d&&!f?!1:!!P,Y=M===void 0?ooe(O):M,k=I.useMemo(function(){return O?null:I.createElement("span",{className:"".concat(i,"-selection-placeholder"),style:B?{visibility:"hidden"}:void 0},g)},[O,B,g,i]);return I.createElement(I.Fragment,null,I.createElement("span",{className:"".concat(i,"-selection-search")},I.createElement(noe,{ref:o,prefixCls:i,id:r,open:d,inputElement:t,disabled:s,autoFocus:a,autoComplete:l,editable:z,activeDescendantId:u,value:P,onKeyDown:w,onMouseDown:S,onChange:function(U){E(!0),F(U)},onPaste:L,onCompositionStart:D,onCompositionEnd:A,tabIndex:m,attrs:xu(e,!0),maxLength:V?v:void 0})),!V&&O?I.createElement("span",{className:"".concat(i,"-selection-item"),title:Y,style:B?{visibility:"hidden"}:void 0},O.label):null,k)},W3e=function(e,t){var i=I.useRef(null),r=I.useRef(!1),o=e.prefixCls,s=e.open,a=e.mode,l=e.showSearch,u=e.tokenWithEnter,c=e.autoClearSearchValue,d=e.onSearch,h=e.onSearchSubmit,g=e.onToggleOpen,m=e.onInputKeyDown,f=e.domRef;I.useImperativeHandle(t,function(){return{focus:function(P){i.current.focus(P)},blur:function(){i.current.blur()}}});var b=$re(0),C=we(b,2),v=C[0],w=C[1],S=function(P){var B=P.which;(B===At.UP||B===At.DOWN)&&P.preventDefault(),m&&m(P),B===At.ENTER&&a==="tags"&&!r.current&&!s&&(h==null||h(P.target.value)),f3e(B)&&g(!0)},F=function(){w(!0)},L=I.useRef(null),D=function(P){d(P,!0,r.current)!==!1&&g(!0)},A=function(){r.current=!0},M=function(P){r.current=!1,a!=="combobox"&&D(P.target.value)},W=function(P){var B=P.target.value;if(u&&L.current&&/[\r\n]/.test(L.current)){var Y=L.current.replace(/[\r\n]+$/,"").replace(/\r\n/g," ").replace(/[\r\n]/g," ");B=B.replace(Y,L.current)}L.current=null,D(B)},Z=function(P){var B=P.clipboardData,Y=B==null?void 0:B.getData("text");L.current=Y||""},T=function(P){var B=P.target;if(B!==i.current){var Y=document.body.style.msTouchAction!==void 0;Y?setTimeout(function(){i.current.focus()}):i.current.focus()}},E=function(P){var B=v();P.target!==i.current&&!B&&a!=="combobox"&&P.preventDefault(),(a!=="combobox"&&(!l||!B)||!s)&&(s&&c!==!1&&d("",!0,!1),g())},V={inputRef:i,onInputKeyDown:S,onInputMouseDown:F,onInputChange:W,onInputPaste:Z,onInputCompositionStart:A,onInputCompositionEnd:M},z=a==="multiple"||a==="tags"?I.createElement(T3e,pt({},e,V)):I.createElement(E3e,pt({},e,V));return I.createElement("div",{ref:f,className:"".concat(o,"-selector"),onClick:T,onMouseDown:E},z)},R3e=I.forwardRef(W3e);function G3e(n){var e=n.prefixCls,t=n.align,i=n.arrow,r=n.arrowPos,o=i||{},s=o.className,a=o.content,l=r.x,u=l===void 0?0:l,c=r.y,d=c===void 0?0:c,h=I.useRef();if(!t||!t.points)return null;var g={position:"absolute"};if(t.autoArrow!==!1){var m=t.points[0],f=t.points[1],b=m[0],C=m[1],v=f[0],w=f[1];b===v||!["t","b"].includes(b)?g.top=d:b==="t"?g.top=0:g.bottom=0,C===w||!["l","r"].includes(C)?g.left=u:C==="l"?g.left=0:g.right=0}return I.createElement("div",{ref:h,className:Me("".concat(e,"-arrow"),s),style:g},a)}function V3e(n){var e=n.prefixCls,t=n.open,i=n.zIndex,r=n.mask,o=n.motion;return r?I.createElement(Qc,pt({},o,{motionAppear:!0,visible:t,removeOnLeave:!0}),function(s){var a=s.className;return I.createElement("div",{style:{zIndex:i},className:Me("".concat(e,"-mask"),a)})}):null}var X3e=I.memo(function(n){var e=n.children;return e},function(n,e){return e.cache}),P3e=I.forwardRef(function(n,e){var t=n.popup,i=n.className,r=n.prefixCls,o=n.style,s=n.target,a=n.onVisibleChanged,l=n.open,u=n.keepDom,c=n.fresh,d=n.onClick,h=n.mask,g=n.arrow,m=n.arrowPos,f=n.align,b=n.motion,C=n.maskMotion,v=n.forceRender,w=n.getPopupContainer,S=n.autoDestroy,F=n.portal,L=n.zIndex,D=n.onMouseEnter,A=n.onMouseLeave,M=n.onPointerEnter,W=n.ready,Z=n.offsetX,T=n.offsetY,E=n.offsetR,V=n.offsetB,z=n.onAlign,O=n.onPrepare,P=n.stretch,B=n.targetWidth,Y=n.targetHeight,k=typeof t=="function"?t():t,X=l||u,U=(w==null?void 0:w.length)>0,R=I.useState(!w||!U),ee=we(R,2),oe=ee[0],se=ee[1];if(lr(function(){!oe&&U&&s&&se(!0)},[oe,U,s]),!oe)return null;var ue="auto",ce={left:"-1000vw",top:"-1000vh",right:ue,bottom:ue};if(W||!l){var ye,fe=f.points,le=f.dynamicInset||((ye=f._experimental)===null||ye===void 0?void 0:ye.dynamicInset),Ze=le&&fe[0][1]==="r",ke=le&&fe[0][0]==="b";Ze?(ce.right=E,ce.left=ue):(ce.left=Z,ce.right=ue),ke?(ce.bottom=V,ce.top=ue):(ce.top=T,ce.bottom=ue)}var Ne={};return P&&(P.includes("height")&&Y?Ne.height=Y:P.includes("minHeight")&&Y&&(Ne.minHeight=Y),P.includes("width")&&B?Ne.width=B:P.includes("minWidth")&&B&&(Ne.minWidth=B)),l||(Ne.pointerEvents="none"),I.createElement(F,{open:v||X,getContainer:w&&function(){return w(s)},autoDestroy:S},I.createElement(V3e,{prefixCls:r,open:l,zIndex:L,mask:h,motion:C}),I.createElement(ac,{onResize:z,disabled:!l},function(ze){return I.createElement(Qc,pt({motionAppear:!0,motionEnter:!0,motionLeave:!0,removeOnLeave:!1,forceRender:v,leavedClassName:"".concat(r,"-hidden")},b,{onAppearPrepare:O,onEnterPrepare:O,visible:l,onVisibleChanged:function(ut){var Ct;b==null||(Ct=b.onVisibleChanged)===null||Ct===void 0||Ct.call(b,ut),a(ut)}}),function(Ke,ut){var Ct=Ke.className,ot=Ke.style,he=Me(r,Ct,i);return I.createElement("div",{ref:Su(ze,e,ut),className:he,style:Se(Se(Se(Se({"--arrow-x":"".concat(m.x||0,"px"),"--arrow-y":"".concat(m.y||0,"px")},ce),Ne),ot),{},{boxSizing:"border-box",zIndex:L},o),onMouseEnter:D,onMouseLeave:A,onPointerEnter:M,onClick:d},g&&I.createElement(G3e,{prefixCls:r,arrow:g,arrowPos:m,align:f}),I.createElement(X3e,{cache:!l&&!c},k))})}))}),O3e=I.forwardRef(function(n,e){var t=n.children,i=n.getTriggerDOMNode,r=Pm(t),o=I.useCallback(function(a){jV(e,i?i(a):a)},[i]),s=Zp(o,t.ref);return r?I.cloneElement(t,{ref:s}):t}),aoe=I.createContext(null);function loe(n){return n?Array.isArray(n)?n:[n]:[]}function B3e(n,e,t,i){return I.useMemo(function(){var r=loe(t??e),o=loe(i??e),s=new Set(r),a=new Set(o);return n&&(s.has("hover")&&(s.delete("hover"),s.add("click")),a.has("hover")&&(a.delete("hover"),a.add("click"))),[s,a]},[n,e,t,i])}function z3e(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],t=arguments.length>2?arguments[2]:void 0;return t?n[0]===e[0]:n[0]===e[0]&&n[1]===e[1]}function Y3e(n,e,t,i){for(var r=t.points,o=Object.keys(n),s=0;s1&&arguments[1]!==void 0?arguments[1]:1;return Number.isNaN(n)?e:n}function Ox(n){return Px(parseFloat(n),0)}function coe(n,e){var t=Se({},n);return(e||[]).forEach(function(i){if(!(i instanceof HTMLBodyElement||i instanceof HTMLHtmlElement)){var r=Xx(i).getComputedStyle(i),o=r.overflow,s=r.overflowClipMargin,a=r.borderTopWidth,l=r.borderBottomWidth,u=r.borderLeftWidth,c=r.borderRightWidth,d=i.getBoundingClientRect(),h=i.offsetHeight,g=i.clientHeight,m=i.offsetWidth,f=i.clientWidth,b=Ox(a),C=Ox(l),v=Ox(u),w=Ox(c),S=Px(Math.round(d.width/m*1e3)/1e3),F=Px(Math.round(d.height/h*1e3)/1e3),L=(m-f-v-w)*S,D=(h-g-b-C)*F,A=b*F,M=C*F,W=v*S,Z=w*S,T=0,E=0;if(o==="clip"){var V=Ox(s);T=V*S,E=V*F}var z=d.x+W-T,O=d.y+A-E,P=z+d.width+2*T-W-Z-L,B=O+d.height+2*E-A-M-D;t.left=Math.max(t.left,z),t.top=Math.max(t.top,O),t.right=Math.min(t.right,P),t.bottom=Math.min(t.bottom,B)}}),t}function doe(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t="".concat(e),i=t.match(/^(.*)\%$/);return i?n*(parseFloat(i[1])/100):parseFloat(t)}function hoe(n,e){var t=e||[],i=we(t,2),r=i[0],o=i[1];return[doe(n.width,r),doe(n.height,o)]}function goe(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";return[n[0],n[1]]}function Oy(n,e){var t=e[0],i=e[1],r,o;return t==="t"?o=n.y:t==="b"?o=n.y+n.height:o=n.y+n.height/2,i==="l"?r=n.x:i==="r"?r=n.x+n.width:r=n.x+n.width/2,{x:r,y:o}}function zp(n,e){var t={t:"b",b:"t",l:"r",r:"l"};return n.map(function(i,r){return r===e?t[i]||"c":i}).join("")}function H3e(n,e,t,i,r,o,s){var a=I.useState({ready:!1,offsetX:0,offsetY:0,offsetR:0,offsetB:0,arrowX:0,arrowY:0,scaleX:1,scaleY:1,align:r[i]||{}}),l=we(a,2),u=l[0],c=l[1],d=I.useRef(0),h=I.useMemo(function(){return e?R4(e):[]},[e]),g=I.useRef({}),m=function(){g.current={}};n||m();var f=Ki(function(){if(e&&t&&n){let Rn=function(Co,ps){var yp=arguments.length>2&&arguments[2]!==void 0?arguments[2]:he,ry=k.x+Co,Zm=k.y+ps,Ip=ry+ye,ec=Zm+ce,zc=Math.max(ry,yp.left),Ed=Math.max(Zm,yp.top),wp=Math.min(Ip,yp.right),Sp=Math.min(ec,yp.bottom);return Math.max(0,(wp-zc)*(Sp-Ed))},Ai=function(){Bn=k.y+_e,Mn=Bn+ce,Yt=k.x+xe,bn=Yt+ye};var v,w,S=e,F=S.ownerDocument,L=Xx(S),D=L.getComputedStyle(S),A=D.width,M=D.height,W=D.position,Z=S.style.left,T=S.style.top,E=S.style.right,V=S.style.bottom,z=S.style.overflow,O=Se(Se({},r[i]),o),P=F.createElement("div");(v=S.parentElement)===null||v===void 0||v.appendChild(P),P.style.left="".concat(S.offsetLeft,"px"),P.style.top="".concat(S.offsetTop,"px"),P.style.position=W,P.style.height="".concat(S.offsetHeight,"px"),P.style.width="".concat(S.offsetWidth,"px"),S.style.left="0",S.style.top="0",S.style.right="auto",S.style.bottom="auto",S.style.overflow="hidden";var B;if(Array.isArray(t))B={x:t[0],y:t[1],width:0,height:0};else{var Y=t.getBoundingClientRect();B={x:Y.x,y:Y.y,width:Y.width,height:Y.height}}var k=S.getBoundingClientRect(),X=F.documentElement,U=X.clientWidth,R=X.clientHeight,ee=X.scrollWidth,oe=X.scrollHeight,se=X.scrollTop,ue=X.scrollLeft,ce=k.height,ye=k.width,fe=B.height,le=B.width,Ze={left:0,top:0,right:U,bottom:R},ke={left:-ue,top:-se,right:ee-ue,bottom:oe-se},Ne=O.htmlRegion,ze="visible",Ke="visibleFirst";Ne!=="scroll"&&Ne!==Ke&&(Ne=ze);var ut=Ne===Ke,Ct=coe(ke,h),ot=coe(Ze,h),he=Ne===ze?ot:Ct,de=ut?ot:he;S.style.left="auto",S.style.top="auto",S.style.right="0",S.style.bottom="0";var ge=S.getBoundingClientRect();S.style.left=Z,S.style.top=T,S.style.right=E,S.style.bottom=V,S.style.overflow=z,(w=S.parentElement)===null||w===void 0||w.removeChild(P);var j=Px(Math.round(ye/parseFloat(A)*1e3)/1e3),Q=Px(Math.round(ce/parseFloat(M)*1e3)/1e3);if(j===0||Q===0||mk(t)&&!Fx(t))return;var q=O.offset,te=O.targetOffset,Ce=hoe(k,q),Le=we(Ce,2),Ae=Le[0],Oe=Le[1],tt=hoe(B,te),We=we(tt,2),ht=We[0],He=We[1];B.x-=ht,B.y-=He;var Re=O.points||[],dt=we(Re,2),yt=dt[0],Kt=dt[1],Wt=goe(Kt),Ut=goe(yt),Nn=Oy(B,Wt),di=Oy(k,Ut),pe=Se({},O),xe=Nn.x-di.x+Ae,_e=Nn.y-di.y+Oe,Pe=Rn(xe,_e),qe=Rn(xe,_e,ot),nt=Oy(B,["t","l"]),wt=Oy(k,["t","l"]),St=Oy(B,["b","r"]),et=Oy(k,["b","r"]),xt=O.overflow||{},Zt=xt.adjustX,Mt=xt.adjustY,zt=xt.shiftX,jt=xt.shiftY,ri=function(ps){return typeof ps=="boolean"?ps:ps>=0},Bn,Mn,Yt,bn;Ai();var kt=ri(Mt),Ie=Ut[0]===Wt[0];if(kt&&Ut[0]==="t"&&(Mn>de.bottom||g.current.bt)){var Ue=_e;Ie?Ue-=ce-fe:Ue=nt.y-et.y-Oe;var gt=Rn(xe,Ue),nn=Rn(xe,Ue,ot);gt>Pe||gt===Pe&&(!ut||nn>=qe)?(g.current.bt=!0,_e=Ue,Oe=-Oe,pe.points=[zp(Ut,0),zp(Wt,0)]):g.current.bt=!1}if(kt&&Ut[0]==="b"&&(BnPe||Zn===Pe&&(!ut||an>=qe)?(g.current.tb=!0,_e=Kn,Oe=-Oe,pe.points=[zp(Ut,0),zp(Wt,0)]):g.current.tb=!1}var Wn=ri(Zt),wn=Ut[1]===Wt[1];if(Wn&&Ut[1]==="l"&&(bn>de.right||g.current.rl)){var pr=xe;wn?pr-=ye-le:pr=nt.x-et.x-Ae;var Ro=Rn(pr,_e),ka=Rn(pr,_e,ot);Ro>Pe||Ro===Pe&&(!ut||ka>=qe)?(g.current.rl=!0,xe=pr,Ae=-Ae,pe.points=[zp(Ut,1),zp(Wt,1)]):g.current.rl=!1}if(Wn&&Ut[1]==="r"&&(YtPe||bu===Pe&&(!ut||zl>=qe)?(g.current.lr=!0,xe=Zs,Ae=-Ae,pe.points=[zp(Ut,1),zp(Wt,1)]):g.current.lr=!1}Ai();var Jo=zt===!0?0:zt;typeof Jo=="number"&&(Ytot.right&&(xe-=bn-ot.right-Ae,B.x>ot.right-Jo&&(xe+=B.x-ot.right+Jo)));var zr=jt===!0?0:jt;typeof zr=="number"&&(Bnot.bottom&&(_e-=Mn-ot.bottom-Oe,B.y>ot.bottom-zr&&(_e+=B.y-ot.bottom+zr)));var Cu=k.x+xe,Ko=Cu+ye,Ma=k.y+_e,gl=Ma+ce,Ui=B.x,gi=Ui+le,rn=B.y,mn=rn+fe,Di=Math.max(Cu,Ui),Yr=Math.min(Ko,gi),ar=(Di+Yr)/2,Hr=ar-Cu,_n=Math.max(Ma,rn),Cn=Math.min(gl,mn),Gi=(_n+Cn)/2,bo=Gi-Ma;s==null||s(e,pe);var rs=ge.right-k.x-(xe+k.width),cn=ge.bottom-k.y-(_e+k.height);c({ready:!0,offsetX:xe/j,offsetY:_e/Q,offsetR:rs/j,offsetB:cn/Q,arrowX:Hr/j,arrowY:bo/Q,scaleX:j,scaleY:Q,align:pe})}}),b=function(){d.current+=1;var w=d.current;Promise.resolve().then(function(){d.current===w&&f()})},C=function(){c(function(w){return Se(Se({},w),{},{ready:!1})})};return lr(C,[i]),lr(function(){n||C()},[n]),[u.ready,u.offsetX,u.offsetY,u.offsetR,u.offsetB,u.arrowX,u.arrowY,u.scaleX,u.scaleY,u.align,b]}function U3e(n,e,t,i,r){lr(function(){if(n&&e&&t){let d=function(){i(),r()};var o=e,s=t,a=R4(o),l=R4(s),u=Xx(s),c=new Set([u].concat(_t(a),_t(l)));return c.forEach(function(h){h.addEventListener("scroll",d,{passive:!0})}),u.addEventListener("resize",d,{passive:!0}),i(),function(){c.forEach(function(h){h.removeEventListener("scroll",d),u.removeEventListener("resize",d)})}}},[n,e,t])}function J3e(n,e,t,i,r,o,s,a){var l=I.useRef(n);l.current=n,I.useEffect(function(){if(e&&i&&(!r||o)){var u=function(g){var m=g.target;l.current&&!s(m)&&a(!1)},c=Xx(i);c.addEventListener("mousedown",u,!0),c.addEventListener("contextmenu",u,!0);var d=Hk(t);return d&&(d.addEventListener("mousedown",u,!0),d.addEventListener("contextmenu",u,!0)),function(){c.removeEventListener("mousedown",u,!0),c.removeEventListener("contextmenu",u,!0),d&&(d.removeEventListener("mousedown",u,!0),d.removeEventListener("contextmenu",u,!0))}}},[e,t,i,r,o])}var K3e=["prefixCls","children","action","showAction","hideAction","popupVisible","defaultPopupVisible","onPopupVisibleChange","afterPopupVisibleChange","mouseEnterDelay","mouseLeaveDelay","focusDelay","blurDelay","mask","maskClosable","getPopupContainer","forceRender","autoDestroy","destroyPopupOnHide","popup","popupClassName","popupStyle","popupPlacement","builtinPlacements","popupAlign","zIndex","stretch","getPopupClassNameFromAlign","fresh","alignPoint","onPopupClick","onPopupAlign","arrow","popupMotion","maskMotion","popupTransitionName","popupAnimation","maskTransitionName","maskAnimation","className","getTriggerDOMNode"];function j3e(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:f4,e=I.forwardRef(function(t,i){var r=t.prefixCls,o=r===void 0?"rc-trigger-popup":r,s=t.children,a=t.action,l=a===void 0?"hover":a,u=t.showAction,c=t.hideAction,d=t.popupVisible,h=t.defaultPopupVisible,g=t.onPopupVisibleChange,m=t.afterPopupVisibleChange,f=t.mouseEnterDelay,b=t.mouseLeaveDelay,C=b===void 0?.1:b,v=t.focusDelay,w=t.blurDelay,S=t.mask,F=t.maskClosable,L=F===void 0?!0:F,D=t.getPopupContainer,A=t.forceRender,M=t.autoDestroy,W=t.destroyPopupOnHide,Z=t.popup,T=t.popupClassName,E=t.popupStyle,V=t.popupPlacement,z=t.builtinPlacements,O=z===void 0?{}:z,P=t.popupAlign,B=t.zIndex,Y=t.stretch,k=t.getPopupClassNameFromAlign,X=t.fresh,U=t.alignPoint,R=t.onPopupClick,ee=t.onPopupAlign,oe=t.arrow,se=t.popupMotion,ue=t.maskMotion,ce=t.popupTransitionName,ye=t.popupAnimation,fe=t.maskTransitionName,le=t.maskAnimation,Ze=t.className,ke=t.getTriggerDOMNode,Ne=zn(t,K3e),ze=M||W||!1,Ke=I.useState(!1),ut=we(Ke,2),Ct=ut[0],ot=ut[1];lr(function(){ot(gM())},[]);var he=I.useRef({}),de=I.useContext(aoe),ge=I.useMemo(function(){return{registerSubPopup:function(hi,ro){he.current[hi]=ro,de==null||de.registerSubPopup(hi,ro)}}},[de]),j=Xie(),Q=I.useState(null),q=we(Q,2),te=q[0],Ce=q[1],Le=I.useRef(null),Ae=Ki(function(Ln){Le.current=Ln,mk(Ln)&&te!==Ln&&Ce(Ln),de==null||de.registerSubPopup(j,Ln)}),Oe=I.useState(null),tt=we(Oe,2),We=tt[0],ht=tt[1],He=I.useRef(null),Re=Ki(function(Ln){mk(Ln)&&We!==Ln&&(ht(Ln),He.current=Ln)}),dt=I.Children.only(s),yt=(dt==null?void 0:dt.props)||{},Kt={},Wt=Ki(function(Ln){var hi,ro,Ts=We;return(Ts==null?void 0:Ts.contains(Ln))||((hi=Hk(Ts))===null||hi===void 0?void 0:hi.host)===Ln||Ln===Ts||(te==null?void 0:te.contains(Ln))||((ro=Hk(te))===null||ro===void 0?void 0:ro.host)===Ln||Ln===te||Object.values(he.current).some(function(Go){return(Go==null?void 0:Go.contains(Ln))||Ln===Go})}),Ut=uoe(o,se,ye,ce),Nn=uoe(o,ue,le,fe),di=I.useState(h||!1),pe=we(di,2),xe=pe[0],_e=pe[1],Pe=d??xe,qe=Ki(function(Ln){d===void 0&&_e(Ln)});lr(function(){_e(d||!1)},[d]);var nt=I.useRef(Pe);nt.current=Pe;var wt=I.useRef([]);wt.current=[];var St=Ki(function(Ln){var hi;qe(Ln),((hi=wt.current[wt.current.length-1])!==null&&hi!==void 0?hi:Pe)!==Ln&&(wt.current.push(Ln),g==null||g(Ln))}),et=I.useRef(),xt=function(){clearTimeout(et.current)},Zt=function(hi){var ro=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;xt(),ro===0?St(hi):et.current=setTimeout(function(){St(hi)},ro*1e3)};I.useEffect(function(){return xt},[]);var Mt=I.useState(!1),zt=we(Mt,2),jt=zt[0],ri=zt[1];lr(function(Ln){(!Ln||Pe)&&ri(!0)},[Pe]);var Bn=I.useState(null),Mn=we(Bn,2),Yt=Mn[0],bn=Mn[1],kt=I.useState([0,0]),Ie=we(kt,2),Ue=Ie[0],gt=Ie[1],nn=function(hi){gt([hi.clientX,hi.clientY])},Kn=H3e(Pe,te,U?Ue:We,V,O,P,ee),Zn=we(Kn,11),an=Zn[0],Wn=Zn[1],wn=Zn[2],pr=Zn[3],Ro=Zn[4],ka=Zn[5],Zs=Zn[6],bu=Zn[7],zl=Zn[8],Jo=Zn[9],zr=Zn[10],Cu=B3e(Ct,l,u,c),Ko=we(Cu,2),Ma=Ko[0],gl=Ko[1],Ui=Ma.has("click"),gi=gl.has("click")||gl.has("contextMenu"),rn=Ki(function(){jt||zr()}),mn=function(){nt.current&&U&&gi&&Zt(!1)};U3e(Pe,We,te,rn,mn),lr(function(){rn()},[Ue,V]),lr(function(){Pe&&!(O!=null&&O[V])&&rn()},[JSON.stringify(P)]);var Di=I.useMemo(function(){var Ln=Y3e(O,o,Jo,U);return Me(Ln,k==null?void 0:k(Jo))},[Jo,k,O,o,U]);I.useImperativeHandle(i,function(){return{nativeElement:He.current,popupElement:Le.current,forceAlign:rn}});var Yr=I.useState(0),ar=we(Yr,2),Hr=ar[0],_n=ar[1],Cn=I.useState(0),Gi=we(Cn,2),bo=Gi[0],rs=Gi[1],cn=function(){if(Y&&We){var hi=We.getBoundingClientRect();_n(hi.width),rs(hi.height)}},Rn=function(){cn(),rn()},Ai=function(hi){ri(!1),zr(),m==null||m(hi)},Co=function(){return new Promise(function(hi){cn(),bn(function(){return hi})})};lr(function(){Yt&&(zr(),Yt(),bn(null))},[Yt]);function ps(Ln,hi,ro,Ts){Kt[Ln]=function(Go){var xp;Ts==null||Ts(Go),Zt(hi,ro);for(var MS=arguments.length,RG=new Array(MS>1?MS-1:0),Em=1;Em1?ro-1:0),Go=1;Go1?ro-1:0),Go=1;Go1&&arguments[1]!==void 0?arguments[1]:{},t=e.fieldNames,i=e.childrenAsData,r=[],o=foe(t,!1),s=o.label,a=o.value,l=o.options,u=o.groupLabel;function c(d,h){Array.isArray(d)&&d.forEach(function(g){if(h||!(l in g)){var m=g[a];r.push({key:moe(g,r.length),groupOption:h,data:g,label:g[s],value:m})}else{var f=g[u];f===void 0&&i&&(f=g.label),r.push({key:moe(g,r.length),group:!0,data:g,label:f}),c(g[l],!0)}})}return c(n,!1),r}function V4(n){var e=Se({},n);return"props"in e||Object.defineProperty(e,"props",{get:function(){return ia(!1,"Return type is option instead of Option instance. Please read value directly instead of reading from `props`."),e}}),e}var nGe=function(e,t,i){if(!t||!t.length)return null;var r=!1,o=function a(l,u){var c=Pte(u),d=c[0],h=c.slice(1);if(!d)return[l];var g=l.split(d);return r=r||g.length>1,g.reduce(function(m,f){return[].concat(_t(m),_t(a(f,h)))},[]).filter(Boolean)},s=o(e,t);return r?typeof i<"u"?s.slice(0,i):s:null},X4=I.createContext(null),iGe=["id","prefixCls","className","showSearch","tagRender","direction","omitDomProps","displayValues","onDisplayValuesChange","emptyOptions","notFoundContent","onClear","mode","disabled","loading","getInputElement","getRawInputElement","open","defaultOpen","onDropdownVisibleChange","activeValue","onActiveValueChange","activeDescendantId","searchValue","autoClearSearchValue","onSearch","onSearchSplit","tokenSeparators","allowClear","suffixIcon","clearIcon","OptionList","animation","transitionName","dropdownStyle","dropdownClassName","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","placement","builtinPlacements","getPopupContainer","showAction","onFocus","onBlur","onKeyUp","onKeyDown","onMouseDown"],rGe=["value","onChange","removeIcon","placeholder","autoFocus","maxTagCount","maxTagTextLength","maxTagPlaceholder","choiceTransitionName","onInputKeyDown","onPopupScroll","tabIndex"],P4=function(e){return e==="tags"||e==="multiple"},oGe=I.forwardRef(function(n,e){var t,i=n.id,r=n.prefixCls,o=n.className,s=n.showSearch,a=n.tagRender,l=n.direction,u=n.omitDomProps,c=n.displayValues,d=n.onDisplayValuesChange,h=n.emptyOptions,g=n.notFoundContent,m=g===void 0?"Not Found":g,f=n.onClear,b=n.mode,C=n.disabled,v=n.loading,w=n.getInputElement,S=n.getRawInputElement,F=n.open,L=n.defaultOpen,D=n.onDropdownVisibleChange,A=n.activeValue,M=n.onActiveValueChange,W=n.activeDescendantId,Z=n.searchValue,T=n.autoClearSearchValue,E=n.onSearch,V=n.onSearchSplit,z=n.tokenSeparators,O=n.allowClear,P=n.suffixIcon,B=n.clearIcon,Y=n.OptionList,k=n.animation,X=n.transitionName,U=n.dropdownStyle,R=n.dropdownClassName,ee=n.dropdownMatchSelectWidth,oe=n.dropdownRender,se=n.dropdownAlign,ue=n.placement,ce=n.builtinPlacements,ye=n.getPopupContainer,fe=n.showAction,le=fe===void 0?[]:fe,Ze=n.onFocus,ke=n.onBlur,Ne=n.onKeyUp,ze=n.onKeyDown,Ke=n.onMouseDown,ut=zn(n,iGe),Ct=P4(b),ot=(s!==void 0?s:Ct)||b==="combobox",he=Se({},ut);rGe.forEach(function(rn){delete he[rn]}),u==null||u.forEach(function(rn){delete he[rn]});var de=I.useState(!1),ge=we(de,2),j=ge[0],Q=ge[1];I.useEffect(function(){Q(gM())},[]);var q=I.useRef(null),te=I.useRef(null),Ce=I.useRef(null),Le=I.useRef(null),Ae=I.useRef(null),Oe=I.useRef(!1),tt=g3e(),We=we(tt,3),ht=We[0],He=We[1],Re=We[2];I.useImperativeHandle(e,function(){var rn,mn;return{focus:(rn=Le.current)===null||rn===void 0?void 0:rn.focus,blur:(mn=Le.current)===null||mn===void 0?void 0:mn.blur,scrollTo:function(Yr){var ar;return(ar=Ae.current)===null||ar===void 0?void 0:ar.scrollTo(Yr)}}});var dt=I.useMemo(function(){var rn;if(b!=="combobox")return Z;var mn=(rn=c[0])===null||rn===void 0?void 0:rn.value;return typeof mn=="string"||typeof mn=="number"?String(mn):""},[Z,b,c]),yt=b==="combobox"&&typeof w=="function"&&w()||null,Kt=typeof S=="function"&&S(),Wt=Zp(te,Kt==null||(t=Kt.props)===null||t===void 0?void 0:t.ref),Ut=I.useState(!1),Nn=we(Ut,2),di=Nn[0],pe=Nn[1];lr(function(){pe(!0)},[]);var xe=Ur(!1,{defaultValue:L,value:F}),_e=we(xe,2),Pe=_e[0],qe=_e[1],nt=di?Pe:!1,wt=!m&&h;(C||wt&&nt&&b==="combobox")&&(nt=!1);var St=wt?!1:nt,et=I.useCallback(function(rn){var mn=rn!==void 0?rn:!nt;C||(qe(mn),nt!==mn&&(D==null||D(mn)))},[C,nt,qe,D]),xt=I.useMemo(function(){return(z||[]).some(function(rn){return[` +`,`\r +`].includes(rn)})},[z]),Zt=I.useContext(X4)||{},Mt=Zt.maxCount,zt=Zt.rawValues,jt=function(mn,Di,Yr){if(!(Ct&&G4(Mt)&&(zt==null?void 0:zt.size)>=Mt)){var ar=!0,Hr=mn;M==null||M(null);var _n=nGe(mn,z,G4(Mt)?Mt-zt.size:void 0),Cn=Yr?null:_n;return b!=="combobox"&&Cn&&(Hr="",V==null||V(Cn),et(!1),ar=!1),E&&dt!==Hr&&E(Hr,{source:Di?"typing":"effect"}),ar}},ri=function(mn){!mn||!mn.trim()||E(mn,{source:"submit"})};I.useEffect(function(){!nt&&!Ct&&b!=="combobox"&&jt("",!1,!1)},[nt]),I.useEffect(function(){Pe&&C&&qe(!1),C&&!Oe.current&&He(!1)},[C]);var Bn=$re(),Mn=we(Bn,2),Yt=Mn[0],bn=Mn[1],kt=function(mn){var Di=Yt(),Yr=mn.which;if(Yr===At.ENTER&&(b!=="combobox"&&mn.preventDefault(),nt||et(!0)),bn(!!dt),Yr===At.BACKSPACE&&!Di&&Ct&&!dt&&c.length){for(var ar=_t(c),Hr=null,_n=ar.length-1;_n>=0;_n-=1){var Cn=ar[_n];if(!Cn.disabled){ar.splice(_n,1),Hr=Cn;break}}Hr&&d(ar,{type:"remove",values:[Hr]})}for(var Gi=arguments.length,bo=new Array(Gi>1?Gi-1:0),rs=1;rs1?Di-1:0),ar=1;ar1?_n-1:0),Gi=1;Gi<_n;Gi++)Cn[Gi-1]=arguments[Gi];Ke==null||Ke.apply(void 0,[mn].concat(Cn))},Wn=I.useState({}),wn=we(Wn,2),pr=wn[1];function Ro(){pr({})}var ka;Kt&&(ka=function(mn){et(mn)}),m3e(function(){var rn;return[q.current,(rn=Ce.current)===null||rn===void 0?void 0:rn.getPopupElement()]},St,et,!!Kt);var Zs=I.useMemo(function(){return Se(Se({},n),{},{notFoundContent:m,open:nt,triggerOpen:St,id:i,showSearch:ot,multiple:Ct,toggleOpen:et})},[n,m,St,nt,i,ot,Ct,et]),bu=!!P||v,zl;bu&&(zl=I.createElement(mM,{className:Me("".concat(r,"-arrow"),me({},"".concat(r,"-arrow-loading"),v)),customizeIcon:P,customizeIconProps:{loading:v,searchValue:dt,open:nt,focused:ht,showSearch:ot}}));var Jo=function(){var mn;f==null||f(),(mn=Le.current)===null||mn===void 0||mn.focus(),d([],{type:"clear",values:c}),jt("",!1,!1)},zr=d3e(r,Jo,c,O,B,C,dt,b),Cu=zr.allowClear,Ko=zr.clearIcon,Ma=I.createElement(Y,{ref:Ae}),gl=Me(r,o,me(me(me(me(me(me(me(me(me(me({},"".concat(r,"-focused"),ht),"".concat(r,"-multiple"),Ct),"".concat(r,"-single"),!Ct),"".concat(r,"-allow-clear"),O),"".concat(r,"-show-arrow"),bu),"".concat(r,"-disabled"),C),"".concat(r,"-loading"),v),"".concat(r,"-open"),nt),"".concat(r,"-customize-input"),yt),"".concat(r,"-show-search"),ot)),Ui=I.createElement(eGe,{ref:Ce,disabled:C,prefixCls:r,visible:St,popupElement:Ma,animation:k,transitionName:X,dropdownStyle:U,dropdownClassName:R,direction:l,dropdownMatchSelectWidth:ee,dropdownRender:oe,dropdownAlign:se,placement:ue,builtinPlacements:ce,getPopupContainer:ye,empty:h,getTriggerDOMNode:function(){return te.current},onPopupVisibleChange:ka,onPopupMouseEnter:Ro},Kt?I.cloneElement(Kt,{ref:Wt}):I.createElement(R3e,pt({},n,{domRef:te,prefixCls:r,inputElement:yt,ref:Le,id:i,showSearch:ot,autoClearSearchValue:T,mode:b,activeDescendantId:W,tagRender:a,values:c,open:nt,onToggleOpen:et,activeValue:A,searchValue:dt,onSearch:jt,onSearchSubmit:ri,onRemove:Ue,tokenWithEnter:xt}))),gi;return Kt?gi=Ui:gi=I.createElement("div",pt({className:gl},he,{ref:q,onMouseDown:an,onKeyDown:kt,onKeyUp:Ie,onFocus:nn,onBlur:Kn}),ht&&!nt&&I.createElement("span",{"aria-live":"polite",style:{width:0,height:0,position:"absolute",overflow:"hidden",opacity:0}},"".concat(c.map(function(rn){var mn=rn.label,Di=rn.value;return["number","string"].includes(Vn(mn))?mn:Di}).join(", "))),Ui,zl,Cu&&Ko),I.createElement(Qre.Provider,{value:Zs},gi)}),O4=function(){return null};O4.isSelectOptGroup=!0;var B4=function(){return null};B4.isSelectOption=!0;var poe=I.forwardRef(function(n,e){var t=n.height,i=n.offsetY,r=n.offsetX,o=n.children,s=n.prefixCls,a=n.onInnerResize,l=n.innerProps,u=n.rtl,c=n.extra,d={},h={display:"flex",flexDirection:"column"};return i!==void 0&&(d={height:t,position:"relative",overflow:"hidden"},h=Se(Se({},h),{},me(me(me(me(me({transform:"translateY(".concat(i,"px)")},u?"marginRight":"marginLeft",-r),"position","absolute"),"left",0),"right",0),"top",0))),I.createElement("div",{style:d},I.createElement(ac,{onResize:function(m){var f=m.offsetHeight;f&&a&&a()}},I.createElement("div",pt({style:h,className:Me(me({},"".concat(s,"-holder-inner"),s)),ref:e},l),o,c)))});poe.displayName="Filler";function boe(n,e){var t="touches"in n?n.touches[0]:n;return t[e?"pageX":"pageY"]}var Coe=I.forwardRef(function(n,e){var t=n.prefixCls,i=n.rtl,r=n.scrollOffset,o=n.scrollRange,s=n.onStartMove,a=n.onStopMove,l=n.onScroll,u=n.horizontal,c=n.spinSize,d=n.containerSize,h=n.style,g=n.thumbStyle,m=I.useState(!1),f=we(m,2),b=f[0],C=f[1],v=I.useState(null),w=we(v,2),S=w[0],F=w[1],L=I.useState(null),D=we(L,2),A=D[0],M=D[1],W=!i,Z=I.useRef(),T=I.useRef(),E=I.useState(!1),V=we(E,2),z=V[0],O=V[1],P=I.useRef(),B=function(){clearTimeout(P.current),O(!0),P.current=setTimeout(function(){O(!1)},3e3)},Y=o-d||0,k=d-c||0,X=I.useMemo(function(){if(r===0||Y===0)return 0;var fe=r/Y;return fe*k},[r,Y,k]),U=function(le){le.stopPropagation(),le.preventDefault()},R=I.useRef({top:X,dragging:b,pageY:S,startTop:A});R.current={top:X,dragging:b,pageY:S,startTop:A};var ee=function(le){C(!0),F(boe(le,u)),M(R.current.top),s(),le.stopPropagation(),le.preventDefault()};I.useEffect(function(){var fe=function(Ne){Ne.preventDefault()},le=Z.current,Ze=T.current;return le.addEventListener("touchstart",fe),Ze.addEventListener("touchstart",ee),function(){le.removeEventListener("touchstart",fe),Ze.removeEventListener("touchstart",ee)}},[]);var oe=I.useRef();oe.current=Y;var se=I.useRef();se.current=k,I.useEffect(function(){if(b){var fe,le=function(Ne){var ze=R.current,Ke=ze.dragging,ut=ze.pageY,Ct=ze.startTop;if(xi.cancel(fe),Ke){var ot=boe(Ne,u)-ut,he=Ct;!W&&u?he-=ot:he+=ot;var de=oe.current,ge=se.current,j=ge?he/ge:0,Q=Math.ceil(j*de);Q=Math.max(Q,0),Q=Math.min(Q,de),fe=xi(function(){l(Q,u)})}},Ze=function(){C(!1),a()};return window.addEventListener("mousemove",le),window.addEventListener("touchmove",le),window.addEventListener("mouseup",Ze),window.addEventListener("touchend",Ze),function(){window.removeEventListener("mousemove",le),window.removeEventListener("touchmove",le),window.removeEventListener("mouseup",Ze),window.removeEventListener("touchend",Ze),xi.cancel(fe)}}},[b]),I.useEffect(function(){B()},[r]),I.useImperativeHandle(e,function(){return{delayHidden:B}});var ue="".concat(t,"-scrollbar"),ce={position:"absolute",visibility:z?null:"hidden"},ye={position:"absolute",background:"rgba(0, 0, 0, 0.5)",borderRadius:99,cursor:"pointer",userSelect:"none"};return u?(ce.height=8,ce.left=0,ce.right=0,ce.bottom=0,ye.height="100%",ye.width=c,W?ye.left=X:ye.right=X):(ce.width=8,ce.top=0,ce.bottom=0,W?ce.right=0:ce.left=0,ye.width="100%",ye.height=c,ye.top=X),I.createElement("div",{ref:Z,className:Me(ue,me(me(me({},"".concat(ue,"-horizontal"),u),"".concat(ue,"-vertical"),!u),"".concat(ue,"-visible"),z)),style:Se(Se({},ce),h),onMouseDown:U,onMouseMove:B},I.createElement("div",{ref:T,className:Me("".concat(ue,"-thumb"),me({},"".concat(ue,"-thumb-moving"),b)),style:Se(Se({},ye),g),onMouseDown:ee}))});function sGe(n){var e=n.children,t=n.setRef,i=I.useCallback(function(r){t(r)},[]);return I.cloneElement(e,{ref:i})}function aGe(n,e,t,i,r,o,s){var a=s.getKey;return n.slice(e,t+1).map(function(l,u){var c=e+u,d=o(l,c,{style:{width:i}}),h=a(l);return I.createElement(sGe,{key:h,setRef:function(m){return r(l,m)}},d)})}var lGe=function(){function n(){Cs(this,n),me(this,"maps",void 0),me(this,"id",0),this.maps=Object.create(null)}return vs(n,[{key:"set",value:function(t,i){this.maps[t]=i,this.id+=1}},{key:"get",value:function(t){return this.maps[t]}}]),n}();function uGe(n,e,t){var i=I.useState(0),r=we(i,2),o=r[0],s=r[1],a=I.useRef(new Map),l=I.useRef(new lGe),u=I.useRef();function c(){xi.cancel(u.current)}function d(){var g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;c();var m=function(){a.current.forEach(function(b,C){if(b&&b.offsetParent){var v=ux(b),w=v.offsetHeight;l.current.get(C)!==w&&l.current.set(C,v.offsetHeight)}}),s(function(b){return b+1})};g?m():u.current=xi(m)}function h(g,m){var f=n(g),b=a.current.get(f);m?(a.current.set(f,m),d()):a.current.delete(f),!b!=!m&&(m?e==null||e(g):t==null||t(g))}return I.useEffect(function(){return c},[]),[h,d,l.current,o]}var cGe=10;function dGe(n,e,t,i,r,o,s,a){var l=I.useRef(),u=I.useState(null),c=we(u,2),d=c[0],h=c[1];return lr(function(){if(d&&d.times=0;V-=1){var z=r(e[V]),O=t.get(z);if(O===void 0){v=!0;break}if(E-=O,E<=0)break}switch(F){case"top":S=D-b;break;case"bottom":S=A-C+b;break;default:{var P=n.current.scrollTop,B=P+C;DB&&(w="bottom")}}S!==null&&s(S),S!==d.lastTop&&(v=!0)}v&&h(Se(Se({},d),{},{times:d.times+1,targetAlign:w,lastTop:S}))}},[d,n.current]),function(g){if(g==null){a();return}if(xi.cancel(l.current),typeof g=="number")s(g);else if(g&&Vn(g)==="object"){var m,f=g.align;"index"in g?m=g.index:m=e.findIndex(function(v){return r(v)===g.key});var b=g.offset,C=b===void 0?0:b;h({times:0,index:m,offset:C,originAlign:f})}}}function hGe(n,e,t){var i=n.length,r=e.length,o,s;if(i===0&&r===0)return null;i"u"?"undefined":Vn(navigator))==="object"&&/Firefox/i.test(navigator.userAgent);const yoe=function(n,e){var t=I.useRef(!1),i=I.useRef(null);function r(){clearTimeout(i.current),t.current=!0,i.current=setTimeout(function(){t.current=!1},50)}var o=I.useRef({top:n,bottom:e});return o.current.top=n,o.current.bottom=e,function(s){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,l=s<0&&o.current.top||s>0&&o.current.bottom;return a&&l?(clearTimeout(i.current),t.current=!1):(!l||t.current)&&r(),!t.current&&l}};function mGe(n,e,t,i,r){var o=I.useRef(0),s=I.useRef(null),a=I.useRef(null),l=I.useRef(!1),u=yoe(e,t);function c(b,C){xi.cancel(s.current),o.current+=C,a.current=C,!u(C)&&(voe||b.preventDefault(),s.current=xi(function(){var v=l.current?10:1;r(o.current*v),o.current=0}))}function d(b,C){r(C,!0),voe||b.preventDefault()}var h=I.useRef(null),g=I.useRef(null);function m(b){if(n){xi.cancel(g.current),g.current=xi(function(){h.current=null},2);var C=b.deltaX,v=b.deltaY,w=b.shiftKey,S=C,F=v;(h.current==="sx"||!h.current&&w&&v&&!C)&&(S=v,F=0,h.current="sx");var L=Math.abs(S),D=Math.abs(F);h.current===null&&(h.current=i&&L>D?"x":"y"),h.current==="y"?c(b,F):d(b,S)}}function f(b){n&&(l.current=b.detail===a.current)}return[m,f]}var fGe=14/15;function pGe(n,e,t){var i=I.useRef(!1),r=I.useRef(0),o=I.useRef(null),s=I.useRef(null),a,l=function(h){if(i.current){var g=Math.ceil(h.touches[0].pageY),m=r.current-g;r.current=g,t(m)&&h.preventDefault(),clearInterval(s.current),s.current=setInterval(function(){m*=fGe,(!t(m,!0)||Math.abs(m)<=.1)&&clearInterval(s.current)},16)}},u=function(){i.current=!1,a()},c=function(h){a(),h.touches.length===1&&!i.current&&(i.current=!0,r.current=Math.ceil(h.touches[0].pageY),o.current=h.target,o.current.addEventListener("touchmove",l),o.current.addEventListener("touchend",u))};a=function(){o.current&&(o.current.removeEventListener("touchmove",l),o.current.removeEventListener("touchend",u))},lr(function(){return n&&e.current.addEventListener("touchstart",c),function(){var d;(d=e.current)===null||d===void 0||d.removeEventListener("touchstart",c),a(),clearInterval(s.current)}},[n])}var bGe=20;function Ioe(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=n/e*n;return isNaN(t)&&(t=0),t=Math.max(t,bGe),Math.floor(t)}function CGe(n,e,t,i){var r=I.useMemo(function(){return[new Map,[]]},[n,t.id,i]),o=we(r,2),s=o[0],a=o[1],l=function(c){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:c,h=s.get(c),g=s.get(d);if(h===void 0||g===void 0)for(var m=n.length,f=a.length;fo||!!f),Y=m==="rtl",k=Me(i,me({},"".concat(i,"-rtl"),Y),r),X=c||yGe,U=I.useRef(),R=I.useRef(),ee=I.useState(0),oe=we(ee,2),se=oe[0],ue=oe[1],ce=I.useState(0),ye=we(ce,2),fe=ye[0],le=ye[1],Ze=I.useState(!1),ke=we(Ze,2),Ne=ke[0],ze=ke[1],Ke=function(){ze(!0)},ut=function(){ze(!1)},Ct={getKey:M};function ot(Ie){ue(function(Ue){var gt;typeof Ie=="function"?gt=Ie(Ue):gt=Ie;var nn=Nn(gt);return U.current.scrollTop=nn,nn})}var he=I.useRef({start:0,end:X.length}),de=I.useRef(),ge=gGe(X,M),j=we(ge,1),Q=j[0];de.current=Q;var q=I.useMemo(function(){if(!O)return{scrollHeight:void 0,start:0,end:X.length-1,offset:void 0};if(!B){var Ie;return{scrollHeight:((Ie=R.current)===null||Ie===void 0?void 0:Ie.offsetHeight)||0,start:0,end:X.length-1,offset:void 0}}for(var Ue=0,gt,nn,Kn,Zn=X.length,an=0;an=se&>===void 0&&(gt=an,nn=Ue),Ro>se+o&&Kn===void 0&&(Kn=an),Ue=Ro}return gt===void 0&&(gt=0,nn=0,Kn=Math.ceil(o/s)),Kn===void 0&&(Kn=X.length-1),Kn=Math.min(Kn+1,X.length-1),{scrollHeight:Ue,start:gt,end:Kn,offset:nn}},[B,O,se,X,z,o]),te=q.scrollHeight,Ce=q.start,Le=q.end,Ae=q.offset;he.current.start=Ce,he.current.end=Le;var Oe=I.useState({width:0,height:o}),tt=we(Oe,2),We=tt[0],ht=tt[1],He=function(Ue){ht({width:Ue.width||Ue.offsetWidth,height:Ue.height||Ue.offsetHeight})},Re=I.useRef(),dt=I.useRef(),yt=I.useMemo(function(){return Ioe(We.width,f)},[We.width,f]),Kt=I.useMemo(function(){return Ioe(We.height,te)},[We.height,te]),Wt=te-o,Ut=I.useRef(Wt);Ut.current=Wt;function Nn(Ie){var Ue=Ie;return Number.isNaN(Ut.current)||(Ue=Math.min(Ue,Ut.current)),Ue=Math.max(Ue,0),Ue}var di=se<=0,pe=se>=Wt,xe=yoe(di,pe),_e=function(){return{x:Y?-fe:fe,y:se}},Pe=I.useRef(_e()),qe=Ki(function(){if(w){var Ie=_e();(Pe.current.x!==Ie.x||Pe.current.y!==Ie.y)&&(w(Ie),Pe.current=Ie)}});function nt(Ie,Ue){var gt=Ie;Ue?(zd.flushSync(function(){le(gt)}),qe()):ot(gt)}function wt(Ie){var Ue=Ie.currentTarget.scrollTop;Ue!==se&&ot(Ue),v==null||v(Ie),qe()}var St=function(Ue){var gt=Ue,nn=f?f-We.width:0;return gt=Math.max(gt,0),gt=Math.min(gt,nn),gt},et=Ki(function(Ie,Ue){Ue?(zd.flushSync(function(){le(function(gt){var nn=gt+(Y?-Ie:Ie);return St(nn)})}),qe()):ot(function(gt){var nn=gt+Ie;return nn})}),xt=mGe(O,di,pe,!!f,et),Zt=we(xt,2),Mt=Zt[0],zt=Zt[1];pGe(O,U,function(Ie,Ue){return xe(Ie,Ue)?!1:(Mt({preventDefault:function(){},deltaY:Ie}),!0)}),lr(function(){function Ie(gt){O&>.preventDefault()}var Ue=U.current;return Ue.addEventListener("wheel",Mt),Ue.addEventListener("DOMMouseScroll",zt),Ue.addEventListener("MozMousePixelScroll",Ie),function(){Ue.removeEventListener("wheel",Mt),Ue.removeEventListener("DOMMouseScroll",zt),Ue.removeEventListener("MozMousePixelScroll",Ie)}},[O]),lr(function(){f&&le(function(Ie){return St(Ie)})},[We.width,f]);var jt=function(){var Ue,gt;(Ue=Re.current)===null||Ue===void 0||Ue.delayHidden(),(gt=dt.current)===null||gt===void 0||gt.delayHidden()},ri=dGe(U,X,V,s,M,function(){return E(!0)},ot,jt);I.useImperativeHandle(e,function(){return{getScrollInfo:_e,scrollTo:function(Ue){function gt(nn){return nn&&Vn(nn)==="object"&&("left"in nn||"top"in nn)}gt(Ue)?(Ue.left!==void 0&&le(St(Ue.left)),ri(Ue.top)):ri(Ue)}}}),lr(function(){if(S){var Ie=X.slice(Ce,Le+1);S(Ie,X)}},[Ce,Le,X]);var Bn=CGe(X,M,V,s),Mn=L==null?void 0:L({start:Ce,end:Le,virtual:B,offsetX:fe,offsetY:Ae,rtl:Y,getSize:Bn}),Yt=aGe(X,Ce,Le,f,T,d,Ct),bn=null;o&&(bn=Se(me({},l?"height":"maxHeight",o),IGe),O&&(bn.overflowY="hidden",f&&(bn.overflowX="hidden"),Ne&&(bn.pointerEvents="none")));var kt={};return Y&&(kt.dir="rtl"),I.createElement("div",pt({style:Se(Se({},u),{},{position:"relative"}),className:k},kt,A),I.createElement(ac,{onResize:He},I.createElement(C,{className:"".concat(i,"-holder"),style:bn,ref:U,onScroll:wt,onMouseEnter:jt},I.createElement(poe,{prefixCls:i,height:te,offsetX:fe,offsetY:Ae,scrollWidth:f,onInnerResize:E,ref:R,innerProps:F,rtl:Y,extra:Mn},Yt))),B&&te>o&&I.createElement(Coe,{ref:Re,prefixCls:i,scrollOffset:se,scrollRange:te,rtl:Y,onScroll:nt,onStartMove:Ke,onStopMove:ut,spinSize:Kt,containerSize:We.height,style:D==null?void 0:D.verticalScrollBar,thumbStyle:D==null?void 0:D.verticalScrollBarThumb}),B&&f>We.width&&I.createElement(Coe,{ref:dt,prefixCls:i,scrollOffset:fe,scrollRange:f,rtl:Y,onScroll:nt,onStartMove:Ke,onStopMove:ut,spinSize:yt,containerSize:We.width,horizontal:!0,style:D==null?void 0:D.horizontalScrollBar,thumbStyle:D==null?void 0:D.horizontalScrollBarThumb}))}var woe=I.forwardRef(wGe);woe.displayName="List";function SGe(){return/(mac\sos|macintosh)/i.test(navigator.appVersion)}var xGe=["disabled","title","children","style","className"];function Soe(n){return typeof n=="string"||typeof n=="number"}var LGe=function(e,t){var i=h3e(),r=i.prefixCls,o=i.id,s=i.open,a=i.multiple,l=i.mode,u=i.searchValue,c=i.toggleOpen,d=i.notFoundContent,h=i.onPopupScroll,g=I.useContext(X4),m=g.maxCount,f=g.flattenOptions,b=g.onActiveValue,C=g.defaultActiveFirstOption,v=g.onSelect,w=g.menuItemSelectedIcon,S=g.rawValues,F=g.fieldNames,L=g.virtual,D=g.direction,A=g.listHeight,M=g.listItemHeight,W=g.optionRender,Z="".concat(r,"-item"),T=cx(function(){return f},[s,f],function(fe,le){return le[0]&&fe[1]!==le[1]}),E=I.useRef(null),V=I.useMemo(function(){return a&&G4(m)&&(S==null?void 0:S.size)>=m},[a,m,S==null?void 0:S.size]),z=function(le){le.preventDefault()},O=function(le){var Ze;(Ze=E.current)===null||Ze===void 0||Ze.scrollTo(typeof le=="number"?{index:le}:le)},P=function(le){for(var Ze=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,ke=T.length,Ne=0;Ne1&&arguments[1]!==void 0?arguments[1]:!1;X(le);var ke={source:Ze?"keyboard":"mouse"},Ne=T[le];if(!Ne){b(null,-1,ke);return}b(Ne.value,le,ke)};I.useEffect(function(){U(C!==!1?P(0):-1)},[T.length,u]);var R=I.useCallback(function(fe){return S.has(fe)&&l!=="combobox"},[l,_t(S).toString(),S.size]);I.useEffect(function(){var fe=setTimeout(function(){if(!a&&s&&S.size===1){var Ze=Array.from(S)[0],ke=T.findIndex(function(Ne){var ze=Ne.data;return ze.value===Ze});ke!==-1&&(U(ke),O(ke))}});if(s){var le;(le=E.current)===null||le===void 0||le.scrollTo(void 0)}return function(){return clearTimeout(fe)}},[s,u]);var ee=function(le){le!==void 0&&v(le,{selected:!S.has(le)}),a||c(!1)};if(I.useImperativeHandle(t,function(){return{onKeyDown:function(le){var Ze=le.which,ke=le.ctrlKey;switch(Ze){case At.N:case At.P:case At.UP:case At.DOWN:{var Ne=0;if(Ze===At.UP?Ne=-1:Ze===At.DOWN?Ne=1:SGe()&&ke&&(Ze===At.N?Ne=1:Ze===At.P&&(Ne=-1)),Ne!==0){var ze=P(k+Ne,Ne);O(ze),U(ze,!0)}break}case At.ENTER:{var Ke,ut=T[k];ut&&!(ut!=null&&(Ke=ut.data)!==null&&Ke!==void 0&&Ke.disabled)&&!V?ee(ut.value):ee(void 0),s&&le.preventDefault();break}case At.ESC:c(!1),s&&le.stopPropagation()}},onKeyUp:function(){},scrollTo:function(le){O(le)}}}),T.length===0)return I.createElement("div",{role:"listbox",id:"".concat(o,"_list"),className:"".concat(Z,"-empty"),onMouseDown:z},d);var oe=Object.keys(F).map(function(fe){return F[fe]}),se=function(le){return le.label};function ue(fe,le){var Ze=fe.group;return{role:Ze?"presentation":"option",id:"".concat(o,"_list_").concat(le)}}var ce=function(le){var Ze=T[le];if(!Ze)return null;var ke=Ze.data||{},Ne=ke.value,ze=Ze.group,Ke=xu(ke,!0),ut=se(Ze);return Ze?I.createElement("div",pt({"aria-label":typeof ut=="string"&&!ze?ut:null},Ke,{key:le},ue(Ze,le),{"aria-selected":R(Ne)}),Ne):null},ye={role:"listbox",id:"".concat(o,"_list")};return I.createElement(I.Fragment,null,L&&I.createElement("div",pt({},ye,{style:{height:0,width:0,overflow:"hidden"}}),ce(k-1),ce(k),ce(k+1)),I.createElement(woe,{itemKey:"key",ref:E,data:T,height:A,itemHeight:M,fullHeight:!1,onMouseDown:z,onScroll:h,virtual:L,direction:D,innerProps:L?null:ye},function(fe,le){var Ze=fe.group,ke=fe.groupOption,Ne=fe.data,ze=fe.label,Ke=fe.value,ut=Ne.key;if(Ze){var Ct,ot=(Ct=Ne.title)!==null&&Ct!==void 0?Ct:Soe(ze)?ze.toString():void 0;return I.createElement("div",{className:Me(Z,"".concat(Z,"-group"),Ne.className),title:ot},ze!==void 0?ze:ut)}var he=Ne.disabled,de=Ne.title;Ne.children;var ge=Ne.style,j=Ne.className,Q=zn(Ne,xGe),q=ra(Q,oe),te=R(Ke),Ce=he||!te&&V,Le="".concat(Z,"-option"),Ae=Me(Z,Le,j,me(me(me(me({},"".concat(Le,"-grouped"),ke),"".concat(Le,"-active"),k===le&&!Ce),"".concat(Le,"-disabled"),Ce),"".concat(Le,"-selected"),te)),Oe=se(fe),tt=!w||typeof w=="function"||te,We=typeof Oe=="number"?Oe:Oe||Ke,ht=Soe(We)?We.toString():void 0;return de!==void 0&&(ht=de),I.createElement("div",pt({},xu(q),L?{}:ue(fe,le),{"aria-selected":te,className:Ae,title:ht,onMouseMove:function(){k===le||Ce||U(le)},onClick:function(){Ce||ee(Ke)},style:ge}),I.createElement("div",{className:"".concat(Le,"-content")},typeof W=="function"?W(fe,{index:le}):We),I.isValidElement(w)||te,tt&&I.createElement(mM,{className:"".concat(Z,"-option-state"),customizeIcon:w,customizeIconProps:{value:Ke,disabled:Ce,isSelected:te}},te?"✓":null))}))},FGe=I.forwardRef(LGe);const _Ge=function(n,e){var t=I.useRef({values:new Map,options:new Map}),i=I.useMemo(function(){var o=t.current,s=o.values,a=o.options,l=n.map(function(d){if(d.label===void 0){var h;return Se(Se({},d),{},{label:(h=s.get(d.value))===null||h===void 0?void 0:h.label})}return d}),u=new Map,c=new Map;return l.forEach(function(d){u.set(d.value,d),c.set(d.value,e.get(d.value)||a.get(d.value))}),t.current.values=u,t.current.options=c,l},[n,e]),r=I.useCallback(function(o){return e.get(o)||t.current.options.get(o)},[e]);return[i,r]};function z4(n,e){return ioe(n).join("").toUpperCase().includes(e)}const DGe=function(n,e,t,i,r){return I.useMemo(function(){if(!t||i===!1)return n;var o=e.options,s=e.label,a=e.value,l=[],u=typeof i=="function",c=t.toUpperCase(),d=u?i:function(g,m){return r?z4(m[r],c):m[o]?z4(m[s!=="children"?s:"label"],c):z4(m[a],c)},h=u?function(g){return V4(g)}:function(g){return g};return n.forEach(function(g){if(g[o]){var m=d(t,h(g));if(m)l.push(g);else{var f=g[o].filter(function(b){return d(t,h(b))});f.length&&l.push(Se(Se({},g),{},me({},o,f)))}return}d(t,h(g))&&l.push(g)}),l},[n,i,r,t,e])};var xoe=0,AGe=bl();function NGe(){var n;return AGe?(n=xoe,xoe+=1):n="TEST_OR_SSR",n}function kGe(n){var e=I.useState(),t=we(e,2),i=t[0],r=t[1];return I.useEffect(function(){r("rc_select_".concat(NGe()))},[]),n||i}var MGe=["children","value"],ZGe=["children"];function TGe(n){var e=n,t=e.key,i=e.props,r=i.children,o=i.value,s=zn(i,MGe);return Se({key:t,value:o!==void 0?o:t,children:r},s)}function Loe(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return Kc(n).map(function(t,i){if(!I.isValidElement(t)||!t.type)return null;var r=t,o=r.type.isSelectOptGroup,s=r.key,a=r.props,l=a.children,u=zn(a,ZGe);return e||!o?TGe(t):Se(Se({key:"__RC_SELECT_GRP__".concat(s===null?i:s,"__"),label:s},u),{},{options:Loe(l)})}).filter(function(t){return t})}var EGe=function(e,t,i,r,o){return I.useMemo(function(){var s=e,a=!e;a&&(s=Loe(t));var l=new Map,u=new Map,c=function(g,m,f){f&&typeof f=="string"&&g.set(m[f],m)},d=function h(g){for(var m=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,f=0;f2&&arguments[2]!==void 0?arguments[2]:{},Mt=Zt.source,zt=Mt===void 0?"keyboard":Mt;di(xt),s&&i==="combobox"&&et!==null&&zt==="keyboard"&&Kt(String(et))},[s,i]),_e=function(xt,Zt,Mt){var zt=function(){var gt,nn=q(xt);return[Y?{label:nn==null?void 0:nn[ue.label],value:xt,key:(gt=nn==null?void 0:nn.key)!==null&>!==void 0?gt:xt}:xt,V4(nn)]};if(Zt&&g){var jt=zt(),ri=we(jt,2),Bn=ri[0],Mn=ri[1];g(Bn,Mn)}else if(!Zt&&m&&Mt!=="clear"){var Yt=zt(),bn=we(Yt,2),kt=bn[0],Ie=bn[1];m(kt,Ie)}},Pe=Foe(function(et,xt){var Zt,Mt=ee?xt.selected:!0;Mt?Zt=ee?[].concat(_t(Q),[et]):[et]:Zt=Q.filter(function(zt){return zt.value!==et}),He(Zt),_e(et,Mt),i==="combobox"?Kt(""):(!P4||h)&&(le(""),Kt(""))}),qe=function(xt,Zt){He(xt);var Mt=Zt.type,zt=Zt.values;(Mt==="remove"||Mt==="clear")&&zt.forEach(function(jt){_e(jt.value,!1,Mt)})},nt=function(xt,Zt){if(le(xt),Kt(null),Zt.source==="submit"){var Mt=(xt||"").trim();if(Mt){var zt=Array.from(new Set([].concat(_t(Ce),[Mt])));He(zt),_e(Mt,!0),le("")}return}Zt.source!=="blur"&&(i==="combobox"&&He(xt),c==null||c(xt))},wt=function(xt){var Zt=xt;i!=="tags"&&(Zt=xt.map(function(zt){var jt=Ne.get(zt);return jt==null?void 0:jt.value}).filter(function(zt){return zt!==void 0}));var Mt=Array.from(new Set([].concat(_t(Ce),_t(Zt))));He(Mt),Mt.forEach(function(zt){_e(zt,!0)})},St=I.useMemo(function(){var et=W!==!1&&b!==!1;return Se(Se({},Ze),{},{flattenOptions:ht,onActiveValue:xe,defaultActiveFirstOption:pe,onSelect:Pe,menuItemSelectedIcon:M,rawValues:Ce,fieldNames:ue,virtual:et,direction:Z,listHeight:E,listItemHeight:z,childrenAsData:oe,maxCount:X,optionRender:L})},[X,Ze,ht,xe,pe,Pe,M,Ce,ue,W,b,Z,E,z,oe,L]);return I.createElement(X4.Provider,{value:St},I.createElement(oGe,pt({},U,{id:R,prefixCls:o,ref:e,omitDomProps:RGe,mode:i,displayValues:te,onDisplayValuesChange:qe,direction:Z,searchValue:fe,onSearch:nt,autoClearSearchValue:h,onSearchSplit:wt,dropdownMatchSelectWidth:b,OptionList:FGe,emptyOptions:!ht.length,activeValue:yt,activeDescendantId:"".concat(R,"_list_").concat(Nn)})))}),Y4=VGe;Y4.Option=B4,Y4.OptGroup=O4;function Yp(n,e,t){return Me({[`${n}-status-success`]:e==="success",[`${n}-status-warning`]:e==="warning",[`${n}-status-error`]:e==="error",[`${n}-status-validating`]:e==="validating",[`${n}-has-feedback`]:t})}const z1=(n,e)=>e||n,XGe=()=>{const[,n]=Ga(),t=new Po(n.colorBgBase).toHsl().l<.5?{opacity:.65}:{};return I.createElement("svg",{style:t,width:"184",height:"152",viewBox:"0 0 184 152",xmlns:"http://www.w3.org/2000/svg"},I.createElement("g",{fill:"none",fillRule:"evenodd"},I.createElement("g",{transform:"translate(24 31.67)"},I.createElement("ellipse",{fillOpacity:".8",fill:"#F5F5F7",cx:"67.797",cy:"106.89",rx:"67.797",ry:"12.668"}),I.createElement("path",{d:"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z",fill:"#AEB8C2"}),I.createElement("path",{d:"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z",fill:"url(#linearGradient-1)",transform:"translate(13.56)"}),I.createElement("path",{d:"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z",fill:"#F5F5F7"}),I.createElement("path",{d:"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z",fill:"#DCE0E6"})),I.createElement("path",{d:"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z",fill:"#DCE0E6"}),I.createElement("g",{transform:"translate(149.65 15.383)",fill:"#FFF"},I.createElement("ellipse",{cx:"20.654",cy:"3.167",rx:"2.849",ry:"2.815"}),I.createElement("path",{d:"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"}))))},PGe=()=>{const[,n]=Ga(),{colorFill:e,colorFillTertiary:t,colorFillQuaternary:i,colorBgContainer:r}=n,{borderColor:o,shadowColor:s,contentColor:a}=I.useMemo(()=>({borderColor:new Po(e).onBackground(r).toHexShortString(),shadowColor:new Po(t).onBackground(r).toHexShortString(),contentColor:new Po(i).onBackground(r).toHexShortString()}),[e,t,i,r]);return I.createElement("svg",{width:"64",height:"41",viewBox:"0 0 64 41",xmlns:"http://www.w3.org/2000/svg"},I.createElement("g",{transform:"translate(0 1)",fill:"none",fillRule:"evenodd"},I.createElement("ellipse",{fill:s,cx:"32",cy:"33",rx:"32",ry:"7"}),I.createElement("g",{fillRule:"nonzero",stroke:o},I.createElement("path",{d:"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"}),I.createElement("path",{d:"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",fill:a}))))},OGe=n=>{const{componentCls:e,margin:t,marginXS:i,marginXL:r,fontSize:o,lineHeight:s}=n;return{[e]:{marginInline:i,fontSize:o,lineHeight:s,textAlign:"center",[`${e}-image`]:{height:n.emptyImgHeight,marginBottom:i,opacity:n.opacityImage,img:{height:"100%"},svg:{maxWidth:"100%",height:"100%",margin:"auto"}},[`${e}-description`]:{color:n.colorText},[`${e}-footer`]:{marginTop:t},"&-normal":{marginBlock:r,color:n.colorTextDescription,[`${e}-description`]:{color:n.colorTextDescription},[`${e}-image`]:{height:n.emptyImgHeightMD}},"&-small":{marginBlock:i,color:n.colorTextDescription,[`${e}-image`]:{height:n.emptyImgHeightSM}}}}},BGe=Oo("Empty",n=>{const{componentCls:e,controlHeightLG:t,calc:i}=n,r=Bi(n,{emptyImgCls:`${e}-img`,emptyImgHeight:i(t).mul(2.5).equal(),emptyImgHeightMD:t,emptyImgHeightSM:i(t).mul(.875).equal()});return[OGe(r)]});var zGe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{var{className:e,rootClassName:t,prefixCls:i,image:r=_oe,description:o,children:s,imageStyle:a,style:l}=n,u=zGe(n,["className","rootClassName","prefixCls","image","description","children","imageStyle","style"]);const{getPrefixCls:c,direction:d,empty:h}=I.useContext(Tn),g=c("empty",i),[m,f,b]=BGe(g),[C]=Wp("Empty"),v=typeof o<"u"?o:C==null?void 0:C.description,w=typeof v=="string"?v:"empty";let S=null;return typeof r=="string"?S=I.createElement("img",{alt:w,src:r}):S=r,m(I.createElement("div",Object.assign({className:Me(f,b,g,h==null?void 0:h.className,{[`${g}-normal`]:r===Doe,[`${g}-rtl`]:d==="rtl"},e,t),style:Object.assign(Object.assign({},h==null?void 0:h.style),l)},u),I.createElement("div",{className:`${g}-image`,style:a},S),v&&I.createElement("div",{className:`${g}-description`},v),s&&I.createElement("div",{className:`${g}-footer`},s)))};H4.PRESENTED_IMAGE_DEFAULT=_oe,H4.PRESENTED_IMAGE_SIMPLE=Doe;const zx=H4,YGe=n=>{const{componentName:e}=n,{getPrefixCls:t}=I.useContext(Tn),i=t("empty");switch(e){case"Table":case"List":return Ye.createElement(zx,{image:zx.PRESENTED_IMAGE_SIMPLE});case"Select":case"TreeSelect":case"Cascader":case"Transfer":case"Mentions":return Ye.createElement(zx,{image:zx.PRESENTED_IMAGE_SIMPLE,className:`${i}-small`});default:return Ye.createElement(zx,null)}},HGe=["outlined","borderless","filled"],By=function(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0;const t=I.useContext(Cre);let i;typeof n<"u"?i=n:e===!1?i="borderless":i=t??"outlined";const r=HGe.includes(i);return[i,r]},UGe=n=>{const t={overflow:{adjustX:!0,adjustY:!0,shiftY:!0},htmlRegion:n==="scroll"?"scroll":"visible",dynamicInset:!0};return{bottomLeft:Object.assign(Object.assign({},t),{points:["tl","bl"],offset:[0,4]}),bottomRight:Object.assign(Object.assign({},t),{points:["tr","br"],offset:[0,4]}),topLeft:Object.assign(Object.assign({},t),{points:["bl","tl"],offset:[0,-4]}),topRight:Object.assign(Object.assign({},t),{points:["br","tr"],offset:[0,-4]})}};function JGe(n,e){return n||UGe(e)}const Aoe=n=>{const{optionHeight:e,optionFontSize:t,optionLineHeight:i,optionPadding:r}=n;return{position:"relative",display:"block",minHeight:e,padding:r,color:n.colorText,fontWeight:"normal",fontSize:t,lineHeight:i,boxSizing:"border-box"}},KGe=n=>{const{antCls:e,componentCls:t}=n,i=`${t}-item`,r=`&${e}-slide-up-enter${e}-slide-up-enter-active`,o=`&${e}-slide-up-appear${e}-slide-up-appear-active`,s=`&${e}-slide-up-leave${e}-slide-up-leave-active`,a=`${t}-dropdown-placement-`;return[{[`${t}-dropdown`]:Object.assign(Object.assign({},oo(n)),{position:"absolute",top:-9999,zIndex:n.zIndexPopup,boxSizing:"border-box",padding:n.paddingXXS,overflow:"hidden",fontSize:n.fontSize,fontVariant:"initial",backgroundColor:n.colorBgElevated,borderRadius:n.borderRadiusLG,outline:"none",boxShadow:n.boxShadowSecondary,[` + ${r}${a}bottomLeft, + ${o}${a}bottomLeft + `]:{animationName:lM},[` + ${r}${a}topLeft, + ${o}${a}topLeft, + ${r}${a}topRight, + ${o}${a}topRight + `]:{animationName:cM},[`${s}${a}bottomLeft`]:{animationName:uM},[` + ${s}${a}topLeft, + ${s}${a}topRight + `]:{animationName:dM},"&-hidden":{display:"none"},[`${i}`]:Object.assign(Object.assign({},Aoe(n)),{cursor:"pointer",transition:`background ${n.motionDurationSlow} ease`,borderRadius:n.borderRadiusSM,"&-group":{color:n.colorTextDescription,fontSize:n.fontSizeSM,cursor:"default"},"&-option":{display:"flex","&-content":Object.assign({flex:"auto"},Vp),"&-state":{flex:"none",display:"flex",alignItems:"center"},[`&-active:not(${i}-option-disabled)`]:{backgroundColor:n.optionActiveBg},[`&-selected:not(${i}-option-disabled)`]:{color:n.optionSelectedColor,fontWeight:n.optionSelectedFontWeight,backgroundColor:n.optionSelectedBg,[`${i}-option-state`]:{color:n.colorPrimary},[`&:has(+ ${i}-option-selected:not(${i}-option-disabled))`]:{borderEndStartRadius:0,borderEndEndRadius:0,[`& + ${i}-option-selected:not(${i}-option-disabled)`]:{borderStartStartRadius:0,borderStartEndRadius:0}}},"&-disabled":{[`&${i}-option-selected`]:{backgroundColor:n.colorBgContainerDisabled},color:n.colorTextDisabled,cursor:"not-allowed"},"&-grouped":{paddingInlineStart:n.calc(n.controlPaddingHorizontal).mul(2).equal()}},"&-empty":Object.assign(Object.assign({},Aoe(n)),{color:n.colorTextDisabled})}),"&-rtl":{direction:"rtl"}})},ug(n,"slide-up"),ug(n,"slide-down"),Xy(n,"move-up"),Xy(n,"move-down")]},pM=2,Noe=n=>{const{multipleSelectItemHeight:e,paddingXXS:t,lineWidth:i}=n,r=n.max(n.calc(t).sub(i).equal(),0),o=n.max(n.calc(r).sub(pM).equal(),0);return{basePadding:r,containerPadding:o,itemHeight:Te(e),itemLineHeight:Te(n.calc(e).sub(n.calc(n.lineWidth).mul(2)).equal())}},jGe=n=>{const{multipleSelectItemHeight:e,selectHeight:t,lineWidth:i}=n;return n.calc(t).sub(e).div(2).sub(i).equal()},koe=n=>{const{componentCls:e,iconCls:t,borderRadiusSM:i,motionDurationSlow:r,paddingXS:o,multipleItemColorDisabled:s,multipleItemBorderColorDisabled:a,colorIcon:l,colorIconHover:u}=n;return{[`${e}-selection-overflow`]:{position:"relative",display:"flex",flex:"auto",flexWrap:"wrap",maxWidth:"100%","&-item":{flex:"none",alignSelf:"center",maxWidth:"100%",display:"inline-flex"},[`${e}-selection-item`]:{display:"flex",alignSelf:"center",flex:"none",boxSizing:"border-box",maxWidth:"100%",marginBlock:pM,borderRadius:i,cursor:"default",transition:`font-size ${r}, line-height ${r}, height ${r}`,marginInlineEnd:n.calc(pM).mul(2).equal(),paddingInlineStart:o,paddingInlineEnd:n.calc(o).div(2).equal(),[`${e}-disabled&`]:{color:s,borderColor:a,cursor:"not-allowed"},"&-content":{display:"inline-block",marginInlineEnd:n.calc(o).div(2).equal(),overflow:"hidden",whiteSpace:"pre",textOverflow:"ellipsis"},"&-remove":Object.assign(Object.assign({},wx()),{display:"inline-flex",alignItems:"center",color:l,fontWeight:"bold",fontSize:10,lineHeight:"inherit",cursor:"pointer",[`> ${t}`]:{verticalAlign:"-0.2em"},"&:hover":{color:u}})}}}},QGe=(n,e)=>{const{componentCls:t}=n,i=`${t}-selection-overflow`,r=n.multipleSelectItemHeight,o=jGe(n),s=e?`${t}-${e}`:"",a=Noe(n);return{[`${t}-multiple${s}`]:Object.assign(Object.assign({},koe(n)),{[`${t}-selector`]:{display:"flex",flexWrap:"wrap",alignItems:"center",height:"100%",paddingInline:a.basePadding,paddingBlock:a.containerPadding,borderRadius:n.borderRadius,[`${t}-disabled&`]:{background:n.multipleSelectorBgDisabled,cursor:"not-allowed"},"&:after":{display:"inline-block",width:0,margin:`${Te(pM)} 0`,lineHeight:Te(r),visibility:"hidden",content:'"\\a0"'}},[`${t}-selection-item`]:{height:a.itemHeight,lineHeight:Te(a.itemLineHeight)},[`${i}-item + ${i}-item`]:{[`${t}-selection-search`]:{marginInlineStart:0}},[`${i}-item-suffix`]:{height:"100%"},[`${t}-selection-search`]:{display:"inline-flex",position:"relative",maxWidth:"100%",marginInlineStart:n.calc(n.inputPaddingHorizontalBase).sub(o).equal(),"\n &-input,\n &-mirror\n ":{height:r,fontFamily:n.fontFamily,lineHeight:Te(r),transition:`all ${n.motionDurationSlow}`},"&-input":{width:"100%",minWidth:4.1},"&-mirror":{position:"absolute",top:0,insetInlineStart:0,insetInlineEnd:"auto",zIndex:999,whiteSpace:"pre",visibility:"hidden"}},[`${t}-selection-placeholder`]:{position:"absolute",top:"50%",insetInlineStart:n.inputPaddingHorizontalBase,insetInlineEnd:n.inputPaddingHorizontalBase,transform:"translateY(-50%)",transition:`all ${n.motionDurationSlow}`}})}};function U4(n,e){const{componentCls:t}=n,i=e?`${t}-${e}`:"",r={[`${t}-multiple${i}`]:{fontSize:n.fontSize,[`${t}-selector`]:{[`${t}-show-search&`]:{cursor:"text"}},[` + &${t}-show-arrow ${t}-selector, + &${t}-allow-clear ${t}-selector + `]:{paddingInlineEnd:n.calc(n.fontSizeIcon).add(n.controlPaddingHorizontal).equal()}}};return[QGe(n,e),r]}const $Ge=n=>{const{componentCls:e}=n,t=Bi(n,{selectHeight:n.controlHeightSM,multipleSelectItemHeight:n.multipleItemHeightSM,borderRadius:n.borderRadiusSM,borderRadiusSM:n.borderRadiusXS}),i=Bi(n,{fontSize:n.fontSizeLG,selectHeight:n.controlHeightLG,multipleSelectItemHeight:n.multipleItemHeightLG,borderRadius:n.borderRadiusLG,borderRadiusSM:n.borderRadius});return[U4(n),U4(t,"sm"),{[`${e}-multiple${e}-sm`]:{[`${e}-selection-placeholder`]:{insetInline:n.calc(n.controlPaddingHorizontalSM).sub(n.lineWidth).equal()},[`${e}-selection-search`]:{marginInlineStart:2}}},U4(i,"lg")]};function J4(n,e){const{componentCls:t,inputPaddingHorizontalBase:i,borderRadius:r}=n,o=n.calc(n.controlHeight).sub(n.calc(n.lineWidth).mul(2)).equal(),s=e?`${t}-${e}`:"";return{[`${t}-single${s}`]:{fontSize:n.fontSize,height:n.controlHeight,[`${t}-selector`]:Object.assign(Object.assign({},oo(n,!0)),{display:"flex",borderRadius:r,[`${t}-selection-search`]:{position:"absolute",top:0,insetInlineStart:i,insetInlineEnd:i,bottom:0,"&-input":{width:"100%",WebkitAppearance:"textfield"}},[` + ${t}-selection-item, + ${t}-selection-placeholder + `]:{padding:0,lineHeight:Te(o),transition:`all ${n.motionDurationSlow}, visibility 0s`,alignSelf:"center"},[`${t}-selection-placeholder`]:{transition:"none",pointerEvents:"none"},[["&:after",`${t}-selection-item:empty:after`,`${t}-selection-placeholder:empty:after`].join(",")]:{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'}}),[` + &${t}-show-arrow ${t}-selection-item, + &${t}-show-arrow ${t}-selection-placeholder + `]:{paddingInlineEnd:n.showArrowPaddingInlineEnd},[`&${t}-open ${t}-selection-item`]:{color:n.colorTextPlaceholder},[`&:not(${t}-customize-input)`]:{[`${t}-selector`]:{width:"100%",height:"100%",padding:`0 ${Te(i)}`,[`${t}-selection-search-input`]:{height:o},"&:after":{lineHeight:Te(o)}}},[`&${t}-customize-input`]:{[`${t}-selector`]:{"&:after":{display:"none"},[`${t}-selection-search`]:{position:"static",width:"100%"},[`${t}-selection-placeholder`]:{position:"absolute",insetInlineStart:0,insetInlineEnd:0,padding:`0 ${Te(i)}`,"&:after":{display:"none"}}}}}}}function qGe(n){const{componentCls:e}=n,t=n.calc(n.controlPaddingHorizontalSM).sub(n.lineWidth).equal();return[J4(n),J4(Bi(n,{controlHeight:n.controlHeightSM,borderRadius:n.borderRadiusSM}),"sm"),{[`${e}-single${e}-sm`]:{[`&:not(${e}-customize-input)`]:{[`${e}-selection-search`]:{insetInlineStart:t,insetInlineEnd:t},[`${e}-selector`]:{padding:`0 ${Te(t)}`},[`&${e}-show-arrow ${e}-selection-search`]:{insetInlineEnd:n.calc(t).add(n.calc(n.fontSize).mul(1.5)).equal()},[` + &${e}-show-arrow ${e}-selection-item, + &${e}-show-arrow ${e}-selection-placeholder + `]:{paddingInlineEnd:n.calc(n.fontSize).mul(1.5).equal()}}}},J4(Bi(n,{controlHeight:n.singleItemHeightLG,fontSize:n.fontSizeLG,borderRadius:n.borderRadiusLG}),"lg")]}const eVe=n=>{const{fontSize:e,lineHeight:t,controlHeight:i,controlHeightSM:r,controlHeightLG:o,paddingXXS:s,controlPaddingHorizontal:a,zIndexPopupBase:l,colorText:u,fontWeightStrong:c,controlItemBgActive:d,controlItemBgHover:h,colorBgContainer:g,colorFillSecondary:m,colorBgContainerDisabled:f,colorTextDisabled:b}=n,C=i-s*2,v=r-s*2,w=o-s*2;return{zIndexPopup:l+50,optionSelectedColor:u,optionSelectedFontWeight:c,optionSelectedBg:d,optionActiveBg:h,optionPadding:`${(i-e*t)/2}px ${a}px`,optionFontSize:e,optionLineHeight:t,optionHeight:i,selectorBg:g,clearBg:g,singleItemHeightLG:o,multipleItemBg:m,multipleItemBorderColor:"transparent",multipleItemHeight:C,multipleItemHeightSM:v,multipleItemHeightLG:w,multipleSelectorBgDisabled:f,multipleItemColorDisabled:b,multipleItemBorderColorDisabled:"transparent",showArrowPaddingInlineEnd:Math.ceil(n.fontSize*1.25)}},Moe=(n,e)=>{const{componentCls:t,antCls:i,controlOutlineWidth:r}=n;return{[`&:not(${t}-customize-input) ${t}-selector`]:{border:`${Te(n.lineWidth)} ${n.lineType} ${e.borderColor}`,background:n.selectorBg},[`&:not(${t}-disabled):not(${t}-customize-input):not(${i}-pagination-size-changer)`]:{[`&:hover ${t}-selector`]:{borderColor:e.hoverBorderHover},[`${t}-focused& ${t}-selector`]:{borderColor:e.activeBorderColor,boxShadow:`0 0 0 ${Te(r)} ${e.activeShadowColor}`,outline:0}}}},Zoe=(n,e)=>({[`&${n.componentCls}-status-${e.status}`]:Object.assign({},Moe(n,e))}),tVe=n=>({"&-outlined":Object.assign(Object.assign(Object.assign(Object.assign({},Moe(n,{borderColor:n.colorBorder,hoverBorderHover:n.colorPrimaryHover,activeBorderColor:n.colorPrimary,activeShadowColor:n.controlOutline})),Zoe(n,{status:"error",borderColor:n.colorError,hoverBorderHover:n.colorErrorHover,activeBorderColor:n.colorError,activeShadowColor:n.colorErrorOutline})),Zoe(n,{status:"warning",borderColor:n.colorWarning,hoverBorderHover:n.colorWarningHover,activeBorderColor:n.colorWarning,activeShadowColor:n.colorWarningOutline})),{[`&${n.componentCls}-disabled`]:{[`&:not(${n.componentCls}-customize-input) ${n.componentCls}-selector`]:{background:n.colorBgContainerDisabled,color:n.colorTextDisabled}},[`&${n.componentCls}-multiple ${n.componentCls}-selection-item`]:{background:n.multipleItemBg,border:`${Te(n.lineWidth)} ${n.lineType} ${n.multipleItemBorderColor}`}})}),Toe=(n,e)=>{const{componentCls:t,antCls:i}=n;return{[`&:not(${t}-customize-input) ${t}-selector`]:{background:e.bg,border:`${Te(n.lineWidth)} ${n.lineType} transparent`,color:e.color},[`&:not(${t}-disabled):not(${t}-customize-input):not(${i}-pagination-size-changer)`]:{[`&:hover ${t}-selector`]:{background:e.hoverBg},[`${t}-focused& ${t}-selector`]:{background:n.selectorBg,borderColor:e.activeBorderColor,outline:0}}}},Eoe=(n,e)=>({[`&${n.componentCls}-status-${e.status}`]:Object.assign({},Toe(n,e))}),nVe=n=>({"&-filled":Object.assign(Object.assign(Object.assign(Object.assign({},Toe(n,{bg:n.colorFillTertiary,hoverBg:n.colorFillSecondary,activeBorderColor:n.colorPrimary,color:n.colorText})),Eoe(n,{status:"error",bg:n.colorErrorBg,hoverBg:n.colorErrorBgHover,activeBorderColor:n.colorError,color:n.colorError})),Eoe(n,{status:"warning",bg:n.colorWarningBg,hoverBg:n.colorWarningBgHover,activeBorderColor:n.colorWarning,color:n.colorWarning})),{[`&${n.componentCls}-disabled`]:{[`&:not(${n.componentCls}-customize-input) ${n.componentCls}-selector`]:{borderColor:n.colorBorder,background:n.colorBgContainerDisabled,color:n.colorTextDisabled}},[`&${n.componentCls}-multiple ${n.componentCls}-selection-item`]:{background:n.colorBgContainer,border:`${Te(n.lineWidth)} ${n.lineType} ${n.colorSplit}`}})}),iVe=n=>({"&-borderless":{[`${n.componentCls}-selector`]:{background:"transparent",borderColor:"transparent"},[`&${n.componentCls}-disabled`]:{[`&:not(${n.componentCls}-customize-input) ${n.componentCls}-selector`]:{color:n.colorTextDisabled}},[`&${n.componentCls}-multiple ${n.componentCls}-selection-item`]:{background:n.multipleItemBg,border:`${Te(n.lineWidth)} ${n.lineType} ${n.multipleItemBorderColor}`}}}),rVe=n=>({[n.componentCls]:Object.assign(Object.assign(Object.assign({},tVe(n)),nVe(n)),iVe(n))}),oVe=n=>{const{componentCls:e}=n;return{position:"relative",transition:`all ${n.motionDurationMid} ${n.motionEaseInOut}`,input:{cursor:"pointer"},[`${e}-show-search&`]:{cursor:"text",input:{cursor:"auto",color:"inherit",height:"100%"}},[`${e}-disabled&`]:{cursor:"not-allowed",input:{cursor:"not-allowed"}}}},sVe=n=>{const{componentCls:e}=n;return{[`${e}-selection-search-input`]:{margin:0,padding:0,background:"transparent",border:"none",outline:"none",appearance:"none",fontFamily:"inherit","&::-webkit-search-cancel-button":{display:"none","-webkit-appearance":"none"}}}},aVe=n=>{const{antCls:e,componentCls:t,inputPaddingHorizontalBase:i,iconCls:r}=n;return{[t]:Object.assign(Object.assign({},oo(n)),{position:"relative",display:"inline-block",cursor:"pointer",[`&:not(${t}-customize-input) ${t}-selector`]:Object.assign(Object.assign({},oVe(n)),sVe(n)),[`${t}-selection-item`]:Object.assign(Object.assign({flex:1,fontWeight:"normal",position:"relative",userSelect:"none"},Vp),{[`> ${e}-typography`]:{display:"inline"}}),[`${t}-selection-placeholder`]:Object.assign(Object.assign({},Vp),{flex:1,color:n.colorTextPlaceholder,pointerEvents:"none"}),[`${t}-arrow`]:Object.assign(Object.assign({},wx()),{position:"absolute",top:"50%",insetInlineStart:"auto",insetInlineEnd:i,height:n.fontSizeIcon,marginTop:n.calc(n.fontSizeIcon).mul(-1).div(2).equal(),color:n.colorTextQuaternary,fontSize:n.fontSizeIcon,lineHeight:1,textAlign:"center",pointerEvents:"none",display:"flex",alignItems:"center",transition:`opacity ${n.motionDurationSlow} ease`,[r]:{verticalAlign:"top",transition:`transform ${n.motionDurationSlow}`,"> svg":{verticalAlign:"top"},[`&:not(${t}-suffix)`]:{pointerEvents:"auto"}},[`${t}-disabled &`]:{cursor:"not-allowed"},"> *:not(:last-child)":{marginInlineEnd:8}}),[`${t}-clear`]:{position:"absolute",top:"50%",insetInlineStart:"auto",insetInlineEnd:i,zIndex:1,display:"inline-block",width:n.fontSizeIcon,height:n.fontSizeIcon,marginTop:n.calc(n.fontSizeIcon).mul(-1).div(2).equal(),color:n.colorTextQuaternary,fontSize:n.fontSizeIcon,fontStyle:"normal",lineHeight:1,textAlign:"center",textTransform:"none",cursor:"pointer",opacity:0,transition:`color ${n.motionDurationMid} ease, opacity ${n.motionDurationSlow} ease`,textRendering:"auto","&:before":{display:"block"},"&:hover":{color:n.colorTextTertiary}},"&:hover":{[`${t}-clear`]:{opacity:1},[`${t}-arrow:not(:last-child)`]:{opacity:0}}}),[`${t}-has-feedback`]:{[`${t}-clear`]:{insetInlineEnd:n.calc(i).add(n.fontSize).add(n.paddingXS).equal()}}}},lVe=n=>{const{componentCls:e}=n;return[{[e]:{[`&${e}-in-form-item`]:{width:"100%"}}},aVe(n),qGe(n),$Ge(n),KGe(n),{[`${e}-rtl`]:{direction:"rtl"}},Dx(n,{borderElCls:`${e}-selector`,focusElCls:`${e}-focused`})]},uVe=Oo("Select",(n,e)=>{let{rootPrefixCls:t}=e;const i=Bi(n,{rootPrefixCls:t,inputPaddingHorizontalBase:n.calc(n.paddingSM).sub(1).equal(),multipleSelectItemHeight:n.multipleItemHeight,selectHeight:n.controlHeight});return[lVe(i),rVe(i)]},eVe,{unitless:{optionLineHeight:!0,optionSelectedFontWeight:!0}});var cVe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 00-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z"}}]},name:"check",theme:"outlined"};const dVe=cVe;var hVe=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:dVe}))},gVe=I.forwardRef(hVe);const Woe=gVe;var mVe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"}}]},name:"down",theme:"outlined"};const fVe=mVe;var pVe=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:fVe}))},bVe=I.forwardRef(pVe);const Roe=bVe;var CVe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M909.6 854.5L649.9 594.8C690.2 542.7 712 479 712 412c0-80.2-31.3-155.4-87.9-212.1-56.6-56.7-132-87.9-212.1-87.9s-155.5 31.3-212.1 87.9C143.2 256.5 112 331.8 112 412c0 80.1 31.3 155.5 87.9 212.1C256.5 680.8 331.8 712 412 712c67 0 130.6-21.8 182.7-62l259.7 259.6a8.2 8.2 0 0011.6 0l43.6-43.5a8.2 8.2 0 000-11.6zM570.4 570.4C528 612.7 471.8 636 412 636s-116-23.3-158.4-65.6C211.3 528 188 471.8 188 412s23.3-116.1 65.6-158.4C296 211.3 352.2 188 412 188s116.1 23.2 158.4 65.6S636 352.2 636 412s-23.3 116.1-65.6 158.4z"}}]},name:"search",theme:"outlined"};const vVe=CVe;var yVe=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:vVe}))},IVe=I.forwardRef(yVe);const Goe=IVe;function Voe(n){let{suffixIcon:e,clearIcon:t,menuItemSelectedIcon:i,removeIcon:r,loading:o,multiple:s,hasFeedback:a,prefixCls:l,showSuffixIcon:u,feedbackIcon:c,showArrow:d,componentName:h}=n;const g=t??I.createElement(R1,null),m=v=>e===null&&!a&&!d?null:I.createElement(I.Fragment,null,u!==!1&&v,a&&c);let f=null;if(e!==void 0)f=m(e);else if(o)f=m(I.createElement(Ey,{spin:!0}));else{const v=`${l}-suffix`;f=w=>{let{open:S,showSearch:F}=w;return m(S&&F?I.createElement(Goe,{className:v}):I.createElement(Roe,{className:v}))}}let b=null;i!==void 0?b=i:s?b=I.createElement(Woe,null):b=null;let C=null;return r!==void 0?C=r:C=I.createElement(Xp,null),{clearIcon:g,suffixIcon:f,itemIcon:b,removeIcon:C}}function wVe(n,e){return e!==void 0?e:n!==null}var SVe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{var t;const{prefixCls:i,bordered:r,className:o,rootClassName:s,getPopupContainer:a,popupClassName:l,dropdownClassName:u,listHeight:c=256,placement:d,listItemHeight:h,size:g,disabled:m,notFoundContent:f,status:b,builtinPlacements:C,dropdownMatchSelectWidth:v,popupMatchSelectWidth:w,direction:S,style:F,allowClear:L,variant:D,dropdownStyle:A,transitionName:M,tagRender:W,maxCount:Z}=n,T=SVe(n,["prefixCls","bordered","className","rootClassName","getPopupContainer","popupClassName","dropdownClassName","listHeight","placement","listItemHeight","size","disabled","notFoundContent","status","builtinPlacements","dropdownMatchSelectWidth","popupMatchSelectWidth","direction","style","allowClear","variant","dropdownStyle","transitionName","tagRender","maxCount"]),{getPopupContainer:E,getPrefixCls:V,renderEmpty:z,direction:O,virtual:P,popupMatchSelectWidth:B,popupOverflow:Y,select:k}=I.useContext(Tn),[,X]=Ga(),U=h??(X==null?void 0:X.controlHeight),R=V("select",i),ee=V(),oe=S??O,{compactSize:se,compactItemClassnames:ue}=Bp(R,oe),[ce,ye]=By(D,r),fe=ys(R),[le,Ze,ke]=uVe(R,fe),Ne=I.useMemo(()=>{const{mode:yt}=n;if(yt!=="combobox")return yt===Xoe?"combobox":yt},[n.mode]),ze=Ne==="multiple"||Ne==="tags",Ke=wVe(n.suffixIcon,n.showArrow),ut=(t=w??v)!==null&&t!==void 0?t:B,{status:Ct,hasFeedback:ot,isFormItemInput:he,feedbackIcon:de}=I.useContext(Xa),ge=z1(Ct,b);let j;f!==void 0?j=f:Ne==="combobox"?j=null:j=(z==null?void 0:z("Select"))||I.createElement(YGe,{componentName:"Select"});const{suffixIcon:Q,itemIcon:q,removeIcon:te,clearIcon:Ce}=Voe(Object.assign(Object.assign({},T),{multiple:ze,hasFeedback:ot,feedbackIcon:de,showSuffixIcon:Ke,prefixCls:R,componentName:"Select"})),Le=L===!0?{clearIcon:Ce}:L,Ae=ra(T,["suffixIcon","itemIcon"]),Oe=Me(l||u,{[`${R}-dropdown-${oe}`]:oe==="rtl"},s,ke,fe,Ze),tt=cc(yt=>{var Kt;return(Kt=g??se)!==null&&Kt!==void 0?Kt:yt}),We=I.useContext(Kd),ht=m??We,He=Me({[`${R}-lg`]:tt==="large",[`${R}-sm`]:tt==="small",[`${R}-rtl`]:oe==="rtl",[`${R}-${ce}`]:ye,[`${R}-in-form-item`]:he},Yp(R,ge,ot),ue,k==null?void 0:k.className,o,s,ke,fe,Ze),Re=I.useMemo(()=>d!==void 0?d:oe==="rtl"?"bottomRight":"bottomLeft",[d,oe]),[dt]=V1("SelectLike",A==null?void 0:A.zIndex);return le(I.createElement(Y4,Object.assign({ref:e,virtual:P,showSearch:k==null?void 0:k.showSearch},Ae,{style:Object.assign(Object.assign({},k==null?void 0:k.style),F),dropdownMatchSelectWidth:ut,transitionName:Op(ee,"slide-up",M),builtinPlacements:JGe(C,Y),listHeight:c,listItemHeight:U,mode:Ne,prefixCls:R,placement:Re,direction:oe,suffixIcon:Q,menuItemSelectedIcon:q,removeIcon:te,allowClear:Le,notFoundContent:j,className:He,getPopupContainer:a||E,dropdownClassName:Oe,disabled:ht,dropdownStyle:Object.assign(Object.assign({},A),{zIndex:dt}),maxCount:ze?Z:void 0,tagRender:ze?W:void 0})))},zy=I.forwardRef(xVe),LVe=hM(zy);zy.SECRET_COMBOBOX_MODE_DO_NOT_USE=Xoe,zy.Option=B4,zy.OptGroup=O4,zy._InternalPanelDoNotUseOrYouWillBeFired=LVe;const Yy=zy,Yx=["xxl","xl","lg","md","sm","xs"],FVe=n=>({xs:`(max-width: ${n.screenXSMax}px)`,sm:`(min-width: ${n.screenSM}px)`,md:`(min-width: ${n.screenMD}px)`,lg:`(min-width: ${n.screenLG}px)`,xl:`(min-width: ${n.screenXL}px)`,xxl:`(min-width: ${n.screenXXL}px)`}),_Ve=n=>{const e=n,t=[].concat(Yx).reverse();return t.forEach((i,r)=>{const o=i.toUpperCase(),s=`screen${o}Min`,a=`screen${o}`;if(!(e[s]<=e[a]))throw new Error(`${s}<=${a} fails : !(${e[s]}<=${e[a]})`);if(r{const t=new Map;let i=-1,r={};return{matchHandlers:{},dispatch(o){return r=o,t.forEach(s=>s(r)),t.size>=1},subscribe(o){return t.size||this.register(),i+=1,t.set(i,o),o(r),i},unsubscribe(o){t.delete(o),t.size||this.unregister()},unregister(){Object.keys(e).forEach(o=>{const s=e[o],a=this.matchHandlers[s];a==null||a.mql.removeListener(a==null?void 0:a.listener)}),t.clear()},register(){Object.keys(e).forEach(o=>{const s=e[o],a=u=>{let{matches:c}=u;this.dispatch(Object.assign(Object.assign({},r),{[o]:c}))},l=window.matchMedia(s);l.addListener(a),this.matchHandlers[s]={mql:l,listener:a},a(l)})},responsiveMap:e}},[n])}function AVe(){const[,n]=I.useReducer(e=>e+1,0);return n}const bM=n=>n?typeof n=="function"?n():n:null;function K4(n){var e=n.children,t=n.prefixCls,i=n.id,r=n.overlayInnerStyle,o=n.className,s=n.style;return I.createElement("div",{className:Me("".concat(t,"-content"),o),style:s},I.createElement("div",{className:"".concat(t,"-inner"),id:i,role:"tooltip",style:r},typeof e=="function"?e():e))}var Hy={shiftX:64,adjustY:1},Uy={adjustX:1,shiftY:!0},qc=[0,0],NVe={left:{points:["cr","cl"],overflow:Uy,offset:[-4,0],targetOffset:qc},right:{points:["cl","cr"],overflow:Uy,offset:[4,0],targetOffset:qc},top:{points:["bc","tc"],overflow:Hy,offset:[0,-4],targetOffset:qc},bottom:{points:["tc","bc"],overflow:Hy,offset:[0,4],targetOffset:qc},topLeft:{points:["bl","tl"],overflow:Hy,offset:[0,-4],targetOffset:qc},leftTop:{points:["tr","tl"],overflow:Uy,offset:[-4,0],targetOffset:qc},topRight:{points:["br","tr"],overflow:Hy,offset:[0,-4],targetOffset:qc},rightTop:{points:["tl","tr"],overflow:Uy,offset:[4,0],targetOffset:qc},bottomRight:{points:["tr","br"],overflow:Hy,offset:[0,4],targetOffset:qc},rightBottom:{points:["bl","br"],overflow:Uy,offset:[4,0],targetOffset:qc},bottomLeft:{points:["tl","bl"],overflow:Hy,offset:[0,4],targetOffset:qc},leftBottom:{points:["br","bl"],overflow:Uy,offset:[-4,0],targetOffset:qc}},kVe=["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","motion","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer","overlayInnerStyle","arrowContent","overlay","id","showArrow"],MVe=function(e,t){var i=e.overlayClassName,r=e.trigger,o=r===void 0?["hover"]:r,s=e.mouseEnterDelay,a=s===void 0?0:s,l=e.mouseLeaveDelay,u=l===void 0?.1:l,c=e.overlayStyle,d=e.prefixCls,h=d===void 0?"rc-tooltip":d,g=e.children,m=e.onVisibleChange,f=e.afterVisibleChange,b=e.transitionName,C=e.animation,v=e.motion,w=e.placement,S=w===void 0?"right":w,F=e.align,L=F===void 0?{}:F,D=e.destroyTooltipOnHide,A=D===void 0?!1:D,M=e.defaultVisible,W=e.getTooltipContainer,Z=e.overlayInnerStyle;e.arrowContent;var T=e.overlay,E=e.id,V=e.showArrow,z=V===void 0?!0:V,O=zn(e,kVe),P=I.useRef(null);I.useImperativeHandle(t,function(){return P.current});var B=Se({},O);"visible"in e&&(B.popupVisible=e.visible);var Y=function(){return I.createElement(K4,{key:"content",prefixCls:h,id:E,overlayInnerStyle:Z},T)};return I.createElement(Bx,pt({popupClassName:i,prefixCls:h,popup:Y,action:o,builtinPlacements:NVe,popupPlacement:S,ref:P,popupAlign:L,getPopupContainer:W,onPopupVisibleChange:m,afterPopupVisibleChange:f,popupTransitionName:b,popupAnimation:C,popupMotion:v,defaultPopupVisible:M,autoDestroy:A,mouseLeaveDelay:u,popupStyle:c,mouseEnterDelay:a,arrow:z},B),g)};const ZVe=I.forwardRef(MVe);function CM(n){const{sizePopupArrow:e,borderRadiusXS:t,borderRadiusOuter:i}=n,r=e/2,o=0,s=r,a=i*1/Math.sqrt(2),l=r-i*(1-1/Math.sqrt(2)),u=r-t*(1/Math.sqrt(2)),c=i*(Math.sqrt(2)-1)+t*(1/Math.sqrt(2)),d=2*r-u,h=c,g=2*r-a,m=l,f=2*r-o,b=s,C=r*Math.sqrt(2)+i*(Math.sqrt(2)-2),v=i*(Math.sqrt(2)-1),w=`polygon(${v}px 100%, 50% ${v}px, ${2*r-v}px 100%, ${v}px 100%)`,S=`path('M ${o} ${s} A ${i} ${i} 0 0 0 ${a} ${l} L ${u} ${c} A ${t} ${t} 0 0 1 ${d} ${h} L ${g} ${m} A ${i} ${i} 0 0 0 ${f} ${b} Z')`;return{arrowShadowWidth:C,arrowPath:S,arrowPolygon:w}}const Poe=(n,e,t)=>{const{sizePopupArrow:i,arrowPolygon:r,arrowPath:o,arrowShadowWidth:s,borderRadiusXS:a,calc:l}=n;return{pointerEvents:"none",width:i,height:i,overflow:"hidden","&::before":{position:"absolute",bottom:0,insetInlineStart:0,width:i,height:l(i).div(2).equal(),background:e,clipPath:{_multi_value_:!0,value:[r,o]},content:'""'},"&::after":{content:'""',position:"absolute",width:s,height:s,bottom:0,insetInline:0,margin:"auto",borderRadius:{_skip_check_:!0,value:`0 0 ${Te(a)} 0`},transform:"translateY(50%) rotate(-135deg)",boxShadow:t,zIndex:0,background:"transparent"}}},Ooe=8;function vM(n){const{contentRadius:e,limitVerticalRadius:t}=n,i=e>12?e+2:12;return{arrowOffsetHorizontal:i,arrowOffsetVertical:t?Ooe:i}}function yM(n,e){return n?e:{}}function j4(n,e,t){const{componentCls:i,boxShadowPopoverArrow:r,arrowOffsetVertical:o,arrowOffsetHorizontal:s}=n,{arrowDistance:a=0,arrowPlacement:l={left:!0,right:!0,top:!0,bottom:!0}}=t||{};return{[i]:Object.assign(Object.assign(Object.assign(Object.assign({[`${i}-arrow`]:[Object.assign(Object.assign({position:"absolute",zIndex:1,display:"block"},Poe(n,e,r)),{"&:before":{background:e}})]},yM(!!l.top,{[[`&-placement-top > ${i}-arrow`,`&-placement-topLeft > ${i}-arrow`,`&-placement-topRight > ${i}-arrow`].join(",")]:{bottom:a,transform:"translateY(100%) rotate(180deg)"},[`&-placement-top > ${i}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(100%) rotate(180deg)"},[`&-placement-topLeft > ${i}-arrow`]:{left:{_skip_check_:!0,value:s}},[`&-placement-topRight > ${i}-arrow`]:{right:{_skip_check_:!0,value:s}}})),yM(!!l.bottom,{[[`&-placement-bottom > ${i}-arrow`,`&-placement-bottomLeft > ${i}-arrow`,`&-placement-bottomRight > ${i}-arrow`].join(",")]:{top:a,transform:"translateY(-100%)"},[`&-placement-bottom > ${i}-arrow`]:{left:{_skip_check_:!0,value:"50%"},transform:"translateX(-50%) translateY(-100%)"},[`&-placement-bottomLeft > ${i}-arrow`]:{left:{_skip_check_:!0,value:s}},[`&-placement-bottomRight > ${i}-arrow`]:{right:{_skip_check_:!0,value:s}}})),yM(!!l.left,{[[`&-placement-left > ${i}-arrow`,`&-placement-leftTop > ${i}-arrow`,`&-placement-leftBottom > ${i}-arrow`].join(",")]:{right:{_skip_check_:!0,value:a},transform:"translateX(100%) rotate(90deg)"},[`&-placement-left > ${i}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(100%) rotate(90deg)"},[`&-placement-leftTop > ${i}-arrow`]:{top:o},[`&-placement-leftBottom > ${i}-arrow`]:{bottom:o}})),yM(!!l.right,{[[`&-placement-right > ${i}-arrow`,`&-placement-rightTop > ${i}-arrow`,`&-placement-rightBottom > ${i}-arrow`].join(",")]:{left:{_skip_check_:!0,value:a},transform:"translateX(-100%) rotate(-90deg)"},[`&-placement-right > ${i}-arrow`]:{top:{_skip_check_:!0,value:"50%"},transform:"translateY(-50%) translateX(-100%) rotate(-90deg)"},[`&-placement-rightTop > ${i}-arrow`]:{top:o},[`&-placement-rightBottom > ${i}-arrow`]:{bottom:o}}))}}function TVe(n,e,t,i){if(i===!1)return{adjustX:!1,adjustY:!1};const r=i&&typeof i=="object"?i:{},o={};switch(n){case"top":case"bottom":o.shiftX=e.arrowOffsetHorizontal*2+t,o.shiftY=!0,o.adjustY=!0;break;case"left":case"right":o.shiftY=e.arrowOffsetVertical*2+t,o.shiftX=!0,o.adjustX=!0;break}const s=Object.assign(Object.assign({},o),r);return s.shiftX||(s.adjustX=!0),s.shiftY||(s.adjustY=!0),s}const Boe={left:{points:["cr","cl"]},right:{points:["cl","cr"]},top:{points:["bc","tc"]},bottom:{points:["tc","bc"]},topLeft:{points:["bl","tl"]},leftTop:{points:["tr","tl"]},topRight:{points:["br","tr"]},rightTop:{points:["tl","tr"]},bottomRight:{points:["tr","br"]},rightBottom:{points:["bl","br"]},bottomLeft:{points:["tl","bl"]},leftBottom:{points:["br","bl"]}},EVe={topLeft:{points:["bl","tc"]},leftTop:{points:["tr","cl"]},topRight:{points:["br","tc"]},rightTop:{points:["tl","cr"]},bottomRight:{points:["tr","bc"]},rightBottom:{points:["bl","cr"]},bottomLeft:{points:["tl","bc"]},leftBottom:{points:["br","cl"]}},WVe=new Set(["topLeft","topRight","bottomLeft","bottomRight","leftTop","leftBottom","rightTop","rightBottom"]);function zoe(n){const{arrowWidth:e,autoAdjustOverflow:t,arrowPointAtCenter:i,offset:r,borderRadius:o,visibleFirst:s}=n,a=e/2,l={};return Object.keys(Boe).forEach(u=>{const c=i&&EVe[u]||Boe[u],d=Object.assign(Object.assign({},c),{offset:[0,0],dynamicInset:!0});switch(l[u]=d,WVe.has(u)&&(d.autoArrow=!1),u){case"top":case"topLeft":case"topRight":d.offset[1]=-a-r;break;case"bottom":case"bottomLeft":case"bottomRight":d.offset[1]=a+r;break;case"left":case"leftTop":case"leftBottom":d.offset[0]=-a-r;break;case"right":case"rightTop":case"rightBottom":d.offset[0]=a+r;break}const h=vM({contentRadius:o,limitVerticalRadius:!0});if(i)switch(u){case"topLeft":case"bottomLeft":d.offset[0]=-h.arrowOffsetHorizontal-a;break;case"topRight":case"bottomRight":d.offset[0]=h.arrowOffsetHorizontal+a;break;case"leftTop":case"rightTop":d.offset[1]=-h.arrowOffsetHorizontal-a;break;case"leftBottom":case"rightBottom":d.offset[1]=h.arrowOffsetHorizontal+a;break}d.overflow=TVe(u,h,e,t),s&&(d.htmlRegion="visibleFirst")}),l}const RVe=n=>{const{componentCls:e,tooltipMaxWidth:t,tooltipColor:i,tooltipBg:r,tooltipBorderRadius:o,zIndexPopup:s,controlHeight:a,boxShadowSecondary:l,paddingSM:u,paddingXS:c}=n;return[{[e]:Object.assign(Object.assign(Object.assign(Object.assign({},oo(n)),{position:"absolute",zIndex:s,display:"block",width:"max-content",maxWidth:t,visibility:"visible",transformOrigin:"var(--arrow-x, 50%) var(--arrow-y, 50%)","&-hidden":{display:"none"},"--antd-arrow-background-color":r,[`${e}-inner`]:{minWidth:a,minHeight:a,padding:`${Te(n.calc(u).div(2).equal())} ${Te(c)}`,color:i,textAlign:"start",textDecoration:"none",wordWrap:"break-word",backgroundColor:r,borderRadius:o,boxShadow:l,boxSizing:"border-box"},[["&-placement-left","&-placement-leftTop","&-placement-leftBottom","&-placement-right","&-placement-rightTop","&-placement-rightBottom"].join(",")]:{[`${e}-inner`]:{borderRadius:n.min(o,Ooe)}},[`${e}-content`]:{position:"relative"}}),o5e(n,(d,h)=>{let{darkColor:g}=h;return{[`&${e}-${d}`]:{[`${e}-inner`]:{backgroundColor:g},[`${e}-arrow`]:{"--antd-arrow-background-color":g}}}})),{"&-rtl":{direction:"rtl"}})},j4(n,"var(--antd-arrow-background-color)"),{[`${e}-pure`]:{position:"relative",maxWidth:"none",margin:n.sizePopupArrow}}]},GVe=n=>Object.assign(Object.assign({zIndexPopup:n.zIndexPopupBase+70},vM({contentRadius:n.borderRadius,limitVerticalRadius:!0})),CM(Bi(n,{borderRadiusOuter:Math.min(n.borderRadiusOuter,4)}))),Yoe=function(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return Oo("Tooltip",i=>{const{borderRadius:r,colorTextLightSolid:o,colorBgSpotlight:s}=i,a=Bi(i,{tooltipMaxWidth:250,tooltipColor:o,tooltipBorderRadius:r,tooltipBg:s});return[RVe(a),Wx(i,"zoom-big-fast")]},GVe,{resetStyle:!1,injectStyle:e})(n)},VVe=Ix.map(n=>`${n}-inverse`);function XVe(n){return(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0)?[].concat(_t(VVe),_t(Ix)).includes(n):Ix.includes(n)}function Hoe(n,e){const t=XVe(e),i=Me({[`${n}-${e}`]:e&&t}),r={},o={};return e&&!t&&(r.background=e,o["--antd-arrow-background-color"]=e),{className:i,overlayStyle:r,arrowStyle:o}}const PVe=n=>{const{prefixCls:e,className:t,placement:i="top",title:r,color:o,overlayInnerStyle:s}=n,{getPrefixCls:a}=I.useContext(Tn),l=a("tooltip",e),[u,c,d]=Yoe(l),h=Hoe(l,o),g=h.arrowStyle,m=Object.assign(Object.assign({},s),h.overlayStyle),f=Me(c,d,l,`${l}-pure`,`${l}-placement-${i}`,t,h.className);return u(I.createElement("div",{className:f,style:g},I.createElement("div",{className:`${l}-arrow`}),I.createElement(K4,Object.assign({},n,{className:c,prefixCls:l,overlayInnerStyle:m}),r)))};var OVe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{var t,i;const{prefixCls:r,openClassName:o,getTooltipContainer:s,overlayClassName:a,color:l,overlayInnerStyle:u,children:c,afterOpenChange:d,afterVisibleChange:h,destroyTooltipOnHide:g,arrow:m=!0,title:f,overlay:b,builtinPlacements:C,arrowPointAtCenter:v=!1,autoAdjustOverflow:w=!0}=n,S=!!m,[,F]=Ga(),{getPopupContainer:L,getPrefixCls:D,direction:A}=I.useContext(Tn),M=Dy(),W=I.useRef(null),Z=()=>{var j;(j=W.current)===null||j===void 0||j.forceAlign()};I.useImperativeHandle(e,()=>({forceAlign:Z,forcePopupAlign:()=>{M.deprecated(!1,"forcePopupAlign","forceAlign"),Z()}}));const[T,E]=Ur(!1,{value:(t=n.open)!==null&&t!==void 0?t:n.visible,defaultValue:(i=n.defaultOpen)!==null&&i!==void 0?i:n.defaultVisible}),V=!f&&!b&&f!==0,z=j=>{var Q,q;E(V?!1:j),V||((Q=n.onOpenChange)===null||Q===void 0||Q.call(n,j),(q=n.onVisibleChange)===null||q===void 0||q.call(n,j))},O=I.useMemo(()=>{var j,Q;let q=v;return typeof m=="object"&&(q=(Q=(j=m.pointAtCenter)!==null&&j!==void 0?j:m.arrowPointAtCenter)!==null&&Q!==void 0?Q:v),C||zoe({arrowPointAtCenter:q,autoAdjustOverflow:w,arrowWidth:S?F.sizePopupArrow:0,borderRadius:F.borderRadius,offset:F.marginXXS,visibleFirst:!0})},[v,m,C,F]),P=I.useMemo(()=>f===0?f:b||f||"",[b,f]),B=I.createElement(Jm,null,typeof P=="function"?P():P),{getPopupContainer:Y,placement:k="top",mouseEnterDelay:X=.1,mouseLeaveDelay:U=.1,overlayStyle:R,rootClassName:ee}=n,oe=OVe(n,["getPopupContainer","placement","mouseEnterDelay","mouseLeaveDelay","overlayStyle","rootClassName"]),se=D("tooltip",r),ue=D(),ce=n["data-popover-inject"];let ye=T;!("open"in n)&&!("visible"in n)&&V&&(ye=!1);const fe=I.isValidElement(c)&&!Une(c)?c:I.createElement("span",null,c),le=fe.props,Ze=!le.className||typeof le.className=="string"?Me(le.className,o||`${se}-open`):le.className,[ke,Ne,ze]=Yoe(se,!ce),Ke=Hoe(se,l),ut=Ke.arrowStyle,Ct=Object.assign(Object.assign({},u),Ke.overlayStyle),ot=Me(a,{[`${se}-rtl`]:A==="rtl"},Ke.className,ee,Ne,ze),[he,de]=V1("Tooltip",oe.zIndex),ge=I.createElement(ZVe,Object.assign({},oe,{zIndex:he,showArrow:S,placement:k,mouseEnterDelay:X,mouseLeaveDelay:U,prefixCls:se,overlayClassName:ot,overlayStyle:Object.assign(Object.assign({},ut),R),getTooltipContainer:Y||s||L,ref:W,builtinPlacements:O,overlay:B,visible:ye,onVisibleChange:z,afterVisibleChange:d??h,overlayInnerStyle:Ct,arrowContent:I.createElement("span",{className:`${se}-arrow-content`}),motion:{motionName:Op(ue,"zoom-big-fast",n.transitionName),motionDeadline:1e3},destroyTooltipOnHide:!!g}),ye?jl(fe,{className:Ze}):fe);return ke(I.createElement(Qk.Provider,{value:de},ge))});Uoe._InternalPanelDoNotUseOrYouWillBeFired=PVe;const cg=Uoe,BVe=n=>{const{componentCls:e,popoverColor:t,titleMinWidth:i,fontWeightStrong:r,innerPadding:o,boxShadowSecondary:s,colorTextHeading:a,borderRadiusLG:l,zIndexPopup:u,titleMarginBottom:c,colorBgElevated:d,popoverBg:h,titleBorderBottom:g,innerContentPadding:m,titlePadding:f}=n;return[{[e]:Object.assign(Object.assign({},oo(n)),{position:"absolute",top:0,left:{_skip_check_:!0,value:0},zIndex:u,fontWeight:"normal",whiteSpace:"normal",textAlign:"start",cursor:"auto",userSelect:"text",transformOrigin:"var(--arrow-x, 50%) var(--arrow-y, 50%)","--antd-arrow-background-color":d,"&-rtl":{direction:"rtl"},"&-hidden":{display:"none"},[`${e}-content`]:{position:"relative"},[`${e}-inner`]:{backgroundColor:h,backgroundClip:"padding-box",borderRadius:l,boxShadow:s,padding:o},[`${e}-title`]:{minWidth:i,marginBottom:c,color:a,fontWeight:r,borderBottom:g,padding:f},[`${e}-inner-content`]:{color:t,padding:m}})},j4(n,"var(--antd-arrow-background-color)"),{[`${e}-pure`]:{position:"relative",maxWidth:"none",margin:n.sizePopupArrow,display:"inline-block",[`${e}-content`]:{display:"inline-block"}}}]},zVe=n=>{const{componentCls:e}=n;return{[e]:Ix.map(t=>{const i=n[`${t}6`];return{[`&${e}-${t}`]:{"--antd-arrow-background-color":i,[`${e}-inner`]:{backgroundColor:i},[`${e}-arrow`]:{background:"transparent"}}}})}},Joe=Oo("Popover",n=>{const{colorBgElevated:e,colorText:t}=n,i=Bi(n,{popoverBg:e,popoverColor:t});return[BVe(i),zVe(i),Wx(i,"zoom-big")]},n=>{const{lineWidth:e,controlHeight:t,fontHeight:i,padding:r,wireframe:o,zIndexPopupBase:s,borderRadiusLG:a,marginXS:l,lineType:u,colorSplit:c,paddingSM:d}=n,h=t-i,g=h/2,m=h/2-e,f=r;return Object.assign(Object.assign(Object.assign({titleMinWidth:177,zIndexPopup:s+30},CM(n)),vM({contentRadius:a,limitVerticalRadius:!0})),{innerPadding:o?0:12,titleMarginBottom:o?0:l,titlePadding:o?`${g}px ${f}px ${m}px`:0,titleBorderBottom:o?`${e}px ${u} ${c}`:"none",innerContentPadding:o?`${d}px ${f}px`:0})},{resetStyle:!1,deprecatedTokens:[["width","titleMinWidth"],["minWidth","titleMinWidth"]]});var YVe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r!e&&!t?null:I.createElement(I.Fragment,null,e&&I.createElement("div",{className:`${n}-title`},bM(e)),I.createElement("div",{className:`${n}-inner-content`},bM(t))),UVe=n=>{const{hashId:e,prefixCls:t,className:i,style:r,placement:o="top",title:s,content:a,children:l}=n;return I.createElement("div",{className:Me(e,t,`${t}-pure`,`${t}-placement-${o}`,i),style:r},I.createElement("div",{className:`${t}-arrow`}),I.createElement(K4,Object.assign({},n,{className:e,prefixCls:t}),l||HVe(t,s,a)))},JVe=n=>{const{prefixCls:e,className:t}=n,i=YVe(n,["prefixCls","className"]),{getPrefixCls:r}=I.useContext(Tn),o=r("popover",e),[s,a,l]=Joe(o);return s(I.createElement(UVe,Object.assign({},i,{prefixCls:o,hashId:a,className:Me(t,l)})))};var KVe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{let{title:e,content:t,prefixCls:i}=n;return I.createElement(I.Fragment,null,e&&I.createElement("div",{className:`${i}-title`},bM(e)),I.createElement("div",{className:`${i}-inner-content`},bM(t)))},Koe=I.forwardRef((n,e)=>{var t;const{prefixCls:i,title:r,content:o,overlayClassName:s,placement:a="top",trigger:l="hover",children:u,mouseEnterDelay:c=.1,mouseLeaveDelay:d=.1,onOpenChange:h,overlayStyle:g={}}=n,m=KVe(n,["prefixCls","title","content","overlayClassName","placement","trigger","children","mouseEnterDelay","mouseLeaveDelay","onOpenChange","overlayStyle"]),{getPrefixCls:f}=I.useContext(Tn),b=f("popover",i),[C,v,w]=Joe(b),S=f(),F=Me(s,v,w),[L,D]=Ur(!1,{value:(t=n.open)!==null&&t!==void 0?t:n.visible}),A=(Z,T)=>{D(Z,!0),h==null||h(Z,T)},M=Z=>{Z.keyCode===At.ESC&&A(!1,Z)},W=Z=>{A(Z)};return C(I.createElement(cg,Object.assign({placement:a,trigger:l,mouseEnterDelay:c,mouseLeaveDelay:d,overlayStyle:g},m,{prefixCls:b,overlayClassName:F,ref:e,open:L,onOpenChange:W,overlay:r||o?I.createElement(jVe,{prefixCls:b,title:r,content:o}):null,transitionName:Op(S,"zoom-big",m.transitionName),"data-popover-inject":!0}),jl(u,{onKeyDown:Z=>{var T,E;I.isValidElement(u)&&((E=u==null?void 0:(T=u.props).onKeyDown)===null||E===void 0||E.call(T,Z)),M(Z)}})))});Koe._InternalPanelDoNotUseOrYouWillBeFired=JVe;const Q4=Koe;var QVe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"}}]},name:"right",theme:"outlined"};const $Ve=QVe;var qVe=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:$Ve}))},eXe=I.forwardRef(qVe);const $4=eXe;var tXe=At.ESC,nXe=At.TAB;function iXe(n){var e=n.visible,t=n.triggerRef,i=n.onVisibleChange,r=n.autoFocus,o=n.overlayRef,s=I.useRef(!1),a=function(){if(e){var d,h;(d=t.current)===null||d===void 0||(h=d.focus)===null||h===void 0||h.call(d),i==null||i(!1)}},l=function(){var d;return(d=o.current)!==null&&d!==void 0&&d.focus?(o.current.focus(),s.current=!0,!0):!1},u=function(d){switch(d.keyCode){case tXe:a();break;case nXe:{var h=!1;s.current||(h=l()),h?d.preventDefault():a();break}}};I.useEffect(function(){return e?(window.addEventListener("keydown",u),r&&xi(l,3),function(){window.removeEventListener("keydown",u),s.current=!1}):function(){s.current=!1}},[e])}var rXe=I.forwardRef(function(n,e){var t=n.overlay,i=n.arrow,r=n.prefixCls,o=I.useMemo(function(){var a;return typeof t=="function"?a=t():a=t,a},[t]),s=Su(e,o==null?void 0:o.ref);return Ye.createElement(Ye.Fragment,null,i&&Ye.createElement("div",{className:"".concat(r,"-arrow")}),Ye.cloneElement(o,{ref:Pm(o)?s:void 0}))}),Jy={adjustX:1,adjustY:1},Ky=[0,0],oXe={topLeft:{points:["bl","tl"],overflow:Jy,offset:[0,-4],targetOffset:Ky},top:{points:["bc","tc"],overflow:Jy,offset:[0,-4],targetOffset:Ky},topRight:{points:["br","tr"],overflow:Jy,offset:[0,-4],targetOffset:Ky},bottomLeft:{points:["tl","bl"],overflow:Jy,offset:[0,4],targetOffset:Ky},bottom:{points:["tc","bc"],overflow:Jy,offset:[0,4],targetOffset:Ky},bottomRight:{points:["tr","br"],overflow:Jy,offset:[0,4],targetOffset:Ky}},sXe=["arrow","prefixCls","transitionName","animation","align","placement","placements","getPopupContainer","showAction","hideAction","overlayClassName","overlayStyle","visible","trigger","autoFocus","overlay","children","onVisibleChange"];function aXe(n,e){var t,i=n.arrow,r=i===void 0?!1:i,o=n.prefixCls,s=o===void 0?"rc-dropdown":o,a=n.transitionName,l=n.animation,u=n.align,c=n.placement,d=c===void 0?"bottomLeft":c,h=n.placements,g=h===void 0?oXe:h,m=n.getPopupContainer,f=n.showAction,b=n.hideAction,C=n.overlayClassName,v=n.overlayStyle,w=n.visible,S=n.trigger,F=S===void 0?["hover"]:S,L=n.autoFocus,D=n.overlay,A=n.children,M=n.onVisibleChange,W=zn(n,sXe),Z=Ye.useState(),T=we(Z,2),E=T[0],V=T[1],z="visible"in n?w:E,O=Ye.useRef(null),P=Ye.useRef(null),B=Ye.useRef(null);Ye.useImperativeHandle(e,function(){return O.current});var Y=function(ce){V(ce),M==null||M(ce)};iXe({visible:z,triggerRef:B,onVisibleChange:Y,autoFocus:L,overlayRef:P});var k=function(ce){var ye=n.onOverlayClick;V(!1),ye&&ye(ce)},X=function(){return Ye.createElement(rXe,{ref:P,overlay:D,prefixCls:s,arrow:r})},U=function(){return typeof D=="function"?X:X()},R=function(){var ce=n.minOverlayWidthMatchTrigger,ye=n.alignPoint;return"minOverlayWidthMatchTrigger"in n?ce:!ye},ee=function(){var ce=n.openClassName;return ce!==void 0?ce:"".concat(s,"-open")},oe=Ye.cloneElement(A,{className:Me((t=A.props)===null||t===void 0?void 0:t.className,z&&ee()),ref:Pm(A)?Su(B,A.ref):void 0}),se=b;return!se&&F.indexOf("contextMenu")!==-1&&(se=["click"]),Ye.createElement(Bx,pt({builtinPlacements:g},W,{prefixCls:s,ref:O,popupClassName:Me(C,me({},"".concat(s,"-show-arrow"),r)),popupStyle:v,action:F,showAction:f,hideAction:se,popupPlacement:d,popupAlign:u,popupTransitionName:a,popupAnimation:l,popupVisible:z,stretch:R()?"minWidth":"",popup:U(),onPopupVisibleChange:Y,onPopupClick:k,getPopupContainer:m}),oe)}const joe=Ye.forwardRef(aXe);var Qoe=I.createContext(null);function $oe(n,e){return n===void 0?null:"".concat(n,"-").concat(e)}function qoe(n){var e=I.useContext(Qoe);return $oe(e,n)}var lXe=["children","locked"],$d=I.createContext(null);function uXe(n,e){var t=Se({},n);return Object.keys(e).forEach(function(i){var r=e[i];r!==void 0&&(t[i]=r)}),t}function Hx(n){var e=n.children,t=n.locked,i=zn(n,lXe),r=I.useContext($d),o=cx(function(){return uXe(r,i)},[r,i],function(s,a){return!t&&(s[0]!==a[0]||!gx(s[1],a[1],!0))});return I.createElement($d.Provider,{value:o},e)}var cXe=[],ese=I.createContext(null);function IM(){return I.useContext(ese)}var tse=I.createContext(cXe);function jy(n){var e=I.useContext(tse);return I.useMemo(function(){return n!==void 0?[].concat(_t(e),[n]):e},[e,n])}var nse=I.createContext(null),q4=I.createContext({});function ise(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(Fx(n)){var t=n.nodeName.toLowerCase(),i=["input","select","textarea","button"].includes(t)||n.isContentEditable||t==="a"&&!!n.getAttribute("href"),r=n.getAttribute("tabindex"),o=Number(r),s=null;return r&&!Number.isNaN(o)?s=o:i&&s===null&&(s=0),i&&n.disabled&&(s=null),s!==null&&(s>=0||e&&s<0)}return!1}function dXe(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,t=_t(n.querySelectorAll("*")).filter(function(i){return ise(i,e)});return ise(n,e)&&t.unshift(n),t}var eP=At.LEFT,tP=At.RIGHT,nP=At.UP,wM=At.DOWN,SM=At.ENTER,rse=At.ESC,Ux=At.HOME,Jx=At.END,ose=[nP,wM,eP,tP];function hXe(n,e,t,i){var r,o="prev",s="next",a="children",l="parent";if(n==="inline"&&i===SM)return{inlineTrigger:!0};var u=me(me({},nP,o),wM,s),c=me(me(me(me({},eP,t?s:o),tP,t?o:s),wM,a),SM,a),d=me(me(me(me(me(me({},nP,o),wM,s),SM,a),rse,l),eP,t?a:l),tP,t?l:a),h={inline:u,horizontal:c,vertical:d,inlineSub:u,horizontalSub:d,verticalSub:d},g=(r=h["".concat(n).concat(e?"":"Sub")])===null||r===void 0?void 0:r[i];switch(g){case o:return{offset:-1,sibling:!0};case s:return{offset:1,sibling:!0};case l:return{offset:-1,sibling:!1};case a:return{offset:1,sibling:!1};default:return null}}function gXe(n){for(var e=n;e;){if(e.getAttribute("data-menu-list"))return e;e=e.parentElement}return null}function mXe(n,e){for(var t=n||document.activeElement;t;){if(e.has(t))return t;t=t.parentElement}return null}function iP(n,e){var t=dXe(n,!0);return t.filter(function(i){return e.has(i)})}function sse(n,e,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1;if(!n)return null;var r=iP(n,e),o=r.length,s=r.findIndex(function(a){return t===a});return i<0?s===-1?s=o-1:s-=1:i>0&&(s+=1),s=(s+o)%o,r[s]}var rP=function(e,t){var i=new Set,r=new Map,o=new Map;return e.forEach(function(s){var a=document.querySelector("[data-menu-id='".concat($oe(t,s),"']"));a&&(i.add(a),o.set(a,s),r.set(s,a))}),{elements:i,key2element:r,element2key:o}};function fXe(n,e,t,i,r,o,s,a,l,u){var c=I.useRef(),d=I.useRef();d.current=e;var h=function(){xi.cancel(c.current)};return I.useEffect(function(){return function(){h()}},[]),function(g){var m=g.which;if([].concat(ose,[SM,rse,Ux,Jx]).includes(m)){var f=o(),b=rP(f,i),C=b,v=C.elements,w=C.key2element,S=C.element2key,F=w.get(e),L=mXe(F,v),D=S.get(L),A=hXe(n,s(D,!0).length===1,t,m);if(!A&&m!==Ux&&m!==Jx)return;(ose.includes(m)||[Ux,Jx].includes(m))&&g.preventDefault();var M=function(P){if(P){var B=P,Y=P.querySelector("a");Y!=null&&Y.getAttribute("href")&&(B=Y);var k=S.get(P);a(k),h(),c.current=xi(function(){d.current===k&&B.focus()})}};if([Ux,Jx].includes(m)||A.sibling||!L){var W;!L||n==="inline"?W=r.current:W=gXe(L);var Z,T=iP(W,v);m===Ux?Z=T[0]:m===Jx?Z=T[T.length-1]:Z=sse(W,v,L,A.offset),M(Z)}else if(A.inlineTrigger)l(D);else if(A.offset>0)l(D,!0),h(),c.current=xi(function(){b=rP(f,i);var O=L.getAttribute("aria-controls"),P=document.getElementById(O),B=sse(P,b.elements);M(B)},5);else if(A.offset<0){var E=s(D,!0),V=E[E.length-2],z=w.get(V);l(V,!1),M(z)}}u==null||u(g)}}function pXe(n){Promise.resolve().then(n)}var oP="__RC_UTIL_PATH_SPLIT__",ase=function(e){return e.join(oP)},bXe=function(e){return e.split(oP)},sP="rc-menu-more";function CXe(){var n=I.useState({}),e=we(n,2),t=e[1],i=I.useRef(new Map),r=I.useRef(new Map),o=I.useState([]),s=we(o,2),a=s[0],l=s[1],u=I.useRef(0),c=I.useRef(!1),d=function(){c.current||t({})},h=I.useCallback(function(w,S){var F=ase(S);r.current.set(F,w),i.current.set(w,F),u.current+=1;var L=u.current;pXe(function(){L===u.current&&d()})},[]),g=I.useCallback(function(w,S){var F=ase(S);r.current.delete(F),i.current.delete(w)},[]),m=I.useCallback(function(w){l(w)},[]),f=I.useCallback(function(w,S){var F=i.current.get(w)||"",L=bXe(F);return S&&a.includes(L[0])&&L.unshift(sP),L},[a]),b=I.useCallback(function(w,S){return w.some(function(F){var L=f(F,!0);return L.includes(S)})},[f]),C=function(){var S=_t(i.current.keys());return a.length&&S.push(sP),S},v=I.useCallback(function(w){var S="".concat(i.current.get(w)).concat(oP),F=new Set;return _t(r.current.keys()).forEach(function(L){L.startsWith(S)&&F.add(r.current.get(L))}),F},[]);return I.useEffect(function(){return function(){c.current=!0}},[]),{registerPath:h,unregisterPath:g,refreshOverflowKeys:m,isSubPathKey:b,getKeyPath:f,getKeys:C,getSubPathKeys:v}}function Kx(n){var e=I.useRef(n);e.current=n;var t=I.useCallback(function(){for(var i,r=arguments.length,o=new Array(r),s=0;s1&&(v.motionAppear=!1);var w=v.onVisibleChanged;return v.onVisibleChanged=function(S){return!h.current&&!S&&b(!0),w==null?void 0:w(S)},f?null:I.createElement(Hx,{mode:o,locked:!h.current},I.createElement(Qc,pt({visible:C},v,{forceRender:l,removeOnLeave:!1,leavedClassName:"".concat(a,"-hidden")}),function(S){var F=S.className,L=S.style;return I.createElement(aP,{id:e,className:F,style:L},r)}))}var EXe=["style","className","title","eventKey","warnKey","disabled","internalPopupClose","children","itemIcon","expandIcon","popupClassName","popupOffset","popupStyle","onClick","onMouseEnter","onMouseLeave","onTitleClick","onTitleMouseEnter","onTitleMouseLeave"],WXe=["active"],RXe=function(e){var t=e.style,i=e.className,r=e.title,o=e.eventKey;e.warnKey;var s=e.disabled,a=e.internalPopupClose,l=e.children,u=e.itemIcon,c=e.expandIcon,d=e.popupClassName,h=e.popupOffset,g=e.popupStyle,m=e.onClick,f=e.onMouseEnter,b=e.onMouseLeave,C=e.onTitleClick,v=e.onTitleMouseEnter,w=e.onTitleMouseLeave,S=zn(e,EXe),F=qoe(o),L=I.useContext($d),D=L.prefixCls,A=L.mode,M=L.openKeys,W=L.disabled,Z=L.overflowDisabled,T=L.activeKey,E=L.selectedKeys,V=L.itemIcon,z=L.expandIcon,O=L.onItemClick,P=L.onOpenChange,B=L.onActive,Y=I.useContext(q4),k=Y._internalRenderSubMenuItem,X=I.useContext(nse),U=X.isSubPathKey,R=jy(),ee="".concat(D,"-submenu"),oe=W||s,se=I.useRef(),ue=I.useRef(),ce=u??V,ye=c??z,fe=M.includes(o),le=!Z&&fe,Ze=U(E,o),ke=use(o,oe,v,w),Ne=ke.active,ze=zn(ke,WXe),Ke=I.useState(!1),ut=we(Ke,2),Ct=ut[0],ot=ut[1],he=function(Re){oe||ot(Re)},de=function(Re){he(!0),f==null||f({key:o,domEvent:Re})},ge=function(Re){he(!1),b==null||b({key:o,domEvent:Re})},j=I.useMemo(function(){return Ne||(A!=="inline"?Ct||U([T],o):!1)},[A,Ne,T,Ct,o,U]),Q=cse(R.length),q=function(Re){oe||(C==null||C({key:o,domEvent:Re}),A==="inline"&&P(o,!fe))},te=Kx(function(He){m==null||m(xM(He)),O(He)}),Ce=function(Re){A!=="inline"&&P(o,Re)},Le=function(){B(o)},Ae=F&&"".concat(F,"-popup"),Oe=I.createElement("div",pt({role:"menuitem",style:Q,className:"".concat(ee,"-title"),tabIndex:oe?null:-1,ref:se,title:typeof r=="string"?r:null,"data-menu-id":Z&&F?null:F,"aria-expanded":le,"aria-haspopup":!0,"aria-controls":Ae,"aria-disabled":oe,onClick:q,onFocus:Le},ze),r,I.createElement(dse,{icon:A!=="horizontal"?ye:void 0,props:Se(Se({},e),{},{isOpen:le,isSubMenu:!0})},I.createElement("i",{className:"".concat(ee,"-arrow")}))),tt=I.useRef(A);if(A!=="inline"&&R.length>1?tt.current="vertical":tt.current=A,!Z){var We=tt.current;Oe=I.createElement(ZXe,{mode:We,prefixCls:ee,visible:!a&&le&&A!=="inline",popupClassName:d,popupOffset:h,popupStyle:g,popup:I.createElement(Hx,{mode:We==="horizontal"?"vertical":We},I.createElement(aP,{id:Ae,ref:ue},l)),disabled:oe,onVisibleChange:Ce},Oe)}var ht=I.createElement(Qd.Item,pt({role:"none"},S,{component:"li",style:t,className:Me(ee,"".concat(ee,"-").concat(A),i,me(me(me(me({},"".concat(ee,"-open"),le),"".concat(ee,"-active"),j),"".concat(ee,"-selected"),Ze),"".concat(ee,"-disabled"),oe)),onMouseEnter:de,onMouseLeave:ge}),Oe,!Z&&I.createElement(TXe,{id:Ae,open:le,keyPath:R},l));return k&&(ht=k(ht,e,{selected:Ze,active:j,open:le,disabled:oe})),I.createElement(Hx,{onItemClick:te,mode:A==="horizontal"?"vertical":A,itemIcon:ce,expandIcon:ye},ht)};function LM(n){var e=n.eventKey,t=n.children,i=jy(e),r=lP(t,i),o=IM();I.useEffect(function(){if(o)return o.registerPath(e,i),function(){o.unregisterPath(e,i)}},[i]);var s;return o?s=r:s=I.createElement(RXe,n,r),I.createElement(tse.Provider,{value:i},s)}var GXe=["className","title","eventKey","children"],VXe=["children"],XXe=function(e){var t=e.className,i=e.title;e.eventKey;var r=e.children,o=zn(e,GXe),s=I.useContext($d),a=s.prefixCls,l="".concat(a,"-item-group");return I.createElement("li",pt({role:"presentation"},o,{onClick:function(c){return c.stopPropagation()},className:Me(l,t)}),I.createElement("div",{role:"presentation",className:"".concat(l,"-title"),title:typeof i=="string"?i:void 0},i),I.createElement("ul",{role:"group",className:"".concat(l,"-list")},r))};function FM(n){var e=n.children,t=zn(n,VXe),i=jy(t.eventKey),r=lP(e,i),o=IM();return o?r:I.createElement(XXe,ra(t,["warnKey"]),r)}function uP(n){var e=n.className,t=n.style,i=I.useContext($d),r=i.prefixCls,o=IM();return o?null:I.createElement("li",{role:"separator",className:Me("".concat(r,"-item-divider"),e),style:t})}var PXe=["label","children","key","type"];function cP(n){return(n||[]).map(function(e,t){if(e&&Vn(e)==="object"){var i=e,r=i.label,o=i.children,s=i.key,a=i.type,l=zn(i,PXe),u=s??"tmp-".concat(t);return o||a==="group"?a==="group"?I.createElement(FM,pt({key:u},l,{title:r}),cP(o)):I.createElement(LM,pt({key:u},l,{title:r}),cP(o)):a==="divider"?I.createElement(uP,pt({key:u},l)):I.createElement(jx,pt({key:u},l),r)}return null}).filter(function(e){return e})}function OXe(n,e,t){var i=n;return e&&(i=cP(e)),lP(i,t)}var BXe=["prefixCls","rootClassName","style","className","tabIndex","items","children","direction","id","mode","inlineCollapsed","disabled","disabledOverflow","subMenuOpenDelay","subMenuCloseDelay","forceSubMenuRender","defaultOpenKeys","openKeys","activeKey","defaultActiveFirst","selectable","multiple","defaultSelectedKeys","selectedKeys","onSelect","onDeselect","inlineIndent","motion","defaultMotions","triggerSubMenuAction","builtinPlacements","itemIcon","expandIcon","overflowedIndicator","overflowedIndicatorPopupClassName","getPopupContainer","onClick","onOpenChange","onKeyDown","openAnimation","openTransitionName","_internalRenderMenuItem","_internalRenderSubMenuItem"],Qy=[],zXe=I.forwardRef(function(n,e){var t,i=n,r=i.prefixCls,o=r===void 0?"rc-menu":r,s=i.rootClassName,a=i.style,l=i.className,u=i.tabIndex,c=u===void 0?0:u,d=i.items,h=i.children,g=i.direction,m=i.id,f=i.mode,b=f===void 0?"vertical":f,C=i.inlineCollapsed,v=i.disabled,w=i.disabledOverflow,S=i.subMenuOpenDelay,F=S===void 0?.1:S,L=i.subMenuCloseDelay,D=L===void 0?.1:L,A=i.forceSubMenuRender,M=i.defaultOpenKeys,W=i.openKeys,Z=i.activeKey,T=i.defaultActiveFirst,E=i.selectable,V=E===void 0?!0:E,z=i.multiple,O=z===void 0?!1:z,P=i.defaultSelectedKeys,B=i.selectedKeys,Y=i.onSelect,k=i.onDeselect,X=i.inlineIndent,U=X===void 0?24:X,R=i.motion,ee=i.defaultMotions,oe=i.triggerSubMenuAction,se=oe===void 0?"hover":oe,ue=i.builtinPlacements,ce=i.itemIcon,ye=i.expandIcon,fe=i.overflowedIndicator,le=fe===void 0?"...":fe,Ze=i.overflowedIndicatorPopupClassName,ke=i.getPopupContainer,Ne=i.onClick,ze=i.onOpenChange,Ke=i.onKeyDown;i.openAnimation,i.openTransitionName;var ut=i._internalRenderMenuItem,Ct=i._internalRenderSubMenuItem,ot=zn(i,BXe),he=I.useMemo(function(){return OXe(h,d,Qy)},[h,d]),de=I.useState(!1),ge=we(de,2),j=ge[0],Q=ge[1],q=I.useRef(),te=yXe(m),Ce=g==="rtl",Le=Ur(M,{value:W,postState:function(gi){return gi||Qy}}),Ae=we(Le,2),Oe=Ae[0],tt=Ae[1],We=function(gi){var rn=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;function mn(){tt(gi),ze==null||ze(gi)}rn?zd.flushSync(mn):mn()},ht=I.useState(Oe),He=we(ht,2),Re=He[0],dt=He[1],yt=I.useRef(!1),Kt=I.useMemo(function(){return(b==="inline"||b==="vertical")&&C?["vertical",C]:[b,!1]},[b,C]),Wt=we(Kt,2),Ut=Wt[0],Nn=Wt[1],di=Ut==="inline",pe=I.useState(Ut),xe=we(pe,2),_e=xe[0],Pe=xe[1],qe=I.useState(Nn),nt=we(qe,2),wt=nt[0],St=nt[1];I.useEffect(function(){Pe(Ut),St(Nn),yt.current&&(di?tt(Re):We(Qy))},[Ut,Nn]);var et=I.useState(0),xt=we(et,2),Zt=xt[0],Mt=xt[1],zt=Zt>=he.length-1||_e!=="horizontal"||w;I.useEffect(function(){di&&dt(Oe)},[Oe]),I.useEffect(function(){return yt.current=!0,function(){yt.current=!1}},[]);var jt=CXe(),ri=jt.registerPath,Bn=jt.unregisterPath,Mn=jt.refreshOverflowKeys,Yt=jt.isSubPathKey,bn=jt.getKeyPath,kt=jt.getKeys,Ie=jt.getSubPathKeys,Ue=I.useMemo(function(){return{registerPath:ri,unregisterPath:Bn}},[ri,Bn]),gt=I.useMemo(function(){return{isSubPathKey:Yt}},[Yt]);I.useEffect(function(){Mn(zt?Qy:he.slice(Zt+1).map(function(Ui){return Ui.key}))},[Zt,zt]);var nn=Ur(Z||T&&((t=he[0])===null||t===void 0?void 0:t.key),{value:Z}),Kn=we(nn,2),Zn=Kn[0],an=Kn[1],Wn=Kx(function(Ui){an(Ui)}),wn=Kx(function(){an(void 0)});I.useImperativeHandle(e,function(){return{list:q.current,focus:function(gi){var rn,mn=kt(),Di=rP(mn,te),Yr=Di.elements,ar=Di.key2element,Hr=Di.element2key,_n=iP(q.current,Yr),Cn=Zn??(_n[0]?Hr.get(_n[0]):(rn=he.find(function(rs){return!rs.props.disabled}))===null||rn===void 0?void 0:rn.key),Gi=ar.get(Cn);if(Cn&&Gi){var bo;Gi==null||(bo=Gi.focus)===null||bo===void 0||bo.call(Gi,gi)}}}});var pr=Ur(P||[],{value:B,postState:function(gi){return Array.isArray(gi)?gi:gi==null?Qy:[gi]}}),Ro=we(pr,2),ka=Ro[0],Zs=Ro[1],bu=function(gi){if(V){var rn=gi.key,mn=ka.includes(rn),Di;O?mn?Di=ka.filter(function(ar){return ar!==rn}):Di=[].concat(_t(ka),[rn]):Di=[rn],Zs(Di);var Yr=Se(Se({},gi),{},{selectedKeys:Di});mn?k==null||k(Yr):Y==null||Y(Yr)}!O&&Oe.length&&_e!=="inline"&&We(Qy)},zl=Kx(function(Ui){Ne==null||Ne(xM(Ui)),bu(Ui)}),Jo=Kx(function(Ui,gi){var rn=Oe.filter(function(Di){return Di!==Ui});if(gi)rn.push(Ui);else if(_e!=="inline"){var mn=Ie(Ui);rn=rn.filter(function(Di){return!mn.has(Di)})}gx(Oe,rn,!0)||We(rn,!0)}),zr=function(gi,rn){var mn=rn??!Oe.includes(gi);Jo(gi,mn)},Cu=fXe(_e,Zn,Ce,te,q,kt,bn,an,zr,Ke);I.useEffect(function(){Q(!0)},[]);var Ko=I.useMemo(function(){return{_internalRenderMenuItem:ut,_internalRenderSubMenuItem:Ct}},[ut,Ct]),Ma=_e!=="horizontal"||w?he:he.map(function(Ui,gi){return I.createElement(Hx,{key:Ui.key,overflowDisabled:gi>Zt},Ui)}),gl=I.createElement(Qd,pt({id:m,ref:q,prefixCls:"".concat(o,"-overflow"),component:"ul",itemComponent:jx,className:Me(o,"".concat(o,"-root"),"".concat(o,"-").concat(_e),l,me(me({},"".concat(o,"-inline-collapsed"),wt),"".concat(o,"-rtl"),Ce),s),dir:g,style:a,role:"menu",tabIndex:c,data:Ma,renderRawItem:function(gi){return gi},renderRawRest:function(gi){var rn=gi.length,mn=rn?he.slice(-rn):null;return I.createElement(LM,{eventKey:sP,title:le,disabled:zt,internalPopupClose:rn===0,popupClassName:Ze},mn)},maxCount:_e!=="horizontal"||w?Qd.INVALIDATE:Qd.RESPONSIVE,ssr:"full","data-menu-list":!0,onVisibleChange:function(gi){Mt(gi)},onKeyDown:Cu},ot));return I.createElement(q4.Provider,{value:Ko},I.createElement(Qoe.Provider,{value:te},I.createElement(Hx,{prefixCls:o,rootClassName:s,mode:_e,openKeys:Oe,rtl:Ce,disabled:v,motion:j?R:null,defaultMotions:j?ee:null,activeKey:Zn,onActive:Wn,onInactive:wn,selectedKeys:ka,inlineIndent:U,subMenuOpenDelay:F,subMenuCloseDelay:D,forceSubMenuRender:A,builtinPlacements:ue,triggerSubMenuAction:se,getPopupContainer:ke,itemIcon:ce,expandIcon:ye,onItemClick:zl,onOpenChange:Jo},I.createElement(nse.Provider,{value:gt},gl),I.createElement("div",{style:{display:"none"},"aria-hidden":!0},I.createElement(ese.Provider,{value:Ue},he)))))}),$y=zXe;$y.Item=jx,$y.SubMenu=LM,$y.ItemGroup=FM,$y.Divider=uP;var YXe={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"bars",theme:"outlined"};const HXe=YXe;var UXe=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:HXe}))},JXe=I.forwardRef(UXe);const KXe=JXe;var jXe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 000 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z"}}]},name:"left",theme:"outlined"};const QXe=jXe;var $Xe=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:QXe}))},qXe=I.forwardRef($Xe);const gse=qXe,e4e=n=>!isNaN(parseFloat(n))&&isFinite(n),mse=I.createContext({siderHook:{addSider:()=>null,removeSider:()=>null}});var t4e=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{let n=0;return function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";return n+=1,`${e}${n}`}})(),dP=I.forwardRef((n,e)=>{const{prefixCls:t,className:i,trigger:r,children:o,defaultCollapsed:s=!1,theme:a="dark",style:l={},collapsible:u=!1,reverseArrow:c=!1,width:d=200,collapsedWidth:h=80,zeroWidthTriggerStyle:g,breakpoint:m,onCollapse:f,onBreakpoint:b}=n,C=t4e(n,["prefixCls","className","trigger","children","defaultCollapsed","theme","style","collapsible","reverseArrow","width","collapsedWidth","zeroWidthTriggerStyle","breakpoint","onCollapse","onBreakpoint"]),{siderHook:v}=I.useContext(mse),[w,S]=I.useState("collapsed"in n?n.collapsed:s),[F,L]=I.useState(!1);I.useEffect(()=>{"collapsed"in n&&S(n.collapsed)},[n.collapsed]);const D=(E,V)=>{"collapsed"in n||S(E),f==null||f(E,V)},A=I.useRef();A.current=E=>{L(E.matches),b==null||b(E.matches),w!==E.matches&&D(E.matches,"responsive")},I.useEffect(()=>{function E(z){return A.current(z)}let V;if(typeof window<"u"){const{matchMedia:z}=window;if(z&&m&&m in fse){V=z(`screen and (max-width: ${fse[m]})`);try{V.addEventListener("change",E)}catch{V.addListener(E)}E(V)}}return()=>{try{V==null||V.removeEventListener("change",E)}catch{V==null||V.removeListener(E)}}},[m]),I.useEffect(()=>{const E=n4e("ant-sider-");return v.addSider(E),()=>v.removeSider(E)},[]);const M=()=>{D(!w,"clickTrigger")},{getPrefixCls:W}=I.useContext(Tn),Z=()=>{const E=W("layout-sider",t),V=ra(C,["collapsed"]),z=w?h:d,O=e4e(z)?`${z}px`:String(z),P=parseFloat(String(h||0))===0?I.createElement("span",{onClick:M,className:Me(`${E}-zero-width-trigger`,`${E}-zero-width-trigger-${c?"right":"left"}`),style:g},r||I.createElement(KXe,null)):null,k={expanded:c?I.createElement($4,null):I.createElement(gse,null),collapsed:c?I.createElement(gse,null):I.createElement($4,null)}[w?"collapsed":"expanded"],X=r!==null?P||I.createElement("div",{className:`${E}-trigger`,onClick:M,style:{width:O}},r||k):null,U=Object.assign(Object.assign({},l),{flex:`0 0 ${O}`,maxWidth:O,minWidth:O,width:O}),R=Me(E,`${E}-${a}`,{[`${E}-collapsed`]:!!w,[`${E}-has-trigger`]:u&&r!==null&&!P,[`${E}-below`]:!!F,[`${E}-zero-width`]:parseFloat(O)===0},i);return I.createElement("aside",Object.assign({className:R},V,{style:U,ref:e}),I.createElement("div",{className:`${E}-children`},o),u||F&&P?X:null)},T=I.useMemo(()=>({siderCollapsed:w}),[w]);return I.createElement(_M.Provider,{value:T},Z())});var i4e={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M176 511a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0zm280 0a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"ellipsis",theme:"outlined"};const r4e=i4e;var o4e=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:r4e}))},s4e=I.forwardRef(o4e);const hP=s4e;var a4e=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{const{prefixCls:e,className:t,dashed:i}=n,r=a4e(n,["prefixCls","className","dashed"]),{getPrefixCls:o}=I.useContext(Tn),s=o("menu",e),a=Me({[`${s}-item-divider-dashed`]:!!i},t);return I.createElement(uP,Object.assign({className:a},r))},DM=I.createContext({prefixCls:"",firstLevel:!0,inlineCollapsed:!1}),bse=n=>{var e;const{className:t,children:i,icon:r,title:o,danger:s}=n,{prefixCls:a,firstLevel:l,direction:u,disableMenuItemTitleTooltip:c,inlineCollapsed:d}=I.useContext(DM),h=v=>{const w=I.createElement("span",{className:`${a}-title-content`},i);return(!r||I.isValidElement(i)&&i.type==="span")&&i&&v&&l&&typeof i=="string"?I.createElement("div",{className:`${a}-inline-collapsed-noicon`},i.charAt(0)):w},{siderCollapsed:g}=I.useContext(_M);let m=o;typeof o>"u"?m=l?i:"":o===!1&&(m="");const f={title:m};!g&&!d&&(f.title=null,f.open=!1);const b=Kc(i).length;let C=I.createElement(jx,Object.assign({},ra(n,["title","icon","danger"]),{className:Me({[`${a}-item-danger`]:s,[`${a}-item-only-child`]:(r?b+1:b)===1},t),title:typeof o=="string"?o:void 0}),jl(r,{className:Me(I.isValidElement(r)?(e=r.props)===null||e===void 0?void 0:e.className:"",`${a}-item-icon`)}),h(d));return c||(C=I.createElement(cg,Object.assign({},f,{placement:u==="rtl"?"left":"right",overlayClassName:`${a}-inline-collapsed-tooltip`}),C)),C},Cse=n=>{var e;const{popupClassName:t,icon:i,title:r,theme:o}=n,s=I.useContext(DM),{prefixCls:a,inlineCollapsed:l,theme:u}=s,c=jy();let d;if(!i)d=l&&!c.length&&r&&typeof r=="string"?I.createElement("div",{className:`${a}-inline-collapsed-noicon`},r.charAt(0)):I.createElement("span",{className:`${a}-title-content`},r);else{const m=I.isValidElement(r)&&r.type==="span";d=I.createElement(I.Fragment,null,jl(i,{className:Me(I.isValidElement(i)?(e=i.props)===null||e===void 0?void 0:e.className:"",`${a}-item-icon`)}),m?r:I.createElement("span",{className:`${a}-title-content`},r))}const h=I.useMemo(()=>Object.assign(Object.assign({},s),{firstLevel:!1}),[s]),[g]=V1("Menu");return I.createElement(DM.Provider,{value:h},I.createElement(LM,Object.assign({},ra(n,["icon"]),{title:d,popupClassName:Me(a,t,`${a}-${o||u}`),popupStyle:{zIndex:g}})))};var l4e=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{if(e&&typeof e=="object"){const i=e,{label:r,children:o,key:s,type:a}=i,l=l4e(i,["label","children","key","type"]),u=s??`tmp-${t}`;return o||a==="group"?a==="group"?I.createElement(FM,Object.assign({key:u},l,{title:r}),gP(o)):I.createElement(Cse,Object.assign({key:u},l,{title:r}),gP(o)):a==="divider"?I.createElement(pse,Object.assign({key:u},l)):I.createElement(bse,Object.assign({key:u},l),r)}return null}).filter(e=>e)}function u4e(n){return I.useMemo(()=>n&&gP(n),[n])}var c4e=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{const{children:t}=n,i=c4e(n,["children"]),r=I.useContext(AM),o=I.useMemo(()=>Object.assign(Object.assign({},r),i),[r,i.prefixCls,i.mode,i.selectable,i.rootClassName]),s=FMe(t),a=Zp(e,s?t.ref:null);return I.createElement(AM.Provider,{value:o},I.createElement(Jm,null,s?I.cloneElement(t,{ref:a}):t))}),h4e=n=>{const{componentCls:e,motionDurationSlow:t,horizontalLineHeight:i,colorSplit:r,lineWidth:o,lineType:s,itemPaddingInline:a}=n;return{[`${e}-horizontal`]:{lineHeight:i,border:0,borderBottom:`${Te(o)} ${s} ${r}`,boxShadow:"none","&::after":{display:"block",clear:"both",height:0,content:'"\\20"'},[`${e}-item, ${e}-submenu`]:{position:"relative",display:"inline-block",verticalAlign:"bottom",paddingInline:a},[`> ${e}-item:hover, + > ${e}-item-active, + > ${e}-submenu ${e}-submenu-title:hover`]:{backgroundColor:"transparent"},[`${e}-item, ${e}-submenu-title`]:{transition:[`border-color ${t}`,`background ${t}`].join(",")},[`${e}-submenu-arrow`]:{display:"none"}}}},g4e=n=>{let{componentCls:e,menuArrowOffset:t,calc:i}=n;return{[`${e}-rtl`]:{direction:"rtl"},[`${e}-submenu-rtl`]:{transformOrigin:"100% 0"},[`${e}-rtl${e}-vertical, + ${e}-submenu-rtl ${e}-vertical`]:{[`${e}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateY(${Te(i(t).mul(-1).equal())})`},"&::after":{transform:`rotate(45deg) translateY(${Te(t)})`}}}}},vse=n=>Object.assign({},Gk(n)),yse=(n,e)=>{const{componentCls:t,itemColor:i,itemSelectedColor:r,groupTitleColor:o,itemBg:s,subMenuItemBg:a,itemSelectedBg:l,activeBarHeight:u,activeBarWidth:c,activeBarBorderWidth:d,motionDurationSlow:h,motionEaseInOut:g,motionEaseOut:m,itemPaddingInline:f,motionDurationMid:b,itemHoverColor:C,lineType:v,colorSplit:w,itemDisabledColor:S,dangerItemColor:F,dangerItemHoverColor:L,dangerItemSelectedColor:D,dangerItemActiveBg:A,dangerItemSelectedBg:M,popupBg:W,itemHoverBg:Z,itemActiveBg:T,menuSubMenuBg:E,horizontalItemSelectedColor:V,horizontalItemSelectedBg:z,horizontalItemBorderRadius:O,horizontalItemHoverBg:P}=n;return{[`${t}-${e}, ${t}-${e} > ${t}`]:{color:i,background:s,[`&${t}-root:focus-visible`]:Object.assign({},vse(n)),[`${t}-item-group-title`]:{color:o},[`${t}-submenu-selected`]:{[`> ${t}-submenu-title`]:{color:r}},[`${t}-item, ${t}-submenu-title`]:{color:i,[`&:not(${t}-item-disabled):focus-visible`]:Object.assign({},vse(n))},[`${t}-item-disabled, ${t}-submenu-disabled`]:{color:`${S} !important`},[`${t}-item:not(${t}-item-selected):not(${t}-submenu-selected)`]:{[`&:hover, > ${t}-submenu-title:hover`]:{color:C}},[`&:not(${t}-horizontal)`]:{[`${t}-item:not(${t}-item-selected)`]:{"&:hover":{backgroundColor:Z},"&:active":{backgroundColor:T}},[`${t}-submenu-title`]:{"&:hover":{backgroundColor:Z},"&:active":{backgroundColor:T}}},[`${t}-item-danger`]:{color:F,[`&${t}-item:hover`]:{[`&:not(${t}-item-selected):not(${t}-submenu-selected)`]:{color:L}},[`&${t}-item:active`]:{background:A}},[`${t}-item a`]:{"&, &:hover":{color:"inherit"}},[`${t}-item-selected`]:{color:r,[`&${t}-item-danger`]:{color:D},"a, a:hover":{color:"inherit"}},[`& ${t}-item-selected`]:{backgroundColor:l,[`&${t}-item-danger`]:{backgroundColor:M}},[`&${t}-submenu > ${t}`]:{backgroundColor:E},[`&${t}-popup > ${t}`]:{backgroundColor:W},[`&${t}-submenu-popup > ${t}`]:{backgroundColor:W},[`&${t}-horizontal`]:Object.assign(Object.assign({},e==="dark"?{borderBottom:0}:{}),{[`> ${t}-item, > ${t}-submenu`]:{top:d,marginTop:n.calc(d).mul(-1).equal(),marginBottom:0,borderRadius:O,"&::after":{position:"absolute",insetInline:f,bottom:0,borderBottom:`${Te(u)} solid transparent`,transition:`border-color ${h} ${g}`,content:'""'},"&:hover, &-active, &-open":{background:P,"&::after":{borderBottomWidth:u,borderBottomColor:V}},"&-selected":{color:V,backgroundColor:z,"&:hover":{backgroundColor:z},"&::after":{borderBottomWidth:u,borderBottomColor:V}}}}),[`&${t}-root`]:{[`&${t}-inline, &${t}-vertical`]:{borderInlineEnd:`${Te(d)} ${v} ${w}`}},[`&${t}-inline`]:{[`${t}-sub${t}-inline`]:{background:a},[`${t}-item`]:{position:"relative","&::after":{position:"absolute",insetBlock:0,insetInlineEnd:0,borderInlineEnd:`${Te(c)} solid ${r}`,transform:"scaleY(0.0001)",opacity:0,transition:[`transform ${b} ${m}`,`opacity ${b} ${m}`].join(","),content:'""'},[`&${t}-item-danger`]:{"&::after":{borderInlineEndColor:D}}},[`${t}-selected, ${t}-item-selected`]:{"&::after":{transform:"scaleY(1)",opacity:1,transition:[`transform ${b} ${g}`,`opacity ${b} ${g}`].join(",")}}}}}},Ise=n=>{const{componentCls:e,itemHeight:t,itemMarginInline:i,padding:r,menuArrowSize:o,marginXS:s,itemMarginBlock:a,itemWidth:l}=n,u=n.calc(o).add(r).add(s).equal();return{[`${e}-item`]:{position:"relative",overflow:"hidden"},[`${e}-item, ${e}-submenu-title`]:{height:t,lineHeight:Te(t),paddingInline:r,overflow:"hidden",textOverflow:"ellipsis",marginInline:i,marginBlock:a,width:l},[`> ${e}-item, + > ${e}-submenu > ${e}-submenu-title`]:{height:t,lineHeight:Te(t)},[`${e}-item-group-list ${e}-submenu-title, + ${e}-submenu-title`]:{paddingInlineEnd:u}}},m4e=n=>{const{componentCls:e,iconCls:t,itemHeight:i,colorTextLightSolid:r,dropdownWidth:o,controlHeightLG:s,motionDurationMid:a,motionEaseOut:l,paddingXL:u,itemMarginInline:c,fontSizeLG:d,motionDurationSlow:h,paddingXS:g,boxShadowSecondary:m,collapsedWidth:f,collapsedIconSize:b}=n,C={height:i,lineHeight:Te(i),listStylePosition:"inside",listStyleType:"disc"};return[{[e]:{"&-inline, &-vertical":Object.assign({[`&${e}-root`]:{boxShadow:"none"}},Ise(n))},[`${e}-submenu-popup`]:{[`${e}-vertical`]:Object.assign(Object.assign({},Ise(n)),{boxShadow:m})}},{[`${e}-submenu-popup ${e}-vertical${e}-sub`]:{minWidth:o,maxHeight:`calc(100vh - ${Te(n.calc(s).mul(2.5).equal())})`,padding:"0",overflow:"hidden",borderInlineEnd:0,"&:not([class*='-active'])":{overflowX:"hidden",overflowY:"auto"}}},{[`${e}-inline`]:{width:"100%",[`&${e}-root`]:{[`${e}-item, ${e}-submenu-title`]:{display:"flex",alignItems:"center",transition:[`border-color ${h}`,`background ${h}`,`padding ${a} ${l}`].join(","),[`> ${e}-title-content`]:{flex:"auto",minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},"> *":{flex:"none"}}},[`${e}-sub${e}-inline`]:{padding:0,border:0,borderRadius:0,boxShadow:"none",[`& > ${e}-submenu > ${e}-submenu-title`]:C,[`& ${e}-item-group-title`]:{paddingInlineStart:u}},[`${e}-item`]:C}},{[`${e}-inline-collapsed`]:{width:f,[`&${e}-root`]:{[`${e}-item, ${e}-submenu ${e}-submenu-title`]:{[`> ${e}-inline-collapsed-noicon`]:{fontSize:d,textAlign:"center"}}},[`> ${e}-item, + > ${e}-item-group > ${e}-item-group-list > ${e}-item, + > ${e}-item-group > ${e}-item-group-list > ${e}-submenu > ${e}-submenu-title, + > ${e}-submenu > ${e}-submenu-title`]:{insetInlineStart:0,paddingInline:`calc(50% - ${Te(n.calc(d).div(2).equal())} - ${Te(c)})`,textOverflow:"clip",[` + ${e}-submenu-arrow, + ${e}-submenu-expand-icon + `]:{opacity:0},[`${e}-item-icon, ${t}`]:{margin:0,fontSize:b,lineHeight:Te(i),"+ span":{display:"inline-block",opacity:0}}},[`${e}-item-icon, ${t}`]:{display:"inline-block"},"&-tooltip":{pointerEvents:"none",[`${e}-item-icon, ${t}`]:{display:"none"},"a, a:hover":{color:r}},[`${e}-item-group-title`]:Object.assign(Object.assign({},Vp),{paddingInline:g})}}]},wse=n=>{const{componentCls:e,motionDurationSlow:t,motionDurationMid:i,motionEaseInOut:r,motionEaseOut:o,iconCls:s,iconSize:a,iconMarginInlineEnd:l}=n;return{[`${e}-item, ${e}-submenu-title`]:{position:"relative",display:"block",margin:0,whiteSpace:"nowrap",cursor:"pointer",transition:[`border-color ${t}`,`background ${t}`,`padding ${t} ${r}`].join(","),[`${e}-item-icon, ${s}`]:{minWidth:a,fontSize:a,transition:[`font-size ${i} ${o}`,`margin ${t} ${r}`,`color ${t}`].join(","),"+ span":{marginInlineStart:l,opacity:1,transition:[`opacity ${t} ${r}`,`margin ${t}`,`color ${t}`].join(",")}},[`${e}-item-icon`]:Object.assign({},wx()),[`&${e}-item-only-child`]:{[`> ${s}, > ${e}-item-icon`]:{marginInlineEnd:0}}},[`${e}-item-disabled, ${e}-submenu-disabled`]:{background:"none !important",cursor:"not-allowed","&::after":{borderColor:"transparent !important"},a:{color:"inherit !important"},[`> ${e}-submenu-title`]:{color:"inherit !important",cursor:"not-allowed"}}}},Sse=n=>{const{componentCls:e,motionDurationSlow:t,motionEaseInOut:i,borderRadius:r,menuArrowSize:o,menuArrowOffset:s}=n;return{[`${e}-submenu`]:{"&-expand-icon, &-arrow":{position:"absolute",top:"50%",insetInlineEnd:n.margin,width:o,color:"currentcolor",transform:"translateY(-50%)",transition:`transform ${t} ${i}, opacity ${t}`},"&-arrow":{"&::before, &::after":{position:"absolute",width:n.calc(o).mul(.6).equal(),height:n.calc(o).mul(.15).equal(),backgroundColor:"currentcolor",borderRadius:r,transition:[`background ${t} ${i}`,`transform ${t} ${i}`,`top ${t} ${i}`,`color ${t} ${i}`].join(","),content:'""'},"&::before":{transform:`rotate(45deg) translateY(${Te(n.calc(s).mul(-1).equal())})`},"&::after":{transform:`rotate(-45deg) translateY(${Te(s)})`}}}}},f4e=n=>{const{antCls:e,componentCls:t,fontSize:i,motionDurationSlow:r,motionDurationMid:o,motionEaseInOut:s,paddingXS:a,padding:l,colorSplit:u,lineWidth:c,zIndexPopup:d,borderRadiusLG:h,subMenuItemBorderRadius:g,menuArrowSize:m,menuArrowOffset:f,lineType:b,groupTitleLineHeight:C,groupTitleFontSize:v}=n;return[{"":{[`${t}`]:Object.assign(Object.assign({},ky()),{"&-hidden":{display:"none"}})},[`${t}-submenu-hidden`]:{display:"none"}},{[t]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},oo(n)),ky()),{marginBottom:0,paddingInlineStart:0,fontSize:i,lineHeight:0,listStyle:"none",outline:"none",transition:`width ${r} cubic-bezier(0.2, 0, 0, 1) 0s`,"ul, ol":{margin:0,padding:0,listStyle:"none"},"&-overflow":{display:"flex",[`${t}-item`]:{flex:"none"}},[`${t}-item, ${t}-submenu, ${t}-submenu-title`]:{borderRadius:n.itemBorderRadius},[`${t}-item-group-title`]:{padding:`${Te(a)} ${Te(l)}`,fontSize:v,lineHeight:C,transition:`all ${r}`},[`&-horizontal ${t}-submenu`]:{transition:[`border-color ${r} ${s}`,`background ${r} ${s}`].join(",")},[`${t}-submenu, ${t}-submenu-inline`]:{transition:[`border-color ${r} ${s}`,`background ${r} ${s}`,`padding ${o} ${s}`].join(",")},[`${t}-submenu ${t}-sub`]:{cursor:"initial",transition:[`background ${r} ${s}`,`padding ${r} ${s}`].join(",")},[`${t}-title-content`]:{transition:`color ${r}`,[`> ${e}-typography-ellipsis-single-line`]:{display:"inline",verticalAlign:"unset"}},[`${t}-item a`]:{"&::before":{position:"absolute",inset:0,backgroundColor:"transparent",content:'""'}},[`${t}-item-divider`]:{overflow:"hidden",lineHeight:0,borderColor:u,borderStyle:b,borderWidth:0,borderTopWidth:c,marginBlock:c,padding:0,"&-dashed":{borderStyle:"dashed"}}}),wse(n)),{[`${t}-item-group`]:{[`${t}-item-group-list`]:{margin:0,padding:0,[`${t}-item, ${t}-submenu-title`]:{paddingInline:`${Te(n.calc(i).mul(2).equal())} ${Te(l)}`}}},"&-submenu":{"&-popup":{position:"absolute",zIndex:d,borderRadius:h,boxShadow:"none",transformOrigin:"0 0",[`&${t}-submenu`]:{background:"transparent"},"&::before":{position:"absolute",inset:0,zIndex:-1,width:"100%",height:"100%",opacity:0,content:'""'},[`> ${t}`]:Object.assign(Object.assign(Object.assign({borderRadius:h},wse(n)),Sse(n)),{[`${t}-item, ${t}-submenu > ${t}-submenu-title`]:{borderRadius:g},[`${t}-submenu-title::after`]:{transition:`transform ${r} ${s}`}})},"\n &-placement-leftTop,\n &-placement-bottomRight,\n ":{transformOrigin:"100% 0"},"\n &-placement-leftBottom,\n &-placement-topRight,\n ":{transformOrigin:"100% 100%"},"\n &-placement-rightBottom,\n &-placement-topLeft,\n ":{transformOrigin:"0 100%"},"\n &-placement-bottomLeft,\n &-placement-rightTop,\n ":{transformOrigin:"0 0"},"\n &-placement-leftTop,\n &-placement-leftBottom\n ":{paddingInlineEnd:n.paddingXS},"\n &-placement-rightTop,\n &-placement-rightBottom\n ":{paddingInlineStart:n.paddingXS},"\n &-placement-topRight,\n &-placement-topLeft\n ":{paddingBottom:n.paddingXS},"\n &-placement-bottomRight,\n &-placement-bottomLeft\n ":{paddingTop:n.paddingXS}}}),Sse(n)),{[`&-inline-collapsed ${t}-submenu-arrow, + &-inline ${t}-submenu-arrow`]:{"&::before":{transform:`rotate(-45deg) translateX(${Te(f)})`},"&::after":{transform:`rotate(45deg) translateX(${Te(n.calc(f).mul(-1).equal())})`}},[`${t}-submenu-open${t}-submenu-inline > ${t}-submenu-title > ${t}-submenu-arrow`]:{transform:`translateY(${Te(n.calc(m).mul(.2).mul(-1).equal())})`,"&::after":{transform:`rotate(-45deg) translateX(${Te(n.calc(f).mul(-1).equal())})`},"&::before":{transform:`rotate(45deg) translateX(${Te(f)})`}}})},{[`${e}-layout-header`]:{[t]:{lineHeight:"inherit"}}}]},p4e=n=>{var e,t,i;const{colorPrimary:r,colorError:o,colorTextDisabled:s,colorErrorBg:a,colorText:l,colorTextDescription:u,colorBgContainer:c,colorFillAlter:d,colorFillContent:h,lineWidth:g,lineWidthBold:m,controlItemBgActive:f,colorBgTextHover:b,controlHeightLG:C,lineHeight:v,colorBgElevated:w,marginXXS:S,padding:F,fontSize:L,controlHeightSM:D,fontSizeLG:A,colorTextLightSolid:M,colorErrorHover:W}=n,Z=(e=n.activeBarWidth)!==null&&e!==void 0?e:0,T=(t=n.activeBarBorderWidth)!==null&&t!==void 0?t:g,E=(i=n.itemMarginInline)!==null&&i!==void 0?i:n.marginXXS,V=new Po(M).setAlpha(.65).toRgbString();return{dropdownWidth:160,zIndexPopup:n.zIndexPopupBase+50,radiusItem:n.borderRadiusLG,itemBorderRadius:n.borderRadiusLG,radiusSubMenuItem:n.borderRadiusSM,subMenuItemBorderRadius:n.borderRadiusSM,colorItemText:l,itemColor:l,colorItemTextHover:l,itemHoverColor:l,colorItemTextHoverHorizontal:r,horizontalItemHoverColor:r,colorGroupTitle:u,groupTitleColor:u,colorItemTextSelected:r,itemSelectedColor:r,colorItemTextSelectedHorizontal:r,horizontalItemSelectedColor:r,colorItemBg:c,itemBg:c,colorItemBgHover:b,itemHoverBg:b,colorItemBgActive:h,itemActiveBg:f,colorSubItemBg:d,subMenuItemBg:d,colorItemBgSelected:f,itemSelectedBg:f,colorItemBgSelectedHorizontal:"transparent",horizontalItemSelectedBg:"transparent",colorActiveBarWidth:0,activeBarWidth:Z,colorActiveBarHeight:m,activeBarHeight:m,colorActiveBarBorderSize:g,activeBarBorderWidth:T,colorItemTextDisabled:s,itemDisabledColor:s,colorDangerItemText:o,dangerItemColor:o,colorDangerItemTextHover:o,dangerItemHoverColor:o,colorDangerItemTextSelected:o,dangerItemSelectedColor:o,colorDangerItemBgActive:a,dangerItemActiveBg:a,colorDangerItemBgSelected:a,dangerItemSelectedBg:a,itemMarginInline:E,horizontalItemBorderRadius:0,horizontalItemHoverBg:"transparent",itemHeight:C,groupTitleLineHeight:v,collapsedWidth:C*2,popupBg:w,itemMarginBlock:S,itemPaddingInline:F,horizontalLineHeight:`${C*1.15}px`,iconSize:L,iconMarginInlineEnd:D-L,collapsedIconSize:A,groupTitleFontSize:L,darkItemDisabledColor:new Po(M).setAlpha(.25).toRgbString(),darkItemColor:V,darkDangerItemColor:o,darkItemBg:"#001529",darkPopupBg:"#001529",darkSubMenuItemBg:"#000c17",darkItemSelectedColor:M,darkItemSelectedBg:r,darkDangerItemSelectedBg:o,darkItemHoverBg:"transparent",darkGroupTitleColor:V,darkItemHoverColor:M,darkDangerItemHoverColor:W,darkDangerItemSelectedColor:M,darkDangerItemActiveBg:o,itemWidth:Z?`calc(100% + ${T}px)`:`calc(100% - ${E*2}px)`}},b4e=function(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:n,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return Oo("Menu",r=>{const{colorBgElevated:o,controlHeightLG:s,fontSize:a,darkItemColor:l,darkDangerItemColor:u,darkItemBg:c,darkSubMenuItemBg:d,darkItemSelectedColor:h,darkItemSelectedBg:g,darkDangerItemSelectedBg:m,darkItemHoverBg:f,darkGroupTitleColor:b,darkItemHoverColor:C,darkItemDisabledColor:v,darkDangerItemHoverColor:w,darkDangerItemSelectedColor:S,darkDangerItemActiveBg:F,popupBg:L,darkPopupBg:D}=r,A=r.calc(a).div(7).mul(5).equal(),M=Bi(r,{menuArrowSize:A,menuHorizontalHeight:r.calc(s).mul(1.15).equal(),menuArrowOffset:r.calc(A).mul(.25).equal(),menuSubMenuBg:o,calc:r.calc,popupBg:L}),W=Bi(M,{itemColor:l,itemHoverColor:C,groupTitleColor:b,itemSelectedColor:h,itemBg:c,popupBg:D,subMenuItemBg:d,itemActiveBg:"transparent",itemSelectedBg:g,activeBarHeight:0,activeBarBorderWidth:0,itemHoverBg:f,itemDisabledColor:v,dangerItemColor:u,dangerItemHoverColor:w,dangerItemSelectedColor:S,dangerItemActiveBg:F,dangerItemSelectedBg:m,menuSubMenuBg:d,horizontalItemSelectedColor:h,horizontalItemSelectedBg:g});return[f4e(M),h4e(M),m4e(M),yse(M,"light"),yse(W,"dark"),g4e(M),Z4(M),ug(M,"slide-up"),ug(M,"slide-down"),Wx(M,"zoom-big")]},p4e,{deprecatedTokens:[["colorGroupTitle","groupTitleColor"],["radiusItem","itemBorderRadius"],["radiusSubMenuItem","subMenuItemBorderRadius"],["colorItemText","itemColor"],["colorItemTextHover","itemHoverColor"],["colorItemTextHoverHorizontal","horizontalItemHoverColor"],["colorItemTextSelected","itemSelectedColor"],["colorItemTextSelectedHorizontal","horizontalItemSelectedColor"],["colorItemTextDisabled","itemDisabledColor"],["colorDangerItemText","dangerItemColor"],["colorDangerItemTextHover","dangerItemHoverColor"],["colorDangerItemTextSelected","dangerItemSelectedColor"],["colorDangerItemBgActive","dangerItemActiveBg"],["colorDangerItemBgSelected","dangerItemSelectedBg"],["colorItemBg","itemBg"],["colorItemBgHover","itemHoverBg"],["colorSubItemBg","subMenuItemBg"],["colorItemBgActive","itemActiveBg"],["colorItemBgSelectedHorizontal","horizontalItemSelectedBg"],["colorActiveBarWidth","activeBarWidth"],["colorActiveBarHeight","activeBarHeight"],["colorActiveBarBorderSize","activeBarBorderWidth"],["colorItemBgSelected","itemSelectedBg"]],injectStyle:t,unitless:{groupTitleLineHeight:!0}})(n,e)};var C4e=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{var t;const i=I.useContext(AM),r=i||{},{getPrefixCls:o,getPopupContainer:s,direction:a,menu:l}=I.useContext(Tn),u=o(),{prefixCls:c,className:d,style:h,theme:g="light",expandIcon:m,_internalDisableMenuItemTitleTooltip:f,inlineCollapsed:b,siderCollapsed:C,items:v,children:w,rootClassName:S,mode:F,selectable:L,onClick:D,overflowedIndicatorPopupClassName:A}=n,M=C4e(n,["prefixCls","className","style","theme","expandIcon","_internalDisableMenuItemTitleTooltip","inlineCollapsed","siderCollapsed","items","children","rootClassName","mode","selectable","onClick","overflowedIndicatorPopupClassName"]),W=ra(M,["collapsedWidth"]),Z=u4e(v)||w;(t=r.validator)===null||t===void 0||t.call(r,{mode:F});const T=Ki(function(){var oe;D==null||D.apply(void 0,arguments),(oe=r.onClick)===null||oe===void 0||oe.call(r)}),E=r.mode||F,V=L??r.selectable,z=I.useMemo(()=>C!==void 0?C:b,[b,C]),O={horizontal:{motionName:`${u}-slide-up`},inline:nM(u),other:{motionName:`${u}-zoom-big`}},P=o("menu",c||r.prefixCls),B=ys(P),[Y,k,X]=b4e(P,B,!i),U=Me(`${P}-${g}`,l==null?void 0:l.className,d),R=I.useMemo(()=>{var oe,se;if(typeof m=="function"||mP(m))return m||null;if(typeof r.expandIcon=="function"||mP(r.expandIcon))return r.expandIcon||null;if(typeof(l==null?void 0:l.expandIcon)=="function"||mP(l==null?void 0:l.expandIcon))return(l==null?void 0:l.expandIcon)||null;const ue=(oe=m??(r==null?void 0:r.expandIcon))!==null&&oe!==void 0?oe:l==null?void 0:l.expandIcon;return jl(ue,{className:Me(`${P}-submenu-expand-icon`,I.isValidElement(ue)?(se=ue.props)===null||se===void 0?void 0:se.className:void 0)})},[m,r==null?void 0:r.expandIcon,l==null?void 0:l.expandIcon,P]),ee=I.useMemo(()=>({prefixCls:P,inlineCollapsed:z||!1,direction:a,firstLevel:!0,theme:g,mode:E,disableMenuItemTitleTooltip:f}),[P,z,a,f,g]);return Y(I.createElement(AM.Provider,{value:null},I.createElement(DM.Provider,{value:ee},I.createElement($y,Object.assign({getPopupContainer:s,overflowedIndicator:I.createElement(hP,null),overflowedIndicatorPopupClassName:Me(P,`${P}-${g}`,A),mode:E,selectable:V,onClick:T},W,{inlineCollapsed:z,style:Object.assign(Object.assign({},l==null?void 0:l.style),h),className:U,prefixCls:P,direction:a,defaultMotions:O,expandIcon:R,ref:e,rootClassName:Me(S,k,r.rootClassName,X,B)}),Z))))}),Qx=I.forwardRef((n,e)=>{const t=I.useRef(null),i=I.useContext(_M);return I.useImperativeHandle(e,()=>({menu:t.current,focus:r=>{var o;(o=t.current)===null||o===void 0||o.focus(r)}})),I.createElement(v4e,Object.assign({ref:t},n,i))});Qx.Item=bse,Qx.SubMenu=Cse,Qx.Divider=pse,Qx.ItemGroup=FM;const y4e=Qx,I4e=n=>{const{componentCls:e,menuCls:t,colorError:i,colorTextLightSolid:r}=n,o=`${t}-item`;return{[`${e}, ${e}-menu-submenu`]:{[`${t} ${o}`]:{[`&${o}-danger:not(${o}-disabled)`]:{color:i,"&:hover":{color:r,backgroundColor:i}}}}}},w4e=n=>{const{componentCls:e,menuCls:t,zIndexPopup:i,dropdownArrowDistance:r,sizePopupArrow:o,antCls:s,iconCls:a,motionDurationMid:l,paddingBlock:u,fontSize:c,dropdownEdgeChildPadding:d,colorTextDisabled:h,fontSizeIcon:g,controlPaddingHorizontal:m,colorBgElevated:f}=n;return[{[e]:Object.assign(Object.assign({},oo(n)),{position:"absolute",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:i,display:"block","&::before":{position:"absolute",insetBlock:n.calc(o).div(2).sub(r).equal(),zIndex:-9999,opacity:1e-4,content:'""'},[`&-trigger${s}-btn`]:{[`& > ${a}-down, & > ${s}-btn-icon > ${a}-down`]:{fontSize:g}},[`${e}-wrap`]:{position:"relative",[`${s}-btn > ${a}-down`]:{fontSize:g},[`${a}-down::before`]:{transition:`transform ${l}`}},[`${e}-wrap-open`]:{[`${a}-down::before`]:{transform:"rotate(180deg)"}},"\n &-hidden,\n &-menu-hidden,\n &-menu-submenu-hidden\n ":{display:"none"},[`&${s}-slide-down-enter${s}-slide-down-enter-active${e}-placement-bottomLeft, + &${s}-slide-down-appear${s}-slide-down-appear-active${e}-placement-bottomLeft, + &${s}-slide-down-enter${s}-slide-down-enter-active${e}-placement-bottom, + &${s}-slide-down-appear${s}-slide-down-appear-active${e}-placement-bottom, + &${s}-slide-down-enter${s}-slide-down-enter-active${e}-placement-bottomRight, + &${s}-slide-down-appear${s}-slide-down-appear-active${e}-placement-bottomRight`]:{animationName:lM},[`&${s}-slide-up-enter${s}-slide-up-enter-active${e}-placement-topLeft, + &${s}-slide-up-appear${s}-slide-up-appear-active${e}-placement-topLeft, + &${s}-slide-up-enter${s}-slide-up-enter-active${e}-placement-top, + &${s}-slide-up-appear${s}-slide-up-appear-active${e}-placement-top, + &${s}-slide-up-enter${s}-slide-up-enter-active${e}-placement-topRight, + &${s}-slide-up-appear${s}-slide-up-appear-active${e}-placement-topRight`]:{animationName:cM},[`&${s}-slide-down-leave${s}-slide-down-leave-active${e}-placement-bottomLeft, + &${s}-slide-down-leave${s}-slide-down-leave-active${e}-placement-bottom, + &${s}-slide-down-leave${s}-slide-down-leave-active${e}-placement-bottomRight`]:{animationName:uM},[`&${s}-slide-up-leave${s}-slide-up-leave-active${e}-placement-topLeft, + &${s}-slide-up-leave${s}-slide-up-leave-active${e}-placement-top, + &${s}-slide-up-leave${s}-slide-up-leave-active${e}-placement-topRight`]:{animationName:dM}})},j4(n,f,{arrowPlacement:{top:!0,bottom:!0}}),{[`${e} ${t}`]:{position:"relative",margin:0},[`${t}-submenu-popup`]:{position:"absolute",zIndex:i,background:"transparent",boxShadow:"none",transformOrigin:"0 0","ul, li":{listStyle:"none",margin:0}},[`${e}, ${e}-menu-submenu`]:{[t]:Object.assign(Object.assign({padding:d,listStyleType:"none",backgroundColor:f,backgroundClip:"padding-box",borderRadius:n.borderRadiusLG,outline:"none",boxShadow:n.boxShadowSecondary},T1(n)),{"&:empty":{padding:0,boxShadow:"none"},[`${t}-item-group-title`]:{padding:`${Te(u)} ${Te(m)}`,color:n.colorTextDescription,transition:`all ${l}`},[`${t}-item`]:{position:"relative",display:"flex",alignItems:"center"},[`${t}-item-icon`]:{minWidth:c,marginInlineEnd:n.marginXS,fontSize:n.fontSizeSM},[`${t}-title-content`]:{flex:"auto","> a":{color:"inherit",transition:`all ${l}`,"&:hover":{color:"inherit"},"&::after":{position:"absolute",inset:0,content:'""'}}},[`${t}-item, ${t}-submenu-title`]:Object.assign(Object.assign({clear:"both",margin:0,padding:`${Te(u)} ${Te(m)}`,color:n.colorText,fontWeight:"normal",fontSize:c,lineHeight:n.lineHeight,cursor:"pointer",transition:`all ${l}`,borderRadius:n.borderRadiusSM,"&:hover, &-active":{backgroundColor:n.controlItemBgHover}},T1(n)),{"&-selected":{color:n.colorPrimary,backgroundColor:n.controlItemBgActive,"&:hover, &-active":{backgroundColor:n.controlItemBgActiveHover}},"&-disabled":{color:h,cursor:"not-allowed","&:hover":{color:h,backgroundColor:f,cursor:"not-allowed"},a:{pointerEvents:"none"}},"&-divider":{height:1,margin:`${Te(n.marginXXS)} 0`,overflow:"hidden",lineHeight:0,backgroundColor:n.colorSplit},[`${e}-menu-submenu-expand-icon`]:{position:"absolute",insetInlineEnd:n.paddingXS,[`${e}-menu-submenu-arrow-icon`]:{marginInlineEnd:"0 !important",color:n.colorTextDescription,fontSize:g,fontStyle:"normal"}}}),[`${t}-item-group-list`]:{margin:`0 ${Te(n.marginXS)}`,padding:0,listStyle:"none"},[`${t}-submenu-title`]:{paddingInlineEnd:n.calc(m).add(n.fontSizeSM).equal()},[`${t}-submenu-vertical`]:{position:"relative"},[`${t}-submenu${t}-submenu-disabled ${e}-menu-submenu-title`]:{[`&, ${e}-menu-submenu-arrow-icon`]:{color:h,backgroundColor:f,cursor:"not-allowed"}},[`${t}-submenu-selected ${e}-menu-submenu-title`]:{color:n.colorPrimary}})}},[ug(n,"slide-up"),ug(n,"slide-down"),Xy(n,"move-up"),Xy(n,"move-down"),Wx(n,"zoom-big")]]},S4e=Oo("Dropdown",n=>{const{marginXXS:e,sizePopupArrow:t,paddingXXS:i,componentCls:r}=n,o=Bi(n,{menuCls:`${r}-menu`,dropdownArrowDistance:n.calc(t).div(2).add(e).equal(),dropdownEdgeChildPadding:i});return[w4e(o),I4e(o)]},n=>Object.assign(Object.assign({zIndexPopup:n.zIndexPopupBase+50,paddingBlock:(n.controlHeight-n.fontSize*n.lineHeight)/2},vM({contentRadius:n.borderRadiusLG,limitVerticalRadius:!0})),CM(n))),fP=n=>{const{menu:e,arrow:t,prefixCls:i,children:r,trigger:o,disabled:s,dropdownRender:a,getPopupContainer:l,overlayClassName:u,rootClassName:c,overlayStyle:d,open:h,onOpenChange:g,visible:m,onVisibleChange:f,mouseEnterDelay:b=.15,mouseLeaveDelay:C=.1,autoAdjustOverflow:v=!0,placement:w="",overlay:S,transitionName:F}=n,{getPopupContainer:L,getPrefixCls:D,direction:A,dropdown:M}=I.useContext(Tn);Dy();const W=I.useMemo(()=>{const Ze=D();return F!==void 0?F:w.includes("top")?`${Ze}-slide-down`:`${Ze}-slide-up`},[D,w,F]),Z=I.useMemo(()=>w?w.includes("Center")?w.slice(0,w.indexOf("Center")):w:A==="rtl"?"bottomRight":"bottomLeft",[w,A]),T=D("dropdown",i),E=ys(T),[V,z,O]=S4e(T,E),[,P]=Ga(),B=I.Children.only(r),Y=jl(B,{className:Me(`${T}-trigger`,{[`${T}-rtl`]:A==="rtl"},B.props.className),disabled:s}),k=s?[]:o;let X;k&&k.includes("contextMenu")&&(X=!0);const[U,R]=Ur(!1,{value:h??m}),ee=Ki(Ze=>{g==null||g(Ze,{source:"trigger"}),f==null||f(Ze),R(Ze)}),oe=Me(u,c,z,O,E,M==null?void 0:M.className,{[`${T}-rtl`]:A==="rtl"}),se=zoe({arrowPointAtCenter:typeof t=="object"&&t.pointAtCenter,autoAdjustOverflow:v,offset:P.marginXXS,arrowWidth:t?P.sizePopupArrow:0,borderRadius:P.borderRadius}),ue=I.useCallback(()=>{e!=null&&e.selectable&&(e!=null&&e.multiple)||(g==null||g(!1,{source:"menu"}),R(!1))},[e==null?void 0:e.selectable,e==null?void 0:e.multiple]),ce=()=>{let Ze;return e!=null&&e.items?Ze=I.createElement(y4e,Object.assign({},e)):typeof S=="function"?Ze=S():Ze=S,a&&(Ze=a(Ze)),Ze=I.Children.only(typeof Ze=="string"?I.createElement("span",null,Ze):Ze),I.createElement(d4e,{prefixCls:`${T}-menu`,rootClassName:Me(O,E),expandIcon:I.createElement("span",{className:`${T}-menu-submenu-arrow`},I.createElement($4,{className:`${T}-menu-submenu-arrow-icon`})),mode:"vertical",selectable:!1,onClick:ue,validator:ke=>{}},Ze)},[ye,fe]=V1("Dropdown",d==null?void 0:d.zIndex);let le=I.createElement(joe,Object.assign({alignPoint:X},ra(n,["rootClassName"]),{mouseEnterDelay:b,mouseLeaveDelay:C,visible:U,builtinPlacements:se,arrow:!!t,overlayClassName:oe,prefixCls:T,getPopupContainer:l||L,transitionName:W,trigger:k,overlay:ce,placement:Z,onVisibleChange:ee,overlayStyle:Object.assign(Object.assign(Object.assign({},M==null?void 0:M.style),d),{zIndex:ye})}),Y);return ye&&(le=I.createElement(Qk.Provider,{value:fe},le)),V(le)};function x4e(n){return Object.assign(Object.assign({},n),{align:{overflow:{adjustX:!1,adjustY:!1}}})}const L4e=hM(fP,"dropdown",n=>n,x4e),F4e=n=>I.createElement(L4e,Object.assign({},n),I.createElement("span",null));fP._InternalPanelDoNotUseOrYouWillBeFired=F4e;const xse=fP;var Lse={exports:{}};(function(n,e){(function(t,i){n.exports=i()})(Xm,function(){var t=1e3,i=6e4,r=36e5,o="millisecond",s="second",a="minute",l="hour",u="day",c="week",d="month",h="quarter",g="year",m="date",f="Invalid Date",b=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,C=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,v={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(V){var z=["th","st","nd","rd"],O=V%100;return"["+V+(z[(O-20)%10]||z[O]||z[0])+"]"}},w=function(V,z,O){var P=String(V);return!P||P.length>=z?V:""+Array(z+1-P.length).join(O)+V},S={s:w,z:function(V){var z=-V.utcOffset(),O=Math.abs(z),P=Math.floor(O/60),B=O%60;return(z<=0?"+":"-")+w(P,2,"0")+":"+w(B,2,"0")},m:function V(z,O){if(z.date()1)return V(k[0])}else{var X=z.name;L[X]=z,B=X}return!P&&B&&(F=B),B||!P&&F},W=function(V,z){if(A(V))return V.clone();var O=typeof z=="object"?z:{};return O.date=V,O.args=arguments,new T(O)},Z=S;Z.l=M,Z.i=A,Z.w=function(V,z){return W(V,{locale:z.$L,utc:z.$u,x:z.$x,$offset:z.$offset})};var T=function(){function V(O){this.$L=M(O.locale,null,!0),this.parse(O),this.$x=this.$x||O.x||{},this[D]=!0}var z=V.prototype;return z.parse=function(O){this.$d=function(P){var B=P.date,Y=P.utc;if(B===null)return new Date(NaN);if(Z.u(B))return new Date;if(B instanceof Date)return new Date(B);if(typeof B=="string"&&!/Z$/i.test(B)){var k=B.match(b);if(k){var X=k[2]-1||0,U=(k[7]||"0").substring(0,3);return Y?new Date(Date.UTC(k[1],X,k[3]||1,k[4]||0,k[5]||0,k[6]||0,U)):new Date(k[1],X,k[3]||1,k[4]||0,k[5]||0,k[6]||0,U)}}return new Date(B)}(O),this.init()},z.init=function(){var O=this.$d;this.$y=O.getFullYear(),this.$M=O.getMonth(),this.$D=O.getDate(),this.$W=O.getDay(),this.$H=O.getHours(),this.$m=O.getMinutes(),this.$s=O.getSeconds(),this.$ms=O.getMilliseconds()},z.$utils=function(){return Z},z.isValid=function(){return this.$d.toString()!==f},z.isSame=function(O,P){var B=W(O);return this.startOf(P)<=B&&B<=this.endOf(P)},z.isAfter=function(O,P){return W(O)25){var c=s(this).startOf(i).add(1,i).date(u),d=s(this).endOf(t);if(c.isBefore(d))return 1}var h=s(this).startOf(i).date(u).startOf(t).subtract(1,"millisecond"),g=this.diff(h,t,!0);return g<0?s(this).startOf("week").week():Math.ceil(g)},a.weeks=function(l){return l===void 0&&(l=null),this.week(l)}}})})(Dse);var M4e=Dse.exports;const Z4e=Kl(M4e);var Ase={exports:{}};(function(n,e){(function(t,i){n.exports=i()})(Xm,function(){return function(t,i){i.prototype.weekYear=function(){var r=this.month(),o=this.week(),s=this.year();return o===1&&r===11?s+1:r===0&&o>=52?s-1:s}}})})(Ase);var T4e=Ase.exports;const E4e=Kl(T4e);var Nse={exports:{}};(function(n,e){(function(t,i){n.exports=i()})(Xm,function(){return function(t,i){var r=i.prototype,o=r.format;r.format=function(s){var a=this,l=this.$locale();if(!this.isValid())return o.bind(this)(s);var u=this.$utils(),c=(s||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(d){switch(d){case"Q":return Math.ceil((a.$M+1)/3);case"Do":return l.ordinal(a.$D);case"gggg":return a.weekYear();case"GGGG":return a.isoWeekYear();case"wo":return l.ordinal(a.week(),"W");case"w":case"ww":return u.s(a.week(),d==="w"?1:2,"0");case"W":case"WW":return u.s(a.isoWeek(),d==="W"?1:2,"0");case"k":case"kk":return u.s(String(a.$H===0?24:a.$H),d==="k"?1:2,"0");case"X":return Math.floor(a.$d.getTime()/1e3);case"x":return a.$d.getTime();case"z":return"["+a.offsetName()+"]";case"zzz":return"["+a.offsetName("long")+"]";default:return d}});return o.bind(this)(c)}}})})(Nse);var W4e=Nse.exports;const R4e=Kl(W4e);var kse={exports:{}};(function(n,e){(function(t,i){n.exports=i()})(Xm,function(){var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},i=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,r=/\d\d/,o=/\d\d?/,s=/\d*[^-_:/,()\s\d]+/,a={},l=function(f){return(f=+f)+(f>68?1900:2e3)},u=function(f){return function(b){this[f]=+b}},c=[/[+-]\d\d:?(\d\d)?|Z/,function(f){(this.zone||(this.zone={})).offset=function(b){if(!b||b==="Z")return 0;var C=b.match(/([+-]|\d\d)/g),v=60*C[1]+(+C[2]||0);return v===0?0:C[0]==="+"?-v:v}(f)}],d=function(f){var b=a[f];return b&&(b.indexOf?b:b.s.concat(b.f))},h=function(f,b){var C,v=a.meridiem;if(v){for(var w=1;w<=24;w+=1)if(f.indexOf(v(w,0,b))>-1){C=w>12;break}}else C=f===(b?"pm":"PM");return C},g={A:[s,function(f){this.afternoon=h(f,!1)}],a:[s,function(f){this.afternoon=h(f,!0)}],S:[/\d/,function(f){this.milliseconds=100*+f}],SS:[r,function(f){this.milliseconds=10*+f}],SSS:[/\d{3}/,function(f){this.milliseconds=+f}],s:[o,u("seconds")],ss:[o,u("seconds")],m:[o,u("minutes")],mm:[o,u("minutes")],H:[o,u("hours")],h:[o,u("hours")],HH:[o,u("hours")],hh:[o,u("hours")],D:[o,u("day")],DD:[r,u("day")],Do:[s,function(f){var b=a.ordinal,C=f.match(/\d+/);if(this.day=C[0],b)for(var v=1;v<=31;v+=1)b(v).replace(/\[|\]/g,"")===f&&(this.day=v)}],M:[o,u("month")],MM:[r,u("month")],MMM:[s,function(f){var b=d("months"),C=(d("monthsShort")||b.map(function(v){return v.slice(0,3)})).indexOf(f)+1;if(C<1)throw new Error;this.month=C%12||C}],MMMM:[s,function(f){var b=d("months").indexOf(f)+1;if(b<1)throw new Error;this.month=b%12||b}],Y:[/[+-]?\d+/,u("year")],YY:[r,function(f){this.year=l(f)}],YYYY:[/\d{4}/,u("year")],Z:c,ZZ:c};function m(f){var b,C;b=f,C=a&&a.formats;for(var v=(f=b.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(M,W,Z){var T=Z&&Z.toUpperCase();return W||C[Z]||t[Z]||C[T].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(E,V,z){return V||z.slice(1)})})).match(i),w=v.length,S=0;S-1)return new Date((P==="X"?1e3:1)*O);var Y=m(P)(O),k=Y.year,X=Y.month,U=Y.day,R=Y.hours,ee=Y.minutes,oe=Y.seconds,se=Y.milliseconds,ue=Y.zone,ce=new Date,ye=U||(k||X?1:ce.getDate()),fe=k||ce.getFullYear(),le=0;k&&!X||(le=X>0?X-1:ce.getMonth());var Ze=R||0,ke=ee||0,Ne=oe||0,ze=se||0;return ue?new Date(Date.UTC(fe,le,ye,Ze,ke,Ne,ze+60*ue.offset*1e3)):B?new Date(Date.UTC(fe,le,ye,Ze,ke,Ne,ze)):new Date(fe,le,ye,Ze,ke,Ne,ze)}catch{return new Date("")}}(F,A,L),this.init(),T&&T!==!0&&(this.$L=this.locale(T).$L),Z&&F!=this.format(A)&&(this.$d=new Date("")),a={}}else if(A instanceof Array)for(var E=A.length,V=1;V<=E;V+=1){D[1]=A[V-1];var z=C.apply(this,D);if(z.isValid()){this.$d=z.$d,this.$L=z.$L,this.init();break}V===E&&(this.$d=new Date(""))}else w.call(this,S)}}})})(kse);var G4e=kse.exports;const V4e=Kl(G4e);Ao.extend(V4e),Ao.extend(R4e),Ao.extend(A4e),Ao.extend(k4e),Ao.extend(Z4e),Ao.extend(E4e),Ao.extend(function(n,e){var t=e.prototype,i=t.format;t.format=function(o){var s=(o||"").replace("Wo","wo");return i.bind(this)(s)}});var X4e={bn_BD:"bn-bd",by_BY:"be",en_GB:"en-gb",en_US:"en",fr_BE:"fr",fr_CA:"fr-ca",hy_AM:"hy-am",kmr_IQ:"ku",nl_BE:"nl-be",pt_BR:"pt-br",zh_CN:"zh-cn",zh_HK:"zh-hk",zh_TW:"zh-tw"},Y1=function(e){var t=X4e[e];return t||e.split("_")[0]},Mse=function(){Xee(!1,"Not match any format. Please help to fire a issue about this.")},P4e={getNow:function(){return Ao()},getFixedDate:function(e){return Ao(e,["YYYY-M-DD","YYYY-MM-DD"])},getEndDate:function(e){return e.endOf("month")},getWeekDay:function(e){var t=e.locale("en");return t.weekday()+t.localeData().firstDayOfWeek()},getYear:function(e){return e.year()},getMonth:function(e){return e.month()},getDate:function(e){return e.date()},getHour:function(e){return e.hour()},getMinute:function(e){return e.minute()},getSecond:function(e){return e.second()},getMillisecond:function(e){return e.millisecond()},addYear:function(e,t){return e.add(t,"year")},addMonth:function(e,t){return e.add(t,"month")},addDate:function(e,t){return e.add(t,"day")},setYear:function(e,t){return e.year(t)},setMonth:function(e,t){return e.month(t)},setDate:function(e,t){return e.date(t)},setHour:function(e,t){return e.hour(t)},setMinute:function(e,t){return e.minute(t)},setSecond:function(e,t){return e.second(t)},setMillisecond:function(e,t){return e.millisecond(t)},isAfter:function(e,t){return e.isAfter(t)},isValidate:function(e){return e.isValid()},locale:{getWeekFirstDay:function(e){return Ao().locale(Y1(e)).localeData().firstDayOfWeek()},getWeekFirstDate:function(e,t){return t.locale(Y1(e)).weekday(0)},getWeek:function(e,t){return t.locale(Y1(e)).week()},getShortWeekDays:function(e){return Ao().locale(Y1(e)).localeData().weekdaysMin()},getShortMonths:function(e){return Ao().locale(Y1(e)).localeData().monthsShort()},format:function(e,t,i){return t.locale(Y1(e)).format(i)},parse:function(e,t,i){for(var r=Y1(e),o=0;o2&&arguments[2]!==void 0?arguments[2]:"0",i=String(n);i.length2&&arguments[2]!==void 0?arguments[2]:[],i=I.useState([!1,!1]),r=we(i,2),o=r[0],s=r[1],a=function(c,d){s(function(h){return $x(h,d,c)})},l=I.useMemo(function(){return o.map(function(u,c){if(u)return!0;var d=n[c];return d?!!(!t[c]&&!d||d&&e(d,{activeIndex:c})):!1})},[n,o,e,t]);return[l,a]}function Rse(n,e,t,i,r){var o="",s=[];return n&&s.push(r?"hh":"HH"),e&&s.push("mm"),t&&s.push("ss"),o=s.join(":"),i&&(o+=".SSS"),r&&(o+=" A"),o}function B4e(n,e,t,i,r,o){var s=n.fieldDateTimeFormat,a=n.fieldDateFormat,l=n.fieldTimeFormat,u=n.fieldMonthFormat,c=n.fieldYearFormat,d=n.fieldWeekFormat,h=n.fieldQuarterFormat,g=n.yearFormat,m=n.cellYearFormat,f=n.cellQuarterFormat,b=n.dayFormat,C=n.cellDateFormat,v=Rse(e,t,i,r,o);return Se(Se({},n),{},{fieldDateTimeFormat:s||"YYYY-MM-DD ".concat(v),fieldDateFormat:a||"YYYY-MM-DD",fieldTimeFormat:l||v,fieldMonthFormat:u||"YYYY-MM",fieldYearFormat:c||"YYYY",fieldWeekFormat:d||"gggg-wo",fieldQuarterFormat:h||"YYYY-[Q]Q",yearFormat:g||"YYYY",cellYearFormat:m||"YYYY",cellQuarterFormat:f||"[Q]Q",cellDateFormat:C||b||"D"})}function Gse(n,e){var t=e.showHour,i=e.showMinute,r=e.showSecond,o=e.showMillisecond,s=e.use12Hours;return Ye.useMemo(function(){return B4e(n,t,i,r,o,s)},[n,t,i,r,o,s])}function qx(n,e,t){return t??e.some(function(i){return n.includes(i)})}var z4e=["showNow","showHour","showMinute","showSecond","showMillisecond","use12Hours","hourStep","minuteStep","secondStep","millisecondStep","hideDisabledOptions","defaultValue","disabledHours","disabledMinutes","disabledSeconds","disabledMilliseconds","disabledTime","changeOnScroll","defaultOpenValue"];function Y4e(n){var e=NM(n,z4e),t=n.format,i=n.picker,r=null;return t&&(r=t,Array.isArray(r)&&(r=r[0]),r=Vn(r)==="object"?r.format:r),i==="time"&&(e.format=r),[e,r]}function H4e(n){return n&&typeof n=="string"}function Vse(n,e,t,i){return[n,e,t,i].some(function(r){return r!==void 0})}function Xse(n,e,t,i,r){var o=e,s=t,a=i;if(!n&&!o&&!s&&!a&&!r)o=!0,s=!0,a=!0;else if(n){var l,u,c,d=[o,s,a].some(function(m){return m===!1}),h=[o,s,a].some(function(m){return m===!0}),g=d?!0:!h;o=(l=o)!==null&&l!==void 0?l:g,s=(u=s)!==null&&u!==void 0?u:g,a=(c=a)!==null&&c!==void 0?c:g}return[o,s,a,r]}function Pse(n){var e=n.showTime,t=Y4e(n),i=we(t,2),r=i[0],o=i[1],s=e&&Vn(e)==="object"?e:{},a=Se(Se({defaultOpenValue:s.defaultOpenValue||s.defaultValue},r),s),l=a.showMillisecond,u=a.showHour,c=a.showMinute,d=a.showSecond,h=Vse(u,c,d,l),g=Xse(h,u,c,d,l),m=we(g,3);return u=m[0],c=m[1],d=m[2],[a,Se(Se({},a),{},{showHour:u,showMinute:c,showSecond:d,showMillisecond:l}),a.format,o]}function Ose(n,e,t,i,r){var o=n==="time";if(n==="datetime"||o){for(var s=i,a=Tse(n,r,null),l=a,u=[e,t],c=0;c1&&(s=e.addDate(s,-7)),s}function sa(n,e){var t=e.generateConfig,i=e.locale,r=e.format;return n?typeof r=="function"?r(n):t.locale.format(i.locale,n,r):""}function ZM(n,e,t){var i=e,r=["getHour","getMinute","getSecond","getMillisecond"],o=["setHour","setMinute","setSecond","setMillisecond"];return o.forEach(function(s,a){t?i=n[s](i,n[r[a]](t)):i=n[s](i,0)}),i}function j4e(n,e,t,i,r){var o=Ki(function(s,a){return!!(t&&t(s,a)||i&&n.isAfter(i,s)&&!vl(n,e,i,s,a.type)||r&&n.isAfter(s,r)&&!vl(n,e,r,s,a.type))});return o}function Q4e(n,e,t){return I.useMemo(function(){var i=Tse(n,e,t),r=H1(i),o=r[0],s=Vn(o)==="object"&&o.type==="mask"?o.format:null;return[r.map(function(a){return typeof a=="string"||typeof a=="function"?a:a.format}),s]},[n,e,t])}function $4e(n,e,t){return typeof n[0]=="function"||t?!0:e}function q4e(n,e,t,i){var r=Ki(function(o,s){var a=Se({type:e},s);if(delete a.activeIndex,!n.isValidate(o)||t&&t(o,a))return!0;if((e==="date"||e==="time")&&i){var l,u=((l=i.disabledTime)===null||l===void 0?void 0:l.call(i,o,s&&s.activeIndex===1?"end":"start"))||{},c=u.disabledHours,d=u.disabledMinutes,h=u.disabledSeconds,g=u.disabledMilliseconds,m=i.disabledHours,f=i.disabledMinutes,b=i.disabledSeconds,C=c||m,v=d||f,w=h||b,S=n.getHour(o),F=n.getMinute(o),L=n.getSecond(o),D=n.getMillisecond(o);if(C&&C().includes(S)||v&&v(S).includes(F)||w&&w(S,F).includes(L)||g&&g(S,F,L).includes(D))return!0}return!1});return r}function TM(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,t=I.useMemo(function(){var i=n&&H1(n);return e&&i&&(i[1]=i[1]||i[0]),i},[n,e]);return t}function Hse(n,e){var t=n.generateConfig,i=n.locale,r=n.picker,o=r===void 0?"date":r,s=n.prefixCls,a=s===void 0?"rc-picker":s,l=n.styles,u=l===void 0?{}:l,c=n.classNames,d=c===void 0?{}:c,h=n.order,g=h===void 0?!0:h,m=n.components,f=m===void 0?{}:m,b=n.inputRender,C=n.allowClear,v=n.clearIcon,w=n.needConfirm,S=n.multiple,F=n.format,L=n.inputReadOnly,D=n.disabledDate,A=n.minDate,M=n.maxDate,W=n.showTime,Z=n.value,T=n.defaultValue,E=n.pickerValue,V=n.defaultPickerValue,z=TM(Z),O=TM(T),P=TM(E),B=TM(V),Y=o==="date"&&W?"datetime":o,k=Y==="time"||Y==="datetime",X=k||S,U=w??k,R=Pse(n),ee=we(R,4),oe=ee[0],se=ee[1],ue=ee[2],ce=ee[3],ye=Gse(i,se),fe=I.useMemo(function(){return Ose(Y,ue,ce,oe,ye)},[Y,ue,ce,oe,ye]),le=I.useMemo(function(){return Se(Se({},n),{},{prefixCls:a,locale:ye,picker:o,styles:u,classNames:d,order:g,components:Se({input:b},f),clearIcon:U4e(a,C,v),showTime:fe,value:z,defaultValue:O,pickerValue:P,defaultPickerValue:B},e==null?void 0:e())},[n]),Ze=Q4e(Y,ye,F),ke=we(Ze,2),Ne=ke[0],ze=ke[1],Ke=$4e(Ne,L,S),ut=j4e(t,i,D,A,M),Ct=q4e(t,o,D,fe),ot=I.useMemo(function(){return Se(Se({},le),{},{needConfirm:U,inputReadOnly:Ke,disabledDate:ut})},[le,U,Ke,ut]);return[ot,Y,X,Ne,ze,Ct]}function ePe(n,e,t){var i=Ur(e,{value:n}),r=we(i,2),o=r[0],s=r[1],a=Ye.useRef(n),l=Ye.useRef(),u=function(){xi.cancel(l.current)},c=Ki(function(){s(a.current),t&&o!==a.current&&t(a.current)}),d=Ki(function(h,g){u(),a.current=h,h||g?c():l.current=xi(c)});return Ye.useEffect(function(){return u},[]),[o,d]}function Use(n,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],i=arguments.length>3?arguments[3]:void 0,r=t.every(function(c){return c})?!1:n,o=ePe(r,e||!1,i),s=we(o,2),a=s[0],l=s[1];function u(c){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};(!d.inherit||a)&&l(c,d.force)}return[a,u]}function Jse(n){var e=I.useRef();return I.useImperativeHandle(n,function(){var t;return{nativeElement:(t=e.current)===null||t===void 0?void 0:t.nativeElement,focus:function(r){var o;(o=e.current)===null||o===void 0||o.focus(r)},blur:function(){var r;(r=e.current)===null||r===void 0||r.blur()}}}),e}function Kse(n,e){return I.useMemo(function(){return n||(e?(ia(!1,"`ranges` is deprecated. Please use `presets` instead."),Object.entries(e).map(function(t){var i=we(t,2),r=i[0],o=i[1];return{label:r,value:o}})):[])},[n,e])}function wP(n,e){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,i=I.useRef(e);i.current=e,D1(function(){if(n)i.current(n);else{var r=xi(function(){i.current(n)},t);return function(){xi.cancel(r)}}},[n])}function jse(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],t=I.useState(0),i=we(t,2),r=i[0],o=i[1],s=I.useState(!1),a=we(s,2),l=a[0],u=a[1],c=I.useRef([]),d=I.useRef(null),h=function(b){u(b)},g=function(b){return b&&(d.current=b),d.current},m=function(b){var C=c.current,v=new Set(C.filter(function(S){return b[S]||e[S]})),w=C[C.length-1]===0?1:0;return v.size>=2||n[w]?null:w};return wP(l,function(){l||(c.current=[])}),I.useEffect(function(){l&&c.current.push(r)},[l,r]),[l,h,g,r,o,m,c.current]}function tPe(n,e,t,i,r,o){var s=t[t.length-1],a=t.find(function(u){return n[u]}),l=function(c,d){var h=we(n,2),g=h[0],m=h[1],f=Se(Se({},d),{},{from:s!==a?n[a]:void 0});return s===1&&e[0]&&g&&!vl(i,r,g,c,f.type)&&i.isAfter(g,c)||s===0&&e[1]&&m&&!vl(i,r,m,c,f.type)&&i.isAfter(c,m)?!0:o==null?void 0:o(c,f)};return l}function tL(n,e,t,i){switch(e){case"date":case"week":return n.addMonth(t,i);case"month":case"quarter":return n.addYear(t,i);case"year":return n.addYear(t,i*10);case"decade":return n.addYear(t,i*100);default:return t}}var SP=[];function Qse(n,e,t,i,r,o,s,a){var l=arguments.length>8&&arguments[8]!==void 0?arguments[8]:SP,u=arguments.length>9&&arguments[9]!==void 0?arguments[9]:SP,c=arguments.length>10&&arguments[10]!==void 0?arguments[10]:SP,d=arguments.length>11?arguments[11]:void 0,h=arguments.length>12?arguments[12]:void 0,g=arguments.length>13?arguments[13]:void 0,m=s==="time",f=o||0,b=function(P){var B=n.getNow();return m&&(B=ZM(n,B)),l[P]||t[P]||B},C=we(u,2),v=C[0],w=C[1],S=Ur(function(){return b(0)},{value:v}),F=we(S,2),L=F[0],D=F[1],A=Ur(function(){return b(1)},{value:w}),M=we(A,2),W=M[0],Z=M[1],T=I.useMemo(function(){var O=[L,W][f];return m?O:ZM(n,O,c[f])},[m,L,W,f,n,c]),E=function(P){var B=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"panel",Y=[D,Z][f];Y(P);var k=[L,W];k[f]=P,d&&(!vl(n,e,L,k[0],s)||!vl(n,e,W,k[1],s))&&d(k,{source:B,range:f===1?"end":"start",mode:i})},V=function(P,B){if(a){var Y={date:"month",week:"month",month:"year",quarter:"year"},k=Y[s];if(k&&!vl(n,e,P,B,k))return tL(n,s,B,-1);if(s==="year"){var X=Math.floor(n.getYear(P)/10),U=Math.floor(n.getYear(B)/10);if(X!==U)return tL(n,s,B,-1)}}return B},z=I.useRef(null);return lr(function(){if(r&&!l[f]){var O=m?null:n.getNow();if(z.current!==null&&z.current!==f?O=[L,W][f^1]:t[f]?O=f===0?t[0]:V(t[0],t[1]):t[f^1]&&(O=t[f^1]),O){h&&n.isAfter(h,O)&&(O=h);var P=a?tL(n,s,O,1):O;g&&n.isAfter(P,g)&&(O=a?tL(n,s,g,-1):g),E(O,"reset")}}},[r,f,t[f]]),I.useEffect(function(){r?z.current=f:z.current=null},[r,f]),lr(function(){r&&l&&l[f]&&E(l[f],"reset")},[r,f]),[T,E]}function $se(n,e){var t=I.useRef(n),i=I.useState({}),r=we(i,2),o=r[1],s=function(u){return u&&e!==void 0?e:t.current},a=function(u){t.current=u,o({})};return[s,a,s(!0)]}var nPe=[];function qse(n,e,t){var i=function(s){return s.map(function(a){return sa(a,{generateConfig:n,locale:e,format:t[0]})})},r=function(s,a){for(var l=Math.max(s.length,a.length),u=-1,c=0;c2&&arguments[2]!==void 0?arguments[2]:1,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:[],o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:2,s=[],a=t>=1?t|0:1,l=n;l<=e;l+=a){var u=r.includes(l);(!u||!i)&&s.push({label:pP(l,o),value:l,disabled:u})}return s}function xP(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2?arguments[2]:void 0,i=e||{},r=i.use12Hours,o=i.hourStep,s=o===void 0?1:o,a=i.minuteStep,l=a===void 0?1:a,u=i.secondStep,c=u===void 0?1:u,d=i.millisecondStep,h=d===void 0?100:d,g=i.hideDisabledOptions,m=i.disabledTime,f=i.disabledHours,b=i.disabledMinutes,C=i.disabledSeconds,v=I.useMemo(function(){return t||n.getNow()},[t,n]),w=I.useCallback(function(B){var Y=(m==null?void 0:m(B))||{};return[Y.disabledHours||f||EM,Y.disabledMinutes||b||EM,Y.disabledSeconds||C||EM,Y.disabledMilliseconds||EM]},[m,f,b,C]),S=I.useMemo(function(){return w(v)},[v,w]),F=we(S,4),L=F[0],D=F[1],A=F[2],M=F[3],W=I.useCallback(function(B,Y,k,X){var U=WM(0,23,s,g,B()),R=r?U.map(function(ue){return Se(Se({},ue),{},{label:pP(ue.value%12||12,2)})}):U,ee=function(ce){return WM(0,59,l,g,Y(ce))},oe=function(ce,ye){return WM(0,59,c,g,k(ce,ye))},se=function(ce,ye,fe){return WM(0,999,h,g,X(ce,ye,fe),3)};return[R,ee,oe,se]},[g,s,r,h,l,c]),Z=I.useMemo(function(){return W(L,D,A,M)},[W,L,D,A,M]),T=we(Z,4),E=T[0],V=T[1],z=T[2],O=T[3],P=function(Y,k){var X=function(){return E},U=V,R=z,ee=O;if(k){var oe=w(k),se=we(oe,4),ue=se[0],ce=se[1],ye=se[2],fe=se[3],le=W(ue,ce,ye,fe),Ze=we(le,4),ke=Ze[0],Ne=Ze[1],ze=Ze[2],Ke=Ze[3];X=function(){return ke},U=Ne,R=ze,ee=Ke}var ut=rPe(Y,X,U,R,ee,n);return ut};return[P,E,V,z,O]}function oPe(n){var e=n.mode,t=n.internalMode,i=n.renderExtraFooter,r=n.showNow,o=n.showTime,s=n.onSubmit,a=n.onNow,l=n.invalid,u=n.needConfirm,c=n.generateConfig,d=n.disabledDate,h=I.useContext(qd),g=h.prefixCls,m=h.locale,f=h.button,b=f===void 0?"button":f,C=c.getNow(),v=xP(c,o,C),w=we(v,1),S=w[0],F=i==null?void 0:i(e),L=d(C,{type:e}),D=function(){if(!L){var V=S(C);a(V)}},A="".concat(g,"-now"),M="".concat(A,"-btn"),W=r&&I.createElement("li",{className:A},I.createElement("a",{className:Me(M,L&&"".concat(M,"-disabled")),"aria-disabled":L,onClick:D},t==="date"?m.today:m.now)),Z=u&&I.createElement("li",{className:"".concat(g,"-ok")},I.createElement(b,{disabled:l,onClick:s},m.ok)),T=(W||Z)&&I.createElement("ul",{className:"".concat(g,"-ranges")},W,Z);return!F&&!T?null:I.createElement("div",{className:"".concat(g,"-footer")},F&&I.createElement("div",{className:"".concat(g,"-footer-extra")},F),T)}function rae(n,e,t){function i(r,o){var s=r.findIndex(function(l){return vl(n,e,l,o,t)});if(s===-1)return[].concat(_t(r),[o]);var a=_t(r);return a.splice(s,1),a}return i}var J1=I.createContext(null);function RM(){return I.useContext(J1)}function qy(n,e){var t=n.prefixCls,i=n.generateConfig,r=n.locale,o=n.disabledDate,s=n.minDate,a=n.maxDate,l=n.cellRender,u=n.hoverValue,c=n.hoverRangeValue,d=n.onHover,h=n.values,g=n.pickerValue,m=n.onSelect,f=n.prevIcon,b=n.nextIcon,C=n.superPrevIcon,v=n.superNextIcon,w=i.getNow(),S={now:w,values:h,pickerValue:g,prefixCls:t,disabledDate:o,minDate:s,maxDate:a,cellRender:l,hoverValue:u,hoverRangeValue:c,onHover:d,locale:r,generateConfig:i,onSelect:m,panelType:e,prevIcon:f,nextIcon:b,superPrevIcon:C,superNextIcon:v};return[S,w]}var Up=I.createContext({});function nL(n){for(var e=n.rowNum,t=n.colNum,i=n.baseDate,r=n.getCellDate,o=n.prefixColumn,s=n.rowClassName,a=n.titleFormat,l=n.getCellText,u=n.getCellClassName,c=n.headerCells,d=n.cellSelection,h=d===void 0?!0:d,g=n.disabledDate,m=RM(),f=m.prefixCls,b=m.panelType,C=m.now,v=m.disabledDate,w=m.cellRender,S=m.onHover,F=m.hoverValue,L=m.hoverRangeValue,D=m.generateConfig,A=m.values,M=m.locale,W=m.onSelect,Z=g||v,T="".concat(f,"-cell"),E=I.useContext(Up),V=E.onCellDblClick,z=function(R){return A.some(function(ee){return ee&&vl(D,M,R,ee,b)})},O=[],P=0;P1&&arguments[1]!==void 0?arguments[1]:!1;ge(Re),b==null||b(Re),dt&&j(Re)},q=function(Re,dt){ye(Re),dt&&Q(dt),j(dt,Re)},te=function(Re){if(Ct(Re),Q(Re),ce!==S){var dt=["decade","year"],yt=[].concat(dt,["month"]),Kt={quarter:[].concat(dt,["quarter"]),week:[].concat(_t(yt),["week"]),date:[].concat(_t(yt),["date"])},Wt=Kt[S]||yt,Ut=Wt.indexOf(ce),Nn=Wt[Ut+1];Nn&&q(Nn,Re)}},Ce=I.useMemo(function(){var He,Re;if(Array.isArray(D)){var dt=we(D,2);He=dt[0],Re=dt[1]}else He=D;return!He&&!Re?null:(He=He||Re,Re=Re||He,r.isAfter(He,Re)?[Re,He]:[He,Re])},[D,r]),Le=bP(A,M,W),Ae=T[fe]||pPe[fe]||VM,Oe=I.useContext(Up),tt=I.useMemo(function(){return Se(Se({},Oe),{},{hideHeader:E})},[Oe,E]),We="".concat(V,"-panel"),ht=NM(n,["showWeek","prevIcon","nextIcon","superPrevIcon","superNextIcon","disabledDate","minDate","maxDate","onHover"]);return I.createElement(Up.Provider,{value:tt},I.createElement("div",{ref:z,tabIndex:l,className:Me(We,me({},"".concat(We,"-rtl"),o==="rtl"))},I.createElement(Ae,pt({},ht,{showTime:ee,prefixCls:V,locale:U,generateConfig:r,onModeChange:q,pickerValue:de,onPickerValueChange:function(Re){Q(Re,!0)},value:Ke[0],onSelect:te,values:Ke,cellRender:Le,hoverRangeValue:Ce,hoverValue:L}))))}var LP=I.memo(I.forwardRef(bPe));function CPe(n){var e=n.picker,t=n.multiplePanel,i=n.pickerValue,r=n.onPickerValueChange,o=n.needConfirm,s=n.onSubmit,a=n.range,l=n.hoverValue,u=I.useContext(qd),c=u.prefixCls,d=u.generateConfig,h=I.useCallback(function(v,w){return tL(d,e,v,w)},[d,e]),g=I.useMemo(function(){return h(i,1)},[i,h]),m=function(w){r(h(w,-1))},f={onCellDblClick:function(){o&&s()}},b=e==="time",C=Se(Se({},n),{},{hoverValue:null,hoverRangeValue:null,hideHeader:b});return a?C.hoverRangeValue=l:C.hoverValue=l,t?I.createElement("div",{className:"".concat(c,"-panels")},I.createElement(Up.Provider,{value:Se(Se({},f),{},{hideNext:!0})},I.createElement(LP,C)),I.createElement(Up.Provider,{value:Se(Se({},f),{},{hidePrev:!0})},I.createElement(LP,pt({},C,{pickerValue:g,onPickerValueChange:m})))):I.createElement(Up.Provider,{value:Se({},f)},I.createElement(LP,C))}function sae(n){return typeof n=="function"?n():n}function vPe(n){var e=n.prefixCls,t=n.presets,i=n.onClick,r=n.onHover;return t.length?I.createElement("div",{className:"".concat(e,"-presets")},I.createElement("ul",null,t.map(function(o,s){var a=o.label,l=o.value;return I.createElement("li",{key:s,onClick:function(){i(sae(l))},onMouseEnter:function(){r(sae(l))},onMouseLeave:function(){r(null)}},a)}))):null}function aae(n){var e=n.panelRender,t=n.internalMode,i=n.picker,r=n.showNow,o=n.range,s=n.multiple,a=n.activeOffset,l=a===void 0?0:a,u=n.presets,c=n.onPresetHover,d=n.onPresetSubmit,h=n.onFocus,g=n.onBlur,m=n.direction,f=n.value,b=n.onSelect,C=n.isInvalid,v=n.defaultOpenValue,w=n.onOk,S=n.onSubmit,F=I.useContext(qd),L=F.prefixCls,D="".concat(L,"-panel"),A=m==="rtl",M=I.useRef(null),W=I.useRef(null),Z=I.useState(0),T=we(Z,2),E=T[0],V=T[1],z=I.useState(0),O=we(z,2),P=O[0],B=O[1],Y=function(ke){ke.offsetWidth&&V(ke.offsetWidth)};I.useEffect(function(){if(o){var Ze,ke=((Ze=M.current)===null||Ze===void 0?void 0:Ze.offsetWidth)||0,Ne=E-ke;l<=Ne?B(0):B(l+ke-E)}},[E,l,o]);function k(Ze){return Ze.filter(function(ke){return ke})}var X=I.useMemo(function(){return k(H1(f))},[f]),U=i==="time"&&!X.length,R=I.useMemo(function(){return U?k([v]):X},[U,X,v]),ee=U?v:X,oe=I.useMemo(function(){return R.length?R.some(function(Ze){return C(Ze)}):!0},[R,C]),se=function(){U&&b(v),w(),S()},ue=I.createElement("div",{className:"".concat(L,"-panel-layout")},I.createElement(vPe,{prefixCls:L,presets:u,onClick:d,onHover:c}),I.createElement("div",null,I.createElement(CPe,pt({},n,{value:ee})),I.createElement(oPe,pt({},n,{showNow:s?!1:r,invalid:oe,onSubmit:se}))));e&&(ue=e(ue));var ce="".concat(D,"-container"),ye="marginLeft",fe="marginRight",le=I.createElement("div",{tabIndex:-1,className:Me(ce,"".concat(L,"-").concat(t,"-panel-container")),style:me(me({},A?fe:ye,P),A?ye:fe,"auto"),onFocus:h,onBlur:g},ue);return o&&(le=I.createElement("div",{ref:W,className:Me("".concat(L,"-range-wrapper"),"".concat(L,"-").concat(i,"-range-wrapper"))},I.createElement("div",{ref:M,className:"".concat(L,"-range-arrow"),style:me({},A?"right":"left",l)}),I.createElement(ac,{onResize:Y},le))),le}function lae(n,e){var t=n.format,i=n.maskFormat,r=n.generateConfig,o=n.locale,s=n.preserveInvalidOnBlur,a=n.inputReadOnly,l=n.required,u=n["aria-required"],c=n.onSubmit,d=n.onFocus,h=n.onBlur,g=n.onInputChange,m=n.onInvalid,f=n.open,b=n.onOpenChange,C=n.onKeyDown,v=n.onChange,w=n.activeHelp,S=n.name,F=n.autoComplete,L=n.id,D=n.value,A=n.invalid,M=n.placeholder,W=n.disabled,Z=n.activeIndex,T=n.allHelp,E=n.picker,V=function(U,R){var ee=r.locale.parse(o.locale,U,[R]);return ee&&r.isValidate(ee)?ee:null},z=t[0],O=I.useCallback(function(X){return sa(X,{locale:o,format:z,generateConfig:r})},[o,r,z]),P=I.useMemo(function(){return D.map(O)},[D,O]),B=I.useMemo(function(){var X=E==="time"?8:10,U=typeof z=="function"?z(r.getNow()).length:z.length;return Math.max(X,U)+2},[z,E,r]),Y=function(U){for(var R=0;R=a&&t<=l)return o;var u=Math.min(Math.abs(t-a),Math.abs(t-l));u0?qe:nt));var xt=et+xe,Zt=nt-qe+1;return String(qe+(Zt+xt-qe)%Zt)};switch(Re){case"Backspace":case"Delete":dt="",yt=Wt;break;case"ArrowLeft":dt="",Ut(-1);break;case"ArrowRight":dt="",Ut(1);break;case"ArrowUp":dt="",yt=Nn(1);break;case"ArrowDown":dt="",yt=Nn(-1);break;default:isNaN(Number(Re))||(dt=X+Re,yt=dt);break}if(dt!==null&&(U(dt),dt.length>=Kt&&(Ut(1),U(""))),yt!==null){var di=le.slice(0,ut)+pP(yt,Kt)+le.slice(Ct);he(di.slice(0,s.length))}fe({})},tt=I.useRef();lr(function(){if(!(!E||!s||j.current)){if(!Ne.match(le)){he(s);return}return ke.current.setSelectionRange(ut,Ct),tt.current=xi(function(){ke.current.setSelectionRange(ut,Ct)}),function(){xi.cancel(tt.current)}}},[Ne,s,E,le,oe,ut,Ct,ye,he]);var We=s?{onFocus:te,onBlur:Le,onKeyDown:Oe,onMouseDown:Q,onMouseUp:q,onPaste:ge}:{};return I.createElement("div",{ref:Ze,className:Me(W,me(me({},"".concat(W,"-active"),t&&r),"".concat(W,"-placeholder"),u))},I.createElement(M,pt({ref:ke,"aria-invalid":f,autoComplete:"off"},C,{onKeyDown:Ae,onBlur:Ce},We,{value:le,onChange:de})),I.createElement(XM,{type:"suffix",icon:o}),b)}),FPe=["id","clearIcon","suffixIcon","separator","activeIndex","activeHelp","allHelp","focused","onFocus","onBlur","onKeyDown","locale","generateConfig","placeholder","className","style","onClick","onClear","value","onChange","onSubmit","onInputChange","format","maskFormat","preserveInvalidOnBlur","onInvalid","disabled","invalid","inputReadOnly","direction","onOpenChange","onActiveOffset","onMouseDown","required","aria-required","autoFocus"],_Pe=["index"];function DPe(n,e){var t=n.id,i=n.clearIcon,r=n.suffixIcon,o=n.separator,s=o===void 0?"~":o,a=n.activeIndex;n.activeHelp,n.allHelp;var l=n.focused;n.onFocus,n.onBlur,n.onKeyDown,n.locale,n.generateConfig;var u=n.placeholder,c=n.className,d=n.style,h=n.onClick,g=n.onClear,m=n.value;n.onChange,n.onSubmit,n.onInputChange,n.format,n.maskFormat,n.preserveInvalidOnBlur,n.onInvalid;var f=n.disabled,b=n.invalid;n.inputReadOnly;var C=n.direction;n.onOpenChange;var v=n.onActiveOffset,w=n.onMouseDown;n.required,n["aria-required"];var S=n.autoFocus,F=zn(n,FPe),L=C==="rtl",D=I.useContext(qd),A=D.prefixCls,M=I.useMemo(function(){if(typeof t=="string")return[t];var ce=t||{};return[ce.start,ce.end]},[t]),W=I.useRef(),Z=I.useRef(),T=I.useRef(),E=function(ye){var fe;return(fe=[Z,T][ye])===null||fe===void 0?void 0:fe.current};I.useImperativeHandle(e,function(){return{nativeElement:W.current,focus:function(ye){if(Vn(ye)==="object"){var fe,le=ye||{},Ze=le.index,ke=Ze===void 0?0:Ze,Ne=zn(le,_Pe);(fe=E(ke))===null||fe===void 0||fe.focus(Ne)}else{var ze;(ze=E(ye??0))===null||ze===void 0||ze.focus()}},blur:function(){var ye,fe;(ye=E(0))===null||ye===void 0||ye.blur(),(fe=E(1))===null||fe===void 0||fe.blur()}}});var V=uae(F),z=I.useMemo(function(){return Array.isArray(u)?u:[u,u]},[u]),O=lae(Se(Se({},n),{},{id:M,placeholder:z})),P=we(O,1),B=P[0],Y=L?"right":"left",k=I.useState(me({position:"absolute",width:0},Y,0)),X=we(k,2),U=X[0],R=X[1],ee=Ki(function(){var ce=E(a);if(ce){var ye=ce.nativeElement,fe=ye.offsetWidth,le=ye.offsetLeft,Ze=ye.offsetParent,ke=le;if(L){var Ne=Ze,ze=getComputedStyle(Ne);ke=Ne.offsetWidth-parseFloat(ze.borderRightWidth)-parseFloat(ze.borderLeftWidth)-le-fe}R(function(Ke){return Se(Se({},Ke),{},me({width:fe},Y,ke))}),v(a===0?0:ke)}});I.useEffect(function(){ee()},[a]);var oe=i&&(m[0]&&!f[0]||m[1]&&!f[1]),se=S&&!f[0],ue=S&&!se&&!f[1];return I.createElement(ac,{onResize:ee},I.createElement("div",pt({},V,{className:Me(A,"".concat(A,"-range"),me(me(me(me({},"".concat(A,"-focused"),l),"".concat(A,"-disabled"),f.every(function(ce){return ce})),"".concat(A,"-invalid"),b.some(function(ce){return ce})),"".concat(A,"-rtl"),L),c),style:d,ref:W,onClick:h,onMouseDown:function(ye){var fe=ye.target;fe!==Z.current.inputElement&&fe!==T.current.inputElement&&ye.preventDefault(),w==null||w(ye)}}),I.createElement(DP,pt({ref:Z},B(0),{autoFocus:se,"date-range":"start"})),I.createElement("div",{className:"".concat(A,"-range-separator")},s),I.createElement(DP,pt({ref:T},B(1),{autoFocus:ue,"date-range":"end"})),I.createElement("div",{className:"".concat(A,"-active-bar"),style:U}),I.createElement(XM,{type:"suffix",icon:r}),oe&&I.createElement(FP,{icon:i,onClear:g})))}var APe=I.forwardRef(DPe);function dae(n,e){var t=n??e;return Array.isArray(t)?t:[t,t]}function PM(n){return n===1?"end":"start"}function NPe(n,e){var t=Hse(n,function(){var cn=n.disabled,Rn=n.allowEmpty,Ai=dae(cn,!1),Co=dae(Rn,!1);return{disabled:Ai,allowEmpty:Co}}),i=we(t,6),r=i[0],o=i[1],s=i[2],a=i[3],l=i[4],u=i[5],c=r.prefixCls,d=r.styles,h=r.classNames,g=r.defaultValue,m=r.value,f=r.needConfirm,b=r.onKeyDown,C=r.disabled,v=r.allowEmpty,w=r.disabledDate,S=r.minDate,F=r.maxDate,L=r.defaultOpen,D=r.open,A=r.onOpenChange,M=r.locale,W=r.generateConfig,Z=r.picker,T=r.showNow,E=r.showToday,V=r.showTime,z=r.mode,O=r.onPanelChange,P=r.onCalendarChange,B=r.onOk,Y=r.defaultPickerValue,k=r.pickerValue,X=r.onPickerValueChange,U=r.inputReadOnly,R=r.suffixIcon,ee=r.onFocus,oe=r.onBlur,se=r.presets,ue=r.ranges,ce=r.components,ye=r.cellRender,fe=r.dateRender,le=r.monthCellRender,Ze=r.onClick,ke=Jse(e),Ne=Use(D,L,C,A),ze=we(Ne,2),Ke=ze[0],ut=ze[1],Ct=function(Rn,Ai){(C.some(function(Co){return!Co})||!Rn)&&ut(Rn,Ai)},ot=tae(W,M,a,!0,!1,g,m,P,B),he=we(ot,5),de=he[0],ge=he[1],j=he[2],Q=he[3],q=he[4],te=j(),Ce=jse(C,v),Le=we(Ce,7),Ae=Le[0],Oe=Le[1],tt=Le[2],We=Le[3],ht=Le[4],He=Le[5],Re=Le[6],dt=function(Rn,Ai){Oe(!0),ee==null||ee(Rn,{range:PM(Ai??We)})},yt=function(Rn,Ai){Oe(!1),oe==null||oe(Rn,{range:PM(Ai??We)})},Kt=I.useMemo(function(){if(!V)return null;var cn=V.disabledTime,Rn=cn?function(Ai){var Co=PM(We);return cn(Ai,Co)}:void 0;return Se(Se({},V),{},{disabledTime:Rn})},[V,We]),Wt=Ur([Z,Z],{value:z}),Ut=we(Wt,2),Nn=Ut[0],di=Ut[1],pe=Nn[We]||Z,xe=pe==="date"&&Kt?"datetime":pe,_e=xe===Z&&xe!=="time",Pe=iae(Z,pe,T,E,!0),qe=nae(r,de,ge,j,Q,C,a,Ae,Ke,u),nt=we(qe,2),wt=nt[0],St=nt[1],et=tPe(te,C,Re,W,M,w),xt=Wse(te,u,v),Zt=we(xt,2),Mt=Zt[0],zt=Zt[1],jt=Qse(W,M,te,Nn,Ke,We,o,_e,Y,k,Kt==null?void 0:Kt.defaultOpenValue,X,S,F),ri=we(jt,2),Bn=ri[0],Mn=ri[1],Yt=Ki(function(cn,Rn,Ai){var Co=$x(Nn,We,Rn);if((Co[0]!==Nn[0]||Co[1]!==Nn[1])&&di(Co),O&&Ai!==!1){var ps=_t(te);cn&&(ps[We]=cn),O(ps,Co)}}),bn=function(Rn,Ai){return $x(te,Ai,Rn)},kt=function(Rn,Ai){var Co=te;Rn&&(Co=bn(Rn,We));var ps=He(Co);Q(Co),wt(We,ps===null),ps===null?Ct(!1,{force:!0}):Ai||ke.current.focus({index:ps})},Ie=function(Rn){if(!ke.current.nativeElement.contains(document.activeElement)){var Ai=C.findIndex(function(Co){return!Co});Ai>=0&&ke.current.focus({index:Ai})}Ct(!0),Ze==null||Ze(Rn)},Ue=function(){St(null),Ct(!1,{force:!0})},gt=I.useState(null),nn=we(gt,2),Kn=nn[0],Zn=nn[1],an=I.useState(null),Wn=we(an,2),wn=Wn[0],pr=Wn[1],Ro=I.useMemo(function(){return wn||te},[te,wn]);I.useEffect(function(){Ke||pr(null)},[Ke]);var ka=I.useState(0),Zs=we(ka,2),bu=Zs[0],zl=Zs[1],Jo=Kse(se,ue),zr=function(Rn){pr(Rn),Zn("preset")},Cu=function(Rn){var Ai=St(Rn);Ai&&Ct(!1,{force:!0})},Ko=function(Rn){kt(Rn)},Ma=function(Rn){pr(Rn?bn(Rn,We):null),Zn("cell")},gl=function(Rn){Ct(!0),dt(Rn)},Ui=function(Rn){tt("panel");var Ai=$x(te,We,Rn);Q(Ai),!f&&!s&&o===xe&&kt(Rn)},gi=function(){Ct(!1)},rn=bP(ye,fe,le,PM(We)),mn=te[We]||null,Di=Ki(function(cn){return u(cn,{activeIndex:We})}),Yr=I.useMemo(function(){var cn=xu(r,!1),Rn=ra(r,[].concat(_t(Object.keys(cn)),["onChange","onCalendarChange","style","className","onPanelChange"]));return Rn},[r]),ar=I.createElement(aae,pt({},Yr,{showNow:Pe,showTime:Kt,range:!0,multiplePanel:_e,activeOffset:bu,disabledDate:et,onFocus:gl,onBlur:yt,picker:Z,mode:pe,internalMode:xe,onPanelChange:Yt,format:l,value:mn,isInvalid:Di,onChange:null,onSelect:Ui,pickerValue:Bn,defaultOpenValue:H1(V==null?void 0:V.defaultOpenValue)[We],onPickerValueChange:Mn,hoverValue:Ro,onHover:Ma,needConfirm:f,onSubmit:kt,onOk:q,presets:Jo,onPresetHover:zr,onPresetSubmit:Cu,onNow:Ko,cellRender:rn})),Hr=function(Rn,Ai){var Co=bn(Rn,Ai);Q(Co)},_n=function(){tt("input")},Cn=function(Rn,Ai){tt("input"),Ct(!0,{inherit:!0}),ht(Ai),dt(Rn,Ai)},Gi=function(Rn,Ai){Ct(!1),yt(Rn,Ai)},bo=function(Rn,Ai){Rn.key==="Tab"&&kt(null,!0),b==null||b(Rn,Ai)},rs=I.useMemo(function(){return{prefixCls:c,locale:M,generateConfig:W,button:ce.button,input:ce.input}},[c,M,W,ce.button,ce.input]);return lr(function(){Ke&&We!==void 0&&Yt(null,Z,!1)},[Ke,We,Z]),lr(function(){var cn=tt();!Ke&&cn==="input"&&(Ct(!1),kt(null,!0)),!Ke&&s&&!f&&cn==="panel"&&(Ct(!0),kt())},[Ke]),I.createElement(qd.Provider,{value:rs},I.createElement(Zse,pt({},Ese(r),{popupElement:ar,popupStyle:d.popup,popupClassName:h.popup,visible:Ke,onClose:gi,range:!0}),I.createElement(APe,pt({},r,{ref:ke,suffixIcon:R,activeIndex:Ae||Ke?We:null,activeHelp:!!wn,allHelp:!!wn&&Kn==="preset",focused:Ae,onFocus:Cn,onBlur:Gi,onKeyDown:bo,onSubmit:kt,value:Ro,maskFormat:l,onChange:Hr,onInputChange:_n,format:a,inputReadOnly:U,disabled:C,open:Ke,onOpenChange:Ct,onClick:Ie,onClear:Ue,invalid:Mt,onInvalid:zt,onActiveOffset:zl}))))}var kPe=I.forwardRef(NPe);function MPe(n){var e=n.prefixCls,t=n.value,i=n.onRemove,r=n.removeIcon,o=r===void 0?"×":r,s=n.formatDate,a=n.disabled,l=n.maxTagCount,u="".concat(e,"-selector"),c="".concat(e,"-selection"),d="".concat(c,"-overflow");function h(f,b){return I.createElement("span",{className:Me("".concat(c,"-item")),title:typeof f=="string"?f:null},I.createElement("span",{className:"".concat(c,"-item-content")},f),!a&&b&&I.createElement("span",{onMouseDown:function(v){v.preventDefault()},onClick:b,className:"".concat(c,"-item-remove")},o))}function g(f){var b=s(f),C=function(w){w&&w.stopPropagation(),i(f)};return h(b,C)}function m(f){var b="+ ".concat(f.length," ...");return h(b)}return I.createElement("div",{className:u},I.createElement(Qd,{prefixCls:d,data:t,renderItem:g,renderRest:m,itemKey:function(b){return s(b)},maxCount:l}))}var ZPe=["id","open","clearIcon","suffixIcon","activeHelp","allHelp","focused","onFocus","onBlur","onKeyDown","locale","generateConfig","placeholder","className","style","onClick","onClear","internalPicker","value","onChange","onSubmit","onInputChange","multiple","maxTagCount","format","maskFormat","preserveInvalidOnBlur","onInvalid","disabled","invalid","inputReadOnly","direction","onOpenChange","onMouseDown","required","aria-required","autoFocus","removeIcon"];function TPe(n,e){n.id;var t=n.open,i=n.clearIcon,r=n.suffixIcon;n.activeHelp,n.allHelp;var o=n.focused;n.onFocus,n.onBlur,n.onKeyDown;var s=n.locale,a=n.generateConfig;n.placeholder;var l=n.className,u=n.style,c=n.onClick,d=n.onClear,h=n.internalPicker,g=n.value,m=n.onChange,f=n.onSubmit;n.onInputChange;var b=n.multiple,C=n.maxTagCount;n.format,n.maskFormat,n.preserveInvalidOnBlur,n.onInvalid;var v=n.disabled,w=n.invalid;n.inputReadOnly;var S=n.direction;n.onOpenChange;var F=n.onMouseDown;n.required,n["aria-required"];var L=n.autoFocus,D=n.removeIcon,A=zn(n,ZPe),M=S==="rtl",W=I.useContext(qd),Z=W.prefixCls,T=I.useRef(),E=I.useRef();I.useImperativeHandle(e,function(){return{nativeElement:T.current,focus:function(ee){var oe;(oe=E.current)===null||oe===void 0||oe.focus(ee)},blur:function(){var ee;(ee=E.current)===null||ee===void 0||ee.blur()}}});var V=uae(A),z=function(ee){m([ee])},O=function(ee){var oe=g.filter(function(se){return se&&!vl(a,s,se,ee,h)});m(oe),t||f()},P=lae(Se(Se({},n),{},{onChange:z}),function(R){var ee=R.valueTexts;return{value:ee[0]||"",active:o}}),B=we(P,2),Y=B[0],k=B[1],X=!!(i&&g.length&&!v),U=b?I.createElement(I.Fragment,null,I.createElement(MPe,{prefixCls:Z,value:g,onRemove:O,formatDate:k,maxTagCount:C,disabled:v,removeIcon:D}),I.createElement("input",{className:"".concat(Z,"-multiple-input"),value:g.map(k).join(","),ref:E,readOnly:!0,autoFocus:L}),I.createElement(XM,{type:"suffix",icon:r}),X&&I.createElement(FP,{icon:i,onClear:d})):I.createElement(DP,pt({ref:E},Y(),{autoFocus:L,suffixIcon:r,clearIcon:X&&I.createElement(FP,{icon:i,onClear:d}),showActiveCls:!1}));return I.createElement("div",pt({},V,{className:Me(Z,me(me(me(me(me({},"".concat(Z,"-multiple"),b),"".concat(Z,"-focused"),o),"".concat(Z,"-disabled"),v),"".concat(Z,"-invalid"),w),"".concat(Z,"-rtl"),M),l),style:u,ref:T,onClick:c,onMouseDown:function(ee){var oe,se=ee.target;se!==((oe=E.current)===null||oe===void 0?void 0:oe.inputElement)&&ee.preventDefault(),F==null||F(ee)}}),U)}var EPe=I.forwardRef(TPe);function WPe(n,e){var t=Hse(n),i=we(t,6),r=i[0],o=i[1],s=i[2],a=i[3],l=i[4],u=i[5],c=r,d=c.prefixCls,h=c.styles,g=c.classNames,m=c.order,f=c.defaultValue,b=c.value,C=c.needConfirm,v=c.onChange,w=c.onKeyDown,S=c.disabled,F=c.disabledDate,L=c.minDate,D=c.maxDate,A=c.defaultOpen,M=c.open,W=c.onOpenChange,Z=c.locale,T=c.generateConfig,E=c.picker,V=c.showNow,z=c.showToday,O=c.showTime,P=c.mode,B=c.onPanelChange,Y=c.onCalendarChange,k=c.onOk,X=c.multiple,U=c.defaultPickerValue,R=c.pickerValue,ee=c.onPickerValueChange,oe=c.inputReadOnly,se=c.suffixIcon,ue=c.removeIcon,ce=c.onFocus,ye=c.onBlur,fe=c.presets,le=c.components,Ze=c.cellRender,ke=c.dateRender,Ne=c.monthCellRender,ze=c.onClick,Ke=Jse(e);function ut(_n){return _n===null?null:X?_n:_n[0]}var Ct=rae(T,Z,o),ot=Use(M,A,[S],W),he=we(ot,2),de=he[0],ge=he[1],j=function(Cn,Gi,bo){if(Y){var rs=Se({},bo);delete rs.range,Y(ut(Cn),ut(Gi),rs)}},Q=function(Cn){k==null||k(ut(Cn))},q=tae(T,Z,a,!1,m,f,b,j,Q),te=we(q,5),Ce=te[0],Le=te[1],Ae=te[2],Oe=te[3],tt=te[4],We=Ae(),ht=jse([S]),He=we(ht,4),Re=He[0],dt=He[1],yt=He[2],Kt=He[3],Wt=function(Cn){dt(!0),ce==null||ce(Cn,{})},Ut=function(Cn){dt(!1),ye==null||ye(Cn,{})},Nn=Ur(E,{value:P}),di=we(Nn,2),pe=di[0],xe=di[1],_e=pe==="date"&&O?"datetime":pe,Pe=iae(E,pe,V,z),qe=v&&function(_n,Cn){v(ut(_n),ut(Cn))},nt=nae(Se(Se({},r),{},{onChange:qe}),Ce,Le,Ae,Oe,[],a,Re,de,u),wt=we(nt,2),St=wt[1],et=Wse(We,u),xt=we(et,2),Zt=xt[0],Mt=xt[1],zt=I.useMemo(function(){return Zt.some(function(_n){return _n})},[Zt]),jt=function(Cn,Gi){if(ee){var bo=Se(Se({},Gi),{},{mode:Gi.mode[0]});delete bo.range,ee(Cn[0],bo)}},ri=Qse(T,Z,We,[pe],de,Kt,o,!1,U,R,H1(O==null?void 0:O.defaultOpenValue),jt,L,D),Bn=we(ri,2),Mn=Bn[0],Yt=Bn[1],bn=Ki(function(_n,Cn,Gi){if(xe(Cn),B&&Gi!==!1){var bo=_n||We[We.length-1];B(bo,Cn)}}),kt=function(){St(Ae()),ge(!1,{force:!0})},Ie=function(Cn){!S&&!Ke.current.nativeElement.contains(document.activeElement)&&Ke.current.focus(),ge(!0),ze==null||ze(Cn)},Ue=function(){St(null),ge(!1,{force:!0})},gt=I.useState(null),nn=we(gt,2),Kn=nn[0],Zn=nn[1],an=I.useState(null),Wn=we(an,2),wn=Wn[0],pr=Wn[1],Ro=I.useMemo(function(){var _n=[wn].concat(_t(We)).filter(function(Cn){return Cn});return X?_n:_n.slice(0,1)},[We,wn,X]),ka=I.useMemo(function(){return!X&&wn?[wn]:We.filter(function(_n){return _n})},[We,wn,X]);I.useEffect(function(){de||pr(null)},[de]);var Zs=Kse(fe),bu=function(Cn){pr(Cn),Zn("preset")},zl=function(Cn){var Gi=X?Ct(Ae(),Cn):[Cn],bo=St(Gi);bo&&!X&&ge(!1,{force:!0})},Jo=function(Cn){zl(Cn)},zr=function(Cn){pr(Cn),Zn("cell")},Cu=function(Cn){ge(!0),Wt(Cn)},Ko=function(Cn){yt("panel");var Gi=X?Ct(Ae(),Cn):[Cn];Oe(Gi),!C&&!s&&o===_e&&kt()},Ma=function(){ge(!1)},gl=bP(Ze,ke,Ne),Ui=I.useMemo(function(){var _n=xu(r,!1),Cn=ra(r,[].concat(_t(Object.keys(_n)),["onChange","onCalendarChange","style","className","onPanelChange"]));return Se(Se({},Cn),{},{multiple:r.multiple})},[r]),gi=I.createElement(aae,pt({},Ui,{showNow:Pe,showTime:O,disabledDate:F,onFocus:Cu,onBlur:Ut,picker:E,mode:pe,internalMode:_e,onPanelChange:bn,format:l,value:We,isInvalid:u,onChange:null,onSelect:Ko,pickerValue:Mn,defaultOpenValue:O==null?void 0:O.defaultOpenValue,onPickerValueChange:Yt,hoverValue:Ro,onHover:zr,needConfirm:C,onSubmit:kt,onOk:tt,presets:Zs,onPresetHover:bu,onPresetSubmit:zl,onNow:Jo,cellRender:gl})),rn=function(Cn){Oe(Cn)},mn=function(){yt("input")},Di=function(Cn){yt("input"),ge(!0,{inherit:!0}),Wt(Cn)},Yr=function(Cn){ge(!1),Ut(Cn)},ar=function(Cn,Gi){Cn.key==="Tab"&&kt(),w==null||w(Cn,Gi)},Hr=I.useMemo(function(){return{prefixCls:d,locale:Z,generateConfig:T,button:le.button,input:le.input}},[d,Z,T,le.button,le.input]);return lr(function(){de&&Kt!==void 0&&bn(null,E,!1)},[de,Kt,E]),lr(function(){var _n=yt();!de&&_n==="input"&&(ge(!1),kt()),!de&&s&&!C&&_n==="panel"&&(ge(!0),kt())},[de]),I.createElement(qd.Provider,{value:Hr},I.createElement(Zse,pt({},Ese(r),{popupElement:gi,popupStyle:h.popup,popupClassName:g.popup,visible:de,onClose:Ma}),I.createElement(EPe,pt({},r,{ref:Ke,suffixIcon:se,removeIcon:ue,activeHelp:!!wn,allHelp:!!wn&&Kn==="preset",focused:Re,onFocus:Di,onBlur:Yr,onKeyDown:ar,onSubmit:kt,value:ka,maskFormat:l,onChange:rn,onInputChange:mn,internalPicker:o,format:a,inputReadOnly:oe,disabled:S,open:de,onOpenChange:ge,onClick:Ie,onClear:Ue,invalid:zt,onInvalid:function(Cn){Mt(Cn,0)}}))))}var RPe=I.forwardRef(WPe);const hae=I.createContext(null),GPe=hae.Provider,gae=I.createContext(null),VPe=gae.Provider;var XPe=["prefixCls","className","style","checked","disabled","defaultChecked","type","title","onChange"],PPe=I.forwardRef(function(n,e){var t=n.prefixCls,i=t===void 0?"rc-checkbox":t,r=n.className,o=n.style,s=n.checked,a=n.disabled,l=n.defaultChecked,u=l===void 0?!1:l,c=n.type,d=c===void 0?"checkbox":c,h=n.title,g=n.onChange,m=zn(n,XPe),f=I.useRef(null),b=Ur(u,{value:s}),C=we(b,2),v=C[0],w=C[1];I.useImperativeHandle(e,function(){return{focus:function(D){var A;(A=f.current)===null||A===void 0||A.focus(D)},blur:function(){var D;(D=f.current)===null||D===void 0||D.blur()},input:f.current}});var S=Me(i,r,me(me({},"".concat(i,"-checked"),v),"".concat(i,"-disabled"),a)),F=function(D){a||("checked"in n||w(D.target.checked),g==null||g({target:Se(Se({},n),{},{type:d,checked:D.target.checked}),stopPropagation:function(){D.stopPropagation()},preventDefault:function(){D.preventDefault()},nativeEvent:D.nativeEvent}))};return I.createElement("span",{className:S,title:h,style:o},I.createElement("input",pt({},m,{className:"".concat(i,"-input"),ref:f,onChange:F,disabled:a,checked:!!v,type:d})),I.createElement("span",{className:"".concat(i,"-inner")}))});const OPe=n=>{const{componentCls:e,antCls:t}=n,i=`${e}-group`;return{[i]:Object.assign(Object.assign({},oo(n)),{display:"inline-block",fontSize:0,[`&${i}-rtl`]:{direction:"rtl"},[`${t}-badge ${t}-badge-count`]:{zIndex:1},[`> ${t}-badge:not(:first-child) > ${t}-button-wrapper`]:{borderInlineStart:"none"}})}},BPe=n=>{const{componentCls:e,wrapperMarginInlineEnd:t,colorPrimary:i,radioSize:r,motionDurationSlow:o,motionDurationMid:s,motionEaseInOutCirc:a,colorBgContainer:l,colorBorder:u,lineWidth:c,colorBgContainerDisabled:d,colorTextDisabled:h,paddingXS:g,dotColorDisabled:m,lineType:f,radioColor:b,radioBgColor:C,calc:v}=n,w=`${e}-inner`,F=v(r).sub(v(4).mul(2)),L=v(1).mul(r).equal();return{[`${e}-wrapper`]:Object.assign(Object.assign({},oo(n)),{display:"inline-flex",alignItems:"baseline",marginInlineStart:0,marginInlineEnd:t,cursor:"pointer",[`&${e}-wrapper-rtl`]:{direction:"rtl"},"&-disabled":{cursor:"not-allowed",color:n.colorTextDisabled},"&::after":{display:"inline-block",width:0,overflow:"hidden",content:'"\\a0"'},[`${e}-checked::after`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,width:"100%",height:"100%",border:`${Te(c)} ${f} ${i}`,borderRadius:"50%",visibility:"hidden",opacity:0,content:'""'},[e]:Object.assign(Object.assign({},oo(n)),{position:"relative",display:"inline-block",outline:"none",cursor:"pointer",alignSelf:"center",borderRadius:"50%"}),[`${e}-wrapper:hover &, + &:hover ${w}`]:{borderColor:i},[`${e}-input:focus-visible + ${w}`]:Object.assign({},Gk(n)),[`${e}:hover::after, ${e}-wrapper:hover &::after`]:{visibility:"visible"},[`${e}-inner`]:{"&::after":{boxSizing:"border-box",position:"absolute",insetBlockStart:"50%",insetInlineStart:"50%",display:"block",width:L,height:L,marginBlockStart:v(1).mul(r).div(-2).equal(),marginInlineStart:v(1).mul(r).div(-2).equal(),backgroundColor:b,borderBlockStart:0,borderInlineStart:0,borderRadius:L,transform:"scale(0)",opacity:0,transition:`all ${o} ${a}`,content:'""'},boxSizing:"border-box",position:"relative",insetBlockStart:0,insetInlineStart:0,display:"block",width:L,height:L,backgroundColor:l,borderColor:u,borderStyle:"solid",borderWidth:c,borderRadius:"50%",transition:`all ${s}`},[`${e}-input`]:{position:"absolute",inset:0,zIndex:1,cursor:"pointer",opacity:0},[`${e}-checked`]:{[w]:{borderColor:i,backgroundColor:C,"&::after":{transform:`scale(${n.calc(n.dotSize).div(r).equal()})`,opacity:1,transition:`all ${o} ${a}`}}},[`${e}-disabled`]:{cursor:"not-allowed",[w]:{backgroundColor:d,borderColor:u,cursor:"not-allowed","&::after":{backgroundColor:m}},[`${e}-input`]:{cursor:"not-allowed"},[`${e}-disabled + span`]:{color:h,cursor:"not-allowed"},[`&${e}-checked`]:{[w]:{"&::after":{transform:`scale(${v(F).div(r).equal({unit:!1})})`}}}},[`span${e} + *`]:{paddingInlineStart:g,paddingInlineEnd:g}})}},zPe=n=>{const{buttonColor:e,controlHeight:t,componentCls:i,lineWidth:r,lineType:o,colorBorder:s,motionDurationSlow:a,motionDurationMid:l,buttonPaddingInline:u,fontSize:c,buttonBg:d,fontSizeLG:h,controlHeightLG:g,controlHeightSM:m,paddingXS:f,borderRadius:b,borderRadiusSM:C,borderRadiusLG:v,buttonCheckedBg:w,buttonSolidCheckedColor:S,colorTextDisabled:F,colorBgContainerDisabled:L,buttonCheckedBgDisabled:D,buttonCheckedColorDisabled:A,colorPrimary:M,colorPrimaryHover:W,colorPrimaryActive:Z,buttonSolidCheckedBg:T,buttonSolidCheckedHoverBg:E,buttonSolidCheckedActiveBg:V,calc:z}=n;return{[`${i}-button-wrapper`]:{position:"relative",display:"inline-block",height:t,margin:0,paddingInline:u,paddingBlock:0,color:e,fontSize:c,lineHeight:Te(z(t).sub(z(r).mul(2)).equal()),background:d,border:`${Te(r)} ${o} ${s}`,borderBlockStartWidth:z(r).add(.02).equal(),borderInlineStartWidth:0,borderInlineEndWidth:r,cursor:"pointer",transition:[`color ${l}`,`background ${l}`,`box-shadow ${l}`].join(","),a:{color:e},[`> ${i}-button`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,zIndex:-1,width:"100%",height:"100%"},"&:not(:first-child)":{"&::before":{position:"absolute",insetBlockStart:z(r).mul(-1).equal(),insetInlineStart:z(r).mul(-1).equal(),display:"block",boxSizing:"content-box",width:1,height:"100%",paddingBlock:r,paddingInline:0,backgroundColor:s,transition:`background-color ${a}`,content:'""'}},"&:first-child":{borderInlineStart:`${Te(r)} ${o} ${s}`,borderStartStartRadius:b,borderEndStartRadius:b},"&:last-child":{borderStartEndRadius:b,borderEndEndRadius:b},"&:first-child:last-child":{borderRadius:b},[`${i}-group-large &`]:{height:g,fontSize:h,lineHeight:Te(z(g).sub(z(r).mul(2)).equal()),"&:first-child":{borderStartStartRadius:v,borderEndStartRadius:v},"&:last-child":{borderStartEndRadius:v,borderEndEndRadius:v}},[`${i}-group-small &`]:{height:m,paddingInline:z(f).sub(r).equal(),paddingBlock:0,lineHeight:Te(z(m).sub(z(r).mul(2)).equal()),"&:first-child":{borderStartStartRadius:C,borderEndStartRadius:C},"&:last-child":{borderStartEndRadius:C,borderEndEndRadius:C}},"&:hover":{position:"relative",color:M},"&:has(:focus-visible)":Object.assign({},Gk(n)),[`${i}-inner, input[type='checkbox'], input[type='radio']`]:{width:0,height:0,opacity:0,pointerEvents:"none"},[`&-checked:not(${i}-button-wrapper-disabled)`]:{zIndex:1,color:M,background:w,borderColor:M,"&::before":{backgroundColor:M},"&:first-child":{borderColor:M},"&:hover":{color:W,borderColor:W,"&::before":{backgroundColor:W}},"&:active":{color:Z,borderColor:Z,"&::before":{backgroundColor:Z}}},[`${i}-group-solid &-checked:not(${i}-button-wrapper-disabled)`]:{color:S,background:T,borderColor:T,"&:hover":{color:S,background:E,borderColor:E},"&:active":{color:S,background:V,borderColor:V}},"&-disabled":{color:F,backgroundColor:L,borderColor:s,cursor:"not-allowed","&:first-child, &:hover":{color:F,backgroundColor:L,borderColor:s}},[`&-disabled${i}-button-wrapper-checked`]:{color:A,backgroundColor:D,borderColor:s,boxShadow:"none"}}}},mae=Oo("Radio",n=>{const{controlOutline:e,controlOutlineWidth:t}=n,i=`0 0 0 ${Te(t)} ${e}`,o=Bi(n,{radioFocusShadow:i,radioButtonFocusShadow:i});return[OPe(o),BPe(o),zPe(o)]},n=>{const{wireframe:e,padding:t,marginXS:i,lineWidth:r,fontSizeLG:o,colorText:s,colorBgContainer:a,colorTextDisabled:l,controlItemBgActiveDisabled:u,colorTextLightSolid:c,colorPrimary:d,colorPrimaryHover:h,colorPrimaryActive:g,colorWhite:m}=n,f=4,b=o,C=e?b-f*2:b-(f+r)*2;return{radioSize:b,dotSize:C,dotColorDisabled:l,buttonSolidCheckedColor:c,buttonSolidCheckedBg:d,buttonSolidCheckedHoverBg:h,buttonSolidCheckedActiveBg:g,buttonBg:a,buttonCheckedBg:a,buttonColor:s,buttonCheckedBgDisabled:u,buttonCheckedColorDisabled:l,buttonPaddingInline:t-r,wrapperMarginInlineEnd:i,radioColor:e?d:m,radioBgColor:e?a:d}},{unitless:{radioSize:!0,dotSize:!0}});var YPe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{var t,i;const r=I.useContext(hae),o=I.useContext(gae),{getPrefixCls:s,direction:a,radio:l}=I.useContext(Tn),u=I.useRef(null),c=Su(e,u),{isFormItemInput:d}=I.useContext(Xa),h=V=>{var z,O;(z=n.onChange)===null||z===void 0||z.call(n,V),(O=r==null?void 0:r.onChange)===null||O===void 0||O.call(r,V)},{prefixCls:g,className:m,rootClassName:f,children:b,style:C,title:v}=n,w=YPe(n,["prefixCls","className","rootClassName","children","style","title"]),S=s("radio",g),F=((r==null?void 0:r.optionType)||o)==="button",L=F?`${S}-button`:S,D=ys(S),[A,M,W]=mae(S,D),Z=Object.assign({},w),T=I.useContext(Kd);r&&(Z.name=r.name,Z.onChange=h,Z.checked=n.value===r.value,Z.disabled=(t=Z.disabled)!==null&&t!==void 0?t:r.disabled),Z.disabled=(i=Z.disabled)!==null&&i!==void 0?i:T;const E=Me(`${L}-wrapper`,{[`${L}-wrapper-checked`]:Z.checked,[`${L}-wrapper-disabled`]:Z.disabled,[`${L}-wrapper-rtl`]:a==="rtl",[`${L}-wrapper-in-form-item`]:d},l==null?void 0:l.className,m,f,M,W,D);return A(I.createElement(gie,{component:"Radio",disabled:Z.disabled},I.createElement("label",{className:E,style:Object.assign(Object.assign({},l==null?void 0:l.style),C),onMouseEnter:n.onMouseEnter,onMouseLeave:n.onMouseLeave,title:v},I.createElement(PPe,Object.assign({},Z,{className:Me(Z.className,!F&&o4),type:"radio",prefixCls:L,ref:c})),b!==void 0?I.createElement("span",null,b):null)))},OM=I.forwardRef(HPe),UPe=I.forwardRef((n,e)=>{const{getPrefixCls:t,direction:i}=I.useContext(Tn),[r,o]=Ur(n.defaultValue,{value:n.value}),s=V=>{const z=r,O=V.target.value;"value"in n||o(O);const{onChange:P}=n;P&&O!==z&&P(V)},{prefixCls:a,className:l,rootClassName:u,options:c,buttonStyle:d="outline",disabled:h,children:g,size:m,style:f,id:b,onMouseEnter:C,onMouseLeave:v,onFocus:w,onBlur:S}=n,F=t("radio",a),L=`${F}-group`,D=ys(F),[A,M,W]=mae(F,D);let Z=g;c&&c.length>0&&(Z=c.map(V=>typeof V=="string"||typeof V=="number"?I.createElement(OM,{key:V.toString(),prefixCls:F,disabled:h,value:V,checked:r===V},V):I.createElement(OM,{key:`radio-group-value-options-${V.value}`,prefixCls:F,disabled:V.disabled||h,value:V.value,checked:r===V.value,title:V.title,style:V.style,id:V.id,required:V.required},V.label)));const T=cc(m),E=Me(L,`${L}-${d}`,{[`${L}-${T}`]:T,[`${L}-rtl`]:i==="rtl"},l,u,M,W,D);return A(I.createElement("div",Object.assign({},xu(n,{aria:!0,data:!0}),{className:E,style:f,onMouseEnter:C,onMouseLeave:v,onFocus:w,onBlur:S,id:b,ref:e}),I.createElement(GPe,{value:{onChange:s,value:r,disabled:n.disabled,name:n.name,optionType:n.optionType}},Z)))}),JPe=I.memo(UPe);var KPe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{const{getPrefixCls:t}=I.useContext(Tn),{prefixCls:i}=n,r=KPe(n,["prefixCls"]),o=t("radio",i);return I.createElement(VPe,{value:"button"},I.createElement(OM,Object.assign({prefixCls:o},r,{type:"radio",ref:e})))},QPe=I.forwardRef(jPe),BM=OM;BM.Button=QPe,BM.Group=JPe,BM.__ANT_RADIO=!0;const K1=BM;function zM(n){return Bi(n,{inputAffixPadding:n.paddingXXS})}const YM=n=>{const{controlHeight:e,fontSize:t,lineHeight:i,lineWidth:r,controlHeightSM:o,controlHeightLG:s,fontSizeLG:a,lineHeightLG:l,paddingSM:u,controlPaddingHorizontalSM:c,controlPaddingHorizontal:d,colorFillAlter:h,colorPrimaryHover:g,colorPrimary:m,controlOutlineWidth:f,controlOutline:b,colorErrorOutline:C,colorWarningOutline:v,colorBgContainer:w}=n;return{paddingBlock:Math.max(Math.round((e-t*i)/2*10)/10-r,0),paddingBlockSM:Math.max(Math.round((o-t*i)/2*10)/10-r,0),paddingBlockLG:Math.ceil((s-a*l)/2*10)/10-r,paddingInline:u-r,paddingInlineSM:c-r,paddingInlineLG:d-r,addonBg:h,activeBorderColor:m,hoverBorderColor:g,activeShadow:`0 0 0 ${f}px ${b}`,errorActiveShadow:`0 0 0 ${f}px ${C}`,warningActiveShadow:`0 0 0 ${f}px ${v}`,hoverBg:w,activeBg:w,inputFontSize:t,inputFontSizeLG:a,inputFontSizeSM:t}},$Pe=n=>({borderColor:n.hoverBorderColor,backgroundColor:n.hoverBg}),AP=n=>({color:n.colorTextDisabled,backgroundColor:n.colorBgContainerDisabled,borderColor:n.colorBorder,boxShadow:"none",cursor:"not-allowed",opacity:1,"input[disabled]":{cursor:"not-allowed"},"&:hover:not([disabled])":Object.assign({},$Pe(Bi(n,{hoverBorderColor:n.colorBorder,hoverBg:n.colorBgContainerDisabled})))}),fae=(n,e)=>({background:n.colorBgContainer,borderWidth:n.lineWidth,borderStyle:n.lineType,borderColor:e.borderColor,"&:hover":{borderColor:e.hoverBorderColor,backgroundColor:n.hoverBg},"&:focus, &:focus-within":{borderColor:e.activeBorderColor,boxShadow:e.activeShadow,outline:0,backgroundColor:n.activeBg}}),pae=(n,e)=>({[`&${n.componentCls}-status-${e.status}:not(${n.componentCls}-disabled)`]:Object.assign(Object.assign({},fae(n,e)),{[`${n.componentCls}-prefix, ${n.componentCls}-suffix`]:{color:e.affixColor}})}),NP=(n,e)=>({"&-outlined":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},fae(n,{borderColor:n.colorBorder,hoverBorderColor:n.hoverBorderColor,activeBorderColor:n.activeBorderColor,activeShadow:n.activeShadow})),{[`&${n.componentCls}-disabled, &[disabled]`]:Object.assign({},AP(n))}),pae(n,{status:"error",borderColor:n.colorError,hoverBorderColor:n.colorErrorBorderHover,activeBorderColor:n.colorError,activeShadow:n.errorActiveShadow,affixColor:n.colorError})),pae(n,{status:"warning",borderColor:n.colorWarning,hoverBorderColor:n.colorWarningBorderHover,activeBorderColor:n.colorWarning,activeShadow:n.warningActiveShadow,affixColor:n.colorWarning})),e)}),bae=(n,e)=>({[`&${n.componentCls}-group-wrapper-status-${e.status}`]:{[`${n.componentCls}-group-addon`]:{borderColor:e.addonBorderColor,color:e.addonColor}}}),Cae=n=>({"&-outlined":Object.assign(Object.assign(Object.assign({[`${n.componentCls}-group`]:{"&-addon":{background:n.addonBg,border:`${Te(n.lineWidth)} ${n.lineType} ${n.colorBorder}`},"&-addon:first-child":{borderInlineEnd:0},"&-addon:last-child":{borderInlineStart:0}}},bae(n,{status:"error",addonBorderColor:n.colorError,addonColor:n.colorErrorText})),bae(n,{status:"warning",addonBorderColor:n.colorWarning,addonColor:n.colorWarningText})),{[`&${n.componentCls}-group-wrapper-disabled`]:{[`${n.componentCls}-group-addon`]:Object.assign({},AP(n))}})}),kP=(n,e)=>({"&-borderless":Object.assign({background:"transparent",border:"none","&:focus, &:focus-within":{outline:"none"},[`&${n.componentCls}-disabled, &[disabled]`]:{color:n.colorTextDisabled}},e)}),vae=(n,e)=>({background:e.bg,borderWidth:n.lineWidth,borderStyle:n.lineType,borderColor:"transparent","input&, & input, textarea&, & textarea":{color:e==null?void 0:e.inputColor},"&:hover":{background:e.hoverBg},"&:focus, &:focus-within":{outline:0,borderColor:e.activeBorderColor,backgroundColor:n.activeBg}}),yae=(n,e)=>({[`&${n.componentCls}-status-${e.status}:not(${n.componentCls}-disabled)`]:Object.assign(Object.assign({},vae(n,e)),{[`${n.componentCls}-prefix, ${n.componentCls}-suffix`]:{color:e.affixColor}})}),MP=(n,e)=>({"&-filled":Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},vae(n,{bg:n.colorFillTertiary,hoverBg:n.colorFillSecondary,activeBorderColor:n.colorPrimary})),{[`&${n.componentCls}-disabled, &[disabled]`]:Object.assign({},AP(n))}),yae(n,{status:"error",bg:n.colorErrorBg,hoverBg:n.colorErrorBgHover,activeBorderColor:n.colorError,inputColor:n.colorErrorText,affixColor:n.colorError})),yae(n,{status:"warning",bg:n.colorWarningBg,hoverBg:n.colorWarningBgHover,activeBorderColor:n.colorWarning,inputColor:n.colorWarningText,affixColor:n.colorWarning})),e)}),Iae=(n,e)=>({[`&${n.componentCls}-group-wrapper-status-${e.status}`]:{[`${n.componentCls}-group-addon`]:{background:e.addonBg,color:e.addonColor}}}),wae=n=>({"&-filled":Object.assign(Object.assign(Object.assign({[`${n.componentCls}-group`]:{"&-addon":{background:n.colorFillTertiary},[`${n.componentCls}-filled:not(:focus):not(:focus-within)`]:{"&:not(:first-child)":{borderInlineStart:`${Te(n.lineWidth)} ${n.lineType} ${n.colorSplit}`},"&:not(:last-child)":{borderInlineEnd:`${Te(n.lineWidth)} ${n.lineType} ${n.colorSplit}`}}}},Iae(n,{status:"error",addonBg:n.colorErrorBg,addonColor:n.colorErrorText})),Iae(n,{status:"warning",addonBg:n.colorWarningBg,addonColor:n.colorWarningText})),{[`&${n.componentCls}-group-wrapper-disabled`]:{[`${n.componentCls}-group`]:{"&-addon":{background:n.colorFillTertiary,color:n.colorTextDisabled},"&-addon:first-child":{borderInlineStart:`${Te(n.lineWidth)} ${n.lineType} ${n.colorBorder}`,borderTop:`${Te(n.lineWidth)} ${n.lineType} ${n.colorBorder}`,borderBottom:`${Te(n.lineWidth)} ${n.lineType} ${n.colorBorder}`},"&-addon:last-child":{borderInlineEnd:`${Te(n.lineWidth)} ${n.lineType} ${n.colorBorder}`,borderTop:`${Te(n.lineWidth)} ${n.lineType} ${n.colorBorder}`,borderBottom:`${Te(n.lineWidth)} ${n.lineType} ${n.colorBorder}`}}}})}),ZP=n=>({"&::-moz-placeholder":{opacity:1},"&::placeholder":{color:n,userSelect:"none"},"&:placeholder-shown":{textOverflow:"ellipsis"}}),Sae=n=>{const{paddingBlockLG:e,lineHeightLG:t,borderRadiusLG:i,paddingInlineLG:r}=n;return{padding:`${Te(e)} ${Te(r)}`,fontSize:n.inputFontSizeLG,lineHeight:t,borderRadius:i}},xae=n=>({padding:`${Te(n.paddingBlockSM)} ${Te(n.paddingInlineSM)}`,fontSize:n.inputFontSizeSM,borderRadius:n.borderRadiusSM}),HM=n=>Object.assign(Object.assign({position:"relative",display:"inline-block",width:"100%",minWidth:0,padding:`${Te(n.paddingBlock)} ${Te(n.paddingInline)}`,color:n.colorText,fontSize:n.inputFontSize,lineHeight:n.lineHeight,borderRadius:n.borderRadius,transition:`all ${n.motionDurationMid}`},ZP(n.colorTextPlaceholder)),{"textarea&":{maxWidth:"100%",height:"auto",minHeight:n.controlHeight,lineHeight:n.lineHeight,verticalAlign:"bottom",transition:`all ${n.motionDurationSlow}, height 0s`,resize:"vertical"},"&-lg":Object.assign({},Sae(n)),"&-sm":Object.assign({},xae(n)),"&-rtl":{direction:"rtl"},"&-textarea-rtl":{direction:"rtl"}}),Lae=n=>{const{componentCls:e,antCls:t}=n;return{position:"relative",display:"table",width:"100%",borderCollapse:"separate",borderSpacing:0,"&[class*='col-']":{paddingInlineEnd:n.paddingXS,"&:last-child":{paddingInlineEnd:0}},[`&-lg ${e}, &-lg > ${e}-group-addon`]:Object.assign({},Sae(n)),[`&-sm ${e}, &-sm > ${e}-group-addon`]:Object.assign({},xae(n)),[`&-lg ${t}-select-single ${t}-select-selector`]:{height:n.controlHeightLG},[`&-sm ${t}-select-single ${t}-select-selector`]:{height:n.controlHeightSM},[`> ${e}`]:{display:"table-cell","&:not(:first-child):not(:last-child)":{borderRadius:0}},[`${e}-group`]:{"&-addon, &-wrap":{display:"table-cell",width:1,whiteSpace:"nowrap",verticalAlign:"middle","&:not(:first-child):not(:last-child)":{borderRadius:0}},"&-wrap > *":{display:"block !important"},"&-addon":{position:"relative",padding:`0 ${Te(n.paddingInline)}`,color:n.colorText,fontWeight:"normal",fontSize:n.inputFontSize,textAlign:"center",borderRadius:n.borderRadius,transition:`all ${n.motionDurationSlow}`,lineHeight:1,[`${t}-select`]:{margin:`${Te(n.calc(n.paddingBlock).add(1).mul(-1).equal())} ${Te(n.calc(n.paddingInline).mul(-1).equal())}`,[`&${t}-select-single:not(${t}-select-customize-input):not(${t}-pagination-size-changer)`]:{[`${t}-select-selector`]:{backgroundColor:"inherit",border:`${Te(n.lineWidth)} ${n.lineType} transparent`,boxShadow:"none"}},"&-open, &-focused":{[`${t}-select-selector`]:{color:n.colorPrimary}}},[`${t}-cascader-picker`]:{margin:`-9px ${Te(n.calc(n.paddingInline).mul(-1).equal())}`,backgroundColor:"transparent",[`${t}-cascader-input`]:{textAlign:"start",border:0,boxShadow:"none"}}}},[`${e}`]:{width:"100%",marginBottom:0,textAlign:"inherit","&:focus":{zIndex:1,borderInlineEndWidth:1},"&:hover":{zIndex:1,borderInlineEndWidth:1,[`${e}-search-with-button &`]:{zIndex:0}}},[`> ${e}:first-child, ${e}-group-addon:first-child`]:{borderStartEndRadius:0,borderEndEndRadius:0,[`${t}-select ${t}-select-selector`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${e}-affix-wrapper`]:{[`&:not(:first-child) ${e}`]:{borderStartStartRadius:0,borderEndStartRadius:0},[`&:not(:last-child) ${e}`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`> ${e}:last-child, ${e}-group-addon:last-child`]:{borderStartStartRadius:0,borderEndStartRadius:0,[`${t}-select ${t}-select-selector`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`${e}-affix-wrapper`]:{"&:not(:last-child)":{borderStartEndRadius:0,borderEndEndRadius:0,[`${e}-search &`]:{borderStartStartRadius:n.borderRadius,borderEndStartRadius:n.borderRadius}},[`&:not(:first-child), ${e}-search &:not(:first-child)`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&${e}-group-compact`]:Object.assign(Object.assign({display:"block"},ky()),{[`${e}-group-addon, ${e}-group-wrap, > ${e}`]:{"&:not(:first-child):not(:last-child)":{borderInlineEndWidth:n.lineWidth,"&:hover":{zIndex:1},"&:focus":{zIndex:1}}},"& > *":{display:"inline-block",float:"none",verticalAlign:"top",borderRadius:0},[` + & > ${e}-affix-wrapper, + & > ${e}-number-affix-wrapper, + & > ${t}-picker-range + `]:{display:"inline-flex"},"& > *:not(:last-child)":{marginInlineEnd:n.calc(n.lineWidth).mul(-1).equal(),borderInlineEndWidth:n.lineWidth},[`${e}`]:{float:"none"},[`& > ${t}-select > ${t}-select-selector, + & > ${t}-select-auto-complete ${e}, + & > ${t}-cascader-picker ${e}, + & > ${e}-group-wrapper ${e}`]:{borderInlineEndWidth:n.lineWidth,borderRadius:0,"&:hover":{zIndex:1},"&:focus":{zIndex:1}},[`& > ${t}-select-focused`]:{zIndex:1},[`& > ${t}-select > ${t}-select-arrow`]:{zIndex:1},[`& > *:first-child, + & > ${t}-select:first-child > ${t}-select-selector, + & > ${t}-select-auto-complete:first-child ${e}, + & > ${t}-cascader-picker:first-child ${e}`]:{borderStartStartRadius:n.borderRadius,borderEndStartRadius:n.borderRadius},[`& > *:last-child, + & > ${t}-select:last-child > ${t}-select-selector, + & > ${t}-cascader-picker:last-child ${e}, + & > ${t}-cascader-picker-focused:last-child ${e}`]:{borderInlineEndWidth:n.lineWidth,borderStartEndRadius:n.borderRadius,borderEndEndRadius:n.borderRadius},[`& > ${t}-select-auto-complete ${e}`]:{verticalAlign:"top"},[`${e}-group-wrapper + ${e}-group-wrapper`]:{marginInlineStart:n.calc(n.lineWidth).mul(-1).equal(),[`${e}-affix-wrapper`]:{borderRadius:0}},[`${e}-group-wrapper:not(:last-child)`]:{[`&${e}-search > ${e}-group`]:{[`& > ${e}-group-addon > ${e}-search-button`]:{borderRadius:0},[`& > ${e}`]:{borderStartStartRadius:n.borderRadius,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:n.borderRadius}}}})}},qPe=n=>{const{componentCls:e,controlHeightSM:t,lineWidth:i,calc:r}=n,s=r(t).sub(r(i).mul(2)).sub(16).div(2).equal();return{[e]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},oo(n)),HM(n)),NP(n)),MP(n)),kP(n)),{'&[type="color"]':{height:n.controlHeight,[`&${e}-lg`]:{height:n.controlHeightLG},[`&${e}-sm`]:{height:t,paddingTop:s,paddingBottom:s}},'&[type="search"]::-webkit-search-cancel-button, &[type="search"]::-webkit-search-decoration':{"-webkit-appearance":"none"}})}},eOe=n=>{const{componentCls:e}=n;return{[`${e}-clear-icon`]:{margin:0,color:n.colorTextQuaternary,fontSize:n.fontSizeIcon,verticalAlign:-1,cursor:"pointer",transition:`color ${n.motionDurationSlow}`,"&:hover":{color:n.colorTextTertiary},"&:active":{color:n.colorText},"&-hidden":{visibility:"hidden"},"&-has-suffix":{margin:`0 ${Te(n.inputAffixPadding)}`}}}},tOe=n=>{const{componentCls:e,inputAffixPadding:t,colorTextDescription:i,motionDurationSlow:r,colorIcon:o,colorIconHover:s,iconCls:a}=n;return{[`${e}-affix-wrapper`]:Object.assign(Object.assign(Object.assign(Object.assign({},HM(n)),{display:"inline-flex",[`&:not(${e}-disabled):hover`]:{zIndex:1,[`${e}-search-with-button &`]:{zIndex:0}},"&-focused, &:focus":{zIndex:1},[`> input${e}`]:{padding:0,fontSize:"inherit",border:"none",borderRadius:0,outline:"none",background:"transparent",color:"inherit","&::-ms-reveal":{display:"none"},"&:focus":{boxShadow:"none !important"}},"&::before":{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'},[`${e}`]:{"&-prefix, &-suffix":{display:"flex",flex:"none",alignItems:"center","> *:not(:last-child)":{marginInlineEnd:n.paddingXS}},"&-show-count-suffix":{color:i},"&-show-count-has-suffix":{marginInlineEnd:n.paddingXXS},"&-prefix":{marginInlineEnd:t},"&-suffix":{marginInlineStart:t}}}),eOe(n)),{[`${a}${e}-password-icon`]:{color:o,cursor:"pointer",transition:`all ${r}`,"&:hover":{color:s}}})}},nOe=n=>{const{componentCls:e,borderRadiusLG:t,borderRadiusSM:i}=n;return{[`${e}-group`]:Object.assign(Object.assign(Object.assign({},oo(n)),Lae(n)),{"&-rtl":{direction:"rtl"},"&-wrapper":Object.assign(Object.assign(Object.assign({display:"inline-block",width:"100%",textAlign:"start",verticalAlign:"top","&-rtl":{direction:"rtl"},"&-lg":{[`${e}-group-addon`]:{borderRadius:t,fontSize:n.inputFontSizeLG}},"&-sm":{[`${e}-group-addon`]:{borderRadius:i}}},Cae(n)),wae(n)),{[`&:not(${e}-compact-first-item):not(${e}-compact-last-item)${e}-compact-item`]:{[`${e}, ${e}-group-addon`]:{borderRadius:0}},[`&:not(${e}-compact-last-item)${e}-compact-first-item`]:{[`${e}, ${e}-group-addon`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${e}-compact-first-item)${e}-compact-last-item`]:{[`${e}, ${e}-group-addon`]:{borderStartStartRadius:0,borderEndStartRadius:0}},[`&:not(${e}-compact-last-item)${e}-compact-item`]:{[`${e}-affix-wrapper`]:{borderStartEndRadius:0,borderEndEndRadius:0}}})})}},iOe=n=>{const{componentCls:e,antCls:t}=n,i=`${e}-search`;return{[i]:{[`${e}`]:{"&:hover, &:focus":{borderColor:n.colorPrimaryHover,[`+ ${e}-group-addon ${i}-button:not(${t}-btn-primary)`]:{borderInlineStartColor:n.colorPrimaryHover}}},[`${e}-affix-wrapper`]:{borderRadius:0},[`${e}-lg`]:{lineHeight:n.calc(n.lineHeightLG).sub(2e-4).equal({unit:!1})},[`> ${e}-group`]:{[`> ${e}-group-addon:last-child`]:{insetInlineStart:-1,padding:0,border:0,[`${i}-button`]:{marginInlineEnd:-1,paddingTop:0,paddingBottom:0,borderStartStartRadius:0,borderStartEndRadius:n.borderRadius,borderEndEndRadius:n.borderRadius,borderEndStartRadius:0,boxShadow:"none"},[`${i}-button:not(${t}-btn-primary)`]:{color:n.colorTextDescription,"&:hover":{color:n.colorPrimaryHover},"&:active":{color:n.colorPrimaryActive},[`&${t}-btn-loading::before`]:{insetInlineStart:0,insetInlineEnd:0,insetBlockStart:0,insetBlockEnd:0}}}},[`${i}-button`]:{height:n.controlHeight,"&:hover, &:focus":{zIndex:1}},[`&-large ${i}-button`]:{height:n.controlHeightLG},[`&-small ${i}-button`]:{height:n.controlHeightSM},"&-rtl":{direction:"rtl"},[`&${e}-compact-item`]:{[`&:not(${e}-compact-last-item)`]:{[`${e}-group-addon`]:{[`${e}-search-button`]:{marginInlineEnd:n.calc(n.lineWidth).mul(-1).equal(),borderRadius:0}}},[`&:not(${e}-compact-first-item)`]:{[`${e},${e}-affix-wrapper`]:{borderRadius:0}},[`> ${e}-group-addon ${e}-search-button, + > ${e}, + ${e}-affix-wrapper`]:{"&:hover,&:focus,&:active":{zIndex:2}},[`> ${e}-affix-wrapper-focused`]:{zIndex:2}}}}},rOe=n=>{const{componentCls:e,paddingLG:t}=n,i=`${e}-textarea`;return{[i]:{position:"relative","&-show-count":{[`> ${e}`]:{height:"100%"},[`${e}-data-count`]:{position:"absolute",bottom:n.calc(n.fontSize).mul(n.lineHeight).mul(-1).equal(),insetInlineEnd:0,color:n.colorTextDescription,whiteSpace:"nowrap",pointerEvents:"none"}},"&-allow-clear":{[`> ${e}`]:{paddingInlineEnd:t}},[`&-affix-wrapper${i}-has-feedback`]:{[`${e}`]:{paddingInlineEnd:t}},[`&-affix-wrapper${e}-affix-wrapper`]:{padding:0,[`> textarea${e}`]:{fontSize:"inherit",border:"none",outline:"none",background:"transparent","&:focus":{boxShadow:"none !important"}},[`${e}-suffix`]:{margin:0,"> *:not(:last-child)":{marginInline:0},[`${e}-clear-icon`]:{position:"absolute",insetInlineEnd:n.paddingXS,insetBlockStart:n.paddingXS},[`${i}-suffix`]:{position:"absolute",top:0,insetInlineEnd:n.paddingInline,bottom:0,zIndex:1,display:"inline-flex",alignItems:"center",margin:"auto",pointerEvents:"none"}}}}}},oOe=n=>{const{componentCls:e}=n;return{[`${e}-out-of-range`]:{[`&, & input, & textarea, ${e}-show-count-suffix, ${e}-data-count`]:{color:n.colorError}}}},TP=Oo("Input",n=>{const e=Bi(n,zM(n));return[qPe(e),rOe(e),tOe(e),nOe(e),iOe(e),oOe(e),Dx(e)]},YM),EP=(n,e)=>{const{componentCls:t,controlHeight:i}=n,r=e?`${t}-${e}`:"",o=Noe(n);return[{[`${t}-multiple${r}`]:{paddingBlock:o.containerPadding,paddingInlineStart:o.basePadding,minHeight:i,[`${t}-selection-item`]:{height:o.itemHeight,lineHeight:Te(o.itemLineHeight)}}}]},sOe=n=>{const{componentCls:e,calc:t,lineWidth:i}=n,r=Bi(n,{fontHeight:n.fontSize,selectHeight:n.controlHeightSM,multipleSelectItemHeight:n.multipleItemHeightSM,borderRadius:n.borderRadiusSM,borderRadiusSM:n.borderRadiusXS,controlHeight:n.controlHeightSM}),o=Bi(n,{fontHeight:t(n.multipleItemHeightLG).sub(t(i).mul(2).equal()).equal(),fontSize:n.fontSizeLG,selectHeight:n.controlHeightLG,multipleSelectItemHeight:n.multipleItemHeightLG,borderRadius:n.borderRadiusLG,borderRadiusSM:n.borderRadius,controlHeight:n.controlHeightLG});return[EP(r,"small"),EP(n),EP(o,"large"),{[`${e}${e}-multiple`]:Object.assign(Object.assign({width:"100%",[`${e}-selector`]:{flex:"auto",padding:0,"&:after":{margin:0}}},koe(n)),{[`${e}-multiple-input`]:{width:0,height:0,border:0,visibility:"hidden",position:"absolute",zIndex:-1}})}]},aOe=n=>{const{pickerCellCls:e,pickerCellInnerCls:t,cellHeight:i,borderRadiusSM:r,motionDurationMid:o,cellHoverBg:s,lineWidth:a,lineType:l,colorPrimary:u,cellActiveWithRangeBg:c,colorTextLightSolid:d,colorTextDisabled:h,cellBgDisabled:g,colorFillSecondary:m}=n;return{"&::before":{position:"absolute",top:"50%",insetInlineStart:0,insetInlineEnd:0,zIndex:1,height:i,transform:"translateY(-50%)",content:'""'},[t]:{position:"relative",zIndex:2,display:"inline-block",minWidth:i,height:i,lineHeight:Te(i),borderRadius:r,transition:`background ${o}`},[`&:hover:not(${e}-in-view), + &:hover:not(${e}-selected):not(${e}-range-start):not(${e}-range-end)`]:{[t]:{background:s}},[`&-in-view${e}-today ${t}`]:{"&::before":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:1,border:`${Te(a)} ${l} ${u}`,borderRadius:r,content:'""'}},[`&-in-view${e}-in-range, + &-in-view${e}-range-start, + &-in-view${e}-range-end`]:{position:"relative",[`&:not(${e}-disabled):before`]:{background:c}},[`&-in-view${e}-selected, + &-in-view${e}-range-start, + &-in-view${e}-range-end`]:{[`&:not(${e}-disabled) ${t}`]:{color:d,background:u},[`&${e}-disabled ${t}`]:{background:m}},[`&-in-view${e}-range-start:not(${e}-disabled):before`]:{insetInlineStart:"50%"},[`&-in-view${e}-range-end:not(${e}-disabled):before`]:{insetInlineEnd:"50%"},[`&-in-view${e}-range-start:not(${e}-range-end) ${t}`]:{borderStartStartRadius:r,borderEndStartRadius:r,borderStartEndRadius:0,borderEndEndRadius:0},[`&-in-view${e}-range-end:not(${e}-range-start) ${t}`]:{borderStartStartRadius:0,borderEndStartRadius:0,borderStartEndRadius:r,borderEndEndRadius:r},"&-disabled":{color:h,pointerEvents:"none",[t]:{background:"transparent"},"&::before":{background:g}},[`&-disabled${e}-today ${t}::before`]:{borderColor:h}}},lOe=n=>{const{componentCls:e,pickerCellCls:t,pickerCellInnerCls:i,pickerYearMonthCellWidth:r,pickerControlIconSize:o,cellWidth:s,paddingSM:a,paddingXS:l,paddingXXS:u,colorBgContainer:c,lineWidth:d,lineType:h,borderRadiusLG:g,colorPrimary:m,colorTextHeading:f,colorSplit:b,pickerControlIconBorderWidth:C,colorIcon:v,textHeight:w,motionDurationMid:S,colorIconHover:F,fontWeightStrong:L,cellHeight:D,pickerCellPaddingVertical:A,colorTextDisabled:M,colorText:W,fontSize:Z,motionDurationSlow:T,withoutTimeCellHeight:E,pickerQuarterPanelContentHeight:V,borderRadiusSM:z,colorTextLightSolid:O,cellHoverBg:P,timeColumnHeight:B,timeColumnWidth:Y,timeCellHeight:k,controlItemBgActive:X,marginXXS:U,pickerDatePanelPaddingHorizontal:R,pickerControlIconMargin:ee}=n,oe=n.calc(s).mul(7).add(n.calc(R).mul(2)).equal();return{[e]:{"&-panel":{display:"inline-flex",flexDirection:"column",textAlign:"center",background:c,borderRadius:g,outline:"none","&-focused":{borderColor:m},"&-rtl":{direction:"rtl",[`${e}-prev-icon, + ${e}-super-prev-icon`]:{transform:"rotate(45deg)"},[`${e}-next-icon, + ${e}-super-next-icon`]:{transform:"rotate(-135deg)"}}},"&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel,\n &-week-panel,\n &-date-panel,\n &-time-panel":{display:"flex",flexDirection:"column",width:oe},"&-header":{display:"flex",padding:`0 ${Te(l)}`,color:f,borderBottom:`${Te(d)} ${h} ${b}`,"> *":{flex:"none"},button:{padding:0,color:v,lineHeight:Te(w),background:"transparent",border:0,cursor:"pointer",transition:`color ${S}`,fontSize:"inherit"},"> button":{minWidth:"1.6em",fontSize:Z,"&:hover":{color:F},"&:disabled":{opacity:.25,pointerEvents:"none"}},"&-view":{flex:"auto",fontWeight:L,lineHeight:Te(w),button:{color:"inherit",fontWeight:"inherit",verticalAlign:"top","&:not(:first-child)":{marginInlineStart:l},"&:hover":{color:m}}}},"&-prev-icon,\n &-next-icon,\n &-super-prev-icon,\n &-super-next-icon":{position:"relative",display:"inline-block",width:o,height:o,"&::before":{position:"absolute",top:0,insetInlineStart:0,display:"inline-block",width:o,height:o,border:"0 solid currentcolor",borderBlockStartWidth:C,borderBlockEndWidth:0,borderInlineStartWidth:C,borderInlineEndWidth:0,content:'""'}},"&-super-prev-icon,\n &-super-next-icon":{"&::after":{position:"absolute",top:ee,insetInlineStart:ee,display:"inline-block",width:o,height:o,border:"0 solid currentcolor",borderBlockStartWidth:C,borderBlockEndWidth:0,borderInlineStartWidth:C,borderInlineEndWidth:0,content:'""'}},"&-prev-icon,\n &-super-prev-icon":{transform:"rotate(-45deg)"},"&-next-icon,\n &-super-next-icon":{transform:"rotate(135deg)"},"&-content":{width:"100%",tableLayout:"fixed",borderCollapse:"collapse","th, td":{position:"relative",minWidth:D,fontWeight:"normal"},th:{height:n.calc(D).add(n.calc(A).mul(2)).equal(),color:W,verticalAlign:"middle"}},"&-cell":Object.assign({padding:`${Te(A)} 0`,color:M,cursor:"pointer","&-in-view":{color:W}},aOe(n)),"&-decade-panel,\n &-year-panel,\n &-quarter-panel,\n &-month-panel":{[`${e}-content`]:{height:n.calc(E).mul(4).equal()},[i]:{padding:`0 ${Te(l)}`}},"&-quarter-panel":{[`${e}-content`]:{height:V}},"&-decade-panel":{[i]:{padding:`0 ${Te(n.calc(l).div(2).equal())}`},[`${e}-cell::before`]:{display:"none"}},"&-year-panel,\n &-quarter-panel,\n &-month-panel":{[`${e}-body`]:{padding:`0 ${Te(l)}`},[i]:{width:r}},"&-date-panel":{[`${e}-body`]:{padding:`${Te(l)} ${Te(R)}`},[`${e}-content th`]:{boxSizing:"border-box",padding:0}},"&-week-panel":{[`${e}-cell`]:{[`&:hover ${i}, + &-selected ${i}, + ${i}`]:{background:"transparent !important"}},"&-row":{td:{"&:before":{transition:`background ${S}`},"&:first-child:before":{borderStartStartRadius:z,borderEndStartRadius:z},"&:last-child:before":{borderStartEndRadius:z,borderEndEndRadius:z}},"&:hover td":{"&:before":{background:P}},"&-range-start td,\n &-range-end td,\n &-selected td,\n &-hover td":{[`&${t}`]:{"&:before":{background:m},[`&${e}-cell-week`]:{color:new Po(O).setAlpha(.5).toHexString()},[i]:{color:O}}},"&-range-hover td:before":{background:X}}},"&-week-panel, &-date-panel-show-week":{[`${e}-body`]:{padding:`${Te(l)} ${Te(a)}`},[`${e}-content th`]:{width:"auto"}},"&-datetime-panel":{display:"flex",[`${e}-time-panel`]:{borderInlineStart:`${Te(d)} ${h} ${b}`},[`${e}-date-panel, + ${e}-time-panel`]:{transition:`opacity ${T}`},"&-active":{[`${e}-date-panel, + ${e}-time-panel`]:{opacity:.3,"&-active":{opacity:1}}}},"&-time-panel":{width:"auto",minWidth:"auto",direction:"ltr",[`${e}-content`]:{display:"flex",flex:"auto",height:B},"&-column":{flex:"1 0 auto",width:Y,margin:`${Te(u)} 0`,padding:0,overflowY:"hidden",textAlign:"start",listStyle:"none",transition:`background ${S}`,overflowX:"hidden","&::-webkit-scrollbar":{width:8,backgroundColor:"transparent"},"&::-webkit-scrollbar-thumb":{backgroundColor:n.colorTextTertiary,borderRadius:4},"&":{scrollbarWidth:"thin",scrollbarColor:`${n.colorTextTertiary} transparent`},"&::after":{display:"block",height:n.calc("100%").sub(k).equal(),content:'""'},"&:not(:first-child)":{borderInlineStart:`${Te(d)} ${h} ${b}`},"&-active":{background:new Po(X).setAlpha(.2).toHexString()},"&:hover":{overflowY:"auto"},"> li":{margin:0,padding:0,[`&${e}-time-panel-cell`]:{marginInline:U,[`${e}-time-panel-cell-inner`]:{display:"block",width:n.calc(Y).sub(n.calc(U).mul(2)).equal(),height:k,margin:0,paddingBlock:0,paddingInlineEnd:0,paddingInlineStart:n.calc(Y).sub(k).div(2).equal(),color:W,lineHeight:Te(k),borderRadius:z,cursor:"pointer",transition:`background ${S}`,"&:hover":{background:P}},"&-selected":{[`${e}-time-panel-cell-inner`]:{background:X}},"&-disabled":{[`${e}-time-panel-cell-inner`]:{color:M,background:"transparent",cursor:"not-allowed"}}}}}}}}},uOe=n=>{const{componentCls:e,textHeight:t,lineWidth:i,paddingSM:r,antCls:o,colorPrimary:s,cellActiveWithRangeBg:a,colorPrimaryBorder:l,lineType:u,colorSplit:c}=n;return{[`${e}-dropdown`]:{[`${e}-footer`]:{borderTop:`${Te(i)} ${u} ${c}`,"&-extra":{padding:`0 ${Te(r)}`,lineHeight:Te(n.calc(t).sub(n.calc(i).mul(2)).equal()),textAlign:"start","&:not(:last-child)":{borderBottom:`${Te(i)} ${u} ${c}`}}},[`${e}-panels + ${e}-footer ${e}-ranges`]:{justifyContent:"space-between"},[`${e}-ranges`]:{marginBlock:0,paddingInline:Te(r),overflow:"hidden",textAlign:"start",listStyle:"none",display:"flex",justifyContent:"center",alignItems:"center","> li":{lineHeight:Te(n.calc(t).sub(n.calc(i).mul(2)).equal()),display:"inline-block"},[`${e}-now-btn-disabled`]:{pointerEvents:"none",color:n.colorTextDisabled},[`${e}-preset > ${o}-tag-blue`]:{color:s,background:a,borderColor:l,cursor:"pointer"},[`${e}-ok`]:{paddingBlock:n.calc(i).mul(2).equal(),marginInlineStart:"auto"}}}}},cOe=n=>{const{componentCls:e,controlHeightLG:t,paddingXXS:i,padding:r}=n;return{pickerCellCls:`${e}-cell`,pickerCellInnerCls:`${e}-cell-inner`,pickerYearMonthCellWidth:n.calc(t).mul(1.5).equal(),pickerQuarterPanelContentHeight:n.calc(t).mul(1.4).equal(),pickerCellPaddingVertical:n.calc(i).add(n.calc(i).div(2)).equal(),pickerCellBorderGap:2,pickerControlIconSize:7,pickerControlIconMargin:4,pickerControlIconBorderWidth:1.5,pickerDatePanelPaddingHorizontal:n.calc(r).add(n.calc(i).div(2)).equal()}},dOe=n=>{const{colorBgContainerDisabled:e,controlHeight:t,controlHeightSM:i,controlHeightLG:r,paddingXXS:o}=n;return{cellHoverBg:n.controlItemBgHover,cellActiveWithRangeBg:n.controlItemBgActive,cellHoverWithRangeBg:new Po(n.colorPrimary).lighten(35).toHexString(),cellRangeBorderColor:new Po(n.colorPrimary).lighten(20).toHexString(),cellBgDisabled:e,timeColumnWidth:r*1.4,timeColumnHeight:28*8,timeCellHeight:28,cellWidth:i*1.5,cellHeight:i,textHeight:r,withoutTimeCellHeight:r*1.65,multipleItemBg:n.colorFillSecondary,multipleItemBorderColor:"transparent",multipleItemHeight:t-o*2,multipleItemHeightSM:i-o*2,multipleItemHeightLG:r-o*2,multipleSelectorBgDisabled:e,multipleItemColorDisabled:n.colorTextDisabled,multipleItemBorderColorDisabled:"transparent"}},hOe=n=>Object.assign(Object.assign(Object.assign(Object.assign({},YM(n)),dOe(n)),CM(n)),{presetsWidth:120,presetsMaxWidth:200,zIndexPopup:n.zIndexPopupBase+50}),gOe=n=>{const{componentCls:e}=n;return{[e]:[Object.assign(Object.assign(Object.assign({},NP(n)),MP(n)),kP(n)),{"&-outlined":{[`&${e}-multiple ${e}-selection-item`]:{background:n.multipleItemBg,border:`${Te(n.lineWidth)} ${n.lineType} ${n.multipleItemBorderColor}`}},"&-filled":{[`&${e}-multiple ${e}-selection-item`]:{background:n.colorBgContainer,border:`${Te(n.lineWidth)} ${n.lineType} ${n.colorSplit}`}},"&-borderless":{[`&${e}-multiple ${e}-selection-item`]:{background:n.multipleItemBg,border:`${Te(n.lineWidth)} ${n.lineType} ${n.multipleItemBorderColor}`}}}]}},WP=(n,e,t,i)=>{const r=n.calc(t).add(2).equal(),o=n.max(n.calc(e).sub(r).div(2).equal(),0),s=n.max(n.calc(e).sub(r).sub(o).equal(),0);return{padding:`${Te(o)} ${Te(i)} ${Te(s)}`}},mOe=n=>{const{componentCls:e,colorError:t,colorWarning:i}=n;return{[`${e}:not(${e}-disabled):not([disabled])`]:{[`&${e}-status-error`]:{[`${e}-active-bar`]:{background:t}},[`&${e}-status-warning`]:{[`${e}-active-bar`]:{background:i}}}}},fOe=n=>{const{componentCls:e,antCls:t,controlHeight:i,paddingInline:r,lineWidth:o,lineType:s,colorBorder:a,borderRadius:l,motionDurationMid:u,colorTextDisabled:c,colorTextPlaceholder:d,controlHeightLG:h,fontSizeLG:g,controlHeightSM:m,paddingInlineSM:f,paddingXS:b,marginXS:C,colorTextDescription:v,lineWidthBold:w,colorPrimary:S,motionDurationSlow:F,zIndexPopup:L,paddingXXS:D,sizePopupArrow:A,colorBgElevated:M,borderRadiusLG:W,boxShadowSecondary:Z,borderRadiusSM:T,colorSplit:E,cellHoverBg:V,presetsWidth:z,presetsMaxWidth:O,boxShadowPopoverArrow:P,fontHeight:B,fontHeightLG:Y,lineHeightLG:k}=n;return[{[e]:Object.assign(Object.assign(Object.assign({},oo(n)),WP(n,i,B,r)),{position:"relative",display:"inline-flex",alignItems:"center",lineHeight:1,borderRadius:l,transition:`border ${u}, box-shadow ${u}, background ${u}`,[`${e}-input`]:{position:"relative",display:"inline-flex",alignItems:"center",width:"100%","> input":Object.assign(Object.assign({position:"relative",display:"inline-block",width:"100%",color:"inherit",fontSize:n.fontSize,lineHeight:n.lineHeight,transition:`all ${u}`},ZP(d)),{flex:"auto",minWidth:1,height:"auto",padding:0,background:"transparent",border:0,fontFamily:"inherit","&:focus":{boxShadow:"none",outline:0},"&[disabled]":{background:"transparent",color:c,cursor:"not-allowed"}}),"&-placeholder":{"> input":{color:d}}},"&-large":Object.assign(Object.assign({},WP(n,h,Y,r)),{[`${e}-input > input`]:{fontSize:g,lineHeight:k}}),"&-small":Object.assign({},WP(n,m,B,f)),[`${e}-suffix`]:{display:"flex",flex:"none",alignSelf:"center",marginInlineStart:n.calc(b).div(2).equal(),color:c,lineHeight:1,pointerEvents:"none",transition:`opacity ${u}, color ${u}`,"> *":{verticalAlign:"top","&:not(:last-child)":{marginInlineEnd:C}}},[`${e}-clear`]:{position:"absolute",top:"50%",insetInlineEnd:0,color:c,lineHeight:1,transform:"translateY(-50%)",cursor:"pointer",opacity:0,transition:`opacity ${u}, color ${u}`,"> *":{verticalAlign:"top"},"&:hover":{color:v}},"&:hover":{[`${e}-clear`]:{opacity:1},[`${e}-suffix:not(:last-child)`]:{opacity:0}},[`${e}-separator`]:{position:"relative",display:"inline-block",width:"1em",height:g,color:c,fontSize:g,verticalAlign:"top",cursor:"default",[`${e}-focused &`]:{color:v},[`${e}-range-separator &`]:{[`${e}-disabled &`]:{cursor:"not-allowed"}}},"&-range":{position:"relative",display:"inline-flex",[`${e}-active-bar`]:{bottom:n.calc(o).mul(-1).equal(),height:w,background:S,opacity:0,transition:`all ${F} ease-out`,pointerEvents:"none"},[`&${e}-focused`]:{[`${e}-active-bar`]:{opacity:1}},[`${e}-range-separator`]:{alignItems:"center",padding:`0 ${Te(b)}`,lineHeight:1}},"&-range, &-multiple":{[`${e}-clear`]:{insetInlineEnd:r},[`&${e}-small`]:{[`${e}-clear`]:{insetInlineEnd:f}}},"&-dropdown":Object.assign(Object.assign(Object.assign({},oo(n)),lOe(n)),{pointerEvents:"none",position:"absolute",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:L,[`&${e}-dropdown-hidden`]:{display:"none"},[`&${e}-dropdown-placement-bottomLeft`]:{[`${e}-range-arrow`]:{top:0,display:"block",transform:"translateY(-100%)"}},[`&${e}-dropdown-placement-topLeft`]:{[`${e}-range-arrow`]:{bottom:0,display:"block",transform:"translateY(100%) rotate(180deg)"}},[`&${t}-slide-up-enter${t}-slide-up-enter-active${e}-dropdown-placement-topLeft, + &${t}-slide-up-enter${t}-slide-up-enter-active${e}-dropdown-placement-topRight, + &${t}-slide-up-appear${t}-slide-up-appear-active${e}-dropdown-placement-topLeft, + &${t}-slide-up-appear${t}-slide-up-appear-active${e}-dropdown-placement-topRight`]:{animationName:cM},[`&${t}-slide-up-enter${t}-slide-up-enter-active${e}-dropdown-placement-bottomLeft, + &${t}-slide-up-enter${t}-slide-up-enter-active${e}-dropdown-placement-bottomRight, + &${t}-slide-up-appear${t}-slide-up-appear-active${e}-dropdown-placement-bottomLeft, + &${t}-slide-up-appear${t}-slide-up-appear-active${e}-dropdown-placement-bottomRight`]:{animationName:lM},[`&${t}-slide-up-leave${t}-slide-up-leave-active${e}-dropdown-placement-topLeft, + &${t}-slide-up-leave${t}-slide-up-leave-active${e}-dropdown-placement-topRight`]:{animationName:dM},[`&${t}-slide-up-leave${t}-slide-up-leave-active${e}-dropdown-placement-bottomLeft, + &${t}-slide-up-leave${t}-slide-up-leave-active${e}-dropdown-placement-bottomRight`]:{animationName:uM},[`${e}-panel > ${e}-time-panel`]:{paddingTop:D},[`${e}-range-wrapper`]:{display:"flex",position:"relative"},[`${e}-range-arrow`]:Object.assign(Object.assign({position:"absolute",zIndex:1,display:"none",paddingInline:n.calc(r).mul(1.5).equal(),boxSizing:"content-box",transition:`left ${F} ease-out`},Poe(n,M,P)),{"&:before":{insetInlineStart:n.calc(r).mul(1.5).equal()}}),[`${e}-panel-container`]:{overflow:"hidden",verticalAlign:"top",background:M,borderRadius:W,boxShadow:Z,transition:`margin ${F}`,display:"inline-block",pointerEvents:"auto",[`${e}-panel-layout`]:{display:"flex",flexWrap:"nowrap",alignItems:"stretch"},[`${e}-presets`]:{display:"flex",flexDirection:"column",minWidth:z,maxWidth:O,ul:{height:0,flex:"auto",listStyle:"none",overflow:"auto",margin:0,padding:b,borderInlineEnd:`${Te(o)} ${s} ${E}`,li:Object.assign(Object.assign({},Vp),{borderRadius:T,paddingInline:b,paddingBlock:n.calc(m).sub(B).div(2).equal(),cursor:"pointer",transition:`all ${F}`,"+ li":{marginTop:C},"&:hover":{background:V}})}},[`${e}-panels`]:{display:"inline-flex",flexWrap:"nowrap",direction:"ltr","&:last-child":{[`${e}-panel`]:{borderWidth:0}}},[`${e}-panel`]:{verticalAlign:"top",background:"transparent",borderRadius:0,borderWidth:0,[`${e}-content, + table`]:{textAlign:"center"},"&-focused":{borderColor:a}}}}),"&-dropdown-range":{padding:`${Te(n.calc(A).mul(2).div(3).equal())} 0`,"&-hidden":{display:"none"}},"&-rtl":{direction:"rtl",[`${e}-separator`]:{transform:"rotate(180deg)"},[`${e}-footer`]:{"&-extra":{direction:"rtl"}}}})},ug(n,"slide-up"),ug(n,"slide-down"),Xy(n,"move-up"),Xy(n,"move-down")]},Fae=Oo("DatePicker",n=>{const e=Bi(zM(n),cOe(n),{inputPaddingHorizontalBase:n.calc(n.paddingSM).sub(1).equal(),multipleSelectItemHeight:n.multipleItemHeight,selectHeight:n.controlHeight});return[uOe(e),fOe(e),gOe(e),mOe(e),sOe(e),Dx(n,{focusElCls:`${n.componentCls}-focused`})]},hOe);var pOe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z"}},{tag:"path",attrs:{d:"M192 474h672q8 0 8 8v60q0 8-8 8H160q-8 0-8-8v-60q0-8 8-8z"}}]},name:"plus",theme:"outlined"};const bOe=pOe;var COe=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:bOe}))},vOe=I.forwardRef(COe);const yOe=vOe,UM=I.createContext(null);var IOe=function(e){var t=e.activeTabOffset,i=e.horizontal,r=e.rtl,o=e.indicator,s=o===void 0?{}:o,a=s.size,l=s.align,u=l===void 0?"center":l,c=I.useState(),d=we(c,2),h=d[0],g=d[1],m=I.useRef(),f=Ye.useCallback(function(C){return typeof a=="function"?a(C):typeof a=="number"?a:C},[a]);function b(){xi.cancel(m.current)}return I.useEffect(function(){var C={};if(t)if(i){C.width=f(t.width);var v=r?"right":"left";u==="start"&&(C[v]=t[v]),u==="center"&&(C[v]=t[v]+t.width/2,C.transform=r?"translateX(50%)":"translateX(-50%)"),u==="end"&&(C[v]=t[v]+t.width,C.transform="translateX(-100%)")}else C.height=f(t.height),u==="start"&&(C.top=t.top),u==="center"&&(C.top=t.top+t.height/2,C.transform="translateY(-50%)"),u==="end"&&(C.top=t.top+t.height,C.transform="translateY(-100%)");return b(),m.current=xi(function(){g(C)}),b},[t,i,r,u,f]),{style:h}},_ae={width:0,height:0,left:0,top:0};function wOe(n,e,t){return I.useMemo(function(){for(var i,r=new Map,o=e.get((i=n[0])===null||i===void 0?void 0:i.key)||_ae,s=o.left+o.width,a=0;aV?(T=W,L.current="x"):(T=Z,L.current="y"),e(-T,-T)&&M.preventDefault()}var A=I.useRef(null);A.current={onTouchStart:w,onTouchMove:S,onTouchEnd:F,onWheel:D},I.useEffect(function(){function M(E){A.current.onTouchStart(E)}function W(E){A.current.onTouchMove(E)}function Z(E){A.current.onTouchEnd(E)}function T(E){A.current.onWheel(E)}return document.addEventListener("touchmove",W,{passive:!1}),document.addEventListener("touchend",Z,{passive:!1}),n.current.addEventListener("touchstart",M,{passive:!1}),n.current.addEventListener("wheel",T),function(){document.removeEventListener("touchmove",W),document.removeEventListener("touchend",Z)}},[])}function kae(n){var e=I.useState(0),t=we(e,2),i=t[0],r=t[1],o=I.useRef(0),s=I.useRef();return s.current=n,D1(function(){var a;(a=s.current)===null||a===void 0||a.call(s)},[i]),function(){o.current===i&&(o.current+=1,r(o.current))}}function LOe(n){var e=I.useRef([]),t=I.useState({}),i=we(t,2),r=i[1],o=I.useRef(typeof n=="function"?n():n),s=kae(function(){var l=o.current;e.current.forEach(function(u){l=u(l)}),e.current=[],o.current=l,r({})});function a(l){e.current.push(l),s()}return[o.current,a]}var Mae={width:0,height:0,left:0,top:0,right:0};function FOe(n,e,t,i,r,o,s){var a=s.tabs,l=s.tabPosition,u=s.rtl,c,d,h;return["top","bottom"].includes(l)?(c="width",d=u?"right":"left",h=Math.abs(t)):(c="height",d="top",h=-t),I.useMemo(function(){if(!a.length)return[0,0];for(var g=a.length,m=g,f=0;fh+e){m=f-1;break}}for(var C=0,v=g-1;v>=0;v-=1){var w=n.get(a[v].key)||Mae;if(w[d]=m?[0,0]:[C,m]},[n,e,i,r,o,h,l,a.map(function(g){return g.key}).join("_"),u])}function Zae(n){var e;return n instanceof Map?(e={},n.forEach(function(t,i){e[i]=t})):e=n,JSON.stringify(e)}var _Oe="TABS_DQ";function Tae(n){return String(n).replace(/"/g,_Oe)}function Eae(n,e,t,i){return!(!t||i||n===!1||n===void 0&&(e===!1||e===null))}var Wae=I.forwardRef(function(n,e){var t=n.prefixCls,i=n.editable,r=n.locale,o=n.style;return!i||i.showAdd===!1?null:I.createElement("button",{ref:e,type:"button",className:"".concat(t,"-nav-add"),style:o,"aria-label":(r==null?void 0:r.addAriaLabel)||"Add tab",onClick:function(a){i.onEdit("add",{event:a})}},i.addIcon||"+")}),Rae=I.forwardRef(function(n,e){var t=n.position,i=n.prefixCls,r=n.extra;if(!r)return null;var o,s={};return Vn(r)==="object"&&!I.isValidElement(r)?s=r:s.right=r,t==="right"&&(o=s.right),t==="left"&&(o=s.left),o?I.createElement("div",{className:"".concat(i,"-extra-content"),ref:e},o):null}),DOe=I.forwardRef(function(n,e){var t=n.prefixCls,i=n.id,r=n.tabs,o=n.locale,s=n.mobile,a=n.moreIcon,l=a===void 0?"More":a,u=n.moreTransitionName,c=n.style,d=n.className,h=n.editable,g=n.tabBarGutter,m=n.rtl,f=n.removeAriaLabel,b=n.onTabClick,C=n.getPopupContainer,v=n.popupClassName,w=I.useState(!1),S=we(w,2),F=S[0],L=S[1],D=I.useState(null),A=we(D,2),M=A[0],W=A[1],Z="".concat(i,"-more-popup"),T="".concat(t,"-dropdown"),E=M!==null?"".concat(Z,"-").concat(M):null,V=o==null?void 0:o.dropdownAriaLabel;function z(U,R){U.preventDefault(),U.stopPropagation(),h.onEdit("remove",{key:R,event:U})}var O=I.createElement($y,{onClick:function(R){var ee=R.key,oe=R.domEvent;b(ee,oe),L(!1)},prefixCls:"".concat(T,"-menu"),id:Z,tabIndex:-1,role:"listbox","aria-activedescendant":E,selectedKeys:[M],"aria-label":V!==void 0?V:"expanded dropdown"},r.map(function(U){var R=U.closable,ee=U.disabled,oe=U.closeIcon,se=U.key,ue=U.label,ce=Eae(R,oe,h,ee);return I.createElement(jx,{key:se,id:"".concat(Z,"-").concat(se),role:"option","aria-controls":i&&"".concat(i,"-panel-").concat(se),disabled:ee},I.createElement("span",null,ue),ce&&I.createElement("button",{type:"button","aria-label":f||"remove",tabIndex:0,className:"".concat(T,"-menu-item-remove"),onClick:function(fe){fe.stopPropagation(),z(fe,se)}},oe||h.removeIcon||"×"))}));function P(U){for(var R=r.filter(function(ce){return!ce.disabled}),ee=R.findIndex(function(ce){return ce.key===M})||0,oe=R.length,se=0;seYt?"left":"right"})}),E=we(T,2),V=E[0],z=E[1],O=Dae(0,function(Mn,Yt){!Z&&f&&f({direction:Mn>Yt?"top":"bottom"})}),P=we(O,2),B=P[0],Y=P[1],k=I.useState([0,0]),X=we(k,2),U=X[0],R=X[1],ee=I.useState([0,0]),oe=we(ee,2),se=oe[0],ue=oe[1],ce=I.useState([0,0]),ye=we(ce,2),fe=ye[0],le=ye[1],Ze=I.useState([0,0]),ke=we(Ze,2),Ne=ke[0],ze=ke[1],Ke=LOe(new Map),ut=we(Ke,2),Ct=ut[0],ot=ut[1],he=wOe(w,Ct,se[0]),de=KM(U,Z),ge=KM(se,Z),j=KM(fe,Z),Q=KM(Ne,Z),q=deAe?Ae:Mn}var tt=I.useRef(null),We=I.useState(),ht=we(We,2),He=ht[0],Re=ht[1];function dt(){Re(Date.now())}function yt(){tt.current&&clearTimeout(tt.current)}xOe(D,function(Mn,Yt){function bn(kt,Ie){kt(function(Ue){var gt=Oe(Ue+Ie);return gt})}return q?(Z?bn(z,Mn):bn(Y,Yt),yt(),dt(),!0):!1}),I.useEffect(function(){return yt(),He&&(tt.current=setTimeout(function(){Re(0)},100)),yt},[He]);var Kt=FOe(he,te,Z?V:B,ge,j,Q,Se(Se({},n),{},{tabs:w})),Wt=we(Kt,2),Ut=Wt[0],Nn=Wt[1],di=Ki(function(){var Mn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:s,Yt=he.get(Mn)||{width:0,height:0,left:0,right:0,top:0};if(Z){var bn=V;a?Yt.rightV+te&&(bn=Yt.right+Yt.width-te):Yt.left<-V?bn=-Yt.left:Yt.left+Yt.width>-V+te&&(bn=-(Yt.left+Yt.width-te)),Y(0),z(Oe(bn))}else{var kt=B;Yt.top<-B?kt=-Yt.top:Yt.top+Yt.height>-B+te&&(kt=-(Yt.top+Yt.height-te)),z(0),Y(Oe(kt))}}),pe={};d==="top"||d==="bottom"?pe[a?"marginRight":"marginLeft"]=h:pe.marginTop=h;var xe=w.map(function(Mn,Yt){var bn=Mn.key;return I.createElement(NOe,{id:r,prefixCls:v,key:bn,tab:Mn,style:Yt===0?void 0:pe,closable:Mn.closable,editable:u,active:bn===s,renderWrapper:g,removeAriaLabel:c==null?void 0:c.removeAriaLabel,onClick:function(Ie){m(bn,Ie)},onFocus:function(){di(bn),dt(),D.current&&(a||(D.current.scrollLeft=0),D.current.scrollTop=0)}})}),_e=function(){return ot(function(){var Yt,bn=new Map,kt=(Yt=A.current)===null||Yt===void 0?void 0:Yt.getBoundingClientRect();return w.forEach(function(Ie){var Ue,gt=Ie.key,nn=(Ue=A.current)===null||Ue===void 0?void 0:Ue.querySelector('[data-node-key="'.concat(Tae(gt),'"]'));if(nn){var Kn=kOe(nn,kt),Zn=we(Kn,4),an=Zn[0],Wn=Zn[1],wn=Zn[2],pr=Zn[3];bn.set(gt,{width:an,height:Wn,left:wn,top:pr})}}),bn})};I.useEffect(function(){_e()},[w.map(function(Mn){return Mn.key}).join("_")]);var Pe=kae(function(){var Mn=tI(S),Yt=tI(F),bn=tI(L);R([Mn[0]-Yt[0]-bn[0],Mn[1]-Yt[1]-bn[1]]);var kt=tI(W);le(kt);var Ie=tI(M);ze(Ie);var Ue=tI(A);ue([Ue[0]-kt[0],Ue[1]-kt[1]]),_e()}),qe=w.slice(0,Ut),nt=w.slice(Nn+1),wt=[].concat(_t(qe),_t(nt)),St=he.get(s),et=IOe({activeTabOffset:St,horizontal:Z,indicator:b,rtl:a}),xt=et.style;I.useEffect(function(){di()},[s,Le,Ae,Zae(St),Zae(he),Z]),I.useEffect(function(){Pe()},[a]);var Zt=!!wt.length,Mt="".concat(v,"-nav-wrap"),zt,jt,ri,Bn;return Z?a?(jt=V>0,zt=V!==Ae):(zt=V<0,jt=V!==Le):(ri=B<0,Bn=B!==Le),I.createElement(ac,{onResize:Pe},I.createElement("div",{ref:Zp(e,S),role:"tablist",className:Me("".concat(v,"-nav"),t),style:i,onKeyDown:function(){dt()}},I.createElement(Rae,{ref:F,position:"left",extra:l,prefixCls:v}),I.createElement(ac,{onResize:Pe},I.createElement("div",{className:Me(Mt,me(me(me(me({},"".concat(Mt,"-ping-left"),zt),"".concat(Mt,"-ping-right"),jt),"".concat(Mt,"-ping-top"),ri),"".concat(Mt,"-ping-bottom"),Bn)),ref:D},I.createElement(ac,{onResize:Pe},I.createElement("div",{ref:A,className:"".concat(v,"-nav-list"),style:{transform:"translate(".concat(V,"px, ").concat(B,"px)"),transition:He?"none":void 0}},xe,I.createElement(Wae,{ref:W,prefixCls:v,locale:c,editable:u,style:Se(Se({},xe.length===0?void 0:pe),{},{visibility:Zt?"hidden":null})}),I.createElement("div",{className:Me("".concat(v,"-ink-bar"),me({},"".concat(v,"-ink-bar-animated"),o.inkBar)),style:xt}))))),I.createElement(AOe,pt({},n,{removeAriaLabel:c==null?void 0:c.removeAriaLabel,ref:M,prefixCls:v,tabs:wt,className:!Zt&&Ce,tabMoving:!!He})),I.createElement(Rae,{ref:L,position:"right",extra:l,prefixCls:v})))}),Vae=I.forwardRef(function(n,e){var t=n.prefixCls,i=n.className,r=n.style,o=n.id,s=n.active,a=n.tabKey,l=n.children;return I.createElement("div",{id:o&&"".concat(o,"-panel-").concat(a),role:"tabpanel",tabIndex:s?0:-1,"aria-labelledby":o&&"".concat(o,"-tab-").concat(a),"aria-hidden":!s,style:r,className:Me(t,s&&"".concat(t,"-active"),i),ref:e},l)}),MOe=["renderTabBar"],ZOe=["label","key"],TOe=function(e){var t=e.renderTabBar,i=zn(e,MOe),r=I.useContext(UM),o=r.tabs;if(t){var s=Se(Se({},i),{},{panes:o.map(function(a){var l=a.label,u=a.key,c=zn(a,ZOe);return I.createElement(Vae,pt({tab:l,key:u,tabKey:u},c))})});return t(s,Gae)}return I.createElement(Gae,i)},EOe=["key","forceRender","style","className","destroyInactiveTabPane"],WOe=function(e){var t=e.id,i=e.activeKey,r=e.animated,o=e.tabPosition,s=e.destroyInactiveTabPane,a=I.useContext(UM),l=a.prefixCls,u=a.tabs,c=r.tabPane,d="".concat(l,"-tabpane");return I.createElement("div",{className:Me("".concat(l,"-content-holder"))},I.createElement("div",{className:Me("".concat(l,"-content"),"".concat(l,"-content-").concat(o),me({},"".concat(l,"-content-animated"),c))},u.map(function(h){var g=h.key,m=h.forceRender,f=h.style,b=h.className,C=h.destroyInactiveTabPane,v=zn(h,EOe),w=g===i;return I.createElement(Qc,pt({key:g,visible:w,forceRender:m,removeOnLeave:!!(s||C),leavedClassName:"".concat(d,"-hidden")},r.tabPaneMotion),function(S,F){var L=S.style,D=S.className;return I.createElement(Vae,pt({},v,{prefixCls:d,id:t,tabKey:g,animated:c,active:w,style:Se(Se({},f),L),className:Me(b,D),ref:F}))})})))};function ROe(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{inkBar:!0,tabPane:!1},e;return n===!1?e={inkBar:!1,tabPane:!1}:n===!0?e={inkBar:!0,tabPane:!1}:e=Se({inkBar:!0},Vn(n)==="object"?n:{}),e.tabPaneMotion&&e.tabPane===void 0&&(e.tabPane=!0),!e.tabPaneMotion&&e.tabPane&&(e.tabPane=!1),e}var GOe=["id","prefixCls","className","items","direction","activeKey","defaultActiveKey","editable","animated","tabPosition","tabBarGutter","tabBarStyle","tabBarExtraContent","locale","moreIcon","moreTransitionName","destroyInactiveTabPane","renderTabBar","onChange","onTabClick","onTabScroll","getPopupContainer","popupClassName","indicator"],Xae=0,VOe=I.forwardRef(function(n,e){var t=n.id,i=n.prefixCls,r=i===void 0?"rc-tabs":i,o=n.className,s=n.items,a=n.direction,l=n.activeKey,u=n.defaultActiveKey,c=n.editable,d=n.animated,h=n.tabPosition,g=h===void 0?"top":h,m=n.tabBarGutter,f=n.tabBarStyle,b=n.tabBarExtraContent,C=n.locale,v=n.moreIcon,w=n.moreTransitionName,S=n.destroyInactiveTabPane,F=n.renderTabBar,L=n.onChange,D=n.onTabClick,A=n.onTabScroll,M=n.getPopupContainer,W=n.popupClassName,Z=n.indicator,T=zn(n,GOe),E=I.useMemo(function(){return(s||[]).filter(function(ze){return ze&&Vn(ze)==="object"&&"key"in ze})},[s]),V=a==="rtl",z=ROe(d),O=I.useState(!1),P=we(O,2),B=P[0],Y=P[1];I.useEffect(function(){Y(gM())},[]);var k=Ur(function(){var ze;return(ze=E[0])===null||ze===void 0?void 0:ze.key},{value:l,defaultValue:u}),X=we(k,2),U=X[0],R=X[1],ee=I.useState(function(){return E.findIndex(function(ze){return ze.key===U})}),oe=we(ee,2),se=oe[0],ue=oe[1];I.useEffect(function(){var ze=E.findIndex(function(ut){return ut.key===U});if(ze===-1){var Ke;ze=Math.max(0,Math.min(se,E.length-1)),R((Ke=E[ze])===null||Ke===void 0?void 0:Ke.key)}ue(ze)},[E.map(function(ze){return ze.key}).join("_"),U,se]);var ce=Ur(null,{value:t}),ye=we(ce,2),fe=ye[0],le=ye[1];I.useEffect(function(){t||(le("rc-tabs-".concat(Xae)),Xae+=1)},[]);function Ze(ze,Ke){D==null||D(ze,Ke);var ut=ze!==U;R(ze),ut&&(L==null||L(ze))}var ke={id:fe,activeKey:U,animated:z,tabPosition:g,rtl:V,mobile:B},Ne=Se(Se({},ke),{},{editable:c,locale:C,moreIcon:v,moreTransitionName:w,tabBarGutter:m,onTabClick:Ze,onTabScroll:A,extra:b,style:f,panes:null,getPopupContainer:M,popupClassName:W,indicator:Z});return I.createElement(UM.Provider,{value:{tabs:E,prefixCls:r}},I.createElement("div",pt({ref:e,id:t,className:Me(r,"".concat(r,"-").concat(g),me(me(me({},"".concat(r,"-mobile"),B),"".concat(r,"-editable"),c),"".concat(r,"-rtl"),V),o)},T),I.createElement(TOe,pt({},Ne,{renderTabBar:F})),I.createElement(WOe,pt({destroyInactiveTabPane:S},ke,{animated:z}))))});const XOe={motionAppear:!1,motionEnter:!0,motionLeave:!0};function POe(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{inkBar:!0,tabPane:!1},t;return e===!1?t={inkBar:!1,tabPane:!1}:e===!0?t={inkBar:!0,tabPane:!0}:t=Object.assign({inkBar:!0},typeof e=="object"?e:{}),t.tabPane&&(t.tabPaneMotion=Object.assign(Object.assign({},XOe),{motionName:Op(n,"switch")})),t}var OOe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);re)}function zOe(n,e){if(n)return n;const t=Kc(e).map(i=>{if(I.isValidElement(i)){const{key:r,props:o}=i,s=o||{},{tab:a}=s,l=OOe(s,["tab"]);return Object.assign(Object.assign({key:String(r)},l),{label:a})}return null});return BOe(t)}const YOe=n=>{const{componentCls:e,motionDurationSlow:t}=n;return[{[e]:{[`${e}-switch`]:{"&-appear, &-enter":{transition:"none","&-start":{opacity:0},"&-active":{opacity:1,transition:`opacity ${t}`}},"&-leave":{position:"absolute",transition:"none",inset:0,"&-start":{opacity:1},"&-active":{opacity:0,transition:`opacity ${t}`}}}}},[ug(n,"slide-up"),ug(n,"slide-down")]]},HOe=n=>{const{componentCls:e,tabsCardPadding:t,cardBg:i,cardGutter:r,colorBorderSecondary:o,itemSelectedColor:s}=n;return{[`${e}-card`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-tab`]:{margin:0,padding:t,background:i,border:`${Te(n.lineWidth)} ${n.lineType} ${o}`,transition:`all ${n.motionDurationSlow} ${n.motionEaseInOut}`},[`${e}-tab-active`]:{color:s,background:n.colorBgContainer},[`${e}-ink-bar`]:{visibility:"hidden"}},[`&${e}-top, &${e}-bottom`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-tab + ${e}-tab`]:{marginLeft:{_skip_check_:!0,value:Te(r)}}}},[`&${e}-top`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-tab`]:{borderRadius:`${Te(n.borderRadiusLG)} ${Te(n.borderRadiusLG)} 0 0`},[`${e}-tab-active`]:{borderBottomColor:n.colorBgContainer}}},[`&${e}-bottom`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-tab`]:{borderRadius:`0 0 ${Te(n.borderRadiusLG)} ${Te(n.borderRadiusLG)}`},[`${e}-tab-active`]:{borderTopColor:n.colorBgContainer}}},[`&${e}-left, &${e}-right`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-tab + ${e}-tab`]:{marginTop:Te(r)}}},[`&${e}-left`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-tab`]:{borderRadius:{_skip_check_:!0,value:`${Te(n.borderRadiusLG)} 0 0 ${Te(n.borderRadiusLG)}`}},[`${e}-tab-active`]:{borderRightColor:{_skip_check_:!0,value:n.colorBgContainer}}}},[`&${e}-right`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${Te(n.borderRadiusLG)} ${Te(n.borderRadiusLG)} 0`}},[`${e}-tab-active`]:{borderLeftColor:{_skip_check_:!0,value:n.colorBgContainer}}}}}}},UOe=n=>{const{componentCls:e,itemHoverColor:t,dropdownEdgeChildVerticalPadding:i}=n;return{[`${e}-dropdown`]:Object.assign(Object.assign({},oo(n)),{position:"absolute",top:-9999,left:{_skip_check_:!0,value:-9999},zIndex:n.zIndexPopup,display:"block","&-hidden":{display:"none"},[`${e}-dropdown-menu`]:{maxHeight:n.tabsDropdownHeight,margin:0,padding:`${Te(i)} 0`,overflowX:"hidden",overflowY:"auto",textAlign:{_skip_check_:!0,value:"left"},listStyleType:"none",backgroundColor:n.colorBgContainer,backgroundClip:"padding-box",borderRadius:n.borderRadiusLG,outline:"none",boxShadow:n.boxShadowSecondary,"&-item":Object.assign(Object.assign({},Vp),{display:"flex",alignItems:"center",minWidth:n.tabsDropdownWidth,margin:0,padding:`${Te(n.paddingXXS)} ${Te(n.paddingSM)}`,color:n.colorText,fontWeight:"normal",fontSize:n.fontSize,lineHeight:n.lineHeight,cursor:"pointer",transition:`all ${n.motionDurationSlow}`,"> span":{flex:1,whiteSpace:"nowrap"},"&-remove":{flex:"none",marginLeft:{_skip_check_:!0,value:n.marginSM},color:n.colorTextDescription,fontSize:n.fontSizeSM,background:"transparent",border:0,cursor:"pointer","&:hover":{color:t}},"&:hover":{background:n.controlItemBgHover},"&-disabled":{"&, &:hover":{color:n.colorTextDisabled,background:"transparent",cursor:"not-allowed"}}})}})}},JOe=n=>{const{componentCls:e,margin:t,colorBorderSecondary:i,horizontalMargin:r,verticalItemPadding:o,verticalItemMargin:s,calc:a}=n;return{[`${e}-top, ${e}-bottom`]:{flexDirection:"column",[`> ${e}-nav, > div > ${e}-nav`]:{margin:r,"&::before":{position:"absolute",right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},borderBottom:`${Te(n.lineWidth)} ${n.lineType} ${i}`,content:"''"},[`${e}-ink-bar`]:{height:n.lineWidthBold,"&-animated":{transition:`width ${n.motionDurationSlow}, left ${n.motionDurationSlow}, + right ${n.motionDurationSlow}`}},[`${e}-nav-wrap`]:{"&::before, &::after":{top:0,bottom:0,width:n.controlHeight},"&::before":{left:{_skip_check_:!0,value:0},boxShadow:n.boxShadowTabsOverflowLeft},"&::after":{right:{_skip_check_:!0,value:0},boxShadow:n.boxShadowTabsOverflowRight},[`&${e}-nav-wrap-ping-left::before`]:{opacity:1},[`&${e}-nav-wrap-ping-right::after`]:{opacity:1}}}},[`${e}-top`]:{[`> ${e}-nav, + > div > ${e}-nav`]:{"&::before":{bottom:0},[`${e}-ink-bar`]:{bottom:0}}},[`${e}-bottom`]:{[`> ${e}-nav, > div > ${e}-nav`]:{order:1,marginTop:t,marginBottom:0,"&::before":{top:0},[`${e}-ink-bar`]:{top:0}},[`> ${e}-content-holder, > div > ${e}-content-holder`]:{order:0}},[`${e}-left, ${e}-right`]:{[`> ${e}-nav, > div > ${e}-nav`]:{flexDirection:"column",minWidth:a(n.controlHeight).mul(1.25).equal(),[`${e}-tab`]:{padding:o,textAlign:"center"},[`${e}-tab + ${e}-tab`]:{margin:s},[`${e}-nav-wrap`]:{flexDirection:"column","&::before, &::after":{right:{_skip_check_:!0,value:0},left:{_skip_check_:!0,value:0},height:n.controlHeight},"&::before":{top:0,boxShadow:n.boxShadowTabsOverflowTop},"&::after":{bottom:0,boxShadow:n.boxShadowTabsOverflowBottom},[`&${e}-nav-wrap-ping-top::before`]:{opacity:1},[`&${e}-nav-wrap-ping-bottom::after`]:{opacity:1}},[`${e}-ink-bar`]:{width:n.lineWidthBold,"&-animated":{transition:`height ${n.motionDurationSlow}, top ${n.motionDurationSlow}`}},[`${e}-nav-list, ${e}-nav-operations`]:{flex:"1 0 auto",flexDirection:"column"}}},[`${e}-left`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-ink-bar`]:{right:{_skip_check_:!0,value:0}}},[`> ${e}-content-holder, > div > ${e}-content-holder`]:{marginLeft:{_skip_check_:!0,value:Te(a(n.lineWidth).mul(-1).equal())},borderLeft:{_skip_check_:!0,value:`${Te(n.lineWidth)} ${n.lineType} ${n.colorBorder}`},[`> ${e}-content > ${e}-tabpane`]:{paddingLeft:{_skip_check_:!0,value:n.paddingLG}}}},[`${e}-right`]:{[`> ${e}-nav, > div > ${e}-nav`]:{order:1,[`${e}-ink-bar`]:{left:{_skip_check_:!0,value:0}}},[`> ${e}-content-holder, > div > ${e}-content-holder`]:{order:0,marginRight:{_skip_check_:!0,value:a(n.lineWidth).mul(-1).equal()},borderRight:{_skip_check_:!0,value:`${Te(n.lineWidth)} ${n.lineType} ${n.colorBorder}`},[`> ${e}-content > ${e}-tabpane`]:{paddingRight:{_skip_check_:!0,value:n.paddingLG}}}}}},KOe=n=>{const{componentCls:e,cardPaddingSM:t,cardPaddingLG:i,horizontalItemPaddingSM:r,horizontalItemPaddingLG:o}=n;return{[e]:{"&-small":{[`> ${e}-nav`]:{[`${e}-tab`]:{padding:r,fontSize:n.titleFontSizeSM}}},"&-large":{[`> ${e}-nav`]:{[`${e}-tab`]:{padding:o,fontSize:n.titleFontSizeLG}}}},[`${e}-card`]:{[`&${e}-small`]:{[`> ${e}-nav`]:{[`${e}-tab`]:{padding:t}},[`&${e}-bottom`]:{[`> ${e}-nav ${e}-tab`]:{borderRadius:`0 0 ${Te(n.borderRadius)} ${Te(n.borderRadius)}`}},[`&${e}-top`]:{[`> ${e}-nav ${e}-tab`]:{borderRadius:`${Te(n.borderRadius)} ${Te(n.borderRadius)} 0 0`}},[`&${e}-right`]:{[`> ${e}-nav ${e}-tab`]:{borderRadius:{_skip_check_:!0,value:`0 ${Te(n.borderRadius)} ${Te(n.borderRadius)} 0`}}},[`&${e}-left`]:{[`> ${e}-nav ${e}-tab`]:{borderRadius:{_skip_check_:!0,value:`${Te(n.borderRadius)} 0 0 ${Te(n.borderRadius)}`}}}},[`&${e}-large`]:{[`> ${e}-nav`]:{[`${e}-tab`]:{padding:i}}}}}},jOe=n=>{const{componentCls:e,itemActiveColor:t,itemHoverColor:i,iconCls:r,tabsHorizontalItemMargin:o,horizontalItemPadding:s,itemSelectedColor:a,itemColor:l}=n,u=`${e}-tab`;return{[u]:{position:"relative",WebkitTouchCallout:"none",WebkitTapHighlightColor:"transparent",display:"inline-flex",alignItems:"center",padding:s,fontSize:n.titleFontSize,background:"transparent",border:0,outline:"none",cursor:"pointer",color:l,"&-btn, &-remove":Object.assign({"&:focus:not(:focus-visible), &:active":{color:t}},T1(n)),"&-btn":{outline:"none",transition:`all ${n.motionDurationSlow}`,[`${u}-icon:not(:last-child)`]:{marginInlineEnd:n.marginSM}},"&-remove":{flex:"none",marginRight:{_skip_check_:!0,value:n.calc(n.marginXXS).mul(-1).equal()},marginLeft:{_skip_check_:!0,value:n.marginXS},color:n.colorTextDescription,fontSize:n.fontSizeSM,background:"transparent",border:"none",outline:"none",cursor:"pointer",transition:`all ${n.motionDurationSlow}`,"&:hover":{color:n.colorTextHeading}},"&:hover":{color:i},[`&${u}-active ${u}-btn`]:{color:a,textShadow:n.tabsActiveTextShadow},[`&${u}-disabled`]:{color:n.colorTextDisabled,cursor:"not-allowed"},[`&${u}-disabled ${u}-btn, &${u}-disabled ${e}-remove`]:{"&:focus, &:active":{color:n.colorTextDisabled}},[`& ${u}-remove ${r}`]:{margin:0},[`${r}:not(:last-child)`]:{marginRight:{_skip_check_:!0,value:n.marginSM}}},[`${u} + ${u}`]:{margin:{_skip_check_:!0,value:o}}}},QOe=n=>{const{componentCls:e,tabsHorizontalItemMarginRTL:t,iconCls:i,cardGutter:r,calc:o}=n;return{[`${e}-rtl`]:{direction:"rtl",[`${e}-nav`]:{[`${e}-tab`]:{margin:{_skip_check_:!0,value:t},[`${e}-tab:last-of-type`]:{marginLeft:{_skip_check_:!0,value:0}},[i]:{marginRight:{_skip_check_:!0,value:0},marginLeft:{_skip_check_:!0,value:Te(n.marginSM)}},[`${e}-tab-remove`]:{marginRight:{_skip_check_:!0,value:Te(n.marginXS)},marginLeft:{_skip_check_:!0,value:Te(o(n.marginXXS).mul(-1).equal())},[i]:{margin:0}}}},[`&${e}-left`]:{[`> ${e}-nav`]:{order:1},[`> ${e}-content-holder`]:{order:0}},[`&${e}-right`]:{[`> ${e}-nav`]:{order:0},[`> ${e}-content-holder`]:{order:1}},[`&${e}-card${e}-top, &${e}-card${e}-bottom`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-tab + ${e}-tab`]:{marginRight:{_skip_check_:!0,value:r},marginLeft:{_skip_check_:!0,value:0}}}}},[`${e}-dropdown-rtl`]:{direction:"rtl"},[`${e}-menu-item`]:{[`${e}-dropdown-rtl`]:{textAlign:{_skip_check_:!0,value:"right"}}}}},$Oe=n=>{const{componentCls:e,tabsCardPadding:t,cardHeight:i,cardGutter:r,itemHoverColor:o,itemActiveColor:s,colorBorderSecondary:a}=n;return{[e]:Object.assign(Object.assign(Object.assign(Object.assign({},oo(n)),{display:"flex",[`> ${e}-nav, > div > ${e}-nav`]:{position:"relative",display:"flex",flex:"none",alignItems:"center",[`${e}-nav-wrap`]:{position:"relative",display:"flex",flex:"auto",alignSelf:"stretch",overflow:"hidden",whiteSpace:"nowrap",transform:"translate(0)","&::before, &::after":{position:"absolute",zIndex:1,opacity:0,transition:`opacity ${n.motionDurationSlow}`,content:"''",pointerEvents:"none"}},[`${e}-nav-list`]:{position:"relative",display:"flex",transition:`opacity ${n.motionDurationSlow}`},[`${e}-nav-operations`]:{display:"flex",alignSelf:"stretch"},[`${e}-nav-operations-hidden`]:{position:"absolute",visibility:"hidden",pointerEvents:"none"},[`${e}-nav-more`]:{position:"relative",padding:t,background:"transparent",border:0,color:n.colorText,"&::after":{position:"absolute",right:{_skip_check_:!0,value:0},bottom:0,left:{_skip_check_:!0,value:0},height:n.calc(n.controlHeightLG).div(8).equal(),transform:"translateY(100%)",content:"''"}},[`${e}-nav-add`]:Object.assign({minWidth:i,minHeight:i,marginLeft:{_skip_check_:!0,value:r},padding:`0 ${Te(n.paddingXS)}`,background:"transparent",border:`${Te(n.lineWidth)} ${n.lineType} ${a}`,borderRadius:`${Te(n.borderRadiusLG)} ${Te(n.borderRadiusLG)} 0 0`,outline:"none",cursor:"pointer",color:n.colorText,transition:`all ${n.motionDurationSlow} ${n.motionEaseInOut}`,"&:hover":{color:o},"&:active, &:focus:not(:focus-visible)":{color:s}},T1(n))},[`${e}-extra-content`]:{flex:"none"},[`${e}-ink-bar`]:{position:"absolute",background:n.inkBarColor,pointerEvents:"none"}}),jOe(n)),{[`${e}-content`]:{position:"relative",width:"100%"},[`${e}-content-holder`]:{flex:"auto",minWidth:0,minHeight:0},[`${e}-tabpane`]:{outline:"none","&-hidden":{display:"none"}}}),[`${e}-centered`]:{[`> ${e}-nav, > div > ${e}-nav`]:{[`${e}-nav-wrap`]:{[`&:not([class*='${e}-nav-wrap-ping'])`]:{justifyContent:"center"}}}}}},qOe=Oo("Tabs",n=>{const e=Bi(n,{tabsCardPadding:n.cardPadding,dropdownEdgeChildVerticalPadding:n.paddingXXS,tabsActiveTextShadow:"0 0 0.25px currentcolor",tabsDropdownHeight:200,tabsDropdownWidth:120,tabsHorizontalItemMargin:`0 0 0 ${Te(n.horizontalItemGutter)}`,tabsHorizontalItemMarginRTL:`0 0 0 ${Te(n.horizontalItemGutter)}`});return[KOe(e),QOe(e),JOe(e),UOe(e),HOe(e),$Oe(e),YOe(e)]},n=>{const e=n.controlHeightLG;return{zIndexPopup:n.zIndexPopupBase+50,cardBg:n.colorFillAlter,cardHeight:e,cardPadding:`${(e-Math.round(n.fontSize*n.lineHeight))/2-n.lineWidth}px ${n.padding}px`,cardPaddingSM:`${n.paddingXXS*1.5}px ${n.padding}px`,cardPaddingLG:`${n.paddingXS}px ${n.padding}px ${n.paddingXXS*1.5}px`,titleFontSize:n.fontSize,titleFontSizeLG:n.fontSizeLG,titleFontSizeSM:n.fontSize,inkBarColor:n.colorPrimary,horizontalMargin:`0 0 ${n.margin}px 0`,horizontalItemGutter:32,horizontalItemMargin:"",horizontalItemMarginRTL:"",horizontalItemPadding:`${n.paddingSM}px 0`,horizontalItemPaddingSM:`${n.paddingXS}px 0`,horizontalItemPaddingLG:`${n.padding}px 0`,verticalItemPadding:`${n.paddingXS}px ${n.paddingLG}px`,verticalItemMargin:`${n.margin}px 0 0 0`,itemColor:n.colorText,itemSelectedColor:n.colorPrimary,itemHoverColor:n.colorPrimaryHover,itemActiveColor:n.colorPrimaryActive,cardGutter:n.marginXXS/2}}),eBe=()=>null;var tBe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{var e,t,i,r,o,s,a,l;const{type:u,className:c,rootClassName:d,size:h,onEdit:g,hideAdd:m,centered:f,addIcon:b,removeIcon:C,moreIcon:v,popupClassName:w,children:S,items:F,animated:L,style:D,indicatorSize:A,indicator:M}=n,W=tBe(n,["type","className","rootClassName","size","onEdit","hideAdd","centered","addIcon","removeIcon","moreIcon","popupClassName","children","items","animated","style","indicatorSize","indicator"]),{prefixCls:Z}=W,{direction:T,tabs:E,getPrefixCls:V,getPopupContainer:z}=I.useContext(Tn),O=V("tabs",Z),P=ys(O),[B,Y,k]=qOe(O,P);let X;u==="editable-card"&&(X={onEdit:(ce,ye)=>{let{key:fe,event:le}=ye;g==null||g(ce==="add"?le:fe,ce)},removeIcon:(e=C??(E==null?void 0:E.removeIcon))!==null&&e!==void 0?e:I.createElement(Xp,null),addIcon:(b??(E==null?void 0:E.addIcon))||I.createElement(yOe,null),showAdd:m!==!0});const U=V(),R=cc(h),ee=zOe(F,S),oe=POe(O,L),se=Object.assign(Object.assign({},E==null?void 0:E.style),D),ue={align:(t=M==null?void 0:M.align)!==null&&t!==void 0?t:(i=E==null?void 0:E.indicator)===null||i===void 0?void 0:i.align,size:(a=(o=(r=M==null?void 0:M.size)!==null&&r!==void 0?r:A)!==null&&o!==void 0?o:(s=E==null?void 0:E.indicator)===null||s===void 0?void 0:s.size)!==null&&a!==void 0?a:E==null?void 0:E.indicatorSize};return B(I.createElement(VOe,Object.assign({direction:T,getPopupContainer:z,moreTransitionName:`${U}-slide-up`},W,{items:ee,className:Me({[`${O}-${R}`]:R,[`${O}-card`]:["card","editable-card"].includes(u),[`${O}-editable-card`]:u==="editable-card",[`${O}-centered`]:f},E==null?void 0:E.className,c,d,Y,k,P),popupClassName:Me(w,Y,k,P),style:se,editable:X,moreIcon:(l=v??(E==null?void 0:E.moreIcon))!==null&&l!==void 0?l:I.createElement(hP,null),prefixCls:O,animated:oe,indicator:ue})))};Pae.TabPane=eBe;const Oae=Pae;function nBe(n,e,t){var i=t||{},r=i.noTrailing,o=r===void 0?!1:r,s=i.noLeading,a=s===void 0?!1:s,l=i.debounceMode,u=l===void 0?void 0:l,c,d=!1,h=0;function g(){c&&clearTimeout(c)}function m(b){var C=b||{},v=C.upcomingOnly,w=v===void 0?!1:v;g(),d=!w}function f(){for(var b=arguments.length,C=new Array(b),v=0;vn?a?(h=Date.now(),o||(c=setTimeout(u?L:F,n))):F():o!==!0&&(c=setTimeout(u?L:F,u===void 0?n-S:n))}return f.cancel=m,f}function iBe(n,e,t){var i=t||{},r=i.atBegin,o=r===void 0?!1:r;return nBe(n,e,{debounceMode:o!==!1})}const Bae=I.createContext({}),rBe=n=>{const{componentCls:e}=n;return{[e]:{display:"flex",flexFlow:"row wrap",minWidth:0,"&::before, &::after":{display:"flex"},"&-no-wrap":{flexWrap:"nowrap"},"&-start":{justifyContent:"flex-start"},"&-center":{justifyContent:"center"},"&-end":{justifyContent:"flex-end"},"&-space-between":{justifyContent:"space-between"},"&-space-around":{justifyContent:"space-around"},"&-space-evenly":{justifyContent:"space-evenly"},"&-top":{alignItems:"flex-start"},"&-middle":{alignItems:"center"},"&-bottom":{alignItems:"flex-end"}}}},oBe=n=>{const{componentCls:e}=n;return{[e]:{position:"relative",maxWidth:"100%",minHeight:1}}},sBe=(n,e)=>{const{prefixCls:t,componentCls:i,gridColumns:r}=n,o={};for(let s=r;s>=0;s--)s===0?(o[`${i}${e}-${s}`]={display:"none"},o[`${i}-push-${s}`]={insetInlineStart:"auto"},o[`${i}-pull-${s}`]={insetInlineEnd:"auto"},o[`${i}${e}-push-${s}`]={insetInlineStart:"auto"},o[`${i}${e}-pull-${s}`]={insetInlineEnd:"auto"},o[`${i}${e}-offset-${s}`]={marginInlineStart:0},o[`${i}${e}-order-${s}`]={order:0}):(o[`${i}${e}-${s}`]=[{"--ant-display":"block",display:"block"},{display:"var(--ant-display)",flex:`0 0 ${s/r*100}%`,maxWidth:`${s/r*100}%`}],o[`${i}${e}-push-${s}`]={insetInlineStart:`${s/r*100}%`},o[`${i}${e}-pull-${s}`]={insetInlineEnd:`${s/r*100}%`},o[`${i}${e}-offset-${s}`]={marginInlineStart:`${s/r*100}%`},o[`${i}${e}-order-${s}`]={order:s});return o[`${i}${e}-flex`]={flex:`var(--${t}${e}-flex)`},o},RP=(n,e)=>sBe(n,e),aBe=(n,e,t)=>({[`@media (min-width: ${Te(e)})`]:Object.assign({},RP(n,t))}),lBe=()=>({}),uBe=()=>({}),cBe=Oo("Grid",rBe,lBe),dBe=Oo("Grid",n=>{const e=Bi(n,{gridColumns:24}),t={"-sm":e.screenSMMin,"-md":e.screenMDMin,"-lg":e.screenLGMin,"-xl":e.screenXLMin,"-xxl":e.screenXXLMin};return[oBe(e),RP(e,""),RP(e,"-xs"),Object.keys(t).map(i=>aBe(e,t[i],i)).reduce((i,r)=>Object.assign(Object.assign({},i),r),{})]},uBe);var hBe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{const{getPrefixCls:t,direction:i}=I.useContext(Tn),{gutter:r,wrap:o}=I.useContext(Bae),{prefixCls:s,span:a,order:l,offset:u,push:c,pull:d,className:h,children:g,flex:m,style:f}=n,b=hBe(n,["prefixCls","span","order","offset","push","pull","className","children","flex","style"]),C=t("col",s),[v,w,S]=dBe(C),F={};let L={};gBe.forEach(M=>{let W={};const Z=n[M];typeof Z=="number"?W.span=Z:typeof Z=="object"&&(W=Z||{}),delete b[M],L=Object.assign(Object.assign({},L),{[`${C}-${M}-${W.span}`]:W.span!==void 0,[`${C}-${M}-order-${W.order}`]:W.order||W.order===0,[`${C}-${M}-offset-${W.offset}`]:W.offset||W.offset===0,[`${C}-${M}-push-${W.push}`]:W.push||W.push===0,[`${C}-${M}-pull-${W.pull}`]:W.pull||W.pull===0,[`${C}-rtl`]:i==="rtl"}),W.flex&&(L[`${C}-${M}-flex`]=!0,F[`--${C}-${M}-flex`]=zae(W.flex))});const D=Me(C,{[`${C}-${a}`]:a!==void 0,[`${C}-order-${l}`]:l,[`${C}-offset-${u}`]:u,[`${C}-push-${c}`]:c,[`${C}-pull-${d}`]:d},h,L,w,S),A={};if(r&&r[0]>0){const M=r[0]/2;A.paddingLeft=M,A.paddingRight=M}return m&&(A.flex=zae(m),o===!1&&!A.minWidth&&(A.minWidth=0)),v(I.createElement("div",Object.assign({},b,{style:Object.assign(Object.assign(Object.assign({},A),f),F),className:D,ref:e}),g))});var mBe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{if(typeof n=="string"&&i(n),typeof n=="object")for(let o=0;o{r()},[JSON.stringify(n),e]),t}const fBe=I.forwardRef((n,e)=>{const{prefixCls:t,justify:i,align:r,className:o,style:s,children:a,gutter:l=0,wrap:u}=n,c=mBe(n,["prefixCls","justify","align","className","style","children","gutter","wrap"]),{getPrefixCls:d,direction:h}=I.useContext(Tn),[g,m]=I.useState({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),[f,b]=I.useState({xs:!1,sm:!1,md:!1,lg:!1,xl:!1,xxl:!1}),C=Hae(r,f),v=Hae(i,f),w=I.useRef(l),S=DVe();I.useEffect(()=>{const P=S.subscribe(B=>{b(B);const Y=w.current||0;(!Array.isArray(Y)&&typeof Y=="object"||Array.isArray(Y)&&(typeof Y[0]=="object"||typeof Y[1]=="object"))&&m(B)});return()=>S.unsubscribe(P)},[]);const F=()=>{const P=[void 0,void 0];return(Array.isArray(l)?l:[l,void 0]).forEach((Y,k)=>{if(typeof Y=="object")for(let X=0;X0?W[0]/-2:void 0;E&&(T.marginLeft=E,T.marginRight=E);const[V,z]=W;T.rowGap=z;const O=I.useMemo(()=>({gutter:[V,z],wrap:u}),[V,z,u]);return D(I.createElement(Bae.Provider,{value:O},I.createElement("div",Object.assign({},c,{className:Z,style:Object.assign(Object.assign({},T),s),ref:e}),a)))});var pBe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M890.5 755.3L537.9 269.2c-12.8-17.6-39-17.6-51.7 0L133.5 755.3A8 8 0 00140 768h75c5.1 0 9.9-2.5 12.9-6.6L512 369.8l284.1 391.6c3 4.1 7.8 6.6 12.9 6.6h75c6.5 0 10.3-7.4 6.5-12.7z"}}]},name:"up",theme:"outlined"};const bBe=pBe;var CBe=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:bBe}))},vBe=I.forwardRef(CBe);const yBe=vBe;function GP(){return typeof BigInt=="function"}function Uae(n){return!n&&n!==0&&!Number.isNaN(n)||!String(n).trim()}function j1(n){var e=n.trim(),t=e.startsWith("-");t&&(e=e.slice(1)),e=e.replace(/(\.\d*[^0])0*$/,"$1").replace(/\.0*$/,"").replace(/^0+/,""),e.startsWith(".")&&(e="0".concat(e));var i=e||"0",r=i.split("."),o=r[0]||"0",s=r[1]||"0";o==="0"&&s==="0"&&(t=!1);var a=t?"-":"";return{negative:t,negativeStr:a,trimStr:i,integerStr:o,decimalStr:s,fullStr:"".concat(a).concat(i)}}function VP(n){var e=String(n);return!Number.isNaN(Number(e))&&e.includes("e")}function Q1(n){var e=String(n);if(VP(n)){var t=Number(e.slice(e.indexOf("e-")+2)),i=e.match(/\.(\d+)/);return i!=null&&i[1]&&(t+=i[1].length),t}return e.includes(".")&&XP(e)?e.length-e.indexOf(".")-1:0}function jM(n){var e=String(n);if(VP(n)){if(n>Number.MAX_SAFE_INTEGER)return String(GP()?BigInt(n).toString():Number.MAX_SAFE_INTEGER);if(n0&&arguments[0]!==void 0?arguments[0]:!0;return t?this.isInvalidate()?"":j1("".concat(this.getMark()).concat(this.getIntegerStr(),".").concat(this.getDecimalStr())).fullStr:this.origin}}]),n}(),wBe=function(){function n(e){if(Cs(this,n),me(this,"origin",""),me(this,"number",void 0),me(this,"empty",void 0),Uae(e)){this.empty=!0;return}this.origin=String(e),this.number=Number(e)}return vs(n,[{key:"negate",value:function(){return new n(-this.toNumber())}},{key:"add",value:function(t){if(this.isInvalidate())return new n(t);var i=Number(t);if(Number.isNaN(i))return this;var r=this.number+i;if(r>Number.MAX_SAFE_INTEGER)return new n(Number.MAX_SAFE_INTEGER);if(rNumber.MAX_SAFE_INTEGER)return new n(Number.MAX_SAFE_INTEGER);if(r0&&arguments[0]!==void 0?arguments[0]:!0;return t?this.isInvalidate()?"":jM(this.number):this.origin}}]),n}();function eh(n){return GP()?new IBe(n):new wBe(n)}function QM(n,e,t){var i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(n==="")return"";var r=j1(n),o=r.negativeStr,s=r.integerStr,a=r.decimalStr,l="".concat(e).concat(a),u="".concat(o).concat(s);if(t>=0){var c=Number(a[t]);if(c>=5&&!i){var d=eh(n).add("".concat(o,"0.").concat("0".repeat(t)).concat(10-c));return QM(d.toString(),e,t,i)}return t===0?u:"".concat(u).concat(e).concat(a.padEnd(t,"0").slice(0,t))}return l===".0"?u:"".concat(u).concat(l)}function SBe(n){return!!(n.addonBefore||n.addonAfter)}function xBe(n){return!!(n.prefix||n.suffix||n.allowClear)}function Jae(n,e,t){var i=e.cloneNode(!0),r=Object.create(n,{target:{value:i},currentTarget:{value:i}});return i.value=t,typeof e.selectionStart=="number"&&typeof e.selectionEnd=="number"&&(i.selectionStart=e.selectionStart,i.selectionEnd=e.selectionEnd),r}function $M(n,e,t,i){if(t){var r=e;if(e.type==="click"){r=Jae(e,n,""),t(r);return}if(n.type!=="file"&&i!==void 0){r=Jae(e,n,i),t(r);return}t(r)}}function Kae(n,e){if(n){n.focus(e);var t=e||{},i=t.cursor;if(i){var r=n.value.length;switch(i){case"start":n.setSelectionRange(0,0);break;case"end":n.setSelectionRange(r,r);break;default:n.setSelectionRange(0,r)}}}}var PP=function(e){var t,i,r=e.inputElement,o=e.children,s=e.prefixCls,a=e.prefix,l=e.suffix,u=e.addonBefore,c=e.addonAfter,d=e.className,h=e.style,g=e.disabled,m=e.readOnly,f=e.focused,b=e.triggerFocus,C=e.allowClear,v=e.value,w=e.handleReset,S=e.hidden,F=e.classes,L=e.classNames,D=e.dataAttrs,A=e.styles,M=e.components,W=o??r,Z=(M==null?void 0:M.affixWrapper)||"span",T=(M==null?void 0:M.groupWrapper)||"span",E=(M==null?void 0:M.wrapper)||"span",V=(M==null?void 0:M.groupAddon)||"span",z=I.useRef(null),O=function(Ne){var ze;(ze=z.current)!==null&&ze!==void 0&&ze.contains(Ne.target)&&(b==null||b())},P=xBe(e),B=I.cloneElement(W,{value:v,className:Me(W.props.className,!P&&(L==null?void 0:L.variant))||null});if(P){var Y,k=null;if(C){var X,U=!g&&!m&&v,R="".concat(s,"-clear-icon"),ee=Vn(C)==="object"&&C!==null&&C!==void 0&&C.clearIcon?C.clearIcon:"✖";k=Ye.createElement("span",{onClick:w,onMouseDown:function(Ne){return Ne.preventDefault()},className:Me(R,(X={},me(X,"".concat(R,"-hidden"),!U),me(X,"".concat(R,"-has-suffix"),!!l),X)),role:"button",tabIndex:-1},ee)}var oe="".concat(s,"-affix-wrapper"),se=Me(oe,(Y={},me(Y,"".concat(s,"-disabled"),g),me(Y,"".concat(oe,"-disabled"),g),me(Y,"".concat(oe,"-focused"),f),me(Y,"".concat(oe,"-readonly"),m),me(Y,"".concat(oe,"-input-with-clear-btn"),l&&C&&v),Y),F==null?void 0:F.affixWrapper,L==null?void 0:L.affixWrapper,L==null?void 0:L.variant),ue=(l||C)&&Ye.createElement("span",{className:Me("".concat(s,"-suffix"),L==null?void 0:L.suffix),style:A==null?void 0:A.suffix},k,l);B=Ye.createElement(Z,pt({className:se,style:A==null?void 0:A.affixWrapper,onClick:O},D==null?void 0:D.affixWrapper,{ref:z}),a&&Ye.createElement("span",{className:Me("".concat(s,"-prefix"),L==null?void 0:L.prefix),style:A==null?void 0:A.prefix},a),B,ue)}if(SBe(e)){var ce="".concat(s,"-group"),ye="".concat(ce,"-addon"),fe="".concat(ce,"-wrapper"),le=Me("".concat(s,"-wrapper"),ce,F==null?void 0:F.wrapper,L==null?void 0:L.wrapper),Ze=Me(fe,me({},"".concat(fe,"-disabled"),g),F==null?void 0:F.group,L==null?void 0:L.groupWrapper);B=Ye.createElement(T,{className:Ze},Ye.createElement(E,{className:le},u&&Ye.createElement(V,{className:ye},u),B,c&&Ye.createElement(V,{className:ye},c)))}return Ye.cloneElement(B,{className:Me((t=B.props)===null||t===void 0?void 0:t.className,d)||null,style:Se(Se({},(i=B.props)===null||i===void 0?void 0:i.style),h),hidden:S})},LBe=["show"];function jae(n,e){return I.useMemo(function(){var t={};e&&(t.show=Vn(e)==="object"&&e.formatter?e.formatter:!!e),t=Se(Se({},t),n);var i=t,r=i.show,o=zn(i,LBe);return Se(Se({},o),{},{show:!!r,showFormatter:typeof r=="function"?r:void 0,strategy:o.strategy||function(s){return s.length}})},[n,e])}var FBe=["autoComplete","onChange","onFocus","onBlur","onPressEnter","onKeyDown","prefixCls","disabled","htmlSize","className","maxLength","suffix","showCount","count","type","classes","classNames","styles","onCompositionStart","onCompositionEnd"],_Be=I.forwardRef(function(n,e){var t=n.autoComplete,i=n.onChange,r=n.onFocus,o=n.onBlur,s=n.onPressEnter,a=n.onKeyDown,l=n.prefixCls,u=l===void 0?"rc-input":l,c=n.disabled,d=n.htmlSize,h=n.className,g=n.maxLength,m=n.suffix,f=n.showCount,b=n.count,C=n.type,v=C===void 0?"text":C,w=n.classes,S=n.classNames,F=n.styles,L=n.onCompositionStart,D=n.onCompositionEnd,A=zn(n,FBe),M=I.useState(!1),W=we(M,2),Z=W[0],T=W[1],E=I.useRef(!1),V=I.useRef(null),z=function(he){V.current&&Kae(V.current,he)},O=Ur(n.defaultValue,{value:n.value}),P=we(O,2),B=P[0],Y=P[1],k=B==null?"":String(B),X=I.useState(null),U=we(X,2),R=U[0],ee=U[1],oe=jae(b,f),se=oe.max||g,ue=oe.strategy(k),ce=!!se&&ue>se;I.useImperativeHandle(e,function(){return{focus:z,blur:function(){var he;(he=V.current)===null||he===void 0||he.blur()},setSelectionRange:function(he,de,ge){var j;(j=V.current)===null||j===void 0||j.setSelectionRange(he,de,ge)},select:function(){var he;(he=V.current)===null||he===void 0||he.select()},input:V.current}}),I.useEffect(function(){T(function(ot){return ot&&c?!1:ot})},[c]);var ye=function(he,de,ge){var j=de;if(!E.current&&oe.exceedFormatter&&oe.max&&oe.strategy(de)>oe.max){if(j=oe.exceedFormatter(de,{max:oe.max}),de!==j){var Q,q;ee([((Q=V.current)===null||Q===void 0?void 0:Q.selectionStart)||0,((q=V.current)===null||q===void 0?void 0:q.selectionEnd)||0])}}else if(ge.source==="compositionEnd")return;Y(j),V.current&&$M(V.current,he,i,j)};I.useEffect(function(){if(R){var ot;(ot=V.current)===null||ot===void 0||ot.setSelectionRange.apply(ot,_t(R))}},[R]);var fe=function(he){ye(he,he.target.value,{source:"change"})},le=function(he){E.current=!1,ye(he,he.currentTarget.value,{source:"compositionEnd"}),D==null||D(he)},Ze=function(he){s&&he.key==="Enter"&&s(he),a==null||a(he)},ke=function(he){T(!0),r==null||r(he)},Ne=function(he){T(!1),o==null||o(he)},ze=function(he){Y(""),z(),V.current&&$M(V.current,he,i)},Ke=ce&&"".concat(u,"-out-of-range"),ut=function(){var he=ra(n,["prefixCls","onPressEnter","addonBefore","addonAfter","prefix","suffix","allowClear","defaultValue","showCount","count","classes","htmlSize","styles","classNames"]);return Ye.createElement("input",pt({autoComplete:t},he,{onChange:fe,onFocus:ke,onBlur:Ne,onKeyDown:Ze,className:Me(u,me({},"".concat(u,"-disabled"),c),S==null?void 0:S.input),style:F==null?void 0:F.input,ref:V,size:d,type:v,onCompositionStart:function(ge){E.current=!0,L==null||L(ge)},onCompositionEnd:le}))},Ct=function(){var he=Number(se)>0;if(m||oe.show){var de=oe.showFormatter?oe.showFormatter({value:k,count:ue,maxLength:se}):"".concat(ue).concat(he?" / ".concat(se):"");return Ye.createElement(Ye.Fragment,null,oe.show&&Ye.createElement("span",{className:Me("".concat(u,"-show-count-suffix"),me({},"".concat(u,"-show-count-has-suffix"),!!m),S==null?void 0:S.count),style:Se({},F==null?void 0:F.count)},de),m)}return null};return Ye.createElement(PP,pt({},A,{prefixCls:u,className:Me(h,Ke),handleReset:ze,value:k,focused:Z,triggerFocus:z,suffix:Ct(),disabled:c,classes:w,classNames:S,styles:F}),ut())});function DBe(n,e){var t=I.useRef(null);function i(){try{var o=n.selectionStart,s=n.selectionEnd,a=n.value,l=a.substring(0,o),u=a.substring(s);t.current={start:o,end:s,value:a,beforeTxt:l,afterTxt:u}}catch{}}function r(){if(n&&t.current&&e)try{var o=n.value,s=t.current,a=s.beforeTxt,l=s.afterTxt,u=s.start,c=o.length;if(o.endsWith(l))c=o.length-t.current.afterTxt.length;else if(o.startsWith(a))c=a.length;else{var d=a[u-1],h=o.indexOf(d,u-1);h!==-1&&(c=h+1)}n.setSelectionRange(c,c)}catch(g){ia(!1,"Something warning of cursor restore. Please fire issue about this: ".concat(g.message))}}return[i,r]}var ABe=function(){var e=I.useState(!1),t=we(e,2),i=t[0],r=t[1];return lr(function(){r(gM())},[]),i},NBe=200,kBe=600;function MBe(n){var e=n.prefixCls,t=n.upNode,i=n.downNode,r=n.upDisabled,o=n.downDisabled,s=n.onStep,a=I.useRef(),l=I.useRef([]),u=I.useRef();u.current=s;var c=function(){clearTimeout(a.current)},d=function(w,S){w.preventDefault(),c(),u.current(S);function F(){u.current(S),a.current=setTimeout(F,NBe)}a.current=setTimeout(F,kBe)};I.useEffect(function(){return function(){c(),l.current.forEach(function(v){return xi.cancel(v)})}},[]);var h=ABe();if(h)return null;var g="".concat(e,"-handler"),m=Me(g,"".concat(g,"-up"),me({},"".concat(g,"-up-disabled"),r)),f=Me(g,"".concat(g,"-down"),me({},"".concat(g,"-down-disabled"),o)),b=function(){return l.current.push(xi(c))},C={unselectable:"on",role:"button",onMouseUp:b,onMouseLeave:b};return I.createElement("div",{className:"".concat(g,"-wrap")},I.createElement("span",pt({},C,{onMouseDown:function(w){d(w,!0)},"aria-label":"Increase Value","aria-disabled":r,className:m}),t||I.createElement("span",{unselectable:"on",className:"".concat(e,"-handler-up-inner")})),I.createElement("span",pt({},C,{onMouseDown:function(w){d(w,!1)},"aria-label":"Decrease Value","aria-disabled":o,className:f}),i||I.createElement("span",{unselectable:"on",className:"".concat(e,"-handler-down-inner")})))}function Qae(n){var e=typeof n=="number"?jM(n):j1(n).fullStr,t=e.includes(".");return t?j1(e.replace(/(\d)\.(\d)/g,"$1$2.")).fullStr:n+"0"}const ZBe=function(){var n=I.useRef(0),e=function(){xi.cancel(n.current)};return I.useEffect(function(){return e},[]),function(t){e(),n.current=xi(function(){t()})}};var TBe=["prefixCls","className","style","min","max","step","defaultValue","value","disabled","readOnly","upHandler","downHandler","keyboard","changeOnWheel","controls","classNames","stringMode","parser","formatter","precision","decimalSeparator","onChange","onInput","onPressEnter","onStep","changeOnBlur"],EBe=["disabled","style","prefixCls","value","prefix","suffix","addonBefore","addonAfter","className","classNames"],$ae=function(e,t){return e||t.isEmpty()?t.toString():t.toNumber()},qae=function(e){var t=eh(e);return t.isInvalidate()?null:t},WBe=I.forwardRef(function(n,e){var t,i=n.prefixCls,r=i===void 0?"rc-input-number":i,o=n.className,s=n.style,a=n.min,l=n.max,u=n.step,c=u===void 0?1:u,d=n.defaultValue,h=n.value,g=n.disabled,m=n.readOnly,f=n.upHandler,b=n.downHandler,C=n.keyboard,v=n.changeOnWheel,w=v===void 0?!1:v,S=n.controls,F=S===void 0?!0:S;n.classNames;var L=n.stringMode,D=n.parser,A=n.formatter,M=n.precision,W=n.decimalSeparator,Z=n.onChange,T=n.onInput,E=n.onPressEnter,V=n.onStep,z=n.changeOnBlur,O=z===void 0?!0:z,P=zn(n,TBe),B="".concat(r,"-input"),Y=I.useRef(null),k=I.useState(!1),X=we(k,2),U=X[0],R=X[1],ee=I.useRef(!1),oe=I.useRef(!1),se=I.useRef(!1),ue=I.useState(function(){return eh(h??d)}),ce=we(ue,2),ye=ce[0],fe=ce[1];function le(pe){h===void 0&&fe(pe)}var Ze=I.useCallback(function(pe,xe){if(!xe)return M>=0?M:Math.max(Q1(pe),Q1(c))},[M,c]),ke=I.useCallback(function(pe){var xe=String(pe);if(D)return D(xe);var _e=xe;return W&&(_e=_e.replace(W,".")),_e.replace(/[^\w.-]+/g,"")},[D,W]),Ne=I.useRef(""),ze=I.useCallback(function(pe,xe){if(A)return A(pe,{userTyping:xe,input:String(Ne.current)});var _e=typeof pe=="number"?jM(pe):pe;if(!xe){var Pe=Ze(_e,xe);if(XP(_e)&&(W||Pe>=0)){var qe=W||".";_e=QM(_e,qe,Pe)}}return _e},[A,Ze,W]),Ke=I.useState(function(){var pe=d??h;return ye.isInvalidate()&&["string","number"].includes(Vn(pe))?Number.isNaN(pe)?"":pe:ze(ye.toString(),!1)}),ut=we(Ke,2),Ct=ut[0],ot=ut[1];Ne.current=Ct;function he(pe,xe){ot(ze(pe.isInvalidate()?pe.toString(!1):pe.toString(!xe),xe))}var de=I.useMemo(function(){return qae(l)},[l,M]),ge=I.useMemo(function(){return qae(a)},[a,M]),j=I.useMemo(function(){return!de||!ye||ye.isInvalidate()?!1:de.lessEquals(ye)},[de,ye]),Q=I.useMemo(function(){return!ge||!ye||ye.isInvalidate()?!1:ye.lessEquals(ge)},[ge,ye]),q=DBe(Y.current,U),te=we(q,2),Ce=te[0],Le=te[1],Ae=function(xe){return de&&!xe.lessEquals(de)?de:ge&&!ge.lessEquals(xe)?ge:null},Oe=function(xe){return!Ae(xe)},tt=function(xe,_e){var Pe=xe,qe=Oe(Pe)||Pe.isEmpty();if(!Pe.isEmpty()&&!_e&&(Pe=Ae(Pe)||Pe,qe=!0),!m&&!g&&qe){var nt=Pe.toString(),wt=Ze(nt,_e);return wt>=0&&(Pe=eh(QM(nt,".",wt)),Oe(Pe)||(Pe=eh(QM(nt,".",wt,!0)))),Pe.equals(ye)||(le(Pe),Z==null||Z(Pe.isEmpty()?null:$ae(L,Pe)),h===void 0&&he(Pe,_e)),Pe}return ye},We=ZBe(),ht=function pe(xe){if(Ce(),Ne.current=xe,ot(xe),!oe.current){var _e=ke(xe),Pe=eh(_e);Pe.isNaN()||tt(Pe,!0)}T==null||T(xe),We(function(){var qe=xe;D||(qe=xe.replace(/。/g,".")),qe!==xe&&pe(qe)})},He=function(){oe.current=!0},Re=function(){oe.current=!1,ht(Y.current.value)},dt=function(xe){ht(xe.target.value)},yt=function(xe){var _e;if(!(xe&&j||!xe&&Q)){ee.current=!1;var Pe=eh(se.current?Qae(c):c);xe||(Pe=Pe.negate());var qe=(ye||eh(0)).add(Pe.toString()),nt=tt(qe,!1);V==null||V($ae(L,nt),{offset:se.current?Qae(c):c,type:xe?"up":"down"}),(_e=Y.current)===null||_e===void 0||_e.focus()}},Kt=function(xe){var _e=eh(ke(Ct)),Pe=_e;_e.isNaN()?Pe=tt(ye,xe):Pe=tt(_e,xe),h!==void 0?he(ye,!1):Pe.isNaN()||he(Pe,!1)},Wt=function(){ee.current=!0},Ut=function(xe){var _e=xe.key,Pe=xe.shiftKey;ee.current=!0,se.current=Pe,_e==="Enter"&&(oe.current||(ee.current=!1),Kt(!1),E==null||E(xe)),C!==!1&&!oe.current&&["Up","ArrowUp","Down","ArrowDown"].includes(_e)&&(yt(_e==="Up"||_e==="ArrowUp"),xe.preventDefault())},Nn=function(){ee.current=!1,se.current=!1};I.useEffect(function(){if(w&&U){var pe=function(Pe){yt(Pe.deltaY<0),Pe.preventDefault()},xe=Y.current;if(xe)return xe.addEventListener("wheel",pe,{passive:!1}),function(){return xe.removeEventListener("wheel",pe)}}});var di=function(){O&&Kt(!1),R(!1),ee.current=!1};return D1(function(){ye.isInvalidate()||he(ye,!1)},[M,A]),D1(function(){var pe=eh(h);fe(pe);var xe=eh(ke(Ct));(!pe.equals(xe)||!ee.current||A)&&he(pe,ee.current)},[h]),D1(function(){A&&Le()},[Ct]),I.createElement("div",{className:Me(r,o,(t={},me(t,"".concat(r,"-focused"),U),me(t,"".concat(r,"-disabled"),g),me(t,"".concat(r,"-readonly"),m),me(t,"".concat(r,"-not-a-number"),ye.isNaN()),me(t,"".concat(r,"-out-of-range"),!ye.isInvalidate()&&!Oe(ye)),t)),style:s,onFocus:function(){R(!0)},onBlur:di,onKeyDown:Ut,onKeyUp:Nn,onCompositionStart:He,onCompositionEnd:Re,onBeforeInput:Wt},F&&I.createElement(MBe,{prefixCls:r,upNode:f,downNode:b,upDisabled:j,downDisabled:Q,onStep:yt}),I.createElement("div",{className:"".concat(B,"-wrap")},I.createElement("input",pt({autoComplete:"off",role:"spinbutton","aria-valuemin":a,"aria-valuemax":l,"aria-valuenow":ye.isInvalidate()?null:ye.toString(),step:c},P,{ref:Su(Y,e),className:B,value:Ct,onChange:dt,disabled:g,readOnly:m}))))}),ele=I.forwardRef(function(n,e){var t=n.disabled,i=n.style,r=n.prefixCls,o=n.value,s=n.prefix,a=n.suffix,l=n.addonBefore,u=n.addonAfter,c=n.className,d=n.classNames,h=zn(n,EBe),g=I.useRef(null),m=function(b){g.current&&Kae(g.current,b)};return I.createElement(PP,{className:c,triggerFocus:m,prefixCls:r,value:o,disabled:t,style:i,prefix:s,suffix:a,addonAfter:u,addonBefore:l,classNames:d,components:{affixWrapper:"div",groupWrapper:"div",wrapper:"div",groupAddon:"div"}},I.createElement(WBe,pt({prefixCls:r,disabled:t,ref:Su(g,e),className:d==null?void 0:d.input},h)))});ele.displayName="InputNumber";const RBe=n=>{var e;const t=(e=n.handleVisible)!==null&&e!==void 0?e:"auto";return Object.assign(Object.assign({},YM(n)),{controlWidth:90,handleWidth:n.controlHeightSM-n.lineWidth*2,handleFontSize:n.fontSize/2,handleVisible:t,handleActiveBg:n.colorFillAlter,handleBg:n.colorBgContainer,filledHandleBg:new Po(n.colorFillSecondary).onBackground(n.colorBgContainer).toHexString(),handleHoverColor:n.colorPrimary,handleBorderColor:n.colorBorder,handleOpacity:t===!0?1:0})},tle=(n,e)=>{let{componentCls:t,borderRadiusSM:i,borderRadiusLG:r}=n;const o=e==="lg"?r:i;return{[`&-${e}`]:{[`${t}-handler-wrap`]:{borderStartEndRadius:o,borderEndEndRadius:o},[`${t}-handler-up`]:{borderStartEndRadius:o},[`${t}-handler-down`]:{borderEndEndRadius:o}}}},GBe=n=>{const{componentCls:e,lineWidth:t,lineType:i,borderRadius:r,fontSizeLG:o,controlHeightLG:s,controlHeightSM:a,colorError:l,paddingInlineSM:u,paddingBlockSM:c,paddingBlockLG:d,paddingInlineLG:h,colorTextDescription:g,motionDurationMid:m,handleHoverColor:f,paddingInline:b,paddingBlock:C,handleBg:v,handleActiveBg:w,colorTextDisabled:S,borderRadiusSM:F,borderRadiusLG:L,controlWidth:D,handleOpacity:A,handleBorderColor:M,filledHandleBg:W,lineHeightLG:Z,calc:T}=n;return[{[e]:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},oo(n)),HM(n)),{display:"inline-block",width:D,margin:0,padding:0,borderRadius:r}),NP(n,{[`${e}-handler-wrap`]:{background:v,[`${e}-handler-down`]:{borderBlockStart:`${Te(t)} ${i} ${M}`}}})),MP(n,{[`${e}-handler-wrap`]:{background:W,[`${e}-handler-down`]:{borderBlockStart:`${Te(t)} ${i} ${M}`}},"&:focus-within":{[`${e}-handler-wrap`]:{background:v}}})),kP(n)),{"&-rtl":{direction:"rtl",[`${e}-input`]:{direction:"rtl"}},"&-lg":{padding:0,fontSize:o,lineHeight:Z,borderRadius:L,[`input${e}-input`]:{height:T(s).sub(T(t).mul(2)).equal(),padding:`${Te(d)} ${Te(h)}`}},"&-sm":{padding:0,borderRadius:F,[`input${e}-input`]:{height:T(a).sub(T(t).mul(2)).equal(),padding:`${Te(c)} ${Te(u)}`}},"&-out-of-range":{[`${e}-input-wrap`]:{input:{color:l}}},"&-group":Object.assign(Object.assign(Object.assign({},oo(n)),Lae(n)),{"&-wrapper":Object.assign(Object.assign(Object.assign({display:"inline-block",textAlign:"start",verticalAlign:"top",[`${e}-affix-wrapper`]:{width:"100%"},"&-lg":{[`${e}-group-addon`]:{borderRadius:L,fontSize:n.fontSizeLG}},"&-sm":{[`${e}-group-addon`]:{borderRadius:F}}},Cae(n)),wae(n)),{[`&:not(${e}-compact-first-item):not(${e}-compact-last-item)${e}-compact-item`]:{[`${e}, ${e}-group-addon`]:{borderRadius:0}},[`&:not(${e}-compact-last-item)${e}-compact-first-item`]:{[`${e}, ${e}-group-addon`]:{borderStartEndRadius:0,borderEndEndRadius:0}},[`&:not(${e}-compact-first-item)${e}-compact-last-item`]:{[`${e}, ${e}-group-addon`]:{borderStartStartRadius:0,borderEndStartRadius:0}}})}),[`&-disabled ${e}-input`]:{cursor:"not-allowed"},[e]:{"&-input":Object.assign(Object.assign(Object.assign(Object.assign({},oo(n)),{width:"100%",padding:`${Te(C)} ${Te(b)}`,textAlign:"start",backgroundColor:"transparent",border:0,borderRadius:r,outline:0,transition:`all ${m} linear`,appearance:"textfield",fontSize:"inherit"}),ZP(n.colorTextPlaceholder)),{'&[type="number"]::-webkit-inner-spin-button, &[type="number"]::-webkit-outer-spin-button':{margin:0,webkitAppearance:"none",appearance:"none"}})}})},{[e]:Object.assign(Object.assign(Object.assign({[`&:hover ${e}-handler-wrap, &-focused ${e}-handler-wrap`]:{opacity:1},[`${e}-handler-wrap`]:{position:"absolute",insetBlockStart:0,insetInlineEnd:0,width:n.handleWidth,height:"100%",borderStartStartRadius:0,borderStartEndRadius:r,borderEndEndRadius:r,borderEndStartRadius:0,opacity:A,display:"flex",flexDirection:"column",alignItems:"stretch",transition:`opacity ${m} linear ${m}`,[`${e}-handler`]:{display:"flex",alignItems:"center",justifyContent:"center",flex:"auto",height:"40%",[` + ${e}-handler-up-inner, + ${e}-handler-down-inner + `]:{marginInlineEnd:0,fontSize:n.handleFontSize}}},[`${e}-handler`]:{height:"50%",overflow:"hidden",color:g,fontWeight:"bold",lineHeight:0,textAlign:"center",cursor:"pointer",borderInlineStart:`${Te(t)} ${i} ${M}`,transition:`all ${m} linear`,"&:active":{background:w},"&:hover":{height:"60%",[` + ${e}-handler-up-inner, + ${e}-handler-down-inner + `]:{color:f}},"&-up-inner, &-down-inner":Object.assign(Object.assign({},wx()),{color:g,transition:`all ${m} linear`,userSelect:"none"})},[`${e}-handler-up`]:{borderStartEndRadius:r},[`${e}-handler-down`]:{borderEndEndRadius:r}},tle(n,"lg")),tle(n,"sm")),{"&-disabled, &-readonly":{[`${e}-handler-wrap`]:{display:"none"},[`${e}-input`]:{color:"inherit"}},[` + ${e}-handler-up-disabled, + ${e}-handler-down-disabled + `]:{cursor:"not-allowed"},[` + ${e}-handler-up-disabled:hover &-handler-up-inner, + ${e}-handler-down-disabled:hover &-handler-down-inner + `]:{color:S}})}]},VBe=n=>{const{componentCls:e,paddingBlock:t,paddingInline:i,inputAffixPadding:r,controlWidth:o,borderRadiusLG:s,borderRadiusSM:a,paddingInlineLG:l,paddingInlineSM:u,paddingBlockLG:c,paddingBlockSM:d}=n;return{[`${e}-affix-wrapper`]:Object.assign(Object.assign({[`input${e}-input`]:{padding:`${Te(t)} 0`}},HM(n)),{position:"relative",display:"inline-flex",width:o,padding:0,paddingInlineStart:i,"&-lg":{borderRadius:s,paddingInlineStart:l,[`input${e}-input`]:{padding:`${Te(c)} 0`}},"&-sm":{borderRadius:a,paddingInlineStart:u,[`input${e}-input`]:{padding:`${Te(d)} 0`}},[`&:not(${e}-disabled):hover`]:{zIndex:1},"&-focused, &:focus":{zIndex:1},[`&-disabled > ${e}-disabled`]:{background:"transparent"},[`> div${e}`]:{width:"100%",border:"none",outline:"none",[`&${e}-focused`]:{boxShadow:"none !important"}},"&::before":{display:"inline-block",width:0,visibility:"hidden",content:'"\\a0"'},[`${e}-handler-wrap`]:{zIndex:2},[e]:{color:"inherit","&-prefix, &-suffix":{display:"flex",flex:"none",alignItems:"center",pointerEvents:"none"},"&-prefix":{marginInlineEnd:r},"&-suffix":{position:"absolute",insetBlockStart:0,insetInlineEnd:0,zIndex:1,height:"100%",marginInlineEnd:i,marginInlineStart:r}}})}},XBe=Oo("InputNumber",n=>{const e=Bi(n,zM(n));return[GBe(e),VBe(e),Dx(e)]},RBe,{unitless:{handleOpacity:!0}});var PBe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{const{getPrefixCls:t,direction:i}=I.useContext(Tn),r=I.useRef(null);I.useImperativeHandle(e,()=>r.current);const{className:o,rootClassName:s,size:a,disabled:l,prefixCls:u,addonBefore:c,addonAfter:d,prefix:h,bordered:g,readOnly:m,status:f,controls:b,variant:C}=n,v=PBe(n,["className","rootClassName","size","disabled","prefixCls","addonBefore","addonAfter","prefix","bordered","readOnly","status","controls","variant"]),w=t("input-number",u),S=ys(w),[F,L,D]=XBe(w,S),{compactSize:A,compactItemClassnames:M}=Bp(w,i);let W=I.createElement(yBe,{className:`${w}-handler-up-inner`}),Z=I.createElement(Roe,{className:`${w}-handler-down-inner`});const T=typeof b=="boolean"?b:void 0;typeof b=="object"&&(W=typeof b.upIcon>"u"?W:I.createElement("span",{className:`${w}-handler-up-inner`},b.upIcon),Z=typeof b.downIcon>"u"?Z:I.createElement("span",{className:`${w}-handler-down-inner`},b.downIcon));const{hasFeedback:E,status:V,isFormItemInput:z,feedbackIcon:O}=I.useContext(Xa),P=z1(V,f),B=cc(ue=>{var ce;return(ce=a??A)!==null&&ce!==void 0?ce:ue}),Y=I.useContext(Kd),k=l??Y,[X,U]=By(C,g),R=E&&I.createElement(I.Fragment,null,O),ee=Me({[`${w}-lg`]:B==="large",[`${w}-sm`]:B==="small",[`${w}-rtl`]:i==="rtl",[`${w}-in-form-item`]:z},L),oe=`${w}-group`,se=I.createElement(ele,Object.assign({ref:r,disabled:k,className:Me(D,S,o,s,M),upHandler:W,downHandler:Z,prefixCls:w,readOnly:m,controls:T,prefix:h,suffix:R,addonAfter:d&&I.createElement(Jm,null,I.createElement(Ex,{override:!0,status:!0},d)),addonBefore:c&&I.createElement(Jm,null,I.createElement(Ex,{override:!0,status:!0},c)),classNames:{input:ee,variant:Me({[`${w}-${X}`]:U},Yp(w,P,E)),affixWrapper:Me({[`${w}-affix-wrapper-sm`]:B==="small",[`${w}-affix-wrapper-lg`]:B==="large",[`${w}-affix-wrapper-rtl`]:i==="rtl"},L),wrapper:Me({[`${oe}-rtl`]:i==="rtl"},L),groupWrapper:Me({[`${w}-group-wrapper-sm`]:B==="small",[`${w}-group-wrapper-lg`]:B==="large",[`${w}-group-wrapper-rtl`]:i==="rtl",[`${w}-group-wrapper-${X}`]:U},Yp(`${w}-group-wrapper`,P,E),L)}},v));return F(se)}),ile=nle,OBe=n=>I.createElement(W1,{theme:{components:{InputNumber:{handleVisible:!0}}}},I.createElement(nle,Object.assign({},n)));ile._InternalPanelDoNotUseOrYouWillBeFired=OBe;const rle=ile,BBe=n=>{const{getPrefixCls:e,direction:t}=I.useContext(Tn),{prefixCls:i,className:r}=n,o=e("input-group",i),s=e("input"),[a,l]=TP(s),u=Me(o,{[`${o}-lg`]:n.size==="large",[`${o}-sm`]:n.size==="small",[`${o}-compact`]:n.compact,[`${o}-rtl`]:t==="rtl"},l,r),c=I.useContext(Xa),d=I.useMemo(()=>Object.assign(Object.assign({},c),{isFormItemInput:!1}),[c]);return a(I.createElement("span",{className:u,style:n.style,onMouseEnter:n.onMouseEnter,onMouseLeave:n.onMouseLeave,onFocus:n.onFocus,onBlur:n.onBlur},I.createElement(Xa.Provider,{value:d},n.children)))},ole=n=>{let e;return typeof n=="object"&&(n!=null&&n.clearIcon)?e=n:n&&(e={clearIcon:Ye.createElement(R1,null)}),e};function sle(n,e){const t=I.useRef([]),i=()=>{t.current.push(setTimeout(()=>{var r,o,s,a;!((r=n.current)===null||r===void 0)&&r.input&&((o=n.current)===null||o===void 0?void 0:o.input.getAttribute("type"))==="password"&&(!((s=n.current)===null||s===void 0)&&s.input.hasAttribute("value"))&&((a=n.current)===null||a===void 0||a.input.removeAttribute("value"))}))};return I.useEffect(()=>(e&&i(),()=>t.current.forEach(r=>{r&&clearTimeout(r)})),[]),i}function zBe(n){return!!(n.prefix||n.suffix||n.allowClear||n.showCount)}var YBe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{var t;const{prefixCls:i,bordered:r=!0,status:o,size:s,disabled:a,onBlur:l,onFocus:u,suffix:c,allowClear:d,addonAfter:h,addonBefore:g,className:m,style:f,styles:b,rootClassName:C,onChange:v,classNames:w,variant:S}=n,F=YBe(n,["prefixCls","bordered","status","size","disabled","onBlur","onFocus","suffix","allowClear","addonAfter","addonBefore","className","style","styles","rootClassName","onChange","classNames","variant"]),{getPrefixCls:L,direction:D,input:A}=Ye.useContext(Tn),M=L("input",i),W=I.useRef(null),Z=ys(M),[T,E,V]=TP(M,Z),{compactSize:z,compactItemClassnames:O}=Bp(M,D),P=cc(ke=>{var Ne;return(Ne=s??z)!==null&&Ne!==void 0?Ne:ke}),B=Ye.useContext(Kd),Y=a??B,{status:k,hasFeedback:X,feedbackIcon:U}=I.useContext(Xa),R=z1(k,o),ee=zBe(n)||!!X;I.useRef(ee);const oe=sle(W,!0),se=ke=>{oe(),l==null||l(ke)},ue=ke=>{oe(),u==null||u(ke)},ce=ke=>{oe(),v==null||v(ke)},ye=(X||c)&&Ye.createElement(Ye.Fragment,null,c,X&&U),fe=ole(d??(A==null?void 0:A.allowClear)),[le,Ze]=By(S,r);return T(Ye.createElement(_Be,Object.assign({ref:Su(e,W),prefixCls:M,autoComplete:A==null?void 0:A.autoComplete},F,{disabled:Y,onBlur:se,onFocus:ue,style:Object.assign(Object.assign({},A==null?void 0:A.style),f),styles:Object.assign(Object.assign({},A==null?void 0:A.styles),b),suffix:ye,allowClear:fe,className:Me(m,C,V,Z,O,A==null?void 0:A.className),onChange:ce,addonAfter:h&&Ye.createElement(Jm,null,Ye.createElement(Ex,{override:!0,status:!0},h)),addonBefore:g&&Ye.createElement(Jm,null,Ye.createElement(Ex,{override:!0,status:!0},g)),classNames:Object.assign(Object.assign(Object.assign({},w),A==null?void 0:A.classNames),{input:Me({[`${M}-sm`]:P==="small",[`${M}-lg`]:P==="large",[`${M}-rtl`]:D==="rtl"},w==null?void 0:w.input,(t=A==null?void 0:A.classNames)===null||t===void 0?void 0:t.input,E),variant:Me({[`${M}-${le}`]:Ze},Yp(M,R)),affixWrapper:Me({[`${M}-affix-wrapper-sm`]:P==="small",[`${M}-affix-wrapper-lg`]:P==="large",[`${M}-affix-wrapper-rtl`]:D==="rtl"},E),wrapper:Me({[`${M}-group-rtl`]:D==="rtl"},E),groupWrapper:Me({[`${M}-group-wrapper-sm`]:P==="small",[`${M}-group-wrapper-lg`]:P==="large",[`${M}-group-wrapper-rtl`]:D==="rtl",[`${M}-group-wrapper-${le}`]:Ze},Yp(`${M}-group-wrapper`,R,X),E)})})))}),UBe=n=>{const{componentCls:e,paddingXS:t}=n;return{[`${e}`]:{display:"inline-flex",alignItems:"center",flexWrap:"nowrap",columnGap:t,"&-rtl":{direction:"rtl"},[`${e}-input`]:{textAlign:"center",paddingInline:n.paddingXXS},[`&${e}-sm ${e}-input`]:{paddingInline:n.calc(n.paddingXXS).div(2).equal()},[`&${e}-lg ${e}-input`]:{paddingInline:n.paddingXS}}}},JBe=Oo(["Input","OTP"],n=>{const e=Bi(n,zM(n));return[UBe(e)]},YM);var KBe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{const{value:t,onChange:i,onActiveChange:r,index:o}=n,s=KBe(n,["value","onChange","onActiveChange","index"]),a=h=>{i(o,h.target.value)},l=I.useRef(null);I.useImperativeHandle(e,()=>l.current);const u=()=>{xi(()=>{var h;const g=(h=l.current)===null||h===void 0?void 0:h.input;document.activeElement===g&&g&&g.select()})},c=h=>{let{key:g}=h;g==="ArrowLeft"?r(o-1):g==="ArrowRight"&&r(o+1),u()},d=h=>{h.key==="Backspace"&&!t&&r(o-1),u()};return I.createElement(qM,Object.assign({},s,{ref:l,value:t,onInput:a,onFocus:u,onKeyDown:c,onKeyUp:d,onMouseDown:u,onMouseUp:u}))});var QBe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{const{prefixCls:t,length:i=6,size:r,defaultValue:o,value:s,onChange:a,formatter:l,variant:u,disabled:c,status:d,autoFocus:h}=n,g=QBe(n,["prefixCls","length","size","defaultValue","value","onChange","formatter","variant","disabled","status","autoFocus"]),{getPrefixCls:m,direction:f}=I.useContext(Tn),b=m("otp",t),C=xu(g,{aria:!0,data:!0,attr:!0}),v=ys(b),[w,S,F]=JBe(b,v),L=cc(k=>r??k),D=I.useContext(Xa),A=z1(D.status,d),M=I.useMemo(()=>Object.assign(Object.assign({},D),{status:A,hasFeedback:!1,feedbackIcon:null}),[D,A]),W=I.useRef(null),Z=I.useRef({});I.useImperativeHandle(e,()=>({focus:()=>{var k;(k=Z.current[0])===null||k===void 0||k.focus()},blur:()=>{var k;for(let X=0;Xl?l(k):k,[E,V]=I.useState(eZ(T(o||"")));I.useEffect(()=>{s!==void 0&&V(eZ(s))},[s]);const z=Ki(k=>{V(k),a&&k.length===i&&k.every(X=>X)&&k.some((X,U)=>E[U]!==X)&&a(k.join(""))}),O=Ki((k,X)=>{let U=_t(E);for(let ee=0;ee=0&&!U[ee];ee-=1)U.pop();const R=T(U.map(ee=>ee||" ").join(""));return U=eZ(R).map((ee,oe)=>ee===" "&&!U[oe]?U[oe]:ee),U}),P=(k,X)=>{var U;const R=O(k,X),ee=Math.min(k+X.length,i-1);ee!==k&&((U=Z.current[ee])===null||U===void 0||U.focus()),z(R)},B=k=>{var X;(X=Z.current[k])===null||X===void 0||X.focus()},Y={variant:u,disabled:c,status:A};return w(I.createElement("div",Object.assign({},C,{ref:W,className:Me(b,{[`${b}-sm`]:L==="small",[`${b}-lg`]:L==="large",[`${b}-rtl`]:f==="rtl"},F,S)}),I.createElement(Xa.Provider,{value:M},new Array(i).fill(0).map((k,X)=>{const U=`otp-${X}`,R=E[X]||"";return I.createElement(jBe,Object.assign({ref:ee=>{Z.current[X]=ee},key:U,index:X,size:L,htmlSize:1,className:`${b}-input`,onChange:P,value:R,onActiveChange:B,autoFocus:X===0&&h},Y))}))))});var qBe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M942.2 486.2Q889.47 375.11 816.7 305l-50.88 50.88C807.31 395.53 843.45 447.4 874.7 512 791.5 684.2 673.4 766 512 766q-72.67 0-133.87-22.38L323 798.75Q408 838 512 838q288.3 0 430.2-300.3a60.29 60.29 0 000-51.5zm-63.57-320.64L836 122.88a8 8 0 00-11.32 0L715.31 232.2Q624.86 186 512 186q-288.3 0-430.2 300.3a60.3 60.3 0 000 51.5q56.69 119.4 136.5 191.41L112.48 835a8 8 0 000 11.31L155.17 889a8 8 0 0011.31 0l712.15-712.12a8 8 0 000-11.32zM149.3 512C232.6 339.8 350.7 258 512 258c54.54 0 104.13 9.36 149.12 28.39l-70.3 70.3a176 176 0 00-238.13 238.13l-83.42 83.42C223.1 637.49 183.3 582.28 149.3 512zm246.7 0a112.11 112.11 0 01146.2-106.69L401.31 546.2A112 112 0 01396 512z"}},{tag:"path",attrs:{d:"M508 624c-3.46 0-6.87-.16-10.25-.47l-52.82 52.82a176.09 176.09 0 00227.42-227.42l-52.82 52.82c.31 3.38.47 6.79.47 10.25a111.94 111.94 0 01-112 112z"}}]},name:"eye-invisible",theme:"outlined"};const eze=qBe;var tze=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:eze}))},nze=I.forwardRef(tze);const ize=nze;var rze={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M942.2 486.2C847.4 286.5 704.1 186 512 186c-192.2 0-335.4 100.5-430.2 300.3a60.3 60.3 0 000 51.5C176.6 737.5 319.9 838 512 838c192.2 0 335.4-100.5 430.2-300.3 7.7-16.2 7.7-35 0-51.5zM512 766c-161.3 0-279.4-81.8-362.7-254C232.6 339.8 350.7 258 512 258c161.3 0 279.4 81.8 362.7 254C791.5 684.2 673.4 766 512 766zm-4-430c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm0 288c-61.9 0-112-50.1-112-112s50.1-112 112-112 112 50.1 112 112-50.1 112-112 112z"}}]},name:"eye",theme:"outlined"};const oze=rze;var sze=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:oze}))},aze=I.forwardRef(sze);const ale=aze;var lze=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);rn?I.createElement(ale,null):I.createElement(ize,null),cze={click:"onClick",hover:"onMouseOver"},dze=I.forwardRef((n,e)=>{const{visibilityToggle:t=!0}=n,i=typeof t=="object"&&t.visible!==void 0,[r,o]=I.useState(()=>i?t.visible:!1),s=I.useRef(null);I.useEffect(()=>{i&&o(t.visible)},[i,t]);const a=sle(s),l=()=>{const{disabled:F}=n;F||(r&&a(),o(L=>{var D;const A=!L;return typeof t=="object"&&((D=t.onVisibleChange)===null||D===void 0||D.call(t,A)),A}))},u=F=>{const{action:L="click",iconRender:D=uze}=n,A=cze[L]||"",M=D(r),W={[A]:l,className:`${F}-icon`,key:"passwordIcon",onMouseDown:Z=>{Z.preventDefault()},onMouseUp:Z=>{Z.preventDefault()}};return I.cloneElement(I.isValidElement(M)?M:I.createElement("span",null,M),W)},{className:c,prefixCls:d,inputPrefixCls:h,size:g}=n,m=lze(n,["className","prefixCls","inputPrefixCls","size"]),{getPrefixCls:f}=I.useContext(Tn),b=f("input",h),C=f("input-password",d),v=t&&u(C),w=Me(C,c,{[`${C}-${g}`]:!!g}),S=Object.assign(Object.assign({},ra(m,["suffix","iconRender","visibilityToggle"])),{type:r?"text":"password",className:w,prefixCls:b,suffix:v});return g&&(S.size=g),I.createElement(qM,Object.assign({ref:Su(e,s)},S))});var hze=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{const{prefixCls:t,inputPrefixCls:i,className:r,size:o,suffix:s,enterButton:a=!1,addonAfter:l,loading:u,disabled:c,onSearch:d,onChange:h,onCompositionStart:g,onCompositionEnd:m}=n,f=hze(n,["prefixCls","inputPrefixCls","className","size","suffix","enterButton","addonAfter","loading","disabled","onSearch","onChange","onCompositionStart","onCompositionEnd"]),{getPrefixCls:b,direction:C}=I.useContext(Tn),v=I.useRef(!1),w=b("input-search",t),S=b("input",i),{compactSize:F}=Bp(w,C),L=cc(k=>{var X;return(X=o??F)!==null&&X!==void 0?X:k}),D=I.useRef(null),A=k=>{k&&k.target&&k.type==="click"&&d&&d(k.target.value,k,{source:"clear"}),h&&h(k)},M=k=>{var X;document.activeElement===((X=D.current)===null||X===void 0?void 0:X.input)&&k.preventDefault()},W=k=>{var X,U;d&&d((U=(X=D.current)===null||X===void 0?void 0:X.input)===null||U===void 0?void 0:U.value,k,{source:"input"})},Z=k=>{v.current||u||W(k)},T=typeof a=="boolean"?I.createElement(Goe,null):null,E=`${w}-button`;let V;const z=a||{},O=z.type&&z.type.__ANT_BUTTON===!0;O||z.type==="button"?V=jl(z,Object.assign({onMouseDown:M,onClick:k=>{var X,U;(U=(X=z==null?void 0:z.props)===null||X===void 0?void 0:X.onClick)===null||U===void 0||U.call(X,k),W(k)},key:"enterButton"},O?{className:E,size:L}:{})):V=I.createElement(so,{className:E,type:a?"primary":void 0,size:L,disabled:c,key:"enterButton",onMouseDown:M,onClick:W,loading:u,icon:T},a),l&&(V=[V,jl(l,{key:"addonAfter"})]);const P=Me(w,{[`${w}-rtl`]:C==="rtl",[`${w}-${L}`]:!!L,[`${w}-with-button`]:!!a},r),B=k=>{v.current=!0,g==null||g(k)},Y=k=>{v.current=!1,m==null||m(k)};return I.createElement(qM,Object.assign({ref:Su(D,e),onPressEnter:Z},f,{size:L,onCompositionStart:B,onCompositionEnd:Y,prefixCls:S,addonAfter:V,suffix:s,onChange:A,className:P,disabled:c}))});var mze=` + min-height:0 !important; + max-height:none !important; + height:0 !important; + visibility:hidden !important; + overflow:hidden !important; + position:absolute !important; + z-index:-1000 !important; + top:0 !important; + right:0 !important; + pointer-events: none !important; +`,fze=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","font-variant","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break","white-space"],OP={},ed;function pze(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,t=n.getAttribute("id")||n.getAttribute("data-reactid")||n.getAttribute("name");if(e&&OP[t])return OP[t];var i=window.getComputedStyle(n),r=i.getPropertyValue("box-sizing")||i.getPropertyValue("-moz-box-sizing")||i.getPropertyValue("-webkit-box-sizing"),o=parseFloat(i.getPropertyValue("padding-bottom"))+parseFloat(i.getPropertyValue("padding-top")),s=parseFloat(i.getPropertyValue("border-bottom-width"))+parseFloat(i.getPropertyValue("border-top-width")),a=fze.map(function(u){return"".concat(u,":").concat(i.getPropertyValue(u))}).join(";"),l={sizingStyle:a,paddingSize:o,borderSize:s,boxSizing:r};return e&&t&&(OP[t]=l),l}function bze(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;ed||(ed=document.createElement("textarea"),ed.setAttribute("tab-index","-1"),ed.setAttribute("aria-hidden","true"),document.body.appendChild(ed)),n.getAttribute("wrap")?ed.setAttribute("wrap",n.getAttribute("wrap")):ed.removeAttribute("wrap");var r=pze(n,e),o=r.paddingSize,s=r.borderSize,a=r.boxSizing,l=r.sizingStyle;ed.setAttribute("style","".concat(l,";").concat(mze)),ed.value=n.value||n.placeholder||"";var u=void 0,c=void 0,d,h=ed.scrollHeight;if(a==="border-box"?h+=s:a==="content-box"&&(h-=o),t!==null||i!==null){ed.value=" ";var g=ed.scrollHeight-o;t!==null&&(u=g*t,a==="border-box"&&(u=u+o+s),h=Math.max(u,h)),i!==null&&(c=g*i,a==="border-box"&&(c=c+o+s),d=h>c?"":"hidden",h=Math.min(c,h))}var m={height:h,overflowY:d,resize:"none"};return u&&(m.minHeight=u),c&&(m.maxHeight=c),m}var Cze=["prefixCls","onPressEnter","defaultValue","value","autoSize","onResize","className","style","disabled","onChange","onInternalAutoSize"],BP=0,zP=1,YP=2,vze=I.forwardRef(function(n,e){var t=n,i=t.prefixCls;t.onPressEnter;var r=t.defaultValue,o=t.value,s=t.autoSize,a=t.onResize,l=t.className,u=t.style,c=t.disabled,d=t.onChange;t.onInternalAutoSize;var h=zn(t,Cze),g=Ur(r,{value:o,postState:function(ee){return ee??""}}),m=we(g,2),f=m[0],b=m[1],C=function(ee){b(ee.target.value),d==null||d(ee)},v=I.useRef();I.useImperativeHandle(e,function(){return{textArea:v.current}});var w=I.useMemo(function(){return s&&Vn(s)==="object"?[s.minRows,s.maxRows]:[]},[s]),S=we(w,2),F=S[0],L=S[1],D=!!s,A=function(){try{if(document.activeElement===v.current){var ee=v.current,oe=ee.selectionStart,se=ee.selectionEnd,ue=ee.scrollTop;v.current.setSelectionRange(oe,se),v.current.scrollTop=ue}}catch{}},M=I.useState(YP),W=we(M,2),Z=W[0],T=W[1],E=I.useState(),V=we(E,2),z=V[0],O=V[1],P=function(){T(BP)};lr(function(){D&&P()},[o,F,L,D]),lr(function(){if(Z===BP)T(zP);else if(Z===zP){var R=bze(v.current,!1,F,L);T(YP),O(R)}else A()},[Z]);var B=I.useRef(),Y=function(){xi.cancel(B.current)},k=function(ee){Z===YP&&(a==null||a(ee),s&&(Y(),B.current=xi(function(){P()})))};I.useEffect(function(){return Y},[]);var X=D?z:null,U=Se(Se({},u),X);return(Z===BP||Z===zP)&&(U.overflowY="hidden",U.overflowX="hidden"),I.createElement(ac,{onResize:k,disabled:!(s||a)},I.createElement("textarea",pt({},h,{ref:v,style:U,className:Me(i,l,me({},"".concat(i,"-disabled"),c)),disabled:c,value:f,onChange:C})))}),yze=["defaultValue","value","onFocus","onBlur","onChange","allowClear","maxLength","onCompositionStart","onCompositionEnd","suffix","prefixCls","showCount","count","className","style","disabled","hidden","classNames","styles","onResize"],Ize=Ye.forwardRef(function(n,e){var t,i,r=n.defaultValue,o=n.value,s=n.onFocus,a=n.onBlur,l=n.onChange,u=n.allowClear,c=n.maxLength,d=n.onCompositionStart,h=n.onCompositionEnd,g=n.suffix,m=n.prefixCls,f=m===void 0?"rc-textarea":m,b=n.showCount,C=n.count,v=n.className,w=n.style,S=n.disabled,F=n.hidden,L=n.classNames,D=n.styles,A=n.onResize,M=zn(n,yze),W=Ur(r,{value:o,defaultValue:r}),Z=we(W,2),T=Z[0],E=Z[1],V=T==null?"":String(T),z=Ye.useState(!1),O=we(z,2),P=O[0],B=O[1],Y=Ye.useRef(!1),k=Ye.useState(null),X=we(k,2),U=X[0],R=X[1],ee=I.useRef(null),oe=function(){var Ae;return(Ae=ee.current)===null||Ae===void 0?void 0:Ae.textArea},se=function(){oe().focus()};I.useImperativeHandle(e,function(){return{resizableTextArea:ee.current,focus:se,blur:function(){oe().blur()}}}),I.useEffect(function(){B(function(Le){return!S&&Le})},[S]);var ue=Ye.useState(null),ce=we(ue,2),ye=ce[0],fe=ce[1];Ye.useEffect(function(){if(ye){var Le;(Le=oe()).setSelectionRange.apply(Le,_t(ye))}},[ye]);var le=jae(C,b),Ze=(t=le.max)!==null&&t!==void 0?t:c,ke=Number(Ze)>0,Ne=le.strategy(V),ze=!!Ze&&Ne>Ze,Ke=function(Ae,Oe){var tt=Oe;!Y.current&&le.exceedFormatter&&le.max&&le.strategy(Oe)>le.max&&(tt=le.exceedFormatter(Oe,{max:le.max}),Oe!==tt&&fe([oe().selectionStart||0,oe().selectionEnd||0])),E(tt),$M(Ae.currentTarget,Ae,l,tt)},ut=function(Ae){Y.current=!0,d==null||d(Ae)},Ct=function(Ae){Y.current=!1,Ke(Ae,Ae.currentTarget.value),h==null||h(Ae)},ot=function(Ae){Ke(Ae,Ae.target.value)},he=function(Ae){var Oe=M.onPressEnter,tt=M.onKeyDown;Ae.key==="Enter"&&Oe&&Oe(Ae),tt==null||tt(Ae)},de=function(Ae){B(!0),s==null||s(Ae)},ge=function(Ae){B(!1),a==null||a(Ae)},j=function(Ae){E(""),se(),$M(oe(),Ae,l)},Q=g,q;le.show&&(le.showFormatter?q=le.showFormatter({value:V,count:Ne,maxLength:Ze}):q="".concat(Ne).concat(ke?" / ".concat(Ze):""),Q=Ye.createElement(Ye.Fragment,null,Q,Ye.createElement("span",{className:Me("".concat(f,"-data-count"),L==null?void 0:L.count),style:D==null?void 0:D.count},q)));var te=function(Ae){var Oe;A==null||A(Ae),(Oe=oe())!==null&&Oe!==void 0&&Oe.style.height&&R(!0)},Ce=!M.autoSize&&!b&&!u;return Ye.createElement(PP,{value:V,allowClear:u,handleReset:j,suffix:Q,prefixCls:f,classNames:Se(Se({},L),{},{affixWrapper:Me(L==null?void 0:L.affixWrapper,(i={},me(i,"".concat(f,"-show-count"),b),me(i,"".concat(f,"-textarea-allow-clear"),u),i))}),disabled:S,focused:P,className:Me(v,ze&&"".concat(f,"-out-of-range")),style:Se(Se({},w),U&&!Ce?{height:"auto"}:{}),dataAttrs:{affixWrapper:{"data-count":typeof q=="string"?q:void 0}},hidden:F},Ye.createElement(vze,pt({},M,{maxLength:c,onKeyDown:he,onChange:ot,onFocus:de,onBlur:ge,onCompositionStart:ut,onCompositionEnd:Ct,className:Me(L==null?void 0:L.textarea),style:Se(Se({},D==null?void 0:D.textarea),{},{resize:w==null?void 0:w.resize}),disabled:S,prefixCls:f,onResize:te,ref:ee})))}),wze=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{var t,i;const{prefixCls:r,bordered:o=!0,size:s,disabled:a,status:l,allowClear:u,classNames:c,rootClassName:d,className:h,style:g,styles:m,variant:f}=n,b=wze(n,["prefixCls","bordered","size","disabled","status","allowClear","classNames","rootClassName","className","style","styles","variant"]),{getPrefixCls:C,direction:v,textArea:w}=I.useContext(Tn),S=cc(s),F=I.useContext(Kd),L=a??F,{status:D,hasFeedback:A,feedbackIcon:M}=I.useContext(Xa),W=z1(D,l),Z=I.useRef(null);I.useImperativeHandle(e,()=>{var k;return{resizableTextArea:(k=Z.current)===null||k===void 0?void 0:k.resizableTextArea,focus:X=>{var U,R;HBe((R=(U=Z.current)===null||U===void 0?void 0:U.resizableTextArea)===null||R===void 0?void 0:R.textArea,X)},blur:()=>{var X;return(X=Z.current)===null||X===void 0?void 0:X.blur()}}});const T=C("input",r),E=ys(T),[V,z,O]=TP(T,E),[P,B]=By(f,o),Y=ole(u??(w==null?void 0:w.allowClear));return V(I.createElement(Ize,Object.assign({autoComplete:w==null?void 0:w.autoComplete},b,{style:Object.assign(Object.assign({},w==null?void 0:w.style),g),styles:Object.assign(Object.assign({},w==null?void 0:w.styles),m),disabled:L,allowClear:Y,className:Me(O,E,h,d,w==null?void 0:w.className),classNames:Object.assign(Object.assign(Object.assign({},c),w==null?void 0:w.classNames),{textarea:Me({[`${T}-sm`]:S==="small",[`${T}-lg`]:S==="large"},z,c==null?void 0:c.textarea,(t=w==null?void 0:w.classNames)===null||t===void 0?void 0:t.textarea),variant:Me({[`${T}-${P}`]:B},Yp(T,W)),affixWrapper:Me(`${T}-textarea-affix-wrapper`,{[`${T}-affix-wrapper-rtl`]:v==="rtl",[`${T}-affix-wrapper-sm`]:S==="small",[`${T}-affix-wrapper-lg`]:S==="large",[`${T}-textarea-show-count`]:n.showCount||((i=n.count)===null||i===void 0?void 0:i.show)},z)}),prefixCls:T,suffix:A&&I.createElement("span",{className:`${T}-textarea-suffix`},M),ref:Z})))}),nI=qM;nI.Group=BBe,nI.Search=gze,nI.TextArea=Sze,nI.Password=dze,nI.OTP=$Be;const th=nI;var xze={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M880 184H712v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H384v-64c0-4.4-3.6-8-8-8h-56c-4.4 0-8 3.6-8 8v64H144c-17.7 0-32 14.3-32 32v664c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V216c0-17.7-14.3-32-32-32zm-40 656H184V460h656v380zM184 392V256h128v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h256v48c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8v-48h128v136H184z"}}]},name:"calendar",theme:"outlined"};const Lze=xze;var Fze=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:Lze}))},_ze=I.forwardRef(Fze);const lle=_ze;var Dze={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M686.7 638.6L544.1 535.5V288c0-4.4-3.6-8-8-8H488c-4.4 0-8 3.6-8 8v275.4c0 2.6 1.2 5 3.3 6.5l165.4 120.6c3.6 2.6 8.6 1.8 11.2-1.7l28.6-39c2.6-3.7 1.8-8.7-1.8-11.2z"}}]},name:"clock-circle",theme:"outlined"};const Aze=Dze;var Nze=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:Aze}))},kze=I.forwardRef(Nze);const ule=kze;var Mze={icon:{tag:"svg",attrs:{viewBox:"0 0 1024 1024",focusable:"false"},children:[{tag:"path",attrs:{d:"M873.1 596.2l-164-208A32 32 0 00684 376h-64.8c-6.7 0-10.4 7.7-6.3 13l144.3 183H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h695.9c26.8 0 41.7-30.8 25.2-51.8z"}}]},name:"swap-right",theme:"outlined"};const Zze=Mze;var Tze=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:Zze}))},Eze=I.forwardRef(Tze);const Wze=Eze;function Rze(n,e,t){return t!==void 0?t:e==="year"&&n.lang.yearPlaceholder?n.lang.yearPlaceholder:e==="quarter"&&n.lang.quarterPlaceholder?n.lang.quarterPlaceholder:e==="month"&&n.lang.monthPlaceholder?n.lang.monthPlaceholder:e==="week"&&n.lang.weekPlaceholder?n.lang.weekPlaceholder:e==="time"&&n.timePickerLocale.placeholder?n.timePickerLocale.placeholder:n.lang.placeholder}function Gze(n,e,t){return t!==void 0?t:e==="year"&&n.lang.yearPlaceholder?n.lang.rangeYearPlaceholder:e==="quarter"&&n.lang.quarterPlaceholder?n.lang.rangeQuarterPlaceholder:e==="month"&&n.lang.monthPlaceholder?n.lang.rangeMonthPlaceholder:e==="week"&&n.lang.weekPlaceholder?n.lang.rangeWeekPlaceholder:e==="time"&&n.timePickerLocale.placeholder?n.timePickerLocale.rangePlaceholder:n.lang.rangePlaceholder}function HP(n,e){const t={adjustX:1,adjustY:1};switch(e){case"bottomLeft":return{points:["tl","bl"],offset:[0,4],overflow:t};case"bottomRight":return{points:["tr","br"],offset:[0,4],overflow:t};case"topLeft":return{points:["bl","tl"],offset:[0,-4],overflow:t};case"topRight":return{points:["br","tr"],offset:[0,-4],overflow:t};default:return{points:n==="rtl"?["tr","br"]:["tl","bl"],offset:[0,4],overflow:t}}}function cle(n,e){const{allowClear:t=!0}=n,{clearIcon:i,removeIcon:r}=Voe(Object.assign(Object.assign({},n),{prefixCls:e,componentName:"DatePicker"}));return[I.useMemo(()=>t===!1?!1:Object.assign({clearIcon:i},t===!0?{}:t),[t,i]),r]}function Vze(n){return I.createElement(so,Object.assign({size:"small",type:"primary"},n))}function dle(n){return I.useMemo(()=>Object.assign({button:Vze},n),[n])}var Xze=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{var r;const{prefixCls:o,getPopupContainer:s,components:a,className:l,style:u,placement:c,size:d,disabled:h,bordered:g=!0,placeholder:m,popupClassName:f,dropdownClassName:b,status:C,rootClassName:v,variant:w}=t,S=Xze(t,["prefixCls","getPopupContainer","components","className","style","placement","size","disabled","bordered","placeholder","popupClassName","dropdownClassName","status","rootClassName","variant"]),F=I.useRef(null),{getPrefixCls:L,direction:D,getPopupContainer:A,rangePicker:M}=I.useContext(Tn),W=L("picker",o),{compactSize:Z,compactItemClassnames:T}=Bp(W,D),{picker:E}=t,V=L(),[z,O]=By(w,g),P=ys(W),[B,Y,k]=Fae(W,P),[X]=cle(t,W),U=dle(a),R=cc(Ne=>{var ze;return(ze=d??Z)!==null&&ze!==void 0?ze:Ne}),ee=I.useContext(Kd),oe=h??ee,se=I.useContext(Xa),{hasFeedback:ue,status:ce,feedbackIcon:ye}=se,fe=I.createElement(I.Fragment,null,E==="time"?I.createElement(ule,null):I.createElement(lle,null),ue&&ye);I.useImperativeHandle(i,()=>F.current);const[le]=Wp("Calendar",Dk),Ze=Object.assign(Object.assign({},le),t.locale),[ke]=V1("DatePicker",(r=t.popupStyle)===null||r===void 0?void 0:r.zIndex);return B(I.createElement(Jm,null,I.createElement(kPe,Object.assign({separator:I.createElement("span",{"aria-label":"to",className:`${W}-separator`},I.createElement(Wze,null)),disabled:oe,ref:F,popupAlign:HP(D,c),placeholder:Gze(Ze,E,m),suffixIcon:fe,prevIcon:I.createElement("span",{className:`${W}-prev-icon`}),nextIcon:I.createElement("span",{className:`${W}-next-icon`}),superPrevIcon:I.createElement("span",{className:`${W}-super-prev-icon`}),superNextIcon:I.createElement("span",{className:`${W}-super-next-icon`}),transitionName:`${V}-slide-up`},S,{className:Me({[`${W}-${R}`]:R,[`${W}-${z}`]:O},Yp(W,z1(ce,C),ue),Y,T,l,M==null?void 0:M.className,k,P,v),style:Object.assign(Object.assign({},M==null?void 0:M.style),u),locale:Ze.lang,prefixCls:W,getPopupContainer:s||A,generateConfig:n,components:U,direction:D,classNames:{popup:Me(Y,f||b,k,P,v)},styles:{popup:Object.assign(Object.assign({},t.popupStyle),{zIndex:ke})},allowClear:X}))))})}var Oze=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{var m;const{prefixCls:f,getPopupContainer:b,components:C,style:v,className:w,rootClassName:S,size:F,bordered:L,placement:D,placeholder:A,popupClassName:M,dropdownClassName:W,disabled:Z,status:T,variant:E,onCalendarChange:V}=h,z=Oze(h,["prefixCls","getPopupContainer","components","style","className","rootClassName","size","bordered","placement","placeholder","popupClassName","dropdownClassName","disabled","status","variant","onCalendarChange"]),{getPrefixCls:O,direction:P,getPopupContainer:B,[c]:Y}=I.useContext(Tn),k=O("picker",f),{compactSize:X,compactItemClassnames:U}=Bp(k,P),R=I.useRef(null),[ee,oe]=By(E,L),se=ys(k),[ue,ce,ye]=Fae(k,se);I.useImperativeHandle(g,()=>R.current);const fe={showToday:!0},le=l||h.picker,Ze=O(),{onSelect:ke,multiple:Ne}=z,ze=ke&&l==="time"&&!Ne,Ke=(tt,We,ht)=>{V==null||V(tt,We,ht),ze&&ke(tt)},[ut,Ct]=cle(h,k),ot=dle(C),he=cc(tt=>{var We;return(We=F??X)!==null&&We!==void 0?We:tt}),de=I.useContext(Kd),ge=Z??de,j=I.useContext(Xa),{hasFeedback:Q,status:q,feedbackIcon:te}=j,Ce=I.createElement(I.Fragment,null,le==="time"?I.createElement(ule,null):I.createElement(lle,null),Q&&te),[Le]=Wp("DatePicker",Dk),Ae=Object.assign(Object.assign({},Le),h.locale),[Oe]=V1("DatePicker",(m=h.popupStyle)===null||m===void 0?void 0:m.zIndex);return ue(I.createElement(Jm,null,I.createElement(RPe,Object.assign({ref:R,placeholder:Rze(Ae,le,A),suffixIcon:Ce,dropdownAlign:HP(P,D),prevIcon:I.createElement("span",{className:`${k}-prev-icon`}),nextIcon:I.createElement("span",{className:`${k}-next-icon`}),superPrevIcon:I.createElement("span",{className:`${k}-super-prev-icon`}),superNextIcon:I.createElement("span",{className:`${k}-super-next-icon`}),transitionName:`${Ze}-slide-up`,picker:l,onCalendarChange:Ke},fe,z,{locale:Ae.lang,className:Me({[`${k}-${he}`]:he,[`${k}-${ee}`]:oe},Yp(k,z1(q,T),Q),ce,U,Y==null?void 0:Y.className,w,ye,se,S),style:Object.assign(Object.assign({},Y==null?void 0:Y.style),v),prefixCls:k,getPopupContainer:b||B,generateConfig:n,components:ot,direction:P,disabled:ge,classNames:{popup:Me(ce,ye,se,S,M||W)},styles:{popup:Object.assign(Object.assign({},h.popupStyle),{zIndex:Oe})},allowClear:ut,removeIcon:Ct}))))})}const t=e(),i=e("week","WeekPicker"),r=e("month","MonthPicker"),o=e("year","YearPicker"),s=e("quarter","QuarterPicker"),a=e("time","TimePicker");return{DatePicker:t,WeekPicker:i,MonthPicker:r,YearPicker:o,TimePicker:a,QuarterPicker:s}}function hle(n){const{DatePicker:e,WeekPicker:t,MonthPicker:i,YearPicker:r,TimePicker:o,QuarterPicker:s}=Bze(n),a=Pze(n),l=e;return l.WeekPicker=t,l.MonthPicker=i,l.YearPicker=r,l.RangePicker=a,l.TimePicker=o,l.QuarterPicker=s,l}const iI=hle(P4e);function gle(n){const e=HP(n.direction,n.placement);return e.overflow.adjustY=!1,e.overflow.adjustX=!1,Object.assign(Object.assign({},n),{dropdownAlign:e})}const zze=hM(iI,"picker",null,gle);iI._InternalPanelDoNotUseOrYouWillBeFired=zze;const Yze=hM(iI.RangePicker,"picker",null,gle);iI._InternalRangePanelDoNotUseOrYouWillBeFired=Yze,iI.generatePicker=hle;const mle=iI;function fle(n){return["small","middle","large"].includes(n)}function ple(n){return n?typeof n=="number"&&!Number.isNaN(n):!1}const ble=Ye.createContext({latestIndex:0}),Hze=ble.Provider,Uze=n=>{let{className:e,index:t,children:i,split:r,style:o}=n;const{latestIndex:s}=I.useContext(ble);return i==null?null:I.createElement(I.Fragment,null,I.createElement("div",{className:e,style:o},i),t{var t,i;const{getPrefixCls:r,space:o,direction:s}=I.useContext(Tn),{size:a=(o==null?void 0:o.size)||"small",align:l,className:u,rootClassName:c,children:d,direction:h="horizontal",prefixCls:g,split:m,style:f,wrap:b=!1,classNames:C,styles:v}=n,w=Jze(n,["size","align","className","rootClassName","children","direction","prefixCls","split","style","wrap","classNames","styles"]),[S,F]=Array.isArray(a)?a:[a,a],L=fle(F),D=fle(S),A=ple(F),M=ple(S),W=Kc(d,{keepEmpty:!0}),Z=l===void 0&&h==="horizontal"?"center":l,T=r("space",g),[E,V,z]=mie(T),O=Me(T,o==null?void 0:o.className,V,`${T}-${h}`,{[`${T}-rtl`]:s==="rtl",[`${T}-align-${Z}`]:Z,[`${T}-gap-row-${F}`]:L,[`${T}-gap-col-${S}`]:D},u,c,z),P=Me(`${T}-item`,(t=C==null?void 0:C.item)!==null&&t!==void 0?t:(i=o==null?void 0:o.classNames)===null||i===void 0?void 0:i.item);let B=0;const Y=W.map((U,R)=>{var ee,oe;U!=null&&(B=R);const se=U&&U.key||`${P}-${R}`;return I.createElement(Uze,{className:P,key:se,index:R,split:m,style:(ee=v==null?void 0:v.item)!==null&&ee!==void 0?ee:(oe=o==null?void 0:o.styles)===null||oe===void 0?void 0:oe.item},U)}),k=I.useMemo(()=>({latestIndex:B}),[B]);if(W.length===0)return null;const X={};return b&&(X.flexWrap="wrap"),!D&&M&&(X.columnGap=S),!L&&A&&(X.rowGap=F),E(I.createElement("div",Object.assign({ref:e,className:O,style:Object.assign(Object.assign(Object.assign({},X),o==null?void 0:o.style),f)},w),I.createElement(Hze,{value:k},Y)))});Cle.Compact=fEe;const Kze=Cle;var jze=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{const{getPopupContainer:e,getPrefixCls:t,direction:i}=I.useContext(Tn),{prefixCls:r,type:o="default",danger:s,disabled:a,loading:l,onClick:u,htmlType:c,children:d,className:h,menu:g,arrow:m,autoFocus:f,overlay:b,trigger:C,align:v,open:w,onOpenChange:S,placement:F,getPopupContainer:L,href:D,icon:A=I.createElement(hP,null),title:M,buttonsRender:W=ce=>ce,mouseEnterDelay:Z,mouseLeaveDelay:T,overlayClassName:E,overlayStyle:V,destroyPopupOnHide:z,dropdownRender:O}=n,P=jze(n,["prefixCls","type","danger","disabled","loading","onClick","htmlType","children","className","menu","arrow","autoFocus","overlay","trigger","align","open","onOpenChange","placement","getPopupContainer","href","icon","title","buttonsRender","mouseEnterDelay","mouseLeaveDelay","overlayClassName","overlayStyle","destroyPopupOnHide","dropdownRender"]),B=t("dropdown",r),Y=`${B}-button`,k={menu:g,arrow:m,autoFocus:f,align:v,disabled:a,trigger:a?[]:C,onOpenChange:S,getPopupContainer:L||e,mouseEnterDelay:Z,mouseLeaveDelay:T,overlayClassName:E,overlayStyle:V,destroyPopupOnHide:z,dropdownRender:O},{compactSize:X,compactItemClassnames:U}=Bp(B,i),R=Me(Y,U,h);"overlay"in n&&(k.overlay=b),"open"in n&&(k.open=w),"placement"in n?k.placement=F:k.placement=i==="rtl"?"bottomLeft":"bottomRight";const ee=I.createElement(so,{type:o,danger:s,disabled:a,loading:l,onClick:u,htmlType:c,href:D,title:M},d),oe=I.createElement(so,{type:o,danger:s,icon:A}),[se,ue]=W([ee,oe]);return I.createElement(Kze.Compact,Object.assign({className:R,size:X,block:!0},P),se,I.createElement(xse,Object.assign({},k),ue))};vle.__ANT_BUTTON=!0;const Qze=vle,yle=xse;yle.Button=Qze;const UP=yle;function tZ(n){const[e,t]=I.useState(n);return I.useEffect(()=>{const i=setTimeout(()=>{t(n)},n.length?0:10);return()=>{clearTimeout(i)}},[n]),e}const $ze=n=>{const{componentCls:e}=n,t=`${e}-show-help`,i=`${e}-show-help-item`;return{[t]:{transition:`opacity ${n.motionDurationSlow} ${n.motionEaseInOut}`,"&-appear, &-enter":{opacity:0,"&-active":{opacity:1}},"&-leave":{opacity:1,"&-active":{opacity:0}},[i]:{overflow:"hidden",transition:`height ${n.motionDurationSlow} ${n.motionEaseInOut}, + opacity ${n.motionDurationSlow} ${n.motionEaseInOut}, + transform ${n.motionDurationSlow} ${n.motionEaseInOut} !important`,[`&${i}-appear, &${i}-enter`]:{transform:"translateY(-5px)",opacity:0,"&-active":{transform:"translateY(0)",opacity:1}},[`&${i}-leave-active`]:{transform:"translateY(-5px)"}}}}},qze=n=>({legend:{display:"block",width:"100%",marginBottom:n.marginLG,padding:0,color:n.colorTextDescription,fontSize:n.fontSizeLG,lineHeight:"inherit",border:0,borderBottom:`${Te(n.lineWidth)} ${n.lineType} ${n.colorBorder}`},'input[type="search"]':{boxSizing:"border-box"},'input[type="radio"], input[type="checkbox"]':{lineHeight:"normal"},'input[type="file"]':{display:"block"},'input[type="range"]':{display:"block",width:"100%"},"select[multiple], select[size]":{height:"auto"},"input[type='file']:focus,\n input[type='radio']:focus,\n input[type='checkbox']:focus":{outline:0,boxShadow:`0 0 0 ${Te(n.controlOutlineWidth)} ${n.controlOutline}`},output:{display:"block",paddingTop:15,color:n.colorText,fontSize:n.fontSize,lineHeight:n.lineHeight}}),Ile=(n,e)=>{const{formItemCls:t}=n;return{[t]:{[`${t}-label > label`]:{height:e},[`${t}-control-input`]:{minHeight:e}}}},eYe=n=>{const{componentCls:e}=n;return{[n.componentCls]:Object.assign(Object.assign(Object.assign({},oo(n)),qze(n)),{[`${e}-text`]:{display:"inline-block",paddingInlineEnd:n.paddingSM},"&-small":Object.assign({},Ile(n,n.controlHeightSM)),"&-large":Object.assign({},Ile(n,n.controlHeightLG))})}},tYe=n=>{const{formItemCls:e,iconCls:t,componentCls:i,rootPrefixCls:r,labelRequiredMarkColor:o,labelColor:s,labelFontSize:a,labelHeight:l,labelColonMarginInlineStart:u,labelColonMarginInlineEnd:c,itemMarginBottom:d}=n;return{[e]:Object.assign(Object.assign({},oo(n)),{marginBottom:d,verticalAlign:"top","&-with-help":{transition:"none"},[`&-hidden, + &-hidden.${r}-row`]:{display:"none"},"&-has-warning":{[`${e}-split`]:{color:n.colorError}},"&-has-error":{[`${e}-split`]:{color:n.colorWarning}},[`${e}-label`]:{flexGrow:0,overflow:"hidden",whiteSpace:"nowrap",textAlign:"end",verticalAlign:"middle","&-left":{textAlign:"start"},"&-wrap":{overflow:"unset",lineHeight:n.lineHeight,whiteSpace:"unset"},"> label":{position:"relative",display:"inline-flex",alignItems:"center",maxWidth:"100%",height:l,color:s,fontSize:a,[`> ${t}`]:{fontSize:n.fontSize,verticalAlign:"top"},[`&${e}-required:not(${e}-required-mark-optional)::before`]:{display:"inline-block",marginInlineEnd:n.marginXXS,color:o,fontSize:n.fontSize,fontFamily:"SimSun, sans-serif",lineHeight:1,content:'"*"',[`${i}-hide-required-mark &`]:{display:"none"}},[`${e}-optional`]:{display:"inline-block",marginInlineStart:n.marginXXS,color:n.colorTextDescription,[`${i}-hide-required-mark &`]:{display:"none"}},[`${e}-tooltip`]:{color:n.colorTextDescription,cursor:"help",writingMode:"horizontal-tb",marginInlineStart:n.marginXXS},"&::after":{content:'":"',position:"relative",marginBlock:0,marginInlineStart:u,marginInlineEnd:c},[`&${e}-no-colon::after`]:{content:'"\\a0"'}}},[`${e}-control`]:{"--ant-display":"flex",flexDirection:"column",flexGrow:1,[`&:first-child:not([class^="'${r}-col-'"]):not([class*="' ${r}-col-'"])`]:{width:"100%"},"&-input":{position:"relative",display:"flex",alignItems:"center",minHeight:n.controlHeight,"&-content":{flex:"auto",maxWidth:"100%"}}},[e]:{"&-explain, &-extra":{clear:"both",color:n.colorTextDescription,fontSize:n.fontSize,lineHeight:n.lineHeight},"&-explain-connected":{width:"100%"},"&-extra":{minHeight:n.controlHeightSM,transition:`color ${n.motionDurationMid} ${n.motionEaseOut}`},"&-explain":{"&-error":{color:n.colorError},"&-warning":{color:n.colorWarning}}},[`&-with-help ${e}-explain`]:{height:"auto",opacity:1},[`${e}-feedback-icon`]:{fontSize:n.fontSize,textAlign:"center",visibility:"visible",animationName:T4,animationDuration:n.motionDurationMid,animationTimingFunction:n.motionEaseOutBack,pointerEvents:"none","&-success":{color:n.colorSuccess},"&-error":{color:n.colorError},"&-warning":{color:n.colorWarning},"&-validating":{color:n.colorPrimary}}})}},nYe=n=>{const{componentCls:e,formItemCls:t}=n;return{[`${e}-horizontal`]:{[`${t}-label`]:{flexGrow:0},[`${t}-control`]:{flex:"1 1 0",minWidth:0},[`${t}-label[class$='-24'], ${t}-label[class*='-24 ']`]:{[`& + ${t}-control`]:{minWidth:"unset"}}}}},iYe=n=>{const{componentCls:e,formItemCls:t}=n;return{[`${e}-inline`]:{display:"flex",flexWrap:"wrap",[t]:{flex:"none",marginInlineEnd:n.margin,marginBottom:0,"&-row":{flexWrap:"nowrap"},[`> ${t}-label, + > ${t}-control`]:{display:"inline-block",verticalAlign:"top"},[`> ${t}-label`]:{flex:"none"},[`${e}-text`]:{display:"inline-block"},[`${t}-has-feedback`]:{display:"inline-block"}}}}},rI=n=>({padding:n.verticalLabelPadding,margin:n.verticalLabelMargin,whiteSpace:"initial",textAlign:"start","> label":{margin:0,"&::after":{visibility:"hidden"}}}),rYe=n=>{const{componentCls:e,formItemCls:t,rootPrefixCls:i}=n;return{[`${t} ${t}-label`]:rI(n),[`${e}:not(${e}-inline)`]:{[t]:{flexWrap:"wrap",[`${t}-label, ${t}-control`]:{[`&:not([class*=" ${i}-col-xs"])`]:{flex:"0 0 100%",maxWidth:"100%"}}}}}},oYe=n=>{const{componentCls:e,formItemCls:t,rootPrefixCls:i}=n;return{[`${e}-vertical`]:{[t]:{"&-row":{flexDirection:"column"},"&-label > label":{height:"auto"},[`${e}-item-control`]:{width:"100%"}}},[`${e}-vertical ${t}-label, + .${i}-col-24${t}-label, + .${i}-col-xl-24${t}-label`]:rI(n),[`@media (max-width: ${Te(n.screenXSMax)})`]:[rYe(n),{[e]:{[`.${i}-col-xs-24${t}-label`]:rI(n)}}],[`@media (max-width: ${Te(n.screenSMMax)})`]:{[e]:{[`.${i}-col-sm-24${t}-label`]:rI(n)}},[`@media (max-width: ${Te(n.screenMDMax)})`]:{[e]:{[`.${i}-col-md-24${t}-label`]:rI(n)}},[`@media (max-width: ${Te(n.screenLGMax)})`]:{[e]:{[`.${i}-col-lg-24${t}-label`]:rI(n)}}}},sYe=n=>({labelRequiredMarkColor:n.colorError,labelColor:n.colorTextHeading,labelFontSize:n.fontSize,labelHeight:n.controlHeight,labelColonMarginInlineStart:n.marginXXS/2,labelColonMarginInlineEnd:n.marginXS,itemMarginBottom:n.marginLG,verticalLabelPadding:`0 0 ${n.paddingXS}px`,verticalLabelMargin:0}),wle=(n,e)=>Bi(n,{formItemCls:`${n.componentCls}-item`,rootPrefixCls:e}),JP=Oo("Form",(n,e)=>{let{rootPrefixCls:t}=e;const i=wle(n,t);return[eYe(i),tYe(i),$ze(i),nYe(i),iYe(i),oYe(i),Z4(i),T4]},sYe,{order:-1e3}),Sle=[];function KP(n,e,t){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;return{key:typeof n=="string"?n:`${e}-${i}`,error:n,errorStatus:t}}const xle=n=>{let{help:e,helpStatus:t,errors:i=Sle,warnings:r=Sle,className:o,fieldId:s,onVisibleChanged:a}=n;const{prefixCls:l}=I.useContext(M4),u=`${l}-item-explain`,c=ys(l),[d,h,g]=JP(l,c),m=I.useMemo(()=>nM(l),[l]),f=tZ(i),b=tZ(r),C=I.useMemo(()=>e!=null?[KP(e,"help",t)]:[].concat(_t(f.map((w,S)=>KP(w,"error","error",S))),_t(b.map((w,S)=>KP(w,"warning","warning",S)))),[e,t,f,b]),v={};return s&&(v.id=`${s}_help`),d(I.createElement(Qc,{motionDeadline:m.motionDeadline,motionName:`${l}-show-help`,visible:!!C.length,onVisibleChanged:a},w=>{const{className:S,style:F}=w;return I.createElement("div",Object.assign({},v,{className:Me(u,S,g,c,o,h),style:F,role:"alert"}),I.createElement(UX,Object.assign({keys:C},nM(l),{motionName:`${l}-show-help-item`,component:!1}),L=>{const{key:D,error:A,errorStatus:M,className:W,style:Z}=L;return I.createElement("div",{key:D,className:Me(W,{[`${u}-${M}`]:M}),style:Z},A)}))}))},aYe=["parentNode"],lYe="form_item";function rL(n){return n===void 0||n===!1?[]:Array.isArray(n)?n:[n]}function Lle(n,e){if(!n.length)return;const t=n.join("_");return e?`${e}_${t}`:aYe.includes(t)?`${lYe}_${t}`:t}function Fle(n,e,t,i,r,o){let s=i;return o!==void 0?s=o:t.validating?s="validating":n.length?s="error":e.length?s="warning":(t.touched||r&&t.validated)&&(s="success"),s}function _le(n){return rL(n).join("_")}function Dle(n){const[e]=N4(),t=I.useRef({}),i=I.useMemo(()=>n??Object.assign(Object.assign({},e),{__INTERNAL__:{itemRef:r=>o=>{const s=_le(r);o?t.current[s]=o:delete t.current[s]}},scrollToField:function(r){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const s=rL(r),a=Lle(s,i.__INTERNAL__.name),l=a?document.getElementById(a):null;l&&wTe(l,Object.assign({scrollMode:"if-needed",block:"nearest"},o))},getFieldInstance:r=>{const o=_le(r);return t.current[o]}}),[n,e]);return[i]}var uYe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{const t=I.useContext(Kd),{getPrefixCls:i,direction:r,form:o}=I.useContext(Tn),{prefixCls:s,className:a,rootClassName:l,size:u,disabled:c=t,form:d,colon:h,labelAlign:g,labelWrap:m,labelCol:f,wrapperCol:b,hideRequiredMark:C,layout:v="horizontal",scrollToFirstError:w,requiredMark:S,onFinishFailed:F,name:L,style:D,feedbackIcons:A,variant:M}=n,W=uYe(n,["prefixCls","className","rootClassName","size","disabled","form","colon","labelAlign","labelWrap","labelCol","wrapperCol","hideRequiredMark","layout","scrollToFirstError","requiredMark","onFinishFailed","name","style","feedbackIcons","variant"]),Z=cc(u),T=I.useContext(zte),E=I.useMemo(()=>S!==void 0?S:C?!1:o&&o.requiredMark!==void 0?o.requiredMark:!0,[C,S,o]),V=h??(o==null?void 0:o.colon),z=i("form",s),O=ys(z),[P,B,Y]=JP(z,O),k=Me(z,`${z}-${v}`,{[`${z}-hide-required-mark`]:E===!1,[`${z}-rtl`]:r==="rtl",[`${z}-${Z}`]:Z},Y,O,B,o==null?void 0:o.className,a,l),[X]=Dle(d),{__INTERNAL__:U}=X;U.name=L;const R=I.useMemo(()=>({name:L,labelAlign:g,labelCol:f,labelWrap:m,wrapperCol:b,vertical:v==="vertical",colon:V,requiredMark:E,itemRef:U.itemRef,form:X,feedbackIcons:A}),[L,g,f,b,v,V,E,X,A]);I.useImperativeHandle(e,()=>X);const ee=(se,ue)=>{if(se){let ce={block:"nearest"};typeof se=="object"&&(ce=se),X.scrollToField(ue,ce)}},oe=se=>{if(F==null||F(se),se.errorFields.length){const ue=se.errorFields[0].name;if(w!==void 0){ee(w,ue);return}o&&o.scrollToFirstError!==void 0&&ee(o.scrollToFirstError,ue)}};return P(I.createElement(Cre.Provider,{value:M},I.createElement(TX,{disabled:c},I.createElement(yx.Provider,{value:Z},I.createElement(bre,{validateMessages:T},I.createElement(jm.Provider,{value:R},I.createElement(Vy,Object.assign({id:L},W,{name:L,onFinishFailed:oe,form:X,style:Object.assign(Object.assign({},o==null?void 0:o.style),D),className:k}))))))))},dYe=I.forwardRef(cYe);function hYe(n){if(typeof n=="function")return n;const e=Kc(n);return e.length<=1?e[0]:e}const Ale=()=>{const{status:n,errors:e=[],warnings:t=[]}=I.useContext(Xa);return{status:n,errors:e,warnings:t}};Ale.Context=Xa;const gYe=Ale;function mYe(n){const[e,t]=I.useState(n),i=I.useRef(null),r=I.useRef([]),o=I.useRef(!1);I.useEffect(()=>(o.current=!1,()=>{o.current=!0,xi.cancel(i.current),i.current=null}),[]);function s(a){o.current||(i.current===null&&(r.current=[],i.current=xi(()=>{i.current=null,t(l=>{let u=l;return r.current.forEach(c=>{u=c(u)}),u})})),r.current.push(a))}return[e,s]}function fYe(){const{itemRef:n}=I.useContext(jm),e=I.useRef({});function t(i,r){const o=r&&typeof r=="object"&&r.ref,s=i.join("_");return(e.current.name!==s||e.current.originRef!==o)&&(e.current.name=s,e.current.originRef=o,e.current.ref=Su(n(i),o)),e.current.ref}return t}const pYe=n=>{const{formItemCls:e}=n;return{"@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none)":{[`${e}-control`]:{display:"flex"}}}},bYe=Vk(["Form","item-item"],(n,e)=>{let{rootPrefixCls:t}=e;const i=wle(n,t);return[pYe(i)]}),CYe=n=>{const{prefixCls:e,status:t,wrapperCol:i,children:r,errors:o,warnings:s,_internalItemRender:a,extra:l,help:u,fieldId:c,marginBottom:d,onErrorVisibleChanged:h}=n,g=`${e}-item`,m=I.useContext(jm),f=i||m.wrapperCol||{},b=Me(`${g}-control`,f.className),C=I.useMemo(()=>Object.assign({},m),[m]);delete C.labelCol,delete C.wrapperCol;const v=I.createElement("div",{className:`${g}-control-input`},I.createElement("div",{className:`${g}-control-input-content`},r)),w=I.useMemo(()=>({prefixCls:e,status:t}),[e,t]),S=d!==null||o.length||s.length?I.createElement("div",{style:{display:"flex",flexWrap:"nowrap"}},I.createElement(M4.Provider,{value:w},I.createElement(xle,{fieldId:c,errors:o,warnings:s,help:u,helpStatus:t,className:`${g}-explain-connected`,onVisibleChanged:h})),!!d&&I.createElement("div",{style:{width:0,height:d}})):null,F={};c&&(F.id=`${c}_extra`);const L=l?I.createElement("div",Object.assign({},F,{className:`${g}-extra`}),l):null,D=a&&a.mark==="pro_table_render"&&a.render?a.render(n,{input:v,errorList:S,extra:L}):I.createElement(I.Fragment,null,v,S,L);return I.createElement(jm.Provider,{value:C},I.createElement(Yae,Object.assign({},f,{className:b}),D),I.createElement(bYe,{prefixCls:e}))};var vYe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z"}},{tag:"path",attrs:{d:"M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z"}}]},name:"question-circle",theme:"outlined"};const yYe=vYe;var IYe=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:yYe}))},wYe=I.forwardRef(IYe);const SYe=wYe;var xYe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{let{prefixCls:e,label:t,htmlFor:i,labelCol:r,labelAlign:o,colon:s,required:a,requiredMark:l,tooltip:u}=n;var c;const[d]=Wp("Form"),{vertical:h,labelAlign:g,labelCol:m,labelWrap:f,colon:b}=I.useContext(jm);if(!t)return null;const C=r||m||{},v=o||g,w=`${e}-item-label`,S=Me(w,v==="left"&&`${w}-left`,C.className,{[`${w}-wrap`]:!!f});let F=t;const L=s===!0||b!==!1&&s!==!1;L&&!h&&typeof t=="string"&&t.trim()!==""&&(F=t.replace(/[:|:]\s*$/,""));const A=LYe(u);if(A){const{icon:T=I.createElement(SYe,null)}=A,E=xYe(A,["icon"]),V=I.createElement(cg,Object.assign({},E),I.cloneElement(T,{className:`${e}-item-tooltip`,title:"",onClick:z=>{z.preventDefault()},tabIndex:null}));F=I.createElement(I.Fragment,null,F,V)}const M=l==="optional",W=typeof l=="function";W?F=l(F,{required:!!a}):M&&!a&&(F=I.createElement(I.Fragment,null,F,I.createElement("span",{className:`${e}-item-optional`,title:""},(d==null?void 0:d.optional)||((c=Ym.Form)===null||c===void 0?void 0:c.optional))));const Z=Me({[`${e}-item-required`]:a,[`${e}-item-required-mark-optional`]:M||W,[`${e}-item-no-colon`]:!L});return I.createElement(Yae,Object.assign({},C,{className:S}),I.createElement("label",{htmlFor:i,className:Z,title:typeof t=="string"?t:""},F))},_Ye={success:xx,warning:Kk,error:R1,validating:Ey};function Nle(n){let{children:e,errors:t,warnings:i,hasFeedback:r,validateStatus:o,prefixCls:s,meta:a,noStyle:l}=n;const u=`${s}-item`,{feedbackIcons:c}=I.useContext(jm),d=Fle(t,i,a,null,!!r,o),{isFormItemInput:h,status:g,hasFeedback:m,feedbackIcon:f}=I.useContext(Xa),b=I.useMemo(()=>{var C;let v;if(r){const S=r!==!0&&r.icons||c,F=d&&((C=S==null?void 0:S({status:d,errors:t,warnings:i}))===null||C===void 0?void 0:C[d]),L=d&&_Ye[d];v=F!==!1&&L?I.createElement("span",{className:Me(`${u}-feedback-icon`,`${u}-feedback-icon-${d}`)},F||I.createElement(L,null)):null}const w={status:d||"",errors:t,warnings:i,hasFeedback:!!r,feedbackIcon:v,isFormItemInput:!0};return l&&(w.status=(d??g)||"",w.isFormItemInput=h,w.hasFeedback=!!(r??m),w.feedbackIcon=r!==void 0?w.feedbackIcon:f),w},[d,r,l,h,g]);return I.createElement(Xa.Provider,{value:b},e)}var DYe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{if(A&&S.current){const O=getComputedStyle(S.current);Z(parseInt(O.marginBottom,10))}},[A,M]);const T=O=>{O||Z(null)},V=function(){let O=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;const P=O?F:u.errors,B=O?L:u.warnings;return Fle(P,B,u,"",!!c,l)}(),z=Me(v,t,i,{[`${v}-with-help`]:D||F.length||L.length,[`${v}-has-feedback`]:V&&c,[`${v}-has-success`]:V==="success",[`${v}-has-warning`]:V==="warning",[`${v}-has-error`]:V==="error",[`${v}-is-validating`]:V==="validating",[`${v}-hidden`]:d});return I.createElement("div",{className:z,style:r,ref:S},I.createElement(fBe,Object.assign({className:`${v}-row`},ra(C,["_internalItemRender","colon","dependencies","extra","fieldKey","getValueFromEvent","getValueProps","htmlFor","id","initialValue","isListField","label","labelAlign","labelCol","labelWrap","messageVariables","name","normalize","noStyle","preserve","requiredMark","rules","shouldUpdate","trigger","tooltip","validateFirst","validateTrigger","valuePropName","wrapperCol","validateDebounce"])),I.createElement(FYe,Object.assign({htmlFor:g},n,{requiredMark:w,required:m??f,prefixCls:e})),I.createElement(CYe,Object.assign({},n,u,{errors:F,warnings:L,prefixCls:e,status:V,help:o,marginBottom:W,onErrorVisibleChanged:T}),I.createElement(pre.Provider,{value:b},I.createElement(Nle,{prefixCls:e,meta:u,errors:u.errors,warnings:u.warnings,hasFeedback:c,validateStatus:V},h)))),!!W&&I.createElement("div",{className:`${v}-margin-offset`,style:{marginBottom:-W}}))}const NYe="__SPLIT__";function kYe(n,e){const t=Object.keys(n),i=Object.keys(e);return t.length===i.length&&t.every(r=>{const o=n[r],s=e[r];return o===s||typeof o=="function"||typeof s=="function"})}const MYe=I.memo(n=>{let{children:e}=n;return e},(n,e)=>kYe(n.control,e.control)&&n.update===e.update&&n.childProps.length===e.childProps.length&&n.childProps.every((t,i)=>t===e.childProps[i]));function kle(){return{errors:[],warnings:[],touched:!1,validating:!1,name:[],validated:!1}}function ZYe(n){const{name:e,noStyle:t,className:i,dependencies:r,prefixCls:o,shouldUpdate:s,rules:a,children:l,required:u,label:c,messageVariables:d,trigger:h="onChange",validateTrigger:g,hidden:m,help:f}=n,{getPrefixCls:b}=I.useContext(Tn),{name:C}=I.useContext(jm),v=hYe(l),w=typeof v=="function",S=I.useContext(pre),{validateTrigger:F}=I.useContext(P1),L=g!==void 0?g:F,D=e!=null,A=b("form",o),M=ys(A),[W,Z,T]=JP(A,M);Dy();const E=I.useContext(Nx),V=I.useRef(),[z,O]=mYe({}),[P,B]=Gp(()=>kle()),Y=se=>{const ue=E==null?void 0:E.getKey(se.name);if(B(se.destroy?kle():se,!0),t&&f!==!1&&S){let ce=se.name;if(se.destroy)ce=V.current||ce;else if(ue!==void 0){const[ye,fe]=ue;ce=[ye].concat(_t(fe)),V.current=ce}S(se,ce)}},k=(se,ue)=>{O(ce=>{const ye=Object.assign({},ce),le=[].concat(_t(se.name.slice(0,-1)),_t(ue)).join(NYe);return se.destroy?delete ye[le]:ye[le]=se,ye})},[X,U]=I.useMemo(()=>{const se=_t(P.errors),ue=_t(P.warnings);return Object.values(z).forEach(ce=>{se.push.apply(se,_t(ce.errors||[])),ue.push.apply(ue,_t(ce.warnings||[]))}),[se,ue]},[z,P.errors,P.warnings]),R=fYe();function ee(se,ue,ce){return t&&!m?I.createElement(Nle,{prefixCls:A,hasFeedback:n.hasFeedback,validateStatus:n.validateStatus,meta:P,errors:X,warnings:U,noStyle:!0},se):I.createElement(AYe,Object.assign({key:"row"},n,{className:Me(i,T,M,Z),prefixCls:A,fieldId:ue,isRequired:ce,errors:X,warnings:U,meta:P,onSubItemMetaChange:k}),se)}if(!D&&!w&&!r)return W(ee(v));let oe={};return typeof c=="string"?oe.label=c:e&&(oe.label=String(e)),d&&(oe=Object.assign(Object.assign({},oe),d)),W(I.createElement(D4,Object.assign({},n,{messageVariables:oe,trigger:h,validateTrigger:L,onMetaChange:Y}),(se,ue,ce)=>{const ye=rL(e).length&&ue?ue.name:[],fe=Lle(ye,C),le=u!==void 0?u:!!(a&&a.some(Ne=>{if(Ne&&typeof Ne=="object"&&Ne.required&&!Ne.warningOnly)return!0;if(typeof Ne=="function"){const ze=Ne(ce);return ze&&ze.required&&!ze.warningOnly}return!1})),Ze=Object.assign({},se);let ke=null;if(Array.isArray(v)&&D)ke=v;else if(!(w&&(!(s||r)||D))){if(!(r&&!w&&!D))if(I.isValidElement(v)){const Ne=Object.assign(Object.assign({},v.props),Ze);if(Ne.id||(Ne.id=fe),f||X.length>0||U.length>0||n.extra){const ut=[];(f||X.length>0)&&ut.push(`${fe}_help`),n.extra&&ut.push(`${fe}_extra`),Ne["aria-describedby"]=ut.join(" ")}X.length>0&&(Ne["aria-invalid"]="true"),le&&(Ne["aria-required"]="true"),Pm(v)&&(Ne.ref=R(ye,v)),new Set([].concat(_t(rL(h)),_t(rL(L)))).forEach(ut=>{Ne[ut]=function(){for(var Ct,ot,he,de,ge,j=arguments.length,Q=new Array(j),q=0;q{var{prefixCls:e,children:t}=n,i=EYe(n,["prefixCls","children"]);const{getPrefixCls:r}=I.useContext(Tn),o=r("form",e),s=I.useMemo(()=>({prefixCls:o,status:"error"}),[o]);return I.createElement(dre,Object.assign({},i),(a,l,u)=>I.createElement(M4.Provider,{value:s},t(a.map(c=>Object.assign(Object.assign({},c),{fieldKey:c.key})),l,{errors:u.errors,warnings:u.warnings})))};function RYe(){const{form:n}=I.useContext(jm);return n}const Ti=dYe;Ti.Item=TYe,Ti.List=WYe,Ti.ErrorList=xle,Ti.useForm=Dle,Ti.useFormInstance=RYe,Ti.useWatch=fre,Ti.Provider=bre,Ti.create=()=>{};function GYe(n,e,t){return typeof t=="boolean"?t:n.length?!0:Kc(e).some(r=>r.type===dP)}const VYe=n=>{const{componentCls:e,bodyBg:t,lightSiderBg:i,lightTriggerBg:r,lightTriggerColor:o}=n;return{[`${e}-sider-light`]:{background:i,[`${e}-sider-trigger`]:{color:o,background:r},[`${e}-sider-zero-width-trigger`]:{color:o,background:r,border:`1px solid ${t}`,borderInlineStart:0}}}},XYe=n=>{const{antCls:e,componentCls:t,colorText:i,triggerColor:r,footerBg:o,triggerBg:s,headerHeight:a,headerPadding:l,headerColor:u,footerPadding:c,triggerHeight:d,zeroTriggerHeight:h,zeroTriggerWidth:g,motionDurationMid:m,motionDurationSlow:f,fontSize:b,borderRadius:C,bodyBg:v,headerBg:w,siderBg:S}=n;return{[t]:Object.assign(Object.assign({display:"flex",flex:"auto",flexDirection:"column",minHeight:0,background:v,"&, *":{boxSizing:"border-box"},[`&${t}-has-sider`]:{flexDirection:"row",[`> ${t}, > ${t}-content`]:{width:0}},[`${t}-header, &${t}-footer`]:{flex:"0 0 auto"},[`${t}-sider`]:{position:"relative",minWidth:0,background:S,transition:`all ${m}, background 0s`,"&-children":{height:"100%",marginTop:-.1,paddingTop:.1,[`${e}-menu${e}-menu-inline-collapsed`]:{width:"auto"}},"&-has-trigger":{paddingBottom:d},"&-right":{order:1},"&-trigger":{position:"fixed",bottom:0,zIndex:1,height:d,color:r,lineHeight:Te(d),textAlign:"center",background:s,cursor:"pointer",transition:`all ${m}`},"&-zero-width":{"> *":{overflow:"hidden"},"&-trigger":{position:"absolute",top:a,insetInlineEnd:n.calc(g).mul(-1).equal(),zIndex:1,width:g,height:h,color:r,fontSize:n.fontSizeXL,display:"flex",alignItems:"center",justifyContent:"center",background:S,borderStartStartRadius:0,borderStartEndRadius:C,borderEndEndRadius:C,borderEndStartRadius:0,cursor:"pointer",transition:`background ${f} ease`,"&::after":{position:"absolute",inset:0,background:"transparent",transition:`all ${f}`,content:'""'},"&:hover::after":{background:"rgba(255, 255, 255, 0.2)"},"&-right":{insetInlineStart:n.calc(g).mul(-1).equal(),borderStartStartRadius:C,borderStartEndRadius:0,borderEndEndRadius:0,borderEndStartRadius:C}}}}},VYe(n)),{"&-rtl":{direction:"rtl"}}),[`${t}-header`]:{height:a,padding:l,color:u,lineHeight:Te(a),background:w,[`${e}-menu`]:{lineHeight:"inherit"}},[`${t}-footer`]:{padding:c,color:i,fontSize:b,background:o},[`${t}-content`]:{flex:"auto",color:i,minHeight:0}}},Zle=Oo("Layout",n=>[XYe(n)],n=>{const{colorBgLayout:e,controlHeight:t,controlHeightLG:i,colorText:r,controlHeightSM:o,marginXXS:s,colorTextLightSolid:a,colorBgContainer:l}=n,u=i*1.25;return{colorBgHeader:"#001529",colorBgBody:e,colorBgTrigger:"#002140",bodyBg:e,headerBg:"#001529",headerHeight:t*2,headerPadding:`0 ${u}px`,headerColor:r,footerPadding:`${o}px ${u}px`,footerBg:e,siderBg:"#001529",triggerHeight:i+s*2,triggerBg:"#002140",triggerColor:a,zeroTriggerWidth:i,zeroTriggerHeight:i,lightSiderBg:l,lightTriggerBg:l,lightTriggerColor:r}},{deprecatedTokens:[["colorBgBody","bodyBg"],["colorBgHeader","headerBg"],["colorBgTrigger","triggerBg"]]});var Tle=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);rI.forwardRef((s,a)=>I.createElement(r,Object.assign({ref:a,suffixCls:e,tagName:t},s)))}const jP=I.forwardRef((n,e)=>{const{prefixCls:t,suffixCls:i,className:r,tagName:o}=n,s=Tle(n,["prefixCls","suffixCls","className","tagName"]),{getPrefixCls:a}=I.useContext(Tn),l=a("layout",t),[u,c,d]=Zle(l),h=i?`${l}-${i}`:l;return u(I.createElement(o,Object.assign({className:Me(t||h,r,c,d),ref:e},s)))}),PYe=I.forwardRef((n,e)=>{const{direction:t}=I.useContext(Tn),[i,r]=I.useState([]),{prefixCls:o,className:s,rootClassName:a,children:l,hasSider:u,tagName:c,style:d}=n,h=Tle(n,["prefixCls","className","rootClassName","children","hasSider","tagName","style"]),g=ra(h,["suffixCls"]),{getPrefixCls:m,layout:f}=I.useContext(Tn),b=m("layout",o),C=GYe(i,l,u),[v,w,S]=Zle(b),F=Me(b,{[`${b}-has-sider`]:C,[`${b}-rtl`]:t==="rtl"},f==null?void 0:f.className,s,a,w,S),L=I.useMemo(()=>({siderHook:{addSider:D=>{r(A=>[].concat(_t(A),[D]))},removeSider:D=>{r(A=>A.filter(M=>M!==D))}}}),[]);return v(I.createElement(mse.Provider,{value:L},I.createElement(c,Object.assign({ref:e,className:F,style:Object.assign(Object.assign({},f==null?void 0:f.style),d)},g),l)))}),OYe=nZ({tagName:"div",displayName:"Layout"})(PYe),BYe=nZ({suffixCls:"header",tagName:"header",displayName:"Header"})(jP),zYe=nZ({suffixCls:"footer",tagName:"footer",displayName:"Footer"})(jP),YYe=nZ({suffixCls:"content",tagName:"main",displayName:"Content"})(jP),oI=OYe;oI.Header=BYe,oI.Footer=zYe,oI.Content=YYe,oI.Sider=dP,oI._InternalSiderContext=_M;const Ele=oI,HYe=new Ni("antSpinMove",{to:{opacity:1}}),UYe=new Ni("antRotate",{to:{transform:"rotate(405deg)"}}),JYe=n=>{const{componentCls:e,calc:t}=n;return{[`${e}`]:Object.assign(Object.assign({},oo(n)),{position:"absolute",display:"none",color:n.colorPrimary,fontSize:0,textAlign:"center",verticalAlign:"middle",opacity:0,transition:`transform ${n.motionDurationSlow} ${n.motionEaseInOutCirc}`,"&-spinning":{position:"static",display:"inline-block",opacity:1},[`${e}-text`]:{fontSize:n.fontSize,paddingTop:t(t(n.dotSize).sub(n.fontSize)).div(2).add(2).equal()},"&-fullscreen":{position:"fixed",width:"100vw",height:"100vh",backgroundColor:n.colorBgMask,zIndex:n.zIndexPopupBase,inset:0,display:"flex",alignItems:"center",flexDirection:"column",justifyContent:"center",opacity:0,visibility:"hidden",transition:`all ${n.motionDurationMid}`,"&-show":{opacity:1,visibility:"visible"},[`${e}-dot ${e}-dot-item`]:{backgroundColor:n.colorWhite},[`${e}-text`]:{color:n.colorTextLightSolid}},"&-nested-loading":{position:"relative",[`> div > ${e}`]:{position:"absolute",top:0,insetInlineStart:0,zIndex:4,display:"block",width:"100%",height:"100%",maxHeight:n.contentHeight,[`${e}-dot`]:{position:"absolute",top:"50%",insetInlineStart:"50%",margin:t(n.dotSize).mul(-1).div(2).equal()},[`${e}-text`]:{position:"absolute",top:"50%",width:"100%",textShadow:`0 1px 2px ${n.colorBgContainer}`},[`&${e}-show-text ${e}-dot`]:{marginTop:t(n.dotSize).div(2).mul(-1).sub(10).equal()},"&-sm":{[`${e}-dot`]:{margin:t(n.dotSizeSM).mul(-1).div(2).equal()},[`${e}-text`]:{paddingTop:t(t(n.dotSizeSM).sub(n.fontSize)).div(2).add(2).equal()},[`&${e}-show-text ${e}-dot`]:{marginTop:t(n.dotSizeSM).div(2).mul(-1).sub(10).equal()}},"&-lg":{[`${e}-dot`]:{margin:t(n.dotSizeLG).mul(-1).div(2).equal()},[`${e}-text`]:{paddingTop:t(t(n.dotSizeLG).sub(n.fontSize)).div(2).add(2).equal()},[`&${e}-show-text ${e}-dot`]:{marginTop:t(n.dotSizeLG).div(2).mul(-1).sub(10).equal()}}},[`${e}-container`]:{position:"relative",transition:`opacity ${n.motionDurationSlow}`,"&::after":{position:"absolute",top:0,insetInlineEnd:0,bottom:0,insetInlineStart:0,zIndex:10,width:"100%",height:"100%",background:n.colorBgContainer,opacity:0,transition:`all ${n.motionDurationSlow}`,content:'""',pointerEvents:"none"}},[`${e}-blur`]:{clear:"both",opacity:.5,userSelect:"none",pointerEvents:"none","&::after":{opacity:.4,pointerEvents:"auto"}}},"&-tip":{color:n.spinDotDefault},[`${e}-dot`]:{position:"relative",display:"inline-block",fontSize:n.dotSize,width:"1em",height:"1em","&-item":{position:"absolute",display:"block",width:t(n.dotSize).sub(t(n.marginXXS).div(2)).div(2).equal(),height:t(n.dotSize).sub(t(n.marginXXS).div(2)).div(2).equal(),backgroundColor:n.colorPrimary,borderRadius:"100%",transform:"scale(0.75)",transformOrigin:"50% 50%",opacity:.3,animationName:HYe,animationDuration:"1s",animationIterationCount:"infinite",animationTimingFunction:"linear",animationDirection:"alternate","&:nth-child(1)":{top:0,insetInlineStart:0,animationDelay:"0s"},"&:nth-child(2)":{top:0,insetInlineEnd:0,animationDelay:"0.4s"},"&:nth-child(3)":{insetInlineEnd:0,bottom:0,animationDelay:"0.8s"},"&:nth-child(4)":{bottom:0,insetInlineStart:0,animationDelay:"1.2s"}},"&-spin":{transform:"rotate(45deg)",animationName:UYe,animationDuration:"1.2s",animationIterationCount:"infinite",animationTimingFunction:"linear"}},[`&-sm ${e}-dot`]:{fontSize:n.dotSizeSM,i:{width:t(t(n.dotSizeSM).sub(t(n.marginXXS).div(2))).div(2).equal(),height:t(t(n.dotSizeSM).sub(t(n.marginXXS).div(2))).div(2).equal()}},[`&-lg ${e}-dot`]:{fontSize:n.dotSizeLG,i:{width:t(t(n.dotSizeLG).sub(n.marginXXS)).div(2).equal(),height:t(t(n.dotSizeLG).sub(n.marginXXS)).div(2).equal()}},[`&${e}-show-text ${e}-text`]:{display:"block"}})}},KYe=Oo("Spin",n=>{const e=Bi(n,{spinDotDefault:n.colorTextDescription});return[JYe(e)]},n=>{const{controlHeightLG:e,controlHeight:t}=n;return{contentHeight:400,dotSize:e/2,dotSizeSM:e*.35,dotSizeLG:t}});var jYe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{const{prefixCls:e,spinning:t=!0,delay:i=0,className:r,rootClassName:o,size:s="default",tip:a,wrapperClassName:l,style:u,children:c,fullscreen:d=!1}=n,h=jYe(n,["prefixCls","spinning","delay","className","rootClassName","size","tip","wrapperClassName","style","children","fullscreen"]),{getPrefixCls:g}=I.useContext(Tn),m=g("spin",e),[f,b,C]=KYe(m),[v,w]=I.useState(()=>t&&!$Ye(t,i));I.useEffect(()=>{if(t){const T=iBe(i,()=>{w(!0)});return T(),()=>{var E;(E=T==null?void 0:T.cancel)===null||E===void 0||E.call(T)}}w(!1)},[i,t]);const S=I.useMemo(()=>typeof c<"u"&&!d,[c,d]),{direction:F,spin:L}=I.useContext(Tn),D=Me(m,L==null?void 0:L.className,{[`${m}-sm`]:s==="small",[`${m}-lg`]:s==="large",[`${m}-spinning`]:v,[`${m}-show-text`]:!!a,[`${m}-fullscreen`]:d,[`${m}-fullscreen-show`]:d&&v,[`${m}-rtl`]:F==="rtl"},r,o,b,C),A=Me(`${m}-container`,{[`${m}-blur`]:v}),M=ra(h,["indicator"]),W=Object.assign(Object.assign({},L==null?void 0:L.style),u),Z=I.createElement("div",Object.assign({},M,{style:W,className:D,"aria-live":"polite","aria-busy":v}),QYe(m,n),a&&(S||d)?I.createElement("div",{className:`${m}-text`},a):null);return f(S?I.createElement("div",Object.assign({},M,{className:Me(`${m}-nested-loading`,l,b,C)}),v&&I.createElement("div",{key:"loading"},Z),I.createElement("div",{className:A,key:"container"},c)):Z)};Wle.setDefaultIndicator=n=>{iZ=n};const Rle=Wle;let td=null,$1=n=>n(),oL=[],sL={};function Gle(){const{getContainer:n,duration:e,rtl:t,maxCount:i,top:r}=sL,o=(n==null?void 0:n())||document.body;return{getContainer:()=>o,duration:e,rtl:t,maxCount:i,top:r}}const qYe=Ye.forwardRef((n,e)=>{const{messageConfig:t,sync:i}=n,{getPrefixCls:r}=I.useContext(Tn),o=sL.prefixCls||r("message"),s=I.useContext(Kre),[a,l]=lie(Object.assign(Object.assign(Object.assign({},t),{prefixCls:o}),s.message));return Ye.useImperativeHandle(e,()=>{const u=Object.assign({},a);return Object.keys(u).forEach(c=>{u[c]=function(){return i(),a[c].apply(a,arguments)}}),{instance:u,sync:i}}),l}),eHe=Ye.forwardRef((n,e)=>{const[t,i]=Ye.useState(Gle),r=()=>{i(Gle)};Ye.useEffect(r,[]);const o=JX(),s=o.getRootPrefixCls(),a=o.getIconPrefixCls(),l=o.getTheme(),u=Ye.createElement(qYe,{ref:e,sync:r,messageConfig:t});return Ye.createElement(W1,{prefixCls:s,iconPrefixCls:a,theme:l},o.holderRender?o.holderRender(u):u)});function rZ(){if(!td){const n=document.createDocumentFragment(),e={fragment:n};td=e,$1(()=>{tM(Ye.createElement(eHe,{ref:t=>{const{instance:i,sync:r}=t||{};Promise.resolve().then(()=>{!e.instance&&i&&(e.instance=i,e.sync=r,rZ())})}}),n)});return}td.instance&&(oL.forEach(n=>{const{type:e,skipped:t}=n;if(!t)switch(e){case"open":{$1(()=>{const i=td.instance.open(Object.assign(Object.assign({},sL),n.config));i==null||i.then(n.resolve),n.setCloseFn(i)});break}case"destroy":$1(()=>{td==null||td.instance.destroy(n.key)});break;default:$1(()=>{var i;const r=(i=td.instance)[e].apply(i,_t(n.args));r==null||r.then(n.resolve),n.setCloseFn(r)})}}),oL=[])}function tHe(n){sL=Object.assign(Object.assign({},sL),n),$1(()=>{var e;(e=td==null?void 0:td.sync)===null||e===void 0||e.call(td)})}function nHe(n){const e=e4(t=>{let i;const r={type:"open",config:n,resolve:t,setCloseFn:o=>{i=o}};return oL.push(r),()=>{i?$1(()=>{i()}):r.skipped=!0}});return rZ(),e}function iHe(n,e){const t=e4(i=>{let r;const o={type:n,args:e,resolve:i,setCloseFn:s=>{r=s}};return oL.push(o),()=>{r?$1(()=>{r()}):o.skipped=!0}});return rZ(),t}const rHe=n=>{oL.push({type:"destroy",key:n}),rZ()},oHe=["success","info","warning","error","loading"],Vle={open:nHe,destroy:rHe,config:tHe,useMessage:UTe,_InternalPanelDoNotUseOrYouWillBeFired:VTe};oHe.forEach(n=>{Vle[n]=function(){for(var e=arguments.length,t=new Array(e),i=0;i{const{prefixCls:e,className:t,closeIcon:i,closable:r,type:o,title:s,children:a,footer:l}=n,u=sHe(n,["prefixCls","className","closeIcon","closable","type","title","children","footer"]),{getPrefixCls:c}=I.useContext(Tn),d=c(),h=e||c("modal"),g=ys(d),[m,f,b]=Nre(h,g),C=`${h}-confirm`;let v={};return o?v={closable:r??!1,title:"",footer:"",children:I.createElement(Mre,Object.assign({},n,{prefixCls:h,confirmPrefixCls:C,rootPrefixCls:d,content:a}))}:v={closable:r??!0,title:s,footer:l!==null&&I.createElement(Sre,Object.assign({},n)),children:a},m(I.createElement(zie,Object.assign({prefixCls:h,className:Me(f,`${h}-pure-panel`,o&&C,o&&`${C}-${o}`,t,b,g)},u,{closeIcon:wre(h,i),closable:r},v)))});function Xle(n){return Rx(Wre(n))}const nh=kre;nh.useModal=BRe,nh.info=function(e){return Rx(Rre(e))},nh.success=function(e){return Rx(Gre(e))},nh.error=function(e){return Rx(Vre(e))},nh.warning=Xle,nh.warn=Xle,nh.confirm=function(e){return Rx(Xre(e))},nh.destroyAll=function(){for(;B1.length;){const e=B1.pop();e&&e()}},nh.config=GRe,nh._InternalPanelDoNotUseOrYouWillBeFired=aHe;const Ple=nh;let ih=null,oZ=n=>n(),sZ=[],aL={};function Ole(){const{getContainer:n,rtl:e,maxCount:t,top:i,bottom:r}=aL,o=(n==null?void 0:n())||document.body;return{getContainer:()=>o,rtl:e,maxCount:t,top:i,bottom:r}}const lHe=Ye.forwardRef((n,e)=>{const{notificationConfig:t,sync:i}=n,{getPrefixCls:r}=I.useContext(Tn),o=aL.prefixCls||r("notification"),s=I.useContext(Kre),[a,l]=Jre(Object.assign(Object.assign(Object.assign({},t),{prefixCls:o}),s.notification));return Ye.useEffect(i,[]),Ye.useImperativeHandle(e,()=>{const u=Object.assign({},a);return Object.keys(u).forEach(c=>{u[c]=function(){return i(),a[c].apply(a,arguments)}}),{instance:u,sync:i}}),l}),uHe=Ye.forwardRef((n,e)=>{const[t,i]=Ye.useState(Ole),r=()=>{i(Ole)};Ye.useEffect(r,[]);const o=JX(),s=o.getRootPrefixCls(),a=o.getIconPrefixCls(),l=o.getTheme(),u=Ye.createElement(lHe,{ref:e,sync:r,notificationConfig:t});return Ye.createElement(W1,{prefixCls:s,iconPrefixCls:a,theme:l},o.holderRender?o.holderRender(u):u)});function QP(){if(!ih){const n=document.createDocumentFragment(),e={fragment:n};ih=e,oZ(()=>{tM(Ye.createElement(uHe,{ref:t=>{const{instance:i,sync:r}=t||{};Promise.resolve().then(()=>{!e.instance&&i&&(e.instance=i,e.sync=r,QP())})}}),n)});return}ih.instance&&(sZ.forEach(n=>{switch(n.type){case"open":{oZ(()=>{ih.instance.open(Object.assign(Object.assign({},aL),n.config))});break}case"destroy":oZ(()=>{ih==null||ih.instance.destroy(n.key)});break}}),sZ=[])}function cHe(n){aL=Object.assign(Object.assign({},aL),n),oZ(()=>{var e;(e=ih==null?void 0:ih.sync)===null||e===void 0||e.call(ih)})}function Ble(n){sZ.push({type:"open",config:n}),QP()}const dHe=n=>{sZ.push({type:"destroy",key:n}),QP()},hHe=["success","info","warning","error"],zle={open:Ble,destroy:dHe,config:cHe,useNotification:c3e,_InternalPanelDoNotUseOrYouWillBeFired:t3e};hHe.forEach(n=>{zle[n]=e=>Ble(Object.assign(Object.assign({},e),{type:n}))});const gHe=zle;var mHe={percent:0,prefixCls:"rc-progress",strokeColor:"#2db7f5",strokeLinecap:"round",strokeWidth:1,trailColor:"#D9D9D9",trailWidth:1,gapPosition:"bottom"},fHe=function(){var e=I.useRef([]),t=I.useRef(null);return I.useEffect(function(){var i=Date.now(),r=!1;e.current.forEach(function(o){if(o){r=!0;var s=o.style;s.transitionDuration=".3s, .3s, .3s, .06s",t.current&&i-t.current<100&&(s.transitionDuration="0s, 0s")}}),r&&(t.current=Date.now())}),e.current},Yle=0,pHe=bl();function bHe(){var n;return pHe?(n=Yle,Yle+=1):n="TEST_OR_SSR",n}const CHe=function(n){var e=I.useState(),t=we(e,2),i=t[0],r=t[1];return I.useEffect(function(){r("rc_progress_".concat(bHe()))},[]),n||i};var Hle=function(e){var t=e.bg,i=e.children;return I.createElement("div",{style:{width:"100%",height:"100%",background:t}},i)};function Ule(n,e){return Object.keys(n).map(function(t){var i=parseFloat(t),r="".concat(Math.floor(i*e),"%");return"".concat(n[t]," ").concat(r)})}var vHe=I.forwardRef(function(n,e){var t=n.prefixCls,i=n.color,r=n.gradientId,o=n.radius,s=n.style,a=n.ptg,l=n.strokeLinecap,u=n.strokeWidth,c=n.size,d=n.gapDegree,h=i&&Vn(i)==="object",g=h?"#FFF":void 0,m=c/2,f=I.createElement("circle",{className:"".concat(t,"-circle-path"),r:o,cx:m,cy:m,stroke:g,strokeLinecap:l,strokeWidth:u,opacity:a===0?0:1,style:s,ref:e});if(!h)return f;var b="".concat(r,"-conic"),C=d?"".concat(180+d/2,"deg"):"0deg",v=Ule(i,(360-d)/360),w=Ule(i,1),S="conic-gradient(from ".concat(C,", ").concat(v.join(", "),")"),F="linear-gradient(to ".concat(d?"bottom":"top",", ").concat(w.join(", "),")");return I.createElement(I.Fragment,null,I.createElement("mask",{id:b},f),I.createElement("foreignObject",{x:0,y:0,width:c,height:c,mask:"url(#".concat(b,")")},I.createElement(Hle,{bg:F},I.createElement(Hle,{bg:S}))))}),lL=100,$P=function(e,t,i,r,o,s,a,l,u,c){var d=arguments.length>10&&arguments[10]!==void 0?arguments[10]:0,h=i/100*360*((360-s)/360),g=s===0?0:{bottom:0,top:180,left:90,right:-90}[a],m=(100-r)/100*t;u==="round"&&r!==100&&(m+=c/2,m>=t&&(m=t-.01));var f=lL/2;return{stroke:typeof l=="string"?l:void 0,strokeDasharray:"".concat(t,"px ").concat(e),strokeDashoffset:m+d,transform:"rotate(".concat(o+h+g,"deg)"),transformOrigin:"".concat(f,"px ").concat(f,"px"),transition:"stroke-dashoffset .3s ease 0s, stroke-dasharray .3s ease 0s, stroke .3s, stroke-width .06s ease .3s, opacity .3s ease 0s",fillOpacity:0}},yHe=["id","prefixCls","steps","strokeWidth","trailWidth","gapDegree","gapPosition","trailColor","strokeLinecap","style","className","strokeColor","percent"];function Jle(n){var e=n??[];return Array.isArray(e)?e:[e]}var IHe=function(e){var t=Se(Se({},mHe),e),i=t.id,r=t.prefixCls,o=t.steps,s=t.strokeWidth,a=t.trailWidth,l=t.gapDegree,u=l===void 0?0:l,c=t.gapPosition,d=t.trailColor,h=t.strokeLinecap,g=t.style,m=t.className,f=t.strokeColor,b=t.percent,C=zn(t,yHe),v=lL/2,w=CHe(i),S="".concat(w,"-gradient"),F=v-s/2,L=Math.PI*2*F,D=u>0?90+u/2:-90,A=L*((360-u)/360),M=Vn(o)==="object"?o:{count:o,gap:2},W=M.count,Z=M.gap,T=Jle(b),E=Jle(f),V=E.find(function(X){return X&&Vn(X)==="object"}),z=V&&Vn(V)==="object",O=z?"butt":h,P=$P(L,A,0,100,D,u,c,d,O,s),B=fHe(),Y=function(){var U=0;return T.map(function(R,ee){var oe=E[ee]||E[E.length-1],se=$P(L,A,U,R,D,u,c,oe,O,s);return U+=R,I.createElement(vHe,{key:ee,color:oe,ptg:R,radius:F,prefixCls:r,gradientId:S,style:se,strokeLinecap:O,strokeWidth:s,gapDegree:u,ref:function(ce){B[ee]=ce},size:lL})}).reverse()},k=function(){var U=Math.round(W*(T[0]/100)),R=100/W,ee=0;return new Array(W).fill(null).map(function(oe,se){var ue=se<=U-1?E[0]:d,ce=ue&&Vn(ue)==="object"?"url(#".concat(S,")"):void 0,ye=$P(L,A,ee,R,D,u,c,ue,"butt",s,Z);return ee+=(A-ye.strokeDashoffset+Z)*100/A,I.createElement("circle",{key:se,className:"".concat(r,"-circle-path"),r:F,cx:v,cy:v,stroke:ce,strokeWidth:s,opacity:1,style:ye,ref:function(le){B[se]=le}})})};return I.createElement("svg",pt({className:Me("".concat(r,"-circle"),m),viewBox:"0 0 ".concat(lL," ").concat(lL),style:g,id:i,role:"presentation"},C),!W&&I.createElement("circle",{className:"".concat(r,"-circle-trail"),r:F,cx:v,cy:v,stroke:d,strokeLinecap:O,strokeWidth:a||s,style:P}),W?k():Y())};function Kp(n){return!n||n<0?0:n>100?100:n}function aZ(n){let{success:e,successPercent:t}=n,i=t;return e&&"progress"in e&&(i=e.progress),e&&"percent"in e&&(i=e.percent),i}const wHe=n=>{let{percent:e,success:t,successPercent:i}=n;const r=Kp(aZ({success:t,successPercent:i}));return[r,Kp(Kp(e)-r)]},SHe=n=>{let{success:e={},strokeColor:t}=n;const{strokeColor:i}=e;return[i||Ny.green,t||null]},lZ=(n,e,t)=>{var i,r,o,s;let a=-1,l=-1;if(e==="step"){const u=t.steps,c=t.strokeWidth;typeof n=="string"||typeof n>"u"?(a=n==="small"?2:14,l=c??8):typeof n=="number"?[a,l]=[n,n]:[a=14,l=8]=n,a*=u}else if(e==="line"){const u=t==null?void 0:t.strokeWidth;typeof n=="string"||typeof n>"u"?l=u||(n==="small"?6:8):typeof n=="number"?[a,l]=[n,n]:[a=-1,l=8]=n}else(e==="circle"||e==="dashboard")&&(typeof n=="string"||typeof n>"u"?[a,l]=n==="small"?[60,60]:[120,120]:typeof n=="number"?[a,l]=[n,n]:(a=(r=(i=n[0])!==null&&i!==void 0?i:n[1])!==null&&r!==void 0?r:120,l=(s=(o=n[0])!==null&&o!==void 0?o:n[1])!==null&&s!==void 0?s:120));return[a,l]},xHe=3,LHe=n=>xHe/n*100,FHe=n=>{const{prefixCls:e,trailColor:t=null,strokeLinecap:i="round",gapPosition:r,gapDegree:o,width:s=120,type:a,children:l,success:u,size:c=s,steps:d}=n,[h,g]=lZ(c,"circle");let{strokeWidth:m}=n;m===void 0&&(m=Math.max(LHe(h),6));const f={width:h,height:g,fontSize:h*.15+6},b=I.useMemo(()=>{if(o||o===0)return o;if(a==="dashboard")return 75},[o,a]),C=wHe(n),v=r||a==="dashboard"&&"bottom"||void 0,w=Object.prototype.toString.call(n.strokeColor)==="[object Object]",S=SHe({success:u,strokeColor:n.strokeColor}),F=Me(`${e}-inner`,{[`${e}-circle-gradient`]:w}),L=I.createElement(IHe,{steps:d,percent:d?C[1]:C,strokeWidth:m,trailWidth:m,strokeColor:d?S[1]:S,strokeLinecap:i,trailColor:t,prefixCls:e,gapDegree:b,gapPosition:v});return I.createElement("div",{className:F,style:f},h<=20?I.createElement(cg,{title:l},I.createElement("span",null,L)):I.createElement(I.Fragment,null,L,l))},uZ="--progress-line-stroke-color",Kle="--progress-percent",jle=n=>{const e=n?"100%":"-100%";return new Ni(`antProgress${n?"RTL":"LTR"}Active`,{"0%":{transform:`translateX(${e}) scaleX(0)`,opacity:.1},"20%":{transform:`translateX(${e}) scaleX(0)`,opacity:.5},to:{transform:"translateX(0) scaleX(1)",opacity:0}})},_He=n=>{const{componentCls:e,iconCls:t}=n;return{[e]:Object.assign(Object.assign({},oo(n)),{display:"inline-block","&-rtl":{direction:"rtl"},"&-line":{position:"relative",width:"100%",fontSize:n.fontSize},[`${e}-outer`]:{display:"inline-block",width:"100%"},[`&${e}-show-info`]:{[`${e}-outer`]:{marginInlineEnd:`calc(-2em - ${Te(n.marginXS)})`,paddingInlineEnd:`calc(2em + ${Te(n.paddingXS)})`}},[`${e}-inner`]:{position:"relative",display:"inline-block",width:"100%",overflow:"hidden",verticalAlign:"middle",backgroundColor:n.remainingColor,borderRadius:n.lineBorderRadius},[`${e}-inner:not(${e}-circle-gradient)`]:{[`${e}-circle-path`]:{stroke:n.defaultColor}},[`${e}-success-bg, ${e}-bg`]:{position:"relative",background:n.defaultColor,borderRadius:n.lineBorderRadius,transition:`all ${n.motionDurationSlow} ${n.motionEaseInOutCirc}`},[`${e}-bg`]:{overflow:"hidden","&::after":{content:'""',background:{_multi_value_:!0,value:["inherit",`var(${uZ})`]},height:"100%",width:`calc(1 / var(${Kle}) * 100%)`,display:"block"}},[`${e}-success-bg`]:{position:"absolute",insetBlockStart:0,insetInlineStart:0,backgroundColor:n.colorSuccess},[`${e}-text`]:{display:"inline-block",width:"2em",marginInlineStart:n.marginXS,color:n.colorText,lineHeight:1,whiteSpace:"nowrap",textAlign:"start",verticalAlign:"middle",wordBreak:"normal",[t]:{fontSize:n.fontSize}},[`&${e}-status-active`]:{[`${e}-bg::before`]:{position:"absolute",inset:0,backgroundColor:n.colorBgContainer,borderRadius:n.lineBorderRadius,opacity:0,animationName:jle(),animationDuration:n.progressActiveMotionDuration,animationTimingFunction:n.motionEaseOutQuint,animationIterationCount:"infinite",content:'""'}},[`&${e}-rtl${e}-status-active`]:{[`${e}-bg::before`]:{animationName:jle(!0)}},[`&${e}-status-exception`]:{[`${e}-bg`]:{backgroundColor:n.colorError},[`${e}-text`]:{color:n.colorError}},[`&${e}-status-exception ${e}-inner:not(${e}-circle-gradient)`]:{[`${e}-circle-path`]:{stroke:n.colorError}},[`&${e}-status-success`]:{[`${e}-bg`]:{backgroundColor:n.colorSuccess},[`${e}-text`]:{color:n.colorSuccess}},[`&${e}-status-success ${e}-inner:not(${e}-circle-gradient)`]:{[`${e}-circle-path`]:{stroke:n.colorSuccess}}})}},DHe=n=>{const{componentCls:e,iconCls:t}=n;return{[e]:{[`${e}-circle-trail`]:{stroke:n.remainingColor},[`&${e}-circle ${e}-inner`]:{position:"relative",lineHeight:1,backgroundColor:"transparent"},[`&${e}-circle ${e}-text`]:{position:"absolute",insetBlockStart:"50%",insetInlineStart:0,width:"100%",margin:0,padding:0,color:n.circleTextColor,fontSize:n.circleTextFontSize,lineHeight:1,whiteSpace:"normal",textAlign:"center",transform:"translateY(-50%)",[t]:{fontSize:n.circleIconFontSize}},[`${e}-circle&-status-exception`]:{[`${e}-text`]:{color:n.colorError}},[`${e}-circle&-status-success`]:{[`${e}-text`]:{color:n.colorSuccess}}},[`${e}-inline-circle`]:{lineHeight:1,[`${e}-inner`]:{verticalAlign:"bottom"}}}},AHe=n=>{const{componentCls:e}=n;return{[e]:{[`${e}-steps`]:{display:"inline-block","&-outer":{display:"flex",flexDirection:"row",alignItems:"center"},"&-item":{flexShrink:0,minWidth:n.progressStepMinWidth,marginInlineEnd:n.progressStepMarginInlineEnd,backgroundColor:n.remainingColor,transition:`all ${n.motionDurationSlow}`,"&-active":{backgroundColor:n.defaultColor}}}}}},NHe=n=>{const{componentCls:e,iconCls:t}=n;return{[e]:{[`${e}-small&-line, ${e}-small&-line ${e}-text ${t}`]:{fontSize:n.fontSizeSM}}}},kHe=Oo("Progress",n=>{const e=n.calc(n.marginXXS).div(2).equal(),t=Bi(n,{progressStepMarginInlineEnd:e,progressStepMinWidth:e,progressActiveMotionDuration:"2.4s"});return[_He(t),DHe(t),AHe(t),NHe(t)]},n=>({circleTextColor:n.colorText,defaultColor:n.colorInfo,remainingColor:n.colorFillSecondary,lineBorderRadius:100,circleTextFontSize:"1em",circleIconFontSize:`${n.fontSize/n.fontSizeSM}em`}));var MHe=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{let e=[];return Object.keys(n).forEach(t=>{const i=parseFloat(t.replace(/%/g,""));isNaN(i)||e.push({key:i,value:n[t]})}),e=e.sort((t,i)=>t.key-i.key),e.map(t=>{let{key:i,value:r}=t;return`${r} ${i}%`}).join(", ")},THe=(n,e)=>{const{from:t=Ny.blue,to:i=Ny.blue,direction:r=e==="rtl"?"to left":"to right"}=n,o=MHe(n,["from","to","direction"]);if(Object.keys(o).length!==0){const a=ZHe(o),l=`linear-gradient(${r}, ${a})`;return{background:l,[uZ]:l}}const s=`linear-gradient(${r}, ${t}, ${i})`;return{background:s,[uZ]:s}},EHe=n=>{const{prefixCls:e,direction:t,percent:i,size:r,strokeWidth:o,strokeColor:s,strokeLinecap:a="round",children:l,trailColor:u=null,success:c}=n,d=s&&typeof s!="string"?THe(s,t):{[uZ]:s,background:s},h=a==="square"||a==="butt"?0:void 0,g=r??[-1,o||(r==="small"?6:8)],[m,f]=lZ(g,"line",{strokeWidth:o}),b={backgroundColor:u||void 0,borderRadius:h},C=Object.assign(Object.assign({width:`${Kp(i)}%`,height:f,borderRadius:h},d),{[Kle]:Kp(i)/100}),v=aZ(n),w={width:`${Kp(v)}%`,height:f,borderRadius:h,backgroundColor:c==null?void 0:c.strokeColor},S={width:m<0?"100%":m,height:f};return I.createElement(I.Fragment,null,I.createElement("div",{className:`${e}-outer`,style:S},I.createElement("div",{className:`${e}-inner`,style:b},I.createElement("div",{className:`${e}-bg`,style:C}),v!==void 0?I.createElement("div",{className:`${e}-success-bg`,style:w}):null)),l)},WHe=n=>{const{size:e,steps:t,percent:i=0,strokeWidth:r=8,strokeColor:o,trailColor:s=null,prefixCls:a,children:l}=n,u=Math.round(t*(i/100)),d=e??[e==="small"?2:14,r],[h,g]=lZ(d,"step",{steps:t,strokeWidth:r}),m=h/t,f=new Array(t);for(let b=0;b{const{prefixCls:t,className:i,rootClassName:r,steps:o,strokeColor:s,percent:a=0,size:l="default",showInfo:u=!0,type:c="line",status:d,format:h,style:g}=n,m=RHe(n,["prefixCls","className","rootClassName","steps","strokeColor","percent","size","showInfo","type","status","format","style"]),f=I.useMemo(()=>{var E,V;const z=aZ(n);return parseInt(z!==void 0?(E=z??0)===null||E===void 0?void 0:E.toString():(V=a??0)===null||V===void 0?void 0:V.toString(),10)},[a,n.success,n.successPercent]),b=I.useMemo(()=>!GHe.includes(d)&&f>=100?"success":d||"normal",[d,f]),{getPrefixCls:C,direction:v,progress:w}=I.useContext(Tn),S=C("progress",t),[F,L,D]=kHe(S),A=I.useMemo(()=>{if(!u)return null;const E=aZ(n);let V;const z=h||(P=>`${P}%`),O=c==="line";return h||b!=="exception"&&b!=="success"?V=z(Kp(a),Kp(E)):b==="exception"?V=O?I.createElement(R1,null):I.createElement(Xp,null):b==="success"&&(V=O?I.createElement(xx,null):I.createElement(Woe,null)),I.createElement("span",{className:`${S}-text`,title:typeof V=="string"?V:void 0},V)},[u,a,f,b,c,S,h]),M=Array.isArray(s)?s[0]:s,W=typeof s=="string"||Array.isArray(s)?s:void 0;let Z;c==="line"?Z=o?I.createElement(WHe,Object.assign({},n,{strokeColor:W,prefixCls:S,steps:typeof o=="object"?o.count:o}),A):I.createElement(EHe,Object.assign({},n,{strokeColor:M,prefixCls:S,direction:v}),A):(c==="circle"||c==="dashboard")&&(Z=I.createElement(FHe,Object.assign({},n,{strokeColor:M,prefixCls:S,progressStatus:b}),A));const T=Me(S,`${S}-status-${b}`,{[`${S}-${c==="dashboard"&&"circle"||c}`]:c!=="line",[`${S}-inline-circle`]:c==="circle"&&lZ(l,"circle")[0]<=20,[`${S}-line`]:!o&&c==="line",[`${S}-steps`]:o,[`${S}-show-info`]:u,[`${S}-${l}`]:typeof l=="string",[`${S}-rtl`]:v==="rtl"},w==null?void 0:w.className,i,r,L,D);return F(I.createElement("div",Object.assign({ref:e,style:Object.assign(Object.assign({},w==null?void 0:w.style),g),className:T,role:"progressbar","aria-valuenow":f},ra(m,["trailColor","strokeWidth","width","gapDegree","gapPosition","strokeLinecap","success","successPercent"])),Z))});var XHe={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M360 184h-8c4.4 0 8-3.6 8-8v8h304v-8c0 4.4 3.6 8 8 8h-8v72h72v-80c0-35.3-28.7-64-64-64H352c-35.3 0-64 28.7-64 64v80h72v-72zm504 72H160c-17.7 0-32 14.3-32 32v32c0 4.4 3.6 8 8 8h60.4l24.7 523c1.6 34.1 29.8 61 63.9 61h454c34.2 0 62.3-26.8 63.9-61l24.7-523H888c4.4 0 8-3.6 8-8v-32c0-17.7-14.3-32-32-32zM731.3 840H292.7l-24.2-512h487l-24.2 512z"}}]},name:"delete",theme:"outlined"};const PHe=XHe;var OHe=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:PHe}))},BHe=I.forwardRef(OHe);const zHe=BHe;var YHe=function(){var n=document.getSelection();if(!n.rangeCount)return function(){};for(var e=document.activeElement,t=[],i=0;i"u"){window.clipboardData.clearData();var d=Qle[e.format]||Qle.default;window.clipboardData.setData(d,n)}else c.clipboardData.clearData(),c.clipboardData.setData(e.format,n);e.onCopy&&(c.preventDefault(),e.onCopy(c.clipboardData))}),document.body.appendChild(a),o.selectNodeContents(a),s.addRange(o);var u=document.execCommand("copy");if(!u)throw new Error("copy command was unsuccessful");l=!0}catch{try{window.clipboardData.setData(e.format||"text",n),e.onCopy&&e.onCopy(window.clipboardData),l=!0}catch{i=JHe("message"in e?e.message:UHe),window.prompt(i,n)}}finally{s&&(typeof s.removeRange=="function"?s.removeRange(o):s.removeAllRanges()),a&&document.body.removeChild(a),r()}return l}var jHe=KHe;const qP=Kl(jHe),eO=function(n,e){if(n&&e){var t=Array.isArray(e)?e:e.split(","),i=n.name||"",r=n.type||"",o=r.replace(/\/.*$/,"");return t.some(function(s){var a=s.trim();if(/^\*(\/\*)?$/.test(s))return!0;if(a.charAt(0)==="."){var l=i.toLowerCase(),u=a.toLowerCase(),c=[u];return(u===".jpg"||u===".jpeg")&&(c=[".jpg",".jpeg"]),c.some(function(d){return l.endsWith(d)})}return/\/\*$/.test(a)?o===a.replace(/\/.*$/,""):r===a?!0:/^\w+$/.test(a)?(ia(!1,"Upload takes an invalidate 'accept' type '".concat(a,"'.Skip for check.")),!0):!1})}return!0};function QHe(n,e){var t="cannot ".concat(n.method," ").concat(n.action," ").concat(e.status,"'"),i=new Error(t);return i.status=e.status,i.method=n.method,i.url=n.action,i}function $le(n){var e=n.responseText||n.response;if(!e)return e;try{return JSON.parse(e)}catch{return e}}function $He(n){var e=new XMLHttpRequest;n.onProgress&&e.upload&&(e.upload.onprogress=function(o){o.total>0&&(o.percent=o.loaded/o.total*100),n.onProgress(o)});var t=new FormData;n.data&&Object.keys(n.data).forEach(function(r){var o=n.data[r];if(Array.isArray(o)){o.forEach(function(s){t.append("".concat(r,"[]"),s)});return}t.append(r,o)}),n.file instanceof Blob?t.append(n.filename,n.file,n.file.name):t.append(n.filename,n.file),e.onerror=function(o){n.onError(o)},e.onload=function(){return e.status<200||e.status>=300?n.onError(QHe(n,e),$le(e)):n.onSuccess($le(e),e)},e.open(n.method,n.action,!0),n.withCredentials&&"withCredentials"in e&&(e.withCredentials=!0);var i=n.headers||{};return i["X-Requested-With"]!==null&&e.setRequestHeader("X-Requested-With","XMLHttpRequest"),Object.keys(i).forEach(function(r){i[r]!==null&&e.setRequestHeader(r,i[r])}),e.send(t),{abort:function(){e.abort()}}}function qHe(n,e){var t=n.createReader(),i=[];function r(){t.readEntries(function(o){var s=Array.prototype.slice.apply(o);i=i.concat(s);var a=!s.length;a?e(i):r()})}r()}var e6e=function(e,t,i){var r=function o(s,a){s&&(s.path=a||"",s.isFile?s.file(function(l){i(l)&&(s.fullPath&&!l.webkitRelativePath&&(Object.defineProperties(l,{webkitRelativePath:{writable:!0}}),l.webkitRelativePath=s.fullPath.replace(/^\//,""),Object.defineProperties(l,{webkitRelativePath:{writable:!1}})),t([l]))}):s.isDirectory&&qHe(s,function(l){l.forEach(function(u){o(u,"".concat(a).concat(s.name,"/"))})}))};e.forEach(function(o){r(o.webkitGetAsEntry())})},t6e=+new Date,n6e=0;function tO(){return"rc-upload-".concat(t6e,"-").concat(++n6e)}var i6e=["component","prefixCls","className","classNames","disabled","id","style","styles","multiple","accept","capture","children","directory","openFileDialogOnClick","onMouseEnter","onMouseLeave","hasControlInside"],r6e=function(n){Om(t,n);var e=_1(t);function t(){var i;Cs(this,t);for(var r=arguments.length,o=new Array(r),s=0;s{const{componentCls:e,iconCls:t}=n;return{[`${e}-wrapper`]:{[`${e}-drag`]:{position:"relative",width:"100%",height:"100%",textAlign:"center",background:n.colorFillAlter,border:`${Te(n.lineWidth)} dashed ${n.colorBorder}`,borderRadius:n.borderRadiusLG,cursor:"pointer",transition:`border-color ${n.motionDurationSlow}`,[e]:{padding:n.padding},[`${e}-btn`]:{display:"table",width:"100%",height:"100%",outline:"none",borderRadius:n.borderRadiusLG,"&:focus-visible":{outline:`${Te(n.lineWidthFocus)} solid ${n.colorPrimaryBorder}`}},[`${e}-drag-container`]:{display:"table-cell",verticalAlign:"middle"},[` + &:not(${e}-disabled):hover, + &-hover:not(${e}-disabled) + `]:{borderColor:n.colorPrimaryHover},[`p${e}-drag-icon`]:{marginBottom:n.margin,[t]:{color:n.colorPrimary,fontSize:n.uploadThumbnailSize}},[`p${e}-text`]:{margin:`0 0 ${Te(n.marginXXS)}`,color:n.colorTextHeading,fontSize:n.fontSizeLG},[`p${e}-hint`]:{color:n.colorTextDescription,fontSize:n.fontSize},[`&${e}-disabled`]:{[`p${e}-drag-icon ${t}, + p${e}-text, + p${e}-hint + `]:{color:n.colorTextDisabled}}}}}},s6e=n=>{const{componentCls:e,antCls:t,iconCls:i,fontSize:r,lineHeight:o,calc:s}=n,a=`${e}-list-item`,l=`${a}-actions`,u=`${a}-action`,c=n.fontHeightSM;return{[`${e}-wrapper`]:{[`${e}-list`]:Object.assign(Object.assign({},ky()),{lineHeight:n.lineHeight,[a]:{position:"relative",height:s(n.lineHeight).mul(r).equal(),marginTop:n.marginXS,fontSize:r,display:"flex",alignItems:"center",transition:`background-color ${n.motionDurationSlow}`,"&:hover":{backgroundColor:n.controlItemBgHover},[`${a}-name`]:Object.assign(Object.assign({},Vp),{padding:`0 ${Te(n.paddingXS)}`,lineHeight:o,flex:"auto",transition:`all ${n.motionDurationSlow}`}),[l]:{whiteSpace:"nowrap",[u]:{opacity:0},[i]:{color:n.actionsColor,transition:`all ${n.motionDurationSlow}`},[` + ${u}:focus-visible, + &.picture ${u} + `]:{opacity:1},[`${u}${t}-btn`]:{height:c,border:0,lineHeight:1}},[`${e}-icon ${i}`]:{color:n.colorTextDescription,fontSize:r},[`${a}-progress`]:{position:"absolute",bottom:n.calc(n.uploadProgressOffset).mul(-1).equal(),width:"100%",paddingInlineStart:s(r).add(n.paddingXS).equal(),fontSize:r,lineHeight:0,pointerEvents:"none","> div":{margin:0}}},[`${a}:hover ${u}`]:{opacity:1},[`${a}-error`]:{color:n.colorError,[`${a}-name, ${e}-icon ${i}`]:{color:n.colorError},[l]:{[`${i}, ${i}:hover`]:{color:n.colorError},[u]:{opacity:1}}},[`${e}-list-item-container`]:{transition:`opacity ${n.motionDurationSlow}, height ${n.motionDurationSlow}`,"&::before":{display:"table",width:0,height:0,content:'""'}}})}}},qle=new Ni("uploadAnimateInlineIn",{from:{width:0,height:0,margin:0,padding:0,opacity:0}}),eue=new Ni("uploadAnimateInlineOut",{to:{width:0,height:0,margin:0,padding:0,opacity:0}}),a6e=n=>{const{componentCls:e}=n,t=`${e}-animate-inline`;return[{[`${e}-wrapper`]:{[`${t}-appear, ${t}-enter, ${t}-leave`]:{animationDuration:n.motionDurationSlow,animationTimingFunction:n.motionEaseInOutCirc,animationFillMode:"forwards"},[`${t}-appear, ${t}-enter`]:{animationName:qle},[`${t}-leave`]:{animationName:eue}}},{[`${e}-wrapper`]:xre(n)},qle,eue]},l6e=n=>{const{componentCls:e,iconCls:t,uploadThumbnailSize:i,uploadProgressOffset:r,calc:o}=n,s=`${e}-list`,a=`${s}-item`;return{[`${e}-wrapper`]:{[` + ${s}${s}-picture, + ${s}${s}-picture-card, + ${s}${s}-picture-circle + `]:{[a]:{position:"relative",height:o(i).add(o(n.lineWidth).mul(2)).add(o(n.paddingXS).mul(2)).equal(),padding:n.paddingXS,border:`${Te(n.lineWidth)} ${n.lineType} ${n.colorBorder}`,borderRadius:n.borderRadiusLG,"&:hover":{background:"transparent"},[`${a}-thumbnail`]:Object.assign(Object.assign({},Vp),{width:i,height:i,lineHeight:Te(o(i).add(n.paddingSM).equal()),textAlign:"center",flex:"none",[t]:{fontSize:n.fontSizeHeading2,color:n.colorPrimary},img:{display:"block",width:"100%",height:"100%",overflow:"hidden"}}),[`${a}-progress`]:{bottom:r,width:`calc(100% - ${Te(o(n.paddingSM).mul(2).equal())})`,marginTop:0,paddingInlineStart:o(i).add(n.paddingXS).equal()}},[`${a}-error`]:{borderColor:n.colorError,[`${a}-thumbnail ${t}`]:{[`svg path[fill='${NX[0]}']`]:{fill:n.colorErrorBg},[`svg path[fill='${NX.primary}']`]:{fill:n.colorError}}},[`${a}-uploading`]:{borderStyle:"dashed",[`${a}-name`]:{marginBottom:r}}},[`${s}${s}-picture-circle ${a}`]:{[`&, &::before, ${a}-thumbnail`]:{borderRadius:"50%"}}}}},u6e=n=>{const{componentCls:e,iconCls:t,fontSizeLG:i,colorTextLightSolid:r,calc:o}=n,s=`${e}-list`,a=`${s}-item`,l=n.uploadPicCardSize;return{[` + ${e}-wrapper${e}-picture-card-wrapper, + ${e}-wrapper${e}-picture-circle-wrapper + `]:Object.assign(Object.assign({},ky()),{display:"block",[`${e}${e}-select`]:{width:l,height:l,textAlign:"center",verticalAlign:"top",backgroundColor:n.colorFillAlter,border:`${Te(n.lineWidth)} dashed ${n.colorBorder}`,borderRadius:n.borderRadiusLG,cursor:"pointer",transition:`border-color ${n.motionDurationSlow}`,[`> ${e}`]:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",textAlign:"center"},[`&:not(${e}-disabled):hover`]:{borderColor:n.colorPrimary}},[`${s}${s}-picture-card, ${s}${s}-picture-circle`]:{display:"flex",flexWrap:"wrap","@supports not (gap: 1px)":{"& > *":{marginBlockEnd:n.marginXS,marginInlineEnd:n.marginXS}},"@supports (gap: 1px)":{gap:n.marginXS},[`${s}-item-container`]:{display:"inline-block",width:l,height:l,verticalAlign:"top"},"&::after":{display:"none"},"&::before":{display:"none"},[a]:{height:"100%",margin:0,"&::before":{position:"absolute",zIndex:1,width:`calc(100% - ${Te(o(n.paddingXS).mul(2).equal())})`,height:`calc(100% - ${Te(o(n.paddingXS).mul(2).equal())})`,backgroundColor:n.colorBgMask,opacity:0,transition:`all ${n.motionDurationSlow}`,content:'" "'}},[`${a}:hover`]:{[`&::before, ${a}-actions`]:{opacity:1}},[`${a}-actions`]:{position:"absolute",insetInlineStart:0,zIndex:10,width:"100%",whiteSpace:"nowrap",textAlign:"center",opacity:0,transition:`all ${n.motionDurationSlow}`,[` + ${t}-eye, + ${t}-download, + ${t}-delete + `]:{zIndex:10,width:i,margin:`0 ${Te(n.marginXXS)}`,fontSize:i,cursor:"pointer",transition:`all ${n.motionDurationSlow}`,color:r,"&:hover":{color:r},svg:{verticalAlign:"baseline"}}},[`${a}-thumbnail, ${a}-thumbnail img`]:{position:"static",display:"block",width:"100%",height:"100%",objectFit:"contain"},[`${a}-name`]:{display:"none",textAlign:"center"},[`${a}-file + ${a}-name`]:{position:"absolute",bottom:n.margin,display:"block",width:`calc(100% - ${Te(o(n.paddingXS).mul(2).equal())})`},[`${a}-uploading`]:{[`&${a}`]:{backgroundColor:n.colorFillAlter},[`&::before, ${t}-eye, ${t}-download, ${t}-delete`]:{display:"none"}},[`${a}-progress`]:{bottom:n.marginXL,width:`calc(100% - ${Te(o(n.paddingXS).mul(2).equal())})`,paddingInlineStart:0}}}),[`${e}-wrapper${e}-picture-circle-wrapper`]:{[`${e}${e}-select`]:{borderRadius:"50%"}}}},c6e=n=>{const{componentCls:e}=n;return{[`${e}-rtl`]:{direction:"rtl"}}},d6e=n=>{const{componentCls:e,colorTextDisabled:t}=n;return{[`${e}-wrapper`]:Object.assign(Object.assign({},oo(n)),{[e]:{outline:0,"input[type='file']":{cursor:"pointer"}},[`${e}-select`]:{display:"inline-block"},[`${e}-disabled`]:{color:t,cursor:"not-allowed"}})}},h6e=Oo("Upload",n=>{const{fontSizeHeading3:e,fontHeight:t,lineWidth:i,controlHeightLG:r,calc:o}=n,s=Bi(n,{uploadThumbnailSize:o(e).mul(2).equal(),uploadProgressOffset:o(o(t).div(2)).add(i).equal(),uploadPicCardSize:o(r).mul(2.55).equal()});return[d6e(s),o6e(s),l6e(s),u6e(s),s6e(s),a6e(s),c6e(s),Z4(s)]},n=>({actionsColor:n.colorTextDescription}));var g6e={icon:function(e,t){return{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M534 352V136H232v752h560V394H576a42 42 0 01-42-42z",fill:t}},{tag:"path",attrs:{d:"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM602 137.8L790.2 326H602V137.8zM792 888H232V136h302v216a42 42 0 0042 42h216v494z",fill:e}}]}},name:"file",theme:"twotone"};const m6e=g6e;var f6e=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:m6e}))},p6e=I.forwardRef(f6e);const b6e=p6e;var C6e={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M779.3 196.6c-94.2-94.2-247.6-94.2-341.7 0l-261 260.8c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l261-260.8c32.4-32.4 75.5-50.2 121.3-50.2s88.9 17.8 121.2 50.2c32.4 32.4 50.2 75.5 50.2 121.2 0 45.8-17.8 88.8-50.2 121.2l-266 265.9-43.1 43.1c-40.3 40.3-105.8 40.3-146.1 0-19.5-19.5-30.2-45.4-30.2-73s10.7-53.5 30.2-73l263.9-263.8c6.7-6.6 15.5-10.3 24.9-10.3h.1c9.4 0 18.1 3.7 24.7 10.3 6.7 6.7 10.3 15.5 10.3 24.9 0 9.3-3.7 18.1-10.3 24.7L372.4 653c-1.7 1.7-2.6 4-2.6 6.4s.9 4.7 2.6 6.4l36.9 36.9a9 9 0 0012.7 0l215.6-215.6c19.9-19.9 30.8-46.3 30.8-74.4s-11-54.6-30.8-74.4c-41.1-41.1-107.9-41-149 0L463 364 224.8 602.1A172.22 172.22 0 00174 724.8c0 46.3 18.1 89.8 50.8 122.5 33.9 33.8 78.3 50.7 122.7 50.7 44.4 0 88.8-16.9 122.6-50.7l309.2-309C824.8 492.7 850 432 850 367.5c.1-64.6-25.1-125.3-70.7-170.9z"}}]},name:"paper-clip",theme:"outlined"};const v6e=C6e;var y6e=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:v6e}))},I6e=I.forwardRef(y6e);const w6e=I6e;var S6e={icon:function(e,t){return{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 632H136v-39.9l138.5-164.3 150.1 178L658.1 489 888 761.6V792zm0-129.8L664.2 396.8c-3.2-3.8-9-3.8-12.2 0L424.6 666.4l-144-170.7c-3.2-3.8-9-3.8-12.2 0L136 652.7V232h752v430.2z",fill:e}},{tag:"path",attrs:{d:"M424.6 765.8l-150.1-178L136 752.1V792h752v-30.4L658.1 489z",fill:t}},{tag:"path",attrs:{d:"M136 652.7l132.4-157c3.2-3.8 9-3.8 12.2 0l144 170.7L652 396.8c3.2-3.8 9-3.8 12.2 0L888 662.2V232H136v420.7zM304 280a88 88 0 110 176 88 88 0 010-176z",fill:t}},{tag:"path",attrs:{d:"M276 368a28 28 0 1056 0 28 28 0 10-56 0z",fill:t}},{tag:"path",attrs:{d:"M304 456a88 88 0 100-176 88 88 0 000 176zm0-116c15.5 0 28 12.5 28 28s-12.5 28-28 28-28-12.5-28-28 12.5-28 28-28z",fill:e}}]}},name:"picture",theme:"twotone"};const x6e=S6e;var L6e=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:x6e}))},F6e=I.forwardRef(L6e);const _6e=F6e;function cZ(n){return Object.assign(Object.assign({},n),{lastModified:n.lastModified,lastModifiedDate:n.lastModifiedDate,name:n.name,size:n.size,type:n.type,uid:n.uid,percent:0,originFileObj:n})}function dZ(n,e){const t=_t(e),i=t.findIndex(r=>{let{uid:o}=r;return o===n.uid});return i===-1?t.push(n):t[i]=n,t}function rO(n,e){const t=n.uid!==void 0?"uid":"name";return e.filter(i=>i[t]===n[t])[0]}function D6e(n,e){const t=n.uid!==void 0?"uid":"name",i=e.filter(r=>r[t]!==n[t]);return i.length===e.length?null:i}const A6e=function(){const e=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:"").split("/"),i=e[e.length-1].split(/#|\?/)[0];return(/\.[^./\\]*$/.exec(i)||[""])[0]},tue=n=>n.indexOf("image/")===0,N6e=n=>{if(n.type&&!n.thumbUrl)return tue(n.type);const e=n.thumbUrl||n.url||"",t=A6e(e);return/^data:image\//.test(e)||/(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico|heic|heif)$/i.test(t)?!0:!(/^data:/.test(e)||t)},jp=200;function k6e(n){return new Promise(e=>{if(!n.type||!tue(n.type)){e("");return}const t=document.createElement("canvas");t.width=jp,t.height=jp,t.style.cssText=`position: fixed; left: 0; top: 0; width: ${jp}px; height: ${jp}px; z-index: 9999; display: none;`,document.body.appendChild(t);const i=t.getContext("2d"),r=new Image;if(r.onload=()=>{const{width:o,height:s}=r;let a=jp,l=jp,u=0,c=0;o>s?(l=s*(jp/o),c=-(l-a)/2):(a=o*(jp/s),u=-(a-l)/2),i.drawImage(r,u,c,a,l);const d=t.toDataURL();document.body.removeChild(t),window.URL.revokeObjectURL(r.src),e(d)},r.crossOrigin="anonymous",n.type.startsWith("image/svg+xml")){const o=new FileReader;o.onload=()=>{o.result&&typeof o.result=="string"&&(r.src=o.result)},o.readAsDataURL(n)}else if(n.type.startsWith("image/gif")){const o=new FileReader;o.onload=()=>{o.result&&e(o.result)},o.readAsDataURL(n)}else r.src=window.URL.createObjectURL(n)})}var M6e={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M505.7 661a8 8 0 0012.6 0l112-141.7c4.1-5.2.4-12.9-6.3-12.9h-74.1V168c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v338.3H400c-6.7 0-10.4 7.7-6.3 12.9l112 141.8zM878 626h-60c-4.4 0-8 3.6-8 8v154H214V634c0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8v198c0 17.7 14.3 32 32 32h684c17.7 0 32-14.3 32-32V634c0-4.4-3.6-8-8-8z"}}]},name:"download",theme:"outlined"};const Z6e=M6e;var T6e=function(e,t){return I.createElement(vo,pt({},e,{ref:t,icon:Z6e}))},E6e=I.forwardRef(T6e);const W6e=E6e,R6e=I.forwardRef((n,e)=>{let{prefixCls:t,className:i,style:r,locale:o,listType:s,file:a,items:l,progress:u,iconRender:c,actionIconRender:d,itemRender:h,isImgUrl:g,showPreviewIcon:m,showRemoveIcon:f,showDownloadIcon:b,previewIcon:C,removeIcon:v,downloadIcon:w,onPreview:S,onDownload:F,onClose:L}=n;var D,A;const{status:M}=a,[W,Z]=I.useState(M);I.useEffect(()=>{M!=="removed"&&Z(M)},[M]);const[T,E]=I.useState(!1);I.useEffect(()=>{const fe=setTimeout(()=>{E(!0)},300);return()=>{clearTimeout(fe)}},[]);const V=c(a);let z=I.createElement("div",{className:`${t}-icon`},V);if(s==="picture"||s==="picture-card"||s==="picture-circle")if(W==="uploading"||!a.thumbUrl&&!a.url){const fe=Me(`${t}-list-item-thumbnail`,{[`${t}-list-item-file`]:W!=="uploading"});z=I.createElement("div",{className:fe},V)}else{const fe=g!=null&&g(a)?I.createElement("img",{src:a.thumbUrl||a.url,alt:a.name,className:`${t}-list-item-image`,crossOrigin:a.crossOrigin}):V,le=Me(`${t}-list-item-thumbnail`,{[`${t}-list-item-file`]:g&&!g(a)});z=I.createElement("a",{className:le,onClick:Ze=>S(a,Ze),href:a.url||a.thumbUrl,target:"_blank",rel:"noopener noreferrer"},fe)}const O=Me(`${t}-list-item`,`${t}-list-item-${W}`),P=typeof a.linkProps=="string"?JSON.parse(a.linkProps):a.linkProps,B=f?d((typeof v=="function"?v(a):v)||I.createElement(zHe,null),()=>L(a),t,o.removeFile,!0):null,Y=b&&W==="done"?d((typeof w=="function"?w(a):w)||I.createElement(W6e,null),()=>F(a),t,o.downloadFile):null,k=s!=="picture-card"&&s!=="picture-circle"&&I.createElement("span",{key:"download-delete",className:Me(`${t}-list-item-actions`,{picture:s==="picture"})},Y,B),X=Me(`${t}-list-item-name`),U=a.url?[I.createElement("a",Object.assign({key:"view",target:"_blank",rel:"noopener noreferrer",className:X,title:a.name},P,{href:a.url,onClick:fe=>S(a,fe)}),a.name),k]:[I.createElement("span",{key:"view",className:X,onClick:fe=>S(a,fe),title:a.name},a.name),k],R=m&&(a.url||a.thumbUrl)?I.createElement("a",{href:a.url||a.thumbUrl,target:"_blank",rel:"noopener noreferrer",onClick:fe=>S(a,fe),title:o.previewFile},typeof C=="function"?C(a):C||I.createElement(ale,null)):null,ee=(s==="picture-card"||s==="picture-circle")&&W!=="uploading"&&I.createElement("span",{className:`${t}-list-item-actions`},R,W==="done"&&Y,B),{getPrefixCls:oe}=I.useContext(Tn),se=oe(),ue=I.createElement("div",{className:O},z,U,ee,T&&I.createElement(Qc,{motionName:`${se}-fade`,visible:W==="uploading",motionDeadline:2e3},fe=>{let{className:le}=fe;const Ze="percent"in a?I.createElement(VHe,Object.assign({},u,{type:"line",percent:a.percent,"aria-label":a["aria-label"],"aria-labelledby":a["aria-labelledby"]})):null;return I.createElement("div",{className:Me(`${t}-list-item-progress`,le)},Ze)})),ce=a.response&&typeof a.response=="string"?a.response:((D=a.error)===null||D===void 0?void 0:D.statusText)||((A=a.error)===null||A===void 0?void 0:A.message)||o.uploadError,ye=W==="error"?I.createElement(cg,{title:ce,getPopupContainer:fe=>fe.parentNode},ue):ue;return I.createElement("div",{className:Me(`${t}-list-item-container`,i),style:r,ref:e},h?h(ye,a,l,{download:F.bind(null,a),preview:S.bind(null,a),remove:L.bind(null,a)}):ye)}),G6e=(n,e)=>{const{listType:t="text",previewFile:i=k6e,onPreview:r,onDownload:o,onRemove:s,locale:a,iconRender:l,isImageUrl:u=N6e,prefixCls:c,items:d=[],showPreviewIcon:h=!0,showRemoveIcon:g=!0,showDownloadIcon:m=!1,removeIcon:f,previewIcon:b,downloadIcon:C,progress:v={size:[-1,2],showInfo:!1},appendAction:w,appendActionVisible:S=!0,itemRender:F,disabled:L}=n,D=AVe(),[A,M]=I.useState(!1);I.useEffect(()=>{t!=="picture"&&t!=="picture-card"&&t!=="picture-circle"||(d||[]).forEach(R=>{typeof document>"u"||typeof window>"u"||!window.FileReader||!window.File||!(R.originFileObj instanceof File||R.originFileObj)||R.thumbUrl!==void 0||i&&i(R.originFileObj).then(ee=>{R.thumbUrl=ee||"",D()})})},[t,d,i]),I.useEffect(()=>{M(!0)},[]);const W=(R,ee)=>{if(r)return ee==null||ee.preventDefault(),r(R)},Z=R=>{typeof o=="function"?o(R):R.url&&window.open(R.url)},T=R=>{s==null||s(R)},E=R=>{if(l)return l(R,t);const ee=R.status==="uploading",oe=u&&u(R)?I.createElement(_6e,null):I.createElement(b6e,null);let se=ee?I.createElement(Ey,null):I.createElement(w6e,null);return t==="picture"?se=ee?I.createElement(Ey,null):oe:(t==="picture-card"||t==="picture-circle")&&(se=ee?a.uploading:oe),se},V=(R,ee,oe,se,ue)=>{const ce={type:"text",size:"small",title:se,onClick:ye=>{var fe,le;ee(),I.isValidElement(R)&&((le=(fe=R.props).onClick)===null||le===void 0||le.call(fe,ye))},className:`${oe}-list-item-action`};if(ue&&(ce.disabled=L),I.isValidElement(R)){const ye=jl(R,Object.assign(Object.assign({},R.props),{onClick:()=>{}}));return I.createElement(so,Object.assign({},ce,{icon:ye}))}return I.createElement(so,Object.assign({},ce),I.createElement("span",null,R))};I.useImperativeHandle(e,()=>({handlePreview:W,handleDownload:Z}));const{getPrefixCls:z}=I.useContext(Tn),O=z("upload",c),P=z(),B=Me(`${O}-list`,`${O}-list-${t}`),Y=_t(d.map(R=>({key:R.uid,file:R})));let X={motionDeadline:2e3,motionName:`${O}-${t==="picture-card"||t==="picture-circle"?"animate-inline":"animate"}`,keys:Y,motionAppear:A};const U=I.useMemo(()=>{const R=Object.assign({},nM(P));return delete R.onAppearEnd,delete R.onEnterEnd,delete R.onLeaveEnd,R},[P]);return t!=="picture-card"&&t!=="picture-circle"&&(X=Object.assign(Object.assign({},U),X)),I.createElement("div",{className:B},I.createElement(UX,Object.assign({},X,{component:!1}),R=>{let{key:ee,file:oe,className:se,style:ue}=R;return I.createElement(R6e,{key:ee,locale:a,prefixCls:O,className:se,style:ue,file:oe,items:d,progress:v,listType:t,isImgUrl:u,showPreviewIcon:h,showRemoveIcon:g,showDownloadIcon:m,removeIcon:f,previewIcon:b,downloadIcon:C,iconRender:E,actionIconRender:V,itemRender:F,onPreview:W,onDownload:Z,onClose:T})}),w&&I.createElement(Qc,Object.assign({},X,{visible:S,forceRender:!0}),R=>{let{className:ee,style:oe}=R;return jl(w,se=>({className:Me(se.className,ee),style:Object.assign(Object.assign(Object.assign({},oe),{pointerEvents:ee?"none":void 0}),se.style)}))}))},V6e=I.forwardRef(G6e);var X6e=function(n,e,t,i){function r(o){return o instanceof t?o:new t(function(s){s(o)})}return new(t||(t=Promise))(function(o,s){function a(c){try{u(i.next(c))}catch(d){s(d)}}function l(c){try{u(i.throw(c))}catch(d){s(d)}}function u(c){c.done?o(c.value):r(c.value).then(a,l)}u((i=i.apply(n,e||[])).next())})};const uL=`__LIST_IGNORE_${Date.now()}__`,P6e=(n,e)=>{const{fileList:t,defaultFileList:i,onRemove:r,showUploadList:o=!0,listType:s="text",onPreview:a,onDownload:l,onChange:u,onDrop:c,previewFile:d,disabled:h,locale:g,iconRender:m,isImageUrl:f,progress:b,prefixCls:C,className:v,type:w="select",children:S,style:F,itemRender:L,maxCount:D,data:A={},multiple:M=!1,hasControlInside:W=!0,action:Z="",accept:T="",supportServerRender:E=!0,rootClassName:V}=n,z=I.useContext(Kd),O=h??z,[P,B]=Ur(i||[],{value:t,postState:We=>We??[]}),[Y,k]=I.useState("drop"),X=I.useRef(null);I.useMemo(()=>{const We=Date.now();(t||[]).forEach((ht,He)=>{!ht.uid&&!Object.isFrozen(ht)&&(ht.uid=`__AUTO__${We}_${He}__`)})},[t]);const U=(We,ht,He)=>{let Re=_t(ht),dt=!1;D===1?Re=Re.slice(-1):D&&(dt=Re.length>D,Re=Re.slice(0,D)),zd.flushSync(()=>{B(Re)});const yt={file:We,fileList:Re};He&&(yt.event=He),(!dt||We.status==="removed"||Re.some(Kt=>Kt.uid===We.uid))&&zd.flushSync(()=>{u==null||u(yt)})},R=(We,ht)=>X6e(void 0,void 0,void 0,function*(){const{beforeUpload:He,transformFile:Re}=n;let dt=We;if(He){const yt=yield He(We,ht);if(yt===!1)return!1;if(delete We[uL],yt===uL)return Object.defineProperty(We,uL,{value:!0,configurable:!0}),!1;typeof yt=="object"&&yt&&(dt=yt)}return Re&&(dt=yield Re(dt)),dt}),ee=We=>{const ht=We.filter(dt=>!dt.file[uL]);if(!ht.length)return;const He=ht.map(dt=>cZ(dt.file));let Re=_t(P);He.forEach(dt=>{Re=dZ(dt,Re)}),He.forEach((dt,yt)=>{let Kt=dt;if(ht[yt].parsedFile)dt.status="uploading";else{const{originFileObj:Wt}=dt;let Ut;try{Ut=new File([Wt],Wt.name,{type:Wt.type})}catch{Ut=new Blob([Wt],{type:Wt.type}),Ut.name=Wt.name,Ut.lastModifiedDate=new Date,Ut.lastModified=new Date().getTime()}Ut.uid=dt.uid,Kt=Ut}U(Kt,Re)})},oe=(We,ht,He)=>{try{typeof We=="string"&&(We=JSON.parse(We))}catch{}if(!rO(ht,P))return;const Re=cZ(ht);Re.status="done",Re.percent=100,Re.response=We,Re.xhr=He;const dt=dZ(Re,P);U(Re,dt)},se=(We,ht)=>{if(!rO(ht,P))return;const He=cZ(ht);He.status="uploading",He.percent=We.percent;const Re=dZ(He,P);U(He,Re,We)},ue=(We,ht,He)=>{if(!rO(He,P))return;const Re=cZ(He);Re.error=We,Re.response=ht,Re.status="error";const dt=dZ(Re,P);U(Re,dt)},ce=We=>{let ht;Promise.resolve(typeof r=="function"?r(We):r).then(He=>{var Re;if(He===!1)return;const dt=D6e(We,P);dt&&(ht=Object.assign(Object.assign({},We),{status:"removed"}),P==null||P.forEach(yt=>{const Kt=ht.uid!==void 0?"uid":"name";yt[Kt]===ht[Kt]&&!Object.isFrozen(yt)&&(yt.status="removed")}),(Re=X.current)===null||Re===void 0||Re.abort(ht),U(ht,dt))})},ye=We=>{k(We.type),We.type==="drop"&&(c==null||c(We))};I.useImperativeHandle(e,()=>({onBatchStart:ee,onSuccess:oe,onProgress:se,onError:ue,fileList:P,upload:X.current}));const{getPrefixCls:fe,direction:le,upload:Ze}=I.useContext(Tn),ke=fe("upload",C),Ne=Object.assign(Object.assign({onBatchStart:ee,onError:ue,onProgress:se,onSuccess:oe},n),{data:A,multiple:M,action:Z,accept:T,supportServerRender:E,prefixCls:ke,disabled:O,beforeUpload:R,onChange:void 0,hasControlInside:W});delete Ne.className,delete Ne.style,(!S||O)&&delete Ne.id;const ze=`${ke}-wrapper`,[Ke,ut,Ct]=h6e(ke,ze),[ot]=Wp("Upload",Ym.Upload),{showRemoveIcon:he,showPreviewIcon:de,showDownloadIcon:ge,removeIcon:j,previewIcon:Q,downloadIcon:q}=typeof o=="boolean"?{}:o,te=typeof he>"u"?!O:!!he,Ce=(We,ht)=>o?I.createElement(V6e,{prefixCls:ke,listType:s,items:P,previewFile:d,onPreview:a,onDownload:l,onRemove:ce,showRemoveIcon:te,showPreviewIcon:de,showDownloadIcon:ge,removeIcon:j,previewIcon:Q,downloadIcon:q,iconRender:m,locale:Object.assign(Object.assign({},ot),g),isImageUrl:f,progress:b,appendAction:We,appendActionVisible:ht,itemRender:L,disabled:O}):We,Le=Me(ze,v,V,ut,Ct,Ze==null?void 0:Ze.className,{[`${ke}-rtl`]:le==="rtl",[`${ke}-picture-card-wrapper`]:s==="picture-card",[`${ke}-picture-circle-wrapper`]:s==="picture-circle"}),Ae=Object.assign(Object.assign({},Ze==null?void 0:Ze.style),F);if(w==="drag"){const We=Me(ut,ke,`${ke}-drag`,{[`${ke}-drag-uploading`]:P.some(ht=>ht.status==="uploading"),[`${ke}-drag-hover`]:Y==="dragover",[`${ke}-disabled`]:O,[`${ke}-rtl`]:le==="rtl"});return Ke(I.createElement("span",{className:Le},I.createElement("div",{className:We,style:Ae,onDrop:ye,onDragOver:ye,onDragLeave:ye},I.createElement(iO,Object.assign({},Ne,{ref:X,className:`${ke}-btn`}),I.createElement("div",{className:`${ke}-drag-container`},S))),Ce()))}const Oe=Me(ke,`${ke}-select`,{[`${ke}-disabled`]:O}),tt=I.createElement("div",{className:Oe,style:S?void 0:{display:"none"}},I.createElement(iO,Object.assign({},Ne,{ref:X})));return Ke(s==="picture-card"||s==="picture-circle"?I.createElement("span",{className:Le},Ce(tt,!!S)):I.createElement("span",{className:Le},tt,Ce()))},nue=I.forwardRef(P6e);var O6e=function(n,e){var t={};for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&e.indexOf(i)<0&&(t[i]=n[i]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(n);r{var{style:t,height:i,hasControlInside:r=!1}=n,o=O6e(n,["style","height","hasControlInside"]);return I.createElement(nue,Object.assign({ref:e,hasControlInside:r},o,{type:"drag",style:Object.assign(Object.assign({},t),{height:i})}))}),oO=nue;oO.Dragger=B6e,oO.LIST_IGNORE=uL;const sO=oO;var hZ={},iue={exports:{}};(function(n){function e(t){return t&&t.__esModule?t:{default:t}}n.exports=e,n.exports.__esModule=!0,n.exports.default=n.exports})(iue);var aO=iue.exports,gZ={};Object.defineProperty(gZ,"__esModule",{value:!0}),gZ.default=void 0;var z6e={items_per_page:"条/页",jump_to:"跳至",jump_to_confirm:"确定",page:"页",prev_page:"上一页",next_page:"下一页",prev_5:"向前 5 页",next_5:"向后 5 页",prev_3:"向前 3 页",next_3:"向后 3 页",page_size:"页码"};gZ.default=z6e;var mZ={},cL={},fZ={};Object.defineProperty(fZ,"__esModule",{value:!0}),fZ.default=void 0;var Y6e={locale:"zh_CN",yearFormat:"YYYY年",cellDateFormat:"D",cellMeridiemFormat:"A",today:"今天",now:"此刻",backToToday:"返回今天",ok:"确定",timeSelect:"选择时间",dateSelect:"选择日期",weekSelect:"选择周",clear:"清除",month:"月",year:"年",previousMonth:"上个月 (翻页上键)",nextMonth:"下个月 (翻页下键)",monthSelect:"选择月份",yearSelect:"选择年份",decadeSelect:"选择年代",previousYear:"上一年 (Control键加左方向键)",nextYear:"下一年 (Control键加右方向键)",previousDecade:"上一年代",nextDecade:"下一年代",previousCentury:"上一世纪",nextCentury:"下一世纪"};fZ.default=Y6e;var dL={};Object.defineProperty(dL,"__esModule",{value:!0}),dL.default=void 0;const H6e={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]};dL.default=H6e;var rue=aO.default;Object.defineProperty(cL,"__esModule",{value:!0}),cL.default=void 0;var U6e=rue(fZ),J6e=rue(dL);const oue={lang:Object.assign({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},U6e.default),timePickerLocale:Object.assign({},J6e.default)};oue.lang.ok="确定",cL.default=oue;var K6e=aO.default;Object.defineProperty(mZ,"__esModule",{value:!0}),mZ.default=void 0;var j6e=K6e(cL);mZ.default=j6e.default;var pZ=aO.default;Object.defineProperty(hZ,"__esModule",{value:!0}),hZ.default=void 0;var Q6e=pZ(gZ),$6e=pZ(mZ),q6e=pZ(cL),e7e=pZ(dL);const gc="${label}不是一个有效的${type}",t7e={locale:"zh-cn",Pagination:Q6e.default,DatePicker:q6e.default,TimePicker:e7e.default,Calendar:$6e.default,global:{placeholder:"请选择"},Table:{filterTitle:"筛选",filterConfirm:"确定",filterReset:"重置",filterEmptyText:"无筛选项",filterCheckall:"全选",filterSearchPlaceholder:"在筛选项中搜索",selectAll:"全选当页",selectInvert:"反选当页",selectNone:"清空所有",selectionAll:"全选所有",sortTitle:"排序",expand:"展开行",collapse:"关闭行",triggerDesc:"点击降序",triggerAsc:"点击升序",cancelSort:"取消排序"},Modal:{okText:"确定",cancelText:"取消",justOkText:"知道了"},Tour:{Next:"下一步",Previous:"上一步",Finish:"结束导览"},Popconfirm:{cancelText:"取消",okText:"确定"},Transfer:{titles:["",""],searchPlaceholder:"请输入搜索内容",itemUnit:"项",itemsUnit:"项",remove:"删除",selectCurrent:"全选当页",removeCurrent:"删除当页",selectAll:"全选所有",removeAll:"删除全部",selectInvert:"反选当页"},Upload:{uploading:"文件上传中",removeFile:"删除文件",uploadError:"上传错误",previewFile:"预览文件",downloadFile:"下载文件"},Empty:{description:"暂无数据"},Icon:{icon:"图标"},Text:{edit:"编辑",copy:"复制",copied:"复制成功",expand:"展开",collapse:"收起"},Form:{optional:"(可选)",defaultValidateMessages:{default:"字段验证错误${label}",required:"请输入${label}",enum:"${label}必须是其中一个[${enum}]",whitespace:"${label}不能为空字符",date:{format:"${label}日期格式无效",parse:"${label}不能转换为日期",invalid:"${label}是一个无效日期"},types:{string:gc,method:gc,array:gc,object:gc,number:gc,date:gc,boolean:gc,integer:gc,float:gc,regexp:gc,email:gc,url:gc,hex:gc},string:{len:"${label}须为${len}个字符",min:"${label}最少${min}个字符",max:"${label}最多${max}个字符",range:"${label}须在${min}-${max}字符之间"},number:{len:"${label}必须等于${len}",min:"${label}最小值为${min}",max:"${label}最大值为${max}",range:"${label}须在${min}-${max}之间"},array:{len:"须为${len}个${label}",min:"最少${min}个${label}",max:"最多${max}个${label}",range:"${label}数量须在${min}-${max}之间"},pattern:{mismatch:"${label}与模式不匹配${pattern}"}}},Image:{preview:"预览"},QRCode:{expired:"二维码过期",refresh:"点击刷新",scanned:"已扫描"},ColorPicker:{presetEmpty:"暂无"}};hZ.default=t7e;var n7e=hZ;const i7e=Kl(n7e);var lO={},sue=zd;lO.createRoot=sue.createRoot,lO.hydrateRoot=sue.hydrateRoot;var r7e={exports:{}};(function(n){var e=function(t){var i=Object.prototype,r=i.hasOwnProperty,o=Object.defineProperty||function(Y,k,X){Y[k]=X.value},s,a=typeof Symbol=="function"?Symbol:{},l=a.iterator||"@@iterator",u=a.asyncIterator||"@@asyncIterator",c=a.toStringTag||"@@toStringTag";function d(Y,k,X){return Object.defineProperty(Y,k,{value:X,enumerable:!0,configurable:!0,writable:!0}),Y[k]}try{d({},"")}catch{d=function(k,X,U){return k[X]=U}}function h(Y,k,X,U){var R=k&&k.prototype instanceof w?k:w,ee=Object.create(R.prototype),oe=new O(U||[]);return o(ee,"_invoke",{value:T(Y,X,oe)}),ee}t.wrap=h;function g(Y,k,X){try{return{type:"normal",arg:Y.call(k,X)}}catch(U){return{type:"throw",arg:U}}}var m="suspendedStart",f="suspendedYield",b="executing",C="completed",v={};function w(){}function S(){}function F(){}var L={};d(L,l,function(){return this});var D=Object.getPrototypeOf,A=D&&D(D(P([])));A&&A!==i&&r.call(A,l)&&(L=A);var M=F.prototype=w.prototype=Object.create(L);S.prototype=F,o(M,"constructor",{value:F,configurable:!0}),o(F,"constructor",{value:S,configurable:!0}),S.displayName=d(F,c,"GeneratorFunction");function W(Y){["next","throw","return"].forEach(function(k){d(Y,k,function(X){return this._invoke(k,X)})})}t.isGeneratorFunction=function(Y){var k=typeof Y=="function"&&Y.constructor;return k?k===S||(k.displayName||k.name)==="GeneratorFunction":!1},t.mark=function(Y){return Object.setPrototypeOf?Object.setPrototypeOf(Y,F):(Y.__proto__=F,d(Y,c,"GeneratorFunction")),Y.prototype=Object.create(M),Y},t.awrap=function(Y){return{__await:Y}};function Z(Y,k){function X(ee,oe,se,ue){var ce=g(Y[ee],Y,oe);if(ce.type==="throw")ue(ce.arg);else{var ye=ce.arg,fe=ye.value;return fe&&typeof fe=="object"&&r.call(fe,"__await")?k.resolve(fe.__await).then(function(le){X("next",le,se,ue)},function(le){X("throw",le,se,ue)}):k.resolve(fe).then(function(le){ye.value=le,se(ye)},function(le){return X("throw",le,se,ue)})}}var U;function R(ee,oe){function se(){return new k(function(ue,ce){X(ee,oe,ue,ce)})}return U=U?U.then(se,se):se()}o(this,"_invoke",{value:R})}W(Z.prototype),d(Z.prototype,u,function(){return this}),t.AsyncIterator=Z,t.async=function(Y,k,X,U,R){R===void 0&&(R=Promise);var ee=new Z(h(Y,k,X,U),R);return t.isGeneratorFunction(k)?ee:ee.next().then(function(oe){return oe.done?oe.value:ee.next()})};function T(Y,k,X){var U=m;return function(ee,oe){if(U===b)throw new Error("Generator is already running");if(U===C){if(ee==="throw")throw oe;return B()}for(X.method=ee,X.arg=oe;;){var se=X.delegate;if(se){var ue=E(se,X);if(ue){if(ue===v)continue;return ue}}if(X.method==="next")X.sent=X._sent=X.arg;else if(X.method==="throw"){if(U===m)throw U=C,X.arg;X.dispatchException(X.arg)}else X.method==="return"&&X.abrupt("return",X.arg);U=b;var ce=g(Y,k,X);if(ce.type==="normal"){if(U=X.done?C:f,ce.arg===v)continue;return{value:ce.arg,done:X.done}}else ce.type==="throw"&&(U=C,X.method="throw",X.arg=ce.arg)}}}function E(Y,k){var X=k.method,U=Y.iterator[X];if(U===s)return k.delegate=null,X==="throw"&&Y.iterator.return&&(k.method="return",k.arg=s,E(Y,k),k.method==="throw")||X!=="return"&&(k.method="throw",k.arg=new TypeError("The iterator does not provide a '"+X+"' method")),v;var R=g(U,Y.iterator,k.arg);if(R.type==="throw")return k.method="throw",k.arg=R.arg,k.delegate=null,v;var ee=R.arg;if(!ee)return k.method="throw",k.arg=new TypeError("iterator result is not an object"),k.delegate=null,v;if(ee.done)k[Y.resultName]=ee.value,k.next=Y.nextLoc,k.method!=="return"&&(k.method="next",k.arg=s);else return ee;return k.delegate=null,v}W(M),d(M,c,"Generator"),d(M,l,function(){return this}),d(M,"toString",function(){return"[object Generator]"});function V(Y){var k={tryLoc:Y[0]};1 in Y&&(k.catchLoc=Y[1]),2 in Y&&(k.finallyLoc=Y[2],k.afterLoc=Y[3]),this.tryEntries.push(k)}function z(Y){var k=Y.completion||{};k.type="normal",delete k.arg,Y.completion=k}function O(Y){this.tryEntries=[{tryLoc:"root"}],Y.forEach(V,this),this.reset(!0)}t.keys=function(Y){var k=Object(Y),X=[];for(var U in k)X.push(U);return X.reverse(),function R(){for(;X.length;){var ee=X.pop();if(ee in k)return R.value=ee,R.done=!1,R}return R.done=!0,R}};function P(Y){if(Y!=null){var k=Y[l];if(k)return k.call(Y);if(typeof Y.next=="function")return Y;if(!isNaN(Y.length)){var X=-1,U=function R(){for(;++X=0;--U){var R=this.tryEntries[U],ee=R.completion;if(R.tryLoc==="root")return X("end");if(R.tryLoc<=this.prev){var oe=r.call(R,"catchLoc"),se=r.call(R,"finallyLoc");if(oe&&se){if(this.prev=0;--X){var U=this.tryEntries[X];if(U.tryLoc<=this.prev&&r.call(U,"finallyLoc")&&this.prev=0;--k){var X=this.tryEntries[k];if(X.finallyLoc===Y)return this.complete(X.completion,X.afterLoc),z(X),v}},catch:function(Y){for(var k=this.tryEntries.length-1;k>=0;--k){var X=this.tryEntries[k];if(X.tryLoc===Y){var U=X.completion;if(U.type==="throw"){var R=U.arg;z(X)}return R}}throw new Error("illegal catch attempt")},delegateYield:function(Y,k,X){return this.delegate={iterator:P(Y),resultName:k,nextLoc:X},this.method==="next"&&(this.arg=s),v}},t}(n.exports);try{regeneratorRuntime=e}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=e:Function("r","regeneratorRuntime = r")(e)}})(r7e);var hL=(n=>(n.en="en",n.zh="zh",n))(hL||{}),o7e={BASE_URL:"/",MODE:"package",DEV:!1,PROD:!0,SSR:!1};function bZ(){const n=o7e,e={appName:(n==null?void 0:n.VITE_appName)||"",appNameZH:(n==null?void 0:n.VITE_appNameZH)||"",baseURL:(n==null?void 0:n.VITE_baseURL)||"",version:(n==null?void 0:n.VITE_version)||"",env:(n==null?void 0:n.VITE_env)||""};{const t=s7e("app_config");return t?a7e(t):e}}function s7e(n){const e=document.getElementsByTagName("meta");for(let t=0;t{const r=i.split("=");return{...t,[r[0]]:r[1]}},{})}function l7e(){I.useEffect(()=>{n()},[]);function n(){const e=bZ(),t=document.getElementsByTagName("title")||[];e.env===hL.zh&&t[0]&&(t[0].textContent=e.appNameZH)}return null}function aue(n,e){return function(){return n.apply(e,arguments)}}const{toString:u7e}=Object.prototype,{getPrototypeOf:uO}=Object,CZ=(n=>e=>{const t=u7e.call(e);return n[t]||(n[t]=t.slice(8,-1).toLowerCase())})(Object.create(null)),dg=n=>(n=n.toLowerCase(),e=>CZ(e)===n),vZ=n=>e=>typeof e===n,{isArray:sI}=Array,gL=vZ("undefined");function c7e(n){return n!==null&&!gL(n)&&n.constructor!==null&&!gL(n.constructor)&&nd(n.constructor.isBuffer)&&n.constructor.isBuffer(n)}const lue=dg("ArrayBuffer");function d7e(n){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(n):e=n&&n.buffer&&lue(n.buffer),e}const h7e=vZ("string"),nd=vZ("function"),uue=vZ("number"),yZ=n=>n!==null&&typeof n=="object",g7e=n=>n===!0||n===!1,IZ=n=>{if(CZ(n)!=="object")return!1;const e=uO(n);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(Symbol.toStringTag in n)&&!(Symbol.iterator in n)},m7e=dg("Date"),f7e=dg("File"),p7e=dg("Blob"),b7e=dg("FileList"),C7e=n=>yZ(n)&&nd(n.pipe),v7e=n=>{let e;return n&&(typeof FormData=="function"&&n instanceof FormData||nd(n.append)&&((e=CZ(n))==="formdata"||e==="object"&&nd(n.toString)&&n.toString()==="[object FormData]"))},y7e=dg("URLSearchParams"),I7e=n=>n.trim?n.trim():n.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function mL(n,e,{allOwnKeys:t=!1}={}){if(n===null||typeof n>"u")return;let i,r;if(typeof n!="object"&&(n=[n]),sI(n))for(i=0,r=n.length;i0;)if(r=t[i],e===r.toLowerCase())return r;return null}const due=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,hue=n=>!gL(n)&&n!==due;function cO(){const{caseless:n}=hue(this)&&this||{},e={},t=(i,r)=>{const o=n&&cue(e,r)||r;IZ(e[o])&&IZ(i)?e[o]=cO(e[o],i):IZ(i)?e[o]=cO({},i):sI(i)?e[o]=i.slice():e[o]=i};for(let i=0,r=arguments.length;i(mL(e,(r,o)=>{t&&nd(r)?n[o]=aue(r,t):n[o]=r},{allOwnKeys:i}),n),S7e=n=>(n.charCodeAt(0)===65279&&(n=n.slice(1)),n),x7e=(n,e,t,i)=>{n.prototype=Object.create(e.prototype,i),n.prototype.constructor=n,Object.defineProperty(n,"super",{value:e.prototype}),t&&Object.assign(n.prototype,t)},L7e=(n,e,t,i)=>{let r,o,s;const a={};if(e=e||{},n==null)return e;do{for(r=Object.getOwnPropertyNames(n),o=r.length;o-- >0;)s=r[o],(!i||i(s,n,e))&&!a[s]&&(e[s]=n[s],a[s]=!0);n=t!==!1&&uO(n)}while(n&&(!t||t(n,e))&&n!==Object.prototype);return e},F7e=(n,e,t)=>{n=String(n),(t===void 0||t>n.length)&&(t=n.length),t-=e.length;const i=n.indexOf(e,t);return i!==-1&&i===t},_7e=n=>{if(!n)return null;if(sI(n))return n;let e=n.length;if(!uue(e))return null;const t=new Array(e);for(;e-- >0;)t[e]=n[e];return t},D7e=(n=>e=>n&&e instanceof n)(typeof Uint8Array<"u"&&uO(Uint8Array)),A7e=(n,e)=>{const i=(n&&n[Symbol.iterator]).call(n);let r;for(;(r=i.next())&&!r.done;){const o=r.value;e.call(n,o[0],o[1])}},N7e=(n,e)=>{let t;const i=[];for(;(t=n.exec(e))!==null;)i.push(t);return i},k7e=dg("HTMLFormElement"),M7e=n=>n.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(t,i,r){return i.toUpperCase()+r}),gue=(({hasOwnProperty:n})=>(e,t)=>n.call(e,t))(Object.prototype),Z7e=dg("RegExp"),mue=(n,e)=>{const t=Object.getOwnPropertyDescriptors(n),i={};mL(t,(r,o)=>{let s;(s=e(r,o,n))!==!1&&(i[o]=s||r)}),Object.defineProperties(n,i)},T7e=n=>{mue(n,(e,t)=>{if(nd(n)&&["arguments","caller","callee"].indexOf(t)!==-1)return!1;const i=n[t];if(nd(i)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+t+"'")})}})},E7e=(n,e)=>{const t={},i=r=>{r.forEach(o=>{t[o]=!0})};return sI(n)?i(n):i(String(n).split(e)),t},W7e=()=>{},R7e=(n,e)=>(n=+n,Number.isFinite(n)?n:e),dO="abcdefghijklmnopqrstuvwxyz",fue="0123456789",pue={DIGIT:fue,ALPHA:dO,ALPHA_DIGIT:dO+dO.toUpperCase()+fue},G7e=(n=16,e=pue.ALPHA_DIGIT)=>{let t="";const{length:i}=e;for(;n--;)t+=e[Math.random()*i|0];return t};function V7e(n){return!!(n&&nd(n.append)&&n[Symbol.toStringTag]==="FormData"&&n[Symbol.iterator])}const X7e=n=>{const e=new Array(10),t=(i,r)=>{if(yZ(i)){if(e.indexOf(i)>=0)return;if(!("toJSON"in i)){e[r]=i;const o=sI(i)?[]:{};return mL(i,(s,a)=>{const l=t(s,r+1);!gL(l)&&(o[a]=l)}),e[r]=void 0,o}}return i};return t(n,0)},P7e=dg("AsyncFunction"),Dt={isArray:sI,isArrayBuffer:lue,isBuffer:c7e,isFormData:v7e,isArrayBufferView:d7e,isString:h7e,isNumber:uue,isBoolean:g7e,isObject:yZ,isPlainObject:IZ,isUndefined:gL,isDate:m7e,isFile:f7e,isBlob:p7e,isRegExp:Z7e,isFunction:nd,isStream:C7e,isURLSearchParams:y7e,isTypedArray:D7e,isFileList:b7e,forEach:mL,merge:cO,extend:w7e,trim:I7e,stripBOM:S7e,inherits:x7e,toFlatObject:L7e,kindOf:CZ,kindOfTest:dg,endsWith:F7e,toArray:_7e,forEachEntry:A7e,matchAll:N7e,isHTMLForm:k7e,hasOwnProperty:gue,hasOwnProp:gue,reduceDescriptors:mue,freezeMethods:T7e,toObjectSet:E7e,toCamelCase:M7e,noop:W7e,toFiniteNumber:R7e,findKey:cue,global:due,isContextDefined:hue,ALPHABET:pue,generateString:G7e,isSpecCompliantForm:V7e,toJSONObject:X7e,isAsyncFn:P7e,isThenable:n=>n&&(yZ(n)||nd(n))&&nd(n.then)&&nd(n.catch)};function ur(n,e,t,i,r){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=n,this.name="AxiosError",e&&(this.code=e),t&&(this.config=t),i&&(this.request=i),r&&(this.response=r)}Dt.inherits(ur,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Dt.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const bue=ur.prototype,Cue={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(n=>{Cue[n]={value:n}}),Object.defineProperties(ur,Cue),Object.defineProperty(bue,"isAxiosError",{value:!0}),ur.from=(n,e,t,i,r,o)=>{const s=Object.create(bue);return Dt.toFlatObject(n,s,function(l){return l!==Error.prototype},a=>a!=="isAxiosError"),ur.call(s,n.message,e,t,i,r),s.cause=n,s.name=n.name,o&&Object.assign(s,o),s};const O7e=null;function hO(n){return Dt.isPlainObject(n)||Dt.isArray(n)}function vue(n){return Dt.endsWith(n,"[]")?n.slice(0,-2):n}function yue(n,e,t){return n?n.concat(e).map(function(r,o){return r=vue(r),!t&&o?"["+r+"]":r}).join(t?".":""):e}function B7e(n){return Dt.isArray(n)&&!n.some(hO)}const z7e=Dt.toFlatObject(Dt,{},null,function(e){return/^is[A-Z]/.test(e)});function wZ(n,e,t){if(!Dt.isObject(n))throw new TypeError("target must be an object");e=e||new FormData,t=Dt.toFlatObject(t,{metaTokens:!0,dots:!1,indexes:!1},!1,function(f,b){return!Dt.isUndefined(b[f])});const i=t.metaTokens,r=t.visitor||c,o=t.dots,s=t.indexes,l=(t.Blob||typeof Blob<"u"&&Blob)&&Dt.isSpecCompliantForm(e);if(!Dt.isFunction(r))throw new TypeError("visitor must be a function");function u(m){if(m===null)return"";if(Dt.isDate(m))return m.toISOString();if(!l&&Dt.isBlob(m))throw new ur("Blob is not supported. Use a Buffer instead.");return Dt.isArrayBuffer(m)||Dt.isTypedArray(m)?l&&typeof Blob=="function"?new Blob([m]):Buffer.from(m):m}function c(m,f,b){let C=m;if(m&&!b&&typeof m=="object"){if(Dt.endsWith(f,"{}"))f=i?f:f.slice(0,-2),m=JSON.stringify(m);else if(Dt.isArray(m)&&B7e(m)||(Dt.isFileList(m)||Dt.endsWith(f,"[]"))&&(C=Dt.toArray(m)))return f=vue(f),C.forEach(function(w,S){!(Dt.isUndefined(w)||w===null)&&e.append(s===!0?yue([f],S,o):s===null?f:f+"[]",u(w))}),!1}return hO(m)?!0:(e.append(yue(b,f,o),u(m)),!1)}const d=[],h=Object.assign(z7e,{defaultVisitor:c,convertValue:u,isVisitable:hO});function g(m,f){if(!Dt.isUndefined(m)){if(d.indexOf(m)!==-1)throw Error("Circular reference detected in "+f.join("."));d.push(m),Dt.forEach(m,function(C,v){(!(Dt.isUndefined(C)||C===null)&&r.call(e,C,Dt.isString(v)?v.trim():v,f,h))===!0&&g(C,f?f.concat(v):[v])}),d.pop()}}if(!Dt.isObject(n))throw new TypeError("data must be an object");return g(n),e}function Iue(n){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(n).replace(/[!'()~]|%20|%00/g,function(i){return e[i]})}function gO(n,e){this._pairs=[],n&&wZ(n,this,e)}const wue=gO.prototype;wue.append=function(e,t){this._pairs.push([e,t])},wue.toString=function(e){const t=e?function(i){return e.call(this,i,Iue)}:Iue;return this._pairs.map(function(r){return t(r[0])+"="+t(r[1])},"").join("&")};function Y7e(n){return encodeURIComponent(n).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Sue(n,e,t){if(!e)return n;const i=t&&t.encode||Y7e,r=t&&t.serialize;let o;if(r?o=r(e,t):o=Dt.isURLSearchParams(e)?e.toString():new gO(e,t).toString(i),o){const s=n.indexOf("#");s!==-1&&(n=n.slice(0,s)),n+=(n.indexOf("?")===-1?"?":"&")+o}return n}class xue{constructor(){this.handlers=[]}use(e,t,i){return this.handlers.push({fulfilled:e,rejected:t,synchronous:i?i.synchronous:!1,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){Dt.forEach(this.handlers,function(i){i!==null&&e(i)})}}const Lue={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},H7e={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<"u"?URLSearchParams:gO,FormData:typeof FormData<"u"?FormData:null,Blob:typeof Blob<"u"?Blob:null},protocols:["http","https","file","blob","url","data"]},Fue=typeof window<"u"&&typeof document<"u",U7e=(n=>Fue&&["ReactNative","NativeScript","NS"].indexOf(n)<0)(typeof navigator<"u"&&navigator.product),J7e=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",hg={...Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Fue,hasStandardBrowserEnv:U7e,hasStandardBrowserWebWorkerEnv:J7e},Symbol.toStringTag,{value:"Module"})),...H7e};function K7e(n,e){return wZ(n,new hg.classes.URLSearchParams,Object.assign({visitor:function(t,i,r,o){return hg.isNode&&Dt.isBuffer(t)?(this.append(i,t.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)}},e))}function j7e(n){return Dt.matchAll(/\w+|\[(\w*)]/g,n).map(e=>e[0]==="[]"?"":e[1]||e[0])}function Q7e(n){const e={},t=Object.keys(n);let i;const r=t.length;let o;for(i=0;i=t.length;return s=!s&&Dt.isArray(r)?r.length:s,l?(Dt.hasOwnProp(r,s)?r[s]=[r[s],i]:r[s]=i,!a):((!r[s]||!Dt.isObject(r[s]))&&(r[s]=[]),e(t,i,r[s],o)&&Dt.isArray(r[s])&&(r[s]=Q7e(r[s])),!a)}if(Dt.isFormData(n)&&Dt.isFunction(n.entries)){const t={};return Dt.forEachEntry(n,(i,r)=>{e(j7e(i),r,t,0)}),t}return null}function $7e(n,e,t){if(Dt.isString(n))try{return(e||JSON.parse)(n),Dt.trim(n)}catch(i){if(i.name!=="SyntaxError")throw i}return(t||JSON.stringify)(n)}const mO={transitional:Lue,adapter:["xhr","http"],transformRequest:[function(e,t){const i=t.getContentType()||"",r=i.indexOf("application/json")>-1,o=Dt.isObject(e);if(o&&Dt.isHTMLForm(e)&&(e=new FormData(e)),Dt.isFormData(e))return r?JSON.stringify(_ue(e)):e;if(Dt.isArrayBuffer(e)||Dt.isBuffer(e)||Dt.isStream(e)||Dt.isFile(e)||Dt.isBlob(e))return e;if(Dt.isArrayBufferView(e))return e.buffer;if(Dt.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let a;if(o){if(i.indexOf("application/x-www-form-urlencoded")>-1)return K7e(e,this.formSerializer).toString();if((a=Dt.isFileList(e))||i.indexOf("multipart/form-data")>-1){const l=this.env&&this.env.FormData;return wZ(a?{"files[]":e}:e,l&&new l,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),$7e(e)):e}],transformResponse:[function(e){const t=this.transitional||mO.transitional,i=t&&t.forcedJSONParsing,r=this.responseType==="json";if(e&&Dt.isString(e)&&(i&&!this.responseType||r)){const s=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(a){if(s)throw a.name==="SyntaxError"?ur.from(a,ur.ERR_BAD_RESPONSE,this,null,this.response):a}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:hg.classes.FormData,Blob:hg.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Dt.forEach(["delete","get","head","post","put","patch"],n=>{mO.headers[n]={}});const fO=mO,q7e=Dt.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),eUe=n=>{const e={};let t,i,r;return n&&n.split(` +`).forEach(function(s){r=s.indexOf(":"),t=s.substring(0,r).trim().toLowerCase(),i=s.substring(r+1).trim(),!(!t||e[t]&&q7e[t])&&(t==="set-cookie"?e[t]?e[t].push(i):e[t]=[i]:e[t]=e[t]?e[t]+", "+i:i)}),e},Due=Symbol("internals");function fL(n){return n&&String(n).trim().toLowerCase()}function SZ(n){return n===!1||n==null?n:Dt.isArray(n)?n.map(SZ):String(n)}function tUe(n){const e=Object.create(null),t=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let i;for(;i=t.exec(n);)e[i[1]]=i[2];return e}const nUe=n=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(n.trim());function pO(n,e,t,i,r){if(Dt.isFunction(i))return i.call(this,e,t);if(r&&(e=t),!!Dt.isString(e)){if(Dt.isString(i))return e.indexOf(i)!==-1;if(Dt.isRegExp(i))return i.test(e)}}function iUe(n){return n.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,i)=>t.toUpperCase()+i)}function rUe(n,e){const t=Dt.toCamelCase(" "+e);["get","set","has"].forEach(i=>{Object.defineProperty(n,i+t,{value:function(r,o,s){return this[i].call(this,e,r,o,s)},configurable:!0})})}class xZ{constructor(e){e&&this.set(e)}set(e,t,i){const r=this;function o(a,l,u){const c=fL(l);if(!c)throw new Error("header name must be a non-empty string");const d=Dt.findKey(r,c);(!d||r[d]===void 0||u===!0||u===void 0&&r[d]!==!1)&&(r[d||l]=SZ(a))}const s=(a,l)=>Dt.forEach(a,(u,c)=>o(u,c,l));return Dt.isPlainObject(e)||e instanceof this.constructor?s(e,t):Dt.isString(e)&&(e=e.trim())&&!nUe(e)?s(eUe(e),t):e!=null&&o(t,e,i),this}get(e,t){if(e=fL(e),e){const i=Dt.findKey(this,e);if(i){const r=this[i];if(!t)return r;if(t===!0)return tUe(r);if(Dt.isFunction(t))return t.call(this,r,i);if(Dt.isRegExp(t))return t.exec(r);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=fL(e),e){const i=Dt.findKey(this,e);return!!(i&&this[i]!==void 0&&(!t||pO(this,this[i],i,t)))}return!1}delete(e,t){const i=this;let r=!1;function o(s){if(s=fL(s),s){const a=Dt.findKey(i,s);a&&(!t||pO(i,i[a],a,t))&&(delete i[a],r=!0)}}return Dt.isArray(e)?e.forEach(o):o(e),r}clear(e){const t=Object.keys(this);let i=t.length,r=!1;for(;i--;){const o=t[i];(!e||pO(this,this[o],o,e,!0))&&(delete this[o],r=!0)}return r}normalize(e){const t=this,i={};return Dt.forEach(this,(r,o)=>{const s=Dt.findKey(i,o);if(s){t[s]=SZ(r),delete t[o];return}const a=e?iUe(o):String(o).trim();a!==o&&delete t[o],t[a]=SZ(r),i[a]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return Dt.forEach(this,(i,r)=>{i!=null&&i!==!1&&(t[r]=e&&Dt.isArray(i)?i.join(", "):i)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const i=new this(e);return t.forEach(r=>i.set(r)),i}static accessor(e){const i=(this[Due]=this[Due]={accessors:{}}).accessors,r=this.prototype;function o(s){const a=fL(s);i[a]||(rUe(r,s),i[a]=!0)}return Dt.isArray(e)?e.forEach(o):o(e),this}}xZ.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),Dt.reduceDescriptors(xZ.prototype,({value:n},e)=>{let t=e[0].toUpperCase()+e.slice(1);return{get:()=>n,set(i){this[t]=i}}}),Dt.freezeMethods(xZ);const Qm=xZ;function bO(n,e){const t=this||fO,i=e||t,r=Qm.from(i.headers);let o=i.data;return Dt.forEach(n,function(a){o=a.call(t,o,r.normalize(),e?e.status:void 0)}),r.normalize(),o}function Aue(n){return!!(n&&n.__CANCEL__)}function pL(n,e,t){ur.call(this,n??"canceled",ur.ERR_CANCELED,e,t),this.name="CanceledError"}Dt.inherits(pL,ur,{__CANCEL__:!0});function oUe(n,e,t){const i=t.config.validateStatus;!t.status||!i||i(t.status)?n(t):e(new ur("Request failed with status code "+t.status,[ur.ERR_BAD_REQUEST,ur.ERR_BAD_RESPONSE][Math.floor(t.status/100)-4],t.config,t.request,t))}const sUe=hg.hasStandardBrowserEnv?{write(n,e,t,i,r,o){const s=[n+"="+encodeURIComponent(e)];Dt.isNumber(t)&&s.push("expires="+new Date(t).toGMTString()),Dt.isString(i)&&s.push("path="+i),Dt.isString(r)&&s.push("domain="+r),o===!0&&s.push("secure"),document.cookie=s.join("; ")},read(n){const e=document.cookie.match(new RegExp("(^|;\\s*)("+n+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove(n){this.write(n,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function aUe(n){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(n)}function lUe(n,e){return e?n.replace(/\/?\/$/,"")+"/"+e.replace(/^\/+/,""):n}function Nue(n,e){return n&&!aUe(e)?lUe(n,e):e}const uUe=hg.hasStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let i;function r(o){let s=o;return e&&(t.setAttribute("href",s),s=t.href),t.setAttribute("href",s),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:t.pathname.charAt(0)==="/"?t.pathname:"/"+t.pathname}}return i=r(window.location.href),function(s){const a=Dt.isString(s)?r(s):s;return a.protocol===i.protocol&&a.host===i.host}}():function(){return function(){return!0}}();function cUe(n){const e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(n);return e&&e[1]||""}function dUe(n,e){n=n||10;const t=new Array(n),i=new Array(n);let r=0,o=0,s;return e=e!==void 0?e:1e3,function(l){const u=Date.now(),c=i[o];s||(s=u),t[r]=l,i[r]=u;let d=o,h=0;for(;d!==r;)h+=t[d++],d=d%n;if(r=(r+1)%n,r===o&&(o=(o+1)%n),u-s{const o=r.loaded,s=r.lengthComputable?r.total:void 0,a=o-t,l=i(a),u=o<=s;t=o;const c={loaded:o,total:s,progress:s?o/s:void 0,bytes:a,rate:l||void 0,estimated:l&&s&&u?(s-o)/l:void 0,event:r};c[e?"download":"upload"]=!0,n(c)}}const CO={http:O7e,xhr:typeof XMLHttpRequest<"u"&&function(n){return new Promise(function(t,i){let r=n.data;const o=Qm.from(n.headers).normalize();let{responseType:s,withXSRFToken:a}=n,l;function u(){n.cancelToken&&n.cancelToken.unsubscribe(l),n.signal&&n.signal.removeEventListener("abort",l)}let c;if(Dt.isFormData(r)){if(hg.hasStandardBrowserEnv||hg.hasStandardBrowserWebWorkerEnv)o.setContentType(!1);else if((c=o.getContentType())!==!1){const[f,...b]=c?c.split(";").map(C=>C.trim()).filter(Boolean):[];o.setContentType([f||"multipart/form-data",...b].join("; "))}}let d=new XMLHttpRequest;if(n.auth){const f=n.auth.username||"",b=n.auth.password?unescape(encodeURIComponent(n.auth.password)):"";o.set("Authorization","Basic "+btoa(f+":"+b))}const h=Nue(n.baseURL,n.url);d.open(n.method.toUpperCase(),Sue(h,n.params,n.paramsSerializer),!0),d.timeout=n.timeout;function g(){if(!d)return;const f=Qm.from("getAllResponseHeaders"in d&&d.getAllResponseHeaders()),C={data:!s||s==="text"||s==="json"?d.responseText:d.response,status:d.status,statusText:d.statusText,headers:f,config:n,request:d};oUe(function(w){t(w),u()},function(w){i(w),u()},C),d=null}if("onloadend"in d?d.onloadend=g:d.onreadystatechange=function(){!d||d.readyState!==4||d.status===0&&!(d.responseURL&&d.responseURL.indexOf("file:")===0)||setTimeout(g)},d.onabort=function(){d&&(i(new ur("Request aborted",ur.ECONNABORTED,n,d)),d=null)},d.onerror=function(){i(new ur("Network Error",ur.ERR_NETWORK,n,d)),d=null},d.ontimeout=function(){let b=n.timeout?"timeout of "+n.timeout+"ms exceeded":"timeout exceeded";const C=n.transitional||Lue;n.timeoutErrorMessage&&(b=n.timeoutErrorMessage),i(new ur(b,C.clarifyTimeoutError?ur.ETIMEDOUT:ur.ECONNABORTED,n,d)),d=null},hg.hasStandardBrowserEnv&&(a&&Dt.isFunction(a)&&(a=a(n)),a||a!==!1&&uUe(h))){const f=n.xsrfHeaderName&&n.xsrfCookieName&&sUe.read(n.xsrfCookieName);f&&o.set(n.xsrfHeaderName,f)}r===void 0&&o.setContentType(null),"setRequestHeader"in d&&Dt.forEach(o.toJSON(),function(b,C){d.setRequestHeader(C,b)}),Dt.isUndefined(n.withCredentials)||(d.withCredentials=!!n.withCredentials),s&&s!=="json"&&(d.responseType=n.responseType),typeof n.onDownloadProgress=="function"&&d.addEventListener("progress",kue(n.onDownloadProgress,!0)),typeof n.onUploadProgress=="function"&&d.upload&&d.upload.addEventListener("progress",kue(n.onUploadProgress)),(n.cancelToken||n.signal)&&(l=f=>{d&&(i(!f||f.type?new pL(null,n,d):f),d.abort(),d=null)},n.cancelToken&&n.cancelToken.subscribe(l),n.signal&&(n.signal.aborted?l():n.signal.addEventListener("abort",l)));const m=cUe(h);if(m&&hg.protocols.indexOf(m)===-1){i(new ur("Unsupported protocol "+m+":",ur.ERR_BAD_REQUEST,n));return}d.send(r||null)})}};Dt.forEach(CO,(n,e)=>{if(n){try{Object.defineProperty(n,"name",{value:e})}catch{}Object.defineProperty(n,"adapterName",{value:e})}});const Mue=n=>`- ${n}`,hUe=n=>Dt.isFunction(n)||n===null||n===!1,Zue={getAdapter:n=>{n=Dt.isArray(n)?n:[n];const{length:e}=n;let t,i;const r={};for(let o=0;o`adapter ${a} `+(l===!1?"is not supported by the environment":"is not available in the build"));let s=e?o.length>1?`since : +`+o.map(Mue).join(` +`):" "+Mue(o[0]):"as no adapter specified";throw new ur("There is no suitable adapter to dispatch the request "+s,"ERR_NOT_SUPPORT")}return i},adapters:CO};function vO(n){if(n.cancelToken&&n.cancelToken.throwIfRequested(),n.signal&&n.signal.aborted)throw new pL(null,n)}function Tue(n){return vO(n),n.headers=Qm.from(n.headers),n.data=bO.call(n,n.transformRequest),["post","put","patch"].indexOf(n.method)!==-1&&n.headers.setContentType("application/x-www-form-urlencoded",!1),Zue.getAdapter(n.adapter||fO.adapter)(n).then(function(i){return vO(n),i.data=bO.call(n,n.transformResponse,i),i.headers=Qm.from(i.headers),i},function(i){return Aue(i)||(vO(n),i&&i.response&&(i.response.data=bO.call(n,n.transformResponse,i.response),i.response.headers=Qm.from(i.response.headers))),Promise.reject(i)})}const Eue=n=>n instanceof Qm?{...n}:n;function aI(n,e){e=e||{};const t={};function i(u,c,d){return Dt.isPlainObject(u)&&Dt.isPlainObject(c)?Dt.merge.call({caseless:d},u,c):Dt.isPlainObject(c)?Dt.merge({},c):Dt.isArray(c)?c.slice():c}function r(u,c,d){if(Dt.isUndefined(c)){if(!Dt.isUndefined(u))return i(void 0,u,d)}else return i(u,c,d)}function o(u,c){if(!Dt.isUndefined(c))return i(void 0,c)}function s(u,c){if(Dt.isUndefined(c)){if(!Dt.isUndefined(u))return i(void 0,u)}else return i(void 0,c)}function a(u,c,d){if(d in e)return i(u,c);if(d in n)return i(void 0,u)}const l={url:o,method:o,data:o,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:a,headers:(u,c)=>r(Eue(u),Eue(c),!0)};return Dt.forEach(Object.keys(Object.assign({},n,e)),function(c){const d=l[c]||r,h=d(n[c],e[c],c);Dt.isUndefined(h)&&d!==a||(t[c]=h)}),t}const Wue="1.6.8",yO={};["object","boolean","number","function","string","symbol"].forEach((n,e)=>{yO[n]=function(i){return typeof i===n||"a"+(e<1?"n ":" ")+n}});const Rue={};yO.transitional=function(e,t,i){function r(o,s){return"[Axios v"+Wue+"] Transitional option '"+o+"'"+s+(i?". "+i:"")}return(o,s,a)=>{if(e===!1)throw new ur(r(s," has been removed"+(t?" in "+t:"")),ur.ERR_DEPRECATED);return t&&!Rue[s]&&(Rue[s]=!0),e?e(o,s,a):!0}};function gUe(n,e,t){if(typeof n!="object")throw new ur("options must be an object",ur.ERR_BAD_OPTION_VALUE);const i=Object.keys(n);let r=i.length;for(;r-- >0;){const o=i[r],s=e[o];if(s){const a=n[o],l=a===void 0||s(a,o,n);if(l!==!0)throw new ur("option "+o+" must be "+l,ur.ERR_BAD_OPTION_VALUE);continue}if(t!==!0)throw new ur("Unknown option "+o,ur.ERR_BAD_OPTION)}}const IO={assertOptions:gUe,validators:yO},Qp=IO.validators;class LZ{constructor(e){this.defaults=e,this.interceptors={request:new xue,response:new xue}}async request(e,t){try{return await this._request(e,t)}catch(i){if(i instanceof Error){let r;Error.captureStackTrace?Error.captureStackTrace(r={}):r=new Error;const o=r.stack?r.stack.replace(/^.+\n/,""):"";i.stack?o&&!String(i.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(i.stack+=` +`+o):i.stack=o}throw i}}_request(e,t){typeof e=="string"?(t=t||{},t.url=e):t=e||{},t=aI(this.defaults,t);const{transitional:i,paramsSerializer:r,headers:o}=t;i!==void 0&&IO.assertOptions(i,{silentJSONParsing:Qp.transitional(Qp.boolean),forcedJSONParsing:Qp.transitional(Qp.boolean),clarifyTimeoutError:Qp.transitional(Qp.boolean)},!1),r!=null&&(Dt.isFunction(r)?t.paramsSerializer={serialize:r}:IO.assertOptions(r,{encode:Qp.function,serialize:Qp.function},!0)),t.method=(t.method||this.defaults.method||"get").toLowerCase();let s=o&&Dt.merge(o.common,o[t.method]);o&&Dt.forEach(["delete","get","head","post","put","patch","common"],m=>{delete o[m]}),t.headers=Qm.concat(s,o);const a=[];let l=!0;this.interceptors.request.forEach(function(f){typeof f.runWhen=="function"&&f.runWhen(t)===!1||(l=l&&f.synchronous,a.unshift(f.fulfilled,f.rejected))});const u=[];this.interceptors.response.forEach(function(f){u.push(f.fulfilled,f.rejected)});let c,d=0,h;if(!l){const m=[Tue.bind(this),void 0];for(m.unshift.apply(m,a),m.push.apply(m,u),h=m.length,c=Promise.resolve(t);d{if(!i._listeners)return;let o=i._listeners.length;for(;o-- >0;)i._listeners[o](r);i._listeners=null}),this.promise.then=r=>{let o;const s=new Promise(a=>{i.subscribe(a),o=a}).then(r);return s.cancel=function(){i.unsubscribe(o)},s},e(function(o,s,a){i.reason||(i.reason=new pL(o,s,a),t(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}static source(){let e;return{token:new wO(function(r){e=r}),cancel:e}}}const mUe=wO;function fUe(n){return function(t){return n.apply(null,t)}}function pUe(n){return Dt.isObject(n)&&n.isAxiosError===!0}const SO={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(SO).forEach(([n,e])=>{SO[e]=n});const bUe=SO;function Gue(n){const e=new FZ(n),t=aue(FZ.prototype.request,e);return Dt.extend(t,FZ.prototype,e,{allOwnKeys:!0}),Dt.extend(t,e,null,{allOwnKeys:!0}),t.create=function(r){return Gue(aI(n,r))},t}const Vs=Gue(fO);Vs.Axios=FZ,Vs.CanceledError=pL,Vs.CancelToken=mUe,Vs.isCancel=Aue,Vs.VERSION=Wue,Vs.toFormData=wZ,Vs.AxiosError=ur,Vs.Cancel=Vs.CanceledError,Vs.all=function(e){return Promise.all(e)},Vs.spread=fUe,Vs.isAxiosError=pUe,Vs.mergeConfig=aI,Vs.AxiosHeaders=Qm,Vs.formToJSON=n=>_ue(Dt.isHTMLForm(n)?new FormData(n):n),Vs.getAdapter=Zue.getAdapter,Vs.HttpStatusCode=bUe,Vs.default=Vs;var Vue=typeof global=="object"&&global&&global.Object===Object&&global,CUe=typeof self=="object"&&self&&self.Object===Object&&self,gg=Vue||CUe||Function("return this")(),mg=gg.Symbol,Xue=Object.prototype,vUe=Xue.hasOwnProperty,yUe=Xue.toString,bL=mg?mg.toStringTag:void 0;function IUe(n){var e=vUe.call(n,bL),t=n[bL];try{n[bL]=void 0;var i=!0}catch{}var r=yUe.call(n);return i&&(e?n[bL]=t:delete n[bL]),r}var wUe=Object.prototype,SUe=wUe.toString;function xUe(n){return SUe.call(n)}var LUe="[object Null]",FUe="[object Undefined]",Pue=mg?mg.toStringTag:void 0;function q1(n){return n==null?n===void 0?FUe:LUe:Pue&&Pue in Object(n)?IUe(n):xUe(n)}function eC(n){return n!=null&&typeof n=="object"}var _Ue="[object Symbol]";function lI(n){return typeof n=="symbol"||eC(n)&&q1(n)==_Ue}function tC(n,e){for(var t=-1,i=n==null?0:n.length,r=Array(i);++t0){if(++e>=iJe)return arguments[0]}else e=0;return n.apply(void 0,arguments)}}function aJe(n){return function(){return n}}var _Z=function(){try{var n=iC(Object,"defineProperty");return n({},"",{}),n}catch{}}(),lJe=_Z?function(n,e){return _Z(n,"toString",{configurable:!0,enumerable:!1,value:aJe(e),writable:!0})}:CL,Jue=sJe(lJe);function uJe(n,e){for(var t=-1,i=n==null?0:n.length;++t-1}var gJe=9007199254740991,mJe=/^(?:0|[1-9]\d*)$/;function DZ(n,e){var t=typeof n;return e=e??gJe,!!e&&(t=="number"||t!="symbol"&&mJe.test(n))&&n>-1&&n%1==0&&n-1&&n%1==0&&n<=CJe}function $m(n){return n!=null&&NO(n.length)&&!Hue(n)}function kZ(n,e,t){if(!Bo(t))return!1;var i=typeof e;return(i=="number"?$m(t)&&DZ(e,t.length):i=="string"&&e in t)?NZ(t[e],n):!1}function vJe(n){return que(function(e,t){var i=-1,r=t.length,o=r>1?t[r-1]:void 0,s=r>2?t[2]:void 0;for(o=n.length>3&&typeof o=="function"?(r--,o):void 0,s&&kZ(t[0],t[1],s)&&(o=r<3?void 0:o,r=1),e=Object(e);++i-1}function EKe(n,e){var t=this.__data__,i=EZ(t,n);return i<0?(++this.size,t.push([n,e])):t[i][1]=e,this}function qm(n){var e=-1,t=n==null?0:n.length;for(this.clear();++e0&&t(a)?e>1?WO(a,e-1,t,i,r):EO(r,a):i||(r[r.length]=a)}return r}function QKe(n){var e=n==null?0:n.length;return e?WO(n,1):[]}function $Ke(n){return Jue($ue(n,void 0,QKe),n+"")}var qKe=cce(Object.getPrototypeOf,Object);function e8e(n,e,t,i){var r=-1,o=n==null?0:n.length;for(i&&o&&(t=n[++r]);++r=e?n:e)),n}function n8e(){this.__data__=new qm,this.size=0}function i8e(n){var e=this.__data__,t=e.delete(n);return this.size=e.size,t}function r8e(n){return this.__data__.get(n)}function o8e(n){return this.__data__.has(n)}var s8e=200;function a8e(n,e){var t=this.__data__;if(t instanceof qm){var i=t.__data__;if(!IL||i.lengtha))return!1;var u=o.get(n),c=o.get(e);if(u&&c)return u==e&&c==n;var d=-1,h=!0,g=t&L8e?new xL:void 0;for(o.set(n,e),o.set(e,n);++d=e||D<0||d&&A>=o}function C(){var L=BO();if(b(L))return v(L);a=setTimeout(C,f(L))}function v(L){return a=void 0,h&&i?g(L):(i=r=void 0,s)}function w(){a!==void 0&&clearTimeout(a),u=0,i=l=r=a=void 0}function S(){return a===void 0?s:v(BO())}function F(){var L=BO(),D=b(L);if(i=arguments,r=this,l=L,D){if(a===void 0)return m(l);if(d)return clearTimeout(a),a=setTimeout(C,e),g(l)}return a===void 0&&(a=setTimeout(C,e)),s}return F.cancel=w,F.flush=S,F}function fje(n,e,t){for(var i=-1,r=n==null?0:n.length;++i-1?r[o?e[s]:s]:void 0}}var vje=Math.max;function Vce(n,e,t){var i=n==null?0:n.length;if(!i)return-1;var r=t==null?0:FO(t);return r<0&&(r=vje(i+r,0)),Kue(n,rh(e),r)}var yje=Cje(Vce);function Xce(n){return n&&n.length?n[0]:void 0}function Pce(n,e){var t=-1,i=$m(n)?Array(n.length):[];return cI(n,function(r,o,s){i[++t]=e(r,o,s)}),i}function Kr(n,e){var t=ws(n)?tC:Pce;return t(n,rh(e))}var Ije=Object.prototype,wje=Ije.hasOwnProperty,Sje=dje(function(n,e,t){wje.call(n,t)?n[t].push(e):AZ(n,t,[e])}),xje=Object.prototype,Lje=xje.hasOwnProperty;function Fje(n,e){return n!=null&&Lje.call(n,e)}function rd(n,e){return n!=null&&Ece(n,e,Fje)}var _je="[object String]";function YO(n){return typeof n=="string"||!ws(n)&&eC(n)&&q1(n)==_je}function Dje(n,e){return tC(e,function(t){return n[t]})}function XZ(n){return n==null?[]:Dje(n,id(n))}var Aje=Math.max;function oh(n,e,t,i){n=$m(n)?n:XZ(n),t=t&&!i?FO(t):0;var r=n.length;return t<0&&(t=Aje(r+t,0)),YO(n)?t<=r&&n.indexOf(e,t)>-1:!!r&&jue(n,e,t)>-1}var Nje="[object Map]",kje="[object Set]",Mje=Object.prototype,Zje=Mje.hasOwnProperty;function Xs(n){if(n==null)return!0;if($m(n)&&(ws(n)||typeof n=="string"||typeof n.splice=="function"||TZ(n)||MO(n)||ZZ(n)))return!n.length;var e=VO(n);if(e==Nje||e==kje)return!n.size;if(MZ(n))return!dce(n).length;for(var t in n)if(Zje.call(n,t))return!1;return!0}function Oce(n){return n===void 0}function Bce(n,e){var t={};return e=rh(e),Rce(n,function(i,r,o){AZ(t,r,e(i,r,o))}),t}var Tje="Expected a function";function Eje(n){if(typeof n!="function")throw new TypeError(Tje);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}function Wje(n,e,t,i){if(!Bo(n))return n;e=RZ(e,n);for(var r=-1,o=e.length,s=o-1,a=n;a!=null&&++re||o&&s&&l&&!a&&!u||i&&s&&l||!t&&l||!r)return 1;if(!i&&!o&&!u&&n=a)return l;var u=t[i];return l*(u=="desc"?-1:1)}}return n.index-e.index}function Pje(n,e,t){e.length?e=tC(e,function(o){return ws(o)?function(s){return GZ(s,o.length===1?o[0]:o)}:o}):e=[CL];var i=-1;e=tC(e,oce(rh));var r=Pce(n,function(o,s,a){var l=tC(e,function(u){return u(o)});return{criteria:l,index:++i,value:o}});return Gje(r,function(o,s){return Xje(o,s,t)})}function Oje(n,e){return zce(n,e,function(t,i){return Wce(n,i)})}var HO=$Ke(function(n,e){return n==null?{}:Oje(n,e)});function Bje(n,e,t,i,r){return r(n,function(o,s,a){t=i?(i=!1,o):e(t,o,s,a)}),t}function sh(n,e,t){var i=ws(n)?e8e:Bje,r=arguments.length<3;return i(n,rh(e),t,r,cI)}function dI(){var n=arguments,e=wL(n[0]);return n.length<3?e:e.replace(n[1],n[2])}function zje(n,e){var t;return cI(n,function(i,r,o){return t=e(i,r,o),!t}),!!t}function Yje(n,e,t){var i=ws(n)?Fce:zje;return t&&kZ(n,e,t)&&(e=void 0),i(n,rh(e))}var UO=que(function(n,e){if(n==null)return[];var t=e.length;return t>1&&kZ(n,e[0],e[1])?e=[]:t>2&&kZ(e[0],e[1],e[2])&&(e=[e[0]]),Pje(n,WO(e,1),[])});function Yce(n,e,t){return n=wL(n),t=t==null?0:t8e(FO(t),0,n.length),e=xO(e),n.slice(t,t+e.length)==e}var Hje="Expected a function";function Hce(n,e,t){var i=!0,r=!0;if(typeof n!="function")throw new TypeError(Hje);return Bo(t)&&(i="leading"in t?!!t.leading:i,r="trailing"in t?!!t.trailing:r),Gce(n,e,{leading:i,maxWait:e,trailing:r})}function fg(n){return wL(n).toLowerCase()}function Uce(n){return wL(n).toUpperCase()}var Uje=1/0,Jje=uI&&1/XO(new uI([,-0]))[1]==Uje?function(n){return new uI(n)}:nJe,Kje=200;function jje(n,e,t){var i=-1,r=hJe,o=n.length,s=!0,a=[],l=a;if(t)s=!1,r=fje;else if(o>=Kje){var u=e?null:Jje(n);if(u)return XO(u);s=!1,r=_ce,l=new xL}else l=e?[]:a;e:for(;++i(n.get="get",n.post="post",n.put="put",n.patch="patch",n.delete="delete",n.options="options",n.head="head",n))(mc||{}),$je={BASE_URL:"/",MODE:"package",DEV:!1,PROD:!0,SSR:!1};const Jce=n=>{let e;const t=new Set,i=(c,d)=>{const h=typeof c=="function"?c(e):c;if(!Object.is(h,e)){const g=e;e=d??(typeof h!="object"||h===null)?h:Object.assign({},e,h),t.forEach(m=>m(e,g))}},r=()=>e,l={setState:i,getState:r,getInitialState:()=>u,subscribe:c=>(t.add(c),()=>t.delete(c)),destroy:()=>{t.clear()}},u=e=n(i,r,l);return l},qje=n=>n?Jce(n):Jce;var Kce={exports:{}},JO={},KO={exports:{}},jO={};/** + * @license React + * use-sync-external-store-shim.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var jce;function eQe(){if(jce)return jO;jce=1;var n=I;function e(d,h){return d===h&&(d!==0||1/d===1/h)||d!==d&&h!==h}var t=typeof Object.is=="function"?Object.is:e,i=n.useState,r=n.useEffect,o=n.useLayoutEffect,s=n.useDebugValue;function a(d,h){var g=h(),m=i({inst:{value:g,getSnapshot:h}}),f=m[0].inst,b=m[1];return o(function(){f.value=g,f.getSnapshot=h,l(f)&&b({inst:f})},[d,g,h]),r(function(){return l(f)&&b({inst:f}),d(function(){l(f)&&b({inst:f})})},[d]),s(g),g}function l(d){var h=d.getSnapshot;d=d.value;try{var g=h();return!t(d,g)}catch{return!0}}function u(d,h){return h()}var c=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?u:a;return jO.useSyncExternalStore=n.useSyncExternalStore!==void 0?n.useSyncExternalStore:c,jO}var Qce;function tQe(){return Qce||(Qce=1,KO.exports=eQe()),KO.exports}/** + * @license React + * use-sync-external-store-shim/with-selector.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var $ce;function nQe(){if($ce)return JO;$ce=1;var n=I,e=tQe();function t(u,c){return u===c&&(u!==0||1/u===1/c)||u!==u&&c!==c}var i=typeof Object.is=="function"?Object.is:t,r=e.useSyncExternalStore,o=n.useRef,s=n.useEffect,a=n.useMemo,l=n.useDebugValue;return JO.useSyncExternalStoreWithSelector=function(u,c,d,h,g){var m=o(null);if(m.current===null){var f={hasValue:!1,value:null};m.current=f}else f=m.current;m=a(function(){function C(L){if(!v){if(v=!0,w=L,L=h(L),g!==void 0&&f.hasValue){var D=f.value;if(g(D,L))return S=D}return S=L}if(D=S,i(w,L))return D;var A=h(L);return g!==void 0&&g(D,A)?D:(w=L,S=A)}var v=!1,w,S,F=d===void 0?null:d;return[function(){return C(c())},F===null?void 0:function(){return C(F())}]},[c,d,h,g]);var b=r(u,m[0],m[1]);return s(function(){f.hasValue=!0,f.value=b},[b]),l(b),b},JO}Kce.exports=nQe();var iQe=Kce.exports;const rQe=Kl(iQe);var qce={BASE_URL:"/",MODE:"package",DEV:!1,PROD:!0,SSR:!1};const{useDebugValue:oQe}=Ye,{useSyncExternalStoreWithSelector:sQe}=rQe;let ede=!1;const aQe=n=>n;function lQe(n,e=aQe,t){(qce?"package":void 0)!=="production"&&t&&!ede&&(ede=!0);const i=sQe(n.subscribe,n.getState,n.getServerState||n.getInitialState,e,t);return oQe(i),i}const tde=n=>{const e=typeof n=="function"?qje(n):n,t=(i,r)=>lQe(e,i,r);return Object.assign(t,e),t},nde=n=>n?tde(n):tde;var PZ={BASE_URL:"/",MODE:"package",DEV:!1,PROD:!0,SSR:!1};const QO=new Map,OZ=n=>{const e=QO.get(n);return e?Object.fromEntries(Object.entries(e.stores).map(([t,i])=>[t,i.getState()])):{}},uQe=(n,e,t)=>{if(n===void 0)return{type:"untracked",connection:e.connect(t)};const i=QO.get(t.name);if(i)return{type:"tracked",store:n,...i};const r={connection:e.connect(t),stores:{}};return QO.set(t.name,r),{type:"tracked",store:n,...r}},ide=(n,e={})=>(t,i,r)=>{const{enabled:o,anonymousActionType:s,store:a,...l}=e;let u;try{u=(o??(PZ?"package":void 0)!=="production")&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!u)return n(t,i,r);const{connection:c,...d}=uQe(a,u,l);let h=!0;r.setState=(f,b,C)=>{const v=t(f,b);if(!h)return v;const w=C===void 0?{type:s||"anonymous"}:typeof C=="string"?{type:C}:C;return a===void 0?(c==null||c.send(w,i()),v):(c==null||c.send({...w,type:`${a}/${w.type}`},{...OZ(l.name),[a]:r.getState()}),v)};const g=(...f)=>{const b=h;h=!1,t(...f),h=b},m=n(r.setState,i,r);if(d.type==="untracked"?c==null||c.init(m):(d.stores[d.store]=r,c==null||c.init(Object.fromEntries(Object.entries(d.stores).map(([f,b])=>[f,f===d.store?m:b.getState()])))),r.dispatchFromDevtools&&typeof r.dispatch=="function"){let f=!1;const b=r.dispatch;r.dispatch=(...C)=>{(PZ?"package":void 0)!=="production"&&C[0].type==="__setState"&&!f&&(f=!0),b(...C)}}return c.subscribe(f=>{var b;switch(f.type){case"ACTION":return typeof f.payload!="string"?void 0:$O(f.payload,C=>{if(C.type==="__setState"){if(a===void 0){g(C.state);return}Object.keys(C.state).length;const v=C.state[a];if(v==null)return;JSON.stringify(r.getState())!==JSON.stringify(v)&&g(v);return}r.dispatchFromDevtools&&typeof r.dispatch=="function"&&r.dispatch(C)});case"DISPATCH":switch(f.payload.type){case"RESET":return g(m),a===void 0?c==null?void 0:c.init(r.getState()):c==null?void 0:c.init(OZ(l.name));case"COMMIT":if(a===void 0){c==null||c.init(r.getState());return}return c==null?void 0:c.init(OZ(l.name));case"ROLLBACK":return $O(f.state,C=>{if(a===void 0){g(C),c==null||c.init(r.getState());return}g(C[a]),c==null||c.init(OZ(l.name))});case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return $O(f.state,C=>{if(a===void 0){g(C);return}JSON.stringify(r.getState())!==JSON.stringify(C[a])&&g(C[a])});case"IMPORT_STATE":{const{nextLiftedState:C}=f.payload,v=(b=C.computedStates.slice(-1)[0])==null?void 0:b.state;if(!v)return;g(a===void 0?v:v[a]),c==null||c.send(null,C);return}case"PAUSE_RECORDING":return h=!h}return}}),m},$O=(n,e)=>{let t;try{t=JSON.parse(n)}catch{}t!==void 0&&e(t)};function qO(n,e){let t;try{t=n()}catch{return}return{getItem:r=>{var o;const s=l=>l===null?null:JSON.parse(l,e==null?void 0:e.reviver),a=(o=t.getItem(r))!=null?o:null;return a instanceof Promise?a.then(s):s(a)},setItem:(r,o)=>t.setItem(r,JSON.stringify(o,e==null?void 0:e.replacer)),removeItem:r=>t.removeItem(r)}}const FL=n=>e=>{try{const t=n(e);return t instanceof Promise?t:{then(i){return FL(i)(t)},catch(i){return this}}}catch(t){return{then(i){return this},catch(i){return FL(i)(t)}}}},cQe=(n,e)=>(t,i,r)=>{let o={getStorage:()=>localStorage,serialize:JSON.stringify,deserialize:JSON.parse,partialize:b=>b,version:0,merge:(b,C)=>({...C,...b}),...e},s=!1;const a=new Set,l=new Set;let u;try{u=o.getStorage()}catch{}if(!u)return n((...b)=>{t(...b)},i,r);const c=FL(o.serialize),d=()=>{const b=o.partialize({...i()});let C;const v=c({state:b,version:o.version}).then(w=>u.setItem(o.name,w)).catch(w=>{C=w});if(C)throw C;return v},h=r.setState;r.setState=(b,C)=>{h(b,C),d()};const g=n((...b)=>{t(...b),d()},i,r);let m;const f=()=>{var b;if(!u)return;s=!1,a.forEach(v=>v(i()));const C=((b=o.onRehydrateStorage)==null?void 0:b.call(o,i()))||void 0;return FL(u.getItem.bind(u))(o.name).then(v=>{if(v)return o.deserialize(v)}).then(v=>{if(v)if(typeof v.version=="number"&&v.version!==o.version){if(o.migrate)return o.migrate(v.state,v.version)}else return v.state}).then(v=>{var w;return m=o.merge(v,(w=i())!=null?w:g),t(m,!0),d()}).then(()=>{C==null||C(m,void 0),s=!0,l.forEach(v=>v(m))}).catch(v=>{C==null||C(void 0,v)})};return r.persist={setOptions:b=>{o={...o,...b},b.getStorage&&(u=b.getStorage())},clearStorage:()=>{u==null||u.removeItem(o.name)},getOptions:()=>o,rehydrate:()=>f(),hasHydrated:()=>s,onHydrate:b=>(a.add(b),()=>{a.delete(b)}),onFinishHydration:b=>(l.add(b),()=>{l.delete(b)})},f(),m||g},dQe=(n,e)=>(t,i,r)=>{let o={storage:qO(()=>localStorage),partialize:f=>f,version:0,merge:(f,b)=>({...b,...f}),...e},s=!1;const a=new Set,l=new Set;let u=o.storage;if(!u)return n((...f)=>{t(...f)},i,r);const c=()=>{const f=o.partialize({...i()});return u.setItem(o.name,{state:f,version:o.version})},d=r.setState;r.setState=(f,b)=>{d(f,b),c()};const h=n((...f)=>{t(...f),c()},i,r);r.getInitialState=()=>h;let g;const m=()=>{var f,b;if(!u)return;s=!1,a.forEach(v=>{var w;return v((w=i())!=null?w:h)});const C=((b=o.onRehydrateStorage)==null?void 0:b.call(o,(f=i())!=null?f:h))||void 0;return FL(u.getItem.bind(u))(o.name).then(v=>{if(v)if(typeof v.version=="number"&&v.version!==o.version){if(o.migrate)return o.migrate(v.state,v.version)}else return v.state}).then(v=>{var w;return g=o.merge(v,(w=i())!=null?w:h),t(g,!0),c()}).then(()=>{C==null||C(g,void 0),g=i(),s=!0,l.forEach(v=>v(g))}).catch(v=>{C==null||C(void 0,v)})};return r.persist={setOptions:f=>{o={...o,...f},f.storage&&(u=f.storage)},clearStorage:()=>{u==null||u.removeItem(o.name)},getOptions:()=>o,rehydrate:()=>m(),hasHydrated:()=>s,onHydrate:f=>(a.add(f),()=>{a.delete(f)}),onFinishHydration:f=>(l.add(f),()=>{l.delete(f)})},o.skipHydration||m(),g||h},rde=(n,e)=>"getStorage"in e||"serialize"in e||"deserialize"in e?cQe(n,e):dQe(n,e),ode=(n,e)=>(t,i,r)=>{const o=(...s)=>{t(...s)};return r.setState=o,n(o,i,r)},sde="config-info-storage",hQe={state:{configInfo:null},version:0},eB=nde()(ode(ide(rde(n=>({configInfo:null,updateConfigInfo:e=>n(()=>({configInfo:e})),clear:()=>n(()=>({configInfo:null}))}),{name:sde,storage:qO(()=>sessionStorage)})))),pg=nde()(ode(ide(rde(n=>({openapiWithServiceInfo:null,updateOpenapiWithServiceInfo:e=>n(()=>({openapiWithServiceInfo:e})),clear:()=>n(()=>({openapiWithServiceInfo:null}))}),{name:"openapi-with-service-info-storage",storage:qO(()=>sessionStorage)}))));function gQe(){const n=globalThis.sessionStorage.getItem(sde);return(n?JSON.parse(n):hQe).state.configInfo}const ade=120;function _L(n){let e=ade*1e3;const t=gQe();return t&&(e=t.timeout*1e3),n={method:mc.get,timeout:e,...n},n.method===mc.get&&~Vce(XZ(n.params),i=>Array.isArray(i))&&(n.paramsSerializer=i=>$p(Kr(id(LL(i,r=>!!r)),r=>{const o=i[r];return Array.isArray(o)?Kr($p(o,a=>!!a),a=>`${encodeURIComponent(r)}=${encodeURIComponent(a)}`).join("&"):`${encodeURIComponent(r)}=${encodeURIComponent(o)}`}),r=>!!r).join("&")),Vs(n).catch(i=>{var o,s;const r=(o=i==null?void 0:i.response)==null?void 0:o.data;return gHe.error({message:(r==null?void 0:r.message)||(r==null?void 0:r.msg)||r||((s=i==null?void 0:i.response)==null?void 0:s.statusText)||(i==null?void 0:i.message)||"api request is error, please check",duration:2}),i.response})}const mQe="data:image/svg+xml,%3csvg%20t='1706105054576'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='15356'%20width='18'%20height='18'%3e%3cpath%20d='M208%20776h-33.467c-21.396%200-29.155-2.228-36.977-6.411-7.823-4.184-13.961-10.322-18.145-18.145-4.183-7.822-6.411-15.58-6.411-36.977V597.533c0-21.396%202.228-29.155%206.411-36.977%204.184-7.823%2010.322-13.961%2018.145-18.145%207.822-4.183%2015.58-6.411%2036.977-6.411H208V125.533c0-21.396%202.228-29.155%206.411-36.977%204.184-7.823%2010.322-13.961%2018.145-18.145%207.822-4.183%2015.58-6.411%2036.977-6.411h439.85c10.037-0.702%2020.312%202.783%2027.985%2010.456l164.048%20164.049c7.04%207.04%2010.555%2016.269%2010.544%2025.495h0.04v634.467c0%2021.396-2.228%2029.155-6.411%2036.977-4.184%207.823-10.322%2013.961-18.145%2018.145-7.822%204.183-15.58%206.411-36.977%206.411H269.533c-21.396%200-29.155-2.228-36.977-6.411-7.823-4.184-13.961-10.322-18.145-18.145-4.183-7.822-6.411-15.58-6.411-36.977V776z%20m64-240h451.467c21.396%200%2029.155%202.228%2036.977%206.411%207.823%204.184%2013.961%2010.322%2018.145%2018.145%204.183%207.822%206.411%2015.58%206.411%2036.977v116.934c0%2021.396-2.228%2029.155-6.411%2036.977-4.184%207.823-10.322%2013.961-18.145%2018.145-7.822%204.183-15.58%206.411-36.977%206.411H272v120h576V286.912L689.088%20128H272v408z%20m-26.28%2055.197v79.453c0%207.852-1.04%2013.433-3.12%2016.744-2.08%203.31-5.346%204.965-9.8%204.965-2.812%200-4.98-0.556-6.503-1.67-2.227-1.699-3.809-3.925-4.746-6.68-0.938-2.753-1.436-6.972-1.494-12.655L182%20676.539c0.703%209.961%203.003%2018.325%206.9%2025.093%203.896%206.767%209.418%2011.909%2016.567%2015.425%207.148%203.515%2017.226%205.273%2030.234%205.273%2012.305%200%2022.398-2.666%2030.278-7.998%207.881-5.332%2013.125-11.836%2015.733-19.512%202.607-7.676%203.911-18.867%203.911-33.574v-70.049h-39.902z%20m59.503%2086.221c1.113%2013.008%205.888%2023.73%2014.326%2032.168%208.437%208.437%2023.613%2012.656%2045.527%2012.656%2012.48%200%2022.822-1.802%2031.026-5.405%208.203-3.604%2014.59-8.892%2019.16-15.864%204.57-6.973%206.855-14.59%206.855-22.852%200-7.031-1.714-13.389-5.141-19.072-3.428-5.684-8.907-10.444-16.436-14.282-7.53-3.838-19.995-7.632-37.397-11.382-7.032-1.465-11.485-3.047-13.36-4.746-1.933-1.641-2.9-3.487-2.9-5.537%200-2.813%201.172-5.2%203.515-7.164%202.344-1.962%205.83-2.944%2010.46-2.944%205.624%200%2010.034%201.318%2013.227%203.955%203.193%202.637%205.288%206.856%206.284%2012.656l37.53-2.197c-1.641-13.36-6.783-23.1-15.425-29.223-8.643-6.124-21.197-9.185-37.661-9.185-13.419%200-23.98%201.685-31.685%205.054-7.705%203.369-13.477%207.998-17.315%2013.886-3.837%205.89-5.756%2012.144-5.756%2018.765%200%2010.078%203.75%2018.37%2011.25%2024.873%207.441%206.504%2019.892%2011.719%2037.353%2015.645%2010.664%202.343%2017.461%204.834%2020.39%207.47%202.93%202.637%204.395%205.625%204.395%208.965%200%203.516-1.538%206.607-4.614%209.273-3.076%202.666-7.456%203.999-13.14%203.999-7.617%200-13.476-2.608-17.578-7.823-2.52-3.222-4.19-7.91-5.01-14.062l-37.88%202.373z%20m131.923-21.709c0%2015.059%202.96%2027.598%208.877%2037.617%205.918%2010.02%2013.638%2017.344%2023.16%2021.973%209.521%204.629%2021.547%206.943%2036.079%206.943%2014.297%200%2026.235-2.68%2035.815-8.042%209.58-5.361%2016.904-12.861%2021.973-22.5%205.068-9.639%207.602-21.987%207.602-37.046%200-20.742-5.8-36.87-17.402-48.383C541.648%20594.757%20525.125%20589%20503.68%20589c-20.918%200-37.237%205.86-48.955%2017.578-11.72%2011.719-17.579%2028.096-17.579%2049.131z%20m39.815%200.176c0-13.125%202.432-22.53%207.295-28.213%204.863-5.684%2011.308-8.526%2019.336-8.526%208.379%200%2015.014%202.798%2019.907%208.394%204.893%205.596%207.339%2014.458%207.339%2026.587%200%2014.414-2.344%2024.404-7.031%2029.97-4.688%205.567-11.309%208.35-19.864%208.35-8.32%200-14.897-2.842-19.731-8.525-4.834-5.684-7.251-15.03-7.251-28.037z%20m115.4-64.688v128.848h37.442v-70.752l48.252%2070.752h37.529V591.197h-37.53v71.28l-48.515-71.28h-37.178z'%20fill='%2300000'%20p-id='15357'%3e%3c/path%3e%3c/svg%3e",fQe="data:image/svg+xml,%3csvg%20t='1706105113634'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='16799'%20width='18'%20height='18'%3e%3cpath%20d='M578.133%20675.627c-3.306-3.307-8.746-3.307-12.053%200L442.133%20799.573c-57.386%2057.387-154.24%2063.467-217.6%200-63.466-63.466-57.386-160.213%200-217.6L348.48%20458.027c3.307-3.307%203.307-8.747%200-12.054l-42.453-42.453c-3.307-3.307-8.747-3.307-12.054%200L170.027%20527.467c-90.24%2090.24-90.24%20236.266%200%20326.4s236.266%2090.24%20326.4%200L620.373%20729.92c3.307-3.307%203.307-8.747%200-12.053l-42.24-42.24z%20m275.84-505.6c-90.24-90.24-236.266-90.24-326.4%200L403.52%20293.973c-3.307%203.307-3.307%208.747%200%2012.054l42.347%2042.346c3.306%203.307%208.746%203.307%2012.053%200l123.947-123.946c57.386-57.387%20154.24-63.467%20217.6%200%2063.466%2063.466%2057.386%20160.213%200%20217.6L675.52%20565.973c-3.307%203.307-3.307%208.747%200%2012.054l42.453%2042.453c3.307%203.307%208.747%203.307%2012.054%200l123.946-123.947c90.134-90.24%2090.134-236.266%200-326.506z'%20p-id='16800'%20fill='%23000000'%3e%3c/path%3e%3cpath%20d='M616.64%20362.987c-3.307-3.307-8.747-3.307-12.053%200l-241.6%20241.493c-3.307%203.307-3.307%208.747%200%2012.053l42.24%2042.24c3.306%203.307%208.746%203.307%2012.053%200L658.773%20417.28c3.307-3.307%203.307-8.747%200-12.053l-42.133-42.24z'%20p-id='16801'%20fill='%23000000'%3e%3c/path%3e%3c/svg%3e",pQe="data:image/svg+xml,%3csvg%20t='1706105160264'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='17854'%20width='18'%20height='18'%3e%3cpath%20d='M668.650667%2064a85.333333%2085.333333%200%200%201%2060.352%2025.002667l163.328%20163.328A85.333333%2085.333333%200%200%201%20917.333333%20312.682667V832a128%20128%200%200%201-128%20128H234.666667a128%20128%200%200%201-128-128V192a128%20128%200%200%201%20128-128h433.984zM618.666667%20128H234.666667a64%2064%200%200%200-63.893334%2060.245333L170.666667%20192v640a64%2064%200%200%200%2060.245333%2063.893333L234.666667%20896h554.666666a64%2064%200%200%200%2063.893334-60.245333L853.333333%20832V362.666667h-170.666666a64%2064%200%200%201-64-64V128z%20m140.8%20405.333333c4.693333%200%208.533333%203.84%208.533333%208.533334v46.933333a8.533333%208.533333%200%200%201-8.533333%208.533333H264.533333a8.533333%208.533333%200%200%201-8.533333-8.533333v-46.933333c0-4.693333%203.84-8.533333%208.533333-8.533334h494.933334z%20m-256-128c4.693333%200%208.533333%203.84%208.533333%208.533334v46.933333a8.533333%208.533333%200%200%201-8.533333%208.533333H264.533333a8.533333%208.533333%200%200%201-8.533333-8.533333v-46.933333c0-4.693333%203.84-8.533333%208.533333-8.533334h238.933334zM682.666667%20133.312V298.666667h165.354666l-0.938666-1.066667-163.349334-163.349333-1.066666-0.938667z'%20fill='%23000000'%20p-id='17855'%3e%3c/path%3e%3c/svg%3e";var lde={exports:{}},DL={};/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var ude;function bQe(){if(ude)return DL;ude=1;var n=I,e=Symbol.for("react.element"),t=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,r=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function s(a,l,u){var c,d={},h=null,g=null;u!==void 0&&(h=""+u),l.key!==void 0&&(h=""+l.key),l.ref!==void 0&&(g=l.ref);for(c in l)i.call(l,c)&&!o.hasOwnProperty(c)&&(d[c]=l[c]);if(a&&a.defaultProps)for(c in l=a.defaultProps,l)d[c]===void 0&&(d[c]=l[c]);return{$$typeof:e,type:a,key:h,ref:g,props:d,_owner:r.current}}return DL.Fragment=t,DL.jsx=s,DL.jsxs=s,DL}lde.exports=bQe();var qp=lde.exports,ah=qp.Fragment;function ae(n,e,t){return ax.call(e,"css")?qp.jsx(HV,YV(n,e),t):qp.jsx(n,e,t)}function Rt(n,e,t){return ax.call(e,"css")?qp.jsxs(HV,YV(n,e),t):qp.jsxs(n,e,t)}var od=(n=>(n.url="url",n.file="file",n.text="text",n))(od||{});const CQe=n=>({url:"login.urlModeImport",file:"login.fileModeImport",text:"login.textModeImport"})[n],vQe=n=>({url:ae("img",{src:fQe,alt:"url"}),file:ae("img",{src:mQe,alt:"json-file"}),text:ae("img",{src:pQe,alt:"text"})})[n];/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */function cde(n){return typeof n>"u"||n===null}function yQe(n){return typeof n=="object"&&n!==null}function IQe(n){return Array.isArray(n)?n:cde(n)?[]:[n]}function wQe(n,e){var t,i,r,o;if(e)for(o=Object.keys(e),t=0,i=o.length;ta&&(o=" ... ",e=i-a+o.length),t-i>a&&(s=" ...",t=i+a-s.length),{str:o+n.slice(e,t).replace(/\t/g,"→")+s,pos:i-e+o.length}}function nB(n,e){return $l.repeat(" ",e-n.length)+n}function kQe(n,e){if(e=Object.create(e||null),!n.buffer)return null;e.maxLength||(e.maxLength=79),typeof e.indent!="number"&&(e.indent=1),typeof e.linesBefore!="number"&&(e.linesBefore=3),typeof e.linesAfter!="number"&&(e.linesAfter=2);for(var t=/\r?\n|\r|\0/g,i=[0],r=[],o,s=-1;o=t.exec(n.buffer);)r.push(o.index),i.push(o.index+o[0].length),n.position<=o.index&&s<0&&(s=i.length-2);s<0&&(s=i.length-1);var a="",l,u,c=Math.min(n.line+e.linesAfter,r.length).toString().length,d=e.maxLength-(e.indent+c+3);for(l=1;l<=e.linesBefore&&!(s-l<0);l++)u=tB(n.buffer,i[s-l],r[s-l],n.position-(i[s]-i[s-l]),d),a=$l.repeat(" ",e.indent)+nB((n.line-l+1).toString(),c)+" | "+u.str+` +`+a;for(u=tB(n.buffer,i[s],r[s],n.position,d),a+=$l.repeat(" ",e.indent)+nB((n.line+1).toString(),c)+" | "+u.str+` +`,a+=$l.repeat("-",e.indent+c+3+u.pos)+`^ +`,l=1;l<=e.linesAfter&&!(s+l>=r.length);l++)u=tB(n.buffer,i[s+l],r[s+l],n.position-(i[s]-i[s+l]),d),a+=$l.repeat(" ",e.indent)+nB((n.line+l+1).toString(),c)+" | "+u.str+` +`;return a.replace(/\n$/,"")}var MQe=kQe,ZQe=["kind","multi","resolve","construct","instanceOf","predicate","represent","representName","defaultStyle","styleAliases"],TQe=["scalar","sequence","mapping"];function EQe(n){var e={};return n!==null&&Object.keys(n).forEach(function(t){n[t].forEach(function(i){e[String(i)]=t})}),e}function WQe(n,e){if(e=e||{},Object.keys(e).forEach(function(t){if(ZQe.indexOf(t)===-1)throw new nf('Unknown option "'+t+'" is met in definition of "'+n+'" YAML type.')}),this.options=e,this.tag=n,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.representName=e.representName||null,this.defaultStyle=e.defaultStyle||null,this.multi=e.multi||!1,this.styleAliases=EQe(e.styleAliases||null),TQe.indexOf(this.kind)===-1)throw new nf('Unknown kind "'+this.kind+'" is specified for "'+n+'" YAML type.')}var yl=WQe;function hde(n,e){var t=[];return n[e].forEach(function(i){var r=t.length;t.forEach(function(o,s){o.tag===i.tag&&o.kind===i.kind&&o.multi===i.multi&&(r=s)}),t[r]=i}),t}function RQe(){var n={scalar:{},sequence:{},mapping:{},fallback:{},multi:{scalar:[],sequence:[],mapping:[],fallback:[]}},e,t;function i(r){r.multi?(n.multi[r.kind].push(r),n.multi.fallback.push(r)):n[r.kind][r.tag]=n.fallback[r.tag]=r}for(e=0,t=arguments.length;e=0?"0b"+n.toString(2):"-0b"+n.toString(2).slice(1)},octal:function(n){return n>=0?"0o"+n.toString(8):"-0o"+n.toString(8).slice(1)},decimal:function(n){return n.toString(10)},hexadecimal:function(n){return n>=0?"0x"+n.toString(16).toUpperCase():"-0x"+n.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}}),r$e=new RegExp("^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function o$e(n){return!(n===null||!r$e.test(n)||n[n.length-1]==="_")}function s$e(n){var e,t;return e=n.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:t*parseFloat(e,10)}var a$e=/^[-+]?[0-9]+e/;function l$e(n,e){var t;if(isNaN(n))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===n)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===n)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if($l.isNegativeZero(n))return"-0.0";return t=n.toString(10),a$e.test(t)?t.replace("e",".e"):t}function u$e(n){return Object.prototype.toString.call(n)==="[object Number]"&&(n%1!==0||$l.isNegativeZero(n))}var c$e=new yl("tag:yaml.org,2002:float",{kind:"scalar",resolve:o$e,construct:s$e,predicate:u$e,represent:l$e,defaultStyle:"lowercase"}),d$e=OQe.extend({implicit:[HQe,jQe,i$e,c$e]}),h$e=d$e,gde=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),mde=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function g$e(n){return n===null?!1:gde.exec(n)!==null||mde.exec(n)!==null}function m$e(n){var e,t,i,r,o,s,a,l=0,u=null,c,d,h;if(e=gde.exec(n),e===null&&(e=mde.exec(n)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,r=+e[3],!e[4])return new Date(Date.UTC(t,i,r));if(o=+e[4],s=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(c=+e[10],d=+(e[11]||0),u=(c*60+d)*6e4,e[9]==="-"&&(u=-u)),h=new Date(Date.UTC(t,i,r,o,s,a,l)),u&&h.setTime(h.getTime()-u),h}function f$e(n){return n.toISOString()}var p$e=new yl("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:g$e,construct:m$e,instanceOf:Date,represent:f$e});function b$e(n){return n==="<<"||n===null}var C$e=new yl("tag:yaml.org,2002:merge",{kind:"scalar",resolve:b$e}),rB=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function v$e(n){if(n===null)return!1;var e,t,i=0,r=n.length,o=rB;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function y$e(n){var e,t,i=n.replace(/[\r\n=]/g,""),r=i.length,o=rB,s=0,a=[];for(e=0;e>16&255),a.push(s>>8&255),a.push(s&255)),s=s<<6|o.indexOf(i.charAt(e));return t=r%4*6,t===0?(a.push(s>>16&255),a.push(s>>8&255),a.push(s&255)):t===18?(a.push(s>>10&255),a.push(s>>2&255)):t===12&&a.push(s>>4&255),new Uint8Array(a)}function I$e(n){var e="",t=0,i,r,o=n.length,s=rB;for(i=0;i>18&63],e+=s[t>>12&63],e+=s[t>>6&63],e+=s[t&63]),t=(t<<8)+n[i];return r=o%3,r===0?(e+=s[t>>18&63],e+=s[t>>12&63],e+=s[t>>6&63],e+=s[t&63]):r===2?(e+=s[t>>10&63],e+=s[t>>4&63],e+=s[t<<2&63],e+=s[64]):r===1&&(e+=s[t>>2&63],e+=s[t<<4&63],e+=s[64],e+=s[64]),e}function w$e(n){return Object.prototype.toString.call(n)==="[object Uint8Array]"}var S$e=new yl("tag:yaml.org,2002:binary",{kind:"scalar",resolve:v$e,construct:y$e,predicate:w$e,represent:I$e}),x$e=Object.prototype.hasOwnProperty,L$e=Object.prototype.toString;function F$e(n){if(n===null)return!0;var e=[],t,i,r,o,s,a=n;for(t=0,i=a.length;t>10)+55296,(n-65536&1023)+56320)}for(var wde=new Array(256),Sde=new Array(256),gI=0;gI<256;gI++)wde[gI]=Ide(gI)?1:0,Sde[gI]=Ide(gI);function H$e(n,e){this.input=n,this.filename=e.filename||null,this.schema=e.schema||R$e,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=n.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.firstTabInLine=-1,this.documents=[]}function xde(n,e){var t={name:n.filename,buffer:n.input.slice(0,-1),position:n.position,line:n.line,column:n.position-n.lineStart};return t.snippet=MQe(t),new nf(e,t)}function Yn(n,e){throw xde(n,e)}function YZ(n,e){n.onWarning&&n.onWarning.call(null,xde(n,e))}var Lde={YAML:function(e,t,i){var r,o,s;e.version!==null&&Yn(e,"duplication of %YAML directive"),i.length!==1&&Yn(e,"YAML directive accepts exactly one argument"),r=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),r===null&&Yn(e,"ill-formed argument of the YAML directive"),o=parseInt(r[1],10),s=parseInt(r[2],10),o!==1&&Yn(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=s<2,s!==1&&s!==2&&YZ(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var r,o;i.length!==2&&Yn(e,"TAG directive accepts exactly two arguments"),r=i[0],o=i[1],Cde.test(r)||Yn(e,"ill-formed tag handle (first argument) of the TAG directive"),eb.call(e.tagMap,r)&&Yn(e,'there is a previously declared suffix for "'+r+'" tag handle'),vde.test(o)||Yn(e,"ill-formed tag prefix (second argument) of the TAG directive");try{o=decodeURIComponent(o)}catch{Yn(e,"tag prefix is malformed: "+o)}e.tagMap[r]=o}};function tb(n,e,t,i){var r,o,s,a;if(e1&&(n.result+=$l.repeat(` +`,e-1))}function U$e(n,e,t){var i,r,o,s,a,l,u,c,d=n.kind,h=n.result,g;if(g=n.input.charCodeAt(n.position),Lu(g)||hI(g)||g===35||g===38||g===42||g===33||g===124||g===62||g===39||g===34||g===37||g===64||g===96||(g===63||g===45)&&(r=n.input.charCodeAt(n.position+1),Lu(r)||t&&hI(r)))return!1;for(n.kind="scalar",n.result="",o=s=n.position,a=!1;g!==0;){if(g===58){if(r=n.input.charCodeAt(n.position+1),Lu(r)||t&&hI(r))break}else if(g===35){if(i=n.input.charCodeAt(n.position-1),Lu(i))break}else{if(n.position===n.lineStart&&HZ(n)||t&&hI(g))break;if(bg(g))if(l=n.line,u=n.lineStart,c=n.lineIndent,Ps(n,!1,-1),n.lineIndent>=e){a=!0,g=n.input.charCodeAt(n.position);continue}else{n.position=s,n.line=l,n.lineStart=u,n.lineIndent=c;break}}a&&(tb(n,o,s,!1),aB(n,n.line-l),o=s=n.position,a=!1),sC(g)||(s=n.position+1),g=n.input.charCodeAt(++n.position)}return tb(n,o,s,!1),n.result?!0:(n.kind=d,n.result=h,!1)}function J$e(n,e){var t,i,r;if(t=n.input.charCodeAt(n.position),t!==39)return!1;for(n.kind="scalar",n.result="",n.position++,i=r=n.position;(t=n.input.charCodeAt(n.position))!==0;)if(t===39)if(tb(n,i,n.position,!0),t=n.input.charCodeAt(++n.position),t===39)i=n.position,n.position++,r=n.position;else return!0;else bg(t)?(tb(n,i,r,!0),aB(n,Ps(n,!1,e)),i=r=n.position):n.position===n.lineStart&&HZ(n)?Yn(n,"unexpected end of the document within a single quoted scalar"):(n.position++,r=n.position);Yn(n,"unexpected end of the stream within a single quoted scalar")}function K$e(n,e){var t,i,r,o,s,a;if(a=n.input.charCodeAt(n.position),a!==34)return!1;for(n.kind="scalar",n.result="",n.position++,t=i=n.position;(a=n.input.charCodeAt(n.position))!==0;){if(a===34)return tb(n,t,n.position,!0),n.position++,!0;if(a===92){if(tb(n,t,n.position,!0),a=n.input.charCodeAt(++n.position),bg(a))Ps(n,!1,e);else if(a<256&&wde[a])n.result+=Sde[a],n.position++;else if((s=B$e(a))>0){for(r=s,o=0;r>0;r--)a=n.input.charCodeAt(++n.position),(s=O$e(a))>=0?o=(o<<4)+s:Yn(n,"expected hexadecimal character");n.result+=Y$e(o),n.position++}else Yn(n,"unknown escape sequence");t=i=n.position}else bg(a)?(tb(n,t,i,!0),aB(n,Ps(n,!1,e)),t=i=n.position):n.position===n.lineStart&&HZ(n)?Yn(n,"unexpected end of the document within a double quoted scalar"):(n.position++,i=n.position)}Yn(n,"unexpected end of the stream within a double quoted scalar")}function j$e(n,e){var t=!0,i,r,o,s=n.tag,a,l=n.anchor,u,c,d,h,g,m=Object.create(null),f,b,C,v;if(v=n.input.charCodeAt(n.position),v===91)c=93,g=!1,a=[];else if(v===123)c=125,g=!0,a={};else return!1;for(n.anchor!==null&&(n.anchorMap[n.anchor]=a),v=n.input.charCodeAt(++n.position);v!==0;){if(Ps(n,!0,e),v=n.input.charCodeAt(n.position),v===c)return n.position++,n.tag=s,n.anchor=l,n.kind=g?"mapping":"sequence",n.result=a,!0;t?v===44&&Yn(n,"expected the node content, but found ','"):Yn(n,"missed comma between flow collection entries"),b=f=C=null,d=h=!1,v===63&&(u=n.input.charCodeAt(n.position+1),Lu(u)&&(d=h=!0,n.position++,Ps(n,!0,e))),i=n.line,r=n.lineStart,o=n.position,fI(n,e,BZ,!1,!0),b=n.tag,f=n.result,Ps(n,!0,e),v=n.input.charCodeAt(n.position),(h||n.line===i)&&v===58&&(d=!0,v=n.input.charCodeAt(++n.position),Ps(n,!0,e),fI(n,e,BZ,!1,!0),C=n.result),g?mI(n,a,m,b,f,C,i,r,o):d?a.push(mI(n,null,m,b,f,C,i,r,o)):a.push(f),Ps(n,!0,e),v=n.input.charCodeAt(n.position),v===44?(t=!0,v=n.input.charCodeAt(++n.position)):t=!1}Yn(n,"unexpected end of the stream within a flow collection")}function Q$e(n,e){var t,i,r=oB,o=!1,s=!1,a=e,l=0,u=!1,c,d;if(d=n.input.charCodeAt(n.position),d===124)i=!1;else if(d===62)i=!0;else return!1;for(n.kind="scalar",n.result="";d!==0;)if(d=n.input.charCodeAt(++n.position),d===43||d===45)oB===r?r=d===43?bde:G$e:Yn(n,"repeat of a chomping mode identifier");else if((c=z$e(d))>=0)c===0?Yn(n,"bad explicit indentation width of a block scalar; it cannot be less than one"):s?Yn(n,"repeat of an indentation width identifier"):(a=e+c-1,s=!0);else break;if(sC(d)){do d=n.input.charCodeAt(++n.position);while(sC(d));if(d===35)do d=n.input.charCodeAt(++n.position);while(!bg(d)&&d!==0)}for(;d!==0;){for(sB(n),n.lineIndent=0,d=n.input.charCodeAt(n.position);(!s||n.lineIndenta&&(a=n.lineIndent),bg(d)){l++;continue}if(n.lineIndente)&&l!==0)Yn(n,"bad indentation of a sequence entry");else if(n.lineIndente)&&(b&&(s=n.line,a=n.lineStart,l=n.position),fI(n,e,zZ,!0,r)&&(b?m=n.result:f=n.result),b||(mI(n,d,h,g,m,f,s,a,l),g=m=f=null),Ps(n,!0,-1),v=n.input.charCodeAt(n.position)),(n.line===o||n.lineIndent>e)&&v!==0)Yn(n,"bad indentation of a mapping entry");else if(n.lineIndente?l=1:n.lineIndent===e?l=0:n.lineIndente?l=1:n.lineIndent===e?l=0:n.lineIndent tag; it should be "scalar", not "'+n.kind+'"'),d=0,h=n.implicitTypes.length;d"),n.result!==null&&m.kind!==n.kind&&Yn(n,"unacceptable node kind for !<"+n.tag+'> tag; it should be "'+m.kind+'", not "'+n.kind+'"'),m.resolve(n.result,n.tag)?(n.result=m.construct(n.result,n.tag),n.anchor!==null&&(n.anchorMap[n.anchor]=n.result)):Yn(n,"cannot resolve a node with !<"+n.tag+"> explicit tag")}return n.listener!==null&&n.listener("close",n),n.tag!==null||n.anchor!==null||c}function nqe(n){var e=n.position,t,i,r,o=!1,s;for(n.version=null,n.checkLineBreaks=n.legacy,n.tagMap=Object.create(null),n.anchorMap=Object.create(null);(s=n.input.charCodeAt(n.position))!==0&&(Ps(n,!0,-1),s=n.input.charCodeAt(n.position),!(n.lineIndent>0||s!==37));){for(o=!0,s=n.input.charCodeAt(++n.position),t=n.position;s!==0&&!Lu(s);)s=n.input.charCodeAt(++n.position);for(i=n.input.slice(t,n.position),r=[],i.length<1&&Yn(n,"directive name must not be less than one character in length");s!==0;){for(;sC(s);)s=n.input.charCodeAt(++n.position);if(s===35){do s=n.input.charCodeAt(++n.position);while(s!==0&&!bg(s));break}if(bg(s))break;for(t=n.position;s!==0&&!Lu(s);)s=n.input.charCodeAt(++n.position);r.push(n.input.slice(t,n.position))}s!==0&&sB(n),eb.call(Lde,i)?Lde[i](n,i,r):YZ(n,'unknown document directive "'+i+'"')}if(Ps(n,!0,-1),n.lineIndent===0&&n.input.charCodeAt(n.position)===45&&n.input.charCodeAt(n.position+1)===45&&n.input.charCodeAt(n.position+2)===45?(n.position+=3,Ps(n,!0,-1)):o&&Yn(n,"directives end mark is expected"),fI(n,n.lineIndent-1,zZ,!1,!0),Ps(n,!0,-1),n.checkLineBreaks&&X$e.test(n.input.slice(e,n.position))&&YZ(n,"non-ASCII line breaks are interpreted as content"),n.documents.push(n.result),n.position===n.lineStart&&HZ(n)){n.input.charCodeAt(n.position)===46&&(n.position+=3,Ps(n,!0,-1));return}if(n.position"u"&&(t=e,e=null);var i=Dde(n,t);if(typeof e!="function")return i;for(var r=0,o=i.length;r"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function UZ(n,e,t){return Mde()?UZ=Reflect.construct:UZ=function(r,o,s){var a=[null];a.push.apply(a,o);var l=Function.bind.apply(r,a),u=new l;return s&&NL(u,s.prototype),u},UZ.apply(null,arguments)}function hqe(n){return Function.toString.call(n).indexOf("[native code]")!==-1}function uB(n){var e=typeof Map=="function"?new Map:void 0;return uB=function(i){if(i===null||!hqe(i))return i;if(typeof i!="function")throw new TypeError("Super expression must either be null or a function");if(typeof e<"u"){if(e.has(i))return e.get(i);e.set(i,r)}function r(){return UZ(i,arguments,Pa(this).constructor)}return r.prototype=Object.create(i.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),NL(r,i)},uB(n)}function sd(n){if(n===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return n}function Zde(n,e){return e&&(typeof e=="object"||typeof e=="function")?e:sd(n)}function lo(n){var e=Mde();return function(){var i=Pa(n),r;if(e){var o=Pa(this).constructor;r=Reflect.construct(i,arguments,o)}else r=i.apply(this,arguments);return Zde(this,r)}}function gqe(n,e){for(;!Object.prototype.hasOwnProperty.call(n,e)&&(n=Pa(n),n!==null););return n}function Fu(n,e,t){return typeof Reflect<"u"&&Reflect.get?Fu=Reflect.get:Fu=function(r,o,s){var a=gqe(r,o);if(a){var l=Object.getOwnPropertyDescriptor(a,o);return l.get?l.get.call(s):l.value}},Fu(n,e,t||n)}function kL(n,e){return Tde(n)||fqe(n,e)||cB(n,e)||Wde()}function ML(n){return Tde(n)||mqe(n)||cB(n)||Wde()}function Tde(n){if(Array.isArray(n))return n}function mqe(n){if(typeof Symbol<"u"&&Symbol.iterator in Object(n))return Array.from(n)}function fqe(n,e){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(n)))){var t=[],i=!0,r=!1,o=void 0;try{for(var s=n[Symbol.iterator](),a;!(i=(a=s.next()).done)&&(t.push(a.value),!(e&&t.length===e));i=!0);}catch(l){r=!0,o=l}finally{try{!i&&s.return!=null&&s.return()}finally{if(r)throw o}}return t}}function cB(n,e){if(n){if(typeof n=="string")return Ede(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);if(t==="Object"&&n.constructor&&(t=n.constructor.name),t==="Map"||t==="Set")return Array.from(n);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Ede(n,e)}}function Ede(n,e){(e==null||e>n.length)&&(e=n.length);for(var t=0,i=new Array(e);t"u"||n[Symbol.iterator]==null){if(Array.isArray(n)||(t=cB(n))||e&&n&&typeof n.length=="number"){t&&(n=t);var i=0,r=function(){};return{s:r,n:function(){return i>=n.length?{done:!0}:{done:!1,value:n[i++]}},e:function(l){throw l},f:r}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){t=n[Symbol.iterator]()},n:function(){var l=t.next();return o=l.done,l},e:function(l){s=!0,a=l},f:function(){try{!o&&t.return!=null&&t.return()}finally{if(s)throw a}}}}var Os={ANCHOR:"&",COMMENT:"#",TAG:"!",DIRECTIVES_END:"-",DOCUMENT_END:"."},Ft={ALIAS:"ALIAS",BLANK_LINE:"BLANK_LINE",BLOCK_FOLDED:"BLOCK_FOLDED",BLOCK_LITERAL:"BLOCK_LITERAL",COMMENT:"COMMENT",DIRECTIVE:"DIRECTIVE",DOCUMENT:"DOCUMENT",FLOW_MAP:"FLOW_MAP",FLOW_SEQ:"FLOW_SEQ",MAP:"MAP",MAP_KEY:"MAP_KEY",MAP_VALUE:"MAP_VALUE",PLAIN:"PLAIN",QUOTE_DOUBLE:"QUOTE_DOUBLE",QUOTE_SINGLE:"QUOTE_SINGLE",SEQ:"SEQ",SEQ_ITEM:"SEQ_ITEM"},JZ="tag:yaml.org,2002:",nb={MAP:"tag:yaml.org,2002:map",SEQ:"tag:yaml.org,2002:seq",STR:"tag:yaml.org,2002:str"};function Rde(n){for(var e=[0],t=n.indexOf(` +`);t!==-1;)t+=1,e.push(t),t=n.indexOf(` +`,t);return e}function Gde(n){var e,t;return typeof n=="string"?(e=Rde(n),t=n):(Array.isArray(n)&&(n=n[0]),n&&n.context&&(n.lineStarts||(n.lineStarts=Rde(n.context.src)),e=n.lineStarts,t=n.context.src)),{lineStarts:e,src:t}}function dB(n,e){if(typeof n!="number"||n<0)return null;var t=Gde(e),i=t.lineStarts,r=t.src;if(!i||!r||n>r.length)return null;for(var o=0;o=1)||n>i.length)return null;for(var o=i[n-1],s=i[n];s&&s>o&&r[s-1]===` +`;)--s;return r.slice(o,s)}function bqe(n,e){var t=n.start,i=n.end,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:80,o=pqe(t.line,e);if(!o)return null;var s=t.col;if(o.length>r)if(s<=r-10)o=o.substr(0,r-1)+"…";else{var a=Math.round(r/2);o.length>s+a&&(o=o.substr(0,s+a-1)+"…"),s-=o.length-r,o="…"+o.substr(1-r)}var l=1,u="";i&&(i.line===t.line&&s+(i.col-t.col)<=r+1?l=i.col-t.col:(l=Math.min(o.length+1,r)-s,u="…"));var c=s>1?" ".repeat(s-1):"",d="^".repeat(l);return"".concat(o,` +`).concat(c).concat(d).concat(u)}var zo=function(){function n(e,t){cr(this,n),this.start=e,this.end=t||e}return jr(n,[{key:"isEmpty",value:function(){return typeof this.start!="number"||!this.end||this.end<=this.start}},{key:"setOrigRange",value:function(t,i){var r=this.start,o=this.end;if(t.length===0||o<=t[0])return this.origStart=r,this.origEnd=o,i;for(var s=i;sr);)++s;this.origStart=r+s;for(var a=s;s=o);)++s;return this.origEnd=o+s,a}}],[{key:"copy",value:function(t){return new n(t.start,t.end)}}]),n}(),un=function(){function n(e,t,i){cr(this,n),Object.defineProperty(this,"context",{value:i||null,writable:!0}),this.error=null,this.range=null,this.valueRange=null,this.props=t||[],this.type=e,this.value=null}return jr(n,[{key:"getPropValue",value:function(t,i,r){if(!this.context)return null;var o=this.context.src,s=this.props[t];return s&&o[s.start]===i?o.slice(s.start+(r?1:0),s.end):null}},{key:"anchor",get:function(){for(var t=0;t0?t.join(` +`):null}},{key:"commentHasRequiredWhitespace",value:function(t){var i=this.context.src;if(this.header&&t===this.header.end||!this.valueRange)return!1;var r=this.valueRange.end;return t!==r||n.atBlank(i,r-1)}},{key:"hasComment",get:function(){if(this.context){for(var t=this.context.src,i=0;i=t.length||t[o]===` +`?r+` +`:r}},{key:"atDocumentBoundary",value:function(t,i,r){var o=t[i];if(!o)return!0;var s=t[i-1];if(s&&s!==` +`)return!1;if(r){if(o!==r)return!1}else if(o!==Os.DIRECTIVES_END&&o!==Os.DOCUMENT_END)return!1;var a=t[i+1],l=t[i+2];if(a!==o||l!==o)return!1;var u=t[i+3];return!u||u===` +`||u===" "||u===" "}},{key:"endOfIdentifier",value:function(t,i){for(var r=t[i],o=r==="<",s=o?[` +`," "," ",">"]:[` +`," "," ","[","]","{","}",","];r&&s.indexOf(r)===-1;)r=t[i+=1];return o&&r===">"&&(i+=1),i}},{key:"endOfIndent",value:function(t,i){for(var r=t[i];r===" ";)r=t[i+=1];return i}},{key:"endOfLine",value:function(t,i){for(var r=t[i];r&&r!==` +`;)r=t[i+=1];return i}},{key:"endOfWhiteSpace",value:function(t,i){for(var r=t[i];r===" "||r===" ";)r=t[i+=1];return i}},{key:"startOfLine",value:function(t,i){var r=t[i-1];if(r===` +`)return i;for(;r&&r!==` +`;)r=t[i-=1];return i+1}},{key:"endOfBlockIndent",value:function(t,i,r){var o=n.endOfIndent(t,r);if(o>r+i)return o;var s=n.endOfWhiteSpace(t,o),a=t[s];return!a||a===` +`?s:null}},{key:"atBlank",value:function(t,i,r){var o=t[i];return o===` +`||o===" "||o===" "||r&&!o}},{key:"nextNodeIsIndented",value:function(t,i,r){return!t||i<0?!1:i>0?!0:r&&t==="-"}},{key:"normalizeOffset",value:function(t,i){var r=t[i];return r?r!==` +`&&t[i-1]===` +`?i-1:n.endOfWhiteSpace(t,i):i}},{key:"foldNewline",value:function(t,i,r){for(var o=0,s=!1,a="",l=t[i+1];l===" "||l===" "||l===` +`;){switch(l){case` +`:o=0,i+=1,a+=` +`;break;case" ":o<=r&&(s=!0),i=n.endOfWhiteSpace(t,i+2)-1;break;case" ":o+=1,i+=1;break}l=t[i+1]}return a||(a=" "),l&&o<=r&&(s=!0),{fold:a,offset:i,error:s}}}]),n}(),bI=function(n){ao(t,n);var e=lo(t);function t(i,r,o){var s;if(cr(this,t),!o||!(r instanceof un))throw new Error("Invalid arguments for new ".concat(i));return s=e.call(this),s.name=i,s.message=o,s.source=r,s}return jr(t,[{key:"makePretty",value:function(){if(this.source){this.nodeType=this.source.type;var r=this.source.context&&this.source.context.root;if(typeof this.offset=="number"){this.range=new zo(this.offset,this.offset+1);var o=r&&dB(this.offset,r);if(o){var s={line:o.line,col:o.col+1};this.linePos={start:o,end:s}}delete this.offset}else this.range=this.source.range,this.linePos=this.source.rangeAsLinePos;if(this.linePos){var a=this.linePos.start,l=a.line,u=a.col;this.message+=" at line ".concat(l,", column ").concat(u);var c=r&&bqe(this.linePos,r);c&&(this.message+=`: + +`.concat(c,` +`))}delete this.source}}}]),t}(uB(Error)),ZL=function(n){ao(t,n);var e=lo(t);function t(i,r){return cr(this,t),e.call(this,"YAMLReferenceError",i,r)}return t}(bI),Fi=function(n){ao(t,n);var e=lo(t);function t(i,r){return cr(this,t),e.call(this,"YAMLSemanticError",i,r)}return t}(bI),wl=function(n){ao(t,n);var e=lo(t);function t(i,r){return cr(this,t),e.call(this,"YAMLSyntaxError",i,r)}return t}(bI),CI=function(n){ao(t,n);var e=lo(t);function t(i,r){return cr(this,t),e.call(this,"YAMLWarning",i,r)}return t}(bI),Vde=function(n){ao(t,n);var e=lo(t);function t(){return cr(this,t),e.apply(this,arguments)}return jr(t,[{key:"strValue",get:function(){if(!this.valueRange||!this.context)return null;for(var r=this.valueRange,o=r.start,s=r.end,a=this.context.src,l=a[s-1];of?a.slice(f,c+1):d)}else u+=d}var C=a[o];switch(C){case" ":{var v="Plain value cannot start with a tab character",w=[new Fi(this,v)];return{errors:w,str:u}}case"@":case"`":{var S="Plain value cannot start with reserved character ".concat(C),F=[new Fi(this,S)];return{errors:F,str:u}}default:return u}}},{key:"parseBlockValue",value:function(r){for(var o=this.context,s=o.indent,a=o.inFlow,l=o.src,u=r,c=r,d=l[u];d===` +`&&!un.atDocumentBoundary(l,u+1);d=l[u]){var h=un.endOfBlockIndent(l,s,u+1);if(h===null||l[h]==="#")break;l[h]===` +`?u=h:(c=t.endOfLine(l,h,a),u=c)}return this.valueRange.isEmpty()&&(this.valueRange.start=r),this.valueRange.end=c,c}},{key:"parse",value:function(r,o){this.context=r;var s=r.inFlow,a=r.src,l=o,u=a[l];return u&&u!=="#"&&u!==` +`&&(l=t.endOfLine(a,o,s)),this.valueRange=new zo(o,l),l=un.endOfWhiteSpace(a,l),l=this.parseComment(l),(!this.hasComment||this.valueRange.isEmpty())&&(l=this.parseBlockValue(l)),l}}],[{key:"endOfLine",value:function(r,o,s){for(var a=r[o],l=o;a&&a!==` +`&&!(s&&(a==="["||a==="]"||a==="{"||a==="}"||a===","));){var u=r[l+1];if(a===":"&&(!u||u===` +`||u===" "||u===" "||s&&u===",")||(a===" "||a===" ")&&u==="#")break;l+=1,a=u}return l}}]),t}(un),TL=function(n){ao(t,n);var e=lo(t);function t(){return cr(this,t),e.call(this,Ft.BLANK_LINE)}return jr(t,[{key:"includesTrailingLines",get:function(){return!0}},{key:"parse",value:function(r,o){return this.context=r,this.range=new zo(o,o+1),o+1}}]),t}(un),hB=function(n){ao(t,n);var e=lo(t);function t(i,r){var o;return cr(this,t),o=e.call(this,i,r),o.node=null,o}return jr(t,[{key:"includesTrailingLines",get:function(){return!!this.node&&this.node.includesTrailingLines}},{key:"parse",value:function(r,o){this.context=r;var s=r.parseNode,a=r.src,l=r.atLineStart,u=r.lineStart;!l&&this.type===Ft.SEQ_ITEM&&(this.error=new Fi(this,"Sequence items must not have preceding content on the same line"));for(var c=l?o-u:r.indent,d=un.endOfWhiteSpace(a,o+1),h=a[d],g=h==="#",m=[],f=null;h===` +`||h==="#";){if(h==="#"){var b=un.endOfLine(a,d+1);m.push(new zo(d,b)),d=b}else{l=!0,u=d+1;var C=un.endOfWhiteSpace(a,u);a[C]===` +`&&m.length===0&&(f=new TL,u=f.parse({src:a},u)),d=un.endOfIndent(a,u)}h=a[d]}if(un.nextNodeIsIndented(h,d-(u+c),this.type!==Ft.SEQ_ITEM)?this.node=s({atLineStart:l,inCollection:!1,indent:c,lineStart:u,parent:this},d):h&&u>o+1&&(d=u-1),this.node){if(f){var v=r.parent.items||r.parent.contents;v&&v.push(f)}m.length&&Array.prototype.push.apply(this.props,m),d=this.node.range.end}else if(g){var w=m[0];this.props.push(w),d=w.end}else d=un.endOfLine(a,o+1);var S=this.node?this.node.valueRange.end:d;return this.valueRange=new zo(o,S),d}},{key:"setOrigRanges",value:function(r,o){return o=Fu(Pa(t.prototype),"setOrigRanges",this).call(this,r,o),this.node?this.node.setOrigRanges(r,o):o}},{key:"toString",value:function(){var r=this.context.src,o=this.node,s=this.range,a=this.value;if(a!=null)return a;var l=o?r.slice(s.start,o.range.start)+String(o):r.slice(s.start,s.end);return un.addStringTerminator(r,s.end,l)}}]),t}(un),EL=function(n){ao(t,n);var e=lo(t);function t(){return cr(this,t),e.call(this,Ft.COMMENT)}return jr(t,[{key:"parse",value:function(r,o){this.context=r;var s=this.parseComment(o);return this.range=new zo(o,s),s}}]),t}(un);function gB(n){for(var e=n;e instanceof hB;)e=e.node;if(!(e instanceof Xde))return null;for(var t=e.items.length,i=-1,r=t-1;r>=0;--r){var o=e.items[r];if(o.type===Ft.COMMENT){var s=o.context,a=s.indent,l=s.lineStart;if(a>0&&o.range.start>=l+a)break;i=r}else if(o.type===Ft.BLANK_LINE)i=r;else break}if(i===-1)return null;for(var u=e.items.splice(i,t-i),c=u[0].range.start;e.range.end=c,e.valueRange&&e.valueRange.end>c&&(e.valueRange.end=c),e!==n;)e=e.context.parent;return u}var Xde=function(n){ao(t,n);var e=lo(t);function t(i){var r;cr(this,t),r=e.call(this,i.type===Ft.SEQ_ITEM?Ft.SEQ:Ft.MAP);for(var o=i.props.length-1;o>=0;--o)if(i.props[o].start0}},{key:"parse",value:function(r,o){this.context=r;var s=r.parseNode,a=r.src,l=un.startOfLine(a,o),u=this.items[0];u.context.parent=this,this.valueRange=zo.copy(u.valueRange);var c=u.range.start-u.context.lineStart,d=o;d=un.normalizeOffset(a,d);for(var h=a[d],g=un.endOfWhiteSpace(a,l)===d,m=!1;h;){for(;h===` +`||h==="#";){if(g&&h===` +`&&!m){var f=new TL;if(d=f.parse({src:a},d),this.valueRange.end=d,d>=a.length){h=null;break}this.items.push(f),d-=1}else if(h==="#"){if(d=a.length){h=null;break}}if(l=d+1,d=un.endOfIndent(a,l),un.atBlank(a,d)){var C=un.endOfWhiteSpace(a,d),v=a[C];(!v||v===` +`||v==="#")&&(d=C)}h=a[d],g=!0}if(!h)break;if(d!==l+c&&(g||h!==":")){if(do&&(d=l);break}else if(!this.error){var w="All collection items must start at the same column";this.error=new wl(this,w)}}if(u.type===Ft.SEQ_ITEM){if(h!=="-"){l>o&&(d=l);break}}else if(h==="-"&&!this.error){var S=a[d+1];if(!S||S===` +`||S===" "||S===" "){var F="A collection cannot be both a mapping and a sequence";this.error=new wl(this,F)}}var L=s({atLineStart:g,inCollection:!0,indent:c,lineStart:l,parent:this},d);if(!L)return d;if(this.items.push(L),this.valueRange.end=L.valueRange.end,d=un.normalizeOffset(a,L.range.end),h=a[d],g=!1,m=L.includesTrailingLines,h){for(var D=d-1,A=a[D];A===" "||A===" ";)A=a[--D];A===` +`&&(l=D+1,g=!0)}var M=gB(L);M&&Array.prototype.push.apply(this.items,M)}return d}},{key:"setOrigRanges",value:function(r,o){return o=Fu(Pa(t.prototype),"setOrigRanges",this).call(this,r,o),this.items.forEach(function(s){o=s.setOrigRanges(r,o)}),o}},{key:"toString",value:function(){var r=this.context.src,o=this.items,s=this.range,a=this.value;if(a!=null)return a;for(var l=r.slice(s.start,o[0].range.start)+String(o[0]),u=1;u=a+s?!0:l!=="#"&&l!==` +`?!1:t.nextContentHasIndent(r,o,s):!1}}]),t}(un),Cqe=function(n){ao(t,n);var e=lo(t);function t(){var i;return cr(this,t),i=e.call(this,Ft.DIRECTIVE),i.name=null,i}return jr(t,[{key:"parameters",get:function(){var r=this.rawValue;return r?r.trim().split(/[ \t]+/):[]}},{key:"parseName",value:function(r){for(var o=this.context.src,s=r,a=o[s];a&&a!==` +`&&a!==" "&&a!==" ";)a=o[s+=1];return this.name=o.slice(r,s),s}},{key:"parseParameters",value:function(r){for(var o=this.context.src,s=r,a=o[s];a&&a!==` +`&&a!=="#";)a=o[s+=1];return this.valueRange=new zo(r,s),s}},{key:"parse",value:function(r,o){this.context=r;var s=this.parseName(o+1);return s=this.parseParameters(s),s=this.parseComment(s),this.range=new zo(o,s),s}}]),t}(un),vqe=function(n){ao(t,n);var e=lo(t);function t(){var i;return cr(this,t),i=e.call(this,Ft.DOCUMENT),i.directives=null,i.contents=null,i.directivesEndMarker=null,i.documentEndMarker=null,i}return jr(t,[{key:"parseDirectives",value:function(r){var o=this.context.src;this.directives=[];for(var s=!0,a=!1,l=r;!un.atDocumentBoundary(o,l,Os.DIRECTIVES_END);)switch(l=t.startCommentOrEndBlankLine(o,l),o[l]){case` +`:if(s){var u=new TL;l=u.parse({src:o},l),l0&&(this.contents=this.directives,this.directives=[]),l}return o[l]?(this.directivesEndMarker=new zo(l,l+3),l+3):(a?this.error=new Fi(this,"Missing directives-end indicator line"):this.directives.length>0&&(this.contents=this.directives,this.directives=[]),l)}},{key:"parseContents",value:function(r){var o=this.context,s=o.parseNode,a=o.src;this.contents||(this.contents=[]);for(var l=r;a[l-1]==="-";)l-=1;var u=un.endOfWhiteSpace(a,r),c=l===r;for(this.valueRange=new zo(u);!un.atDocumentBoundary(a,u,Os.DOCUMENT_END);){switch(a[u]){case` +`:if(c){var d=new TL;u=d.parse({src:a},u),u0&&((o.length>0||r[0].type===Ft.COMMENT)&&(a+=`--- +`),a+=r.join("")),a[a.length-1]!==` +`&&(a+=` +`),a}}],[{key:"startCommentOrEndBlankLine",value:function(r,o){var s=un.endOfWhiteSpace(r,o),a=r[s];return a==="#"||a===` +`?s:o}}]),t}(un),yqe=function(n){ao(t,n);var e=lo(t);function t(){return cr(this,t),e.apply(this,arguments)}return jr(t,[{key:"parse",value:function(r,o){this.context=r;var s=r.src,a=un.endOfIdentifier(s,o+1);return this.valueRange=new zo(o+1,a),a=un.endOfWhiteSpace(s,a),a=this.parseComment(a),a}}]),t}(un),ib={CLIP:"CLIP",KEEP:"KEEP",STRIP:"STRIP"},Iqe=function(n){ao(t,n);var e=lo(t);function t(i,r){var o;return cr(this,t),o=e.call(this,i,r),o.blockIndent=null,o.chomping=ib.CLIP,o.header=null,o}return jr(t,[{key:"includesTrailingLines",get:function(){return this.chomping===ib.KEEP}},{key:"strValue",get:function(){if(!this.valueRange||!this.context)return null;var r=this.valueRange,o=r.start,s=r.end,a=this.context,l=a.indent,u=a.src;if(this.valueRange.isEmpty())return"";for(var c=null,d=u[s-1];d===` +`||d===" "||d===" ";){if(s-=1,s<=o){if(this.chomping===ib.KEEP)break;return""}d===` +`&&(c=s),d=u[s-1]}var h=s+1;c&&(this.chomping===ib.KEEP?(h=c,s=this.valueRange.end):s=c);for(var g=l+this.blockIndent,m=this.type===Ft.BLOCK_FOLDED,f=!0,b="",C="",v=!1,w=o;wd&&(d=f);a[g]===` +`?u=g:u=c=un.endOfLine(a,g)}return this.chomping!==ib.KEEP&&(u=a[c]?c+1:c),this.valueRange=new zo(r+1,u),u}},{key:"parse",value:function(r,o){this.context=r;var s=r.src,a=this.parseBlockHeader(o);return a=un.endOfWhiteSpace(s,a),a=this.parseComment(a),a=this.parseBlockValue(a),a}},{key:"setOrigRanges",value:function(r,o){return o=Fu(Pa(t.prototype),"setOrigRanges",this).call(this,r,o),this.header?this.header.setOrigRange(r,o):o}}]),t}(un),wqe=function(n){ao(t,n);var e=lo(t);function t(i,r){var o;return cr(this,t),o=e.call(this,i,r),o.items=null,o}return jr(t,[{key:"prevNodeIsJsonLike",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.items.length,o=this.items[r-1];return!!o&&(o.jsonLike||o.type===Ft.COMMENT&&this.prevNodeIsJsonLike(r-1))}},{key:"parse",value:function(r,o){this.context=r;var s=r.parseNode,a=r.src,l=r.indent,u=r.lineStart,c=a[o];this.items=[{char:c,offset:o}];var d=un.endOfWhiteSpace(a,o+1);for(c=a[d];c&&c!=="]"&&c!=="}";){switch(c){case` +`:{u=d+1;var h=un.endOfWhiteSpace(a,u);if(a[h]===` +`){var g=new TL;u=g.parse({src:a},u),this.items.push(g)}if(d=un.endOfIndent(a,u),d<=u+l&&(c=a[d],ds.offset);)++a;s.origOffset=s.offset+a,o=a}}),o}},{key:"toString",value:function(){var r=this.context.src,o=this.items,s=this.range,a=this.value;if(a!=null)return a;var l=o.filter(function(d){return d instanceof un}),u="",c=s.start;return l.forEach(function(d){var h=r.slice(c,d.range.start);c=d.range.end,u+=h+String(d),u[u.length-1]===` +`&&r[c-1]!==` +`&&r[c]===` +`&&(c+=1)}),u+=r.slice(c,s.end),un.addStringTerminator(r,s.end,u)}}]),t}(un),Sqe=function(n){ao(t,n);var e=lo(t);function t(){return cr(this,t),e.apply(this,arguments)}return jr(t,[{key:"strValue",get:function(){if(!this.valueRange||!this.context)return null;var r=[],o=this.valueRange,s=o.start,a=o.end,l=this.context,u=l.indent,c=l.src;c[a-1]!=='"'&&r.push(new wl(this,'Missing closing "quote'));for(var d="",h=s+1;hv?c.slice(v,h+1):g)}else d+=g}return r.length>0?{errors:r,str:d}:d}},{key:"parseCharCode",value:function(r,o,s){var a=this.context.src,l=a.substr(r,o),u=l.length===o&&/^[0-9a-fA-F]+$/.test(l),c=u?parseInt(l,16):NaN;return isNaN(c)?(s.push(new wl(this,"Invalid escape sequence ".concat(a.substr(r-2,o+2)))),a.substr(r-2,o+2)):String.fromCodePoint(c)}},{key:"parse",value:function(r,o){this.context=r;var s=r.src,a=t.endOfQuote(s,o+1);return this.valueRange=new zo(o,a),a=un.endOfWhiteSpace(s,a),a=this.parseComment(a),a}}],[{key:"endOfQuote",value:function(r,o){for(var s=r[o];s&&s!=='"';)o+=s==="\\"?2:1,s=r[o];return o+1}}]),t}(un),xqe=function(n){ao(t,n);var e=lo(t);function t(){return cr(this,t),e.apply(this,arguments)}return jr(t,[{key:"strValue",get:function(){if(!this.valueRange||!this.context)return null;var r=[],o=this.valueRange,s=o.start,a=o.end,l=this.context,u=l.indent,c=l.src;c[a-1]!=="'"&&r.push(new wl(this,"Missing closing 'quote"));for(var d="",h=s+1;hv?c.slice(v,h+1):g)}else d+=g}return r.length>0?{errors:r,str:d}:d}},{key:"parse",value:function(r,o){this.context=r;var s=r.src,a=t.endOfQuote(s,o+1);return this.valueRange=new zo(o,a),a=un.endOfWhiteSpace(s,a),a=this.parseComment(a),a}}],[{key:"endOfQuote",value:function(r,o){for(var s=r[o];s;)if(s==="'"){if(r[o+1]!=="'")break;s=r[o+=2]}else s=r[o+=1];return o+1}}]),t}(un);function Lqe(n,e){switch(n){case Ft.ALIAS:return new yqe(n,e);case Ft.BLOCK_FOLDED:case Ft.BLOCK_LITERAL:return new Iqe(n,e);case Ft.FLOW_MAP:case Ft.FLOW_SEQ:return new wqe(n,e);case Ft.MAP_KEY:case Ft.MAP_VALUE:case Ft.SEQ_ITEM:return new hB(n,e);case Ft.COMMENT:case Ft.PLAIN:return new Vde(n,e);case Ft.QUOTE_DOUBLE:return new Sqe(n,e);case Ft.QUOTE_SINGLE:return new xqe(n,e);default:return null}}var Fqe=function(){function n(){var e=this,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=i.atLineStart,o=i.inCollection,s=i.inFlow,a=i.indent,l=i.lineStart,u=i.parent;cr(this,n),Il(this,"parseNode",function(c,d){if(un.atDocumentBoundary(e.src,d))return null;var h=new n(e,c),g=h.parseProps(d),m=g.props,f=g.type,b=g.valueStart,C=Lqe(f,m),v=C.parse(h,b);if(C.range=new zo(d,v),v<=d&&(C.error=new Error("Node#parse consumed no characters"),C.error.parseEnd=v,C.error.source=C,C.range.end=d+1),h.nodeStartsCollection(C)){!C.error&&!h.atLineStart&&h.parent.type===Ft.DOCUMENT&&(C.error=new wl(C,"Block collection must not have preceding content here (e.g. directives-end indicator)"));var w=new Xde(C);return v=w.parse(new n(h),v),w.range=new zo(d,v),w}return C}),this.atLineStart=r??(t.atLineStart||!1),this.inCollection=o??(t.inCollection||!1),this.inFlow=s??(t.inFlow||!1),this.indent=a??t.indent,this.lineStart=l??t.lineStart,this.parent=u??(t.parent||{}),this.root=t.root,this.src=t.src}return jr(n,[{key:"nodeStartsCollection",value:function(t){var i=this.inCollection,r=this.inFlow,o=this.src;if(i||r)return!1;if(t instanceof hB)return!0;var s=t.range.end;return o[s]===` +`||o[s-1]===` +`?!1:(s=un.endOfWhiteSpace(o,s),o[s]===":")}},{key:"parseProps",value:function(t){var i=this.inFlow,r=this.parent,o=this.src,s=[],a=!1;t=this.atLineStart?un.endOfIndent(o,t):un.endOfWhiteSpace(o,t);for(var l=o[t];l===Os.ANCHOR||l===Os.COMMENT||l===Os.TAG||l===` +`;){if(l===` +`){var u=t,c=void 0;do c=u+1,u=un.endOfIndent(o,c);while(o[u]===` +`);var d=u-(c+this.indent),h=r.type===Ft.SEQ_ITEM&&r.context.atLineStart;if(o[u]!=="#"&&!un.nextNodeIsIndented(o[u],d,!h))break;this.atLineStart=!0,this.lineStart=c,a=!1,t=u}else if(l===Os.COMMENT){var g=un.endOfLine(o,t+1);s.push(new zo(t,g)),t=g}else{var m=un.endOfIdentifier(o,t+1);l===Os.TAG&&o[m]===","&&/^[a-zA-Z0-9-]+\.[a-zA-Z0-9-]+,\d\d\d\d(-\d\d){0,2}\/\S/.test(o.slice(t+1,m+13))&&(m=un.endOfIdentifier(o,m+5)),s.push(new zo(t,m)),a=!0,t=un.endOfWhiteSpace(o,m)}l=o[t]}a&&l===":"&&un.atBlank(o,t+1,!0)&&(t-=1);var f=n.parseType(o,t,i);return{props:s,type:f,valueStart:t}}}],[{key:"parseType",value:function(t,i,r){switch(t[i]){case"*":return Ft.ALIAS;case">":return Ft.BLOCK_FOLDED;case"|":return Ft.BLOCK_LITERAL;case"{":return Ft.FLOW_MAP;case"[":return Ft.FLOW_SEQ;case"?":return!r&&un.atBlank(t,i+1,!0)?Ft.MAP_KEY:Ft.PLAIN;case":":return!r&&un.atBlank(t,i+1,!0)?Ft.MAP_VALUE:Ft.PLAIN;case"-":return!r&&un.atBlank(t,i+1,!0)?Ft.SEQ_ITEM:Ft.PLAIN;case'"':return Ft.QUOTE_DOUBLE;case"'":return Ft.QUOTE_SINGLE;default:return Ft.PLAIN}}}]),n}();function mB(n){var e=[];n.indexOf("\r")!==-1&&(n=n.replace(/\r\n?/g,function(s,a){return s.length>1&&e.push(a),` +`}));var t=[],i=0;do{var r=new vqe,o=new Fqe({src:n});i=r.parse(o,i),t.push(r)}while(i=0;--r){var o=e[r];if(Number.isInteger(o)&&o>=0){var s=[];s[o]=i,i=s}else{var a={};Object.defineProperty(a,o,{value:i,writable:!0,enumerable:!0,configurable:!0}),i=a}}return n.createNode(i,!1)}var WL=function(e){return e==null||fc(e)==="object"&&e[Symbol.iterator]().next().done},Oa=function(n){ao(t,n);var e=lo(t);function t(i){var r;return cr(this,t),r=e.call(this),Il(sd(r),"items",[]),r.schema=i,r}return jr(t,[{key:"addIn",value:function(r,o){if(WL(r))this.add(o);else{var s=ML(r),a=s[0],l=s.slice(1),u=this.get(a,!0);if(u instanceof t)u.addIn(l,o);else if(u===void 0&&this.schema)this.set(a,Pde(this.schema,l,o));else throw new Error("Expected YAML collection at ".concat(a,". Remaining path: ").concat(l))}}},{key:"deleteIn",value:function(r){var o=ML(r),s=o[0],a=o.slice(1);if(a.length===0)return this.delete(s);var l=this.get(s,!0);if(l instanceof t)return l.deleteIn(a);throw new Error("Expected YAML collection at ".concat(s,". Remaining path: ").concat(a))}},{key:"getIn",value:function(r,o){var s=ML(r),a=s[0],l=s.slice(1),u=this.get(a,!0);return l.length===0?!o&&u instanceof Wr?u.value:u:u instanceof t?u.getIn(l,o):void 0}},{key:"hasAllNullValues",value:function(){return this.items.every(function(r){if(!r||r.type!=="PAIR")return!1;var o=r.value;return o==null||o instanceof Wr&&o.value==null&&!o.commentBefore&&!o.comment&&!o.tag})}},{key:"hasIn",value:function(r){var o=ML(r),s=o[0],a=o.slice(1);if(a.length===0)return this.has(s);var l=this.get(s,!0);return l instanceof t?l.hasIn(a):!1}},{key:"setIn",value:function(r,o){var s=ML(r),a=s[0],l=s.slice(1);if(l.length===0)this.set(a,o);else{var u=this.get(a,!0);if(u instanceof t)u.setIn(l,o);else if(u===void 0&&this.schema)this.set(a,Pde(this.schema,l,o));else throw new Error("Expected YAML collection at ".concat(a,". Remaining path: ").concat(l))}}},{key:"toJSON",value:function(){return null}},{key:"toString",value:function(r,o,s,a){var l=this,u=o.blockItem,c=o.flowChars,d=o.isMap,h=o.itemIndent,g=r,m=g.indent,f=g.indentStep,b=g.stringify,C=this.type===Ft.FLOW_MAP||this.type===Ft.FLOW_SEQ||r.inFlow;C&&(h+=f);var v=d&&this.hasAllNullValues();r=Object.assign({},r,{allNullValues:v,indent:h,inFlow:C,type:null});var w=!1,S=!1,F=this.items.reduce(function(P,B,Y){var k;B&&(!w&&B.spaceBefore&&P.push({type:"comment",str:""}),B.commentBefore&&B.commentBefore.match(/^.*$/gm).forEach(function(U){P.push({type:"comment",str:"#".concat(U)})}),B.comment&&(k=B.comment),C&&(!w&&B.spaceBefore||B.commentBefore||B.comment||B.key&&(B.key.commentBefore||B.key.comment)||B.value&&(B.value.commentBefore||B.value.comment))&&(S=!0)),w=!1;var X=b(B,r,function(){return k=null},function(){return w=!0});return C&&!S&&X.includes(` +`)&&(S=!0),C&&Yt.maxFlowStringSingleLineLength){L=D;var W=uo(M),Z;try{for(W.s();!(Z=W.n()).done;){var T=Z.value;L+=T?` +`.concat(f).concat(m).concat(T):` +`}}catch(P){W.e(P)}finally{W.f()}L+=` +`.concat(m).concat(A)}else L="".concat(D," ").concat(M.join(" ")," ").concat(A)}else{var E=F.map(u);L=E.shift();var V=uo(E),z;try{for(V.s();!(z=V.n()).done;){var O=z.value;L+=O?` +`.concat(m).concat(O):` +`}}catch(P){V.e(P)}finally{V.f()}}return this.comment?(L+=` +`+this.comment.replace(/^/gm,"".concat(m,"#")),s&&s()):w&&a&&a(),L}}]),t}(_u);Il(Oa,"maxFlowStringSingleLineLength",60);function KZ(n){var e=n instanceof Wr?n.value:n;return e&&typeof e=="string"&&(e=Number(e)),Number.isInteger(e)&&e>=0?e:null}var Cg=function(n){ao(t,n);var e=lo(t);function t(){return cr(this,t),e.apply(this,arguments)}return jr(t,[{key:"add",value:function(r){this.items.push(r)}},{key:"delete",value:function(r){var o=KZ(r);if(typeof o!="number")return!1;var s=this.items.splice(o,1);return s.length>0}},{key:"get",value:function(r,o){var s=KZ(r);if(typeof s=="number"){var a=this.items[s];return!o&&a instanceof Wr?a.value:a}}},{key:"has",value:function(r){var o=KZ(r);return typeof o=="number"&&o1&&arguments[1]!==void 0?arguments[1]:null;return cr(this,t),r=e.call(this),r.key=i,r.value=o,r.type=t.Type.PAIR,r}return jr(t,[{key:"commentBefore",get:function(){return this.key instanceof _u?this.key.commentBefore:void 0},set:function(r){if(this.key==null&&(this.key=new Wr(null)),this.key instanceof _u)this.key.commentBefore=r;else{var o="Pair.commentBefore is an alias for Pair.key.commentBefore. To set it, the key must be a Node.";throw new Error(o)}}},{key:"addToJSMap",value:function(r,o){var s=lh(this.key,"",r);if(o instanceof Map){var a=lh(this.value,s,r);o.set(s,a)}else if(o instanceof Set)o.add(s);else{var l=Dqe(this.key,s,r),u=lh(this.value,l,r);l in o?Object.defineProperty(o,l,{value:u,writable:!0,enumerable:!0,configurable:!0}):o[l]=u}return o}},{key:"toJSON",value:function(r,o){var s=o&&o.mapAsMap?new Map:{};return this.addToJSMap(o,s)}},{key:"toString",value:function(r,o,s){if(!r||!r.doc)return JSON.stringify(this);var a=r.doc.options,l=a.indent,u=a.indentSeq,c=a.simpleKeys,d=this.key,h=this.value,g=d instanceof _u&&d.comment;if(c){if(g)throw new Error("With simple keys, key nodes cannot have comments");if(d instanceof Oa){var m="With simple keys, collection cannot be used as a key value";throw new Error(m)}}var f=!c&&(!d||g||(d instanceof _u?d instanceof Oa||d.type===Ft.BLOCK_FOLDED||d.type===Ft.BLOCK_LITERAL:fc(d)==="object")),b=r,C=b.doc,v=b.indent,w=b.indentStep,S=b.stringify;r=Object.assign({},r,{implicitKey:!f,indent:v+w});var F=!1,L=S(d,r,function(){return g=null},function(){return F=!0});if(L=vI(L,r.indent,g),!f&&L.length>1024){if(c)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");f=!0}if(r.allNullValues&&!c)return this.comment?(L=vI(L,r.indent,this.comment),o&&o()):F&&!g&&s&&s(),r.inFlow&&!f?L:"? ".concat(L);L=f?"? ".concat(L,` +`).concat(v,":"):"".concat(L,":"),this.comment&&(L=vI(L,r.indent,this.comment),o&&o());var D="",A=null;if(h instanceof _u){if(h.spaceBefore&&(D=` +`),h.commentBefore){var M=h.commentBefore.replace(/^/gm,"".concat(r.indent,"#"));D+=` +`.concat(M)}A=h.comment}else h&&fc(h)==="object"&&(h=C.schema.createNode(h,!0));r.implicitKey=!1,!f&&!this.comment&&h instanceof Wr&&(r.indentAtStart=L.length+1),F=!1,!u&&l>=2&&!r.inFlow&&!f&&h instanceof Cg&&h.type!==Ft.FLOW_SEQ&&!h.tag&&!C.anchors.getName(h)&&(r.indent=r.indent.substr(2));var W=S(h,r,function(){return A=null},function(){return F=!0}),Z=" ";if(D||this.comment)Z="".concat(D,` +`).concat(r.indent);else if(!f&&h instanceof Oa){var T=W[0]==="["||W[0]==="{";(!T||W.includes(` +`))&&(Z=` +`.concat(r.indent))}else W[0]===` +`&&(Z="");return F&&!A&&s&&s(),vI(L+Z+W,r.indent,A)}}]),t}(_u);Il(tr,"Type",{PAIR:"PAIR",MERGE_PAIR:"MERGE_PAIR"});var Aqe=function n(e,t){if(e instanceof rf){var i=t.get(e.source);return i.count*i.aliasCount}else if(e instanceof Oa){var r=0,o=uo(e.items),s;try{for(o.s();!(s=o.n()).done;){var a=s.value,l=n(a,t);l>r&&(r=l)}}catch(d){o.e(d)}finally{o.f()}return r}else if(e instanceof tr){var u=n(e.key,t),c=n(e.value,t);return Math.max(u,c)}return 1},rf=function(n){ao(t,n);var e=lo(t);function t(i){var r;return cr(this,t),r=e.call(this),r.source=i,r.type=Ft.ALIAS,r}return jr(t,[{key:"tag",set:function(r){throw new Error("Alias nodes cannot have tags")}},{key:"toJSON",value:function(r,o){if(!o)return lh(this.source,r,o);var s=o.anchors,a=o.maxAliasCount,l=s.get(this.source);if(!l||l.res===void 0){var u="This should not happen: Alias anchor was not resolved?";throw this.cstNode?new ZL(this.cstNode,u):new ReferenceError(u)}if(a>=0&&(l.count+=1,l.aliasCount===0&&(l.aliasCount=Aqe(this.source,s)),l.count*l.aliasCount>a)){var c="Excessive alias count indicates a resource exhaustion attack";throw this.cstNode?new ZL(this.cstNode,c):new ReferenceError(c)}return l.res}},{key:"toString",value:function(r){return t.stringify(this,r)}}],[{key:"stringify",value:function(r,o){var s=r.range,a=r.source,l=o.anchors,u=o.doc,c=o.implicitKey,d=o.inStringifyKey,h=Object.keys(l).find(function(m){return l[m]===a});if(!h&&d&&(h=u.anchors.getName(a)||u.anchors.newName()),h)return"*".concat(h).concat(c?" ":"");var g=u.anchors.getName(a)?"Alias node must be after source node":"Source node not found for alias node";throw new Error("".concat(g," [").concat(s,"]"))}}]),t}(_u);Il(rf,"default",!0);function aC(n,e){var t=e instanceof Wr?e.value:e,i=uo(n),r;try{for(i.s();!(r=i.n()).done;){var o=r.value;if(o instanceof tr&&(o.key===e||o.key===t||o.key&&o.key.value===t))return o}}catch(s){i.e(s)}finally{i.f()}}var Du=function(n){ao(t,n);var e=lo(t);function t(){return cr(this,t),e.apply(this,arguments)}return jr(t,[{key:"add",value:function(r,o){r?r instanceof tr||(r=new tr(r.key||r,r.value)):r=new tr(r);var s=aC(this.items,r.key),a=this.schema&&this.schema.sortMapEntries;if(s)if(o)s.value=r.value;else throw new Error("Key ".concat(r.key," already set"));else if(a){var l=this.items.findIndex(function(u){return a(r,u)<0});l===-1?this.items.push(r):this.items.splice(l,0,r)}else this.items.push(r)}},{key:"delete",value:function(r){var o=aC(this.items,r);if(!o)return!1;var s=this.items.splice(this.items.indexOf(o),1);return s.length>0}},{key:"get",value:function(r,o){var s=aC(this.items,r),a=s&&s.value;return!o&&a instanceof Wr?a.value:a}},{key:"has",value:function(r){return!!aC(this.items,r)}},{key:"set",value:function(r,o){this.add(new tr(r,o),!0)}},{key:"toJSON",value:function(r,o,s){var a=s?new s:o&&o.mapAsMap?new Map:{};o&&o.onCreate&&o.onCreate(a);var l=uo(this.items),u;try{for(l.s();!(u=l.n()).done;){var c=u.value;c.addToJSMap(o,a)}}catch(d){l.e(d)}finally{l.f()}return a}},{key:"toString",value:function(r,o,s){if(!r)return JSON.stringify(this);var a=uo(this.items),l;try{for(a.s();!(l=a.n()).done;){var u=l.value;if(!(u instanceof tr))throw new Error("Map items must all be pairs; found ".concat(JSON.stringify(u)," instead"))}}catch(c){a.e(c)}finally{a.f()}return Fu(Pa(t.prototype),"toString",this).call(this,r,{blockItem:function(d){return d.str},flowChars:{start:"{",end:"}"},isMap:!0,itemIndent:r.indent||""},o,s)}}]),t}(Oa),Ode="<<",Bde=function(n){ao(t,n);var e=lo(t);function t(i){var r;if(cr(this,t),i instanceof tr){var o=i.value;o instanceof Cg||(o=new Cg,o.items.push(i.value),o.range=i.value.range),r=e.call(this,i.key,o),r.range=i.range}else r=e.call(this,new Wr(Ode),new Cg);return r.type=tr.Type.MERGE_PAIR,Zde(r)}return jr(t,[{key:"addToJSMap",value:function(r,o){var s=uo(this.value.items),a;try{for(s.s();!(a=s.n()).done;){var l=a.value.source;if(!(l instanceof Du))throw new Error("Merge sources must be maps");var u=l.toJSON(null,r,Map),c=uo(u),d;try{for(c.s();!(d=c.n()).done;){var h=kL(d.value,2),g=h[0],m=h[1];o instanceof Map?o.has(g)||o.set(g,m):o instanceof Set?o.add(g):Object.prototype.hasOwnProperty.call(o,g)||Object.defineProperty(o,g,{value:m,writable:!0,enumerable:!0,configurable:!0})}}catch(f){c.e(f)}finally{c.f()}}}catch(f){s.e(f)}finally{s.f()}return o}},{key:"toString",value:function(r,o){var s=this.value;if(s.items.length>1)return Fu(Pa(t.prototype),"toString",this).call(this,r,o);this.value=s.items[0];var a=Fu(Pa(t.prototype),"toString",this).call(this,r,o);return this.value=s,a}}]),t}(tr),RL={defaultType:Ft.BLOCK_LITERAL,lineWidth:76},of={trueStr:"true",falseStr:"false"},rb={asBigInt:!1},yI={nullStr:"null"},sf={defaultType:Ft.PLAIN,doubleQuoted:{jsonEncoding:!1,minMultiLineLength:40},fold:{lineWidth:80,minContentWidth:20}};function fB(n,e,t){var i=uo(e),r;try{for(i.s();!(r=i.n()).done;){var o=r.value,s=o.format,a=o.test,l=o.resolve;if(a){var u=n.match(a);if(u){var c=l.apply(null,u);return c instanceof Wr||(c=new Wr(c)),s&&(c.format=s),c}}}}catch(d){i.e(d)}finally{i.f()}return t&&(n=t(n)),new Wr(n)}var zde="flow",pB="block",jZ="quoted",Yde=function(e,t){for(var i=e[t+1];i===" "||i===" ";){do i=e[t+=1];while(i&&i!==` +`);i=e[t+1]}return t};function QZ(n,e,t,i){var r=i.indentAtStart,o=i.lineWidth,s=o===void 0?80:o,a=i.minContentWidth,l=a===void 0?20:a,u=i.onFold,c=i.onOverflow;if(!s||s<0)return n;var d=Math.max(1+l,1+s-e.length);if(n.length<=d)return n;var h=[],g={},m=s-e.length;typeof r=="number"&&(r>s-Math.max(2,l)?h.push(0):m=s-r);var f=void 0,b=void 0,C=!1,v=-1,w=-1,S=-1;t===pB&&(v=Yde(n,v),v!==-1&&(m=v+d));for(var F;F=n[v+=1];){if(t===jZ&&F==="\\"){switch(w=v,n[v+1]){case"x":v+=3;break;case"u":v+=5;break;case"U":v+=9;break;default:v+=1}S=v}if(F===` +`)t===pB&&(v=Yde(n,v)),m=v+d,f=void 0;else{if(F===" "&&b&&b!==" "&&b!==` +`&&b!==" "){var L=n[v+1];L&&L!==" "&&L!==` +`&&L!==" "&&(f=v)}if(v>=m)if(f)h.push(f),m=f+d,f=void 0;else if(t===jZ){for(;b===" "||b===" ";)b=F,F=n[v+=1],C=!0;var D=v>S+1?v-2:w-1;if(g[D])return n;h.push(D),g[D]=!0,m=D+d,f=void 0}else C=!0}b=F}if(C&&c&&c(),h.length===0)return n;u&&u();for(var A=n.slice(0,h[0]),M=0;Mi)return!0;if(s=o+1,r-s<=i)return!1}return!0}function lC(n,e){var t=e.implicitKey,i=sf.doubleQuoted,r=i.jsonEncoding,o=i.minMultiLineLength,s=JSON.stringify(n);if(r)return s;for(var a=e.indent||($Z(n)?" ":""),l="",u=0,c=0,d=s[c];d;d=s[++c])if(d===" "&&s[c+1]==="\\"&&s[c+2]==="n"&&(l+=s.slice(u,c)+"\\ ",c+=1,u=c,d="\\"),d==="\\")switch(s[c+1]){case"u":{l+=s.slice(u,c);var h=s.substr(c+2,4);switch(h){case"0000":l+="\\0";break;case"0007":l+="\\a";break;case"000b":l+="\\v";break;case"001b":l+="\\e";break;case"0085":l+="\\N";break;case"00a0":l+="\\_";break;case"2028":l+="\\L";break;case"2029":l+="\\P";break;default:h.substr(0,2)==="00"?l+="\\x"+h.substr(2):l+=s.substr(c,6)}c+=5,u=c+1}break;case"n":if(t||s[c+2]==='"'||s.length";if(!s)return c+` +`;var d="",h="";if(s=s.replace(/[\n\t ]*$/,function(m){var f=m.indexOf(` +`);return f===-1?c+="-":(s===m||f!==m.length-1)&&(c+="+",i&&i()),h=m.replace(/\n$/,""),""}).replace(/^[\n ]*/,function(m){m.indexOf(" ")!==-1&&(c+=l);var f=m.match(/ +$/);return f?(d=m.slice(0,-f[0].length),f[0]):(d=m,"")}),h&&(h=h.replace(/\n+(?!\n|$)/g,"$&".concat(a))),d&&(d=d.replace(/\n+/g,"$&".concat(a))),r&&(c+=" #"+r.replace(/ ?[\r\n]+/g," "),t&&t()),!s)return"".concat(c).concat(l,` +`).concat(a).concat(h);if(u)return s=s.replace(/\n+/g,"$&".concat(a)),"".concat(c,` +`).concat(a).concat(d).concat(s).concat(h);s=s.replace(/\n+/g,` +$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,"$&".concat(a));var g=QZ("".concat(d).concat(s).concat(h),a,pB,sf.fold);return"".concat(c,` +`).concat(a).concat(g)}function kqe(n,e,t,i){var r=n.comment,o=n.type,s=n.value,a=e.actualString,l=e.implicitKey,u=e.indent,c=e.inFlow;if(l&&/[\n[\]{},]/.test(s)||c&&/[[\]{},]/.test(s))return lC(s,e);if(!s||/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(s))return l||c||s.indexOf(` +`)===-1?s.indexOf('"')!==-1&&s.indexOf("'")===-1?Hde(s,e):lC(s,e):qZ(n,e,t,i);if(!l&&!c&&o!==Ft.PLAIN&&s.indexOf(` +`)!==-1)return qZ(n,e,t,i);if(u===""&&$Z(s))return e.forceBlockIndent=!0,qZ(n,e,t,i);var d=s.replace(/\n+/g,`$& +`.concat(u));if(a){var h=e.doc.schema.tags,g=fB(d,h,h.scalarFallback).value;if(typeof g!="string")return lC(s,e)}var m=l?d:QZ(d,u,zde,bB(e));return r&&!c&&(m.indexOf(` +`)!==-1||r.indexOf(` +`)!==-1)?(t&&t(),_qe(m,u,r)):m}function CB(n,e,t,i){var r=sf.defaultType,o=e.implicitKey,s=e.inFlow,a=n,l=a.type,u=a.value;typeof u!="string"&&(u=String(u),n=Object.assign({},n,{value:u}));var c=function(g){switch(g){case Ft.BLOCK_FOLDED:case Ft.BLOCK_LITERAL:return qZ(n,e,t,i);case Ft.QUOTE_DOUBLE:return lC(u,e);case Ft.QUOTE_SINGLE:return Hde(u,e);case Ft.PLAIN:return kqe(n,e,t,i);default:return null}};(l!==Ft.QUOTE_DOUBLE&&/[\x00-\x08\x0b-\x1f\x7f-\x9f]/.test(u)||(o||s)&&(l===Ft.BLOCK_FOLDED||l===Ft.BLOCK_LITERAL))&&(l=Ft.QUOTE_DOUBLE);var d=c(l);if(d===null&&(d=c(r),d===null))throw new Error("Unsupported default string type ".concat(r));return d}function af(n){var e=n.format,t=n.minFractionDigits,i=n.tag,r=n.value;if(typeof r=="bigint")return String(r);if(!isFinite(r))return isNaN(r)?".nan":r<0?"-.inf":".inf";var o=JSON.stringify(r);if(!e&&t&&(!i||i==="tag:yaml.org,2002:float")&&/^\d/.test(o)){var s=o.indexOf(".");s<0&&(s=o.length,o+=".");for(var a=t-(o.length-s-1);a-- >0;)o+="0"}return o}function Ude(n,e){var t,i;switch(e.type){case Ft.FLOW_MAP:t="}",i="flow map";break;case Ft.FLOW_SEQ:t="]",i="flow sequence";break;default:n.push(new Fi(e,"Not a flow collection!?"));return}for(var r,o=e.items.length-1;o>=0;--o){var s=e.items[o];if(!s||s.type!==Ft.COMMENT){r=s;break}}if(r&&r.char!==t){var a="Expected ".concat(i," to end with ").concat(t),l;typeof r.offset=="number"?(l=new Fi(e,a),l.offset=r.offset+1):(l=new Fi(r,a),r.range&&r.range.end&&(l.offset=r.range.end-r.range.start)),n.push(l)}}function Jde(n,e){var t=e.context.src[e.range.start-1];if(t!==` +`&&t!==" "&&t!==" "){var i="Comments must be separated from other tokens by white space characters";n.push(new Fi(e,i))}}function Kde(n,e){var t=String(e),i=t.substr(0,8)+"..."+t.substr(-8);return new Fi(n,'The "'.concat(i,'" key is too long'))}function jde(n,e){var t=uo(e),i;try{for(t.s();!(i=t.n()).done;){var r=i.value,o=r.afterKey,s=r.before,a=r.comment,l=n.items[s];l?(o&&l.value&&(l=l.value),a===void 0?(o||!l.commentBefore)&&(l.spaceBefore=!0):l.commentBefore?l.commentBefore+=` +`+a:l.commentBefore=a):a!==void 0&&(n.comment?n.comment+=` +`+a:n.comment=a)}}catch(u){t.e(u)}finally{t.f()}}function GL(n,e){var t=e.strValue;return t?typeof t=="string"?t:(t.errors.forEach(function(i){i.source||(i.source=e),n.errors.push(i)}),t.str):""}function Mqe(n,e){var t=e.tag,i=t.handle,r=t.suffix,o=n.tagPrefixes.find(function(l){return l.handle===i});if(!o){var s=n.getDefaults().tagPrefixes;if(s&&(o=s.find(function(l){return l.handle===i})),!o)throw new Fi(e,"The ".concat(i," tag handle is non-default and was not declared."))}if(!r)throw new Fi(e,"The ".concat(i," tag has no suffix."));if(i==="!"&&(n.version||n.options.version)==="1.0"){if(r[0]==="^")return n.warnings.push(new CI(e,"YAML 1.0 ^ tag expansion is not supported")),r;if(/[:/]/.test(r)){var a=r.match(/^([a-z0-9-]+)\/(.*)/i);return a?"tag:".concat(a[1],".yaml.org,2002:").concat(a[2]):"tag:".concat(r)}}return o.prefix+decodeURIComponent(r)}function Zqe(n,e){var t=e.tag,i=e.type,r=!1;if(t){var o=t.handle,s=t.suffix,a=t.verbatim;if(a){if(a!=="!"&&a!=="!!")return a;var l="Verbatim tags aren't resolved, so ".concat(a," is invalid.");n.errors.push(new Fi(e,l))}else if(o==="!"&&!s)r=!0;else try{return Mqe(n,e)}catch(u){n.errors.push(u)}}switch(i){case Ft.BLOCK_FOLDED:case Ft.BLOCK_LITERAL:case Ft.QUOTE_DOUBLE:case Ft.QUOTE_SINGLE:return nb.STR;case Ft.FLOW_MAP:case Ft.MAP:return nb.MAP;case Ft.FLOW_SEQ:case Ft.SEQ:return nb.SEQ;case Ft.PLAIN:return r?nb.STR:null;default:return null}}function Qde(n,e,t){var i=n.schema.tags,r=[],o=uo(i),s;try{for(o.s();!(s=o.n()).done;){var a=s.value;if(a.tag===t)if(a.test)r.push(a);else{var l=a.resolve(n,e);return l instanceof Oa?l:new Wr(l)}}}catch(c){o.e(c)}finally{o.f()}var u=GL(n,e);return typeof u=="string"&&r.length>0?fB(u,r,i.scalarFallback):null}function Tqe(n){var e=n.type;switch(e){case Ft.FLOW_MAP:case Ft.MAP:return nb.MAP;case Ft.FLOW_SEQ:case Ft.SEQ:return nb.SEQ;default:return nb.STR}}function Eqe(n,e,t){try{var i=Qde(n,e,t);if(i)return t&&e.tag&&(i.tag=t),i}catch(l){return l.source||(l.source=e),n.errors.push(l),null}try{var r=Tqe(e);if(!r)throw new Error("The tag ".concat(t," is unavailable"));var o="The tag ".concat(t," is unavailable, falling back to ").concat(r);n.warnings.push(new CI(e,o));var s=Qde(n,e,r);return s.tag=t,s}catch(l){var a=new ZL(e,l.message);return a.stack=l.stack,n.errors.push(a),null}}var Wqe=function(e){if(!e)return!1;var t=e.type;return t===Ft.MAP_KEY||t===Ft.MAP_VALUE||t===Ft.SEQ_ITEM};function Rqe(n,e){var t={before:[],after:[]},i=!1,r=!1,o=Wqe(e.context.parent)?e.context.parent.props.concat(e.props):e.props,s=uo(o),a;try{for(s.s();!(a=s.n()).done;){var l=a.value,u=l.start,c=l.end;switch(e.context.src[u]){case Os.COMMENT:{if(!e.commentHasRequiredWhitespace(u)){var d="Comments must be separated from other tokens by white space characters";n.push(new Fi(e,d))}var h=e.header,g=e.valueRange,m=g&&(u>g.start||h&&u>h.start)?t.after:t.before;m.push(e.context.src.slice(u+1,c));break}case Os.ANCHOR:if(i){var f="A node can have at most one anchor";n.push(new Fi(e,f))}i=!0;break;case Os.TAG:if(r){var b="A node can have at most one tag";n.push(new Fi(e,b))}r=!0;break}}}catch(C){s.e(C)}finally{s.f()}return{comments:t,hasAnchor:i,hasTag:r}}function Gqe(n,e){var t=n.anchors,i=n.errors,r=n.schema;if(e.type===Ft.ALIAS){var o=e.rawValue,s=t.getNode(o);if(!s){var a="Aliased anchor not found: ".concat(o);return i.push(new ZL(e,a)),null}var l=new rf(s);return t._cstAliases.push(l),l}var u=Zqe(n,e);if(u)return Eqe(n,e,u);if(e.type!==Ft.PLAIN){var c="Failed to resolve ".concat(e.type," node here");return i.push(new wl(e,c)),null}try{var d=GL(n,e);return fB(d,r.tags,r.tags.scalarFallback)}catch(h){return h.source||(h.source=e),i.push(h),null}}function ob(n,e){if(!e)return null;e.error&&n.errors.push(e.error);var t=Rqe(n.errors,e),i=t.comments,r=t.hasAnchor,o=t.hasTag;if(r){var s=n.anchors,a=e.anchor,l=s.getNode(a);l&&(s.map[s.newName(a)]=l),s.map[a]=e}if(e.type===Ft.ALIAS&&(r||o)){var u="An alias node must not specify any properties";n.errors.push(new Fi(e,u))}var c=Gqe(n,e);if(c){c.range=[e.range.start,e.range.end],n.options.keepCstNodes&&(c.cstNode=e),n.options.keepNodeTypes&&(c.type=e.type);var d=i.before.join(` +`);d&&(c.commentBefore=c.commentBefore?"".concat(c.commentBefore,` +`).concat(d):d);var h=i.after.join(` +`);h&&(c.comment=c.comment?"".concat(c.comment,` +`).concat(h):h)}return e.resolved=c}function $de(n,e){if(e.type!==Ft.MAP&&e.type!==Ft.FLOW_MAP){var t="A ".concat(e.type," node cannot be resolved as a mapping");return n.errors.push(new wl(e,t)),null}var i=e.type===Ft.FLOW_MAP?Oqe(n,e):Pqe(n,e),r=i.comments,o=i.items,s=new Du;s.items=o,jde(s,r);for(var a=!1,l=0;lr.valueRange.start||o[a]!==Os.COMMENT)return!1;for(var l=i;l0){u=new Vde(Ft.PLAIN,[]),u.context={parent:a,src:a.context.src};var c=a.range.start+1;if(u.range={start:c,end:c},u.valueRange={start:c,end:c},typeof a.range.origStart=="number"){var d=a.range.origStart+1;u.range.origStart=u.range.origEnd=d,u.valueRange.origStart=u.valueRange.origEnd=d}}var h=new tr(r,ob(n,u));Xqe(a,h),i.push(h),r&&typeof o=="number"&&a.range.start>o+1024&&n.errors.push(Kde(e,r)),r=void 0,o=null}break;default:r!==void 0&&i.push(new tr(r)),r=ob(n,a),o=a.range.start,a.error&&n.errors.push(a.error);e:for(var g=s+1;;++g){var m=e.items[g];switch(m&&m.type){case Ft.BLANK_LINE:case Ft.COMMENT:continue e;case Ft.MAP_VALUE:break e;default:{var f="Implicit map keys need to be followed by map values";n.errors.push(new Fi(a,f));break e}}}if(a.valueRangeContainsNewline){var b="Implicit map keys need to be on a single line";n.errors.push(new Fi(a,b))}}}return r!==void 0&&i.push(new tr(r)),{comments:t,items:i}}function Oqe(n,e){for(var t=[],i=[],r=void 0,o=!1,s="{",a=0;as+1024&&n.errors.push(Kde(e,o));for(var b=l.context.src,C=s;C=20.0.0",npm_config_node_gyp:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",XPC_SERVICE_NAME:"0",npm_package_version:"2.0.1",VSCODE_INJECTION:"1",HOME:"/Users/alexander",SHLVL:"2",VSCODE_GIT_ASKPASS_MAIN:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js",GOROOT:"/Users/alexander/.gvm/gos/go1.21.6",DYLD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",gvm_go_name:"go1.21.6",LOGNAME:"alexander",LESS:"-R",VSCODE_PATH_PREFIX:"/Users/alexander/.gvm/gos/go1.20/bin:",npm_config_cache:"/Users/alexander/.npm",GVM_OVERLAY_PREFIX:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay",npm_lifecycle_script:"tsc && vite build --config vite.package.config.ts --mode package",LC_CTYPE:"zh_CN.UTF-8",VSCODE_GIT_IPC_HANDLE:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/vscode-git-79a18f10f2.sock",NVM_BIN:"/Users/alexander/.nvm/versions/node/v16.10.0/bin",PKG_CONFIG_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:",GOPATH:"/Users/alexander/mygo",npm_config_user_agent:"npm/7.24.0 node/v16.10.0 darwin x64 workspaces/false",GIT_ASKPASS:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh",VSCODE_GIT_ASKPASS_NODE:"/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin)",GVM_PATH_BACKUP:"/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",COLORTERM:"truecolor",npm_config_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",npm_node_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NODE_ENV:"production"},ehe={identify:function(e){return e instanceof Uint8Array},default:!1,tag:"tag:yaml.org,2002:binary",resolve:function(e,t){var i=GL(e,t);if(typeof Buffer=="function")return Buffer.from(i,"base64");if(typeof atob=="function"){for(var r=atob(i.replace(/[\n\r]/g,"")),o=new Uint8Array(r.length),s=0;s1){var o="Each pair must have its own sequence indicator";throw new Fi(e,o)}var s=r.items[0]||new tr;r.commentBefore&&(s.commentBefore=s.commentBefore?"".concat(r.commentBefore,` +`).concat(s.commentBefore):r.commentBefore),r.comment&&(s.comment=s.comment?"".concat(r.comment,` +`).concat(s.comment):r.comment),r=s}t.items[i]=r instanceof tr?r:new tr(r)}}return t}function nhe(n,e,t){var i=new Cg(n);i.tag="tag:yaml.org,2002:pairs";var r=uo(e),o;try{for(r.s();!(o=r.n()).done;){var s=o.value,a=void 0,l=void 0;if(Array.isArray(s))if(s.length===2)a=s[0],l=s[1];else throw new TypeError("Expected [key, value] tuple: ".concat(s));else if(s&&s instanceof Object){var u=Object.keys(s);if(u.length===1)a=u[0],l=s[a];else throw new TypeError("Expected { key: value } tuple: ".concat(s))}else a=s;var c=n.createPair(a,l,t);i.items.push(c)}}catch(d){r.e(d)}finally{r.f()}return i}var ihe={default:!1,tag:"tag:yaml.org,2002:pairs",resolve:the,createNode:nhe},e9=function(n){ao(t,n);var e=lo(t);function t(){var i;return cr(this,t),i=e.call(this),Il(sd(i),"add",Du.prototype.add.bind(sd(i))),Il(sd(i),"delete",Du.prototype.delete.bind(sd(i))),Il(sd(i),"get",Du.prototype.get.bind(sd(i))),Il(sd(i),"has",Du.prototype.has.bind(sd(i))),Il(sd(i),"set",Du.prototype.set.bind(sd(i))),i.tag=t.tag,i}return jr(t,[{key:"toJSON",value:function(r,o){var s=new Map;o&&o.onCreate&&o.onCreate(s);var a=uo(this.items),l;try{for(a.s();!(l=a.n()).done;){var u=l.value,c=void 0,d=void 0;if(u instanceof tr?(c=lh(u.key,"",o),d=lh(u.value,c,o)):c=lh(u,"",o),s.has(c))throw new Error("Ordered maps must not include duplicate keys");s.set(c,d)}}catch(h){a.e(h)}finally{a.f()}return s}}]),t}(Cg);Il(e9,"tag","tag:yaml.org,2002:omap");function Hqe(n,e){var t=the(n,e),i=[],r=uo(t.items),o;try{for(r.s();!(o=r.n()).done;){var s=o.value.key;if(s instanceof Wr)if(i.includes(s.value)){var a="Ordered maps must not include duplicate keys";throw new Fi(e,a)}else i.push(s.value)}}catch(l){r.e(l)}finally{r.f()}return Object.assign(new e9,t)}function Uqe(n,e,t){var i=nhe(n,e,t),r=new e9;return r.items=i.items,r}var rhe={identify:function(e){return e instanceof Map},nodeClass:e9,default:!1,tag:"tag:yaml.org,2002:omap",resolve:Hqe,createNode:Uqe},t9=function(n){ao(t,n);var e=lo(t);function t(){var i;return cr(this,t),i=e.call(this),i.tag=t.tag,i}return jr(t,[{key:"add",value:function(r){var o=r instanceof tr?r:new tr(r),s=aC(this.items,o.key);s||this.items.push(o)}},{key:"get",value:function(r,o){var s=aC(this.items,r);return!o&&s instanceof tr?s.key instanceof Wr?s.key.value:s.key:s}},{key:"set",value:function(r,o){if(typeof o!="boolean")throw new Error("Expected boolean value for set(key, value) in a YAML set, not ".concat(fc(o)));var s=aC(this.items,r);s&&!o?this.items.splice(this.items.indexOf(s),1):!s&&o&&this.items.push(new tr(r))}},{key:"toJSON",value:function(r,o){return Fu(Pa(t.prototype),"toJSON",this).call(this,r,o,Set)}},{key:"toString",value:function(r,o,s){if(!r)return JSON.stringify(this);if(this.hasAllNullValues())return Fu(Pa(t.prototype),"toString",this).call(this,r,o,s);throw new Error("Set items must all have null values")}}]),t}(Du);Il(t9,"tag","tag:yaml.org,2002:set");function Jqe(n,e){var t=$de(n,e);if(!t.hasAllNullValues())throw new Fi(e,"Set items must all have null values");return Object.assign(new t9,t)}function Kqe(n,e,t){var i=new t9,r=uo(e),o;try{for(r.s();!(o=r.n()).done;){var s=o.value;i.items.push(n.createPair(s,null,t))}}catch(a){r.e(a)}finally{r.f()}return i}var ohe={identify:function(e){return e instanceof Set},nodeClass:t9,default:!1,tag:"tag:yaml.org,2002:set",resolve:Jqe,createNode:Kqe},vB=function(e,t){var i=t.split(":").reduce(function(r,o){return r*60+Number(o)},0);return e==="-"?-i:i},she=function(e){var t=e.value;if(isNaN(t)||!isFinite(t))return af(t);var i="";t<0&&(i="-",t=Math.abs(t));var r=[t%60];return t<60?r.unshift(0):(t=Math.round((t-r[0])/60),r.unshift(t%60),t>=60&&(t=Math.round((t-r[0])/60),r.unshift(t))),i+r.map(function(o){return o<10?"0"+String(o):String(o)}).join(":").replace(/000000\d*$/,"")},ahe={identify:function(e){return typeof e=="number"},default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+)$/,resolve:function(e,t,i){return vB(t,i.replace(/_/g,""))},stringify:she},lhe={identify:function(e){return typeof e=="number"},default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^([-+]?)([0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*)$/,resolve:function(e,t,i){return vB(t,i.replace(/_/g,""))},stringify:she},uhe={identify:function(e){return e instanceof Date},default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^(?:([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?)$"),resolve:function(e,t,i,r,o,s,a,l,u){l&&(l=(l+"00").substr(1,3));var c=Date.UTC(t,i-1,r,o||0,s||0,a||0,l||0);if(u&&u!=="Z"){var d=vB(u[0],u.slice(1));Math.abs(d)<30&&(d*=60),c-=6e4*d}return new Date(c)},stringify:function(e){var t=e.value;return t.toISOString().replace(/((T00:00)?:00)?\.000Z$/,"")}};function che(n){var e=typeof process<"u"&&Yqe||{};return n?typeof YAML_SILENCE_DEPRECATION_WARNINGS<"u"?!YAML_SILENCE_DEPRECATION_WARNINGS:!e.YAML_SILENCE_DEPRECATION_WARNINGS:typeof YAML_SILENCE_WARNINGS<"u"?!YAML_SILENCE_WARNINGS:!e.YAML_SILENCE_WARNINGS}function dhe(n,e){if(che(!1)){var t=typeof process<"u"&&process.emitWarning;t&&t(n,e)}}var hhe={};function jqe(n,e){if(!hhe[n]&&che(!0)){hhe[n]=!0;var t="The option '".concat(n,"' will be removed in a future release");t+=e?", use '".concat(e,"' instead."):".",dhe(t,"DeprecationWarning")}}function Qqe(n,e,t){var i=new Du(n);if(e instanceof Map){var r=uo(e),o;try{for(r.s();!(o=r.n()).done;){var s=kL(o.value,2),a=s[0],l=s[1];i.items.push(n.createPair(a,l,t))}}catch(h){r.e(h)}finally{r.f()}}else if(e&&fc(e)==="object")for(var u=0,c=Object.keys(e);u=0?t+i.toString(e):af(n)}var mhe={identify:function(e){return e==null},createNode:function(e,t,i){return i.wrapScalars?new Wr(null):null},default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:function(){return null},options:yI,stringify:function(){return yI.nullStr}},fhe={identify:function(e){return typeof e=="boolean"},default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:function(e){return e[0]==="t"||e[0]==="T"},options:of,stringify:function(e){var t=e.value;return t?of.trueStr:of.falseStr}},phe={identify:function(e){return i9(e)&&e>=0},default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o([0-7]+)$/,resolve:function(e,t){return IB(e,t,8)},options:rb,stringify:function(e){return ghe(e,8,"0o")}},bhe={identify:i9,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:function(e){return IB(e,e,10)},options:rb,stringify:af},Che={identify:function(e){return i9(e)&&e>=0},default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x([0-9a-fA-F]+)$/,resolve:function(e,t){return IB(e,t,16)},options:rb,stringify:function(e){return ghe(e,16,"0x")}},vhe={identify:function(e){return typeof e=="number"},default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.inf|(\.nan))$/i,resolve:function(e,t){return t?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY},stringify:af},yhe={identify:function(e){return typeof e=="number"},default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:function(e){return parseFloat(e)},stringify:function(e){var t=e.value;return Number(t).toExponential()}},Ihe={identify:function(e){return typeof e=="number"},default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.([0-9]+)|[0-9]+\.([0-9]*))$/,resolve:function(e,t,i){var r=t||i,o=new Wr(parseFloat(e));return r&&r[r.length-1]==="0"&&(o.minFractionDigits=r.length),o},stringify:af},eet=yB.concat([mhe,fhe,phe,bhe,Che,vhe,yhe,Ihe]),whe=function(e){return typeof e=="bigint"||Number.isInteger(e)},r9=function(e){var t=e.value;return JSON.stringify(t)},She=[VL,n9,{identify:function(e){return typeof e=="string"},default:!0,tag:"tag:yaml.org,2002:str",resolve:GL,stringify:r9},{identify:function(e){return e==null},createNode:function(e,t,i){return i.wrapScalars?new Wr(null):null},default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:function(){return null},stringify:r9},{identify:function(e){return typeof e=="boolean"},default:!0,tag:"tag:yaml.org,2002:bool",test:/^true|false$/,resolve:function(e){return e==="true"},stringify:r9},{identify:whe,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:function(e){return rb.asBigInt?BigInt(e):parseInt(e,10)},stringify:function(e){var t=e.value;return whe(t)?t.toString():JSON.stringify(t)}},{identify:function(e){return typeof e=="number"},default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:function(e){return parseFloat(e)},stringify:r9}];She.scalarFallback=function(n){throw new SyntaxError("Unresolved plain scalar ".concat(JSON.stringify(n)))};var xhe=function(e){var t=e.value;return t?of.trueStr:of.falseStr},XL=function(e){return typeof e=="bigint"||Number.isInteger(e)};function o9(n,e,t){var i=e.replace(/_/g,"");if(rb.asBigInt){switch(t){case 2:i="0b".concat(i);break;case 8:i="0o".concat(i);break;case 16:i="0x".concat(i);break}var r=BigInt(i);return n==="-"?BigInt(-1)*r:r}var o=parseInt(i,t);return n==="-"?-1*o:o}function wB(n,e,t){var i=n.value;if(XL(i)){var r=i.toString(e);return i<0?"-"+t+r.substr(1):t+r}return af(n)}var tet=yB.concat([{identify:function(e){return e==null},createNode:function(e,t,i){return i.wrapScalars?new Wr(null):null},default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:function(){return null},options:yI,stringify:function(){return yI.nullStr}},{identify:function(e){return typeof e=="boolean"},default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:function(){return!0},options:of,stringify:xhe},{identify:function(e){return typeof e=="boolean"},default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,resolve:function(){return!1},options:of,stringify:xhe},{identify:XL,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^([-+]?)0b([0-1_]+)$/,resolve:function(e,t,i){return o9(t,i,2)},stringify:function(e){return wB(e,2,"0b")}},{identify:XL,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^([-+]?)0([0-7_]+)$/,resolve:function(e,t,i){return o9(t,i,8)},stringify:function(e){return wB(e,8,"0")}},{identify:XL,default:!0,tag:"tag:yaml.org,2002:int",test:/^([-+]?)([0-9][0-9_]*)$/,resolve:function(e,t,i){return o9(t,i,10)},stringify:af},{identify:XL,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^([-+]?)0x([0-9a-fA-F_]+)$/,resolve:function(e,t,i){return o9(t,i,16)},stringify:function(e){return wB(e,16,"0x")}},{identify:function(e){return typeof e=="number"},default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.inf|(\.nan))$/i,resolve:function(e,t){return t?NaN:e[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY},stringify:af},{identify:function(e){return typeof e=="number"},default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?([0-9][0-9_]*)?(\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:function(e){return parseFloat(e.replace(/_/g,""))},stringify:function(e){var t=e.value;return Number(t).toExponential()}},{identify:function(e){return typeof e=="number"},default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.([0-9_]*)$/,resolve:function(e,t){var i=new Wr(parseFloat(e.replace(/_/g,"")));if(t){var r=t.replace(/_/g,"");r[r.length-1]==="0"&&(i.minFractionDigits=r.length)}return i},stringify:af}],ehe,rhe,ihe,ohe,ahe,lhe,uhe),net={core:eet,failsafe:yB,json:She,yaml11:tet},iet={binary:ehe,bool:fhe,float:Ihe,floatExp:yhe,floatNaN:vhe,floatTime:lhe,int:bhe,intHex:Che,intOct:phe,intTime:ahe,map:VL,null:mhe,omap:rhe,pairs:ihe,seq:n9,set:ohe,timestamp:uhe};function ret(n,e,t){if(e){var i=t.filter(function(o){return o.tag===e}),r=i.find(function(o){return!o.format})||i[0];if(!r)throw new Error("Tag ".concat(e," not found"));return r}return t.find(function(o){return(o.identify&&o.identify(n)||o.class&&n instanceof o.class)&&!o.format})}function oet(n,e,t){if(n instanceof _u)return n;var i=t.defaultPrefix,r=t.onTagObj,o=t.prevObjects,s=t.schema,a=t.wrapScalars;e&&e.startsWith("!!")&&(e=i+e.slice(2));var l=ret(n,e,s.tags);if(!l){if(typeof n.toJSON=="function"&&(n=n.toJSON()),!n||fc(n)!=="object")return a?new Wr(n):n;l=n instanceof Map?VL:n[Symbol.iterator]?n9:VL}r&&(r(l),delete t.onTagObj);var u={value:void 0,node:void 0};if(n&&fc(n)==="object"&&o){var c=o.get(n);if(c){var d=new rf(c);return t.aliasNodes.push(d),d}u.value=n,o.set(n,u)}return u.node=l.createNode?l.createNode(t.schema,n,t):a?new Wr(n):n,e&&u.node instanceof _u&&(u.node.tag=e),u.node}function set(n,e,t,i){var r=n[i.replace(/\W/g,"")];if(!r){var o=Object.keys(n).map(function(g){return JSON.stringify(g)}).join(", ");throw new Error('Unknown schema "'.concat(i,'"; use one of ').concat(o))}if(Array.isArray(t)){var s=uo(t),a;try{for(s.s();!(a=s.n()).done;){var l=a.value;r=r.concat(l)}}catch(g){s.e(g)}finally{s.f()}}else typeof t=="function"&&(r=t(r.slice()));for(var u=0;ut.key?1:0},PL=function(){function n(e){var t=e.customTags,i=e.merge,r=e.schema,o=e.sortMapEntries,s=e.tags;cr(this,n),this.merge=!!i,this.name=r,this.sortMapEntries=o===!0?aet:o||null,!t&&s&&jqe("tags","customTags"),this.tags=set(net,iet,t||s,r)}return jr(n,[{key:"createNode",value:function(t,i,r,o){var s={defaultPrefix:n.defaultPrefix,schema:this,wrapScalars:i},a=o?Object.assign(o,s):s;return oet(t,r,a)}},{key:"createPair",value:function(t,i,r){r||(r={wrapScalars:!0});var o=this.createNode(t,r.wrapScalars,null,r),s=this.createNode(i,r.wrapScalars,null,r);return new tr(o,s)}}]),n}();Il(PL,"defaultPrefix",JZ),Il(PL,"defaultTags",nb);var s9={anchorPrefix:"a",customTags:null,indent:2,indentSeq:!0,keepCstNodes:!1,keepNodeTypes:!0,keepBlobsInJSON:!0,mapAsMap:!1,maxAliasCount:100,prettyErrors:!1,simpleKeys:!1,version:"1.2"},uet={get binary(){return RL},set binary(n){Object.assign(RL,n)},get bool(){return of},set bool(n){Object.assign(of,n)},get int(){return rb},set int(n){Object.assign(rb,n)},get null(){return yI},set null(n){Object.assign(yI,n)},get str(){return sf},set str(n){Object.assign(sf,n)}},Lhe={"1.0":{schema:"yaml-1.1",merge:!0,tagPrefixes:[{handle:"!",prefix:JZ},{handle:"!!",prefix:"tag:private.yaml.org,2002:"}]},1.1:{schema:"yaml-1.1",merge:!0,tagPrefixes:[{handle:"!",prefix:"!"},{handle:"!!",prefix:JZ}]},1.2:{schema:"core",merge:!1,tagPrefixes:[{handle:"!",prefix:"!"},{handle:"!!",prefix:JZ}]}};function Fhe(n,e){if((n.version||n.options.version)==="1.0"){var t=e.match(/^tag:private\.yaml\.org,2002:([^:/]+)$/);if(t)return"!"+t[1];var i=e.match(/^tag:([a-zA-Z0-9-]+)\.yaml\.org,2002:(.*)/);return i?"!".concat(i[1],"/").concat(i[2]):"!".concat(e.replace(/^tag:/,""))}var r=n.tagPrefixes.find(function(a){return e.indexOf(a.prefix)===0});if(!r){var o=n.getDefaults().tagPrefixes;r=o&&o.find(function(a){return e.indexOf(a.prefix)===0})}if(!r)return e[0]==="!"?e:"!<".concat(e,">");var s=e.substr(r.prefix.length).replace(/[!,[\]{}]/g,function(a){return{"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"}[a]});return r.handle+s}function cet(n,e){if(e instanceof rf)return rf;if(e.tag){var t=n.filter(function(a){return a.tag===e.tag});if(t.length>0)return t.find(function(a){return a.format===e.format})||t[0]}var i,r;if(e instanceof Wr){r=e.value;var o=n.filter(function(a){return a.identify&&a.identify(r)||a.class&&r instanceof a.class});i=o.find(function(a){return a.format===e.format})||o.find(function(a){return!a.format})}else r=e,i=n.find(function(a){return a.nodeClass&&r instanceof a.nodeClass});if(!i){var s=r&&r.constructor?r.constructor.name:fc(r);throw new Error("Tag not resolved for ".concat(s," value"))}return i}function det(n,e,t){var i=t.anchors,r=t.doc,o=[],s=r.anchors.getName(n);return s&&(i[s]=n,o.push("&".concat(s))),n.tag?o.push(Fhe(r,n.tag)):e.default||o.push(Fhe(r,e.tag)),o.join(" ")}function a9(n,e,t,i){var r=e.doc,o=r.anchors,s=r.schema,a;if(!(n instanceof _u)){var l={aliasNodes:[],onTagObj:function(b){return a=b},prevObjects:new Map};n=s.createNode(n,!0,null,l);var u=uo(l.aliasNodes),c;try{for(u.s();!(c=u.n()).done;){var d=c.value;d.source=d.source.node;var h=o.getName(d.source);h||(h=o.newName(),o.map[h]=d.source)}}catch(f){u.e(f)}finally{u.f()}}if(n instanceof tr)return n.toString(e,t,i);a||(a=cet(s.tags,n));var g=det(n,a,e);g.length>0&&(e.indentAtStart=(e.indentAtStart||0)+g.length+1);var m=typeof a.stringify=="function"?a.stringify(n,e,t,i):n instanceof Wr?CB(n,e,t,i):n.toString(e,t,i);return g?n instanceof Wr||m[0]==="{"||m[0]==="["?"".concat(g," ").concat(m):"".concat(g,` +`).concat(e.indent).concat(m):m}var het=function(){function n(e){cr(this,n),Il(this,"map",Object.create(null)),this.prefix=e}return jr(n,[{key:"createAlias",value:function(t,i){return this.setAnchor(t,i),new rf(t)}},{key:"createMergePair",value:function(){for(var t=this,i=new Bde,r=arguments.length,o=new Array(r),s=0;s0&&!n.commentBefore&&(n.commentBefore=t.before.join(` +`),t.before=[]))}}catch(g){o.e(g)}finally{o.f()}if(n.contents=i||null,!i)n.comment=t.before.concat(t.after).join(` +`)||null;else{var d=t.before.join(` +`);if(d){var h=i instanceof Oa&&i.items[0]?i.items[0]:i;h.commentBefore=h.commentBefore?"".concat(d,` +`).concat(h.commentBefore):d}n.comment=t.after.join(` +`)||null}}function pet(n,e){var t=n.tagPrefixes,i=kL(e.parameters,2),r=i[0],o=i[1];if(!r||!o){var s="Insufficient parameters given for %TAG directive";throw new Fi(e,s)}if(t.some(function(l){return l.handle===r})){var a="The %TAG directive must only be given at most once per handle in the same document.";throw new Fi(e,a)}return{handle:r,prefix:o}}function bet(n,e){var t=kL(e.parameters,1),i=t[0];if(e.name==="YAML:1.0"&&(i="1.0"),!i){var r="Insufficient parameters given for %YAML directive";throw new Fi(e,r)}if(!Lhe[i]){var o=n.version||n.options.version,s="Document will be parsed as YAML ".concat(o," rather than YAML ").concat(i);n.warnings.push(new CI(e,s))}return i}function Cet(n,e,t){var i=[],r=!1,o=uo(e),s;try{for(o.s();!(s=o.n()).done;){var a=s.value,l=a.comment,u=a.name;switch(u){case"TAG":try{n.tagPrefixes.push(pet(n,a))}catch(g){n.errors.push(g)}r=!0;break;case"YAML":case"YAML:1.0":if(n.version){var c="The %YAML directive must only be given at most once per document.";n.errors.push(new Fi(a,c))}try{n.version=bet(n,a)}catch(g){n.errors.push(g)}r=!0;break;default:if(u){var d="YAML only supports %TAG and %YAML directives, and not %".concat(u);n.warnings.push(new CI(a,d))}}l&&i.push(l)}}catch(g){o.e(g)}finally{o.f()}if(t&&!r&&(n.version||t.version||n.options.version)==="1.1"){var h=function(m){var f=m.handle,b=m.prefix;return{handle:f,prefix:b}};n.tagPrefixes=t.tagPrefixes.map(h),n.version=t.version}n.commentBefore=i.join(` +`)||null}function II(n){if(n instanceof Oa)return!0;throw new Error("Expected a YAML collection as document contents")}var SB=function(){function n(e){cr(this,n),this.anchors=new het(e.anchorPrefix),this.commentBefore=null,this.comment=null,this.contents=null,this.directivesEndMarker=null,this.errors=[],this.options=e,this.schema=null,this.tagPrefixes=[],this.version=null,this.warnings=[]}return jr(n,[{key:"add",value:function(t){return II(this.contents),this.contents.add(t)}},{key:"addIn",value:function(t,i){II(this.contents),this.contents.addIn(t,i)}},{key:"delete",value:function(t){return II(this.contents),this.contents.delete(t)}},{key:"deleteIn",value:function(t){return WL(t)?this.contents==null?!1:(this.contents=null,!0):(II(this.contents),this.contents.deleteIn(t))}},{key:"getDefaults",value:function(){return n.defaults[this.version]||n.defaults[this.options.version]||{}}},{key:"get",value:function(t,i){return this.contents instanceof Oa?this.contents.get(t,i):void 0}},{key:"getIn",value:function(t,i){return WL(t)?!i&&this.contents instanceof Wr?this.contents.value:this.contents:this.contents instanceof Oa?this.contents.getIn(t,i):void 0}},{key:"has",value:function(t){return this.contents instanceof Oa?this.contents.has(t):!1}},{key:"hasIn",value:function(t){return WL(t)?this.contents!==void 0:this.contents instanceof Oa?this.contents.hasIn(t):!1}},{key:"set",value:function(t,i){II(this.contents),this.contents.set(t,i)}},{key:"setIn",value:function(t,i){WL(t)?this.contents=i:(II(this.contents),this.contents.setIn(t,i))}},{key:"setSchema",value:function(t,i){if(!(!t&&!i&&this.schema)){typeof t=="number"&&(t=t.toFixed(1)),t==="1.0"||t==="1.1"||t==="1.2"?(this.version?this.version=t:this.options.version=t,delete this.options.schema):t&&typeof t=="string"&&(this.options.schema=t),Array.isArray(i)&&(this.options.customTags=i);var r=Object.assign({},this.getDefaults(),this.options);this.schema=new PL(r)}}},{key:"parse",value:function(t,i){this.options.keepCstNodes&&(this.cstNode=t),this.options.keepNodeTypes&&(this.type="DOCUMENT");var r=t.directives,o=r===void 0?[]:r,s=t.contents,a=s===void 0?[]:s,l=t.directivesEndMarker,u=t.error,c=t.valueRange;if(u&&(u.source||(u.source=this),this.errors.push(u)),Cet(this,o,i),l&&(this.directivesEndMarker=!0),this.range=c?[c.start,c.end]:null,this.setSchema(),this.anchors._cstAliases=[],fet(this,a),this.anchors.resolveNodes(),this.options.prettyErrors){var d=uo(this.errors),h;try{for(d.s();!(h=d.n()).done;){var g=h.value;g instanceof bI&&g.makePretty()}}catch(C){d.e(C)}finally{d.f()}var m=uo(this.warnings),f;try{for(m.s();!(f=m.n()).done;){var b=f.value;b instanceof bI&&b.makePretty()}}catch(C){m.e(C)}finally{m.f()}}return this}},{key:"listNonDefaultTags",value:function(){return met(this.contents).filter(function(t){return t.indexOf(PL.defaultPrefix)!==0})}},{key:"setTagPrefix",value:function(t,i){if(t[0]!=="!"||t[t.length-1]!=="!")throw new Error("Handle must start and end with !");if(i){var r=this.tagPrefixes.find(function(o){return o.handle===t});r?r.prefix=i:this.tagPrefixes.push({handle:t,prefix:i})}else this.tagPrefixes=this.tagPrefixes.filter(function(o){return o.handle!==t})}},{key:"toJSON",value:function(t,i){var r=this,o=this.options,s=o.keepBlobsInJSON,a=o.mapAsMap,l=o.maxAliasCount,u=s&&(typeof t!="string"||!(this.contents instanceof Wr)),c={doc:this,indentStep:" ",keep:u,mapAsMap:u&&!!a,maxAliasCount:l,stringify:a9},d=Object.keys(this.anchors.map);d.length>0&&(c.anchors=new Map(d.map(function(v){return[r.anchors.map[v],{alias:[],aliasCount:0,count:1}]})));var h=lh(this.contents,t,c);if(typeof i=="function"&&c.anchors){var g=uo(c.anchors.values()),m;try{for(g.s();!(m=g.n()).done;){var f=m.value,b=f.count,C=f.res;i(C,b)}}catch(v){g.e(v)}finally{g.f()}}return h}},{key:"toString",value:function(){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");var t=this.options.indent;if(!Number.isInteger(t)||t<=0){var i=JSON.stringify(t);throw new Error('"indent" option must be a positive integer, not '.concat(i))}this.setSchema();var r=[],o=!1;if(this.version){var s="%YAML 1.2";this.schema.name==="yaml-1.1"&&(this.version==="1.0"?s="%YAML:1.0":this.version==="1.1"&&(s="%YAML 1.1")),r.push(s),o=!0}var a=this.listNonDefaultTags();this.tagPrefixes.forEach(function(g){var m=g.handle,f=g.prefix;a.some(function(b){return b.indexOf(f)===0})&&(r.push("%TAG ".concat(m," ").concat(f)),o=!0)}),(o||this.directivesEndMarker)&&r.push("---"),this.commentBefore&&((o||!this.directivesEndMarker)&&r.unshift(""),r.unshift(this.commentBefore.replace(/^/gm,"#")));var l={anchors:Object.create(null),doc:this,indent:"",indentStep:" ".repeat(t),stringify:a9},u=!1,c=null;if(this.contents){this.contents instanceof _u&&(this.contents.spaceBefore&&(o||this.directivesEndMarker)&&r.push(""),this.contents.commentBefore&&r.push(this.contents.commentBefore.replace(/^/gm,"#")),l.forceBlockIndent=!!this.comment,c=this.contents.comment);var d=c?null:function(){return u=!0},h=a9(this.contents,l,function(){return c=null},d);r.push(vI(h,"",c))}else this.contents!==void 0&&r.push(a9(this.contents,l));return this.comment&&((!u||c)&&r[r.length-1]!==""&&r.push(""),r.push(this.comment.replace(/^/gm,"#"))),r.join(` +`)+` +`}}]),n}();Il(SB,"defaults",Lhe);function vet(n){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,t=arguments.length>2?arguments[2]:void 0;t===void 0&&typeof e=="string"&&(t=e,e=!0);var i=Object.assign({},SB.defaults[s9.version],s9),r=new PL(i);return r.createNode(n,e,t)}var l9=function(n){ao(t,n);var e=lo(t);function t(i){return cr(this,t),e.call(this,Object.assign({},s9,i))}return t}(SB);function yet(n,e){var t=[],i,r=uo(mB(n)),o;try{for(r.s();!(o=r.n()).done;){var s=o.value,a=new l9(e);a.parse(s,i),t.push(a),i=a}}catch(l){r.e(l)}finally{r.f()}return t}function _he(n,e){var t=mB(n),i=new l9(e).parse(t[0]);if(t.length>1){var r="Source contains multiple documents; please use YAML.parseAllDocuments()";i.errors.unshift(new Fi(t[1],r))}return i}function Iet(n,e){var t=_he(n,e);if(t.warnings.forEach(function(i){return dhe(i)}),t.errors.length>0)throw t.errors[0];return t.toJSON()}function wet(n,e){var t=new l9(e);return t.contents=n,String(t)}var xet={createNode:vet,defaultOptions:s9,Document:l9,parse:Iet,parseAllDocuments:yet,parseCST:mB,parseDocument:_he,scalarOptions:uet,stringify:wet},Dhe=lee(Object.freeze(Object.defineProperty({__proto__:null,YAML:xet},Symbol.toStringTag,{value:"Module"}))).YAML;function Let(n){return n.replace(/\~/g,"~0").replace(/\//g,"~1")}function Ahe(n){return n.replace(/\~1/g,"/").replace(/~0/g,"~")}function Fet(n,e,t){if(typeof n>"u")return!1;if(!e||typeof e!="string"||e==="#")return typeof t<"u"?t:n;if(e.indexOf("#")>=0){let r=e.split("#");if(r[0])return!1;e=r[1],e=decodeURIComponent(e.slice(1).split("+").join(" "))}e.startsWith("/")&&(e=e.slice(1));let i=e.split("/");for(let r=0;r0?i[r-1]:"",s!=-1||n&&n.hasOwnProperty(i[r]))if(s>=0)o&&(n[s]=t),n=n[s];else{if(s===-2)return o?(Array.isArray(n)&&n.push(t),t):void 0;o&&(n[i[r]]=t),n=n[i[r]]}else if(typeof t<"u"&&typeof n=="object"&&!Array.isArray(n))n[i[r]]=o?t:i[r+1]==="0"||i[r+1]==="-"?[]:{},n=n[i[r]];else return!1}return n}var u9={jptr:Fet,jpescape:Let,jpunescape:Ahe};function _et(n,e){return e==="$ref"&&!!n&&typeof n[e]=="string"}var xB={isRef:_et};function Det(n){return n}function Aet(n){return JSON.parse(JSON.stringify(n))}function Net(n){let e={};for(let t in n)n.hasOwnProperty(t)&&(e[t]=n[t]);return e}function Nhe(n){let e=Array.isArray(n)?[]:{};for(let t in n)(n.hasOwnProperty(t)||Array.isArray(n))&&(e[t]=typeof n[t]=="object"?Nhe(n[t]):n[t]);return e}function ket(n){return Object.assign({},n)}function khe(n,e){if(e||(e=new WeakMap),Object(n)!==n||n instanceof Function)return n;if(e.has(n))return e.get(n);try{var t=new n.constructor}catch{t=Object.create(Object.getPrototypeOf(n))}return e.set(n,t),Object.assign(t,...Object.keys(n).map(i=>({[i]:khe(n[i],e)})))}var c9={nop:Det,clone:Aet,shallowClone:Net,deepClone:Nhe,fastClone:ket,circularClone:khe};const Met=u9.jpescape;function Zet(){return{path:"#",depth:0,pkey:"",parent:{},payload:{},seen:new WeakMap,identity:!1,identityDetection:!1}}function Mhe(n,e,t){if(e||(e={depth:0}),e.depth||(e=Object.assign({},Zet(),e)),typeof n!="object")return;let i=e.path;for(let r in n){if(e.key=r,e.path=e.path+"/"+encodeURIComponent(Met(r)),e.identityPath=e.seen.get(n[r]),e.identity=typeof e.identityPath<"u",n.hasOwnProperty(r)&&t(n,r,e),typeof n[r]=="object"&&!e.identity){e.identityDetection&&!Array.isArray(n[r])&&n[r]!==null&&e.seen.set(n[r],e.path);let o={};o.parent=n,o.path=e.path,o.depth=e.depth?e.depth+1:1,o.pkey=r,o.payload=e.payload,o.seen=e.seen,o.identity=!1,o.identityDetection=e.identityDetection,Mhe(n[r],o,t)}e.path=i}}var LB={recurse:Mhe};const Tet=LB.recurse,Zhe=c9.shallowClone,OL=u9.jptr,Eet=xB.isRef;var Wet=function(n){return n&&n.verbose?{warn:function(){var e=Array.prototype.slice.call(arguments)}}:{warn:function(){}}};function The(n,e,t){t||(t={}),t.cache||(t.cache={}),t.state||(t.state={}),t.state.identityDetection=!0,t.depth=t.depth?t.depth+1:1;let i=t.depth>1?n:Zhe(n),r={data:i},o=t.depth>1?e:Zhe(e);t.master||(t.master=i);let s=Wet(t),a=1;for(;a>0;)a=0,Tet(r,t.state,function(l,u,c){if(Eet(l,u)){let d=l[u];if(a++,t.cache[d]){let h=t.cache[d];if(h.resolved)s.warn("Patching %s for %s",d,h.path),c.parent[c.pkey]=h.data,t.$ref&&typeof c.parent[c.pkey]=="object"&&c.parent[c.pkey]!==null&&(c.parent[c.pkey][t.$ref]=d);else{if(d===h.path)throw new Error(`Tight circle at ${h.path}`);s.warn("Unresolved ref"),c.parent[c.pkey]=OL(h.source,h.path),c.parent[c.pkey]===!1&&(c.parent[c.pkey]=OL(h.source,h.key)),t.$ref&&typeof c.parent[c.pkey]=="object"&&c.parent[c.pkey]!==null&&(c.parent[t.$ref]=d)}}else{let h={};h.path=c.path.split("/$ref")[0],h.key=d,s.warn("Dereffing %s at %s",d,h.path),h.source=o,h.data=OL(h.source,h.key),h.data===!1&&(h.data=OL(t.master,h.key),h.source=t.master),h.data===!1&&s.warn("Missing $ref target",h.key),t.cache[d]=h,h.data=c.parent[c.pkey]=The(OL(h.source,h.key),h.source,t),t.$ref&&typeof c.parent[c.pkey]=="object"&&c.parent[c.pkey]!==null&&(c.parent[c.pkey][t.$ref]=d),h.resolved=!0}}});return r.data}var Ret={dereference:The},Get=BL;BL.default=BL,BL.stable=Rhe,BL.stableStringify=Rhe;var d9="[...]",Ehe="[Circular]",uC=[],cC=[];function Whe(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function BL(n,e,t,i){typeof i>"u"&&(i=Whe()),FB(n,"",0,[],void 0,0,i);var r;try{cC.length===0?r=JSON.stringify(n,e,t):r=JSON.stringify(n,Ghe(e),t)}catch{return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;uC.length!==0;){var o=uC.pop();o.length===4?Object.defineProperty(o[0],o[1],o[3]):o[0][o[1]]=o[2]}}return r}function wI(n,e,t,i){var r=Object.getOwnPropertyDescriptor(i,t);r.get!==void 0?r.configurable?(Object.defineProperty(i,t,{value:n}),uC.push([i,t,e,r])):cC.push([e,t,n]):(i[t]=n,uC.push([i,t,e]))}function FB(n,e,t,i,r,o,s){o+=1;var a;if(typeof n=="object"&&n!==null){for(a=0;as.depthLimit){wI(d9,n,e,r);return}if(typeof s.edgesLimit<"u"&&t+1>s.edgesLimit){wI(d9,n,e,r);return}if(i.push(n),Array.isArray(n))for(a=0;ae?1:0}function Rhe(n,e,t,i){typeof i>"u"&&(i=Whe());var r=_B(n,"",0,[],void 0,0,i)||n,o;try{cC.length===0?o=JSON.stringify(r,e,t):o=JSON.stringify(r,Ghe(e),t)}catch{return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;uC.length!==0;){var s=uC.pop();s.length===4?Object.defineProperty(s[0],s[1],s[3]):s[0][s[1]]=s[2]}}return o}function _B(n,e,t,i,r,o,s){o+=1;var a;if(typeof n=="object"&&n!==null){for(a=0;as.depthLimit){wI(d9,n,e,r);return}if(typeof s.edgesLimit<"u"&&t+1>s.edgesLimit){wI(d9,n,e,r);return}if(i.push(n),Array.isArray(n))for(a=0;a0)for(var i=0;i=20.0.0",npm_config_node_gyp:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",XPC_SERVICE_NAME:"0",npm_package_version:"2.0.1",VSCODE_INJECTION:"1",HOME:"/Users/alexander",SHLVL:"2",VSCODE_GIT_ASKPASS_MAIN:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js",GOROOT:"/Users/alexander/.gvm/gos/go1.21.6",DYLD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",gvm_go_name:"go1.21.6",LOGNAME:"alexander",LESS:"-R",VSCODE_PATH_PREFIX:"/Users/alexander/.gvm/gos/go1.20/bin:",npm_config_cache:"/Users/alexander/.npm",GVM_OVERLAY_PREFIX:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay",npm_lifecycle_script:"tsc && vite build --config vite.package.config.ts --mode package",LC_CTYPE:"zh_CN.UTF-8",VSCODE_GIT_IPC_HANDLE:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/vscode-git-79a18f10f2.sock",NVM_BIN:"/Users/alexander/.nvm/versions/node/v16.10.0/bin",PKG_CONFIG_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:",GOPATH:"/Users/alexander/mygo",npm_config_user_agent:"npm/7.24.0 node/v16.10.0 darwin x64 workspaces/false",GIT_ASKPASS:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh",VSCODE_GIT_ASKPASS_NODE:"/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin)",GVM_PATH_BACKUP:"/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",COLORTERM:"truecolor",npm_config_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",npm_node_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NODE_ENV:"production"};const Vhe=Get,Pet=Xet.NODE_DISABLE_COLORS?{red:"",yellow:"",green:"",normal:""}:{red:"\x1B[31m",yellow:"\x1B[33;1m",green:"\x1B[32m",normal:"\x1B[0m"};function Oet(n,e,t){return t.indexOf(n)===e}function Bet(n){return new Set(n).size!==n.length}function zet(n){return new Set(n).size<=1}function Yet(n,e){function t(i,r){return Vhe.stringify(i)===Vhe.stringify(Object.assign({},i,r))}return t(n,e)&&t(e,n)}function Het(n){let e=[];for(let t of n)e.find(function(r,o,s){return Yet(r,t)})||e.push(t);return e}function Uet(n){return n.length===Het(n).length}function Jet(n){return n.find(function(e,t,i){return n.indexOf(e)1,g===!1){if(h.parent[h.pkey]={},o.fatal){let m=new Error("Fragment $ref resolution failed "+c[d]);if(o.promise)o.promise.reject(m);else throw m}}else u++,h.parent[h.pkey]=g,l[c[d]]=h.path.replace("/%24ref","")}else if(!c.$fixed){let g=(s+"/"+l[c[d]]).split("/#/").join("/");h.parent[h.pkey]={$ref:g,"x-miro":c[d],$fixed:!0},o.verbose>1,u++}}else if(a.protocol){let g=dC.resolve(r,c[d]).toString();o.verbose>1,c["x-miro"]=c[d],o.externalRefs[c[d]]&&(o.externalRefs[g]||(o.externalRefs[g]=o.externalRefs[c[d]]),o.externalRefs[g].failed=o.externalRefs[c[d]].failed),c[d]=g}else if(!c["x-miro"]){let g=dC.resolve(r,c[d]).toString(),m=!1;o.externalRefs[c[d]]&&(m=o.externalRefs[c[d]].failed),m||(o.verbose>1,c["x-miro"]=c[d],c[d]=g)}}});return xI(n,{},function(c,d,h){h9(c,d)&&typeof c.$fixed<"u"&&delete c.$fixed}),o.verbose>1,n}function g9(n,e){if(!e.filters||!e.filters.length)return n;for(let t of e.filters)n=t(n,e);return n}function ott(n,e){return n&&n.length>2?n:e&&e.length>2?e:"file:"}function stt(n,e,t,i){var r=dC.parse(t.source),o=t.source.split("\\").join("/").split("/");o.pop()||o.pop();let a="",l=e.split("#");l.length>1&&(a="#"+l[1],e=l[0]),o=o.join("/");let u=dC.parse(e),c=ott(u.protocol,r.protocol),d;if(c==="file:"?d=Ohe.resolve(o?o+"/":"",e):d=dC.resolve(o?o+"/":"",e),t.cache[d]){t.verbose;let h=sb(t.cache[d]),g=t.externalRef=h;if(a&&(g=SI(g,a),g===!1&&(g={},t.fatal))){let m=new Error("Cached $ref resolution failed "+d+a);if(t.promise)t.promise.reject(m);else throw m}return g=DB(g,h,e,a,d,t),g=g9(g,t),i(sb(g),d,t),Promise.resolve(g)}if(t.verbose,t.handlers&&t.handlers[c])return t.handlers[c](o,e,a,t).then(function(h){return t.externalRef=h,h=g9(h,t),t.cache[d]=h,i(h,d,t),h}).catch(function(h){throw t.verbose,h});if(c&&c.startsWith("http")){const h=Object.assign({},t.fetchOptions,{agent:t.agent});return t.fetch(d,h).then(function(g){if(g.status!==200){if(t.ignoreIOErrors)return t.verbose,t.externalRefs[e].failed=!0,'{"$ref":"'+e+'"}';throw new Error(`Received status code ${g.status}: ${d}`)}return g.text()}).then(function(g){try{let m=Bhe.parse(g,{schema:"core",prettyErrors:!0});if(g=t.externalRef=m,t.cache[d]=sb(g),a&&(g=SI(g,a),g===!1&&(g={},t.fatal))){let f=new Error("Remote $ref resolution failed "+d+a);if(t.promise)t.promise.reject(f);else throw f}g=DB(g,m,e,a,d,t),g=g9(g,t)}catch(m){if(t.verbose,t.promise&&t.fatal)t.promise.reject(m);else throw m}return i(g,d,t),g}).catch(function(g){if(t.verbose,t.cache[d]={},t.promise&&t.fatal)t.promise.reject(g);else throw g})}else{const h='{"$ref":"'+e+'"}';return rtt(d,t.encoding||"utf8",t,e,h).then(function(g){try{let m=Bhe.parse(g,{schema:"core",prettyErrors:!0});if(g=t.externalRef=m,t.cache[d]=sb(g),a&&(g=SI(g,a),g===!1&&(g={},t.fatal))){let f=new Error("File $ref resolution failed "+d+a);if(t.promise)t.promise.reject(f);else throw f}g=DB(g,m,e,a,d,t),g=g9(g,t)}catch(m){if(t.verbose,t.promise&&t.fatal)t.promise.reject(m);else throw m}return i(g,d,t),g}).catch(function(g){if(t.verbose,t.promise&&t.fatal)t.promise.reject(g);else throw g})}}function att(n){return new Promise(function(e,t){function i(o,s,a){if(o[s]&&h9(o[s],"$ref")){let l=o[s].$ref;if(!l.startsWith("#")){let u="";if(!r[l]){let c=Object.keys(r).find(function(d,h,g){return l.startsWith(d+"/")});c&&(n.verbose,u="/"+(l.split("#")[1]||"").replace(c.split("#")[1]||""),u=u.split("/undefined").join(""),l=c)}if(r[l]||(r[l]={resolved:!1,paths:[],extras:{},description:o[s].description}),r[l].resolved){if(!r[l].failed)if(n.rewriteRefs){let c=r[l].resolvedAt;n.verbose>1,o[s]["x-miro"]=l,o[s].$ref=c+u}else o[s]=sb(r[l].data)}else r[l].paths.push(a.path),r[l].extras[a.path]=u}}}let r=n.externalRefs;if(n.resolver.depth>0&&n.source===n.resolver.base)return e(r);xI(n.openapi.definitions,{identityDetection:!0,path:"#/definitions"},i),xI(n.openapi.components,{identityDetection:!0,path:"#/components"},i),xI(n.openapi,{identityDetection:!0},i),e(r)})}function zhe(n){return new Promise(function(e,t){att(n).then(function(r){for(let o in r)if(!r[o].resolved){let s=n.resolver.depth;s>0&&s++,n.resolver.actions[s].push(function(){return stt(n.openapi,o,n,function(a,l,u){if(!r[o].resolved){let h={};h.context=r[o],h.$ref=o,h.original=sb(a),h.updated=a,h.source=l,u.externals.push(h),r[o].resolved=!0}let c=Object.assign({},u,{source:"",resolver:{actions:u.resolver.actions,depth:u.resolver.actions.length-1,base:u.resolver.base}});u.patch&&r[o].description&&!a.description&&typeof a=="object"&&(a.description=r[o].description),r[o].data=a;let d=itt(r[o].paths);d=d.sort(function(h,g){const m=h.startsWith("#/components/")||h.startsWith("#/definitions/"),f=g.startsWith("#/components/")||g.startsWith("#/definitions/");return m&&!f?-1:f&&!m?1:0});for(let h of d)if(r[o].resolvedAt&&h!==r[o].resolvedAt&&h.indexOf("x-ms-examples/")<0)u.verbose>1,SI(u.openapi,h,{$ref:r[o].resolvedAt+r[o].extras[h],"x-miro":o+r[o].extras[h]});else{r[o].resolvedAt||(r[o].resolvedAt=h),u.verbose>1;let g=sb(a);SI(u.openapi,h,g)}u.resolver.actions[c.resolver.depth].length===0&&u.resolver.actions[c.resolver.depth].push(function(){return zhe(c)})})})}}).catch(function(r){n.verbose,t(r)});let i={options:n};i.actions=n.resolver.actions[n.resolver.depth],e(i)})}const ltt=n=>n.reduce((e,t)=>e.then(i=>t().then(Array.prototype.concat.bind(i))),Promise.resolve([]));function AB(n,e,t){n.resolver.actions.push([]),zhe(n).then(function(i){ltt(i.actions).then(function(){if(n.resolver.depth>=n.resolver.actions.length)return e(!0);n.resolver.depth++,n.resolver.actions[n.resolver.depth].length?setTimeout(function(){AB(i.options,e,t)},0):(n.verbose>1,n.resolveInternal&&(n.verbose>1,n.openapi=ntt(n.openapi,n.original,{verbose:n.verbose-1}),n.verbose>1),xI(n.openapi,{},function(r,o,s){h9(r,o)&&(n.preserveMiro||delete r["x-miro"])}),e(n))}).catch(function(r){n.verbose,t(r)})}).catch(function(i){n.verbose,t(i)})}function Yhe(n){if(n.cache||(n.cache={}),n.fetch||(n.fetch=ttt),n.source){let e=dC.parse(n.source);(!e.protocol||e.protocol.length<=2)&&(n.source=Ohe.resolve(n.source))}n.externals=[],n.externalRefs={},n.rewriteRefs=!0,n.resolver={},n.resolver.depth=0,n.resolver.base=n.source,n.resolver.actions=[[]]}function utt(n){return Yhe(n),new Promise(function(e,t){n.resolve?AB(n,e,t):e(n)})}function ctt(n,e,t){return t||(t={}),t.openapi=n,t.source=e,t.resolve=!0,Yhe(t),new Promise(function(i,r){AB(t,i,r)})}var dtt={optionalResolve:utt,resolve:ctt};function Hhe(){return{depth:0,seen:new WeakMap,top:!0,combine:!1,allowRefSiblings:!1}}function vg(n,e,t,i){if(typeof t.depth>"u"&&(t=Hhe()),n===null||typeof n>"u")return n;if(typeof n.$ref<"u"){let r={$ref:n.$ref};return t.allowRefSiblings&&n.description&&(r.description=n.description),i(r,e,t),r}if(t.combine&&(n.allOf&&Array.isArray(n.allOf)&&n.allOf.length===1&&(n=Object.assign({},n.allOf[0],n),delete n.allOf),n.anyOf&&Array.isArray(n.anyOf)&&n.anyOf.length===1&&(n=Object.assign({},n.anyOf[0],n),delete n.anyOf),n.oneOf&&Array.isArray(n.oneOf)&&n.oneOf.length===1&&(n=Object.assign({},n.oneOf[0],n),delete n.oneOf)),i(n,e,t),t.seen.has(n))return n;if(typeof n=="object"&&n!==null&&t.seen.set(n,!0),t.top=!1,t.depth++,typeof n.items<"u"&&(t.property="items",vg(n.items,n,t,i)),n.additionalItems&&typeof n.additionalItems=="object"&&(t.property="additionalItems",vg(n.additionalItems,n,t,i)),n.additionalProperties&&typeof n.additionalProperties=="object"&&(t.property="additionalProperties",vg(n.additionalProperties,n,t,i)),n.properties)for(let r in n.properties){let o=n.properties[r];t.property="properties/"+r,vg(o,n,t,i)}if(n.patternProperties)for(let r in n.patternProperties){let o=n.patternProperties[r];t.property="patternProperties/"+r,vg(o,n,t,i)}if(n.allOf)for(let r in n.allOf){let o=n.allOf[r];t.property="allOf/"+r,vg(o,n,t,i)}if(n.anyOf)for(let r in n.anyOf){let o=n.anyOf[r];t.property="anyOf/"+r,vg(o,n,t,i)}if(n.oneOf)for(let r in n.oneOf){let o=n.oneOf[r];t.property="oneOf/"+r,vg(o,n,t,i)}return n.not&&(t.property="not",vg(n.not,n,t,i)),t.depth--,n}var htt={getDefaultState:Hhe,walkSchema:vg},gtt={statusCodes:Object.assign({},{default:"Default response","1XX":"Informational",103:"Early hints","2XX":"Successful","3XX":"Redirection","4XX":"Client Error","5XX":"Server Error","7XX":"Developer Error"},pI.STATUS_CODES)};const mtt={name:"swagger2openapi",version:"7.0.8",description:"Convert Swagger 2.0 definitions to OpenApi 3.0 and validate",main:"index.js",bin:{swagger2openapi:"./swagger2openapi.js","oas-validate":"./oas-validate.js",boast:"./boast.js"},funding:"https://github.com/Mermade/oas-kit?sponsor=1",scripts:{test:"mocha"},browserify:{transform:[["babelify",{presets:["es2015"]}]]},repository:{url:"https://github.com/Mermade/oas-kit.git",type:"git"},bugs:{url:"https://github.com/mermade/oas-kit/issues"},author:"Mike Ralphson ",license:"BSD-3-Clause",dependencies:{"call-me-maybe":"^1.0.1","node-fetch":"^2.6.1","node-fetch-h2":"^2.3.0","node-readfiles":"^0.2.0","oas-kit-common":"^1.0.8","oas-resolver":"^2.5.6","oas-schema-walker":"^1.1.5","oas-validator":"^5.0.8",reftools:"^1.1.9",yaml:"^1.10.0",yargs:"^17.0.1"},keywords:["swagger","openapi","openapi2","openapi3","converter","conversion","validator","validation","resolver","lint","linter"],gitHead:"b1bba3fc5007e96a991bf2a015cf0534ac36b88b"},ftt=pI,ptt=pI,zL=dqe,btt=Nde,Uhe=Dhe,lf=u9,YL=lf.jptr,Ctt=xB.isRef,yg=c9.clone,Jhe=c9.circularClone,m9=LB.recurse,Khe=dtt,vtt=htt,Rr=Phe,ytt=gtt.statusCodes,Itt=mtt.version,jhe="3.0.0";let f9;class Au extends Error{constructor(e){super(e),this.name="S2OError"}}function Sl(n,e){let t=new Au(n);if(t.options=e,e.promise)e.promise.reject(t);else throw t}function Ba(n,e,t){t.warnOnly?e[t.warnProperty||"x-s2o-warning"]=n:Sl(n,t)}function wtt(n,e,t){if(n.nullable&&t.patches++,n.discriminator&&typeof n.discriminator=="string"&&(n.discriminator={propertyName:n.discriminator}),n.items&&Array.isArray(n.items)&&(n.items.length===0?n.items={}:n.items.length===1?n.items=n.items[0]:n.items={anyOf:n.items}),n.type&&Array.isArray(n.type))if(t.patch){if(t.patches++,n.type.length===0)delete n.type;else{n.oneOf||(n.oneOf=[]);for(let i of n.type){let r={};if(i==="null")n.nullable=!0;else{r.type=i;for(let o of Rr.arrayProperties)typeof n.prop<"u"&&(r[o]=n[o],delete n[o])}r.type&&n.oneOf.push(r)}delete n.type,n.oneOf.length===0?delete n.oneOf:n.oneOf.length<2&&(n.type=n.oneOf[0].type,Object.keys(n.oneOf[0]).length>1&&Ba("Lost properties from oneOf",n,t),delete n.oneOf)}n.type&&Array.isArray(n.type)&&n.type.length===1&&(n.type=n.type[0])}else Sl("(Patchable) schema type must not be an array",t);n.type&&n.type==="null"&&(delete n.type,n.nullable=!0),n.type==="array"&&!n.items&&(n.items={}),n.type==="file"&&(n.type="string",n.format="binary"),typeof n.required=="boolean"&&(n.required&&n.name&&(typeof e.required>"u"&&(e.required=[]),Array.isArray(e.required)&&e.required.push(n.name)),delete n.required),n.xml&&typeof n.xml.namespace=="string"&&(n.xml.namespace||delete n.xml.namespace),typeof n.allowEmptyValue<"u"&&(t.patches++,delete n.allowEmptyValue)}function Stt(n,e){if(n["x-required"]&&Array.isArray(n["x-required"])&&(n.required||(n.required=[]),n.required=n.required.concat(n["x-required"]),delete n["x-required"]),n["x-anyOf"]&&(n.anyOf=n["x-anyOf"],delete n["x-anyOf"]),n["x-oneOf"]&&(n.oneOf=n["x-oneOf"],delete n["x-oneOf"]),n["x-not"]&&(n.not=n["x-not"],delete n["x-not"]),typeof n["x-nullable"]=="boolean"&&(n.nullable=n["x-nullable"],delete n["x-nullable"]),typeof n["x-discriminator"]=="object"&&typeof n["x-discriminator"].propertyName=="string"){n.discriminator=n["x-discriminator"],delete n["x-discriminator"];for(let t in n.discriminator.mapping){let i=n.discriminator.mapping[t];i.startsWith("#/definitions/")&&(n.discriminator.mapping[t]=i.replace("#/definitions/","#/components/schemas/"))}}}function HL(n,e){vtt.walkSchema(n,{},{},function(t,i,r){Stt(t),wtt(t,i,e)})}function xtt(n){return n.indexOf("#")>=0?n=n.split("#")[1].split("/").pop():n=n.split("/").pop().split(".")[0],encodeURIComponent(Rr.sanitise(n))}function Ltt(n,e,t){let i=t.payload.options;if(Ctt(n,e)){if(!n[e].startsWith("#/components/")){if(n[e]==="#/consumes")delete n[e],t.parent[t.pkey]=yg(i.openapi.consumes);else if(n[e]==="#/produces")delete n[e],t.parent[t.pkey]=yg(i.openapi.produces);else if(n[e].startsWith("#/definitions/")){let r=n[e].replace("#/definitions/","").split("/");const o=lf.jpunescape(r[0]);let s=f9.schemas[decodeURIComponent(o)];s?r[0]=s:Ba("Could not resolve reference "+n[e],n,i),n[e]="#/components/schemas/"+r.join("/")}else if(n[e].startsWith("#/parameters/"))n[e]="#/components/parameters/"+Rr.sanitise(n[e].replace("#/parameters/",""));else if(n[e].startsWith("#/responses/"))n[e]="#/components/responses/"+Rr.sanitise(n[e].replace("#/responses/",""));else if(n[e].startsWith("#")){let r=yg(lf.jptr(i.openapi,n[e]));if(r===!1)Ba("direct $ref not found "+n[e],n,i);else if(i.refmap[n[e]])n[e]=i.refmap[n[e]];else{let o=n[e];o=o.replace("/properties/headers/",""),o=o.replace("/properties/responses/",""),o=o.replace("/properties/parameters/",""),o=o.replace("/properties/schemas/","");let s="schemas",a=o.lastIndexOf("/schema");if(s=o.indexOf("/headers/")>a?"headers":o.indexOf("/responses/")>a?"responses":o.indexOf("/example")>a?"examples":o.indexOf("/x-")>a?"extensions":o.indexOf("/parameters/")>a?"parameters":"schemas",s==="schemas"&&HL(r,i),s!=="responses"&&s!=="extensions"){let l=s.substr(0,s.length-1);l==="parameter"&&r.name&&r.name===Rr.sanitise(r.name)&&(l=encodeURIComponent(r.name));let u=1;for(n["x-miro"]&&(l=xtt(n["x-miro"]),u="");lf.jptr(i.openapi,"#/components/"+s+"/"+l+u);)u=u===""?2:++u;let c="#/components/"+s+"/"+l+u,d="";s==="examples"&&(r={value:r},d="/value"),lf.jptr(i.openapi,c,r),i.refmap[n[e]]=c+d,n[e]=c+d}}}}if(delete n["x-miro"],Object.keys(n).length>1){const r=n[e],o=t.path.indexOf("/schema")>=0;i.refSiblings==="preserve"||(o&&i.refSiblings==="allOf"?(delete n.$ref,t.parent[t.pkey]={allOf:[{$ref:r},n]}):t.parent[t.pkey]={$ref:r})}}if(e==="x-ms-odata"&&typeof n[e]=="string"&&n[e].startsWith("#/")){let r=n[e].replace("#/definitions/","").replace("#/components/schemas/","").split("/"),o=f9.schemas[decodeURIComponent(r[0])];o?r[0]=o:Ba("Could not resolve reference "+n[e],n,i),n[e]="#/components/schemas/"+r.join("/")}}function Ftt(n,e){for(let t in e.refmap)lf.jptr(n,t,{$ref:e.refmap[t]})}function Qhe(n){for(let e in n)for(let t in n[e]){let i=Rr.sanitise(t);t!==i&&(n[e][i]=n[e][t],delete n[e][t])}}function _tt(n,e){if(n.type==="basic"&&(n.type="http",n.scheme="basic"),n.type==="oauth2"){let t={},i=n.flow;n.flow==="application"&&(i="clientCredentials"),n.flow==="accessCode"&&(i="authorizationCode"),typeof n.authorizationUrl<"u"&&(t.authorizationUrl=n.authorizationUrl.split("?")[0].trim()||"/"),typeof n.tokenUrl=="string"&&(t.tokenUrl=n.tokenUrl.split("?")[0].trim()||"/"),t.scopes=n.scopes||{},n.flows={},n.flows[i]=t,delete n.flow,delete n.authorizationUrl,delete n.tokenUrl,delete n.scopes,typeof n.name<"u"&&(e.patch?(e.patches++,delete n.name):Sl("(Patchable) oauth2 securitySchemes should not have name property",e))}}function $he(n){return n&&!n["x-s2o-delete"]}function qhe(n,e){if(n.$ref)n.$ref=n.$ref.replace("#/responses/","#/components/responses/");else{n.type&&!n.schema&&(n.schema={}),n.type&&(n.schema.type=n.type),n.items&&n.items.type!=="array"&&(n.items.collectionFormat!==n.collectionFormat&&Ba("Nested collectionFormats are not supported",n,e),delete n.items.collectionFormat),n.type==="array"?(n.collectionFormat==="ssv"?Ba("collectionFormat:ssv is no longer supported for headers",n,e):n.collectionFormat==="pipes"?Ba("collectionFormat:pipes is no longer supported for headers",n,e):n.collectionFormat==="multi"?n.explode=!0:n.collectionFormat==="tsv"?(Ba("collectionFormat:tsv is no longer supported",n,e),n["x-collectionFormat"]="tsv"):n.style="simple",delete n.collectionFormat):n.collectionFormat&&(e.patch?(e.patches++,delete n.collectionFormat):Sl("(Patchable) collectionFormat is only applicable to header.type array",e)),delete n.type;for(let t of Rr.parameterTypeProperties)typeof n[t]<"u"&&(n.schema[t]=n[t],delete n[t]);for(let t of Rr.arrayProperties)typeof n[t]<"u"&&(n.schema[t]=n[t],delete n[t])}}function ege(n,e){if(n.$ref.indexOf("#/parameters/")>=0){let t=n.$ref.split("#/parameters/");n.$ref=t[0]+"#/components/parameters/"+Rr.sanitise(t[1])}n.$ref.indexOf("#/definitions/")>=0&&Ba("Definition used as parameter",n,e)}function Dtt(n,e){let t={};for(let i of Object.keys(n))t[i]=n[i],i==="parameters"&&(t.requestBody={},e.rbname&&(t[e.rbname]=""));return t.requestBody={},t}function p9(n,e,t,i,r,o,s){let a={},l=!0,u;if(e&&e.consumes&&typeof e.consumes=="string")if(s.patch)s.patches++,e.consumes=[e.consumes];else return Sl("(Patchable) operation.consumes must be an array",s);Array.isArray(o.consumes)||delete o.consumes;let c=((e?e.consumes:null)||o.consumes||[]).filter(Rr.uniqueOnly);if(n&&n.$ref&&typeof n.$ref=="string"){ege(n,s);let d=decodeURIComponent(n.$ref.replace("#/components/parameters/","")),h=!1,g=o.components.parameters[d];if((!g||g["x-s2o-delete"])&&n.$ref.startsWith("#/")&&(n["x-s2o-delete"]=!0,h=!0),h){let m=n.$ref,f=YL(o,n.$ref);!f&&m.startsWith("#/")?Ba("Could not resolve reference "+m,n,s):f&&(n=f)}}if(n&&(n.name||n.in)){typeof n["x-deprecated"]=="boolean"&&(n.deprecated=n["x-deprecated"],delete n["x-deprecated"]),typeof n["x-example"]<"u"&&(n.example=n["x-example"],delete n["x-example"]),n.in!=="body"&&!n.type&&(s.patch?(s.patches++,n.type="string"):Sl("(Patchable) parameter.type is mandatory for non-body parameters",s)),n.type&&typeof n.type=="object"&&n.type.$ref&&(n.type=YL(o,n.type.$ref)),n.type==="file"&&(n["x-s2o-originalType"]=n.type,u=n.type),n.description&&typeof n.description=="object"&&n.description.$ref&&(n.description=YL(o,n.description.$ref)),n.description===null&&delete n.description;let d=n.collectionFormat;if(n.type==="array"&&!d&&(d="csv"),d&&(n.type!=="array"&&(s.patch?(s.patches++,delete n.collectionFormat):Sl("(Patchable) collectionFormat is only applicable to param.type array",s)),d==="csv"&&(n.in==="query"||n.in==="cookie")&&(n.style="form",n.explode=!1),d==="csv"&&(n.in==="path"||n.in==="header")&&(n.style="simple"),d==="ssv"&&(n.in==="query"?n.style="spaceDelimited":Ba("collectionFormat:ssv is no longer supported except for in:query parameters",n,s)),d==="pipes"&&(n.in==="query"?n.style="pipeDelimited":Ba("collectionFormat:pipes is no longer supported except for in:query parameters",n,s)),d==="multi"&&(n.explode=!0),d==="tsv"&&(Ba("collectionFormat:tsv is no longer supported",n,s),n["x-collectionFormat"]="tsv"),delete n.collectionFormat),n.type&&n.type!=="body"&&n.in!=="formData")if(n.items&&n.schema)Ba("parameter has array,items and schema",n,s);else{n.schema&&s.patches++,(!n.schema||typeof n.schema!="object")&&(n.schema={}),n.schema.type=n.type,n.items&&(n.schema.items=n.items,delete n.items,m9(n.schema.items,null,function(h,g,m){g==="collectionFormat"&&typeof h[g]=="string"&&(d&&h[g]!==d&&Ba("Nested collectionFormats are not supported",n,s),delete h[g])}));for(let h of Rr.parameterTypeProperties)typeof n[h]<"u"&&(n.schema[h]=n[h]),delete n[h]}n.schema&&HL(n.schema,s),n["x-ms-skip-url-encoding"]&&n.in==="query"&&(n.allowReserved=!0,delete n["x-ms-skip-url-encoding"])}if(n&&n.in==="formData"){l=!1,a.content={};let d="application/x-www-form-urlencoded";if(c.length&&c.indexOf("multipart/form-data")>=0&&(d="multipart/form-data"),a.content[d]={},n.schema)a.content[d].schema=n.schema,n.schema.$ref&&(a["x-s2o-name"]=decodeURIComponent(n.schema.$ref.replace("#/components/schemas/","")));else{a.content[d].schema={},a.content[d].schema.type="object",a.content[d].schema.properties={},a.content[d].schema.properties[n.name]={};let h=a.content[d].schema,g=a.content[d].schema.properties[n.name];n.description&&(g.description=n.description),n.example&&(g.example=n.example),n.type&&(g.type=n.type);for(let m of Rr.parameterTypeProperties)typeof n[m]<"u"&&(g[m]=n[m]);n.required===!0&&(h.required||(h.required=[]),h.required.push(n.name),a.required=!0),typeof n.default<"u"&&(g.default=n.default),g.properties&&(g.properties=n.properties),n.allOf&&(g.allOf=n.allOf),n.type==="array"&&n.items&&(g.items=n.items,g.items.collectionFormat&&delete g.items.collectionFormat),(u==="file"||n["x-s2o-originalType"]==="file")&&(g.type="string",g.format="binary"),NB(n,g)}}else n&&n.type==="file"&&(n.required&&(a.required=n.required),a.content={},a.content["application/octet-stream"]={},a.content["application/octet-stream"].schema={},a.content["application/octet-stream"].schema.type="string",a.content["application/octet-stream"].schema.format="binary",NB(n,a));if(n&&n.in==="body"){a.content={},n.name&&(a["x-s2o-name"]=(e&&e.operationId?Rr.sanitiseAll(e.operationId):"")+("_"+n.name).toCamelCase()),n.description&&(a.description=n.description),n.required&&(a.required=n.required),e&&s.rbname&&n.name&&(e[s.rbname]=n.name),n.schema&&n.schema.$ref?a["x-s2o-name"]=decodeURIComponent(n.schema.$ref.replace("#/components/schemas/","")):n.schema&&n.schema.type==="array"&&n.schema.items&&n.schema.items.$ref&&(a["x-s2o-name"]=decodeURIComponent(n.schema.items.$ref.replace("#/components/schemas/",""))+"Array"),c.length||c.push("application/json");for(let d of c)a.content[d]={},a.content[d].schema=yg(n.schema||{}),HL(a.content[d].schema,s);NB(n,a)}if(Object.keys(a).length>0&&(n["x-s2o-delete"]=!0,e))if(e.requestBody&&l){e.requestBody["x-s2o-overloaded"]=!0;let d=e.operationId||r;Ba("Operation "+d+" has multiple requestBodies",e,s)}else e.requestBody||(e=t[i]=Dtt(e,s)),e.requestBody.content&&e.requestBody.content["multipart/form-data"]&&e.requestBody.content["multipart/form-data"].schema&&e.requestBody.content["multipart/form-data"].schema.properties&&a.content["multipart/form-data"]&&a.content["multipart/form-data"].schema&&a.content["multipart/form-data"].schema.properties?(e.requestBody.content["multipart/form-data"].schema.properties=Object.assign(e.requestBody.content["multipart/form-data"].schema.properties,a.content["multipart/form-data"].schema.properties),e.requestBody.content["multipart/form-data"].schema.required=(e.requestBody.content["multipart/form-data"].schema.required||[]).concat(a.content["multipart/form-data"].schema.required||[]),e.requestBody.content["multipart/form-data"].schema.required.length||delete e.requestBody.content["multipart/form-data"].schema.required):e.requestBody.content&&e.requestBody.content["application/x-www-form-urlencoded"]&&e.requestBody.content["application/x-www-form-urlencoded"].schema&&e.requestBody.content["application/x-www-form-urlencoded"].schema.properties&&a.content["application/x-www-form-urlencoded"]&&a.content["application/x-www-form-urlencoded"].schema&&a.content["application/x-www-form-urlencoded"].schema.properties?(e.requestBody.content["application/x-www-form-urlencoded"].schema.properties=Object.assign(e.requestBody.content["application/x-www-form-urlencoded"].schema.properties,a.content["application/x-www-form-urlencoded"].schema.properties),e.requestBody.content["application/x-www-form-urlencoded"].schema.required=(e.requestBody.content["application/x-www-form-urlencoded"].schema.required||[]).concat(a.content["application/x-www-form-urlencoded"].schema.required||[]),e.requestBody.content["application/x-www-form-urlencoded"].schema.required.length||delete e.requestBody.content["application/x-www-form-urlencoded"].schema.required):(e.requestBody=Object.assign(e.requestBody,a),e.requestBody["x-s2o-name"]||(e.requestBody.schema&&e.requestBody.schema.$ref?e.requestBody["x-s2o-name"]=decodeURIComponent(e.requestBody.schema.$ref.replace("#/components/schemas/","")).split("/").join(""):e.operationId&&(e.requestBody["x-s2o-name"]=Rr.sanitiseAll(e.operationId))));if(n&&!n["x-s2o-delete"]){delete n.type;for(let d of Rr.parameterTypeProperties)delete n[d];n.in==="path"&&(typeof n.required>"u"||n.required!==!0)&&(s.patch?(s.patches++,n.required=!0):Sl("(Patchable) path parameters must be required:true ["+n.name+" in "+r+"]",s))}return e}function NB(n,e){for(let t in n)t.startsWith("x-")&&!t.startsWith("x-s2o")&&(e[t]=n[t])}function tge(n,e,t,i,r){if(!n)return!1;if(n.$ref&&typeof n.$ref=="string")n.$ref.indexOf("#/definitions/")>=0?Ba("definition used as response: "+n.$ref,n,r):n.$ref.startsWith("#/responses/")&&(n.$ref="#/components/responses/"+Rr.sanitise(decodeURIComponent(n.$ref.replace("#/responses/",""))));else{if((typeof n.description>"u"||n.description===null||n.description===""&&r.patch)&&(r.patch?typeof n=="object"&&!Array.isArray(n)&&(r.patches++,n.description=ytt[n]||""):Sl("(Patchable) response.description is mandatory",r)),typeof n.schema<"u"){if(HL(n.schema,r),n.schema.$ref&&typeof n.schema.$ref=="string"&&n.schema.$ref.startsWith("#/responses/")&&(n.schema.$ref="#/components/responses/"+Rr.sanitise(decodeURIComponent(n.schema.$ref.replace("#/responses/","")))),t&&t.produces&&typeof t.produces=="string")if(r.patch)r.patches++,t.produces=[t.produces];else return Sl("(Patchable) operation.produces must be an array",r);i.produces&&!Array.isArray(i.produces)&&delete i.produces;let o=((t?t.produces:null)||i.produces||[]).filter(Rr.uniqueOnly);o.length||o.push("*/*"),n.content={};for(let s of o){if(n.content[s]={},n.content[s].schema=yg(n.schema),n.examples&&n.examples[s]){let a={};a.value=n.examples[s],n.content[s].examples={},n.content[s].examples.response=a,delete n.examples[s]}n.content[s].schema.type==="file"&&(n.content[s].schema={type:"string",format:"binary"})}delete n.schema}for(let o in n.examples)n.content||(n.content={}),n.content[o]||(n.content[o]={}),n.content[o].examples={},n.content[o].examples.response={},n.content[o].examples.response.value=n.examples[o];if(delete n.examples,n.headers)for(let o in n.headers)o.toLowerCase()==="status code"?r.patch?(r.patches++,delete n.headers[o]):Sl('(Patchable) "Status Code" is not a valid header',r):qhe(n.headers[o],r)}}function nge(n,e,t,i,r){for(let o in n){let s=n[o];s&&s["x-trace"]&&typeof s["x-trace"]=="object"&&(s.trace=s["x-trace"],delete s["x-trace"]),s&&s["x-summary"]&&typeof s["x-summary"]=="string"&&(s.summary=s["x-summary"],delete s["x-summary"]),s&&s["x-description"]&&typeof s["x-description"]=="string"&&(s.description=s["x-description"],delete s["x-description"]),s&&s["x-servers"]&&Array.isArray(s["x-servers"])&&(s.servers=s["x-servers"],delete s["x-servers"]);for(let a in s)if(Rr.httpMethods.indexOf(a)>=0||a==="x-amazon-apigateway-any-method"){let l=s[a];if(l&&l.parameters&&Array.isArray(l.parameters)){if(s.parameters)for(let u of s.parameters)typeof u.$ref=="string"&&(ege(u,t),u=YL(r,u.$ref)),!l.parameters.find(function(d,h,g){return d.name===u.name&&d.in===u.in})&&(u.in==="formData"||u.in==="body"||u.type==="file")&&(l=p9(u,l,s,a,o,r,t),t.rbname&&l[t.rbname]===""&&delete l[t.rbname]);for(let u of l.parameters)l=p9(u,l,s,a,a+":"+o,r,t);t.rbname&&l[t.rbname]===""&&delete l[t.rbname],t.debug||l.parameters&&(l.parameters=l.parameters.filter($he))}if(l&&l.security&&Qhe(l.security),typeof l=="object"){if(!l.responses){let u={};u.description="Default response",l.responses={default:u}}for(let u in l.responses){let c=l.responses[u];tge(c,u,l,r,t)}}if(l&&l["x-servers"]&&Array.isArray(l["x-servers"]))l.servers=l["x-servers"],delete l["x-servers"];else if(l&&l.schemes&&l.schemes.length){for(let u of l.schemes)if((!r.schemes||r.schemes.indexOf(u)<0)&&(l.servers||(l.servers=[]),Array.isArray(r.servers)))for(let c of r.servers){let d=yg(c),h=ptt.parse(d.url);h.protocol=u,d.url=h.format(),l.servers.push(d)}}if(t.debug&&(l["x-s2o-consumes"]=l.consumes||[],l["x-s2o-produces"]=l.produces||[]),l){if(delete l.consumes,delete l.produces,delete l.schemes,l["x-ms-examples"]){for(let u in l["x-ms-examples"]){let c=l["x-ms-examples"][u],d=Rr.sanitiseAll(u);if(c.parameters)for(let h in c.parameters){let g=c.parameters[h];for(let m of(l.parameters||[]).concat(s.parameters||[]))m.$ref&&(m=lf.jptr(r,m.$ref)),m.name===h&&!m.example&&(m.examples||(m.examples={}),m.examples[u]={value:g})}if(c.responses)for(let h in c.responses){if(c.responses[h].headers)for(let g in c.responses[h].headers){let m=c.responses[h].headers[g];for(let f in l.responses[h].headers)if(f===g){let b=l.responses[h].headers[f];b.example=m}}if(c.responses[h].body&&(r.components.examples[d]={value:yg(c.responses[h].body)},l.responses[h]&&l.responses[h].content))for(let g in l.responses[h].content){let m=l.responses[h].content[g];m.examples||(m.examples={}),m.examples[u]={$ref:"#/components/examples/"+d}}}}delete l["x-ms-examples"]}if(l.parameters&&l.parameters.length===0&&delete l.parameters,l.requestBody){let u=l.operationId?Rr.sanitiseAll(l.operationId):Rr.sanitiseAll(a+o).toCamelCase(),c=Rr.sanitise(l.requestBody["x-s2o-name"]||u||"");delete l.requestBody["x-s2o-name"];let d=JSON.stringify(l.requestBody),h=Rr.hash(d);if(!i[h]){let m={};m.name=c,m.body=l.requestBody,m.refs=[],i[h]=m}let g="#/"+e+"/"+encodeURIComponent(lf.jpescape(o))+"/"+a+"/requestBody";i[h].refs.push(g)}}}if(s&&s.parameters){for(let a in s.parameters){let l=s.parameters[a];p9(l,null,s,null,o,r,t)}!t.debug&&Array.isArray(s.parameters)&&(s.parameters=s.parameters.filter($he))}}}function Att(n,e){let t={};f9={schemas:{}},n.security&&Qhe(n.security);for(let r in n.components.securitySchemes){let o=Rr.sanitise(r);r!==o&&(n.components.securitySchemes[o]&&Sl("Duplicate sanitised securityScheme name "+o,e),n.components.securitySchemes[o]=n.components.securitySchemes[r],delete n.components.securitySchemes[r]),_tt(n.components.securitySchemes[o],e)}for(let r in n.components.schemas){let o=Rr.sanitiseAll(r),s="";if(r!==o){for(;n.components.schemas[o+s];)s=s?++s:2;n.components.schemas[o+s]=n.components.schemas[r],delete n.components.schemas[r]}f9.schemas[r]=o+s,HL(n.components.schemas[o+s],e)}e.refmap={},m9(n,{payload:{options:e}},Ltt),Ftt(n,e);for(let r in n.components.parameters){let o=Rr.sanitise(r);r!==o&&(n.components.parameters[o]&&Sl("Duplicate sanitised parameter name "+o,e),n.components.parameters[o]=n.components.parameters[r],delete n.components.parameters[r]);let s=n.components.parameters[o];p9(s,null,null,null,o,n,e)}for(let r in n.components.responses){let o=Rr.sanitise(r);r!==o&&(n.components.responses[o]&&Sl("Duplicate sanitised response name "+o,e),n.components.responses[o]=n.components.responses[r],delete n.components.responses[r]);let s=n.components.responses[o];if(tge(s,o,null,n,e),s.headers)for(let a in s.headers)a.toLowerCase()==="status code"?e.patch?(e.patches++,delete s.headers[a]):Sl('(Patchable) "Status Code" is not a valid header',e):qhe(s.headers[a],e)}for(let r in n.components.requestBodies){let o=n.components.requestBodies[r],s=JSON.stringify(o),a=Rr.hash(s),l={};l.name=r,l.body=o,l.refs=[],t[a]=l}if(nge(n.paths,"paths",e,t,n),n["x-ms-paths"]&&nge(n["x-ms-paths"],"x-ms-paths",e,t,n),!e.debug)for(let r in n.components.parameters)n.components.parameters[r]["x-s2o-delete"]&&delete n.components.parameters[r];e.debug&&(n["x-s2o-consumes"]=n.consumes||[],n["x-s2o-produces"]=n.produces||[]),delete n.consumes,delete n.produces,delete n.schemes;let i=[];if(n.components.requestBodies={},!e.resolveInternal){let r=1;for(let o in t){let s=t[o];if(s.refs.length>1){let a="";for(s.name||(s.name="requestBody",a=r++);i.indexOf(s.name+a)>=0;)a=a?++a:2;s.name=s.name+a,i.push(s.name),n.components.requestBodies[s.name]=yg(s.body);for(let l in s.refs){let u={};u.$ref="#/components/requestBodies/"+s.name,lf.jptr(n,s.refs[l],u)}}}}return n.components.responses&&Object.keys(n.components.responses).length===0&&delete n.components.responses,n.components.parameters&&Object.keys(n.components.parameters).length===0&&delete n.components.parameters,n.components.examples&&Object.keys(n.components.examples).length===0&&delete n.components.examples,n.components.requestBodies&&Object.keys(n.components.requestBodies).length===0&&delete n.components.requestBodies,n.components.securitySchemes&&Object.keys(n.components.securitySchemes).length===0&&delete n.components.securitySchemes,n.components.headers&&Object.keys(n.components.headers).length===0&&delete n.components.headers,n.components.schemas&&Object.keys(n.components.schemas).length===0&&delete n.components.schemas,n.components&&Object.keys(n.components).length===0&&delete n.components,n}function ige(n){return!n||!n.url||typeof n.url!="string"||(n.url=n.url.split("{{").join("{"),n.url=n.url.split("}}").join("}"),n.url.replace(/\{(.+?)\}/g,function(e,t){n.variables||(n.variables={}),n.variables[t]={default:"unknown"}})),n}function rge(n,e,t){if(typeof n.info>"u"||n.info===null)if(e.patch)e.patches++,n.info={version:"",title:""};else return t(new Au("(Patchable) info object is mandatory"));if(typeof n.info!="object"||Array.isArray(n.info))return t(new Au("info must be an object"));if(typeof n.info.title>"u"||n.info.title===null)if(e.patch)e.patches++,n.info.title="";else return t(new Au("(Patchable) info.title cannot be null"));if(typeof n.info.version>"u"||n.info.version===null)if(e.patch)e.patches++,n.info.version="";else return t(new Au("(Patchable) info.version cannot be null"));if(typeof n.info.version!="string")if(e.patch)e.patches++,n.info.version=n.info.version.toString();else return t(new Au("(Patchable) info.version must be a string"));if(typeof n.info.logo<"u")if(e.patch)e.patches++,n.info["x-logo"]=n.info.logo,delete n.info.logo;else return t(new Au("(Patchable) info should not have logo property"));if(typeof n.info.termsOfService<"u"){if(n.info.termsOfService===null)if(e.patch)e.patches++,n.info.termsOfService="";else return t(new Au("(Patchable) info.termsOfService cannot be null"));try{let i=new URL(n.info.termsOfService)}catch{if(e.patch)e.patches++,delete n.info.termsOfService;else return t(new Au("(Patchable) info.termsOfService must be a URL"))}}}function oge(n,e,t){if(typeof n.paths>"u")if(e.patch)e.patches++,n.paths={};else return t(new Au("(Patchable) paths object is mandatory"))}function Ntt(n,e){const t=new WeakSet;m9(n,{identityDetection:!0},function(i,r,o){typeof i[r]=="object"&&i[r]!==null&&(t.has(i[r])?e.anchors?i[r]=yg(i[r]):Sl("YAML anchor or merge key at "+o.path,e):t.add(i[r]))})}function kB(n,e,t){return zL(t,new Promise(function(i,r){if(n||(n={}),e.original=n,e.text||(e.text=Uhe.stringify(n)),e.externals=[],e.externalRefs={},e.rewriteRefs=!0,e.preserveMiro=!0,e.promise={},e.promise.resolve=i,e.promise.reject=r,e.patches=0,e.cache||(e.cache={}),e.source&&(e.cache[e.source]=e.original),Ntt(n,e),n.openapi&&typeof n.openapi=="string"&&n.openapi.startsWith("3.")){e.openapi=Jhe(n),rge(e.openapi,e,r),oge(e.openapi,e,r),Khe.optionalResolve(e).then(function(){return e.direct?i(e.openapi):i(e)}).catch(function(s){r(s)});return}if(!n.swagger||n.swagger!="2.0")return r(new Au("Unsupported swagger/OpenAPI version: "+(n.openapi?n.openapi:n.swagger)));let o=e.openapi={};if(o.openapi=typeof e.targetVersion=="string"&&e.targetVersion.startsWith("3.")?e.targetVersion:jhe,e.origin){o["x-origin"]||(o["x-origin"]=[]);let s={};s.url=e.source||e.origin,s.format="swagger",s.version=n.swagger,s.converter={},s.converter.url="https://github.com/mermade/oas-kit",s.converter.version=Itt,o["x-origin"].push(s)}if(o=Object.assign(o,Jhe(n)),delete o.swagger,m9(o,{},function(s,a,l){s[a]===null&&!a.startsWith("x-")&&a!=="default"&&l.path.indexOf("/example")<0&&delete s[a]}),n.host)for(let s of Array.isArray(n.schemes)?n.schemes:[""]){let a={},l=(n.basePath||"").replace(/\/$/,"");a.url=(s?s+":":"")+"//"+n.host+l,ige(a),o.servers||(o.servers=[]),o.servers.push(a)}else if(n.basePath){let s={};s.url=n.basePath,ige(s),o.servers||(o.servers=[]),o.servers.push(s)}if(delete o.host,delete o.basePath,o["x-servers"]&&Array.isArray(o["x-servers"])&&(o.servers=o["x-servers"],delete o["x-servers"]),n["x-ms-parameterized-host"]){let s=n["x-ms-parameterized-host"],a={};a.url=s.hostTemplate+(n.basePath?n.basePath:""),a.variables={};const l=a.url.match(/\{\w+\}/g);for(let u in s.parameters){let c=s.parameters[u];c.$ref&&(c=yg(YL(o,c.$ref))),u.startsWith("x-")||(delete c.required,delete c.type,delete c.in,typeof c.default>"u"&&(c.enum?c.default=c.enum[0]:c.default="none"),c.name||(c.name=l[u].replace("{","").replace("}","")),a.variables[c.name]=c,delete c.name)}o.servers||(o.servers=[]),s.useSchemePrefix===!1?o.servers.push(a):n.schemes.forEach(u=>{o.servers.push(Object.assign({},a,{url:u+"://"+a.url}))}),delete o["x-ms-parameterized-host"]}rge(o,e,r),oge(o,e,r),typeof o.consumes=="string"&&(o.consumes=[o.consumes]),typeof o.produces=="string"&&(o.produces=[o.produces]),o.components={},o["x-callbacks"]&&(o.components.callbacks=o["x-callbacks"],delete o["x-callbacks"]),o.components.examples={},o.components.headers={},o["x-links"]&&(o.components.links=o["x-links"],delete o["x-links"]),o.components.parameters=o.parameters||{},o.components.responses=o.responses||{},o.components.requestBodies={},o.components.securitySchemes=o.securityDefinitions||{},o.components.schemas=o.definitions||{},delete o.definitions,delete o.responses,delete o.parameters,delete o.securityDefinitions,Khe.optionalResolve(e).then(function(){Att(e.openapi,e),e.direct?i(e.openapi):i(e)}).catch(function(s){r(s)})}))}function b9(n,e,t){return zL(t,new Promise(function(i,r){let o=null,s=null;try{o=JSON.parse(n),e.text=JSON.stringify(o,null,2)}catch(a){s=a;try{o=Uhe.parse(n,{schema:"core",prettyErrors:!0}),e.sourceYaml=!0,e.text=n}catch(l){s=l}}o?kB(o,e).then(a=>i(a)).catch(a=>r(a)):r(new Au(s?s.message:"Could not parse string"))}))}function ktt(n,e,t){return zL(t,new Promise(function(i,r){e.origin=!0,e.source||(e.source=n),e.verbose,e.fetch||(e.fetch=btt);const o=Object.assign({},e.fetchOptions,{agent:e.agent});e.fetch(n,o).then(function(s){if(s.status!==200)throw new Au(`Received status code ${s.status}: ${n}`);return s.text()}).then(function(s){b9(s,e).then(a=>i(a)).catch(a=>r(a))}).catch(function(s){r(s)})}))}function Mtt(n,e,t){return zL(t,new Promise(function(i,r){ftt.readFile(n,e.encoding||"utf8",function(o,s){o?r(o):(e.sourceFile=n,b9(s,e).then(a=>i(a)).catch(a=>r(a)))})}))}function Ztt(n,e,t){return zL(t,new Promise(function(i,r){let o="";n.on("data",function(s){o+=s}).on("end",function(){b9(o,e).then(s=>i(s)).catch(s=>r(s))})}))}var Ttt={S2OError:Au,targetVersion:jhe,convert:kB,convertObj:kB,convertUrl:ktt,convertStr:b9,convertFile:Mtt,convertStream:Ztt};function Ett(n){return new Promise((e,t)=>{const i=new FileReader;i.onload=function(r){var s;const o=(s=r.target)==null?void 0:s.result;o?e(o):t("error")},i.readAsText(n,"utf-8")})}function sge(n){try{return JSON.parse(n),!0}catch{return!1}}function MB(n){return n.swagger?new Promise((e,t)=>{const i={patch:!0,warnOnly:!0,resolveInternal:!0};Ttt.convertObj(n,i,function(r,o){if(r){t(r);return}o.openapi["x-original-swagger-version"]=o.original.swagger,e({openapi:o.openapi})})}):n}async function UL(n){let e={};if(Bo(n)){if(e=n,!e.openapi){const t=await MB(e)||{};Xs(t.openapi)||(e=t.openapi)}}else if(sge(n)){if(e=JSON.parse(n),!e.openapi){const t=await MB(e)||{};Xs(t.openapi)||(e=t.openapi)}}else if(e=lqe(n),!e.openapi){const t=await MB(e)||{};Xs(t.openapi)||(e=t.openapi)}return e}const Wtt=(n,e,t)=>(i,r)=>{const o=t.operationId||encodeURIComponent(`${n}#${e}`);return hce(i,{[o]:{...t,group:r,method:fg(e),path:n}})};function JL(n){return sh(n,(e,t,i)=>sh(t,(r,o,s)=>sh(o.tags||[""],Wtt(i,s,{...o}),r),e),{})}function Rtt(){const{updateOpenapiWithServiceInfo:n}=pg();I.useEffect(()=>{const t=document.getElementById("openapi-ui-container"),i=t==null?void 0:t.getAttribute("spec-url");i&&e(i)},[]);async function e(t){const i=await _L({url:t});if((i==null?void 0:i.status)>=200&&(i==null?void 0:i.status)<300){const r=await UL(i.data),o={serviceURL:t,importModeType:od.url,openapi:r,operations:JL(r.paths||{})};n(o)}}return null}/** + * @remix-run/router v1.15.3 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function as(){return as=Object.assign?Object.assign.bind():function(n){for(var e=1;e"u")throw new Error(e)}function hC(n,e){if(!n)try{throw new Error(e)}catch{}}function Xtt(){return Math.random().toString(36).substr(2,8)}function lge(n,e){return{usr:n.state,key:n.key,idx:e}}function LI(n,e,t,i){return t===void 0&&(t=null),as({pathname:typeof n=="string"?n:n.pathname,search:"",hash:""},typeof e=="string"?Ig(e):e,{state:t,key:e&&e.key||i||Xtt()})}function FI(n){let{pathname:e="/",search:t="",hash:i=""}=n;return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),i&&i!=="#"&&(e+=i.charAt(0)==="#"?i:"#"+i),e}function Ig(n){let e={};if(n){let t=n.indexOf("#");t>=0&&(e.hash=n.substr(t),n=n.substr(0,t));let i=n.indexOf("?");i>=0&&(e.search=n.substr(i),n=n.substr(0,i)),n&&(e.pathname=n)}return e}function uge(n,e,t,i){i===void 0&&(i={});let{window:r=document.defaultView,v5Compat:o=!1}=i,s=r.history,a=Ss.Pop,l=null,u=c();u==null&&(u=0,s.replaceState(as({},s.state,{idx:u}),""));function c(){return(s.state||{idx:null}).idx}function d(){a=Ss.Pop;let b=c(),C=b==null?null:b-u;u=b,l&&l({action:a,location:f.location,delta:C})}function h(b,C){a=Ss.Push;let v=LI(f.location,b,C);t&&t(v,b),u=c()+1;let w=lge(v,u),S=f.createHref(v);try{s.pushState(w,"",S)}catch(F){if(F instanceof DOMException&&F.name==="DataCloneError")throw F;r.location.assign(S)}o&&l&&l({action:a,location:f.location,delta:1})}function g(b,C){a=Ss.Replace;let v=LI(f.location,b,C);t&&t(v,b),u=c();let w=lge(v,u),S=f.createHref(v);s.replaceState(w,"",S),o&&l&&l({action:a,location:f.location,delta:0})}function m(b){let C=r.location.origin!=="null"?r.location.origin:r.location.href,v=typeof b=="string"?b:FI(b);return v=v.replace(/ $/,"%20"),zi(C,"No window.location.(origin|href) available to create URL for href: "+v),new URL(v,C)}let f={get action(){return a},get location(){return n(r,s)},listen(b){if(l)throw new Error("A history only accepts one active listener");return r.addEventListener(age,d),l=b,()=>{r.removeEventListener(age,d),l=null}},createHref(b){return e(r,b)},createURL:m,encodeLocation(b){let C=m(b);return{pathname:C.pathname,search:C.search,hash:C.hash}},push:h,replace:g,go(b){return s.go(b)}};return f}var ls;(function(n){n.data="data",n.deferred="deferred",n.redirect="redirect",n.error="error"})(ls||(ls={}));const Ptt=new Set(["lazy","caseSensitive","path","id","index","children"]);function Ott(n){return n.index===!0}function ZB(n,e,t,i){return t===void 0&&(t=[]),i===void 0&&(i={}),n.map((r,o)=>{let s=[...t,o],a=typeof r.id=="string"?r.id:s.join("-");if(zi(r.index!==!0||!r.children,"Cannot specify children on an index route"),zi(!i[a],'Found a route id collision on id "'+a+`". Route id's must be globally unique within Data Router usages`),Ott(r)){let l=as({},r,e(r),{id:a});return i[a]=l,l}else{let l=as({},r,e(r),{id:a,children:void 0});return i[a]=l,r.children&&(l.children=ZB(r.children,e,s,i)),l}})}function _I(n,e,t){t===void 0&&(t="/");let i=typeof e=="string"?Ig(e):e,r=KL(i.pathname||"/",t);if(r==null)return null;let o=cge(n);ztt(o);let s=null;for(let a=0;s==null&&a{let l={relativePath:a===void 0?o.path||"":a,caseSensitive:o.caseSensitive===!0,childrenIndex:s,route:o};l.relativePath.startsWith("/")&&(zi(l.relativePath.startsWith(i),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+i+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(i.length));let u=ab([i,l.relativePath]),c=t.concat(l);o.children&&o.children.length>0&&(zi(o.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),cge(o.children,e,c,u)),!(o.path==null&&!o.index)&&e.push({path:u,score:Qtt(u,o.index),routesMeta:c})};return n.forEach((o,s)=>{var a;if(o.path===""||!((a=o.path)!=null&&a.includes("?")))r(o,s);else for(let l of dge(o.path))r(o,s,l)}),e}function dge(n){let e=n.split("/");if(e.length===0)return[];let[t,...i]=e,r=t.endsWith("?"),o=t.replace(/\?$/,"");if(i.length===0)return r?[o,""]:[o];let s=dge(i.join("/")),a=[];return a.push(...s.map(l=>l===""?o:[o,l].join("/"))),r&&a.push(...s),a.map(l=>n.startsWith("/")&&l===""?"/":l)}function ztt(n){n.sort((e,t)=>e.score!==t.score?t.score-e.score:$tt(e.routesMeta.map(i=>i.childrenIndex),t.routesMeta.map(i=>i.childrenIndex)))}const Ytt=/^:[\w-]+$/,Htt=3,Utt=2,Jtt=1,Ktt=10,jtt=-2,hge=n=>n==="*";function Qtt(n,e){let t=n.split("/"),i=t.length;return t.some(hge)&&(i+=jtt),e&&(i+=Utt),t.filter(r=>!hge(r)).reduce((r,o)=>r+(Ytt.test(o)?Htt:o===""?Jtt:Ktt),i)}function $tt(n,e){return n.length===e.length&&n.slice(0,-1).every((i,r)=>i===e[r])?n[n.length-1]-e[e.length-1]:0}function qtt(n,e){let{routesMeta:t}=n,i={},r="/",o=[];for(let s=0;s{let{paramName:h,isOptional:g}=c;if(h==="*"){let f=a[d]||"";s=o.slice(0,o.length-f.length).replace(/(.)\/+$/,"$1")}const m=a[d];return g&&!m?u[h]=void 0:u[h]=(m||"").replace(/%2F/g,"/"),u},{}),pathname:o,pathnameBase:s,pattern:n}}function tnt(n,e,t){e===void 0&&(e=!1),t===void 0&&(t=!0),hC(n==="*"||!n.endsWith("*")||n.endsWith("/*"),'Route path "'+n+'" will be treated as if it were '+('"'+n.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+n.replace(/\*$/,"/*")+'".'));let i=[],r="^"+n.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(s,a,l)=>(i.push({paramName:a,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return n.endsWith("*")?(i.push({paramName:"*"}),r+=n==="*"||n==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):t?r+="\\/*$":n!==""&&n!=="/"&&(r+="(?:(?=\\/|$))"),[new RegExp(r,e?void 0:"i"),i]}function nnt(n){try{return n.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return hC(!1,'The URL path "'+n+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+e+").")),n}}function KL(n,e){if(e==="/")return n;if(!n.toLowerCase().startsWith(e.toLowerCase()))return null;let t=e.endsWith("/")?e.length-1:e.length,i=n.charAt(t);return i&&i!=="/"?null:n.slice(t)||"/"}function int(n,e){e===void 0&&(e="/");let{pathname:t,search:i="",hash:r=""}=typeof n=="string"?Ig(n):n;return{pathname:t?t.startsWith("/")?t:rnt(t,e):e,search:snt(i),hash:ant(r)}}function rnt(n,e){let t=e.replace(/\/+$/,"").split("/");return n.split("/").forEach(r=>{r===".."?t.length>1&&t.pop():r!=="."&&t.push(r)}),t.length>1?t.join("/"):"/"}function TB(n,e,t,i){return"Cannot include a '"+n+"' character in a manually specified "+("`to."+e+"` field ["+JSON.stringify(i)+"]. Please separate it out to the ")+("`to."+t+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function gge(n){return n.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function EB(n,e){let t=gge(n);return e?t.map((i,r)=>r===n.length-1?i.pathname:i.pathnameBase):t.map(i=>i.pathnameBase)}function WB(n,e,t,i){i===void 0&&(i=!1);let r;typeof n=="string"?r=Ig(n):(r=as({},n),zi(!r.pathname||!r.pathname.includes("?"),TB("?","pathname","search",r)),zi(!r.pathname||!r.pathname.includes("#"),TB("#","pathname","hash",r)),zi(!r.search||!r.search.includes("#"),TB("#","search","hash",r)));let o=n===""||r.pathname==="",s=o?"/":r.pathname,a;if(s==null)a=t;else{let d=e.length-1;if(!i&&s.startsWith("..")){let h=s.split("/");for(;h[0]==="..";)h.shift(),d-=1;r.pathname=h.join("/")}a=d>=0?e[d]:"/"}let l=int(r,a),u=s&&s!=="/"&&s.endsWith("/"),c=(o||s===".")&&t.endsWith("/");return!l.pathname.endsWith("/")&&(u||c)&&(l.pathname+="/"),l}const ab=n=>n.join("/").replace(/\/\/+/g,"/"),ont=n=>n.replace(/\/+$/,"").replace(/^\/*/,"/"),snt=n=>!n||n==="?"?"":n.startsWith("?")?n:"?"+n,ant=n=>!n||n==="#"?"":n.startsWith("#")?n:"#"+n;class RB{constructor(e,t,i,r){r===void 0&&(r=!1),this.status=e,this.statusText=t||"",this.internal=r,i instanceof Error?(this.data=i.toString(),this.error=i):this.data=i}}function mge(n){return n!=null&&typeof n.status=="number"&&typeof n.statusText=="string"&&typeof n.internal=="boolean"&&"data"in n}const fge=["post","put","patch","delete"],lnt=new Set(fge),unt=["get",...fge],cnt=new Set(unt),dnt=new Set([301,302,303,307,308]),hnt=new Set([307,308]),GB={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},gnt={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},jL={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},pge=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,mnt=n=>({hasErrorBoundary:!!n.hasErrorBoundary}),bge="remix-router-transitions";function Cge(n){const e=n.window?n.window:typeof window<"u"?window:void 0,t=typeof e<"u"&&typeof e.document<"u"&&typeof e.document.createElement<"u",i=!t;zi(n.routes.length>0,"You must provide a non-empty routes array to createRouter");let r;if(n.mapRouteProperties)r=n.mapRouteProperties;else if(n.detectErrorBoundary){let pe=n.detectErrorBoundary;r=xe=>({hasErrorBoundary:pe(xe)})}else r=mnt;let o={},s=ZB(n.routes,r,void 0,o),a,l=n.basename||"/",u=as({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1},n.future),c=null,d=new Set,h=null,g=null,m=null,f=n.hydrationData!=null,b=_I(s,n.history.location,l),C=null;if(b==null){let pe=ad(404,{pathname:n.history.location.pathname}),{matches:xe,route:_e}=_ge(s);b=xe,C={[_e.id]:pe}}let v,w=b.some(pe=>pe.route.lazy),S=b.some(pe=>pe.route.loader);if(w)v=!1;else if(!S)v=!0;else if(u.v7_partialHydration){let pe=n.hydrationData?n.hydrationData.loaderData:null,xe=n.hydrationData?n.hydrationData.errors:null,_e=Pe=>Pe.route.loader?Pe.route.loader.hydrate===!0?!1:pe&&pe[Pe.route.id]!==void 0||xe&&xe[Pe.route.id]!==void 0:!0;if(xe){let Pe=b.findIndex(qe=>xe[qe.route.id]!==void 0);v=b.slice(0,Pe+1).every(_e)}else v=b.every(_e)}else v=n.hydrationData!=null;let F,L={historyAction:n.history.action,location:n.history.location,matches:b,initialized:v,navigation:GB,restoreScrollPosition:n.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:n.hydrationData&&n.hydrationData.loaderData||{},actionData:n.hydrationData&&n.hydrationData.actionData||null,errors:n.hydrationData&&n.hydrationData.errors||C,fetchers:new Map,blockers:new Map},D=Ss.Pop,A=!1,M,W=!1,Z=new Map,T=null,E=!1,V=!1,z=[],O=[],P=new Map,B=0,Y=-1,k=new Map,X=new Set,U=new Map,R=new Map,ee=new Set,oe=new Map,se=new Map,ue=!1;function ce(){if(c=n.history.listen(pe=>{let{action:xe,location:_e,delta:Pe}=pe;if(ue){ue=!1;return}hC(se.size===0||Pe!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let qe=dt({currentLocation:L.location,nextLocation:_e,historyAction:xe});if(qe&&Pe!=null){ue=!0,n.history.go(Pe*-1),Re(qe,{state:"blocked",location:_e,proceed(){Re(qe,{state:"proceeding",proceed:void 0,reset:void 0,location:_e}),n.history.go(Pe)},reset(){let nt=new Map(L.blockers);nt.set(qe,jL),le({blockers:nt})}});return}return ze(xe,_e)}),t){Lnt(e,Z);let pe=()=>Fnt(e,Z);e.addEventListener("pagehide",pe),T=()=>e.removeEventListener("pagehide",pe)}return L.initialized||ze(Ss.Pop,L.location,{initialHydration:!0}),F}function ye(){c&&c(),T&&T(),d.clear(),M&&M.abort(),L.fetchers.forEach((pe,xe)=>Ce(xe)),L.blockers.forEach((pe,xe)=>He(xe))}function fe(pe){return d.add(pe),()=>d.delete(pe)}function le(pe,xe){xe===void 0&&(xe={}),L=as({},L,pe);let _e=[],Pe=[];u.v7_fetcherPersist&&L.fetchers.forEach((qe,nt)=>{qe.state==="idle"&&(ee.has(nt)?Pe.push(nt):_e.push(nt))}),[...d].forEach(qe=>qe(L,{deletedFetchers:Pe,unstable_viewTransitionOpts:xe.viewTransitionOpts,unstable_flushSync:xe.flushSync===!0})),u.v7_fetcherPersist&&(_e.forEach(qe=>L.fetchers.delete(qe)),Pe.forEach(qe=>Ce(qe)))}function Ze(pe,xe,_e){var Pe,qe;let{flushSync:nt}=_e===void 0?{}:_e,wt=L.actionData!=null&&L.navigation.formMethod!=null&&uh(L.navigation.formMethod)&&L.navigation.state==="loading"&&((Pe=pe.state)==null?void 0:Pe._isRedirect)!==!0,St;xe.actionData?Object.keys(xe.actionData).length>0?St=xe.actionData:St=null:wt?St=L.actionData:St=null;let et=xe.loaderData?Fge(L.loaderData,xe.loaderData,xe.matches||[],xe.errors):L.loaderData,xt=L.blockers;xt.size>0&&(xt=new Map(xt),xt.forEach((zt,jt)=>xt.set(jt,jL)));let Zt=A===!0||L.navigation.formMethod!=null&&uh(L.navigation.formMethod)&&((qe=pe.state)==null?void 0:qe._isRedirect)!==!0;a&&(s=a,a=void 0),E||D===Ss.Pop||(D===Ss.Push?n.history.push(pe,pe.state):D===Ss.Replace&&n.history.replace(pe,pe.state));let Mt;if(D===Ss.Pop){let zt=Z.get(L.location.pathname);zt&&zt.has(pe.pathname)?Mt={currentLocation:L.location,nextLocation:pe}:Z.has(pe.pathname)&&(Mt={currentLocation:pe,nextLocation:L.location})}else if(W){let zt=Z.get(L.location.pathname);zt?zt.add(pe.pathname):(zt=new Set([pe.pathname]),Z.set(L.location.pathname,zt)),Mt={currentLocation:L.location,nextLocation:pe}}le(as({},xe,{actionData:St,loaderData:et,historyAction:D,location:pe,initialized:!0,navigation:GB,revalidation:"idle",restoreScrollPosition:Nn(pe,xe.matches||L.matches),preventScrollReset:Zt,blockers:xt}),{viewTransitionOpts:Mt,flushSync:nt===!0}),D=Ss.Pop,A=!1,W=!1,E=!1,V=!1,z=[],O=[]}async function ke(pe,xe){if(typeof pe=="number"){n.history.go(pe);return}let _e=VB(L.location,L.matches,l,u.v7_prependBasename,pe,u.v7_relativeSplatPath,xe==null?void 0:xe.fromRouteId,xe==null?void 0:xe.relative),{path:Pe,submission:qe,error:nt}=vge(u.v7_normalizeFormMethod,!1,_e,xe),wt=L.location,St=LI(L.location,Pe,xe&&xe.state);St=as({},St,n.history.encodeLocation(St));let et=xe&&xe.replace!=null?xe.replace:void 0,xt=Ss.Push;et===!0?xt=Ss.Replace:et===!1||qe!=null&&uh(qe.formMethod)&&qe.formAction===L.location.pathname+L.location.search&&(xt=Ss.Replace);let Zt=xe&&"preventScrollReset"in xe?xe.preventScrollReset===!0:void 0,Mt=(xe&&xe.unstable_flushSync)===!0,zt=dt({currentLocation:wt,nextLocation:St,historyAction:xt});if(zt){Re(zt,{state:"blocked",location:St,proceed(){Re(zt,{state:"proceeding",proceed:void 0,reset:void 0,location:St}),ke(pe,xe)},reset(){let jt=new Map(L.blockers);jt.set(zt,jL),le({blockers:jt})}});return}return await ze(xt,St,{submission:qe,pendingError:nt,preventScrollReset:Zt,replace:xe&&xe.replace,enableViewTransition:xe&&xe.unstable_viewTransition,flushSync:Mt})}function Ne(){if(j(),le({revalidation:"loading"}),L.navigation.state!=="submitting"){if(L.navigation.state==="idle"){ze(L.historyAction,L.location,{startUninterruptedRevalidation:!0});return}ze(D||L.historyAction,L.navigation.location,{overrideNavigation:L.navigation})}}async function ze(pe,xe,_e){M&&M.abort(),M=null,D=pe,E=(_e&&_e.startUninterruptedRevalidation)===!0,Ut(L.location,L.matches),A=(_e&&_e.preventScrollReset)===!0,W=(_e&&_e.enableViewTransition)===!0;let Pe=a||s,qe=_e&&_e.overrideNavigation,nt=_I(Pe,xe,l),wt=(_e&&_e.flushSync)===!0;if(!nt){let jt=ad(404,{pathname:xe.pathname}),{matches:ri,route:Bn}=_ge(Pe);yt(),Ze(xe,{matches:ri,loaderData:{},errors:{[Bn.id]:jt}},{flushSync:wt});return}if(L.initialized&&!V&&vnt(L.location,xe)&&!(_e&&_e.submission&&uh(_e.submission.formMethod))){Ze(xe,{matches:nt},{flushSync:wt});return}M=new AbortController;let St=$L(n.history,xe,M.signal,_e&&_e.submission),et,xt;if(_e&&_e.pendingError)xt={[qL(nt).route.id]:_e.pendingError};else if(_e&&_e.submission&&uh(_e.submission.formMethod)){let jt=await Ke(St,xe,_e.submission,nt,{replace:_e.replace,flushSync:wt});if(jt.shortCircuited)return;et=jt.pendingActionData,xt=jt.pendingActionError,qe=BB(xe,_e.submission),wt=!1,St=new Request(St.url,{signal:St.signal})}let{shortCircuited:Zt,loaderData:Mt,errors:zt}=await ut(St,xe,nt,qe,_e&&_e.submission,_e&&_e.fetcherSubmission,_e&&_e.replace,_e&&_e.initialHydration===!0,wt,et,xt);Zt||(M=null,Ze(xe,as({matches:nt},et?{actionData:et}:{},{loaderData:Mt,errors:zt})))}async function Ke(pe,xe,_e,Pe,qe){qe===void 0&&(qe={}),j();let nt=Snt(xe,_e);le({navigation:nt},{flushSync:qe.flushSync===!0});let wt,St=OB(Pe,xe);if(!St.route.action&&!St.route.lazy)wt={type:ls.error,error:ad(405,{method:pe.method,pathname:xe.pathname,routeId:St.route.id})};else if(wt=await QL("action",pe,St,Pe,o,r,l,u.v7_relativeSplatPath),pe.signal.aborted)return{shortCircuited:!0};if(mC(wt)){let et;return qe&&qe.replace!=null?et=qe.replace:et=wt.location===L.location.pathname+L.location.search,await de(L,wt,{submission:_e,replace:et}),{shortCircuited:!0}}if(DI(wt)){let et=qL(Pe,St.route.id);return(qe&&qe.replace)!==!0&&(D=Ss.Push),{pendingActionData:{},pendingActionError:{[et.route.id]:wt.error}}}if(gC(wt))throw ad(400,{type:"defer-action"});return{pendingActionData:{[St.route.id]:wt.data}}}async function ut(pe,xe,_e,Pe,qe,nt,wt,St,et,xt,Zt){let Mt=Pe||BB(xe,qe),zt=qe||nt||Mge(Mt),jt=a||s,[ri,Bn]=yge(n.history,L,_e,zt,xe,u.v7_partialHydration&&St===!0,V,z,O,ee,U,X,jt,l,xt,Zt);if(yt(an=>!(_e&&_e.some(Wn=>Wn.route.id===an))||ri&&ri.some(Wn=>Wn.route.id===an)),Y=++B,ri.length===0&&Bn.length===0){let an=tt();return Ze(xe,as({matches:_e,loaderData:{},errors:Zt||null},xt?{actionData:xt}:{},an?{fetchers:new Map(L.fetchers)}:{}),{flushSync:et}),{shortCircuited:!0}}if(!E&&(!u.v7_partialHydration||!St)){Bn.forEach(Wn=>{let wn=L.fetchers.get(Wn.key),pr=eF(void 0,wn?wn.data:void 0);L.fetchers.set(Wn.key,pr)});let an=xt||L.actionData;le(as({navigation:Mt},an?Object.keys(an).length===0?{actionData:null}:{actionData:an}:{},Bn.length>0?{fetchers:new Map(L.fetchers)}:{}),{flushSync:et})}Bn.forEach(an=>{P.has(an.key)&&Ae(an.key),an.controller&&P.set(an.key,an.controller)});let Mn=()=>Bn.forEach(an=>Ae(an.key));M&&M.signal.addEventListener("abort",Mn);let{results:Yt,loaderResults:bn,fetcherResults:kt}=await ge(L.matches,_e,ri,Bn,pe);if(pe.signal.aborted)return{shortCircuited:!0};M&&M.signal.removeEventListener("abort",Mn),Bn.forEach(an=>P.delete(an.key));let Ie=Dge(Yt);if(Ie){if(Ie.idx>=ri.length){let an=Bn[Ie.idx-ri.length].key;X.add(an)}return await de(L,Ie.result,{replace:wt}),{shortCircuited:!0}}let{loaderData:Ue,errors:gt}=Lge(L,_e,ri,bn,Zt,Bn,kt,oe);oe.forEach((an,Wn)=>{an.subscribe(wn=>{(wn||an.done)&&oe.delete(Wn)})}),u.v7_partialHydration&&St&&L.errors&&Object.entries(L.errors).filter(an=>{let[Wn]=an;return!ri.some(wn=>wn.route.id===Wn)}).forEach(an=>{let[Wn,wn]=an;gt=Object.assign(gt||{},{[Wn]:wn})});let nn=tt(),Kn=We(Y),Zn=nn||Kn||Bn.length>0;return as({loaderData:Ue,errors:gt},Zn?{fetchers:new Map(L.fetchers)}:{})}function Ct(pe,xe,_e,Pe){if(i)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");P.has(pe)&&Ae(pe);let qe=(Pe&&Pe.unstable_flushSync)===!0,nt=a||s,wt=VB(L.location,L.matches,l,u.v7_prependBasename,_e,u.v7_relativeSplatPath,xe,Pe==null?void 0:Pe.relative),St=_I(nt,wt,l);if(!St){q(pe,xe,ad(404,{pathname:wt}),{flushSync:qe});return}let{path:et,submission:xt,error:Zt}=vge(u.v7_normalizeFormMethod,!0,wt,Pe);if(Zt){q(pe,xe,Zt,{flushSync:qe});return}let Mt=OB(St,et);if(A=(Pe&&Pe.preventScrollReset)===!0,xt&&uh(xt.formMethod)){ot(pe,xe,et,Mt,St,qe,xt);return}U.set(pe,{routeId:xe,path:et}),he(pe,xe,et,Mt,St,qe,xt)}async function ot(pe,xe,_e,Pe,qe,nt,wt){if(j(),U.delete(pe),!Pe.route.action&&!Pe.route.lazy){let Wn=ad(405,{method:wt.formMethod,pathname:_e,routeId:xe});q(pe,xe,Wn,{flushSync:nt});return}let St=L.fetchers.get(pe);Q(pe,xnt(wt,St),{flushSync:nt});let et=new AbortController,xt=$L(n.history,_e,et.signal,wt);P.set(pe,et);let Zt=B,Mt=await QL("action",xt,Pe,qe,o,r,l,u.v7_relativeSplatPath);if(xt.signal.aborted){P.get(pe)===et&&P.delete(pe);return}if(u.v7_fetcherPersist&&ee.has(pe)){if(mC(Mt)||DI(Mt)){Q(pe,lb(void 0));return}}else{if(mC(Mt))if(P.delete(pe),Y>Zt){Q(pe,lb(void 0));return}else return X.add(pe),Q(pe,eF(wt)),de(L,Mt,{fetcherSubmission:wt});if(DI(Mt)){q(pe,xe,Mt.error);return}}if(gC(Mt))throw ad(400,{type:"defer-action"});let zt=L.navigation.location||L.location,jt=$L(n.history,zt,et.signal),ri=a||s,Bn=L.navigation.state!=="idle"?_I(ri,L.navigation.location,l):L.matches;zi(Bn,"Didn't find any matches after fetcher action");let Mn=++B;k.set(pe,Mn);let Yt=eF(wt,Mt.data);L.fetchers.set(pe,Yt);let[bn,kt]=yge(n.history,L,Bn,wt,zt,!1,V,z,O,ee,U,X,ri,l,{[Pe.route.id]:Mt.data},void 0);kt.filter(Wn=>Wn.key!==pe).forEach(Wn=>{let wn=Wn.key,pr=L.fetchers.get(wn),Ro=eF(void 0,pr?pr.data:void 0);L.fetchers.set(wn,Ro),P.has(wn)&&Ae(wn),Wn.controller&&P.set(wn,Wn.controller)}),le({fetchers:new Map(L.fetchers)});let Ie=()=>kt.forEach(Wn=>Ae(Wn.key));et.signal.addEventListener("abort",Ie);let{results:Ue,loaderResults:gt,fetcherResults:nn}=await ge(L.matches,Bn,bn,kt,jt);if(et.signal.aborted)return;et.signal.removeEventListener("abort",Ie),k.delete(pe),P.delete(pe),kt.forEach(Wn=>P.delete(Wn.key));let Kn=Dge(Ue);if(Kn){if(Kn.idx>=bn.length){let Wn=kt[Kn.idx-bn.length].key;X.add(Wn)}return de(L,Kn.result)}let{loaderData:Zn,errors:an}=Lge(L,L.matches,bn,gt,void 0,kt,nn,oe);if(L.fetchers.has(pe)){let Wn=lb(Mt.data);L.fetchers.set(pe,Wn)}We(Mn),L.navigation.state==="loading"&&Mn>Y?(zi(D,"Expected pending action"),M&&M.abort(),Ze(L.navigation.location,{matches:Bn,loaderData:Zn,errors:an,fetchers:new Map(L.fetchers)})):(le({errors:an,loaderData:Fge(L.loaderData,Zn,Bn,an),fetchers:new Map(L.fetchers)}),V=!1)}async function he(pe,xe,_e,Pe,qe,nt,wt){let St=L.fetchers.get(pe);Q(pe,eF(wt,St?St.data:void 0),{flushSync:nt});let et=new AbortController,xt=$L(n.history,_e,et.signal);P.set(pe,et);let Zt=B,Mt=await QL("loader",xt,Pe,qe,o,r,l,u.v7_relativeSplatPath);if(gC(Mt)&&(Mt=await kge(Mt,xt.signal,!0)||Mt),P.get(pe)===et&&P.delete(pe),!xt.signal.aborted){if(ee.has(pe)){Q(pe,lb(void 0));return}if(mC(Mt))if(Y>Zt){Q(pe,lb(void 0));return}else{X.add(pe),await de(L,Mt);return}if(DI(Mt)){q(pe,xe,Mt.error);return}zi(!gC(Mt),"Unhandled fetcher deferred data"),Q(pe,lb(Mt.data))}}async function de(pe,xe,_e){let{submission:Pe,fetcherSubmission:qe,replace:nt}=_e===void 0?{}:_e;xe.revalidate&&(V=!0);let wt=LI(pe.location,xe.location,{_isRedirect:!0});if(zi(wt,"Expected a location on the redirect navigation"),t){let zt=!1;if(xe.reloadDocument)zt=!0;else if(pge.test(xe.location)){const jt=n.history.createURL(xe.location);zt=jt.origin!==e.location.origin||KL(jt.pathname,l)==null}if(zt){nt?e.location.replace(xe.location):e.location.assign(xe.location);return}}M=null;let St=nt===!0?Ss.Replace:Ss.Push,{formMethod:et,formAction:xt,formEncType:Zt}=pe.navigation;!Pe&&!qe&&et&&xt&&Zt&&(Pe=Mge(pe.navigation));let Mt=Pe||qe;if(hnt.has(xe.status)&&Mt&&uh(Mt.formMethod))await ze(St,wt,{submission:as({},Mt,{formAction:xe.location}),preventScrollReset:A});else{let zt=BB(wt,Pe);await ze(St,wt,{overrideNavigation:zt,fetcherSubmission:qe,preventScrollReset:A})}}async function ge(pe,xe,_e,Pe,qe){let nt=await Promise.all([..._e.map(et=>QL("loader",qe,et,xe,o,r,l,u.v7_relativeSplatPath)),...Pe.map(et=>et.matches&&et.match&&et.controller?QL("loader",$L(n.history,et.path,et.controller.signal),et.match,et.matches,o,r,l,u.v7_relativeSplatPath):{type:ls.error,error:ad(404,{pathname:et.path})})]),wt=nt.slice(0,_e.length),St=nt.slice(_e.length);return await Promise.all([Nge(pe,_e,wt,wt.map(()=>qe.signal),!1,L.loaderData),Nge(pe,Pe.map(et=>et.match),St,Pe.map(et=>et.controller?et.controller.signal:null),!0)]),{results:nt,loaderResults:wt,fetcherResults:St}}function j(){V=!0,z.push(...yt()),U.forEach((pe,xe)=>{P.has(xe)&&(O.push(xe),Ae(xe))})}function Q(pe,xe,_e){_e===void 0&&(_e={}),L.fetchers.set(pe,xe),le({fetchers:new Map(L.fetchers)},{flushSync:(_e&&_e.flushSync)===!0})}function q(pe,xe,_e,Pe){Pe===void 0&&(Pe={});let qe=qL(L.matches,xe);Ce(pe),le({errors:{[qe.route.id]:_e},fetchers:new Map(L.fetchers)},{flushSync:(Pe&&Pe.flushSync)===!0})}function te(pe){return u.v7_fetcherPersist&&(R.set(pe,(R.get(pe)||0)+1),ee.has(pe)&&ee.delete(pe)),L.fetchers.get(pe)||gnt}function Ce(pe){let xe=L.fetchers.get(pe);P.has(pe)&&!(xe&&xe.state==="loading"&&k.has(pe))&&Ae(pe),U.delete(pe),k.delete(pe),X.delete(pe),ee.delete(pe),L.fetchers.delete(pe)}function Le(pe){if(u.v7_fetcherPersist){let xe=(R.get(pe)||0)-1;xe<=0?(R.delete(pe),ee.add(pe)):R.set(pe,xe)}else Ce(pe);le({fetchers:new Map(L.fetchers)})}function Ae(pe){let xe=P.get(pe);zi(xe,"Expected fetch controller: "+pe),xe.abort(),P.delete(pe)}function Oe(pe){for(let xe of pe){let _e=te(xe),Pe=lb(_e.data);L.fetchers.set(xe,Pe)}}function tt(){let pe=[],xe=!1;for(let _e of X){let Pe=L.fetchers.get(_e);zi(Pe,"Expected fetcher: "+_e),Pe.state==="loading"&&(X.delete(_e),pe.push(_e),xe=!0)}return Oe(pe),xe}function We(pe){let xe=[];for(let[_e,Pe]of k)if(Pe0}function ht(pe,xe){let _e=L.blockers.get(pe)||jL;return se.get(pe)!==xe&&se.set(pe,xe),_e}function He(pe){L.blockers.delete(pe),se.delete(pe)}function Re(pe,xe){let _e=L.blockers.get(pe)||jL;zi(_e.state==="unblocked"&&xe.state==="blocked"||_e.state==="blocked"&&xe.state==="blocked"||_e.state==="blocked"&&xe.state==="proceeding"||_e.state==="blocked"&&xe.state==="unblocked"||_e.state==="proceeding"&&xe.state==="unblocked","Invalid blocker state transition: "+_e.state+" -> "+xe.state);let Pe=new Map(L.blockers);Pe.set(pe,xe),le({blockers:Pe})}function dt(pe){let{currentLocation:xe,nextLocation:_e,historyAction:Pe}=pe;if(se.size===0)return;se.size>1&&hC(!1,"A router only supports one blocker at a time");let qe=Array.from(se.entries()),[nt,wt]=qe[qe.length-1],St=L.blockers.get(nt);if(!(St&&St.state==="proceeding")&&wt({currentLocation:xe,nextLocation:_e,historyAction:Pe}))return nt}function yt(pe){let xe=[];return oe.forEach((_e,Pe)=>{(!pe||pe(Pe))&&(_e.cancel(),xe.push(Pe),oe.delete(Pe))}),xe}function Kt(pe,xe,_e){if(h=pe,m=xe,g=_e||null,!f&&L.navigation===GB){f=!0;let Pe=Nn(L.location,L.matches);Pe!=null&&le({restoreScrollPosition:Pe})}return()=>{h=null,m=null,g=null}}function Wt(pe,xe){return g&&g(pe,xe.map(Pe=>Btt(Pe,L.loaderData)))||pe.key}function Ut(pe,xe){if(h&&m){let _e=Wt(pe,xe);h[_e]=m()}}function Nn(pe,xe){if(h){let _e=Wt(pe,xe),Pe=h[_e];if(typeof Pe=="number")return Pe}return null}function di(pe){o={},a=ZB(pe,r,void 0,o)}return F={get basename(){return l},get future(){return u},get state(){return L},get routes(){return s},get window(){return e},initialize:ce,subscribe:fe,enableScrollRestoration:Kt,navigate:ke,fetch:Ct,revalidate:Ne,createHref:pe=>n.history.createHref(pe),encodeLocation:pe=>n.history.encodeLocation(pe),getFetcher:te,deleteFetcher:Le,dispose:ye,getBlocker:ht,deleteBlocker:He,_internalFetchControllers:P,_internalActiveDeferreds:oe,_internalSetRoutes:di},F}function fnt(n){return n!=null&&("formData"in n&&n.formData!=null||"body"in n&&n.body!==void 0)}function VB(n,e,t,i,r,o,s,a){let l,u;if(s){l=[];for(let d of e)if(l.push(d),d.route.id===s){u=d;break}}else l=e,u=e[e.length-1];let c=WB(r||".",EB(l,o),KL(n.pathname,t)||n.pathname,a==="path");return r==null&&(c.search=n.search,c.hash=n.hash),(r==null||r===""||r===".")&&u&&u.route.index&&!PB(c.search)&&(c.search=c.search?c.search.replace(/^\?/,"?index&"):"?index"),i&&t!=="/"&&(c.pathname=c.pathname==="/"?t:ab([t,c.pathname])),FI(c)}function vge(n,e,t,i){if(!i||!fnt(i))return{path:t};if(i.formMethod&&!wnt(i.formMethod))return{path:t,error:ad(405,{method:i.formMethod})};let r=()=>({path:t,error:ad(400,{type:"invalid-body"})}),o=i.formMethod||"get",s=n?o.toUpperCase():o.toLowerCase(),a=Age(t);if(i.body!==void 0){if(i.formEncType==="text/plain"){if(!uh(s))return r();let h=typeof i.body=="string"?i.body:i.body instanceof FormData||i.body instanceof URLSearchParams?Array.from(i.body.entries()).reduce((g,m)=>{let[f,b]=m;return""+g+f+"="+b+` +`},""):String(i.body);return{path:t,submission:{formMethod:s,formAction:a,formEncType:i.formEncType,formData:void 0,json:void 0,text:h}}}else if(i.formEncType==="application/json"){if(!uh(s))return r();try{let h=typeof i.body=="string"?JSON.parse(i.body):i.body;return{path:t,submission:{formMethod:s,formAction:a,formEncType:i.formEncType,formData:void 0,json:h,text:void 0}}}catch{return r()}}}zi(typeof FormData=="function","FormData is not available in this environment");let l,u;if(i.formData)l=XB(i.formData),u=i.formData;else if(i.body instanceof FormData)l=XB(i.body),u=i.body;else if(i.body instanceof URLSearchParams)l=i.body,u=xge(l);else if(i.body==null)l=new URLSearchParams,u=new FormData;else try{l=new URLSearchParams(i.body),u=xge(l)}catch{return r()}let c={formMethod:s,formAction:a,formEncType:i&&i.formEncType||"application/x-www-form-urlencoded",formData:u,json:void 0,text:void 0};if(uh(c.formMethod))return{path:t,submission:c};let d=Ig(t);return e&&d.search&&PB(d.search)&&l.append("index",""),d.search="?"+l,{path:FI(d),submission:c}}function pnt(n,e){let t=n;if(e){let i=n.findIndex(r=>r.route.id===e);i>=0&&(t=n.slice(0,i))}return t}function yge(n,e,t,i,r,o,s,a,l,u,c,d,h,g,m,f){let b=f?Object.values(f)[0]:m?Object.values(m)[0]:void 0,C=n.createURL(e.location),v=n.createURL(r),w=f?Object.keys(f)[0]:void 0,F=pnt(t,w).filter((D,A)=>{let{route:M}=D;if(M.lazy)return!0;if(M.loader==null)return!1;if(o)return M.loader.hydrate?!0:e.loaderData[M.id]===void 0&&(!e.errors||e.errors[M.id]===void 0);if(bnt(e.loaderData,e.matches[A],D)||a.some(T=>T===D.route.id))return!0;let W=e.matches[A],Z=D;return wge(D,as({currentUrl:C,currentParams:W.params,nextUrl:v,nextParams:Z.params},i,{actionResult:b,defaultShouldRevalidate:s||C.pathname+C.search===v.pathname+v.search||C.search!==v.search||Ige(W,Z)}))}),L=[];return c.forEach((D,A)=>{if(o||!t.some(E=>E.route.id===D.routeId)||u.has(A))return;let M=_I(h,D.path,g);if(!M){L.push({key:A,routeId:D.routeId,path:D.path,matches:null,match:null,controller:null});return}let W=e.fetchers.get(A),Z=OB(M,D.path),T=!1;d.has(A)?T=!1:l.includes(A)?T=!0:W&&W.state!=="idle"&&W.data===void 0?T=s:T=wge(Z,as({currentUrl:C,currentParams:e.matches[e.matches.length-1].params,nextUrl:v,nextParams:t[t.length-1].params},i,{actionResult:b,defaultShouldRevalidate:s})),T&&L.push({key:A,routeId:D.routeId,path:D.path,matches:M,match:Z,controller:new AbortController})}),[F,L]}function bnt(n,e,t){let i=!e||t.route.id!==e.route.id,r=n[t.route.id]===void 0;return i||r}function Ige(n,e){let t=n.route.path;return n.pathname!==e.pathname||t!=null&&t.endsWith("*")&&n.params["*"]!==e.params["*"]}function wge(n,e){if(n.route.shouldRevalidate){let t=n.route.shouldRevalidate(e);if(typeof t=="boolean")return t}return e.defaultShouldRevalidate}async function Sge(n,e,t){if(!n.lazy)return;let i=await n.lazy();if(!n.lazy)return;let r=t[n.id];zi(r,"No route found in manifest");let o={};for(let s in i){let l=r[s]!==void 0&&s!=="hasErrorBoundary";hC(!l,'Route "'+r.id+'" has a static property "'+s+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+s+'" will be ignored.')),!l&&!Ptt.has(s)&&(o[s]=i[s])}Object.assign(r,o),Object.assign(r,as({},e(r),{lazy:void 0}))}async function QL(n,e,t,i,r,o,s,a,l){l===void 0&&(l={});let u,c,d,h=f=>{let b,C=new Promise((v,w)=>b=w);return d=()=>b(),e.signal.addEventListener("abort",d),Promise.race([f({request:e,params:t.params,context:l.requestContext}),C])};try{let f=t.route[n];if(t.route.lazy)if(f){let b,C=await Promise.all([h(f).catch(v=>{b=v}),Sge(t.route,o,r)]);if(b)throw b;c=C[0]}else if(await Sge(t.route,o,r),f=t.route[n],f)c=await h(f);else if(n==="action"){let b=new URL(e.url),C=b.pathname+b.search;throw ad(405,{method:e.method,pathname:C,routeId:t.route.id})}else return{type:ls.data,data:void 0};else if(f)c=await h(f);else{let b=new URL(e.url),C=b.pathname+b.search;throw ad(404,{pathname:C})}zi(c!==void 0,"You defined "+(n==="action"?"an action":"a loader")+" for route "+('"'+t.route.id+"\" but didn't return anything from your `"+n+"` ")+"function. Please return a value or `null`.")}catch(f){u=ls.error,c=f}finally{d&&e.signal.removeEventListener("abort",d)}if(Int(c)){let f=c.status;if(dnt.has(f)){let C=c.headers.get("Location");if(zi(C,"Redirects returned/thrown from loaders/actions must have a Location header"),!pge.test(C))C=VB(new URL(e.url),i.slice(0,i.indexOf(t)+1),s,!0,C,a);else if(!l.isStaticRequest){let v=new URL(e.url),w=C.startsWith("//")?new URL(v.protocol+C):new URL(C),S=KL(w.pathname,s)!=null;w.origin===v.origin&&S&&(C=w.pathname+w.search+w.hash)}if(l.isStaticRequest)throw c.headers.set("Location",C),c;return{type:ls.redirect,status:f,location:C,revalidate:c.headers.get("X-Remix-Revalidate")!==null,reloadDocument:c.headers.get("X-Remix-Reload-Document")!==null}}if(l.isRouteRequest)throw{type:u===ls.error?ls.error:ls.data,response:c};let b;try{let C=c.headers.get("Content-Type");C&&/\bapplication\/json\b/.test(C)?c.body==null?b=null:b=await c.json():b=await c.text()}catch(C){return{type:ls.error,error:C}}return u===ls.error?{type:u,error:new RB(f,c.statusText,b),headers:c.headers}:{type:ls.data,data:b,statusCode:c.status,headers:c.headers}}if(u===ls.error)return{type:u,error:c};if(ynt(c)){var g,m;return{type:ls.deferred,deferredData:c,statusCode:(g=c.init)==null?void 0:g.status,headers:((m=c.init)==null?void 0:m.headers)&&new Headers(c.init.headers)}}return{type:ls.data,data:c}}function $L(n,e,t,i){let r=n.createURL(Age(e)).toString(),o={signal:t};if(i&&uh(i.formMethod)){let{formMethod:s,formEncType:a}=i;o.method=s.toUpperCase(),a==="application/json"?(o.headers=new Headers({"Content-Type":a}),o.body=JSON.stringify(i.json)):a==="text/plain"?o.body=i.text:a==="application/x-www-form-urlencoded"&&i.formData?o.body=XB(i.formData):o.body=i.formData}return new Request(r,o)}function XB(n){let e=new URLSearchParams;for(let[t,i]of n.entries())e.append(t,typeof i=="string"?i:i.name);return e}function xge(n){let e=new FormData;for(let[t,i]of n.entries())e.append(t,i);return e}function Cnt(n,e,t,i,r){let o={},s=null,a,l=!1,u={};return t.forEach((c,d)=>{let h=e[d].route.id;if(zi(!mC(c),"Cannot handle redirect results in processLoaderData"),DI(c)){let g=qL(n,h),m=c.error;i&&(m=Object.values(i)[0],i=void 0),s=s||{},s[g.route.id]==null&&(s[g.route.id]=m),o[h]=void 0,l||(l=!0,a=mge(c.error)?c.error.status:500),c.headers&&(u[h]=c.headers)}else gC(c)?(r.set(h,c.deferredData),o[h]=c.deferredData.data):o[h]=c.data,c.statusCode!=null&&c.statusCode!==200&&!l&&(a=c.statusCode),c.headers&&(u[h]=c.headers)}),i&&(s=i,o[Object.keys(i)[0]]=void 0),{loaderData:o,errors:s,statusCode:a||200,loaderHeaders:u}}function Lge(n,e,t,i,r,o,s,a){let{loaderData:l,errors:u}=Cnt(e,t,i,r,a);for(let c=0;ci.route.id===e)+1):[...n]).reverse().find(i=>i.route.hasErrorBoundary===!0)||n[0]}function _ge(n){let e=n.length===1?n[0]:n.find(t=>t.index||!t.path||t.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:e}],route:e}}function ad(n,e){let{pathname:t,routeId:i,method:r,type:o}=e===void 0?{}:e,s="Unknown Server Error",a="Unknown @remix-run/router error";return n===400?(s="Bad Request",r&&t&&i?a="You made a "+r+' request to "'+t+'" but '+('did not provide a `loader` for route "'+i+'", ')+"so there is no way to handle the request.":o==="defer-action"?a="defer() is not supported in actions":o==="invalid-body"&&(a="Unable to encode submission body")):n===403?(s="Forbidden",a='Route "'+i+'" does not match URL "'+t+'"'):n===404?(s="Not Found",a='No route matches URL "'+t+'"'):n===405&&(s="Method Not Allowed",r&&t&&i?a="You made a "+r.toUpperCase()+' request to "'+t+'" but '+('did not provide an `action` for route "'+i+'", ')+"so there is no way to handle the request.":r&&(a='Invalid request method "'+r.toUpperCase()+'"')),new RB(n||500,s,new Error(a),!0)}function Dge(n){for(let e=n.length-1;e>=0;e--){let t=n[e];if(mC(t))return{result:t,idx:e}}}function Age(n){let e=typeof n=="string"?Ig(n):n;return FI(as({},e,{hash:""}))}function vnt(n,e){return n.pathname!==e.pathname||n.search!==e.search?!1:n.hash===""?e.hash!=="":n.hash===e.hash?!0:e.hash!==""}function gC(n){return n.type===ls.deferred}function DI(n){return n.type===ls.error}function mC(n){return(n&&n.type)===ls.redirect}function ynt(n){let e=n;return e&&typeof e=="object"&&typeof e.data=="object"&&typeof e.subscribe=="function"&&typeof e.cancel=="function"&&typeof e.resolveData=="function"}function Int(n){return n!=null&&typeof n.status=="number"&&typeof n.statusText=="string"&&typeof n.headers=="object"&&typeof n.body<"u"}function wnt(n){return cnt.has(n.toLowerCase())}function uh(n){return lnt.has(n.toLowerCase())}async function Nge(n,e,t,i,r,o){for(let s=0;sd.route.id===l.route.id),c=u!=null&&!Ige(u,l)&&(o&&o[l.route.id])!==void 0;if(gC(a)&&(r||c)){let d=i[s];zi(d,"Expected an AbortSignal for revalidating fetcher deferred result"),await kge(a,d,r).then(h=>{h&&(t[s]=h||t[s])})}}}async function kge(n,e,t){if(t===void 0&&(t=!1),!await n.deferredData.resolveData(e)){if(t)try{return{type:ls.data,data:n.deferredData.unwrappedData}}catch(r){return{type:ls.error,error:r}}return{type:ls.data,data:n.deferredData.data}}}function PB(n){return new URLSearchParams(n).getAll("index").some(e=>e==="")}function OB(n,e){let t=typeof e=="string"?Ig(e).search:e.search;if(n[n.length-1].route.index&&PB(t||""))return n[n.length-1];let i=gge(n);return i[i.length-1]}function Mge(n){let{formMethod:e,formAction:t,formEncType:i,text:r,formData:o,json:s}=n;if(!(!e||!t||!i)){if(r!=null)return{formMethod:e,formAction:t,formEncType:i,formData:void 0,json:void 0,text:r};if(o!=null)return{formMethod:e,formAction:t,formEncType:i,formData:o,json:void 0,text:void 0};if(s!==void 0)return{formMethod:e,formAction:t,formEncType:i,formData:void 0,json:s,text:void 0}}}function BB(n,e){return e?{state:"loading",location:n,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text}:{state:"loading",location:n,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function Snt(n,e){return{state:"submitting",location:n,formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text}}function eF(n,e){return n?{state:"loading",formMethod:n.formMethod,formAction:n.formAction,formEncType:n.formEncType,formData:n.formData,json:n.json,text:n.text,data:e}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function xnt(n,e){return{state:"submitting",formMethod:n.formMethod,formAction:n.formAction,formEncType:n.formEncType,formData:n.formData,json:n.json,text:n.text,data:e?e.data:void 0}}function lb(n){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:n}}function Lnt(n,e){try{let t=n.sessionStorage.getItem(bge);if(t){let i=JSON.parse(t);for(let[r,o]of Object.entries(i||{}))o&&Array.isArray(o)&&e.set(r,new Set(o||[]))}}catch{}}function Fnt(n,e){if(e.size>0){let t={};for(let[i,r]of e)t[i]=[...r];try{n.sessionStorage.setItem(bge,JSON.stringify(t))}catch(i){hC(!1,"Failed to save applied view transitions in sessionStorage ("+i+").")}}}function tF(){return tF=Object.assign?Object.assign.bind():function(n){for(var e=1;e{a.current=!0}),I.useCallback(function(u,c){if(c===void 0&&(c={}),!a.current)return;if(typeof u=="number"){i.go(u);return}let d=WB(u,JSON.parse(s),o,c.relative==="path");n==null&&e!=="/"&&(d.pathname=d.pathname==="/"?e:ab([e,d.pathname])),(c.replace?i.replace:i.push)(d,c.state,c)},[e,i,s,o,n])}const Dnt=I.createContext(null);function Ant(n){let e=I.useContext(uf).outlet;return e&&I.createElement(Dnt.Provider,{value:n},e)}function Wge(){let{matches:n}=I.useContext(uf),e=n[n.length-1];return e?e.params:{}}function Nnt(n,e,t,i){iF()||zi(!1);let{navigator:r}=I.useContext(nF),{matches:o}=I.useContext(uf),s=o[o.length-1],a=s?s.params:{};s&&s.pathname;let l=s?s.pathnameBase:"/";s&&s.route;let u=fC(),c;if(e){var d;let b=typeof e=="string"?Ig(e):e;l==="/"||(d=b.pathname)!=null&&d.startsWith(l)||zi(!1),c=b}else c=u;let h=c.pathname||"/",g=h;if(l!=="/"){let b=l.replace(/^\//,"").split("/");g="/"+h.replace(/^\//,"").split("/").slice(b.length).join("/")}let m=_I(n,{pathname:g}),f=Ent(m&&m.map(b=>Object.assign({},b,{params:Object.assign({},a,b.params),pathname:ab([l,r.encodeLocation?r.encodeLocation(b.pathname).pathname:b.pathname]),pathnameBase:b.pathnameBase==="/"?l:ab([l,r.encodeLocation?r.encodeLocation(b.pathnameBase).pathname:b.pathnameBase])})),o,t,i);return e&&f?I.createElement(v9.Provider,{value:{location:tF({pathname:"/",search:"",hash:"",state:null,key:"default"},c),navigationType:Ss.Pop}},f):f}function knt(){let n=Vnt(),e=mge(n)?n.status+" "+n.statusText:n instanceof Error?n.message:JSON.stringify(n),t=n instanceof Error?n.stack:null,r={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return I.createElement(I.Fragment,null,I.createElement("h2",null,"Unexpected Application Error!"),I.createElement("h3",{style:{fontStyle:"italic"}},e),t?I.createElement("pre",{style:r},t):null,null)}const Mnt=I.createElement(knt,null);class Znt extends I.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){}render(){return this.state.error!==void 0?I.createElement(uf.Provider,{value:this.props.routeContext},I.createElement(Tge.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Tnt(n){let{routeContext:e,match:t,children:i}=n,r=I.useContext(C9);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),I.createElement(uf.Provider,{value:e},i)}function Ent(n,e,t,i){var r;if(e===void 0&&(e=[]),t===void 0&&(t=null),i===void 0&&(i=null),n==null){var o;if((o=t)!=null&&o.errors)n=t.matches;else return null}let s=n,a=(r=t)==null?void 0:r.errors;if(a!=null){let c=s.findIndex(d=>d.route.id&&(a==null?void 0:a[d.route.id]));c>=0||zi(!1),s=s.slice(0,Math.min(s.length,c+1))}let l=!1,u=-1;if(t&&i&&i.v7_partialHydration)for(let c=0;c=0?s=s.slice(0,u+1):s=[s[0]];break}}}return s.reduceRight((c,d,h)=>{let g,m=!1,f=null,b=null;t&&(g=a&&d.route.id?a[d.route.id]:void 0,f=d.route.errorElement||Mnt,l&&(u<0&&h===0?(Pnt("route-fallback",!1),m=!0,b=null):u===h&&(m=!0,b=d.route.hydrateFallbackElement||null)));let C=e.concat(s.slice(0,h+1)),v=()=>{let w;return g?w=f:m?w=b:d.route.Component?w=I.createElement(d.route.Component,null):d.route.element?w=d.route.element:w=c,I.createElement(Tnt,{match:d,routeContext:{outlet:c,matches:C,isDataRoute:t!=null},children:w})};return t&&(d.route.ErrorBoundary||d.route.errorElement||h===0)?I.createElement(Znt,{location:t.location,revalidation:t.revalidation,component:f,error:g,children:v(),routeContext:{outlet:null,matches:C,isDataRoute:!0}}):v()},null)}var Rge=function(n){return n.UseBlocker="useBlocker",n.UseRevalidator="useRevalidator",n.UseNavigateStable="useNavigate",n}(Rge||{}),y9=function(n){return n.UseBlocker="useBlocker",n.UseLoaderData="useLoaderData",n.UseActionData="useActionData",n.UseRouteError="useRouteError",n.UseNavigation="useNavigation",n.UseRouteLoaderData="useRouteLoaderData",n.UseMatches="useMatches",n.UseRevalidator="useRevalidator",n.UseNavigateStable="useNavigate",n.UseRouteId="useRouteId",n}(y9||{});function Wnt(n){let e=I.useContext(C9);return e||zi(!1),e}function Rnt(n){let e=I.useContext(Zge);return e||zi(!1),e}function Gnt(n){let e=I.useContext(uf);return e||zi(!1),e}function Gge(n){let e=Gnt(),t=e.matches[e.matches.length-1];return t.route.id||zi(!1),t.route.id}function Vnt(){var n;let e=I.useContext(Tge),t=Rnt(y9.UseRouteError),i=Gge(y9.UseRouteError);return e!==void 0?e:(n=t.errors)==null?void 0:n[i]}function Xnt(){let{router:n}=Wnt(Rge.UseNavigateStable),e=Gge(y9.UseNavigateStable),t=I.useRef(!1);return Ege(()=>{t.current=!0}),I.useCallback(function(r,o){o===void 0&&(o={}),t.current&&(typeof r=="number"?n.navigate(r):n.navigate(r,tF({fromRouteId:e},o)))},[n,e])}const Vge={};function Pnt(n,e,t){!e&&!Vge[n]&&(Vge[n]=!0)}function Ont(n){let{to:e,replace:t,state:i,relative:r}=n;iF()||zi(!1);let{future:o,static:s}=I.useContext(nF),{matches:a}=I.useContext(uf),{pathname:l}=fC(),u=wg(),c=WB(e,EB(a,o.v7_relativeSplatPath),l,r==="path"),d=JSON.stringify(c);return I.useEffect(()=>u(JSON.parse(d),{replace:t,state:i,relative:r}),[u,d,r,t,i]),null}function Xge(n){return Ant(n.context)}function Bnt(n){let{basename:e="/",children:t=null,location:i,navigationType:r=Ss.Pop,navigator:o,static:s=!1,future:a}=n;iF()&&zi(!1);let l=e.replace(/^\/*/,"/"),u=I.useMemo(()=>({basename:l,navigator:o,static:s,future:tF({v7_relativeSplatPath:!1},a)}),[l,a,o,s]);typeof i=="string"&&(i=Ig(i));let{pathname:c="/",search:d="",hash:h="",state:g=null,key:m="default"}=i,f=I.useMemo(()=>{let b=KL(c,l);return b==null?null:{location:{pathname:b,search:d,hash:h,state:g,key:m},navigationType:r}},[l,c,d,h,g,m,r]);return f==null?null:I.createElement(nF.Provider,{value:u},I.createElement(v9.Provider,{children:t,value:f}))}new Promise(()=>{});function Pge(n){let e={hasErrorBoundary:n.ErrorBoundary!=null||n.errorElement!=null};return n.Component&&Object.assign(e,{element:I.createElement(n.Component),Component:void 0}),n.HydrateFallback&&Object.assign(e,{hydrateFallbackElement:I.createElement(n.HydrateFallback),HydrateFallback:void 0}),n.ErrorBoundary&&Object.assign(e,{errorElement:I.createElement(n.ErrorBoundary),ErrorBoundary:void 0}),e}function rF(){return rF=Object.assign?Object.assign.bind():function(n){for(var e=1;e{this.resolve=i=>{this.status==="pending"&&(this.status="resolved",e(i))},this.reject=i=>{this.status==="pending"&&(this.status="rejected",t(i))}})}}function $nt(n){let{fallbackElement:e,router:t,future:i}=n,[r,o]=I.useState(t.state),[s,a]=I.useState(),[l,u]=I.useState({isTransitioning:!1}),[c,d]=I.useState(),[h,g]=I.useState(),[m,f]=I.useState(),b=I.useRef(new Map),{v7_startTransition:C}=i||{},v=I.useCallback(D=>{C?jnt(D):D()},[C]),w=I.useCallback((D,A)=>{let{deletedFetchers:M,unstable_flushSync:W,unstable_viewTransitionOpts:Z}=A;M.forEach(E=>b.current.delete(E)),D.fetchers.forEach((E,V)=>{E.data!==void 0&&b.current.set(V,E.data)});let T=t.window==null||typeof t.window.document.startViewTransition!="function";if(!Z||T){W?oF(()=>o(D)):v(()=>o(D));return}if(W){oF(()=>{h&&(c&&c.resolve(),h.skipTransition()),u({isTransitioning:!0,flushSync:!0,currentLocation:Z.currentLocation,nextLocation:Z.nextLocation})});let E=t.window.document.startViewTransition(()=>{oF(()=>o(D))});E.finished.finally(()=>{oF(()=>{d(void 0),g(void 0),a(void 0),u({isTransitioning:!1})})}),oF(()=>g(E));return}h?(c&&c.resolve(),h.skipTransition(),f({state:D,currentLocation:Z.currentLocation,nextLocation:Z.nextLocation})):(a(D),u({isTransitioning:!0,flushSync:!1,currentLocation:Z.currentLocation,nextLocation:Z.nextLocation}))},[t.window,h,c,b,v]);I.useLayoutEffect(()=>t.subscribe(w),[t,w]),I.useEffect(()=>{l.isTransitioning&&!l.flushSync&&d(new Qnt)},[l]),I.useEffect(()=>{if(c&&s&&t.window){let D=s,A=c.promise,M=t.window.document.startViewTransition(async()=>{v(()=>o(D)),await A});M.finished.finally(()=>{d(void 0),g(void 0),a(void 0),u({isTransitioning:!1})}),g(M)}},[v,s,c,t.window]),I.useEffect(()=>{c&&s&&r.location.key===s.location.key&&c.resolve()},[c,h,r.location,s]),I.useEffect(()=>{!l.isTransitioning&&m&&(a(m.state),u({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}),f(void 0))},[l.isTransitioning,m]),I.useEffect(()=>{},[]);let S=I.useMemo(()=>({createHref:t.createHref,encodeLocation:t.encodeLocation,go:D=>t.navigate(D),push:(D,A,M)=>t.navigate(D,{state:A,preventScrollReset:M==null?void 0:M.preventScrollReset}),replace:(D,A,M)=>t.navigate(D,{replace:!0,state:A,preventScrollReset:M==null?void 0:M.preventScrollReset})}),[t]),F=t.basename||"/",L=I.useMemo(()=>({router:t,navigator:S,static:!1,basename:F}),[t,S,F]);return I.createElement(I.Fragment,null,I.createElement(C9.Provider,{value:L},I.createElement(Zge.Provider,{value:r},I.createElement(Knt.Provider,{value:b.current},I.createElement(Jnt.Provider,{value:l},I.createElement(Bnt,{basename:F,location:r.location,navigationType:r.historyAction,navigator:S,future:{v7_relativeSplatPath:t.future.v7_relativeSplatPath}},r.initialized||t.future.v7_partialHydration?I.createElement(qnt,{routes:t.routes,future:t.future,state:r}):e))))),null)}function qnt(n){let{routes:e,future:t,state:i}=n;return Nnt(e,void 0,i,t)}var Yge;(function(n){n.UseScrollRestoration="useScrollRestoration",n.UseSubmit="useSubmit",n.UseSubmitFetcher="useSubmitFetcher",n.UseFetcher="useFetcher",n.useViewTransitionState="useViewTransitionState"})(Yge||(Yge={}));var Hge;(function(n){n.UseFetcher="useFetcher",n.UseFetchers="useFetchers",n.UseScrollRestoration="useScrollRestoration"})(Hge||(Hge={}));function eit({routes:n,isHashRouter:e}){const t=e?Hnt(n):Ynt(n,{future:{v7_normalizeFormMethod:!0}});return ae($nt,{router:t,fallbackElement:ae(Rle,{spinning:!0})})}var tit={name:"pcn6xk",styles:"position:fixed;top:50%;left:50%"};const nit=({children:n})=>ae(I.Suspense,{fallback:ae(Rle,{spinning:!0,css:tit}),children:n}),Qt={fontFamily:{mono:'"Menlo", "Liberation Mono", "Consolas", "DejaVu Sans Mono", "Ubuntu Mono", "Courier New", "andale mono", "lucida console", monospace'},color:{primary:"#1677ff",primaryLight:"rgb(22, 119, 255, 0.2)",success:"#23CBA0",warning:"#F1911E",info:"#A9AEFC",danger:"#E51D30",text:"#333",bg:"#FFFFFF",bgGray:"#f0f2f5",border:"#DEE2EC"},fontSize:{xxs:10,xs:12,s:14,normal:16,m:20,l:24,xl:30,xxl:38},zIndex:{low:10,mid:100,high:300,higher:500,higherPlus:1e3},spacing:{base:"0.6em 1em"}},iit={type:"logger",log(n){this.output("log",n)},warn(n){this.output("warn",n)},error(n){this.output("error",n)},output(n,e){console&&console[n]}};class I9{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(e,t)}init(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=t.prefix||"i18next:",this.logger=e||iit,this.options=t,this.debug=t.debug}log(){for(var e=arguments.length,t=new Array(e),i=0;i{this.observers[i]||(this.observers[i]=new Map);const r=this.observers[i].get(t)||0;this.observers[i].set(t,r+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}emit(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r{let[a,l]=s;for(let u=0;u{let[a,l]=s;for(let u=0;u{n=i,e=r});return t.resolve=n,t.reject=e,t}function Uge(n){return n==null?"":""+n}function rit(n,e,t){n.forEach(i=>{e[i]&&(t[i]=e[i])})}const oit=/###/g;function aF(n,e,t){function i(a){return a&&a.indexOf("###")>-1?a.replace(oit,"."):a}function r(){return!n||typeof n=="string"}const o=typeof e!="string"?e:e.split(".");let s=0;for(;s":">",'"':""","'":"'","/":"/"};function uit(n){return typeof n=="string"?n.replace(/[&<>"'\/]/g,e=>lit[e]):n}class cit{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){const t=this.regExpMap.get(e);if(t!==void 0)return t;const i=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,i),this.regExpQueue.push(e),i}}const dit=[" ",",","?","!",";"],hit=new cit(20);function git(n,e,t){e=e||"",t=t||"";const i=dit.filter(s=>e.indexOf(s)<0&&t.indexOf(s)<0);if(i.length===0)return!0;const r=hit.getRegExp(`(${i.map(s=>s==="?"?"\\?":s).join("|")})`);let o=!r.test(n);if(!o){const s=n.indexOf(t);s>0&&!r.test(n.substring(0,s))&&(o=!0)}return o}function zB(n,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!n)return;if(n[e])return n[e];const i=e.split(t);let r=n;for(let o=0;o-1&&l0?n.replace("_","-"):n}class jge extends w9{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=e||{},this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){const t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,i){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const o=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,s=r.ignoreJSONStructure!==void 0?r.ignoreJSONStructure:this.options.ignoreJSONStructure;let a;e.indexOf(".")>-1?a=e.split("."):(a=[e,t],i&&(Array.isArray(i)?a.push(...i):typeof i=="string"&&o?a.push(...i.split(o)):a.push(i)));const l=S9(this.data,a);return!l&&!t&&!i&&e.indexOf(".")>-1&&(e=a[0],t=a[1],i=a.slice(2).join(".")),l||!s||typeof i!="string"?l:zB(this.data&&this.data[e]&&this.data[e][t],i,o)}addResource(e,t,i,r){let o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const s=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator;let a=[e,t];i&&(a=a.concat(s?i.split(s):i)),e.indexOf(".")>-1&&(a=e.split("."),r=t,t=a[1]),this.addNamespaces(t),Jge(this.data,a,r),o.silent||this.emit("added",e,t,i,r)}addResources(e,t,i){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const o in i)(typeof i[o]=="string"||Object.prototype.toString.apply(i[o])==="[object Array]")&&this.addResource(e,t,o,i[o],{silent:!0});r.silent||this.emit("added",e,t,i)}addResourceBundle(e,t,i,r,o){let s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},a=[e,t];e.indexOf(".")>-1&&(a=e.split("."),r=i,i=t,t=a[1]),this.addNamespaces(t);let l=S9(this.data,a)||{};s.skipCopy||(i=JSON.parse(JSON.stringify(i))),r?Kge(l,i,o):l={...l,...i},Jge(this.data,a,l),s.silent||this.emit("added",e,t,i)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit("removed",e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||(t=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(e,t)}:this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){const t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(r=>t[r]&&Object.keys(t[r]).length>0)}toJSON(){return this.data}}var Qge={processors:{},addPostProcessor(n){this.processors[n.name]=n},handle(n,e,t,i,r){return n.forEach(o=>{this.processors[o]&&(e=this.processors[o].process(e,t,i,r))}),e}};const $ge={};class L9 extends w9{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),rit(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Sg.create("translator")}changeLanguage(e){e&&(this.language=e)}exists(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(e==null)return!1;const i=this.resolve(e,t);return i&&i.res!==void 0}extractFromKey(e,t){let i=t.nsSeparator!==void 0?t.nsSeparator:this.options.nsSeparator;i===void 0&&(i=":");const r=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator;let o=t.ns||this.options.defaultNS||[];const s=i&&e.indexOf(i)>-1,a=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!git(e,i,r);if(s&&!a){const l=e.match(this.interpolator.nestingRegexp);if(l&&l.length>0)return{key:e,namespaces:o};const u=e.split(i);(i!==r||i===r&&this.options.ns.indexOf(u[0])>-1)&&(o=u.shift()),e=u.join(r)}return typeof o=="string"&&(o=[o]),{key:e,namespaces:o}}translate(e,t,i){if(typeof t!="object"&&this.options.overloadTranslationOptionHandler&&(t=this.options.overloadTranslationOptionHandler(arguments)),typeof t=="object"&&(t={...t}),t||(t={}),e==null)return"";Array.isArray(e)||(e=[String(e)]);const r=t.returnDetails!==void 0?t.returnDetails:this.options.returnDetails,o=t.keySeparator!==void 0?t.keySeparator:this.options.keySeparator,{key:s,namespaces:a}=this.extractFromKey(e[e.length-1],t),l=a[a.length-1],u=t.lng||this.language,c=t.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(u&&u.toLowerCase()==="cimode"){if(c){const S=t.nsSeparator||this.options.nsSeparator;return r?{res:`${l}${S}${s}`,usedKey:s,exactUsedKey:s,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(t)}:`${l}${S}${s}`}return r?{res:s,usedKey:s,exactUsedKey:s,usedLng:u,usedNS:l,usedParams:this.getUsedParamsDetails(t)}:s}const d=this.resolve(e,t);let h=d&&d.res;const g=d&&d.usedKey||s,m=d&&d.exactUsedKey||s,f=Object.prototype.toString.apply(h),b=["[object Number]","[object Function]","[object RegExp]"],C=t.joinArrays!==void 0?t.joinArrays:this.options.joinArrays,v=!this.i18nFormat||this.i18nFormat.handleAsObject;if(v&&h&&(typeof h!="string"&&typeof h!="boolean"&&typeof h!="number")&&b.indexOf(f)<0&&!(typeof C=="string"&&f==="[object Array]")){if(!t.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const S=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,h,{...t,ns:a}):`key '${s} (${this.language})' returned an object instead of string.`;return r?(d.res=S,d.usedParams=this.getUsedParamsDetails(t),d):S}if(o){const S=f==="[object Array]",F=S?[]:{},L=S?m:g;for(const D in h)if(Object.prototype.hasOwnProperty.call(h,D)){const A=`${L}${o}${D}`;F[D]=this.translate(A,{...t,joinArrays:!1,ns:a}),F[D]===A&&(F[D]=h[D])}h=F}}else if(v&&typeof C=="string"&&f==="[object Array]")h=h.join(C),h&&(h=this.extendTranslation(h,e,t,i));else{let S=!1,F=!1;const L=t.count!==void 0&&typeof t.count!="string",D=L9.hasDefaultValue(t),A=L?this.pluralResolver.getSuffix(u,t.count,t):"",M=t.ordinal&&L?this.pluralResolver.getSuffix(u,t.count,{ordinal:!1}):"",W=L&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),Z=W&&t[`defaultValue${this.options.pluralSeparator}zero`]||t[`defaultValue${A}`]||t[`defaultValue${M}`]||t.defaultValue;!this.isValidLookup(h)&&D&&(S=!0,h=Z),this.isValidLookup(h)||(F=!0,h=s);const E=(t.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&F?void 0:h,V=D&&Z!==h&&this.options.updateMissing;if(F||S||V){if(this.logger.log(V?"updateKey":"missingKey",u,l,s,V?Z:h),o){const B=this.resolve(s,{...t,keySeparator:!1});B&&B.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let z=[];const O=this.languageUtils.getFallbackCodes(this.options.fallbackLng,t.lng||this.language);if(this.options.saveMissingTo==="fallback"&&O&&O[0])for(let B=0;B{const X=D&&k!==h?k:E;this.options.missingKeyHandler?this.options.missingKeyHandler(B,l,Y,X,V,t):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(B,l,Y,X,V,t),this.emit("missingKey",B,l,Y,h)};this.options.saveMissing&&(this.options.saveMissingPlurals&&L?z.forEach(B=>{const Y=this.pluralResolver.getSuffixes(B,t);W&&t[`defaultValue${this.options.pluralSeparator}zero`]&&Y.indexOf(`${this.options.pluralSeparator}zero`)<0&&Y.push(`${this.options.pluralSeparator}zero`),Y.forEach(k=>{P([B],s+k,t[`defaultValue${k}`]||Z)})}):P(z,s,Z))}h=this.extendTranslation(h,e,t,d,i),F&&h===s&&this.options.appendNamespaceToMissingKey&&(h=`${l}:${s}`),(F||S)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?h=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}:${s}`:s,S?h:void 0):h=this.options.parseMissingKeyHandler(h))}return r?(d.res=h,d.usedParams=this.getUsedParamsDetails(t),d):h}extendTranslation(e,t,i,r,o){var s=this;if(this.i18nFormat&&this.i18nFormat.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...i},i.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!i.skipInterpolation){i.interpolation&&this.interpolator.init({...i,interpolation:{...this.options.interpolation,...i.interpolation}});const u=typeof e=="string"&&(i&&i.interpolation&&i.interpolation.skipOnVariables!==void 0?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let c;if(u){const h=e.match(this.interpolator.nestingRegexp);c=h&&h.length}let d=i.replace&&typeof i.replace!="string"?i.replace:i;if(this.options.interpolation.defaultVariables&&(d={...this.options.interpolation.defaultVariables,...d}),e=this.interpolator.interpolate(e,d,i.lng||this.language,i),u){const h=e.match(this.interpolator.nestingRegexp),g=h&&h.length;c1&&arguments[1]!==void 0?arguments[1]:{},i,r,o,s,a;return typeof e=="string"&&(e=[e]),e.forEach(l=>{if(this.isValidLookup(i))return;const u=this.extractFromKey(l,t),c=u.key;r=c;let d=u.namespaces;this.options.fallbackNS&&(d=d.concat(this.options.fallbackNS));const h=t.count!==void 0&&typeof t.count!="string",g=h&&!t.ordinal&&t.count===0&&this.pluralResolver.shouldUseIntlApi(),m=t.context!==void 0&&(typeof t.context=="string"||typeof t.context=="number")&&t.context!=="",f=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);d.forEach(b=>{this.isValidLookup(i)||(a=b,!$ge[`${f[0]}-${b}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(a)&&($ge[`${f[0]}-${b}`]=!0,this.logger.warn(`key "${r}" for languages "${f.join(", ")}" won't get resolved as namespace "${a}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),f.forEach(C=>{if(this.isValidLookup(i))return;s=C;const v=[c];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(v,c,C,b,t);else{let S;h&&(S=this.pluralResolver.getSuffix(C,t.count,t));const F=`${this.options.pluralSeparator}zero`,L=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(h&&(v.push(c+S),t.ordinal&&S.indexOf(L)===0&&v.push(c+S.replace(L,this.options.pluralSeparator)),g&&v.push(c+F)),m){const D=`${c}${this.options.contextSeparator}${t.context}`;v.push(D),h&&(v.push(D+S),t.ordinal&&S.indexOf(L)===0&&v.push(D+S.replace(L,this.options.pluralSeparator)),g&&v.push(D+F))}}let w;for(;w=v.pop();)this.isValidLookup(i)||(o=w,i=this.getResource(C,b,w,t))}))})}),{res:i,usedKey:r,exactUsedKey:o,usedLng:s,usedNS:a}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e==="")}getResource(e,t,i){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(e,t,i,r):this.resourceStore.getResource(e,t,i,r)}getUsedParamsDetails(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],i=e.replace&&typeof e.replace!="string";let r=i?e.replace:e;if(i&&typeof e.count<"u"&&(r.count=e.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!i){r={...r};for(const o of t)delete r[o]}return r}static hasDefaultValue(e){const t="defaultValue";for(const i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&t===i.substring(0,t.length)&&e[i]!==void 0)return!0;return!1}}function YB(n){return n.charAt(0).toUpperCase()+n.slice(1)}class qge{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Sg.create("languageUtils")}getScriptPartFromCode(e){if(e=x9(e),!e||e.indexOf("-")<0)return null;const t=e.split("-");return t.length===2||(t.pop(),t[t.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(t.join("-"))}getLanguagePartFromCode(e){if(e=x9(e),!e||e.indexOf("-")<0)return e;const t=e.split("-");return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(typeof e=="string"&&e.indexOf("-")>-1){const t=["hans","hant","latn","cyrl","cans","mong","arab"];let i=e.split("-");return this.options.lowerCaseLng?i=i.map(r=>r.toLowerCase()):i.length===2?(i[0]=i[0].toLowerCase(),i[1]=i[1].toUpperCase(),t.indexOf(i[1].toLowerCase())>-1&&(i[1]=YB(i[1].toLowerCase()))):i.length===3&&(i[0]=i[0].toLowerCase(),i[1].length===2&&(i[1]=i[1].toUpperCase()),i[0]!=="sgn"&&i[2].length===2&&(i[2]=i[2].toUpperCase()),t.indexOf(i[1].toLowerCase())>-1&&(i[1]=YB(i[1].toLowerCase())),t.indexOf(i[2].toLowerCase())>-1&&(i[2]=YB(i[2].toLowerCase()))),i.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;return e.forEach(i=>{if(t)return;const r=this.formatLanguageCode(i);(!this.options.supportedLngs||this.isSupportedCode(r))&&(t=r)}),!t&&this.options.supportedLngs&&e.forEach(i=>{if(t)return;const r=this.getLanguagePartFromCode(i);if(this.isSupportedCode(r))return t=r;t=this.options.supportedLngs.find(o=>{if(o===r)return o;if(!(o.indexOf("-")<0&&r.indexOf("-")<0)&&(o.indexOf("-")>0&&r.indexOf("-")<0&&o.substring(0,o.indexOf("-"))===r||o.indexOf(r)===0&&r.length>1))return o})}),t||(t=this.getFallbackCodes(this.options.fallbackLng)[0]),t}getFallbackCodes(e,t){if(!e)return[];if(typeof e=="function"&&(e=e(t)),typeof e=="string"&&(e=[e]),Object.prototype.toString.apply(e)==="[object Array]")return e;if(!t)return e.default||[];let i=e[t];return i||(i=e[this.getScriptPartFromCode(t)]),i||(i=e[this.formatLanguageCode(t)]),i||(i=e[this.getLanguagePartFromCode(t)]),i||(i=e.default),i||[]}toResolveHierarchy(e,t){const i=this.getFallbackCodes(t||this.options.fallbackLng||[],e),r=[],o=s=>{s&&(this.isSupportedCode(s)?r.push(s):this.logger.warn(`rejecting language code not found in supportedLngs: ${s}`))};return typeof e=="string"&&(e.indexOf("-")>-1||e.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&o(this.formatLanguageCode(e)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&o(this.getScriptPartFromCode(e)),this.options.load!=="currentOnly"&&o(this.getLanguagePartFromCode(e))):typeof e=="string"&&o(this.formatLanguageCode(e)),i.forEach(s=>{r.indexOf(s)<0&&o(this.formatLanguageCode(s))}),r}}let mit=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],fit={1:function(n){return+(n>1)},2:function(n){return+(n!=1)},3:function(n){return 0},4:function(n){return n%10==1&&n%100!=11?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2},5:function(n){return n==0?0:n==1?1:n==2?2:n%100>=3&&n%100<=10?3:n%100>=11?4:5},6:function(n){return n==1?0:n>=2&&n<=4?1:2},7:function(n){return n==1?0:n%10>=2&&n%10<=4&&(n%100<10||n%100>=20)?1:2},8:function(n){return n==1?0:n==2?1:n!=8&&n!=11?2:3},9:function(n){return+(n>=2)},10:function(n){return n==1?0:n==2?1:n<7?2:n<11?3:4},11:function(n){return n==1||n==11?0:n==2||n==12?1:n>2&&n<20?2:3},12:function(n){return+(n%10!=1||n%100==11)},13:function(n){return+(n!==0)},14:function(n){return n==1?0:n==2?1:n==3?2:3},15:function(n){return n%10==1&&n%100!=11?0:n%10>=2&&(n%100<10||n%100>=20)?1:2},16:function(n){return n%10==1&&n%100!=11?0:n!==0?1:2},17:function(n){return n==1||n%10==1&&n%100!=11?0:1},18:function(n){return n==0?0:n==1?1:2},19:function(n){return n==1?0:n==0||n%100>1&&n%100<11?1:n%100>10&&n%100<20?2:3},20:function(n){return n==1?0:n==0||n%100>0&&n%100<20?1:2},21:function(n){return n%100==1?1:n%100==2?2:n%100==3||n%100==4?3:0},22:function(n){return n==1?0:n==2?1:(n<0||n>10)&&n%10==0?2:3}};const pit=["v1","v2","v3"],bit=["v4"],eme={zero:0,one:1,two:2,few:3,many:4,other:5};function Cit(){const n={};return mit.forEach(e=>{e.lngs.forEach(t=>{n[t]={numbers:e.nr,plurals:fit[e.fc]}})}),n}class vit{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=e,this.options=t,this.logger=Sg.create("pluralResolver"),(!this.options.compatibilityJSON||bit.includes(this.options.compatibilityJSON))&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=Cit()}addRule(e,t){this.rules[e]=t}getRule(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(x9(e==="dev"?"en":e),{type:t.ordinal?"ordinal":"cardinal"})}catch{return}return this.rules[e]||this.rules[this.languageUtils.getLanguagePartFromCode(e)]}needsPlural(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const i=this.getRule(e,t);return this.shouldUseIntlApi()?i&&i.resolvedOptions().pluralCategories.length>1:i&&i.numbers.length>1}getPluralFormsOfKey(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(e,i).map(r=>`${t}${r}`)}getSuffixes(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const i=this.getRule(e,t);return i?this.shouldUseIntlApi()?i.resolvedOptions().pluralCategories.sort((r,o)=>eme[r]-eme[o]).map(r=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:""}${r}`):i.numbers.map(r=>this.getSuffix(e,r,t)):[]}getSuffix(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const r=this.getRule(e,i);return r?this.shouldUseIntlApi()?`${this.options.prepend}${i.ordinal?`ordinal${this.options.prepend}`:""}${r.select(t)}`:this.getSuffixRetroCompatible(r,t):(this.logger.warn(`no plural rule found for: ${e}`),"")}getSuffixRetroCompatible(e,t){const i=e.noAbs?e.plurals(t):e.plurals(Math.abs(t));let r=e.numbers[i];this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1&&(r===2?r="plural":r===1&&(r=""));const o=()=>this.options.prepend&&r.toString()?this.options.prepend+r.toString():r.toString();return this.options.compatibilityJSON==="v1"?r===1?"":typeof r=="number"?`_plural_${r.toString()}`:o():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&e.numbers.length===2&&e.numbers[0]===1?o():this.options.prepend&&i.toString()?this.options.prepend+i.toString():i.toString()}shouldUseIntlApi(){return!pit.includes(this.options.compatibilityJSON)}}function tme(n,e,t){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",r=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,o=ait(n,e,t);return!o&&r&&typeof t=="string"&&(o=zB(n,t,i),o===void 0&&(o=zB(e,t,i))),o}class yit{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Sg.create("interpolator"),this.options=e,this.format=e.interpolation&&e.interpolation.format||(t=>t),this.init(e)}init(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};e.interpolation||(e.interpolation={escapeValue:!0});const t=e.interpolation;this.escape=t.escape!==void 0?t.escape:uit,this.escapeValue=t.escapeValue!==void 0?t.escapeValue:!0,this.useRawValueToEscape=t.useRawValueToEscape!==void 0?t.useRawValueToEscape:!1,this.prefix=t.prefix?AI(t.prefix):t.prefixEscaped||"{{",this.suffix=t.suffix?AI(t.suffix):t.suffixEscaped||"}}",this.formatSeparator=t.formatSeparator?t.formatSeparator:t.formatSeparator||",",this.unescapePrefix=t.unescapeSuffix?"":t.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":t.unescapeSuffix||"",this.nestingPrefix=t.nestingPrefix?AI(t.nestingPrefix):t.nestingPrefixEscaped||AI("$t("),this.nestingSuffix=t.nestingSuffix?AI(t.nestingSuffix):t.nestingSuffixEscaped||AI(")"),this.nestingOptionsSeparator=t.nestingOptionsSeparator?t.nestingOptionsSeparator:t.nestingOptionsSeparator||",",this.maxReplaces=t.maxReplaces?t.maxReplaces:1e3,this.alwaysFormat=t.alwaysFormat!==void 0?t.alwaysFormat:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const e=(t,i)=>t&&t.source===i?(t.lastIndex=0,t):new RegExp(i,"g");this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(e,t,i,r){let o,s,a;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function u(m){return m.replace(/\$/g,"$$$$")}const c=m=>{if(m.indexOf(this.formatSeparator)<0){const v=tme(t,l,m,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(v,void 0,i,{...r,...t,interpolationkey:m}):v}const f=m.split(this.formatSeparator),b=f.shift().trim(),C=f.join(this.formatSeparator).trim();return this.format(tme(t,l,b,this.options.keySeparator,this.options.ignoreJSONStructure),C,i,{...r,...t,interpolationkey:b})};this.resetRegExp();const d=r&&r.missingInterpolationHandler||this.options.missingInterpolationHandler,h=r&&r.interpolation&&r.interpolation.skipOnVariables!==void 0?r.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:m=>u(m)},{regex:this.regexp,safeValue:m=>this.escapeValue?u(this.escape(m)):u(m)}].forEach(m=>{for(a=0;o=m.regex.exec(e);){const f=o[1].trim();if(s=c(f),s===void 0)if(typeof d=="function"){const C=d(e,o,r);s=typeof C=="string"?C:""}else if(r&&Object.prototype.hasOwnProperty.call(r,f))s="";else if(h){s=o[0];continue}else this.logger.warn(`missed to pass in variable ${f} for interpolating ${e}`),s="";else typeof s!="string"&&!this.useRawValueToEscape&&(s=Uge(s));const b=m.safeValue(s);if(e=e.replace(o[0],b),h?(m.regex.lastIndex+=s.length,m.regex.lastIndex-=o[0].length):m.regex.lastIndex=0,a++,a>=this.maxReplaces)break}}),e}nest(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r,o,s;function a(l,u){const c=this.nestingOptionsSeparator;if(l.indexOf(c)<0)return l;const d=l.split(new RegExp(`${c}[ ]*{`));let h=`{${d[1]}`;l=d[0],h=this.interpolate(h,s);const g=h.match(/'/g),m=h.match(/"/g);(g&&g.length%2===0&&!m||m.length%2!==0)&&(h=h.replace(/'/g,'"'));try{s=JSON.parse(h),u&&(s={...u,...s})}catch(f){return this.logger.warn(`failed parsing options string in nesting for key ${l}`,f),`${l}${c}${h}`}return s.defaultValue&&s.defaultValue.indexOf(this.prefix)>-1&&delete s.defaultValue,l}for(;r=this.nestingRegexp.exec(e);){let l=[];s={...i},s=s.replace&&typeof s.replace!="string"?s.replace:s,s.applyPostProcessor=!1,delete s.defaultValue;let u=!1;if(r[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(r[1])){const c=r[1].split(this.formatSeparator).map(d=>d.trim());r[1]=c.shift(),l=c,u=!0}if(o=t(a.call(this,r[1].trim(),s),s),o&&r[0]===e&&typeof o!="string")return o;typeof o!="string"&&(o=Uge(o)),o||(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),o=""),u&&(o=l.reduce((c,d)=>this.format(c,d,i.lng,{...i,interpolationkey:r[1].trim()}),o.trim())),e=e.replace(r[0],o),this.regexp.lastIndex=0}return e}}function Iit(n){let e=n.toLowerCase().trim();const t={};if(n.indexOf("(")>-1){const i=n.split("(");e=i[0].toLowerCase().trim();const r=i[1].substring(0,i[1].length-1);e==="currency"&&r.indexOf(":")<0?t.currency||(t.currency=r.trim()):e==="relativetime"&&r.indexOf(":")<0?t.range||(t.range=r.trim()):r.split(";").forEach(s=>{if(!s)return;const[a,...l]=s.split(":"),u=l.join(":").trim().replace(/^'+|'+$/g,"");t[a.trim()]||(t[a.trim()]=u),u==="false"&&(t[a.trim()]=!1),u==="true"&&(t[a.trim()]=!0),isNaN(u)||(t[a.trim()]=parseInt(u,10))})}return{formatName:e,formatOptions:t}}function NI(n){const e={};return function(i,r,o){const s=r+JSON.stringify(o);let a=e[s];return a||(a=n(x9(r),o),e[s]=a),a(i)}}class wit{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Sg.create("formatter"),this.options=e,this.formats={number:NI((t,i)=>{const r=new Intl.NumberFormat(t,{...i});return o=>r.format(o)}),currency:NI((t,i)=>{const r=new Intl.NumberFormat(t,{...i,style:"currency"});return o=>r.format(o)}),datetime:NI((t,i)=>{const r=new Intl.DateTimeFormat(t,{...i});return o=>r.format(o)}),relativetime:NI((t,i)=>{const r=new Intl.RelativeTimeFormat(t,{...i});return o=>r.format(o,i.range||"day")}),list:NI((t,i)=>{const r=new Intl.ListFormat(t,{...i});return o=>r.format(o)})},this.init(e)}init(e){const i=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=i.formatSeparator?i.formatSeparator:i.formatSeparator||","}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=NI(t)}format(e,t,i){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return t.split(this.formatSeparator).reduce((a,l)=>{const{formatName:u,formatOptions:c}=Iit(l);if(this.formats[u]){let d=a;try{const h=r&&r.formatParams&&r.formatParams[r.interpolationkey]||{},g=h.locale||h.lng||r.locale||r.lng||i;d=this.formats[u](a,g,{...c,...r,...h})}catch(h){this.logger.warn(h)}return d}else this.logger.warn(`there was no format function for ${u}`);return a},e)}}function Sit(n,e){n.pending[e]!==void 0&&(delete n.pending[e],n.pendingCount--)}class xit extends w9{constructor(e,t,i){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=e,this.store=t,this.services=i,this.languageUtils=i.languageUtils,this.options=r,this.logger=Sg.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(i,r.backend,r)}queueLoad(e,t,i,r){const o={},s={},a={},l={};return e.forEach(u=>{let c=!0;t.forEach(d=>{const h=`${u}|${d}`;!i.reload&&this.store.hasResourceBundle(u,d)?this.state[h]=2:this.state[h]<0||(this.state[h]===1?s[h]===void 0&&(s[h]=!0):(this.state[h]=1,c=!1,s[h]===void 0&&(s[h]=!0),o[h]===void 0&&(o[h]=!0),l[d]===void 0&&(l[d]=!0)))}),c||(a[u]=!0)}),(Object.keys(o).length||Object.keys(s).length)&&this.queue.push({pending:s,pendingCount:Object.keys(s).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(o),pending:Object.keys(s),toLoadLanguages:Object.keys(a),toLoadNamespaces:Object.keys(l)}}loaded(e,t,i){const r=e.split("|"),o=r[0],s=r[1];t&&this.emit("failedLoading",o,s,t),i&&this.store.addResourceBundle(o,s,i,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2;const a={};this.queue.forEach(l=>{sit(l.loaded,[o],s),Sit(l,e),t&&l.errors.push(t),l.pendingCount===0&&!l.done&&(Object.keys(l.loaded).forEach(u=>{a[u]||(a[u]={});const c=l.loaded[u];c.length&&c.forEach(d=>{a[u][d]===void 0&&(a[u][d]=!0)})}),l.done=!0,l.errors.length?l.callback(l.errors):l.callback())}),this.emit("loaded",a),this.queue=this.queue.filter(l=>!l.done)}read(e,t,i){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,s=arguments.length>5?arguments[5]:void 0;if(!e.length)return s(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:i,tried:r,wait:o,callback:s});return}this.readingCalls++;const a=(u,c)=>{if(this.readingCalls--,this.waitingReads.length>0){const d=this.waitingReads.shift();this.read(d.lng,d.ns,d.fcName,d.tried,d.wait,d.callback)}if(u&&c&&r{this.read.call(this,e,t,i,r+1,o*2,s)},o);return}s(u,c)},l=this.backend[i].bind(this.backend);if(l.length===2){try{const u=l(e,t);u&&typeof u.then=="function"?u.then(c=>a(null,c)).catch(a):a(null,u)}catch(u){a(u)}return}return l(e,t,a)}prepareLoading(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),r&&r();typeof e=="string"&&(e=this.languageUtils.toResolveHierarchy(e)),typeof t=="string"&&(t=[t]);const o=this.queueLoad(e,t,i,r);if(!o.toLoad.length)return o.pending.length||r(),null;o.toLoad.forEach(s=>{this.loadOne(s)})}load(e,t,i){this.prepareLoading(e,t,{},i)}reload(e,t,i){this.prepareLoading(e,t,{reload:!0},i)}loadOne(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const i=e.split("|"),r=i[0],o=i[1];this.read(r,o,"read",void 0,void 0,(s,a)=>{s&&this.logger.warn(`${t}loading namespace ${o} for language ${r} failed`,s),!s&&a&&this.logger.log(`${t}loaded namespace ${o} for language ${r}`,a),this.loaded(e,s,a)})}saveMissing(e,t,i,r,o){let s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},a=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${i}" as the namespace "${t}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(i==null||i==="")){if(this.backend&&this.backend.create){const l={...s,isUpdate:o},u=this.backend.create.bind(this.backend);if(u.length<6)try{let c;u.length===5?c=u(e,t,i,r,l):c=u(e,t,i,r),c&&typeof c.then=="function"?c.then(d=>a(null,d)).catch(a):a(null,c)}catch(c){a(c)}else u(e,t,i,r,a,l)}!e||!e[0]||this.store.addResource(e[0],t,i,r)}}}function nme(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(e){let t={};if(typeof e[1]=="object"&&(t=e[1]),typeof e[1]=="string"&&(t.defaultValue=e[1]),typeof e[2]=="string"&&(t.tDescription=e[2]),typeof e[2]=="object"||typeof e[3]=="object"){const i=e[3]||e[2];Object.keys(i).forEach(r=>{t[r]=i[r]})}return t},interpolation:{escapeValue:!0,format:n=>n,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function ime(n){return typeof n.ns=="string"&&(n.ns=[n.ns]),typeof n.fallbackLng=="string"&&(n.fallbackLng=[n.fallbackLng]),typeof n.fallbackNS=="string"&&(n.fallbackNS=[n.fallbackNS]),n.supportedLngs&&n.supportedLngs.indexOf("cimode")<0&&(n.supportedLngs=n.supportedLngs.concat(["cimode"])),n}function F9(){}function Lit(n){Object.getOwnPropertyNames(Object.getPrototypeOf(n)).forEach(t=>{typeof n[t]=="function"&&(n[t]=n[t].bind(n))})}class lF extends w9{constructor(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;if(super(),this.options=ime(e),this.services={},this.logger=Sg,this.modules={external:[]},Lit(this),t&&!this.isInitialized&&!e.isClone){if(!this.options.initImmediate)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(){var e=this;let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof t=="function"&&(i=t,t={}),!t.defaultNS&&t.defaultNS!==!1&&t.ns&&(typeof t.ns=="string"?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));const r=nme();this.options={...r,...this.options,...ime(t)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...r.interpolation,...this.options.interpolation}),t.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=t.keySeparator),t.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=t.nsSeparator);function o(c){return c?typeof c=="function"?new c:c:null}if(!this.options.isClone){this.modules.logger?Sg.init(o(this.modules.logger),this.options):Sg.init(null,this.options);let c;this.modules.formatter?c=this.modules.formatter:typeof Intl<"u"&&(c=wit);const d=new qge(this.options);this.store=new jge(this.options.resources,this.options);const h=this.services;h.logger=Sg,h.resourceStore=this.store,h.languageUtils=d,h.pluralResolver=new vit(d,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),c&&(!this.options.interpolation.format||this.options.interpolation.format===r.interpolation.format)&&(h.formatter=o(c),h.formatter.init(h,this.options),this.options.interpolation.format=h.formatter.format.bind(h.formatter)),h.interpolator=new yit(this.options),h.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},h.backendConnector=new xit(o(this.modules.backend),h.resourceStore,h,this.options),h.backendConnector.on("*",function(g){for(var m=arguments.length,f=new Array(m>1?m-1:0),b=1;b1?m-1:0),b=1;b{g.init&&g.init(this)})}if(this.format=this.options.interpolation.format,i||(i=F9),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const c=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);c.length>0&&c[0]!=="dev"&&(this.options.lng=c[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(c=>{this[c]=function(){return e.store[c](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(c=>{this[c]=function(){return e.store[c](...arguments),e}});const l=sF(),u=()=>{const c=(d,h)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),l.resolve(h),i(d,h)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return c(null,this.t.bind(this));this.changeLanguage(this.options.lng,c)};return this.options.resources||!this.options.initImmediate?u():setTimeout(u,0),l}loadResources(e){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:F9;const r=typeof e=="string"?e:this.language;if(typeof e=="function"&&(i=e),!this.options.resources||this.options.partialBundledLanguages){if(r&&r.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return i();const o=[],s=a=>{if(!a||a==="cimode")return;this.services.languageUtils.toResolveHierarchy(a).forEach(u=>{u!=="cimode"&&o.indexOf(u)<0&&o.push(u)})};r?s(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(l=>s(l)),this.options.preload&&this.options.preload.forEach(a=>s(a)),this.services.backendConnector.load(o,this.options.ns,a=>{!a&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),i(a)})}else i(null)}reloadResources(e,t,i){const r=sF();return e||(e=this.languages),t||(t=this.options.ns),i||(i=F9),this.services.backendConnector.reload(e,t,o=>{r.resolve(),i(o)}),r}use(e){if(!e)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!e.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return e.type==="backend"&&(this.modules.backend=e),(e.type==="logger"||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type==="languageDetector"&&(this.modules.languageDetector=e),e.type==="i18nFormat"&&(this.modules.i18nFormat=e),e.type==="postProcessor"&&Qge.addPostProcessor(e),e.type==="formatter"&&(this.modules.formatter=e),e.type==="3rdParty"&&this.modules.external.push(e),this}setResolvedLanguage(e){if(!(!e||!this.languages)&&!(["cimode","dev"].indexOf(e)>-1))for(let t=0;t-1)&&this.store.hasLanguageSomeTranslations(i)){this.resolvedLanguage=i;break}}}changeLanguage(e,t){var i=this;this.isLanguageChangingTo=e;const r=sF();this.emit("languageChanging",e);const o=l=>{this.language=l,this.languages=this.services.languageUtils.toResolveHierarchy(l),this.resolvedLanguage=void 0,this.setResolvedLanguage(l)},s=(l,u)=>{u?(o(u),this.translator.changeLanguage(u),this.isLanguageChangingTo=void 0,this.emit("languageChanged",u),this.logger.log("languageChanged",u)):this.isLanguageChangingTo=void 0,r.resolve(function(){return i.t(...arguments)}),t&&t(l,function(){return i.t(...arguments)})},a=l=>{!e&&!l&&this.services.languageDetector&&(l=[]);const u=typeof l=="string"?l:this.services.languageUtils.getBestMatchFromCodes(l);u&&(this.language||o(u),this.translator.language||this.translator.changeLanguage(u),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(u)),this.loadResources(u,c=>{s(c,u)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?a(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e),r}getFixedT(e,t,i){var r=this;const o=function(s,a){let l;if(typeof a!="object"){for(var u=arguments.length,c=new Array(u>2?u-2:0),d=2;d`${l.keyPrefix}${h}${m}`):g=l.keyPrefix?`${l.keyPrefix}${h}${s}`:s,r.t(g,l)};return typeof e=="string"?o.lng=e:o.lngs=e,o.ns=t,o.keyPrefix=i,o}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const i=t.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,o=this.languages[this.languages.length-1];if(i.toLowerCase()==="cimode")return!0;const s=(a,l)=>{const u=this.services.backendConnector.state[`${a}|${l}`];return u===-1||u===2};if(t.precheck){const a=t.precheck(this,s);if(a!==void 0)return a}return!!(this.hasResourceBundle(i,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||s(i,e)&&(!r||s(o,e)))}loadNamespaces(e,t){const i=sF();return this.options.ns?(typeof e=="string"&&(e=[e]),e.forEach(r=>{this.options.ns.indexOf(r)<0&&this.options.ns.push(r)}),this.loadResources(r=>{i.resolve(),t&&t(r)}),i):(t&&t(),Promise.resolve())}loadLanguages(e,t){const i=sF();typeof e=="string"&&(e=[e]);const r=this.options.preload||[],o=e.filter(s=>r.indexOf(s)<0);return o.length?(this.options.preload=r.concat(o),this.loadResources(s=>{i.resolve(),t&&t(s)}),i):(t&&t(),Promise.resolve())}dir(e){if(e||(e=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!e)return"rtl";const t=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],i=this.services&&this.services.languageUtils||new qge(nme());return t.indexOf(i.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;return new lF(e,t)}cloneInstance(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:F9;const i=e.forkResourceStore;i&&delete e.forkResourceStore;const r={...this.options,...e,isClone:!0},o=new lF(r);return(e.debug!==void 0||e.prefix!==void 0)&&(o.logger=o.logger.clone(e)),["store","services","language"].forEach(a=>{o[a]=this[a]}),o.services={...this.services},o.services.utils={hasLoadedNamespace:o.hasLoadedNamespace.bind(o)},i&&(o.store=new jge(this.store.data,r),o.services.resourceStore=o.store),o.translator=new L9(o.services,r),o.translator.on("*",function(a){for(var l=arguments.length,u=new Array(l>1?l-1:0),c=1;c0){var a=r.maxAge-0;if(Number.isNaN(a))throw new Error("maxAge should be a Number");s+="; Max-Age=".concat(Math.floor(a))}if(r.domain){if(!ome.test(r.domain))throw new TypeError("option domain is invalid");s+="; Domain=".concat(r.domain)}if(r.path){if(!ome.test(r.path))throw new TypeError("option path is invalid");s+="; Path=".concat(r.path)}if(r.expires){if(typeof r.expires.toUTCString!="function")throw new TypeError("option expires is invalid");s+="; Expires=".concat(r.expires.toUTCString())}if(r.httpOnly&&(s+="; HttpOnly"),r.secure&&(s+="; Secure"),r.sameSite){var l=typeof r.sameSite=="string"?r.sameSite.toLowerCase():r.sameSite;switch(l){case!0:s+="; SameSite=Strict";break;case"lax":s+="; SameSite=Lax";break;case"strict":s+="; SameSite=Strict";break;case"none":s+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return s},sme={create:function(e,t,i,r){var o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};i&&(o.expires=new Date,o.expires.setTime(o.expires.getTime()+i*60*1e3)),r&&(o.domain=r),document.cookie=Ait(e,encodeURIComponent(t),o)},read:function(e){for(var t="".concat(e,"="),i=document.cookie.split(";"),r=0;r-1&&(i=window.location.hash.substring(window.location.hash.indexOf("?")));for(var r=i.substring(1),o=r.split("&"),s=0;s0){var l=o[s].substring(0,a);l===e.lookupQuerystring&&(t=o[s].substring(a+1))}}}return t}},uF=null,ame=function(){if(uF!==null)return uF;try{uF=window!=="undefined"&&window.localStorage!==null;var e="i18next.translate.boo";window.localStorage.setItem(e,"foo"),window.localStorage.removeItem(e)}catch{uF=!1}return uF},Mit={name:"localStorage",lookup:function(e){var t;if(e.lookupLocalStorage&&ame()){var i=window.localStorage.getItem(e.lookupLocalStorage);i&&(t=i)}return t},cacheUserLanguage:function(e,t){t.lookupLocalStorage&&ame()&&window.localStorage.setItem(t.lookupLocalStorage,e)}},cF=null,lme=function(){if(cF!==null)return cF;try{cF=window!=="undefined"&&window.sessionStorage!==null;var e="i18next.translate.boo";window.sessionStorage.setItem(e,"foo"),window.sessionStorage.removeItem(e)}catch{cF=!1}return cF},Zit={name:"sessionStorage",lookup:function(e){var t;if(e.lookupSessionStorage&&lme()){var i=window.sessionStorage.getItem(e.lookupSessionStorage);i&&(t=i)}return t},cacheUserLanguage:function(e,t){t.lookupSessionStorage&&lme()&&window.sessionStorage.setItem(t.lookupSessionStorage,e)}},Tit={name:"navigator",lookup:function(e){var t=[];if(typeof navigator<"u"){if(navigator.languages)for(var i=0;i0?t:void 0}},Eit={name:"htmlTag",lookup:function(e){var t,i=e.htmlTag||(typeof document<"u"?document.documentElement:null);return i&&typeof i.getAttribute=="function"&&(t=i.getAttribute("lang")),t}},Wit={name:"path",lookup:function(e){var t;if(typeof window<"u"){var i=window.location.pathname.match(/\/([a-zA-Z-]*)/g);if(i instanceof Array)if(typeof e.lookupFromPathIndex=="number"){if(typeof i[e.lookupFromPathIndex]!="string")return;t=i[e.lookupFromPathIndex].replace("/","")}else t=i[0].replace("/","")}return t}},Rit={name:"subdomain",lookup:function(e){var t=typeof e.lookupFromSubdomainIndex=="number"?e.lookupFromSubdomainIndex+1:1,i=typeof window<"u"&&window.location&&window.location.hostname&&window.location.hostname.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(i)return i[t]}};function Git(){return{order:["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"],lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:function(e){return e}}}var ume=function(){function n(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Cs(this,n),this.type="languageDetector",this.detectors={},this.init(e,t)}return vs(n,[{key:"init",value:function(t){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=t||{languageUtils:{}},this.options=Dit(i,this.options||{},Git()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=function(o){return o.replace("-","_")}),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=r,this.addDetector(Nit),this.addDetector(kit),this.addDetector(Mit),this.addDetector(Zit),this.addDetector(Tit),this.addDetector(Eit),this.addDetector(Wit),this.addDetector(Rit)}},{key:"addDetector",value:function(t){return this.detectors[t.name]=t,this}},{key:"detect",value:function(t){var i=this;t||(t=this.options.order);var r=[];return t.forEach(function(o){if(i.detectors[o]){var s=i.detectors[o].lookup(i.options);s&&typeof s=="string"&&(s=[s]),s&&(r=r.concat(s))}}),r=r.map(function(o){return i.options.convertDetectedLanguage(o)}),this.services.languageUtils.getBestMatchFromCodes?r:r.length>0?r[0]:null}},{key:"cacheUserLanguage",value:function(t,i){var r=this;i||(i=this.options.caches),i&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(t)>-1||i.forEach(function(o){r.detectors[o]&&r.detectors[o].cacheUserLanguage(t,r.options)}))}}]),n}();ume.type="languageDetector";function Vit(){if(console&&console.warn){for(var n=arguments.length,e=new Array(n),t=0;t()=>{if(n.isInitialized)e();else{const t=()=>{setTimeout(()=>{n.off("initialized",t)},0),e()};n.on("initialized",t)}};function hme(n,e,t){n.loadNamespaces(e,dme(n,t))}function gme(n,e,t,i){typeof t=="string"&&(t=[t]),t.forEach(r=>{n.options.ns.indexOf(r)<0&&n.options.ns.push(r)}),n.loadLanguages(e,dme(n,i))}function Xit(n,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const i=e.languages[0],r=e.options?e.options.fallbackLng:!1,o=e.languages[e.languages.length-1];if(i.toLowerCase()==="cimode")return!0;const s=(a,l)=>{const u=e.services.backendConnector.state[`${a}|${l}`];return u===-1||u===2};return t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&e.services.backendConnector.backend&&e.isLanguageChangingTo&&!s(e.isLanguageChangingTo,n)?!1:!!(e.hasResourceBundle(i,n)||!e.services.backendConnector.backend||e.options.resources&&!e.options.partialBundledLanguages||s(i,n)&&(!r||s(o,n)))}function Pit(n,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return!e.languages||!e.languages.length?(HB("i18n.languages were undefined or empty",e.languages),!0):e.options.ignoreJSONStructure!==void 0?e.hasLoadedNamespace(n,{lng:t.lng,precheck:(r,o)=>{if(t.bindI18n&&t.bindI18n.indexOf("languageChanging")>-1&&r.services.backendConnector.backend&&r.isLanguageChangingTo&&!o(r.isLanguageChangingTo,n))return!1}}):Xit(n,e,t)}const Oit=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,Bit={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'," ":" "," ":" ","©":"©","©":"©","®":"®","®":"®","…":"…","…":"…","/":"/","/":"/"},zit=n=>Bit[n];let UB={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:n=>n.replace(Oit,zit)};function Yit(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};UB={...UB,...n}}function Hit(){return UB}let mme;function Uit(n){mme=n}function Jit(){return mme}const Kit={type:"3rdParty",init(n){Yit(n.options.react),Uit(n)}},jit=I.createContext();class Qit{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(t=>{this.usedNamespaces[t]||(this.usedNamespaces[t]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}const $it=(n,e)=>{const t=I.useRef();return I.useEffect(()=>{t.current=e?t.current:n},[n,e]),t.current};function fme(n,e,t,i){return n.getFixedT(e,t,i)}function qit(n,e,t,i){return I.useCallback(fme(n,e,t,i),[n,e,t,i])}function va(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{i18n:t}=e,{i18n:i,defaultNS:r}=I.useContext(jit)||{},o=t||i||Jit();if(o&&!o.reportNamespaces&&(o.reportNamespaces=new Qit),!o){HB("You will need to pass in an i18next instance by using initReactI18next");const S=(L,D)=>typeof D=="string"?D:D&&typeof D=="object"&&typeof D.defaultValue=="string"?D.defaultValue:Array.isArray(L)?L[L.length-1]:L,F=[S,{},!1];return F.t=S,F.i18n={},F.ready=!1,F}o.options.react&&o.options.react.wait!==void 0&&HB("It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.");const s={...Hit(),...o.options.react,...e},{useSuspense:a,keyPrefix:l}=s;let u=n||r||o.options&&o.options.defaultNS;u=typeof u=="string"?[u]:u||["translation"],o.reportNamespaces.addUsedNamespaces&&o.reportNamespaces.addUsedNamespaces(u);const c=(o.isInitialized||o.initializedStoreOnce)&&u.every(S=>Pit(S,o,s)),d=qit(o,e.lng||null,s.nsMode==="fallback"?u:u[0],l),h=()=>d,g=()=>fme(o,e.lng||null,s.nsMode==="fallback"?u:u[0],l),[m,f]=I.useState(h);let b=u.join();e.lng&&(b=`${e.lng}${b}`);const C=$it(b),v=I.useRef(!0);I.useEffect(()=>{const{bindI18n:S,bindI18nStore:F}=s;v.current=!0,!c&&!a&&(e.lng?gme(o,e.lng,u,()=>{v.current&&f(g)}):hme(o,u,()=>{v.current&&f(g)})),c&&C&&C!==b&&v.current&&f(g);function L(){v.current&&f(g)}return S&&o&&o.on(S,L),F&&o&&o.store.on(F,L),()=>{v.current=!1,S&&o&&S.split(" ").forEach(D=>o.off(D,L)),F&&o&&F.split(" ").forEach(D=>o.store.off(D,L))}},[o,b]),I.useEffect(()=>{v.current&&c&&f(h)},[o,l,c]);const w=[m,o,c];if(w.t=m,w.i18n=o,w.ready=c,c||!c&&!a)return w;throw new Promise(S=>{e.lng?gme(o,e.lng,u,()=>S()):hme(o,u,()=>S())})}const ert={updateConfig:"update config",updateConfigSuccess:"update config successful",requestTimeoutLabel:"request timeout(unit: second)",requestTimeoutPlaceholder:"please input request timeout",authorizationLabel:"Authorization",authorizationPlaceholder:"please input Authorization",submit:"submit",reselectService:"reselect service",en:"English",zh:"Zh-CN",inputUrl:"please input openapi document url"},trt={updateConfig:"修改配置",updateConfigSuccess:"修改配置成功",requestTimeoutLabel:"请求超时时间(单位: 秒)",requestTimeoutPlaceholder:"请输入请求超时时间",authorizationLabel:"Authorization",authorizationPlaceholder:"请输入Authorization",submit:"提交",reselectService:"重选服务",en:"英语",zh:"简体中文",inputUrl:"请输入 openapi 文档链接"},nrt={urlModeImport:"url mode import",fileModeImport:"file mode import",textModeImport:"text mode import",requiredFieldPlaceholder:"please input required field",serviceURLLabel:"service url, default protocol is http, for example: https://srv-demo-docker.onrender.com/openapi",serviceURLLabel2:"service url, default protocol is http, for example: https://srv-demo-docker.onrender.com",serviceURLPlaceholder:"please input service url, for example: http://127.0.0.1:80/swagger/doc.json",serviceURLPlaceholder2:"please input service url, for example: http://127.0.0.1:80",importBtn:"import",uploadBtn:"click to upload",uploadLabel:"swagger2/openapi3",uploadPlaceholder:"please select swagger2/openapi3 file to upload",parseWarn:"parse failed, please upload correct format swagger2/openapi3 file",openapiTextContentLabel:"swagger2/openapi3 text",openapiTextContentPlaceholder:"please input swagger2/openapi3 text",parseTextWarn:"parse failed, please check swagger2/openapi3 format text correctness"},irt={urlModeImport:"URL模式导入",fileModeImport:"文件模式导入",textModeImport:"文本模式导入",requiredFieldPlaceholder:"请输入必填项",serviceURLLabel:"服务网关地址, 默认协议http, 例如: https://srv-demo-docker.onrender.com/openapi",serviceURLLabel2:"服务网关地址, 默认协议http, 例如: https://srv-demo-docker.onrender.com",serviceURLPlaceholder:"请输入服务网关地址, 例如: http://127.0.0.1:80/swagger/doc.json",serviceURLPlaceholder2:"请输入服务网关地址, 例如: http://127.0.0.1:80",importBtn:"导入",uploadBtn:"点击上传",uploadLabel:"swagger2/openapi3",uploadPlaceholder:"请选择 swagger2/openapi3 文件上传",parseWarn:"解析失败, 请上传正确格式的 swagger2/openapi3 文件",openapiTextContentLabel:"swagger2/openapi3 格式文本",openapiTextContentPlaceholder:"请输入 swagger2/openapi3 格式文本",parseTextWarn:"解析失败, 请检查 swagger2/openapi3 格式文本正确性"},rrt={searchPlaceholder:"please input operationID to search",description:"Description",parameters:"Parameters",responses:"Responses",request:"request",requesting:"requesting",mockRequired:"mock(required)",mockAll:"mock(all)",cURL:"cURL",copySuccess:"copy successful",copy:"copy",clickToCopy:"click to copy",generateCode:"generate code"},ort={searchPlaceholder:"请输入 operationID 搜索",description:"接口描述",parameters:"请求参数",responses:"返回结构",request:"请求",requesting:"请求中",mockRequired:"模拟必填参数",mockAll:"模拟所有参数",cURL:"cURL",copySuccess:"复制成功",copy:"复制",clickToCopy:"点击复制",generateCode:"生成代码"},srt={goToPostman:"goto postman",request:"request",urlPlaceholder:"please input request URL",validUrlTip:"please input valid request url",send:"Send",headers:"Headers",query:"Query",body:"Body",customTime:"quickly select time",addTimeField:"Add time field",fieldName:"field name",fieldNamePlaceholder:"please input field name",dateTime:"date-time",date:"date",dateTimeUnix:"date-time-unix",dateUnix:"date-unix",customFile:"quickly upload file",addFileField:"Add file field",single:"single file",multiple:"multiple file",uploadFile:"please select file upload",bodyTitleTip:"default content-type: application/json"},art={goToPostman:"手动填写请求信息",request:"请求",urlPlaceholder:"请输入请求URL",validUrlTip:"请输入合法的请求URL",send:"发送",headers:"请求头",query:"请求参数",body:"请求体",customTime:"快速选择时间",addTimeField:"新增时间字段",fieldName:"字段名称",fieldNamePlaceholder:"请输入字段名称",dateTime:"日期(带时分秒)",date:"日期",dateTimeUnix:"日期时间戳(带时分秒)",dateUnix:"日期时间戳",customFile:"快速上传文件",addFileField:"新增文件字段",single:"单个文件",multiple:"多个文件",uploadFile:"请选择文件进行上传",bodyTitleTip:"默认的content-type: application/json"};var _9=(n=>(n.en="en",n.zh="zh",n))(_9||{});const lrt={en:{translation:{head:ert,login:nrt,openapi:rrt,postman:srt}},zh:{translation:{head:trt,login:irt,openapi:ort,postman:art}}};Qo.use(Kit).use(ume).init({fallbackLng:_9.en,interpolation:{escapeValue:!1},resources:lrt});const urt=I.createContext(null),JB={didCatch:!1,error:null};class crt extends I.Component{constructor(e){super(e),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=JB}static getDerivedStateFromError(e){return{didCatch:!0,error:e}}resetErrorBoundary(){const{error:e}=this.state;if(e!==null){for(var t,i,r=arguments.length,o=new Array(r),s=0;s0&&arguments[0]!==void 0?arguments[0]:[],e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return n.length!==e.length||n.some((t,i)=>!Object.is(t,e[i]))}function hrt({error:n,resetErrorBoundary:e}){return Rt("div",{role:"alert",children:[ae("p",{children:"Something went wrong:"}),ae("pre",{style:{color:"red"},children:YO(n)?n:n.message}),ae("button",{onClick:e,children:"Try again"})]})}function grt(n,e){Ple.error({title:n.message,content:e.componentStack,width:756})}function mrt({children:n}){return ae(crt,{fallbackRender:hrt,onError:grt,onReset:e=>{},children:n})}function frt(){return ae(mrt,{children:ae(Xge,{})})}const prt=I.lazy(()=>Promise.resolve().then(()=>lot)),D9="/login";ae(prt,{});const brt=I.lazy(()=>Promise.resolve().then(()=>Qrt)),Crt=I.lazy(()=>Promise.resolve().then(()=>qzt)),pC="service",vrt={path:`${pC}`,element:ae(brt,{}),children:[{path:":operationId",element:ae(Crt,{})}]},yrt=I.lazy(()=>Promise.resolve().then(()=>mYt)),pme="/postman";ae(yrt,{});function Irt(){return[{path:"/",element:ae(frt,{}),children:[{index:!0,element:ae(Ont,{to:pC})},vrt]}]}const wrt=Irt();lO.createRoot(document.getElementById("openapi-ui-container")).render(Rt(I.StrictMode,{children:[ae(Rtt,{}),ae(fMe,{styles:{name:"n4z5sn",styles:"body{margin:0;padding:0;}"}}),ae(l7e,{}),ae(W1,{locale:i7e,theme:{components:{Select:{fontSize:Qt.fontSize.xs},Input:{fontSize:Qt.fontSize.xs},InputNumber:{fontSize:Qt.fontSize.xs},Upload:{fontSize:Qt.fontSize.xs},Dropdown:{fontSize:Qt.fontSize.xs},Form:{fontSize:Qt.fontSize.xs},DatePicker:{fontSize:Qt.fontSize.xs}}},children:ae(nit,{children:ae(eit,{routes:wrt,isHashRouter:!0})})})]}));function bme(n,e){if(!n||!n.trim())return{};Yce(n,"?")&&(n=n.slice(1));var t={},i=n.split("&");return i.forEach(function(r){var o=r.split("="),s=o[0],a=o[1],l=a===void 0?"":a;t[s]?Array.isArray(t[s])?t[s].push(e?l:decodeURIComponent(l)):t[s]=[t[s],e?l:decodeURIComponent(l)]:t[s]=e?l:decodeURIComponent(l)}),t}function ub(n,e){if(!n)return"";var t=sh(n,function(i,r,o){var s="";return Array.isArray(r)?s=sh(r,function(a,l){return l=l||String(l)==="0"?"".concat(o,"=").concat(e?l:encodeURIComponent(l)):"",a?"".concat(a).concat(l?"&".concat(l):""):l},""):s=r||String(r)==="0"?"".concat(o,"=").concat(e?r:encodeURIComponent(r)):"",i?"".concat(i).concat(s?"&".concat(s):""):s},"");return t?"?".concat(t):""}function Srt(){var n=fC().search,e=wg(),t=I.useRef(bme(n)),i=function(r){var o=r(t.current);t.current=o,e(ub(o),{replace:!0})};return[t.current,i]}const Cme="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABwYAAAIfCAYAAAB6sbixAAAACXBIWXMAAC4jAAAuIwF4pT92AAAgAElEQVR4nOzdvW4cWbY26HXO18bnNfsKTtaxxivSa4eo/HHGIFCUN0AaSnkDqAGJV0DpCqgCSJssgxhTKkBu/hTaoUfWFVSeKzg85lgzRgRb1B+ZGcyMHTvieQChqtVZzEUmIzMi3r3WjgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADq9W+pCwCATRoORjsRsRsRvfJPRMRfy7/7lpuI+J97/34bETez+fR2e1UCAAAAANRPMAhAtoaDUS8i+hHxYxTBX3+DX/42iqDwJiL+iIjFbD5dbvDrAwAAAADUSjAIQDbKbsDDiPgpihCwV3MJy4hYRMRvUQSFugoBAAAAgGwIBgFotHth4M/lP5vkQ0T8NptPL1IXAgAAAADwGMEgAI00HIz6EfE8ijBwJ201j7qNIiR8a9woAAAAANBUgkEAGmU4GE2iCAT7SQupbhFFQLhIXAcAAAAAwGcEgwA0QhkIHkf9+wZuyyIEhAAAAABAgwgGAUiqHBl6EhG7iUvZlkUICAEAAACABhAMApDEcDDqRREIHiYupS4XEXE0m09vUxcCAAAAAHTT/0pdAADdMxyMXkfE/xPt7RL8lt2I+L9/+OE//98/l39epS4GAAAAAOgeHYMA1KbsEjyPiH7aSpJbRMQz3YMAAAAAQJ3+PXUBAHTDcDCaRMR1CAUjip/Bn8PBqCtjVAEAAACABjBKFICtGw5G5xHxJiL+d+JSmuR/R8T/9cMP//lvfy7/XKQuBgAAAABoP6NEAdia4WC0ExHz6NZeglV8iIgXRosCAAAAANskGARgK4aD0W5EvI+IXuJScnETEQPhIAAAAACwLYJBADauDAXnEbGTupbM3EYRDt6kLgQAAAAAaB/BIAAbJRR8MuEgAAAAALAVgkEANkYouDHCQQAAAABg4wSDAGyEUHDjhIMAAAAAwEYJBgF4MqHg1txGxA+z+fQ2dSEAAAAAQP7+PXUBAORtOBjtRMT7EApuw05EzMufMQAAAADAkwgGAXiqeUT0UhfRYrsRcZ66CAAAAAAgf/8rdQEA5Gs4GJ1HxP+Zuo4O+D9++OE//+3P5Z+L1IUAAAAAAPmyxyAAlQwHo0noZKvbYDafLlIXAQAAAADkSTAIwNqGg1EvIq7DvoJ1u42IH2bz6W3qQgAAAACA/NhjEIAq3odQMIWd0KUJAAAAAFQkGARgLcPB6E1E7Kauo8MOh4PRYeoiAAAAAID8GCUKwMqMEG0MI0UBAAAAgLXpGARgHechFGyCnYg4SV0EAAAAAJAXHYMArGQ4GPUjYp66Dj6zN5tPb1IXAQAAAADkQccgAKs6T10AX9E1CAAAAACsTDAIwKOGg9EkInppq+Ab+mUnJwAAAADAowSDAKziOHUBfJfXBgAAAABYiWAQgAfpFmw8XYMAAAAAwEoEgwA85lXqAniU1wgAAAAAeNS/pS4AgOYqO9HmqetgJT/M5tNl6iIAAAAAgObSMQjAQ56nLoCV6RoEAAAAAB4kGATgm4aD0U5ETFLXwcomqQsAAAAAAJpNMAjA9xymLoC17AwHI68ZAAAAAPBdgkEAvufn1AWwNq8ZAAAAAPBdgkEAvlKOEdV9lh+vGQAAAADwXYJBAL5FwJQn40QBAAAAgO8SDALwLT+lLoDKvHYAAAAAwDcJBgH4Fl1n+eqnLgAAAAAAaCbBIACfGQ5GuxGxk7oOKtst94gEAAAAAPiMYBCAL+2mLoAn66cuAAAAAABoHsEgAF/6MXUBPJlwFwAAAAD4imAQgC8JlfL3U+oCAAAAAIDmEQwC8KV+6gJ4sl7qAgAAAACA5hEMAvAvw8Gol7oGNqKXugAAAAAAoHkEgwDc10tdAJsxHIyMhAUAAAAAPiMYBOC+XuoC2Jid1AUAAAAAAM0iGATgvl7qAtiYXuoCAAAAAIBm+UvqAoDHvbwc7UTEKmMBl2fj6fJ7/+fBeO/u69x8vLy+3VB5QDP1UhcAAAAAADSLYBBq9kXItxufxv39dO9h9/9+HW8j4s0D//9uRMwjIg7Ge/f/fln+ufN7+c/biLiJiPh4eb2oUA/5+WvqAgAAAAAA2A7BIGzBy8tRP4pgbzci/iOKzp27P03Ui89r63/5gHtB4k18Cgz/JyIWEXH78fL6Zov1UZ9VOlMBAAAAAMiQYBAqutf5dxf+3f17lU6/nNwFR/3yn8cR/woOl+Wf3+/+XachAAAAAAA0g2AQVnAvBOxHxI/lv/cSltRUvfJP/+4vysDwJoqg8I8oOgztcQjb99PjDwEAAAAAukQwCN9QjgLdjeLGuhDw6e66KQ/jU4fhTRSB4R8RsTCKFAAAAAAAtkswCPGvILAfRRDYT1lLh9yFhRERcTDeu9u38PcogsJForqgLX5PXQAAAAAA0CyCQTpJENhIO1G8Fv2IOC5HkC4i4rfQUQgAAAAAAE8mGKQTXl6OelEETj+X/9xJWA6r65d/7joKP0TRBfXBHoVb83sIywEAAAAAWkkwSGu9vBzd7Wn3c9wbWUm2diJiUv45L/co/DV0EwIAAAAAwEoEg7RKOSL05ygCwV7SYti2f+1ReDDeW0bRTfirkBD+ZZm6AAAAAACgWQSDZK/sDHwVRRhoRGg39SLidUS8FhI+mZ9ZeyxTFwAAAAAANItgkCyVYeDz0BnI13ohJHwKeze2h9cSAAAAAPiMYJBsvLwc9aIIAl+FMJDV9OJTSHi3J+HFx8trgcn3CVBbYjafei0BAAAAgM8IBmm8l5ejw/jUHQhV3e1JeHIw3rvrIvyQuKbGmc2nt8PB6DaM5c3dMnUBAAAAAEDzCAZppLI78FVETEJAweYdRsRhOWr0rotwmbSiZrmJiH7qIngS3YIAAAAAwFcEgzSK7kBq1ouI44g41kX4GcFg/v5IXQAAAAAA0DyCQZJ7eTnaiaIz0N6BpHS/i/CX6PZehEKl/C1SFwAAAAAANI9gkGTKcaHHUQQyxoXSFL2IOIlPXYRvOzhmdJG6AJ7MKFEAAAAA4Cv/nroAuufl5aj/8nJ0HhF/hj0Eaa67TtY/D8Z75wfjvX7acuozm0+XEbFMXAbV3czm0652uwIAAAAAD9AxSG1eXo76UXQI9tNWAmubRMTkYLy3iKKDcJG0mnosovi+yc8idQEAAAAAQDMJBtm6l5ejwyj2D+wnLgWeqh8R/TIg/PXj5fVF0mq267cQDObqt9QFAAAAAADNJBhka15ejiZRdAj2khYCm9ePIiA8jqKD8CJtOVuxSF0AldzO5tNF6iIAAAAAgGayxyAbV+4heB0R5yEUpN16EXF+MN77s217EJZ71H1IXQdr85oBAAAAAN+lY5CNsYcgHdaLiHkL9yD8LSIOUxfBWowRBQAAAAC+S8cgT/byctR7eTl6HxHzEArSbf0oAsL5wXhvN3UxTzWbTy8i4jZ1HaxsOZtPdQwCAAAAAN+lY5DKXl6OdiLidRRdgsAn/Yi4PhjvXUTRQbhMWs3TfIiISeoiWMmvqQsAAAAAAJpNxyCVvLwcvY6IP0MoCA+ZRBEQvjkY7+2kLqait6kLYGUXqQsAAAAAAJpNMMhaXl6O+i8vR39GxElE5Bp0QJ12ogjQ/zwY700S17K22Xy6jIhF4jJ43EX5WgEAAAAAfJdRoqzk5eVoN4owsJ+4FMjVTkScH4z3nkfE0cfL65vUBa3hbTj2m84YUQAAAADgUToGedTLy1EvIq5DMACb0I9ivOhJRuNFbyLiNnURfNdiNp8uUhcBAAAAADSfYJBHnY2NEoQteB0ZjBcdDkY7ETEPo4ObzD6QAAAAAMBKBIOs6kXqAqCF7saLzg/Ge73UxXzpXii4m7oWvku3IAAAAACwMsEgKym7BnWlwHb0oxgv+jp1IXeEgtmwaAMAAAAAWJlgkIiIOL3a763wsHcRsdxuJdBZOxFxcjDeuz4Y7yUN44SC2Xg3m0+XqYsAAAAAAPIhGCROr/bfRMSfp1f7k4cedzae3kbEUR01QYftRsLuQaFgNm5DFzcAAAAAsCbBYIedXu3vnl7tX0fEcflXJ6dX+zsP/Tdn4+mHiFhsuzYgTuree1AomJUXs/n0NnURAAAAAEBeBIMdVXYJXsfnAcBOfAoJH2JPK6hHP4ruwd62n0gomJUPs/n0Q+oiAAAAAID8CAY75vRqv3d6tT+P7weAr0+v9h8MBs7G02UYYQd1Ofp4eb3c5hMIBbOyDIszAAAAAICKBIMdUu4heB1FF9JDTlb4cu+iuEENbM+Lj5fXF9t8AqFgdowQBQAAAAAqEwx2wOnV/s7p1f55RJxHMS70Mf0yRPyus/H0NnStwDYJBfnS0Ww+XaQuAgAAAADIl2Cw5cqxoNcRMVnzPz05vdp/MEQ8G08XEWGfK9g8oSBfupjNp+9SFwEAAAAA5E0w2GKnV/uvowgFexX+8534/j6E9x1FhLF2sDlCQb50E8V7LQAAAADAkwgGW+je6NBV9gp8yOuy4/C7zsbTZUT88sTnAQpCQb50ExED+woCAAAAAJsgGGyZMsibx/qjQ7/n0XDxbDx9ExHLDT0fdJVQkC/dRsQLoSAAAAAAsCmCwRY5vdo/jM3f9O+fXu1PVnjciw0+J3SNUJAv3UbRKXiTuhAAAAAAoD0Egy1xerX/JiLeR7E34KadnF7tP/h1z8bTRUR82MJzQ9sJBfmSUBAAAAAA2Iq/pC6ApykDu5PY3OjQb9mJiOOIOHrkcUcR0Y/thJPQRkJBvnQTxfhQoSAAAAAAsHE6BjNWhoKb3E/wIa/L/Qu/62w8XUbELzXUAm0gFORLN6FTEAAAAADYIsFgpsqQ7s+o94b/yWMPOBtP30TEcuuVQN6EgnzpIopQ8DZ1IQAAAABAewkGM3R6tT+J4oZ/3SM7++VzP+bFtguBjAkF+dLRbD59IRQEAAAAALZNMJiZMpg7j3T7+J2UI0y/62w8XUTEh3rKgawIBbnvNoouwXepCwEAAAAAukEwmJHTq/3zKELBlHZihZGiEXEUxU1voCAU5L4PEfHDbD5dpC4EAAAAAOgOwWAmylBwkrqO0uT0ar//0APOxtNlRPxSSzXQfEJB7txGxLPZfPrM6FAAAAAAoG6CwYY7vdrfOb3av47mhIJ3Hu0aPBtP30TEcuuVQLMJBbnzLoouQaOWAQAAAIAkBIPNdxLNvNm/e3q1/3qFx73YeiXQXEJBIiIWUQSCR7oEAQAAAICUBIPNdxQRN6mL+I7j06v9nYcecDaeLqLYSwu6RihYzTJ1ARu0iIjBbD4dzObTZeJaAAAAAADiL6kL4GH/+Ps/b0+v9gfRzJv/O1F0ND7WFXgUEf3y8dAFQsFqLmbz6YvhYNSPiFcRcZi4nqo+RMQvs/l0kboQmmk4GO1G8Zm4E5+O4b/Gt4/nnW/8/W18e9HQbUT8ce9/L8p/3uhWBQAAACAi4t9SF8Bqys68poYAg3/8/Z+Lhx7w8nL0JiKOa6mm296Wezt+08F4rx/F7xHbIxSs5mI2n362yGA4GPXiU0DYS1DTOpbxKRBcpi2FJijDv14Ux+mP8SngS7lIZln+uYmI/yr/KTQEAAAA6BDBYEYaHA7e/OPv/9x77EEvL0d/RvNv7udOMJiWULCar0LBLw0Ho8OI+DmKkLAp3ce3UYSBv83mUyOTO6zscr0LAHcjv+PzrgPx9/gUFi6TVgQAAADAVggGM9PgcPDoH3//57uHHvDyctQPodS2CQbTEQpW82go+KUyhPk5ihHFdf8sbqIYz/ibUaHdVf4O9iPip/KfbbSM4nf994hYCAqboeykniQug68t7v27LtyK/H6zAYs6zs8y/V29nc2nD16vsx3DwehN6hrWsJzNpxepi6CQ2e/OWmbz79+3YjMy/azqgsW9f3fdUNG9ezK5uGjiPRXBYAMcjPd2oxiz+eLj5fWjbwgNDQdvI+KHf/z9nw/W//JydB4+mLZJMJiGULCatUPBL5U/l90oTgjuurV6T66ssIwiCPwjipM3J20dVY4F7cenQLqLllGG4lHceHUsJFBeAPkcz8NdJ+4yPh/du0xYU6P5/WYD3tZxsznj39UXQp/6DQej/y91DWtYzObTQeoi+NfEnPep69iiZ6bubFfGn1VdtLz357+iuO5eum74vnLhRE5blg2a2Fzwl9QFdF0ZCs6jGI3XOxjvDR4LB//x93/enl7tD6JZIcFORJxExGM3+Y+iWaMA4amEgtU8ORSMiCjDiUV8vurqLsjZiSIk7H3xn/1U/vP3L/5+Wf65nc2nN0+tjbyVv0PPI489LuvQi2JhzyQiYjgYfYgiJPwgJIRv2olvLCQYDkZfju4VtAN1ORkORjfOcyELz1MXsGXPo9iWA/j6vtVxxFfXDbVMRaBbBIMJHYz3evEpFIwobvrPMw4HJ6dX+7/+4+//XHzvAWfj6e3Ly9HbKEJEyJ1QsJqNhIIPccODKoSBazks/5wLCWEtd4Fh/+4vhoPRTXw6hnx+AduyE8Xn9sDnNTRXeQ/gMHUdW3Y4HIx2vBfBg+5fNxwPB6OIT9t9uG7gyf49dQFddTDe24liLMCXnXN34eCjHXXl2M5BFKsHmuLRwO9sPH0XzaoZqhAKVrP1UBDWMRyMesPB6PVwMPozIq4j4nUIBdd1GBHnEfHfw8HovBxbA6zubluB6+Fg5DgCtunu/QZorknqAmoySV0AZKgfn64b/hwORiflAmdYm2AwgTL0e+hmf87h4O7p1f7rFR53tPVKYHuEgtUIBWmM4WDUHw5G7yPizygWtfTSVtQak4iYlxcpr8v3MmB1O/H5cfRmOBj10pYEtMzrcv8yoJlepS6gJl35PmFbelEsbL523UAVgsGarRAK3sk5HDw+vdp/sO6z8XQRERe1VAObJRSsRihIcsPBaGc4GE3K7sB5tH9ET0q9KALXu+6nXtpyIEu9KFYE/zkcjN7rIgQ2yGczNFDZ+dNLXUdNejqdYGN68em6wfQRViIYrNEaoeCdXMPBnVhtD8GjiDBPnJwIBasRCpJUGQi+iaI78Dy6c7HdFJMoLlDmLlCgssP41EU4SVwLkL+7rU2AZulaF13Xvl+owySK64a5CQE8RDBYr/ex/s3+XMPByenVfv+hB5yNp7cR8baecuDJhILVCAVJ5otA8Di+3teXevXj0wVKP3EtkKteFJ0+AkLgqXaHg9EqC3qBGpT3A7p2E//Q1gOwNf2IeF9eN/QT10IDCQZrcjDeO4/igKwi13Dw0YuMs/H0XTSjVniIULAaoSBJCAQbrx8CQniqXhQB4bXjCHgC+w1CcxxG965buhiGQt168en6u033HHkiwWANylBw8sQvk2M4uHt6tf96hccdbb0SqE4oWI1QkNoJBLPTj08XKL3EtUCudqM4jt5bcQ9UdO79AxrheeoCEunq9w1160fEdbkHoc99BIPbdjDem8TTQ8E7OYaDx6dX+w/WezaeLiLiopZqYD1CwWqEgtSuHKl3HQLBHPXj0ybpXjuo5jCK42iVRXkA99lvEBIrF8n1E5eRSt8iQajVJIrrBt26HScY3KKD8d5hRJxv+MvmFg7uxAojRaPoGrzdci2wDqFgNUJBajUcjHaHg9E8is/bXuJyeJpJCDbgKXYi4qTswhWyA+vol1MXgDRepS4gsa5//1C3nSj2HzR1pMMEg1tyMN7bjc2HgndyCwcnp1f7/YcecDae3kbE23rKgUcJBasRClKbe2NDr6O7q2vb6C7YuLb/AVTWD6uAgfUd27MUkpmkLiAx5yyQxt3UkX7qQqifYHALysBuHtsdZZZbOPhoSHo2nr6L9KNPQShYjVCQ2pQnrXdjQ2mn3Sj2P3iTuhDI1N0q4FUmdwDc0TkANSsX8nT9uOtZ0ATJ7ESxZ/mb1IVQL8HghtUUCt7JKRzsnV7tv1nhcUfbLgQeIBSsRihILcouwZMojqFe4nKox7HuQXiS10aLAmvYie1NPgK+7XnqAhrCzwHSOh4ORueuG7pDMLh5J1HvDf+cwsFXp1f7vYcecDaeLiLioo5i4AtCwWqEgtSiDIauI8L+c92jexCeph/FKuA2nX8A23Nov1+ox3Aw6oUxmncOBRKQ3CSK6wbHYgcIBjfoYLz3JtLMBc8lHNyJIjh9zFFE3G65FrhPKFiNUJBa3NtLsJe2EhI7LjufeqkLgQzthnAQWN2J9wuohVDwc5PUBQD/WpjrPKDlBIMbcjDeO4y0ex3lEg4enl7t9x96wNl4ehsRb+spB4SCFQkF2bpydOg87CXIJ/0oLlLcRIH13e0f0qbzEWB77DcI2/cqdQEN4+cBzdAL1w2tJxjcgIPxXi+aMYc/l3Dw0Z/V2Xj6LtKNPKU7hILVCAXZuvIE9M8ogiC4byeKm5VvUhcCGRIOAqvqRTPuc0ArDQejfpiI8qWecxRoDNcNLScYfKIyhHsfxcHSBDmEg73Tq/03KzzuaNuF0GlCwWqEgmzdcDCaRDE6tCmfrTTT8XAw0s0A63ORD6zqsDwvAzbveeoCGkrXIDSH64YWEww+3Uk076Z/DuHgq9Or/d5DDzgbTxcRcVFHMXSOULAaoSBbNxyMzsPqdFZ3GMWFSi91IZAZF/nAquw3CBtW3i8wGv/bDi38g0a5u25wXLaMYPAJDsZ7k2juxrhNDwd3oghVH3MUEbdbroVuEQpWIxRkq8r9BN9Hcz9XaS6bo0M1d2N5XeQDD9mJiHPvFbBRh2E6yvcITaF5hIMtJBis6GC8txvN72hoejh4eHq133/oAWfj6W0YKcrmCAWrEQqyVfeOGxeAVHV3oTJJXAfkphfF+y/AQ3ZjtYW9wGqMy3yYMavQPDlkIaxBMFjBvX0Fc9D0cPDRN5Sz8fQiIhZbr4S2EwpWIxRkq8our7YdN6Rx19EwSVwH5Ga3HOMM8JDJcDCyiAueqByB79rnYX1bBUAjHQ4Hozepi2AzBIPVnESxujYXTQ4He6dX+29WeJyuQZ5CKFiNUJCtEgqyJcJBWN/EcQOs4NzNengy3YKr8XOCZjq2UKgdBINravi+gg9pcjj46vRqv/fQA87G05uIeFdPObSMULAaoSBbdS8UNKOebRAOwvpO7NUJPCKn6UnQVJPUBWRikroA4LvsPdwCgsE1HIz3epH3XP2mhoM7sdrP9W1E3G65FtpFKFiNUJCtEgpSk3NjTmAtO2HfEOBxu8PBKOf7IpBM2WXjGmg1O7qSoLEsFGoBweB63kf+H+BNDQcPT6/2+w894Gw8vQ0jRVmdULAaoSBbJRSkZsc6B2EtuwJ1YAWv3bCHSp6nLiAzfl7QXP3hYPQ6dRFUJxhc0cF470205+Z/U8PBR1con42nFxGx2Hol5E4oWE0toeDBeK9NPzPWIBQkEWNFYT3HRooCKzBGDNZQ7s8pUF/PoX1NodGOHaP5EgyuoLyJfZy6jg1rYjjYO73af7PC43QN8hChYDV1hYLnUbz3tOlnxwrK46YNnffkSTgI6zEmEHiMMWKwHqFgNX5u0Fyrbg9GAwkGV9PWvTaaGA6+Or3a7z30gLPx9CYi3m25DvIkFKymzlBwEvYw6px7x00vcSl02/lwMOqnLgIy0RemAyvoGz8MK3uVuoBM+blBsx26zs6TYPARLRsh+i1NCwdXXWnwNiJut1gH+REKVlN3KHhnt3x/pRvadtyQr/dGJMLKjo0JBFZw7IYgPKw8RnqJy8hVz3sMNJ7F/xkSDD6gpSNEv6Vp4eDh6dV+/6EHnI2nt2GkKJ8IBatJFQreOTZStP2Gg9F5tOu4IW87ETEXdsBKehHxOnURQBbe+2yFBz1PXUDm/Pyg2XqmjeRHMPiwLqXdTQsHz0+v9h+s5Ww8vYiIxRZrIA9CwWpSh4J3uvQ+2znDweh1PPz6Qwp37+nA41652Q+swH6D8B3l56h98p7m0PkINF4XmqtaRTD4HR0YIfotTQoHe7HaCmVdg90mFKymKaFgRDFSVDdCC5XjXmxCTVPtlt2swMN2QtcgsJp+uSgM+NxhFJ+nVCdchebTNZgZweA3dGiE6Lc0KRw8Pr3a7z30gLPx9CYi3m3p+Wk2oWA1TQoF7xwfjPd626uGug0Ho15YNb6qRUR8iGLv3KMoPlcHEbE3m0//7bE/9x7/rPwa78qvuaz/W8nOxIULrETXILCqE3v5wldepS6gJfwcofm6mqdk6S+pC2iornc43IWDg4+X17cPPfAff//n7enV/iC2F56cR3HD8yFvowgg3LDoDqFgNU0MBSOKY3eVY518vA/vyd9yE0Vo90dE3Mzm0ycvrJnNp4t7//PDl/9/2bm5GxE/RUQ/vC5fOh8ORht5LaDF7lbpXySuA8jD++FgtDebTx+8lwBdUC6YbNM9hZR2h4NRbzafLlMXAnxXbzgYTWbz6UXqQnicjsEvlCPt+qnraICmdA72T6/2HxwXcDae3oaRol0iFKymqaHgnf7BeM9okBYYDkYn0a5j5ymWUdxIfxYRf5vNp3uz+fRoNp9e1BVEzebTxWw+fTebT5/N5tO/RcReFJ+ZizqePxPvdUPBo6z+BVbVC/uIwx1dbpvl5wnN9zx1AaxGx+A9ZQjmoveTpnQOnpxe7S/KAPKbzsbTi5eXo+ch1G07oWA1TQ8F75wfjPcWj73f0FzDwegw7EV1G0UY+GsTu/QdJgYAACAASURBVNDKmm4i4l35fncYxYl7P2VdifWiuIH5LHEdbfR2Np++SV3EU5RdtxHF70kvIn6M4hyhl6SgdHrDwaj/RZdy12X/+w1bdDgcjF7P5lPbftB1k9QFtMwkNAa0VfbnVd+4bvgpiuuGri1C7Q8Ho90m3g/hc4LBz51E9w7WxzQhHOxFcaP5zSOPO4qI6w0+L80iFKwml1Awonj/PQ4n+lkqj58urw5fRMQvs/n0q3GeTVWO+LqIiItyzNGr6O5o7sPhYHSY0+tHPb4XhJXHTD8ifo4iYO+C56HbGFjd8XAwWrgxSFeVe1l38bx6m3acs9NUrhs+8yoitn4vkqcxSrR0MN7rh5U839OEsaLHp1f7vYcecDae3kSEFYntJBSsJqdQ8M7rg/Fem16DLjmPbl74XkTED7P5dJDzBepsPl2WY07/FsUJ/DJxSSmclxdt8KjymLmYzafPIuLuuGn7ze+JsbvAGnai+Gz1vkFX/Zy6gJYyppCsdPS6oSsBaNYEg5+cpC6g4ZoQDq7SifI2ijFutIdQsJocQ8E73o8zU44Q7dqJ30UUgeCL2Xy6TFzLRpUXLT9E9wLCrne9UtFsPr0tj5u9KM6BF4lL2qauvdcDT7Mbzu3poHKxmc/M7Ti0mI9cdei6Yae8T0SDCQYj4mC89zraFQhsS+pwsH96tf/gm8rZeHobWpXbRChYTc6hYERE/2C8t42vyxZ0cIToRbQ0EPzSFwFhVxbd9MuxT1DJbD5dzObTQRTnwcvE5WyD7gdgXROfrXTQJHUBLSdwIHv3rhuehesGEuh8MFiGXMep68hI6nDw5PRq/8HnPhtPP0R7V1x0iVCwmtxDwTvHq7zP0AhdGSF6ExGDLgSCX5rNpxcR8UMUXfldcGLsGU9VXui38bg5dHwAFZzo8KFjjLvcrlepC4BNKbck2Yv2bY8lwG+4zgeDUYSCLm7XkzIc7EXE6xUep2swb0LBatoSCkasfqyT0HAw6kf7T/ZuI+JoNp/ufW8z8S4oR568ieKCpe37IeyEsWdsSHncDKJdXbdtf98HNm8nIt6nLgLqUF4j9RKXsa5nqQtYU6/8OUMrlNfbR1Eci225bjBOtOE6HQwejPd64cZzVSnDwePTq/3eQw84G0+X0b4V2l0hFKymTaHgnVfl+zTN1fYRojcRsTebT9u2cq+y2Xx6U+6H0PbP2ImbDWxKuaigTaH6T6kLALK0OxyMLLyhC3LrFrwpO5ZyO0/J7ecMjyqPxTYtKnTd0GCdDgbDavCnShkOrnIz+l20c0ZzmwkFq2ljKBhRrCw26rmhhoPRm8hvJew63pZdgsvUhTTRve7BZdpKtsp5IhtTvpdsesR+Klb+AlW91j1Am5X3Gyap61jTr1/8MxfGm9NKs/n0Jtpzrd1PXQDf19lg8GC81w8XtZuQKhzsn17tP/j6nY2ntxFxtIHnoh5CwWraGgremRyM99r0erVCeSy1dV+H2yj2EnyTupCmu3fBskhcyrbsDgejSeoiaI/ZfHp3LrxMXMpT7QwHI5/NQFXn9hukxXK8z3hR/vNDyiIq2Ik8f97wqHJRYRvGiu76zG+uzgaDoQtlk1KFgyenV/sPPufZePoh2nvDsk2EgtW0PRS8o2uneU6infvz3o0OXaQuJBflXgiD+HRDoW1OrERmk8pwsA0X+f3UBQDZ2on2j6Onu3JbPPmhPDe5CyJyCwdz+3nDysqFuIPUdWxAm+7Dtkong8GyW7CfuIy2SREO9mK1PSK3HpzwJELBaroSCkZE9Mv3bRqgXO01SVzGNtxE0Sm4TF1Ijsr3ozZ+3u6E/ajZsPIiP/fj5cfUBQBZ65dj6aE1ym763O45/PbI/2463Ui0WnndkPs0PPsMNlQng8GwOm1bUoSDx6dX+72HHnA2ni4j4u0Tn4ftEApW06VQ8I4u7+Zo42txUe4nmHsHT1Kz+fQi8g87vuWVrkE2bTaffoj8VuXf109dAJC94+Fg1E9dBGzQ89QFrOm2PH+/70PkN9VA1yCtNptP30Xe0/DadD+2VToXDB6M9yZRdJqxHSnCwVWC3neR/34ubSMUrKaLoWCErsFGaGm3YC3HVFe0NBzUNci2vIj8br7d6aUuAGiF9xbf0CKT1AWs6asFSuVCydwWLk1SFwA1yPkau5+6AL6tc8FgtLPToWnqDgf7p1f7D244fDae3kb+rddtIhSspquh4B3v3+m17TUQCm5BS8NBXYNsXHnz7ZfUdVSl0wfYgJ2IeJ+6CHiq4WA0ifz2YP/e2NDcxonulD9/aK1yy5Nsp+EZ+dtMnQoGdQvWqu5w8OT0av/B5zobTz9E3q3XbSEUrKbroWCErsGkWtgtKBTcohaGg7oG2ZZ3kW/XYJvOs4B07DdIG/ycuoA1Lcux5l8p/35ZbzlPltvPH6rI+bqhl7oAvtapYDDa1+nQdHWGg71Y7fVt003KHAkFqxEKfuJ9PJ02/exvhILb18JwUNcgG5d516DjAdiU4+Fg1KbrNzqkXED54BSrBnpsXGhu40QPdSTRdpmO+r3TT10AX+tMMKhbMJk6w8HXp1f7D15MnI3zbr3OnFCwGqHg53QNJtCybsGbKD5rqEEZDr5LXceG7ER7jgOa5SJ1ARX9lLoAoFXsN0iuJqkLqODXJ/7/TTRJXQDUINcFhX9NXQBf60wwGO3qdMhNneHgyQqPeRf5jUXInVCwGqHgt3k/r9+r1AVsyG1EvChX2lGT2Xx6FPmubPxSW44FGqTcM+QpI/UB2qAXEeepi4AKnqcuYE03s/n0wfOO8v/P7dwkt9cB1lYem8vUdVTQpnu1rdGJYFC3YCPUFQ72T6/2Jw894Gw8vY2Iowpfm2qEgtUIBb9P12CNyuNrkrqODXnx2EUwW/Mi8ryA+VJvOBhNUhdBK+W4Mr9N511AMxwOByN7+pKN4WDUj/zuN656zpHbuUmvfD2g7dqy6JbEOhEMhlUjTVFXOHhyerX/4HOcjacfImJR4WuzHqFgNULBx+karM9htGMfqXez+dQJdCJll+az1HVsiPNKtmGRuoAK2vDZADTPif0GyUiO54WrXhPleO2U4+sB6/o9dQEV9FMXwNdaHwyWXSX9xGXwSR3h4E6sFhpsPXjpOKFgNULB1egarE8bRifelOMsSajs1mzD69Av992EjdHNDPCZc/sN0nSZTlb5UI4wf1T5uMU2i9mCifcOOmCRugDaofXBYOgqaaI6wsHXp1f7D4ZFZ+PpMiLervl1WY1QsBqh4HqsBtyycrV27sfYbVgI0hiz+fRdtONCpg2BOc2zSF3AuozsArZkNyJOUhcBjzhMXUAFv635+NzGiUbk+brAysppPMvUdZC/VgeDB+O9XugWbKo6wsFVLiTehTfTTRMKViMUXN+kfJ9ne9oQfrzVidM4L6IIbHM2SV0ArbRMXQBAg0zs60vD5XatdBvrjwfNcZxobq8LVLFMXcC6TN1pnlYHg6FbsOm2HQ72T6/2Jw894Gw8vY38x5ot7v1ZJqwjQihYlVCwOif925X7asubskONBinHEv2Suo4n2hkORrkfHzTPf6UuAKBh7DdII2U6WeVD2Wm0svLxF9spZ2t2vW/QATkufu6lLoDP/SV1AdtShk2T1HXwqLtwcPDx8vrBE5R//P2ft6dX+4NYLxQ6Ob3a/1AGi990Np5+eHk5+hDNuwF+E8WKrrtNZRd3f18GmlW/5iCKTtq/RvFz7MVm3pyFgtUIBZ9mcjDee/vY+wfrK1do574/Q+4LP1prNp++GQ5GzyPvi4PnkecqagDIxU5EnEfEXupC4As5bmux7hjR+//dZIN11OF55BmcwKr+J3UB5K+1wWBEvE5dACvbZji4E0Xn6GM3h4+iCMtS3QS/iSL4+yMilmfj6WIbT1L+fBfxjT1sDsZ7/Sh+pj+W/1wnfBMKViMUfLq7RSC6wjbv59QFPNHFbL6d91I25kUU7+u5OhwORjvrrrwGANayOxyMTmbzqQVfNMkkdQFrWs7m00oL2mbz6YfhYHQbeS0anYRFogAPavMo0RxX73TZNseKvj692n8wTDob1z7W7CaKIONZRPztbDzdOxtPj87G04tthYKP+Xh5vfh4ef3u4+X1i4+X13sR8beyvnfx8M9aKFiNUHBzjBPdsPKYa1oX9TraMCa69crgdpG4jKfK+TgBgFy8NsKbpsh0sspTp1xcbKKIGu3YoxTgYa0MBg/Ge5PIezRVV20zHDx57AFn4+mb2O4efR+i6I744V4Q+OEJY0G36uPl9e3Hy+sPHy+vj8qg8Ico6r9/QikUrEYouFm9g/GeGwWblfvP8xddXNnY+nvhluXeWQsAuTgfDka91EVA5NmI8Gvi/z4F5+kAD2hlMBh5fkhT2FY42D+92p+s8LhN36C8CwP/djaePis7Apcbfo5afLy8Xn68vL74eHn9LIpuwj2hYCVCwe3wvr9ZOV9E3YbRstmYzafLyG8F8n2H5WcVALBdOxHxPnURdFsZTvcTl7Gum9l8+qT99sr/frmZcmpzaDEBwPe1Lhg8GO/1Ir8PaT63rXDw5PRq/8GvWY7xfOqIhWUUI+x+uBcGtqpzpewm3OpGzkLB6joYCkZEHJbv/2xGP3UBT6BbMD9vUxfwRP3UBQBAR+wOB6M3qYug0yapC6hgU91+dW6/symT1AXAlvxH6gLIX+uCwbDXVFtsIxzciYjjFZ77KIqOk3V9iIjB2Xj6w9l4+i7XzsAmEApW19FQ8M4kdQFtUO7fkmsHlG7BDJVdg09dlJNSzh22NMuPqQsAyMDxcDDqpy6CzspxUs2mzrNzPF/P8fWCVfRSF1DBMnUBfK6NweAkdQFszDbCwdenV/sPhk1loLfOSqiL+NQduFjjv+MbhILVdTwUjHDSvyk/pS7gCT7oFsxWjiuQ7/RTF0Br9FIXAJCJ90Z5U7dyAWUvdR1rWpSL8J6s/DqLTXytGvUsJKCleqkLWNem3ovYnFYFgwfjvUnk2+XAt20jHDx57Gudjadv4uGVDLdRjD7729l4+kJ34GYIBasTCkZERO9gvHeYuogW6Kcu4AlyH0nZWbP5dBGrjQVvot5wMGrT5xbpZPd7VB67QLPl+vn6EPsNkkKOUyI2NUZ0W1+vDhYQ0yrlvdNe6jrIX6uCwfBm31abDgf7p1f7kxWe93thzrsoOgTftG3vwJSEgtUJBT/jc+AJys3Zcz0GN7YalmR0DdJZVrMDW/RbFFNu2qZvv0HqUt6vmKSuo4JNj//McZzoRIcxLdNPXQDt0Jpg8GC81wsHRpttOhw8Ob3af/BrlWNB75/0XEQRCB4JBDdLKFidUPArh6u8T/Bd/dQFPEGOq1f53IeotsdvE+Q8gpdm6KcuoIJcj1fooqNoZ+eg/QapyyR1ARVcbHqbhfLrXWzya9bEZCHaJMfu5UXqAvhaa4LByPNDmvVsMhzciYjjFZ7zKIoblQMjQ7dDKFidUPC7JqkLyFiu4cbtbD69SF0ET1PeaMhxFXJEnqEOzZLjBX4bQwZopfIzduvXJ4mc6waiBjlOpvkts6+7Ta9SFwAb1E9dAO3QpmAwxw9p1rfJcPD16dV+/6GvcTaeLs/G02dl9yAbJhSsTij4IJ8H1eV6LOYaJvG1XDs/d+wzSFXl706Ovz86BiEjs/n0JoqFr23Ti4jz1EXQXpl+Tt/O5tOtXCOVXze3c4Bd5+q0wXAwOow89xf8PXUBfK0VweDBeG838jwoqGaT4eDJJgtjdULB6oSCj9otPxdYQ3lM5vpzy3lvOu6ZzaeLiFgmLqOqXI8f0st1FfsfqQsA1jObT99FOxdUHQ4Ho9epi6C1cvycvsj862+DBcS0gd9jNqYVwWA4KLpoU+Hg7unVvguImgkFqxMKrsznwvpyPR5vyxXwtEeuNyxzHcVLQuU50SR1HRUtUxcAVPIi2nn8nugIYkty3J9u21M4cpzyMUldADzFcDDqRZ7vRxH2GGyktgSDk9QFkMSmwsHj06t9exLURChYnVBwLbmeLKXUT11ARbmGSHxfrmNG2vS5Rn1ynl6xTF0AsL6W7zf43n6DbNJwMJpERG6/U8ttL5wsv/5ym8+xBTvl6wm5ct3ARmUfDB6M9w4jvw9pNmcT4eBO5HtDPCtCweqEgmvrGSe6th9TF1DRb6kLYLMy3bckol2fbdSg7GyZpK6jqnL0L5Ch8vh9m7qOLehF3jdOaZ4cJ9HUtc1Cjl2DP6cuAKoYDkb9yHcB/O1sPl2mLoKv/SV1ARvgTZ27cHDw8fL6wRuJ//j7P29Pr/YH8Smcuo2IZ//4+z8X2y+z24SC1QkFK3se399flK/lemwuUhfAViwiwwuf4WDUF5awhvPUBTyBz9eI/yhv0pDe0g2n9c3m0zfDweinaN8i2clwMPp9Np9epC6EvJVj+/qJy6iirokqFxFxXNNzbcrhcDDq+cwgJ+X9VNcNbFwbgsHsbhqxFVXCwZOIOCo7CdkioWB1QsEnOYyIo9RFZKSXuoAKFuU4LNrn98jzHK+XugDyMByM3kTe50WL1AU0wCScozXF24h4k7qITL2IiOto3xSmk+FgdGMfap5okrqAChZ1hV6z+XQ5HIxuIr/zmUn4zCAvJ5H3dWauW4W0XtajRI0R5QtrjRX9x9//+UIouH1CweqEgk9mnOiKMu54cILZXovUBVTUS10AzVfub5PbCvsv/ZG6AODpygChjfsN7kTEuf0GeaIcx4jWPd6zrrGlm5Tj60pHldcNk7RVPNkidQF8W9bBYBgjytdWDgfZPqFgdULBjXHSv5pe6gIqWqQugO0oV/jnuHjnp9QF0GzlvoJt2P9qkboAYDPKvX3fpa5jC3Yj/0UYJDIcjA4jz2ukusaIpnq+TeiVry80WhkK5jxC9I7u/YbKPRjspy6ARhIONoBQsDqh4EY54V9NL3UBFTnBbLccX1/nHnxXGQrOI//fE/u5QcvM5tOjyPNz9zGvBQBUlGMjwkXd2yyUz5djOJjj60uHtCgUtP1Lg2UbDJbj4Xqp66CxhIMJCQWrEwpunHGiq/kxdQEV3DjBbL0cR8V6v+Gbyov7tuzjleMNQOBxLyLPbv3HnA8Ho17qIshHeT9jkrqOCn5L9Lx1jy/dhIlRwzRVi0LBiDyv6Tsj22AwjIfjccLBBISC1QkFt6afuoAM5Pg+uUxdAFuXZeeCm498aTgYnUR7Lu4jXOBDK5VjvI9S17EFOxHxPnURZGWSuoAKbsuxwLUrnzfHRQWT1AXAfcPBaGc4GJ1Hu64bLChssJyDwX7qAshCL/K84Z0loWB1QsGtspDkcTkes3+kLoCtyzIYDBMtKA0Ho93hYHQdEa9T17JByW48Ats3m08vop038XbLRRqwihyvH1Mft6mfv4ocX2daajgY9aOYLjJJW8lGLctFRzTUX1IXUMXBeK8Xed7EpH6Dj5fXy9RFbFO5X823ws9a938RClYnFNy63YPx3s7Hy+scVzHWJccFFIvUBbBds/l0ORyMUpdRRS91AaRVnhOdRDs/23O88Qes50UU13S9xHVs2uvhYPTbbD5dpC6E5irvr+R4T+OXBjz/JHEN69odDka7ggtSKqfNHEd+x88qXDc0XJbBYOgWZDUvPl5eZ/8Bf+/EtBfFPmA75f9+9Eb+vRuqt1F0XtxG0WVzExtcuSEUrE4oWJvDiLhIXUQTZTz2UNDbDYvI77yvl7oA0ijfT19F8bme44KLVaTavwioyWw+vR0ORs+i6Fxom/fDwegH+1TzgFepC6ggeVfObD69GQ5Gy8jvPPhVFIshoFYtDwTv5Lj/aKfkGgz+nLoAGu/Fx8vri9RFVFG2j/cj4qfY3M3QnXtf6/Dec90Fhr9HxKLK6kmhYHVCwVr9FILB7+mlLqCK1Be/1MaNOxqtPA86jOL65PCRh+fOGFHoiPIm/1EU3c9tcrff4CB1ITRWjp/lTbn5/msUQUdODkMwSE3uXTc8j/wWv64r+YIFHpdrMNhPXQCN9i6nUDDxDaW7wLAfEcdlUPghiqDww2MrKYWC1QkFa+eEv12WqQugNn9EfjdofkpdANtVLuLajeK1zu338ykuUhcA1Gc2n74bDkY/R/vuv/SHg9Gb2Xz6JnUhNMtwMJpEnh3/F6kLKF1EfsHgznAwmpT7q8LGban5IwepxxuzguyCwYPxXj/y/KCmHhcfL6+PUhexivKks2mry3eiCKsmEXEyHIw+RMSv3+okFApWJxRMYudgvLfbhvHCW5DjMbxMXQCwkv8oL4Zz9OXY9p/i0zj3rnKBD93zLCL+jPbdgzkeDkaVJubQas9TF1DBzWw+XaYuIuJf+4PfRH7nSs+jOeFql7XluuGv8Wk7qF6ieprgInUBPC67YDC6la6znsXHy+tGdwSVYdrrKOaYN/3i6l8hYTkr/pcogrNboWB1QsGk+lGMzuVzTX8v+hbjJbtjEfmtPOaTSfjMa4sPTbnxCNTn3n6D89S1bMH5cDDas98gEf/a76ufuIwqmrZo55eIOE9dxJr6w8Go5zwnuUm4bmiLC5+tefj31AVUYDwT37KMYjVjIw0Ho95wMDqPiP+O4gZnbjfie1HsL/HncDB6E0LBSoSCyfn8aI8/UhcAD+ilLgC2oGk3HoGalF1171LXsQW9yC/AYHtepS6goqbt/du0elY1SV0AtMjb1AWwmhyDwX7qAmic24h49vHyunGrEe4Fgn9GO040dqIINoWCaxIKNkI/dQHA2hr32b6CXuoCYMOM24OOm82nR9HOyRuHw8HodeoiaIQmbfGyqg9N68op68kxHMxxjCw00UL3bT6yCgbL/QXhS0dN2zdsOBjtlJ111yEMajKhYLfs+Bz5ph9TFwDfM5tPG/X5Dh31a+oCgEZ4Fnku2HnMyXAwatPCV9Y0HIwOI8+FXU39fG5qXQ/plb8HwNPoFsxIVsFg6Pbgax8+Xl5fpC7ivnKz3OvIc2RolwgFu8lF/9dyfJ8SFgHUYzGbTy9SFwGkV3YAbP36KZH3w8Eox3NiNiPHbrHb2XzayM68sq4cFxH8nLoAyJwpI5nJLRi0PxT3LaNBFyZll+D7KPbf6yUuh4cJBbvL50g75HihCZAjq36Bfylv+F+krmMLemG/wU4qA+EcO8UaGQre0/T6vmVigQA8yVHqAlhPbsFgP3UBNMqLpuwreK9LMMcTyq4RCnZbP3UBAJAJq36Bb2nzfoOT1EVQu0nqAir6JXUBj8hxnGhEvr8PkNqFbUDyk00weDDeM/6N+959vLxepC4iIqLcS1CXYB6Eguz4PAGAlTRmMgfQHLP59Dba+/5gv8HueZW6gAqWTb8BXy4sWiYuo4ocx8pCarehWzBL2QSDocuDT5bRgLFG90aHHqeuhZUIBbnjYh8AHva23E8M4CtlKNHGm4A7EXFunGA3lCFwL3UdFeTSjZfjONFdiwNgbW/LRUNkJqdg8MfUBdAYyUeIDgejXhRdgkaH5kEoyH32GQSA71tGxLvURQDNNptP30WeN/4fsxsRJ6mLoBY5dgtG5LPPZ9PHnX5Prr8XkMJNeT5AhnIKBvupC6ARPqQeIVquHroOXUe5EAryJccuAHzfC6t+gRW9iDzHBT5mMhyMLAJusbIrNMfX+CaXjv6yzkaPPP2OHH8vIJW2jhbvhCyCwYPx3k7k2d7P5iUdV1KGgvMoRozQfEJBvkUwCADf9q7cFwjgUS3fb/C8nBREOx1Gnvd1chkjeie3eiMidoaD0SR1EZCBo6bvd8rDsggGw01cCm8/Xl4vUz25UDA7QkG+62C8109dAwA0zM1sPm3jnmHAFpWLCd6mrmMLdiLifeoi2JrnqQuo6CJ1AWu6SF1ARbn+fkBdFkaI5i+XYLCfugCSu42Ee50IBbMjFOQxFpzkzXsxwGbdRsSz1EUAeZrNp28iYpG4jG3YHQ5G9htsmbITtJ+4jCo+5Dbqu6w3x71I+zqG4btcN7RELsHgj6kLILm3Hy+vk5wACQWzIxRkFT5XPsnq4rIk2AXYrBe57FkENNazyPO88jGv7TfYOq9SF1DRb6kLqCjXuiepC4CGGuS2SIFvyyUYdAOw25YfL6+TdAuWK4SEgvkQCrIqnyuf/JG6APie4WDUT10DdMDRbD7NcTU/0CAd2G/QPYH2yDHovZ3Npxepi6iirDvHEME4UfjaC/sKtkcuwWAvdQEklWS/gvLE/30IBXMhFGQdgkFgW5apC4A1XNgfBNiUcpFBG99T7DfYEmX3Zy91HRXkvoAnx/p7uoXhM29zXaDAtzU+GDwY7/VT10BSy4+X1xeJnvs8hAe5EAqytoPxnuM7Xz+lLgAesExdAKyolvMnoFtm8+lRRLSxm6A/HIzepC6CJ8u1C+zX1AU8Ua71/5y6AGiIi3I/YVqk8cFg5LmSh81JcvJQnvBbGZQHoSBV9VIX0BA5jnWhO/qpC4CWuhEKAlv0Itp5jnlszHm+yqlQOd7nWc7m00XqIp6irH+ZuIwqJsYIg8WEbSUYpMluI8EYkvJE/7ju56USoSBPoWOwkOOKbq8dTdbGG6G0y01EDFIXAbRXuf/QUeo6tuS9oCBbk9QFVJTjGM5vyfX7mKQuABISCrZYDsGgcWHddfHx8rrWm2vlCf55nc9JZUJBnurH1AVQmZsx3ZHjeeAfqQuAB1xExGA2nwqwga0q9yG6SFzGNrhnkK9XqQuo6JfUBWxIrt9Hrr838FRCwZbLIRjspS6AZFKcNJyE37kcCAXZhF7qAhpimbqAKoaDka7BbhACw+ZczObTF0JBoEZHkem55iMOh4PR69RFsLry2qGXuo4Kbmbz6TJ1EZtQfh85Tqvpufakg4SCHSAYpKkWHy+vl3U+YTlCdFLnc1KJUJBNcXIf/7pAy1EvdQHUIsfjNMcbHrTfWxf3QN3KhQjPUtexJSfCgqzk2vX1a+oCNizX7yfX3x+o4oXrhm5oTs9rDAAAIABJREFUdDB4MN5zktVdKU4WjANpPqEgG3Uw3uulrqEhcuwecY7QchnfbMvxeKK9bqO4uH+TuhCgm+w3SGrla3SYuo6KLlIXsGEXqQuo6NCxTgfcRrHlwEXqQqhHo4PBMD6qq24/Xl5f1PmEw8HoTeg+aTqhINvQS11AQ+TY4WSPyPbrpS6gomXqAqB0Ey7ugQaYzafvImKRuo4t6IUFxjk4jDzvL35o2/jv8vv5kLqOCnIOl2EVNxGxN5tPF6kLoT5NDwb7qQsgiVpPEoaDUS+MBWg6oSDbkmtH0qbleMHptWu/LF/jjMfz0i4XUYSCOS78ANrpWeR5zvkY+w023/PUBVT0W+oCtiTX7yvX3yN4zLvZfLrnOrZ7/pK6gEf8NXUBJFH3ScJx5Ll6rCvqCgUPQyjYRY79wh+R3wrI3nAw2mnbKlo+81PqAioQwpDa3ejQHFfj5+Yi8t0rqW2WqQvgcbP59HY4GD2LiHnqWrbgeDgYLSzGaJ5yIXg/cRlV3La44/9DRJxEftfi/eFg1BOe0CLLKK4bFonrIJGmB4NZrhTnSW4/Xl7XdiOjPEmc1PV8rK2WULC0qOl5aBbjKAu53sToR56jaFhNP3UBFQiqSekiIo4smKjNf7mRAuuZzaeL4WD0NorFuW2yExHnw8Fo4D24cXKdDtXaa5xykcCHyPNe3Kto756pdMu7iHjrM6vbmj5KNLfVIzxd3Sc/bbsgaZv/quuJPl5e34ZwsIt8zhRyPRnMsaOMFQwHo37qGir6PXUBdNIyirGhL1zcA003m0/fRL6L0h6yG0UXFM0ySV1ARbmO21xVrt9fblN24EuLKK4bLCak8cGgjsHuqe3kYDgY7US+J4ld8ap8neqS68kp1fmciWL1duoaKuqnLoCt6acuoKJl6gLolLuxoT9k/D4OdFNb9xucDAejSeoiKAwHo8PIcyHosu0jwcvvb5m6jgp65e8V5GYZxXXDwHUDd5oeDNIxdY4RjQgbhDffTtS7IqvVJ998U44XituS48rt3ZoXD1CfXLtBczyOyM9tRLyNiB9avP8Q0GLlHl11bRlRt5NyyxLSe566gIq6cl8i1+8z198rumkZnxYSXiSuhYZpbDB4MN7rp66B2i1qfr5cZ813TW2v08fL62XkuWqNJzgY7/VS19AQy9QFVGTFZsuUYW8/dR1VzOZTwSDbtIxiX5sfZvPpG+N/gJyVHUMXqevYgp2IeJ+6iK4rw9lcrxN+TV1ATXL9Pg8tTiUDyxAI8ojGBoN0Up1jRCehUygXu8PBqM5xj4san4tm6KUuoCH+SF1ART+nLoCN66cuoCKhINuyiE8X9u8EgkCLHEU7Pz93h4OR/QbTyjUUvOnKQrPy+8z1e52kLgC+40NEPBMIsoomB4O91AVQuzpPCNxIzkud3Z2/1/hc0CSL1AVU1E9dABuX62f0InUBtMoyIt5F0R04cGEPtFG50OFFtHO/wdf2Iksq1wlRuXbRVZXr95vr7xfttIxP2ww8a/sepWyOYJDG+Hh5vajjecqWfyfoeanz9VrU+Fw0Qz91AU2Q8QbUO266tE6ur2euXbc0xzKKMHCvXOV7VO7DBdBaZdfQ29R1bMl56gK6aDgY9SPfe4pdu6Gf6/fbq3myFXzpJj6/bnjjuoF1NTkYpFsWNT5Xrjccu6y2G//2GaTjch3lkmuHGV8o3+tzHfW9SF0A2bmN4obY3b6Bd2Fgru/FAJXM5tN3kW9A8JBcz2ly9zx1ARV96NqN/fL7zfXY1zVIne6uG15Ecd2w57qBp/pL6gIe8GPqAqhVneMb3UDO089R3wnjTeS7wpD1/TV1AQ2yiIgcVz5OhoPRkX23WiHXGzm3XbuRQyWLKM4x/ogO7SEEsKIXUZyH9hLXQcYynxD1W+oCEvkt8nzNDl2DskWLcN3AljU5GLSyqlvqfIPL8YSDesc9/hF+T7okxyBsW36PiNepi6joMCIuUhdBdZnfyFmkLoBGuIlP+2TdLXpbRMRScAzwsNl8ejscjF5ExDx1LWQt1+kTd91AXfQhIk4iv9ft7trlInEd5OnuuuE2inuQt+XfuW6gNk0OBumWZR1PYh+qrPWGg9FuTatkFhFxXMPzQNMsUhfwBK/CRVnucg2lI+qdfJCTi4j4NXURW3RjlTjA5szm08VwMHobrsWoLtfxjjsR8d/DwSh1HaznebgG3ZSLcN0AtWpyMJjbShGe4OPldV0dgz/V9DxsRz/q6S5d1vAc0DjlSu2byLOLcnc4GPVn8+kidSFUlusY0YjurvB+zH85JgFYx2w+fTMcjH6KeifG0ALDwagXeV7HkK/+cDDq6fDaCNcNULN/T13AA3yYd8eixufye5W3WoLdj5fXyzqeh8bopS6gYRapC3iCnIOlThsORpPI91g07gUANutZfBrNDKvKtVuQvPm9A7LU5GCQ7qjzhL9f43OxeXUGu4san4u0eqkLaJicN72flCuFyU/Ooa5uQQDYoHLc2ovUdZCdSeoC6CRbFgFZEgzSBH/U8STDwUi3YP56w8GorjHDVqjSSeX4jpx//+1Jk5nhYNSPvBfu2F8QADZsNp9+iIh3qesgD8PB6DBsSUQavfL3DyArgkGaoK4b0ILBdqjrdawlsIaGyrkDStdgfnIOc2/LG5cAwIbN5tOjqGePefKX8/QJ8uf3D8hOI4PBg/GeAKdb6jrR79X0PGxXv6bn+f/bu4PkxLGs7eNPd9T85V3BR66g7ZknRII1zYiyxwwKj3FEpleQ9grsjICxyYHGSUUwlVGFJ8ygVpDqFbz0Dr6BLp2uLBskIeleXf1/ERVV3SnMSQMC9NxzbpM7poBjNXmcqNTsoKlVPOgWJBQEAKBaV+K7GfYwiwLp2IJNFzVOtwKAUvxiu4A3cDJFFd7bLgCl+J+a7mcmVqeipZ6W0fx8EGzV3Pfj0fkg+PK0jHgNu+/edgFHYowoAAAVelpGm/NBcCPp0XYtcBahIFwwEuOPATSIq8Eg2oULt8ijlo7iRbjeSorruC/AUXOlX26a6l7SwHYReNv5IBip2WO+t6JjEACAyj0to9n5IHivZn82RXU+2i4AUPo8JBgE0BhOjhJFu5gApg79mu4HAHzQ9HGifTaBd5cZtdP0bsH50zJitBkAAPW4kZTYLgJuMWPpu5bLACSpa56PANAIBIMAmqZvuwCgDZ6W0VzN38/lkb0enPVZzR1Vu9P08BwAgMYwi3EubdcB5/xmuwDgBZ6PABqDYBAAALxlZruAI3WUBlBwiFlJ+8l2HUdKTHgOAABqYvaPvrFdB9xgFgAyIQQuuWBhKoCmIBhEK5wPgibvYQQAtny1XUAJPjHSxR3mi/Kj7TpK4MNrAwCAxnlaRg9iL3ikLtT8CRTwC2E1gMYgGIRtcU33w4dFAMjJrMre2K6jBN9YuemMe/mxD8zMdgEAALTYpZo/8h7H+2i7AOAVPC8BNALBIIDG4QI/UKsvtgsogS9dao12PgguJI1s11GC+dMySmwXAQBAW7HfIM4HQVcSk6HgohPz/AQAp/1iu4A3JJLubBeBWiS2C0AjnaiGbtNxGNyLLxttcTMdRj50xpXuaRnNzgfBvZrfeX1xPgg+mfFTqJkZ6e1LOMsYUQAALHtaRvH5ILgT+0m3FV1ZcNlHsR8qAMc5GQwuwnUi6dZyGQDcVVeA0xfBYFs0PfSq2hf5cdHl/nwQbJ6WUWy7kDZ5sa+gD6+z5GkZzW0XAQAApKdldHs+CH4V39naaGS7AGCPkQgGATiOUaIAGseMjqkDXzCBlE9ddt9M9xrq8yh/zqdMtAAAwC3sN9gy54NgJD8WnMFfHbONAgA4i2AQbcEXBQAoyITxM9t1lKSjNBzkYkINzgfBoyRfvhRvn5bRzHYRAADgB7Pv75XtOlCrX20XAGTwm+0CAGAfgkG0wtOSvcMA4Eg+dUp1JS0JB6t1Pghu5deYpy+2CwAAAH9nxnz7NOECbzgfBF35s+gMfrswz1cAcBLBIAAAOMisxp5ZLqNMJyIcrIwZ8eTDvpQ7W3HBEQAAl92pvr3oYc/IdgFADoTYAJxFMIg2YZyoH+I67mQcEhYAr/Cpa1AiHKyECQUfLZdRti817m8LAAByMu/TV+J7v+8Yz4gm+Wi7AAB4C8Eg2oTVg8jjxHYBgGs87BqUCAdLdT4I7uVfKEi3IAAADWC2EPFtIRuM80HQV7olANAUXfO8BQDn/GK7gNdMVr2OuCjfJpvrs+c6VvWxctAPBLwo3XQYxbZraJA7+TfC50TS+nwQXLInbXHng+BR/j03JOmObkEAAJrhaRk9nA+C92KEn4/oFkQT/aaaJl8BQB5OBoNKVwAtbReB2lxKmtdwP3+KLwc++E9N90P3EPCKp2WUnA+CO/m1f5xkPnuYcDC2XEujmG7Lb5L6lkupQvK0jOgWBACgWa6ULvzqWq4DJTGfN0e26wAKuDgfBDcsNATgGidHiV6fPbNav13q6g5NarofVCuu6X7oWgbe9iA/u7A7SsPBT7YLaYrzQXCidDFX33IpVbmxXQAAAMjHXIC/tF0HSsUibzRVRzx/ATjIyWAQrfM/Nd0PgbMf6noc63peAo1jLrb4vH/L/fkg+Ma+g/udD4KR0lDQ14UU8dMyqmOiAQAAKBn7DXrno+0CgCPw/AXgHIJBuKCWC4rsG+WFpMbxC75e6AZKYcYr+nxevVC672DfdiGuOR8EnfNB8E3So/weu0y3IAAADfa0jG7F3l6NZyZU8P0cTXZyPgi6tosAgJcIBuGCbo33Fdd4XyhfnSFEt8b7gl0+h1tV8z046SodLXpP92DqfBBcSPou/8fhPLCgCAAAL1zKzxH4bfKb7QKAEtA1CMApLgeDXIxpj26N9/VHjfeF8tX5+HVrvC/YxYWCgp6WUax0v0HffZL03YzObKXzQdA9HwRLSd/kd5eglO5JzOgxAAA8YCbOXNmuA0cZ2S4AKMHIdgEA8JLLwSAXaltksur1a7qruKb7QTXiOu5kHDI6EMjhTu14z+5IejwfBMs2jRc1Y0NvlXYJ9u1WU5ubGsdWAwCAipk9g9uwmM07ZmGe74vS0A4dM30FAJzgcjCIdqlrn8FY7biA7aNtjWPd2L+gXTgnHKGFq7D7SseLeh0Q/hQIfrZcTp3m5uIhAADwyNMyuhGTqZroV9sFACViLC4AZ7gcDHKhtl3+VeN9xTXeF8pT54XaOp+PsO9P2wU0nQlSZrbrqFlfHgaEZmTorX4Egm1aod22kBsAgLZhv8EGOR8EXfm/rzXa5cI8rwHAOpeDQS7UtkudHVq/13hfKE+djxsdg0B+N0r3ZmubvtKA8Pv5IPh0PggaGaSdD4L++SB4VDsDwZ0rRogCAOCvp2WUKP3MimYY2S4AqABhNwAn/GK7AMA4max6neuz5zouyM0lPdZwPyjPtq7RbuMw6IhgsG0IAkrwtIy254PgStLSdi2WdCXdS7o/HwRzpYsZ5i4HTeeD4ETpOJsLpfW32QMjRAHk9N50WMMdsdk6AnjT0zKanQ+C9yJ0agLGLsJHH8WepwAc4HIwmNguALXrq4Zxkebi9Vys0mmSOi/W9mu8L7iBvUZK8rSM4vNBcKd27Un3mgvzz6N5v/lD6cVK6881s+H9exEGvrSRdGe7CACN0xefG10U2y4AjXCj9PXbtVsG3mJG9XctlwFUoXs+CPosZAFgG8EgXPJe9QVAX0Uw2CRfaryv9zXeF+Cdp2V0a1Zh923X4ohdSKjzQbBVesHyT/PvTZUdhaYjsKv0vHYiHpPXbMUIUQAAWsUsFr6UtLZdC95EtyB89ptYyALAMpeDQbTPhWqa9/+0jObngyARK9CaIKm5y6Zf433BDda7uDx0qXSvujbuU7dPRz+Cws/Sf8PCjdIFUf9WGlS9fE6+Gh6a0O/l77dv/v3e/P+MRM7mxoVOTgAAUK+nZbQ5HwQ3SkfBwyFmz+6R7TqACl2cD4IbFicCsMnZYPD67DmerHq2y0C9upNVr3t99pzUdH9fxbi7JqhtvNs4DLriYnrrTId8GC+bWYU9EKuws+jowIKE80FQTyXt8/C0jGa2iwAAAHY8LaMHM+mCaUJu8eHxSJRec0I1flOzF/rvFozOLNcBoMWcDQbRWheqbxPeB6Wb/tLR4q6t2F8Q1UpsF+Arswr7StKj7VqAV8RPy6iWKQUAAMBpV0q/B3JdwB0fbRdQgi9Py6iua1utY6auNL3b96MIBgFY9E/bBRzAaKf2qW1/N9OyP6vr/lDIl5pHK/xa433BDYntAnxmurH4QgzXbJSOuwUAAC1nvm/yucARZly+D1N8ZrYL8NzMdgElODHPdwCwwvVgkPFu7XMxWfXqXKn3pcb7Qj5b1RgojMNgN8oB7ZLYLsB3pitrZrsOwNhKumI/DwAAsPO0jGLVuIUF9vrNdgElmPNZs1rm91vndKmq+PB8B9BQrgeDdAy2U23hzNMySsQXAFfV3S1IKNhO/7ZdQEvciPd02LeVNHhaRjwXAQDAXzwto1vxedUFI9sFlIC9Bevhw+95ZLsAAO3lejD4H9sFwIq6V8w8iO5U19TaLWgwRrSdEtsFtIEJ+QfiYgvsuiIUBAAAe1yKawPWnA+CkZq/1+P2aRn50MnmPPN7bvrrtWOe9wBQO9eDwdh2AbCiP1n1unXdmblgTdegW27q7BZkjGirJbYLaAvCQVh2xUUaAACwj5kodGW7jhbzYazizHYBLePD53sWqQOwwvVgsOkrP1DcqM47e1pGD+JitSvip2U0q/k+RzXfH9zB675GJhy8Eu/vqNeVhfcVAADQQGYhUd3Ta1rvfBB0JfUtl1EGH8ZbNskX2wWU4MI8/wGgVk4Hg9dnz1ywbS8bK8VuLNwn/s7G4/DRwn3CAdMhm8LXzYxyHIhwEPUgFAQAAHndiQWEdRvZLqAEG8bW18v8vhPbdZRgZLsAAO3jdDBoJLYLgBXdyapX62jHp2UUi5WBtt3V/UF6HAZ9Sd067xPOiG0X0FaEg6gJoSAAAMiNKRdW+DBGlG5BO3zoGvTh+Q+gYQgG4TIbXVysDLRn87SMbi3cLx/A2iuxXUCbmXDwnTjnohqEggAAoDDzWfXOdh1tcD4ILuTHYl0f9rtrIh9+793zQdC3XQSAdmlCMPiH7QJgTX+y6nXrvMMXKwNRLyu/93EYdMXIhjb7t+0C2s6ccwciHES5CAUBAMDRnpbRg/wIHVz3q+0CSjB/WkaJ7SLayPzefXidsmgdQK2aEAwmtguAVZ/rvkOzMpD9But1Y2kWP3sLtltsuwD8JRyMLZeC5ttKOiUUBAAAJboS16Uqcz4IOvJjse7vtgtoOR9+/yPzegCAWhAMwnVW3hTNysCZjftuoZmNi7jj0JsvICgusV0AUk/LaPu0jAbivIviEkkDS4tMAACAp8witkvbdXhsZLuAEmxZmGaX+f37sCfohe0CALSH88Hg9dlzbLsGWJFIGlyfPdv8AH4jxttVLX5aRrZGt36SpeAZbpgOGfXiGnM+oGMbeW2Udgryng0AAErHfoOV8mF8og9jLH3gw+PAVCsAtXE+GDS40NMeW0l312fP72yHwi/G2yU26/DYRpZWXppuQT5wtVtsuwC8znRsX8qPFZ+o3uxpGZ2a92wAAIBKPC2jW/EdolTng+BE0ontOkrwxXYBkOTH43BiXhcAULmmBIOJ7QJQi1jS6fXZ863lOv7rxdgQLjiWa6t05Jut3yvdgmDBicOeltFc6cIMHifsc2Wx6xwAALQP1wbK5cNi3YSpFW4wj0Niu44S+NBFC6ABmhIM/mm7AFQqkXR5ffY8uD57TizX8jfmw8VAfAEoi9VQcBwGXfnxBQTH4X3FcS/OvTPLpcA9idLRoTPLdQAAgBZhv8HS+bCfmg9daj75aruAEoxsFwCgHZoSDMa2C0Bl7pR2CTo9C5xwsDS7UNDmirrPolsQdKI1wtMy2pqOsCtx/kVqLvYTBAAAljwto1jSg+06mu58EIzkx/dyp69ltdDMdgEl6JjXBwBUqinBIBd//BNLend99nx7ffbciIu9hINHsx4KjsOgL1ZfQdJ0SKjQJKYzjNGi7baVdPO0jC7ZTxAAANj0tIxuxOfSY/kwLjF+WkaJ7SLwg3k8YstllOFX2wUA8F8jgkETHCW260ApEh0xNnQcBqOS68nlRTjIl4B8NpLeOdDh8dny/cMNse0CkN/TMto8LaNTpZ3maJdYaZcgq/MBAIAr2G+woPNB0JXUt1xGGXwYW+kjHx6XC/M6AYDKNCIYNGLbBeBohceGjsPgZBwGS0mP4zD4VH5p2REO5hbL4p6CO+Z507dZA5zBa7fBnpbRraRT8Ti2wa5LcMBqbAAA4BLz2eTGdh0NNbJdQAm2Yoyoq+byI7Qf2S4AgN+aFAz+absAFBar4NjQcRh0xmFwL2mtH6HO53Fod+WM2ffqVH7ML6/Sg7mgazsU7IhuQfzwh+0CcJwX3YM38uNLH/4uFl2CAADAYWbc/cxyGU3kwxjRue3rHHideVx8CG19eJ0AcFiTgsHYdgHILdHxY0O/S/q5Q7Aj6fHI2krxtIyuJF2JC9M/20q6MnsvuOBRfmxsjnLQaeYJExqdyo8vfkglki7pEgQAAA3BfoM5nA+CC0ld23WUwIdxlT7z4fHpng+Cvu0iAPirMcHg9dkzH7SapZSxoXo7zOnbHim6Y1YJMlr0h43S0aEz24VI0jgMLiRd2K4DzkimQ8IGnzwto+RpGV2K83DTbWU+OzwtI4JeAADQCKY76cp2HQ3yq+0CSpA8LaPYdhF4m3l8EstllIGuQQCVaUwwaMS2C8BBscodG7qP9ZGiOy/G2t3ZrsWyu6dldGr2YbTOPD+c6C6FM5x4bqJ8T8soNufhK/nxJbBNZkoDwVtGMgEAgKYx339dmZbjrPNB0JEf+6b50I3WBj4sNhyZ1w0AlK5pwSD7QrkrUTVjQ/fpSPqW976q9LSMbpWOtWtb+BDLXNS1XMfPGCGKn/E+4rmnZTR7WkbvlC7UIGRy20zSu6dldMXYUAAA0GRmxL0PQUSVRrYLKMnMdgHI5IvtAkrCBCwAlWhaMBjbLgCvqnps6D4npsvQGS+6B9uw92CidC/BgStdgjvjMLhVts5TtEtsuwDUwyxUICB000zpYhICQQAA4JM2XAM4hg9jEWM+vzaDeZycuk5V0EfbBQDwU6OCweuz59h2DfiLWPWNDd3nk9lHzilmjz1fL0q/3AtqZrmWvxmHQV/SZ9t1wDnb6dCtABvVelpG2xcBISNG7ZvpR4cgr0UAAOAVMxL90nYdLjofBCeSTmzXUQLGiDaLD12DJ+b1AwClalQwaMS2C4C2kq5qHht6yOM4dO+N8qeL0j4EhLtA8J2re0GZfQWdGjELZ8S2C4Ad5ly8GzF6JZ4LdXr5vkGHIAAA8NrTMoqVfvbBX/nS9cS42Gbx5fHyodsWgGOaGAyyP5RdD0q7BGd5bzgOg+6RY0P36SgNB53cT86DrpVEad3OBoJS2omqNBR08nkA6363XQDsMwHhQOl+sDM1f8GGqzZKR03/r3nfSGwXBAAAUAfz3T+2XIZrnJvyVMDM1WsheJ15vGa26yjByHYBAPzzi+0CCpiLEYE2xJJurs+ec4/+MmHNJ1X/uJ0oDR2dHd3x4kPJ7HwQ9JWu+rmQm0HWVunr7UuDRr49yo/xJKhGbLsAuMOc167OB8GN0vPwb2Jf0mPt3uO+Nuh9AwAAoApXSrdOcfG7fq3OB8FIfvweWGjaTL+r+cFa53wQjFzcygdAczUuGLw+e95MVr2t/PhQ0QRbpYHgrMiNzd5/95K6Jda0z8U4DO6nw+impvsrzIwYiZVemL6Q9Kvsh4SJqen3p2XUqJEL4zB4lB+rEFGNZDqkYwl/99OCja5+hIQsMshmt4ikce8bAAAAVXlaRsn5ILgS21xIfoxBTPis20xPy2h+PggS1Xddsiq/yY/uRwCOaFwwaMQiAKjDg6S767Pn3KMSzD5vj7LTffFpHAZ/TofNWUljPmDOlYaEJ0p/b+/Nv6sMChOl497+kBQ3tcPDhIIj23XAabHtAuA+M+7yQdIDIeFehIEAAAAHmEDiQekEpVYyn6n7lssoA595m22u5r8O++eDoMsWDQDK0tRg8HcRDFYplvtjQw95HIeBmhQO7phwbqP04vTug3RX6Yfp/1F6gbqjfBeqY/PvjaT/mP+d+PCBYhwGn0QoiMMY+4JcfgoJO0o/d7yX/c5uWzZKX0fzpi4iAQAAsOBO6Xf5ti40+2i7gJJ8sV0AjvJFzQ8GpfTa163lGgB44h+2Cyhisup1JX23XYeHmjY2NIvL6bAd3Qxmz0JJ2rblou04DEZKO1OBQ/53OmSjeJTjp87uE7n1vleWjdJFJLuOcl4/AAAAAAAAHmhkMChJk1VvrfauuKpCU8eGHrKVdMreYv4Zh0Ff0tJ2HWiE+XQYXdouAv4ynd0n5p9dWNikrsJdp/qfkjZmD1wAAAAAAAB4qKmjRKV0nBXB4PFiNX9s6D5zQkE/TYdRPA6DmRgjisP+sF0A/GbGjiZ6sfeIGT+6Cws7SgPDvGOgy7RVGv4lkv69+++2dJgDAAAAAAAg1eSOwRNJa9t1NJiPY0N/NpsOoyvbRaBa4zB4FOEg9nvHAgG45sX455/Dwn+pWLfhbg/Zndj824v9ZAEAAAAAAFCOxgaDkjRZ9b7L7WDKVb6ODX2JULBFCAexx2Y6jE5tFwEAAAAAAAAALmjyKFEpHdn1yXYRDRLL77GhO4SCLTMdRlfjMJAIB/F3v9suAAAAAAAAAABc0bhgcLLqdfWjW+0/bx+JF7ZKOwQfity4IWNDdwgFW4pwEG+YHz4EAAAAAAAAANqhUaNETSh4cn32PH/x//2fiu3F0xYzpV2CPo8N3ckcCn4Ynp4o7X68WoTr3L8b1KOPQfhBAAAgAElEQVTI48RYUbyQTIfRO9tFAAAAAAAAAIAr/mm7gDyuz56Tl6GgQTfI6zaSBtdnz1cFQ8FbSWv5GwouJV1I+v5heNqvsjAU82F4OtKPx2n5YXiaaQGAeR7MqqsMDcL7AwAAAAAAAAC80Khg8A1fbRfgmK3SDsHT67PnOO+Nx2HQH4fBd6VdWk3pxCwSCu7+bh2loRN7VTrEPB6P+vE4nYhwEPnx/gAAAAAAAAAALzRqlOhbJqvedzVj/7uqzXTc2NB7pd1ZTXJMKPizWNIlo0XtMwHgd/39sdpIGjBWFBkwRhQAAAAAAAAAfuJDx6DEuLiyxoa2ORSU0rGp3z8MT5v2e/COCf7uXvkjOgeR1RfbBQAAAAAAAACAa3zpGDxRGmy1zVbS3fXZ80ORG4/DoK90XGO3xJrqUnYo+LO5pCu6B+36MDxdKw0Df0bnIA55Nx1Gie0iAAAAAAAAAMAlXgSDUivHic7UvrGhO1WHgjtbSTeLcD0rcFuU4MPwtK/08XsN4SDespkOo1PbRQAAAAAAAACAa3wZJSq1Z2xcW8eG7tQVCsrc7vHD8HRpfhZKMln1Liar3nqy6nX3HbcI17GktzpiGSuKt7Tl/QAAAAAAAAAAcvGpY7Ar6bvtOirU5rGhO3WGgq/ev6S7RbhOSvyZrTJZ9fqSPivdz1GS5tdnz5f7bmOCv+96+7GkcxA/+9/pMGIMMAAAAAAAAAD8xJtgUJImq943NbcTbp+Z2js2dMd2KLizlfSOvQfzMcH9W8/DwfXZc7zv9h+GpyOlwfZbCAexk/lcAQAAAAAAAABt49MoUUn6aruAkrV9bOiOK6GgJG0IBbObrHrdyar3qLTj763n4b7AT5Jk9nmM9xzCWFHs+PY+AAAAAAAAAACl8apjUJImq97/qbpQqC6MDf3BpVBQki4X4Xpe4c/3wisjQw+5uz57vt13gHl81wd+Dp2D7ZZMh9E720UAAAAAAAAAgKt86xiUmt8FNJd0WiQUHIdBdxwG35SGY92yC7PAtVAwORQKTla9pofShU1Wvc5k1RtNVr210sein+PmH8240TctwvVG0qHXBZ2D7fbFdgEAAAAAAAAA4DIfg8GmXhhOlI4Nvbw+e07y3ngcBp/kx9jQHddCQSnbiML1ZNX7Pln1Ph0KunwxWfVOXowLfVQazuXVUboH4SF3Sjtq9yEcbK+Z7QIAAAAAAAAAwGXejRKVpMmql7dbyaatpC+Hxii+xYwNvVexMMZVLoaCkvRuEa6Tt/7QjM9c/vR/b5QGirMi+0S6yoSeF5I+qtzu1MH12XO874APw9ORMuxLKMaKtk3m8wYAAAAAAAAAtJWvweCFpG+268hgLummYIfgrsNqVHJNtrkaCs4W4XpvXaZrbrTnkLmk3yXFRR5z2yar3onSMPBXVRdEJ9dnzwf3iPswPM0a/hMOtsdgOoxi20UAAAAAAAAAgMu8DAYlabLqfZe7++wlkq4OdUa9xYwN/ax6ArE6uRoKSmm4FL/1h6aD7nuOn7eRFEv6Q2lQ6Fw3oQkCTyS9VxoI1vW7vjvUQWse/3XGn0c46L9kOowOBsoAAAAAAAAA0HY+B4OflG3PsjoxNvRtLoeCySJc7w0dJqverdKwtqiN+efP3X/XGRaaYPNlEHgie8HzVtLpoa7KD8PTe0mfMv5MwkG/XU2H0cx2EQAAAAAAAADgul9sF1ChmdzqqmNs6NtcDgUl6UuGY3478j52odx/TVa9rdJAK5H0b/PvxPxxruDQBH/dF/fVkfQv8+9+wZqr0lG6h+DgwHF3Sl8TWZ4LJ5KWH4anmcLB6TC6GoeB5O9rzidbpedXAAAAAAAAAMAB3nYMSpn2fKtDIsaG7uN6KLiV9G5fmNSgPS2b5vL67Hlv4PNheDpSGiJmReegf+6mw+jWdhEAAAAAAAAA0AT/tF1Axe4s3vdW6V5p74qEguMw6I/DYK20U5BQ0E4oKEnzDCHSx1oqaZ/7yaq39/FehOuZ0r0as9p1DmZ6Hpnn5yzHz0f9ZrYLAAAAAAAAAICm8DoYNGM7Zxbueq50j7TbvDcch0HHdCkt5edegjtNCAWlA2NEzYjOfi2VtE9X2fYQvMn5cwkH/TGbDqPEdhEAAAAAAAAA0BReB4PG1xrvK5E0uD57viy4l+AnSd/l/+jCpoSCm0W43hw4hm7Ban024eubzGP0kPPnEg76wWZXOAAAAAAAAAA0jvfBoBnjGVd8N4wNza4poaB0oFvQGFVdBDLtIXin9HWYB+Fgs83pFgQAAAAAAACAfLwPBo0qu0piMTY0qyaFgluzf92bJqveSP4HuS7oT1a9i30HmH0g844UlQgHmyxLcA8AAAAAAAAAeKEVwWBFXYOJpMvrs+cBY0MzaVIoKGULfxgjWp/7yaq39/lggty4wM8mHGyeeDqMYttFAAAAAAAAAEDTtCIYNMrsLrlT2iU4z3vDcRicjMNgqXaMDd1pWigoHXi+TFa9E7Wjy9MVXUmfMhxXpGtQIhxsGvYWBAAAAAAAAIAC/mG7gDpNVr3vSgOGomJJVwU7BDuSPitbuOGTJoaC8SJcD/YdMFn1HtWebk+XvDv0+vswPL1X8dfZRtLAjCY9yIwCHhW8LxQTT4fR3tcnAAAAAAAAAOB1beoYlIp3mSQ6bmzoSOnYUELBNzgUCkqHuwU7kvbueYfKPGY45k7pa7YIOgfdR7cgAAAAAAAAABTUqmDw+ux5prQjKI8yxoY+yo3Aq05NDQWTRbg+9FiP5EatbdSfrHp7Q1nT7Vd0pKhEOOgy9hYEAAAAAAAAgCO0Khg0sgYGsdKxhbfXZ8+ZxgrujMOgMw6De0lrSf185XmhqaGgJH3NcMzHyqvAPvema/NNJtyNj7gPwkE30S0IAAAAAAAAAEdoXTB4ffYca39gkIixocdocigoHQh3JqteX8ftU4njdZXt9ZXpebgH4aBb6BYEAAAAAAAAgCO1Lhg03uo6YWzocRofCi7CdXLgmN/qKAQHfZ6set19B5jH8tgOM8JBd9AtCAAAAAAAAABHamUw+ErXYCzGhh6r6aGgdGCMqAmiRrVUgiweMxzzoLQL+BiEg/bN6BYEAAAAAAAAgOO1Mhg0bsTY0LL4EAomi3AdHzhmVEMdyK4/WfUu9h2wCNdbZd9XdB/CQbvoFgQAAAAAAACAEvzDdgFNNA6DE0n3aneH4I4PoaAk3SzC9cO+Ayar3nexv6BrEqXjf/d2+n4Yni5Vzut1I2lgAseDxmHwKALlYz1Mh1EZ4S4AAAAAAAAAtF6bOwZzY2zo3/gSCm51oLvLdKZ16ygGuXSVrWM30/M0AzoH67UV3YIAAAAAAAAAUBqCwYwYG/o3voSCkjTP0AH2sZZKUMRns//jmxbhOlF5ARPhYH2+TIdRrn1fAQAAAAAAAABvIxg8YBwG3XEYLCU9yt1gq24+hYKS9GXfH5rQqV9LJSjqMcMxD0pHj5aBcLB6yXQY3douAgAAAAAAAAB8QjD4BjM29FZpl2DfbjVO8S0U3CzC9ebAMXQLuq8/WfVG+w4wXaFl7lVHOFitssa/AgAAAAAAAAAMgsFXjMPgQuk+gp9t1+IY30JB6UC3oDGqugiU4n6y6u19vi3C9VxSXOJ9Eg5WI54Oo9h2EQAAAAAAAADgG4LBF16MDf0mqWu5HNf4GApuF+F6tu8A04Xm+t8DqY6yhflld6IRDpaPbkEAAAAAAAAAqADB4F+NxNjQ1/gYCkrZwhnGiDbLp8mqd7LvgEW4TiTdlXy/hIPluZsOo8R2EQAAAAAAAADgI4LBv3qQlNguwjG+hoLSgTGiJmDaGzLBSfcZjqnitU44eLxE6WMDAAAAAAAAAKgAweAL02G0lXRjuw6H+BwKxqZzbB+6BZupb0bAvmkRrqt6rRMOHufKnIcBAAAAAAAAABUgGPzJdBjNJc1t1+EAn0NB6XC3YEfSRU21oHz35jF80yJczyXFFdw34WAx8+kwim0XAQAAAAAAAAA+Ixh83ZWkNnet+B4KJiYU2mekZv2d8FcdSZ8zHJfpeV4A4WA+W1X3WAAAAAAAAAAADILBV5hRdne267DE91BQkr5mOIYxos33yewT+SYzTraq1zrhYHZ3jBAFAAAAAAAAgOoRDL5hOoweVM2YQZe1IRSUDoQvk1WvL6lbRyGo3H2GYx4kJRXdP+HgYbE53wIAAAAAAAAAKkYwuF+bRoq2JhQ0XWL7/FZHIahFf7LqjfYdsAjXVY+xJBx8GyNEAQAAAAAAAKBGBIN7TIdRonaMFG1LKCgdGCM6WfW6SvcXhD/uJ6ve3ufrIlzHkg7tO3kMwsHX3ZnzLAAAAAAAAACgBgSDB7RgpGibQsHEBED7jGqoA/XqSPqc4bgbVdshTDj4V4wQBQAAAAAAAICaEQxm4+tI0TaFgpL0JcMxjBH106fJqney7wAzYjbLc+QYhIMpRogCAAAAAAAAgAUEgxl4OlK0baHgVgcClsmqdyGpW0cxsOL+0AGLcH0rKam4DsJB6YYRogAAAAAAAABQP4LBjMzIuyr3IKtT20JBSZovwvWhrs+PtVQCW/qTVW+U4bg6OtnaHA7Op8NoZrsIAAAAAAAAAGgjgsF8fBgp2sZQUDowInKy6nUl9WupBDbdT1a9vc9nsw9lHYsA2hgOMkIUAAAAAAAAACz6h+0CmmYcBn2lYVkTtTUU3CzC9em+Ayar3r2kTzXVA7sers+eb/Yd8GF42pW0Vj3P/42kQYaOVknSOAweJY0qrag6g+kwim0XAQAA0EbjMLhXujgtq69NmvQwDoO839M302G093tBXQrUfjMdRptKiinZOAxGkn7LcRNnHpefjcPgRBm2qGggZ59Pvp+3yjQOg1tJ7wve3NnXXREFzjuNMB1GA9s1vKXp72PjMLhQsUlyzp9zCpxHd65c2gao4a9rp57vO7/YLqBppsMoHofBg5oXIrU1FJQOdAsao6qLgDM+TVa9r9dnz2+ekBfhOvkwPP0i6XMN9ew6BzOFg9NhdDUOA6l5z9k7QkEAAACrTpRvSsofFdVRlX7e48dh8KcjF/T6OY9v0nf1rvyZztORP3+Xl1x+Pvl+3irFOAw6Ou76RX8cBl9cCgGO1JWfr1WX9XMe79p5Z6Niz5mOHJ7uNQ6DroplGBsHzwddNfd17drzXRKjRAsxq2icS3n3aHMouF2E69m+A8y+c778fZHNwVWei3B9KympvJKU72NFN9NhdGu7CAAAAOAn96YLDACabOTIzwAayYRgRbYVOnH8c8RFwdtlabJBwxEMFnepZuw32OZQUMoWnhRpFUez9SerXpYVM3Xuh+drOLhVer4EAAAAXNOR9Gi7CAA4Uhnj9Zo6og8oy9eCt3P5tVPkmvdWxUJSNAzBYEFmJUGdoUERbQ8FpQMrHCar3omKzVlG832erHp7n++LcB2r3jdDH8NBp2aSAwAAAD85MfvvAEDjmG6lMq5rdc0+a0ArTYfRXMUmh43KraQc5tzQLXDT+XQYNaEZCkciGDyCOWE82K7jDYSCUrwI18mBY+gWbK+Osm0cf6N6u4N9CgfvzHkSAAAAcNknLogDaKgyr2u53PkE1KFI12DH0c8QRc8NRTsn0TAEg0dydL9BQsHUoW7BjorPWoYfRpNVr7/vABMu1z1b24dwMGZfQQAAADTI4zgMuraLAICsxmFQ9nWtC86DaLlZwdu5GKoXOTck02EUl10I3EQwWI6B3NlvkFAwlSzC9aFOpZH8/Lsjn4Ndg4twfati4wSO0eRwMBH7CgIAAKBZOpK+2S4CAHK4UPnXtVhAj9YyW+HEBW56YYJ6J4zDYKRi54a6GyNgEcFgCczc3YHtOkQo+FKWtmfGiEKSTiar3qcMx9nYU7SJ4eBW0iXzyAEAANBAJ+MwuLVdBABkVMV1La6Voe2KjtIclVnEkX4teLtZmUXAbQSDJZkOo43sBAc7hIJ/Ndv3h2Z8ZLeOQtAIn81o2TctwnUsycZ+eU0LB2/M+RAAAABoos/jMOjbLgIA9hmHwYnS6wVl63IORJtNh9FMxSYDOjFO1IwDLtL5O2ORf7sQDJbInDhmFu6aUPCvZmZfuH2cOFnDGR1lGCkq6UZ2xgY3JRx8MOdBAAAAoMm+uTQSDABeUeV1La6Zoe1mBW5zYgJ724qOAy7aKYmG+sV2Ab6ZDqMrk8z3a7pLQsG/23sim6x6XbnV3g03jCar3tfrs+f4rQMW4Tr5MDz9IulzfWX91y4cHCzC9cFw0pyLpPqe6/PpMLqp6b4AAACAKu32G3RhyxA4YjqMYkn/KPNnmtG1eb5f3k2H0W2ZNaCxRlX+7HEY3DS1e8i8Rm7L/JnjMFgq37VeXqvN9kVSlm2HfvabJNtTtIqMA07Me5xPeA0eQMdgNS5Vz0mAUPDvEjPycZ9RDXWgmQ52DS7C9a2kpPJKXudq56DtUcoAAABA2frsNwjAReMwGKn663ujin8+4KzpMEokxQVuOiq1kJxMx2K3wE3pFmwhgsEKmBU1V6p25CCh4Ou+ZDiGkQh4y8lk1cuyIshmCOZaOLiVdNnUlYQAAADAHuw3CMBFea9rbSTNc96mSNcR4JMiYVlnHAZFR3mWoejrdlZmEWgGgsGKTIfRRtWNHSEUfN1WB05kk1XvQsVWTqA9Pk9Wvb2vF9OVOqulmte5Eg5uJQ3MSioAAADAR4/sNwjAFQW3L/qi/CFH15H90gBb5irW9GOzIaVIKDnnul47EQxWyISDZXcWEQq+bZ5h7zVWPOGQjjKMFJV0o2q7gg9xIRy8Muc5AAAAwFddSY+2iwAAI+91ra3SC/9FQg6uoaG1zGSsvJ22knRhY0HRESOGGSPaUgSDFZsOo5nSAKEMhIL77R0jOln1usq/qgrtNJqsev19B5gQ+q6ect5kMxy8Ml8sAAAAAN9djMMgy5YDAFC1Uc7j5y+2/pjlvK2VgANwSJYtq14zKrOIjH4tcJuEa3vtRTBYg+kwetDxF+MJBffbLML1oc4lVjohj4Ndg4tw/aB0Vr9NNsLBB7PoAQAAAGiLe8bqAbDJ7F2W91rfy26gvCFHR8VGEwJeMFOyilz3q3WcqBkxXOS1SrdgixEM1uTIi/GEgodl+XAzqroIeOVksuplWRVcVkfwMeoMB2fTYeTC3xkAAACo2ze6ZwBYlDdsSKbDKN79D7OPWN6Qg0X2aLsiXYMnNS8mKhrgz8osAs1CMFgjczE+7xswoeBh20W4nu07YLLqjdS+3wuO93my6u193izCdSw33kjrCAczn48AAAAAD3WVbT9yAChVwY6g17qB8oYcdQccgGuK7M8p1ds1WCTAj81iAbQUwWD9BsoeDhIKZjPLcAwrnFBER9m++N+o2IeEslUZDm4IBQEAAOCRpODtRuMwGJVXBgBkMipwm9kr/1+R/cS4pobWMnt0FnndjEou5VUmuO8WuCljRFuOYLBm5mSSJRwkFMxu72qnyap3ojQwAYoYTVa9/r4DFuF6K+munnIOqiIc3Cg9bwEAAAC+uFHxcJD9BgHULW/30avdQOa65Cznz2KfQbRdkRCtY/YFrVqR4H47HUazsgtBsxAMWpAhHCQUzC5ehOvkwDGsbMKxDnYNLsL1g4ptSFyFMsPBjaSBOW8BAAAAvthKKjoRoyPpkf0GAdTBhAvdnDfbF2T8nvNndeiURpuZvTqTAjetY5xokfBxVnYRaB6CQUv2hIOEgvkc6hbsiJVNON7JZNX7lOG4m8orya6McJBQEAAAAN4yF/qKTv44EfsNAqhH3nBh7+jD6TCaK3/IUed+aYCL8u7PKUkXVS4iMoF9kZ9f5O8CzxAMWmQutl/px95khIL5JItwfWjG80jt/h2hPJ9N0PymRbiO5daqm2PCQUJBAAAAeG86jG4lxQVvPqppTBiAljKhQt7zzDzDd/m8e6b1x2HQzXkbwCezgrcblVjDz34tcJtXxwyjfQgGLZsOo93eXQ+Egrllme/MGFGUpSPpMcNxN/oR9rugSDh4J0JBAAAAtMelin+Gf+RiOYAKjQrcJsv1siIdQ1xjQ2sV3J9Tqqjb1nz2KLI4qch+ifAQwaADpsNoMx1GmUYQEgr+xWzfH05Wvb7yz2AH9rkwz6s3LcL1VsXHEVUlbzh4SygIAACAtngxzaeIjqRvJZYDAC/lDeMSMyZ5L9Mx9PP2RoeMch4P+KZIqHYyDoOT0ispFgruHTOMdiEYbBBCwb+YLcJ1cuAY5p+jCge7Bhfh+kH5P2BXLVc4CAAAALSJ2XProeDNT8ZhwH6DAEo1DoO+8i94zxNc5O0a7Jg9zYBWMqF7UuCmVVyjLtLBm2XMMFriF9sFIBtCwb/Z+0Fnsup1xUomVKM7WfVur8+ebw8cd6P0NeuSXTg4MJ2NAAAAAIzpMLoxF+KLrOz/NA6DP0zACABlKBImzHIcO1e2LVNe+jXnfQC++Srpc87bjJReJyyF6UDsFrhpkRHCTfXbOAze2y5CUuZJkXWjY7ABCAX/JlmE6/jAMaMa6kB7fTTh85vMc3RWRzE50TkIAAAAvO1K7DcIwLJxGHSU/9rW3IwIzaTgnmkXnOfQcrMCt+mMw6DI6M+3FOkW3EyHkWvTzarUldR34J8qxsiWgmDQcYSCr8qyuoExoqhSR1KWUUE3Kn5RoUqEgwAAAMArzEWzoiu7O8rffQMArxkVuM3vNd1mVOA2gBdM+F5kOkCZ16qLhIxt6hZEBgSD7vsoQsGXDq5mmqx6FyrWTg3kcTFZ9fr7DjDjOu/qKSe3E0mfbBcBAAAAuGY6jGYqdtFPkvrjMLgtrxoALZU3RNiac1cuZvxxkvNmLMZH2+XZy3PnwnQCH8Xs85n352xV/HMNPEUw6LhFuL6Sm+MIbZln2ButSDs1UMTB1cCLcP0gycVW/dkiXN/aLgIAAABw1JXyXyzf+Wz2KgSA3Mz+YXnHzx1z0T9vyNEteSwi0CgFA3WpnG7bXwvcZm5GBwP/RTDYAISDf7G37dns+9avpRJA6k5WvdsMx7m2yeyDOa8AAAAAeIW5gHZ5xI/4VkZnAIBWKrLg/ZgxgbMCt6FrEG1XpGvwqNeN2d+zSChfpFZ4jmCwIcxFfNfChbptFuH6UOcV3YKo20cTSL9pEa5jSQ+1VHPY1SJct/1cAgAAABxk9hssujVAR9K3EssB0AJmQUHeC/+JOV8VYvZMi3Pe7MKEFEBbzQrc5sR0BBdVJBRMpsMoPuI+4SmCwQYxIwnb3OWTZfXTqOoigJ90JN1nOO5O6UxvW7ZKQ8GZxRoAAACARpkOo1vlv2C+0x+HAft6A8jjQvn3DzumW3Cn0J5pJdwv0EgFA3XpuK7BuruJ4TGCwYYxF/VPZTdgsGF7KNCYrHoj5f/wBJThYrLq9fcdYPbGtNWpt5U0IBQEAAAACrlU8e/g90d2BwBolyIX/o/ZX/Dlz8h7nmNqF9quSKA+KnJH5rNEt8BNZ0XuD/4jGGwgM05zIKnwmIAGmmU4hg8ksOnx0AEmmIsrr+SvNpJOM4zhBQAAAPAK9hsEUAdz4T/vQoK56Vw6ijnP5Q0Yu+Mw6B9730BTTYfRTPkD9c44DIp02xa57j0zr23gbwgGG+pFOBhbLqUue9ueJ6tekQ9PQJm6k1XvNsNxdXYNzpV2CiY13icAAADgHbM/T9F9w7vKsJAQQOsVGTH4e4n3X6T76ZixiIAPZgVuU+R1UyRMLPP8AM/8YrsAFGdGEw4+DE8f5ffeenGGYINuQbjg42TVm12fPSdvHbAI15sPw9MHSVXvNfKwCNe2RpcCAAAA3pkOoxvTHVNkUerFOAw+TYdR0XARgP9GOY/fmo6lUkyHUTwOg0T5xhWOxmFwQ1cSWuyL8l/juxiHQSfr62YcBiPl3z4rmQ6jMsYMN9Wd2Scab6Bj0AOLcH0l6cp2HRU61C3YERseww0dSfcZjrtTdfuEbiVdEQoCAAAAlWC/QQClK3jhf1Z6ITXumQb4wIzyjQvcdJTj2F8L/Pwir2W0CMGgJ8zeZaeqLmywJVmE60OrG0bK/+EJqMrFZNXr7zvAdPtWEdwlSkeHzir42QAAAEDrmQuAx3yWf2S/QQCvKDJasIoL/7MCt2GKF9qusjG84zDoqlhDzKzAbdAiBIMeMfsOvpNf+w5mObHyAQSuObh/iAnv4hLvM5Z0as4DAAAAACpiRvfNCt78RNmmjABoCXPhv5/zZpvpMCr9+3/B7qcu3dBoubnyN+ucZHzdFAkF5+a1DLyJYNAzi3C9XYTrgYpviu6a2b4/NJ1Z3ToKAXLoTla92wzHldU1eLcI1wPTiQgAAACgejdKJ3YUMTJjAwFAKrbgvcoxgUV+Nov20Vpmr8Ai+/ll6Rp07fwAT/xiuwBUYxGubz4MT/9Q2rnU1DEls0W4Tg4cU2TUAlCHj5NVb3Z99py8dcAiXG8+DE8flH+T4p3dfoJt3kwYAAAAqN10GG3HYXApaV3wR9yPw6CSjh8AjTMqcJtkHAb9kuvYKbLo+GIcBjcmIAHa6Ivyv5ZH2tM0YDoKuzl/ZjIdRlwnxEF0DHrMhAWnkpr6RWPv6obJqtcVGxzDXR1lGxF0p2IfujdKR4fyZg8AAABYYEK9olNAOsqwBQEAv43D4ELFFvR/k7Ss6J9vBerpqNjIQ8AL5jNB3mvwHXMOeEuRbkGuEyITgkHPLcJ1sgjXp2reaNFkEa7jA8eMaqgDOMbFZNXb+8HYjP/MezHhbhGuTzN01AIAAACo0HQYPaj4RbiTcRiw3yDQbj5NwmKcKNruS4Hb7DsHFAnbi9SAFiIYbIlFuL6RNFCxziQbspzEfPrwBH/dT1a9vav/FuF6pmybeyeSBotwfXt0VQAAAADKcqXi37WLbisAoOHGYdCVX112J2b0IdBWc+X/PHAxDoO/XTc0exHn7SaOp8MoyXkbtBTBYIuYDrx3cr+leCtptvoTkrAAAAqDSURBVO8A04XVraMY4EhdZfuyf6hrcK50dGh8bEEAAAAAymP21Lq0XQeAxhnZLqACdA2itczngSLX3Uev/H+/Fvg5e7flAl4iGGyZRbjeLsL1pdIQwtXuwbkZr7gPHzTQJJ/NnphvWoTrjV4f+buVdLkI15cZXhcAAAAALJgOo1jp/uEAkJWPk7B86oAEiigSzv3lXFCwm3g7HUazAveNliIYbKlFuH6QdKps4wvrtneMqAlY+rVUApTnMcMxd/prYD+X9G4Rrl3v8gUAAABabzqMbiVtbNcBwH3jMPB1ElbHjEAEWsksFEpy3uznMbxFAvZZgdugxQgGW2wRrpNFuB7Ire7Bjemc2oduQTRR34zAfZPpCNy9HukSBAAAAJrnUu58vwbgLh+7BXd8/rsBWextennDy9dNkWvfRe4TLUYwCNe6B7OcxEZVFwFU5H6y6u3dOHgRrmeiSxAAAABopOkwSiRd2a4DgLvGYdCR3yM3+2YUItBWswK3GUmS6Rzs5rztxnz+ADIjGIQkZ7oHtyYUedNk1RtJ2husAA7rSvp06CC6BAEAAIDmmg6juRjpBeBtI9sF1IBpX2it6TDaKv/ngI4ZMUy3IGpBMIi/eNE9aKNbaZbhGD5YoOk+m30yAQAAAPjrRuw3COB1bbi2NbJdAGDZ1wK3+U35u4m3snMdHw33i+0C4J5FuE4kXX4Ynl5Iuld9myHvXd0wWfVOJJ3sOwZoiEdJA9tFAAAAAKjGdBhtx2FwJWkppt4AMMZh0Fex62xzSX+WWkx2/1L+sKIzDoPRdBjNKqgHcN50GMXjMEiU7/VeZMTw3HQoArkQDOJNi3A9/zA8jZWOPvxc8d3FJpDcpw0rqtAOJ5NVr3t99pzYLgQAAABANabDaDMOgzulC24BQEo7goq4sbWH2BF7Iv4qxiqj3b6q+mvqjBFFIQSD2MvsdXb7YXg6U9rl1K/org51C/q+MTPaYybp5vrsmdU8AAAAgOemw+hhHAbvxfdZoPVMwDYqcNPYVigo/bcDeq7857GLcRh0bdYOWDZTtcHgZjqMGFv+uv9nOrRdsHGxq5NgEJmYbr5BReNFk0W4PjQLeSTGr6DZYqWBIG/YAAAAQLtcKd0Wo2u5DgB2jQrersheZWX7qmILHEaSbkutBGiI6TBKCobqWdEt+LaR3NnrdKD0urBT/mm7ADTLIlzPF+H6naQ7pZubliHLBxzGiKKpEkmX12fPA0JBAAAAoH3MKvEr23UAsK7IGNGt0v0FrZoOo7nS6xt5FR2dCviiymDf+rkBzUUwiEIW4fpW0jtJDyX8uNm+P5ysen2xshLNs1XaIfju+uyZN2oAAACgxabDKFa6wBZAC43D4ERp53Bec4dG0BW5ttEdhwGjlNFaR4Tqh8wcOjeggQgGUdgiXG8X4fpGaUA4K/hjZmZM6T6sLkLTPEh6d332XEZwDgAAAMAD02F0KwdHSQGoRdFJWC6MEd0pOraQ63pouypexy6dG9BABIM42iJcJ4twfaVi83L3nsQmq15X7swDBg6ZKQ0Eb67Pnlm1AwAAAOBnVypvWw4ADTAOg46K7TGWmG5jJ0yHUSKpyBYpF+Mw6JZbDdAos5J/nlPnBjQTwSBKswjX8SJcD5Q9IEwW4frQcaMjywLqECsNBK+uz54Ty7UAAAAAcJS5sM5+g0C7XEjqFLhd0Q69KhWtiXGiaC3z3h+X+CNdPDegYQgGUbocAWGWkxjjBuCyWNLg+ux5QCAIAAAAIAuz3xDbDgDtUXSMaJE9/ao2V7Gu56K/A8AXZY7+nJX4s9BSBIOozIGAcKsDJ7HJqnchqVtFbcCRZvoRCMaWawEAAADQPHcqNpIPQIOMw+BE0kmBm85Nl5FTpsNoq2KBZXccBv2SywEaYzqMZipnlPjMvA6BoxAMonIvAsJT/QgD54twfegkxmoiuGamHyNDY8u1AAAAAGgoc1GP/QYB/xWdhPV7qVWUq2jnE1PB0HazEn6Gy+cGNAjBIGqzCNebRbi+kvRO0s2+YyerXldSv4aygEO2Ssf8sIcgAAAAgNJMh9FGB74bA2i8UYHbbE13kZOmwyiWlBS46WgcBkX2WgR8cezegIkZRw4c7RfbBaB9FuE6yXAY3YKwLVH6hj27PntmFS8AAACa7qukP3IcH1dUR1Xuch6fVFFEXtNhNDMXyvNcLE8qKqcKcc7jkwpqcFlc8fFN1+jz1jgMuioWBDRhzPCNio1I7aoZf7+fNfq5WINGvgfXbTqMknEY3Cjfe/5LTXztlCW2XcAREtsFvOYftgsAXjNZ9f5PxU+SwDFiSV+vz55nlusAAAAAAAAAAKBUdAzCOZNV70SEgqjXbvPsL9dnz21efQMAAAAAAAAA8Bgdg3DSZNXrSLpQOlK0yGgCIIuN0rEec8aFAgAAAAAAAAB8RzAI501Wva7SgHAkOglxPLoDAQAAAAAAAACtRDCIRpmseiNJvyrtJgTymEv6nb0DAQAAAAAAAABtRTCIRjJdhBeSfhOjRvG2jaSvkmaMCgUAAAAAAAAAtB3BIBqPkBA/2YWB8+uz58RyLQAAAAAAAAAAOINgEF4hJGwtwkAAAAAAAAAAAA4gGIS3TEjYF3sS+mou6XdJMWEgAAAAAAAAAACHEQyiNSar3oWk90pDwq7dalBAojQM/OP67HluuRYAAAAAAAAAABqHYBCt9KKbcBcUdmzWg1clkmJJf4iuQAAAAAAAAAAAjkYwCEiarHonSvckfK80MOzarKelEv0IAjfXZ88bq9UAAAAAAAAAAOAZgkHgFaajcBcUnigNC1GuWNJGP4LAxGo1AAAAAAAAAAB4jmAQyOhFV+G/RFiYV6w0BPxTdAMCAAAAAAAAAGAFwSBwBNNZ2FUaEv6/F//dVrHSkaD/3v03nYAAAAAAAAAAALiBYBCowGTV6yjtKuyaf/4lqfPifzdVYv7ZKu3+2/3vzfXZ89ZWUQAAAAAAAAAA4DCCQcCCF8GhzL875r/fvzjs5TFV2igN+nb+MP/emj+TCP4AAAAAAAAAAGg8gkGgYSarXv+ImxPwAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADggv8PKtC8+6b7s94AAAAASUVORK5CYII=",xrt="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20aria-hidden='true'%20focusable='false'%20viewBox='0%200%2024%2024'%20class='option-icon'%20data-v-8e1d3227=''%3e%3cpath%20d='M0%200h24v24H0z'%20fill='none'%3e%3c/path%3e%3cpath%20d='%20M12.87%2015.07l-2.54-2.51.03-.03c1.74-1.94%202.98-4.17%203.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5%207.92%2010.44%209.75%209%2011.35%208.07%2010.32%207.3%209.19%206.69%208h-2c.73%201.63%201.73%203.17%202.98%204.56l-5.09%205.02L4%2019l5-5%203.11%203.11.76-2.04zM18.5%2010h-2L12%2022h2l1.12-3h4.75L21%2022h2l-4.5-12zm-2.62%207l1.62-4.33L19.12%2017h-3.24z%20'%20class='css-c4d79v'%20fill='%23333'%3e%3c/path%3e%3c/svg%3e";var Lrt={name:"mfa3sb",styles:"line-height:10px;cursor:pointer"},Frt={name:"1mqis16",styles:"width:16px;height:16px;opacity:0.6"};function KB(){const{t:n,i18n:e}=va();return ae(UP,{menu:{items:[{key:"0",label:n("head.en"),onClick(){e.changeLanguage(_9.en)}},{key:"1",label:n("head.zh"),onClick(){e.changeLanguage(_9.zh)}}]},children:ae("a",{css:Lrt,onClick:t=>t.preventDefault(),children:ae("img",{src:xrt,css:Frt,alt:"lang"})})})}const _rt="data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGitHub%3c/title%3e%3cpath%20d='M12%20.297c-6.63%200-12%205.373-12%2012%200%205.303%203.438%209.8%208.205%2011.385.6.113.82-.258.82-.577%200-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422%2018.07%203.633%2017.7%203.633%2017.7c-1.087-.744.084-.729.084-.729%201.205.084%201.838%201.236%201.838%201.236%201.07%201.835%202.809%201.305%203.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93%200-1.31.465-2.38%201.235-3.22-.135-.303-.54-1.523.105-3.176%200%200%201.005-.322%203.3%201.23.96-.267%201.98-.399%203-.405%201.02.006%202.04.138%203%20.405%202.28-1.552%203.285-1.23%203.285-1.23.645%201.653.24%202.873.12%203.176.765.84%201.23%201.91%201.23%203.22%200%204.61-2.805%205.625-5.475%205.92.42.36.81%201.096.81%202.22%200%201.606-.015%202.896-.015%203.286%200%20.315.21.69.825.57C20.565%2022.092%2024%2017.592%2024%2012.297c0-6.627-5.373-12-12-12'%20fill='%23333'%3e%3c/path%3e%3c/svg%3e";var vme={TERM_PROGRAM:"vscode",NODE:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NVM_CD_FLAGS:"-q",INIT_CWD:"/Users/alexander/my-code/github/openapi-ui",SHELL:"/bin/zsh",TERM:"xterm-256color",TMPDIR:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/",npm_config_metrics_registry:"https://registry.npmjs.org/",npm_config_global_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",TERM_PROGRAM_VERSION:"1.88.1",GVM_ROOT:"/Users/alexander/.gvm",MallocNanoZone:"0",ORIGINAL_XDG_CURRENT_DESKTOP:"undefined",ZDOTDIR:"/Users/alexander",COLOR:"1",npm_config_noproxy:"",ZSH:"/Users/alexander/.oh-my-zsh",PNPM_HOME:"/Users/alexander/Library/pnpm",npm_config_local_prefix:"/Users/alexander/my-code/github/openapi-ui",USER:"alexander",NVM_DIR:"/Users/alexander/.nvm",LD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",COMMAND_MODE:"unix2003",npm_config_globalconfig:"/Users/alexander/.nvm/versions/node/v16.10.0/etc/npmrc",SSH_AUTH_SOCK:"/private/tmp/com.apple.launchd.jaFD8W3kId/Listeners",__CF_USER_TEXT_ENCODING:"0x1F5:0x19:0x34",npm_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/bin/npm-cli.js",PAGER:"less",LSCOLORS:"Gxfxcxdxbxegedabagacad",PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.bin:/Users/alexander/my-code/github/node_modules/.bin:/Users/alexander/my-code/node_modules/.bin:/Users/alexander/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",npm_package_json:"/Users/alexander/my-code/github/openapi-ui/package.json",__CFBundleIdentifier:"com.microsoft.VSCode",USER_ZDOTDIR:"/Users/alexander",npm_config_auto_install_peers:"true",npm_config_init_module:"/Users/alexander/.npm-init.js",npm_config_userconfig:"/Users/alexander/.npmrc",PWD:"/Users/alexander/my-code/github/openapi-ui",GVM_VERSION:"1.0.22",npm_command:"run-script",EDITOR:"vi",npm_lifecycle_event:"build:package",LANG:"zh_CN.UTF-8",npm_package_name:"openapi-ui-dist",gvm_pkgset_name:"global",NODE_PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.pnpm/node_modules",XPC_FLAGS:"0x0",VSCODE_GIT_ASKPASS_EXTRA_ARGS:"",npm_package_engines_node:"^18.0.0 || >=20.0.0",npm_config_node_gyp:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",XPC_SERVICE_NAME:"0",npm_package_version:"2.0.1",VSCODE_INJECTION:"1",HOME:"/Users/alexander",SHLVL:"2",VSCODE_GIT_ASKPASS_MAIN:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js",GOROOT:"/Users/alexander/.gvm/gos/go1.21.6",DYLD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",gvm_go_name:"go1.21.6",LOGNAME:"alexander",LESS:"-R",VSCODE_PATH_PREFIX:"/Users/alexander/.gvm/gos/go1.20/bin:",npm_config_cache:"/Users/alexander/.npm",GVM_OVERLAY_PREFIX:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay",npm_lifecycle_script:"tsc && vite build --config vite.package.config.ts --mode package",LC_CTYPE:"zh_CN.UTF-8",VSCODE_GIT_IPC_HANDLE:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/vscode-git-79a18f10f2.sock",NVM_BIN:"/Users/alexander/.nvm/versions/node/v16.10.0/bin",PKG_CONFIG_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:",GOPATH:"/Users/alexander/mygo",npm_config_user_agent:"npm/7.24.0 node/v16.10.0 darwin x64 workspaces/false",GIT_ASKPASS:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh",VSCODE_GIT_ASKPASS_NODE:"/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin)",GVM_PATH_BACKUP:"/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",COLORTERM:"truecolor",npm_config_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",npm_node_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NODE_ENV:"production"};function yme(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}var Drt=vme.NODE_ENV==="production"?{name:"baa6rt",styles:"color:gold"}:{name:"32hpr9-GithubStar",styles:"color:gold;label:GithubStar;",map:"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvY29tcG9uZW50cy9naXRodWItc3Rhci9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0NrQiIsImZpbGUiOiIvVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL29wZW5hcGktdWkvc3JjL2NvbXBvbmVudHMvZ2l0aHViLXN0YXIvaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9vbHRpcCB9IGZyb20gXCJhbnRkXCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgZ2l0aHViSWNvbiBmcm9tIFwiLi4vLi4vYXNzZXRzL2ltYWdlcy9naXRodWIuc3ZnXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEdpdGh1YlN0YXIoKSB7XG4gIGNvbnN0IFtzdGFyLCBzZXRTdGFyXSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCBbaXNGZXRjaGVkLCBzZXRJc0ZldGNoZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgKGFzeW5jICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGdldFN0YXIoKTtcbiAgICAgICAgc2V0U3RhcihyZXMuc3RhcmdhemVyc19jb3VudCk7XG4gICAgICAgIHNldElzRmV0Y2hlZCh0cnVlKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaCBnaXRodWIgaW5mbyBlcnJvcjpcIiwgZSk7XG4gICAgICB9XG4gICAgfSkoKTtcbiAgfSwgW10pO1xuXG4gIGFzeW5jIGZ1bmN0aW9uIGdldFN0YXIoKSB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goXCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3Jvb2tpZS1sdW9jaGFvL29wZW5hcGktdWlcIik7XG5cbiAgICBpZiAoIXJlcy5vaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRmFpbGVkIHRvIGZldGNoIGRhdGFcIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcy5qc29uKCk7XG4gIH1cblxuICBpZiAoIWlzRmV0Y2hlZCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8YSBocmVmPVwiaHR0cHM6Ly9naXRodWIuY29tL3Jvb2tpZS1sdW9jaGFvL29wZW5hcGktdWlcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgIDxUb29sdGlwXG4gICAgICAgIHRpdGxlPXtcbiAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgIHtgJHtzdGFyfWAucmVwbGFjZSgvXFxCKD89KFxcZHszfSkrKD8hXFxkKSkvZywgXCIsXCIpfVxuICAgICAgICAgICAgPHNwYW4gY3NzPXt7IGNvbG9yOiBcImdvbGRcIiB9fT4mIzk3MzM7PC9zcGFuPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPlxuICAgICAgICA8aW1nIGNzcz17eyB3aWR0aDogMTYsIG9wYWNpdHk6IDAuNiwgXCImOmhvdmVyXCI6IHsgb3BhY2l0eTogMSB9IH19IHNyYz17Z2l0aHViSWNvbn0gYWx0PVwiZ2l0aHViXCIgLz5cbiAgICAgIDwvVG9vbHRpcD5cbiAgICA8L2E+XG4gICk7XG59XG4iXX0= */",toString:yme},Art=vme.NODE_ENV==="production"?{name:"wbpb17",styles:"width:16px;opacity:0.6;&:hover{opacity:1;}"}:{name:"16ml1ie-GithubStar",styles:"width:16px;opacity:0.6;&:hover{opacity:1;};label:GithubStar;",map:"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvY29tcG9uZW50cy9naXRodWItc3Rhci9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNENhIiwiZmlsZSI6Ii9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvY29tcG9uZW50cy9naXRodWItc3Rhci9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sdGlwIH0gZnJvbSBcImFudGRcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBnaXRodWJJY29uIGZyb20gXCIuLi8uLi9hc3NldHMvaW1hZ2VzL2dpdGh1Yi5zdmdcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gR2l0aHViU3RhcigpIHtcbiAgY29uc3QgW3N0YXIsIHNldFN0YXJdID0gdXNlU3RhdGUoMCk7XG4gIGNvbnN0IFtpc0ZldGNoZWQsIHNldElzRmV0Y2hlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAoYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZ2V0U3RhcigpO1xuICAgICAgICBzZXRTdGFyKHJlcy5zdGFyZ2F6ZXJzX2NvdW50KTtcbiAgICAgICAgc2V0SXNGZXRjaGVkKHRydWUpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoIGdpdGh1YiBpbmZvIGVycm9yOlwiLCBlKTtcbiAgICAgIH1cbiAgICB9KSgpO1xuICB9LCBbXSk7XG5cbiAgYXN5bmMgZnVuY3Rpb24gZ2V0U3RhcigpIHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBmZXRjaChcImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvcm9va2llLWx1b2NoYW8vb3BlbmFwaS11aVwiKTtcblxuICAgIGlmICghcmVzLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJGYWlsZWQgdG8gZmV0Y2ggZGF0YVwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzLmpzb24oKTtcbiAgfVxuXG4gIGlmICghaXNGZXRjaGVkKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxhIGhyZWY9XCJodHRwczovL2dpdGh1Yi5jb20vcm9va2llLWx1b2NoYW8vb3BlbmFwaS11aVwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgPFRvb2x0aXBcbiAgICAgICAgdGl0bGU9e1xuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAge2Ake3N0YXJ9YC5yZXBsYWNlKC9cXEIoPz0oXFxkezN9KSsoPyFcXGQpKS9nLCBcIixcIil9XG4gICAgICAgICAgICA8c3BhbiBjc3M9e3sgY29sb3I6IFwiZ29sZFwiIH19PiYjOTczMzs8L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9XG4gICAgICA+XG4gICAgICAgIDxpbWcgY3NzPXt7IHdpZHRoOiAxNiwgb3BhY2l0eTogMC42LCBcIiY6aG92ZXJcIjogeyBvcGFjaXR5OiAxIH0gfX0gc3JjPXtnaXRodWJJY29ufSBhbHQ9XCJnaXRodWJcIiAvPlxuICAgICAgPC9Ub29sdGlwPlxuICAgIDwvYT5cbiAgKTtcbn1cbiJdfQ== */",toString:yme};function jB(){const[n,e]=I.useState(0),[t,i]=I.useState(!1);I.useEffect(()=>{(async()=>{try{const o=await r();e(o.stargazers_count),i(!0)}catch{}})()},[]);async function r(){const o=await fetch("https://api.github.com/repos/rookie-luochao/openapi-ui");if(!o.ok)throw new Error("Failed to fetch data");return o.json()}return t?ae("a",{href:"https://github.com/rookie-luochao/openapi-ui",target:"_blank",children:ae(cg,{title:Rt("span",{children:[`${n}`.replace(/\B(?=(\d{3})+(?!\d))/g,","),ae("span",{css:Drt,children:"★"})]}),children:ae("img",{css:Art,src:_rt,alt:"github"})})}):null}const Ime="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1709478286586'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='6896'%20width='32'%20height='32'%20xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cpath%20d='M577.16491%204.216164C296.74428-31.752019%2040.196107%20166.39648%204.227924%20446.84711c-35.968183%20280.42063%20162.146317%20536.936804%20442.598946%20572.936986%20280.45263%2035.968183%20537.064801-162.178316%20572.936986-442.630946%2035.999182-280.42063-162.082318-536.936804-442.598946-572.936986z%20m105.441605%20319.365746a36.466172%2036.466172%200%200%200-25.310425%2010.655758L467.307405%20524.224352l-40.545079-40.545079c187.266746-186.722759%20221.026979-188.514718%20255.844189-160.130362z%20m-207.495287%20207.395289l189.446697-189.443697a26.469399%2026.469399%200%201%201%2036.192178%2038.528125l-0.032%200.031999L500.235657%20556.097628z%20m14.08868%2029.632327l-46.948934%2010.143769a2.870935%202.870935%200%200%201-0.575987%200.063999%202.63194%202.63194%200%200%201-2.299947-1.407968%202.476944%202.476944%200%200%201-0.351992-1.279971%202.510943%202.510943%200%200%201%200.767982-1.823959l27.516375-27.517374z%20m-119.622283-19.584555l50.016864-50.016864%2037.506148%2037.472149-84.449082%2018.176587a3.044931%203.044931%200%200%201-0.799982%200.099998%203.09993%203.09993%200%200%201-2.815936-1.759961v-0.031999a2.978932%202.978932%200%200%201-0.479989-1.663962%203.162928%203.162928%200%200%201%201.023977-2.299948zM214.023159%20799.4931a3.237926%203.237926%200%200%201-2.943934-3.231927v-0.319993a3.299925%203.299925%200%200%201%200.927979-1.951955h0.099998l40.353083-40.353084%2052.128816%2052.128816z%20m103.457649-53.598783a9.763778%209.763778%200%200%200-5.24788%208.639804%209.344788%209.344788%200%200%200%200.287993%202.335947v-0.063999l8.671803%2036.899162a5.327879%205.327879%200%200%201-5.188882%206.61985%205.26288%205.26288%200%200%201-3.807913-1.599964h-0.127998l-52.38481-52.448809L420.201475%20585.921951l77.665236-16.768619%2037.280153%2037.280153c-53.536784%2047.008932-126.754121%2093.921867-217.603057%20139.425833z%20m225.251884-146.244678h-0.099998l-35.808186-35.808187%20200.486446-176.003002a41.607055%2041.607055%200%200%200%205.023885-5.343878l0.063999-0.099998c-6.299857%2057.376697-86.561034%20138.465855-169.696145%20217.219066zM698.767148%20323.992901l-0.127997-0.099998A77.753234%2077.753234%200%200%201%20803.692764%20209.467502l-0.127997-0.099998-68.705439%2068.833437a5.099884%205.099884%200%200%200%200%207.231835l53.216791%2053.216792a77.457241%2077.457241%200%200%201-89.280972-14.619668z%20m109.985501%200a72.269358%2072.269358%200%200%201-11.299743%209.119792l-0.287993%200.159997h-0.032l-51.48883-51.488831%2065.409514-65.408514A77.776233%2077.776233%200%200%201%20808.752649%20323.992901z%20m-4.259903-65.852505a6.090862%206.090862%200%200%200-2.527943%204.927888%206.376855%206.376855%200%200%200%200.255995%201.79196v-0.032a17.774596%2017.774596%200%200%201-2.299948%2019.232564l0.031999-0.032a5.973864%205.973864%200%200%200%200.991978%208.38381%206.022863%206.022863%200%200%200%203.583918%201.279971%205.999864%205.999864%200%200%200%204.511898-2.111952%2029.450331%2029.450331%200%200%200%203.615918-32.192269l0.063998%200.159996a5.885866%205.885866%200%200%200-8.287812-1.407968h0.032z'%20fill='%23FF6C37'%20p-id='6897'%3e%3c/path%3e%3c/svg%3e";function wme(){return Rt("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",version:"1.1",width:"18",height:"18",viewBox:"0 0 18 18",children:[ae("defs",{children:Rt("filter",{id:"master_svg0_182_24814",filterUnits:"objectBoundingBox",colorInterpolationFilters:"sRGB",x:"0",y:"0",width:"18",height:"18",children:[ae("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),ae("feBlend",{mode:"normal",in:"SourceGraphic",in2:"BackgroundImageFix",result:"shape"}),ae("feGaussianBlur",{in:"BackgroundImage",stdDeviation:"2"}),ae("feComposite",{in2:"SourceAlpha",operator:"in",result:"effect1_foregroundBlur"}),ae("feBlend",{mode:"normal",in:"SourceGraphic",in2:"effect1_foregroundBlur",result:"shape"})]})}),Rt("g",{children:[ae("g",{filter:"url(#master_svg0_182_24814)",children:ae("rect",{x:"0",y:"0",width:"18",height:"18",rx:"4",fill:"#EEF2F9",fillOpacity:"0.8500000238418579"})}),ae("g",{transform:"matrix(-1,0,0,-1,26,24)",children:ae("path",{d:"M13.649878,16.187649999999998C13.387973,16.51503,13.621059,17,14.04031,17L19.959690000000002,17C20.37894,17,20.61203,16.51503,20.35012,16.187649999999998L17.390430000000002,12.488043C17.190269999999998,12.23784,16.809730000000002,12.23784,16.60957,12.488043L13.649878,16.187649999999998Z",fill:"#8B8EA2",fillOpacity:"1"})})]})]})}const QB=Ti.Item;var Nrt={name:"1d3w5wq",styles:"width:100%"},krt={name:"1d3w5wq",styles:"width:100%"};function Sme({onSuccess:n}){const[e]=Ti.useForm(),{configInfo:t,updateConfigInfo:i}=eB(),{t:r}=va();function o(s){i(s),Ql.success(r("head.updateConfigSuccess")),n()}return ae(Ple,{title:r("head.updateConfig"),open:!0,footer:null,onCancel:n,children:Rt(Ti,{name:"config",form:e,layout:"vertical",initialValues:{timeout:(t==null?void 0:t.timeout)||ade,authorization:t==null?void 0:t.authorization},onFinish:o,children:[ae(QB,{name:"timeout",label:r("head.requestTimeoutLabel"),rules:[{required:!0,message:r("head.requestTimeoutPlaceholder")}],children:ae(rle,{css:Nrt,min:1,max:3600,placeholder:r("head.requestTimeoutPlaceholder")})}),ae(QB,{name:"authorization",label:r("head.authorizationLabel"),children:ae(th,{css:krt,placeholder:r("head.authorizationPlaceholder")})}),ae(QB,{children:ae(so,{type:"primary",htmlType:"submit",style:{width:"100%"},children:r("head.submit")})})]})})}var Mrt={name:"wbpb17",styles:"width:16px;opacity:0.6;&:hover{opacity:1;}"};function Zrt(){const n=wg(),{t:e}=va();return ae(cg,{title:e("postman.goToPostman"),children:ae("a",{style:{cursor:"pointer"},onClick:()=>{n(`${pme}`)},children:ae("img",{css:Mrt,src:Ime,alt:"github"})})})}const Trt=(n={})=>({display:"flex",...n}),cb=(n={})=>({display:"flex",justifyContent:"center",alignItems:"center",...n}),$B=(n={})=>({display:"flex",alignItems:"center",...n}),xme=(n={})=>({display:"flex",justifyContent:"space-between",alignItems:"center",...n});function qB({...n}){return ae("div",{css:[cb(),{width:"100%",minWidth:1200,height:32,fontSize:Qt.fontSize.xs,color:Qt.color.text,opacity:.6},"",""],...n,children:"湘ICP备2024041043号"})}const Ert="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1702091156489'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='6551'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='32'%20height='32'%3e%3cpath%20d='M465.92%20661.333333a106.666667%20106.666667%200%201%200%200-213.333333%20106.666667%20106.666667%200%200%200%200%20213.333333z'%20fill='%23FFFFFF'%20p-id='6552'%3e%3c/path%3e%3cpath%20d='M469.333333%20554.666667m-85.333333%200a85.333333%2085.333333%200%201%200%20170.666667%200%2085.333333%2085.333333%200%201%200-170.666667%200Z'%20fill='%23424144'%20p-id='6553'%3e%3c/path%3e%3cpath%20d='M853.333333%20170.666667m-85.333333%200a85.333333%2085.333333%200%201%200%20170.666667%200%2085.333333%2085.333333%200%201%200-170.666667%200Z'%20fill='%23424144'%20p-id='6554'%3e%3c/path%3e%3cpath%20d='M775.68%20205.824L503.466667%20476.885333l44.373333%2044.458667%20272.384-272.768z'%20fill='%23424144'%20p-id='6555'%3e%3c/path%3e%3cpath%20d='M469.333333%20170.666667v277.333333a147.541333%20147.541333%200%200%200-26.112%202.218667c-5.589333%201.237333-12.8%204.010667-21.589333%208.32L279.765333%20221.056c37.418667-17.92%2066.816-29.738667%2088.064-35.413333C389.12%20180.053333%20422.954667%20175.018667%20469.333333%20170.666667z'%20fill='%236CA338'%20p-id='6556'%3e%3c/path%3e%3cpath%20d='M488.32%20170.666667v279.552c3.242667%200.597333%205.930667%201.28%208.106667%201.92a13.568%2013.568%200%200%200%207.253333%200l196.608-202.922667c-31.616-24.362667-63.146667-42.24-94.634667-53.589333-31.488-11.392-70.613333-19.712-117.333333-24.96z'%20fill='%234E5A2F'%20p-id='6557'%3e%3c/path%3e%3cpath%20d='M262.229333%20231.082667l145.194667%20233.813333-2.816%202.389333-185.984-203.050666z'%20fill='%2394D608'%20p-id='6558'%3e%3c/path%3e%3cpath%20d='M671.274667%20881.066667l-142.336-239.786667%202.730666-2.688%20188.373334%20206.378667a384.853333%20384.853333%200%200%201-22.016%2018.005333c-5.76%204.266667-14.677333%2010.24-26.752%2018.048zM359.253333%20554.666667H85.333333c3.2-67.84%2015.957333-123.306667%2038.144-166.4%2022.229333-43.093333%2048.682667-80.042667%2079.36-110.933334l184.490667%20204.074667c-11.349333%2013.482667-18.773333%2024.746667-22.272%2033.92-3.498667%209.130667-5.461333%2022.229333-5.802667%2039.338667zM572.586667%20554.666667H853.333333c-2.773333-50.688-9.258667-92.373333-19.541333-125.056-10.24-32.682667-30.208-69.077333-59.861333-109.098667l-205.781334%20203.221333c1.792%206.058667%202.944%2010.965333%203.456%2014.72%200.554667%203.754667%200.853333%209.130667%200.981334%2016.213334z'%20fill='%234E5A2F'%20p-id='6559'%3e%3c/path%3e%3cpath%20d='M547.84%20623.616l189.184%20208.853333c36.778667-44.458667%2063.317333-82.944%2079.658667-115.498666%2016.298667-32.512%2028.544-79.232%2036.650666-140.074667h-280.746666a144.170667%20144.170667%200%200%201-9.301334%2024.533333c-2.986667%205.546667-8.106667%2012.970667-15.402666%2022.186667z'%20fill='%236BA238'%20p-id='6560'%3e%3c/path%3e%3cpath%20d='M428.117333%20654.549333l-126.762666%20244.650667c-24.874667-12.629333-42.453333-22.528-52.821334-29.653333-10.325333-7.168-23.466667-18.474667-39.296-33.962667l201.6-189.269333c3.797333%202.304%206.656%203.925333%208.618667%204.864%201.962667%200.896%204.864%202.048%208.661333%203.413333z'%20fill='%234E5A2F'%20p-id='6561'%3e%3c/path%3e%3cpath%20d='M509.866667%20651.562667l144.853333%20240.298666c-47.488%2025.856-102.144%2041.429333-164.053333%2046.805334-61.866667%205.376-119.210667-4.949333-171.989334-30.933334L448%20661.333333c13.184%201.152%2023.338667%201.152%2030.549333%200%207.253333-1.152%2017.664-4.394667%2031.36-9.770666zM361.088%20577.365333c4.352%2013.482667%208.832%2024.021333%2013.482667%2031.573334%204.608%207.594667%2011.221333%2016.213333%2019.84%2025.898666L192%20820.693333c-37.546667-44.8-62.378667-80.981333-74.453333-108.544-12.074667-27.562667-22.826667-72.490667-32.213334-134.784h275.754667z'%20fill='%2394D608'%20p-id='6562'%3e%3c/path%3e%3c/svg%3e";function Wrt({onChange:n}){const{openapiWithServiceInfo:e}=pg(),{t}=va(),i=r=>{if(!(r!=null&&r.trim()))return Ql.warning(t("head.inputUrl"));n(r)};return ae(ah,{children:(e==null?void 0:e.importModeType)==="url"?ae(th.Search,{allowClear:!0,enterButton:!0,size:"small",placeholder:t("head.inputUrl"),style:{minWidth:476},defaultValue:e==null?void 0:e.serviceURL,onSearch:i}):ae("div",{css:Ji({color:Qt.color.text,opacity:.6,fontWeight:500,fontSize:Qt.fontSize.xs},"",""),children:e==null?void 0:e.serviceURL})})}function Rrt(){const{pathname:n,search:e}=fC(),t=wg(),{t:i}=va(),{updateOpenapiWithServiceInfo:r}=pg(),o=bme(e),{serviceURL:s,importModeType:a,logon:l}=o,[u,c]=I.useState(!1),d=I.useRef(!0);I.useEffect(()=>{d.current&&(a===od.url&&s&&!l?h(s):t(`${n}${ub({...o||{},logon:""})}`,{replace:!0}),d.current=!1)},[]);async function h(g,m){const f=await _L({url:g});if((f==null?void 0:f.status)>=200&&(f==null?void 0:f.status)<300){const b=await UL(f.data),C={serviceURL:g,importModeType:od.url,openapi:b,operations:JL(b.paths||{})};r(C),m&&t(`/${pC}${ub({...o,serviceURL:g})}`,{replace:!0})}}return Rt(ah,{children:[u&&ae(Sme,{onSuccess:()=>c(!1)}),ae("div",{css:[cb({justifyContent:"flex-end"}),{height:CC,backgroundColor:Qt.color.bg,padding:12},"",""],children:Rt("div",{css:[cb(),"& > * + *{margin-left:6px;}",""],children:[ae(Wrt,{onChange:g=>h(g,!0)}),ae(UP,{menu:{items:[{key:"0",label:i("head.updateConfig"),onClick(){c(!0)}},{key:"1",label:i("head.reselectService"),onClick(){t(D9)}}]},children:ae("a",{css:cb(),onClick:g=>g.preventDefault(),children:ae(wme,{})})}),ae(KB,{}),!1,ae(jB,{})]})})]})}const kI=/^(https?:\/\/)/;function Lme(n){const e="#00EEEE",t="#68228B";switch(n){case mc.get:return Qt.color.primary;case mc.post:return Qt.color.success;case mc.put:return Qt.color.warning;case mc.patch:return t;case mc.delete:return Qt.color.danger;default:return e}}const Fme=/@StatusErr\[(.+)\]\[(.+)\]\[(.+)\](!)?/;function Grt(n=[]){return Kr(n,e=>{const t=Fme.exec(e);return t!=null?{code:parseInt(t[2],10),name:t[1],msg:t[3],canBeTalkError:!!t[4]}:{}})}function Vrt(n=""){return dI(n,new RegExp(Fme,"g"),"")}const Xrt=n=>n>=400?Qt.color.danger:n>=300?Qt.color.warning:Qt.color.success;function Prt(n){if(!n)return"//serviceURL";let e="";if(kI.test(n)){const t=n.split("//");e=`${t[0]}//${t[1].split("/")[0]}`}return e}function _me(n){const e=id(n.content);let t=n.content;return e.length>1&&(e.includes("application/json")?t={"application/json":t["application/json"]}:e.includes("multipart/form-data")?t={"multipart/form-data":t["multipart/form-data"]}:e.includes("application/x-www-form-urlencoded")?t={"application/x-www-form-urlencoded":t["application/x-www-form-urlencoded"]}:t={[e[0]]:t[e[0]]}),t||{}}function Ort({method:n,children:e}){return ae("div",{css:Ji({position:"absolute",top:0,right:0,fontSize:Qt.fontSize.l,fontFamily:Qt.fontFamily.mono,color:Lme(n),opacity:.6,textTransform:"uppercase",padding:8},"",""),children:e})}function Brt({deprecated:n,children:e}){return ae("div",{css:Ji({padding:"0 8px",textDecoration:n?"line-through":"none","& > *":{width:240,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}},"",""),children:e})}var zrt={name:"bjn8wh",styles:"position:relative"};function Yrt({group:n,operationList:e,activeOperationId:t,isCollapsed:i}){const r=wg(),o=fC();return Rt("div",{css:zrt,children:[ae("div",{css:Ji({fontSize:Qt.fontSize.xs,color:Qt.color.bg,backgroundColor:Qt.color.primary,opacity:.6,padding:"0.5em 0.8em",borderBottom:`1px solid ${Qt.color.border}`,borderRadius:4},"",""),children:n}),ae("div",{children:Kr(e,(s,a)=>Rt("a",{onClick:()=>{r(`/${pC}/${s.operationId}${o.search}`)},css:[{height:46,borderBottom:`1px solid ${Qt.color.border}`,position:"relative",fontSize:Qt.fontSize.xxs,display:"flex",alignItems:"center",padding:"0.8em 0.4em",textDecoration:"none",color:Qt.color.text,borderRadius:4,":hover":{backgroundColor:Qt.color.bgGray,cursor:"pointer"}},fg(t)===fg(s.operationId)?{backgroundColor:Qt.color.bgGray}:{},"",""],children:[ae(Ort,{method:s.method,children:s.method===mc.delete?s.method.slice(0,3):s.method}),i?ae("div",{style:{height:46}}):Rt(Brt,{deprecated:s.deprecated,children:[ae("div",{css:Ji({fontSize:Qt.fontSize.xs,fontWeight:"bold",marginBottom:4},"",""),children:s.operationId||""}),Rt("div",{css:Ji({fontSize:Qt.fontSize.xxs},"",""),children:[s.summary||""," "]})]})]},a))})]})}var Hrt={name:"bjn8wh",styles:"position:relative"};function Urt(n){const{operationId:e}=Wge(),{t}=va(),{openapiWithServiceInfo:i}=pg(),r=(i==null?void 0:i.operations)||{},[o,s]=I.useState(""),[a,l]=I.useState({});return I.useEffect(()=>{if(!Xs(r)){const u=o?$p(r,d=>oh(fg(d.operationId)||"",fg(o))):XZ(r),c=Sje(u,d=>d.group);l(c)}},[r,o]),Rt("div",{css:Hrt,children:[ae("div",{css:Ji({fontSize:Qt.fontSize.xs,padding:"0.5em 0.8em"},"",""),children:ae(th,{placeholder:t("openapi.searchPlaceholder"),onChange:Gce(u=>{s(u.target.value)},500)})}),ae("div",{children:!Xs(a)&&ae(ah,{children:Kr(a,(u,c)=>mMe(Yrt,{...n,key:c,group:c,operationList:u,activeOperationId:e}))})})]})}var bC={TERM_PROGRAM:"vscode",NODE:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NVM_CD_FLAGS:"-q",INIT_CWD:"/Users/alexander/my-code/github/openapi-ui",SHELL:"/bin/zsh",TERM:"xterm-256color",TMPDIR:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/",npm_config_metrics_registry:"https://registry.npmjs.org/",npm_config_global_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",TERM_PROGRAM_VERSION:"1.88.1",GVM_ROOT:"/Users/alexander/.gvm",MallocNanoZone:"0",ORIGINAL_XDG_CURRENT_DESKTOP:"undefined",ZDOTDIR:"/Users/alexander",COLOR:"1",npm_config_noproxy:"",ZSH:"/Users/alexander/.oh-my-zsh",PNPM_HOME:"/Users/alexander/Library/pnpm",npm_config_local_prefix:"/Users/alexander/my-code/github/openapi-ui",USER:"alexander",NVM_DIR:"/Users/alexander/.nvm",LD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",COMMAND_MODE:"unix2003",npm_config_globalconfig:"/Users/alexander/.nvm/versions/node/v16.10.0/etc/npmrc",SSH_AUTH_SOCK:"/private/tmp/com.apple.launchd.jaFD8W3kId/Listeners",__CF_USER_TEXT_ENCODING:"0x1F5:0x19:0x34",npm_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/bin/npm-cli.js",PAGER:"less",LSCOLORS:"Gxfxcxdxbxegedabagacad",PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.bin:/Users/alexander/my-code/github/node_modules/.bin:/Users/alexander/my-code/node_modules/.bin:/Users/alexander/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",npm_package_json:"/Users/alexander/my-code/github/openapi-ui/package.json",__CFBundleIdentifier:"com.microsoft.VSCode",USER_ZDOTDIR:"/Users/alexander",npm_config_auto_install_peers:"true",npm_config_init_module:"/Users/alexander/.npm-init.js",npm_config_userconfig:"/Users/alexander/.npmrc",PWD:"/Users/alexander/my-code/github/openapi-ui",GVM_VERSION:"1.0.22",npm_command:"run-script",EDITOR:"vi",npm_lifecycle_event:"build:package",LANG:"zh_CN.UTF-8",npm_package_name:"openapi-ui-dist",gvm_pkgset_name:"global",NODE_PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.pnpm/node_modules",XPC_FLAGS:"0x0",VSCODE_GIT_ASKPASS_EXTRA_ARGS:"",npm_package_engines_node:"^18.0.0 || >=20.0.0",npm_config_node_gyp:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",XPC_SERVICE_NAME:"0",npm_package_version:"2.0.1",VSCODE_INJECTION:"1",HOME:"/Users/alexander",SHLVL:"2",VSCODE_GIT_ASKPASS_MAIN:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js",GOROOT:"/Users/alexander/.gvm/gos/go1.21.6",DYLD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",gvm_go_name:"go1.21.6",LOGNAME:"alexander",LESS:"-R",VSCODE_PATH_PREFIX:"/Users/alexander/.gvm/gos/go1.20/bin:",npm_config_cache:"/Users/alexander/.npm",GVM_OVERLAY_PREFIX:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay",npm_lifecycle_script:"tsc && vite build --config vite.package.config.ts --mode package",LC_CTYPE:"zh_CN.UTF-8",VSCODE_GIT_IPC_HANDLE:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/vscode-git-79a18f10f2.sock",NVM_BIN:"/Users/alexander/.nvm/versions/node/v16.10.0/bin",PKG_CONFIG_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:",GOPATH:"/Users/alexander/mygo",npm_config_user_agent:"npm/7.24.0 node/v16.10.0 darwin x64 workspaces/false",GIT_ASKPASS:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh",VSCODE_GIT_ASKPASS_NODE:"/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin)",GVM_PATH_BACKUP:"/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",COLORTERM:"truecolor",npm_config_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",npm_node_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NODE_ENV:"production"};function Jrt(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}const CC=54,Dme=({isCollapsed:n})=>(wg(),ae("a",{className:"logo",css:[{height:CC,display:"flex",alignItems:"center",marginLeft:24},{cursor:"default"},"",""],onClick:()=>{},children:ae("img",{css:[n?{width:32}:{width:128},"",""],src:n?Ert:Cme,alt:"logo"})}));var Krt=bC.NODE_ENV==="production"?{name:"102swt",styles:"min-width:880px"}:{name:"ta50cz-MainLayout",styles:"min-width:880px;label:MainLayout;",map:"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvbWFpbi9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUdvQyIsImZpbGUiOiIvVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL29wZW5hcGktdWkvc3JjL21haW4vaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGF5b3V0IH0gZnJvbSBcImFudGRcIjtcbmltcG9ydCBTaWRlciBmcm9tIFwiYW50ZC9lcy9sYXlvdXQvU2lkZXJcIjtcbmltcG9ydCB0aHJvdHRsZSBmcm9tIFwibG9kYXNoLWVzL3Rocm90dGxlXCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBPdXRsZXQsIHVzZU5hdmlnYXRlIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcbmltcG9ydCBMb2dvSWNvbiBmcm9tIFwiLi4vYXNzZXRzL2ltYWdlcy9sb2dvLnBuZ1wiO1xuaW1wb3J0IExvZ29NaW5pSWNvbiBmcm9tIFwiLi4vYXNzZXRzL2ltYWdlcy9sb2dvX21pbmkuc3ZnXCI7XG5pbXBvcnQgeyBIZWFkIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvaGVhZFwiO1xuaW1wb3J0IHsgSUNQUmVnaXN0cmF0aW9uIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvaWNwLXJlZ2lzdHJhdGlvblwiO1xuaW1wb3J0IHsgRW52IH0gZnJvbSBcIi4uL2NvbmZpZ1wiO1xuaW1wb3J0IHsgZ2V0Q29uZmlnIH0gZnJvbSBcIi4uL2NvcmUvaHR0cC9jb25maWdcIjtcbmltcG9ydCB7IGRzYyB9IGZyb20gXCIuLi9jb3JlL3N0eWxlL2RlZmF1bHRTdHlsZUNvbmZpZ1wiO1xuaW1wb3J0IHsgbG9naW5Nb2R1bGVOYW1lIH0gZnJvbSBcIi4uL2xvZ2luL3JvdXRlc1wiO1xuaW1wb3J0IHsgT3BlcmF0aW9uTGlzdCB9IGZyb20gXCIuLi9vcGVuYXBpL09wZXJhdGlvbkxpc3RcIjtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRNZW51VGl0bGVIZWlnaHQgPSA1NDtcblxuZXhwb3J0IGludGVyZmFjZSBJQ29sbGFwc2VkIHtcbiAgaXNDb2xsYXBzZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgTG9nbyA9ICh7IGlzQ29sbGFwc2VkIH06IElDb2xsYXBzZWQpID0+IHtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuXG4gIHJldHVybiAoXG4gICAgPGFcbiAgICAgIGNsYXNzTmFtZT1cImxvZ29cIlxuICAgICAgY3NzPXtbXG4gICAgICAgIHtcbiAgICAgICAgICBoZWlnaHQ6IGRlZmF1bHRNZW51VGl0bGVIZWlnaHQsXG4gICAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICAgICAgICBtYXJnaW5MZWZ0OiAyNCxcbiAgICAgICAgfSxcbiAgICAgICAgaW1wb3J0Lm1ldGEuZW52Lk1PREUgPT09IFwicGFja2FnZVwiID8geyBjdXJzb3I6IFwiZGVmYXVsdFwiIH0gOiB7fSxcbiAgICAgIF19XG4gICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgIGlmIChpbXBvcnQubWV0YS5lbnYuTU9ERSAhPT0gXCJwYWNrYWdlXCIpIHtcbiAgICAgICAgICBuYXZpZ2F0ZShsb2dpbk1vZHVsZU5hbWUpO1xuICAgICAgICB9XG4gICAgICB9fVxuICAgID5cbiAgICAgIDxpbWdcbiAgICAgICAgY3NzPXtbaXNDb2xsYXBzZWQgPyB7IHdpZHRoOiAzMiB9IDogeyB3aWR0aDogMTI4IH1dfVxuICAgICAgICBzcmM9e2lzQ29sbGFwc2VkID8gTG9nb01pbmlJY29uIDogTG9nb0ljb259XG4gICAgICAgIGFsdD1cImxvZ29cIlxuICAgICAgLz5cbiAgICA8L2E+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNYWluTGF5b3V0KCkge1xuICBjb25zdCBbY29sbGFwc2VkLCBzZXRDb2xsYXBzZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbbWVudUhlaWdodCwgc2V0TWVudUhlaWdodF0gPSB1c2VTdGF0ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KTtcbiAgY29uc3QgZGVmYXVsdENvbnRlbnRIZWlnaHQgPSBtZW51SGVpZ2h0IC0gZGVmYXVsdE1lbnVUaXRsZUhlaWdodDtcbiAgY29uc3QgZGVmYXVsdE1lbnVIZWlnaHQgPSBkZWZhdWx0Q29udGVudEhlaWdodCAtIDQ4OyAvLyA0OHB45Li65bGV5byA5pS257yp5Zu+5qCH6auY5bqmXG4gIGNvbnN0IGlzWmggPSBnZXRDb25maWcoKS5lbnYgPT09IEVudi56aDtcblxuICBjb25zdCB0aHJvdHRsZWRSZXNpemVIYW5kbGVyID0gdGhyb3R0bGUoXG4gICAgKCkgPT4ge1xuICAgICAgc2V0TWVudUhlaWdodChnbG9iYWxUaGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpO1xuICAgIH0sXG4gICAgMTIwMCxcbiAgICB7IGxlYWRpbmc6IHRydWUsIHRyYWlsaW5nOiB0cnVlIH0sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBnbG9iYWxUaGlzLmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhyb3R0bGVkUmVzaXplSGFuZGxlcik7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZ2xvYmFsVGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHRocm90dGxlZFJlc2l6ZUhhbmRsZXIpO1xuICAgIH07XG4gIH0sIFt0aHJvdHRsZWRSZXNpemVIYW5kbGVyXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8TGF5b3V0PlxuICAgICAgPFNpZGVyIHRoZW1lPXtcImxpZ2h0XCJ9IHdpZHRoPXszMjB9IGNvbGxhcHNpYmxlIGNvbGxhcHNlZD17Y29sbGFwc2VkfSBvbkNvbGxhcHNlPXtzZXRDb2xsYXBzZWR9PlxuICAgICAgICA8TG9nbyBpc0NvbGxhcHNlZD17Y29sbGFwc2VkfSAvPlxuICAgICAgICA8ZGl2IGNzcz17eyBoZWlnaHQ6IGRlZmF1bHRNZW51SGVpZ2h0LCBvdmVyZmxvdzogXCJhdXRvXCIgfX0+XG4gICAgICAgICAgPE9wZXJhdGlvbkxpc3QgaXNDb2xsYXBzZWQ9e2NvbGxhcHNlZH0gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1NpZGVyPlxuICAgICAgPExheW91dCBjbGFzc05hbWU9XCJzaXRlLWxheW91dFwiIGNzcz17eyBiYWNrZ3JvdW5kQ29sb3I6IGRzYy5jb2xvci5iZyB9fT5cbiAgICAgICAgPEhlYWQgLz5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBoZWlnaHQ6IGRlZmF1bHRDb250ZW50SGVpZ2h0LFxuICAgICAgICAgICAgICBvdmVyZmxvdzogXCJhdXRvXCIsXG4gICAgICAgICAgICAgIHBhZGRpbmc6IDEyLFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGRzYy5jb2xvci5iZ0dyYXksXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogXCIxMHB4IDAgMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlzWmggPyB7IHBhZGRpbmdCb3R0b206IDAgfSA6IHt9LFxuICAgICAgICAgIF19XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNzcz17aXNaaCA/IHsgbWluSGVpZ2h0OiBkZWZhdWx0Q29udGVudEhlaWdodCAtIDMyIC0gMTIgfSA6IHt9fT5cbiAgICAgICAgICAgIDxPdXRsZXQgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB7aXNaaCAmJiA8SUNQUmVnaXN0cmF0aW9uIGNzcz17eyBtaW5XaWR0aDogODgwIH19IC8+fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvTGF5b3V0PlxuICAgIDwvTGF5b3V0PlxuICApO1xufVxuIl19 */",toString:Jrt};function jrt(){const[n,e]=I.useState(!1),[t,i]=I.useState(document.documentElement.clientHeight),r=t-CC,o=r-48,s=bZ().env===hL.zh,a=Hce(()=>{i(globalThis.document.documentElement.clientHeight)},1200,{leading:!0,trailing:!0});return I.useEffect(()=>(globalThis.addEventListener("resize",a),()=>{globalThis.removeEventListener("resize",a)}),[a]),Rt(Ele,{children:[Rt(dP,{theme:"light",width:320,collapsible:!0,collapsed:n,onCollapse:e,children:[ae(Dme,{isCollapsed:n}),ae("div",{css:Ji({height:o,overflow:"auto"},bC.NODE_ENV==="production"?"":";label:MainLayout;",bC.NODE_ENV==="production"?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvbWFpbi9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEVhIiwiZmlsZSI6Ii9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvbWFpbi9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXlvdXQgfSBmcm9tIFwiYW50ZFwiO1xuaW1wb3J0IFNpZGVyIGZyb20gXCJhbnRkL2VzL2xheW91dC9TaWRlclwiO1xuaW1wb3J0IHRocm90dGxlIGZyb20gXCJsb2Rhc2gtZXMvdGhyb3R0bGVcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IE91dGxldCwgdXNlTmF2aWdhdGUgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xuaW1wb3J0IExvZ29JY29uIGZyb20gXCIuLi9hc3NldHMvaW1hZ2VzL2xvZ28ucG5nXCI7XG5pbXBvcnQgTG9nb01pbmlJY29uIGZyb20gXCIuLi9hc3NldHMvaW1hZ2VzL2xvZ29fbWluaS5zdmdcIjtcbmltcG9ydCB7IEhlYWQgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkXCI7XG5pbXBvcnQgeyBJQ1BSZWdpc3RyYXRpb24gfSBmcm9tIFwiLi4vY29tcG9uZW50cy9pY3AtcmVnaXN0cmF0aW9uXCI7XG5pbXBvcnQgeyBFbnYgfSBmcm9tIFwiLi4vY29uZmlnXCI7XG5pbXBvcnQgeyBnZXRDb25maWcgfSBmcm9tIFwiLi4vY29yZS9odHRwL2NvbmZpZ1wiO1xuaW1wb3J0IHsgZHNjIH0gZnJvbSBcIi4uL2NvcmUvc3R5bGUvZGVmYXVsdFN0eWxlQ29uZmlnXCI7XG5pbXBvcnQgeyBsb2dpbk1vZHVsZU5hbWUgfSBmcm9tIFwiLi4vbG9naW4vcm91dGVzXCI7XG5pbXBvcnQgeyBPcGVyYXRpb25MaXN0IH0gZnJvbSBcIi4uL29wZW5hcGkvT3BlcmF0aW9uTGlzdFwiO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdE1lbnVUaXRsZUhlaWdodCA9IDU0O1xuXG5leHBvcnQgaW50ZXJmYWNlIElDb2xsYXBzZWQge1xuICBpc0NvbGxhcHNlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBMb2dvID0gKHsgaXNDb2xsYXBzZWQgfTogSUNvbGxhcHNlZCkgPT4ge1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG5cbiAgcmV0dXJuIChcbiAgICA8YVxuICAgICAgY2xhc3NOYW1lPVwibG9nb1wiXG4gICAgICBjc3M9e1tcbiAgICAgICAge1xuICAgICAgICAgIGhlaWdodDogZGVmYXVsdE1lbnVUaXRsZUhlaWdodCxcbiAgICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgIG1hcmdpbkxlZnQ6IDI0LFxuICAgICAgICB9LFxuICAgICAgICBpbXBvcnQubWV0YS5lbnYuTU9ERSA9PT0gXCJwYWNrYWdlXCIgPyB7IGN1cnNvcjogXCJkZWZhdWx0XCIgfSA6IHt9LFxuICAgICAgXX1cbiAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgaWYgKGltcG9ydC5tZXRhLmVudi5NT0RFICE9PSBcInBhY2thZ2VcIikge1xuICAgICAgICAgIG5hdmlnYXRlKGxvZ2luTW9kdWxlTmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH19XG4gICAgPlxuICAgICAgPGltZ1xuICAgICAgICBjc3M9e1tpc0NvbGxhcHNlZCA/IHsgd2lkdGg6IDMyIH0gOiB7IHdpZHRoOiAxMjggfV19XG4gICAgICAgIHNyYz17aXNDb2xsYXBzZWQgPyBMb2dvTWluaUljb24gOiBMb2dvSWNvbn1cbiAgICAgICAgYWx0PVwibG9nb1wiXG4gICAgICAvPlxuICAgIDwvYT5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1haW5MYXlvdXQoKSB7XG4gIGNvbnN0IFtjb2xsYXBzZWQsIHNldENvbGxhcHNlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFttZW51SGVpZ2h0LCBzZXRNZW51SGVpZ2h0XSA9IHVzZVN0YXRlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpO1xuICBjb25zdCBkZWZhdWx0Q29udGVudEhlaWdodCA9IG1lbnVIZWlnaHQgLSBkZWZhdWx0TWVudVRpdGxlSGVpZ2h0O1xuICBjb25zdCBkZWZhdWx0TWVudUhlaWdodCA9IGRlZmF1bHRDb250ZW50SGVpZ2h0IC0gNDg7IC8vIDQ4cHjkuLrlsZXlvIDmlLbnvKnlm77moIfpq5jluqZcbiAgY29uc3QgaXNaaCA9IGdldENvbmZpZygpLmVudiA9PT0gRW52LnpoO1xuXG4gIGNvbnN0IHRocm90dGxlZFJlc2l6ZUhhbmRsZXIgPSB0aHJvdHRsZShcbiAgICAoKSA9PiB7XG4gICAgICBzZXRNZW51SGVpZ2h0KGdsb2JhbFRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCk7XG4gICAgfSxcbiAgICAxMjAwLFxuICAgIHsgbGVhZGluZzogdHJ1ZSwgdHJhaWxpbmc6IHRydWUgfSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGdsb2JhbFRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB0aHJvdHRsZWRSZXNpemVIYW5kbGVyKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBnbG9iYWxUaGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhyb3R0bGVkUmVzaXplSGFuZGxlcik7XG4gICAgfTtcbiAgfSwgW3Rocm90dGxlZFJlc2l6ZUhhbmRsZXJdKTtcblxuICByZXR1cm4gKFxuICAgIDxMYXlvdXQ+XG4gICAgICA8U2lkZXIgdGhlbWU9e1wibGlnaHRcIn0gd2lkdGg9ezMyMH0gY29sbGFwc2libGUgY29sbGFwc2VkPXtjb2xsYXBzZWR9IG9uQ29sbGFwc2U9e3NldENvbGxhcHNlZH0+XG4gICAgICAgIDxMb2dvIGlzQ29sbGFwc2VkPXtjb2xsYXBzZWR9IC8+XG4gICAgICAgIDxkaXYgY3NzPXt7IGhlaWdodDogZGVmYXVsdE1lbnVIZWlnaHQsIG92ZXJmbG93OiBcImF1dG9cIiB9fT5cbiAgICAgICAgICA8T3BlcmF0aW9uTGlzdCBpc0NvbGxhcHNlZD17Y29sbGFwc2VkfSAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvU2lkZXI+XG4gICAgICA8TGF5b3V0IGNsYXNzTmFtZT1cInNpdGUtbGF5b3V0XCIgY3NzPXt7IGJhY2tncm91bmRDb2xvcjogZHNjLmNvbG9yLmJnIH19PlxuICAgICAgICA8SGVhZCAvPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGhlaWdodDogZGVmYXVsdENvbnRlbnRIZWlnaHQsXG4gICAgICAgICAgICAgIG92ZXJmbG93OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgcGFkZGluZzogMTIsXG4gICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZHNjLmNvbG9yLmJnR3JheSxcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjEwcHggMCAwXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNaaCA/IHsgcGFkZGluZ0JvdHRvbTogMCB9IDoge30sXG4gICAgICAgICAgXX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY3NzPXtpc1poID8geyBtaW5IZWlnaHQ6IGRlZmF1bHRDb250ZW50SGVpZ2h0IC0gMzIgLSAxMiB9IDoge319PlxuICAgICAgICAgICAgPE91dGxldCAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIHtpc1poICYmIDxJQ1BSZWdpc3RyYXRpb24gY3NzPXt7IG1pbldpZHRoOiA4ODAgfX0gLz59XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9MYXlvdXQ+XG4gICAgPC9MYXlvdXQ+XG4gICk7XG59XG4iXX0= */"),children:ae(Urt,{isCollapsed:n})})]}),Rt(Ele,{className:"site-layout",css:Ji({backgroundColor:Qt.color.bg},bC.NODE_ENV==="production"?"":";label:MainLayout;",bC.NODE_ENV==="production"?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvbWFpbi9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0ZzQyIsImZpbGUiOiIvVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL29wZW5hcGktdWkvc3JjL21haW4vaW5kZXgudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGF5b3V0IH0gZnJvbSBcImFudGRcIjtcbmltcG9ydCBTaWRlciBmcm9tIFwiYW50ZC9lcy9sYXlvdXQvU2lkZXJcIjtcbmltcG9ydCB0aHJvdHRsZSBmcm9tIFwibG9kYXNoLWVzL3Rocm90dGxlXCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBPdXRsZXQsIHVzZU5hdmlnYXRlIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcbmltcG9ydCBMb2dvSWNvbiBmcm9tIFwiLi4vYXNzZXRzL2ltYWdlcy9sb2dvLnBuZ1wiO1xuaW1wb3J0IExvZ29NaW5pSWNvbiBmcm9tIFwiLi4vYXNzZXRzL2ltYWdlcy9sb2dvX21pbmkuc3ZnXCI7XG5pbXBvcnQgeyBIZWFkIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvaGVhZFwiO1xuaW1wb3J0IHsgSUNQUmVnaXN0cmF0aW9uIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvaWNwLXJlZ2lzdHJhdGlvblwiO1xuaW1wb3J0IHsgRW52IH0gZnJvbSBcIi4uL2NvbmZpZ1wiO1xuaW1wb3J0IHsgZ2V0Q29uZmlnIH0gZnJvbSBcIi4uL2NvcmUvaHR0cC9jb25maWdcIjtcbmltcG9ydCB7IGRzYyB9IGZyb20gXCIuLi9jb3JlL3N0eWxlL2RlZmF1bHRTdHlsZUNvbmZpZ1wiO1xuaW1wb3J0IHsgbG9naW5Nb2R1bGVOYW1lIH0gZnJvbSBcIi4uL2xvZ2luL3JvdXRlc1wiO1xuaW1wb3J0IHsgT3BlcmF0aW9uTGlzdCB9IGZyb20gXCIuLi9vcGVuYXBpL09wZXJhdGlvbkxpc3RcIjtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRNZW51VGl0bGVIZWlnaHQgPSA1NDtcblxuZXhwb3J0IGludGVyZmFjZSBJQ29sbGFwc2VkIHtcbiAgaXNDb2xsYXBzZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgTG9nbyA9ICh7IGlzQ29sbGFwc2VkIH06IElDb2xsYXBzZWQpID0+IHtcbiAgY29uc3QgbmF2aWdhdGUgPSB1c2VOYXZpZ2F0ZSgpO1xuXG4gIHJldHVybiAoXG4gICAgPGFcbiAgICAgIGNsYXNzTmFtZT1cImxvZ29cIlxuICAgICAgY3NzPXtbXG4gICAgICAgIHtcbiAgICAgICAgICBoZWlnaHQ6IGRlZmF1bHRNZW51VGl0bGVIZWlnaHQsXG4gICAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICAgICAgICBtYXJnaW5MZWZ0OiAyNCxcbiAgICAgICAgfSxcbiAgICAgICAgaW1wb3J0Lm1ldGEuZW52Lk1PREUgPT09IFwicGFja2FnZVwiID8geyBjdXJzb3I6IFwiZGVmYXVsdFwiIH0gOiB7fSxcbiAgICAgIF19XG4gICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgIGlmIChpbXBvcnQubWV0YS5lbnYuTU9ERSAhPT0gXCJwYWNrYWdlXCIpIHtcbiAgICAgICAgICBuYXZpZ2F0ZShsb2dpbk1vZHVsZU5hbWUpO1xuICAgICAgICB9XG4gICAgICB9fVxuICAgID5cbiAgICAgIDxpbWdcbiAgICAgICAgY3NzPXtbaXNDb2xsYXBzZWQgPyB7IHdpZHRoOiAzMiB9IDogeyB3aWR0aDogMTI4IH1dfVxuICAgICAgICBzcmM9e2lzQ29sbGFwc2VkID8gTG9nb01pbmlJY29uIDogTG9nb0ljb259XG4gICAgICAgIGFsdD1cImxvZ29cIlxuICAgICAgLz5cbiAgICA8L2E+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBNYWluTGF5b3V0KCkge1xuICBjb25zdCBbY29sbGFwc2VkLCBzZXRDb2xsYXBzZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbbWVudUhlaWdodCwgc2V0TWVudUhlaWdodF0gPSB1c2VTdGF0ZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KTtcbiAgY29uc3QgZGVmYXVsdENvbnRlbnRIZWlnaHQgPSBtZW51SGVpZ2h0IC0gZGVmYXVsdE1lbnVUaXRsZUhlaWdodDtcbiAgY29uc3QgZGVmYXVsdE1lbnVIZWlnaHQgPSBkZWZhdWx0Q29udGVudEhlaWdodCAtIDQ4OyAvLyA0OHB45Li65bGV5byA5pS257yp5Zu+5qCH6auY5bqmXG4gIGNvbnN0IGlzWmggPSBnZXRDb25maWcoKS5lbnYgPT09IEVudi56aDtcblxuICBjb25zdCB0aHJvdHRsZWRSZXNpemVIYW5kbGVyID0gdGhyb3R0bGUoXG4gICAgKCkgPT4ge1xuICAgICAgc2V0TWVudUhlaWdodChnbG9iYWxUaGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpO1xuICAgIH0sXG4gICAgMTIwMCxcbiAgICB7IGxlYWRpbmc6IHRydWUsIHRyYWlsaW5nOiB0cnVlIH0sXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBnbG9iYWxUaGlzLmFkZEV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhyb3R0bGVkUmVzaXplSGFuZGxlcik7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZ2xvYmFsVGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKFwicmVzaXplXCIsIHRocm90dGxlZFJlc2l6ZUhhbmRsZXIpO1xuICAgIH07XG4gIH0sIFt0aHJvdHRsZWRSZXNpemVIYW5kbGVyXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8TGF5b3V0PlxuICAgICAgPFNpZGVyIHRoZW1lPXtcImxpZ2h0XCJ9IHdpZHRoPXszMjB9IGNvbGxhcHNpYmxlIGNvbGxhcHNlZD17Y29sbGFwc2VkfSBvbkNvbGxhcHNlPXtzZXRDb2xsYXBzZWR9PlxuICAgICAgICA8TG9nbyBpc0NvbGxhcHNlZD17Y29sbGFwc2VkfSAvPlxuICAgICAgICA8ZGl2IGNzcz17eyBoZWlnaHQ6IGRlZmF1bHRNZW51SGVpZ2h0LCBvdmVyZmxvdzogXCJhdXRvXCIgfX0+XG4gICAgICAgICAgPE9wZXJhdGlvbkxpc3QgaXNDb2xsYXBzZWQ9e2NvbGxhcHNlZH0gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1NpZGVyPlxuICAgICAgPExheW91dCBjbGFzc05hbWU9XCJzaXRlLWxheW91dFwiIGNzcz17eyBiYWNrZ3JvdW5kQ29sb3I6IGRzYy5jb2xvci5iZyB9fT5cbiAgICAgICAgPEhlYWQgLz5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBoZWlnaHQ6IGRlZmF1bHRDb250ZW50SGVpZ2h0LFxuICAgICAgICAgICAgICBvdmVyZmxvdzogXCJhdXRvXCIsXG4gICAgICAgICAgICAgIHBhZGRpbmc6IDEyLFxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGRzYy5jb2xvci5iZ0dyYXksXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogXCIxMHB4IDAgMFwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGlzWmggPyB7IHBhZGRpbmdCb3R0b206IDAgfSA6IHt9LFxuICAgICAgICAgIF19XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNzcz17aXNaaCA/IHsgbWluSGVpZ2h0OiBkZWZhdWx0Q29udGVudEhlaWdodCAtIDMyIC0gMTIgfSA6IHt9fT5cbiAgICAgICAgICAgIDxPdXRsZXQgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB7aXNaaCAmJiA8SUNQUmVnaXN0cmF0aW9uIGNzcz17eyBtaW5XaWR0aDogODgwIH19IC8+fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvTGF5b3V0PlxuICAgIDwvTGF5b3V0PlxuICApO1xufVxuIl19 */"),children:[ae(Rrt,{}),Rt("div",{css:[{height:r,overflow:"auto",padding:12,backgroundColor:Qt.color.bgGray,borderRadius:"10px 0 0"},s?{paddingBottom:0}:{},bC.NODE_ENV==="production"?"":";label:MainLayout;",bC.NODE_ENV==="production"?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvbWFpbi9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUZVIiwiZmlsZSI6Ii9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvbWFpbi9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYXlvdXQgfSBmcm9tIFwiYW50ZFwiO1xuaW1wb3J0IFNpZGVyIGZyb20gXCJhbnRkL2VzL2xheW91dC9TaWRlclwiO1xuaW1wb3J0IHRocm90dGxlIGZyb20gXCJsb2Rhc2gtZXMvdGhyb3R0bGVcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IE91dGxldCwgdXNlTmF2aWdhdGUgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xuaW1wb3J0IExvZ29JY29uIGZyb20gXCIuLi9hc3NldHMvaW1hZ2VzL2xvZ28ucG5nXCI7XG5pbXBvcnQgTG9nb01pbmlJY29uIGZyb20gXCIuLi9hc3NldHMvaW1hZ2VzL2xvZ29fbWluaS5zdmdcIjtcbmltcG9ydCB7IEhlYWQgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkXCI7XG5pbXBvcnQgeyBJQ1BSZWdpc3RyYXRpb24gfSBmcm9tIFwiLi4vY29tcG9uZW50cy9pY3AtcmVnaXN0cmF0aW9uXCI7XG5pbXBvcnQgeyBFbnYgfSBmcm9tIFwiLi4vY29uZmlnXCI7XG5pbXBvcnQgeyBnZXRDb25maWcgfSBmcm9tIFwiLi4vY29yZS9odHRwL2NvbmZpZ1wiO1xuaW1wb3J0IHsgZHNjIH0gZnJvbSBcIi4uL2NvcmUvc3R5bGUvZGVmYXVsdFN0eWxlQ29uZmlnXCI7XG5pbXBvcnQgeyBsb2dpbk1vZHVsZU5hbWUgfSBmcm9tIFwiLi4vbG9naW4vcm91dGVzXCI7XG5pbXBvcnQgeyBPcGVyYXRpb25MaXN0IH0gZnJvbSBcIi4uL29wZW5hcGkvT3BlcmF0aW9uTGlzdFwiO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdE1lbnVUaXRsZUhlaWdodCA9IDU0O1xuXG5leHBvcnQgaW50ZXJmYWNlIElDb2xsYXBzZWQge1xuICBpc0NvbGxhcHNlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBMb2dvID0gKHsgaXNDb2xsYXBzZWQgfTogSUNvbGxhcHNlZCkgPT4ge1xuICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG5cbiAgcmV0dXJuIChcbiAgICA8YVxuICAgICAgY2xhc3NOYW1lPVwibG9nb1wiXG4gICAgICBjc3M9e1tcbiAgICAgICAge1xuICAgICAgICAgIGhlaWdodDogZGVmYXVsdE1lbnVUaXRsZUhlaWdodCxcbiAgICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgIG1hcmdpbkxlZnQ6IDI0LFxuICAgICAgICB9LFxuICAgICAgICBpbXBvcnQubWV0YS5lbnYuTU9ERSA9PT0gXCJwYWNrYWdlXCIgPyB7IGN1cnNvcjogXCJkZWZhdWx0XCIgfSA6IHt9LFxuICAgICAgXX1cbiAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgaWYgKGltcG9ydC5tZXRhLmVudi5NT0RFICE9PSBcInBhY2thZ2VcIikge1xuICAgICAgICAgIG5hdmlnYXRlKGxvZ2luTW9kdWxlTmFtZSk7XG4gICAgICAgIH1cbiAgICAgIH19XG4gICAgPlxuICAgICAgPGltZ1xuICAgICAgICBjc3M9e1tpc0NvbGxhcHNlZCA/IHsgd2lkdGg6IDMyIH0gOiB7IHdpZHRoOiAxMjggfV19XG4gICAgICAgIHNyYz17aXNDb2xsYXBzZWQgPyBMb2dvTWluaUljb24gOiBMb2dvSWNvbn1cbiAgICAgICAgYWx0PVwibG9nb1wiXG4gICAgICAvPlxuICAgIDwvYT5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE1haW5MYXlvdXQoKSB7XG4gIGNvbnN0IFtjb2xsYXBzZWQsIHNldENvbGxhcHNlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFttZW51SGVpZ2h0LCBzZXRNZW51SGVpZ2h0XSA9IHVzZVN0YXRlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpO1xuICBjb25zdCBkZWZhdWx0Q29udGVudEhlaWdodCA9IG1lbnVIZWlnaHQgLSBkZWZhdWx0TWVudVRpdGxlSGVpZ2h0O1xuICBjb25zdCBkZWZhdWx0TWVudUhlaWdodCA9IGRlZmF1bHRDb250ZW50SGVpZ2h0IC0gNDg7IC8vIDQ4cHjkuLrlsZXlvIDmlLbnvKnlm77moIfpq5jluqZcbiAgY29uc3QgaXNaaCA9IGdldENvbmZpZygpLmVudiA9PT0gRW52LnpoO1xuXG4gIGNvbnN0IHRocm90dGxlZFJlc2l6ZUhhbmRsZXIgPSB0aHJvdHRsZShcbiAgICAoKSA9PiB7XG4gICAgICBzZXRNZW51SGVpZ2h0KGdsb2JhbFRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCk7XG4gICAgfSxcbiAgICAxMjAwLFxuICAgIHsgbGVhZGluZzogdHJ1ZSwgdHJhaWxpbmc6IHRydWUgfSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGdsb2JhbFRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB0aHJvdHRsZWRSZXNpemVIYW5kbGVyKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBnbG9iYWxUaGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhyb3R0bGVkUmVzaXplSGFuZGxlcik7XG4gICAgfTtcbiAgfSwgW3Rocm90dGxlZFJlc2l6ZUhhbmRsZXJdKTtcblxuICByZXR1cm4gKFxuICAgIDxMYXlvdXQ+XG4gICAgICA8U2lkZXIgdGhlbWU9e1wibGlnaHRcIn0gd2lkdGg9ezMyMH0gY29sbGFwc2libGUgY29sbGFwc2VkPXtjb2xsYXBzZWR9IG9uQ29sbGFwc2U9e3NldENvbGxhcHNlZH0+XG4gICAgICAgIDxMb2dvIGlzQ29sbGFwc2VkPXtjb2xsYXBzZWR9IC8+XG4gICAgICAgIDxkaXYgY3NzPXt7IGhlaWdodDogZGVmYXVsdE1lbnVIZWlnaHQsIG92ZXJmbG93OiBcImF1dG9cIiB9fT5cbiAgICAgICAgICA8T3BlcmF0aW9uTGlzdCBpc0NvbGxhcHNlZD17Y29sbGFwc2VkfSAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvU2lkZXI+XG4gICAgICA8TGF5b3V0IGNsYXNzTmFtZT1cInNpdGUtbGF5b3V0XCIgY3NzPXt7IGJhY2tncm91bmRDb2xvcjogZHNjLmNvbG9yLmJnIH19PlxuICAgICAgICA8SGVhZCAvPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGhlaWdodDogZGVmYXVsdENvbnRlbnRIZWlnaHQsXG4gICAgICAgICAgICAgIG92ZXJmbG93OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgcGFkZGluZzogMTIsXG4gICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZHNjLmNvbG9yLmJnR3JheSxcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjEwcHggMCAwXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaXNaaCA/IHsgcGFkZGluZ0JvdHRvbTogMCB9IDoge30sXG4gICAgICAgICAgXX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY3NzPXtpc1poID8geyBtaW5IZWlnaHQ6IGRlZmF1bHRDb250ZW50SGVpZ2h0IC0gMzIgLSAxMiB9IDoge319PlxuICAgICAgICAgICAgPE91dGxldCAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIHtpc1poICYmIDxJQ1BSZWdpc3RyYXRpb24gY3NzPXt7IG1pbldpZHRoOiA4ODAgfX0gLz59XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9MYXlvdXQ+XG4gICAgPC9MYXlvdXQ+XG4gICk7XG59XG4iXX0= */"],children:[ae("div",{css:s?{minHeight:r-32-12}:{},children:ae(Xge,{})}),s&&ae(qB,{css:Krt})]})]})]})}const Qrt=Object.freeze(Object.defineProperty({__proto__:null,Logo:Dme,default:jrt,defaultMenuTitleHeight:CC},Symbol.toStringTag,{value:"Module"})),ez="data:image/svg+xml,%3csvg%20t='1706144764009'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='20100'%20width='16'%20height='16'%3e%3cpath%20d='M896%20629.333333c-17.066667%200-32%2014.933333-32%2032v170.666667c0%206.4-4.266667%2010.666667-10.666667%2010.666667H170.666667c-6.4%200-10.666667-4.266667-10.666667-10.666667v-170.666667c0-17.066667-14.933333-32-32-32s-32%2014.933333-32%2032v170.666667c0%2040.533333%2034.133333%2074.666667%2074.666667%2074.666667h682.666666c40.533333%200%2074.666667-34.133333%2074.666667-74.666667v-170.666667c0-17.066667-14.933333-32-32-32z'%20fill='%23000000'%20p-id='20101'%3e%3c/path%3e%3cpath%20d='M322.133333%20407.466667l157.866667-157.866667V704c0%2017.066667%2014.933333%2032%2032%2032s32-14.933333%2032-32V247.466667l157.866667%20157.866666c6.4%206.4%2014.933333%208.533333%2023.466666%208.533334s17.066667-2.133333%2023.466667-8.533334c12.8-12.8%2012.8-32%200-44.8l-213.333333-213.333333c-12.8-12.8-32-12.8-44.8%200l-213.333334%20213.333333c-12.8%2012.8-12.8%2032%200%2044.8%2010.666667%2012.8%2032%2012.8%2044.8%202.133334z'%20fill='%23000000'%20p-id='20102'%3e%3c/path%3e%3c/svg%3e",Ame=Ti.Item;function $rt(){const{updateOpenapiWithServiceInfo:n}=pg(),[e]=Ti.useForm(),t=wg(),{t:i}=va();async function r(o){var l;let s=o.serviceURL;if(!(s!=null&&s.trim())||!((l=o.file[0])!=null&&l.originFileObj))return Ql.warning(i("login.requiredFieldPlaceholder"));kI.test(s)||(s=`http://${s}`);const a=await Ett(o.file[0].originFileObj);try{const u=await UL(a);if(!Bo(u)||Xs(u.paths))return Ql.warning(i("login.parseTextWarn"));const c={serviceURL:s,importModeType:od.file},d={...c,openapi:u,operations:JL(u.paths)};n(d),t(`/${pC}${ub(c)}`)}catch{Ql.warning(i("login.parseWarn"))}}return Rt(Ti,{name:"fileImportForm",form:e,layout:"vertical",initialValues:{serviceURL:"",file:[]},onFinish:r,children:[ae(Ame,{name:"serviceURL",label:i("login.serviceURLLabel2"),rules:[{required:!0,message:i("login.serviceURLPlaceholder2")}],children:ae(th,{placeholder:i("login.serviceURLPlaceholder2")})}),ae(Ame,{name:"file",label:i("login.uploadLabel"),valuePropName:"fileList",rules:[{required:!0,message:i("login.uploadPlaceholder")}],getValueFromEvent:o=>o.fileList||[],children:ae(sO,{maxCount:1,beforeUpload:()=>!1,accept:".json,.yml",children:Rt(so,{css:[$B(),"&:hover img{filter:invert(30%) sepia(85%) saturate(2525%) hue-rotate(208deg) brightness(104%) contrast(101%);}",""],children:[ae("img",{src:ez,style:{marginRight:6},alt:"upload"}),i("login.uploadBtn")]})})}),ae(Ti.Item,{children:ae(so,{type:"primary",htmlType:"submit",style:{width:"100%"},children:i("login.importBtn")})})]})}const Nme=Ti.Item;function qrt(){const{updateOpenapiWithServiceInfo:n}=pg(),[e]=Ti.useForm(),t=wg(),{t:i}=va();async function r(o){let s=o.serviceURL;const a=o.openapiTextContent;if(!(s!=null&&s.trim())||!a)return Ql.warning(i("login.requiredFieldPlaceholder"));kI.test(s)||(s=`http://${s}`);try{const l=await UL(a);if(!Bo(l)||Xs(l.paths))return Ql.warning(i("login.parseTextWarn"));const u={serviceURL:s,importModeType:od.text},c={...u,openapi:l,operations:JL(l.paths)};n(c),t(`/${pC}${ub(u)}`)}catch{Ql.warning(i("login.parseTextWarn"))}}return Rt(Ti,{name:"textImportForm",form:e,layout:"vertical",initialValues:{serviceURL:"",file:[]},onFinish:r,children:[ae(Nme,{name:"serviceURL",label:i("login.serviceURLLabel2"),rules:[{required:!0,message:i("login.serviceURLPlaceholder2")}],children:ae(th,{placeholder:i("login.serviceURLPlaceholder2")})}),ae(Nme,{name:"openapiTextContent",label:i("login.openapiTextContentLabel"),rules:[{required:!0,message:i("login.openapiTextContentPlaceholder")}],children:ae(th.TextArea,{placeholder:i("login.openapiTextContentPlaceholder"),autoSize:{minRows:12,maxRows:36}})}),ae(Ti.Item,{children:ae(so,{type:"primary",htmlType:"submit",style:{width:"100%"},children:i("login.importBtn")})})]})}const eot=Ti.Item;function tot(){const{updateOpenapiWithServiceInfo:n}=pg(),[e]=Ti.useForm(),t=wg(),{t:i}=va(),[r,o]=I.useState(!1);async function s(a){o(!0);let l=a.serviceURL;if(!l.trim())return Ql.warning(i("login.requiredFieldPlaceholder"));kI.test(l)||(l=`http://${l}`);const u=await _L({url:l});if((u==null?void 0:u.status)>=200&&(u==null?void 0:u.status)<300)try{const c=await UL(u.data);if(!Bo(c)||Xs(c.paths))return Ql.warning(i("login.parseTextWarn"));const d={serviceURL:l,importModeType:od.url},h={...d,openapi:c,operations:JL(c.paths||{})};n(h),t(`/${pC}${ub(Object.assign(d,{logon:"yes"}))}`)}catch{Ql.warning(i("login.parseTextWarn"))}o(!1)}return Rt(Ti,{name:"urlImportForm",form:e,layout:"vertical",initialValues:{serviceURL:""},onFinish:s,children:[ae(eot,{name:"serviceURL",label:i("login.serviceURLLabel"),rules:[{required:!0,message:i("login.serviceURLPlaceholder")}],children:ae(th,{placeholder:i("login.serviceURLPlaceholder")})}),ae(Ti.Item,{children:ae(so,{type:"primary",htmlType:"submit",style:{width:"100%"},loading:r,children:i("login.importBtn")})})]})}var ld={TERM_PROGRAM:"vscode",NODE:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NVM_CD_FLAGS:"-q",INIT_CWD:"/Users/alexander/my-code/github/openapi-ui",SHELL:"/bin/zsh",TERM:"xterm-256color",TMPDIR:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/",npm_config_metrics_registry:"https://registry.npmjs.org/",npm_config_global_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",TERM_PROGRAM_VERSION:"1.88.1",GVM_ROOT:"/Users/alexander/.gvm",MallocNanoZone:"0",ORIGINAL_XDG_CURRENT_DESKTOP:"undefined",ZDOTDIR:"/Users/alexander",COLOR:"1",npm_config_noproxy:"",ZSH:"/Users/alexander/.oh-my-zsh",PNPM_HOME:"/Users/alexander/Library/pnpm",npm_config_local_prefix:"/Users/alexander/my-code/github/openapi-ui",USER:"alexander",NVM_DIR:"/Users/alexander/.nvm",LD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",COMMAND_MODE:"unix2003",npm_config_globalconfig:"/Users/alexander/.nvm/versions/node/v16.10.0/etc/npmrc",SSH_AUTH_SOCK:"/private/tmp/com.apple.launchd.jaFD8W3kId/Listeners",__CF_USER_TEXT_ENCODING:"0x1F5:0x19:0x34",npm_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/bin/npm-cli.js",PAGER:"less",LSCOLORS:"Gxfxcxdxbxegedabagacad",PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.bin:/Users/alexander/my-code/github/node_modules/.bin:/Users/alexander/my-code/node_modules/.bin:/Users/alexander/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",npm_package_json:"/Users/alexander/my-code/github/openapi-ui/package.json",__CFBundleIdentifier:"com.microsoft.VSCode",USER_ZDOTDIR:"/Users/alexander",npm_config_auto_install_peers:"true",npm_config_init_module:"/Users/alexander/.npm-init.js",npm_config_userconfig:"/Users/alexander/.npmrc",PWD:"/Users/alexander/my-code/github/openapi-ui",GVM_VERSION:"1.0.22",npm_command:"run-script",EDITOR:"vi",npm_lifecycle_event:"build:package",LANG:"zh_CN.UTF-8",npm_package_name:"openapi-ui-dist",gvm_pkgset_name:"global",NODE_PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.pnpm/node_modules",XPC_FLAGS:"0x0",VSCODE_GIT_ASKPASS_EXTRA_ARGS:"",npm_package_engines_node:"^18.0.0 || >=20.0.0",npm_config_node_gyp:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",XPC_SERVICE_NAME:"0",npm_package_version:"2.0.1",VSCODE_INJECTION:"1",HOME:"/Users/alexander",SHLVL:"2",VSCODE_GIT_ASKPASS_MAIN:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js",GOROOT:"/Users/alexander/.gvm/gos/go1.21.6",DYLD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",gvm_go_name:"go1.21.6",LOGNAME:"alexander",LESS:"-R",VSCODE_PATH_PREFIX:"/Users/alexander/.gvm/gos/go1.20/bin:",npm_config_cache:"/Users/alexander/.npm",GVM_OVERLAY_PREFIX:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay",npm_lifecycle_script:"tsc && vite build --config vite.package.config.ts --mode package",LC_CTYPE:"zh_CN.UTF-8",VSCODE_GIT_IPC_HANDLE:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/vscode-git-79a18f10f2.sock",NVM_BIN:"/Users/alexander/.nvm/versions/node/v16.10.0/bin",PKG_CONFIG_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:",GOPATH:"/Users/alexander/mygo",npm_config_user_agent:"npm/7.24.0 node/v16.10.0 darwin x64 workspaces/false",GIT_ASKPASS:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh",VSCODE_GIT_ASKPASS_NODE:"/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin)",GVM_PATH_BACKUP:"/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",COLORTERM:"truecolor",npm_config_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",npm_node_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NODE_ENV:"production"};function A9(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}var not=ld.NODE_ENV==="production"?{name:"gu2s0e",styles:"width:128px"}:{name:"stsdm9-Login",styles:"width:128px;label:Login;",map:"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvbG9naW4vaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNDZSIsImZpbGUiOiIvVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL29wZW5hcGktdWkvc3JjL2xvZ2luL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCB7IFBhcnNlZFVybFF1ZXJ5LCB1c2VSb3V0ZXJRdWVyeSB9IGZyb20gXCJyZWFjdC1yb3V0ZXItdG9vbGtpdFwiO1xuaW1wb3J0IExvZ29JY29uIGZyb20gXCIuLi9hc3NldHMvaW1hZ2VzL2xvZ28ucG5nXCI7XG5pbXBvcnQgeyBDaGFuZ2VMYW5nQ29tcCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2NoYW5nZS1sYW5nXCI7XG5pbXBvcnQgR2l0aHViU3RhciBmcm9tIFwiLi4vY29tcG9uZW50cy9naXRodWItc3RhclwiO1xuaW1wb3J0IHsgR29Ub1Bvc3RtYW4gfSBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkL2NvbW1vblwiO1xuaW1wb3J0IHsgSUNQUmVnaXN0cmF0aW9uIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvaWNwLXJlZ2lzdHJhdGlvblwiO1xuaW1wb3J0IHsgRW52IH0gZnJvbSBcIi4uL2NvbmZpZ1wiO1xuaW1wb3J0IHsgZ2V0Q29uZmlnIH0gZnJvbSBcIi4uL2NvcmUvaHR0cC9jb25maWdcIjtcbmltcG9ydCB7IGRzYyB9IGZyb20gXCIuLi9jb3JlL3N0eWxlL2RlZmF1bHRTdHlsZUNvbmZpZ1wiO1xuaW1wb3J0IHsgZmxleEJldHdlZW5DZW50ZXJPcHRzLCBmbGV4Q2VudGVyT3B0cywgZmxleE9wdHMgfSBmcm9tIFwiLi4vY29yZS9zdHlsZS91dGlsc1wiO1xuaW1wb3J0IHsgZGVmYXVsdE1lbnVUaXRsZUhlaWdodCB9IGZyb20gXCIuLi9tYWluXCI7XG5pbXBvcnQgeyBGaWxlSW1wb3J0VmlldyB9IGZyb20gXCIuL0ltcG9ydEJ5RmlsZVZpZXdcIjtcbmltcG9ydCB7IFRleHRJbXBvcnRWaWV3IH0gZnJvbSBcIi4vSW1wb3J0QnlUZXh0Vmlld1wiO1xuaW1wb3J0IHsgVVJMSW1wb3J0VmlldyB9IGZyb20gXCIuL0ltcG9ydEJ5VVJMVmlld1wiO1xuaW1wb3J0IHsgSUltcG9ydE1vZGVUeXBlLCBJbXBvcnRNb2RlVHlwZSwgZGlzcGxheUltcG9ydE1vZGVUeXBlLCBkaXNwbGF5SW1wb3J0TW9kZVR5cGVJY29uIH0gZnJvbSBcIi4vY29uZmlnXCI7XG5cbmludGVyZmFjZSBJTG9naW5RdWVyeSBleHRlbmRzIFBhcnNlZFVybFF1ZXJ5IHtcbiAgYWN0aXZlSW1wb3J0TW9kZVR5cGU6IElJbXBvcnRNb2RlVHlwZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTG9naW4oKSB7XG4gIGNvbnN0IFt7IGFjdGl2ZUltcG9ydE1vZGVUeXBlID0gSW1wb3J0TW9kZVR5cGUudXJsIH0sIHNldFF1ZXJ5XSA9IHVzZVJvdXRlclF1ZXJ5PElMb2dpblF1ZXJ5PigpO1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IGlzWmggPSBnZXRDb25maWcoKS5lbnYgPT09IEVudi56aDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17e1xuICAgICAgICBoZWlnaHQ6IGdsb2JhbFRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxcbiAgICAgICAgYmFja2dyb3VuZEltYWdlOiBcInVybChodHRwczovL2d3LmFsaXBheW9iamVjdHMuY29tL3pvcy9ybXNwb3J0YWwvVFZZVGJBWFdoZVFwUmNXRGFETXUuc3ZnKVwiLFxuICAgICAgICBiYWNrZ3JvdW5kU2l6ZTogXCIxMDAlIDEwMCVcIixcbiAgICAgICAgYmFja2dyb3VuZFJlcGVhdDogXCJuby1yZXBlYXRcIixcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdiBjc3M9e3sgbWluSGVpZ2h0OiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gMzIgfX0+XG4gICAgICAgIDxkaXYgY3NzPXtbZmxleEJldHdlZW5DZW50ZXJPcHRzKCksIHsgbWluV2lkdGg6IDEyMDAsIGhlaWdodDogZGVmYXVsdE1lbnVUaXRsZUhlaWdodCwgcGFkZGluZzogXCIwcHggMzBweFwiIH1dfT5cbiAgICAgICAgICA8aW1nIGNzcz17eyB3aWR0aDogMTI4IH19IHNyYz17TG9nb0ljb259IGFsdD1cIm9wZW5hcGktdWlcIiAvPlxuICAgICAgICAgIDxkaXYgY3NzPXt7IFwiJiA+ICogKyAqXCI6IHsgbWFyZ2luTGVmdDogNiB9IH19PlxuICAgICAgICAgICAgPENoYW5nZUxhbmdDb21wIC8+XG4gICAgICAgICAgICA8R29Ub1Bvc3RtYW4gLz5cbiAgICAgICAgICAgIDxHaXRodWJTdGFyIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNzcz17eyB3aWR0aDogMTIwMCwgbWFyZ2luOiBcIjBweCBhdXRvXCIsIHBhZGRpbmdUb3A6IDEyOCB9fT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e1tcbiAgICAgICAgICAgICAgZmxleENlbnRlck9wdHMoKSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZvbnRTaXplOiBkc2MuZm9udFNpemUucyxcbiAgICAgICAgICAgICAgICBtYXJnaW5Cb3R0b206IDM2LFxuICAgICAgICAgICAgICAgIFwiJiA+ICogKyAqXCI6IHtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IDYsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge21hcChJbXBvcnRNb2RlVHlwZSwgKGl0ZW0pID0+IChcbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBrZXk9e2l0ZW19XG4gICAgICAgICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICAgICAgICBmbGV4T3B0cyh7IGFsaWduSXRlbXM6IFwiY2VudGVyXCIgfSksXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNTAsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzIsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke2RzYy5jb2xvci5ib3JkZXJ9YCxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA2LFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBcIjBweCA2cHhcIixcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBcInBvaW50ZXJcIixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBhY3RpdmVJbXBvcnRNb2RlVHlwZSA9PT0gaXRlbVxuICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZHNjLmNvbG9yLnByaW1hcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZHNjLmNvbG9yLmJnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiJiBpbWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IFwiaW52ZXJ0KDEpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB7fSxcbiAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHNldFF1ZXJ5KCgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUltcG9ydE1vZGVUeXBlOiBpdGVtLFxuICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7ZGlzcGxheUltcG9ydE1vZGVUeXBlSWNvbihpdGVtKX1cbiAgICAgICAgICAgICAgICA8c3BhbiBjc3M9e3sgbWFyZ2luTGVmdDogMTAgfX0+e3QoZGlzcGxheUltcG9ydE1vZGVUeXBlKGl0ZW0pKX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY3NzPXtmbGV4Q2VudGVyT3B0cygpfT5cbiAgICAgICAgICAgIDxkaXYgY3NzPXt7IHdpZHRoOiA2MDAgfX0+XG4gICAgICAgICAgICAgIHthY3RpdmVJbXBvcnRNb2RlVHlwZSA9PT0gSW1wb3J0TW9kZVR5cGUudXJsICYmIDxVUkxJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgICB7YWN0aXZlSW1wb3J0TW9kZVR5cGUgPT09IEltcG9ydE1vZGVUeXBlLmZpbGUgJiYgPEZpbGVJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgICB7YWN0aXZlSW1wb3J0TW9kZVR5cGUgPT09IEltcG9ydE1vZGVUeXBlLnRleHQgJiYgPFRleHRJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7aXNaaCAmJiA8SUNQUmVnaXN0cmF0aW9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufVxuIl19 */",toString:A9},iot=ld.NODE_ENV==="production"?{name:"o8c9xh",styles:"& > * + *{margin-left:6px;}"}:{name:"dr8lgr-Login",styles:"& > * + *{margin-left:6px;};label:Login;",map:"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvbG9naW4vaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVDZSIsImZpbGUiOiIvVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL29wZW5hcGktdWkvc3JjL2xvZ2luL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCB7IFBhcnNlZFVybFF1ZXJ5LCB1c2VSb3V0ZXJRdWVyeSB9IGZyb20gXCJyZWFjdC1yb3V0ZXItdG9vbGtpdFwiO1xuaW1wb3J0IExvZ29JY29uIGZyb20gXCIuLi9hc3NldHMvaW1hZ2VzL2xvZ28ucG5nXCI7XG5pbXBvcnQgeyBDaGFuZ2VMYW5nQ29tcCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2NoYW5nZS1sYW5nXCI7XG5pbXBvcnQgR2l0aHViU3RhciBmcm9tIFwiLi4vY29tcG9uZW50cy9naXRodWItc3RhclwiO1xuaW1wb3J0IHsgR29Ub1Bvc3RtYW4gfSBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkL2NvbW1vblwiO1xuaW1wb3J0IHsgSUNQUmVnaXN0cmF0aW9uIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvaWNwLXJlZ2lzdHJhdGlvblwiO1xuaW1wb3J0IHsgRW52IH0gZnJvbSBcIi4uL2NvbmZpZ1wiO1xuaW1wb3J0IHsgZ2V0Q29uZmlnIH0gZnJvbSBcIi4uL2NvcmUvaHR0cC9jb25maWdcIjtcbmltcG9ydCB7IGRzYyB9IGZyb20gXCIuLi9jb3JlL3N0eWxlL2RlZmF1bHRTdHlsZUNvbmZpZ1wiO1xuaW1wb3J0IHsgZmxleEJldHdlZW5DZW50ZXJPcHRzLCBmbGV4Q2VudGVyT3B0cywgZmxleE9wdHMgfSBmcm9tIFwiLi4vY29yZS9zdHlsZS91dGlsc1wiO1xuaW1wb3J0IHsgZGVmYXVsdE1lbnVUaXRsZUhlaWdodCB9IGZyb20gXCIuLi9tYWluXCI7XG5pbXBvcnQgeyBGaWxlSW1wb3J0VmlldyB9IGZyb20gXCIuL0ltcG9ydEJ5RmlsZVZpZXdcIjtcbmltcG9ydCB7IFRleHRJbXBvcnRWaWV3IH0gZnJvbSBcIi4vSW1wb3J0QnlUZXh0Vmlld1wiO1xuaW1wb3J0IHsgVVJMSW1wb3J0VmlldyB9IGZyb20gXCIuL0ltcG9ydEJ5VVJMVmlld1wiO1xuaW1wb3J0IHsgSUltcG9ydE1vZGVUeXBlLCBJbXBvcnRNb2RlVHlwZSwgZGlzcGxheUltcG9ydE1vZGVUeXBlLCBkaXNwbGF5SW1wb3J0TW9kZVR5cGVJY29uIH0gZnJvbSBcIi4vY29uZmlnXCI7XG5cbmludGVyZmFjZSBJTG9naW5RdWVyeSBleHRlbmRzIFBhcnNlZFVybFF1ZXJ5IHtcbiAgYWN0aXZlSW1wb3J0TW9kZVR5cGU6IElJbXBvcnRNb2RlVHlwZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTG9naW4oKSB7XG4gIGNvbnN0IFt7IGFjdGl2ZUltcG9ydE1vZGVUeXBlID0gSW1wb3J0TW9kZVR5cGUudXJsIH0sIHNldFF1ZXJ5XSA9IHVzZVJvdXRlclF1ZXJ5PElMb2dpblF1ZXJ5PigpO1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IGlzWmggPSBnZXRDb25maWcoKS5lbnYgPT09IEVudi56aDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17e1xuICAgICAgICBoZWlnaHQ6IGdsb2JhbFRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxcbiAgICAgICAgYmFja2dyb3VuZEltYWdlOiBcInVybChodHRwczovL2d3LmFsaXBheW9iamVjdHMuY29tL3pvcy9ybXNwb3J0YWwvVFZZVGJBWFdoZVFwUmNXRGFETXUuc3ZnKVwiLFxuICAgICAgICBiYWNrZ3JvdW5kU2l6ZTogXCIxMDAlIDEwMCVcIixcbiAgICAgICAgYmFja2dyb3VuZFJlcGVhdDogXCJuby1yZXBlYXRcIixcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdiBjc3M9e3sgbWluSGVpZ2h0OiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gMzIgfX0+XG4gICAgICAgIDxkaXYgY3NzPXtbZmxleEJldHdlZW5DZW50ZXJPcHRzKCksIHsgbWluV2lkdGg6IDEyMDAsIGhlaWdodDogZGVmYXVsdE1lbnVUaXRsZUhlaWdodCwgcGFkZGluZzogXCIwcHggMzBweFwiIH1dfT5cbiAgICAgICAgICA8aW1nIGNzcz17eyB3aWR0aDogMTI4IH19IHNyYz17TG9nb0ljb259IGFsdD1cIm9wZW5hcGktdWlcIiAvPlxuICAgICAgICAgIDxkaXYgY3NzPXt7IFwiJiA+ICogKyAqXCI6IHsgbWFyZ2luTGVmdDogNiB9IH19PlxuICAgICAgICAgICAgPENoYW5nZUxhbmdDb21wIC8+XG4gICAgICAgICAgICA8R29Ub1Bvc3RtYW4gLz5cbiAgICAgICAgICAgIDxHaXRodWJTdGFyIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNzcz17eyB3aWR0aDogMTIwMCwgbWFyZ2luOiBcIjBweCBhdXRvXCIsIHBhZGRpbmdUb3A6IDEyOCB9fT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e1tcbiAgICAgICAgICAgICAgZmxleENlbnRlck9wdHMoKSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZvbnRTaXplOiBkc2MuZm9udFNpemUucyxcbiAgICAgICAgICAgICAgICBtYXJnaW5Cb3R0b206IDM2LFxuICAgICAgICAgICAgICAgIFwiJiA+ICogKyAqXCI6IHtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IDYsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge21hcChJbXBvcnRNb2RlVHlwZSwgKGl0ZW0pID0+IChcbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBrZXk9e2l0ZW19XG4gICAgICAgICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICAgICAgICBmbGV4T3B0cyh7IGFsaWduSXRlbXM6IFwiY2VudGVyXCIgfSksXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNTAsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzIsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke2RzYy5jb2xvci5ib3JkZXJ9YCxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA2LFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBcIjBweCA2cHhcIixcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBcInBvaW50ZXJcIixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBhY3RpdmVJbXBvcnRNb2RlVHlwZSA9PT0gaXRlbVxuICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZHNjLmNvbG9yLnByaW1hcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZHNjLmNvbG9yLmJnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiJiBpbWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IFwiaW52ZXJ0KDEpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB7fSxcbiAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHNldFF1ZXJ5KCgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUltcG9ydE1vZGVUeXBlOiBpdGVtLFxuICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7ZGlzcGxheUltcG9ydE1vZGVUeXBlSWNvbihpdGVtKX1cbiAgICAgICAgICAgICAgICA8c3BhbiBjc3M9e3sgbWFyZ2luTGVmdDogMTAgfX0+e3QoZGlzcGxheUltcG9ydE1vZGVUeXBlKGl0ZW0pKX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY3NzPXtmbGV4Q2VudGVyT3B0cygpfT5cbiAgICAgICAgICAgIDxkaXYgY3NzPXt7IHdpZHRoOiA2MDAgfX0+XG4gICAgICAgICAgICAgIHthY3RpdmVJbXBvcnRNb2RlVHlwZSA9PT0gSW1wb3J0TW9kZVR5cGUudXJsICYmIDxVUkxJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgICB7YWN0aXZlSW1wb3J0TW9kZVR5cGUgPT09IEltcG9ydE1vZGVUeXBlLmZpbGUgJiYgPEZpbGVJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgICB7YWN0aXZlSW1wb3J0TW9kZVR5cGUgPT09IEltcG9ydE1vZGVUeXBlLnRleHQgJiYgPFRleHRJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7aXNaaCAmJiA8SUNQUmVnaXN0cmF0aW9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufVxuIl19 */",toString:A9},rot=ld.NODE_ENV==="production"?{name:"brn44",styles:"width:1200px;margin:0px auto;padding-top:128px"}:{name:"r8uud0-Login",styles:"width:1200px;margin:0px auto;padding-top:128px;label:Login;",map:"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvbG9naW4vaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZDYSIsImZpbGUiOiIvVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL29wZW5hcGktdWkvc3JjL2xvZ2luL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCB7IFBhcnNlZFVybFF1ZXJ5LCB1c2VSb3V0ZXJRdWVyeSB9IGZyb20gXCJyZWFjdC1yb3V0ZXItdG9vbGtpdFwiO1xuaW1wb3J0IExvZ29JY29uIGZyb20gXCIuLi9hc3NldHMvaW1hZ2VzL2xvZ28ucG5nXCI7XG5pbXBvcnQgeyBDaGFuZ2VMYW5nQ29tcCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2NoYW5nZS1sYW5nXCI7XG5pbXBvcnQgR2l0aHViU3RhciBmcm9tIFwiLi4vY29tcG9uZW50cy9naXRodWItc3RhclwiO1xuaW1wb3J0IHsgR29Ub1Bvc3RtYW4gfSBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkL2NvbW1vblwiO1xuaW1wb3J0IHsgSUNQUmVnaXN0cmF0aW9uIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvaWNwLXJlZ2lzdHJhdGlvblwiO1xuaW1wb3J0IHsgRW52IH0gZnJvbSBcIi4uL2NvbmZpZ1wiO1xuaW1wb3J0IHsgZ2V0Q29uZmlnIH0gZnJvbSBcIi4uL2NvcmUvaHR0cC9jb25maWdcIjtcbmltcG9ydCB7IGRzYyB9IGZyb20gXCIuLi9jb3JlL3N0eWxlL2RlZmF1bHRTdHlsZUNvbmZpZ1wiO1xuaW1wb3J0IHsgZmxleEJldHdlZW5DZW50ZXJPcHRzLCBmbGV4Q2VudGVyT3B0cywgZmxleE9wdHMgfSBmcm9tIFwiLi4vY29yZS9zdHlsZS91dGlsc1wiO1xuaW1wb3J0IHsgZGVmYXVsdE1lbnVUaXRsZUhlaWdodCB9IGZyb20gXCIuLi9tYWluXCI7XG5pbXBvcnQgeyBGaWxlSW1wb3J0VmlldyB9IGZyb20gXCIuL0ltcG9ydEJ5RmlsZVZpZXdcIjtcbmltcG9ydCB7IFRleHRJbXBvcnRWaWV3IH0gZnJvbSBcIi4vSW1wb3J0QnlUZXh0Vmlld1wiO1xuaW1wb3J0IHsgVVJMSW1wb3J0VmlldyB9IGZyb20gXCIuL0ltcG9ydEJ5VVJMVmlld1wiO1xuaW1wb3J0IHsgSUltcG9ydE1vZGVUeXBlLCBJbXBvcnRNb2RlVHlwZSwgZGlzcGxheUltcG9ydE1vZGVUeXBlLCBkaXNwbGF5SW1wb3J0TW9kZVR5cGVJY29uIH0gZnJvbSBcIi4vY29uZmlnXCI7XG5cbmludGVyZmFjZSBJTG9naW5RdWVyeSBleHRlbmRzIFBhcnNlZFVybFF1ZXJ5IHtcbiAgYWN0aXZlSW1wb3J0TW9kZVR5cGU6IElJbXBvcnRNb2RlVHlwZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTG9naW4oKSB7XG4gIGNvbnN0IFt7IGFjdGl2ZUltcG9ydE1vZGVUeXBlID0gSW1wb3J0TW9kZVR5cGUudXJsIH0sIHNldFF1ZXJ5XSA9IHVzZVJvdXRlclF1ZXJ5PElMb2dpblF1ZXJ5PigpO1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IGlzWmggPSBnZXRDb25maWcoKS5lbnYgPT09IEVudi56aDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17e1xuICAgICAgICBoZWlnaHQ6IGdsb2JhbFRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxcbiAgICAgICAgYmFja2dyb3VuZEltYWdlOiBcInVybChodHRwczovL2d3LmFsaXBheW9iamVjdHMuY29tL3pvcy9ybXNwb3J0YWwvVFZZVGJBWFdoZVFwUmNXRGFETXUuc3ZnKVwiLFxuICAgICAgICBiYWNrZ3JvdW5kU2l6ZTogXCIxMDAlIDEwMCVcIixcbiAgICAgICAgYmFja2dyb3VuZFJlcGVhdDogXCJuby1yZXBlYXRcIixcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdiBjc3M9e3sgbWluSGVpZ2h0OiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gMzIgfX0+XG4gICAgICAgIDxkaXYgY3NzPXtbZmxleEJldHdlZW5DZW50ZXJPcHRzKCksIHsgbWluV2lkdGg6IDEyMDAsIGhlaWdodDogZGVmYXVsdE1lbnVUaXRsZUhlaWdodCwgcGFkZGluZzogXCIwcHggMzBweFwiIH1dfT5cbiAgICAgICAgICA8aW1nIGNzcz17eyB3aWR0aDogMTI4IH19IHNyYz17TG9nb0ljb259IGFsdD1cIm9wZW5hcGktdWlcIiAvPlxuICAgICAgICAgIDxkaXYgY3NzPXt7IFwiJiA+ICogKyAqXCI6IHsgbWFyZ2luTGVmdDogNiB9IH19PlxuICAgICAgICAgICAgPENoYW5nZUxhbmdDb21wIC8+XG4gICAgICAgICAgICA8R29Ub1Bvc3RtYW4gLz5cbiAgICAgICAgICAgIDxHaXRodWJTdGFyIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNzcz17eyB3aWR0aDogMTIwMCwgbWFyZ2luOiBcIjBweCBhdXRvXCIsIHBhZGRpbmdUb3A6IDEyOCB9fT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e1tcbiAgICAgICAgICAgICAgZmxleENlbnRlck9wdHMoKSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZvbnRTaXplOiBkc2MuZm9udFNpemUucyxcbiAgICAgICAgICAgICAgICBtYXJnaW5Cb3R0b206IDM2LFxuICAgICAgICAgICAgICAgIFwiJiA+ICogKyAqXCI6IHtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IDYsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge21hcChJbXBvcnRNb2RlVHlwZSwgKGl0ZW0pID0+IChcbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBrZXk9e2l0ZW19XG4gICAgICAgICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICAgICAgICBmbGV4T3B0cyh7IGFsaWduSXRlbXM6IFwiY2VudGVyXCIgfSksXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNTAsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzIsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke2RzYy5jb2xvci5ib3JkZXJ9YCxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA2LFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBcIjBweCA2cHhcIixcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBcInBvaW50ZXJcIixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBhY3RpdmVJbXBvcnRNb2RlVHlwZSA9PT0gaXRlbVxuICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZHNjLmNvbG9yLnByaW1hcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZHNjLmNvbG9yLmJnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiJiBpbWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IFwiaW52ZXJ0KDEpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB7fSxcbiAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHNldFF1ZXJ5KCgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUltcG9ydE1vZGVUeXBlOiBpdGVtLFxuICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7ZGlzcGxheUltcG9ydE1vZGVUeXBlSWNvbihpdGVtKX1cbiAgICAgICAgICAgICAgICA8c3BhbiBjc3M9e3sgbWFyZ2luTGVmdDogMTAgfX0+e3QoZGlzcGxheUltcG9ydE1vZGVUeXBlKGl0ZW0pKX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY3NzPXtmbGV4Q2VudGVyT3B0cygpfT5cbiAgICAgICAgICAgIDxkaXYgY3NzPXt7IHdpZHRoOiA2MDAgfX0+XG4gICAgICAgICAgICAgIHthY3RpdmVJbXBvcnRNb2RlVHlwZSA9PT0gSW1wb3J0TW9kZVR5cGUudXJsICYmIDxVUkxJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgICB7YWN0aXZlSW1wb3J0TW9kZVR5cGUgPT09IEltcG9ydE1vZGVUeXBlLmZpbGUgJiYgPEZpbGVJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgICB7YWN0aXZlSW1wb3J0TW9kZVR5cGUgPT09IEltcG9ydE1vZGVUeXBlLnRleHQgJiYgPFRleHRJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7aXNaaCAmJiA8SUNQUmVnaXN0cmF0aW9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufVxuIl19 */",toString:A9},oot={name:"1a2afmv",styles:"margin-left:10px"},sot=ld.NODE_ENV==="production"?{name:"yrf9ut",styles:"width:600px"}:{name:"fdoy91-Login",styles:"width:600px;label:Login;",map:"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvbG9naW4vaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThGaUIiLCJmaWxlIjoiL1VzZXJzL2FsZXhhbmRlci9teS1jb2RlL2dpdGh1Yi9vcGVuYXBpLXVpL3NyYy9sb2dpbi9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXAgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgeyBQYXJzZWRVcmxRdWVyeSwgdXNlUm91dGVyUXVlcnkgfSBmcm9tIFwicmVhY3Qtcm91dGVyLXRvb2xraXRcIjtcbmltcG9ydCBMb2dvSWNvbiBmcm9tIFwiLi4vYXNzZXRzL2ltYWdlcy9sb2dvLnBuZ1wiO1xuaW1wb3J0IHsgQ2hhbmdlTGFuZ0NvbXAgfSBmcm9tIFwiLi4vY29tcG9uZW50cy9jaGFuZ2UtbGFuZ1wiO1xuaW1wb3J0IEdpdGh1YlN0YXIgZnJvbSBcIi4uL2NvbXBvbmVudHMvZ2l0aHViLXN0YXJcIjtcbmltcG9ydCB7IEdvVG9Qb3N0bWFuIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvaGVhZC9jb21tb25cIjtcbmltcG9ydCB7IElDUFJlZ2lzdHJhdGlvbiB9IGZyb20gXCIuLi9jb21wb25lbnRzL2ljcC1yZWdpc3RyYXRpb25cIjtcbmltcG9ydCB7IEVudiB9IGZyb20gXCIuLi9jb25maWdcIjtcbmltcG9ydCB7IGdldENvbmZpZyB9IGZyb20gXCIuLi9jb3JlL2h0dHAvY29uZmlnXCI7XG5pbXBvcnQgeyBkc2MgfSBmcm9tIFwiLi4vY29yZS9zdHlsZS9kZWZhdWx0U3R5bGVDb25maWdcIjtcbmltcG9ydCB7IGZsZXhCZXR3ZWVuQ2VudGVyT3B0cywgZmxleENlbnRlck9wdHMsIGZsZXhPcHRzIH0gZnJvbSBcIi4uL2NvcmUvc3R5bGUvdXRpbHNcIjtcbmltcG9ydCB7IGRlZmF1bHRNZW51VGl0bGVIZWlnaHQgfSBmcm9tIFwiLi4vbWFpblwiO1xuaW1wb3J0IHsgRmlsZUltcG9ydFZpZXcgfSBmcm9tIFwiLi9JbXBvcnRCeUZpbGVWaWV3XCI7XG5pbXBvcnQgeyBUZXh0SW1wb3J0VmlldyB9IGZyb20gXCIuL0ltcG9ydEJ5VGV4dFZpZXdcIjtcbmltcG9ydCB7IFVSTEltcG9ydFZpZXcgfSBmcm9tIFwiLi9JbXBvcnRCeVVSTFZpZXdcIjtcbmltcG9ydCB7IElJbXBvcnRNb2RlVHlwZSwgSW1wb3J0TW9kZVR5cGUsIGRpc3BsYXlJbXBvcnRNb2RlVHlwZSwgZGlzcGxheUltcG9ydE1vZGVUeXBlSWNvbiB9IGZyb20gXCIuL2NvbmZpZ1wiO1xuXG5pbnRlcmZhY2UgSUxvZ2luUXVlcnkgZXh0ZW5kcyBQYXJzZWRVcmxRdWVyeSB7XG4gIGFjdGl2ZUltcG9ydE1vZGVUeXBlOiBJSW1wb3J0TW9kZVR5cGU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIExvZ2luKCkge1xuICBjb25zdCBbeyBhY3RpdmVJbXBvcnRNb2RlVHlwZSA9IEltcG9ydE1vZGVUeXBlLnVybCB9LCBzZXRRdWVyeV0gPSB1c2VSb3V0ZXJRdWVyeTxJTG9naW5RdWVyeT4oKTtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBjb25zdCBpc1poID0gZ2V0Q29uZmlnKCkuZW52ID09PSBFbnYuemg7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjc3M9e3tcbiAgICAgICAgaGVpZ2h0OiBnbG9iYWxUaGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsXG4gICAgICAgIGJhY2tncm91bmRJbWFnZTogXCJ1cmwoaHR0cHM6Ly9ndy5hbGlwYXlvYmplY3RzLmNvbS96b3Mvcm1zcG9ydGFsL1RWWVRiQVhXaGVRcFJjV0RhRE11LnN2ZylcIixcbiAgICAgICAgYmFja2dyb3VuZFNpemU6IFwiMTAwJSAxMDAlXCIsXG4gICAgICAgIGJhY2tncm91bmRSZXBlYXQ6IFwibm8tcmVwZWF0XCIsXG4gICAgICB9fVxuICAgID5cbiAgICAgIDxkaXYgY3NzPXt7IG1pbkhlaWdodDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCAtIDMyIH19PlxuICAgICAgICA8ZGl2IGNzcz17W2ZsZXhCZXR3ZWVuQ2VudGVyT3B0cygpLCB7IG1pbldpZHRoOiAxMjAwLCBoZWlnaHQ6IGRlZmF1bHRNZW51VGl0bGVIZWlnaHQsIHBhZGRpbmc6IFwiMHB4IDMwcHhcIiB9XX0+XG4gICAgICAgICAgPGltZyBjc3M9e3sgd2lkdGg6IDEyOCB9fSBzcmM9e0xvZ29JY29ufSBhbHQ9XCJvcGVuYXBpLXVpXCIgLz5cbiAgICAgICAgICA8ZGl2IGNzcz17eyBcIiYgPiAqICsgKlwiOiB7IG1hcmdpbkxlZnQ6IDYgfSB9fT5cbiAgICAgICAgICAgIDxDaGFuZ2VMYW5nQ29tcCAvPlxuICAgICAgICAgICAgPEdvVG9Qb3N0bWFuIC8+XG4gICAgICAgICAgICA8R2l0aHViU3RhciAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjc3M9e3sgd2lkdGg6IDEyMDAsIG1hcmdpbjogXCIwcHggYXV0b1wiLCBwYWRkaW5nVG9wOiAxMjggfX0+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICAgIGZsZXhDZW50ZXJPcHRzKCksXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmb250U2l6ZTogZHNjLmZvbnRTaXplLnMsXG4gICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiAzNixcbiAgICAgICAgICAgICAgICBcIiYgPiAqICsgKlwiOiB7XG4gICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiA2LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHttYXAoSW1wb3J0TW9kZVR5cGUsIChpdGVtKSA9PiAoXG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAga2V5PXtpdGVtfVxuICAgICAgICAgICAgICAgIGNzcz17W1xuICAgICAgICAgICAgICAgICAgZmxleE9wdHMoeyBhbGlnbkl0ZW1zOiBcImNlbnRlclwiIH0pLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTUwLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDMyLFxuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IGAxcHggc29saWQgJHtkc2MuY29sb3IuYm9yZGVyfWAsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogNixcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogXCIwcHggNnB4XCIsXG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogXCJwb2ludGVyXCIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgYWN0aXZlSW1wb3J0TW9kZVR5cGUgPT09IGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGRzYy5jb2xvci5wcmltYXJ5LFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGRzYy5jb2xvci5iZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBcIiYgaW1nXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiBcImludmVydCgxKVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDoge30sXG4gICAgICAgICAgICAgICAgXX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzZXRRdWVyeSgoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBhY3RpdmVJbXBvcnRNb2RlVHlwZTogaXRlbSxcbiAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2Rpc3BsYXlJbXBvcnRNb2RlVHlwZUljb24oaXRlbSl9XG4gICAgICAgICAgICAgICAgPHNwYW4gY3NzPXt7IG1hcmdpbkxlZnQ6IDEwIH19Pnt0KGRpc3BsYXlJbXBvcnRNb2RlVHlwZShpdGVtKSl9PC9zcGFuPlxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNzcz17ZmxleENlbnRlck9wdHMoKX0+XG4gICAgICAgICAgICA8ZGl2IGNzcz17eyB3aWR0aDogNjAwIH19PlxuICAgICAgICAgICAgICB7YWN0aXZlSW1wb3J0TW9kZVR5cGUgPT09IEltcG9ydE1vZGVUeXBlLnVybCAmJiA8VVJMSW1wb3J0VmlldyAvPn1cbiAgICAgICAgICAgICAge2FjdGl2ZUltcG9ydE1vZGVUeXBlID09PSBJbXBvcnRNb2RlVHlwZS5maWxlICYmIDxGaWxlSW1wb3J0VmlldyAvPn1cbiAgICAgICAgICAgICAge2FjdGl2ZUltcG9ydE1vZGVUeXBlID09PSBJbXBvcnRNb2RlVHlwZS50ZXh0ICYmIDxUZXh0SW1wb3J0VmlldyAvPn1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAge2lzWmggJiYgPElDUFJlZ2lzdHJhdGlvbiAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ== */",toString:A9};function aot(){const[{activeImportModeType:n=od.url},e]=Srt(),{t}=va(),i=bZ().env===hL.zh;return Rt("div",{css:Ji({height:globalThis.document.documentElement.clientHeight,backgroundImage:"url(https://gw.alipayobjects.com/zos/rmsportal/TVYTbAXWheQpRcWDaDMu.svg)",backgroundSize:"100% 100%",backgroundRepeat:"no-repeat"},ld.NODE_ENV==="production"?"":";label:Login;",ld.NODE_ENV==="production"?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvbG9naW4vaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZCTSIsImZpbGUiOiIvVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL29wZW5hcGktdWkvc3JjL2xvZ2luL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCB7IFBhcnNlZFVybFF1ZXJ5LCB1c2VSb3V0ZXJRdWVyeSB9IGZyb20gXCJyZWFjdC1yb3V0ZXItdG9vbGtpdFwiO1xuaW1wb3J0IExvZ29JY29uIGZyb20gXCIuLi9hc3NldHMvaW1hZ2VzL2xvZ28ucG5nXCI7XG5pbXBvcnQgeyBDaGFuZ2VMYW5nQ29tcCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2NoYW5nZS1sYW5nXCI7XG5pbXBvcnQgR2l0aHViU3RhciBmcm9tIFwiLi4vY29tcG9uZW50cy9naXRodWItc3RhclwiO1xuaW1wb3J0IHsgR29Ub1Bvc3RtYW4gfSBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkL2NvbW1vblwiO1xuaW1wb3J0IHsgSUNQUmVnaXN0cmF0aW9uIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvaWNwLXJlZ2lzdHJhdGlvblwiO1xuaW1wb3J0IHsgRW52IH0gZnJvbSBcIi4uL2NvbmZpZ1wiO1xuaW1wb3J0IHsgZ2V0Q29uZmlnIH0gZnJvbSBcIi4uL2NvcmUvaHR0cC9jb25maWdcIjtcbmltcG9ydCB7IGRzYyB9IGZyb20gXCIuLi9jb3JlL3N0eWxlL2RlZmF1bHRTdHlsZUNvbmZpZ1wiO1xuaW1wb3J0IHsgZmxleEJldHdlZW5DZW50ZXJPcHRzLCBmbGV4Q2VudGVyT3B0cywgZmxleE9wdHMgfSBmcm9tIFwiLi4vY29yZS9zdHlsZS91dGlsc1wiO1xuaW1wb3J0IHsgZGVmYXVsdE1lbnVUaXRsZUhlaWdodCB9IGZyb20gXCIuLi9tYWluXCI7XG5pbXBvcnQgeyBGaWxlSW1wb3J0VmlldyB9IGZyb20gXCIuL0ltcG9ydEJ5RmlsZVZpZXdcIjtcbmltcG9ydCB7IFRleHRJbXBvcnRWaWV3IH0gZnJvbSBcIi4vSW1wb3J0QnlUZXh0Vmlld1wiO1xuaW1wb3J0IHsgVVJMSW1wb3J0VmlldyB9IGZyb20gXCIuL0ltcG9ydEJ5VVJMVmlld1wiO1xuaW1wb3J0IHsgSUltcG9ydE1vZGVUeXBlLCBJbXBvcnRNb2RlVHlwZSwgZGlzcGxheUltcG9ydE1vZGVUeXBlLCBkaXNwbGF5SW1wb3J0TW9kZVR5cGVJY29uIH0gZnJvbSBcIi4vY29uZmlnXCI7XG5cbmludGVyZmFjZSBJTG9naW5RdWVyeSBleHRlbmRzIFBhcnNlZFVybFF1ZXJ5IHtcbiAgYWN0aXZlSW1wb3J0TW9kZVR5cGU6IElJbXBvcnRNb2RlVHlwZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTG9naW4oKSB7XG4gIGNvbnN0IFt7IGFjdGl2ZUltcG9ydE1vZGVUeXBlID0gSW1wb3J0TW9kZVR5cGUudXJsIH0sIHNldFF1ZXJ5XSA9IHVzZVJvdXRlclF1ZXJ5PElMb2dpblF1ZXJ5PigpO1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IGlzWmggPSBnZXRDb25maWcoKS5lbnYgPT09IEVudi56aDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17e1xuICAgICAgICBoZWlnaHQ6IGdsb2JhbFRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxcbiAgICAgICAgYmFja2dyb3VuZEltYWdlOiBcInVybChodHRwczovL2d3LmFsaXBheW9iamVjdHMuY29tL3pvcy9ybXNwb3J0YWwvVFZZVGJBWFdoZVFwUmNXRGFETXUuc3ZnKVwiLFxuICAgICAgICBiYWNrZ3JvdW5kU2l6ZTogXCIxMDAlIDEwMCVcIixcbiAgICAgICAgYmFja2dyb3VuZFJlcGVhdDogXCJuby1yZXBlYXRcIixcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdiBjc3M9e3sgbWluSGVpZ2h0OiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gMzIgfX0+XG4gICAgICAgIDxkaXYgY3NzPXtbZmxleEJldHdlZW5DZW50ZXJPcHRzKCksIHsgbWluV2lkdGg6IDEyMDAsIGhlaWdodDogZGVmYXVsdE1lbnVUaXRsZUhlaWdodCwgcGFkZGluZzogXCIwcHggMzBweFwiIH1dfT5cbiAgICAgICAgICA8aW1nIGNzcz17eyB3aWR0aDogMTI4IH19IHNyYz17TG9nb0ljb259IGFsdD1cIm9wZW5hcGktdWlcIiAvPlxuICAgICAgICAgIDxkaXYgY3NzPXt7IFwiJiA+ICogKyAqXCI6IHsgbWFyZ2luTGVmdDogNiB9IH19PlxuICAgICAgICAgICAgPENoYW5nZUxhbmdDb21wIC8+XG4gICAgICAgICAgICA8R29Ub1Bvc3RtYW4gLz5cbiAgICAgICAgICAgIDxHaXRodWJTdGFyIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNzcz17eyB3aWR0aDogMTIwMCwgbWFyZ2luOiBcIjBweCBhdXRvXCIsIHBhZGRpbmdUb3A6IDEyOCB9fT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e1tcbiAgICAgICAgICAgICAgZmxleENlbnRlck9wdHMoKSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZvbnRTaXplOiBkc2MuZm9udFNpemUucyxcbiAgICAgICAgICAgICAgICBtYXJnaW5Cb3R0b206IDM2LFxuICAgICAgICAgICAgICAgIFwiJiA+ICogKyAqXCI6IHtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IDYsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge21hcChJbXBvcnRNb2RlVHlwZSwgKGl0ZW0pID0+IChcbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBrZXk9e2l0ZW19XG4gICAgICAgICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICAgICAgICBmbGV4T3B0cyh7IGFsaWduSXRlbXM6IFwiY2VudGVyXCIgfSksXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNTAsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzIsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke2RzYy5jb2xvci5ib3JkZXJ9YCxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA2LFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBcIjBweCA2cHhcIixcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBcInBvaW50ZXJcIixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBhY3RpdmVJbXBvcnRNb2RlVHlwZSA9PT0gaXRlbVxuICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZHNjLmNvbG9yLnByaW1hcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZHNjLmNvbG9yLmJnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiJiBpbWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IFwiaW52ZXJ0KDEpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB7fSxcbiAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHNldFF1ZXJ5KCgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUltcG9ydE1vZGVUeXBlOiBpdGVtLFxuICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7ZGlzcGxheUltcG9ydE1vZGVUeXBlSWNvbihpdGVtKX1cbiAgICAgICAgICAgICAgICA8c3BhbiBjc3M9e3sgbWFyZ2luTGVmdDogMTAgfX0+e3QoZGlzcGxheUltcG9ydE1vZGVUeXBlKGl0ZW0pKX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY3NzPXtmbGV4Q2VudGVyT3B0cygpfT5cbiAgICAgICAgICAgIDxkaXYgY3NzPXt7IHdpZHRoOiA2MDAgfX0+XG4gICAgICAgICAgICAgIHthY3RpdmVJbXBvcnRNb2RlVHlwZSA9PT0gSW1wb3J0TW9kZVR5cGUudXJsICYmIDxVUkxJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgICB7YWN0aXZlSW1wb3J0TW9kZVR5cGUgPT09IEltcG9ydE1vZGVUeXBlLmZpbGUgJiYgPEZpbGVJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgICB7YWN0aXZlSW1wb3J0TW9kZVR5cGUgPT09IEltcG9ydE1vZGVUeXBlLnRleHQgJiYgPFRleHRJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7aXNaaCAmJiA8SUNQUmVnaXN0cmF0aW9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufVxuIl19 */"),children:[Rt("div",{css:Ji({minHeight:document.documentElement.clientHeight-32},ld.NODE_ENV==="production"?"":";label:Login;",ld.NODE_ENV==="production"?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvbG9naW4vaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9DVyIsImZpbGUiOiIvVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL29wZW5hcGktdWkvc3JjL2xvZ2luL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCB7IFBhcnNlZFVybFF1ZXJ5LCB1c2VSb3V0ZXJRdWVyeSB9IGZyb20gXCJyZWFjdC1yb3V0ZXItdG9vbGtpdFwiO1xuaW1wb3J0IExvZ29JY29uIGZyb20gXCIuLi9hc3NldHMvaW1hZ2VzL2xvZ28ucG5nXCI7XG5pbXBvcnQgeyBDaGFuZ2VMYW5nQ29tcCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2NoYW5nZS1sYW5nXCI7XG5pbXBvcnQgR2l0aHViU3RhciBmcm9tIFwiLi4vY29tcG9uZW50cy9naXRodWItc3RhclwiO1xuaW1wb3J0IHsgR29Ub1Bvc3RtYW4gfSBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkL2NvbW1vblwiO1xuaW1wb3J0IHsgSUNQUmVnaXN0cmF0aW9uIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvaWNwLXJlZ2lzdHJhdGlvblwiO1xuaW1wb3J0IHsgRW52IH0gZnJvbSBcIi4uL2NvbmZpZ1wiO1xuaW1wb3J0IHsgZ2V0Q29uZmlnIH0gZnJvbSBcIi4uL2NvcmUvaHR0cC9jb25maWdcIjtcbmltcG9ydCB7IGRzYyB9IGZyb20gXCIuLi9jb3JlL3N0eWxlL2RlZmF1bHRTdHlsZUNvbmZpZ1wiO1xuaW1wb3J0IHsgZmxleEJldHdlZW5DZW50ZXJPcHRzLCBmbGV4Q2VudGVyT3B0cywgZmxleE9wdHMgfSBmcm9tIFwiLi4vY29yZS9zdHlsZS91dGlsc1wiO1xuaW1wb3J0IHsgZGVmYXVsdE1lbnVUaXRsZUhlaWdodCB9IGZyb20gXCIuLi9tYWluXCI7XG5pbXBvcnQgeyBGaWxlSW1wb3J0VmlldyB9IGZyb20gXCIuL0ltcG9ydEJ5RmlsZVZpZXdcIjtcbmltcG9ydCB7IFRleHRJbXBvcnRWaWV3IH0gZnJvbSBcIi4vSW1wb3J0QnlUZXh0Vmlld1wiO1xuaW1wb3J0IHsgVVJMSW1wb3J0VmlldyB9IGZyb20gXCIuL0ltcG9ydEJ5VVJMVmlld1wiO1xuaW1wb3J0IHsgSUltcG9ydE1vZGVUeXBlLCBJbXBvcnRNb2RlVHlwZSwgZGlzcGxheUltcG9ydE1vZGVUeXBlLCBkaXNwbGF5SW1wb3J0TW9kZVR5cGVJY29uIH0gZnJvbSBcIi4vY29uZmlnXCI7XG5cbmludGVyZmFjZSBJTG9naW5RdWVyeSBleHRlbmRzIFBhcnNlZFVybFF1ZXJ5IHtcbiAgYWN0aXZlSW1wb3J0TW9kZVR5cGU6IElJbXBvcnRNb2RlVHlwZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTG9naW4oKSB7XG4gIGNvbnN0IFt7IGFjdGl2ZUltcG9ydE1vZGVUeXBlID0gSW1wb3J0TW9kZVR5cGUudXJsIH0sIHNldFF1ZXJ5XSA9IHVzZVJvdXRlclF1ZXJ5PElMb2dpblF1ZXJ5PigpO1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IGlzWmggPSBnZXRDb25maWcoKS5lbnYgPT09IEVudi56aDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17e1xuICAgICAgICBoZWlnaHQ6IGdsb2JhbFRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxcbiAgICAgICAgYmFja2dyb3VuZEltYWdlOiBcInVybChodHRwczovL2d3LmFsaXBheW9iamVjdHMuY29tL3pvcy9ybXNwb3J0YWwvVFZZVGJBWFdoZVFwUmNXRGFETXUuc3ZnKVwiLFxuICAgICAgICBiYWNrZ3JvdW5kU2l6ZTogXCIxMDAlIDEwMCVcIixcbiAgICAgICAgYmFja2dyb3VuZFJlcGVhdDogXCJuby1yZXBlYXRcIixcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdiBjc3M9e3sgbWluSGVpZ2h0OiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gMzIgfX0+XG4gICAgICAgIDxkaXYgY3NzPXtbZmxleEJldHdlZW5DZW50ZXJPcHRzKCksIHsgbWluV2lkdGg6IDEyMDAsIGhlaWdodDogZGVmYXVsdE1lbnVUaXRsZUhlaWdodCwgcGFkZGluZzogXCIwcHggMzBweFwiIH1dfT5cbiAgICAgICAgICA8aW1nIGNzcz17eyB3aWR0aDogMTI4IH19IHNyYz17TG9nb0ljb259IGFsdD1cIm9wZW5hcGktdWlcIiAvPlxuICAgICAgICAgIDxkaXYgY3NzPXt7IFwiJiA+ICogKyAqXCI6IHsgbWFyZ2luTGVmdDogNiB9IH19PlxuICAgICAgICAgICAgPENoYW5nZUxhbmdDb21wIC8+XG4gICAgICAgICAgICA8R29Ub1Bvc3RtYW4gLz5cbiAgICAgICAgICAgIDxHaXRodWJTdGFyIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNzcz17eyB3aWR0aDogMTIwMCwgbWFyZ2luOiBcIjBweCBhdXRvXCIsIHBhZGRpbmdUb3A6IDEyOCB9fT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e1tcbiAgICAgICAgICAgICAgZmxleENlbnRlck9wdHMoKSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZvbnRTaXplOiBkc2MuZm9udFNpemUucyxcbiAgICAgICAgICAgICAgICBtYXJnaW5Cb3R0b206IDM2LFxuICAgICAgICAgICAgICAgIFwiJiA+ICogKyAqXCI6IHtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IDYsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge21hcChJbXBvcnRNb2RlVHlwZSwgKGl0ZW0pID0+IChcbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBrZXk9e2l0ZW19XG4gICAgICAgICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICAgICAgICBmbGV4T3B0cyh7IGFsaWduSXRlbXM6IFwiY2VudGVyXCIgfSksXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNTAsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzIsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke2RzYy5jb2xvci5ib3JkZXJ9YCxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA2LFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBcIjBweCA2cHhcIixcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBcInBvaW50ZXJcIixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBhY3RpdmVJbXBvcnRNb2RlVHlwZSA9PT0gaXRlbVxuICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZHNjLmNvbG9yLnByaW1hcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZHNjLmNvbG9yLmJnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiJiBpbWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IFwiaW52ZXJ0KDEpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB7fSxcbiAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHNldFF1ZXJ5KCgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUltcG9ydE1vZGVUeXBlOiBpdGVtLFxuICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7ZGlzcGxheUltcG9ydE1vZGVUeXBlSWNvbihpdGVtKX1cbiAgICAgICAgICAgICAgICA8c3BhbiBjc3M9e3sgbWFyZ2luTGVmdDogMTAgfX0+e3QoZGlzcGxheUltcG9ydE1vZGVUeXBlKGl0ZW0pKX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY3NzPXtmbGV4Q2VudGVyT3B0cygpfT5cbiAgICAgICAgICAgIDxkaXYgY3NzPXt7IHdpZHRoOiA2MDAgfX0+XG4gICAgICAgICAgICAgIHthY3RpdmVJbXBvcnRNb2RlVHlwZSA9PT0gSW1wb3J0TW9kZVR5cGUudXJsICYmIDxVUkxJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgICB7YWN0aXZlSW1wb3J0TW9kZVR5cGUgPT09IEltcG9ydE1vZGVUeXBlLmZpbGUgJiYgPEZpbGVJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgICB7YWN0aXZlSW1wb3J0TW9kZVR5cGUgPT09IEltcG9ydE1vZGVUeXBlLnRleHQgJiYgPFRleHRJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7aXNaaCAmJiA8SUNQUmVnaXN0cmF0aW9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufVxuIl19 */"),children:[Rt("div",{css:[xme(),{minWidth:1200,height:CC,padding:"0px 30px"},ld.NODE_ENV==="production"?"":";label:Login;",ld.NODE_ENV==="production"?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvbG9naW4vaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFDYSIsImZpbGUiOiIvVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL29wZW5hcGktdWkvc3JjL2xvZ2luL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCB7IFBhcnNlZFVybFF1ZXJ5LCB1c2VSb3V0ZXJRdWVyeSB9IGZyb20gXCJyZWFjdC1yb3V0ZXItdG9vbGtpdFwiO1xuaW1wb3J0IExvZ29JY29uIGZyb20gXCIuLi9hc3NldHMvaW1hZ2VzL2xvZ28ucG5nXCI7XG5pbXBvcnQgeyBDaGFuZ2VMYW5nQ29tcCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2NoYW5nZS1sYW5nXCI7XG5pbXBvcnQgR2l0aHViU3RhciBmcm9tIFwiLi4vY29tcG9uZW50cy9naXRodWItc3RhclwiO1xuaW1wb3J0IHsgR29Ub1Bvc3RtYW4gfSBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkL2NvbW1vblwiO1xuaW1wb3J0IHsgSUNQUmVnaXN0cmF0aW9uIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvaWNwLXJlZ2lzdHJhdGlvblwiO1xuaW1wb3J0IHsgRW52IH0gZnJvbSBcIi4uL2NvbmZpZ1wiO1xuaW1wb3J0IHsgZ2V0Q29uZmlnIH0gZnJvbSBcIi4uL2NvcmUvaHR0cC9jb25maWdcIjtcbmltcG9ydCB7IGRzYyB9IGZyb20gXCIuLi9jb3JlL3N0eWxlL2RlZmF1bHRTdHlsZUNvbmZpZ1wiO1xuaW1wb3J0IHsgZmxleEJldHdlZW5DZW50ZXJPcHRzLCBmbGV4Q2VudGVyT3B0cywgZmxleE9wdHMgfSBmcm9tIFwiLi4vY29yZS9zdHlsZS91dGlsc1wiO1xuaW1wb3J0IHsgZGVmYXVsdE1lbnVUaXRsZUhlaWdodCB9IGZyb20gXCIuLi9tYWluXCI7XG5pbXBvcnQgeyBGaWxlSW1wb3J0VmlldyB9IGZyb20gXCIuL0ltcG9ydEJ5RmlsZVZpZXdcIjtcbmltcG9ydCB7IFRleHRJbXBvcnRWaWV3IH0gZnJvbSBcIi4vSW1wb3J0QnlUZXh0Vmlld1wiO1xuaW1wb3J0IHsgVVJMSW1wb3J0VmlldyB9IGZyb20gXCIuL0ltcG9ydEJ5VVJMVmlld1wiO1xuaW1wb3J0IHsgSUltcG9ydE1vZGVUeXBlLCBJbXBvcnRNb2RlVHlwZSwgZGlzcGxheUltcG9ydE1vZGVUeXBlLCBkaXNwbGF5SW1wb3J0TW9kZVR5cGVJY29uIH0gZnJvbSBcIi4vY29uZmlnXCI7XG5cbmludGVyZmFjZSBJTG9naW5RdWVyeSBleHRlbmRzIFBhcnNlZFVybFF1ZXJ5IHtcbiAgYWN0aXZlSW1wb3J0TW9kZVR5cGU6IElJbXBvcnRNb2RlVHlwZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTG9naW4oKSB7XG4gIGNvbnN0IFt7IGFjdGl2ZUltcG9ydE1vZGVUeXBlID0gSW1wb3J0TW9kZVR5cGUudXJsIH0sIHNldFF1ZXJ5XSA9IHVzZVJvdXRlclF1ZXJ5PElMb2dpblF1ZXJ5PigpO1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IGlzWmggPSBnZXRDb25maWcoKS5lbnYgPT09IEVudi56aDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17e1xuICAgICAgICBoZWlnaHQ6IGdsb2JhbFRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxcbiAgICAgICAgYmFja2dyb3VuZEltYWdlOiBcInVybChodHRwczovL2d3LmFsaXBheW9iamVjdHMuY29tL3pvcy9ybXNwb3J0YWwvVFZZVGJBWFdoZVFwUmNXRGFETXUuc3ZnKVwiLFxuICAgICAgICBiYWNrZ3JvdW5kU2l6ZTogXCIxMDAlIDEwMCVcIixcbiAgICAgICAgYmFja2dyb3VuZFJlcGVhdDogXCJuby1yZXBlYXRcIixcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdiBjc3M9e3sgbWluSGVpZ2h0OiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gMzIgfX0+XG4gICAgICAgIDxkaXYgY3NzPXtbZmxleEJldHdlZW5DZW50ZXJPcHRzKCksIHsgbWluV2lkdGg6IDEyMDAsIGhlaWdodDogZGVmYXVsdE1lbnVUaXRsZUhlaWdodCwgcGFkZGluZzogXCIwcHggMzBweFwiIH1dfT5cbiAgICAgICAgICA8aW1nIGNzcz17eyB3aWR0aDogMTI4IH19IHNyYz17TG9nb0ljb259IGFsdD1cIm9wZW5hcGktdWlcIiAvPlxuICAgICAgICAgIDxkaXYgY3NzPXt7IFwiJiA+ICogKyAqXCI6IHsgbWFyZ2luTGVmdDogNiB9IH19PlxuICAgICAgICAgICAgPENoYW5nZUxhbmdDb21wIC8+XG4gICAgICAgICAgICA8R29Ub1Bvc3RtYW4gLz5cbiAgICAgICAgICAgIDxHaXRodWJTdGFyIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNzcz17eyB3aWR0aDogMTIwMCwgbWFyZ2luOiBcIjBweCBhdXRvXCIsIHBhZGRpbmdUb3A6IDEyOCB9fT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e1tcbiAgICAgICAgICAgICAgZmxleENlbnRlck9wdHMoKSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZvbnRTaXplOiBkc2MuZm9udFNpemUucyxcbiAgICAgICAgICAgICAgICBtYXJnaW5Cb3R0b206IDM2LFxuICAgICAgICAgICAgICAgIFwiJiA+ICogKyAqXCI6IHtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IDYsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge21hcChJbXBvcnRNb2RlVHlwZSwgKGl0ZW0pID0+IChcbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBrZXk9e2l0ZW19XG4gICAgICAgICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICAgICAgICBmbGV4T3B0cyh7IGFsaWduSXRlbXM6IFwiY2VudGVyXCIgfSksXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNTAsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzIsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke2RzYy5jb2xvci5ib3JkZXJ9YCxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA2LFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBcIjBweCA2cHhcIixcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBcInBvaW50ZXJcIixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBhY3RpdmVJbXBvcnRNb2RlVHlwZSA9PT0gaXRlbVxuICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZHNjLmNvbG9yLnByaW1hcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZHNjLmNvbG9yLmJnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiJiBpbWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IFwiaW52ZXJ0KDEpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB7fSxcbiAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHNldFF1ZXJ5KCgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUltcG9ydE1vZGVUeXBlOiBpdGVtLFxuICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7ZGlzcGxheUltcG9ydE1vZGVUeXBlSWNvbihpdGVtKX1cbiAgICAgICAgICAgICAgICA8c3BhbiBjc3M9e3sgbWFyZ2luTGVmdDogMTAgfX0+e3QoZGlzcGxheUltcG9ydE1vZGVUeXBlKGl0ZW0pKX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY3NzPXtmbGV4Q2VudGVyT3B0cygpfT5cbiAgICAgICAgICAgIDxkaXYgY3NzPXt7IHdpZHRoOiA2MDAgfX0+XG4gICAgICAgICAgICAgIHthY3RpdmVJbXBvcnRNb2RlVHlwZSA9PT0gSW1wb3J0TW9kZVR5cGUudXJsICYmIDxVUkxJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgICB7YWN0aXZlSW1wb3J0TW9kZVR5cGUgPT09IEltcG9ydE1vZGVUeXBlLmZpbGUgJiYgPEZpbGVJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgICB7YWN0aXZlSW1wb3J0TW9kZVR5cGUgPT09IEltcG9ydE1vZGVUeXBlLnRleHQgJiYgPFRleHRJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7aXNaaCAmJiA8SUNQUmVnaXN0cmF0aW9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufVxuIl19 */"],children:[ae("img",{css:not,src:Cme,alt:"openapi-ui"}),Rt("div",{css:iot,children:[ae(KB,{}),ae(Zrt,{}),ae(jB,{})]})]}),Rt("div",{css:rot,children:[ae("div",{css:[cb(),{fontSize:Qt.fontSize.s,marginBottom:36,"& > * + *":{marginLeft:6}},ld.NODE_ENV==="production"?"":";label:Login;",ld.NODE_ENV==="production"?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvbG9naW4vaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStDWSIsImZpbGUiOiIvVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL29wZW5hcGktdWkvc3JjL2xvZ2luL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCB7IFBhcnNlZFVybFF1ZXJ5LCB1c2VSb3V0ZXJRdWVyeSB9IGZyb20gXCJyZWFjdC1yb3V0ZXItdG9vbGtpdFwiO1xuaW1wb3J0IExvZ29JY29uIGZyb20gXCIuLi9hc3NldHMvaW1hZ2VzL2xvZ28ucG5nXCI7XG5pbXBvcnQgeyBDaGFuZ2VMYW5nQ29tcCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2NoYW5nZS1sYW5nXCI7XG5pbXBvcnQgR2l0aHViU3RhciBmcm9tIFwiLi4vY29tcG9uZW50cy9naXRodWItc3RhclwiO1xuaW1wb3J0IHsgR29Ub1Bvc3RtYW4gfSBmcm9tIFwiLi4vY29tcG9uZW50cy9oZWFkL2NvbW1vblwiO1xuaW1wb3J0IHsgSUNQUmVnaXN0cmF0aW9uIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvaWNwLXJlZ2lzdHJhdGlvblwiO1xuaW1wb3J0IHsgRW52IH0gZnJvbSBcIi4uL2NvbmZpZ1wiO1xuaW1wb3J0IHsgZ2V0Q29uZmlnIH0gZnJvbSBcIi4uL2NvcmUvaHR0cC9jb25maWdcIjtcbmltcG9ydCB7IGRzYyB9IGZyb20gXCIuLi9jb3JlL3N0eWxlL2RlZmF1bHRTdHlsZUNvbmZpZ1wiO1xuaW1wb3J0IHsgZmxleEJldHdlZW5DZW50ZXJPcHRzLCBmbGV4Q2VudGVyT3B0cywgZmxleE9wdHMgfSBmcm9tIFwiLi4vY29yZS9zdHlsZS91dGlsc1wiO1xuaW1wb3J0IHsgZGVmYXVsdE1lbnVUaXRsZUhlaWdodCB9IGZyb20gXCIuLi9tYWluXCI7XG5pbXBvcnQgeyBGaWxlSW1wb3J0VmlldyB9IGZyb20gXCIuL0ltcG9ydEJ5RmlsZVZpZXdcIjtcbmltcG9ydCB7IFRleHRJbXBvcnRWaWV3IH0gZnJvbSBcIi4vSW1wb3J0QnlUZXh0Vmlld1wiO1xuaW1wb3J0IHsgVVJMSW1wb3J0VmlldyB9IGZyb20gXCIuL0ltcG9ydEJ5VVJMVmlld1wiO1xuaW1wb3J0IHsgSUltcG9ydE1vZGVUeXBlLCBJbXBvcnRNb2RlVHlwZSwgZGlzcGxheUltcG9ydE1vZGVUeXBlLCBkaXNwbGF5SW1wb3J0TW9kZVR5cGVJY29uIH0gZnJvbSBcIi4vY29uZmlnXCI7XG5cbmludGVyZmFjZSBJTG9naW5RdWVyeSBleHRlbmRzIFBhcnNlZFVybFF1ZXJ5IHtcbiAgYWN0aXZlSW1wb3J0TW9kZVR5cGU6IElJbXBvcnRNb2RlVHlwZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTG9naW4oKSB7XG4gIGNvbnN0IFt7IGFjdGl2ZUltcG9ydE1vZGVUeXBlID0gSW1wb3J0TW9kZVR5cGUudXJsIH0sIHNldFF1ZXJ5XSA9IHVzZVJvdXRlclF1ZXJ5PElMb2dpblF1ZXJ5PigpO1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKCk7XG4gIGNvbnN0IGlzWmggPSBnZXRDb25maWcoKS5lbnYgPT09IEVudi56aDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNzcz17e1xuICAgICAgICBoZWlnaHQ6IGdsb2JhbFRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxcbiAgICAgICAgYmFja2dyb3VuZEltYWdlOiBcInVybChodHRwczovL2d3LmFsaXBheW9iamVjdHMuY29tL3pvcy9ybXNwb3J0YWwvVFZZVGJBWFdoZVFwUmNXRGFETXUuc3ZnKVwiLFxuICAgICAgICBiYWNrZ3JvdW5kU2l6ZTogXCIxMDAlIDEwMCVcIixcbiAgICAgICAgYmFja2dyb3VuZFJlcGVhdDogXCJuby1yZXBlYXRcIixcbiAgICAgIH19XG4gICAgPlxuICAgICAgPGRpdiBjc3M9e3sgbWluSGVpZ2h0OiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gMzIgfX0+XG4gICAgICAgIDxkaXYgY3NzPXtbZmxleEJldHdlZW5DZW50ZXJPcHRzKCksIHsgbWluV2lkdGg6IDEyMDAsIGhlaWdodDogZGVmYXVsdE1lbnVUaXRsZUhlaWdodCwgcGFkZGluZzogXCIwcHggMzBweFwiIH1dfT5cbiAgICAgICAgICA8aW1nIGNzcz17eyB3aWR0aDogMTI4IH19IHNyYz17TG9nb0ljb259IGFsdD1cIm9wZW5hcGktdWlcIiAvPlxuICAgICAgICAgIDxkaXYgY3NzPXt7IFwiJiA+ICogKyAqXCI6IHsgbWFyZ2luTGVmdDogNiB9IH19PlxuICAgICAgICAgICAgPENoYW5nZUxhbmdDb21wIC8+XG4gICAgICAgICAgICA8R29Ub1Bvc3RtYW4gLz5cbiAgICAgICAgICAgIDxHaXRodWJTdGFyIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNzcz17eyB3aWR0aDogMTIwMCwgbWFyZ2luOiBcIjBweCBhdXRvXCIsIHBhZGRpbmdUb3A6IDEyOCB9fT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e1tcbiAgICAgICAgICAgICAgZmxleENlbnRlck9wdHMoKSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZvbnRTaXplOiBkc2MuZm9udFNpemUucyxcbiAgICAgICAgICAgICAgICBtYXJnaW5Cb3R0b206IDM2LFxuICAgICAgICAgICAgICAgIFwiJiA+ICogKyAqXCI6IHtcbiAgICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IDYsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF19XG4gICAgICAgICAgPlxuICAgICAgICAgICAge21hcChJbXBvcnRNb2RlVHlwZSwgKGl0ZW0pID0+IChcbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBrZXk9e2l0ZW19XG4gICAgICAgICAgICAgICAgY3NzPXtbXG4gICAgICAgICAgICAgICAgICBmbGV4T3B0cyh7IGFsaWduSXRlbXM6IFwiY2VudGVyXCIgfSksXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNTAsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMzIsXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke2RzYy5jb2xvci5ib3JkZXJ9YCxcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiA2LFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBcIjBweCA2cHhcIixcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBcInBvaW50ZXJcIixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBhY3RpdmVJbXBvcnRNb2RlVHlwZSA9PT0gaXRlbVxuICAgICAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogZHNjLmNvbG9yLnByaW1hcnksXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogZHNjLmNvbG9yLmJnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiJiBpbWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IFwiaW52ZXJ0KDEpXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgOiB7fSxcbiAgICAgICAgICAgICAgICBdfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHNldFF1ZXJ5KCgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUltcG9ydE1vZGVUeXBlOiBpdGVtLFxuICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7ZGlzcGxheUltcG9ydE1vZGVUeXBlSWNvbihpdGVtKX1cbiAgICAgICAgICAgICAgICA8c3BhbiBjc3M9e3sgbWFyZ2luTGVmdDogMTAgfX0+e3QoZGlzcGxheUltcG9ydE1vZGVUeXBlKGl0ZW0pKX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY3NzPXtmbGV4Q2VudGVyT3B0cygpfT5cbiAgICAgICAgICAgIDxkaXYgY3NzPXt7IHdpZHRoOiA2MDAgfX0+XG4gICAgICAgICAgICAgIHthY3RpdmVJbXBvcnRNb2RlVHlwZSA9PT0gSW1wb3J0TW9kZVR5cGUudXJsICYmIDxVUkxJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgICB7YWN0aXZlSW1wb3J0TW9kZVR5cGUgPT09IEltcG9ydE1vZGVUeXBlLmZpbGUgJiYgPEZpbGVJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgICB7YWN0aXZlSW1wb3J0TW9kZVR5cGUgPT09IEltcG9ydE1vZGVUeXBlLnRleHQgJiYgPFRleHRJbXBvcnRWaWV3IC8+fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICB7aXNaaCAmJiA8SUNQUmVnaXN0cmF0aW9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufVxuIl19 */"],children:Kr(od,r=>Rt("a",{css:[Trt({alignItems:"center"}),{width:150,height:32,border:`1px solid ${Qt.color.border}`,borderRadius:6,padding:"0px 6px",cursor:"pointer"},n===r?{backgroundColor:Qt.color.primary,color:Qt.color.bg,border:"none","& img":{filter:"invert(1)"}}:{},"",""],onClick:()=>{e(()=>({activeImportModeType:r}))},children:[vQe(r),ae("span",{css:oot,children:t(CQe(r))})]},r))}),ae("div",{css:cb(),children:Rt("div",{css:sot,children:[n===od.url&&ae(tot,{}),n===od.file&&ae($rt,{}),n===od.text&&ae(qrt,{})]})})]})]}),i&&ae(qB,{})]})}const lot=Object.freeze(Object.defineProperty({__proto__:null,default:aot},Symbol.toStringTag,{value:"Module"}));function GUt(){}function VUt(){}function uot(n,e){const t=e||{};return(n[n.length-1]===""?[...n,""]:n).join((t.padRight?" ":"")+","+(t.padLeft===!1?"":" ")).trim()}const cot=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,dot=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,hot={};function kme(n,e){return((e||hot).jsx?dot:cot).test(n)}const got=/[ \t\n\f\r]/g;function mot(n){return typeof n=="object"?n.type==="text"?Mme(n.value):!1:Mme(n)}function Mme(n){return n.replace(got,"")===""}class dF{constructor(e,t,i){this.property=e,this.normal=t,i&&(this.space=i)}}dF.prototype.property={},dF.prototype.normal={},dF.prototype.space=null;function Zme(n,e){const t={},i={};let r=-1;for(;++r4&&t.slice(0,4)==="data"&&vot.test(e)){if(e.charAt(4)==="-"){const o=e.slice(5).replace(Ome,Sot);i="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=e.slice(4);if(!Ome.test(o)){let s=o.replace(yot,wot);s.charAt(0)!=="-"&&(s="-"+s),e="data"+s}}r=rz}return new r(i,e)}function wot(n){return"-"+n.toLowerCase()}function Sot(n){return n.charAt(1).toUpperCase()}const xot={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},Lot=Zme([Rme,Wme,Xme,Pme,bot],"html"),oz=Zme([Rme,Wme,Xme,Pme,Cot],"svg");function Fot(n){return n.join(" ").trim()}var Bme={},zme=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,_ot=/\n/g,Dot=/^\s*/,Aot=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,Not=/^:\s*/,kot=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,Mot=/^[;\s]*/,Zot=/^\s+|\s+$/g,Tot=` +`,Yme="/",Hme="*",yC="",Eot="comment",Wot="declaration",Rot=function(n,e){if(typeof n!="string")throw new TypeError("First argument must be a string");if(!n)return[];e=e||{};var t=1,i=1;function r(m){var f=m.match(_ot);f&&(t+=f.length);var b=m.lastIndexOf(Tot);i=~b?m.length-b:i+m.length}function o(){var m={line:t,column:i};return function(f){return f.position=new s(m),u(),f}}function s(m){this.start=m,this.end={line:t,column:i},this.source=e.source}s.prototype.content=n;function a(m){var f=new Error(e.source+":"+t+":"+i+": "+m);if(f.reason=m,f.filename=e.source,f.line=t,f.column=i,f.source=n,!e.silent)throw f}function l(m){var f=m.exec(n);if(f){var b=f[0];return r(b),n=n.slice(b.length),f}}function u(){l(Dot)}function c(m){var f;for(m=m||[];f=d();)f!==!1&&m.push(f);return m}function d(){var m=o();if(!(Yme!=n.charAt(0)||Hme!=n.charAt(1))){for(var f=2;yC!=n.charAt(f)&&(Hme!=n.charAt(f)||Yme!=n.charAt(f+1));)++f;if(f+=2,yC===n.charAt(f-1))return a("End of comment missing");var b=n.slice(2,f-2);return i+=2,r(b),n=n.slice(f),i+=2,m({type:Eot,comment:b})}}function h(){var m=o(),f=l(Aot);if(f){if(d(),!l(Not))return a("property missing ':'");var b=l(kot),C=m({type:Wot,property:Ume(f[0].replace(zme,yC)),value:b?Ume(b[0].replace(zme,yC)):yC});return l(Mot),C}}function g(){var m=[];c(m);for(var f;f=h();)f!==!1&&(m.push(f),c(m));return m}return u(),g()};function Ume(n){return n?n.replace(Zot,yC):yC}var Got=Xm&&Xm.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Bme,"__esModule",{value:!0});var Vot=Got(Rot);function Xot(n,e){var t=null;if(!n||typeof n!="string")return t;var i=(0,Vot.default)(n),r=typeof e=="function";return i.forEach(function(o){if(o.type==="declaration"){var s=o.property,a=o.value;r?e(s,a,o):a&&(t=t||{},t[s]=a)}}),t}var Jme=Bme.default=Xot;const Pot=Jme.default||Jme,Kme=jme("end"),sz=jme("start");function jme(n){return e;function e(t){const i=t&&t.position&&t.position[n]||{};if(typeof i.line=="number"&&i.line>0&&typeof i.column=="number"&&i.column>0)return{line:i.line,column:i.column,offset:typeof i.offset=="number"&&i.offset>-1?i.offset:void 0}}}function Oot(n){const e=sz(n),t=Kme(n);if(e&&t)return{start:e,end:t}}function hF(n){return!n||typeof n!="object"?"":"position"in n||"type"in n?Qme(n.position):"start"in n||"end"in n?Qme(n):"line"in n||"column"in n?az(n):""}function az(n){return $me(n&&n.line)+":"+$me(n&&n.column)}function Qme(n){return az(n&&n.start)+"-"+az(n&&n.end)}function $me(n){return n&&typeof n=="number"?n:1}class xl extends Error{constructor(e,t,i){super(),typeof t=="string"&&(i=t,t=void 0);let r="",o={},s=!1;if(t&&("line"in t&&"column"in t?o={place:t}:"start"in t&&"end"in t?o={place:t}:"type"in t?o={ancestors:[t],place:t.position}:o={...t}),typeof e=="string"?r=e:!o.cause&&e&&(s=!0,r=e.message,o.cause=e),!o.ruleId&&!o.source&&typeof i=="string"){const l=i.indexOf(":");l===-1?o.ruleId=i:(o.source=i.slice(0,l),o.ruleId=i.slice(l+1))}if(!o.place&&o.ancestors&&o.ancestors){const l=o.ancestors[o.ancestors.length-1];l&&(o.place=l.position)}const a=o.place&&"start"in o.place?o.place.start:o.place;this.ancestors=o.ancestors||void 0,this.cause=o.cause||void 0,this.column=a?a.column:void 0,this.fatal=void 0,this.file,this.message=r,this.line=a?a.line:void 0,this.name=hF(o.place)||"1:1",this.place=o.place||void 0,this.reason=this.message,this.ruleId=o.ruleId||void 0,this.source=o.source||void 0,this.stack=s&&o.cause&&typeof o.cause.stack=="string"?o.cause.stack:"",this.actual,this.expected,this.note,this.url}}xl.prototype.file="",xl.prototype.name="",xl.prototype.reason="",xl.prototype.message="",xl.prototype.stack="",xl.prototype.column=void 0,xl.prototype.line=void 0,xl.prototype.ancestors=void 0,xl.prototype.cause=void 0,xl.prototype.fatal=void 0,xl.prototype.place=void 0,xl.prototype.ruleId=void 0,xl.prototype.source=void 0;const lz={}.hasOwnProperty,Bot=new Map,zot=/[A-Z]/g,Yot=/-([a-z])/g,Hot=new Set(["table","tbody","thead","tfoot","tr"]),Uot=new Set(["td","th"]),qme="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Jot(n,e){if(!e||e.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const t=e.filePath||void 0;let i;if(e.development){if(typeof e.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");i=nst(t,e.jsxDEV)}else{if(typeof e.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof e.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");i=tst(t,e.jsx,e.jsxs)}const r={Fragment:e.Fragment,ancestors:[],components:e.components||{},create:i,elementAttributeNameCase:e.elementAttributeNameCase||"react",evaluater:e.createEvaluater?e.createEvaluater():void 0,filePath:t,ignoreInvalidStyle:e.ignoreInvalidStyle||!1,passKeys:e.passKeys!==!1,passNode:e.passNode||!1,schema:e.space==="svg"?oz:Lot,stylePropertyNameCase:e.stylePropertyNameCase||"dom",tableCellAlignToStyle:e.tableCellAlignToStyle!==!1},o=efe(r,n,void 0);return o&&typeof o!="string"?o:r.create(n,r.Fragment,{children:o||void 0},void 0)}function efe(n,e,t){if(e.type==="element")return Kot(n,e,t);if(e.type==="mdxFlowExpression"||e.type==="mdxTextExpression")return jot(n,e);if(e.type==="mdxJsxFlowElement"||e.type==="mdxJsxTextElement")return $ot(n,e,t);if(e.type==="mdxjsEsm")return Qot(n,e);if(e.type==="root")return qot(n,e,t);if(e.type==="text")return est(n,e)}function Kot(n,e,t){const i=n.schema;let r=i;e.tagName.toLowerCase()==="svg"&&i.space==="html"&&(r=oz,n.schema=r),n.ancestors.push(e);const o=nfe(n,e.tagName,!1),s=ist(n,e);let a=cz(n,e);return Hot.has(e.tagName)&&(a=a.filter(function(l){return typeof l=="string"?!mot(l):!0})),tfe(n,s,o,e),uz(s,a),n.ancestors.pop(),n.schema=i,n.create(e,o,s,t)}function jot(n,e){if(e.data&&e.data.estree&&n.evaluater){const i=e.data.estree.body[0];return i.type,n.evaluater.evaluateExpression(i.expression)}gF(n,e.position)}function Qot(n,e){if(e.data&&e.data.estree&&n.evaluater)return n.evaluater.evaluateProgram(e.data.estree);gF(n,e.position)}function $ot(n,e,t){const i=n.schema;let r=i;e.name==="svg"&&i.space==="html"&&(r=oz,n.schema=r),n.ancestors.push(e);const o=e.name===null?n.Fragment:nfe(n,e.name,!0),s=rst(n,e),a=cz(n,e);return tfe(n,s,o,e),uz(s,a),n.ancestors.pop(),n.schema=i,n.create(e,o,s,t)}function qot(n,e,t){const i={};return uz(i,cz(n,e)),n.create(e,n.Fragment,i,t)}function est(n,e){return e.value}function tfe(n,e,t,i){typeof t!="string"&&t!==n.Fragment&&n.passNode&&(e.node=i)}function uz(n,e){if(e.length>0){const t=e.length>1?e:e[0];t&&(n.children=t)}}function tst(n,e,t){return i;function i(r,o,s,a){const u=Array.isArray(s.children)?t:e;return a?u(o,s,a):u(o,s)}}function nst(n,e){return t;function t(i,r,o,s){const a=Array.isArray(o.children),l=sz(i);return e(r,o,s,a,{columnNumber:l?l.column-1:void 0,fileName:n,lineNumber:l?l.line:void 0},void 0)}}function ist(n,e){const t={};let i,r;for(r in e.properties)if(r!=="children"&&lz.call(e.properties,r)){const o=ost(n,r,e.properties[r]);if(o){const[s,a]=o;n.tableCellAlignToStyle&&s==="align"&&typeof a=="string"&&Uot.has(e.tagName)?i=a:t[s]=a}}if(i){const o=t.style||(t.style={});o[n.stylePropertyNameCase==="css"?"text-align":"textAlign"]=i}return t}function rst(n,e){const t={};for(const i of e.attributes)if(i.type==="mdxJsxExpressionAttribute")if(i.data&&i.data.estree&&n.evaluater){const o=i.data.estree.body[0];o.type;const s=o.expression;s.type;const a=s.properties[0];a.type,Object.assign(t,n.evaluater.evaluateExpression(a.argument))}else gF(n,e.position);else{const r=i.name;let o;if(i.value&&typeof i.value=="object")if(i.value.data&&i.value.data.estree&&n.evaluater){const a=i.value.data.estree.body[0];a.type,o=n.evaluater.evaluateExpression(a.expression)}else gF(n,e.position);else o=i.value===null?!0:i.value;t[r]=o}return t}function cz(n,e){const t=[];let i=-1;const r=n.passKeys?new Map:Bot;for(;++ir?0:r+e:e=e>r?r:e,t=t>0?t:0,i.length<1e4)s=Array.from(i),s.unshift(e,t),n.splice(...s);else for(t&&n.splice(e,t);o0?(cf(n,n.length,0,e),n):e}const sfe={}.hasOwnProperty;function mst(n){const e={};let t=-1;for(;++t13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||(t&65535)===65535||(t&65535)===65534||t>1114111?"�":String.fromCodePoint(t)}function TI(n){return n.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const xg=db(/[A-Za-z]/),bc=db(/[\dA-Za-z]/),bst=db(/[#-'*+\--9=?A-Z^-~]/);function gz(n){return n!==null&&(n<32||n===127)}const mz=db(/\d/),Cst=db(/[\dA-Fa-f]/),vst=db(/[!-/:-@[-`{-~]/);function mi(n){return n!==null&&n<-2}function Nu(n){return n!==null&&(n<0||n===32)}function Dr(n){return n===-2||n===-1||n===32}const yst=db(new RegExp("\\p{P}|\\p{S}","u")),Ist=db(/\s/);function db(n){return e;function e(t){return t!==null&&t>-1&&n.test(String.fromCharCode(t))}}function EI(n){const e=[];let t=-1,i=0,r=0;for(;++t55295&&o<57344){const a=n.charCodeAt(t+1);o<56320&&a>56319&&a<57344?(s=String.fromCharCode(o,a),r=1):s="�"}else s=String.fromCharCode(o);s&&(e.push(n.slice(i,t),encodeURIComponent(s)),i=t+r+1,s=""),r&&(t+=r,r=0)}return e.join("")+n.slice(i)}function Io(n,e,t,i){const r=i?i-1:Number.POSITIVE_INFINITY;let o=0;return s;function s(l){return Dr(l)?(n.enter(t),a(l)):e(l)}function a(l){return Dr(l)&&o++s))return;const D=e.events.length;let A=D,M,W;for(;A--;)if(e.events[A][0]==="exit"&&e.events[A][1].type==="chunkFlow"){if(M){W=e.events[A][1].end;break}M=!0}for(C(i),L=D;Lw;){const F=t[S];e.containerState=F[1],F[0].exit.call(e,n)}t.length=w}function v(){r.write([null]),o=void 0,r=void 0,e.containerState._closeFlow=void 0}}function Fst(n,e,t){return Io(n,n.attempt(this.parser.constructs.document,e,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function ufe(n){if(n===null||Nu(n)||Ist(n))return 1;if(yst(n))return 2}function fz(n,e,t){const i=[];let r=-1;for(;++r1&&n[t][1].end.offset-n[t][1].start.offset>1?2:1;const d=Object.assign({},n[i][1].end),h=Object.assign({},n[t][1].start);cfe(d,-l),cfe(h,l),s={type:l>1?"strongSequence":"emphasisSequence",start:d,end:Object.assign({},n[i][1].end)},a={type:l>1?"strongSequence":"emphasisSequence",start:Object.assign({},n[t][1].start),end:h},o={type:l>1?"strongText":"emphasisText",start:Object.assign({},n[i][1].end),end:Object.assign({},n[t][1].start)},r={type:l>1?"strong":"emphasis",start:Object.assign({},s.start),end:Object.assign({},a.end)},n[i][1].end=Object.assign({},s.start),n[t][1].start=Object.assign({},a.end),u=[],n[i][1].end.offset-n[i][1].start.offset&&(u=cd(u,[["enter",n[i][1],e],["exit",n[i][1],e]])),u=cd(u,[["enter",r,e],["enter",s,e],["exit",s,e],["enter",o,e]]),u=cd(u,fz(e.parser.constructs.insideSpan.null,n.slice(i+1,t),e)),u=cd(u,[["exit",o,e],["enter",a,e],["exit",a,e],["exit",r,e]]),n[t][1].end.offset-n[t][1].start.offset?(c=2,u=cd(u,[["enter",n[t][1],e],["exit",n[t][1],e]])):c=0,cf(n,i-1,t-i+3,u),t=i+u.length-c-2;break}}for(t=-1;++t0&&Dr(L)?Io(n,v,"linePrefix",o+1)(L):v(L)}function v(L){return L===null||mi(L)?n.check(mfe,f,S)(L):(n.enter("codeFlowValue"),w(L))}function w(L){return L===null||mi(L)?(n.exit("codeFlowValue"),v(L)):(n.consume(L),w)}function S(L){return n.exit("codeFenced"),e(L)}function F(L,D,A){let M=0;return W;function W(z){return L.enter("lineEnding"),L.consume(z),L.exit("lineEnding"),Z}function Z(z){return L.enter("codeFencedFence"),Dr(z)?Io(L,T,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(z):T(z)}function T(z){return z===a?(L.enter("codeFencedFenceSequence"),E(z)):A(z)}function E(z){return z===a?(M++,L.consume(z),E):M>=s?(L.exit("codeFencedFenceSequence"),Dr(z)?Io(L,V,"whitespace")(z):V(z)):A(z)}function V(z){return z===null||mi(z)?(L.exit("codeFencedFence"),D(z)):A(z)}}}function Gst(n,e,t){const i=this;return r;function r(s){return s===null?t(s):(n.enter("lineEnding"),n.consume(s),n.exit("lineEnding"),o)}function o(s){return i.parser.lazy[i.now().line]?t(s):e(s)}}const bz={name:"codeIndented",tokenize:Xst},Vst={tokenize:Pst,partial:!0};function Xst(n,e,t){const i=this;return r;function r(u){return n.enter("codeIndented"),Io(n,o,"linePrefix",5)(u)}function o(u){const c=i.events[i.events.length-1];return c&&c[1].type==="linePrefix"&&c[2].sliceSerialize(c[1],!0).length>=4?s(u):t(u)}function s(u){return u===null?l(u):mi(u)?n.attempt(Vst,s,l)(u):(n.enter("codeFlowValue"),a(u))}function a(u){return u===null||mi(u)?(n.exit("codeFlowValue"),s(u)):(n.consume(u),a)}function l(u){return n.exit("codeIndented"),e(u)}}function Pst(n,e,t){const i=this;return r;function r(s){return i.parser.lazy[i.now().line]?t(s):mi(s)?(n.enter("lineEnding"),n.consume(s),n.exit("lineEnding"),r):Io(n,o,"linePrefix",5)(s)}function o(s){const a=i.events[i.events.length-1];return a&&a[1].type==="linePrefix"&&a[2].sliceSerialize(a[1],!0).length>=4?e(s):mi(s)?r(s):t(s)}}const Ost={name:"codeText",tokenize:Yst,resolve:Bst,previous:zst};function Bst(n){let e=n.length-4,t=3,i,r;if((n[t][1].type==="lineEnding"||n[t][1].type==="space")&&(n[e][1].type==="lineEnding"||n[e][1].type==="space")){for(i=t;++i=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return ethis.left.length?this.right.slice(this.right.length-i+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-i+this.left.length).reverse())}splice(e,t,i){const r=t||0;this.setCursor(Math.trunc(e));const o=this.right.splice(this.right.length-r,Number.POSITIVE_INFINITY);return i&&mF(this.left,i),o.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(e){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(e)}pushMany(e){this.setCursor(Number.POSITIVE_INFINITY),mF(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),mF(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0))if(e=4?e(s):n.interrupt(i.parser.constructs.flow,t,e)(s)}}function bfe(n,e,t,i,r,o,s,a,l){const u=l||Number.POSITIVE_INFINITY;let c=0;return d;function d(C){return C===60?(n.enter(i),n.enter(r),n.enter(o),n.consume(C),n.exit(o),h):C===null||C===32||C===41||gz(C)?t(C):(n.enter(i),n.enter(s),n.enter(a),n.enter("chunkString",{contentType:"string"}),f(C))}function h(C){return C===62?(n.enter(o),n.consume(C),n.exit(o),n.exit(r),n.exit(i),e):(n.enter(a),n.enter("chunkString",{contentType:"string"}),g(C))}function g(C){return C===62?(n.exit("chunkString"),n.exit(a),h(C)):C===null||C===60||mi(C)?t(C):(n.consume(C),C===92?m:g)}function m(C){return C===60||C===62||C===92?(n.consume(C),g):g(C)}function f(C){return!c&&(C===null||C===41||Nu(C))?(n.exit("chunkString"),n.exit(a),n.exit(s),n.exit(i),e(C)):c999||g===null||g===91||g===93&&!l||g===94&&!a&&"_hiddenFootnoteSupport"in s.parser.constructs?t(g):g===93?(n.exit(o),n.enter(r),n.consume(g),n.exit(r),n.exit(i),e):mi(g)?(n.enter("lineEnding"),n.consume(g),n.exit("lineEnding"),c):(n.enter("chunkString",{contentType:"string"}),d(g))}function d(g){return g===null||g===91||g===93||mi(g)||a++>999?(n.exit("chunkString"),c(g)):(n.consume(g),l||(l=!Dr(g)),g===92?h:d)}function h(g){return g===91||g===92||g===93?(n.consume(g),a++,d):d(g)}}function vfe(n,e,t,i,r,o){let s;return a;function a(h){return h===34||h===39||h===40?(n.enter(i),n.enter(r),n.consume(h),n.exit(r),s=h===40?41:h,l):t(h)}function l(h){return h===s?(n.enter(r),n.consume(h),n.exit(r),n.exit(i),e):(n.enter(o),u(h))}function u(h){return h===s?(n.exit(o),l(s)):h===null?t(h):mi(h)?(n.enter("lineEnding"),n.consume(h),n.exit("lineEnding"),Io(n,u,"linePrefix")):(n.enter("chunkString",{contentType:"string"}),c(h))}function c(h){return h===s||h===null||mi(h)?(n.exit("chunkString"),u(h)):(n.consume(h),h===92?d:c)}function d(h){return h===s||h===92?(n.consume(h),c):c(h)}}function fF(n,e){let t;return i;function i(r){return mi(r)?(n.enter("lineEnding"),n.consume(r),n.exit("lineEnding"),t=!0,i):Dr(r)?Io(n,i,t?"linePrefix":"lineSuffix")(r):e(r)}}const qst={name:"definition",tokenize:tat},eat={tokenize:nat,partial:!0};function tat(n,e,t){const i=this;let r;return o;function o(g){return n.enter("definition"),s(g)}function s(g){return Cfe.call(i,n,a,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(g)}function a(g){return r=TI(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)),g===58?(n.enter("definitionMarker"),n.consume(g),n.exit("definitionMarker"),l):t(g)}function l(g){return Nu(g)?fF(n,u)(g):u(g)}function u(g){return bfe(n,c,t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(g)}function c(g){return n.attempt(eat,d,d)(g)}function d(g){return Dr(g)?Io(n,h,"whitespace")(g):h(g)}function h(g){return g===null||mi(g)?(n.exit("definition"),i.parser.defined.push(r),e(g)):t(g)}}function nat(n,e,t){return i;function i(a){return Nu(a)?fF(n,r)(a):t(a)}function r(a){return vfe(n,o,t,"definitionTitle","definitionTitleMarker","definitionTitleString")(a)}function o(a){return Dr(a)?Io(n,s,"whitespace")(a):s(a)}function s(a){return a===null||mi(a)?e(a):t(a)}}const iat={name:"hardBreakEscape",tokenize:rat};function rat(n,e,t){return i;function i(o){return n.enter("hardBreakEscape"),n.consume(o),r}function r(o){return mi(o)?(n.exit("hardBreakEscape"),e(o)):t(o)}}const oat={name:"headingAtx",tokenize:aat,resolve:sat};function sat(n,e){let t=n.length-2,i=3,r,o;return n[i][1].type==="whitespace"&&(i+=2),t-2>i&&n[t][1].type==="whitespace"&&(t-=2),n[t][1].type==="atxHeadingSequence"&&(i===t-1||t-4>i&&n[t-2][1].type==="whitespace")&&(t-=i+1===t?2:4),t>i&&(r={type:"atxHeadingText",start:n[i][1].start,end:n[t][1].end},o={type:"chunkText",start:n[i][1].start,end:n[t][1].end,contentType:"text"},cf(n,i,t-i+1,[["enter",r,e],["enter",o,e],["exit",o,e],["exit",r,e]])),n}function aat(n,e,t){let i=0;return r;function r(c){return n.enter("atxHeading"),o(c)}function o(c){return n.enter("atxHeadingSequence"),s(c)}function s(c){return c===35&&i++<6?(n.consume(c),s):c===null||Nu(c)?(n.exit("atxHeadingSequence"),a(c)):t(c)}function a(c){return c===35?(n.enter("atxHeadingSequence"),l(c)):c===null||mi(c)?(n.exit("atxHeading"),e(c)):Dr(c)?Io(n,a,"whitespace")(c):(n.enter("atxHeadingText"),u(c))}function l(c){return c===35?(n.consume(c),l):(n.exit("atxHeadingSequence"),a(c))}function u(c){return c===null||c===35||Nu(c)?(n.exit("atxHeadingText"),a(c)):(n.consume(c),u)}}const lat=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],yfe=["pre","script","style","textarea"],uat={name:"htmlFlow",tokenize:gat,resolveTo:hat,concrete:!0},cat={tokenize:fat,partial:!0},dat={tokenize:mat,partial:!0};function hat(n){let e=n.length;for(;e--&&!(n[e][0]==="enter"&&n[e][1].type==="htmlFlow"););return e>1&&n[e-2][1].type==="linePrefix"&&(n[e][1].start=n[e-2][1].start,n[e+1][1].start=n[e-2][1].start,n.splice(e-2,2)),n}function gat(n,e,t){const i=this;let r,o,s,a,l;return u;function u(R){return c(R)}function c(R){return n.enter("htmlFlow"),n.enter("htmlFlowData"),n.consume(R),d}function d(R){return R===33?(n.consume(R),h):R===47?(n.consume(R),o=!0,f):R===63?(n.consume(R),r=3,i.interrupt?e:k):xg(R)?(n.consume(R),s=String.fromCharCode(R),b):t(R)}function h(R){return R===45?(n.consume(R),r=2,g):R===91?(n.consume(R),r=5,a=0,m):xg(R)?(n.consume(R),r=4,i.interrupt?e:k):t(R)}function g(R){return R===45?(n.consume(R),i.interrupt?e:k):t(R)}function m(R){const ee="CDATA[";return R===ee.charCodeAt(a++)?(n.consume(R),a===ee.length?i.interrupt?e:T:m):t(R)}function f(R){return xg(R)?(n.consume(R),s=String.fromCharCode(R),b):t(R)}function b(R){if(R===null||R===47||R===62||Nu(R)){const ee=R===47,oe=s.toLowerCase();return!ee&&!o&&yfe.includes(oe)?(r=1,i.interrupt?e(R):T(R)):lat.includes(s.toLowerCase())?(r=6,ee?(n.consume(R),C):i.interrupt?e(R):T(R)):(r=7,i.interrupt&&!i.parser.lazy[i.now().line]?t(R):o?v(R):w(R))}return R===45||bc(R)?(n.consume(R),s+=String.fromCharCode(R),b):t(R)}function C(R){return R===62?(n.consume(R),i.interrupt?e:T):t(R)}function v(R){return Dr(R)?(n.consume(R),v):W(R)}function w(R){return R===47?(n.consume(R),W):R===58||R===95||xg(R)?(n.consume(R),S):Dr(R)?(n.consume(R),w):W(R)}function S(R){return R===45||R===46||R===58||R===95||bc(R)?(n.consume(R),S):F(R)}function F(R){return R===61?(n.consume(R),L):Dr(R)?(n.consume(R),F):w(R)}function L(R){return R===null||R===60||R===61||R===62||R===96?t(R):R===34||R===39?(n.consume(R),l=R,D):Dr(R)?(n.consume(R),L):A(R)}function D(R){return R===l?(n.consume(R),l=null,M):R===null||mi(R)?t(R):(n.consume(R),D)}function A(R){return R===null||R===34||R===39||R===47||R===60||R===61||R===62||R===96||Nu(R)?F(R):(n.consume(R),A)}function M(R){return R===47||R===62||Dr(R)?w(R):t(R)}function W(R){return R===62?(n.consume(R),Z):t(R)}function Z(R){return R===null||mi(R)?T(R):Dr(R)?(n.consume(R),Z):t(R)}function T(R){return R===45&&r===2?(n.consume(R),O):R===60&&r===1?(n.consume(R),P):R===62&&r===4?(n.consume(R),X):R===63&&r===3?(n.consume(R),k):R===93&&r===5?(n.consume(R),Y):mi(R)&&(r===6||r===7)?(n.exit("htmlFlowData"),n.check(cat,U,E)(R)):R===null||mi(R)?(n.exit("htmlFlowData"),E(R)):(n.consume(R),T)}function E(R){return n.check(dat,V,U)(R)}function V(R){return n.enter("lineEnding"),n.consume(R),n.exit("lineEnding"),z}function z(R){return R===null||mi(R)?E(R):(n.enter("htmlFlowData"),T(R))}function O(R){return R===45?(n.consume(R),k):T(R)}function P(R){return R===47?(n.consume(R),s="",B):T(R)}function B(R){if(R===62){const ee=s.toLowerCase();return yfe.includes(ee)?(n.consume(R),X):T(R)}return xg(R)&&s.length<8?(n.consume(R),s+=String.fromCharCode(R),B):T(R)}function Y(R){return R===93?(n.consume(R),k):T(R)}function k(R){return R===62?(n.consume(R),X):R===45&&r===2?(n.consume(R),k):T(R)}function X(R){return R===null||mi(R)?(n.exit("htmlFlowData"),U(R)):(n.consume(R),X)}function U(R){return n.exit("htmlFlow"),e(R)}}function mat(n,e,t){const i=this;return r;function r(s){return mi(s)?(n.enter("lineEnding"),n.consume(s),n.exit("lineEnding"),o):t(s)}function o(s){return i.parser.lazy[i.now().line]?t(s):e(s)}}function fat(n,e,t){return i;function i(r){return n.enter("lineEnding"),n.consume(r),n.exit("lineEnding"),n.attempt(N9,e,t)}}const pat={name:"htmlText",tokenize:bat};function bat(n,e,t){const i=this;let r,o,s;return a;function a(k){return n.enter("htmlText"),n.enter("htmlTextData"),n.consume(k),l}function l(k){return k===33?(n.consume(k),u):k===47?(n.consume(k),F):k===63?(n.consume(k),w):xg(k)?(n.consume(k),A):t(k)}function u(k){return k===45?(n.consume(k),c):k===91?(n.consume(k),o=0,m):xg(k)?(n.consume(k),v):t(k)}function c(k){return k===45?(n.consume(k),g):t(k)}function d(k){return k===null?t(k):k===45?(n.consume(k),h):mi(k)?(s=d,P(k)):(n.consume(k),d)}function h(k){return k===45?(n.consume(k),g):d(k)}function g(k){return k===62?O(k):k===45?h(k):d(k)}function m(k){const X="CDATA[";return k===X.charCodeAt(o++)?(n.consume(k),o===X.length?f:m):t(k)}function f(k){return k===null?t(k):k===93?(n.consume(k),b):mi(k)?(s=f,P(k)):(n.consume(k),f)}function b(k){return k===93?(n.consume(k),C):f(k)}function C(k){return k===62?O(k):k===93?(n.consume(k),C):f(k)}function v(k){return k===null||k===62?O(k):mi(k)?(s=v,P(k)):(n.consume(k),v)}function w(k){return k===null?t(k):k===63?(n.consume(k),S):mi(k)?(s=w,P(k)):(n.consume(k),w)}function S(k){return k===62?O(k):w(k)}function F(k){return xg(k)?(n.consume(k),L):t(k)}function L(k){return k===45||bc(k)?(n.consume(k),L):D(k)}function D(k){return mi(k)?(s=D,P(k)):Dr(k)?(n.consume(k),D):O(k)}function A(k){return k===45||bc(k)?(n.consume(k),A):k===47||k===62||Nu(k)?M(k):t(k)}function M(k){return k===47?(n.consume(k),O):k===58||k===95||xg(k)?(n.consume(k),W):mi(k)?(s=M,P(k)):Dr(k)?(n.consume(k),M):O(k)}function W(k){return k===45||k===46||k===58||k===95||bc(k)?(n.consume(k),W):Z(k)}function Z(k){return k===61?(n.consume(k),T):mi(k)?(s=Z,P(k)):Dr(k)?(n.consume(k),Z):M(k)}function T(k){return k===null||k===60||k===61||k===62||k===96?t(k):k===34||k===39?(n.consume(k),r=k,E):mi(k)?(s=T,P(k)):Dr(k)?(n.consume(k),T):(n.consume(k),V)}function E(k){return k===r?(n.consume(k),r=void 0,z):k===null?t(k):mi(k)?(s=E,P(k)):(n.consume(k),E)}function V(k){return k===null||k===34||k===39||k===60||k===61||k===96?t(k):k===47||k===62||Nu(k)?M(k):(n.consume(k),V)}function z(k){return k===47||k===62||Nu(k)?M(k):t(k)}function O(k){return k===62?(n.consume(k),n.exit("htmlTextData"),n.exit("htmlText"),e):t(k)}function P(k){return n.exit("htmlTextData"),n.enter("lineEnding"),n.consume(k),n.exit("lineEnding"),B}function B(k){return Dr(k)?Io(n,Y,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(k):Y(k)}function Y(k){return n.enter("htmlTextData"),s(k)}}const Cz={name:"labelEnd",tokenize:Sat,resolveTo:wat,resolveAll:Iat},Cat={tokenize:xat},vat={tokenize:Lat},yat={tokenize:Fat};function Iat(n){let e=-1;for(;++e=3&&(u===null||mi(u))?(n.exit("thematicBreak"),e(u)):t(u)}function l(u){return u===r?(n.consume(u),i++,l):(n.exit("thematicBreakSequence"),Dr(u)?Io(n,a,"whitespace")(u):a(u))}}const ku={name:"list",tokenize:Eat,continuation:{tokenize:Wat},exit:Gat},Zat={tokenize:Vat,partial:!0},Tat={tokenize:Rat,partial:!0};function Eat(n,e,t){const i=this,r=i.events[i.events.length-1];let o=r&&r[1].type==="linePrefix"?r[2].sliceSerialize(r[1],!0).length:0,s=0;return a;function a(g){const m=i.containerState.type||(g===42||g===43||g===45?"listUnordered":"listOrdered");if(m==="listUnordered"?!i.containerState.marker||g===i.containerState.marker:mz(g)){if(i.containerState.type||(i.containerState.type=m,n.enter(m,{_container:!0})),m==="listUnordered")return n.enter("listItemPrefix"),g===42||g===45?n.check(k9,t,u)(g):u(g);if(!i.interrupt||g===49)return n.enter("listItemPrefix"),n.enter("listItemValue"),l(g)}return t(g)}function l(g){return mz(g)&&++s<10?(n.consume(g),l):(!i.interrupt||s<2)&&(i.containerState.marker?g===i.containerState.marker:g===41||g===46)?(n.exit("listItemValue"),u(g)):t(g)}function u(g){return n.enter("listItemMarker"),n.consume(g),n.exit("listItemMarker"),i.containerState.marker=i.containerState.marker||g,n.check(N9,i.interrupt?t:c,n.attempt(Zat,h,d))}function c(g){return i.containerState.initialBlankLine=!0,o++,h(g)}function d(g){return Dr(g)?(n.enter("listItemPrefixWhitespace"),n.consume(g),n.exit("listItemPrefixWhitespace"),h):t(g)}function h(g){return i.containerState.size=o+i.sliceSerialize(n.exit("listItemPrefix"),!0).length,e(g)}}function Wat(n,e,t){const i=this;return i.containerState._closeFlow=void 0,n.check(N9,r,o);function r(a){return i.containerState.furtherBlankLines=i.containerState.furtherBlankLines||i.containerState.initialBlankLine,Io(n,e,"listItemIndent",i.containerState.size+1)(a)}function o(a){return i.containerState.furtherBlankLines||!Dr(a)?(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,s(a)):(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,n.attempt(Tat,e,s)(a))}function s(a){return i.containerState._closeFlow=!0,i.interrupt=void 0,Io(n,n.attempt(ku,e,t),"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a)}}function Rat(n,e,t){const i=this;return Io(n,r,"listItemIndent",i.containerState.size+1);function r(o){const s=i.events[i.events.length-1];return s&&s[1].type==="listItemIndent"&&s[2].sliceSerialize(s[1],!0).length===i.containerState.size?e(o):t(o)}}function Gat(n){n.exit(this.containerState.type)}function Vat(n,e,t){const i=this;return Io(n,r,"listItemPrefixWhitespace",i.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function r(o){const s=i.events[i.events.length-1];return!Dr(o)&&s&&s[1].type==="listItemPrefixWhitespace"?e(o):t(o)}}const Ife={name:"setextUnderline",tokenize:Pat,resolveTo:Xat};function Xat(n,e){let t=n.length,i,r,o;for(;t--;)if(n[t][0]==="enter"){if(n[t][1].type==="content"){i=t;break}n[t][1].type==="paragraph"&&(r=t)}else n[t][1].type==="content"&&n.splice(t,1),!o&&n[t][1].type==="definition"&&(o=t);const s={type:"setextHeading",start:Object.assign({},n[r][1].start),end:Object.assign({},n[n.length-1][1].end)};return n[r][1].type="setextHeadingText",o?(n.splice(r,0,["enter",s,e]),n.splice(o+1,0,["exit",n[i][1],e]),n[i][1].end=Object.assign({},n[o][1].end)):n[i][1]=s,n.push(["exit",s,e]),n}function Pat(n,e,t){const i=this;let r;return o;function o(u){let c=i.events.length,d;for(;c--;)if(i.events[c][1].type!=="lineEnding"&&i.events[c][1].type!=="linePrefix"&&i.events[c][1].type!=="content"){d=i.events[c][1].type==="paragraph";break}return!i.parser.lazy[i.now().line]&&(i.interrupt||d)?(n.enter("setextHeadingLine"),r=u,s(u)):t(u)}function s(u){return n.enter("setextHeadingLineSequence"),a(u)}function a(u){return u===r?(n.consume(u),a):(n.exit("setextHeadingLineSequence"),Dr(u)?Io(n,l,"lineSuffix")(u):l(u))}function l(u){return u===null||mi(u)?(n.exit("setextHeadingLine"),e(u)):t(u)}}const Oat={tokenize:Bat};function Bat(n){const e=this,t=n.attempt(N9,i,n.attempt(this.parser.constructs.flowInitial,r,Io(n,n.attempt(this.parser.constructs.flow,r,n.attempt(Jst,r)),"linePrefix")));return t;function i(o){if(o===null){n.consume(o);return}return n.enter("lineEndingBlank"),n.consume(o),n.exit("lineEndingBlank"),e.currentConstruct=void 0,t}function r(o){if(o===null){n.consume(o);return}return n.enter("lineEnding"),n.consume(o),n.exit("lineEnding"),e.currentConstruct=void 0,t}}const zat={resolveAll:Sfe()},Yat=wfe("string"),Hat=wfe("text");function wfe(n){return{tokenize:e,resolveAll:Sfe(n==="text"?Uat:void 0)};function e(t){const i=this,r=this.parser.constructs[n],o=t.attempt(r,s,a);return s;function s(c){return u(c)?o(c):a(c)}function a(c){if(c===null){t.consume(c);return}return t.enter("data"),t.consume(c),l}function l(c){return u(c)?(t.exit("data"),o(c)):(t.consume(c),l)}function u(c){if(c===null)return!0;const d=r[c];let h=-1;if(d)for(;++h-1){const a=s[0];typeof a=="string"?s[0]=a.slice(i):s.shift()}o>0&&s.push(n[r].slice(0,o))}return s}function jat(n,e){let t=-1;const i=[];let r;for(;++t0){const Oe=Ce.tokenStack[Ce.tokenStack.length-1];(Oe[1]||_fe).call(Ce,void 0,Oe[0])}for(te.position={start:hb(q.length>0?q[0][1].start:{line:1,column:1,offset:0}),end:hb(q.length>0?q[q.length-2][1].end:{line:1,column:1,offset:0})},Ae=-1;++Ae1?"-"+a:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(s)}]};n.patch(e,l);const u={type:"element",tagName:"sup",properties:{},children:[l]};return n.patch(e,u),n.applyData(e,u)}function mlt(n,e){const t={type:"element",tagName:"h"+e.depth,properties:{},children:n.all(e)};return n.patch(e,t),n.applyData(e,t)}function flt(n,e){if(n.options.allowDangerousHtml){const t={type:"raw",value:e.value};return n.patch(e,t),n.applyData(e,t)}}function Dfe(n,e){const t=e.referenceType;let i="]";if(t==="collapsed"?i+="[]":t==="full"&&(i+="["+(e.label||e.identifier)+"]"),e.type==="imageReference")return[{type:"text",value:"!["+e.alt+i}];const r=n.all(e),o=r[0];o&&o.type==="text"?o.value="["+o.value:r.unshift({type:"text",value:"["});const s=r[r.length-1];return s&&s.type==="text"?s.value+=i:r.push({type:"text",value:i}),r}function plt(n,e){const t=String(e.identifier).toUpperCase(),i=n.definitionById.get(t);if(!i)return Dfe(n,e);const r={src:EI(i.url||""),alt:e.alt};i.title!==null&&i.title!==void 0&&(r.title=i.title);const o={type:"element",tagName:"img",properties:r,children:[]};return n.patch(e,o),n.applyData(e,o)}function blt(n,e){const t={src:EI(e.url)};e.alt!==null&&e.alt!==void 0&&(t.alt=e.alt),e.title!==null&&e.title!==void 0&&(t.title=e.title);const i={type:"element",tagName:"img",properties:t,children:[]};return n.patch(e,i),n.applyData(e,i)}function Clt(n,e){const t={type:"text",value:e.value.replace(/\r?\n|\r/g," ")};n.patch(e,t);const i={type:"element",tagName:"code",properties:{},children:[t]};return n.patch(e,i),n.applyData(e,i)}function vlt(n,e){const t=String(e.identifier).toUpperCase(),i=n.definitionById.get(t);if(!i)return Dfe(n,e);const r={href:EI(i.url||"")};i.title!==null&&i.title!==void 0&&(r.title=i.title);const o={type:"element",tagName:"a",properties:r,children:n.all(e)};return n.patch(e,o),n.applyData(e,o)}function ylt(n,e){const t={href:EI(e.url)};e.title!==null&&e.title!==void 0&&(t.title=e.title);const i={type:"element",tagName:"a",properties:t,children:n.all(e)};return n.patch(e,i),n.applyData(e,i)}function Ilt(n,e,t){const i=n.all(e),r=t?wlt(t):Afe(e),o={},s=[];if(typeof e.checked=="boolean"){const c=i[0];let d;c&&c.type==="element"&&c.tagName==="p"?d=c:(d={type:"element",tagName:"p",properties:{},children:[]},i.unshift(d)),d.children.length>0&&d.children.unshift({type:"text",value:" "}),d.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:e.checked,disabled:!0},children:[]}),o.className=["task-list-item"]}let a=-1;for(;++a1}function Slt(n,e){const t={},i=n.all(e);let r=-1;for(typeof e.start=="number"&&e.start!==1&&(t.start=e.start);++r0){const s={type:"element",tagName:"tbody",properties:{},children:n.wrap(t,!0)},a=sz(e.children[1]),l=Kme(e.children[e.children.length-1]);a&&l&&(s.position={start:a,end:l}),r.push(s)}const o={type:"element",tagName:"table",properties:{},children:n.wrap(r,!0)};return n.patch(e,o),n.applyData(e,o)}function Dlt(n,e,t){const i=t?t.children:void 0,o=(i?i.indexOf(e):1)===0?"th":"td",s=t&&t.type==="table"?t.align:void 0,a=s?s.length:e.children.length;let l=-1;const u=[];for(;++l0,!0),i[0]),r=i.index+i[0].length,i=t.exec(e);return o.push(Mfe(e.slice(r),r>0,!1)),o.join("")}function Mfe(n,e,t){let i=0,r=n.length;if(e){let o=n.codePointAt(i);for(;o===Nfe||o===kfe;)i++,o=n.codePointAt(i)}if(t){let o=n.codePointAt(r-1);for(;o===Nfe||o===kfe;)r--,o=n.codePointAt(r-1)}return r>i?n.slice(i,r):""}function klt(n,e){const t={type:"text",value:Nlt(String(e.value))};return n.patch(e,t),n.applyData(e,t)}function Mlt(n,e){const t={type:"element",tagName:"hr",properties:{},children:[]};return n.patch(e,t),n.applyData(e,t)}const Zlt={blockquote:llt,break:ult,code:clt,delete:dlt,emphasis:hlt,footnoteReference:glt,heading:mlt,html:flt,imageReference:plt,image:blt,inlineCode:Clt,linkReference:vlt,link:ylt,listItem:Ilt,list:Slt,paragraph:xlt,root:Llt,strong:Flt,table:_lt,tableCell:Alt,tableRow:Dlt,text:klt,thematicBreak:Mlt,toml:M9,yaml:M9,definition:M9,footnoteDefinition:M9};function M9(){}const Zfe=-1,Z9=0,T9=1,E9=2,yz=3,Iz=4,wz=5,Sz=6,Tfe=7,Efe=8,Wfe=typeof self=="object"?self:globalThis,Tlt=(n,e)=>{const t=(r,o)=>(n.set(o,r),r),i=r=>{if(n.has(r))return n.get(r);const[o,s]=e[r];switch(o){case Z9:case Zfe:return t(s,r);case T9:{const a=t([],r);for(const l of s)a.push(i(l));return a}case E9:{const a=t({},r);for(const[l,u]of s)a[i(l)]=i(u);return a}case yz:return t(new Date(s),r);case Iz:{const{source:a,flags:l}=s;return t(new RegExp(a,l),r)}case wz:{const a=t(new Map,r);for(const[l,u]of s)a.set(i(l),i(u));return a}case Sz:{const a=t(new Set,r);for(const l of s)a.add(i(l));return a}case Tfe:{const{name:a,message:l}=s;return t(new Wfe[a](l),r)}case Efe:return t(BigInt(s),r);case"BigInt":return t(Object(BigInt(s)),r)}return t(new Wfe[o](s),r)};return i},Rfe=n=>Tlt(new Map,n)(0),WI="",{toString:Elt}={},{keys:Wlt}=Object,pF=n=>{const e=typeof n;if(e!=="object"||!n)return[Z9,e];const t=Elt.call(n).slice(8,-1);switch(t){case"Array":return[T9,WI];case"Object":return[E9,WI];case"Date":return[yz,WI];case"RegExp":return[Iz,WI];case"Map":return[wz,WI];case"Set":return[Sz,WI]}return t.includes("Array")?[T9,t]:t.includes("Error")?[Tfe,t]:[E9,t]},W9=([n,e])=>n===Z9&&(e==="function"||e==="symbol"),Rlt=(n,e,t,i)=>{const r=(s,a)=>{const l=i.push(s)-1;return t.set(a,l),l},o=s=>{if(t.has(s))return t.get(s);let[a,l]=pF(s);switch(a){case Z9:{let c=s;switch(l){case"bigint":a=Efe,c=s.toString();break;case"function":case"symbol":if(n)throw new TypeError("unable to serialize "+l);c=null;break;case"undefined":return r([Zfe],s)}return r([a,c],s)}case T9:{if(l)return r([l,[...s]],s);const c=[],d=r([a,c],s);for(const h of s)c.push(o(h));return d}case E9:{if(l)switch(l){case"BigInt":return r([l,s.toString()],s);case"Boolean":case"Number":case"String":return r([l,s.valueOf()],s)}if(e&&"toJSON"in s)return o(s.toJSON());const c=[],d=r([a,c],s);for(const h of Wlt(s))(n||!W9(pF(s[h])))&&c.push([o(h),o(s[h])]);return d}case yz:return r([a,s.toISOString()],s);case Iz:{const{source:c,flags:d}=s;return r([a,{source:c,flags:d}],s)}case wz:{const c=[],d=r([a,c],s);for(const[h,g]of s)(n||!(W9(pF(h))||W9(pF(g))))&&c.push([o(h),o(g)]);return d}case Sz:{const c=[],d=r([a,c],s);for(const h of s)(n||!W9(pF(h)))&&c.push(o(h));return d}}const{message:u}=s;return r([a,{name:l,message:u}],s)};return o},Gfe=(n,{json:e,lossy:t}={})=>{const i=[];return Rlt(!(e||t),!!e,new Map,i)(n),i},R9=typeof structuredClone=="function"?(n,e)=>e&&("json"in e||"lossy"in e)?Rfe(Gfe(n,e)):structuredClone(n):(n,e)=>Rfe(Gfe(n,e));function Glt(n,e){const t=[{type:"text",value:"↩"}];return e>1&&t.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(e)}]}),t}function Vlt(n,e){return"Back to reference "+(n+1)+(e>1?"-"+e:"")}function Xlt(n){const e=typeof n.options.clobberPrefix=="string"?n.options.clobberPrefix:"user-content-",t=n.options.footnoteBackContent||Glt,i=n.options.footnoteBackLabel||Vlt,r=n.options.footnoteLabel||"Footnotes",o=n.options.footnoteLabelTagName||"h2",s=n.options.footnoteLabelProperties||{className:["sr-only"]},a=[];let l=-1;for(;++l0&&m.push({type:"text",value:" "});let v=typeof t=="string"?t:t(l,g);typeof v=="string"&&(v={type:"text",value:v}),m.push({type:"element",tagName:"a",properties:{href:"#"+e+"fnref-"+h+(g>1?"-"+g:""),dataFootnoteBackref:"",ariaLabel:typeof i=="string"?i:i(l,g),className:["data-footnote-backref"]},children:Array.isArray(v)?v:[v]})}const b=c[c.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const v=b.children[b.children.length-1];v&&v.type==="text"?v.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...m)}else c.push(...m);const C={type:"element",tagName:"li",properties:{id:e+"fn-"+h},children:n.wrap(c,!0)};n.patch(u,C),a.push(C)}if(a.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:o,properties:{...R9(s),id:"footnote-label"},children:[{type:"text",value:r}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:n.wrap(a,!0)},{type:"text",value:` +`}]}}const Vfe=function(n){if(n==null)return zlt;if(typeof n=="function")return G9(n);if(typeof n=="object")return Array.isArray(n)?Plt(n):Olt(n);if(typeof n=="string")return Blt(n);throw new Error("Expected function, string, or object as test")};function Plt(n){const e=[];let t=-1;for(;++t":""))+")"})}return h;function h(){let g=Xfe,m,f,b;if((!e||o(l,u,c[c.length-1]||void 0))&&(g=Klt(t(l,c)),g[0]===Pfe))return g;if("children"in l&&l.children){const C=l;if(C.children&&g[0]!==Ult)for(f=(i?C.children.length:-1)+s,b=c.concat(C);f>-1&&f0&&t.push({type:"text",value:` +`}),t}function Bfe(n){let e=0,t=n.charCodeAt(e);for(;t===9||t===32;)e++,t=n.charCodeAt(e);return n.slice(e)}function zfe(n,e){const t=Qlt(n,e),i=t.one(n,void 0),r=Xlt(t),o=Array.isArray(i)?{type:"root",children:i}:i||{type:"root",children:[]};return r&&o.children.push({type:"text",value:` +`},r),o}function nut(n,e){return n&&"run"in n?async function(t,i){const r=zfe(t,{file:i,...e});await n.run(r,i)}:function(t,i){return zfe(t,{file:i,...e||n})}}function Yfe(n){if(n)throw n}var V9=Object.prototype.hasOwnProperty,Hfe=Object.prototype.toString,Ufe=Object.defineProperty,Jfe=Object.getOwnPropertyDescriptor,Kfe=function(e){return typeof Array.isArray=="function"?Array.isArray(e):Hfe.call(e)==="[object Array]"},jfe=function(e){if(!e||Hfe.call(e)!=="[object Object]")return!1;var t=V9.call(e,"constructor"),i=e.constructor&&e.constructor.prototype&&V9.call(e.constructor.prototype,"isPrototypeOf");if(e.constructor&&!t&&!i)return!1;var r;for(r in e);return typeof r>"u"||V9.call(e,r)},Qfe=function(e,t){Ufe&&t.name==="__proto__"?Ufe(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},$fe=function(e,t){if(t==="__proto__")if(V9.call(e,t)){if(Jfe)return Jfe(e,t).value}else return;return e[t]},iut=function n(){var e,t,i,r,o,s,a=arguments[0],l=1,u=arguments.length,c=!1;for(typeof a=="boolean"&&(c=a,a=arguments[1]||{},l=2),(a==null||typeof a!="object"&&typeof a!="function")&&(a={});ls.length;let l;a&&s.push(r);try{l=n.apply(this,s)}catch(u){const c=u;if(a&&t)throw c;return r(c)}a||(l&&l.then&&typeof l.then=="function"?l.then(o,r):l instanceof Error?r(l):o(l))}function r(s,...a){t||(t=!0,e(s,...a))}function o(s){r(null,s)}}const Lg={basename:sut,dirname:aut,extname:lut,join:uut,sep:"/"};function sut(n,e){if(e!==void 0&&typeof e!="string")throw new TypeError('"ext" argument must be a string');bF(n);let t=0,i=-1,r=n.length,o;if(e===void 0||e.length===0||e.length>n.length){for(;r--;)if(n.codePointAt(r)===47){if(o){t=r+1;break}}else i<0&&(o=!0,i=r+1);return i<0?"":n.slice(t,i)}if(e===n)return"";let s=-1,a=e.length-1;for(;r--;)if(n.codePointAt(r)===47){if(o){t=r+1;break}}else s<0&&(o=!0,s=r+1),a>-1&&(n.codePointAt(r)===e.codePointAt(a--)?a<0&&(i=r):(a=-1,i=s));return t===i?i=s:i<0&&(i=n.length),n.slice(t,i)}function aut(n){if(bF(n),n.length===0)return".";let e=-1,t=n.length,i;for(;--t;)if(n.codePointAt(t)===47){if(i){e=t;break}}else i||(i=!0);return e<0?n.codePointAt(0)===47?"/":".":e===1&&n.codePointAt(0)===47?"//":n.slice(0,e)}function lut(n){bF(n);let e=n.length,t=-1,i=0,r=-1,o=0,s;for(;e--;){const a=n.codePointAt(e);if(a===47){if(s){i=e+1;break}continue}t<0&&(s=!0,t=e+1),a===46?r<0?r=e:o!==1&&(o=1):r>-1&&(o=-1)}return r<0||t<0||o===0||o===1&&r===t-1&&r===i+1?"":n.slice(r,t)}function uut(...n){let e=-1,t;for(;++e0&&n.codePointAt(n.length-1)===47&&(t+="/"),e?"/"+t:t}function dut(n,e){let t="",i=0,r=-1,o=0,s=-1,a,l;for(;++s<=n.length;){if(s2){if(l=t.lastIndexOf("/"),l!==t.length-1){l<0?(t="",i=0):(t=t.slice(0,l),i=t.length-1-t.lastIndexOf("/")),r=s,o=0;continue}}else if(t.length>0){t="",i=0,r=s,o=0;continue}}e&&(t=t.length>0?t+"/..":"..",i=2)}else t.length>0?t+="/"+n.slice(r+1,s):t=n.slice(r+1,s),i=s-r-1;r=s,o=0}else a===46&&o>-1?o++:o=-1}return t}function bF(n){if(typeof n!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(n))}const hut={cwd:gut};function gut(){return"/"}function _z(n){return!!(n!==null&&typeof n=="object"&&"href"in n&&n.href&&"protocol"in n&&n.protocol&&n.auth===void 0)}function mut(n){if(typeof n=="string")n=new URL(n);else if(!_z(n)){const e=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+n+"`");throw e.code="ERR_INVALID_ARG_TYPE",e}if(n.protocol!=="file:"){const e=new TypeError("The URL must be of scheme file");throw e.code="ERR_INVALID_URL_SCHEME",e}return fut(n)}function fut(n){if(n.hostname!==""){const i=new TypeError('File URL host must be "localhost" or empty on darwin');throw i.code="ERR_INVALID_FILE_URL_HOST",i}const e=n.pathname;let t=-1;for(;++t0){let[g,...m]=c;const f=i[h][1];Fz(f)&&Fz(g)&&(g=Lz(!0,f,g)),i[h]=[u,g,...m]}}}}const vut=new kz().freeze();function Mz(n,e){if(typeof e!="function")throw new TypeError("Cannot `"+n+"` without `parser`")}function Zz(n,e){if(typeof e!="function")throw new TypeError("Cannot `"+n+"` without `compiler`")}function Tz(n,e){if(e)throw new Error("Cannot call `"+n+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function tpe(n){if(!Fz(n)||typeof n.type!="string")throw new TypeError("Expected node, got `"+n+"`")}function npe(n,e,t){if(!t)throw new Error("`"+n+"` finished async. Use `"+e+"` instead")}function X9(n){return yut(n)?n:new qfe(n)}function yut(n){return!!(n&&typeof n=="object"&&"message"in n&&"messages"in n)}function Iut(n){return typeof n=="string"||wut(n)}function wut(n){return!!(n&&typeof n=="object"&&"byteLength"in n&&"byteOffset"in n)}const Sut="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",ipe=[],rpe={allowDangerousHtml:!0},xut=/^(https?|ircs?|mailto|xmpp)$/i,Lut=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function ope(n){const e=n.allowedElements,t=n.allowElement,i=n.children||"",r=n.className,o=n.components,s=n.disallowedElements,a=n.rehypePlugins||ipe,l=n.remarkPlugins||ipe,u=n.remarkRehypeOptions?{...n.remarkRehypeOptions,...rpe}:rpe,c=n.skipHtml,d=n.unwrapDisallowed,h=n.urlTransform||Fut,g=vut().use(alt).use(l).use(nut,u).use(a),m=new qfe;typeof i=="string"&&(m.value=i);for(const v of Lut)Object.hasOwn(n,v.from)&&(""+v.from+(v.to?"use `"+v.to+"` instead":"remove it")+Sut+v.id,void 0);const f=g.parse(m);let b=g.runSync(f,m);return r&&(b={type:"element",tagName:"div",properties:{className:r},children:b.type==="root"?b.children:[b]}),Ofe(b,C),Jot(b,{Fragment:qp.Fragment,components:o,ignoreInvalidStyle:!0,jsx:qp.jsx,jsxs:qp.jsxs,passKeys:!0,passNode:!0});function C(v,w,S){if(v.type==="raw"&&S&&typeof w=="number")return c?S.children.splice(w,1):S.children[w]={type:"text",value:v.value},w;if(v.type==="element"){let F;for(F in dz)if(Object.hasOwn(dz,F)&&Object.hasOwn(v.properties,F)){const L=v.properties[F],D=dz[F];(D===null||D.includes(v.tagName))&&(v.properties[F]=h(String(L||""),F,v))}}if(v.type==="element"){let F=e?!e.includes(v.tagName):s?s.includes(v.tagName):!1;if(!F&&t&&typeof w=="number"&&(F=!t(v,w,S)),F&&S&&typeof w=="number")return d&&v.children?S.children.splice(w,1,...v.children):S.children.splice(w,1),w}}}function Fut(n){const e=n.indexOf(":"),t=n.indexOf("?"),i=n.indexOf("#"),r=n.indexOf("/");return e<0||r>-1&&e>r||t>-1&&e>t||i>-1&&e>i||xut.test(n.slice(0,e))?n:""}const CF=({title:n,children:e})=>Rt("div",{css:Ji({position:"relative",fontSize:Qt.fontSize.xs,"& + &":{marginTop:"1em"}},"",""),children:[n&&ae("h3",{css:Ji({position:"relative",fontSize:Qt.fontSize.s,margin:"0 0 1em",color:Qt.color.primary,padding:"0.5em 0",borderBottom:`1px solid ${Qt.color.border}`},"",""),children:n}),ae("div",{children:e})]});var _ut={name:"1wanifb",styles:"opacity:0.6;font-weight:normal"};function spe(n){const e=/^([^<>]+)(<(.+)>)?$/.exec(n);return e?Rt("span",{children:[e[1],ae("small",{css:_ut,children:e[2]})]}):null}function Dut(n,e,t){return e||t?`${n}<${[t,e].filter(i=>i).join(",")}>`:n||"any"}function RI(n,e){return n.type==="array"&&n.items?`[${n.minItems&&n.minItems===n.maxItems?n.minItems:""}]${RI(n.items,e||n["x-id"])}`:Dut(n.type,n.format||"",n["x-id"]||e)}function Ez(n){let e={};if(n["x-enum-options"]){const t=n["x-enum-options"]||[];zO(t,i=>{e[i.value]=i.label})}else n["x-enum-varnames"]&&(e=sh(n["x-enum-varnames"],(t,i,r)=>{var o;return{...t,[n.enum[r]]:((o=n["x-enum-comments"])==null?void 0:o[i])||i}},{}));return e}function Aut(n){return Yje(["maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","maxItems","minItems","maxProperties","minProperties"],e=>rd(n,e))}function Nut(n){return rd(n,"minProperties")?n.minProperties:rd(n,"minItems")?n.minItems:rd(n,"minimum")?n.minimum:rd(n,"minLength")?n.minLength:n.type==="string"?"0":(n.type==="number"||n.type==="integer")&&n.format?Math.pow(2,Number(dI(n.format,/[^0-9]/g,""))-1)-1:"-∞"}function kut(n){return rd(n,"maxProperties")?n.maxProperties:rd(n,"maxItems")?n.maxItems:rd(n,"maximum")?n.maximum:rd(n,"maxLength")?n.maxLength:n.type==="string"&&n.format==="uint64"?"19":(n.type==="number"||n.type==="integer")&&n.format?Math.pow(2,Number(dI(n.format,/[^0-9]/g,""))-1)-1:"+∞"}function P9(n){return n["x-tag-validate"]?n["x-tag-validate"]:Aut(n)?n.pattern?`@r/${n.pattern}/`:`@${n.exclusiveMinimum?"(":"["}${Nut(n)},${kut(n)}${n.exclusiveMaximum?")":"]"}`:""}function O9(n){return n.default?` = ${n.type==="string"?JSON.stringify(n.default):n.default}`:""}var Mut={name:"wuc03j",styles:"font-size:0.8em;padding-left:1em;padding-bottom:0.6em"},Zut={name:"qqlf9q",styles:"display:flex;line-height:1.4;opacity:0.6"},Tut={name:"14o8nyr",styles:"font-weight:normal;opacity:0.8;margin-left:1em"};function ape(n){return n.enum?Rt("span",{style:{display:"block"},children:[spe(RI(n)),ae("div",{css:Mut,children:Kr(Ez(n),(e,t)=>Rt("div",{css:Zut,children:[ae("span",{children:t}),ae("span",{css:Tut,children:`// ${e}`})]},t))})]}):Rt("span",{children:[spe(RI(n)),Rt("span",{css:Ji({color:Qt.color.text,opacity:.8,fontSize:"0.8em"},"",""),children:[P9(n),O9(n)]})]})}const GI=n=>n.type==="object"||rd(n,"properties"),vF=n=>n.type==="array"||rd(n,"items");function Fg(n,e){if(Xs(n))return{};if(rd(n,"allOf"))return sh(n.allOf,(t,i)=>{const r={...t},o=Fg(i,e);return zO(o,(s,a)=>{switch(a){case"properties":r[a]={...r[a],...s};break;case"required":r[a]=Qje((r[a]||[]).concat(s));break;default:r[a]=s}}),r},{});if(Yce(n.$ref,"#/components/schemas/")){const t=dI(n.$ref,"#/components/schemas/","")||n["x-id"];if(e[t])return{...n,...Fg(e[t],e),"x-id":t,$ref:void 0}}if(GI(n)){const t=Bce(n.properties,i=>Fg(i,e));if(Bo(n.additionalProperties)){const i=Fg(n.additionalProperties,e);if(Bo(n.propertyNames)){const r=Fg(n.propertyNames,e);return{...n,additionalProperties:i,propertyNames:r}}return{...n,additionalProperties:i}}return{...n,properties:t}}return vF(n)?{...n,items:Fg(n.items,e)}:n}function Eut({deprecated:n,required:e,children:t}){return Rt(ah,{children:[ae("span",{css:[{color:Qt.color.text,opacity:.6,fontWeight:500},n&&{textDecoration:"line-through"},"",""],children:t}),!e&&ae("span",{style:{fontWeight:700,fontSize:Qt.fontSize.xs},children:"?"})]})}function Wut(n,e,t={}){if(n)return ae(Eut,{required:e,deprecated:t.deprecated,children:n})}var Rut={name:"1twbz2c",styles:"display:block;font-weight:bold;margin-bottom:1em"};const B9=n=>ae("span",{...n,css:Rut}),Gut=n=>ae(B9,{children:n});var Vut={name:"k3luw2",styles:"user-select:auto"},Xut={name:"1ww443i",styles:"max-width:200px"},Put={name:"s1rv5c",styles:"position:relative;white-space:nowrap"},Out={name:"s1rv5c",styles:"position:relative;white-space:nowrap"};function lpe({desc:n,prefix:e}){const t=(n||"").split(` +`);if(t.length>1){const i=t[0];return t.shift(),ae(cg,{css:Vut,title:ae(ope,{css:Xut,children:t.join(` + +`)}),children:Rt("span",{css:Put,children:[Rt("span",{children:[e,i]}),ae("span",{css:Ji({display:"inline-block",marginLeft:"0.5em",width:"1em",height:"1em",textAlign:"center",lineHeight:"1em",borderRadius:"100%",backgroundColor:Qt.color.primary,color:Qt.color.bg},"",""),children:"?"})]})})}return Rt("span",{css:Out,children:[e,n]})}var But={name:"1g46dg4",styles:"display:block;position:relative;padding-right:0.5em"},zut={name:"4zleql",styles:"display:block"};function Wz(n){const{schema:e,name:t,required:i,nameRenderer:r=Wut,typeRenderer:o=Gut}=n;return Rt("span",{css:Ji({fontSize:Qt.fontSize.xs,position:"relative",display:"flex",whiteSpace:"nowrap",lineHeight:1.4},"",""),children:[t&&ae("span",{css:But,children:r(t,!!i,e)}),e.description&&ae("span",{css:Ji({position:"absolute",top:"-0.8em",left:0,display:"block",lineHeight:1,fontSize:Qt.fontSize.xxs,opacity:.5,color:Qt.color.text},"",""),children:ae(lpe,{desc:e.description,prefix:"// "})}),ae("span",{css:zut,children:o(ape(e),e)})]})}var Yut={name:"zjik7",styles:"display:flex"},Hut={name:"zjik7",styles:"display:flex"},Uut={name:"1h7gt7o",styles:"opacity:0.5;font-weight:normal"};function z9(n,e,t){return vF(n)?ae(Wz,{name:e,required:t,schema:n,typeRenderer:i=>{const r=!!n["x-id"]&&!GI(n.items||{});return Rt("span",{children:[Rt("span",{css:Yut,children:[Rt(B9,{children:["[",n.maxItems&&n.maxItems===n.minItems?n.minItems:"","]"]}),z9(n.items||{},void 0,void 0)]}),r&&ae("span",{css:Ji({display:"block",lineHeight:1.4,fontSize:Qt.fontSize.xxs,opacity:.5,"&:hover":{opacity:1}},"",""),children:i})]})}},e):GI(n)?ae(Wz,{name:e,required:t,schema:n,typeRenderer:i=>{const r=Bo(n.additionalProperties);return Rt("div",{css:()=>[r&&{display:"flex"}],children:[r?ae(B9,{children:Rt("span",{css:Hut,children:[ae("span",{children:"map["}),ape(n.propertyNames||{type:"string"}),ae("span",{children:"]"})]})}):Rt(B9,{children:[i,ae("small",{css:Uut,children:"{}"})]}),ae("div",{children:r?ae(ah,{children:z9(n.additionalProperties)}):ae(ah,{children:Kr(UO(id(n.properties||{})),o=>{const s=(n.properties||{})[o];return ae("span",{css:()=>[{display:"block",position:"relative",padding:"0 1em"}],children:z9(s,o,oh(n.required||[],o))},o)})})})]})}},e):ae(Wz,{name:e,required:t,schema:n},e)}var Jut={name:"jq2lqr",styles:"padding:1.4em 1em;overflow-x:auto"};function upe({schema:n,schemas:e}){if(Xs(n))return null;const t=Fg(n,e);return ae("div",{css:Jut,children:z9(t)})}function Kut({operation:n}){const{openapiWithServiceInfo:e}=pg();return e?ae("div",{children:Kr(n.responses,(t,i)=>{var o;const r=((o=e.openapi.components)==null?void 0:o.schemas)||{};if(Xs(r))return null;if(t.$ref){const s=dI(t.$ref,"#/responses/","");return ae(cpe,{code:i,response:e.openapi.responses[s]||{},schemas:r},i)}return ae(cpe,{code:i,response:t,schemas:r},i)})}):null}var jut={name:"147rp59",styles:"flex:1;display:flex;align-items:flex-start"},Qut={name:"1m8038y",styles:"flex:1;margin-left:0.5em"},$ut={name:"maimdf",styles:"width:70%"};function cpe({code:n,response:e,schemas:t}){const i=Grt(e["x-status-errors"]);return Rt("div",{css:Ji({padding:"0.5em 0",borderBottom:`1px solid ${Qt.color.border}`,display:"flex",alignItems:"flex-start",lineHeight:2},"",""),children:[Rt("div",{css:jut,children:[ae("div",{children:ae(dpe,{code:n})}),Rt("div",{css:Qut,children:[ae("div",{children:Vrt(e.description)}),ae(tct,{httpErrorList:i})]})]}),ae("div",{css:$ut,children:!!e.content&&Kr(e.content,(r,o)=>Rt("div",{css:()=>({position:"relative",padding:"0.4em 0.6em",width:"100%",overflow:"auto"}),children:[ae("div",{css:Ji({color:Qt.color.text,fontSize:Qt.fontSize.xs,textAlign:"right"},"",""),children:o}),ae(upe,{schema:r.schema,schemas:t})]},o))})]})}function dpe({code:n}){return ae("div",{css:Ji({fontWeight:"bold",color:Xrt(n)},"",""),children:n})}var qut={name:"150rbz3",styles:"opacity:0.6;margin-left:0.5em;font-weight:bold"},ect={name:"cw7f1u",styles:"line-height:1;display:block"};function tct({httpErrorList:n}){return ae("div",{children:Kr(UO(n,"name"),(e,t)=>Rt("div",{children:[Rt("div",{css:Ji({fontWeight:"bold",marginRight:"0.5em",textDecoration:e.canBeTalkError?"underline":"none"},"",""),children:[e.name,ae("small",{css:qut,children:e.code})]}),ae("small",{css:ect,children:e.msg})]},`${e.code}${t}`))})}function nct(n,e={}){return dI(n,/{([\s\S]+?)}/g,(t,i)=>[].concat(e[i]??t).join(","))}function hpe(n){return e=>$p(e,t=>t.in===n)}function ict(n){return e=>Kr(hpe(n)(e),t=>t.name)}function rct(n,e){return sh(hpe(n)(e),(t,i)=>{var r;return{...t,[String(i.name)]:(r=i.schema)==null?void 0:r.default}},{})}function gpe(n,e,t){return{...rct(n,e),...HO(t,ict(n)(e))}}const Rz=(n="")=>n.includes("multipart/form-data"),oct=(n="")=>n.includes("application/json"),Gz=(n="")=>n.includes("application/x-www-form-urlencoded"),sct=n=>n.requestBody?Xce(id(_me(n.requestBody)))||"":Xce(n.produces||[])||"",act=(n,e)=>(t={})=>{var o,s,a,l,u;const i={method:n.method,url:n.basePath+nct(n.path||"",t),params:gpe("query",n.parameters||[],t),headers:LL(gpe("header",n.parameters||[],t),c=>!Oce(c))};(o=i.headers)!=null&&o.Referer&&delete i.headers.Referer,t.body&&(i.data=t.body);let r=sct(n)||"application/json";if(Gz(r)||Rz(r)){const c=Fg((l=(a=(s=n.requestBody)==null?void 0:s.content)==null?void 0:a[r])==null?void 0:l.schema,(u=e==null?void 0:e.components)==null?void 0:u.schemas);i.data=HO(t,id(c==null?void 0:c.properties)),e!=null&&e["x-original-swagger-version"]&&(r="multipart/form-data")}return i.data&&(i.headers={...i.headers,"Content-Type":r+";charset=UTF-8"}),i};function lct(){return{"User-Agent":globalThis.navigator.userAgent,Referer:`${globalThis.location.origin}${globalThis.location.pathname}`}}function uct(n){return HO(n,UO(id(n)))}var cct={name:"4zleql",styles:"display:block"},dct={name:"2wzutt",styles:"font-weight:bold;margin-right:0.5em"};function mpe({field:n,value:e}){return Rt("span",{css:cct,children:[Rt("span",{css:dct,children:[n,":"]}),Rt("span",{children:[e,"   "]})]})}function hct(n){const e=Rje(n,Oce);return Xs(e)?"":ub(e)}function gct(n,e){const t=LL(e,i=>!!i);return`${n}${hct(t)}`}var mct={name:"1efi8gv",styles:"font-weight:bold"},fct={name:"lugakg",styles:"font-weight:normal"};function pct({method:n,url:e,baseURL:t,params:i}){return Rt("span",{css:mct,children:[Uce(n),"  ",ae("span",{css:fct,children:gct((t||"")+e,i)}),"  HTTP/1.1   "]})}function bct(n,e){const t=(i,r)=>r instanceof File||r instanceof Blob?`${n} + Content-Disposition: form-data; name="${i}"${r.name?`; filename="${r.name}"`:""} + Content-Type: ${r.type} + + [File Content] + `:ws(r)?Kr(r,o=>t(i,o)).join(` +`):`${n} + Content-Disposition: form-data; name="${i}" + + ${Bo(r)?JSON.stringify(r):r} + `;return Kr(e,(i,r)=>t(r,i)).join(` +`)+`${n}--`}function Cct(n){var i;const e=(i=n==null?void 0:n.headers)==null?void 0:i["Content-Type"];let t=n.data;if(Rz(e)){const r="----WebKitFormBoundaryzYJBBCMGeui4wPWd";n.headers={...n.headers,"Content-Type":`multipart/form-data; boundary=${r}`},t=bct(r,n.data)}return Gz(e)&&(t=JSON.stringify(Bce(n.data,r=>Bo(r)&&!ws(r)?JSON.stringify(n.data,null,2):r))),oct(e)&&(t=JSON.stringify(n.data,null,2)),YO(t)?t:JSON.stringify(t)}const Y9={borderRadius:6,padding:"6px 8px",backgroundColor:Qt.color.primaryLight,overflowX:"auto"};var vct={name:"xda5ep",styles:"margin-top:12px"};function fpe({request:n={}}){return Rt("div",{css:[Y9,"white-space:nowrap;",""],children:[ae("div",{children:ae(pct,{params:n.params,method:n.method,baseURL:n.baseURL,url:n.url})}),ae("div",{css:vct,children:Kr(uct(hce(lct(),n.headers)),(e,t)=>ae(mpe,{field:t,value:e},t))}),!Xs(LL(n.data,e=>!!e))&&ae("pre",{children:ae("code",{children:Cct(n)})})]})}function yct(n={}){return Bo(n)&&oh(n["content-type"],"json")}function ppe(n){return new TextDecoder("utf-8").decode(new TextEncoder().encode(n))}function Ict(n,e){const t=new Uint8Array(n);let i="";for(let r=t.byteLength,o=0;o{if(s){const a=s.contentWindow.document;a.open(),a.write(ppe(n))}}}):Bo(t)&&oh(t["content-type"],"image/")?ae("div",{children:ae("img",{src:Ict(n,t["content-type"])})}):Rt("span",{css:Ji({fontSize:Qt.fontSize.xxs,position:"relative"},"",""),children:[ae("div",{children:ae(dpe,{code:e})}),t&&ae(bpe,{children:Kr(t,(o,s)=>ae(mpe,{field:s,value:o},s))}),n&&ae(bpe,{children:ae("code",{children:yct(t)||Bo(n)||sge(n)?JSON.stringify(n,null,2):ppe(n)})})]})}const Vz="data:image/svg+xml,%3csvg%20t='1706148987483'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='22466'%20width='14'%20height='14'%3e%3cpath%20d='M853.333333%20554.666667H170.666667c-23.466667%200-42.666667-19.2-42.666667-42.666667s19.2-42.666667%2042.666667-42.666667h682.666666c23.466667%200%2042.666667%2019.2%2042.666667%2042.666667s-19.2%2042.666667-42.666667%2042.666667z'%20fill='%23000000'%20p-id='22467'%3e%3c/path%3e%3c/svg%3e",Xz="data:image/svg+xml,%3csvg%20t='1706148718086'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='21317'%20width='14'%20height='14'%3e%3cpath%20d='M881%20483H541V142c0-16.5-13.3-30-29.5-30S482%20125.5%20482%20142v341H141c-16.5%200-30%2013.3-30%2029.5s13.5%2029.5%2030%2029.5h341v340c0%2016.5%2013.3%2030%2029.5%2030s29.5-13.5%2029.5-30V542h340c16.5%200%2030-13.3%2030-29.5S897.5%20483%20881%20483z'%20fill='000000'%20p-id='21318'%3e%3c/path%3e%3c/svg%3e";function wct(n,e,t){return e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function vpe(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(n);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(n,r).enumerable})),t.push.apply(t,i)}return t}function ype(n){for(var e=1;e=0)&&(t[r]=n[r]);return t}function xct(n,e){if(n==null)return{};var t=Sct(n,e),i,r;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(n);for(r=0;r=0)&&Object.prototype.propertyIsEnumerable.call(n,i)&&(t[i]=n[i])}return t}function Lct(n,e){return Fct(n)||_ct(n,e)||Dct(n,e)||Act()}function Fct(n){if(Array.isArray(n))return n}function _ct(n,e){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(n)))){var t=[],i=!0,r=!1,o=void 0;try{for(var s=n[Symbol.iterator](),a;!(i=(a=s.next()).done)&&(t.push(a.value),!(e&&t.length===e));i=!0);}catch(l){r=!0,o=l}finally{try{!i&&s.return!=null&&s.return()}finally{if(r)throw o}}return t}}function Dct(n,e){if(n){if(typeof n=="string")return Ipe(n,e);var t=Object.prototype.toString.call(n).slice(8,-1);if(t==="Object"&&n.constructor&&(t=n.constructor.name),t==="Map"||t==="Set")return Array.from(n);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return Ipe(n,e)}}function Ipe(n,e){(e==null||e>n.length)&&(e=n.length);for(var t=0,i=new Array(e);t=n.length?n.apply(this,r):function(){for(var s=arguments.length,a=new Array(s),l=0;l1&&arguments[1]!==void 0?arguments[1]:{};U9.initial(n),U9.handler(e);var t={current:n},i=yF(Bct)(t,e),r=yF(Oct)(t),o=yF(U9.changes)(n),s=yF(Pct)(t);function a(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(c){return c};return U9.selector(u),u(t.current)}function l(u){kct(i,r,o,s)(u)}return[a,l]}function Pct(n,e){return IF(e)?e(n.current):e}function Oct(n,e){return n.current=Spe(Spe({},n.current),e),e}function Bct(n,e,t){return IF(e)?e(n.current):Object.keys(t).forEach(function(i){var r;return(r=e[i])===null||r===void 0?void 0:r.call(e,n.current[i])}),t}var zct={create:Xct},Yct={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.43.0/min/vs"}};function Hct(n){return function e(){for(var t=this,i=arguments.length,r=new Array(i),o=0;o=n.length?n.apply(this,r):function(){for(var s=arguments.length,a=new Array(s),l=0;l{i.current=!1}:n,e)}var Cc=bdt;function SF(){}function VI(n,e,t,i){return Cdt(n,i)||vdt(n,e,t,i)}function Cdt(n,e){return n.editor.getModel(Npe(n,e))}function vdt(n,e,t,i){return n.editor.createModel(e,t,i?Npe(n,i):void 0)}function Npe(n,e){return n.Uri.parse(e)}function ydt({original:n,modified:e,language:t,originalLanguage:i,modifiedLanguage:r,originalModelPath:o,modifiedModelPath:s,keepCurrentOriginalModel:a=!1,keepCurrentModifiedModel:l=!1,theme:u="light",loading:c="Loading...",options:d={},height:h="100%",width:g="100%",className:m,wrapperProps:f={},beforeMount:b=SF,onMount:C=SF}){let[v,w]=I.useState(!1),[S,F]=I.useState(!0),L=I.useRef(null),D=I.useRef(null),A=I.useRef(null),M=I.useRef(C),W=I.useRef(b),Z=I.useRef(!1);Ape(()=>{let z=Bz.init();return z.then(O=>(D.current=O)&&F(!1)).catch(O=>(O==null?void 0:O.type)!=="cancelation"&&void 0),()=>L.current?V():z.cancel()}),Cc(()=>{if(L.current&&D.current){let z=L.current.getOriginalEditor(),O=VI(D.current,n||"",i||t||"text",o||"");O!==z.getModel()&&z.setModel(O)}},[o],v),Cc(()=>{if(L.current&&D.current){let z=L.current.getModifiedEditor(),O=VI(D.current,e||"",r||t||"text",s||"");O!==z.getModel()&&z.setModel(O)}},[s],v),Cc(()=>{let z=L.current.getModifiedEditor();z.getOption(D.current.editor.EditorOption.readOnly)?z.setValue(e||""):e!==z.getValue()&&(z.executeEdits("",[{range:z.getModel().getFullModelRange(),text:e||"",forceMoveMarkers:!0}]),z.pushUndoStop())},[e],v),Cc(()=>{var z,O;(O=(z=L.current)==null?void 0:z.getModel())==null||O.original.setValue(n||"")},[n],v),Cc(()=>{let{original:z,modified:O}=L.current.getModel();D.current.editor.setModelLanguage(z,i||t||"text"),D.current.editor.setModelLanguage(O,r||t||"text")},[t,i,r],v),Cc(()=>{var z;(z=D.current)==null||z.editor.setTheme(u)},[u],v),Cc(()=>{var z;(z=L.current)==null||z.updateOptions(d)},[d],v);let T=I.useCallback(()=>{var P;if(!D.current)return;W.current(D.current);let z=VI(D.current,n||"",i||t||"text",o||""),O=VI(D.current,e||"",r||t||"text",s||"");(P=L.current)==null||P.setModel({original:z,modified:O})},[t,e,r,n,i,o,s]),E=I.useCallback(()=>{var z;!Z.current&&A.current&&(L.current=D.current.editor.createDiffEditor(A.current,{automaticLayout:!0,...d}),T(),(z=D.current)==null||z.editor.setTheme(u),w(!0),Z.current=!0)},[d,u,T]);I.useEffect(()=>{v&&M.current(L.current,D.current)},[v]),I.useEffect(()=>{!S&&!v&&E()},[S,v,E]);function V(){var O,P,B,Y;let z=(O=L.current)==null?void 0:O.getModel();a||((P=z==null?void 0:z.original)==null||P.dispose()),l||((B=z==null?void 0:z.modified)==null||B.dispose()),(Y=L.current)==null||Y.dispose()}return Ye.createElement(Dpe,{width:g,height:h,isEditorReady:v,loading:c,_ref:A,className:m,wrapperProps:f})}var Idt=ydt;I.memo(Idt);function wdt(n){let e=I.useRef();return I.useEffect(()=>{e.current=n},[n]),e.current}var Sdt=wdt,K9=new Map;function xdt({defaultValue:n,defaultLanguage:e,defaultPath:t,value:i,language:r,path:o,theme:s="light",line:a,loading:l="Loading...",options:u={},overrideServices:c={},saveViewState:d=!0,keepCurrentModel:h=!1,width:g="100%",height:m="100%",className:f,wrapperProps:b={},beforeMount:C=SF,onMount:v=SF,onChange:w,onValidate:S=SF}){let[F,L]=I.useState(!1),[D,A]=I.useState(!0),M=I.useRef(null),W=I.useRef(null),Z=I.useRef(null),T=I.useRef(v),E=I.useRef(C),V=I.useRef(),z=I.useRef(i),O=Sdt(o),P=I.useRef(!1),B=I.useRef(!1);Ape(()=>{let X=Bz.init();return X.then(U=>(M.current=U)&&A(!1)).catch(U=>(U==null?void 0:U.type)!=="cancelation"&&void 0),()=>W.current?k():X.cancel()}),Cc(()=>{var U,R,ee,oe;let X=VI(M.current,n||i||"",e||r||"",o||t||"");X!==((U=W.current)==null?void 0:U.getModel())&&(d&&K9.set(O,(R=W.current)==null?void 0:R.saveViewState()),(ee=W.current)==null||ee.setModel(X),d&&((oe=W.current)==null||oe.restoreViewState(K9.get(o))))},[o],F),Cc(()=>{var X;(X=W.current)==null||X.updateOptions(u)},[u],F),Cc(()=>{!W.current||i===void 0||(W.current.getOption(M.current.editor.EditorOption.readOnly)?W.current.setValue(i):i!==W.current.getValue()&&(B.current=!0,W.current.executeEdits("",[{range:W.current.getModel().getFullModelRange(),text:i,forceMoveMarkers:!0}]),W.current.pushUndoStop(),B.current=!1))},[i],F),Cc(()=>{var U,R;let X=(U=W.current)==null?void 0:U.getModel();X&&r&&((R=M.current)==null||R.editor.setModelLanguage(X,r))},[r],F),Cc(()=>{var X;a!==void 0&&((X=W.current)==null||X.revealLine(a))},[a],F),Cc(()=>{var X;(X=M.current)==null||X.editor.setTheme(s)},[s],F);let Y=I.useCallback(()=>{var X;if(!(!Z.current||!M.current)&&!P.current){E.current(M.current);let U=o||t,R=VI(M.current,i||n||"",e||r||"",U||"");W.current=(X=M.current)==null?void 0:X.editor.create(Z.current,{model:R,automaticLayout:!0,...u},c),d&&W.current.restoreViewState(K9.get(U)),M.current.editor.setTheme(s),a!==void 0&&W.current.revealLine(a),L(!0),P.current=!0}},[n,e,t,i,r,o,u,c,d,s,a]);I.useEffect(()=>{F&&T.current(W.current,M.current)},[F]),I.useEffect(()=>{!D&&!F&&Y()},[D,F,Y]),z.current=i,I.useEffect(()=>{var X,U;F&&w&&((X=V.current)==null||X.dispose(),V.current=(U=W.current)==null?void 0:U.onDidChangeModelContent(R=>{B.current||w(W.current.getValue(),R)}))},[F,w]),I.useEffect(()=>{if(F){let X=M.current.editor.onDidChangeMarkers(U=>{var ee;let R=(ee=W.current.getModel())==null?void 0:ee.uri;if(R&&U.find(oe=>oe.path===R.path)){let oe=M.current.editor.getModelMarkers({resource:R});S==null||S(oe)}});return()=>{X==null||X.dispose()}}return()=>{}},[F,S]);function k(){var X,U;(X=V.current)==null||X.dispose(),h?d&&K9.set(o,W.current.saveViewState()):(U=W.current.getModel())==null||U.dispose(),W.current.dispose()}return Ye.createElement(Dpe,{width:g,height:m,isEditorReady:F,loading:l,_ref:Z,className:f,wrapperProps:b})}var Ldt=xdt,kpe=I.memo(Ldt);let Fdt=typeof document<"u"&&document.location&&document.location.hash.indexOf("pseudo=true")>=0;function Mpe(n,e){let t;return e.length===0?t=n:t=n.replace(/\{(\d+)\}/g,(i,r)=>{const o=r[0],s=e[o];let a=i;return typeof s=="string"?a=s:(typeof s=="number"||typeof s=="boolean"||s===void 0||s===null)&&(a=String(s)),a}),Fdt&&(t="["+t.replace(/[aouei]/g,"$&$&")+"]"),t}function x(n,e,...t){return Mpe(e,t)}function ai(n,e,...t){const i=Mpe(e,t);return{value:i,original:i}}function QUt(n){}function _dt(n,e){const t=n;typeof t.vscodeWindowId!="number"&&Object.defineProperty(t,"vscodeWindowId",{get:()=>e})}const Wi=window,Ddt=Wi;class Yz{constructor(){this.mapWindowIdToZoomFactor=new Map}getZoomFactor(e){var t;return(t=this.mapWindowIdToZoomFactor.get(this.getWindowId(e)))!==null&&t!==void 0?t:1}getWindowId(e){return e.vscodeWindowId}}Yz.INSTANCE=new Yz;function Zpe(n,e,t){typeof e=="string"&&(e=n.matchMedia(e)),e.addEventListener("change",t)}function Adt(n){return Yz.INSTANCE.getZoomFactor(n)}const XI=navigator.userAgent,vc=XI.indexOf("Firefox")>=0,IC=XI.indexOf("AppleWebKit")>=0,xF=XI.indexOf("Chrome")>=0,df=!xF&&XI.indexOf("Safari")>=0,Tpe=!xF&&!df&&IC;XI.indexOf("Electron/")>=0;const Epe=XI.indexOf("Android")>=0;let j9=!1;if(typeof Wi.matchMedia=="function"){const n=Wi.matchMedia("(display-mode: standalone) or (display-mode: window-controls-overlay)"),e=Wi.matchMedia("(display-mode: fullscreen)");j9=n.matches,Zpe(Wi,n,({matches:t})=>{j9&&e.matches||(j9=t)})}function Ndt(){return j9}function Ll(n){return typeof n=="string"}function za(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)&&!(n instanceof RegExp)&&!(n instanceof Date)}function kdt(n){const e=Object.getPrototypeOf(Uint8Array);return typeof n=="object"&&n instanceof e}function mb(n){return typeof n=="number"&&!isNaN(n)}function Wpe(n){return!!n&&typeof n[Symbol.iterator]=="function"}function Rpe(n){return n===!0||n===!1}function ql(n){return typeof n>"u"}function _g(n){return!Mu(n)}function Mu(n){return ql(n)||n===null}function Ci(n,e){if(!n)throw new Error(e?`Unexpected type, expected '${e}'`:"Unexpected type")}function fb(n){if(Mu(n))throw new Error("Assertion Failed: argument is undefined or null");return n}function Q9(n){return typeof n=="function"}function Mdt(n,e){const t=Math.min(n.length,e.length);for(let i=0;i=0,q9=ch.indexOf("Macintosh")>=0,Jz=(ch.indexOf("Macintosh")>=0||ch.indexOf("iPad")>=0||ch.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,e5=ch.indexOf("Linux")>=0,Vpe=(ch==null?void 0:ch.indexOf("Mobi"))>=0,Uz=!0,x({key:"ensureLoaderPluginIsLoaded",comment:["{Locked}"]},"_"),t5=PI,n5=t5,Xpe=navigator.language);const ya=$9,$n=q9,Ha=e5,dh=Gpe,pb=Uz,Wdt=Uz&&typeof hf.importScripts=="function"?hf.origin:void 0,Dg=Jz,Ppe=Vpe,Ag=ch,Rdt=n5,Gdt=typeof hf.postMessage=="function"&&!hf.importScripts,Ope=(()=>{if(Gdt){const n=[];hf.addEventListener("message",t=>{if(t.data&&t.data.vscodeScheduleAsyncWork)for(let i=0,r=n.length;i{const i=++e;n.push({id:i,callback:t}),hf.postMessage({vscodeScheduleAsyncWork:i},"*")}}return n=>setTimeout(n)})(),eu=q9||Jz?2:$9?1:3;let Bpe=!0,zpe=!1;function Ype(){if(!zpe){zpe=!0;const n=new Uint8Array(2);n[0]=1,n[1]=2,Bpe=new Uint16Array(n.buffer)[0]===513}return Bpe}const Hpe=!!(Ag&&Ag.indexOf("Chrome")>=0),Vdt=!!(Ag&&Ag.indexOf("Firefox")>=0),Xdt=!!(!Hpe&&Ag&&Ag.indexOf("Safari")>=0),Pdt=!!(Ag&&Ag.indexOf("Edg/")>=0),Odt=!!(Ag&&Ag.indexOf("Android")>=0),Kz={clipboard:{writeText:dh||document.queryCommandSupported&&document.queryCommandSupported("copy")||!!(navigator&&navigator.clipboard&&navigator.clipboard.writeText),readText:dh||!!(navigator&&navigator.clipboard&&navigator.clipboard.readText)},keyboard:dh||Ndt()?0:navigator.keyboard||df?1:2,touch:"ontouchstart"in Wi||navigator.maxTouchPoints>0,pointerEvents:Wi.PointerEvent&&("ontouchstart"in Wi||navigator.maxTouchPoints>0)};class jz{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e}keyCodeToStr(e){return this._keyCodeToStr[e]}strToKeyCode(e){return this._strToKeyCode[e.toLowerCase()]||0}}const i5=new jz,Qz=new jz,$z=new jz,Upe=new Array(230),Bdt=Object.create(null),zdt=Object.create(null),qz=[];for(let n=0;n<=193;n++)qz[n]=-1;(function(){const n="",e=[[1,0,"None",0,"unknown",0,"VK_UNKNOWN",n,n],[1,1,"Hyper",0,n,0,n,n,n],[1,2,"Super",0,n,0,n,n,n],[1,3,"Fn",0,n,0,n,n,n],[1,4,"FnLock",0,n,0,n,n,n],[1,5,"Suspend",0,n,0,n,n,n],[1,6,"Resume",0,n,0,n,n,n],[1,7,"Turbo",0,n,0,n,n,n],[1,8,"Sleep",0,n,0,"VK_SLEEP",n,n],[1,9,"WakeUp",0,n,0,n,n,n],[0,10,"KeyA",31,"A",65,"VK_A",n,n],[0,11,"KeyB",32,"B",66,"VK_B",n,n],[0,12,"KeyC",33,"C",67,"VK_C",n,n],[0,13,"KeyD",34,"D",68,"VK_D",n,n],[0,14,"KeyE",35,"E",69,"VK_E",n,n],[0,15,"KeyF",36,"F",70,"VK_F",n,n],[0,16,"KeyG",37,"G",71,"VK_G",n,n],[0,17,"KeyH",38,"H",72,"VK_H",n,n],[0,18,"KeyI",39,"I",73,"VK_I",n,n],[0,19,"KeyJ",40,"J",74,"VK_J",n,n],[0,20,"KeyK",41,"K",75,"VK_K",n,n],[0,21,"KeyL",42,"L",76,"VK_L",n,n],[0,22,"KeyM",43,"M",77,"VK_M",n,n],[0,23,"KeyN",44,"N",78,"VK_N",n,n],[0,24,"KeyO",45,"O",79,"VK_O",n,n],[0,25,"KeyP",46,"P",80,"VK_P",n,n],[0,26,"KeyQ",47,"Q",81,"VK_Q",n,n],[0,27,"KeyR",48,"R",82,"VK_R",n,n],[0,28,"KeyS",49,"S",83,"VK_S",n,n],[0,29,"KeyT",50,"T",84,"VK_T",n,n],[0,30,"KeyU",51,"U",85,"VK_U",n,n],[0,31,"KeyV",52,"V",86,"VK_V",n,n],[0,32,"KeyW",53,"W",87,"VK_W",n,n],[0,33,"KeyX",54,"X",88,"VK_X",n,n],[0,34,"KeyY",55,"Y",89,"VK_Y",n,n],[0,35,"KeyZ",56,"Z",90,"VK_Z",n,n],[0,36,"Digit1",22,"1",49,"VK_1",n,n],[0,37,"Digit2",23,"2",50,"VK_2",n,n],[0,38,"Digit3",24,"3",51,"VK_3",n,n],[0,39,"Digit4",25,"4",52,"VK_4",n,n],[0,40,"Digit5",26,"5",53,"VK_5",n,n],[0,41,"Digit6",27,"6",54,"VK_6",n,n],[0,42,"Digit7",28,"7",55,"VK_7",n,n],[0,43,"Digit8",29,"8",56,"VK_8",n,n],[0,44,"Digit9",30,"9",57,"VK_9",n,n],[0,45,"Digit0",21,"0",48,"VK_0",n,n],[1,46,"Enter",3,"Enter",13,"VK_RETURN",n,n],[1,47,"Escape",9,"Escape",27,"VK_ESCAPE",n,n],[1,48,"Backspace",1,"Backspace",8,"VK_BACK",n,n],[1,49,"Tab",2,"Tab",9,"VK_TAB",n,n],[1,50,"Space",10,"Space",32,"VK_SPACE",n,n],[0,51,"Minus",88,"-",189,"VK_OEM_MINUS","-","OEM_MINUS"],[0,52,"Equal",86,"=",187,"VK_OEM_PLUS","=","OEM_PLUS"],[0,53,"BracketLeft",92,"[",219,"VK_OEM_4","[","OEM_4"],[0,54,"BracketRight",94,"]",221,"VK_OEM_6","]","OEM_6"],[0,55,"Backslash",93,"\\",220,"VK_OEM_5","\\","OEM_5"],[0,56,"IntlHash",0,n,0,n,n,n],[0,57,"Semicolon",85,";",186,"VK_OEM_1",";","OEM_1"],[0,58,"Quote",95,"'",222,"VK_OEM_7","'","OEM_7"],[0,59,"Backquote",91,"`",192,"VK_OEM_3","`","OEM_3"],[0,60,"Comma",87,",",188,"VK_OEM_COMMA",",","OEM_COMMA"],[0,61,"Period",89,".",190,"VK_OEM_PERIOD",".","OEM_PERIOD"],[0,62,"Slash",90,"/",191,"VK_OEM_2","/","OEM_2"],[1,63,"CapsLock",8,"CapsLock",20,"VK_CAPITAL",n,n],[1,64,"F1",59,"F1",112,"VK_F1",n,n],[1,65,"F2",60,"F2",113,"VK_F2",n,n],[1,66,"F3",61,"F3",114,"VK_F3",n,n],[1,67,"F4",62,"F4",115,"VK_F4",n,n],[1,68,"F5",63,"F5",116,"VK_F5",n,n],[1,69,"F6",64,"F6",117,"VK_F6",n,n],[1,70,"F7",65,"F7",118,"VK_F7",n,n],[1,71,"F8",66,"F8",119,"VK_F8",n,n],[1,72,"F9",67,"F9",120,"VK_F9",n,n],[1,73,"F10",68,"F10",121,"VK_F10",n,n],[1,74,"F11",69,"F11",122,"VK_F11",n,n],[1,75,"F12",70,"F12",123,"VK_F12",n,n],[1,76,"PrintScreen",0,n,0,n,n,n],[1,77,"ScrollLock",84,"ScrollLock",145,"VK_SCROLL",n,n],[1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE",n,n],[1,79,"Insert",19,"Insert",45,"VK_INSERT",n,n],[1,80,"Home",14,"Home",36,"VK_HOME",n,n],[1,81,"PageUp",11,"PageUp",33,"VK_PRIOR",n,n],[1,82,"Delete",20,"Delete",46,"VK_DELETE",n,n],[1,83,"End",13,"End",35,"VK_END",n,n],[1,84,"PageDown",12,"PageDown",34,"VK_NEXT",n,n],[1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",n],[1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",n],[1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",n],[1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",n],[1,89,"NumLock",83,"NumLock",144,"VK_NUMLOCK",n,n],[1,90,"NumpadDivide",113,"NumPad_Divide",111,"VK_DIVIDE",n,n],[1,91,"NumpadMultiply",108,"NumPad_Multiply",106,"VK_MULTIPLY",n,n],[1,92,"NumpadSubtract",111,"NumPad_Subtract",109,"VK_SUBTRACT",n,n],[1,93,"NumpadAdd",109,"NumPad_Add",107,"VK_ADD",n,n],[1,94,"NumpadEnter",3,n,0,n,n,n],[1,95,"Numpad1",99,"NumPad1",97,"VK_NUMPAD1",n,n],[1,96,"Numpad2",100,"NumPad2",98,"VK_NUMPAD2",n,n],[1,97,"Numpad3",101,"NumPad3",99,"VK_NUMPAD3",n,n],[1,98,"Numpad4",102,"NumPad4",100,"VK_NUMPAD4",n,n],[1,99,"Numpad5",103,"NumPad5",101,"VK_NUMPAD5",n,n],[1,100,"Numpad6",104,"NumPad6",102,"VK_NUMPAD6",n,n],[1,101,"Numpad7",105,"NumPad7",103,"VK_NUMPAD7",n,n],[1,102,"Numpad8",106,"NumPad8",104,"VK_NUMPAD8",n,n],[1,103,"Numpad9",107,"NumPad9",105,"VK_NUMPAD9",n,n],[1,104,"Numpad0",98,"NumPad0",96,"VK_NUMPAD0",n,n],[1,105,"NumpadDecimal",112,"NumPad_Decimal",110,"VK_DECIMAL",n,n],[0,106,"IntlBackslash",97,"OEM_102",226,"VK_OEM_102",n,n],[1,107,"ContextMenu",58,"ContextMenu",93,n,n,n],[1,108,"Power",0,n,0,n,n,n],[1,109,"NumpadEqual",0,n,0,n,n,n],[1,110,"F13",71,"F13",124,"VK_F13",n,n],[1,111,"F14",72,"F14",125,"VK_F14",n,n],[1,112,"F15",73,"F15",126,"VK_F15",n,n],[1,113,"F16",74,"F16",127,"VK_F16",n,n],[1,114,"F17",75,"F17",128,"VK_F17",n,n],[1,115,"F18",76,"F18",129,"VK_F18",n,n],[1,116,"F19",77,"F19",130,"VK_F19",n,n],[1,117,"F20",78,"F20",131,"VK_F20",n,n],[1,118,"F21",79,"F21",132,"VK_F21",n,n],[1,119,"F22",80,"F22",133,"VK_F22",n,n],[1,120,"F23",81,"F23",134,"VK_F23",n,n],[1,121,"F24",82,"F24",135,"VK_F24",n,n],[1,122,"Open",0,n,0,n,n,n],[1,123,"Help",0,n,0,n,n,n],[1,124,"Select",0,n,0,n,n,n],[1,125,"Again",0,n,0,n,n,n],[1,126,"Undo",0,n,0,n,n,n],[1,127,"Cut",0,n,0,n,n,n],[1,128,"Copy",0,n,0,n,n,n],[1,129,"Paste",0,n,0,n,n,n],[1,130,"Find",0,n,0,n,n,n],[1,131,"AudioVolumeMute",117,"AudioVolumeMute",173,"VK_VOLUME_MUTE",n,n],[1,132,"AudioVolumeUp",118,"AudioVolumeUp",175,"VK_VOLUME_UP",n,n],[1,133,"AudioVolumeDown",119,"AudioVolumeDown",174,"VK_VOLUME_DOWN",n,n],[1,134,"NumpadComma",110,"NumPad_Separator",108,"VK_SEPARATOR",n,n],[0,135,"IntlRo",115,"ABNT_C1",193,"VK_ABNT_C1",n,n],[1,136,"KanaMode",0,n,0,n,n,n],[0,137,"IntlYen",0,n,0,n,n,n],[1,138,"Convert",0,n,0,n,n,n],[1,139,"NonConvert",0,n,0,n,n,n],[1,140,"Lang1",0,n,0,n,n,n],[1,141,"Lang2",0,n,0,n,n,n],[1,142,"Lang3",0,n,0,n,n,n],[1,143,"Lang4",0,n,0,n,n,n],[1,144,"Lang5",0,n,0,n,n,n],[1,145,"Abort",0,n,0,n,n,n],[1,146,"Props",0,n,0,n,n,n],[1,147,"NumpadParenLeft",0,n,0,n,n,n],[1,148,"NumpadParenRight",0,n,0,n,n,n],[1,149,"NumpadBackspace",0,n,0,n,n,n],[1,150,"NumpadMemoryStore",0,n,0,n,n,n],[1,151,"NumpadMemoryRecall",0,n,0,n,n,n],[1,152,"NumpadMemoryClear",0,n,0,n,n,n],[1,153,"NumpadMemoryAdd",0,n,0,n,n,n],[1,154,"NumpadMemorySubtract",0,n,0,n,n,n],[1,155,"NumpadClear",131,"Clear",12,"VK_CLEAR",n,n],[1,156,"NumpadClearEntry",0,n,0,n,n,n],[1,0,n,5,"Ctrl",17,"VK_CONTROL",n,n],[1,0,n,4,"Shift",16,"VK_SHIFT",n,n],[1,0,n,6,"Alt",18,"VK_MENU",n,n],[1,0,n,57,"Meta",91,"VK_COMMAND",n,n],[1,157,"ControlLeft",5,n,0,"VK_LCONTROL",n,n],[1,158,"ShiftLeft",4,n,0,"VK_LSHIFT",n,n],[1,159,"AltLeft",6,n,0,"VK_LMENU",n,n],[1,160,"MetaLeft",57,n,0,"VK_LWIN",n,n],[1,161,"ControlRight",5,n,0,"VK_RCONTROL",n,n],[1,162,"ShiftRight",4,n,0,"VK_RSHIFT",n,n],[1,163,"AltRight",6,n,0,"VK_RMENU",n,n],[1,164,"MetaRight",57,n,0,"VK_RWIN",n,n],[1,165,"BrightnessUp",0,n,0,n,n,n],[1,166,"BrightnessDown",0,n,0,n,n,n],[1,167,"MediaPlay",0,n,0,n,n,n],[1,168,"MediaRecord",0,n,0,n,n,n],[1,169,"MediaFastForward",0,n,0,n,n,n],[1,170,"MediaRewind",0,n,0,n,n,n],[1,171,"MediaTrackNext",124,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK",n,n],[1,172,"MediaTrackPrevious",125,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK",n,n],[1,173,"MediaStop",126,"MediaStop",178,"VK_MEDIA_STOP",n,n],[1,174,"Eject",0,n,0,n,n,n],[1,175,"MediaPlayPause",127,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE",n,n],[1,176,"MediaSelect",128,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT",n,n],[1,177,"LaunchMail",129,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL",n,n],[1,178,"LaunchApp2",130,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2",n,n],[1,179,"LaunchApp1",0,n,0,"VK_MEDIA_LAUNCH_APP1",n,n],[1,180,"SelectTask",0,n,0,n,n,n],[1,181,"LaunchScreenSaver",0,n,0,n,n,n],[1,182,"BrowserSearch",120,"BrowserSearch",170,"VK_BROWSER_SEARCH",n,n],[1,183,"BrowserHome",121,"BrowserHome",172,"VK_BROWSER_HOME",n,n],[1,184,"BrowserBack",122,"BrowserBack",166,"VK_BROWSER_BACK",n,n],[1,185,"BrowserForward",123,"BrowserForward",167,"VK_BROWSER_FORWARD",n,n],[1,186,"BrowserStop",0,n,0,"VK_BROWSER_STOP",n,n],[1,187,"BrowserRefresh",0,n,0,"VK_BROWSER_REFRESH",n,n],[1,188,"BrowserFavorites",0,n,0,"VK_BROWSER_FAVORITES",n,n],[1,189,"ZoomToggle",0,n,0,n,n,n],[1,190,"MailReply",0,n,0,n,n,n],[1,191,"MailForward",0,n,0,n,n,n],[1,192,"MailSend",0,n,0,n,n,n],[1,0,n,114,"KeyInComposition",229,n,n,n],[1,0,n,116,"ABNT_C2",194,"VK_ABNT_C2",n,n],[1,0,n,96,"OEM_8",223,"VK_OEM_8",n,n],[1,0,n,0,n,0,"VK_KANA",n,n],[1,0,n,0,n,0,"VK_HANGUL",n,n],[1,0,n,0,n,0,"VK_JUNJA",n,n],[1,0,n,0,n,0,"VK_FINAL",n,n],[1,0,n,0,n,0,"VK_HANJA",n,n],[1,0,n,0,n,0,"VK_KANJI",n,n],[1,0,n,0,n,0,"VK_CONVERT",n,n],[1,0,n,0,n,0,"VK_NONCONVERT",n,n],[1,0,n,0,n,0,"VK_ACCEPT",n,n],[1,0,n,0,n,0,"VK_MODECHANGE",n,n],[1,0,n,0,n,0,"VK_SELECT",n,n],[1,0,n,0,n,0,"VK_PRINT",n,n],[1,0,n,0,n,0,"VK_EXECUTE",n,n],[1,0,n,0,n,0,"VK_SNAPSHOT",n,n],[1,0,n,0,n,0,"VK_HELP",n,n],[1,0,n,0,n,0,"VK_APPS",n,n],[1,0,n,0,n,0,"VK_PROCESSKEY",n,n],[1,0,n,0,n,0,"VK_PACKET",n,n],[1,0,n,0,n,0,"VK_DBE_SBCSCHAR",n,n],[1,0,n,0,n,0,"VK_DBE_DBCSCHAR",n,n],[1,0,n,0,n,0,"VK_ATTN",n,n],[1,0,n,0,n,0,"VK_CRSEL",n,n],[1,0,n,0,n,0,"VK_EXSEL",n,n],[1,0,n,0,n,0,"VK_EREOF",n,n],[1,0,n,0,n,0,"VK_PLAY",n,n],[1,0,n,0,n,0,"VK_ZOOM",n,n],[1,0,n,0,n,0,"VK_NONAME",n,n],[1,0,n,0,n,0,"VK_PA1",n,n],[1,0,n,0,n,0,"VK_OEM_CLEAR",n,n]],t=[],i=[];for(const r of e){const[o,s,a,l,u,c,d,h,g]=r;if(i[s]||(i[s]=!0,Bdt[a]=s,zdt[a.toLowerCase()]=s,o&&(qz[s]=l)),!t[l]){if(t[l]=!0,!u)throw new Error(`String representation missing for key code ${l} around scan code ${a}`);i5.define(l,u),Qz.define(l,h||u),$z.define(l,g||h||u)}c&&(Upe[c]=l)}})();var gf;(function(n){function e(a){return i5.keyCodeToStr(a)}n.toString=e;function t(a){return i5.strToKeyCode(a)}n.fromString=t;function i(a){return Qz.keyCodeToStr(a)}n.toUserSettingsUS=i;function r(a){return $z.keyCodeToStr(a)}n.toUserSettingsGeneral=r;function o(a){return Qz.strToKeyCode(a)||$z.strToKeyCode(a)}n.fromUserSettings=o;function s(a){if(a>=98&&a<=113)return null;switch(a){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return i5.keyCodeToStr(a)}n.toElectronAccelerator=s})(gf||(gf={}));function ko(n,e){const t=(e&65535)<<16>>>0;return(n|t)>>>0}class Ydt{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?OI.isErrorNoTelemetry(e)?new OI(e.message+` + +`+e.stack):new Error(e.message+` + +`+e.stack):e},0)}}emit(e){this.listeners.forEach(t=>{t(e)})}onUnexpectedError(e){this.unexpectedErrorHandler(e),this.emit(e)}onUnexpectedExternalError(e){this.unexpectedErrorHandler(e)}}const Jpe=new Ydt;function fn(n){Ng(n)||Jpe.onUnexpectedError(n)}function wo(n){Ng(n)||Jpe.onUnexpectedExternalError(n)}function Kpe(n){if(n instanceof Error){const{name:e,message:t}=n,i=n.stacktrace||n.stack;return{$isError:!0,name:e,message:t,stack:i,noTelemetry:OI.isErrorNoTelemetry(n)}}return n}const r5="Canceled";function Ng(n){return n instanceof bb?!0:n instanceof Error&&n.name===r5&&n.message===r5}class bb extends Error{constructor(){super(r5),this.name=this.message}}function Hdt(){const n=new Error(r5);return n.name=n.message,n}function yc(n){return n?new Error(`Illegal argument: ${n}`):new Error("Illegal argument")}function eY(n){return n?new Error(`Illegal state: ${n}`):new Error("Illegal state")}class Udt extends Error{constructor(e){super("NotSupported"),e&&(this.message=e)}}class OI extends Error{constructor(e){super(e),this.name="CodeExpectedError"}static fromError(e){if(e instanceof OI)return e;const t=new OI;return t.message=e.message,t.stack=e.stack,t}static isErrorNoTelemetry(e){return e.name==="CodeExpectedError"}}class br extends Error{constructor(e){super(e||"An unexpected bug occurred."),Object.setPrototypeOf(this,br.prototype)}}function tY(n,e){if(typeof n=="number"){if(n===0)return null;const t=(n&65535)>>>0,i=(n&4294901760)>>>16;return i!==0?new nY([o5(t,e),o5(i,e)]):new nY([o5(t,e)])}else{const t=[];for(let i=0;i=0;S--)yield w[S]}n.reverse=a;function l(w){return!w||w[Symbol.iterator]().next().done===!0}n.isEmpty=l;function u(w){return w[Symbol.iterator]().next().value}n.first=u;function c(w,S){for(const F of w)if(S(F))return!0;return!1}n.some=c;function d(w,S){for(const F of w)if(S(F))return F}n.find=d;function*h(w,S){for(const F of w)S(F)&&(yield F)}n.filter=h;function*g(w,S){let F=0;for(const L of w)yield S(L,F++)}n.map=g;function*m(...w){for(const S of w)yield*S}n.concat=m;function f(w,S,F){let L=F;for(const D of w)L=S(L,D);return L}n.reduce=f;function*b(w,S,F=w.length){for(S<0&&(S+=w.length),F<0?F+=w.length:F>w.length&&(F=w.length);S1)throw new AggregateError(e,"Encountered errors while disposing of store");return Array.isArray(n)?[]:n}else if(n)return n.dispose(),n}function hd(...n){return en(()=>Mi(n))}function en(n){return{dispose:BI(()=>{n()})}}class je{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{Mi(this._toDispose)}finally{this._toDispose.clear()}}add(e){if(!e)return e;if(e===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?je.DISABLE_DISPOSED_WARNING:this._toDispose.add(e),e}deleteAndLeak(e){e&&this._toDispose.has(e)&&this._toDispose.delete(e)}}je.DISABLE_DISPOSED_WARNING=!1;class De{constructor(){this._store=new je,this._store}dispose(){this._store.dispose()}_register(e){if(e===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(e)}}De.None=Object.freeze({dispose(){}});class zs{constructor(){this._isDisposed=!1}get value(){return this._isDisposed?void 0:this._value}set value(e){var t;this._isDisposed||e===this._value||((t=this._value)===null||t===void 0||t.dispose(),this._value=e)}clear(){this.value=void 0}dispose(){var e;this._isDisposed=!0,(e=this._value)===null||e===void 0||e.dispose(),this._value=void 0}}class iht{constructor(e){this._disposable=e,this._counter=1}acquire(){return this._counter++,this}release(){return--this._counter===0&&this._disposable.dispose(),this}}class rht{constructor(e){this.object=e}dispose(){}}class rY{constructor(){this._store=new Map,this._isDisposed=!1}dispose(){this._isDisposed=!0,this.clearAndDisposeAll()}clearAndDisposeAll(){if(this._store.size)try{Mi(this._store.values())}finally{this._store.clear()}}get(e){return this._store.get(e)}set(e,t,i=!1){var r;this._isDisposed,i||(r=this._store.get(e))===null||r===void 0||r.dispose(),this._store.set(e,t)}deleteAndDispose(e){var t;(t=this._store.get(e))===null||t===void 0||t.dispose(),this._store.delete(e)}[Symbol.iterator](){return this._store[Symbol.iterator]()}}let Mo=class iee{constructor(e){this.element=e,this.next=iee.Undefined,this.prev=iee.Undefined}};Mo.Undefined=new Mo(void 0);class Ua{constructor(){this._first=Mo.Undefined,this._last=Mo.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===Mo.Undefined}clear(){let e=this._first;for(;e!==Mo.Undefined;){const t=e.next;e.prev=Mo.Undefined,e.next=Mo.Undefined,e=t}this._first=Mo.Undefined,this._last=Mo.Undefined,this._size=0}unshift(e){return this._insert(e,!1)}push(e){return this._insert(e,!0)}_insert(e,t){const i=new Mo(e);if(this._first===Mo.Undefined)this._first=i,this._last=i;else if(t){const o=this._last;this._last=i,i.prev=o,o.next=i}else{const o=this._first;this._first=i,i.next=o,o.prev=i}this._size+=1;let r=!1;return()=>{r||(r=!0,this._remove(i))}}shift(){if(this._first!==Mo.Undefined){const e=this._first.element;return this._remove(this._first),e}}pop(){if(this._last!==Mo.Undefined){const e=this._last.element;return this._remove(this._last),e}}_remove(e){if(e.prev!==Mo.Undefined&&e.next!==Mo.Undefined){const t=e.prev;t.next=e.next,e.next.prev=t}else e.prev===Mo.Undefined&&e.next===Mo.Undefined?(this._first=Mo.Undefined,this._last=Mo.Undefined):e.next===Mo.Undefined?(this._last=this._last.prev,this._last.next=Mo.Undefined):e.prev===Mo.Undefined&&(this._first=this._first.next,this._first.prev=Mo.Undefined);this._size-=1}*[Symbol.iterator](){let e=this._first;for(;e!==Mo.Undefined;)yield e.element,e=e.next}}const oht=globalThis.performance&&typeof globalThis.performance.now=="function";class aa{static create(e){return new aa(e)}constructor(e){this._now=oht&&e===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}}var ft;(function(n){n.None=()=>De.None;function e(Z,T){return d(Z,()=>{},0,void 0,!0,void 0,T)}n.defer=e;function t(Z){return(T,E=null,V)=>{let z=!1,O;return O=Z(P=>{if(!z)return O?O.dispose():z=!0,T.call(E,P)},null,V),z&&O.dispose(),O}}n.once=t;function i(Z,T,E){return u((V,z=null,O)=>Z(P=>V.call(z,T(P)),null,O),E)}n.map=i;function r(Z,T,E){return u((V,z=null,O)=>Z(P=>{T(P),V.call(z,P)},null,O),E)}n.forEach=r;function o(Z,T,E){return u((V,z=null,O)=>Z(P=>T(P)&&V.call(z,P),null,O),E)}n.filter=o;function s(Z){return Z}n.signal=s;function a(...Z){return(T,E=null,V)=>{const z=hd(...Z.map(O=>O(P=>T.call(E,P))));return c(z,V)}}n.any=a;function l(Z,T,E,V){let z=E;return i(Z,O=>(z=T(z,O),z),V)}n.reduce=l;function u(Z,T){let E;const V={onWillAddFirstListener(){E=Z(z.fire,z)},onDidRemoveLastListener(){E==null||E.dispose()}},z=new be(V);return T==null||T.add(z),z.event}function c(Z,T){return T instanceof Array?T.push(Z):T&&T.add(Z),Z}function d(Z,T,E=100,V=!1,z=!1,O,P){let B,Y,k,X=0,U;const R={leakWarningThreshold:O,onWillAddFirstListener(){B=Z(oe=>{X++,Y=T(Y,oe),V&&!k&&(ee.fire(Y),Y=void 0),U=()=>{const se=Y;Y=void 0,k=void 0,(!V||X>1)&&ee.fire(se),X=0},typeof E=="number"?(clearTimeout(k),k=setTimeout(U,E)):k===void 0&&(k=0,queueMicrotask(U))})},onWillRemoveListener(){z&&X>0&&(U==null||U())},onDidRemoveLastListener(){U=void 0,B.dispose()}},ee=new be(R);return P==null||P.add(ee),ee.event}n.debounce=d;function h(Z,T=0,E){return n.debounce(Z,(V,z)=>V?(V.push(z),V):[z],T,void 0,!0,void 0,E)}n.accumulate=h;function g(Z,T=(V,z)=>V===z,E){let V=!0,z;return o(Z,O=>{const P=V||!T(O,z);return V=!1,z=O,P},E)}n.latch=g;function m(Z,T,E){return[n.filter(Z,T,E),n.filter(Z,V=>!T(V),E)]}n.split=m;function f(Z,T=!1,E=[],V){let z=E.slice(),O=Z(Y=>{z?z.push(Y):B.fire(Y)});V&&V.add(O);const P=()=>{z==null||z.forEach(Y=>B.fire(Y)),z=null},B=new be({onWillAddFirstListener(){O||(O=Z(Y=>B.fire(Y)),V&&V.add(O))},onDidAddFirstListener(){z&&(T?setTimeout(P):P())},onDidRemoveLastListener(){O&&O.dispose(),O=null}});return V&&V.add(B),B.event}n.buffer=f;function b(Z,T){return(V,z,O)=>{const P=T(new v);return Z(function(B){const Y=P.evaluate(B);Y!==C&&V.call(z,Y)},void 0,O)}}n.chain=b;const C=Symbol("HaltChainable");class v{constructor(){this.steps=[]}map(T){return this.steps.push(T),this}forEach(T){return this.steps.push(E=>(T(E),E)),this}filter(T){return this.steps.push(E=>T(E)?E:C),this}reduce(T,E){let V=E;return this.steps.push(z=>(V=T(V,z),V)),this}latch(T=(E,V)=>E===V){let E=!0,V;return this.steps.push(z=>{const O=E||!T(z,V);return E=!1,V=z,O?z:C}),this}evaluate(T){for(const E of this.steps)if(T=E(T),T===C)break;return T}}function w(Z,T,E=V=>V){const V=(...B)=>P.fire(E(...B)),z=()=>Z.on(T,V),O=()=>Z.removeListener(T,V),P=new be({onWillAddFirstListener:z,onDidRemoveLastListener:O});return P.event}n.fromNodeEventEmitter=w;function S(Z,T,E=V=>V){const V=(...B)=>P.fire(E(...B)),z=()=>Z.addEventListener(T,V),O=()=>Z.removeEventListener(T,V),P=new be({onWillAddFirstListener:z,onDidRemoveLastListener:O});return P.event}n.fromDOMEventEmitter=S;function F(Z){return new Promise(T=>t(Z)(T))}n.toPromise=F;function L(Z){const T=new be;return Z.then(E=>{T.fire(E)},()=>{T.fire(void 0)}).finally(()=>{T.dispose()}),T.event}n.fromPromise=L;function D(Z,T,E){return T(E),Z(V=>T(V))}n.runAndSubscribe=D;class A{constructor(T,E){this._observable=T,this._counter=0,this._hasChanged=!1;const V={onWillAddFirstListener:()=>{T.addObserver(this)},onDidRemoveLastListener:()=>{T.removeObserver(this)}};this.emitter=new be(V),E&&E.add(this.emitter)}beginUpdate(T){this._counter++}handlePossibleChange(T){}handleChange(T,E){this._hasChanged=!0}endUpdate(T){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function M(Z,T){return new A(Z,T).emitter.event}n.fromObservable=M;function W(Z){return(T,E,V)=>{let z=0,O=!1;const P={beginUpdate(){z++},endUpdate(){z--,z===0&&(Z.reportChanges(),O&&(O=!1,T.call(E)))},handlePossibleChange(){},handleChange(){O=!0}};Z.addObserver(P),Z.reportChanges();const B={dispose(){Z.removeObserver(P)}};return V instanceof je?V.add(B):Array.isArray(V)&&V.push(B),B}}n.fromObservableLight=W})(ft||(ft={}));class zI{constructor(e){this.listenerCount=0,this.invocationCount=0,this.elapsedOverall=0,this.durations=[],this.name=`${e}_${zI._idPool++}`,zI.all.add(this)}start(e){this._stopWatch=new aa,this.listenerCount=e}stop(){if(this._stopWatch){const e=this._stopWatch.elapsed();this.durations.push(e),this.elapsedOverall+=e,this.invocationCount+=1,this._stopWatch=void 0}}}zI.all=new Set,zI._idPool=0;let sht=-1;class aht{constructor(e,t=Math.random().toString(18).slice(2,5)){this.threshold=e,this.name=t,this._warnCountdown=0}dispose(){var e;(e=this._stacks)===null||e===void 0||e.clear()}check(e,t){const i=this.threshold;if(i<=0||t{const o=this._stacks.get(e.value)||0;this._stacks.set(e.value,o-1)}}}class oY{static create(){var e;return new oY((e=new Error().stack)!==null&&e!==void 0?e:"")}constructor(e){this.value=e}print(){}}class sY{constructor(e){this.value=e}}const lht=2;let be=class{constructor(e){var t,i,r,o,s;this._size=0,this._options=e,this._leakageMon=!((t=this._options)===null||t===void 0)&&t.leakWarningThreshold?new aht((r=(i=this._options)===null||i===void 0?void 0:i.leakWarningThreshold)!==null&&r!==void 0?r:sht):void 0,this._perfMon=!((o=this._options)===null||o===void 0)&&o._profName?new zI(this._options._profName):void 0,this._deliveryQueue=(s=this._options)===null||s===void 0?void 0:s.deliveryQueue}dispose(){var e,t,i,r;this._disposed||(this._disposed=!0,((e=this._deliveryQueue)===null||e===void 0?void 0:e.current)===this&&this._deliveryQueue.reset(),this._listeners&&(this._listeners=void 0,this._size=0),(i=(t=this._options)===null||t===void 0?void 0:t.onDidRemoveLastListener)===null||i===void 0||i.call(t),(r=this._leakageMon)===null||r===void 0||r.dispose())}get event(){var e;return(e=this._event)!==null&&e!==void 0||(this._event=(t,i,r)=>{var o,s,a,l,u;if(this._leakageMon&&this._size>this._leakageMon.threshold*3||this._disposed)return De.None;i&&(t=t.bind(i));const c=new sY(t);let d;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(c.stack=oY.create(),d=this._leakageMon.check(c.stack,this._size+1)),this._listeners?this._listeners instanceof sY?((u=this._deliveryQueue)!==null&&u!==void 0||(this._deliveryQueue=new Qpe),this._listeners=[this._listeners,c]):this._listeners.push(c):((s=(o=this._options)===null||o===void 0?void 0:o.onWillAddFirstListener)===null||s===void 0||s.call(o,this),this._listeners=c,(l=(a=this._options)===null||a===void 0?void 0:a.onDidAddFirstListener)===null||l===void 0||l.call(a,this)),this._size++;const h=en(()=>{d==null||d(),this._removeListener(c)});return r instanceof je?r.add(h):Array.isArray(r)&&r.push(h),h}),this._event}_removeListener(e){var t,i,r,o;if((i=(t=this._options)===null||t===void 0?void 0:t.onWillRemoveListener)===null||i===void 0||i.call(t,this),!this._listeners)return;if(this._size===1){this._listeners=void 0,(o=(r=this._options)===null||r===void 0?void 0:r.onDidRemoveLastListener)===null||o===void 0||o.call(r,this),this._size=0;return}const s=this._listeners,a=s.indexOf(e);if(a===-1)throw new Error("Attempted to dispose unknown listener");this._size--,s[a]=void 0;const l=this._deliveryQueue.current===this;if(this._size*lht<=s.length){let u=0;for(let c=0;c0}};const uht=()=>new Qpe;class Qpe{constructor(){this.i=-1,this.end=0}enqueue(e,t,i){this.i=0,this.end=i,this.current=e,this.value=t}reset(){this.i=this.end,this.current=void 0,this.value=void 0}}class SC extends be{constructor(e){super(e),this._isPaused=0,this._eventQueue=new Ua,this._mergeFn=e==null?void 0:e.merge}pause(){this._isPaused++}resume(){if(this._isPaused!==0&&--this._isPaused===0)if(this._mergeFn){if(this._eventQueue.size>0){const e=Array.from(this._eventQueue);this._eventQueue.clear(),super.fire(this._mergeFn(e))}}else for(;!this._isPaused&&this._eventQueue.size!==0;)super.fire(this._eventQueue.shift())}fire(e){this._size&&(this._isPaused!==0?this._eventQueue.push(e):super.fire(e))}}class $pe extends SC{constructor(e){var t;super(e),this._delay=(t=e.delay)!==null&&t!==void 0?t:100}fire(e){this._handle||(this.pause(),this._handle=setTimeout(()=>{this._handle=void 0,this.resume()},this._delay)),super.fire(e)}}class cht extends be{constructor(e){super(e),this._queuedEvents=[],this._mergeFn=e==null?void 0:e.merge}fire(e){this.hasListeners()&&(this._queuedEvents.push(e),this._queuedEvents.length===1&&queueMicrotask(()=>{this._mergeFn?super.fire(this._mergeFn(this._queuedEvents)):this._queuedEvents.forEach(t=>super.fire(t)),this._queuedEvents=[]}))}}class dht{constructor(){this.hasListeners=!1,this.events=[],this.emitter=new be({onWillAddFirstListener:()=>this.onFirstListenerAdd(),onDidRemoveLastListener:()=>this.onLastListenerRemove()})}get event(){return this.emitter.event}add(e){const t={event:e,listener:null};return this.events.push(t),this.hasListeners&&this.hook(t),en(BI(()=>{this.hasListeners&&this.unhook(t);const r=this.events.indexOf(t);this.events.splice(r,1)}))}onFirstListenerAdd(){this.hasListeners=!0,this.events.forEach(e=>this.hook(e))}onLastListenerRemove(){this.hasListeners=!1,this.events.forEach(e=>this.unhook(e))}hook(e){e.listener=e.event(t=>this.emitter.fire(t))}unhook(e){var t;(t=e.listener)===null||t===void 0||t.dispose(),e.listener=null}dispose(){var e;this.emitter.dispose();for(const t of this.events)(e=t.listener)===null||e===void 0||e.dispose();this.events=[]}}class aY{constructor(){this.buffers=[]}wrapEvent(e){return(t,i,r)=>e(o=>{const s=this.buffers[this.buffers.length-1];s?s.push(()=>t.call(i,o)):t.call(i,o)},void 0,r)}bufferEvents(e){const t=[];this.buffers.push(t);const i=e();return this.buffers.pop(),t.forEach(r=>r()),i}}class qpe{constructor(){this.listening=!1,this.inputEvent=ft.None,this.inputEventListener=De.None,this.emitter=new be({onDidAddFirstListener:()=>{this.listening=!0,this.inputEventListener=this.inputEvent(this.emitter.fire,this.emitter)},onDidRemoveLastListener:()=>{this.listening=!1,this.inputEventListener.dispose()}}),this.event=this.emitter.event}set input(e){this.inputEvent=e,this.listening&&(this.inputEventListener.dispose(),this.inputEventListener=e(this.emitter.fire,this.emitter))}dispose(){this.inputEventListener.dispose(),this.emitter.dispose()}}const ebe=Object.freeze(function(n,e){const t=setTimeout(n.bind(e),0);return{dispose(){clearTimeout(t)}}});var Hn;(function(n){function e(t){return t===n.None||t===n.Cancelled||t instanceof s5?!0:!t||typeof t!="object"?!1:typeof t.isCancellationRequested=="boolean"&&typeof t.onCancellationRequested=="function"}n.isCancellationToken=e,n.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:ft.None}),n.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:ebe})})(Hn||(Hn={}));class s5{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?ebe:(this._emitter||(this._emitter=new be),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}let co=class{constructor(e){this._token=void 0,this._parentListener=void 0,this._parentListener=e&&e.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new s5),this._token}cancel(){this._token?this._token instanceof s5&&this._token.cancel():this._token=Hn.Cancelled}dispose(e=!1){var t;e&&this.cancel(),(t=this._parentListener)===null||t===void 0||t.dispose(),this._token?this._token instanceof s5&&this._token.dispose():this._token=Hn.None}};const tbe=Symbol("MicrotaskDelay");function lY(n){return!!n&&typeof n.then=="function"}function $o(n){const e=new co,t=n(e.token),i=new Promise((r,o)=>{const s=e.token.onCancellationRequested(()=>{s.dispose(),o(new bb)});Promise.resolve(t).then(a=>{s.dispose(),e.dispose(),r(a)},a=>{s.dispose(),e.dispose(),o(a)})});return new class{cancel(){e.cancel(),e.dispose()}then(r,o){return i.then(r,o)}catch(r){return this.then(void 0,r)}finally(r){return i.finally(r)}}}function LF(n,e,t){return new Promise((i,r)=>{const o=e.onCancellationRequested(()=>{o.dispose(),i(t)});n.then(i,r).finally(()=>o.dispose())})}class hht{constructor(){this.isDisposed=!1,this.activePromise=null,this.queuedPromise=null,this.queuedPromiseFactory=null}queue(e){if(this.isDisposed)return Promise.reject(new Error("Throttler is disposed"));if(this.activePromise){if(this.queuedPromiseFactory=e,!this.queuedPromise){const t=()=>{if(this.queuedPromise=null,this.isDisposed)return;const i=this.queue(this.queuedPromiseFactory);return this.queuedPromiseFactory=null,i};this.queuedPromise=new Promise(i=>{this.activePromise.then(t,t).then(i)})}return new Promise((t,i)=>{this.queuedPromise.then(t,i)})}return this.activePromise=e(),new Promise((t,i)=>{this.activePromise.then(r=>{this.activePromise=null,t(r)},r=>{this.activePromise=null,i(r)})})}dispose(){this.isDisposed=!0}}const ght=(n,e)=>{let t=!0;const i=setTimeout(()=>{t=!1,e()},n);return{isTriggered:()=>t,dispose:()=>{clearTimeout(i),t=!1}}},mht=n=>{let e=!0;return queueMicrotask(()=>{e&&(e=!1,n())}),{isTriggered:()=>e,dispose:()=>{e=!1}}};class gd{constructor(e){this.defaultDelay=e,this.deferred=null,this.completionPromise=null,this.doResolve=null,this.doReject=null,this.task=null}trigger(e,t=this.defaultDelay){this.task=e,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise((r,o)=>{this.doResolve=r,this.doReject=o}).then(()=>{if(this.completionPromise=null,this.doResolve=null,this.task){const r=this.task;return this.task=null,r()}}));const i=()=>{var r;this.deferred=null,(r=this.doResolve)===null||r===void 0||r.call(this,null)};return this.deferred=t===tbe?mht(i):ght(t,i),this.completionPromise}isTriggered(){var e;return!!(!((e=this.deferred)===null||e===void 0)&&e.isTriggered())}cancel(){var e;this.cancelTimeout(),this.completionPromise&&((e=this.doReject)===null||e===void 0||e.call(this,new bb),this.completionPromise=null)}cancelTimeout(){var e;(e=this.deferred)===null||e===void 0||e.dispose(),this.deferred=null}dispose(){this.cancel()}}class nbe{constructor(e){this.delayer=new gd(e),this.throttler=new hht}trigger(e,t){return this.delayer.trigger(()=>this.throttler.queue(e),t)}cancel(){this.delayer.cancel()}dispose(){this.delayer.dispose(),this.throttler.dispose()}}function xC(n,e){return e?new Promise((t,i)=>{const r=setTimeout(()=>{o.dispose(),t()},n),o=e.onCancellationRequested(()=>{clearTimeout(r),o.dispose(),i(new bb)})}):$o(t=>xC(n,t))}function Cb(n,e=0,t){const i=setTimeout(()=>{n(),t&&r.dispose()},e),r=en(()=>{clearTimeout(i),t==null||t.deleteAndLeak(r)});return t==null||t.add(r),r}function uY(n,e=i=>!!i,t=null){let i=0;const r=n.length,o=()=>{if(i>=r)return Promise.resolve(t);const s=n[i++];return Promise.resolve(s()).then(l=>e(l)?Promise.resolve(l):o())};return o()}class md{constructor(e,t){this._token=-1,typeof e=="function"&&typeof t=="number"&&this.setIfNotSet(e,t)}dispose(){this.cancel()}cancel(){this._token!==-1&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(e,t){this.cancel(),this._token=setTimeout(()=>{this._token=-1,e()},t)}setIfNotSet(e,t){this._token===-1&&(this._token=setTimeout(()=>{this._token=-1,e()},t))}}class cY{constructor(){this.disposable=void 0}cancel(){var e;(e=this.disposable)===null||e===void 0||e.dispose(),this.disposable=void 0}cancelAndSet(e,t,i=globalThis){this.cancel();const r=i.setInterval(()=>{e()},t);this.disposable=en(()=>{i.clearInterval(r),this.disposable=void 0})}dispose(){this.cancel()}}class Vi{constructor(e,t){this.timeoutToken=-1,this.runner=e,this.timeout=t,this.timeoutHandler=this.onTimeout.bind(this)}dispose(){this.cancel(),this.runner=null}cancel(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)}schedule(e=this.timeout){this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,e)}get delay(){return this.timeout}set delay(e){this.timeout=e}isScheduled(){return this.timeoutToken!==-1}onTimeout(){this.timeoutToken=-1,this.runner&&this.doRun()}doRun(){var e;(e=this.runner)===null||e===void 0||e.call(this)}}let ibe,FF;(function(){typeof globalThis.requestIdleCallback!="function"||typeof globalThis.cancelIdleCallback!="function"?FF=(n,e)=>{Ope(()=>{if(t)return;const i=Date.now()+15;e(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,i-Date.now())}}))});let t=!1;return{dispose(){t||(t=!0)}}}:FF=(n,e,t)=>{const i=n.requestIdleCallback(e,typeof t=="number"?{timeout:t}:void 0);let r=!1;return{dispose(){r||(r=!0,n.cancelIdleCallback(i))}}},ibe=n=>FF(globalThis,n)})();class rbe{constructor(e,t){this._didRun=!1,this._executor=()=>{try{this._value=t()}catch(i){this._error=i}finally{this._didRun=!0}},this._handle=FF(e,()=>this._executor())}dispose(){this._handle.dispose()}get value(){if(this._didRun||(this._handle.dispose(),this._executor()),this._error)throw this._error;return this._value}get isInitialized(){return this._didRun}}class fht extends rbe{constructor(e){super(globalThis,e)}}class dY{get isRejected(){var e;return((e=this.outcome)===null||e===void 0?void 0:e.outcome)===1}get isSettled(){return!!this.outcome}constructor(){this.p=new Promise((e,t)=>{this.completeCallback=e,this.errorCallback=t})}complete(e){return new Promise(t=>{this.completeCallback(e),this.outcome={outcome:0,value:e},t()})}error(e){return new Promise(t=>{this.errorCallback(e),this.outcome={outcome:1,value:e},t()})}cancel(){return this.error(new bb)}}var hY;(function(n){async function e(i){let r;const o=await Promise.all(i.map(s=>s.then(a=>a,a=>{r||(r=a)})));if(typeof r<"u")throw r;return o}n.settled=e;function t(i){return new Promise(async(r,o)=>{try{await i(r,o)}catch(s){o(s)}})}n.withAsyncBody=t})(hY||(hY={}));class So{static fromArray(e){return new So(t=>{t.emitMany(e)})}static fromPromise(e){return new So(async t=>{t.emitMany(await e)})}static fromPromises(e){return new So(async t=>{await Promise.all(e.map(async i=>t.emitOne(await i)))})}static merge(e){return new So(async t=>{await Promise.all(e.map(async i=>{for await(const r of i)t.emitOne(r)}))})}constructor(e){this._state=0,this._results=[],this._error=null,this._onStateChanged=new be,queueMicrotask(async()=>{const t={emitOne:i=>this.emitOne(i),emitMany:i=>this.emitMany(i),reject:i=>this.reject(i)};try{await Promise.resolve(e(t)),this.resolve()}catch(i){this.reject(i)}finally{t.emitOne=void 0,t.emitMany=void 0,t.reject=void 0}})}[Symbol.asyncIterator](){let e=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(e{for await(const r of e)i.emitOne(t(r))})}map(e){return So.map(this,e)}static filter(e,t){return new So(async i=>{for await(const r of e)t(r)&&i.emitOne(r)})}filter(e){return So.filter(this,e)}static coalesce(e){return So.filter(e,t=>!!t)}coalesce(){return So.coalesce(this)}static async toPromise(e){const t=[];for await(const i of e)t.push(i);return t}toPromise(){return So.toPromise(this)}emitOne(e){this._state===0&&(this._results.push(e),this._onStateChanged.fire())}emitMany(e){this._state===0&&(this._results=this._results.concat(e),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(e){this._state===0&&(this._state=2,this._error=e,this._onStateChanged.fire())}}So.EMPTY=So.fromArray([]);class pht extends So{constructor(e,t){super(t),this._source=e}cancel(){this._source.cancel()}}function bht(n){const e=new co,t=n(e.token);return new pht(e,async i=>{const r=e.token.onCancellationRequested(()=>{r.dispose(),e.dispose(),i.reject(new bb)});try{for await(const o of t){if(e.token.isCancellationRequested)return;i.emitOne(o)}r.dispose(),e.dispose()}catch(o){r.dispose(),e.dispose(),i.reject(o)}})}/*! @license DOMPurify 3.0.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.5/LICENSE */const{entries:obe,setPrototypeOf:sbe,isFrozen:Cht,getPrototypeOf:vht,getOwnPropertyDescriptor:yht}=Object;let{freeze:tu,seal:hh,create:Iht}=Object,{apply:gY,construct:mY}=typeof Reflect<"u"&&Reflect;gY||(gY=function(e,t,i){return e.apply(t,i)}),tu||(tu=function(e){return e}),hh||(hh=function(e){return e}),mY||(mY=function(e,t){return new e(...t)});const wht=fd(Array.prototype.forEach),abe=fd(Array.prototype.pop),_F=fd(Array.prototype.push),a5=fd(String.prototype.toLowerCase),fY=fd(String.prototype.toString),Sht=fd(String.prototype.match),gh=fd(String.prototype.replace),xht=fd(String.prototype.indexOf),Lht=fd(String.prototype.trim),Ic=fd(RegExp.prototype.test),DF=Fht(TypeError);function fd(n){return function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r/gm),kht=hh(/\${[\w\W]*}/gm),Mht=hh(/^data-[\-\w.\u00B7-\uFFFF]/),Zht=hh(/^aria-[\-\w]+$/),hbe=hh(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Tht=hh(/^(?:\w+script|data):/i),Eht=hh(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),gbe=hh(/^html$/i);var mbe=Object.freeze({__proto__:null,MUSTACHE_EXPR:Aht,ERB_EXPR:Nht,TMPLIT_EXPR:kht,DATA_ATTR:Mht,ARIA_ATTR:Zht,IS_ALLOWED_URI:hbe,IS_SCRIPT_OR_DATA:Tht,ATTR_WHITESPACE:Eht,DOCTYPE_NAME:gbe});const Wht=()=>typeof window>"u"?null:window,Rht=function(e,t){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let i=null;const r="data-tt-policy-suffix";t&&t.hasAttribute(r)&&(i=t.getAttribute(r));const o="dompurify"+(i?"#"+i:"");try{return e.createPolicy(o,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return null}};function fbe(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Wht();const e=kt=>fbe(kt);if(e.version="3.0.5",e.removed=[],!n||!n.document||n.document.nodeType!==9)return e.isSupported=!1,e;const t=n.document,i=t.currentScript;let{document:r}=n;const{DocumentFragment:o,HTMLTemplateElement:s,Node:a,Element:l,NodeFilter:u,NamedNodeMap:c=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:d,DOMParser:h,trustedTypes:g}=n,m=l.prototype,f=l5(m,"cloneNode"),b=l5(m,"nextSibling"),C=l5(m,"childNodes"),v=l5(m,"parentNode");if(typeof s=="function"){const kt=r.createElement("template");kt.content&&kt.content.ownerDocument&&(r=kt.content.ownerDocument)}let w,S="";const{implementation:F,createNodeIterator:L,createDocumentFragment:D,getElementsByTagName:A}=r,{importNode:M}=t;let W={};e.isSupported=typeof obe=="function"&&typeof v=="function"&&F&&F.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:Z,ERB_EXPR:T,TMPLIT_EXPR:E,DATA_ATTR:V,ARIA_ATTR:z,IS_SCRIPT_OR_DATA:O,ATTR_WHITESPACE:P}=mbe;let{IS_ALLOWED_URI:B}=mbe,Y=null;const k=Ri({},[...lbe,...pY,...bY,...CY,...ube]);let X=null;const U=Ri({},[...cbe,...vY,...dbe,...u5]);let R=Object.seal(Object.create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),ee=null,oe=null,se=!0,ue=!0,ce=!1,ye=!0,fe=!1,le=!1,Ze=!1,ke=!1,Ne=!1,ze=!1,Ke=!1,ut=!0,Ct=!1;const ot="user-content-";let he=!0,de=!1,ge={},j=null;const Q=Ri({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let q=null;const te=Ri({},["audio","video","img","source","image","track"]);let Ce=null;const Le=Ri({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ae="http://www.w3.org/1998/Math/MathML",Oe="http://www.w3.org/2000/svg",tt="http://www.w3.org/1999/xhtml";let We=tt,ht=!1,He=null;const Re=Ri({},[Ae,Oe,tt],fY);let dt;const yt=["application/xhtml+xml","text/html"],Kt="text/html";let Wt,Ut=null;const Nn=r.createElement("form"),di=function(Ie){return Ie instanceof RegExp||Ie instanceof Function},pe=function(Ie){if(!(Ut&&Ut===Ie)){if((!Ie||typeof Ie!="object")&&(Ie={}),Ie=YI(Ie),dt=yt.indexOf(Ie.PARSER_MEDIA_TYPE)===-1?dt=Kt:dt=Ie.PARSER_MEDIA_TYPE,Wt=dt==="application/xhtml+xml"?fY:a5,Y="ALLOWED_TAGS"in Ie?Ri({},Ie.ALLOWED_TAGS,Wt):k,X="ALLOWED_ATTR"in Ie?Ri({},Ie.ALLOWED_ATTR,Wt):U,He="ALLOWED_NAMESPACES"in Ie?Ri({},Ie.ALLOWED_NAMESPACES,fY):Re,Ce="ADD_URI_SAFE_ATTR"in Ie?Ri(YI(Le),Ie.ADD_URI_SAFE_ATTR,Wt):Le,q="ADD_DATA_URI_TAGS"in Ie?Ri(YI(te),Ie.ADD_DATA_URI_TAGS,Wt):te,j="FORBID_CONTENTS"in Ie?Ri({},Ie.FORBID_CONTENTS,Wt):Q,ee="FORBID_TAGS"in Ie?Ri({},Ie.FORBID_TAGS,Wt):{},oe="FORBID_ATTR"in Ie?Ri({},Ie.FORBID_ATTR,Wt):{},ge="USE_PROFILES"in Ie?Ie.USE_PROFILES:!1,se=Ie.ALLOW_ARIA_ATTR!==!1,ue=Ie.ALLOW_DATA_ATTR!==!1,ce=Ie.ALLOW_UNKNOWN_PROTOCOLS||!1,ye=Ie.ALLOW_SELF_CLOSE_IN_ATTR!==!1,fe=Ie.SAFE_FOR_TEMPLATES||!1,le=Ie.WHOLE_DOCUMENT||!1,Ne=Ie.RETURN_DOM||!1,ze=Ie.RETURN_DOM_FRAGMENT||!1,Ke=Ie.RETURN_TRUSTED_TYPE||!1,ke=Ie.FORCE_BODY||!1,ut=Ie.SANITIZE_DOM!==!1,Ct=Ie.SANITIZE_NAMED_PROPS||!1,he=Ie.KEEP_CONTENT!==!1,de=Ie.IN_PLACE||!1,B=Ie.ALLOWED_URI_REGEXP||hbe,We=Ie.NAMESPACE||tt,R=Ie.CUSTOM_ELEMENT_HANDLING||{},Ie.CUSTOM_ELEMENT_HANDLING&&di(Ie.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(R.tagNameCheck=Ie.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Ie.CUSTOM_ELEMENT_HANDLING&&di(Ie.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(R.attributeNameCheck=Ie.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Ie.CUSTOM_ELEMENT_HANDLING&&typeof Ie.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(R.allowCustomizedBuiltInElements=Ie.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),fe&&(ue=!1),ze&&(Ne=!0),ge&&(Y=Ri({},[...ube]),X=[],ge.html===!0&&(Ri(Y,lbe),Ri(X,cbe)),ge.svg===!0&&(Ri(Y,pY),Ri(X,vY),Ri(X,u5)),ge.svgFilters===!0&&(Ri(Y,bY),Ri(X,vY),Ri(X,u5)),ge.mathMl===!0&&(Ri(Y,CY),Ri(X,dbe),Ri(X,u5))),Ie.ADD_TAGS&&(Y===k&&(Y=YI(Y)),Ri(Y,Ie.ADD_TAGS,Wt)),Ie.ADD_ATTR&&(X===U&&(X=YI(X)),Ri(X,Ie.ADD_ATTR,Wt)),Ie.ADD_URI_SAFE_ATTR&&Ri(Ce,Ie.ADD_URI_SAFE_ATTR,Wt),Ie.FORBID_CONTENTS&&(j===Q&&(j=YI(j)),Ri(j,Ie.FORBID_CONTENTS,Wt)),he&&(Y["#text"]=!0),le&&Ri(Y,["html","head","body"]),Y.table&&(Ri(Y,["tbody"]),delete ee.tbody),Ie.TRUSTED_TYPES_POLICY){if(typeof Ie.TRUSTED_TYPES_POLICY.createHTML!="function")throw DF('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Ie.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw DF('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');w=Ie.TRUSTED_TYPES_POLICY,S=w.createHTML("")}else w===void 0&&(w=Rht(g,i)),w!==null&&typeof S=="string"&&(S=w.createHTML(""));tu&&tu(Ie),Ut=Ie}},xe=Ri({},["mi","mo","mn","ms","mtext"]),_e=Ri({},["foreignobject","desc","title","annotation-xml"]),Pe=Ri({},["title","style","font","a","script"]),qe=Ri({},pY);Ri(qe,bY),Ri(qe,_ht);const nt=Ri({},CY);Ri(nt,Dht);const wt=function(Ie){let Ue=v(Ie);(!Ue||!Ue.tagName)&&(Ue={namespaceURI:We,tagName:"template"});const gt=a5(Ie.tagName),nn=a5(Ue.tagName);return He[Ie.namespaceURI]?Ie.namespaceURI===Oe?Ue.namespaceURI===tt?gt==="svg":Ue.namespaceURI===Ae?gt==="svg"&&(nn==="annotation-xml"||xe[nn]):!!qe[gt]:Ie.namespaceURI===Ae?Ue.namespaceURI===tt?gt==="math":Ue.namespaceURI===Oe?gt==="math"&&_e[nn]:!!nt[gt]:Ie.namespaceURI===tt?Ue.namespaceURI===Oe&&!_e[nn]||Ue.namespaceURI===Ae&&!xe[nn]?!1:!nt[gt]&&(Pe[gt]||!qe[gt]):!!(dt==="application/xhtml+xml"&&He[Ie.namespaceURI]):!1},St=function(Ie){_F(e.removed,{element:Ie});try{Ie.parentNode.removeChild(Ie)}catch{Ie.remove()}},et=function(Ie,Ue){try{_F(e.removed,{attribute:Ue.getAttributeNode(Ie),from:Ue})}catch{_F(e.removed,{attribute:null,from:Ue})}if(Ue.removeAttribute(Ie),Ie==="is"&&!X[Ie])if(Ne||ze)try{St(Ue)}catch{}else try{Ue.setAttribute(Ie,"")}catch{}},xt=function(Ie){let Ue,gt;if(ke)Ie=""+Ie;else{const Zn=Sht(Ie,/^[\r\n\t ]+/);gt=Zn&&Zn[0]}dt==="application/xhtml+xml"&&We===tt&&(Ie=''+Ie+"");const nn=w?w.createHTML(Ie):Ie;if(We===tt)try{Ue=new h().parseFromString(nn,dt)}catch{}if(!Ue||!Ue.documentElement){Ue=F.createDocument(We,"template",null);try{Ue.documentElement.innerHTML=ht?S:nn}catch{}}const Kn=Ue.body||Ue.documentElement;return Ie&>&&Kn.insertBefore(r.createTextNode(gt),Kn.childNodes[0]||null),We===tt?A.call(Ue,le?"html":"body")[0]:le?Ue.documentElement:Kn},Zt=function(Ie){return L.call(Ie.ownerDocument||Ie,Ie,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT,null,!1)},Mt=function(Ie){return Ie instanceof d&&(typeof Ie.nodeName!="string"||typeof Ie.textContent!="string"||typeof Ie.removeChild!="function"||!(Ie.attributes instanceof c)||typeof Ie.removeAttribute!="function"||typeof Ie.setAttribute!="function"||typeof Ie.namespaceURI!="string"||typeof Ie.insertBefore!="function"||typeof Ie.hasChildNodes!="function")},zt=function(Ie){return typeof a=="object"?Ie instanceof a:Ie&&typeof Ie=="object"&&typeof Ie.nodeType=="number"&&typeof Ie.nodeName=="string"},jt=function(Ie,Ue,gt){W[Ie]&&wht(W[Ie],nn=>{nn.call(e,Ue,gt,Ut)})},ri=function(Ie){let Ue;if(jt("beforeSanitizeElements",Ie,null),Mt(Ie))return St(Ie),!0;const gt=Wt(Ie.nodeName);if(jt("uponSanitizeElement",Ie,{tagName:gt,allowedTags:Y}),Ie.hasChildNodes()&&!zt(Ie.firstElementChild)&&(!zt(Ie.content)||!zt(Ie.content.firstElementChild))&&Ic(/<[/\w]/g,Ie.innerHTML)&&Ic(/<[/\w]/g,Ie.textContent))return St(Ie),!0;if(!Y[gt]||ee[gt]){if(!ee[gt]&&Mn(gt)&&(R.tagNameCheck instanceof RegExp&&Ic(R.tagNameCheck,gt)||R.tagNameCheck instanceof Function&&R.tagNameCheck(gt)))return!1;if(he&&!j[gt]){const nn=v(Ie)||Ie.parentNode,Kn=C(Ie)||Ie.childNodes;if(Kn&&nn){const Zn=Kn.length;for(let an=Zn-1;an>=0;--an)nn.insertBefore(f(Kn[an],!0),b(Ie))}}return St(Ie),!0}return Ie instanceof l&&!wt(Ie)||(gt==="noscript"||gt==="noembed"||gt==="noframes")&&Ic(/<\/no(script|embed|frames)/i,Ie.innerHTML)?(St(Ie),!0):(fe&&Ie.nodeType===3&&(Ue=Ie.textContent,Ue=gh(Ue,Z," "),Ue=gh(Ue,T," "),Ue=gh(Ue,E," "),Ie.textContent!==Ue&&(_F(e.removed,{element:Ie.cloneNode()}),Ie.textContent=Ue)),jt("afterSanitizeElements",Ie,null),!1)},Bn=function(Ie,Ue,gt){if(ut&&(Ue==="id"||Ue==="name")&&(gt in r||gt in Nn))return!1;if(!(ue&&!oe[Ue]&&Ic(V,Ue))){if(!(se&&Ic(z,Ue))){if(!X[Ue]||oe[Ue]){if(!(Mn(Ie)&&(R.tagNameCheck instanceof RegExp&&Ic(R.tagNameCheck,Ie)||R.tagNameCheck instanceof Function&&R.tagNameCheck(Ie))&&(R.attributeNameCheck instanceof RegExp&&Ic(R.attributeNameCheck,Ue)||R.attributeNameCheck instanceof Function&&R.attributeNameCheck(Ue))||Ue==="is"&&R.allowCustomizedBuiltInElements&&(R.tagNameCheck instanceof RegExp&&Ic(R.tagNameCheck,gt)||R.tagNameCheck instanceof Function&&R.tagNameCheck(gt))))return!1}else if(!Ce[Ue]){if(!Ic(B,gh(gt,P,""))){if(!((Ue==="src"||Ue==="xlink:href"||Ue==="href")&&Ie!=="script"&&xht(gt,"data:")===0&&q[Ie])){if(!(ce&&!Ic(O,gh(gt,P,"")))){if(gt)return!1}}}}}}return!0},Mn=function(Ie){return Ie.indexOf("-")>0},Yt=function(Ie){let Ue,gt,nn,Kn;jt("beforeSanitizeAttributes",Ie,null);const{attributes:Zn}=Ie;if(!Zn)return;const an={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:X};for(Kn=Zn.length;Kn--;){Ue=Zn[Kn];const{name:Wn,namespaceURI:wn}=Ue;if(gt=Wn==="value"?Ue.value:Lht(Ue.value),nn=Wt(Wn),an.attrName=nn,an.attrValue=gt,an.keepAttr=!0,an.forceKeepAttr=void 0,jt("uponSanitizeAttribute",Ie,an),gt=an.attrValue,an.forceKeepAttr||(et(Wn,Ie),!an.keepAttr))continue;if(!ye&&Ic(/\/>/i,gt)){et(Wn,Ie);continue}fe&&(gt=gh(gt,Z," "),gt=gh(gt,T," "),gt=gh(gt,E," "));const pr=Wt(Ie.nodeName);if(Bn(pr,nn,gt)){if(Ct&&(nn==="id"||nn==="name")&&(et(Wn,Ie),gt=ot+gt),w&&typeof g=="object"&&typeof g.getAttributeType=="function"&&!wn)switch(g.getAttributeType(pr,nn)){case"TrustedHTML":{gt=w.createHTML(gt);break}case"TrustedScriptURL":{gt=w.createScriptURL(gt);break}}try{wn?Ie.setAttributeNS(wn,Wn,gt):Ie.setAttribute(Wn,gt),abe(e.removed)}catch{}}}jt("afterSanitizeAttributes",Ie,null)},bn=function kt(Ie){let Ue;const gt=Zt(Ie);for(jt("beforeSanitizeShadowDOM",Ie,null);Ue=gt.nextNode();)jt("uponSanitizeShadowNode",Ue,null),!ri(Ue)&&(Ue.content instanceof o&&kt(Ue.content),Yt(Ue));jt("afterSanitizeShadowDOM",Ie,null)};return e.sanitize=function(kt){let Ie=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Ue,gt,nn,Kn;if(ht=!kt,ht&&(kt=""),typeof kt!="string"&&!zt(kt))if(typeof kt.toString=="function"){if(kt=kt.toString(),typeof kt!="string")throw DF("dirty is not a string, aborting")}else throw DF("toString is not a function");if(!e.isSupported)return kt;if(Ze||pe(Ie),e.removed=[],typeof kt=="string"&&(de=!1),de){if(kt.nodeName){const Wn=Wt(kt.nodeName);if(!Y[Wn]||ee[Wn])throw DF("root node is forbidden and cannot be sanitized in-place")}}else if(kt instanceof a)Ue=xt(""),gt=Ue.ownerDocument.importNode(kt,!0),gt.nodeType===1&>.nodeName==="BODY"||gt.nodeName==="HTML"?Ue=gt:Ue.appendChild(gt);else{if(!Ne&&!fe&&!le&&kt.indexOf("<")===-1)return w&&Ke?w.createHTML(kt):kt;if(Ue=xt(kt),!Ue)return Ne?null:Ke?S:""}Ue&&ke&&St(Ue.firstChild);const Zn=Zt(de?kt:Ue);for(;nn=Zn.nextNode();)ri(nn)||(nn.content instanceof o&&bn(nn.content),Yt(nn));if(de)return kt;if(Ne){if(ze)for(Kn=D.call(Ue.ownerDocument);Ue.firstChild;)Kn.appendChild(Ue.firstChild);else Kn=Ue;return(X.shadowroot||X.shadowrootmode)&&(Kn=M.call(t,Kn,!0)),Kn}let an=le?Ue.outerHTML:Ue.innerHTML;return le&&Y["!doctype"]&&Ue.ownerDocument&&Ue.ownerDocument.doctype&&Ue.ownerDocument.doctype.name&&Ic(gbe,Ue.ownerDocument.doctype.name)&&(an=" +`+an),fe&&(an=gh(an,Z," "),an=gh(an,T," "),an=gh(an,E," ")),w&&Ke?w.createHTML(an):an},e.setConfig=function(kt){pe(kt),Ze=!0},e.clearConfig=function(){Ut=null,Ze=!1},e.isValidAttribute=function(kt,Ie,Ue){Ut||pe({});const gt=Wt(kt),nn=Wt(Ie);return Bn(gt,nn,Ue)},e.addHook=function(kt,Ie){typeof Ie=="function"&&(W[kt]=W[kt]||[],_F(W[kt],Ie))},e.removeHook=function(kt){if(W[kt])return abe(W[kt])},e.removeHooks=function(kt){W[kt]&&(W[kt]=[])},e.removeAllHooks=function(){W={}},e}var kg=fbe();kg.version,kg.isSupported;const pbe=kg.sanitize;kg.setConfig,kg.clearConfig,kg.isValidAttribute;const yY=kg.addHook,bbe=kg.removeHook;kg.removeHooks,kg.removeAllHooks;class Ght{constructor(e){this.fn=e,this.lastCache=void 0,this.lastArgKey=void 0}get(e){const t=JSON.stringify(e);return this.lastArgKey!==t&&(this.lastArgKey=t,this.lastCache=this.fn(e)),this.lastCache}}class Cbe{get cachedValues(){return this._map}constructor(e){this.fn=e,this._map=new Map}get(e){if(this._map.has(e))return this._map.get(e);const t=this.fn(e);return this._map.set(e,t),t}}class Mg{constructor(e){this.executor=e,this._didRun=!1}get value(){if(!this._didRun)try{this._value=this.executor()}catch(e){this._error=e}finally{this._didRun=!0}if(this._error)throw this._error;return this._value}get rawValue(){return this._value}}var HI;function vbe(n){return!n||typeof n!="string"?!0:n.trim().length===0}const Vht=/{(\d+)}/g;function UI(n,...e){return e.length===0?n:n.replace(Vht,function(t,i){const r=parseInt(i,10);return isNaN(r)||r<0||r>=e.length?t:e[r]})}function Xht(n){return n.replace(/[<>"'&]/g,e=>{switch(e){case"<":return"<";case">":return">";case'"':return""";case"'":return"'";case"&":return"&"}return e})}function c5(n){return n.replace(/[<>&]/g,function(e){switch(e){case"<":return"<";case">":return">";case"&":return"&";default:return e}})}function Zu(n){return n.replace(/[\\\{\}\*\+\?\|\^\$\.\[\]\(\)]/g,"\\$&")}function d5(n,e){if(!n||!e)return n;const t=e.length;if(t===0||n.length===0)return n;let i=0;for(;n.indexOf(e,i)===i;)i=i+t;return n.substring(i)}function Pht(n,e){if(!n||!e)return n;const t=e.length,i=n.length;if(t===0||i===0)return n;let r=i,o=-1;for(;o=n.lastIndexOf(e,r-1),!(o===-1||o+t!==r);){if(o===0)return"";r=o}return n.substring(0,r)}function Oht(n){return n.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}function ybe(n,e,t={}){if(!n)throw new Error("Cannot create regex from empty string");e||(n=Zu(n)),t.wholeWord&&(/\B/.test(n.charAt(0))||(n="\\b"+n),/\B/.test(n.charAt(n.length-1))||(n=n+"\\b"));let i="";return t.global&&(i+="g"),t.matchCase||(i+="i"),t.multiline&&(i+="m"),t.unicode&&(i+="u"),new RegExp(n,i)}function Bht(n){return n.source==="^"||n.source==="^$"||n.source==="$"||n.source==="^\\s*$"?!1:!!(n.exec("")&&n.lastIndex===0)}function Zg(n){return n.split(/\r\n|\r|\n/)}function zht(n){var e;const t=[],i=n.split(/(\r\n|\r|\n)/);for(let r=0;r=0;t--){const i=n.charCodeAt(t);if(i!==32&&i!==9)return t}return-1}function AF(n,e){return ne?1:0}function IY(n,e,t=0,i=n.length,r=0,o=e.length){for(;tu)return 1}const s=i-t,a=o-r;return sa?1:0}function wY(n,e){return NF(n,e,0,n.length,0,e.length)}function NF(n,e,t=0,i=n.length,r=0,o=e.length){for(;t=128||u>=128)return IY(n.toLowerCase(),e.toLowerCase(),t,i,r,o);vb(l)&&(l-=32),vb(u)&&(u-=32);const c=l-u;if(c!==0)return c}const s=i-t,a=o-r;return sa?1:0}function h5(n){return n>=48&&n<=57}function vb(n){return n>=97&&n<=122}function Tg(n){return n>=65&&n<=90}function JI(n,e){return n.length===e.length&&NF(n,e)===0}function SY(n,e){const t=e.length;return e.length>n.length?!1:NF(n,e,0,t)===0}function yb(n,e){const t=Math.min(n.length,e.length);let i;for(i=0;i1){const i=n.charCodeAt(e-2);if(qo(i))return xY(i,t)}return t}class LY{get offset(){return this._offset}constructor(e,t=0){this._str=e,this._len=e.length,this._offset=t}setOffset(e){this._offset=e}prevCodePoint(){const e=Yht(this._str,this._offset);return this._offset-=e>=65536?2:1,e}nextCodePoint(){const e=m5(this._str,this._len,this._offset);return this._offset+=e>=65536?2:1,e}eol(){return this._offset>=this._len}}class f5{get offset(){return this._iterator.offset}constructor(e,t=0){this._iterator=new LY(e,t)}nextGraphemeLength(){const e=wb.getInstance(),t=this._iterator,i=t.offset;let r=e.getGraphemeBreakType(t.nextCodePoint());for(;!t.eol();){const o=t.offset,s=e.getGraphemeBreakType(t.nextCodePoint());if(Lbe(r,s)){t.setOffset(o);break}r=s}return t.offset-i}prevGraphemeLength(){const e=wb.getInstance(),t=this._iterator,i=t.offset;let r=e.getGraphemeBreakType(t.prevCodePoint());for(;t.offset>0;){const o=t.offset,s=e.getGraphemeBreakType(t.prevCodePoint());if(Lbe(s,r)){t.setOffset(o);break}r=s}return i-t.offset}eol(){return this._iterator.eol()}}function FY(n,e){return new f5(n,e).nextGraphemeLength()}function Ibe(n,e){return new f5(n,e).prevGraphemeLength()}function Hht(n,e){e>0&&LC(n.charCodeAt(e))&&e--;const t=e+FY(n,e);return[t-Ibe(n,t),t]}let _Y;function Uht(){return/(?:[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05F4\u0608\u060B\u060D\u061B-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u0710\u0712-\u072F\u074D-\u07A5\u07B1-\u07EA\u07F4\u07F5\u07FA\u07FE-\u0815\u081A\u0824\u0828\u0830-\u0858\u085E-\u088E\u08A0-\u08C9\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFD3D\uFD50-\uFDC7\uFDF0-\uFDFC\uFE70-\uFEFC]|\uD802[\uDC00-\uDD1B\uDD20-\uDE00\uDE10-\uDE35\uDE40-\uDEE4\uDEEB-\uDF35\uDF40-\uDFFF]|\uD803[\uDC00-\uDD23\uDE80-\uDEA9\uDEAD-\uDF45\uDF51-\uDF81\uDF86-\uDFF6]|\uD83A[\uDC00-\uDCCF\uDD00-\uDD43\uDD4B-\uDFFF]|\uD83B[\uDC00-\uDEBB])/}function KI(n){return _Y||(_Y=Uht()),_Y.test(n)}const Jht=/^[\t\n\r\x20-\x7E]*$/;function kF(n){return Jht.test(n)}const wbe=/[\u2028\u2029]/;function Sbe(n){return wbe.test(n)}function Ib(n){return n>=11904&&n<=55215||n>=63744&&n<=64255||n>=65281&&n<=65374}function DY(n){return n>=127462&&n<=127487||n===8986||n===8987||n===9200||n===9203||n>=9728&&n<=10175||n===11088||n===11093||n>=127744&&n<=128591||n>=128640&&n<=128764||n>=128992&&n<=129008||n>=129280&&n<=129535||n>=129648&&n<=129782}const Kht="\uFEFF";function AY(n){return!!(n&&n.length>0&&n.charCodeAt(0)===65279)}function jht(n,e=!1){return n?(e&&(n=n.replace(/\\./g,"")),n.toLowerCase()!==n):!1}function xbe(n){return n=n%(2*26),n<26?String.fromCharCode(97+n):String.fromCharCode(65+n-26)}function Lbe(n,e){return n===0?e!==5&&e!==7:n===2&&e===3?!1:n===4||n===2||n===3||e===4||e===2||e===3?!0:!(n===8&&(e===8||e===9||e===11||e===12)||(n===11||n===9)&&(e===9||e===10)||(n===12||n===10)&&e===10||e===5||e===13||e===7||n===1||n===13&&e===14||n===6&&e===6)}class wb{static getInstance(){return wb._INSTANCE||(wb._INSTANCE=new wb),wb._INSTANCE}constructor(){this._data=Qht()}getGraphemeBreakType(e){if(e<32)return e===10?3:e===13?2:4;if(e<127)return 0;const t=this._data,i=t.length/3;let r=1;for(;r<=i;)if(et[3*r+1])r=2*r+1;else return t[3*r+2];return 0}}wb._INSTANCE=null;function Qht(){return JSON.parse("[0,0,0,51229,51255,12,44061,44087,12,127462,127487,6,7083,7085,5,47645,47671,12,54813,54839,12,128678,128678,14,3270,3270,5,9919,9923,14,45853,45879,12,49437,49463,12,53021,53047,12,71216,71218,7,128398,128399,14,129360,129374,14,2519,2519,5,4448,4519,9,9742,9742,14,12336,12336,14,44957,44983,12,46749,46775,12,48541,48567,12,50333,50359,12,52125,52151,12,53917,53943,12,69888,69890,5,73018,73018,5,127990,127990,14,128558,128559,14,128759,128760,14,129653,129655,14,2027,2035,5,2891,2892,7,3761,3761,5,6683,6683,5,8293,8293,4,9825,9826,14,9999,9999,14,43452,43453,5,44509,44535,12,45405,45431,12,46301,46327,12,47197,47223,12,48093,48119,12,48989,49015,12,49885,49911,12,50781,50807,12,51677,51703,12,52573,52599,12,53469,53495,12,54365,54391,12,65279,65279,4,70471,70472,7,72145,72147,7,119173,119179,5,127799,127818,14,128240,128244,14,128512,128512,14,128652,128652,14,128721,128722,14,129292,129292,14,129445,129450,14,129734,129743,14,1476,1477,5,2366,2368,7,2750,2752,7,3076,3076,5,3415,3415,5,4141,4144,5,6109,6109,5,6964,6964,5,7394,7400,5,9197,9198,14,9770,9770,14,9877,9877,14,9968,9969,14,10084,10084,14,43052,43052,5,43713,43713,5,44285,44311,12,44733,44759,12,45181,45207,12,45629,45655,12,46077,46103,12,46525,46551,12,46973,46999,12,47421,47447,12,47869,47895,12,48317,48343,12,48765,48791,12,49213,49239,12,49661,49687,12,50109,50135,12,50557,50583,12,51005,51031,12,51453,51479,12,51901,51927,12,52349,52375,12,52797,52823,12,53245,53271,12,53693,53719,12,54141,54167,12,54589,54615,12,55037,55063,12,69506,69509,5,70191,70193,5,70841,70841,7,71463,71467,5,72330,72342,5,94031,94031,5,123628,123631,5,127763,127765,14,127941,127941,14,128043,128062,14,128302,128317,14,128465,128467,14,128539,128539,14,128640,128640,14,128662,128662,14,128703,128703,14,128745,128745,14,129004,129007,14,129329,129330,14,129402,129402,14,129483,129483,14,129686,129704,14,130048,131069,14,173,173,4,1757,1757,1,2200,2207,5,2434,2435,7,2631,2632,5,2817,2817,5,3008,3008,5,3201,3201,5,3387,3388,5,3542,3542,5,3902,3903,7,4190,4192,5,6002,6003,5,6439,6440,5,6765,6770,7,7019,7027,5,7154,7155,7,8205,8205,13,8505,8505,14,9654,9654,14,9757,9757,14,9792,9792,14,9852,9853,14,9890,9894,14,9937,9937,14,9981,9981,14,10035,10036,14,11035,11036,14,42654,42655,5,43346,43347,7,43587,43587,5,44006,44007,7,44173,44199,12,44397,44423,12,44621,44647,12,44845,44871,12,45069,45095,12,45293,45319,12,45517,45543,12,45741,45767,12,45965,45991,12,46189,46215,12,46413,46439,12,46637,46663,12,46861,46887,12,47085,47111,12,47309,47335,12,47533,47559,12,47757,47783,12,47981,48007,12,48205,48231,12,48429,48455,12,48653,48679,12,48877,48903,12,49101,49127,12,49325,49351,12,49549,49575,12,49773,49799,12,49997,50023,12,50221,50247,12,50445,50471,12,50669,50695,12,50893,50919,12,51117,51143,12,51341,51367,12,51565,51591,12,51789,51815,12,52013,52039,12,52237,52263,12,52461,52487,12,52685,52711,12,52909,52935,12,53133,53159,12,53357,53383,12,53581,53607,12,53805,53831,12,54029,54055,12,54253,54279,12,54477,54503,12,54701,54727,12,54925,54951,12,55149,55175,12,68101,68102,5,69762,69762,7,70067,70069,7,70371,70378,5,70720,70721,7,71087,71087,5,71341,71341,5,71995,71996,5,72249,72249,7,72850,72871,5,73109,73109,5,118576,118598,5,121505,121519,5,127245,127247,14,127568,127569,14,127777,127777,14,127872,127891,14,127956,127967,14,128015,128016,14,128110,128172,14,128259,128259,14,128367,128368,14,128424,128424,14,128488,128488,14,128530,128532,14,128550,128551,14,128566,128566,14,128647,128647,14,128656,128656,14,128667,128673,14,128691,128693,14,128715,128715,14,128728,128732,14,128752,128752,14,128765,128767,14,129096,129103,14,129311,129311,14,129344,129349,14,129394,129394,14,129413,129425,14,129466,129471,14,129511,129535,14,129664,129666,14,129719,129722,14,129760,129767,14,917536,917631,5,13,13,2,1160,1161,5,1564,1564,4,1807,1807,1,2085,2087,5,2307,2307,7,2382,2383,7,2497,2500,5,2563,2563,7,2677,2677,5,2763,2764,7,2879,2879,5,2914,2915,5,3021,3021,5,3142,3144,5,3263,3263,5,3285,3286,5,3398,3400,7,3530,3530,5,3633,3633,5,3864,3865,5,3974,3975,5,4155,4156,7,4229,4230,5,5909,5909,7,6078,6085,7,6277,6278,5,6451,6456,7,6744,6750,5,6846,6846,5,6972,6972,5,7074,7077,5,7146,7148,7,7222,7223,5,7416,7417,5,8234,8238,4,8417,8417,5,9000,9000,14,9203,9203,14,9730,9731,14,9748,9749,14,9762,9763,14,9776,9783,14,9800,9811,14,9831,9831,14,9872,9873,14,9882,9882,14,9900,9903,14,9929,9933,14,9941,9960,14,9974,9974,14,9989,9989,14,10006,10006,14,10062,10062,14,10160,10160,14,11647,11647,5,12953,12953,14,43019,43019,5,43232,43249,5,43443,43443,5,43567,43568,7,43696,43696,5,43765,43765,7,44013,44013,5,44117,44143,12,44229,44255,12,44341,44367,12,44453,44479,12,44565,44591,12,44677,44703,12,44789,44815,12,44901,44927,12,45013,45039,12,45125,45151,12,45237,45263,12,45349,45375,12,45461,45487,12,45573,45599,12,45685,45711,12,45797,45823,12,45909,45935,12,46021,46047,12,46133,46159,12,46245,46271,12,46357,46383,12,46469,46495,12,46581,46607,12,46693,46719,12,46805,46831,12,46917,46943,12,47029,47055,12,47141,47167,12,47253,47279,12,47365,47391,12,47477,47503,12,47589,47615,12,47701,47727,12,47813,47839,12,47925,47951,12,48037,48063,12,48149,48175,12,48261,48287,12,48373,48399,12,48485,48511,12,48597,48623,12,48709,48735,12,48821,48847,12,48933,48959,12,49045,49071,12,49157,49183,12,49269,49295,12,49381,49407,12,49493,49519,12,49605,49631,12,49717,49743,12,49829,49855,12,49941,49967,12,50053,50079,12,50165,50191,12,50277,50303,12,50389,50415,12,50501,50527,12,50613,50639,12,50725,50751,12,50837,50863,12,50949,50975,12,51061,51087,12,51173,51199,12,51285,51311,12,51397,51423,12,51509,51535,12,51621,51647,12,51733,51759,12,51845,51871,12,51957,51983,12,52069,52095,12,52181,52207,12,52293,52319,12,52405,52431,12,52517,52543,12,52629,52655,12,52741,52767,12,52853,52879,12,52965,52991,12,53077,53103,12,53189,53215,12,53301,53327,12,53413,53439,12,53525,53551,12,53637,53663,12,53749,53775,12,53861,53887,12,53973,53999,12,54085,54111,12,54197,54223,12,54309,54335,12,54421,54447,12,54533,54559,12,54645,54671,12,54757,54783,12,54869,54895,12,54981,55007,12,55093,55119,12,55243,55291,10,66045,66045,5,68325,68326,5,69688,69702,5,69817,69818,5,69957,69958,7,70089,70092,5,70198,70199,5,70462,70462,5,70502,70508,5,70750,70750,5,70846,70846,7,71100,71101,5,71230,71230,7,71351,71351,5,71737,71738,5,72000,72000,7,72160,72160,5,72273,72278,5,72752,72758,5,72882,72883,5,73031,73031,5,73461,73462,7,94192,94193,7,119149,119149,7,121403,121452,5,122915,122916,5,126980,126980,14,127358,127359,14,127535,127535,14,127759,127759,14,127771,127771,14,127792,127793,14,127825,127867,14,127897,127899,14,127945,127945,14,127985,127986,14,128000,128007,14,128021,128021,14,128066,128100,14,128184,128235,14,128249,128252,14,128266,128276,14,128335,128335,14,128379,128390,14,128407,128419,14,128444,128444,14,128481,128481,14,128499,128499,14,128526,128526,14,128536,128536,14,128543,128543,14,128556,128556,14,128564,128564,14,128577,128580,14,128643,128645,14,128649,128649,14,128654,128654,14,128660,128660,14,128664,128664,14,128675,128675,14,128686,128689,14,128695,128696,14,128705,128709,14,128717,128719,14,128725,128725,14,128736,128741,14,128747,128748,14,128755,128755,14,128762,128762,14,128981,128991,14,129009,129023,14,129160,129167,14,129296,129304,14,129320,129327,14,129340,129342,14,129356,129356,14,129388,129392,14,129399,129400,14,129404,129407,14,129432,129442,14,129454,129455,14,129473,129474,14,129485,129487,14,129648,129651,14,129659,129660,14,129671,129679,14,129709,129711,14,129728,129730,14,129751,129753,14,129776,129782,14,917505,917505,4,917760,917999,5,10,10,3,127,159,4,768,879,5,1471,1471,5,1536,1541,1,1648,1648,5,1767,1768,5,1840,1866,5,2070,2073,5,2137,2139,5,2274,2274,1,2363,2363,7,2377,2380,7,2402,2403,5,2494,2494,5,2507,2508,7,2558,2558,5,2622,2624,7,2641,2641,5,2691,2691,7,2759,2760,5,2786,2787,5,2876,2876,5,2881,2884,5,2901,2902,5,3006,3006,5,3014,3016,7,3072,3072,5,3134,3136,5,3157,3158,5,3260,3260,5,3266,3266,5,3274,3275,7,3328,3329,5,3391,3392,7,3405,3405,5,3457,3457,5,3536,3537,7,3551,3551,5,3636,3642,5,3764,3772,5,3895,3895,5,3967,3967,7,3993,4028,5,4146,4151,5,4182,4183,7,4226,4226,5,4253,4253,5,4957,4959,5,5940,5940,7,6070,6070,7,6087,6088,7,6158,6158,4,6432,6434,5,6448,6449,7,6679,6680,5,6742,6742,5,6754,6754,5,6783,6783,5,6912,6915,5,6966,6970,5,6978,6978,5,7042,7042,7,7080,7081,5,7143,7143,7,7150,7150,7,7212,7219,5,7380,7392,5,7412,7412,5,8203,8203,4,8232,8232,4,8265,8265,14,8400,8412,5,8421,8432,5,8617,8618,14,9167,9167,14,9200,9200,14,9410,9410,14,9723,9726,14,9733,9733,14,9745,9745,14,9752,9752,14,9760,9760,14,9766,9766,14,9774,9774,14,9786,9786,14,9794,9794,14,9823,9823,14,9828,9828,14,9833,9850,14,9855,9855,14,9875,9875,14,9880,9880,14,9885,9887,14,9896,9897,14,9906,9916,14,9926,9927,14,9935,9935,14,9939,9939,14,9962,9962,14,9972,9972,14,9978,9978,14,9986,9986,14,9997,9997,14,10002,10002,14,10017,10017,14,10055,10055,14,10071,10071,14,10133,10135,14,10548,10549,14,11093,11093,14,12330,12333,5,12441,12442,5,42608,42610,5,43010,43010,5,43045,43046,5,43188,43203,7,43302,43309,5,43392,43394,5,43446,43449,5,43493,43493,5,43571,43572,7,43597,43597,7,43703,43704,5,43756,43757,5,44003,44004,7,44009,44010,7,44033,44059,12,44089,44115,12,44145,44171,12,44201,44227,12,44257,44283,12,44313,44339,12,44369,44395,12,44425,44451,12,44481,44507,12,44537,44563,12,44593,44619,12,44649,44675,12,44705,44731,12,44761,44787,12,44817,44843,12,44873,44899,12,44929,44955,12,44985,45011,12,45041,45067,12,45097,45123,12,45153,45179,12,45209,45235,12,45265,45291,12,45321,45347,12,45377,45403,12,45433,45459,12,45489,45515,12,45545,45571,12,45601,45627,12,45657,45683,12,45713,45739,12,45769,45795,12,45825,45851,12,45881,45907,12,45937,45963,12,45993,46019,12,46049,46075,12,46105,46131,12,46161,46187,12,46217,46243,12,46273,46299,12,46329,46355,12,46385,46411,12,46441,46467,12,46497,46523,12,46553,46579,12,46609,46635,12,46665,46691,12,46721,46747,12,46777,46803,12,46833,46859,12,46889,46915,12,46945,46971,12,47001,47027,12,47057,47083,12,47113,47139,12,47169,47195,12,47225,47251,12,47281,47307,12,47337,47363,12,47393,47419,12,47449,47475,12,47505,47531,12,47561,47587,12,47617,47643,12,47673,47699,12,47729,47755,12,47785,47811,12,47841,47867,12,47897,47923,12,47953,47979,12,48009,48035,12,48065,48091,12,48121,48147,12,48177,48203,12,48233,48259,12,48289,48315,12,48345,48371,12,48401,48427,12,48457,48483,12,48513,48539,12,48569,48595,12,48625,48651,12,48681,48707,12,48737,48763,12,48793,48819,12,48849,48875,12,48905,48931,12,48961,48987,12,49017,49043,12,49073,49099,12,49129,49155,12,49185,49211,12,49241,49267,12,49297,49323,12,49353,49379,12,49409,49435,12,49465,49491,12,49521,49547,12,49577,49603,12,49633,49659,12,49689,49715,12,49745,49771,12,49801,49827,12,49857,49883,12,49913,49939,12,49969,49995,12,50025,50051,12,50081,50107,12,50137,50163,12,50193,50219,12,50249,50275,12,50305,50331,12,50361,50387,12,50417,50443,12,50473,50499,12,50529,50555,12,50585,50611,12,50641,50667,12,50697,50723,12,50753,50779,12,50809,50835,12,50865,50891,12,50921,50947,12,50977,51003,12,51033,51059,12,51089,51115,12,51145,51171,12,51201,51227,12,51257,51283,12,51313,51339,12,51369,51395,12,51425,51451,12,51481,51507,12,51537,51563,12,51593,51619,12,51649,51675,12,51705,51731,12,51761,51787,12,51817,51843,12,51873,51899,12,51929,51955,12,51985,52011,12,52041,52067,12,52097,52123,12,52153,52179,12,52209,52235,12,52265,52291,12,52321,52347,12,52377,52403,12,52433,52459,12,52489,52515,12,52545,52571,12,52601,52627,12,52657,52683,12,52713,52739,12,52769,52795,12,52825,52851,12,52881,52907,12,52937,52963,12,52993,53019,12,53049,53075,12,53105,53131,12,53161,53187,12,53217,53243,12,53273,53299,12,53329,53355,12,53385,53411,12,53441,53467,12,53497,53523,12,53553,53579,12,53609,53635,12,53665,53691,12,53721,53747,12,53777,53803,12,53833,53859,12,53889,53915,12,53945,53971,12,54001,54027,12,54057,54083,12,54113,54139,12,54169,54195,12,54225,54251,12,54281,54307,12,54337,54363,12,54393,54419,12,54449,54475,12,54505,54531,12,54561,54587,12,54617,54643,12,54673,54699,12,54729,54755,12,54785,54811,12,54841,54867,12,54897,54923,12,54953,54979,12,55009,55035,12,55065,55091,12,55121,55147,12,55177,55203,12,65024,65039,5,65520,65528,4,66422,66426,5,68152,68154,5,69291,69292,5,69633,69633,5,69747,69748,5,69811,69814,5,69826,69826,5,69932,69932,7,70016,70017,5,70079,70080,7,70095,70095,5,70196,70196,5,70367,70367,5,70402,70403,7,70464,70464,5,70487,70487,5,70709,70711,7,70725,70725,7,70833,70834,7,70843,70844,7,70849,70849,7,71090,71093,5,71103,71104,5,71227,71228,7,71339,71339,5,71344,71349,5,71458,71461,5,71727,71735,5,71985,71989,7,71998,71998,5,72002,72002,7,72154,72155,5,72193,72202,5,72251,72254,5,72281,72283,5,72344,72345,5,72766,72766,7,72874,72880,5,72885,72886,5,73023,73029,5,73104,73105,5,73111,73111,5,92912,92916,5,94095,94098,5,113824,113827,4,119142,119142,7,119155,119162,4,119362,119364,5,121476,121476,5,122888,122904,5,123184,123190,5,125252,125258,5,127183,127183,14,127340,127343,14,127377,127386,14,127491,127503,14,127548,127551,14,127744,127756,14,127761,127761,14,127769,127769,14,127773,127774,14,127780,127788,14,127796,127797,14,127820,127823,14,127869,127869,14,127894,127895,14,127902,127903,14,127943,127943,14,127947,127950,14,127972,127972,14,127988,127988,14,127992,127994,14,128009,128011,14,128019,128019,14,128023,128041,14,128064,128064,14,128102,128107,14,128174,128181,14,128238,128238,14,128246,128247,14,128254,128254,14,128264,128264,14,128278,128299,14,128329,128330,14,128348,128359,14,128371,128377,14,128392,128393,14,128401,128404,14,128421,128421,14,128433,128434,14,128450,128452,14,128476,128478,14,128483,128483,14,128495,128495,14,128506,128506,14,128519,128520,14,128528,128528,14,128534,128534,14,128538,128538,14,128540,128542,14,128544,128549,14,128552,128555,14,128557,128557,14,128560,128563,14,128565,128565,14,128567,128576,14,128581,128591,14,128641,128642,14,128646,128646,14,128648,128648,14,128650,128651,14,128653,128653,14,128655,128655,14,128657,128659,14,128661,128661,14,128663,128663,14,128665,128666,14,128674,128674,14,128676,128677,14,128679,128685,14,128690,128690,14,128694,128694,14,128697,128702,14,128704,128704,14,128710,128714,14,128716,128716,14,128720,128720,14,128723,128724,14,128726,128727,14,128733,128735,14,128742,128744,14,128746,128746,14,128749,128751,14,128753,128754,14,128756,128758,14,128761,128761,14,128763,128764,14,128884,128895,14,128992,129003,14,129008,129008,14,129036,129039,14,129114,129119,14,129198,129279,14,129293,129295,14,129305,129310,14,129312,129319,14,129328,129328,14,129331,129338,14,129343,129343,14,129351,129355,14,129357,129359,14,129375,129387,14,129393,129393,14,129395,129398,14,129401,129401,14,129403,129403,14,129408,129412,14,129426,129431,14,129443,129444,14,129451,129453,14,129456,129465,14,129472,129472,14,129475,129482,14,129484,129484,14,129488,129510,14,129536,129647,14,129652,129652,14,129656,129658,14,129661,129663,14,129667,129670,14,129680,129685,14,129705,129708,14,129712,129718,14,129723,129727,14,129731,129733,14,129744,129750,14,129754,129759,14,129768,129775,14,129783,129791,14,917504,917504,4,917506,917535,4,917632,917759,4,918000,921599,4,0,9,4,11,12,4,14,31,4,169,169,14,174,174,14,1155,1159,5,1425,1469,5,1473,1474,5,1479,1479,5,1552,1562,5,1611,1631,5,1750,1756,5,1759,1764,5,1770,1773,5,1809,1809,5,1958,1968,5,2045,2045,5,2075,2083,5,2089,2093,5,2192,2193,1,2250,2273,5,2275,2306,5,2362,2362,5,2364,2364,5,2369,2376,5,2381,2381,5,2385,2391,5,2433,2433,5,2492,2492,5,2495,2496,7,2503,2504,7,2509,2509,5,2530,2531,5,2561,2562,5,2620,2620,5,2625,2626,5,2635,2637,5,2672,2673,5,2689,2690,5,2748,2748,5,2753,2757,5,2761,2761,7,2765,2765,5,2810,2815,5,2818,2819,7,2878,2878,5,2880,2880,7,2887,2888,7,2893,2893,5,2903,2903,5,2946,2946,5,3007,3007,7,3009,3010,7,3018,3020,7,3031,3031,5,3073,3075,7,3132,3132,5,3137,3140,7,3146,3149,5,3170,3171,5,3202,3203,7,3262,3262,7,3264,3265,7,3267,3268,7,3271,3272,7,3276,3277,5,3298,3299,5,3330,3331,7,3390,3390,5,3393,3396,5,3402,3404,7,3406,3406,1,3426,3427,5,3458,3459,7,3535,3535,5,3538,3540,5,3544,3550,7,3570,3571,7,3635,3635,7,3655,3662,5,3763,3763,7,3784,3789,5,3893,3893,5,3897,3897,5,3953,3966,5,3968,3972,5,3981,3991,5,4038,4038,5,4145,4145,7,4153,4154,5,4157,4158,5,4184,4185,5,4209,4212,5,4228,4228,7,4237,4237,5,4352,4447,8,4520,4607,10,5906,5908,5,5938,5939,5,5970,5971,5,6068,6069,5,6071,6077,5,6086,6086,5,6089,6099,5,6155,6157,5,6159,6159,5,6313,6313,5,6435,6438,7,6441,6443,7,6450,6450,5,6457,6459,5,6681,6682,7,6741,6741,7,6743,6743,7,6752,6752,5,6757,6764,5,6771,6780,5,6832,6845,5,6847,6862,5,6916,6916,7,6965,6965,5,6971,6971,7,6973,6977,7,6979,6980,7,7040,7041,5,7073,7073,7,7078,7079,7,7082,7082,7,7142,7142,5,7144,7145,5,7149,7149,5,7151,7153,5,7204,7211,7,7220,7221,7,7376,7378,5,7393,7393,7,7405,7405,5,7415,7415,7,7616,7679,5,8204,8204,5,8206,8207,4,8233,8233,4,8252,8252,14,8288,8292,4,8294,8303,4,8413,8416,5,8418,8420,5,8482,8482,14,8596,8601,14,8986,8987,14,9096,9096,14,9193,9196,14,9199,9199,14,9201,9202,14,9208,9210,14,9642,9643,14,9664,9664,14,9728,9729,14,9732,9732,14,9735,9741,14,9743,9744,14,9746,9746,14,9750,9751,14,9753,9756,14,9758,9759,14,9761,9761,14,9764,9765,14,9767,9769,14,9771,9773,14,9775,9775,14,9784,9785,14,9787,9791,14,9793,9793,14,9795,9799,14,9812,9822,14,9824,9824,14,9827,9827,14,9829,9830,14,9832,9832,14,9851,9851,14,9854,9854,14,9856,9861,14,9874,9874,14,9876,9876,14,9878,9879,14,9881,9881,14,9883,9884,14,9888,9889,14,9895,9895,14,9898,9899,14,9904,9905,14,9917,9918,14,9924,9925,14,9928,9928,14,9934,9934,14,9936,9936,14,9938,9938,14,9940,9940,14,9961,9961,14,9963,9967,14,9970,9971,14,9973,9973,14,9975,9977,14,9979,9980,14,9982,9985,14,9987,9988,14,9992,9996,14,9998,9998,14,10000,10001,14,10004,10004,14,10013,10013,14,10024,10024,14,10052,10052,14,10060,10060,14,10067,10069,14,10083,10083,14,10085,10087,14,10145,10145,14,10175,10175,14,11013,11015,14,11088,11088,14,11503,11505,5,11744,11775,5,12334,12335,5,12349,12349,14,12951,12951,14,42607,42607,5,42612,42621,5,42736,42737,5,43014,43014,5,43043,43044,7,43047,43047,7,43136,43137,7,43204,43205,5,43263,43263,5,43335,43345,5,43360,43388,8,43395,43395,7,43444,43445,7,43450,43451,7,43454,43456,7,43561,43566,5,43569,43570,5,43573,43574,5,43596,43596,5,43644,43644,5,43698,43700,5,43710,43711,5,43755,43755,7,43758,43759,7,43766,43766,5,44005,44005,5,44008,44008,5,44012,44012,7,44032,44032,11,44060,44060,11,44088,44088,11,44116,44116,11,44144,44144,11,44172,44172,11,44200,44200,11,44228,44228,11,44256,44256,11,44284,44284,11,44312,44312,11,44340,44340,11,44368,44368,11,44396,44396,11,44424,44424,11,44452,44452,11,44480,44480,11,44508,44508,11,44536,44536,11,44564,44564,11,44592,44592,11,44620,44620,11,44648,44648,11,44676,44676,11,44704,44704,11,44732,44732,11,44760,44760,11,44788,44788,11,44816,44816,11,44844,44844,11,44872,44872,11,44900,44900,11,44928,44928,11,44956,44956,11,44984,44984,11,45012,45012,11,45040,45040,11,45068,45068,11,45096,45096,11,45124,45124,11,45152,45152,11,45180,45180,11,45208,45208,11,45236,45236,11,45264,45264,11,45292,45292,11,45320,45320,11,45348,45348,11,45376,45376,11,45404,45404,11,45432,45432,11,45460,45460,11,45488,45488,11,45516,45516,11,45544,45544,11,45572,45572,11,45600,45600,11,45628,45628,11,45656,45656,11,45684,45684,11,45712,45712,11,45740,45740,11,45768,45768,11,45796,45796,11,45824,45824,11,45852,45852,11,45880,45880,11,45908,45908,11,45936,45936,11,45964,45964,11,45992,45992,11,46020,46020,11,46048,46048,11,46076,46076,11,46104,46104,11,46132,46132,11,46160,46160,11,46188,46188,11,46216,46216,11,46244,46244,11,46272,46272,11,46300,46300,11,46328,46328,11,46356,46356,11,46384,46384,11,46412,46412,11,46440,46440,11,46468,46468,11,46496,46496,11,46524,46524,11,46552,46552,11,46580,46580,11,46608,46608,11,46636,46636,11,46664,46664,11,46692,46692,11,46720,46720,11,46748,46748,11,46776,46776,11,46804,46804,11,46832,46832,11,46860,46860,11,46888,46888,11,46916,46916,11,46944,46944,11,46972,46972,11,47000,47000,11,47028,47028,11,47056,47056,11,47084,47084,11,47112,47112,11,47140,47140,11,47168,47168,11,47196,47196,11,47224,47224,11,47252,47252,11,47280,47280,11,47308,47308,11,47336,47336,11,47364,47364,11,47392,47392,11,47420,47420,11,47448,47448,11,47476,47476,11,47504,47504,11,47532,47532,11,47560,47560,11,47588,47588,11,47616,47616,11,47644,47644,11,47672,47672,11,47700,47700,11,47728,47728,11,47756,47756,11,47784,47784,11,47812,47812,11,47840,47840,11,47868,47868,11,47896,47896,11,47924,47924,11,47952,47952,11,47980,47980,11,48008,48008,11,48036,48036,11,48064,48064,11,48092,48092,11,48120,48120,11,48148,48148,11,48176,48176,11,48204,48204,11,48232,48232,11,48260,48260,11,48288,48288,11,48316,48316,11,48344,48344,11,48372,48372,11,48400,48400,11,48428,48428,11,48456,48456,11,48484,48484,11,48512,48512,11,48540,48540,11,48568,48568,11,48596,48596,11,48624,48624,11,48652,48652,11,48680,48680,11,48708,48708,11,48736,48736,11,48764,48764,11,48792,48792,11,48820,48820,11,48848,48848,11,48876,48876,11,48904,48904,11,48932,48932,11,48960,48960,11,48988,48988,11,49016,49016,11,49044,49044,11,49072,49072,11,49100,49100,11,49128,49128,11,49156,49156,11,49184,49184,11,49212,49212,11,49240,49240,11,49268,49268,11,49296,49296,11,49324,49324,11,49352,49352,11,49380,49380,11,49408,49408,11,49436,49436,11,49464,49464,11,49492,49492,11,49520,49520,11,49548,49548,11,49576,49576,11,49604,49604,11,49632,49632,11,49660,49660,11,49688,49688,11,49716,49716,11,49744,49744,11,49772,49772,11,49800,49800,11,49828,49828,11,49856,49856,11,49884,49884,11,49912,49912,11,49940,49940,11,49968,49968,11,49996,49996,11,50024,50024,11,50052,50052,11,50080,50080,11,50108,50108,11,50136,50136,11,50164,50164,11,50192,50192,11,50220,50220,11,50248,50248,11,50276,50276,11,50304,50304,11,50332,50332,11,50360,50360,11,50388,50388,11,50416,50416,11,50444,50444,11,50472,50472,11,50500,50500,11,50528,50528,11,50556,50556,11,50584,50584,11,50612,50612,11,50640,50640,11,50668,50668,11,50696,50696,11,50724,50724,11,50752,50752,11,50780,50780,11,50808,50808,11,50836,50836,11,50864,50864,11,50892,50892,11,50920,50920,11,50948,50948,11,50976,50976,11,51004,51004,11,51032,51032,11,51060,51060,11,51088,51088,11,51116,51116,11,51144,51144,11,51172,51172,11,51200,51200,11,51228,51228,11,51256,51256,11,51284,51284,11,51312,51312,11,51340,51340,11,51368,51368,11,51396,51396,11,51424,51424,11,51452,51452,11,51480,51480,11,51508,51508,11,51536,51536,11,51564,51564,11,51592,51592,11,51620,51620,11,51648,51648,11,51676,51676,11,51704,51704,11,51732,51732,11,51760,51760,11,51788,51788,11,51816,51816,11,51844,51844,11,51872,51872,11,51900,51900,11,51928,51928,11,51956,51956,11,51984,51984,11,52012,52012,11,52040,52040,11,52068,52068,11,52096,52096,11,52124,52124,11,52152,52152,11,52180,52180,11,52208,52208,11,52236,52236,11,52264,52264,11,52292,52292,11,52320,52320,11,52348,52348,11,52376,52376,11,52404,52404,11,52432,52432,11,52460,52460,11,52488,52488,11,52516,52516,11,52544,52544,11,52572,52572,11,52600,52600,11,52628,52628,11,52656,52656,11,52684,52684,11,52712,52712,11,52740,52740,11,52768,52768,11,52796,52796,11,52824,52824,11,52852,52852,11,52880,52880,11,52908,52908,11,52936,52936,11,52964,52964,11,52992,52992,11,53020,53020,11,53048,53048,11,53076,53076,11,53104,53104,11,53132,53132,11,53160,53160,11,53188,53188,11,53216,53216,11,53244,53244,11,53272,53272,11,53300,53300,11,53328,53328,11,53356,53356,11,53384,53384,11,53412,53412,11,53440,53440,11,53468,53468,11,53496,53496,11,53524,53524,11,53552,53552,11,53580,53580,11,53608,53608,11,53636,53636,11,53664,53664,11,53692,53692,11,53720,53720,11,53748,53748,11,53776,53776,11,53804,53804,11,53832,53832,11,53860,53860,11,53888,53888,11,53916,53916,11,53944,53944,11,53972,53972,11,54000,54000,11,54028,54028,11,54056,54056,11,54084,54084,11,54112,54112,11,54140,54140,11,54168,54168,11,54196,54196,11,54224,54224,11,54252,54252,11,54280,54280,11,54308,54308,11,54336,54336,11,54364,54364,11,54392,54392,11,54420,54420,11,54448,54448,11,54476,54476,11,54504,54504,11,54532,54532,11,54560,54560,11,54588,54588,11,54616,54616,11,54644,54644,11,54672,54672,11,54700,54700,11,54728,54728,11,54756,54756,11,54784,54784,11,54812,54812,11,54840,54840,11,54868,54868,11,54896,54896,11,54924,54924,11,54952,54952,11,54980,54980,11,55008,55008,11,55036,55036,11,55064,55064,11,55092,55092,11,55120,55120,11,55148,55148,11,55176,55176,11,55216,55238,9,64286,64286,5,65056,65071,5,65438,65439,5,65529,65531,4,66272,66272,5,68097,68099,5,68108,68111,5,68159,68159,5,68900,68903,5,69446,69456,5,69632,69632,7,69634,69634,7,69744,69744,5,69759,69761,5,69808,69810,7,69815,69816,7,69821,69821,1,69837,69837,1,69927,69931,5,69933,69940,5,70003,70003,5,70018,70018,7,70070,70078,5,70082,70083,1,70094,70094,7,70188,70190,7,70194,70195,7,70197,70197,7,70206,70206,5,70368,70370,7,70400,70401,5,70459,70460,5,70463,70463,7,70465,70468,7,70475,70477,7,70498,70499,7,70512,70516,5,70712,70719,5,70722,70724,5,70726,70726,5,70832,70832,5,70835,70840,5,70842,70842,5,70845,70845,5,70847,70848,5,70850,70851,5,71088,71089,7,71096,71099,7,71102,71102,7,71132,71133,5,71219,71226,5,71229,71229,5,71231,71232,5,71340,71340,7,71342,71343,7,71350,71350,7,71453,71455,5,71462,71462,7,71724,71726,7,71736,71736,7,71984,71984,5,71991,71992,7,71997,71997,7,71999,71999,1,72001,72001,1,72003,72003,5,72148,72151,5,72156,72159,7,72164,72164,7,72243,72248,5,72250,72250,1,72263,72263,5,72279,72280,7,72324,72329,1,72343,72343,7,72751,72751,7,72760,72765,5,72767,72767,5,72873,72873,7,72881,72881,7,72884,72884,7,73009,73014,5,73020,73021,5,73030,73030,1,73098,73102,7,73107,73108,7,73110,73110,7,73459,73460,5,78896,78904,4,92976,92982,5,94033,94087,7,94180,94180,5,113821,113822,5,118528,118573,5,119141,119141,5,119143,119145,5,119150,119154,5,119163,119170,5,119210,119213,5,121344,121398,5,121461,121461,5,121499,121503,5,122880,122886,5,122907,122913,5,122918,122922,5,123566,123566,5,125136,125142,5,126976,126979,14,126981,127182,14,127184,127231,14,127279,127279,14,127344,127345,14,127374,127374,14,127405,127461,14,127489,127490,14,127514,127514,14,127538,127546,14,127561,127567,14,127570,127743,14,127757,127758,14,127760,127760,14,127762,127762,14,127766,127768,14,127770,127770,14,127772,127772,14,127775,127776,14,127778,127779,14,127789,127791,14,127794,127795,14,127798,127798,14,127819,127819,14,127824,127824,14,127868,127868,14,127870,127871,14,127892,127893,14,127896,127896,14,127900,127901,14,127904,127940,14,127942,127942,14,127944,127944,14,127946,127946,14,127951,127955,14,127968,127971,14,127973,127984,14,127987,127987,14,127989,127989,14,127991,127991,14,127995,127999,5,128008,128008,14,128012,128014,14,128017,128018,14,128020,128020,14,128022,128022,14,128042,128042,14,128063,128063,14,128065,128065,14,128101,128101,14,128108,128109,14,128173,128173,14,128182,128183,14,128236,128237,14,128239,128239,14,128245,128245,14,128248,128248,14,128253,128253,14,128255,128258,14,128260,128263,14,128265,128265,14,128277,128277,14,128300,128301,14,128326,128328,14,128331,128334,14,128336,128347,14,128360,128366,14,128369,128370,14,128378,128378,14,128391,128391,14,128394,128397,14,128400,128400,14,128405,128406,14,128420,128420,14,128422,128423,14,128425,128432,14,128435,128443,14,128445,128449,14,128453,128464,14,128468,128475,14,128479,128480,14,128482,128482,14,128484,128487,14,128489,128494,14,128496,128498,14,128500,128505,14,128507,128511,14,128513,128518,14,128521,128525,14,128527,128527,14,128529,128529,14,128533,128533,14,128535,128535,14,128537,128537,14]")}function $ht(n,e){if(n===0)return 0;const t=qht(n,e);if(t!==void 0)return t;const i=new LY(e,n);return i.prevCodePoint(),i.offset}function qht(n,e){const t=new LY(e,n);let i=t.prevCodePoint();for(;egt(i)||i===65039||i===8419;){if(t.offset===0)return;i=t.prevCodePoint()}if(!DY(i))return;let r=t.offset;return r>0&&t.prevCodePoint()===8205&&(r=t.offset),r}function egt(n){return 127995<=n&&n<=127999}const Fbe=" ";class FC{static getInstance(e){return HI.cache.get(Array.from(e))}static getLocales(){return HI._locales.value}constructor(e){this.confusableDictionary=e}isAmbiguous(e){return this.confusableDictionary.has(e)}getPrimaryConfusable(e){return this.confusableDictionary.get(e)}getConfusableCodePoints(){return new Set(this.confusableDictionary.keys())}}HI=FC,FC.ambiguousCharacterData=new Mg(()=>JSON.parse('{"_common":[8232,32,8233,32,5760,32,8192,32,8193,32,8194,32,8195,32,8196,32,8197,32,8198,32,8200,32,8201,32,8202,32,8287,32,8199,32,8239,32,2042,95,65101,95,65102,95,65103,95,8208,45,8209,45,8210,45,65112,45,1748,45,8259,45,727,45,8722,45,10134,45,11450,45,1549,44,1643,44,8218,44,184,44,42233,44,894,59,2307,58,2691,58,1417,58,1795,58,1796,58,5868,58,65072,58,6147,58,6153,58,8282,58,1475,58,760,58,42889,58,8758,58,720,58,42237,58,451,33,11601,33,660,63,577,63,2429,63,5038,63,42731,63,119149,46,8228,46,1793,46,1794,46,42510,46,68176,46,1632,46,1776,46,42232,46,1373,96,65287,96,8219,96,8242,96,1370,96,1523,96,8175,96,65344,96,900,96,8189,96,8125,96,8127,96,8190,96,697,96,884,96,712,96,714,96,715,96,756,96,699,96,701,96,700,96,702,96,42892,96,1497,96,2036,96,2037,96,5194,96,5836,96,94033,96,94034,96,65339,91,10088,40,10098,40,12308,40,64830,40,65341,93,10089,41,10099,41,12309,41,64831,41,10100,123,119060,123,10101,125,65342,94,8270,42,1645,42,8727,42,66335,42,5941,47,8257,47,8725,47,8260,47,9585,47,10187,47,10744,47,119354,47,12755,47,12339,47,11462,47,20031,47,12035,47,65340,92,65128,92,8726,92,10189,92,10741,92,10745,92,119311,92,119355,92,12756,92,20022,92,12034,92,42872,38,708,94,710,94,5869,43,10133,43,66203,43,8249,60,10094,60,706,60,119350,60,5176,60,5810,60,5120,61,11840,61,12448,61,42239,61,8250,62,10095,62,707,62,119351,62,5171,62,94015,62,8275,126,732,126,8128,126,8764,126,65372,124,65293,45,120784,50,120794,50,120804,50,120814,50,120824,50,130034,50,42842,50,423,50,1000,50,42564,50,5311,50,42735,50,119302,51,120785,51,120795,51,120805,51,120815,51,120825,51,130035,51,42923,51,540,51,439,51,42858,51,11468,51,1248,51,94011,51,71882,51,120786,52,120796,52,120806,52,120816,52,120826,52,130036,52,5070,52,71855,52,120787,53,120797,53,120807,53,120817,53,120827,53,130037,53,444,53,71867,53,120788,54,120798,54,120808,54,120818,54,120828,54,130038,54,11474,54,5102,54,71893,54,119314,55,120789,55,120799,55,120809,55,120819,55,120829,55,130039,55,66770,55,71878,55,2819,56,2538,56,2666,56,125131,56,120790,56,120800,56,120810,56,120820,56,120830,56,130040,56,547,56,546,56,66330,56,2663,57,2920,57,2541,57,3437,57,120791,57,120801,57,120811,57,120821,57,120831,57,130041,57,42862,57,11466,57,71884,57,71852,57,71894,57,9082,97,65345,97,119834,97,119886,97,119938,97,119990,97,120042,97,120094,97,120146,97,120198,97,120250,97,120302,97,120354,97,120406,97,120458,97,593,97,945,97,120514,97,120572,97,120630,97,120688,97,120746,97,65313,65,119808,65,119860,65,119912,65,119964,65,120016,65,120068,65,120120,65,120172,65,120224,65,120276,65,120328,65,120380,65,120432,65,913,65,120488,65,120546,65,120604,65,120662,65,120720,65,5034,65,5573,65,42222,65,94016,65,66208,65,119835,98,119887,98,119939,98,119991,98,120043,98,120095,98,120147,98,120199,98,120251,98,120303,98,120355,98,120407,98,120459,98,388,98,5071,98,5234,98,5551,98,65314,66,8492,66,119809,66,119861,66,119913,66,120017,66,120069,66,120121,66,120173,66,120225,66,120277,66,120329,66,120381,66,120433,66,42932,66,914,66,120489,66,120547,66,120605,66,120663,66,120721,66,5108,66,5623,66,42192,66,66178,66,66209,66,66305,66,65347,99,8573,99,119836,99,119888,99,119940,99,119992,99,120044,99,120096,99,120148,99,120200,99,120252,99,120304,99,120356,99,120408,99,120460,99,7428,99,1010,99,11429,99,43951,99,66621,99,128844,67,71922,67,71913,67,65315,67,8557,67,8450,67,8493,67,119810,67,119862,67,119914,67,119966,67,120018,67,120174,67,120226,67,120278,67,120330,67,120382,67,120434,67,1017,67,11428,67,5087,67,42202,67,66210,67,66306,67,66581,67,66844,67,8574,100,8518,100,119837,100,119889,100,119941,100,119993,100,120045,100,120097,100,120149,100,120201,100,120253,100,120305,100,120357,100,120409,100,120461,100,1281,100,5095,100,5231,100,42194,100,8558,68,8517,68,119811,68,119863,68,119915,68,119967,68,120019,68,120071,68,120123,68,120175,68,120227,68,120279,68,120331,68,120383,68,120435,68,5024,68,5598,68,5610,68,42195,68,8494,101,65349,101,8495,101,8519,101,119838,101,119890,101,119942,101,120046,101,120098,101,120150,101,120202,101,120254,101,120306,101,120358,101,120410,101,120462,101,43826,101,1213,101,8959,69,65317,69,8496,69,119812,69,119864,69,119916,69,120020,69,120072,69,120124,69,120176,69,120228,69,120280,69,120332,69,120384,69,120436,69,917,69,120492,69,120550,69,120608,69,120666,69,120724,69,11577,69,5036,69,42224,69,71846,69,71854,69,66182,69,119839,102,119891,102,119943,102,119995,102,120047,102,120099,102,120151,102,120203,102,120255,102,120307,102,120359,102,120411,102,120463,102,43829,102,42905,102,383,102,7837,102,1412,102,119315,70,8497,70,119813,70,119865,70,119917,70,120021,70,120073,70,120125,70,120177,70,120229,70,120281,70,120333,70,120385,70,120437,70,42904,70,988,70,120778,70,5556,70,42205,70,71874,70,71842,70,66183,70,66213,70,66853,70,65351,103,8458,103,119840,103,119892,103,119944,103,120048,103,120100,103,120152,103,120204,103,120256,103,120308,103,120360,103,120412,103,120464,103,609,103,7555,103,397,103,1409,103,119814,71,119866,71,119918,71,119970,71,120022,71,120074,71,120126,71,120178,71,120230,71,120282,71,120334,71,120386,71,120438,71,1292,71,5056,71,5107,71,42198,71,65352,104,8462,104,119841,104,119945,104,119997,104,120049,104,120101,104,120153,104,120205,104,120257,104,120309,104,120361,104,120413,104,120465,104,1211,104,1392,104,5058,104,65320,72,8459,72,8460,72,8461,72,119815,72,119867,72,119919,72,120023,72,120179,72,120231,72,120283,72,120335,72,120387,72,120439,72,919,72,120494,72,120552,72,120610,72,120668,72,120726,72,11406,72,5051,72,5500,72,42215,72,66255,72,731,105,9075,105,65353,105,8560,105,8505,105,8520,105,119842,105,119894,105,119946,105,119998,105,120050,105,120102,105,120154,105,120206,105,120258,105,120310,105,120362,105,120414,105,120466,105,120484,105,618,105,617,105,953,105,8126,105,890,105,120522,105,120580,105,120638,105,120696,105,120754,105,1110,105,42567,105,1231,105,43893,105,5029,105,71875,105,65354,106,8521,106,119843,106,119895,106,119947,106,119999,106,120051,106,120103,106,120155,106,120207,106,120259,106,120311,106,120363,106,120415,106,120467,106,1011,106,1112,106,65322,74,119817,74,119869,74,119921,74,119973,74,120025,74,120077,74,120129,74,120181,74,120233,74,120285,74,120337,74,120389,74,120441,74,42930,74,895,74,1032,74,5035,74,5261,74,42201,74,119844,107,119896,107,119948,107,120000,107,120052,107,120104,107,120156,107,120208,107,120260,107,120312,107,120364,107,120416,107,120468,107,8490,75,65323,75,119818,75,119870,75,119922,75,119974,75,120026,75,120078,75,120130,75,120182,75,120234,75,120286,75,120338,75,120390,75,120442,75,922,75,120497,75,120555,75,120613,75,120671,75,120729,75,11412,75,5094,75,5845,75,42199,75,66840,75,1472,108,8739,73,9213,73,65512,73,1633,108,1777,73,66336,108,125127,108,120783,73,120793,73,120803,73,120813,73,120823,73,130033,73,65321,73,8544,73,8464,73,8465,73,119816,73,119868,73,119920,73,120024,73,120128,73,120180,73,120232,73,120284,73,120336,73,120388,73,120440,73,65356,108,8572,73,8467,108,119845,108,119897,108,119949,108,120001,108,120053,108,120105,73,120157,73,120209,73,120261,73,120313,73,120365,73,120417,73,120469,73,448,73,120496,73,120554,73,120612,73,120670,73,120728,73,11410,73,1030,73,1216,73,1493,108,1503,108,1575,108,126464,108,126592,108,65166,108,65165,108,1994,108,11599,73,5825,73,42226,73,93992,73,66186,124,66313,124,119338,76,8556,76,8466,76,119819,76,119871,76,119923,76,120027,76,120079,76,120131,76,120183,76,120235,76,120287,76,120339,76,120391,76,120443,76,11472,76,5086,76,5290,76,42209,76,93974,76,71843,76,71858,76,66587,76,66854,76,65325,77,8559,77,8499,77,119820,77,119872,77,119924,77,120028,77,120080,77,120132,77,120184,77,120236,77,120288,77,120340,77,120392,77,120444,77,924,77,120499,77,120557,77,120615,77,120673,77,120731,77,1018,77,11416,77,5047,77,5616,77,5846,77,42207,77,66224,77,66321,77,119847,110,119899,110,119951,110,120003,110,120055,110,120107,110,120159,110,120211,110,120263,110,120315,110,120367,110,120419,110,120471,110,1400,110,1404,110,65326,78,8469,78,119821,78,119873,78,119925,78,119977,78,120029,78,120081,78,120185,78,120237,78,120289,78,120341,78,120393,78,120445,78,925,78,120500,78,120558,78,120616,78,120674,78,120732,78,11418,78,42208,78,66835,78,3074,111,3202,111,3330,111,3458,111,2406,111,2662,111,2790,111,3046,111,3174,111,3302,111,3430,111,3664,111,3792,111,4160,111,1637,111,1781,111,65359,111,8500,111,119848,111,119900,111,119952,111,120056,111,120108,111,120160,111,120212,111,120264,111,120316,111,120368,111,120420,111,120472,111,7439,111,7441,111,43837,111,959,111,120528,111,120586,111,120644,111,120702,111,120760,111,963,111,120532,111,120590,111,120648,111,120706,111,120764,111,11423,111,4351,111,1413,111,1505,111,1607,111,126500,111,126564,111,126596,111,65259,111,65260,111,65258,111,65257,111,1726,111,64428,111,64429,111,64427,111,64426,111,1729,111,64424,111,64425,111,64423,111,64422,111,1749,111,3360,111,4125,111,66794,111,71880,111,71895,111,66604,111,1984,79,2534,79,2918,79,12295,79,70864,79,71904,79,120782,79,120792,79,120802,79,120812,79,120822,79,130032,79,65327,79,119822,79,119874,79,119926,79,119978,79,120030,79,120082,79,120134,79,120186,79,120238,79,120290,79,120342,79,120394,79,120446,79,927,79,120502,79,120560,79,120618,79,120676,79,120734,79,11422,79,1365,79,11604,79,4816,79,2848,79,66754,79,42227,79,71861,79,66194,79,66219,79,66564,79,66838,79,9076,112,65360,112,119849,112,119901,112,119953,112,120005,112,120057,112,120109,112,120161,112,120213,112,120265,112,120317,112,120369,112,120421,112,120473,112,961,112,120530,112,120544,112,120588,112,120602,112,120646,112,120660,112,120704,112,120718,112,120762,112,120776,112,11427,112,65328,80,8473,80,119823,80,119875,80,119927,80,119979,80,120031,80,120083,80,120187,80,120239,80,120291,80,120343,80,120395,80,120447,80,929,80,120504,80,120562,80,120620,80,120678,80,120736,80,11426,80,5090,80,5229,80,42193,80,66197,80,119850,113,119902,113,119954,113,120006,113,120058,113,120110,113,120162,113,120214,113,120266,113,120318,113,120370,113,120422,113,120474,113,1307,113,1379,113,1382,113,8474,81,119824,81,119876,81,119928,81,119980,81,120032,81,120084,81,120188,81,120240,81,120292,81,120344,81,120396,81,120448,81,11605,81,119851,114,119903,114,119955,114,120007,114,120059,114,120111,114,120163,114,120215,114,120267,114,120319,114,120371,114,120423,114,120475,114,43847,114,43848,114,7462,114,11397,114,43905,114,119318,82,8475,82,8476,82,8477,82,119825,82,119877,82,119929,82,120033,82,120189,82,120241,82,120293,82,120345,82,120397,82,120449,82,422,82,5025,82,5074,82,66740,82,5511,82,42211,82,94005,82,65363,115,119852,115,119904,115,119956,115,120008,115,120060,115,120112,115,120164,115,120216,115,120268,115,120320,115,120372,115,120424,115,120476,115,42801,115,445,115,1109,115,43946,115,71873,115,66632,115,65331,83,119826,83,119878,83,119930,83,119982,83,120034,83,120086,83,120138,83,120190,83,120242,83,120294,83,120346,83,120398,83,120450,83,1029,83,1359,83,5077,83,5082,83,42210,83,94010,83,66198,83,66592,83,119853,116,119905,116,119957,116,120009,116,120061,116,120113,116,120165,116,120217,116,120269,116,120321,116,120373,116,120425,116,120477,116,8868,84,10201,84,128872,84,65332,84,119827,84,119879,84,119931,84,119983,84,120035,84,120087,84,120139,84,120191,84,120243,84,120295,84,120347,84,120399,84,120451,84,932,84,120507,84,120565,84,120623,84,120681,84,120739,84,11430,84,5026,84,42196,84,93962,84,71868,84,66199,84,66225,84,66325,84,119854,117,119906,117,119958,117,120010,117,120062,117,120114,117,120166,117,120218,117,120270,117,120322,117,120374,117,120426,117,120478,117,42911,117,7452,117,43854,117,43858,117,651,117,965,117,120534,117,120592,117,120650,117,120708,117,120766,117,1405,117,66806,117,71896,117,8746,85,8899,85,119828,85,119880,85,119932,85,119984,85,120036,85,120088,85,120140,85,120192,85,120244,85,120296,85,120348,85,120400,85,120452,85,1357,85,4608,85,66766,85,5196,85,42228,85,94018,85,71864,85,8744,118,8897,118,65366,118,8564,118,119855,118,119907,118,119959,118,120011,118,120063,118,120115,118,120167,118,120219,118,120271,118,120323,118,120375,118,120427,118,120479,118,7456,118,957,118,120526,118,120584,118,120642,118,120700,118,120758,118,1141,118,1496,118,71430,118,43945,118,71872,118,119309,86,1639,86,1783,86,8548,86,119829,86,119881,86,119933,86,119985,86,120037,86,120089,86,120141,86,120193,86,120245,86,120297,86,120349,86,120401,86,120453,86,1140,86,11576,86,5081,86,5167,86,42719,86,42214,86,93960,86,71840,86,66845,86,623,119,119856,119,119908,119,119960,119,120012,119,120064,119,120116,119,120168,119,120220,119,120272,119,120324,119,120376,119,120428,119,120480,119,7457,119,1121,119,1309,119,1377,119,71434,119,71438,119,71439,119,43907,119,71919,87,71910,87,119830,87,119882,87,119934,87,119986,87,120038,87,120090,87,120142,87,120194,87,120246,87,120298,87,120350,87,120402,87,120454,87,1308,87,5043,87,5076,87,42218,87,5742,120,10539,120,10540,120,10799,120,65368,120,8569,120,119857,120,119909,120,119961,120,120013,120,120065,120,120117,120,120169,120,120221,120,120273,120,120325,120,120377,120,120429,120,120481,120,5441,120,5501,120,5741,88,9587,88,66338,88,71916,88,65336,88,8553,88,119831,88,119883,88,119935,88,119987,88,120039,88,120091,88,120143,88,120195,88,120247,88,120299,88,120351,88,120403,88,120455,88,42931,88,935,88,120510,88,120568,88,120626,88,120684,88,120742,88,11436,88,11613,88,5815,88,42219,88,66192,88,66228,88,66327,88,66855,88,611,121,7564,121,65369,121,119858,121,119910,121,119962,121,120014,121,120066,121,120118,121,120170,121,120222,121,120274,121,120326,121,120378,121,120430,121,120482,121,655,121,7935,121,43866,121,947,121,8509,121,120516,121,120574,121,120632,121,120690,121,120748,121,1199,121,4327,121,71900,121,65337,89,119832,89,119884,89,119936,89,119988,89,120040,89,120092,89,120144,89,120196,89,120248,89,120300,89,120352,89,120404,89,120456,89,933,89,978,89,120508,89,120566,89,120624,89,120682,89,120740,89,11432,89,1198,89,5033,89,5053,89,42220,89,94019,89,71844,89,66226,89,119859,122,119911,122,119963,122,120015,122,120067,122,120119,122,120171,122,120223,122,120275,122,120327,122,120379,122,120431,122,120483,122,7458,122,43923,122,71876,122,66293,90,71909,90,65338,90,8484,90,8488,90,119833,90,119885,90,119937,90,119989,90,120041,90,120197,90,120249,90,120301,90,120353,90,120405,90,120457,90,918,90,120493,90,120551,90,120609,90,120667,90,120725,90,5059,90,42204,90,71849,90,65282,34,65284,36,65285,37,65286,38,65290,42,65291,43,65294,46,65295,47,65296,48,65297,49,65298,50,65299,51,65300,52,65301,53,65302,54,65303,55,65304,56,65305,57,65308,60,65309,61,65310,62,65312,64,65316,68,65318,70,65319,71,65324,76,65329,81,65330,82,65333,85,65334,86,65335,87,65343,95,65346,98,65348,100,65350,102,65355,107,65357,109,65358,110,65361,113,65362,114,65364,116,65365,117,65367,119,65370,122,65371,123,65373,125,119846,109],"_default":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"cs":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"de":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"es":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"fr":[65374,126,65306,58,65281,33,8216,96,8245,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"it":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ja":[8211,45,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65292,44,65307,59],"ko":[8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pl":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"pt-BR":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"qps-ploc":[160,32,8211,45,65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"ru":[65374,126,65306,58,65281,33,8216,96,8217,96,8245,96,180,96,12494,47,305,105,921,73,1009,112,215,120,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"tr":[160,32,8211,45,65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65288,40,65289,41,65292,44,65307,59,65311,63],"zh-hans":[65374,126,65306,58,65281,33,8245,96,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65288,40,65289,41],"zh-hant":[8211,45,65374,126,180,96,12494,47,1047,51,1073,54,1072,97,1040,65,1068,98,1042,66,1089,99,1057,67,1077,101,1045,69,1053,72,305,105,1050,75,921,73,1052,77,1086,111,1054,79,1009,112,1088,112,1056,80,1075,114,1058,84,215,120,1093,120,1061,88,1091,121,1059,89,65283,35,65307,59]}')),FC.cache=new Ght(n=>{function e(u){const c=new Map;for(let d=0;d!u.startsWith("_")&&u in r);o.length===0&&(o=["_default"]);let s;for(const u of o){const c=e(r[u]);s=i(s,c)}const a=e(r._common),l=t(a,s);return new HI(l)}),FC._locales=new Mg(()=>Object.keys(HI.ambiguousCharacterData.value).filter(n=>!n.startsWith("_")));class Eg{static getRawData(){return JSON.parse("[9,10,11,12,13,32,127,160,173,847,1564,4447,4448,6068,6069,6155,6156,6157,6158,7355,7356,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203,8204,8205,8206,8207,8234,8235,8236,8237,8238,8239,8287,8288,8289,8290,8291,8292,8293,8294,8295,8296,8297,8298,8299,8300,8301,8302,8303,10240,12288,12644,65024,65025,65026,65027,65028,65029,65030,65031,65032,65033,65034,65035,65036,65037,65038,65039,65279,65440,65520,65521,65522,65523,65524,65525,65526,65527,65528,65532,78844,119155,119156,119157,119158,119159,119160,119161,119162,917504,917505,917506,917507,917508,917509,917510,917511,917512,917513,917514,917515,917516,917517,917518,917519,917520,917521,917522,917523,917524,917525,917526,917527,917528,917529,917530,917531,917532,917533,917534,917535,917536,917537,917538,917539,917540,917541,917542,917543,917544,917545,917546,917547,917548,917549,917550,917551,917552,917553,917554,917555,917556,917557,917558,917559,917560,917561,917562,917563,917564,917565,917566,917567,917568,917569,917570,917571,917572,917573,917574,917575,917576,917577,917578,917579,917580,917581,917582,917583,917584,917585,917586,917587,917588,917589,917590,917591,917592,917593,917594,917595,917596,917597,917598,917599,917600,917601,917602,917603,917604,917605,917606,917607,917608,917609,917610,917611,917612,917613,917614,917615,917616,917617,917618,917619,917620,917621,917622,917623,917624,917625,917626,917627,917628,917629,917630,917631,917760,917761,917762,917763,917764,917765,917766,917767,917768,917769,917770,917771,917772,917773,917774,917775,917776,917777,917778,917779,917780,917781,917782,917783,917784,917785,917786,917787,917788,917789,917790,917791,917792,917793,917794,917795,917796,917797,917798,917799,917800,917801,917802,917803,917804,917805,917806,917807,917808,917809,917810,917811,917812,917813,917814,917815,917816,917817,917818,917819,917820,917821,917822,917823,917824,917825,917826,917827,917828,917829,917830,917831,917832,917833,917834,917835,917836,917837,917838,917839,917840,917841,917842,917843,917844,917845,917846,917847,917848,917849,917850,917851,917852,917853,917854,917855,917856,917857,917858,917859,917860,917861,917862,917863,917864,917865,917866,917867,917868,917869,917870,917871,917872,917873,917874,917875,917876,917877,917878,917879,917880,917881,917882,917883,917884,917885,917886,917887,917888,917889,917890,917891,917892,917893,917894,917895,917896,917897,917898,917899,917900,917901,917902,917903,917904,917905,917906,917907,917908,917909,917910,917911,917912,917913,917914,917915,917916,917917,917918,917919,917920,917921,917922,917923,917924,917925,917926,917927,917928,917929,917930,917931,917932,917933,917934,917935,917936,917937,917938,917939,917940,917941,917942,917943,917944,917945,917946,917947,917948,917949,917950,917951,917952,917953,917954,917955,917956,917957,917958,917959,917960,917961,917962,917963,917964,917965,917966,917967,917968,917969,917970,917971,917972,917973,917974,917975,917976,917977,917978,917979,917980,917981,917982,917983,917984,917985,917986,917987,917988,917989,917990,917991,917992,917993,917994,917995,917996,917997,917998,917999]")}static getData(){return this._data||(this._data=new Set(Eg.getRawData())),this._data}static isInvisibleCharacter(e){return Eg.getData().has(e)}static get codePoints(){return Eg.getData()}}Eg._data=void 0;var _be={TERM_PROGRAM:"vscode",NODE:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NVM_CD_FLAGS:"-q",INIT_CWD:"/Users/alexander/my-code/github/openapi-ui",SHELL:"/bin/zsh",TERM:"xterm-256color",TMPDIR:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/",npm_config_metrics_registry:"https://registry.npmjs.org/",npm_config_global_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",TERM_PROGRAM_VERSION:"1.88.1",GVM_ROOT:"/Users/alexander/.gvm",MallocNanoZone:"0",ORIGINAL_XDG_CURRENT_DESKTOP:"undefined",ZDOTDIR:"/Users/alexander",COLOR:"1",npm_config_noproxy:"",ZSH:"/Users/alexander/.oh-my-zsh",PNPM_HOME:"/Users/alexander/Library/pnpm",npm_config_local_prefix:"/Users/alexander/my-code/github/openapi-ui",USER:"alexander",NVM_DIR:"/Users/alexander/.nvm",LD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",COMMAND_MODE:"unix2003",npm_config_globalconfig:"/Users/alexander/.nvm/versions/node/v16.10.0/etc/npmrc",SSH_AUTH_SOCK:"/private/tmp/com.apple.launchd.jaFD8W3kId/Listeners",__CF_USER_TEXT_ENCODING:"0x1F5:0x19:0x34",npm_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/bin/npm-cli.js",PAGER:"less",LSCOLORS:"Gxfxcxdxbxegedabagacad",PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.bin:/Users/alexander/my-code/github/node_modules/.bin:/Users/alexander/my-code/node_modules/.bin:/Users/alexander/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",npm_package_json:"/Users/alexander/my-code/github/openapi-ui/package.json",__CFBundleIdentifier:"com.microsoft.VSCode",USER_ZDOTDIR:"/Users/alexander",npm_config_auto_install_peers:"true",npm_config_init_module:"/Users/alexander/.npm-init.js",npm_config_userconfig:"/Users/alexander/.npmrc",PWD:"/Users/alexander/my-code/github/openapi-ui",GVM_VERSION:"1.0.22",npm_command:"run-script",EDITOR:"vi",npm_lifecycle_event:"build:package",LANG:"zh_CN.UTF-8",npm_package_name:"openapi-ui-dist",gvm_pkgset_name:"global",NODE_PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.pnpm/node_modules",XPC_FLAGS:"0x0",VSCODE_GIT_ASKPASS_EXTRA_ARGS:"",npm_package_engines_node:"^18.0.0 || >=20.0.0",npm_config_node_gyp:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",XPC_SERVICE_NAME:"0",npm_package_version:"2.0.1",VSCODE_INJECTION:"1",HOME:"/Users/alexander",SHLVL:"2",VSCODE_GIT_ASKPASS_MAIN:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js",GOROOT:"/Users/alexander/.gvm/gos/go1.21.6",DYLD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",gvm_go_name:"go1.21.6",LOGNAME:"alexander",LESS:"-R",VSCODE_PATH_PREFIX:"/Users/alexander/.gvm/gos/go1.20/bin:",npm_config_cache:"/Users/alexander/.npm",GVM_OVERLAY_PREFIX:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay",npm_lifecycle_script:"tsc && vite build --config vite.package.config.ts --mode package",LC_CTYPE:"zh_CN.UTF-8",VSCODE_GIT_IPC_HANDLE:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/vscode-git-79a18f10f2.sock",NVM_BIN:"/Users/alexander/.nvm/versions/node/v16.10.0/bin",PKG_CONFIG_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:",GOPATH:"/Users/alexander/mygo",npm_config_user_agent:"npm/7.24.0 node/v16.10.0 darwin x64 workspaces/false",GIT_ASKPASS:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh",VSCODE_GIT_ASKPASS_NODE:"/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin)",GVM_PATH_BACKUP:"/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",COLORTERM:"truecolor",npm_config_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",npm_node_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NODE_ENV:"production"};let jI;const NY=globalThis.vscode;if(typeof NY<"u"&&typeof NY.process<"u"){const n=NY.process;jI={get platform(){return n.platform},get arch(){return n.arch},get env(){return n.env},cwd(){return n.cwd()}}}else typeof process<"u"?jI={get platform(){return process.platform},get arch(){return process.arch},get env(){return _be},cwd(){return _be.VSCODE_CWD||process.cwd()}}:jI={get platform(){return ya?"win32":$n?"darwin":"linux"},get arch(){},get env(){return{}},cwd(){return"/"}};const p5=jI.cwd,kY=jI.env,tgt=jI.platform,ngt=65,igt=97,rgt=90,ogt=122,Sb=46,wa=47,Tu=92,xb=58,sgt=63;class Dbe extends Error{constructor(e,t,i){let r;typeof t=="string"&&t.indexOf("not ")===0?(r="must not be",t=t.replace(/^not /,"")):r="must be";const o=e.indexOf(".")!==-1?"property":"argument";let s=`The "${e}" ${o} ${r} of type ${t}`;s+=`. Received type ${typeof i}`,super(s),this.code="ERR_INVALID_ARG_TYPE"}}function agt(n,e){if(n===null||typeof n!="object")throw new Dbe(e,"Object",n)}function us(n,e){if(typeof n!="string")throw new Dbe(e,"string",n)}const Lb=tgt==="win32";function Ei(n){return n===wa||n===Tu}function MY(n){return n===wa}function Fb(n){return n>=ngt&&n<=rgt||n>=igt&&n<=ogt}function b5(n,e,t,i){let r="",o=0,s=-1,a=0,l=0;for(let u=0;u<=n.length;++u){if(u2){const c=r.lastIndexOf(t);c===-1?(r="",o=0):(r=r.slice(0,c),o=r.length-1-r.lastIndexOf(t)),s=u,a=0;continue}else if(r.length!==0){r="",o=0,s=u,a=0;continue}}e&&(r+=r.length>0?`${t}..`:"..",o=2)}else r.length>0?r+=`${t}${n.slice(s+1,u)}`:r=n.slice(s+1,u),o=u-s-1;s=u,a=0}else l===Sb&&a!==-1?++a:a=-1}return r}function Abe(n,e){agt(e,"pathObject");const t=e.dir||e.root,i=e.base||`${e.name||""}${e.ext||""}`;return t?t===e.root?`${t}${i}`:`${t}${n}${i}`:i}const nu={resolve(...n){let e="",t="",i=!1;for(let r=n.length-1;r>=-1;r--){let o;if(r>=0){if(o=n[r],us(o,"path"),o.length===0)continue}else e.length===0?o=p5():(o=kY[`=${e}`]||p5(),(o===void 0||o.slice(0,2).toLowerCase()!==e.toLowerCase()&&o.charCodeAt(2)===Tu)&&(o=`${e}\\`));const s=o.length;let a=0,l="",u=!1;const c=o.charCodeAt(0);if(s===1)Ei(c)&&(a=1,u=!0);else if(Ei(c))if(u=!0,Ei(o.charCodeAt(1))){let d=2,h=d;for(;d2&&Ei(o.charCodeAt(2))&&(u=!0,a=3));if(l.length>0)if(e.length>0){if(l.toLowerCase()!==e.toLowerCase())continue}else e=l;if(i){if(e.length>0)break}else if(t=`${o.slice(a)}\\${t}`,i=u,u&&e.length>0)break}return t=b5(t,!i,"\\",Ei),i?`${e}\\${t}`:`${e}${t}`||"."},normalize(n){us(n,"path");const e=n.length;if(e===0)return".";let t=0,i,r=!1;const o=n.charCodeAt(0);if(e===1)return MY(o)?"\\":n;if(Ei(o))if(r=!0,Ei(n.charCodeAt(1))){let a=2,l=a;for(;a2&&Ei(n.charCodeAt(2))&&(r=!0,t=3));let s=t0&&Ei(n.charCodeAt(e-1))&&(s+="\\"),i===void 0?r?`\\${s}`:s:r?`${i}\\${s}`:`${i}${s}`},isAbsolute(n){us(n,"path");const e=n.length;if(e===0)return!1;const t=n.charCodeAt(0);return Ei(t)||e>2&&Fb(t)&&n.charCodeAt(1)===xb&&Ei(n.charCodeAt(2))},join(...n){if(n.length===0)return".";let e,t;for(let o=0;o0&&(e===void 0?e=t=s:e+=`\\${s}`)}if(e===void 0)return".";let i=!0,r=0;if(typeof t=="string"&&Ei(t.charCodeAt(0))){++r;const o=t.length;o>1&&Ei(t.charCodeAt(1))&&(++r,o>2&&(Ei(t.charCodeAt(2))?++r:i=!1))}if(i){for(;r=2&&(e=`\\${e.slice(r)}`)}return nu.normalize(e)},relative(n,e){if(us(n,"from"),us(e,"to"),n===e)return"";const t=nu.resolve(n),i=nu.resolve(e);if(t===i||(n=t.toLowerCase(),e=i.toLowerCase(),n===e))return"";let r=0;for(;rr&&n.charCodeAt(o-1)===Tu;)o--;const s=o-r;let a=0;for(;aa&&e.charCodeAt(l-1)===Tu;)l--;const u=l-a,c=sc){if(e.charCodeAt(a+h)===Tu)return i.slice(a+h+1);if(h===2)return i.slice(a+h)}s>c&&(n.charCodeAt(r+h)===Tu?d=h:h===2&&(d=3)),d===-1&&(d=0)}let g="";for(h=r+d+1;h<=o;++h)(h===o||n.charCodeAt(h)===Tu)&&(g+=g.length===0?"..":"\\..");return a+=d,g.length>0?`${g}${i.slice(a,l)}`:(i.charCodeAt(a)===Tu&&++a,i.slice(a,l))},toNamespacedPath(n){if(typeof n!="string"||n.length===0)return n;const e=nu.resolve(n);if(e.length<=2)return n;if(e.charCodeAt(0)===Tu){if(e.charCodeAt(1)===Tu){const t=e.charCodeAt(2);if(t!==sgt&&t!==Sb)return`\\\\?\\UNC\\${e.slice(2)}`}}else if(Fb(e.charCodeAt(0))&&e.charCodeAt(1)===xb&&e.charCodeAt(2)===Tu)return`\\\\?\\${e}`;return n},dirname(n){us(n,"path");const e=n.length;if(e===0)return".";let t=-1,i=0;const r=n.charCodeAt(0);if(e===1)return Ei(r)?n:".";if(Ei(r)){if(t=i=1,Ei(n.charCodeAt(1))){let a=2,l=a;for(;a2&&Ei(n.charCodeAt(2))?3:2,i=t);let o=-1,s=!0;for(let a=e-1;a>=i;--a)if(Ei(n.charCodeAt(a))){if(!s){o=a;break}}else s=!1;if(o===-1){if(t===-1)return".";o=t}return n.slice(0,o)},basename(n,e){e!==void 0&&us(e,"ext"),us(n,"path");let t=0,i=-1,r=!0,o;if(n.length>=2&&Fb(n.charCodeAt(0))&&n.charCodeAt(1)===xb&&(t=2),e!==void 0&&e.length>0&&e.length<=n.length){if(e===n)return"";let s=e.length-1,a=-1;for(o=n.length-1;o>=t;--o){const l=n.charCodeAt(o);if(Ei(l)){if(!r){t=o+1;break}}else a===-1&&(r=!1,a=o+1),s>=0&&(l===e.charCodeAt(s)?--s===-1&&(i=o):(s=-1,i=a))}return t===i?i=a:i===-1&&(i=n.length),n.slice(t,i)}for(o=n.length-1;o>=t;--o)if(Ei(n.charCodeAt(o))){if(!r){t=o+1;break}}else i===-1&&(r=!1,i=o+1);return i===-1?"":n.slice(t,i)},extname(n){us(n,"path");let e=0,t=-1,i=0,r=-1,o=!0,s=0;n.length>=2&&n.charCodeAt(1)===xb&&Fb(n.charCodeAt(0))&&(e=i=2);for(let a=n.length-1;a>=e;--a){const l=n.charCodeAt(a);if(Ei(l)){if(!o){i=a+1;break}continue}r===-1&&(o=!1,r=a+1),l===Sb?t===-1?t=a:s!==1&&(s=1):t!==-1&&(s=-1)}return t===-1||r===-1||s===0||s===1&&t===r-1&&t===i+1?"":n.slice(t,r)},format:Abe.bind(null,"\\"),parse(n){us(n,"path");const e={root:"",dir:"",base:"",ext:"",name:""};if(n.length===0)return e;const t=n.length;let i=0,r=n.charCodeAt(0);if(t===1)return Ei(r)?(e.root=e.dir=n,e):(e.base=e.name=n,e);if(Ei(r)){if(i=1,Ei(n.charCodeAt(1))){let d=2,h=d;for(;d0&&(e.root=n.slice(0,i));let o=-1,s=i,a=-1,l=!0,u=n.length-1,c=0;for(;u>=i;--u){if(r=n.charCodeAt(u),Ei(r)){if(!l){s=u+1;break}continue}a===-1&&(l=!1,a=u+1),r===Sb?o===-1?o=u:c!==1&&(c=1):o!==-1&&(c=-1)}return a!==-1&&(o===-1||c===0||c===1&&o===a-1&&o===s+1?e.base=e.name=n.slice(s,a):(e.name=n.slice(s,o),e.base=n.slice(s,a),e.ext=n.slice(o,a))),s>0&&s!==i?e.dir=n.slice(0,s-1):e.dir=e.root,e},sep:"\\",delimiter:";",win32:null,posix:null},lgt=(()=>{if(Lb){const n=/\\/g;return()=>{const e=p5().replace(n,"/");return e.slice(e.indexOf("/"))}}return()=>p5()})(),Zo={resolve(...n){let e="",t=!1;for(let i=n.length-1;i>=-1&&!t;i--){const r=i>=0?n[i]:lgt();us(r,"path"),r.length!==0&&(e=`${r}/${e}`,t=r.charCodeAt(0)===wa)}return e=b5(e,!t,"/",MY),t?`/${e}`:e.length>0?e:"."},normalize(n){if(us(n,"path"),n.length===0)return".";const e=n.charCodeAt(0)===wa,t=n.charCodeAt(n.length-1)===wa;return n=b5(n,!e,"/",MY),n.length===0?e?"/":t?"./":".":(t&&(n+="/"),e?`/${n}`:n)},isAbsolute(n){return us(n,"path"),n.length>0&&n.charCodeAt(0)===wa},join(...n){if(n.length===0)return".";let e;for(let t=0;t0&&(e===void 0?e=i:e+=`/${i}`)}return e===void 0?".":Zo.normalize(e)},relative(n,e){if(us(n,"from"),us(e,"to"),n===e||(n=Zo.resolve(n),e=Zo.resolve(e),n===e))return"";const t=1,i=n.length,r=i-t,o=1,s=e.length-o,a=ra){if(e.charCodeAt(o+u)===wa)return e.slice(o+u+1);if(u===0)return e.slice(o+u)}else r>a&&(n.charCodeAt(t+u)===wa?l=u:u===0&&(l=0));let c="";for(u=t+l+1;u<=i;++u)(u===i||n.charCodeAt(u)===wa)&&(c+=c.length===0?"..":"/..");return`${c}${e.slice(o+l)}`},toNamespacedPath(n){return n},dirname(n){if(us(n,"path"),n.length===0)return".";const e=n.charCodeAt(0)===wa;let t=-1,i=!0;for(let r=n.length-1;r>=1;--r)if(n.charCodeAt(r)===wa){if(!i){t=r;break}}else i=!1;return t===-1?e?"/":".":e&&t===1?"//":n.slice(0,t)},basename(n,e){e!==void 0&&us(e,"ext"),us(n,"path");let t=0,i=-1,r=!0,o;if(e!==void 0&&e.length>0&&e.length<=n.length){if(e===n)return"";let s=e.length-1,a=-1;for(o=n.length-1;o>=0;--o){const l=n.charCodeAt(o);if(l===wa){if(!r){t=o+1;break}}else a===-1&&(r=!1,a=o+1),s>=0&&(l===e.charCodeAt(s)?--s===-1&&(i=o):(s=-1,i=a))}return t===i?i=a:i===-1&&(i=n.length),n.slice(t,i)}for(o=n.length-1;o>=0;--o)if(n.charCodeAt(o)===wa){if(!r){t=o+1;break}}else i===-1&&(r=!1,i=o+1);return i===-1?"":n.slice(t,i)},extname(n){us(n,"path");let e=-1,t=0,i=-1,r=!0,o=0;for(let s=n.length-1;s>=0;--s){const a=n.charCodeAt(s);if(a===wa){if(!r){t=s+1;break}continue}i===-1&&(r=!1,i=s+1),a===Sb?e===-1?e=s:o!==1&&(o=1):e!==-1&&(o=-1)}return e===-1||i===-1||o===0||o===1&&e===i-1&&e===t+1?"":n.slice(e,i)},format:Abe.bind(null,"/"),parse(n){us(n,"path");const e={root:"",dir:"",base:"",ext:"",name:""};if(n.length===0)return e;const t=n.charCodeAt(0)===wa;let i;t?(e.root="/",i=1):i=0;let r=-1,o=0,s=-1,a=!0,l=n.length-1,u=0;for(;l>=i;--l){const c=n.charCodeAt(l);if(c===wa){if(!a){o=l+1;break}continue}s===-1&&(a=!1,s=l+1),c===Sb?r===-1?r=l:u!==1&&(u=1):r!==-1&&(u=-1)}if(s!==-1){const c=o===0&&t?1:o;r===-1||u===0||u===1&&r===s-1&&r===o+1?e.base=e.name=n.slice(c,s):(e.name=n.slice(c,r),e.base=n.slice(c,s),e.ext=n.slice(r,s))}return o>0?e.dir=n.slice(0,o-1):t&&(e.dir="/"),e},sep:"/",delimiter:":",win32:null,posix:null};Zo.win32=nu.win32=nu,Zo.posix=nu.posix=Zo;const Nbe=Lb?nu.normalize:Zo.normalize,ugt=Lb?nu.resolve:Zo.resolve,cgt=Lb?nu.relative:Zo.relative,kbe=Lb?nu.dirname:Zo.dirname,_b=Lb?nu.basename:Zo.basename,dgt=Lb?nu.extname:Zo.extname,Db=Lb?nu.sep:Zo.sep,hgt=/^\w[\w\d+.-]*$/,ggt=/^\//,mgt=/^\/\//;function fgt(n,e){if(!n.scheme&&e)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${n.authority}", path: "${n.path}", query: "${n.query}", fragment: "${n.fragment}"}`);if(n.scheme&&!hgt.test(n.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(n.path){if(n.authority){if(!ggt.test(n.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(mgt.test(n.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}function pgt(n,e){return!n&&!e?"file":n}function bgt(n,e){switch(n){case"https":case"http":case"file":e?e[0]!==fh&&(e=fh+e):e=fh;break}return e}const ho="",fh="/",Cgt=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class $t{static isUri(e){return e instanceof $t?!0:e?typeof e.authority=="string"&&typeof e.fragment=="string"&&typeof e.path=="string"&&typeof e.query=="string"&&typeof e.scheme=="string"&&typeof e.fsPath=="string"&&typeof e.with=="function"&&typeof e.toString=="function":!1}constructor(e,t,i,r,o,s=!1){typeof e=="object"?(this.scheme=e.scheme||ho,this.authority=e.authority||ho,this.path=e.path||ho,this.query=e.query||ho,this.fragment=e.fragment||ho):(this.scheme=pgt(e,s),this.authority=t||ho,this.path=bgt(this.scheme,i||ho),this.query=r||ho,this.fragment=o||ho,fgt(this,s))}get fsPath(){return C5(this,!1)}with(e){if(!e)return this;let{scheme:t,authority:i,path:r,query:o,fragment:s}=e;return t===void 0?t=this.scheme:t===null&&(t=ho),i===void 0?i=this.authority:i===null&&(i=ho),r===void 0?r=this.path:r===null&&(r=ho),o===void 0?o=this.query:o===null&&(o=ho),s===void 0?s=this.fragment:s===null&&(s=ho),t===this.scheme&&i===this.authority&&r===this.path&&o===this.query&&s===this.fragment?this:new QI(t,i,r,o,s)}static parse(e,t=!1){const i=Cgt.exec(e);return i?new QI(i[2]||ho,v5(i[4]||ho),v5(i[5]||ho),v5(i[7]||ho),v5(i[9]||ho),t):new QI(ho,ho,ho,ho,ho)}static file(e){let t=ho;if(ya&&(e=e.replace(/\\/g,fh)),e[0]===fh&&e[1]===fh){const i=e.indexOf(fh,2);i===-1?(t=e.substring(2),e=fh):(t=e.substring(2,i),e=e.substring(i)||fh)}return new QI("file",t,e,ho,ho)}static from(e,t){return new QI(e.scheme,e.authority,e.path,e.query,e.fragment,t)}static joinPath(e,...t){if(!e.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let i;return ya&&e.scheme==="file"?i=$t.file(nu.join(C5(e,!0),...t)).path:i=Zo.join(e.path,...t),e.with({path:i})}toString(e=!1){return ZY(this,e)}toJSON(){return this}static revive(e){var t,i;if(e){if(e instanceof $t)return e;{const r=new QI(e);return r._formatted=(t=e.external)!==null&&t!==void 0?t:null,r._fsPath=e._sep===Mbe&&(i=e.fsPath)!==null&&i!==void 0?i:null,r}}else return e}}const Mbe=ya?1:void 0;let QI=class extends $t{constructor(){super(...arguments),this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=C5(this,!1)),this._fsPath}toString(e=!1){return e?ZY(this,!0):(this._formatted||(this._formatted=ZY(this,!1)),this._formatted)}toJSON(){const e={$mid:1};return this._fsPath&&(e.fsPath=this._fsPath,e._sep=Mbe),this._formatted&&(e.external=this._formatted),this.path&&(e.path=this.path),this.scheme&&(e.scheme=this.scheme),this.authority&&(e.authority=this.authority),this.query&&(e.query=this.query),this.fragment&&(e.fragment=this.fragment),e}};const Zbe={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function Tbe(n,e,t){let i,r=-1;for(let o=0;o=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||s===45||s===46||s===95||s===126||e&&s===47||t&&s===91||t&&s===93||t&&s===58)r!==-1&&(i+=encodeURIComponent(n.substring(r,o)),r=-1),i!==void 0&&(i+=n.charAt(o));else{i===void 0&&(i=n.substr(0,o));const a=Zbe[s];a!==void 0?(r!==-1&&(i+=encodeURIComponent(n.substring(r,o)),r=-1),i+=a):r===-1&&(r=o)}}return r!==-1&&(i+=encodeURIComponent(n.substring(r))),i!==void 0?i:n}function vgt(n){let e;for(let t=0;t1&&n.scheme==="file"?t=`//${n.authority}${n.path}`:n.path.charCodeAt(0)===47&&(n.path.charCodeAt(1)>=65&&n.path.charCodeAt(1)<=90||n.path.charCodeAt(1)>=97&&n.path.charCodeAt(1)<=122)&&n.path.charCodeAt(2)===58?e?t=n.path.substr(1):t=n.path[1].toLowerCase()+n.path.substr(2):t=n.path,ya&&(t=t.replace(/\//g,"\\")),t}function ZY(n,e){const t=e?vgt:Tbe;let i="",{scheme:r,authority:o,path:s,query:a,fragment:l}=n;if(r&&(i+=r,i+=":"),(o||r==="file")&&(i+=fh,i+=fh),o){let u=o.indexOf("@");if(u!==-1){const c=o.substr(0,u);o=o.substr(u+1),u=c.lastIndexOf(":"),u===-1?i+=t(c,!1,!1):(i+=t(c.substr(0,u),!1,!1),i+=":",i+=t(c.substr(u+1),!1,!0)),i+="@"}o=o.toLowerCase(),u=o.lastIndexOf(":"),u===-1?i+=t(o,!1,!0):(i+=t(o.substr(0,u),!1,!0),i+=o.substr(u))}if(s){if(s.length>=3&&s.charCodeAt(0)===47&&s.charCodeAt(2)===58){const u=s.charCodeAt(1);u>=65&&u<=90&&(s=`/${String.fromCharCode(u+32)}:${s.substr(3)}`)}else if(s.length>=2&&s.charCodeAt(1)===58){const u=s.charCodeAt(0);u>=65&&u<=90&&(s=`${String.fromCharCode(u+32)}:${s.substr(2)}`)}i+=t(s,!0,!1)}return a&&(i+="?",i+=t(a,!1,!1)),l&&(i+="#",i+=e?l:Tbe(l,!1,!1)),i}function Ebe(n){try{return decodeURIComponent(n)}catch{return n.length>3?n.substr(0,3)+Ebe(n.substr(3)):n}}const Wbe=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function v5(n){return n.match(Wbe)?n.replace(Wbe,e=>Ebe(e)):n}var xn;(function(n){n.inMemory="inmemory",n.vscode="vscode",n.internal="private",n.walkThrough="walkThrough",n.walkThroughSnippet="walkThroughSnippet",n.http="http",n.https="https",n.file="file",n.mailto="mailto",n.untitled="untitled",n.data="data",n.command="command",n.vscodeRemote="vscode-remote",n.vscodeRemoteResource="vscode-remote-resource",n.vscodeManagedRemoteResource="vscode-managed-remote-resource",n.vscodeUserData="vscode-userdata",n.vscodeCustomEditor="vscode-custom-editor",n.vscodeNotebookCell="vscode-notebook-cell",n.vscodeNotebookCellMetadata="vscode-notebook-cell-metadata",n.vscodeNotebookCellOutput="vscode-notebook-cell-output",n.vscodeInteractiveInput="vscode-interactive-input",n.vscodeSettings="vscode-settings",n.vscodeWorkspaceTrust="vscode-workspace-trust",n.vscodeTerminal="vscode-terminal",n.vscodeChatCodeBlock="vscode-chat-code-block",n.vscodeChatSesssion="vscode-chat-editor",n.webviewPanel="webview-panel",n.vscodeWebview="vscode-webview",n.extension="extension",n.vscodeFileResource="vscode-file",n.tmp="tmp",n.vsls="vsls",n.vscodeSourceControl="vscode-scm",n.codeSetting="code-setting",n.codeFeature="code-feature"})(xn||(xn={}));function TY(n,e){return $t.isUri(n)?JI(n.scheme,e):SY(n,e+":")}function Rbe(n,...e){return e.some(t=>TY(n,t))}const ygt="tkn";class Igt{constructor(){this._hosts=Object.create(null),this._ports=Object.create(null),this._connectionTokens=Object.create(null),this._preferredWebSchema="http",this._delegate=null,this._remoteResourcesPath=`/${xn.vscodeRemoteResource}`}setPreferredWebSchema(e){this._preferredWebSchema=e}rewrite(e){if(this._delegate)try{return this._delegate(e)}catch(a){return fn(a),e}const t=e.authority;let i=this._hosts[t];i&&i.indexOf(":")!==-1&&i.indexOf("[")===-1&&(i=`[${i}]`);const r=this._ports[t],o=this._connectionTokens[t];let s=`path=${encodeURIComponent(e.path)}`;return typeof o=="string"&&(s+=`&${ygt}=${encodeURIComponent(o)}`),$t.from({scheme:pb?this._preferredWebSchema:xn.vscodeRemoteResource,authority:`${i}:${r}`,path:this._remoteResourcesPath,query:s})}}const Gbe=new Igt,wgt="vscode-app";class MF{uriToBrowserUri(e){return e.scheme===xn.vscodeRemote?Gbe.rewrite(e):e.scheme===xn.file&&(dh||Wdt===`${xn.vscodeFileResource}://${MF.FALLBACK_AUTHORITY}`)?e.with({scheme:xn.vscodeFileResource,authority:e.authority||MF.FALLBACK_AUTHORITY,query:null,fragment:null}):e}}MF.FALLBACK_AUTHORITY=wgt;const Vbe=new MF;var Xbe;(function(n){const e=new Map([["1",{"Cross-Origin-Opener-Policy":"same-origin"}],["2",{"Cross-Origin-Embedder-Policy":"require-corp"}],["3",{"Cross-Origin-Opener-Policy":"same-origin","Cross-Origin-Embedder-Policy":"require-corp"}]]);n.CoopAndCoep=Object.freeze(e.get("3"));const t="vscode-coi";function i(o){let s;typeof o=="string"?s=new URL(o).searchParams:o instanceof URL?s=o.searchParams:$t.isUri(o)&&(s=new URL(o.toString(!0)).searchParams);const a=s==null?void 0:s.get(t);if(a)return e.get(a)}n.getHeadersFromQuery=i;function r(o,s,a){if(!globalThis.crossOriginIsolated)return;const l=s&&a?"3":a?"2":"1";o instanceof URLSearchParams?o.set(t,l):o[t]=l}n.addSearchParam=r})(Xbe||(Xbe={}));function y5(n){return I5(n,0)}function I5(n,e){switch(typeof n){case"object":return n===null?ff(349,e):Array.isArray(n)?xgt(n,e):Lgt(n,e);case"string":return EY(n,e);case"boolean":return Sgt(n,e);case"number":return ff(n,e);case"undefined":return ff(937,e);default:return ff(617,e)}}function ff(n,e){return(e<<5)-e+n|0}function Sgt(n,e){return ff(n?433:863,e)}function EY(n,e){e=ff(149417,e);for(let t=0,i=n.length;tI5(i,t),e)}function Lgt(n,e){return e=ff(181387,e),Object.keys(n).sort().reduce((t,i)=>(t=EY(i,t),I5(n[i],t)),e)}function WY(n,e,t=32){const i=t-e,r=~((1<>>i)>>>0}function Pbe(n,e=0,t=n.byteLength,i=0){for(let r=0;rt.toString(16).padStart(2,"0")).join(""):Fgt((n>>>0).toString(16),e/4)}class w5{constructor(){this._h0=1732584193,this._h1=4023233417,this._h2=2562383102,this._h3=271733878,this._h4=3285377520,this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(e){const t=e.length;if(t===0)return;const i=this._buff;let r=this._buffLen,o=this._leftoverHighSurrogate,s,a;for(o!==0?(s=o,a=-1,o=0):(s=e.charCodeAt(0),a=0);;){let l=s;if(qo(s))if(a+1>>6,e[t++]=128|(i&63)>>>0):i<65536?(e[t++]=224|(i&61440)>>>12,e[t++]=128|(i&4032)>>>6,e[t++]=128|(i&63)>>>0):(e[t++]=240|(i&1835008)>>>18,e[t++]=128|(i&258048)>>>12,e[t++]=128|(i&4032)>>>6,e[t++]=128|(i&63)>>>0),t>=64&&(this._step(),t-=64,this._totalLen+=64,e[0]=e[64],e[1]=e[65],e[2]=e[66]),t}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),ZF(this._h0)+ZF(this._h1)+ZF(this._h2)+ZF(this._h3)+ZF(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,Pbe(this._buff,this._buffLen),this._buffLen>56&&(this._step(),Pbe(this._buff));const e=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(e/4294967296),!1),this._buffDV.setUint32(60,e%4294967296,!1),this._step()}_step(){const e=w5._bigBlock32,t=this._buffDV;for(let d=0;d<64;d+=4)e.setUint32(d,t.getUint32(d,!1),!1);for(let d=64;d<320;d+=4)e.setUint32(d,WY(e.getUint32(d-12,!1)^e.getUint32(d-32,!1)^e.getUint32(d-56,!1)^e.getUint32(d-64,!1),1),!1);let i=this._h0,r=this._h1,o=this._h2,s=this._h3,a=this._h4,l,u,c;for(let d=0;d<80;d++)d<20?(l=r&o|~r&s,u=1518500249):d<40?(l=r^o^s,u=1859775393):d<60?(l=r&o|r&s|o&s,u=2400959708):(l=r^o^s,u=3395469782),c=WY(i,5)+l+a+u+e.getUint32(d*4,!1)&4294967295,a=s,s=o,o=WY(r,30),r=i,i=c;this._h0=this._h0+i&4294967295,this._h1=this._h1+r&4294967295,this._h2=this._h2+o&4294967295,this._h3=this._h3+s&4294967295,this._h4=this._h4+a&4294967295}}w5._bigBlock32=new DataView(new ArrayBuffer(320));const{registerWindow:iJt,getWindow:qt,getDocument:rJt,getWindows:Obe,getWindowsCount:_gt,getWindowId:S5,getWindowById:Bbe,hasWindow:oJt,onDidRegisterWindow:x5,onWillUnregisterWindow:Dgt,onDidUnregisterWindow:Agt}=function(){const n=new Map;_dt(Wi,1);const e={window:Wi,disposables:new je};n.set(Wi.vscodeWindowId,e);const t=new be,i=new be,r=new be;function o(s,a){const l=typeof s=="number"?n.get(s):void 0;return l??(a?e:void 0)}return{onDidRegisterWindow:t.event,onWillUnregisterWindow:r.event,onDidUnregisterWindow:i.event,registerWindow(s){if(n.has(s.vscodeWindowId))return De.None;const a=new je,l={window:s,disposables:a.add(new je)};return n.set(s.vscodeWindowId,l),a.add(en(()=>{n.delete(s.vscodeWindowId),i.fire(s)})),a.add(Ve(s,at.BEFORE_UNLOAD,()=>{r.fire(s)})),t.fire(l),a},getWindows(){return n.values()},getWindowsCount(){return n.size},getWindowId(s){return s.vscodeWindowId},hasWindow(s){return n.has(s)},getWindowById:o,getWindow(s){var a;const l=s;if(!((a=l==null?void 0:l.ownerDocument)===null||a===void 0)&&a.defaultView)return l.ownerDocument.defaultView.window;const u=s;return u!=null&&u.view?u.view.window:Wi},getDocument(s){return qt(s).document}}}();function la(n){for(;n.firstChild;)n.firstChild.remove()}class Ngt{constructor(e,t,i,r){this._node=e,this._type=t,this._handler=i,this._options=r||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}}function Ve(n,e,t,i){return new Ngt(n,e,t,i)}function zbe(n,e){return function(t){return e(new dd(n,t))}}function kgt(n){return function(e){return n(new nr(e))}}const Gr=function(e,t,i,r){let o=i;return t==="click"||t==="mousedown"?o=zbe(qt(e),i):(t==="keydown"||t==="keypress"||t==="keyup")&&(o=kgt(i)),Ve(e,t,o,r)},Mgt=function(e,t,i){const r=zbe(qt(e),t);return Zgt(e,r,i)};function Zgt(n,e,t){return Ve(n,Dg&&Kz.pointerEvents?at.POINTER_DOWN:at.MOUSE_DOWN,e,t)}function TF(n,e,t){return FF(n,e,t)}class RY extends rbe{constructor(e,t){super(e,t)}}let L5,iu;class GY extends cY{constructor(e){super(),this.defaultTarget=e&&qt(e)}cancelAndSet(e,t,i){return super.cancelAndSet(e,t,i??this.defaultTarget)}}class VY{constructor(e,t=0){this._runner=e,this.priority=t,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(e){fn(e)}}static sort(e,t){return t.priority-e.priority}}(function(){const n=new Map,e=new Map,t=new Map,i=new Map,r=o=>{var s;t.set(o,!1);const a=(s=n.get(o))!==null&&s!==void 0?s:[];for(e.set(o,a),n.set(o,[]),i.set(o,!0);a.length>0;)a.sort(VY.sort),a.shift().execute();i.set(o,!1)};iu=(o,s,a=0)=>{const l=S5(o),u=new VY(s,a);let c=n.get(l);return c||(c=[],n.set(l,c)),c.push(u),t.get(l)||(t.set(l,!0),o.requestAnimationFrame(()=>r(l))),u},L5=(o,s,a)=>{const l=S5(o);if(i.get(l)){const u=new VY(s,a);let c=e.get(l);return c||(c=[],e.set(l,c)),c.push(u),u}else return iu(o,s,a)}})();function F5(n){return qt(n).getComputedStyle(n,null)}function pf(n,e){const t=qt(n),i=t.document;if(n!==i.body)return new fi(n.clientWidth,n.clientHeight);if(Dg&&(t!=null&&t.visualViewport))return new fi(t.visualViewport.width,t.visualViewport.height);if(t!=null&&t.innerWidth&&t.innerHeight)return new fi(t.innerWidth,t.innerHeight);if(i.body&&i.body.clientWidth&&i.body.clientHeight)return new fi(i.body.clientWidth,i.body.clientHeight);if(i.documentElement&&i.documentElement.clientWidth&&i.documentElement.clientHeight)return new fi(i.documentElement.clientWidth,i.documentElement.clientHeight);if(e)return pf(e);throw new Error("Unable to figure out browser width and height")}class Qr{static convertToPixels(e,t){return parseFloat(t)||0}static getDimension(e,t,i){const r=F5(e),o=r?r.getPropertyValue(t):"0";return Qr.convertToPixels(e,o)}static getBorderLeftWidth(e){return Qr.getDimension(e,"border-left-width","borderLeftWidth")}static getBorderRightWidth(e){return Qr.getDimension(e,"border-right-width","borderRightWidth")}static getBorderTopWidth(e){return Qr.getDimension(e,"border-top-width","borderTopWidth")}static getBorderBottomWidth(e){return Qr.getDimension(e,"border-bottom-width","borderBottomWidth")}static getPaddingLeft(e){return Qr.getDimension(e,"padding-left","paddingLeft")}static getPaddingRight(e){return Qr.getDimension(e,"padding-right","paddingRight")}static getPaddingTop(e){return Qr.getDimension(e,"padding-top","paddingTop")}static getPaddingBottom(e){return Qr.getDimension(e,"padding-bottom","paddingBottom")}static getMarginLeft(e){return Qr.getDimension(e,"margin-left","marginLeft")}static getMarginTop(e){return Qr.getDimension(e,"margin-top","marginTop")}static getMarginRight(e){return Qr.getDimension(e,"margin-right","marginRight")}static getMarginBottom(e){return Qr.getDimension(e,"margin-bottom","marginBottom")}}class fi{constructor(e,t){this.width=e,this.height=t}with(e=this.width,t=this.height){return e!==this.width||t!==this.height?new fi(e,t):this}static is(e){return typeof e=="object"&&typeof e.height=="number"&&typeof e.width=="number"}static lift(e){return e instanceof fi?e:new fi(e.width,e.height)}static equals(e,t){return e===t?!0:!e||!t?!1:e.width===t.width&&e.height===t.height}}fi.None=new fi(0,0);function Ybe(n){let e=n.offsetParent,t=n.offsetTop,i=n.offsetLeft;for(;(n=n.parentNode)!==null&&n!==n.ownerDocument.body&&n!==n.ownerDocument.documentElement;){t-=n.scrollTop;const r=Ube(n)?null:F5(n);r&&(i-=r.direction!=="rtl"?n.scrollLeft:-n.scrollLeft),n===e&&(i+=Qr.getBorderLeftWidth(n),t+=Qr.getBorderTopWidth(n),t+=n.offsetTop,i+=n.offsetLeft,e=n.offsetParent)}return{left:i,top:t}}function Tgt(n,e,t){typeof e=="number"&&(n.style.width=`${e}px`),typeof t=="number"&&(n.style.height=`${t}px`)}function go(n){const e=n.getBoundingClientRect(),t=qt(n);return{left:e.left+t.scrollX,top:e.top+t.scrollY,width:e.width,height:e.height}}function Hbe(n){let e=n,t=1;do{const i=F5(e).zoom;i!=null&&i!=="1"&&(t*=i),e=e.parentElement}while(e!==null&&e!==e.ownerDocument.documentElement);return t}function Ja(n){const e=Qr.getMarginLeft(n)+Qr.getMarginRight(n);return n.offsetWidth+e}function XY(n){const e=Qr.getBorderLeftWidth(n)+Qr.getBorderRightWidth(n),t=Qr.getPaddingLeft(n)+Qr.getPaddingRight(n);return n.offsetWidth-e-t}function Egt(n){const e=Qr.getBorderTopWidth(n)+Qr.getBorderBottomWidth(n),t=Qr.getPaddingTop(n)+Qr.getPaddingBottom(n);return n.offsetHeight-e-t}function bf(n){const e=Qr.getMarginTop(n)+Qr.getMarginBottom(n);return n.offsetHeight+e}function xs(n,e){return!!(e!=null&&e.contains(n))}function Wgt(n,e,t){for(;n&&n.nodeType===n.ELEMENT_NODE;){if(n.classList.contains(e))return n;if(t){if(typeof t=="string"){if(n.classList.contains(t))return null}else if(n===t)return null}n=n.parentNode}return null}function PY(n,e,t){return!!Wgt(n,e,t)}function Ube(n){return n&&!!n.host&&!!n.mode}function _5(n){return!!_C(n)}function _C(n){for(var e;n.parentNode;){if(n===((e=n.ownerDocument)===null||e===void 0?void 0:e.body))return null;n=n.parentNode}return Ube(n)?n:null}function Ys(){let n=$I().activeElement;for(;n!=null&&n.shadowRoot;)n=n.shadowRoot.activeElement;return n}function EF(n){return Ys()===n}function Jbe(n){return xs(Ys(),n)}function $I(){var n;return _gt()<=1?Wi.document:(n=Array.from(Obe()).map(({window:t})=>t.document).find(t=>t.hasFocus()))!==null&&n!==void 0?n:Wi.document}function Rgt(){var n,e;return(e=(n=$I().defaultView)===null||n===void 0?void 0:n.window)!==null&&e!==void 0?e:Wi}const OY=new Map;function Kbe(){return new Ggt}class Ggt{constructor(){this._currentCssStyle="",this._styleSheet=void 0}setStyle(e){e!==this._currentCssStyle&&(this._currentCssStyle=e,this._styleSheet?this._styleSheet.innerText=e:this._styleSheet=Eu(Wi.document.head,t=>t.innerText=e))}dispose(){this._styleSheet&&(this._styleSheet.remove(),this._styleSheet=void 0)}}function Eu(n=Wi.document.head,e,t){const i=document.createElement("style");if(i.type="text/css",i.media="screen",e==null||e(i),n.appendChild(i),t&&t.add(en(()=>n.removeChild(i))),n===Wi.document.head){const r=new Set;OY.set(i,r);for(const{window:o,disposables:s}of Obe()){if(o===Wi)continue;const a=s.add(Vgt(i,r,o));t==null||t.add(a)}}return i}function Vgt(n,e,t){var i,r;const o=new je,s=n.cloneNode(!0);t.document.head.appendChild(s),o.add(en(()=>t.document.head.removeChild(s)));for(const a of Qbe(n))(i=s.sheet)===null||i===void 0||i.insertRule(a.cssText,(r=s.sheet)===null||r===void 0?void 0:r.cssRules.length);return o.add(Xgt.observe(n,o,{childList:!0})(()=>{s.textContent=n.textContent})),e.add(s),o.add(en(()=>e.delete(s))),o}const Xgt=new class{constructor(){this.mutationObservers=new Map}observe(n,e,t){let i=this.mutationObservers.get(n);i||(i=new Map,this.mutationObservers.set(n,i));const r=y5(t);let o=i.get(r);if(o)o.users+=1;else{const s=new be,a=new MutationObserver(u=>s.fire(u));a.observe(n,t);const l=o={users:1,observer:a,onDidMutate:s.event};e.add(en(()=>{l.users-=1,l.users===0&&(s.dispose(),a.disconnect(),i==null||i.delete(r),(i==null?void 0:i.size)===0&&this.mutationObservers.delete(n))})),i.set(r,o)}return o.onDidMutate}};let BY=null;function jbe(){return BY||(BY=Eu()),BY}function Qbe(n){var e,t;return!((e=n==null?void 0:n.sheet)===null||e===void 0)&&e.rules?n.sheet.rules:!((t=n==null?void 0:n.sheet)===null||t===void 0)&&t.cssRules?n.sheet.cssRules:[]}function D5(n,e,t=jbe()){var i,r;if(!(!t||!e)){(i=t.sheet)===null||i===void 0||i.insertRule(`${n} {${e}}`,0);for(const o of(r=OY.get(t))!==null&&r!==void 0?r:[])D5(n,e,o)}}function zY(n,e=jbe()){var t,i;if(!e)return;const r=Qbe(e),o=[];for(let s=0;s=0;s--)(t=e.sheet)===null||t===void 0||t.deleteRule(o[s]);for(const s of(i=OY.get(e))!==null&&i!==void 0?i:[])zY(n,s)}function Pgt(n){return typeof n.selectorText=="string"}function YY(n){return n instanceof MouseEvent||n instanceof qt(n).MouseEvent}function HY(n){return n instanceof KeyboardEvent||n instanceof qt(n).KeyboardEvent}const at={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",MOUSE_WHEEL:"wheel",POINTER_UP:"pointerup",POINTER_DOWN:"pointerdown",POINTER_MOVE:"pointermove",POINTER_LEAVE:"pointerleave",CONTEXT_MENU:"contextmenu",WHEEL:"wheel",KEY_DOWN:"keydown",KEY_PRESS:"keypress",KEY_UP:"keyup",LOAD:"load",BEFORE_UNLOAD:"beforeunload",UNLOAD:"unload",PAGE_SHOW:"pageshow",PAGE_HIDE:"pagehide",PASTE:"paste",ABORT:"abort",ERROR:"error",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_CHANGE:"fullscreenchange",WK_FULLSCREEN_CHANGE:"webkitfullscreenchange",SELECT:"select",CHANGE:"change",SUBMIT:"submit",RESET:"reset",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",STORAGE:"storage",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend",ANIMATION_START:IC?"webkitAnimationStart":"animationstart",ANIMATION_END:IC?"webkitAnimationEnd":"animationend",ANIMATION_ITERATION:IC?"webkitAnimationIteration":"animationiteration"};function Ogt(n){const e=n;return!!(e&&typeof e.preventDefault=="function"&&typeof e.stopPropagation=="function")}const En={stop:(n,e)=>(n.preventDefault(),e&&n.stopPropagation(),n)};function Bgt(n){const e=[];for(let t=0;n&&n.nodeType===n.ELEMENT_NODE;t++)e[t]=n.scrollTop,n=n.parentNode;return e}function zgt(n,e){for(let t=0;n&&n.nodeType===n.ELEMENT_NODE;t++)n.scrollTop!==e[t]&&(n.scrollTop=e[t]),n=n.parentNode}class A5 extends De{static hasFocusWithin(e){if(e instanceof HTMLElement){const t=_C(e),i=t?t.activeElement:e.ownerDocument.activeElement;return xs(i,e)}else{const t=e;return xs(t.document.activeElement,t.document)}}constructor(e){super(),this._onDidFocus=this._register(new be),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new be),this.onDidBlur=this._onDidBlur.event;let t=A5.hasFocusWithin(e),i=!1;const r=()=>{i=!1,t||(t=!0,this._onDidFocus.fire())},o=()=>{t&&(i=!0,(e instanceof HTMLElement?qt(e):e).setTimeout(()=>{i&&(i=!1,t=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{A5.hasFocusWithin(e)!==t&&(t?o():r())},this._register(Ve(e,at.FOCUS,r,!0)),this._register(Ve(e,at.BLUR,o,!0)),e instanceof HTMLElement&&(this._register(Ve(e,at.FOCUS_IN,()=>this._refreshStateHandler())),this._register(Ve(e,at.FOCUS_OUT,()=>this._refreshStateHandler())))}}function ph(n){return new A5(n)}function Ygt(n,e){return n.after(e),e}function Je(n,...e){if(n.append(...e),e.length===1&&typeof e[0]!="string")return e[0]}function UY(n,e){return n.insertBefore(e,n.firstChild),e}function ua(n,...e){n.innerText="",Je(n,...e)}const Hgt=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;var WF;(function(n){n.HTML="http://www.w3.org/1999/xhtml",n.SVG="http://www.w3.org/2000/svg"})(WF||(WF={}));function $be(n,e,t,...i){const r=Hgt.exec(e);if(!r)throw new Error("Bad use of emmet");const o=r[1]||"div";let s;return n!==WF.HTML?s=document.createElementNS(n,o):s=document.createElement(o),r[3]&&(s.id=r[3]),r[4]&&(s.className=r[4].replace(/\./g," ").trim()),t&&Object.entries(t).forEach(([a,l])=>{typeof l>"u"||(/^on\w+$/.test(a)?s[a]=l:a==="selected"?l&&s.setAttribute(a,"true"):s.setAttribute(a,l))}),s.append(...i),s}function vt(n,e,...t){return $be(WF.HTML,n,e,...t)}vt.SVG=function(n,e,...t){return $be(WF.SVG,n,e,...t)};function Ugt(n,...e){n?ru(...e):Ka(...e)}function ru(...n){for(const e of n)e.style.display="",e.removeAttribute("aria-hidden")}function Ka(...n){for(const e of n)e.style.display="none",e.setAttribute("aria-hidden","true")}function qbe(n,e){const t=n.devicePixelRatio*e;return Math.max(1,Math.floor(t))/n.devicePixelRatio}function e0e(n){Wi.open(n,"_blank","noopener")}function Jgt(n,e){const t=()=>{e(),i=iu(n,t)};let i=iu(n,t);return en(()=>i.dispose())}Gbe.setPreferredWebSchema(/^https:/.test(Wi.location.href)?"https":"http");function Ab(n){return n?`url('${Vbe.uriToBrowserUri(n).toString(!0).replace(/'/g,"%27")}')`:"url('')"}function t0e(n){return`'${n.replace(/'/g,"%27")}'`}function Cf(n,e){if(n!==void 0){const t=n.match(/^\s*var\((.+)\)$/);if(t){const i=t[1].split(",",2);return i.length===2&&(e=Cf(i[1].trim(),e)),`var(${i[0]}, ${e})`}return n}return e}function Kgt(n,e=!1){const t=document.createElement("a");return yY("afterSanitizeAttributes",i=>{for(const r of["href","src"])if(i.hasAttribute(r)){const o=i.getAttribute(r);if(r==="href"&&o.startsWith("#"))continue;if(t.href=o,!n.includes(t.protocol.replace(/:$/,""))){if(e&&r==="src"&&t.href.startsWith("data:"))continue;i.removeAttribute(r)}}}),en(()=>{bbe("afterSanitizeAttributes")})}const jgt=Object.freeze(["a","abbr","b","bdo","blockquote","br","caption","cite","code","col","colgroup","dd","del","details","dfn","div","dl","dt","em","figcaption","figure","h1","h2","h3","h4","h5","h6","hr","i","img","input","ins","kbd","label","li","mark","ol","p","pre","q","rp","rt","ruby","samp","small","small","source","span","strike","strong","sub","summary","sup","table","tbody","td","tfoot","th","thead","time","tr","tt","u","ul","var","video","wbr"]);class vf extends be{constructor(){super(),this._subscriptions=new je,this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1},this._subscriptions.add(ft.runAndSubscribe(x5,({window:e,disposables:t})=>this.registerListeners(e,t),{window:Wi,disposables:this._subscriptions}))}registerListeners(e,t){t.add(Ve(e,"keydown",i=>{if(i.defaultPrevented)return;const r=new nr(i);if(!(r.keyCode===6&&i.repeat)){if(i.altKey&&!this._keyStatus.altKey)this._keyStatus.lastKeyPressed="alt";else if(i.ctrlKey&&!this._keyStatus.ctrlKey)this._keyStatus.lastKeyPressed="ctrl";else if(i.metaKey&&!this._keyStatus.metaKey)this._keyStatus.lastKeyPressed="meta";else if(i.shiftKey&&!this._keyStatus.shiftKey)this._keyStatus.lastKeyPressed="shift";else if(r.keyCode!==6)this._keyStatus.lastKeyPressed=void 0;else return;this._keyStatus.altKey=i.altKey,this._keyStatus.ctrlKey=i.ctrlKey,this._keyStatus.metaKey=i.metaKey,this._keyStatus.shiftKey=i.shiftKey,this._keyStatus.lastKeyPressed&&(this._keyStatus.event=i,this.fire(this._keyStatus))}},!0)),t.add(Ve(e,"keyup",i=>{i.defaultPrevented||(!i.altKey&&this._keyStatus.altKey?this._keyStatus.lastKeyReleased="alt":!i.ctrlKey&&this._keyStatus.ctrlKey?this._keyStatus.lastKeyReleased="ctrl":!i.metaKey&&this._keyStatus.metaKey?this._keyStatus.lastKeyReleased="meta":!i.shiftKey&&this._keyStatus.shiftKey?this._keyStatus.lastKeyReleased="shift":this._keyStatus.lastKeyReleased=void 0,this._keyStatus.lastKeyPressed!==this._keyStatus.lastKeyReleased&&(this._keyStatus.lastKeyPressed=void 0),this._keyStatus.altKey=i.altKey,this._keyStatus.ctrlKey=i.ctrlKey,this._keyStatus.metaKey=i.metaKey,this._keyStatus.shiftKey=i.shiftKey,this._keyStatus.lastKeyReleased&&(this._keyStatus.event=i,this.fire(this._keyStatus)))},!0)),t.add(Ve(e.document.body,"mousedown",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),t.add(Ve(e.document.body,"mouseup",()=>{this._keyStatus.lastKeyPressed=void 0},!0)),t.add(Ve(e.document.body,"mousemove",i=>{i.buttons&&(this._keyStatus.lastKeyPressed=void 0)},!0)),t.add(Ve(e,"blur",()=>{this.resetKeyStatus()}))}get keyStatus(){return this._keyStatus}resetKeyStatus(){this.doResetKeyStatus(),this.fire(this._keyStatus)}doResetKeyStatus(){this._keyStatus={altKey:!1,shiftKey:!1,ctrlKey:!1,metaKey:!1}}static getInstance(){return vf.instance||(vf.instance=new vf),vf.instance}dispose(){super.dispose(),this._subscriptions.dispose()}}class Qgt extends De{constructor(e,t){super(),this.element=e,this.callbacks=t,this.counter=0,this.dragStartTime=0,this.registerListeners()}registerListeners(){this.callbacks.onDragStart&&this._register(Ve(this.element,at.DRAG_START,e=>{var t,i;(i=(t=this.callbacks).onDragStart)===null||i===void 0||i.call(t,e)})),this.callbacks.onDrag&&this._register(Ve(this.element,at.DRAG,e=>{var t,i;(i=(t=this.callbacks).onDrag)===null||i===void 0||i.call(t,e)})),this._register(Ve(this.element,at.DRAG_ENTER,e=>{var t,i;this.counter++,this.dragStartTime=e.timeStamp,(i=(t=this.callbacks).onDragEnter)===null||i===void 0||i.call(t,e)})),this._register(Ve(this.element,at.DRAG_OVER,e=>{var t,i;e.preventDefault(),(i=(t=this.callbacks).onDragOver)===null||i===void 0||i.call(t,e,e.timeStamp-this.dragStartTime)})),this._register(Ve(this.element,at.DRAG_LEAVE,e=>{var t,i;this.counter--,this.counter===0&&(this.dragStartTime=0,(i=(t=this.callbacks).onDragLeave)===null||i===void 0||i.call(t,e))})),this._register(Ve(this.element,at.DRAG_END,e=>{var t,i;this.counter=0,this.dragStartTime=0,(i=(t=this.callbacks).onDragEnd)===null||i===void 0||i.call(t,e)})),this._register(Ve(this.element,at.DROP,e=>{var t,i;this.counter=0,this.dragStartTime=0,(i=(t=this.callbacks).onDrop)===null||i===void 0||i.call(t,e)}))}}const $gt=/(?[\w\-]+)?(?:#(?[\w\-]+))?(?(?:\.(?:[\w\-]+))*)(?:@(?(?:[\w\_])+))?/;function Xi(n,...e){let t,i;Array.isArray(e[0])?(t={},i=e[0]):(t=e[0]||{},i=e[1]);const r=$gt.exec(n);if(!r||!r.groups)throw new Error("Bad use of h");const o=r.groups.tag||"div",s=document.createElement(o);r.groups.id&&(s.id=r.groups.id);const a=[];if(r.groups.class)for(const u of r.groups.class.split("."))u!==""&&a.push(u);if(t.className!==void 0)for(const u of t.className.split("."))u!==""&&a.push(u);a.length>0&&(s.className=a.join(" "));const l={};if(r.groups.name&&(l[r.groups.name]=s),i)for(const u of i)u instanceof HTMLElement?s.appendChild(u):typeof u=="string"?s.append(u):"root"in u&&(Object.assign(l,u),s.appendChild(u.root));for(const[u,c]of Object.entries(t))if(u!=="className")if(u==="style")for(const[d,h]of Object.entries(c))s.style.setProperty(n0e(d),typeof h=="number"?h+"px":""+h);else u==="tabIndex"?s.tabIndex=c:s.setAttribute(n0e(u),c.toString());return l.root=s,l}function n0e(n){return n.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase()}const i0e=2e4;let DC,N5,JY,k5,KY;function qgt(n){DC=document.createElement("div"),DC.className="monaco-aria-container";const e=()=>{const i=document.createElement("div");return i.className="monaco-alert",i.setAttribute("role","alert"),i.setAttribute("aria-atomic","true"),DC.appendChild(i),i};N5=e(),JY=e();const t=()=>{const i=document.createElement("div");return i.className="monaco-status",i.setAttribute("aria-live","polite"),i.setAttribute("aria-atomic","true"),DC.appendChild(i),i};k5=t(),KY=t(),n.appendChild(DC)}function ou(n){DC&&(N5.textContent!==n?(la(JY),M5(N5,n)):(la(N5),M5(JY,n)))}function yf(n){DC&&(k5.textContent!==n?(la(KY),M5(k5,n)):(la(k5),M5(KY,n)))}function M5(n,e){la(n),e.length>i0e&&(e=e.substr(0,i0e)),n.textContent=e,n.style.visibility="hidden",n.style.visibility="visible"}var bh;(function(n){n.serviceIds=new Map,n.DI_TARGET="$di$target",n.DI_DEPENDENCIES="$di$dependencies";function e(t){return t[n.DI_DEPENDENCIES]||[]}n.getServiceDependencies=e})(bh||(bh={}));const tn=Un("instantiationService");function emt(n,e,t){e[bh.DI_TARGET]===e?e[bh.DI_DEPENDENCIES].push({id:n,index:t}):(e[bh.DI_DEPENDENCIES]=[{id:n,index:t}],e[bh.DI_TARGET]=e)}function Un(n){if(bh.serviceIds.has(n))return bh.serviceIds.get(n);const e=function(t,i,r){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");emt(e,t,r)};return e.toString=()=>n,bh.serviceIds.set(n,e),e}const yi=Un("codeEditorService");let ve=class by{constructor(e,t){this.lineNumber=e,this.column=t}with(e=this.lineNumber,t=this.column){return e===this.lineNumber&&t===this.column?this:new by(e,t)}delta(e=0,t=0){return this.with(this.lineNumber+e,this.column+t)}equals(e){return by.equals(this,e)}static equals(e,t){return!e&&!t?!0:!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column}isBefore(e){return by.isBefore(this,e)}static isBefore(e,t){return e.lineNumbern.run(...t),tooltip:n.label}}const jY=Object.create(null);function J(n,e){if(Ll(e)){const t=jY[e];if(t===void 0)throw new Error(`${n} references an unknown codicon: ${e}`);e=t}return jY[n]=e,{id:n}}function r0e(){return jY}const ct={add:J("add",6e4),plus:J("plus",6e4),gistNew:J("gist-new",6e4),repoCreate:J("repo-create",6e4),lightbulb:J("lightbulb",60001),lightBulb:J("light-bulb",60001),repo:J("repo",60002),repoDelete:J("repo-delete",60002),gistFork:J("gist-fork",60003),repoForked:J("repo-forked",60003),gitPullRequest:J("git-pull-request",60004),gitPullRequestAbandoned:J("git-pull-request-abandoned",60004),recordKeys:J("record-keys",60005),keyboard:J("keyboard",60005),tag:J("tag",60006),tagAdd:J("tag-add",60006),tagRemove:J("tag-remove",60006),gitPullRequestLabel:J("git-pull-request-label",60006),person:J("person",60007),personFollow:J("person-follow",60007),personOutline:J("person-outline",60007),personFilled:J("person-filled",60007),gitBranch:J("git-branch",60008),gitBranchCreate:J("git-branch-create",60008),gitBranchDelete:J("git-branch-delete",60008),sourceControl:J("source-control",60008),mirror:J("mirror",60009),mirrorPublic:J("mirror-public",60009),star:J("star",60010),starAdd:J("star-add",60010),starDelete:J("star-delete",60010),starEmpty:J("star-empty",60010),comment:J("comment",60011),commentAdd:J("comment-add",60011),alert:J("alert",60012),warning:J("warning",60012),search:J("search",60013),searchSave:J("search-save",60013),logOut:J("log-out",60014),signOut:J("sign-out",60014),logIn:J("log-in",60015),signIn:J("sign-in",60015),eye:J("eye",60016),eyeUnwatch:J("eye-unwatch",60016),eyeWatch:J("eye-watch",60016),circleFilled:J("circle-filled",60017),primitiveDot:J("primitive-dot",60017),closeDirty:J("close-dirty",60017),debugBreakpoint:J("debug-breakpoint",60017),debugBreakpointDisabled:J("debug-breakpoint-disabled",60017),debugBreakpointPending:J("debug-breakpoint-pending",60377),debugHint:J("debug-hint",60017),primitiveSquare:J("primitive-square",60018),edit:J("edit",60019),pencil:J("pencil",60019),info:J("info",60020),issueOpened:J("issue-opened",60020),gistPrivate:J("gist-private",60021),gitForkPrivate:J("git-fork-private",60021),lock:J("lock",60021),mirrorPrivate:J("mirror-private",60021),close:J("close",60022),removeClose:J("remove-close",60022),x:J("x",60022),repoSync:J("repo-sync",60023),sync:J("sync",60023),clone:J("clone",60024),desktopDownload:J("desktop-download",60024),beaker:J("beaker",60025),microscope:J("microscope",60025),vm:J("vm",60026),deviceDesktop:J("device-desktop",60026),file:J("file",60027),fileText:J("file-text",60027),more:J("more",60028),ellipsis:J("ellipsis",60028),kebabHorizontal:J("kebab-horizontal",60028),mailReply:J("mail-reply",60029),reply:J("reply",60029),organization:J("organization",60030),organizationFilled:J("organization-filled",60030),organizationOutline:J("organization-outline",60030),newFile:J("new-file",60031),fileAdd:J("file-add",60031),newFolder:J("new-folder",60032),fileDirectoryCreate:J("file-directory-create",60032),trash:J("trash",60033),trashcan:J("trashcan",60033),history:J("history",60034),clock:J("clock",60034),folder:J("folder",60035),fileDirectory:J("file-directory",60035),symbolFolder:J("symbol-folder",60035),logoGithub:J("logo-github",60036),markGithub:J("mark-github",60036),github:J("github",60036),terminal:J("terminal",60037),console:J("console",60037),repl:J("repl",60037),zap:J("zap",60038),symbolEvent:J("symbol-event",60038),error:J("error",60039),stop:J("stop",60039),variable:J("variable",60040),symbolVariable:J("symbol-variable",60040),array:J("array",60042),symbolArray:J("symbol-array",60042),symbolModule:J("symbol-module",60043),symbolPackage:J("symbol-package",60043),symbolNamespace:J("symbol-namespace",60043),symbolObject:J("symbol-object",60043),symbolMethod:J("symbol-method",60044),symbolFunction:J("symbol-function",60044),symbolConstructor:J("symbol-constructor",60044),symbolBoolean:J("symbol-boolean",60047),symbolNull:J("symbol-null",60047),symbolNumeric:J("symbol-numeric",60048),symbolNumber:J("symbol-number",60048),symbolStructure:J("symbol-structure",60049),symbolStruct:J("symbol-struct",60049),symbolParameter:J("symbol-parameter",60050),symbolTypeParameter:J("symbol-type-parameter",60050),symbolKey:J("symbol-key",60051),symbolText:J("symbol-text",60051),symbolReference:J("symbol-reference",60052),goToFile:J("go-to-file",60052),symbolEnum:J("symbol-enum",60053),symbolValue:J("symbol-value",60053),symbolRuler:J("symbol-ruler",60054),symbolUnit:J("symbol-unit",60054),activateBreakpoints:J("activate-breakpoints",60055),archive:J("archive",60056),arrowBoth:J("arrow-both",60057),arrowDown:J("arrow-down",60058),arrowLeft:J("arrow-left",60059),arrowRight:J("arrow-right",60060),arrowSmallDown:J("arrow-small-down",60061),arrowSmallLeft:J("arrow-small-left",60062),arrowSmallRight:J("arrow-small-right",60063),arrowSmallUp:J("arrow-small-up",60064),arrowUp:J("arrow-up",60065),bell:J("bell",60066),bold:J("bold",60067),book:J("book",60068),bookmark:J("bookmark",60069),debugBreakpointConditionalUnverified:J("debug-breakpoint-conditional-unverified",60070),debugBreakpointConditional:J("debug-breakpoint-conditional",60071),debugBreakpointConditionalDisabled:J("debug-breakpoint-conditional-disabled",60071),debugBreakpointDataUnverified:J("debug-breakpoint-data-unverified",60072),debugBreakpointData:J("debug-breakpoint-data",60073),debugBreakpointDataDisabled:J("debug-breakpoint-data-disabled",60073),debugBreakpointLogUnverified:J("debug-breakpoint-log-unverified",60074),debugBreakpointLog:J("debug-breakpoint-log",60075),debugBreakpointLogDisabled:J("debug-breakpoint-log-disabled",60075),briefcase:J("briefcase",60076),broadcast:J("broadcast",60077),browser:J("browser",60078),bug:J("bug",60079),calendar:J("calendar",60080),caseSensitive:J("case-sensitive",60081),check:J("check",60082),checklist:J("checklist",60083),chevronDown:J("chevron-down",60084),dropDownButton:J("drop-down-button",60084),chevronLeft:J("chevron-left",60085),chevronRight:J("chevron-right",60086),chevronUp:J("chevron-up",60087),chromeClose:J("chrome-close",60088),chromeMaximize:J("chrome-maximize",60089),chromeMinimize:J("chrome-minimize",60090),chromeRestore:J("chrome-restore",60091),circle:J("circle",60092),circleOutline:J("circle-outline",60092),debugBreakpointUnverified:J("debug-breakpoint-unverified",60092),circleSlash:J("circle-slash",60093),circuitBoard:J("circuit-board",60094),clearAll:J("clear-all",60095),clippy:J("clippy",60096),closeAll:J("close-all",60097),cloudDownload:J("cloud-download",60098),cloudUpload:J("cloud-upload",60099),code:J("code",60100),collapseAll:J("collapse-all",60101),colorMode:J("color-mode",60102),commentDiscussion:J("comment-discussion",60103),compareChanges:J("compare-changes",60157),creditCard:J("credit-card",60105),dash:J("dash",60108),dashboard:J("dashboard",60109),database:J("database",60110),debugContinue:J("debug-continue",60111),debugDisconnect:J("debug-disconnect",60112),debugPause:J("debug-pause",60113),debugRestart:J("debug-restart",60114),debugStart:J("debug-start",60115),debugStepInto:J("debug-step-into",60116),debugStepOut:J("debug-step-out",60117),debugStepOver:J("debug-step-over",60118),debugStop:J("debug-stop",60119),debug:J("debug",60120),deviceCameraVideo:J("device-camera-video",60121),deviceCamera:J("device-camera",60122),deviceMobile:J("device-mobile",60123),diffAdded:J("diff-added",60124),diffIgnored:J("diff-ignored",60125),diffModified:J("diff-modified",60126),diffRemoved:J("diff-removed",60127),diffRenamed:J("diff-renamed",60128),diff:J("diff",60129),discard:J("discard",60130),editorLayout:J("editor-layout",60131),emptyWindow:J("empty-window",60132),exclude:J("exclude",60133),extensions:J("extensions",60134),eyeClosed:J("eye-closed",60135),fileBinary:J("file-binary",60136),fileCode:J("file-code",60137),fileMedia:J("file-media",60138),filePdf:J("file-pdf",60139),fileSubmodule:J("file-submodule",60140),fileSymlinkDirectory:J("file-symlink-directory",60141),fileSymlinkFile:J("file-symlink-file",60142),fileZip:J("file-zip",60143),files:J("files",60144),filter:J("filter",60145),flame:J("flame",60146),foldDown:J("fold-down",60147),foldUp:J("fold-up",60148),fold:J("fold",60149),folderActive:J("folder-active",60150),folderOpened:J("folder-opened",60151),gear:J("gear",60152),gift:J("gift",60153),gistSecret:J("gist-secret",60154),gist:J("gist",60155),gitCommit:J("git-commit",60156),gitCompare:J("git-compare",60157),gitMerge:J("git-merge",60158),githubAction:J("github-action",60159),githubAlt:J("github-alt",60160),globe:J("globe",60161),grabber:J("grabber",60162),graph:J("graph",60163),gripper:J("gripper",60164),heart:J("heart",60165),home:J("home",60166),horizontalRule:J("horizontal-rule",60167),hubot:J("hubot",60168),inbox:J("inbox",60169),issueClosed:J("issue-closed",60324),issueReopened:J("issue-reopened",60171),issues:J("issues",60172),italic:J("italic",60173),jersey:J("jersey",60174),json:J("json",60175),bracket:J("bracket",60175),kebabVertical:J("kebab-vertical",60176),key:J("key",60177),law:J("law",60178),lightbulbAutofix:J("lightbulb-autofix",60179),linkExternal:J("link-external",60180),link:J("link",60181),listOrdered:J("list-ordered",60182),listUnordered:J("list-unordered",60183),liveShare:J("live-share",60184),loading:J("loading",60185),location:J("location",60186),mailRead:J("mail-read",60187),mail:J("mail",60188),markdown:J("markdown",60189),megaphone:J("megaphone",60190),mention:J("mention",60191),milestone:J("milestone",60192),gitPullRequestMilestone:J("git-pull-request-milestone",60192),mortarBoard:J("mortar-board",60193),move:J("move",60194),multipleWindows:J("multiple-windows",60195),mute:J("mute",60196),noNewline:J("no-newline",60197),note:J("note",60198),octoface:J("octoface",60199),openPreview:J("open-preview",60200),package:J("package",60201),paintcan:J("paintcan",60202),pin:J("pin",60203),play:J("play",60204),run:J("run",60204),plug:J("plug",60205),preserveCase:J("preserve-case",60206),preview:J("preview",60207),project:J("project",60208),pulse:J("pulse",60209),question:J("question",60210),quote:J("quote",60211),radioTower:J("radio-tower",60212),reactions:J("reactions",60213),references:J("references",60214),refresh:J("refresh",60215),regex:J("regex",60216),remoteExplorer:J("remote-explorer",60217),remote:J("remote",60218),remove:J("remove",60219),replaceAll:J("replace-all",60220),replace:J("replace",60221),repoClone:J("repo-clone",60222),repoForcePush:J("repo-force-push",60223),repoPull:J("repo-pull",60224),repoPush:J("repo-push",60225),report:J("report",60226),requestChanges:J("request-changes",60227),rocket:J("rocket",60228),rootFolderOpened:J("root-folder-opened",60229),rootFolder:J("root-folder",60230),rss:J("rss",60231),ruby:J("ruby",60232),saveAll:J("save-all",60233),saveAs:J("save-as",60234),save:J("save",60235),screenFull:J("screen-full",60236),screenNormal:J("screen-normal",60237),searchStop:J("search-stop",60238),server:J("server",60240),settingsGear:J("settings-gear",60241),settings:J("settings",60242),shield:J("shield",60243),smiley:J("smiley",60244),sortPrecedence:J("sort-precedence",60245),splitHorizontal:J("split-horizontal",60246),splitVertical:J("split-vertical",60247),squirrel:J("squirrel",60248),starFull:J("star-full",60249),starHalf:J("star-half",60250),symbolClass:J("symbol-class",60251),symbolColor:J("symbol-color",60252),symbolCustomColor:J("symbol-customcolor",60252),symbolConstant:J("symbol-constant",60253),symbolEnumMember:J("symbol-enum-member",60254),symbolField:J("symbol-field",60255),symbolFile:J("symbol-file",60256),symbolInterface:J("symbol-interface",60257),symbolKeyword:J("symbol-keyword",60258),symbolMisc:J("symbol-misc",60259),symbolOperator:J("symbol-operator",60260),symbolProperty:J("symbol-property",60261),wrench:J("wrench",60261),wrenchSubaction:J("wrench-subaction",60261),symbolSnippet:J("symbol-snippet",60262),tasklist:J("tasklist",60263),telescope:J("telescope",60264),textSize:J("text-size",60265),threeBars:J("three-bars",60266),thumbsdown:J("thumbsdown",60267),thumbsup:J("thumbsup",60268),tools:J("tools",60269),triangleDown:J("triangle-down",60270),triangleLeft:J("triangle-left",60271),triangleRight:J("triangle-right",60272),triangleUp:J("triangle-up",60273),twitter:J("twitter",60274),unfold:J("unfold",60275),unlock:J("unlock",60276),unmute:J("unmute",60277),unverified:J("unverified",60278),verified:J("verified",60279),versions:J("versions",60280),vmActive:J("vm-active",60281),vmOutline:J("vm-outline",60282),vmRunning:J("vm-running",60283),watch:J("watch",60284),whitespace:J("whitespace",60285),wholeWord:J("whole-word",60286),window:J("window",60287),wordWrap:J("word-wrap",60288),zoomIn:J("zoom-in",60289),zoomOut:J("zoom-out",60290),listFilter:J("list-filter",60291),listFlat:J("list-flat",60292),listSelection:J("list-selection",60293),selection:J("selection",60293),listTree:J("list-tree",60294),debugBreakpointFunctionUnverified:J("debug-breakpoint-function-unverified",60295),debugBreakpointFunction:J("debug-breakpoint-function",60296),debugBreakpointFunctionDisabled:J("debug-breakpoint-function-disabled",60296),debugStackframeActive:J("debug-stackframe-active",60297),circleSmallFilled:J("circle-small-filled",60298),debugStackframeDot:J("debug-stackframe-dot",60298),debugStackframe:J("debug-stackframe",60299),debugStackframeFocused:J("debug-stackframe-focused",60299),debugBreakpointUnsupported:J("debug-breakpoint-unsupported",60300),symbolString:J("symbol-string",60301),debugReverseContinue:J("debug-reverse-continue",60302),debugStepBack:J("debug-step-back",60303),debugRestartFrame:J("debug-restart-frame",60304),callIncoming:J("call-incoming",60306),callOutgoing:J("call-outgoing",60307),menu:J("menu",60308),expandAll:J("expand-all",60309),feedback:J("feedback",60310),gitPullRequestReviewer:J("git-pull-request-reviewer",60310),groupByRefType:J("group-by-ref-type",60311),ungroupByRefType:J("ungroup-by-ref-type",60312),account:J("account",60313),gitPullRequestAssignee:J("git-pull-request-assignee",60313),bellDot:J("bell-dot",60314),debugConsole:J("debug-console",60315),library:J("library",60316),output:J("output",60317),runAll:J("run-all",60318),syncIgnored:J("sync-ignored",60319),pinned:J("pinned",60320),githubInverted:J("github-inverted",60321),debugAlt:J("debug-alt",60305),serverProcess:J("server-process",60322),serverEnvironment:J("server-environment",60323),pass:J("pass",60324),stopCircle:J("stop-circle",60325),playCircle:J("play-circle",60326),record:J("record",60327),debugAltSmall:J("debug-alt-small",60328),vmConnect:J("vm-connect",60329),cloud:J("cloud",60330),merge:J("merge",60331),exportIcon:J("export",60332),graphLeft:J("graph-left",60333),magnet:J("magnet",60334),notebook:J("notebook",60335),redo:J("redo",60336),checkAll:J("check-all",60337),pinnedDirty:J("pinned-dirty",60338),passFilled:J("pass-filled",60339),circleLargeFilled:J("circle-large-filled",60340),circleLarge:J("circle-large",60341),circleLargeOutline:J("circle-large-outline",60341),combine:J("combine",60342),gather:J("gather",60342),table:J("table",60343),variableGroup:J("variable-group",60344),typeHierarchy:J("type-hierarchy",60345),typeHierarchySub:J("type-hierarchy-sub",60346),typeHierarchySuper:J("type-hierarchy-super",60347),gitPullRequestCreate:J("git-pull-request-create",60348),runAbove:J("run-above",60349),runBelow:J("run-below",60350),notebookTemplate:J("notebook-template",60351),debugRerun:J("debug-rerun",60352),workspaceTrusted:J("workspace-trusted",60353),workspaceUntrusted:J("workspace-untrusted",60354),workspaceUnspecified:J("workspace-unspecified",60355),terminalCmd:J("terminal-cmd",60356),terminalDebian:J("terminal-debian",60357),terminalLinux:J("terminal-linux",60358),terminalPowershell:J("terminal-powershell",60359),terminalTmux:J("terminal-tmux",60360),terminalUbuntu:J("terminal-ubuntu",60361),terminalBash:J("terminal-bash",60362),arrowSwap:J("arrow-swap",60363),copy:J("copy",60364),personAdd:J("person-add",60365),filterFilled:J("filter-filled",60366),wand:J("wand",60367),debugLineByLine:J("debug-line-by-line",60368),inspect:J("inspect",60369),layers:J("layers",60370),layersDot:J("layers-dot",60371),layersActive:J("layers-active",60372),compass:J("compass",60373),compassDot:J("compass-dot",60374),compassActive:J("compass-active",60375),azure:J("azure",60376),issueDraft:J("issue-draft",60377),gitPullRequestClosed:J("git-pull-request-closed",60378),gitPullRequestDraft:J("git-pull-request-draft",60379),debugAll:J("debug-all",60380),debugCoverage:J("debug-coverage",60381),runErrors:J("run-errors",60382),folderLibrary:J("folder-library",60383),debugContinueSmall:J("debug-continue-small",60384),beakerStop:J("beaker-stop",60385),graphLine:J("graph-line",60386),graphScatter:J("graph-scatter",60387),pieChart:J("pie-chart",60388),bracketDot:J("bracket-dot",60389),bracketError:J("bracket-error",60390),lockSmall:J("lock-small",60391),azureDevops:J("azure-devops",60392),verifiedFilled:J("verified-filled",60393),newLine:J("newline",60394),layout:J("layout",60395),layoutActivitybarLeft:J("layout-activitybar-left",60396),layoutActivitybarRight:J("layout-activitybar-right",60397),layoutPanelLeft:J("layout-panel-left",60398),layoutPanelCenter:J("layout-panel-center",60399),layoutPanelJustify:J("layout-panel-justify",60400),layoutPanelRight:J("layout-panel-right",60401),layoutPanel:J("layout-panel",60402),layoutSidebarLeft:J("layout-sidebar-left",60403),layoutSidebarRight:J("layout-sidebar-right",60404),layoutStatusbar:J("layout-statusbar",60405),layoutMenubar:J("layout-menubar",60406),layoutCentered:J("layout-centered",60407),layoutSidebarRightOff:J("layout-sidebar-right-off",60416),layoutPanelOff:J("layout-panel-off",60417),layoutSidebarLeftOff:J("layout-sidebar-left-off",60418),target:J("target",60408),indent:J("indent",60409),recordSmall:J("record-small",60410),errorSmall:J("error-small",60411),arrowCircleDown:J("arrow-circle-down",60412),arrowCircleLeft:J("arrow-circle-left",60413),arrowCircleRight:J("arrow-circle-right",60414),arrowCircleUp:J("arrow-circle-up",60415),heartFilled:J("heart-filled",60420),map:J("map",60421),mapFilled:J("map-filled",60422),circleSmall:J("circle-small",60423),bellSlash:J("bell-slash",60424),bellSlashDot:J("bell-slash-dot",60425),commentUnresolved:J("comment-unresolved",60426),gitPullRequestGoToChanges:J("git-pull-request-go-to-changes",60427),gitPullRequestNewChanges:J("git-pull-request-new-changes",60428),searchFuzzy:J("search-fuzzy",60429),commentDraft:J("comment-draft",60430),send:J("send",60431),sparkle:J("sparkle",60432),insert:J("insert",60433),mic:J("mic",60434),thumbsDownFilled:J("thumbsdown-filled",60435),thumbsUpFilled:J("thumbsup-filled",60436),coffee:J("coffee",60437),snake:J("snake",60438),game:J("game",60439),vr:J("vr",60440),chip:J("chip",60441),piano:J("piano",60442),music:J("music",60443),micFilled:J("mic-filled",60444),gitFetch:J("git-fetch",60445),copilot:J("copilot",60446),lightbulbSparkle:J("lightbulb-sparkle",60447),lightbulbSparkleAutofix:J("lightbulb-sparkle-autofix",60447),robot:J("robot",60448),sparkleFilled:J("sparkle-filled",60449),diffSingle:J("diff-single",60450),diffMultiple:J("diff-multiple",60451),surroundWith:J("surround-with",60452),gitStash:J("git-stash",60454),gitStashApply:J("git-stash-apply",60455),gitStashPop:J("git-stash-pop",60456),runAllCoverage:J("run-all-coverage",60461),runCoverage:J("run-all-coverage",60460),coverage:J("coverage",60462),githubProject:J("github-project",60463),dialogError:J("dialog-error","error"),dialogWarning:J("dialog-warning","warning"),dialogInfo:J("dialog-info","info"),dialogClose:J("dialog-close","close"),treeItemExpanded:J("tree-item-expanded","chevron-down"),treeFilterOnTypeOn:J("tree-filter-on-type-on","list-filter"),treeFilterOnTypeOff:J("tree-filter-on-type-off","list-selection"),treeFilterClear:J("tree-filter-clear","close"),treeItemLoading:J("tree-item-loading","loading"),menuSelection:J("menu-selection","check"),menuSubmenu:J("menu-submenu","chevron-right"),menuBarMore:J("menubar-more","more"),scrollbarButtonLeft:J("scrollbar-button-left","triangle-left"),scrollbarButtonRight:J("scrollbar-button-right","triangle-right"),scrollbarButtonUp:J("scrollbar-button-up","triangle-up"),scrollbarButtonDown:J("scrollbar-button-down","triangle-down"),toolBarMore:J("toolbar-more","more"),quickInputBack:J("quick-input-back","arrow-left")};var QY;(function(n){function e(t){return t&&typeof t=="object"&&typeof t.id=="string"}n.isThemeColor=e})(QY||(QY={}));var on;(function(n){n.iconNameSegment="[A-Za-z0-9]+",n.iconNameExpression="[A-Za-z0-9-]+",n.iconModifierExpression="~[A-Za-z]+",n.iconNameCharacter="[A-Za-z0-9~-]";const e=new RegExp(`^(${n.iconNameExpression})(${n.iconModifierExpression})?$`);function t(h){const g=e.exec(h.id);if(!g)return t(ct.error);const[,m,f]=g,b=["codicon","codicon-"+m];return f&&b.push("codicon-modifier-"+f.substring(1)),b}n.asClassNameArray=t;function i(h){return t(h).join(" ")}n.asClassName=i;function r(h){return"."+t(h).join(".")}n.asCSSSelector=r;function o(h){return h&&typeof h=="object"&&typeof h.id=="string"&&(typeof h.color>"u"||QY.isThemeColor(h.color))}n.isThemeIcon=o;const s=new RegExp(`^\\$\\((${n.iconNameExpression}(?:${n.iconModifierExpression})?)\\)$`);function a(h){const g=s.exec(h);if(!g)return;const[,m]=g;return{id:m}}n.fromString=a;function l(h){return{id:h}}n.fromId=l;function u(h,g){let m=h.id;const f=m.lastIndexOf("~");return f!==-1&&(m=m.substring(0,f)),g&&(m=`${m}~${g}`),{id:m}}n.modify=u;function c(h){const g=h.id.lastIndexOf("~");if(g!==-1)return h.id.substring(g+1)}n.getModifier=c;function d(h,g){var m,f;return h.id===g.id&&((m=h.color)===null||m===void 0?void 0:m.id)===((f=g.color)===null||f===void 0?void 0:f.id)}n.isEqual=d})(on||(on={}));const Vr=Un("commandService"),ei=new class{constructor(){this._commands=new Map,this._onDidRegisterCommand=new be,this.onDidRegisterCommand=this._onDidRegisterCommand.event}registerCommand(n,e){if(!n)throw new Error("invalid command");if(typeof n=="string"){if(!e)throw new Error("invalid command");return this.registerCommand({id:n,handler:e})}if(n.metadata&&Array.isArray(n.metadata.args)){const s=[];for(const l of n.metadata.args)s.push(l.constraint);const a=n.handler;n.handler=function(l,...u){return Mdt(u,s),a(l,...u)}}const{id:t}=n;let i=this._commands.get(t);i||(i=new Ua,this._commands.set(t,i));const r=i.unshift(n),o=en(()=>{r();const s=this._commands.get(t);s!=null&&s.isEmpty()&&this._commands.delete(t)});return this._onDidRegisterCommand.fire(t),o}registerCommandAlias(n,e){return ei.registerCommand(n,(t,...i)=>t.get(Vr).executeCommand(e,...i))}getCommand(n){const e=this._commands.get(n);if(!(!e||e.isEmpty()))return qn.first(e)}getCommands(){const n=new Map;for(const e of this._commands.keys()){const t=this.getCommand(e);t&&n.set(e,t)}return n}};ei.registerCommand("noop",()=>{});function $Y(...n){switch(n.length){case 1:return x("contextkey.scanner.hint.didYouMean1","Did you mean {0}?",n[0]);case 2:return x("contextkey.scanner.hint.didYouMean2","Did you mean {0} or {1}?",n[0],n[1]);case 3:return x("contextkey.scanner.hint.didYouMean3","Did you mean {0}, {1} or {2}?",n[0],n[1],n[2]);default:return}}const tmt=x("contextkey.scanner.hint.didYouForgetToOpenOrCloseQuote","Did you forget to open or close the quote?"),nmt=x("contextkey.scanner.hint.didYouForgetToEscapeSlash","Did you forget to escape the '/' (slash) character? Put two backslashes before it to escape, e.g., '\\\\/'.");let NC=class ree{constructor(){this._input="",this._start=0,this._current=0,this._tokens=[],this._errors=[],this.stringRe=/[a-zA-Z0-9_<>\-\./\\:\*\?\+\[\]\^,#@;"%\$\p{L}-]+/uy}static getLexeme(e){switch(e.type){case 0:return"(";case 1:return")";case 2:return"!";case 3:return e.isTripleEq?"===":"==";case 4:return e.isTripleEq?"!==":"!=";case 5:return"<";case 6:return"<=";case 7:return">=";case 8:return">=";case 9:return"=~";case 10:return e.lexeme;case 11:return"true";case 12:return"false";case 13:return"in";case 14:return"not";case 15:return"&&";case 16:return"||";case 17:return e.lexeme;case 18:return e.lexeme;case 19:return e.lexeme;case 20:return"EOF";default:throw eY(`unhandled token type: ${JSON.stringify(e)}; have you forgotten to add a case?`)}}reset(e){return this._input=e,this._start=0,this._current=0,this._tokens=[],this._errors=[],this}scan(){for(;!this._isAtEnd();)switch(this._start=this._current,this._advance()){case 40:this._addToken(0);break;case 41:this._addToken(1);break;case 33:if(this._match(61)){const t=this._match(61);this._tokens.push({type:4,offset:this._start,isTripleEq:t})}else this._addToken(2);break;case 39:this._quotedString();break;case 47:this._regex();break;case 61:if(this._match(61)){const t=this._match(61);this._tokens.push({type:3,offset:this._start,isTripleEq:t})}else this._match(126)?this._addToken(9):this._error($Y("==","=~"));break;case 60:this._addToken(this._match(61)?6:5);break;case 62:this._addToken(this._match(61)?8:7);break;case 38:this._match(38)?this._addToken(15):this._error($Y("&&"));break;case 124:this._match(124)?this._addToken(16):this._error($Y("||"));break;case 32:case 13:case 9:case 10:case 160:break;default:this._string()}return this._start=this._current,this._addToken(20),Array.from(this._tokens)}_match(e){return this._isAtEnd()||this._input.charCodeAt(this._current)!==e?!1:(this._current++,!0)}_advance(){return this._input.charCodeAt(this._current++)}_peek(){return this._isAtEnd()?0:this._input.charCodeAt(this._current)}_addToken(e){this._tokens.push({type:e,offset:this._start})}_error(e){const t=this._start,i=this._input.substring(this._start,this._current),r={type:19,offset:this._start,lexeme:i};this._errors.push({offset:t,lexeme:i,additionalInfo:e}),this._tokens.push(r)}_string(){this.stringRe.lastIndex=this._start;const e=this.stringRe.exec(this._input);if(e){this._current=this._start+e[0].length;const t=this._input.substring(this._start,this._current),i=ree._keywords.get(t);i?this._addToken(i):this._tokens.push({type:17,lexeme:t,offset:this._start})}}_quotedString(){for(;this._peek()!==39&&!this._isAtEnd();)this._advance();if(this._isAtEnd()){this._error(tmt);return}this._advance(),this._tokens.push({type:18,lexeme:this._input.substring(this._start+1,this._current-1),offset:this._start+1})}_regex(){let e=this._current,t=!1,i=!1;for(;;){if(e>=this._input.length){this._current=e,this._error(nmt);return}const o=this._input.charCodeAt(e);if(t)t=!1;else if(o===47&&!i){e++;break}else o===91?i=!0:o===92?t=!0:o===93&&(i=!1);e++}for(;e=this._input.length}};NC._regexFlags=new Set(["i","g","s","m","y","u"].map(n=>n.charCodeAt(0))),NC._keywords=new Map([["not",14],["in",13],["false",12],["true",11]]);const ca=new Map;ca.set("false",!1),ca.set("true",!0),ca.set("isMac",$n),ca.set("isLinux",Ha),ca.set("isWindows",ya),ca.set("isWeb",pb),ca.set("isMacNative",$n&&!pb),ca.set("isEdge",Pdt),ca.set("isFirefox",Vdt),ca.set("isChrome",Hpe),ca.set("isSafari",Xdt);const imt=Object.prototype.hasOwnProperty,rmt={regexParsingWithErrorRecovery:!0},omt=x("contextkey.parser.error.emptyString","Empty context key expression"),smt=x("contextkey.parser.error.emptyString.hint","Did you forget to write an expression? You can also put 'false' or 'true' to always evaluate to false or true, respectively."),amt=x("contextkey.parser.error.noInAfterNot","'in' after 'not'."),o0e=x("contextkey.parser.error.closingParenthesis","closing parenthesis ')'"),lmt=x("contextkey.parser.error.unexpectedToken","Unexpected token"),umt=x("contextkey.parser.error.unexpectedToken.hint","Did you forget to put && or || before the token?"),cmt=x("contextkey.parser.error.unexpectedEOF","Unexpected end of expression"),dmt=x("contextkey.parser.error.unexpectedEOF.hint","Did you forget to put a context key?");let s0e=class rk{constructor(e=rmt){this._config=e,this._scanner=new NC,this._tokens=[],this._current=0,this._parsingErrors=[],this._flagsGYRe=/g|y/g}parse(e){if(e===""){this._parsingErrors.push({message:omt,offset:0,lexeme:"",additionalInfo:smt});return}this._tokens=this._scanner.reset(e).scan(),this._current=0,this._parsingErrors=[];try{const t=this._expr();if(!this._isAtEnd()){const i=this._peek(),r=i.type===17?umt:void 0;throw this._parsingErrors.push({message:lmt,offset:i.offset,lexeme:NC.getLexeme(i),additionalInfo:r}),rk._parseError}return t}catch(t){if(t!==rk._parseError)throw t;return}}_expr(){return this._or()}_or(){const e=[this._and()];for(;this._matchOne(16);){const t=this._and();e.push(t)}return e.length===1?e[0]:Be.or(...e)}_and(){const e=[this._term()];for(;this._matchOne(15);){const t=this._term();e.push(t)}return e.length===1?e[0]:Be.and(...e)}_term(){if(this._matchOne(2)){const e=this._peek();switch(e.type){case 11:return this._advance(),ja.INSTANCE;case 12:return this._advance(),_l.INSTANCE;case 0:{this._advance();const t=this._expr();return this._consume(1,o0e),t==null?void 0:t.negate()}case 17:return this._advance(),MC.create(e.lexeme);default:throw this._errExpectedButGot("KEY | true | false | '(' expression ')'",e)}}return this._primary()}_primary(){const e=this._peek();switch(e.type){case 11:return this._advance(),Be.true();case 12:return this._advance(),Be.false();case 0:{this._advance();const t=this._expr();return this._consume(1,o0e),t}case 17:{const t=e.lexeme;if(this._advance(),this._matchOne(9)){const r=this._peek();if(!this._config.regexParsingWithErrorRecovery){if(this._advance(),r.type!==10)throw this._errExpectedButGot("REGEX",r);const o=r.lexeme,s=o.lastIndexOf("/"),a=s===o.length-1?void 0:this._removeFlagsGY(o.substring(s+1));let l;try{l=new RegExp(o.substring(1,s),a)}catch{throw this._errExpectedButGot("REGEX",r)}return GF.create(t,l)}switch(r.type){case 10:case 19:{const o=[r.lexeme];this._advance();let s=this._peek(),a=0;for(let h=0;h=0){const u=o.slice(a+1,l),c=o[l+1]==="i"?"i":"";try{s=new RegExp(u,c)}catch{throw this._errExpectedButGot("REGEX",r)}}}if(s===null)throw this._errExpectedButGot("REGEX",r);return GF.create(t,s)}default:throw this._errExpectedButGot("REGEX",this._peek())}}if(this._matchOne(14)){this._consume(13,amt);const r=this._value();return Be.notIn(t,r)}switch(this._peek().type){case 3:{this._advance();const r=this._value();if(this._previous().type===18)return Be.equals(t,r);switch(r){case"true":return Be.has(t);case"false":return Be.not(t);default:return Be.equals(t,r)}}case 4:{this._advance();const r=this._value();if(this._previous().type===18)return Be.notEquals(t,r);switch(r){case"true":return Be.not(t);case"false":return Be.has(t);default:return Be.notEquals(t,r)}}case 5:return this._advance(),X5.create(t,this._value());case 6:return this._advance(),P5.create(t,this._value());case 7:return this._advance(),G5.create(t,this._value());case 8:return this._advance(),V5.create(t,this._value());case 13:return this._advance(),Be.in(t,this._value());default:return Be.has(t)}}case 20:throw this._parsingErrors.push({message:cmt,offset:e.offset,lexeme:"",additionalInfo:dmt}),rk._parseError;default:throw this._errExpectedButGot(`true | false | KEY + | KEY '=~' REGEX + | KEY ('==' | '!=' | '<' | '<=' | '>' | '>=' | 'in' | 'not' 'in') value`,this._peek())}}_value(){const e=this._peek();switch(e.type){case 17:case 18:return this._advance(),e.lexeme;case 11:return this._advance(),"true";case 12:return this._advance(),"false";case 13:return this._advance(),"in";default:return""}}_removeFlagsGY(e){return e.replaceAll(this._flagsGYRe,"")}_previous(){return this._tokens[this._current-1]}_matchOne(e){return this._check(e)?(this._advance(),!0):!1}_advance(){return this._isAtEnd()||this._current++,this._previous()}_consume(e,t){if(this._check(e))return this._advance();throw this._errExpectedButGot(t,this._peek())}_errExpectedButGot(e,t,i){const r=x("contextkey.parser.error.expectedButGot",`Expected: {0} +Received: '{1}'.`,e,NC.getLexeme(t)),o=t.offset,s=NC.getLexeme(t);return this._parsingErrors.push({message:r,offset:o,lexeme:s,additionalInfo:i}),rk._parseError}_check(e){return this._peek().type===e}_peek(){return this._tokens[this._current]}_isAtEnd(){return this._peek().type===20}};s0e._parseError=new Error;class Be{static false(){return ja.INSTANCE}static true(){return _l.INSTANCE}static has(e){return kC.create(e)}static equals(e,t){return t2.create(e,t)}static notEquals(e,t){return W5.create(e,t)}static regex(e,t){return GF.create(e,t)}static in(e,t){return T5.create(e,t)}static notIn(e,t){return E5.create(e,t)}static not(e){return MC.create(e)}static and(...e){return ZC.create(e,null,!0)}static or(...e){return If.create(e,null,!0)}static deserialize(e){return e==null?void 0:this._parser.parse(e)}}Be._parser=new s0e({regexParsingWithErrorRecovery:!1});function hmt(n,e){const t=n?n.substituteConstants():void 0,i=e?e.substituteConstants():void 0;return!t&&!i?!0:!t||!i?!1:t.equals(i)}function RF(n,e){return n.cmp(e)}class ja{constructor(){this.type=0}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!1}serialize(){return"false"}keys(){return[]}negate(){return _l.INSTANCE}}ja.INSTANCE=new ja;class _l{constructor(){this.type=1}cmp(e){return this.type-e.type}equals(e){return e.type===this.type}substituteConstants(){return this}evaluate(e){return!0}serialize(){return"true"}keys(){return[]}negate(){return ja.INSTANCE}}_l.INSTANCE=new _l;class kC{static create(e,t=null){const i=ca.get(e);return typeof i=="boolean"?i?_l.INSTANCE:ja.INSTANCE:new kC(e,t)}constructor(e,t){this.key=e,this.negated=t,this.type=2}cmp(e){return e.type!==this.type?this.type-e.type:l0e(this.key,e.key)}equals(e){return e.type===this.type?this.key===e.key:!1}substituteConstants(){const e=ca.get(this.key);return typeof e=="boolean"?e?_l.INSTANCE:ja.INSTANCE:this}evaluate(e){return!!e.getValue(this.key)}serialize(){return this.key}keys(){return[this.key]}negate(){return this.negated||(this.negated=MC.create(this.key,this)),this.negated}}class t2{static create(e,t,i=null){if(typeof t=="boolean")return t?kC.create(e,i):MC.create(e,i);const r=ca.get(e);return typeof r=="boolean"?t===(r?"true":"false")?_l.INSTANCE:ja.INSTANCE:new t2(e,t,i)}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=4}cmp(e){return e.type!==this.type?this.type-e.type:TC(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){const e=ca.get(this.key);if(typeof e=="boolean"){const t=e?"true":"false";return this.value===t?_l.INSTANCE:ja.INSTANCE}return this}evaluate(e){return e.getValue(this.key)==this.value}serialize(){return`${this.key} == '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=W5.create(this.key,this.value,this)),this.negated}}class T5{static create(e,t){return new T5(e,t)}constructor(e,t){this.key=e,this.valueKey=t,this.type=10,this.negated=null}cmp(e){return e.type!==this.type?this.type-e.type:TC(this.key,this.valueKey,e.key,e.valueKey)}equals(e){return e.type===this.type?this.key===e.key&&this.valueKey===e.valueKey:!1}substituteConstants(){return this}evaluate(e){const t=e.getValue(this.valueKey),i=e.getValue(this.key);return Array.isArray(t)?t.includes(i):typeof i=="string"&&typeof t=="object"&&t!==null?imt.call(t,i):!1}serialize(){return`${this.key} in '${this.valueKey}'`}keys(){return[this.key,this.valueKey]}negate(){return this.negated||(this.negated=E5.create(this.key,this.valueKey)),this.negated}}class E5{static create(e,t){return new E5(e,t)}constructor(e,t){this.key=e,this.valueKey=t,this.type=11,this._negated=T5.create(e,t)}cmp(e){return e.type!==this.type?this.type-e.type:this._negated.cmp(e._negated)}equals(e){return e.type===this.type?this._negated.equals(e._negated):!1}substituteConstants(){return this}evaluate(e){return!this._negated.evaluate(e)}serialize(){return`${this.key} not in '${this.valueKey}'`}keys(){return this._negated.keys()}negate(){return this._negated}}class W5{static create(e,t,i=null){if(typeof t=="boolean")return t?MC.create(e,i):kC.create(e,i);const r=ca.get(e);return typeof r=="boolean"?t===(r?"true":"false")?ja.INSTANCE:_l.INSTANCE:new W5(e,t,i)}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=5}cmp(e){return e.type!==this.type?this.type-e.type:TC(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){const e=ca.get(this.key);if(typeof e=="boolean"){const t=e?"true":"false";return this.value===t?ja.INSTANCE:_l.INSTANCE}return this}evaluate(e){return e.getValue(this.key)!=this.value}serialize(){return`${this.key} != '${this.value}'`}keys(){return[this.key]}negate(){return this.negated||(this.negated=t2.create(this.key,this.value,this)),this.negated}}class MC{static create(e,t=null){const i=ca.get(e);return typeof i=="boolean"?i?ja.INSTANCE:_l.INSTANCE:new MC(e,t)}constructor(e,t){this.key=e,this.negated=t,this.type=3}cmp(e){return e.type!==this.type?this.type-e.type:l0e(this.key,e.key)}equals(e){return e.type===this.type?this.key===e.key:!1}substituteConstants(){const e=ca.get(this.key);return typeof e=="boolean"?e?ja.INSTANCE:_l.INSTANCE:this}evaluate(e){return!e.getValue(this.key)}serialize(){return`!${this.key}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=kC.create(this.key,this)),this.negated}}function R5(n,e){if(typeof n=="string"){const t=parseFloat(n);isNaN(t)||(n=t)}return typeof n=="string"||typeof n=="number"?e(n):ja.INSTANCE}class G5{static create(e,t,i=null){return R5(t,r=>new G5(e,r,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=12}cmp(e){return e.type!==this.type?this.type-e.type:TC(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))>this.value}serialize(){return`${this.key} > ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=P5.create(this.key,this.value,this)),this.negated}}class V5{static create(e,t,i=null){return R5(t,r=>new V5(e,r,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=13}cmp(e){return e.type!==this.type?this.type-e.type:TC(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))>=this.value}serialize(){return`${this.key} >= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=X5.create(this.key,this.value,this)),this.negated}}class X5{static create(e,t,i=null){return R5(t,r=>new X5(e,r,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=14}cmp(e){return e.type!==this.type?this.type-e.type:TC(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))new P5(e,r,i))}constructor(e,t,i){this.key=e,this.value=t,this.negated=i,this.type=15}cmp(e){return e.type!==this.type?this.type-e.type:TC(this.key,this.value,e.key,e.value)}equals(e){return e.type===this.type?this.key===e.key&&this.value===e.value:!1}substituteConstants(){return this}evaluate(e){return typeof this.value=="string"?!1:parseFloat(e.getValue(this.key))<=this.value}serialize(){return`${this.key} <= ${this.value}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=G5.create(this.key,this.value,this)),this.negated}}class GF{static create(e,t){return new GF(e,t)}constructor(e,t){this.key=e,this.regexp=t,this.type=7,this.negated=null}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.keye.key)return 1;const t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return ti?1:0}equals(e){if(e.type===this.type){const t=this.regexp?this.regexp.source:"",i=e.regexp?e.regexp.source:"";return this.key===e.key&&t===i}return!1}substituteConstants(){return this}evaluate(e){const t=e.getValue(this.key);return this.regexp?this.regexp.test(t):!1}serialize(){const e=this.regexp?`/${this.regexp.source}/${this.regexp.flags}`:"/invalid/";return`${this.key} =~ ${e}`}keys(){return[this.key]}negate(){return this.negated||(this.negated=qY.create(this)),this.negated}}class qY{static create(e){return new qY(e)}constructor(e){this._actual=e,this.type=8}cmp(e){return e.type!==this.type?this.type-e.type:this._actual.cmp(e._actual)}equals(e){return e.type===this.type?this._actual.equals(e._actual):!1}substituteConstants(){return this}evaluate(e){return!this._actual.evaluate(e)}serialize(){return`!(${this._actual.serialize()})`}keys(){return this._actual.keys()}negate(){return this._actual}}function a0e(n){let e=null;for(let t=0,i=n.length;te.expr.length)return 1;for(let t=0,i=this.expr.length;t1;){const s=r[r.length-1];if(s.type!==9)break;r.pop();const a=r.pop(),l=r.length===0,u=If.create(s.expr.map(c=>ZC.create([c,a],null,i)),null,l);u&&(r.push(u),r.sort(RF))}if(r.length===1)return r[0];if(i){for(let s=0;se.serialize()).join(" && ")}keys(){const e=[];for(const t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){const e=[];for(const t of this.expr)e.push(t.negate());this.negated=If.create(e,this,!0)}return this.negated}}class If{static create(e,t,i){return If._normalizeArr(e,t,i)}constructor(e,t){this.expr=e,this.negated=t,this.type=9}cmp(e){if(e.type!==this.type)return this.type-e.type;if(this.expr.lengthe.expr.length)return 1;for(let t=0,i=this.expr.length;te.serialize()).join(" || ")}keys(){const e=[];for(const t of this.expr)e.push(...t.keys());return e}negate(){if(!this.negated){const e=[];for(const t of this.expr)e.push(t.negate());for(;e.length>1;){const t=e.shift(),i=e.shift(),r=[];for(const o of c0e(t))for(const s of c0e(i))r.push(ZC.create([o,s],null,!1));e.unshift(If.create(r,null,!1))}this.negated=If.create(e,this,!0)}return this.negated}}class It extends kC{static all(){return It._info.values()}constructor(e,t,i){super(e,null),this._defaultValue=t,typeof i=="object"?It._info.push({...i,key:e}):i!==!0&&It._info.push({key:e,description:i,type:t!=null?typeof t:void 0})}bindTo(e){return e.createKey(this.key,this._defaultValue)}getValue(e){return e.getContextKeyValue(this.key)}toNegated(){return this.negate()}isEqualTo(e){return t2.create(this.key,e)}}It._info=[];const ln=Un("contextKeyService");function l0e(n,e){return ne?1:0}function TC(n,e,t,i){return nt?1:ei?1:0}function eH(n,e){if(n.type===0||e.type===1)return!0;if(n.type===9)return e.type===9?u0e(n.expr,e.expr):!1;if(e.type===9){for(const t of e.expr)if(eH(n,t))return!0;return!1}if(n.type===6){if(e.type===6)return u0e(e.expr,n.expr);for(const t of n.expr)if(eH(t,e))return!0;return!1}return n.equals(e)}function u0e(n,e){let t=0,i=0;for(;t{a(),this._cachedMergedKeybindings=null})}getDefaultKeybindings(){return this._cachedMergedKeybindings||(this._cachedMergedKeybindings=Array.from(this._coreKeybindings).concat(this._extensionKeybindings),this._cachedMergedKeybindings.sort(fmt)),this._cachedMergedKeybindings.slice(0)}}const Dl=new nH,mmt={EditorModes:"platform.keybindingsRegistry"};xo.add(mmt.EditorModes,Dl);function fmt(n,e){if(n.weight1!==e.weight1)return n.weight1-e.weight1;if(n.command&&e.command){if(n.commande.command)return 1}return n.weight2-e.weight2}var pmt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},g0e=function(n,e){return function(t,i){e(t,i,n)}},B5;function i2(n){return n.command!==void 0}function bmt(n){return n.submenu!==void 0}class ${constructor(e){if($._instances.has(e))throw new TypeError(`MenuId with identifier '${e}' already exists. Use MenuId.for(ident) or a unique identifier`);$._instances.set(e,this),this.id=e}}$._instances=new Map,$.CommandPalette=new $("CommandPalette"),$.DebugBreakpointsContext=new $("DebugBreakpointsContext"),$.DebugCallStackContext=new $("DebugCallStackContext"),$.DebugConsoleContext=new $("DebugConsoleContext"),$.DebugVariablesContext=new $("DebugVariablesContext"),$.NotebookVariablesContext=new $("NotebookVariablesContext"),$.DebugHoverContext=new $("DebugHoverContext"),$.DebugWatchContext=new $("DebugWatchContext"),$.DebugToolBar=new $("DebugToolBar"),$.DebugToolBarStop=new $("DebugToolBarStop"),$.EditorContext=new $("EditorContext"),$.SimpleEditorContext=new $("SimpleEditorContext"),$.EditorContent=new $("EditorContent"),$.EditorLineNumberContext=new $("EditorLineNumberContext"),$.EditorContextCopy=new $("EditorContextCopy"),$.EditorContextPeek=new $("EditorContextPeek"),$.EditorContextShare=new $("EditorContextShare"),$.EditorTitle=new $("EditorTitle"),$.EditorTitleRun=new $("EditorTitleRun"),$.EditorTitleContext=new $("EditorTitleContext"),$.EditorTitleContextShare=new $("EditorTitleContextShare"),$.EmptyEditorGroup=new $("EmptyEditorGroup"),$.EmptyEditorGroupContext=new $("EmptyEditorGroupContext"),$.EditorTabsBarContext=new $("EditorTabsBarContext"),$.EditorTabsBarShowTabsSubmenu=new $("EditorTabsBarShowTabsSubmenu"),$.EditorTabsBarShowTabsZenModeSubmenu=new $("EditorTabsBarShowTabsZenModeSubmenu"),$.EditorActionsPositionSubmenu=new $("EditorActionsPositionSubmenu"),$.ExplorerContext=new $("ExplorerContext"),$.ExplorerContextShare=new $("ExplorerContextShare"),$.ExtensionContext=new $("ExtensionContext"),$.GlobalActivity=new $("GlobalActivity"),$.CommandCenter=new $("CommandCenter"),$.CommandCenterCenter=new $("CommandCenterCenter"),$.LayoutControlMenuSubmenu=new $("LayoutControlMenuSubmenu"),$.LayoutControlMenu=new $("LayoutControlMenu"),$.MenubarMainMenu=new $("MenubarMainMenu"),$.MenubarAppearanceMenu=new $("MenubarAppearanceMenu"),$.MenubarDebugMenu=new $("MenubarDebugMenu"),$.MenubarEditMenu=new $("MenubarEditMenu"),$.MenubarCopy=new $("MenubarCopy"),$.MenubarFileMenu=new $("MenubarFileMenu"),$.MenubarGoMenu=new $("MenubarGoMenu"),$.MenubarHelpMenu=new $("MenubarHelpMenu"),$.MenubarLayoutMenu=new $("MenubarLayoutMenu"),$.MenubarNewBreakpointMenu=new $("MenubarNewBreakpointMenu"),$.PanelAlignmentMenu=new $("PanelAlignmentMenu"),$.PanelPositionMenu=new $("PanelPositionMenu"),$.ActivityBarPositionMenu=new $("ActivityBarPositionMenu"),$.MenubarPreferencesMenu=new $("MenubarPreferencesMenu"),$.MenubarRecentMenu=new $("MenubarRecentMenu"),$.MenubarSelectionMenu=new $("MenubarSelectionMenu"),$.MenubarShare=new $("MenubarShare"),$.MenubarSwitchEditorMenu=new $("MenubarSwitchEditorMenu"),$.MenubarSwitchGroupMenu=new $("MenubarSwitchGroupMenu"),$.MenubarTerminalMenu=new $("MenubarTerminalMenu"),$.MenubarViewMenu=new $("MenubarViewMenu"),$.MenubarHomeMenu=new $("MenubarHomeMenu"),$.OpenEditorsContext=new $("OpenEditorsContext"),$.OpenEditorsContextShare=new $("OpenEditorsContextShare"),$.ProblemsPanelContext=new $("ProblemsPanelContext"),$.SCMInputBox=new $("SCMInputBox"),$.SCMChangesSeparator=new $("SCMChangesSeparator"),$.SCMIncomingChanges=new $("SCMIncomingChanges"),$.SCMIncomingChangesContext=new $("SCMIncomingChangesContext"),$.SCMIncomingChangesSetting=new $("SCMIncomingChangesSetting"),$.SCMOutgoingChanges=new $("SCMOutgoingChanges"),$.SCMOutgoingChangesContext=new $("SCMOutgoingChangesContext"),$.SCMOutgoingChangesSetting=new $("SCMOutgoingChangesSetting"),$.SCMIncomingChangesAllChangesContext=new $("SCMIncomingChangesAllChangesContext"),$.SCMIncomingChangesHistoryItemContext=new $("SCMIncomingChangesHistoryItemContext"),$.SCMOutgoingChangesAllChangesContext=new $("SCMOutgoingChangesAllChangesContext"),$.SCMOutgoingChangesHistoryItemContext=new $("SCMOutgoingChangesHistoryItemContext"),$.SCMChangeContext=new $("SCMChangeContext"),$.SCMResourceContext=new $("SCMResourceContext"),$.SCMResourceContextShare=new $("SCMResourceContextShare"),$.SCMResourceFolderContext=new $("SCMResourceFolderContext"),$.SCMResourceGroupContext=new $("SCMResourceGroupContext"),$.SCMSourceControl=new $("SCMSourceControl"),$.SCMSourceControlInline=new $("SCMSourceControlInline"),$.SCMSourceControlTitle=new $("SCMSourceControlTitle"),$.SCMTitle=new $("SCMTitle"),$.SearchContext=new $("SearchContext"),$.SearchActionMenu=new $("SearchActionContext"),$.StatusBarWindowIndicatorMenu=new $("StatusBarWindowIndicatorMenu"),$.StatusBarRemoteIndicatorMenu=new $("StatusBarRemoteIndicatorMenu"),$.StickyScrollContext=new $("StickyScrollContext"),$.TestItem=new $("TestItem"),$.TestItemGutter=new $("TestItemGutter"),$.TestMessageContext=new $("TestMessageContext"),$.TestMessageContent=new $("TestMessageContent"),$.TestPeekElement=new $("TestPeekElement"),$.TestPeekTitle=new $("TestPeekTitle"),$.TouchBarContext=new $("TouchBarContext"),$.TitleBarContext=new $("TitleBarContext"),$.TitleBarTitleContext=new $("TitleBarTitleContext"),$.TunnelContext=new $("TunnelContext"),$.TunnelPrivacy=new $("TunnelPrivacy"),$.TunnelProtocol=new $("TunnelProtocol"),$.TunnelPortInline=new $("TunnelInline"),$.TunnelTitle=new $("TunnelTitle"),$.TunnelLocalAddressInline=new $("TunnelLocalAddressInline"),$.TunnelOriginInline=new $("TunnelOriginInline"),$.ViewItemContext=new $("ViewItemContext"),$.ViewContainerTitle=new $("ViewContainerTitle"),$.ViewContainerTitleContext=new $("ViewContainerTitleContext"),$.ViewTitle=new $("ViewTitle"),$.ViewTitleContext=new $("ViewTitleContext"),$.CommentEditorActions=new $("CommentEditorActions"),$.CommentThreadTitle=new $("CommentThreadTitle"),$.CommentThreadActions=new $("CommentThreadActions"),$.CommentThreadAdditionalActions=new $("CommentThreadAdditionalActions"),$.CommentThreadTitleContext=new $("CommentThreadTitleContext"),$.CommentThreadCommentContext=new $("CommentThreadCommentContext"),$.CommentTitle=new $("CommentTitle"),$.CommentActions=new $("CommentActions"),$.InteractiveToolbar=new $("InteractiveToolbar"),$.InteractiveCellTitle=new $("InteractiveCellTitle"),$.InteractiveCellDelete=new $("InteractiveCellDelete"),$.InteractiveCellExecute=new $("InteractiveCellExecute"),$.InteractiveInputExecute=new $("InteractiveInputExecute"),$.IssueReporter=new $("IssueReporter"),$.NotebookToolbar=new $("NotebookToolbar"),$.NotebookStickyScrollContext=new $("NotebookStickyScrollContext"),$.NotebookCellTitle=new $("NotebookCellTitle"),$.NotebookCellDelete=new $("NotebookCellDelete"),$.NotebookCellInsert=new $("NotebookCellInsert"),$.NotebookCellBetween=new $("NotebookCellBetween"),$.NotebookCellListTop=new $("NotebookCellTop"),$.NotebookCellExecute=new $("NotebookCellExecute"),$.NotebookCellExecuteGoTo=new $("NotebookCellExecuteGoTo"),$.NotebookCellExecutePrimary=new $("NotebookCellExecutePrimary"),$.NotebookDiffCellInputTitle=new $("NotebookDiffCellInputTitle"),$.NotebookDiffCellMetadataTitle=new $("NotebookDiffCellMetadataTitle"),$.NotebookDiffCellOutputsTitle=new $("NotebookDiffCellOutputsTitle"),$.NotebookOutputToolbar=new $("NotebookOutputToolbar"),$.NotebookEditorLayoutConfigure=new $("NotebookEditorLayoutConfigure"),$.NotebookKernelSource=new $("NotebookKernelSource"),$.BulkEditTitle=new $("BulkEditTitle"),$.BulkEditContext=new $("BulkEditContext"),$.TimelineItemContext=new $("TimelineItemContext"),$.TimelineTitle=new $("TimelineTitle"),$.TimelineTitleContext=new $("TimelineTitleContext"),$.TimelineFilterSubMenu=new $("TimelineFilterSubMenu"),$.AccountsContext=new $("AccountsContext"),$.SidebarTitle=new $("SidebarTitle"),$.PanelTitle=new $("PanelTitle"),$.AuxiliaryBarTitle=new $("AuxiliaryBarTitle"),$.TerminalInstanceContext=new $("TerminalInstanceContext"),$.TerminalEditorInstanceContext=new $("TerminalEditorInstanceContext"),$.TerminalNewDropdownContext=new $("TerminalNewDropdownContext"),$.TerminalTabContext=new $("TerminalTabContext"),$.TerminalTabEmptyAreaContext=new $("TerminalTabEmptyAreaContext"),$.TerminalStickyScrollContext=new $("TerminalStickyScrollContext"),$.WebviewContext=new $("WebviewContext"),$.InlineCompletionsActions=new $("InlineCompletionsActions"),$.InlineEditActions=new $("InlineEditActions"),$.NewFile=new $("NewFile"),$.MergeInput1Toolbar=new $("MergeToolbar1Toolbar"),$.MergeInput2Toolbar=new $("MergeToolbar2Toolbar"),$.MergeBaseToolbar=new $("MergeBaseToolbar"),$.MergeInputResultToolbar=new $("MergeToolbarResultToolbar"),$.InlineSuggestionToolbar=new $("InlineSuggestionToolbar"),$.InlineEditToolbar=new $("InlineEditToolbar"),$.ChatContext=new $("ChatContext"),$.ChatCodeBlock=new $("ChatCodeblock"),$.ChatMessageTitle=new $("ChatMessageTitle"),$.ChatExecute=new $("ChatExecute"),$.ChatInputSide=new $("ChatInputSide"),$.AccessibleView=new $("AccessibleView"),$.MultiDiffEditorFileToolbar=new $("MultiDiffEditorFileToolbar");const wc=Un("menuService");class wf{static for(e){let t=this._all.get(e);return t||(t=new wf(e),this._all.set(e,t)),t}static merge(e){const t=new Set;for(const i of e)i instanceof wf&&t.add(i.id);return t}constructor(e){this.id=e,this.has=t=>t===e}}wf._all=new Map;const Ls=new class{constructor(){this._commands=new Map,this._menuItems=new Map,this._onDidChangeMenu=new cht({merge:wf.merge}),this.onDidChangeMenu=this._onDidChangeMenu.event}addCommand(n){return this._commands.set(n.id,n),this._onDidChangeMenu.fire(wf.for($.CommandPalette)),en(()=>{this._commands.delete(n.id)&&this._onDidChangeMenu.fire(wf.for($.CommandPalette))})}getCommand(n){return this._commands.get(n)}getCommands(){const n=new Map;return this._commands.forEach((e,t)=>n.set(t,e)),n}appendMenuItem(n,e){let t=this._menuItems.get(n);t||(t=new Ua,this._menuItems.set(n,t));const i=t.push(e);return this._onDidChangeMenu.fire(wf.for(n)),en(()=>{i(),this._onDidChangeMenu.fire(wf.for(n))})}appendMenuItems(n){const e=new je;for(const{id:t,item:i}of n)e.add(this.appendMenuItem(t,i));return e}getMenuItems(n){let e;return this._menuItems.has(n)?e=[...this._menuItems.get(n)]:e=[],n===$.CommandPalette&&this._appendImplicitItems(e),e}_appendImplicitItems(n){const e=new Set;for(const t of n)i2(t)&&(e.add(t.command.id),t.alt&&e.add(t.alt.id));this._commands.forEach((t,i)=>{e.has(i)||n.push({command:t})})}};class VF extends qI{constructor(e,t,i){super(`submenuitem.${e.submenu.id}`,typeof e.title=="string"?e.title:e.title.value,i,"submenu"),this.item=e,this.hideActions=t}}let Wu=B5=class{static label(e,t){return t!=null&&t.renderShortTitle&&e.shortTitle?typeof e.shortTitle=="string"?e.shortTitle:e.shortTitle.value:typeof e.title=="string"?e.title:e.title.value}constructor(e,t,i,r,o,s){var a,l;this.hideActions=r,this._commandService=s,this.id=e.id,this.label=B5.label(e,i),this.tooltip=(l=typeof e.tooltip=="string"?e.tooltip:(a=e.tooltip)===null||a===void 0?void 0:a.value)!==null&&l!==void 0?l:"",this.enabled=!e.precondition||o.contextMatchesRules(e.precondition),this.checked=void 0;let u;if(e.toggled){const c=e.toggled.condition?e.toggled:{condition:e.toggled};this.checked=o.contextMatchesRules(c.condition),this.checked&&c.tooltip&&(this.tooltip=typeof c.tooltip=="string"?c.tooltip:c.tooltip.value),this.checked&&on.isThemeIcon(c.icon)&&(u=c.icon),this.checked&&c.title&&(this.label=typeof c.title=="string"?c.title:c.title.value)}u||(u=on.isThemeIcon(e.icon)?e.icon:void 0),this.item=e,this.alt=t?new B5(t,void 0,i,r,o,s):void 0,this._options=i,this.class=u&&on.asClassName(u)}run(...e){var t,i;let r=[];return!((t=this._options)===null||t===void 0)&&t.arg&&(r=[...r,this._options.arg]),!((i=this._options)===null||i===void 0)&&i.shouldForwardArgs&&(r=[...r,...e]),this._commandService.executeCommand(this.id,...r)}};Wu=B5=pmt([g0e(4,ln),g0e(5,Vr)],Wu);class Al{constructor(e){this.desc=e}}function Qi(n){const e=new je,t=new n,{f1:i,menu:r,keybinding:o,...s}=t.desc;if(ei.getCommand(s.id))throw new Error(`Cannot register two commands with the same id: ${s.id}`);if(e.add(ei.registerCommand({id:s.id,handler:(a,...l)=>t.run(a,...l),metadata:s.metadata})),Array.isArray(r))for(const a of r)e.add(Ls.appendMenuItem(a.id,{command:{...s,precondition:a.precondition===null?void 0:s.precondition},...a}));else r&&e.add(Ls.appendMenuItem(r.id,{command:{...s,precondition:r.precondition===null?void 0:s.precondition},...r}));if(i&&(e.add(Ls.appendMenuItem($.CommandPalette,{command:s,when:s.precondition})),e.add(Ls.addCommand(s))),Array.isArray(o))for(const a of o)e.add(Dl.registerKeybindingRule({...a,id:s.id,when:s.precondition?Be.and(s.precondition,a.when):a.when}));else o&&e.add(Dl.registerKeybindingRule({...o,id:s.id,when:s.precondition?Be.and(s.precondition,o.when):o.when}));return e}const Nl=Un("telemetryService"),Qa=Un("logService");var Hs;(function(n){n[n.Off=0]="Off",n[n.Trace=1]="Trace",n[n.Debug=2]="Debug",n[n.Info=3]="Info",n[n.Warning=4]="Warning",n[n.Error=5]="Error"})(Hs||(Hs={}));const m0e=Hs.Info;class f0e extends De{constructor(){super(...arguments),this.level=m0e,this._onDidChangeLogLevel=this._register(new be),this.onDidChangeLogLevel=this._onDidChangeLogLevel.event}setLevel(e){this.level!==e&&(this.level=e,this._onDidChangeLogLevel.fire(this.level))}getLevel(){return this.level}checkLogLevel(e){return this.level!==Hs.Off&&this.level<=e}}class Cmt extends f0e{constructor(e=m0e,t=!0){super(),this.useColors=t,this.setLevel(e)}trace(e,...t){this.checkLogLevel(Hs.Trace)&&this.useColors}debug(e,...t){this.checkLogLevel(Hs.Debug)&&this.useColors}info(e,...t){this.checkLogLevel(Hs.Info)&&this.useColors}warn(e,...t){this.checkLogLevel(Hs.Warning)&&this.useColors}error(e,...t){this.checkLogLevel(Hs.Error)&&this.useColors}}class vmt extends f0e{constructor(e){super(),this.loggers=e,e.length&&this.setLevel(e[0].getLevel())}setLevel(e){for(const t of this.loggers)t.setLevel(e);super.setLevel(e)}trace(e,...t){for(const i of this.loggers)i.trace(e,...t)}debug(e,...t){for(const i of this.loggers)i.debug(e,...t)}info(e,...t){for(const i of this.loggers)i.info(e,...t)}warn(e,...t){for(const i of this.loggers)i.warn(e,...t)}error(e,...t){for(const i of this.loggers)i.error(e,...t)}dispose(){for(const e of this.loggers)e.dispose();super.dispose()}}function ymt(n){switch(n){case Hs.Trace:return"trace";case Hs.Debug:return"debug";case Hs.Info:return"info";case Hs.Warning:return"warn";case Hs.Error:return"error";case Hs.Off:return"off"}}new It("logLevel",ymt(Hs.Info));let z5=class{constructor(e){this.id=e.id,this.precondition=e.precondition,this._kbOpts=e.kbOpts,this._menuOpts=e.menuOpts,this.metadata=e.metadata}register(){if(Array.isArray(this._menuOpts)?this._menuOpts.forEach(this._registerMenuItem,this):this._menuOpts&&this._registerMenuItem(this._menuOpts),this._kbOpts){const e=Array.isArray(this._kbOpts)?this._kbOpts:[this._kbOpts];for(const t of e){let i=t.kbExpr;this.precondition&&(i?i=Be.and(i,this.precondition):i=this.precondition);const r={id:this.id,weight:t.weight,args:t.args,when:i,primary:t.primary,secondary:t.secondary,win:t.win,linux:t.linux,mac:t.mac};Dl.registerKeybindingRule(r)}}ei.registerCommand({id:this.id,handler:(e,t)=>this.runCommand(e,t),metadata:this.metadata})}_registerMenuItem(e){Ls.appendMenuItem(e.menuId,{group:e.group,command:{id:this.id,title:e.title,icon:e.icon,precondition:this.precondition},when:e.when,order:e.order})}};class r2 extends z5{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t,i,r){return this._implementations.push({priority:e,name:t,implementation:i,when:r}),this._implementations.sort((o,s)=>s.priority-o.priority),{dispose:()=>{for(let o=0;o{if(a.get(ln).contextMatchesRules(i??void 0))return r(a,s,t)})}runCommand(e,t){return cs.runEditorCommand(e,t,this.precondition,(i,r,o)=>this.runEditorCommand(i,r,o))}}class Nt extends cs{static convertOptions(e){let t;Array.isArray(e.menuOpts)?t=e.menuOpts:e.menuOpts?t=[e.menuOpts]:t=[];function i(r){return r.menuId||(r.menuId=$.EditorContext),r.title||(r.title=e.label),r.when=Be.and(e.precondition,r.when),r}return Array.isArray(e.contextMenuOpts)?t.push(...e.contextMenuOpts.map(i)):e.contextMenuOpts&&t.push(i(e.contextMenuOpts)),e.menuOpts=t,e}constructor(e){super(Nt.convertOptions(e)),this.label=e.label,this.alias=e.alias}runEditorCommand(e,t,i){return this.reportTelemetry(e,t),this.run(e,t,i||{})}reportTelemetry(e,t){e.get(Nl).publicLog2("editorActionInvoked",{name:this.label,id:this.id})}}class b0e extends Nt{constructor(){super(...arguments),this._implementations=[]}addImplementation(e,t){return this._implementations.push([e,t]),this._implementations.sort((i,r)=>r[0]-i[0]),{dispose:()=>{for(let i=0;i{var s,a;const l=o.get(ln),u=o.get(Qa);if(!l.contextMatchesRules((s=this.desc.precondition)!==null&&s!==void 0?s:void 0)){u.debug("[EditorAction2] NOT running command because its precondition is FALSE",this.desc.id,(a=this.desc.precondition)===null||a===void 0?void 0:a.serialize());return}return this.runEditorCommand(o,r,...t)})}}function Wg(n,e){ei.registerCommand(n,function(t,...i){const r=t.get(tn),[o,s]=i;Ci($t.isUri(o)),Ci(ve.isIPosition(s));const a=t.get(wr).getModel(o);if(a){const l=ve.lift(s);return r.invokeFunction(e,a,l,...i.slice(2))}return t.get(Fl).createModelReference(o).then(l=>new Promise((u,c)=>{try{const d=r.invokeFunction(e,l.object.textEditorModel,ve.lift(s),i.slice(2));u(d)}catch(d){c(d)}}).finally(()=>{l.dispose()}))})}function mt(n){return Sc.INSTANCE.registerEditorCommand(n),n}function it(n){const e=new n;return Sc.INSTANCE.registerEditorAction(e),e}function C0e(n){return Sc.INSTANCE.registerEditorAction(n),n}function Imt(n){Sc.INSTANCE.registerEditorAction(n)}function Ii(n,e,t){Sc.INSTANCE.registerEditorContribution(n,e,t)}var o2;(function(n){function e(s){return Sc.INSTANCE.getEditorCommand(s)}n.getEditorCommand=e;function t(){return Sc.INSTANCE.getEditorActions()}n.getEditorActions=t;function i(){return Sc.INSTANCE.getEditorContributions()}n.getEditorContributions=i;function r(s){return Sc.INSTANCE.getEditorContributions().filter(a=>s.indexOf(a.id)>=0)}n.getSomeEditorContributions=r;function o(){return Sc.INSTANCE.getDiffEditorContributions()}n.getDiffEditorContributions=o})(o2||(o2={}));const wmt={EditorCommonContributions:"editor.contributions"};class Sc{constructor(){this.editorContributions=[],this.diffEditorContributions=[],this.editorActions=[],this.editorCommands=Object.create(null)}registerEditorContribution(e,t,i){this.editorContributions.push({id:e,ctor:t,instantiation:i})}getEditorContributions(){return this.editorContributions.slice(0)}getDiffEditorContributions(){return this.diffEditorContributions.slice(0)}registerEditorAction(e){e.register(),this.editorActions.push(e)}getEditorActions(){return this.editorActions}registerEditorCommand(e){e.register(),this.editorCommands[e.id]=e}getEditorCommand(e){return this.editorCommands[e]||null}}Sc.INSTANCE=new Sc,xo.add(wmt.EditorCommonContributions,Sc.INSTANCE);function XF(n){return n.register(),n}const v0e=XF(new r2({id:"undo",precondition:void 0,kbOpts:{weight:0,primary:2104},menuOpts:[{menuId:$.MenubarEditMenu,group:"1_do",title:x({key:"miUndo",comment:["&& denotes a mnemonic"]},"&&Undo"),order:1},{menuId:$.CommandPalette,group:"",title:x("undo","Undo"),order:1}]}));XF(new p0e(v0e,{id:"default:undo",precondition:void 0}));const y0e=XF(new r2({id:"redo",precondition:void 0,kbOpts:{weight:0,primary:2103,secondary:[3128],mac:{primary:3128}},menuOpts:[{menuId:$.MenubarEditMenu,group:"1_do",title:x({key:"miRedo",comment:["&& denotes a mnemonic"]},"&&Redo"),order:2},{menuId:$.CommandPalette,group:"",title:x("redo","Redo"),order:1}]}));XF(new p0e(y0e,{id:"default:redo",precondition:void 0}));const Smt=XF(new r2({id:"editor.action.selectAll",precondition:void 0,kbOpts:{weight:0,kbExpr:null,primary:2079},menuOpts:[{menuId:$.MenubarSelectionMenu,group:"1_basic",title:x({key:"miSelectAll",comment:["&& denotes a mnemonic"]},"&&Select All"),order:1},{menuId:$.CommandPalette,group:"",title:x("selectAll","Select All"),order:1}]}));let K=class Ws{constructor(e,t,i,r){e>i||e===i&&t>r?(this.startLineNumber=i,this.startColumn=r,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=i,this.endColumn=r)}isEmpty(){return Ws.isEmpty(this)}static isEmpty(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn}containsPosition(e){return Ws.containsPosition(this,e)}static containsPosition(e,t){return!(t.lineNumbere.endLineNumber||t.lineNumber===e.startLineNumber&&t.columne.endColumn)}static strictContainsPosition(e,t){return!(t.lineNumbere.endLineNumber||t.lineNumber===e.startLineNumber&&t.column<=e.startColumn||t.lineNumber===e.endLineNumber&&t.column>=e.endColumn)}containsRange(e){return Ws.containsRange(this,e)}static containsRange(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumne.endColumn)}strictContainsRange(e){return Ws.strictContainsRange(this,e)}static strictContainsRange(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumn<=e.startColumn||t.endLineNumber===e.endLineNumber&&t.endColumn>=e.endColumn)}plusRange(e){return Ws.plusRange(this,e)}static plusRange(e,t){let i,r,o,s;return t.startLineNumbere.endLineNumber?(o=t.endLineNumber,s=t.endColumn):t.endLineNumber===e.endLineNumber?(o=t.endLineNumber,s=Math.max(t.endColumn,e.endColumn)):(o=e.endLineNumber,s=e.endColumn),new Ws(i,r,o,s)}intersectRanges(e){return Ws.intersectRanges(this,e)}static intersectRanges(e,t){let i=e.startLineNumber,r=e.startColumn,o=e.endLineNumber,s=e.endColumn;const a=t.startLineNumber,l=t.startColumn,u=t.endLineNumber,c=t.endColumn;return iu?(o=u,s=c):o===u&&(s=Math.min(s,c)),i>o||i===o&&r>s?null:new Ws(i,r,o,s)}equalsRange(e){return Ws.equalsRange(this,e)}static equalsRange(e,t){return!e&&!t?!0:!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn}getEndPosition(){return Ws.getEndPosition(this)}static getEndPosition(e){return new ve(e.endLineNumber,e.endColumn)}getStartPosition(){return Ws.getStartPosition(this)}static getStartPosition(e){return new ve(e.startLineNumber,e.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(e,t){return new Ws(this.startLineNumber,this.startColumn,e,t)}setStartPosition(e,t){return new Ws(e,t,this.endLineNumber,this.endColumn)}collapseToStart(){return Ws.collapseToStart(this)}static collapseToStart(e){return new Ws(e.startLineNumber,e.startColumn,e.startLineNumber,e.startColumn)}collapseToEnd(){return Ws.collapseToEnd(this)}static collapseToEnd(e){return new Ws(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn)}delta(e){return new Ws(this.startLineNumber+e,this.startColumn,this.endLineNumber+e,this.endColumn)}static fromPositions(e,t=e){return new Ws(e.lineNumber,e.column,t.lineNumber,t.column)}static lift(e){return e?new Ws(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):null}static isIRange(e){return e&&typeof e.startLineNumber=="number"&&typeof e.startColumn=="number"&&typeof e.endLineNumber=="number"&&typeof e.endColumn=="number"}static areIntersectingOrTouching(e,t){return!(e.endLineNumbere.startLineNumber}toJSON(){return this}},Gt=class Od extends K{constructor(e,t,i,r){super(e,t,i,r),this.selectionStartLineNumber=e,this.selectionStartColumn=t,this.positionLineNumber=i,this.positionColumn=r}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(e){return Od.selectionsEqual(this,e)}static selectionsEqual(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(e,t){return this.getDirection()===0?new Od(this.startLineNumber,this.startColumn,e,t):new Od(e,t,this.startLineNumber,this.startColumn)}getPosition(){return new ve(this.positionLineNumber,this.positionColumn)}getSelectionStart(){return new ve(this.selectionStartLineNumber,this.selectionStartColumn)}setStartPosition(e,t){return this.getDirection()===0?new Od(e,t,this.endLineNumber,this.endColumn):new Od(this.endLineNumber,this.endColumn,e,t)}static fromPositions(e,t=e){return new Od(e.lineNumber,e.column,t.lineNumber,t.column)}static fromRange(e,t){return t===0?new Od(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn):new Od(e.endLineNumber,e.endColumn,e.startLineNumber,e.startColumn)}static liftSelection(e){return new Od(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)}static selectionsArrEqual(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(let i=0,r=e.length;i0&&n.getLanguageId(s-1)===r;)s--;return new xmt(n,r,s,o+1,n.getStartOffset(s),n.getEndOffset(o))}class xmt{constructor(e,t,i,r,o,s){this._scopedLineTokensBrand=void 0,this._actual=e,this.languageId=t,this._firstTokenIndex=i,this._lastTokenIndex=r,this.firstCharOffset=o,this._lastCharOffset=s}getLineContent(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)}getActualLineContentBefore(e){return this._actual.getLineContent().substring(0,this.firstCharOffset+e)}getTokenCount(){return this._lastTokenIndex-this._firstTokenIndex}findTokenIndexAtOffset(e){return this._actual.findTokenIndexAtOffset(e+this.firstCharOffset)-this._firstTokenIndex}getStandardTokenType(e){return this._actual.getStandardTokenType(e+this._firstTokenIndex)}}function Rg(n){return(n&3)!==0}class Yo{static _nextVisibleColumn(e,t,i){return e===9?Yo.nextRenderTabStop(t,i):Ib(e)||DY(e)?t+2:t+1}static visibleColumnFromColumn(e,t,i){const r=Math.min(t-1,e.length),o=e.substring(0,r),s=new f5(o);let a=0;for(;!s.eol();){const l=m5(o,r,s.offset);s.nextGraphemeLength(),a=this._nextVisibleColumn(l,a,i)}return a}static columnFromVisibleColumn(e,t,i){if(t<=0)return 1;const r=e.length,o=new f5(e);let s=0,a=1;for(;!o.eol();){const l=m5(e,r,o.offset);o.nextGraphemeLength();const u=this._nextVisibleColumn(l,s,i),c=o.offset+1;if(u>=t){const d=t-s;return u-t!0,_mt=()=>!1,Dmt=n=>n===" "||n===" ";class s2{static shouldRecreate(e){return e.hasChanged(144)||e.hasChanged(130)||e.hasChanged(37)||e.hasChanged(77)||e.hasChanged(79)||e.hasChanged(80)||e.hasChanged(6)||e.hasChanged(7)||e.hasChanged(11)||e.hasChanged(9)||e.hasChanged(10)||e.hasChanged(14)||e.hasChanged(128)||e.hasChanged(50)||e.hasChanged(91)}constructor(e,t,i,r){var o;this.languageConfigurationService=r,this._cursorMoveConfigurationBrand=void 0,this._languageId=e;const s=i.options,a=s.get(144),l=s.get(50);this.readOnly=s.get(91),this.tabSize=t.tabSize,this.indentSize=t.indentSize,this.insertSpaces=t.insertSpaces,this.stickyTabStops=s.get(116),this.lineHeight=l.lineHeight,this.typicalHalfwidthCharacterWidth=l.typicalHalfwidthCharacterWidth,this.pageSize=Math.max(1,Math.floor(a.height/this.lineHeight)-2),this.useTabStops=s.get(128),this.wordSeparators=s.get(130),this.emptySelectionClipboard=s.get(37),this.copyWithSyntaxHighlighting=s.get(25),this.multiCursorMergeOverlapping=s.get(77),this.multiCursorPaste=s.get(79),this.multiCursorLimit=s.get(80),this.autoClosingBrackets=s.get(6),this.autoClosingComments=s.get(7),this.autoClosingQuotes=s.get(11),this.autoClosingDelete=s.get(9),this.autoClosingOvertype=s.get(10),this.autoSurround=s.get(14),this.autoIndent=s.get(12),this.surroundingPairs={},this._electricChars=null,this.shouldAutoCloseBefore={quote:this._getShouldAutoClose(e,this.autoClosingQuotes,!0),comment:this._getShouldAutoClose(e,this.autoClosingComments,!1),bracket:this._getShouldAutoClose(e,this.autoClosingBrackets,!1)},this.autoClosingPairs=this.languageConfigurationService.getLanguageConfiguration(e).getAutoClosingPairs();const u=this.languageConfigurationService.getLanguageConfiguration(e).getSurroundingPairs();if(u)for(const d of u)this.surroundingPairs[d.open]=d.close;const c=this.languageConfigurationService.getLanguageConfiguration(e).comments;this.blockCommentStartToken=(o=c==null?void 0:c.blockCommentStartToken)!==null&&o!==void 0?o:null}get electricChars(){var e;if(!this._electricChars){this._electricChars={};const t=(e=this.languageConfigurationService.getLanguageConfiguration(this._languageId).electricCharacter)===null||e===void 0?void 0:e.getElectricCharacters();if(t)for(const i of t)this._electricChars[i]=!0}return this._electricChars}onElectricCharacter(e,t,i){const r=Y5(t,i-1),o=this.languageConfigurationService.getLanguageConfiguration(r.languageId).electricCharacter;return o?o.onElectricCharacter(e,r,i-r.firstCharOffset):null}normalizeIndentation(e){return H5(e,this.indentSize,this.insertSpaces)}_getShouldAutoClose(e,t,i){switch(t){case"beforeWhitespace":return Dmt;case"languageDefined":return this._getLanguageDefinedShouldAutoClose(e,i);case"always":return Fmt;case"never":return _mt}}_getLanguageDefinedShouldAutoClose(e,t){const i=this.languageConfigurationService.getLanguageConfiguration(e).getAutoCloseBeforeSet(t);return r=>i.indexOf(r)!==-1}visibleColumnFromColumn(e,t){return Yo.visibleColumnFromColumn(e.getLineContent(t.lineNumber),t.column,this.tabSize)}columnFromVisibleColumn(e,t,i){const r=Yo.columnFromVisibleColumn(e.getLineContent(t),i,this.tabSize),o=e.getLineMinColumn(t);if(rs?s:r}}let li=class mke{static fromModelState(e){return new Amt(e)}static fromViewState(e){return new Nmt(e)}static fromModelSelection(e){const t=Gt.liftSelection(e),i=new Fs(K.fromPositions(t.getSelectionStart()),0,0,t.getPosition(),0);return mke.fromModelState(i)}static fromModelSelections(e){const t=[];for(let i=0,r=e.length;io,u=r>s,c=rs||Cr||b0&&r--,EC.columnSelect(e,t,i.fromViewLineNumber,i.fromViewVisualColumn,i.toViewLineNumber,r)}static columnSelectRight(e,t,i){let r=0;const o=Math.min(i.fromViewLineNumber,i.toViewLineNumber),s=Math.max(i.fromViewLineNumber,i.toViewLineNumber);for(let l=o;l<=s;l++){const u=t.getLineMaxColumn(l),c=e.visibleColumnFromColumn(t,new ve(l,u));r=Math.max(r,c)}let a=i.toViewVisualColumn;return ae.getLineMinColumn(t.lineNumber))return t.delta(void 0,-Ibe(e.getLineContent(t.lineNumber),t.column-1));if(t.lineNumber>1){const i=t.lineNumber-1;return new ve(i,e.getLineMaxColumn(i))}else return t}static leftPositionAtomicSoftTabs(e,t,i){if(t.column<=e.getLineIndentColumn(t.lineNumber)){const r=e.getLineMinColumn(t.lineNumber),o=e.getLineContent(t.lineNumber),s=PF.atomicPosition(o,t.column-1,i,0);if(s!==-1&&s+1>=r)return new ve(t.lineNumber,s+1)}return this.leftPosition(e,t)}static left(e,t,i){const r=e.stickyTabStops?_i.leftPositionAtomicSoftTabs(t,i,e.tabSize):_i.leftPosition(t,i);return new rH(r.lineNumber,r.column,0)}static moveLeft(e,t,i,r,o){let s,a;if(i.hasSelection()&&!r)s=i.selection.startLineNumber,a=i.selection.startColumn;else{const l=i.position.delta(void 0,-(o-1)),u=t.normalizePosition(_i.clipPositionColumn(l,t),0),c=_i.left(e,t,u);s=c.lineNumber,a=c.column}return i.move(r,s,a,0)}static clipPositionColumn(e,t){return new ve(e.lineNumber,_i.clipRange(e.column,t.getLineMinColumn(e.lineNumber),t.getLineMaxColumn(e.lineNumber)))}static clipRange(e,t,i){return ei?i:e}static rightPosition(e,t,i){return ic?(i=c,a?r=t.getLineMaxColumn(i):r=Math.min(t.getLineMaxColumn(i),r)):r=e.columnFromVisibleColumn(t,i,u),g?o=0:o=u-Yo.visibleColumnFromColumn(t.getLineContent(i),r,e.tabSize),l!==void 0){const m=new ve(i,r),f=t.normalizePosition(m,l);o=o+(r-f.column),i=f.lineNumber,r=f.column}return new rH(i,r,o)}static down(e,t,i,r,o,s,a){return this.vertical(e,t,i,r,o,i+s,a,4)}static moveDown(e,t,i,r,o){let s,a;i.hasSelection()&&!r?(s=i.selection.endLineNumber,a=i.selection.endColumn):(s=i.position.lineNumber,a=i.position.column);let l=0,u;do if(u=_i.down(e,t,s+l,a,i.leftoverVisibleColumns,o,!0),t.normalizePosition(new ve(u.lineNumber,u.column),2).lineNumber>s)break;while(l++<10&&s+l1&&this._isBlankLine(t,o);)o--;for(;o>1&&!this._isBlankLine(t,o);)o--;return i.move(r,o,t.getLineMinColumn(o),0)}static moveToNextBlankLine(e,t,i,r){const o=t.getLineCount();let s=i.position.lineNumber;for(;s=h.length+1)return!1;const g=h.charAt(d.column-2),m=r.get(g);if(!m)return!1;if(Nb(g)){if(i==="never")return!1}else if(t==="never")return!1;const f=h.charAt(d.column-1);let b=!1;for(const C of m)C.open===g&&C.close===f&&(b=!0);if(!b)return!1;if(e==="auto"){let C=!1;for(let v=0,w=a.length;v1){const o=t.getLineContent(r.lineNumber),s=Ia(o),a=s===-1?o.length+1:s+1;if(r.column<=a){const l=i.visibleColumnFromColumn(t,r),u=Yo.prevIndentTabStop(l,i.indentSize),c=i.columnFromVisibleColumn(t,r.lineNumber,u);return new K(r.lineNumber,c,r.lineNumber,r.column)}}return K.fromPositions(WC.getPositionAfterDeleteLeft(r,t),r)}static getPositionAfterDeleteLeft(e,t){if(e.column>1){const i=$ht(e.column-1,t.getLineContent(e.lineNumber));return e.with(void 0,i+1)}else if(e.lineNumber>1){const i=e.lineNumber-1;return new ve(i,t.getLineMaxColumn(i))}else return e}static cut(e,t,i){const r=[];let o=null;i.sort((s,a)=>ve.compare(s.getStartPosition(),a.getEndPosition()));for(let s=0,a=i.length;s1&&(o==null?void 0:o.endLineNumber)!==u.lineNumber?(c=u.lineNumber-1,d=t.getLineMaxColumn(u.lineNumber-1),h=u.lineNumber,g=t.getLineMaxColumn(u.lineNumber)):(c=u.lineNumber,d=1,h=u.lineNumber,g=t.getLineMaxColumn(u.lineNumber));const m=new K(c,d,h,g);o=m,m.isEmpty()?r[s]=null:r[s]=new Us(m,"")}else r[s]=null;else r[s]=new Us(l,"")}return new kl(0,r,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})}}function K5(n){return n<0?0:n>255?255:n|0}function a2(n){return n<0?0:n>4294967295?4294967295:n|0}class l2{constructor(e){const t=K5(e);this._defaultValue=t,this._asciiMap=l2._createAsciiMap(t),this._map=new Map}static _createAsciiMap(e){const t=new Uint8Array(256);return t.fill(e),t}set(e,t){const i=K5(t);e>=0&&e<256?this._asciiMap[e]=i:this._map.set(e,i)}get(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue}clear(){this._asciiMap.fill(this._defaultValue),this._map.clear()}}class j5{constructor(){this._actual=new l2(0)}add(e){this._actual.set(e,1)}has(e){return this._actual.get(e)===1}clear(){return this._actual.clear()}}class Mmt extends l2{constructor(e){super(0);for(let t=0,i=e.length;t(e.hasOwnProperty(t)||(e[t]=n(t)),e[t])}const xc=Zmt(n=>new Mmt(n));class wi{static _createWord(e,t,i,r,o){return{start:r,end:o,wordType:t,nextCharClass:i}}static _findPreviousWordOnLine(e,t,i){const r=t.getLineContent(i.lineNumber);return this._doFindPreviousWordOnLine(r,e,i)}static _doFindPreviousWordOnLine(e,t,i){let r=0;for(let o=i.column-2;o>=0;o--){const s=e.charCodeAt(o),a=t.get(s);if(a===0){if(r===2)return this._createWord(e,r,a,o+1,this._findEndOfWord(e,t,r,o+1));r=1}else if(a===2){if(r===1)return this._createWord(e,r,a,o+1,this._findEndOfWord(e,t,r,o+1));r=2}else if(a===1&&r!==0)return this._createWord(e,r,a,o+1,this._findEndOfWord(e,t,r,o+1))}return r!==0?this._createWord(e,r,1,0,this._findEndOfWord(e,t,r,0)):null}static _findEndOfWord(e,t,i,r){const o=e.length;for(let s=r;s=0;o--){const s=e.charCodeAt(o),a=t.get(s);if(a===1||i===1&&a===2||i===2&&a===0)return o+1}return 0}static moveWordLeft(e,t,i,r){let o=i.lineNumber,s=i.column;s===1&&o>1&&(o=o-1,s=t.getLineMaxColumn(o));let a=wi._findPreviousWordOnLine(e,t,new ve(o,s));if(r===0)return new ve(o,a?a.start+1:1);if(r===1)return a&&a.wordType===2&&a.end-a.start===1&&a.nextCharClass===0&&(a=wi._findPreviousWordOnLine(e,t,new ve(o,a.start+1))),new ve(o,a?a.start+1:1);if(r===3){for(;a&&a.wordType===2;)a=wi._findPreviousWordOnLine(e,t,new ve(o,a.start+1));return new ve(o,a?a.start+1:1)}return a&&s<=a.end+1&&(a=wi._findPreviousWordOnLine(e,t,new ve(o,a.start+1))),new ve(o,a?a.end+1:1)}static _moveWordPartLeft(e,t){const i=t.lineNumber,r=e.getLineMaxColumn(i);if(t.column===1)return i>1?new ve(i-1,e.getLineMaxColumn(i-1)):t;const o=e.getLineContent(i);for(let s=t.column-1;s>1;s--){const a=o.charCodeAt(s-2),l=o.charCodeAt(s-1);if(a===95&&l!==95)return new ve(i,s);if(a===45&&l!==45)return new ve(i,s);if((vb(a)||h5(a))&&Tg(l))return new ve(i,s);if(Tg(a)&&Tg(l)&&s+1=l.start+1&&(l=wi._findNextWordOnLine(e,t,new ve(o,l.end+1))),l?s=l.start+1:s=t.getLineMaxColumn(o);return new ve(o,s)}static _moveWordPartRight(e,t){const i=t.lineNumber,r=e.getLineMaxColumn(i);if(t.column===r)return i1?u=1:(l--,u=r.getLineMaxColumn(l)):(c&&u<=c.end+1&&(c=wi._findPreviousWordOnLine(i,r,new ve(l,c.start+1))),c?u=c.end+1:u>1?u=1:(l--,u=r.getLineMaxColumn(l))),new K(l,u,a.lineNumber,a.column)}static deleteInsideWord(e,t,i){if(!i.isEmpty())return i;const r=new ve(i.positionLineNumber,i.positionColumn),o=this._deleteInsideWordWhitespace(t,r);return o||this._deleteInsideWordDetermineDeleteRange(e,t,r)}static _charAtIsWhitespace(e,t){const i=e.charCodeAt(t);return i===32||i===9}static _deleteInsideWordWhitespace(e,t){const i=e.getLineContent(t.lineNumber),r=i.length;if(r===0)return null;let o=Math.max(t.column-2,0);if(!this._charAtIsWhitespace(i,o))return null;let s=Math.min(t.column-1,r-1);if(!this._charAtIsWhitespace(i,s))return null;for(;o>0&&this._charAtIsWhitespace(i,o-1);)o--;for(;s+11?new K(i.lineNumber-1,t.getLineMaxColumn(i.lineNumber-1),i.lineNumber,1):i.lineNumberd.start+1<=i.column&&i.column<=d.end+1,a=(d,h)=>(d=Math.min(d,i.column),h=Math.max(h,i.column),new K(i.lineNumber,d,i.lineNumber,h)),l=d=>{let h=d.start+1,g=d.end+1,m=!1;for(;g-11&&this._charAtIsWhitespace(r,h-2);)h--;return a(h,g)},u=wi._findPreviousWordOnLine(e,t,i);if(u&&s(u))return l(u);const c=wi._findNextWordOnLine(e,t,i);return c&&s(c)?l(c):u&&c?a(u.end+1,c.start+1):u?a(u.start+1,u.end+1):c?a(c.start+1,c.end+1):a(1,o+1)}static _deleteWordPartLeft(e,t){if(!t.isEmpty())return t;const i=t.getPosition(),r=wi._moveWordPartLeft(e,i);return new K(i.lineNumber,i.column,r.lineNumber,r.column)}static _findFirstNonWhitespaceChar(e,t){const i=e.length;for(let r=t;r=h.start+1&&(h=wi._findNextWordOnLine(i,r,new ve(l,h.end+1))),h?u=h.start+1:u!!e)}class _s{static addCursorDown(e,t,i){const r=[];let o=0;for(let s=0,a=t.length;su&&(c=u,d=e.model.getLineMaxColumn(c)),li.fromModelState(new Fs(new K(s.lineNumber,1,c,d),2,0,new ve(c,d),0))}const l=t.modelState.selectionStart.getStartPosition().lineNumber;if(s.lineNumberl){const u=e.getLineCount();let c=a.lineNumber+1,d=1;return c>u&&(c=u,d=e.getLineMaxColumn(c)),li.fromViewState(t.viewState.move(!0,c,d,0))}else{const u=t.modelState.selectionStart.getEndPosition();return li.fromModelState(t.modelState.move(!0,u.lineNumber,u.column,0))}}static word(e,t,i,r){const o=e.model.validatePosition(r);return li.fromModelState(wi.word(e.cursorConfig,e.model,t.modelState,i,o))}static cancelSelection(e,t){if(!t.modelState.hasSelection())return new li(t.modelState,t.viewState);const i=t.viewState.position.lineNumber,r=t.viewState.position.column;return li.fromViewState(new Fs(new K(i,r,i,r),0,0,new ve(i,r),0))}static moveTo(e,t,i,r,o){if(i){if(t.modelState.selectionStartKind===1)return this.word(e,t,i,r);if(t.modelState.selectionStartKind===2)return this.line(e,t,i,r,o)}const s=e.model.validatePosition(r),a=o?e.coordinatesConverter.validateViewPosition(new ve(o.lineNumber,o.column),s):e.coordinatesConverter.convertModelPositionToViewPosition(s);return li.fromViewState(t.viewState.move(i,a.lineNumber,a.column,0))}static simpleMove(e,t,i,r,o,s){switch(i){case 0:return s===4?this._moveHalfLineLeft(e,t,r):this._moveLeft(e,t,r,o);case 1:return s===4?this._moveHalfLineRight(e,t,r):this._moveRight(e,t,r,o);case 2:return s===2?this._moveUpByViewLines(e,t,r,o):this._moveUpByModelLines(e,t,r,o);case 3:return s===2?this._moveDownByViewLines(e,t,r,o):this._moveDownByModelLines(e,t,r,o);case 4:return s===2?t.map(a=>li.fromViewState(_i.moveToPrevBlankLine(e.cursorConfig,e,a.viewState,r))):t.map(a=>li.fromModelState(_i.moveToPrevBlankLine(e.cursorConfig,e.model,a.modelState,r)));case 5:return s===2?t.map(a=>li.fromViewState(_i.moveToNextBlankLine(e.cursorConfig,e,a.viewState,r))):t.map(a=>li.fromModelState(_i.moveToNextBlankLine(e.cursorConfig,e.model,a.modelState,r)));case 6:return this._moveToViewMinColumn(e,t,r);case 7:return this._moveToViewFirstNonWhitespaceColumn(e,t,r);case 8:return this._moveToViewCenterColumn(e,t,r);case 9:return this._moveToViewMaxColumn(e,t,r);case 10:return this._moveToViewLastNonWhitespaceColumn(e,t,r);default:return null}}static viewportMove(e,t,i,r,o){const s=e.getCompletelyVisibleViewRange(),a=e.coordinatesConverter.convertViewRangeToModelRange(s);switch(i){case 11:{const l=this._firstLineNumberInRange(e.model,a,o),u=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],r,l,u)]}case 13:{const l=this._lastLineNumberInRange(e.model,a,o),u=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],r,l,u)]}case 12:{const l=Math.round((a.startLineNumber+a.endLineNumber)/2),u=e.model.getLineFirstNonWhitespaceColumn(l);return[this._moveToModelPosition(e,t[0],r,l,u)]}case 14:{const l=[];for(let u=0,c=t.length;ui.endLineNumber-1?s=i.endLineNumber-1:oli.fromViewState(_i.moveLeft(e.cursorConfig,e,o.viewState,i,r)))}static _moveHalfLineLeft(e,t,i){const r=[];for(let o=0,s=t.length;oli.fromViewState(_i.moveRight(e.cursorConfig,e,o.viewState,i,r)))}static _moveHalfLineRight(e,t,i){const r=[];for(let o=0,s=t.length;o/?";function Emt(n=""){let e="(-?\\d*\\.\\d\\w*)|([^";for(const t of I0e)n.indexOf(t)>=0||(e+="\\"+t);return e+="\\s]+)",new RegExp(e,"g")}const sH=Emt();function aH(n){let e=sH;if(n&&n instanceof RegExp)if(n.global)e=n;else{let t="g";n.ignoreCase&&(t+="i"),n.multiline&&(t+="m"),n.unicode&&(t+="u"),e=new RegExp(n.source,t)}return e.lastIndex=0,e}const w0e=new Ua;w0e.unshift({maxLen:1e3,windowSize:15,timeBudget:150});function BF(n,e,t,i,r){if(e=aH(e),r||(r=qn.first(w0e)),t.length>r.maxLen){let u=n-r.maxLen/2;return u<0?u=0:i+=u,t=t.substring(u,n+r.maxLen/2),BF(n,e,t,i,r)}const o=Date.now(),s=n-1-i;let a=-1,l=null;for(let u=1;!(Date.now()-o>=r.timeBudget);u++){const c=s-r.windowSize*u;e.lastIndex=Math.max(0,c);const d=Wmt(e,t,s,a);if(!d&&l||(l=d,c<=0))break;a=c}if(l){const u={word:l[0],startColumn:i+1+l.index,endColumn:i+1+l.index+l[0].length};return e.lastIndex=0,u}return null}function Wmt(n,e,t,i){let r;for(;r=n.exec(e);){const o=r.index||0;if(o<=t&&n.lastIndex>=t)return r;if(i>0&&o>i)return null}return null}class u2{constructor(e){if(e.autoClosingPairs?this._autoClosingPairs=e.autoClosingPairs.map(t=>new oH(t)):e.brackets?this._autoClosingPairs=e.brackets.map(t=>new oH({open:t[0],close:t[1]})):this._autoClosingPairs=[],e.__electricCharacterSupport&&e.__electricCharacterSupport.docComment){const t=e.__electricCharacterSupport.docComment;this._autoClosingPairs.push(new oH({open:t.open,close:t.close||""}))}this._autoCloseBeforeForQuotes=typeof e.autoCloseBefore=="string"?e.autoCloseBefore:u2.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES,this._autoCloseBeforeForBrackets=typeof e.autoCloseBefore=="string"?e.autoCloseBefore:u2.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS,this._surroundingPairs=e.surroundingPairs||this._autoClosingPairs}getAutoClosingPairs(){return this._autoClosingPairs}getAutoCloseBeforeSet(e){return e?this._autoCloseBeforeForQuotes:this._autoCloseBeforeForBrackets}getSurroundingPairs(){return this._surroundingPairs}}u2.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_QUOTES=`;:.,=}])> + `,u2.DEFAULT_AUTOCLOSE_BEFORE_LANGUAGE_DEFINED_BRACKETS=`'"\`;:.,=}])> + `;function Lc(n,e=0){return n[n.length-(1+e)]}function Rmt(n){if(n.length===0)throw new Error("Invalid tail call");return[n.slice(0,n.length-1),n[n.length-1]]}function Ar(n,e,t=(i,r)=>i===r){if(n===e)return!0;if(!n||!e||n.length!==e.length)return!1;for(let i=0,r=n.length;it(n[i],e))}function Vmt(n,e){let t=0,i=n-1;for(;t<=i;){const r=(t+i)/2|0,o=e(r);if(o<0)t=r+1;else if(o>0)i=r-1;else return r}return-(t+1)}function lH(n,e,t){if(n=n|0,n>=e.length)throw new TypeError("invalid index");const i=e[Math.floor(e.length*Math.random())],r=[],o=[],s=[];for(const a of e){const l=t(a,i);l<0?r.push(a):l>0?o.push(a):s.push(a)}return n!!e)}function L0e(n){let e=0;for(let t=0;t0}function Sf(n,e=t=>t){const t=new Set;return n.filter(i=>{const r=e(i);return t.has(r)?!1:(t.add(r),!0)})}function cH(n,e){return n.length>0?n[0]:e}function $a(n,e){let t=typeof e=="number"?n:0;typeof e=="number"?t=n:(t=0,e=n);const i=[];if(t<=e)for(let r=t;re;r--)i.push(r);return i}function eT(n,e,t){const i=n.slice(0,e),r=n.slice(e);return i.concat(t,r)}function dH(n,e){const t=n.indexOf(e);t>-1&&(n.splice(t,1),n.unshift(e))}function tT(n,e){const t=n.indexOf(e);t>-1&&(n.splice(t,1),n.push(e))}function hH(n,e){for(const t of e)n.push(t)}function gH(n){return Array.isArray(n)?n:[n]}function Pmt(n,e,t){const i=D0e(n,e),r=n.length,o=t.length;n.length=r+o;for(let s=r-1;s>=i;s--)n[s+o]=n[s];for(let s=0;s0}n.isGreaterThan=i;function r(o){return o===0}n.isNeitherLessOrGreaterThan=r,n.greaterThan=1,n.lessThan=-1,n.neitherLessOrGreaterThan=0})(YF||(YF={}));function Fc(n,e){return(t,i)=>e(n(t),n(i))}function Omt(...n){return(e,t)=>{for(const i of n){const r=i(e,t);if(!YF.isNeitherLessOrGreaterThan(r))return r}return YF.neitherLessOrGreaterThan}}const xf=(n,e)=>n-e,Bmt=(n,e)=>xf(n?1:0,e?1:0);function A0e(n){return(e,t)=>-n(e,t)}class Lf{constructor(e){this.items=e,this.firstIdx=0,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(e){let t=this.firstIdx;for(;t=0&&e(this.items[t]);)t--;const i=t===this.lastIdx?null:this.items.slice(t+1,this.lastIdx+1);return this.lastIdx=t,i}peek(){if(this.length!==0)return this.items[this.firstIdx]}dequeue(){const e=this.items[this.firstIdx];return this.firstIdx++,e}takeCount(e){const t=this.items.slice(this.firstIdx,this.firstIdx+e);return this.firstIdx+=e,t}}class Vg{constructor(e){this.iterate=e}toArray(){const e=[];return this.iterate(t=>(e.push(t),!0)),e}filter(e){return new Vg(t=>this.iterate(i=>e(i)?t(i):!0))}map(e){return new Vg(t=>this.iterate(i=>t(e(i))))}findLast(e){let t;return this.iterate(i=>(e(i)&&(t=i),!0)),t}findLastMaxBy(e){let t,i=!0;return this.iterate(r=>((i||YF.isGreaterThan(e(r,t)))&&(i=!1,t=r),!0)),t}}Vg.empty=new Vg(n=>{});const N0e=typeof Buffer<"u";let mH;class nT{static wrap(e){return N0e&&!Buffer.isBuffer(e)&&(e=Buffer.from(e.buffer,e.byteOffset,e.byteLength)),new nT(e)}constructor(e){this.buffer=e,this.byteLength=this.buffer.byteLength}toString(){return N0e?this.buffer.toString():(mH||(mH=new TextDecoder),mH.decode(this.buffer))}}function zmt(n,e){return n[e+0]<<0>>>0|n[e+1]<<8>>>0}function Ymt(n,e,t){n[t+0]=e&255,e=e>>>8,n[t+1]=e&255}function vh(n,e){return n[e]*2**24+n[e+1]*2**16+n[e+2]*2**8+n[e+3]}function yh(n,e,t){n[t+3]=e,e=e>>>8,n[t+2]=e,e=e>>>8,n[t+1]=e,e=e>>>8,n[t]=e}function k0e(n,e){return n[e]}function M0e(n,e,t){n[t]=e}let fH;function Z0e(){return fH||(fH=new TextDecoder("UTF-16LE")),fH}let pH;function Hmt(){return pH||(pH=new TextDecoder("UTF-16BE")),pH}let bH;function T0e(){return bH||(bH=Ype()?Z0e():Hmt()),bH}function Umt(n,e,t){const i=new Uint16Array(n.buffer,e,t);return t>0&&(i[0]===65279||i[0]===65534)?Jmt(n,e,t):Z0e().decode(i)}function Jmt(n,e,t){const i=[];let r=0;for(let o=0;o=this._capacity){this._flushBuffer(),this._completedStrings[this._completedStrings.length]=e;return}for(let i=0;i[s[0].toLowerCase(),s[1].toLowerCase()]);const t=[];for(let s=0;s{const[l,u]=s,[c,d]=a;return l===c||l===d||u===c||u===d},r=(s,a)=>{const l=Math.min(s,a),u=Math.max(s,a);for(let c=0;c0&&o.push({open:a,close:l})}return o}class jmt{constructor(e,t){this._richEditBracketsBrand=void 0;const i=Kmt(t);this.brackets=i.map((r,o)=>new iT(e,o,r.open,r.close,Qmt(r.open,r.close,i,o),$mt(r.open,r.close,i,o))),this.forwardRegex=qmt(this.brackets),this.reversedRegex=eft(this.brackets),this.textIsBracket={},this.textIsOpenBracket={},this.maxBracketLength=0;for(const r of this.brackets){for(const o of r.open)this.textIsBracket[o]=r,this.textIsOpenBracket[o]=!0,this.maxBracketLength=Math.max(this.maxBracketLength,o.length);for(const o of r.close)this.textIsBracket[o]=r,this.textIsOpenBracket[o]=!1,this.maxBracketLength=Math.max(this.maxBracketLength,o.length)}}}function E0e(n,e,t,i){for(let r=0,o=e.length;r=0&&i.push(a);for(const a of s.close)a.indexOf(n)>=0&&i.push(a)}}function W0e(n,e){return n.length-e.length}function rT(n){if(n.length<=1)return n;const e=[],t=new Set;for(const i of n)t.has(i)||(e.push(i),t.add(i));return e}function Qmt(n,e,t,i){let r=[];r=r.concat(n),r=r.concat(e);for(let o=0,s=r.length;o=0;s--)r[o++]=i.charCodeAt(s);return T0e().decode(r)}let e=null,t=null;return function(r){return e!==r&&(e=r,t=n(e)),t}}();class pd{static _findPrevBracketInText(e,t,i,r){const o=i.match(e);if(!o)return null;const s=i.length-(o.index||0),a=o[0].length,l=r+s;return new K(t,l-a+1,t,l+1)}static findPrevBracketInRange(e,t,i,r,o){const a=CH(i).substring(i.length-o,i.length-r);return this._findPrevBracketInText(e,t,a,r)}static findNextBracketInText(e,t,i,r){const o=i.match(e);if(!o)return null;const s=o.index||0,a=o[0].length;if(a===0)return null;const l=r+s;return new K(t,l+1,t,l+1+a)}static findNextBracketInRange(e,t,i,r,o){const s=i.substring(r,o);return this.findNextBracketInText(e,t,s,r)}}class nft{constructor(e){this._richEditBrackets=e}getElectricCharacters(){const e=[];if(this._richEditBrackets)for(const t of this._richEditBrackets.brackets)for(const i of t.close){const r=i.charAt(i.length-1);e.push(r)}return Sf(e)}onElectricCharacter(e,t,i){if(!this._richEditBrackets||this._richEditBrackets.brackets.length===0)return null;const r=t.findTokenIndexAtOffset(i-1);if(Rg(t.getStandardTokenType(r)))return null;const o=this._richEditBrackets.reversedRegex,s=t.getLineContent().substring(0,i-1)+e,a=pd.findPrevBracketInRange(o,1,s,0,s.length);if(!a)return null;const l=s.substring(a.startColumn-1,a.endColumn-1).toLowerCase();if(this._richEditBrackets.textIsOpenBracket[l])return null;const c=t.getActualLineContentBefore(a.startColumn-1);return/^\s*$/.test(c)?{matchOpenBracket:l}:null}}function sT(n){return n.global&&(n.lastIndex=0),!0}class ift{constructor(e){this._indentationRules=e}shouldIncrease(e){return!!(this._indentationRules&&this._indentationRules.increaseIndentPattern&&sT(this._indentationRules.increaseIndentPattern)&&this._indentationRules.increaseIndentPattern.test(e))}shouldDecrease(e){return!!(this._indentationRules&&this._indentationRules.decreaseIndentPattern&&sT(this._indentationRules.decreaseIndentPattern)&&this._indentationRules.decreaseIndentPattern.test(e))}shouldIndentNextLine(e){return!!(this._indentationRules&&this._indentationRules.indentNextLinePattern&&sT(this._indentationRules.indentNextLinePattern)&&this._indentationRules.indentNextLinePattern.test(e))}shouldIgnore(e){return!!(this._indentationRules&&this._indentationRules.unIndentedLinePattern&&sT(this._indentationRules.unIndentedLinePattern)&&this._indentationRules.unIndentedLinePattern.test(e))}getIndentMetadata(e){let t=0;return this.shouldIncrease(e)&&(t+=1),this.shouldDecrease(e)&&(t+=2),this.shouldIndentNextLine(e)&&(t+=4),this.shouldIgnore(e)&&(t+=8),t}}class d2{constructor(e){e=e||{},e.brackets=e.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=[],e.brackets.forEach(t=>{const i=d2._createOpenBracketRegExp(t[0]),r=d2._createCloseBracketRegExp(t[1]);i&&r&&this._brackets.push({open:t[0],openRegExp:i,close:t[1],closeRegExp:r})}),this._regExpRules=e.onEnterRules||[]}onEnter(e,t,i,r){if(e>=3)for(let o=0,s=this._regExpRules.length;ou.reg?(u.reg.lastIndex=0,u.reg.test(u.text)):!0))return a.action}if(e>=2&&i.length>0&&r.length>0)for(let o=0,s=this._brackets.length;o=2&&i.length>0){for(let o=0,s=this._brackets.length;o"u"?t:o}function oft(n){return n.replace(/[\[\]]/g,"")}const Cr=Un("languageService");class Xg{constructor(e,t=[],i=!1){this.ctor=e,this.staticArguments=t,this.supportsDelayedInstantiation=i}}const X0e=[];function ti(n,e,t){e instanceof Xg||(e=new Xg(e,[],!!t)),X0e.push([n,e])}function P0e(){return X0e}const Xr=Object.freeze({text:"text/plain",binary:"application/octet-stream",unknown:"application/unknown",markdown:"text/markdown",latex:"text/latex",uriList:"text/uri-list"}),aT={JSONContribution:"base.contributions.json"};function sft(n){return n.length>0&&n.charAt(n.length-1)==="#"?n.substring(0,n.length-1):n}class aft{constructor(){this._onDidChangeSchema=new be,this.schemasById={}}registerSchema(e,t){this.schemasById[sft(e)]=t,this._onDidChangeSchema.fire(e)}notifySchemaChanged(e){this._onDidChangeSchema.fire(e)}}const lft=new aft;xo.add(aT.JSONContribution,lft);const Ih={Configuration:"base.contributions.configuration"},HF="vscode://schemas/settings/resourceLanguage",O0e=xo.as(aT.JSONContribution);class uft{constructor(){this.overrideIdentifiers=new Set,this._onDidSchemaChange=new be,this._onDidUpdateConfiguration=new be,this.configurationDefaultsOverrides=new Map,this.defaultLanguageConfigurationOverridesNode={id:"defaultOverrides",title:x("defaultLanguageConfigurationOverrides.title","Default Language Configuration Overrides"),properties:{}},this.configurationContributors=[this.defaultLanguageConfigurationOverridesNode],this.resourceLanguageSettingsSchema={properties:{},patternProperties:{},additionalProperties:!0,allowTrailingCommas:!0,allowComments:!0},this.configurationProperties={},this.policyConfigurations=new Map,this.excludedConfigurationProperties={},O0e.registerSchema(HF,this.resourceLanguageSettingsSchema),this.registerOverridePropertyPatternKey()}registerConfiguration(e,t=!0){this.registerConfigurations([e],t)}registerConfigurations(e,t=!0){const i=new Set;this.doRegisterConfigurations(e,t,i),O0e.registerSchema(HF,this.resourceLanguageSettingsSchema),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:i})}registerDefaultConfigurations(e){const t=new Set;this.doRegisterDefaultConfigurations(e,t),this._onDidSchemaChange.fire(),this._onDidUpdateConfiguration.fire({properties:t,defaultsOverrides:!0})}doRegisterDefaultConfigurations(e,t){var i;const r=[];for(const{overrides:o,source:s}of e)for(const a in o)if(t.add(a),kb.test(a)){const l=this.configurationDefaultsOverrides.get(a),u=(i=l==null?void 0:l.valuesSources)!==null&&i!==void 0?i:new Map;if(s)for(const g of Object.keys(o[a]))u.set(g,s);const c={...(l==null?void 0:l.value)||{},...o[a]};this.configurationDefaultsOverrides.set(a,{source:s,value:c,valuesSources:u});const d=oft(a),h={type:"object",default:c,description:x("defaultLanguageConfiguration.description","Configure settings to be overridden for the {0} language.",d),$ref:HF,defaultDefaultValue:c,source:Ll(s)?void 0:s,defaultValueSource:s};r.push(...lT(a)),this.configurationProperties[a]=h,this.defaultLanguageConfigurationOverridesNode.properties[a]=h}else{this.configurationDefaultsOverrides.set(a,{value:o[a],source:s});const l=this.configurationProperties[a];l&&(this.updatePropertyDefaultValue(a,l),this.updateSchema(a,l))}this.doRegisterOverrideIdentifiers(r)}registerOverrideIdentifiers(e){this.doRegisterOverrideIdentifiers(e),this._onDidSchemaChange.fire()}doRegisterOverrideIdentifiers(e){for(const t of e)this.overrideIdentifiers.add(t);this.updateOverridePropertyPatternKey()}doRegisterConfigurations(e,t,i){e.forEach(r=>{this.validateAndRegisterProperties(r,t,r.extensionInfo,r.restrictedProperties,void 0,i),this.configurationContributors.push(r),this.registerJSONConfiguration(r)})}validateAndRegisterProperties(e,t=!0,i,r,o=3,s){var a;o=Mu(e.scope)?o:e.scope;const l=e.properties;if(l)for(const c in l){const d=l[c];if(t&&hft(c,d)){delete l[c];continue}if(d.source=i,d.defaultDefaultValue=l[c].default,this.updatePropertyDefaultValue(c,d),kb.test(c)?d.scope=void 0:(d.scope=Mu(d.scope)?o:d.scope,d.restricted=Mu(d.restricted)?!!(r!=null&&r.includes(c)):d.restricted),l[c].hasOwnProperty("included")&&!l[c].included){this.excludedConfigurationProperties[c]=l[c],delete l[c];continue}else this.configurationProperties[c]=l[c],!((a=l[c].policy)===null||a===void 0)&&a.name&&this.policyConfigurations.set(l[c].policy.name,c);!l[c].deprecationMessage&&l[c].markdownDeprecationMessage&&(l[c].deprecationMessage=l[c].markdownDeprecationMessage),s.add(c)}const u=e.allOf;if(u)for(const c of u)this.validateAndRegisterProperties(c,t,i,r,o,s)}getConfigurationProperties(){return this.configurationProperties}getPolicyConfigurations(){return this.policyConfigurations}registerJSONConfiguration(e){const t=i=>{const r=i.properties;if(r)for(const s in r)this.updateSchema(s,r[s]);const o=i.allOf;o==null||o.forEach(t)};t(e)}updateSchema(e,t){switch(t.scope){case 1:break;case 2:break;case 6:break;case 3:break;case 4:break;case 5:this.resourceLanguageSettingsSchema.properties[e]=t;break}}updateOverridePropertyPatternKey(){for(const e of this.overrideIdentifiers.values()){const t=`[${e}]`,i={type:"object",description:x("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),errorMessage:x("overrideSettings.errorMessage","This setting does not support per-language configuration."),$ref:HF};this.updatePropertyDefaultValue(t,i)}}registerOverridePropertyPatternKey(){x("overrideSettings.defaultDescription","Configure editor settings to be overridden for a language."),x("overrideSettings.errorMessage","This setting does not support per-language configuration."),this._onDidSchemaChange.fire()}updatePropertyDefaultValue(e,t){const i=this.configurationDefaultsOverrides.get(e);let r=i==null?void 0:i.value,o=i==null?void 0:i.source;ql(r)&&(r=t.defaultDefaultValue,o=void 0),ql(r)&&(r=dft(t.type)),t.default=r,t.defaultValueSource=o}}const B0e="\\[([^\\]]+)\\]",z0e=new RegExp(B0e,"g"),cft=`^(${B0e})+$`,kb=new RegExp(cft);function lT(n){const e=[];if(kb.test(n)){let t=z0e.exec(n);for(;t!=null&&t.length;){const i=t[1].trim();i&&e.push(i),t=z0e.exec(n)}}return Sf(e)}function dft(n){switch(Array.isArray(n)?n[0]:n){case"boolean":return!1;case"integer":case"number":return 0;case"string":return"";case"array":return[];case"object":return{};default:return null}}const uT=new uft;xo.add(Ih.Configuration,uT);function hft(n,e){var t,i,r,o;return n.trim()?kb.test(n)?x("config.property.languageDefault","Cannot register '{0}'. This matches property pattern '\\\\[.*\\\\]$' for describing language specific editor settings. Use 'configurationDefaults' contribution.",n):uT.getConfigurationProperties()[n]!==void 0?x("config.property.duplicate","Cannot register '{0}'. This property is already registered.",n):!((t=e.policy)===null||t===void 0)&&t.name&&uT.getPolicyConfigurations().get((i=e.policy)===null||i===void 0?void 0:i.name)!==void 0?x("config.policy.duplicate","Cannot register '{0}'. The associated policy {1} is already registered with {2}.",n,(r=e.policy)===null||r===void 0?void 0:r.name,uT.getPolicyConfigurations().get((o=e.policy)===null||o===void 0?void 0:o.name)):null:x("config.property.empty","Cannot register an empty property")}const gft={ModesRegistry:"editor.modesRegistry"};class mft{constructor(){this._onDidChangeLanguages=new be,this.onDidChangeLanguages=this._onDidChangeLanguages.event,this._languages=[]}registerLanguage(e){return this._languages.push(e),this._onDidChangeLanguages.fire(void 0),{dispose:()=>{for(let t=0,i=this._languages.length;t{const l=new Set;return{info:new pft(this,a,l),closing:l}}),o=new Cbe(a=>{const l=new Set,u=new Set;return{info:new bft(this,a,l,u),opening:l,openingColorized:u}});for(const[a,l]of i){const u=r.get(a),c=o.get(l);u.closing.add(c.info),c.opening.add(u.info)}const s=t.colorizedBracketPairs?Y0e(t.colorizedBracketPairs):i.filter(a=>!(a[0]==="<"&&a[1]===">"));for(const[a,l]of s){const u=r.get(a),c=o.get(l);u.closing.add(c.info),c.openingColorized.add(u.info),c.opening.add(u.info)}this._openingBrackets=new Map([...r.cachedValues].map(([a,l])=>[a,l.info])),this._closingBrackets=new Map([...o.cachedValues].map(([a,l])=>[a,l.info]))}get openingBrackets(){return[...this._openingBrackets.values()]}get closingBrackets(){return[...this._closingBrackets.values()]}getOpeningBracketInfo(e){return this._openingBrackets.get(e)}getClosingBracketInfo(e){return this._closingBrackets.get(e)}getBracketInfo(e){return this.getOpeningBracketInfo(e)||this.getClosingBracketInfo(e)}}function Y0e(n){return n.filter(([e,t])=>e!==""&&t!=="")}class H0e{constructor(e,t){this.config=e,this.bracketText=t}get languageId(){return this.config.languageId}}class pft extends H0e{constructor(e,t,i){super(e,t),this.openedBrackets=i,this.isOpeningBracket=!0}}class bft extends H0e{constructor(e,t,i,r){super(e,t),this.openingBrackets=i,this.openingColorizedBrackets=r,this.isOpeningBracket=!1}closes(e){return e.config!==this.config?!1:this.openingBrackets.has(e)}closesColorized(e){return e.config!==this.config?!1:this.openingColorizedBrackets.has(e)}getOpeningBrackets(){return[...this.openingBrackets]}}var Cft=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},U0e=function(n,e){return function(t,i){e(t,i,n)}};class yH{constructor(e){this.languageId=e}affects(e){return this.languageId?this.languageId===e:!0}}const $i=Un("languageConfigurationService");let IH=class extends De{constructor(e,t){super(),this.configurationService=e,this.languageService=t,this._registry=this._register(new wft),this.onDidChangeEmitter=this._register(new be),this.onDidChange=this.onDidChangeEmitter.event,this.configurations=new Map;const i=new Set(Object.values(wH));this._register(this.configurationService.onDidChangeConfiguration(r=>{const o=r.change.keys.some(a=>i.has(a)),s=r.change.overrides.filter(([a,l])=>l.some(u=>i.has(u))).map(([a])=>a);if(o)this.configurations.clear(),this.onDidChangeEmitter.fire(new yH(void 0));else for(const a of s)this.languageService.isRegisteredLanguageId(a)&&(this.configurations.delete(a),this.onDidChangeEmitter.fire(new yH(a)))})),this._register(this._registry.onDidChange(r=>{this.configurations.delete(r.languageId),this.onDidChangeEmitter.fire(new yH(r.languageId))}))}register(e,t,i){return this._registry.register(e,t,i)}getLanguageConfiguration(e){let t=this.configurations.get(e);return t||(t=vft(e,this._registry,this.configurationService,this.languageService),this.configurations.set(e,t)),t}};IH=Cft([U0e(0,Xn),U0e(1,Cr)],IH);function vft(n,e,t,i){let r=e.getLanguageConfiguration(n);if(!r){if(!i.isRegisteredLanguageId(n))return new m2(n,{});r=new m2(n,{})}const o=yft(r.languageId,t),s=j0e([r.underlyingConfig,o]);return new m2(r.languageId,s)}const wH={brackets:"editor.language.brackets",colorizedBracketPairs:"editor.language.colorizedBracketPairs"};function yft(n,e){const t=e.getValue(wH.brackets,{overrideIdentifier:n}),i=e.getValue(wH.colorizedBracketPairs,{overrideIdentifier:n});return{brackets:J0e(t),colorizedBracketPairs:J0e(i)}}function J0e(n){if(Array.isArray(n))return n.map(e=>{if(!(!Array.isArray(e)||e.length!==2))return[e[0],e[1]]}).filter(e=>!!e)}function K0e(n,e,t){const i=n.getLineContent(e);let r=Yi(i);return r.length>t-1&&(r=r.substring(0,t-1)),r}function g2(n,e,t){n.tokenization.forceTokenization(e);const i=n.tokenization.getLineTokens(e),r=typeof t>"u"?n.getLineMaxColumn(e)-1:t-1;return Y5(i,r)}class Ift{constructor(e){this.languageId=e,this._resolved=null,this._entries=[],this._order=0,this._resolved=null}register(e,t){const i=new Q0e(e,t,++this._order);return this._entries.push(i),this._resolved=null,en(()=>{for(let r=0;re.configuration)))}}function j0e(n){let e={comments:void 0,brackets:void 0,wordPattern:void 0,indentationRules:void 0,onEnterRules:void 0,autoClosingPairs:void 0,surroundingPairs:void 0,autoCloseBefore:void 0,folding:void 0,colorizedBracketPairs:void 0,__electricCharacterSupport:void 0};for(const t of n)e={comments:t.comments||e.comments,brackets:t.brackets||e.brackets,wordPattern:t.wordPattern||e.wordPattern,indentationRules:t.indentationRules||e.indentationRules,onEnterRules:t.onEnterRules||e.onEnterRules,autoClosingPairs:t.autoClosingPairs||e.autoClosingPairs,surroundingPairs:t.surroundingPairs||e.surroundingPairs,autoCloseBefore:t.autoCloseBefore||e.autoCloseBefore,folding:t.folding||e.folding,colorizedBracketPairs:t.colorizedBracketPairs||e.colorizedBracketPairs,__electricCharacterSupport:t.__electricCharacterSupport||e.__electricCharacterSupport};return e}class Q0e{constructor(e,t,i){this.configuration=e,this.priority=t,this.order=i}static cmp(e,t){return e.priority===t.priority?e.order-t.order:e.priority-t.priority}}class $0e{constructor(e){this.languageId=e}}class wft extends De{constructor(){super(),this._entries=new Map,this._onDidChange=this._register(new be),this.onDidChange=this._onDidChange.event,this._register(this.register(Ru,{brackets:[["(",")"],["[","]"],["{","}"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],colorizedBracketPairs:[],folding:{offSide:!0}},0))}register(e,t,i=0){let r=this._entries.get(e);r||(r=new Ift(e),this._entries.set(e,r));const o=r.register(t,i);return this._onDidChange.fire(new $0e(e)),en(()=>{o.dispose(),this._onDidChange.fire(new $0e(e))})}getLanguageConfiguration(e){const t=this._entries.get(e);return(t==null?void 0:t.getResolvedConfiguration())||null}}class m2{constructor(e,t){this.languageId=e,this.underlyingConfig=t,this._brackets=null,this._electricCharacter=null,this._onEnterSupport=this.underlyingConfig.brackets||this.underlyingConfig.indentationRules||this.underlyingConfig.onEnterRules?new d2(this.underlyingConfig):null,this.comments=m2._handleComments(this.underlyingConfig),this.characterPair=new u2(this.underlyingConfig),this.wordDefinition=this.underlyingConfig.wordPattern||sH,this.indentationRules=this.underlyingConfig.indentationRules,this.underlyingConfig.indentationRules?this.indentRulesSupport=new ift(this.underlyingConfig.indentationRules):this.indentRulesSupport=null,this.foldingRules=this.underlyingConfig.folding||{},this.bracketsNew=new fft(e,this.underlyingConfig)}getWordDefinition(){return aH(this.wordDefinition)}get brackets(){return!this._brackets&&this.underlyingConfig.brackets&&(this._brackets=new jmt(this.languageId,this.underlyingConfig.brackets)),this._brackets}get electricCharacter(){return this._electricCharacter||(this._electricCharacter=new nft(this.brackets)),this._electricCharacter}onEnter(e,t,i,r){return this._onEnterSupport?this._onEnterSupport.onEnter(e,t,i,r):null}getAutoClosingPairs(){return new Tmt(this.characterPair.getAutoClosingPairs())}getAutoCloseBeforeSet(e){return this.characterPair.getAutoCloseBeforeSet(e)}getSurroundingPairs(){return this.characterPair.getSurroundingPairs()}static _handleComments(e){const t=e.comments;if(!t)return null;const i={};if(t.lineComment&&(i.lineCommentToken=t.lineComment),t.blockComment){const[r,o]=t.blockComment;i.blockCommentStartToken=r,i.blockCommentEndToken=o}return i}}ti($i,IH,1);function f2(n,e,t,i){const r=g2(e,t.startLineNumber,t.startColumn),o=i.getLanguageConfiguration(r.languageId);if(!o)return null;const s=r.getLineContent(),a=s.substr(0,t.startColumn-1-r.firstCharOffset);let l;t.isEmpty()?l=s.substr(t.startColumn-1-r.firstCharOffset):l=g2(e,t.endLineNumber,t.endColumn).getLineContent().substr(t.endColumn-1-r.firstCharOffset);let u="";if(t.startLineNumber>1&&r.firstCharOffset===0){const f=g2(e,t.startLineNumber-1);f.languageId===r.languageId&&(u=f.getLineContent())}const c=o.onEnter(n,u,a,l);if(!c)return null;const d=c.indentAction;let h=c.appendText;const g=c.removeText||0;h?d===Lo.Indent&&(h=" "+h):d===Lo.Indent||d===Lo.IndentOutdent?h=" ":h="";let m=K0e(e,t.startLineNumber,t.startColumn);return g&&(m=m.substring(0,m.length-g)),{indentAction:d,appendText:h,removeText:g,indentation:m}}var Sft=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},xft=function(n,e){return function(t,i){e(t,i,n)}},cT;const SH=Object.create(null);function RC(n,e){if(e<=0)return"";SH[n]||(SH[n]=["",n]);const t=SH[n];for(let i=t.length;i<=e;i++)t[i]=t[i-1]+n;return t[e]}let _c=cT=class{static unshiftIndent(e,t,i,r,o){const s=Yo.visibleColumnFromColumn(e,t,i);if(o){const a=RC(" ",r),u=Yo.prevIndentTabStop(s,r)/r;return RC(a,u)}else{const a=" ",u=Yo.prevRenderTabStop(s,i)/i;return RC(a,u)}}static shiftIndent(e,t,i,r,o){const s=Yo.visibleColumnFromColumn(e,t,i);if(o){const a=RC(" ",r),u=Yo.nextIndentTabStop(s,r)/r;return RC(a,u)}else{const a=" ",u=Yo.nextRenderTabStop(s,i)/i;return RC(a,u)}}constructor(e,t,i){this._languageConfigurationService=i,this._opts=t,this._selection=e,this._selectionId=null,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}_addEditOperation(e,t,i){this._useLastEditRangeForCursorEndPosition?e.addTrackedEditOperation(t,i):e.addEditOperation(t,i)}getEditOperations(e,t){const i=this._selection.startLineNumber;let r=this._selection.endLineNumber;this._selection.endColumn===1&&i!==r&&(r=r-1);const{tabSize:o,indentSize:s,insertSpaces:a}=this._opts,l=i===r;if(this._opts.useTabStops){this._selection.isEmpty()&&/^\s*$/.test(e.getLineContent(i))&&(this._useLastEditRangeForCursorEndPosition=!0);let u=0,c=0;for(let d=i;d<=r;d++,u=c){c=0;const h=e.getLineContent(d);let g=Ia(h);if(this._opts.isUnshift&&(h.length===0||g===0)||!l&&!this._opts.isUnshift&&h.length===0)continue;if(g===-1&&(g=h.length),d>1&&Yo.visibleColumnFromColumn(h,g+1,o)%s!==0&&e.tokenization.isCheapToTokenize(d-1)){const b=f2(this._opts.autoIndent,e,new K(d-1,e.getLineMaxColumn(d-1),d-1,e.getLineMaxColumn(d-1)),this._languageConfigurationService);if(b){if(c=u,b.appendText)for(let C=0,v=b.appendText.length;C1){let r,o=-1;for(r=e-1;r>=1;r--){if(n.tokenization.getLanguageIdAtPosition(r,0)!==i)return o;const s=n.getLineContent(r);if(t.shouldIgnore(s)||/^\s+$/.test(s)||s===""){o=r;continue}return r}}return-1}function dT(n,e,t,i=!0,r){if(n<4)return null;const o=r.getLanguageConfiguration(e.tokenization.getLanguageId()).indentRulesSupport;if(!o)return null;if(t<=1)return{indentation:"",action:null};for(let l=t-1;l>0&&e.getLineContent(l)==="";l--)if(l===1)return{indentation:"",action:null};const s=_ft(e,t,o);if(s<0)return null;if(s<1)return{indentation:"",action:null};const a=e.getLineContent(s);if(o.shouldIncrease(a)||o.shouldIndentNextLine(a))return{indentation:Yi(a),action:Lo.Indent,line:s};if(o.shouldDecrease(a))return{indentation:Yi(a),action:null,line:s};{if(s===1)return{indentation:Yi(e.getLineContent(s)),action:null,line:s};const l=s-1,u=o.getIndentMetadata(e.getLineContent(l));if(!(u&3)&&u&4){let c=0;for(let d=l-1;d>0;d--)if(!o.shouldIndentNextLine(e.getLineContent(d))){c=d;break}return{indentation:Yi(e.getLineContent(c+1)),action:null,line:c+1}}if(i)return{indentation:Yi(e.getLineContent(s)),action:null,line:s};for(let c=s;c>0;c--){const d=e.getLineContent(c);if(o.shouldIncrease(d))return{indentation:Yi(d),action:Lo.Indent,line:c};if(o.shouldIndentNextLine(d)){let h=0;for(let g=c-1;g>0;g--)if(!o.shouldIndentNextLine(e.getLineContent(c))){h=g;break}return{indentation:Yi(e.getLineContent(h+1)),action:null,line:h+1}}else if(o.shouldDecrease(d))return{indentation:Yi(d),action:null,line:c}}return{indentation:Yi(e.getLineContent(1)),action:null,line:1}}}function UF(n,e,t,i,r,o){if(n<4)return null;const s=o.getLanguageConfiguration(t);if(!s)return null;const a=o.getLanguageConfiguration(t).indentRulesSupport;if(!a)return null;const l=dT(n,e,i,void 0,o),u=e.getLineContent(i);if(l){const c=l.line;if(c!==void 0){let d=!0;for(let h=c;h0&&o.getLanguageId(0)!==s.languageId?(l=!0,u=a.substr(0,t.startColumn-1-s.firstCharOffset)):u=o.getLineContent().substring(0,t.startColumn-1);let c;t.isEmpty()?c=a.substr(t.startColumn-1-s.firstCharOffset):c=g2(e,t.endLineNumber,t.endColumn).getLineContent().substr(t.endColumn-1-s.firstCharOffset);const d=r.getLanguageConfiguration(s.languageId).indentRulesSupport;if(!d)return null;const h=u,g=Yi(u),m={tokenization:{getLineTokens:v=>e.tokenization.getLineTokens(v),getLanguageId:()=>e.getLanguageId(),getLanguageIdAtPosition:(v,w)=>e.getLanguageIdAtPosition(v,w)},getLineContent:v=>v===t.startLineNumber?h:e.getLineContent(v)},f=Yi(o.getLineContent()),b=dT(n,m,t.startLineNumber+1,void 0,r);if(!b){const v=l?f:g;return{beforeEnter:v,afterEnter:v}}let C=l?f:b.indentation;return b.action===Lo.Indent&&(C=i.shiftIndent(C)),d.shouldDecrease(c)&&(C=i.unshiftIndent(C)),{beforeEnter:l?f:g,afterEnter:C}}function Aft(n,e,t,i,r,o){if(n<4)return null;const s=g2(e,t.startLineNumber,t.startColumn);if(s.firstCharOffset)return null;const a=o.getLanguageConfiguration(s.languageId).indentRulesSupport;if(!a)return null;const l=s.getLineContent(),u=l.substr(0,t.startColumn-1-s.firstCharOffset);let c;if(t.isEmpty()?c=l.substr(t.startColumn-1-s.firstCharOffset):c=g2(e,t.endLineNumber,t.endColumn).getLineContent().substr(t.endColumn-1-s.firstCharOffset),!a.shouldDecrease(u+c)&&a.shouldDecrease(u+i+c)){const d=dT(n,e,t.startLineNumber,!1,o);if(!d)return null;let h=d.indentation;return d.action!==Lo.Indent&&(h=r.unshiftIndent(h)),h}return null}function q0e(n,e,t){const i=t.getLanguageConfiguration(n.getLanguageId()).indentRulesSupport;return!i||e<1||e>n.getLineCount()?null:i.getIndentMetadata(n.getLineContent(e))}class Nr{static indent(e,t,i){if(t===null||i===null)return[];const r=[];for(let o=0,s=i.length;o1){let a;for(a=i-1;a>=1;a--){const c=t.getLineContent(a);if(mh(c)>=0)break}if(a<1)return null;const l=t.getLineMaxColumn(a),u=f2(e.autoIndent,t,new K(a,l,a,l),e.languageConfigurationService);u&&(o=u.indentation+u.appendText)}return r&&(r===Lo.Indent&&(o=Nr.shiftIndent(e,o)),r===Lo.Outdent&&(o=Nr.unshiftIndent(e,o)),o=e.normalizeIndentation(o)),o||null}static _replaceJumpToNextIndent(e,t,i,r){let o="";const s=i.getStartPosition();if(e.insertSpaces){const a=e.visibleColumnFromColumn(t,s),l=e.indentSize,u=l-a%l;for(let c=0;cthis._compositionType(i,c,o,s,a,l));return new kl(4,u,{shouldPushStackElementBefore:hT(e,4),shouldPushStackElementAfter:!1})}static _compositionType(e,t,i,r,o,s){if(!t.isEmpty())return null;const a=t.getPosition(),l=Math.max(1,a.column-r),u=Math.min(e.getLineMaxColumn(a.lineNumber),a.column+o),c=new K(a.lineNumber,l,a.lineNumber,u);return e.getValueInRange(c)===i&&s===0?null:new J5(c,i,0,s)}static _typeCommand(e,t,i){return i?new U5(e,t,!0):new Us(e,t,!0)}static _enter(e,t,i,r){if(e.autoIndent===0)return Nr._typeCommand(r,` +`,i);if(!t.tokenization.isCheapToTokenize(r.getStartPosition().lineNumber)||e.autoIndent===1){const l=t.getLineContent(r.startLineNumber),u=Yi(l).substring(0,r.startColumn-1);return Nr._typeCommand(r,` +`+e.normalizeIndentation(u),i)}const o=f2(e.autoIndent,t,r,e.languageConfigurationService);if(o){if(o.indentAction===Lo.None)return Nr._typeCommand(r,` +`+e.normalizeIndentation(o.indentation+o.appendText),i);if(o.indentAction===Lo.Indent)return Nr._typeCommand(r,` +`+e.normalizeIndentation(o.indentation+o.appendText),i);if(o.indentAction===Lo.IndentOutdent){const l=e.normalizeIndentation(o.indentation),u=e.normalizeIndentation(o.indentation+o.appendText),c=` +`+u+` +`+l;return i?new U5(r,c,!0):new J5(r,c,-1,u.length-l.length,!0)}else if(o.indentAction===Lo.Outdent){const l=Nr.unshiftIndent(e,o.indentation);return Nr._typeCommand(r,` +`+e.normalizeIndentation(l+o.appendText),i)}}const s=t.getLineContent(r.startLineNumber),a=Yi(s).substring(0,r.startColumn-1);if(e.autoIndent>=4){const l=Dft(e.autoIndent,t,r,{unshiftIndent:u=>Nr.unshiftIndent(e,u),shiftIndent:u=>Nr.shiftIndent(e,u),normalizeIndentation:u=>e.normalizeIndentation(u)},e.languageConfigurationService);if(l){let u=e.visibleColumnFromColumn(t,r.getEndPosition());const c=r.endColumn,d=t.getLineContent(r.endLineNumber),h=Ia(d);if(h>=0?r=r.setEndPosition(r.endLineNumber,Math.max(r.endColumn,h+1)):r=r.setEndPosition(r.endLineNumber,t.getLineMaxColumn(r.endLineNumber)),i)return new U5(r,` +`+e.normalizeIndentation(l.afterEnter),!0);{let g=0;return c<=h+1&&(e.insertSpaces||(u=Math.ceil(u/e.indentSize)),g=Math.min(u+1-e.normalizeIndentation(l.afterEnter).length-1,0)),new J5(r,` +`+e.normalizeIndentation(l.afterEnter),0,g,!0)}}}return Nr._typeCommand(r,` +`+e.normalizeIndentation(a),i)}static _isAutoIndentType(e,t,i){if(e.autoIndent<4)return!1;for(let r=0,o=i.length;rNr.shiftIndent(e,a),unshiftIndent:a=>Nr.unshiftIndent(e,a)},e.languageConfigurationService);if(s===null)return null;if(s!==e.normalizeIndentation(o)){const a=t.getLineFirstNonWhitespaceColumn(i.startLineNumber);return a===0?Nr._typeCommand(new K(i.startLineNumber,1,i.endLineNumber,i.endColumn),e.normalizeIndentation(s)+r,!1):Nr._typeCommand(new K(i.startLineNumber,1,i.endLineNumber,i.endColumn),e.normalizeIndentation(s)+t.getLineContent(i.startLineNumber).substring(a-1,i.startColumn-1)+r,!1)}return null}static _isAutoClosingOvertype(e,t,i,r,o){if(e.autoClosingOvertype==="never"||!e.autoClosingPairs.autoClosingPairsCloseSingleChar.has(o))return!1;for(let s=0,a=i.length;s2?c.charCodeAt(u.column-2):0)===92&&h)return!1;if(e.autoClosingOvertype==="auto"){let m=!1;for(let f=0,b=r.length;ft.startsWith(l.open)),a=o.some(l=>t.startsWith(l.close));return!s&&a}static _findAutoClosingPairOpen(e,t,i,r){const o=e.autoClosingPairs.autoClosingPairsOpenByEnd.get(r);if(!o)return null;let s=null;for(const a of o)if(s===null||a.open.length>s.open.length){let l=!0;for(const u of i)if(t.getValueInRange(new K(u.lineNumber,u.column-a.open.length+1,u.lineNumber,u.column))+r!==a.open){l=!1;break}l&&(s=a)}return s}static _findContainedAutoClosingPair(e,t){if(t.open.length<=1)return null;const i=t.close.charAt(t.close.length-1),r=e.autoClosingPairs.autoClosingPairsCloseByEnd.get(i)||[];let o=null;for(const s of r)s.open!==t.open&&t.open.includes(s.open)&&t.close.endsWith(s.close)&&(!o||s.open.length>o.open.length)&&(o=s);return o}static _getAutoClosingPairClose(e,t,i,r,o){for(const m of i)if(!m.isEmpty())return null;const s=i.map(m=>{const f=m.getPosition();return o?{lineNumber:f.lineNumber,beforeColumn:f.column-r.length,afterColumn:f.column}:{lineNumber:f.lineNumber,beforeColumn:f.column,afterColumn:f.column}}),a=this._findAutoClosingPairOpen(e,t,s.map(m=>new ve(m.lineNumber,m.beforeColumn)),r);if(!a)return null;let l,u;if(Nb(r)?(l=e.autoClosingQuotes,u=e.shouldAutoCloseBefore.quote):(e.blockCommentStartToken?a.open.includes(e.blockCommentStartToken):!1)?(l=e.autoClosingComments,u=e.shouldAutoCloseBefore.comment):(l=e.autoClosingBrackets,u=e.shouldAutoCloseBefore.bracket),l==="never")return null;const d=this._findContainedAutoClosingPair(e,a),h=d?d.close:"";let g=!0;for(const m of s){const{lineNumber:f,beforeColumn:b,afterColumn:C}=m,v=t.getLineContent(f),w=v.substring(0,b-1),S=v.substring(C-1);if(S.startsWith(h)||(g=!1),S.length>0){const A=S.charAt(0);if(!Nr._isBeforeClosingBrace(e,S)&&!u(A))return null}if(a.open.length===1&&(r==="'"||r==='"')&&l!=="always"){const A=xc(e.wordSeparators);if(w.length>0){const M=w.charCodeAt(w.length-1);if(A.get(M)===0)return null}}if(!t.tokenization.isCheapToTokenize(f))return null;t.tokenization.forceTokenization(f);const F=t.tokenization.getLineTokens(f),L=Y5(F,b-1);if(!a.shouldAutoClose(L,b-L.firstCharOffset))return null;const D=a.findNeutralCharacter();if(D){const A=t.tokenization.getTokenTypeIfInsertingCharacter(f,b,D);if(!a.isOK(A))return null}}return g?a.close.substring(0,a.close.length-h.length):a.close}static _runAutoClosingOpenCharType(e,t,i,r,o,s,a){const l=[];for(let u=0,c=r.length;unew Us(new K(h.positionLineNumber,h.positionColumn,h.positionLineNumber,h.positionColumn+1),"",!1));return new kl(4,d,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})}const c=this._getAutoClosingPairClose(t,i,o,l,!0);return c!==null?this._runAutoClosingOpenCharType(e,t,i,o,l,!0,c):null}static typeWithInterceptors(e,t,i,r,o,s,a){if(!e&&a===` +`){const c=[];for(let d=0,h=o.length;d{const r=t.get(yi).getFocusedCodeEditor();return r&&r.hasTextFocus()?this._runEditorCommand(t,r,i):!1}),e.addImplementation(1e3,"generic-dom-input-textarea",(t,i)=>{const r=Ys();return r&&["input","textarea"].indexOf(r.tagName.toLowerCase())>=0?(this.runDOMCommand(r),!0):!1}),e.addImplementation(0,"generic-dom",(t,i)=>{const r=t.get(yi).getActiveCodeEditor();return r?(r.focus(),this._runEditorCommand(t,r,i)):!1})}_runEditorCommand(e,t,i){const r=this.runEditorCommand(e,t,i);return r||!0}}var ds;(function(n){class e extends Pr{constructor(v){super(v),this._inSelectionMode=v.inSelectionMode}runCoreEditorCommand(v,w){if(!w.position)return;v.model.pushStackElement(),v.setCursorStates(w.source,3,[_s.moveTo(v,v.getPrimaryCursorState(),this._inSelectionMode,w.position,w.viewPosition)])&&w.revealType!==2&&v.revealPrimaryCursor(w.source,!0,!0)}}n.MoveTo=mt(new e({id:"_moveTo",inSelectionMode:!1,precondition:void 0})),n.MoveToSelect=mt(new e({id:"_moveToSelect",inSelectionMode:!0,precondition:void 0}));class t extends Pr{runCoreEditorCommand(v,w){v.model.pushStackElement();const S=this._getColumnSelectResult(v,v.getPrimaryCursorState(),v.getCursorColumnSelectData(),w);S!==null&&(v.setCursorStates(w.source,3,S.viewStates.map(F=>li.fromViewState(F))),v.setCursorColumnSelectData({isReal:!0,fromViewLineNumber:S.fromLineNumber,fromViewVisualColumn:S.fromVisualColumn,toViewLineNumber:S.toLineNumber,toViewVisualColumn:S.toVisualColumn}),S.reversed?v.revealTopMostCursor(w.source):v.revealBottomMostCursor(w.source))}}n.ColumnSelect=mt(new class extends t{constructor(){super({id:"columnSelect",precondition:void 0})}_getColumnSelectResult(C,v,w,S){if(typeof S.position>"u"||typeof S.viewPosition>"u"||typeof S.mouseColumn>"u")return null;const F=C.model.validatePosition(S.position),L=C.coordinatesConverter.validateViewPosition(new ve(S.viewPosition.lineNumber,S.viewPosition.column),F),D=S.doColumnSelect?w.fromViewLineNumber:L.lineNumber,A=S.doColumnSelect?w.fromViewVisualColumn:S.mouseColumn-1;return EC.columnSelect(C.cursorConfig,C,D,A,L.lineNumber,S.mouseColumn-1)}}),n.CursorColumnSelectLeft=mt(new class extends t{constructor(){super({id:"cursorColumnSelectLeft",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:3599,linux:{primary:0}}})}_getColumnSelectResult(C,v,w,S){return EC.columnSelectLeft(C.cursorConfig,C,w)}}),n.CursorColumnSelectRight=mt(new class extends t{constructor(){super({id:"cursorColumnSelectRight",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:3601,linux:{primary:0}}})}_getColumnSelectResult(C,v,w,S){return EC.columnSelectRight(C.cursorConfig,C,w)}});class i extends t{constructor(v){super(v),this._isPaged=v.isPaged}_getColumnSelectResult(v,w,S,F){return EC.columnSelectUp(v.cursorConfig,v,S,this._isPaged)}}n.CursorColumnSelectUp=mt(new i({isPaged:!1,id:"cursorColumnSelectUp",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:3600,linux:{primary:0}}})),n.CursorColumnSelectPageUp=mt(new i({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:3595,linux:{primary:0}}}));class r extends t{constructor(v){super(v),this._isPaged=v.isPaged}_getColumnSelectResult(v,w,S,F){return EC.columnSelectDown(v.cursorConfig,v,S,this._isPaged)}}n.CursorColumnSelectDown=mt(new r({isPaged:!1,id:"cursorColumnSelectDown",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:3602,linux:{primary:0}}})),n.CursorColumnSelectPageDown=mt(new r({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:3596,linux:{primary:0}}}));class o extends Pr{constructor(){super({id:"cursorMove",precondition:void 0,metadata:q5.metadata})}runCoreEditorCommand(v,w){const S=q5.parse(w);S&&this._runCursorMove(v,w.source,S)}_runCursorMove(v,w,S){v.model.pushStackElement(),v.setCursorStates(w,3,o._move(v,v.getCursorStates(),S)),v.revealPrimaryCursor(w,!0)}static _move(v,w,S){const F=S.select,L=S.value;switch(S.direction){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:return _s.simpleMove(v,w,S.direction,F,L,S.unit);case 11:case 13:case 12:case 14:return _s.viewportMove(v,w,S.direction,F,L);default:return null}}}n.CursorMoveImpl=o,n.CursorMove=mt(new o);class s extends Pr{constructor(v){super(v),this._staticArgs=v.args}runCoreEditorCommand(v,w){let S=this._staticArgs;this._staticArgs.value===-1&&(S={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:w.pageSize||v.cursorConfig.pageSize}),v.model.pushStackElement(),v.setCursorStates(w.source,3,_s.simpleMove(v,v.getCursorStates(),S.direction,S.select,S.value,S.unit)),v.revealPrimaryCursor(w.source,!0)}}n.CursorLeft=mt(new s({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),n.CursorLeftSelect=mt(new s({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:1039}})),n.CursorRight=mt(new s({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),n.CursorRightSelect=mt(new s({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:1041}})),n.CursorUp=mt(new s({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),n.CursorUpSelect=mt(new s({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),n.CursorPageUp=mt(new s({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:11}})),n.CursorPageUpSelect=mt(new s({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:1035}})),n.CursorDown=mt(new s({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),n.CursorDownSelect=mt(new s({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),n.CursorPageDown=mt(new s({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:12}})),n.CursorPageDownSelect=mt(new s({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:1036}})),n.CreateCursor=mt(new class extends Pr{constructor(){super({id:"createCursor",precondition:void 0})}runCoreEditorCommand(C,v){if(!v.position)return;let w;v.wholeLine?w=_s.line(C,C.getPrimaryCursorState(),!1,v.position,v.viewPosition):w=_s.moveTo(C,C.getPrimaryCursorState(),!1,v.position,v.viewPosition);const S=C.getCursorStates();if(S.length>1){const F=w.modelState?w.modelState.position:null,L=w.viewState?w.viewState.position:null;for(let D=0,A=S.length;DL&&(F=L);const D=new K(F,1,F,C.model.getLineMaxColumn(F));let A=0;if(w.at)switch(w.at){case p2.RawAtArgument.Top:A=3;break;case p2.RawAtArgument.Center:A=1;break;case p2.RawAtArgument.Bottom:A=4;break}const M=C.coordinatesConverter.convertModelRangeToViewRange(D);C.revealRange(v.source,!1,M,A,0)}}),n.SelectAll=new class extends LH{constructor(){super(Smt)}runDOMCommand(C){vc&&(C.focus(),C.select()),C.ownerDocument.execCommand("selectAll")}runEditorCommand(C,v,w){const S=v._getViewModel();S&&this.runCoreEditorCommand(S,w)}runCoreEditorCommand(C,v){C.model.pushStackElement(),C.setCursorStates("keyboard",3,[_s.selectAll(C,C.getPrimaryCursorState())])}},n.SetSelection=mt(new class extends Pr{constructor(){super({id:"setSelection",precondition:void 0})}runCoreEditorCommand(C,v){v.selection&&(C.model.pushStackElement(),C.setCursorStates(v.source,3,[li.fromModelSelection(v.selection)]))}})})(ds||(ds={}));const kft=Be.and(ne.textInputFocus,ne.columnSelection);function b2(n,e){Dl.registerKeybindingRule({id:n,primary:e,when:kft,weight:vi+1})}b2(ds.CursorColumnSelectLeft.id,1039),b2(ds.CursorColumnSelectRight.id,1041),b2(ds.CursorColumnSelectUp.id,1040),b2(ds.CursorColumnSelectPageUp.id,1035),b2(ds.CursorColumnSelectDown.id,1042),b2(ds.CursorColumnSelectPageDown.id,1036);function i1e(n){return n.register(),n}var C2;(function(n){class e extends cs{runEditorCommand(i,r,o){const s=r._getViewModel();s&&this.runCoreEditingCommand(r,s,o||{})}}n.CoreEditingCommand=e,n.LineBreakInsert=mt(new class extends e{constructor(){super({id:"lineBreakInsert",precondition:ne.writable,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:0,mac:{primary:301}}})}runCoreEditingCommand(t,i,r){t.pushUndoStop(),t.executeCommands(this.id,Nr.lineBreakInsert(i.cursorConfig,i.model,i.getCursorStates().map(o=>o.modelState.selection)))}}),n.Outdent=mt(new class extends e{constructor(){super({id:"outdent",precondition:ne.writable,kbOpts:{weight:vi,kbExpr:Be.and(ne.editorTextFocus,ne.tabDoesNotMoveFocus),primary:1026}})}runCoreEditingCommand(t,i,r){t.pushUndoStop(),t.executeCommands(this.id,Nr.outdent(i.cursorConfig,i.model,i.getCursorStates().map(o=>o.modelState.selection))),t.pushUndoStop()}}),n.Tab=mt(new class extends e{constructor(){super({id:"tab",precondition:ne.writable,kbOpts:{weight:vi,kbExpr:Be.and(ne.editorTextFocus,ne.tabDoesNotMoveFocus),primary:2}})}runCoreEditingCommand(t,i,r){t.pushUndoStop(),t.executeCommands(this.id,Nr.tab(i.cursorConfig,i.model,i.getCursorStates().map(o=>o.modelState.selection))),t.pushUndoStop()}}),n.DeleteLeft=mt(new class extends e{constructor(){super({id:"deleteLeft",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})}runCoreEditingCommand(t,i,r){const[o,s]=WC.deleteLeft(i.getPrevEditOperationType(),i.cursorConfig,i.model,i.getCursorStates().map(a=>a.modelState.selection),i.getCursorAutoClosedCharacters());o&&t.pushUndoStop(),t.executeCommands(this.id,s),i.setPrevEditOperationType(2)}}),n.DeleteRight=mt(new class extends e{constructor(){super({id:"deleteRight",precondition:void 0,kbOpts:{weight:vi,kbExpr:ne.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})}runCoreEditingCommand(t,i,r){const[o,s]=WC.deleteRight(i.getPrevEditOperationType(),i.cursorConfig,i.model,i.getCursorStates().map(a=>a.modelState.selection));o&&t.pushUndoStop(),t.executeCommands(this.id,s),i.setPrevEditOperationType(3)}}),n.Undo=new class extends LH{constructor(){super(v0e)}runDOMCommand(t){t.ownerDocument.execCommand("undo")}runEditorCommand(t,i,r){if(!(!i.hasModel()||i.getOption(91)===!0))return i.getModel().undo()}},n.Redo=new class extends LH{constructor(){super(y0e)}runDOMCommand(t){t.ownerDocument.execCommand("redo")}runEditorCommand(t,i,r){if(!(!i.hasModel()||i.getOption(91)===!0))return i.getModel().redo()}}})(C2||(C2={}));class r1e extends z5{constructor(e,t,i){super({id:e,precondition:void 0,metadata:i}),this._handlerId=t}runCommand(e,t){const i=e.get(yi).getFocusedCodeEditor();i&&i.trigger("keyboard",this._handlerId,t)}}function GC(n,e){i1e(new r1e("default:"+n,n)),i1e(new r1e(n,n,e))}GC("type",{description:"Type",args:[{name:"args",schema:{type:"object",required:["text"],properties:{text:{type:"string"}}}}]}),GC("replacePreviousChar"),GC("compositionType"),GC("compositionStart"),GC("compositionEnd"),GC("paste"),GC("cut");const FH=Un("markerDecorationsService");var Mft=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Zft=function(n,e){return function(t,i){e(t,i,n)}};let JF=class{constructor(e,t){}dispose(){}};JF.ID="editor.contrib.markerDecorations",JF=Mft([Zft(1,FH)],JF),Ii(JF.ID,JF,0);class o1e{constructor(e){this.domNode=e,this._maxWidth="",this._width="",this._height="",this._top="",this._left="",this._bottom="",this._right="",this._paddingLeft="",this._fontFamily="",this._fontWeight="",this._fontSize="",this._fontStyle="",this._fontFeatureSettings="",this._fontVariationSettings="",this._textDecoration="",this._lineHeight="",this._letterSpacing="",this._className="",this._display="",this._position="",this._visibility="",this._color="",this._backgroundColor="",this._layerHint=!1,this._contain="none",this._boxShadow=""}setMaxWidth(e){const t=wh(e);this._maxWidth!==t&&(this._maxWidth=t,this.domNode.style.maxWidth=this._maxWidth)}setWidth(e){const t=wh(e);this._width!==t&&(this._width=t,this.domNode.style.width=this._width)}setHeight(e){const t=wh(e);this._height!==t&&(this._height=t,this.domNode.style.height=this._height)}setTop(e){const t=wh(e);this._top!==t&&(this._top=t,this.domNode.style.top=this._top)}setLeft(e){const t=wh(e);this._left!==t&&(this._left=t,this.domNode.style.left=this._left)}setBottom(e){const t=wh(e);this._bottom!==t&&(this._bottom=t,this.domNode.style.bottom=this._bottom)}setRight(e){const t=wh(e);this._right!==t&&(this._right=t,this.domNode.style.right=this._right)}setPaddingLeft(e){const t=wh(e);this._paddingLeft!==t&&(this._paddingLeft=t,this.domNode.style.paddingLeft=this._paddingLeft)}setFontFamily(e){this._fontFamily!==e&&(this._fontFamily=e,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(e){this._fontWeight!==e&&(this._fontWeight=e,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(e){const t=wh(e);this._fontSize!==t&&(this._fontSize=t,this.domNode.style.fontSize=this._fontSize)}setFontStyle(e){this._fontStyle!==e&&(this._fontStyle=e,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(e){this._fontFeatureSettings!==e&&(this._fontFeatureSettings=e,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setFontVariationSettings(e){this._fontVariationSettings!==e&&(this._fontVariationSettings=e,this.domNode.style.fontVariationSettings=this._fontVariationSettings)}setTextDecoration(e){this._textDecoration!==e&&(this._textDecoration=e,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(e){const t=wh(e);this._lineHeight!==t&&(this._lineHeight=t,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(e){const t=wh(e);this._letterSpacing!==t&&(this._letterSpacing=t,this.domNode.style.letterSpacing=this._letterSpacing)}setClassName(e){this._className!==e&&(this._className=e,this.domNode.className=this._className)}toggleClassName(e,t){this.domNode.classList.toggle(e,t),this._className=this.domNode.className}setDisplay(e){this._display!==e&&(this._display=e,this.domNode.style.display=this._display)}setPosition(e){this._position!==e&&(this._position=e,this.domNode.style.position=this._position)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this.domNode.style.visibility=this._visibility)}setColor(e){this._color!==e&&(this._color=e,this.domNode.style.color=this._color)}setBackgroundColor(e){this._backgroundColor!==e&&(this._backgroundColor=e,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(e){this._layerHint!==e&&(this._layerHint=e,this.domNode.style.transform=this._layerHint?"translate3d(0px, 0px, 0px)":"")}setBoxShadow(e){this._boxShadow!==e&&(this._boxShadow=e,this.domNode.style.boxShadow=e)}setContain(e){this._contain!==e&&(this._contain=e,this.domNode.style.contain=this._contain)}setAttribute(e,t){this.domNode.setAttribute(e,t)}removeAttribute(e){this.domNode.removeAttribute(e)}appendChild(e){this.domNode.appendChild(e.domNode)}removeChild(e){this.domNode.removeChild(e.domNode)}}function wh(n){return typeof n=="number"?`${n}px`:n}function Si(n){return new o1e(n)}function Ks(n,e){n instanceof o1e?(n.setFontFamily(e.getMassagedFontFamily()),n.setFontWeight(e.fontWeight),n.setFontSize(e.fontSize),n.setFontFeatureSettings(e.fontFeatureSettings),n.setFontVariationSettings(e.fontVariationSettings),n.setLineHeight(e.lineHeight),n.setLetterSpacing(e.letterSpacing)):(n.style.fontFamily=e.getMassagedFontFamily(),n.style.fontWeight=e.fontWeight,n.style.fontSize=e.fontSize+"px",n.style.fontFeatureSettings=e.fontFeatureSettings,n.style.fontVariationSettings=e.fontVariationSettings,n.style.lineHeight=e.lineHeight+"px",n.style.letterSpacing=e.letterSpacing+"px")}function Ff(n){if(!n||typeof n!="object"||n instanceof RegExp)return n;const e=Array.isArray(n)?[]:{};return Object.entries(n).forEach(([t,i])=>{e[t]=i&&typeof i=="object"?Ff(i):i}),e}function Tft(n){if(!n||typeof n!="object")return n;const e=[n];for(;e.length>0;){const t=e.shift();Object.freeze(t);for(const i in t)if(s1e.call(t,i)){const r=t[i];typeof r=="object"&&!Object.isFrozen(r)&&!kdt(r)&&e.push(r)}}return n}const s1e=Object.prototype.hasOwnProperty;function a1e(n,e){return _H(n,e,new Set)}function _H(n,e,t){if(Mu(n))return n;const i=e(n);if(typeof i<"u")return i;if(Array.isArray(n)){const r=[];for(const o of n)r.push(_H(o,e,t));return r}if(za(n)){if(t.has(n))throw new Error("Cannot clone recursive data-structure");t.add(n);const r={};for(const o in n)s1e.call(n,o)&&(r[o]=_H(n[o],e,t));return t.delete(n),r}return n}function gT(n,e,t=!0){return za(n)?(za(e)&&Object.keys(e).forEach(i=>{i in n?t&&(za(n[i])&&za(e[i])?gT(n[i],e[i],t):n[i]=e[i]):n[i]=e[i]}),n):e}function Gu(n,e){if(n===e)return!0;if(n==null||e===null||e===void 0||typeof n!=typeof e||typeof n!="object"||Array.isArray(n)!==Array.isArray(e))return!1;let t,i;if(Array.isArray(n)){if(n.length!==e.length)return!1;for(t=0;tfunction(){const o=Array.prototype.slice.call(arguments,0);return e(r,o)},i={};for(const r of n)i[r]=t(r);return i}class l1e extends De{constructor(e,t){super(),this._onDidChange=this._register(new be),this.onDidChange=this._onDidChange.event,this._referenceDomElement=e,this._width=-1,this._height=-1,this._resizeObserver=null,this.measureReferenceDomElement(!1,t)}dispose(){this.stopObserving(),super.dispose()}getWidth(){return this._width}getHeight(){return this._height}startObserving(){if(!this._resizeObserver&&this._referenceDomElement){let e=null;const t=()=>{e?this.observe({width:e.width,height:e.height}):this.observe()};let i=!1,r=!1;const o=()=>{if(i&&!r)try{i=!1,r=!0,t()}finally{iu(qt(this._referenceDomElement),()=>{r=!1,o()})}};this._resizeObserver=new ResizeObserver(s=>{s&&s[0]&&s[0].contentRect?e={width:s[0].contentRect.width,height:s[0].contentRect.height}:e=null,i=!0,o()}),this._resizeObserver.observe(this._referenceDomElement)}}stopObserving(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null)}observe(e){this.measureReferenceDomElement(!0,e)}measureReferenceDomElement(e,t){let i=0,r=0;t?(i=t.width,r=t.height):this._referenceDomElement&&(i=this._referenceDomElement.clientWidth,r=this._referenceDomElement.clientHeight),i=Math.max(5,i),r=Math.max(5,r),(this._width!==i||this._height!==r)&&(this._width=i,this._height=r,e&&this._onDidChange.fire())}}class Rft extends De{constructor(e){super(),this._onDidChange=this._register(new be),this.onDidChange=this._onDidChange.event,this._listener=()=>this._handleChange(e,!0),this._mediaQueryList=null,this._handleChange(e,!1)}_handleChange(e,t){var i;(i=this._mediaQueryList)===null||i===void 0||i.removeEventListener("change",this._listener),this._mediaQueryList=e.matchMedia(`(resolution: ${e.devicePixelRatio}dppx)`),this._mediaQueryList.addEventListener("change",this._listener),t&&this._onDidChange.fire()}}class Gft extends De{get value(){return this._value}constructor(e){super(),this._onDidChange=this._register(new be),this.onDidChange=this._onDidChange.event,this._value=this._getPixelRatio(e);const t=this._register(new Rft(e));this._register(t.onDidChange(()=>{this._value=this._getPixelRatio(e),this._onDidChange.fire(this._value)}))}_getPixelRatio(e){const t=document.createElement("canvas").getContext("2d"),i=e.devicePixelRatio||1,r=t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return i/r}}class Vft{constructor(){this.mapWindowIdToPixelRatioMonitor=new Map}_getOrCreatePixelRatioMonitor(e){const t=S5(e);let i=this.mapWindowIdToPixelRatioMonitor.get(t);return i||(i=new Gft(e),this.mapWindowIdToPixelRatioMonitor.set(t,i),ft.once(Agt)(({vscodeWindowId:r})=>{r===t&&(i==null||i.dispose(),this.mapWindowIdToPixelRatioMonitor.delete(t))})),i}getInstance(e){return this._getOrCreatePixelRatioMonitor(e)}}const KF=new Vft;class Xft{constructor(e,t){this.chr=e,this.type=t,this.width=0}fulfill(e){this.width=e}}class AH{constructor(e,t){this._bareFontInfo=e,this._requests=t,this._container=null,this._testElements=null}read(e){this._createDomElements(),e.document.body.appendChild(this._container),this._readFromDomElements(),e.document.body.removeChild(this._container),this._container=null,this._testElements=null}_createDomElements(){const e=document.createElement("div");e.style.position="absolute",e.style.top="-50000px",e.style.width="50000px";const t=document.createElement("div");Ks(t,this._bareFontInfo),e.appendChild(t);const i=document.createElement("div");Ks(i,this._bareFontInfo),i.style.fontWeight="bold",e.appendChild(i);const r=document.createElement("div");Ks(r,this._bareFontInfo),r.style.fontStyle="italic",e.appendChild(r);const o=[];for(const s of this._requests){let a;s.type===0&&(a=t),s.type===2&&(a=i),s.type===1&&(a=r),a.appendChild(document.createElement("br"));const l=document.createElement("span");AH._render(l,s),a.appendChild(l),o.push(l)}this._container=e,this._testElements=o}static _render(e,t){if(t.chr===" "){let i=" ";for(let r=0;r<8;r++)i+=i;e.innerText=i}else{let i=t.chr;for(let r=0;r<8;r++)i+=i;e.textContent=i}}_readFromDomElements(){for(let e=0,t=this._requests.length;e"u"?this.defaultValue:e}compute(e,t,i){return i}}function Pt(n,e){return typeof n>"u"?e:n==="false"?!1:!!n}class ui extends v2{constructor(e,t,i,r=void 0){typeof r<"u"&&(r.type="boolean",r.default=i),super(e,t,i,r)}validate(e){return Pt(e,this.defaultValue)}}function VC(n,e,t,i){if(typeof n>"u")return e;let r=parseInt(n,10);return isNaN(r)?e:(r=Math.max(t,r),r=Math.min(i,r),r|0)}class Hi extends v2{static clampedInt(e,t,i,r){return VC(e,t,i,r)}constructor(e,t,i,r,o,s=void 0){typeof s<"u"&&(s.type="integer",s.default=i,s.minimum=r,s.maximum=o),super(e,t,i,s),this.minimum=r,this.maximum=o}validate(e){return Hi.clampedInt(e,this.defaultValue,this.minimum,this.maximum)}}function Oft(n,e,t,i){if(typeof n>"u")return e;const r=bd.float(n,e);return bd.clamp(r,t,i)}class bd extends v2{static clamp(e,t,i){return ei?i:e}static float(e,t){if(typeof e=="number")return e;if(typeof e>"u")return t;const i=parseFloat(e);return isNaN(i)?t:i}constructor(e,t,i,r,o){typeof o<"u"&&(o.type="number",o.default=i),super(e,t,i,o),this.validationFn=r}validate(e){return this.validationFn(bd.float(e,this.defaultValue))}}class qa extends v2{static string(e,t){return typeof e!="string"?t:e}constructor(e,t,i,r=void 0){typeof r<"u"&&(r.type="string",r.default=i),super(e,t,i,r)}validate(e){return qa.string(e,this.defaultValue)}}function Or(n,e,t,i){return typeof n!="string"?e:i&&n in i?i[n]:t.indexOf(n)===-1?e:n}class Zr extends v2{constructor(e,t,i,r,o=void 0){typeof o<"u"&&(o.type="string",o.enum=r,o.default=i),super(e,t,i,o),this._allowedValues=r}validate(e){return Or(e,this.defaultValue,this._allowedValues)}}class fT extends Sr{constructor(e,t,i,r,o,s,a=void 0){typeof a<"u"&&(a.type="string",a.enum=o,a.default=r),super(e,t,i,a),this._allowedValues=o,this._convert=s}validate(e){return typeof e!="string"?this.defaultValue:this._allowedValues.indexOf(e)===-1?this.defaultValue:this._convert(e)}}function Bft(n){switch(n){case"none":return 0;case"keep":return 1;case"brackets":return 2;case"advanced":return 3;case"full":return 4}}class zft extends Sr{constructor(){super(2,"accessibilitySupport",0,{type:"string",enum:["auto","on","off"],enumDescriptions:[x("accessibilitySupport.auto","Use platform APIs to detect when a Screen Reader is attached."),x("accessibilitySupport.on","Optimize for usage with a Screen Reader."),x("accessibilitySupport.off","Assume a screen reader is not attached.")],default:"auto",tags:["accessibility"],description:x("accessibilitySupport","Controls if the UI should run in a mode where it is optimized for screen readers.")})}validate(e){switch(e){case"auto":return 0;case"off":return 1;case"on":return 2}return this.defaultValue}compute(e,t,i){return i===0?e.accessibilitySupport:i}}class Yft extends Sr{constructor(){const e={insertSpace:!0,ignoreEmptyLines:!0};super(23,"comments",e,{"editor.comments.insertSpace":{type:"boolean",default:e.insertSpace,description:x("comments.insertSpace","Controls whether a space character is inserted when commenting.")},"editor.comments.ignoreEmptyLines":{type:"boolean",default:e.ignoreEmptyLines,description:x("comments.ignoreEmptyLines","Controls if empty lines should be ignored with toggle, add or remove actions for line comments.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{insertSpace:Pt(t.insertSpace,this.defaultValue.insertSpace),ignoreEmptyLines:Pt(t.ignoreEmptyLines,this.defaultValue.ignoreEmptyLines)}}}function Hft(n){switch(n){case"blink":return 1;case"smooth":return 2;case"phase":return 3;case"expand":return 4;case"solid":return 5}}var Ds;(function(n){n[n.Line=1]="Line",n[n.Block=2]="Block",n[n.Underline=3]="Underline",n[n.LineThin=4]="LineThin",n[n.BlockOutline=5]="BlockOutline",n[n.UnderlineThin=6]="UnderlineThin"})(Ds||(Ds={}));function Uft(n){switch(n){case"line":return Ds.Line;case"block":return Ds.Block;case"underline":return Ds.Underline;case"line-thin":return Ds.LineThin;case"block-outline":return Ds.BlockOutline;case"underline-thin":return Ds.UnderlineThin}}class Jft extends QF{constructor(){super(141)}compute(e,t,i){const r=["monaco-editor"];return t.get(39)&&r.push(t.get(39)),e.extraEditorClassName&&r.push(e.extraEditorClassName),t.get(74)==="default"?r.push("mouse-default"):t.get(74)==="copy"&&r.push("mouse-copy"),t.get(111)&&r.push("showUnused"),t.get(139)&&r.push("showDeprecated"),r.join(" ")}}class Kft extends ui{constructor(){super(37,"emptySelectionClipboard",!0,{description:x("emptySelectionClipboard","Controls whether copying without a selection copies the current line.")})}compute(e,t,i){return i&&e.emptySelectionClipboard}}class jft extends Sr{constructor(){const e={cursorMoveOnType:!0,seedSearchStringFromSelection:"always",autoFindInSelection:"never",globalFindClipboard:!1,addExtraSpaceOnTop:!0,loop:!0};super(41,"find",e,{"editor.find.cursorMoveOnType":{type:"boolean",default:e.cursorMoveOnType,description:x("find.cursorMoveOnType","Controls whether the cursor should jump to find matches while typing.")},"editor.find.seedSearchStringFromSelection":{type:"string",enum:["never","always","selection"],default:e.seedSearchStringFromSelection,enumDescriptions:[x("editor.find.seedSearchStringFromSelection.never","Never seed search string from the editor selection."),x("editor.find.seedSearchStringFromSelection.always","Always seed search string from the editor selection, including word at cursor position."),x("editor.find.seedSearchStringFromSelection.selection","Only seed search string from the editor selection.")],description:x("find.seedSearchStringFromSelection","Controls whether the search string in the Find Widget is seeded from the editor selection.")},"editor.find.autoFindInSelection":{type:"string",enum:["never","always","multiline"],default:e.autoFindInSelection,enumDescriptions:[x("editor.find.autoFindInSelection.never","Never turn on Find in Selection automatically (default)."),x("editor.find.autoFindInSelection.always","Always turn on Find in Selection automatically."),x("editor.find.autoFindInSelection.multiline","Turn on Find in Selection automatically when multiple lines of content are selected.")],description:x("find.autoFindInSelection","Controls the condition for turning on Find in Selection automatically.")},"editor.find.globalFindClipboard":{type:"boolean",default:e.globalFindClipboard,description:x("find.globalFindClipboard","Controls whether the Find Widget should read or modify the shared find clipboard on macOS."),included:$n},"editor.find.addExtraSpaceOnTop":{type:"boolean",default:e.addExtraSpaceOnTop,description:x("find.addExtraSpaceOnTop","Controls whether the Find Widget should add extra lines on top of the editor. When true, you can scroll beyond the first line when the Find Widget is visible.")},"editor.find.loop":{type:"boolean",default:e.loop,description:x("find.loop","Controls whether the search automatically restarts from the beginning (or the end) when no further matches can be found.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{cursorMoveOnType:Pt(t.cursorMoveOnType,this.defaultValue.cursorMoveOnType),seedSearchStringFromSelection:typeof e.seedSearchStringFromSelection=="boolean"?e.seedSearchStringFromSelection?"always":"never":Or(t.seedSearchStringFromSelection,this.defaultValue.seedSearchStringFromSelection,["never","always","selection"]),autoFindInSelection:typeof e.autoFindInSelection=="boolean"?e.autoFindInSelection?"always":"never":Or(t.autoFindInSelection,this.defaultValue.autoFindInSelection,["never","always","multiline"]),globalFindClipboard:Pt(t.globalFindClipboard,this.defaultValue.globalFindClipboard),addExtraSpaceOnTop:Pt(t.addExtraSpaceOnTop,this.defaultValue.addExtraSpaceOnTop),loop:Pt(t.loop,this.defaultValue.loop)}}}class Vu extends Sr{constructor(){super(51,"fontLigatures",Vu.OFF,{anyOf:[{type:"boolean",description:x("fontLigatures","Enables/Disables font ligatures ('calt' and 'liga' font features). Change this to a string for fine-grained control of the 'font-feature-settings' CSS property.")},{type:"string",description:x("fontFeatureSettings","Explicit 'font-feature-settings' CSS property. A boolean can be passed instead if one only needs to turn on/off ligatures.")}],description:x("fontLigaturesGeneral","Configures font ligatures or font features. Can be either a boolean to enable/disable ligatures or a string for the value of the CSS 'font-feature-settings' property."),default:!1})}validate(e){return typeof e>"u"?this.defaultValue:typeof e=="string"?e==="false"||e.length===0?Vu.OFF:e==="true"?Vu.ON:e:e?Vu.ON:Vu.OFF}}Vu.OFF='"liga" off, "calt" off',Vu.ON='"liga" on, "calt" on';class Sh extends Sr{constructor(){super(54,"fontVariations",Sh.OFF,{anyOf:[{type:"boolean",description:x("fontVariations","Enables/Disables the translation from font-weight to font-variation-settings. Change this to a string for fine-grained control of the 'font-variation-settings' CSS property.")},{type:"string",description:x("fontVariationSettings","Explicit 'font-variation-settings' CSS property. A boolean can be passed instead if one only needs to translate font-weight to font-variation-settings.")}],description:x("fontVariationsGeneral","Configures font variations. Can be either a boolean to enable/disable the translation from font-weight to font-variation-settings or a string for the value of the CSS 'font-variation-settings' property."),default:!1})}validate(e){return typeof e>"u"?this.defaultValue:typeof e=="string"?e==="false"?Sh.OFF:e==="true"?Sh.TRANSLATE:e:e?Sh.TRANSLATE:Sh.OFF}compute(e,t,i){return e.fontInfo.fontVariationSettings}}Sh.OFF="normal",Sh.TRANSLATE="translate";class Qft extends QF{constructor(){super(50)}compute(e,t,i){return e.fontInfo}}class $ft extends v2{constructor(){super(52,"fontSize",Zl.fontSize,{type:"number",minimum:6,maximum:100,default:Zl.fontSize,description:x("fontSize","Controls the font size in pixels.")})}validate(e){const t=bd.float(e,this.defaultValue);return t===0?Zl.fontSize:bd.clamp(t,6,100)}compute(e,t,i){return e.fontInfo.fontSize}}class Pg extends Sr{constructor(){super(53,"fontWeight",Zl.fontWeight,{anyOf:[{type:"number",minimum:Pg.MINIMUM_VALUE,maximum:Pg.MAXIMUM_VALUE,errorMessage:x("fontWeightErrorMessage",'Only "normal" and "bold" keywords or numbers between 1 and 1000 are allowed.')},{type:"string",pattern:"^(normal|bold|1000|[1-9][0-9]{0,2})$"},{enum:Pg.SUGGESTION_VALUES}],default:Zl.fontWeight,description:x("fontWeight",'Controls the font weight. Accepts "normal" and "bold" keywords or numbers between 1 and 1000.')})}validate(e){return e==="normal"||e==="bold"?e:String(Hi.clampedInt(e,Zl.fontWeight,Pg.MINIMUM_VALUE,Pg.MAXIMUM_VALUE))}}Pg.SUGGESTION_VALUES=["normal","bold","100","200","300","400","500","600","700","800","900"],Pg.MINIMUM_VALUE=1,Pg.MAXIMUM_VALUE=1e3;class qft extends Sr{constructor(){const e={multiple:"peek",multipleDefinitions:"peek",multipleTypeDefinitions:"peek",multipleDeclarations:"peek",multipleImplementations:"peek",multipleReferences:"peek",alternativeDefinitionCommand:"editor.action.goToReferences",alternativeTypeDefinitionCommand:"editor.action.goToReferences",alternativeDeclarationCommand:"editor.action.goToReferences",alternativeImplementationCommand:"",alternativeReferenceCommand:""},t={type:"string",enum:["peek","gotoAndPeek","goto"],default:e.multiple,enumDescriptions:[x("editor.gotoLocation.multiple.peek","Show Peek view of the results (default)"),x("editor.gotoLocation.multiple.gotoAndPeek","Go to the primary result and show a Peek view"),x("editor.gotoLocation.multiple.goto","Go to the primary result and enable Peek-less navigation to others")]},i=["","editor.action.referenceSearch.trigger","editor.action.goToReferences","editor.action.peekImplementation","editor.action.goToImplementation","editor.action.peekTypeDefinition","editor.action.goToTypeDefinition","editor.action.peekDeclaration","editor.action.revealDeclaration","editor.action.peekDefinition","editor.action.revealDefinitionAside","editor.action.revealDefinition"];super(58,"gotoLocation",e,{"editor.gotoLocation.multiple":{deprecationMessage:x("editor.gotoLocation.multiple.deprecated","This setting is deprecated, please use separate settings like 'editor.editor.gotoLocation.multipleDefinitions' or 'editor.editor.gotoLocation.multipleImplementations' instead.")},"editor.gotoLocation.multipleDefinitions":{description:x("editor.editor.gotoLocation.multipleDefinitions","Controls the behavior the 'Go to Definition'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleTypeDefinitions":{description:x("editor.editor.gotoLocation.multipleTypeDefinitions","Controls the behavior the 'Go to Type Definition'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleDeclarations":{description:x("editor.editor.gotoLocation.multipleDeclarations","Controls the behavior the 'Go to Declaration'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleImplementations":{description:x("editor.editor.gotoLocation.multipleImplemenattions","Controls the behavior the 'Go to Implementations'-command when multiple target locations exist."),...t},"editor.gotoLocation.multipleReferences":{description:x("editor.editor.gotoLocation.multipleReferences","Controls the behavior the 'Go to References'-command when multiple target locations exist."),...t},"editor.gotoLocation.alternativeDefinitionCommand":{type:"string",default:e.alternativeDefinitionCommand,enum:i,description:x("alternativeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Definition' is the current location.")},"editor.gotoLocation.alternativeTypeDefinitionCommand":{type:"string",default:e.alternativeTypeDefinitionCommand,enum:i,description:x("alternativeTypeDefinitionCommand","Alternative command id that is being executed when the result of 'Go to Type Definition' is the current location.")},"editor.gotoLocation.alternativeDeclarationCommand":{type:"string",default:e.alternativeDeclarationCommand,enum:i,description:x("alternativeDeclarationCommand","Alternative command id that is being executed when the result of 'Go to Declaration' is the current location.")},"editor.gotoLocation.alternativeImplementationCommand":{type:"string",default:e.alternativeImplementationCommand,enum:i,description:x("alternativeImplementationCommand","Alternative command id that is being executed when the result of 'Go to Implementation' is the current location.")},"editor.gotoLocation.alternativeReferenceCommand":{type:"string",default:e.alternativeReferenceCommand,enum:i,description:x("alternativeReferenceCommand","Alternative command id that is being executed when the result of 'Go to Reference' is the current location.")}})}validate(e){var t,i,r,o,s;if(!e||typeof e!="object")return this.defaultValue;const a=e;return{multiple:Or(a.multiple,this.defaultValue.multiple,["peek","gotoAndPeek","goto"]),multipleDefinitions:(t=a.multipleDefinitions)!==null&&t!==void 0?t:Or(a.multipleDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleTypeDefinitions:(i=a.multipleTypeDefinitions)!==null&&i!==void 0?i:Or(a.multipleTypeDefinitions,"peek",["peek","gotoAndPeek","goto"]),multipleDeclarations:(r=a.multipleDeclarations)!==null&&r!==void 0?r:Or(a.multipleDeclarations,"peek",["peek","gotoAndPeek","goto"]),multipleImplementations:(o=a.multipleImplementations)!==null&&o!==void 0?o:Or(a.multipleImplementations,"peek",["peek","gotoAndPeek","goto"]),multipleReferences:(s=a.multipleReferences)!==null&&s!==void 0?s:Or(a.multipleReferences,"peek",["peek","gotoAndPeek","goto"]),alternativeDefinitionCommand:qa.string(a.alternativeDefinitionCommand,this.defaultValue.alternativeDefinitionCommand),alternativeTypeDefinitionCommand:qa.string(a.alternativeTypeDefinitionCommand,this.defaultValue.alternativeTypeDefinitionCommand),alternativeDeclarationCommand:qa.string(a.alternativeDeclarationCommand,this.defaultValue.alternativeDeclarationCommand),alternativeImplementationCommand:qa.string(a.alternativeImplementationCommand,this.defaultValue.alternativeImplementationCommand),alternativeReferenceCommand:qa.string(a.alternativeReferenceCommand,this.defaultValue.alternativeReferenceCommand)}}}class ept extends Sr{constructor(){const e={enabled:!0,delay:300,hidingDelay:300,sticky:!0,above:!0};super(60,"hover",e,{"editor.hover.enabled":{type:"boolean",default:e.enabled,description:x("hover.enabled","Controls whether the hover is shown.")},"editor.hover.delay":{type:"number",default:e.delay,minimum:0,maximum:1e4,description:x("hover.delay","Controls the delay in milliseconds after which the hover is shown.")},"editor.hover.sticky":{type:"boolean",default:e.sticky,description:x("hover.sticky","Controls whether the hover should remain visible when mouse is moved over it.")},"editor.hover.hidingDelay":{type:"integer",minimum:0,default:e.hidingDelay,description:x("hover.hidingDelay","Controls the delay in milliseconds after which the hover is hidden. Requires `editor.hover.sticky` to be enabled.")},"editor.hover.above":{type:"boolean",default:e.above,description:x("hover.above","Prefer showing hovers above the line, if there's space.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:Pt(t.enabled,this.defaultValue.enabled),delay:Hi.clampedInt(t.delay,this.defaultValue.delay,0,1e4),sticky:Pt(t.sticky,this.defaultValue.sticky),hidingDelay:Hi.clampedInt(t.hidingDelay,this.defaultValue.hidingDelay,0,6e5),above:Pt(t.above,this.defaultValue.above)}}}class y2 extends QF{constructor(){super(144)}compute(e,t,i){return y2.computeLayout(t,{memory:e.memory,outerWidth:e.outerWidth,outerHeight:e.outerHeight,isDominatedByLongLines:e.isDominatedByLongLines,lineHeight:e.fontInfo.lineHeight,viewLineCount:e.viewLineCount,lineNumbersDigitCount:e.lineNumbersDigitCount,typicalHalfwidthCharacterWidth:e.fontInfo.typicalHalfwidthCharacterWidth,maxDigitWidth:e.fontInfo.maxDigitWidth,pixelRatio:e.pixelRatio,glyphMarginDecorationLaneCount:e.glyphMarginDecorationLaneCount})}static computeContainedMinimapLineCount(e){const t=e.height/e.lineHeight,i=Math.floor(e.paddingTop/e.lineHeight);let r=Math.floor(e.paddingBottom/e.lineHeight);e.scrollBeyondLastLine&&(r=Math.max(r,t-1));const o=(i+e.viewLineCount+r)/(e.pixelRatio*e.height),s=Math.floor(e.viewLineCount/o);return{typicalViewportLineCount:t,extraLinesBeforeFirstLine:i,extraLinesBeyondLastLine:r,desiredRatio:o,minimapLineCount:s}}static _computeMinimapLayout(e,t){const i=e.outerWidth,r=e.outerHeight,o=e.pixelRatio;if(!e.minimap.enabled)return{renderMinimap:0,minimapLeft:0,minimapWidth:0,minimapHeightIsEditorHeight:!1,minimapIsSampling:!1,minimapScale:1,minimapLineHeight:1,minimapCanvasInnerWidth:0,minimapCanvasInnerHeight:Math.floor(o*r),minimapCanvasOuterWidth:0,minimapCanvasOuterHeight:r};const s=t.stableMinimapLayoutInput,a=s&&e.outerHeight===s.outerHeight&&e.lineHeight===s.lineHeight&&e.typicalHalfwidthCharacterWidth===s.typicalHalfwidthCharacterWidth&&e.pixelRatio===s.pixelRatio&&e.scrollBeyondLastLine===s.scrollBeyondLastLine&&e.paddingTop===s.paddingTop&&e.paddingBottom===s.paddingBottom&&e.minimap.enabled===s.minimap.enabled&&e.minimap.side===s.minimap.side&&e.minimap.size===s.minimap.size&&e.minimap.showSlider===s.minimap.showSlider&&e.minimap.renderCharacters===s.minimap.renderCharacters&&e.minimap.maxColumn===s.minimap.maxColumn&&e.minimap.scale===s.minimap.scale&&e.verticalScrollbarWidth===s.verticalScrollbarWidth&&e.isViewportWrapping===s.isViewportWrapping,l=e.lineHeight,u=e.typicalHalfwidthCharacterWidth,c=e.scrollBeyondLastLine,d=e.minimap.renderCharacters;let h=o>=2?Math.round(e.minimap.scale*2):e.minimap.scale;const g=e.minimap.maxColumn,m=e.minimap.size,f=e.minimap.side,b=e.verticalScrollbarWidth,C=e.viewLineCount,v=e.remainingWidth,w=e.isViewportWrapping,S=d?2:3;let F=Math.floor(o*r);const L=F/o;let D=!1,A=!1,M=S*h,W=h/o,Z=1;if(m==="fill"||m==="fit"){const{typicalViewportLineCount:B,extraLinesBeforeFirstLine:Y,extraLinesBeyondLastLine:k,desiredRatio:X,minimapLineCount:U}=y2.computeContainedMinimapLineCount({viewLineCount:C,scrollBeyondLastLine:c,paddingTop:e.paddingTop,paddingBottom:e.paddingBottom,height:r,lineHeight:l,pixelRatio:o});if(C/U>1)D=!0,A=!0,h=1,M=1,W=h/o;else{let ee=!1,oe=h+1;if(m==="fit"){const se=Math.ceil((Y+C+k)*M);w&&a&&v<=t.stableFitRemainingWidth?(ee=!0,oe=t.stableFitMaxMinimapScale):ee=se>F}if(m==="fill"||ee){D=!0;const se=h;M=Math.min(l*o,Math.max(1,Math.floor(1/X))),w&&a&&v<=t.stableFitRemainingWidth&&(oe=t.stableFitMaxMinimapScale),h=Math.min(oe,Math.max(1,Math.floor(M/S))),h>se&&(Z=Math.min(2,h/se)),W=h/o/Z,F=Math.ceil(Math.max(B,Y+C+k)*M),w?(t.stableMinimapLayoutInput=e,t.stableFitRemainingWidth=v,t.stableFitMaxMinimapScale=h):(t.stableMinimapLayoutInput=null,t.stableFitRemainingWidth=0)}}}const T=Math.floor(g*W),E=Math.min(T,Math.max(0,Math.floor((v-b-2)*W/(u+W)))+Mb);let V=Math.floor(o*E);const z=V/o;V=Math.floor(V*Z);const O=d?1:2,P=f==="left"?0:i-E-b;return{renderMinimap:O,minimapLeft:P,minimapWidth:E,minimapHeightIsEditorHeight:D,minimapIsSampling:A,minimapScale:h,minimapLineHeight:M,minimapCanvasInnerWidth:V,minimapCanvasInnerHeight:F,minimapCanvasOuterWidth:z,minimapCanvasOuterHeight:L}}static computeLayout(e,t){const i=t.outerWidth|0,r=t.outerHeight|0,o=t.lineHeight|0,s=t.lineNumbersDigitCount|0,a=t.typicalHalfwidthCharacterWidth,l=t.maxDigitWidth,u=t.pixelRatio,c=t.viewLineCount,d=e.get(136),h=d==="inherit"?e.get(135):d,g=h==="inherit"?e.get(131):h,m=e.get(134),f=t.isDominatedByLongLines,b=e.get(57),C=e.get(68).renderType!==0,v=e.get(69),w=e.get(105),S=e.get(84),F=e.get(73),L=e.get(103),D=L.verticalScrollbarSize,A=L.verticalHasArrows,M=L.arrowSize,W=L.horizontalScrollbarSize,Z=e.get(43),T=e.get(110)!=="never";let E=e.get(66);Z&&T&&(E+=16);let V=0;if(C){const ce=Math.max(s,v);V=Math.round(ce*l)}let z=0;b&&(z=o*t.glyphMarginDecorationLaneCount);let O=0,P=O+z,B=P+V,Y=B+E;const k=i-z-V-E;let X=!1,U=!1,R=-1;h==="inherit"&&f?(X=!0,U=!0):g==="on"||g==="bounded"?U=!0:g==="wordWrapColumn"&&(R=m);const ee=y2._computeMinimapLayout({outerWidth:i,outerHeight:r,lineHeight:o,typicalHalfwidthCharacterWidth:a,pixelRatio:u,scrollBeyondLastLine:w,paddingTop:S.top,paddingBottom:S.bottom,minimap:F,verticalScrollbarWidth:D,viewLineCount:c,remainingWidth:k,isViewportWrapping:U},t.memory||new c1e);ee.renderMinimap!==0&&ee.minimapLeft===0&&(O+=ee.minimapWidth,P+=ee.minimapWidth,B+=ee.minimapWidth,Y+=ee.minimapWidth);const oe=k-ee.minimapWidth,se=Math.max(1,Math.floor((oe-D-2)/a)),ue=A?M:0;return U&&(R=Math.max(1,se),g==="bounded"&&(R=Math.min(R,m))),{width:i,height:r,glyphMarginLeft:O,glyphMarginWidth:z,glyphMarginDecorationLaneCount:t.glyphMarginDecorationLaneCount,lineNumbersLeft:P,lineNumbersWidth:V,decorationsLeft:B,decorationsWidth:E,contentLeft:Y,contentWidth:oe,minimap:ee,viewportColumn:se,isWordWrapMinified:X,isViewportWrapping:U,wrappingColumn:R,verticalScrollbarWidth:D,horizontalScrollbarHeight:W,overviewRuler:{top:ue,width:D,height:r-2*ue,right:0}}}}class tpt extends Sr{constructor(){super(138,"wrappingStrategy","simple",{"editor.wrappingStrategy":{enumDescriptions:[x("wrappingStrategy.simple","Assumes that all characters are of the same width. This is a fast algorithm that works correctly for monospace fonts and certain scripts (like Latin characters) where glyphs are of equal width."),x("wrappingStrategy.advanced","Delegates wrapping points computation to the browser. This is a slow algorithm, that might cause freezes for large files, but it works correctly in all cases.")],type:"string",enum:["simple","advanced"],default:"simple",description:x("wrappingStrategy","Controls the algorithm that computes wrapping points. Note that when in accessibility mode, advanced will be used for the best experience.")}})}validate(e){return Or(e,"simple",["simple","advanced"])}compute(e,t,i){return t.get(2)===2?"advanced":i}}var Cd;(function(n){n.Off="off",n.OnCode="onCode",n.On="on"})(Cd||(Cd={}));class npt extends Sr{constructor(){const e={enabled:Cd.OnCode};super(65,"lightbulb",e,{"editor.lightbulb.enabled":{type:"string",tags:["experimental"],enum:[Cd.Off,Cd.OnCode,Cd.On],default:e.enabled,enumDescriptions:[x("editor.lightbulb.enabled.off","Disable the code action menu."),x("editor.lightbulb.enabled.onCode","Show the code action menu when the cursor is on lines with code."),x("editor.lightbulb.enabled.on","Show the code action menu when the cursor is on lines with code or on empty lines.")],description:x("enabled","Enables the Code Action lightbulb in the editor.")}})}validate(e){return!e||typeof e!="object"?this.defaultValue:{enabled:Or(e.enabled,this.defaultValue.enabled,[Cd.Off,Cd.OnCode,Cd.On])}}}class ipt extends Sr{constructor(){const e={enabled:!0,maxLineCount:5,defaultModel:"outlineModel",scrollWithEditor:!0};super(115,"stickyScroll",e,{"editor.stickyScroll.enabled":{type:"boolean",default:e.enabled,description:x("editor.stickyScroll.enabled","Shows the nested current scopes during the scroll at the top of the editor."),tags:["experimental"]},"editor.stickyScroll.maxLineCount":{type:"number",default:e.maxLineCount,minimum:1,maximum:20,description:x("editor.stickyScroll.maxLineCount","Defines the maximum number of sticky lines to show.")},"editor.stickyScroll.defaultModel":{type:"string",enum:["outlineModel","foldingProviderModel","indentationModel"],default:e.defaultModel,description:x("editor.stickyScroll.defaultModel","Defines the model to use for determining which lines to stick. If the outline model does not exist, it will fall back on the folding provider model which falls back on the indentation model. This order is respected in all three cases.")},"editor.stickyScroll.scrollWithEditor":{type:"boolean",default:e.scrollWithEditor,description:x("editor.stickyScroll.scrollWithEditor","Enable scrolling of Sticky Scroll with the editor's horizontal scrollbar.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:Pt(t.enabled,this.defaultValue.enabled),maxLineCount:Hi.clampedInt(t.maxLineCount,this.defaultValue.maxLineCount,1,20),defaultModel:Or(t.defaultModel,this.defaultValue.defaultModel,["outlineModel","foldingProviderModel","indentationModel"]),scrollWithEditor:Pt(t.scrollWithEditor,this.defaultValue.scrollWithEditor)}}}class rpt extends Sr{constructor(){const e={enabled:"on",fontSize:0,fontFamily:"",padding:!1};super(140,"inlayHints",e,{"editor.inlayHints.enabled":{type:"string",default:e.enabled,description:x("inlayHints.enable","Enables the inlay hints in the editor."),enum:["on","onUnlessPressed","offUnlessPressed","off"],markdownEnumDescriptions:[x("editor.inlayHints.on","Inlay hints are enabled"),x("editor.inlayHints.onUnlessPressed","Inlay hints are showing by default and hide when holding {0}",$n?"Ctrl+Option":"Ctrl+Alt"),x("editor.inlayHints.offUnlessPressed","Inlay hints are hidden by default and show when holding {0}",$n?"Ctrl+Option":"Ctrl+Alt"),x("editor.inlayHints.off","Inlay hints are disabled")]},"editor.inlayHints.fontSize":{type:"number",default:e.fontSize,markdownDescription:x("inlayHints.fontSize","Controls font size of inlay hints in the editor. As default the {0} is used when the configured value is less than {1} or greater than the editor font size.","`#editor.fontSize#`","`5`")},"editor.inlayHints.fontFamily":{type:"string",default:e.fontFamily,markdownDescription:x("inlayHints.fontFamily","Controls font family of inlay hints in the editor. When set to empty, the {0} is used.","`#editor.fontFamily#`")},"editor.inlayHints.padding":{type:"boolean",default:e.padding,description:x("inlayHints.padding","Enables the padding around the inlay hints in the editor.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return typeof t.enabled=="boolean"&&(t.enabled=t.enabled?"on":"off"),{enabled:Or(t.enabled,this.defaultValue.enabled,["on","off","offUnlessPressed","onUnlessPressed"]),fontSize:Hi.clampedInt(t.fontSize,this.defaultValue.fontSize,0,100),fontFamily:qa.string(t.fontFamily,this.defaultValue.fontFamily),padding:Pt(t.padding,this.defaultValue.padding)}}}class opt extends Sr{constructor(){super(66,"lineDecorationsWidth",10)}validate(e){return typeof e=="string"&&/^\d+(\.\d+)?ch$/.test(e)?-parseFloat(e.substring(0,e.length-2)):Hi.clampedInt(e,this.defaultValue,0,1e3)}compute(e,t,i){return i<0?Hi.clampedInt(-i*e.fontInfo.typicalHalfwidthCharacterWidth,this.defaultValue,0,1e3):i}}class spt extends bd{constructor(){super(67,"lineHeight",Zl.lineHeight,e=>bd.clamp(e,0,150),{markdownDescription:x("lineHeight",`Controls the line height. + - Use 0 to automatically compute the line height from the font size. + - Values between 0 and 8 will be used as a multiplier with the font size. + - Values greater than or equal to 8 will be used as effective values.`)})}compute(e,t,i){return e.fontInfo.lineHeight}}class apt extends Sr{constructor(){const e={enabled:!0,size:"proportional",side:"right",showSlider:"mouseover",autohide:!1,renderCharacters:!0,maxColumn:120,scale:1};super(73,"minimap",e,{"editor.minimap.enabled":{type:"boolean",default:e.enabled,description:x("minimap.enabled","Controls whether the minimap is shown.")},"editor.minimap.autohide":{type:"boolean",default:e.autohide,description:x("minimap.autohide","Controls whether the minimap is hidden automatically.")},"editor.minimap.size":{type:"string",enum:["proportional","fill","fit"],enumDescriptions:[x("minimap.size.proportional","The minimap has the same size as the editor contents (and might scroll)."),x("minimap.size.fill","The minimap will stretch or shrink as necessary to fill the height of the editor (no scrolling)."),x("minimap.size.fit","The minimap will shrink as necessary to never be larger than the editor (no scrolling).")],default:e.size,description:x("minimap.size","Controls the size of the minimap.")},"editor.minimap.side":{type:"string",enum:["left","right"],default:e.side,description:x("minimap.side","Controls the side where to render the minimap.")},"editor.minimap.showSlider":{type:"string",enum:["always","mouseover"],default:e.showSlider,description:x("minimap.showSlider","Controls when the minimap slider is shown.")},"editor.minimap.scale":{type:"number",default:e.scale,minimum:1,maximum:3,enum:[1,2,3],description:x("minimap.scale","Scale of content drawn in the minimap: 1, 2 or 3.")},"editor.minimap.renderCharacters":{type:"boolean",default:e.renderCharacters,description:x("minimap.renderCharacters","Render the actual characters on a line as opposed to color blocks.")},"editor.minimap.maxColumn":{type:"number",default:e.maxColumn,description:x("minimap.maxColumn","Limit the width of the minimap to render at most a certain number of columns.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:Pt(t.enabled,this.defaultValue.enabled),autohide:Pt(t.autohide,this.defaultValue.autohide),size:Or(t.size,this.defaultValue.size,["proportional","fill","fit"]),side:Or(t.side,this.defaultValue.side,["right","left"]),showSlider:Or(t.showSlider,this.defaultValue.showSlider,["always","mouseover"]),renderCharacters:Pt(t.renderCharacters,this.defaultValue.renderCharacters),scale:Hi.clampedInt(t.scale,1,1,3),maxColumn:Hi.clampedInt(t.maxColumn,this.defaultValue.maxColumn,1,1e4)}}}function lpt(n){return n==="ctrlCmd"?$n?"metaKey":"ctrlKey":"altKey"}class upt extends Sr{constructor(){super(84,"padding",{top:0,bottom:0},{"editor.padding.top":{type:"number",default:0,minimum:0,maximum:1e3,description:x("padding.top","Controls the amount of space between the top edge of the editor and the first line.")},"editor.padding.bottom":{type:"number",default:0,minimum:0,maximum:1e3,description:x("padding.bottom","Controls the amount of space between the bottom edge of the editor and the last line.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{top:Hi.clampedInt(t.top,0,0,1e3),bottom:Hi.clampedInt(t.bottom,0,0,1e3)}}}class cpt extends Sr{constructor(){const e={enabled:!0,cycle:!0};super(86,"parameterHints",e,{"editor.parameterHints.enabled":{type:"boolean",default:e.enabled,description:x("parameterHints.enabled","Enables a pop-up that shows parameter documentation and type information as you type.")},"editor.parameterHints.cycle":{type:"boolean",default:e.cycle,description:x("parameterHints.cycle","Controls whether the parameter hints menu cycles or closes when reaching the end of the list.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:Pt(t.enabled,this.defaultValue.enabled),cycle:Pt(t.cycle,this.defaultValue.cycle)}}}class dpt extends QF{constructor(){super(142)}compute(e,t,i){return e.pixelRatio}}class hpt extends Sr{constructor(){const e={other:"on",comments:"off",strings:"off"},t=[{type:"boolean"},{type:"string",enum:["on","inline","off"],enumDescriptions:[x("on","Quick suggestions show inside the suggest widget"),x("inline","Quick suggestions show as ghost text"),x("off","Quick suggestions are disabled")]}];super(89,"quickSuggestions",e,{type:"object",additionalProperties:!1,properties:{strings:{anyOf:t,default:e.strings,description:x("quickSuggestions.strings","Enable quick suggestions inside strings.")},comments:{anyOf:t,default:e.comments,description:x("quickSuggestions.comments","Enable quick suggestions inside comments.")},other:{anyOf:t,default:e.other,description:x("quickSuggestions.other","Enable quick suggestions outside of strings and comments.")}},default:e,markdownDescription:x("quickSuggestions","Controls whether suggestions should automatically show up while typing. This can be controlled for typing in comments, strings, and other code. Quick suggestion can be configured to show as ghost text or with the suggest widget. Also be aware of the '{0}'-setting which controls if suggestions are triggered by special characters.","#editor.suggestOnTriggerCharacters#")}),this.defaultValue=e}validate(e){if(typeof e=="boolean"){const u=e?"on":"off";return{comments:u,strings:u,other:u}}if(!e||typeof e!="object")return this.defaultValue;const{other:t,comments:i,strings:r}=e,o=["on","inline","off"];let s,a,l;return typeof t=="boolean"?s=t?"on":"off":s=Or(t,this.defaultValue.other,o),typeof i=="boolean"?a=i?"on":"off":a=Or(i,this.defaultValue.comments,o),typeof r=="boolean"?l=r?"on":"off":l=Or(r,this.defaultValue.strings,o),{other:s,comments:a,strings:l}}}class gpt extends Sr{constructor(){super(68,"lineNumbers",{renderType:1,renderFn:null},{type:"string",enum:["off","on","relative","interval"],enumDescriptions:[x("lineNumbers.off","Line numbers are not rendered."),x("lineNumbers.on","Line numbers are rendered as absolute number."),x("lineNumbers.relative","Line numbers are rendered as distance in lines to cursor position."),x("lineNumbers.interval","Line numbers are rendered every 10 lines.")],default:"on",description:x("lineNumbers","Controls the display of line numbers.")})}validate(e){let t=this.defaultValue.renderType,i=this.defaultValue.renderFn;return typeof e<"u"&&(typeof e=="function"?(t=4,i=e):e==="interval"?t=3:e==="relative"?t=2:e==="on"?t=1:t=0),{renderType:t,renderFn:i}}}function pT(n){const e=n.get(98);return e==="editable"?n.get(91):e!=="on"}class mpt extends Sr{constructor(){const e=[],t={type:"number",description:x("rulers.size","Number of monospace characters at which this editor ruler will render.")};super(102,"rulers",e,{type:"array",items:{anyOf:[t,{type:["object"],properties:{column:t,color:{type:"string",description:x("rulers.color","Color of this editor ruler."),format:"color-hex"}}}]},default:e,description:x("rulers","Render vertical rulers after a certain number of monospace characters. Use multiple values for multiple rulers. No rulers are drawn if array is empty.")})}validate(e){if(Array.isArray(e)){const t=[];for(const i of e)if(typeof i=="number")t.push({column:Hi.clampedInt(i,0,0,1e4),color:null});else if(i&&typeof i=="object"){const r=i;t.push({column:Hi.clampedInt(r.column,0,0,1e4),color:r.color})}return t.sort((i,r)=>i.column-r.column),t}return this.defaultValue}}class fpt extends Sr{constructor(){super(92,"readOnlyMessage",void 0)}validate(e){return!e||typeof e!="object"?this.defaultValue:e}}function d1e(n,e){if(typeof n!="string")return e;switch(n){case"hidden":return 2;case"visible":return 3;default:return 1}}let ppt=class extends Sr{constructor(){const e={vertical:1,horizontal:1,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:12,horizontalSliderSize:12,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,alwaysConsumeMouseWheel:!0,scrollByPage:!1,ignoreHorizontalScrollbarInContentHeight:!1};super(103,"scrollbar",e,{"editor.scrollbar.vertical":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[x("scrollbar.vertical.auto","The vertical scrollbar will be visible only when necessary."),x("scrollbar.vertical.visible","The vertical scrollbar will always be visible."),x("scrollbar.vertical.fit","The vertical scrollbar will always be hidden.")],default:"auto",description:x("scrollbar.vertical","Controls the visibility of the vertical scrollbar.")},"editor.scrollbar.horizontal":{type:"string",enum:["auto","visible","hidden"],enumDescriptions:[x("scrollbar.horizontal.auto","The horizontal scrollbar will be visible only when necessary."),x("scrollbar.horizontal.visible","The horizontal scrollbar will always be visible."),x("scrollbar.horizontal.fit","The horizontal scrollbar will always be hidden.")],default:"auto",description:x("scrollbar.horizontal","Controls the visibility of the horizontal scrollbar.")},"editor.scrollbar.verticalScrollbarSize":{type:"number",default:e.verticalScrollbarSize,description:x("scrollbar.verticalScrollbarSize","The width of the vertical scrollbar.")},"editor.scrollbar.horizontalScrollbarSize":{type:"number",default:e.horizontalScrollbarSize,description:x("scrollbar.horizontalScrollbarSize","The height of the horizontal scrollbar.")},"editor.scrollbar.scrollByPage":{type:"boolean",default:e.scrollByPage,description:x("scrollbar.scrollByPage","Controls whether clicks scroll by page or jump to click position.")},"editor.scrollbar.ignoreHorizontalScrollbarInContentHeight":{type:"boolean",default:e.ignoreHorizontalScrollbarInContentHeight,description:x("scrollbar.ignoreHorizontalScrollbarInContentHeight","When set, the horizontal scrollbar will not increase the size of the editor's content.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e,i=Hi.clampedInt(t.horizontalScrollbarSize,this.defaultValue.horizontalScrollbarSize,0,1e3),r=Hi.clampedInt(t.verticalScrollbarSize,this.defaultValue.verticalScrollbarSize,0,1e3);return{arrowSize:Hi.clampedInt(t.arrowSize,this.defaultValue.arrowSize,0,1e3),vertical:d1e(t.vertical,this.defaultValue.vertical),horizontal:d1e(t.horizontal,this.defaultValue.horizontal),useShadows:Pt(t.useShadows,this.defaultValue.useShadows),verticalHasArrows:Pt(t.verticalHasArrows,this.defaultValue.verticalHasArrows),horizontalHasArrows:Pt(t.horizontalHasArrows,this.defaultValue.horizontalHasArrows),handleMouseWheel:Pt(t.handleMouseWheel,this.defaultValue.handleMouseWheel),alwaysConsumeMouseWheel:Pt(t.alwaysConsumeMouseWheel,this.defaultValue.alwaysConsumeMouseWheel),horizontalScrollbarSize:i,horizontalSliderSize:Hi.clampedInt(t.horizontalSliderSize,i,0,1e3),verticalScrollbarSize:r,verticalSliderSize:Hi.clampedInt(t.verticalSliderSize,r,0,1e3),scrollByPage:Pt(t.scrollByPage,this.defaultValue.scrollByPage),ignoreHorizontalScrollbarInContentHeight:Pt(t.ignoreHorizontalScrollbarInContentHeight,this.defaultValue.ignoreHorizontalScrollbarInContentHeight)}}};const Xu="inUntrustedWorkspace",Ml={allowedCharacters:"editor.unicodeHighlight.allowedCharacters",invisibleCharacters:"editor.unicodeHighlight.invisibleCharacters",nonBasicASCII:"editor.unicodeHighlight.nonBasicASCII",ambiguousCharacters:"editor.unicodeHighlight.ambiguousCharacters",includeComments:"editor.unicodeHighlight.includeComments",includeStrings:"editor.unicodeHighlight.includeStrings",allowedLocales:"editor.unicodeHighlight.allowedLocales"};class bpt extends Sr{constructor(){const e={nonBasicASCII:Xu,invisibleCharacters:!0,ambiguousCharacters:!0,includeComments:Xu,includeStrings:!0,allowedCharacters:{},allowedLocales:{_os:!0,_vscode:!0}};super(125,"unicodeHighlight",e,{[Ml.nonBasicASCII]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Xu],default:e.nonBasicASCII,description:x("unicodeHighlight.nonBasicASCII","Controls whether all non-basic ASCII characters are highlighted. Only characters between U+0020 and U+007E, tab, line-feed and carriage-return are considered basic ASCII.")},[Ml.invisibleCharacters]:{restricted:!0,type:"boolean",default:e.invisibleCharacters,description:x("unicodeHighlight.invisibleCharacters","Controls whether characters that just reserve space or have no width at all are highlighted.")},[Ml.ambiguousCharacters]:{restricted:!0,type:"boolean",default:e.ambiguousCharacters,description:x("unicodeHighlight.ambiguousCharacters","Controls whether characters are highlighted that can be confused with basic ASCII characters, except those that are common in the current user locale.")},[Ml.includeComments]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Xu],default:e.includeComments,description:x("unicodeHighlight.includeComments","Controls whether characters in comments should also be subject to Unicode highlighting.")},[Ml.includeStrings]:{restricted:!0,type:["boolean","string"],enum:[!0,!1,Xu],default:e.includeStrings,description:x("unicodeHighlight.includeStrings","Controls whether characters in strings should also be subject to Unicode highlighting.")},[Ml.allowedCharacters]:{restricted:!0,type:"object",default:e.allowedCharacters,description:x("unicodeHighlight.allowedCharacters","Defines allowed characters that are not being highlighted."),additionalProperties:{type:"boolean"}},[Ml.allowedLocales]:{restricted:!0,type:"object",additionalProperties:{type:"boolean"},default:e.allowedLocales,description:x("unicodeHighlight.allowedLocales","Unicode characters that are common in allowed locales are not being highlighted.")}})}applyUpdate(e,t){let i=!1;t.allowedCharacters&&e&&(Gu(e.allowedCharacters,t.allowedCharacters)||(e={...e,allowedCharacters:t.allowedCharacters},i=!0)),t.allowedLocales&&e&&(Gu(e.allowedLocales,t.allowedLocales)||(e={...e,allowedLocales:t.allowedLocales},i=!0));const r=super.applyUpdate(e,t);return i?new jF(r.newValue,!0):r}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{nonBasicASCII:I2(t.nonBasicASCII,Xu,[!0,!1,Xu]),invisibleCharacters:Pt(t.invisibleCharacters,this.defaultValue.invisibleCharacters),ambiguousCharacters:Pt(t.ambiguousCharacters,this.defaultValue.ambiguousCharacters),includeComments:I2(t.includeComments,Xu,[!0,!1,Xu]),includeStrings:I2(t.includeStrings,Xu,[!0,!1,Xu]),allowedCharacters:this.validateBooleanMap(e.allowedCharacters,this.defaultValue.allowedCharacters),allowedLocales:this.validateBooleanMap(e.allowedLocales,this.defaultValue.allowedLocales)}}validateBooleanMap(e,t){if(typeof e!="object"||!e)return t;const i={};for(const[r,o]of Object.entries(e))o===!0&&(i[r]=!0);return i}}class Cpt extends Sr{constructor(){const e={enabled:!0,mode:"subwordSmart",showToolbar:"onHover",suppressSuggestions:!1,keepOnBlur:!1,fontFamily:"default"};super(62,"inlineSuggest",e,{"editor.inlineSuggest.enabled":{type:"boolean",default:e.enabled,description:x("inlineSuggest.enabled","Controls whether to automatically show inline suggestions in the editor.")},"editor.inlineSuggest.showToolbar":{type:"string",default:e.showToolbar,enum:["always","onHover","never"],enumDescriptions:[x("inlineSuggest.showToolbar.always","Show the inline suggestion toolbar whenever an inline suggestion is shown."),x("inlineSuggest.showToolbar.onHover","Show the inline suggestion toolbar when hovering over an inline suggestion."),x("inlineSuggest.showToolbar.never","Never show the inline suggestion toolbar.")],description:x("inlineSuggest.showToolbar","Controls when to show the inline suggestion toolbar.")},"editor.inlineSuggest.suppressSuggestions":{type:"boolean",default:e.suppressSuggestions,description:x("inlineSuggest.suppressSuggestions","Controls how inline suggestions interact with the suggest widget. If enabled, the suggest widget is not shown automatically when inline suggestions are available.")},"editor.inlineSuggest.fontFamily":{type:"string",default:e.fontFamily,description:x("inlineSuggest.fontFamily","Controls the font family of the inline suggestions.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:Pt(t.enabled,this.defaultValue.enabled),mode:Or(t.mode,this.defaultValue.mode,["prefix","subword","subwordSmart"]),showToolbar:Or(t.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),suppressSuggestions:Pt(t.suppressSuggestions,this.defaultValue.suppressSuggestions),keepOnBlur:Pt(t.keepOnBlur,this.defaultValue.keepOnBlur),fontFamily:qa.string(t.fontFamily,this.defaultValue.fontFamily)}}}class vpt extends Sr{constructor(){const e={enabled:!1,showToolbar:"onHover",fontFamily:"default",keepOnBlur:!1,backgroundColoring:!1};super(63,"experimentalInlineEdit",e,{"editor.experimentalInlineEdit.enabled":{type:"boolean",default:e.enabled,description:x("inlineEdit.enabled","Controls whether to show inline edits in the editor.")},"editor.experimentalInlineEdit.showToolbar":{type:"string",default:e.showToolbar,enum:["always","onHover","never"],enumDescriptions:[x("inlineEdit.showToolbar.always","Show the inline edit toolbar whenever an inline suggestion is shown."),x("inlineEdit.showToolbar.onHover","Show the inline edit toolbar when hovering over an inline suggestion."),x("inlineEdit.showToolbar.never","Never show the inline edit toolbar.")],description:x("inlineEdit.showToolbar","Controls when to show the inline edit toolbar.")},"editor.experimentalInlineEdit.fontFamily":{type:"string",default:e.fontFamily,description:x("inlineEdit.fontFamily","Controls the font family of the inline edit.")},"editor.experimentalInlineEdit.backgroundColoring":{type:"boolean",default:e.backgroundColoring,description:x("inlineEdit.backgroundColoring","Controls whether to color the background of inline edits.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:Pt(t.enabled,this.defaultValue.enabled),showToolbar:Or(t.showToolbar,this.defaultValue.showToolbar,["always","onHover","never"]),fontFamily:qa.string(t.fontFamily,this.defaultValue.fontFamily),keepOnBlur:Pt(t.keepOnBlur,this.defaultValue.keepOnBlur),backgroundColoring:Pt(t.backgroundColoring,this.defaultValue.backgroundColoring)}}}class ypt extends Sr{constructor(){const e={enabled:ha.bracketPairColorizationOptions.enabled,independentColorPoolPerBracketType:ha.bracketPairColorizationOptions.independentColorPoolPerBracketType};super(15,"bracketPairColorization",e,{"editor.bracketPairColorization.enabled":{type:"boolean",default:e.enabled,markdownDescription:x("bracketPairColorization.enabled","Controls whether bracket pair colorization is enabled or not. Use {0} to override the bracket highlight colors.","`#workbench.colorCustomizations#`")},"editor.bracketPairColorization.independentColorPoolPerBracketType":{type:"boolean",default:e.independentColorPoolPerBracketType,description:x("bracketPairColorization.independentColorPoolPerBracketType","Controls whether each bracket type has its own independent color pool.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:Pt(t.enabled,this.defaultValue.enabled),independentColorPoolPerBracketType:Pt(t.independentColorPoolPerBracketType,this.defaultValue.independentColorPoolPerBracketType)}}}class Ipt extends Sr{constructor(){const e={bracketPairs:!1,bracketPairsHorizontal:"active",highlightActiveBracketPair:!0,indentation:!0,highlightActiveIndentation:!0};super(16,"guides",e,{"editor.guides.bracketPairs":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[x("editor.guides.bracketPairs.true","Enables bracket pair guides."),x("editor.guides.bracketPairs.active","Enables bracket pair guides only for the active bracket pair."),x("editor.guides.bracketPairs.false","Disables bracket pair guides.")],default:e.bracketPairs,description:x("editor.guides.bracketPairs","Controls whether bracket pair guides are enabled or not.")},"editor.guides.bracketPairsHorizontal":{type:["boolean","string"],enum:[!0,"active",!1],enumDescriptions:[x("editor.guides.bracketPairsHorizontal.true","Enables horizontal guides as addition to vertical bracket pair guides."),x("editor.guides.bracketPairsHorizontal.active","Enables horizontal guides only for the active bracket pair."),x("editor.guides.bracketPairsHorizontal.false","Disables horizontal bracket pair guides.")],default:e.bracketPairsHorizontal,description:x("editor.guides.bracketPairsHorizontal","Controls whether horizontal bracket pair guides are enabled or not.")},"editor.guides.highlightActiveBracketPair":{type:"boolean",default:e.highlightActiveBracketPair,description:x("editor.guides.highlightActiveBracketPair","Controls whether the editor should highlight the active bracket pair.")},"editor.guides.indentation":{type:"boolean",default:e.indentation,description:x("editor.guides.indentation","Controls whether the editor should render indent guides.")},"editor.guides.highlightActiveIndentation":{type:["boolean","string"],enum:[!0,"always",!1],enumDescriptions:[x("editor.guides.highlightActiveIndentation.true","Highlights the active indent guide."),x("editor.guides.highlightActiveIndentation.always","Highlights the active indent guide even if bracket guides are highlighted."),x("editor.guides.highlightActiveIndentation.false","Do not highlight the active indent guide.")],default:e.highlightActiveIndentation,description:x("editor.guides.highlightActiveIndentation","Controls whether the editor should highlight the active indent guide.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{bracketPairs:I2(t.bracketPairs,this.defaultValue.bracketPairs,[!0,!1,"active"]),bracketPairsHorizontal:I2(t.bracketPairsHorizontal,this.defaultValue.bracketPairsHorizontal,[!0,!1,"active"]),highlightActiveBracketPair:Pt(t.highlightActiveBracketPair,this.defaultValue.highlightActiveBracketPair),indentation:Pt(t.indentation,this.defaultValue.indentation),highlightActiveIndentation:I2(t.highlightActiveIndentation,this.defaultValue.highlightActiveIndentation,[!0,!1,"always"])}}}function I2(n,e,t){const i=t.indexOf(n);return i===-1?e:t[i]}class wpt extends Sr{constructor(){const e={insertMode:"insert",filterGraceful:!0,snippetsPreventQuickSuggestions:!1,localityBonus:!1,shareSuggestSelections:!1,selectionMode:"always",showIcons:!0,showStatusBar:!1,preview:!1,previewMode:"subwordSmart",showInlineDetails:!0,showMethods:!0,showFunctions:!0,showConstructors:!0,showDeprecated:!0,matchOnWordStartOnly:!0,showFields:!0,showVariables:!0,showClasses:!0,showStructs:!0,showInterfaces:!0,showModules:!0,showProperties:!0,showEvents:!0,showOperators:!0,showUnits:!0,showValues:!0,showConstants:!0,showEnums:!0,showEnumMembers:!0,showKeywords:!0,showWords:!0,showColors:!0,showFiles:!0,showReferences:!0,showFolders:!0,showTypeParameters:!0,showSnippets:!0,showUsers:!0,showIssues:!0};super(118,"suggest",e,{"editor.suggest.insertMode":{type:"string",enum:["insert","replace"],enumDescriptions:[x("suggest.insertMode.insert","Insert suggestion without overwriting text right of the cursor."),x("suggest.insertMode.replace","Insert suggestion and overwrite text right of the cursor.")],default:e.insertMode,description:x("suggest.insertMode","Controls whether words are overwritten when accepting completions. Note that this depends on extensions opting into this feature.")},"editor.suggest.filterGraceful":{type:"boolean",default:e.filterGraceful,description:x("suggest.filterGraceful","Controls whether filtering and sorting suggestions accounts for small typos.")},"editor.suggest.localityBonus":{type:"boolean",default:e.localityBonus,description:x("suggest.localityBonus","Controls whether sorting favors words that appear close to the cursor.")},"editor.suggest.shareSuggestSelections":{type:"boolean",default:e.shareSuggestSelections,markdownDescription:x("suggest.shareSuggestSelections","Controls whether remembered suggestion selections are shared between multiple workspaces and windows (needs `#editor.suggestSelection#`).")},"editor.suggest.selectionMode":{type:"string",enum:["always","never","whenTriggerCharacter","whenQuickSuggestion"],enumDescriptions:[x("suggest.insertMode.always","Always select a suggestion when automatically triggering IntelliSense."),x("suggest.insertMode.never","Never select a suggestion when automatically triggering IntelliSense."),x("suggest.insertMode.whenTriggerCharacter","Select a suggestion only when triggering IntelliSense from a trigger character."),x("suggest.insertMode.whenQuickSuggestion","Select a suggestion only when triggering IntelliSense as you type.")],default:e.selectionMode,markdownDescription:x("suggest.selectionMode","Controls whether a suggestion is selected when the widget shows. Note that this only applies to automatically triggered suggestions (`#editor.quickSuggestions#` and `#editor.suggestOnTriggerCharacters#`) and that a suggestion is always selected when explicitly invoked, e.g via `Ctrl+Space`.")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:e.snippetsPreventQuickSuggestions,description:x("suggest.snippetsPreventQuickSuggestions","Controls whether an active snippet prevents quick suggestions.")},"editor.suggest.showIcons":{type:"boolean",default:e.showIcons,description:x("suggest.showIcons","Controls whether to show or hide icons in suggestions.")},"editor.suggest.showStatusBar":{type:"boolean",default:e.showStatusBar,description:x("suggest.showStatusBar","Controls the visibility of the status bar at the bottom of the suggest widget.")},"editor.suggest.preview":{type:"boolean",default:e.preview,description:x("suggest.preview","Controls whether to preview the suggestion outcome in the editor.")},"editor.suggest.showInlineDetails":{type:"boolean",default:e.showInlineDetails,description:x("suggest.showInlineDetails","Controls whether suggest details show inline with the label or only in the details widget.")},"editor.suggest.maxVisibleSuggestions":{type:"number",deprecationMessage:x("suggest.maxVisibleSuggestions.dep","This setting is deprecated. The suggest widget can now be resized.")},"editor.suggest.filteredTypes":{type:"object",deprecationMessage:x("deprecated","This setting is deprecated, please use separate settings like 'editor.suggest.showKeywords' or 'editor.suggest.showSnippets' instead.")},"editor.suggest.showMethods":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showMethods","When enabled IntelliSense shows `method`-suggestions.")},"editor.suggest.showFunctions":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showFunctions","When enabled IntelliSense shows `function`-suggestions.")},"editor.suggest.showConstructors":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showConstructors","When enabled IntelliSense shows `constructor`-suggestions.")},"editor.suggest.showDeprecated":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showDeprecated","When enabled IntelliSense shows `deprecated`-suggestions.")},"editor.suggest.matchOnWordStartOnly":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.matchOnWordStartOnly","When enabled IntelliSense filtering requires that the first character matches on a word start. For example, `c` on `Console` or `WebContext` but _not_ on `description`. When disabled IntelliSense will show more results but still sorts them by match quality.")},"editor.suggest.showFields":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showFields","When enabled IntelliSense shows `field`-suggestions.")},"editor.suggest.showVariables":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showVariables","When enabled IntelliSense shows `variable`-suggestions.")},"editor.suggest.showClasses":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showClasss","When enabled IntelliSense shows `class`-suggestions.")},"editor.suggest.showStructs":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showStructs","When enabled IntelliSense shows `struct`-suggestions.")},"editor.suggest.showInterfaces":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showInterfaces","When enabled IntelliSense shows `interface`-suggestions.")},"editor.suggest.showModules":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showModules","When enabled IntelliSense shows `module`-suggestions.")},"editor.suggest.showProperties":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showPropertys","When enabled IntelliSense shows `property`-suggestions.")},"editor.suggest.showEvents":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showEvents","When enabled IntelliSense shows `event`-suggestions.")},"editor.suggest.showOperators":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showOperators","When enabled IntelliSense shows `operator`-suggestions.")},"editor.suggest.showUnits":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showUnits","When enabled IntelliSense shows `unit`-suggestions.")},"editor.suggest.showValues":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showValues","When enabled IntelliSense shows `value`-suggestions.")},"editor.suggest.showConstants":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showConstants","When enabled IntelliSense shows `constant`-suggestions.")},"editor.suggest.showEnums":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showEnums","When enabled IntelliSense shows `enum`-suggestions.")},"editor.suggest.showEnumMembers":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showEnumMembers","When enabled IntelliSense shows `enumMember`-suggestions.")},"editor.suggest.showKeywords":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showKeywords","When enabled IntelliSense shows `keyword`-suggestions.")},"editor.suggest.showWords":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showTexts","When enabled IntelliSense shows `text`-suggestions.")},"editor.suggest.showColors":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showColors","When enabled IntelliSense shows `color`-suggestions.")},"editor.suggest.showFiles":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showFiles","When enabled IntelliSense shows `file`-suggestions.")},"editor.suggest.showReferences":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showReferences","When enabled IntelliSense shows `reference`-suggestions.")},"editor.suggest.showCustomcolors":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showCustomcolors","When enabled IntelliSense shows `customcolor`-suggestions.")},"editor.suggest.showFolders":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showFolders","When enabled IntelliSense shows `folder`-suggestions.")},"editor.suggest.showTypeParameters":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showTypeParameters","When enabled IntelliSense shows `typeParameter`-suggestions.")},"editor.suggest.showSnippets":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showSnippets","When enabled IntelliSense shows `snippet`-suggestions.")},"editor.suggest.showUsers":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showUsers","When enabled IntelliSense shows `user`-suggestions.")},"editor.suggest.showIssues":{type:"boolean",default:!0,markdownDescription:x("editor.suggest.showIssues","When enabled IntelliSense shows `issues`-suggestions.")}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{insertMode:Or(t.insertMode,this.defaultValue.insertMode,["insert","replace"]),filterGraceful:Pt(t.filterGraceful,this.defaultValue.filterGraceful),snippetsPreventQuickSuggestions:Pt(t.snippetsPreventQuickSuggestions,this.defaultValue.filterGraceful),localityBonus:Pt(t.localityBonus,this.defaultValue.localityBonus),shareSuggestSelections:Pt(t.shareSuggestSelections,this.defaultValue.shareSuggestSelections),selectionMode:Or(t.selectionMode,this.defaultValue.selectionMode,["always","never","whenQuickSuggestion","whenTriggerCharacter"]),showIcons:Pt(t.showIcons,this.defaultValue.showIcons),showStatusBar:Pt(t.showStatusBar,this.defaultValue.showStatusBar),preview:Pt(t.preview,this.defaultValue.preview),previewMode:Or(t.previewMode,this.defaultValue.previewMode,["prefix","subword","subwordSmart"]),showInlineDetails:Pt(t.showInlineDetails,this.defaultValue.showInlineDetails),showMethods:Pt(t.showMethods,this.defaultValue.showMethods),showFunctions:Pt(t.showFunctions,this.defaultValue.showFunctions),showConstructors:Pt(t.showConstructors,this.defaultValue.showConstructors),showDeprecated:Pt(t.showDeprecated,this.defaultValue.showDeprecated),matchOnWordStartOnly:Pt(t.matchOnWordStartOnly,this.defaultValue.matchOnWordStartOnly),showFields:Pt(t.showFields,this.defaultValue.showFields),showVariables:Pt(t.showVariables,this.defaultValue.showVariables),showClasses:Pt(t.showClasses,this.defaultValue.showClasses),showStructs:Pt(t.showStructs,this.defaultValue.showStructs),showInterfaces:Pt(t.showInterfaces,this.defaultValue.showInterfaces),showModules:Pt(t.showModules,this.defaultValue.showModules),showProperties:Pt(t.showProperties,this.defaultValue.showProperties),showEvents:Pt(t.showEvents,this.defaultValue.showEvents),showOperators:Pt(t.showOperators,this.defaultValue.showOperators),showUnits:Pt(t.showUnits,this.defaultValue.showUnits),showValues:Pt(t.showValues,this.defaultValue.showValues),showConstants:Pt(t.showConstants,this.defaultValue.showConstants),showEnums:Pt(t.showEnums,this.defaultValue.showEnums),showEnumMembers:Pt(t.showEnumMembers,this.defaultValue.showEnumMembers),showKeywords:Pt(t.showKeywords,this.defaultValue.showKeywords),showWords:Pt(t.showWords,this.defaultValue.showWords),showColors:Pt(t.showColors,this.defaultValue.showColors),showFiles:Pt(t.showFiles,this.defaultValue.showFiles),showReferences:Pt(t.showReferences,this.defaultValue.showReferences),showFolders:Pt(t.showFolders,this.defaultValue.showFolders),showTypeParameters:Pt(t.showTypeParameters,this.defaultValue.showTypeParameters),showSnippets:Pt(t.showSnippets,this.defaultValue.showSnippets),showUsers:Pt(t.showUsers,this.defaultValue.showUsers),showIssues:Pt(t.showIssues,this.defaultValue.showIssues)}}}class Spt extends Sr{constructor(){super(113,"smartSelect",{selectLeadingAndTrailingWhitespace:!0,selectSubwords:!0},{"editor.smartSelect.selectLeadingAndTrailingWhitespace":{description:x("selectLeadingAndTrailingWhitespace","Whether leading and trailing whitespace should always be selected."),default:!0,type:"boolean"},"editor.smartSelect.selectSubwords":{description:x("selectSubwords","Whether subwords (like 'foo' in 'fooBar' or 'foo_bar') should be selected."),default:!0,type:"boolean"}})}validate(e){return!e||typeof e!="object"?this.defaultValue:{selectLeadingAndTrailingWhitespace:Pt(e.selectLeadingAndTrailingWhitespace,this.defaultValue.selectLeadingAndTrailingWhitespace),selectSubwords:Pt(e.selectSubwords,this.defaultValue.selectSubwords)}}}class xpt extends Sr{constructor(){super(137,"wrappingIndent",1,{"editor.wrappingIndent":{type:"string",enum:["none","same","indent","deepIndent"],enumDescriptions:[x("wrappingIndent.none","No indentation. Wrapped lines begin at column 1."),x("wrappingIndent.same","Wrapped lines get the same indentation as the parent."),x("wrappingIndent.indent","Wrapped lines get +1 indentation toward the parent."),x("wrappingIndent.deepIndent","Wrapped lines get +2 indentation toward the parent.")],description:x("wrappingIndent","Controls the indentation of wrapped lines."),default:"same"}})}validate(e){switch(e){case"none":return 0;case"same":return 1;case"indent":return 2;case"deepIndent":return 3}return 1}compute(e,t,i){return t.get(2)===2?0:i}}class Lpt extends QF{constructor(){super(145)}compute(e,t,i){const r=t.get(144);return{isDominatedByLongLines:e.isDominatedByLongLines,isWordWrapMinified:r.isWordWrapMinified,isViewportWrapping:r.isViewportWrapping,wrappingColumn:r.wrappingColumn}}}class Fpt extends Sr{constructor(){const e={enabled:!0,showDropSelector:"afterDrop"};super(36,"dropIntoEditor",e,{"editor.dropIntoEditor.enabled":{type:"boolean",default:e.enabled,markdownDescription:x("dropIntoEditor.enabled","Controls whether you can drag and drop a file into a text editor by holding down the `Shift` key (instead of opening the file in an editor).")},"editor.dropIntoEditor.showDropSelector":{type:"string",markdownDescription:x("dropIntoEditor.showDropSelector","Controls if a widget is shown when dropping files into the editor. This widget lets you control how the file is dropped."),enum:["afterDrop","never"],enumDescriptions:[x("dropIntoEditor.showDropSelector.afterDrop","Show the drop selector widget after a file is dropped into the editor."),x("dropIntoEditor.showDropSelector.never","Never show the drop selector widget. Instead the default drop provider is always used.")],default:"afterDrop"}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:Pt(t.enabled,this.defaultValue.enabled),showDropSelector:Or(t.showDropSelector,this.defaultValue.showDropSelector,["afterDrop","never"])}}}class _pt extends Sr{constructor(){const e={enabled:!0,showPasteSelector:"afterPaste"};super(85,"pasteAs",e,{"editor.pasteAs.enabled":{type:"boolean",default:e.enabled,markdownDescription:x("pasteAs.enabled","Controls whether you can paste content in different ways.")},"editor.pasteAs.showPasteSelector":{type:"string",markdownDescription:x("pasteAs.showPasteSelector","Controls if a widget is shown when pasting content in to the editor. This widget lets you control how the file is pasted."),enum:["afterPaste","never"],enumDescriptions:[x("pasteAs.showPasteSelector.afterPaste","Show the paste selector widget after content is pasted into the editor."),x("pasteAs.showPasteSelector.never","Never show the paste selector widget. Instead the default pasting behavior is always used.")],default:"afterPaste"}})}validate(e){if(!e||typeof e!="object")return this.defaultValue;const t=e;return{enabled:Pt(t.enabled,this.defaultValue.enabled),showPasteSelector:Or(t.showPasteSelector,this.defaultValue.showPasteSelector,["afterPaste","never"])}}}const Zl={fontFamily:$n?"Menlo, Monaco, 'Courier New', monospace":Ha?"'Droid Sans Mono', 'monospace', monospace":"Consolas, 'Courier New', monospace",fontWeight:"normal",fontSize:$n?12:14,lineHeight:0,letterSpacing:0},w2=[];function rt(n){return w2[n.id]=n,n}const xh={acceptSuggestionOnCommitCharacter:rt(new ui(0,"acceptSuggestionOnCommitCharacter",!0,{markdownDescription:x("acceptSuggestionOnCommitCharacter","Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character.")})),acceptSuggestionOnEnter:rt(new Zr(1,"acceptSuggestionOnEnter","on",["on","smart","off"],{markdownEnumDescriptions:["",x("acceptSuggestionOnEnterSmart","Only accept a suggestion with `Enter` when it makes a textual change."),""],markdownDescription:x("acceptSuggestionOnEnter","Controls whether suggestions should be accepted on `Enter`, in addition to `Tab`. Helps to avoid ambiguity between inserting new lines or accepting suggestions.")})),accessibilitySupport:rt(new zft),accessibilityPageSize:rt(new Hi(3,"accessibilityPageSize",10,1,1073741824,{description:x("accessibilityPageSize","Controls the number of lines in the editor that can be read out by a screen reader at once. When we detect a screen reader we automatically set the default to be 500. Warning: this has a performance implication for numbers larger than the default."),tags:["accessibility"]})),ariaLabel:rt(new qa(4,"ariaLabel",x("editorViewAccessibleLabel","Editor content"))),ariaRequired:rt(new ui(5,"ariaRequired",!1,void 0)),screenReaderAnnounceInlineSuggestion:rt(new ui(8,"screenReaderAnnounceInlineSuggestion",!0,{description:x("screenReaderAnnounceInlineSuggestion","Control whether inline suggestions are announced by a screen reader."),tags:["accessibility"]})),autoClosingBrackets:rt(new Zr(6,"autoClosingBrackets","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",x("editor.autoClosingBrackets.languageDefined","Use language configurations to determine when to autoclose brackets."),x("editor.autoClosingBrackets.beforeWhitespace","Autoclose brackets only when the cursor is to the left of whitespace."),""],description:x("autoClosingBrackets","Controls whether the editor should automatically close brackets after the user adds an opening bracket.")})),autoClosingComments:rt(new Zr(7,"autoClosingComments","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",x("editor.autoClosingComments.languageDefined","Use language configurations to determine when to autoclose comments."),x("editor.autoClosingComments.beforeWhitespace","Autoclose comments only when the cursor is to the left of whitespace."),""],description:x("autoClosingComments","Controls whether the editor should automatically close comments after the user adds an opening comment.")})),autoClosingDelete:rt(new Zr(9,"autoClosingDelete","auto",["always","auto","never"],{enumDescriptions:["",x("editor.autoClosingDelete.auto","Remove adjacent closing quotes or brackets only if they were automatically inserted."),""],description:x("autoClosingDelete","Controls whether the editor should remove adjacent closing quotes or brackets when deleting.")})),autoClosingOvertype:rt(new Zr(10,"autoClosingOvertype","auto",["always","auto","never"],{enumDescriptions:["",x("editor.autoClosingOvertype.auto","Type over closing quotes or brackets only if they were automatically inserted."),""],description:x("autoClosingOvertype","Controls whether the editor should type over closing quotes or brackets.")})),autoClosingQuotes:rt(new Zr(11,"autoClosingQuotes","languageDefined",["always","languageDefined","beforeWhitespace","never"],{enumDescriptions:["",x("editor.autoClosingQuotes.languageDefined","Use language configurations to determine when to autoclose quotes."),x("editor.autoClosingQuotes.beforeWhitespace","Autoclose quotes only when the cursor is to the left of whitespace."),""],description:x("autoClosingQuotes","Controls whether the editor should automatically close quotes after the user adds an opening quote.")})),autoIndent:rt(new fT(12,"autoIndent",4,"full",["none","keep","brackets","advanced","full"],Bft,{enumDescriptions:[x("editor.autoIndent.none","The editor will not insert indentation automatically."),x("editor.autoIndent.keep","The editor will keep the current line's indentation."),x("editor.autoIndent.brackets","The editor will keep the current line's indentation and honor language defined brackets."),x("editor.autoIndent.advanced","The editor will keep the current line's indentation, honor language defined brackets and invoke special onEnterRules defined by languages."),x("editor.autoIndent.full","The editor will keep the current line's indentation, honor language defined brackets, invoke special onEnterRules defined by languages, and honor indentationRules defined by languages.")],description:x("autoIndent","Controls whether the editor should automatically adjust the indentation when users type, paste, move or indent lines.")})),automaticLayout:rt(new ui(13,"automaticLayout",!1)),autoSurround:rt(new Zr(14,"autoSurround","languageDefined",["languageDefined","quotes","brackets","never"],{enumDescriptions:[x("editor.autoSurround.languageDefined","Use language configurations to determine when to automatically surround selections."),x("editor.autoSurround.quotes","Surround with quotes but not brackets."),x("editor.autoSurround.brackets","Surround with brackets but not quotes."),""],description:x("autoSurround","Controls whether the editor should automatically surround selections when typing quotes or brackets.")})),bracketPairColorization:rt(new ypt),bracketPairGuides:rt(new Ipt),stickyTabStops:rt(new ui(116,"stickyTabStops",!1,{description:x("stickyTabStops","Emulate selection behavior of tab characters when using spaces for indentation. Selection will stick to tab stops.")})),codeLens:rt(new ui(17,"codeLens",!0,{description:x("codeLens","Controls whether the editor shows CodeLens.")})),codeLensFontFamily:rt(new qa(18,"codeLensFontFamily","",{description:x("codeLensFontFamily","Controls the font family for CodeLens.")})),codeLensFontSize:rt(new Hi(19,"codeLensFontSize",0,0,100,{type:"number",default:0,minimum:0,maximum:100,markdownDescription:x("codeLensFontSize","Controls the font size in pixels for CodeLens. When set to 0, 90% of `#editor.fontSize#` is used.")})),colorDecorators:rt(new ui(20,"colorDecorators",!0,{description:x("colorDecorators","Controls whether the editor should render the inline color decorators and color picker.")})),colorDecoratorActivatedOn:rt(new Zr(147,"colorDecoratorsActivatedOn","clickAndHover",["clickAndHover","hover","click"],{enumDescriptions:[x("editor.colorDecoratorActivatedOn.clickAndHover","Make the color picker appear both on click and hover of the color decorator"),x("editor.colorDecoratorActivatedOn.hover","Make the color picker appear on hover of the color decorator"),x("editor.colorDecoratorActivatedOn.click","Make the color picker appear on click of the color decorator")],description:x("colorDecoratorActivatedOn","Controls the condition to make a color picker appear from a color decorator")})),colorDecoratorsLimit:rt(new Hi(21,"colorDecoratorsLimit",500,1,1e6,{markdownDescription:x("colorDecoratorsLimit","Controls the max number of color decorators that can be rendered in an editor at once.")})),columnSelection:rt(new ui(22,"columnSelection",!1,{description:x("columnSelection","Enable that the selection with the mouse and keys is doing column selection.")})),comments:rt(new Yft),contextmenu:rt(new ui(24,"contextmenu",!0)),copyWithSyntaxHighlighting:rt(new ui(25,"copyWithSyntaxHighlighting",!0,{description:x("copyWithSyntaxHighlighting","Controls whether syntax highlighting should be copied into the clipboard.")})),cursorBlinking:rt(new fT(26,"cursorBlinking",1,"blink",["blink","smooth","phase","expand","solid"],Hft,{description:x("cursorBlinking","Control the cursor animation style.")})),cursorSmoothCaretAnimation:rt(new Zr(27,"cursorSmoothCaretAnimation","off",["off","explicit","on"],{enumDescriptions:[x("cursorSmoothCaretAnimation.off","Smooth caret animation is disabled."),x("cursorSmoothCaretAnimation.explicit","Smooth caret animation is enabled only when the user moves the cursor with an explicit gesture."),x("cursorSmoothCaretAnimation.on","Smooth caret animation is always enabled.")],description:x("cursorSmoothCaretAnimation","Controls whether the smooth caret animation should be enabled.")})),cursorStyle:rt(new fT(28,"cursorStyle",Ds.Line,"line",["line","block","underline","line-thin","block-outline","underline-thin"],Uft,{description:x("cursorStyle","Controls the cursor style.")})),cursorSurroundingLines:rt(new Hi(29,"cursorSurroundingLines",0,0,1073741824,{description:x("cursorSurroundingLines","Controls the minimal number of visible leading lines (minimum 0) and trailing lines (minimum 1) surrounding the cursor. Known as 'scrollOff' or 'scrollOffset' in some other editors.")})),cursorSurroundingLinesStyle:rt(new Zr(30,"cursorSurroundingLinesStyle","default",["default","all"],{enumDescriptions:[x("cursorSurroundingLinesStyle.default","`cursorSurroundingLines` is enforced only when triggered via the keyboard or API."),x("cursorSurroundingLinesStyle.all","`cursorSurroundingLines` is enforced always.")],markdownDescription:x("cursorSurroundingLinesStyle","Controls when `#cursorSurroundingLines#` should be enforced.")})),cursorWidth:rt(new Hi(31,"cursorWidth",0,0,1073741824,{markdownDescription:x("cursorWidth","Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.")})),disableLayerHinting:rt(new ui(32,"disableLayerHinting",!1)),disableMonospaceOptimizations:rt(new ui(33,"disableMonospaceOptimizations",!1)),domReadOnly:rt(new ui(34,"domReadOnly",!1)),dragAndDrop:rt(new ui(35,"dragAndDrop",!0,{description:x("dragAndDrop","Controls whether the editor should allow moving selections via drag and drop.")})),emptySelectionClipboard:rt(new Kft),dropIntoEditor:rt(new Fpt),stickyScroll:rt(new ipt),experimentalWhitespaceRendering:rt(new Zr(38,"experimentalWhitespaceRendering","svg",["svg","font","off"],{enumDescriptions:[x("experimentalWhitespaceRendering.svg","Use a new rendering method with svgs."),x("experimentalWhitespaceRendering.font","Use a new rendering method with font characters."),x("experimentalWhitespaceRendering.off","Use the stable rendering method.")],description:x("experimentalWhitespaceRendering","Controls whether whitespace is rendered with a new, experimental method.")})),extraEditorClassName:rt(new qa(39,"extraEditorClassName","")),fastScrollSensitivity:rt(new bd(40,"fastScrollSensitivity",5,n=>n<=0?5:n,{markdownDescription:x("fastScrollSensitivity","Scrolling speed multiplier when pressing `Alt`.")})),find:rt(new jft),fixedOverflowWidgets:rt(new ui(42,"fixedOverflowWidgets",!1)),folding:rt(new ui(43,"folding",!0,{description:x("folding","Controls whether the editor has code folding enabled.")})),foldingStrategy:rt(new Zr(44,"foldingStrategy","auto",["auto","indentation"],{enumDescriptions:[x("foldingStrategy.auto","Use a language-specific folding strategy if available, else the indentation-based one."),x("foldingStrategy.indentation","Use the indentation-based folding strategy.")],description:x("foldingStrategy","Controls the strategy for computing folding ranges.")})),foldingHighlight:rt(new ui(45,"foldingHighlight",!0,{description:x("foldingHighlight","Controls whether the editor should highlight folded ranges.")})),foldingImportsByDefault:rt(new ui(46,"foldingImportsByDefault",!1,{description:x("foldingImportsByDefault","Controls whether the editor automatically collapses import ranges.")})),foldingMaximumRegions:rt(new Hi(47,"foldingMaximumRegions",5e3,10,65e3,{description:x("foldingMaximumRegions","The maximum number of foldable regions. Increasing this value may result in the editor becoming less responsive when the current source has a large number of foldable regions.")})),unfoldOnClickAfterEndOfLine:rt(new ui(48,"unfoldOnClickAfterEndOfLine",!1,{description:x("unfoldOnClickAfterEndOfLine","Controls whether clicking on the empty content after a folded line will unfold the line.")})),fontFamily:rt(new qa(49,"fontFamily",Zl.fontFamily,{description:x("fontFamily","Controls the font family.")})),fontInfo:rt(new Qft),fontLigatures2:rt(new Vu),fontSize:rt(new $ft),fontWeight:rt(new Pg),fontVariations:rt(new Sh),formatOnPaste:rt(new ui(55,"formatOnPaste",!1,{description:x("formatOnPaste","Controls whether the editor should automatically format the pasted content. A formatter must be available and the formatter should be able to format a range in a document.")})),formatOnType:rt(new ui(56,"formatOnType",!1,{description:x("formatOnType","Controls whether the editor should automatically format the line after typing.")})),glyphMargin:rt(new ui(57,"glyphMargin",!0,{description:x("glyphMargin","Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.")})),gotoLocation:rt(new qft),hideCursorInOverviewRuler:rt(new ui(59,"hideCursorInOverviewRuler",!1,{description:x("hideCursorInOverviewRuler","Controls whether the cursor should be hidden in the overview ruler.")})),hover:rt(new ept),inDiffEditor:rt(new ui(61,"inDiffEditor",!1)),letterSpacing:rt(new bd(64,"letterSpacing",Zl.letterSpacing,n=>bd.clamp(n,-5,20),{description:x("letterSpacing","Controls the letter spacing in pixels.")})),lightbulb:rt(new npt),lineDecorationsWidth:rt(new opt),lineHeight:rt(new spt),lineNumbers:rt(new gpt),lineNumbersMinChars:rt(new Hi(69,"lineNumbersMinChars",5,1,300)),linkedEditing:rt(new ui(70,"linkedEditing",!1,{description:x("linkedEditing","Controls whether the editor has linked editing enabled. Depending on the language, related symbols such as HTML tags, are updated while editing.")})),links:rt(new ui(71,"links",!0,{description:x("links","Controls whether the editor should detect links and make them clickable.")})),matchBrackets:rt(new Zr(72,"matchBrackets","always",["always","near","never"],{description:x("matchBrackets","Highlight matching brackets.")})),minimap:rt(new apt),mouseStyle:rt(new Zr(74,"mouseStyle","text",["text","default","copy"])),mouseWheelScrollSensitivity:rt(new bd(75,"mouseWheelScrollSensitivity",1,n=>n===0?1:n,{markdownDescription:x("mouseWheelScrollSensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")})),mouseWheelZoom:rt(new ui(76,"mouseWheelZoom",!1,{markdownDescription:$n?x("mouseWheelZoom.mac","Zoom the font of the editor when using mouse wheel and holding `Cmd`."):x("mouseWheelZoom","Zoom the font of the editor when using mouse wheel and holding `Ctrl`.")})),multiCursorMergeOverlapping:rt(new ui(77,"multiCursorMergeOverlapping",!0,{description:x("multiCursorMergeOverlapping","Merge multiple cursors when they are overlapping.")})),multiCursorModifier:rt(new fT(78,"multiCursorModifier","altKey","alt",["ctrlCmd","alt"],lpt,{markdownEnumDescriptions:[x("multiCursorModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),x("multiCursorModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],markdownDescription:x({key:"multiCursorModifier",comment:["- `ctrlCmd` refers to a value the setting can take and should not be localized.","- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized."]},"The modifier to be used to add multiple cursors with the mouse. The Go to Definition and Open Link mouse gestures will adapt such that they do not conflict with the [multicursor modifier](https://code.visualstudio.com/docs/editor/codebasics#_multicursor-modifier).")})),multiCursorPaste:rt(new Zr(79,"multiCursorPaste","spread",["spread","full"],{markdownEnumDescriptions:[x("multiCursorPaste.spread","Each cursor pastes a single line of the text."),x("multiCursorPaste.full","Each cursor pastes the full text.")],markdownDescription:x("multiCursorPaste","Controls pasting when the line count of the pasted text matches the cursor count.")})),multiCursorLimit:rt(new Hi(80,"multiCursorLimit",1e4,1,1e5,{markdownDescription:x("multiCursorLimit","Controls the max number of cursors that can be in an active editor at once.")})),occurrencesHighlight:rt(new Zr(81,"occurrencesHighlight","singleFile",["off","singleFile","multiFile"],{markdownEnumDescriptions:[x("occurrencesHighlight.off","Does not highlight occurrences."),x("occurrencesHighlight.singleFile","Highlights occurrences only in the current file."),x("occurrencesHighlight.multiFile","Experimental: Highlights occurrences across all valid open files.")],markdownDescription:x("occurrencesHighlight","Controls whether occurrences should be highlighted across open files.")})),overviewRulerBorder:rt(new ui(82,"overviewRulerBorder",!0,{description:x("overviewRulerBorder","Controls whether a border should be drawn around the overview ruler.")})),overviewRulerLanes:rt(new Hi(83,"overviewRulerLanes",3,0,3)),padding:rt(new upt),pasteAs:rt(new _pt),parameterHints:rt(new cpt),peekWidgetDefaultFocus:rt(new Zr(87,"peekWidgetDefaultFocus","tree",["tree","editor"],{enumDescriptions:[x("peekWidgetDefaultFocus.tree","Focus the tree when opening peek"),x("peekWidgetDefaultFocus.editor","Focus the editor when opening peek")],description:x("peekWidgetDefaultFocus","Controls whether to focus the inline editor or the tree in the peek widget.")})),definitionLinkOpensInPeek:rt(new ui(88,"definitionLinkOpensInPeek",!1,{description:x("definitionLinkOpensInPeek","Controls whether the Go to Definition mouse gesture always opens the peek widget.")})),quickSuggestions:rt(new hpt),quickSuggestionsDelay:rt(new Hi(90,"quickSuggestionsDelay",10,0,1073741824,{description:x("quickSuggestionsDelay","Controls the delay in milliseconds after which quick suggestions will show up.")})),readOnly:rt(new ui(91,"readOnly",!1)),readOnlyMessage:rt(new fpt),renameOnType:rt(new ui(93,"renameOnType",!1,{description:x("renameOnType","Controls whether the editor auto renames on type."),markdownDeprecationMessage:x("renameOnTypeDeprecate","Deprecated, use `editor.linkedEditing` instead.")})),renderControlCharacters:rt(new ui(94,"renderControlCharacters",!0,{description:x("renderControlCharacters","Controls whether the editor should render control characters."),restricted:!0})),renderFinalNewline:rt(new Zr(95,"renderFinalNewline",Ha?"dimmed":"on",["off","on","dimmed"],{description:x("renderFinalNewline","Render last line number when the file ends with a newline.")})),renderLineHighlight:rt(new Zr(96,"renderLineHighlight","line",["none","gutter","line","all"],{enumDescriptions:["","","",x("renderLineHighlight.all","Highlights both the gutter and the current line.")],description:x("renderLineHighlight","Controls how the editor should render the current line highlight.")})),renderLineHighlightOnlyWhenFocus:rt(new ui(97,"renderLineHighlightOnlyWhenFocus",!1,{description:x("renderLineHighlightOnlyWhenFocus","Controls if the editor should render the current line highlight only when the editor is focused.")})),renderValidationDecorations:rt(new Zr(98,"renderValidationDecorations","editable",["editable","on","off"])),renderWhitespace:rt(new Zr(99,"renderWhitespace","selection",["none","boundary","selection","trailing","all"],{enumDescriptions:["",x("renderWhitespace.boundary","Render whitespace characters except for single spaces between words."),x("renderWhitespace.selection","Render whitespace characters only on selected text."),x("renderWhitespace.trailing","Render only trailing whitespace characters."),""],description:x("renderWhitespace","Controls how the editor should render whitespace characters.")})),revealHorizontalRightPadding:rt(new Hi(100,"revealHorizontalRightPadding",15,0,1e3)),roundedSelection:rt(new ui(101,"roundedSelection",!0,{description:x("roundedSelection","Controls whether selections should have rounded corners.")})),rulers:rt(new mpt),scrollbar:rt(new ppt),scrollBeyondLastColumn:rt(new Hi(104,"scrollBeyondLastColumn",4,0,1073741824,{description:x("scrollBeyondLastColumn","Controls the number of extra characters beyond which the editor will scroll horizontally.")})),scrollBeyondLastLine:rt(new ui(105,"scrollBeyondLastLine",!0,{description:x("scrollBeyondLastLine","Controls whether the editor will scroll beyond the last line.")})),scrollPredominantAxis:rt(new ui(106,"scrollPredominantAxis",!0,{description:x("scrollPredominantAxis","Scroll only along the predominant axis when scrolling both vertically and horizontally at the same time. Prevents horizontal drift when scrolling vertically on a trackpad.")})),selectionClipboard:rt(new ui(107,"selectionClipboard",!0,{description:x("selectionClipboard","Controls whether the Linux primary clipboard should be supported."),included:Ha})),selectionHighlight:rt(new ui(108,"selectionHighlight",!0,{description:x("selectionHighlight","Controls whether the editor should highlight matches similar to the selection.")})),selectOnLineNumbers:rt(new ui(109,"selectOnLineNumbers",!0)),showFoldingControls:rt(new Zr(110,"showFoldingControls","mouseover",["always","never","mouseover"],{enumDescriptions:[x("showFoldingControls.always","Always show the folding controls."),x("showFoldingControls.never","Never show the folding controls and reduce the gutter size."),x("showFoldingControls.mouseover","Only show the folding controls when the mouse is over the gutter.")],description:x("showFoldingControls","Controls when the folding controls on the gutter are shown.")})),showUnused:rt(new ui(111,"showUnused",!0,{description:x("showUnused","Controls fading out of unused code.")})),showDeprecated:rt(new ui(139,"showDeprecated",!0,{description:x("showDeprecated","Controls strikethrough deprecated variables.")})),inlayHints:rt(new rpt),snippetSuggestions:rt(new Zr(112,"snippetSuggestions","inline",["top","bottom","inline","none"],{enumDescriptions:[x("snippetSuggestions.top","Show snippet suggestions on top of other suggestions."),x("snippetSuggestions.bottom","Show snippet suggestions below other suggestions."),x("snippetSuggestions.inline","Show snippets suggestions with other suggestions."),x("snippetSuggestions.none","Do not show snippet suggestions.")],description:x("snippetSuggestions","Controls whether snippets are shown with other suggestions and how they are sorted.")})),smartSelect:rt(new Spt),smoothScrolling:rt(new ui(114,"smoothScrolling",!1,{description:x("smoothScrolling","Controls whether the editor will scroll using an animation.")})),stopRenderingLineAfter:rt(new Hi(117,"stopRenderingLineAfter",1e4,-1,1073741824)),suggest:rt(new wpt),inlineSuggest:rt(new Cpt),inlineEdit:rt(new vpt),inlineCompletionsAccessibilityVerbose:rt(new ui(148,"inlineCompletionsAccessibilityVerbose",!1,{description:x("inlineCompletionsAccessibilityVerbose","Controls whether the accessibility hint should be provided to screen reader users when an inline completion is shown.")})),suggestFontSize:rt(new Hi(119,"suggestFontSize",0,0,1e3,{markdownDescription:x("suggestFontSize","Font size for the suggest widget. When set to {0}, the value of {1} is used.","`0`","`#editor.fontSize#`")})),suggestLineHeight:rt(new Hi(120,"suggestLineHeight",0,0,1e3,{markdownDescription:x("suggestLineHeight","Line height for the suggest widget. When set to {0}, the value of {1} is used. The minimum value is 8.","`0`","`#editor.lineHeight#`")})),suggestOnTriggerCharacters:rt(new ui(121,"suggestOnTriggerCharacters",!0,{description:x("suggestOnTriggerCharacters","Controls whether suggestions should automatically show up when typing trigger characters.")})),suggestSelection:rt(new Zr(122,"suggestSelection","first",["first","recentlyUsed","recentlyUsedByPrefix"],{markdownEnumDescriptions:[x("suggestSelection.first","Always select the first suggestion."),x("suggestSelection.recentlyUsed","Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently."),x("suggestSelection.recentlyUsedByPrefix","Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.")],description:x("suggestSelection","Controls how suggestions are pre-selected when showing the suggest list.")})),tabCompletion:rt(new Zr(123,"tabCompletion","off",["on","off","onlySnippets"],{enumDescriptions:[x("tabCompletion.on","Tab complete will insert the best matching suggestion when pressing tab."),x("tabCompletion.off","Disable tab completions."),x("tabCompletion.onlySnippets","Tab complete snippets when their prefix match. Works best when 'quickSuggestions' aren't enabled.")],description:x("tabCompletion","Enables tab completions.")})),tabIndex:rt(new Hi(124,"tabIndex",0,-1,1073741824)),unicodeHighlight:rt(new bpt),unusualLineTerminators:rt(new Zr(126,"unusualLineTerminators","prompt",["auto","off","prompt"],{enumDescriptions:[x("unusualLineTerminators.auto","Unusual line terminators are automatically removed."),x("unusualLineTerminators.off","Unusual line terminators are ignored."),x("unusualLineTerminators.prompt","Unusual line terminators prompt to be removed.")],description:x("unusualLineTerminators","Remove unusual line terminators that might cause problems.")})),useShadowDOM:rt(new ui(127,"useShadowDOM",!0)),useTabStops:rt(new ui(128,"useTabStops",!0,{description:x("useTabStops","Inserting and deleting whitespace follows tab stops.")})),wordBreak:rt(new Zr(129,"wordBreak","normal",["normal","keepAll"],{markdownEnumDescriptions:[x("wordBreak.normal","Use the default line break rule."),x("wordBreak.keepAll","Word breaks should not be used for Chinese/Japanese/Korean (CJK) text. Non-CJK text behavior is the same as for normal.")],description:x("wordBreak","Controls the word break rules used for Chinese/Japanese/Korean (CJK) text.")})),wordSeparators:rt(new qa(130,"wordSeparators",I0e,{description:x("wordSeparators","Characters that will be used as word separators when doing word related navigations or operations.")})),wordWrap:rt(new Zr(131,"wordWrap","off",["off","on","wordWrapColumn","bounded"],{markdownEnumDescriptions:[x("wordWrap.off","Lines will never wrap."),x("wordWrap.on","Lines will wrap at the viewport width."),x({key:"wordWrap.wordWrapColumn",comment:["- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Lines will wrap at `#editor.wordWrapColumn#`."),x({key:"wordWrap.bounded",comment:["- viewport means the edge of the visible window size.","- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Lines will wrap at the minimum of viewport and `#editor.wordWrapColumn#`.")],description:x({key:"wordWrap",comment:["- 'off', 'on', 'wordWrapColumn' and 'bounded' refer to values the setting can take and should not be localized.","- `editor.wordWrapColumn` refers to a different setting and should not be localized."]},"Controls how lines should wrap.")})),wordWrapBreakAfterCharacters:rt(new qa(132,"wordWrapBreakAfterCharacters"," })]?|/&.,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」")),wordWrapBreakBeforeCharacters:rt(new qa(133,"wordWrapBreakBeforeCharacters","([{‘“〈《「『【〔([{「£¥$£¥++")),wordWrapColumn:rt(new Hi(134,"wordWrapColumn",80,1,1073741824,{markdownDescription:x({key:"wordWrapColumn",comment:["- `editor.wordWrap` refers to a different setting and should not be localized.","- 'wordWrapColumn' and 'bounded' refer to values the different setting can take and should not be localized."]},"Controls the wrapping column of the editor when `#editor.wordWrap#` is `wordWrapColumn` or `bounded`.")})),wordWrapOverride1:rt(new Zr(135,"wordWrapOverride1","inherit",["off","on","inherit"])),wordWrapOverride2:rt(new Zr(136,"wordWrapOverride2","inherit",["off","on","inherit"])),editorClassName:rt(new Jft),defaultColorDecorators:rt(new ui(146,"defaultColorDecorators",!1,{markdownDescription:x("defaultColorDecorators","Controls whether inline color decorations should be shown using the default document color provider")})),pixelRatio:rt(new dpt),tabFocusMode:rt(new ui(143,"tabFocusMode",!1,{markdownDescription:x("tabFocusMode","Controls whether the editor receives tabs or defers them to the workbench for navigation.")})),layoutInfo:rt(new y2),wrappingInfo:rt(new Lpt),wrappingIndent:rt(new xpt),wrappingStrategy:rt(new tpt)},Dc=new class{constructor(){this._zoomLevel=0,this._onDidChangeZoomLevel=new be,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event}getZoomLevel(){return this._zoomLevel}setZoomLevel(n){n=Math.min(Math.max(-5,n),20),this._zoomLevel!==n&&(this._zoomLevel=n,this._onDidChangeZoomLevel.fire(this._zoomLevel))}},Dpt=$n?1.5:1.35,NH=8;class XC{static createFromValidatedSettings(e,t,i){const r=e.get(49),o=e.get(53),s=e.get(52),a=e.get(51),l=e.get(54),u=e.get(67),c=e.get(64);return XC._create(r,o,s,a,l,u,c,t,i)}static _create(e,t,i,r,o,s,a,l,u){s===0?s=Dpt*i:s{this._evictUntrustedReadingsTimeout=-1,this._evictUntrustedReadings(e)},5e3))}_evictUntrustedReadings(e){const t=this._ensureCache(e),i=t.getValues();let r=!1;for(const o of i)o.isTrusted||(r=!0,t.remove(o));r&&this._onDidChange.fire()}readFontInfo(e,t){const i=this._ensureCache(e);if(!i.has(t)){let r=this._actualReadFontInfo(e,t);(r.typicalHalfwidthCharacterWidth<=2||r.typicalFullwidthCharacterWidth<=2||r.spaceWidth<=2||r.maxDigitWidth<=2)&&(r=new kH({pixelRatio:KF.getInstance(e).value,fontFamily:r.fontFamily,fontWeight:r.fontWeight,fontSize:r.fontSize,fontFeatureSettings:r.fontFeatureSettings,fontVariationSettings:r.fontVariationSettings,lineHeight:r.lineHeight,letterSpacing:r.letterSpacing,isMonospace:r.isMonospace,typicalHalfwidthCharacterWidth:Math.max(r.typicalHalfwidthCharacterWidth,5),typicalFullwidthCharacterWidth:Math.max(r.typicalFullwidthCharacterWidth,5),canUseHalfwidthRightwardsArrow:r.canUseHalfwidthRightwardsArrow,spaceWidth:Math.max(r.spaceWidth,5),middotWidth:Math.max(r.middotWidth,5),wsmiddotWidth:Math.max(r.wsmiddotWidth,5),maxDigitWidth:Math.max(r.maxDigitWidth,5)},!1)),this._writeToCache(e,t,r)}return i.get(t)}_createRequest(e,t,i,r){const o=new Xft(e,t);return i.push(o),r==null||r.push(o),o}_actualReadFontInfo(e,t){const i=[],r=[],o=this._createRequest("n",0,i,r),s=this._createRequest("m",0,i,null),a=this._createRequest(" ",0,i,r),l=this._createRequest("0",0,i,r),u=this._createRequest("1",0,i,r),c=this._createRequest("2",0,i,r),d=this._createRequest("3",0,i,r),h=this._createRequest("4",0,i,r),g=this._createRequest("5",0,i,r),m=this._createRequest("6",0,i,r),f=this._createRequest("7",0,i,r),b=this._createRequest("8",0,i,r),C=this._createRequest("9",0,i,r),v=this._createRequest("→",0,i,r),w=this._createRequest("→",0,i,null),S=this._createRequest("·",0,i,r),F=this._createRequest("⸱",0,i,null),L="|/-_ilm%";for(let Z=0,T=L.length;Z.001){A=!1;break}}let W=!0;return A&&w.width!==M&&(W=!1),w.width>v.width&&(W=!1),new kH({pixelRatio:KF.getInstance(e).value,fontFamily:t.fontFamily,fontWeight:t.fontWeight,fontSize:t.fontSize,fontFeatureSettings:t.fontFeatureSettings,fontVariationSettings:t.fontVariationSettings,lineHeight:t.lineHeight,letterSpacing:t.letterSpacing,isMonospace:A,typicalHalfwidthCharacterWidth:o.width,typicalFullwidthCharacterWidth:s.width,canUseHalfwidthRightwardsArrow:W,spaceWidth:a.width,middotWidth:S.width,wsmiddotWidth:F.width,maxDigitWidth:D},!0)}}class kpt{constructor(){this._keys=Object.create(null),this._values=Object.create(null)}has(e){const t=e.getId();return!!this._values[t]}get(e){const t=e.getId();return this._values[t]}put(e,t){const i=e.getId();this._keys[i]=e,this._values[i]=t}remove(e){const t=e.getId();delete this._keys[t],delete this._values[t]}getValues(){return Object.keys(this._keys).map(e=>this._values[e])}}const MH=new Npt;class Zb{constructor(e,t){this.key=e,this.migrate=t}apply(e){const t=Zb._read(e,this.key),i=o=>Zb._read(e,o),r=(o,s)=>Zb._write(e,o,s);this.migrate(t,i,r)}static _read(e,t){if(typeof e>"u")return;const i=t.indexOf(".");if(i>=0){const r=t.substring(0,i);return this._read(e[r],t.substring(i+1))}return e[t]}static _write(e,t,i){const r=t.indexOf(".");if(r>=0){const o=t.substring(0,r);e[o]=e[o]||{},this._write(e[o],t.substring(r+1),i);return}e[t]=i}}Zb.items=[];function Lh(n,e){Zb.items.push(new Zb(n,e))}function au(n,e){Lh(n,(t,i,r)=>{if(typeof t<"u"){for(const[o,s]of e)if(t===o){r(n,s);return}}})}function Mpt(n){Zb.items.forEach(e=>e.apply(n))}au("wordWrap",[[!0,"on"],[!1,"off"]]),au("lineNumbers",[[!0,"on"],[!1,"off"]]),au("cursorBlinking",[["visible","solid"]]),au("renderWhitespace",[[!0,"boundary"],[!1,"none"]]),au("renderLineHighlight",[[!0,"line"],[!1,"none"]]),au("acceptSuggestionOnEnter",[[!0,"on"],[!1,"off"]]),au("tabCompletion",[[!1,"off"],[!0,"onlySnippets"]]),au("hover",[[!0,{enabled:!0}],[!1,{enabled:!1}]]),au("parameterHints",[[!0,{enabled:!0}],[!1,{enabled:!1}]]),au("autoIndent",[[!1,"advanced"],[!0,"full"]]),au("matchBrackets",[[!0,"always"],[!1,"never"]]),au("renderFinalNewline",[[!0,"on"],[!1,"off"]]),au("cursorSmoothCaretAnimation",[[!0,"on"],[!1,"off"]]),au("occurrencesHighlight",[[!0,"singleFile"],[!1,"off"]]),au("wordBasedSuggestions",[[!0,"matchingDocuments"],[!1,"off"]]),Lh("autoClosingBrackets",(n,e,t)=>{n===!1&&(t("autoClosingBrackets","never"),typeof e("autoClosingQuotes")>"u"&&t("autoClosingQuotes","never"),typeof e("autoSurround")>"u"&&t("autoSurround","never"))}),Lh("renderIndentGuides",(n,e,t)=>{typeof n<"u"&&(t("renderIndentGuides",void 0),typeof e("guides.indentation")>"u"&&t("guides.indentation",!!n))}),Lh("highlightActiveIndentGuide",(n,e,t)=>{typeof n<"u"&&(t("highlightActiveIndentGuide",void 0),typeof e("guides.highlightActiveIndentation")>"u"&&t("guides.highlightActiveIndentation",!!n))});const Zpt={method:"showMethods",function:"showFunctions",constructor:"showConstructors",deprecated:"showDeprecated",field:"showFields",variable:"showVariables",class:"showClasses",struct:"showStructs",interface:"showInterfaces",module:"showModules",property:"showProperties",event:"showEvents",operator:"showOperators",unit:"showUnits",value:"showValues",constant:"showConstants",enum:"showEnums",enumMember:"showEnumMembers",keyword:"showKeywords",text:"showWords",color:"showColors",file:"showFiles",reference:"showReferences",folder:"showFolders",typeParameter:"showTypeParameters",snippet:"showSnippets"};Lh("suggest.filteredTypes",(n,e,t)=>{if(n&&typeof n=="object"){for(const i of Object.entries(Zpt))n[i[0]]===!1&&typeof e(`suggest.${i[1]}`)>"u"&&t(`suggest.${i[1]}`,!1);t("suggest.filteredTypes",void 0)}}),Lh("quickSuggestions",(n,e,t)=>{if(typeof n=="boolean"){const i=n?"on":"off";t("quickSuggestions",{comments:i,strings:i,other:i})}}),Lh("experimental.stickyScroll.enabled",(n,e,t)=>{typeof n=="boolean"&&(t("experimental.stickyScroll.enabled",void 0),typeof e("stickyScroll.enabled")>"u"&&t("stickyScroll.enabled",n))}),Lh("experimental.stickyScroll.maxLineCount",(n,e,t)=>{typeof n=="number"&&(t("experimental.stickyScroll.maxLineCount",void 0),typeof e("stickyScroll.maxLineCount")>"u"&&t("stickyScroll.maxLineCount",n))}),Lh("codeActionsOnSave",(n,e,t)=>{if(n&&typeof n=="object"){let i=!1;const r={};for(const o of Object.entries(n))typeof o[1]=="boolean"?(i=!0,r[o[0]]=o[1]?"explicit":"never"):r[o[0]]=o[1];i&&t("codeActionsOnSave",r)}}),Lh("codeActionWidget.includeNearbyQuickfixes",(n,e,t)=>{typeof n=="boolean"&&(t("codeActionWidget.includeNearbyQuickfixes",void 0),typeof e("codeActionWidget.includeNearbyQuickFixes")>"u"&&t("codeActionWidget.includeNearbyQuickFixes",n))}),Lh("lightbulb.enabled",(n,e,t)=>{typeof n=="boolean"&&t("lightbulb.enabled",n?void 0:"off")});class Tpt{constructor(){this._tabFocus=!1,this._onDidChangeTabFocus=new be,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}getTabFocusMode(){return this._tabFocus}setTabFocusMode(e){this._tabFocus=e,this._onDidChangeTabFocus.fire(this._tabFocus)}}const S2=new Tpt,vd=Un("accessibilityService"),$F=new It("accessibilityModeEnabled",!1);var Ept=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Wpt=function(n,e){return function(t,i){e(t,i,n)}};let ZH=class extends De{constructor(e,t,i,r){super(),this._accessibilityService=r,this._onDidChange=this._register(new be),this.onDidChange=this._onDidChange.event,this._onDidChangeFast=this._register(new be),this.onDidChangeFast=this._onDidChangeFast.event,this._isDominatedByLongLines=!1,this._viewLineCount=1,this._lineNumbersDigitCount=1,this._reservedHeight=0,this._glyphMarginDecorationLaneCount=1,this._computeOptionsMemory=new c1e,this.isSimpleWidget=e,this._containerObserver=this._register(new l1e(i,t.dimension)),this._targetWindowId=qt(i).vscodeWindowId,this._rawOptions=h1e(t),this._validatedOptions=Tb.validateOptions(this._rawOptions),this.options=this._computeOptions(),this.options.get(13)&&this._containerObserver.startObserving(),this._register(Dc.onDidChangeZoomLevel(()=>this._recomputeOptions())),this._register(S2.onDidChangeTabFocus(()=>this._recomputeOptions())),this._register(this._containerObserver.onDidChange(()=>this._recomputeOptions())),this._register(MH.onDidChange(()=>this._recomputeOptions())),this._register(KF.getInstance(qt(i)).onDidChange(()=>this._recomputeOptions())),this._register(this._accessibilityService.onDidChangeScreenReaderOptimized(()=>this._recomputeOptions()))}_recomputeOptions(){const e=this._computeOptions(),t=Tb.checkEquals(this.options,e);t!==null&&(this.options=e,this._onDidChangeFast.fire(t),this._onDidChange.fire(t))}_computeOptions(){const e=this._readEnvConfiguration(),t=XC.createFromValidatedSettings(this._validatedOptions,e.pixelRatio,this.isSimpleWidget),i=this._readFontInfo(t),r={memory:this._computeOptionsMemory,outerWidth:e.outerWidth,outerHeight:e.outerHeight-this._reservedHeight,fontInfo:i,extraEditorClassName:e.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,viewLineCount:this._viewLineCount,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:e.emptySelectionClipboard,pixelRatio:e.pixelRatio,tabFocusMode:S2.getTabFocusMode(),accessibilitySupport:e.accessibilitySupport,glyphMarginDecorationLaneCount:this._glyphMarginDecorationLaneCount};return Tb.computeOptions(this._validatedOptions,r)}_readEnvConfiguration(){return{extraEditorClassName:Gpt(),outerWidth:this._containerObserver.getWidth(),outerHeight:this._containerObserver.getHeight(),emptySelectionClipboard:IC||vc,pixelRatio:KF.getInstance(Bbe(this._targetWindowId,!0).window).value,accessibilitySupport:this._accessibilityService.isScreenReaderOptimized()?2:this._accessibilityService.getAccessibilitySupport()}}_readFontInfo(e){return MH.readFontInfo(Bbe(this._targetWindowId,!0).window,e)}getRawOptions(){return this._rawOptions}updateOptions(e){const t=h1e(e);Tb.applyUpdate(this._rawOptions,t)&&(this._validatedOptions=Tb.validateOptions(this._rawOptions),this._recomputeOptions())}observeContainer(e){this._containerObserver.observe(e)}setIsDominatedByLongLines(e){this._isDominatedByLongLines!==e&&(this._isDominatedByLongLines=e,this._recomputeOptions())}setModelLineCount(e){const t=Rpt(e);this._lineNumbersDigitCount!==t&&(this._lineNumbersDigitCount=t,this._recomputeOptions())}setViewLineCount(e){this._viewLineCount!==e&&(this._viewLineCount=e,this._recomputeOptions())}setReservedHeight(e){this._reservedHeight!==e&&(this._reservedHeight=e,this._recomputeOptions())}setGlyphMarginDecorationLaneCount(e){this._glyphMarginDecorationLaneCount!==e&&(this._glyphMarginDecorationLaneCount=e,this._recomputeOptions())}};ZH=Ept([Wpt(3,vd)],ZH);function Rpt(n){let e=0;for(;n;)n=Math.floor(n/10),e++;return e||1}function Gpt(){let n="";return!df&&!Tpe&&(n+="no-user-select "),df&&(n+="no-minimap-shadow ",n+="enable-user-select "),$n&&(n+="mac "),n}class Vpt{constructor(){this._values=[]}_read(e){return this._values[e]}get(e){return this._values[e]}_write(e,t){this._values[e]=t}}class Xpt{constructor(){this._values=[]}_read(e){if(e>=this._values.length)throw new Error("Cannot read uninitialized value");return this._values[e]}get(e){return this._read(e)}_write(e,t){this._values[e]=t}}class Tb{static validateOptions(e){const t=new Vpt;for(const i of w2){const r=i.name==="_never_"?void 0:e[i.name];t._write(i.id,i.validate(r))}return t}static computeOptions(e,t){const i=new Xpt;for(const r of w2)i._write(r.id,r.compute(t,i,e._read(r.id)));return i}static _deepEquals(e,t){if(typeof e!="object"||typeof t!="object"||!e||!t)return e===t;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)?Ar(e,t):!1;if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const i in e)if(!Tb._deepEquals(e[i],t[i]))return!1;return!0}static checkEquals(e,t){const i=[];let r=!1;for(const o of w2){const s=!Tb._deepEquals(e._read(o.id),t._read(o.id));i[o.id]=s,s&&(r=!0)}return r?new u1e(i):null}static applyUpdate(e,t){let i=!1;for(const r of w2)if(t.hasOwnProperty(r.name)){const o=r.applyUpdate(e[r.name],t[r.name]);e[r.name]=o.newValue,i=i||o.didChange}return i}}function h1e(n){const e=Ff(n);return Mpt(e),e}var Eb;(function(n){const e={total:0,min:Number.MAX_VALUE,max:0},t={...e},i={...e},r={...e};let o=0;const s={keydown:0,input:0,render:0};function a(){C(),performance.mark("inputlatency/start"),performance.mark("keydown/start"),s.keydown=1,queueMicrotask(l)}n.onKeyDown=a;function l(){s.keydown===1&&(performance.mark("keydown/end"),s.keydown=2)}function u(){performance.mark("input/start"),s.input=1,b()}n.onBeforeInput=u;function c(){s.input===0&&u(),queueMicrotask(d)}n.onInput=c;function d(){s.input===1&&(performance.mark("input/end"),s.input=2)}function h(){C()}n.onKeyUp=h;function g(){C()}n.onSelectionChange=g;function m(){s.keydown===2&&s.input===2&&s.render===0&&(performance.mark("render/start"),s.render=1,queueMicrotask(f),b())}n.onRenderStart=m;function f(){s.render===1&&(performance.mark("render/end"),s.render=2)}function b(){setTimeout(C)}function C(){s.keydown===2&&s.input===2&&s.render===2&&(performance.mark("inputlatency/end"),performance.measure("keydown","keydown/start","keydown/end"),performance.measure("input","input/start","input/end"),performance.measure("render","render/start","render/end"),performance.measure("inputlatency","inputlatency/start","inputlatency/end"),v("keydown",e),v("input",t),v("render",i),v("inputlatency",r),o++,w())}function v(D,A){const M=performance.getEntriesByName(D)[0].duration;A.total+=M,A.min=Math.min(A.min,M),A.max=Math.max(A.max,M)}function w(){performance.clearMarks("keydown/start"),performance.clearMarks("keydown/end"),performance.clearMarks("input/start"),performance.clearMarks("input/end"),performance.clearMarks("render/start"),performance.clearMarks("render/end"),performance.clearMarks("inputlatency/start"),performance.clearMarks("inputlatency/end"),performance.clearMeasures("keydown"),performance.clearMeasures("input"),performance.clearMeasures("render"),performance.clearMeasures("inputlatency"),s.keydown=0,s.input=0,s.render=0}function S(){if(o===0)return;const D={keydown:F(e),input:F(t),render:F(i),total:F(r),sampleCount:o};return L(e),L(t),L(i),L(r),o=0,D}n.getAndClearMeasurements=S;function F(D){return{average:D.total/o,max:D.max,min:D.min}}function L(D){D.total=0,D.min=Number.MAX_VALUE,D.max=0}})(Eb||(Eb={}));class x2{constructor(){this._hooks=new je,this._pointerMoveCallback=null,this._onStopCallback=null}dispose(){this.stopMonitoring(!1),this._hooks.dispose()}stopMonitoring(e,t){if(!this.isMonitoring())return;this._hooks.clear(),this._pointerMoveCallback=null;const i=this._onStopCallback;this._onStopCallback=null,e&&i&&i(t)}isMonitoring(){return!!this._pointerMoveCallback}startMonitoring(e,t,i,r,o){this.isMonitoring()&&this.stopMonitoring(!1),this._pointerMoveCallback=r,this._onStopCallback=o;let s=e;try{e.setPointerCapture(t),this._hooks.add(en(()=>{try{e.releasePointerCapture(t)}catch{}}))}catch{s=qt(e)}this._hooks.add(Ve(s,at.POINTER_MOVE,a=>{if(a.buttons!==i){this.stopMonitoring(!0);return}a.preventDefault(),this._pointerMoveCallback(a)})),this._hooks.add(Ve(s,at.POINTER_UP,a=>this.stopMonitoring(!0)))}}function Wb(n,e){const t=Math.pow(10,e);return Math.round(n*t)/t}class ii{constructor(e,t,i,r=1){this._rgbaBrand=void 0,this.r=Math.min(255,Math.max(0,e))|0,this.g=Math.min(255,Math.max(0,t))|0,this.b=Math.min(255,Math.max(0,i))|0,this.a=Wb(Math.max(Math.min(1,r),0),3)}static equals(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b&&e.a===t.a}}class yd{constructor(e,t,i,r){this._hslaBrand=void 0,this.h=Math.max(Math.min(360,e),0)|0,this.s=Wb(Math.max(Math.min(1,t),0),3),this.l=Wb(Math.max(Math.min(1,i),0),3),this.a=Wb(Math.max(Math.min(1,r),0),3)}static equals(e,t){return e.h===t.h&&e.s===t.s&&e.l===t.l&&e.a===t.a}static fromRGBA(e){const t=e.r/255,i=e.g/255,r=e.b/255,o=e.a,s=Math.max(t,i,r),a=Math.min(t,i,r);let l=0,u=0;const c=(a+s)/2,d=s-a;if(d>0){switch(u=Math.min(c<=.5?d/(2*c):d/(2-2*c),1),s){case t:l=(i-r)/d+(i1&&(i-=1),i<1/6?e+(t-e)*6*i:i<1/2?t:i<2/3?e+(t-e)*(2/3-i)*6:e}static toRGBA(e){const t=e.h/360,{s:i,l:r,a:o}=e;let s,a,l;if(i===0)s=a=l=r;else{const u=r<.5?r*(1+i):r+i-r*i,c=2*r-u;s=yd._hue2rgb(c,u,t+1/3),a=yd._hue2rgb(c,u,t),l=yd._hue2rgb(c,u,t-1/3)}return new ii(Math.round(s*255),Math.round(a*255),Math.round(l*255),o)}}class Og{constructor(e,t,i,r){this._hsvaBrand=void 0,this.h=Math.max(Math.min(360,e),0)|0,this.s=Wb(Math.max(Math.min(1,t),0),3),this.v=Wb(Math.max(Math.min(1,i),0),3),this.a=Wb(Math.max(Math.min(1,r),0),3)}static equals(e,t){return e.h===t.h&&e.s===t.s&&e.v===t.v&&e.a===t.a}static fromRGBA(e){const t=e.r/255,i=e.g/255,r=e.b/255,o=Math.max(t,i,r),s=Math.min(t,i,r),a=o-s,l=o===0?0:a/o;let u;return a===0?u=0:o===t?u=((i-r)/a%6+6)%6:o===i?u=(r-t)/a+2:u=(t-i)/a+4,new Og(Math.round(u*60),l,o,e.a)}static toRGBA(e){const{h:t,s:i,v:r,a:o}=e,s=r*i,a=s*(1-Math.abs(t/60%2-1)),l=r-s;let[u,c,d]=[0,0,0];return t<60?(u=s,c=a):t<120?(u=a,c=s):t<180?(c=s,d=a):t<240?(c=a,d=s):t<300?(u=a,d=s):t<=360&&(u=s,d=a),u=Math.round((u+l)*255),c=Math.round((c+l)*255),d=Math.round((d+l)*255),new ii(u,c,d,o)}}let Ee=class Bd{static fromHex(e){return Bd.Format.CSS.parseHex(e)||Bd.red}static equals(e,t){return!e&&!t?!0:!e||!t?!1:e.equals(t)}get hsla(){return this._hsla?this._hsla:yd.fromRGBA(this.rgba)}get hsva(){return this._hsva?this._hsva:Og.fromRGBA(this.rgba)}constructor(e){if(e)if(e instanceof ii)this.rgba=e;else if(e instanceof yd)this._hsla=e,this.rgba=yd.toRGBA(e);else if(e instanceof Og)this._hsva=e,this.rgba=Og.toRGBA(e);else throw new Error("Invalid color ctor argument");else throw new Error("Color needs a value")}equals(e){return!!e&&ii.equals(this.rgba,e.rgba)&&yd.equals(this.hsla,e.hsla)&&Og.equals(this.hsva,e.hsva)}getRelativeLuminance(){const e=Bd._relativeLuminanceForComponent(this.rgba.r),t=Bd._relativeLuminanceForComponent(this.rgba.g),i=Bd._relativeLuminanceForComponent(this.rgba.b),r=.2126*e+.7152*t+.0722*i;return Wb(r,4)}static _relativeLuminanceForComponent(e){const t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}isLighter(){return(this.rgba.r*299+this.rgba.g*587+this.rgba.b*114)/1e3>=128}isLighterThan(e){const t=this.getRelativeLuminance(),i=e.getRelativeLuminance();return t>i}isDarkerThan(e){const t=this.getRelativeLuminance(),i=e.getRelativeLuminance();return t[0-9a-fA-f]{3}[0-9a-eA-E])|(?:[0-9a-fA-F]{6}(?:(?![fF]{2})(?:[0-9a-fA-F]{2}))))?$",a.patternErrorMessage="This color must be transparent or it will obscure content"),this.colorSchema.properties[e]=a,this.colorReferenceSchema.enum.push(e),this.colorReferenceSchema.enumDescriptions.push(i),this._onDidChangeSchema.fire(),e}getColors(){return Object.keys(this.colorsById).map(e=>this.colorsById[e])}resolveDefaultColor(e,t){const i=this.colorsById[e];if(i&&i.defaults){const r=i.defaults[t.type];return _h(r,t)}}getColorSchema(){return this.colorSchema}toString(){const e=(t,i)=>{const r=t.indexOf(".")===-1?0:1,o=i.indexOf(".")===-1?0:1;return r!==o?r-o:t.localeCompare(i)};return Object.keys(this.colorsById).sort(e).map(t=>`- \`${t}\`: ${this.colorsById[t].description}`).join(` +`)}}const bT=new Opt;xo.add(g1e.ColorContribution,bT);function re(n,e,t,i,r){return bT.registerColor(n,e,t,i,r)}const lt=re("foreground",{dark:"#CCCCCC",light:"#616161",hcDark:"#FFFFFF",hcLight:"#292929"},x("foreground","Overall foreground color. This color is only used if not overridden by a component."));re("disabledForeground",{dark:"#CCCCCC80",light:"#61616180",hcDark:"#A5A5A5",hcLight:"#7F7F7F"},x("disabledForeground","Overall foreground for disabled elements. This color is only used if not overridden by a component.")),re("errorForeground",{dark:"#F48771",light:"#A1260D",hcDark:"#F48771",hcLight:"#B5200D"},x("errorForeground","Overall foreground color for error messages. This color is only used if not overridden by a component.")),re("descriptionForeground",{light:"#717171",dark:Bt(lt,.7),hcDark:Bt(lt,.7),hcLight:Bt(lt,.7)},x("descriptionForeground","Foreground color for description text providing additional information, for example for a label."));const Bg=re("icon.foreground",{dark:"#C5C5C5",light:"#424242",hcDark:"#FFFFFF",hcLight:"#292929"},x("iconForeground","The default color for icons in the workbench.")),Ac=re("focusBorder",{dark:"#007FD4",light:"#0090F1",hcDark:"#F38518",hcLight:"#006BBD"},x("focusBorder","Overall border color for focused elements. This color is only used if not overridden by a component.")),jn=re("contrastBorder",{light:null,dark:null,hcDark:"#6FC3DF",hcLight:"#0F4A85"},x("contrastBorder","An extra border around elements to separate them from others for greater contrast.")),dr=re("contrastActiveBorder",{light:null,dark:null,hcDark:Ac,hcLight:Ac},x("activeContrastBorder","An extra border around active elements to separate them from others for greater contrast."));re("selection.background",{light:null,dark:null,hcDark:null,hcLight:null},x("selectionBackground","The background color of text selections in the workbench (e.g. for input fields or text areas). Note that this does not apply to selections within the editor.")),re("textSeparator.foreground",{light:"#0000002e",dark:"#ffffff2e",hcDark:Ee.black,hcLight:"#292929"},x("textSeparatorForeground","Color for text separators."));const Bpt=re("textLink.foreground",{light:"#006AB1",dark:"#3794FF",hcDark:"#21A6FF",hcLight:"#0F4A85"},x("textLinkForeground","Foreground color for links in text."));re("textLink.activeForeground",{light:"#006AB1",dark:"#3794FF",hcDark:"#21A6FF",hcLight:"#0F4A85"},x("textLinkActiveForeground","Foreground color for links in text when clicked on and on mouse hover.")),re("textPreformat.foreground",{light:"#A31515",dark:"#D7BA7D",hcDark:"#000000",hcLight:"#FFFFFF"},x("textPreformatForeground","Foreground color for preformatted text segments.")),re("textPreformat.background",{light:"#0000001A",dark:"#FFFFFF1A",hcDark:"#FFFFFF",hcLight:"#09345f"},x("textPreformatBackground","Background color for preformatted text segments.")),re("textBlockQuote.background",{light:"#f2f2f2",dark:"#222222",hcDark:null,hcLight:"#F2F2F2"},x("textBlockQuoteBackground","Background color for block quotes in text.")),re("textBlockQuote.border",{light:"#007acc80",dark:"#007acc80",hcDark:Ee.white,hcLight:"#292929"},x("textBlockQuoteBorder","Border color for block quotes in text.")),re("textCodeBlock.background",{light:"#dcdcdc66",dark:"#0a0a0a66",hcDark:Ee.black,hcLight:"#F2F2F2"},x("textCodeBlockBackground","Background color for code blocks in text."));const _f=re("widget.shadow",{dark:Bt(Ee.black,.36),light:Bt(Ee.black,.16),hcDark:null,hcLight:null},x("widgetShadow","Shadow color of widgets such as find/replace inside the editor.")),m1e=re("widget.border",{dark:null,light:null,hcDark:jn,hcLight:jn},x("widgetBorder","Border color of widgets such as find/replace inside the editor.")),f1e=re("input.background",{dark:"#3C3C3C",light:Ee.white,hcDark:Ee.black,hcLight:Ee.white},x("inputBoxBackground","Input box background.")),p1e=re("input.foreground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("inputBoxForeground","Input box foreground.")),b1e=re("input.border",{dark:null,light:null,hcDark:jn,hcLight:jn},x("inputBoxBorder","Input box border.")),EH=re("inputOption.activeBorder",{dark:"#007ACC",light:"#007ACC",hcDark:jn,hcLight:jn},x("inputBoxActiveOptionBorder","Border color of activated options in input fields."));re("inputOption.hoverBackground",{dark:"#5a5d5e80",light:"#b8b8b850",hcDark:null,hcLight:null},x("inputOption.hoverBackground","Background color of activated options in input fields."));const PC=re("inputOption.activeBackground",{dark:Bt(Ac,.4),light:Bt(Ac,.2),hcDark:Ee.transparent,hcLight:Ee.transparent},x("inputOption.activeBackground","Background hover color of options in input fields.")),WH=re("inputOption.activeForeground",{dark:Ee.white,light:Ee.black,hcDark:lt,hcLight:lt},x("inputOption.activeForeground","Foreground color of activated options in input fields."));re("input.placeholderForeground",{light:Bt(lt,.5),dark:Bt(lt,.5),hcDark:Bt(lt,.7),hcLight:Bt(lt,.7)},x("inputPlaceholderForeground","Input box foreground color for placeholder text."));const zpt=re("inputValidation.infoBackground",{dark:"#063B49",light:"#D6ECF2",hcDark:Ee.black,hcLight:Ee.white},x("inputValidationInfoBackground","Input validation background color for information severity.")),Ypt=re("inputValidation.infoForeground",{dark:null,light:null,hcDark:null,hcLight:lt},x("inputValidationInfoForeground","Input validation foreground color for information severity.")),Hpt=re("inputValidation.infoBorder",{dark:"#007acc",light:"#007acc",hcDark:jn,hcLight:jn},x("inputValidationInfoBorder","Input validation border color for information severity.")),Upt=re("inputValidation.warningBackground",{dark:"#352A05",light:"#F6F5D2",hcDark:Ee.black,hcLight:Ee.white},x("inputValidationWarningBackground","Input validation background color for warning severity.")),Jpt=re("inputValidation.warningForeground",{dark:null,light:null,hcDark:null,hcLight:lt},x("inputValidationWarningForeground","Input validation foreground color for warning severity.")),Kpt=re("inputValidation.warningBorder",{dark:"#B89500",light:"#B89500",hcDark:jn,hcLight:jn},x("inputValidationWarningBorder","Input validation border color for warning severity.")),jpt=re("inputValidation.errorBackground",{dark:"#5A1D1D",light:"#F2DEDE",hcDark:Ee.black,hcLight:Ee.white},x("inputValidationErrorBackground","Input validation background color for error severity.")),Qpt=re("inputValidation.errorForeground",{dark:null,light:null,hcDark:null,hcLight:lt},x("inputValidationErrorForeground","Input validation foreground color for error severity.")),$pt=re("inputValidation.errorBorder",{dark:"#BE1100",light:"#BE1100",hcDark:jn,hcLight:jn},x("inputValidationErrorBorder","Input validation border color for error severity.")),zg=re("dropdown.background",{dark:"#3C3C3C",light:Ee.white,hcDark:Ee.black,hcLight:Ee.white},x("dropdownBackground","Dropdown background.")),qpt=re("dropdown.listBackground",{dark:null,light:null,hcDark:Ee.black,hcLight:Ee.white},x("dropdownListBackground","Dropdown list background.")),Df=re("dropdown.foreground",{dark:"#F0F0F0",light:lt,hcDark:Ee.white,hcLight:lt},x("dropdownForeground","Dropdown foreground.")),L2=re("dropdown.border",{dark:zg,light:"#CECECE",hcDark:jn,hcLight:jn},x("dropdownBorder","Dropdown border.")),qF=re("button.foreground",{dark:Ee.white,light:Ee.white,hcDark:Ee.white,hcLight:Ee.white},x("buttonForeground","Button foreground color.")),ebt=re("button.separator",{dark:Bt(qF,.4),light:Bt(qF,.4),hcDark:Bt(qF,.4),hcLight:Bt(qF,.4)},x("buttonSeparator","Button separator color.")),e_=re("button.background",{dark:"#0E639C",light:"#007ACC",hcDark:null,hcLight:"#0F4A85"},x("buttonBackground","Button background color.")),tbt=re("button.hoverBackground",{dark:Fh(e_,.2),light:zC(e_,.2),hcDark:e_,hcLight:e_},x("buttonHoverBackground","Button background color when hovering.")),nbt=re("button.border",{dark:jn,light:jn,hcDark:jn,hcLight:jn},x("buttonBorder","Button border color.")),ibt=re("button.secondaryForeground",{dark:Ee.white,light:Ee.white,hcDark:Ee.white,hcLight:lt},x("buttonSecondaryForeground","Secondary button foreground color.")),RH=re("button.secondaryBackground",{dark:"#3A3D41",light:"#5F6A79",hcDark:null,hcLight:Ee.white},x("buttonSecondaryBackground","Secondary button background color.")),rbt=re("button.secondaryHoverBackground",{dark:Fh(RH,.2),light:zC(RH,.2),hcDark:null,hcLight:null},x("buttonSecondaryHoverBackground","Secondary button background color when hovering.")),CT=re("badge.background",{dark:"#4D4D4D",light:"#C4C4C4",hcDark:Ee.black,hcLight:"#0F4A85"},x("badgeBackground","Badge background color. Badges are small information labels, e.g. for search results count.")),obt=re("badge.foreground",{dark:Ee.white,light:"#333",hcDark:Ee.white,hcLight:Ee.white},x("badgeForeground","Badge foreground color. Badges are small information labels, e.g. for search results count.")),t_=re("scrollbar.shadow",{dark:"#000000",light:"#DDDDDD",hcDark:null,hcLight:null},x("scrollbarShadow","Scrollbar shadow to indicate that the view is scrolled.")),n_=re("scrollbarSlider.background",{dark:Ee.fromHex("#797979").transparent(.4),light:Ee.fromHex("#646464").transparent(.4),hcDark:Bt(jn,.6),hcLight:Bt(jn,.4)},x("scrollbarSliderBackground","Scrollbar slider background color.")),i_=re("scrollbarSlider.hoverBackground",{dark:Ee.fromHex("#646464").transparent(.7),light:Ee.fromHex("#646464").transparent(.7),hcDark:Bt(jn,.8),hcLight:Bt(jn,.8)},x("scrollbarSliderHoverBackground","Scrollbar slider background color when hovering.")),r_=re("scrollbarSlider.activeBackground",{dark:Ee.fromHex("#BFBFBF").transparent(.4),light:Ee.fromHex("#000000").transparent(.6),hcDark:jn,hcLight:jn},x("scrollbarSliderActiveBackground","Scrollbar slider background color when clicked on.")),sbt=re("progressBar.background",{dark:Ee.fromHex("#0E70C0"),light:Ee.fromHex("#0E70C0"),hcDark:jn,hcLight:jn},x("progressBarBackground","Background color of the progress bar that can show for long running operations."));re("editorError.background",{dark:null,light:null,hcDark:null,hcLight:null},x("editorError.background","Background color of error text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0);const Yg=re("editorError.foreground",{dark:"#F14C4C",light:"#E51400",hcDark:"#F48771",hcLight:"#B5200D"},x("editorError.foreground","Foreground color of error squigglies in the editor.")),abt=re("editorError.border",{dark:null,light:null,hcDark:Ee.fromHex("#E47777").transparent(.8),hcLight:"#B5200D"},x("errorBorder","If set, color of double underlines for errors in the editor.")),vT=re("editorWarning.background",{dark:null,light:null,hcDark:null,hcLight:null},x("editorWarning.background","Background color of warning text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0),Sa=re("editorWarning.foreground",{dark:"#CCA700",light:"#BF8803",hcDark:"#FFD370",hcLight:"#895503"},x("editorWarning.foreground","Foreground color of warning squigglies in the editor.")),o_=re("editorWarning.border",{dark:null,light:null,hcDark:Ee.fromHex("#FFCC00").transparent(.8),hcLight:Ee.fromHex("#FFCC00").transparent(.8)},x("warningBorder","If set, color of double underlines for warnings in the editor."));re("editorInfo.background",{dark:null,light:null,hcDark:null,hcLight:null},x("editorInfo.background","Background color of info text in the editor. The color must not be opaque so as not to hide underlying decorations."),!0);const Tl=re("editorInfo.foreground",{dark:"#3794FF",light:"#1a85ff",hcDark:"#3794FF",hcLight:"#1a85ff"},x("editorInfo.foreground","Foreground color of info squigglies in the editor.")),s_=re("editorInfo.border",{dark:null,light:null,hcDark:Ee.fromHex("#3794FF").transparent(.8),hcLight:"#292929"},x("infoBorder","If set, color of double underlines for infos in the editor.")),lbt=re("editorHint.foreground",{dark:Ee.fromHex("#eeeeee").transparent(.7),light:"#6c6c6c",hcDark:null,hcLight:null},x("editorHint.foreground","Foreground color of hint squigglies in the editor."));re("editorHint.border",{dark:null,light:null,hcDark:Ee.fromHex("#eeeeee").transparent(.8),hcLight:"#292929"},x("hintBorder","If set, color of double underlines for hints in the editor.")),re("sash.hoverBorder",{dark:Ac,light:Ac,hcDark:Ac,hcLight:Ac},x("sashActiveBorder","Border color of active sashes."));const es=re("editor.background",{light:"#ffffff",dark:"#1E1E1E",hcDark:Ee.black,hcLight:Ee.white},x("editorBackground","Editor background color.")),Id=re("editor.foreground",{light:"#333333",dark:"#BBBBBB",hcDark:Ee.white,hcLight:lt},x("editorForeground","Editor default foreground color."));re("editorStickyScroll.background",{light:es,dark:es,hcDark:es,hcLight:es},x("editorStickyScrollBackground","Background color of sticky scroll in the editor")),re("editorStickyScrollHover.background",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:null,hcLight:Ee.fromHex("#0F4A85").transparent(.1)},x("editorStickyScrollHoverBackground","Background color of sticky scroll on hover in the editor")),re("editorStickyScroll.border",{dark:null,light:null,hcDark:jn,hcLight:jn},x("editorStickyScrollBorder","Border color of sticky scroll in the editor")),re("editorStickyScroll.shadow",{dark:t_,light:t_,hcDark:t_,hcLight:t_},x("editorStickyScrollShadow"," Shadow color of sticky scroll in the editor"));const $r=re("editorWidget.background",{dark:"#252526",light:"#F3F3F3",hcDark:"#0C141F",hcLight:Ee.white},x("editorWidgetBackground","Background color of editor widgets, such as find/replace.")),Af=re("editorWidget.foreground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("editorWidgetForeground","Foreground color of editor widgets, such as find/replace.")),Nf=re("editorWidget.border",{dark:"#454545",light:"#C8C8C8",hcDark:jn,hcLight:jn},x("editorWidgetBorder","Border color of editor widgets. The color is only used if the widget chooses to have a border and if the color is not overridden by a widget."));re("editorWidget.resizeBorder",{light:null,dark:null,hcDark:null,hcLight:null},x("editorWidgetResizeBorder","Border color of the resize bar of editor widgets. The color is only used if the widget chooses to have a resize border and if the color is not overridden by a widget."));const C1e=re("quickInput.background",{dark:$r,light:$r,hcDark:$r,hcLight:$r},x("pickerBackground","Quick picker background color. The quick picker widget is the container for pickers like the command palette.")),ubt=re("quickInput.foreground",{dark:Af,light:Af,hcDark:Af,hcLight:Af},x("pickerForeground","Quick picker foreground color. The quick picker widget is the container for pickers like the command palette.")),cbt=re("quickInputTitle.background",{dark:new Ee(new ii(255,255,255,.105)),light:new Ee(new ii(0,0,0,.06)),hcDark:"#000000",hcLight:Ee.white},x("pickerTitleBackground","Quick picker title background color. The quick picker widget is the container for pickers like the command palette.")),v1e=re("pickerGroup.foreground",{dark:"#3794FF",light:"#0066BF",hcDark:Ee.white,hcLight:"#0F4A85"},x("pickerGroupForeground","Quick picker color for grouping labels.")),dbt=re("pickerGroup.border",{dark:"#3F3F46",light:"#CCCEDB",hcDark:Ee.white,hcLight:"#0F4A85"},x("pickerGroupBorder","Quick picker color for grouping borders.")),hbt=re("keybindingLabel.background",{dark:new Ee(new ii(128,128,128,.17)),light:new Ee(new ii(221,221,221,.4)),hcDark:Ee.transparent,hcLight:Ee.transparent},x("keybindingLabelBackground","Keybinding label background color. The keybinding label is used to represent a keyboard shortcut.")),gbt=re("keybindingLabel.foreground",{dark:Ee.fromHex("#CCCCCC"),light:Ee.fromHex("#555555"),hcDark:Ee.white,hcLight:lt},x("keybindingLabelForeground","Keybinding label foreground color. The keybinding label is used to represent a keyboard shortcut.")),mbt=re("keybindingLabel.border",{dark:new Ee(new ii(51,51,51,.6)),light:new Ee(new ii(204,204,204,.4)),hcDark:new Ee(new ii(111,195,223)),hcLight:jn},x("keybindingLabelBorder","Keybinding label border color. The keybinding label is used to represent a keyboard shortcut.")),fbt=re("keybindingLabel.bottomBorder",{dark:new Ee(new ii(68,68,68,.6)),light:new Ee(new ii(187,187,187,.4)),hcDark:new Ee(new ii(111,195,223)),hcLight:lt},x("keybindingLabelBottomBorder","Keybinding label border bottom color. The keybinding label is used to represent a keyboard shortcut.")),Rb=re("editor.selectionBackground",{light:"#ADD6FF",dark:"#264F78",hcDark:"#f3f518",hcLight:"#0F4A85"},x("editorSelectionBackground","Color of the editor selection.")),pbt=re("editor.selectionForeground",{light:null,dark:null,hcDark:"#000000",hcLight:Ee.white},x("editorSelectionForeground","Color of the selected text for high contrast.")),y1e=re("editor.inactiveSelectionBackground",{light:Bt(Rb,.5),dark:Bt(Rb,.5),hcDark:Bt(Rb,.7),hcLight:Bt(Rb,.5)},x("editorInactiveSelection","Color of the selection in an inactive editor. The color must not be opaque so as not to hide underlying decorations."),!0),GH=re("editor.selectionHighlightBackground",{light:M1e(Rb,es,.3,.6),dark:M1e(Rb,es,.3,.6),hcDark:null,hcLight:null},x("editorSelectionHighlight","Color for regions with the same content as the selection. The color must not be opaque so as not to hide underlying decorations."),!0);re("editor.selectionHighlightBorder",{light:null,dark:null,hcDark:dr,hcLight:dr},x("editorSelectionHighlightBorder","Border color for regions with the same content as the selection.")),re("editor.findMatchBackground",{light:"#A8AC94",dark:"#515C6A",hcDark:null,hcLight:null},x("editorFindMatch","Color of the current search match."));const kf=re("editor.findMatchHighlightBackground",{light:"#EA5C0055",dark:"#EA5C0055",hcDark:null,hcLight:null},x("findMatchHighlight","Color of the other search matches. The color must not be opaque so as not to hide underlying decorations."),!0);re("editor.findRangeHighlightBackground",{dark:"#3a3d4166",light:"#b4b4b44d",hcDark:null,hcLight:null},x("findRangeHighlight","Color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0),re("editor.findMatchBorder",{light:null,dark:null,hcDark:dr,hcLight:dr},x("editorFindMatchBorder","Border color of the current search match."));const Gb=re("editor.findMatchHighlightBorder",{light:null,dark:null,hcDark:dr,hcLight:dr},x("findMatchHighlightBorder","Border color of the other search matches.")),bbt=re("editor.findRangeHighlightBorder",{dark:null,light:null,hcDark:Bt(dr,.4),hcLight:Bt(dr,.4)},x("findRangeHighlightBorder","Border color of the range limiting the search. The color must not be opaque so as not to hide underlying decorations."),!0);re("searchEditor.findMatchBackground",{light:Bt(kf,.66),dark:Bt(kf,.66),hcDark:kf,hcLight:kf},x("searchEditor.queryMatch","Color of the Search Editor query matches.")),re("searchEditor.findMatchBorder",{light:Bt(Gb,.66),dark:Bt(Gb,.66),hcDark:Gb,hcLight:Gb},x("searchEditor.editorFindMatchBorder","Border color of the Search Editor query matches.")),re("search.resultsInfoForeground",{light:lt,dark:Bt(lt,.65),hcDark:lt,hcLight:lt},x("search.resultsInfoForeground","Color of the text in the search viewlet's completion message.")),re("editor.hoverHighlightBackground",{light:"#ADD6FF26",dark:"#264f7840",hcDark:"#ADD6FF26",hcLight:null},x("hoverHighlight","Highlight below the word for which a hover is shown. The color must not be opaque so as not to hide underlying decorations."),!0);const yT=re("editorHoverWidget.background",{light:$r,dark:$r,hcDark:$r,hcLight:$r},x("hoverBackground","Background color of the editor hover."));re("editorHoverWidget.foreground",{light:Af,dark:Af,hcDark:Af,hcLight:Af},x("hoverForeground","Foreground color of the editor hover."));const I1e=re("editorHoverWidget.border",{light:Nf,dark:Nf,hcDark:Nf,hcLight:Nf},x("hoverBorder","Border color of the editor hover."));re("editorHoverWidget.statusBarBackground",{dark:Fh(yT,.2),light:zC(yT,.05),hcDark:$r,hcLight:$r},x("statusBarBackground","Background color of the editor hover status bar."));const Cbt=re("editorLink.activeForeground",{dark:"#4E94CE",light:Ee.blue,hcDark:Ee.cyan,hcLight:"#292929"},x("activeLinkForeground","Color of active links.")),Mf=re("editorInlayHint.foreground",{dark:"#969696",light:"#969696",hcDark:Ee.white,hcLight:Ee.black},x("editorInlayHintForeground","Foreground color of inline hints")),Zf=re("editorInlayHint.background",{dark:Bt(CT,.1),light:Bt(CT,.1),hcDark:Bt(Ee.white,.1),hcLight:Bt(CT,.1)},x("editorInlayHintBackground","Background color of inline hints")),vbt=re("editorInlayHint.typeForeground",{dark:Mf,light:Mf,hcDark:Mf,hcLight:Mf},x("editorInlayHintForegroundTypes","Foreground color of inline hints for types")),ybt=re("editorInlayHint.typeBackground",{dark:Zf,light:Zf,hcDark:Zf,hcLight:Zf},x("editorInlayHintBackgroundTypes","Background color of inline hints for types")),Ibt=re("editorInlayHint.parameterForeground",{dark:Mf,light:Mf,hcDark:Mf,hcLight:Mf},x("editorInlayHintForegroundParameter","Foreground color of inline hints for parameters")),wbt=re("editorInlayHint.parameterBackground",{dark:Zf,light:Zf,hcDark:Zf,hcLight:Zf},x("editorInlayHintBackgroundParameter","Background color of inline hints for parameters")),IT=re("editorLightBulb.foreground",{dark:"#FFCC00",light:"#DDB100",hcDark:"#FFCC00",hcLight:"#007ACC"},x("editorLightBulbForeground","The color used for the lightbulb actions icon."));re("editorLightBulbAutoFix.foreground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},x("editorLightBulbAutoFixForeground","The color used for the lightbulb auto fix actions icon.")),re("editorLightBulbAi.foreground",{dark:IT,light:IT,hcDark:IT,hcLight:IT},x("editorLightBulbAiForeground","The color used for the lightbulb AI icon."));const VH=new Ee(new ii(155,185,85,.2)),XH=new Ee(new ii(255,0,0,.2)),Sbt=re("diffEditor.insertedTextBackground",{dark:"#9ccc2c33",light:"#9ccc2c40",hcDark:null,hcLight:null},x("diffEditorInserted","Background color for text that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),xbt=re("diffEditor.removedTextBackground",{dark:"#ff000033",light:"#ff000033",hcDark:null,hcLight:null},x("diffEditorRemoved","Background color for text that got removed. The color must not be opaque so as not to hide underlying decorations."),!0);re("diffEditor.insertedLineBackground",{dark:VH,light:VH,hcDark:null,hcLight:null},x("diffEditorInsertedLines","Background color for lines that got inserted. The color must not be opaque so as not to hide underlying decorations."),!0),re("diffEditor.removedLineBackground",{dark:XH,light:XH,hcDark:null,hcLight:null},x("diffEditorRemovedLines","Background color for lines that got removed. The color must not be opaque so as not to hide underlying decorations."),!0),re("diffEditorGutter.insertedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},x("diffEditorInsertedLineGutter","Background color for the margin where lines got inserted.")),re("diffEditorGutter.removedLineBackground",{dark:null,light:null,hcDark:null,hcLight:null},x("diffEditorRemovedLineGutter","Background color for the margin where lines got removed."));const Lbt=re("diffEditorOverview.insertedForeground",{dark:null,light:null,hcDark:null,hcLight:null},x("diffEditorOverviewInserted","Diff overview ruler foreground for inserted content.")),Fbt=re("diffEditorOverview.removedForeground",{dark:null,light:null,hcDark:null,hcLight:null},x("diffEditorOverviewRemoved","Diff overview ruler foreground for removed content."));re("diffEditor.insertedTextBorder",{dark:null,light:null,hcDark:"#33ff2eff",hcLight:"#374E06"},x("diffEditorInsertedOutline","Outline color for the text that got inserted.")),re("diffEditor.removedTextBorder",{dark:null,light:null,hcDark:"#FF008F",hcLight:"#AD0707"},x("diffEditorRemovedOutline","Outline color for text that got removed.")),re("diffEditor.border",{dark:null,light:null,hcDark:jn,hcLight:jn},x("diffEditorBorder","Border color between the two text editors.")),re("diffEditor.diagonalFill",{dark:"#cccccc33",light:"#22222233",hcDark:null,hcLight:null},x("diffDiagonalFill","Color of the diff editor's diagonal fill. The diagonal fill is used in side-by-side diff views.")),re("diffEditor.unchangedRegionBackground",{dark:"sideBar.background",light:"sideBar.background",hcDark:"sideBar.background",hcLight:"sideBar.background"},x("diffEditor.unchangedRegionBackground","The background color of unchanged blocks in the diff editor.")),re("diffEditor.unchangedRegionForeground",{dark:"foreground",light:"foreground",hcDark:"foreground",hcLight:"foreground"},x("diffEditor.unchangedRegionForeground","The foreground color of unchanged blocks in the diff editor.")),re("diffEditor.unchangedCodeBackground",{dark:"#74747429",light:"#b8b8b829",hcDark:null,hcLight:null},x("diffEditor.unchangedCodeBackground","The background color of unchanged code in the diff editor."));const _bt=re("list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},x("listFocusBackground","List/Tree background color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),Dbt=re("list.focusForeground",{dark:null,light:null,hcDark:null,hcLight:null},x("listFocusForeground","List/Tree foreground color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),Abt=re("list.focusOutline",{dark:Ac,light:Ac,hcDark:dr,hcLight:dr},x("listFocusOutline","List/Tree outline color for the focused item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),Nbt=re("list.focusAndSelectionOutline",{dark:null,light:null,hcDark:null,hcLight:null},x("listFocusAndSelectionOutline","List/Tree outline color for the focused item when the list/tree is active and selected. An active list/tree has keyboard focus, an inactive does not.")),Tf=re("list.activeSelectionBackground",{dark:"#04395E",light:"#0060C0",hcDark:null,hcLight:Ee.fromHex("#0F4A85").transparent(.1)},x("listActiveSelectionBackground","List/Tree background color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),Hg=re("list.activeSelectionForeground",{dark:Ee.white,light:Ee.white,hcDark:null,hcLight:null},x("listActiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),a_=re("list.activeSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},x("listActiveSelectionIconForeground","List/Tree icon foreground color for the selected item when the list/tree is active. An active list/tree has keyboard focus, an inactive does not.")),kbt=re("list.inactiveSelectionBackground",{dark:"#37373D",light:"#E4E6F1",hcDark:null,hcLight:Ee.fromHex("#0F4A85").transparent(.1)},x("listInactiveSelectionBackground","List/Tree background color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),Mbt=re("list.inactiveSelectionForeground",{dark:null,light:null,hcDark:null,hcLight:null},x("listInactiveSelectionForeground","List/Tree foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),Zbt=re("list.inactiveSelectionIconForeground",{dark:null,light:null,hcDark:null,hcLight:null},x("listInactiveSelectionIconForeground","List/Tree icon foreground color for the selected item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),Tbt=re("list.inactiveFocusBackground",{dark:null,light:null,hcDark:null,hcLight:null},x("listInactiveFocusBackground","List/Tree background color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),Ebt=re("list.inactiveFocusOutline",{dark:null,light:null,hcDark:null,hcLight:null},x("listInactiveFocusOutline","List/Tree outline color for the focused item when the list/tree is inactive. An active list/tree has keyboard focus, an inactive does not.")),w1e=re("list.hoverBackground",{dark:"#2A2D2E",light:"#F0F0F0",hcDark:Ee.white.transparent(.1),hcLight:Ee.fromHex("#0F4A85").transparent(.1)},x("listHoverBackground","List/Tree background when hovering over items using the mouse.")),S1e=re("list.hoverForeground",{dark:null,light:null,hcDark:null,hcLight:null},x("listHoverForeground","List/Tree foreground when hovering over items using the mouse.")),Wbt=re("list.dropBackground",{dark:"#062F4A",light:"#D6EBFF",hcDark:null,hcLight:null},x("listDropBackground","List/Tree drag and drop background when moving items over other items when using the mouse.")),Rbt=re("list.dropBetweenBackground",{dark:Bg,light:Bg,hcDark:null,hcLight:null},x("listDropBetweenBackground","List/Tree drag and drop border color when moving items between items when using the mouse.")),wd=re("list.highlightForeground",{dark:"#2AAAFF",light:"#0066BF",hcDark:Ac,hcLight:Ac},x("highlight","List/Tree foreground color of the match highlights when searching inside the list/tree.")),wT=re("list.focusHighlightForeground",{dark:wd,light:g0t(Tf,wd,"#BBE7FF"),hcDark:wd,hcLight:wd},x("listFocusHighlightForeground","List/Tree foreground color of the match highlights on actively focused items when searching inside the list/tree."));re("list.invalidItemForeground",{dark:"#B89500",light:"#B89500",hcDark:"#B89500",hcLight:"#B5200D"},x("invalidItemForeground","List/Tree foreground color for invalid items, for example an unresolved root in explorer.")),re("list.errorForeground",{dark:"#F88070",light:"#B01011",hcDark:null,hcLight:null},x("listErrorForeground","Foreground color of list items containing errors.")),re("list.warningForeground",{dark:"#CCA700",light:"#855F00",hcDark:null,hcLight:null},x("listWarningForeground","Foreground color of list items containing warnings."));const Gbt=re("listFilterWidget.background",{light:zC($r,0),dark:Fh($r,0),hcDark:$r,hcLight:$r},x("listFilterWidgetBackground","Background color of the type filter widget in lists and trees.")),Vbt=re("listFilterWidget.outline",{dark:Ee.transparent,light:Ee.transparent,hcDark:"#f38518",hcLight:"#007ACC"},x("listFilterWidgetOutline","Outline color of the type filter widget in lists and trees.")),Xbt=re("listFilterWidget.noMatchesOutline",{dark:"#BE1100",light:"#BE1100",hcDark:jn,hcLight:jn},x("listFilterWidgetNoMatchesOutline","Outline color of the type filter widget in lists and trees, when there are no matches.")),Pbt=re("listFilterWidget.shadow",{dark:_f,light:_f,hcDark:_f,hcLight:_f},x("listFilterWidgetShadow","Shadow color of the type filter widget in lists and trees."));re("list.filterMatchBackground",{dark:kf,light:kf,hcDark:null,hcLight:null},x("listFilterMatchHighlight","Background color of the filtered match.")),re("list.filterMatchBorder",{dark:Gb,light:Gb,hcDark:jn,hcLight:dr},x("listFilterMatchHighlightBorder","Border color of the filtered match."));const l_=re("tree.indentGuidesStroke",{dark:"#585858",light:"#a9a9a9",hcDark:"#a9a9a9",hcLight:"#a5a5a5"},x("treeIndentGuidesStroke","Tree stroke color for the indentation guides.")),Obt=re("tree.inactiveIndentGuidesStroke",{dark:Bt(l_,.4),light:Bt(l_,.4),hcDark:Bt(l_,.4),hcLight:Bt(l_,.4)},x("treeInactiveIndentGuidesStroke","Tree stroke color for the indentation guides that are not active.")),Bbt=re("tree.tableColumnsBorder",{dark:"#CCCCCC20",light:"#61616120",hcDark:null,hcLight:null},x("tableColumnsBorder","Table border color between columns.")),zbt=re("tree.tableOddRowsBackground",{dark:Bt(lt,.04),light:Bt(lt,.04),hcDark:null,hcLight:null},x("tableOddRowsBackgroundColor","Background color for odd table rows."));re("list.deemphasizedForeground",{dark:"#8C8C8C",light:"#8E8E90",hcDark:"#A7A8A9",hcLight:"#666666"},x("listDeemphasizedForeground","List/Tree foreground color for items that are deemphasized. "));const Ybt=re("checkbox.background",{dark:zg,light:zg,hcDark:zg,hcLight:zg},x("checkbox.background","Background color of checkbox widget."));re("checkbox.selectBackground",{dark:$r,light:$r,hcDark:$r,hcLight:$r},x("checkbox.select.background","Background color of checkbox widget when the element it's in is selected."));const Hbt=re("checkbox.foreground",{dark:Df,light:Df,hcDark:Df,hcLight:Df},x("checkbox.foreground","Foreground color of checkbox widget.")),Ubt=re("checkbox.border",{dark:L2,light:L2,hcDark:L2,hcLight:L2},x("checkbox.border","Border color of checkbox widget."));re("checkbox.selectBorder",{dark:Bg,light:Bg,hcDark:Bg,hcLight:Bg},x("checkbox.select.border","Border color of checkbox widget when the element it's in is selected."));const x1e=re("quickInput.list.focusBackground",{dark:null,light:null,hcDark:null,hcLight:null},"",void 0,x("quickInput.list.focusBackground deprecation","Please use quickInputList.focusBackground instead")),OC=re("quickInputList.focusForeground",{dark:Hg,light:Hg,hcDark:Hg,hcLight:Hg},x("quickInput.listFocusForeground","Quick picker foreground color for the focused item.")),F2=re("quickInputList.focusIconForeground",{dark:a_,light:a_,hcDark:a_,hcLight:a_},x("quickInput.listFocusIconForeground","Quick picker icon foreground color for the focused item.")),BC=re("quickInputList.focusBackground",{dark:c_(x1e,Tf),light:c_(x1e,Tf),hcDark:null,hcLight:null},x("quickInput.listFocusBackground","Quick picker background color for the focused item.")),Jbt=re("menu.border",{dark:null,light:null,hcDark:jn,hcLight:jn},x("menuBorder","Border color of menus.")),Kbt=re("menu.foreground",{dark:Df,light:Df,hcDark:Df,hcLight:Df},x("menuForeground","Foreground color of menu items.")),jbt=re("menu.background",{dark:zg,light:zg,hcDark:zg,hcLight:zg},x("menuBackground","Background color of menu items.")),Qbt=re("menu.selectionForeground",{dark:Hg,light:Hg,hcDark:Hg,hcLight:Hg},x("menuSelectionForeground","Foreground color of the selected menu item in menus.")),$bt=re("menu.selectionBackground",{dark:Tf,light:Tf,hcDark:Tf,hcLight:Tf},x("menuSelectionBackground","Background color of the selected menu item in menus.")),qbt=re("menu.selectionBorder",{dark:null,light:null,hcDark:dr,hcLight:dr},x("menuSelectionBorder","Border color of the selected menu item in menus.")),e0t=re("menu.separatorBackground",{dark:"#606060",light:"#D4D4D4",hcDark:jn,hcLight:jn},x("menuSeparatorBackground","Color of a separator menu item in menus.")),L1e=re("toolbar.hoverBackground",{dark:"#5a5d5e50",light:"#b8b8b850",hcDark:null,hcLight:null},x("toolbarHoverBackground","Toolbar background when hovering over actions using the mouse"));re("toolbar.hoverOutline",{dark:null,light:null,hcDark:dr,hcLight:dr},x("toolbarHoverOutline","Toolbar outline when hovering over actions using the mouse")),re("toolbar.activeBackground",{dark:Fh(L1e,.1),light:zC(L1e,.1),hcDark:null,hcLight:null},x("toolbarActiveBackground","Toolbar background when holding the mouse over actions")),re("editor.snippetTabstopHighlightBackground",{dark:new Ee(new ii(124,124,124,.3)),light:new Ee(new ii(10,50,100,.2)),hcDark:new Ee(new ii(124,124,124,.3)),hcLight:new Ee(new ii(10,50,100,.2))},x("snippetTabstopHighlightBackground","Highlight background color of a snippet tabstop.")),re("editor.snippetTabstopHighlightBorder",{dark:null,light:null,hcDark:null,hcLight:null},x("snippetTabstopHighlightBorder","Highlight border color of a snippet tabstop.")),re("editor.snippetFinalTabstopHighlightBackground",{dark:null,light:null,hcDark:null,hcLight:null},x("snippetFinalTabstopHighlightBackground","Highlight background color of the final tabstop of a snippet.")),re("editor.snippetFinalTabstopHighlightBorder",{dark:"#525252",light:new Ee(new ii(10,50,100,.5)),hcDark:"#525252",hcLight:"#292929"},x("snippetFinalTabstopHighlightBorder","Highlight border color of the final tabstop of a snippet."));const t0t=re("breadcrumb.foreground",{light:Bt(lt,.8),dark:Bt(lt,.8),hcDark:Bt(lt,.8),hcLight:Bt(lt,.8)},x("breadcrumbsFocusForeground","Color of focused breadcrumb items.")),n0t=re("breadcrumb.background",{light:es,dark:es,hcDark:es,hcLight:es},x("breadcrumbsBackground","Background color of breadcrumb items.")),F1e=re("breadcrumb.focusForeground",{light:zC(lt,.2),dark:Fh(lt,.1),hcDark:Fh(lt,.1),hcLight:Fh(lt,.1)},x("breadcrumbsFocusForeground","Color of focused breadcrumb items.")),i0t=re("breadcrumb.activeSelectionForeground",{light:zC(lt,.2),dark:Fh(lt,.1),hcDark:Fh(lt,.1),hcLight:Fh(lt,.1)},x("breadcrumbsSelectedForeground","Color of selected breadcrumb items."));re("breadcrumbPicker.background",{light:$r,dark:$r,hcDark:$r,hcLight:$r},x("breadcrumbsSelectedBackground","Background color of breadcrumb item picker."));const _1e=.5,D1e=Ee.fromHex("#40C8AE").transparent(_1e),A1e=Ee.fromHex("#40A6FF").transparent(_1e),N1e=Ee.fromHex("#606060").transparent(.4),Sd=.4,_2=1,D2=re("merge.currentHeaderBackground",{dark:D1e,light:D1e,hcDark:null,hcLight:null},x("mergeCurrentHeaderBackground","Current header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);re("merge.currentContentBackground",{dark:Bt(D2,Sd),light:Bt(D2,Sd),hcDark:Bt(D2,Sd),hcLight:Bt(D2,Sd)},x("mergeCurrentContentBackground","Current content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const A2=re("merge.incomingHeaderBackground",{dark:A1e,light:A1e,hcDark:null,hcLight:null},x("mergeIncomingHeaderBackground","Incoming header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);re("merge.incomingContentBackground",{dark:Bt(A2,Sd),light:Bt(A2,Sd),hcDark:Bt(A2,Sd),hcLight:Bt(A2,Sd)},x("mergeIncomingContentBackground","Incoming content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const N2=re("merge.commonHeaderBackground",{dark:N1e,light:N1e,hcDark:null,hcLight:null},x("mergeCommonHeaderBackground","Common ancestor header background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);re("merge.commonContentBackground",{dark:Bt(N2,Sd),light:Bt(N2,Sd),hcDark:Bt(N2,Sd),hcLight:Bt(N2,Sd)},x("mergeCommonContentBackground","Common ancestor content background in inline merge-conflicts. The color must not be opaque so as not to hide underlying decorations."),!0);const k2=re("merge.border",{dark:null,light:null,hcDark:"#C3DF6F",hcLight:"#007ACC"},x("mergeBorder","Border color on headers and the splitter in inline merge-conflicts."));re("editorOverviewRuler.currentContentForeground",{dark:Bt(D2,_2),light:Bt(D2,_2),hcDark:k2,hcLight:k2},x("overviewRulerCurrentContentForeground","Current overview ruler foreground for inline merge-conflicts.")),re("editorOverviewRuler.incomingContentForeground",{dark:Bt(A2,_2),light:Bt(A2,_2),hcDark:k2,hcLight:k2},x("overviewRulerIncomingContentForeground","Incoming overview ruler foreground for inline merge-conflicts.")),re("editorOverviewRuler.commonContentForeground",{dark:Bt(N2,_2),light:Bt(N2,_2),hcDark:k2,hcLight:k2},x("overviewRulerCommonContentForeground","Common ancestor overview ruler foreground for inline merge-conflicts."));const PH=re("editorOverviewRuler.findMatchForeground",{dark:"#d186167e",light:"#d186167e",hcDark:"#AB5A00",hcLight:""},x("overviewRulerFindMatchForeground","Overview ruler marker color for find matches. The color must not be opaque so as not to hide underlying decorations."),!0),u_=re("editorOverviewRuler.selectionHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},x("overviewRulerSelectionHighlightForeground","Overview ruler marker color for selection highlights. The color must not be opaque so as not to hide underlying decorations."),!0),M2=re("minimap.findMatchHighlight",{light:"#d18616",dark:"#d18616",hcDark:"#AB5A00",hcLight:"#0F4A85"},x("minimapFindMatchHighlight","Minimap marker color for find matches."),!0),ST=re("minimap.selectionOccurrenceHighlight",{light:"#c9c9c9",dark:"#676767",hcDark:"#ffffff",hcLight:"#0F4A85"},x("minimapSelectionOccurrenceHighlight","Minimap marker color for repeating editor selections."),!0),k1e=re("minimap.selectionHighlight",{light:"#ADD6FF",dark:"#264F78",hcDark:"#ffffff",hcLight:"#0F4A85"},x("minimapSelectionHighlight","Minimap marker color for the editor selection."),!0),r0t=re("minimap.infoHighlight",{dark:Tl,light:Tl,hcDark:s_,hcLight:s_},x("minimapInfo","Minimap marker color for infos.")),o0t=re("minimap.warningHighlight",{dark:Sa,light:Sa,hcDark:o_,hcLight:o_},x("overviewRuleWarning","Minimap marker color for warnings.")),s0t=re("minimap.errorHighlight",{dark:new Ee(new ii(255,18,18,.7)),light:new Ee(new ii(255,18,18,.7)),hcDark:new Ee(new ii(255,50,50,1)),hcLight:"#B5200D"},x("minimapError","Minimap marker color for errors.")),a0t=re("minimap.background",{dark:null,light:null,hcDark:null,hcLight:null},x("minimapBackground","Minimap background color.")),l0t=re("minimap.foregroundOpacity",{dark:Ee.fromHex("#000f"),light:Ee.fromHex("#000f"),hcDark:Ee.fromHex("#000f"),hcLight:Ee.fromHex("#000f")},x("minimapForegroundOpacity",'Opacity of foreground elements rendered in the minimap. For example, "#000000c0" will render the elements with 75% opacity.'));re("minimapSlider.background",{light:Bt(n_,.5),dark:Bt(n_,.5),hcDark:Bt(n_,.5),hcLight:Bt(n_,.5)},x("minimapSliderBackground","Minimap slider background color.")),re("minimapSlider.hoverBackground",{light:Bt(i_,.5),dark:Bt(i_,.5),hcDark:Bt(i_,.5),hcLight:Bt(i_,.5)},x("minimapSliderHoverBackground","Minimap slider background color when hovering.")),re("minimapSlider.activeBackground",{light:Bt(r_,.5),dark:Bt(r_,.5),hcDark:Bt(r_,.5),hcLight:Bt(r_,.5)},x("minimapSliderActiveBackground","Minimap slider background color when clicked on."));const u0t=re("problemsErrorIcon.foreground",{dark:Yg,light:Yg,hcDark:Yg,hcLight:Yg},x("problemsErrorIconForeground","The color used for the problems error icon.")),c0t=re("problemsWarningIcon.foreground",{dark:Sa,light:Sa,hcDark:Sa,hcLight:Sa},x("problemsWarningIconForeground","The color used for the problems warning icon.")),d0t=re("problemsInfoIcon.foreground",{dark:Tl,light:Tl,hcDark:Tl,hcLight:Tl},x("problemsInfoIconForeground","The color used for the problems info icon."));re("charts.foreground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("chartsForeground","The foreground color used in charts.")),re("charts.lines",{dark:Bt(lt,.5),light:Bt(lt,.5),hcDark:Bt(lt,.5),hcLight:Bt(lt,.5)},x("chartsLines","The color used for horizontal lines in charts.")),re("charts.red",{dark:Yg,light:Yg,hcDark:Yg,hcLight:Yg},x("chartsRed","The red color used in chart visualizations.")),re("charts.blue",{dark:Tl,light:Tl,hcDark:Tl,hcLight:Tl},x("chartsBlue","The blue color used in chart visualizations.")),re("charts.yellow",{dark:Sa,light:Sa,hcDark:Sa,hcLight:Sa},x("chartsYellow","The yellow color used in chart visualizations.")),re("charts.orange",{dark:M2,light:M2,hcDark:M2,hcLight:M2},x("chartsOrange","The orange color used in chart visualizations.")),re("charts.green",{dark:"#89D185",light:"#388A34",hcDark:"#89D185",hcLight:"#374e06"},x("chartsGreen","The green color used in chart visualizations.")),re("charts.purple",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},x("chartsPurple","The purple color used in chart visualizations."));function h0t(n,e){var t,i,r,o;switch(n.op){case 0:return(t=_h(n.value,e))===null||t===void 0?void 0:t.darken(n.factor);case 1:return(i=_h(n.value,e))===null||i===void 0?void 0:i.lighten(n.factor);case 2:return(r=_h(n.value,e))===null||r===void 0?void 0:r.transparent(n.factor);case 3:{const s=_h(n.background,e);return s?(o=_h(n.value,e))===null||o===void 0?void 0:o.makeOpaque(s):_h(n.value,e)}case 4:for(const s of n.values){const a=_h(s,e);if(a)return a}return;case 6:return _h(e.defines(n.if)?n.then:n.else,e);case 5:{const s=_h(n.value,e);if(!s)return;const a=_h(n.background,e);return a?s.isDarkerThan(a)?Ee.getLighterColor(s,a,n.factor).transparent(n.transparency):Ee.getDarkerColor(s,a,n.factor).transparent(n.transparency):s.transparent(n.factor*n.transparency)}default:throw O5()}}function zC(n,e){return{op:0,value:n,factor:e}}function Fh(n,e){return{op:1,value:n,factor:e}}function Bt(n,e){return{op:2,value:n,factor:e}}function c_(...n){return{op:4,values:n}}function g0t(n,e,t){return{op:6,if:n,then:e,else:t}}function M1e(n,e,t,i){return{op:5,value:n,background:e,factor:t,transparency:i}}function _h(n,e){if(n!==null){if(typeof n=="string")return n[0]==="#"?Ee.fromHex(n):e.getColor(n);if(n instanceof Ee)return n;if(typeof n=="object")return h0t(n,e)}}const Z1e="vscode://schemas/workbench-colors",T1e=xo.as(aT.JSONContribution);T1e.registerSchema(Z1e,bT.getColorSchema());const E1e=new Vi(()=>T1e.notifySchemaChanged(Z1e),200);bT.onDidChangeSchema(()=>{E1e.isScheduled()||E1e.schedule()});class xT{constructor(e,t){this.x=e,this.y=t,this._pageCoordinatesBrand=void 0}toClientCoordinates(e){return new W1e(this.x-e.scrollX,this.y-e.scrollY)}}class W1e{constructor(e,t){this.clientX=e,this.clientY=t,this._clientCoordinatesBrand=void 0}toPageCoordinates(e){return new xT(this.clientX+e.scrollX,this.clientY+e.scrollY)}}class m0t{constructor(e,t,i,r){this.x=e,this.y=t,this.width=i,this.height=r,this._editorPagePositionBrand=void 0}}class f0t{constructor(e,t){this.x=e,this.y=t,this._positionRelativeToEditorBrand=void 0}}function OH(n){const e=go(n);return new m0t(e.left,e.top,e.width,e.height)}function BH(n,e,t){const i=e.width/n.offsetWidth,r=e.height/n.offsetHeight,o=(t.x-e.x)/i,s=(t.y-e.y)/r;return new f0t(o,s)}class Vb extends dd{constructor(e,t,i){super(qt(i),e),this._editorMouseEventBrand=void 0,this.isFromPointerCapture=t,this.pos=new xT(this.posx,this.posy),this.editorPos=OH(i),this.relativePos=BH(i,this.editorPos,this.pos)}}class p0t{constructor(e){this._editorViewDomNode=e}_create(e){return new Vb(e,!1,this._editorViewDomNode)}onContextMenu(e,t){return Ve(e,"contextmenu",i=>{t(this._create(i))})}onMouseUp(e,t){return Ve(e,"mouseup",i=>{t(this._create(i))})}onMouseDown(e,t){return Ve(e,at.MOUSE_DOWN,i=>{t(this._create(i))})}onPointerDown(e,t){return Ve(e,at.POINTER_DOWN,i=>{t(this._create(i),i.pointerId)})}onMouseLeave(e,t){return Ve(e,at.MOUSE_LEAVE,i=>{t(this._create(i))})}onMouseMove(e,t){return Ve(e,"mousemove",i=>t(this._create(i)))}}class b0t{constructor(e){this._editorViewDomNode=e}_create(e){return new Vb(e,!1,this._editorViewDomNode)}onPointerUp(e,t){return Ve(e,"pointerup",i=>{t(this._create(i))})}onPointerDown(e,t){return Ve(e,at.POINTER_DOWN,i=>{t(this._create(i),i.pointerId)})}onPointerLeave(e,t){return Ve(e,at.POINTER_LEAVE,i=>{t(this._create(i))})}onPointerMove(e,t){return Ve(e,"pointermove",i=>t(this._create(i)))}}class C0t extends De{constructor(e){super(),this._editorViewDomNode=e,this._globalPointerMoveMonitor=this._register(new x2),this._keydownListener=null}startMonitoring(e,t,i,r,o){this._keydownListener=Gr(e.ownerDocument,"keydown",s=>{s.toKeyCodeChord().isModifierKey()||this._globalPointerMoveMonitor.stopMonitoring(!0,s.browserEvent)},!0),this._globalPointerMoveMonitor.startMonitoring(e,t,i,s=>{r(new Vb(s,!0,this._editorViewDomNode))},s=>{this._keydownListener.dispose(),o(s)})}stopMonitoring(){this._globalPointerMoveMonitor.stopMonitoring(!0)}}class d_{constructor(e){this._editor=e,this._instanceId=++d_._idPool,this._counter=0,this._rules=new Map,this._garbageCollectionScheduler=new Vi(()=>this.garbageCollect(),1e3)}createClassNameRef(e){const t=this.getOrCreateRule(e);return t.increaseRefCount(),{className:t.className,dispose:()=>{t.decreaseRefCount(),this._garbageCollectionScheduler.schedule()}}}getOrCreateRule(e){const t=this.computeUniqueKey(e);let i=this._rules.get(t);if(!i){const r=this._counter++;i=new v0t(t,`dyn-rule-${this._instanceId}-${r}`,_5(this._editor.getContainerDomNode())?this._editor.getContainerDomNode():void 0,e),this._rules.set(t,i)}return i}computeUniqueKey(e){return JSON.stringify(e)}garbageCollect(){for(const e of this._rules.values())e.hasReferences()||(this._rules.delete(e.key),e.dispose())}}d_._idPool=0;class v0t{constructor(e,t,i,r){this.key=e,this.className=t,this.properties=r,this._referenceCount=0,this._styleElementDisposables=new je,this._styleElement=Eu(i,void 0,this._styleElementDisposables),this._styleElement.textContent=this.getCssText(this.className,this.properties)}getCssText(e,t){let i=`.${e} {`;for(const r in t){const o=t[r];let s;typeof o=="object"?s=Lt(o.id):s=o;const a=y0t(r);i+=` + ${a}: ${s};`}return i+=` +}`,i}dispose(){this._styleElementDisposables.dispose(),this._styleElement=void 0}increaseRefCount(){this._referenceCount++}decreaseRefCount(){this._referenceCount--}hasReferences(){return this._referenceCount>0}}function y0t(n){return n.replace(/(^[A-Z])/,([e])=>e.toLowerCase()).replace(/([A-Z])/g,([e])=>`-${e.toLowerCase()}`)}class h_ extends De{constructor(){super(),this._shouldRender=!0}shouldRender(){return this._shouldRender}forceShouldRender(){this._shouldRender=!0}setShouldRender(){this._shouldRender=!0}onDidRender(){this._shouldRender=!1}onCompositionStart(e){return!1}onCompositionEnd(e){return!1}onConfigurationChanged(e){return!1}onCursorStateChanged(e){return!1}onDecorationsChanged(e){return!1}onFlushed(e){return!1}onFocusChanged(e){return!1}onLanguageConfigurationChanged(e){return!1}onLineMappingChanged(e){return!1}onLinesChanged(e){return!1}onLinesDeleted(e){return!1}onLinesInserted(e){return!1}onRevealRangeRequest(e){return!1}onScrollChanged(e){return!1}onThemeChanged(e){return!1}onTokensChanged(e){return!1}onTokensColorsChanged(e){return!1}onZonesChanged(e){return!1}handleEvents(e){let t=!1;for(let i=0,r=e.length;i=a.left?r.width=Math.max(r.width,a.left+a.width-r.left):(t[i++]=r,r=a)}return t[i++]=r,t}static _createHorizontalRangesFromClientRects(e,t,i){if(!e||e.length===0)return null;const r=[];for(let o=0,s=e.length;ol)return null;if(t=Math.min(l,Math.max(0,t)),r=Math.min(l,Math.max(0,r)),t===r&&i===o&&i===0&&!e.children[t].firstChild){const h=e.children[t].getClientRects();return s.markDidDomLayout(),this._createHorizontalRangesFromClientRects(h,s.clientRectDeltaLeft,s.clientRectScale)}t!==r&&r>0&&o===0&&(r--,o=1073741824);let u=e.children[t].firstChild,c=e.children[r].firstChild;if((!u||!c)&&(!u&&i===0&&t>0&&(u=e.children[t-1].firstChild,i=1073741824),!c&&o===0&&r>0&&(c=e.children[r-1].firstChild,o=1073741824)),!u||!c)return null;i=Math.min(u.textContent.length,Math.max(0,i)),o=Math.min(c.textContent.length,Math.max(0,o));const d=this._readClientRects(u,i,c,o,s.endNode);return s.markDidDomLayout(),this._createHorizontalRangesFromClientRects(d,s.clientRectDeltaLeft,s.clientRectScale)}}class el{constructor(e,t,i,r){this.startColumn=e,this.endColumn=t,this.className=i,this.type=r,this._lineDecorationBrand=void 0}static _equals(e,t){return e.startColumn===t.startColumn&&e.endColumn===t.endColumn&&e.className===t.className&&e.type===t.type}static equalsArr(e,t){const i=e.length,r=t.length;if(i!==r)return!1;for(let o=0;o=o||(a[l++]=new el(Math.max(1,u.startColumn-r+1),Math.min(s+1,u.endColumn-r+1),u.className,u.type));return a}static filter(e,t,i,r){if(e.length===0)return[];const o=[];let s=0;for(let a=0,l=e.length;at||c.isEmpty()&&(u.type===0||u.type===3))continue;const d=c.startLineNumber===t?c.startColumn:i,h=c.endLineNumber===t?c.endColumn:r;o[s++]=new el(d,h,u.inlineClassName,u.type)}return o}static _typeCompare(e,t){const i=[2,0,1,3];return i[e]-i[t]}static compare(e,t){if(e.startColumn!==t.startColumn)return e.startColumn-t.startColumn;if(e.endColumn!==t.endColumn)return e.endColumn-t.endColumn;const i=el._typeCompare(e.type,t.type);return i!==0?i:e.className!==t.className?e.className0&&this.stopOffsets[0]0&&t=e){this.stopOffsets.splice(r,0,e),this.classNames.splice(r,0,t),this.metadata.splice(r,0,i);break}this.count++}}class L0t{static normalize(e,t){if(t.length===0)return[];const i=[],r=new _T;let o=0;for(let s=0,a=t.length;s1){const f=e.charCodeAt(u-2);qo(f)&&u--}if(c>1){const f=e.charCodeAt(c-2);qo(f)&&c--}const g=u-1,m=c-2;o=r.consumeLowerThan(g,o,i),r.count===0&&(o=g),r.insert(m,d,h)}return r.consumeLowerThan(1073741824,o,i),i}}class hs{constructor(e,t,i,r){this.endIndex=e,this.type=t,this.metadata=i,this.containsRTL=r,this._linePartBrand=void 0}isWhitespace(){return!!(this.metadata&1)}isPseudoAfter(){return!!(this.metadata&4)}}let V1e=class{constructor(e,t){this.startOffset=e,this.endOffset=t}equals(e){return this.startOffset===e.startOffset&&this.endOffset===e.endOffset}};class Xb{constructor(e,t,i,r,o,s,a,l,u,c,d,h,g,m,f,b,C,v,w){this.useMonospaceOptimizations=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=i,this.continuesWithWrappedLine=r,this.isBasicASCII=o,this.containsRTL=s,this.fauxIndentLength=a,this.lineTokens=l,this.lineDecorations=u.sort(el.compare),this.tabSize=c,this.startVisibleColumn=d,this.spaceWidth=h,this.stopRenderingLineAfter=f,this.renderWhitespace=b==="all"?4:b==="boundary"?1:b==="selection"?2:b==="trailing"?3:0,this.renderControlCharacters=C,this.fontLigatures=v,this.selectionsOnLine=w&&w.sort((L,D)=>L.startOffset>>16}static getCharIndex(e){return(e&65535)>>>0}constructor(e,t){this.length=e,this._data=new Uint32Array(this.length),this._horizontalOffset=new Uint32Array(this.length)}setColumnInfo(e,t,i,r){const o=(t<<16|i<<0)>>>0;this._data[e-1]=o,this._horizontalOffset[e-1]=r}getHorizontalOffset(e){return this._horizontalOffset.length===0?0:this._horizontalOffset[e-1]}charOffsetToPartData(e){return this.length===0?0:e<0?this._data[0]:e>=this.length?this._data[this.length-1]:this._data[e]}getDomPosition(e){const t=this.charOffsetToPartData(e-1),i=Ug.getPartIndex(t),r=Ug.getCharIndex(t);return new X1e(i,r)}getColumn(e,t){return this.partDataToCharOffset(e.partIndex,t,e.charIndex)+1}partDataToCharOffset(e,t,i){if(this.length===0)return 0;const r=(e<<16|i<<0)>>>0;let o=0,s=this.length-1;for(;o+1>>1,b=this._data[f];if(b===r)return f;b>r?s=f:o=f}if(o===s)return o;const a=this._data[o],l=this._data[s];if(a===r)return o;if(l===r)return s;const u=Ug.getPartIndex(a),c=Ug.getCharIndex(a),d=Ug.getPartIndex(l);let h;u!==d?h=t:h=Ug.getCharIndex(l);const g=i-c,m=h-i;return g<=m?o:s}}class zH{constructor(e,t,i){this._renderLineOutputBrand=void 0,this.characterMapping=e,this.containsRTL=t,this.containsForeignElements=i}}function g_(n,e){if(n.lineContent.length===0){if(n.lineDecorations.length>0){e.appendString("");let t=0,i=0,r=0;for(const s of n.lineDecorations)(s.type===1||s.type===2)&&(e.appendString(''),s.type===1&&(r|=1,t++),s.type===2&&(r|=2,i++));e.appendString("");const o=new Ug(1,t+i);return o.setColumnInfo(1,t,0,0),new zH(o,!1,r)}return e.appendString(""),new zH(new Ug(0,0),!1,0)}return T0t(D0t(n),e)}class F0t{constructor(e,t,i,r){this.characterMapping=e,this.html=t,this.containsRTL=i,this.containsForeignElements=r}}function DT(n){const e=new c2(1e4),t=g_(n,e);return new F0t(t.characterMapping,e.build(),t.containsRTL,t.containsForeignElements)}class _0t{constructor(e,t,i,r,o,s,a,l,u,c,d,h,g,m,f,b){this.fontIsMonospace=e,this.canUseHalfwidthRightwardsArrow=t,this.lineContent=i,this.len=r,this.isOverflowing=o,this.overflowingCharCount=s,this.parts=a,this.containsForeignElements=l,this.fauxIndentLength=u,this.tabSize=c,this.startVisibleColumn=d,this.containsRTL=h,this.spaceWidth=g,this.renderSpaceCharCode=m,this.renderWhitespace=f,this.renderControlCharacters=b}}function D0t(n){const e=n.lineContent;let t,i,r;n.stopRenderingLineAfter!==-1&&n.stopRenderingLineAfter0){for(let a=0,l=n.lineDecorations.length;a0&&(o[s++]=new hs(i,"",0,!1));let a=i;for(let l=0,u=t.getCount();l=r){const g=e?KI(n.substring(a,r)):!1;o[s++]=new hs(r,d,0,g);break}const h=e?KI(n.substring(a,c)):!1;o[s++]=new hs(c,d,0,h),a=c}return o}function N0t(n,e,t){let i=0;const r=[];let o=0;if(t)for(let s=0,a=e.length;s=50&&(r[o++]=new hs(g+1,c,d,h),m=g+1,g=-1);m!==u&&(r[o++]=new hs(u,c,d,h))}else r[o++]=l;i=u}else for(let s=0,a=e.length;s50){const d=l.type,h=l.metadata,g=l.containsRTL,m=Math.ceil(c/50);for(let f=1;f=8234&&n<=8238||n>=8294&&n<=8297||n>=8206&&n<=8207||n===1564}function k0t(n,e){const t=[];let i=new hs(0,"",0,!1),r=0;for(const o of e){const s=o.endIndex;for(;ri.endIndex&&(i=new hs(r,o.type,o.metadata,o.containsRTL),t.push(i)),i=new hs(r+1,"mtkcontrol",o.metadata,!1),t.push(i))}r>i.endIndex&&(i=new hs(s,o.type,o.metadata,o.containsRTL),t.push(i))}return t}function M0t(n,e,t,i){const r=n.continuesWithWrappedLine,o=n.fauxIndentLength,s=n.tabSize,a=n.startVisibleColumn,l=n.useMonospaceOptimizations,u=n.selectionsOnLine,c=n.renderWhitespace===1,d=n.renderWhitespace===3,h=n.renderSpaceWidth!==n.spaceWidth,g=[];let m=0,f=0,b=i[f].type,C=i[f].containsRTL,v=i[f].endIndex;const w=i.length;let S=!1,F=Ia(e),L;F===-1?(S=!0,F=t,L=t):L=mh(e);let D=!1,A=0,M=u&&u[A],W=a%s;for(let T=o;T=M.endOffset&&(A++,M=u&&u[A]);let V;if(TL)V=!0;else if(E===9)V=!0;else if(E===32)if(c)if(D)V=!0;else{const z=T+1T),V&&d&&(V=S||T>L),V&&C&&T>=F&&T<=L&&(V=!1),D){if(!V||!l&&W>=s){if(h){const z=m>0?g[m-1].endIndex:o;for(let O=z+1;O<=T;O++)g[m++]=new hs(O,"mtkw",1,!1)}else g[m++]=new hs(T,"mtkw",1,!1);W=W%s}}else(T===v||V&&T>o)&&(g[m++]=new hs(T,b,0,C),W=W%s);for(E===9?W=s:Ib(E)?W+=2:W++,D=V;T===v&&(f++,f0?e.charCodeAt(t-1):0,E=t>1?e.charCodeAt(t-2):0;T===32&&E!==32&&E!==9||(Z=!0)}else Z=!0;if(Z)if(h){const T=m>0?g[m-1].endIndex:o;for(let E=T+1;E<=t;E++)g[m++]=new hs(E,"mtkw",1,!1)}else g[m++]=new hs(t,"mtkw",1,!1);else g[m++]=new hs(t,b,0,C);return g}function Z0t(n,e,t,i){i.sort(el.compare);const r=L0t.normalize(n,i),o=r.length;let s=0;const a=[];let l=0,u=0;for(let d=0,h=t.length;du&&(u=v.startOffset,a[l++]=new hs(u,f,b,C)),v.endOffset+1<=m)u=v.endOffset+1,a[l++]=new hs(u,f+" "+v.className,b|v.metadata,C),s++;else{u=m,a[l++]=new hs(u,f+" "+v.className,b|v.metadata,C);break}}m>u&&(u=m,a[l++]=new hs(u,f,b,C))}const c=t[t.length-1].endIndex;if(s'):e.appendString("");for(let M=0,W=u.length;M=c&&(k+=U)}}for(O&&(e.appendString(' style="width:'),e.appendString(String(m*B)),e.appendString('px"')),e.appendASCIICharCode(62);S1?e.appendCharCode(8594):e.appendCharCode(65515);for(let U=2;U<=X;U++)e.appendCharCode(160)}else k=2,X=1,e.appendCharCode(f),e.appendCharCode(8204);L+=k,D+=X,S>=c&&(F+=X)}}else for(e.appendASCIICharCode(62);S=c&&(F+=k)}P?A++:A=0,S>=s&&!w&&Z.isPseudoAfter()&&(w=!0,v.setColumnInfo(S+1,M,L,D)),e.appendString("")}return w||v.setColumnInfo(s+1,u.length-1,L,D),a&&(e.appendString(''),e.appendString(x("showMore","Show more ({0})",W0t(l))),e.appendString("")),e.appendString(""),new zH(v,g,r)}function E0t(n){return n.toString(16).toUpperCase().padStart(4,"0")}function W0t(n){return n<1024?x("overflow.chars","{0} chars",n):n<1024*1024?`${(n/1024).toFixed(1)} KB`:`${(n/1024/1024).toFixed(1)} MB`}var Nc;(function(n){n.DARK="dark",n.LIGHT="light",n.HIGH_CONTRAST_DARK="hcDark",n.HIGH_CONTRAST_LIGHT="hcLight"})(Nc||(Nc={}));function Jg(n){return n===Nc.HIGH_CONTRAST_DARK||n===Nc.HIGH_CONTRAST_LIGHT}function AT(n){return n===Nc.DARK||n===Nc.HIGH_CONTRAST_DARK}const R0t=function(){return dh?!0:!(Ha||vc||df)}();let Z2=!0;class O1e{constructor(e,t){this.themeType=t;const i=e.options,r=i.get(50);i.get(38)==="off"?this.renderWhitespace=i.get(99):this.renderWhitespace="none",this.renderControlCharacters=i.get(94),this.spaceWidth=r.spaceWidth,this.middotWidth=r.middotWidth,this.wsmiddotWidth=r.wsmiddotWidth,this.useMonospaceOptimizations=r.isMonospace&&!i.get(33),this.canUseHalfwidthRightwardsArrow=r.canUseHalfwidthRightwardsArrow,this.lineHeight=i.get(67),this.stopRenderingLineAfter=i.get(117),this.fontLigatures=i.get(51)}equals(e){return this.themeType===e.themeType&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.fontLigatures===e.fontLigatures}}class Kg{constructor(e){this._options=e,this._isMaybeInvalid=!0,this._renderedViewLine=null}getDomNode(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null}setDomNode(e){if(this._renderedViewLine)this._renderedViewLine.domNode=Si(e);else throw new Error("I have no rendered view line to set the dom node to...")}onContentChanged(){this._isMaybeInvalid=!0}onTokensChanged(){this._isMaybeInvalid=!0}onDecorationsChanged(){this._isMaybeInvalid=!0}onOptionsChanged(e){this._isMaybeInvalid=!0,this._options=e}onSelectionChanged(){return Jg(this._options.themeType)||this._options.renderWhitespace==="selection"?(this._isMaybeInvalid=!0,!0):!1}renderLine(e,t,i,r){if(this._isMaybeInvalid===!1)return!1;this._isMaybeInvalid=!1;const o=i.getViewLineRenderingData(e),s=this._options,a=el.filter(o.inlineDecorations,e,o.minColumn,o.maxColumn);let l=null;if(Jg(s.themeType)||this._options.renderWhitespace==="selection"){const h=i.selections;for(const g of h){if(g.endLineNumbere)continue;const m=g.startLineNumber===e?g.startColumn:o.minColumn,f=g.endLineNumber===e?g.endColumn:o.maxColumn;m');const c=g_(u,r);r.appendString("");let d=null;return Z2&&R0t&&o.isBasicASCII&&s.useMonospaceOptimizations&&c.containsForeignElements===0&&(d=new NT(this._renderedViewLine?this._renderedViewLine.domNode:null,u,c.characterMapping)),d||(d=z1e(this._renderedViewLine?this._renderedViewLine.domNode:null,u,c.characterMapping,c.containsRTL,c.containsForeignElements)),this._renderedViewLine=d,!0}layoutLine(e,t){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(t),this._renderedViewLine.domNode.setHeight(this._options.lineHeight))}getWidth(e){return this._renderedViewLine?this._renderedViewLine.getWidth(e):0}getWidthIsFast(){return this._renderedViewLine?this._renderedViewLine.getWidthIsFast():!0}needsMonospaceFontCheck(){return this._renderedViewLine?this._renderedViewLine instanceof NT:!1}monospaceAssumptionsAreValid(){return this._renderedViewLine&&this._renderedViewLine instanceof NT?this._renderedViewLine.monospaceAssumptionsAreValid():Z2}onMonospaceAssumptionsInvalidated(){this._renderedViewLine&&this._renderedViewLine instanceof NT&&(this._renderedViewLine=this._renderedViewLine.toSlowRenderedLine())}getVisibleRangesForRange(e,t,i,r){if(!this._renderedViewLine)return null;t=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,t)),i=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,i));const o=this._renderedViewLine.input.stopRenderingLineAfter;if(o!==-1&&t>o+1&&i>o+1)return new R1e(!0,[new YC(this.getWidth(r),0)]);o!==-1&&t>o+1&&(t=o+1),o!==-1&&i>o+1&&(i=o+1);const s=this._renderedViewLine.getVisibleRangesForRange(e,t,i,r);return s&&s.length>0?new R1e(!1,s):null}getColumnOfNodeOffset(e,t){return this._renderedViewLine?this._renderedViewLine.getColumnOfNodeOffset(e,t):1}}Kg.CLASS_NAME="view-line";class NT{constructor(e,t,i){this._cachedWidth=-1,this.domNode=e,this.input=t;const r=Math.floor(t.lineContent.length/300);if(r>0){this._keyColumnPixelOffsetCache=new Float32Array(r);for(let o=0;o=2&&(Z2=!1)}return Z2}toSlowRenderedLine(){return z1e(this.domNode,this.input,this._characterMapping,!1,0)}getVisibleRangesForRange(e,t,i,r){const o=this._getColumnPixelOffset(e,t,r),s=this._getColumnPixelOffset(e,i,r);return[new YC(o,s-o)]}_getColumnPixelOffset(e,t,i){if(t<=300){const u=this._characterMapping.getHorizontalOffset(t);return this._charWidth*u}const r=Math.floor((t-1)/300)-1,o=(r+1)*300+1;let s=-1;if(this._keyColumnPixelOffsetCache&&(s=this._keyColumnPixelOffsetCache[r],s===-1&&(s=this._actualReadPixelOffset(e,o,i),this._keyColumnPixelOffsetCache[r]=s)),s===-1){const u=this._characterMapping.getHorizontalOffset(t);return this._charWidth*u}const a=this._characterMapping.getHorizontalOffset(o),l=this._characterMapping.getHorizontalOffset(t);return s+this._charWidth*(l-a)}_getReadingTarget(e){return e.domNode.firstChild}_actualReadPixelOffset(e,t,i){if(!this.domNode)return-1;const r=this._characterMapping.getDomPosition(t),o=FT.readHorizontalRanges(this._getReadingTarget(this.domNode),r.partIndex,r.charIndex,r.partIndex,r.charIndex,i);return!o||o.length===0?-1:o[0].left}getColumnOfNodeOffset(e,t){return YH(this._characterMapping,e,t)}}class B1e{constructor(e,t,i,r,o){if(this.domNode=e,this.input=t,this._characterMapping=i,this._isWhitespaceOnly=/^\s*$/.test(t.lineContent),this._containsForeignElements=o,this._cachedWidth=-1,this._pixelOffsetCache=null,!r||this._characterMapping.length===0){this._pixelOffsetCache=new Float32Array(Math.max(2,this._characterMapping.length+1));for(let s=0,a=this._characterMapping.length;s<=a;s++)this._pixelOffsetCache[s]=-1}}_getReadingTarget(e){return e.domNode.firstChild}getWidth(e){return this.domNode?(this._cachedWidth===-1&&(this._cachedWidth=this._getReadingTarget(this.domNode).offsetWidth,e==null||e.markDidDomLayout()),this._cachedWidth):0}getWidthIsFast(){return this._cachedWidth!==-1}getVisibleRangesForRange(e,t,i,r){if(!this.domNode)return null;if(this._pixelOffsetCache!==null){const o=this._readPixelOffset(this.domNode,e,t,r);if(o===-1)return null;const s=this._readPixelOffset(this.domNode,e,i,r);return s===-1?null:[new YC(o,s-o)]}return this._readVisibleRangesForRange(this.domNode,e,t,i,r)}_readVisibleRangesForRange(e,t,i,r,o){if(i===r){const s=this._readPixelOffset(e,t,i,o);return s===-1?null:[new YC(s,0)]}else return this._readRawVisibleRangesForRange(e,i,r,o)}_readPixelOffset(e,t,i,r){if(this._characterMapping.length===0){if(this._containsForeignElements===0||this._containsForeignElements===2)return 0;if(this._containsForeignElements===1)return this.getWidth(r);const o=this._getReadingTarget(e);return o.firstChild?(r.markDidDomLayout(),o.firstChild.offsetWidth):0}if(this._pixelOffsetCache!==null){const o=this._pixelOffsetCache[i];if(o!==-1)return o;const s=this._actualReadPixelOffset(e,t,i,r);return this._pixelOffsetCache[i]=s,s}return this._actualReadPixelOffset(e,t,i,r)}_actualReadPixelOffset(e,t,i,r){if(this._characterMapping.length===0){const l=FT.readHorizontalRanges(this._getReadingTarget(e),0,0,0,0,r);return!l||l.length===0?-1:l[0].left}if(i===this._characterMapping.length&&this._isWhitespaceOnly&&this._containsForeignElements===0)return this.getWidth(r);const o=this._characterMapping.getDomPosition(i),s=FT.readHorizontalRanges(this._getReadingTarget(e),o.partIndex,o.charIndex,o.partIndex,o.charIndex,r);if(!s||s.length===0)return-1;const a=s[0].left;if(this.input.isBasicASCII){const l=this._characterMapping.getHorizontalOffset(i),u=Math.round(this.input.spaceWidth*l);if(Math.abs(u-a)<=1)return u}return a}_readRawVisibleRangesForRange(e,t,i,r){if(t===1&&i===this._characterMapping.length)return[new YC(0,this.getWidth(r))];const o=this._characterMapping.getDomPosition(t),s=this._characterMapping.getDomPosition(i);return FT.readHorizontalRanges(this._getReadingTarget(e),o.partIndex,o.charIndex,s.partIndex,s.charIndex,r)}getColumnOfNodeOffset(e,t){return YH(this._characterMapping,e,t)}}class G0t extends B1e{_readVisibleRangesForRange(e,t,i,r,o){const s=super._readVisibleRangesForRange(e,t,i,r,o);if(!s||s.length===0||i===r||i===1&&r===this._characterMapping.length)return s;if(!this.input.containsRTL){const a=this._readPixelOffset(e,t,r,o);if(a!==-1){const l=s[s.length-1];l.left=4&&e[0]===3&&e[3]===8}static isStrictChildOfViewLines(e){return e.length>4&&e[0]===3&&e[3]===8}static isChildOfScrollableElement(e){return e.length>=2&&e[0]===3&&e[1]===6}static isChildOfMinimap(e){return e.length>=2&&e[0]===3&&e[1]===9}static isChildOfContentWidgets(e){return e.length>=4&&e[0]===3&&e[3]===1}static isChildOfOverflowGuard(e){return e.length>=1&&e[0]===3}static isChildOfOverflowingContentWidgets(e){return e.length>=1&&e[0]===2}static isChildOfOverlayWidgets(e){return e.length>=2&&e[0]===3&&e[1]===4}static isChildOfOverflowingOverlayWidgets(e){return e.length>=1&&e[0]===5}}class T2{constructor(e,t,i){this.viewModel=e.viewModel;const r=e.configuration.options;this.layoutInfo=r.get(144),this.viewDomNode=t.viewDomNode,this.lineHeight=r.get(67),this.stickyTabStops=r.get(116),this.typicalHalfwidthCharacterWidth=r.get(50).typicalHalfwidthCharacterWidth,this.lastRenderData=i,this._context=e,this._viewHelper=t}getZoneAtCoord(e){return T2.getZoneAtCoord(this._context,e)}static getZoneAtCoord(e,t){const i=e.viewLayout.getWhitespaceAtVerticalOffset(t);if(i){const r=i.verticalOffset+i.height/2,o=e.viewModel.getLineCount();let s=null,a,l=null;return i.afterLineNumber!==o&&(l=new ve(i.afterLineNumber+1,1)),i.afterLineNumber>0&&(s=new ve(i.afterLineNumber,e.viewModel.getLineMaxColumn(i.afterLineNumber))),l===null?a=s:s===null?a=l:t=e.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,js._getMouseColumn(this.mouseContentHorizontalOffset,e.typicalHalfwidthCharacterWidth))}}class HH extends O0t{constructor(e,t,i,r,o){super(e,t,i,r),this._ctx=e,o?(this.target=o,this.targetPath=Dh.collect(o,e.viewDomNode)):(this.target=null,this.targetPath=new Uint8Array(0))}toString(){return`pos(${this.pos.x},${this.pos.y}), editorPos(${this.editorPos.x},${this.editorPos.y}), relativePos(${this.relativePos.x},${this.relativePos.y}), mouseVerticalOffset: ${this.mouseVerticalOffset}, mouseContentHorizontalOffset: ${this.mouseContentHorizontalOffset} + target: ${this.target?this.target.outerHTML:null}`}_getMouseColumn(e=null){return e&&e.columns.contentLeft+s.width)continue;const a=e.getVerticalOffsetForLineNumber(s.position.lineNumber);if(a<=o&&o<=a+s.height)return t.fulfillContentText(s.position,null,{mightBeForeignElement:!1,injectedText:null})}}return null}static _hitTestViewZone(e,t){const i=e.getZoneAtCoord(t.mouseVerticalOffset);if(i){const r=t.isInContentArea?8:5;return t.fulfillViewZone(r,i.position,i)}return null}static _hitTestTextArea(e,t){return tl.isTextArea(t.targetPath)?e.lastRenderData.lastTextareaPosition?t.fulfillContentText(e.lastRenderData.lastTextareaPosition,null,{mightBeForeignElement:!1,injectedText:null}):t.fulfillTextarea():null}static _hitTestMargin(e,t){if(t.isInMarginArea){const i=e.getFullLineRangeAtCoord(t.mouseVerticalOffset),r=i.range.getStartPosition();let o=Math.abs(t.relativePos.x);const s={isAfterLines:i.isAfterLines,glyphMarginLeft:e.layoutInfo.glyphMarginLeft,glyphMarginWidth:e.layoutInfo.glyphMarginWidth,lineNumbersWidth:e.layoutInfo.lineNumbersWidth,offsetX:o};if(o-=e.layoutInfo.glyphMarginLeft,o<=e.layoutInfo.glyphMarginWidth){const a=e.viewModel.coordinatesConverter.convertViewPositionToModelPosition(i.range.getStartPosition()),l=e.viewModel.glyphLanes.getLanesAtLine(a.lineNumber);return s.glyphMarginLane=l[Math.floor(o/e.lineHeight)],t.fulfillMargin(2,r,i.range,s)}return o-=e.layoutInfo.glyphMarginWidth,o<=e.layoutInfo.lineNumbersWidth?t.fulfillMargin(3,r,i.range,s):(o-=e.layoutInfo.lineNumbersWidth,t.fulfillMargin(4,r,i.range,s))}return null}static _hitTestViewLines(e,t,i){if(!tl.isChildOfViewLines(t.targetPath))return null;if(e.isInTopPadding(t.mouseVerticalOffset))return t.fulfillContentEmpty(new ve(1,1),H1e);if(e.isAfterLines(t.mouseVerticalOffset)||e.isInBottomPadding(t.mouseVerticalOffset)){const o=e.viewModel.getLineCount(),s=e.viewModel.getLineMaxColumn(o);return t.fulfillContentEmpty(new ve(o,s),H1e)}if(i){if(tl.isStrictChildOfViewLines(t.targetPath)){const o=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset);if(e.viewModel.getLineLength(o)===0){const a=e.getLineWidth(o),l=UH(t.mouseContentHorizontalOffset-a);return t.fulfillContentEmpty(new ve(o,1),l)}const s=e.getLineWidth(o);if(t.mouseContentHorizontalOffset>=s){const a=UH(t.mouseContentHorizontalOffset-s),l=new ve(o,e.viewModel.getLineMaxColumn(o));return t.fulfillContentEmpty(l,a)}}return t.fulfillUnknown()}const r=js._doHitTest(e,t);return r.type===1?js.createMouseTargetFromHitTestPosition(e,t,r.spanNode,r.position,r.injectedText):this._createMouseTarget(e,t.withTarget(r.hitTarget),!0)}static _hitTestMinimap(e,t){if(tl.isChildOfMinimap(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),r=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new ve(i,r))}return null}static _hitTestScrollbarSlider(e,t){if(tl.isChildOfScrollableElement(t.targetPath)&&t.target&&t.target.nodeType===1){const i=t.target.className;if(i&&/\b(slider|scrollbar)\b/.test(i)){const r=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),o=e.viewModel.getLineMaxColumn(r);return t.fulfillScrollbar(new ve(r,o))}}return null}static _hitTestScrollbar(e,t){if(tl.isChildOfScrollableElement(t.targetPath)){const i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),r=e.viewModel.getLineMaxColumn(i);return t.fulfillScrollbar(new ve(i,r))}return null}getMouseColumn(e){const t=this._context.configuration.options,i=t.get(144),r=this._context.viewLayout.getCurrentScrollLeft()+e.x-i.contentLeft;return js._getMouseColumn(r,t.get(50).typicalHalfwidthCharacterWidth)}static _getMouseColumn(e,t){return e<0?1:Math.round(e/t)+1}static createMouseTargetFromHitTestPosition(e,t,i,r,o){const s=r.lineNumber,a=r.column,l=e.getLineWidth(s);if(t.mouseContentHorizontalOffset>l){const C=UH(t.mouseContentHorizontalOffset-l);return t.fulfillContentEmpty(r,C)}const u=e.visibleRangeForPosition(s,a);if(!u)return t.fulfillUnknown(r);const c=u.left;if(Math.abs(t.mouseContentHorizontalOffset-c)<1)return t.fulfillContentText(r,null,{mightBeForeignElement:!!o,injectedText:o});const d=[];if(d.push({offset:u.left,column:a}),a>1){const C=e.visibleRangeForPosition(s,a-1);C&&d.push({offset:C.left,column:a-1})}const h=e.viewModel.getLineMaxColumn(s);if(aC.offset-v.offset);const g=t.pos.toClientCoordinates(qt(e.viewDomNode)),m=i.getBoundingClientRect(),f=m.left<=g.clientX&&g.clientX<=m.right;let b=null;for(let C=1;Co)){const a=Math.floor((r+o)/2);let l=t.pos.y+(a-t.mouseVerticalOffset);l<=t.editorPos.y&&(l=t.editorPos.y+1),l>=t.editorPos.y+t.editorPos.height&&(l=t.editorPos.y+t.editorPos.height-1);const u=new xT(t.pos.x,l),c=this._actualDoHitTestWithCaretRangeFromPoint(e,u.toClientCoordinates(qt(e.viewDomNode)));if(c.type===1)return c}return this._actualDoHitTestWithCaretRangeFromPoint(e,t.pos.toClientCoordinates(qt(e.viewDomNode)))}static _actualDoHitTestWithCaretRangeFromPoint(e,t){const i=_C(e.viewDomNode);let r;if(i?typeof i.caretRangeFromPoint>"u"?r=B0t(i,t.clientX,t.clientY):r=i.caretRangeFromPoint(t.clientX,t.clientY):r=e.viewDomNode.ownerDocument.caretRangeFromPoint(t.clientX,t.clientY),!r||!r.startContainer)return new Pb;const o=r.startContainer;if(o.nodeType===o.TEXT_NODE){const s=o.parentNode,a=s?s.parentNode:null,l=a?a.parentNode:null;return(l&&l.nodeType===l.ELEMENT_NODE?l.className:null)===Kg.CLASS_NAME?HC.createFromDOMInfo(e,s,r.startOffset):new Pb(o.parentNode)}else if(o.nodeType===o.ELEMENT_NODE){const s=o.parentNode,a=s?s.parentNode:null;return(a&&a.nodeType===a.ELEMENT_NODE?a.className:null)===Kg.CLASS_NAME?HC.createFromDOMInfo(e,o,o.textContent.length):new Pb(o)}return new Pb}static _doHitTestWithCaretPositionFromPoint(e,t){const i=e.viewDomNode.ownerDocument.caretPositionFromPoint(t.clientX,t.clientY);if(i.offsetNode.nodeType===i.offsetNode.TEXT_NODE){const r=i.offsetNode.parentNode,o=r?r.parentNode:null,s=o?o.parentNode:null;return(s&&s.nodeType===s.ELEMENT_NODE?s.className:null)===Kg.CLASS_NAME?HC.createFromDOMInfo(e,i.offsetNode.parentNode,i.offset):new Pb(i.offsetNode.parentNode)}if(i.offsetNode.nodeType===i.offsetNode.ELEMENT_NODE){const r=i.offsetNode.parentNode,o=r&&r.nodeType===r.ELEMENT_NODE?r.className:null,s=r?r.parentNode:null,a=s&&s.nodeType===s.ELEMENT_NODE?s.className:null;if(o===Kg.CLASS_NAME){const l=i.offsetNode.childNodes[Math.min(i.offset,i.offsetNode.childNodes.length-1)];if(l)return HC.createFromDOMInfo(e,l,0)}else if(a===Kg.CLASS_NAME)return HC.createFromDOMInfo(e,i.offsetNode,0)}return new Pb(i.offsetNode)}static _snapToSoftTabBoundary(e,t){const i=t.getLineContent(e.lineNumber),{tabSize:r}=t.model.getOptions(),o=PF.atomicPosition(i,e.column-1,r,2);return o!==-1?new ve(e.lineNumber,o+1):e}static _doHitTest(e,t){let i=new Pb;if(typeof e.viewDomNode.ownerDocument.caretRangeFromPoint=="function"?i=this._doHitTestWithCaretRangeFromPoint(e,t):e.viewDomNode.ownerDocument.caretPositionFromPoint&&(i=this._doHitTestWithCaretPositionFromPoint(e,t.pos.toClientCoordinates(qt(e.viewDomNode)))),i.type===1){const r=e.viewModel.getInjectedTextAt(i.position),o=e.viewModel.normalizePosition(i.position,2);(r||!o.equals(i.position))&&(i=new Y1e(o,i.spanNode,r))}return i}}function B0t(n,e,t){const i=document.createRange();let r=n.elementFromPoint(e,t);if(r!==null){for(;r&&r.firstChild&&r.firstChild.nodeType!==r.firstChild.TEXT_NODE&&r.lastChild&&r.lastChild.firstChild;)r=r.lastChild;const o=r.getBoundingClientRect(),s=qt(r),a=s.getComputedStyle(r,null).getPropertyValue("font-style"),l=s.getComputedStyle(r,null).getPropertyValue("font-variant"),u=s.getComputedStyle(r,null).getPropertyValue("font-weight"),c=s.getComputedStyle(r,null).getPropertyValue("font-size"),d=s.getComputedStyle(r,null).getPropertyValue("line-height"),h=s.getComputedStyle(r,null).getPropertyValue("font-family"),g=`${a} ${l} ${u} ${c}/${d} ${h}`,m=r.innerText;let f=o.left,b=0,C;if(e>o.left+o.width)b=m.length;else{const v=UC.getInstance();for(let w=0;w=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},qi;(function(n){n.Tap="-monaco-gesturetap",n.Change="-monaco-gesturechange",n.Start="-monaco-gesturestart",n.End="-monaco-gesturesend",n.Contextmenu="-monaco-gesturecontextmenu"})(qi||(qi={}));class er extends De{constructor(){super(),this.dispatched=!1,this.targets=new Ua,this.ignoreTargets=new Ua,this.activeTouches={},this.handle=null,this._lastSetTapCountTime=0,this._register(ft.runAndSubscribe(x5,({window:e,disposables:t})=>{t.add(Ve(e.document,"touchstart",i=>this.onTouchStart(i),{passive:!1})),t.add(Ve(e.document,"touchend",i=>this.onTouchEnd(e,i))),t.add(Ve(e.document,"touchmove",i=>this.onTouchMove(i),{passive:!1}))},{window:Wi,disposables:this._store}))}static addTarget(e){if(!er.isTouchDevice())return De.None;er.INSTANCE||(er.INSTANCE=new er);const t=er.INSTANCE.targets.push(e);return en(t)}static ignoreTarget(e){if(!er.isTouchDevice())return De.None;er.INSTANCE||(er.INSTANCE=new er);const t=er.INSTANCE.ignoreTargets.push(e);return en(t)}static isTouchDevice(){return"ontouchstart"in Wi||navigator.maxTouchPoints>0}dispose(){this.handle&&(this.handle.dispose(),this.handle=null),super.dispose()}onTouchStart(e){const t=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(let i=0,r=e.targetTouches.length;i=er.HOLD_DELAY&&Math.abs(l.initialPageX-Lc(l.rollingPageX))<30&&Math.abs(l.initialPageY-Lc(l.rollingPageY))<30){const c=this.newGestureEvent(qi.Contextmenu,l.initialTarget);c.pageX=Lc(l.rollingPageX),c.pageY=Lc(l.rollingPageY),this.dispatchEvent(c)}else if(r===1){const c=Lc(l.rollingPageX),d=Lc(l.rollingPageY),h=Lc(l.rollingTimestamps)-l.rollingTimestamps[0],g=c-l.rollingPageX[0],m=d-l.rollingPageY[0],f=[...this.targets].filter(b=>l.initialTarget instanceof Node&&b.contains(l.initialTarget));this.inertia(e,f,i,Math.abs(g)/h,g>0?1:-1,c,Math.abs(m)/h,m>0?1:-1,d)}this.dispatchEvent(this.newGestureEvent(qi.End,l.initialTarget)),delete this.activeTouches[a.identifier]}this.dispatched&&(t.preventDefault(),t.stopPropagation(),this.dispatched=!1)}newGestureEvent(e,t){const i=document.createEvent("CustomEvent");return i.initEvent(e,!1,!0),i.initialTarget=t,i.tapCount=0,i}dispatchEvent(e){if(e.type===qi.Tap){const t=new Date().getTime();let i=0;t-this._lastSetTapCountTime>er.CLEAR_TAP_COUNT_TIME?i=1:i=2,this._lastSetTapCountTime=t,e.tapCount=i}else(e.type===qi.Change||e.type===qi.Contextmenu)&&(this._lastSetTapCountTime=0);if(e.initialTarget instanceof Node){for(const t of this.ignoreTargets)if(t.contains(e.initialTarget))return;for(const t of this.targets)t.contains(e.initialTarget)&&(t.dispatchEvent(e),this.dispatched=!0)}}inertia(e,t,i,r,o,s,a,l,u){this.handle=iu(e,()=>{const c=Date.now(),d=c-i;let h=0,g=0,m=!0;r+=er.SCROLL_FRICTION*d,a+=er.SCROLL_FRICTION*d,r>0&&(m=!1,h=o*r*d),a>0&&(m=!1,g=l*a*d);const f=this.newGestureEvent(qi.Change);f.translationX=h,f.translationY=g,t.forEach(b=>b.dispatchEvent(f)),m||this.inertia(e,t,c,r,o,s+h,a,l,u+g)})}onTouchMove(e){const t=Date.now();for(let i=0,r=e.changedTouches.length;i3&&(s.rollingPageX.shift(),s.rollingPageY.shift(),s.rollingTimestamps.shift()),s.rollingPageX.push(o.pageX),s.rollingPageY.push(o.pageY),s.rollingTimestamps.push(t)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}}er.SCROLL_FRICTION=-.005,er.HOLD_DELAY=700,er.CLEAR_TAP_COUNT_TIME=400,z0t([qr],er,"isTouchDevice",null);let Pu=class extends De{onclick(e,t){this._register(Ve(e,at.CLICK,i=>t(new dd(qt(e),i))))}onmousedown(e,t){this._register(Ve(e,at.MOUSE_DOWN,i=>t(new dd(qt(e),i))))}onmouseover(e,t){this._register(Ve(e,at.MOUSE_OVER,i=>t(new dd(qt(e),i))))}onmouseleave(e,t){this._register(Ve(e,at.MOUSE_LEAVE,i=>t(new dd(qt(e),i))))}onkeydown(e,t){this._register(Ve(e,at.KEY_DOWN,i=>t(new nr(i))))}onkeyup(e,t){this._register(Ve(e,at.KEY_UP,i=>t(new nr(i))))}oninput(e,t){this._register(Ve(e,at.INPUT,t))}onblur(e,t){this._register(Ve(e,at.BLUR,t))}onfocus(e,t){this._register(Ve(e,at.FOCUS,t))}ignoreGesture(e){return er.ignoreTarget(e)}};const E2=11;class Y0t extends Pu{constructor(e){super(),this._onActivate=e.onActivate,this.bgDomNode=document.createElement("div"),this.bgDomNode.className="arrow-background",this.bgDomNode.style.position="absolute",this.bgDomNode.style.width=e.bgWidth+"px",this.bgDomNode.style.height=e.bgHeight+"px",typeof e.top<"u"&&(this.bgDomNode.style.top="0px"),typeof e.left<"u"&&(this.bgDomNode.style.left="0px"),typeof e.bottom<"u"&&(this.bgDomNode.style.bottom="0px"),typeof e.right<"u"&&(this.bgDomNode.style.right="0px"),this.domNode=document.createElement("div"),this.domNode.className=e.className,this.domNode.classList.add(...on.asClassNameArray(e.icon)),this.domNode.style.position="absolute",this.domNode.style.width=E2+"px",this.domNode.style.height=E2+"px",typeof e.top<"u"&&(this.domNode.style.top=e.top+"px"),typeof e.left<"u"&&(this.domNode.style.left=e.left+"px"),typeof e.bottom<"u"&&(this.domNode.style.bottom=e.bottom+"px"),typeof e.right<"u"&&(this.domNode.style.right=e.right+"px"),this._pointerMoveMonitor=this._register(new x2),this._register(Gr(this.bgDomNode,at.POINTER_DOWN,t=>this._arrowPointerDown(t))),this._register(Gr(this.domNode,at.POINTER_DOWN,t=>this._arrowPointerDown(t))),this._pointerdownRepeatTimer=this._register(new GY),this._pointerdownScheduleRepeatTimer=this._register(new md)}_arrowPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=()=>{this._pointerdownRepeatTimer.cancelAndSet(()=>this._onActivate(),1e3/24,qt(e))};this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet(t,200),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,i=>{},()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()}),e.preventDefault()}}class H0t extends De{constructor(e,t,i){super(),this._visibility=e,this._visibleClassName=t,this._invisibleClassName=i,this._domNode=null,this._isVisible=!1,this._isNeeded=!1,this._rawShouldBeVisible=!1,this._shouldBeVisible=!1,this._revealTimer=this._register(new md)}setVisibility(e){this._visibility!==e&&(this._visibility=e,this._updateShouldBeVisible())}setShouldBeVisible(e){this._rawShouldBeVisible=e,this._updateShouldBeVisible()}_applyVisibilitySetting(){return this._visibility===2?!1:this._visibility===3?!0:this._rawShouldBeVisible}_updateShouldBeVisible(){const e=this._applyVisibilitySetting();this._shouldBeVisible!==e&&(this._shouldBeVisible=e,this.ensureVisibility())}setIsNeeded(e){this._isNeeded!==e&&(this._isNeeded=e,this.ensureVisibility())}setDomNode(e){this._domNode=e,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)}ensureVisibility(){if(!this._isNeeded){this._hide(!1);return}this._shouldBeVisible?this._reveal():this._hide(!0)}_reveal(){this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet(()=>{var e;(e=this._domNode)===null||e===void 0||e.setClassName(this._visibleClassName)},0))}_hide(e){var t;this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,(t=this._domNode)===null||t===void 0||t.setClassName(this._invisibleClassName+(e?" fade":"")))}}const U0t=140;class U1e extends Pu{constructor(e){super(),this._lazyRender=e.lazyRender,this._host=e.host,this._scrollable=e.scrollable,this._scrollByPage=e.scrollByPage,this._scrollbarState=e.scrollbarState,this._visibilityController=this._register(new H0t(e.visibility,"visible scrollbar "+e.extraScrollbarClassName,"invisible scrollbar "+e.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._pointerMoveMonitor=this._register(new x2),this._shouldRender=!0,this.domNode=Si(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition("absolute"),this._register(Ve(this.domNode.domNode,at.POINTER_DOWN,t=>this._domNodePointerDown(t)))}_createArrow(e){const t=this._register(new Y0t(e));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)}_createSlider(e,t,i,r){this.slider=Si(document.createElement("div")),this.slider.setClassName("slider"),this.slider.setPosition("absolute"),this.slider.setTop(e),this.slider.setLeft(t),typeof i=="number"&&this.slider.setWidth(i),typeof r=="number"&&this.slider.setHeight(r),this.slider.setLayerHinting(!0),this.slider.setContain("strict"),this.domNode.domNode.appendChild(this.slider.domNode),this._register(Ve(this.slider.domNode,at.POINTER_DOWN,o=>{o.button===0&&(o.preventDefault(),this._sliderPointerDown(o))})),this.onclick(this.slider.domNode,o=>{o.leftButton&&o.stopPropagation()})}_onElementSize(e){return this._scrollbarState.setVisibleSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollSize(e){return this._scrollbarState.setScrollSize(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollPosition(e){return this._scrollbarState.setScrollPosition(e)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(!0)}beginHide(){this._visibilityController.setShouldBeVisible(!1)}render(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}_domNodePointerDown(e){e.target===this.domNode.domNode&&this._onPointerDown(e)}delegatePointerDown(e){const t=this.domNode.domNode.getClientRects()[0].top,i=t+this._scrollbarState.getSliderPosition(),r=t+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),o=this._sliderPointerPosition(e);i<=o&&o<=r?e.button===0&&(e.preventDefault(),this._sliderPointerDown(e)):this._onPointerDown(e)}_onPointerDown(e){let t,i;if(e.target===this.domNode.domNode&&typeof e.offsetX=="number"&&typeof e.offsetY=="number")t=e.offsetX,i=e.offsetY;else{const o=go(this.domNode.domNode);t=e.pageX-o.left,i=e.pageY-o.top}const r=this._pointerDownRelativePosition(t,i);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(r):this._scrollbarState.getDesiredScrollPositionFromOffset(r)),e.button===0&&(e.preventDefault(),this._sliderPointerDown(e))}_sliderPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=this._sliderPointerPosition(e),i=this._sliderOrthogonalPointerPosition(e),r=this._scrollbarState.clone();this.slider.toggleClassName("active",!0),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,o=>{const s=this._sliderOrthogonalPointerPosition(o),a=Math.abs(s-i);if(ya&&a>U0t){this._setDesiredScrollPositionNow(r.getScrollPosition());return}const u=this._sliderPointerPosition(o)-t;this._setDesiredScrollPositionNow(r.getDesiredScrollPositionFromDelta(u))},()=>{this.slider.toggleClassName("active",!1),this._host.onDragEnd()}),this._host.onDragStart()}_setDesiredScrollPositionNow(e){const t={};this.writeScrollPosition(t,e),this._scrollable.setScrollPositionNow(t)}updateScrollbarSize(e){this._updateScrollbarSize(e),this._scrollbarState.setScrollbarSize(e),this._shouldRender=!0,this._lazyRender||this.render()}isNeeded(){return this._scrollbarState.isNeeded()}}const J0t=20;class W2{constructor(e,t,i,r,o,s){this._scrollbarSize=Math.round(t),this._oppositeScrollbarSize=Math.round(i),this._arrowSize=Math.round(e),this._visibleSize=r,this._scrollSize=o,this._scrollPosition=s,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}clone(){return new W2(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}setVisibleSize(e){const t=Math.round(e);return this._visibleSize!==t?(this._visibleSize=t,this._refreshComputedValues(),!0):!1}setScrollSize(e){const t=Math.round(e);return this._scrollSize!==t?(this._scrollSize=t,this._refreshComputedValues(),!0):!1}setScrollPosition(e){const t=Math.round(e);return this._scrollPosition!==t?(this._scrollPosition=t,this._refreshComputedValues(),!0):!1}setScrollbarSize(e){this._scrollbarSize=Math.round(e)}setOppositeScrollbarSize(e){this._oppositeScrollbarSize=Math.round(e)}static _computeValues(e,t,i,r,o){const s=Math.max(0,i-e),a=Math.max(0,s-2*t),l=r>0&&r>i;if(!l)return{computedAvailableSize:Math.round(s),computedIsNeeded:l,computedSliderSize:Math.round(a),computedSliderRatio:0,computedSliderPosition:0};const u=Math.round(Math.max(J0t,Math.floor(i*a/r))),c=(a-u)/(r-i),d=o*c;return{computedAvailableSize:Math.round(s),computedIsNeeded:l,computedSliderSize:Math.round(u),computedSliderRatio:c,computedSliderPosition:Math.round(d)}}_refreshComputedValues(){const e=W2._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=e.computedAvailableSize,this._computedIsNeeded=e.computedIsNeeded,this._computedSliderSize=e.computedSliderSize,this._computedSliderRatio=e.computedSliderRatio,this._computedSliderPosition=e.computedSliderPosition}getArrowSize(){return this._arrowSize}getScrollPosition(){return this._scrollPosition}getRectangleLargeSize(){return this._computedAvailableSize}getRectangleSmallSize(){return this._scrollbarSize}isNeeded(){return this._computedIsNeeded}getSliderSize(){return this._computedSliderSize}getSliderPosition(){return this._computedSliderPosition}getDesiredScrollPositionFromOffset(e){if(!this._computedIsNeeded)return 0;const t=e-this._arrowSize-this._computedSliderSize/2;return Math.round(t/this._computedSliderRatio)}getDesiredScrollPositionFromOffsetPaged(e){if(!this._computedIsNeeded)return 0;const t=e-this._arrowSize;let i=this._scrollPosition;return tthis._host.onMouseWheel(new wC(null,1,0))}),this._createArrow({className:"scra",icon:ct.scrollbarButtonRight,top:a,left:void 0,bottom:void 0,right:s,bgWidth:t.arrowSize,bgHeight:t.horizontalScrollbarSize,onActivate:()=>this._host.onMouseWheel(new wC(null,-1,0))})}this._createSlider(Math.floor((t.horizontalScrollbarSize-t.horizontalSliderSize)/2),0,void 0,t.horizontalSliderSize)}_updateSlider(e,t){this.slider.setWidth(e),this.slider.setLeft(t)}_renderDomNode(e,t){this.domNode.setWidth(e),this.domNode.setHeight(t),this.domNode.setLeft(0),this.domNode.setBottom(0)}onDidScroll(e){return this._shouldRender=this._onElementScrollSize(e.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(e.width)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(e,t){return e}_sliderPointerPosition(e){return e.pageX}_sliderOrthogonalPointerPosition(e){return e.pageY}_updateScrollbarSize(e){this.slider.setHeight(e)}writeScrollPosition(e,t){e.scrollLeft=t}updateOptions(e){this.updateScrollbarSize(e.horizontal===2?0:e.horizontalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(e.vertical===2?0:e.verticalScrollbarSize),this._visibilityController.setVisibility(e.horizontal),this._scrollByPage=e.scrollByPage}}class j0t extends U1e{constructor(e,t,i){const r=e.getScrollDimensions(),o=e.getCurrentScrollPosition();if(super({lazyRender:t.lazyRender,host:i,scrollbarState:new W2(t.verticalHasArrows?t.arrowSize:0,t.vertical===2?0:t.verticalScrollbarSize,0,r.height,r.scrollHeight,o.scrollTop),visibility:t.vertical,extraScrollbarClassName:"vertical",scrollable:e,scrollByPage:t.scrollByPage}),t.verticalHasArrows){const s=(t.arrowSize-E2)/2,a=(t.verticalScrollbarSize-E2)/2;this._createArrow({className:"scra",icon:ct.scrollbarButtonUp,top:s,left:a,bottom:void 0,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize,onActivate:()=>this._host.onMouseWheel(new wC(null,0,1))}),this._createArrow({className:"scra",icon:ct.scrollbarButtonDown,top:void 0,left:a,bottom:s,right:void 0,bgWidth:t.verticalScrollbarSize,bgHeight:t.arrowSize,onActivate:()=>this._host.onMouseWheel(new wC(null,0,-1))})}this._createSlider(0,Math.floor((t.verticalScrollbarSize-t.verticalSliderSize)/2),t.verticalSliderSize,void 0)}_updateSlider(e,t){this.slider.setHeight(e),this.slider.setTop(t)}_renderDomNode(e,t){this.domNode.setWidth(t),this.domNode.setHeight(e),this.domNode.setRight(0),this.domNode.setTop(0)}onDidScroll(e){return this._shouldRender=this._onElementScrollSize(e.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(e.height)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(e,t){return t}_sliderPointerPosition(e){return e.pageY}_sliderOrthogonalPointerPosition(e){return e.pageX}_updateScrollbarSize(e){this.slider.setWidth(e)}writeScrollPosition(e,t){e.scrollTop=t}updateOptions(e){this.updateScrollbarSize(e.vertical===2?0:e.verticalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(0),this._visibilityController.setVisibility(e.vertical),this._scrollByPage=e.scrollByPage}}class kT{constructor(e,t,i,r,o,s,a){this._forceIntegerValues=e,this._scrollStateBrand=void 0,this._forceIntegerValues&&(t=t|0,i=i|0,r=r|0,o=o|0,s=s|0,a=a|0),this.rawScrollLeft=r,this.rawScrollTop=a,t<0&&(t=0),r+t>i&&(r=i-t),r<0&&(r=0),o<0&&(o=0),a+o>s&&(a=s-o),a<0&&(a=0),this.width=t,this.scrollWidth=i,this.scrollLeft=r,this.height=o,this.scrollHeight=s,this.scrollTop=a}equals(e){return this.rawScrollLeft===e.rawScrollLeft&&this.rawScrollTop===e.rawScrollTop&&this.width===e.width&&this.scrollWidth===e.scrollWidth&&this.scrollLeft===e.scrollLeft&&this.height===e.height&&this.scrollHeight===e.scrollHeight&&this.scrollTop===e.scrollTop}withScrollDimensions(e,t){return new kT(this._forceIntegerValues,typeof e.width<"u"?e.width:this.width,typeof e.scrollWidth<"u"?e.scrollWidth:this.scrollWidth,t?this.rawScrollLeft:this.scrollLeft,typeof e.height<"u"?e.height:this.height,typeof e.scrollHeight<"u"?e.scrollHeight:this.scrollHeight,t?this.rawScrollTop:this.scrollTop)}withScrollPosition(e){return new kT(this._forceIntegerValues,this.width,this.scrollWidth,typeof e.scrollLeft<"u"?e.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,typeof e.scrollTop<"u"?e.scrollTop:this.rawScrollTop)}createScrollEvent(e,t){const i=this.width!==e.width,r=this.scrollWidth!==e.scrollWidth,o=this.scrollLeft!==e.scrollLeft,s=this.height!==e.height,a=this.scrollHeight!==e.scrollHeight,l=this.scrollTop!==e.scrollTop;return{inSmoothScrolling:t,oldWidth:e.width,oldScrollWidth:e.scrollWidth,oldScrollLeft:e.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:e.height,oldScrollHeight:e.scrollHeight,oldScrollTop:e.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:i,scrollWidthChanged:r,scrollLeftChanged:o,heightChanged:s,scrollHeightChanged:a,scrollTopChanged:l}}}class R2 extends De{constructor(e){super(),this._scrollableBrand=void 0,this._onScroll=this._register(new be),this.onScroll=this._onScroll.event,this._smoothScrollDuration=e.smoothScrollDuration,this._scheduleAtNextAnimationFrame=e.scheduleAtNextAnimationFrame,this._state=new kT(e.forceIntegerValues,0,0,0,0,0,0),this._smoothScrolling=null}dispose(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),super.dispose()}setSmoothScrollDuration(e){this._smoothScrollDuration=e}validateScrollPosition(e){return this._state.withScrollPosition(e)}getScrollDimensions(){return this._state}setScrollDimensions(e,t){var i;const r=this._state.withScrollDimensions(e,t);this._setState(r,!!this._smoothScrolling),(i=this._smoothScrolling)===null||i===void 0||i.acceptScrollDimensions(this._state)}getFutureScrollPosition(){return this._smoothScrolling?this._smoothScrolling.to:this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(e){const t=this._state.withScrollPosition(e);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(t,!1)}setScrollPositionSmooth(e,t){if(this._smoothScrollDuration===0)return this.setScrollPositionNow(e);if(this._smoothScrolling){e={scrollLeft:typeof e.scrollLeft>"u"?this._smoothScrolling.to.scrollLeft:e.scrollLeft,scrollTop:typeof e.scrollTop>"u"?this._smoothScrolling.to.scrollTop:e.scrollTop};const i=this._state.withScrollPosition(e);if(this._smoothScrolling.to.scrollLeft===i.scrollLeft&&this._smoothScrolling.to.scrollTop===i.scrollTop)return;let r;t?r=new m_(this._smoothScrolling.from,i,this._smoothScrolling.startTime,this._smoothScrolling.duration):r=this._smoothScrolling.combine(this._state,i,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=r}else{const i=this._state.withScrollPosition(e);this._smoothScrolling=m_.start(this._state,i,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}hasPendingScrollAnimation(){return!!this._smoothScrolling}_performSmoothScrolling(){if(!this._smoothScrolling)return;const e=this._smoothScrolling.tick(),t=this._state.withScrollPosition(e);if(this._setState(t,!0),!!this._smoothScrolling){if(e.isDone){this._smoothScrolling.dispose(),this._smoothScrolling=null;return}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}}_setState(e,t){const i=this._state;i.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(i,t)))}}class J1e{constructor(e,t,i){this.scrollLeft=e,this.scrollTop=t,this.isDone=i}}function JH(n,e){const t=e-n;return function(i){return n+t*q0t(i)}}function Q0t(n,e,t){return function(i){return i2.5*i){let o,s;return e0&&Math.abs(e.deltaY)>0)return 1;let t=.5;return this._front===-1&&this._rear===-1||this._memory[this._rear],(!this._isAlmostInt(e.deltaX)||!this._isAlmostInt(e.deltaY))&&(t+=.25),Math.min(Math.max(t,0),1)}_isAlmostInt(e){return Math.abs(Math.round(e)-e)<.01}}MT.INSTANCE=new MT;class KH extends Pu{get options(){return this._options}constructor(e,t,i){super(),this._onScroll=this._register(new be),this.onScroll=this._onScroll.event,this._onWillScroll=this._register(new be),e.style.overflow="hidden",this._options=n1t(t),this._scrollable=i,this._register(this._scrollable.onScroll(o=>{this._onWillScroll.fire(o),this._onDidScroll(o),this._onScroll.fire(o)}));const r={onMouseWheel:o=>this._onMouseWheel(o),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new j0t(this._scrollable,this._options,r)),this._horizontalScrollbar=this._register(new K0t(this._scrollable,this._options,r)),this._domNode=document.createElement("div"),this._domNode.className="monaco-scrollable-element "+this._options.className,this._domNode.setAttribute("role","presentation"),this._domNode.style.position="relative",this._domNode.style.overflow="hidden",this._domNode.appendChild(e),this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode),this._domNode.appendChild(this._verticalScrollbar.domNode.domNode),this._options.useShadows?(this._leftShadowDomNode=Si(document.createElement("div")),this._leftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=Si(document.createElement("div")),this._topShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=Si(document.createElement("div")),this._topLeftShadowDomNode.setClassName("shadow"),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,o=>this._onMouseOver(o)),this.onmouseleave(this._listenOnDomNode,o=>this._onMouseLeave(o)),this._hideTimeout=this._register(new md),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}dispose(){this._mouseWheelToDispose=Mi(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarPointerDown(e){this._verticalScrollbar.delegatePointerDown(e)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(e){this._scrollable.setScrollDimensions(e,!1)}updateClassName(e){this._options.className=e,$n&&(this._options.className+=" mac"),this._domNode.className="monaco-scrollable-element "+this._options.className}updateOptions(e){typeof e.handleMouseWheel<"u"&&(this._options.handleMouseWheel=e.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),typeof e.mouseWheelScrollSensitivity<"u"&&(this._options.mouseWheelScrollSensitivity=e.mouseWheelScrollSensitivity),typeof e.fastScrollSensitivity<"u"&&(this._options.fastScrollSensitivity=e.fastScrollSensitivity),typeof e.scrollPredominantAxis<"u"&&(this._options.scrollPredominantAxis=e.scrollPredominantAxis),typeof e.horizontal<"u"&&(this._options.horizontal=e.horizontal),typeof e.vertical<"u"&&(this._options.vertical=e.vertical),typeof e.horizontalScrollbarSize<"u"&&(this._options.horizontalScrollbarSize=e.horizontalScrollbarSize),typeof e.verticalScrollbarSize<"u"&&(this._options.verticalScrollbarSize=e.verticalScrollbarSize),typeof e.scrollByPage<"u"&&(this._options.scrollByPage=e.scrollByPage),this._horizontalScrollbar.updateOptions(this._options),this._verticalScrollbar.updateOptions(this._options),this._options.lazyRender||this._render()}delegateScrollFromMouseWheelEvent(e){this._onMouseWheel(new wC(e))}_setListeningToMouseWheel(e){if(this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=Mi(this._mouseWheelToDispose),e)){const i=r=>{this._onMouseWheel(new wC(r))};this._mouseWheelToDispose.push(Ve(this._listenOnDomNode,at.MOUSE_WHEEL,i,{passive:!1}))}}_onMouseWheel(e){var t;if(!((t=e.browserEvent)===null||t===void 0)&&t.defaultPrevented)return;const i=MT.INSTANCE;i.acceptStandardWheelEvent(e);let r=!1;if(e.deltaY||e.deltaX){let s=e.deltaY*this._options.mouseWheelScrollSensitivity,a=e.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(this._options.scrollYToX&&a+s===0?a=s=0:Math.abs(s)>=Math.abs(a)?a=0:s=0),this._options.flipAxes&&([s,a]=[a,s]);const l=!$n&&e.browserEvent&&e.browserEvent.shiftKey;(this._options.scrollYToX||l)&&!a&&(a=s,s=0),e.browserEvent&&e.browserEvent.altKey&&(a=a*this._options.fastScrollSensitivity,s=s*this._options.fastScrollSensitivity);const u=this._scrollable.getFutureScrollPosition();let c={};if(s){const d=K1e*s,h=u.scrollTop-(d<0?Math.floor(d):Math.ceil(d));this._verticalScrollbar.writeScrollPosition(c,h)}if(a){const d=K1e*a,h=u.scrollLeft-(d<0?Math.floor(d):Math.ceil(d));this._horizontalScrollbar.writeScrollPosition(c,h)}c=this._scrollable.validateScrollPosition(c),(u.scrollLeft!==c.scrollLeft||u.scrollTop!==c.scrollTop)&&(this._options.mouseWheelSmoothScroll&&i.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(c):this._scrollable.setScrollPositionNow(c),r=!0)}let o=r;!o&&this._options.alwaysConsumeMouseWheel&&(o=!0),!o&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(o=!0),o&&(e.preventDefault(),e.stopPropagation())}_onDidScroll(e){this._shouldRender=this._horizontalScrollbar.onDidScroll(e)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(e)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}renderNow(){if(!this._options.lazyRender)throw new Error("Please use `lazyRender` together with `renderNow`!");this._render()}_render(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){const e=this._scrollable.getCurrentScrollPosition(),t=e.scrollTop>0,i=e.scrollLeft>0,r=i?" left":"",o=t?" top":"",s=i||t?" top-left-corner":"";this._leftShadowDomNode.setClassName(`shadow${r}`),this._topShadowDomNode.setClassName(`shadow${o}`),this._topLeftShadowDomNode.setClassName(`shadow${s}${o}${r}`)}}_onDragStart(){this._isDragging=!0,this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseLeave(e){this._mouseIsOver=!1,this._hide()}_onMouseOver(e){this._mouseIsOver=!0,this._reveal()}_reveal(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}_hide(){!this._mouseIsOver&&!this._isDragging&&(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}_scheduleHide(){!this._mouseIsOver&&!this._isDragging&&this._hideTimeout.cancelAndSet(()=>this._hide(),e1t)}}class j1e extends KH{constructor(e,t){t=t||{},t.mouseWheelSmoothScroll=!1;const i=new R2({forceIntegerValues:!0,smoothScrollDuration:0,scheduleAtNextAnimationFrame:r=>iu(qt(e),r)});super(e,t,i),this._register(i)}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}}class ZT extends KH{constructor(e,t,i){super(e,t,i)}setScrollPosition(e){e.reuseAnimation?this._scrollable.setScrollPositionSmooth(e,e.reuseAnimation):this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}}class f_ extends KH{constructor(e,t){t=t||{},t.mouseWheelSmoothScroll=!1;const i=new R2({forceIntegerValues:!1,smoothScrollDuration:0,scheduleAtNextAnimationFrame:r=>iu(qt(e),r)});super(e,t,i),this._register(i),this._element=e,this._register(this.onScroll(r=>{r.scrollTopChanged&&(this._element.scrollTop=r.scrollTop),r.scrollLeftChanged&&(this._element.scrollLeft=r.scrollLeft)})),this.scanDomNode()}setScrollPosition(e){this._scrollable.setScrollPositionNow(e)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}scanDomNode(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})}}function n1t(n){const e={lazyRender:typeof n.lazyRender<"u"?n.lazyRender:!1,className:typeof n.className<"u"?n.className:"",useShadows:typeof n.useShadows<"u"?n.useShadows:!0,handleMouseWheel:typeof n.handleMouseWheel<"u"?n.handleMouseWheel:!0,flipAxes:typeof n.flipAxes<"u"?n.flipAxes:!1,consumeMouseWheelIfScrollbarIsNeeded:typeof n.consumeMouseWheelIfScrollbarIsNeeded<"u"?n.consumeMouseWheelIfScrollbarIsNeeded:!1,alwaysConsumeMouseWheel:typeof n.alwaysConsumeMouseWheel<"u"?n.alwaysConsumeMouseWheel:!1,scrollYToX:typeof n.scrollYToX<"u"?n.scrollYToX:!1,mouseWheelScrollSensitivity:typeof n.mouseWheelScrollSensitivity<"u"?n.mouseWheelScrollSensitivity:1,fastScrollSensitivity:typeof n.fastScrollSensitivity<"u"?n.fastScrollSensitivity:5,scrollPredominantAxis:typeof n.scrollPredominantAxis<"u"?n.scrollPredominantAxis:!0,mouseWheelSmoothScroll:typeof n.mouseWheelSmoothScroll<"u"?n.mouseWheelSmoothScroll:!0,arrowSize:typeof n.arrowSize<"u"?n.arrowSize:11,listenOnDomNode:typeof n.listenOnDomNode<"u"?n.listenOnDomNode:null,horizontal:typeof n.horizontal<"u"?n.horizontal:1,horizontalScrollbarSize:typeof n.horizontalScrollbarSize<"u"?n.horizontalScrollbarSize:10,horizontalSliderSize:typeof n.horizontalSliderSize<"u"?n.horizontalSliderSize:0,horizontalHasArrows:typeof n.horizontalHasArrows<"u"?n.horizontalHasArrows:!1,vertical:typeof n.vertical<"u"?n.vertical:1,verticalScrollbarSize:typeof n.verticalScrollbarSize<"u"?n.verticalScrollbarSize:10,verticalHasArrows:typeof n.verticalHasArrows<"u"?n.verticalHasArrows:!1,verticalSliderSize:typeof n.verticalSliderSize<"u"?n.verticalSliderSize:0,scrollByPage:typeof n.scrollByPage<"u"?n.scrollByPage:!1};return e.horizontalSliderSize=typeof n.horizontalSliderSize<"u"?n.horizontalSliderSize:e.horizontalScrollbarSize,e.verticalSliderSize=typeof n.verticalSliderSize<"u"?n.verticalSliderSize:e.verticalScrollbarSize,$n&&(e.className+=" mac"),e}class jH extends h_{constructor(e,t,i){super(),this._mouseLeaveMonitor=null,this._context=e,this.viewController=t,this.viewHelper=i,this.mouseTargetFactory=new js(this._context,i),this._mouseDownOperation=this._register(new i1t(this._context,this.viewController,this.viewHelper,this.mouseTargetFactory,(s,a)=>this._createMouseTarget(s,a),s=>this._getMouseColumn(s))),this.lastMouseLeaveTime=-1,this._height=this._context.configuration.options.get(144).height;const r=new p0t(this.viewHelper.viewDomNode);this._register(r.onContextMenu(this.viewHelper.viewDomNode,s=>this._onContextMenu(s,!0))),this._register(r.onMouseMove(this.viewHelper.viewDomNode,s=>{this._onMouseMove(s),this._mouseLeaveMonitor||(this._mouseLeaveMonitor=Ve(this.viewHelper.viewDomNode.ownerDocument,"mousemove",a=>{this.viewHelper.viewDomNode.contains(a.target)||this._onMouseLeave(new Vb(a,!1,this.viewHelper.viewDomNode))}))})),this._register(r.onMouseUp(this.viewHelper.viewDomNode,s=>this._onMouseUp(s))),this._register(r.onMouseLeave(this.viewHelper.viewDomNode,s=>this._onMouseLeave(s)));let o=0;this._register(r.onPointerDown(this.viewHelper.viewDomNode,(s,a)=>{o=a})),this._register(Ve(this.viewHelper.viewDomNode,at.POINTER_UP,s=>{this._mouseDownOperation.onPointerUp()})),this._register(r.onMouseDown(this.viewHelper.viewDomNode,s=>this._onMouseDown(s,o))),this._setupMouseWheelZoomListener(),this._context.addEventHandler(this)}_setupMouseWheelZoomListener(){const e=MT.INSTANCE;let t=0,i=Dc.getZoomLevel(),r=!1,o=0;const s=l=>{if(this.viewController.emitMouseWheel(l),!this._context.configuration.options.get(76))return;const u=new wC(l);if(e.acceptStandardWheelEvent(u),e.isPhysicalMouseWheel()){if(a(l)){const c=Dc.getZoomLevel(),d=u.deltaY>0?1:-1;Dc.setZoomLevel(c+d),u.preventDefault(),u.stopPropagation()}}else Date.now()-t>50&&(i=Dc.getZoomLevel(),r=a(l),o=0),t=Date.now(),o+=u.deltaY,r&&(Dc.setZoomLevel(i+o/5),u.preventDefault(),u.stopPropagation())};this._register(Ve(this.viewHelper.viewDomNode,at.MOUSE_WHEEL,s,{capture:!0,passive:!1}));function a(l){return $n?(l.metaKey||l.ctrlKey)&&!l.shiftKey&&!l.altKey:l.ctrlKey&&!l.metaKey&&!l.shiftKey&&!l.altKey}}dispose(){this._context.removeEventHandler(this),this._mouseLeaveMonitor&&(this._mouseLeaveMonitor.dispose(),this._mouseLeaveMonitor=null),super.dispose()}onConfigurationChanged(e){if(e.hasChanged(144)){const t=this._context.configuration.options.get(144).height;this._height!==t&&(this._height=t,this._mouseDownOperation.onHeightChanged())}return!1}onCursorStateChanged(e){return this._mouseDownOperation.onCursorStateChanged(e),!1}onFocusChanged(e){return!1}getTargetAtClientPoint(e,t){const r=new W1e(e,t).toPageCoordinates(qt(this.viewHelper.viewDomNode)),o=OH(this.viewHelper.viewDomNode);if(r.yo.y+o.height||r.xo.x+o.width)return null;const s=BH(this.viewHelper.viewDomNode,o,r);return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),o,r,s,null)}_createMouseTarget(e,t){let i=e.target;if(!this.viewHelper.viewDomNode.contains(i)){const r=_C(this.viewHelper.viewDomNode);r&&(i=r.elementsFromPoint(e.posx,e.posy).find(o=>this.viewHelper.viewDomNode.contains(o)))}return this.mouseTargetFactory.createMouseTarget(this.viewHelper.getLastRenderData(),e.editorPos,e.pos,e.relativePos,t?i:null)}_getMouseColumn(e){return this.mouseTargetFactory.getMouseColumn(e.relativePos)}_onContextMenu(e,t){this.viewController.emitContextMenu({event:e,target:this._createMouseTarget(e,t)})}_onMouseMove(e){this.mouseTargetFactory.mouseTargetIsWidget(e)||e.preventDefault(),!(this._mouseDownOperation.isActive()||e.timestamp{e.preventDefault(),this.viewHelper.focusTextArea()};if(c&&(r||s&&a))d(),this._mouseDownOperation.start(i.type,e,t);else if(o)e.preventDefault();else if(l){const h=i.detail;c&&this.viewHelper.shouldSuppressMouseDownOnViewZone(h.viewZoneId)&&(d(),this._mouseDownOperation.start(i.type,e,t),e.preventDefault())}else u&&this.viewHelper.shouldSuppressMouseDownOnWidget(i.detail)&&(d(),e.preventDefault());this.viewController.emitMouseDown({event:e,target:i})}}class i1t extends De{constructor(e,t,i,r,o,s){super(),this._context=e,this._viewController=t,this._viewHelper=i,this._mouseTargetFactory=r,this._createMouseTarget=o,this._getMouseColumn=s,this._mouseMoveMonitor=this._register(new C0t(this._viewHelper.viewDomNode)),this._topBottomDragScrolling=this._register(new r1t(this._context,this._viewHelper,this._mouseTargetFactory,(a,l,u)=>this._dispatchMouse(a,l,u))),this._mouseState=new TT,this._currentSelection=new Gt(1,1,1,1),this._isActive=!1,this._lastMouseEvent=null}dispose(){super.dispose()}isActive(){return this._isActive}_onMouseDownThenMove(e){this._lastMouseEvent=e,this._mouseState.setModifiers(e);const t=this._findMousePosition(e,!1);t&&(this._mouseState.isDragAndDrop?this._viewController.emitMouseDrag({event:e,target:t}):t.type===13&&(t.outsidePosition==="above"||t.outsidePosition==="below")?this._topBottomDragScrolling.start(t,e):(this._topBottomDragScrolling.stop(),this._dispatchMouse(t,!0,1)))}start(e,t,i){this._lastMouseEvent=t,this._mouseState.setStartedOnLineNumbers(e===3),this._mouseState.setStartButtons(t),this._mouseState.setModifiers(t);const r=this._findMousePosition(t,!0);if(!r||!r.position)return;this._mouseState.trySetCount(t.detail,r.position),t.detail=this._mouseState.count;const o=this._context.configuration.options;if(!o.get(91)&&o.get(35)&&!o.get(22)&&!this._mouseState.altKey&&t.detail<2&&!this._isActive&&!this._currentSelection.isEmpty()&&r.type===6&&r.position&&this._currentSelection.containsPosition(r.position)){this._mouseState.isDragAndDrop=!0,this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,i,t.buttons,s=>this._onMouseDownThenMove(s),s=>{const a=this._findMousePosition(this._lastMouseEvent,!1);HY(s)?this._viewController.emitMouseDropCanceled():this._viewController.emitMouseDrop({event:this._lastMouseEvent,target:a?this._createMouseTarget(this._lastMouseEvent,!0):null}),this._stop()});return}this._mouseState.isDragAndDrop=!1,this._dispatchMouse(r,t.shiftKey,1),this._isActive||(this._isActive=!0,this._mouseMoveMonitor.startMonitoring(this._viewHelper.viewLinesDomNode,i,t.buttons,s=>this._onMouseDownThenMove(s),()=>this._stop()))}_stop(){this._isActive=!1,this._topBottomDragScrolling.stop()}onHeightChanged(){this._mouseMoveMonitor.stopMonitoring()}onPointerUp(){this._mouseMoveMonitor.stopMonitoring()}onCursorStateChanged(e){this._currentSelection=e.selections[0]}_getPositionOutsideEditor(e){const t=e.editorPos,i=this._context.viewModel,r=this._context.viewLayout,o=this._getMouseColumn(e);if(e.posyt.y+t.height){const a=e.posy-t.y-t.height,l=r.getCurrentScrollTop()+e.relativePos.y,u=T2.getZoneAtCoord(this._context,l);if(u){const d=this._helpPositionJumpOverViewZone(u);if(d)return xa.createOutsideEditor(o,d,"below",a)}const c=r.getLineNumberAtVerticalOffset(l);return xa.createOutsideEditor(o,new ve(c,i.getLineMaxColumn(c)),"below",a)}const s=r.getLineNumberAtVerticalOffset(r.getCurrentScrollTop()+e.relativePos.y);if(e.posxt.x+t.width){const a=e.posx-t.x-t.width;return xa.createOutsideEditor(o,new ve(s,i.getLineMaxColumn(s)),"right",a)}return null}_findMousePosition(e,t){const i=this._getPositionOutsideEditor(e);if(i)return i;const r=this._createMouseTarget(e,t);if(!r.position)return null;if(r.type===8||r.type===5){const s=this._helpPositionJumpOverViewZone(r.detail);if(s)return xa.createViewZone(r.type,r.element,r.mouseColumn,s,r.detail)}return r}_helpPositionJumpOverViewZone(e){const t=new ve(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),i=e.positionBefore,r=e.positionAfter;return i&&r?i.isBefore(t)?i:r:null}_dispatchMouse(e,t,i){e.position&&this._viewController.dispatchMouse({position:e.position,mouseColumn:e.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,revealType:i,inSelectionMode:t,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton,onInjectedText:e.type===6&&e.detail.injectedText!==null})}}class r1t extends De{constructor(e,t,i,r){super(),this._context=e,this._viewHelper=t,this._mouseTargetFactory=i,this._dispatchMouse=r,this._operation=null}dispose(){super.dispose(),this.stop()}start(e,t){this._operation?this._operation.setPosition(e,t):this._operation=new o1t(this._context,this._viewHelper,this._mouseTargetFactory,this._dispatchMouse,e,t)}stop(){this._operation&&(this._operation.dispose(),this._operation=null)}}class o1t extends De{constructor(e,t,i,r,o,s){super(),this._context=e,this._viewHelper=t,this._mouseTargetFactory=i,this._dispatchMouse=r,this._position=o,this._mouseEvent=s,this._lastTime=Date.now(),this._animationFrameDisposable=iu(qt(s.browserEvent),()=>this._execute())}dispose(){this._animationFrameDisposable.dispose(),super.dispose()}setPosition(e,t){this._position=e,this._mouseEvent=t}_tick(){const e=Date.now(),t=e-this._lastTime;return this._lastTime=e,t}_getScrollSpeed(){const e=this._context.configuration.options.get(67),t=this._context.configuration.options.get(144).height/e,i=this._position.outsideDistance/e;return i<=1.5?Math.max(30,t*(1+i)):i<=3?Math.max(60,t*(2+i)):Math.max(200,t*(7+i))}_execute(){const e=this._context.configuration.options.get(67),t=this._getScrollSpeed(),i=this._tick(),r=t*(i/1e3)*e,o=this._position.outsidePosition==="above"?-r:r;this._context.viewModel.viewLayout.deltaScrollNow(0,o),this._viewHelper.renderNow();const s=this._context.viewLayout.getLinesViewportData(),a=this._position.outsidePosition==="above"?s.startLineNumber:s.endLineNumber;let l;{const u=OH(this._viewHelper.viewDomNode),c=this._context.configuration.options.get(144).horizontalScrollbarHeight,d=new xT(this._mouseEvent.pos.x,u.y+u.height-c-.1),h=BH(this._viewHelper.viewDomNode,u,d);l=this._mouseTargetFactory.createMouseTarget(this._viewHelper.getLastRenderData(),u,d,h,null)}(!l.position||l.position.lineNumber!==a)&&(this._position.outsidePosition==="above"?l=xa.createOutsideEditor(this._position.mouseColumn,new ve(a,1),"above",this._position.outsideDistance):l=xa.createOutsideEditor(this._position.mouseColumn,new ve(a,this._context.viewModel.getLineMaxColumn(a)),"below",this._position.outsideDistance)),this._dispatchMouse(l,!0,2),this._animationFrameDisposable=iu(qt(l.element),()=>this._execute())}}class TT{get altKey(){return this._altKey}get ctrlKey(){return this._ctrlKey}get metaKey(){return this._metaKey}get shiftKey(){return this._shiftKey}get leftButton(){return this._leftButton}get middleButton(){return this._middleButton}get startedOnLineNumbers(){return this._startedOnLineNumbers}constructor(){this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}get count(){return this._lastMouseDownCount}setModifiers(e){this._altKey=e.altKey,this._ctrlKey=e.ctrlKey,this._metaKey=e.metaKey,this._shiftKey=e.shiftKey}setStartButtons(e){this._leftButton=e.leftButton,this._middleButton=e.middleButton}setStartedOnLineNumbers(e){this._startedOnLineNumbers=e}trySetCount(e,t){const i=new Date().getTime();i-this._lastSetMouseDownCountTime>TT.CLEAR_MOUSE_DOWN_COUNT_TIME&&(e=1),this._lastSetMouseDownCountTime=i,e>this._lastMouseDownCount+1&&(e=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(t)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=t,this._lastMouseDownCount=Math.min(e,this._lastMouseDownPositionEqualCount)}}TT.CLEAR_MOUSE_DOWN_COUNT_TIME=400;class Qn{get event(){return this.emitter.event}constructor(e,t,i){const r=o=>this.emitter.fire(o);this.emitter=new be({onWillAddFirstListener:()=>e.addEventListener(t,r,i),onDidRemoveLastListener:()=>e.removeEventListener(t,r,i)})}dispose(){this.emitter.dispose()}}class As{constructor(e,t,i,r,o){this.value=e,this.selectionStart=t,this.selectionEnd=i,this.selection=r,this.newlineCountBeforeSelection=o}toString(){return`[ <${this.value}>, selectionStart: ${this.selectionStart}, selectionEnd: ${this.selectionEnd}]`}static readFromTextArea(e,t){const i=e.getValue(),r=e.getSelectionStart(),o=e.getSelectionEnd();let s;if(t){const a=i.substring(0,r),l=t.value.substring(0,t.selectionStart);a===l&&(s=t.newlineCountBeforeSelection)}return new As(i,r,o,null,s)}collapseSelection(){return this.selectionStart===this.value.length?this:new As(this.value,this.value.length,this.value.length,null,void 0)}writeToTextArea(e,t,i){t.setValue(e,this.value),i&&t.setSelectionRange(e,this.selectionStart,this.selectionEnd)}deduceEditorPosition(e){var t,i,r,o,s,a,l,u;if(e<=this.selectionStart){const h=this.value.substring(e,this.selectionStart);return this._finishDeduceEditorPosition((i=(t=this.selection)===null||t===void 0?void 0:t.getStartPosition())!==null&&i!==void 0?i:null,h,-1)}if(e>=this.selectionEnd){const h=this.value.substring(this.selectionEnd,e);return this._finishDeduceEditorPosition((o=(r=this.selection)===null||r===void 0?void 0:r.getEndPosition())!==null&&o!==void 0?o:null,h,1)}const c=this.value.substring(this.selectionStart,e);if(c.indexOf("…")===-1)return this._finishDeduceEditorPosition((a=(s=this.selection)===null||s===void 0?void 0:s.getStartPosition())!==null&&a!==void 0?a:null,c,1);const d=this.value.substring(e,this.selectionEnd);return this._finishDeduceEditorPosition((u=(l=this.selection)===null||l===void 0?void 0:l.getEndPosition())!==null&&u!==void 0?u:null,d,-1)}_finishDeduceEditorPosition(e,t,i){let r=0,o=-1;for(;(o=t.indexOf(` +`,o+1))!==-1;)r++;return[e,i*t.length,r]}static deduceInput(e,t,i){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};const r=Math.min(yb(e.value,t.value),e.selectionStart,t.selectionStart),o=Math.min(g5(e.value,t.value),e.value.length-e.selectionEnd,t.value.length-t.selectionEnd);e.value.substring(r,e.value.length-o);const s=t.value.substring(r,t.value.length-o),a=e.selectionStart-r,l=e.selectionEnd-r,u=t.selectionStart-r,c=t.selectionEnd-r;if(u===c){const h=e.selectionStart-r;return{text:s,replacePrevCharCnt:h,replaceNextCharCnt:0,positionDelta:0}}const d=l-a;return{text:s,replacePrevCharCnt:d,replaceNextCharCnt:0,positionDelta:0}}static deduceAndroidCompositionInput(e,t){if(!e)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:0};if(e.value===t.value)return{text:"",replacePrevCharCnt:0,replaceNextCharCnt:0,positionDelta:t.selectionEnd-e.selectionEnd};const i=Math.min(yb(e.value,t.value),e.selectionEnd),r=Math.min(g5(e.value,t.value),e.value.length-e.selectionEnd),o=e.value.substring(i,e.value.length-r),s=t.value.substring(i,t.value.length-r);e.selectionStart-i;const a=e.selectionEnd-i;t.selectionStart-i;const l=t.selectionEnd-i;return{text:s,replacePrevCharCnt:a,replaceNextCharCnt:o.length-a,positionDelta:l-s.length}}}As.EMPTY=new As("",0,0,null,void 0);class G2{static _getPageOfLine(e,t){return Math.floor((e-1)/t)}static _getRangeForPage(e,t){const i=e*t,r=i+1,o=i+t;return new K(r,1,o+1,1)}static fromEditorSelection(e,t,i,r){const s=G2._getPageOfLine(t.startLineNumber,i),a=G2._getRangeForPage(s,i),l=G2._getPageOfLine(t.endLineNumber,i),u=G2._getRangeForPage(l,i);let c=a.intersectRanges(new K(1,1,t.startLineNumber,t.startColumn));if(r&&e.getValueLengthInRange(c,1)>500){const C=e.modifyPosition(c.getEndPosition(),-500);c=K.fromPositions(C,c.getEndPosition())}const d=e.getValueInRange(c,1),h=e.getLineCount(),g=e.getLineMaxColumn(h);let m=u.intersectRanges(new K(t.endLineNumber,t.endColumn,h,g));if(r&&e.getValueLengthInRange(m,1)>500){const C=e.modifyPosition(m.getStartPosition(),500);m=K.fromPositions(m.getStartPosition(),C)}const f=e.getValueInRange(m,1);let b;if(s===l||s+1===l)b=e.getValueInRange(t,1);else{const C=a.intersectRanges(t),v=u.intersectRanges(t);b=e.getValueInRange(C,1)+"…"+e.getValueInRange(v,1)}return r&&b.length>2*500&&(b=b.substring(0,500)+"…"+b.substring(b.length-500,b.length)),new As(d+b+f,d.length,d.length+b.length,t,c.endLineNumber-c.startLineNumber)}}var s1t=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Q1e=function(n,e){return function(t,i){e(t,i,n)}},ET;(function(n){n.Tap="-monaco-textarea-synthetic-tap"})(ET||(ET={}));const QH={forceCopyWithSyntaxHighlighting:!1};class p_{constructor(){this._lastState=null}set(e,t){this._lastState={lastCopiedValue:e,data:t}}get(e){return this._lastState&&this._lastState.lastCopiedValue===e?this._lastState.data:(this._lastState=null,null)}}p_.INSTANCE=new p_;class a1t{constructor(){this._lastTypeTextLength=0}handleCompositionUpdate(e){e=e||"";const t={text:e,replacePrevCharCnt:this._lastTypeTextLength,replaceNextCharCnt:0,positionDelta:0};return this._lastTypeTextLength=e.length,t}}let $H=class extends De{get textAreaState(){return this._textAreaState}constructor(e,t,i,r,o,s){super(),this._host=e,this._textArea=t,this._OS=i,this._browser=r,this._accessibilityService=o,this._logService=s,this._onFocus=this._register(new be),this.onFocus=this._onFocus.event,this._onBlur=this._register(new be),this.onBlur=this._onBlur.event,this._onKeyDown=this._register(new be),this.onKeyDown=this._onKeyDown.event,this._onKeyUp=this._register(new be),this.onKeyUp=this._onKeyUp.event,this._onCut=this._register(new be),this.onCut=this._onCut.event,this._onPaste=this._register(new be),this.onPaste=this._onPaste.event,this._onType=this._register(new be),this.onType=this._onType.event,this._onCompositionStart=this._register(new be),this.onCompositionStart=this._onCompositionStart.event,this._onCompositionUpdate=this._register(new be),this.onCompositionUpdate=this._onCompositionUpdate.event,this._onCompositionEnd=this._register(new be),this.onCompositionEnd=this._onCompositionEnd.event,this._onSelectionChangeRequest=this._register(new be),this.onSelectionChangeRequest=this._onSelectionChangeRequest.event,this._asyncFocusGainWriteScreenReaderContent=this._register(new zs),this._asyncTriggerCut=this._register(new Vi(()=>this._onCut.fire(),0)),this._textAreaState=As.EMPTY,this._selectionChangeListener=null,this._accessibilityService.isScreenReaderOptimized()&&this.writeNativeTextAreaContent("ctor"),this._register(ft.runAndSubscribe(this._accessibilityService.onDidChangeScreenReaderOptimized,()=>{this._accessibilityService.isScreenReaderOptimized()&&!this._asyncFocusGainWriteScreenReaderContent.value?this._asyncFocusGainWriteScreenReaderContent.value=this._register(new Vi(()=>this.writeNativeTextAreaContent("asyncFocusGain"),0)):this._asyncFocusGainWriteScreenReaderContent.clear()})),this._hasFocus=!1,this._currentComposition=null;let a=null;this._register(this._textArea.onKeyDown(l=>{const u=new nr(l);(u.keyCode===114||this._currentComposition&&u.keyCode===1)&&u.stopPropagation(),u.equals(9)&&u.preventDefault(),a=u,this._onKeyDown.fire(u)})),this._register(this._textArea.onKeyUp(l=>{const u=new nr(l);this._onKeyUp.fire(u)})),this._register(this._textArea.onCompositionStart(l=>{const u=new a1t;if(this._currentComposition){this._currentComposition=u;return}if(this._currentComposition=u,this._OS===2&&a&&a.equals(114)&&this._textAreaState.selectionStart===this._textAreaState.selectionEnd&&this._textAreaState.selectionStart>0&&this._textAreaState.value.substr(this._textAreaState.selectionStart-1,1)===l.data&&(a.code==="ArrowRight"||a.code==="ArrowLeft")){u.handleCompositionUpdate("x"),this._onCompositionStart.fire({data:l.data});return}if(this._browser.isAndroid){this._onCompositionStart.fire({data:l.data});return}this._onCompositionStart.fire({data:l.data})})),this._register(this._textArea.onCompositionUpdate(l=>{const u=this._currentComposition;if(!u)return;if(this._browser.isAndroid){const d=As.readFromTextArea(this._textArea,this._textAreaState),h=As.deduceAndroidCompositionInput(this._textAreaState,d);this._textAreaState=d,this._onType.fire(h),this._onCompositionUpdate.fire(l);return}const c=u.handleCompositionUpdate(l.data);this._textAreaState=As.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(c),this._onCompositionUpdate.fire(l)})),this._register(this._textArea.onCompositionEnd(l=>{const u=this._currentComposition;if(!u)return;if(this._currentComposition=null,this._browser.isAndroid){const d=As.readFromTextArea(this._textArea,this._textAreaState),h=As.deduceAndroidCompositionInput(this._textAreaState,d);this._textAreaState=d,this._onType.fire(h),this._onCompositionEnd.fire();return}const c=u.handleCompositionUpdate(l.data);this._textAreaState=As.readFromTextArea(this._textArea,this._textAreaState),this._onType.fire(c),this._onCompositionEnd.fire()})),this._register(this._textArea.onInput(l=>{if(this._textArea.setIgnoreSelectionChangeTime("received input event"),this._currentComposition)return;const u=As.readFromTextArea(this._textArea,this._textAreaState),c=As.deduceInput(this._textAreaState,u,this._OS===2);c.replacePrevCharCnt===0&&c.text.length===1&&(qo(c.text.charCodeAt(0))||c.text.charCodeAt(0)===127)||(this._textAreaState=u,(c.text!==""||c.replacePrevCharCnt!==0||c.replaceNextCharCnt!==0||c.positionDelta!==0)&&this._onType.fire(c))})),this._register(this._textArea.onCut(l=>{this._textArea.setIgnoreSelectionChangeTime("received cut event"),this._ensureClipboardGetsEditorSelection(l),this._asyncTriggerCut.schedule()})),this._register(this._textArea.onCopy(l=>{this._ensureClipboardGetsEditorSelection(l)})),this._register(this._textArea.onPaste(l=>{if(this._textArea.setIgnoreSelectionChangeTime("received paste event"),l.preventDefault(),!l.clipboardData)return;let[u,c]=qH.getTextData(l.clipboardData);u&&(c=c||p_.INSTANCE.get(u),this._onPaste.fire({text:u,metadata:c}))})),this._register(this._textArea.onFocus(()=>{const l=this._hasFocus;this._setHasFocus(!0),this._accessibilityService.isScreenReaderOptimized()&&this._browser.isSafari&&!l&&this._hasFocus&&(this._asyncFocusGainWriteScreenReaderContent.value||(this._asyncFocusGainWriteScreenReaderContent.value=new Vi(()=>this.writeNativeTextAreaContent("asyncFocusGain"),0)),this._asyncFocusGainWriteScreenReaderContent.value.schedule())})),this._register(this._textArea.onBlur(()=>{this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("blurWithoutCompositionEnd"),this._onCompositionEnd.fire()),this._setHasFocus(!1)})),this._register(this._textArea.onSyntheticTap(()=>{this._browser.isAndroid&&this._currentComposition&&(this._currentComposition=null,this.writeNativeTextAreaContent("tapWithoutCompositionEnd"),this._onCompositionEnd.fire())}))}_installSelectionChangeListener(){let e=0;return Ve(this._textArea.ownerDocument,"selectionchange",t=>{if(Eb.onSelectionChange(),!this._hasFocus||this._currentComposition||!this._browser.isChrome)return;const i=Date.now(),r=i-e;if(e=i,r<5)return;const o=i-this._textArea.getIgnoreSelectionChangeTime();if(this._textArea.resetSelectionChangeTime(),o<100||!this._textAreaState.selection)return;const s=this._textArea.getValue();if(this._textAreaState.value!==s)return;const a=this._textArea.getSelectionStart(),l=this._textArea.getSelectionEnd();if(this._textAreaState.selectionStart===a&&this._textAreaState.selectionEnd===l)return;const u=this._textAreaState.deduceEditorPosition(a),c=this._host.deduceModelPosition(u[0],u[1],u[2]),d=this._textAreaState.deduceEditorPosition(l),h=this._host.deduceModelPosition(d[0],d[1],d[2]),g=new Gt(c.lineNumber,c.column,h.lineNumber,h.column);this._onSelectionChangeRequest.fire(g)})}dispose(){super.dispose(),this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null)}focusTextArea(){this._setHasFocus(!0),this.refreshFocusState()}isFocused(){return this._hasFocus}refreshFocusState(){this._setHasFocus(this._textArea.hasFocus())}_setHasFocus(e){this._hasFocus!==e&&(this._hasFocus=e,this._selectionChangeListener&&(this._selectionChangeListener.dispose(),this._selectionChangeListener=null),this._hasFocus&&(this._selectionChangeListener=this._installSelectionChangeListener()),this._hasFocus&&this.writeNativeTextAreaContent("focusgain"),this._hasFocus?this._onFocus.fire():this._onBlur.fire())}_setAndWriteTextAreaState(e,t){this._hasFocus||(t=t.collapseSelection()),t.writeToTextArea(e,this._textArea,this._hasFocus),this._textAreaState=t}writeNativeTextAreaContent(e){!this._accessibilityService.isScreenReaderOptimized()&&e==="render"||this._currentComposition||(this._logService.trace(`writeTextAreaState(reason: ${e})`),this._setAndWriteTextAreaState(e,this._host.getScreenReaderContent()))}_ensureClipboardGetsEditorSelection(e){const t=this._host.getDataToCopy(),i={version:1,isFromEmptySelection:t.isFromEmptySelection,multicursorText:t.multicursorText,mode:t.mode};p_.INSTANCE.set(this._browser.isFirefox?t.text.replace(/\r\n/g,` +`):t.text,i),e.preventDefault(),e.clipboardData&&qH.setTextData(e.clipboardData,t.text,t.html,i)}};$H=s1t([Q1e(4,vd),Q1e(5,Qa)],$H);const qH={getTextData(n){const e=n.getData(Xr.text);let t=null;const i=n.getData("vscode-editor-data");if(typeof i=="string")try{t=JSON.parse(i),t.version!==1&&(t=null)}catch{}return e.length===0&&t===null&&n.files.length>0?[Array.prototype.slice.call(n.files,0).map(o=>o.name).join(` +`),null]:[e,t]},setTextData(n,e,t,i){n.setData(Xr.text,e),typeof t=="string"&&n.setData("text/html",t),n.setData("vscode-editor-data",JSON.stringify(i))}};class l1t extends De{get ownerDocument(){return this._actual.ownerDocument}constructor(e){super(),this._actual=e,this.onKeyDown=this._register(new Qn(this._actual,"keydown")).event,this.onKeyUp=this._register(new Qn(this._actual,"keyup")).event,this.onCompositionStart=this._register(new Qn(this._actual,"compositionstart")).event,this.onCompositionUpdate=this._register(new Qn(this._actual,"compositionupdate")).event,this.onCompositionEnd=this._register(new Qn(this._actual,"compositionend")).event,this.onBeforeInput=this._register(new Qn(this._actual,"beforeinput")).event,this.onInput=this._register(new Qn(this._actual,"input")).event,this.onCut=this._register(new Qn(this._actual,"cut")).event,this.onCopy=this._register(new Qn(this._actual,"copy")).event,this.onPaste=this._register(new Qn(this._actual,"paste")).event,this.onFocus=this._register(new Qn(this._actual,"focus")).event,this.onBlur=this._register(new Qn(this._actual,"blur")).event,this._onSyntheticTap=this._register(new be),this.onSyntheticTap=this._onSyntheticTap.event,this._ignoreSelectionChangeTime=0,this._register(this.onKeyDown(()=>Eb.onKeyDown())),this._register(this.onBeforeInput(()=>Eb.onBeforeInput())),this._register(this.onInput(()=>Eb.onInput())),this._register(this.onKeyUp(()=>Eb.onKeyUp())),this._register(Ve(this._actual,ET.Tap,()=>this._onSyntheticTap.fire()))}hasFocus(){const e=_C(this._actual);return e?e.activeElement===this._actual:this._actual.isConnected?Ys()===this._actual:!1}setIgnoreSelectionChangeTime(e){this._ignoreSelectionChangeTime=Date.now()}getIgnoreSelectionChangeTime(){return this._ignoreSelectionChangeTime}resetSelectionChangeTime(){this._ignoreSelectionChangeTime=0}getValue(){return this._actual.value}setValue(e,t){const i=this._actual;i.value!==t&&(this.setIgnoreSelectionChangeTime("setValue"),i.value=t)}getSelectionStart(){return this._actual.selectionDirection==="backward"?this._actual.selectionEnd:this._actual.selectionStart}getSelectionEnd(){return this._actual.selectionDirection==="backward"?this._actual.selectionStart:this._actual.selectionEnd}setSelectionRange(e,t,i){const r=this._actual;let o=null;const s=_C(r);s?o=s.activeElement:o=Ys();const a=qt(o),l=o===r,u=r.selectionStart,c=r.selectionEnd;if(l&&u===t&&c===i){vc&&a.parent!==a&&r.focus();return}if(l){this.setIgnoreSelectionChangeTime("setSelectionRange"),r.setSelectionRange(t,i),vc&&a.parent!==a&&r.focus();return}try{const d=Bgt(r);this.setIgnoreSelectionChangeTime("setSelectionRange"),r.focus(),r.setSelectionRange(t,i),zgt(r,d)}catch{}}}class u1t extends jH{constructor(e,t,i){super(e,t,i),this._register(er.addTarget(this.viewHelper.linesContentDomNode)),this._register(Ve(this.viewHelper.linesContentDomNode,qi.Tap,o=>this.onTap(o))),this._register(Ve(this.viewHelper.linesContentDomNode,qi.Change,o=>this.onChange(o))),this._register(Ve(this.viewHelper.linesContentDomNode,qi.Contextmenu,o=>this._onContextMenu(new Vb(o,!1,this.viewHelper.viewDomNode),!1))),this._lastPointerType="mouse",this._register(Ve(this.viewHelper.linesContentDomNode,"pointerdown",o=>{const s=o.pointerType;if(s==="mouse"){this._lastPointerType="mouse";return}else s==="touch"?this._lastPointerType="touch":this._lastPointerType="pen"}));const r=new b0t(this.viewHelper.viewDomNode);this._register(r.onPointerMove(this.viewHelper.viewDomNode,o=>this._onMouseMove(o))),this._register(r.onPointerUp(this.viewHelper.viewDomNode,o=>this._onMouseUp(o))),this._register(r.onPointerLeave(this.viewHelper.viewDomNode,o=>this._onMouseLeave(o))),this._register(r.onPointerDown(this.viewHelper.viewDomNode,(o,s)=>this._onMouseDown(o,s)))}onTap(e){!e.initialTarget||!this.viewHelper.linesContentDomNode.contains(e.initialTarget)||(e.preventDefault(),this.viewHelper.focusTextArea(),this._dispatchGesture(e,!1))}onChange(e){this._lastPointerType==="touch"&&this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY),this._lastPointerType==="pen"&&this._dispatchGesture(e,!0)}_dispatchGesture(e,t){const i=this._createMouseTarget(new Vb(e,!1,this.viewHelper.viewDomNode),!1);i.position&&this.viewController.dispatchMouse({position:i.position,mouseColumn:i.position.column,startedOnLineNumbers:!1,revealType:1,mouseDownCount:e.tapCount,inSelectionMode:t,altKey:!1,ctrlKey:!1,metaKey:!1,shiftKey:!1,leftButton:!1,middleButton:!1,onInjectedText:i.type===6&&i.detail.injectedText!==null})}_onMouseDown(e,t){e.browserEvent.pointerType!=="touch"&&super._onMouseDown(e,t)}}class c1t extends jH{constructor(e,t,i){super(e,t,i),this._register(er.addTarget(this.viewHelper.linesContentDomNode)),this._register(Ve(this.viewHelper.linesContentDomNode,qi.Tap,r=>this.onTap(r))),this._register(Ve(this.viewHelper.linesContentDomNode,qi.Change,r=>this.onChange(r))),this._register(Ve(this.viewHelper.linesContentDomNode,qi.Contextmenu,r=>this._onContextMenu(new Vb(r,!1,this.viewHelper.viewDomNode),!1)))}onTap(e){e.preventDefault(),this.viewHelper.focusTextArea();const t=this._createMouseTarget(new Vb(e,!1,this.viewHelper.viewDomNode),!1);if(t.position){const i=document.createEvent("CustomEvent");i.initEvent(ET.Tap,!1,!0),this.viewHelper.dispatchTextAreaEvent(i),this.viewController.moveTo(t.position,1)}}onChange(e){this._context.viewModel.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)}}class d1t extends De{constructor(e,t,i){super(),(Dg||Odt&&Ppe)&&Kz.pointerEvents?this.handler=this._register(new u1t(e,t,i)):Wi.TouchEvent?this.handler=this._register(new c1t(e,t,i)):this.handler=this._register(new jH(e,t,i))}getTargetAtClientPoint(e,t){return this.handler.getTargetAtClientPoint(e,t)}}class JC extends h_{}const ts=Un("themeService");function Br(n){return{id:n}}function e6(n){switch(n){case Nc.DARK:return"vs-dark";case Nc.HIGH_CONTRAST_DARK:return"hc-black";case Nc.HIGH_CONTRAST_LIGHT:return"hc-light";default:return"vs"}}const $1e={ThemingContribution:"base.contributions.theming"};class h1t{constructor(){this.themingParticipants=[],this.themingParticipants=[],this.onThemingParticipantAddedEmitter=new be}onColorThemeChange(e){return this.themingParticipants.push(e),this.onThemingParticipantAddedEmitter.fire(e),en(()=>{const t=this.themingParticipants.indexOf(e);this.themingParticipants.splice(t,1)})}getThemingParticipants(){return this.themingParticipants}}const q1e=new h1t;xo.add($1e.ThemingContribution,q1e);function kc(n){return q1e.onColorThemeChange(n)}class g1t extends De{constructor(e){super(),this.themeService=e,this.theme=e.getColorTheme(),this._register(this.themeService.onDidColorThemeChange(t=>this.onThemeChange(t)))}onThemeChange(e){this.theme=e,this.updateStyles()}updateStyles(){}}const eCe=re("editor.lineHighlightBackground",{dark:null,light:null,hcDark:null,hcLight:null},x("lineHighlight","Background color for the highlight of line at the cursor position.")),tCe=re("editor.lineHighlightBorder",{dark:"#282828",light:"#eeeeee",hcDark:"#f38518",hcLight:jn},x("lineHighlightBorderBox","Background color for the border around the line at the cursor position."));re("editor.rangeHighlightBackground",{dark:"#ffffff0b",light:"#fdff0033",hcDark:null,hcLight:null},x("rangeHighlight","Background color of highlighted ranges, like by quick open and find features. The color must not be opaque so as not to hide underlying decorations."),!0),re("editor.rangeHighlightBorder",{dark:null,light:null,hcDark:dr,hcLight:dr},x("rangeHighlightBorder","Background color of the border around highlighted ranges."),!0),re("editor.symbolHighlightBackground",{dark:kf,light:kf,hcDark:null,hcLight:null},x("symbolHighlight","Background color of highlighted symbol, like for go to definition or go next/previous symbol. The color must not be opaque so as not to hide underlying decorations."),!0),re("editor.symbolHighlightBorder",{dark:null,light:null,hcDark:dr,hcLight:dr},x("symbolHighlightBorder","Background color of the border around highlighted symbols."),!0);const nCe=re("editorCursor.foreground",{dark:"#AEAFAD",light:Ee.black,hcDark:Ee.white,hcLight:"#0F4A85"},x("caret","Color of the editor cursor.")),m1t=re("editorCursor.background",null,x("editorCursorBackground","The background color of the editor cursor. Allows customizing the color of a character overlapped by a block cursor.")),Ef=re("editorWhitespace.foreground",{dark:"#e3e4e229",light:"#33333333",hcDark:"#e3e4e229",hcLight:"#CCCCCC"},x("editorWhitespaces","Color of whitespace characters in the editor.")),f1t=re("editorLineNumber.foreground",{dark:"#858585",light:"#237893",hcDark:Ee.white,hcLight:"#292929"},x("editorLineNumbers","Color of editor line numbers.")),WT=re("editorIndentGuide.background",{dark:Ef,light:Ef,hcDark:Ef,hcLight:Ef},x("editorIndentGuides","Color of the editor indentation guides."),!1,x("deprecatedEditorIndentGuides","'editorIndentGuide.background' is deprecated. Use 'editorIndentGuide.background1' instead.")),RT=re("editorIndentGuide.activeBackground",{dark:Ef,light:Ef,hcDark:Ef,hcLight:Ef},x("editorActiveIndentGuide","Color of the active editor indentation guides."),!1,x("deprecatedEditorActiveIndentGuide","'editorIndentGuide.activeBackground' is deprecated. Use 'editorIndentGuide.activeBackground1' instead.")),b_=re("editorIndentGuide.background1",{dark:WT,light:WT,hcDark:WT,hcLight:WT},x("editorIndentGuides1","Color of the editor indentation guides (1).")),p1t=re("editorIndentGuide.background2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorIndentGuides2","Color of the editor indentation guides (2).")),b1t=re("editorIndentGuide.background3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorIndentGuides3","Color of the editor indentation guides (3).")),C1t=re("editorIndentGuide.background4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorIndentGuides4","Color of the editor indentation guides (4).")),v1t=re("editorIndentGuide.background5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorIndentGuides5","Color of the editor indentation guides (5).")),y1t=re("editorIndentGuide.background6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorIndentGuides6","Color of the editor indentation guides (6).")),C_=re("editorIndentGuide.activeBackground1",{dark:RT,light:RT,hcDark:RT,hcLight:RT},x("editorActiveIndentGuide1","Color of the active editor indentation guides (1).")),I1t=re("editorIndentGuide.activeBackground2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorActiveIndentGuide2","Color of the active editor indentation guides (2).")),w1t=re("editorIndentGuide.activeBackground3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorActiveIndentGuide3","Color of the active editor indentation guides (3).")),S1t=re("editorIndentGuide.activeBackground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorActiveIndentGuide4","Color of the active editor indentation guides (4).")),x1t=re("editorIndentGuide.activeBackground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorActiveIndentGuide5","Color of the active editor indentation guides (5).")),L1t=re("editorIndentGuide.activeBackground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorActiveIndentGuide6","Color of the active editor indentation guides (6).")),GT=re("editorActiveLineNumber.foreground",{dark:"#c6c6c6",light:"#0B216F",hcDark:dr,hcLight:dr},x("editorActiveLineNumber","Color of editor active line number"),!1,x("deprecatedEditorActiveLineNumber","Id is deprecated. Use 'editorLineNumber.activeForeground' instead."));re("editorLineNumber.activeForeground",{dark:GT,light:GT,hcDark:GT,hcLight:GT},x("editorActiveLineNumber","Color of editor active line number"));const F1t=re("editorLineNumber.dimmedForeground",{dark:null,light:null,hcDark:null,hcLight:null},x("editorDimmedLineNumber","Color of the final editor line when editor.renderFinalNewline is set to dimmed."));re("editorRuler.foreground",{dark:"#5A5A5A",light:Ee.lightgrey,hcDark:Ee.white,hcLight:"#292929"},x("editorRuler","Color of the editor rulers.")),re("editorCodeLens.foreground",{dark:"#999999",light:"#919191",hcDark:"#999999",hcLight:"#292929"},x("editorCodeLensForeground","Foreground color of editor CodeLens")),re("editorBracketMatch.background",{dark:"#0064001a",light:"#0064001a",hcDark:"#0064001a",hcLight:"#0000"},x("editorBracketMatchBackground","Background color behind matching brackets")),re("editorBracketMatch.border",{dark:"#888",light:"#B9B9B9",hcDark:jn,hcLight:jn},x("editorBracketMatchBorder","Color for matching brackets boxes"));const _1t=re("editorOverviewRuler.border",{dark:"#7f7f7f4d",light:"#7f7f7f4d",hcDark:"#7f7f7f4d",hcLight:"#666666"},x("editorOverviewRulerBorder","Color of the overview ruler border.")),D1t=re("editorOverviewRuler.background",null,x("editorOverviewRulerBackground","Background color of the editor overview ruler."));re("editorGutter.background",{dark:es,light:es,hcDark:es,hcLight:es},x("editorGutter","Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.")),re("editorUnnecessaryCode.border",{dark:null,light:null,hcDark:Ee.fromHex("#fff").transparent(.8),hcLight:jn},x("unnecessaryCodeBorder","Border color of unnecessary (unused) source code in the editor."));const A1t=re("editorUnnecessaryCode.opacity",{dark:Ee.fromHex("#000a"),light:Ee.fromHex("#0007"),hcDark:null,hcLight:null},x("unnecessaryCodeOpacity",`Opacity of unnecessary (unused) source code in the editor. For example, "#000000c0" will render the code with 75% opacity. For high contrast themes, use the 'editorUnnecessaryCode.border' theme color to underline unnecessary code instead of fading it out.`));re("editorGhostText.border",{dark:null,light:null,hcDark:Ee.fromHex("#fff").transparent(.8),hcLight:Ee.fromHex("#292929").transparent(.8)},x("editorGhostTextBorder","Border color of ghost text in the editor.")),re("editorGhostText.foreground",{dark:Ee.fromHex("#ffffff56"),light:Ee.fromHex("#0007"),hcDark:null,hcLight:null},x("editorGhostTextForeground","Foreground color of the ghost text in the editor.")),re("editorGhostText.background",{dark:null,light:null,hcDark:null,hcLight:null},x("editorGhostTextBackground","Background color of the ghost text in the editor."));const VT=new Ee(new ii(0,122,204,.6)),N1t=re("editorOverviewRuler.rangeHighlightForeground",{dark:VT,light:VT,hcDark:VT,hcLight:VT},x("overviewRulerRangeHighlight","Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations."),!0),k1t=re("editorOverviewRuler.errorForeground",{dark:new Ee(new ii(255,18,18,.7)),light:new Ee(new ii(255,18,18,.7)),hcDark:new Ee(new ii(255,50,50,1)),hcLight:"#B5200D"},x("overviewRuleError","Overview ruler marker color for errors.")),M1t=re("editorOverviewRuler.warningForeground",{dark:Sa,light:Sa,hcDark:o_,hcLight:o_},x("overviewRuleWarning","Overview ruler marker color for warnings.")),Z1t=re("editorOverviewRuler.infoForeground",{dark:Tl,light:Tl,hcDark:s_,hcLight:s_},x("overviewRuleInfo","Overview ruler marker color for infos.")),iCe=re("editorBracketHighlight.foreground1",{dark:"#FFD700",light:"#0431FAFF",hcDark:"#FFD700",hcLight:"#0431FAFF"},x("editorBracketHighlightForeground1","Foreground color of brackets (1). Requires enabling bracket pair colorization.")),rCe=re("editorBracketHighlight.foreground2",{dark:"#DA70D6",light:"#319331FF",hcDark:"#DA70D6",hcLight:"#319331FF"},x("editorBracketHighlightForeground2","Foreground color of brackets (2). Requires enabling bracket pair colorization.")),oCe=re("editorBracketHighlight.foreground3",{dark:"#179FFF",light:"#7B3814FF",hcDark:"#87CEFA",hcLight:"#7B3814FF"},x("editorBracketHighlightForeground3","Foreground color of brackets (3). Requires enabling bracket pair colorization.")),sCe=re("editorBracketHighlight.foreground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorBracketHighlightForeground4","Foreground color of brackets (4). Requires enabling bracket pair colorization.")),aCe=re("editorBracketHighlight.foreground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorBracketHighlightForeground5","Foreground color of brackets (5). Requires enabling bracket pair colorization.")),lCe=re("editorBracketHighlight.foreground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorBracketHighlightForeground6","Foreground color of brackets (6). Requires enabling bracket pair colorization.")),T1t=re("editorBracketHighlight.unexpectedBracket.foreground",{dark:new Ee(new ii(255,18,18,.8)),light:new Ee(new ii(255,18,18,.8)),hcDark:new Ee(new ii(255,50,50,1)),hcLight:""},x("editorBracketHighlightUnexpectedBracketForeground","Foreground color of unexpected brackets.")),E1t=re("editorBracketPairGuide.background1",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorBracketPairGuide.background1","Background color of inactive bracket pair guides (1). Requires enabling bracket pair guides.")),W1t=re("editorBracketPairGuide.background2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorBracketPairGuide.background2","Background color of inactive bracket pair guides (2). Requires enabling bracket pair guides.")),R1t=re("editorBracketPairGuide.background3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorBracketPairGuide.background3","Background color of inactive bracket pair guides (3). Requires enabling bracket pair guides.")),G1t=re("editorBracketPairGuide.background4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorBracketPairGuide.background4","Background color of inactive bracket pair guides (4). Requires enabling bracket pair guides.")),V1t=re("editorBracketPairGuide.background5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorBracketPairGuide.background5","Background color of inactive bracket pair guides (5). Requires enabling bracket pair guides.")),X1t=re("editorBracketPairGuide.background6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorBracketPairGuide.background6","Background color of inactive bracket pair guides (6). Requires enabling bracket pair guides.")),P1t=re("editorBracketPairGuide.activeBackground1",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorBracketPairGuide.activeBackground1","Background color of active bracket pair guides (1). Requires enabling bracket pair guides.")),O1t=re("editorBracketPairGuide.activeBackground2",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorBracketPairGuide.activeBackground2","Background color of active bracket pair guides (2). Requires enabling bracket pair guides.")),B1t=re("editorBracketPairGuide.activeBackground3",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorBracketPairGuide.activeBackground3","Background color of active bracket pair guides (3). Requires enabling bracket pair guides.")),z1t=re("editorBracketPairGuide.activeBackground4",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorBracketPairGuide.activeBackground4","Background color of active bracket pair guides (4). Requires enabling bracket pair guides.")),Y1t=re("editorBracketPairGuide.activeBackground5",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorBracketPairGuide.activeBackground5","Background color of active bracket pair guides (5). Requires enabling bracket pair guides.")),H1t=re("editorBracketPairGuide.activeBackground6",{dark:"#00000000",light:"#00000000",hcDark:"#00000000",hcLight:"#00000000"},x("editorBracketPairGuide.activeBackground6","Background color of active bracket pair guides (6). Requires enabling bracket pair guides."));re("editorUnicodeHighlight.border",{dark:Sa,light:Sa,hcDark:Sa,hcLight:Sa},x("editorUnicodeHighlight.border","Border color used to highlight unicode characters.")),re("editorUnicodeHighlight.background",{dark:vT,light:vT,hcDark:vT,hcLight:vT},x("editorUnicodeHighlight.background","Background color used to highlight unicode characters.")),kc((n,e)=>{const t=n.getColor(es),i=n.getColor(eCe),r=i&&!i.isTransparent()?i:t;r&&e.addRule(`.monaco-editor .inputarea.ime-input { background-color: ${r}; }`)});class v_ extends JC{constructor(e){super(),this._context=e,this._readConfig(),this._lastCursorModelPosition=new ve(1,1),this._renderResult=null,this._activeLineNumber=1,this._context.addEventHandler(this)}_readConfig(){const e=this._context.configuration.options;this._lineHeight=e.get(67);const t=e.get(68);this._renderLineNumbers=t.renderType,this._renderCustomLineNumbers=t.renderFn,this._renderFinalNewline=e.get(95);const i=e.get(144);this._lineNumbersLeft=i.lineNumbersLeft,this._lineNumbersWidth=i.lineNumbersWidth}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){return this._readConfig(),!0}onCursorStateChanged(e){const t=e.selections[0].getPosition();this._lastCursorModelPosition=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(t);let i=!1;return this._activeLineNumber!==t.lineNumber&&(this._activeLineNumber=t.lineNumber,i=!0),(this._renderLineNumbers===2||this._renderLineNumbers===3)&&(i=!0),i}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}onDecorationsChanged(e){return e.affectsLineNumber}_getLineRenderLineNumber(e){const t=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new ve(e,1));if(t.column!==1)return"";const i=t.lineNumber;if(this._renderCustomLineNumbers)return this._renderCustomLineNumbers(i);if(this._renderLineNumbers===2){const r=Math.abs(this._lastCursorModelPosition.lineNumber-i);return r===0?''+i+"":String(r)}return this._renderLineNumbers===3?this._lastCursorModelPosition.lineNumber===i||i%10===0?String(i):"":String(i)}prepareRender(e){if(this._renderLineNumbers===0){this._renderResult=null;return}const t=Ha?this._lineHeight%2===0?" lh-even":" lh-odd":"",i=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,o=this._context.viewModel.getDecorationsInViewport(e.visibleRange).filter(u=>!!u.options.lineNumberClassName);o.sort((u,c)=>K.compareRangesUsingEnds(u.range,c.range));let s=0;const a=this._context.viewModel.getLineCount(),l=[];for(let u=i;u<=r;u++){const c=u-i;let d=this._getLineRenderLineNumber(u),h="";for(;s${d}`}this._renderResult=l}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}v_.CLASS_NAME="line-numbers",kc((n,e)=>{const t=n.getColor(f1t),i=n.getColor(F1t);i?e.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${i}; }`):t&&e.addRule(`.monaco-editor .line-numbers.dimmed-line-number { color: ${t.transparent(.4)}; }`)});class KC extends lu{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(144);this._canUseLayerHinting=!t.get(32),this._contentLeft=i.contentLeft,this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,this._domNode=Si(document.createElement("div")),this._domNode.setClassName(KC.OUTER_CLASS_NAME),this._domNode.setPosition("absolute"),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._glyphMarginBackgroundDomNode=Si(document.createElement("div")),this._glyphMarginBackgroundDomNode.setClassName(KC.CLASS_NAME),this._domNode.appendChild(this._glyphMarginBackgroundDomNode)}dispose(){super.dispose()}getDomNode(){return this._domNode}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(144);return this._canUseLayerHinting=!t.get(32),this._contentLeft=i.contentLeft,this._glyphMarginLeft=i.glyphMarginLeft,this._glyphMarginWidth=i.glyphMarginWidth,!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollTopChanged}prepareRender(e){}render(e){this._domNode.setLayerHinting(this._canUseLayerHinting),this._domNode.setContain("strict");const t=e.scrollTop-e.bigNumbersDelta;this._domNode.setTop(-t);const i=Math.min(e.scrollHeight,1e6);this._domNode.setHeight(i),this._domNode.setWidth(this._contentLeft),this._glyphMarginBackgroundDomNode.setLeft(this._glyphMarginLeft),this._glyphMarginBackgroundDomNode.setWidth(this._glyphMarginWidth),this._glyphMarginBackgroundDomNode.setHeight(i)}}KC.CLASS_NAME="glyph-margin",KC.OUTER_CLASS_NAME="margin";const V2="monaco-mouse-cursor-text";let U1t=class{constructor(){this._tokenizationSupports=new Map,this._factories=new Map,this._onDidChange=new be,this.onDidChange=this._onDidChange.event,this._colorMap=null}handleChange(e){this._onDidChange.fire({changedLanguages:e,changedColorMap:!1})}register(e,t){return this._tokenizationSupports.set(e,t),this.handleChange([e]),en(()=>{this._tokenizationSupports.get(e)===t&&(this._tokenizationSupports.delete(e),this.handleChange([e]))})}get(e){return this._tokenizationSupports.get(e)||null}registerFactory(e,t){var i;(i=this._factories.get(e))===null||i===void 0||i.dispose();const r=new J1t(this,e,t);return this._factories.set(e,r),en(()=>{const o=this._factories.get(e);!o||o!==r||(this._factories.delete(e),o.dispose())})}async getOrCreate(e){const t=this.get(e);if(t)return t;const i=this._factories.get(e);return!i||i.isResolved?null:(await i.resolve(),this.get(e))}isResolved(e){if(this.get(e))return!0;const i=this._factories.get(e);return!!(!i||i.isResolved)}setColorMap(e){this._colorMap=e,this._onDidChange.fire({changedLanguages:Array.from(this._tokenizationSupports.keys()),changedColorMap:!0})}getColorMap(){return this._colorMap}getDefaultBackground(){return this._colorMap&&this._colorMap.length>2?this._colorMap[2]:null}};class J1t extends De{get isResolved(){return this._isResolved}constructor(e,t,i){super(),this._registry=e,this._languageId=t,this._factory=i,this._isDisposed=!1,this._resolvePromise=null,this._isResolved=!1}dispose(){this._isDisposed=!0,super.dispose()}async resolve(){return this._resolvePromise||(this._resolvePromise=this._create()),this._resolvePromise}async _create(){const e=await this._factory.tokenizationSupport;this._isResolved=!0,e&&!this._isDisposed&&this._register(this._registry.register(this._languageId,e))}}let y_=class{constructor(e,t,i){this.offset=e,this.type=t,this.language=i,this._tokenBrand=void 0}toString(){return"("+this.offset+", "+this.type+")"}};class t6{constructor(e,t){this.tokens=e,this.endState=t,this._tokenizationResultBrand=void 0}}class XT{constructor(e,t){this.tokens=e,this.endState=t,this._encodedTokenizationResultBrand=void 0}}var I_;(function(n){const e=new Map;e.set(0,ct.symbolMethod),e.set(1,ct.symbolFunction),e.set(2,ct.symbolConstructor),e.set(3,ct.symbolField),e.set(4,ct.symbolVariable),e.set(5,ct.symbolClass),e.set(6,ct.symbolStruct),e.set(7,ct.symbolInterface),e.set(8,ct.symbolModule),e.set(9,ct.symbolProperty),e.set(10,ct.symbolEvent),e.set(11,ct.symbolOperator),e.set(12,ct.symbolUnit),e.set(13,ct.symbolValue),e.set(15,ct.symbolEnum),e.set(14,ct.symbolConstant),e.set(15,ct.symbolEnum),e.set(16,ct.symbolEnumMember),e.set(17,ct.symbolKeyword),e.set(27,ct.symbolSnippet),e.set(18,ct.symbolText),e.set(19,ct.symbolColor),e.set(20,ct.symbolFile),e.set(21,ct.symbolReference),e.set(22,ct.symbolCustomColor),e.set(23,ct.symbolFolder),e.set(24,ct.symbolTypeParameter),e.set(25,ct.account),e.set(26,ct.issues);function t(o){let s=e.get(o);return s||(s=ct.symbolProperty),s}n.toIcon=t;const i=new Map;i.set("method",0),i.set("function",1),i.set("constructor",2),i.set("field",3),i.set("variable",4),i.set("class",5),i.set("struct",6),i.set("interface",7),i.set("module",8),i.set("property",9),i.set("event",10),i.set("operator",11),i.set("unit",12),i.set("value",13),i.set("constant",14),i.set("enum",15),i.set("enum-member",16),i.set("enumMember",16),i.set("keyword",17),i.set("snippet",27),i.set("text",18),i.set("color",19),i.set("file",20),i.set("reference",21),i.set("customcolor",22),i.set("folder",23),i.set("type-parameter",24),i.set("typeParameter",24),i.set("account",25),i.set("issue",26);function r(o,s){let a=i.get(o);return typeof a>"u"&&!s&&(a=9),a}n.fromString=r})(I_||(I_={}));var Wf;(function(n){n[n.Automatic=0]="Automatic",n[n.Explicit=1]="Explicit"})(Wf||(Wf={}));class uCe{constructor(e,t,i,r){this.range=e,this.text=t,this.completionKind=i,this.isSnippetText=r}equals(e){return K.lift(this.range).equalsRange(e.range)&&this.text===e.text&&this.completionKind===e.completionKind&&this.isSnippetText===e.isSnippetText}}var jg;(function(n){n[n.Invoke=1]="Invoke",n[n.TriggerCharacter=2]="TriggerCharacter",n[n.ContentChange=3]="ContentChange"})(jg||(jg={}));var w_;(function(n){n[n.Text=0]="Text",n[n.Read=1]="Read",n[n.Write=2]="Write"})(w_||(w_={}));function K1t(n){return n&&$t.isUri(n.uri)&&K.isIRange(n.range)&&(K.isIRange(n.originSelectionRange)||K.isIRange(n.targetSelectionRange))}x("Array","array"),x("Boolean","boolean"),x("Class","class"),x("Constant","constant"),x("Constructor","constructor"),x("Enum","enumeration"),x("EnumMember","enumeration member"),x("Event","event"),x("Field","field"),x("File","file"),x("Function","function"),x("Interface","interface"),x("Key","key"),x("Method","method"),x("Module","module"),x("Namespace","namespace"),x("Null","null"),x("Number","number"),x("Object","object"),x("Operator","operator"),x("Package","package"),x("Property","property"),x("String","string"),x("Struct","struct"),x("TypeParameter","type parameter"),x("Variable","variable");var n6;(function(n){const e=new Map;e.set(0,ct.symbolFile),e.set(1,ct.symbolModule),e.set(2,ct.symbolNamespace),e.set(3,ct.symbolPackage),e.set(4,ct.symbolClass),e.set(5,ct.symbolMethod),e.set(6,ct.symbolProperty),e.set(7,ct.symbolField),e.set(8,ct.symbolConstructor),e.set(9,ct.symbolEnum),e.set(10,ct.symbolInterface),e.set(11,ct.symbolFunction),e.set(12,ct.symbolVariable),e.set(13,ct.symbolConstant),e.set(14,ct.symbolString),e.set(15,ct.symbolNumber),e.set(16,ct.symbolBoolean),e.set(17,ct.symbolArray),e.set(18,ct.symbolObject),e.set(19,ct.symbolKey),e.set(20,ct.symbolNull),e.set(21,ct.symbolEnumMember),e.set(22,ct.symbolStruct),e.set(23,ct.symbolEvent),e.set(24,ct.symbolOperator),e.set(25,ct.symbolTypeParameter);function t(i){let r=e.get(i);return r||(r=ct.symbolProperty),r}n.toIcon=t})(n6||(n6={}));let xd=class ok{static fromValue(e){switch(e){case"comment":return ok.Comment;case"imports":return ok.Imports;case"region":return ok.Region}return new ok(e)}constructor(e){this.value=e}};xd.Comment=new xd("comment"),xd.Imports=new xd("imports"),xd.Region=new xd("region");var cCe;(function(n){n[n.AIGenerated=1]="AIGenerated"})(cCe||(cCe={}));var i6;(function(n){function e(t){return!t||typeof t!="object"?!1:typeof t.id=="string"&&typeof t.title=="string"}n.is=e})(i6||(i6={}));var PT;(function(n){n[n.Type=1]="Type",n[n.Parameter=2]="Parameter"})(PT||(PT={}));class j1t{constructor(e){this.createSupport=e,this._tokenizationSupport=null}dispose(){this._tokenizationSupport&&this._tokenizationSupport.then(e=>{e&&e.dispose()})}get tokenizationSupport(){return this._tokenizationSupport||(this._tokenizationSupport=this.createSupport()),this._tokenizationSupport}}const mo=new U1t;var OT;(function(n){n[n.Invoke=0]="Invoke",n[n.Automatic=1]="Automatic"})(OT||(OT={}));class Q1t{constructor(){this._onDidChange=new be,this.onDidChange=this._onDidChange.event,this._enabled=!0}get enabled(){return this._enabled}enable(){this._enabled=!0,this._onDidChange.fire()}disable(){this._enabled=!1,this._onDidChange.fire()}}const S_=new Q1t,Pi=Un("keybindingService");var $1t=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},dCe=function(n,e){return function(t,i){e(t,i,n)}};class q1t{constructor(e,t,i,r,o){this._context=e,this.modelLineNumber=t,this.distanceToModelLineStart=i,this.widthOfHiddenLineTextBefore=r,this.distanceToModelLineEnd=o,this._visibleTextAreaBrand=void 0,this.startPosition=null,this.endPosition=null,this.visibleTextareaStart=null,this.visibleTextareaEnd=null,this._previousPresentation=null}prepareRender(e){const t=new ve(this.modelLineNumber,this.distanceToModelLineStart+1),i=new ve(this.modelLineNumber,this._context.viewModel.model.getLineMaxColumn(this.modelLineNumber)-this.distanceToModelLineEnd);this.startPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(t),this.endPosition=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i),this.startPosition.lineNumber===this.endPosition.lineNumber?(this.visibleTextareaStart=e.visibleRangeForPosition(this.startPosition),this.visibleTextareaEnd=e.visibleRangeForPosition(this.endPosition)):(this.visibleTextareaStart=null,this.visibleTextareaEnd=null)}definePresentation(e){return this._previousPresentation||(e?this._previousPresentation=e:this._previousPresentation={foreground:1,italic:!1,bold:!1,underline:!1,strikethrough:!1}),this._previousPresentation}}const r6=vc;let o6=class extends lu{constructor(e,t,i,r,o){super(e),this._keybindingService=r,this._instantiationService=o,this._primaryCursorPosition=new ve(1,1),this._primaryCursorVisibleRange=null,this._viewController=t,this._visibleRangeProvider=i,this._scrollLeft=0,this._scrollTop=0;const s=this._context.configuration.options,a=s.get(144);this._setAccessibilityOptions(s),this._contentLeft=a.contentLeft,this._contentWidth=a.contentWidth,this._contentHeight=a.height,this._fontInfo=s.get(50),this._lineHeight=s.get(67),this._emptySelectionClipboard=s.get(37),this._copyWithSyntaxHighlighting=s.get(25),this._visibleTextArea=null,this._selections=[new Gt(1,1,1,1)],this._modelSelections=[new Gt(1,1,1,1)],this._lastRenderPosition=null,this.textArea=Si(document.createElement("textarea")),Dh.write(this.textArea,7),this.textArea.setClassName(`inputarea ${V2}`),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:l}=this._context.viewModel.model.getOptions();this.textArea.domNode.style.tabSize=`${l*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute("autocorrect","off"),this.textArea.setAttribute("autocapitalize","off"),this.textArea.setAttribute("autocomplete","off"),this.textArea.setAttribute("spellcheck","false"),this.textArea.setAttribute("aria-label",this._getAriaLabel(s)),this.textArea.setAttribute("aria-required",s.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(s.get(124))),this.textArea.setAttribute("role","textbox"),this.textArea.setAttribute("aria-roledescription",x("editor","editor")),this.textArea.setAttribute("aria-multiline","true"),this.textArea.setAttribute("aria-autocomplete",s.get(91)?"none":"both"),this._ensureReadOnlyAttribute(),this.textAreaCover=Si(document.createElement("div")),this.textAreaCover.setPosition("absolute");const u={getLineCount:()=>this._context.viewModel.getLineCount(),getLineMaxColumn:h=>this._context.viewModel.getLineMaxColumn(h),getValueInRange:(h,g)=>this._context.viewModel.getValueInRange(h,g),getValueLengthInRange:(h,g)=>this._context.viewModel.getValueLengthInRange(h,g),modifyPosition:(h,g)=>this._context.viewModel.modifyPosition(h,g)},c={getDataToCopy:()=>{const h=this._context.viewModel.getPlainTextToCopy(this._modelSelections,this._emptySelectionClipboard,ya),g=this._context.viewModel.model.getEOL(),m=this._emptySelectionClipboard&&this._modelSelections.length===1&&this._modelSelections[0].isEmpty(),f=Array.isArray(h)?h:null,b=Array.isArray(h)?h.join(g):h;let C,v=null;if(QH.forceCopyWithSyntaxHighlighting||this._copyWithSyntaxHighlighting&&b.length<65536){const w=this._context.viewModel.getRichTextToCopy(this._modelSelections,this._emptySelectionClipboard);w&&(C=w.html,v=w.mode)}return{isFromEmptySelection:m,multicursorText:f,text:b,html:C,mode:v}},getScreenReaderContent:()=>{if(this._accessibilitySupport===1){const h=this._selections[0];if($n&&h.isEmpty()){const m=h.getStartPosition();let f=this._getWordBeforePosition(m);if(f.length===0&&(f=this._getCharacterBeforePosition(m)),f.length>0)return new As(f,f.length,f.length,K.fromPositions(m),0)}if($n&&!h.isEmpty()&&u.getValueLengthInRange(h,0)<500){const m=u.getValueInRange(h,0);return new As(m,0,m.length,h,0)}if(df&&!h.isEmpty()){const m="vscode-placeholder";return new As(m,0,m.length,null,void 0)}return As.EMPTY}if(Epe){const h=this._selections[0];if(h.isEmpty()){const g=h.getStartPosition(),[m,f]=this._getAndroidWordAtPosition(g);if(m.length>0)return new As(m,f,f,K.fromPositions(g),0)}return As.EMPTY}return G2.fromEditorSelection(u,this._selections[0],this._accessibilityPageSize,this._accessibilitySupport===0)},deduceModelPosition:(h,g,m)=>this._context.viewModel.deduceModelPositionRelativeToViewPosition(h,g,m)},d=this._register(new l1t(this.textArea.domNode));this._textAreaInput=this._register(this._instantiationService.createInstance($H,c,d,eu,{isAndroid:Epe,isChrome:xF,isFirefox:vc,isSafari:df})),this._register(this._textAreaInput.onKeyDown(h=>{this._viewController.emitKeyDown(h)})),this._register(this._textAreaInput.onKeyUp(h=>{this._viewController.emitKeyUp(h)})),this._register(this._textAreaInput.onPaste(h=>{let g=!1,m=null,f=null;h.metadata&&(g=this._emptySelectionClipboard&&!!h.metadata.isFromEmptySelection,m=typeof h.metadata.multicursorText<"u"?h.metadata.multicursorText:null,f=h.metadata.mode),this._viewController.paste(h.text,g,m,f)})),this._register(this._textAreaInput.onCut(()=>{this._viewController.cut()})),this._register(this._textAreaInput.onType(h=>{h.replacePrevCharCnt||h.replaceNextCharCnt||h.positionDelta?this._viewController.compositionType(h.text,h.replacePrevCharCnt,h.replaceNextCharCnt,h.positionDelta):this._viewController.type(h.text)})),this._register(this._textAreaInput.onSelectionChangeRequest(h=>{this._viewController.setSelection(h)})),this._register(this._textAreaInput.onCompositionStart(h=>{const g=this.textArea.domNode,m=this._modelSelections[0],{distanceToModelLineStart:f,widthOfHiddenTextBefore:b}=(()=>{const v=g.value.substring(0,Math.min(g.selectionStart,g.selectionEnd)),w=v.lastIndexOf(` +`),S=v.substring(w+1),F=S.lastIndexOf(" "),L=S.length-F-1,D=m.getStartPosition(),A=Math.min(D.column-1,L),M=D.column-1-A,W=S.substring(0,S.length-A),{tabSize:Z}=this._context.viewModel.model.getOptions(),T=eCt(this.textArea.domNode.ownerDocument,W,this._fontInfo,Z);return{distanceToModelLineStart:M,widthOfHiddenTextBefore:T}})(),{distanceToModelLineEnd:C}=(()=>{const v=g.value.substring(Math.max(g.selectionStart,g.selectionEnd)),w=v.indexOf(` +`),S=w===-1?v:v.substring(0,w),F=S.indexOf(" "),L=F===-1?S.length:S.length-F-1,D=m.getEndPosition(),A=Math.min(this._context.viewModel.model.getLineMaxColumn(D.lineNumber)-D.column,L);return{distanceToModelLineEnd:this._context.viewModel.model.getLineMaxColumn(D.lineNumber)-D.column-A}})();this._context.viewModel.revealRange("keyboard",!0,K.fromPositions(this._selections[0].getStartPosition()),0,1),this._visibleTextArea=new q1t(this._context,m.startLineNumber,f,b,C),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render(),this.textArea.setClassName(`inputarea ${V2} ime-input`),this._viewController.compositionStart(),this._context.viewModel.onCompositionStart()})),this._register(this._textAreaInput.onCompositionUpdate(h=>{this._visibleTextArea&&(this._visibleTextArea.prepareRender(this._visibleRangeProvider),this._render())})),this._register(this._textAreaInput.onCompositionEnd(()=>{this._visibleTextArea=null,this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off"),this._render(),this.textArea.setClassName(`inputarea ${V2}`),this._viewController.compositionEnd(),this._context.viewModel.onCompositionEnd()})),this._register(this._textAreaInput.onFocus(()=>{this._context.viewModel.setHasFocus(!0)})),this._register(this._textAreaInput.onBlur(()=>{this._context.viewModel.setHasFocus(!1)})),this._register(S_.onDidChange(()=>{this._ensureReadOnlyAttribute()}))}writeScreenReaderContent(e){this._textAreaInput.writeNativeTextAreaContent(e)}dispose(){super.dispose()}_getAndroidWordAtPosition(e){const t='`~!@#$%^&*()-=+[{]}\\|;:",.<>/?',i=this._context.viewModel.getLineContent(e.lineNumber),r=xc(t);let o=!0,s=e.column,a=!0,l=e.column,u=0;for(;u<50&&(o||a);){if(o&&s<=1&&(o=!1),o){const c=i.charCodeAt(s-2);r.get(c)!==0?o=!1:s--}if(a&&l>i.length&&(a=!1),a){const c=i.charCodeAt(l-1);r.get(c)!==0?a=!1:l++}u++}return[i.substring(s-1,l-1),e.column-s]}_getWordBeforePosition(e){const t=this._context.viewModel.getLineContent(e.lineNumber),i=xc(this._context.configuration.options.get(130));let r=e.column,o=0;for(;r>1;){const s=t.charCodeAt(r-2);if(i.get(s)!==0||o>50)return t.substring(r-1,e.column-1);o++,r--}return t.substring(0,e.column-1)}_getCharacterBeforePosition(e){if(e.column>1){const i=this._context.viewModel.getLineContent(e.lineNumber).charAt(e.column-2);if(!qo(i.charCodeAt(0)))return i}return""}_getAriaLabel(e){var t,i,r;if(e.get(2)===1){const s=(t=this._keybindingService.lookupKeybinding("editor.action.toggleScreenReaderAccessibilityMode"))===null||t===void 0?void 0:t.getAriaLabel(),a=(i=this._keybindingService.lookupKeybinding("workbench.action.showCommands"))===null||i===void 0?void 0:i.getAriaLabel(),l=(r=this._keybindingService.lookupKeybinding("workbench.action.openGlobalKeybindings"))===null||r===void 0?void 0:r.getAriaLabel(),u=x("accessibilityModeOff","The editor is not accessible at this time.");return s?x("accessibilityOffAriaLabel","{0} To enable screen reader optimized mode, use {1}",u,s):a?x("accessibilityOffAriaLabelNoKb","{0} To enable screen reader optimized mode, open the quick pick with {1} and run the command Toggle Screen Reader Accessibility Mode, which is currently not triggerable via keyboard.",u,a):l?x("accessibilityOffAriaLabelNoKbs","{0} Please assign a keybinding for the command Toggle Screen Reader Accessibility Mode by accessing the keybindings editor with {1} and run it.",u,l):u}return e.get(4)}_setAccessibilityOptions(e){this._accessibilitySupport=e.get(2);const t=e.get(3);this._accessibilitySupport===2&&t===xh.accessibilityPageSize.defaultValue?this._accessibilityPageSize=500:this._accessibilityPageSize=t;const r=e.get(144).wrappingColumn;if(r!==-1&&this._accessibilitySupport!==1){const o=e.get(50);this._textAreaWrapping=!0,this._textAreaWidth=Math.round(r*o.typicalHalfwidthCharacterWidth)}else this._textAreaWrapping=!1,this._textAreaWidth=r6?0:1}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(144);this._setAccessibilityOptions(t),this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._contentHeight=i.height,this._fontInfo=t.get(50),this._lineHeight=t.get(67),this._emptySelectionClipboard=t.get(37),this._copyWithSyntaxHighlighting=t.get(25),this.textArea.setAttribute("wrap",this._textAreaWrapping&&!this._visibleTextArea?"on":"off");const{tabSize:r}=this._context.viewModel.model.getOptions();return this.textArea.domNode.style.tabSize=`${r*this._fontInfo.spaceWidth}px`,this.textArea.setAttribute("aria-label",this._getAriaLabel(t)),this.textArea.setAttribute("aria-required",t.get(5)?"true":"false"),this.textArea.setAttribute("tabindex",String(t.get(124))),(e.hasChanged(34)||e.hasChanged(91))&&this._ensureReadOnlyAttribute(),e.hasChanged(2)&&this._textAreaInput.writeNativeTextAreaContent("strategy changed"),!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),this._modelSelections=e.modelSelections.slice(0),this._textAreaInput.writeNativeTextAreaContent("selection changed"),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return this._scrollLeft=e.scrollLeft,this._scrollTop=e.scrollTop,!0}onZonesChanged(e){return!0}isFocused(){return this._textAreaInput.isFocused()}focusTextArea(){this._textAreaInput.focusTextArea()}getLastRenderData(){return this._lastRenderPosition}setAriaOptions(e){e.activeDescendant?(this.textArea.setAttribute("aria-haspopup","true"),this.textArea.setAttribute("aria-autocomplete","list"),this.textArea.setAttribute("aria-activedescendant",e.activeDescendant)):(this.textArea.setAttribute("aria-haspopup","false"),this.textArea.setAttribute("aria-autocomplete","both"),this.textArea.removeAttribute("aria-activedescendant")),e.role&&this.textArea.setAttribute("role",e.role)}_ensureReadOnlyAttribute(){const e=this._context.configuration.options;!S_.enabled||e.get(34)&&e.get(91)?this.textArea.setAttribute("readonly","true"):this.textArea.removeAttribute("readonly")}prepareRender(e){var t;this._primaryCursorPosition=new ve(this._selections[0].positionLineNumber,this._selections[0].positionColumn),this._primaryCursorVisibleRange=e.visibleRangeForPosition(this._primaryCursorPosition),(t=this._visibleTextArea)===null||t===void 0||t.prepareRender(e)}render(e){this._textAreaInput.writeNativeTextAreaContent("render"),this._render()}_render(){var e;if(this._visibleTextArea){const r=this._visibleTextArea.visibleTextareaStart,o=this._visibleTextArea.visibleTextareaEnd,s=this._visibleTextArea.startPosition,a=this._visibleTextArea.endPosition;if(s&&a&&r&&o&&o.left>=this._scrollLeft&&r.left<=this._scrollLeft+this._contentWidth){const l=this._context.viewLayout.getVerticalOffsetForLineNumber(this._primaryCursorPosition.lineNumber)-this._scrollTop,u=this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));let c=this._visibleTextArea.widthOfHiddenLineTextBefore,d=this._contentLeft+r.left-this._scrollLeft,h=o.left-r.left+1;if(dthis._contentWidth&&(h=this._contentWidth);const g=this._context.viewModel.getViewLineData(s.lineNumber),m=g.tokens.findTokenIndexAtOffset(s.column-1),f=g.tokens.findTokenIndexAtOffset(a.column-1),b=m===f,C=this._visibleTextArea.definePresentation(b?g.tokens.getPresentation(m):null);this.textArea.domNode.scrollTop=u*this._lineHeight,this.textArea.domNode.scrollLeft=c,this._doRender({lastRenderPosition:null,top:l,left:d,width:h,height:this._lineHeight,useCover:!1,color:(mo.getColorMap()||[])[C.foreground],italic:C.italic,bold:C.bold,underline:C.underline,strikethrough:C.strikethrough})}return}if(!this._primaryCursorVisibleRange){this._renderAtTopLeft();return}const t=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(tthis._contentLeft+this._contentWidth){this._renderAtTopLeft();return}const i=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;if(i<0||i>this._contentHeight){this._renderAtTopLeft();return}if($n||this._accessibilitySupport===2){this._doRender({lastRenderPosition:this._primaryCursorPosition,top:i,left:this._textAreaWrapping?this._contentLeft:t,width:this._textAreaWidth,height:this._lineHeight,useCover:!1}),this.textArea.domNode.scrollLeft=this._primaryCursorVisibleRange.left;const r=(e=this._textAreaInput.textAreaState.newlineCountBeforeSelection)!==null&&e!==void 0?e:this._newlinecount(this.textArea.domNode.value.substr(0,this.textArea.domNode.selectionStart));this.textArea.domNode.scrollTop=r*this._lineHeight;return}this._doRender({lastRenderPosition:this._primaryCursorPosition,top:i,left:this._textAreaWrapping?this._contentLeft:t,width:this._textAreaWidth,height:r6?0:1,useCover:!1})}_newlinecount(e){let t=0,i=-1;do{if(i=e.indexOf(` +`,i+1),i===-1)break;t++}while(!0);return t}_renderAtTopLeft(){this._doRender({lastRenderPosition:null,top:0,left:0,width:this._textAreaWidth,height:r6?0:1,useCover:!0})}_doRender(e){this._lastRenderPosition=e.lastRenderPosition;const t=this.textArea,i=this.textAreaCover;Ks(t,this._fontInfo),t.setTop(e.top),t.setLeft(e.left),t.setWidth(e.width),t.setHeight(e.height),t.setColor(e.color?Ee.Format.CSS.formatHex(e.color):""),t.setFontStyle(e.italic?"italic":""),e.bold&&t.setFontWeight("bold"),t.setTextDecoration(`${e.underline?" underline":""}${e.strikethrough?" line-through":""}`),i.setTop(e.useCover?e.top:0),i.setLeft(e.useCover?e.left:0),i.setWidth(e.useCover?e.width:0),i.setHeight(e.useCover?e.height:0);const r=this._context.configuration.options;r.get(57)?i.setClassName("monaco-editor-background textAreaCover "+KC.OUTER_CLASS_NAME):r.get(68).renderType!==0?i.setClassName("monaco-editor-background textAreaCover "+v_.CLASS_NAME):i.setClassName("monaco-editor-background textAreaCover")}};o6=$1t([dCe(3,Pi),dCe(4,tn)],o6);function eCt(n,e,t,i){if(e.length===0)return 0;const r=n.createElement("div");r.style.position="absolute",r.style.top="-50000px",r.style.width="50000px";const o=n.createElement("span");Ks(o,t),o.style.whiteSpace="pre",o.style.tabSize=`${i*t.spaceWidth}px`,o.append(e),r.appendChild(o),n.body.appendChild(r);const s=o.offsetWidth;return n.body.removeChild(r),s}class tCt{constructor(e,t,i,r){this.configuration=e,this.viewModel=t,this.userInputEvents=i,this.commandDelegate=r}paste(e,t,i,r){this.commandDelegate.paste(e,t,i,r)}type(e){this.commandDelegate.type(e)}compositionType(e,t,i,r){this.commandDelegate.compositionType(e,t,i,r)}compositionStart(){this.commandDelegate.startComposition()}compositionEnd(){this.commandDelegate.endComposition()}cut(){this.commandDelegate.cut()}setSelection(e){ds.SetSelection.runCoreEditorCommand(this.viewModel,{source:"keyboard",selection:e})}_validateViewColumn(e){const t=this.viewModel.getLineMinColumn(e.lineNumber);return e.column=4?this._selectAll():e.mouseDownCount===3?this._hasMulticursorModifier(e)?e.inSelectionMode?this._lastCursorLineSelectDrag(e.position,e.revealType):this._lastCursorLineSelect(e.position,e.revealType):e.inSelectionMode?this._lineSelectDrag(e.position,e.revealType):this._lineSelect(e.position,e.revealType):e.mouseDownCount===2?e.onInjectedText||(this._hasMulticursorModifier(e)?this._lastCursorWordSelect(e.position,e.revealType):e.inSelectionMode?this._wordSelectDrag(e.position,e.revealType):this._wordSelect(e.position,e.revealType)):this._hasMulticursorModifier(e)?this._hasNonMulticursorModifier(e)||(e.shiftKey?this._columnSelect(e.position,e.mouseColumn,!0):e.inSelectionMode?this._lastCursorMoveToSelect(e.position,e.revealType):this._createCursor(e.position,!1)):e.inSelectionMode?e.altKey?this._columnSelect(e.position,e.mouseColumn,!0):r?this._columnSelect(e.position,e.mouseColumn,!0):this._moveToSelect(e.position,e.revealType):this.moveTo(e.position,e.revealType)}_usualArgs(e,t){return e=this._validateViewColumn(e),{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,revealType:t}}moveTo(e,t){ds.MoveTo.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_moveToSelect(e,t){ds.MoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_columnSelect(e,t,i){e=this._validateViewColumn(e),ds.ColumnSelect.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,mouseColumn:t,doColumnSelect:i})}_createCursor(e,t){e=this._validateViewColumn(e),ds.CreateCursor.runCoreEditorCommand(this.viewModel,{source:"mouse",position:this._convertViewToModelPosition(e),viewPosition:e,wholeLine:t})}_lastCursorMoveToSelect(e,t){ds.LastCursorMoveToSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelect(e,t){ds.WordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_wordSelectDrag(e,t){ds.WordSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorWordSelect(e,t){ds.LastCursorWordSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelect(e,t){ds.LineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lineSelectDrag(e,t){ds.LineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelect(e,t){ds.LastCursorLineSelect.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_lastCursorLineSelectDrag(e,t){ds.LastCursorLineSelectDrag.runCoreEditorCommand(this.viewModel,this._usualArgs(e,t))}_selectAll(){ds.SelectAll.runCoreEditorCommand(this.viewModel,{source:"mouse"})}_convertViewToModelPosition(e){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)}emitKeyDown(e){this.userInputEvents.emitKeyDown(e)}emitKeyUp(e){this.userInputEvents.emitKeyUp(e)}emitContextMenu(e){this.userInputEvents.emitContextMenu(e)}emitMouseMove(e){this.userInputEvents.emitMouseMove(e)}emitMouseLeave(e){this.userInputEvents.emitMouseLeave(e)}emitMouseUp(e){this.userInputEvents.emitMouseUp(e)}emitMouseDown(e){this.userInputEvents.emitMouseDown(e)}emitMouseDrag(e){this.userInputEvents.emitMouseDrag(e)}emitMouseDrop(e){this.userInputEvents.emitMouseDrop(e)}emitMouseDropCanceled(){this.userInputEvents.emitMouseDropCanceled()}emitMouseWheel(e){this.userInputEvents.emitMouseWheel(e)}}function Rf(n,e){var t;const i=globalThis.MonacoEnvironment;if(i!=null&&i.createTrustedTypesPolicy)try{return i.createTrustedTypesPolicy(n,e)}catch(r){fn(r);return}try{return(t=Wi.trustedTypes)===null||t===void 0?void 0:t.createPolicy(n,e)}catch(r){fn(r);return}}class hCe{constructor(e){this._createLine=e,this._set(1,[])}flush(){this._set(1,[])}_set(e,t){this._lines=t,this._rendLineNumberStart=e}_get(){return{rendLineNumberStart:this._rendLineNumberStart,lines:this._lines}}getStartLineNumber(){return this._rendLineNumberStart}getEndLineNumber(){return this._rendLineNumberStart+this._lines.length-1}getCount(){return this._lines.length}getLine(e){const t=e-this._rendLineNumberStart;if(t<0||t>=this._lines.length)throw new br("Illegal value for lineNumber");return this._lines[t]}onLinesDeleted(e,t){if(this.getCount()===0)return null;const i=this.getStartLineNumber(),r=this.getEndLineNumber();if(tr)return null;let o=0,s=0;for(let l=i;l<=r;l++){const u=l-this._rendLineNumberStart;e<=l&&l<=t&&(s===0?(o=u,s=1):s++)}if(e=r&&a<=o&&(this._lines[a-this._rendLineNumberStart].onContentChanged(),s=!0);return s}onLinesInserted(e,t){if(this.getCount()===0)return null;const i=t-e+1,r=this.getStartLineNumber(),o=this.getEndLineNumber();if(e<=r)return this._rendLineNumberStart+=i,null;if(e>o)return null;if(i+e>o)return this._lines.splice(e-this._rendLineNumberStart,o-e+1);const s=[];for(let d=0;di)continue;const l=Math.max(t,a.fromLineNumber),u=Math.min(i,a.toLineNumber);for(let c=l;c<=u;c++){const d=c-this._rendLineNumberStart;this._lines[d].onTokensChanged(),r=!0}}return r}}class gCe{constructor(e){this._host=e,this.domNode=this._createDomNode(),this._linesCollection=new hCe(()=>this._host.createVisibleLine())}_createDomNode(){const e=Si(document.createElement("div"));return e.setClassName("view-layer"),e.setPosition("absolute"),e.domNode.setAttribute("role","presentation"),e.domNode.setAttribute("aria-hidden","true"),e}onConfigurationChanged(e){return!!e.hasChanged(144)}onFlushed(e){return this._linesCollection.flush(),!0}onLinesChanged(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.count)}onLinesDeleted(e){const t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(let i=0,r=t.length;it){const s=t,a=Math.min(i,o.rendLineNumberStart-1);s<=a&&(this._insertLinesBefore(o,s,a,r,t),o.linesLength+=a-s+1)}else if(o.rendLineNumberStart0&&(this._removeLinesBefore(o,s),o.linesLength-=s)}if(o.rendLineNumberStart=t,o.rendLineNumberStart+o.linesLength-1i){const s=Math.max(0,i-o.rendLineNumberStart+1),l=o.linesLength-1-s+1;l>0&&(this._removeLinesAfter(o,l),o.linesLength-=l)}return this._finishRendering(o,!1,r),o}_renderUntouchedLines(e,t,i,r,o){const s=e.rendLineNumberStart,a=e.lines;for(let l=t;l<=i;l++){const u=s+l;a[l].layoutLine(u,r[u-o])}}_insertLinesBefore(e,t,i,r,o){const s=[];let a=0;for(let l=t;l<=i;l++)s[a++]=this.host.createVisibleLine();e.lines=s.concat(e.lines)}_removeLinesBefore(e,t){for(let i=0;i=0;a--){const l=e.lines[a];r[a]&&(l.setDomNode(s),s=s.previousSibling)}}_finishRenderingInvalidLines(e,t,i){const r=document.createElement("div");Gf._ttPolicy&&(t=Gf._ttPolicy.createHTML(t)),r.innerHTML=t;for(let o=0;on}),Gf._sb=new c2(1e5);class mCe extends lu{constructor(e){super(e),this._visibleLines=new gCe(this),this.domNode=this._visibleLines.domNode;const i=this._context.configuration.options.get(50);Ks(this.domNode,i),this._dynamicOverlays=[],this._isFocused=!1,this.domNode.setClassName("view-overlays")}shouldRender(){if(super.shouldRender())return!0;for(let e=0,t=this._dynamicOverlays.length;ei.shouldRender());for(let i=0,r=t.length;i'),r.appendString(o),r.appendString(""),!0)}layoutLine(e,t){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(this._lineHeight))}}class iCt extends mCe{constructor(e){super(e);const i=this._context.configuration.options.get(144);this._contentWidth=i.contentWidth,this.domNode.setHeight(0)}onConfigurationChanged(e){const i=this._context.configuration.options.get(144);return this._contentWidth=i.contentWidth,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollWidthChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e),this.domNode.setWidth(Math.max(e.scrollWidth,this._contentWidth))}}class rCt extends mCe{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(144);this._contentLeft=i.contentLeft,this.domNode.setClassName("margin-view-overlays"),this.domNode.setWidth(1),Ks(this.domNode,t.get(50))}onConfigurationChanged(e){const t=this._context.configuration.options;Ks(this.domNode,t.get(50));const i=t.get(144);return this._contentLeft=i.contentLeft,super.onConfigurationChanged(e)||!0}onScrollChanged(e){return super.onScrollChanged(e)||e.scrollHeightChanged}_viewOverlaysRender(e){super._viewOverlaysRender(e);const t=Math.min(e.scrollHeight,1e6);this.domNode.setHeight(t),this.domNode.setWidth(this._contentLeft)}}class BT{constructor(e){this.onKeyDown=null,this.onKeyUp=null,this.onContextMenu=null,this.onMouseMove=null,this.onMouseLeave=null,this.onMouseDown=null,this.onMouseUp=null,this.onMouseDrag=null,this.onMouseDrop=null,this.onMouseDropCanceled=null,this.onMouseWheel=null,this._coordinatesConverter=e}emitKeyDown(e){var t;(t=this.onKeyDown)===null||t===void 0||t.call(this,e)}emitKeyUp(e){var t;(t=this.onKeyUp)===null||t===void 0||t.call(this,e)}emitContextMenu(e){var t;(t=this.onContextMenu)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseMove(e){var t;(t=this.onMouseMove)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseLeave(e){var t;(t=this.onMouseLeave)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDown(e){var t;(t=this.onMouseDown)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseUp(e){var t;(t=this.onMouseUp)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDrag(e){var t;(t=this.onMouseDrag)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDrop(e){var t;(t=this.onMouseDrop)===null||t===void 0||t.call(this,this._convertViewToModelMouseEvent(e))}emitMouseDropCanceled(){var e;(e=this.onMouseDropCanceled)===null||e===void 0||e.call(this)}emitMouseWheel(e){var t;(t=this.onMouseWheel)===null||t===void 0||t.call(this,e)}_convertViewToModelMouseEvent(e){return e.target?{event:e.event,target:this._convertViewToModelMouseTarget(e.target)}:e}_convertViewToModelMouseTarget(e){return BT.convertViewToModelMouseTarget(e,this._coordinatesConverter)}static convertViewToModelMouseTarget(e,t){const i={...e};return i.position&&(i.position=t.convertViewPositionToModelPosition(i.position)),i.range&&(i.range=t.convertViewRangeToModelRange(i.range)),(i.type===5||i.type===8)&&(i.detail=this.convertViewToModelViewZoneData(i.detail,t)),i}static convertViewToModelViewZoneData(e,t){return{viewZoneId:e.viewZoneId,positionBefore:e.positionBefore?t.convertViewPositionToModelPosition(e.positionBefore):e.positionBefore,positionAfter:e.positionAfter?t.convertViewPositionToModelPosition(e.positionAfter):e.positionAfter,position:t.convertViewPositionToModelPosition(e.position),afterLineNumber:t.convertViewPositionToModelPosition(new ve(e.afterLineNumber,1)).lineNumber}}}class oCt extends lu{constructor(e){super(e),this.blocks=[],this.contentWidth=-1,this.contentLeft=0,this.domNode=Si(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("blockDecorations-container"),this.update()}update(){let e=!1;const i=this._context.configuration.options.get(144),r=i.contentWidth-i.verticalScrollbarWidth;this.contentWidth!==r&&(this.contentWidth=r,e=!0);const o=i.contentLeft;return this.contentLeft!==o&&(this.contentLeft=o,e=!0),e}dispose(){super.dispose()}onConfigurationChanged(e){return this.update()}onScrollChanged(e){return e.scrollTopChanged||e.scrollLeftChanged}onDecorationsChanged(e){return!0}onZonesChanged(e){return!0}prepareRender(e){}render(e){var t;let i=0;const r=e.getDecorationsInViewport();for(const o of r){if(!o.options.blockClassName)continue;let s=this.blocks[i];s||(s=this.blocks[i]=Si(document.createElement("div")),this.domNode.appendChild(s));let a,l;o.options.blockIsAfterEnd?(a=e.getVerticalOffsetAfterLineNumber(o.range.endLineNumber,!1),l=e.getVerticalOffsetAfterLineNumber(o.range.endLineNumber,!0)):(a=e.getVerticalOffsetForLineNumber(o.range.startLineNumber,!0),l=o.range.isEmpty()&&!o.options.blockDoesNotCollapse?e.getVerticalOffsetForLineNumber(o.range.startLineNumber,!1):e.getVerticalOffsetAfterLineNumber(o.range.endLineNumber,!0));const[u,c,d,h]=(t=o.options.blockPadding)!==null&&t!==void 0?t:[0,0,0,0];s.setClassName("blockDecorations-block "+o.options.blockClassName),s.setLeft(this.contentLeft-h),s.setWidth(this.contentWidth+h+c),s.setTop(a-e.scrollTop-u),s.setHeight(l-a+u+d),i++}for(let o=i;o0?this.domNode.setDisplay("block"):this.domNode.setDisplay("none"),this._cachedDomNodeOffsetWidth=-1,this._cachedDomNodeOffsetHeight=-1}_layoutBoxInViewport(e,t,i,r){const o=e.top,s=o,a=e.top+e.height,l=r.viewportHeight-a,u=o-i,c=s>=i,d=a,h=l>=i;let g=e.left;return g+t>r.scrollLeft+r.viewportWidth&&(g=r.scrollLeft+r.viewportWidth-t),gu){const g=h-(u-r);h-=g,i-=g}if(h=C,S=g+i<=m.height-v;return this._fixedOverflowWidgets?{fitsAbove:w,aboveTop:Math.max(h,C),fitsBelow:S,belowTop:g,left:b}:{fitsAbove:w,aboveTop:a,fitsBelow:S,belowTop:l,left:f}}_prepareRenderWidgetAtExactPositionOverflowing(e){return new L_(e.top,e.left+this._contentLeft)}_getAnchorsCoordinates(e){var t,i;const r=a(this._primaryAnchor.viewPosition,this._affinity,this._lineHeight),o=((t=this._secondaryAnchor.viewPosition)===null||t===void 0?void 0:t.lineNumber)===((i=this._primaryAnchor.viewPosition)===null||i===void 0?void 0:i.lineNumber)?this._secondaryAnchor.viewPosition:null,s=a(o,this._affinity,this._lineHeight);return{primary:r,secondary:s};function a(l,u,c){if(!l)return null;const d=e.visibleRangeForPosition(l);if(!d)return null;const h=l.column===1&&u===3?0:d.left,g=e.getVerticalOffsetForLineNumber(l.lineNumber)-e.scrollTop;return new fCe(g,h,c)}}_reduceAnchorCoordinates(e,t,i){if(!t)return e;const r=this._context.configuration.options.get(50);let o=t.left;return oe.endLineNumber||this.domNode.setMaxWidth(this._maxWidth)}prepareRender(e){this._renderData=this._prepareRenderWidget(e)}render(e){if(!this._renderData){this._isVisible&&(this.domNode.removeAttribute("monaco-visible-content-widget"),this._isVisible=!1,this.domNode.setVisibility("hidden")),typeof this._actual.afterRender=="function"&&s6(this._actual.afterRender,this._actual,null);return}this.allowEditorOverflow?(this.domNode.setTop(this._renderData.coordinate.top),this.domNode.setLeft(this._renderData.coordinate.left)):(this.domNode.setTop(this._renderData.coordinate.top+e.scrollTop-e.bigNumbersDelta),this.domNode.setLeft(this._renderData.coordinate.left)),this._isVisible||(this.domNode.setVisibility("inherit"),this.domNode.setAttribute("monaco-visible-content-widget","true"),this._isVisible=!0),typeof this._actual.afterRender=="function"&&s6(this._actual.afterRender,this._actual,this._renderData.position)}}class x_{constructor(e,t){this.modelPosition=e,this.viewPosition=t}}class L_{constructor(e,t){this.top=e,this.left=t,this._coordinateBrand=void 0}}class fCe{constructor(e,t,i){this.top=e,this.left=t,this.height=i,this._anchorCoordinateBrand=void 0}}function s6(n,e,...t){try{return n.call(e,...t)}catch{return null}}class pCe extends JC{constructor(e){super(),this._context=e;const t=this._context.configuration.options,i=t.get(144);this._lineHeight=t.get(67),this._renderLineHighlight=t.get(96),this._renderLineHighlightOnlyWhenFocus=t.get(97),this._wordWrap=i.isViewportWrapping,this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,this._selectionIsEmpty=!0,this._focused=!1,this._cursorLineNumbers=[1],this._selections=[new Gt(1,1,1,1)],this._renderData=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}_readFromSelections(){let e=!1;const t=new Set;for(const o of this._selections)t.add(o.positionLineNumber);const i=Array.from(t);i.sort((o,s)=>o-s),Ar(this._cursorLineNumbers,i)||(this._cursorLineNumbers=i,e=!0);const r=this._selections.every(o=>o.isEmpty());return this._selectionIsEmpty!==r&&(this._selectionIsEmpty=r,e=!0),e}onThemeChanged(e){return this._readFromSelections()}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(144);return this._lineHeight=t.get(67),this._renderLineHighlight=t.get(96),this._renderLineHighlightOnlyWhenFocus=t.get(97),this._wordWrap=i.isViewportWrapping,this._contentLeft=i.contentLeft,this._contentWidth=i.contentWidth,!0}onCursorStateChanged(e){return this._selections=e.selections,this._readFromSelections()}onFlushed(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollWidthChanged||e.scrollTopChanged}onZonesChanged(e){return!0}onFocusChanged(e){return this._renderLineHighlightOnlyWhenFocus?(this._focused=e.isFocused,!0):!1}prepareRender(e){if(!this._shouldRenderThis()){this._renderData=null;return}const t=e.visibleRange.startLineNumber,i=e.visibleRange.endLineNumber,r=[];for(let s=t;s<=i;s++){const a=s-t;r[a]=""}if(this._wordWrap){const s=this._renderOne(e,!1);for(const a of this._cursorLineNumbers){const l=this._context.viewModel.coordinatesConverter,u=l.convertViewPositionToModelPosition(new ve(a,1)).lineNumber,c=l.convertModelPositionToViewPosition(new ve(u,1)).lineNumber,d=l.convertModelPositionToViewPosition(new ve(u,this._context.viewModel.model.getLineMaxColumn(u))).lineNumber,h=Math.max(c,t),g=Math.min(d,i);for(let m=h;m<=g;m++){const f=m-t;r[f]=s}}}const o=this._renderOne(e,!0);for(const s of this._cursorLineNumbers){if(si)continue;const a=s-t;r[a]=o}this._renderData=r}render(e,t){if(!this._renderData)return"";const i=t-e;return i>=this._renderData.length?"":this._renderData[i]}_shouldRenderInMargin(){return(this._renderLineHighlight==="gutter"||this._renderLineHighlight==="all")&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}_shouldRenderInContent(){return(this._renderLineHighlight==="line"||this._renderLineHighlight==="all")&&this._selectionIsEmpty&&(!this._renderLineHighlightOnlyWhenFocus||this._focused)}}class lCt extends pCe{_renderOne(e,t){return`
`}_shouldRenderThis(){return this._shouldRenderInContent()}_shouldRenderOther(){return this._shouldRenderInMargin()}}class uCt extends pCe{_renderOne(e,t){return`
`}_shouldRenderThis(){return!0}_shouldRenderOther(){return this._shouldRenderInContent()}}kc((n,e)=>{const t=n.getColor(eCe);if(t&&(e.addRule(`.monaco-editor .view-overlays .current-line { background-color: ${t}; }`),e.addRule(`.monaco-editor .margin-view-overlays .current-line-margin { background-color: ${t}; border: none; }`)),!t||t.isTransparent()||n.defines(tCe)){const i=n.getColor(tCe);i&&(e.addRule(`.monaco-editor .view-overlays .current-line-exact { border: 2px solid ${i}; }`),e.addRule(`.monaco-editor .margin-view-overlays .current-line-exact-margin { border: 2px solid ${i}; }`),Jg(n.type)&&(e.addRule(".monaco-editor .view-overlays .current-line-exact { border-width: 1px; }"),e.addRule(".monaco-editor .margin-view-overlays .current-line-exact-margin { border-width: 1px; }")))}});class cCt extends JC{constructor(e){super(),this._context=e;const t=this._context.configuration.options;this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged||e.scrollWidthChanged}onZonesChanged(e){return!0}prepareRender(e){const t=e.getDecorationsInViewport();let i=[],r=0;for(let l=0,u=t.length;l{if(l.options.zIndexu.options.zIndex)return 1;const c=l.options.className,d=u.options.className;return cd?1:K.compareRangesUsingStarts(l.range,u.range)});const o=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber,a=[];for(let l=o;l<=s;l++){const u=l-o;a[u]=""}this._renderWholeLineDecorations(e,i,a),this._renderNormalDecorations(e,i,a),this._renderResult=a}_renderWholeLineDecorations(e,t,i){const r=String(this._lineHeight),o=e.visibleRange.startLineNumber,s=e.visibleRange.endLineNumber;for(let a=0,l=t.length;a',d=Math.max(u.range.startLineNumber,o),h=Math.min(u.range.endLineNumber,s);for(let g=d;g<=h;g++){const m=g-o;i[m]+=c}}}_renderNormalDecorations(e,t,i){var r;const o=String(this._lineHeight),s=e.visibleRange.startLineNumber;let a=null,l=!1,u=null,c=!1;for(let d=0,h=t.length;d';l[g]+=v}}}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}class dCt extends lu{constructor(e,t,i,r){super(e);const o=this._context.configuration.options,s=o.get(103),a=o.get(75),l=o.get(40),u=o.get(106),c={listenOnDomNode:i.domNode,className:"editor-scrollable "+e6(e.theme.type),useShadows:!1,lazyRender:!0,vertical:s.vertical,horizontal:s.horizontal,verticalHasArrows:s.verticalHasArrows,horizontalHasArrows:s.horizontalHasArrows,verticalScrollbarSize:s.verticalScrollbarSize,verticalSliderSize:s.verticalSliderSize,horizontalScrollbarSize:s.horizontalScrollbarSize,horizontalSliderSize:s.horizontalSliderSize,handleMouseWheel:s.handleMouseWheel,alwaysConsumeMouseWheel:s.alwaysConsumeMouseWheel,arrowSize:s.arrowSize,mouseWheelScrollSensitivity:a,fastScrollSensitivity:l,scrollPredominantAxis:u,scrollByPage:s.scrollByPage};this.scrollbar=this._register(new ZT(t.domNode,c,this._context.viewLayout.getScrollable())),Dh.write(this.scrollbar.getDomNode(),6),this.scrollbarDomNode=Si(this.scrollbar.getDomNode()),this.scrollbarDomNode.setPosition("absolute"),this._setLayout();const d=(h,g,m)=>{const f={};if(g){const b=h.scrollTop;b&&(f.scrollTop=this._context.viewLayout.getCurrentScrollTop()+b,h.scrollTop=0)}if(m){const b=h.scrollLeft;b&&(f.scrollLeft=this._context.viewLayout.getCurrentScrollLeft()+b,h.scrollLeft=0)}this._context.viewModel.viewLayout.setScrollPosition(f,1)};this._register(Ve(i.domNode,"scroll",h=>d(i.domNode,!0,!0))),this._register(Ve(t.domNode,"scroll",h=>d(t.domNode,!0,!1))),this._register(Ve(r.domNode,"scroll",h=>d(r.domNode,!0,!1))),this._register(Ve(this.scrollbarDomNode.domNode,"scroll",h=>d(this.scrollbarDomNode.domNode,!0,!1)))}dispose(){super.dispose()}_setLayout(){const e=this._context.configuration.options,t=e.get(144);this.scrollbarDomNode.setLeft(t.contentLeft),e.get(73).side==="right"?this.scrollbarDomNode.setWidth(t.contentWidth+t.minimap.minimapWidth):this.scrollbarDomNode.setWidth(t.contentWidth),this.scrollbarDomNode.setHeight(t.height)}getOverviewRulerLayoutInfo(){return this.scrollbar.getOverviewRulerLayoutInfo()}getDomNode(){return this.scrollbarDomNode}delegateVerticalScrollbarPointerDown(e){this.scrollbar.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){this.scrollbar.delegateScrollFromMouseWheelEvent(e)}onConfigurationChanged(e){if(e.hasChanged(103)||e.hasChanged(75)||e.hasChanged(40)){const t=this._context.configuration.options,i=t.get(103),r=t.get(75),o=t.get(40),s=t.get(106),a={vertical:i.vertical,horizontal:i.horizontal,verticalScrollbarSize:i.verticalScrollbarSize,horizontalScrollbarSize:i.horizontalScrollbarSize,scrollByPage:i.scrollByPage,handleMouseWheel:i.handleMouseWheel,mouseWheelScrollSensitivity:r,fastScrollSensitivity:o,scrollPredominantAxis:s};this.scrollbar.updateOptions(a)}return e.hasChanged(144)&&this._setLayout(),!0}onScrollChanged(e){return!0}onThemeChanged(e){return this.scrollbar.updateClassName("editor-scrollable "+e6(this._context.theme.type)),!0}prepareRender(e){}render(e){this.scrollbar.renderNow()}}var Mc;(function(n){n[n.Left=1]="Left",n[n.Center=2]="Center",n[n.Right=4]="Right",n[n.Full=7]="Full"})(Mc||(Mc={}));var Qg;(function(n){n[n.Left=1]="Left",n[n.Center=2]="Center",n[n.Right=3]="Right"})(Qg||(Qg={}));var uu;(function(n){n[n.Inline=1]="Inline",n[n.Gutter=2]="Gutter"})(uu||(uu={}));var Ld;(function(n){n[n.Both=0]="Both",n[n.Right=1]="Right",n[n.Left=2]="Left",n[n.None=3]="None"})(Ld||(Ld={}));class zT{get originalIndentSize(){return this._indentSizeIsTabSize?"tabSize":this.indentSize}constructor(e){this._textModelResolvedOptionsBrand=void 0,this.tabSize=Math.max(1,e.tabSize|0),e.indentSize==="tabSize"?(this.indentSize=this.tabSize,this._indentSizeIsTabSize=!0):(this.indentSize=Math.max(1,e.indentSize|0),this._indentSizeIsTabSize=!1),this.insertSpaces=!!e.insertSpaces,this.defaultEOL=e.defaultEOL|0,this.trimAutoWhitespace=!!e.trimAutoWhitespace,this.bracketPairColorizationOptions=e.bracketPairColorizationOptions}equals(e){return this.tabSize===e.tabSize&&this._indentSizeIsTabSize===e._indentSizeIsTabSize&&this.indentSize===e.indentSize&&this.insertSpaces===e.insertSpaces&&this.defaultEOL===e.defaultEOL&&this.trimAutoWhitespace===e.trimAutoWhitespace&&Gu(this.bracketPairColorizationOptions,e.bracketPairColorizationOptions)}createChangeEvent(e){return{tabSize:this.tabSize!==e.tabSize,indentSize:this.indentSize!==e.indentSize,insertSpaces:this.insertSpaces!==e.insertSpaces,trimAutoWhitespace:this.trimAutoWhitespace!==e.trimAutoWhitespace}}}class F_{constructor(e,t){this._findMatchBrand=void 0,this.range=e,this.matches=t}}function hCt(n){return n&&typeof n.read=="function"}class a6{constructor(e,t,i,r,o,s){this.identifier=e,this.range=t,this.text=i,this.forceMoveMarkers=r,this.isAutoWhitespaceEdit=o,this._isTracked=s}}class gCt{constructor(e,t,i){this.regex=e,this.wordSeparators=t,this.simpleSearch=i}}class mCt{constructor(e,t,i){this.reverseEdits=e,this.changes=t,this.trimAutoWhitespaceLineNumbers=i}}function bCe(n){return!n.isTooLargeForSyncing()&&!n.isForSimpleWidget}class l6{constructor(e,t,i,r,o){this.startLineNumber=e,this.endLineNumber=t,this.className=i,this.tooltip=r,this._decorationToRenderBrand=void 0,this.zIndex=o??0}}class fCt{constructor(e,t,i){this.className=e,this.zIndex=t,this.tooltip=i}}class pCt{constructor(){this.decorations=[]}add(e){this.decorations.push(e)}getDecorations(){return this.decorations}}class CCe extends JC{_render(e,t,i){const r=[];for(let a=e;a<=t;a++){const l=a-e;r[l]=new pCt}if(i.length===0)return r;i.sort((a,l)=>a.className===l.className?a.startLineNumber===l.startLineNumber?a.endLineNumber-l.endLineNumber:a.startLineNumber-l.startLineNumber:a.classNamer)continue;const u=Math.max(a,i),c=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new ve(u,0)),d=this._context.viewModel.glyphLanes.getLanesAtLine(c.lineNumber).indexOf(o.preference.lane);t.push(new vCt(u,d,o.preference.zIndex,o))}}_collectSortedGlyphRenderRequests(e){const t=[];return this._collectDecorationBasedGlyphRenderRequest(e,t),this._collectWidgetBasedGlyphRenderRequest(e,t),t.sort((i,r)=>i.lineNumber===r.lineNumber?i.laneIndex===r.laneIndex?i.zIndex===r.zIndex?r.type===i.type?i.type===0&&r.type===0?i.className0;){const r=t.peek();if(!r)break;const o=t.takeWhile(a=>a.lineNumber===r.lineNumber&&a.laneIndex===r.laneIndex);if(!o||o.length===0)break;const s=o[0];if(s.type===0){const a=[];for(const l of o){if(l.zIndex!==s.zIndex||l.type!==s.type)break;(a.length===0||a[a.length-1]!==l.className)&&a.push(l.className)}i.push(s.accept(a.join(" ")))}else s.widget.renderInfo={lineNumber:s.lineNumber,laneIndex:s.laneIndex}}this._decorationGlyphsToRender=i}render(e){if(!this._glyphMargin){for(const i of Object.values(this._widgets))i.domNode.setDisplay("none");for(;this._managedDomNodes.length>0;){const i=this._managedDomNodes.pop();i==null||i.domNode.remove()}return}const t=Math.round(this._glyphMarginWidth/this._glyphMarginDecorationLaneCount);for(const i of Object.values(this._widgets))if(!i.renderInfo)i.domNode.setDisplay("none");else{const r=e.viewportData.relativeVerticalOffset[i.renderInfo.lineNumber-e.viewportData.startLineNumber],o=this._glyphMarginLeft+i.renderInfo.laneIndex*this._lineHeight;i.domNode.setDisplay("block"),i.domNode.setTop(r),i.domNode.setLeft(o),i.domNode.setWidth(t),i.domNode.setHeight(this._lineHeight)}for(let i=0;ithis._decorationGlyphsToRender.length;){const i=this._managedDomNodes.pop();i==null||i.domNode.remove()}}}class CCt{constructor(e,t,i,r){this.lineNumber=e,this.laneIndex=t,this.zIndex=i,this.className=r,this.type=0}accept(e){return new yCt(this.lineNumber,this.laneIndex,e)}}class vCt{constructor(e,t,i,r){this.lineNumber=e,this.laneIndex=t,this.zIndex=i,this.widget=r,this.type=1}}class yCt{constructor(e,t,i){this.lineNumber=e,this.laneIndex=t,this.combinedClassName=i}}function YT(n,e,t){const i=ICt(n,e);if(i!==-1)return n[i]}function ICt(n,e,t=n.length-1){for(let i=t;i>=0;i--){const r=n[i];if(e(r))return i}return-1}function X2(n,e){const t=__(n,e);return t===-1?void 0:n[t]}function __(n,e,t=0,i=n.length){let r=t,o=i;for(;r0&&(t=r)}return t}function SCt(n,e){if(n.length===0)return;let t=n[0];for(let i=1;i=0&&(t=r)}return t}function xCt(n,e){return u6(n,(t,i)=>-e(t,i))}function LCt(n,e){if(n.length===0)return-1;let t=0;for(let i=1;i0&&(t=i)}return t}function FCt(n,e){for(const t of n){const i=e(t);if(i!==void 0)return i}}class vCe extends De{constructor(){super(...arguments),this._isDisposed=!1}dispose(){super.dispose(),this._isDisposed=!0}assertNotDisposed(){if(this._isDisposed)throw new Error("TextModelPart is disposed!")}}function HT(n,e){let t=0,i=0;const r=n.length;for(;ir)throw new br("Illegal value for lineNumber");const o=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,s=!!(o&&o.offSide);let a=-2,l=-1,u=-2,c=-1;const d=D=>{if(a!==-1&&(a===-2||a>D-1)){a=-1,l=-1;for(let A=D-2;A>=0;A--){const M=this._computeIndentLevel(A);if(M>=0){a=A,l=M;break}}}if(u===-2){u=-1,c=-1;for(let A=D;A=0){u=A,c=M;break}}}};let h=-2,g=-1,m=-2,f=-1;const b=D=>{if(h===-2){h=-1,g=-1;for(let A=D-2;A>=0;A--){const M=this._computeIndentLevel(A);if(M>=0){h=A,g=M;break}}}if(m!==-1&&(m===-2||m=0){m=A,f=M;break}}}};let C=0,v=!0,w=0,S=!0,F=0,L=0;for(let D=0;v||S;D++){const A=e-D,M=e+D;D>1&&(A<1||A1&&(M>r||M>i)&&(S=!1),D>5e4&&(v=!1,S=!1);let W=-1;if(v&&A>=1){const T=this._computeIndentLevel(A-1);T>=0?(u=A-1,c=T,W=Math.ceil(T/this.textModel.getOptions().indentSize)):(d(A),W=this._getIndentLevelForWhitespaceLine(s,l,c))}let Z=-1;if(S&&M<=r){const T=this._computeIndentLevel(M-1);T>=0?(h=M-1,g=T,Z=Math.ceil(T/this.textModel.getOptions().indentSize)):(b(M),Z=this._getIndentLevelForWhitespaceLine(s,g,f))}if(D===0){L=W;continue}if(D===1){if(M<=r&&Z>=0&&L+1===Z){v=!1,C=M,w=M,F=Z;continue}if(A>=1&&W>=0&&W-1===L){S=!1,C=A,w=A,F=W;continue}if(C=e,w=e,F=L,F===0)return{startLineNumber:C,endLineNumber:w,indent:F}}v&&(W>=F?C=A:v=!1),S&&(Z>=F?w=M:S=!1)}return{startLineNumber:C,endLineNumber:w,indent:F}}getLinesBracketGuides(e,t,i,r){var o;const s=[];for(let h=e;h<=t;h++)s.push([]);const a=!0,l=this.textModel.bracketPairs.getBracketPairsInRangeWithMinIndentation(new K(e,1,t,this.textModel.getLineMaxColumn(t))).toArray();let u;if(i&&l.length>0){const h=(e<=i.lineNumber&&i.lineNumber<=t?l:this.textModel.bracketPairs.getBracketPairsInRange(K.fromPositions(i)).toArray()).filter(g=>K.strictContainsPosition(g.range,i));u=(o=YT(h,g=>a))===null||o===void 0?void 0:o.range}const c=this.textModel.getOptions().bracketPairColorizationOptions.independentColorPoolPerBracketType,d=new yCe;for(const h of l){if(!h.closingBracketRange)continue;const g=u&&h.range.equalsRange(u);if(!g&&!r.includeInactive)continue;const m=d.getInlineClassName(h.nestingLevel,h.nestingLevelOfEqualBracketType,c)+(r.highlightActive&&g?" "+d.activeClassName:""),f=h.openingBracketRange.getStartPosition(),b=h.closingBracketRange.getStartPosition(),C=r.horizontalGuides===jC.Enabled||r.horizontalGuides===jC.EnabledForActive&&g;if(h.range.startLineNumber===h.range.endLineNumber){C&&s[h.range.startLineNumber-e].push(new QC(-1,h.openingBracketRange.getEndPosition().column,m,new N_(!1,b.column),-1,-1));continue}const v=this.getVisibleColumnFromPosition(b),w=this.getVisibleColumnFromPosition(h.openingBracketRange.getStartPosition()),S=Math.min(w,v,h.minVisibleColumnIndentation+1);let F=!1;Ia(this.textModel.getLineContent(h.closingBracketRange.startLineNumber))=e&&w>S&&s[f.lineNumber-e].push(new QC(S,-1,m,new N_(!1,f.column),-1,-1)),b.lineNumber<=t&&v>S&&s[b.lineNumber-e].push(new QC(S,-1,m,new N_(!F,b.column),-1,-1)))}for(const h of s)h.sort((g,m)=>g.visibleColumn-m.visibleColumn);return s}getVisibleColumnFromPosition(e){return Yo.visibleColumnFromColumn(this.textModel.getLineContent(e.lineNumber),e.column,this.textModel.getOptions().tabSize)+1}getLinesIndentGuides(e,t){this.assertNotDisposed();const i=this.textModel.getLineCount();if(e<1||e>i)throw new Error("Illegal value for startLineNumber");if(t<1||t>i)throw new Error("Illegal value for endLineNumber");const r=this.textModel.getOptions(),o=this.getLanguageConfiguration(this.textModel.getLanguageId()).foldingRules,s=!!(o&&o.offSide),a=new Array(t-e+1);let l=-2,u=-1,c=-2,d=-1;for(let h=e;h<=t;h++){const g=h-e,m=this._computeIndentLevel(h-1);if(m>=0){l=h-1,u=m,a[g]=Math.ceil(m/r.indentSize);continue}if(l===-2){l=-1,u=-1;for(let f=h-2;f>=0;f--){const b=this._computeIndentLevel(f);if(b>=0){l=f,u=b;break}}}if(c!==-1&&(c===-2||c=0){c=f,d=b;break}}}a[g]=this._getIndentLevelForWhitespaceLine(s,u,d)}return a}_getIndentLevelForWhitespaceLine(e,t,i){const r=this.textModel.getOptions();return t===-1||i===-1?0:tl||this._maxIndentLeft>0&&w>this._maxIndentLeft)break;const S=v.horizontalLine?v.horizontalLine.top?"horizontal-top":"horizontal-bottom":"vertical",F=v.horizontalLine?((o=(r=e.visibleRangeForPosition(new ve(g,v.horizontalLine.endColumn)))===null||r===void 0?void 0:r.left)!==null&&o!==void 0?o:w+this._spaceWidth)-w:this._spaceWidth;b+=`
`}h[m]=b}this._renderResult=h}getGuidesByLine(e,t,i){const r=this._bracketPairGuideOptions.bracketPairs!==!1?this._context.viewModel.getBracketGuidesInRangeByLine(e,t,i,{highlightActive:this._bracketPairGuideOptions.highlightActiveBracketPair,horizontalGuides:this._bracketPairGuideOptions.bracketPairsHorizontal===!0?jC.Enabled:this._bracketPairGuideOptions.bracketPairsHorizontal==="active"?jC.EnabledForActive:jC.Disabled,includeInactive:this._bracketPairGuideOptions.bracketPairs===!0}):null,o=this._bracketPairGuideOptions.indentation?this._context.viewModel.getLinesIndentGuides(e,t):null;let s=0,a=0,l=0;if(this._bracketPairGuideOptions.highlightActiveIndentation!==!1&&i){const d=this._context.viewModel.getActiveIndentGuide(i.lineNumber,e,t);s=d.startLineNumber,a=d.endLineNumber,l=d.indent}const{indentSize:u}=this._context.viewModel.model.getOptions(),c=[];for(let d=e;d<=t;d++){const h=new Array;c.push(h);const g=r?r[d-e]:[],m=new Lf(g),f=o?o[d-e]:0;for(let b=1;b<=f;b++){const C=(b-1)*u+1,v=(this._bracketPairGuideOptions.highlightActiveIndentation==="always"||g.length===0)&&s<=d&&d<=a&&b===l;h.push(...m.takeWhile(S=>S.visibleColumn!0)||[])}return c}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}function P2(n){if(!(n&&n.isTransparent()))return n}kc((n,e)=>{const t=[{bracketColor:iCe,guideColor:E1t,guideColorActive:P1t},{bracketColor:rCe,guideColor:W1t,guideColorActive:O1t},{bracketColor:oCe,guideColor:R1t,guideColorActive:B1t},{bracketColor:sCe,guideColor:G1t,guideColorActive:z1t},{bracketColor:aCe,guideColor:V1t,guideColorActive:Y1t},{bracketColor:lCe,guideColor:X1t,guideColorActive:H1t}],i=new yCe,r=[{indentColor:b_,indentColorActive:C_},{indentColor:p1t,indentColorActive:I1t},{indentColor:b1t,indentColorActive:w1t},{indentColor:C1t,indentColorActive:S1t},{indentColor:v1t,indentColorActive:x1t},{indentColor:y1t,indentColorActive:L1t}],o=t.map(a=>{var l,u;const c=n.getColor(a.bracketColor),d=n.getColor(a.guideColor),h=n.getColor(a.guideColorActive),g=P2((l=P2(d))!==null&&l!==void 0?l:c==null?void 0:c.transparent(.3)),m=P2((u=P2(h))!==null&&u!==void 0?u:c);if(!(!g||!m))return{guideColor:g,guideColorActive:m}}).filter(_g),s=r.map(a=>{const l=n.getColor(a.indentColor),u=n.getColor(a.indentColorActive),c=P2(l),d=P2(u);if(!(!c||!d))return{indentColor:c,indentColorActive:d}}).filter(_g);if(o.length>0){for(let a=0;a<30;a++){const l=o[a%o.length];e.addRule(`.monaco-editor .${i.getInlineClassNameOfLevel(a).replace(/ /g,".")} { --guide-color: ${l.guideColor}; --guide-color-active: ${l.guideColorActive}; }`)}e.addRule(".monaco-editor .vertical { box-shadow: 1px 0 0 0 var(--guide-color) inset; }"),e.addRule(".monaco-editor .horizontal-top { border-top: 1px solid var(--guide-color); }"),e.addRule(".monaco-editor .horizontal-bottom { border-bottom: 1px solid var(--guide-color); }"),e.addRule(`.monaco-editor .vertical.${i.activeClassName} { box-shadow: 1px 0 0 0 var(--guide-color-active) inset; }`),e.addRule(`.monaco-editor .horizontal-top.${i.activeClassName} { border-top: 1px solid var(--guide-color-active); }`),e.addRule(`.monaco-editor .horizontal-bottom.${i.activeClassName} { border-bottom: 1px solid var(--guide-color-active); }`)}if(s.length>0){for(let a=0;a<30;a++){const l=s[a%s.length];e.addRule(`.monaco-editor .lines-content .core-guide-indent.lvl-${a} { --indent-color: ${l.indentColor}; --indent-color-active: ${l.indentColorActive}; }`)}e.addRule(".monaco-editor .lines-content .core-guide-indent { box-shadow: 1px 0 0 0 var(--indent-color) inset; }"),e.addRule(".monaco-editor .lines-content .core-guide-indent.indent-active { box-shadow: 1px 0 0 0 var(--indent-color-active) inset; }")}});class c6{get didDomLayout(){return this._didDomLayout}readClientRect(){if(!this._clientRectRead){this._clientRectRead=!0;const e=this._domNode.getBoundingClientRect();this.markDidDomLayout(),this._clientRectDeltaLeft=e.left,this._clientRectScale=e.width/this._domNode.offsetWidth}}get clientRectDeltaLeft(){return this._clientRectRead||this.readClientRect(),this._clientRectDeltaLeft}get clientRectScale(){return this._clientRectRead||this.readClientRect(),this._clientRectScale}constructor(e,t){this._domNode=e,this.endNode=t,this._didDomLayout=!1,this._clientRectDeltaLeft=0,this._clientRectScale=1,this._clientRectRead=!1}markDidDomLayout(){this._didDomLayout=!0}}class ACt{constructor(){this._currentVisibleRange=new K(1,1,1,1)}getCurrentVisibleRange(){return this._currentVisibleRange}setCurrentVisibleRange(e){this._currentVisibleRange=e}}class NCt{constructor(e,t,i,r,o,s,a){this.minimalReveal=e,this.lineNumber=t,this.startColumn=i,this.endColumn=r,this.startScrollTop=o,this.stopScrollTop=s,this.scrollType=a,this.type="range",this.minLineNumber=t,this.maxLineNumber=t}}class kCt{constructor(e,t,i,r,o){this.minimalReveal=e,this.selections=t,this.startScrollTop=i,this.stopScrollTop=r,this.scrollType=o,this.type="selections";let s=t[0].startLineNumber,a=t[0].endLineNumber;for(let l=1,u=t.length;l{this._updateLineWidthsSlow()},200),this._asyncCheckMonospaceFontAssumptions=new Vi(()=>{this._checkMonospaceFontAssumptions()},2e3),this._lastRenderedData=new ACt,this._horizontalRevealRequest=null,this._stickyScrollEnabled=r.get(115).enabled,this._maxNumberStickyLines=r.get(115).maxLineCount}dispose(){this._asyncUpdateLineWidths.dispose(),this._asyncCheckMonospaceFontAssumptions.dispose(),super.dispose()}getDomNode(){return this.domNode}createVisibleLine(){return new Kg(this._viewLineOptions)}onConfigurationChanged(e){this._visibleLines.onConfigurationChanged(e),e.hasChanged(145)&&(this._maxLineWidth=0);const t=this._context.configuration.options,i=t.get(50),r=t.get(145);return this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._isViewportWrapping=r.isViewportWrapping,this._revealHorizontalRightPadding=t.get(100),this._cursorSurroundingLines=t.get(29),this._cursorSurroundingLinesStyle=t.get(30),this._canUseLayerHinting=!t.get(32),this._stickyScrollEnabled=t.get(115).enabled,this._maxNumberStickyLines=t.get(115).maxLineCount,Ks(this.domNode,i),this._onOptionsMaybeChanged(),e.hasChanged(144)&&(this._maxLineWidth=0),!0}_onOptionsMaybeChanged(){const e=this._context.configuration,t=new O1e(e,this._context.theme.type);if(!this._viewLineOptions.equals(t)){this._viewLineOptions=t;const i=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();for(let o=i;o<=r;o++)this._visibleLines.getVisibleLine(o).onOptionsChanged(this._viewLineOptions);return!0}return!1}onCursorStateChanged(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let r=!1;for(let o=t;o<=i;o++)r=this._visibleLines.getVisibleLine(o).onSelectionChanged()||r;return r}onDecorationsChanged(e){{const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();for(let r=t;r<=i;r++)this._visibleLines.getVisibleLine(r).onDecorationsChanged()}return!0}onFlushed(e){const t=this._visibleLines.onFlushed(e);return this._maxLineWidth=0,t}onLinesChanged(e){return this._visibleLines.onLinesChanged(e)}onLinesDeleted(e){return this._visibleLines.onLinesDeleted(e)}onLinesInserted(e){return this._visibleLines.onLinesInserted(e)}onRevealRangeRequest(e){const t=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),e.source,e.minimalReveal,e.range,e.selections,e.verticalType);if(t===-1)return!1;let i=this._context.viewLayout.validateScrollPosition({scrollTop:t});e.revealHorizontal?e.range&&e.range.startLineNumber!==e.range.endLineNumber?i={scrollTop:i.scrollTop,scrollLeft:0}:e.range?this._horizontalRevealRequest=new NCt(e.minimalReveal,e.range.startLineNumber,e.range.startColumn,e.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),i.scrollTop,e.scrollType):e.selections&&e.selections.length>0&&(this._horizontalRevealRequest=new kCt(e.minimalReveal,e.selections,this._context.viewLayout.getCurrentScrollTop(),i.scrollTop,e.scrollType)):this._horizontalRevealRequest=null;const o=Math.abs(this._context.viewLayout.getCurrentScrollTop()-i.scrollTop)<=this._lineHeight?1:e.scrollType;return this._context.viewModel.viewLayout.setScrollPosition(i,o),!0}onScrollChanged(e){if(this._horizontalRevealRequest&&e.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&e.scrollTopChanged){const t=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),i=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(e.scrollTopi)&&(this._horizontalRevealRequest=null)}return this.domNode.setWidth(e.scrollWidth),this._visibleLines.onScrollChanged(e)||!0}onTokensChanged(e){return this._visibleLines.onTokensChanged(e)}onZonesChanged(e){return this._context.viewModel.viewLayout.setMaxLineWidth(this._maxLineWidth),this._visibleLines.onZonesChanged(e)}onThemeChanged(e){return this._onOptionsMaybeChanged()}getPositionFromDOMInfo(e,t){const i=this._getViewLineDomNode(e);if(i===null)return null;const r=this._getLineNumberFor(i);if(r===-1||r<1||r>this._context.viewModel.getLineCount())return null;if(this._context.viewModel.getLineMaxColumn(r)===1)return new ve(r,1);const o=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();if(rs)return null;let a=this._visibleLines.getVisibleLine(r).getColumnOfNodeOffset(e,t);const l=this._context.viewModel.getLineMinColumn(r);return ai)return-1;const r=new c6(this.domNode.domNode,this._textRangeRestingSpot),o=this._visibleLines.getVisibleLine(e).getWidth(r);return this._updateLineWidthsSlowIfDomDidLayout(r),o}linesVisibleRangesForRange(e,t){if(this.shouldRender())return null;const i=e.endLineNumber,r=K.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange());if(!r)return null;const o=[];let s=0;const a=new c6(this.domNode.domNode,this._textRangeRestingSpot);let l=0;t&&(l=this._context.viewModel.coordinatesConverter.convertViewPositionToModelPosition(new ve(r.startLineNumber,1)).lineNumber);const u=this._visibleLines.getStartLineNumber(),c=this._visibleLines.getEndLineNumber();for(let d=r.startLineNumber;d<=r.endLineNumber;d++){if(dc)continue;const h=d===r.startLineNumber?r.startColumn:1,g=d!==r.endLineNumber,m=g?this._context.viewModel.getLineMaxColumn(d):r.endColumn,f=this._visibleLines.getVisibleLine(d).getVisibleRangesForRange(d,h,m,a);if(f){if(t&&dthis._visibleLines.getEndLineNumber())return null;const r=new c6(this.domNode.domNode,this._textRangeRestingSpot),o=this._visibleLines.getVisibleLine(e).getVisibleRangesForRange(e,t,i,r);return this._updateLineWidthsSlowIfDomDidLayout(r),o}visibleRangeForPosition(e){const t=this._visibleRangesForLineRange(e.lineNumber,e.column,e.column);return t?new x0t(t.outsideRenderedLine,t.ranges[0].left):null}_updateLineWidthsFast(){return this._updateLineWidths(!0)}_updateLineWidthsSlow(){this._updateLineWidths(!1)}_updateLineWidthsSlowIfDomDidLayout(e){e.didDomLayout&&(this._asyncUpdateLineWidths.isScheduled()||(this._asyncUpdateLineWidths.cancel(),this._updateLineWidthsSlow()))}_updateLineWidths(e){const t=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber();let r=1,o=!0;for(let s=t;s<=i;s++){const a=this._visibleLines.getVisibleLine(s);if(e&&!a.getWidthIsFast()){o=!1;continue}r=Math.max(r,a.getWidth(null))}return o&&t===1&&i===this._context.viewModel.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(r),o}_checkMonospaceFontAssumptions(){let e=-1,t=-1;const i=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();for(let o=i;o<=r;o++){const s=this._visibleLines.getVisibleLine(o);if(s.needsMonospaceFontCheck()){const a=s.getWidth(null);a>t&&(t=a,e=o)}}if(e!==-1&&!this._visibleLines.getVisibleLine(e).monospaceAssumptionsAreValid())for(let o=i;o<=r;o++)this._visibleLines.getVisibleLine(o).onMonospaceAssumptionsInvalidated()}prepareRender(){throw new Error("Not supported")}render(){throw new Error("Not supported")}renderText(e){if(this._visibleLines.renderLines(e),this._lastRenderedData.setCurrentVisibleRange(e.visibleRange),this.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._horizontalRevealRequest){const i=this._horizontalRevealRequest;if(e.startLineNumber<=i.minLineNumber&&i.maxLineNumber<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();const r=this._computeScrollLeftToReveal(i);r&&(this._isViewportWrapping||this._ensureMaxLineWidth(r.maxHorizontalOffset),this._context.viewModel.viewLayout.setScrollPosition({scrollLeft:r.scrollLeft},i.scrollType))}}if(this._updateLineWidthsFast()?this._asyncUpdateLineWidths.cancel():this._asyncUpdateLineWidths.schedule(),Ha&&!this._asyncCheckMonospaceFontAssumptions.isScheduled()){const i=this._visibleLines.getStartLineNumber(),r=this._visibleLines.getEndLineNumber();for(let o=i;o<=r;o++)if(this._visibleLines.getVisibleLine(o).needsMonospaceFontCheck()){this._asyncCheckMonospaceFontAssumptions.schedule();break}}this._linesContent.setLayerHinting(this._canUseLayerHinting),this._linesContent.setContain("strict");const t=this._context.viewLayout.getCurrentScrollTop()-e.bigNumbersDelta;this._linesContent.setTop(-t),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())}_ensureMaxLineWidth(e){const t=Math.ceil(e);this._maxLineWidth0){let C=o[0].startLineNumber,v=o[0].endLineNumber;for(let w=1,S=o.length;wl){if(!c)return-1;b=d}else if(s===5||s===6)if(s===6&&a<=d&&h<=u)b=a;else{const C=Math.max(5*this._lineHeight,l*.2),v=d-C,w=h-l;b=Math.max(w,v)}else if(s===1||s===2)if(s===2&&a<=d&&h<=u)b=a;else{const C=(d+h)/2;b=Math.max(0,C-l/2)}else b=this._computeMinimumScrolling(a,u,d,h,s===3,s===4);return b}_computeScrollLeftToReveal(e){const t=this._context.viewLayout.getCurrentViewport(),i=this._context.configuration.options.get(144),r=t.left,o=r+t.width-i.verticalScrollbarWidth;let s=1073741824,a=0;if(e.type==="range"){const u=this._visibleRangesForLineRange(e.lineNumber,e.startColumn,e.endColumn);if(!u)return null;for(const c of u.ranges)s=Math.min(s,Math.round(c.left)),a=Math.max(a,Math.round(c.left+c.width))}else for(const u of e.selections){if(u.startLineNumber!==u.endLineNumber)return null;const c=this._visibleRangesForLineRange(u.startLineNumber,u.startColumn,u.endColumn);if(!c)return null;for(const d of c.ranges)s=Math.min(s,Math.round(d.left)),a=Math.max(a,Math.round(d.left+d.width))}return e.minimalReveal||(s=Math.max(0,s-UT.HORIZONTAL_EXTRA_PX),a+=this._revealHorizontalRightPadding),e.type==="selections"&&a-s>t.width?null:{scrollLeft:this._computeMinimumScrolling(r,o,s,a),maxHorizontalOffset:a}}_computeMinimumScrolling(e,t,i,r,o,s){e=e|0,t=t|0,i=i|0,r=r|0,o=!!o,s=!!s;const a=t-e;if(r-it)return Math.max(0,r-a)}else return i;return e}}UT.HORIZONTAL_EXTRA_PX=30;class MCt extends CCe{constructor(e){super(),this._context=e;const i=this._context.configuration.options.get(144);this._decorationsLeft=i.decorationsLeft,this._decorationsWidth=i.decorationsWidth,this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const i=this._context.configuration.options.get(144);return this._decorationsLeft=i.decorationsLeft,this._decorationsWidth=i.decorationsWidth,!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_getDecorations(e){var t,i;const r=e.getDecorationsInViewport(),o=[];let s=0;for(let a=0,l=r.length;a',l=[];for(let u=t;u<=i;u++){const c=u-t,d=r[c].getDecorations();let h="";for(const g of d){let m='
';o[a]=u}this._renderResult=o}render(e,t){return this._renderResult?this._renderResult[t-e]:""}}class Zc{constructor(e,t,i,r){this._rgba8Brand=void 0,this.r=Zc._clamp(e),this.g=Zc._clamp(t),this.b=Zc._clamp(i),this.a=Zc._clamp(r)}equals(e){return this.r===e.r&&this.g===e.g&&this.b===e.b&&this.a===e.a}static _clamp(e){return e<0?0:e>255?255:e|0}}Zc.Empty=new Zc(0,0,0,0);class k_ extends De{static getInstance(){return this._INSTANCE||(this._INSTANCE=new k_),this._INSTANCE}constructor(){super(),this._onDidChange=new be,this.onDidChange=this._onDidChange.event,this._updateColorMap(),this._register(mo.onDidChange(e=>{e.changedColorMap&&this._updateColorMap()}))}_updateColorMap(){const e=mo.getColorMap();if(!e){this._colors=[Zc.Empty],this._backgroundIsLight=!0;return}this._colors=[Zc.Empty];for(let i=1;i=.5,this._onDidChange.fire(void 0)}getColor(e){return(e<1||e>=this._colors.length)&&(e=2),this._colors[e]}backgroundIsLight(){return this._backgroundIsLight}}k_._INSTANCE=null;class ICe{constructor(e,t,i,r){this._viewportBrand=void 0,this.top=e|0,this.left=t|0,this.width=i|0,this.height=r|0}}class TCt{constructor(e,t){this.tabSize=e,this.data=t}}class d6{constructor(e,t,i,r,o,s,a){this._viewLineDataBrand=void 0,this.content=e,this.continuesWithWrappedLine=t,this.minColumn=i,this.maxColumn=r,this.startVisibleColumn=o,this.tokens=s,this.inlineDecorations=a}}class Ou{constructor(e,t,i,r,o,s,a,l,u,c){this.minColumn=e,this.maxColumn=t,this.content=i,this.continuesWithWrappedLine=r,this.isBasicASCII=Ou.isBasicASCII(i,s),this.containsRTL=Ou.containsRTL(i,this.isBasicASCII,o),this.tokens=a,this.inlineDecorations=l,this.tabSize=u,this.startVisibleColumn=c}static isBasicASCII(e,t){return t?kF(e):!0}static containsRTL(e,t,i){return!t&&i?KI(e):!1}}class M_{constructor(e,t,i){this.range=e,this.inlineClassName=t,this.type=i}}class ECt{constructor(e,t,i,r){this.startOffset=e,this.endOffset=t,this.inlineClassName=i,this.inlineClassNameAffectsLetterSpacing=r}toInlineDecoration(e){return new M_(new K(e,this.startOffset+1,e,this.endOffset+1),this.inlineClassName,this.inlineClassNameAffectsLetterSpacing?3:0)}}class wCe{constructor(e,t){this._viewModelDecorationBrand=void 0,this.range=e,this.options=t}}class Z_{constructor(e,t,i){this.color=e,this.zIndex=t,this.data=i}static compareByRenderingProps(e,t){return e.zIndex===t.zIndex?e.colort.color?1:0:e.zIndex-t.zIndex}static equals(e,t){return e.color===t.color&&e.zIndex===t.zIndex&&Ar(e.data,t.data)}static equalsArr(e,t){return Ar(e,t,Z_.equals)}}const WCt=(()=>{const n=[];for(let e=32;e<=126;e++)n.push(e);return n.push(65533),n})(),RCt=(n,e)=>(n-=32,n<0||n>96?e<=2?(n+96)%96:95:n);class T_{constructor(e,t){this.scale=t,this._minimapCharRendererBrand=void 0,this.charDataNormal=T_.soften(e,12/15),this.charDataLight=T_.soften(e,50/60)}static soften(e,t){const i=new Uint8ClampedArray(e.length);for(let r=0,o=e.length;re.width||i+m>e.height)return;const f=c?this.charDataLight:this.charDataNormal,b=RCt(r,u),C=e.width*4,v=a.r,w=a.g,S=a.b,F=o.r-v,L=o.g-w,D=o.b-S,A=Math.max(s,l),M=e.data;let W=b*h*g,Z=i*C+t*4;for(let T=0;Te.width||i+d>e.height)return;const h=e.width*4,g=.5*(o/255),m=s.r,f=s.g,b=s.b,C=r.r-m,v=r.g-f,w=r.b-b,S=m+C*g,F=f+v*g,L=b+w*g,D=Math.max(o,a),A=e.data;let M=i*h+t*4;for(let W=0;W{const e=new Uint8ClampedArray(n.length/2);for(let t=0;t>1]=SCe[n[t]]<<4|SCe[n[t+1]]&15;return e},LCe={1:BI(()=>xCe("0000511D6300CF609C709645A78432005642574171487021003C451900274D35D762755E8B629C5BA856AF57BA649530C167D1512A272A3F6038604460398526BCA2A968DB6F8957C768BE5FBE2FB467CF5D8D5B795DC7625B5DFF50DE64C466DB2FC47CD860A65E9A2EB96CB54CE06DA763AB2EA26860524D3763536601005116008177A8705E53AB738E6A982F88BAA35B5F5B626D9C636B449B737E5B7B678598869A662F6B5B8542706C704C80736A607578685B70594A49715A4522E792")),2:BI(()=>xCe("000000000000000055394F383D2800008B8B1F210002000081B1CBCBCC820000847AAF6B9AAF2119BE08B8881AD60000A44FD07DCCF107015338130C00000000385972265F390B406E2437634B4B48031B12B8A0847000001E15B29A402F0000000000004B33460B00007A752C2A0000000000004D3900000084394B82013400ABA5CFC7AD9C0302A45A3E5A98AB000089A43382D97900008BA54AA087A70A0248A6A7AE6DBE0000BF6F94987EA40A01A06DCFA7A7A9030496C32F77891D0000A99FB1A0AFA80603B29AB9CA75930D010C0948354D3900000C0948354F37460D0028BE673D8400000000AF9D7B6E00002B007AA8933400007AA642675C2700007984CFB9C3985B768772A8A6B7B20000CAAECAAFC4B700009F94A6009F840009D09F9BA4CA9C0000CC8FC76DC87F0000C991C472A2000000A894A48CA7B501079BA2C9C69BA20000B19A5D3FA89000005CA6009DA2960901B0A7F0669FB200009D009E00B7890000DAD0F5D092820000D294D4C48BD10000B5A7A4A3B1A50402CAB6CBA6A2000000B5A7A4A3B1A8044FCDADD19D9CB00000B7778F7B8AAE0803C9AB5D3F5D3F00009EA09EA0BAB006039EA0989A8C7900009B9EF4D6B7C00000A9A7816CACA80000ABAC84705D3F000096DA635CDC8C00006F486F266F263D4784006124097B00374F6D2D6D2D6D4A3A95872322000000030000000000008D8939130000000000002E22A5C9CBC70600AB25C0B5C9B400061A2DB04CA67001082AA6BEBEBFC606002321DACBC19E03087AA08B6768380000282FBAC0B8CA7A88AD25BBA5A29900004C396C5894A6000040485A6E356E9442A32CD17EADA70000B4237923628600003E2DE9C1D7B500002F25BBA5A2990000231DB6AFB4A804023025C0B5CAB588062B2CBDBEC0C706882435A75CA20000002326BD6A82A908048B4B9A5A668000002423A09CB4BB060025259C9D8A7900001C1FCAB2C7C700002A2A9387ABA200002626A4A47D6E9D14333163A0C87500004B6F9C2D643A257049364936493647358A34438355497F1A0000A24C1D590000D38DFFBDD4CD3126"))};class E_{static create(e,t){if(this.lastCreated&&e===this.lastCreated.scale&&t===this.lastFontFamily)return this.lastCreated;let i;return LCe[e]?i=new T_(LCe[e](),e):i=E_.createFromSampleData(E_.createSampleData(t).data,e),this.lastFontFamily=t,this.lastCreated=i,i}static createSampleData(e){const t=document.createElement("canvas"),i=t.getContext("2d");t.style.height="16px",t.height=16,t.width=96*10,t.style.width=96*10+"px",i.fillStyle="#ffffff",i.font=`bold 16px ${e}`,i.textBaseline="middle";let r=0;for(const o of WCt)i.fillText(String.fromCharCode(o),r,16/2),r+=10;return i.getImageData(0,0,96*10,16)}static createFromSampleData(e,t){if(e.length!==61440)throw new Error("Unexpected source in MinimapCharRenderer");const r=E_._downsample(e,t);return new T_(r,t)}static _downsampleChar(e,t,i,r,o){const s=1*o,a=2*o;let l=r,u=0;for(let c=0;c0){const u=255/l;for(let c=0;cE_.create(this.fontScale,l.fontFamily)),this.defaultBackgroundColor=i.getColor(2),this.backgroundColor=W_._getMinimapBackground(t,this.defaultBackgroundColor),this.foregroundAlpha=W_._getMinimapForegroundOpacity(t)}static _getMinimapBackground(e,t){const i=e.getColor(a0t);return i?new Zc(i.rgba.r,i.rgba.g,i.rgba.b,Math.round(255*i.rgba.a)):t}static _getMinimapForegroundOpacity(e){const t=e.getColor(l0t);return t?Zc._clamp(Math.round(255*t.rgba.a)):255}equals(e){return this.renderMinimap===e.renderMinimap&&this.size===e.size&&this.minimapHeightIsEditorHeight===e.minimapHeightIsEditorHeight&&this.scrollBeyondLastLine===e.scrollBeyondLastLine&&this.paddingTop===e.paddingTop&&this.paddingBottom===e.paddingBottom&&this.showSlider===e.showSlider&&this.autohide===e.autohide&&this.pixelRatio===e.pixelRatio&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.lineHeight===e.lineHeight&&this.minimapLeft===e.minimapLeft&&this.minimapWidth===e.minimapWidth&&this.minimapHeight===e.minimapHeight&&this.canvasInnerWidth===e.canvasInnerWidth&&this.canvasInnerHeight===e.canvasInnerHeight&&this.canvasOuterWidth===e.canvasOuterWidth&&this.canvasOuterHeight===e.canvasOuterHeight&&this.isSampling===e.isSampling&&this.editorHeight===e.editorHeight&&this.fontScale===e.fontScale&&this.minimapLineHeight===e.minimapLineHeight&&this.minimapCharWidth===e.minimapCharWidth&&this.defaultBackgroundColor&&this.defaultBackgroundColor.equals(e.defaultBackgroundColor)&&this.backgroundColor&&this.backgroundColor.equals(e.backgroundColor)&&this.foregroundAlpha===e.foregroundAlpha}}class R_{constructor(e,t,i,r,o,s,a,l,u){this.scrollTop=e,this.scrollHeight=t,this.sliderNeeded=i,this._computedSliderRatio=r,this.sliderTop=o,this.sliderHeight=s,this.topPaddingLineCount=a,this.startLineNumber=l,this.endLineNumber=u}getDesiredScrollTopFromDelta(e){return Math.round(this.scrollTop+e/this._computedSliderRatio)}getDesiredScrollTopFromTouchLocation(e){return Math.round((e-this.sliderHeight/2)/this._computedSliderRatio)}intersectWithViewport(e){const t=Math.max(this.startLineNumber,e.startLineNumber),i=Math.min(this.endLineNumber,e.endLineNumber);return t>i?null:[t,i]}getYForLineNumber(e,t){return+(e-this.startLineNumber+this.topPaddingLineCount)*t}static create(e,t,i,r,o,s,a,l,u,c,d){const h=e.pixelRatio,g=e.minimapLineHeight,m=Math.floor(e.canvasInnerHeight/g),f=e.lineHeight;if(e.minimapHeightIsEditorHeight){let L=l*e.lineHeight+e.paddingTop+e.paddingBottom;e.scrollBeyondLastLine&&(L+=Math.max(0,o-e.lineHeight-e.paddingBottom));const D=Math.max(1,Math.floor(o*o/L)),A=Math.max(0,e.minimapHeight-D),M=A/(c-o),W=u*M,Z=A>0,T=Math.floor(e.canvasInnerHeight/e.minimapLineHeight),E=Math.floor(e.paddingTop/e.lineHeight);return new R_(u,c,Z,M,W,D,E,1,Math.min(a,T))}let b;if(s&&i!==a){const L=i-t+1;b=Math.floor(L*g/h)}else{const L=o/f;b=Math.floor(L*g/h)}const C=Math.floor(e.paddingTop/f);let v=Math.floor(e.paddingBottom/f);if(e.scrollBeyondLastLine){const L=o/f;v=Math.max(v,L-1)}let w;if(v>0){const L=o/f;w=(C+a+v-L-1)*g/h}else w=Math.max(0,(C+a)*g/h-b);w=Math.min(e.minimapHeight-b,w);const S=w/(c-o),F=u*S;if(m>=C+a+v){const L=w>0;return new R_(u,c,L,S,F,b,C,1,a)}else{let L;t>1?L=t+C:L=Math.max(1,u/f);let D,A=Math.max(1,Math.floor(L-F*h/g));Au&&(A=Math.min(A,d.startLineNumber),D=Math.max(D,d.topPaddingLineCount)),d.scrollTop=e.paddingTop?Z=(t-A+D+W)*g/h:Z=u/e.paddingTop*(D+W)*g/h,new R_(u,c,!0,S,Z,b,D,A,M)}}}class JT{constructor(e){this.dy=e}onContentChanged(){this.dy=-1}onTokensChanged(){this.dy=-1}}JT.INVALID=new JT(-1);class FCe{constructor(e,t,i){this.renderedLayout=e,this._imageData=t,this._renderedLines=new hCe(()=>JT.INVALID),this._renderedLines._set(e.startLineNumber,i)}linesEquals(e){if(!this.scrollEquals(e))return!1;const i=this._renderedLines._get().lines;for(let r=0,o=i.length;r1){for(let C=0,v=r-1;C0&&this.minimapLines[i-1]>=e;)i--;let r=this.modelLineToMinimapLine(t)-1;for(;r+1t)return null}return[i+1,r+1]}decorationLineRangeToMinimapLineRange(e,t){let i=this.modelLineToMinimapLine(e),r=this.modelLineToMinimapLine(t);return e!==t&&r===i&&(r===this.minimapLines.length?i>1&&i--:r++),[i,r]}onLinesDeleted(e){const t=e.toLineNumber-e.fromLineNumber+1;let i=this.minimapLines.length,r=0;for(let o=this.minimapLines.length-1;o>=0&&!(this.minimapLines[o]=0&&!(this.minimapLines[i]0,scrollWidth:e.scrollWidth,scrollHeight:e.scrollHeight,viewportStartLineNumber:t,viewportEndLineNumber:i,viewportStartLineNumberVerticalOffset:e.getVerticalOffsetForLineNumber(t),scrollTop:e.scrollTop,scrollLeft:e.scrollLeft,viewportWidth:e.viewportWidth,viewportHeight:e.viewportHeight};this._actual.render(r)}_recreateLineSampling(){this._minimapSelections=null;const e=!!this._samplingState,[t,i]=G_.compute(this.options,this._context.viewModel.getLineCount(),this._samplingState);if(this._samplingState=t,e&&this._samplingState)for(const r of i)switch(r.type){case"deleted":this._actual.onLinesDeleted(r.deleteFromLineNumber,r.deleteToLineNumber);break;case"inserted":this._actual.onLinesInserted(r.insertFromLineNumber,r.insertToLineNumber);break;case"flush":this._actual.onFlushed();break}}getLineCount(){return this._samplingState?this._samplingState.minimapLines.length:this._context.viewModel.getLineCount()}getRealLineCount(){return this._context.viewModel.getLineCount()}getLineContent(e){return this._samplingState?this._context.viewModel.getLineContent(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineContent(e)}getLineMaxColumn(e){return this._samplingState?this._context.viewModel.getLineMaxColumn(this._samplingState.minimapLines[e-1]):this._context.viewModel.getLineMaxColumn(e)}getMinimapLinesRenderingData(e,t,i){if(this._samplingState){const r=[];for(let o=0,s=t-e+1;o{if(i.preventDefault(),this._model.options.renderMinimap===0||!this._lastRenderData)return;if(this._model.options.size!=="proportional"){if(i.button===0&&this._lastRenderData){const u=go(this._slider.domNode),c=u.top+u.height/2;this._startSliderDragging(i,c,this._lastRenderData.renderedLayout)}return}const o=this._model.options.minimapLineHeight,s=this._model.options.canvasInnerHeight/this._model.options.canvasOuterHeight*i.offsetY;let l=Math.floor(s/o)+this._lastRenderData.renderedLayout.startLineNumber-this._lastRenderData.renderedLayout.topPaddingLineCount;l=Math.min(l,this._model.getLineCount()),this._model.revealLineNumber(l)}),this._sliderPointerMoveMonitor=new x2,this._sliderPointerDownListener=Gr(this._slider.domNode,at.POINTER_DOWN,i=>{i.preventDefault(),i.stopPropagation(),i.button===0&&this._lastRenderData&&this._startSliderDragging(i,i.pageY,this._lastRenderData.renderedLayout)}),this._gestureDisposable=er.addTarget(this._domNode.domNode),this._sliderTouchStartListener=Ve(this._domNode.domNode,qi.Start,i=>{i.preventDefault(),i.stopPropagation(),this._lastRenderData&&(this._slider.toggleClassName("active",!0),this._gestureInProgress=!0,this.scrollDueToTouchEvent(i))},{passive:!1}),this._sliderTouchMoveListener=Ve(this._domNode.domNode,qi.Change,i=>{i.preventDefault(),i.stopPropagation(),this._lastRenderData&&this._gestureInProgress&&this.scrollDueToTouchEvent(i)},{passive:!1}),this._sliderTouchEndListener=Gr(this._domNode.domNode,qi.End,i=>{i.preventDefault(),i.stopPropagation(),this._gestureInProgress=!1,this._slider.toggleClassName("active",!1)})}_startSliderDragging(e,t,i){if(!e.target||!(e.target instanceof Element))return;const r=e.pageX;this._slider.toggleClassName("active",!0);const o=(s,a)=>{const l=go(this._domNode.domNode),u=Math.min(Math.abs(a-r),Math.abs(a-l.left),Math.abs(a-l.left-l.width));if(ya&&u>GCt){this._model.setScrollTop(i.scrollTop);return}const c=s-t;this._model.setScrollTop(i.getDesiredScrollTopFromDelta(c))};e.pageY!==t&&o(e.pageY,r),this._sliderPointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,s=>o(s.pageY,s.pageX),()=>{this._slider.toggleClassName("active",!1)})}scrollDueToTouchEvent(e){const t=this._domNode.domNode.getBoundingClientRect().top,i=this._lastRenderData.renderedLayout.getDesiredScrollTopFromTouchLocation(e.pageY-t);this._model.setScrollTop(i)}dispose(){this._pointerDownListener.dispose(),this._sliderPointerMoveMonitor.dispose(),this._sliderPointerDownListener.dispose(),this._gestureDisposable.dispose(),this._sliderTouchStartListener.dispose(),this._sliderTouchMoveListener.dispose(),this._sliderTouchEndListener.dispose(),super.dispose()}_getMinimapDomNodeClassName(){const e=["minimap"];return this._model.options.showSlider==="always"?e.push("slider-always"):e.push("slider-mouseover"),this._model.options.autohide&&e.push("autohide"),e.join(" ")}getDomNode(){return this._domNode}_applyLayout(){this._domNode.setLeft(this._model.options.minimapLeft),this._domNode.setWidth(this._model.options.minimapWidth),this._domNode.setHeight(this._model.options.minimapHeight),this._shadow.setHeight(this._model.options.minimapHeight),this._canvas.setWidth(this._model.options.canvasOuterWidth),this._canvas.setHeight(this._model.options.canvasOuterHeight),this._canvas.domNode.width=this._model.options.canvasInnerWidth,this._canvas.domNode.height=this._model.options.canvasInnerHeight,this._decorationsCanvas.setWidth(this._model.options.canvasOuterWidth),this._decorationsCanvas.setHeight(this._model.options.canvasOuterHeight),this._decorationsCanvas.domNode.width=this._model.options.canvasInnerWidth,this._decorationsCanvas.domNode.height=this._model.options.canvasInnerHeight,this._slider.setWidth(this._model.options.minimapWidth)}_getBuffer(){return this._buffers||this._model.options.canvasInnerWidth>0&&this._model.options.canvasInnerHeight>0&&(this._buffers=new h6(this._canvas.domNode.getContext("2d"),this._model.options.canvasInnerWidth,this._model.options.canvasInnerHeight,this._model.options.backgroundColor)),this._buffers?this._buffers.getBuffer():null}onDidChangeOptions(){this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName())}onSelectionChanged(){return this._renderDecorations=!0,!0}onDecorationsChanged(){return this._renderDecorations=!0,!0}onFlushed(){return this._lastRenderData=null,!0}onLinesChanged(e,t){return this._lastRenderData?this._lastRenderData.onLinesChanged(e,t):!1}onLinesDeleted(e,t){var i;return(i=this._lastRenderData)===null||i===void 0||i.onLinesDeleted(e,t),!0}onLinesInserted(e,t){var i;return(i=this._lastRenderData)===null||i===void 0||i.onLinesInserted(e,t),!0}onScrollChanged(){return this._renderDecorations=!0,!0}onThemeChanged(){return this._selectionColor=this._theme.getColor(k1e),this._renderDecorations=!0,!0}onTokensChanged(e){return this._lastRenderData?this._lastRenderData.onTokensChanged(e):!1}onTokensColorsChanged(){return this._lastRenderData=null,this._buffers=null,!0}onZonesChanged(){return this._lastRenderData=null,!0}render(e){if(this._model.options.renderMinimap===0){this._shadow.setClassName("minimap-shadow-hidden"),this._sliderHorizontal.setWidth(0),this._sliderHorizontal.setHeight(0);return}e.scrollLeft+e.viewportWidth>=e.scrollWidth?this._shadow.setClassName("minimap-shadow-hidden"):this._shadow.setClassName("minimap-shadow-visible");const i=R_.create(this._model.options,e.viewportStartLineNumber,e.viewportEndLineNumber,e.viewportStartLineNumberVerticalOffset,e.viewportHeight,e.viewportContainsWhitespaceGaps,this._model.getLineCount(),this._model.getRealLineCount(),e.scrollTop,e.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setDisplay(i.sliderNeeded?"block":"none"),this._slider.setTop(i.sliderTop),this._slider.setHeight(i.sliderHeight),this._sliderHorizontal.setLeft(0),this._sliderHorizontal.setWidth(this._model.options.minimapWidth),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(i.sliderHeight),this.renderDecorations(i),this._lastRenderData=this.renderLines(i)}renderDecorations(e){if(this._renderDecorations){this._renderDecorations=!1;const t=this._model.getSelections();t.sort(K.compareRangesUsingStarts);const i=this._model.getMinimapDecorationsInViewport(e.startLineNumber,e.endLineNumber);i.sort((h,g)=>(h.options.zIndex||0)-(g.options.zIndex||0));const{canvasInnerWidth:r,canvasInnerHeight:o}=this._model.options,s=this._model.options.minimapLineHeight,a=this._model.options.minimapCharWidth,l=this._model.getOptions().tabSize,u=this._decorationsCanvas.domNode.getContext("2d");u.clearRect(0,0,r,o);const c=new _Ce(e.startLineNumber,e.endLineNumber,!1);this._renderSelectionLineHighlights(u,t,c,e,s),this._renderDecorationsLineHighlights(u,i,c,e,s);const d=new _Ce(e.startLineNumber,e.endLineNumber,null);this._renderSelectionsHighlights(u,t,d,e,s,l,a,r),this._renderDecorationsHighlights(u,i,d,e,s,l,a,r)}}_renderSelectionLineHighlights(e,t,i,r,o){if(!this._selectionColor||this._selectionColor.isTransparent())return;e.fillStyle=this._selectionColor.transparent(.5).toString();let s=0,a=0;for(const l of t){const u=r.intersectWithViewport(l);if(!u)continue;const[c,d]=u;for(let m=c;m<=d;m++)i.set(m,!0);const h=r.getYForLineNumber(c,o),g=r.getYForLineNumber(d,o);a>=h||(a>s&&e.fillRect(Mb,s,e.canvas.width,a-s),s=h),a=g}a>s&&e.fillRect(Mb,s,e.canvas.width,a-s)}_renderDecorationsLineHighlights(e,t,i,r,o){const s=new Map;for(let a=t.length-1;a>=0;a--){const l=t[a],u=l.options.minimap;if(!u||u.position!==uu.Inline)continue;const c=r.intersectWithViewport(l.range);if(!c)continue;const[d,h]=c,g=u.getColor(this._theme.value);if(!g||g.isTransparent())continue;let m=s.get(g.toString());m||(m=g.transparent(.5).toString(),s.set(g.toString(),m)),e.fillStyle=m;for(let f=d;f<=h;f++){if(i.has(f))continue;i.set(f,!0);const b=r.getYForLineNumber(d,o);e.fillRect(Mb,b,e.canvas.width,o)}}}_renderSelectionsHighlights(e,t,i,r,o,s,a,l){if(!(!this._selectionColor||this._selectionColor.isTransparent()))for(const u of t){const c=r.intersectWithViewport(u);if(!c)continue;const[d,h]=c;for(let g=d;g<=h;g++)this.renderDecorationOnLine(e,i,u,this._selectionColor,r,g,o,o,s,a,l)}}_renderDecorationsHighlights(e,t,i,r,o,s,a,l){for(const u of t){const c=u.options.minimap;if(!c)continue;const d=r.intersectWithViewport(u.range);if(!d)continue;const[h,g]=d,m=c.getColor(this._theme.value);if(!(!m||m.isTransparent()))for(let f=h;f<=g;f++)switch(c.position){case uu.Inline:this.renderDecorationOnLine(e,i,u.range,m,r,f,o,o,s,a,l);continue;case uu.Gutter:{const b=r.getYForLineNumber(f,o);this.renderDecoration(e,m,2,b,VCt,o);continue}}}}renderDecorationOnLine(e,t,i,r,o,s,a,l,u,c,d){const h=o.getYForLineNumber(s,l);if(h+a<0||h>this._model.options.canvasInnerHeight)return;const{startLineNumber:g,endLineNumber:m}=i,f=g===s?i.startColumn:1,b=m===s?i.endColumn:this._model.getLineMaxColumn(s),C=this.getXOffsetForPosition(t,s,f,u,c,d),v=this.getXOffsetForPosition(t,s,b,u,c,d);this.renderDecoration(e,r,C,h,v-C,a)}getXOffsetForPosition(e,t,i,r,o,s){if(i===1)return Mb;if((i-1)*o>=s)return s;let l=e.get(t);if(!l){const u=this._model.getLineContent(t);l=[Mb];let c=Mb;for(let d=1;d=s){l[d]=s;break}l[d]=m,c=m}e.set(t,l)}return i-1F?Math.floor((r-F)/2):0,D=h.a/255,A=new Zc(Math.round((h.r-d.r)*D+d.r),Math.round((h.g-d.g)*D+d.g),Math.round((h.b-d.b)*D+d.b),255);let M=e.topPaddingLineCount*r;const W=[];for(let z=0,O=i-t+1;z=0&&Zv)return;const T=b.charCodeAt(F);if(T===9){const E=h-(F+L)%h;L+=E-1,S+=E*s}else if(T===32)S+=s;else{const E=Ib(T)?2:1;for(let V=0;Vv)return}}}}}class _Ce{constructor(e,t,i){this._startLineNumber=e,this._endLineNumber=t,this._defaultValue=i,this._values=[];for(let r=0,o=this._endLineNumber-this._startLineNumber+1;rthis._endLineNumber||(this._values[e-this._startLineNumber]=t)}get(e){return ethis._endLineNumber?this._defaultValue:this._values[e-this._startLineNumber]}}class PCt extends lu{constructor(e,t){super(e),this._viewDomNode=t;const r=this._context.configuration.options.get(144);this._widgets={},this._verticalScrollbarWidth=r.verticalScrollbarWidth,this._minimapWidth=r.minimap.minimapWidth,this._horizontalScrollbarHeight=r.horizontalScrollbarHeight,this._editorHeight=r.height,this._editorWidth=r.width,this._viewDomNodeRect={top:0,left:0,width:0,height:0},this._domNode=Si(document.createElement("div")),Dh.write(this._domNode,4),this._domNode.setClassName("overlayWidgets"),this.overflowingOverlayWidgetsDomNode=Si(document.createElement("div")),Dh.write(this.overflowingOverlayWidgetsDomNode,5),this.overflowingOverlayWidgetsDomNode.setClassName("overflowingOverlayWidgets")}dispose(){super.dispose(),this._widgets={}}getDomNode(){return this._domNode}onConfigurationChanged(e){const i=this._context.configuration.options.get(144);return this._verticalScrollbarWidth=i.verticalScrollbarWidth,this._minimapWidth=i.minimap.minimapWidth,this._horizontalScrollbarHeight=i.horizontalScrollbarHeight,this._editorHeight=i.height,this._editorWidth=i.width,!0}addWidget(e){const t=Si(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:null,domNode:t},t.setPosition("absolute"),t.setAttribute("widgetId",e.getId()),e.allowEditorOverflow?this.overflowingOverlayWidgetsDomNode.appendChild(t):this._domNode.appendChild(t),this.setShouldRender(),this._updateMaxMinWidth()}setWidgetPosition(e,t){const i=this._widgets[e.getId()];return i.preference===t?(this._updateMaxMinWidth(),!1):(i.preference=t,this.setShouldRender(),this._updateMaxMinWidth(),!0)}removeWidget(e){const t=e.getId();if(this._widgets.hasOwnProperty(t)){const r=this._widgets[t].domNode.domNode;delete this._widgets[t],r.remove(),this.setShouldRender(),this._updateMaxMinWidth()}}_updateMaxMinWidth(){var e,t;let i=0;const r=Object.keys(this._widgets);for(let o=0,s=r.length;o=3){const o=Math.floor(r/3),s=Math.floor(r/3),a=r-o-s,l=e,u=l+o,c=l+o+a;return[[0,l,u,l,c,l,u,l],[0,o,a,o+a,s,o+a+s,a+s,o+a+s]]}else if(i===2){const o=Math.floor(r/2),s=r-o,a=e,l=a+o;return[[0,a,a,a,l,a,a,a],[0,o,o,o,s,o+s,o+s,o+s]]}else{const o=e,s=r;return[[0,o,o,o,o,o,o,o],[0,s,s,s,s,s,s,s]]}}equals(e){return this.lineHeight===e.lineHeight&&this.pixelRatio===e.pixelRatio&&this.overviewRulerLanes===e.overviewRulerLanes&&this.renderBorder===e.renderBorder&&this.borderColor===e.borderColor&&this.hideCursor===e.hideCursor&&this.cursorColor===e.cursorColor&&this.themeType===e.themeType&&Ee.equals(this.backgroundColor,e.backgroundColor)&&this.top===e.top&&this.right===e.right&&this.domWidth===e.domWidth&&this.domHeight===e.domHeight&&this.canvasWidth===e.canvasWidth&&this.canvasHeight===e.canvasHeight}}class BCt extends lu{constructor(e){super(e),this._actualShouldRender=0,this._renderedDecorations=[],this._renderedCursorPositions=[],this._domNode=Si(document.createElement("canvas")),this._domNode.setClassName("decorationsOverviewRuler"),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._domNode.setAttribute("aria-hidden","true"),this._updateSettings(!1),this._tokensColorTrackerListener=mo.onDidChange(t=>{t.changedColorMap&&this._updateSettings(!0)}),this._cursorPositions=[new ve(1,1)]}dispose(){super.dispose(),this._tokensColorTrackerListener.dispose()}_updateSettings(e){const t=new OCt(this._context.configuration,this._context.theme);return this._settings&&this._settings.equals(t)?!1:(this._settings=t,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,e&&this._render(),!0)}_markRenderingIsNeeded(){return this._actualShouldRender=2,!0}_markRenderingIsMaybeNeeded(){return this._actualShouldRender=1,!0}onConfigurationChanged(e){return this._updateSettings(!1)?this._markRenderingIsNeeded():!1}onCursorStateChanged(e){this._cursorPositions=[];for(let t=0,i=e.selections.length;tm.lineNumber===f.lineNumber)&&(this._actualShouldRender=2),this._actualShouldRender===1)return;this._renderedDecorations=t,this._renderedCursorPositions=this._cursorPositions,this._domNode.setDisplay("block");const i=this._settings.canvasWidth,r=this._settings.canvasHeight,o=this._settings.lineHeight,s=this._context.viewLayout,a=this._context.viewLayout.getScrollHeight(),l=r/a,u=6*this._settings.pixelRatio|0,c=u/2|0,d=this._domNode.domNode.getContext("2d");e?e.isOpaque()?(d.fillStyle=Ee.Format.CSS.formatHexA(e),d.fillRect(0,0,i,r)):(d.clearRect(0,0,i,r),d.fillStyle=Ee.Format.CSS.formatHexA(e),d.fillRect(0,0,i,r)):d.clearRect(0,0,i,r);const h=this._settings.x,g=this._settings.w;for(const m of t){const f=m.color,b=m.data;d.fillStyle=f;let C=0,v=0,w=0;for(let S=0,F=b.length/3;Sr&&(T=r-c),M=T-c,W=T+c}M>w+1||L!==C?(S!==0&&d.fillRect(h[C],v,g[C],w-v),C=L,v=M,w=W):W>w&&(w=W)}d.fillRect(h[C],v,g[C],w-v)}if(!this._settings.hideCursor&&this._settings.cursorColor){const m=2*this._settings.pixelRatio|0,f=m/2|0,b=this._settings.x[7],C=this._settings.w[7];d.fillStyle=this._settings.cursorColor;let v=-100,w=-100;for(let S=0,F=this._cursorPositions.length;Sr&&(D=r-f);const A=D-f,M=A+m;A>w+1?(S!==0&&d.fillRect(b,v,C,w-v),v=A,w=M):M>w&&(w=M)}d.fillRect(b,v,C,w-v)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(d.beginPath(),d.lineWidth=1,d.strokeStyle=this._settings.borderColor,d.moveTo(0,0),d.lineTo(0,r),d.stroke(),d.moveTo(0,0),d.lineTo(i,0),d.stroke())}}class DCe{constructor(e,t,i){this._colorZoneBrand=void 0,this.from=e|0,this.to=t|0,this.colorId=i|0}static compare(e,t){return e.colorId===t.colorId?e.from===t.from?e.to-t.to:e.from-t.from:e.colorId-t.colorId}}class ACe{constructor(e,t,i,r){this._overviewRulerZoneBrand=void 0,this.startLineNumber=e,this.endLineNumber=t,this.heightInLines=i,this.color=r,this._colorZone=null}static compare(e,t){return e.color===t.color?e.startLineNumber===t.startLineNumber?e.heightInLines===t.heightInLines?e.endLineNumber-t.endLineNumber:e.heightInLines-t.heightInLines:e.startLineNumber-t.startLineNumber:e.colori&&(f=i-b);const C=c.color;let v=this._color2Id[C];v||(v=++this._lastAssignedId,this._color2Id[C]=v,this._id2Color[v]=C);const w=new DCe(f-b,f+b,v);c.setColorZone(w),a.push(w)}return this._colorZonesInvalid=!1,a.sort(DCe.compare),a}}class YCt extends h_{constructor(e,t){super(),this._context=e;const i=this._context.configuration.options;this._domNode=Si(document.createElement("canvas")),this._domNode.setClassName(t),this._domNode.setPosition("absolute"),this._domNode.setLayerHinting(!0),this._domNode.setContain("strict"),this._zoneManager=new zCt(r=>this._context.viewLayout.getVerticalOffsetForLineNumber(r)),this._zoneManager.setDOMWidth(0),this._zoneManager.setDOMHeight(0),this._zoneManager.setOuterHeight(this._context.viewLayout.getScrollHeight()),this._zoneManager.setLineHeight(i.get(67)),this._zoneManager.setPixelRatio(i.get(142)),this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return e.hasChanged(67)&&(this._zoneManager.setLineHeight(t.get(67)),this._render()),e.hasChanged(142)&&(this._zoneManager.setPixelRatio(t.get(142)),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0}onFlushed(e){return this._render(),!0}onScrollChanged(e){return e.scrollHeightChanged&&(this._zoneManager.setOuterHeight(e.scrollHeight),this._render()),!0}onZonesChanged(e){return this._render(),!0}getDomNode(){return this._domNode.domNode}setLayout(e){this._domNode.setTop(e.top),this._domNode.setRight(e.right);let t=!1;t=this._zoneManager.setDOMWidth(e.width)||t,t=this._zoneManager.setDOMHeight(e.height)||t,t&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())}setZones(e){this._zoneManager.setZones(e),this._render()}_render(){if(this._zoneManager.getOuterHeight()===0)return!1;const e=this._zoneManager.getCanvasWidth(),t=this._zoneManager.getCanvasHeight(),i=this._zoneManager.resolveColorZones(),r=this._zoneManager.getId2Color(),o=this._domNode.domNode.getContext("2d");return o.clearRect(0,0,e,t),i.length>0&&this._renderOneLane(o,i,r,e),!0}_renderOneLane(e,t,i,r){let o=0,s=0,a=0;for(const l of t){const u=l.colorId,c=l.from,d=l.to;u!==o?(e.fillRect(0,s,r,a-s),o=u,e.fillStyle=i[o],s=c,a=d):a>=c?a=Math.max(a,d):(e.fillRect(0,s,r,a-s),s=c,a=d)}e.fillRect(0,s,r,a-s)}}class HCt extends lu{constructor(e){super(e),this.domNode=Si(document.createElement("div")),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.domNode.setClassName("view-rulers"),this._renderedRulers=[];const t=this._context.configuration.options;this._rulers=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth}dispose(){super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._rulers=t.get(102),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onScrollChanged(e){return e.scrollHeightChanged}prepareRender(e){}_ensureRulersCount(){const e=this._renderedRulers.length,t=this._rulers.length;if(e===t)return;if(e0;){const a=Si(document.createElement("div"));a.setClassName("view-ruler"),a.setWidth(o),this.domNode.appendChild(a),this._renderedRulers.push(a),s--}return}let i=e-t;for(;i>0;){const r=this._renderedRulers.pop();this.domNode.removeChild(r),i--}}render(e){this._ensureRulersCount();for(let t=0,i=this._rulers.length;t0;return this._shouldShow!==e?(this._shouldShow=e,!0):!1}getDomNode(){return this._domNode}_updateWidth(){const t=this._context.configuration.options.get(144);t.minimap.renderMinimap===0||t.minimap.minimapWidth>0&&t.minimap.minimapLeft===0?this._width=t.width:this._width=t.width-t.verticalScrollbarWidth}onConfigurationChanged(e){const i=this._context.configuration.options.get(103);return this._useShadows=i.useShadows,this._updateWidth(),this._updateShouldShow(),!0}onScrollChanged(e){return this._scrollTop=e.scrollTop,this._updateShouldShow()}prepareRender(e){}render(e){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?"scroll-decoration":"")}}class JCt{constructor(e){this.left=e.left,this.width=e.width,this.startStyle=null,this.endStyle=null}}class KCt{constructor(e,t){this.lineNumber=e,this.ranges=t}}function jCt(n){return new JCt(n)}function QCt(n){return new KCt(n.lineNumber,n.ranges.map(jCt))}class eo extends JC{constructor(e){super(),this._previousFrameVisibleRangesWithStyle=[],this._context=e;const t=this._context.configuration.options;this._lineHeight=t.get(67),this._roundedSelection=t.get(101),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,this._selections=[],this._renderResult=null,this._context.addEventHandler(this)}dispose(){this._context.removeEventHandler(this),this._renderResult=null,super.dispose()}onConfigurationChanged(e){const t=this._context.configuration.options;return this._lineHeight=t.get(67),this._roundedSelection=t.get(101),this._typicalHalfwidthCharacterWidth=t.get(50).typicalHalfwidthCharacterWidth,!0}onCursorStateChanged(e){return this._selections=e.selections.slice(0),!0}onDecorationsChanged(e){return!0}onFlushed(e){return!0}onLinesChanged(e){return!0}onLinesDeleted(e){return!0}onLinesInserted(e){return!0}onScrollChanged(e){return e.scrollTopChanged}onZonesChanged(e){return!0}_visibleRangesHaveGaps(e){for(let t=0,i=e.length;t1)return!0;return!1}_enrichVisibleRangesWithStyle(e,t,i){const r=this._typicalHalfwidthCharacterWidth/4;let o=null,s=null;if(i&&i.length>0&&t.length>0){const a=t[0].lineNumber;if(a===e.startLineNumber)for(let u=0;!o&&u=0;u--)i[u].lineNumber===l&&(s=i[u].ranges[0]);o&&!o.startStyle&&(o=null),s&&!s.startStyle&&(s=null)}for(let a=0,l=t.length;a0){const m=t[a-1].ranges[0].left,f=t[a-1].ranges[0].left+t[a-1].ranges[0].width;jT(c-m)m&&(h.top=1),jT(d-f)'}_actualRenderOneSelection(e,t,i,r){if(r.length===0)return;const o=!!r[0].ranges[0].startStyle,s=this._lineHeight.toString(),a=(this._lineHeight-1).toString(),l=r[0].lineNumber,u=r[r.length-1].lineNumber;for(let c=0,d=r.length;c1,u)}this._previousFrameVisibleRangesWithStyle=o,this._renderResult=t.map(([s,a])=>s+a)}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}eo.SELECTION_CLASS_NAME="selected-text",eo.SELECTION_TOP_LEFT="top-left-radius",eo.SELECTION_BOTTOM_LEFT="bottom-left-radius",eo.SELECTION_TOP_RIGHT="top-right-radius",eo.SELECTION_BOTTOM_RIGHT="bottom-right-radius",eo.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background",eo.ROUNDED_PIECE_WIDTH=10,kc((n,e)=>{const t=n.getColor(pbt);t&&!t.isTransparent()&&e.addRule(`.monaco-editor .view-line span.inline-selected-text { color: ${t}; }`)});function jT(n){return n<0?-n:n}class NCe{constructor(e,t,i,r,o,s,a){this.top=e,this.left=t,this.paddingLeft=i,this.width=r,this.height=o,this.textContent=s,this.textContentClassName=a}}class kCe{constructor(e){this._context=e;const t=this._context.configuration.options,i=t.get(50);this._cursorStyle=t.get(28),this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(31),this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=Si(document.createElement("div")),this._domNode.setClassName(`cursor ${V2}`),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),Ks(this._domNode,i),this._domNode.setDisplay("none"),this._position=new ve(1,1),this._lastRenderedContent="",this._renderData=null}getDomNode(){return this._domNode}getPosition(){return this._position}show(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)}hide(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)}onConfigurationChanged(e){const t=this._context.configuration.options,i=t.get(50);return this._cursorStyle=t.get(28),this._lineHeight=t.get(67),this._typicalHalfwidthCharacterWidth=i.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(t.get(31),this._typicalHalfwidthCharacterWidth),Ks(this._domNode,i),!0}onCursorPositionChanged(e,t){return t?this._domNode.domNode.style.transitionProperty="none":this._domNode.domNode.style.transitionProperty="",this._position=e,!0}_getGraphemeAwarePosition(){const{lineNumber:e,column:t}=this._position,i=this._context.viewModel.getLineContent(e),[r,o]=Hht(i,t-1);return[new ve(e,r+1),i.substring(r,o)]}_prepareRender(e){let t="",i="";const[r,o]=this._getGraphemeAwarePosition();if(this._cursorStyle===Ds.Line||this._cursorStyle===Ds.LineThin){const h=e.visibleRangeForPosition(r);if(!h||h.outsideRenderedLine)return null;const g=qt(this._domNode.domNode);let m;this._cursorStyle===Ds.Line?(m=qbe(g,this._lineCursorWidth>0?this._lineCursorWidth:2),m>2&&(t=o,i=this._getTokenClassName(r))):m=qbe(g,1);let f=h.left,b=0;m>=2&&f>=1&&(b=1,f-=b);const C=e.getVerticalOffsetForLineNumber(r.lineNumber)-e.bigNumbersDelta;return new NCe(C,f,b,m,this._lineHeight,t,i)}const s=e.linesVisibleRangesForRange(new K(r.lineNumber,r.column,r.lineNumber,r.column+o.length),!1);if(!s||s.length===0)return null;const a=s[0];if(a.outsideRenderedLine||a.ranges.length===0)return null;const l=a.ranges[0],u=o===" "?this._typicalHalfwidthCharacterWidth:l.width<1?this._typicalHalfwidthCharacterWidth:l.width;this._cursorStyle===Ds.Block&&(t=o,i=this._getTokenClassName(r));let c=e.getVerticalOffsetForLineNumber(r.lineNumber)-e.bigNumbersDelta,d=this._lineHeight;return(this._cursorStyle===Ds.Underline||this._cursorStyle===Ds.UnderlineThin)&&(c+=this._lineHeight-2,d=2),new NCe(c,l.left,0,u,d,t,i)}_getTokenClassName(e){const t=this._context.viewModel.getViewLineData(e.lineNumber),i=t.tokens.findTokenIndexAtOffset(e.column-1);return t.tokens.getClassName(i)}prepareRender(e){this._renderData=this._prepareRender(e)}render(e){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setClassName(`cursor ${V2} ${this._renderData.textContentClassName}`),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setPaddingLeft(this._renderData.paddingLeft),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay("none"),null)}}class V_ extends lu{constructor(e){super(e);const t=this._context.configuration.options;this._readOnly=t.get(91),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._selectionIsEmpty=!0,this._isComposingInput=!1,this._isVisible=!1,this._primaryCursor=new kCe(this._context),this._secondaryCursors=[],this._renderData=[],this._domNode=Si(document.createElement("div")),this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true"),this._updateDomClassName(),this._domNode.appendChild(this._primaryCursor.getDomNode()),this._startCursorBlinkAnimation=new md,this._cursorFlatBlinkInterval=new GY,this._blinkingEnabled=!1,this._editorHasFocus=!1,this._updateBlinking()}dispose(){super.dispose(),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()}getDomNode(){return this._domNode}onCompositionStart(e){return this._isComposingInput=!0,this._updateBlinking(),!0}onCompositionEnd(e){return this._isComposingInput=!1,this._updateBlinking(),!0}onConfigurationChanged(e){const t=this._context.configuration.options;this._readOnly=t.get(91),this._cursorBlinking=t.get(26),this._cursorStyle=t.get(28),this._cursorSmoothCaretAnimation=t.get(27),this._updateBlinking(),this._updateDomClassName(),this._primaryCursor.onConfigurationChanged(e);for(let i=0,r=this._secondaryCursors.length;it.length){const o=this._secondaryCursors.length-t.length;for(let s=0;s{for(let r=0,o=e.ranges.length;r{this._isVisible?this._hide():this._show()},V_.BLINK_INTERVAL,qt(this._domNode.domNode)):this._startCursorBlinkAnimation.setIfNotSet(()=>{this._blinkingEnabled=!0,this._updateDomClassName()},V_.BLINK_INTERVAL))}_updateDomClassName(){this._domNode.setClassName(this._getClassName())}_getClassName(){let e="cursors-layer";switch(this._selectionIsEmpty||(e+=" has-selection"),this._cursorStyle){case Ds.Line:e+=" cursor-line-style";break;case Ds.Block:e+=" cursor-block-style";break;case Ds.Underline:e+=" cursor-underline-style";break;case Ds.LineThin:e+=" cursor-line-thin-style";break;case Ds.BlockOutline:e+=" cursor-block-outline-style";break;case Ds.UnderlineThin:e+=" cursor-underline-thin-style";break;default:e+=" cursor-line-style"}if(this._blinkingEnabled)switch(this._getCursorBlinking()){case 1:e+=" cursor-blink";break;case 2:e+=" cursor-smooth";break;case 3:e+=" cursor-phase";break;case 4:e+=" cursor-expand";break;case 5:e+=" cursor-solid";break;default:e+=" cursor-solid"}else e+=" cursor-solid";return(this._cursorSmoothCaretAnimation==="on"||this._cursorSmoothCaretAnimation==="explicit")&&(e+=" cursor-smooth-caret-animation"),e}_show(){this._primaryCursor.show();for(let e=0,t=this._secondaryCursors.length;e{const t=n.getColor(nCe);if(t){let i=n.getColor(m1t);i||(i=t.opposite()),e.addRule(`.monaco-editor .cursors-layer .cursor { background-color: ${t}; border-color: ${t}; color: ${i}; }`),Jg(n.type)&&e.addRule(`.monaco-editor .cursors-layer.has-selection .cursor { border-left: 1px solid ${i}; border-right: 1px solid ${i}; }`)}});const g6=()=>{throw new Error("Invalid change accessor")};class $Ct extends lu{constructor(e){super(e);const t=this._context.configuration.options,i=t.get(144);this._lineHeight=t.get(67),this._contentWidth=i.contentWidth,this._contentLeft=i.contentLeft,this.domNode=Si(document.createElement("div")),this.domNode.setClassName("view-zones"),this.domNode.setPosition("absolute"),this.domNode.setAttribute("role","presentation"),this.domNode.setAttribute("aria-hidden","true"),this.marginDomNode=Si(document.createElement("div")),this.marginDomNode.setClassName("margin-view-zones"),this.marginDomNode.setPosition("absolute"),this.marginDomNode.setAttribute("role","presentation"),this.marginDomNode.setAttribute("aria-hidden","true"),this._zones={}}dispose(){super.dispose(),this._zones={}}_recomputeWhitespacesProps(){const e=this._context.viewLayout.getWhitespaces(),t=new Map;for(const r of e)t.set(r.id,r);let i=!1;return this._context.viewModel.changeWhitespace(r=>{const o=Object.keys(this._zones);for(let s=0,a=o.length;s{const r={addZone:o=>(t=!0,this._addZone(i,o)),removeZone:o=>{o&&(t=this._removeZone(i,o)||t)},layoutZone:o=>{o&&(t=this._layoutZone(i,o)||t)}};qCt(e,r),r.addZone=g6,r.removeZone=g6,r.layoutZone=g6}),t}_addZone(e,t){const i=this._computeWhitespaceProps(t),o={whitespaceId:e.insertWhitespace(i.afterViewLineNumber,this._getZoneOrdinal(t),i.heightInPx,i.minWidthInPx),delegate:t,isInHiddenArea:i.isInHiddenArea,isVisible:!1,domNode:Si(t.domNode),marginDomNode:t.marginDomNode?Si(t.marginDomNode):null};return this._safeCallOnComputedHeight(o.delegate,i.heightInPx),o.domNode.setPosition("absolute"),o.domNode.domNode.style.width="100%",o.domNode.setDisplay("none"),o.domNode.setAttribute("monaco-view-zone",o.whitespaceId),this.domNode.appendChild(o.domNode),o.marginDomNode&&(o.marginDomNode.setPosition("absolute"),o.marginDomNode.domNode.style.width="100%",o.marginDomNode.setDisplay("none"),o.marginDomNode.setAttribute("monaco-view-zone",o.whitespaceId),this.marginDomNode.appendChild(o.marginDomNode)),this._zones[o.whitespaceId]=o,this.setShouldRender(),o.whitespaceId}_removeZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t];return delete this._zones[t],e.removeWhitespace(i.whitespaceId),i.domNode.removeAttribute("monaco-visible-view-zone"),i.domNode.removeAttribute("monaco-view-zone"),i.domNode.domNode.parentNode.removeChild(i.domNode.domNode),i.marginDomNode&&(i.marginDomNode.removeAttribute("monaco-visible-view-zone"),i.marginDomNode.removeAttribute("monaco-view-zone"),i.marginDomNode.domNode.parentNode.removeChild(i.marginDomNode.domNode)),this.setShouldRender(),!0}return!1}_layoutZone(e,t){if(this._zones.hasOwnProperty(t)){const i=this._zones[t],r=this._computeWhitespaceProps(i.delegate);return i.isInHiddenArea=r.isInHiddenArea,e.changeOneWhitespace(i.whitespaceId,r.afterViewLineNumber,r.heightInPx),this._safeCallOnComputedHeight(i.delegate,r.heightInPx),this.setShouldRender(),!0}return!1}shouldSuppressMouseDownOnViewZone(e){return this._zones.hasOwnProperty(e)?!!this._zones[e].delegate.suppressMouseDown:!1}_heightInPixels(e){return typeof e.heightInPx=="number"?e.heightInPx:typeof e.heightInLines=="number"?this._lineHeight*e.heightInLines:this._lineHeight}_minWidthInPixels(e){return typeof e.minWidthInPx=="number"?e.minWidthInPx:0}_safeCallOnComputedHeight(e,t){if(typeof e.onComputedHeight=="function")try{e.onComputedHeight(t)}catch(i){fn(i)}}_safeCallOnDomNodeTop(e,t){if(typeof e.onDomNodeTop=="function")try{e.onDomNodeTop(t)}catch(i){fn(i)}}prepareRender(e){}render(e){const t=e.viewportData.whitespaceViewportData,i={};let r=!1;for(const s of t)this._zones[s.id].isInHiddenArea||(i[s.id]=s,r=!0);const o=Object.keys(this._zones);for(let s=0,a=o.length;sa)continue;const g=h.startLineNumber===a?h.startColumn:u.minColumn,m=h.endLineNumber===a?h.endColumn:u.maxColumn;g=W.endOffset&&(M++,W=i&&i[M]),E!==9&&E!==32||h&&!L&&T<=A)continue;if(d&&T>=D&&T<=A&&E===32){const z=T-1>=0?a.charCodeAt(T-1):0,O=T+1=0?a.charCodeAt(T-1):0;if(E===32&&z!==32&&z!==9)continue}if(i&&(!W||W.startOffset>T||W.endOffset<=T))continue;const V=e.visibleRangeForPosition(new ve(t,T+1));V&&(s?(Z=Math.max(Z,V.left),E===9?F+=this._renderArrow(g,b,V.left):F+=``):E===9?F+=`
${S?"→":"→"}
`:F+=`
${String.fromCharCode(w)}
`)}return s?(Z=Math.round(Z+b),``+F+""):F}_renderArrow(e,t,i){const r=t/7,o=t,s=e/2,a=i,l={x:0,y:r/2},u={x:100/125*o,y:l.y},c={x:u.x-.2*u.x,y:u.y+.2*u.x},d={x:c.x+.1*u.x,y:c.y+.1*u.x},h={x:d.x+.35*u.x,y:d.y-.35*u.x},g={x:h.x,y:-h.y},m={x:d.x,y:-d.y},f={x:c.x,y:-c.y},b={x:u.x,y:-u.y},C={x:l.x,y:-l.y};return``}render(e,t){if(!this._renderResult)return"";const i=t-e;return i<0||i>=this._renderResult.length?"":this._renderResult[i]}}class MCe{constructor(e){const t=e.options,i=t.get(50),r=t.get(38);r==="off"?(this.renderWhitespace="none",this.renderWithSVG=!1):r==="svg"?(this.renderWhitespace=t.get(99),this.renderWithSVG=!0):(this.renderWhitespace=t.get(99),this.renderWithSVG=!1),this.spaceWidth=i.spaceWidth,this.middotWidth=i.middotWidth,this.wsmiddotWidth=i.wsmiddotWidth,this.canUseHalfwidthRightwardsArrow=i.canUseHalfwidthRightwardsArrow,this.lineHeight=t.get(67),this.stopRenderingLineAfter=t.get(117)}equals(e){return this.renderWhitespace===e.renderWhitespace&&this.renderWithSVG===e.renderWithSVG&&this.spaceWidth===e.spaceWidth&&this.middotWidth===e.middotWidth&&this.wsmiddotWidth===e.wsmiddotWidth&&this.canUseHalfwidthRightwardsArrow===e.canUseHalfwidthRightwardsArrow&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter}}class tvt{constructor(e,t,i,r){this.selections=e,this.startLineNumber=t.startLineNumber|0,this.endLineNumber=t.endLineNumber|0,this.relativeVerticalOffset=t.relativeVerticalOffset,this.bigNumbersDelta=t.bigNumbersDelta|0,this.whitespaceViewportData=i,this._model=r,this.visibleRange=new K(t.startLineNumber,this._model.getLineMinColumn(t.startLineNumber),t.endLineNumber,this._model.getLineMaxColumn(t.endLineNumber))}getViewLineRenderingData(e){return this._model.getViewportViewLineRenderingData(this.visibleRange,e)}getDecorationsInViewport(){return this._model.getDecorationsInViewport(this.visibleRange)}}class nvt{get type(){return this._theme.type}get value(){return this._theme}constructor(e){this._theme=e}update(e){this._theme=e}getColor(e){return this._theme.getColor(e)}}class ivt{constructor(e,t,i){this.configuration=e,this.theme=new nvt(t),this.viewModel=i,this.viewLayout=i.viewLayout}addEventHandler(e){this.viewModel.addViewEventHandler(e)}removeEventHandler(e){this.viewModel.removeViewEventHandler(e)}}var rvt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},ovt=function(n,e){return function(t,i){e(t,i,n)}};let m6=class extends h_{constructor(e,t,i,r,o,s,a){super(),this._instantiationService=a,this._shouldRecomputeGlyphMarginLanes=!1,this._selections=[new Gt(1,1,1,1)],this._renderAnimationFrame=null;const l=new tCt(t,r,o,e);this._context=new ivt(t,i,r),this._context.addEventHandler(this),this._viewParts=[],this._textAreaHandler=this._instantiationService.createInstance(o6,this._context,l,this._createTextAreaHandlerHelper()),this._viewParts.push(this._textAreaHandler),this._linesContent=Si(document.createElement("div")),this._linesContent.setClassName("lines-content monaco-editor-background"),this._linesContent.setPosition("absolute"),this.domNode=Si(document.createElement("div")),this.domNode.setClassName(this._getEditorClassName()),this.domNode.setAttribute("role","code"),this._overflowGuardContainer=Si(document.createElement("div")),Dh.write(this._overflowGuardContainer,3),this._overflowGuardContainer.setClassName("overflow-guard"),this._scrollbar=new dCt(this._context,this._linesContent,this.domNode,this._overflowGuardContainer),this._viewParts.push(this._scrollbar),this._viewLines=new UT(this._context,this._linesContent),this._viewZones=new $Ct(this._context),this._viewParts.push(this._viewZones);const u=new BCt(this._context);this._viewParts.push(u);const c=new UCt(this._context);this._viewParts.push(c);const d=new iCt(this._context);this._viewParts.push(d),d.addDynamicOverlay(new lCt(this._context)),d.addDynamicOverlay(new eo(this._context)),d.addDynamicOverlay(new DCt(this._context)),d.addDynamicOverlay(new cCt(this._context)),d.addDynamicOverlay(new evt(this._context));const h=new rCt(this._context);this._viewParts.push(h),h.addDynamicOverlay(new uCt(this._context)),h.addDynamicOverlay(new ZCt(this._context)),h.addDynamicOverlay(new MCt(this._context)),h.addDynamicOverlay(new v_(this._context)),this._glyphMarginWidgets=new bCt(this._context),this._viewParts.push(this._glyphMarginWidgets);const g=new KC(this._context);g.getDomNode().appendChild(this._viewZones.marginDomNode),g.getDomNode().appendChild(h.getDomNode()),g.getDomNode().appendChild(this._glyphMarginWidgets.domNode),this._viewParts.push(g),this._contentWidgets=new sCt(this._context,this.domNode),this._viewParts.push(this._contentWidgets),this._viewCursors=new V_(this._context),this._viewParts.push(this._viewCursors),this._overlayWidgets=new PCt(this._context,this.domNode),this._viewParts.push(this._overlayWidgets);const m=new HCt(this._context);this._viewParts.push(m);const f=new oCt(this._context);this._viewParts.push(f);const b=new XCt(this._context);if(this._viewParts.push(b),u){const C=this._scrollbar.getOverviewRulerLayoutInfo();C.parent.insertBefore(u.getDomNode(),C.insertBefore)}this._linesContent.appendChild(d.getDomNode()),this._linesContent.appendChild(m.domNode),this._linesContent.appendChild(this._viewZones.domNode),this._linesContent.appendChild(this._viewLines.getDomNode()),this._linesContent.appendChild(this._contentWidgets.domNode),this._linesContent.appendChild(this._viewCursors.getDomNode()),this._overflowGuardContainer.appendChild(g.getDomNode()),this._overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this._overflowGuardContainer.appendChild(c.getDomNode()),this._overflowGuardContainer.appendChild(this._textAreaHandler.textArea),this._overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover),this._overflowGuardContainer.appendChild(this._overlayWidgets.getDomNode()),this._overflowGuardContainer.appendChild(b.getDomNode()),this._overflowGuardContainer.appendChild(f.domNode),this.domNode.appendChild(this._overflowGuardContainer),s?(s.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode.domNode),s.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode.domNode)):(this.domNode.appendChild(this._contentWidgets.overflowingContentWidgetsDomNode),this.domNode.appendChild(this._overlayWidgets.overflowingOverlayWidgetsDomNode)),this._applyLayout(),this._pointerHandler=this._register(new d1t(this._context,l,this._createPointerHandlerHelper()))}_computeGlyphMarginLanes(){const e=this._context.viewModel.model,t=this._context.viewModel.glyphLanes;let i=[],r=0;i=i.concat(e.getAllMarginDecorations().map(o=>{var s,a,l;const u=(a=(s=o.options.glyphMargin)===null||s===void 0?void 0:s.position)!==null&&a!==void 0?a:Qg.Center;return r=Math.max(r,o.range.endLineNumber),{range:o.range,lane:u,persist:(l=o.options.glyphMargin)===null||l===void 0?void 0:l.persistLane}})),i=i.concat(this._glyphMarginWidgets.getWidgets().map(o=>{const s=e.validateRange(o.preference.range);return r=Math.max(r,s.endLineNumber),{range:s,lane:o.preference.lane}})),i.sort((o,s)=>K.compareRangesUsingStarts(o.range,s.range)),t.reset(r);for(const o of i)t.push(o.lane,o.range,o.persist);return t}_createPointerHandlerHelper(){return{viewDomNode:this.domNode.domNode,linesContentDomNode:this._linesContent.domNode,viewLinesDomNode:this._viewLines.getDomNode().domNode,focusTextArea:()=>{this.focus()},dispatchTextAreaEvent:e=>{this._textAreaHandler.textArea.domNode.dispatchEvent(e)},getLastRenderData:()=>{const e=this._viewCursors.getLastRenderData()||[],t=this._textAreaHandler.getLastRenderData();return new P0t(e,t)},renderNow:()=>{this.render(!0,!1)},shouldSuppressMouseDownOnViewZone:e=>this._viewZones.shouldSuppressMouseDownOnViewZone(e),shouldSuppressMouseDownOnWidget:e=>this._contentWidgets.shouldSuppressMouseDownOnWidget(e),getPositionFromDOMInfo:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getPositionFromDOMInfo(e,t)),visibleRangeForPosition:(e,t)=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(new ve(e,t))),getLineWidth:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.getLineWidth(e))}}_createTextAreaHandlerHelper(){return{visibleRangeForPosition:e=>(this._flushAccumulatedAndRenderNow(),this._viewLines.visibleRangeForPosition(e))}}_applyLayout(){const t=this._context.configuration.options.get(144);this.domNode.setWidth(t.width),this.domNode.setHeight(t.height),this._overflowGuardContainer.setWidth(t.width),this._overflowGuardContainer.setHeight(t.height),this._linesContent.setWidth(1e6),this._linesContent.setHeight(1e6)}_getEditorClassName(){const e=this._textAreaHandler.isFocused()?" focused":"";return this._context.configuration.options.get(141)+" "+e6(this._context.theme.type)+e}handleEvents(e){super.handleEvents(e),this._scheduleRender()}onConfigurationChanged(e){return this.domNode.setClassName(this._getEditorClassName()),this._applyLayout(),!1}onCursorStateChanged(e){return this._selections=e.selections,!1}onDecorationsChanged(e){return e.affectsGlyphMargin&&(this._shouldRecomputeGlyphMarginLanes=!0),!1}onFocusChanged(e){return this.domNode.setClassName(this._getEditorClassName()),!1}onThemeChanged(e){return this._context.theme.update(e.theme),this.domNode.setClassName(this._getEditorClassName()),!1}dispose(){this._renderAnimationFrame!==null&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this._contentWidgets.overflowingContentWidgetsDomNode.domNode.remove(),this._context.removeEventHandler(this),this._viewLines.dispose();for(const e of this._viewParts)e.dispose();super.dispose()}_scheduleRender(){if(this._store.isDisposed)throw new br;if(this._renderAnimationFrame===null){const e=this._createCoordinatedRendering();this._renderAnimationFrame=f6.INSTANCE.scheduleCoordinatedRendering({window:qt(this.domNode.domNode),prepareRenderText:()=>{if(this._store.isDisposed)throw new br;try{return e.prepareRenderText()}finally{this._renderAnimationFrame=null}},renderText:()=>{if(this._store.isDisposed)throw new br;return e.renderText()},prepareRender:(t,i)=>{if(this._store.isDisposed)throw new br;return e.prepareRender(t,i)},render:(t,i)=>{if(this._store.isDisposed)throw new br;return e.render(t,i)}})}}_flushAccumulatedAndRenderNow(){const e=this._createCoordinatedRendering();Ob(()=>e.prepareRenderText());const t=Ob(()=>e.renderText());if(t){const[i,r]=t;Ob(()=>e.prepareRender(i,r)),Ob(()=>e.render(i,r))}}_getViewPartsToRender(){const e=[];let t=0;for(const i of this._viewParts)i.shouldRender()&&(e[t++]=i);return e}_createCoordinatedRendering(){return{prepareRenderText:()=>{if(this._shouldRecomputeGlyphMarginLanes){this._shouldRecomputeGlyphMarginLanes=!1;const e=this._computeGlyphMarginLanes();this._context.configuration.setGlyphMarginDecorationLaneCount(e.requiredLanes)}Eb.onRenderStart()},renderText:()=>{if(!this.domNode.domNode.isConnected)return null;let e=this._getViewPartsToRender();if(!this._viewLines.shouldRender()&&e.length===0)return null;const t=this._context.viewLayout.getLinesViewportData();this._context.viewModel.setViewport(t.startLineNumber,t.endLineNumber,t.centeredLineNumber);const i=new tvt(this._selections,t,this._context.viewLayout.getWhitespaceViewportData(),this._context.viewModel);return this._contentWidgets.shouldRender()&&this._contentWidgets.onBeforeRender(i),this._viewLines.shouldRender()&&(this._viewLines.renderText(i),this._viewLines.onDidRender(),e=this._getViewPartsToRender()),[e,new w0t(this._context.viewLayout,i,this._viewLines)]},prepareRender:(e,t)=>{for(const i of e)i.prepareRender(t)},render:(e,t)=>{for(const i of e)i.render(t),i.onDidRender()}}}delegateVerticalScrollbarPointerDown(e){this._scrollbar.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){this._scrollbar.delegateScrollFromMouseWheelEvent(e)}restoreState(e){this._context.viewModel.viewLayout.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft},1),this._context.viewModel.visibleLinesStabilized()}getOffsetForColumn(e,t){const i=this._context.viewModel.model.validatePosition({lineNumber:e,column:t}),r=this._context.viewModel.coordinatesConverter.convertModelPositionToViewPosition(i);this._flushAccumulatedAndRenderNow();const o=this._viewLines.visibleRangeForPosition(new ve(r.lineNumber,r.column));return o?o.left:-1}getTargetAtClientPoint(e,t){const i=this._pointerHandler.getTargetAtClientPoint(e,t);return i?BT.convertViewToModelMouseTarget(i,this._context.viewModel.coordinatesConverter):null}createOverviewRuler(e){return new YCt(this._context,e)}change(e){this._viewZones.changeViewZones(e),this._scheduleRender()}render(e,t){if(t){this._viewLines.forceShouldRender();for(const i of this._viewParts)i.forceShouldRender()}e?this._flushAccumulatedAndRenderNow():this._scheduleRender()}writeScreenReaderContent(e){this._textAreaHandler.writeScreenReaderContent(e)}focus(){this._textAreaHandler.focusTextArea()}isFocused(){return this._textAreaHandler.isFocused()}setAriaOptions(e){this._textAreaHandler.setAriaOptions(e)}addContentWidget(e){this._contentWidgets.addWidget(e.widget),this.layoutContentWidget(e),this._scheduleRender()}layoutContentWidget(e){var t,i,r,o,s,a,l,u;this._contentWidgets.setWidgetPosition(e.widget,(i=(t=e.position)===null||t===void 0?void 0:t.position)!==null&&i!==void 0?i:null,(o=(r=e.position)===null||r===void 0?void 0:r.secondaryPosition)!==null&&o!==void 0?o:null,(a=(s=e.position)===null||s===void 0?void 0:s.preference)!==null&&a!==void 0?a:null,(u=(l=e.position)===null||l===void 0?void 0:l.positionAffinity)!==null&&u!==void 0?u:null),this._scheduleRender()}removeContentWidget(e){this._contentWidgets.removeWidget(e.widget),this._scheduleRender()}addOverlayWidget(e){this._overlayWidgets.addWidget(e.widget),this.layoutOverlayWidget(e),this._scheduleRender()}layoutOverlayWidget(e){const t=e.position?e.position.preference:null;this._overlayWidgets.setWidgetPosition(e.widget,t)&&this._scheduleRender()}removeOverlayWidget(e){this._overlayWidgets.removeWidget(e.widget),this._scheduleRender()}addGlyphMarginWidget(e){this._glyphMarginWidgets.addWidget(e.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}layoutGlyphMarginWidget(e){const t=e.position;this._glyphMarginWidgets.setWidgetPosition(e.widget,t)&&(this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender())}removeGlyphMarginWidget(e){this._glyphMarginWidgets.removeWidget(e.widget),this._shouldRecomputeGlyphMarginLanes=!0,this._scheduleRender()}};m6=rvt([ovt(6,tn)],m6);function Ob(n){try{return n()}catch(e){return fn(e),null}}class f6{constructor(){this._coordinatedRenderings=[],this._animationFrameRunners=new Map}scheduleCoordinatedRendering(e){return this._coordinatedRenderings.push(e),this._scheduleRender(e.window),{dispose:()=>{const t=this._coordinatedRenderings.indexOf(e);if(t!==-1&&(this._coordinatedRenderings.splice(t,1),this._coordinatedRenderings.length===0)){for(const[i,r]of this._animationFrameRunners)r.dispose();this._animationFrameRunners.clear()}}}}_scheduleRender(e){if(!this._animationFrameRunners.has(e)){const t=()=>{this._animationFrameRunners.delete(e),this._onRenderScheduled()};this._animationFrameRunners.set(e,L5(e,t,100))}}_onRenderScheduled(){const e=this._coordinatedRenderings.slice(0);this._coordinatedRenderings=[];for(const i of e)Ob(()=>i.prepareRenderText());const t=[];for(let i=0,r=e.length;io.renderText())}for(let i=0,r=e.length;io.prepareRender(a,l))}for(let i=0,r=e.length;io.render(a,l))}}}f6.INSTANCE=new f6;class X_{constructor(e,t,i,r,o){this.injectionOffsets=e,this.injectionOptions=t,this.breakOffsets=i,this.breakOffsetsVisibleColumn=r,this.wrappedTextIndentLength=o}getOutputLineCount(){return this.breakOffsets.length}getMinOutputOffset(e){return e>0?this.wrappedTextIndentLength:0}getLineLength(e){const t=e>0?this.breakOffsets[e-1]:0;let r=this.breakOffsets[e]-t;return e>0&&(r+=this.wrappedTextIndentLength),r}getMaxOutputOffset(e){return this.getLineLength(e)}translateToInputOffset(e,t){e>0&&(t=Math.max(0,t-this.wrappedTextIndentLength));let r=e===0?t:this.breakOffsets[e-1]+t;if(this.injectionOffsets!==null)for(let o=0;othis.injectionOffsets[o];o++)r0?this.breakOffsets[o-1]:0,t===0)if(e<=s)r=o-1;else if(e>l)i=o+1;else break;else if(e=l)i=o+1;else break}let a=e-s;return o>0&&(a+=this.wrappedTextIndentLength),new QT(o,a)}normalizeOutputPosition(e,t,i){if(this.injectionOffsets!==null){const r=this.outputPositionToOffsetInInputWithInjections(e,t),o=this.normalizeOffsetInInputWithInjectionsAroundInjections(r,i);if(o!==r)return this.offsetInInputWithInjectionsToOutputPosition(o,i)}if(i===0){if(e>0&&t===this.getMinOutputOffset(e))return new QT(e-1,this.getMaxOutputOffset(e-1))}else if(i===1){const r=this.getOutputLineCount()-1;if(e0&&(t=Math.max(0,t-this.wrappedTextIndentLength)),(e>0?this.breakOffsets[e-1]:0)+t}normalizeOffsetInInputWithInjectionsAroundInjections(e,t){const i=this.getInjectedTextAtOffset(e);if(!i)return e;if(t===2){if(e===i.offsetInInputWithInjections+i.length&&ZCe(this.injectionOptions[i.injectedTextIndex].cursorStops))return i.offsetInInputWithInjections+i.length;{let r=i.offsetInInputWithInjections;if(TCe(this.injectionOptions[i.injectedTextIndex].cursorStops))return r;let o=i.injectedTextIndex-1;for(;o>=0&&this.injectionOffsets[o]===this.injectionOffsets[i.injectedTextIndex]&&!(ZCe(this.injectionOptions[o].cursorStops)||(r-=this.injectionOptions[o].content.length,TCe(this.injectionOptions[o].cursorStops)));)o--;return r}}else if(t===1||t===4){let r=i.offsetInInputWithInjections+i.length,o=i.injectedTextIndex;for(;o+1=0&&this.injectionOffsets[o-1]===this.injectionOffsets[o];)r-=this.injectionOptions[o-1].content.length,o--;return r}O5()}getInjectedText(e,t){const i=this.outputPositionToOffsetInInputWithInjections(e,t),r=this.getInjectedTextAtOffset(i);return r?{options:this.injectionOptions[r.injectedTextIndex]}:null}getInjectedTextAtOffset(e){const t=this.injectionOffsets,i=this.injectionOptions;if(t!==null){let r=0;for(let o=0;oe)break;if(e<=l)return{injectedTextIndex:o,offsetInInputWithInjections:a,length:s};r+=s}}}}function ZCe(n){return n==null?!0:n===Ld.Right||n===Ld.Both}function TCe(n){return n==null?!0:n===Ld.Left||n===Ld.Both}class QT{constructor(e,t){this.outputLineIndex=e,this.outputOffset=t}toString(){return`${this.outputLineIndex}:${this.outputOffset}`}toPosition(e){return new ve(e+this.outputLineIndex,this.outputOffset+1)}}class svt{constructor(){this.changeType=1}}class Ah{static applyInjectedText(e,t){if(!t||t.length===0)return e;let i="",r=0;for(const o of t)i+=e.substring(r,o.column-1),r=o.column-1,i+=o.options.content;return i+=e.substring(r),i}static fromDecorations(e){const t=[];for(const i of e)i.options.before&&i.options.before.content.length>0&&t.push(new Ah(i.ownerId,i.range.startLineNumber,i.range.startColumn,i.options.before,0)),i.options.after&&i.options.after.content.length>0&&t.push(new Ah(i.ownerId,i.range.endLineNumber,i.range.endColumn,i.options.after,1));return t.sort((i,r)=>i.lineNumber===r.lineNumber?i.column===r.column?i.order-r.order:i.column-r.column:i.lineNumber-r.lineNumber),t}constructor(e,t,i,r,o){this.ownerId=e,this.lineNumber=t,this.column=i,this.options=r,this.order=o}}class ECe{constructor(e,t,i){this.changeType=2,this.lineNumber=e,this.detail=t,this.injectedText=i}}class avt{constructor(e,t){this.changeType=3,this.fromLineNumber=e,this.toLineNumber=t}}class lvt{constructor(e,t,i,r){this.changeType=4,this.injectedTexts=r,this.fromLineNumber=e,this.toLineNumber=t,this.detail=i}}class uvt{constructor(){this.changeType=5}}class O2{constructor(e,t,i,r){this.changes=e,this.versionId=t,this.isUndoing=i,this.isRedoing=r,this.resultingSelection=null}containsEvent(e){for(let t=0,i=this.changes.length;tn});class b6{static create(e){return new b6(new WeakRef(e))}constructor(e){this.targetWindow=e}createLineBreaksComputer(e,t,i,r,o){const s=[],a=[];return{addRequest:(l,u,c)=>{s.push(l),a.push(u)},finalize:()=>cvt(fb(this.targetWindow.deref()),s,e,t,i,r,o,a)}}}function cvt(n,e,t,i,r,o,s,a){var l;function u(W){const Z=a[W];if(Z){const T=Ah.applyInjectedText(e[W],Z),E=Z.map(z=>z.options),V=Z.map(z=>z.column-1);return new X_(V,E,[T.length],[],0)}else return null}if(r===-1){const W=[];for(let Z=0,T=e.length;Zc?(T=0,E=0):V=c-P}const z=Z.substr(T),O=dvt(z,E,i,V,f,g);b[W]=T,C[W]=E,v[W]=z,w[W]=O[0],S[W]=O[1]}const F=f.build(),L=(l=p6==null?void 0:p6.createHTML(F))!==null&&l!==void 0?l:F;m.innerHTML=L,m.style.position="absolute",m.style.top="10000",s==="keepAll"?(m.style.wordBreak="keep-all",m.style.overflowWrap="anywhere"):(m.style.wordBreak="inherit",m.style.overflowWrap="break-word"),n.document.body.appendChild(m);const D=document.createRange(),A=Array.prototype.slice.call(m.children,0),M=[];for(let W=0;Wk.options),B=Y.map(k=>k.column-1)):(P=null,B=null),M[W]=new X_(B,P,T,O,V)}return n.document.body.removeChild(m),M}function dvt(n,e,t,i,r,o){if(o!==0){const h=String(o);r.appendString('
');const s=n.length;let a=e,l=0;const u=[],c=[];let d=0");for(let h=0;h"),u[h]=l,c[h]=a;const g=d;d=h+1"),u[n.length]=l,c[n.length]=a,r.appendString("
"),[u,c]}function hvt(n,e,t,i){if(t.length<=1)return null;const r=Array.prototype.slice.call(e.children,0),o=[];try{C6(n,r,i,0,null,t.length-1,null,o)}catch{return null}return o.length===0?null:(o.push(t.length),o)}function C6(n,e,t,i,r,o,s,a){if(i===o||(r=r||v6(n,e,t[i],t[i+1]),s=s||v6(n,e,t[o],t[o+1]),Math.abs(r[0].top-s[0].top)<=.1))return;if(i+1===o){a.push(o);return}const l=i+(o-i)/2|0,u=v6(n,e,t[l],t[l+1]);C6(n,e,t,i,r,l,u,a),C6(n,e,t,l,u,o,s,a)}function v6(n,e,t,i){return n.setStart(e[t/16384|0].firstChild,t%16384),n.setEnd(e[i/16384|0].firstChild,i%16384),n.getClientRects()}class gvt extends De{constructor(){super(),this._editor=null,this._instantiationService=null,this._instances=this._register(new rY),this._pending=new Map,this._finishedInstantiation=[],this._finishedInstantiation[0]=!1,this._finishedInstantiation[1]=!1,this._finishedInstantiation[2]=!1,this._finishedInstantiation[3]=!1}initialize(e,t,i){this._editor=e,this._instantiationService=i;for(const r of t){if(this._pending.has(r.id)){fn(new Error(`Cannot have two contributions with the same id ${r.id}`));continue}this._pending.set(r.id,r)}this._instantiateSome(0),this._register(TF(qt(this._editor.getDomNode()),()=>{this._instantiateSome(1)})),this._register(TF(qt(this._editor.getDomNode()),()=>{this._instantiateSome(2)})),this._register(TF(qt(this._editor.getDomNode()),()=>{this._instantiateSome(3)},5e3))}saveViewState(){const e={};for(const[t,i]of this._instances)typeof i.saveViewState=="function"&&(e[t]=i.saveViewState());return e}restoreViewState(e){for(const[t,i]of this._instances)typeof i.restoreViewState=="function"&&i.restoreViewState(e[t])}get(e){return this._instantiateById(e),this._instances.get(e)||null}onBeforeInteractionEvent(){this._instantiateSome(2)}onAfterModelAttached(){var e;return TF(qt((e=this._editor)===null||e===void 0?void 0:e.getDomNode()),()=>{this._instantiateSome(1)},50)}_instantiateSome(e){if(this._finishedInstantiation[e])return;this._finishedInstantiation[e]=!0;const t=this._findPendingContributionsByInstantiation(e);for(const i of t)this._instantiateById(i.id)}_findPendingContributionsByInstantiation(e){const t=[];for(const[,i]of this._pending)i.instantiation===e&&t.push(i);return t}_instantiateById(e){const t=this._pending.get(e);if(t){if(this._pending.delete(e),!this._instantiationService||!this._editor)throw new Error("Cannot instantiate contributions before being initialized!");try{const i=this._instantiationService.createInstance(t.ctor,this._editor);this._instances.set(t.id,i),typeof i.restoreViewState=="function"&&t.instantiation}catch(i){fn(i)}}}}class RCe{constructor(e,t,i,r,o,s,a){this.id=e,this.label=t,this.alias=i,this.metadata=r,this._precondition=o,this._run=s,this._contextKeyService=a}isSupported(){return this._contextKeyService.contextMatchesRules(this._precondition)}run(e){return this.isSupported()?this._run(e):Promise.resolve(void 0)}}const P_={ICodeEditor:"vs.editor.ICodeEditor",IDiffEditor:"vs.editor.IDiffEditor"};function Bb(n){let e=0,t=0,i=0,r=0;for(let o=0,s=n.length;ot)throw new br(`Invalid range: ${this.toString()}`)}get isEmpty(){return this.start===this.endExclusive}delta(e){return new Pn(this.start+e,this.endExclusive+e)}deltaStart(e){return new Pn(this.start+e,this.endExclusive)}deltaEnd(e){return new Pn(this.start,this.endExclusive+e)}get length(){return this.endExclusive-this.start}toString(){return`[${this.start}, ${this.endExclusive})`}contains(e){return this.start<=e&&e=e.endExclusive}slice(e){return e.slice(this.start,this.endExclusive)}clip(e){if(this.isEmpty)throw new br(`Invalid clipping range: ${this.toString()}`);return Math.max(this.start,Math.min(this.endExclusive-1,e))}clipCyclic(e){if(this.isEmpty)throw new br(`Invalid clipping range: ${this.toString()}`);return e=this.endExclusive?this.start+(e-this.start)%this.length:e}forEach(e){for(let t=this.start;te.toString()).join(", ")}intersectsStrict(e){let t=0;for(;te+t.length,0)}}class vn{static fromRangeInclusive(e){return new vn(e.startLineNumber,e.endLineNumber+1)}static joinMany(e){if(e.length===0)return[];let t=new Fd(e[0].slice());for(let i=1;it)throw new br(`startLineNumber ${e} cannot be after endLineNumberExclusive ${t}`);this.startLineNumber=e,this.endLineNumberExclusive=t}contains(e){return this.startLineNumber<=e&&er.endLineNumberExclusive>=e.startLineNumber),i=__(this._normalizedRanges,r=>r.startLineNumber<=e.endLineNumberExclusive)+1;if(t===i)this._normalizedRanges.splice(t,0,e);else if(t===i-1){const r=this._normalizedRanges[t];this._normalizedRanges[t]=r.join(e)}else{const r=this._normalizedRanges[t].join(this._normalizedRanges[i-1]).join(e);this._normalizedRanges.splice(t,i-t,r)}}contains(e){const t=X2(this._normalizedRanges,i=>i.startLineNumber<=e);return!!t&&t.endLineNumberExclusive>e}intersects(e){const t=X2(this._normalizedRanges,i=>i.startLineNumbere.startLineNumber}getUnion(e){if(this._normalizedRanges.length===0)return e;if(e._normalizedRanges.length===0)return this;const t=[];let i=0,r=0,o=null;for(;i=s.startLineNumber?o=new vn(o.startLineNumber,Math.max(o.endLineNumberExclusive,s.endLineNumberExclusive)):(t.push(o),o=s)}return o!==null&&t.push(o),new Fd(t)}subtractFrom(e){const t=D_(this._normalizedRanges,s=>s.endLineNumberExclusive>=e.startLineNumber),i=__(this._normalizedRanges,s=>s.startLineNumber<=e.endLineNumberExclusive)+1;if(t===i)return new Fd([e]);const r=[];let o=e.startLineNumber;for(let s=t;so&&r.push(new vn(o,a.startLineNumber)),o=a.endLineNumberExclusive}return oe.toString()).join(", ")}getIntersection(e){const t=[];let i=0,r=0;for(;it.delta(e)))}}class GCe{constructor(e,t,i,r){this.range=e,this.nestingLevel=t,this.nestingLevelOfEqualBracketType=i,this.isInvalid=r}}class mvt{constructor(e,t,i,r,o,s){this.range=e,this.openingBracketRange=t,this.closingBracketRange=i,this.nestingLevel=r,this.nestingLevelOfEqualBracketType=o,this.bracketPairNode=s}get openingBracketInfo(){return this.bracketPairNode.openingBracket.bracketInfo}}class fvt extends mvt{constructor(e,t,i,r,o,s,a){super(e,t,i,r,o,s),this.minVisibleColumnIndentation=a}}class O_{constructor(e,t){this.lineCount=e,this.columnCount=t}toString(){return`${this.lineCount},${this.columnCount}`}}O_.zero=new O_(0,0);function pvt(n,e,t,i){return n!==t?fo(t-n,i):fo(0,i-e)}const nl=0;function $T(n){return n===0}const Bu=2**26;function fo(n,e){return n*Bu+e}function Tc(n){const e=n,t=Math.floor(e/Bu),i=e-t*Bu;return new O_(t,i)}function bvt(n){return Math.floor(n/Bu)}function cJt(n){return n}function Tr(n,e){let t=n+e;return e>=Bu&&(t=t-n%Bu),t}function Cvt(n,e){return n.reduce((t,i)=>Tr(t,e(i)),nl)}function VCe(n,e){return n===e}function B_(n,e){const t=n,i=e;if(i-t<=0)return nl;const o=Math.floor(t/Bu),s=Math.floor(i/Bu),a=i-s*Bu;if(o===s){const l=t-o*Bu;return fo(0,a-l)}else return fo(s-o,a)}function B2(n,e){return n=e}function Y2(n){return fo(n.lineNumber-1,n.column-1)}function qC(n,e){const t=n,i=Math.floor(t/Bu),r=t-i*Bu,o=e,s=Math.floor(o/Bu),a=o-s*Bu;return new K(i+1,r+1,s+1,a+1)}function vvt(n){const e=Zg(n);return fo(e.length-1,e[e.length-1].length)}class Vf{static fromModelContentChanges(e){return e.map(i=>{const r=K.lift(i.range);return new Vf(Y2(r.getStartPosition()),Y2(r.getEndPosition()),vvt(i.text))}).reverse()}constructor(e,t,i){this.startOffset=e,this.endOffset=t,this.newLength=i}toString(){return`[${Tc(this.startOffset)}...${Tc(this.endOffset)}) -> ${Tc(this.newLength)}`}}class yvt{constructor(e){this.nextEditIdx=0,this.deltaOldToNewLineCount=0,this.deltaOldToNewColumnCount=0,this.deltaLineIdxInOld=-1,this.edits=e.map(t=>I6.from(t))}getOffsetBeforeChange(e){return this.adjustNextEdit(e),this.translateCurToOld(e)}getDistanceToNextChange(e){this.adjustNextEdit(e);const t=this.edits[this.nextEditIdx],i=t?this.translateOldToCur(t.offsetObj):null;return i===null?null:B_(e,i)}translateOldToCur(e){return e.lineCount===this.deltaLineIdxInOld?fo(e.lineCount+this.deltaOldToNewLineCount,e.columnCount+this.deltaOldToNewColumnCount):fo(e.lineCount+this.deltaOldToNewLineCount,e.columnCount)}translateCurToOld(e){const t=Tc(e);return t.lineCount-this.deltaOldToNewLineCount===this.deltaLineIdxInOld?fo(t.lineCount-this.deltaOldToNewLineCount,t.columnCount-this.deltaOldToNewColumnCount):fo(t.lineCount-this.deltaOldToNewLineCount,t.columnCount)}adjustNextEdit(e){for(;this.nextEditIdx>5;if(r===0){const s=1<>>0}static getTokenType(e){return(e&768)>>>8}static containsBalancedBrackets(e){return(e&1024)!==0}static getFontStyle(e){return(e&30720)>>>11}static getForeground(e){return(e&16744448)>>>15}static getBackground(e){return(e&4278190080)>>>24}static getClassNameFromMetadata(e){let i="mtk"+this.getForeground(e);const r=this.getFontStyle(e);return r&1&&(i+=" mtki"),r&2&&(i+=" mtkb"),r&4&&(i+=" mtku"),r&8&&(i+=" mtks"),i}static getInlineStyleFromMetadata(e,t){const i=this.getForeground(e),r=this.getFontStyle(e);let o=`color: ${t[i]};`;r&1&&(o+="font-style: italic;"),r&2&&(o+="font-weight: bold;");let s="";return r&4&&(s+=" underline"),r&8&&(s+=" line-through"),s&&(o+=`text-decoration:${s};`),o}static getPresentationFromMetadata(e){const t=this.getForeground(e),i=this.getFontStyle(e);return{foreground:t,italic:!!(i&1),bold:!!(i&2),underline:!!(i&4),strikethrough:!!(i&8)}}}let zb=class{constructor(e,t,i,r,o){this.length=e,this.kind=t,this.bracketId=i,this.bracketIds=r,this.astNode=o}};class OCe{constructor(e,t){this.textModel=e,this.bracketTokens=t,this.reader=new Lvt(this.textModel,this.bracketTokens),this._offset=nl,this.didPeek=!1,this.peeked=null,this.textBufferLineCount=e.getLineCount(),this.textBufferLastLineLength=e.getLineLength(this.textBufferLineCount)}get offset(){return this._offset}get length(){return fo(this.textBufferLineCount-1,this.textBufferLastLineLength)}skip(e){this.didPeek=!1,this._offset=Tr(this._offset,e);const t=Tc(this._offset);this.reader.setPosition(t.lineCount,t.columnCount)}read(){let e;return this.peeked?(this.didPeek=!1,e=this.peeked):e=this.reader.read(),e&&(this._offset=Tr(this._offset,e.length)),e}peek(){return this.didPeek||(this.peeked=this.reader.read(),this.didPeek=!0),this.peeked}}class Lvt{constructor(e,t){this.textModel=e,this.bracketTokens=t,this.lineIdx=0,this.line=null,this.lineCharOffset=0,this.lineTokens=null,this.lineTokenOffset=0,this.peekedToken=null,this.textBufferLineCount=e.getLineCount(),this.textBufferLastLineLength=e.getLineLength(this.textBufferLineCount)}setPosition(e,t){e===this.lineIdx?(this.lineCharOffset=t,this.line!==null&&(this.lineTokenOffset=this.lineCharOffset===0?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset))):(this.lineIdx=e,this.lineCharOffset=t,this.line=null),this.peekedToken=null}read(){if(this.peekedToken){const o=this.peekedToken;return this.peekedToken=null,this.lineCharOffset+=o.length,o}if(this.lineIdx>this.textBufferLineCount-1||this.lineIdx===this.textBufferLineCount-1&&this.lineCharOffset>=this.textBufferLastLineLength)return null;this.line===null&&(this.lineTokens=this.textModel.tokenization.getLineTokens(this.lineIdx+1),this.line=this.lineTokens.getLineContent(),this.lineTokenOffset=this.lineCharOffset===0?0:this.lineTokens.findTokenIndexAtOffset(this.lineCharOffset));const e=this.lineIdx,t=this.lineCharOffset;let i=0;for(;;){const o=this.lineTokens,s=o.getCount();let a=null;if(this.lineTokenOffset1e3))break;if(i>1500)break}const r=pvt(e,t,this.lineIdx,this.lineCharOffset);return new zb(r,0,-1,Eo.getEmpty(),new ev(r))}}class Fvt{constructor(e,t){this.text=e,this._offset=nl,this.idx=0;const i=t.getRegExpStr(),r=i?new RegExp(i+`| +`,"gi"):null,o=[];let s,a=0,l=0,u=0,c=0;const d=[];for(let m=0;m<60;m++)d.push(new zb(fo(0,m),0,-1,Eo.getEmpty(),new ev(fo(0,m))));const h=[];for(let m=0;m<60;m++)h.push(new zb(fo(1,m),0,-1,Eo.getEmpty(),new ev(fo(1,m))));if(r)for(r.lastIndex=0;(s=r.exec(e))!==null;){const m=s.index,f=s[0];if(f===` +`)a++,l=m+1;else{if(u!==m){let b;if(c===a){const C=m-u;if(C_vt(t)).join("|")}}get regExpGlobal(){if(!this.hasRegExp){const e=this.getRegExpStr();this._regExpGlobal=e?new RegExp(e,"gi"):null,this.hasRegExp=!0}return this._regExpGlobal}getToken(e){return this.map.get(e.toLowerCase())}findClosingTokenText(e){for(const[t,i]of this.map)if(i.kind===2&&i.bracketIds.intersects(e))return t}get isEmpty(){return this.map.size===0}}function _vt(n){let e=Zu(n);return/^[\w ]+/.test(n)&&(e=`\\b${e}`),/[\w ]+$/.test(n)&&(e=`${e}\\b`),e}class BCe{constructor(e,t){this.denseKeyProvider=e,this.getLanguageConfiguration=t,this.languageIdToBracketTokens=new Map}didLanguageChange(e){return this.languageIdToBracketTokens.has(e)}getSingleLanguageBracketTokens(e){let t=this.languageIdToBracketTokens.get(e);return t||(t=x6.createFromLanguage(this.getLanguageConfiguration(e),this.denseKeyProvider),this.languageIdToBracketTokens.set(e,t)),t}}function Dvt(n){if(n.length===0)return null;if(n.length===1)return n[0];let e=0;function t(){if(e>=n.length)return null;const s=e,a=n[s].listHeight;for(e++;e=2?zCe(s===0&&e===n.length?n:n.slice(s,e),!1):n[s]}let i=t(),r=t();if(!r)return i;for(let s=t();s;s=t())YCe(i,r)<=YCe(r,s)?(i=L6(i,r),r=s):r=L6(r,s);return L6(i,r)}function zCe(n,e=!1){if(n.length===0)return null;if(n.length===1)return n[0];let t=n.length;for(;t>3;){const i=t>>1;for(let r=0;r=3?n[2]:null,e)}function YCe(n,e){return Math.abs(n.listHeight-e.listHeight)}function L6(n,e){return n.listHeight===e.listHeight?$g.create23(n,e,null,!1):n.listHeight>e.listHeight?Avt(n,e):Nvt(e,n)}function Avt(n,e){n=n.toMutable();let t=n;const i=[];let r;for(;;){if(e.listHeight===t.listHeight){r=e;break}if(t.kind!==4)throw new Error("unexpected");i.push(t),t=t.makeLastElementMutable()}for(let o=i.length-1;o>=0;o--){const s=i[o];r?s.childrenLength>=3?r=$g.create23(s.unappendChild(),r,null,!1):(s.appendChildOfSameHeight(r),r=void 0):s.handleChildrenChanged()}return r?$g.create23(n,r,null,!1):n}function Nvt(n,e){n=n.toMutable();let t=n;const i=[];for(;e.listHeight!==t.listHeight;){if(t.kind!==4)throw new Error("unexpected");i.push(t),t=t.makeFirstElementMutable()}let r=e;for(let o=i.length-1;o>=0;o--){const s=i[o];r?s.childrenLength>=3?r=$g.create23(r,s.unprependChild(),null,!1):(s.prependChildOfSameHeight(r),r=void 0):s.handleChildrenChanged()}return r?$g.create23(r,n,null,!1):n}class kvt{constructor(e){this.lastOffset=nl,this.nextNodes=[e],this.offsets=[nl],this.idxs=[]}readLongestNodeAt(e,t){if(B2(e,this.lastOffset))throw new Error("Invalid offset");for(this.lastOffset=e;;){const i=U_(this.nextNodes);if(!i)return;const r=U_(this.offsets);if(B2(e,r))return;if(B2(r,e))if(Tr(r,i.length)<=e)this.nextNodeAfterCurrent();else{const o=F6(i);o!==-1?(this.nextNodes.push(i.getChild(o)),this.offsets.push(r),this.idxs.push(o)):this.nextNodeAfterCurrent()}else{if(t(i))return this.nextNodeAfterCurrent(),i;{const o=F6(i);if(o===-1){this.nextNodeAfterCurrent();return}else this.nextNodes.push(i.getChild(o)),this.offsets.push(r),this.idxs.push(o)}}}}nextNodeAfterCurrent(){for(;;){const e=U_(this.offsets),t=U_(this.nextNodes);if(this.nextNodes.pop(),this.offsets.pop(),this.idxs.length===0)break;const i=U_(this.nextNodes),r=F6(i,this.idxs[this.idxs.length-1]);if(r!==-1){this.nextNodes.push(i.getChild(r)),this.offsets.push(Tr(e,t.length)),this.idxs[this.idxs.length-1]=r;break}else this.idxs.pop()}}}function F6(n,e=-1){for(;;){if(e++,e>=n.childrenLength)return-1;if(n.getChild(e))return e}}function U_(n){return n.length>0?n[n.length-1]:void 0}function _6(n,e,t,i){return new Mvt(n,e,t,i).parseDocument()}class Mvt{constructor(e,t,i,r){if(this.tokenizer=e,this.createImmutableLists=r,this._itemsConstructed=0,this._itemsFromCache=0,i&&r)throw new Error("Not supported");this.oldNodeReader=i?new kvt(i):void 0,this.positionMapper=new yvt(t)}parseDocument(){this._itemsConstructed=0,this._itemsFromCache=0;let e=this.parseList(Eo.getEmpty(),0);return e||(e=$g.getEmpty()),e}parseList(e,t){const i=[];for(;;){let o=this.tryReadChildFromCache(e);if(!o){const s=this.tokenizer.peek();if(!s||s.kind===2&&s.bracketIds.intersects(e))break;o=this.parseChild(e,t+1)}o.kind===4&&o.childrenLength===0||i.push(o)}return this.oldNodeReader?Dvt(i):zCe(i,this.createImmutableLists)}tryReadChildFromCache(e){if(this.oldNodeReader){const t=this.positionMapper.getDistanceToNextChange(this.tokenizer.offset);if(t===null||!$T(t)){const i=this.oldNodeReader.readLongestNodeAt(this.positionMapper.getOffsetBeforeChange(this.tokenizer.offset),r=>t!==null&&!B2(r.length,t)?!1:r.canBeReused(e));if(i)return this._itemsFromCache++,this.tokenizer.skip(i.length),i}}}parseChild(e,t){this._itemsConstructed++;const i=this.tokenizer.read();switch(i.kind){case 2:return new xvt(i.bracketIds,i.length);case 0:return i.astNode;case 1:{if(t>300)return new ev(i.length);const r=e.merge(i.bracketIds),o=this.parseList(r,t+1),s=this.tokenizer.peek();return s&&s.kind===2&&(s.bracketId===i.bracketId||s.bracketIds.intersects(i.bracketIds))?(this.tokenizer.read(),Y_.create(i.astNode,o,s.astNode)):Y_.create(i.astNode,o,null)}default:throw new Error("unexpected")}}}function nE(n,e){if(n.length===0)return e;if(e.length===0)return n;const t=new Lf(HCe(n)),i=HCe(e);i.push({modified:!1,lengthBefore:void 0,lengthAfter:void 0});let r=t.dequeue();function o(u){if(u===void 0){const d=t.takeWhile(h=>!0)||[];return r&&d.unshift(r),d}const c=[];for(;r&&!$T(u);){const[d,h]=r.splitAt(u);c.push(d),u=B_(d.lengthAfter,u),r=h??t.dequeue()}return $T(u)||c.push(new Yb(!1,u,u)),c}const s=[];function a(u,c,d){if(s.length>0&&VCe(s[s.length-1].endOffset,u)){const h=s[s.length-1];s[s.length-1]=new Vf(h.startOffset,c,Tr(h.newLength,d))}else s.push({startOffset:u,endOffset:c,newLength:d})}let l=nl;for(const u of i){const c=o(u.lengthBefore);if(u.modified){const d=Cvt(c,g=>g.lengthBefore),h=Tr(l,d);a(l,h,u.lengthAfter),l=h}else for(const d of c){const h=l;l=Tr(l,d.lengthBefore),d.modified&&a(h,l,d.lengthAfter)}}return s}class Yb{constructor(e,t,i){this.modified=e,this.lengthBefore=t,this.lengthAfter=i}splitAt(e){const t=B_(e,this.lengthAfter);return VCe(t,nl)?[this,void 0]:this.modified?[new Yb(this.modified,this.lengthBefore,e),new Yb(this.modified,nl,t)]:[new Yb(this.modified,e,e),new Yb(this.modified,t,t)]}toString(){return`${this.modified?"M":"U"}:${Tc(this.lengthBefore)} -> ${Tc(this.lengthAfter)}`}}function HCe(n){const e=[];let t=nl;for(const i of n){const r=B_(t,i.startOffset);$T(r)||e.push(new Yb(!1,r,r));const o=B_(i.startOffset,i.endOffset);e.push(new Yb(!0,o,i.newLength)),t=i.endOffset}return e}class Zvt extends De{didLanguageChange(e){return this.brackets.didLanguageChange(e)}constructor(e,t){if(super(),this.textModel=e,this.getLanguageConfiguration=t,this.didChangeEmitter=new be,this.denseKeyProvider=new PCe,this.brackets=new BCe(this.denseKeyProvider,this.getLanguageConfiguration),this.onDidChange=this.didChangeEmitter.event,this.queuedTextEditsForInitialAstWithoutTokens=[],this.queuedTextEdits=[],e.tokenization.hasTokens)e.tokenization.backgroundTokenizationState===2?(this.initialAstWithoutTokens=void 0,this.astWithTokens=this.parseDocumentFromTextBuffer([],void 0,!1)):(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer([],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens);else{const i=this.brackets.getSingleLanguageBracketTokens(this.textModel.getLanguageId()),r=new Fvt(this.textModel.getValue(),i);this.initialAstWithoutTokens=_6(r,[],void 0,!0),this.astWithTokens=this.initialAstWithoutTokens}}handleDidChangeBackgroundTokenizationState(){if(this.textModel.tokenization.backgroundTokenizationState===2){const e=this.initialAstWithoutTokens===void 0;this.initialAstWithoutTokens=void 0,e||this.didChangeEmitter.fire()}}handleDidChangeTokens({ranges:e}){const t=e.map(i=>new Vf(fo(i.fromLineNumber-1,0),fo(i.toLineNumber,0),fo(i.toLineNumber-i.fromLineNumber+1,0)));this.handleEdits(t,!0),this.initialAstWithoutTokens||this.didChangeEmitter.fire()}handleContentChanged(e){const t=Vf.fromModelContentChanges(e.changes);this.handleEdits(t,!1)}handleEdits(e,t){const i=nE(this.queuedTextEdits,e);this.queuedTextEdits=i,this.initialAstWithoutTokens&&!t&&(this.queuedTextEditsForInitialAstWithoutTokens=nE(this.queuedTextEditsForInitialAstWithoutTokens,e))}flushQueue(){this.queuedTextEdits.length>0&&(this.astWithTokens=this.parseDocumentFromTextBuffer(this.queuedTextEdits,this.astWithTokens,!1),this.queuedTextEdits=[]),this.queuedTextEditsForInitialAstWithoutTokens.length>0&&(this.initialAstWithoutTokens&&(this.initialAstWithoutTokens=this.parseDocumentFromTextBuffer(this.queuedTextEditsForInitialAstWithoutTokens,this.initialAstWithoutTokens,!1)),this.queuedTextEditsForInitialAstWithoutTokens=[])}parseDocumentFromTextBuffer(e,t,i){const r=t,o=new OCe(this.textModel,this.brackets);return _6(o,e,r,i)}getBracketsInRange(e,t){this.flushQueue();const i=fo(e.startLineNumber-1,e.startColumn-1),r=fo(e.endLineNumber-1,e.endColumn-1);return new Vg(o=>{const s=this.initialAstWithoutTokens||this.astWithTokens;D6(s,nl,s.length,i,r,o,0,0,new Map,t)})}getBracketPairsInRange(e,t){this.flushQueue();const i=Y2(e.getStartPosition()),r=Y2(e.getEndPosition());return new Vg(o=>{const s=this.initialAstWithoutTokens||this.astWithTokens,a=new Tvt(o,t,this.textModel);A6(s,nl,s.length,i,r,a,0,new Map)})}getFirstBracketAfter(e){this.flushQueue();const t=this.initialAstWithoutTokens||this.astWithTokens;return JCe(t,nl,t.length,Y2(e))}getFirstBracketBefore(e){this.flushQueue();const t=this.initialAstWithoutTokens||this.astWithTokens;return UCe(t,nl,t.length,Y2(e))}}function UCe(n,e,t,i){if(n.kind===4||n.kind===2){const r=[];for(const o of n.children)t=Tr(e,o.length),r.push({nodeOffsetStart:e,nodeOffsetEnd:t}),e=t;for(let o=r.length-1;o>=0;o--){const{nodeOffsetStart:s,nodeOffsetEnd:a}=r[o];if(B2(s,i)){const l=UCe(n.children[o],s,a,i);if(l)return l}}return null}else{if(n.kind===3)return null;if(n.kind===1){const r=qC(e,t);return{bracketInfo:n.bracketInfo,range:r}}}return null}function JCe(n,e,t,i){if(n.kind===4||n.kind===2){for(const r of n.children){if(t=Tr(e,r.length),B2(i,t)){const o=JCe(r,e,t,i);if(o)return o}e=t}return null}else{if(n.kind===3)return null;if(n.kind===1){const r=qC(e,t);return{bracketInfo:n.bracketInfo,range:r}}}return null}function D6(n,e,t,i,r,o,s,a,l,u,c=!1){if(s>200)return!0;e:for(;;)switch(n.kind){case 4:{const d=n.childrenLength;for(let h=0;h200)return!0;let u=!0;if(n.kind===2){let c=0;if(a){let g=a.get(n.openingBracket.text);g===void 0&&(g=0),c=g,g++,a.set(n.openingBracket.text,g)}const d=Tr(e,n.openingBracket.length);let h=-1;if(o.includeMinIndentation&&(h=n.computeMinIndentation(e,o.textModel)),u=o.push(new fvt(qC(e,t),qC(e,d),n.closingBracket?qC(Tr(d,((l=n.child)===null||l===void 0?void 0:l.length)||nl),t):void 0,s,c,n,h)),e=d,u&&n.child){const g=n.child;if(t=Tr(e,g.length),z2(e,r)&&z_(t,i)&&(u=A6(g,e,t,i,r,o,s+1,a),!u))return!1}a==null||a.set(n.openingBracket.text,c)}else{let c=e;for(const d of n.children){const h=c;if(c=Tr(c,d.length),z2(h,r)&&z2(i,c)&&(u=A6(d,h,c,i,r,o,s,a),!u))return!1}}return u}class Evt extends De{get canBuildAST(){return this.textModel.getValueLength()<=5e6}constructor(e,t){super(),this.textModel=e,this.languageConfigurationService=t,this.bracketPairsTree=this._register(new zs),this.onDidChangeEmitter=new be,this.onDidChange=this.onDidChangeEmitter.event,this.bracketsRequested=!1,this._register(this.languageConfigurationService.onDidChange(i=>{var r;(!i.languageId||!((r=this.bracketPairsTree.value)===null||r===void 0)&&r.object.didLanguageChange(i.languageId))&&(this.bracketPairsTree.clear(),this.updateBracketPairsTree())}))}handleDidChangeOptions(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeLanguage(e){this.bracketPairsTree.clear(),this.updateBracketPairsTree()}handleDidChangeContent(e){var t;(t=this.bracketPairsTree.value)===null||t===void 0||t.object.handleContentChanged(e)}handleDidChangeBackgroundTokenizationState(){var e;(e=this.bracketPairsTree.value)===null||e===void 0||e.object.handleDidChangeBackgroundTokenizationState()}handleDidChangeTokens(e){var t;(t=this.bracketPairsTree.value)===null||t===void 0||t.object.handleDidChangeTokens(e)}updateBracketPairsTree(){if(this.bracketsRequested&&this.canBuildAST){if(!this.bracketPairsTree.value){const e=new je;this.bracketPairsTree.value=Wvt(e.add(new Zvt(this.textModel,t=>this.languageConfigurationService.getLanguageConfiguration(t))),e),e.add(this.bracketPairsTree.value.object.onDidChange(t=>this.onDidChangeEmitter.fire(t))),this.onDidChangeEmitter.fire()}}else this.bracketPairsTree.value&&(this.bracketPairsTree.clear(),this.onDidChangeEmitter.fire())}getBracketPairsInRange(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)===null||t===void 0?void 0:t.object.getBracketPairsInRange(e,!1))||Vg.empty}getBracketPairsInRangeWithMinIndentation(e){var t;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)===null||t===void 0?void 0:t.object.getBracketPairsInRange(e,!0))||Vg.empty}getBracketsInRange(e,t=!1){var i;return this.bracketsRequested=!0,this.updateBracketPairsTree(),((i=this.bracketPairsTree.value)===null||i===void 0?void 0:i.object.getBracketsInRange(e,t))||Vg.empty}findMatchingBracketUp(e,t,i){const r=this.textModel.validatePosition(t),o=this.textModel.getLanguageIdAtPosition(r.lineNumber,r.column);if(this.canBuildAST){const s=this.languageConfigurationService.getLanguageConfiguration(o).bracketsNew.getClosingBracketInfo(e);if(!s)return null;const a=this.getBracketPairsInRange(K.fromPositions(t,t)).findLast(l=>s.closes(l.openingBracketInfo));return a?a.openingBracketRange:null}else{const s=e.toLowerCase(),a=this.languageConfigurationService.getLanguageConfiguration(o).brackets;if(!a)return null;const l=a.textIsBracket[s];return l?iE(this._findMatchingBracketUp(l,r,N6(i))):null}}matchBracket(e,t){if(this.canBuildAST){const i=this.getBracketPairsInRange(K.fromPositions(e,e)).filter(r=>r.closingBracketRange!==void 0&&(r.openingBracketRange.containsPosition(e)||r.closingBracketRange.containsPosition(e))).findLastMaxBy(Fc(r=>r.openingBracketRange.containsPosition(e)?r.openingBracketRange:r.closingBracketRange,K.compareRangesUsingStarts));return i?[i.openingBracketRange,i.closingBracketRange]:null}else{const i=N6(t);return this._matchBracket(this.textModel.validatePosition(e),i)}}_establishBracketSearchOffsets(e,t,i,r){const o=t.getCount(),s=t.getLanguageId(r);let a=Math.max(0,e.column-1-i.maxBracketLength);for(let u=r-1;u>=0;u--){const c=t.getEndOffset(u);if(c<=a)break;if(Rg(t.getStandardTokenType(u))||t.getLanguageId(u)!==s){a=c;break}}let l=Math.min(t.getLineContent().length,e.column-1+i.maxBracketLength);for(let u=r+1;u=l)break;if(Rg(t.getStandardTokenType(u))||t.getLanguageId(u)!==s){l=c;break}}return{searchStartOffset:a,searchEndOffset:l}}_matchBracket(e,t){const i=e.lineNumber,r=this.textModel.tokenization.getLineTokens(i),o=this.textModel.getLineContent(i),s=r.findTokenIndexAtOffset(e.column-1);if(s<0)return null;const a=this.languageConfigurationService.getLanguageConfiguration(r.getLanguageId(s)).brackets;if(a&&!Rg(r.getStandardTokenType(s))){let{searchStartOffset:l,searchEndOffset:u}=this._establishBracketSearchOffsets(e,r,a,s),c=null;for(;;){const d=pd.findNextBracketInRange(a.forwardRegex,i,o,l,u);if(!d)break;if(d.startColumn<=e.column&&e.column<=d.endColumn){const h=o.substring(d.startColumn-1,d.endColumn-1).toLowerCase(),g=this._matchFoundBracket(d,a.textIsBracket[h],a.textIsOpenBracket[h],t);if(g){if(g instanceof Xf)return null;c=g}}l=d.endColumn-1}if(c)return c}if(s>0&&r.getStartOffset(s)===e.column-1){const l=s-1,u=this.languageConfigurationService.getLanguageConfiguration(r.getLanguageId(l)).brackets;if(u&&!Rg(r.getStandardTokenType(l))){const{searchStartOffset:c,searchEndOffset:d}=this._establishBracketSearchOffsets(e,r,u,l),h=pd.findPrevBracketInRange(u.reversedRegex,i,o,c,d);if(h&&h.startColumn<=e.column&&e.column<=h.endColumn){const g=o.substring(h.startColumn-1,h.endColumn-1).toLowerCase(),m=this._matchFoundBracket(h,u.textIsBracket[g],u.textIsOpenBracket[g],t);if(m)return m instanceof Xf?null:m}}}return null}_matchFoundBracket(e,t,i,r){if(!t)return null;const o=i?this._findMatchingBracketDown(t,e.getEndPosition(),r):this._findMatchingBracketUp(t,e.getStartPosition(),r);return o?o instanceof Xf?o:[e,o]:null}_findMatchingBracketUp(e,t,i){const r=e.languageId,o=e.reversedRegex;let s=-1,a=0;const l=(u,c,d,h)=>{for(;;){if(i&&++a%100===0&&!i())return Xf.INSTANCE;const g=pd.findPrevBracketInRange(o,u,c,d,h);if(!g)break;const m=c.substring(g.startColumn-1,g.endColumn-1).toLowerCase();if(e.isOpen(m)?s++:e.isClose(m)&&s--,s===0)return g;h=g.startColumn-1}return null};for(let u=t.lineNumber;u>=1;u--){const c=this.textModel.tokenization.getLineTokens(u),d=c.getCount(),h=this.textModel.getLineContent(u);let g=d-1,m=h.length,f=h.length;u===t.lineNumber&&(g=c.findTokenIndexAtOffset(t.column-1),m=t.column-1,f=t.column-1);let b=!0;for(;g>=0;g--){const C=c.getLanguageId(g)===r&&!Rg(c.getStandardTokenType(g));if(C)b?m=c.getStartOffset(g):(m=c.getStartOffset(g),f=c.getEndOffset(g));else if(b&&m!==f){const v=l(u,h,m,f);if(v)return v}b=C}if(b&&m!==f){const C=l(u,h,m,f);if(C)return C}}return null}_findMatchingBracketDown(e,t,i){const r=e.languageId,o=e.forwardRegex;let s=1,a=0;const l=(c,d,h,g)=>{for(;;){if(i&&++a%100===0&&!i())return Xf.INSTANCE;const m=pd.findNextBracketInRange(o,c,d,h,g);if(!m)break;const f=d.substring(m.startColumn-1,m.endColumn-1).toLowerCase();if(e.isOpen(f)?s++:e.isClose(f)&&s--,s===0)return m;h=m.endColumn-1}return null},u=this.textModel.getLineCount();for(let c=t.lineNumber;c<=u;c++){const d=this.textModel.tokenization.getLineTokens(c),h=d.getCount(),g=this.textModel.getLineContent(c);let m=0,f=0,b=0;c===t.lineNumber&&(m=d.findTokenIndexAtOffset(t.column-1),f=t.column-1,b=t.column-1);let C=!0;for(;m=1;a--){const l=this.textModel.tokenization.getLineTokens(a),u=l.getCount(),c=this.textModel.getLineContent(a);let d=u-1,h=c.length,g=c.length;if(a===i.lineNumber){d=l.findTokenIndexAtOffset(i.column-1),h=i.column-1,g=i.column-1;const f=l.getLanguageId(d);r!==f&&(r=f,o=this.languageConfigurationService.getLanguageConfiguration(r).brackets,s=this.languageConfigurationService.getLanguageConfiguration(r).bracketsNew)}let m=!0;for(;d>=0;d--){const f=l.getLanguageId(d);if(r!==f){if(o&&s&&m&&h!==g){const C=pd.findPrevBracketInRange(o.reversedRegex,a,c,h,g);if(C)return this._toFoundBracket(s,C);m=!1}r=f,o=this.languageConfigurationService.getLanguageConfiguration(r).brackets,s=this.languageConfigurationService.getLanguageConfiguration(r).bracketsNew}const b=!!o&&!Rg(l.getStandardTokenType(d));if(b)m?h=l.getStartOffset(d):(h=l.getStartOffset(d),g=l.getEndOffset(d));else if(s&&o&&m&&h!==g){const C=pd.findPrevBracketInRange(o.reversedRegex,a,c,h,g);if(C)return this._toFoundBracket(s,C)}m=b}if(s&&o&&m&&h!==g){const f=pd.findPrevBracketInRange(o.reversedRegex,a,c,h,g);if(f)return this._toFoundBracket(s,f)}}return null}findNextBracket(e){var t;const i=this.textModel.validatePosition(e);if(this.canBuildAST)return this.bracketsRequested=!0,this.updateBracketPairsTree(),((t=this.bracketPairsTree.value)===null||t===void 0?void 0:t.object.getFirstBracketAfter(i))||null;const r=this.textModel.getLineCount();let o=null,s=null,a=null;for(let l=i.lineNumber;l<=r;l++){const u=this.textModel.tokenization.getLineTokens(l),c=u.getCount(),d=this.textModel.getLineContent(l);let h=0,g=0,m=0;if(l===i.lineNumber){h=u.findTokenIndexAtOffset(i.column-1),g=i.column-1,m=i.column-1;const b=u.getLanguageId(h);o!==b&&(o=b,s=this.languageConfigurationService.getLanguageConfiguration(o).brackets,a=this.languageConfigurationService.getLanguageConfiguration(o).bracketsNew)}let f=!0;for(;hf.closingBracketRange!==void 0&&f.range.strictContainsRange(g));return m?[m.openingBracketRange,m.closingBracketRange]:null}const r=N6(t),o=this.textModel.getLineCount(),s=new Map;let a=[];const l=(g,m)=>{if(!s.has(g)){const f=[];for(let b=0,C=m?m.brackets.length:0;b{for(;;){if(r&&++u%100===0&&!r())return Xf.INSTANCE;const v=pd.findNextBracketInRange(g.forwardRegex,m,f,b,C);if(!v)break;const w=f.substring(v.startColumn-1,v.endColumn-1).toLowerCase(),S=g.textIsBracket[w];if(S&&(S.isOpen(w)?a[S.index]++:S.isClose(w)&&a[S.index]--,a[S.index]===-1))return this._matchFoundBracket(v,S,!1,r);b=v.endColumn-1}return null};let d=null,h=null;for(let g=i.lineNumber;g<=o;g++){const m=this.textModel.tokenization.getLineTokens(g),f=m.getCount(),b=this.textModel.getLineContent(g);let C=0,v=0,w=0;if(g===i.lineNumber){C=m.findTokenIndexAtOffset(i.column-1),v=i.column-1,w=i.column-1;const F=m.getLanguageId(C);d!==F&&(d=F,h=this.languageConfigurationService.getLanguageConfiguration(d).brackets,l(d,h))}let S=!0;for(;Ce==null?void 0:e.dispose()}}function N6(n){if(typeof n>"u")return()=>!0;{const e=Date.now();return()=>Date.now()-e<=n}}class Xf{constructor(){this._searchCanceledBrand=void 0}}Xf.INSTANCE=new Xf;function iE(n){return n instanceof Xf?null:n}class Rvt extends De{constructor(e){super(),this.textModel=e,this.colorProvider=new KCe,this.onDidChangeEmitter=new be,this.onDidChange=this.onDidChangeEmitter.event,this.colorizationOptions=e.getOptions().bracketPairColorizationOptions,this._register(e.bracketPairs.onDidChange(t=>{this.onDidChangeEmitter.fire()}))}handleDidChangeOptions(e){this.colorizationOptions=this.textModel.getOptions().bracketPairColorizationOptions}getDecorationsInRange(e,t,i,r){return r?[]:t===void 0?[]:this.colorizationOptions.enabled?this.textModel.bracketPairs.getBracketsInRange(e,!0).map(s=>({id:`bracket${s.range.toString()}-${s.nestingLevel}`,options:{description:"BracketPairColorization",inlineClassName:this.colorProvider.getInlineClassName(s,this.colorizationOptions.independentColorPoolPerBracketType)},ownerId:0,range:s.range})).toArray():[]}getAllDecorations(e,t){return e===void 0?[]:this.colorizationOptions.enabled?this.getDecorationsInRange(new K(1,1,this.textModel.getLineCount(),1),e,t):[]}}class KCe{constructor(){this.unexpectedClosingBracketClassName="unexpected-closing-bracket"}getInlineClassName(e,t){return e.isInvalid?this.unexpectedClosingBracketClassName:this.getInlineClassNameOfLevel(t?e.nestingLevelOfEqualBracketType:e.nestingLevel)}getInlineClassNameOfLevel(e){return`bracket-highlighting-${e%30}`}}kc((n,e)=>{const t=[iCe,rCe,oCe,sCe,aCe,lCe],i=new KCe;e.addRule(`.monaco-editor .${i.unexpectedClosingBracketClassName} { color: ${n.getColor(T1t)}; }`);const r=t.map(o=>n.getColor(o)).filter(o=>!!o).filter(o=>!o.isTransparent());for(let o=0;o<30;o++){const s=r[o%r.length];e.addRule(`.monaco-editor .${i.getInlineClassNameOfLevel(o)} { color: ${s}; }`)}});function rE(n){return n.replace(/\n/g,"\\n").replace(/\r/g,"\\r")}class Qs{get oldLength(){return this.oldText.length}get oldEnd(){return this.oldPosition+this.oldText.length}get newLength(){return this.newText.length}get newEnd(){return this.newPosition+this.newText.length}constructor(e,t,i,r){this.oldPosition=e,this.oldText=t,this.newPosition=i,this.newText=r}toString(){return this.oldText.length===0?`(insert@${this.oldPosition} "${rE(this.newText)}")`:this.newText.length===0?`(delete@${this.oldPosition} "${rE(this.oldText)}")`:`(replace@${this.oldPosition} "${rE(this.oldText)}" with "${rE(this.newText)}")`}static _writeStringSize(e){return 4+2*e.length}static _writeString(e,t,i){const r=t.length;yh(e,r,i),i+=4;for(let o=0;on.length)return!1;if(t){if(!SY(n,e))return!1;if(e.length===n.length)return!0;let o=e.length;return e.charAt(e.length-1)===i&&o--,n.charAt(o)===i}return e.charAt(e.length-1)!==i&&(e+=i),n.indexOf(e)===0}function $Ce(n){return n>=65&&n<=90||n>=97&&n<=122}function Xvt(n,e=ya){return e?$Ce(n.charCodeAt(0))&&n.charCodeAt(1)===58:!1}function em(n){return C5(n,!0)}class Pvt{constructor(e){this._ignorePathCasing=e}compare(e,t,i=!1){return e===t?0:AF(this.getComparisonKey(e,i),this.getComparisonKey(t,i))}isEqual(e,t,i=!1){return e===t?!0:!e||!t?!1:this.getComparisonKey(e,i)===this.getComparisonKey(t,i)}getComparisonKey(e,t=!1){return e.with({path:this._ignorePathCasing(e)?e.path.toLowerCase():void 0,fragment:t?null:void 0}).toString()}isEqualOrParent(e,t,i=!1){if(e.scheme===t.scheme){if(e.scheme===xn.file)return k6(em(e),em(t),this._ignorePathCasing(e))&&e.query===t.query&&(i||e.fragment===t.fragment);if(eve(e.authority,t.authority))return k6(e.path,t.path,this._ignorePathCasing(e),"/")&&e.query===t.query&&(i||e.fragment===t.fragment)}return!1}joinPath(e,...t){return $t.joinPath(e,...t)}basenameOrAuthority(e){return Ec(e)||e.authority}basename(e){return Zo.basename(e.path)}extname(e){return Zo.extname(e.path)}dirname(e){if(e.path.length===0)return e;let t;return e.scheme===xn.file?t=$t.file(kbe(em(e))).path:(t=Zo.dirname(e.path),e.authority&&t.length&&t.charCodeAt(0)!==47&&(t="/")),e.with({path:t})}normalizePath(e){if(!e.path.length)return e;let t;return e.scheme===xn.file?t=$t.file(Nbe(em(e))).path:t=Zo.normalize(e.path),e.with({path:t})}relativePath(e,t){if(e.scheme!==t.scheme||!eve(e.authority,t.authority))return;if(e.scheme===xn.file){const o=cgt(em(e),em(t));return ya?jCe(o):o}let i=e.path||"/";const r=t.path||"/";if(this._ignorePathCasing(e)){let o=0;for(const s=Math.min(i.length,r.length);oQCe(i).length&&i[i.length-1]===t}else{const i=e.path;return i.length>1&&i.charCodeAt(i.length-1)===47&&!/^[a-zA-Z]:(\/$|\\$)/.test(e.fsPath)}}removeTrailingPathSeparator(e,t=Db){return tve(e,t)?e.with({path:e.path.substr(0,e.path.length-1)}):e}addTrailingPathSeparator(e,t=Db){let i=!1;if(e.scheme===xn.file){const r=em(e);i=r!==void 0&&r.length===QCe(r).length&&r[r.length-1]===t}else{t="/";const r=e.path;i=r.length===1&&r.charCodeAt(r.length-1)===47}return!i&&!tve(e,t)?e.with({path:e.path+"/"}):e}}const hr=new Pvt(()=>!1),M6=hr.isEqual.bind(hr);hr.isEqualOrParent.bind(hr),hr.getComparisonKey.bind(hr);const Ovt=hr.basenameOrAuthority.bind(hr),Ec=hr.basename.bind(hr),Bvt=hr.extname.bind(hr),oE=hr.dirname.bind(hr),zvt=hr.joinPath.bind(hr),Yvt=hr.normalizePath.bind(hr),Hvt=hr.relativePath.bind(hr),qCe=hr.resolvePath.bind(hr);hr.isAbsolutePath.bind(hr);const eve=hr.isEqualAuthority.bind(hr),tve=hr.hasTrailingPathSeparator.bind(hr);hr.removeTrailingPathSeparator.bind(hr),hr.addTrailingPathSeparator.bind(hr);var Ub;(function(n){n.META_DATA_LABEL="label",n.META_DATA_DESCRIPTION="description",n.META_DATA_SIZE="size",n.META_DATA_MIME="mime";function e(t){const i=new Map;t.path.substring(t.path.indexOf(";")+1,t.path.lastIndexOf(";")).split(";").forEach(s=>{const[a,l]=s.split(":");a&&l&&i.set(a,l)});const o=t.path.substring(0,t.path.indexOf(";"));return o&&i.set(n.META_DATA_MIME,o),i}n.parseMetaData=e})(Ub||(Ub={}));function H2(n){return n.toString()}class gs{static create(e,t){const i=e.getAlternativeVersionId(),r=Z6(e);return new gs(i,i,r,r,t,t,[])}constructor(e,t,i,r,o,s,a){this.beforeVersionId=e,this.afterVersionId=t,this.beforeEOL=i,this.afterEOL=r,this.beforeCursorState=o,this.afterCursorState=s,this.changes=a}append(e,t,i,r,o){t.length>0&&(this.changes=Gvt(this.changes,t)),this.afterEOL=i,this.afterVersionId=r,this.afterCursorState=o}static _writeSelectionsSize(e){return 4+4*4*(e?e.length:0)}static _writeSelections(e,t,i){if(yh(e,t?t.length:0,i),i+=4,t)for(const r of t)yh(e,r.selectionStartLineNumber,i),i+=4,yh(e,r.selectionStartColumn,i),i+=4,yh(e,r.positionLineNumber,i),i+=4,yh(e,r.positionColumn,i),i+=4;return i}static _readSelections(e,t,i){const r=vh(e,t);t+=4;for(let o=0;ot.toString()).join(", ")}matchesResource(e){return($t.isUri(this.model)?this.model:this.model.uri).toString()===e.toString()}setModel(e){this.model=e}canAppend(e){return this.model===e&&this._data instanceof gs}append(e,t,i,r,o){this._data instanceof gs&&this._data.append(e,t,i,r,o)}close(){this._data instanceof gs&&(this._data=this._data.serialize())}open(){this._data instanceof gs||(this._data=gs.deserialize(this._data))}undo(){if($t.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof gs&&(this._data=this._data.serialize());const e=gs.deserialize(this._data);this.model._applyUndo(e.changes,e.beforeEOL,e.beforeVersionId,e.beforeCursorState)}redo(){if($t.isUri(this.model))throw new Error("Invalid SingleModelEditStackElement");this._data instanceof gs&&(this._data=this._data.serialize());const e=gs.deserialize(this._data);this.model._applyRedo(e.changes,e.afterEOL,e.afterVersionId,e.afterCursorState)}heapSize(){return this._data instanceof gs&&(this._data=this._data.serialize()),this._data.byteLength+168}}class Uvt{get resources(){return this._editStackElementsArr.map(e=>e.resource)}constructor(e,t,i){this.label=e,this.code=t,this.type=1,this._isOpen=!0,this._editStackElementsArr=i.slice(0),this._editStackElementsMap=new Map;for(const r of this._editStackElementsArr){const o=H2(r.resource);this._editStackElementsMap.set(o,r)}this._delegate=null}prepareUndoRedo(){if(this._delegate)return this._delegate.prepareUndoRedo(this)}matchesResource(e){const t=H2(e);return this._editStackElementsMap.has(t)}setModel(e){const t=H2($t.isUri(e)?e:e.uri);this._editStackElementsMap.has(t)&&this._editStackElementsMap.get(t).setModel(e)}canAppend(e){if(!this._isOpen)return!1;const t=H2(e.uri);return this._editStackElementsMap.has(t)?this._editStackElementsMap.get(t).canAppend(e):!1}append(e,t,i,r,o){const s=H2(e.uri);this._editStackElementsMap.get(s).append(e,t,i,r,o)}close(){this._isOpen=!1}open(){}undo(){this._isOpen=!1;for(const e of this._editStackElementsArr)e.undo()}redo(){for(const e of this._editStackElementsArr)e.redo()}heapSize(e){const t=H2(e);return this._editStackElementsMap.has(t)?this._editStackElementsMap.get(t).heapSize():0}split(){return this._editStackElementsArr}toString(){const e=[];for(const t of this._editStackElementsArr)e.push(`${Ec(t.resource)}: ${t}`);return`{${e.join(", ")}}`}}function Z6(n){return n.getEOL()===` +`?0:1}function Pf(n){return n?n instanceof nve||n instanceof Uvt:!1}class T6{constructor(e,t){this._model=e,this._undoRedoService=t}pushStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);Pf(e)&&e.close()}popStackElement(){const e=this._undoRedoService.getLastElement(this._model.uri);Pf(e)&&e.open()}clear(){this._undoRedoService.removeElements(this._model.uri)}_getOrCreateEditStackElement(e,t){const i=this._undoRedoService.getLastElement(this._model.uri);if(Pf(i)&&i.canAppend(this._model))return i;const r=new nve(x("edit","Typing"),"undoredo.textBufferEdit",this._model,e);return this._undoRedoService.pushElement(r,t),r}pushEOL(e){const t=this._getOrCreateEditStackElement(null,void 0);this._model.setEOL(e),t.append(this._model,[],Z6(this._model),this._model.getAlternativeVersionId(),null)}pushEditOperation(e,t,i,r){const o=this._getOrCreateEditStackElement(e,r),s=this._model.applyEdits(t,!0),a=T6._computeCursorState(i,s),l=s.map((u,c)=>({index:c,textChange:u.textChange}));return l.sort((u,c)=>u.textChange.oldPosition===c.textChange.oldPosition?u.index-c.index:u.textChange.oldPosition-c.textChange.oldPosition),o.append(this._model,l.map(u=>u.textChange),Z6(this._model),this._model.getAlternativeVersionId(),a),a}static _computeCursorState(e,t){try{return e?e(t):null}catch(i){return fn(i),null}}}class Jvt{constructor(){this.spacesDiff=0,this.looksLikeAlignment=!1}}function Kvt(n,e,t,i,r){r.spacesDiff=0,r.looksLikeAlignment=!1;let o;for(o=0;o0&&a>0||l>0&&u>0)return;const c=Math.abs(a-u),d=Math.abs(s-l);if(c===0){r.spacesDiff=d,d>0&&0<=l-1&&l-10?r++:S>1&&o++,Kvt(s,a,b,w,d),d.looksLikeAlignment&&!(t&&e===d.spacesDiff)))continue;const L=d.spacesDiff;L<=u&&c[L]++,s=b,a=w}let h=t;r!==o&&(h=r{const b=c[f];b>m&&(m=b,g=f)}),g===4&&c[4]>0&&c[2]>0&&c[2]>=c[4]/2&&(g=2)}return{insertSpaces:h,tabSize:g}}function El(n){return(n.metadata&1)>>>0}function gr(n,e){n.metadata=n.metadata&254|e<<0}function $s(n){return(n.metadata&2)>>>1===1}function ir(n,e){n.metadata=n.metadata&253|(e?1:0)<<1}function rve(n){return(n.metadata&4)>>>2===1}function ove(n,e){n.metadata=n.metadata&251|(e?1:0)<<2}function sve(n){return(n.metadata&64)>>>6===1}function ave(n,e){n.metadata=n.metadata&191|(e?1:0)<<6}function jvt(n){return(n.metadata&24)>>>3}function lve(n,e){n.metadata=n.metadata&231|e<<3}function Qvt(n){return(n.metadata&32)>>>5===1}function uve(n,e){n.metadata=n.metadata&223|(e?1:0)<<5}class cve{constructor(e,t,i){this.metadata=0,this.parent=this,this.left=this,this.right=this,gr(this,1),this.start=t,this.end=i,this.delta=0,this.maxEnd=i,this.id=e,this.ownerId=0,this.options=null,ove(this,!1),ave(this,!1),lve(this,1),uve(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i,this.range=null,ir(this,!1)}reset(e,t,i,r){this.start=t,this.end=i,this.maxEnd=i,this.cachedVersionId=e,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=i,this.range=r}setOptions(e){this.options=e;const t=this.options.className;ove(this,t==="squiggly-error"||t==="squiggly-warning"||t==="squiggly-info"),ave(this,this.options.glyphMarginClassName!==null),lve(this,this.options.stickiness),uve(this,this.options.collapseOnReplaceEdit)}setCachedOffsets(e,t,i){this.cachedVersionId!==i&&(this.range=null),this.cachedVersionId=i,this.cachedAbsoluteStart=e,this.cachedAbsoluteEnd=t}detach(){this.parent=null,this.left=null,this.right=null}}const On=new cve(null,0,0);On.parent=On,On.left=On,On.right=On,gr(On,0);class E6{constructor(){this.root=On,this.requestNormalizeDelta=!1}intervalSearch(e,t,i,r,o,s){return this.root===On?[]:oyt(this,e,t,i,r,o,s)}search(e,t,i,r){return this.root===On?[]:ryt(this,e,t,i,r)}collectNodesFromOwner(e){return nyt(this,e)}collectNodesPostOrder(){return iyt(this)}insert(e){dve(this,e),this._normalizeDeltaIfNecessary()}delete(e){hve(this,e),this._normalizeDeltaIfNecessary()}resolveNode(e,t){const i=e;let r=0;for(;e!==this.root;)e===e.parent.right&&(r+=e.parent.delta),e=e.parent;const o=i.start+r,s=i.end+r;i.setCachedOffsets(o,s,t)}acceptReplace(e,t,i,r){const o=eyt(this,e,e+t);for(let s=0,a=o.length;st||i===1?!1:i===2?!0:e}function qvt(n,e,t,i,r){const o=jvt(n),s=o===0||o===2,a=o===1||o===2,l=t-e,u=i,c=Math.min(l,u),d=n.start;let h=!1;const g=n.end;let m=!1;e<=d&&g<=t&&Qvt(n)&&(n.start=e,h=!0,n.end=e,m=!0);{const b=r?1:l>0?2:0;!h&&U2(d,s,e,b)&&(h=!0),!m&&U2(g,a,e,b)&&(m=!0)}if(c>0&&!r){const b=l>u?2:0;!h&&U2(d,s,e+c,b)&&(h=!0),!m&&U2(g,a,e+c,b)&&(m=!0)}{const b=r?1:0;!h&&U2(d,s,t,b)&&(n.start=e+u,h=!0),!m&&U2(g,a,t,b)&&(n.end=e+u,m=!0)}const f=u-l;h||(n.start=Math.max(0,d+f)),m||(n.end=Math.max(0,g+f)),n.start>n.end&&(n.end=n.start)}function eyt(n,e,t){let i=n.root,r=0,o=0,s=0,a=0;const l=[];let u=0;for(;i!==On;){if($s(i)){ir(i.left,!1),ir(i.right,!1),i===i.parent.right&&(r-=i.parent.delta),i=i.parent;continue}if(!$s(i.left)){if(o=r+i.maxEnd,ot){ir(i,!0);continue}if(a=r+i.end,a>=e&&(i.setCachedOffsets(s,a,0),l[u++]=i),ir(i,!0),i.right!==On&&!$s(i.right)){r+=i.delta,i=i.right;continue}}return ir(n.root,!1),l}function tyt(n,e,t,i){let r=n.root,o=0,s=0,a=0;const l=i-(t-e);for(;r!==On;){if($s(r)){ir(r.left,!1),ir(r.right,!1),r===r.parent.right&&(o-=r.parent.delta),Jb(r),r=r.parent;continue}if(!$s(r.left)){if(s=o+r.maxEnd,st){r.start+=l,r.end+=l,r.delta+=l,(r.delta<-1073741824||r.delta>1073741824)&&(n.requestNormalizeDelta=!0),ir(r,!0);continue}if(ir(r,!0),r.right!==On&&!$s(r.right)){o+=r.delta,r=r.right;continue}}ir(n.root,!1)}function nyt(n,e){let t=n.root;const i=[];let r=0;for(;t!==On;){if($s(t)){ir(t.left,!1),ir(t.right,!1),t=t.parent;continue}if(t.left!==On&&!$s(t.left)){t=t.left;continue}if(t.ownerId===e&&(i[r++]=t),ir(t,!0),t.right!==On&&!$s(t.right)){t=t.right;continue}}return ir(n.root,!1),i}function iyt(n){let e=n.root;const t=[];let i=0;for(;e!==On;){if($s(e)){ir(e.left,!1),ir(e.right,!1),e=e.parent;continue}if(e.left!==On&&!$s(e.left)){e=e.left;continue}if(e.right!==On&&!$s(e.right)){e=e.right;continue}t[i++]=e,ir(e,!0)}return ir(n.root,!1),t}function ryt(n,e,t,i,r){let o=n.root,s=0,a=0,l=0;const u=[];let c=0;for(;o!==On;){if($s(o)){ir(o.left,!1),ir(o.right,!1),o===o.parent.right&&(s-=o.parent.delta),o=o.parent;continue}if(o.left!==On&&!$s(o.left)){o=o.left;continue}a=s+o.start,l=s+o.end,o.setCachedOffsets(a,l,i);let d=!0;if(e&&o.ownerId&&o.ownerId!==e&&(d=!1),t&&rve(o)&&(d=!1),r&&!sve(o)&&(d=!1),d&&(u[c++]=o),ir(o,!0),o.right!==On&&!$s(o.right)){s+=o.delta,o=o.right;continue}}return ir(n.root,!1),u}function oyt(n,e,t,i,r,o,s){let a=n.root,l=0,u=0,c=0,d=0;const h=[];let g=0;for(;a!==On;){if($s(a)){ir(a.left,!1),ir(a.right,!1),a===a.parent.right&&(l-=a.parent.delta),a=a.parent;continue}if(!$s(a.left)){if(u=l+a.maxEnd,ut){ir(a,!0);continue}if(d=l+a.end,d>=e){a.setCachedOffsets(c,d,o);let m=!0;i&&a.ownerId&&a.ownerId!==i&&(m=!1),r&&rve(a)&&(m=!1),s&&!sve(a)&&(m=!1),m&&(h[g++]=a)}if(ir(a,!0),a.right!==On&&!$s(a.right)){l+=a.delta,a=a.right;continue}}return ir(n.root,!1),h}function dve(n,e){if(n.root===On)return e.parent=On,e.left=On,e.right=On,gr(e,0),n.root=e,n.root;syt(n,e),Kb(e.parent);let t=e;for(;t!==n.root&&El(t.parent)===1;)if(t.parent===t.parent.parent.left){const i=t.parent.parent.right;El(i)===1?(gr(t.parent,0),gr(i,0),gr(t.parent.parent,1),t=t.parent.parent):(t===t.parent.right&&(t=t.parent,J_(n,t)),gr(t.parent,0),gr(t.parent.parent,1),K_(n,t.parent.parent))}else{const i=t.parent.parent.left;El(i)===1?(gr(t.parent,0),gr(i,0),gr(t.parent.parent,1),t=t.parent.parent):(t===t.parent.left&&(t=t.parent,K_(n,t)),gr(t.parent,0),gr(t.parent.parent,1),J_(n,t.parent.parent))}return gr(n.root,0),e}function syt(n,e){let t=0,i=n.root;const r=e.start,o=e.end;for(;;)if(lyt(r,o,i.start+t,i.end+t)<0)if(i.left===On){e.start-=t,e.end-=t,e.maxEnd-=t,i.left=e;break}else i=i.left;else if(i.right===On){e.start-=t+i.delta,e.end-=t+i.delta,e.maxEnd-=t+i.delta,i.right=e;break}else t+=i.delta,i=i.right;e.parent=i,e.left=On,e.right=On,gr(e,1)}function hve(n,e){let t,i;if(e.left===On?(t=e.right,i=e,t.delta+=e.delta,(t.delta<-1073741824||t.delta>1073741824)&&(n.requestNormalizeDelta=!0),t.start+=e.delta,t.end+=e.delta):e.right===On?(t=e.left,i=e):(i=ayt(e.right),t=i.right,t.start+=i.delta,t.end+=i.delta,t.delta+=i.delta,(t.delta<-1073741824||t.delta>1073741824)&&(n.requestNormalizeDelta=!0),i.start+=e.delta,i.end+=e.delta,i.delta=e.delta,(i.delta<-1073741824||i.delta>1073741824)&&(n.requestNormalizeDelta=!0)),i===n.root){n.root=t,gr(t,0),e.detach(),W6(),Jb(t),n.root.parent=On;return}const r=El(i)===1;if(i===i.parent.left?i.parent.left=t:i.parent.right=t,i===e?t.parent=i.parent:(i.parent===e?t.parent=i:t.parent=i.parent,i.left=e.left,i.right=e.right,i.parent=e.parent,gr(i,El(e)),e===n.root?n.root=i:e===e.parent.left?e.parent.left=i:e.parent.right=i,i.left!==On&&(i.left.parent=i),i.right!==On&&(i.right.parent=i)),e.detach(),r){Kb(t.parent),i!==e&&(Kb(i),Kb(i.parent)),W6();return}Kb(t),Kb(t.parent),i!==e&&(Kb(i),Kb(i.parent));let o;for(;t!==n.root&&El(t)===0;)t===t.parent.left?(o=t.parent.right,El(o)===1&&(gr(o,0),gr(t.parent,1),J_(n,t.parent),o=t.parent.right),El(o.left)===0&&El(o.right)===0?(gr(o,1),t=t.parent):(El(o.right)===0&&(gr(o.left,0),gr(o,1),K_(n,o),o=t.parent.right),gr(o,El(t.parent)),gr(t.parent,0),gr(o.right,0),J_(n,t.parent),t=n.root)):(o=t.parent.left,El(o)===1&&(gr(o,0),gr(t.parent,1),K_(n,t.parent),o=t.parent.left),El(o.left)===0&&El(o.right)===0?(gr(o,1),t=t.parent):(El(o.left)===0&&(gr(o.right,0),gr(o,1),J_(n,o),o=t.parent.left),gr(o,El(t.parent)),gr(t.parent,0),gr(o.left,0),K_(n,t.parent),t=n.root));gr(t,0),W6()}function ayt(n){for(;n.left!==On;)n=n.left;return n}function W6(){On.parent=On,On.delta=0,On.start=0,On.end=0}function J_(n,e){const t=e.right;t.delta+=e.delta,(t.delta<-1073741824||t.delta>1073741824)&&(n.requestNormalizeDelta=!0),t.start+=e.delta,t.end+=e.delta,e.right=t.left,t.left!==On&&(t.left.parent=e),t.parent=e.parent,e.parent===On?n.root=t:e===e.parent.left?e.parent.left=t:e.parent.right=t,t.left=e,e.parent=t,Jb(e),Jb(t)}function K_(n,e){const t=e.left;e.delta-=t.delta,(e.delta<-1073741824||e.delta>1073741824)&&(n.requestNormalizeDelta=!0),e.start-=t.delta,e.end-=t.delta,e.left=t.right,t.right!==On&&(t.right.parent=e),t.parent=e.parent,e.parent===On?n.root=t:e===e.parent.right?e.parent.right=t:e.parent.left=t,t.right=e,e.parent=t,Jb(e),Jb(t)}function gve(n){let e=n.end;if(n.left!==On){const t=n.left.maxEnd;t>e&&(e=t)}if(n.right!==On){const t=n.right.maxEnd+n.delta;t>e&&(e=t)}return e}function Jb(n){n.maxEnd=gve(n)}function Kb(n){for(;n!==On;){const e=gve(n);if(n.maxEnd===e)return;n.maxEnd=e,n=n.parent}}function lyt(n,e,t,i){return n===t?e-i:n-t}class R6{constructor(e,t){this.piece=e,this.color=t,this.size_left=0,this.lf_left=0,this.parent=this,this.left=this,this.right=this}next(){if(this.right!==yn)return G6(this.right);let e=this;for(;e.parent!==yn&&e.parent.left!==e;)e=e.parent;return e.parent===yn?yn:e.parent}prev(){if(this.left!==yn)return mve(this.left);let e=this;for(;e.parent!==yn&&e.parent.right!==e;)e=e.parent;return e.parent===yn?yn:e.parent}detach(){this.parent=null,this.left=null,this.right=null}}const yn=new R6(null,0);yn.parent=yn,yn.left=yn,yn.right=yn,yn.color=0;function G6(n){for(;n.left!==yn;)n=n.left;return n}function mve(n){for(;n.right!==yn;)n=n.right;return n}function V6(n){return n===yn?0:n.size_left+n.piece.length+V6(n.right)}function X6(n){return n===yn?0:n.lf_left+n.piece.lineFeedCnt+X6(n.right)}function P6(){yn.parent=yn}function j_(n,e){const t=e.right;t.size_left+=e.size_left+(e.piece?e.piece.length:0),t.lf_left+=e.lf_left+(e.piece?e.piece.lineFeedCnt:0),e.right=t.left,t.left!==yn&&(t.left.parent=e),t.parent=e.parent,e.parent===yn?n.root=t:e.parent.left===e?e.parent.left=t:e.parent.right=t,t.left=e,e.parent=t}function Q_(n,e){const t=e.left;e.left=t.right,t.right!==yn&&(t.right.parent=e),t.parent=e.parent,e.size_left-=t.size_left+(t.piece?t.piece.length:0),e.lf_left-=t.lf_left+(t.piece?t.piece.lineFeedCnt:0),e.parent===yn?n.root=t:e===e.parent.right?e.parent.right=t:e.parent.left=t,t.right=e,e.parent=t}function sE(n,e){let t,i;if(e.left===yn?(i=e,t=i.right):e.right===yn?(i=e,t=i.left):(i=G6(e.right),t=i.right),i===n.root){n.root=t,t.color=0,e.detach(),P6(),n.root.parent=yn;return}const r=i.color===1;if(i===i.parent.left?i.parent.left=t:i.parent.right=t,i===e?(t.parent=i.parent,$_(n,t)):(i.parent===e?t.parent=i:t.parent=i.parent,$_(n,t),i.left=e.left,i.right=e.right,i.parent=e.parent,i.color=e.color,e===n.root?n.root=i:e===e.parent.left?e.parent.left=i:e.parent.right=i,i.left!==yn&&(i.left.parent=i),i.right!==yn&&(i.right.parent=i),i.size_left=e.size_left,i.lf_left=e.lf_left,$_(n,i)),e.detach(),t.parent.left===t){const s=V6(t),a=X6(t);if(s!==t.parent.size_left||a!==t.parent.lf_left){const l=s-t.parent.size_left,u=a-t.parent.lf_left;t.parent.size_left=s,t.parent.lf_left=a,Of(n,t.parent,l,u)}}if($_(n,t.parent),r){P6();return}let o;for(;t!==n.root&&t.color===0;)t===t.parent.left?(o=t.parent.right,o.color===1&&(o.color=0,t.parent.color=1,j_(n,t.parent),o=t.parent.right),o.left.color===0&&o.right.color===0?(o.color=1,t=t.parent):(o.right.color===0&&(o.left.color=0,o.color=1,Q_(n,o),o=t.parent.right),o.color=t.parent.color,t.parent.color=0,o.right.color=0,j_(n,t.parent),t=n.root)):(o=t.parent.left,o.color===1&&(o.color=0,t.parent.color=1,Q_(n,t.parent),o=t.parent.left),o.left.color===0&&o.right.color===0?(o.color=1,t=t.parent):(o.left.color===0&&(o.right.color=0,o.color=1,j_(n,o),o=t.parent.left),o.color=t.parent.color,t.parent.color=0,o.left.color=0,Q_(n,t.parent),t=n.root));t.color=0,P6()}function fve(n,e){for($_(n,e);e!==n.root&&e.parent.color===1;)if(e.parent===e.parent.parent.left){const t=e.parent.parent.right;t.color===1?(e.parent.color=0,t.color=0,e.parent.parent.color=1,e=e.parent.parent):(e===e.parent.right&&(e=e.parent,j_(n,e)),e.parent.color=0,e.parent.parent.color=1,Q_(n,e.parent.parent))}else{const t=e.parent.parent.left;t.color===1?(e.parent.color=0,t.color=0,e.parent.parent.color=1,e=e.parent.parent):(e===e.parent.left&&(e=e.parent,Q_(n,e)),e.parent.color=0,e.parent.parent.color=1,j_(n,e.parent.parent))}n.root.color=0}function Of(n,e,t,i){for(;e!==n.root&&e!==yn;)e.parent.left===e&&(e.parent.size_left+=t,e.parent.lf_left+=i),e=e.parent}function $_(n,e){let t=0,i=0;if(e!==n.root){for(;e!==n.root&&e===e.parent.right;)e=e.parent;if(e!==n.root)for(e=e.parent,t=V6(e.left)-e.size_left,i=X6(e.left)-e.lf_left,e.size_left+=t,e.lf_left+=i;e!==n.root&&(t!==0||i!==0);)e.parent.left===e&&(e.parent.size_left+=t,e.parent.lf_left+=i),e=e.parent}}const uyt=999;class tv{constructor(e,t,i,r){this.searchString=e,this.isRegex=t,this.matchCase=i,this.wordSeparators=r}parseSearchRequest(){if(this.searchString==="")return null;let e;this.isRegex?e=cyt(this.searchString):e=this.searchString.indexOf(` +`)>=0;let t=null;try{t=ybe(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:e,global:!0,unicode:!0})}catch{return null}if(!t)return null;let i=!this.isRegex&&!e;return i&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(i=this.matchCase),new gCt(t,this.wordSeparators?xc(this.wordSeparators):null,i?this.searchString:null)}}function cyt(n){if(!n||n.length===0)return!1;for(let e=0,t=n.length;e=t)break;const r=n.charCodeAt(e);if(r===110||r===114||r===87)return!0}}return!1}function nv(n,e,t){if(!t)return new F_(n,null);const i=[];for(let r=0,o=e.length;r>0);t[o]>=e?r=o-1:t[o+1]>=e?(i=o,r=o):i=o+1}return i+1}}class aE{static findMatches(e,t,i,r,o){const s=t.parseSearchRequest();return s?s.regex.multiline?this._doFindMatchesMultiline(e,i,new J2(s.wordSeparators,s.regex),r,o):this._doFindMatchesLineByLine(e,i,s,r,o):[]}static _getMultilineMatchRange(e,t,i,r,o,s){let a,l=0;r?(l=r.findLineFeedCountBeforeOffset(o),a=t+o+l):a=t+o;let u;if(r){const g=r.findLineFeedCountBeforeOffset(o+s.length)-l;u=a+s.length+g}else u=a+s.length;const c=e.getPositionAt(a),d=e.getPositionAt(u);return new K(c.lineNumber,c.column,d.lineNumber,d.column)}static _doFindMatchesMultiline(e,t,i,r,o){const s=e.getOffsetAt(t.getStartPosition()),a=e.getValueInRange(t,1),l=e.getEOL()===`\r +`?new pve(a):null,u=[];let c=0,d;for(i.reset(0);d=i.next(a);)if(u[c++]=nv(this._getMultilineMatchRange(e,s,a,l,d.index,d[0]),d,r),c>=o)return u;return u}static _doFindMatchesLineByLine(e,t,i,r,o){const s=[];let a=0;if(t.startLineNumber===t.endLineNumber){const u=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return a=this._findMatchesInLine(i,u,t.startLineNumber,t.startColumn-1,a,s,r,o),s}const l=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);a=this._findMatchesInLine(i,l,t.startLineNumber,t.startColumn-1,a,s,r,o);for(let u=t.startLineNumber+1;u=l))return o;return o}const c=new J2(e.wordSeparators,e.regex);let d;c.reset(0);do if(d=c.next(t),d&&(s[o++]=nv(new K(i,d.index+1+r,i,d.index+1+d[0].length+r),d,a),o>=l))return o;while(d);return o}static findNextMatch(e,t,i,r){const o=t.parseSearchRequest();if(!o)return null;const s=new J2(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindNextMatchMultiline(e,i,s,r):this._doFindNextMatchLineByLine(e,i,s,r)}static _doFindNextMatchMultiline(e,t,i,r){const o=new ve(t.lineNumber,1),s=e.getOffsetAt(o),a=e.getLineCount(),l=e.getValueInRange(new K(o.lineNumber,o.column,a,e.getLineMaxColumn(a)),1),u=e.getEOL()===`\r +`?new pve(l):null;i.reset(t.column-1);const c=i.next(l);return c?nv(this._getMultilineMatchRange(e,s,l,u,c.index,c[0]),c,r):t.lineNumber!==1||t.column!==1?this._doFindNextMatchMultiline(e,new ve(1,1),i,r):null}static _doFindNextMatchLineByLine(e,t,i,r){const o=e.getLineCount(),s=t.lineNumber,a=e.getLineContent(s),l=this._findFirstMatchInLine(i,a,s,t.column,r);if(l)return l;for(let u=1;u<=o;u++){const c=(s+u-1)%o,d=e.getLineContent(c+1),h=this._findFirstMatchInLine(i,d,c+1,1,r);if(h)return h}return null}static _findFirstMatchInLine(e,t,i,r,o){e.reset(r-1);const s=e.next(t);return s?nv(new K(i,s.index+1,i,s.index+1+s[0].length),s,o):null}static findPreviousMatch(e,t,i,r){const o=t.parseSearchRequest();if(!o)return null;const s=new J2(o.wordSeparators,o.regex);return o.regex.multiline?this._doFindPreviousMatchMultiline(e,i,s,r):this._doFindPreviousMatchLineByLine(e,i,s,r)}static _doFindPreviousMatchMultiline(e,t,i,r){const o=this._doFindMatchesMultiline(e,new K(1,1,t.lineNumber,t.column),i,r,10*uyt);if(o.length>0)return o[o.length-1];const s=e.getLineCount();return t.lineNumber!==s||t.column!==e.getLineMaxColumn(s)?this._doFindPreviousMatchMultiline(e,new ve(s,e.getLineMaxColumn(s)),i,r):null}static _doFindPreviousMatchLineByLine(e,t,i,r){const o=e.getLineCount(),s=t.lineNumber,a=e.getLineContent(s).substring(0,t.column-1),l=this._findLastMatchInLine(i,a,s,r);if(l)return l;for(let u=1;u<=o;u++){const c=(o+s-u-1)%o,d=e.getLineContent(c+1),h=this._findLastMatchInLine(i,d,c+1,r);if(h)return h}return null}static _findLastMatchInLine(e,t,i,r){let o=null,s;for(e.reset(0);s=e.next(t);)o=nv(new K(i,s.index+1,i,s.index+1+s[0].length),s,r);return o}}function dyt(n,e,t,i,r){if(i===0)return!0;const o=e.charCodeAt(i-1);if(n.get(o)!==0||o===13||o===10)return!0;if(r>0){const s=e.charCodeAt(i);if(n.get(s)!==0)return!0}return!1}function hyt(n,e,t,i,r){if(i+r===t)return!0;const o=e.charCodeAt(i+r);if(n.get(o)!==0||o===13||o===10)return!0;if(r>0){const s=e.charCodeAt(i+r-1);if(n.get(s)!==0)return!0}return!1}function O6(n,e,t,i,r){return dyt(n,e,t,i,r)&&hyt(n,e,t,i,r)}class J2{constructor(e,t){this._wordSeparators=e,this._searchRegex=t,this._prevMatchStartIndex=-1,this._prevMatchLength=0}reset(e){this._searchRegex.lastIndex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0}next(e){const t=e.length;let i;do{if(this._prevMatchStartIndex+this._prevMatchLength===t||(i=this._searchRegex.exec(e),!i))return null;const r=i.index,o=i[0].length;if(r===this._prevMatchStartIndex&&o===this._prevMatchLength){if(o===0){m5(e,t,this._searchRegex.lastIndex)>65535?this._searchRegex.lastIndex+=2:this._searchRegex.lastIndex+=1;continue}return null}if(this._prevMatchStartIndex=r,this._prevMatchLength=o,!this._wordSeparators||O6(this._wordSeparators,e,t,r,o))return i}while(i);return null}}const Bf=65535;function bve(n){let e;return n[n.length-1]<65536?e=new Uint16Array(n.length):e=new Uint32Array(n.length),e.set(n,0),e}class gyt{constructor(e,t,i,r,o){this.lineStarts=e,this.cr=t,this.lf=i,this.crlf=r,this.isBasicASCII=o}}function zf(n,e=!0){const t=[0];let i=1;for(let r=0,o=n.length;r126)&&(s=!1)}const a=new gyt(bve(n),i,r,o,s);return n.length=0,a}class du{constructor(e,t,i,r,o){this.bufferIndex=e,this.start=t,this.end=i,this.lineFeedCnt=r,this.length=o}}class iv{constructor(e,t){this.buffer=e,this.lineStarts=t}}class fyt{constructor(e,t){this._pieces=[],this._tree=e,this._BOM=t,this._index=0,e.root!==yn&&e.iterate(e.root,i=>(i!==yn&&this._pieces.push(i.piece),!0))}read(){return this._pieces.length===0?this._index===0?(this._index++,this._BOM):null:this._index>this._pieces.length-1?null:this._index===0?this._BOM+this._tree.getPieceContent(this._pieces[this._index++]):this._tree.getPieceContent(this._pieces[this._index++])}}class pyt{constructor(e){this._limit=e,this._cache=[]}get(e){for(let t=this._cache.length-1;t>=0;t--){const i=this._cache[t];if(i.nodeStartOffset<=e&&i.nodeStartOffset+i.node.piece.length>=e)return i}return null}get2(e){for(let t=this._cache.length-1;t>=0;t--){const i=this._cache[t];if(i.nodeStartLineNumber&&i.nodeStartLineNumber=e)return i}return null}set(e){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(e)}validate(e){let t=!1;const i=this._cache;for(let r=0;r=e){i[r]=null,t=!0;continue}}if(t){const r=[];for(const o of i)o!==null&&r.push(o);this._cache=r}}}class byt{constructor(e,t,i){this.create(e,t,i)}create(e,t,i){this._buffers=[new iv("",[0])],this._lastChangeBufferPos={line:0,column:0},this.root=yn,this._lineCnt=1,this._length=0,this._EOL=t,this._EOLLength=t.length,this._EOLNormalized=i;let r=null;for(let o=0,s=e.length;o0){e[o].lineStarts||(e[o].lineStarts=zf(e[o].buffer));const a=new du(o+1,{line:0,column:0},{line:e[o].lineStarts.length-1,column:e[o].buffer.length-e[o].lineStarts[e[o].lineStarts.length-1]},e[o].lineStarts.length-1,e[o].buffer.length);this._buffers.push(e[o]),r=this.rbInsertRight(r,a)}this._searchCache=new pyt(1),this._lastVisitedLine={lineNumber:0,value:""},this.computeBufferMetadata()}normalizeEOL(e){const t=Bf,i=t-Math.floor(t/3),r=i*2;let o="",s=0;const a=[];if(this.iterate(this.root,l=>{const u=this.getNodeContent(l),c=u.length;if(s<=i||s+c0){const l=o.replace(/\r\n|\r|\n/g,e);a.push(new iv(l,zf(l)))}this.create(a,e,!0)}getEOL(){return this._EOL}setEOL(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)}createSnapshot(e){return new fyt(this,e)}getOffsetAt(e,t){let i=0,r=this.root;for(;r!==yn;)if(r.left!==yn&&r.lf_left+1>=e)r=r.left;else if(r.lf_left+r.piece.lineFeedCnt+1>=e){i+=r.size_left;const o=this.getAccumulatedValue(r,e-r.lf_left-2);return i+=o+t-1}else e-=r.lf_left+r.piece.lineFeedCnt,i+=r.size_left+r.piece.length,r=r.right;return i}getPositionAt(e){e=Math.floor(e),e=Math.max(0,e);let t=this.root,i=0;const r=e;for(;t!==yn;)if(t.size_left!==0&&t.size_left>=e)t=t.left;else if(t.size_left+t.piece.length>=e){const o=this.getIndexOf(t,e-t.size_left);if(i+=t.lf_left+o.index,o.index===0){const s=this.getOffsetAt(i+1,1),a=r-s;return new ve(i+1,a+1)}return new ve(i+1,o.remainder+1)}else if(e-=t.size_left+t.piece.length,i+=t.lf_left+t.piece.lineFeedCnt,t.right===yn){const o=this.getOffsetAt(i+1,1),s=r-e-o;return new ve(i+1,s+1)}else t=t.right;return new ve(1,1)}getValueInRange(e,t){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return"";const i=this.nodeAt2(e.startLineNumber,e.startColumn),r=this.nodeAt2(e.endLineNumber,e.endColumn),o=this.getValueInRange2(i,r);return t?t!==this._EOL||!this._EOLNormalized?o.replace(/\r\n|\r|\n/g,t):t===this.getEOL()&&this._EOLNormalized?o:o.replace(/\r\n|\r|\n/g,t):o}getValueInRange2(e,t){if(e.node===t.node){const a=e.node,l=this._buffers[a.piece.bufferIndex].buffer,u=this.offsetInBuffer(a.piece.bufferIndex,a.piece.start);return l.substring(u+e.remainder,u+t.remainder)}let i=e.node;const r=this._buffers[i.piece.bufferIndex].buffer,o=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);let s=r.substring(o+e.remainder,o+i.piece.length);for(i=i.next();i!==yn;){const a=this._buffers[i.piece.bufferIndex].buffer,l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);if(i===t.node){s+=a.substring(l,l+t.remainder);break}else s+=a.substr(l,i.piece.length);i=i.next()}return s}getLinesContent(){const e=[];let t=0,i="",r=!1;return this.iterate(this.root,o=>{if(o===yn)return!0;const s=o.piece;let a=s.length;if(a===0)return!0;const l=this._buffers[s.bufferIndex].buffer,u=this._buffers[s.bufferIndex].lineStarts,c=s.start.line,d=s.end.line;let h=u[c]+s.start.column;if(r&&(l.charCodeAt(h)===10&&(h++,a--),e[t++]=i,i="",r=!1,a===0))return!0;if(c===d)return!this._EOLNormalized&&l.charCodeAt(h+a-1)===13?(r=!0,i+=l.substr(h,a-1)):i+=l.substr(h,a),!0;i+=this._EOLNormalized?l.substring(h,Math.max(h,u[c+1]-this._EOLLength)):l.substring(h,u[c+1]).replace(/(\r\n|\r|\n)$/,""),e[t++]=i;for(let g=c+1;gS+m,t.reset(0)):(v=h.buffer,w=S=>S,t.reset(m));do if(b=t.next(v),b){if(w(b.index)>=f)return c;this.positionInBuffer(e,w(b.index)-g,C);const S=this.getLineFeedCnt(e.piece.bufferIndex,o,C),F=C.line===o.line?C.column-o.column+r:C.column+1,L=F+b[0].length;if(d[c++]=nv(new K(i+S,F,i+S,L),b,l),w(b.index)+b[0].length>=f||c>=u)return c}while(b);return c}findMatchesLineByLine(e,t,i,r){const o=[];let s=0;const a=new J2(t.wordSeparators,t.regex);let l=this.nodeAt2(e.startLineNumber,e.startColumn);if(l===null)return[];const u=this.nodeAt2(e.endLineNumber,e.endColumn);if(u===null)return[];let c=this.positionInBuffer(l.node,l.remainder);const d=this.positionInBuffer(u.node,u.remainder);if(l.node===u.node)return this.findMatchesInNode(l.node,a,e.startLineNumber,e.startColumn,c,d,t,i,r,s,o),o;let h=e.startLineNumber,g=l.node;for(;g!==u.node;){const f=this.getLineFeedCnt(g.piece.bufferIndex,c,g.piece.end);if(f>=1){const C=this._buffers[g.piece.bufferIndex].lineStarts,v=this.offsetInBuffer(g.piece.bufferIndex,g.piece.start),w=C[c.line+f],S=h===e.startLineNumber?e.startColumn:1;if(s=this.findMatchesInNode(g,a,h,S,c,this.positionInBuffer(g,w-v),t,i,r,s,o),s>=r)return o;h+=f}const b=h===e.startLineNumber?e.startColumn-1:0;if(h===e.endLineNumber){const C=this.getLineContent(h).substring(b,e.endColumn-1);return s=this._findMatchesInLine(t,a,C,e.endLineNumber,b,s,o,i,r),o}if(s=this._findMatchesInLine(t,a,this.getLineContent(h).substr(b),h,b,s,o,i,r),s>=r)return o;h++,l=this.nodeAt2(h,1),g=l.node,c=this.positionInBuffer(l.node,l.remainder)}if(h===e.endLineNumber){const f=h===e.startLineNumber?e.startColumn-1:0,b=this.getLineContent(h).substring(f,e.endColumn-1);return s=this._findMatchesInLine(t,a,b,e.endLineNumber,f,s,o,i,r),o}const m=h===e.startLineNumber?e.startColumn:1;return s=this.findMatchesInNode(u.node,a,h,m,c,d,t,i,r,s,o),o}_findMatchesInLine(e,t,i,r,o,s,a,l,u){const c=e.wordSeparators;if(!l&&e.simpleSearch){const h=e.simpleSearch,g=h.length,m=i.length;let f=-g;for(;(f=i.indexOf(h,f+g))!==-1;)if((!c||O6(c,i,m,f,g))&&(a[s++]=new F_(new K(r,f+1+o,r,f+1+g+o),null),s>=u))return s;return s}let d;t.reset(0);do if(d=t.next(i),d&&(a[s++]=nv(new K(r,d.index+1+o,r,d.index+1+d[0].length+o),d,l),s>=u))return s;while(d);return s}insert(e,t,i=!1){if(this._EOLNormalized=this._EOLNormalized&&i,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value="",this.root!==yn){const{node:r,remainder:o,nodeStartOffset:s}=this.nodeAt(e),a=r.piece,l=a.bufferIndex,u=this.positionInBuffer(r,o);if(r.piece.bufferIndex===0&&a.end.line===this._lastChangeBufferPos.line&&a.end.column===this._lastChangeBufferPos.column&&s+a.length===e&&t.lengthe){const c=[];let d=new du(a.bufferIndex,u,a.end,this.getLineFeedCnt(a.bufferIndex,u,a.end),this.offsetInBuffer(l,a.end)-this.offsetInBuffer(l,u));if(this.shouldCheckCRLF()&&this.endWithCR(t)&&this.nodeCharCodeAt(r,o)===10){const f={line:d.start.line+1,column:0};d=new du(d.bufferIndex,f,d.end,this.getLineFeedCnt(d.bufferIndex,f,d.end),d.length-1),t+=` +`}if(this.shouldCheckCRLF()&&this.startWithLF(t))if(this.nodeCharCodeAt(r,o-1)===13){const f=this.positionInBuffer(r,o-1);this.deleteNodeTail(r,f),t="\r"+t,r.piece.length===0&&c.push(r)}else this.deleteNodeTail(r,u);else this.deleteNodeTail(r,u);const h=this.createNewPieces(t);d.length>0&&this.rbInsertRight(r,d);let g=r;for(let m=0;m=0;s--)o=this.rbInsertLeft(o,r[s]);this.validateCRLFWithPrevNode(o),this.deleteNodes(i)}insertContentToNodeRight(e,t){this.adjustCarriageReturnFromNext(e,t)&&(e+=` +`);const i=this.createNewPieces(e),r=this.rbInsertRight(t,i[0]);let o=r;for(let s=1;s=h)u=d+1;else break;return i?(i.line=d,i.column=l-g,null):{line:d,column:l-g}}getLineFeedCnt(e,t,i){if(i.column===0)return i.line-t.line;const r=this._buffers[e].lineStarts;if(i.line===r.length-1)return i.line-t.line;const o=r[i.line+1],s=r[i.line]+i.column;if(o>s+1)return i.line-t.line;const a=s-1;return this._buffers[e].buffer.charCodeAt(a)===13?i.line-t.line+1:i.line-t.line}offsetInBuffer(e,t){return this._buffers[e].lineStarts[t.line]+t.column}deleteNodes(e){for(let t=0;tBf){const c=[];for(;e.length>Bf;){const h=e.charCodeAt(Bf-1);let g;h===13||h>=55296&&h<=56319?(g=e.substring(0,Bf-1),e=e.substring(Bf-1)):(g=e.substring(0,Bf),e=e.substring(Bf));const m=zf(g);c.push(new du(this._buffers.length,{line:0,column:0},{line:m.length-1,column:g.length-m[m.length-1]},m.length-1,g.length)),this._buffers.push(new iv(g,m))}const d=zf(e);return c.push(new du(this._buffers.length,{line:0,column:0},{line:d.length-1,column:e.length-d[d.length-1]},d.length-1,e.length)),this._buffers.push(new iv(e,d)),c}let t=this._buffers[0].buffer.length;const i=zf(e,!1);let r=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===t&&t!==0&&this.startWithLF(e)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},r=this._lastChangeBufferPos;for(let c=0;c=e-1)i=i.left;else if(i.lf_left+i.piece.lineFeedCnt>e-1){const l=this.getAccumulatedValue(i,e-i.lf_left-2),u=this.getAccumulatedValue(i,e-i.lf_left-1),c=this._buffers[i.piece.bufferIndex].buffer,d=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return s+=i.size_left,this._searchCache.set({node:i,nodeStartOffset:s,nodeStartLineNumber:a-(e-1-i.lf_left)}),c.substring(d+l,d+u-t)}else if(i.lf_left+i.piece.lineFeedCnt===e-1){const l=this.getAccumulatedValue(i,e-i.lf_left-2),u=this._buffers[i.piece.bufferIndex].buffer,c=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);r=u.substring(c+l,c+i.piece.length);break}else e-=i.lf_left+i.piece.lineFeedCnt,s+=i.size_left+i.piece.length,i=i.right}for(i=i.next();i!==yn;){const s=this._buffers[i.piece.bufferIndex].buffer;if(i.piece.lineFeedCnt>0){const a=this.getAccumulatedValue(i,0),l=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return r+=s.substring(l,l+a-t),r}else{const a=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);r+=s.substr(a,i.piece.length)}i=i.next()}return r}computeBufferMetadata(){let e=this.root,t=1,i=0;for(;e!==yn;)t+=e.lf_left+e.piece.lineFeedCnt,i+=e.size_left+e.piece.length,e=e.right;this._lineCnt=t,this._length=i,this._searchCache.validate(this._length)}getIndexOf(e,t){const i=e.piece,r=this.positionInBuffer(e,t),o=r.line-i.start.line;if(this.offsetInBuffer(i.bufferIndex,i.end)-this.offsetInBuffer(i.bufferIndex,i.start)===t){const s=this.getLineFeedCnt(e.piece.bufferIndex,i.start,r);if(s!==o)return{index:s,remainder:0}}return{index:o,remainder:r.column}}getAccumulatedValue(e,t){if(t<0)return 0;const i=e.piece,r=this._buffers[i.bufferIndex].lineStarts,o=i.start.line+t+1;return o>i.end.line?r[i.end.line]+i.end.column-r[i.start.line]-i.start.column:r[o]-r[i.start.line]-i.start.column}deleteNodeTail(e,t){const i=e.piece,r=i.lineFeedCnt,o=this.offsetInBuffer(i.bufferIndex,i.end),s=t,a=this.offsetInBuffer(i.bufferIndex,s),l=this.getLineFeedCnt(i.bufferIndex,i.start,s),u=l-r,c=a-o,d=i.length+c;e.piece=new du(i.bufferIndex,i.start,s,l,d),Of(this,e,c,u)}deleteNodeHead(e,t){const i=e.piece,r=i.lineFeedCnt,o=this.offsetInBuffer(i.bufferIndex,i.start),s=t,a=this.getLineFeedCnt(i.bufferIndex,s,i.end),l=this.offsetInBuffer(i.bufferIndex,s),u=a-r,c=o-l,d=i.length+c;e.piece=new du(i.bufferIndex,s,i.end,a,d),Of(this,e,c,u)}shrinkNode(e,t,i){const r=e.piece,o=r.start,s=r.end,a=r.length,l=r.lineFeedCnt,u=t,c=this.getLineFeedCnt(r.bufferIndex,r.start,u),d=this.offsetInBuffer(r.bufferIndex,t)-this.offsetInBuffer(r.bufferIndex,o);e.piece=new du(r.bufferIndex,r.start,u,c,d),Of(this,e,d-a,c-l);const h=new du(r.bufferIndex,i,s,this.getLineFeedCnt(r.bufferIndex,i,s),this.offsetInBuffer(r.bufferIndex,s)-this.offsetInBuffer(r.bufferIndex,i)),g=this.rbInsertRight(e,h);this.validateCRLFWithPrevNode(g)}appendToNode(e,t){this.adjustCarriageReturnFromNext(t,e)&&(t+=` +`);const i=this.shouldCheckCRLF()&&this.startWithLF(t)&&this.endWithCR(e),r=this._buffers[0].buffer.length;this._buffers[0].buffer+=t;const o=zf(t,!1);for(let g=0;ge)t=t.left;else if(t.size_left+t.piece.length>=e){r+=t.size_left;const o={node:t,remainder:e-t.size_left,nodeStartOffset:r};return this._searchCache.set(o),o}else e-=t.size_left+t.piece.length,r+=t.size_left+t.piece.length,t=t.right;return null}nodeAt2(e,t){let i=this.root,r=0;for(;i!==yn;)if(i.left!==yn&&i.lf_left>=e-1)i=i.left;else if(i.lf_left+i.piece.lineFeedCnt>e-1){const o=this.getAccumulatedValue(i,e-i.lf_left-2),s=this.getAccumulatedValue(i,e-i.lf_left-1);return r+=i.size_left,{node:i,remainder:Math.min(o+t-1,s),nodeStartOffset:r}}else if(i.lf_left+i.piece.lineFeedCnt===e-1){const o=this.getAccumulatedValue(i,e-i.lf_left-2);if(o+t-1<=i.piece.length)return{node:i,remainder:o+t-1,nodeStartOffset:r};t-=i.piece.length-o;break}else e-=i.lf_left+i.piece.lineFeedCnt,r+=i.size_left+i.piece.length,i=i.right;for(i=i.next();i!==yn;){if(i.piece.lineFeedCnt>0){const o=this.getAccumulatedValue(i,0),s=this.offsetOfNode(i);return{node:i,remainder:Math.min(t-1,o),nodeStartOffset:s}}else if(i.piece.length>=t-1){const o=this.offsetOfNode(i);return{node:i,remainder:t-1,nodeStartOffset:o}}else t-=i.piece.length;i=i.next()}return null}nodeCharCodeAt(e,t){if(e.piece.lineFeedCnt<1)return-1;const i=this._buffers[e.piece.bufferIndex],r=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start)+t;return i.buffer.charCodeAt(r)}offsetOfNode(e){if(!e)return 0;let t=e.size_left;for(;e!==this.root;)e.parent.right===e&&(t+=e.parent.size_left+e.parent.piece.length),e=e.parent;return t}shouldCheckCRLF(){return!(this._EOLNormalized&&this._EOL===` +`)}startWithLF(e){if(typeof e=="string")return e.charCodeAt(0)===10;if(e===yn||e.piece.lineFeedCnt===0)return!1;const t=e.piece,i=this._buffers[t.bufferIndex].lineStarts,r=t.start.line,o=i[r]+t.start.column;return r===i.length-1||i[r+1]>o+1?!1:this._buffers[t.bufferIndex].buffer.charCodeAt(o)===10}endWithCR(e){return typeof e=="string"?e.charCodeAt(e.length-1)===13:e===yn||e.piece.lineFeedCnt===0?!1:this.nodeCharCodeAt(e,e.piece.length-1)===13}validateCRLFWithPrevNode(e){if(this.shouldCheckCRLF()&&this.startWithLF(e)){const t=e.prev();this.endWithCR(t)&&this.fixCRLF(t,e)}}validateCRLFWithNextNode(e){if(this.shouldCheckCRLF()&&this.endWithCR(e)){const t=e.next();this.startWithLF(t)&&this.fixCRLF(e,t)}}fixCRLF(e,t){const i=[],r=this._buffers[e.piece.bufferIndex].lineStarts;let o;e.piece.end.column===0?o={line:e.piece.end.line-1,column:r[e.piece.end.line]-r[e.piece.end.line-1]-1}:o={line:e.piece.end.line,column:e.piece.end.column-1};const s=e.piece.length-1,a=e.piece.lineFeedCnt-1;e.piece=new du(e.piece.bufferIndex,e.piece.start,o,a,s),Of(this,e,-1,-1),e.piece.length===0&&i.push(e);const l={line:t.piece.start.line+1,column:0},u=t.piece.length-1,c=this.getLineFeedCnt(t.piece.bufferIndex,l,t.piece.end);t.piece=new du(t.piece.bufferIndex,l,t.piece.end,c,u),Of(this,t,-1,-1),t.piece.length===0&&i.push(t);const d=this.createNewPieces(`\r +`);this.rbInsertRight(e,d[0]);for(let h=0;hb.sortIndex-C.sortIndex)}this._mightContainRTL=r,this._mightContainUnusualLineTerminators=o,this._mightContainNonBasicASCII=s;const g=this._doApplyEdits(l);let m=null;if(t&&d.length>0){d.sort((f,b)=>b.lineNumber-f.lineNumber),m=[];for(let f=0,b=d.length;f0&&d[f-1].lineNumber===C)continue;const v=d[f].oldContent,w=this.getLineContent(C);w.length===0||w===v||Ia(w)!==-1||m.push(C)}}return this._onDidChangeContent.fire(),new mCt(h,g,m)}_reduceOperations(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]}_toSingleEditOperation(e){let t=!1;const i=e[0].range,r=e[e.length-1].range,o=new K(i.startLineNumber,i.startColumn,r.endLineNumber,r.endColumn);let s=i.startLineNumber,a=i.startColumn;const l=[];for(let g=0,m=e.length;g0&&l.push(f.text),s=b.endLineNumber,a=b.endColumn}const u=l.join(""),[c,d,h]=Bb(u);return{sortIndex:0,identifier:e[0].identifier,range:o,rangeOffset:this.getOffsetAt(o.startLineNumber,o.startColumn),rangeLength:this.getValueLengthInRange(o,0),text:u,eolCount:c,firstLineLength:d,lastLineLength:h,forceMoveMarkers:t,isAutoWhitespaceEdit:!1}}_doApplyEdits(e){e.sort(K2._sortOpsDescending);const t=[];for(let i=0;i0){const h=l.eolCount+1;h===1?d=new K(u,c,u,c+l.firstLineLength):d=new K(u,c,u+h-1,l.lastLineLength+1)}else d=new K(u,c,u,c);i=d.endLineNumber,r=d.endColumn,t.push(d),o=l}return t}static _sortOpsAscending(e,t){const i=K.compareRangesUsingEnds(e.range,t.range);return i===0?e.sortIndex-t.sortIndex:i}static _sortOpsDescending(e,t){const i=K.compareRangesUsingEnds(e.range,t.range);return i===0?t.sortIndex-e.sortIndex:-i}}class Cyt{constructor(e,t,i,r,o,s,a,l,u){this._chunks=e,this._bom=t,this._cr=i,this._lf=r,this._crlf=o,this._containsRTL=s,this._containsUnusualLineTerminators=a,this._isBasicASCII=l,this._normalizeEOL=u}_getEOL(e){const t=this._cr+this._lf+this._crlf,i=this._cr+this._crlf;return t===0?e===1?` +`:`\r +`:i>t/2?`\r +`:` +`}create(e){const t=this._getEOL(e),i=this._chunks;if(this._normalizeEOL&&(t===`\r +`&&(this._cr>0||this._lf>0)||t===` +`&&(this._cr>0||this._crlf>0)))for(let o=0,s=i.length;o=55296&&t<=56319?(this._acceptChunk1(e.substr(0,e.length-1),!1),this._hasPreviousChar=!0,this._previousChar=t):(this._acceptChunk1(e,!1),this._hasPreviousChar=!1,this._previousChar=t)}_acceptChunk1(e,t){!t&&e.length===0||(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+e):this._acceptChunk2(e))}_acceptChunk2(e){const t=myt(this._tmpLineStarts,e);this.chunks.push(new iv(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,t.isBasicASCII||(this.isBasicASCII=!1,this.containsRTL||(this.containsRTL=KI(e)),this.containsUnusualLineTerminators||(this.containsUnusualLineTerminators=Sbe(e)))}finish(e=!0){return this._finish(),new Cyt(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.containsUnusualLineTerminators,this.isBasicASCII,e)}_finish(){if(this.chunks.length===0&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;const e=this.chunks[this.chunks.length-1];e.buffer+=String.fromCharCode(this._previousChar);const t=zf(e.buffer);e.lineStarts=t,this._previousChar===13&&this.cr++}}}const q_=new class{clone(){return this}equals(n){return this===n}};function vve(n,e){return new t6([new y_(0,"",n)],e)}function B6(n,e){const t=new Uint32Array(2);return t[0]=0,t[1]=(n<<0|0|0|32768|2<<24)>>>0,new XT(t,e===null?q_:e)}class vyt{constructor(e){this._default=e,this._store=[]}get(e){return e=this._store.length;)this._store[this._store.length]=this._default;this._store[e]=t}replace(e,t,i){if(e>=this._store.length)return;if(t===0){this.insert(e,i);return}else if(i===0){this.delete(e,t);return}const r=this._store.slice(0,e),o=this._store.slice(e+t),s=yyt(i,this._default);this._store=r.concat(s,o)}delete(e,t){t===0||e>=this._store.length||this._store.splice(e,t)}insert(e,t){if(t===0||e>=this._store.length)return;const i=[];for(let r=0;r0){const i=this._tokens[this._tokens.length-1];if(i.endLineNumber+1===e){i.appendLineTokens(t);return}}this._tokens.push(new Iyt(e,[t]))}finalize(){return this._tokens}}class ns{static createEmpty(e,t){const i=ns.defaultTokenMetadata,r=new Uint32Array(2);return r[0]=e.length,r[1]=i,new ns(r,e,t)}constructor(e,t,i){this._lineTokensBrand=void 0,this._tokens=e,this._tokensCount=this._tokens.length>>>1,this._text=t,this._languageIdCodec=i}equals(e){return e instanceof ns?this.slicedEquals(e,0,this._tokensCount):!1}slicedEquals(e,t,i){if(this._text!==e._text||this._tokensCount!==e._tokensCount)return!1;const r=t<<1,o=r+(i<<1);for(let s=r;s0?this._tokens[e-1<<1]:0}getMetadata(e){return this._tokens[(e<<1)+1]}getLanguageId(e){const t=this._tokens[(e<<1)+1],i=cu.getLanguageId(t);return this._languageIdCodec.decodeLanguageId(i)}getStandardTokenType(e){const t=this._tokens[(e<<1)+1];return cu.getTokenType(t)}getForeground(e){const t=this._tokens[(e<<1)+1];return cu.getForeground(t)}getClassName(e){const t=this._tokens[(e<<1)+1];return cu.getClassNameFromMetadata(t)}getInlineStyle(e,t){const i=this._tokens[(e<<1)+1];return cu.getInlineStyleFromMetadata(i,t)}getPresentation(e){const t=this._tokens[(e<<1)+1];return cu.getPresentationFromMetadata(t)}getEndOffset(e){return this._tokens[e<<1]}findTokenIndexAtOffset(e){return ns.findIndexInTokensArray(this._tokens,e)}inflate(){return this}sliceAndInflate(e,t,i){return new Y6(this,e,t,i)}static convertToEndOffset(e,t){const r=(e.length>>>1)-1;for(let o=0;o>>1)-1;for(;it&&(r=o)}return i}withInserted(e){if(e.length===0)return this;let t=0,i=0,r="";const o=new Array;let s=0;for(;;){const a=ts){r+=this._text.substring(s,l.offset);const u=this._tokens[(t<<1)+1];o.push(r.length,u),s=l.offset}r+=l.text,o.push(r.length,l.tokenMetadata),i++}else break}return new ns(new Uint32Array(o),r,this._languageIdCodec)}}ns.defaultTokenMetadata=(32768|2<<24)>>>0;class Y6{constructor(e,t,i,r){this._source=e,this._startOffset=t,this._endOffset=i,this._deltaOffset=r,this._firstTokenIndex=e.findTokenIndexAtOffset(t),this._tokensCount=0;for(let o=this._firstTokenIndex,s=e.getCount();o=i);o++)this._tokensCount++}getMetadata(e){return this._source.getMetadata(this._firstTokenIndex+e)}getLanguageId(e){return this._source.getLanguageId(this._firstTokenIndex+e)}getLineContent(){return this._source.getLineContent().substring(this._startOffset,this._endOffset)}equals(e){return e instanceof Y6?this._startOffset===e._startOffset&&this._endOffset===e._endOffset&&this._deltaOffset===e._deltaOffset&&this._source.slicedEquals(e._source,this._firstTokenIndex,this._tokensCount):!1}getCount(){return this._tokensCount}getForeground(e){return this._source.getForeground(this._firstTokenIndex+e)}getEndOffset(e){const t=this._source.getEndOffset(this._firstTokenIndex+e);return Math.min(this._endOffset,t)-this._startOffset+this._deltaOffset}getClassName(e){return this._source.getClassName(this._firstTokenIndex+e)}getInlineStyle(e,t){return this._source.getInlineStyle(this._firstTokenIndex+e,t)}getPresentation(e){return this._source.getPresentation(this._firstTokenIndex+e)}findTokenIndexAtOffset(e){return this._source.findTokenIndexAtOffset(e+this._startOffset-this._deltaOffset)-this._firstTokenIndex}}class wyt{constructor(e,t){this.tokenizationSupport=t,this.initialState=this.tokenizationSupport.getInitialState(),this.store=new H6(e)}getStartState(e){return this.store.getStartState(e,this.initialState)}getFirstInvalidLine(){return this.store.getFirstInvalidLine(this.initialState)}}class Syt extends wyt{constructor(e,t,i,r){super(e,t),this._textModel=i,this._languageIdCodec=r}updateTokensUntilLine(e,t){const i=this._textModel.getLanguageId();for(;;){const r=this.getFirstInvalidLine();if(!r||r.lineNumber>t)break;const o=this._textModel.getLineContent(r.lineNumber),s=eD(this._languageIdCodec,i,this.tokenizationSupport,o,!0,r.startState);e.add(r.lineNumber,s.tokens),this.store.setEndState(r.lineNumber,s.endState)}}getTokenTypeIfInsertingCharacter(e,t){const i=this.getStartState(e.lineNumber);if(!i)return 0;const r=this._textModel.getLanguageId(),o=this._textModel.getLineContent(e.lineNumber),s=o.substring(0,e.column-1)+t+o.substring(e.column-1),a=eD(this._languageIdCodec,r,this.tokenizationSupport,s,!0,i),l=new ns(a.tokens,s,this._languageIdCodec);if(l.getCount()===0)return 0;const u=l.findTokenIndexAtOffset(e.column-1);return l.getStandardTokenType(u)}tokenizeLineWithEdit(e,t,i){const r=e.lineNumber,o=e.column,s=this.getStartState(r);if(!s)return null;const a=this._textModel.getLineContent(r),l=a.substring(0,o-1)+i+a.substring(o-1+t),u=this._textModel.getLanguageIdAtPosition(r,0),c=eD(this._languageIdCodec,u,this.tokenizationSupport,l,!0,s);return new ns(c.tokens,l,this._languageIdCodec)}isCheapToTokenize(e){const t=this.store.getFirstInvalidEndStateLineNumberOrMax();return e1&&a>=1;a--){const l=this._textModel.getLineFirstNonWhitespaceColumn(a);if(l!==0&&l0&&i>0&&(i--,t--),this._lineEndStates.replace(e.startLineNumber,i,t)}}class Lyt{constructor(){this._ranges=[]}get min(){return this._ranges.length===0?null:this._ranges[0].start}delete(e){const t=this._ranges.findIndex(i=>i.contains(e));if(t!==-1){const i=this._ranges[t];i.start===e?i.endExclusive===e+1?this._ranges.splice(t,1):this._ranges[t]=new Pn(e+1,i.endExclusive):i.endExclusive===e+1?this._ranges[t]=new Pn(i.start,e):this._ranges.splice(t,1,new Pn(i.start,e),new Pn(e+1,i.endExclusive))}}addRange(e){Pn.addRange(e,this._ranges)}addRangeAndResize(e,t){let i=0;for(;!(i>=this._ranges.length||e.start<=this._ranges[i].endExclusive);)i++;let r=i;for(;!(r>=this._ranges.length||e.endExclusivee.toString()).join(" + ")}}function eD(n,e,t,i,r,o){let s=null;if(t)try{s=t.tokenizeEncoded(i,r,o.clone())}catch(a){fn(a)}return s||(s=B6(n.encodeLanguageId(e),o)),ns.convertToEndOffset(s.tokens,i.length),s}class Fyt{constructor(e,t){this._tokenizerWithStateStore=e,this._backgroundTokenStore=t,this._isDisposed=!1,this._isScheduled=!1}dispose(){this._isDisposed=!0}handleChanges(){this._beginBackgroundTokenization()}_beginBackgroundTokenization(){this._isScheduled||!this._tokenizerWithStateStore._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._isScheduled=!0,ibe(e=>{this._isScheduled=!1,this._backgroundTokenizeWithDeadline(e)}))}_backgroundTokenizeWithDeadline(e){const t=Date.now()+e.timeRemaining(),i=()=>{this._isDisposed||!this._tokenizerWithStateStore._textModel.isAttachedToEditor()||!this._hasLinesToTokenize()||(this._backgroundTokenizeForAtLeast1ms(),Date.now()1||this._tokenizeOneInvalidLine(t)>=e)break;while(this._hasLinesToTokenize());this._backgroundTokenStore.setTokens(t.finalize()),this.checkFinished()}_hasLinesToTokenize(){return this._tokenizerWithStateStore?!this._tokenizerWithStateStore.store.allStatesValid():!1}_tokenizeOneInvalidLine(e){var t;const i=(t=this._tokenizerWithStateStore)===null||t===void 0?void 0:t.getFirstInvalidLine();return i?(this._tokenizerWithStateStore.updateTokensUntilLine(e,i.lineNumber),i.lineNumber):this._tokenizerWithStateStore._textModel.getLineCount()+1}checkFinished(){this._isDisposed||this._tokenizerWithStateStore.store.allStatesValid()&&this._backgroundTokenStore.backgroundTokenizationFinished()}requestTokens(e,t){this._tokenizerWithStateStore.store.invalidateEndStateRange(new vn(e,t))}}const Yf=new Uint32Array(0).buffer;class tm{static deleteBeginning(e,t){return e===null||e===Yf?e:tm.delete(e,0,t)}static deleteEnding(e,t){if(e===null||e===Yf)return e;const i=Hf(e),r=i[i.length-2];return tm.delete(e,t,r)}static delete(e,t,i){if(e===null||e===Yf||t===i)return e;const r=Hf(e),o=r.length>>>1;if(t===0&&r[r.length-2]===i)return Yf;const s=ns.findIndexInTokensArray(r,t),a=s>0?r[s-1<<1]:0,l=r[s<<1];if(ic&&(r[u++]=m,r[u++]=r[(g<<1)+1],c=m)}if(u===r.length)return e;const h=new Uint32Array(u);return h.set(r.subarray(0,u),0),h.buffer}static append(e,t){if(t===Yf)return e;if(e===Yf)return t;if(e===null)return e;if(t===null)return null;const i=Hf(e),r=Hf(t),o=r.length>>>1,s=new Uint32Array(i.length+r.length);s.set(i,0);let a=i.length;const l=i[i.length-2];for(let u=0;u>>1;let s=ns.findIndexInTokensArray(r,t);s>0&&r[s-1<<1]===t&&s--;for(let a=s;a0}getTokens(e,t,i){let r=null;if(t1&&(o=cu.getLanguageId(r[1])!==e),!o)return Yf}if(!r||r.length===0){const o=new Uint32Array(2);return o[0]=t,o[1]=yve(e),o.buffer}return r[r.length-2]=t,r.byteOffset===0&&r.byteLength===r.buffer.byteLength?r.buffer:r}_ensureLine(e){for(;e>=this._len;)this._lineTokens[this._len]=null,this._len++}_deleteLines(e,t){t!==0&&(e+t>this._len&&(t=this._len-e),this._lineTokens.splice(e,t),this._len-=t)}_insertLines(e,t){if(t===0)return;const i=[];for(let r=0;r=this._len)return;if(e.startLineNumber===e.endLineNumber){if(e.startColumn===e.endColumn)return;this._lineTokens[t]=tm.delete(this._lineTokens[t],e.startColumn-1,e.endColumn-1);return}this._lineTokens[t]=tm.deleteEnding(this._lineTokens[t],e.startColumn-1);const i=e.endLineNumber-1;let r=null;i=this._len)){if(t===0){this._lineTokens[r]=tm.insert(this._lineTokens[r],e.column-1,i);return}this._lineTokens[r]=tm.deleteEnding(this._lineTokens[r],e.column-1),this._lineTokens[r]=tm.insert(this._lineTokens[r],e.column-1,i),this._insertLines(e.lineNumber,t)}}setMultilineTokens(e,t){if(e.length===0)return{changes:[]};const i=[];for(let r=0,o=e.length;r>>0}class U6{constructor(e){this._pieces=[],this._isComplete=!1,this._languageIdCodec=e}flush(){this._pieces=[],this._isComplete=!1}isEmpty(){return this._pieces.length===0}set(e,t){this._pieces=e||[],this._isComplete=t}setPartial(e,t){let i=e;if(t.length>0){const o=t[0].getRange(),s=t[t.length-1].getRange();if(!o||!s)return e;i=e.plusRange(o).plusRange(s)}let r=null;for(let o=0,s=this._pieces.length;oi.endLineNumber){r=r||{index:o};break}if(a.removeTokens(i),a.isEmpty()){this._pieces.splice(o,1),o--,s--;continue}if(a.endLineNumberi.endLineNumber){r=r||{index:o};continue}const[l,u]=a.split(i);if(l.isEmpty()){r=r||{index:o};continue}u.isEmpty()||(this._pieces.splice(o,1,l,u),o++,s++,r=r||{index:o})}return r=r||{index:this._pieces.length},t.length>0&&(this._pieces=eT(this._pieces,r.index,t)),i}isComplete(){return this._isComplete}addSparseTokens(e,t){if(t.getLineContent().length===0)return t;const i=this._pieces;if(i.length===0)return t;const r=U6._findFirstPieceWithLine(i,e),o=i[r].getLineTokens(e);if(!o)return t;const s=t.getCount(),a=o.getCount();let l=0;const u=[];let c=0,d=0;const h=(g,m)=>{g!==d&&(d=g,u[c++]=g,u[c++]=m)};for(let g=0;g>>0,v=~C>>>0;for(;lt)r=o-1;else{for(;o>i&&e[o-1].startLineNumber<=t&&t<=e[o-1].endLineNumber;)o--;return o}}return i}acceptEdit(e,t,i,r,o){for(const s of this._pieces)s.acceptEdit(e,t,i,r,o)}}class lE extends vCe{constructor(e,t,i,r,o,s){super(),this._languageService=e,this._languageConfigurationService=t,this._textModel=i,this._bracketPairsTextModelPart=r,this._languageId=o,this._attachedViews=s,this._semanticTokens=new U6(this._languageService.languageIdCodec),this._onDidChangeLanguage=this._register(new be),this.onDidChangeLanguage=this._onDidChangeLanguage.event,this._onDidChangeLanguageConfiguration=this._register(new be),this.onDidChangeLanguageConfiguration=this._onDidChangeLanguageConfiguration.event,this._onDidChangeTokens=this._register(new be),this.onDidChangeTokens=this._onDidChangeTokens.event,this.grammarTokens=this._register(new _yt(this._languageService.languageIdCodec,this._textModel,()=>this._languageId,this._attachedViews)),this._register(this._languageConfigurationService.onDidChange(a=>{a.affects(this._languageId)&&this._onDidChangeLanguageConfiguration.fire({})})),this._register(this.grammarTokens.onDidChangeTokens(a=>{this._emitModelTokensChangedEvent(a)})),this._register(this.grammarTokens.onDidChangeBackgroundTokenizationState(a=>{this._bracketPairsTextModelPart.handleDidChangeBackgroundTokenizationState()}))}handleDidChangeContent(e){if(e.isFlush)this._semanticTokens.flush();else if(!e.isEolChange)for(const t of e.changes){const[i,r,o]=Bb(t.text);this._semanticTokens.acceptEdit(t.range,i,r,o,t.text.length>0?t.text.charCodeAt(0):0)}this.grammarTokens.handleDidChangeContent(e)}handleDidChangeAttached(){this.grammarTokens.handleDidChangeAttached()}getLineTokens(e){this.validateLineNumber(e);const t=this.grammarTokens.getLineTokens(e);return this._semanticTokens.addSparseTokens(e,t)}_emitModelTokensChangedEvent(e){this._textModel._isDisposing()||(this._bracketPairsTextModelPart.handleDidChangeTokens(e),this._onDidChangeTokens.fire(e))}validateLineNumber(e){if(e<1||e>this._textModel.getLineCount())throw new br("Illegal value for lineNumber")}get hasTokens(){return this.grammarTokens.hasTokens}resetTokenization(){this.grammarTokens.resetTokenization()}get backgroundTokenizationState(){return this.grammarTokens.backgroundTokenizationState}forceTokenization(e){this.validateLineNumber(e),this.grammarTokens.forceTokenization(e)}isCheapToTokenize(e){return this.validateLineNumber(e),this.grammarTokens.isCheapToTokenize(e)}tokenizeIfCheap(e){this.validateLineNumber(e),this.grammarTokens.tokenizeIfCheap(e)}getTokenTypeIfInsertingCharacter(e,t,i){return this.grammarTokens.getTokenTypeIfInsertingCharacter(e,t,i)}tokenizeLineWithEdit(e,t,i){return this.grammarTokens.tokenizeLineWithEdit(e,t,i)}setSemanticTokens(e,t){this._semanticTokens.set(e,t),this._emitModelTokensChangedEvent({semanticTokensApplied:e!==null,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]})}hasCompleteSemanticTokens(){return this._semanticTokens.isComplete()}hasSomeSemanticTokens(){return!this._semanticTokens.isEmpty()}setPartialSemanticTokens(e,t){if(this.hasCompleteSemanticTokens())return;const i=this._textModel.validateRange(this._semanticTokens.setPartial(e,t));this._emitModelTokensChangedEvent({semanticTokensApplied:!0,ranges:[{fromLineNumber:i.startLineNumber,toLineNumber:i.endLineNumber}]})}getWordAtPosition(e){this.assertNotDisposed();const t=this._textModel.validatePosition(e),i=this._textModel.getLineContent(t.lineNumber),r=this.getLineTokens(t.lineNumber),o=r.findTokenIndexAtOffset(t.column-1),[s,a]=lE._findLanguageBoundaries(r,o),l=BF(t.column,this.getLanguageConfiguration(r.getLanguageId(o)).getWordDefinition(),i.substring(s,a),s);if(l&&l.startColumn<=e.column&&e.column<=l.endColumn)return l;if(o>0&&s===t.column-1){const[u,c]=lE._findLanguageBoundaries(r,o-1),d=BF(t.column,this.getLanguageConfiguration(r.getLanguageId(o-1)).getWordDefinition(),i.substring(u,c),u);if(d&&d.startColumn<=e.column&&e.column<=d.endColumn)return d}return null}getLanguageConfiguration(e){return this._languageConfigurationService.getLanguageConfiguration(e)}static _findLanguageBoundaries(e,t){const i=e.getLanguageId(t);let r=0;for(let s=t;s>=0&&e.getLanguageId(s)===i;s--)r=e.getStartOffset(s);let o=e.getLineContent().length;for(let s=t,a=e.getCount();s{const s=this.getLanguageId();o.changedLanguages.indexOf(s)!==-1&&this.resetTokenization()})),this.resetTokenization(),this._register(r.onDidChangeVisibleRanges(({view:o,state:s})=>{if(s){let a=this._attachedViewStates.get(o);a||(a=new Dyt(()=>this.refreshRanges(a.lineRanges)),this._attachedViewStates.set(o,a)),a.handleStateChange(s)}else this._attachedViewStates.deleteAndDispose(o)}))}resetTokenization(e=!0){var t;this._tokens.flush(),(t=this._debugBackgroundTokens)===null||t===void 0||t.flush(),this._debugBackgroundStates&&(this._debugBackgroundStates=new H6(this._textModel.getLineCount())),e&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:[{fromLineNumber:1,toLineNumber:this._textModel.getLineCount()}]});const i=()=>{if(this._textModel.isTooLargeForTokenization())return[null,null];const s=mo.get(this.getLanguageId());if(!s)return[null,null];let a;try{a=s.getInitialState()}catch(l){return fn(l),[null,null]}return[s,a]},[r,o]=i();if(r&&o?this._tokenizer=new Syt(this._textModel.getLineCount(),r,this._textModel,this._languageIdCodec):this._tokenizer=null,this._backgroundTokenizer.clear(),this._defaultBackgroundTokenizer=null,this._tokenizer){const s={setTokens:a=>{this.setTokens(a)},backgroundTokenizationFinished:()=>{if(this._backgroundTokenizationState===2)return;const a=2;this._backgroundTokenizationState=a,this._onDidChangeBackgroundTokenizationState.fire()},setEndState:(a,l)=>{var u;if(!this._tokenizer)return;const c=this._tokenizer.store.getFirstInvalidEndStateLineNumber();c!==null&&a>=c&&((u=this._tokenizer)===null||u===void 0||u.store.setEndState(a,l))}};r&&r.createBackgroundTokenizer&&!r.backgroundTokenizerShouldOnlyVerifyTokens&&(this._backgroundTokenizer.value=r.createBackgroundTokenizer(this._textModel,s)),!this._backgroundTokenizer.value&&!this._textModel.isTooLargeForTokenization()&&(this._backgroundTokenizer.value=this._defaultBackgroundTokenizer=new Fyt(this._tokenizer,s),this._defaultBackgroundTokenizer.handleChanges()),r!=null&&r.backgroundTokenizerShouldOnlyVerifyTokens&&r.createBackgroundTokenizer?(this._debugBackgroundTokens=new tD(this._languageIdCodec),this._debugBackgroundStates=new H6(this._textModel.getLineCount()),this._debugBackgroundTokenizer.clear(),this._debugBackgroundTokenizer.value=r.createBackgroundTokenizer(this._textModel,{setTokens:a=>{var l;(l=this._debugBackgroundTokens)===null||l===void 0||l.setMultilineTokens(a,this._textModel)},backgroundTokenizationFinished(){},setEndState:(a,l)=>{var u;(u=this._debugBackgroundStates)===null||u===void 0||u.setEndState(a,l)}})):(this._debugBackgroundTokens=void 0,this._debugBackgroundStates=void 0,this._debugBackgroundTokenizer.value=void 0)}this.refreshAllVisibleLineTokens()}handleDidChangeAttached(){var e;(e=this._defaultBackgroundTokenizer)===null||e===void 0||e.handleChanges()}handleDidChangeContent(e){var t,i,r;if(e.isFlush)this.resetTokenization(!1);else if(!e.isEolChange){for(const o of e.changes){const[s,a]=Bb(o.text);this._tokens.acceptEdit(o.range,s,a),(t=this._debugBackgroundTokens)===null||t===void 0||t.acceptEdit(o.range,s,a)}(i=this._debugBackgroundStates)===null||i===void 0||i.acceptChanges(e.changes),this._tokenizer&&this._tokenizer.store.acceptChanges(e.changes),(r=this._defaultBackgroundTokenizer)===null||r===void 0||r.handleChanges()}}setTokens(e){const{changes:t}=this._tokens.setMultilineTokens(e,this._textModel);return t.length>0&&this._onDidChangeTokens.fire({semanticTokensApplied:!1,ranges:t}),{changes:t}}refreshAllVisibleLineTokens(){const e=vn.joinMany([...this._attachedViewStates].map(([t,i])=>i.lineRanges));this.refreshRanges(e)}refreshRanges(e){for(const t of e)this.refreshRange(t.startLineNumber,t.endLineNumberExclusive-1)}refreshRange(e,t){var i,r;if(!this._tokenizer)return;e=Math.max(1,Math.min(this._textModel.getLineCount(),e)),t=Math.min(this._textModel.getLineCount(),t);const o=new z6,{heuristicTokens:s}=this._tokenizer.tokenizeHeuristically(o,e,t),a=this.setTokens(o.finalize());if(s)for(const l of a.changes)(i=this._backgroundTokenizer.value)===null||i===void 0||i.requestTokens(l.fromLineNumber,l.toLineNumber+1);(r=this._defaultBackgroundTokenizer)===null||r===void 0||r.checkFinished()}forceTokenization(e){var t,i;const r=new z6;(t=this._tokenizer)===null||t===void 0||t.updateTokensUntilLine(r,e),this.setTokens(r.finalize()),(i=this._defaultBackgroundTokenizer)===null||i===void 0||i.checkFinished()}isCheapToTokenize(e){return this._tokenizer?this._tokenizer.isCheapToTokenize(e):!0}tokenizeIfCheap(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)}getLineTokens(e){var t;const i=this._textModel.getLineContent(e),r=this._tokens.getTokens(this._textModel.getLanguageId(),e-1,i);if(this._debugBackgroundTokens&&this._debugBackgroundStates&&this._tokenizer&&this._debugBackgroundStates.getFirstInvalidEndStateLineNumberOrMax()>e&&this._tokenizer.store.getFirstInvalidEndStateLineNumberOrMax()>e){const o=this._debugBackgroundTokens.getTokens(this._textModel.getLanguageId(),e-1,i);!r.equals(o)&&(!((t=this._debugBackgroundTokenizer.value)===null||t===void 0)&&t.reportMismatchingTokens)&&this._debugBackgroundTokenizer.value.reportMismatchingTokens(e)}return r}getTokenTypeIfInsertingCharacter(e,t,i){if(!this._tokenizer)return 0;const r=this._textModel.validatePosition(new ve(e,t));return this.forceTokenization(r.lineNumber),this._tokenizer.getTokenTypeIfInsertingCharacter(r,i)}tokenizeLineWithEdit(e,t,i){if(!this._tokenizer)return null;const r=this._textModel.validatePosition(e);return this.forceTokenization(r.lineNumber),this._tokenizer.tokenizeLineWithEdit(r,t,i)}get hasTokens(){return this._tokens.hasTokens}}class Dyt extends De{get lineRanges(){return this._lineRanges}constructor(e){super(),this._refreshTokens=e,this.runner=this._register(new Vi(()=>this.update(),50)),this._computedLineRanges=[],this._lineRanges=[]}update(){Ar(this._computedLineRanges,this._lineRanges,(e,t)=>e.equals(t))||(this._computedLineRanges=this._lineRanges,this._refreshTokens())}handleStateChange(e){this._lineRanges=e.visibleLineRanges,e.stabilized?(this.runner.cancel(),this.update()):this.runner.schedule()}}const uE=Un("undoRedoService");class Ive{constructor(e,t){this.resource=e,this.elements=t}}class j2{constructor(){this.id=j2._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}}j2._ID=0,j2.None=new j2;class nm{constructor(){this.id=nm._ID++,this.order=1}nextOrder(){return this.id===0?0:this.order++}}nm._ID=0,nm.None=new nm;var Ayt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},J6=function(n,e){return function(t,i){e(t,i,n)}},rv;function Nyt(n){const e=new Cve;return e.acceptChunk(n),e.finish()}function kyt(n){const e=new Cve;let t;for(;typeof(t=n.read())=="string";)e.acceptChunk(t);return e.finish()}function wve(n,e){let t;return typeof n=="string"?t=Nyt(n):hCt(n)?t=kyt(n):t=n,t.create(e)}let cE=0;const Myt=999,Zyt=1e4;class Tyt{constructor(e){this._source=e,this._eos=!1}read(){if(this._eos)return null;const e=[];let t=0,i=0;do{const r=this._source.read();if(r===null)return this._eos=!0,t===0?null:e.join("");if(r.length>0&&(e[t++]=r,i+=r.length),i>=64*1024)return e.join("")}while(!0)}}const nD=()=>{throw new Error("Invalid change accessor")};let im=rv=class extends De{static resolveOptions(e,t){if(t.detectIndentation){const i=ive(e,t.tabSize,t.insertSpaces);return new zT({tabSize:i.tabSize,indentSize:"tabSize",insertSpaces:i.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL,bracketPairColorizationOptions:t.bracketPairColorizationOptions})}return new zT(t)}get onDidChangeLanguage(){return this._tokenizationTextModelPart.onDidChangeLanguage}get onDidChangeLanguageConfiguration(){return this._tokenizationTextModelPart.onDidChangeLanguageConfiguration}get onDidChangeTokens(){return this._tokenizationTextModelPart.onDidChangeTokens}onDidChangeContent(e){return this._eventEmitter.slowEvent(t=>e(t.contentChangedEvent))}onDidChangeContentOrInjectedText(e){return hd(this._eventEmitter.fastEvent(t=>e(t)),this._onDidChangeInjectedText.event(t=>e(t)))}_isDisposing(){return this.__isDisposing}get tokenization(){return this._tokenizationTextModelPart}get bracketPairs(){return this._bracketPairs}get guides(){return this._guidesTextModelPart}constructor(e,t,i,r=null,o,s,a){super(),this._undoRedoService=o,this._languageService=s,this._languageConfigurationService=a,this._onWillDispose=this._register(new be),this.onWillDispose=this._onWillDispose.event,this._onDidChangeDecorations=this._register(new Xyt(g=>this.handleBeforeFireDecorationsChangedEvent(g))),this.onDidChangeDecorations=this._onDidChangeDecorations.event,this._onDidChangeOptions=this._register(new be),this.onDidChangeOptions=this._onDidChangeOptions.event,this._onDidChangeAttached=this._register(new be),this.onDidChangeAttached=this._onDidChangeAttached.event,this._onDidChangeInjectedText=this._register(new be),this._eventEmitter=this._register(new Pyt),this._languageSelectionListener=this._register(new zs),this._deltaDecorationCallCnt=0,this._attachedViews=new Oyt,cE++,this.id="$model"+cE,this.isForSimpleWidget=i.isForSimpleWidget,typeof r>"u"||r===null?this._associatedResource=$t.parse("inmemory://model/"+cE):this._associatedResource=r,this._attachedEditorCount=0;const{textBuffer:l,disposable:u}=wve(e,i.defaultEOL);this._buffer=l,this._bufferDisposable=u,this._options=rv.resolveOptions(this._buffer,i);const c=typeof t=="string"?t:t.languageId;typeof t!="string"&&(this._languageSelectionListener.value=t.onDidChange(()=>this._setLanguage(t.languageId))),this._bracketPairs=this._register(new Evt(this,this._languageConfigurationService)),this._guidesTextModelPart=this._register(new _Ct(this,this._languageConfigurationService)),this._decorationProvider=this._register(new Rvt(this)),this._tokenizationTextModelPart=new lE(this._languageService,this._languageConfigurationService,this,this._bracketPairs,c,this._attachedViews);const d=this._buffer.getLineCount(),h=this._buffer.getValueLengthInRange(new K(1,1,d,this._buffer.getLineLength(d)+1),0);i.largeFileOptimizations?(this._isTooLargeForTokenization=h>rv.LARGE_FILE_SIZE_THRESHOLD||d>rv.LARGE_FILE_LINE_COUNT_THRESHOLD,this._isTooLargeForHeapOperation=h>rv.LARGE_FILE_HEAP_OPERATION_THRESHOLD):(this._isTooLargeForTokenization=!1,this._isTooLargeForHeapOperation=!1),this._isTooLargeForSyncing=h>rv._MODEL_SYNC_LIMIT,this._versionId=1,this._alternativeVersionId=1,this._initialUndoRedoSnapshot=null,this._isDisposed=!1,this.__isDisposing=!1,this._instanceId=xbe(cE),this._lastDecorationId=0,this._decorations=Object.create(null),this._decorationsTree=new Sve,this._commandManager=new T6(this,this._undoRedoService),this._isUndoing=!1,this._isRedoing=!1,this._trimAutoWhitespaceLines=null,this._register(this._decorationProvider.onDidChange(()=>{this._onDidChangeDecorations.beginDeferredEmit(),this._onDidChangeDecorations.fire(),this._onDidChangeDecorations.endDeferredEmit()})),this._languageService.requestRichLanguageFeatures(c)}dispose(){this.__isDisposing=!0,this._onWillDispose.fire(),this._tokenizationTextModelPart.dispose(),this._isDisposed=!0,super.dispose(),this._bufferDisposable.dispose(),this.__isDisposing=!1;const e=new K2([],"",` +`,!1,!1,!0,!0);e.dispose(),this._buffer=e,this._bufferDisposable=De.None}_assertNotDisposed(){if(this._isDisposed)throw new Error("Model is disposed!")}_emitContentChangedEvent(e,t){this.__isDisposing||(this._tokenizationTextModelPart.handleDidChangeContent(t),this._bracketPairs.handleDidChangeContent(t),this._eventEmitter.fire(new $C(e,t)))}setValue(e){if(this._assertNotDisposed(),e==null)throw yc();const{textBuffer:t,disposable:i}=wve(e,this._options.defaultEOL);this._setValueFromTextBuffer(t,i)}_createContentChanged2(e,t,i,r,o,s,a,l){return{changes:[{range:e,rangeOffset:t,rangeLength:i,text:r}],eol:this._buffer.getEOL(),isEolChange:l,versionId:this.getVersionId(),isUndoing:o,isRedoing:s,isFlush:a}}_setValueFromTextBuffer(e,t){this._assertNotDisposed();const i=this.getFullModelRange(),r=this.getValueLengthInRange(i),o=this.getLineCount(),s=this.getLineMaxColumn(o);this._buffer=e,this._bufferDisposable.dispose(),this._bufferDisposable=t,this._increaseVersionId(),this._decorations=Object.create(null),this._decorationsTree=new Sve,this._commandManager.clear(),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new O2([new svt],this._versionId,!1,!1),this._createContentChanged2(new K(1,1,o,s),0,r,this.getValue(),!1,!1,!0,!1))}setEOL(e){this._assertNotDisposed();const t=e===1?`\r +`:` +`;if(this._buffer.getEOL()===t)return;const i=this.getFullModelRange(),r=this.getValueLengthInRange(i),o=this.getLineCount(),s=this.getLineMaxColumn(o);this._onBeforeEOLChange(),this._buffer.setEOL(t),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new O2([new uvt],this._versionId,!1,!1),this._createContentChanged2(new K(1,1,o,s),0,r,this.getValue(),!1,!1,!1,!0))}_onBeforeEOLChange(){this._decorationsTree.ensureAllNodesHaveRanges(this)}_onAfterEOLChange(){const e=this.getVersionId(),t=this._decorationsTree.collectNodesPostOrder();for(let i=0,r=t.length;i0}getAttachedEditorCount(){return this._attachedEditorCount}isTooLargeForSyncing(){return this._isTooLargeForSyncing}isTooLargeForTokenization(){return this._isTooLargeForTokenization}isTooLargeForHeapOperation(){return this._isTooLargeForHeapOperation}isDisposed(){return this._isDisposed}isDominatedByLongLines(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;let e=0,t=0;const i=this._buffer.getLineCount();for(let r=1;r<=i;r++){const o=this._buffer.getLineLength(r);o>=Zyt?t+=o:e+=o}return t>e}get uri(){return this._associatedResource}getOptions(){return this._assertNotDisposed(),this._options}getFormattingOptions(){return{tabSize:this._options.indentSize,insertSpaces:this._options.insertSpaces}}updateOptions(e){this._assertNotDisposed();const t=typeof e.tabSize<"u"?e.tabSize:this._options.tabSize,i=typeof e.indentSize<"u"?e.indentSize:this._options.originalIndentSize,r=typeof e.insertSpaces<"u"?e.insertSpaces:this._options.insertSpaces,o=typeof e.trimAutoWhitespace<"u"?e.trimAutoWhitespace:this._options.trimAutoWhitespace,s=typeof e.bracketColorizationOptions<"u"?e.bracketColorizationOptions:this._options.bracketPairColorizationOptions,a=new zT({tabSize:t,indentSize:i,insertSpaces:r,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:o,bracketPairColorizationOptions:s});if(this._options.equals(a))return;const l=this._options.createChangeEvent(a);this._options=a,this._bracketPairs.handleDidChangeOptions(l),this._decorationProvider.handleDidChangeOptions(l),this._onDidChangeOptions.fire(l)}detectIndentation(e,t){this._assertNotDisposed();const i=ive(this._buffer,t,e);this.updateOptions({insertSpaces:i.insertSpaces,tabSize:i.tabSize,indentSize:i.tabSize})}normalizeIndentation(e){return this._assertNotDisposed(),H5(e,this._options.indentSize,this._options.insertSpaces)}getVersionId(){return this._assertNotDisposed(),this._versionId}mightContainRTL(){return this._buffer.mightContainRTL()}mightContainUnusualLineTerminators(){return this._buffer.mightContainUnusualLineTerminators()}removeUnusualLineTerminators(e=null){const t=this.findMatches(wbe.source,!1,!0,!1,null,!1,1073741824);this._buffer.resetMightContainUnusualLineTerminators(),this.pushEditOperations(e,t.map(i=>({range:i.range,text:null})),()=>null)}mightContainNonBasicASCII(){return this._buffer.mightContainNonBasicASCII()}getAlternativeVersionId(){return this._assertNotDisposed(),this._alternativeVersionId}getInitialUndoRedoSnapshot(){return this._assertNotDisposed(),this._initialUndoRedoSnapshot}getOffsetAt(e){this._assertNotDisposed();const t=this._validatePosition(e.lineNumber,e.column,0);return this._buffer.getOffsetAt(t.lineNumber,t.column)}getPositionAt(e){this._assertNotDisposed();const t=Math.min(this._buffer.getLength(),Math.max(0,e));return this._buffer.getPositionAt(t)}_increaseVersionId(){this._versionId=this._versionId+1,this._alternativeVersionId=this._versionId}_overwriteVersionId(e){this._versionId=e}_overwriteAlternativeVersionId(e){this._alternativeVersionId=e}_overwriteInitialUndoRedoSnapshot(e){this._initialUndoRedoSnapshot=e}getValue(e,t=!1){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new br("Operation would exceed heap memory limits");const i=this.getFullModelRange(),r=this.getValueInRange(i,e);return t?this._buffer.getBOM()+r:r}createSnapshot(e=!1){return new Tyt(this._buffer.createSnapshot(e))}getValueLength(e,t=!1){this._assertNotDisposed();const i=this.getFullModelRange(),r=this.getValueLengthInRange(i,e);return t?this._buffer.getBOM().length+r:r}getValueInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getValueInRange(this.validateRange(e),t)}getValueLengthInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getValueLengthInRange(this.validateRange(e),t)}getCharacterCountInRange(e,t=0){return this._assertNotDisposed(),this._buffer.getCharacterCountInRange(this.validateRange(e),t)}getLineCount(){return this._assertNotDisposed(),this._buffer.getLineCount()}getLineContent(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new br("Illegal value for lineNumber");return this._buffer.getLineContent(e)}getLineLength(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new br("Illegal value for lineNumber");return this._buffer.getLineLength(e)}getLinesContent(){if(this._assertNotDisposed(),this.isTooLargeForHeapOperation())throw new br("Operation would exceed heap memory limits");return this._buffer.getLinesContent()}getEOL(){return this._assertNotDisposed(),this._buffer.getEOL()}getEndOfLineSequence(){return this._assertNotDisposed(),this._buffer.getEOL()===` +`?0:1}getLineMinColumn(e){return this._assertNotDisposed(),1}getLineMaxColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new br("Illegal value for lineNumber");return this._buffer.getLineLength(e)+1}getLineFirstNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new br("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(e)}getLineLastNonWhitespaceColumn(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new br("Illegal value for lineNumber");return this._buffer.getLineLastNonWhitespaceColumn(e)}_validateRangeRelaxedNoAllocations(e){const t=this._buffer.getLineCount(),i=e.startLineNumber,r=e.startColumn;let o=Math.floor(typeof i=="number"&&!isNaN(i)?i:1),s=Math.floor(typeof r=="number"&&!isNaN(r)?r:1);if(o<1)o=1,s=1;else if(o>t)o=t,s=this.getLineMaxColumn(o);else if(s<=1)s=1;else{const d=this.getLineMaxColumn(o);s>=d&&(s=d)}const a=e.endLineNumber,l=e.endColumn;let u=Math.floor(typeof a=="number"&&!isNaN(a)?a:1),c=Math.floor(typeof l=="number"&&!isNaN(l)?l:1);if(u<1)u=1,c=1;else if(u>t)u=t,c=this.getLineMaxColumn(u);else if(c<=1)c=1;else{const d=this.getLineMaxColumn(u);c>=d&&(c=d)}return i===o&&r===s&&a===u&&l===c&&e instanceof K&&!(e instanceof Gt)?e:new K(o,s,u,c)}_isValidPosition(e,t,i){if(typeof e!="number"||typeof t!="number"||isNaN(e)||isNaN(t)||e<1||t<1||(e|0)!==e||(t|0)!==t)return!1;const r=this._buffer.getLineCount();if(e>r)return!1;if(t===1)return!0;const o=this.getLineMaxColumn(e);if(t>o)return!1;if(i===1){const s=this._buffer.getLineCharCode(e,t-2);if(qo(s))return!1}return!0}_validatePosition(e,t,i){const r=Math.floor(typeof e=="number"&&!isNaN(e)?e:1),o=Math.floor(typeof t=="number"&&!isNaN(t)?t:1),s=this._buffer.getLineCount();if(r<1)return new ve(1,1);if(r>s)return new ve(s,this.getLineMaxColumn(s));if(o<=1)return new ve(r,1);const a=this.getLineMaxColumn(r);if(o>=a)return new ve(r,a);if(i===1){const l=this._buffer.getLineCharCode(r,o-2);if(qo(l))return new ve(r,o-1)}return new ve(r,o)}validatePosition(e){return this._assertNotDisposed(),e instanceof ve&&this._isValidPosition(e.lineNumber,e.column,1)?e:this._validatePosition(e.lineNumber,e.column,1)}_isValidRange(e,t){const i=e.startLineNumber,r=e.startColumn,o=e.endLineNumber,s=e.endColumn;if(!this._isValidPosition(i,r,0)||!this._isValidPosition(o,s,0))return!1;if(t===1){const a=r>1?this._buffer.getLineCharCode(i,r-2):0,l=s>1&&s<=this._buffer.getLineLength(o)?this._buffer.getLineCharCode(o,s-2):0,u=qo(a),c=qo(l);return!u&&!c}return!0}validateRange(e){if(this._assertNotDisposed(),e instanceof K&&!(e instanceof Gt)&&this._isValidRange(e,1))return e;const i=this._validatePosition(e.startLineNumber,e.startColumn,0),r=this._validatePosition(e.endLineNumber,e.endColumn,0),o=i.lineNumber,s=i.column,a=r.lineNumber,l=r.column;{const u=s>1?this._buffer.getLineCharCode(o,s-2):0,c=l>1&&l<=this._buffer.getLineLength(a)?this._buffer.getLineCharCode(a,l-2):0,d=qo(u),h=qo(c);return!d&&!h?new K(o,s,a,l):o===a&&s===l?new K(o,s-1,a,l-1):d&&h?new K(o,s-1,a,l+1):d?new K(o,s-1,a,l):new K(o,s,a,l+1)}}modifyPosition(e,t){this._assertNotDisposed();const i=this.getOffsetAt(e)+t;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,i)))}getFullModelRange(){this._assertNotDisposed();const e=this.getLineCount();return new K(1,1,e,this.getLineMaxColumn(e))}findMatchesLineByLine(e,t,i,r){return this._buffer.findMatchesLineByLine(e,t,i,r)}findMatches(e,t,i,r,o,s,a=Myt){this._assertNotDisposed();let l=null;t!==null&&(Array.isArray(t)||(t=[t]),t.every(d=>K.isIRange(d))&&(l=t.map(d=>this.validateRange(d)))),l===null&&(l=[this.getFullModelRange()]),l=l.sort((d,h)=>d.startLineNumber-h.startLineNumber||d.startColumn-h.startColumn);const u=[];u.push(l.reduce((d,h)=>K.areIntersecting(d,h)?d.plusRange(h):(u.push(d),h)));let c;if(!i&&e.indexOf(` +`)<0){const h=new tv(e,i,r,o).parseSearchRequest();if(!h)return[];c=g=>this.findMatchesLineByLine(g,h,s,a)}else c=d=>aE.findMatches(this,new tv(e,i,r,o),d,s,a);return u.map(c).reduce((d,h)=>d.concat(h),[])}findNextMatch(e,t,i,r,o,s){this._assertNotDisposed();const a=this.validatePosition(t);if(!i&&e.indexOf(` +`)<0){const u=new tv(e,i,r,o).parseSearchRequest();if(!u)return null;const c=this.getLineCount();let d=new K(a.lineNumber,a.column,c,this.getLineMaxColumn(c)),h=this.findMatchesLineByLine(d,u,s,1);return aE.findNextMatch(this,new tv(e,i,r,o),a,s),h.length>0||(d=new K(1,1,a.lineNumber,this.getLineMaxColumn(a.lineNumber)),h=this.findMatchesLineByLine(d,u,s,1),h.length>0)?h[0]:null}return aE.findNextMatch(this,new tv(e,i,r,o),a,s)}findPreviousMatch(e,t,i,r,o,s){this._assertNotDisposed();const a=this.validatePosition(t);return aE.findPreviousMatch(this,new tv(e,i,r,o),a,s)}pushStackElement(){this._commandManager.pushStackElement()}popStackElement(){this._commandManager.popStackElement()}pushEOL(e){if((this.getEOL()===` +`?0:1)!==e)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEOL(e)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_validateEditOperation(e){return e instanceof a6?e:new a6(e.identifier||null,this.validateRange(e.range),e.text,e.forceMoveMarkers||!1,e.isAutoWhitespaceEdit||!1,e._isTracked||!1)}_validateEditOperations(e){const t=[];for(let i=0,r=e.length;i({range:this.validateRange(a.range),text:a.text}));let s=!0;if(e)for(let a=0,l=e.length;au.endLineNumber,f=u.startLineNumber>g.endLineNumber;if(!m&&!f){c=!0;break}}if(!c){s=!1;break}}if(s)for(let a=0,l=this._trimAutoWhitespaceLines.length;am.endLineNumber)&&!(u===m.startLineNumber&&m.startColumn===c&&m.isEmpty()&&f&&f.length>0&&f.charAt(0)===` +`)&&!(u===m.startLineNumber&&m.startColumn===1&&m.isEmpty()&&f&&f.length>0&&f.charAt(f.length-1)===` +`)){d=!1;break}}if(d){const h=new K(u,1,u,c);t.push(new a6(null,h,null,!1,!1,!1))}}this._trimAutoWhitespaceLines=null}return this._initialUndoRedoSnapshot===null&&(this._initialUndoRedoSnapshot=this._undoRedoService.createSnapshot(this.uri)),this._commandManager.pushEditOperation(e,t,i,r)}_applyUndo(e,t,i,r){const o=e.map(s=>{const a=this.getPositionAt(s.newPosition),l=this.getPositionAt(s.newEnd);return{range:new K(a.lineNumber,a.column,l.lineNumber,l.column),text:s.oldText}});this._applyUndoRedoEdits(o,t,!0,!1,i,r)}_applyRedo(e,t,i,r){const o=e.map(s=>{const a=this.getPositionAt(s.oldPosition),l=this.getPositionAt(s.oldEnd);return{range:new K(a.lineNumber,a.column,l.lineNumber,l.column),text:s.newText}});this._applyUndoRedoEdits(o,t,!1,!0,i,r)}_applyUndoRedoEdits(e,t,i,r,o,s){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._isUndoing=i,this._isRedoing=r,this.applyEdits(e,!1),this.setEOL(t),this._overwriteAlternativeVersionId(o)}finally{this._isUndoing=!1,this._isRedoing=!1,this._eventEmitter.endDeferredEmit(s),this._onDidChangeDecorations.endDeferredEmit()}}applyEdits(e,t=!1){try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit();const i=this._validateEditOperations(e);return this._doApplyEdits(i,t)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}}_doApplyEdits(e,t){const i=this._buffer.getLineCount(),r=this._buffer.applyEdits(e,this._options.trimAutoWhitespace,t),o=this._buffer.getLineCount(),s=r.changes;if(this._trimAutoWhitespaceLines=r.trimAutoWhitespaceLineNumbers,s.length!==0){for(let u=0,c=s.length;u=0;M--){const W=g+M,Z=w+M;A.takeFromEndWhile(E=>E.lineNumber>Z);const T=A.takeFromEndWhile(E=>E.lineNumber===Z);a.push(new ECe(W,this.getLineContent(Z),T))}if(CP.lineNumberP.lineNumber===O)}a.push(new lvt(W+1,g+b,V,E))}l+=v}this._emitContentChangedEvent(new O2(a,this.getVersionId(),this._isUndoing,this._isRedoing),{changes:s,eol:this._buffer.getEOL(),isEolChange:!1,versionId:this.getVersionId(),isUndoing:this._isUndoing,isRedoing:this._isRedoing,isFlush:!1})}return r.reverseEdits===null?void 0:r.reverseEdits}undo(){return this._undoRedoService.undo(this.uri)}canUndo(){return this._undoRedoService.canUndo(this.uri)}redo(){return this._undoRedoService.redo(this.uri)}canRedo(){return this._undoRedoService.canRedo(this.uri)}handleBeforeFireDecorationsChangedEvent(e){if(e===null||e.size===0)return;const i=Array.from(e).map(r=>new ECe(r,this.getLineContent(r),this._getInjectedTextInLine(r)));this._onDidChangeInjectedText.fire(new WCe(i))}changeDecorations(e,t=0){this._assertNotDisposed();try{return this._onDidChangeDecorations.beginDeferredEmit(),this._changeDecorations(t,e)}finally{this._onDidChangeDecorations.endDeferredEmit()}}_changeDecorations(e,t){const i={addDecoration:(o,s)=>this._deltaDecorationsImpl(e,[],[{range:o,options:s}])[0],changeDecoration:(o,s)=>{this._changeDecorationImpl(o,s)},changeDecorationOptions:(o,s)=>{this._changeDecorationOptionsImpl(o,Fve(s))},removeDecoration:o=>{this._deltaDecorationsImpl(e,[o],[])},deltaDecorations:(o,s)=>o.length===0&&s.length===0?[]:this._deltaDecorationsImpl(e,o,s)};let r=null;try{r=t(i)}catch(o){fn(o)}return i.addDecoration=nD,i.changeDecoration=nD,i.changeDecorationOptions=nD,i.removeDecoration=nD,i.deltaDecorations=nD,r}deltaDecorations(e,t,i=0){if(this._assertNotDisposed(),e||(e=[]),e.length===0&&t.length===0)return[];try{return this._deltaDecorationCallCnt++,this._deltaDecorationCallCnt>1&&fn(new Error("Invoking deltaDecorations recursively could lead to leaking decorations.")),this._onDidChangeDecorations.beginDeferredEmit(),this._deltaDecorationsImpl(i,e,t)}finally{this._onDidChangeDecorations.endDeferredEmit(),this._deltaDecorationCallCnt--}}_getTrackedRange(e){return this.getDecorationRange(e)}_setTrackedRange(e,t,i){const r=e?this._decorations[e]:null;if(!r)return t?this._deltaDecorationsImpl(0,[],[{range:t,options:Lve[i]}],!0)[0]:null;if(!t)return this._decorationsTree.delete(r),delete this._decorations[r.id],null;const o=this._validateRangeRelaxedNoAllocations(t),s=this._buffer.getOffsetAt(o.startLineNumber,o.startColumn),a=this._buffer.getOffsetAt(o.endLineNumber,o.endColumn);return this._decorationsTree.delete(r),r.reset(this.getVersionId(),s,a,o),r.setOptions(Lve[i]),this._decorationsTree.insert(r),r.id}removeAllDecorationsWithOwnerId(e){if(this._isDisposed)return;const t=this._decorationsTree.collectNodesFromOwner(e);for(let i=0,r=t.length;ithis.getLineCount()?[]:this.getLinesDecorations(e,e,t,i)}getLinesDecorations(e,t,i=0,r=!1,o=!1){const s=this.getLineCount(),a=Math.min(s,Math.max(1,e)),l=Math.min(s,Math.max(1,t)),u=this.getLineMaxColumn(l),c=new K(a,1,l,u),d=this._getDecorationsInRange(c,i,r,o);return hH(d,this._decorationProvider.getDecorationsInRange(c,i,r)),d}getDecorationsInRange(e,t=0,i=!1,r=!1,o=!1){const s=this.validateRange(e),a=this._getDecorationsInRange(s,t,i,o);return hH(a,this._decorationProvider.getDecorationsInRange(s,t,i,r)),a}getOverviewRulerDecorations(e=0,t=!1){return this._decorationsTree.getAll(this,e,t,!0,!1)}getInjectedTextDecorations(e=0){return this._decorationsTree.getAllInjectedText(this,e)}_getInjectedTextInLine(e){const t=this._buffer.getOffsetAt(e,1),i=t+this._buffer.getLineLength(e),r=this._decorationsTree.getInjectedTextInInterval(this,t,i,0);return Ah.fromDecorations(r).filter(o=>o.lineNumber===e)}getAllDecorations(e=0,t=!1){let i=this._decorationsTree.getAll(this,e,t,!1,!1);return i=i.concat(this._decorationProvider.getAllDecorations(e,t)),i}getAllMarginDecorations(e=0){return this._decorationsTree.getAll(this,e,!1,!1,!0)}_getDecorationsInRange(e,t,i,r){const o=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),s=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn);return this._decorationsTree.getAllInInterval(this,o,s,t,i,r)}getRangeAt(e,t){return this._buffer.getRangeAt(e,t-e)}_changeDecorationImpl(e,t){const i=this._decorations[e];if(!i)return;if(i.options.after){const a=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(a.endLineNumber)}if(i.options.before){const a=this.getDecorationRange(e);this._onDidChangeDecorations.recordLineAffectedByInjectedText(a.startLineNumber)}const r=this._validateRangeRelaxedNoAllocations(t),o=this._buffer.getOffsetAt(r.startLineNumber,r.startColumn),s=this._buffer.getOffsetAt(r.endLineNumber,r.endColumn);this._decorationsTree.delete(i),i.reset(this.getVersionId(),o,s,r),this._decorationsTree.insert(i),this._onDidChangeDecorations.checkAffectedAndFire(i.options),i.options.after&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(r.endLineNumber),i.options.before&&this._onDidChangeDecorations.recordLineAffectedByInjectedText(r.startLineNumber)}_changeDecorationOptionsImpl(e,t){const i=this._decorations[e];if(!i)return;const r=!!(i.options.overviewRuler&&i.options.overviewRuler.color),o=!!(t.overviewRuler&&t.overviewRuler.color);if(this._onDidChangeDecorations.checkAffectedAndFire(i.options),this._onDidChangeDecorations.checkAffectedAndFire(t),i.options.after||t.after){const l=this._decorationsTree.getNodeRange(this,i);this._onDidChangeDecorations.recordLineAffectedByInjectedText(l.endLineNumber)}if(i.options.before||t.before){const l=this._decorationsTree.getNodeRange(this,i);this._onDidChangeDecorations.recordLineAffectedByInjectedText(l.startLineNumber)}const s=r!==o,a=Wyt(t)!==dE(i);s||a?(this._decorationsTree.delete(i),i.setOptions(t),this._decorationsTree.insert(i)):i.setOptions(t)}_deltaDecorationsImpl(e,t,i,r=!1){const o=this.getVersionId(),s=t.length;let a=0;const l=i.length;let u=0;this._onDidChangeDecorations.beginDeferredEmit();try{const c=new Array(l);for(;athis._setLanguage(e.languageId,t)),this._setLanguage(e.languageId,t))}_setLanguage(e,t){this.tokenization.setLanguageId(e,t),this._languageService.requestRichLanguageFeatures(e)}getLanguageIdAtPosition(e,t){return this.tokenization.getLanguageIdAtPosition(e,t)}getWordAtPosition(e){return this._tokenizationTextModelPart.getWordAtPosition(e)}getWordUntilPosition(e){return this._tokenizationTextModelPart.getWordUntilPosition(e)}normalizePosition(e,t){return e}getLineIndentColumn(e){return Eyt(this.getLineContent(e))+1}};im._MODEL_SYNC_LIMIT=50*1024*1024,im.LARGE_FILE_SIZE_THRESHOLD=20*1024*1024,im.LARGE_FILE_LINE_COUNT_THRESHOLD=300*1e3,im.LARGE_FILE_HEAP_OPERATION_THRESHOLD=256*1024*1024,im.DEFAULT_CREATION_OPTIONS={isForSimpleWidget:!1,tabSize:ha.tabSize,indentSize:ha.indentSize,insertSpaces:ha.insertSpaces,detectIndentation:!1,defaultEOL:1,trimAutoWhitespace:ha.trimAutoWhitespace,largeFileOptimizations:ha.largeFileOptimizations,bracketPairColorizationOptions:ha.bracketPairColorizationOptions},im=rv=Ayt([J6(4,uE),J6(5,Cr),J6(6,$i)],im);function Eyt(n){let e=0;for(const t of n)if(t===" "||t===" ")e++;else break;return e}function K6(n){return!!(n.options.overviewRuler&&n.options.overviewRuler.color)}function Wyt(n){return!!n.after||!!n.before}function dE(n){return!!n.options.after||!!n.options.before}class Sve{constructor(){this._decorationsTree0=new E6,this._decorationsTree1=new E6,this._injectedTextDecorationsTree=new E6}ensureAllNodesHaveRanges(e){this.getAll(e,0,!1,!1,!1)}_ensureNodesHaveRanges(e,t){for(const i of t)i.range===null&&(i.range=e.getRangeAt(i.cachedAbsoluteStart,i.cachedAbsoluteEnd));return t}getAllInInterval(e,t,i,r,o,s){const a=e.getVersionId(),l=this._intervalSearch(t,i,r,o,a,s);return this._ensureNodesHaveRanges(e,l)}_intervalSearch(e,t,i,r,o,s){const a=this._decorationsTree0.intervalSearch(e,t,i,r,o,s),l=this._decorationsTree1.intervalSearch(e,t,i,r,o,s),u=this._injectedTextDecorationsTree.intervalSearch(e,t,i,r,o,s);return a.concat(l).concat(u)}getInjectedTextInInterval(e,t,i,r){const o=e.getVersionId(),s=this._injectedTextDecorationsTree.intervalSearch(t,i,r,!1,o,!1);return this._ensureNodesHaveRanges(e,s).filter(a=>a.options.showIfCollapsed||!a.range.isEmpty())}getAllInjectedText(e,t){const i=e.getVersionId(),r=this._injectedTextDecorationsTree.search(t,!1,i,!1);return this._ensureNodesHaveRanges(e,r).filter(o=>o.options.showIfCollapsed||!o.range.isEmpty())}getAll(e,t,i,r,o){const s=e.getVersionId(),a=this._search(t,i,r,s,o);return this._ensureNodesHaveRanges(e,a)}_search(e,t,i,r,o){if(i)return this._decorationsTree1.search(e,t,r,o);{const s=this._decorationsTree0.search(e,t,r,o),a=this._decorationsTree1.search(e,t,r,o),l=this._injectedTextDecorationsTree.search(e,t,r,o);return s.concat(a).concat(l)}}collectNodesFromOwner(e){const t=this._decorationsTree0.collectNodesFromOwner(e),i=this._decorationsTree1.collectNodesFromOwner(e),r=this._injectedTextDecorationsTree.collectNodesFromOwner(e);return t.concat(i).concat(r)}collectNodesPostOrder(){const e=this._decorationsTree0.collectNodesPostOrder(),t=this._decorationsTree1.collectNodesPostOrder(),i=this._injectedTextDecorationsTree.collectNodesPostOrder();return e.concat(t).concat(i)}insert(e){dE(e)?this._injectedTextDecorationsTree.insert(e):K6(e)?this._decorationsTree1.insert(e):this._decorationsTree0.insert(e)}delete(e){dE(e)?this._injectedTextDecorationsTree.delete(e):K6(e)?this._decorationsTree1.delete(e):this._decorationsTree0.delete(e)}getNodeRange(e,t){const i=e.getVersionId();return t.cachedVersionId!==i&&this._resolveNode(t,i),t.range===null&&(t.range=e.getRangeAt(t.cachedAbsoluteStart,t.cachedAbsoluteEnd)),t.range}_resolveNode(e,t){dE(e)?this._injectedTextDecorationsTree.resolveNode(e,t):K6(e)?this._decorationsTree1.resolveNode(e,t):this._decorationsTree0.resolveNode(e,t)}acceptReplace(e,t,i,r){this._decorationsTree0.acceptReplace(e,t,i,r),this._decorationsTree1.acceptReplace(e,t,i,r),this._injectedTextDecorationsTree.acceptReplace(e,t,i,r)}}function rm(n){return n.replace(/[^a-z0-9\-_]/gi," ")}class xve{constructor(e){this.color=e.color||"",this.darkColor=e.darkColor||""}}class Ryt extends xve{constructor(e){super(e),this._resolvedColor=null,this.position=typeof e.position=="number"?e.position:Mc.Center}getColor(e){return this._resolvedColor||(e.type!=="light"&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=null}_resolveColor(e,t){if(typeof e=="string")return e;const i=e?t.getColor(e.id):null;return i?i.toString():""}}class Gyt{constructor(e){var t;this.position=(t=e==null?void 0:e.position)!==null&&t!==void 0?t:Qg.Center,this.persistLane=e==null?void 0:e.persistLane}}class Vyt extends xve{constructor(e){super(e),this.position=e.position}getColor(e){return this._resolvedColor||(e.type!=="light"&&this.darkColor?this._resolvedColor=this._resolveColor(this.darkColor,e):this._resolvedColor=this._resolveColor(this.color,e)),this._resolvedColor}invalidateCachedColor(){this._resolvedColor=void 0}_resolveColor(e,t){return typeof e=="string"?Ee.fromHex(e):t.getColor(e.id)}}class jb{static from(e){return e instanceof jb?e:new jb(e)}constructor(e){this.content=e.content||"",this.inlineClassName=e.inlineClassName||null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.attachedData=e.attachedData||null,this.cursorStops=e.cursorStops||null}}class In{static register(e){return new In(e)}static createDynamic(e){return new In(e)}constructor(e){var t,i,r,o,s,a;this.description=e.description,this.blockClassName=e.blockClassName?rm(e.blockClassName):null,this.blockDoesNotCollapse=(t=e.blockDoesNotCollapse)!==null&&t!==void 0?t:null,this.blockIsAfterEnd=(i=e.blockIsAfterEnd)!==null&&i!==void 0?i:null,this.blockPadding=(r=e.blockPadding)!==null&&r!==void 0?r:null,this.stickiness=e.stickiness||0,this.zIndex=e.zIndex||0,this.className=e.className?rm(e.className):null,this.shouldFillLineOnLineBreak=(o=e.shouldFillLineOnLineBreak)!==null&&o!==void 0?o:null,this.hoverMessage=e.hoverMessage||null,this.glyphMarginHoverMessage=e.glyphMarginHoverMessage||null,this.lineNumberHoverMessage=e.lineNumberHoverMessage||null,this.isWholeLine=e.isWholeLine||!1,this.showIfCollapsed=e.showIfCollapsed||!1,this.collapseOnReplaceEdit=e.collapseOnReplaceEdit||!1,this.overviewRuler=e.overviewRuler?new Ryt(e.overviewRuler):null,this.minimap=e.minimap?new Vyt(e.minimap):null,this.glyphMargin=e.glyphMarginClassName?new Gyt(e.glyphMargin):null,this.glyphMarginClassName=e.glyphMarginClassName?rm(e.glyphMarginClassName):null,this.linesDecorationsClassName=e.linesDecorationsClassName?rm(e.linesDecorationsClassName):null,this.lineNumberClassName=e.lineNumberClassName?rm(e.lineNumberClassName):null,this.linesDecorationsTooltip=e.linesDecorationsTooltip?Xht(e.linesDecorationsTooltip):null,this.firstLineDecorationClassName=e.firstLineDecorationClassName?rm(e.firstLineDecorationClassName):null,this.marginClassName=e.marginClassName?rm(e.marginClassName):null,this.inlineClassName=e.inlineClassName?rm(e.inlineClassName):null,this.inlineClassNameAffectsLetterSpacing=e.inlineClassNameAffectsLetterSpacing||!1,this.beforeContentClassName=e.beforeContentClassName?rm(e.beforeContentClassName):null,this.afterContentClassName=e.afterContentClassName?rm(e.afterContentClassName):null,this.after=e.after?jb.from(e.after):null,this.before=e.before?jb.from(e.before):null,this.hideInCommentTokens=(s=e.hideInCommentTokens)!==null&&s!==void 0?s:!1,this.hideInStringTokens=(a=e.hideInStringTokens)!==null&&a!==void 0?a:!1}}In.EMPTY=In.register({description:"empty"});const Lve=[In.register({description:"tracked-range-always-grows-when-typing-at-edges",stickiness:0}),In.register({description:"tracked-range-never-grows-when-typing-at-edges",stickiness:1}),In.register({description:"tracked-range-grows-only-when-typing-before",stickiness:2}),In.register({description:"tracked-range-grows-only-when-typing-after",stickiness:3})];function Fve(n){return n instanceof In?n:In.createDynamic(n)}class Xyt extends De{constructor(e){super(),this.handleBeforeFire=e,this._actual=this._register(new be),this.event=this._actual.event,this._affectedInjectedTextLines=null,this._deferredCnt=0,this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._affectsLineNumber=!1}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(){var e;this._deferredCnt--,this._deferredCnt===0&&(this._shouldFireDeferred&&this.doFire(),(e=this._affectedInjectedTextLines)===null||e===void 0||e.clear(),this._affectedInjectedTextLines=null)}recordLineAffectedByInjectedText(e){this._affectedInjectedTextLines||(this._affectedInjectedTextLines=new Set),this._affectedInjectedTextLines.add(e)}checkAffectedAndFire(e){var t,i;this._affectsMinimap||(this._affectsMinimap=!!(!((t=e.minimap)===null||t===void 0)&&t.position)),this._affectsOverviewRuler||(this._affectsOverviewRuler=!!(!((i=e.overviewRuler)===null||i===void 0)&&i.color)),this._affectsGlyphMargin||(this._affectsGlyphMargin=!!e.glyphMarginClassName),this._affectsLineNumber||(this._affectsLineNumber=!!e.lineNumberClassName),this.tryFire()}fire(){this._affectsMinimap=!0,this._affectsOverviewRuler=!0,this._affectsGlyphMargin=!0,this.tryFire()}tryFire(){this._deferredCnt===0?this.doFire():this._shouldFireDeferred=!0}doFire(){this.handleBeforeFire(this._affectedInjectedTextLines);const e={affectsMinimap:this._affectsMinimap,affectsOverviewRuler:this._affectsOverviewRuler,affectsGlyphMargin:this._affectsGlyphMargin,affectsLineNumber:this._affectsLineNumber};this._shouldFireDeferred=!1,this._affectsMinimap=!1,this._affectsOverviewRuler=!1,this._affectsGlyphMargin=!1,this._actual.fire(e)}}class Pyt extends De{constructor(){super(),this._fastEmitter=this._register(new be),this.fastEvent=this._fastEmitter.event,this._slowEmitter=this._register(new be),this.slowEvent=this._slowEmitter.event,this._deferredCnt=0,this._deferredEvent=null}beginDeferredEmit(){this._deferredCnt++}endDeferredEmit(e=null){if(this._deferredCnt--,this._deferredCnt===0&&this._deferredEvent!==null){this._deferredEvent.rawContentChangedEvent.resultingSelection=e;const t=this._deferredEvent;this._deferredEvent=null,this._fastEmitter.fire(t),this._slowEmitter.fire(t)}}fire(e){if(this._deferredCnt>0){this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(e):this._deferredEvent=e;return}this._fastEmitter.fire(e),this._slowEmitter.fire(e)}}class Oyt{constructor(){this._onDidChangeVisibleRanges=new be,this.onDidChangeVisibleRanges=this._onDidChangeVisibleRanges.event,this._views=new Set}attachView(){const e=new Byt(t=>{this._onDidChangeVisibleRanges.fire({view:e,state:t})});return this._views.add(e),e}detachView(e){this._views.delete(e),this._onDidChangeVisibleRanges.fire({view:e,state:void 0})}}class Byt{constructor(e){this.handleStateChange=e}setVisibleLines(e,t){const i=e.map(r=>new vn(r.startLineNumber,r.endLineNumber+1));this.handleStateChange({visibleLineRanges:i,stabilized:t})}}const Tt=Un("ILanguageFeaturesService");class j6{static create(e){return new j6(e.get(133),e.get(132))}constructor(e,t){this.classifier=new zyt(e,t)}createLineBreaksComputer(e,t,i,r,o){const s=[],a=[],l=[];return{addRequest:(u,c,d)=>{s.push(u),a.push(c),l.push(d)},finalize:()=>{const u=e.typicalFullwidthCharacterWidth/e.typicalHalfwidthCharacterWidth,c=[];for(let d=0,h=s.length;d=0&&e<256?this._asciiMap[e]:e>=12352&&e<=12543||e>=13312&&e<=19903||e>=19968&&e<=40959?3:this._map.get(e)||this._defaultValue}}let Q6=[],$6=[];function Yyt(n,e,t,i,r,o,s,a){if(r===-1)return null;const l=t.length;if(l<=1)return null;const u=a==="keepAll",c=e.breakOffsets,d=e.breakOffsetsVisibleColumn,h=Dve(t,i,r,o,s),g=r-h,m=Q6,f=$6;let b=0,C=0,v=0,w=r;const S=c.length;let F=0;if(F>=0){let L=Math.abs(d[F]-w);for(;F+1=L)break;L=D,F++}}for(;FL&&(L=C,D=v);let A=0,M=0,W=0,Z=0;if(D<=w){let E=D,V=L===0?0:t.charCodeAt(L-1),z=L===0?0:n.get(V),O=!0;for(let P=L;PC&&q6(V,z,Y,k,u)&&(A=B,M=E),E+=X,E>w){B>C?(W=B,Z=E-X):(W=P+1,Z=E),E-M>g&&(A=0),O=!1;break}V=Y,z=k}if(O){b>0&&(m[b]=c[c.length-1],f[b]=d[c.length-1],b++);break}}if(A===0){let E=D,V=t.charCodeAt(L),z=n.get(V),O=!1;for(let P=L-1;P>=C;P--){const B=P+1,Y=t.charCodeAt(P);if(Y===9){O=!0;break}let k,X;if(LC(Y)?(P--,k=0,X=2):(k=n.get(Y),X=Ib(Y)?o:1),E<=w){if(W===0&&(W=B,Z=E),E<=w-g)break;if(q6(Y,k,V,z,u)){A=B,M=E;break}}E-=X,V=Y,z=k}if(A!==0){const P=g-(Z-M);if(P<=i){const B=t.charCodeAt(W);let Y;qo(B)?Y=2:Y=iD(B,Z,i,o),P-Y<0&&(A=0)}}if(O){F--;continue}}if(A===0&&(A=W,M=Z),A<=C){const E=t.charCodeAt(C);qo(E)?(A=C+2,M=v+2):(A=C+1,M=v+iD(E,v,i,o))}for(C=A,m[b]=A,v=M,f[b]=M,b++,w=M+g;F<0||F=T)break;T=E,F++}}return b===0?null:(m.length=b,f.length=b,Q6=e.breakOffsets,$6=e.breakOffsetsVisibleColumn,e.breakOffsets=m,e.breakOffsetsVisibleColumn=f,e.wrappedTextIndentLength=h,e)}function Hyt(n,e,t,i,r,o,s,a){const l=Ah.applyInjectedText(e,t);let u,c;if(t&&t.length>0?(u=t.map(M=>M.options),c=t.map(M=>M.column-1)):(u=null,c=null),r===-1)return u?new X_(c,u,[l.length],[],0):null;const d=l.length;if(d<=1)return u?new X_(c,u,[l.length],[],0):null;const h=a==="keepAll",g=Dve(l,i,r,o,s),m=r-g,f=[],b=[];let C=0,v=0,w=0,S=r,F=l.charCodeAt(0),L=n.get(F),D=iD(F,0,i,o),A=1;qo(F)&&(D+=1,F=l.charCodeAt(1),L=n.get(F),A++);for(let M=A;MS&&((v===0||D-w>m)&&(v=W,w=D-E),f[C]=v,b[C]=w,C++,S=w+m,v=0),F=Z,L=T}return C===0&&(!t||t.length===0)?null:(f[C]=d,b[C]=D,new X_(c,u,f,b,g))}function iD(n,e,t,i){return n===9?t-e%t:Ib(n)||n<32?i:1}function _ve(n,e){return e-n%e}function q6(n,e,t,i,r){return t!==32&&(e===2&&i!==2||e!==1&&i===1||!r&&e===3&&i!==2||!r&&i===3&&e!==1)}function Dve(n,e,t,i,r){let o=0;if(r!==0){const s=Ia(n);if(s!==-1){for(let l=0;lt&&(o=0)}}return o}class hE{constructor(e){this._selTrackedRange=null,this._trackSelection=!0,this._setState(e,new Fs(new K(1,1,1,1),0,0,new ve(1,1),0),new Fs(new K(1,1,1,1),0,0,new ve(1,1),0))}dispose(e){this._removeTrackedRange(e)}startTrackingSelection(e){this._trackSelection=!0,this._updateTrackedRange(e)}stopTrackingSelection(e){this._trackSelection=!1,this._removeTrackedRange(e)}_updateTrackedRange(e){this._trackSelection&&(this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,this.modelState.selection,0))}_removeTrackedRange(e){this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,null,0)}asCursorState(){return new li(this.modelState,this.viewState)}readSelectionFromMarkers(e){const t=e.model._getTrackedRange(this._selTrackedRange);return this.modelState.selection.isEmpty()&&!t.isEmpty()?Gt.fromRange(t.collapseToEnd(),this.modelState.selection.getDirection()):Gt.fromRange(t,this.modelState.selection.getDirection())}ensureValidState(e){this._setState(e,this.modelState,this.viewState)}setState(e,t,i){this._setState(e,t,i)}static _validatePositionWithCache(e,t,i,r){return t.equals(i)?r:e.normalizePosition(t,2)}static _validateViewState(e,t){const i=t.position,r=t.selectionStart.getStartPosition(),o=t.selectionStart.getEndPosition(),s=e.normalizePosition(i,2),a=this._validatePositionWithCache(e,r,i,s),l=this._validatePositionWithCache(e,o,r,a);return i.equals(s)&&r.equals(a)&&o.equals(l)?t:new Fs(K.fromPositions(a,l),t.selectionStartKind,t.selectionStartLeftoverVisibleColumns+r.column-a.column,s,t.leftoverVisibleColumns+i.column-s.column)}_setState(e,t,i){if(i&&(i=hE._validateViewState(e.viewModel,i)),t){const r=e.model.validateRange(t.selectionStart),o=t.selectionStart.equalsRange(r)?t.selectionStartLeftoverVisibleColumns:0,s=e.model.validatePosition(t.position),a=t.position.equals(s)?t.leftoverVisibleColumns:0;t=new Fs(r,t.selectionStartKind,o,s,a)}else{if(!i)return;const r=e.model.validateRange(e.coordinatesConverter.convertViewRangeToModelRange(i.selectionStart)),o=e.model.validatePosition(e.coordinatesConverter.convertViewPositionToModelPosition(i.position));t=new Fs(r,i.selectionStartKind,i.selectionStartLeftoverVisibleColumns,o,i.leftoverVisibleColumns)}if(i){const r=e.coordinatesConverter.validateViewRange(i.selectionStart,t.selectionStart),o=e.coordinatesConverter.validateViewPosition(i.position,t.position);i=new Fs(r,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,o,t.leftoverVisibleColumns)}else{const r=e.coordinatesConverter.convertModelPositionToViewPosition(new ve(t.selectionStart.startLineNumber,t.selectionStart.startColumn)),o=e.coordinatesConverter.convertModelPositionToViewPosition(new ve(t.selectionStart.endLineNumber,t.selectionStart.endColumn)),s=new K(r.lineNumber,r.column,o.lineNumber,o.column),a=e.coordinatesConverter.convertModelPositionToViewPosition(t.position);i=new Fs(s,t.selectionStartKind,t.selectionStartLeftoverVisibleColumns,a,t.leftoverVisibleColumns)}this.modelState=t,this.viewState=i,this._updateTrackedRange(e)}}class Ave{constructor(e){this.context=e,this.cursors=[new hE(e)],this.lastAddedCursorIndex=0}dispose(){for(const e of this.cursors)e.dispose(this.context)}startTrackingSelections(){for(const e of this.cursors)e.startTrackingSelection(this.context)}stopTrackingSelections(){for(const e of this.cursors)e.stopTrackingSelection(this.context)}updateContext(e){this.context=e}ensureValidState(){for(const e of this.cursors)e.ensureValidState(this.context)}readSelectionFromMarkers(){return this.cursors.map(e=>e.readSelectionFromMarkers(this.context))}getAll(){return this.cursors.map(e=>e.asCursorState())}getViewPositions(){return this.cursors.map(e=>e.viewState.position)}getTopMostViewPosition(){return xCt(this.cursors,Fc(e=>e.viewState.position,ve.compare)).viewState.position}getBottomMostViewPosition(){return SCt(this.cursors,Fc(e=>e.viewState.position,ve.compare)).viewState.position}getSelections(){return this.cursors.map(e=>e.modelState.selection)}getViewSelections(){return this.cursors.map(e=>e.viewState.selection)}setSelections(e){this.setStates(li.fromModelSelections(e))}getPrimaryCursor(){return this.cursors[0].asCursorState()}setStates(e){e!==null&&(this.cursors[0].setState(this.context,e[0].modelState,e[0].viewState),this._setSecondaryStates(e.slice(1)))}_setSecondaryStates(e){const t=this.cursors.length-1,i=e.length;if(ti){const r=t-i;for(let o=0;o=e+1&&this.lastAddedCursorIndex--,this.cursors[e+1].dispose(this.context),this.cursors.splice(e+1,1)}normalize(){if(this.cursors.length===1)return;const e=this.cursors.slice(0),t=[];for(let i=0,r=e.length;ii.selection,K.compareRangesUsingStarts));for(let i=0;id&&f.index--;e.splice(d,1),t.splice(c,1),this._removeSecondaryCursor(d-1),i--}}}}class Nve{constructor(e,t,i,r){this._cursorContextBrand=void 0,this.model=e,this.viewModel=t,this.coordinatesConverter=i,this.cursorConfig=r}}class Uyt{constructor(){this.type=0}}class Jyt{constructor(){this.type=1}}class Kyt{constructor(e){this.type=2,this._source=e}hasChanged(e){return this._source.hasChanged(e)}}class jyt{constructor(e,t,i){this.selections=e,this.modelSelections=t,this.reason=i,this.type=3}}class ov{constructor(e){this.type=4,e?(this.affectsMinimap=e.affectsMinimap,this.affectsOverviewRuler=e.affectsOverviewRuler,this.affectsGlyphMargin=e.affectsGlyphMargin,this.affectsLineNumber=e.affectsLineNumber):(this.affectsMinimap=!0,this.affectsOverviewRuler=!0,this.affectsGlyphMargin=!0,this.affectsLineNumber=!0)}}class gE{constructor(){this.type=5}}class Qyt{constructor(e){this.type=6,this.isFocused=e}}class $yt{constructor(){this.type=7}}class mE{constructor(){this.type=8}}class kve{constructor(e,t){this.fromLineNumber=e,this.count=t,this.type=9}}class e7{constructor(e,t){this.type=10,this.fromLineNumber=e,this.toLineNumber=t}}class t7{constructor(e,t){this.type=11,this.fromLineNumber=e,this.toLineNumber=t}}class fE{constructor(e,t,i,r,o,s,a){this.source=e,this.minimalReveal=t,this.range=i,this.selections=r,this.verticalType=o,this.revealHorizontal=s,this.scrollType=a,this.type=12}}class qyt{constructor(e){this.type=13,this.scrollWidth=e.scrollWidth,this.scrollLeft=e.scrollLeft,this.scrollHeight=e.scrollHeight,this.scrollTop=e.scrollTop,this.scrollWidthChanged=e.scrollWidthChanged,this.scrollLeftChanged=e.scrollLeftChanged,this.scrollHeightChanged=e.scrollHeightChanged,this.scrollTopChanged=e.scrollTopChanged}}class eIt{constructor(e){this.theme=e,this.type=14}}class tIt{constructor(e){this.type=15,this.ranges=e}}class nIt{constructor(){this.type=16}}let iIt=class{constructor(){this.type=17}};class rIt extends De{constructor(){super(),this._onEvent=this._register(new be),this.onEvent=this._onEvent.event,this._eventHandlers=[],this._viewEventQueue=null,this._isConsumingViewEventQueue=!1,this._collector=null,this._collectorCnt=0,this._outgoingEvents=[]}emitOutgoingEvent(e){this._addOutgoingEvent(e),this._emitOutgoingEvents()}_addOutgoingEvent(e){for(let t=0,i=this._outgoingEvents.length;t0;){if(this._collector||this._isConsumingViewEventQueue)return;const e=this._outgoingEvents.shift();e.isNoOp()||this._onEvent.fire(e)}}addViewEventHandler(e){for(let t=0,i=this._eventHandlers.length;t0&&this._emitMany(t)}this._emitOutgoingEvents()}emitSingleViewEvent(e){try{this.beginEmitViewEvents().emitViewEvent(e)}finally{this.endEmitViewEvents()}}_emitMany(e){this._viewEventQueue?this._viewEventQueue=this._viewEventQueue.concat(e):this._viewEventQueue=e,this._isConsumingViewEventQueue||this._consumeViewEventQueue()}_consumeViewEventQueue(){try{this._isConsumingViewEventQueue=!0,this._doConsumeQueue()}finally{this._isConsumingViewEventQueue=!1}}_doConsumeQueue(){for(;this._viewEventQueue;){const e=this._viewEventQueue;this._viewEventQueue=null;const t=this._eventHandlers.slice(0);for(const i of t)i.handleEvents(e)}}}class oIt{constructor(){this.viewEvents=[],this.outgoingEvents=[]}emitViewEvent(e){this.viewEvents.push(e)}emitOutgoingEvent(e){this.outgoingEvents.push(e)}}class n7{constructor(e,t,i,r){this.kind=0,this._oldContentWidth=e,this._oldContentHeight=t,this.contentWidth=i,this.contentHeight=r,this.contentWidthChanged=this._oldContentWidth!==this.contentWidth,this.contentHeightChanged=this._oldContentHeight!==this.contentHeight}isNoOp(){return!this.contentWidthChanged&&!this.contentHeightChanged}attemptToMerge(e){return e.kind!==this.kind?null:new n7(this._oldContentWidth,this._oldContentHeight,e.contentWidth,e.contentHeight)}}class i7{constructor(e,t){this.kind=1,this.oldHasFocus=e,this.hasFocus=t}isNoOp(){return this.oldHasFocus===this.hasFocus}attemptToMerge(e){return e.kind!==this.kind?null:new i7(this.oldHasFocus,e.hasFocus)}}class r7{constructor(e,t,i,r,o,s,a,l){this.kind=2,this._oldScrollWidth=e,this._oldScrollLeft=t,this._oldScrollHeight=i,this._oldScrollTop=r,this.scrollWidth=o,this.scrollLeft=s,this.scrollHeight=a,this.scrollTop=l,this.scrollWidthChanged=this._oldScrollWidth!==this.scrollWidth,this.scrollLeftChanged=this._oldScrollLeft!==this.scrollLeft,this.scrollHeightChanged=this._oldScrollHeight!==this.scrollHeight,this.scrollTopChanged=this._oldScrollTop!==this.scrollTop}isNoOp(){return!this.scrollWidthChanged&&!this.scrollLeftChanged&&!this.scrollHeightChanged&&!this.scrollTopChanged}attemptToMerge(e){return e.kind!==this.kind?null:new r7(this._oldScrollWidth,this._oldScrollLeft,this._oldScrollHeight,this._oldScrollTop,e.scrollWidth,e.scrollLeft,e.scrollHeight,e.scrollTop)}}class sIt{constructor(){this.kind=3}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class aIt{constructor(){this.kind=4}isNoOp(){return!1}attemptToMerge(e){return e.kind!==this.kind?null:this}}class pE{constructor(e,t,i,r,o,s,a){this.kind=6,this.oldSelections=e,this.selections=t,this.oldModelVersionId=i,this.modelVersionId=r,this.source=o,this.reason=s,this.reachedMaxCursorCount=a}static _selectionsAreEqual(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;const i=e.length,r=t.length;if(i!==r)return!1;for(let o=0;o0){const e=this._cursors.getSelections();for(let t=0;ts&&(r=r.slice(0,s),o=!0);const a=rD.from(this._model,this);return this._cursors.setStates(r),this._cursors.normalize(),this._columnSelectData=null,this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(e,t,i,a,o)}setCursorColumnSelectData(e){this._columnSelectData=e}revealPrimary(e,t,i,r,o,s){const a=this._cursors.getViewPositions();let l=null,u=null;a.length>1?u=this._cursors.getViewSelections():l=K.fromPositions(a[0],a[0]),e.emitViewEvent(new fE(t,i,l,u,r,o,s))}saveState(){const e=[],t=this._cursors.getSelections();for(let i=0,r=t.length;i0){const o=li.fromModelSelections(i.resultingSelection);this.setStates(e,"modelChange",i.isUndoing?5:i.isRedoing?6:2,o)&&this.revealPrimary(e,"modelChange",!1,0,!0,0)}else{const o=this._cursors.readSelectionFromMarkers();this.setStates(e,"modelChange",2,li.fromModelSelections(o))}}}getSelection(){return this._cursors.getPrimaryCursor().modelState.selection}getTopMostViewPosition(){return this._cursors.getTopMostViewPosition()}getBottomMostViewPosition(){return this._cursors.getBottomMostViewPosition()}getCursorColumnSelectData(){if(this._columnSelectData)return this._columnSelectData;const e=this._cursors.getPrimaryCursor(),t=e.viewState.selectionStart.getStartPosition(),i=e.viewState.position;return{isReal:!1,fromViewLineNumber:t.lineNumber,fromViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,t),toViewLineNumber:i.lineNumber,toViewVisualColumn:this.context.cursorConfig.visibleColumnFromColumn(this._viewModel,i)}}getSelections(){return this._cursors.getSelections()}setSelections(e,t,i,r){this.setStates(e,t,r,li.fromModelSelections(i))}getPrevEditOperationType(){return this._prevEditOperationType}setPrevEditOperationType(e){this._prevEditOperationType=e}_pushAutoClosedAction(e,t){const i=[],r=[];for(let a=0,l=e.length;a0&&this._pushAutoClosedAction(i,r),this._prevEditOperationType=e.type}e.shouldPushStackElementAfter&&this._model.pushStackElement()}_interpretCommandResult(e){(!e||e.length===0)&&(e=this._cursors.readSelectionFromMarkers()),this._columnSelectData=null,this._cursors.setSelections(e),this._cursors.normalize()}_emitStateChangedIfNecessary(e,t,i,r,o){const s=rD.from(this._model,this);if(s.equals(r))return!1;const a=this._cursors.getSelections(),l=this._cursors.getViewSelections();if(e.emitViewEvent(new jyt(l,a,i)),!r||r.cursorState.length!==s.cursorState.length||s.cursorState.some((u,c)=>!u.modelState.equals(r.cursorState[c].modelState))){const u=r?r.cursorState.map(d=>d.modelState.selection):null,c=r?r.modelVersionId:0;e.emitOutgoingEvent(new pE(u,a,c,s.modelVersionId,t||"keyboard",i,o))}return!0}_findAutoClosingPairs(e){if(!e.length)return null;const t=[];for(let i=0,r=e.length;i=0)return null;const s=o.text.match(/([)\]}>'"`])([^)\]}>'"`]*)$/);if(!s)return null;const a=s[1],l=this.context.cursorConfig.autoClosingPairs.autoClosingPairsCloseSingleChar.get(a);if(!l||l.length!==1)return null;const u=l[0].open,c=o.text.length-s[2].length-1,d=o.text.lastIndexOf(u,c-1);if(d===-1)return null;t.push([d,c])}return t}executeEdits(e,t,i,r){let o=null;t==="snippet"&&(o=this._findAutoClosingPairs(i)),o&&(i[0]._isTracked=!0);const s=[],a=[],l=this._model.pushEditOperations(this.getSelections(),i,u=>{if(o)for(let d=0,h=o.length;d0&&this._pushAutoClosedAction(s,a)}_executeEdit(e,t,i,r=0){if(this.context.cursorConfig.readOnly)return;const o=rD.from(this._model,this);this._cursors.stopTrackingSelections(),this._isHandling=!0;try{this._cursors.ensureValidState(),e()}catch(s){fn(s)}this._isHandling=!1,this._cursors.startTrackingSelections(),this._validateAutoClosedActions(),this._emitStateChangedIfNecessary(t,i,r,o,!1)&&this.revealPrimary(t,i,!1,0,!0,0)}getAutoClosedCharacters(){return Mve.getAllAutoClosedCharacters(this._autoClosedActions)}startComposition(e){this._compositionState=new oD(this._model,this.getSelections())}endComposition(e,t){const i=this._compositionState?this._compositionState.deduceOutcome(this._model,this.getSelections()):null;this._compositionState=null,this._executeEdit(()=>{t==="keyboard"&&this._executeEditOperation(Nr.compositionEndWithInterceptors(this._prevEditOperationType,this.context.cursorConfig,this._model,i,this.getSelections(),this.getAutoClosedCharacters()))},e,t)}type(e,t,i){this._executeEdit(()=>{if(i==="keyboard"){const r=t.length;let o=0;for(;o{const u=l.getPosition();return new Gt(u.lineNumber,u.column+o,u.lineNumber,u.column+o)});this.setSelections(e,s,a,0)}return}this._executeEdit(()=>{this._executeEditOperation(Nr.compositionType(this._prevEditOperationType,this.context.cursorConfig,this._model,this.getSelections(),t,i,r,o))},e,s)}paste(e,t,i,r,o){this._executeEdit(()=>{this._executeEditOperation(Nr.paste(this.context.cursorConfig,this._model,this.getSelections(),t,i,r||[]))},e,o,4)}cut(e,t){this._executeEdit(()=>{this._executeEditOperation(WC.cut(this.context.cursorConfig,this._model,this.getSelections()))},e,t)}executeCommand(e,t,i){this._executeEdit(()=>{this._cursors.killSecondaryCursors(),this._executeEditOperation(new kl(0,[t],{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,i)}executeCommands(e,t,i){this._executeEdit(()=>{this._executeEditOperation(new kl(0,t,{shouldPushStackElementBefore:!1,shouldPushStackElementAfter:!1}))},e,i)}}class rD{static from(e,t){return new rD(e.getVersionId(),t.getCursorStates())}constructor(e,t){this.modelVersionId=e,this.cursorState=t}equals(e){if(!e||this.modelVersionId!==e.modelVersionId||this.cursorState.length!==e.cursorState.length)return!1;for(let t=0,i=this.cursorState.length;t=t.length||!t[i].strictContainsRange(e[i]))return!1;return!0}}class pIt{static executeCommands(e,t,i){const r={model:e,selectionsBefore:t,trackedRanges:[],trackedRangesDirection:[]},o=this._innerExecuteCommands(r,i);for(let s=0,a=r.trackedRanges.length;s0&&(s[0]._isTracked=!0);let a=e.model.pushEditOperations(e.selectionsBefore,s,u=>{const c=[];for(let g=0;gg.identifier.minor-m.identifier.minor,h=[];for(let g=0;g0?(c[g].sort(d),h[g]=t[g].computeCursorState(e.model,{getInverseEditOperations:()=>c[g],getTrackedSelection:m=>{const f=parseInt(m,10),b=e.model._getTrackedRange(e.trackedRanges[f]);return e.trackedRangesDirection[f]===0?new Gt(b.startLineNumber,b.startColumn,b.endLineNumber,b.endColumn):new Gt(b.endLineNumber,b.endColumn,b.startLineNumber,b.startColumn)}})):h[g]=e.selectionsBefore[g];return h});a||(a=e.selectionsBefore);const l=[];for(const u in o)o.hasOwnProperty(u)&&l.push(parseInt(u,10));l.sort((u,c)=>c-u);for(const u of l)a.splice(u,1);return a}static _arrayIsEmpty(e){for(let t=0,i=e.length;t{K.isEmpty(d)&&h===""||r.push({identifier:{major:t,minor:o++},range:d,text:h,forceMoveMarkers:g,isAutoWhitespaceEdit:i.insertsAutoWhitespace})};let a=!1;const c={addEditOperation:s,addTrackedEditOperation:(d,h,g)=>{a=!0,s(d,h,g)},trackSelection:(d,h)=>{const g=Gt.liftSelection(d);let m;if(g.isEmpty())if(typeof h=="boolean")h?m=2:m=3;else{const C=e.model.getLineMaxColumn(g.startLineNumber);g.startColumn===C?m=2:m=3}else m=1;const f=e.trackedRanges.length,b=e.model._setTrackedRange(null,g,m);return e.trackedRanges[f]=b,e.trackedRangesDirection[f]=g.getDirection(),f.toString()}};try{i.getEditOperations(e.model,c)}catch(d){return fn(d),{operations:[],hadTrackedEditOperation:!1}}return{operations:r,hadTrackedEditOperation:a}}static _getLoserCursorMap(e){e=e.slice(0),e.sort((i,r)=>-K.compareRangesUsingEnds(i.range,r.range));const t={};for(let i=1;io.identifier.major?s=r.identifier.major:s=o.identifier.major,t[s.toString()]=!0;for(let a=0;a0&&i--}}return t}}class bIt{constructor(e,t,i){this.text=e,this.startSelection=t,this.endSelection=i}}class oD{static _capture(e,t){const i=[];for(const r of t){if(r.startLineNumber!==r.endLineNumber)return null;i.push(new bIt(e.getLineContent(r.startLineNumber),r.startColumn-1,r.endColumn-1))}return i}constructor(e,t){this._original=oD._capture(e,t)}deduceOutcome(e,t){if(!this._original)return null;const i=oD._capture(e,t);if(!i||this._original.length!==i.length)return null;const r=[];for(let o=0,s=this._original.length;oq_,tokenizeEncoded:(n,e,t)=>B6(0,t)};async function CIt(n,e,t){if(!t)return Tve(e,n.languageIdCodec,Zve);const i=await mo.getOrCreate(t);return Tve(e,n.languageIdCodec,i||Zve)}function vIt(n,e,t,i,r,o,s){let a="
",l=i,u=0,c=!0;for(let d=0,h=e.getCount();d0;)s&&c?(m+=" ",c=!1):(m+=" ",c=!0),b--;break}case 60:m+="<",c=!1;break;case 62:m+=">",c=!1;break;case 38:m+="&",c=!1;break;case 0:m+="�",c=!1;break;case 65279:case 8232:case 8233:case 133:m+="�",c=!1;break;case 13:m+="​",c=!1;break;case 32:s&&c?(m+=" ",c=!1):(m+=" ",c=!0);break;default:m+=String.fromCharCode(f),c=!1}}if(a+=`${m}`,g>r||l>=r)break}return a+="
",a}function Tve(n,e,t){let i='
';const r=Zg(n);let o=t.getInitialState();for(let s=0,a=r.length;s0&&(i+="
");const u=t.tokenizeEncoded(l,!0,o);ns.convertToEndOffset(u.tokens,l.length);const d=new ns(u.tokens,l,e).inflate();let h=0;for(let g=0,m=d.getCount();g${c5(l.substring(h,b))}`,h=b}o=u.endState}return i+="
",i}class yIt{constructor(){this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[]}insert(e){this._hasPending=!0,this._inserts.push(e)}change(e){this._hasPending=!0,this._changes.push(e)}remove(e){this._hasPending=!0,this._removes.push(e)}mustCommit(){return this._hasPending}commit(e){if(!this._hasPending)return;const t=this._inserts,i=this._changes,r=this._removes;this._hasPending=!1,this._inserts=[],this._changes=[],this._removes=[],e._commitPendingChanges(t,i,r)}}class IIt{constructor(e,t,i,r,o){this.id=e,this.afterLineNumber=t,this.ordinal=i,this.height=r,this.minWidth=o,this.prefixSum=0}}let Eve=class oee{constructor(e,t,i,r){this._instanceId=xbe(++oee.INSTANCE_COUNT),this._pendingChanges=new yIt,this._lastWhitespaceId=0,this._arr=[],this._prefixSumValidIndex=-1,this._minWidth=-1,this._lineCount=e,this._lineHeight=t,this._paddingTop=i,this._paddingBottom=r}static findInsertionIndex(e,t,i){let r=0,o=e.length;for(;r>>1;t===e[s].afterLineNumber?i{t=!0,r=r|0,o=o|0,s=s|0,a=a|0;const l=this._instanceId+ ++this._lastWhitespaceId;return this._pendingChanges.insert(new IIt(l,r,o,s,a)),l},changeOneWhitespace:(r,o,s)=>{t=!0,o=o|0,s=s|0,this._pendingChanges.change({id:r,newAfterLineNumber:o,newHeight:s})},removeWhitespace:r=>{t=!0,this._pendingChanges.remove({id:r})}})}finally{this._pendingChanges.commit(this)}return t}_commitPendingChanges(e,t,i){if((e.length>0||i.length>0)&&(this._minWidth=-1),e.length+t.length+i.length<=1){for(const l of e)this._insertWhitespace(l);for(const l of t)this._changeOneWhitespace(l.id,l.newAfterLineNumber,l.newHeight);for(const l of i){const u=this._findWhitespaceIndex(l.id);u!==-1&&this._removeWhitespace(u)}return}const r=new Set;for(const l of i)r.add(l.id);const o=new Map;for(const l of t)o.set(l.id,l);const s=l=>{const u=[];for(const c of l)if(!r.has(c.id)){if(o.has(c.id)){const d=o.get(c.id);c.afterLineNumber=d.newAfterLineNumber,c.height=d.newHeight}u.push(c)}return u},a=s(this._arr).concat(s(e));a.sort((l,u)=>l.afterLineNumber===u.afterLineNumber?l.ordinal-u.ordinal:l.afterLineNumber-u.afterLineNumber),this._arr=a,this._prefixSumValidIndex=-1}_checkPendingChanges(){this._pendingChanges.mustCommit()&&this._pendingChanges.commit(this)}_insertWhitespace(e){const t=oee.findInsertionIndex(this._arr,e.afterLineNumber,e.ordinal);this._arr.splice(t,0,e),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,t-1)}_findWhitespaceIndex(e){const t=this._arr;for(let i=0,r=t.length;it&&(this._arr[i].afterLineNumber-=t-e+1)}}onLinesInserted(e,t){this._checkPendingChanges(),e=e|0,t=t|0,this._lineCount+=t-e+1;for(let i=0,r=this._arr.length;i=t.length||t[a+1].afterLineNumber>=e)return a;i=a+1|0}else r=a-1|0}return-1}_findFirstWhitespaceAfterLineNumber(e){e=e|0;const i=this._findLastWhitespaceBeforeLineNumber(e)+1;return i1?i=this._lineHeight*(e-1):i=0;const r=this.getWhitespaceAccumulatedHeightBeforeLineNumber(e-(t?1:0));return i+r+this._paddingTop}getVerticalOffsetAfterLineNumber(e,t=!1){this._checkPendingChanges(),e=e|0;const i=this._lineHeight*e,r=this.getWhitespaceAccumulatedHeightBeforeLineNumber(e+(t?1:0));return i+r+this._paddingTop}getWhitespaceMinWidth(){if(this._checkPendingChanges(),this._minWidth===-1){let e=0;for(let t=0,i=this._arr.length;tt}isInTopPadding(e){return this._paddingTop===0?!1:(this._checkPendingChanges(),e=t-this._paddingBottom}getLineNumberAtOrAfterVerticalOffset(e){if(this._checkPendingChanges(),e=e|0,e<0)return 1;const t=this._lineCount|0,i=this._lineHeight;let r=1,o=t;for(;r=a+i)r=s+1;else{if(e>=a)return s;o=s}}return r>t?t:r}getLinesViewportData(e,t){this._checkPendingChanges(),e=e|0,t=t|0;const i=this._lineHeight,r=this.getLineNumberAtOrAfterVerticalOffset(e)|0,o=this.getVerticalOffsetForLineNumber(r)|0;let s=this._lineCount|0,a=this.getFirstWhitespaceIndexAfterLineNumber(r)|0;const l=this.getWhitespacesCount()|0;let u,c;a===-1?(a=l,c=s+1,u=0):(c=this.getAfterLineNumberForWhitespaceIndex(a)|0,u=this.getHeightForWhitespaceIndex(a)|0);let d=o,h=d;const g=5e5;let m=0;o>=g&&(m=Math.floor(o/g)*g,m=Math.floor(m/i)*i,h-=m);const f=[],b=e+(t-e)/2;let C=-1;for(let F=r;F<=s;F++){if(C===-1){const L=d,D=d+i;(L<=b&&bb)&&(C=F)}for(d+=i,f[F-r]=h,h+=i;c===F;)h+=u,d+=u,a++,a>=l?c=s+1:(c=this.getAfterLineNumberForWhitespaceIndex(a)|0,u=this.getHeightForWhitespaceIndex(a)|0);if(d>=t){s=F;break}}C===-1&&(C=s);const v=this.getVerticalOffsetForLineNumber(s)|0;let w=r,S=s;return wt&&S--,{bigNumbersDelta:m,startLineNumber:r,endLineNumber:s,relativeVerticalOffset:f,centeredLineNumber:C,completelyVisibleStartLineNumber:w,completelyVisibleEndLineNumber:S}}getVerticalOffsetForWhitespaceIndex(e){this._checkPendingChanges(),e=e|0;const t=this.getAfterLineNumberForWhitespaceIndex(e);let i;t>=1?i=this._lineHeight*t:i=0;let r;return e>0?r=this.getWhitespacesAccumulatedHeight(e-1):r=0,i+r+this._paddingTop}getWhitespaceIndexAtOrAfterVerticallOffset(e){this._checkPendingChanges(),e=e|0;let t=0,i=this.getWhitespacesCount()-1;if(i<0)return-1;const r=this.getVerticalOffsetForWhitespaceIndex(i),o=this.getHeightForWhitespaceIndex(i);if(e>=r+o)return-1;for(;t=a+l)t=s+1;else{if(e>=a)return s;i=s}}return t}getWhitespaceAtVerticalOffset(e){this._checkPendingChanges(),e=e|0;const t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0||t>=this.getWhitespacesCount())return null;const i=this.getVerticalOffsetForWhitespaceIndex(t);if(i>e)return null;const r=this.getHeightForWhitespaceIndex(t),o=this.getIdForWhitespaceIndex(t),s=this.getAfterLineNumberForWhitespaceIndex(t);return{id:o,afterLineNumber:s,verticalOffset:i,height:r}}getWhitespaceViewportData(e,t){this._checkPendingChanges(),e=e|0,t=t|0;const i=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),r=this.getWhitespacesCount()-1;if(i<0)return[];const o=[];for(let s=i;s<=r;s++){const a=this.getVerticalOffsetForWhitespaceIndex(s),l=this.getHeightForWhitespaceIndex(s);if(a>=t)break;o.push({id:this.getIdForWhitespaceIndex(s),afterLineNumber:this.getAfterLineNumberForWhitespaceIndex(s),verticalOffset:a,height:l})}return o}getWhitespaces(){return this._checkPendingChanges(),this._arr.slice(0)}getWhitespacesCount(){return this._checkPendingChanges(),this._arr.length}getIdForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].id}getAfterLineNumberForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].afterLineNumber}getHeightForWhitespaceIndex(e){return this._checkPendingChanges(),e=e|0,this._arr[e].height}};Eve.INSTANCE_COUNT=0;const wIt=125;class sD{constructor(e,t,i,r){e=e|0,t=t|0,i=i|0,r=r|0,e<0&&(e=0),t<0&&(t=0),i<0&&(i=0),r<0&&(r=0),this.width=e,this.contentWidth=t,this.scrollWidth=Math.max(e,t),this.height=i,this.contentHeight=r,this.scrollHeight=Math.max(i,r)}equals(e){return this.width===e.width&&this.contentWidth===e.contentWidth&&this.height===e.height&&this.contentHeight===e.contentHeight}}class SIt extends De{constructor(e,t){super(),this._onDidContentSizeChange=this._register(new be),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._dimensions=new sD(0,0,0,0),this._scrollable=this._register(new R2({forceIntegerValues:!0,smoothScrollDuration:e,scheduleAtNextAnimationFrame:t})),this.onDidScroll=this._scrollable.onScroll}getScrollable(){return this._scrollable}setSmoothScrollDuration(e){this._scrollable.setSmoothScrollDuration(e)}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}getScrollDimensions(){return this._dimensions}setScrollDimensions(e){if(this._dimensions.equals(e))return;const t=this._dimensions;this._dimensions=e,this._scrollable.setScrollDimensions({width:e.width,scrollWidth:e.scrollWidth,height:e.height,scrollHeight:e.scrollHeight},!0);const i=t.contentWidth!==e.contentWidth,r=t.contentHeight!==e.contentHeight;(i||r)&&this._onDidContentSizeChange.fire(new n7(t.contentWidth,t.contentHeight,e.contentWidth,e.contentHeight))}getFutureScrollPosition(){return this._scrollable.getFutureScrollPosition()}getCurrentScrollPosition(){return this._scrollable.getCurrentScrollPosition()}setScrollPositionNow(e){this._scrollable.setScrollPositionNow(e)}setScrollPositionSmooth(e){this._scrollable.setScrollPositionSmooth(e)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}}class xIt extends De{constructor(e,t,i){super(),this._configuration=e;const r=this._configuration.options,o=r.get(144),s=r.get(84);this._linesLayout=new Eve(t,r.get(67),s.top,s.bottom),this._maxLineWidth=0,this._overlayWidgetsMinWidth=0,this._scrollable=this._register(new SIt(0,i)),this._configureSmoothScrollDuration(),this._scrollable.setScrollDimensions(new sD(o.contentWidth,0,o.height,0)),this.onDidScroll=this._scrollable.onDidScroll,this.onDidContentSizeChange=this._scrollable.onDidContentSizeChange,this._updateHeight()}dispose(){super.dispose()}getScrollable(){return this._scrollable.getScrollable()}onHeightMaybeChanged(){this._updateHeight()}_configureSmoothScrollDuration(){this._scrollable.setSmoothScrollDuration(this._configuration.options.get(114)?wIt:0)}onConfigurationChanged(e){const t=this._configuration.options;if(e.hasChanged(67)&&this._linesLayout.setLineHeight(t.get(67)),e.hasChanged(84)){const i=t.get(84);this._linesLayout.setPadding(i.top,i.bottom)}if(e.hasChanged(144)){const i=t.get(144),r=i.contentWidth,o=i.height,s=this._scrollable.getScrollDimensions(),a=s.contentWidth;this._scrollable.setScrollDimensions(new sD(r,s.contentWidth,o,this._getContentHeight(r,o,a)))}else this._updateHeight();e.hasChanged(114)&&this._configureSmoothScrollDuration()}onFlushed(e){this._linesLayout.onFlushed(e)}onLinesDeleted(e,t){this._linesLayout.onLinesDeleted(e,t)}onLinesInserted(e,t){this._linesLayout.onLinesInserted(e,t)}_getHorizontalScrollbarHeight(e,t){const r=this._configuration.options.get(103);return r.horizontal===2||e>=t?0:r.horizontalScrollbarSize}_getContentHeight(e,t,i){const r=this._configuration.options;let o=this._linesLayout.getLinesTotalHeight();return r.get(105)?o+=Math.max(0,t-r.get(67)-r.get(84).bottom):r.get(103).ignoreHorizontalScrollbarInContentHeight||(o+=this._getHorizontalScrollbarHeight(e,i)),o}_updateHeight(){const e=this._scrollable.getScrollDimensions(),t=e.width,i=e.height,r=e.contentWidth;this._scrollable.setScrollDimensions(new sD(t,e.contentWidth,i,this._getContentHeight(t,i,r)))}getCurrentViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getCurrentScrollPosition();return new ICe(t.scrollTop,t.scrollLeft,e.width,e.height)}getFutureViewport(){const e=this._scrollable.getScrollDimensions(),t=this._scrollable.getFutureScrollPosition();return new ICe(t.scrollTop,t.scrollLeft,e.width,e.height)}_computeContentWidth(){const e=this._configuration.options,t=this._maxLineWidth,i=e.get(145),r=e.get(50),o=e.get(144);if(i.isViewportWrapping){const s=e.get(73);return t>o.contentWidth+r.typicalHalfwidthCharacterWidth&&s.enabled&&s.side==="right"?t+o.verticalScrollbarWidth:t}else{const s=e.get(104)*r.typicalHalfwidthCharacterWidth,a=this._linesLayout.getWhitespaceMinWidth();return Math.max(t+s+o.verticalScrollbarWidth,a,this._overlayWidgetsMinWidth)}}setMaxLineWidth(e){this._maxLineWidth=e,this._updateContentWidth()}setOverlayWidgetsMinWidth(e){this._overlayWidgetsMinWidth=e,this._updateContentWidth()}_updateContentWidth(){const e=this._scrollable.getScrollDimensions();this._scrollable.setScrollDimensions(new sD(e.width,this._computeContentWidth(),e.height,e.contentHeight)),this._updateHeight()}saveState(){const e=this._scrollable.getFutureScrollPosition(),t=e.scrollTop,i=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t),r=this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(i);return{scrollTop:t,scrollTopWithoutViewZones:t-r,scrollLeft:e.scrollLeft}}changeWhitespace(e){const t=this._linesLayout.changeWhitespace(e);return t&&this.onHeightMaybeChanged(),t}getVerticalOffsetForLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetForLineNumber(e,t)}getVerticalOffsetAfterLineNumber(e,t=!1){return this._linesLayout.getVerticalOffsetAfterLineNumber(e,t)}isAfterLines(e){return this._linesLayout.isAfterLines(e)}isInTopPadding(e){return this._linesLayout.isInTopPadding(e)}isInBottomPadding(e){return this._linesLayout.isInBottomPadding(e)}getLineNumberAtVerticalOffset(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)}getWhitespaceAtVerticalOffset(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)}getLinesViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)}getLinesViewportDataAtScrollTop(e){const t=this._scrollable.getScrollDimensions();return e+t.height>t.scrollHeight&&(e=t.scrollHeight-t.height),e<0&&(e=0),this._linesLayout.getLinesViewportData(e,e+t.height)}getWhitespaceViewportData(){const e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)}getWhitespaces(){return this._linesLayout.getWhitespaces()}getContentWidth(){return this._scrollable.getScrollDimensions().contentWidth}getScrollWidth(){return this._scrollable.getScrollDimensions().scrollWidth}getContentHeight(){return this._scrollable.getScrollDimensions().contentHeight}getScrollHeight(){return this._scrollable.getScrollDimensions().scrollHeight}getCurrentScrollLeft(){return this._scrollable.getCurrentScrollPosition().scrollLeft}getCurrentScrollTop(){return this._scrollable.getCurrentScrollPosition().scrollTop}validateScrollPosition(e){return this._scrollable.validateScrollPosition(e)}setScrollPosition(e,t){t===1?this._scrollable.setScrollPositionNow(e):this._scrollable.setScrollPositionSmooth(e)}hasPendingScrollAnimation(){return this._scrollable.hasPendingScrollAnimation()}deltaScrollNow(e,t){const i=this._scrollable.getCurrentScrollPosition();this._scrollable.setScrollPositionNow({scrollLeft:i.scrollLeft+e,scrollTop:i.scrollTop+t})}}class LIt{constructor(e,t,i,r,o){this.editorId=e,this.model=t,this.configuration=i,this._linesCollection=r,this._coordinatesConverter=o,this._decorationsCache=Object.create(null),this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}_clearCachedModelDecorationsResolver(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null}dispose(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}reset(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onModelDecorationsChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}onLineMappingChanged(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}_getOrCreateViewModelDecoration(e){const t=e.id;let i=this._decorationsCache[t];if(!i){const r=e.range,o=e.options;let s;if(o.isWholeLine){const a=this._coordinatesConverter.convertModelPositionToViewPosition(new ve(r.startLineNumber,1),0,!1,!0),l=this._coordinatesConverter.convertModelPositionToViewPosition(new ve(r.endLineNumber,this.model.getLineMaxColumn(r.endLineNumber)),1);s=new K(a.lineNumber,a.column,l.lineNumber,l.column)}else s=this._coordinatesConverter.convertModelRangeToViewRange(r,1);i=new wCe(s,o),this._decorationsCache[t]=i}return i}getMinimapDecorationsInRange(e){return this._getDecorationsInRange(e,!0,!1).decorations}getDecorationsViewportData(e){let t=this._cachedModelDecorationsResolver!==null;return t=t&&e.equalsRange(this._cachedModelDecorationsResolverViewRange),t||(this._cachedModelDecorationsResolver=this._getDecorationsInRange(e,!1,!1),this._cachedModelDecorationsResolverViewRange=e),this._cachedModelDecorationsResolver}getInlineDecorationsOnLine(e,t=!1,i=!1){const r=new K(e,this._linesCollection.getViewLineMinColumn(e),e,this._linesCollection.getViewLineMaxColumn(e));return this._getDecorationsInRange(r,t,i).inlineDecorations[0]}_getDecorationsInRange(e,t,i){const r=this._linesCollection.getDecorationsInRange(e,this.editorId,pT(this.configuration.options),t,i),o=e.startLineNumber,s=e.endLineNumber,a=[];let l=0;const u=[];for(let c=o;c<=s;c++)u[c-o]=[];for(let c=0,d=r.length;ct===1)}function a7(n,e){return Wve(n,e.range,t=>t===2)}function Wve(n,e,t){for(let i=e.startLineNumber;i<=e.endLineNumber;i++){const r=n.tokenization.getLineTokens(i),o=i===e.startLineNumber,s=i===e.endLineNumber;let a=o?r.findTokenIndexAtOffset(e.startColumn-1):0;for(;ae.endColumn-1);){if(!t(r.getStandardTokenType(a)))return!1;a++}}return!0}function l7(n,e){return n===null?e?bE.INSTANCE:CE.INSTANCE:new FIt(n,e)}class FIt{constructor(e,t){this._projectionData=e,this._isVisible=t}isVisible(){return this._isVisible}setVisible(e){return this._isVisible=e,this}getProjectionData(){return this._projectionData}getViewLineCount(){return this._isVisible?this._projectionData.getOutputLineCount():0}getViewLineContent(e,t,i){this._assertVisible();const r=i>0?this._projectionData.breakOffsets[i-1]:0,o=this._projectionData.breakOffsets[i];let s;if(this._projectionData.injectionOffsets!==null){const a=this._projectionData.injectionOffsets.map((u,c)=>new Ah(0,0,u+1,this._projectionData.injectionOptions[c],0));s=Ah.applyInjectedText(e.getLineContent(t),a).substring(r,o)}else s=e.getValueInRange({startLineNumber:t,startColumn:r+1,endLineNumber:t,endColumn:o+1});return i>0&&(s=Rve(this._projectionData.wrappedTextIndentLength)+s),s}getViewLineLength(e,t,i){return this._assertVisible(),this._projectionData.getLineLength(i)}getViewLineMinColumn(e,t,i){return this._assertVisible(),this._projectionData.getMinOutputOffset(i)+1}getViewLineMaxColumn(e,t,i){return this._assertVisible(),this._projectionData.getMaxOutputOffset(i)+1}getViewLineData(e,t,i){const r=new Array;return this.getViewLinesData(e,t,i,1,0,[!0],r),r[0]}getViewLinesData(e,t,i,r,o,s,a){this._assertVisible();const l=this._projectionData,u=l.injectionOffsets,c=l.injectionOptions;let d=null;if(u){d=[];let g=0,m=0;for(let f=0;f0?l.breakOffsets[f-1]:0,v=l.breakOffsets[f];for(;mv)break;if(C0?l.wrappedTextIndentLength:0,A=D+Math.max(S-C,0),M=D+Math.min(F-C,v-C);A!==M&&b.push(new ECt(A,M,L.inlineClassName,L.inlineClassNameAffectsLetterSpacing))}}if(F<=v)g+=w,m++;else break}}}let h;u?h=e.tokenization.getLineTokens(t).withInserted(u.map((g,m)=>({offset:g,text:c[m].content,tokenMetadata:ns.defaultTokenMetadata}))):h=e.tokenization.getLineTokens(t);for(let g=i;g0?r.wrappedTextIndentLength:0,s=i>0?r.breakOffsets[i-1]:0,a=r.breakOffsets[i],l=e.sliceAndInflate(s,a,o);let u=l.getLineContent();i>0&&(u=Rve(r.wrappedTextIndentLength)+u);const c=this._projectionData.getMinOutputOffset(i)+1,d=u.length+1,h=i+1=u7.length)for(let e=1;e<=n;e++)u7[e]=_It(e);return u7[n]}function _It(n){return new Array(n+1).join(" ")}class DIt{constructor(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(e,t){e=a2(e);const i=this.values,r=this.prefixSum,o=t.length;return o===0?!1:(this.values=new Uint32Array(i.length+o),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e),e+o),this.values.set(t,e),e-1=0&&this.prefixSum.set(r.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}setValue(e,t){return e=a2(e),t=a2(t),this.values[e]===t?!1:(this.values[e]=t,e-1=i.length)return!1;const o=i.length-e;return t>=o&&(t=o),t===0?!1:(this.values=new Uint32Array(i.length-t),this.values.set(i.subarray(0,e),0),this.values.set(i.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1=0&&this.prefixSum.set(r.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return this.values.length===0?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(e){return e<0?0:(e=a2(e),this._getPrefixSum(e))}_getPrefixSum(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];let t=this.prefixSumValidIndex[0]+1;t===0&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(let i=t;i<=e;i++)this.prefixSum[i]=this.prefixSum[i-1]+this.values[i];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]}getIndexOf(e){e=Math.floor(e),this.getTotalSum();let t=0,i=this.values.length-1,r=0,o=0,s=0;for(;t<=i;)if(r=t+(i-t)/2|0,o=this.prefixSum[r],s=o-this.values[r],e=o)t=r+1;else break;return new Gve(r,e-s)}}class AIt{constructor(e){this._values=e,this._isValid=!1,this._validEndIndex=-1,this._prefixSum=[],this._indexBySum=[]}getTotalSum(){return this._ensureValid(),this._indexBySum.length}getPrefixSum(e){return this._ensureValid(),e===0?0:this._prefixSum[e-1]}getIndexOf(e){this._ensureValid();const t=this._indexBySum[e],i=t>0?this._prefixSum[t-1]:0;return new Gve(t,e-i)}removeValues(e,t){this._values.splice(e,t),this._invalidate(e)}insertValues(e,t){this._values=eT(this._values,e,t),this._invalidate(e)}_invalidate(e){this._isValid=!1,this._validEndIndex=Math.min(this._validEndIndex,e-1)}_ensureValid(){if(!this._isValid){for(let e=this._validEndIndex+1,t=this._values.length;e0?this._prefixSum[e-1]:0;this._prefixSum[e]=r+i;for(let o=0;oC.lineNumber===f+1);s.addRequest(i[f],b,t?t[f]:null)}const l=s.finalize(),u=[],c=this.hiddenAreasDecorationIds.map(f=>this.model.getDecorationRange(f)).sort(K.compareRangesUsingStarts);let d=1,h=0,g=-1,m=g+1=d&&b<=h,v=l7(l[f],!C);u[f]=v.getViewLineCount(),this.modelLineProjections[f]=v}this._validModelVersionId=this.model.getVersionId(),this.projectedModelLineLineCounts=new AIt(u)}getHiddenAreas(){return this.hiddenAreasDecorationIds.map(e=>this.model.getDecorationRange(e))}setHiddenAreas(e){const t=e.map(h=>this.model.validateRange(h)),i=kIt(t),r=this.hiddenAreasDecorationIds.map(h=>this.model.getDecorationRange(h)).sort(K.compareRangesUsingStarts);if(i.length===r.length){let h=!1;for(let g=0;g({range:h,options:In.EMPTY}));this.hiddenAreasDecorationIds=this.model.deltaDecorations(this.hiddenAreasDecorationIds,o);const s=i;let a=1,l=0,u=-1,c=u+1=a&&g<=l?this.modelLineProjections[h].isVisible()&&(this.modelLineProjections[h]=this.modelLineProjections[h].setVisible(!1),m=!0):(d=!0,this.modelLineProjections[h].isVisible()||(this.modelLineProjections[h]=this.modelLineProjections[h].setVisible(!0),m=!0)),m){const f=this.modelLineProjections[h].getViewLineCount();this.projectedModelLineLineCounts.setValue(h,f)}}return d||this.setHiddenAreas([]),!0}modelPositionIsVisible(e,t){return e<1||e>this.modelLineProjections.length?!1:this.modelLineProjections[e-1].isVisible()}getModelLineViewLineCount(e){return e<1||e>this.modelLineProjections.length?1:this.modelLineProjections[e-1].getViewLineCount()}setTabSize(e){return this.tabSize===e?!1:(this.tabSize=e,this._constructLines(!1,null),!0)}setWrappingSettings(e,t,i,r,o){const s=this.fontInfo.equals(e),a=this.wrappingStrategy===t,l=this.wrappingColumn===i,u=this.wrappingIndent===r,c=this.wordBreak===o;if(s&&a&&l&&u&&c)return!1;const d=s&&a&&!l&&u&&c;this.fontInfo=e,this.wrappingStrategy=t,this.wrappingColumn=i,this.wrappingIndent=r,this.wordBreak=o;let h=null;if(d){h=[];for(let g=0,m=this.modelLineProjections.length;g2&&!this.modelLineProjections[t-2].isVisible(),s=t===1?1:this.projectedModelLineLineCounts.getPrefixSum(t-1)+1;let a=0;const l=[],u=[];for(let c=0,d=r.length;cl?(c=this.projectedModelLineLineCounts.getPrefixSum(t-1)+1,d=c+l-1,m=d+1,f=m+(o-l)-1,u=!0):ot?t:e|0}getActiveIndentGuide(e,t,i){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),i=this._toValidViewLineNumber(i);const r=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),o=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),s=this.convertViewPositionToModelPosition(i,this.getViewLineMinColumn(i)),a=this.model.guides.getActiveIndentGuide(r.lineNumber,o.lineNumber,s.lineNumber),l=this.convertModelPositionToViewPosition(a.startLineNumber,1),u=this.convertModelPositionToViewPosition(a.endLineNumber,this.model.getLineMaxColumn(a.endLineNumber));return{startLineNumber:l.lineNumber,endLineNumber:u.lineNumber,indent:a.indent}}getViewLineInfo(e){e=this._toValidViewLineNumber(e);const t=this.projectedModelLineLineCounts.getIndexOf(e-1),i=t.index,r=t.remainder;return new Vve(i+1,r)}getMinColumnOfViewLine(e){return this.modelLineProjections[e.modelLineNumber-1].getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx)}getMaxColumnOfViewLine(e){return this.modelLineProjections[e.modelLineNumber-1].getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx)}getModelStartPositionOfViewLine(e){const t=this.modelLineProjections[e.modelLineNumber-1],i=t.getViewLineMinColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),r=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,i);return new ve(e.modelLineNumber,r)}getModelEndPositionOfViewLine(e){const t=this.modelLineProjections[e.modelLineNumber-1],i=t.getViewLineMaxColumn(this.model,e.modelLineNumber,e.modelLineWrappedLineIdx),r=t.getModelColumnOfViewPosition(e.modelLineWrappedLineIdx,i);return new ve(e.modelLineNumber,r)}getViewLineInfosGroupedByModelRanges(e,t){const i=this.getViewLineInfo(e),r=this.getViewLineInfo(t),o=new Array;let s=this.getModelStartPositionOfViewLine(i),a=new Array;for(let l=i.modelLineNumber;l<=r.modelLineNumber;l++){const u=this.modelLineProjections[l-1];if(u.isVisible()){const c=l===i.modelLineNumber?i.modelLineWrappedLineIdx:0,d=l===r.modelLineNumber?r.modelLineWrappedLineIdx+1:u.getViewLineCount();for(let h=c;h{if(g.forWrappedLinesAfterColumn!==-1&&this.modelLineProjections[c.modelLineNumber-1].getViewPositionOfModelPosition(0,g.forWrappedLinesAfterColumn).lineNumber>=c.modelLineWrappedLineIdx||g.forWrappedLinesBeforeOrAtColumn!==-1&&this.modelLineProjections[c.modelLineNumber-1].getViewPositionOfModelPosition(0,g.forWrappedLinesBeforeOrAtColumn).lineNumberc.modelLineWrappedLineIdx)return}const f=this.convertModelPositionToViewPosition(c.modelLineNumber,g.horizontalLine.endColumn),b=this.modelLineProjections[c.modelLineNumber-1].getViewPositionOfModelPosition(0,g.horizontalLine.endColumn);return b.lineNumber===c.modelLineWrappedLineIdx?new QC(g.visibleColumn,m,g.className,new N_(g.horizontalLine.top,f.column),-1,-1):b.lineNumber!!g))}}return s}getViewLinesIndentGuides(e,t){e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);const i=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),r=this.convertViewPositionToModelPosition(t,this.getViewLineMaxColumn(t));let o=[];const s=[],a=[],l=i.lineNumber-1,u=r.lineNumber-1;let c=null;for(let m=l;m<=u;m++){const f=this.modelLineProjections[m];if(f.isVisible()){const b=f.getViewLineNumberOfModelPosition(0,m===l?i.column:1),C=f.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(m+1)),v=C-b+1;let w=0;v>1&&f.getViewLineMinColumn(this.model,m+1,C)===1&&(w=b===0?1:2),s.push(v),a.push(w),c===null&&(c=new ve(m+1,0))}else c!==null&&(o=o.concat(this.model.guides.getLinesIndentGuides(c.lineNumber,m)),c=null)}c!==null&&(o=o.concat(this.model.guides.getLinesIndentGuides(c.lineNumber,r.lineNumber)),c=null);const d=t-e+1,h=new Array(d);let g=0;for(let m=0,f=o.length;mt&&(m=!0,g=t-o+1),d.getViewLinesData(this.model,u+1,h,g,o-e,i,l),o+=g,m)break}return l}validateViewPosition(e,t,i){e=this._toValidViewLineNumber(e);const r=this.projectedModelLineLineCounts.getIndexOf(e-1),o=r.index,s=r.remainder,a=this.modelLineProjections[o],l=a.getViewLineMinColumn(this.model,o+1,s),u=a.getViewLineMaxColumn(this.model,o+1,s);tu&&(t=u);const c=a.getModelColumnOfViewPosition(s,t);return this.model.validatePosition(new ve(o+1,c)).equals(i)?new ve(e,t):this.convertModelPositionToViewPosition(i.lineNumber,i.column)}validateViewRange(e,t){const i=this.validateViewPosition(e.startLineNumber,e.startColumn,t.getStartPosition()),r=this.validateViewPosition(e.endLineNumber,e.endColumn,t.getEndPosition());return new K(i.lineNumber,i.column,r.lineNumber,r.column)}convertViewPositionToModelPosition(e,t){const i=this.getViewLineInfo(e),r=this.modelLineProjections[i.modelLineNumber-1].getModelColumnOfViewPosition(i.modelLineWrappedLineIdx,t);return this.model.validatePosition(new ve(i.modelLineNumber,r))}convertViewRangeToModelRange(e){const t=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),i=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);return new K(t.lineNumber,t.column,i.lineNumber,i.column)}convertModelPositionToViewPosition(e,t,i=2,r=!1,o=!1){const s=this.model.validatePosition(new ve(e,t)),a=s.lineNumber,l=s.column;let u=a-1,c=!1;if(o)for(;u0&&!this.modelLineProjections[u].isVisible();)u--,c=!0;if(u===0&&!this.modelLineProjections[u].isVisible())return new ve(r?0:1,1);const d=1+this.projectedModelLineLineCounts.getPrefixSum(u);let h;return c?o?h=this.modelLineProjections[u].getViewPositionOfModelPosition(d,1,i):h=this.modelLineProjections[u].getViewPositionOfModelPosition(d,this.model.getLineMaxColumn(u+1),i):h=this.modelLineProjections[a-1].getViewPositionOfModelPosition(d,l,i),h}convertModelRangeToViewRange(e,t=0){if(e.isEmpty()){const i=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,t);return K.fromPositions(i)}else{const i=this.convertModelPositionToViewPosition(e.startLineNumber,e.startColumn,1),r=this.convertModelPositionToViewPosition(e.endLineNumber,e.endColumn,0);return new K(i.lineNumber,i.column,r.lineNumber,r.column)}}getViewLineNumberOfModelPosition(e,t){let i=e-1;if(this.modelLineProjections[i].isVisible()){const o=1+this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections[i].getViewLineNumberOfModelPosition(o,t)}for(;i>0&&!this.modelLineProjections[i].isVisible();)i--;if(i===0&&!this.modelLineProjections[i].isVisible())return 1;const r=1+this.projectedModelLineLineCounts.getPrefixSum(i);return this.modelLineProjections[i].getViewLineNumberOfModelPosition(r,this.model.getLineMaxColumn(i+1))}getDecorationsInRange(e,t,i,r,o){const s=this.convertViewPositionToModelPosition(e.startLineNumber,e.startColumn),a=this.convertViewPositionToModelPosition(e.endLineNumber,e.endColumn);if(a.lineNumber-s.lineNumber<=e.endLineNumber-e.startLineNumber)return this.model.getDecorationsInRange(new K(s.lineNumber,1,a.lineNumber,a.column),t,i,r,o);let l=[];const u=s.lineNumber-1,c=a.lineNumber-1;let d=null;for(let f=u;f<=c;f++)if(this.modelLineProjections[f].isVisible())d===null&&(d=new ve(f+1,f===u?s.column:1));else if(d!==null){const C=this.model.getLineMaxColumn(f);l=l.concat(this.model.getDecorationsInRange(new K(d.lineNumber,d.column,f,C),t,i,r)),d=null}d!==null&&(l=l.concat(this.model.getDecorationsInRange(new K(d.lineNumber,d.column,a.lineNumber,a.column),t,i,r)),d=null),l.sort((f,b)=>{const C=K.compareRangesUsingStarts(f.range,b.range);return C===0?f.idb.id?1:0:C});const h=[];let g=0,m=null;for(const f of l){const b=f.id;m!==b&&(m=b,h[g++]=f)}return h}getInjectedTextAt(e){const t=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[t.modelLineNumber-1].getInjectedTextAt(t.modelLineWrappedLineIdx,e.column)}normalizePosition(e,t){const i=this.getViewLineInfo(e.lineNumber);return this.modelLineProjections[i.modelLineNumber-1].normalizePosition(i.modelLineWrappedLineIdx,e,t)}getLineIndentColumn(e){const t=this.getViewLineInfo(e);return t.modelLineWrappedLineIdx===0?this.model.getLineIndentColumn(t.modelLineNumber):0}}function kIt(n){if(n.length===0)return[];const e=n.slice();e.sort(K.compareRangesUsingStarts);const t=[];let i=e[0].startLineNumber,r=e[0].endLineNumber;for(let o=1,s=e.length;or+1?(t.push(new K(i,1,r,1)),i=a.startLineNumber,r=a.endLineNumber):a.endLineNumber>r&&(r=a.endLineNumber)}return t.push(new K(i,1,r,1)),t}class Vve{constructor(e,t){this.modelLineNumber=e,this.modelLineWrappedLineIdx=t}}class Xve{constructor(e,t){this.modelRange=e,this.viewLines=t}}class MIt{constructor(e){this._lines=e}convertViewPositionToModelPosition(e){return this._lines.convertViewPositionToModelPosition(e.lineNumber,e.column)}convertViewRangeToModelRange(e){return this._lines.convertViewRangeToModelRange(e)}validateViewPosition(e,t){return this._lines.validateViewPosition(e.lineNumber,e.column,t)}validateViewRange(e,t){return this._lines.validateViewRange(e,t)}convertModelPositionToViewPosition(e,t,i,r){return this._lines.convertModelPositionToViewPosition(e.lineNumber,e.column,t,i,r)}convertModelRangeToViewRange(e,t){return this._lines.convertModelRangeToViewRange(e,t)}modelPositionIsVisible(e){return this._lines.modelPositionIsVisible(e.lineNumber,e.column)}getModelLineViewLineCount(e){return this._lines.getModelLineViewLineCount(e)}getViewLineNumberOfModelPosition(e,t){return this._lines.getViewLineNumberOfModelPosition(e,t)}}class ZIt{constructor(e){this.model=e}dispose(){}createCoordinatesConverter(){return new TIt(this)}getHiddenAreas(){return[]}setHiddenAreas(e){return!1}setTabSize(e){return!1}setWrappingSettings(e,t,i,r){return!1}createLineBreaksComputer(){const e=[];return{addRequest:(t,i,r)=>{e.push(null)},finalize:()=>e}}onModelFlushed(){}onModelLinesDeleted(e,t,i){return new e7(t,i)}onModelLinesInserted(e,t,i,r){return new t7(t,i)}onModelLineChanged(e,t,i){return[!1,new kve(t,1),null,null]}acceptVersionId(e){}getViewLineCount(){return this.model.getLineCount()}getActiveIndentGuide(e,t,i){return{startLineNumber:e,endLineNumber:e,indent:0}}getViewLinesBracketGuides(e,t,i){return new Array(t-e+1).fill([])}getViewLinesIndentGuides(e,t){const i=t-e+1,r=new Array(i);for(let o=0;ot)}getModelLineViewLineCount(e){return 1}getViewLineNumberOfModelPosition(e,t){return e}}const sv=Qg.Right;class EIt{constructor(e){this.persist=0,this._requiredLanes=1,this.lanes=new Uint8Array(Math.ceil((e+1)*sv/8))}reset(e){const t=Math.ceil((e+1)*sv/8);this.lanes.length>>3]|=1<>>3]&1<>>3]&1<this._updateConfigurationViewLineCountNow(),0)),this._hasFocus=!1,this._viewportStart=c7.create(this.model),this.glyphLanes=new EIt(0),this.model.isTooLargeForTokenization())this._lines=new ZIt(this.model);else{const c=this._configuration.options,d=c.get(50),h=c.get(138),g=c.get(145),m=c.get(137),f=c.get(129);this._lines=new NIt(this._editorId,this.model,r,o,d,this.model.getOptions().tabSize,h,g.wrappingColumn,m,f)}this.coordinatesConverter=this._lines.createCoordinatesConverter(),this._cursor=this._register(new fIt(i,this,this.coordinatesConverter,this.cursorConfig)),this.viewLayout=this._register(new xIt(this._configuration,this.getLineCount(),s)),this._register(this.viewLayout.onDidScroll(c=>{c.scrollTopChanged&&this._handleVisibleLinesChanged(),c.scrollTopChanged&&this._viewportStart.invalidate(),this._eventDispatcher.emitSingleViewEvent(new qyt(c)),this._eventDispatcher.emitOutgoingEvent(new r7(c.oldScrollWidth,c.oldScrollLeft,c.oldScrollHeight,c.oldScrollTop,c.scrollWidth,c.scrollLeft,c.scrollHeight,c.scrollTop))})),this._register(this.viewLayout.onDidContentSizeChange(c=>{this._eventDispatcher.emitOutgoingEvent(c)})),this._decorations=new LIt(this._editorId,this.model,this._configuration,this._lines,this.coordinatesConverter),this._registerModelEvents(),this._register(this._configuration.onDidChangeFast(c=>{try{const d=this._eventDispatcher.beginEmitViewEvents();this._onConfigurationChanged(d,c)}finally{this._eventDispatcher.endEmitViewEvents()}})),this._register(k_.getInstance().onDidChange(()=>{this._eventDispatcher.emitSingleViewEvent(new nIt)})),this._register(this._themeService.onDidColorThemeChange(c=>{this._invalidateDecorationsColorCache(),this._eventDispatcher.emitSingleViewEvent(new eIt(c))})),this._updateConfigurationViewLineCountNow()}dispose(){super.dispose(),this._decorations.dispose(),this._lines.dispose(),this._viewportStart.dispose(),this._eventDispatcher.dispose()}createLineBreaksComputer(){return this._lines.createLineBreaksComputer()}addViewEventHandler(e){this._eventDispatcher.addViewEventHandler(e)}removeViewEventHandler(e){this._eventDispatcher.removeViewEventHandler(e)}_updateConfigurationViewLineCountNow(){this._configuration.setViewLineCount(this._lines.getViewLineCount())}getModelVisibleRanges(){const e=this.viewLayout.getLinesViewportData(),t=new K(e.startLineNumber,this.getLineMinColumn(e.startLineNumber),e.endLineNumber,this.getLineMaxColumn(e.endLineNumber));return this._toModelVisibleRanges(t)}visibleLinesStabilized(){const e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!0)}_handleVisibleLinesChanged(){const e=this.getModelVisibleRanges();this._attachedView.setVisibleLines(e,!1)}setHasFocus(e){this._hasFocus=e,this._cursor.setHasFocus(e),this._eventDispatcher.emitSingleViewEvent(new Qyt(e)),this._eventDispatcher.emitOutgoingEvent(new i7(!e,e))}onCompositionStart(){this._eventDispatcher.emitSingleViewEvent(new Uyt)}onCompositionEnd(){this._eventDispatcher.emitSingleViewEvent(new Jyt)}_captureStableViewport(){if(this._viewportStart.isValid&&this.viewLayout.getCurrentScrollTop()>0){const e=new ve(this._viewportStart.viewLineNumber,this.getLineMinColumn(this._viewportStart.viewLineNumber)),t=this.coordinatesConverter.convertViewPositionToModelPosition(e);return new Ove(t,this._viewportStart.startLineDelta)}return new Ove(null,0)}_onConfigurationChanged(e,t){const i=this._captureStableViewport(),r=this._configuration.options,o=r.get(50),s=r.get(138),a=r.get(145),l=r.get(137),u=r.get(129);this._lines.setWrappingSettings(o,s,a.wrappingColumn,l,u)&&(e.emitViewEvent(new gE),e.emitViewEvent(new mE),e.emitViewEvent(new ov(null)),this._cursor.onLineMappingChanged(e),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this._updateConfigurationViewLineCount.schedule()),t.hasChanged(91)&&(this._decorations.reset(),e.emitViewEvent(new ov(null))),t.hasChanged(98)&&(this._decorations.reset(),e.emitViewEvent(new ov(null))),e.emitViewEvent(new Kyt(t)),this.viewLayout.onConfigurationChanged(t),i.recoverViewportStart(this.coordinatesConverter,this.viewLayout),s2.shouldRecreate(t)&&(this.cursorConfig=new s2(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig))}_registerModelEvents(){this._register(this.model.onDidChangeContentOrInjectedText(e=>{try{const i=this._eventDispatcher.beginEmitViewEvents();let r=!1,o=!1;const s=e instanceof $C?e.rawContentChangedEvent.changes:e.changes,a=e instanceof $C?e.rawContentChangedEvent.versionId:null,l=this._lines.createLineBreaksComputer();for(const d of s)switch(d.changeType){case 4:{for(let h=0;h!f.ownerId||f.ownerId===this._editorId)),l.addRequest(g,m,null)}break}case 2:{let h=null;d.injectedText&&(h=d.injectedText.filter(g=>!g.ownerId||g.ownerId===this._editorId)),l.addRequest(d.detail,h,null);break}}const u=l.finalize(),c=new Lf(u);for(const d of s)switch(d.changeType){case 1:{this._lines.onModelFlushed(),i.emitViewEvent(new gE),this._decorations.reset(),this.viewLayout.onFlushed(this.getLineCount()),r=!0;break}case 3:{const h=this._lines.onModelLinesDeleted(a,d.fromLineNumber,d.toLineNumber);h!==null&&(i.emitViewEvent(h),this.viewLayout.onLinesDeleted(h.fromLineNumber,h.toLineNumber)),r=!0;break}case 4:{const h=c.takeCount(d.detail.length),g=this._lines.onModelLinesInserted(a,d.fromLineNumber,d.toLineNumber,h);g!==null&&(i.emitViewEvent(g),this.viewLayout.onLinesInserted(g.fromLineNumber,g.toLineNumber)),r=!0;break}case 2:{const h=c.dequeue(),[g,m,f,b]=this._lines.onModelLineChanged(a,d.lineNumber,h);o=g,m&&i.emitViewEvent(m),f&&(i.emitViewEvent(f),this.viewLayout.onLinesInserted(f.fromLineNumber,f.toLineNumber)),b&&(i.emitViewEvent(b),this.viewLayout.onLinesDeleted(b.fromLineNumber,b.toLineNumber));break}case 5:break}a!==null&&this._lines.acceptVersionId(a),this.viewLayout.onHeightMaybeChanged(),!r&&o&&(i.emitViewEvent(new mE),i.emitViewEvent(new ov(null)),this._cursor.onLineMappingChanged(i),this._decorations.onLineMappingChanged())}finally{this._eventDispatcher.endEmitViewEvents()}const t=this._viewportStart.isValid;if(this._viewportStart.invalidate(),this._configuration.setModelLineCount(this.model.getLineCount()),this._updateConfigurationViewLineCountNow(),!this._hasFocus&&this.model.getAttachedEditorCount()>=2&&t){const i=this.model._getTrackedRange(this._viewportStart.modelTrackedRange);if(i){const r=this.coordinatesConverter.convertModelPositionToViewPosition(i.getStartPosition()),o=this.viewLayout.getVerticalOffsetForLineNumber(r.lineNumber);this.viewLayout.setScrollPosition({scrollTop:o+this._viewportStart.startLineDelta},1)}}try{const i=this._eventDispatcher.beginEmitViewEvents();e instanceof $C&&i.emitOutgoingEvent(new hIt(e.contentChangedEvent)),this._cursor.onModelContentChanged(i,e)}finally{this._eventDispatcher.endEmitViewEvents()}this._handleVisibleLinesChanged()})),this._register(this.model.onDidChangeTokens(e=>{const t=[];for(let i=0,r=e.ranges.length;i{this._eventDispatcher.emitSingleViewEvent(new $yt),this.cursorConfig=new s2(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new dIt(e))})),this._register(this.model.onDidChangeLanguage(e=>{this.cursorConfig=new s2(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new cIt(e))})),this._register(this.model.onDidChangeOptions(e=>{if(this._lines.setTabSize(this.model.getOptions().tabSize)){try{const t=this._eventDispatcher.beginEmitViewEvents();t.emitViewEvent(new gE),t.emitViewEvent(new mE),t.emitViewEvent(new ov(null)),this._cursor.onLineMappingChanged(t),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount())}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule()}this.cursorConfig=new s2(this.model.getLanguageId(),this.model.getOptions(),this._configuration,this.languageConfigurationService),this._cursor.updateConfiguration(this.cursorConfig),this._eventDispatcher.emitOutgoingEvent(new gIt(e))})),this._register(this.model.onDidChangeDecorations(e=>{this._decorations.onModelDecorationsChanged(),this._eventDispatcher.emitSingleViewEvent(new ov(e)),this._eventDispatcher.emitOutgoingEvent(new uIt(e))}))}setHiddenAreas(e,t){var i;this.hiddenAreasModel.setHiddenAreas(t,e);const r=this.hiddenAreasModel.getMergedRanges();if(r===this.previousHiddenAreas)return;this.previousHiddenAreas=r;const o=this._captureStableViewport();let s=!1;try{const a=this._eventDispatcher.beginEmitViewEvents();s=this._lines.setHiddenAreas(r),s&&(a.emitViewEvent(new gE),a.emitViewEvent(new mE),a.emitViewEvent(new ov(null)),this._cursor.onLineMappingChanged(a),this._decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),this.viewLayout.onHeightMaybeChanged());const l=(i=o.viewportStartModelPosition)===null||i===void 0?void 0:i.lineNumber;l&&r.some(c=>c.startLineNumber<=l&&l<=c.endLineNumber)||o.recoverViewportStart(this.coordinatesConverter,this.viewLayout)}finally{this._eventDispatcher.endEmitViewEvents()}this._updateConfigurationViewLineCount.schedule(),s&&this._eventDispatcher.emitOutgoingEvent(new aIt)}getVisibleRangesPlusViewportAboveBelow(){const e=this._configuration.options.get(144),t=this._configuration.options.get(67),i=Math.max(20,Math.round(e.height/t)),r=this.viewLayout.getLinesViewportData(),o=Math.max(1,r.completelyVisibleStartLineNumber-i),s=Math.min(this.getLineCount(),r.completelyVisibleEndLineNumber+i);return this._toModelVisibleRanges(new K(o,this.getLineMinColumn(o),s,this.getLineMaxColumn(s)))}getVisibleRanges(){const e=this.getCompletelyVisibleViewRange();return this._toModelVisibleRanges(e)}getHiddenAreas(){return this._lines.getHiddenAreas()}_toModelVisibleRanges(e){const t=this.coordinatesConverter.convertViewRangeToModelRange(e),i=this._lines.getHiddenAreas();if(i.length===0)return[t];const r=[];let o=0,s=t.startLineNumber,a=t.startColumn;const l=t.endLineNumber,u=t.endColumn;for(let c=0,d=i.length;cl||(s"u")return this._reduceRestoreStateCompatibility(e);const t=this.model.validatePosition(e.firstPosition),i=this.coordinatesConverter.convertModelPositionToViewPosition(t),r=this.viewLayout.getVerticalOffsetForLineNumber(i.lineNumber)-e.firstPositionDeltaTop;return{scrollLeft:e.scrollLeft,scrollTop:r}}_reduceRestoreStateCompatibility(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTopWithoutViewZones}}getTabSize(){return this.model.getOptions().tabSize}getLineCount(){return this._lines.getViewLineCount()}setViewport(e,t,i){this._viewportStart.update(this,e)}getActiveIndentGuide(e,t,i){return this._lines.getActiveIndentGuide(e,t,i)}getLinesIndentGuides(e,t){return this._lines.getViewLinesIndentGuides(e,t)}getBracketGuidesInRangeByLine(e,t,i,r){return this._lines.getViewLinesBracketGuides(e,t,i,r)}getLineContent(e){return this._lines.getViewLineContent(e)}getLineLength(e){return this._lines.getViewLineLength(e)}getLineMinColumn(e){return this._lines.getViewLineMinColumn(e)}getLineMaxColumn(e){return this._lines.getViewLineMaxColumn(e)}getLineFirstNonWhitespaceColumn(e){const t=Ia(this.getLineContent(e));return t===-1?0:t+1}getLineLastNonWhitespaceColumn(e){const t=mh(this.getLineContent(e));return t===-1?0:t+2}getMinimapDecorationsInRange(e){return this._decorations.getMinimapDecorationsInRange(e)}getDecorationsInViewport(e){return this._decorations.getDecorationsViewportData(e).decorations}getInjectedTextAt(e){return this._lines.getInjectedTextAt(e)}getViewportViewLineRenderingData(e,t){const r=this._decorations.getDecorationsViewportData(e).inlineDecorations[t-e.startLineNumber];return this._getViewLineRenderingData(t,r)}getViewLineRenderingData(e){const t=this._decorations.getInlineDecorationsOnLine(e);return this._getViewLineRenderingData(e,t)}_getViewLineRenderingData(e,t){const i=this.model.mightContainRTL(),r=this.model.mightContainNonBasicASCII(),o=this.getTabSize(),s=this._lines.getViewLineData(e);return s.inlineDecorations&&(t=[...t,...s.inlineDecorations.map(a=>a.toInlineDecoration(e))]),new Ou(s.minColumn,s.maxColumn,s.content,s.continuesWithWrappedLine,i,r,s.tokens,t,o,s.startVisibleColumn)}getViewLineData(e){return this._lines.getViewLineData(e)}getMinimapLinesRenderingData(e,t,i){const r=this._lines.getViewLinesData(e,t,i);return new TCt(this.getTabSize(),r)}getAllOverviewRulerDecorations(e){const t=this.model.getOverviewRulerDecorations(this._editorId,pT(this._configuration.options)),i=new RIt;for(const r of t){const o=r.options,s=o.overviewRuler;if(!s)continue;const a=s.position;if(a===0)continue;const l=s.getColor(e.value),u=this.coordinatesConverter.getViewLineNumberOfModelPosition(r.range.startLineNumber,r.range.startColumn),c=this.coordinatesConverter.getViewLineNumberOfModelPosition(r.range.endLineNumber,r.range.endColumn);i.accept(l,o.zIndex,u,c,a)}return i.asArray}_invalidateDecorationsColorCache(){const e=this.model.getOverviewRulerDecorations();for(const t of e){const i=t.options.overviewRuler;i==null||i.invalidateCachedColor();const r=t.options.minimap;r==null||r.invalidateCachedColor()}}getValueInRange(e,t){const i=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueInRange(i,t)}getValueLengthInRange(e,t){const i=this.coordinatesConverter.convertViewRangeToModelRange(e);return this.model.getValueLengthInRange(i,t)}modifyPosition(e,t){const i=this.coordinatesConverter.convertViewPositionToModelPosition(e),r=this.model.modifyPosition(i,t);return this.coordinatesConverter.convertModelPositionToViewPosition(r)}deduceModelPositionRelativeToViewPosition(e,t,i){const r=this.coordinatesConverter.convertViewPositionToModelPosition(e);this.model.getEOL().length===2&&(t<0?t-=i:t+=i);const s=this.model.getOffsetAt(r)+t;return this.model.getPositionAt(s)}getPlainTextToCopy(e,t,i){const r=i?`\r +`:this.model.getEOL();e=e.slice(0),e.sort(K.compareRangesUsingStarts);let o=!1,s=!1;for(const l of e)l.isEmpty()?o=!0:s=!0;if(!s){if(!t)return"";const l=e.map(c=>c.startLineNumber);let u="";for(let c=0;c0&&l[c-1]===l[c]||(u+=this.model.getLineContent(l[c])+r);return u}if(o&&t){const l=[];let u=0;for(const c of e){const d=c.startLineNumber;c.isEmpty()?d!==u&&l.push(this.model.getLineContent(d)):l.push(this.model.getValueInRange(c,i?2:0)),u=d}return l.length===1?l[0]:l}const a=[];for(const l of e)l.isEmpty()||a.push(this.model.getValueInRange(l,i?2:0));return a.length===1?a[0]:a}getRichTextToCopy(e,t){const i=this.model.getLanguageId();if(i===Ru||e.length!==1)return null;let r=e[0];if(r.isEmpty()){if(!t)return null;const c=r.startLineNumber;r=new K(c,this.model.getLineMinColumn(c),c,this.model.getLineMaxColumn(c))}const o=this._configuration.options.get(50),s=this._getColorMap(),l=/[:;\\\/<>]/.test(o.fontFamily)||o.fontFamily===Zl.fontFamily;let u;return l?u=Zl.fontFamily:(u=o.fontFamily,u=u.replace(/"/g,"'"),/[,']/.test(u)||/[+ ]/.test(u)&&(u=`'${u}'`),u=`${u}, ${Zl.fontFamily}`),{mode:i,html:`
`+this._getHTMLToCopy(r,s)+"
"}}_getHTMLToCopy(e,t){const i=e.startLineNumber,r=e.startColumn,o=e.endLineNumber,s=e.endColumn,a=this.getTabSize();let l="";for(let u=i;u<=o;u++){const c=this.model.tokenization.getLineTokens(u),d=c.getLineContent(),h=u===i?r-1:0,g=u===o?s-1:d.length;d===""?l+="
":l+=vIt(d,c.inflate(),t,h,g,a,ya)}return l}_getColorMap(){const e=mo.getColorMap(),t=["#000000"];if(e)for(let i=1,r=e.length;ithis._cursor.setStates(r,e,t,i))}getCursorColumnSelectData(){return this._cursor.getCursorColumnSelectData()}getCursorAutoClosedCharacters(){return this._cursor.getAutoClosedCharacters()}setCursorColumnSelectData(e){this._cursor.setCursorColumnSelectData(e)}getPrevEditOperationType(){return this._cursor.getPrevEditOperationType()}setPrevEditOperationType(e){this._cursor.setPrevEditOperationType(e)}getSelection(){return this._cursor.getSelection()}getSelections(){return this._cursor.getSelections()}getPosition(){return this._cursor.getPrimaryCursorState().modelState.position}setSelections(e,t,i=0){this._withViewEventsCollector(r=>this._cursor.setSelections(r,e,t,i))}saveCursorState(){return this._cursor.saveState()}restoreCursorState(e){this._withViewEventsCollector(t=>this._cursor.restoreState(t,e))}_executeCursorEdit(e){if(this._cursor.context.cursorConfig.readOnly){this._eventDispatcher.emitOutgoingEvent(new lIt);return}this._withViewEventsCollector(e)}executeEdits(e,t,i){this._executeCursorEdit(r=>this._cursor.executeEdits(r,e,t,i))}startComposition(){this._executeCursorEdit(e=>this._cursor.startComposition(e))}endComposition(e){this._executeCursorEdit(t=>this._cursor.endComposition(t,e))}type(e,t){this._executeCursorEdit(i=>this._cursor.type(i,e,t))}compositionType(e,t,i,r,o){this._executeCursorEdit(s=>this._cursor.compositionType(s,e,t,i,r,o))}paste(e,t,i,r){this._executeCursorEdit(o=>this._cursor.paste(o,e,t,i,r))}cut(e){this._executeCursorEdit(t=>this._cursor.cut(t,e))}executeCommand(e,t){this._executeCursorEdit(i=>this._cursor.executeCommand(i,e,t))}executeCommands(e,t){this._executeCursorEdit(i=>this._cursor.executeCommands(i,e,t))}revealPrimaryCursor(e,t,i=!1){this._withViewEventsCollector(r=>this._cursor.revealPrimary(r,e,i,0,t,0))}revealTopMostCursor(e){const t=this._cursor.getTopMostViewPosition(),i=new K(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(r=>r.emitViewEvent(new fE(e,!1,i,null,0,!0,0)))}revealBottomMostCursor(e){const t=this._cursor.getBottomMostViewPosition(),i=new K(t.lineNumber,t.column,t.lineNumber,t.column);this._withViewEventsCollector(r=>r.emitViewEvent(new fE(e,!1,i,null,0,!0,0)))}revealRange(e,t,i,r,o){this._withViewEventsCollector(s=>s.emitViewEvent(new fE(e,!1,i,null,r,t,o)))}changeWhitespace(e){this.viewLayout.changeWhitespace(e)&&(this._eventDispatcher.emitSingleViewEvent(new iIt),this._eventDispatcher.emitOutgoingEvent(new sIt))}_withViewEventsCollector(e){try{const t=this._eventDispatcher.beginEmitViewEvents();return e(t)}finally{this._eventDispatcher.endEmitViewEvents()}}normalizePosition(e,t){return this._lines.normalizePosition(e,t)}getLineIndentColumn(e){return this._lines.getLineIndentColumn(e)}};class c7{static create(e){const t=e._setTrackedRange(null,new K(1,1,1,1),1);return new c7(e,1,!1,t,0)}get viewLineNumber(){return this._viewLineNumber}get isValid(){return this._isValid}get modelTrackedRange(){return this._modelTrackedRange}get startLineDelta(){return this._startLineDelta}constructor(e,t,i,r,o){this._model=e,this._viewLineNumber=t,this._isValid=i,this._modelTrackedRange=r,this._startLineDelta=o}dispose(){this._model._setTrackedRange(this._modelTrackedRange,null,1)}update(e,t){const i=e.coordinatesConverter.convertViewPositionToModelPosition(new ve(t,e.getLineMinColumn(t))),r=e.model._setTrackedRange(this._modelTrackedRange,new K(i.lineNumber,i.column,i.lineNumber,i.column),1),o=e.viewLayout.getVerticalOffsetForLineNumber(t),s=e.viewLayout.getCurrentScrollTop();this._viewLineNumber=t,this._isValid=!0,this._modelTrackedRange=r,this._startLineDelta=s-o}invalidate(){this._isValid=!1}}class RIt{constructor(){this._asMap=Object.create(null),this.asArray=[]}accept(e,t,i,r,o){const s=this._asMap[e];if(s){const a=s.data,l=a[a.length-3],u=a[a.length-1];if(l===o&&u+1>=i){r>u&&(a[a.length-1]=r);return}a.push(o,i,r)}else{const a=new Z_(e,t,[o,i,r]);this._asMap[e]=a,this.asArray.push(a)}}}class GIt{constructor(){this.hiddenAreas=new Map,this.shouldRecompute=!1,this.ranges=[]}setHiddenAreas(e,t){const i=this.hiddenAreas.get(e);i&&Pve(i,t)||(this.hiddenAreas.set(e,t),this.shouldRecompute=!0)}getMergedRanges(){if(!this.shouldRecompute)return this.ranges;this.shouldRecompute=!1;const e=Array.from(this.hiddenAreas.values()).reduce((t,i)=>VIt(t,i),[]);return Pve(this.ranges,e)?this.ranges:(this.ranges=e,this.ranges)}}function VIt(n,e){const t=[];let i=0,r=0;for(;i=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Uf=function(n,e){return function(t,i){e(t,i,n)}},av;let OIt=0,BIt=class{constructor(e,t,i,r,o,s){this.model=e,this.viewModel=t,this.view=i,this.hasRealView=r,this.listenersToRemove=o,this.attachedView=s}dispose(){Mi(this.listenersToRemove),this.model.onBeforeDetached(this.attachedView),this.hasRealView&&this.view.dispose(),this.viewModel.dispose()}},Q2=av=class extends De{get isSimpleWidget(){return this._configuration.isSimpleWidget}constructor(e,t,i,r,o,s,a,l,u,c,d,h){var g;super(),this.languageConfigurationService=d,this._deliveryQueue=uht(),this._contributions=this._register(new gvt),this._onDidDispose=this._register(new be),this.onDidDispose=this._onDidDispose.event,this._onDidChangeModelContent=this._register(new be({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelContent=this._onDidChangeModelContent.event,this._onDidChangeModelLanguage=this._register(new be({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguage=this._onDidChangeModelLanguage.event,this._onDidChangeModelLanguageConfiguration=this._register(new be({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelLanguageConfiguration=this._onDidChangeModelLanguageConfiguration.event,this._onDidChangeModelOptions=this._register(new be({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelOptions=this._onDidChangeModelOptions.event,this._onDidChangeModelDecorations=this._register(new be({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelDecorations=this._onDidChangeModelDecorations.event,this._onDidChangeModelTokens=this._register(new be({deliveryQueue:this._deliveryQueue})),this.onDidChangeModelTokens=this._onDidChangeModelTokens.event,this._onDidChangeConfiguration=this._register(new be({deliveryQueue:this._deliveryQueue})),this.onDidChangeConfiguration=this._onDidChangeConfiguration.event,this._onWillChangeModel=this._register(new be({deliveryQueue:this._deliveryQueue})),this.onWillChangeModel=this._onWillChangeModel.event,this._onDidChangeModel=this._register(new be({deliveryQueue:this._deliveryQueue})),this.onDidChangeModel=this._onDidChangeModel.event,this._onDidChangeCursorPosition=this._register(new be({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorPosition=this._onDidChangeCursorPosition.event,this._onDidChangeCursorSelection=this._register(new be({deliveryQueue:this._deliveryQueue})),this.onDidChangeCursorSelection=this._onDidChangeCursorSelection.event,this._onDidAttemptReadOnlyEdit=this._register(new La(this._contributions,this._deliveryQueue)),this.onDidAttemptReadOnlyEdit=this._onDidAttemptReadOnlyEdit.event,this._onDidLayoutChange=this._register(new be({deliveryQueue:this._deliveryQueue})),this.onDidLayoutChange=this._onDidLayoutChange.event,this._editorTextFocus=this._register(new Bve({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorText=this._editorTextFocus.onDidChangeToTrue,this.onDidBlurEditorText=this._editorTextFocus.onDidChangeToFalse,this._editorWidgetFocus=this._register(new Bve({deliveryQueue:this._deliveryQueue})),this.onDidFocusEditorWidget=this._editorWidgetFocus.onDidChangeToTrue,this.onDidBlurEditorWidget=this._editorWidgetFocus.onDidChangeToFalse,this._onWillType=this._register(new La(this._contributions,this._deliveryQueue)),this.onWillType=this._onWillType.event,this._onDidType=this._register(new La(this._contributions,this._deliveryQueue)),this.onDidType=this._onDidType.event,this._onDidCompositionStart=this._register(new La(this._contributions,this._deliveryQueue)),this.onDidCompositionStart=this._onDidCompositionStart.event,this._onDidCompositionEnd=this._register(new La(this._contributions,this._deliveryQueue)),this.onDidCompositionEnd=this._onDidCompositionEnd.event,this._onDidPaste=this._register(new La(this._contributions,this._deliveryQueue)),this.onDidPaste=this._onDidPaste.event,this._onMouseUp=this._register(new La(this._contributions,this._deliveryQueue)),this.onMouseUp=this._onMouseUp.event,this._onMouseDown=this._register(new La(this._contributions,this._deliveryQueue)),this.onMouseDown=this._onMouseDown.event,this._onMouseDrag=this._register(new La(this._contributions,this._deliveryQueue)),this.onMouseDrag=this._onMouseDrag.event,this._onMouseDrop=this._register(new La(this._contributions,this._deliveryQueue)),this.onMouseDrop=this._onMouseDrop.event,this._onMouseDropCanceled=this._register(new La(this._contributions,this._deliveryQueue)),this.onMouseDropCanceled=this._onMouseDropCanceled.event,this._onDropIntoEditor=this._register(new La(this._contributions,this._deliveryQueue)),this.onDropIntoEditor=this._onDropIntoEditor.event,this._onContextMenu=this._register(new La(this._contributions,this._deliveryQueue)),this.onContextMenu=this._onContextMenu.event,this._onMouseMove=this._register(new La(this._contributions,this._deliveryQueue)),this.onMouseMove=this._onMouseMove.event,this._onMouseLeave=this._register(new La(this._contributions,this._deliveryQueue)),this.onMouseLeave=this._onMouseLeave.event,this._onMouseWheel=this._register(new La(this._contributions,this._deliveryQueue)),this.onMouseWheel=this._onMouseWheel.event,this._onKeyUp=this._register(new La(this._contributions,this._deliveryQueue)),this.onKeyUp=this._onKeyUp.event,this._onKeyDown=this._register(new La(this._contributions,this._deliveryQueue)),this.onKeyDown=this._onKeyDown.event,this._onDidContentSizeChange=this._register(new be({deliveryQueue:this._deliveryQueue})),this.onDidContentSizeChange=this._onDidContentSizeChange.event,this._onDidScrollChange=this._register(new be({deliveryQueue:this._deliveryQueue})),this.onDidScrollChange=this._onDidScrollChange.event,this._onDidChangeViewZones=this._register(new be({deliveryQueue:this._deliveryQueue})),this.onDidChangeViewZones=this._onDidChangeViewZones.event,this._onDidChangeHiddenAreas=this._register(new be({deliveryQueue:this._deliveryQueue})),this.onDidChangeHiddenAreas=this._onDidChangeHiddenAreas.event,this._actions=new Map,this._bannerDomNode=null,this._dropIntoEditorDecorations=this.createDecorationsCollection(),o.willCreateCodeEditor();const m={...t};this._domElement=e,this._overflowWidgetsDomNode=m.overflowWidgetsDomNode,delete m.overflowWidgetsDomNode,this._id=++OIt,this._decorationTypeKeysToIds={},this._decorationTypeSubtypes={},this._telemetryData=i.telemetryData,this._configuration=this._register(this._createConfiguration(i.isSimpleWidget||!1,m,c)),this._register(this._configuration.onDidChange(C=>{this._onDidChangeConfiguration.fire(C);const v=this._configuration.options;if(C.hasChanged(144)){const w=v.get(144);this._onDidLayoutChange.fire(w)}})),this._contextKeyService=this._register(a.createScoped(this._domElement)),this._notificationService=u,this._codeEditorService=o,this._commandService=s,this._themeService=l,this._register(new zIt(this,this._contextKeyService)),this._register(new YIt(this,this._contextKeyService,h)),this._instantiationService=r.createChild(new aD([ln,this._contextKeyService])),this._modelData=null,this._focusTracker=new HIt(e,this._overflowWidgetsDomNode),this._register(this._focusTracker.onChange(()=>{this._editorWidgetFocus.setValue(this._focusTracker.hasFocus())})),this._contentWidgets={},this._overlayWidgets={},this._glyphMarginWidgets={};let f;Array.isArray(i.contributions)?f=i.contributions:f=o2.getEditorContributions(),this._contributions.initialize(this,f,this._instantiationService);for(const C of o2.getEditorActions()){if(this._actions.has(C.id)){fn(new Error(`Cannot have two actions with the same id ${C.id}`));continue}const v=new RCe(C.id,C.label,C.alias,C.metadata,(g=C.precondition)!==null&&g!==void 0?g:void 0,w=>this._instantiationService.invokeFunction(S=>Promise.resolve(C.runEditorCommand(S,this,w))),this._contextKeyService);this._actions.set(v.id,v)}const b=()=>!this._configuration.options.get(91)&&this._configuration.options.get(36).enabled;this._register(new Qgt(this._domElement,{onDragOver:C=>{if(!b())return;const v=this.getTargetAtClientPoint(C.clientX,C.clientY);v!=null&&v.position&&this.showDropIndicatorAt(v.position)},onDrop:async C=>{if(!b()||(this.removeDropIndicator(),!C.dataTransfer))return;const v=this.getTargetAtClientPoint(C.clientX,C.clientY);v!=null&&v.position&&this._onDropIntoEditor.fire({position:v.position,event:C})},onDragLeave:()=>{this.removeDropIndicator()},onDragEnd:()=>{this.removeDropIndicator()}})),this._codeEditorService.addCodeEditor(this)}writeScreenReaderContent(e){var t;(t=this._modelData)===null||t===void 0||t.view.writeScreenReaderContent(e)}_createConfiguration(e,t,i){return new ZH(e,t,this._domElement,i)}getId(){return this.getEditorType()+":"+this._id}getEditorType(){return P_.ICodeEditor}dispose(){this._codeEditorService.removeCodeEditor(this),this._focusTracker.dispose(),this._actions.clear(),this._contentWidgets={},this._overlayWidgets={},this._removeDecorationTypes(),this._postDetachModelCleanup(this._detachModel()),this._onDidDispose.fire(),super.dispose()}invokeWithinContext(e){return this._instantiationService.invokeFunction(e)}updateOptions(e){this._configuration.updateOptions(e||{})}getOptions(){return this._configuration.options}getOption(e){return this._configuration.options.get(e)}getRawOptions(){return this._configuration.getRawOptions()}getOverflowWidgetsDomNode(){return this._overflowWidgetsDomNode}getConfiguredWordAtPosition(e){return this._modelData?wi.getWordAtPosition(this._modelData.model,this._configuration.options.get(130),e):null}getValue(e=null){if(!this._modelData)return"";const t=!!(e&&e.preserveBOM);let i=0;return e&&e.lineEnding&&e.lineEnding===` +`?i=1:e&&e.lineEnding&&e.lineEnding===`\r +`&&(i=2),this._modelData.model.getValue(i,t)}setValue(e){this._modelData&&this._modelData.model.setValue(e)}getModel(){return this._modelData?this._modelData.model:null}setModel(e=null){var t;const i=e;if(this._modelData===null&&i===null||this._modelData&&this._modelData.model===i)return;const r={oldModelUrl:((t=this._modelData)===null||t===void 0?void 0:t.model.uri)||null,newModelUrl:(i==null?void 0:i.uri)||null};this._onWillChangeModel.fire(r);const o=this.hasTextFocus(),s=this._detachModel();this._attachModel(i),o&&this.hasModel()&&this.focus(),this._removeDecorationTypes(),this._onDidChangeModel.fire(r),this._postDetachModelCleanup(s),this._contributionsDisposable=this._contributions.onAfterModelAttached()}_removeDecorationTypes(){if(this._decorationTypeKeysToIds={},this._decorationTypeSubtypes){for(const e in this._decorationTypeSubtypes){const t=this._decorationTypeSubtypes[e];for(const i in t)this._removeDecorationType(e+"-"+i)}this._decorationTypeSubtypes={}}}getVisibleRanges(){return this._modelData?this._modelData.viewModel.getVisibleRanges():[]}getVisibleRangesPlusViewportAboveBelow(){return this._modelData?this._modelData.viewModel.getVisibleRangesPlusViewportAboveBelow():[]}getWhitespaces(){return this._modelData?this._modelData.viewModel.viewLayout.getWhitespaces():[]}static _getVerticalOffsetAfterPosition(e,t,i,r){const o=e.model.validatePosition({lineNumber:t,column:i}),s=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(o);return e.viewModel.viewLayout.getVerticalOffsetAfterLineNumber(s.lineNumber,r)}getTopForLineNumber(e,t=!1){return this._modelData?av._getVerticalOffsetForPosition(this._modelData,e,1,t):-1}getTopForPosition(e,t){return this._modelData?av._getVerticalOffsetForPosition(this._modelData,e,t,!1):-1}static _getVerticalOffsetForPosition(e,t,i,r=!1){const o=e.model.validatePosition({lineNumber:t,column:i}),s=e.viewModel.coordinatesConverter.convertModelPositionToViewPosition(o);return e.viewModel.viewLayout.getVerticalOffsetForLineNumber(s.lineNumber,r)}getBottomForLineNumber(e,t=!1){return this._modelData?av._getVerticalOffsetAfterPosition(this._modelData,e,1,t):-1}setHiddenAreas(e,t){var i;(i=this._modelData)===null||i===void 0||i.viewModel.setHiddenAreas(e.map(r=>K.lift(r)),t)}getVisibleColumnFromPosition(e){if(!this._modelData)return e.column;const t=this._modelData.model.validatePosition(e),i=this._modelData.model.getOptions().tabSize;return Yo.visibleColumnFromColumn(this._modelData.model.getLineContent(t.lineNumber),t.column,i)+1}getPosition(){return this._modelData?this._modelData.viewModel.getPosition():null}setPosition(e,t="api"){if(this._modelData){if(!ve.isIPosition(e))throw new Error("Invalid arguments");this._modelData.viewModel.setSelections(t,[{selectionStartLineNumber:e.lineNumber,selectionStartColumn:e.column,positionLineNumber:e.lineNumber,positionColumn:e.column}])}}_sendRevealRange(e,t,i,r){if(!this._modelData)return;if(!K.isIRange(e))throw new Error("Invalid arguments");const o=this._modelData.model.validateRange(e),s=this._modelData.viewModel.coordinatesConverter.convertModelRangeToViewRange(o);this._modelData.viewModel.revealRange("api",i,s,t,r)}revealLine(e,t=0){this._revealLine(e,0,t)}revealLineInCenter(e,t=0){this._revealLine(e,1,t)}revealLineInCenterIfOutsideViewport(e,t=0){this._revealLine(e,2,t)}revealLineNearTop(e,t=0){this._revealLine(e,5,t)}_revealLine(e,t,i){if(typeof e!="number")throw new Error("Invalid arguments");this._sendRevealRange(new K(e,1,e,1),t,!1,i)}revealPosition(e,t=0){this._revealPosition(e,0,!0,t)}revealPositionInCenter(e,t=0){this._revealPosition(e,1,!0,t)}revealPositionInCenterIfOutsideViewport(e,t=0){this._revealPosition(e,2,!0,t)}revealPositionNearTop(e,t=0){this._revealPosition(e,5,!0,t)}_revealPosition(e,t,i,r){if(!ve.isIPosition(e))throw new Error("Invalid arguments");this._sendRevealRange(new K(e.lineNumber,e.column,e.lineNumber,e.column),t,i,r)}getSelection(){return this._modelData?this._modelData.viewModel.getSelection():null}getSelections(){return this._modelData?this._modelData.viewModel.getSelections():null}setSelection(e,t="api"){const i=Gt.isISelection(e),r=K.isIRange(e);if(!i&&!r)throw new Error("Invalid arguments");if(i)this._setSelectionImpl(e,t);else if(r){const o={selectionStartLineNumber:e.startLineNumber,selectionStartColumn:e.startColumn,positionLineNumber:e.endLineNumber,positionColumn:e.endColumn};this._setSelectionImpl(o,t)}}_setSelectionImpl(e,t){if(!this._modelData)return;const i=new Gt(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn);this._modelData.viewModel.setSelections(t,[i])}revealLines(e,t,i=0){this._revealLines(e,t,0,i)}revealLinesInCenter(e,t,i=0){this._revealLines(e,t,1,i)}revealLinesInCenterIfOutsideViewport(e,t,i=0){this._revealLines(e,t,2,i)}revealLinesNearTop(e,t,i=0){this._revealLines(e,t,5,i)}_revealLines(e,t,i,r){if(typeof e!="number"||typeof t!="number")throw new Error("Invalid arguments");this._sendRevealRange(new K(e,1,t,1),i,!1,r)}revealRange(e,t=0,i=!1,r=!0){this._revealRange(e,i?1:0,r,t)}revealRangeInCenter(e,t=0){this._revealRange(e,1,!0,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this._revealRange(e,2,!0,t)}revealRangeNearTop(e,t=0){this._revealRange(e,5,!0,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this._revealRange(e,6,!0,t)}revealRangeAtTop(e,t=0){this._revealRange(e,3,!0,t)}_revealRange(e,t,i,r){if(!K.isIRange(e))throw new Error("Invalid arguments");this._sendRevealRange(K.lift(e),t,i,r)}setSelections(e,t="api",i=0){if(this._modelData){if(!e||e.length===0)throw new Error("Invalid arguments");for(let r=0,o=e.length;r0&&this._modelData.viewModel.restoreCursorState(i):this._modelData.viewModel.restoreCursorState([i]),this._contributions.restoreViewState(t.contributionsState||{});const r=this._modelData.viewModel.reduceRestoreState(t.viewState);this._modelData.view.restoreState(r)}}handleInitialized(){var e;(e=this._getViewModel())===null||e===void 0||e.visibleLinesStabilized()}getContribution(e){return this._contributions.get(e)}getActions(){return Array.from(this._actions.values())}getSupportedActions(){let e=this.getActions();return e=e.filter(t=>t.isSupported()),e}getAction(e){return this._actions.get(e)||null}trigger(e,t,i){switch(i=i||{},t){case"compositionStart":this._startComposition();return;case"compositionEnd":this._endComposition(e);return;case"type":{const o=i;this._type(e,o.text||"");return}case"replacePreviousChar":{const o=i;this._compositionType(e,o.text||"",o.replaceCharCnt||0,0,0);return}case"compositionType":{const o=i;this._compositionType(e,o.text||"",o.replacePrevCharCnt||0,o.replaceNextCharCnt||0,o.positionDelta||0);return}case"paste":{const o=i;this._paste(e,o.text||"",o.pasteOnNewLine||!1,o.multicursorText||null,o.mode||null);return}case"cut":this._cut(e);return}const r=this.getAction(t);if(r){Promise.resolve(r.run(i)).then(void 0,fn);return}this._modelData&&(this._triggerEditorCommand(e,t,i)||this._triggerCommand(t,i))}_triggerCommand(e,t){this._commandService.executeCommand(e,t)}_startComposition(){this._modelData&&(this._modelData.viewModel.startComposition(),this._onDidCompositionStart.fire())}_endComposition(e){this._modelData&&(this._modelData.viewModel.endComposition(e),this._onDidCompositionEnd.fire())}_type(e,t){!this._modelData||t.length===0||(e==="keyboard"&&this._onWillType.fire(t),this._modelData.viewModel.type(t,e),e==="keyboard"&&this._onDidType.fire(t))}_compositionType(e,t,i,r,o){this._modelData&&this._modelData.viewModel.compositionType(t,i,r,o,e)}_paste(e,t,i,r,o){if(!this._modelData||t.length===0)return;const s=this._modelData.viewModel,a=s.getSelection().getStartPosition();s.paste(t,i,r,e);const l=s.getSelection().getStartPosition();e==="keyboard"&&this._onDidPaste.fire({range:new K(a.lineNumber,a.column,l.lineNumber,l.column),languageId:o})}_cut(e){this._modelData&&this._modelData.viewModel.cut(e)}_triggerEditorCommand(e,t,i){const r=o2.getEditorCommand(t);return r?(i=i||{},i.source=e,this._instantiationService.invokeFunction(o=>{Promise.resolve(r.runEditorCommand(o,this,i)).then(void 0,fn)}),!0):!1}_getViewModel(){return this._modelData?this._modelData.viewModel:null}pushUndoStop(){return!this._modelData||this._configuration.options.get(91)?!1:(this._modelData.model.pushStackElement(),!0)}popUndoStop(){return!this._modelData||this._configuration.options.get(91)?!1:(this._modelData.model.popStackElement(),!0)}executeEdits(e,t,i){if(!this._modelData||this._configuration.options.get(91))return!1;let r;return i?Array.isArray(i)?r=()=>i:r=i:r=()=>null,this._modelData.viewModel.executeEdits(e,t,r),!0}executeCommand(e,t){this._modelData&&this._modelData.viewModel.executeCommand(t,e)}executeCommands(e,t){this._modelData&&this._modelData.viewModel.executeCommands(t,e)}createDecorationsCollection(e){return new UIt(this,e)}changeDecorations(e){return this._modelData?this._modelData.model.changeDecorations(e,this._id):null}getLineDecorations(e){return this._modelData?this._modelData.model.getLineDecorations(e,this._id,pT(this._configuration.options)):null}getDecorationsInRange(e){return this._modelData?this._modelData.model.getDecorationsInRange(e,this._id,pT(this._configuration.options)):null}deltaDecorations(e,t){return this._modelData?e.length===0&&t.length===0?e:this._modelData.model.deltaDecorations(e,t,this._id):[]}removeDecorations(e){!this._modelData||e.length===0||this._modelData.model.changeDecorations(t=>{t.deltaDecorations(e,[])})}removeDecorationsByType(e){const t=this._decorationTypeKeysToIds[e];t&&this.changeDecorations(i=>i.deltaDecorations(t,[])),this._decorationTypeKeysToIds.hasOwnProperty(e)&&delete this._decorationTypeKeysToIds[e],this._decorationTypeSubtypes.hasOwnProperty(e)&&delete this._decorationTypeSubtypes[e]}getLayoutInfo(){return this._configuration.options.get(144)}createOverviewRuler(e){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.createOverviewRuler(e)}getContainerDomNode(){return this._domElement}getDomNode(){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.domNode.domNode}delegateVerticalScrollbarPointerDown(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateVerticalScrollbarPointerDown(e)}delegateScrollFromMouseWheelEvent(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.delegateScrollFromMouseWheelEvent(e)}layout(e,t=!1){this._configuration.observeContainer(e),t||this.render()}focus(){!this._modelData||!this._modelData.hasRealView||this._modelData.view.focus()}hasTextFocus(){return!this._modelData||!this._modelData.hasRealView?!1:this._modelData.view.isFocused()}hasWidgetFocus(){return this._focusTracker&&this._focusTracker.hasFocus()}addContentWidget(e){const t={widget:e,position:e.getPosition()};this._contentWidgets.hasOwnProperty(e.getId()),this._contentWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addContentWidget(t)}layoutContentWidget(e){const t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){const i=this._contentWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutContentWidget(i)}}removeContentWidget(e){const t=e.getId();if(this._contentWidgets.hasOwnProperty(t)){const i=this._contentWidgets[t];delete this._contentWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeContentWidget(i)}}addOverlayWidget(e){const t={widget:e,position:e.getPosition()};this._overlayWidgets.hasOwnProperty(e.getId()),this._overlayWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addOverlayWidget(t)}layoutOverlayWidget(e){const t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){const i=this._overlayWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutOverlayWidget(i)}}removeOverlayWidget(e){const t=e.getId();if(this._overlayWidgets.hasOwnProperty(t)){const i=this._overlayWidgets[t];delete this._overlayWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeOverlayWidget(i)}}addGlyphMarginWidget(e){const t={widget:e,position:e.getPosition()};this._glyphMarginWidgets.hasOwnProperty(e.getId()),this._glyphMarginWidgets[e.getId()]=t,this._modelData&&this._modelData.hasRealView&&this._modelData.view.addGlyphMarginWidget(t)}layoutGlyphMarginWidget(e){const t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){const i=this._glyphMarginWidgets[t];i.position=e.getPosition(),this._modelData&&this._modelData.hasRealView&&this._modelData.view.layoutGlyphMarginWidget(i)}}removeGlyphMarginWidget(e){const t=e.getId();if(this._glyphMarginWidgets.hasOwnProperty(t)){const i=this._glyphMarginWidgets[t];delete this._glyphMarginWidgets[t],this._modelData&&this._modelData.hasRealView&&this._modelData.view.removeGlyphMarginWidget(i)}}changeViewZones(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.change(e)}getTargetAtClientPoint(e,t){return!this._modelData||!this._modelData.hasRealView?null:this._modelData.view.getTargetAtClientPoint(e,t)}getScrolledVisiblePosition(e){if(!this._modelData||!this._modelData.hasRealView)return null;const t=this._modelData.model.validatePosition(e),i=this._configuration.options,r=i.get(144),o=av._getVerticalOffsetForPosition(this._modelData,t.lineNumber,t.column)-this.getScrollTop(),s=this._modelData.view.getOffsetForColumn(t.lineNumber,t.column)+r.glyphMarginWidth+r.lineNumbersWidth+r.decorationsWidth-this.getScrollLeft();return{top:o,left:s,height:i.get(67)}}getOffsetForColumn(e,t){return!this._modelData||!this._modelData.hasRealView?-1:this._modelData.view.getOffsetForColumn(e,t)}render(e=!1){!this._modelData||!this._modelData.hasRealView||this._modelData.view.render(!0,e)}setAriaOptions(e){!this._modelData||!this._modelData.hasRealView||this._modelData.view.setAriaOptions(e)}applyFontInfo(e){Ks(e,this._configuration.options.get(50))}setBanner(e,t){this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),this._bannerDomNode=e,this._configuration.setReservedHeight(e?t:0),this._bannerDomNode&&this._domElement.prepend(this._bannerDomNode)}_attachModel(e){if(!e){this._modelData=null;return}const t=[];this._domElement.setAttribute("data-mode-id",e.getLanguageId()),this._configuration.setIsDominatedByLongLines(e.isDominatedByLongLines()),this._configuration.setModelLineCount(e.getLineCount());const i=e.onBeforeAttached(),r=new WIt(this._id,this._configuration,e,b6.create(qt(this._domElement)),j6.create(this._configuration.options),a=>iu(qt(this._domElement),a),this.languageConfigurationService,this._themeService,i);t.push(e.onWillDispose(()=>this.setModel(null))),t.push(r.onEvent(a=>{switch(a.kind){case 0:this._onDidContentSizeChange.fire(a);break;case 1:this._editorTextFocus.setValue(a.hasFocus);break;case 2:this._onDidScrollChange.fire(a);break;case 3:this._onDidChangeViewZones.fire();break;case 4:this._onDidChangeHiddenAreas.fire();break;case 5:this._onDidAttemptReadOnlyEdit.fire();break;case 6:{if(a.reachedMaxCursorCount){const d=this.getOption(80),h=x("cursors.maximum","The number of cursors has been limited to {0}. Consider using [find and replace](https://code.visualstudio.com/docs/editor/codebasics#_find-and-replace) for larger changes or increase the editor multi cursor limit setting.",d);this._notificationService.prompt(vE.Warning,h,[{label:"Find and Replace",run:()=>{this._commandService.executeCommand("editor.action.startFindReplaceAction")}},{label:x("goToSetting","Increase Multi Cursor Limit"),run:()=>{this._commandService.executeCommand("workbench.action.openSettings2",{query:"editor.multiCursorLimit"})}}])}const l=[];for(let d=0,h=a.selections.length;d{this._paste("keyboard",o,s,a,l)},type:o=>{this._type("keyboard",o)},compositionType:(o,s,a,l)=>{this._compositionType("keyboard",o,s,a,l)},startComposition:()=>{this._startComposition()},endComposition:()=>{this._endComposition("keyboard")},cut:()=>{this._cut("keyboard")}}:t={paste:(o,s,a,l)=>{const u={text:o,pasteOnNewLine:s,multicursorText:a,mode:l};this._commandService.executeCommand("paste",u)},type:o=>{const s={text:o};this._commandService.executeCommand("type",s)},compositionType:(o,s,a,l)=>{if(a||l){const u={text:o,replacePrevCharCnt:s,replaceNextCharCnt:a,positionDelta:l};this._commandService.executeCommand("compositionType",u)}else{const u={text:o,replaceCharCnt:s};this._commandService.executeCommand("replacePreviousChar",u)}},startComposition:()=>{this._commandService.executeCommand("compositionStart",{})},endComposition:()=>{this._commandService.executeCommand("compositionEnd",{})},cut:()=>{this._commandService.executeCommand("cut",{})}};const i=new BT(e.coordinatesConverter);return i.onKeyDown=o=>this._onKeyDown.fire(o),i.onKeyUp=o=>this._onKeyUp.fire(o),i.onContextMenu=o=>this._onContextMenu.fire(o),i.onMouseMove=o=>this._onMouseMove.fire(o),i.onMouseLeave=o=>this._onMouseLeave.fire(o),i.onMouseDown=o=>this._onMouseDown.fire(o),i.onMouseUp=o=>this._onMouseUp.fire(o),i.onMouseDrag=o=>this._onMouseDrag.fire(o),i.onMouseDrop=o=>this._onMouseDrop.fire(o),i.onMouseDropCanceled=o=>this._onMouseDropCanceled.fire(o),i.onMouseWheel=o=>this._onMouseWheel.fire(o),[new m6(t,this._configuration,this._themeService.getColorTheme(),e,i,this._overflowWidgetsDomNode,this._instantiationService),!0]}_postDetachModelCleanup(e){e==null||e.removeAllDecorationsWithOwnerId(this._id)}_detachModel(){var e;if((e=this._contributionsDisposable)===null||e===void 0||e.dispose(),this._contributionsDisposable=void 0,!this._modelData)return null;const t=this._modelData.model,i=this._modelData.hasRealView?this._modelData.view.domNode.domNode:null;return this._modelData.dispose(),this._modelData=null,this._domElement.removeAttribute("data-mode-id"),i&&this._domElement.contains(i)&&this._domElement.removeChild(i),this._bannerDomNode&&this._domElement.contains(this._bannerDomNode)&&this._domElement.removeChild(this._bannerDomNode),t}_removeDecorationType(e){this._codeEditorService.removeDecorationType(e)}hasModel(){return this._modelData!==null}showDropIndicatorAt(e){const t=[{range:new K(e.lineNumber,e.column,e.lineNumber,e.column),options:av.dropIntoEditorDecorationOptions}];this._dropIntoEditorDecorations.set(t),this.revealPosition(e,1)}removeDropIndicator(){this._dropIntoEditorDecorations.clear()}setContextValue(e,t){this._contextKeyService.createKey(e,t)}};Q2.dropIntoEditorDecorationOptions=In.register({description:"workbench-dnd-target",className:"dnd-target"}),Q2=av=PIt([Uf(3,tn),Uf(4,yi),Uf(5,Vr),Uf(6,ln),Uf(7,ts),Uf(8,Fo),Uf(9,vd),Uf(10,$i),Uf(11,Tt)],Q2);class Bve extends De{constructor(e){super(),this._emitterOptions=e,this._onDidChangeToTrue=this._register(new be(this._emitterOptions)),this.onDidChangeToTrue=this._onDidChangeToTrue.event,this._onDidChangeToFalse=this._register(new be(this._emitterOptions)),this.onDidChangeToFalse=this._onDidChangeToFalse.event,this._value=0}setValue(e){const t=e?2:1;this._value!==t&&(this._value=t,this._value===2?this._onDidChangeToTrue.fire():this._value===1&&this._onDidChangeToFalse.fire())}}class La extends be{constructor(e,t){super({deliveryQueue:t}),this._contributions=e}fire(e){this._contributions.onBeforeInteractionEvent(),super.fire(e)}}class zIt extends De{constructor(e,t){super(),this._editor=e,t.createKey("editorId",e.getId()),this._editorSimpleInput=ne.editorSimpleInput.bindTo(t),this._editorFocus=ne.focus.bindTo(t),this._textInputFocus=ne.textInputFocus.bindTo(t),this._editorTextFocus=ne.editorTextFocus.bindTo(t),this._tabMovesFocus=ne.tabMovesFocus.bindTo(t),this._editorReadonly=ne.readOnly.bindTo(t),this._inDiffEditor=ne.inDiffEditor.bindTo(t),this._editorColumnSelection=ne.columnSelection.bindTo(t),this._hasMultipleSelections=ne.hasMultipleSelections.bindTo(t),this._hasNonEmptySelection=ne.hasNonEmptySelection.bindTo(t),this._canUndo=ne.canUndo.bindTo(t),this._canRedo=ne.canRedo.bindTo(t),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromConfig())),this._register(this._editor.onDidChangeCursorSelection(()=>this._updateFromSelection())),this._register(this._editor.onDidFocusEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorWidget(()=>this._updateFromFocus())),this._register(this._editor.onDidFocusEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidBlurEditorText(()=>this._updateFromFocus())),this._register(this._editor.onDidChangeModel(()=>this._updateFromModel())),this._register(this._editor.onDidChangeConfiguration(()=>this._updateFromModel())),this._register(S2.onDidChangeTabFocus(i=>this._tabMovesFocus.set(i))),this._updateFromConfig(),this._updateFromSelection(),this._updateFromFocus(),this._updateFromModel(),this._editorSimpleInput.set(this._editor.isSimpleWidget)}_updateFromConfig(){const e=this._editor.getOptions();this._tabMovesFocus.set(S2.getTabFocusMode()),this._editorReadonly.set(e.get(91)),this._inDiffEditor.set(e.get(61)),this._editorColumnSelection.set(e.get(22))}_updateFromSelection(){const e=this._editor.getSelections();e?(this._hasMultipleSelections.set(e.length>1),this._hasNonEmptySelection.set(e.some(t=>!t.isEmpty()))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())}_updateFromFocus(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())}_updateFromModel(){const e=this._editor.getModel();this._canUndo.set(!!(e&&e.canUndo())),this._canRedo.set(!!(e&&e.canRedo()))}}class YIt extends De{constructor(e,t,i){super(),this._editor=e,this._contextKeyService=t,this._languageFeaturesService=i,this._langId=ne.languageId.bindTo(t),this._hasCompletionItemProvider=ne.hasCompletionItemProvider.bindTo(t),this._hasCodeActionsProvider=ne.hasCodeActionsProvider.bindTo(t),this._hasCodeLensProvider=ne.hasCodeLensProvider.bindTo(t),this._hasDefinitionProvider=ne.hasDefinitionProvider.bindTo(t),this._hasDeclarationProvider=ne.hasDeclarationProvider.bindTo(t),this._hasImplementationProvider=ne.hasImplementationProvider.bindTo(t),this._hasTypeDefinitionProvider=ne.hasTypeDefinitionProvider.bindTo(t),this._hasHoverProvider=ne.hasHoverProvider.bindTo(t),this._hasDocumentHighlightProvider=ne.hasDocumentHighlightProvider.bindTo(t),this._hasDocumentSymbolProvider=ne.hasDocumentSymbolProvider.bindTo(t),this._hasReferenceProvider=ne.hasReferenceProvider.bindTo(t),this._hasRenameProvider=ne.hasRenameProvider.bindTo(t),this._hasSignatureHelpProvider=ne.hasSignatureHelpProvider.bindTo(t),this._hasInlayHintsProvider=ne.hasInlayHintsProvider.bindTo(t),this._hasDocumentFormattingProvider=ne.hasDocumentFormattingProvider.bindTo(t),this._hasDocumentSelectionFormattingProvider=ne.hasDocumentSelectionFormattingProvider.bindTo(t),this._hasMultipleDocumentFormattingProvider=ne.hasMultipleDocumentFormattingProvider.bindTo(t),this._hasMultipleDocumentSelectionFormattingProvider=ne.hasMultipleDocumentSelectionFormattingProvider.bindTo(t),this._isInEmbeddedEditor=ne.isInEmbeddedEditor.bindTo(t);const r=()=>this._update();this._register(e.onDidChangeModel(r)),this._register(e.onDidChangeModelLanguage(r)),this._register(i.completionProvider.onDidChange(r)),this._register(i.codeActionProvider.onDidChange(r)),this._register(i.codeLensProvider.onDidChange(r)),this._register(i.definitionProvider.onDidChange(r)),this._register(i.declarationProvider.onDidChange(r)),this._register(i.implementationProvider.onDidChange(r)),this._register(i.typeDefinitionProvider.onDidChange(r)),this._register(i.hoverProvider.onDidChange(r)),this._register(i.documentHighlightProvider.onDidChange(r)),this._register(i.documentSymbolProvider.onDidChange(r)),this._register(i.referenceProvider.onDidChange(r)),this._register(i.renameProvider.onDidChange(r)),this._register(i.documentFormattingEditProvider.onDidChange(r)),this._register(i.documentRangeFormattingEditProvider.onDidChange(r)),this._register(i.signatureHelpProvider.onDidChange(r)),this._register(i.inlayHintsProvider.onDidChange(r)),r()}dispose(){super.dispose()}reset(){this._contextKeyService.bufferChangeEvents(()=>{this._langId.reset(),this._hasCompletionItemProvider.reset(),this._hasCodeActionsProvider.reset(),this._hasCodeLensProvider.reset(),this._hasDefinitionProvider.reset(),this._hasDeclarationProvider.reset(),this._hasImplementationProvider.reset(),this._hasTypeDefinitionProvider.reset(),this._hasHoverProvider.reset(),this._hasDocumentHighlightProvider.reset(),this._hasDocumentSymbolProvider.reset(),this._hasReferenceProvider.reset(),this._hasRenameProvider.reset(),this._hasDocumentFormattingProvider.reset(),this._hasDocumentSelectionFormattingProvider.reset(),this._hasSignatureHelpProvider.reset(),this._isInEmbeddedEditor.reset()})}_update(){const e=this._editor.getModel();if(!e){this.reset();return}this._contextKeyService.bufferChangeEvents(()=>{this._langId.set(e.getLanguageId()),this._hasCompletionItemProvider.set(this._languageFeaturesService.completionProvider.has(e)),this._hasCodeActionsProvider.set(this._languageFeaturesService.codeActionProvider.has(e)),this._hasCodeLensProvider.set(this._languageFeaturesService.codeLensProvider.has(e)),this._hasDefinitionProvider.set(this._languageFeaturesService.definitionProvider.has(e)),this._hasDeclarationProvider.set(this._languageFeaturesService.declarationProvider.has(e)),this._hasImplementationProvider.set(this._languageFeaturesService.implementationProvider.has(e)),this._hasTypeDefinitionProvider.set(this._languageFeaturesService.typeDefinitionProvider.has(e)),this._hasHoverProvider.set(this._languageFeaturesService.hoverProvider.has(e)),this._hasDocumentHighlightProvider.set(this._languageFeaturesService.documentHighlightProvider.has(e)),this._hasDocumentSymbolProvider.set(this._languageFeaturesService.documentSymbolProvider.has(e)),this._hasReferenceProvider.set(this._languageFeaturesService.referenceProvider.has(e)),this._hasRenameProvider.set(this._languageFeaturesService.renameProvider.has(e)),this._hasSignatureHelpProvider.set(this._languageFeaturesService.signatureHelpProvider.has(e)),this._hasInlayHintsProvider.set(this._languageFeaturesService.inlayHintsProvider.has(e)),this._hasDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.has(e)||this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.has(e)),this._hasMultipleDocumentFormattingProvider.set(this._languageFeaturesService.documentFormattingEditProvider.all(e).length+this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._hasMultipleDocumentSelectionFormattingProvider.set(this._languageFeaturesService.documentRangeFormattingEditProvider.all(e).length>1),this._isInEmbeddedEditor.set(e.uri.scheme===xn.walkThroughSnippet||e.uri.scheme===xn.vscodeChatCodeBlock)})}}class HIt extends De{constructor(e,t){super(),this._onChange=this._register(new be),this.onChange=this._onChange.event,this._hadFocus=void 0,this._hasDomElementFocus=!1,this._domFocusTracker=this._register(ph(e)),this._overflowWidgetsDomNodeHasFocus=!1,this._register(this._domFocusTracker.onDidFocus(()=>{this._hasDomElementFocus=!0,this._update()})),this._register(this._domFocusTracker.onDidBlur(()=>{this._hasDomElementFocus=!1,this._update()})),t&&(this._overflowWidgetsDomNode=this._register(ph(t)),this._register(this._overflowWidgetsDomNode.onDidFocus(()=>{this._overflowWidgetsDomNodeHasFocus=!0,this._update()})),this._register(this._overflowWidgetsDomNode.onDidBlur(()=>{this._overflowWidgetsDomNodeHasFocus=!1,this._update()})))}_update(){const e=this._hasDomElementFocus||this._overflowWidgetsDomNodeHasFocus;this._hadFocus!==e&&(this._hadFocus=e,this._onChange.fire(void 0))}hasFocus(){var e;return(e=this._hadFocus)!==null&&e!==void 0?e:!1}}class UIt{get length(){return this._decorationIds.length}constructor(e,t){this._editor=e,this._decorationIds=[],this._isChangingDecorations=!1,Array.isArray(t)&&t.length>0&&this.set(t)}onDidChange(e,t,i){return this._editor.onDidChangeModelDecorations(r=>{this._isChangingDecorations||e.call(t,r)},i)}getRange(e){return!this._editor.hasModel()||e>=this._decorationIds.length?null:this._editor.getModel().getDecorationRange(this._decorationIds[e])}getRanges(){if(!this._editor.hasModel())return[];const e=this._editor.getModel(),t=[];for(const i of this._decorationIds){const r=e.getDecorationRange(i);r&&t.push(r)}return t}has(e){return this._decorationIds.includes(e.id)}clear(){this._decorationIds.length!==0&&this.set([])}set(e){try{this._isChangingDecorations=!0,this._editor.changeDecorations(t=>{this._decorationIds=t.deltaDecorations(this._decorationIds,e)})}finally{this._isChangingDecorations=!1}return this._decorationIds}append(e){let t=[];try{this._isChangingDecorations=!0,this._editor.changeDecorations(i=>{t=i.deltaDecorations([],e),this._decorationIds=this._decorationIds.concat(t)})}finally{this._isChangingDecorations=!1}return t}}const JIt=encodeURIComponent("");function d7(n){return JIt+encodeURIComponent(n.toString())+KIt}const jIt=encodeURIComponent('');function $It(n){return jIt+encodeURIComponent(n.toString())+QIt}kc((n,e)=>{const t=n.getColor(Yg);t&&e.addRule(`.monaco-editor .squiggly-error { background: url("data:image/svg+xml,${d7(t)}") repeat-x bottom left; }`);const i=n.getColor(Sa);i&&e.addRule(`.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,${d7(i)}") repeat-x bottom left; }`);const r=n.getColor(Tl);r&&e.addRule(`.monaco-editor .squiggly-info { background: url("data:image/svg+xml,${d7(r)}") repeat-x bottom left; }`);const o=n.getColor(lbt);o&&e.addRule(`.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,${$It(o)}") no-repeat bottom left; }`);const s=n.getColor(A1t);s&&e.addRule(`.monaco-editor.showUnused .squiggly-inline-unnecessary { opacity: ${s.rgba.a}; }`)});class Nh{constructor(e,t,i){this.owner=e,this.debugNameSource=t,this.referenceFn=i}getDebugName(e){return qIt(e,this)}}const zve=new Map,h7=new WeakMap;function qIt(n,e){var t;const i=h7.get(n);if(i)return i;const r=e2t(n,e);if(r){let o=(t=zve.get(r))!==null&&t!==void 0?t:0;o++,zve.set(r,o);const s=o===1?r:`${r}#${o}`;return h7.set(n,s),s}}function e2t(n,e){const t=h7.get(n);if(t)return t;const i=e.owner?n2t(e.owner)+".":"";let r;const o=e.debugNameSource;if(o!==void 0)if(typeof o=="function"){if(r=o(),r!==void 0)return i+r}else return i+o;const s=e.referenceFn;if(s!==void 0&&(r=yE(s),r!==void 0))return i+r;if(e.owner!==void 0){const a=t2t(e.owner,n);if(a!==void 0)return i+a}}function t2t(n,e){for(const t in n)if(n[t]===e)return t}const Yve=new Map,Hve=new WeakMap;function n2t(n){var e;const t=Hve.get(n);if(t)return t;const i=i2t(n);let r=(e=Yve.get(i))!==null&&e!==void 0?e:0;r++,Yve.set(i,r);const o=r===1?i:`${i}#${r}`;return Hve.set(n,o),o}function i2t(n){const e=n.constructor;return e?e.name:"Object"}function yE(n){const e=n.toString(),i=/\/\*\*\s*@description\s*([^*]*)\*\//.exec(e),r=i?i[1]:void 0;return r==null?void 0:r.trim()}let r2t;function om(){return r2t}let Uve;function o2t(n){Uve=n}let Jve;function s2t(n){Jve=n}class Kve{get TChange(){return null}reportChanges(){this.get()}read(e){return e?e.readObservable(this):this.get()}map(e,t){const i=t===void 0?void 0:e,r=t===void 0?e:t;return Jve({owner:i,debugName:()=>{const o=yE(r);if(o!==void 0)return o;const a=/^\s*\(?\s*([a-zA-Z_$][a-zA-Z_$0-9]*)\s*\)?\s*=>\s*\1(?:\??)\.([a-zA-Z_$][a-zA-Z_$0-9]*)\s*$/.exec(r.toString());if(a)return`${this.debugName}.${a[2]}`;if(!i)return`${this.debugName} (mapped)`}},o=>r(this.read(o),o))}recomputeInitiallyAndOnChange(e,t){return e.add(Uve(this,t)),this}}class uD extends Kve{constructor(){super(...arguments),this.observers=new Set}addObserver(e){const t=this.observers.size;this.observers.add(e),t===0&&this.onFirstObserverAdded()}removeObserver(e){this.observers.delete(e)&&this.observers.size===0&&this.onLastObserverRemoved()}onFirstObserverAdded(){}onLastObserverRemoved(){}}function rr(n,e){const t=new SE(n,e);try{n(t)}finally{t.finish()}}let IE;function wE(n){if(IE)n(IE);else{const e=new SE(n,void 0);IE=e;try{n(e)}finally{e.finish(),IE=void 0}}}async function a2t(n,e){const t=new SE(n,e);try{await n(t)}finally{t.finish()}}function cD(n,e,t){n?e(n):rr(e,t)}class SE{constructor(e,t){var i;this._fn=e,this._getDebugName=t,this.updatingObservers=[],(i=om())===null||i===void 0||i.handleBeginTransaction(this)}getDebugName(){return this._getDebugName?this._getDebugName():yE(this._fn)}updateObserver(e,t){this.updatingObservers.push({observer:e,observable:t}),e.beginUpdate(t)}finish(){var e;const t=this.updatingObservers;for(let i=0;i{},()=>`Setting ${this.debugName}`));try{const s=this._value;this._setValue(e),(r=om())===null||r===void 0||r.handleObservableChanged(this,{oldValue:s,newValue:e,change:i,didChange:!0,hadValue:!0});for(const a of this.observers)t.updateObserver(a,this),a.handleChange(this,i)}finally{o&&o.finish()}}toString(){return`${this.debugName}: ${this._value}`}_setValue(e){this._value=e}}function dD(n,e){return typeof n=="string"?new jve(void 0,n,e):new jve(n,void 0,e)}class jve extends g7{_setValue(e){this._value!==e&&(this._value&&this._value.dispose(),this._value=e)}dispose(){var e;(e=this._value)===null||e===void 0||e.dispose()}}const $2=(n,e)=>n===e;function gn(n,e){return e!==void 0?new tw(new Nh(n,void 0,e),e,void 0,void 0,void 0,$2):new tw(new Nh(void 0,void 0,n),n,void 0,void 0,void 0,$2)}function q2(n,e){var t;return new tw(new Nh(n.owner,n.debugName,n.debugReferenceFn),e,void 0,void 0,n.onLastObserverRemoved,(t=n.equalityComparer)!==null&&t!==void 0?t:$2)}s2t(q2);function l2t(n,e){var t;return new tw(new Nh(n.owner,n.debugName,void 0),e,n.createEmptyChangeSummary,n.handleChange,void 0,(t=n.equalityComparer)!==null&&t!==void 0?t:$2)}function ew(n,e){let t,i;e===void 0?(t=n,i=void 0):(i=n,t=e);const r=new je;return new tw(new Nh(i,void 0,t),o=>(r.clear(),t(o,r)),void 0,void 0,()=>r.dispose(),$2)}function Qb(n,e){let t,i;e===void 0?(t=n,i=void 0):(i=n,t=e);const r=new je;return new tw(new Nh(i,void 0,t),o=>{r.clear();const s=t(o);return s&&r.add(s),s},void 0,void 0,()=>r.dispose(),$2)}class tw extends uD{get debugName(){var e;return(e=this._debugNameData.getDebugName(this))!==null&&e!==void 0?e:"(anonymous)"}constructor(e,t,i,r,o=void 0,s){var a,l;super(),this._debugNameData=e,this._computeFn=t,this.createChangeSummary=i,this._handleChange=r,this._handleLastObserverRemoved=o,this._equalityComparator=s,this.state=0,this.value=void 0,this.updateCount=0,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=void 0,this.changeSummary=(a=this.createChangeSummary)===null||a===void 0?void 0:a.call(this),(l=om())===null||l===void 0||l.handleDerivedCreated(this)}onLastObserverRemoved(){var e;this.state=0,this.value=void 0;for(const t of this.dependencies)t.removeObserver(this);this.dependencies.clear(),(e=this._handleLastObserverRemoved)===null||e===void 0||e.call(this)}get(){var e;if(this.observers.size===0){const t=this._computeFn(this,(e=this.createChangeSummary)===null||e===void 0?void 0:e.call(this));return this.onLastObserverRemoved(),t}else{do{if(this.state===1){for(const t of this.dependencies)if(t.reportChanges(),this.state===2)break}this.state===1&&(this.state=3),this._recomputeIfNeeded()}while(this.state!==3);return this.value}}_recomputeIfNeeded(){var e,t;if(this.state===3)return;const i=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=i;const r=this.state!==0,o=this.value;this.state=3;const s=this.changeSummary;this.changeSummary=(e=this.createChangeSummary)===null||e===void 0?void 0:e.call(this);try{this.value=this._computeFn(this,s)}finally{for(const l of this.dependenciesToBeRemoved)l.removeObserver(this);this.dependenciesToBeRemoved.clear()}const a=r&&!this._equalityComparator(o,this.value);if((t=om())===null||t===void 0||t.handleDerivedRecomputed(this,{oldValue:o,newValue:this.value,change:void 0,didChange:a,hadValue:r}),a)for(const l of this.observers)l.handleChange(this,void 0)}toString(){return`LazyDerived<${this.debugName}>`}beginUpdate(e){this.updateCount++;const t=this.updateCount===1;if(this.state===3&&(this.state=1,!t))for(const i of this.observers)i.handlePossibleChange(this);if(t)for(const i of this.observers)i.beginUpdate(this)}endUpdate(e){if(this.updateCount--,this.updateCount===0){const t=[...this.observers];for(const i of t)i.endUpdate(this)}n2(()=>this.updateCount>=0)}handlePossibleChange(e){if(this.state===3&&this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)){this.state=1;for(const t of this.observers)t.handlePossibleChange(this)}}handleChange(e,t){if(this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)){const i=this._handleChange?this._handleChange({changedObservable:e,change:t,didChange:o=>o===e},this.changeSummary):!0,r=this.state===3;if(i&&(this.state===1||r)&&(this.state=2,r))for(const o of this.observers)o.handlePossibleChange(this)}}readObservable(e){e.addObserver(this);const t=e.get();return this.dependencies.add(e),this.dependenciesToBeRemoved.delete(e),t}addObserver(e){const t=!this.observers.has(e)&&this.updateCount>0;super.addObserver(e),t&&e.beginUpdate(this)}removeObserver(e){const t=this.observers.has(e)&&this.updateCount>0;super.removeObserver(e),t&&e.endUpdate(this)}}function Jn(n){return new LE(new Nh(void 0,void 0,n),n,void 0,void 0)}function xE(n,e){var t;return new LE(new Nh(n.owner,n.debugName,(t=n.debugReferenceFn)!==null&&t!==void 0?t:e),e,void 0,void 0)}function hD(n,e){var t;return new LE(new Nh(n.owner,n.debugName,(t=n.debugReferenceFn)!==null&&t!==void 0?t:e),e,n.createEmptyChangeSummary,n.handleChange)}function kh(n){const e=new je,t=xE({owner:void 0,debugName:void 0,debugReferenceFn:n},i=>{e.clear(),n(i,e)});return en(()=>{t.dispose(),e.dispose()})}class LE{get debugName(){var e;return(e=this._debugNameData.getDebugName(this))!==null&&e!==void 0?e:"(anonymous)"}constructor(e,t,i,r){var o,s;this._debugNameData=e,this._runFn=t,this.createChangeSummary=i,this._handleChange=r,this.state=2,this.updateCount=0,this.disposed=!1,this.dependencies=new Set,this.dependenciesToBeRemoved=new Set,this.changeSummary=(o=this.createChangeSummary)===null||o===void 0?void 0:o.call(this),(s=om())===null||s===void 0||s.handleAutorunCreated(this),this._runIfNeeded()}dispose(){this.disposed=!0;for(const e of this.dependencies)e.removeObserver(this);this.dependencies.clear()}_runIfNeeded(){var e,t,i;if(this.state===3)return;const r=this.dependenciesToBeRemoved;this.dependenciesToBeRemoved=this.dependencies,this.dependencies=r,this.state=3;const o=this.disposed;try{if(!o){(e=om())===null||e===void 0||e.handleAutorunTriggered(this);const s=this.changeSummary;this.changeSummary=(t=this.createChangeSummary)===null||t===void 0?void 0:t.call(this),this._runFn(this,s)}}finally{o||(i=om())===null||i===void 0||i.handleAutorunFinished(this);for(const s of this.dependenciesToBeRemoved)s.removeObserver(this);this.dependenciesToBeRemoved.clear()}}toString(){return`Autorun<${this.debugName}>`}beginUpdate(){this.state===3&&(this.state=1),this.updateCount++}endUpdate(){if(this.updateCount===1)do{if(this.state===1){this.state=3;for(const e of this.dependencies)if(e.reportChanges(),this.state===2)break}this._runIfNeeded()}while(this.state!==3);this.updateCount--,n2(()=>this.updateCount>=0)}handlePossibleChange(e){this.state===3&&this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)&&(this.state=1)}handleChange(e,t){this.dependencies.has(e)&&!this.dependenciesToBeRemoved.has(e)&&(!this._handleChange||this._handleChange({changedObservable:e,change:t,didChange:r=>r===e},this.changeSummary))&&(this.state=2)}readObservable(e){if(this.disposed)return e.get();e.addObserver(this);const t=e.get();return this.dependencies.add(e),this.dependenciesToBeRemoved.delete(e),t}}(function(n){n.Observer=LE})(Jn||(Jn={}));function Jf(n){return new u2t(n)}class u2t extends Kve{constructor(e){super(),this.value=e}get debugName(){return this.toString()}get(){return this.value}addObserver(e){}removeObserver(e){}toString(){return`Const: ${this.value}`}}function mr(n,e){return new lv(n,e)}class lv extends uD{constructor(e,t){super(),this.event=e,this._getValue=t,this.hasValue=!1,this.handleEvent=i=>{var r;const o=this._getValue(i),s=this.value,a=!this.hasValue||s!==o;let l=!1;a&&(this.value=o,this.hasValue&&(l=!0,cD(lv.globalTransaction,u=>{var c;(c=om())===null||c===void 0||c.handleFromEventObservableTriggered(this,{oldValue:s,newValue:o,change:void 0,didChange:a,hadValue:this.hasValue});for(const d of this.observers)u.updateObserver(d,this),d.handleChange(this,void 0)},()=>{const u=this.getDebugName();return"Event fired"+(u?`: ${u}`:"")})),this.hasValue=!0),l||(r=om())===null||r===void 0||r.handleFromEventObservableTriggered(this,{oldValue:s,newValue:o,change:void 0,didChange:a,hadValue:this.hasValue})}}getDebugName(){return yE(this._getValue)}get debugName(){const e=this.getDebugName();return"From Event"+(e?`: ${e}`:"")}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0,this.hasValue=!1,this.value=void 0}get(){return this.subscription?(this.hasValue||this.handleEvent(void 0),this.value):this._getValue(void 0)}}(function(n){n.Observer=lv;function e(t,i){let r=!1;lv.globalTransaction===void 0&&(lv.globalTransaction=t,r=!0);try{i()}finally{r&&(lv.globalTransaction=void 0)}}n.batchEventsGlobally=e})(mr||(mr={}));function il(n,e){return new c2t(n,e)}class c2t extends uD{constructor(e,t){super(),this.debugName=e,this.event=t,this.handleEvent=()=>{rr(i=>{for(const r of this.observers)i.updateObserver(r,this),r.handleChange(this,void 0)},()=>this.debugName)}}onFirstObserverAdded(){this.subscription=this.event(this.handleEvent)}onLastObserverRemoved(){this.subscription.dispose(),this.subscription=void 0}get(){}}function m7(n){return typeof n=="string"?new Qve(n):new Qve(void 0,n)}class Qve extends uD{get debugName(){var e;return(e=new Nh(this._owner,this._debugName,void 0).getDebugName(this))!==null&&e!==void 0?e:"Observable Signal"}constructor(e,t){super(),this._debugName=e,this._owner=t}trigger(e,t){if(!e){rr(i=>{this.trigger(i,t)},()=>`Trigger signal ${this.debugName}`);return}for(const i of this.observers)e.updateObserver(i,this),i.handleChange(this,t)}get(){}}function gD(n,e){const t=new d2t(!0,e);return n.addObserver(t),e?e(n.get()):n.reportChanges(),en(()=>{n.removeObserver(t)})}o2t(gD);class d2t{constructor(e,t){this._forceRecompute=e,this._handleValue=t,this._counter=0}beginUpdate(e){this._counter++}endUpdate(e){this._counter--,this._counter===0&&this._forceRecompute&&(this._handleValue?this._handleValue(e.get()):e.reportChanges())}handlePossibleChange(e){}handleChange(e,t){}}function h2t(n){let e;return gn(i=>(e=n(i,e),e))}function g2t(n,e,t,i){let r=new $ve(t,i);return q2({debugReferenceFn:t,owner:n,onLastObserverRemoved:()=>{r.dispose(),r=new $ve(t)}},s=>(r.setItems(e.read(s)),r.getItems()))}class $ve{constructor(e,t){this._map=e,this._keySelector=t,this._cache=new Map,this._items=[]}dispose(){this._cache.forEach(e=>e.store.dispose()),this._cache.clear()}setItems(e){const t=[],i=new Set(this._cache.keys());for(const r of e){const o=this._keySelector?this._keySelector(r):r;let s=this._cache.get(o);if(s)i.delete(o);else{const a=new je;s={out:this._map(r,a),store:a},this._cache.set(o,s)}t.push(s.out)}for(const r of i)this._cache.get(r).store.dispose(),this._cache.delete(r);this._items=t}getItems(){return this._items}}function m2t(n,e,t){return new Promise((i,r)=>{let o=!0,s=!1;const a=n.map(u=>({isFinished:e(u),error:t?t(u):!1,state:u})),l=Jn(u=>{const{isFinished:c,error:d,state:h}=a.read(u);(c||d)&&(o?s=!0:l.dispose(),d?r(d===!0?h:d):i(h))});o=!1,s&&l.dispose()})}class Mh{static capture(e){if(e.getScrollTop()===0||e.hasPendingScrollAnimation())return new Mh(e.getScrollTop(),e.getContentHeight(),null,0,null);let t=null,i=0;const r=e.getVisibleRanges();if(r.length>0){t=r[0].getStartPosition();const o=e.getTopForPosition(t.lineNumber,t.column);i=e.getScrollTop()-o}return new Mh(e.getScrollTop(),e.getContentHeight(),t,i,e.getPosition())}constructor(e,t,i,r,o){this._initialScrollTop=e,this._initialContentHeight=t,this._visiblePosition=i,this._visiblePositionScrollDelta=r,this._cursorPosition=o}restore(e){if(!(this._initialContentHeight===e.getContentHeight()&&this._initialScrollTop===e.getScrollTop())&&this._visiblePosition){const t=e.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);e.setScrollTop(t+this._visiblePositionScrollDelta)}}restoreRelativeVerticalPositionOfCursor(e){if(this._initialContentHeight===e.getContentHeight()&&this._initialScrollTop===e.getScrollTop())return;const t=e.getPosition();if(!this._cursorPosition||!t)return;const i=e.getTopForLineNumber(t.lineNumber)-e.getTopForLineNumber(this._cursorPosition.lineNumber);e.setScrollTop(e.getScrollTop()+i)}}const mD={RESOURCES:"ResourceURLs",DOWNLOAD_URL:"DownloadURL",FILES:"Files",TEXT:Xr.text,INTERNAL_URI_LIST:"application/vnd.code.uri-list"};let FE=()=>({get delay(){return-1},dispose:()=>{},showHover:()=>{}});const f2t=new Mg(()=>FE("mouse",!1)),p2t=new Mg(()=>FE("element",!1));function b2t(n){FE=n}function Kf(n,e){return e?FE(n,!0):n==="element"?p2t.value:f2t.value}var qve,eye;class C2t{constructor(e,t){this.uri=e,this.value=t}}function v2t(n){return Array.isArray(n)}class no{constructor(e,t){if(this[qve]="ResourceMap",e instanceof no)this.map=new Map(e.map),this.toKey=t??no.defaultToKey;else if(v2t(e)){this.map=new Map,this.toKey=t??no.defaultToKey;for(const[i,r]of e)this.set(i,r)}else this.map=new Map,this.toKey=e??no.defaultToKey}set(e,t){return this.map.set(this.toKey(e),new C2t(e,t)),this}get(e){var t;return(t=this.map.get(this.toKey(e)))===null||t===void 0?void 0:t.value}has(e){return this.map.has(this.toKey(e))}get size(){return this.map.size}clear(){this.map.clear()}delete(e){return this.map.delete(this.toKey(e))}forEach(e,t){typeof t<"u"&&(e=e.bind(t));for(const[i,r]of this.map)e(r.value,r.uri,this)}*values(){for(const e of this.map.values())yield e.value}*keys(){for(const e of this.map.values())yield e.uri}*entries(){for(const e of this.map.values())yield[e.uri,e.value]}*[(qve=Symbol.toStringTag,Symbol.iterator)](){for(const[,e]of this.map)yield[e.uri,e.value]}}no.defaultToKey=n=>n.toString();class y2t{constructor(){this[eye]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){var e;return(e=this._head)===null||e===void 0?void 0:e.value}get last(){var e;return(e=this._tail)===null||e===void 0?void 0:e.value}has(e){return this._map.has(e)}get(e,t=0){const i=this._map.get(e);if(i)return t!==0&&this.touch(i,t),i.value}set(e,t,i=0){let r=this._map.get(e);if(r)r.value=t,i!==0&&this.touch(r,i);else{switch(r={key:e,value:t,next:void 0,previous:void 0},i){case 0:this.addItemLast(r);break;case 1:this.addItemFirst(r);break;case 2:this.addItemLast(r);break;default:this.addItemLast(r);break}this._map.set(e,r),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){const t=this._map.get(e);if(t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");const e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){const i=this._state;let r=this._head;for(;r;){if(t?e.bind(t)(r.value,r.key,this):e(r.value,r.key,this),this._state!==i)throw new Error("LinkedMap got modified during iteration.");r=r.next}}keys(){const e=this,t=this._state;let i=this._head;const r={[Symbol.iterator](){return r},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const o={value:i.key,done:!1};return i=i.next,o}else return{value:void 0,done:!0}}};return r}values(){const e=this,t=this._state;let i=this._head;const r={[Symbol.iterator](){return r},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const o={value:i.value,done:!1};return i=i.next,o}else return{value:void 0,done:!0}}};return r}entries(){const e=this,t=this._state;let i=this._head;const r={[Symbol.iterator](){return r},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(i){const o={value:[i.key,i.value],done:!1};return i=i.next,o}else return{value:void 0,done:!0}}};return r}[(eye=Symbol.toStringTag,Symbol.iterator)](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._head,i=this.size;for(;t&&i>e;)this._map.delete(t.key),t=t.next,i--;this._head=t,this._size=i,t&&(t.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{const t=e.next,i=e.previous;if(!t||!i)throw new Error("Invalid list");t.previous=i,i.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(t!==1&&t!==2)){if(t===1){if(e===this._head)return;const i=e.next,r=e.previous;e===this._tail?(r.next=void 0,this._tail=r):(i.previous=r,r.next=i),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===2){if(e===this._tail)return;const i=e.next,r=e.previous;e===this._head?(i.previous=void 0,this._head=i):(i.previous=r,r.next=i),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){const e=[];return this.forEach((t,i)=>{e.push([i,t])}),e}fromJSON(e){this.clear();for(const[t,i]of e)this.set(t,i)}}class uv extends y2t{constructor(e,t=1){super(),this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get(e,t=2){return super.get(e,t)}peek(e){return super.get(e,0)}set(e,t){return super.set(e,t,2),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}}class I2t{constructor(e){if(this._m1=new Map,this._m2=new Map,e)for(const[t,i]of e)this.set(t,i)}clear(){this._m1.clear(),this._m2.clear()}set(e,t){this._m1.set(e,t),this._m2.set(t,e)}get(e){return this._m1.get(e)}getKey(e){return this._m2.get(e)}delete(e){const t=this._m1.get(e);return t===void 0?!1:(this._m1.delete(e),this._m2.delete(t),!0)}keys(){return this._m1.keys()}values(){return this._m1.values()}}class f7{constructor(){this.map=new Map}add(e,t){let i=this.map.get(e);i||(i=new Set,this.map.set(e,i)),i.add(t)}delete(e,t){const i=this.map.get(e);i&&(i.delete(t),i.size===0&&this.map.delete(e))}forEach(e,t){const i=this.map.get(e);i&&i.forEach(t)}get(e){const t=this.map.get(e);return t||new Set}}function tye(...n){return function(e,t){for(let i=0,r=n.length;i0?[{start:0,end:e.length}]:[]:null}function w2t(n,e){const t=e.toLowerCase().indexOf(n.toLowerCase());return t===-1?null:[{start:t,end:t+n.length}]}function iye(n,e){return p7(n.toLowerCase(),e.toLowerCase(),0,0)}function p7(n,e,t,i){if(t===n.length)return[];if(i===e.length)return null;if(n[t]===e[i]){let r=null;return(r=p7(n,e,t+1,i+1))?oye({start:i,end:i+1},r):null}return p7(n,e,t,i+1)}function b7(n){return 97<=n&&n<=122}function DE(n){return 65<=n&&n<=90}function C7(n){return 48<=n&&n<=57}function S2t(n){return n===32||n===9||n===10||n===13}const x2t=new Set;"()[]{}<>`'\"-/;:,.?!".split("").forEach(n=>x2t.add(n.charCodeAt(0)));function rye(n){return b7(n)||DE(n)||C7(n)}function oye(n,e){return e.length===0?e=[n]:n.end===e[0].start?e[0].start=n.start:e.unshift(n),e}function sye(n,e){for(let t=e;t0&&!rye(n.charCodeAt(t-1)))return t}return n.length}function v7(n,e,t,i){if(t===n.length)return[];if(i===e.length)return null;if(n[t]!==e[i].toLowerCase())return null;{let r=null,o=i+1;for(r=v7(n,e,t+1,i+1);!r&&(o=sye(e,o)).6}function _2t(n){const{upperPercent:e,lowerPercent:t,alphaPercent:i,numericPercent:r}=n;return t>.2&&e<.8&&i>.6&&r<.2}function D2t(n){let e=0,t=0,i=0,r=0;for(let o=0;o60&&(e=e.substring(0,60));const t=L2t(e);if(!_2t(t)){if(!F2t(t))return null;e=e.toLowerCase()}let i=null,r=0;for(n=n.toLowerCase();r"u")return[];const e=[],t=n[1];for(let i=n.length-1;i>1;i--){const r=n[i]+t,o=e[e.length-1];o&&o.end===r?o.end=r+1:e.push({start:r,end:r+1})}return e}const $b=128;function y7(){const n=[],e=[];for(let t=0;t<=$b;t++)e[t]=0;for(let t=0;t<=$b;t++)n.push(e.slice(0));return n}function cye(n){const e=[];for(let t=0;t<=n;t++)e[t]=0;return e}const dye=cye(2*$b),I7=cye(2*$b),jf=y7(),cv=y7(),NE=y7();function kE(n,e){if(e<0||e>=n.length)return!1;const t=n.codePointAt(e);switch(t){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:case 36:case 60:case 62:case 40:case 41:case 91:case 93:case 123:case 125:return!0;case void 0:return!1;default:return!!DY(t)}}function hye(n,e){if(e<0||e>=n.length)return!1;switch(n.charCodeAt(e)){case 32:case 9:return!0;default:return!1}}function ME(n,e,t){return e[n]!==t[n]}function Z2t(n,e,t,i,r,o,s=!1){for(;e$b?$b:n.length,l=i.length>$b?$b:i.length;if(t>=a||o>=l||a-t>l-o||!Z2t(e,t,a,r,o,l,!0))return;T2t(a,l,t,o,e,r);let u=1,c=1,d=t,h=o;const g=[!1];for(u=1,d=t;dv,M=A?cv[u][c-1]+(jf[u][c-1]>0?-5:0):0,W=h>v+1&&jf[u][c-1]>0,Z=W?cv[u][c-2]+(jf[u][c-2]>0?-5:0):0;if(W&&(!A||Z>=M)&&(!L||Z>=D))cv[u][c]=Z,NE[u][c]=3,jf[u][c]=0;else if(A&&(!L||M>=D))cv[u][c]=M,NE[u][c]=2,jf[u][c]=0;else if(L)cv[u][c]=D,NE[u][c]=1,jf[u][c]=jf[u-1][c-1]+1;else throw new Error("not possible")}}if(!g[0]&&!s.firstMatchCanBeWeak)return;u--,c--;const m=[cv[u][c],o];let f=0,b=0;for(;u>=1;){let v=c;do{const w=NE[u][v];if(w===3)v=v-2;else if(w===2)v=v-1;else break}while(v>=1);f>1&&e[t+u-1]===r[o+c-1]&&!ME(v+o-1,i,r)&&f+1>jf[u][v]&&(v=c),v===c?f++:f=1,b||(b=v),u--,c=v-1,m.push(c)}l===a&&s.boostFullMatch&&(m[0]+=2);const C=b-a;return m[0]-=C,m}function T2t(n,e,t,i,r,o){let s=n-1,a=e-1;for(;s>=t&&a>=i;)r[s]===o[a]&&(I7[s]=a,s--),a--}function E2t(n,e,t,i,r,o,s,a,l,u,c){if(e[t]!==o[s])return Number.MIN_SAFE_INTEGER;let d=1,h=!1;return s===t-i?d=n[t]===r[s]?7:5:ME(s,r,o)&&(s===0||!ME(s-1,r,o))?(d=n[t]===r[s]?7:5,h=!0):kE(o,s)&&(s===0||!kE(o,s-1))?d=5:(kE(o,s-1)||hye(o,s-1))&&(d=5,h=!0),d>1&&t===i&&(c[0]=!0),h||(h=ME(s,r,o)||kE(o,s-1)||hye(o,s-1)),t===i?s>l&&(d-=h?3:5):u?d+=h?2:0:d+=h?0:1,s+1===a&&(d-=h?3:5),d}function W2t(n,e,t,i,r,o,s){return R2t(n,e,t,i,r,o,!0,s)}function R2t(n,e,t,i,r,o,s,a){let l=nw(n,e,t,i,r,o,a);if(l&&!s)return l;if(n.length>=3){const u=Math.min(7,n.length-1);for(let c=t+1;cl[0])&&(l=h))}}}return l}function G2t(n,e){if(e+1>=n.length)return;const t=n[e],i=n[e+1];if(t!==i)return n.slice(0,e)+i+t+n.slice(e+2)}const V2t="$(",w7=new RegExp(`\\$\\(${on.iconNameExpression}(?:${on.iconModifierExpression})?\\)`,"g"),X2t=new RegExp(`(\\\\)?${w7.source}`,"g");function P2t(n){return n.replace(X2t,(e,t)=>t?e:`\\${e}`)}const O2t=new RegExp(`\\\\${w7.source}`,"g");function B2t(n){return n.replace(O2t,e=>`\\${e}`)}const z2t=new RegExp(`(\\s)?(\\\\)?${w7.source}(\\s)?`,"g");function gye(n){return n.indexOf(V2t)===-1?n:n.replace(z2t,(e,t,i,r)=>i?e:t||r||"")}function Y2t(n){return n?n.replace(/\$\((.*?)\)/g,(e,t)=>` ${t} `).trim():""}const S7=new RegExp(`\\$\\(${on.iconNameCharacter}+\\)`,"g");function fD(n){S7.lastIndex=0;let e="";const t=[];let i=0;for(;;){const r=S7.lastIndex,o=S7.exec(n),s=n.substring(r,o==null?void 0:o.index);if(s.length>0){e+=s;for(let a=0;a" ".repeat(r.length)).replace(/\>/gm,"\\>").replace(/\n/g,t===1?`\\ +`:` + +`),this}appendMarkdown(e){return this.value+=e,this}appendCodeblock(e,t){return this.value+=` +${J2t(t,e)} +`,this}appendLink(e,t,i){return this.value+="[",this.value+=this._escape(t,"]"),this.value+="](",this.value+=this._escape(String(e),")"),i&&(this.value+=` "${this._escape(this._escape(i,'"'),")")}"`),this.value+=")",this}_escape(e,t){const i=new RegExp(Zu(t),"g");return e.replace(i,(r,o)=>e.charAt(o-1)!=="\\"?`\\${r}`:r)}}function iw(n){return sm(n)?!n.value:Array.isArray(n)?n.every(iw):!0}function sm(n){return n instanceof ga?!0:n&&typeof n=="object"?typeof n.value=="string"&&(typeof n.isTrusted=="boolean"||typeof n.isTrusted=="object"||n.isTrusted===void 0)&&(typeof n.supportThemeIcons=="boolean"||n.supportThemeIcons===void 0):!1}function H2t(n,e){return n===e?!0:!n||!e?!1:n.value===e.value&&n.isTrusted===e.isTrusted&&n.supportThemeIcons===e.supportThemeIcons&&n.supportHtml===e.supportHtml&&(n.baseUri===e.baseUri||!!n.baseUri&&!!e.baseUri&&M6($t.from(n.baseUri),$t.from(e.baseUri)))}function U2t(n){return n.replace(/[\\`*_{}[\]()#+\-!~]/g,"\\$&")}function J2t(n,e){var t,i;const r=(i=(t=n.match(/^`+/gm))===null||t===void 0?void 0:t.reduce((s,a)=>s.length>a.length?s:a).length)!==null&&i!==void 0?i:0,o=r>=3?r+1:3;return[`${"`".repeat(o)}${e}`,n,`${"`".repeat(o)}`].join(` +`)}function TE(n){return n.replace(/"/g,""")}function L7(n){return n&&n.replace(/\\([\\`*_{}[\]()#+\-.!~])/g,"$1")}function K2t(n){const e=[],t=n.split("|").map(r=>r.trim());n=t[0];const i=t[1];if(i){const r=/height=(\d+)/.exec(i),o=/width=(\d+)/.exec(i),s=r?r[1]:"",a=o?o[1]:"",l=isFinite(parseInt(a)),u=isFinite(parseInt(s));l&&e.push(`width="${a}"`),u&&e.push(`height="${s}"`)}return{href:n,dimensions:e}}function j2t(n,e){Ll(e)?n.title=gye(e):e!=null&&e.markdownNotSupportedFallback?n.title=e.markdownNotSupportedFallback:n.removeAttribute("title")}class Q2t{constructor(e,t,i){this.hoverDelegate=e,this.target=t,this.fadeInAnimation=i}async update(e,t,i){var r;if(this._cancellationTokenSource&&(this._cancellationTokenSource.dispose(!0),this._cancellationTokenSource=void 0),this.isDisposed)return;let o;if(e===void 0||Ll(e)||e instanceof HTMLElement)o=e;else if(!Q9(e.markdown))o=(r=e.markdown)!==null&&r!==void 0?r:e.markdownNotSupportedFallback;else{this._hoverWidget||this.show(x("iconLabel.loading","Loading..."),t),this._cancellationTokenSource=new co;const s=this._cancellationTokenSource.token;if(o=await e.markdown(s),o===void 0&&(o=e.markdownNotSupportedFallback),this.isDisposed||s.isCancellationRequested)return}this.show(o,t,i)}show(e,t,i){const r=this._hoverWidget;if(this.hasContent(e)){const o={content:e,target:this.target,appearance:{showPointer:this.hoverDelegate.placement==="element",skipFadeInAnimation:!this.fadeInAnimation||!!r},position:{hoverPosition:2},...i};this._hoverWidget=this.hoverDelegate.showHover(o,t)}r==null||r.dispose()}hasContent(e){return e?sm(e)?!!e.value:!0:!1}get isDisposed(){var e;return(e=this._hoverWidget)===null||e===void 0?void 0:e.isDisposed}dispose(){var e,t;(e=this._hoverWidget)===null||e===void 0||e.dispose(),(t=this._cancellationTokenSource)===null||t===void 0||t.dispose(!0),this._cancellationTokenSource=void 0}}function dv(n,e,t,i){let r,o;const s=(C,v)=>{var w;const S=o!==void 0;C&&(o==null||o.dispose(),o=void 0),v&&(r==null||r.dispose(),r=void 0),S&&((w=n.onDidHideHover)===null||w===void 0||w.call(n),o=void 0)},a=(C,v,w)=>new md(async()=>{(!o||o.isDisposed)&&(o=new Q2t(n,w||e,C>0),await o.update(typeof t=="function"?t():t,v,i))},C);let l=!1;const u=Ve(e,at.MOUSE_DOWN,()=>{l=!0,s(!0,!0)},!0),c=Ve(e,at.MOUSE_UP,()=>{l=!1},!0),d=Ve(e,at.MOUSE_LEAVE,C=>{l=!1,s(!1,C.fromElement===e)},!0),h=()=>{if(r)return;const C=new je,v={targetElements:[e],dispose:()=>{}};if(n.placement===void 0||n.placement==="mouse"){const w=S=>{v.x=S.x+10,S.target instanceof HTMLElement&&S.target.classList.contains("action-label")&&s(!0,!0)};C.add(Ve(e,at.MOUSE_MOVE,w,!0))}C.add(a(n.delay,!1,v)),r=C},g=Ve(e,at.MOUSE_OVER,h,!0),m=()=>{if(l||r)return;const C={targetElements:[e],dispose:()=>{}},v=new je,w=()=>s(!0,!0);v.add(Ve(e,at.BLUR,w,!0)),v.add(a(n.delay,!1,C)),r=v},f=Ve(e,at.FOCUS,m,!0);return{show:C=>{s(!1,!0),a(0,C)},hide:()=>{s(!0,!0)},update:async(C,v)=>{t=C,await(o==null?void 0:o.update(t,void 0,v))},dispose:()=>{g.dispose(),d.dispose(),u.dispose(),c.dispose(),f.dispose(),s(!0,!0)}}}function $2t(n,e={}){const t=F7(e);return t.textContent=n,t}function q2t(n,e={}){const t=F7(e);return mye(t,twt(n,!!e.renderCodeSegments),e.actionHandler,e.renderCodeSegments),t}function F7(n){const e=n.inline?"span":"div",t=document.createElement(e);return n.className&&(t.className=n.className),t}class ewt{constructor(e){this.source=e,this.index=0}eos(){return this.index>=this.source.length}next(){const e=this.peek();return this.advance(),e}peek(){return this.source[this.index]}advance(){this.index++}}function mye(n,e,t,i){let r;if(e.type===2)r=document.createTextNode(e.content||"");else if(e.type===3)r=document.createElement("b");else if(e.type===4)r=document.createElement("i");else if(e.type===7&&i)r=document.createElement("code");else if(e.type===5&&t){const o=document.createElement("a");t.disposables.add(Gr(o,"click",s=>{t.callback(String(e.index),s)})),r=o}else e.type===8?r=document.createElement("br"):e.type===1&&(r=n);r&&n!==r&&n.appendChild(r),r&&Array.isArray(e.children)&&e.children.forEach(o=>{mye(r,o,t,i)})}function twt(n,e){const t={type:1,children:[]};let i=0,r=t;const o=[],s=new ewt(n);for(;!s.eos();){let a=s.next();const l=a==="\\"&&_7(s.peek(),e)!==0;if(l&&(a=s.next()),!l&&nwt(a,e)&&a===s.peek()){s.advance(),r.type===2&&(r=o.pop());const u=_7(a,e);if(r.type===u||r.type===5&&u===6)r=o.pop();else{const c={type:u,children:[]};u===5&&(c.index=i,i++),r.children.push(c),o.push(r),r=c}}else if(a===` +`)r.type===2&&(r=o.pop()),r.children.push({type:8});else if(r.type!==2){const u={type:2,content:a};r.children.push(u),o.push(r),r=u}else r.content+=a}return r.type===2&&(r=o.pop()),t}function nwt(n,e){return _7(n,e)!==0}function _7(n,e){switch(n){case"*":return 3;case"_":return 4;case"[":return 5;case"]":return 6;case"`":return e?7:0;default:return 0}}const iwt=new RegExp(`(\\\\)?\\$\\((${on.iconNameExpression}(?:${on.iconModifierExpression})?)\\)`,"g");function qb(n){const e=new Array;let t,i=0,r=0;for(;(t=iwt.exec(n))!==null;){r=t.index||0,ihe.length)&&(de=he.length);for(var ge=0,j=new Array(de);ge=he.length?{done:!0}:{done:!1,value:he[j++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function a(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}e.defaults=a();function l(he){e.defaults=he}var u=/[&<>"']/,c=/[&<>"']/g,d=/[<>"']|&(?!#?\w+;)/,h=/[<>"']|&(?!#?\w+;)/g,g={"&":"&","<":"<",">":">",'"':""","'":"'"},m=function(de){return g[de]};function f(he,de){if(de){if(u.test(he))return he.replace(c,m)}else if(d.test(he))return he.replace(h,m);return he}var b=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function C(he){return he.replace(b,function(de,ge){return ge=ge.toLowerCase(),ge==="colon"?":":ge.charAt(0)==="#"?ge.charAt(1)==="x"?String.fromCharCode(parseInt(ge.substring(2),16)):String.fromCharCode(+ge.substring(1)):""})}var v=/(^|[^\[])\^/g;function w(he,de){he=typeof he=="string"?he:he.source,de=de||"";var ge={replace:function(Q,q){return q=q.source||q,q=q.replace(v,"$1"),he=he.replace(Q,q),ge},getRegex:function(){return new RegExp(he,de)}};return ge}var S=/[^\w:]/g,F=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function L(he,de,ge){if(he){var j;try{j=decodeURIComponent(C(ge)).replace(S,"").toLowerCase()}catch{return null}if(j.indexOf("javascript:")===0||j.indexOf("vbscript:")===0||j.indexOf("data:")===0)return null}de&&!F.test(ge)&&(ge=Z(de,ge));try{ge=encodeURI(ge).replace(/%25/g,"%")}catch{return null}return ge}var D={},A=/^[^:]+:\/*[^/]*$/,M=/^([^:]+:)[\s\S]*$/,W=/^([^:]+:\/*[^/]*)[\s\S]*$/;function Z(he,de){D[" "+he]||(A.test(he)?D[" "+he]=he+"/":D[" "+he]=z(he,"/",!0)),he=D[" "+he];var ge=he.indexOf(":")===-1;return de.substring(0,2)==="//"?ge?de:he.replace(M,"$1")+de:de.charAt(0)==="/"?ge?de:he.replace(W,"$1")+de:he+de}var T={exec:function(){}};function E(he){for(var de=1,ge,j;de=0&&Ce[Ae]==="\\";)Le=!Le;return Le?"|":" |"}),j=ge.split(/ \|/),Q=0;if(j[0].trim()||j.shift(),j.length>0&&!j[j.length-1].trim()&&j.pop(),j.length>de)j.splice(de);else for(;j.length1;)de&1&&(ge+=he),de>>=1,he+=he;return ge+he}function Y(he,de,ge,j){var Q=de.href,q=de.title?f(de.title):null,te=he[1].replace(/\\([\[\]])/g,"$1");if(he[0].charAt(0)!=="!"){j.state.inLink=!0;var Ce={type:"link",raw:ge,href:Q,title:q,text:te,tokens:j.inlineTokens(te)};return j.state.inLink=!1,Ce}return{type:"image",raw:ge,href:Q,title:q,text:f(te)}}function k(he,de){var ge=he.match(/^(\s+)(?:```)/);if(ge===null)return de;var j=ge[1];return de.split(` +`).map(function(Q){var q=Q.match(/^\s+/);if(q===null)return Q;var te=q[0];return te.length>=j.length?Q.slice(j.length):Q}).join(` +`)}var X=function(){function he(ge){this.options=ge||e.defaults}var de=he.prototype;return de.space=function(j){var Q=this.rules.block.newline.exec(j);if(Q&&Q[0].length>0)return{type:"space",raw:Q[0]}},de.code=function(j){var Q=this.rules.block.code.exec(j);if(Q){var q=Q[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:Q[0],codeBlockStyle:"indented",text:this.options.pedantic?q:z(q,` +`)}}},de.fences=function(j){var Q=this.rules.block.fences.exec(j);if(Q){var q=Q[0],te=k(q,Q[3]||"");return{type:"code",raw:q,lang:Q[2]?Q[2].trim():Q[2],text:te}}},de.heading=function(j){var Q=this.rules.block.heading.exec(j);if(Q){var q=Q[2].trim();if(/#$/.test(q)){var te=z(q,"#");(this.options.pedantic||!te||/ $/.test(te))&&(q=te.trim())}return{type:"heading",raw:Q[0],depth:Q[1].length,text:q,tokens:this.lexer.inline(q)}}},de.hr=function(j){var Q=this.rules.block.hr.exec(j);if(Q)return{type:"hr",raw:Q[0]}},de.blockquote=function(j){var Q=this.rules.block.blockquote.exec(j);if(Q){var q=Q[0].replace(/^ *>[ \t]?/gm,"");return{type:"blockquote",raw:Q[0],tokens:this.lexer.blockTokens(q,[]),text:q}}},de.list=function(j){var Q=this.rules.block.list.exec(j);if(Q){var q,te,Ce,Le,Ae,Oe,tt,We,ht,He,Re,dt,yt=Q[1].trim(),Kt=yt.length>1,Wt={type:"list",raw:"",ordered:Kt,start:Kt?+yt.slice(0,-1):"",loose:!1,items:[]};yt=Kt?"\\d{1,9}\\"+yt.slice(-1):"\\"+yt,this.options.pedantic&&(yt=Kt?yt:"[*+-]");for(var Ut=new RegExp("^( {0,3}"+yt+")((?:[ ][^\\n]*)?(?:\\n|$))");j&&(dt=!1,!(!(Q=Ut.exec(j))||this.rules.block.hr.test(j)));){if(q=Q[0],j=j.substring(q.length),We=Q[2].split(` +`,1)[0],ht=j.split(` +`,1)[0],this.options.pedantic?(Le=2,Re=We.trimLeft()):(Le=Q[2].search(/[^ ]/),Le=Le>4?1:Le,Re=We.slice(Le),Le+=Q[1].length),Oe=!1,!We&&/^ *$/.test(ht)&&(q+=ht+` +`,j=j.substring(ht.length+1),dt=!0),!dt)for(var Nn=new RegExp("^ {0,"+Math.min(3,Le-1)+"}(?:[*+-]|\\d{1,9}[.)])((?: [^\\n]*)?(?:\\n|$))"),di=new RegExp("^ {0,"+Math.min(3,Le-1)+"}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)"),pe=new RegExp("^ {0,"+Math.min(3,Le-1)+"}(?:```|~~~)"),xe=new RegExp("^ {0,"+Math.min(3,Le-1)+"}#");j&&(He=j.split(` +`,1)[0],We=He,this.options.pedantic&&(We=We.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")),!(pe.test(We)||xe.test(We)||Nn.test(We)||di.test(j)));){if(We.search(/[^ ]/)>=Le||!We.trim())Re+=` +`+We.slice(Le);else if(!Oe)Re+=` +`+We;else break;!Oe&&!We.trim()&&(Oe=!0),q+=He+` +`,j=j.substring(He.length+1)}Wt.loose||(tt?Wt.loose=!0:/\n *\n *$/.test(q)&&(tt=!0)),this.options.gfm&&(te=/^\[[ xX]\] /.exec(Re),te&&(Ce=te[0]!=="[ ] ",Re=Re.replace(/^\[[ xX]\] +/,""))),Wt.items.push({type:"list_item",raw:q,task:!!te,checked:Ce,loose:!1,text:Re}),Wt.raw+=q}Wt.items[Wt.items.length-1].raw=q.trimRight(),Wt.items[Wt.items.length-1].text=Re.trimRight(),Wt.raw=Wt.raw.trimRight();var _e=Wt.items.length;for(Ae=0;Ae<_e;Ae++){this.lexer.state.top=!1,Wt.items[Ae].tokens=this.lexer.blockTokens(Wt.items[Ae].text,[]);var Pe=Wt.items[Ae].tokens.filter(function(nt){return nt.type==="space"}),qe=Pe.every(function(nt){for(var wt=nt.raw.split(""),St=0,et=s(wt),xt;!(xt=et()).done;){var Zt=xt.value;if(Zt===` +`&&(St+=1),St>1)return!0}return!1});!Wt.loose&&Pe.length&&qe&&(Wt.loose=!0,Wt.items[Ae].loose=!0)}return Wt}},de.html=function(j){var Q=this.rules.block.html.exec(j);if(Q){var q={type:"html",raw:Q[0],pre:!this.options.sanitizer&&(Q[1]==="pre"||Q[1]==="script"||Q[1]==="style"),text:Q[0]};if(this.options.sanitize){var te=this.options.sanitizer?this.options.sanitizer(Q[0]):f(Q[0]);q.type="paragraph",q.text=te,q.tokens=this.lexer.inline(te)}return q}},de.def=function(j){var Q=this.rules.block.def.exec(j);if(Q){Q[3]&&(Q[3]=Q[3].substring(1,Q[3].length-1));var q=Q[1].toLowerCase().replace(/\s+/g," ");return{type:"def",tag:q,raw:Q[0],href:Q[2],title:Q[3]}}},de.table=function(j){var Q=this.rules.block.table.exec(j);if(Q){var q={type:"table",header:V(Q[1]).map(function(tt){return{text:tt}}),align:Q[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:Q[3]&&Q[3].trim()?Q[3].replace(/\n[ \t]*$/,"").split(` +`):[]};if(q.header.length===q.align.length){q.raw=Q[0];var te=q.align.length,Ce,Le,Ae,Oe;for(Ce=0;Ce/i.test(Q[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(Q[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(Q[0])&&(this.lexer.state.inRawBlock=!1),{type:this.options.sanitize?"text":"html",raw:Q[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(Q[0]):f(Q[0]):Q[0]}},de.link=function(j){var Q=this.rules.inline.link.exec(j);if(Q){var q=Q[2].trim();if(!this.options.pedantic&&/^$/.test(q))return;var te=z(q.slice(0,-1),"\\");if((q.length-te.length)%2===0)return}else{var Ce=O(Q[2],"()");if(Ce>-1){var Le=Q[0].indexOf("!")===0?5:4,Ae=Le+Q[1].length+Ce;Q[2]=Q[2].substring(0,Ce),Q[0]=Q[0].substring(0,Ae).trim(),Q[3]=""}}var Oe=Q[2],tt="";if(this.options.pedantic){var We=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(Oe);We&&(Oe=We[1],tt=We[3])}else tt=Q[3]?Q[3].slice(1,-1):"";return Oe=Oe.trim(),/^$/.test(q)?Oe=Oe.slice(1):Oe=Oe.slice(1,-1)),Y(Q,{href:Oe&&Oe.replace(this.rules.inline._escapes,"$1"),title:tt&&tt.replace(this.rules.inline._escapes,"$1")},Q[0],this.lexer)}},de.reflink=function(j,Q){var q;if((q=this.rules.inline.reflink.exec(j))||(q=this.rules.inline.nolink.exec(j))){var te=(q[2]||q[1]).replace(/\s+/g," ");if(te=Q[te.toLowerCase()],!te||!te.href){var Ce=q[0].charAt(0);return{type:"text",raw:Ce,text:Ce}}return Y(q,te,q[0],this.lexer)}},de.emStrong=function(j,Q,q){q===void 0&&(q="");var te=this.rules.inline.emStrong.lDelim.exec(j);if(te&&!(te[3]&&q.match(/(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])/))){var Ce=te[1]||te[2]||"";if(!Ce||Ce&&(q===""||this.rules.inline.punctuation.exec(q))){var Le=te[0].length-1,Ae,Oe,tt=Le,We=0,ht=te[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;for(ht.lastIndex=0,Q=Q.slice(-1*j.length+Le);(te=ht.exec(Q))!=null;)if(Ae=te[1]||te[2]||te[3]||te[4]||te[5]||te[6],!!Ae){if(Oe=Ae.length,te[3]||te[4]){tt+=Oe;continue}else if((te[5]||te[6])&&Le%3&&!((Le+Oe)%3)){We+=Oe;continue}if(tt-=Oe,!(tt>0)){if(Oe=Math.min(Oe,Oe+tt+We),Math.min(Le,Oe)%2){var He=j.slice(1,Le+te.index+Oe);return{type:"em",raw:j.slice(0,Le+te.index+Oe+1),text:He,tokens:this.lexer.inlineTokens(He)}}var Re=j.slice(2,Le+te.index+Oe-1);return{type:"strong",raw:j.slice(0,Le+te.index+Oe+1),text:Re,tokens:this.lexer.inlineTokens(Re)}}}}}},de.codespan=function(j){var Q=this.rules.inline.code.exec(j);if(Q){var q=Q[2].replace(/\n/g," "),te=/[^ ]/.test(q),Ce=/^ /.test(q)&&/ $/.test(q);return te&&Ce&&(q=q.substring(1,q.length-1)),q=f(q,!0),{type:"codespan",raw:Q[0],text:q}}},de.br=function(j){var Q=this.rules.inline.br.exec(j);if(Q)return{type:"br",raw:Q[0]}},de.del=function(j){var Q=this.rules.inline.del.exec(j);if(Q)return{type:"del",raw:Q[0],text:Q[2],tokens:this.lexer.inlineTokens(Q[2])}},de.autolink=function(j,Q){var q=this.rules.inline.autolink.exec(j);if(q){var te,Ce;return q[2]==="@"?(te=f(this.options.mangle?Q(q[1]):q[1]),Ce="mailto:"+te):(te=f(q[1]),Ce=te),{type:"link",raw:q[0],text:te,href:Ce,tokens:[{type:"text",raw:te,text:te}]}}},de.url=function(j,Q){var q;if(q=this.rules.inline.url.exec(j)){var te,Ce;if(q[2]==="@")te=f(this.options.mangle?Q(q[0]):q[0]),Ce="mailto:"+te;else{var Le;do Le=q[0],q[0]=this.rules.inline._backpedal.exec(q[0])[0];while(Le!==q[0]);te=f(q[0]),q[1]==="www."?Ce="http://"+te:Ce=te}return{type:"link",raw:q[0],text:te,href:Ce,tokens:[{type:"text",raw:te,text:te}]}}},de.inlineText=function(j,Q){var q=this.rules.inline.text.exec(j);if(q){var te;return this.lexer.state.inRawBlock?te=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(q[0]):f(q[0]):q[0]:te=f(this.options.smartypants?Q(q[0]):q[0]),{type:"text",raw:q[0],text:te}}},he}(),U={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n *)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$))",def:/^ {0,3}\[(label)\]: *(?:\n *)?]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:T,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};U._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/,U._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,U.def=w(U.def).replace("label",U._label).replace("title",U._title).getRegex(),U.bullet=/(?:[*+-]|\d{1,9}[.)])/,U.listItemStart=w(/^( *)(bull) */).replace("bull",U.bullet).getRegex(),U.list=w(U.list).replace(/bull/g,U.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+U.def.source+")").getRegex(),U._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",U._comment=/|$)/,U.html=w(U.html,"i").replace("comment",U._comment).replace("tag",U._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),U.paragraph=w(U._paragraph).replace("hr",U.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",U._tag).getRegex(),U.blockquote=w(U.blockquote).replace("paragraph",U.paragraph).getRegex(),U.normal=E({},U),U.gfm=E({},U.normal,{table:"^ *([^\\n ].*\\|.*)\\n {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"}),U.gfm.table=w(U.gfm.table).replace("hr",U.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",U._tag).getRegex(),U.gfm.paragraph=w(U._paragraph).replace("hr",U.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",U.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",U._tag).getRegex(),U.pedantic=E({},U.normal,{html:w(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",U._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:T,paragraph:w(U.normal._paragraph).replace("hr",U.hr).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",U.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var R={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:T,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[^*]+(?=[^*])|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[^_]+(?=[^_])|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:T,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~",R.punctuation=w(R.punctuation).replace(/punctuation/g,R._punctuation).getRegex(),R.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g,R.escapedEmSt=/\\\*|\\_/g,R._comment=w(U._comment).replace("(?:-->|$)","-->").getRegex(),R.emStrong.lDelim=w(R.emStrong.lDelim).replace(/punct/g,R._punctuation).getRegex(),R.emStrong.rDelimAst=w(R.emStrong.rDelimAst,"g").replace(/punct/g,R._punctuation).getRegex(),R.emStrong.rDelimUnd=w(R.emStrong.rDelimUnd,"g").replace(/punct/g,R._punctuation).getRegex(),R._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,R._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,R._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,R.autolink=w(R.autolink).replace("scheme",R._scheme).replace("email",R._email).getRegex(),R._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,R.tag=w(R.tag).replace("comment",R._comment).replace("attribute",R._attribute).getRegex(),R._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,R._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/,R._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,R.link=w(R.link).replace("label",R._label).replace("href",R._href).replace("title",R._title).getRegex(),R.reflink=w(R.reflink).replace("label",R._label).replace("ref",U._label).getRegex(),R.nolink=w(R.nolink).replace("ref",U._label).getRegex(),R.reflinkSearch=w(R.reflinkSearch,"g").replace("reflink",R.reflink).replace("nolink",R.nolink).getRegex(),R.normal=E({},R),R.pedantic=E({},R.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:w(/^!?\[(label)\]\((.*?)\)/).replace("label",R._label).getRegex(),reflink:w(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",R._label).getRegex()}),R.gfm=E({},R.normal,{escape:w(R.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\.5&&(j="x"+j.toString(16)),de+="&#"+j+";";return de}var se=function(){function he(ge){this.tokens=[],this.tokens.links=Object.create(null),this.options=ge||e.defaults,this.options.tokenizer=this.options.tokenizer||new X,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};var j={block:U.normal,inline:R.normal};this.options.pedantic?(j.block=U.pedantic,j.inline=R.pedantic):this.options.gfm&&(j.block=U.gfm,this.options.breaks?j.inline=R.breaks:j.inline=R.gfm),this.tokenizer.rules=j}he.lex=function(j,Q){var q=new he(Q);return q.lex(j)},he.lexInline=function(j,Q){var q=new he(Q);return q.inlineTokens(j)};var de=he.prototype;return de.lex=function(j){j=j.replace(/\r\n|\r/g,` +`),this.blockTokens(j,this.tokens);for(var Q;Q=this.inlineQueue.shift();)this.inlineTokens(Q.src,Q.tokens);return this.tokens},de.blockTokens=function(j,Q){var q=this;Q===void 0&&(Q=[]),this.options.pedantic?j=j.replace(/\t/g," ").replace(/^ +$/gm,""):j=j.replace(/^( *)(\t+)/gm,function(tt,We,ht){return We+" ".repeat(ht.length)});for(var te,Ce,Le,Ae;j;)if(!(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some(function(tt){return(te=tt.call({lexer:q},j,Q))?(j=j.substring(te.raw.length),Q.push(te),!0):!1}))){if(te=this.tokenizer.space(j)){j=j.substring(te.raw.length),te.raw.length===1&&Q.length>0?Q[Q.length-1].raw+=` +`:Q.push(te);continue}if(te=this.tokenizer.code(j)){j=j.substring(te.raw.length),Ce=Q[Q.length-1],Ce&&(Ce.type==="paragraph"||Ce.type==="text")?(Ce.raw+=` +`+te.raw,Ce.text+=` +`+te.text,this.inlineQueue[this.inlineQueue.length-1].src=Ce.text):Q.push(te);continue}if(te=this.tokenizer.fences(j)){j=j.substring(te.raw.length),Q.push(te);continue}if(te=this.tokenizer.heading(j)){j=j.substring(te.raw.length),Q.push(te);continue}if(te=this.tokenizer.hr(j)){j=j.substring(te.raw.length),Q.push(te);continue}if(te=this.tokenizer.blockquote(j)){j=j.substring(te.raw.length),Q.push(te);continue}if(te=this.tokenizer.list(j)){j=j.substring(te.raw.length),Q.push(te);continue}if(te=this.tokenizer.html(j)){j=j.substring(te.raw.length),Q.push(te);continue}if(te=this.tokenizer.def(j)){j=j.substring(te.raw.length),Ce=Q[Q.length-1],Ce&&(Ce.type==="paragraph"||Ce.type==="text")?(Ce.raw+=` +`+te.raw,Ce.text+=` +`+te.raw,this.inlineQueue[this.inlineQueue.length-1].src=Ce.text):this.tokens.links[te.tag]||(this.tokens.links[te.tag]={href:te.href,title:te.title});continue}if(te=this.tokenizer.table(j)){j=j.substring(te.raw.length),Q.push(te);continue}if(te=this.tokenizer.lheading(j)){j=j.substring(te.raw.length),Q.push(te);continue}if(Le=j,this.options.extensions&&this.options.extensions.startBlock&&function(){var tt=1/0,We=j.slice(1),ht=void 0;q.options.extensions.startBlock.forEach(function(He){ht=He.call({lexer:this},We),typeof ht=="number"&&ht>=0&&(tt=Math.min(tt,ht))}),tt<1/0&&tt>=0&&(Le=j.substring(0,tt+1))}(),this.state.top&&(te=this.tokenizer.paragraph(Le))){Ce=Q[Q.length-1],Ae&&Ce.type==="paragraph"?(Ce.raw+=` +`+te.raw,Ce.text+=` +`+te.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=Ce.text):Q.push(te),Ae=Le.length!==j.length,j=j.substring(te.raw.length);continue}if(te=this.tokenizer.text(j)){j=j.substring(te.raw.length),Ce=Q[Q.length-1],Ce&&Ce.type==="text"?(Ce.raw+=` +`+te.raw,Ce.text+=` +`+te.text,this.inlineQueue.pop(),this.inlineQueue[this.inlineQueue.length-1].src=Ce.text):Q.push(te);continue}if(j){var Oe="Infinite loop on byte: "+j.charCodeAt(0);if(this.options.silent)break;throw new Error(Oe)}}return this.state.top=!0,Q},de.inline=function(j,Q){return Q===void 0&&(Q=[]),this.inlineQueue.push({src:j,tokens:Q}),Q},de.inlineTokens=function(j,Q){var q=this;Q===void 0&&(Q=[]);var te,Ce,Le,Ae=j,Oe,tt,We;if(this.tokens.links){var ht=Object.keys(this.tokens.links);if(ht.length>0)for(;(Oe=this.tokenizer.rules.inline.reflinkSearch.exec(Ae))!=null;)ht.includes(Oe[0].slice(Oe[0].lastIndexOf("[")+1,-1))&&(Ae=Ae.slice(0,Oe.index)+"["+B("a",Oe[0].length-2)+"]"+Ae.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(Oe=this.tokenizer.rules.inline.blockSkip.exec(Ae))!=null;)Ae=Ae.slice(0,Oe.index)+"["+B("a",Oe[0].length-2)+"]"+Ae.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;(Oe=this.tokenizer.rules.inline.escapedEmSt.exec(Ae))!=null;)Ae=Ae.slice(0,Oe.index)+"++"+Ae.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex);for(;j;)if(tt||(We=""),tt=!1,!(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some(function(Re){return(te=Re.call({lexer:q},j,Q))?(j=j.substring(te.raw.length),Q.push(te),!0):!1}))){if(te=this.tokenizer.escape(j)){j=j.substring(te.raw.length),Q.push(te);continue}if(te=this.tokenizer.tag(j)){j=j.substring(te.raw.length),Ce=Q[Q.length-1],Ce&&te.type==="text"&&Ce.type==="text"?(Ce.raw+=te.raw,Ce.text+=te.text):Q.push(te);continue}if(te=this.tokenizer.link(j)){j=j.substring(te.raw.length),Q.push(te);continue}if(te=this.tokenizer.reflink(j,this.tokens.links)){j=j.substring(te.raw.length),Ce=Q[Q.length-1],Ce&&te.type==="text"&&Ce.type==="text"?(Ce.raw+=te.raw,Ce.text+=te.text):Q.push(te);continue}if(te=this.tokenizer.emStrong(j,Ae,We)){j=j.substring(te.raw.length),Q.push(te);continue}if(te=this.tokenizer.codespan(j)){j=j.substring(te.raw.length),Q.push(te);continue}if(te=this.tokenizer.br(j)){j=j.substring(te.raw.length),Q.push(te);continue}if(te=this.tokenizer.del(j)){j=j.substring(te.raw.length),Q.push(te);continue}if(te=this.tokenizer.autolink(j,oe)){j=j.substring(te.raw.length),Q.push(te);continue}if(!this.state.inLink&&(te=this.tokenizer.url(j,oe))){j=j.substring(te.raw.length),Q.push(te);continue}if(Le=j,this.options.extensions&&this.options.extensions.startInline&&function(){var Re=1/0,dt=j.slice(1),yt=void 0;q.options.extensions.startInline.forEach(function(Kt){yt=Kt.call({lexer:this},dt),typeof yt=="number"&&yt>=0&&(Re=Math.min(Re,yt))}),Re<1/0&&Re>=0&&(Le=j.substring(0,Re+1))}(),te=this.tokenizer.inlineText(Le,ee)){j=j.substring(te.raw.length),te.raw.slice(-1)!=="_"&&(We=te.raw.slice(-1)),tt=!0,Ce=Q[Q.length-1],Ce&&Ce.type==="text"?(Ce.raw+=te.raw,Ce.text+=te.text):Q.push(te);continue}if(j){var He="Infinite loop on byte: "+j.charCodeAt(0);if(this.options.silent)break;throw new Error(He)}}return Q},i(he,null,[{key:"rules",get:function(){return{block:U,inline:R}}}]),he}(),ue=function(){function he(ge){this.options=ge||e.defaults}var de=he.prototype;return de.code=function(j,Q,q){var te=(Q||"").match(/\S*/)[0];if(this.options.highlight){var Ce=this.options.highlight(j,te);Ce!=null&&Ce!==j&&(q=!0,j=Ce)}return j=j.replace(/\n$/,"")+` +`,te?'
'+(q?j:f(j,!0))+`
+`:"
"+(q?j:f(j,!0))+`
+`},de.blockquote=function(j){return`
+`+j+`
+`},de.html=function(j){return j},de.heading=function(j,Q,q,te){if(this.options.headerIds){var Ce=this.options.headerPrefix+te.slug(q);return"'+j+" +`}return""+j+" +`},de.hr=function(){return this.options.xhtml?`
+`:`
+`},de.list=function(j,Q,q){var te=Q?"ol":"ul",Ce=Q&&q!==1?' start="'+q+'"':"";return"<"+te+Ce+`> +`+j+" +`},de.listitem=function(j){return"
  • "+j+`
  • +`},de.checkbox=function(j){return" "},de.paragraph=function(j){return"

    "+j+`

    +`},de.table=function(j,Q){return Q&&(Q=""+Q+""),` + +`+j+` +`+Q+`
    +`},de.tablerow=function(j){return` +`+j+` +`},de.tablecell=function(j,Q){var q=Q.header?"th":"td",te=Q.align?"<"+q+' align="'+Q.align+'">':"<"+q+">";return te+j+(" +`)},de.strong=function(j){return""+j+""},de.em=function(j){return""+j+""},de.codespan=function(j){return""+j+""},de.br=function(){return this.options.xhtml?"
    ":"
    "},de.del=function(j){return""+j+""},de.link=function(j,Q,q){if(j=L(this.options.sanitize,this.options.baseUrl,j),j===null)return q;var te='",te},de.image=function(j,Q,q){if(j=L(this.options.sanitize,this.options.baseUrl,j),j===null)return q;var te=''+q+'":">",te},de.text=function(j){return j},he}(),ce=function(){function he(){}var de=he.prototype;return de.strong=function(j){return j},de.em=function(j){return j},de.codespan=function(j){return j},de.del=function(j){return j},de.html=function(j){return j},de.text=function(j){return j},de.link=function(j,Q,q){return""+q},de.image=function(j,Q,q){return""+q},de.br=function(){return""},he}(),ye=function(){function he(){this.seen={}}var de=he.prototype;return de.serialize=function(j){return j.toLowerCase().trim().replace(/<[!\/a-z].*?>/ig,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")},de.getNextSafeSlug=function(j,Q){var q=j,te=0;if(this.seen.hasOwnProperty(q)){te=this.seen[j];do te++,q=j+"-"+te;while(this.seen.hasOwnProperty(q))}return Q||(this.seen[j]=te,this.seen[q]=0),q},de.slug=function(j,Q){Q===void 0&&(Q={});var q=this.serialize(j);return this.getNextSafeSlug(q,Q.dryrun)},he}(),fe=function(){function he(ge){this.options=ge||e.defaults,this.options.renderer=this.options.renderer||new ue,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new ce,this.slugger=new ye}he.parse=function(j,Q){var q=new he(Q);return q.parse(j)},he.parseInline=function(j,Q){var q=new he(Q);return q.parseInline(j)};var de=he.prototype;return de.parse=function(j,Q){Q===void 0&&(Q=!0);var q="",te,Ce,Le,Ae,Oe,tt,We,ht,He,Re,dt,yt,Kt,Wt,Ut,Nn,di,pe,xe,_e=j.length;for(te=0;te<_e;te++){if(Re=j[te],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[Re.type]&&(xe=this.options.extensions.renderers[Re.type].call({parser:this},Re),xe!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(Re.type))){q+=xe||"";continue}switch(Re.type){case"space":continue;case"hr":{q+=this.renderer.hr();continue}case"heading":{q+=this.renderer.heading(this.parseInline(Re.tokens),Re.depth,C(this.parseInline(Re.tokens,this.textRenderer)),this.slugger);continue}case"code":{q+=this.renderer.code(Re.text,Re.lang,Re.escaped);continue}case"table":{for(ht="",We="",Ae=Re.header.length,Ce=0;Ce0&&Ut.tokens[0].type==="paragraph"?(Ut.tokens[0].text=pe+" "+Ut.tokens[0].text,Ut.tokens[0].tokens&&Ut.tokens[0].tokens.length>0&&Ut.tokens[0].tokens[0].type==="text"&&(Ut.tokens[0].tokens[0].text=pe+" "+Ut.tokens[0].tokens[0].text)):Ut.tokens.unshift({type:"text",text:pe}):Wt+=pe),Wt+=this.parse(Ut.tokens,Kt),He+=this.renderer.listitem(Wt,di,Nn);q+=this.renderer.list(He,dt,yt);continue}case"html":{q+=this.renderer.html(Re.text);continue}case"paragraph":{q+=this.renderer.paragraph(this.parseInline(Re.tokens));continue}case"text":{for(He=Re.tokens?this.parseInline(Re.tokens):Re.text;te+1<_e&&j[te+1].type==="text";)Re=j[++te],He+=` +`+(Re.tokens?this.parseInline(Re.tokens):Re.text);q+=Q?this.renderer.paragraph(He):He;continue}default:{var Pe='Token with "'+Re.type+'" type was not found.';if(this.options.silent)return;throw new Error(Pe)}}}return q},de.parseInline=function(j,Q){Q=Q||this.renderer;var q="",te,Ce,Le,Ae=j.length;for(te=0;te"u"||he===null)throw new Error("marked(): input parameter is undefined or null");if(typeof he!="string")throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(he)+", string expected");if(typeof de=="function"&&(ge=de,de=null),de=E({},le.defaults,de||{}),P(de),ge){var j=de.highlight,Q;try{Q=se.lex(he,de)}catch(Ae){return ge(Ae)}var q=function(Oe){var tt;if(!Oe)try{de.walkTokens&&le.walkTokens(Q,de.walkTokens),tt=fe.parse(Q,de)}catch(We){Oe=We}return de.highlight=j,Oe?ge(Oe):ge(null,tt)};if(!j||j.length<3||(delete de.highlight,!Q.length))return q();var te=0;le.walkTokens(Q,function(Ae){Ae.type==="code"&&(te++,setTimeout(function(){j(Ae.text,Ae.lang,function(Oe,tt){if(Oe)return q(Oe);tt!=null&&tt!==Ae.text&&(Ae.text=tt,Ae.escaped=!0),te--,te===0&&q()})},0))}),te===0&&q();return}function Ce(Ae){if(Ae.message+=` +Please report this to https://github.com/markedjs/marked.`,de.silent)return"

    An error occurred:

    "+f(Ae.message+"",!0)+"
    ";throw Ae}try{var Le=se.lex(he,de);if(de.walkTokens){if(de.async)return Promise.all(le.walkTokens(Le,de.walkTokens)).then(function(){return fe.parse(Le,de)}).catch(Ce);le.walkTokens(Le,de.walkTokens)}return fe.parse(Le,de)}catch(Ae){Ce(Ae)}}le.options=le.setOptions=function(he){return E(le.defaults,he),l(le.defaults),le},le.getDefaults=a,le.defaults=e.defaults,le.use=function(){for(var he=arguments.length,de=new Array(he),ge=0;ge"u"||he===null)throw new Error("marked.parseInline(): input parameter is undefined or null");if(typeof he!="string")throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(he)+", string expected");de=E({},le.defaults,de||{}),P(de);try{var ge=se.lexInline(he,de);return de.walkTokens&&le.walkTokens(ge,de.walkTokens),fe.parseInline(ge,de)}catch(j){if(j.message+=` +Please report this to https://github.com/markedjs/marked.`,de.silent)return"

    An error occurred:

    "+f(j.message+"",!0)+"
    ";throw j}},le.Parser=fe,le.parser=fe.parse,le.Renderer=ue,le.TextRenderer=ce,le.Lexer=se,le.lexer=se.lex,le.Tokenizer=X,le.Slugger=ye,le.parse=le;var Ze=le.options,ke=le.setOptions,Ne=le.use,ze=le.walkTokens,Ke=le.parseInline,ut=le,Ct=fe.parse,ot=se.lex;e.Lexer=se,e.Parser=fe,e.Renderer=ue,e.Slugger=ye,e.TextRenderer=ce,e.Tokenizer=X,e.getDefaults=a,e.lexer=ot,e.marked=le,e.options=Ze,e.parse=ut,e.parseInline=Ke,e.parser=Ct,e.setOptions=ke,e.use=Ne,e.walkTokens=ze,Object.defineProperty(e,"__esModule",{value:!0})})})(),rl.Lexer||exports.Lexer,rl.Parser||exports.Parser,rl.Renderer||exports.Renderer,rl.Slugger||exports.Slugger,rl.TextRenderer||exports.TextRenderer,rl.Tokenizer||exports.Tokenizer,rl.getDefaults||exports.getDefaults,rl.lexer||exports.lexer;var am=rl.marked||exports.marked;rl.options||exports.options,rl.parse||exports.parse,rl.parseInline||exports.parseInline,rl.parser||exports.parser,rl.setOptions||exports.setOptions,rl.use||exports.use,rl.walkTokens||exports.walkTokens;function rwt(n){return JSON.stringify(n,owt)}function N7(n){let e=JSON.parse(n);return e=k7(e),e}function owt(n,e){return e instanceof RegExp?{$mid:2,source:e.source,flags:e.flags}:e}function k7(n,e=0){if(!n||e>200)return n;if(typeof n=="object"){switch(n.$mid){case 1:return $t.revive(n);case 2:return new RegExp(n.source,n.flags);case 17:return new Date(n.source)}if(n instanceof nT||n instanceof Uint8Array)return n;if(Array.isArray(n))for(let t=0;t{let i=[],r=[];return n&&({href:n,dimensions:i}=K2t(n),r.push(`src="${TE(n)}"`)),t&&r.push(`alt="${TE(t)}"`),e&&r.push(`title="${TE(e)}"`),i.length&&(r=r.concat(i)),""},paragraph:n=>`

    ${n}

    `,link:(n,e,t)=>typeof n!="string"?"":(n===t&&(t=L7(t)),e=typeof e=="string"?TE(L7(e)):"",n=L7(n),n=n.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),`
    ${t}`)});function EE(n,e={},t={}){var i,r;const o=new je;let s=!1;const a=F7(e),l=function(C){let v;try{v=N7(decodeURIComponent(C))}catch{}return v?(v=a1e(v,w=>{if(n.uris&&n.uris[w])return $t.revive(n.uris[w])}),encodeURIComponent(JSON.stringify(v))):C},u=function(C,v){const w=n.uris&&n.uris[C];let S=$t.revive(w);return v?C.startsWith(xn.data+":")?C:(S||(S=$t.parse(C)),Vbe.uriToBrowserUri(S).toString(!0)):!S||$t.parse(C).toString()===S.toString()?C:(S.query&&(S=S.with({query:l(S.query)})),S.toString())},c=new am.Renderer;c.image=M7.image,c.link=M7.link,c.paragraph=M7.paragraph;const d=[],h=[];if(e.codeBlockRendererSync?c.code=(C,v)=>{const w=A7.nextId(),S=e.codeBlockRendererSync(fye(v),C);return h.push([w,S]),`
    ${c5(C)}
    `}:e.codeBlockRenderer&&(c.code=(C,v)=>{const w=A7.nextId(),S=e.codeBlockRenderer(fye(v),C);return d.push(S.then(F=>[w,F])),`
    ${c5(C)}
    `}),e.actionHandler){const C=function(S){let F=S.target;if(!(F.tagName!=="A"&&(F=F.parentElement,!F||F.tagName!=="A")))try{let L=F.dataset.href;L&&(n.baseUri&&(L=Z7($t.from(n.baseUri),L)),e.actionHandler.callback(L,S))}catch(L){fn(L)}finally{S.preventDefault()}},v=e.actionHandler.disposables.add(new Qn(a,"click")),w=e.actionHandler.disposables.add(new Qn(a,"auxclick"));e.actionHandler.disposables.add(ft.any(v.event,w.event)(S=>{const F=new dd(qt(a),S);!F.leftButton&&!F.middleButton||C(F)})),e.actionHandler.disposables.add(Ve(a,"keydown",S=>{const F=new nr(S);!F.equals(10)&&!F.equals(3)||C(F)}))}n.supportHtml||(t.sanitizer=C=>(n.isTrusted?C.match(/^(]+>)|(<\/\s*span>)$/):void 0)?C:"",t.sanitize=!0,t.silent=!0),t.renderer=c;let g=(i=n.value)!==null&&i!==void 0?i:"";g.length>1e5&&(g=`${g.substr(0,1e5)}…`),n.supportThemeIcons&&(g=B2t(g));let m;if(e.fillInIncompleteTokens){const C={...am.defaults,...t},v=am.lexer(g,C),w=gwt(v);m=am.parser(w,C)}else m=am.parse(g,t);n.supportThemeIcons&&(m=qb(m).map(v=>typeof v=="string"?v:v.outerHTML).join(""));const b=new DOMParser().parseFromString(T7(n,m),"text/html");if(b.body.querySelectorAll("img").forEach(C=>{const v=C.getAttribute("src");if(v){let w=v;try{n.baseUri&&(w=Z7($t.from(n.baseUri),w))}catch{}C.src=u(w,!0)}}),b.body.querySelectorAll("a").forEach(C=>{const v=C.getAttribute("href");if(C.setAttribute("href",""),!v||/^data:|javascript:/i.test(v)||/^command:/i.test(v)&&!n.isTrusted||/^command:(\/\/\/)?_workbench\.downloadResource/i.test(v))C.replaceWith(...C.childNodes);else{let w=u(v,!1);n.baseUri&&(w=Z7($t.from(n.baseUri),v)),C.dataset.href=w}}),a.innerHTML=T7(n,b.body.innerHTML),d.length>0)Promise.all(d).then(C=>{var v,w;if(s)return;const S=new Map(C),F=a.querySelectorAll("div[data-code]");for(const L of F){const D=S.get((v=L.dataset.code)!==null&&v!==void 0?v:"");D&&ua(L,D)}(w=e.asyncRenderCallback)===null||w===void 0||w.call(e)});else if(h.length>0){const C=new Map(h),v=a.querySelectorAll("div[data-code]");for(const w of v){const S=C.get((r=w.dataset.code)!==null&&r!==void 0?r:"");S&&ua(w,S)}}if(e.asyncRenderCallback)for(const C of a.getElementsByTagName("img")){const v=o.add(Ve(C,"load",()=>{v.dispose(),e.asyncRenderCallback()}))}return{element:a,dispose:()=>{s=!0,o.dispose()}}}function fye(n){if(!n)return"";const e=n.split(/[\s+|:|,|\{|\?]/,1);return e.length?e[0]:n}function Z7(n,e){return/^\w[\w\d+.-]*:/.test(e)?e:n.path.endsWith("/")?qCe(n,e).toString():qCe(oE(n),e).toString()}function T7(n,e){const{config:t,allowedSchemes:i}=awt(n);yY("uponSanitizeAttribute",(o,s)=>{var a;if(s.attrName==="style"||s.attrName==="class"){if(o.tagName==="SPAN"){if(s.attrName==="style"){s.keepAttr=/^(color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?(background-color\:(#[0-9a-fA-F]+|var\(--vscode(-[a-zA-Z]+)+\));)?$/.test(s.attrValue);return}else if(s.attrName==="class"){s.keepAttr=/^codicon codicon-[a-z\-]+( codicon-modifier-[a-z\-]+)?$/.test(s.attrValue);return}}s.keepAttr=!1;return}else if(o.tagName==="INPUT"&&((a=o.attributes.getNamedItem("type"))===null||a===void 0?void 0:a.value)==="checkbox"){if(s.attrName==="type"&&s.attrValue==="checkbox"||s.attrName==="disabled"||s.attrName==="checked"){s.keepAttr=!0;return}s.keepAttr=!1}}),yY("uponSanitizeElement",(o,s)=>{var a,l;s.tagName==="input"&&(((a=o.attributes.getNamedItem("type"))===null||a===void 0?void 0:a.value)==="checkbox"?o.setAttribute("disabled",""):(l=o.parentElement)===null||l===void 0||l.removeChild(o))});const r=Kgt(i);try{return pbe(e,{...t,RETURN_TRUSTED_TYPE:!0})}finally{bbe("uponSanitizeAttribute"),r.dispose()}}const swt=["align","autoplay","alt","checked","class","controls","data-code","data-href","disabled","draggable","height","href","loop","muted","playsinline","poster","src","style","target","title","type","width","start"];function awt(n){const e=[xn.http,xn.https,xn.mailto,xn.data,xn.file,xn.vscodeFileResource,xn.vscodeRemote,xn.vscodeRemoteResource];return n.isTrusted&&e.push(xn.command),{config:{ALLOWED_TAGS:[...jgt],ALLOWED_ATTR:swt,ALLOW_UNKNOWN_PROTOCOLS:!0},allowedSchemes:e}}function lwt(n){return typeof n=="string"?n:uwt(n)}function uwt(n){var e;let t=(e=n.value)!==null&&e!==void 0?e:"";t.length>1e5&&(t=`${t.substr(0,1e5)}…`);const i=am.parse(t,{renderer:dwt.value}).replace(/&(#\d+|[a-zA-Z]+);/g,r=>{var o;return(o=cwt.get(r))!==null&&o!==void 0?o:r});return T7({isTrusted:!1},i).toString()}const cwt=new Map([[""",'"'],[" "," "],["&","&"],["'","'"],["<","<"],[">",">"]]),dwt=new Mg(()=>{const n=new am.Renderer;return n.code=e=>e,n.blockquote=e=>e,n.html=e=>"",n.heading=(e,t,i)=>e+` +`,n.hr=()=>"",n.list=(e,t)=>e,n.listitem=e=>e+` +`,n.paragraph=e=>e+` +`,n.table=(e,t)=>e+t+` +`,n.tablerow=e=>e,n.tablecell=(e,t)=>e+" ",n.strong=e=>e,n.em=e=>e,n.codespan=e=>e,n.br=()=>` +`,n.del=e=>e,n.image=(e,t,i)=>"",n.text=e=>e,n.link=(e,t,i)=>i,n});function E7(n){let e="";return n.forEach(t=>{e+=t.raw}),e}function hwt(n){var e,t;for(let i=0;ipye(a.raw)))return vwt(n)}}}}function pye(n){return!!n.match(/^[^\[]*\]\([^\)]*$/)}function gwt(n){let e,t;for(e=0;e"u"&&s.match(/^\s*\|/)){const a=s.match(/(\|[^\|]+)(?=\||$)/g);a&&(i=a.length)}else if(typeof i=="number")if(s.match(/^\s*\|/)){if(o!==t.length-1)return;r=!0}else return}if(typeof i=="number"&&i>0){const o=r?t.slice(0,-1).join(` +`):e,s=!!o.match(/\|\s*$/),a=o+(s?"":"|")+` +|${" --- |".repeat(i)}`;return am.lexer(a)}}class Swt{constructor(e){this.spliceables=e}splice(e,t,i){this.spliceables.forEach(r=>r.splice(e,t,i))}}function ol(n,e,t){return Math.min(Math.max(n,e),t)}class Cye{constructor(){this._n=1,this._val=0}update(e){return this._val=this._val+(e-this._val)/this._n,this._n+=1,this._val}get value(){return this._val}}class xwt{constructor(e){this._n=0,this._val=0,this._values=[],this._index=0,this._sum=0,this._values=new Array(e),this._values.fill(0,0,e)}update(e){const t=this._values[this._index];return this._values[this._index]=e,this._index=(this._index+1)%this._values.length,this._sum-=t,this._sum+=e,this._n=s.end||s.start>=o.end)return{start:0,end:0};const a=Math.max(o.start,s.start),l=Math.min(o.end,s.end);return l-a<=0?{start:0,end:0}:{start:a,end:l}}n.intersect=e;function t(o){return o.end-o.start<=0}n.isEmpty=t;function i(o,s){return!t(e(o,s))}n.intersects=i;function r(o,s){const a=[],l={start:o.start,end:Math.min(s.start,o.end)},u={start:Math.max(s.end,o.start),end:o.end};return t(l)||a.push(l),t(u)||a.push(u),a}n.relativeComplement=r})(ma||(ma={}));function vye(n,e){const t=[];for(const i of e){if(n.start>=i.range.end)continue;if(n.ende.concat(t),[]))}class _wt{get paddingTop(){return this._paddingTop}set paddingTop(e){this._size=this._size+e-this._paddingTop,this._paddingTop=e}constructor(e){this.groups=[],this._size=0,this._paddingTop=0,this._paddingTop=e??0,this._size=this._paddingTop}splice(e,t,i=[]){const r=i.length-t,o=vye({start:0,end:e},this.groups),s=vye({start:e+t,end:Number.POSITIVE_INFINITY},this.groups).map(l=>({range:W7(l.range,r),size:l.size})),a=i.map((l,u)=>({range:{start:e+u,end:e+u+1},size:l.size}));this.groups=Fwt(o,a,s),this._size=this._paddingTop+this.groups.reduce((l,u)=>l+u.size*(u.range.end-u.range.start),0)}get count(){const e=this.groups.length;return e?this.groups[e-1].range.end:0}get size(){return this._size}indexAt(e){if(e<0)return-1;if(e{for(const i of e)this.getRenderer(t).disposeTemplate(i.templateData),i.templateData=null}),this.cache.clear(),this.transactionNodesPendingRemoval.clear()}getRenderer(e){const t=this.renderers.get(e);if(!t)throw new Error(`No renderer found for ${e}`);return t}}var Qf=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o};const gv={CurrentDragAndDropData:void 0},lm={useShadows:!0,verticalScrollMode:1,setRowLineHeight:!0,setRowHeight:!0,supportDynamicHeights:!1,dnd:{getDragElements(n){return[n]},getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){},dispose(){}},horizontalScrolling:!1,transformOptimization:!0,alwaysConsumeMouseWheel:!0};class bD{constructor(e){this.elements=e}update(){}getData(){return this.elements}}class Nwt{constructor(e){this.elements=e}update(){}getData(){return this.elements}}class kwt{constructor(){this.types=[],this.files=[]}update(e){if(e.types&&this.types.splice(0,this.types.length,...e.types),e.files){this.files.splice(0,this.files.length);for(let t=0;tr,e!=null&&e.getPosInSet?this.getPosInSet=e.getPosInSet.bind(e):this.getPosInSet=(t,i)=>i+1,e!=null&&e.getRole?this.getRole=e.getRole.bind(e):this.getRole=t=>"listitem",e!=null&&e.isChecked?this.isChecked=e.isChecked.bind(e):this.isChecked=t=>{}}}class Wc{get contentHeight(){return this.rangeMap.size}get onDidScroll(){return this.scrollableElement.onScroll}get scrollableElementDomNode(){return this.scrollableElement.getDomNode()}get horizontalScrolling(){return this._horizontalScrolling}set horizontalScrolling(e){if(e!==this._horizontalScrolling){if(e&&this.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");if(this._horizontalScrolling=e,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this._horizontalScrolling){for(const t of this.items)this.measureItemWidth(t);this.updateScrollWidth(),this.scrollableElement.setScrollDimensions({width:XY(this.domNode)}),this.rowsContainer.style.width=`${Math.max(this.scrollWidth||0,this.renderWidth)}px`}else this.scrollableElementWidthDelayer.cancel(),this.scrollableElement.setScrollDimensions({width:this.renderWidth,scrollWidth:this.renderWidth}),this.rowsContainer.style.width=""}}constructor(e,t,i,r=lm){var o,s,a,l,u,c,d,h,g,m,f,b,C;if(this.virtualDelegate=t,this.domId=`list_id_${++Wc.InstanceCount}`,this.renderers=new Map,this.renderWidth=0,this._scrollHeight=0,this.scrollableElementUpdateDisposable=null,this.scrollableElementWidthDelayer=new gd(50),this.splicing=!1,this.dragOverAnimationStopDisposable=De.None,this.dragOverMouseY=0,this.canDrop=!1,this.currentDragFeedbackDisposable=De.None,this.onDragLeaveTimeout=De.None,this.disposables=new je,this._onDidChangeContentHeight=new be,this._onDidChangeContentWidth=new be,this.onDidChangeContentHeight=ft.latch(this._onDidChangeContentHeight.event,void 0,this.disposables),this._horizontalScrolling=!1,r.horizontalScrolling&&r.supportDynamicHeights)throw new Error("Horizontal scrolling and dynamic heights not supported simultaneously");this.items=[],this.itemId=0,this.rangeMap=this.createRangeMap((o=r.paddingTop)!==null&&o!==void 0?o:0);for(const w of i)this.renderers.set(w.templateId,w);this.cache=this.disposables.add(new Awt(this.renderers)),this.lastRenderTop=0,this.lastRenderHeight=0,this.domNode=document.createElement("div"),this.domNode.className="monaco-list",this.domNode.classList.add(this.domId),this.domNode.tabIndex=0,this.domNode.classList.toggle("mouse-support",typeof r.mouseSupport=="boolean"?r.mouseSupport:!0),this._horizontalScrolling=(s=r.horizontalScrolling)!==null&&s!==void 0?s:lm.horizontalScrolling,this.domNode.classList.toggle("horizontal-scrolling",this._horizontalScrolling),this.paddingBottom=typeof r.paddingBottom>"u"?0:r.paddingBottom,this.accessibilityProvider=new Zwt(r.accessibilityProvider),this.rowsContainer=document.createElement("div"),this.rowsContainer.className="monaco-list-rows",((a=r.transformOptimization)!==null&&a!==void 0?a:lm.transformOptimization)&&(this.rowsContainer.style.transform="translate3d(0px, 0px, 0px)",this.rowsContainer.style.overflow="hidden",this.rowsContainer.style.contain="strict"),this.disposables.add(er.addTarget(this.rowsContainer)),this.scrollable=this.disposables.add(new R2({forceIntegerValues:!0,smoothScrollDuration:(l=r.smoothScrolling)!==null&&l!==void 0&&l?125:0,scheduleAtNextAnimationFrame:w=>iu(qt(this.domNode),w)})),this.scrollableElement=this.disposables.add(new ZT(this.rowsContainer,{alwaysConsumeMouseWheel:(u=r.alwaysConsumeMouseWheel)!==null&&u!==void 0?u:lm.alwaysConsumeMouseWheel,horizontal:1,vertical:(c=r.verticalScrollMode)!==null&&c!==void 0?c:lm.verticalScrollMode,useShadows:(d=r.useShadows)!==null&&d!==void 0?d:lm.useShadows,mouseWheelScrollSensitivity:r.mouseWheelScrollSensitivity,fastScrollSensitivity:r.fastScrollSensitivity,scrollByPage:r.scrollByPage},this.scrollable)),this.domNode.appendChild(this.scrollableElement.getDomNode()),e.appendChild(this.domNode),this.scrollableElement.onScroll(this.onScroll,this,this.disposables),this.disposables.add(Ve(this.rowsContainer,qi.Change,w=>this.onTouchChange(w))),this.disposables.add(Ve(this.scrollableElement.getDomNode(),"scroll",w=>w.target.scrollTop=0)),this.disposables.add(Ve(this.domNode,"dragover",w=>this.onDragOver(this.toDragEvent(w)))),this.disposables.add(Ve(this.domNode,"drop",w=>this.onDrop(this.toDragEvent(w)))),this.disposables.add(Ve(this.domNode,"dragleave",w=>this.onDragLeave(this.toDragEvent(w)))),this.disposables.add(Ve(this.domNode,"dragend",w=>this.onDragEnd(w))),this.setRowLineHeight=(h=r.setRowLineHeight)!==null&&h!==void 0?h:lm.setRowLineHeight,this.setRowHeight=(g=r.setRowHeight)!==null&&g!==void 0?g:lm.setRowHeight,this.supportDynamicHeights=(m=r.supportDynamicHeights)!==null&&m!==void 0?m:lm.supportDynamicHeights,this.dnd=(f=r.dnd)!==null&&f!==void 0?f:this.disposables.add(lm.dnd),this.layout((b=r.initialSize)===null||b===void 0?void 0:b.height,(C=r.initialSize)===null||C===void 0?void 0:C.width)}updateOptions(e){e.paddingBottom!==void 0&&(this.paddingBottom=e.paddingBottom,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),e.smoothScrolling!==void 0&&this.scrollable.setSmoothScrollDuration(e.smoothScrolling?125:0),e.horizontalScrolling!==void 0&&(this.horizontalScrolling=e.horizontalScrolling);let t;if(e.scrollByPage!==void 0&&(t={...t??{},scrollByPage:e.scrollByPage}),e.mouseWheelScrollSensitivity!==void 0&&(t={...t??{},mouseWheelScrollSensitivity:e.mouseWheelScrollSensitivity}),e.fastScrollSensitivity!==void 0&&(t={...t??{},fastScrollSensitivity:e.fastScrollSensitivity}),t&&this.scrollableElement.updateOptions(t),e.paddingTop!==void 0&&e.paddingTop!==this.rangeMap.paddingTop){const i=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),r=e.paddingTop-this.rangeMap.paddingTop;this.rangeMap.paddingTop=e.paddingTop,this.render(i,Math.max(0,this.lastRenderTop+r),this.lastRenderHeight,void 0,void 0,!0),this.setScrollTop(this.lastRenderTop),this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.lastRenderTop,this.lastRenderHeight)}}createRangeMap(e){return new _wt(e)}splice(e,t,i=[]){if(this.splicing)throw new Error("Can't run recursive splices.");this.splicing=!0;try{return this._splice(e,t,i)}finally{this.splicing=!1,this._onDidChangeContentHeight.fire(this.contentHeight)}}_splice(e,t,i=[]){const r=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),o={start:e,end:e+t},s=ma.intersect(r,o),a=new Map;for(let F=s.end-1;F>=s.start;F--){const L=this.items[F];if(L.dragStartDisposable.dispose(),L.checkedDisposable.dispose(),L.row){let D=a.get(L.templateId);D||(D=[],a.set(L.templateId,D));const A=this.renderers.get(L.templateId);A&&A.disposeElement&&A.disposeElement(L.element,F,L.row.templateData,L.size),D.push(L.row)}L.row=null,L.stale=!0}const l={start:e+t,end:this.items.length},u=ma.intersect(l,r),c=ma.relativeComplement(l,r),d=i.map(F=>({id:String(this.itemId++),element:F,templateId:this.virtualDelegate.getTemplateId(F),size:this.virtualDelegate.getHeight(F),width:void 0,hasDynamicHeight:!!this.virtualDelegate.hasDynamicHeight&&this.virtualDelegate.hasDynamicHeight(F),lastDynamicHeightWidth:void 0,row:null,uri:void 0,dropTarget:!1,dragStartDisposable:De.None,checkedDisposable:De.None,stale:!1}));let h;e===0&&t>=this.items.length?(this.rangeMap=this.createRangeMap(this.rangeMap.paddingTop),this.rangeMap.splice(0,0,d),h=this.items,this.items=d):(this.rangeMap.splice(e,t,d),h=this.items.splice(e,t,...d));const g=i.length-t,m=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight),f=W7(u,g),b=ma.intersect(m,f);for(let F=b.start;FW7(F,g)),S=[{start:e,end:e+i.length},...v].map(F=>ma.intersect(m,F)).reverse();for(const F of S)for(let L=F.end-1;L>=F.start;L--){const D=this.items[L],A=a.get(D.templateId),M=A==null?void 0:A.pop();this.insertItemInDOM(L,M)}for(const F of a.values())for(const L of F)this.cache.release(L);return this.eventuallyUpdateScrollDimensions(),this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight),h.map(F=>F.element)}eventuallyUpdateScrollDimensions(){this._scrollHeight=this.contentHeight,this.rowsContainer.style.height=`${this._scrollHeight}px`,this.scrollableElementUpdateDisposable||(this.scrollableElementUpdateDisposable=iu(qt(this.domNode),()=>{this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight}),this.updateScrollWidth(),this.scrollableElementUpdateDisposable=null}))}eventuallyUpdateScrollWidth(){if(!this.horizontalScrolling){this.scrollableElementWidthDelayer.cancel();return}this.scrollableElementWidthDelayer.trigger(()=>this.updateScrollWidth())}updateScrollWidth(){if(!this.horizontalScrolling)return;let e=0;for(const t of this.items)typeof t.width<"u"&&(e=Math.max(e,t.width));this.scrollWidth=e,this.scrollableElement.setScrollDimensions({scrollWidth:e===0?0:e+10}),this._onDidChangeContentWidth.fire(this.scrollWidth)}rerender(){if(this.supportDynamicHeights){for(const e of this.items)e.lastDynamicHeightWidth=void 0;this._rerender(this.lastRenderTop,this.lastRenderHeight)}}get length(){return this.items.length}get renderHeight(){return this.scrollableElement.getScrollDimensions().height}get firstVisibleIndex(){return this.getRenderRange(this.lastRenderTop,this.lastRenderHeight).start}element(e){return this.items[e].element}indexOf(e){return this.items.findIndex(t=>t.element===e)}domElement(e){const t=this.items[e].row;return t&&t.domNode}elementHeight(e){return this.items[e].size}elementTop(e){return this.rangeMap.positionAt(e)}indexAt(e){return this.rangeMap.indexAt(e)}indexAfter(e){return this.rangeMap.indexAfter(e)}layout(e,t){const i={height:typeof e=="number"?e:Egt(this.domNode)};this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,i.scrollHeight=this.scrollHeight),this.scrollableElement.setScrollDimensions(i),typeof t<"u"&&(this.renderWidth=t,this.supportDynamicHeights&&this._rerender(this.scrollTop,this.renderHeight)),this.horizontalScrolling&&this.scrollableElement.setScrollDimensions({width:typeof t=="number"?t:XY(this.domNode)})}render(e,t,i,r,o,s=!1){const a=this.getRenderRange(t,i),l=ma.relativeComplement(a,e).reverse(),u=ma.relativeComplement(e,a);if(s){const c=ma.intersect(e,a);for(let d=c.start;d{for(const c of u)for(let d=c.start;d=c.start;d--)this.insertItemInDOM(d)}),r!==void 0&&(this.rowsContainer.style.left=`-${r}px`),this.rowsContainer.style.top=`-${t}px`,this.horizontalScrolling&&o!==void 0&&(this.rowsContainer.style.width=`${Math.max(o,this.renderWidth)}px`),this.lastRenderTop=t,this.lastRenderHeight=i}insertItemInDOM(e,t){var i,r,o;const s=this.items[e];if(!s.row)if(t)s.row=t,s.stale=!0;else{const d=this.cache.alloc(s.templateId);s.row=d.row,s.stale||(s.stale=d.isReusingConnectedDomNode)}const a=this.accessibilityProvider.getRole(s.element)||"listitem";s.row.domNode.setAttribute("role",a);const l=this.accessibilityProvider.isChecked(s.element);if(typeof l=="boolean")s.row.domNode.setAttribute("aria-checked",String(!!l));else if(l){const d=h=>s.row.domNode.setAttribute("aria-checked",String(!!h));d(l.value),s.checkedDisposable=l.onDidChange(d)}if(s.stale||!s.row.domNode.parentElement){const d=(o=(r=(i=this.items.at(e+1))===null||i===void 0?void 0:i.row)===null||r===void 0?void 0:r.domNode)!==null&&o!==void 0?o:null;this.rowsContainer.insertBefore(s.row.domNode,d),s.stale=!1}this.updateItemInDOM(s,e);const u=this.renderers.get(s.templateId);if(!u)throw new Error(`No renderer found for template id ${s.templateId}`);u==null||u.renderElement(s.element,e,s.row.templateData,s.size);const c=this.dnd.getDragURI(s.element);s.dragStartDisposable.dispose(),s.row.domNode.draggable=!!c,c&&(s.dragStartDisposable=Ve(s.row.domNode,"dragstart",d=>this.onDragStart(s.element,c,d))),this.horizontalScrolling&&(this.measureItemWidth(s),this.eventuallyUpdateScrollWidth())}measureItemWidth(e){if(!e.row||!e.row.domNode)return;e.row.domNode.style.width="fit-content",e.width=XY(e.row.domNode);const t=qt(e.row.domNode).getComputedStyle(e.row.domNode);t.paddingLeft&&(e.width+=parseFloat(t.paddingLeft)),t.paddingRight&&(e.width+=parseFloat(t.paddingRight)),e.row.domNode.style.width=""}updateItemInDOM(e,t){e.row.domNode.style.top=`${this.elementTop(t)}px`,this.setRowHeight&&(e.row.domNode.style.height=`${e.size}px`),this.setRowLineHeight&&(e.row.domNode.style.lineHeight=`${e.size}px`),e.row.domNode.setAttribute("data-index",`${t}`),e.row.domNode.setAttribute("data-last-element",t===this.length-1?"true":"false"),e.row.domNode.setAttribute("data-parity",t%2===0?"even":"odd"),e.row.domNode.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(e.element,t,this.length))),e.row.domNode.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(e.element,t))),e.row.domNode.setAttribute("id",this.getElementDomId(t)),e.row.domNode.classList.toggle("drop-target",e.dropTarget)}removeItemFromDOM(e){const t=this.items[e];if(t.dragStartDisposable.dispose(),t.checkedDisposable.dispose(),t.row){const i=this.renderers.get(t.templateId);i&&i.disposeElement&&i.disposeElement(t.element,e,t.row.templateData,t.size),this.cache.release(t.row),t.row=null}this.horizontalScrolling&&this.eventuallyUpdateScrollWidth()}getScrollTop(){return this.scrollableElement.getScrollPosition().scrollTop}setScrollTop(e,t){this.scrollableElementUpdateDisposable&&(this.scrollableElementUpdateDisposable.dispose(),this.scrollableElementUpdateDisposable=null,this.scrollableElement.setScrollDimensions({scrollHeight:this.scrollHeight})),this.scrollableElement.setScrollPosition({scrollTop:e,reuseAnimation:t})}get scrollTop(){return this.getScrollTop()}set scrollTop(e){this.setScrollTop(e)}get scrollHeight(){return this._scrollHeight+(this.horizontalScrolling?10:0)+this.paddingBottom}get onMouseClick(){return ft.map(this.disposables.add(new Qn(this.domNode,"click")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseDblClick(){return ft.map(this.disposables.add(new Qn(this.domNode,"dblclick")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseMiddleClick(){return ft.filter(ft.map(this.disposables.add(new Qn(this.domNode,"auxclick")).event,e=>this.toMouseEvent(e),this.disposables),e=>e.browserEvent.button===1,this.disposables)}get onMouseDown(){return ft.map(this.disposables.add(new Qn(this.domNode,"mousedown")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseOver(){return ft.map(this.disposables.add(new Qn(this.domNode,"mouseover")).event,e=>this.toMouseEvent(e),this.disposables)}get onMouseOut(){return ft.map(this.disposables.add(new Qn(this.domNode,"mouseout")).event,e=>this.toMouseEvent(e),this.disposables)}get onContextMenu(){return ft.any(ft.map(this.disposables.add(new Qn(this.domNode,"contextmenu")).event,e=>this.toMouseEvent(e),this.disposables),ft.map(this.disposables.add(new Qn(this.domNode,qi.Contextmenu)).event,e=>this.toGestureEvent(e),this.disposables))}get onTouchStart(){return ft.map(this.disposables.add(new Qn(this.domNode,"touchstart")).event,e=>this.toTouchEvent(e),this.disposables)}get onTap(){return ft.map(this.disposables.add(new Qn(this.rowsContainer,qi.Tap)).event,e=>this.toGestureEvent(e),this.disposables)}toMouseEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t>"u"?void 0:this.items[t],r=i&&i.element;return{browserEvent:e,index:t,element:r}}toTouchEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t>"u"?void 0:this.items[t],r=i&&i.element;return{browserEvent:e,index:t,element:r}}toGestureEvent(e){const t=this.getItemIndexFromEventTarget(e.initialTarget||null),i=typeof t>"u"?void 0:this.items[t],r=i&&i.element;return{browserEvent:e,index:t,element:r}}toDragEvent(e){const t=this.getItemIndexFromEventTarget(e.target||null),i=typeof t>"u"?void 0:this.items[t],r=i&&i.element,o=this.getTargetSector(e,t);return{browserEvent:e,index:t,element:r,sector:o}}onScroll(e){try{const t=this.getRenderRange(this.lastRenderTop,this.lastRenderHeight);this.render(t,e.scrollTop,e.height,e.scrollLeft,e.scrollWidth),this.supportDynamicHeights&&this._rerender(e.scrollTop,e.height,e.inSmoothScrolling)}catch(t){throw t}}onTouchChange(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY}onDragStart(e,t,i){var r,o;if(!i.dataTransfer)return;const s=this.dnd.getDragElements(e);if(i.dataTransfer.effectAllowed="copyMove",i.dataTransfer.setData(mD.TEXT,t),i.dataTransfer.setDragImage){let a;this.dnd.getDragLabel&&(a=this.dnd.getDragLabel(s,i)),typeof a>"u"&&(a=String(s.length));const l=vt(".monaco-drag-image");l.textContent=a;const c=(d=>{for(;d&&!d.classList.contains("monaco-workbench");)d=d.parentElement;return d||this.domNode.ownerDocument})(this.domNode);c.appendChild(l),i.dataTransfer.setDragImage(l,-10,-10),setTimeout(()=>c.removeChild(l),0)}this.domNode.classList.add("dragging"),this.currentDragData=new bD(s),gv.CurrentDragAndDropData=new Nwt(s),(o=(r=this.dnd).onDragStart)===null||o===void 0||o.call(r,this.currentDragData,i)}onDragOver(e){var t,i;if(e.browserEvent.preventDefault(),this.onDragLeaveTimeout.dispose(),gv.CurrentDragAndDropData&&gv.CurrentDragAndDropData.getData()==="vscode-ui"||(this.setupDragAndDropScrollTopAnimation(e.browserEvent),!e.browserEvent.dataTransfer))return!1;if(!this.currentDragData)if(gv.CurrentDragAndDropData)this.currentDragData=gv.CurrentDragAndDropData;else{if(!e.browserEvent.dataTransfer.types)return!1;this.currentDragData=new kwt}const r=this.dnd.onDragOver(this.currentDragData,e.element,e.index,e.sector,e.browserEvent);if(this.canDrop=typeof r=="boolean"?r:r.accept,!this.canDrop)return this.currentDragFeedback=void 0,this.currentDragFeedbackDisposable.dispose(),!1;e.browserEvent.dataTransfer.dropEffect=typeof r!="boolean"&&((t=r.effect)===null||t===void 0?void 0:t.type)===0?"copy":"move";let o;typeof r!="boolean"&&r.feedback?o=r.feedback:typeof e.index>"u"?o=[-1]:o=[e.index],o=Sf(o).filter(a=>a>=-1&&aa-l),o=o[0]===-1?[-1]:o;let s=typeof r!="boolean"&&r.effect&&r.effect.position?r.effect.position:"drop-target";if(Mwt(this.currentDragFeedback,o)&&this.currentDragFeedbackPosition===s)return!0;if(this.currentDragFeedback=o,this.currentDragFeedbackPosition=s,this.currentDragFeedbackDisposable.dispose(),o[0]===-1)this.domNode.classList.add(s),this.rowsContainer.classList.add(s),this.currentDragFeedbackDisposable=en(()=>{this.domNode.classList.remove(s),this.rowsContainer.classList.remove(s)});else{if(o.length>1&&s!=="drop-target")throw new Error("Can't use multiple feedbacks with position different than 'over'");s==="drop-target-after"&&o[0]{var a;for(const l of o){const u=this.items[l];u.dropTarget=!1,(a=u.row)===null||a===void 0||a.domNode.classList.remove(s)}})}return!0}onDragLeave(e){var t,i;this.onDragLeaveTimeout.dispose(),this.onDragLeaveTimeout=Cb(()=>this.clearDragOverFeedback(),100,this.disposables),this.currentDragData&&((i=(t=this.dnd).onDragLeave)===null||i===void 0||i.call(t,this.currentDragData,e.element,e.index,e.browserEvent))}onDrop(e){if(!this.canDrop)return;const t=this.currentDragData;this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,gv.CurrentDragAndDropData=void 0,!(!t||!e.browserEvent.dataTransfer)&&(e.browserEvent.preventDefault(),t.update(e.browserEvent.dataTransfer),this.dnd.drop(t,e.element,e.index,e.sector,e.browserEvent))}onDragEnd(e){var t,i;this.canDrop=!1,this.teardownDragAndDropScrollTopAnimation(),this.clearDragOverFeedback(),this.domNode.classList.remove("dragging"),this.currentDragData=void 0,gv.CurrentDragAndDropData=void 0,(i=(t=this.dnd).onDragEnd)===null||i===void 0||i.call(t,e)}clearDragOverFeedback(){this.currentDragFeedback=void 0,this.currentDragFeedbackPosition=void 0,this.currentDragFeedbackDisposable.dispose(),this.currentDragFeedbackDisposable=De.None}setupDragAndDropScrollTopAnimation(e){if(!this.dragOverAnimationDisposable){const t=Ybe(this.domNode).top;this.dragOverAnimationDisposable=Jgt(qt(this.domNode),this.animateDragAndDropScrollTop.bind(this,t))}this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationStopDisposable=Cb(()=>{this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)},1e3,this.disposables),this.dragOverMouseY=e.pageY}animateDragAndDropScrollTop(e){if(this.dragOverMouseY===void 0)return;const t=this.dragOverMouseY-e,i=this.renderHeight-35;t<35?this.scrollTop+=Math.max(-14,Math.floor(.3*(t-35))):t>i&&(this.scrollTop+=Math.min(14,Math.floor(.3*(t-i))))}teardownDragAndDropScrollTopAnimation(){this.dragOverAnimationStopDisposable.dispose(),this.dragOverAnimationDisposable&&(this.dragOverAnimationDisposable.dispose(),this.dragOverAnimationDisposable=void 0)}getTargetSector(e,t){if(t===void 0)return;const i=e.offsetY/this.items[t].size,r=Math.floor(i/.25);return ol(r,0,3)}getItemIndexFromEventTarget(e){const t=this.scrollableElement.getDomNode();let i=e;for(;i instanceof HTMLElement&&i!==this.rowsContainer&&t.contains(i);){const r=i.getAttribute("data-index");if(r){const o=Number(r);if(!isNaN(o))return o}i=i.parentElement}}getRenderRange(e,t){return{start:this.rangeMap.indexAt(e),end:this.rangeMap.indexAfter(e+t-1)}}_rerender(e,t,i){const r=this.getRenderRange(e,t);let o,s;e===this.elementTop(r.start)?(o=r.start,s=0):r.end-r.start>1&&(o=r.start+1,s=this.elementTop(o)-e);let a=0;for(;;){const l=this.getRenderRange(e,t);let u=!1;for(let c=l.start;c=h.start;g--)this.insertItemInDOM(g);for(let h=l.start;h=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o};class Twt{constructor(e){this.trait=e,this.renderedElements=[]}get templateId(){return`template:${this.trait.name}`}renderTemplate(e){return e}renderElement(e,t,i){const r=this.renderedElements.findIndex(o=>o.templateData===i);if(r>=0){const o=this.renderedElements[r];this.trait.unrender(i),o.index=t}else{const o={index:t,templateData:i};this.renderedElements.push(o)}this.trait.renderIndex(t,i)}splice(e,t,i){const r=[];for(const o of this.renderedElements)o.index=e+t&&r.push({index:o.index+i-t,templateData:o.templateData});this.renderedElements=r}renderIndexes(e){for(const{index:t,templateData:i}of this.renderedElements)e.indexOf(t)>-1&&this.trait.renderIndex(t,i)}disposeTemplate(e){const t=this.renderedElements.findIndex(i=>i.templateData===e);t<0||this.renderedElements.splice(t,1)}}let WE=class{get name(){return this._trait}get renderer(){return new Twt(this)}constructor(e){this._trait=e,this.indexes=[],this.sortedIndexes=[],this._onChange=new be,this.onChange=this._onChange.event}splice(e,t,i){const r=i.length-t,o=e+t,s=[];let a=0;for(;a=o;)s.push(this.sortedIndexes[a++]+r);this.renderer.splice(e,t,i.length),this._set(s,s)}renderIndex(e,t){t.classList.toggle(this._trait,this.contains(e))}unrender(e){e.classList.remove(this._trait)}set(e,t){return this._set(e,[...e].sort(_ye),t)}_set(e,t,i){const r=this.indexes,o=this.sortedIndexes;this.indexes=e,this.sortedIndexes=t;const s=G7(o,e);return this.renderer.renderIndexes(s),this._onChange.fire({indexes:e,browserEvent:i}),r}get(){return this.indexes}contains(e){return zF(this.sortedIndexes,e,_ye)>=0}dispose(){Mi(this._onChange)}};t0([qr],WE.prototype,"renderer",null);class Ewt extends WE{constructor(e){super("selected"),this.setAriaSelected=e}renderIndex(e,t){super.renderIndex(e,t),this.setAriaSelected&&(this.contains(e)?t.setAttribute("aria-selected","true"):t.setAttribute("aria-selected","false"))}}class R7{constructor(e,t,i){this.trait=e,this.view=t,this.identityProvider=i}splice(e,t,i){if(!this.identityProvider)return this.trait.splice(e,t,new Array(i.length).fill(!1));const r=this.trait.get().map(a=>this.identityProvider.getId(this.view.element(a)).toString());if(r.length===0)return this.trait.splice(e,t,new Array(i.length).fill(!1));const o=new Set(r),s=i.map(a=>o.has(this.identityProvider.getId(a).toString()));this.trait.splice(e,t,s)}}function n0(n){return n.tagName==="INPUT"||n.tagName==="TEXTAREA"}function CD(n,e){return n.classList.contains(e)?!0:n.classList.contains("monaco-list")||!n.parentElement?!1:CD(n.parentElement,e)}function vD(n){return CD(n,"monaco-editor")}function Wwt(n){return CD(n,"monaco-custom-toggle")}function Rwt(n){return CD(n,"action-item")}function yD(n){return CD(n,"monaco-tree-sticky-row")}function RE(n){return n.classList.contains("monaco-tree-sticky-container")}function yye(n){return n.tagName==="A"&&n.classList.contains("monaco-button")||n.tagName==="DIV"&&n.classList.contains("monaco-button-dropdown")?!0:n.classList.contains("monaco-list")||!n.parentElement?!1:yye(n.parentElement)}class Iye{get onKeyDown(){return ft.chain(this.disposables.add(new Qn(this.view.domNode,"keydown")).event,e=>e.filter(t=>!n0(t.target)).map(t=>new nr(t)))}constructor(e,t,i){this.list=e,this.view=t,this.disposables=new je,this.multipleSelectionDisposables=new je,this.multipleSelectionSupport=i.multipleSelectionSupport,this.disposables.add(this.onKeyDown(r=>{switch(r.keyCode){case 3:return this.onEnter(r);case 16:return this.onUpArrow(r);case 18:return this.onDownArrow(r);case 11:return this.onPageUpArrow(r);case 12:return this.onPageDownArrow(r);case 9:return this.onEscape(r);case 31:this.multipleSelectionSupport&&($n?r.metaKey:r.ctrlKey)&&this.onCtrlA(r)}}))}updateOptions(e){e.multipleSelectionSupport!==void 0&&(this.multipleSelectionSupport=e.multipleSelectionSupport)}onEnter(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(this.list.getFocus(),e.browserEvent)}onUpArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusPrevious(1,!1,e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onDownArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusNext(1,!1,e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onPageUpArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusPreviousPage(e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onPageDownArrow(e){e.preventDefault(),e.stopPropagation(),this.list.focusNextPage(e.browserEvent);const t=this.list.getFocus()[0];this.list.setAnchor(t),this.list.reveal(t),this.view.domNode.focus()}onCtrlA(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection($a(this.list.length),e.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus()}onEscape(e){this.list.getSelection().length&&(e.preventDefault(),e.stopPropagation(),this.list.setSelection([],e.browserEvent),this.list.setAnchor(void 0),this.view.domNode.focus())}dispose(){this.disposables.dispose(),this.multipleSelectionDisposables.dispose()}}t0([qr],Iye.prototype,"onKeyDown",null);var um;(function(n){n[n.Automatic=0]="Automatic",n[n.Trigger=1]="Trigger"})(um||(um={}));var rw;(function(n){n[n.Idle=0]="Idle",n[n.Typing=1]="Typing"})(rw||(rw={}));const Gwt=new class{mightProducePrintableCharacter(n){return n.ctrlKey||n.metaKey||n.altKey?!1:n.keyCode>=31&&n.keyCode<=56||n.keyCode>=21&&n.keyCode<=30||n.keyCode>=98&&n.keyCode<=107||n.keyCode>=85&&n.keyCode<=95}};class Vwt{constructor(e,t,i,r,o){this.list=e,this.view=t,this.keyboardNavigationLabelProvider=i,this.keyboardNavigationEventFilter=r,this.delegate=o,this.enabled=!1,this.state=rw.Idle,this.mode=um.Automatic,this.triggered=!1,this.previouslyFocused=-1,this.enabledDisposables=new je,this.disposables=new je,this.updateOptions(e.options)}updateOptions(e){var t,i;!((t=e.typeNavigationEnabled)!==null&&t!==void 0)||t?this.enable():this.disable(),this.mode=(i=e.typeNavigationMode)!==null&&i!==void 0?i:um.Automatic}enable(){if(this.enabled)return;let e=!1;const t=ft.chain(this.enabledDisposables.add(new Qn(this.view.domNode,"keydown")).event,o=>o.filter(s=>!n0(s.target)).filter(()=>this.mode===um.Automatic||this.triggered).map(s=>new nr(s)).filter(s=>e||this.keyboardNavigationEventFilter(s)).filter(s=>this.delegate.mightProducePrintableCharacter(s)).forEach(s=>En.stop(s,!0)).map(s=>s.browserEvent.key)),i=ft.debounce(t,()=>null,800,void 0,void 0,void 0,this.enabledDisposables);ft.reduce(ft.any(t,i),(o,s)=>s===null?null:(o||"")+s,void 0,this.enabledDisposables)(this.onInput,this,this.enabledDisposables),i(this.onClear,this,this.enabledDisposables),t(()=>e=!0,void 0,this.enabledDisposables),i(()=>e=!1,void 0,this.enabledDisposables),this.enabled=!0,this.triggered=!1}disable(){this.enabled&&(this.enabledDisposables.clear(),this.enabled=!1,this.triggered=!1)}onClear(){var e;const t=this.list.getFocus();if(t.length>0&&t[0]===this.previouslyFocused){const i=(e=this.list.options.accessibilityProvider)===null||e===void 0?void 0:e.getAriaLabel(this.list.element(t[0]));i&&ou(i)}this.previouslyFocused=-1}onInput(e){if(!e){this.state=rw.Idle,this.triggered=!1;return}const t=this.list.getFocus(),i=t.length>0?t[0]:0,r=this.state===rw.Idle?1:0;this.state=rw.Typing;for(let o=0;o1&&u.length===1){this.previouslyFocused=i,this.list.setFocus([s]),this.list.reveal(s);return}}}else if(typeof l>"u"||_E(e,l)){this.previouslyFocused=i,this.list.setFocus([s]),this.list.reveal(s);return}}}dispose(){this.disable(),this.enabledDisposables.dispose(),this.disposables.dispose()}}class Xwt{constructor(e,t){this.list=e,this.view=t,this.disposables=new je;const i=ft.chain(this.disposables.add(new Qn(t.domNode,"keydown")).event,o=>o.filter(s=>!n0(s.target)).map(s=>new nr(s)));ft.chain(i,o=>o.filter(s=>s.keyCode===2&&!s.ctrlKey&&!s.metaKey&&!s.shiftKey&&!s.altKey))(this.onTab,this,this.disposables)}onTab(e){if(e.target!==this.view.domNode)return;const t=this.list.getFocus();if(t.length===0)return;const i=this.view.domElement(t[0]);if(!i)return;const r=i.querySelector("[tabIndex]");if(!r||!(r instanceof HTMLElement)||r.tabIndex===-1)return;const o=qt(r).getComputedStyle(r);o.visibility==="hidden"||o.display==="none"||(e.preventDefault(),e.stopPropagation(),r.focus())}dispose(){this.disposables.dispose()}}function wye(n){return $n?n.browserEvent.metaKey:n.browserEvent.ctrlKey}function Sye(n){return n.browserEvent.shiftKey}function Pwt(n){return YY(n)&&n.button===2}const xye={isSelectionSingleChangeEvent:wye,isSelectionRangeChangeEvent:Sye};class Lye{constructor(e){this.list=e,this.disposables=new je,this._onPointer=new be,this.onPointer=this._onPointer.event,e.options.multipleSelectionSupport!==!1&&(this.multipleSelectionController=this.list.options.multipleSelectionController||xye),this.mouseSupport=typeof e.options.mouseSupport>"u"||!!e.options.mouseSupport,this.mouseSupport&&(e.onMouseDown(this.onMouseDown,this,this.disposables),e.onContextMenu(this.onContextMenu,this,this.disposables),e.onMouseDblClick(this.onDoubleClick,this,this.disposables),e.onTouchStart(this.onMouseDown,this,this.disposables),this.disposables.add(er.addTarget(e.getHTMLElement()))),ft.any(e.onMouseClick,e.onMouseMiddleClick,e.onTap)(this.onViewPointer,this,this.disposables)}updateOptions(e){e.multipleSelectionSupport!==void 0&&(this.multipleSelectionController=void 0,e.multipleSelectionSupport&&(this.multipleSelectionController=this.list.options.multipleSelectionController||xye))}isSelectionSingleChangeEvent(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionSingleChangeEvent(e):!1}isSelectionRangeChangeEvent(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionRangeChangeEvent(e):!1}isSelectionChangeEvent(e){return this.isSelectionSingleChangeEvent(e)||this.isSelectionRangeChangeEvent(e)}onMouseDown(e){vD(e.browserEvent.target)||Ys()!==e.browserEvent.target&&this.list.domFocus()}onContextMenu(e){if(n0(e.browserEvent.target)||vD(e.browserEvent.target))return;const t=typeof e.index>"u"?[]:[e.index];this.list.setFocus(t,e.browserEvent)}onViewPointer(e){if(!this.mouseSupport||n0(e.browserEvent.target)||vD(e.browserEvent.target)||e.browserEvent.isHandledByList)return;e.browserEvent.isHandledByList=!0;const t=e.index;if(typeof t>"u"){this.list.setFocus([],e.browserEvent),this.list.setSelection([],e.browserEvent),this.list.setAnchor(void 0);return}if(this.isSelectionChangeEvent(e))return this.changeSelection(e);this.list.setFocus([t],e.browserEvent),this.list.setAnchor(t),Pwt(e.browserEvent)||this.list.setSelection([t],e.browserEvent),this._onPointer.fire(e)}onDoubleClick(e){if(n0(e.browserEvent.target)||vD(e.browserEvent.target)||this.isSelectionChangeEvent(e)||e.browserEvent.isHandledByList)return;e.browserEvent.isHandledByList=!0;const t=this.list.getFocus();this.list.setSelection(t,e.browserEvent)}changeSelection(e){const t=e.index;let i=this.list.getAnchor();if(this.isSelectionRangeChangeEvent(e)){if(typeof i>"u"){const c=this.list.getFocus()[0];i=c??t,this.list.setAnchor(i)}const r=Math.min(i,t),o=Math.max(i,t),s=$a(r,o+1),a=this.list.getSelection(),l=zwt(G7(a,[i]),i);if(l.length===0)return;const u=G7(s,Ywt(a,l));this.list.setSelection(u,e.browserEvent),this.list.setFocus([t],e.browserEvent)}else if(this.isSelectionSingleChangeEvent(e)){const r=this.list.getSelection(),o=r.filter(s=>s!==t);this.list.setFocus([t]),this.list.setAnchor(t),r.length===o.length?this.list.setSelection([...o,t],e.browserEvent):this.list.setSelection(o,e.browserEvent)}}dispose(){this.disposables.dispose()}}class Fye{constructor(e,t){this.styleElement=e,this.selectorSuffix=t}style(e){var t,i;const r=this.selectorSuffix&&`.${this.selectorSuffix}`,o=[];e.listBackground&&o.push(`.monaco-list${r} .monaco-list-rows { background: ${e.listBackground}; }`),e.listFocusBackground&&(o.push(`.monaco-list${r}:focus .monaco-list-row.focused { background-color: ${e.listFocusBackground}; }`),o.push(`.monaco-list${r}:focus .monaco-list-row.focused:hover { background-color: ${e.listFocusBackground}; }`)),e.listFocusForeground&&o.push(`.monaco-list${r}:focus .monaco-list-row.focused { color: ${e.listFocusForeground}; }`),e.listActiveSelectionBackground&&(o.push(`.monaco-list${r}:focus .monaco-list-row.selected { background-color: ${e.listActiveSelectionBackground}; }`),o.push(`.monaco-list${r}:focus .monaco-list-row.selected:hover { background-color: ${e.listActiveSelectionBackground}; }`)),e.listActiveSelectionForeground&&o.push(`.monaco-list${r}:focus .monaco-list-row.selected { color: ${e.listActiveSelectionForeground}; }`),e.listActiveSelectionIconForeground&&o.push(`.monaco-list${r}:focus .monaco-list-row.selected .codicon { color: ${e.listActiveSelectionIconForeground}; }`),e.listFocusAndSelectionBackground&&o.push(` + .monaco-drag-image, + .monaco-list${r}:focus .monaco-list-row.selected.focused { background-color: ${e.listFocusAndSelectionBackground}; } + `),e.listFocusAndSelectionForeground&&o.push(` + .monaco-drag-image, + .monaco-list${r}:focus .monaco-list-row.selected.focused { color: ${e.listFocusAndSelectionForeground}; } + `),e.listInactiveFocusForeground&&(o.push(`.monaco-list${r} .monaco-list-row.focused { color: ${e.listInactiveFocusForeground}; }`),o.push(`.monaco-list${r} .monaco-list-row.focused:hover { color: ${e.listInactiveFocusForeground}; }`)),e.listInactiveSelectionIconForeground&&o.push(`.monaco-list${r} .monaco-list-row.focused .codicon { color: ${e.listInactiveSelectionIconForeground}; }`),e.listInactiveFocusBackground&&(o.push(`.monaco-list${r} .monaco-list-row.focused { background-color: ${e.listInactiveFocusBackground}; }`),o.push(`.monaco-list${r} .monaco-list-row.focused:hover { background-color: ${e.listInactiveFocusBackground}; }`)),e.listInactiveSelectionBackground&&(o.push(`.monaco-list${r} .monaco-list-row.selected { background-color: ${e.listInactiveSelectionBackground}; }`),o.push(`.monaco-list${r} .monaco-list-row.selected:hover { background-color: ${e.listInactiveSelectionBackground}; }`)),e.listInactiveSelectionForeground&&o.push(`.monaco-list${r} .monaco-list-row.selected { color: ${e.listInactiveSelectionForeground}; }`),e.listHoverBackground&&o.push(`.monaco-list${r}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { background-color: ${e.listHoverBackground}; }`),e.listHoverForeground&&o.push(`.monaco-list${r}:not(.drop-target):not(.dragging) .monaco-list-row:hover:not(.selected):not(.focused) { color: ${e.listHoverForeground}; }`);const s=Cf(e.listFocusAndSelectionOutline,Cf(e.listSelectionOutline,(t=e.listFocusOutline)!==null&&t!==void 0?t:""));s&&o.push(`.monaco-list${r}:focus .monaco-list-row.focused.selected { outline: 1px solid ${s}; outline-offset: -1px;}`),e.listFocusOutline&&o.push(` + .monaco-drag-image, + .monaco-list${r}:focus .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; } + .monaco-workbench.context-menu-visible .monaco-list${r}.last-focused .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; } + `);const a=Cf(e.listSelectionOutline,(i=e.listInactiveFocusOutline)!==null&&i!==void 0?i:"");a&&o.push(`.monaco-list${r} .monaco-list-row.focused.selected { outline: 1px dotted ${a}; outline-offset: -1px; }`),e.listSelectionOutline&&o.push(`.monaco-list${r} .monaco-list-row.selected { outline: 1px dotted ${e.listSelectionOutline}; outline-offset: -1px; }`),e.listInactiveFocusOutline&&o.push(`.monaco-list${r} .monaco-list-row.focused { outline: 1px dotted ${e.listInactiveFocusOutline}; outline-offset: -1px; }`),e.listHoverOutline&&o.push(`.monaco-list${r} .monaco-list-row:hover { outline: 1px dashed ${e.listHoverOutline}; outline-offset: -1px; }`),e.listDropOverBackground&&o.push(` + .monaco-list${r}.drop-target, + .monaco-list${r} .monaco-list-rows.drop-target, + .monaco-list${r} .monaco-list-row.drop-target { background-color: ${e.listDropOverBackground} !important; color: inherit !important; } + `),e.listDropBetweenBackground&&(o.push(` + .monaco-list${r} .monaco-list-rows.drop-target-before .monaco-list-row:first-child::before, + .monaco-list${r} .monaco-list-row.drop-target-before::before { + content: ""; position: absolute; top: 0px; left: 0px; width: 100%; height: 1px; + background-color: ${e.listDropBetweenBackground}; + }`),o.push(` + .monaco-list${r} .monaco-list-rows.drop-target-after .monaco-list-row:last-child::after, + .monaco-list${r} .monaco-list-row.drop-target-after::after { + content: ""; position: absolute; bottom: 0px; left: 0px; width: 100%; height: 1px; + background-color: ${e.listDropBetweenBackground}; + }`)),e.tableColumnsBorder&&o.push(` + .monaco-table > .monaco-split-view2, + .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before, + .monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2, + .monaco-workbench:not(.reduce-motion) .monaco-table:hover > .monaco-split-view2 .monaco-sash.vertical::before { + border-color: ${e.tableColumnsBorder}; + } + + .monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2, + .monaco-workbench:not(.reduce-motion) .monaco-table > .monaco-split-view2 .monaco-sash.vertical::before { + border-color: transparent; + } + `),e.tableOddRowsBackgroundColor&&o.push(` + .monaco-table .monaco-list-row[data-parity=odd]:not(.focused):not(.selected):not(:hover) .monaco-table-tr, + .monaco-table .monaco-list:not(:focus) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr, + .monaco-table .monaco-list:not(.focused) .monaco-list-row[data-parity=odd].focused:not(.selected):not(:hover) .monaco-table-tr { + background-color: ${e.tableOddRowsBackgroundColor}; + } + `),this.styleElement.textContent=o.join(` +`)}}const Owt={listFocusBackground:"#7FB0D0",listActiveSelectionBackground:"#0E639C",listActiveSelectionForeground:"#FFFFFF",listActiveSelectionIconForeground:"#FFFFFF",listFocusAndSelectionOutline:"#90C2F9",listFocusAndSelectionBackground:"#094771",listFocusAndSelectionForeground:"#FFFFFF",listInactiveSelectionBackground:"#3F3F46",listInactiveSelectionIconForeground:"#FFFFFF",listHoverBackground:"#2A2D2E",listDropOverBackground:"#383B3D",listDropBetweenBackground:"#EEEEEE",treeIndentGuidesStroke:"#a9a9a9",treeInactiveIndentGuidesStroke:Ee.fromHex("#a9a9a9").transparent(.4).toString(),tableColumnsBorder:Ee.fromHex("#cccccc").transparent(.2).toString(),tableOddRowsBackgroundColor:Ee.fromHex("#cccccc").transparent(.04).toString(),listBackground:void 0,listFocusForeground:void 0,listInactiveSelectionForeground:void 0,listInactiveFocusForeground:void 0,listInactiveFocusBackground:void 0,listHoverForeground:void 0,listFocusOutline:void 0,listInactiveFocusOutline:void 0,listSelectionOutline:void 0,listHoverOutline:void 0},Bwt={keyboardSupport:!0,mouseSupport:!0,multipleSelectionSupport:!0,dnd:{getDragURI(){return null},onDragStart(){},onDragOver(){return!1},drop(){},dispose(){}}};function zwt(n,e){const t=n.indexOf(e);if(t===-1)return[];const i=[];let r=t-1;for(;r>=0&&n[r]===e-(t-r);)i.push(n[r--]);for(i.reverse(),r=t;r=n.length)t.push(e[r++]);else if(r>=e.length)t.push(n[i++]);else if(n[i]===e[r]){t.push(n[i]),i++,r++;continue}else n[i]=n.length)t.push(e[r++]);else if(r>=e.length)t.push(n[i++]);else if(n[i]===e[r]){i++,r++;continue}else n[i]n-e;class Hwt{constructor(e,t){this._templateId=e,this.renderers=t}get templateId(){return this._templateId}renderTemplate(e){return this.renderers.map(t=>t.renderTemplate(e))}renderElement(e,t,i,r){let o=0;for(const s of this.renderers)s.renderElement(e,t,i[o++],r)}disposeElement(e,t,i,r){var o;let s=0;for(const a of this.renderers)(o=a.disposeElement)===null||o===void 0||o.call(a,e,t,i[s],r),s+=1}disposeTemplate(e){let t=0;for(const i of this.renderers)i.disposeTemplate(e[t++])}}class Uwt{constructor(e){this.accessibilityProvider=e,this.templateId="a18n"}renderTemplate(e){return e}renderElement(e,t,i){const r=this.accessibilityProvider.getAriaLabel(e);r?i.setAttribute("aria-label",r):i.removeAttribute("aria-label");const o=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(e);typeof o=="number"?i.setAttribute("aria-level",`${o}`):i.removeAttribute("aria-level")}disposeTemplate(e){}}class Jwt{constructor(e,t){this.list=e,this.dnd=t}getDragElements(e){const t=this.list.getSelectedElements();return t.indexOf(e)>-1?t:[e]}getDragURI(e){return this.dnd.getDragURI(e)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e,t)}onDragStart(e,t){var i,r;(r=(i=this.dnd).onDragStart)===null||r===void 0||r.call(i,e,t)}onDragOver(e,t,i,r,o){return this.dnd.onDragOver(e,t,i,r,o)}onDragLeave(e,t,i,r){var o,s;(s=(o=this.dnd).onDragLeave)===null||s===void 0||s.call(o,e,t,i,r)}onDragEnd(e){var t,i;(i=(t=this.dnd).onDragEnd)===null||i===void 0||i.call(t,e)}drop(e,t,i,r,o){this.dnd.drop(e,t,i,r,o)}dispose(){this.dnd.dispose()}}class zu{get onDidChangeFocus(){return ft.map(this.eventBufferer.wrapEvent(this.focus.onChange),e=>this.toListEvent(e),this.disposables)}get onDidChangeSelection(){return ft.map(this.eventBufferer.wrapEvent(this.selection.onChange),e=>this.toListEvent(e),this.disposables)}get domId(){return this.view.domId}get onDidScroll(){return this.view.onDidScroll}get onMouseClick(){return this.view.onMouseClick}get onMouseDblClick(){return this.view.onMouseDblClick}get onMouseMiddleClick(){return this.view.onMouseMiddleClick}get onPointer(){return this.mouseController.onPointer}get onMouseDown(){return this.view.onMouseDown}get onMouseOver(){return this.view.onMouseOver}get onMouseOut(){return this.view.onMouseOut}get onTouchStart(){return this.view.onTouchStart}get onTap(){return this.view.onTap}get onContextMenu(){let e=!1;const t=ft.chain(this.disposables.add(new Qn(this.view.domNode,"keydown")).event,o=>o.map(s=>new nr(s)).filter(s=>e=s.keyCode===58||s.shiftKey&&s.keyCode===68).map(s=>En.stop(s,!0)).filter(()=>!1)),i=ft.chain(this.disposables.add(new Qn(this.view.domNode,"keyup")).event,o=>o.forEach(()=>e=!1).map(s=>new nr(s)).filter(s=>s.keyCode===58||s.shiftKey&&s.keyCode===68).map(s=>En.stop(s,!0)).map(({browserEvent:s})=>{const a=this.getFocus(),l=a.length?a[0]:void 0,u=typeof l<"u"?this.view.element(l):void 0,c=typeof l<"u"?this.view.domElement(l):this.view.domNode;return{index:l,element:u,anchor:c,browserEvent:s}})),r=ft.chain(this.view.onContextMenu,o=>o.filter(s=>!e).map(({element:s,index:a,browserEvent:l})=>({element:s,index:a,anchor:new dd(qt(this.view.domNode),l),browserEvent:l})));return ft.any(t,i,r)}get onKeyDown(){return this.disposables.add(new Qn(this.view.domNode,"keydown")).event}get onDidFocus(){return ft.signal(this.disposables.add(new Qn(this.view.domNode,"focus",!0)).event)}get onDidBlur(){return ft.signal(this.disposables.add(new Qn(this.view.domNode,"blur",!0)).event)}constructor(e,t,i,r,o=Bwt){var s,a,l,u;this.user=e,this._options=o,this.focus=new WE("focused"),this.anchor=new WE("anchor"),this.eventBufferer=new aY,this._ariaLabel="",this.disposables=new je,this._onDidDispose=new be,this.onDidDispose=this._onDidDispose.event;const c=this._options.accessibilityProvider&&this._options.accessibilityProvider.getWidgetRole?(s=this._options.accessibilityProvider)===null||s===void 0?void 0:s.getWidgetRole():"list";this.selection=new Ewt(c!=="listbox");const d=[this.focus.renderer,this.selection.renderer];this.accessibilityProvider=o.accessibilityProvider,this.accessibilityProvider&&(d.push(new Uwt(this.accessibilityProvider)),(l=(a=this.accessibilityProvider).onDidChangeActiveDescendant)===null||l===void 0||l.call(a,this.onDidChangeActiveDescendant,this,this.disposables)),r=r.map(g=>new Hwt(g.templateId,[...d,g]));const h={...o,dnd:o.dnd&&new Jwt(this,o.dnd)};if(this.view=this.createListView(t,i,r,h),this.view.domNode.setAttribute("role",c),o.styleController)this.styleController=o.styleController(this.view.domId);else{const g=Eu(this.view.domNode);this.styleController=new Fye(g,this.view.domId)}if(this.spliceable=new Swt([new R7(this.focus,this.view,o.identityProvider),new R7(this.selection,this.view,o.identityProvider),new R7(this.anchor,this.view,o.identityProvider),this.view]),this.disposables.add(this.focus),this.disposables.add(this.selection),this.disposables.add(this.anchor),this.disposables.add(this.view),this.disposables.add(this._onDidDispose),this.disposables.add(new Xwt(this,this.view)),(typeof o.keyboardSupport!="boolean"||o.keyboardSupport)&&(this.keyboardController=new Iye(this,this.view,o),this.disposables.add(this.keyboardController)),o.keyboardNavigationLabelProvider){const g=o.keyboardNavigationDelegate||Gwt;this.typeNavigationController=new Vwt(this,this.view,o.keyboardNavigationLabelProvider,(u=o.keyboardNavigationEventFilter)!==null&&u!==void 0?u:()=>!0,g),this.disposables.add(this.typeNavigationController)}this.mouseController=this.createMouseController(o),this.disposables.add(this.mouseController),this.onDidChangeFocus(this._onFocusChange,this,this.disposables),this.onDidChangeSelection(this._onSelectionChange,this,this.disposables),this.accessibilityProvider&&(this.ariaLabel=this.accessibilityProvider.getWidgetAriaLabel()),this._options.multipleSelectionSupport!==!1&&this.view.domNode.setAttribute("aria-multiselectable","true")}createListView(e,t,i,r){return new Wc(e,t,i,r)}createMouseController(e){return new Lye(this)}updateOptions(e={}){var t,i;this._options={...this._options,...e},(t=this.typeNavigationController)===null||t===void 0||t.updateOptions(this._options),this._options.multipleSelectionController!==void 0&&(this._options.multipleSelectionSupport?this.view.domNode.setAttribute("aria-multiselectable","true"):this.view.domNode.removeAttribute("aria-multiselectable")),this.mouseController.updateOptions(e),(i=this.keyboardController)===null||i===void 0||i.updateOptions(e),this.view.updateOptions(e)}get options(){return this._options}splice(e,t,i=[]){if(e<0||e>this.view.length)throw new hv(this.user,`Invalid start index: ${e}`);if(t<0)throw new hv(this.user,`Invalid delete count: ${t}`);t===0&&i.length===0||this.eventBufferer.bufferEvents(()=>this.spliceable.splice(e,t,i))}rerender(){this.view.rerender()}element(e){return this.view.element(e)}indexOf(e){return this.view.indexOf(e)}indexAt(e){return this.view.indexAt(e)}get length(){return this.view.length}get contentHeight(){return this.view.contentHeight}get onDidChangeContentHeight(){return this.view.onDidChangeContentHeight}get scrollTop(){return this.view.getScrollTop()}set scrollTop(e){this.view.setScrollTop(e)}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}get firstVisibleIndex(){return this.view.firstVisibleIndex}get ariaLabel(){return this._ariaLabel}set ariaLabel(e){this._ariaLabel=e,this.view.domNode.setAttribute("aria-label",e)}domFocus(){this.view.domNode.focus({preventScroll:!0})}layout(e,t){this.view.layout(e,t)}setSelection(e,t){for(const i of e)if(i<0||i>=this.length)throw new hv(this.user,`Invalid index ${i}`);this.selection.set(e,t)}getSelection(){return this.selection.get()}getSelectedElements(){return this.getSelection().map(e=>this.view.element(e))}setAnchor(e){if(typeof e>"u"){this.anchor.set([]);return}if(e<0||e>=this.length)throw new hv(this.user,`Invalid index ${e}`);this.anchor.set([e])}getAnchor(){return cH(this.anchor.get(),void 0)}getAnchorElement(){const e=this.getAnchor();return typeof e>"u"?void 0:this.element(e)}setFocus(e,t){for(const i of e)if(i<0||i>=this.length)throw new hv(this.user,`Invalid index ${i}`);this.focus.set(e,t)}focusNext(e=1,t=!1,i,r){if(this.length===0)return;const o=this.focus.get(),s=this.findNextIndex(o.length>0?o[0]+e:0,t,r);s>-1&&this.setFocus([s],i)}focusPrevious(e=1,t=!1,i,r){if(this.length===0)return;const o=this.focus.get(),s=this.findPreviousIndex(o.length>0?o[0]-e:0,t,r);s>-1&&this.setFocus([s],i)}async focusNextPage(e,t){let i=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);i=i===0?0:i-1;const r=this.getFocus()[0];if(r!==i&&(r===void 0||i>r)){const o=this.findPreviousIndex(i,!1,t);o>-1&&r!==o?this.setFocus([o],e):this.setFocus([i],e)}else{const o=this.view.getScrollTop();let s=o+this.view.renderHeight;i>r&&(s-=this.view.elementHeight(i)),this.view.setScrollTop(s),this.view.getScrollTop()!==o&&(this.setFocus([]),await xC(0),await this.focusNextPage(e,t))}}async focusPreviousPage(e,t,i=()=>0){let r;const o=i(),s=this.view.getScrollTop()+o;s===0?r=this.view.indexAt(s):r=this.view.indexAfter(s-1);const a=this.getFocus()[0];if(a!==r&&(a===void 0||a>=r)){const l=this.findNextIndex(r,!1,t);l>-1&&a!==l?this.setFocus([l],e):this.setFocus([r],e)}else{const l=s;this.view.setScrollTop(s-this.view.renderHeight-o),this.view.getScrollTop()+i()!==l&&(this.setFocus([]),await xC(0),await this.focusPreviousPage(e,t,i))}}focusLast(e,t){if(this.length===0)return;const i=this.findPreviousIndex(this.length-1,!1,t);i>-1&&this.setFocus([i],e)}focusFirst(e,t){this.focusNth(0,e,t)}focusNth(e,t,i){if(this.length===0)return;const r=this.findNextIndex(e,!1,i);r>-1&&this.setFocus([r],t)}findNextIndex(e,t=!1,i){for(let r=0;r=this.length&&!t)return-1;if(e=e%this.length,!i||i(this.element(e)))return e;e++}return-1}findPreviousIndex(e,t=!1,i){for(let r=0;rthis.view.element(e))}reveal(e,t,i=0){if(e<0||e>=this.length)throw new hv(this.user,`Invalid index ${e}`);const r=this.view.getScrollTop(),o=this.view.elementTop(e),s=this.view.elementHeight(e);if(mb(t)){const a=s-this.view.renderHeight+i;this.view.setScrollTop(a*ol(t,0,1)+o-i)}else{const a=o+s,l=r+this.view.renderHeight;o=l||(o=l&&s>=this.view.renderHeight?this.view.setScrollTop(o-i):a>=l&&this.view.setScrollTop(a-this.view.renderHeight))}}getRelativeTop(e,t=0){if(e<0||e>=this.length)throw new hv(this.user,`Invalid index ${e}`);const i=this.view.getScrollTop(),r=this.view.elementTop(e),o=this.view.elementHeight(e);if(ri+this.view.renderHeight)return null;const s=o-this.view.renderHeight+t;return Math.abs((i+t-r)/s)}isDOMFocused(){return EF(this.view.domNode)}getHTMLElement(){return this.view.domNode}getScrollableElement(){return this.view.scrollableElementDomNode}getElementID(e){return this.view.getElementDomId(e)}getElementTop(e){return this.view.elementTop(e)}style(e){this.styleController.style(e)}toListEvent({indexes:e,browserEvent:t}){return{indexes:e,elements:e.map(i=>this.view.element(i)),browserEvent:t}}_onFocusChange(){const e=this.focus.get();this.view.domNode.classList.toggle("element-focused",e.length>0),this.onDidChangeActiveDescendant()}onDidChangeActiveDescendant(){var e;const t=this.focus.get();if(t.length>0){let i;!((e=this.accessibilityProvider)===null||e===void 0)&&e.getActiveDescendantId&&(i=this.accessibilityProvider.getActiveDescendantId(this.view.element(t[0]))),this.view.domNode.setAttribute("aria-activedescendant",i||this.view.getElementDomId(t[0]))}else this.view.domNode.removeAttribute("aria-activedescendant")}_onSelectionChange(){const e=this.selection.get();this.view.domNode.classList.toggle("selection-none",e.length===0),this.view.domNode.classList.toggle("selection-single",e.length===1),this.view.domNode.classList.toggle("selection-multiple",e.length>1)}dispose(){this._onDidDispose.fire(),this.disposables.dispose(),this._onDidDispose.dispose()}}t0([qr],zu.prototype,"onDidChangeFocus",null),t0([qr],zu.prototype,"onDidChangeSelection",null),t0([qr],zu.prototype,"onContextMenu",null),t0([qr],zu.prototype,"onKeyDown",null),t0([qr],zu.prototype,"onDidFocus",null),t0([qr],zu.prototype,"onDidBlur",null);const mv=vt,Dye="selectOption.entry.template";class Kwt{get templateId(){return Dye}renderTemplate(e){const t=Object.create(null);return t.root=e,t.text=Je(e,mv(".option-text")),t.detail=Je(e,mv(".option-detail")),t.decoratorRight=Je(e,mv(".option-decorator-right")),t}renderElement(e,t,i){const r=i,o=e.text,s=e.detail,a=e.decoratorRight,l=e.isDisabled;r.text.textContent=o,r.detail.textContent=s||"",r.decoratorRight.innerText=a||"",l?r.root.classList.add("option-disabled"):r.root.classList.remove("option-disabled")}disposeTemplate(e){}}class cm extends De{constructor(e,t,i,r,o){super(),this.options=[],this._currentSelection=0,this._hasDetails=!1,this._skipLayout=!1,this._sticky=!1,this._isVisible=!1,this.styles=r,this.selectBoxOptions=o||Object.create(null),typeof this.selectBoxOptions.minBottomMargin!="number"?this.selectBoxOptions.minBottomMargin=cm.DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN:this.selectBoxOptions.minBottomMargin<0&&(this.selectBoxOptions.minBottomMargin=0),this.selectElement=document.createElement("select"),this.selectElement.className="monaco-select-box monaco-select-box-dropdown-padding",typeof this.selectBoxOptions.ariaLabel=="string"&&this.selectElement.setAttribute("aria-label",this.selectBoxOptions.ariaLabel),typeof this.selectBoxOptions.ariaDescription=="string"&&this.selectElement.setAttribute("aria-description",this.selectBoxOptions.ariaDescription),this._hover=this._register(dv(Kf("mouse"),this.selectElement,"")),this._onDidSelect=new be,this._register(this._onDidSelect),this.registerListeners(),this.constructSelectDropDown(i),this.selected=t||0,e&&this.setOptions(e,t),this.initStyleSheet()}getHeight(){return 22}getTemplateId(){return Dye}constructSelectDropDown(e){this.contextViewProvider=e,this.selectDropDownContainer=vt(".monaco-select-box-dropdown-container"),this.selectDropDownContainer.classList.add("monaco-select-box-dropdown-padding"),this.selectionDetailsPane=Je(this.selectDropDownContainer,mv(".select-box-details-pane"));const t=Je(this.selectDropDownContainer,mv(".select-box-dropdown-container-width-control")),i=Je(t,mv(".width-control-div"));this.widthControlElement=document.createElement("span"),this.widthControlElement.className="option-text-width-control",Je(i,this.widthControlElement),this._dropDownPosition=0,this.styleElement=Eu(this.selectDropDownContainer),this.selectDropDownContainer.setAttribute("draggable","true"),this._register(Ve(this.selectDropDownContainer,at.DRAG_START,r=>{En.stop(r,!0)}))}registerListeners(){this._register(Gr(this.selectElement,"change",t=>{this.selected=t.target.selectedIndex,this._onDidSelect.fire({index:t.target.selectedIndex,selected:t.target.value}),this.options[this.selected]&&this.options[this.selected].text&&this._hover.update(this.options[this.selected].text)})),this._register(Ve(this.selectElement,at.CLICK,t=>{En.stop(t),this._isVisible?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(Ve(this.selectElement,at.MOUSE_DOWN,t=>{En.stop(t)}));let e;this._register(Ve(this.selectElement,"touchstart",t=>{e=this._isVisible})),this._register(Ve(this.selectElement,"touchend",t=>{En.stop(t),e?this.hideSelectDropDown(!0):this.showSelectDropDown()})),this._register(Ve(this.selectElement,at.KEY_DOWN,t=>{const i=new nr(t);let r=!1;$n?(i.keyCode===18||i.keyCode===16||i.keyCode===10||i.keyCode===3)&&(r=!0):(i.keyCode===18&&i.altKey||i.keyCode===16&&i.altKey||i.keyCode===10||i.keyCode===3)&&(r=!0),r&&(this.showSelectDropDown(),En.stop(t,!0))}))}get onDidSelect(){return this._onDidSelect.event}setOptions(e,t){Ar(this.options,e)||(this.options=e,this.selectElement.options.length=0,this._hasDetails=!1,this._cachedMaxDetailsHeight=void 0,this.options.forEach((i,r)=>{this.selectElement.add(this.createOption(i.text,r,i.isDisabled)),typeof i.description=="string"&&(this._hasDetails=!0)})),t!==void 0&&(this.select(t),this._currentSelection=this.selected)}setOptionsList(){var e;(e=this.selectList)===null||e===void 0||e.splice(0,this.selectList.length,this.options)}select(e){e>=0&&ethis.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.options[this.selected]&&this.options[this.selected].text&&this._hover.update(this.options[this.selected].text)}focus(){this.selectElement&&(this.selectElement.tabIndex=0,this.selectElement.focus())}blur(){this.selectElement&&(this.selectElement.tabIndex=-1,this.selectElement.blur())}setFocusable(e){this.selectElement.tabIndex=e?0:-1}render(e){this.container=e,e.classList.add("select-container"),e.appendChild(this.selectElement),this.styleSelectElement()}initStyleSheet(){const e=[];this.styles.listFocusBackground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { background-color: ${this.styles.listFocusBackground} !important; }`),this.styles.listFocusForeground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { color: ${this.styles.listFocusForeground} !important; }`),this.styles.decoratorRightForeground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.focused) .option-decorator-right { color: ${this.styles.decoratorRightForeground}; }`),this.styles.selectBackground&&this.styles.selectBorder&&this.styles.selectBorder!==this.styles.selectBackground?(e.push(`.monaco-select-box-dropdown-container { border: 1px solid ${this.styles.selectBorder} } `),e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectBorder} } `),e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectBorder} } `)):this.styles.selectListBorder&&(e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-top { border-top: 1px solid ${this.styles.selectListBorder} } `),e.push(`.monaco-select-box-dropdown-container > .select-box-details-pane.border-bottom { border-bottom: 1px solid ${this.styles.selectListBorder} } `)),this.styles.listHoverForeground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { color: ${this.styles.listHoverForeground} !important; }`),this.styles.listHoverBackground&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { background-color: ${this.styles.listHoverBackground} !important; }`),this.styles.listFocusOutline&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.focused { outline: 1.6px dotted ${this.styles.listFocusOutline} !important; outline-offset: -1.6px !important; }`),this.styles.listHoverOutline&&e.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row:not(.option-disabled):not(.focused):hover { outline: 1.6px dashed ${this.styles.listHoverOutline} !important; outline-offset: -1.6px !important; }`),e.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled.focused { background-color: transparent !important; color: inherit !important; outline: none !important; }"),e.push(".monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled:hover { background-color: transparent !important; color: inherit !important; outline: none !important; }"),this.styleElement.textContent=e.join(` +`)}styleSelectElement(){var e,t,i;const r=(e=this.styles.selectBackground)!==null&&e!==void 0?e:"",o=(t=this.styles.selectForeground)!==null&&t!==void 0?t:"",s=(i=this.styles.selectBorder)!==null&&i!==void 0?i:"";this.selectElement.style.backgroundColor=r,this.selectElement.style.color=o,this.selectElement.style.borderColor=s}styleList(){var e,t;const i=(e=this.styles.selectBackground)!==null&&e!==void 0?e:"",r=Cf(this.styles.selectListBackground,i);this.selectDropDownListContainer.style.backgroundColor=r,this.selectionDetailsPane.style.backgroundColor=r;const o=(t=this.styles.focusBorder)!==null&&t!==void 0?t:"";this.selectDropDownContainer.style.outlineColor=o,this.selectDropDownContainer.style.outlineOffset="-1px",this.selectList.style(this.styles)}createOption(e,t,i){const r=document.createElement("option");return r.value=e,r.text=e,r.disabled=!!i,r}showSelectDropDown(){this.selectionDetailsPane.innerText="",!(!this.contextViewProvider||this._isVisible)&&(this.createSelectList(this.selectDropDownContainer),this.setOptionsList(),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:e=>this.renderSelectDropDown(e,!0),layout:()=>{this.layoutSelectDropDown()},onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._isVisible=!0,this.hideSelectDropDown(!1),this.contextViewProvider.showContextView({getAnchor:()=>this.selectElement,render:e=>this.renderSelectDropDown(e),layout:()=>this.layoutSelectDropDown(),onHide:()=>{this.selectDropDownContainer.classList.remove("visible"),this.selectElement.classList.remove("synthetic-focus")},anchorPosition:this._dropDownPosition},this.selectBoxOptions.optionsAsChildren?this.container:void 0),this._currentSelection=this.selected,this._isVisible=!0,this.selectElement.setAttribute("aria-expanded","true"))}hideSelectDropDown(e){!this.contextViewProvider||!this._isVisible||(this._isVisible=!1,this.selectElement.setAttribute("aria-expanded","false"),e&&this.selectElement.focus(),this.contextViewProvider.hideContextView())}renderSelectDropDown(e,t){return e.appendChild(this.selectDropDownContainer),this.layoutSelectDropDown(t),{dispose:()=>{try{e.removeChild(this.selectDropDownContainer)}catch{}}}}measureMaxDetailsHeight(){let e=0;return this.options.forEach((t,i)=>{this.updateDetail(i),this.selectionDetailsPane.offsetHeight>e&&(e=this.selectionDetailsPane.offsetHeight)}),e}layoutSelectDropDown(e){if(this._skipLayout)return!1;if(this.selectList){this.selectDropDownContainer.classList.add("visible");const t=qt(this.selectElement),i=go(this.selectElement),r=qt(this.selectElement).getComputedStyle(this.selectElement),o=parseFloat(r.getPropertyValue("--dropdown-padding-top"))+parseFloat(r.getPropertyValue("--dropdown-padding-bottom")),s=t.innerHeight-i.top-i.height-(this.selectBoxOptions.minBottomMargin||0),a=i.top-cm.DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN,l=this.selectElement.offsetWidth,u=this.setWidthControlElement(this.widthControlElement),c=Math.max(u,Math.round(l)).toString()+"px";this.selectDropDownContainer.style.width=c,this.selectList.getHTMLElement().style.height="",this.selectList.layout();let d=this.selectList.contentHeight;this._hasDetails&&this._cachedMaxDetailsHeight===void 0&&(this._cachedMaxDetailsHeight=this.measureMaxDetailsHeight());const h=this._hasDetails?this._cachedMaxDetailsHeight:0,g=d+o+h,m=Math.floor((s-o-h)/this.getHeight()),f=Math.floor((a-o-h)/this.getHeight());if(e)return i.top+i.height>t.innerHeight-22||i.topm&&this.options.length>m?(this._dropDownPosition=1,this.selectDropDownContainer.removeChild(this.selectDropDownListContainer),this.selectDropDownContainer.removeChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectionDetailsPane.classList.remove("border-top"),this.selectionDetailsPane.classList.add("border-bottom")):(this._dropDownPosition=0,this.selectDropDownContainer.removeChild(this.selectDropDownListContainer),this.selectDropDownContainer.removeChild(this.selectionDetailsPane),this.selectDropDownContainer.appendChild(this.selectDropDownListContainer),this.selectDropDownContainer.appendChild(this.selectionDetailsPane),this.selectionDetailsPane.classList.remove("border-bottom"),this.selectionDetailsPane.classList.add("border-top")),!0);if(i.top+i.height>t.innerHeight-22||i.tops&&(d=m*this.getHeight())}else g>a&&(d=f*this.getHeight());return this.selectList.layout(d),this.selectList.domFocus(),this.selectList.length>0&&(this.selectList.setFocus([this.selected||0]),this.selectList.reveal(this.selectList.getFocus()[0]||0)),this._hasDetails?(this.selectList.getHTMLElement().style.height=d+o+"px",this.selectDropDownContainer.style.height=""):this.selectDropDownContainer.style.height=d+o+"px",this.updateDetail(this.selected),this.selectDropDownContainer.style.width=c,this.selectDropDownListContainer.setAttribute("tabindex","0"),this.selectElement.classList.add("synthetic-focus"),this.selectDropDownContainer.classList.add("synthetic-focus"),!0}else return!1}setWidthControlElement(e){let t=0;if(e){let i=0,r=0;this.options.forEach((o,s)=>{const a=o.detail?o.detail.length:0,l=o.decoratorRight?o.decoratorRight.length:0,u=o.text.length+a+l;u>r&&(i=s,r=u)}),e.textContent=this.options[i].text+(this.options[i].decoratorRight?this.options[i].decoratorRight+" ":""),t=Ja(e)}return t}createSelectList(e){if(this.selectList)return;this.selectDropDownListContainer=Je(e,mv(".select-box-dropdown-list-container")),this.listRenderer=new Kwt,this.selectList=new zu("SelectBoxCustom",this.selectDropDownListContainer,this,[this.listRenderer],{useShadows:!1,verticalScrollMode:3,keyboardSupport:!1,mouseSupport:!1,accessibilityProvider:{getAriaLabel:r=>{let o=r.text;return r.detail&&(o+=`. ${r.detail}`),r.decoratorRight&&(o+=`. ${r.decoratorRight}`),r.description&&(o+=`. ${r.description}`),o},getWidgetAriaLabel:()=>x({key:"selectBox",comment:["Behave like native select dropdown element."]},"Select Box"),getRole:()=>$n?"":"option",getWidgetRole:()=>"listbox"}}),this.selectBoxOptions.ariaLabel&&(this.selectList.ariaLabel=this.selectBoxOptions.ariaLabel);const t=this._register(new Qn(this.selectDropDownListContainer,"keydown")),i=ft.chain(t.event,r=>r.filter(()=>this.selectList.length>0).map(o=>new nr(o)));this._register(ft.chain(i,r=>r.filter(o=>o.keyCode===3))(this.onEnter,this)),this._register(ft.chain(i,r=>r.filter(o=>o.keyCode===2))(this.onEnter,this)),this._register(ft.chain(i,r=>r.filter(o=>o.keyCode===9))(this.onEscape,this)),this._register(ft.chain(i,r=>r.filter(o=>o.keyCode===16))(this.onUpArrow,this)),this._register(ft.chain(i,r=>r.filter(o=>o.keyCode===18))(this.onDownArrow,this)),this._register(ft.chain(i,r=>r.filter(o=>o.keyCode===12))(this.onPageDown,this)),this._register(ft.chain(i,r=>r.filter(o=>o.keyCode===11))(this.onPageUp,this)),this._register(ft.chain(i,r=>r.filter(o=>o.keyCode===14))(this.onHome,this)),this._register(ft.chain(i,r=>r.filter(o=>o.keyCode===13))(this.onEnd,this)),this._register(ft.chain(i,r=>r.filter(o=>o.keyCode>=21&&o.keyCode<=56||o.keyCode>=85&&o.keyCode<=113))(this.onCharacter,this)),this._register(Ve(this.selectList.getHTMLElement(),at.POINTER_UP,r=>this.onPointerUp(r))),this._register(this.selectList.onMouseOver(r=>typeof r.index<"u"&&this.selectList.setFocus([r.index]))),this._register(this.selectList.onDidChangeFocus(r=>this.onListFocus(r))),this._register(Ve(this.selectDropDownContainer,at.FOCUS_OUT,r=>{!this._isVisible||xs(r.relatedTarget,this.selectDropDownContainer)||this.onListBlur()})),this.selectList.getHTMLElement().setAttribute("aria-label",this.selectBoxOptions.ariaLabel||""),this.selectList.getHTMLElement().setAttribute("aria-expanded","true"),this.styleList()}onPointerUp(e){if(!this.selectList.length)return;En.stop(e);const t=e.target;if(!t||t.classList.contains("slider"))return;const i=t.closest(".monaco-list-row");if(!i)return;const r=Number(i.getAttribute("data-index")),o=i.classList.contains("option-disabled");r>=0&&r{for(let s=0;sthis.selected+2)this.selected+=2;else{if(t)return;this.selected++}this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0])}}onUpArrow(e){this.selected>0&&(En.stop(e,!0),this.options[this.selected-1].isDisabled&&this.selected>1?this.selected-=2:this.selected--,this.select(this.selected),this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selectList.getFocus()[0]))}onPageUp(e){En.stop(e),this.selectList.focusPreviousPage(),setTimeout(()=>{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected{this.selected=this.selectList.getFocus()[0],this.options[this.selected].isDisabled&&this.selected>0&&(this.selected--,this.selectList.setFocus([this.selected])),this.selectList.reveal(this.selected),this.select(this.selected)},1)}onHome(e){En.stop(e),!(this.options.length<2)&&(this.selected=0,this.options[this.selected].isDisabled&&this.selected>1&&this.selected++,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onEnd(e){En.stop(e),!(this.options.length<2)&&(this.selected=this.options.length-1,this.options[this.selected].isDisabled&&this.selected>1&&this.selected--,this.selectList.setFocus([this.selected]),this.selectList.reveal(this.selected),this.select(this.selected))}onCharacter(e){const t=gf.toString(e.keyCode);let i=-1;for(let r=0;r{this._register(Ve(this.selectElement,e,t=>{this.selectElement.focus()}))}),this._register(Gr(this.selectElement,"click",e=>{En.stop(e,!0)})),this._register(Gr(this.selectElement,"change",e=>{this.selectElement.title=e.target.value,this._onDidSelect.fire({index:e.target.selectedIndex,selected:e.target.value})})),this._register(Gr(this.selectElement,"keydown",e=>{let t=!1;$n?(e.keyCode===18||e.keyCode===16||e.keyCode===10)&&(t=!0):(e.keyCode===18&&e.altKey||e.keyCode===10||e.keyCode===3)&&(t=!0),t&&e.stopPropagation()}))}get onDidSelect(){return this._onDidSelect.event}setOptions(e,t){(!this.options||!Ar(this.options,e))&&(this.options=e,this.selectElement.options.length=0,this.options.forEach((i,r)=>{this.selectElement.add(this.createOption(i.text,r,i.isDisabled))})),t!==void 0&&this.select(t)}select(e){this.options.length===0?this.selected=0:e>=0&&ethis.options.length-1?this.select(this.options.length-1):this.selected<0&&(this.selected=0),this.selectElement.selectedIndex=this.selected,this.selected{this.element&&this.handleActionChangeEvent(r)}))}handleActionChangeEvent(e){e.enabled!==void 0&&this.updateEnabled(),e.checked!==void 0&&this.updateChecked(),e.class!==void 0&&this.updateClass(),e.label!==void 0&&(this.updateLabel(),this.updateTooltip()),e.tooltip!==void 0&&this.updateTooltip()}get actionRunner(){return this._actionRunner||(this._actionRunner=this._register(new AC)),this._actionRunner}set actionRunner(e){this._actionRunner=e}isEnabled(){return this._action.enabled}setActionContext(e){this._context=e}render(e){const t=this.element=e;this._register(er.addTarget(e));const i=this.options&&this.options.draggable;i&&(e.draggable=!0,vc&&this._register(Ve(e,at.DRAG_START,r=>{var o;return(o=r.dataTransfer)===null||o===void 0?void 0:o.setData(mD.TEXT,this._action.label)}))),this._register(Ve(t,qi.Tap,r=>this.onClick(r,!0))),this._register(Ve(t,at.MOUSE_DOWN,r=>{i||En.stop(r,!0),this._action.enabled&&r.button===0&&t.classList.add("active")})),$n&&this._register(Ve(t,at.CONTEXT_MENU,r=>{r.button===0&&r.ctrlKey===!0&&this.onClick(r)})),this._register(Ve(t,at.CLICK,r=>{En.stop(r,!0),this.options&&this.options.isMenu||this.onClick(r)})),this._register(Ve(t,at.DBLCLICK,r=>{En.stop(r,!0)})),[at.MOUSE_UP,at.MOUSE_OUT].forEach(r=>{this._register(Ve(t,r,o=>{En.stop(o),t.classList.remove("active")}))})}onClick(e,t=!1){var i;En.stop(e,!0);const r=Mu(this._context)?!((i=this.options)===null||i===void 0)&&i.useEventAsContext?e:{preserveFocus:t}:this._context;this.actionRunner.run(this._action,r)}focus(){this.element&&(this.element.tabIndex=0,this.element.focus(),this.element.classList.add("focused"))}blur(){this.element&&(this.element.blur(),this.element.tabIndex=-1,this.element.classList.remove("focused"))}setFocusable(e){this.element&&(this.element.tabIndex=e?0:-1)}get trapsArrowNavigation(){return!1}updateEnabled(){}updateLabel(){}getClass(){return this.action.class}getTooltip(){return this.action.tooltip}updateTooltip(){var e,t,i;if(!this.element)return;const r=(e=this.getTooltip())!==null&&e!==void 0?e:"";if(this.updateAriaLabel(),!((t=this.options.hoverDelegate)===null||t===void 0)&&t.showNativeHover)this.element.title=r;else if(this.customHover)this.customHover.update(r);else{const o=(i=this.options.hoverDelegate)!==null&&i!==void 0?i:Kf("element");this.customHover=dv(o,this.element,r),this._store.add(this.customHover)}}updateAriaLabel(){var e;if(this.element){const t=(e=this.getTooltip())!==null&&e!==void 0?e:"";this.element.setAttribute("aria-label",t)}}updateClass(){}updateChecked(){}dispose(){this.element&&(this.element.remove(),this.element=void 0),this._context=void 0,super.dispose()}}class ow extends Th{constructor(e,t,i){super(e,t,i),this.options=i,this.options.icon=i.icon!==void 0?i.icon:!1,this.options.label=i.label!==void 0?i.label:!0,this.cssClass=""}render(e){super.render(e),Ci(this.element);const t=document.createElement("a");if(t.classList.add("action-label"),t.setAttribute("role",this.getDefaultAriaRole()),this.label=t,this.element.appendChild(t),this.options.label&&this.options.keybinding){const i=document.createElement("span");i.classList.add("keybinding"),i.textContent=this.options.keybinding,this.element.appendChild(i)}this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked()}getDefaultAriaRole(){return this._action.id===To.ID?"presentation":this.options.isMenu?"menuitem":"button"}focus(){this.label&&(this.label.tabIndex=0,this.label.focus())}blur(){this.label&&(this.label.tabIndex=-1)}setFocusable(e){this.label&&(this.label.tabIndex=e?0:-1)}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this.action.label)}getTooltip(){let e=null;return this.action.tooltip?e=this.action.tooltip:!this.options.label&&this.action.label&&this.options.icon&&(e=this.action.label,this.options.keybinding&&(e=x({key:"titleLabel",comment:["action title","action keybinding"]},"{0} ({1})",e,this.options.keybinding))),e??void 0}updateClass(){var e;this.cssClass&&this.label&&this.label.classList.remove(...this.cssClass.split(" ")),this.options.icon?(this.cssClass=this.getClass(),this.label&&(this.label.classList.add("codicon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" "))),this.updateEnabled()):(e=this.label)===null||e===void 0||e.classList.remove("codicon")}updateEnabled(){var e,t;this.action.enabled?(this.label&&(this.label.removeAttribute("aria-disabled"),this.label.classList.remove("disabled")),(e=this.element)===null||e===void 0||e.classList.remove("disabled")):(this.label&&(this.label.setAttribute("aria-disabled","true"),this.label.classList.add("disabled")),(t=this.element)===null||t===void 0||t.classList.add("disabled"))}updateAriaLabel(){var e;if(this.label){const t=(e=this.getTooltip())!==null&&e!==void 0?e:"";this.label.setAttribute("aria-label",t)}}updateChecked(){this.label&&(this.action.checked!==void 0?(this.label.classList.toggle("checked",this.action.checked),this.label.setAttribute("aria-checked",this.action.checked?"true":"false"),this.label.setAttribute("role","checkbox")):(this.label.classList.remove("checked"),this.label.removeAttribute("aria-checked"),this.label.setAttribute("role",this.getDefaultAriaRole())))}}class $wt extends Th{constructor(e,t,i,r,o,s,a){super(e,t),this.selectBox=new Qwt(i,r,o,s,a),this.selectBox.setFocusable(!1),this._register(this.selectBox),this.registerListeners()}select(e){this.selectBox.select(e)}registerListeners(){this._register(this.selectBox.onDidSelect(e=>this.runAction(e.selected,e.index)))}runAction(e,t){this.actionRunner.run(this._action,this.getActionContext(e,t))}getActionContext(e,t){return e}setFocusable(e){this.selectBox.setFocusable(e)}focus(){var e;(e=this.selectBox)===null||e===void 0||e.focus()}blur(){var e;(e=this.selectBox)===null||e===void 0||e.blur()}render(e){this.selectBox.render(e)}}class Rc extends De{constructor(e,t={}){var i,r,o,s,a,l,u;super(),this._actionRunnerDisposables=this._register(new je),this.viewItemDisposables=this._register(new rY),this.triggerKeyDown=!1,this.focusable=!0,this._onDidBlur=this._register(new be),this.onDidBlur=this._onDidBlur.event,this._onDidCancel=this._register(new be({onWillAddFirstListener:()=>this.cancelHasListener=!0})),this.onDidCancel=this._onDidCancel.event,this.cancelHasListener=!1,this._onDidRun=this._register(new be),this.onDidRun=this._onDidRun.event,this._onWillRun=this._register(new be),this.onWillRun=this._onWillRun.event,this.options=t,this._context=(i=t.context)!==null&&i!==void 0?i:null,this._orientation=(r=this.options.orientation)!==null&&r!==void 0?r:0,this._triggerKeys={keyDown:(s=(o=this.options.triggerKeys)===null||o===void 0?void 0:o.keyDown)!==null&&s!==void 0?s:!1,keys:(l=(a=this.options.triggerKeys)===null||a===void 0?void 0:a.keys)!==null&&l!==void 0?l:[3,10]},this._hoverDelegate=(u=t.hoverDelegate)!==null&&u!==void 0?u:this._register(Kf("element",!0)),this.options.actionRunner?this._actionRunner=this.options.actionRunner:(this._actionRunner=new AC,this._actionRunnerDisposables.add(this._actionRunner)),this._actionRunnerDisposables.add(this._actionRunner.onDidRun(h=>this._onDidRun.fire(h))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun(h=>this._onWillRun.fire(h))),this.viewItems=[],this.focusedItem=void 0,this.domNode=document.createElement("div"),this.domNode.className="monaco-action-bar";let c,d;switch(this._orientation){case 0:c=[15],d=[17];break;case 1:c=[16],d=[18],this.domNode.className+=" vertical";break}this._register(Ve(this.domNode,at.KEY_DOWN,h=>{const g=new nr(h);let m=!0;const f=typeof this.focusedItem=="number"?this.viewItems[this.focusedItem]:void 0;c&&(g.equals(c[0])||g.equals(c[1]))?m=this.focusPrevious():d&&(g.equals(d[0])||g.equals(d[1]))?m=this.focusNext():g.equals(9)&&this.cancelHasListener?this._onDidCancel.fire():g.equals(14)?m=this.focusFirst():g.equals(13)?m=this.focusLast():g.equals(2)&&f instanceof Th&&f.trapsArrowNavigation?m=this.focusNext():this.isTriggerKeyEvent(g)?this._triggerKeys.keyDown?this.doTrigger(g):this.triggerKeyDown=!0:m=!1,m&&(g.preventDefault(),g.stopPropagation())})),this._register(Ve(this.domNode,at.KEY_UP,h=>{const g=new nr(h);this.isTriggerKeyEvent(g)?(!this._triggerKeys.keyDown&&this.triggerKeyDown&&(this.triggerKeyDown=!1,this.doTrigger(g)),g.preventDefault(),g.stopPropagation()):(g.equals(2)||g.equals(1026)||g.equals(16)||g.equals(18)||g.equals(15)||g.equals(17))&&this.updateFocusedItem()})),this.focusTracker=this._register(ph(this.domNode)),this._register(this.focusTracker.onDidBlur(()=>{(Ys()===this.domNode||!xs(Ys(),this.domNode))&&(this._onDidBlur.fire(),this.previouslyFocusedItem=this.focusedItem,this.focusedItem=void 0,this.triggerKeyDown=!1)})),this._register(this.focusTracker.onDidFocus(()=>this.updateFocusedItem())),this.actionsList=document.createElement("ul"),this.actionsList.className="actions-container",this.options.highlightToggledItems&&this.actionsList.classList.add("highlight-toggled"),this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"),this.options.ariaLabel&&this.actionsList.setAttribute("aria-label",this.options.ariaLabel),this.domNode.appendChild(this.actionsList),e.appendChild(this.domNode)}refreshRole(){this.length()>=1?this.actionsList.setAttribute("role",this.options.ariaRole||"toolbar"):this.actionsList.setAttribute("role","presentation")}setFocusable(e){if(this.focusable=e,this.focusable){const t=this.viewItems.find(i=>i instanceof Th&&i.isEnabled());t instanceof Th&&t.setFocusable(!0)}else this.viewItems.forEach(t=>{t instanceof Th&&t.setFocusable(!1)})}isTriggerKeyEvent(e){let t=!1;return this._triggerKeys.keys.forEach(i=>{t=t||e.equals(i)}),t}updateFocusedItem(){var e,t;for(let i=0;it.setActionContext(e))}get actionRunner(){return this._actionRunner}set actionRunner(e){this._actionRunner=e,this._actionRunnerDisposables.clear(),this._actionRunnerDisposables.add(this._actionRunner.onDidRun(t=>this._onDidRun.fire(t))),this._actionRunnerDisposables.add(this._actionRunner.onWillRun(t=>this._onWillRun.fire(t))),this.viewItems.forEach(t=>t.actionRunner=e)}getContainer(){return this.domNode}getAction(e){var t;if(typeof e=="number")return(t=this.viewItems[e])===null||t===void 0?void 0:t.action;if(e instanceof HTMLElement){for(;e.parentElement!==this.actionsList;){if(!e.parentElement)return;e=e.parentElement}for(let i=0;i{const s=document.createElement("li");s.className="action-item",s.setAttribute("role","presentation");let a;const l={hoverDelegate:this._hoverDelegate,...t};this.options.actionViewItemProvider&&(a=this.options.actionViewItemProvider(o,l)),a||(a=new ow(this.context,o,l)),this.options.allowContextMenu||this.viewItemDisposables.set(a,Ve(s,at.CONTEXT_MENU,u=>{En.stop(u,!0)})),a.actionRunner=this._actionRunner,a.setActionContext(this.context),a.render(s),this.focusable&&a instanceof Th&&this.viewItems.length===0&&a.setFocusable(!0),r===null||r<0||r>=this.actionsList.children.length?(this.actionsList.appendChild(s),this.viewItems.push(a)):(this.actionsList.insertBefore(s,this.actionsList.children[r]),this.viewItems.splice(r,0,a),r++)}),typeof this.focusedItem=="number"&&this.focus(this.focusedItem),this.refreshRole()}clear(){this.isEmpty()||(this.viewItems=Mi(this.viewItems),this.viewItemDisposables.clearAndDisposeAll(),la(this.actionsList),this.refreshRole())}length(){return this.viewItems.length}isEmpty(){return this.viewItems.length===0}focus(e){let t=!1,i;if(e===void 0?t=!0:typeof e=="number"?i=e:typeof e=="boolean"&&(t=e),t&&typeof this.focusedItem>"u"){const r=this.viewItems.findIndex(o=>o.isEnabled());this.focusedItem=r===-1?void 0:r,this.updateFocus(void 0,void 0,!0)}else i!==void 0&&(this.focusedItem=i),this.updateFocus(void 0,void 0,!0)}focusFirst(){return this.focusedItem=this.length()-1,this.focusNext(!0)}focusLast(){return this.focusedItem=0,this.focusPrevious(!0)}focusNext(e){if(typeof this.focusedItem>"u")this.focusedItem=this.viewItems.length-1;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(!e&&this.options.preventLoopNavigation&&this.focusedItem+1>=this.viewItems.length)return this.focusedItem=t,!1;this.focusedItem=(this.focusedItem+1)%this.viewItems.length,i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&(this.options.focusOnlyEnabledItems&&!i.isEnabled()||i.action.id===To.ID));return this.updateFocus(),!0}focusPrevious(e){if(typeof this.focusedItem>"u")this.focusedItem=0;else if(this.viewItems.length<=1)return!1;const t=this.focusedItem;let i;do{if(this.focusedItem=this.focusedItem-1,this.focusedItem<0){if(!e&&this.options.preventLoopNavigation)return this.focusedItem=t,!1;this.focusedItem=this.viewItems.length-1}i=this.viewItems[this.focusedItem]}while(this.focusedItem!==t&&(this.options.focusOnlyEnabledItems&&!i.isEnabled()||i.action.id===To.ID));return this.updateFocus(!0),!0}updateFocus(e,t,i=!1){var r,o;typeof this.focusedItem>"u"&&this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem!==void 0&&this.previouslyFocusedItem!==this.focusedItem&&((r=this.viewItems[this.previouslyFocusedItem])===null||r===void 0||r.blur());const s=this.focusedItem!==void 0?this.viewItems[this.focusedItem]:void 0;if(s){let a=!0;Q9(s.focus)||(a=!1),this.options.focusOnlyEnabledItems&&Q9(s.isEnabled)&&!s.isEnabled()&&(a=!1),s.action.id===To.ID&&(a=!1),a?(i||this.previouslyFocusedItem!==this.focusedItem)&&(s.focus(e),this.previouslyFocusedItem=this.focusedItem):(this.actionsList.focus({preventScroll:t}),this.previouslyFocusedItem=void 0),a&&((o=s.showHover)===null||o===void 0||o.call(s))}}doTrigger(e){if(typeof this.focusedItem>"u")return;const t=this.viewItems[this.focusedItem];if(t instanceof Th){const i=t._context===null||t._context===void 0?e:t._context;this.run(t._action,i)}}async run(e,t){await this._actionRunner.run(e,t)}dispose(){this._context=void 0,this.viewItems=Mi(this.viewItems),this.getContainer().remove(),super.dispose()}}function V7(){return kY&&!!kY.VSCODE_DEV}function Aye(n){if(V7()){const e=qwt();return e.add(n),{dispose(){e.delete(n)}}}else return{dispose(){}}}function qwt(){GE||(GE=new Set);const n=globalThis;return n.$hotReload_applyNewExports||(n.$hotReload_applyNewExports=e=>{const t={config:{mode:void 0},...e};for(const i of GE){const r=i(t);if(r)return r}}),GE}let GE;V7()&&Aye(({oldExports:n,newSrc:e,config:t})=>{if(t.mode==="patch-prototype")return i=>{var r,o;for(const s in i){const a=i[s];if(typeof a=="function"&&a.prototype){const l=n[s];if(l){for(const u of Object.getOwnPropertyNames(a.prototype)){const c=Object.getOwnPropertyDescriptor(a.prototype,u),d=Object.getOwnPropertyDescriptor(l.prototype,u);(r=c==null?void 0:c.value)===null||r===void 0||r.toString(),(o=d==null?void 0:d.value)===null||o===void 0||o.toString(),Object.defineProperty(l.prototype,u,c)}i[s]=l}}}return!0}});function eSt(n,e,t,i){if(n.length===0)return e;if(e.length===0)return n;const r=[];let o=0,s=0;for(;oc?(r.push(l),s++):(r.push(i(a,l)),o++,s++)}for(;o`Apply decorations from ${e.debugName}`},r=>{const o=e.read(r);i.set(o)})),t.add({dispose:()=>{i.clear()}}),t}function XE(n,e){return n.appendChild(e),en(()=>{n.removeChild(e)})}class Nye extends De{get width(){return this._width}get height(){return this._height}constructor(e,t){super(),this.elementSizeObserver=this._register(new l1e(e,t)),this._width=ci(this,this.elementSizeObserver.getWidth()),this._height=ci(this,this.elementSizeObserver.getHeight()),this._register(this.elementSizeObserver.onDidChange(i=>rr(r=>{this._width.set(this.elementSizeObserver.getWidth(),r),this._height.set(this.elementSizeObserver.getHeight(),r)})))}observe(e){this.elementSizeObserver.observe(e)}setAutomaticLayout(e){e?this.elementSizeObserver.startObserving():this.elementSizeObserver.stopObserving()}}function kye(n,e,t){let i=e.get(),r=i,o=i;const s=ci("animatedValue",i);let a=-1;const l=300;let u;t.add(hD({createEmptyChangeSummary:()=>({animate:!1}),handleChange:(d,h)=>(d.didChange(e)&&(h.animate=h.animate||d.change),!0)},(d,h)=>{u!==void 0&&(n.cancelAnimationFrame(u),u=void 0),r=o,i=e.read(d),a=Date.now()-(h.animate?0:l),c()}));function c(){const d=Date.now()-a;o=Math.floor(tSt(d,r,i-r,l)),d{this._actualTop.set(i,void 0)},this.onComputedHeight=i=>{this._actualHeight.set(i,void 0)}}}class OE{constructor(e,t){this._editor=e,this._domElement=t,this._overlayWidgetId=`managedOverlayWidget-${OE._counter++}`,this._overlayWidget={getId:()=>this._overlayWidgetId,getDomNode:()=>this._domElement,getPosition:()=>null},this._editor.addOverlayWidget(this._overlayWidget)}dispose(){this._editor.removeOverlayWidget(this._overlayWidget)}}OE._counter=0;function i0(n,e){return Jn(t=>{for(let[i,r]of Object.entries(e))r&&typeof r=="object"&&"read"in r&&(r=r.read(t)),typeof r=="number"&&(r=`${r}px`),i=i.replace(/[A-Z]/g,o=>"-"+o.toLowerCase()),n.style[i]=r})}function dm(n,e){return nSt([n],e),n}function nSt(n,e){V7()&&il("reload",i=>Aye(({oldExports:r})=>{if([...Object.values(r)].some(o=>n.includes(o)))return o=>(i(void 0),!0)})).read(e)}function BE(n,e,t,i){const r=new je,o=[];return r.add(kh((s,a)=>{const l=e.read(s),u=new Map,c=new Map;t&&t(!0),n.changeViewZones(d=>{for(const h of o)d.removeZone(h),i==null||i.delete(h);o.length=0;for(const h of l){const g=d.addZone(h);h.setZoneId&&h.setZoneId(g),o.push(g),i==null||i.add(g),u.set(h,g)}}),t&&t(!1),a.add(hD({createEmptyChangeSummary(){return{zoneIds:[]}},handleChange(d,h){const g=c.get(d.changedObservable);return g!==void 0&&h.zoneIds.push(g),!0}},(d,h)=>{for(const g of l)g.onChange&&(c.set(g.onChange,u.get(g)),g.onChange.read(d));t&&t(!0),n.changeViewZones(g=>{for(const m of h.zoneIds)g.layoutZone(m)}),t&&t(!1)}))})),r.add({dispose(){t&&t(!0),n.changeViewZones(s=>{for(const a of o)s.removeZone(a)}),i==null||i.clear(),t&&t(!1)}}),r}class iSt extends co{dispose(){super.dispose(!0)}}function Zye(n,e){const t=YT(e,r=>r.original.startLineNumber<=n.lineNumber);if(!t)return K.fromPositions(n);if(t.original.endLineNumberExclusive<=n.lineNumber){const r=n.lineNumber-t.original.endLineNumberExclusive+t.modified.endLineNumberExclusive;return K.fromPositions(new ve(r,n.column))}if(!t.innerChanges)return K.fromPositions(new ve(t.modified.startLineNumber,1));const i=YT(t.innerChanges,r=>r.originalRange.getStartPosition().isBeforeOrEqual(n));if(!i){const r=n.lineNumber-t.original.startLineNumber+t.modified.startLineNumber;return K.fromPositions(new ve(r,n.column))}if(i.originalRange.containsPosition(n))return i.modifiedRange;{const r=rSt(i.originalRange.getEndPosition(),n);return K.fromPositions(oSt(i.modifiedRange.getEndPosition(),r))}}function rSt(n,e){return n.lineNumber===e.lineNumber?new O_(0,e.column-n.column):new O_(e.lineNumber-n.lineNumber,e.column-1)}function oSt(n,e){return e.lineCount===0?new ve(n.lineNumber,n.column+e.columnCount):new ve(n.lineNumber+e.lineCount,e.columnCount+1)}function zE(n,e,t){const i=n.bindTo(e);return xE({debugName:()=>`Set Context Key "${n.key}"`},r=>{i.set(t(r))})}function sSt(n,e){let t;return n.filter(i=>{const r=e(i,t);return t=i,r})}class Wl{static inverse(e,t,i){const r=[];let o=1,s=1;for(const l of e){const u=new Wl(new vn(o,l.original.startLineNumber),new vn(s,l.modified.startLineNumber));u.modified.isEmpty||r.push(u),o=l.original.endLineNumberExclusive,s=l.modified.endLineNumberExclusive}const a=new Wl(new vn(o,t+1),new vn(s,i+1));return a.modified.isEmpty||r.push(a),r}static clip(e,t,i){const r=[];for(const o of e){const s=o.original.intersect(t),a=o.modified.intersect(i);s&&!s.isEmpty&&a&&!a.isEmpty&&r.push(new Wl(s,a))}return r}constructor(e,t){this.original=e,this.modified=t}toString(){return`{${this.original.toString()}->${this.modified.toString()}}`}flip(){return new Wl(this.modified,this.original)}join(e){return new Wl(this.original.join(e.original),this.modified.join(e.modified))}}class Eh extends Wl{constructor(e,t,i){super(e,t),this.innerChanges=i}flip(){var e;return new Eh(this.modified,this.original,(e=this.innerChanges)===null||e===void 0?void 0:e.map(t=>t.flip()))}}class r0{constructor(e,t){this.originalRange=e,this.modifiedRange=t}toString(){return`{${this.originalRange.toString()}->${this.modifiedRange.toString()}}`}flip(){return new r0(this.modifiedRange,this.originalRange)}}const o0=Un("accessibilitySignalService");class pn{static register(e){return new pn(e.fileName)}constructor(e){this.fileName=e}}pn.error=pn.register({fileName:"error.mp3"}),pn.warning=pn.register({fileName:"warning.mp3"}),pn.foldedArea=pn.register({fileName:"foldedAreas.mp3"}),pn.break=pn.register({fileName:"break.mp3"}),pn.quickFixes=pn.register({fileName:"quickFixes.mp3"}),pn.taskCompleted=pn.register({fileName:"taskCompleted.mp3"}),pn.taskFailed=pn.register({fileName:"taskFailed.mp3"}),pn.terminalBell=pn.register({fileName:"terminalBell.mp3"}),pn.diffLineInserted=pn.register({fileName:"diffLineInserted.mp3"}),pn.diffLineDeleted=pn.register({fileName:"diffLineDeleted.mp3"}),pn.diffLineModified=pn.register({fileName:"diffLineModified.mp3"}),pn.chatRequestSent=pn.register({fileName:"chatRequestSent.mp3"}),pn.chatResponsePending=pn.register({fileName:"chatResponsePending.mp3"}),pn.chatResponseReceived1=pn.register({fileName:"chatResponseReceived1.mp3"}),pn.chatResponseReceived2=pn.register({fileName:"chatResponseReceived2.mp3"}),pn.chatResponseReceived3=pn.register({fileName:"chatResponseReceived3.mp3"}),pn.chatResponseReceived4=pn.register({fileName:"chatResponseReceived4.mp3"}),pn.clear=pn.register({fileName:"clear.mp3"}),pn.save=pn.register({fileName:"save.mp3"}),pn.format=pn.register({fileName:"format.mp3"});class aSt{constructor(e){this.randomOneOf=e}}class Dn{static register(e){const t=new aSt("randomOneOf"in e.sound?e.sound.randomOneOf:[e.sound]),i=new Dn(t,e.name,e.legacySoundSettingsKey,e.settingsKey,e.legacyAnnouncementSettingsKey,e.announcementMessage);return Dn._signals.add(i),i}constructor(e,t,i,r,o,s){this.sound=e,this.name=t,this.legacySoundSettingsKey=i,this.settingsKey=r,this.legacyAnnouncementSettingsKey=o,this.announcementMessage=s}}Dn._signals=new Set,Dn.error=Dn.register({name:x("accessibilitySignals.lineHasError.name","Error on Line"),sound:pn.error,legacySoundSettingsKey:"audioCues.lineHasError",legacyAnnouncementSettingsKey:"accessibility.alert.error",announcementMessage:x("accessibility.signals.lineHasError","Error"),settingsKey:"accessibility.signals.lineHasError"}),Dn.warning=Dn.register({name:x("accessibilitySignals.lineHasWarning.name","Warning on Line"),sound:pn.warning,legacySoundSettingsKey:"audioCues.lineHasWarning",legacyAnnouncementSettingsKey:"accessibility.alert.warning",announcementMessage:x("accessibility.signals.lineHasWarning","Warning"),settingsKey:"accessibility.signals.lineHasWarning"}),Dn.foldedArea=Dn.register({name:x("accessibilitySignals.lineHasFoldedArea.name","Folded Area on Line"),sound:pn.foldedArea,legacySoundSettingsKey:"audioCues.lineHasFoldedArea",legacyAnnouncementSettingsKey:"accessibility.alert.foldedArea",announcementMessage:x("accessibility.signals.lineHasFoldedArea","Folded"),settingsKey:"accessibility.signals.lineHasFoldedArea"}),Dn.break=Dn.register({name:x("accessibilitySignals.lineHasBreakpoint.name","Breakpoint on Line"),sound:pn.break,legacySoundSettingsKey:"audioCues.lineHasBreakpoint",legacyAnnouncementSettingsKey:"accessibility.alert.breakpoint",announcementMessage:x("accessibility.signals.lineHasBreakpoint","Breakpoint"),settingsKey:"accessibility.signals.lineHasBreakpoint"}),Dn.inlineSuggestion=Dn.register({name:x("accessibilitySignals.lineHasInlineSuggestion.name","Inline Suggestion on Line"),sound:pn.quickFixes,legacySoundSettingsKey:"audioCues.lineHasInlineSuggestion",settingsKey:"accessibility.signals.lineHasInlineSuggestion"}),Dn.terminalQuickFix=Dn.register({name:x("accessibilitySignals.terminalQuickFix.name","Terminal Quick Fix"),sound:pn.quickFixes,legacySoundSettingsKey:"audioCues.terminalQuickFix",legacyAnnouncementSettingsKey:"accessibility.alert.terminalQuickFix",announcementMessage:x("accessibility.signals.terminalQuickFix","Quick Fix"),settingsKey:"accessibility.signals.terminalQuickFix"}),Dn.onDebugBreak=Dn.register({name:x("accessibilitySignals.onDebugBreak.name","Debugger Stopped on Breakpoint"),sound:pn.break,legacySoundSettingsKey:"audioCues.onDebugBreak",legacyAnnouncementSettingsKey:"accessibility.alert.onDebugBreak",announcementMessage:x("accessibility.signals.onDebugBreak","Breakpoint"),settingsKey:"accessibility.signals.onDebugBreak"}),Dn.noInlayHints=Dn.register({name:x("accessibilitySignals.noInlayHints","No Inlay Hints on Line"),sound:pn.error,legacySoundSettingsKey:"audioCues.noInlayHints",legacyAnnouncementSettingsKey:"accessibility.alert.noInlayHints",announcementMessage:x("accessibility.signals.noInlayHints","No Inlay Hints"),settingsKey:"accessibility.signals.noInlayHints"}),Dn.taskCompleted=Dn.register({name:x("accessibilitySignals.taskCompleted","Task Completed"),sound:pn.taskCompleted,legacySoundSettingsKey:"audioCues.taskCompleted",legacyAnnouncementSettingsKey:"accessibility.alert.taskCompleted",announcementMessage:x("accessibility.signals.taskCompleted","Task Completed"),settingsKey:"accessibility.signals.taskCompleted"}),Dn.taskFailed=Dn.register({name:x("accessibilitySignals.taskFailed","Task Failed"),sound:pn.taskFailed,legacySoundSettingsKey:"audioCues.taskFailed",legacyAnnouncementSettingsKey:"accessibility.alert.taskFailed",announcementMessage:x("accessibility.signals.taskFailed","Task Failed"),settingsKey:"accessibility.signals.taskFailed"}),Dn.terminalCommandFailed=Dn.register({name:x("accessibilitySignals.terminalCommandFailed","Terminal Command Failed"),sound:pn.error,legacySoundSettingsKey:"audioCues.terminalCommandFailed",legacyAnnouncementSettingsKey:"accessibility.alert.terminalCommandFailed",announcementMessage:x("accessibility.signals.terminalCommandFailed","Command Failed"),settingsKey:"accessibility.signals.terminalCommandFailed"}),Dn.terminalBell=Dn.register({name:x("accessibilitySignals.terminalBell","Terminal Bell"),sound:pn.terminalBell,legacySoundSettingsKey:"audioCues.terminalBell",legacyAnnouncementSettingsKey:"accessibility.alert.terminalBell",announcementMessage:x("accessibility.signals.terminalBell","Terminal Bell"),settingsKey:"accessibility.signals.terminalBell"}),Dn.notebookCellCompleted=Dn.register({name:x("accessibilitySignals.notebookCellCompleted","Notebook Cell Completed"),sound:pn.taskCompleted,legacySoundSettingsKey:"audioCues.notebookCellCompleted",legacyAnnouncementSettingsKey:"accessibility.alert.notebookCellCompleted",announcementMessage:x("accessibility.signals.notebookCellCompleted","Notebook Cell Completed"),settingsKey:"accessibility.signals.notebookCellCompleted"}),Dn.notebookCellFailed=Dn.register({name:x("accessibilitySignals.notebookCellFailed","Notebook Cell Failed"),sound:pn.taskFailed,legacySoundSettingsKey:"audioCues.notebookCellFailed",legacyAnnouncementSettingsKey:"accessibility.alert.notebookCellFailed",announcementMessage:x("accessibility.signals.notebookCellFailed","Notebook Cell Failed"),settingsKey:"accessibility.signals.notebookCellFailed"}),Dn.diffLineInserted=Dn.register({name:x("accessibilitySignals.diffLineInserted","Diff Line Inserted"),sound:pn.diffLineInserted,legacySoundSettingsKey:"audioCues.diffLineInserted",settingsKey:"accessibility.signals.diffLineInserted"}),Dn.diffLineDeleted=Dn.register({name:x("accessibilitySignals.diffLineDeleted","Diff Line Deleted"),sound:pn.diffLineDeleted,legacySoundSettingsKey:"audioCues.diffLineDeleted",settingsKey:"accessibility.signals.diffLineDeleted"}),Dn.diffLineModified=Dn.register({name:x("accessibilitySignals.diffLineModified","Diff Line Modified"),sound:pn.diffLineModified,legacySoundSettingsKey:"audioCues.diffLineModified",settingsKey:"accessibility.signals.diffLineModified"}),Dn.chatRequestSent=Dn.register({name:x("accessibilitySignals.chatRequestSent","Chat Request Sent"),sound:pn.chatRequestSent,legacySoundSettingsKey:"audioCues.chatRequestSent",legacyAnnouncementSettingsKey:"accessibility.alert.chatRequestSent",announcementMessage:x("accessibility.signals.chatRequestSent","Chat Request Sent"),settingsKey:"accessibility.signals.chatRequestSent"}),Dn.chatResponseReceived=Dn.register({name:x("accessibilitySignals.chatResponseReceived","Chat Response Received"),legacySoundSettingsKey:"audioCues.chatResponseReceived",sound:{randomOneOf:[pn.chatResponseReceived1,pn.chatResponseReceived2,pn.chatResponseReceived3,pn.chatResponseReceived4]},settingsKey:"accessibility.signals.chatResponseReceived"}),Dn.chatResponsePending=Dn.register({name:x("accessibilitySignals.chatResponsePending","Chat Response Pending"),sound:pn.chatResponsePending,legacySoundSettingsKey:"audioCues.chatResponsePending",legacyAnnouncementSettingsKey:"accessibility.alert.chatResponsePending",announcementMessage:x("accessibility.signals.chatResponsePending","Chat Response Pending"),settingsKey:"accessibility.signals.chatResponsePending"}),Dn.clear=Dn.register({name:x("accessibilitySignals.clear","Clear"),sound:pn.clear,legacySoundSettingsKey:"audioCues.clear",legacyAnnouncementSettingsKey:"accessibility.alert.clear",announcementMessage:x("accessibility.signals.clear","Clear"),settingsKey:"accessibility.signals.clear"}),Dn.save=Dn.register({name:x("accessibilitySignals.save","Save"),sound:pn.save,legacySoundSettingsKey:"audioCues.save",legacyAnnouncementSettingsKey:"accessibility.alert.save",announcementMessage:x("accessibility.signals.save","Save"),settingsKey:"accessibility.signals.save"}),Dn.format=Dn.register({name:x("accessibilitySignals.format","Format"),sound:pn.format,legacySoundSettingsKey:"audioCues.format",legacyAnnouncementSettingsKey:"accessibility.alert.format",announcementMessage:x("accessibility.signals.format","Format"),settingsKey:"accessibility.signals.format"});const lSt={IconContribution:"base.contributions.icons"};var Tye;(function(n){function e(t,i){let r=t.defaults;for(;on.isThemeIcon(r);){const o=fv.getIcon(r.id);if(!o)return;r=o.defaults}return r}n.getDefinition=e})(Tye||(Tye={}));var Eye;(function(n){function e(i){return{weight:i.weight,style:i.style,src:i.src.map(r=>({format:r.format,location:r.location.toString()}))}}n.toJSONObject=e;function t(i){const r=o=>Ll(o)?o:void 0;if(i&&Array.isArray(i.src)&&i.src.every(o=>Ll(o.format)&&Ll(o.location)))return{weight:r(i.weight),style:r(i.style),src:i.src.map(o=>({format:o.format,location:$t.parse(o.location)}))}}n.fromJSONObject=t})(Eye||(Eye={}));class uSt{constructor(){this._onDidChange=new be,this.onDidChange=this._onDidChange.event,this.iconSchema={definitions:{icons:{type:"object",properties:{fontId:{type:"string",description:x("iconDefinition.fontId","The id of the font to use. If not set, the font that is defined first is used.")},fontCharacter:{type:"string",description:x("iconDefinition.fontCharacter","The font character associated with the icon definition.")}},additionalProperties:!1,defaultSnippets:[{body:{fontCharacter:"\\\\e030"}}]}},type:"object",properties:{}},this.iconReferenceSchema={type:"string",pattern:`^${on.iconNameExpression}$`,enum:[],enumDescriptions:[]},this.iconsById={},this.iconFontsById={}}registerIcon(e,t,i,r){const o=this.iconsById[e];if(o){if(i&&!o.description){o.description=i,this.iconSchema.properties[e].markdownDescription=`${i} $(${e})`;const l=this.iconReferenceSchema.enum.indexOf(e);l!==-1&&(this.iconReferenceSchema.enumDescriptions[l]=i),this._onDidChange.fire()}return o}const s={id:e,description:i,defaults:t,deprecationMessage:r};this.iconsById[e]=s;const a={$ref:"#/definitions/icons"};return r&&(a.deprecationMessage=r),i&&(a.markdownDescription=`${i}: $(${e})`),this.iconSchema.properties[e]=a,this.iconReferenceSchema.enum.push(e),this.iconReferenceSchema.enumDescriptions.push(i||""),this._onDidChange.fire(),{id:e}}getIcons(){return Object.keys(this.iconsById).map(e=>this.iconsById[e])}getIcon(e){return this.iconsById[e]}getIconSchema(){return this.iconSchema}toString(){const e=(o,s)=>o.id.localeCompare(s.id),t=o=>{for(;on.isThemeIcon(o.defaults);)o=this.iconsById[o.defaults.id];return`codicon codicon-${o?o.id:""}`},i=[];i.push("| preview | identifier | default codicon ID | description"),i.push("| ----------- | --------------------------------- | --------------------------------- | --------------------------------- |");const r=Object.keys(this.iconsById).map(o=>this.iconsById[o]);for(const o of r.filter(s=>!!s.description).sort(e))i.push(`||${o.id}|${on.isThemeIcon(o.defaults)?o.defaults.id:o.id}|${o.description||""}|`);i.push("| preview | identifier "),i.push("| ----------- | --------------------------------- |");for(const o of r.filter(s=>!on.isThemeIcon(s.defaults)).sort(e))i.push(`||${o.id}|`);return i.join(` +`)}}const fv=new uSt;xo.add(lSt.IconContribution,fv);function io(n,e,t,i){return fv.registerIcon(n,e,t,i)}function Wye(){return fv}function cSt(){const n=r0e();for(const e in n){const t="\\"+n[e].toString(16);fv.registerIcon(e,{fontCharacter:t})}}cSt();const Rye="vscode://schemas/icons",Gye=xo.as(aT.JSONContribution);Gye.registerSchema(Rye,fv.getIconSchema());const Vye=new Vi(()=>Gye.notifySchemaChanged(Rye),200);fv.onDidChange(()=>{Vye.isScheduled()||Vye.schedule()});const Xye=io("widget-close",ct.close,x("widgetClose","Icon for the close action in widgets."));io("goto-previous-location",ct.arrowUp,x("previousChangeIcon","Icon for goto previous editor location.")),io("goto-next-location",ct.arrowDown,x("nextChangeIcon","Icon for goto next editor location.")),on.modify(ct.sync,"spin"),on.modify(ct.loading,"spin");var X7=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},P7=function(n,e){return function(t,i){e(t,i,n)}};const dSt=io("diff-review-insert",ct.add,x("accessibleDiffViewerInsertIcon","Icon for 'Insert' in accessible diff viewer.")),hSt=io("diff-review-remove",ct.remove,x("accessibleDiffViewerRemoveIcon","Icon for 'Remove' in accessible diff viewer.")),gSt=io("diff-review-close",ct.close,x("accessibleDiffViewerCloseIcon","Icon for 'Close' in accessible diff viewer."));let s0=class extends De{constructor(e,t,i,r,o,s,a,l,u){super(),this._parentNode=e,this._visible=t,this._setVisible=i,this._canClose=r,this._width=o,this._height=s,this._diffs=a,this._models=l,this._instantiationService=u,this._state=ew(this,(c,d)=>{const h=this._visible.read(c);if(this._parentNode.style.visibility=h?"visible":"hidden",!h)return null;const g=d.add(this._instantiationService.createInstance(O7,this._diffs,this._models,this._setVisible,this._canClose)),m=d.add(this._instantiationService.createInstance(B7,this._parentNode,g,this._width,this._height,this._models));return{model:g,view:m}}).recomputeInitiallyAndOnChange(this._store)}next(){rr(e=>{const t=this._visible.get();this._setVisible(!0,e),t&&this._state.get().model.nextGroup(e)})}prev(){rr(e=>{this._setVisible(!0,e),this._state.get().model.previousGroup(e)})}close(){rr(e=>{this._setVisible(!1,e)})}};s0._ttPolicy=Rf("diffReview",{createHTML:n=>n}),s0=X7([P7(8,tn)],s0);let O7=class extends De{constructor(e,t,i,r,o){super(),this._diffs=e,this._models=t,this._setVisible=i,this.canClose=r,this._accessibilitySignalService=o,this._groups=ci(this,[]),this._currentGroupIdx=ci(this,0),this._currentElementIdx=ci(this,0),this.groups=this._groups,this.currentGroup=this._currentGroupIdx.map((s,a)=>this._groups.read(a)[s]),this.currentGroupIndex=this._currentGroupIdx,this.currentElement=this._currentElementIdx.map((s,a)=>{var l;return(l=this.currentGroup.read(a))===null||l===void 0?void 0:l.lines[s]}),this._register(Jn(s=>{const a=this._diffs.read(s);if(!a){this._groups.set([],void 0);return}const l=mSt(a,this._models.getOriginalModel().getLineCount(),this._models.getModifiedModel().getLineCount());rr(u=>{const c=this._models.getModifiedPosition();if(c){const d=l.findIndex(h=>(c==null?void 0:c.lineNumber){const a=this.currentElement.read(s);(a==null?void 0:a.type)===sl.Deleted?this._accessibilitySignalService.playSignal(Dn.diffLineDeleted,{source:"accessibleDiffViewer.currentElementChanged"}):(a==null?void 0:a.type)===sl.Added&&this._accessibilitySignalService.playSignal(Dn.diffLineInserted,{source:"accessibleDiffViewer.currentElementChanged"})})),this._register(Jn(s=>{var a;const l=this.currentElement.read(s);if(l&&l.type!==sl.Header){const u=(a=l.modifiedLineNumber)!==null&&a!==void 0?a:l.diff.modified.startLineNumber;this._models.modifiedSetSelection(K.fromPositions(new ve(u,1)))}}))}_goToGroupDelta(e,t){const i=this.groups.get();!i||i.length<=1||cD(t,r=>{this._currentGroupIdx.set(Pn.ofLength(i.length).clipCyclic(this._currentGroupIdx.get()+e),r),this._currentElementIdx.set(0,r)})}nextGroup(e){this._goToGroupDelta(1,e)}previousGroup(e){this._goToGroupDelta(-1,e)}_goToLineDelta(e){const t=this.currentGroup.get();!t||t.lines.length<=1||rr(i=>{this._currentElementIdx.set(Pn.ofLength(t.lines.length).clip(this._currentElementIdx.get()+e),i)})}goToNextLine(){this._goToLineDelta(1)}goToPreviousLine(){this._goToLineDelta(-1)}goToLine(e){const t=this.currentGroup.get();if(!t)return;const i=t.lines.indexOf(e);i!==-1&&rr(r=>{this._currentElementIdx.set(i,r)})}revealCurrentElementInEditor(){if(!this.canClose.get())return;this._setVisible(!1,void 0);const e=this.currentElement.get();e&&(e.type===sl.Deleted?this._models.originalReveal(K.fromPositions(new ve(e.originalLineNumber,1))):this._models.modifiedReveal(e.type!==sl.Header?K.fromPositions(new ve(e.modifiedLineNumber,1)):void 0))}close(){this.canClose.get()&&(this._setVisible(!1,void 0),this._models.modifiedFocus())}};O7=X7([P7(4,o0)],O7);const ID=3;function mSt(n,e,t){const i=[];for(const r of uH(n,(o,s)=>s.modified.startLineNumber-o.modified.endLineNumberExclusive<2*ID)){const o=[];o.push(new pSt);const s=new vn(Math.max(1,r[0].original.startLineNumber-ID),Math.min(r[r.length-1].original.endLineNumberExclusive+ID,e+1)),a=new vn(Math.max(1,r[0].modified.startLineNumber-ID),Math.min(r[r.length-1].modified.endLineNumberExclusive+ID,t+1));x0e(r,(c,d)=>{const h=new vn(c?c.original.endLineNumberExclusive:s.startLineNumber,d?d.original.startLineNumber:s.endLineNumberExclusive),g=new vn(c?c.modified.endLineNumberExclusive:a.startLineNumber,d?d.modified.startLineNumber:a.endLineNumberExclusive);h.forEach(m=>{o.push(new vSt(m,g.startLineNumber+(m-h.startLineNumber)))}),d&&(d.original.forEach(m=>{o.push(new bSt(d,m))}),d.modified.forEach(m=>{o.push(new CSt(d,m))}))});const l=r[0].modified.join(r[r.length-1].modified),u=r[0].original.join(r[r.length-1].original);i.push(new fSt(new Wl(l,u),o))}return i}var sl;(function(n){n[n.Header=0]="Header",n[n.Unchanged=1]="Unchanged",n[n.Deleted=2]="Deleted",n[n.Added=3]="Added"})(sl||(sl={}));class fSt{constructor(e,t){this.range=e,this.lines=t}}class pSt{constructor(){this.type=sl.Header}}class bSt{constructor(e,t){this.diff=e,this.originalLineNumber=t,this.type=sl.Deleted,this.modifiedLineNumber=void 0}}class CSt{constructor(e,t){this.diff=e,this.modifiedLineNumber=t,this.type=sl.Added,this.originalLineNumber=void 0}}class vSt{constructor(e,t){this.originalLineNumber=e,this.modifiedLineNumber=t,this.type=sl.Unchanged}}let B7=class extends De{constructor(e,t,i,r,o,s){super(),this._element=e,this._model=t,this._width=i,this._height=r,this._models=o,this._languageService=s,this.domNode=this._element,this.domNode.className="monaco-component diff-review monaco-editor-background";const a=document.createElement("div");a.className="diff-review-actions",this._actionBar=this._register(new Rc(a)),this._register(Jn(l=>{this._actionBar.clear(),this._model.canClose.read(l)&&this._actionBar.push(new su("diffreview.close",x("label.close","Close"),"close-diff-review "+on.asClassName(gSt),!0,async()=>t.close()),{label:!1,icon:!0})})),this._content=document.createElement("div"),this._content.className="diff-review-content",this._content.setAttribute("role","code"),this._scrollbar=this._register(new f_(this._content,{})),ua(this.domNode,this._scrollbar.getDomNode(),a),this._register(Jn(l=>{this._height.read(l),this._width.read(l),this._scrollbar.scanDomNode()})),this._register(en(()=>{ua(this.domNode)})),this._register(i0(this.domNode,{width:this._width,height:this._height})),this._register(i0(this._content,{width:this._width,height:this._height})),this._register(kh((l,u)=>{this._model.currentGroup.read(l),this._render(u)})),this._register(Gr(this.domNode,"keydown",l=>{(l.equals(18)||l.equals(2066)||l.equals(530))&&(l.preventDefault(),this._model.goToNextLine()),(l.equals(16)||l.equals(2064)||l.equals(528))&&(l.preventDefault(),this._model.goToPreviousLine()),(l.equals(9)||l.equals(2057)||l.equals(521)||l.equals(1033))&&(l.preventDefault(),this._model.close()),(l.equals(10)||l.equals(3))&&(l.preventDefault(),this._model.revealCurrentElementInEditor())}))}_render(e){const t=this._models.getOriginalOptions(),i=this._models.getModifiedOptions(),r=document.createElement("div");r.className="diff-review-table",r.setAttribute("role","list"),r.setAttribute("aria-label",x("ariaLabel","Accessible Diff Viewer. Use arrow up and down to navigate.")),Ks(r,i.get(50)),ua(this._content,r);const o=this._models.getOriginalModel(),s=this._models.getModifiedModel();if(!o||!s)return;const a=o.getOptions(),l=s.getOptions(),u=i.get(67),c=this._model.currentGroup.get();for(const d of(c==null?void 0:c.lines)||[]){if(!c)break;let h;if(d.type===sl.Header){const m=document.createElement("div");m.className="diff-review-row",m.setAttribute("role","listitem");const f=c.range,b=this._model.currentGroupIndex.get(),C=this._model.groups.get().length,v=L=>L===0?x("no_lines_changed","no lines changed"):L===1?x("one_line_changed","1 line changed"):x("more_lines_changed","{0} lines changed",L),w=v(f.original.length),S=v(f.modified.length);m.setAttribute("aria-label",x({key:"header",comment:["This is the ARIA label for a git diff header.","A git diff header looks like this: @@ -154,12 +159,39 @@.","That encodes that at original line 154 (which is now line 159), 12 lines were removed/changed with 39 lines.","Variables 0 and 1 refer to the diff index out of total number of diffs.","Variables 2 and 4 will be numbers (a line number).",'Variables 3 and 5 will be "no lines changed", "1 line changed" or "X lines changed", localized separately.']},"Difference {0} of {1}: original line {2}, {3}, modified line {4}, {5}",b+1,C,f.original.startLineNumber,w,f.modified.startLineNumber,S));const F=document.createElement("div");F.className="diff-review-cell diff-review-summary",F.appendChild(document.createTextNode(`${b+1}/${C}: @@ -${f.original.startLineNumber},${f.original.length} +${f.modified.startLineNumber},${f.modified.length} @@`)),m.appendChild(F),h=m}else h=this._createRow(d,u,this._width.get(),t,o,a,i,s,l);r.appendChild(h);const g=gn(m=>this._model.currentElement.read(m)===d);e.add(Jn(m=>{const f=g.read(m);h.tabIndex=f?0:-1,f&&h.focus()})),e.add(Ve(h,"focus",()=>{this._model.goToLine(d)}))}this._scrollbar.scanDomNode()}_createRow(e,t,i,r,o,s,a,l,u){const c=r.get(144),d=c.glyphMarginWidth+c.lineNumbersWidth,h=a.get(144),g=10+h.glyphMarginWidth+h.lineNumbersWidth;let m="diff-review-row",f="";const b="diff-review-spacer";let C=null;switch(e.type){case sl.Added:m="diff-review-row line-insert",f=" char-insert",C=dSt;break;case sl.Deleted:m="diff-review-row line-delete",f=" char-delete",C=hSt;break}const v=document.createElement("div");v.style.minWidth=i+"px",v.className=m,v.setAttribute("role","listitem"),v.ariaLevel="";const w=document.createElement("div");w.className="diff-review-cell",w.style.height=`${t}px`,v.appendChild(w);const S=document.createElement("span");S.style.width=d+"px",S.style.minWidth=d+"px",S.className="diff-review-line-number"+f,e.originalLineNumber!==void 0?S.appendChild(document.createTextNode(String(e.originalLineNumber))):S.innerText=" ",w.appendChild(S);const F=document.createElement("span");F.style.width=g+"px",F.style.minWidth=g+"px",F.style.paddingRight="10px",F.className="diff-review-line-number"+f,e.modifiedLineNumber!==void 0?F.appendChild(document.createTextNode(String(e.modifiedLineNumber))):F.innerText=" ",w.appendChild(F);const L=document.createElement("span");if(L.className=b,C){const M=document.createElement("span");M.className=on.asClassName(C),M.innerText="  ",L.appendChild(M)}else L.innerText="  ";w.appendChild(L);let D;if(e.modifiedLineNumber!==void 0){let M=this._getLineHtml(l,a,u.tabSize,e.modifiedLineNumber,this._languageService.languageIdCodec);s0._ttPolicy&&(M=s0._ttPolicy.createHTML(M)),w.insertAdjacentHTML("beforeend",M),D=l.getLineContent(e.modifiedLineNumber)}else{let M=this._getLineHtml(o,r,s.tabSize,e.originalLineNumber,this._languageService.languageIdCodec);s0._ttPolicy&&(M=s0._ttPolicy.createHTML(M)),w.insertAdjacentHTML("beforeend",M),D=o.getLineContent(e.originalLineNumber)}D.length===0&&(D=x("blankLine","blank"));let A="";switch(e.type){case sl.Unchanged:e.originalLineNumber===e.modifiedLineNumber?A=x({key:"unchangedLine",comment:["The placeholders are contents of the line and should not be translated."]},"{0} unchanged line {1}",D,e.originalLineNumber):A=x("equalLine","{0} original line {1} modified line {2}",D,e.originalLineNumber,e.modifiedLineNumber);break;case sl.Added:A=x("insertLine","+ {0} modified line {1}",D,e.modifiedLineNumber);break;case sl.Deleted:A=x("deleteLine","- {0} original line {1}",D,e.originalLineNumber);break}return v.setAttribute("aria-label",A),v}_getLineHtml(e,t,i,r,o){const s=e.getLineContent(r),a=t.get(50),l=ns.createEmpty(s,o),u=Ou.isBasicASCII(s,e.mightContainNonBasicASCII()),c=Ou.containsRTL(s,u,e.mightContainRTL());return DT(new Xb(a.isMonospace&&!t.get(33),a.canUseHalfwidthRightwardsArrow,s,!1,u,c,0,l,[],i,0,a.spaceWidth,a.middotWidth,a.wsmiddotWidth,t.get(117),t.get(99),t.get(94),t.get(51)!==Vu.OFF,null)).html}};B7=X7([P7(5,Cr)],B7);class ySt{constructor(e){this.editors=e}getOriginalModel(){return this.editors.original.getModel()}getOriginalOptions(){return this.editors.original.getOptions()}originalReveal(e){this.editors.original.revealRange(e),this.editors.original.setSelection(e),this.editors.original.focus()}getModifiedModel(){return this.editors.modified.getModel()}getModifiedOptions(){return this.editors.modified.getOptions()}modifiedReveal(e){e&&(this.editors.modified.revealRange(e),this.editors.modified.setSelection(e)),this.editors.modified.focus()}modifiedSetSelection(e){this.editors.modified.setSelection(e)}modifiedFocus(){this.editors.modified.focus()}getModifiedPosition(){var e;return(e=this.editors.modified.getPosition())!==null&&e!==void 0?e:void 0}}class a0 extends De{constructor(e,t,i,r,o){super(),this._rootElement=e,this._diffModel=t,this._originalEditorLayoutInfo=i,this._modifiedEditorLayoutInfo=r,this._editors=o,this._originalScrollTop=mr(this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=mr(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._viewZonesChanged=il("onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this.width=ci(this,0),this._modifiedViewZonesChangedSignal=il("modified.onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this._originalViewZonesChangedSignal=il("original.onDidChangeViewZones",this._editors.original.onDidChangeViewZones),this._state=ew(this,(c,d)=>{var h;this._element.replaceChildren();const g=this._diffModel.read(c),m=(h=g==null?void 0:g.diff.read(c))===null||h===void 0?void 0:h.movedTexts;if(!m||m.length===0){this.width.set(0,void 0);return}this._viewZonesChanged.read(c);const f=this._originalEditorLayoutInfo.read(c),b=this._modifiedEditorLayoutInfo.read(c);if(!f||!b){this.width.set(0,void 0);return}this._modifiedViewZonesChangedSignal.read(c),this._originalViewZonesChangedSignal.read(c);const C=m.map(A=>{function M(B,Y){const k=Y.getTopForLineNumber(B.startLineNumber,!0),X=Y.getTopForLineNumber(B.endLineNumberExclusive,!0);return(k+X)/2}const W=M(A.lineRangeMapping.original,this._editors.original),Z=this._originalScrollTop.read(c),T=M(A.lineRangeMapping.modified,this._editors.modified),E=this._modifiedScrollTop.read(c),V=W-Z,z=T-E,O=Math.min(W,T),P=Math.max(W,T);return{range:new Pn(O,P),from:V,to:z,fromWithoutScroll:W,toWithoutScroll:T,move:A}});C.sort(Omt(Fc(A=>A.fromWithoutScroll>A.toWithoutScroll,Bmt),Fc(A=>A.fromWithoutScroll>A.toWithoutScroll?A.fromWithoutScroll:-A.toWithoutScroll,xf)));const v=z7.compute(C.map(A=>A.range)),w=10,S=f.verticalScrollbarWidth,F=(v.getTrackCount()-1)*10+w*2,L=S+F+(b.contentLeft-a0.movedCodeBlockPadding);let D=0;for(const A of C){const M=v.getTrack(D),W=S+w+M*10,Z=15,T=15,E=L,V=b.glyphMarginWidth+b.lineNumbersWidth,z=18,O=document.createElementNS("http://www.w3.org/2000/svg","rect");O.classList.add("arrow-rectangle"),O.setAttribute("x",`${E-V}`),O.setAttribute("y",`${A.to-z/2}`),O.setAttribute("width",`${V}`),O.setAttribute("height",`${z}`),this._element.appendChild(O);const P=document.createElementNS("http://www.w3.org/2000/svg","g"),B=document.createElementNS("http://www.w3.org/2000/svg","path");B.setAttribute("d",`M 0 ${A.from} L ${W} ${A.from} L ${W} ${A.to} L ${E-T} ${A.to}`),B.setAttribute("fill","none"),P.appendChild(B);const Y=document.createElementNS("http://www.w3.org/2000/svg","polygon");Y.classList.add("arrow"),d.add(Jn(k=>{B.classList.toggle("currentMove",A.move===g.activeMovedText.read(k)),Y.classList.toggle("currentMove",A.move===g.activeMovedText.read(k))})),Y.setAttribute("points",`${E-T},${A.to-Z/2} ${E},${A.to} ${E-T},${A.to+Z/2}`),P.appendChild(Y),this._element.appendChild(P),D++}this.width.set(F,void 0)}),this._element=document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("class","moved-blocks-lines"),this._rootElement.appendChild(this._element),this._register(en(()=>this._element.remove())),this._register(Jn(c=>{const d=this._originalEditorLayoutInfo.read(c),h=this._modifiedEditorLayoutInfo.read(c);!d||!h||(this._element.style.left=`${d.width-d.verticalScrollbarWidth}px`,this._element.style.height=`${d.height}px`,this._element.style.width=`${d.verticalScrollbarWidth+d.contentLeft-a0.movedCodeBlockPadding+this.width.read(c)}px`)})),this._register(gD(this._state));const s=gn(c=>{const d=this._diffModel.read(c),h=d==null?void 0:d.diff.read(c);return h?h.movedTexts.map(g=>({move:g,original:new PE(Jf(g.lineRangeMapping.original.startLineNumber-1),18),modified:new PE(Jf(g.lineRangeMapping.modified.startLineNumber-1),18)})):[]});this._register(BE(this._editors.original,s.map(c=>c.map(d=>d.original)))),this._register(BE(this._editors.modified,s.map(c=>c.map(d=>d.modified)))),this._register(kh((c,d)=>{const h=s.read(c);for(const g of h)d.add(new Pye(this._editors.original,g.original,g.move,"original",this._diffModel.get())),d.add(new Pye(this._editors.modified,g.modified,g.move,"modified",this._diffModel.get()))}));const a=il("original.onDidFocusEditorWidget",c=>this._editors.original.onDidFocusEditorWidget(()=>setTimeout(()=>c(void 0),0))),l=il("modified.onDidFocusEditorWidget",c=>this._editors.modified.onDidFocusEditorWidget(()=>setTimeout(()=>c(void 0),0)));let u="modified";this._register(hD({createEmptyChangeSummary:()=>{},handleChange:(c,d)=>(c.didChange(a)&&(u="original"),c.didChange(l)&&(u="modified"),!0)},c=>{a.read(c),l.read(c);const d=this._diffModel.read(c);if(!d)return;const h=d.diff.read(c);let g;if(h&&u==="original"){const m=this._editors.originalCursor.read(c);m&&(g=h.movedTexts.find(f=>f.lineRangeMapping.original.contains(m.lineNumber)))}if(h&&u==="modified"){const m=this._editors.modifiedCursor.read(c);m&&(g=h.movedTexts.find(f=>f.lineRangeMapping.modified.contains(m.lineNumber)))}g!==d.movedTextToCompare.get()&&d.movedTextToCompare.set(void 0,void 0),d.setActiveMovedText(g)}))}}a0.movedCodeBlockPadding=4;class z7{static compute(e){const t=[],i=[];for(const r of e){let o=t.findIndex(s=>!s.intersectsStrict(r));o===-1&&(t.length>=6?o=LCt(t,Fc(a=>a.intersectWithRangeLength(r),xf)):(o=t.length,t.push(new y6))),t[o].addRange(r),i.push(o)}return new z7(t.length,i)}constructor(e,t){this._trackCount=e,this.trackPerLineIdx=t}getTrack(e){return this.trackPerLineIdx[e]}getTrackCount(){return this._trackCount}}class Pye extends Mye{constructor(e,t,i,r,o){const s=Xi("div.diff-hidden-lines-widget");super(e,t,s.root),this._editor=e,this._move=i,this._kind=r,this._diffModel=o,this._nodes=Xi("div.diff-moved-code-block",{style:{marginRight:"4px"}},[Xi("div.text-content@textContent"),Xi("div.action-bar@actionBar")]),s.root.appendChild(this._nodes.root);const a=mr(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this._register(i0(this._nodes.root,{paddingRight:a.map(h=>h.verticalScrollbarWidth)}));let l;i.changes.length>0?l=this._kind==="original"?x("codeMovedToWithChanges","Code moved with changes to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):x("codeMovedFromWithChanges","Code moved with changes from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1):l=this._kind==="original"?x("codeMovedTo","Code moved to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):x("codeMovedFrom","Code moved from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1);const u=this._register(new Rc(this._nodes.actionBar,{highlightToggledItems:!0})),c=new su("",l,"",!1);u.push(c,{icon:!1,label:!0});const d=new su("","Compare",on.asClassName(ct.compareChanges),!0,()=>{this._editor.focus(),this._diffModel.movedTextToCompare.set(this._diffModel.movedTextToCompare.get()===i?void 0:this._move,void 0)});this._register(Jn(h=>{const g=this._diffModel.movedTextToCompare.read(h)===i;d.checked=g})),u.push(d,{icon:!1,label:!0})}}re("diffEditor.move.border",{dark:"#8b8b8b9c",light:"#8b8b8b9c",hcDark:"#8b8b8b9c",hcLight:"#8b8b8b9c"},x("diffEditor.move.border","The border color for text that got moved in the diff editor.")),re("diffEditor.moveActive.border",{dark:"#FFA500",light:"#FFA500",hcDark:"#FFA500",hcLight:"#FFA500"},x("diffEditor.moveActive.border","The active border color for text that got moved in the diff editor.")),re("diffEditor.unchangedRegionShadow",{dark:"#000000",light:"#737373BF",hcDark:"#000000",hcLight:"#737373BF"},x("diffEditor.unchangedRegionShadow","The color of the shadow around unchanged region widgets."));const ISt=io("diff-insert",ct.add,x("diffInsertIcon","Line decoration for inserts in the diff editor.")),Oye=io("diff-remove",ct.remove,x("diffRemoveIcon","Line decoration for removals in the diff editor.")),Bye=In.register({className:"line-insert",description:"line-insert",isWholeLine:!0,linesDecorationsClassName:"insert-sign "+on.asClassName(ISt),marginClassName:"gutter-insert"}),zye=In.register({className:"line-delete",description:"line-delete",isWholeLine:!0,linesDecorationsClassName:"delete-sign "+on.asClassName(Oye),marginClassName:"gutter-delete"}),Yye=In.register({className:"line-insert",description:"line-insert",isWholeLine:!0,marginClassName:"gutter-insert"}),Hye=In.register({className:"line-delete",description:"line-delete",isWholeLine:!0,marginClassName:"gutter-delete"}),Uye=In.register({className:"char-insert",description:"char-insert",shouldFillLineOnLineBreak:!0}),wSt=In.register({className:"char-insert",description:"char-insert",isWholeLine:!0}),SSt=In.register({className:"char-insert diff-range-empty",description:"char-insert diff-range-empty"}),Y7=In.register({className:"char-delete",description:"char-delete",shouldFillLineOnLineBreak:!0}),xSt=In.register({className:"char-delete",description:"char-delete",isWholeLine:!0}),LSt=In.register({className:"char-delete diff-range-empty",description:"char-delete diff-range-empty"});class FSt extends De{constructor(e,t,i,r){super(),this._editors=e,this._diffModel=t,this._options=i,this._decorations=gn(this,o=>{var s;const a=(s=this._diffModel.read(o))===null||s===void 0?void 0:s.diff.read(o);if(!a)return null;const l=this._diffModel.read(o).movedTextToCompare.read(o),u=this._options.renderIndicators.read(o),c=this._options.showEmptyDecorations.read(o),d=[],h=[];if(!l)for(const m of a.mappings)if(m.lineRangeMapping.original.isEmpty||d.push({range:m.lineRangeMapping.original.toInclusiveRange(),options:u?zye:Hye}),m.lineRangeMapping.modified.isEmpty||h.push({range:m.lineRangeMapping.modified.toInclusiveRange(),options:u?Bye:Yye}),m.lineRangeMapping.modified.isEmpty||m.lineRangeMapping.original.isEmpty)m.lineRangeMapping.original.isEmpty||d.push({range:m.lineRangeMapping.original.toInclusiveRange(),options:xSt}),m.lineRangeMapping.modified.isEmpty||h.push({range:m.lineRangeMapping.modified.toInclusiveRange(),options:wSt});else for(const f of m.lineRangeMapping.innerChanges||[])m.lineRangeMapping.original.contains(f.originalRange.startLineNumber)&&d.push({range:f.originalRange,options:f.originalRange.isEmpty()&&c?LSt:Y7}),m.lineRangeMapping.modified.contains(f.modifiedRange.startLineNumber)&&h.push({range:f.modifiedRange,options:f.modifiedRange.isEmpty()&&c?SSt:Uye});if(l)for(const m of l.changes){const f=m.original.toInclusiveRange();f&&d.push({range:f,options:u?zye:Hye});const b=m.modified.toInclusiveRange();b&&h.push({range:b,options:u?Bye:Yye});for(const C of m.innerChanges||[])d.push({range:C.originalRange,options:Y7}),h.push({range:C.modifiedRange,options:Uye})}const g=this._diffModel.read(o).activeMovedText.read(o);for(const m of a.movedTexts)d.push({range:m.lineRangeMapping.original.toInclusiveRange(),options:{description:"moved",blockClassName:"movedOriginal"+(m===g?" currentMove":""),blockPadding:[a0.movedCodeBlockPadding,0,a0.movedCodeBlockPadding,a0.movedCodeBlockPadding]}}),h.push({range:m.lineRangeMapping.modified.toInclusiveRange(),options:{description:"moved",blockClassName:"movedModified"+(m===g?" currentMove":""),blockPadding:[4,0,4,4]}});return{originalDecorations:d,modifiedDecorations:h}}),this._register(VE(this._editors.original,this._decorations.map(o=>(o==null?void 0:o.originalDecorations)||[]))),this._register(VE(this._editors.modified,this._decorations.map(o=>(o==null?void 0:o.modifiedDecorations)||[])))}}var sw=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o};const _St=!1;var YE;(function(n){n.North="north",n.South="south",n.East="east",n.West="west"})(YE||(YE={}));let DSt=4;const ASt=new be;let NSt=300;const kSt=new be;class H7{constructor(e){this.el=e,this.disposables=new je}get onPointerMove(){return this.disposables.add(new Qn(qt(this.el),"mousemove")).event}get onPointerUp(){return this.disposables.add(new Qn(qt(this.el),"mouseup")).event}dispose(){this.disposables.dispose()}}sw([qr],H7.prototype,"onPointerMove",null),sw([qr],H7.prototype,"onPointerUp",null);class U7{get onPointerMove(){return this.disposables.add(new Qn(this.el,qi.Change)).event}get onPointerUp(){return this.disposables.add(new Qn(this.el,qi.End)).event}constructor(e){this.el=e,this.disposables=new je}dispose(){this.disposables.dispose()}}sw([qr],U7.prototype,"onPointerMove",null),sw([qr],U7.prototype,"onPointerUp",null);class HE{get onPointerMove(){return this.factory.onPointerMove}get onPointerUp(){return this.factory.onPointerUp}constructor(e){this.factory=e}dispose(){}}sw([qr],HE.prototype,"onPointerMove",null),sw([qr],HE.prototype,"onPointerUp",null);const Jye="pointer-events-disabled";class fa extends De{get state(){return this._state}get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}set state(e){this._state!==e&&(this.el.classList.toggle("disabled",e===0),this.el.classList.toggle("minimum",e===1),this.el.classList.toggle("maximum",e===2),this._state=e,this.onDidEnablementChange.fire(e))}set orthogonalStartSash(e){if(this._orthogonalStartSash!==e){if(this.orthogonalStartDragHandleDisposables.clear(),this.orthogonalStartSashDisposables.clear(),e){const t=i=>{this.orthogonalStartDragHandleDisposables.clear(),i!==0&&(this._orthogonalStartDragHandle=Je(this.el,vt(".orthogonal-drag-handle.start")),this.orthogonalStartDragHandleDisposables.add(en(()=>this._orthogonalStartDragHandle.remove())),this.orthogonalStartDragHandleDisposables.add(new Qn(this._orthogonalStartDragHandle,"mouseenter")).event(()=>fa.onMouseEnter(e),void 0,this.orthogonalStartDragHandleDisposables),this.orthogonalStartDragHandleDisposables.add(new Qn(this._orthogonalStartDragHandle,"mouseleave")).event(()=>fa.onMouseLeave(e),void 0,this.orthogonalStartDragHandleDisposables))};this.orthogonalStartSashDisposables.add(e.onDidEnablementChange.event(t,this)),t(e.state)}this._orthogonalStartSash=e}}set orthogonalEndSash(e){if(this._orthogonalEndSash!==e){if(this.orthogonalEndDragHandleDisposables.clear(),this.orthogonalEndSashDisposables.clear(),e){const t=i=>{this.orthogonalEndDragHandleDisposables.clear(),i!==0&&(this._orthogonalEndDragHandle=Je(this.el,vt(".orthogonal-drag-handle.end")),this.orthogonalEndDragHandleDisposables.add(en(()=>this._orthogonalEndDragHandle.remove())),this.orthogonalEndDragHandleDisposables.add(new Qn(this._orthogonalEndDragHandle,"mouseenter")).event(()=>fa.onMouseEnter(e),void 0,this.orthogonalEndDragHandleDisposables),this.orthogonalEndDragHandleDisposables.add(new Qn(this._orthogonalEndDragHandle,"mouseleave")).event(()=>fa.onMouseLeave(e),void 0,this.orthogonalEndDragHandleDisposables))};this.orthogonalEndSashDisposables.add(e.onDidEnablementChange.event(t,this)),t(e.state)}this._orthogonalEndSash=e}}constructor(e,t,i){super(),this.hoverDelay=NSt,this.hoverDelayer=this._register(new gd(this.hoverDelay)),this._state=3,this.onDidEnablementChange=this._register(new be),this._onDidStart=this._register(new be),this._onDidChange=this._register(new be),this._onDidReset=this._register(new be),this._onDidEnd=this._register(new be),this.orthogonalStartSashDisposables=this._register(new je),this.orthogonalStartDragHandleDisposables=this._register(new je),this.orthogonalEndSashDisposables=this._register(new je),this.orthogonalEndDragHandleDisposables=this._register(new je),this.onDidStart=this._onDidStart.event,this.onDidChange=this._onDidChange.event,this.onDidReset=this._onDidReset.event,this.onDidEnd=this._onDidEnd.event,this.linkedSash=void 0,this.el=Je(e,vt(".monaco-sash")),i.orthogonalEdge&&this.el.classList.add(`orthogonal-edge-${i.orthogonalEdge}`),$n&&this.el.classList.add("mac");const r=this._register(new Qn(this.el,"mousedown")).event;this._register(r(d=>this.onPointerStart(d,new H7(e)),this));const o=this._register(new Qn(this.el,"dblclick")).event;this._register(o(this.onPointerDoublePress,this));const s=this._register(new Qn(this.el,"mouseenter")).event;this._register(s(()=>fa.onMouseEnter(this)));const a=this._register(new Qn(this.el,"mouseleave")).event;this._register(a(()=>fa.onMouseLeave(this))),this._register(er.addTarget(this.el));const l=this._register(new Qn(this.el,qi.Start)).event;this._register(l(d=>this.onPointerStart(d,new U7(this.el)),this));const u=this._register(new Qn(this.el,qi.Tap)).event;let c;this._register(u(d=>{if(c){clearTimeout(c),c=void 0,this.onPointerDoublePress(d);return}clearTimeout(c),c=setTimeout(()=>c=void 0,250)},this)),typeof i.size=="number"?(this.size=i.size,i.orientation===0?this.el.style.width=`${this.size}px`:this.el.style.height=`${this.size}px`):(this.size=DSt,this._register(ASt.event(d=>{this.size=d,this.layout()}))),this._register(kSt.event(d=>this.hoverDelay=d)),this.layoutProvider=t,this.orthogonalStartSash=i.orthogonalStartSash,this.orthogonalEndSash=i.orthogonalEndSash,this.orientation=i.orientation||0,this.orientation===1?(this.el.classList.add("horizontal"),this.el.classList.remove("vertical")):(this.el.classList.remove("horizontal"),this.el.classList.add("vertical")),this.el.classList.toggle("debug",_St),this.layout()}onPointerStart(e,t){En.stop(e);let i=!1;if(!e.__orthogonalSashEvent){const m=this.getOrthogonalSash(e);m&&(i=!0,e.__orthogonalSashEvent=!0,m.onPointerStart(e,new HE(t)))}if(this.linkedSash&&!e.__linkedSashEvent&&(e.__linkedSashEvent=!0,this.linkedSash.onPointerStart(e,new HE(t))),!this.state)return;const r=this.el.ownerDocument.getElementsByTagName("iframe");for(const m of r)m.classList.add(Jye);const o=e.pageX,s=e.pageY,a=e.altKey,l={startX:o,currentX:o,startY:s,currentY:s,altKey:a};this.el.classList.add("active"),this._onDidStart.fire(l);const u=Eu(this.el),c=()=>{let m="";i?m="all-scroll":this.orientation===1?this.state===1?m="s-resize":this.state===2?m="n-resize":m=$n?"row-resize":"ns-resize":this.state===1?m="e-resize":this.state===2?m="w-resize":m=$n?"col-resize":"ew-resize",u.textContent=`* { cursor: ${m} !important; }`},d=new je;c(),i||this.onDidEnablementChange.event(c,null,d);const h=m=>{En.stop(m,!1);const f={startX:o,currentX:m.pageX,startY:s,currentY:m.pageY,altKey:a};this._onDidChange.fire(f)},g=m=>{En.stop(m,!1),this.el.removeChild(u),this.el.classList.remove("active"),this._onDidEnd.fire(),d.dispose();for(const f of r)f.classList.remove(Jye)};t.onPointerMove(h,null,d),t.onPointerUp(g,null,d),d.add(t)}onPointerDoublePress(e){const t=this.getOrthogonalSash(e);t&&t._onDidReset.fire(),this.linkedSash&&this.linkedSash._onDidReset.fire(),this._onDidReset.fire()}static onMouseEnter(e,t=!1){e.el.classList.contains("active")?(e.hoverDelayer.cancel(),e.el.classList.add("hover")):e.hoverDelayer.trigger(()=>e.el.classList.add("hover"),e.hoverDelay).then(void 0,()=>{}),!t&&e.linkedSash&&fa.onMouseEnter(e.linkedSash,!0)}static onMouseLeave(e,t=!1){e.hoverDelayer.cancel(),e.el.classList.remove("hover"),!t&&e.linkedSash&&fa.onMouseLeave(e.linkedSash,!0)}clearSashHoverState(){fa.onMouseLeave(this)}layout(){if(this.orientation===0){const e=this.layoutProvider;this.el.style.left=e.getVerticalSashLeft(this)-this.size/2+"px",e.getVerticalSashTop&&(this.el.style.top=e.getVerticalSashTop(this)+"px"),e.getVerticalSashHeight&&(this.el.style.height=e.getVerticalSashHeight(this)+"px")}else{const e=this.layoutProvider;this.el.style.top=e.getHorizontalSashTop(this)-this.size/2+"px",e.getHorizontalSashLeft&&(this.el.style.left=e.getHorizontalSashLeft(this)+"px"),e.getHorizontalSashWidth&&(this.el.style.width=e.getHorizontalSashWidth(this)+"px")}}getOrthogonalSash(e){var t;const i=(t=e.initialTarget)!==null&&t!==void 0?t:e.target;if(!(!i||!(i instanceof HTMLElement))&&i.classList.contains("orthogonal-drag-handle"))return i.classList.contains("start")?this.orthogonalStartSash:this.orthogonalEndSash}dispose(){super.dispose(),this.el.remove()}}class MSt extends De{constructor(e,t,i,r){super(),this._options=e,this._domNode=t,this._dimensions=i,this._sashes=r,this._sashRatio=ci(this,void 0),this.sashLeft=gn(this,o=>{var s;const a=(s=this._sashRatio.read(o))!==null&&s!==void 0?s:this._options.splitViewDefaultRatio.read(o);return this._computeSashLeft(a,o)}),this._sash=this._register(new fa(this._domNode,{getVerticalSashTop:o=>0,getVerticalSashLeft:o=>this.sashLeft.get(),getVerticalSashHeight:o=>this._dimensions.height.get()},{orientation:0})),this._startSashPosition=void 0,this._register(this._sash.onDidStart(()=>{this._startSashPosition=this.sashLeft.get()})),this._register(this._sash.onDidChange(o=>{const s=this._dimensions.width.get(),a=this._computeSashLeft((this._startSashPosition+(o.currentX-o.startX))/s,void 0);this._sashRatio.set(a/s,void 0)})),this._register(this._sash.onDidEnd(()=>this._sash.layout())),this._register(this._sash.onDidReset(()=>this._sashRatio.set(void 0,void 0))),this._register(Jn(o=>{const s=this._sashes.read(o);s&&(this._sash.orthogonalEndSash=s.bottom)})),this._register(Jn(o=>{const s=this._options.enableSplitViewResizing.read(o);this._sash.state=s?3:0,this.sashLeft.read(o),this._dimensions.height.read(o),this._sash.layout()}))}_computeSashLeft(e,t){const i=this._dimensions.width.read(t),r=Math.floor(this._options.splitViewDefaultRatio.read(t)*i),o=this._options.enableSplitViewResizing.read(t)?Math.floor(e*i):r,s=100;return i<=s*2?r:oi-s?i-s:o}}var ZSt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},TSt=function(n,e){return function(t,i){e(t,i,n)}},J7;let wD=J7=class extends De{static setBreadcrumbsSourceFactory(e){this._breadcrumbsSourceFactory.set(e,void 0)}get isUpdatingHiddenAreas(){return this._isUpdatingHiddenAreas}constructor(e,t,i,r){super(),this._editors=e,this._diffModel=t,this._options=i,this._instantiationService=r,this._modifiedOutlineSource=Qb(this,l=>{const u=this._editors.modifiedModel.read(l),c=J7._breadcrumbsSourceFactory.read(l);return!u||!c?void 0:c(u,this._instantiationService)}),this._isUpdatingHiddenAreas=!1,this._register(this._editors.original.onDidChangeCursorPosition(l=>{if(l.reason===3){const u=this._diffModel.get();rr(c=>{for(const d of this._editors.original.getSelections()||[])u==null||u.ensureOriginalLineIsVisible(d.getStartPosition().lineNumber,0,c),u==null||u.ensureOriginalLineIsVisible(d.getEndPosition().lineNumber,0,c)})}})),this._register(this._editors.modified.onDidChangeCursorPosition(l=>{if(l.reason===3){const u=this._diffModel.get();rr(c=>{for(const d of this._editors.modified.getSelections()||[])u==null||u.ensureModifiedLineIsVisible(d.getStartPosition().lineNumber,0,c),u==null||u.ensureModifiedLineIsVisible(d.getEndPosition().lineNumber,0,c)})}}));const o=this._diffModel.map((l,u)=>{var c,d;const h=(c=l==null?void 0:l.unchangedRegions.read(u))!==null&&c!==void 0?c:[];return h.length===1&&h[0].modifiedLineNumber===1&&h[0].lineCount===((d=this._editors.modifiedModel.read(u))===null||d===void 0?void 0:d.getLineCount())?[]:h});this.viewZones=ew(this,(l,u)=>{const c=this._modifiedOutlineSource.read(l);if(!c)return{origViewZones:[],modViewZones:[]};const d=[],h=[],g=this._options.renderSideBySide.read(l),m=o.read(l);for(const f of m)if(!f.shouldHideControls(l)){{const b=gn(this,v=>f.getHiddenOriginalRange(v).startLineNumber-1),C=new PE(b,24);d.push(C),u.add(new Kye(this._editors.original,C,f,f.originalUnchangedRange,!g,c,v=>this._diffModel.get().ensureModifiedLineIsVisible(v,2,void 0),this._options))}{const b=gn(this,v=>f.getHiddenModifiedRange(v).startLineNumber-1),C=new PE(b,24);h.push(C),u.add(new Kye(this._editors.modified,C,f,f.modifiedUnchangedRange,!1,c,v=>this._diffModel.get().ensureModifiedLineIsVisible(v,2,void 0),this._options))}}return{origViewZones:d,modViewZones:h}});const s={description:"unchanged lines",className:"diff-unchanged-lines",isWholeLine:!0},a={description:"Fold Unchanged",glyphMarginHoverMessage:new ga(void 0,{isTrusted:!0,supportThemeIcons:!0}).appendMarkdown(x("foldUnchanged","Fold Unchanged Region")),glyphMarginClassName:"fold-unchanged "+on.asClassName(ct.fold),zIndex:10001};this._register(VE(this._editors.original,gn(this,l=>{const u=o.read(l),c=u.map(d=>({range:d.originalUnchangedRange.toInclusiveRange(),options:s}));for(const d of u)d.shouldHideControls(l)&&c.push({range:K.fromPositions(new ve(d.originalLineNumber,1)),options:a});return c}))),this._register(VE(this._editors.modified,gn(this,l=>{const u=o.read(l),c=u.map(d=>({range:d.modifiedUnchangedRange.toInclusiveRange(),options:s}));for(const d of u)d.shouldHideControls(l)&&c.push({range:vn.ofLength(d.modifiedLineNumber,1).toInclusiveRange(),options:a});return c}))),this._register(Jn(l=>{const u=o.read(l);this._isUpdatingHiddenAreas=!0;try{this._editors.original.setHiddenAreas(u.map(c=>c.getHiddenOriginalRange(l).toInclusiveRange()).filter(_g)),this._editors.modified.setHiddenAreas(u.map(c=>c.getHiddenModifiedRange(l).toInclusiveRange()).filter(_g))}finally{this._isUpdatingHiddenAreas=!1}})),this._register(this._editors.modified.onMouseUp(l=>{var u;if(!l.event.rightButton&&l.target.position&&(!((u=l.target.element)===null||u===void 0)&&u.className.includes("fold-unchanged"))){const c=l.target.position.lineNumber,d=this._diffModel.get();if(!d)return;const h=d.unchangedRegions.get().find(g=>g.modifiedUnchangedRange.includes(c));if(!h)return;h.collapseAll(void 0),l.event.stopPropagation(),l.event.preventDefault()}})),this._register(this._editors.original.onMouseUp(l=>{var u;if(!l.event.rightButton&&l.target.position&&(!((u=l.target.element)===null||u===void 0)&&u.className.includes("fold-unchanged"))){const c=l.target.position.lineNumber,d=this._diffModel.get();if(!d)return;const h=d.unchangedRegions.get().find(g=>g.originalUnchangedRange.includes(c));if(!h)return;h.collapseAll(void 0),l.event.stopPropagation(),l.event.preventDefault()}}))}};wD._breadcrumbsSourceFactory=ci("breadcrumbsSourceFactory",void 0),wD=J7=ZSt([TSt(3,tn)],wD);class Kye extends Mye{constructor(e,t,i,r,o,s,a,l){const u=Xi("div.diff-hidden-lines-widget");super(e,t,u.root),this._editor=e,this._unchangedRegion=i,this._unchangedRegionRange=r,this._hide=o,this._modifiedOutlineSource=s,this._revealModifiedHiddenLine=a,this._options=l,this._nodes=Xi("div.diff-hidden-lines",[Xi("div.top@top",{title:x("diff.hiddenLines.top","Click or drag to show more above")}),Xi("div.center@content",{style:{display:"flex"}},[Xi("div@first",{style:{display:"flex",justifyContent:"center",alignItems:"center",flexShrink:"0"}},[vt("a",{title:x("showUnchangedRegion","Show Unchanged Region"),role:"button",onclick:()=>{this._unchangedRegion.showAll(void 0)}},...qb("$(unfold)"))]),Xi("div@others",{style:{display:"flex",justifyContent:"center",alignItems:"center"}})]),Xi("div.bottom@bottom",{title:x("diff.bottom","Click or drag to show more below"),role:"button"})]),u.root.appendChild(this._nodes.root);const c=mr(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this._hide?ua(this._nodes.first):this._register(i0(this._nodes.first,{width:c.map(h=>h.contentLeft)})),this._register(Jn(h=>{const g=this._unchangedRegion.visibleLineCountTop.read(h)+this._unchangedRegion.visibleLineCountBottom.read(h)===this._unchangedRegion.lineCount;this._nodes.bottom.classList.toggle("canMoveTop",!g),this._nodes.bottom.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(h)>0),this._nodes.top.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(h)>0),this._nodes.top.classList.toggle("canMoveBottom",!g);const m=this._unchangedRegion.isDragged.read(h),f=this._editor.getDomNode();f&&(f.classList.toggle("draggingUnchangedRegion",!!m),m==="top"?(f.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(h)>0),f.classList.toggle("canMoveBottom",!g)):m==="bottom"?(f.classList.toggle("canMoveTop",!g),f.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(h)>0)):(f.classList.toggle("canMoveTop",!1),f.classList.toggle("canMoveBottom",!1)))}));const d=this._editor;this._register(Ve(this._nodes.top,"mousedown",h=>{if(h.button!==0)return;this._nodes.top.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),h.preventDefault();const g=h.clientY;let m=!1;const f=this._unchangedRegion.visibleLineCountTop.get();this._unchangedRegion.isDragged.set("top",void 0);const b=qt(this._nodes.top),C=Ve(b,"mousemove",w=>{const F=w.clientY-g;m=m||Math.abs(F)>2;const L=Math.round(F/d.getOption(67)),D=Math.max(0,Math.min(f+L,this._unchangedRegion.getMaxVisibleLineCountTop()));this._unchangedRegion.visibleLineCountTop.set(D,void 0)}),v=Ve(b,"mouseup",w=>{m||this._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0),this._nodes.top.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),this._unchangedRegion.isDragged.set(void 0,void 0),C.dispose(),v.dispose()})})),this._register(Ve(this._nodes.bottom,"mousedown",h=>{if(h.button!==0)return;this._nodes.bottom.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),h.preventDefault();const g=h.clientY;let m=!1;const f=this._unchangedRegion.visibleLineCountBottom.get();this._unchangedRegion.isDragged.set("bottom",void 0);const b=qt(this._nodes.bottom),C=Ve(b,"mousemove",w=>{const F=w.clientY-g;m=m||Math.abs(F)>2;const L=Math.round(F/d.getOption(67)),D=Math.max(0,Math.min(f-L,this._unchangedRegion.getMaxVisibleLineCountBottom())),A=d.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.visibleLineCountBottom.set(D,void 0);const M=d.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);d.setScrollTop(d.getScrollTop()+(M-A))}),v=Ve(b,"mouseup",w=>{if(this._unchangedRegion.isDragged.set(void 0,void 0),!m){const S=d.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0);const F=d.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);d.setScrollTop(d.getScrollTop()+(F-S))}this._nodes.bottom.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),C.dispose(),v.dispose()})})),this._register(Jn(h=>{const g=[];if(!this._hide){const m=i.getHiddenModifiedRange(h).length,f=x("hiddenLines","{0} hidden lines",m),b=vt("span",{title:x("diff.hiddenLines.expandAll","Double click to unfold")},f);b.addEventListener("dblclick",w=>{w.button===0&&(w.preventDefault(),this._unchangedRegion.showAll(void 0))}),g.push(b);const C=this._unchangedRegion.getHiddenModifiedRange(h),v=this._modifiedOutlineSource.getBreadcrumbItems(C,h);if(v.length>0){g.push(vt("span",void 0,"  |  "));for(let w=0;w{this._revealModifiedHiddenLine(S.startLineNumber)}}}}ua(this._nodes.others,...g)}))}}const _d=Un("editorWorkerService");var jye=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},K7=function(n,e){return function(t,i){e(t,i,n)}},pv;const Qye=Un("diffProviderFactoryService");let j7=class{constructor(e){this.instantiationService=e}createDiffProvider(e){return this.instantiationService.createInstance(UE,e)}};j7=jye([K7(0,tn)],j7),ti(Qye,j7,1);let UE=pv=class{constructor(e,t,i){this.editorWorkerService=t,this.telemetryService=i,this.onDidChangeEventEmitter=new be,this.onDidChange=this.onDidChangeEventEmitter.event,this.diffAlgorithm="advanced",this.diffAlgorithmOnDidChangeSubscription=void 0,this.setOptions(e)}dispose(){var e;(e=this.diffAlgorithmOnDidChangeSubscription)===null||e===void 0||e.dispose()}async computeDiff(e,t,i,r){var o,s;if(typeof this.diffAlgorithm!="string")return this.diffAlgorithm.computeDiff(e,t,i,r);if(e.getLineCount()===1&&e.getLineMaxColumn(1)===1)return t.getLineCount()===1&&t.getLineMaxColumn(1)===1?{changes:[],identical:!0,quitEarly:!1,moves:[]}:{changes:[new Eh(new vn(1,2),new vn(1,t.getLineCount()+1),[new r0(e.getFullModelRange(),t.getFullModelRange())])],identical:!1,quitEarly:!1,moves:[]};const a=JSON.stringify([e.uri.toString(),t.uri.toString()]),l=JSON.stringify([e.id,t.id,e.getAlternativeVersionId(),t.getAlternativeVersionId(),JSON.stringify(i)]),u=pv.diffCache.get(a);if(u&&u.context===l)return u.result;const c=aa.create(),d=await this.editorWorkerService.computeDiff(e.uri,t.uri,i,this.diffAlgorithm),h=c.elapsed();if(this.telemetryService.publicLog2("diffEditor.computeDiff",{timeMs:h,timedOut:(o=d==null?void 0:d.quitEarly)!==null&&o!==void 0?o:!0,detectedMoves:i.computeMoves?(s=d==null?void 0:d.moves.length)!==null&&s!==void 0?s:0:-1}),r.isCancellationRequested)return{changes:[],identical:!1,quitEarly:!0,moves:[]};if(!d)throw new Error("no diff result available");return pv.diffCache.size>10&&pv.diffCache.delete(pv.diffCache.keys().next().value),pv.diffCache.set(a,{result:d,context:l}),d}setOptions(e){var t;let i=!1;e.diffAlgorithm&&this.diffAlgorithm!==e.diffAlgorithm&&((t=this.diffAlgorithmOnDidChangeSubscription)===null||t===void 0||t.dispose(),this.diffAlgorithmOnDidChangeSubscription=void 0,this.diffAlgorithm=e.diffAlgorithm,typeof e.diffAlgorithm!="string"&&(this.diffAlgorithmOnDidChangeSubscription=e.diffAlgorithm.onDidChange(()=>this.onDidChangeEventEmitter.fire())),i=!0),i&&this.onDidChangeEventEmitter.fire()}};UE.diffCache=new Map,UE=pv=jye([K7(1,_d),K7(2,Nl)],UE);class $f{static trivial(e,t){return new $f([new is(Pn.ofLength(e.length),Pn.ofLength(t.length))],!1)}static trivialTimedOut(e,t){return new $f([new is(Pn.ofLength(e.length),Pn.ofLength(t.length))],!0)}constructor(e,t){this.diffs=e,this.hitTimeout=t}}class is{static invert(e,t){const i=[];return x0e(e,(r,o)=>{i.push(is.fromOffsetPairs(r?r.getEndExclusives():Gc.zero,o?o.getStarts():new Gc(t,(r?r.seq2Range.endExclusive-r.seq1Range.endExclusive:0)+t)))}),i}static fromOffsetPairs(e,t){return new is(new Pn(e.offset1,t.offset1),new Pn(e.offset2,t.offset2))}constructor(e,t){this.seq1Range=e,this.seq2Range=t}swap(){return new is(this.seq2Range,this.seq1Range)}toString(){return`${this.seq1Range} <-> ${this.seq2Range}`}join(e){return new is(this.seq1Range.join(e.seq1Range),this.seq2Range.join(e.seq2Range))}delta(e){return e===0?this:new is(this.seq1Range.delta(e),this.seq2Range.delta(e))}deltaStart(e){return e===0?this:new is(this.seq1Range.deltaStart(e),this.seq2Range.deltaStart(e))}deltaEnd(e){return e===0?this:new is(this.seq1Range.deltaEnd(e),this.seq2Range.deltaEnd(e))}intersect(e){const t=this.seq1Range.intersect(e.seq1Range),i=this.seq2Range.intersect(e.seq2Range);if(!(!t||!i))return new is(t,i)}getStarts(){return new Gc(this.seq1Range.start,this.seq2Range.start)}getEndExclusives(){return new Gc(this.seq1Range.endExclusive,this.seq2Range.endExclusive)}}class Gc{constructor(e,t){this.offset1=e,this.offset2=t}toString(){return`${this.offset1} <-> ${this.offset2}`}delta(e){return e===0?this:new Gc(this.offset1+e,this.offset2+e)}equals(e){return this.offset1===e.offset1&&this.offset2===e.offset2}}Gc.zero=new Gc(0,0),Gc.max=new Gc(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER);class SD{isValid(){return!0}}SD.instance=new SD;class ESt{constructor(e){if(this.timeout=e,this.startTime=Date.now(),this.valid=!0,e<=0)throw new br("timeout must be positive")}isValid(){return!(Date.now()-this.startTime0&&f>0&&s.get(m-1,f-1)===3&&(v+=a.get(m-1,f-1)),v+=r?r(m,f):1):v=-1;const w=Math.max(b,C,v);if(w===v){const S=m>0&&f>0?a.get(m-1,f-1):0;a.set(m,f,S+1),s.set(m,f,3)}else w===b?(a.set(m,f,0),s.set(m,f,1)):w===C&&(a.set(m,f,0),s.set(m,f,2));o.set(m,f,w)}const l=[];let u=e.length,c=t.length;function d(m,f){(m+1!==u||f+1!==c)&&l.push(new is(new Pn(m+1,u),new Pn(f+1,c))),u=m,c=f}let h=e.length-1,g=t.length-1;for(;h>=0&&g>=0;)s.get(h,g)===3?(d(h,g),h--,g--):s.get(h,g)===1?h--:g--;return d(-1,-1),l.reverse(),new $f(l,!1)}}class $ye{compute(e,t,i=SD.instance){if(e.length===0||t.length===0)return $f.trivial(e,t);const r=e,o=t;function s(f,b){for(;fr.length||S>o.length)continue;const F=s(w,S);l.set(c,F);const L=w===C?u.get(c+1):u.get(c-1);if(u.set(c,F!==w?new qye(L,w,S,F-w):L),l.get(c)===r.length&&l.get(c)-c===o.length)break e}}let d=u.get(c);const h=[];let g=r.length,m=o.length;for(;;){const f=d?d.x+d.length:0,b=d?d.y+d.length:0;if((f!==g||b!==m)&&h.push(new is(new Pn(f,g),new Pn(b,m))),!d)break;g=d.x,m=d.y,d=d.prev}return h.reverse(),new $f(h,!1)}}class qye{constructor(e,t,i,r){this.prev=e,this.x=t,this.y=i,this.length=r}}class RSt{constructor(){this.positiveArr=new Int32Array(10),this.negativeArr=new Int32Array(10)}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){if(e<0){if(e=-e-1,e>=this.negativeArr.length){const i=this.negativeArr;this.negativeArr=new Int32Array(i.length*2),this.negativeArr.set(i)}this.negativeArr[e]=t}else{if(e>=this.positiveArr.length){const i=this.positiveArr;this.positiveArr=new Int32Array(i.length*2),this.positiveArr.set(i)}this.positiveArr[e]=t}}}class GSt{constructor(){this.positiveArr=[],this.negativeArr=[]}get(e){return e<0?(e=-e-1,this.negativeArr[e]):this.positiveArr[e]}set(e,t){e<0?(e=-e-1,this.negativeArr[e]=t):this.positiveArr[e]=t}}class JE{constructor(e,t,i){this.lines=e,this.considerWhitespaceChanges=i,this.elements=[],this.firstCharOffsetByLine=[],this.additionalOffsetByLine=[];let r=!1;t.start>0&&t.endExclusive>=e.length&&(t=new Pn(t.start-1,t.endExclusive),r=!0),this.lineRange=t,this.firstCharOffsetByLine[0]=0;for(let o=this.lineRange.start;oString.fromCharCode(t)).join("")}getElement(e){return this.elements[e]}get length(){return this.elements.length}getBoundaryScore(e){const t=tIe(e>0?this.elements[e-1]:-1),i=tIe(ei<=e);return new ve(this.lineRange.start+t+1,e-this.firstCharOffsetByLine[t]+this.additionalOffsetByLine[t]+1)}translateRange(e){return K.fromPositions(this.translateOffset(e.start),this.translateOffset(e.endExclusive))}findWordContaining(e){if(e<0||e>=this.elements.length||!q7(this.elements[e]))return;let t=e;for(;t>0&&q7(this.elements[t-1]);)t--;let i=e;for(;is<=e.start))!==null&&t!==void 0?t:0,o=(i=wCt(this.firstCharOffsetByLine,s=>e.endExclusive<=s))!==null&&i!==void 0?i:this.elements.length;return new Pn(r,o)}}function q7(n){return n>=97&&n<=122||n>=65&&n<=90||n>=48&&n<=57}const VSt={0:0,1:0,2:0,3:10,4:2,5:30,6:3,7:10,8:10};function eIe(n){return VSt[n]}function tIe(n){return n===10?8:n===13?7:$7(n)?6:n>=97&&n<=122?0:n>=65&&n<=90?1:n>=48&&n<=57?2:n===-1?3:n===44||n===59?5:4}function XSt(n,e,t,i,r,o){let{moves:s,excludedChanges:a}=OSt(n,e,t,o);if(!o.isValid())return[];const l=n.filter(c=>!a.has(c)),u=BSt(l,i,r,e,t,o);return hH(s,u),s=zSt(s),s=s.filter(c=>{const d=c.original.toOffsetRange().slice(e).map(g=>g.trim());return d.join(` +`).length>=15&&PSt(d,g=>g.length>=2)>=2}),s=YSt(n,s),s}function PSt(n,e){let t=0;for(const i of n)e(i)&&t++;return t}function OSt(n,e,t,i){const r=[],o=n.filter(l=>l.modified.isEmpty&&l.original.length>=3).map(l=>new aw(l.original,e,l)),s=new Set(n.filter(l=>l.original.isEmpty&&l.modified.length>=3).map(l=>new aw(l.modified,t,l))),a=new Set;for(const l of o){let u=-1,c;for(const d of s){const h=l.computeSimilarity(d);h>u&&(u=h,c=d)}if(u>.9&&c&&(s.delete(c),r.push(new Wl(l.range,c.range)),a.add(l.source),a.add(c.source)),!i.isValid())return{moves:r,excludedChanges:a}}return{moves:r,excludedChanges:a}}function BSt(n,e,t,i,r,o){const s=[],a=new f7;for(const h of n)for(let g=h.original.startLineNumber;gh.modified.startLineNumber,xf));for(const h of n){let g=[];for(let m=h.modified.startLineNumber;m{for(const S of g)if(S.originalLineRange.endLineNumberExclusive+1===v.endLineNumberExclusive&&S.modifiedLineRange.endLineNumberExclusive+1===b.endLineNumberExclusive){S.originalLineRange=new vn(S.originalLineRange.startLineNumber,v.endLineNumberExclusive),S.modifiedLineRange=new vn(S.modifiedLineRange.startLineNumber,b.endLineNumberExclusive),C.push(S);return}const w={modifiedLineRange:b,originalLineRange:v};l.push(w),C.push(w)}),g=C}if(!o.isValid())return[]}l.sort(A0e(Fc(h=>h.modifiedLineRange.length,xf)));const u=new Fd,c=new Fd;for(const h of l){const g=h.modifiedLineRange.startLineNumber-h.originalLineRange.startLineNumber,m=u.subtractFrom(h.modifiedLineRange),f=c.subtractFrom(h.originalLineRange).getWithDelta(g),b=m.getIntersection(f);for(const C of b.ranges){if(C.length<3)continue;const v=C,w=C.delta(-g);s.push(new Wl(w,v)),u.addRange(v),c.addRange(w)}}s.sort(Fc(h=>h.original.startLineNumber,xf));const d=new A_(n);for(let h=0;hL.original.startLineNumber<=g.original.startLineNumber),f=X2(n,L=>L.modified.startLineNumber<=g.modified.startLineNumber),b=Math.max(g.original.startLineNumber-m.original.startLineNumber,g.modified.startLineNumber-f.modified.startLineNumber),C=d.findLastMonotonous(L=>L.original.startLineNumberL.modified.startLineNumberi.length||D>r.length||u.contains(D)||c.contains(L)||!nIe(i[L-1],r[D-1],o))break}S>0&&(c.addRange(new vn(g.original.startLineNumber-S,g.original.startLineNumber)),u.addRange(new vn(g.modified.startLineNumber-S,g.modified.startLineNumber)));let F;for(F=0;Fi.length||D>r.length||u.contains(D)||c.contains(L)||!nIe(i[L-1],r[D-1],o))break}F>0&&(c.addRange(new vn(g.original.endLineNumberExclusive,g.original.endLineNumberExclusive+F)),u.addRange(new vn(g.modified.endLineNumberExclusive,g.modified.endLineNumberExclusive+F))),(S>0||F>0)&&(s[h]=new Wl(new vn(g.original.startLineNumber-S,g.original.endLineNumberExclusive+F),new vn(g.modified.startLineNumber-S,g.modified.endLineNumberExclusive+F)))}return s}function nIe(n,e,t){if(n.trim()===e.trim())return!0;if(n.length>300&&e.length>300)return!1;const r=new $ye().compute(new JE([n],new Pn(0,1),!1),new JE([e],new Pn(0,1),!1),t);let o=0;const s=is.invert(r.diffs,n.length);for(const c of s)c.seq1Range.forEach(d=>{$7(n.charCodeAt(d))||o++});function a(c){let d=0;for(let h=0;he.length?n:e);return o/l>.6&&l>10}function zSt(n){if(n.length===0)return n;n.sort(Fc(t=>t.original.startLineNumber,xf));const e=[n[0]];for(let t=1;t=0&&s>=0&&o+s<=2){e[e.length-1]=i.join(r);continue}e.push(r)}return e}function YSt(n,e){const t=new A_(n);return e=e.filter(i=>{const r=t.findLastMonotonous(a=>a.original.startLineNumbera.modified.startLineNumber0&&(a=a.delta(u))}r.push(a)}return i.length>0&&r.push(i[i.length-1]),r}function HSt(n,e,t){if(!n.getBoundaryScore||!e.getBoundaryScore)return t;for(let i=0;i0?t[i-1]:void 0,o=t[i],s=i+1=i.start&&n.seq2Range.start-s>=r.start&&t.isStronglyEqual(n.seq2Range.start-s,n.seq2Range.endExclusive-s)&&s<100;)s++;s--;let a=0;for(;n.seq1Range.start+au&&(u=m,l=c)}return n.delta(l)}function USt(n,e,t){const i=[];for(const r of t){const o=i[i.length-1];if(!o){i.push(r);continue}r.seq1Range.start-o.seq1Range.endExclusive<=2||r.seq2Range.start-o.seq2Range.endExclusive<=2?i[i.length-1]=new is(o.seq1Range.join(r.seq1Range),o.seq2Range.join(r.seq2Range)):i.push(r)}return i}function JSt(n,e,t){const i=is.invert(t,n.length),r=[];let o=new Gc(0,0);function s(l,u){if(l.offset10;){const b=i[0];if(!(b.seq1Range.intersects(c)||b.seq2Range.intersects(d)))break;const v=n.findWordContaining(b.seq1Range.start),w=e.findWordContaining(b.seq2Range.start),S=new is(v,w),F=S.intersect(b);if(m+=F.seq1Range.length,f+=F.seq2Range.length,h=h.join(S),h.seq1Range.endExclusive>=b.seq1Range.endExclusive)i.shift();else break}m+f<(h.seq1Range.length+h.seq2Range.length)*2/3&&r.push(h),o=h.getEndExclusives()}for(;i.length>0;){const l=i.shift();l.seq1Range.isEmpty||(s(l.getStarts(),l),s(l.getEndExclusives().delta(-1),l))}return KSt(t,r)}function KSt(n,e){const t=[];for(;n.length>0||e.length>0;){const i=n[0],r=e[0];let o;i&&(!r||i.seq1Range.start0&&t[t.length-1].seq1Range.endExclusive>=o.seq1Range.start?t[t.length-1]=t[t.length-1].join(o):t.push(o)}return t}function jSt(n,e,t){let i=t;if(i.length===0)return i;let r=0,o;do{o=!1;const s=[i[0]];for(let a=1;a5||g.seq1Range.length+g.seq2Range.length>5)};const l=i[a],u=s[s.length-1];c(u,l)?(o=!0,s[s.length-1]=s[s.length-1].join(l)):s.push(l)}i=s}while(r++<10&&o);return i}function QSt(n,e,t){let i=t;if(i.length===0)return i;let r=0,o;do{o=!1;const a=[i[0]];for(let l=1;l5||f.length>500)return!1;const C=n.getText(f).trim();if(C.length>20||C.split(/\r\n|\r|\n/).length>1)return!1;const v=n.countLinesIn(g.seq1Range),w=g.seq1Range.length,S=e.countLinesIn(g.seq2Range),F=g.seq2Range.length,L=n.countLinesIn(m.seq1Range),D=m.seq1Range.length,A=e.countLinesIn(m.seq2Range),M=m.seq2Range.length,W=2*40+50;function Z(T){return Math.min(T,W)}return Math.pow(Math.pow(Z(v*40+w),1.5)+Math.pow(Z(S*40+F),1.5),1.5)+Math.pow(Math.pow(Z(L*40+D),1.5)+Math.pow(Z(A*40+M),1.5),1.5)>(W**1.5)**1.5*1.3};const u=i[l],c=a[a.length-1];d(c,u)?(o=!0,a[a.length-1]=a[a.length-1].join(u)):a.push(u)}i=a}while(r++<10&&o);const s=[];return Xmt(i,(a,l,u)=>{let c=l;function d(C){return C.length>0&&C.trim().length<=3&&l.seq1Range.length+l.seq2Range.length>100}const h=n.extendToFullLines(l.seq1Range),g=n.getText(new Pn(h.start,l.seq1Range.start));d(g)&&(c=c.deltaStart(-g.length));const m=n.getText(new Pn(l.seq1Range.endExclusive,h.endExclusive));d(m)&&(c=c.deltaEnd(m.length));const f=is.fromOffsetPairs(a?a.getEndExclusives():Gc.zero,u?u.getStarts():Gc.max),b=c.intersect(f);s.length>0&&b.getStarts().equals(s[s.length-1].getEndExclusives())?s[s.length-1]=s[s.length-1].join(b):s.push(b)}),s}class KE{constructor(e,t,i){this.changes=e,this.moves=t,this.hitTimeout=i}}class oIe{constructor(e,t){this.lineRangeMapping=e,this.changes=t}}let sIe=class{constructor(e,t){this.trimmedHash=e,this.lines=t}getElement(e){return this.trimmedHash[e]}get length(){return this.trimmedHash.length}getBoundaryScore(e){const t=e===0?0:aIe(this.lines[e-1]),i=e===this.lines.length?0:aIe(this.lines[e]);return 1e3-(t+i)}getText(e){return this.lines.slice(e.start,e.endExclusive).join(` +`)}isStronglyEqual(e,t){return this.lines[e]===this.lines[t]}};function aIe(n){let e=0;for(;eF===L))return new KE([],[],!1);if(e.length===1&&e[0].length===0||t.length===1&&t[0].length===0)return new KE([new Eh(new vn(1,e.length+1),new vn(1,t.length+1),[new r0(new K(1,1,e.length,e[0].length+1),new K(1,1,t.length,t[0].length+1))])],[],!1);const r=i.maxComputationTimeMs===0?SD.instance:new ESt(i.maxComputationTimeMs),o=!i.ignoreTrimWhitespace,s=new Map;function a(F){let L=s.get(F);return L===void 0&&(L=s.size,s.set(F,L)),L}const l=e.map(F=>a(F.trim())),u=t.map(F=>a(F.trim())),c=new sIe(l,e),d=new sIe(u,t),h=c.length+d.length<1700?this.dynamicProgrammingDiffing.compute(c,d,r,(F,L)=>e[F]===t[L]?t[L].length===0?.1:1+Math.log(1+t[L].length):.99):this.myersDiffingAlgorithm.compute(c,d);let g=h.diffs,m=h.hitTimeout;g=eU(c,d,g),g=jSt(c,d,g);const f=[],b=F=>{if(o)for(let L=0;LF.seq1Range.start-C===F.seq2Range.start-v);const L=F.seq1Range.start-C;b(L),C=F.seq1Range.endExclusive,v=F.seq2Range.endExclusive;const D=this.refineDiff(e,t,F,r,o);D.hitTimeout&&(m=!0);for(const A of D.mappings)f.push(A)}b(e.length-C);const w=uIe(f,e,t);let S=[];return i.computeMoves&&(S=this.computeMoves(w,e,t,l,u,r,o)),n2(()=>{function F(D,A){if(D.lineNumber<1||D.lineNumber>A.length)return!1;const M=A[D.lineNumber-1];return!(D.column<1||D.column>M.length+1)}function L(D,A){return!(D.startLineNumber<1||D.startLineNumber>A.length+1||D.endLineNumberExclusive<1||D.endLineNumberExclusive>A.length+1)}for(const D of w){if(!D.innerChanges)return!1;for(const A of D.innerChanges)if(!(F(A.modifiedRange.getStartPosition(),t)&&F(A.modifiedRange.getEndPosition(),t)&&F(A.originalRange.getStartPosition(),e)&&F(A.originalRange.getEndPosition(),e)))return!1;if(!L(D.modified,t)||!L(D.original,e))return!1}return!0}),new KE(w,S,m)}computeMoves(e,t,i,r,o,s,a){return XSt(e,t,i,r,o,s).map(c=>{const d=this.refineDiff(t,i,new is(c.original.toOffsetRange(),c.modified.toOffsetRange()),s,a),h=uIe(d.mappings,t,i,!0);return new oIe(c,h)})}refineDiff(e,t,i,r,o){const s=new JE(e,i.seq1Range,o),a=new JE(t,i.seq2Range,o),l=s.length+a.length<500?this.dynamicProgrammingDiffing.compute(s,a,r):this.myersDiffingAlgorithm.compute(s,a,r);let u=l.diffs;return u=eU(s,a,u),u=JSt(s,a,u),u=USt(s,a,u),u=QSt(s,a,u),{mappings:u.map(d=>new r0(s.translateRange(d.seq1Range),a.translateRange(d.seq2Range))),hitTimeout:l.hitTimeout}}}function uIe(n,e,t,i=!1){const r=[];for(const o of uH(n.map(s=>$St(s,e,t)),(s,a)=>s.original.overlapOrTouch(a.original)||s.modified.overlapOrTouch(a.modified))){const s=o[0],a=o[o.length-1];r.push(new Eh(s.original.join(a.original),s.modified.join(a.modified),o.map(l=>l.innerChanges[0])))}return n2(()=>!i&&r.length>0&&r[0].original.startLineNumber!==r[0].modified.startLineNumber?!1:h0e(r,(o,s)=>s.original.startLineNumber-o.original.endLineNumberExclusive===s.modified.startLineNumber-o.modified.endLineNumberExclusive&&o.original.endLineNumberExclusive=t[n.modifiedRange.startLineNumber-1].length&&n.originalRange.startColumn-1>=e[n.originalRange.startLineNumber-1].length&&n.originalRange.startLineNumber<=n.originalRange.endLineNumber+r&&n.modifiedRange.startLineNumber<=n.modifiedRange.endLineNumber+r&&(i=1);const o=new vn(n.originalRange.startLineNumber+i,n.originalRange.endLineNumber+1+r),s=new vn(n.modifiedRange.startLineNumber+i,n.modifiedRange.endLineNumber+1+r);return new Eh(o,s,[n])}var qSt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},ext=function(n,e){return function(t,i){e(t,i,n)}};let tU=class extends De{setActiveMovedText(e){this._activeMovedText.set(e,void 0)}constructor(e,t,i){super(),this.model=e,this._options=t,this._diffProviderFactoryService=i,this._isDiffUpToDate=ci(this,!1),this.isDiffUpToDate=this._isDiffUpToDate,this._diff=ci(this,void 0),this.diff=this._diff,this._unchangedRegions=ci(this,void 0),this.unchangedRegions=gn(this,a=>{var l,u;return this._options.hideUnchangedRegions.read(a)?(u=(l=this._unchangedRegions.read(a))===null||l===void 0?void 0:l.regions)!==null&&u!==void 0?u:[]:(rr(c=>{var d;for(const h of((d=this._unchangedRegions.get())===null||d===void 0?void 0:d.regions)||[])h.collapseAll(c)}),[])}),this.movedTextToCompare=ci(this,void 0),this._activeMovedText=ci(this,void 0),this._hoveredMovedText=ci(this,void 0),this.activeMovedText=gn(this,a=>{var l,u;return(u=(l=this.movedTextToCompare.read(a))!==null&&l!==void 0?l:this._hoveredMovedText.read(a))!==null&&u!==void 0?u:this._activeMovedText.read(a)}),this._cancellationTokenSource=new co,this._diffProvider=gn(this,a=>{const l=this._diffProviderFactoryService.createDiffProvider({diffAlgorithm:this._options.diffAlgorithm.read(a)}),u=il("onDidChange",l.onDidChange);return{diffProvider:l,onChangeSignal:u}}),this._register(en(()=>this._cancellationTokenSource.cancel()));const r=m7("contentChangedSignal"),o=this._register(new Vi(()=>r.trigger(void 0),200));this._register(Jn(a=>{const l=this._unchangedRegions.read(a);if(!l||l.regions.some(m=>m.isDragged.read(a)))return;const u=l.originalDecorationIds.map(m=>e.original.getDecorationRange(m)).map(m=>m?vn.fromRangeInclusive(m):void 0),c=l.modifiedDecorationIds.map(m=>e.modified.getDecorationRange(m)).map(m=>m?vn.fromRangeInclusive(m):void 0),d=l.regions.map((m,f)=>!u[f]||!c[f]?void 0:new l0(u[f].startLineNumber,c[f].startLineNumber,u[f].length,m.visibleLineCountTop.read(a),m.visibleLineCountBottom.read(a))).filter(_g),h=[];let g=!1;for(const m of uH(d,(f,b)=>f.getHiddenModifiedRange(a).endLineNumberExclusive===b.getHiddenModifiedRange(a).startLineNumber))if(m.length>1){g=!0;const f=m.reduce((C,v)=>C+v.lineCount,0),b=new l0(m[0].originalLineNumber,m[0].modifiedLineNumber,f,m[0].visibleLineCountTop.get(),m[m.length-1].visibleLineCountBottom.get());h.push(b)}else h.push(m[0]);if(g){const m=e.original.deltaDecorations(l.originalDecorationIds,h.map(b=>({range:b.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),f=e.modified.deltaDecorations(l.modifiedDecorationIds,h.map(b=>({range:b.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));rr(b=>{this._unchangedRegions.set({regions:h,originalDecorationIds:m,modifiedDecorationIds:f},b)})}}));const s=(a,l,u)=>{const c=l0.fromDiffs(a.changes,e.original.getLineCount(),e.modified.getLineCount(),this._options.hideUnchangedRegionsMinimumLineCount.read(u),this._options.hideUnchangedRegionsContextLineCount.read(u));let d;const h=this._unchangedRegions.get();if(h){const b=h.originalDecorationIds.map(S=>e.original.getDecorationRange(S)).map(S=>S?vn.fromRangeInclusive(S):void 0),C=h.modifiedDecorationIds.map(S=>e.modified.getDecorationRange(S)).map(S=>S?vn.fromRangeInclusive(S):void 0);let w=sSt(h.regions.map((S,F)=>{if(!b[F]||!C[F])return;const L=b[F].length;return new l0(b[F].startLineNumber,C[F].startLineNumber,L,Math.min(S.visibleLineCountTop.get(),L),Math.min(S.visibleLineCountBottom.get(),L-S.visibleLineCountTop.get()))}).filter(_g),(S,F)=>!F||S.modifiedLineNumber>=F.modifiedLineNumber+F.lineCount&&S.originalLineNumber>=F.originalLineNumber+F.lineCount).map(S=>new Wl(S.getHiddenOriginalRange(u),S.getHiddenModifiedRange(u)));w=Wl.clip(w,vn.ofLength(1,e.original.getLineCount()),vn.ofLength(1,e.modified.getLineCount())),d=Wl.inverse(w,e.original.getLineCount(),e.modified.getLineCount())}const g=[];if(d)for(const b of c){const C=d.filter(v=>v.original.intersectsStrict(b.originalUnchangedRange)&&v.modified.intersectsStrict(b.modifiedUnchangedRange));g.push(...b.setVisibleRanges(C,l))}else g.push(...c);const m=e.original.deltaDecorations((h==null?void 0:h.originalDecorationIds)||[],g.map(b=>({range:b.originalUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}}))),f=e.modified.deltaDecorations((h==null?void 0:h.modifiedDecorationIds)||[],g.map(b=>({range:b.modifiedUnchangedRange.toInclusiveRange(),options:{description:"unchanged"}})));this._unchangedRegions.set({regions:g,originalDecorationIds:m,modifiedDecorationIds:f},l)};this._register(e.modified.onDidChangeContent(a=>{if(this._diff.get()){const u=Vf.fromModelContentChanges(a.changes);this._lastDiff,e.original,e.modified}this._isDiffUpToDate.set(!1,void 0),o.schedule()})),this._register(e.original.onDidChangeContent(a=>{if(this._diff.get()){const u=Vf.fromModelContentChanges(a.changes);this._lastDiff,e.original,e.modified}this._isDiffUpToDate.set(!1,void 0),o.schedule()})),this._register(kh(async(a,l)=>{var u,c;this._options.hideUnchangedRegionsMinimumLineCount.read(a),this._options.hideUnchangedRegionsContextLineCount.read(a),o.cancel(),r.read(a);const d=this._diffProvider.read(a);d.onChangeSignal.read(a),dm(lIe,a),dm(eU,a),this._isDiffUpToDate.set(!1,void 0);let h=[];l.add(e.original.onDidChangeContent(f=>{const b=Vf.fromModelContentChanges(f.changes);h=nE(h,b)}));let g=[];l.add(e.modified.onDidChangeContent(f=>{const b=Vf.fromModelContentChanges(f.changes);g=nE(g,b)}));let m=await d.diffProvider.computeDiff(e.original,e.modified,{ignoreTrimWhitespace:this._options.ignoreTrimWhitespace.read(a),maxComputationTimeMs:this._options.maxComputationTimeMs.read(a),computeMoves:this._options.showMoves.read(a)},this._cancellationTokenSource.token);this._cancellationTokenSource.token.isCancellationRequested||(m=txt(m,e.original,e.modified),m=(u=(e.original,e.modified,void 0))!==null&&u!==void 0?u:m,m=(c=(e.original,e.modified,void 0))!==null&&c!==void 0?c:m,rr(f=>{s(m,f),this._lastDiff=m;const b=nU.fromDiffResult(m);this._diff.set(b,f),this._isDiffUpToDate.set(!0,f);const C=this.movedTextToCompare.get();this.movedTextToCompare.set(C?this._lastDiff.moves.find(v=>v.lineRangeMapping.modified.intersect(C.lineRangeMapping.modified)):void 0,f)}))}))}ensureModifiedLineIsVisible(e,t,i){var r,o;if(((r=this.diff.get())===null||r===void 0?void 0:r.mappings.length)===0)return;const s=((o=this._unchangedRegions.get())===null||o===void 0?void 0:o.regions)||[];for(const a of s)if(a.getHiddenModifiedRange(void 0).contains(e)){a.showModifiedLine(e,t,i);return}}ensureOriginalLineIsVisible(e,t,i){var r,o;if(((r=this.diff.get())===null||r===void 0?void 0:r.mappings.length)===0)return;const s=((o=this._unchangedRegions.get())===null||o===void 0?void 0:o.regions)||[];for(const a of s)if(a.getHiddenOriginalRange(void 0).contains(e)){a.showOriginalLine(e,t,i);return}}async waitForDiff(){await m2t(this.isDiffUpToDate,e=>e)}serializeState(){const e=this._unchangedRegions.get();return{collapsedRegions:e==null?void 0:e.regions.map(t=>({range:t.getHiddenModifiedRange(void 0).serialize()}))}}restoreSerializedState(e){var t;const i=(t=e.collapsedRegions)===null||t===void 0?void 0:t.map(o=>vn.deserialize(o.range)),r=this._unchangedRegions.get();!r||!i||rr(o=>{for(const s of r.regions)for(const a of i)if(s.modifiedUnchangedRange.intersect(a)){s.setHiddenModifiedRange(a,o);break}})}};tU=qSt([ext(2,Qye)],tU);function txt(n,e,t){return{changes:n.changes.map(i=>new Eh(i.original,i.modified,i.innerChanges?i.innerChanges.map(r=>nxt(r,e,t)):void 0)),moves:n.moves,identical:n.identical,quitEarly:n.quitEarly}}function nxt(n,e,t){let i=n.originalRange,r=n.modifiedRange;return(i.endColumn!==1||r.endColumn!==1)&&i.endColumn===e.getLineMaxColumn(i.endLineNumber)&&r.endColumn===t.getLineMaxColumn(r.endLineNumber)&&i.endLineNumbernew cIe(t)),e.moves||[],e.identical,e.quitEarly)}constructor(e,t,i,r){this.mappings=e,this.movedTexts=t,this.identical=i,this.quitEarly=r}}class cIe{constructor(e){this.lineRangeMapping=e}}class l0{static fromDiffs(e,t,i,r,o){const s=Eh.inverse(e,t,i),a=[];for(const l of s){let u=l.original.startLineNumber,c=l.modified.startLineNumber,d=l.original.length;const h=u===1&&c===1,g=u+d===t+1&&c+d===i+1;(h||g)&&d>=o+r?(h&&!g&&(d-=o),g&&!h&&(u+=o,c+=o,d-=o),a.push(new l0(u,c,d,0,0))):d>=o*2+r&&(u+=o,c+=o,d-=o*2,a.push(new l0(u,c,d,0,0)))}return a}get originalUnchangedRange(){return vn.ofLength(this.originalLineNumber,this.lineCount)}get modifiedUnchangedRange(){return vn.ofLength(this.modifiedLineNumber,this.lineCount)}constructor(e,t,i,r,o){this.originalLineNumber=e,this.modifiedLineNumber=t,this.lineCount=i,this._visibleLineCountTop=ci(this,0),this.visibleLineCountTop=this._visibleLineCountTop,this._visibleLineCountBottom=ci(this,0),this.visibleLineCountBottom=this._visibleLineCountBottom,this._shouldHideControls=gn(this,l=>this.visibleLineCountTop.read(l)+this.visibleLineCountBottom.read(l)===this.lineCount&&!this.isDragged.read(l)),this.isDragged=ci(this,void 0);const s=Math.max(Math.min(r,this.lineCount),0),a=Math.max(Math.min(o,this.lineCount-r),0);d0e(r===s),d0e(o===a),this._visibleLineCountTop.set(s,void 0),this._visibleLineCountBottom.set(a,void 0)}setVisibleRanges(e,t){const i=[],r=new Fd(e.map(l=>l.modified)).subtractFrom(this.modifiedUnchangedRange);let o=this.originalLineNumber,s=this.modifiedLineNumber;const a=this.modifiedLineNumber+this.lineCount;if(r.ranges.length===0)this.showAll(t),i.push(this);else{let l=0;for(const u of r.ranges){const c=l===r.ranges.length-1;l++;const d=(c?a:u.endLineNumberExclusive)-s,h=new l0(o,s,d,0,0);h.setHiddenModifiedRange(u,t),i.push(h),o=h.originalUnchangedRange.endLineNumberExclusive,s=h.modifiedUnchangedRange.endLineNumberExclusive}}return i}shouldHideControls(e){return this._shouldHideControls.read(e)}getHiddenOriginalRange(e){return vn.ofLength(this.originalLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}getHiddenModifiedRange(e){return vn.ofLength(this.modifiedLineNumber+this._visibleLineCountTop.read(e),this.lineCount-this._visibleLineCountTop.read(e)-this._visibleLineCountBottom.read(e))}setHiddenModifiedRange(e,t){const i=e.startLineNumber-this.modifiedLineNumber,r=this.modifiedLineNumber+this.lineCount-e.endLineNumberExclusive;this.setState(i,r,t)}getMaxVisibleLineCountTop(){return this.lineCount-this._visibleLineCountBottom.get()}getMaxVisibleLineCountBottom(){return this.lineCount-this._visibleLineCountTop.get()}showMoreAbove(e=10,t){const i=this.getMaxVisibleLineCountTop();this._visibleLineCountTop.set(Math.min(this._visibleLineCountTop.get()+e,i),t)}showMoreBelow(e=10,t){const i=this.lineCount-this._visibleLineCountTop.get();this._visibleLineCountBottom.set(Math.min(this._visibleLineCountBottom.get()+e,i),t)}showAll(e){this._visibleLineCountBottom.set(this.lineCount-this._visibleLineCountTop.get(),e)}showModifiedLine(e,t,i){const r=e+1-(this.modifiedLineNumber+this._visibleLineCountTop.get()),o=this.modifiedLineNumber-this._visibleLineCountBottom.get()+this.lineCount-e;t===0&&r{var b;this._contextMenuService.showContextMenu({domForShadowRoot:h&&(b=i.getDomNode())!==null&&b!==void 0?b:void 0,getAnchor:()=>({x:m,y:f}),getActions:()=>{const C=[],v=r.modified.isEmpty;return C.push(new su("diff.clipboard.copyDeletedContent",v?r.original.length>1?x("diff.clipboard.copyDeletedLinesContent.label","Copy deleted lines"):x("diff.clipboard.copyDeletedLinesContent.single.label","Copy deleted line"):r.original.length>1?x("diff.clipboard.copyChangedLinesContent.label","Copy changed lines"):x("diff.clipboard.copyChangedLinesContent.single.label","Copy changed line"),void 0,!0,async()=>{const S=this._originalTextModel.getValueInRange(r.original.toExclusiveRange());await this._clipboardService.writeText(S)})),r.original.length>1&&C.push(new su("diff.clipboard.copyDeletedLineContent",v?x("diff.clipboard.copyDeletedLineContent.label","Copy deleted line ({0})",r.original.startLineNumber+d):x("diff.clipboard.copyChangedLineContent.label","Copy changed line ({0})",r.original.startLineNumber+d),void 0,!0,async()=>{let S=this._originalTextModel.getLineContent(r.original.startLineNumber+d);S===""&&(S=this._originalTextModel.getEndOfLineSequence()===0?` +`:`\r +`),await this._clipboardService.writeText(S)})),i.getOption(91)||C.push(new su("diff.inline.revertChange",x("diff.inline.revertChange.label","Revert this change"),void 0,!0,async()=>{this._editor.revert(this._diff)})),C},autoSelectFirstItem:!0})};this._register(Gr(this._diffActions,"mousedown",m=>{if(!m.leftButton)return;const{top:f,height:b}=go(this._diffActions),C=Math.floor(c/3);m.preventDefault(),g(m.posx,f+b+C)})),this._register(i.onMouseMove(m=>{(m.target.type===8||m.target.type===5)&&m.target.detail.viewZoneId===this._getViewZoneId()?(d=this._updateLightBulbPosition(this._marginDomNode,m.event.browserEvent.y,c),this.visibility=!0):this.visibility=!1})),this._register(i.onMouseDown(m=>{m.event.leftButton&&(m.target.type===8||m.target.type===5)&&m.target.detail.viewZoneId===this._getViewZoneId()&&(m.event.preventDefault(),d=this._updateLightBulbPosition(this._marginDomNode,m.event.browserEvent.y,c),g(m.event.posx,m.event.posy+c))}))}_updateLightBulbPosition(e,t,i){const{top:r}=go(e),o=t-r,s=Math.floor(o/i),a=s*i;if(this._diffActions.style.top=`${a}px`,this._viewLineCounts){let l=0;for(let u=0;un});function rxt(n,e,t,i){Ks(i,e.fontInfo);const r=t.length>0,o=new c2(1e4);let s=0,a=0;const l=[];for(let h=0;h');const l=e.getLineContent(),u=Ou.isBasicASCII(l,r),c=Ou.containsRTL(l,u,o),d=g_(new Xb(s.fontInfo.isMonospace&&!s.disableMonospaceOptimizations,s.fontInfo.canUseHalfwidthRightwardsArrow,l,!1,u,c,0,e,t,s.tabSize,0,s.fontInfo.spaceWidth,s.fontInfo.middotWidth,s.fontInfo.wsmiddotWidth,s.stopRenderingLineAfter,s.renderWhitespace,s.renderControlCharacters,s.fontLigatures!==Vu.OFF,null),a);return a.appendString(""),d.characterMapping.getHorizontalOffset(d.characterMapping.length)}const qf=Un("clipboardService"),hm=Un("contextViewService"),hu=Un("contextMenuService");var sxt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},gIe=function(n,e){return function(t,i){e(t,i,n)}};let rU=class extends De{constructor(e,t,i,r,o,s,a,l,u,c){super(),this._targetWindow=e,this._editors=t,this._diffModel=i,this._options=r,this._diffEditorWidget=o,this._canIgnoreViewZoneUpdateEvent=s,this._origViewZonesToIgnore=a,this._modViewZonesToIgnore=l,this._clipboardService=u,this._contextMenuService=c,this._originalTopPadding=ci(this,0),this._originalScrollOffset=ci(this,0),this._originalScrollOffsetAnimated=kye(this._targetWindow,this._originalScrollOffset,this._store),this._modifiedTopPadding=ci(this,0),this._modifiedScrollOffset=ci(this,0),this._modifiedScrollOffsetAnimated=kye(this._targetWindow,this._modifiedScrollOffset,this._store);const d=ci("invalidateAlignmentsState",0),h=this._register(new Vi(()=>{d.set(d.get()+1,void 0)},0));this._register(this._editors.original.onDidChangeViewZones(w=>{this._canIgnoreViewZoneUpdateEvent()||h.schedule()})),this._register(this._editors.modified.onDidChangeViewZones(w=>{this._canIgnoreViewZoneUpdateEvent()||h.schedule()})),this._register(this._editors.original.onDidChangeConfiguration(w=>{(w.hasChanged(145)||w.hasChanged(67))&&h.schedule()})),this._register(this._editors.modified.onDidChangeConfiguration(w=>{(w.hasChanged(145)||w.hasChanged(67))&&h.schedule()}));const g=this._diffModel.map(w=>w?mr(w.model.original.onDidChangeTokens,()=>w.model.original.tokenization.backgroundTokenizationState===2):void 0).map((w,S)=>w==null?void 0:w.read(S)),m=gn(w=>{const S=this._diffModel.read(w),F=S==null?void 0:S.diff.read(w);if(!S||!F)return null;d.read(w);const D=this._options.renderSideBySide.read(w);return mIe(this._editors.original,this._editors.modified,F.mappings,this._origViewZonesToIgnore,this._modViewZonesToIgnore,D)}),f=gn(w=>{var S;const F=(S=this._diffModel.read(w))===null||S===void 0?void 0:S.movedTextToCompare.read(w);if(!F)return null;d.read(w);const L=F.changes.map(D=>new cIe(D));return mIe(this._editors.original,this._editors.modified,L,this._origViewZonesToIgnore,this._modViewZonesToIgnore,!0)});function b(){const w=document.createElement("div");return w.className="diagonal-fill",w}const C=this._register(new je);this.viewZones=ew(this,(w,S)=>{var F,L,D,A,M,W,Z,T;C.clear();const E=m.read(w)||[],V=[],z=[],O=this._modifiedTopPadding.read(w);O>0&&z.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:O,showInHiddenAreas:!0,suppressMouseDown:!0});const P=this._originalTopPadding.read(w);P>0&&V.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:P,showInHiddenAreas:!0,suppressMouseDown:!0});const B=this._options.renderSideBySide.read(w),Y=B||(F=this._editors.modified._getViewModel())===null||F===void 0?void 0:F.createLineBreaksComputer();if(Y){const ue=this._editors.original.getModel();for(const ce of E)if(ce.diff)for(let ye=ce.originalRange.startLineNumber;yeue.getLineCount())return{orig:V,mod:z};Y==null||Y.addRequest(ue.getLineContent(ye),null,null)}}const k=(L=Y==null?void 0:Y.finalize())!==null&&L!==void 0?L:[];let X=0;const U=this._editors.modified.getOption(67),R=(D=this._diffModel.read(w))===null||D===void 0?void 0:D.movedTextToCompare.read(w),ee=(M=(A=this._editors.original.getModel())===null||A===void 0?void 0:A.mightContainNonBasicASCII())!==null&&M!==void 0?M:!1,oe=(Z=(W=this._editors.original.getModel())===null||W===void 0?void 0:W.mightContainRTL())!==null&&Z!==void 0?Z:!1,se=iU.fromEditor(this._editors.modified);for(const ue of E)if(ue.diff&&!B){if(!ue.originalRange.isEmpty){g.read(w);const ye=document.createElement("div");ye.classList.add("view-lines","line-delete","monaco-mouse-cursor-text");const fe=this._editors.original.getModel();if(ue.originalRange.endLineNumberExclusive-1>fe.getLineCount())return{orig:V,mod:z};const le=new oxt(ue.originalRange.mapToLineArray(Ke=>fe.tokenization.getLineTokens(Ke)),ue.originalRange.mapToLineArray(Ke=>k[X++]),ee,oe),Ze=[];for(const Ke of ue.diff.innerChanges||[])Ze.push(new M_(Ke.originalRange.delta(-(ue.diff.original.startLineNumber-1)),Y7.className,0));const ke=rxt(le,se,Ze,ye),Ne=document.createElement("div");if(Ne.className="inline-deleted-margin-view-zone",Ks(Ne,se.fontInfo),this._options.renderIndicators.read(w))for(let Ke=0;Kefb(ze),Ne,this._editors.modified,ue.diff,this._diffEditorWidget,ke.viewLineCounts,this._editors.original.getModel(),this._contextMenuService,this._clipboardService));for(let Ke=0;Ke1&&V.push({afterLineNumber:ue.originalRange.startLineNumber+Ke,domNode:b(),heightInPx:(ut-1)*U,showInHiddenAreas:!0,suppressMouseDown:!0})}z.push({afterLineNumber:ue.modifiedRange.startLineNumber-1,domNode:ye,heightInPx:ke.heightInLines*U,minWidthInPx:ke.minWidthInPx,marginDomNode:Ne,setZoneId(Ke){ze=Ke},showInHiddenAreas:!0,suppressMouseDown:!0})}const ce=document.createElement("div");ce.className="gutter-delete",V.push({afterLineNumber:ue.originalRange.endLineNumberExclusive-1,domNode:b(),heightInPx:ue.modifiedHeightInPx,marginDomNode:ce,showInHiddenAreas:!0,suppressMouseDown:!0})}else{const ce=ue.modifiedHeightInPx-ue.originalHeightInPx;if(ce>0){if(R!=null&&R.lineRangeMapping.original.delta(-1).deltaLength(2).contains(ue.originalRange.endLineNumberExclusive-1))continue;V.push({afterLineNumber:ue.originalRange.endLineNumberExclusive-1,domNode:b(),heightInPx:ce,showInHiddenAreas:!0,suppressMouseDown:!0})}else{let ye=function(){const le=document.createElement("div");return le.className="arrow-revert-change "+on.asClassName(ct.arrowRight),S.add(Ve(le,"mousedown",Ze=>Ze.stopPropagation())),S.add(Ve(le,"click",Ze=>{Ze.stopPropagation(),o.revert(ue.diff)})),vt("div",{},le)};if(R!=null&&R.lineRangeMapping.modified.delta(-1).deltaLength(2).contains(ue.modifiedRange.endLineNumberExclusive-1))continue;let fe;ue.diff&&ue.diff.modified.isEmpty&&this._options.shouldRenderRevertArrows.read(w)&&(fe=ye()),z.push({afterLineNumber:ue.modifiedRange.endLineNumberExclusive-1,domNode:b(),heightInPx:-ce,marginDomNode:fe,showInHiddenAreas:!0,suppressMouseDown:!0})}}for(const ue of(T=f.read(w))!==null&&T!==void 0?T:[]){if(!(R!=null&&R.lineRangeMapping.original.intersect(ue.originalRange))||!(R!=null&&R.lineRangeMapping.modified.intersect(ue.modifiedRange)))continue;const ce=ue.modifiedHeightInPx-ue.originalHeightInPx;ce>0?V.push({afterLineNumber:ue.originalRange.endLineNumberExclusive-1,domNode:b(),heightInPx:ce,showInHiddenAreas:!0,suppressMouseDown:!0}):z.push({afterLineNumber:ue.modifiedRange.endLineNumberExclusive-1,domNode:b(),heightInPx:-ce,showInHiddenAreas:!0,suppressMouseDown:!0})}return{orig:V,mod:z}});let v=!1;this._register(this._editors.original.onDidScrollChange(w=>{w.scrollLeftChanged&&!v&&(v=!0,this._editors.modified.setScrollLeft(w.scrollLeft),v=!1)})),this._register(this._editors.modified.onDidScrollChange(w=>{w.scrollLeftChanged&&!v&&(v=!0,this._editors.original.setScrollLeft(w.scrollLeft),v=!1)})),this._originalScrollTop=mr(this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=mr(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._register(Jn(w=>{const S=this._originalScrollTop.read(w)-(this._originalScrollOffsetAnimated.get()-this._modifiedScrollOffsetAnimated.read(w))-(this._originalTopPadding.get()-this._modifiedTopPadding.read(w));S!==this._editors.modified.getScrollTop()&&this._editors.modified.setScrollTop(S,1)})),this._register(Jn(w=>{const S=this._modifiedScrollTop.read(w)-(this._modifiedScrollOffsetAnimated.get()-this._originalScrollOffsetAnimated.read(w))-(this._modifiedTopPadding.get()-this._originalTopPadding.read(w));S!==this._editors.original.getScrollTop()&&this._editors.original.setScrollTop(S,1)})),this._register(Jn(w=>{var S;const F=(S=this._diffModel.read(w))===null||S===void 0?void 0:S.movedTextToCompare.read(w);let L=0;if(F){const D=this._editors.original.getTopForLineNumber(F.lineRangeMapping.original.startLineNumber,!0)-this._originalTopPadding.get();L=this._editors.modified.getTopForLineNumber(F.lineRangeMapping.modified.startLineNumber,!0)-this._modifiedTopPadding.get()-D}L>0?(this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(L,void 0)):L<0?(this._modifiedTopPadding.set(-L,void 0),this._originalTopPadding.set(0,void 0)):setTimeout(()=>{this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(0,void 0)},400),this._editors.modified.hasTextFocus()?this._originalScrollOffset.set(this._modifiedScrollOffset.get()-L,void 0,!0):this._modifiedScrollOffset.set(this._originalScrollOffset.get()+L,void 0,!0)}))}};rU=sxt([gIe(8,qf),gIe(9,hu)],rU);function mIe(n,e,t,i,r,o){const s=new Lf(fIe(n,i)),a=new Lf(fIe(e,r)),l=n.getOption(67),u=e.getOption(67),c=[];let d=0,h=0;function g(m,f){for(;;){let b=s.peek(),C=a.peek();if(b&&b.lineNumber>=m&&(b=void 0),C&&C.lineNumber>=f&&(C=void 0),!b&&!C)break;const v=b?b.lineNumber-d:Number.MAX_VALUE,w=C?C.lineNumber-h:Number.MAX_VALUE;vw?(a.dequeue(),b={lineNumber:C.lineNumber-h+d,heightInPx:0}):(s.dequeue(),a.dequeue()),c.push({originalRange:vn.ofLength(b.lineNumber,1),modifiedRange:vn.ofLength(C.lineNumber,1),originalHeightInPx:l+b.heightInPx,modifiedHeightInPx:u+C.heightInPx,diff:void 0})}}for(const m of t){let w=function(S,F){var L,D,A,M;if(SV.lineNumberV+z.heightInPx,0))!==null&&D!==void 0?D:0,E=(M=(A=a.takeWhile(V=>V.lineNumberV+z.heightInPx,0))!==null&&M!==void 0?M:0;c.push({originalRange:W,modifiedRange:Z,originalHeightInPx:W.length*l+T,modifiedHeightInPx:Z.length*u+E,diff:m.lineRangeMapping}),v=S,C=F};const f=m.lineRangeMapping;g(f.original.startLineNumber,f.modified.startLineNumber);let b=!0,C=f.modified.startLineNumber,v=f.original.startLineNumber;if(o)for(const S of f.innerChanges||[]){S.originalRange.startColumn>1&&S.modifiedRange.startColumn>1&&w(S.originalRange.startLineNumber,S.modifiedRange.startLineNumber);const F=n.getModel(),L=S.originalRange.endLineNumber<=F.getLineCount()?F.getLineMaxColumn(S.originalRange.endLineNumber):Number.MAX_SAFE_INTEGER;S.originalRange.endColumn1&&i.push({lineNumber:l,heightInPx:s*(u-1)})}for(const l of n.getWhitespaces()){if(e.has(l.id))continue;const u=l.afterLineNumber===0?0:o.convertViewPositionToModelPosition(new ve(l.afterLineNumber,1)).lineNumber;t.push({lineNumber:u,heightInPx:l.height})}return eSt(t,i,l=>l.lineNumber,(l,u)=>({lineNumber:l.lineNumber,heightInPx:l.heightInPx+u.heightInPx}))}var axt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},lxt=function(n,e){return function(t,i){e(t,i,n)}},Dd;let bv=Dd=class extends De{constructor(e,t,i,r,o,s,a){super(),this._editors=e,this._rootElement=t,this._diffModel=i,this._rootWidth=r,this._rootHeight=o,this._modifiedEditorLayoutInfo=s,this._themeService=a,this.width=Dd.ENTIRE_DIFF_OVERVIEW_WIDTH;const l=mr(this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme()),u=gn(h=>{const g=l.read(h),m=g.getColor(Lbt)||(g.getColor(Sbt)||VH).transparent(2),f=g.getColor(Fbt)||(g.getColor(xbt)||XH).transparent(2);return{insertColor:m,removeColor:f}}),c=Si(document.createElement("div"));c.setClassName("diffViewport"),c.setPosition("absolute");const d=Xi("div.diffOverview",{style:{position:"absolute",top:"0px",width:Dd.ENTIRE_DIFF_OVERVIEW_WIDTH+"px"}}).root;this._register(XE(d,c.domNode)),this._register(Gr(d,at.POINTER_DOWN,h=>{this._editors.modified.delegateVerticalScrollbarPointerDown(h)})),this._register(Ve(d,at.MOUSE_WHEEL,h=>{this._editors.modified.delegateScrollFromMouseWheelEvent(h)},{passive:!1})),this._register(XE(this._rootElement,d)),this._register(kh((h,g)=>{const m=this._diffModel.read(h),f=this._editors.original.createOverviewRuler("original diffOverviewRuler");f&&(g.add(f),g.add(XE(d,f.getDomNode())));const b=this._editors.modified.createOverviewRuler("modified diffOverviewRuler");if(b&&(g.add(b),g.add(XE(d,b.getDomNode()))),!f||!b)return;const C=il("viewZoneChanged",this._editors.original.onDidChangeViewZones),v=il("viewZoneChanged",this._editors.modified.onDidChangeViewZones),w=il("hiddenRangesChanged",this._editors.original.onDidChangeHiddenAreas),S=il("hiddenRangesChanged",this._editors.modified.onDidChangeHiddenAreas);g.add(Jn(F=>{var L;C.read(F),v.read(F),w.read(F),S.read(F);const D=u.read(F),A=(L=m==null?void 0:m.diff.read(F))===null||L===void 0?void 0:L.mappings;function M(T,E,V){const z=V._getViewModel();return z?T.filter(O=>O.length>0).map(O=>{const P=z.coordinatesConverter.convertModelPositionToViewPosition(new ve(O.startLineNumber,1)),B=z.coordinatesConverter.convertModelPositionToViewPosition(new ve(O.endLineNumberExclusive,1)),Y=B.lineNumber-P.lineNumber;return new ACe(P.lineNumber,B.lineNumber,Y,E.toString())}):[]}const W=M((A||[]).map(T=>T.lineRangeMapping.original),D.removeColor,this._editors.original),Z=M((A||[]).map(T=>T.lineRangeMapping.modified),D.insertColor,this._editors.modified);f==null||f.setZones(W),b==null||b.setZones(Z)})),g.add(Jn(F=>{const L=this._rootHeight.read(F),D=this._rootWidth.read(F),A=this._modifiedEditorLayoutInfo.read(F);if(A){const M=Dd.ENTIRE_DIFF_OVERVIEW_WIDTH-2*Dd.ONE_OVERVIEW_WIDTH;f.setLayout({top:0,height:L,right:M+Dd.ONE_OVERVIEW_WIDTH,width:Dd.ONE_OVERVIEW_WIDTH}),b.setLayout({top:0,height:L,right:0,width:Dd.ONE_OVERVIEW_WIDTH});const W=this._editors.modifiedScrollTop.read(F),Z=this._editors.modifiedScrollHeight.read(F),T=this._editors.modified.getOption(103),E=new W2(T.verticalHasArrows?T.arrowSize:0,T.verticalScrollbarSize,0,A.height,Z,W);c.setTop(E.getSliderPosition()),c.setHeight(E.getSliderSize())}else c.setTop(0),c.setHeight(0);d.style.height=L+"px",d.style.left=D-Dd.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",c.setWidth(Dd.ENTIRE_DIFF_OVERVIEW_WIDTH)}))}))}};bv.ONE_OVERVIEW_WIDTH=15,bv.ENTIRE_DIFF_OVERVIEW_WIDTH=Dd.ONE_OVERVIEW_WIDTH*2,bv=Dd=axt([lxt(6,ts)],bv);const pIe=Un("progressService");class ep{constructor(e){this.callback=e}report(e){this._value=e,this.callback(this._value)}}ep.None=Object.freeze({report(){}});const u0=Un("editorProgressService");class jE extends De{constructor(){super(...arguments),this._id=++jE.idCounter,this._onDidDispose=this._register(new be),this.onDidDispose=this._onDidDispose.event}getId(){return this.getEditorType()+":v2:"+this._id}getVisibleColumnFromPosition(e){return this._targetEditor.getVisibleColumnFromPosition(e)}getPosition(){return this._targetEditor.getPosition()}setPosition(e,t="api"){this._targetEditor.setPosition(e,t)}revealLine(e,t=0){this._targetEditor.revealLine(e,t)}revealLineInCenter(e,t=0){this._targetEditor.revealLineInCenter(e,t)}revealLineInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealLineInCenterIfOutsideViewport(e,t)}revealLineNearTop(e,t=0){this._targetEditor.revealLineNearTop(e,t)}revealPosition(e,t=0){this._targetEditor.revealPosition(e,t)}revealPositionInCenter(e,t=0){this._targetEditor.revealPositionInCenter(e,t)}revealPositionInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealPositionInCenterIfOutsideViewport(e,t)}revealPositionNearTop(e,t=0){this._targetEditor.revealPositionNearTop(e,t)}getSelection(){return this._targetEditor.getSelection()}getSelections(){return this._targetEditor.getSelections()}setSelection(e,t="api"){this._targetEditor.setSelection(e,t)}setSelections(e,t="api"){this._targetEditor.setSelections(e,t)}revealLines(e,t,i=0){this._targetEditor.revealLines(e,t,i)}revealLinesInCenter(e,t,i=0){this._targetEditor.revealLinesInCenter(e,t,i)}revealLinesInCenterIfOutsideViewport(e,t,i=0){this._targetEditor.revealLinesInCenterIfOutsideViewport(e,t,i)}revealLinesNearTop(e,t,i=0){this._targetEditor.revealLinesNearTop(e,t,i)}revealRange(e,t=0,i=!1,r=!0){this._targetEditor.revealRange(e,t,i,r)}revealRangeInCenter(e,t=0){this._targetEditor.revealRangeInCenter(e,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealRangeInCenterIfOutsideViewport(e,t)}revealRangeNearTop(e,t=0){this._targetEditor.revealRangeNearTop(e,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this._targetEditor.revealRangeNearTopIfOutsideViewport(e,t)}revealRangeAtTop(e,t=0){this._targetEditor.revealRangeAtTop(e,t)}getSupportedActions(){return this._targetEditor.getSupportedActions()}focus(){this._targetEditor.focus()}trigger(e,t,i){this._targetEditor.trigger(e,t,i)}createDecorationsCollection(e){return this._targetEditor.createDecorationsCollection(e)}changeDecorations(e){return this._targetEditor.changeDecorations(e)}}jE.idCounter=0;var uxt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},bIe=function(n,e){return function(t,i){e(t,i,n)}};let oU=class extends De{get onDidContentSizeChange(){return this._onDidContentSizeChange.event}constructor(e,t,i,r,o,s,a){super(),this.originalEditorElement=e,this.modifiedEditorElement=t,this._options=i,this._createInnerEditor=o,this._instantiationService=s,this._keybindingService=a,this._onDidContentSizeChange=this._register(new be),this.original=this._register(this._createLeftHandSideEditor(i.editorOptions.get(),r.originalEditor||{})),this.modified=this._register(this._createRightHandSideEditor(i.editorOptions.get(),r.modifiedEditor||{})),this.modifiedModel=mr(this.modified.onDidChangeModel,()=>this.modified.getModel()),this.modifiedScrollTop=mr(this.modified.onDidScrollChange,()=>this.modified.getScrollTop()),this.modifiedScrollHeight=mr(this.modified.onDidScrollChange,()=>this.modified.getScrollHeight()),this.modifiedSelections=mr(this.modified.onDidChangeCursorSelection,()=>{var l;return(l=this.modified.getSelections())!==null&&l!==void 0?l:[]}),this.modifiedCursor=q2({owner:this,equalityComparer:ve.equals},l=>{var u,c;return(c=(u=this.modifiedSelections.read(l)[0])===null||u===void 0?void 0:u.getPosition())!==null&&c!==void 0?c:new ve(1,1)}),this.originalCursor=mr(this.original.onDidChangeCursorPosition,()=>{var l;return(l=this.original.getPosition())!==null&&l!==void 0?l:new ve(1,1)}),this._register(hD({createEmptyChangeSummary:()=>({}),handleChange:(l,u)=>(l.didChange(i.editorOptions)&&Object.assign(u,l.change.changedOptions),!0)},(l,u)=>{i.editorOptions.read(l),this._options.renderSideBySide.read(l),this.modified.updateOptions(this._adjustOptionsForRightHandSide(l,u)),this.original.updateOptions(this._adjustOptionsForLeftHandSide(l,u))}))}_createLeftHandSideEditor(e,t){const i=this._adjustOptionsForLeftHandSide(void 0,e),r=this._constructInnerEditor(this._instantiationService,this.originalEditorElement,i,t);return r.setContextValue("isInDiffLeftEditor",!0),r}_createRightHandSideEditor(e,t){const i=this._adjustOptionsForRightHandSide(void 0,e),r=this._constructInnerEditor(this._instantiationService,this.modifiedEditorElement,i,t);return r.setContextValue("isInDiffRightEditor",!0),r}_constructInnerEditor(e,t,i,r){const o=this._createInnerEditor(e,t,i,r);return this._register(o.onDidContentSizeChange(s=>{const a=this.original.getContentWidth()+this.modified.getContentWidth()+bv.ENTIRE_DIFF_OVERVIEW_WIDTH,l=Math.max(this.modified.getContentHeight(),this.original.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:l,contentWidth:a,contentHeightChanged:s.contentHeightChanged,contentWidthChanged:s.contentWidthChanged})})),o}_adjustOptionsForLeftHandSide(e,t){const i=this._adjustOptionsForSubEditor(t);return this._options.renderSideBySide.get()?(i.unicodeHighlight=this._options.editorOptions.get().unicodeHighlight||{},i.wordWrapOverride1=this._options.diffWordWrap.get()):(i.wordWrapOverride1="off",i.wordWrapOverride2="off",i.stickyScroll={enabled:!1},i.unicodeHighlight={nonBasicASCII:!1,ambiguousCharacters:!1,invisibleCharacters:!1}),i.glyphMargin=this._options.renderSideBySide.get(),t.originalAriaLabel&&(i.ariaLabel=t.originalAriaLabel),i.ariaLabel=this._updateAriaLabel(i.ariaLabel),i.readOnly=!this._options.originalEditable.get(),i.dropIntoEditor={enabled:!i.readOnly},i.extraEditorClassName="original-in-monaco-diff-editor",i}_adjustOptionsForRightHandSide(e,t){const i=this._adjustOptionsForSubEditor(t);return t.modifiedAriaLabel&&(i.ariaLabel=t.modifiedAriaLabel),i.ariaLabel=this._updateAriaLabel(i.ariaLabel),i.wordWrapOverride1=this._options.diffWordWrap.get(),i.revealHorizontalRightPadding=xh.revealHorizontalRightPadding.defaultValue+bv.ENTIRE_DIFF_OVERVIEW_WIDTH,i.scrollbar.verticalHasArrows=!1,i.extraEditorClassName="modified-in-monaco-diff-editor",i}_adjustOptionsForSubEditor(e){const t={...e,dimension:{height:0,width:0}};return t.inDiffEditor=!0,t.automaticLayout=!1,t.scrollbar={...t.scrollbar||{}},t.folding=!1,t.codeLens=this._options.diffCodeLens.get(),t.fixedOverflowWidgets=!0,t.minimap={...t.minimap||{}},t.minimap.enabled=!1,this._options.hideUnchangedRegions.get()?t.stickyScroll={enabled:!1}:t.stickyScroll=this._options.editorOptions.get().stickyScroll,t}_updateAriaLabel(e){var t;e||(e="");const i=x("diff-aria-navigation-tip"," use {0} to open the accessibility help.",(t=this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp"))===null||t===void 0?void 0:t.getAriaLabel());return this._options.accessibilityVerbose.get()?e+i:e?e.replaceAll(i,""):""}};oU=uxt([bIe(5,tn),bIe(6,Pi)],oU);const Fa={enableSplitViewResizing:!0,splitViewDefaultRatio:.5,renderSideBySide:!0,renderMarginRevertIcon:!0,maxComputationTime:5e3,maxFileSize:50,ignoreTrimWhitespace:!0,renderIndicators:!0,originalEditable:!1,diffCodeLens:!1,renderOverviewRuler:!0,diffWordWrap:"inherit",diffAlgorithm:"advanced",accessibilityVerbose:!1,experimental:{showMoves:!1,showEmptyDecorations:!0},hideUnchangedRegions:{enabled:!1,contextLineCount:3,minimumLineCount:3,revealLineCount:20},isInEmbeddedEditor:!1,onlyShowAccessibleDiffViewer:!1,renderSideBySideInlineBreakpoint:900,useInlineViewWhenSpaceIsLimited:!0};class cxt{get editorOptions(){return this._options}constructor(e){this._diffEditorWidth=ci(this,0),this.couldShowInlineViewBecauseOfSize=gn(this,i=>this._options.read(i).renderSideBySide&&this._diffEditorWidth.read(i)<=this._options.read(i).renderSideBySideInlineBreakpoint),this.renderOverviewRuler=gn(this,i=>this._options.read(i).renderOverviewRuler),this.renderSideBySide=gn(this,i=>this._options.read(i).renderSideBySide&&!(this._options.read(i).useInlineViewWhenSpaceIsLimited&&this.couldShowInlineViewBecauseOfSize.read(i))),this.readOnly=gn(this,i=>this._options.read(i).readOnly),this.shouldRenderRevertArrows=gn(this,i=>!(!this._options.read(i).renderMarginRevertIcon||!this.renderSideBySide.read(i)||this.readOnly.read(i))),this.renderIndicators=gn(this,i=>this._options.read(i).renderIndicators),this.enableSplitViewResizing=gn(this,i=>this._options.read(i).enableSplitViewResizing),this.splitViewDefaultRatio=gn(this,i=>this._options.read(i).splitViewDefaultRatio),this.ignoreTrimWhitespace=gn(this,i=>this._options.read(i).ignoreTrimWhitespace),this.maxComputationTimeMs=gn(this,i=>this._options.read(i).maxComputationTime),this.showMoves=gn(this,i=>this._options.read(i).experimental.showMoves&&this.renderSideBySide.read(i)),this.isInEmbeddedEditor=gn(this,i=>this._options.read(i).isInEmbeddedEditor),this.diffWordWrap=gn(this,i=>this._options.read(i).diffWordWrap),this.originalEditable=gn(this,i=>this._options.read(i).originalEditable),this.diffCodeLens=gn(this,i=>this._options.read(i).diffCodeLens),this.accessibilityVerbose=gn(this,i=>this._options.read(i).accessibilityVerbose),this.diffAlgorithm=gn(this,i=>this._options.read(i).diffAlgorithm),this.showEmptyDecorations=gn(this,i=>this._options.read(i).experimental.showEmptyDecorations),this.onlyShowAccessibleDiffViewer=gn(this,i=>this._options.read(i).onlyShowAccessibleDiffViewer),this.hideUnchangedRegions=gn(this,i=>this._options.read(i).hideUnchangedRegions.enabled),this.hideUnchangedRegionsRevealLineCount=gn(this,i=>this._options.read(i).hideUnchangedRegions.revealLineCount),this.hideUnchangedRegionsContextLineCount=gn(this,i=>this._options.read(i).hideUnchangedRegions.contextLineCount),this.hideUnchangedRegionsMinimumLineCount=gn(this,i=>this._options.read(i).hideUnchangedRegions.minimumLineCount);const t={...e,...CIe(e,Fa)};this._options=ci(this,t)}updateOptions(e){const t=CIe(e,this._options.get()),i={...this._options.get(),...e,...t};this._options.set(i,void 0,{changedOptions:e})}setWidth(e){this._diffEditorWidth.set(e,void 0)}}function CIe(n,e){var t,i,r,o,s,a,l,u;return{enableSplitViewResizing:Pt(n.enableSplitViewResizing,e.enableSplitViewResizing),splitViewDefaultRatio:Oft(n.splitViewDefaultRatio,.5,.1,.9),renderSideBySide:Pt(n.renderSideBySide,e.renderSideBySide),renderMarginRevertIcon:Pt(n.renderMarginRevertIcon,e.renderMarginRevertIcon),maxComputationTime:VC(n.maxComputationTime,e.maxComputationTime,0,1073741824),maxFileSize:VC(n.maxFileSize,e.maxFileSize,0,1073741824),ignoreTrimWhitespace:Pt(n.ignoreTrimWhitespace,e.ignoreTrimWhitespace),renderIndicators:Pt(n.renderIndicators,e.renderIndicators),originalEditable:Pt(n.originalEditable,e.originalEditable),diffCodeLens:Pt(n.diffCodeLens,e.diffCodeLens),renderOverviewRuler:Pt(n.renderOverviewRuler,e.renderOverviewRuler),diffWordWrap:Or(n.diffWordWrap,e.diffWordWrap,["off","on","inherit"]),diffAlgorithm:Or(n.diffAlgorithm,e.diffAlgorithm,["legacy","advanced"],{smart:"legacy",experimental:"advanced"}),accessibilityVerbose:Pt(n.accessibilityVerbose,e.accessibilityVerbose),experimental:{showMoves:Pt((t=n.experimental)===null||t===void 0?void 0:t.showMoves,e.experimental.showMoves),showEmptyDecorations:Pt((i=n.experimental)===null||i===void 0?void 0:i.showEmptyDecorations,e.experimental.showEmptyDecorations)},hideUnchangedRegions:{enabled:Pt((o=(r=n.hideUnchangedRegions)===null||r===void 0?void 0:r.enabled)!==null&&o!==void 0?o:(s=n.experimental)===null||s===void 0?void 0:s.collapseUnchangedRegions,e.hideUnchangedRegions.enabled),contextLineCount:VC((a=n.hideUnchangedRegions)===null||a===void 0?void 0:a.contextLineCount,e.hideUnchangedRegions.contextLineCount,0,1073741824),minimumLineCount:VC((l=n.hideUnchangedRegions)===null||l===void 0?void 0:l.minimumLineCount,e.hideUnchangedRegions.minimumLineCount,0,1073741824),revealLineCount:VC((u=n.hideUnchangedRegions)===null||u===void 0?void 0:u.revealLineCount,e.hideUnchangedRegions.revealLineCount,0,1073741824)},isInEmbeddedEditor:Pt(n.isInEmbeddedEditor,e.isInEmbeddedEditor),onlyShowAccessibleDiffViewer:Pt(n.onlyShowAccessibleDiffViewer,e.onlyShowAccessibleDiffViewer),renderSideBySideInlineBreakpoint:VC(n.renderSideBySideInlineBreakpoint,e.renderSideBySideInlineBreakpoint,0,1073741824),useInlineViewWhenSpaceIsLimited:Pt(n.useInlineViewWhenSpaceIsLimited,e.useInlineViewWhenSpaceIsLimited)}}const sU=[];class dxt extends De{constructor(e,t,i,r){super(),this._editors=e,this._diffModel=t,this._options=i,this._widget=r,this._selectedDiffs=gn(this,o=>{const s=this._diffModel.read(o),a=s==null?void 0:s.diff.read(o);if(!a)return sU;const l=this._editors.modifiedSelections.read(o);if(l.every(h=>h.isEmpty()))return sU;const u=new Fd(l.map(h=>vn.fromRangeInclusive(h))),d=a.mappings.filter(h=>h.lineRangeMapping.innerChanges&&u.intersects(h.lineRangeMapping.modified)).map(h=>({mapping:h,rangeMappings:h.lineRangeMapping.innerChanges.filter(g=>l.some(m=>K.areIntersecting(g.modifiedRange,m)))}));return d.length===0||d.every(h=>h.rangeMappings.length===0)?sU:d}),this._register(kh((o,s)=>{if(!this._options.shouldRenderRevertArrows.read(o))return;const a=this._diffModel.read(o),l=a==null?void 0:a.diff.read(o);if(!a||!l||a.movedTextToCompare.read(o))return;const u=[],c=this._selectedDiffs.read(o),d=new Set(c.map(h=>h.mapping));if(c.length>0){const h=this._editors.modifiedSelections.read(o),g=s.add(new xD(h[h.length-1].positionLineNumber,this._widget,c.flatMap(m=>m.rangeMappings),!0));this._editors.modified.addGlyphMarginWidget(g),u.push(g)}for(const h of l.mappings)if(!d.has(h)&&!h.lineRangeMapping.modified.isEmpty&&h.lineRangeMapping.innerChanges){const g=s.add(new xD(h.lineRangeMapping.modified.startLineNumber,this._widget,h.lineRangeMapping.innerChanges,!1));this._editors.modified.addGlyphMarginWidget(g),u.push(g)}s.add(en(()=>{for(const h of u)this._editors.modified.removeGlyphMarginWidget(h)}))}))}}class xD extends De{getId(){return this._id}constructor(e,t,i,r){super(),this._lineNumber=e,this._widget=t,this._diffs=i,this._revertSelection=r,this._id=`revertButton${xD.counter++}`,this._domNode=Xi("div.revertButton",{title:this._revertSelection?x("revertSelectedChanges","Revert Selected Changes"):x("revertChange","Revert Change")},[pD(ct.arrowRight)]).root,this._register(Ve(this._domNode,at.MOUSE_DOWN,o=>{o.button!==2&&(o.stopPropagation(),o.preventDefault())})),this._register(Ve(this._domNode,at.MOUSE_UP,o=>{o.stopPropagation(),o.preventDefault()})),this._register(Ve(this._domNode,at.CLICK,o=>{this._widget.revertRangeMappings(this._diffs),o.stopPropagation(),o.preventDefault()}))}getDomNode(){return this._domNode}getPosition(){return{lane:Qg.Right,range:{startColumn:1,startLineNumber:this._lineNumber,endColumn:1,endLineNumber:this._lineNumber},zIndex:10001}}}xD.counter=0;var hxt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},LD=function(n,e){return function(t,i){e(t,i,n)}};let c0=class extends jE{get onDidContentSizeChange(){return this._editors.onDidContentSizeChange}constructor(e,t,i,r,o,s,a,l){var u;super(),this._domElement=e,this._parentContextKeyService=r,this._parentInstantiationService=o,this._accessibilitySignalService=a,this._editorProgressService=l,this.elements=Xi("div.monaco-diff-editor.side-by-side",{style:{position:"relative",height:"100%"}},[Xi("div.noModificationsOverlay@overlay",{style:{position:"absolute",height:"100%",visibility:"hidden"}},[vt("span",{},"No Changes")]),Xi("div.editor.original@original",{style:{position:"absolute",height:"100%"}}),Xi("div.editor.modified@modified",{style:{position:"absolute",height:"100%"}}),Xi("div.accessibleDiffViewer@accessibleDiffViewer",{style:{position:"absolute",height:"100%"}})]),this._diffModel=ci(this,void 0),this._shouldDisposeDiffModel=!1,this.onDidChangeModel=ft.fromObservableLight(this._diffModel),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._domElement)),this._instantiationService=this._parentInstantiationService.createChild(new aD([ln,this._contextKeyService])),this._boundarySashes=ci(this,void 0),this._accessibleDiffViewerShouldBeVisible=ci(this,!1),this._accessibleDiffViewerVisible=gn(this,S=>this._options.onlyShowAccessibleDiffViewer.read(S)?!0:this._accessibleDiffViewerShouldBeVisible.read(S)),this._movedBlocksLinesPart=ci(this,void 0),this._layoutInfo=gn(this,S=>{var F,L,D,A,M;const W=this._rootSizeObserver.width.read(S),Z=this._rootSizeObserver.height.read(S),T=(F=this._sash.read(S))===null||F===void 0?void 0:F.sashLeft.read(S),E=T??Math.max(5,this._editors.original.getLayoutInfo().decorationsLeft),V=W-E-((D=(L=this._overviewRulerPart.read(S))===null||L===void 0?void 0:L.width)!==null&&D!==void 0?D:0),z=(M=(A=this._movedBlocksLinesPart.read(S))===null||A===void 0?void 0:A.width.read(S))!==null&&M!==void 0?M:0,O=E-z;return this.elements.original.style.width=O+"px",this.elements.original.style.left="0px",this.elements.modified.style.width=V+"px",this.elements.modified.style.left=E+"px",this._editors.original.layout({width:O,height:Z},!0),this._editors.modified.layout({width:V,height:Z},!0),{modifiedEditor:this._editors.modified.getLayoutInfo(),originalEditor:this._editors.original.getLayoutInfo()}}),this._diffValue=this._diffModel.map((S,F)=>S==null?void 0:S.diff.read(F)),this.onDidUpdateDiff=ft.fromObservableLight(this._diffValue),s.willCreateDiffEditor(),this._contextKeyService.createKey("isInDiffEditor",!0),this._domElement.appendChild(this.elements.root),this._register(en(()=>this._domElement.removeChild(this.elements.root))),this._rootSizeObserver=this._register(new Nye(this.elements.root,t.dimension)),this._rootSizeObserver.setAutomaticLayout((u=t.automaticLayout)!==null&&u!==void 0?u:!1),this._options=new cxt(t),this._register(Jn(S=>{this._options.setWidth(this._rootSizeObserver.width.read(S))})),this._contextKeyService.createKey(ne.isEmbeddedDiffEditor.key,!1),this._register(zE(ne.isEmbeddedDiffEditor,this._contextKeyService,S=>this._options.isInEmbeddedEditor.read(S))),this._register(zE(ne.comparingMovedCode,this._contextKeyService,S=>{var F;return!!(!((F=this._diffModel.read(S))===null||F===void 0)&&F.movedTextToCompare.read(S))})),this._register(zE(ne.diffEditorRenderSideBySideInlineBreakpointReached,this._contextKeyService,S=>this._options.couldShowInlineViewBecauseOfSize.read(S))),this._register(zE(ne.hasChanges,this._contextKeyService,S=>{var F,L,D;return((D=(L=(F=this._diffModel.read(S))===null||F===void 0?void 0:F.diff.read(S))===null||L===void 0?void 0:L.mappings.length)!==null&&D!==void 0?D:0)>0})),this._editors=this._register(this._instantiationService.createInstance(oU,this.elements.original,this.elements.modified,this._options,i,(S,F,L,D)=>this._createInnerEditor(S,F,L,D))),this._overviewRulerPart=Qb(this,S=>this._options.renderOverviewRuler.read(S)?this._instantiationService.createInstance(dm(bv,S),this._editors,this.elements.root,this._diffModel,this._rootSizeObserver.width,this._rootSizeObserver.height,this._layoutInfo.map(F=>F.modifiedEditor)):void 0).recomputeInitiallyAndOnChange(this._store),this._sash=Qb(this,S=>{const F=this._options.renderSideBySide.read(S);return this.elements.root.classList.toggle("side-by-side",F),F?new MSt(this._options,this.elements.root,{height:this._rootSizeObserver.height,width:this._rootSizeObserver.width.map((L,D)=>{var A,M;return L-((M=(A=this._overviewRulerPart.read(D))===null||A===void 0?void 0:A.width)!==null&&M!==void 0?M:0)})},this._boundarySashes):void 0}).recomputeInitiallyAndOnChange(this._store);const c=Qb(this,S=>this._instantiationService.createInstance(dm(wD,S),this._editors,this._diffModel,this._options)).recomputeInitiallyAndOnChange(this._store);Qb(this,S=>this._instantiationService.createInstance(dm(FSt,S),this._editors,this._diffModel,this._options,this)).recomputeInitiallyAndOnChange(this._store);const d=new Set,h=new Set;let g=!1;const m=Qb(this,S=>this._instantiationService.createInstance(dm(rU,S),qt(this._domElement),this._editors,this._diffModel,this._options,this,()=>g||c.get().isUpdatingHiddenAreas,d,h)).recomputeInitiallyAndOnChange(this._store),f=gn(this,S=>{const F=m.read(S).viewZones.read(S).orig,L=c.read(S).viewZones.read(S).origViewZones;return F.concat(L)}),b=gn(this,S=>{const F=m.read(S).viewZones.read(S).mod,L=c.read(S).viewZones.read(S).modViewZones;return F.concat(L)});this._register(BE(this._editors.original,f,S=>{g=S},d));let C;this._register(BE(this._editors.modified,b,S=>{g=S,g?C=Mh.capture(this._editors.modified):(C==null||C.restore(this._editors.modified),C=void 0)},h)),this._accessibleDiffViewer=Qb(this,S=>this._instantiationService.createInstance(dm(s0,S),this.elements.accessibleDiffViewer,this._accessibleDiffViewerVisible,(F,L)=>this._accessibleDiffViewerShouldBeVisible.set(F,L),this._options.onlyShowAccessibleDiffViewer.map(F=>!F),this._rootSizeObserver.width,this._rootSizeObserver.height,this._diffModel.map((F,L)=>{var D;return(D=F==null?void 0:F.diff.read(L))===null||D===void 0?void 0:D.mappings.map(A=>A.lineRangeMapping)}),new ySt(this._editors))).recomputeInitiallyAndOnChange(this._store);const v=this._accessibleDiffViewerVisible.map(S=>S?"hidden":"visible");this._register(i0(this.elements.modified,{visibility:v})),this._register(i0(this.elements.original,{visibility:v})),this._createDiffEditorContributions(),s.addDiffEditor(this),this._register(gD(this._layoutInfo)),Qb(this,S=>new(dm(a0,S))(this.elements.root,this._diffModel,this._layoutInfo.map(F=>F.originalEditor),this._layoutInfo.map(F=>F.modifiedEditor),this._editors)).recomputeInitiallyAndOnChange(this._store,S=>{this._movedBlocksLinesPart.set(S,void 0)}),this._register(i0(this.elements.overlay,{width:this._layoutInfo.map((S,F)=>S.originalEditor.width+(this._options.renderSideBySide.read(F)?0:S.modifiedEditor.width)),visibility:gn(S=>{var F,L;return this._options.hideUnchangedRegions.read(S)&&((L=(F=this._diffModel.read(S))===null||F===void 0?void 0:F.diff.read(S))===null||L===void 0?void 0:L.mappings.length)===0?"visible":"hidden"})})),this._register(ft.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition,S=>{var F,L;if((S==null?void 0:S.reason)===3){const D=(L=(F=this._diffModel.get())===null||F===void 0?void 0:F.diff.get())===null||L===void 0?void 0:L.mappings.find(A=>A.lineRangeMapping.modified.contains(S.position.lineNumber));D!=null&&D.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(Dn.diffLineDeleted,{source:"diffEditor.cursorPositionChanged"}):D!=null&&D.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(Dn.diffLineInserted,{source:"diffEditor.cursorPositionChanged"}):D&&this._accessibilitySignalService.playSignal(Dn.diffLineModified,{source:"diffEditor.cursorPositionChanged"})}}));const w=this._diffModel.map(this,(S,F)=>{if(S)return S.diff.read(F)===void 0&&!S.isDiffUpToDate.read(F)});this._register(kh((S,F)=>{if(w.read(S)===!0){const L=this._editorProgressService.show(!0,1e3);F.add(en(()=>L.done()))}})),this._register(en(()=>{var S;this._shouldDisposeDiffModel&&((S=this._diffModel.get())===null||S===void 0||S.dispose())})),this._register(new dxt(this._editors,this._diffModel,this._options,this))}_createInnerEditor(e,t,i,r){return e.createInstance(Q2,t,i,r)}_createDiffEditorContributions(){const e=o2.getDiffEditorContributions();for(const t of e)try{this._register(this._instantiationService.createInstance(t.ctor,this))}catch(i){fn(i)}}get _targetEditor(){return this._editors.modified}getEditorType(){return P_.IDiffEditor}layout(e){this._rootSizeObserver.observe(e)}hasTextFocus(){return this._editors.original.hasTextFocus()||this._editors.modified.hasTextFocus()}saveViewState(){var e;const t=this._editors.original.saveViewState(),i=this._editors.modified.saveViewState();return{original:t,modified:i,modelState:(e=this._diffModel.get())===null||e===void 0?void 0:e.serializeState()}}restoreViewState(e){var t;if(e&&e.original&&e.modified){const i=e;this._editors.original.restoreViewState(i.original),this._editors.modified.restoreViewState(i.modified),i.modelState&&((t=this._diffModel.get())===null||t===void 0||t.restoreSerializedState(i.modelState))}}handleInitialized(){this._editors.original.handleInitialized(),this._editors.modified.handleInitialized()}createViewModel(e){return this._instantiationService.createInstance(tU,e,this._options)}getModel(){var e,t;return(t=(e=this._diffModel.get())===null||e===void 0?void 0:e.model)!==null&&t!==void 0?t:null}setModel(e,t){!e&&this._diffModel.get()&&this._accessibleDiffViewer.get().close();const i=e?"model"in e?{model:e,shouldDispose:!1}:{model:this.createViewModel(e),shouldDispose:!0}:void 0;this._diffModel.get()!==(i==null?void 0:i.model)&&cD(t,r=>{var o;mr.batchEventsGlobally(r,()=>{this._editors.original.setModel(i?i.model.model.original:null),this._editors.modified.setModel(i?i.model.model.modified:null)});const s=this._diffModel.get(),a=this._shouldDisposeDiffModel;this._shouldDisposeDiffModel=(o=i==null?void 0:i.shouldDispose)!==null&&o!==void 0?o:!1,this._diffModel.set(i==null?void 0:i.model,r),a&&(s==null||s.dispose())})}updateOptions(e){this._options.updateOptions(e)}getContainerDomNode(){return this._domElement}getOriginalEditor(){return this._editors.original}getModifiedEditor(){return this._editors.modified}getLineChanges(){var e;const t=(e=this._diffModel.get())===null||e===void 0?void 0:e.diff.get();return t?gxt(t):null}revert(e){if(e.innerChanges){this.revertRangeMappings(e.innerChanges);return}const t=this._diffModel.get();!t||!t.isDiffUpToDate.get()||this._editors.modified.executeEdits("diffEditor",[{range:e.modified.toExclusiveRange(),text:t.model.original.getValueInRange(e.original.toExclusiveRange())}])}revertRangeMappings(e){const t=this._diffModel.get();if(!t||!t.isDiffUpToDate.get())return;const i=e.map(r=>({range:r.modifiedRange,text:t.model.original.getValueInRange(r.originalRange)}));this._editors.modified.executeEdits("diffEditor",i)}_goTo(e){this._editors.modified.setPosition(new ve(e.lineRangeMapping.modified.startLineNumber,1)),this._editors.modified.revealRangeInCenter(e.lineRangeMapping.modified.toExclusiveRange())}goToDiff(e){var t,i,r,o;const s=(i=(t=this._diffModel.get())===null||t===void 0?void 0:t.diff.get())===null||i===void 0?void 0:i.mappings;if(!s||s.length===0)return;const a=this._editors.modified.getPosition().lineNumber;let l;e==="next"?l=(r=s.find(u=>u.lineRangeMapping.modified.startLineNumber>a))!==null&&r!==void 0?r:s[0]:l=(o=YT(s,u=>u.lineRangeMapping.modified.startLineNumber{var t;const i=(t=e.diff.get())===null||t===void 0?void 0:t.mappings;!i||i.length===0||this._goTo(i[0])})}accessibleDiffViewerNext(){this._accessibleDiffViewer.get().next()}accessibleDiffViewerPrev(){this._accessibleDiffViewer.get().prev()}async waitForDiff(){const e=this._diffModel.get();e&&await e.waitForDiff()}mapToOtherSide(){var e,t;const i=this._editors.modified.hasWidgetFocus(),r=i?this._editors.modified:this._editors.original,o=i?this._editors.original:this._editors.modified;let s;const a=r.getSelection();if(a){const l=(t=(e=this._diffModel.get())===null||e===void 0?void 0:e.diff.get())===null||t===void 0?void 0:t.mappings.map(u=>i?u.lineRangeMapping.flip():u.lineRangeMapping);if(l){const u=Zye(a.getStartPosition(),l),c=Zye(a.getEndPosition(),l);s=K.plusRange(u,c)}}return{destination:o,destinationSelection:s}}switchSide(){const{destination:e,destinationSelection:t}=this.mapToOtherSide();e.focus(),t&&e.setSelection(t)}exitCompareMove(){const e=this._diffModel.get();e&&e.movedTextToCompare.set(void 0,void 0)}collapseAllUnchangedRegions(){var e;const t=(e=this._diffModel.get())===null||e===void 0?void 0:e.unchangedRegions.get();t&&rr(i=>{for(const r of t)r.collapseAll(i)})}showAllUnchangedRegions(){var e;const t=(e=this._diffModel.get())===null||e===void 0?void 0:e.unchangedRegions.get();t&&rr(i=>{for(const r of t)r.showAll(i)})}};c0=hxt([LD(3,ln),LD(4,tn),LD(5,yi),LD(6,o0),LD(7,u0)],c0);function gxt(n){return n.mappings.map(e=>{const t=e.lineRangeMapping;let i,r,o,s,a=t.innerChanges;return t.original.isEmpty?(i=t.original.startLineNumber-1,r=0,a=void 0):(i=t.original.startLineNumber,r=t.original.endLineNumberExclusive-1),t.modified.isEmpty?(o=t.modified.startLineNumber-1,s=0,a=void 0):(o=t.modified.startLineNumber,s=t.modified.endLineNumberExclusive-1),{originalStartLineNumber:i,originalEndLineNumber:r,modifiedStartLineNumber:o,modifiedEndLineNumber:s,charChanges:a==null?void 0:a.map(l=>({originalStartLineNumber:l.originalRange.startLineNumber,originalStartColumn:l.originalRange.startColumn,originalEndLineNumber:l.originalRange.endLineNumber,originalEndColumn:l.originalRange.endColumn,modifiedStartLineNumber:l.modifiedRange.startLineNumber,modifiedStartColumn:l.modifiedRange.startColumn,modifiedEndLineNumber:l.modifiedRange.endLineNumber,modifiedEndColumn:l.modifiedRange.endColumn}))}})}class mxt extends Al{constructor(){super({id:"diffEditor.toggleCollapseUnchangedRegions",title:ai("toggleCollapseUnchangedRegions","Toggle Collapse Unchanged Regions"),icon:ct.map,toggled:Be.has("config.diffEditor.hideUnchangedRegions.enabled"),precondition:Be.has("isInDiffEditor"),menu:{when:Be.has("isInDiffEditor"),id:$.EditorTitle,order:22,group:"navigation"}})}run(e,...t){const i=e.get(Xn),r=!i.getValue("diffEditor.hideUnchangedRegions.enabled");i.updateValue("diffEditor.hideUnchangedRegions.enabled",r)}}Qi(mxt);class vIe extends Al{constructor(){super({id:"diffEditor.toggleShowMovedCodeBlocks",title:ai("toggleShowMovedCodeBlocks","Toggle Show Moved Code Blocks"),precondition:Be.has("isInDiffEditor")})}run(e,...t){const i=e.get(Xn),r=!i.getValue("diffEditor.experimental.showMoves");i.updateValue("diffEditor.experimental.showMoves",r)}}Qi(vIe);class yIe extends Al{constructor(){super({id:"diffEditor.toggleUseInlineViewWhenSpaceIsLimited",title:ai("toggleUseInlineViewWhenSpaceIsLimited","Toggle Use Inline View When Space Is Limited"),precondition:Be.has("isInDiffEditor")})}run(e,...t){const i=e.get(Xn),r=!i.getValue("diffEditor.useInlineViewWhenSpaceIsLimited");i.updateValue("diffEditor.useInlineViewWhenSpaceIsLimited",r)}}Qi(yIe),Ls.appendMenuItem($.EditorTitle,{command:{id:new yIe().desc.id,title:x("useInlineViewWhenSpaceIsLimited","Use Inline View When Space Is Limited"),toggled:Be.has("config.diffEditor.useInlineViewWhenSpaceIsLimited"),precondition:Be.has("isInDiffEditor")},order:11,group:"1_diff",when:Be.and(ne.diffEditorRenderSideBySideInlineBreakpointReached,Be.has("isInDiffEditor"))}),Ls.appendMenuItem($.EditorTitle,{command:{id:new vIe().desc.id,title:x("showMoves","Show Moved Code Blocks"),icon:ct.move,toggled:t2.create("config.diffEditor.experimental.showMoves",!0),precondition:Be.has("isInDiffEditor")},order:10,group:"1_diff",when:Be.has("isInDiffEditor")});const QE=ai("diffEditor","Diff Editor");class fxt extends Ch{constructor(){super({id:"diffEditor.switchSide",title:ai("switchSide","Switch Side"),icon:ct.arrowSwap,precondition:Be.has("isInDiffEditor"),f1:!0,category:QE})}runEditorCommand(e,t,i){const r=uw(e);if(r instanceof c0){if(i&&i.dryRun)return{destinationSelection:r.mapToOtherSide().destinationSelection};r.switchSide()}}}Qi(fxt);class pxt extends Ch{constructor(){super({id:"diffEditor.exitCompareMove",title:ai("exitCompareMove","Exit Compare Move"),icon:ct.close,precondition:ne.comparingMovedCode,f1:!1,category:QE,keybinding:{weight:1e4,primary:9}})}runEditorCommand(e,t,...i){const r=uw(e);r instanceof c0&&r.exitCompareMove()}}Qi(pxt);class bxt extends Ch{constructor(){super({id:"diffEditor.collapseAllUnchangedRegions",title:ai("collapseAllUnchangedRegions","Collapse All Unchanged Regions"),icon:ct.fold,precondition:Be.has("isInDiffEditor"),f1:!0,category:QE})}runEditorCommand(e,t,...i){const r=uw(e);r instanceof c0&&r.collapseAllUnchangedRegions()}}Qi(bxt);class Cxt extends Ch{constructor(){super({id:"diffEditor.showAllUnchangedRegions",title:ai("showAllUnchangedRegions","Show All Unchanged Regions"),icon:ct.unfold,precondition:Be.has("isInDiffEditor"),f1:!0,category:QE})}runEditorCommand(e,t,...i){const r=uw(e);r instanceof c0&&r.showAllUnchangedRegions()}}Qi(Cxt);const IIe=ai("accessibleDiffViewer","Accessible Diff Viewer");class lw extends Al{constructor(){super({id:lw.id,title:ai("editor.action.accessibleDiffViewer.next","Go to Next Difference"),category:IIe,precondition:Be.has("isInDiffEditor"),keybinding:{primary:65,weight:100},f1:!0})}run(e){const t=uw(e);t==null||t.accessibleDiffViewerNext()}}lw.id="editor.action.accessibleDiffViewer.next",Ls.appendMenuItem($.EditorTitle,{command:{id:lw.id,title:x("Open Accessible Diff Viewer","Open Accessible Diff Viewer"),precondition:Be.has("isInDiffEditor")},order:10,group:"2_diff",when:Be.and(ne.accessibleDiffViewerVisible.negate(),Be.has("isInDiffEditor"))});class FD extends Al{constructor(){super({id:FD.id,title:ai("editor.action.accessibleDiffViewer.prev","Go to Previous Difference"),category:IIe,precondition:Be.has("isInDiffEditor"),keybinding:{primary:1089,weight:100},f1:!0})}run(e){const t=uw(e);t==null||t.accessibleDiffViewerPrev()}}FD.id="editor.action.accessibleDiffViewer.prev";function uw(n){const t=n.get(yi).listDiffEditors(),i=Ys();if(i)for(const r of t){const o=r.getContainerDomNode();if(vxt(o,i))return r}return null}function vxt(n,e){let t=e;for(;t;){if(t===n)return!0;t=t.parentElement}return!1}ei.registerCommandAlias("editor.action.diffReview.next",lw.id),Qi(lw),ei.registerCommandAlias("editor.action.diffReview.prev",FD.id),Qi(FD);var yxt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Ixt=function(n,e){return function(t,i){e(t,i,n)}},aU;const $E=new It("selectionAnchorSet",!1);let tp=aU=class{static get(e){return e.getContribution(aU.ID)}constructor(e,t){this.editor=e,this.selectionAnchorSetContextKey=$E.bindTo(t),this.modelChangeListener=e.onDidChangeModel(()=>this.selectionAnchorSetContextKey.reset())}setSelectionAnchor(){if(this.editor.hasModel()){const e=this.editor.getPosition();this.editor.changeDecorations(t=>{this.decorationId&&t.removeDecoration(this.decorationId),this.decorationId=t.addDecoration(Gt.fromPositions(e,e),{description:"selection-anchor",stickiness:1,hoverMessage:new ga().appendText(x("selectionAnchor","Selection Anchor")),className:"selection-anchor"})}),this.selectionAnchorSetContextKey.set(!!this.decorationId),ou(x("anchorSet","Anchor set at {0}:{1}",e.lineNumber,e.column))}}goToSelectionAnchor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);e&&this.editor.setPosition(e.getStartPosition())}}selectFromAnchorToCursor(){if(this.editor.hasModel()&&this.decorationId){const e=this.editor.getModel().getDecorationRange(this.decorationId);if(e){const t=this.editor.getPosition();this.editor.setSelection(Gt.fromPositions(e.getStartPosition(),t)),this.cancelSelectionAnchor()}}}cancelSelectionAnchor(){if(this.decorationId){const e=this.decorationId;this.editor.changeDecorations(t=>{t.removeDecoration(e),this.decorationId=void 0}),this.selectionAnchorSetContextKey.set(!1)}}dispose(){this.cancelSelectionAnchor(),this.modelChangeListener.dispose()}};tp.ID="editor.contrib.selectionAnchorController",tp=aU=yxt([Ixt(1,ln)],tp);class wxt extends Nt{constructor(){super({id:"editor.action.setSelectionAnchor",label:x("setSelectionAnchor","Set Selection Anchor"),alias:"Set Selection Anchor",precondition:void 0,kbOpts:{kbExpr:ne.editorTextFocus,primary:ko(2089,2080),weight:100}})}async run(e,t){var i;(i=tp.get(t))===null||i===void 0||i.setSelectionAnchor()}}class Sxt extends Nt{constructor(){super({id:"editor.action.goToSelectionAnchor",label:x("goToSelectionAnchor","Go to Selection Anchor"),alias:"Go to Selection Anchor",precondition:$E})}async run(e,t){var i;(i=tp.get(t))===null||i===void 0||i.goToSelectionAnchor()}}class xxt extends Nt{constructor(){super({id:"editor.action.selectFromAnchorToCursor",label:x("selectFromAnchorToCursor","Select from Anchor to Cursor"),alias:"Select from Anchor to Cursor",precondition:$E,kbOpts:{kbExpr:ne.editorTextFocus,primary:ko(2089,2089),weight:100}})}async run(e,t){var i;(i=tp.get(t))===null||i===void 0||i.selectFromAnchorToCursor()}}class Lxt extends Nt{constructor(){super({id:"editor.action.cancelSelectionAnchor",label:x("cancelSelectionAnchor","Cancel Selection Anchor"),alias:"Cancel Selection Anchor",precondition:$E,kbOpts:{kbExpr:ne.editorTextFocus,primary:9,weight:100}})}async run(e,t){var i;(i=tp.get(t))===null||i===void 0||i.cancelSelectionAnchor()}}Ii(tp.ID,tp,4),it(wxt),it(Sxt),it(xxt),it(Lxt);const Fxt=re("editorOverviewRuler.bracketMatchForeground",{dark:"#A0A0A0",light:"#A0A0A0",hcDark:"#A0A0A0",hcLight:"#A0A0A0"},x("overviewRulerBracketMatchForeground","Overview ruler marker color for matching brackets."));class _xt extends Nt{constructor(){super({id:"editor.action.jumpToBracket",label:x("smartSelect.jumpBracket","Go to Bracket"),alias:"Go to Bracket",precondition:void 0,kbOpts:{kbExpr:ne.editorTextFocus,primary:3165,weight:100}})}run(e,t){var i;(i=Ad.get(t))===null||i===void 0||i.jumpToBracket()}}class Dxt extends Nt{constructor(){super({id:"editor.action.selectToBracket",label:x("smartSelect.selectToBracket","Select to Bracket"),alias:"Select to Bracket",precondition:void 0,metadata:{description:ai("smartSelect.selectToBracketDescription","Select the text inside and including the brackets or curly braces"),args:[{name:"args",schema:{type:"object",properties:{selectBrackets:{type:"boolean",default:!0}}}}]}})}run(e,t,i){var r;let o=!0;i&&i.selectBrackets===!1&&(o=!1),(r=Ad.get(t))===null||r===void 0||r.selectToBracket(o)}}class Axt extends Nt{constructor(){super({id:"editor.action.removeBrackets",label:x("smartSelect.removeBrackets","Remove Brackets"),alias:"Remove Brackets",precondition:void 0,kbOpts:{kbExpr:ne.editorTextFocus,primary:2561,weight:100}})}run(e,t){var i;(i=Ad.get(t))===null||i===void 0||i.removeBrackets(this.id)}}class Nxt{constructor(e,t,i){this.position=e,this.brackets=t,this.options=i}}class Ad extends De{static get(e){return e.getContribution(Ad.ID)}constructor(e){super(),this._editor=e,this._lastBracketsData=[],this._lastVersionId=0,this._decorations=this._editor.createDecorationsCollection(),this._updateBracketsSoon=this._register(new Vi(()=>this._updateBrackets(),50)),this._matchBrackets=this._editor.getOption(72),this._updateBracketsSoon.schedule(),this._register(e.onDidChangeCursorPosition(t=>{this._matchBrackets!=="never"&&this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelContent(t=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModel(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeModelLanguageConfiguration(t=>{this._lastBracketsData=[],this._updateBracketsSoon.schedule()})),this._register(e.onDidChangeConfiguration(t=>{t.hasChanged(72)&&(this._matchBrackets=this._editor.getOption(72),this._decorations.clear(),this._lastBracketsData=[],this._lastVersionId=0,this._updateBracketsSoon.schedule())})),this._register(e.onDidBlurEditorWidget(()=>{this._updateBracketsSoon.schedule()})),this._register(e.onDidFocusEditorWidget(()=>{this._updateBracketsSoon.schedule()}))}jumpToBracket(){if(!this._editor.hasModel())return;const e=this._editor.getModel(),t=this._editor.getSelections().map(i=>{const r=i.getStartPosition(),o=e.bracketPairs.matchBracket(r);let s=null;if(o)o[0].containsPosition(r)&&!o[1].containsPosition(r)?s=o[1].getStartPosition():o[1].containsPosition(r)&&(s=o[0].getStartPosition());else{const a=e.bracketPairs.findEnclosingBrackets(r);if(a)s=a[1].getStartPosition();else{const l=e.bracketPairs.findNextBracket(r);l&&l.range&&(s=l.range.getStartPosition())}}return s?new Gt(s.lineNumber,s.column,s.lineNumber,s.column):new Gt(r.lineNumber,r.column,r.lineNumber,r.column)});this._editor.setSelections(t),this._editor.revealRange(t[0])}selectToBracket(e){if(!this._editor.hasModel())return;const t=this._editor.getModel(),i=[];this._editor.getSelections().forEach(r=>{const o=r.getStartPosition();let s=t.bracketPairs.matchBracket(o);if(!s&&(s=t.bracketPairs.findEnclosingBrackets(o),!s)){const u=t.bracketPairs.findNextBracket(o);u&&u.range&&(s=t.bracketPairs.matchBracket(u.range.getStartPosition()))}let a=null,l=null;if(s){s.sort(K.compareRangesUsingStarts);const[u,c]=s;if(a=e?u.getStartPosition():u.getEndPosition(),l=e?c.getEndPosition():c.getStartPosition(),c.containsPosition(o)){const d=a;a=l,l=d}}a&&l&&i.push(new Gt(a.lineNumber,a.column,l.lineNumber,l.column))}),i.length>0&&(this._editor.setSelections(i),this._editor.revealRange(i[0]))}removeBrackets(e){if(!this._editor.hasModel())return;const t=this._editor.getModel();this._editor.getSelections().forEach(i=>{const r=i.getPosition();let o=t.bracketPairs.matchBracket(r);o||(o=t.bracketPairs.findEnclosingBrackets(r)),o&&(this._editor.pushUndoStop(),this._editor.executeEdits(e,[{range:o[0],text:""},{range:o[1],text:""}]),this._editor.pushUndoStop())})}_updateBrackets(){if(this._matchBrackets==="never")return;this._recomputeBrackets();const e=[];let t=0;for(const i of this._lastBracketsData){const r=i.brackets;r&&(e[t++]={range:r[0],options:i.options},e[t++]={range:r[1],options:i.options})}this._decorations.set(e)}_recomputeBrackets(){if(!this._editor.hasModel()||!this._editor.hasWidgetFocus()){this._lastBracketsData=[],this._lastVersionId=0;return}const e=this._editor.getSelections();if(e.length>100){this._lastBracketsData=[],this._lastVersionId=0;return}const t=this._editor.getModel(),i=t.getVersionId();let r=[];this._lastVersionId===i&&(r=this._lastBracketsData);const o=[];let s=0;for(let d=0,h=e.length;d1&&o.sort(ve.compare);const a=[];let l=0,u=0;const c=r.length;for(let d=0,h=o.length;d0&&(t.pushUndoStop(),t.executeCommands(this.id,r),t.pushUndoStop())}}it(Txt);const qE=function(){if(typeof crypto=="object"&&typeof crypto.randomUUID=="function")return crypto.randomUUID.bind(crypto);let n;typeof crypto=="object"&&typeof crypto.getRandomValues=="function"?n=crypto.getRandomValues.bind(crypto):n=function(i){for(let r=0;rn,asFile:()=>{},value:typeof n=="string"?n:void 0}}function Ext(n,e,t){const i={id:qE(),name:n,uri:e,data:t};return{asString:async()=>"",asFile:()=>i,value:void 0}}class SIe{constructor(){this._entries=new Map}get size(){let e=0;for(const t of this._entries)e++;return e}has(e){return this._entries.has(this.toKey(e))}matches(e){const t=[...this._entries.keys()];return qn.some(this,([i,r])=>r.asFile())&&t.push("files"),LIe(eW(e),t)}get(e){var t;return(t=this._entries.get(this.toKey(e)))===null||t===void 0?void 0:t[0]}append(e,t){const i=this._entries.get(e);i?i.push(t):this._entries.set(this.toKey(e),[t])}replace(e,t){this._entries.set(this.toKey(e),[t])}delete(e){this._entries.delete(this.toKey(e))}*[Symbol.iterator](){for(const[e,t]of this._entries)for(const i of t)yield[e,i]}toKey(e){return eW(e)}}function eW(n){return n.toLowerCase()}function xIe(n,e){return LIe(eW(n),e.map(eW))}function LIe(n,e){if(n==="*/*")return e.length>0;if(e.includes(n))return!0;const t=n.match(/^([a-z]+)\/([a-z]+|\*)$/i);if(!t)return!1;const[i,r,o]=t;return o==="*"?e.some(s=>s.startsWith(r+"/")):!1}const tW=Object.freeze({create:n=>Sf(n.map(e=>e.toString())).join(`\r +`),split:n=>n.split(`\r +`),parse:n=>tW.split(n).filter(e=>!e.startsWith("#"))}),FIe={EDITORS:"CodeEditors",FILES:"CodeFiles"};class Wxt{}const Rxt={DragAndDropContribution:"workbench.contributions.dragAndDrop"};xo.add(Rxt.DragAndDropContribution,new Wxt);class _D{constructor(){}static getInstance(){return _D.INSTANCE}hasData(e){return e&&e===this.proto}getData(e){if(this.hasData(e))return this.data}}_D.INSTANCE=new _D;function _Ie(n){const e=new SIe;for(const t of n.items){const i=t.type;if(t.kind==="string"){const r=new Promise(o=>t.getAsString(o));e.append(i,lU(r))}else if(t.kind==="file"){const r=t.getAsFile();r&&e.append(i,Gxt(r))}}return e}function Gxt(n){const e=n.path?$t.parse(n.path):void 0;return Ext(n.name,e,async()=>new Uint8Array(await n.arrayBuffer()))}const Vxt=Object.freeze([FIe.EDITORS,FIe.FILES,mD.RESOURCES,mD.INTERNAL_URI_LIST]);function DIe(n,e=!1){const t=_Ie(n),i=t.get(mD.INTERNAL_URI_LIST);if(i)t.replace(Xr.uriList,i);else if(e||!t.has(Xr.uriList)){const r=[];for(const o of n.items){const s=o.getAsFile();if(s){const a=s.path;try{a?r.push($t.file(a).toString()):r.push($t.parse(s.name,!0).toString())}catch{}}}r.length&&t.replace(Xr.uriList,lU(tW.create(r)))}for(const r of Vxt)t.delete(r);return t}const DD=Un("IWorkspaceEditService");class uU{constructor(e){this.metadata=e}static convert(e){return e.edits.map(t=>{if(d0.is(t))return d0.lift(t);if(cw.is(t))return cw.lift(t);throw new Error("Unsupported edit")})}}class d0 extends uU{static is(e){return e instanceof d0?!0:za(e)&&$t.isUri(e.resource)&&za(e.textEdit)}static lift(e){return e instanceof d0?e:new d0(e.resource,e.textEdit,e.versionId,e.metadata)}constructor(e,t,i=void 0,r){super(r),this.resource=e,this.textEdit=t,this.versionId=i}}class cw extends uU{static is(e){return e instanceof cw?!0:za(e)&&(!!e.newResource||!!e.oldResource)}static lift(e){return e instanceof cw?e:new cw(e.oldResource,e.newResource,e.options,e.metadata)}constructor(e,t,i={},r){super(r),this.oldResource=e,this.newResource=t,this.options=i}}class Nd{constructor(){this.value="",this.pos=0}static isDigitCharacter(e){return e>=48&&e<=57}static isVariableCharacter(e){return e===95||e>=97&&e<=122||e>=65&&e<=90}text(e){this.value=e,this.pos=0}tokenText(e){return this.value.substr(e.pos,e.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};const e=this.pos;let t=0,i=this.value.charCodeAt(e),r;if(r=Nd._table[i],typeof r=="number")return this.pos+=1,{type:r,pos:e,len:1};if(Nd.isDigitCharacter(i)){r=8;do t+=1,i=this.value.charCodeAt(e+t);while(Nd.isDigitCharacter(i));return this.pos+=t,{type:r,pos:e,len:t}}if(Nd.isVariableCharacter(i)){r=9;do i=this.value.charCodeAt(e+ ++t);while(Nd.isVariableCharacter(i)||Nd.isDigitCharacter(i));return this.pos+=t,{type:r,pos:e,len:t}}r=10;do t+=1,i=this.value.charCodeAt(e+t);while(!isNaN(i)&&typeof Nd._table[i]>"u"&&!Nd.isDigitCharacter(i)&&!Nd.isVariableCharacter(i));return this.pos+=t,{type:r,pos:e,len:t}}}Nd._table={36:0,58:1,44:2,123:3,125:4,92:5,47:6,124:7,43:11,45:12,63:13};class dw{constructor(){this._children=[]}appendChild(e){return e instanceof al&&this._children[this._children.length-1]instanceof al?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this}replace(e,t){const{parent:i}=e,r=i.children.indexOf(e),o=i.children.slice(0);o.splice(r,1,...t),i._children=o,function s(a,l){for(const u of a)u.parent=l,s(u.children,u)}(t,i)}get children(){return this._children}get rightMostDescendant(){return this._children.length>0?this._children[this._children.length-1].rightMostDescendant:this}get snippet(){let e=this;for(;;){if(!e)return;if(e instanceof ND)return e;e=e.parent}}toString(){return this.children.reduce((e,t)=>e+t.toString(),"")}len(){return 0}}class al extends dw{constructor(e){super(),this.value=e}toString(){return this.value}len(){return this.value.length}clone(){return new al(this.value)}}class AIe extends dw{}class Vc extends AIe{static compareByIndex(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop||e.indext.index?1:0}constructor(e){super(),this.index=e}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof hw?this._children[0]:void 0}clone(){const e=new Vc(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}class hw extends dw{constructor(){super(...arguments),this.options=[]}appendChild(e){return e instanceof al&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}len(){return this.options[0].len()}clone(){const e=new hw;return this.options.forEach(e.appendChild,e),e}}class cU extends dw{constructor(){super(...arguments),this.regexp=new RegExp("")}resolve(e){const t=this;let i=!1,r=e.replace(this.regexp,function(){return i=!0,t._replace(Array.prototype.slice.call(arguments,0,-2))});return!i&&this._children.some(o=>o instanceof Wh&&!!o.elseValue)&&(r=this._replace([])),r}_replace(e){let t="";for(const i of this._children)if(i instanceof Wh){let r=e[i.index]||"";r=i.resolve(r),t+=r}else t+=i.toString();return t}toString(){return""}clone(){const e=new cU;return e.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),e._children=this.children.map(t=>t.clone()),e}}class Wh extends dw{constructor(e,t,i,r){super(),this.index=e,this.shorthandName=t,this.ifValue=i,this.elseValue=r}resolve(e){return this.shorthandName==="upcase"?e?e.toLocaleUpperCase():"":this.shorthandName==="downcase"?e?e.toLocaleLowerCase():"":this.shorthandName==="capitalize"?e?e[0].toLocaleUpperCase()+e.substr(1):"":this.shorthandName==="pascalcase"?e?this._toPascalCase(e):"":this.shorthandName==="camelcase"?e?this._toCamelCase(e):"":e&&typeof this.ifValue=="string"?this.ifValue:!e&&typeof this.elseValue=="string"?this.elseValue:e||""}_toPascalCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map(i=>i.charAt(0).toUpperCase()+i.substr(1)).join(""):e}_toCamelCase(e){const t=e.match(/[a-z0-9]+/gi);return t?t.map((i,r)=>r===0?i.charAt(0).toLowerCase()+i.substr(1):i.charAt(0).toUpperCase()+i.substr(1)).join(""):e}clone(){return new Wh(this.index,this.shorthandName,this.ifValue,this.elseValue)}}class AD extends AIe{constructor(e){super(),this.name=e}resolve(e){let t=e.resolve(this);return this.transform&&(t=this.transform.resolve(t||"")),t!==void 0?(this._children=[new al(t)],!0):!1}clone(){const e=new AD(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}}function NIe(n,e){const t=[...n];for(;t.length>0;){const i=t.shift();if(!e(i))break;t.unshift(...i.children)}}class ND extends dw{get placeholderInfo(){if(!this._placeholders){const e=[];let t;this.walk(function(i){return i instanceof Vc&&(e.push(i),t=!t||t.indexr===e?(i=!0,!1):(t+=r.len(),!0)),i?t:-1}fullLen(e){let t=0;return NIe([e],i=>(t+=i.len(),!0)),t}enclosingPlaceholders(e){const t=[];let{parent:i}=e;for(;i;)i instanceof Vc&&t.push(i),i=i.parent;return t}resolveVariables(e){return this.walk(t=>(t instanceof AD&&t.resolve(e)&&(this._placeholders=void 0),!0)),this}appendChild(e){return this._placeholders=void 0,super.appendChild(e)}replace(e,t){return this._placeholders=void 0,super.replace(e,t)}clone(){const e=new ND;return this._children=this.children.map(t=>t.clone()),e}walk(e){NIe(this.children,e)}}class Cv{constructor(){this._scanner=new Nd,this._token={type:14,pos:0,len:0}}static escape(e){return e.replace(/\$|}|\\/g,"\\$&")}static guessNeedsClipboard(e){return/\${?CLIPBOARD/.test(e)}parse(e,t,i){const r=new ND;return this.parseFragment(e,r),this.ensureFinalTabstop(r,i??!1,t??!1),r}parseFragment(e,t){const i=t.children.length;for(this._scanner.text(e),this._token=this._scanner.next();this._parse(t););const r=new Map,o=[];t.walk(l=>(l instanceof Vc&&(l.isFinalTabstop?r.set(0,void 0):!r.has(l.index)&&l.children.length>0?r.set(l.index,l.children):o.push(l)),!0));const s=(l,u)=>{const c=r.get(l.index);if(!c)return;const d=new Vc(l.index);d.transform=l.transform;for(const h of c){const g=h.clone();d.appendChild(g),g instanceof Vc&&r.has(g.index)&&!u.has(g.index)&&(u.add(g.index),s(g,u),u.delete(g.index))}t.replace(l,[d])},a=new Set;for(const l of o)s(l,a);return t.children.slice(i)}ensureFinalTabstop(e,t,i){(t||i&&e.placeholders.length>0)&&(e.placeholders.find(o=>o.index===0)||e.appendChild(new Vc(0)))}_accept(e,t){if(e===void 0||this._token.type===e){const i=t?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),i}return!1}_backTo(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1}_until(e){const t=this._token;for(;this._token.type!==e;){if(this._token.type===14)return!1;if(this._token.type===5){const r=this._scanner.next();if(r.type!==0&&r.type!==4&&r.type!==5)return!1}this._token=this._scanner.next()}const i=this._scanner.value.substring(t.pos,this._token.pos).replace(/\\(\$|}|\\)/g,"$1");return this._token=this._scanner.next(),i}_parse(e){return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)}_parseEscaped(e){let t;return(t=this._accept(5,!0))?(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new al(t)),!0):!1}_parseTabstopOrVariableName(e){let t;const i=this._token;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\d+$/.test(t)?new Vc(Number(t)):new AD(t)),!0):this._backTo(i)}_parseComplexPlaceholder(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(i);const o=new Vc(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(o),!0;if(!this._parse(o))return e.appendChild(new al("${"+t+":")),o.children.forEach(e.appendChild,e),!0}else if(o.index>0&&this._accept(7)){const s=new hw;for(;;){if(this._parseChoiceElement(s)){if(this._accept(2))continue;if(this._accept(7)&&(o.appendChild(s),this._accept(4)))return e.appendChild(o),!0}return this._backTo(i),!1}}else return this._accept(6)?this._parseTransform(o)?(e.appendChild(o),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(o),!0):this._backTo(i)}_parseChoiceElement(e){const t=this._token,i=[];for(;!(this._token.type===2||this._token.type===7);){let r;if((r=this._accept(5,!0))?r=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||r:r=this._accept(void 0,!0),!r)return this._backTo(t),!1;i.push(r)}return i.length===0?(this._backTo(t),!1):(e.appendChild(new al(i.join(""))),!0)}_parseComplexVariable(e){let t;const i=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(i);const o=new AD(t);if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(o),!0;if(!this._parse(o))return e.appendChild(new al("${"+t+":")),o.children.forEach(e.appendChild,e),!0}else return this._accept(6)?this._parseTransform(o)?(e.appendChild(o),!0):(this._backTo(i),!1):this._accept(4)?(e.appendChild(o),!0):this._backTo(i)}_parseTransform(e){const t=new cU;let i="",r="";for(;!this._accept(6);){let o;if(o=this._accept(5,!0)){o=this._accept(6,!0)||o,i+=o;continue}if(this._token.type!==14){i+=this._accept(void 0,!0);continue}return!1}for(;!this._accept(6);){let o;if(o=this._accept(5,!0)){o=this._accept(5,!0)||this._accept(6,!0)||o,t.appendChild(new al(o));continue}if(!(this._parseFormatString(t)||this._parseAnything(t)))return!1}for(;!this._accept(4);){if(this._token.type!==14){r+=this._accept(void 0,!0);continue}return!1}try{t.regexp=new RegExp(i,r)}catch{return!1}return e.transform=t,!0}_parseFormatString(e){const t=this._token;if(!this._accept(0))return!1;let i=!1;this._accept(3)&&(i=!0);const r=this._accept(8,!0);if(r)if(i){if(this._accept(4))return e.appendChild(new Wh(Number(r))),!0;if(!this._accept(1))return this._backTo(t),!1}else return e.appendChild(new Wh(Number(r))),!0;else return this._backTo(t),!1;if(this._accept(6)){const o=this._accept(9,!0);return!o||!this._accept(4)?(this._backTo(t),!1):(e.appendChild(new Wh(Number(r),o)),!0)}else if(this._accept(11)){const o=this._until(4);if(o)return e.appendChild(new Wh(Number(r),void 0,o,void 0)),!0}else if(this._accept(12)){const o=this._until(4);if(o)return e.appendChild(new Wh(Number(r),void 0,void 0,o)),!0}else if(this._accept(13)){const o=this._until(1);if(o){const s=this._until(4);if(s)return e.appendChild(new Wh(Number(r),void 0,o,s)),!0}}else{const o=this._until(4);if(o)return e.appendChild(new Wh(Number(r),void 0,void 0,o)),!0}return this._backTo(t),!1}_parseAnything(e){return this._token.type!==14?(e.appendChild(new al(this._scanner.tokenText(this._token))),this._accept(void 0),!0):!1}}function kIe(n,e,t){var i,r,o,s;return(typeof t.insertText=="string"?t.insertText==="":t.insertText.snippet==="")?{edits:(r=(i=t.additionalEdit)===null||i===void 0?void 0:i.edits)!==null&&r!==void 0?r:[]}:{edits:[...e.map(a=>new d0(n,{range:a,text:typeof t.insertText=="string"?Cv.escape(t.insertText)+"$0":t.insertText.snippet,insertAsSnippet:!0})),...(s=(o=t.additionalEdit)===null||o===void 0?void 0:o.edits)!==null&&s!==void 0?s:[]]}}function MIe(n){var e;function t(a,l){return"providerId"in a&&a.providerId===l.providerId||"mimeType"in a&&a.mimeType===l.handledMimeType}const i=new Map;for(const a of n)for(const l of(e=a.yieldTo)!==null&&e!==void 0?e:[])for(const u of n)if(u!==a&&t(l,u)){let c=i.get(a);c||(c=[],i.set(a,c)),c.push(u)}if(!i.size)return Array.from(n);const r=new Set,o=[];function s(a){if(!a.length)return[];const l=a[0];if(o.includes(l))return a;if(r.has(l))return s(a.slice(1));let u=[];const c=i.get(l);return c&&(o.push(l),u=s(c),o.pop()),r.add(l),[...u,l,...s(a.slice(1))]}return s(Array.from(n))}const dU=Un("IEditorCancelService"),ZIe=new It("cancellableOperation",!1,x("cancellableOperation","Whether the editor runs a cancellable operation, e.g. like 'Peek References'"));ti(dU,class{constructor(){this._tokens=new WeakMap}add(n,e){let t=this._tokens.get(n);t||(t=n.invokeWithinContext(r=>{const o=ZIe.bindTo(r.get(ln)),s=new Ua;return{key:o,tokens:s}}),this._tokens.set(n,t));let i;return t.key.set(!0),i=t.tokens.push(e),()=>{i&&(i(),t.key.set(!t.tokens.isEmpty()),i=void 0)}}cancel(n){const e=this._tokens.get(n);if(!e)return;const t=e.tokens.pop();t&&(t.cancel(),e.key.set(!e.tokens.isEmpty()))}},1);class Xxt extends co{constructor(e,t){super(t),this.editor=e,this._unregister=e.invokeWithinContext(i=>i.get(dU).add(e,this))}dispose(){this._unregister(),super.dispose()}}mt(new class extends cs{constructor(){super({id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:ZIe})}runEditorCommand(n,e){n.get(dU).cancel(e)}});let TIe=class see{constructor(e,t){if(this.flags=t,this.flags&1){const i=e.getModel();this.modelVersionId=i?UI("{0}#{1}",i.uri.toString(),i.getVersionId()):null}else this.modelVersionId=null;this.flags&4?this.position=e.getPosition():this.position=null,this.flags&2?this.selection=e.getSelection():this.selection=null,this.flags&8?(this.scrollLeft=e.getScrollLeft(),this.scrollTop=e.getScrollTop()):(this.scrollLeft=-1,this.scrollTop=-1)}_equals(e){if(!(e instanceof see))return!1;const t=e;return!(this.modelVersionId!==t.modelVersionId||this.scrollLeft!==t.scrollLeft||this.scrollTop!==t.scrollTop||!this.position&&t.position||this.position&&!t.position||this.position&&t.position&&!this.position.equals(t.position)||!this.selection&&t.selection||this.selection&&!t.selection||this.selection&&t.selection&&!this.selection.equalsRange(t.selection))}validate(e){return this._equals(new see(e,this.flags))}};class h0 extends Xxt{constructor(e,t,i,r){super(e,r),this._listener=new je,t&4&&this._listener.add(e.onDidChangeCursorPosition(o=>{(!i||!K.containsPosition(i,o.position))&&this.cancel()})),t&2&&this._listener.add(e.onDidChangeCursorSelection(o=>{(!i||!K.containsRange(i,o.selection))&&this.cancel()})),t&8&&this._listener.add(e.onDidScrollChange(o=>this.cancel())),t&1&&(this._listener.add(e.onDidChangeModel(o=>this.cancel())),this._listener.add(e.onDidChangeModelContent(o=>this.cancel())))}dispose(){this._listener.dispose(),super.dispose()}}class hU extends co{constructor(e,t){super(t),this._listener=e.onDidChangeContent(()=>this.cancel())}dispose(){this._listener.dispose(),super.dispose()}}var Pxt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Oxt=function(n,e){return function(t,i){e(t,i,n)}};const Bxt=In.register({description:"inline-progress-widget",stickiness:1,showIfCollapsed:!0,after:{content:Fbe,inlineClassName:"inline-editor-progress-decoration",inlineClassNameAffectsLetterSpacing:!0}});class nW extends De{constructor(e,t,i,r,o){super(),this.typeId=e,this.editor=t,this.range=i,this.delegate=o,this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this.create(r),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this)}create(e){this.domNode=vt(".inline-progress-widget"),this.domNode.role="button",this.domNode.title=e;const t=vt("span.icon");this.domNode.append(t),t.classList.add(...on.asClassNameArray(ct.loading),"codicon-modifier-spin");const i=()=>{const r=this.editor.getOption(67);this.domNode.style.height=`${r}px`,this.domNode.style.width=`${Math.ceil(.8*r)}px`};i(),this._register(this.editor.onDidChangeConfiguration(r=>{(r.hasChanged(52)||r.hasChanged(67))&&i()})),this._register(Ve(this.domNode,at.CLICK,r=>{this.delegate.cancel()}))}getId(){return nW.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:{lineNumber:this.range.startLineNumber,column:this.range.startColumn},preference:[0]}}dispose(){super.dispose(),this.editor.removeContentWidget(this)}}nW.baseId="editor.widget.inlineProgressWidget";let iW=class extends De{constructor(e,t,i){super(),this.id=e,this._editor=t,this._instantiationService=i,this._showDelay=500,this._showPromise=this._register(new zs),this._currentWidget=new zs,this._operationIdPool=0,this._currentDecorations=t.createDecorationsCollection()}async showWhile(e,t,i){const r=this._operationIdPool++;this._currentOperation=r,this.clear(),this._showPromise.value=Cb(()=>{const o=K.fromPositions(e);this._currentDecorations.set([{range:o,options:Bxt}]).length>0&&(this._currentWidget.value=this._instantiationService.createInstance(nW,this.id,this._editor,o,t,i))},this._showDelay);try{return await i}finally{this._currentOperation===r&&(this.clear(),this._currentOperation=void 0)}}clear(){this._showPromise.clear(),this._currentDecorations.clear(),this._currentWidget.clear()}};iW=Pxt([Oxt(2,tn)],iW);const zxt={ctrlCmd:!1,alt:!1};var kD;(function(n){n[n.Blur=1]="Blur",n[n.Gesture=2]="Gesture",n[n.Other=3]="Other"})(kD||(kD={}));var gm;(function(n){n[n.NONE=0]="NONE",n[n.FIRST=1]="FIRST",n[n.SECOND=2]="SECOND",n[n.LAST=3]="LAST"})(gm||(gm={}));const vv=Un("quickInputService");Ee.white.toString(),Ee.white.toString();class rW extends De{get onDidClick(){return this._onDidClick.event}constructor(e,t){super(),this._label="",this._onDidClick=this._register(new be),this._onDidEscape=this._register(new be),this.options=t,this._element=document.createElement("a"),this._element.classList.add("monaco-button"),this._element.tabIndex=0,this._element.setAttribute("role","button"),this._element.classList.toggle("secondary",!!t.secondary);const i=t.secondary?t.buttonSecondaryBackground:t.buttonBackground,r=t.secondary?t.buttonSecondaryForeground:t.buttonForeground;this._element.style.color=r||"",this._element.style.backgroundColor=i||"",t.supportShortLabel&&(this._labelShortElement=document.createElement("div"),this._labelShortElement.classList.add("monaco-button-label-short"),this._element.appendChild(this._labelShortElement),this._labelElement=document.createElement("div"),this._labelElement.classList.add("monaco-button-label"),this._element.appendChild(this._labelElement),this._element.classList.add("monaco-text-button-with-short-label")),typeof t.ariaLabel=="string"&&this._element.setAttribute("aria-label",t.ariaLabel),e.appendChild(this._element),this._register(er.addTarget(this._element)),[at.CLICK,qi.Tap].forEach(o=>{this._register(Ve(this._element,o,s=>{if(!this.enabled){En.stop(s);return}this._onDidClick.fire(s)}))}),this._register(Ve(this._element,at.KEY_DOWN,o=>{const s=new nr(o);let a=!1;this.enabled&&(s.equals(3)||s.equals(10))?(this._onDidClick.fire(o),a=!0):s.equals(9)&&(this._onDidEscape.fire(o),this._element.blur(),a=!0),a&&En.stop(s,!0)})),this._register(Ve(this._element,at.MOUSE_OVER,o=>{this._element.classList.contains("disabled")||this.updateBackground(!0)})),this._register(Ve(this._element,at.MOUSE_OUT,o=>{this.updateBackground(!1)})),this.focusTracker=this._register(ph(this._element)),this._register(this.focusTracker.onDidFocus(()=>{this.enabled&&this.updateBackground(!0)})),this._register(this.focusTracker.onDidBlur(()=>{this.enabled&&this.updateBackground(!1)}))}dispose(){super.dispose(),this._element.remove()}getContentElements(e){const t=[];for(let i of qb(e))if(typeof i=="string"){if(i=i.trim(),i==="")continue;const r=document.createElement("span");r.textContent=i,t.push(r)}else t.push(i);return t}updateBackground(e){let t;this.options.secondary?t=e?this.options.buttonSecondaryHoverBackground:this.options.buttonSecondaryBackground:t=e?this.options.buttonHoverBackground:this.options.buttonBackground,t&&(this._element.style.backgroundColor=t)}get element(){return this._element}set label(e){var t;if(this._label===e||sm(this._label)&&sm(e)&&H2t(this._label,e))return;this._element.classList.add("monaco-text-button");const i=this.options.supportShortLabel?this._labelElement:this._element;if(sm(e)){const o=EE(e,{inline:!0});o.dispose();const s=(t=o.element.querySelector("p"))===null||t===void 0?void 0:t.innerHTML;if(s){const a=pbe(s,{ADD_TAGS:["b","i","u","code","span"],ALLOWED_ATTR:["class"],RETURN_TRUSTED_TYPE:!0});i.innerHTML=a}else ua(i)}else this.options.supportIcons?ua(i,...this.getContentElements(e)):i.textContent=e;let r="";typeof this.options.title=="string"?r=this.options.title:this.options.title&&(r=lwt(e)),this._hover?this._hover.update(r):this._hover=this._register(dv(Kf("mouse"),this._element,r)),typeof this.options.ariaLabel=="string"?this._element.setAttribute("aria-label",this.options.ariaLabel):this.options.ariaLabel&&this._element.setAttribute("aria-label",this._element.title),this._label=e}get label(){return this._label}set icon(e){this._element.classList.add(...on.asClassNameArray(e))}set enabled(e){e?(this._element.classList.remove("disabled"),this._element.setAttribute("aria-disabled",String(!1)),this._element.tabIndex=0):(this._element.classList.add("disabled"),this._element.setAttribute("aria-disabled",String(!0)))}get enabled(){return!this._element.classList.contains("disabled")}}var EIe=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},MD=function(n,e){return function(t,i){e(t,i,n)}},gU;let oW=gU=class extends De{constructor(e,t,i,r,o,s,a,l,u,c){super(),this.typeId=e,this.editor=t,this.showCommand=r,this.range=o,this.edits=s,this.onSelectNewEdit=a,this._contextMenuService=l,this._keybindingService=c,this.allowEditorOverflow=!0,this.suppressMouseDown=!0,this.create(),this.visibleContext=i.bindTo(u),this.visibleContext.set(!0),this._register(en(()=>this.visibleContext.reset())),this.editor.addContentWidget(this),this.editor.layoutContentWidget(this),this._register(en(()=>this.editor.removeContentWidget(this))),this._register(this.editor.onDidChangeCursorPosition(d=>{o.containsPosition(d.position)||this.dispose()})),this._register(ft.runAndSubscribe(c.onDidUpdateKeybindings,()=>{this._updateButtonTitle()}))}_updateButtonTitle(){var e;const t=(e=this._keybindingService.lookupKeybinding(this.showCommand.id))===null||e===void 0?void 0:e.getLabel();this.button.element.title=this.showCommand.label+(t?` (${t})`:"")}create(){this.domNode=vt(".post-edit-widget"),this.button=this._register(new rW(this.domNode,{supportIcons:!0})),this.button.label="$(insert)",this._register(Ve(this.domNode,at.CLICK,()=>this.showSelector()))}getId(){return gU.baseId+"."+this.typeId}getDomNode(){return this.domNode}getPosition(){return{position:this.range.getEndPosition(),preference:[2]}}showSelector(){this._contextMenuService.showContextMenu({getAnchor:()=>{const e=go(this.button.element);return{x:e.left+e.width,y:e.top+e.height}},getActions:()=>this.edits.allEdits.map((e,t)=>e2({id:"",label:e.label,checked:t===this.edits.activeEditIndex,run:()=>{if(t!==this.edits.activeEditIndex)return this.onSelectNewEdit(t)}}))})}};oW.baseId="editor.widget.postEditWidget",oW=gU=EIe([MD(7,hu),MD(8,ln),MD(9,Pi)],oW);let sW=class extends De{constructor(e,t,i,r,o,s){super(),this._id=e,this._editor=t,this._visibleContext=i,this._showCommand=r,this._instantiationService=o,this._bulkEditService=s,this._currentWidget=this._register(new zs),this._register(ft.any(t.onDidChangeModel,t.onDidChangeModelContent)(()=>this.clear()))}async applyEditAndShowIfNeeded(e,t,i,r){const o=this._editor.getModel();if(!o||!e.length)return;const s=t.allEdits[t.activeEditIndex];if(!s)return;const a=kIe(o.uri,e,s),l=e[0],u=o.deltaDecorations([],[{range:l,options:{description:"paste-line-suffix",stickiness:0}}]);let c,d;try{c=await this._bulkEditService.apply(a,{editor:this._editor,token:r}),d=o.getDecorationRange(u[0])}finally{o.deltaDecorations(u,[])}i&&c.isApplied&&t.allEdits.length>1&&this.show(d??l,t,async h=>{const g=this._editor.getModel();g&&(await g.undo(),this.applyEditAndShowIfNeeded(e,{activeEditIndex:h,allEdits:t.allEdits},i,r))})}show(e,t,i){this.clear(),this._editor.hasModel()&&(this._currentWidget.value=this._instantiationService.createInstance(oW,this._id,this._editor,this._visibleContext,this._showCommand,e,t,i))}clear(){this._currentWidget.clear()}tryShowSelector(){var e;(e=this._currentWidget.value)===null||e===void 0||e.showSelector()}};sW=EIe([MD(4,tn),MD(5,DD)],sW);const Rl=Un("openerService");function Yxt(n){let e;const t=/^L?(\d+)(?:,(\d+))?(-L?(\d+)(?:,(\d+))?)?/.exec(n.fragment);return t&&(e={startLineNumber:parseInt(t[1]),startColumn:t[2]?parseInt(t[2]):1,endLineNumber:t[4]?parseInt(t[4]):void 0,endColumn:t[4]?t[5]?parseInt(t[5]):1:void 0},n=n.with({fragment:""})),{selection:e,uri:n}}var Hxt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},WIe=function(n,e){return function(t,i){e(t,i,n)}},mU;let mm=mU=class{constructor(e,t,i){this._options=e,this._languageService=t,this._openerService=i,this._onDidRenderAsync=new be,this.onDidRenderAsync=this._onDidRenderAsync.event}dispose(){this._onDidRenderAsync.dispose()}render(e,t,i){if(!e)return{element:document.createElement("span"),dispose:()=>{}};const r=new je,o=r.add(EE(e,{...this._getRenderOptions(e,r),...t},i));return o.element.classList.add("rendered-markdown"),{element:o.element,dispose:()=>r.dispose()}}_getRenderOptions(e,t){return{codeBlockRenderer:async(i,r)=>{var o,s,a;let l;i?l=this._languageService.getLanguageIdByLanguageName(i):this._options.editor&&(l=(o=this._options.editor.getModel())===null||o===void 0?void 0:o.getLanguageId()),l||(l=Ru);const u=await CIt(this._languageService,r,l),c=document.createElement("span");if(c.innerHTML=(a=(s=mU._ttpTokenizer)===null||s===void 0?void 0:s.createHTML(u))!==null&&a!==void 0?a:u,this._options.editor){const d=this._options.editor.getOption(50);Ks(c,d)}else this._options.codeBlockFontFamily&&(c.style.fontFamily=this._options.codeBlockFontFamily);return this._options.codeBlockFontSize!==void 0&&(c.style.fontSize=this._options.codeBlockFontSize),c},asyncRenderCallback:()=>this._onDidRenderAsync.fire(),actionHandler:{callback:i=>fU(this._openerService,i,e.isTrusted),disposables:t}}}};mm._ttpTokenizer=Rf("tokenizeToString",{createHTML(n){return n}}),mm=mU=Hxt([WIe(1,Cr),WIe(2,Rl)],mm);async function fU(n,e,t){try{return await n.open(e,{fromUserGesture:!0,allowContributedOpeners:!0,allowCommands:Uxt(t)})}catch(i){return fn(i),!1}}function Uxt(n){return n===!0?!0:n&&Array.isArray(n.enabledCommands)?n.enabledCommands:!1}var Jxt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},RIe=function(n,e){return function(t,i){e(t,i,n)}},aW;let ll=aW=class{static get(e){return e.getContribution(aW.ID)}constructor(e,t,i){this._openerService=i,this._messageWidget=new zs,this._messageListeners=new je,this._mouseOverMessage=!1,this._editor=e,this._visible=aW.MESSAGE_VISIBLE.bindTo(t)}dispose(){var e;(e=this._message)===null||e===void 0||e.dispose(),this._messageListeners.dispose(),this._messageWidget.dispose(),this._visible.reset()}showMessage(e,t){ou(sm(e)?e.value:e),this._visible.set(!0),this._messageWidget.clear(),this._messageListeners.clear(),this._message=sm(e)?EE(e,{actionHandler:{callback:r=>{this.closeMessage(),fU(this._openerService,r,sm(e)?e.isTrusted:void 0)},disposables:this._messageListeners}}):void 0,this._messageWidget.value=new GIe(this._editor,t,typeof e=="string"?e:this._message.element),this._messageListeners.add(ft.debounce(this._editor.onDidBlurEditorText,(r,o)=>o,0)(()=>{this._mouseOverMessage||this._messageWidget.value&&xs(Ys(),this._messageWidget.value.getDomNode())||this.closeMessage()})),this._messageListeners.add(this._editor.onDidChangeCursorPosition(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidDispose(()=>this.closeMessage())),this._messageListeners.add(this._editor.onDidChangeModel(()=>this.closeMessage())),this._messageListeners.add(Ve(this._messageWidget.value.getDomNode(),at.MOUSE_ENTER,()=>this._mouseOverMessage=!0,!0)),this._messageListeners.add(Ve(this._messageWidget.value.getDomNode(),at.MOUSE_LEAVE,()=>this._mouseOverMessage=!1,!0));let i;this._messageListeners.add(this._editor.onMouseMove(r=>{r.target.position&&(i?i.containsPosition(r.target.position)||this.closeMessage():i=new K(t.lineNumber-3,1,r.target.position.lineNumber+3,1))}))}closeMessage(){this._visible.reset(),this._messageListeners.clear(),this._messageWidget.value&&this._messageListeners.add(GIe.fadeOut(this._messageWidget.value))}};ll.ID="editor.contrib.messageController",ll.MESSAGE_VISIBLE=new It("messageVisible",!1,x("messageVisible","Whether the editor is currently showing an inline message")),ll=aW=Jxt([RIe(1,ln),RIe(2,Rl)],ll);const Kxt=cs.bindToContribution(ll.get);mt(new Kxt({id:"leaveEditorMessage",precondition:ll.MESSAGE_VISIBLE,handler:n=>n.closeMessage(),kbOpts:{weight:130,primary:9}}));let GIe=class{static fadeOut(e){const t=()=>{e.dispose(),clearTimeout(i),e.getDomNode().removeEventListener("animationend",t)},i=setTimeout(t,110);return e.getDomNode().addEventListener("animationend",t),e.getDomNode().classList.add("fadeOut"),{dispose:t}}constructor(e,{lineNumber:t,column:i},r){this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._editor=e,this._editor.revealLinesInCenterIfOutsideViewport(t,t,0),this._position={lineNumber:t,column:i},this._domNode=document.createElement("div"),this._domNode.classList.add("monaco-editor-overlaymessage"),this._domNode.style.marginLeft="-6px";const o=document.createElement("div");o.classList.add("anchor","top"),this._domNode.appendChild(o);const s=document.createElement("div");typeof r=="string"?(s.classList.add("message"),s.textContent=r):(r.classList.add("message"),s.appendChild(r)),this._domNode.appendChild(s);const a=document.createElement("div");a.classList.add("anchor","below"),this._domNode.appendChild(a),this._editor.addContentWidget(this),this._domNode.classList.add("fadeIn")}dispose(){this._editor.removeContentWidget(this)}getId(){return"messageoverlay"}getDomNode(){return this._domNode}getPosition(){return{position:this._position,preference:[1,2],positionAffinity:1}}afterRender(e){this._domNode.classList.toggle("below",e===2)}};Ii(ll.ID,ll,4);var jxt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},gw=function(n,e){return function(t,i){e(t,i,n)}},pU;const VIe="editor.changePasteType",XIe=new It("pasteWidgetVisible",!1,x("pasteWidgetVisible","Whether the paste widget is showing")),bU="application/vnd.code.copyMetadata";let np=pU=class extends De{static get(e){return e.getContribution(pU.ID)}constructor(e,t,i,r,o,s,a){super(),this._bulkEditService=i,this._clipboardService=r,this._languageFeaturesService=o,this._quickInputService=s,this._progressService=a,this._editor=e;const l=e.getContainerDomNode();this._register(Ve(l,"copy",u=>this.handleCopy(u))),this._register(Ve(l,"cut",u=>this.handleCopy(u))),this._register(Ve(l,"paste",u=>this.handlePaste(u),!0)),this._pasteProgressManager=this._register(new iW("pasteIntoEditor",e,t)),this._postPasteWidgetManager=this._register(t.createInstance(sW,"pasteIntoEditor",e,XIe,{id:VIe,label:x("postPasteWidgetTitle","Show paste options...")}))}changePasteType(){this._postPasteWidgetManager.tryShowSelector()}pasteAs(e){this._editor.focus();try{this._pasteAsActionContext={preferredId:e},$I().execCommand("paste")}finally{this._pasteAsActionContext=void 0}}isPasteAsEnabled(){return this._editor.getOption(85).enabled&&!this._editor.getOption(91)}async finishedPaste(){await this._currentPasteOperation}handleCopy(e){var t,i;if(!this._editor.hasTextFocus()||(pb&&this._clipboardService.writeResources([]),!e.clipboardData||!this.isPasteAsEnabled()))return;const r=this._editor.getModel(),o=this._editor.getSelections();if(!r||!(o!=null&&o.length))return;const s=this._editor.getOption(37);let a=o;const l=o.length===1&&o[0].isEmpty();if(l){if(!s)return;a=[new K(a[0].startLineNumber,1,a[0].startLineNumber,1+r.getLineLength(a[0].startLineNumber))]}const u=(t=this._editor._getViewModel())===null||t===void 0?void 0:t.getPlainTextToCopy(o,s,ya),d={multicursorText:Array.isArray(u)?u:null,pasteOnNewLine:l,mode:null},h=this._languageFeaturesService.documentPasteEditProvider.ordered(r).filter(C=>!!C.prepareDocumentPaste);if(!h.length){this.setCopyMetadata(e.clipboardData,{defaultPastePayload:d});return}const g=_Ie(e.clipboardData),m=h.flatMap(C=>{var v;return(v=C.copyMimeTypes)!==null&&v!==void 0?v:[]}),f=qE();this.setCopyMetadata(e.clipboardData,{id:f,providerCopyMimeTypes:m,defaultPastePayload:d});const b=$o(async C=>{const v=Gg(await Promise.all(h.map(async w=>{try{return await w.prepareDocumentPaste(r,a,g,C)}catch{return}})));v.reverse();for(const w of v)for(const[S,F]of w)g.replace(S,F);return g});(i=this._currentCopyOperation)===null||i===void 0||i.dataTransferPromise.cancel(),this._currentCopyOperation={handle:f,dataTransferPromise:b}}async handlePaste(e){var t,i,r,o,s;if(!e.clipboardData||!this._editor.hasTextFocus())return;(t=ll.get(this._editor))===null||t===void 0||t.closeMessage(),(i=this._currentPasteOperation)===null||i===void 0||i.cancel(),this._currentPasteOperation=void 0;const a=this._editor.getModel(),l=this._editor.getSelections();if(!(l!=null&&l.length)||!a||!this.isPasteAsEnabled()&&!this._pasteAsActionContext)return;const u=this.fetchCopyMetadata(e),c=DIe(e.clipboardData);c.delete(bU);const d=[...e.clipboardData.types,...(r=u==null?void 0:u.providerCopyMimeTypes)!==null&&r!==void 0?r:[],Xr.uriList],h=this._languageFeaturesService.documentPasteEditProvider.ordered(a).filter(g=>{var m,f;return!((m=this._pasteAsActionContext)===null||m===void 0)&&m.preferredId&&this._pasteAsActionContext.preferredId!==g.id?!1:(f=g.pasteMimeTypes)===null||f===void 0?void 0:f.some(b=>xIe(b,d))});if(!h.length){!((o=this._pasteAsActionContext)===null||o===void 0)&&o.preferredId&&this.showPasteAsNoEditMessage(l,(s=this._pasteAsActionContext)===null||s===void 0?void 0:s.preferredId);return}e.preventDefault(),e.stopImmediatePropagation(),this._pasteAsActionContext?this.showPasteAsPick(this._pasteAsActionContext.preferredId,h,l,c,u,{trigger:"explicit",only:this._pasteAsActionContext.preferredId}):this.doPasteInline(h,l,c,u,{trigger:"implicit"})}showPasteAsNoEditMessage(e,t){var i;(i=ll.get(this._editor))===null||i===void 0||i.showMessage(x("pasteAsError","No paste edits for '{0}' found",t),e[0].getStartPosition())}doPasteInline(e,t,i,r,o){const s=$o(async a=>{const l=this._editor;if(!l.hasModel())return;const u=l.getModel(),c=new h0(l,3,void 0,a);try{if(await this.mergeInDataFromCopy(i,r,c.token),c.token.isCancellationRequested)return;const d=e.filter(g=>PIe(g,i));if(!d.length||d.length===1&&d[0].id==="text"){await this.applyDefaultPasteHandler(i,r,c.token);return}const h=await this.getPasteEdits(d,i,u,t,o,c.token);if(c.token.isCancellationRequested)return;if(h.length===1&&h[0].providerId==="text"){await this.applyDefaultPasteHandler(i,r,c.token);return}if(h.length){const g=l.getOption(85).showPasteSelector==="afterPaste";return this._postPasteWidgetManager.applyEditAndShowIfNeeded(t,{activeEditIndex:0,allEdits:h},g,c.token)}await this.applyDefaultPasteHandler(i,r,c.token)}finally{c.dispose(),this._currentPasteOperation===s&&(this._currentPasteOperation=void 0)}});this._pasteProgressManager.showWhile(t[0].getEndPosition(),x("pasteIntoEditorProgress","Running paste handlers. Click to cancel"),s),this._currentPasteOperation=s}showPasteAsPick(e,t,i,r,o,s){const a=$o(async l=>{const u=this._editor;if(!u.hasModel())return;const c=u.getModel(),d=new h0(u,3,void 0,l);try{if(await this.mergeInDataFromCopy(r,o,d.token),d.token.isCancellationRequested)return;let h=t.filter(b=>PIe(b,r));e&&(h=h.filter(b=>b.id===e));const g=await this.getPasteEdits(h,r,c,i,s,d.token);if(d.token.isCancellationRequested)return;if(!g.length){s.only&&this.showPasteAsNoEditMessage(i,s.only);return}let m;if(e)m=g.at(0);else{const b=await this._quickInputService.pick(g.map(C=>({label:C.label,description:C.providerId,detail:C.detail,edit:C})),{placeHolder:x("pasteAsPickerPlaceholder","Select Paste Action")});m=b==null?void 0:b.edit}if(!m)return;const f=kIe(c.uri,i,m);await this._bulkEditService.apply(f,{editor:this._editor})}finally{d.dispose(),this._currentPasteOperation===a&&(this._currentPasteOperation=void 0)}});this._progressService.withProgress({location:10,title:x("pasteAsProgress","Running paste handlers")},()=>a)}setCopyMetadata(e,t){e.setData(bU,JSON.stringify(t))}fetchCopyMetadata(e){var t;if(!e.clipboardData)return;const i=e.clipboardData.getData(bU);if(i)try{return JSON.parse(i)}catch{return}const[r,o]=qH.getTextData(e.clipboardData);if(o)return{defaultPastePayload:{mode:o.mode,multicursorText:(t=o.multicursorText)!==null&&t!==void 0?t:null,pasteOnNewLine:!!o.isFromEmptySelection}}}async mergeInDataFromCopy(e,t,i){var r;if(t!=null&&t.id&&((r=this._currentCopyOperation)===null||r===void 0?void 0:r.handle)===t.id){const o=await this._currentCopyOperation.dataTransferPromise;if(i.isCancellationRequested)return;for(const[s,a]of o)e.replace(s,a)}if(!e.has(Xr.uriList)){const o=await this._clipboardService.readResources();if(i.isCancellationRequested)return;o.length&&e.append(Xr.uriList,lU(tW.create(o)))}}async getPasteEdits(e,t,i,r,o,s){const a=await LF(Promise.all(e.map(async u=>{var c;try{const d=await((c=u.provideDocumentPasteEdits)===null||c===void 0?void 0:c.call(u,i,r,t,o,s));if(d)return{...d,providerId:u.id}}catch{}})),s),l=Gg(a??[]);return MIe(l)}async applyDefaultPasteHandler(e,t,i){var r,o,s;const a=(r=e.get(Xr.text))!==null&&r!==void 0?r:e.get("text");if(!a)return;const l=await a.asString();if(i.isCancellationRequested)return;const u={text:l,pasteOnNewLine:(o=t==null?void 0:t.defaultPastePayload.pasteOnNewLine)!==null&&o!==void 0?o:!1,multicursorText:(s=t==null?void 0:t.defaultPastePayload.multicursorText)!==null&&s!==void 0?s:null,mode:null};this._editor.trigger("keyboard","paste",u)}};np.ID="editor.contrib.copyPasteActionController",np=pU=jxt([gw(1,tn),gw(2,DD),gw(3,qf),gw(4,Tt),gw(5,vv),gw(6,pIe)],np);function PIe(n,e){var t;return!!(!((t=n.pasteMimeTypes)===null||t===void 0)&&t.some(i=>e.matches(i)))}const yv="9_cutcopypaste",Qxt=dh||document.queryCommandSupported("cut"),OIe=dh||document.queryCommandSupported("copy"),$xt=typeof navigator.clipboard>"u"||vc?document.queryCommandSupported("paste"):!0;function CU(n){return n.register(),n}const qxt=Qxt?CU(new r2({id:"editor.action.clipboardCutAction",precondition:void 0,kbOpts:dh?{primary:2102,win:{primary:2102,secondary:[1044]},weight:100}:void 0,menuOpts:[{menuId:$.MenubarEditMenu,group:"2_ccp",title:x({key:"miCut",comment:["&& denotes a mnemonic"]},"Cu&&t"),order:1},{menuId:$.EditorContext,group:yv,title:x("actions.clipboard.cutLabel","Cut"),when:ne.writable,order:1},{menuId:$.CommandPalette,group:"",title:x("actions.clipboard.cutLabel","Cut"),order:1},{menuId:$.SimpleEditorContext,group:yv,title:x("actions.clipboard.cutLabel","Cut"),when:ne.writable,order:1}]})):void 0,eLt=OIe?CU(new r2({id:"editor.action.clipboardCopyAction",precondition:void 0,kbOpts:dh?{primary:2081,win:{primary:2081,secondary:[2067]},weight:100}:void 0,menuOpts:[{menuId:$.MenubarEditMenu,group:"2_ccp",title:x({key:"miCopy",comment:["&& denotes a mnemonic"]},"&&Copy"),order:2},{menuId:$.EditorContext,group:yv,title:x("actions.clipboard.copyLabel","Copy"),order:2},{menuId:$.CommandPalette,group:"",title:x("actions.clipboard.copyLabel","Copy"),order:1},{menuId:$.SimpleEditorContext,group:yv,title:x("actions.clipboard.copyLabel","Copy"),order:2}]})):void 0;Ls.appendMenuItem($.MenubarEditMenu,{submenu:$.MenubarCopy,title:ai("copy as","Copy As"),group:"2_ccp",order:3}),Ls.appendMenuItem($.EditorContext,{submenu:$.EditorContextCopy,title:ai("copy as","Copy As"),group:yv,order:3}),Ls.appendMenuItem($.EditorContext,{submenu:$.EditorContextShare,title:ai("share","Share"),group:"11_share",order:-1,when:Be.and(Be.notEquals("resourceScheme","output"),ne.editorTextFocus)}),Ls.appendMenuItem($.EditorTitleContext,{submenu:$.EditorTitleContextShare,title:ai("share","Share"),group:"11_share",order:-1}),Ls.appendMenuItem($.ExplorerContext,{submenu:$.ExplorerContextShare,title:ai("share","Share"),group:"11_share",order:-1});const vU=$xt?CU(new r2({id:"editor.action.clipboardPasteAction",precondition:void 0,kbOpts:dh?{primary:2100,win:{primary:2100,secondary:[1043]},linux:{primary:2100,secondary:[1043]},weight:100}:void 0,menuOpts:[{menuId:$.MenubarEditMenu,group:"2_ccp",title:x({key:"miPaste",comment:["&& denotes a mnemonic"]},"&&Paste"),order:4},{menuId:$.EditorContext,group:yv,title:x("actions.clipboard.pasteLabel","Paste"),when:ne.writable,order:4},{menuId:$.CommandPalette,group:"",title:x("actions.clipboard.pasteLabel","Paste"),order:1},{menuId:$.SimpleEditorContext,group:yv,title:x("actions.clipboard.pasteLabel","Paste"),when:ne.writable,order:4}]})):void 0;class tLt extends Nt{constructor(){super({id:"editor.action.clipboardCopyWithSyntaxHighlightingAction",label:x("actions.clipboard.copyWithSyntaxHighlightingLabel","Copy With Syntax Highlighting"),alias:"Copy With Syntax Highlighting",precondition:void 0,kbOpts:{kbExpr:ne.textInputFocus,primary:0,weight:100}})}run(e,t){!t.hasModel()||!t.getOption(37)&&t.getSelection().isEmpty()||(QH.forceCopyWithSyntaxHighlighting=!0,t.focus(),t.getContainerDomNode().ownerDocument.execCommand("copy"),QH.forceCopyWithSyntaxHighlighting=!1)}}function BIe(n,e){n&&(n.addImplementation(1e4,"code-editor",(t,i)=>{const r=t.get(yi).getFocusedCodeEditor();if(r&&r.hasTextFocus()){const o=r.getOption(37),s=r.getSelection();return s&&s.isEmpty()&&!o||r.getContainerDomNode().ownerDocument.execCommand(e),!0}return!1}),n.addImplementation(0,"generic-dom",(t,i)=>($I().execCommand(e),!0)))}BIe(qxt,"cut"),BIe(eLt,"copy"),vU&&(vU.addImplementation(1e4,"code-editor",(n,e)=>{var t,i;const r=n.get(yi),o=n.get(qf),s=r.getFocusedCodeEditor();return s&&s.hasTextFocus()?s.getContainerDomNode().ownerDocument.execCommand("paste")?(i=(t=np.get(s))===null||t===void 0?void 0:t.finishedPaste())!==null&&i!==void 0?i:Promise.resolve():pb?(async()=>{const l=await o.readText();if(l!==""){const u=p_.INSTANCE.get(l);let c=!1,d=null,h=null;u&&(c=s.getOption(37)&&!!u.isFromEmptySelection,d=typeof u.multicursorText<"u"?u.multicursorText:null,h=u.mode),s.trigger("keyboard","paste",{text:l,pasteOnNewLine:c,multicursorText:d,mode:h})}})():!0:!1}),vU.addImplementation(0,"generic-dom",(n,e)=>($I().execCommand("paste"),!0))),OIe&&it(tLt);const lW=Object.freeze({id:"editor",order:5,type:"object",title:x("editorConfigurationTitle","Editor"),scope:5}),uW={...lW,properties:{"editor.tabSize":{type:"number",default:ha.tabSize,minimum:1,markdownDescription:x("tabSize","The number of spaces a tab is equal to. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.indentSize":{anyOf:[{type:"string",enum:["tabSize"]},{type:"number",minimum:1}],default:"tabSize",markdownDescription:x("indentSize",'The number of spaces used for indentation or `"tabSize"` to use the value from `#editor.tabSize#`. This setting is overridden based on the file contents when `#editor.detectIndentation#` is on.')},"editor.insertSpaces":{type:"boolean",default:ha.insertSpaces,markdownDescription:x("insertSpaces","Insert spaces when pressing `Tab`. This setting is overridden based on the file contents when {0} is on.","`#editor.detectIndentation#`")},"editor.detectIndentation":{type:"boolean",default:ha.detectIndentation,markdownDescription:x("detectIndentation","Controls whether {0} and {1} will be automatically detected when a file is opened based on the file contents.","`#editor.tabSize#`","`#editor.insertSpaces#`")},"editor.trimAutoWhitespace":{type:"boolean",default:ha.trimAutoWhitespace,description:x("trimAutoWhitespace","Remove trailing auto inserted whitespace.")},"editor.largeFileOptimizations":{type:"boolean",default:ha.largeFileOptimizations,description:x("largeFileOptimizations","Special handling for large files to disable certain memory intensive features.")},"editor.wordBasedSuggestions":{enum:["off","currentDocument","matchingDocuments","allDocuments"],default:"matchingDocuments",enumDescriptions:[x("wordBasedSuggestions.off","Turn off Word Based Suggestions."),x("wordBasedSuggestions.currentDocument","Only suggest words from the active document."),x("wordBasedSuggestions.matchingDocuments","Suggest words from all open documents of the same language."),x("wordBasedSuggestions.allDocuments","Suggest words from all open documents.")],description:x("wordBasedSuggestions","Controls whether completions should be computed based on words in the document and from which documents they are computed.")},"editor.semanticHighlighting.enabled":{enum:[!0,!1,"configuredByTheme"],enumDescriptions:[x("semanticHighlighting.true","Semantic highlighting enabled for all color themes."),x("semanticHighlighting.false","Semantic highlighting disabled for all color themes."),x("semanticHighlighting.configuredByTheme","Semantic highlighting is configured by the current color theme's `semanticHighlighting` setting.")],default:"configuredByTheme",description:x("semanticHighlighting.enabled","Controls whether the semanticHighlighting is shown for the languages that support it.")},"editor.stablePeek":{type:"boolean",default:!1,markdownDescription:x("stablePeek","Keep peek editors open even when double-clicking their content or when hitting `Escape`.")},"editor.maxTokenizationLineLength":{type:"integer",default:2e4,description:x("maxTokenizationLineLength","Lines above this length will not be tokenized for performance reasons")},"editor.experimental.asyncTokenization":{type:"boolean",default:!1,description:x("editor.experimental.asyncTokenization","Controls whether the tokenization should happen asynchronously on a web worker."),tags:["experimental"]},"editor.experimental.asyncTokenizationLogging":{type:"boolean",default:!1,description:x("editor.experimental.asyncTokenizationLogging","Controls whether async tokenization should be logged. For debugging only.")},"editor.experimental.asyncTokenizationVerification":{type:"boolean",default:!1,description:x("editor.experimental.asyncTokenizationVerification","Controls whether async tokenization should be verified against legacy background tokenization. Might slow down tokenization. For debugging only."),tags:["experimental"]},"editor.language.brackets":{type:["array","null"],default:null,description:x("schema.brackets","Defines the bracket symbols that increase or decrease the indentation."),items:{type:"array",items:[{type:"string",description:x("schema.openBracket","The opening bracket character or string sequence.")},{type:"string",description:x("schema.closeBracket","The closing bracket character or string sequence.")}]}},"editor.language.colorizedBracketPairs":{type:["array","null"],default:null,description:x("schema.colorizedBracketPairs","Defines the bracket pairs that are colorized by their nesting level if bracket pair colorization is enabled."),items:{type:"array",items:[{type:"string",description:x("schema.openBracket","The opening bracket character or string sequence.")},{type:"string",description:x("schema.closeBracket","The closing bracket character or string sequence.")}]}},"diffEditor.maxComputationTime":{type:"number",default:Fa.maxComputationTime,description:x("maxComputationTime","Timeout in milliseconds after which diff computation is cancelled. Use 0 for no timeout.")},"diffEditor.maxFileSize":{type:"number",default:Fa.maxFileSize,description:x("maxFileSize","Maximum file size in MB for which to compute diffs. Use 0 for no limit.")},"diffEditor.renderSideBySide":{type:"boolean",default:Fa.renderSideBySide,description:x("sideBySide","Controls whether the diff editor shows the diff side by side or inline.")},"diffEditor.renderSideBySideInlineBreakpoint":{type:"number",default:Fa.renderSideBySideInlineBreakpoint,description:x("renderSideBySideInlineBreakpoint","If the diff editor width is smaller than this value, the inline view is used.")},"diffEditor.useInlineViewWhenSpaceIsLimited":{type:"boolean",default:Fa.useInlineViewWhenSpaceIsLimited,description:x("useInlineViewWhenSpaceIsLimited","If enabled and the editor width is too small, the inline view is used.")},"diffEditor.renderMarginRevertIcon":{type:"boolean",default:Fa.renderMarginRevertIcon,description:x("renderMarginRevertIcon","When enabled, the diff editor shows arrows in its glyph margin to revert changes.")},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:Fa.ignoreTrimWhitespace,description:x("ignoreTrimWhitespace","When enabled, the diff editor ignores changes in leading or trailing whitespace.")},"diffEditor.renderIndicators":{type:"boolean",default:Fa.renderIndicators,description:x("renderIndicators","Controls whether the diff editor shows +/- indicators for added/removed changes.")},"diffEditor.codeLens":{type:"boolean",default:Fa.diffCodeLens,description:x("codeLens","Controls whether the editor shows CodeLens.")},"diffEditor.wordWrap":{type:"string",enum:["off","on","inherit"],default:Fa.diffWordWrap,markdownEnumDescriptions:[x("wordWrap.off","Lines will never wrap."),x("wordWrap.on","Lines will wrap at the viewport width."),x("wordWrap.inherit","Lines will wrap according to the {0} setting.","`#editor.wordWrap#`")]},"diffEditor.diffAlgorithm":{type:"string",enum:["legacy","advanced"],default:Fa.diffAlgorithm,markdownEnumDescriptions:[x("diffAlgorithm.legacy","Uses the legacy diffing algorithm."),x("diffAlgorithm.advanced","Uses the advanced diffing algorithm.")],tags:["experimental"]},"diffEditor.hideUnchangedRegions.enabled":{type:"boolean",default:Fa.hideUnchangedRegions.enabled,markdownDescription:x("hideUnchangedRegions.enabled","Controls whether the diff editor shows unchanged regions.")},"diffEditor.hideUnchangedRegions.revealLineCount":{type:"integer",default:Fa.hideUnchangedRegions.revealLineCount,markdownDescription:x("hideUnchangedRegions.revealLineCount","Controls how many lines are used for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.minimumLineCount":{type:"integer",default:Fa.hideUnchangedRegions.minimumLineCount,markdownDescription:x("hideUnchangedRegions.minimumLineCount","Controls how many lines are used as a minimum for unchanged regions."),minimum:1},"diffEditor.hideUnchangedRegions.contextLineCount":{type:"integer",default:Fa.hideUnchangedRegions.contextLineCount,markdownDescription:x("hideUnchangedRegions.contextLineCount","Controls how many lines are used as context when comparing unchanged regions."),minimum:1},"diffEditor.experimental.showMoves":{type:"boolean",default:Fa.experimental.showMoves,markdownDescription:x("showMoves","Controls whether the diff editor should show detected code moves.")},"diffEditor.experimental.showEmptyDecorations":{type:"boolean",default:Fa.experimental.showEmptyDecorations,description:x("showEmptyDecorations","Controls whether the diff editor shows empty decorations to see where characters got inserted or deleted.")}}};function nLt(n){return typeof n.type<"u"||typeof n.anyOf<"u"}for(const n of w2){const e=n.schema;if(typeof e<"u")if(nLt(e))uW.properties[`editor.${n.name}`]=e;else for(const t in e)Object.hasOwnProperty.call(e,t)&&(uW.properties[t]=e[t])}let cW=null;function zIe(){return cW===null&&(cW=Object.create(null),Object.keys(uW.properties).forEach(n=>{cW[n]=!0})),cW}function iLt(n){return zIe()[`editor.${n}`]||!1}function rLt(n){return zIe()[`diffEditor.${n}`]||!1}xo.as(Ih.Configuration).registerConfiguration(uW);let dn=class WV{constructor(e){this.value=e}equals(e){return this.value===e.value}contains(e){return this.equals(e)||this.value===""||e.value.startsWith(this.value+WV.sep)}intersects(e){return this.contains(e)||e.contains(this)}append(e){return new WV(this.value+WV.sep+e)}};dn.sep=".",dn.None=new dn("@@none@@"),dn.Empty=new dn(""),dn.QuickFix=new dn("quickfix"),dn.Refactor=new dn("refactor"),dn.RefactorExtract=dn.Refactor.append("extract"),dn.RefactorInline=dn.Refactor.append("inline"),dn.RefactorMove=dn.Refactor.append("move"),dn.RefactorRewrite=dn.Refactor.append("rewrite"),dn.Notebook=new dn("notebook"),dn.Source=new dn("source"),dn.SourceOrganizeImports=dn.Source.append("organizeImports"),dn.SourceFixAll=dn.Source.append("fixAll"),dn.SurroundWith=dn.Refactor.append("surround");var gu;(function(n){n.Refactor="refactor",n.RefactorPreview="refactor preview",n.Lightbulb="lightbulb",n.Default="other (default)",n.SourceAction="source action",n.QuickFix="quick fix action",n.FixAll="fix all",n.OrganizeImports="organize imports",n.AutoFix="auto fix",n.QuickFixHover="quick fix hover window",n.OnSave="save participants",n.ProblemsView="problems view"})(gu||(gu={}));function oLt(n,e){return!(n.include&&!n.include.intersects(e)||n.excludes&&n.excludes.some(t=>YIe(e,t,n.include))||!n.includeSourceActions&&dn.Source.contains(e))}function sLt(n,e){const t=e.kind?new dn(e.kind):void 0;return!(n.include&&(!t||!n.include.contains(t))||n.excludes&&t&&n.excludes.some(i=>YIe(t,i,n.include))||!n.includeSourceActions&&t&&dn.Source.contains(t)||n.onlyIncludePreferredActions&&!e.isPreferred)}function YIe(n,e,t){return!(!e.contains(n)||t&&e.contains(t))}class fm{static fromUser(e,t){return!e||typeof e!="object"?new fm(t.kind,t.apply,!1):new fm(fm.getKindFromUser(e,t.kind),fm.getApplyFromUser(e,t.apply),fm.getPreferredUser(e))}static getApplyFromUser(e,t){switch(typeof e.apply=="string"?e.apply.toLowerCase():""){case"first":return"first";case"never":return"never";case"ifsingle":return"ifSingle";default:return t}}static getKindFromUser(e,t){return typeof e.kind=="string"?new dn(e.kind):t}static getPreferredUser(e){return typeof e.preferred=="boolean"?e.preferred:!1}constructor(e,t,i){this.kind=e,this.apply=t,this.preferred=i}}class aLt{constructor(e,t,i){this.action=e,this.provider=t,this.highlightRange=i}async resolve(e){var t;if(!((t=this.provider)===null||t===void 0)&&t.resolveCodeAction&&!this.action.edit){let i;try{i=await this.provider.resolveCodeAction(this.action,e)}catch(r){wo(r)}i&&(this.action.edit=i.edit)}return this}}const HIe="editor.action.codeAction",yU="editor.action.quickFix",UIe="editor.action.autoFix",JIe="editor.action.refactor",KIe="editor.action.sourceAction",IU="editor.action.organizeImports",wU="editor.action.fixAll";class ZD extends De{static codeActionsPreferredComparator(e,t){return e.isPreferred&&!t.isPreferred?-1:!e.isPreferred&&t.isPreferred?1:0}static codeActionsComparator({action:e},{action:t}){return e.isAI&&!t.isAI?1:!e.isAI&&t.isAI?-1:da(e.diagnostics)?da(t.diagnostics)?ZD.codeActionsPreferredComparator(e,t):-1:da(t.diagnostics)?1:ZD.codeActionsPreferredComparator(e,t)}constructor(e,t,i){super(),this.documentation=t,this._register(i),this.allActions=[...e].sort(ZD.codeActionsComparator),this.validActions=this.allActions.filter(({action:r})=>!r.disabled)}get hasAutoFix(){return this.validActions.some(({action:e})=>!!e.kind&&dn.QuickFix.contains(new dn(e.kind))&&!!e.isPreferred)}get hasAIFix(){return this.validActions.some(({action:e})=>!!e.isAI)}get allAIFixes(){return this.validActions.every(({action:e})=>!!e.isAI)}}const jIe={actions:[],documentation:void 0};async function TD(n,e,t,i,r,o){var s;const a=i.filter||{},l={...a,excludes:[...a.excludes||[],dn.Notebook]},u={only:(s=a.include)===null||s===void 0?void 0:s.value,trigger:i.type},c=new hU(e,o),d=i.type===2,h=lLt(n,e,d?l:a),g=new je,m=h.map(async b=>{try{r.report(b);const C=await b.provideCodeActions(e,t,u,c.token);if(C&&g.add(C),c.token.isCancellationRequested)return jIe;const v=((C==null?void 0:C.actions)||[]).filter(S=>S&&sLt(a,S)),w=cLt(b,v,a.include);return{actions:v.map(S=>new aLt(S,b)),documentation:w}}catch(C){if(Ng(C))throw C;return wo(C),jIe}}),f=n.onDidChange(()=>{const b=n.all(e);Ar(b,h)||c.cancel()});try{const b=await Promise.all(m),C=b.map(w=>w.actions).flat(),v=[...Gg(b.map(w=>w.documentation)),...uLt(n,e,i,C)];return new ZD(C,v,g)}finally{f.dispose(),c.dispose()}}function lLt(n,e,t){return n.all(e).filter(i=>i.providedCodeActionKinds?i.providedCodeActionKinds.some(r=>oLt(t,new dn(r))):!0)}function*uLt(n,e,t,i){var r,o,s;if(e&&i.length)for(const a of n.all(e))a._getAdditionalMenuItems&&(yield*(r=a._getAdditionalMenuItems)===null||r===void 0?void 0:r.call(a,{trigger:t.type,only:(s=(o=t.filter)===null||o===void 0?void 0:o.include)===null||s===void 0?void 0:s.value},i.map(l=>l.action)))}function cLt(n,e,t){if(!n.documentation)return;const i=n.documentation.map(r=>({kind:new dn(r.kind),command:r.command}));if(t){let r;for(const o of i)o.kind.contains(t)&&(r?r.kind.contains(o.kind)&&(r=o):r=o);if(r)return r==null?void 0:r.command}for(const r of e)if(r.kind){for(const o of i)if(o.kind.contains(new dn(r.kind)))return o.command}}var mw;(function(n){n.OnSave="onSave",n.FromProblemsView="fromProblemsView",n.FromCodeActions="fromCodeActions",n.FromAILightbulb="fromAILightbulb"})(mw||(mw={}));async function dLt(n,e,t,i,r=Hn.None){var o;const s=n.get(DD),a=n.get(Vr),l=n.get(Nl),u=n.get(Fo);if(l.publicLog2("codeAction.applyCodeAction",{codeActionTitle:e.action.title,codeActionKind:e.action.kind,codeActionIsPreferred:!!e.action.isPreferred,reason:t}),await e.resolve(r),!r.isCancellationRequested&&!(!((o=e.action.edit)===null||o===void 0)&&o.edits.length&&!(await s.apply(e.action.edit,{editor:i==null?void 0:i.editor,label:e.action.title,quotableLabel:e.action.title,code:"undoredo.codeAction",respectAutoSaveConfig:t!==mw.OnSave,showPreview:i==null?void 0:i.preview})).isApplied)&&e.action.command)try{await a.executeCommand(e.action.command.id,...e.action.command.arguments||[])}catch(c){const d=hLt(c);u.error(typeof d=="string"?d:x("applyCodeActionFailed","An unknown error occurred while applying the code action"))}}function hLt(n){return typeof n=="string"?n:n instanceof Error&&typeof n.message=="string"?n.message:void 0}ei.registerCommand("_executeCodeActionProvider",async function(n,e,t,i,r){if(!(e instanceof $t))throw yc();const{codeActionProvider:o}=n.get(Tt),s=n.get(wr).getModel(e);if(!s)throw yc();const a=Gt.isISelection(t)?Gt.liftSelection(t):K.isIRange(t)?s.validateRange(t):void 0;if(!a)throw yc();const l=typeof i=="string"?new dn(i):void 0,u=await TD(o,s,a,{type:1,triggerAction:gu.Default,filter:{includeSourceActions:!0,include:l}},ep.None,Hn.None),c=[],d=Math.min(u.validActions.length,typeof r=="number"?r:0);for(let h=0;hh.action)}finally{setTimeout(()=>u.dispose(),100)}});var gLt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},mLt=function(n,e){return function(t,i){e(t,i,n)}},SU;let dW=SU=class{constructor(e){this.keybindingService=e}getResolver(){const e=new Mg(()=>this.keybindingService.getKeybindings().filter(t=>SU.codeActionCommands.indexOf(t.command)>=0).filter(t=>t.resolvedKeybinding).map(t=>{let i=t.commandArgs;return t.command===IU?i={kind:dn.SourceOrganizeImports.value}:t.command===wU&&(i={kind:dn.SourceFixAll.value}),{resolvedKeybinding:t.resolvedKeybinding,...fm.fromUser(i,{kind:dn.None,apply:"never"})}}));return t=>{if(t.kind){const i=this.bestKeybindingForCodeAction(t,e.value);return i==null?void 0:i.resolvedKeybinding}}}bestKeybindingForCodeAction(e,t){if(!e.kind)return;const i=new dn(e.kind);return t.filter(r=>r.kind.contains(i)).filter(r=>r.preferred?e.isPreferred:!0).reduceRight((r,o)=>r?r.kind.contains(o.kind)?o:r:o,void 0)}};dW.codeActionCommands=[JIe,HIe,KIe,IU,wU],dW=SU=gLt([mLt(0,Pi)],dW),re("symbolIcon.arrayForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.arrayForeground","The foreground color for array symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.booleanForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.booleanForeground","The foreground color for boolean symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.classForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},x("symbolIcon.classForeground","The foreground color for class symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.colorForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.colorForeground","The foreground color for color symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.constantForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.constantForeground","The foreground color for constant symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.constructorForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},x("symbolIcon.constructorForeground","The foreground color for constructor symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.enumeratorForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},x("symbolIcon.enumeratorForeground","The foreground color for enumerator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.enumeratorMemberForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},x("symbolIcon.enumeratorMemberForeground","The foreground color for enumerator member symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.eventForeground",{dark:"#EE9D28",light:"#D67E00",hcDark:"#EE9D28",hcLight:"#D67E00"},x("symbolIcon.eventForeground","The foreground color for event symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.fieldForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},x("symbolIcon.fieldForeground","The foreground color for field symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.fileForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.fileForeground","The foreground color for file symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.folderForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.folderForeground","The foreground color for folder symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.functionForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},x("symbolIcon.functionForeground","The foreground color for function symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.interfaceForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},x("symbolIcon.interfaceForeground","The foreground color for interface symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.keyForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.keyForeground","The foreground color for key symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.keywordForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.keywordForeground","The foreground color for keyword symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.methodForeground",{dark:"#B180D7",light:"#652D90",hcDark:"#B180D7",hcLight:"#652D90"},x("symbolIcon.methodForeground","The foreground color for method symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.moduleForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.moduleForeground","The foreground color for module symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.namespaceForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.namespaceForeground","The foreground color for namespace symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.nullForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.nullForeground","The foreground color for null symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.numberForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.numberForeground","The foreground color for number symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.objectForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.objectForeground","The foreground color for object symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.operatorForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.operatorForeground","The foreground color for operator symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.packageForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.packageForeground","The foreground color for package symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.propertyForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.propertyForeground","The foreground color for property symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.referenceForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.referenceForeground","The foreground color for reference symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.snippetForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.snippetForeground","The foreground color for snippet symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.stringForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.stringForeground","The foreground color for string symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.structForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.structForeground","The foreground color for struct symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.textForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.textForeground","The foreground color for text symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.typeParameterForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.typeParameterForeground","The foreground color for type parameter symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.unitForeground",{dark:lt,light:lt,hcDark:lt,hcLight:lt},x("symbolIcon.unitForeground","The foreground color for unit symbols. These symbols appear in the outline, breadcrumb, and suggest widget.")),re("symbolIcon.variableForeground",{dark:"#75BEFF",light:"#007ACC",hcDark:"#75BEFF",hcLight:"#007ACC"},x("symbolIcon.variableForeground","The foreground color for variable symbols. These symbols appear in the outline, breadcrumb, and suggest widget."));const QIe=Object.freeze({kind:dn.Empty,title:x("codeAction.widget.id.more","More Actions...")}),fLt=Object.freeze([{kind:dn.QuickFix,title:x("codeAction.widget.id.quickfix","Quick Fix")},{kind:dn.RefactorExtract,title:x("codeAction.widget.id.extract","Extract"),icon:ct.wrench},{kind:dn.RefactorInline,title:x("codeAction.widget.id.inline","Inline"),icon:ct.wrench},{kind:dn.RefactorRewrite,title:x("codeAction.widget.id.convert","Rewrite"),icon:ct.wrench},{kind:dn.RefactorMove,title:x("codeAction.widget.id.move","Move"),icon:ct.wrench},{kind:dn.SurroundWith,title:x("codeAction.widget.id.surround","Surround With"),icon:ct.surroundWith},{kind:dn.Source,title:x("codeAction.widget.id.source","Source Action"),icon:ct.symbolFile},QIe]);function pLt(n,e,t){if(!e)return n.map(o=>{var s;return{kind:"action",item:o,group:QIe,disabled:!!o.action.disabled,label:o.action.disabled||o.action.title,canPreview:!!(!((s=o.action.edit)===null||s===void 0)&&s.edits.length)}});const i=fLt.map(o=>({group:o,actions:[]}));for(const o of n){const s=o.action.kind?new dn(o.action.kind):dn.None;for(const a of i)if(a.group.kind.contains(s)){a.actions.push(o);break}}const r=[];for(const o of i)if(o.actions.length){r.push({kind:"header",group:o.group});for(const s of o.actions){const a=o.group;r.push({kind:"action",item:s,group:s.action.isAI?{title:a.title,kind:a.kind,icon:ct.sparkle}:a,label:s.action.title,disabled:!!s.action.disabled,keybinding:t(s.action)})}}return r}var bLt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},$Ie=function(n,e){return function(t,i){e(t,i,n)}},xU,fw;(function(n){n.Hidden={type:0};class e{constructor(i,r,o,s){this.actions=i,this.trigger=r,this.editorPosition=o,this.widgetPosition=s,this.type=1}}n.Showing=e})(fw||(fw={}));let Iv=xU=class extends De{constructor(e,t,i){super(),this._editor=e,this._keybindingService=t,this._onClick=this._register(new be),this.onClick=this._onClick.event,this._state=fw.Hidden,this._iconClasses=[],this._domNode=vt("div.lightBulbWidget"),this._register(er.ignoreTarget(this._domNode)),this._editor.addContentWidget(this),this._register(this._editor.onDidChangeModelContent(r=>{const o=this._editor.getModel();(this.state.type!==1||!o||this.state.editorPosition.lineNumber>=o.getLineCount())&&this.hide()})),this._register(Mgt(this._domNode,r=>{if(this.state.type!==1)return;this._editor.focus(),r.preventDefault();const{top:o,height:s}=go(this._domNode),a=this._editor.getOption(67);let l=Math.floor(a/3);this.state.widgetPosition.position!==null&&this.state.widgetPosition.position.lineNumber{(r.buttons&1)===1&&this.hide()})),this._register(ft.runAndSubscribe(this._keybindingService.onDidUpdateKeybindings,()=>{var r,o,s,a;this._preferredKbLabel=(o=(r=this._keybindingService.lookupKeybinding(UIe))===null||r===void 0?void 0:r.getLabel())!==null&&o!==void 0?o:void 0,this._quickFixKbLabel=(a=(s=this._keybindingService.lookupKeybinding(yU))===null||s===void 0?void 0:s.getLabel())!==null&&a!==void 0?a:void 0,this._updateLightBulbTitleAndIcon()}))}dispose(){super.dispose(),this._editor.removeContentWidget(this)}getId(){return"LightBulbWidget"}getDomNode(){return this._domNode}getPosition(){return this._state.type===1?this._state.widgetPosition:null}update(e,t,i){if(e.validActions.length<=0)return this.hide();if(!this._editor.getOptions().get(65).enabled)return this.hide();const o=this._editor.getModel();if(!o)return this.hide();const{lineNumber:s,column:a}=o.validatePosition(i),l=o.getOptions().tabSize,u=this._editor.getOptions().get(50),c=o.getLineContent(s),d=HT(c,l),h=u.spaceWidth*d>22,g=b=>b>2&&this._editor.getTopForLineNumber(b)===this._editor.getTopForLineNumber(b-1);let m=s,f=1;if(!h){if(s>1&&!g(s-1))m-=1;else if(s=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},FU=function(n,e){return function(t,i){e(t,i,n)}};const n2e="acceptSelectedCodeAction",i2e="previewSelectedCodeAction";class ALt{get templateId(){return"header"}renderTemplate(e){e.classList.add("group-header");const t=document.createElement("span");return e.append(t),{container:e,text:t}}renderElement(e,t,i){var r,o;i.text.textContent=(o=(r=e.group)===null||r===void 0?void 0:r.title)!==null&&o!==void 0?o:""}disposeTemplate(e){}}let _U=class{get templateId(){return"action"}constructor(e,t){this._supportsPreview=e,this._keybindingService=t}renderTemplate(e){e.classList.add(this.templateId);const t=document.createElement("div");t.className="icon",e.append(t);const i=document.createElement("span");i.className="title",e.append(i);const r=new pw(e,eu);return{container:e,icon:t,text:i,keybinding:r}}renderElement(e,t,i){var r,o,s;if(!((r=e.group)===null||r===void 0)&&r.icon?(i.icon.className=on.asClassName(e.group.icon),e.group.icon.color&&(i.icon.style.color=Lt(e.group.icon.color.id))):(i.icon.className=on.asClassName(ct.lightBulb),i.icon.style.color="var(--vscode-editorLightBulb-foreground)"),!e.item||!e.label)return;i.text.textContent=o2e(e.label),i.keybinding.set(e.keybinding),Ugt(!!e.keybinding,i.keybinding.element);const a=(o=this._keybindingService.lookupKeybinding(n2e))===null||o===void 0?void 0:o.getLabel(),l=(s=this._keybindingService.lookupKeybinding(i2e))===null||s===void 0?void 0:s.getLabel();i.container.classList.toggle("option-disabled",e.disabled),e.disabled?i.container.title=e.label:a&&l?this._supportsPreview&&e.canPreview?i.container.title=x({key:"label-preview",comment:['placeholders are keybindings, e.g "F2 to apply, Shift+F2 to preview"']},"{0} to apply, {1} to preview",a,l):i.container.title=x({key:"label",comment:['placeholder is a keybinding, e.g "F2 to apply"']},"{0} to apply",a):i.container.title=""}disposeTemplate(e){}};_U=t2e([FU(1,Pi)],_U);class NLt extends UIEvent{constructor(){super("acceptSelectedAction")}}class r2e extends UIEvent{constructor(){super("previewSelectedAction")}}function kLt(n){if(n.kind==="action")return n.label}let DU=class extends De{constructor(e,t,i,r,o,s){super(),this._delegate=r,this._contextViewService=o,this._keybindingService=s,this._actionLineHeight=24,this._headerLineHeight=26,this.cts=this._register(new co),this.domNode=document.createElement("div"),this.domNode.classList.add("actionList");const a={getHeight:l=>l.kind==="header"?this._headerLineHeight:this._actionLineHeight,getTemplateId:l=>l.kind};this._list=this._register(new zu(e,this.domNode,a,[new _U(t,this._keybindingService),new ALt],{keyboardSupport:!1,typeNavigationEnabled:!0,keyboardNavigationLabelProvider:{getKeyboardNavigationLabel:kLt},accessibilityProvider:{getAriaLabel:l=>{if(l.kind==="action"){let u=l.label?o2e(l==null?void 0:l.label):"";return l.disabled&&(u=x({key:"customQuickFixWidget.labels",comment:["Action widget labels for accessibility."]},"{0}, Disabled Reason: {1}",u,l.disabled)),u}return null},getWidgetAriaLabel:()=>x({key:"customQuickFixWidget",comment:["An action widget option"]},"Action Widget"),getRole:l=>l.kind==="action"?"option":"separator",getWidgetRole:()=>"listbox"}})),this._list.style(g0),this._register(this._list.onMouseClick(l=>this.onListClick(l))),this._register(this._list.onMouseOver(l=>this.onListHover(l))),this._register(this._list.onDidChangeFocus(()=>this.onFocus())),this._register(this._list.onDidChangeSelection(l=>this.onListSelection(l))),this._allMenuItems=i,this._list.splice(0,this._list.length,this._allMenuItems),this._list.length&&this.focusNext()}focusCondition(e){return!e.disabled&&e.kind==="action"}hide(e){this._delegate.onHide(e),this.cts.cancel(),this._contextViewService.hideContextView()}layout(e){const t=this._allMenuItems.filter(l=>l.kind==="header").length,r=this._allMenuItems.length*this._actionLineHeight+t*this._headerLineHeight-t*this._actionLineHeight;this._list.layout(r);let o=e;if(this._allMenuItems.length>=50)o=380;else{const l=this._allMenuItems.map((u,c)=>{const d=this.domNode.ownerDocument.getElementById(this._list.getElementID(c));if(d){d.style.width="auto";const h=d.getBoundingClientRect().width;return d.style.width="",h}return 0});o=Math.max(...l,e)}const a=Math.min(r,this.domNode.ownerDocument.body.clientHeight*.7);return this._list.layout(a,o),this.domNode.style.height=`${a}px`,this._list.domFocus(),o}focusPrevious(){this._list.focusPrevious(1,!0,void 0,this.focusCondition)}focusNext(){this._list.focusNext(1,!0,void 0,this.focusCondition)}acceptSelected(e){const t=this._list.getFocus();if(t.length===0)return;const i=t[0],r=this._list.element(i);if(!this.focusCondition(r))return;const o=e?new r2e:new NLt;this._list.setSelection([i],o)}onListSelection(e){if(!e.elements.length)return;const t=e.elements[0];t.item&&this.focusCondition(t)?this._delegate.onSelect(t.item,e.browserEvent instanceof r2e):this._list.setSelection([])}onFocus(){var e,t;const i=this._list.getFocus();if(i.length===0)return;const r=i[0],o=this._list.element(r);(t=(e=this._delegate).onFocus)===null||t===void 0||t.call(e,o.item)}async onListHover(e){const t=e.element;if(t&&t.item&&this.focusCondition(t)){if(this._delegate.onHover&&!t.disabled&&t.kind==="action"){const i=await this._delegate.onHover(t.item,this.cts.token);t.canPreview=i?i.canPreview:void 0}e.index&&this._list.splice(e.index,1,[t])}this._list.setFocus(typeof e.index=="number"?[e.index]:[])}onListClick(e){e.element&&this.focusCondition(e.element)&&this._list.setFocus([])}};DU=t2e([FU(4,hm),FU(5,Pi)],DU);function o2e(n){return n.replace(/\r\n|\r|\n/g," ")}var MLt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},AU=function(n,e){return function(t,i){e(t,i,n)}};re("actionBar.toggledBackground",{dark:PC,light:PC,hcDark:PC,hcLight:PC},x("actionBar.toggledBackground","Background color for toggled action items in action bar."));const wv={Visible:new It("codeActionMenuVisible",!1,x("codeActionMenuVisible","Whether the action widget list is visible"))},Sv=Un("actionWidgetService");let xv=class extends De{get isVisible(){return wv.Visible.getValue(this._contextKeyService)||!1}constructor(e,t,i){super(),this._contextViewService=e,this._contextKeyService=t,this._instantiationService=i,this._list=this._register(new zs)}show(e,t,i,r,o,s,a){const l=wv.Visible.bindTo(this._contextKeyService),u=this._instantiationService.createInstance(DU,e,t,i,r);this._contextViewService.showContextView({getAnchor:()=>o,render:c=>(l.set(!0),this._renderWidget(c,u,a??[])),onHide:c=>{l.reset(),this._onWidgetClosed(c)}},s,!1)}acceptSelected(e){var t;(t=this._list.value)===null||t===void 0||t.acceptSelected(e)}focusPrevious(){var e,t;(t=(e=this._list)===null||e===void 0?void 0:e.value)===null||t===void 0||t.focusPrevious()}focusNext(){var e,t;(t=(e=this._list)===null||e===void 0?void 0:e.value)===null||t===void 0||t.focusNext()}hide(){var e;(e=this._list.value)===null||e===void 0||e.hide(),this._list.clear()}_renderWidget(e,t,i){var r;const o=document.createElement("div");if(o.classList.add("action-widget"),e.appendChild(o),this._list.value=t,this._list.value)o.appendChild(this._list.value.domNode);else throw new Error("List has no value");const s=new je,a=document.createElement("div"),l=e.appendChild(a);l.classList.add("context-view-block"),s.add(Ve(l,at.MOUSE_DOWN,m=>m.stopPropagation()));const u=document.createElement("div"),c=e.appendChild(u);c.classList.add("context-view-pointerBlock"),s.add(Ve(c,at.POINTER_MOVE,()=>c.remove())),s.add(Ve(c,at.MOUSE_DOWN,()=>c.remove()));let d=0;if(i.length){const m=this._createActionBar(".action-widget-action-bar",i);m&&(o.appendChild(m.getContainer().parentElement),s.add(m),d=m.getContainer().offsetWidth)}const h=(r=this._list.value)===null||r===void 0?void 0:r.layout(d);o.style.width=`${h}px`;const g=s.add(ph(e));return s.add(g.onDidBlur(()=>this.hide())),s}_createActionBar(e,t){if(!t.length)return;const i=vt(e),r=new Rc(i);return r.push(t,{icon:!1,label:!0}),r}_onWidgetClosed(e){var t;(t=this._list.value)===null||t===void 0||t.hide(e)}};xv=MLt([AU(0,hm),AU(1,ln),AU(2,tn)],xv),ti(Sv,xv,1);const ED=1100;Qi(class extends Al{constructor(){super({id:"hideCodeActionWidget",title:ai("hideCodeActionWidget.title","Hide action widget"),precondition:wv.Visible,keybinding:{weight:ED,primary:9,secondary:[1033]}})}run(n){n.get(Sv).hide()}}),Qi(class extends Al{constructor(){super({id:"selectPrevCodeAction",title:ai("selectPrevCodeAction.title","Select previous action"),precondition:wv.Visible,keybinding:{weight:ED,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})}run(n){const e=n.get(Sv);e instanceof xv&&e.focusPrevious()}}),Qi(class extends Al{constructor(){super({id:"selectNextCodeAction",title:ai("selectNextCodeAction.title","Select next action"),precondition:wv.Visible,keybinding:{weight:ED,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})}run(n){const e=n.get(Sv);e instanceof xv&&e.focusNext()}}),Qi(class extends Al{constructor(){super({id:n2e,title:ai("acceptSelected.title","Accept selected action"),precondition:wv.Visible,keybinding:{weight:ED,primary:3,secondary:[2137]}})}run(n){const e=n.get(Sv);e instanceof xv&&e.acceptSelected()}}),Qi(class extends Al{constructor(){super({id:i2e,title:ai("previewSelected.title","Preview selected action"),precondition:wv.Visible,keybinding:{weight:ED,primary:2051}})}run(n){const e=n.get(Sv);e instanceof xv&&e.acceptSelected(!0)}});var Er;(function(n){n[n.Hint=1]="Hint",n[n.Info=2]="Info",n[n.Warning=4]="Warning",n[n.Error=8]="Error"})(Er||(Er={})),function(n){function e(s,a){return a-s}n.compare=e;const t=Object.create(null);t[n.Error]=x("sev.error","Error"),t[n.Warning]=x("sev.warning","Warning"),t[n.Info]=x("sev.info","Info");function i(s){return t[s]||""}n.toString=i;function r(s){switch(s){case to.Error:return n.Error;case to.Warning:return n.Warning;case to.Info:return n.Info;case to.Ignore:return n.Hint}}n.fromSeverity=r;function o(s){switch(s){case n.Error:return to.Error;case n.Warning:return to.Warning;case n.Info:return to.Info;case n.Hint:return to.Ignore}}n.toSeverity=o}(Er||(Er={}));var pW;(function(n){const e="";function t(r){return i(r,!0)}n.makeKey=t;function i(r,o){const s=[e];return r.source?s.push(r.source.replace("¦","\\¦")):s.push(e),r.code?typeof r.code=="string"?s.push(r.code.replace("¦","\\¦")):s.push(r.code.value.replace("¦","\\¦")):s.push(e),r.severity!==void 0&&r.severity!==null?s.push(Er.toString(r.severity)):s.push(e),r.message&&o?s.push(r.message.replace("¦","\\¦")):s.push(e),r.startLineNumber!==void 0&&r.startLineNumber!==null?s.push(r.startLineNumber.toString()):s.push(e),r.startColumn!==void 0&&r.startColumn!==null?s.push(r.startColumn.toString()):s.push(e),r.endLineNumber!==void 0&&r.endLineNumber!==null?s.push(r.endLineNumber.toString()):s.push(e),r.endColumn!==void 0&&r.endColumn!==null?s.push(r.endColumn.toString()):s.push(e),s.push(e),s.join("¦")}n.makeKeyOptionalMessage=i})(pW||(pW={}));const pm=Un("markerService"),s2e=new It("supportedCodeAction",""),a2e="_typescript.applyFixAllCodeAction";class ZLt extends De{constructor(e,t,i,r=250){super(),this._editor=e,this._markerService=t,this._signalChange=i,this._delay=r,this._autoTriggerTimer=this._register(new md),this._register(this._markerService.onMarkerChanged(o=>this._onMarkerChanges(o))),this._register(this._editor.onDidChangeCursorPosition(()=>this._tryAutoTrigger()))}trigger(e){const t=this._getRangeOfSelectionUnlessWhitespaceEnclosed(e);this._signalChange(t?{trigger:e,selection:t}:void 0)}_onMarkerChanges(e){const t=this._editor.getModel();t&&e.some(i=>M6(i,t.uri))&&this._tryAutoTrigger()}_tryAutoTrigger(){this._autoTriggerTimer.cancelAndSet(()=>{this.trigger({type:2,triggerAction:gu.Default})},this._delay)}_getRangeOfSelectionUnlessWhitespaceEnclosed(e){if(!this._editor.hasModel())return;const t=this._editor.getSelection();if(e.type===1)return t;const i=this._editor.getOption(65).enabled;if(i!==Cd.Off){{if(i===Cd.On)return t;if(i===Cd.OnCode){if(!t.isEmpty())return t;const o=this._editor.getModel(),{lineNumber:s,column:a}=t.getPosition(),l=o.getLineContent(s);if(l.length===0)return;if(a===1){if(/\s/.test(l[0]))return}else if(a===o.getLineMaxColumn(s)){if(/\s/.test(l[l.length-1]))return}else if(/\s/.test(l[a-2])&&/\s/.test(l[a-1]))return}}return t}}}var Lv;(function(n){n.Empty={type:0};class e{constructor(i,r,o){this.trigger=i,this.position=r,this._cancellablePromise=o,this.type=1,this.actions=o.catch(s=>{if(Ng(s))return l2e;throw s})}cancel(){this._cancellablePromise.cancel()}}n.Triggered=e})(Lv||(Lv={}));const l2e=Object.freeze({allActions:[],validActions:[],dispose:()=>{},documentation:[],hasAutoFix:!1,hasAIFix:!1,allAIFixes:!1});class TLt extends De{constructor(e,t,i,r,o,s){super(),this._editor=e,this._registry=t,this._markerService=i,this._progressService=o,this._configurationService=s,this._codeActionOracle=this._register(new zs),this._state=Lv.Empty,this._onDidChangeState=this._register(new be),this.onDidChangeState=this._onDidChangeState.event,this._disposed=!1,this._supportedCodeActions=s2e.bindTo(r),this._register(this._editor.onDidChangeModel(()=>this._update())),this._register(this._editor.onDidChangeModelLanguage(()=>this._update())),this._register(this._registry.onDidChange(()=>this._update())),this._register(this._editor.onDidChangeConfiguration(a=>{a.hasChanged(65)&&this._update()})),this._update()}dispose(){this._disposed||(this._disposed=!0,super.dispose(),this.setState(Lv.Empty,!0))}_settingEnabledNearbyQuickfixes(){var e;const t=(e=this._editor)===null||e===void 0?void 0:e.getModel();return this._configurationService?this._configurationService.getValue("editor.codeActionWidget.includeNearbyQuickFixes",{resource:t==null?void 0:t.uri}):!1}_update(){if(this._disposed)return;this._codeActionOracle.value=void 0,this.setState(Lv.Empty);const e=this._editor.getModel();if(e&&this._registry.has(e)&&!this._editor.getOption(91)){const t=this._registry.all(e).flatMap(i=>{var r;return(r=i.providedCodeActionKinds)!==null&&r!==void 0?r:[]});this._supportedCodeActions.set(t.join(" ")),this._codeActionOracle.value=new ZLt(this._editor,this._markerService,i=>{var r;if(!i){this.setState(Lv.Empty);return}const o=i.selection.getStartPosition(),s=$o(async a=>{var l,u,c,d,h,g,m,f,b,C;if(this._settingEnabledNearbyQuickfixes()&&i.trigger.type===1&&(i.trigger.triggerAction===gu.QuickFix||!((u=(l=i.trigger.filter)===null||l===void 0?void 0:l.include)===null||u===void 0)&&u.contains(dn.QuickFix))){const v=await TD(this._registry,e,i.selection,i.trigger,ep.None,a),w=[...v.allActions];if(a.isCancellationRequested)return l2e;const S=(c=v.validActions)===null||c===void 0?void 0:c.some(L=>L.action.kind?dn.QuickFix.contains(new dn(L.action.kind)):!1),F=this._markerService.read({resource:e.uri});if(S){for(const L of v.validActions)!((h=(d=L.action.command)===null||d===void 0?void 0:d.arguments)===null||h===void 0)&&h.some(D=>typeof D=="string"&&D.includes(a2e))&&(L.action.diagnostics=[...F.filter(D=>D.relatedInformation)]);return{validActions:v.validActions,allActions:w,documentation:v.documentation,hasAutoFix:v.hasAutoFix,hasAIFix:v.hasAIFix,allAIFixes:v.allAIFixes,dispose:()=>{v.dispose()}}}else if(!S&&F.length>0){const L=i.selection.getPosition();let D=L,A=Number.MAX_VALUE;const M=[...v.validActions];for(const Z of F){const T=Z.endColumn,E=Z.endLineNumber,V=Z.startLineNumber;if(E===L.lineNumber||V===L.lineNumber){D=new ve(E,T);const z={type:i.trigger.type,triggerAction:i.trigger.triggerAction,filter:{include:!((g=i.trigger.filter)===null||g===void 0)&&g.include?(m=i.trigger.filter)===null||m===void 0?void 0:m.include:dn.QuickFix},autoApply:i.trigger.autoApply,context:{notAvailableMessage:((f=i.trigger.context)===null||f===void 0?void 0:f.notAvailableMessage)||"",position:D}},O=new Gt(D.lineNumber,D.column,D.lineNumber,D.column),P=await TD(this._registry,e,O,z,ep.None,a);if(P.validActions.length!==0){for(const B of P.validActions)!((C=(b=B.action.command)===null||b===void 0?void 0:b.arguments)===null||C===void 0)&&C.some(Y=>typeof Y=="string"&&Y.includes(a2e))&&(B.action.diagnostics=[...F.filter(Y=>Y.relatedInformation)]);v.allActions.length===0&&w.push(...P.allActions),Math.abs(L.column-T)E.findIndex(V=>V.action.title===Z.action.title)===T);return W.sort((Z,T)=>Z.action.isPreferred&&!T.action.isPreferred?-1:!Z.action.isPreferred&&T.action.isPreferred||Z.action.isAI&&!T.action.isAI?1:!Z.action.isAI&&T.action.isAI?-1:0),{validActions:W,allActions:w,documentation:v.documentation,hasAutoFix:v.hasAutoFix,hasAIFix:v.hasAIFix,allAIFixes:v.allAIFixes,dispose:()=>{v.dispose()}}}}return TD(this._registry,e,i.selection,i.trigger,ep.None,a)});i.trigger.type===1&&((r=this._progressService)===null||r===void 0||r.showWhile(s,250)),this.setState(new Lv.Triggered(i.trigger,o,s))},void 0),this._codeActionOracle.value.trigger({type:2,triggerAction:gu.Default})}else this._supportedCodeActions.reset()}trigger(e){var t;(t=this._codeActionOracle.value)===null||t===void 0||t.trigger(e)}setState(e,t){e!==this._state&&(this._state.type===1&&this._state.cancel(),this._state=e,!t&&!this._disposed&&this._onDidChangeState.fire(e))}}var ELt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},ip=function(n,e){return function(t,i){e(t,i,n)}},Cw;const WLt="quickfix-edit-highlight";let m0=Cw=class extends De{static get(e){return e.getContribution(Cw.ID)}constructor(e,t,i,r,o,s,a,l,u,c){super(),this._commandService=a,this._configurationService=l,this._actionWidgetService=u,this._instantiationService=c,this._activeCodeActions=this._register(new zs),this._showDisabled=!1,this._disposed=!1,this._editor=e,this._model=this._register(new TLt(this._editor,o.codeActionProvider,t,i,s,l)),this._register(this._model.onDidChangeState(d=>this.update(d))),this._lightBulbWidget=new Mg(()=>{const d=this._editor.getContribution(Iv.ID);return d&&this._register(d.onClick(h=>this.showCodeActionsFromLightbulb(h.actions,h))),d}),this._resolver=r.createInstance(dW),this._register(this._editor.onDidLayoutChange(()=>this._actionWidgetService.hide()))}dispose(){this._disposed=!0,super.dispose()}async showCodeActionsFromLightbulb(e,t){if(e.allAIFixes&&e.validActions.length===1){const i=e.validActions[0],r=i.action.command;r&&r.id==="inlineChat.start"&&r.arguments&&r.arguments.length>=1&&(r.arguments[0]={...r.arguments[0],autoSend:!1}),await this._applyCodeAction(i,!1,!1,mw.FromAILightbulb);return}await this.showCodeActionList(e,t,{includeDisabledActions:!1,fromLightbulb:!0})}showCodeActions(e,t,i){return this.showCodeActionList(t,i,{includeDisabledActions:!1,fromLightbulb:!1})}manualTriggerAtCurrentPosition(e,t,i,r){var o;if(!this._editor.hasModel())return;(o=ll.get(this._editor))===null||o===void 0||o.closeMessage();const s=this._editor.getPosition();this._trigger({type:1,triggerAction:t,filter:i,autoApply:r,context:{notAvailableMessage:e,position:s}})}_trigger(e){return this._model.trigger(e)}async _applyCodeAction(e,t,i,r){try{await this._instantiationService.invokeFunction(dLt,e,r,{preview:i,editor:this._editor})}finally{t&&this._trigger({type:2,triggerAction:gu.QuickFix,filter:{}})}}async update(e){var t,i,r,o,s,a,l;if(e.type!==1){(t=this._lightBulbWidget.rawValue)===null||t===void 0||t.hide();return}let u;try{u=await e.actions}catch(c){fn(c);return}if(!this._disposed)if((i=this._lightBulbWidget.value)===null||i===void 0||i.update(u,e.trigger,e.position),e.trigger.type===1){if(!((r=e.trigger.filter)===null||r===void 0)&&r.include){const d=this.tryGetValidActionToApply(e.trigger,u);if(d){try{(o=this._lightBulbWidget.value)===null||o===void 0||o.hide(),await this._applyCodeAction(d,!1,!1,mw.FromCodeActions)}finally{u.dispose()}return}if(e.trigger.context){const h=this.getInvalidActionThatWouldHaveBeenApplied(e.trigger,u);if(h&&h.action.disabled){(s=ll.get(this._editor))===null||s===void 0||s.showMessage(h.action.disabled,e.trigger.context.position),u.dispose();return}}}const c=!!(!((a=e.trigger.filter)===null||a===void 0)&&a.include);if(e.trigger.context&&(!u.allActions.length||!c&&!u.validActions.length)){(l=ll.get(this._editor))===null||l===void 0||l.showMessage(e.trigger.context.notAvailableMessage,e.trigger.context.position),this._activeCodeActions.value=u,u.dispose();return}this._activeCodeActions.value=u,this.showCodeActionList(u,this.toCoords(e.position),{includeDisabledActions:c,fromLightbulb:!1})}else this._actionWidgetService.isVisible?u.dispose():this._activeCodeActions.value=u}getInvalidActionThatWouldHaveBeenApplied(e,t){if(t.allActions.length&&(e.autoApply==="first"&&t.validActions.length===0||e.autoApply==="ifSingle"&&t.allActions.length===1))return t.allActions.find(({action:i})=>i.disabled)}tryGetValidActionToApply(e,t){if(t.validActions.length&&(e.autoApply==="first"&&t.validActions.length>0||e.autoApply==="ifSingle"&&t.validActions.length===1))return t.validActions[0]}async showCodeActionList(e,t,i){const r=this._editor.createDecorationsCollection(),o=this._editor.getDomNode();if(!o)return;const s=i.includeDisabledActions&&(this._showDisabled||e.validActions.length===0)?e.allActions:e.validActions;if(!s.length)return;const a=ve.isIPosition(t)?this.toCoords(t):t,l={onSelect:async(u,c)=>{this._applyCodeAction(u,!0,!!c,mw.FromCodeActions),this._actionWidgetService.hide(),r.clear()},onHide:()=>{var u;(u=this._editor)===null||u===void 0||u.focus(),r.clear()},onHover:async(u,c)=>{var d;if(!c.isCancellationRequested)return{canPreview:!!(!((d=u.action.edit)===null||d===void 0)&&d.edits.length)}},onFocus:u=>{var c,d;if(u&&u.action){const h=u.action.ranges,g=u.action.diagnostics;if(r.clear(),h&&h.length>0){const m=g&&(g==null?void 0:g.length)>1?g.map(f=>({range:f,options:Cw.DECORATION})):h.map(f=>({range:f,options:Cw.DECORATION}));r.set(m)}else if(g&&g.length>0){const m=g.map(b=>({range:b,options:Cw.DECORATION}));r.set(m);const f=g[0];if(f.startLineNumber&&f.startColumn){const b=(d=(c=this._editor.getModel())===null||c===void 0?void 0:c.getWordAtPosition({lineNumber:f.startLineNumber,column:f.startColumn}))===null||d===void 0?void 0:d.word;yf(x("editingNewSelection","Context: {0} at line {1} and column {2}.",b,f.startLineNumber,f.startColumn))}}}else r.clear()}};this._actionWidgetService.show("codeActionWidget",!0,pLt(s,this._shouldShowHeaders(),this._resolver.getResolver()),l,a,o,this._getActionBarActions(e,t,i))}toCoords(e){if(!this._editor.hasModel())return{x:0,y:0};this._editor.revealPosition(e,1),this._editor.render();const t=this._editor.getScrolledVisiblePosition(e),i=go(this._editor.getDomNode()),r=i.left+t.left,o=i.top+t.top+t.height;return{x:r,y:o}}_shouldShowHeaders(){var e;const t=(e=this._editor)===null||e===void 0?void 0:e.getModel();return this._configurationService.getValue("editor.codeActionWidget.showHeaders",{resource:t==null?void 0:t.uri})}_getActionBarActions(e,t,i){if(i.fromLightbulb)return[];const r=e.documentation.map(o=>{var s;return{id:o.id,label:o.title,tooltip:(s=o.tooltip)!==null&&s!==void 0?s:"",class:void 0,enabled:!0,run:()=>{var a;return this._commandService.executeCommand(o.id,...(a=o.arguments)!==null&&a!==void 0?a:[])}}});return i.includeDisabledActions&&e.validActions.length>0&&e.allActions.length!==e.validActions.length&&r.push(this._showDisabled?{id:"hideMoreActions",label:x("hideMoreActions","Hide Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!1,this.showCodeActionList(e,t,i))}:{id:"showMoreActions",label:x("showMoreActions","Show Disabled"),enabled:!0,tooltip:"",class:void 0,run:()=>(this._showDisabled=!0,this.showCodeActionList(e,t,i))}),r}};m0.ID="editor.contrib.codeActionController",m0.DECORATION=In.register({description:"quickfix-highlight",className:WLt}),m0=Cw=ELt([ip(1,pm),ip(2,ln),ip(3,tn),ip(4,Tt),ip(5,u0),ip(6,Vr),ip(7,Xn),ip(8,Sv),ip(9,tn)],m0),kc((n,e)=>{((r,o)=>{o&&e.addRule(`.monaco-editor ${r} { background-color: ${o}; }`)})(".quickfix-edit-highlight",n.getColor(kf));const i=n.getColor(Gb);i&&e.addRule(`.monaco-editor .quickfix-edit-highlight { border: 1px ${Jg(n.type)?"dotted":"solid"} ${i}; box-sizing: border-box; }`)});function WD(n){return Be.regex(s2e.keys()[0],new RegExp("(\\s|^)"+Zu(n.value)+"\\b"))}const NU={type:"object",defaultSnippets:[{body:{kind:""}}],properties:{kind:{type:"string",description:x("args.schema.kind","Kind of the code action to run.")},apply:{type:"string",description:x("args.schema.apply","Controls when the returned actions are applied."),default:"ifSingle",enum:["first","ifSingle","never"],enumDescriptions:[x("args.schema.apply.first","Always apply the first returned code action."),x("args.schema.apply.ifSingle","Apply the first returned code action if it is the only one."),x("args.schema.apply.never","Do not apply the returned code actions.")]},preferred:{type:"boolean",default:!1,description:x("args.schema.preferred","Controls if only preferred code actions should be returned.")}}};function Fv(n,e,t,i,r=gu.Default){if(n.hasModel()){const o=m0.get(n);o==null||o.manualTriggerAtCurrentPosition(e,r,t,i)}}class RLt extends Nt{constructor(){super({id:yU,label:x("quickfix.trigger.label","Quick Fix..."),alias:"Quick Fix...",precondition:Be.and(ne.writable,ne.hasCodeActionsProvider),kbOpts:{kbExpr:ne.textInputFocus,primary:2137,weight:100}})}run(e,t){return Fv(t,x("editor.action.quickFix.noneMessage","No code actions available"),void 0,void 0,gu.QuickFix)}}class GLt extends cs{constructor(){super({id:HIe,precondition:Be.and(ne.writable,ne.hasCodeActionsProvider),metadata:{description:"Trigger a code action",args:[{name:"args",schema:NU}]}})}runEditorCommand(e,t,i){const r=fm.fromUser(i,{kind:dn.Empty,apply:"ifSingle"});return Fv(t,typeof(i==null?void 0:i.kind)=="string"?r.preferred?x("editor.action.codeAction.noneMessage.preferred.kind","No preferred code actions for '{0}' available",i.kind):x("editor.action.codeAction.noneMessage.kind","No code actions for '{0}' available",i.kind):r.preferred?x("editor.action.codeAction.noneMessage.preferred","No preferred code actions available"):x("editor.action.codeAction.noneMessage","No code actions available"),{include:r.kind,includeSourceActions:!0,onlyIncludePreferredActions:r.preferred},r.apply)}}class VLt extends Nt{constructor(){super({id:JIe,label:x("refactor.label","Refactor..."),alias:"Refactor...",precondition:Be.and(ne.writable,ne.hasCodeActionsProvider),kbOpts:{kbExpr:ne.textInputFocus,primary:3120,mac:{primary:1328},weight:100},contextMenuOpts:{group:"1_modification",order:2,when:Be.and(ne.writable,WD(dn.Refactor))},metadata:{description:"Refactor...",args:[{name:"args",schema:NU}]}})}run(e,t,i){const r=fm.fromUser(i,{kind:dn.Refactor,apply:"never"});return Fv(t,typeof(i==null?void 0:i.kind)=="string"?r.preferred?x("editor.action.refactor.noneMessage.preferred.kind","No preferred refactorings for '{0}' available",i.kind):x("editor.action.refactor.noneMessage.kind","No refactorings for '{0}' available",i.kind):r.preferred?x("editor.action.refactor.noneMessage.preferred","No preferred refactorings available"):x("editor.action.refactor.noneMessage","No refactorings available"),{include:dn.Refactor.contains(r.kind)?r.kind:dn.None,onlyIncludePreferredActions:r.preferred},r.apply,gu.Refactor)}}class XLt extends Nt{constructor(){super({id:KIe,label:x("source.label","Source Action..."),alias:"Source Action...",precondition:Be.and(ne.writable,ne.hasCodeActionsProvider),contextMenuOpts:{group:"1_modification",order:2.1,when:Be.and(ne.writable,WD(dn.Source))},metadata:{description:"Source Action...",args:[{name:"args",schema:NU}]}})}run(e,t,i){const r=fm.fromUser(i,{kind:dn.Source,apply:"never"});return Fv(t,typeof(i==null?void 0:i.kind)=="string"?r.preferred?x("editor.action.source.noneMessage.preferred.kind","No preferred source actions for '{0}' available",i.kind):x("editor.action.source.noneMessage.kind","No source actions for '{0}' available",i.kind):r.preferred?x("editor.action.source.noneMessage.preferred","No preferred source actions available"):x("editor.action.source.noneMessage","No source actions available"),{include:dn.Source.contains(r.kind)?r.kind:dn.None,includeSourceActions:!0,onlyIncludePreferredActions:r.preferred},r.apply,gu.SourceAction)}}class PLt extends Nt{constructor(){super({id:IU,label:x("organizeImports.label","Organize Imports"),alias:"Organize Imports",precondition:Be.and(ne.writable,WD(dn.SourceOrganizeImports)),kbOpts:{kbExpr:ne.textInputFocus,primary:1581,weight:100}})}run(e,t){return Fv(t,x("editor.action.organize.noneMessage","No organize imports action available"),{include:dn.SourceOrganizeImports,includeSourceActions:!0},"ifSingle",gu.OrganizeImports)}}class OLt extends Nt{constructor(){super({id:wU,label:x("fixAll.label","Fix All"),alias:"Fix All",precondition:Be.and(ne.writable,WD(dn.SourceFixAll))})}run(e,t){return Fv(t,x("fixAll.noneMessage","No fix all action available"),{include:dn.SourceFixAll,includeSourceActions:!0},"ifSingle",gu.FixAll)}}class BLt extends Nt{constructor(){super({id:UIe,label:x("autoFix.label","Auto Fix..."),alias:"Auto Fix...",precondition:Be.and(ne.writable,WD(dn.QuickFix)),kbOpts:{kbExpr:ne.textInputFocus,primary:1625,mac:{primary:2649},weight:100}})}run(e,t){return Fv(t,x("editor.action.autoFix.noneMessage","No auto fixes available"),{include:dn.QuickFix,onlyIncludePreferredActions:!0},"ifSingle",gu.AutoFix)}}Ii(m0.ID,m0,3),Ii(Iv.ID,Iv,4),it(RLt),it(VLt),it(XLt),it(PLt),it(BLt),it(OLt),mt(new GLt),xo.as(Ih.Configuration).registerConfiguration({...lW,properties:{"editor.codeActionWidget.showHeaders":{type:"boolean",scope:5,description:x("showCodeActionHeaders","Enable/disable showing group headers in the Code Action menu."),default:!0}}}),xo.as(Ih.Configuration).registerConfiguration({...lW,properties:{"editor.codeActionWidget.includeNearbyQuickFixes":{type:"boolean",scope:5,description:x("includeNearbyQuickFixes","Enable/disable showing nearest Quick Fix within a line when not currently on a diagnostic."),default:!0}}});class kU{constructor(){this.lenses=[],this._disposables=new je}dispose(){this._disposables.dispose()}get isDisposed(){return this._disposables.isDisposed}add(e,t){this._disposables.add(e);for(const i of e.lenses)this.lenses.push({symbol:i,provider:t})}}async function u2e(n,e,t){const i=n.ordered(e),r=new Map,o=new kU,s=i.map(async(a,l)=>{r.set(a,l);try{const u=await Promise.resolve(a.provideCodeLenses(e,t));u&&o.add(u,a)}catch(u){wo(u)}});return await Promise.all(s),o.lenses=o.lenses.sort((a,l)=>a.symbol.range.startLineNumberl.symbol.range.startLineNumber?1:r.get(a.provider)r.get(l.provider)?1:a.symbol.range.startColumnl.symbol.range.startColumn?1:0),o}ei.registerCommand("_executeCodeLensProvider",function(n,...e){let[t,i]=e;Ci($t.isUri(t)),Ci(typeof i=="number"||!i);const{codeLensProvider:r}=n.get(Tt),o=n.get(wr).getModel(t);if(!o)throw yc();const s=[],a=new je;return u2e(r,o,Hn.None).then(l=>{a.add(l);const u=[];for(const c of l.lenses)i==null||c.symbol.command?s.push(c.symbol):i-- >0&&c.provider.resolveCodeLens&&u.push(Promise.resolve(c.provider.resolveCodeLens(o,c.symbol,Hn.None)).then(d=>s.push(d||c.symbol)));return Promise.all(u)}).then(()=>s).finally(()=>{setTimeout(()=>a.dispose(),100)})});var vw;(function(n){n[n.STORAGE_DOES_NOT_EXIST=0]="STORAGE_DOES_NOT_EXIST",n[n.STORAGE_IN_MEMORY=1]="STORAGE_IN_MEMORY"})(vw||(vw={}));var yw;(function(n){n[n.None=0]="None",n[n.Initialized=1]="Initialized",n[n.Closed=2]="Closed"})(yw||(yw={}));class Iw extends De{constructor(e,t=Object.create(null)){super(),this.database=e,this.options=t,this._onDidChangeStorage=this._register(new SC),this.onDidChangeStorage=this._onDidChangeStorage.event,this.state=yw.None,this.cache=new Map,this.flushDelayer=this._register(new nbe(Iw.DEFAULT_FLUSH_DELAY)),this.pendingDeletes=new Set,this.pendingInserts=new Map,this.whenFlushedCallbacks=[],this.registerListeners()}registerListeners(){this._register(this.database.onDidChangeItemsExternal(e=>this.onDidChangeItemsExternal(e)))}onDidChangeItemsExternal(e){var t,i;this._onDidChangeStorage.pause();try{(t=e.changed)===null||t===void 0||t.forEach((r,o)=>this.acceptExternal(o,r)),(i=e.deleted)===null||i===void 0||i.forEach(r=>this.acceptExternal(r,void 0))}finally{this._onDidChangeStorage.resume()}}acceptExternal(e,t){if(this.state===yw.Closed)return;let i=!1;Mu(t)?i=this.cache.delete(e):this.cache.get(e)!==t&&(this.cache.set(e,t),i=!0),i&&this._onDidChangeStorage.fire({key:e,external:!0})}get(e,t){const i=this.cache.get(e);return Mu(i)?t:i}getBoolean(e,t){const i=this.get(e);return Mu(i)?t:i==="true"}getNumber(e,t){const i=this.get(e);return Mu(i)?t:parseInt(i,10)}async set(e,t,i=!1){if(this.state===yw.Closed)return;if(Mu(t))return this.delete(e,i);const r=za(t)||Array.isArray(t)?rwt(t):String(t);if(this.cache.get(e)!==r)return this.cache.set(e,r),this.pendingInserts.set(e,r),this.pendingDeletes.delete(e),this._onDidChangeStorage.fire({key:e,external:i}),this.doFlush()}async delete(e,t=!1){if(!(this.state===yw.Closed||!this.cache.delete(e)))return this.pendingDeletes.has(e)||this.pendingDeletes.add(e),this.pendingInserts.delete(e),this._onDidChangeStorage.fire({key:e,external:t}),this.doFlush()}get hasPending(){return this.pendingInserts.size>0||this.pendingDeletes.size>0}async flushPending(){if(!this.hasPending)return;const e={insert:this.pendingInserts,delete:this.pendingDeletes};return this.pendingDeletes=new Set,this.pendingInserts=new Map,this.database.updateItems(e).finally(()=>{var t;if(!this.hasPending)for(;this.whenFlushedCallbacks.length;)(t=this.whenFlushedCallbacks.pop())===null||t===void 0||t()})}async doFlush(e){return this.options.hint===vw.STORAGE_IN_MEMORY?this.flushPending():this.flushDelayer.trigger(()=>this.flushPending(),e)}}Iw.DEFAULT_FLUSH_DELAY=100;class MU{constructor(){this.onDidChangeItemsExternal=ft.None,this.items=new Map}async updateItems(e){var t,i;(t=e.insert)===null||t===void 0||t.forEach((r,o)=>this.items.set(o,r)),(i=e.delete)===null||i===void 0||i.forEach(r=>this.items.delete(r))}}const bW="__$__targetStorageMarker",bm=Un("storageService");var CW;(function(n){n[n.NONE=0]="NONE",n[n.SHUTDOWN=1]="SHUTDOWN"})(CW||(CW={}));function zLt(n){const e=n.get(bW);if(e)try{return JSON.parse(e)}catch{}return Object.create(null)}class vW extends De{constructor(e={flushInterval:vW.DEFAULT_FLUSH_INTERVAL}){super(),this.options=e,this._onDidChangeValue=this._register(new SC),this._onDidChangeTarget=this._register(new SC),this._onWillSaveState=this._register(new be),this.onWillSaveState=this._onWillSaveState.event,this._workspaceKeyTargets=void 0,this._profileKeyTargets=void 0,this._applicationKeyTargets=void 0}onDidChangeValue(e,t,i){return ft.filter(this._onDidChangeValue.event,r=>r.scope===e&&(t===void 0||r.key===t),i)}emitDidChangeValue(e,t){const{key:i,external:r}=t;if(i===bW){switch(e){case-1:this._applicationKeyTargets=void 0;break;case 0:this._profileKeyTargets=void 0;break;case 1:this._workspaceKeyTargets=void 0;break}this._onDidChangeTarget.fire({scope:e})}else this._onDidChangeValue.fire({scope:e,key:i,target:this.getKeyTargets(e)[i],external:r})}get(e,t,i){var r;return(r=this.getStorage(t))===null||r===void 0?void 0:r.get(e,i)}getBoolean(e,t,i){var r;return(r=this.getStorage(t))===null||r===void 0?void 0:r.getBoolean(e,i)}getNumber(e,t,i){var r;return(r=this.getStorage(t))===null||r===void 0?void 0:r.getNumber(e,i)}store(e,t,i,r,o=!1){if(Mu(t)){this.remove(e,i,o);return}this.withPausedEmitters(()=>{var s;this.updateKeyTarget(e,i,r),(s=this.getStorage(i))===null||s===void 0||s.set(e,t,o)})}remove(e,t,i=!1){this.withPausedEmitters(()=>{var r;this.updateKeyTarget(e,t,void 0),(r=this.getStorage(t))===null||r===void 0||r.delete(e,i)})}withPausedEmitters(e){this._onDidChangeValue.pause(),this._onDidChangeTarget.pause();try{e()}finally{this._onDidChangeValue.resume(),this._onDidChangeTarget.resume()}}updateKeyTarget(e,t,i,r=!1){var o,s;const a=this.getKeyTargets(t);typeof i=="number"?a[e]!==i&&(a[e]=i,(o=this.getStorage(t))===null||o===void 0||o.set(bW,JSON.stringify(a),r)):typeof a[e]=="number"&&(delete a[e],(s=this.getStorage(t))===null||s===void 0||s.set(bW,JSON.stringify(a),r))}get workspaceKeyTargets(){return this._workspaceKeyTargets||(this._workspaceKeyTargets=this.loadKeyTargets(1)),this._workspaceKeyTargets}get profileKeyTargets(){return this._profileKeyTargets||(this._profileKeyTargets=this.loadKeyTargets(0)),this._profileKeyTargets}get applicationKeyTargets(){return this._applicationKeyTargets||(this._applicationKeyTargets=this.loadKeyTargets(-1)),this._applicationKeyTargets}getKeyTargets(e){switch(e){case-1:return this.applicationKeyTargets;case 0:return this.profileKeyTargets;default:return this.workspaceKeyTargets}}loadKeyTargets(e){const t=this.getStorage(e);return t?zLt(t):Object.create(null)}}vW.DEFAULT_FLUSH_INTERVAL=60*1e3;class YLt extends vW{constructor(){super(),this.applicationStorage=this._register(new Iw(new MU,{hint:vw.STORAGE_IN_MEMORY})),this.profileStorage=this._register(new Iw(new MU,{hint:vw.STORAGE_IN_MEMORY})),this.workspaceStorage=this._register(new Iw(new MU,{hint:vw.STORAGE_IN_MEMORY})),this._register(this.workspaceStorage.onDidChangeStorage(e=>this.emitDidChangeValue(1,e))),this._register(this.profileStorage.onDidChangeStorage(e=>this.emitDidChangeValue(0,e))),this._register(this.applicationStorage.onDidChangeStorage(e=>this.emitDidChangeValue(-1,e)))}getStorage(e){switch(e){case-1:return this.applicationStorage;case 0:return this.profileStorage;default:return this.workspaceStorage}}}var HLt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},ULt=function(n,e){return function(t,i){e(t,i,n)}};const c2e=Un("ICodeLensCache");class d2e{constructor(e,t){this.lineCount=e,this.data=t}}let ZU=class{constructor(e){this._fakeProvider=new class{provideCodeLenses(){throw new Error("not supported")}},this._cache=new uv(20,.75);const t="codelens/cache";TF(Wi,()=>e.remove(t,1));const i="codelens/cache2",r=e.get(i,1,"{}");this._deserialize(r),ft.once(e.onWillSaveState)(o=>{o.reason===CW.SHUTDOWN&&e.store(i,this._serialize(),1,1)})}put(e,t){const i=t.lenses.map(s=>{var a;return{range:s.symbol.range,command:s.symbol.command&&{id:"",title:(a=s.symbol.command)===null||a===void 0?void 0:a.title}}}),r=new kU;r.add({lenses:i,dispose:()=>{}},this._fakeProvider);const o=new d2e(e.getLineCount(),r);this._cache.set(e.uri.toString(),o)}get(e){const t=this._cache.get(e.uri.toString());return t&&t.lineCount===e.getLineCount()?t.data:void 0}delete(e){this._cache.delete(e.uri.toString())}_serialize(){const e=Object.create(null);for(const[t,i]of this._cache){const r=new Set;for(const o of i.data.lenses)r.add(o.symbol.range.startLineNumber);e[t]={lineCount:i.lineCount,lines:[...r.values()]}}return JSON.stringify(e)}_deserialize(e){try{const t=JSON.parse(e);for(const i in t){const r=t[i],o=[];for(const a of r.lines)o.push({range:new K(a,1,a,11)});const s=new kU;s.add({lenses:o,dispose(){}},this._fakeProvider),this._cache.set(i,new d2e(r.lineCount,s))}}catch{}}};ZU=HLt([ULt(0,bm)],ZU),ti(c2e,ZU,1);class JLt{constructor(e,t,i){this.afterColumn=1073741824,this.afterLineNumber=e,this.heightInPx=t,this._onHeight=i,this.suppressMouseDown=!0,this.domNode=document.createElement("div")}onComputedHeight(e){this._lastHeight===void 0?this._lastHeight=e:this._lastHeight!==e&&(this._lastHeight=e,this._onHeight())}isVisible(){return this._lastHeight!==0&&this.domNode.hasAttribute("monaco-visible-view-zone")}}class RD{constructor(e,t){this.allowEditorOverflow=!1,this.suppressMouseDown=!0,this._commands=new Map,this._isEmpty=!0,this._editor=e,this._id=`codelens.widget-${RD._idPool++}`,this.updatePosition(t),this._domNode=document.createElement("span"),this._domNode.className="codelens-decoration"}withCommands(e,t){this._commands.clear();const i=[];let r=!1;for(let o=0;o{u.symbol.command&&l.push(u.symbol),i.addDecoration({range:u.symbol.range,options:h2e},d=>this._decorationIds[c]=d),a?a=K.plusRange(a,u.symbol.range):a=K.lift(u.symbol.range)}),this._viewZone=new JLt(a.startLineNumber-1,o,s),this._viewZoneId=r.addZone(this._viewZone),l.length>0&&(this._createContentWidgetIfNecessary(),this._contentWidget.withCommands(l,!1))}_createContentWidgetIfNecessary(){this._contentWidget?this._editor.layoutContentWidget(this._contentWidget):(this._contentWidget=new RD(this._editor,this._viewZone.afterLineNumber+1),this._editor.addContentWidget(this._contentWidget))}dispose(e,t){this._decorationIds.forEach(e.removeDecoration,e),this._decorationIds=[],t==null||t.removeZone(this._viewZoneId),this._contentWidget&&(this._editor.removeContentWidget(this._contentWidget),this._contentWidget=void 0),this._isDisposed=!0}isDisposed(){return this._isDisposed}isValid(){return this._decorationIds.some((e,t)=>{const i=this._editor.getModel().getDecorationRange(e),r=this._data[t].symbol;return!!(i&&K.isEmpty(r.range)===i.isEmpty())})}updateCodeLensSymbols(e,t){this._decorationIds.forEach(t.removeDecoration,t),this._decorationIds=[],this._data=e,this._data.forEach((i,r)=>{t.addDecoration({range:i.symbol.range,options:h2e},o=>this._decorationIds[r]=o)})}updateHeight(e,t){this._viewZone.heightInPx=e,t.layoutZone(this._viewZoneId),this._contentWidget&&this._editor.layoutContentWidget(this._contentWidget)}computeIfNecessary(e){if(!this._viewZone.isVisible())return null;for(let t=0;t=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},m2e=function(n,e){return function(t,i){e(t,i,n)}};const Xc=Un("ILanguageFeatureDebounceService");var yW;(function(n){const e=new WeakMap;let t=0;function i(r){let o=e.get(r);return o===void 0&&(o=++t,e.set(r,o)),o}n.of=i})(yW||(yW={}));class jLt{constructor(e){this._default=e}get(e){return this._default}update(e,t){return this._default}default(){return this._default}}class QLt{constructor(e,t,i,r,o,s){this._logService=e,this._name=t,this._registry=i,this._default=r,this._min=o,this._max=s,this._cache=new uv(50,.7)}_key(e){return e.id+this._registry.all(e).reduce((t,i)=>I5(yW.of(i),t),0)}get(e){const t=this._key(e),i=this._cache.get(t);return i?ol(i.value,this._min,this._max):this.default()}update(e,t){const i=this._key(e);let r=this._cache.get(i);r||(r=new xwt(6),this._cache.set(i,r));const o=ol(r.update(t),this._min,this._max);return TY(e.uri,"output")||this._logService.trace(`[DEBOUNCE: ${this._name}] for ${e.uri.toString()} is ${o}ms`),o}_overall(){const e=new Cye;for(const[,t]of this._cache)e.update(t.value);return e.value}default(){const e=this._overall()|0||this._default;return ol(e,this._min,this._max)}}let WU=class{constructor(e,t){this._logService=e,this._data=new Map,this._isDev=t.isExtensionDevelopment||!t.isBuilt}for(e,t,i){var r,o,s;const a=(r=i==null?void 0:i.min)!==null&&r!==void 0?r:50,l=(o=i==null?void 0:i.max)!==null&&o!==void 0?o:a**2,u=(s=i==null?void 0:i.key)!==null&&s!==void 0?s:void 0,c=`${yW.of(e)},${a}${u?","+u:""}`;let d=this._data.get(c);return d||(this._isDev?d=new QLt(this._logService,t,e,this._overallAverage()|0||a*1.5,a,l):(this._logService.debug(`[DEBOUNCE: ${t}] is disabled in developed mode`),d=new jLt(a*1.5)),this._data.set(c,d)),d}_overallAverage(){const e=new Cye;for(const t of this._data.values())e.update(t.default());return e.value}};WU=KLt([m2e(0,Qa),m2e(1,EU)],WU),ti(Xc,WU,1);var $Lt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},GD=function(n,e){return function(t,i){e(t,i,n)}};let ww=class{constructor(e,t,i,r,o,s){this._editor=e,this._languageFeaturesService=t,this._commandService=r,this._notificationService=o,this._codeLensCache=s,this._disposables=new je,this._localToDispose=new je,this._lenses=[],this._oldCodeLensModels=new je,this._provideCodeLensDebounce=i.for(t.codeLensProvider,"CodeLensProvide",{min:250}),this._resolveCodeLensesDebounce=i.for(t.codeLensProvider,"CodeLensResolve",{min:250,salt:"resolve"}),this._resolveCodeLensesScheduler=new Vi(()=>this._resolveCodeLensesInViewport(),this._resolveCodeLensesDebounce.default()),this._disposables.add(this._editor.onDidChangeModel(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>this._onModelChange())),this._disposables.add(this._editor.onDidChangeConfiguration(a=>{(a.hasChanged(50)||a.hasChanged(19)||a.hasChanged(18))&&this._updateLensStyle(),a.hasChanged(17)&&this._onModelChange()})),this._disposables.add(t.codeLensProvider.onDidChange(this._onModelChange,this)),this._onModelChange(),this._updateLensStyle()}dispose(){var e;this._localDispose(),this._disposables.dispose(),this._oldCodeLensModels.dispose(),(e=this._currentCodeLensModel)===null||e===void 0||e.dispose()}_getLayoutInfo(){const e=Math.max(1.3,this._editor.getOption(67)/this._editor.getOption(52));let t=this._editor.getOption(19);return(!t||t<5)&&(t=this._editor.getOption(52)*.9|0),{fontSize:t,codeLensHeight:t*e|0}}_updateLensStyle(){const{codeLensHeight:e,fontSize:t}=this._getLayoutInfo(),i=this._editor.getOption(18),r=this._editor.getOption(50),{style:o}=this._editor.getContainerDomNode();o.setProperty("--vscode-editorCodeLens-lineHeight",`${e}px`),o.setProperty("--vscode-editorCodeLens-fontSize",`${t}px`),o.setProperty("--vscode-editorCodeLens-fontFeatureSettings",r.fontFeatureSettings),i&&(o.setProperty("--vscode-editorCodeLens-fontFamily",i),o.setProperty("--vscode-editorCodeLens-fontFamilyDefault",Zl.fontFamily)),this._editor.changeViewZones(s=>{for(const a of this._lenses)a.updateHeight(e,s)})}_localDispose(){var e,t,i;(e=this._getCodeLensModelPromise)===null||e===void 0||e.cancel(),this._getCodeLensModelPromise=void 0,(t=this._resolveCodeLensesPromise)===null||t===void 0||t.cancel(),this._resolveCodeLensesPromise=void 0,this._localToDispose.clear(),this._oldCodeLensModels.clear(),(i=this._currentCodeLensModel)===null||i===void 0||i.dispose()}_onModelChange(){this._localDispose();const e=this._editor.getModel();if(!e||!this._editor.getOption(17)||e.isTooLargeForTokenization())return;const t=this._codeLensCache.get(e);if(t&&this._renderCodeLensSymbols(t),!this._languageFeaturesService.codeLensProvider.has(e)){t&&Cb(()=>{const r=this._codeLensCache.get(e);t===r&&(this._codeLensCache.delete(e),this._onModelChange())},30*1e3,this._localToDispose);return}for(const r of this._languageFeaturesService.codeLensProvider.all(e))if(typeof r.onDidChange=="function"){const o=r.onDidChange(()=>i.schedule());this._localToDispose.add(o)}const i=new Vi(()=>{var r;const o=Date.now();(r=this._getCodeLensModelPromise)===null||r===void 0||r.cancel(),this._getCodeLensModelPromise=$o(s=>u2e(this._languageFeaturesService.codeLensProvider,e,s)),this._getCodeLensModelPromise.then(s=>{this._currentCodeLensModel&&this._oldCodeLensModels.add(this._currentCodeLensModel),this._currentCodeLensModel=s,this._codeLensCache.put(e,s);const a=this._provideCodeLensDebounce.update(e,Date.now()-o);i.delay=a,this._renderCodeLensSymbols(s),this._resolveCodeLensesInViewportSoon()},fn)},this._provideCodeLensDebounce.get(e));this._localToDispose.add(i),this._localToDispose.add(en(()=>this._resolveCodeLensesScheduler.cancel())),this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{var r;this._editor.changeDecorations(o=>{this._editor.changeViewZones(s=>{const a=[];let l=-1;this._lenses.forEach(c=>{!c.isValid()||l===c.getLineNumber()?a.push(c):(c.update(s),l=c.getLineNumber())});const u=new TU;a.forEach(c=>{c.dispose(u,s),this._lenses.splice(this._lenses.indexOf(c),1)}),u.commit(o)})}),i.schedule(),this._resolveCodeLensesScheduler.cancel(),(r=this._resolveCodeLensesPromise)===null||r===void 0||r.cancel(),this._resolveCodeLensesPromise=void 0})),this._localToDispose.add(this._editor.onDidFocusEditorWidget(()=>{i.schedule()})),this._localToDispose.add(this._editor.onDidBlurEditorText(()=>{i.cancel()})),this._localToDispose.add(this._editor.onDidScrollChange(r=>{r.scrollTopChanged&&this._lenses.length>0&&this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(this._editor.onDidLayoutChange(()=>{this._resolveCodeLensesInViewportSoon()})),this._localToDispose.add(en(()=>{if(this._editor.getModel()){const r=Mh.capture(this._editor);this._editor.changeDecorations(o=>{this._editor.changeViewZones(s=>{this._disposeAllLenses(o,s)})}),r.restore(this._editor)}else this._disposeAllLenses(void 0,void 0)})),this._localToDispose.add(this._editor.onMouseDown(r=>{if(r.target.type!==9)return;let o=r.target.element;if((o==null?void 0:o.tagName)==="SPAN"&&(o=o.parentElement),(o==null?void 0:o.tagName)==="A")for(const s of this._lenses){const a=s.getCommand(o);if(a){this._commandService.executeCommand(a.id,...a.arguments||[]).catch(l=>this._notificationService.error(l));break}}})),i.schedule()}_disposeAllLenses(e,t){const i=new TU;for(const r of this._lenses)r.dispose(i,t);e&&i.commit(e),this._lenses.length=0}_renderCodeLensSymbols(e){if(!this._editor.hasModel())return;const t=this._editor.getModel().getLineCount(),i=[];let r;for(const a of e.lenses){const l=a.symbol.range.startLineNumber;l<1||l>t||(r&&r[r.length-1].symbol.range.startLineNumber===l?r.push(a):(r=[a],i.push(r)))}if(!i.length&&!this._lenses.length)return;const o=Mh.capture(this._editor),s=this._getLayoutInfo();this._editor.changeDecorations(a=>{this._editor.changeViewZones(l=>{const u=new TU;let c=0,d=0;for(;dthis._resolveCodeLensesInViewportSoon())),c++,d++)}for(;cthis._resolveCodeLensesInViewportSoon())),d++;u.commit(a)})}),o.restore(this._editor)}_resolveCodeLensesInViewportSoon(){this._editor.getModel()&&this._resolveCodeLensesScheduler.schedule()}_resolveCodeLensesInViewport(){var e;(e=this._resolveCodeLensesPromise)===null||e===void 0||e.cancel(),this._resolveCodeLensesPromise=void 0;const t=this._editor.getModel();if(!t)return;const i=[],r=[];if(this._lenses.forEach(a=>{const l=a.computeIfNecessary(t);l&&(i.push(l),r.push(a))}),i.length===0)return;const o=Date.now(),s=$o(a=>{const l=i.map((u,c)=>{const d=new Array(u.length),h=u.map((g,m)=>!g.symbol.command&&typeof g.provider.resolveCodeLens=="function"?Promise.resolve(g.provider.resolveCodeLens(t,g.symbol,a)).then(f=>{d[m]=f},wo):(d[m]=g.symbol,Promise.resolve(void 0)));return Promise.all(h).then(()=>{!a.isCancellationRequested&&!r[c].isDisposed()&&r[c].updateCommands(d)})});return Promise.all(l)});this._resolveCodeLensesPromise=s,this._resolveCodeLensesPromise.then(()=>{const a=this._resolveCodeLensesDebounce.update(t,Date.now()-o);this._resolveCodeLensesScheduler.delay=a,this._currentCodeLensModel&&this._codeLensCache.put(t,this._currentCodeLensModel),this._oldCodeLensModels.clear(),s===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)},a=>{fn(a),s===this._resolveCodeLensesPromise&&(this._resolveCodeLensesPromise=void 0)})}async getModel(){var e;return await this._getCodeLensModelPromise,await this._resolveCodeLensesPromise,!((e=this._currentCodeLensModel)===null||e===void 0)&&e.isDisposed?void 0:this._currentCodeLensModel}};ww.ID="css.editor.codeLens",ww=$Lt([GD(1,Tt),GD(2,Xc),GD(3,Vr),GD(4,Fo),GD(5,c2e)],ww),Ii(ww.ID,ww,1),it(class extends Nt{constructor(){super({id:"codelens.showLensesInCurrentLine",precondition:ne.hasCodeLensProvider,label:x("showLensOnLine","Show CodeLens Commands For Current Line"),alias:"Show CodeLens Commands For Current Line"})}async run(e,t){if(!t.hasModel())return;const i=e.get(vv),r=e.get(Vr),o=e.get(Fo),s=t.getSelection().positionLineNumber,a=t.getContribution(ww.ID);if(!a)return;const l=await a.getModel();if(!l)return;const u=[];for(const h of l.lenses)h.symbol.command&&h.symbol.range.startLineNumber===s&&u.push({label:h.symbol.command.title,command:h.symbol.command});if(u.length===0)return;const c=await i.pick(u,{canPickMany:!1,placeHolder:x("placeHolder","Select a command")});if(!c)return;let d=c.command;if(l.isDisposed){const h=await a.getModel(),g=h==null?void 0:h.lenses.find(m=>{var f;return m.symbol.range.startLineNumber===s&&((f=m.symbol.command)===null||f===void 0?void 0:f.title)===d.title});if(!g||!g.symbol.command)return;d=g.symbol.command}try{await r.executeCommand(d.id,...d.arguments||[])}catch(h){o.error(h)}}});const qLt="$initialize";let f2e=!1;function RU(n){pb&&(f2e||(f2e=!0))}class eFt{constructor(e,t,i,r){this.vsWorker=e,this.req=t,this.method=i,this.args=r,this.type=0}}class p2e{constructor(e,t,i,r){this.vsWorker=e,this.seq=t,this.res=i,this.err=r,this.type=1}}class tFt{constructor(e,t,i,r){this.vsWorker=e,this.req=t,this.eventName=i,this.arg=r,this.type=2}}class nFt{constructor(e,t,i){this.vsWorker=e,this.req=t,this.event=i,this.type=3}}class iFt{constructor(e,t){this.vsWorker=e,this.req=t,this.type=4}}class rFt{constructor(e){this._workerId=-1,this._handler=e,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(e){this._workerId=e}sendMessage(e,t){const i=String(++this._lastSentReq);return new Promise((r,o)=>{this._pendingReplies[i]={resolve:r,reject:o},this._send(new eFt(this._workerId,i,e,t))})}listen(e,t){let i=null;const r=new be({onWillAddFirstListener:()=>{i=String(++this._lastSentReq),this._pendingEmitters.set(i,r),this._send(new tFt(this._workerId,i,e,t))},onDidRemoveLastListener:()=>{this._pendingEmitters.delete(i),this._send(new iFt(this._workerId,i)),i=null}});return r.event}handleMessage(e){!e||!e.vsWorker||this._workerId!==-1&&e.vsWorker!==this._workerId||this._handleMessage(e)}_handleMessage(e){switch(e.type){case 1:return this._handleReplyMessage(e);case 0:return this._handleRequestMessage(e);case 2:return this._handleSubscribeEventMessage(e);case 3:return this._handleEventMessage(e);case 4:return this._handleUnsubscribeEventMessage(e)}}_handleReplyMessage(e){if(!this._pendingReplies[e.seq])return;const t=this._pendingReplies[e.seq];if(delete this._pendingReplies[e.seq],e.err){let i=e.err;e.err.$isError&&(i=new Error,i.name=e.err.name,i.message=e.err.message,i.stack=e.err.stack),t.reject(i);return}t.resolve(e.res)}_handleRequestMessage(e){const t=e.req;this._handler.handleMessage(e.method,e.args).then(r=>{this._send(new p2e(this._workerId,t,r,void 0))},r=>{r.detail instanceof Error&&(r.detail=Kpe(r.detail)),this._send(new p2e(this._workerId,t,void 0,Kpe(r)))})}_handleSubscribeEventMessage(e){const t=e.req,i=this._handler.handleEvent(e.eventName,e.arg)(r=>{this._send(new nFt(this._workerId,t,r))});this._pendingEvents.set(t,i)}_handleEventMessage(e){this._pendingEmitters.has(e.req)&&this._pendingEmitters.get(e.req).fire(e.event)}_handleUnsubscribeEventMessage(e){this._pendingEvents.has(e.req)&&(this._pendingEvents.get(e.req).dispose(),this._pendingEvents.delete(e.req))}_send(e){const t=[];if(e.type===0)for(let i=0;i{this._protocol.handleMessage(c)},c=>{r==null||r(c)})),this._protocol=new rFt({sendMessage:(c,d)=>{this._worker.postMessage(c,d)},handleMessage:(c,d)=>{if(typeof i[c]!="function")return Promise.reject(new Error("Missing method "+c+" on main thread host."));try{return Promise.resolve(i[c].apply(i,d))}catch(h){return Promise.reject(h)}},handleEvent:(c,d)=>{if(C2e(c)){const h=i[c].call(i,d);if(typeof h!="function")throw new Error(`Missing dynamic event ${c} on main thread host.`);return h}if(b2e(c)){const h=i[c];if(typeof h!="function")throw new Error(`Missing event ${c} on main thread host.`);return h}throw new Error(`Malformed event name ${c}`)}}),this._protocol.setWorkerId(this._worker.getId());let o=null;const s=globalThis.require;typeof s<"u"&&typeof s.getConfig=="function"?o=s.getConfig():typeof globalThis.requirejs<"u"&&(o=globalThis.requirejs.s.contexts._.config);const a=DH(i);this._onModuleLoaded=this._protocol.sendMessage(qLt,[this._worker.getId(),JSON.parse(JSON.stringify(o)),t,a]);const l=(c,d)=>this._request(c,d),u=(c,d)=>this._protocol.listen(c,d);this._lazyProxy=new Promise((c,d)=>{r=d,this._onModuleLoaded.then(h=>{c(sFt(h,l,u))},h=>{d(h),this._onError("Worker failed to load "+t,h)})})}getProxyObject(){return this._lazyProxy}_request(e,t){return new Promise((i,r)=>{this._onModuleLoaded.then(()=>{this._protocol.sendMessage(e,t).then(i,r)},r)})}_onError(e,t){}}function b2e(n){return n[0]==="o"&&n[1]==="n"&&Tg(n.charCodeAt(2))}function C2e(n){return/^onDynamic/.test(n)&&Tg(n.charCodeAt(9))}function sFt(n,e,t){const i=s=>function(){const a=Array.prototype.slice.call(arguments,0);return e(s,a)},r=s=>function(a){return t(s,a)},o={};for(const s of n){if(C2e(s)){o[s]=r(s);continue}if(b2e(s)){o[s]=t(s,void 0);continue}o[s]=i(s)}return o}const v2e=Rf("defaultWorkerFactory",{createScriptURL:n=>n});function aFt(n){const e=globalThis.MonacoEnvironment;if(e){if(typeof e.getWorker=="function")return e.getWorker("workerMain.js",n);if(typeof e.getWorkerUrl=="function"){const t=e.getWorkerUrl("workerMain.js",n);return new Worker(v2e?v2e.createScriptURL(t):t,{name:n})}}throw new Error("You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker")}function lFt(n){return typeof n.then=="function"}class uFt extends De{constructor(e,t,i,r,o){super(),this.id=t,this.label=i;const s=aFt(i);lFt(s)?this.worker=s:this.worker=Promise.resolve(s),this.postMessage(e,[]),this.worker.then(a=>{a.onmessage=function(l){r(l.data)},a.onmessageerror=o,typeof a.addEventListener=="function"&&a.addEventListener("error",o)}),this._register(en(()=>{var a;(a=this.worker)===null||a===void 0||a.then(l=>{l.onmessage=null,l.onmessageerror=null,l.removeEventListener("error",o),l.terminate()}),this.worker=null}))}getId(){return this.id}postMessage(e,t){var i;(i=this.worker)===null||i===void 0||i.then(r=>{try{r.postMessage(e,t)}catch(o){fn(o),fn(new Error(`FAILED to post message to '${this.label}'-worker`,{cause:o}))}})}}class IW{constructor(e){this._label=e,this._webWorkerFailedBeforeError=!1}create(e,t,i){const r=++IW.LAST_WORKER_ID;if(this._webWorkerFailedBeforeError)throw this._webWorkerFailedBeforeError;return new uFt(e,r,this._label||"anonymous"+r,t,o=>{RU(o),this._webWorkerFailedBeforeError=o,i(o)})}}IW.LAST_WORKER_ID=0;class f0{constructor(e,t,i,r){this.originalStart=e,this.originalLength=t,this.modifiedStart=i,this.modifiedLength=r}getOriginalEnd(){return this.originalStart+this.originalLength}getModifiedEnd(){return this.modifiedStart+this.modifiedLength}}class y2e{constructor(e){this.source=e}getElements(){const e=this.source,t=new Int32Array(e.length);for(let i=0,r=e.length;i0||this.m_modifiedCount>0)&&this.m_changes.push(new f0(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++}AddModifiedElement(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class Cm{constructor(e,t,i=null){this.ContinueProcessingPredicate=i,this._originalSequence=e,this._modifiedSequence=t;const[r,o,s]=Cm._getElements(e),[a,l,u]=Cm._getElements(t);this._hasStrings=s&&u,this._originalStringElements=r,this._originalElementsOrHash=o,this._modifiedStringElements=a,this._modifiedElementsOrHash=l,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(e){return e.length>0&&typeof e[0]=="string"}static _getElements(e){const t=e.getElements();if(Cm._isStringArray(t)){const i=new Int32Array(t.length);for(let r=0,o=t.length;r=e&&r>=i&&this.ElementsAreEqual(t,r);)t--,r--;if(e>t||i>r){let d;return i<=r?(Sw.Assert(e===t+1,"originalStart should only be one more than originalEnd"),d=[new f0(e,0,i,r-i+1)]):e<=t?(Sw.Assert(i===r+1,"modifiedStart should only be one more than modifiedEnd"),d=[new f0(e,t-e+1,i,0)]):(Sw.Assert(e===t+1,"originalStart should only be one more than originalEnd"),Sw.Assert(i===r+1,"modifiedStart should only be one more than modifiedEnd"),d=[]),d}const s=[0],a=[0],l=this.ComputeRecursionPoint(e,t,i,r,s,a,o),u=s[0],c=a[0];if(l!==null)return l;if(!o[0]){const d=this.ComputeDiffRecursive(e,u,i,c,o);let h=[];return o[0]?h=[new f0(u+1,t-(u+1)+1,c+1,r-(c+1)+1)]:h=this.ComputeDiffRecursive(u+1,t,c+1,r,o),this.ConcatenateChanges(d,h)}return[new f0(e,t-e+1,i,r-i+1)]}WALKTRACE(e,t,i,r,o,s,a,l,u,c,d,h,g,m,f,b,C,v){let w=null,S=null,F=new I2e,L=t,D=i,A=g[0]-b[0]-r,M=-1073741824,W=this.m_forwardHistory.length-1;do{const Z=A+e;Z===L||Z=0&&(u=this.m_forwardHistory[W],e=u[0],L=1,D=u.length-1)}while(--W>=-1);if(w=F.getReverseChanges(),v[0]){let Z=g[0]+1,T=b[0]+1;if(w!==null&&w.length>0){const E=w[w.length-1];Z=Math.max(Z,E.getOriginalEnd()),T=Math.max(T,E.getModifiedEnd())}S=[new f0(Z,h-Z+1,T,f-T+1)]}else{F=new I2e,L=s,D=a,A=g[0]-b[0]-l,M=1073741824,W=C?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const Z=A+o;Z===L||Z=c[Z+1]?(d=c[Z+1]-1,m=d-A-l,d>M&&F.MarkNextChange(),M=d+1,F.AddOriginalElement(d+1,m+1),A=Z+1-o):(d=c[Z-1],m=d-A-l,d>M&&F.MarkNextChange(),M=d,F.AddModifiedElement(d+1,m+1),A=Z-1-o),W>=0&&(c=this.m_reverseHistory[W],o=c[0],L=1,D=c.length-1)}while(--W>=-1);S=F.getChanges()}return this.ConcatenateChanges(w,S)}ComputeRecursionPoint(e,t,i,r,o,s,a){let l=0,u=0,c=0,d=0,h=0,g=0;e--,i--,o[0]=0,s[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const m=t-e+(r-i),f=m+1,b=new Int32Array(f),C=new Int32Array(f),v=r-i,w=t-e,S=e-i,F=t-r,D=(w-v)%2===0;b[v]=e,C[w]=t,a[0]=!1;for(let A=1;A<=m/2+1;A++){let M=0,W=0;c=this.ClipDiagonalBound(v-A,A,v,f),d=this.ClipDiagonalBound(v+A,A,v,f);for(let T=c;T<=d;T+=2){T===c||TM+W&&(M=l,W=u),!D&&Math.abs(T-w)<=A-1&&l>=C[T])return o[0]=l,s[0]=u,E<=C[T]&&A<=1448?this.WALKTRACE(v,c,d,S,w,h,g,F,b,C,l,t,o,u,r,s,D,a):null}const Z=(M-e+(W-i)-A)/2;if(this.ContinueProcessingPredicate!==null&&!this.ContinueProcessingPredicate(M,Z))return a[0]=!0,o[0]=M,s[0]=W,Z>0&&A<=1448?this.WALKTRACE(v,c,d,S,w,h,g,F,b,C,l,t,o,u,r,s,D,a):(e++,i++,[new f0(e,t-e+1,i,r-i+1)]);h=this.ClipDiagonalBound(w-A,A,w,f),g=this.ClipDiagonalBound(w+A,A,w,f);for(let T=h;T<=g;T+=2){T===h||T=C[T+1]?l=C[T+1]-1:l=C[T-1],u=l-(T-w)-F;const E=l;for(;l>e&&u>i&&this.ElementsAreEqual(l,u);)l--,u--;if(C[T]=l,D&&Math.abs(T-v)<=A&&l<=b[T])return o[0]=l,s[0]=u,E>=b[T]&&A<=1448?this.WALKTRACE(v,c,d,S,w,h,g,F,b,C,l,t,o,u,r,s,D,a):null}if(A<=1447){let T=new Int32Array(d-c+2);T[0]=v-c+1,xw.Copy2(b,c,T,1,d-c+1),this.m_forwardHistory.push(T),T=new Int32Array(g-h+2),T[0]=w-h+1,xw.Copy2(C,h,T,1,g-h+1),this.m_reverseHistory.push(T)}}return this.WALKTRACE(v,c,d,S,w,h,g,F,b,C,l,t,o,u,r,s,D,a)}PrettifyChanges(e){for(let t=0;t0,a=i.modifiedLength>0;for(;i.originalStart+i.originalLength=0;t--){const i=e[t];let r=0,o=0;if(t>0){const d=e[t-1];r=d.originalStart+d.originalLength,o=d.modifiedStart+d.modifiedLength}const s=i.originalLength>0,a=i.modifiedLength>0;let l=0,u=this._boundaryScore(i.originalStart,i.originalLength,i.modifiedStart,i.modifiedLength);for(let d=1;;d++){const h=i.originalStart-d,g=i.modifiedStart-d;if(hu&&(u=f,l=d)}i.originalStart-=l,i.modifiedStart-=l;const c=[null];if(t>0&&this.ChangesOverlap(e[t-1],e[t],c)){e[t-1]=c[0],e.splice(t,1),t++;continue}}if(this._hasStrings)for(let t=1,i=e.length;t0&&g>l&&(l=g,u=d,c=h)}return l>0?[u,c]:null}_contiguousSequenceScore(e,t,i){let r=0;for(let o=0;o=this._originalElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._originalStringElements[e])}_OriginalRegionIsBoundary(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){const i=e+t;if(this._OriginalIsBoundary(i-1)||this._OriginalIsBoundary(i))return!0}return!1}_ModifiedIsBoundary(e){return e<=0||e>=this._modifiedElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[e])}_ModifiedRegionIsBoundary(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){const i=e+t;if(this._ModifiedIsBoundary(i-1)||this._ModifiedIsBoundary(i))return!0}return!1}_boundaryScore(e,t,i,r){const o=this._OriginalRegionIsBoundary(e,t)?1:0,s=this._ModifiedRegionIsBoundary(i,r)?1:0;return o+s}ConcatenateChanges(e,t){const i=[];if(e.length===0||t.length===0)return t.length>0?t:e;if(this.ChangesOverlap(e[e.length-1],t[0],i)){const r=new Array(e.length+t.length-1);return xw.Copy(e,0,r,0,e.length-1),r[e.length-1]=i[0],xw.Copy(t,1,r,e.length,t.length-1),r}else{const r=new Array(e.length+t.length);return xw.Copy(e,0,r,0,e.length),xw.Copy(t,0,r,e.length,t.length),r}}ChangesOverlap(e,t,i){if(Sw.Assert(e.originalStart<=t.originalStart,"Left change is not less than or equal to right change"),Sw.Assert(e.modifiedStart<=t.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){const r=e.originalStart;let o=e.originalLength;const s=e.modifiedStart;let a=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(o=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(a=t.modifiedStart+t.modifiedLength-e.modifiedStart),i[0]=new f0(r,o,s,a),!0}else return i[0]=null,!1}ClipDiagonalBound(e,t,i,r){if(e>=0&&et&&(t=l),a>i&&(i=a),u>i&&(i=u)}t++,i++;const r=new hFt(i,t,0);for(let o=0,s=e.length;o=this._maxCharCode?0:this._states.get(e,t)}}let GU=null;function mFt(){return GU===null&&(GU=new gFt([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),GU}let VD=null;function fFt(){if(VD===null){VD=new l2(0);const n=` <>'"、。。、,.:;‘〈「『〔([{「」}])〕』」〉’`~…`;for(let t=0;tr);if(r>0){const a=t.charCodeAt(r-1),l=t.charCodeAt(s);(a===40&&l===41||a===91&&l===93||a===123&&l===125)&&s--}return{range:{startLineNumber:i,startColumn:r+1,endLineNumber:i,endColumn:s+2},url:t.substring(r,s+1)}}static computeLinks(e,t=mFt()){const i=fFt(),r=[];for(let o=1,s=e.getLineCount();o<=s;o++){const a=e.getLineContent(o),l=a.length;let u=0,c=0,d=0,h=1,g=!1,m=!1,f=!1,b=!1;for(;u=0?(r+=i?1:-1,r<0?r=e.length-1:r%=e.length,e[r]):null}}VU.INSTANCE=new VU;var XU;(function(n){n[n.Unknown=0]="Unknown",n[n.Disabled=1]="Disabled",n[n.Enabled=2]="Enabled"})(XU||(XU={}));var PU;(function(n){n[n.Invoke=1]="Invoke",n[n.Auto=2]="Auto"})(PU||(PU={}));var OU;(function(n){n[n.None=0]="None",n[n.KeepWhitespace=1]="KeepWhitespace",n[n.InsertAsSnippet=4]="InsertAsSnippet"})(OU||(OU={}));var BU;(function(n){n[n.Method=0]="Method",n[n.Function=1]="Function",n[n.Constructor=2]="Constructor",n[n.Field=3]="Field",n[n.Variable=4]="Variable",n[n.Class=5]="Class",n[n.Struct=6]="Struct",n[n.Interface=7]="Interface",n[n.Module=8]="Module",n[n.Property=9]="Property",n[n.Event=10]="Event",n[n.Operator=11]="Operator",n[n.Unit=12]="Unit",n[n.Value=13]="Value",n[n.Constant=14]="Constant",n[n.Enum=15]="Enum",n[n.EnumMember=16]="EnumMember",n[n.Keyword=17]="Keyword",n[n.Text=18]="Text",n[n.Color=19]="Color",n[n.File=20]="File",n[n.Reference=21]="Reference",n[n.Customcolor=22]="Customcolor",n[n.Folder=23]="Folder",n[n.TypeParameter=24]="TypeParameter",n[n.User=25]="User",n[n.Issue=26]="Issue",n[n.Snippet=27]="Snippet"})(BU||(BU={}));var zU;(function(n){n[n.Deprecated=1]="Deprecated"})(zU||(zU={}));var YU;(function(n){n[n.Invoke=0]="Invoke",n[n.TriggerCharacter=1]="TriggerCharacter",n[n.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"})(YU||(YU={}));var HU;(function(n){n[n.EXACT=0]="EXACT",n[n.ABOVE=1]="ABOVE",n[n.BELOW=2]="BELOW"})(HU||(HU={}));var UU;(function(n){n[n.NotSet=0]="NotSet",n[n.ContentFlush=1]="ContentFlush",n[n.RecoverFromMarkers=2]="RecoverFromMarkers",n[n.Explicit=3]="Explicit",n[n.Paste=4]="Paste",n[n.Undo=5]="Undo",n[n.Redo=6]="Redo"})(UU||(UU={}));var JU;(function(n){n[n.LF=1]="LF",n[n.CRLF=2]="CRLF"})(JU||(JU={}));var KU;(function(n){n[n.Text=0]="Text",n[n.Read=1]="Read",n[n.Write=2]="Write"})(KU||(KU={}));var jU;(function(n){n[n.None=0]="None",n[n.Keep=1]="Keep",n[n.Brackets=2]="Brackets",n[n.Advanced=3]="Advanced",n[n.Full=4]="Full"})(jU||(jU={}));var QU;(function(n){n[n.acceptSuggestionOnCommitCharacter=0]="acceptSuggestionOnCommitCharacter",n[n.acceptSuggestionOnEnter=1]="acceptSuggestionOnEnter",n[n.accessibilitySupport=2]="accessibilitySupport",n[n.accessibilityPageSize=3]="accessibilityPageSize",n[n.ariaLabel=4]="ariaLabel",n[n.ariaRequired=5]="ariaRequired",n[n.autoClosingBrackets=6]="autoClosingBrackets",n[n.autoClosingComments=7]="autoClosingComments",n[n.screenReaderAnnounceInlineSuggestion=8]="screenReaderAnnounceInlineSuggestion",n[n.autoClosingDelete=9]="autoClosingDelete",n[n.autoClosingOvertype=10]="autoClosingOvertype",n[n.autoClosingQuotes=11]="autoClosingQuotes",n[n.autoIndent=12]="autoIndent",n[n.automaticLayout=13]="automaticLayout",n[n.autoSurround=14]="autoSurround",n[n.bracketPairColorization=15]="bracketPairColorization",n[n.guides=16]="guides",n[n.codeLens=17]="codeLens",n[n.codeLensFontFamily=18]="codeLensFontFamily",n[n.codeLensFontSize=19]="codeLensFontSize",n[n.colorDecorators=20]="colorDecorators",n[n.colorDecoratorsLimit=21]="colorDecoratorsLimit",n[n.columnSelection=22]="columnSelection",n[n.comments=23]="comments",n[n.contextmenu=24]="contextmenu",n[n.copyWithSyntaxHighlighting=25]="copyWithSyntaxHighlighting",n[n.cursorBlinking=26]="cursorBlinking",n[n.cursorSmoothCaretAnimation=27]="cursorSmoothCaretAnimation",n[n.cursorStyle=28]="cursorStyle",n[n.cursorSurroundingLines=29]="cursorSurroundingLines",n[n.cursorSurroundingLinesStyle=30]="cursorSurroundingLinesStyle",n[n.cursorWidth=31]="cursorWidth",n[n.disableLayerHinting=32]="disableLayerHinting",n[n.disableMonospaceOptimizations=33]="disableMonospaceOptimizations",n[n.domReadOnly=34]="domReadOnly",n[n.dragAndDrop=35]="dragAndDrop",n[n.dropIntoEditor=36]="dropIntoEditor",n[n.emptySelectionClipboard=37]="emptySelectionClipboard",n[n.experimentalWhitespaceRendering=38]="experimentalWhitespaceRendering",n[n.extraEditorClassName=39]="extraEditorClassName",n[n.fastScrollSensitivity=40]="fastScrollSensitivity",n[n.find=41]="find",n[n.fixedOverflowWidgets=42]="fixedOverflowWidgets",n[n.folding=43]="folding",n[n.foldingStrategy=44]="foldingStrategy",n[n.foldingHighlight=45]="foldingHighlight",n[n.foldingImportsByDefault=46]="foldingImportsByDefault",n[n.foldingMaximumRegions=47]="foldingMaximumRegions",n[n.unfoldOnClickAfterEndOfLine=48]="unfoldOnClickAfterEndOfLine",n[n.fontFamily=49]="fontFamily",n[n.fontInfo=50]="fontInfo",n[n.fontLigatures=51]="fontLigatures",n[n.fontSize=52]="fontSize",n[n.fontWeight=53]="fontWeight",n[n.fontVariations=54]="fontVariations",n[n.formatOnPaste=55]="formatOnPaste",n[n.formatOnType=56]="formatOnType",n[n.glyphMargin=57]="glyphMargin",n[n.gotoLocation=58]="gotoLocation",n[n.hideCursorInOverviewRuler=59]="hideCursorInOverviewRuler",n[n.hover=60]="hover",n[n.inDiffEditor=61]="inDiffEditor",n[n.inlineSuggest=62]="inlineSuggest",n[n.inlineEdit=63]="inlineEdit",n[n.letterSpacing=64]="letterSpacing",n[n.lightbulb=65]="lightbulb",n[n.lineDecorationsWidth=66]="lineDecorationsWidth",n[n.lineHeight=67]="lineHeight",n[n.lineNumbers=68]="lineNumbers",n[n.lineNumbersMinChars=69]="lineNumbersMinChars",n[n.linkedEditing=70]="linkedEditing",n[n.links=71]="links",n[n.matchBrackets=72]="matchBrackets",n[n.minimap=73]="minimap",n[n.mouseStyle=74]="mouseStyle",n[n.mouseWheelScrollSensitivity=75]="mouseWheelScrollSensitivity",n[n.mouseWheelZoom=76]="mouseWheelZoom",n[n.multiCursorMergeOverlapping=77]="multiCursorMergeOverlapping",n[n.multiCursorModifier=78]="multiCursorModifier",n[n.multiCursorPaste=79]="multiCursorPaste",n[n.multiCursorLimit=80]="multiCursorLimit",n[n.occurrencesHighlight=81]="occurrencesHighlight",n[n.overviewRulerBorder=82]="overviewRulerBorder",n[n.overviewRulerLanes=83]="overviewRulerLanes",n[n.padding=84]="padding",n[n.pasteAs=85]="pasteAs",n[n.parameterHints=86]="parameterHints",n[n.peekWidgetDefaultFocus=87]="peekWidgetDefaultFocus",n[n.definitionLinkOpensInPeek=88]="definitionLinkOpensInPeek",n[n.quickSuggestions=89]="quickSuggestions",n[n.quickSuggestionsDelay=90]="quickSuggestionsDelay",n[n.readOnly=91]="readOnly",n[n.readOnlyMessage=92]="readOnlyMessage",n[n.renameOnType=93]="renameOnType",n[n.renderControlCharacters=94]="renderControlCharacters",n[n.renderFinalNewline=95]="renderFinalNewline",n[n.renderLineHighlight=96]="renderLineHighlight",n[n.renderLineHighlightOnlyWhenFocus=97]="renderLineHighlightOnlyWhenFocus",n[n.renderValidationDecorations=98]="renderValidationDecorations",n[n.renderWhitespace=99]="renderWhitespace",n[n.revealHorizontalRightPadding=100]="revealHorizontalRightPadding",n[n.roundedSelection=101]="roundedSelection",n[n.rulers=102]="rulers",n[n.scrollbar=103]="scrollbar",n[n.scrollBeyondLastColumn=104]="scrollBeyondLastColumn",n[n.scrollBeyondLastLine=105]="scrollBeyondLastLine",n[n.scrollPredominantAxis=106]="scrollPredominantAxis",n[n.selectionClipboard=107]="selectionClipboard",n[n.selectionHighlight=108]="selectionHighlight",n[n.selectOnLineNumbers=109]="selectOnLineNumbers",n[n.showFoldingControls=110]="showFoldingControls",n[n.showUnused=111]="showUnused",n[n.snippetSuggestions=112]="snippetSuggestions",n[n.smartSelect=113]="smartSelect",n[n.smoothScrolling=114]="smoothScrolling",n[n.stickyScroll=115]="stickyScroll",n[n.stickyTabStops=116]="stickyTabStops",n[n.stopRenderingLineAfter=117]="stopRenderingLineAfter",n[n.suggest=118]="suggest",n[n.suggestFontSize=119]="suggestFontSize",n[n.suggestLineHeight=120]="suggestLineHeight",n[n.suggestOnTriggerCharacters=121]="suggestOnTriggerCharacters",n[n.suggestSelection=122]="suggestSelection",n[n.tabCompletion=123]="tabCompletion",n[n.tabIndex=124]="tabIndex",n[n.unicodeHighlighting=125]="unicodeHighlighting",n[n.unusualLineTerminators=126]="unusualLineTerminators",n[n.useShadowDOM=127]="useShadowDOM",n[n.useTabStops=128]="useTabStops",n[n.wordBreak=129]="wordBreak",n[n.wordSeparators=130]="wordSeparators",n[n.wordWrap=131]="wordWrap",n[n.wordWrapBreakAfterCharacters=132]="wordWrapBreakAfterCharacters",n[n.wordWrapBreakBeforeCharacters=133]="wordWrapBreakBeforeCharacters",n[n.wordWrapColumn=134]="wordWrapColumn",n[n.wordWrapOverride1=135]="wordWrapOverride1",n[n.wordWrapOverride2=136]="wordWrapOverride2",n[n.wrappingIndent=137]="wrappingIndent",n[n.wrappingStrategy=138]="wrappingStrategy",n[n.showDeprecated=139]="showDeprecated",n[n.inlayHints=140]="inlayHints",n[n.editorClassName=141]="editorClassName",n[n.pixelRatio=142]="pixelRatio",n[n.tabFocusMode=143]="tabFocusMode",n[n.layoutInfo=144]="layoutInfo",n[n.wrappingInfo=145]="wrappingInfo",n[n.defaultColorDecorators=146]="defaultColorDecorators",n[n.colorDecoratorsActivatedOn=147]="colorDecoratorsActivatedOn",n[n.inlineCompletionsAccessibilityVerbose=148]="inlineCompletionsAccessibilityVerbose"})(QU||(QU={}));var $U;(function(n){n[n.TextDefined=0]="TextDefined",n[n.LF=1]="LF",n[n.CRLF=2]="CRLF"})($U||($U={}));var qU;(function(n){n[n.LF=0]="LF",n[n.CRLF=1]="CRLF"})(qU||(qU={}));var eJ;(function(n){n[n.Left=1]="Left",n[n.Center=2]="Center",n[n.Right=3]="Right"})(eJ||(eJ={}));var tJ;(function(n){n[n.None=0]="None",n[n.Indent=1]="Indent",n[n.IndentOutdent=2]="IndentOutdent",n[n.Outdent=3]="Outdent"})(tJ||(tJ={}));var nJ;(function(n){n[n.Both=0]="Both",n[n.Right=1]="Right",n[n.Left=2]="Left",n[n.None=3]="None"})(nJ||(nJ={}));var iJ;(function(n){n[n.Type=1]="Type",n[n.Parameter=2]="Parameter"})(iJ||(iJ={}));var rJ;(function(n){n[n.Automatic=0]="Automatic",n[n.Explicit=1]="Explicit"})(rJ||(rJ={}));var oJ;(function(n){n[n.Invoke=0]="Invoke",n[n.Automatic=1]="Automatic"})(oJ||(oJ={}));var sJ;(function(n){n[n.DependsOnKbLayout=-1]="DependsOnKbLayout",n[n.Unknown=0]="Unknown",n[n.Backspace=1]="Backspace",n[n.Tab=2]="Tab",n[n.Enter=3]="Enter",n[n.Shift=4]="Shift",n[n.Ctrl=5]="Ctrl",n[n.Alt=6]="Alt",n[n.PauseBreak=7]="PauseBreak",n[n.CapsLock=8]="CapsLock",n[n.Escape=9]="Escape",n[n.Space=10]="Space",n[n.PageUp=11]="PageUp",n[n.PageDown=12]="PageDown",n[n.End=13]="End",n[n.Home=14]="Home",n[n.LeftArrow=15]="LeftArrow",n[n.UpArrow=16]="UpArrow",n[n.RightArrow=17]="RightArrow",n[n.DownArrow=18]="DownArrow",n[n.Insert=19]="Insert",n[n.Delete=20]="Delete",n[n.Digit0=21]="Digit0",n[n.Digit1=22]="Digit1",n[n.Digit2=23]="Digit2",n[n.Digit3=24]="Digit3",n[n.Digit4=25]="Digit4",n[n.Digit5=26]="Digit5",n[n.Digit6=27]="Digit6",n[n.Digit7=28]="Digit7",n[n.Digit8=29]="Digit8",n[n.Digit9=30]="Digit9",n[n.KeyA=31]="KeyA",n[n.KeyB=32]="KeyB",n[n.KeyC=33]="KeyC",n[n.KeyD=34]="KeyD",n[n.KeyE=35]="KeyE",n[n.KeyF=36]="KeyF",n[n.KeyG=37]="KeyG",n[n.KeyH=38]="KeyH",n[n.KeyI=39]="KeyI",n[n.KeyJ=40]="KeyJ",n[n.KeyK=41]="KeyK",n[n.KeyL=42]="KeyL",n[n.KeyM=43]="KeyM",n[n.KeyN=44]="KeyN",n[n.KeyO=45]="KeyO",n[n.KeyP=46]="KeyP",n[n.KeyQ=47]="KeyQ",n[n.KeyR=48]="KeyR",n[n.KeyS=49]="KeyS",n[n.KeyT=50]="KeyT",n[n.KeyU=51]="KeyU",n[n.KeyV=52]="KeyV",n[n.KeyW=53]="KeyW",n[n.KeyX=54]="KeyX",n[n.KeyY=55]="KeyY",n[n.KeyZ=56]="KeyZ",n[n.Meta=57]="Meta",n[n.ContextMenu=58]="ContextMenu",n[n.F1=59]="F1",n[n.F2=60]="F2",n[n.F3=61]="F3",n[n.F4=62]="F4",n[n.F5=63]="F5",n[n.F6=64]="F6",n[n.F7=65]="F7",n[n.F8=66]="F8",n[n.F9=67]="F9",n[n.F10=68]="F10",n[n.F11=69]="F11",n[n.F12=70]="F12",n[n.F13=71]="F13",n[n.F14=72]="F14",n[n.F15=73]="F15",n[n.F16=74]="F16",n[n.F17=75]="F17",n[n.F18=76]="F18",n[n.F19=77]="F19",n[n.F20=78]="F20",n[n.F21=79]="F21",n[n.F22=80]="F22",n[n.F23=81]="F23",n[n.F24=82]="F24",n[n.NumLock=83]="NumLock",n[n.ScrollLock=84]="ScrollLock",n[n.Semicolon=85]="Semicolon",n[n.Equal=86]="Equal",n[n.Comma=87]="Comma",n[n.Minus=88]="Minus",n[n.Period=89]="Period",n[n.Slash=90]="Slash",n[n.Backquote=91]="Backquote",n[n.BracketLeft=92]="BracketLeft",n[n.Backslash=93]="Backslash",n[n.BracketRight=94]="BracketRight",n[n.Quote=95]="Quote",n[n.OEM_8=96]="OEM_8",n[n.IntlBackslash=97]="IntlBackslash",n[n.Numpad0=98]="Numpad0",n[n.Numpad1=99]="Numpad1",n[n.Numpad2=100]="Numpad2",n[n.Numpad3=101]="Numpad3",n[n.Numpad4=102]="Numpad4",n[n.Numpad5=103]="Numpad5",n[n.Numpad6=104]="Numpad6",n[n.Numpad7=105]="Numpad7",n[n.Numpad8=106]="Numpad8",n[n.Numpad9=107]="Numpad9",n[n.NumpadMultiply=108]="NumpadMultiply",n[n.NumpadAdd=109]="NumpadAdd",n[n.NUMPAD_SEPARATOR=110]="NUMPAD_SEPARATOR",n[n.NumpadSubtract=111]="NumpadSubtract",n[n.NumpadDecimal=112]="NumpadDecimal",n[n.NumpadDivide=113]="NumpadDivide",n[n.KEY_IN_COMPOSITION=114]="KEY_IN_COMPOSITION",n[n.ABNT_C1=115]="ABNT_C1",n[n.ABNT_C2=116]="ABNT_C2",n[n.AudioVolumeMute=117]="AudioVolumeMute",n[n.AudioVolumeUp=118]="AudioVolumeUp",n[n.AudioVolumeDown=119]="AudioVolumeDown",n[n.BrowserSearch=120]="BrowserSearch",n[n.BrowserHome=121]="BrowserHome",n[n.BrowserBack=122]="BrowserBack",n[n.BrowserForward=123]="BrowserForward",n[n.MediaTrackNext=124]="MediaTrackNext",n[n.MediaTrackPrevious=125]="MediaTrackPrevious",n[n.MediaStop=126]="MediaStop",n[n.MediaPlayPause=127]="MediaPlayPause",n[n.LaunchMediaPlayer=128]="LaunchMediaPlayer",n[n.LaunchMail=129]="LaunchMail",n[n.LaunchApp2=130]="LaunchApp2",n[n.Clear=131]="Clear",n[n.MAX_VALUE=132]="MAX_VALUE"})(sJ||(sJ={}));var aJ;(function(n){n[n.Hint=1]="Hint",n[n.Info=2]="Info",n[n.Warning=4]="Warning",n[n.Error=8]="Error"})(aJ||(aJ={}));var lJ;(function(n){n[n.Unnecessary=1]="Unnecessary",n[n.Deprecated=2]="Deprecated"})(lJ||(lJ={}));var uJ;(function(n){n[n.Inline=1]="Inline",n[n.Gutter=2]="Gutter"})(uJ||(uJ={}));var cJ;(function(n){n[n.UNKNOWN=0]="UNKNOWN",n[n.TEXTAREA=1]="TEXTAREA",n[n.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",n[n.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS",n[n.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",n[n.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",n[n.CONTENT_TEXT=6]="CONTENT_TEXT",n[n.CONTENT_EMPTY=7]="CONTENT_EMPTY",n[n.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",n[n.CONTENT_WIDGET=9]="CONTENT_WIDGET",n[n.OVERVIEW_RULER=10]="OVERVIEW_RULER",n[n.SCROLLBAR=11]="SCROLLBAR",n[n.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",n[n.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"})(cJ||(cJ={}));var dJ;(function(n){n[n.AIGenerated=1]="AIGenerated"})(dJ||(dJ={}));var hJ;(function(n){n[n.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",n[n.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",n[n.TOP_CENTER=2]="TOP_CENTER"})(hJ||(hJ={}));var gJ;(function(n){n[n.Left=1]="Left",n[n.Center=2]="Center",n[n.Right=4]="Right",n[n.Full=7]="Full"})(gJ||(gJ={}));var mJ;(function(n){n[n.Left=0]="Left",n[n.Right=1]="Right",n[n.None=2]="None",n[n.LeftOfInjectedText=3]="LeftOfInjectedText",n[n.RightOfInjectedText=4]="RightOfInjectedText"})(mJ||(mJ={}));var fJ;(function(n){n[n.Off=0]="Off",n[n.On=1]="On",n[n.Relative=2]="Relative",n[n.Interval=3]="Interval",n[n.Custom=4]="Custom"})(fJ||(fJ={}));var pJ;(function(n){n[n.None=0]="None",n[n.Text=1]="Text",n[n.Blocks=2]="Blocks"})(pJ||(pJ={}));var bJ;(function(n){n[n.Smooth=0]="Smooth",n[n.Immediate=1]="Immediate"})(bJ||(bJ={}));var CJ;(function(n){n[n.Auto=1]="Auto",n[n.Hidden=2]="Hidden",n[n.Visible=3]="Visible"})(CJ||(CJ={}));var vJ;(function(n){n[n.LTR=0]="LTR",n[n.RTL=1]="RTL"})(vJ||(vJ={}));var yJ;(function(n){n.Off="off",n.OnCode="onCode",n.On="on"})(yJ||(yJ={}));var IJ;(function(n){n[n.Invoke=1]="Invoke",n[n.TriggerCharacter=2]="TriggerCharacter",n[n.ContentChange=3]="ContentChange"})(IJ||(IJ={}));var wJ;(function(n){n[n.File=0]="File",n[n.Module=1]="Module",n[n.Namespace=2]="Namespace",n[n.Package=3]="Package",n[n.Class=4]="Class",n[n.Method=5]="Method",n[n.Property=6]="Property",n[n.Field=7]="Field",n[n.Constructor=8]="Constructor",n[n.Enum=9]="Enum",n[n.Interface=10]="Interface",n[n.Function=11]="Function",n[n.Variable=12]="Variable",n[n.Constant=13]="Constant",n[n.String=14]="String",n[n.Number=15]="Number",n[n.Boolean=16]="Boolean",n[n.Array=17]="Array",n[n.Object=18]="Object",n[n.Key=19]="Key",n[n.Null=20]="Null",n[n.EnumMember=21]="EnumMember",n[n.Struct=22]="Struct",n[n.Event=23]="Event",n[n.Operator=24]="Operator",n[n.TypeParameter=25]="TypeParameter"})(wJ||(wJ={}));var SJ;(function(n){n[n.Deprecated=1]="Deprecated"})(SJ||(SJ={}));var xJ;(function(n){n[n.Hidden=0]="Hidden",n[n.Blink=1]="Blink",n[n.Smooth=2]="Smooth",n[n.Phase=3]="Phase",n[n.Expand=4]="Expand",n[n.Solid=5]="Solid"})(xJ||(xJ={}));var LJ;(function(n){n[n.Line=1]="Line",n[n.Block=2]="Block",n[n.Underline=3]="Underline",n[n.LineThin=4]="LineThin",n[n.BlockOutline=5]="BlockOutline",n[n.UnderlineThin=6]="UnderlineThin"})(LJ||(LJ={}));var FJ;(function(n){n[n.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",n[n.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",n[n.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",n[n.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"})(FJ||(FJ={}));var _J;(function(n){n[n.None=0]="None",n[n.Same=1]="Same",n[n.Indent=2]="Indent",n[n.DeepIndent=3]="DeepIndent"})(_J||(_J={}));let XD=class{static chord(e,t){return ko(e,t)}};XD.CtrlCmd=2048,XD.Shift=1024,XD.Alt=512,XD.WinCtrl=256;function w2e(){return{editor:void 0,languages:void 0,CancellationTokenSource:co,Emitter:be,KeyCode:sJ,KeyMod:XD,Position:ve,Range:K,Selection:Gt,SelectionDirection:vJ,MarkerSeverity:aJ,MarkerTag:lJ,Uri:$t,Token:y_}}class DJ{static computeUnicodeHighlights(e,t,i){const r=i?i.startLineNumber:1,o=i?i.endLineNumber:e.getLineCount(),s=new S2e(t),a=s.getCandidateCodePoints();let l;a==="allNonBasicAscii"?l=new RegExp("[^\\t\\n\\r\\x20-\\x7E]","g"):l=new RegExp(`${bFt(Array.from(a))}`,"g");const u=new J2(null,l),c=[];let d=!1,h,g=0,m=0,f=0;e:for(let b=r,C=o;b<=C;b++){const v=e.getLineContent(b),w=v.length;u.reset(0);do if(h=u.next(v),h){let S=h.index,F=h.index+h[0].length;if(S>0){const M=v.charCodeAt(S-1);qo(M)&&S--}if(F+1=1e3){d=!0;break e}c.push(new K(b,S+1,b,F+1))}}while(h)}return{ranges:c,hasMore:d,ambiguousCharacterCount:g,invisibleCharacterCount:m,nonBasicAsciiCharacterCount:f}}static computeUnicodeHighlightReason(e,t){const i=new S2e(t);switch(i.shouldHighlightNonBasicASCII(e,null)){case 0:return null;case 2:return{kind:1};case 3:{const o=e.codePointAt(0),s=i.ambiguousCharacters.getPrimaryConfusable(o),a=FC.getLocales().filter(l=>!FC.getInstance(new Set([...t.allowedLocales,l])).isAmbiguous(o));return{kind:0,confusableWith:String.fromCodePoint(s),notAmbiguousInLocales:a}}case 1:return{kind:2}}}}function bFt(n,e){return`[${Zu(n.map(i=>String.fromCodePoint(i)).join(""))}]`}class S2e{constructor(e){this.options=e,this.allowedCodePoints=new Set(e.allowedCodePoints),this.ambiguousCharacters=FC.getInstance(new Set(e.allowedLocales))}getCandidateCodePoints(){if(this.options.nonBasicASCII)return"allNonBasicAscii";const e=new Set;if(this.options.invisibleCharacters)for(const t of Eg.codePoints)x2e(String.fromCodePoint(t))||e.add(t);if(this.options.ambiguousCharacters)for(const t of this.ambiguousCharacters.getConfusableCodePoints())e.add(t);for(const t of this.allowedCodePoints)e.delete(t);return e}shouldHighlightNonBasicASCII(e,t){const i=e.codePointAt(0);if(this.allowedCodePoints.has(i))return 0;if(this.options.nonBasicASCII)return 1;let r=!1,o=!1;if(t)for(const s of t){const a=s.codePointAt(0),l=kF(s);r=r||l,!l&&!this.ambiguousCharacters.isAmbiguous(a)&&!Eg.isInvisibleCharacter(a)&&(o=!0)}return!r&&o?0:this.options.invisibleCharacters&&!x2e(e)&&Eg.isInvisibleCharacter(i)?2:this.options.ambiguousCharacters&&this.ambiguousCharacters.isAmbiguous(i)?3:0}}function x2e(n){return n===" "||n===` +`||n===" "}const CFt=3;class vFt{computeDiff(e,t,i){var r;const s=new wFt(e,t,{maxComputationTime:i.maxComputationTimeMs,shouldIgnoreTrimWhitespace:i.ignoreTrimWhitespace,shouldComputeCharChanges:!0,shouldMakePrettyDiff:!0,shouldPostProcessCharChanges:!0}).computeDiff(),a=[];let l=null;for(const u of s.changes){let c;u.originalEndLineNumber===0?c=new vn(u.originalStartLineNumber+1,u.originalStartLineNumber+1):c=new vn(u.originalStartLineNumber,u.originalEndLineNumber+1);let d;u.modifiedEndLineNumber===0?d=new vn(u.modifiedStartLineNumber+1,u.modifiedStartLineNumber+1):d=new vn(u.modifiedStartLineNumber,u.modifiedEndLineNumber+1);let h=new Eh(c,d,(r=u.charChanges)===null||r===void 0?void 0:r.map(g=>new r0(new K(g.originalStartLineNumber,g.originalStartColumn,g.originalEndLineNumber,g.originalEndColumn),new K(g.modifiedStartLineNumber,g.modifiedStartColumn,g.modifiedEndLineNumber,g.modifiedEndColumn))));l&&(l.modified.endLineNumberExclusive===h.modified.startLineNumber||l.original.endLineNumberExclusive===h.original.startLineNumber)&&(h=new Eh(l.original.join(h.original),l.modified.join(h.modified),l.innerChanges&&h.innerChanges?l.innerChanges.concat(h.innerChanges):void 0),a.pop()),a.push(h),l=h}return n2(()=>h0e(a,(u,c)=>c.original.startLineNumber-u.original.endLineNumberExclusive===c.modified.startLineNumber-u.modified.endLineNumberExclusive&&u.original.endLineNumberExclusive(e===10?"\\n":String.fromCharCode(e))+`-(${this._lineNumbers[t]},${this._columns[t]})`).join(", ")+"]"}_assertIndex(e,t){if(e<0||e>=t.length)throw new Error("Illegal index")}getElements(){return this._charCodes}getStartLineNumber(e){return e>0&&e===this._lineNumbers.length?this.getEndLineNumber(e-1):(this._assertIndex(e,this._lineNumbers),this._lineNumbers[e])}getEndLineNumber(e){return e===-1?this.getStartLineNumber(e+1):(this._assertIndex(e,this._lineNumbers),this._charCodes[e]===10?this._lineNumbers[e]+1:this._lineNumbers[e])}getStartColumn(e){return e>0&&e===this._columns.length?this.getEndColumn(e-1):(this._assertIndex(e,this._columns),this._columns[e])}getEndColumn(e){return e===-1?this.getStartColumn(e+1):(this._assertIndex(e,this._columns),this._charCodes[e]===10?1:this._columns[e]+1)}}class Lw{constructor(e,t,i,r,o,s,a,l){this.originalStartLineNumber=e,this.originalStartColumn=t,this.originalEndLineNumber=i,this.originalEndColumn=r,this.modifiedStartLineNumber=o,this.modifiedStartColumn=s,this.modifiedEndLineNumber=a,this.modifiedEndColumn=l}static createFromDiffChange(e,t,i){const r=t.getStartLineNumber(e.originalStart),o=t.getStartColumn(e.originalStart),s=t.getEndLineNumber(e.originalStart+e.originalLength-1),a=t.getEndColumn(e.originalStart+e.originalLength-1),l=i.getStartLineNumber(e.modifiedStart),u=i.getStartColumn(e.modifiedStart),c=i.getEndLineNumber(e.modifiedStart+e.modifiedLength-1),d=i.getEndColumn(e.modifiedStart+e.modifiedLength-1);return new Lw(r,o,s,a,l,u,c,d)}}function IFt(n){if(n.length<=1)return n;const e=[n[0]];let t=e[0];for(let i=1,r=n.length;i0&&t.originalLength<20&&t.modifiedLength>0&&t.modifiedLength<20&&o()){const g=i.createCharSequence(e,t.originalStart,t.originalStart+t.originalLength-1),m=r.createCharSequence(e,t.modifiedStart,t.modifiedStart+t.modifiedLength-1);if(g.getElements().length>0&&m.getElements().length>0){let f=L2e(g,m,o,!0).changes;a&&(f=IFt(f)),h=[];for(let b=0,C=f.length;b1&&f>1;){const b=h.charCodeAt(m-2),C=g.charCodeAt(f-2);if(b!==C)break;m--,f--}(m>1||f>1)&&this._pushTrimWhitespaceCharChange(r,o+1,1,m,s+1,1,f)}{let m=NJ(h,1),f=NJ(g,1);const b=h.length+1,C=g.length+1;for(;m!0;const e=Date.now();return()=>Date.now()-enew vFt,getDefault:()=>new lIe};function A2e(n){const e=[];for(const t of n){const i=Number(t);(i||i===0&&t.replace(/\s/g,"")!=="")&&e.push(i)}return e}function kJ(n,e,t,i){return{red:n/255,blue:t/255,green:e/255,alpha:i}}function OD(n,e){const t=e.index,i=e[0].length;if(!t)return;const r=n.positionAt(t);return{startLineNumber:r.lineNumber,startColumn:r.column,endLineNumber:r.lineNumber,endColumn:r.column+i}}function SFt(n,e){if(!n)return;const t=Ee.Format.CSS.parseHex(e);if(t)return{range:n,color:kJ(t.rgba.r,t.rgba.g,t.rgba.b,t.rgba.a)}}function N2e(n,e,t){if(!n||e.length!==1)return;const r=e[0].values(),o=A2e(r);return{range:n,color:kJ(o[0],o[1],o[2],t?o[3]:1)}}function k2e(n,e,t){if(!n||e.length!==1)return;const r=e[0].values(),o=A2e(r),s=new Ee(new yd(o[0],o[1]/100,o[2]/100,t?o[3]:1));return{range:n,color:kJ(s.rgba.r,s.rgba.g,s.rgba.b,s.rgba.a)}}function BD(n,e){return typeof n=="string"?[...n.matchAll(e)]:n.findMatches(e)}function xFt(n){const e=[],i=BD(n,/\b(rgb|rgba|hsl|hsla)(\([0-9\s,.\%]*\))|(#)([A-Fa-f0-9]{3})\b|(#)([A-Fa-f0-9]{4})\b|(#)([A-Fa-f0-9]{6})\b|(#)([A-Fa-f0-9]{8})\b/gm);if(i.length>0)for(const r of i){const o=r.filter(u=>u!==void 0),s=o[1],a=o[2];if(!a)continue;let l;if(s==="rgb"){const u=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*\)$/gm;l=N2e(OD(n,r),BD(a,u),!1)}else if(s==="rgba"){const u=/^\(\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;l=N2e(OD(n,r),BD(a,u),!0)}else if(s==="hsl"){const u=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*\)$/gm;l=k2e(OD(n,r),BD(a,u),!1)}else if(s==="hsla"){const u=/^\(\s*(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(100|\d{1,2}[.]\d*|\d{1,2})%\s*,\s*(0[.][0-9]+|[.][0-9]+|[01][.]|[01])\s*\)$/gm;l=k2e(OD(n,r),BD(a,u),!0)}else s==="#"&&(l=SFt(OD(n,r),s+a));l&&e.push(l)}return e}function LFt(n){return!n||typeof n.getValue!="function"||typeof n.positionAt!="function"?[]:xFt(n)}class FFt extends dFt{get uri(){return this._uri}get eol(){return this._eol}getValue(){return this.getText()}findMatches(e){const t=[];for(let i=0;ithis._lines.length)t=this._lines.length,i=this._lines[t-1].length+1,r=!0;else{const o=this._lines[t-1].length+1;i<1?(i=1,r=!0):i>o&&(i=o,r=!0)}return r?{lineNumber:t,column:i}:e}}class p0{constructor(e,t){this._host=e,this._models=Object.create(null),this._foreignModuleFactory=t,this._foreignModule=null}dispose(){this._models=Object.create(null)}_getModel(e){return this._models[e]}_getModels(){const e=[];return Object.keys(this._models).forEach(t=>e.push(this._models[t])),e}acceptNewModel(e){this._models[e.url]=new FFt($t.parse(e.url),e.lines,e.EOL,e.versionId)}acceptModelChanged(e,t){if(!this._models[e])return;this._models[e].onEvents(t)}acceptRemovedModel(e){this._models[e]&&delete this._models[e]}async computeUnicodeHighlights(e,t,i){const r=this._getModel(e);return r?DJ.computeUnicodeHighlights(r,t,i):{ranges:[],hasMore:!1,ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0}}async computeDiff(e,t,i,r){const o=this._getModel(e),s=this._getModel(t);return!o||!s?null:p0.computeDiff(o,s,i,r)}static computeDiff(e,t,i,r){const o=r==="advanced"?D2e.getDefault():D2e.getLegacy(),s=e.getLinesContent(),a=t.getLinesContent(),l=o.computeDiff(s,a,i),u=l.changes.length>0?!1:this._modelsAreIdentical(e,t);function c(d){return d.map(h=>{var g;return[h.original.startLineNumber,h.original.endLineNumberExclusive,h.modified.startLineNumber,h.modified.endLineNumberExclusive,(g=h.innerChanges)===null||g===void 0?void 0:g.map(m=>[m.originalRange.startLineNumber,m.originalRange.startColumn,m.originalRange.endLineNumber,m.originalRange.endColumn,m.modifiedRange.startLineNumber,m.modifiedRange.startColumn,m.modifiedRange.endLineNumber,m.modifiedRange.endColumn])]})}return{identical:u,quitEarly:l.hitTimeout,changes:c(l.changes),moves:l.moves.map(d=>[d.lineRangeMapping.original.startLineNumber,d.lineRangeMapping.original.endLineNumberExclusive,d.lineRangeMapping.modified.startLineNumber,d.lineRangeMapping.modified.endLineNumberExclusive,c(d.changes)])}}static _modelsAreIdentical(e,t){const i=e.getLineCount(),r=t.getLineCount();if(i!==r)return!1;for(let o=1;o<=i;o++){const s=e.getLineContent(o),a=t.getLineContent(o);if(s!==a)return!1}return!0}async computeMoreMinimalEdits(e,t,i){const r=this._getModel(e);if(!r)return t;const o=[];let s;t=t.slice(0).sort((l,u)=>{if(l.range&&u.range)return K.compareRangesUsingStarts(l.range,u.range);const c=l.range?0:1,d=u.range?0:1;return c-d});let a=0;for(let l=1;lp0._diffLimit){o.push({range:l,text:u});continue}const h=cFt(d,u,i),g=r.offsetAt(K.lift(l).getStartPosition());for(const m of h){const f=r.positionAt(g+m.originalStart),b=r.positionAt(g+m.originalStart+m.originalLength),C={text:u.substr(m.modifiedStart,m.modifiedLength),range:{startLineNumber:f.lineNumber,startColumn:f.column,endLineNumber:b.lineNumber,endColumn:b.column}};r.getValueInRange(C.range)!==C.text&&o.push(C)}}return typeof s=="number"&&o.push({eol:s,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),o}async computeLinks(e){const t=this._getModel(e);return t?pFt(t):null}async computeDefaultDocumentColors(e){const t=this._getModel(e);return t?LFt(t):null}async textualSuggest(e,t,i,r){const o=new aa,s=new RegExp(i,r),a=new Set;e:for(const l of e){const u=this._getModel(l);if(u){for(const c of u.words(s))if(!(c===t||!isNaN(Number(c)))&&(a.add(c),a.size>p0._suggestionsLimit))break e}}return{words:Array.from(a),duration:o.elapsed()}}async computeWordRanges(e,t,i,r){const o=this._getModel(e);if(!o)return Object.create(null);const s=new RegExp(i,r),a=Object.create(null);for(let l=t.startLineNumber;lthis._host.fhr(a,l)),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(s,t),Promise.resolve(DH(this._foreignModule))):Promise.reject(new Error("Unexpected usage"))}fmr(e,t){if(!this._foreignModule||typeof this._foreignModule[e]!="function")return Promise.reject(new Error("Missing requestHandler or method: "+e));try{return Promise.resolve(this._foreignModule[e].apply(this._foreignModule,t))}catch(i){return Promise.reject(i)}}}p0._diffLimit=1e5,p0._suggestionsLimit=1e4,typeof importScripts=="function"&&(globalThis.monaco=w2e());const MJ=Un("textResourceConfigurationService"),M2e=Un("textResourcePropertiesService");var _Ft=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},zD=function(n,e){return function(t,i){e(t,i,n)}};const Z2e=60*1e3,T2e=5*60*1e3;function _v(n,e){const t=n.getModel(e);return!(!t||t.isTooLargeForSyncing())}let ZJ=class extends De{constructor(e,t,i,r,o){super(),this._modelService=e,this._workerManager=this._register(new AFt(this._modelService,r)),this._logService=i,this._register(o.linkProvider.register({language:"*",hasAccessToAllModels:!0},{provideLinks:(s,a)=>_v(this._modelService,s.uri)?this._workerManager.withWorker().then(l=>l.computeLinks(s.uri)).then(l=>l&&{links:l}):Promise.resolve({links:[]})})),this._register(o.completionProvider.register("*",new DFt(this._workerManager,t,this._modelService,r)))}dispose(){super.dispose()}canComputeUnicodeHighlights(e){return _v(this._modelService,e)}computedUnicodeHighlights(e,t,i){return this._workerManager.withWorker().then(r=>r.computedUnicodeHighlights(e,t,i))}async computeDiff(e,t,i,r){const o=await this._workerManager.withWorker().then(l=>l.computeDiff(e,t,i,r));if(!o)return null;return{identical:o.identical,quitEarly:o.quitEarly,changes:a(o.changes),moves:o.moves.map(l=>new oIe(new Wl(new vn(l[0],l[1]),new vn(l[2],l[3])),a(l[4])))};function a(l){return l.map(u=>{var c;return new Eh(new vn(u[0],u[1]),new vn(u[2],u[3]),(c=u[4])===null||c===void 0?void 0:c.map(d=>new r0(new K(d[0],d[1],d[2],d[3]),new K(d[4],d[5],d[6],d[7]))))})}}computeMoreMinimalEdits(e,t,i=!1){if(da(t)){if(!_v(this._modelService,e))return Promise.resolve(t);const r=aa.create(),o=this._workerManager.withWorker().then(s=>s.computeMoreMinimalEdits(e,t,i));return o.finally(()=>this._logService.trace("FORMAT#computeMoreMinimalEdits",e.toString(!0),r.elapsed())),Promise.race([o,xC(1e3).then(()=>t)])}else return Promise.resolve(void 0)}canNavigateValueSet(e){return _v(this._modelService,e)}navigateValueSet(e,t,i){return this._workerManager.withWorker().then(r=>r.navigateValueSet(e,t,i))}canComputeWordRanges(e){return _v(this._modelService,e)}computeWordRanges(e,t){return this._workerManager.withWorker().then(i=>i.computeWordRanges(e,t))}};ZJ=_Ft([zD(0,wr),zD(1,MJ),zD(2,Qa),zD(3,$i),zD(4,Tt)],ZJ);class DFt{constructor(e,t,i,r){this.languageConfigurationService=r,this._debugDisplayName="wordbasedCompletions",this._workerManager=e,this._configurationService=t,this._modelService=i}async provideCompletionItems(e,t){const i=this._configurationService.getValue(e.uri,t,"editor");if(i.wordBasedSuggestions==="off")return;const r=[];if(i.wordBasedSuggestions==="currentDocument")_v(this._modelService,e.uri)&&r.push(e.uri);else for(const d of this._modelService.getModels())_v(this._modelService,d.uri)&&(d===e?r.unshift(d.uri):(i.wordBasedSuggestions==="allDocuments"||d.getLanguageId()===e.getLanguageId())&&r.push(d.uri));if(r.length===0)return;const o=this.languageConfigurationService.getLanguageConfiguration(e.getLanguageId()).getWordDefinition(),s=e.getWordAtPosition(t),a=s?new K(t.lineNumber,s.startColumn,t.lineNumber,s.endColumn):K.fromPositions(t),l=a.setEndPosition(t.lineNumber,t.column),c=await(await this._workerManager.withWorker()).textualSuggest(r,s==null?void 0:s.word,o);if(c)return{duration:c.duration,suggestions:c.words.map(d=>({kind:18,label:d,insertText:d,range:{insert:l,replace:a}}))}}}let AFt=class extends De{constructor(e,t){super(),this.languageConfigurationService=t,this._modelService=e,this._editorWorkerClient=null,this._lastWorkerUsedTime=new Date().getTime(),this._register(new GY).cancelAndSet(()=>this._checkStopIdleWorker(),Math.round(T2e/2),Ddt),this._register(this._modelService.onModelRemoved(r=>this._checkStopEmptyWorker()))}dispose(){this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),super.dispose()}_checkStopEmptyWorker(){if(!this._editorWorkerClient)return;this._modelService.getModels().length===0&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}_checkStopIdleWorker(){if(!this._editorWorkerClient)return;new Date().getTime()-this._lastWorkerUsedTime>T2e&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)}withWorker(){return this._lastWorkerUsedTime=new Date().getTime(),this._editorWorkerClient||(this._editorWorkerClient=new EJ(this._modelService,!1,"editorWorkerService",this.languageConfigurationService)),Promise.resolve(this._editorWorkerClient)}};class NFt extends De{constructor(e,t,i){if(super(),this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),this._proxy=e,this._modelService=t,!i){const r=new cY;r.cancelAndSet(()=>this._checkStopModelSync(),Math.round(Z2e/2)),this._register(r)}}dispose(){for(const e in this._syncedModels)Mi(this._syncedModels[e]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),super.dispose()}ensureSyncedResources(e,t){for(const i of e){const r=i.toString();this._syncedModels[r]||this._beginModelSync(i,t),this._syncedModels[r]&&(this._syncedModelsLastUsedTime[r]=new Date().getTime())}}_checkStopModelSync(){const e=new Date().getTime(),t=[];for(const i in this._syncedModelsLastUsedTime)e-this._syncedModelsLastUsedTime[i]>Z2e&&t.push(i);for(const i of t)this._stopModelSync(i)}_beginModelSync(e,t){const i=this._modelService.getModel(e);if(!i||!t&&i.isTooLargeForSyncing())return;const r=e.toString();this._proxy.acceptNewModel({url:i.uri.toString(),lines:i.getLinesContent(),EOL:i.getEOL(),versionId:i.getVersionId()});const o=new je;o.add(i.onDidChangeContent(s=>{this._proxy.acceptModelChanged(r.toString(),s)})),o.add(i.onWillDispose(()=>{this._stopModelSync(r)})),o.add(en(()=>{this._proxy.acceptRemovedModel(r)})),this._syncedModels[r]=o}_stopModelSync(e){const t=this._syncedModels[e];delete this._syncedModels[e],delete this._syncedModelsLastUsedTime[e],Mi(t)}}class E2e{constructor(e){this._instance=e,this._proxyObj=Promise.resolve(this._instance)}dispose(){this._instance.dispose()}getProxyObject(){return this._proxyObj}}class TJ{constructor(e){this._workerClient=e}fhr(e,t){return this._workerClient.fhr(e,t)}}class EJ extends De{constructor(e,t,i,r){super(),this.languageConfigurationService=r,this._disposed=!1,this._modelService=e,this._keepIdleModels=t,this._workerFactory=new IW(i),this._worker=null,this._modelManager=null}fhr(e,t){throw new Error("Not implemented!")}_getOrCreateWorker(){if(!this._worker)try{this._worker=this._register(new oFt(this._workerFactory,"vs/editor/common/services/editorSimpleWorker",new TJ(this)))}catch(e){RU(e),this._worker=new E2e(new p0(new TJ(this),null))}return this._worker}_getProxy(){return this._getOrCreateWorker().getProxyObject().then(void 0,e=>(RU(e),this._worker=new E2e(new p0(new TJ(this),null)),this._getOrCreateWorker().getProxyObject()))}_getOrCreateModelManager(e){return this._modelManager||(this._modelManager=this._register(new NFt(e,this._modelService,this._keepIdleModels))),this._modelManager}async _withSyncedResources(e,t=!1){return this._disposed?Promise.reject(Hdt()):this._getProxy().then(i=>(this._getOrCreateModelManager(i).ensureSyncedResources(e,t),i))}computedUnicodeHighlights(e,t,i){return this._withSyncedResources([e]).then(r=>r.computeUnicodeHighlights(e.toString(),t,i))}computeDiff(e,t,i,r){return this._withSyncedResources([e,t],!0).then(o=>o.computeDiff(e.toString(),t.toString(),i,r))}computeMoreMinimalEdits(e,t,i){return this._withSyncedResources([e]).then(r=>r.computeMoreMinimalEdits(e.toString(),t,i))}computeLinks(e){return this._withSyncedResources([e]).then(t=>t.computeLinks(e.toString()))}computeDefaultDocumentColors(e){return this._withSyncedResources([e]).then(t=>t.computeDefaultDocumentColors(e.toString()))}async textualSuggest(e,t,i){const r=await this._withSyncedResources(e),o=i.source,s=i.flags;return r.textualSuggest(e.map(a=>a.toString()),t,o,s)}computeWordRanges(e,t){return this._withSyncedResources([e]).then(i=>{const r=this._modelService.getModel(e);if(!r)return Promise.resolve(null);const o=this.languageConfigurationService.getLanguageConfiguration(r.getLanguageId()).getWordDefinition(),s=o.source,a=o.flags;return i.computeWordRanges(e.toString(),t,s,a)})}navigateValueSet(e,t,i){return this._withSyncedResources([e]).then(r=>{const o=this._modelService.getModel(e);if(!o)return null;const s=this.languageConfigurationService.getLanguageConfiguration(o.getLanguageId()).getWordDefinition(),a=s.source,l=s.flags;return r.navigateValueSet(e.toString(),t,i,a,l)})}dispose(){super.dispose(),this._disposed=!0}}const W2e=[];function YD(n){W2e.push(n)}function kFt(){return W2e.slice(0)}var MFt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},WJ=function(n,e){return function(t,i){e(t,i,n)}};class RJ{constructor(e,t){this._editorWorkerClient=new EJ(e,!1,"editorWorkerService",t)}async provideDocumentColors(e,t){return this._editorWorkerClient.computeDefaultDocumentColors(e.uri)}provideColorPresentations(e,t,i){const r=t.range,o=t.color,s=o.alpha,a=new Ee(new ii(Math.round(255*o.red),Math.round(255*o.green),Math.round(255*o.blue),s)),l=s?Ee.Format.CSS.formatRGB(a):Ee.Format.CSS.formatRGBA(a),u=s?Ee.Format.CSS.formatHSL(a):Ee.Format.CSS.formatHSLA(a),c=s?Ee.Format.CSS.formatHex(a):Ee.Format.CSS.formatHexA(a),d=[];return d.push({label:l,textEdit:{range:r,text:l}}),d.push({label:u,textEdit:{range:r,text:u}}),d.push({label:c,textEdit:{range:r,text:c}}),d}}let GJ=class extends De{constructor(e,t,i){super(),this._register(i.colorProvider.register("*",new RJ(e,t)))}};GJ=MFt([WJ(0,wr),WJ(1,$i),WJ(2,Tt)],GJ),YD(GJ);async function R2e(n,e,t,i=!0){return VJ(new ZFt,n,e,t,i)}function G2e(n,e,t,i){return Promise.resolve(t.provideColorPresentations(n,e,i))}class ZFt{constructor(){}async compute(e,t,i,r){const o=await e.provideDocumentColors(t,i);if(Array.isArray(o))for(const s of o)r.push({colorInfo:s,provider:e});return Array.isArray(o)}}class TFt{constructor(){}async compute(e,t,i,r){const o=await e.provideDocumentColors(t,i);if(Array.isArray(o))for(const s of o)r.push({range:s.range,color:[s.color.red,s.color.green,s.color.blue,s.color.alpha]});return Array.isArray(o)}}class EFt{constructor(e){this.colorInfo=e}async compute(e,t,i,r){const o=await e.provideColorPresentations(t,this.colorInfo,Hn.None);return Array.isArray(o)&&r.push(...o),Array.isArray(o)}}async function VJ(n,e,t,i,r){let o=!1,s;const a=[],l=e.ordered(t);for(let u=l.length-1;u>=0;u--){const c=l[u];if(c instanceof RJ)s=c;else try{await n.compute(c,t,i,a)&&(o=!0)}catch(d){wo(d)}}return o?a:s&&r?(await n.compute(s,t,i,a),a):[]}function V2e(n,e){const{colorProvider:t}=n.get(Tt),i=n.get(wr).getModel(e);if(!i)throw yc();const r=n.get(Xn).getValue("editor.defaultColorDecorators",{resource:e});return{model:i,colorProviderRegistry:t,isDefaultColorDecoratorsEnabled:r}}ei.registerCommand("_executeDocumentColorProvider",function(n,...e){const[t]=e;if(!(t instanceof $t))throw yc();const{model:i,colorProviderRegistry:r,isDefaultColorDecoratorsEnabled:o}=V2e(n,t);return VJ(new TFt,r,i,Hn.None,o)}),ei.registerCommand("_executeColorPresentationProvider",function(n,...e){const[t,i]=e,{uri:r,range:o}=i;if(!(r instanceof $t)||!Array.isArray(t)||t.length!==4||!K.isIRange(o))throw yc();const{model:s,colorProviderRegistry:a,isDefaultColorDecoratorsEnabled:l}=V2e(n,r),[u,c,d,h]=t;return VJ(new EFt({range:o,color:{red:u,green:c,blue:d,alpha:h}}),a,s,Hn.None,l)});var WFt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},XJ=function(n,e){return function(t,i){e(t,i,n)}},PJ;const X2e=Object.create({});let b0=PJ=class extends De{constructor(e,t,i,r){super(),this._editor=e,this._configurationService=t,this._languageFeaturesService=i,this._localToDispose=this._register(new je),this._decorationsIds=[],this._colorDatas=new Map,this._colorDecoratorIds=this._editor.createDecorationsCollection(),this._ruleFactory=new d_(this._editor),this._decoratorLimitReporter=new RFt,this._colorDecorationClassRefs=this._register(new je),this._debounceInformation=r.for(i.colorProvider,"Document Colors",{min:PJ.RECOMPUTE_TIME}),this._register(e.onDidChangeModel(()=>{this._isColorDecoratorsEnabled=this.isEnabled(),this.updateColors()})),this._register(e.onDidChangeModelLanguage(()=>this.updateColors())),this._register(i.colorProvider.onDidChange(()=>this.updateColors())),this._register(e.onDidChangeConfiguration(o=>{const s=this._isColorDecoratorsEnabled;this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(146);const a=s!==this._isColorDecoratorsEnabled||o.hasChanged(21),l=o.hasChanged(146);(a||l)&&(this._isColorDecoratorsEnabled?this.updateColors():this.removeAllDecorations())})),this._timeoutTimer=null,this._computePromise=null,this._isColorDecoratorsEnabled=this.isEnabled(),this._isDefaultColorDecoratorsEnabled=this._editor.getOption(146),this.updateColors()}isEnabled(){const e=this._editor.getModel();if(!e)return!1;const t=e.getLanguageId(),i=this._configurationService.getValue(t);if(i&&typeof i=="object"){const r=i.colorDecorators;if(r&&r.enable!==void 0&&!r.enable)return r.enable}return this._editor.getOption(20)}static get(e){return e.getContribution(this.ID)}dispose(){this.stop(),this.removeAllDecorations(),super.dispose()}updateColors(){if(this.stop(),!this._isColorDecoratorsEnabled)return;const e=this._editor.getModel();!e||!this._languageFeaturesService.colorProvider.has(e)||(this._localToDispose.add(this._editor.onDidChangeModelContent(()=>{this._timeoutTimer||(this._timeoutTimer=new md,this._timeoutTimer.cancelAndSet(()=>{this._timeoutTimer=null,this.beginCompute()},this._debounceInformation.get(e)))})),this.beginCompute())}async beginCompute(){this._computePromise=$o(async e=>{const t=this._editor.getModel();if(!t)return[];const i=new aa(!1),r=await R2e(this._languageFeaturesService.colorProvider,t,e,this._isDefaultColorDecoratorsEnabled);return this._debounceInformation.update(t,i.elapsed()),r});try{const e=await this._computePromise;this.updateDecorations(e),this.updateColorDecorators(e),this._computePromise=null}catch(e){fn(e)}}stop(){this._timeoutTimer&&(this._timeoutTimer.cancel(),this._timeoutTimer=null),this._computePromise&&(this._computePromise.cancel(),this._computePromise=null),this._localToDispose.clear()}updateDecorations(e){const t=e.map(i=>({range:{startLineNumber:i.colorInfo.range.startLineNumber,startColumn:i.colorInfo.range.startColumn,endLineNumber:i.colorInfo.range.endLineNumber,endColumn:i.colorInfo.range.endColumn},options:In.EMPTY}));this._editor.changeDecorations(i=>{this._decorationsIds=i.deltaDecorations(this._decorationsIds,t),this._colorDatas=new Map,this._decorationsIds.forEach((r,o)=>this._colorDatas.set(r,e[o]))})}updateColorDecorators(e){this._colorDecorationClassRefs.clear();const t=[],i=this._editor.getOption(21);for(let o=0;othis._colorDatas.has(r.id));return i.length===0?null:this._colorDatas.get(i[0].id)}isColorDecoration(e){return this._colorDecoratorIds.has(e)}};b0.ID="editor.contrib.colorDetector",b0.RECOMPUTE_TIME=1e3,b0=PJ=WFt([XJ(1,Xn),XJ(2,Tt),XJ(3,Xc)],b0);class RFt{constructor(){this._onDidChange=new be,this._computed=0,this._limited=!1}update(e,t){(e!==this._computed||t!==this._limited)&&(this._computed=e,this._limited=t,this._onDidChange.fire())}}Ii(b0.ID,b0,1);class GFt{get color(){return this._color}set color(e){this._color.equals(e)||(this._color=e,this._onDidChangeColor.fire(e))}get presentation(){return this.colorPresentations[this.presentationIndex]}get colorPresentations(){return this._colorPresentations}set colorPresentations(e){this._colorPresentations=e,this.presentationIndex>e.length-1&&(this.presentationIndex=0),this._onDidChangePresentation.fire(this.presentation)}constructor(e,t,i){this.presentationIndex=i,this._onColorFlushed=new be,this.onColorFlushed=this._onColorFlushed.event,this._onDidChangeColor=new be,this.onDidChangeColor=this._onDidChangeColor.event,this._onDidChangePresentation=new be,this.onDidChangePresentation=this._onDidChangePresentation.event,this.originalColor=e,this._color=e,this._colorPresentations=t}selectNextColorPresentation(){this.presentationIndex=(this.presentationIndex+1)%this.colorPresentations.length,this.flushColor(),this._onDidChangePresentation.fire(this.presentation)}guessColorPresentation(e,t){let i=-1;for(let r=0;r{this.backgroundColor=s.getColor(yT)||Ee.white})),this._register(Ve(this._pickedColorNode,at.CLICK,()=>this.model.selectNextColorPresentation())),this._register(Ve(this._originalColorNode,at.CLICK,()=>{this.model.color=this.model.originalColor,this.model.flushColor()})),this._register(t.onDidChangeColor(this.onDidChangeColor,this)),this._register(t.onDidChangePresentation(this.onDidChangePresentation,this)),this._pickedColorNode.style.backgroundColor=Ee.Format.CSS.format(t.color)||"",this._pickedColorNode.classList.toggle("light",t.color.rgba.a<.5?this.backgroundColor.isLighter():t.color.isLighter()),this.onDidChangeColor(this.model.color),this.showingStandaloneColorPicker&&(this._domNode.classList.add("standalone-colorpicker"),this._closeButton=this._register(new XFt(this._domNode)))}get closeButton(){return this._closeButton}get pickedColorNode(){return this._pickedColorNode}get originalColorNode(){return this._originalColorNode}onDidChangeColor(e){this._pickedColorNode.style.backgroundColor=Ee.Format.CSS.format(e)||"",this._pickedColorNode.classList.toggle("light",e.rgba.a<.5?this.backgroundColor.isLighter():e.isLighter()),this.onDidChangePresentation()}onDidChangePresentation(){this._pickedColorPresentation.textContent=this.model.presentation?this.model.presentation.label:""}}class XFt extends De{constructor(e){super(),this._onClicked=this._register(new be),this.onClicked=this._onClicked.event,this._button=document.createElement("div"),this._button.classList.add("close-button"),Je(e,this._button);const t=document.createElement("div");t.classList.add("close-button-inner-div"),Je(this._button,t),Je(t,Yu(".button"+on.asCSSSelector(io("color-picker-close",ct.close,x("closeIcon","Icon to close the color picker"))))).classList.add("close-icon"),this._register(Ve(this._button,at.CLICK,()=>{this._onClicked.fire()}))}}class PFt extends De{constructor(e,t,i,r=!1){super(),this.model=t,this.pixelRatio=i,this._insertButton=null,this._domNode=Yu(".colorpicker-body"),Je(e,this._domNode),this._saturationBox=new OFt(this._domNode,this.model,this.pixelRatio),this._register(this._saturationBox),this._register(this._saturationBox.onDidChange(this.onDidSaturationValueChange,this)),this._register(this._saturationBox.onColorFlushed(this.flushColor,this)),this._opacityStrip=new BFt(this._domNode,this.model,r),this._register(this._opacityStrip),this._register(this._opacityStrip.onDidChange(this.onDidOpacityChange,this)),this._register(this._opacityStrip.onColorFlushed(this.flushColor,this)),this._hueStrip=new zFt(this._domNode,this.model,r),this._register(this._hueStrip),this._register(this._hueStrip.onDidChange(this.onDidHueChange,this)),this._register(this._hueStrip.onColorFlushed(this.flushColor,this)),r&&(this._insertButton=this._register(new YFt(this._domNode)),this._domNode.classList.add("standalone-colorpicker"))}flushColor(){this.model.flushColor()}onDidSaturationValueChange({s:e,v:t}){const i=this.model.color.hsva;this.model.color=new Ee(new Og(i.h,e,t,i.a))}onDidOpacityChange(e){const t=this.model.color.hsva;this.model.color=new Ee(new Og(t.h,t.s,t.v,e))}onDidHueChange(e){const t=this.model.color.hsva,i=(1-e)*360;this.model.color=new Ee(new Og(i===360?0:i,t.s,t.v,t.a))}get domNode(){return this._domNode}get saturationBox(){return this._saturationBox}get enterButton(){return this._insertButton}layout(){this._saturationBox.layout(),this._opacityStrip.layout(),this._hueStrip.layout()}}class OFt extends De{constructor(e,t,i){super(),this.model=t,this.pixelRatio=i,this._onDidChange=new be,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new be,this.onColorFlushed=this._onColorFlushed.event,this._domNode=Yu(".saturation-wrap"),Je(e,this._domNode),this._canvas=document.createElement("canvas"),this._canvas.className="saturation-box",Je(this._domNode,this._canvas),this.selection=Yu(".saturation-selection"),Je(this._domNode,this.selection),this.layout(),this._register(Ve(this._domNode,at.POINTER_DOWN,r=>this.onPointerDown(r))),this._register(this.model.onDidChangeColor(this.onDidChangeColor,this)),this.monitor=null}get domNode(){return this._domNode}onPointerDown(e){if(!e.target||!(e.target instanceof Element))return;this.monitor=this._register(new x2);const t=go(this._domNode);e.target!==this.selection&&this.onDidChangePosition(e.offsetX,e.offsetY),this.monitor.startMonitoring(e.target,e.pointerId,e.buttons,r=>this.onDidChangePosition(r.pageX-t.left,r.pageY-t.top),()=>null);const i=Ve(e.target.ownerDocument,at.POINTER_UP,()=>{this._onColorFlushed.fire(),i.dispose(),this.monitor&&(this.monitor.stopMonitoring(!0),this.monitor=null)},!0)}onDidChangePosition(e,t){const i=Math.max(0,Math.min(1,e/this.width)),r=Math.max(0,Math.min(1,1-t/this.height));this.paintSelection(i,r),this._onDidChange.fire({s:i,v:r})}layout(){this.width=this._domNode.offsetWidth,this.height=this._domNode.offsetHeight,this._canvas.width=this.width*this.pixelRatio,this._canvas.height=this.height*this.pixelRatio,this.paint();const e=this.model.color.hsva;this.paintSelection(e.s,e.v)}paint(){const e=this.model.color.hsva,t=new Ee(new Og(e.h,1,1,1)),i=this._canvas.getContext("2d"),r=i.createLinearGradient(0,0,this._canvas.width,0);r.addColorStop(0,"rgba(255, 255, 255, 1)"),r.addColorStop(.5,"rgba(255, 255, 255, 0.5)"),r.addColorStop(1,"rgba(255, 255, 255, 0)");const o=i.createLinearGradient(0,0,0,this._canvas.height);o.addColorStop(0,"rgba(0, 0, 0, 0)"),o.addColorStop(1,"rgba(0, 0, 0, 1)"),i.rect(0,0,this._canvas.width,this._canvas.height),i.fillStyle=Ee.Format.CSS.format(t),i.fill(),i.fillStyle=r,i.fill(),i.fillStyle=o,i.fill()}paintSelection(e,t){this.selection.style.left=`${e*this.width}px`,this.selection.style.top=`${this.height-t*this.height}px`}onDidChangeColor(e){if(this.monitor&&this.monitor.isMonitoring())return;this.paint();const t=e.hsva;this.paintSelection(t.s,t.v)}}class P2e extends De{constructor(e,t,i=!1){super(),this.model=t,this._onDidChange=new be,this.onDidChange=this._onDidChange.event,this._onColorFlushed=new be,this.onColorFlushed=this._onColorFlushed.event,i?(this.domNode=Je(e,Yu(".standalone-strip")),this.overlay=Je(this.domNode,Yu(".standalone-overlay"))):(this.domNode=Je(e,Yu(".strip")),this.overlay=Je(this.domNode,Yu(".overlay"))),this.slider=Je(this.domNode,Yu(".slider")),this.slider.style.top="0px",this._register(Ve(this.domNode,at.POINTER_DOWN,r=>this.onPointerDown(r))),this._register(t.onDidChangeColor(this.onDidChangeColor,this)),this.layout()}layout(){this.height=this.domNode.offsetHeight-this.slider.offsetHeight;const e=this.getValue(this.model.color);this.updateSliderPosition(e)}onDidChangeColor(e){const t=this.getValue(e);this.updateSliderPosition(t)}onPointerDown(e){if(!e.target||!(e.target instanceof Element))return;const t=this._register(new x2),i=go(this.domNode);this.domNode.classList.add("grabbing"),e.target!==this.slider&&this.onDidChangeTop(e.offsetY),t.startMonitoring(e.target,e.pointerId,e.buttons,o=>this.onDidChangeTop(o.pageY-i.top),()=>null);const r=Ve(e.target.ownerDocument,at.POINTER_UP,()=>{this._onColorFlushed.fire(),r.dispose(),t.stopMonitoring(!0),this.domNode.classList.remove("grabbing")},!0)}onDidChangeTop(e){const t=Math.max(0,Math.min(1,1-e/this.height));this.updateSliderPosition(t),this._onDidChange.fire(t)}updateSliderPosition(e){this.slider.style.top=`${(1-e)*this.height}px`}}class BFt extends P2e{constructor(e,t,i=!1){super(e,t,i),this.domNode.classList.add("opacity-strip"),this.onDidChangeColor(this.model.color)}onDidChangeColor(e){super.onDidChangeColor(e);const{r:t,g:i,b:r}=e.rgba,o=new Ee(new ii(t,i,r,1)),s=new Ee(new ii(t,i,r,0));this.overlay.style.background=`linear-gradient(to bottom, ${o} 0%, ${s} 100%)`}getValue(e){return e.hsva.a}}class zFt extends P2e{constructor(e,t,i=!1){super(e,t,i),this.domNode.classList.add("hue-strip")}getValue(e){return 1-e.hsva.h/360}}class YFt extends De{constructor(e){super(),this._onClicked=this._register(new be),this.onClicked=this._onClicked.event,this._button=Je(e,document.createElement("button")),this._button.classList.add("insert-button"),this._button.textContent="Insert",this._register(Ve(this._button,at.CLICK,()=>{this._onClicked.fire()}))}get button(){return this._button}}class HFt extends Pu{constructor(e,t,i,r,o=!1){super(),this.model=t,this.pixelRatio=i,this._register(KF.getInstance(qt(e)).onDidChange(()=>this.layout()));const s=Yu(".colorpicker-widget");e.appendChild(s),this.header=this._register(new VFt(s,this.model,r,o)),this.body=this._register(new PFt(s,this.model,this.pixelRatio,o))}layout(){this.body.layout()}}var O2e=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},B2e=function(n,e){return function(t,i){e(t,i,n)}};class UFt{constructor(e,t,i,r){this.owner=e,this.range=t,this.model=i,this.provider=r,this.forceShowAtRange=!0}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let SW=class{constructor(e,t){this._editor=e,this._themeService=t,this.hoverOrdinal=2}computeSync(e,t){return[]}computeAsync(e,t,i){return So.fromPromise(this._computeAsync(e,t,i))}async _computeAsync(e,t,i){if(!this._editor.hasModel())return[];const r=b0.get(this._editor);if(!r)return[];for(const o of t){if(!r.isColorDecoration(o))continue;const s=r.getColorData(o.range.getStartPosition());if(s)return[await z2e(this,this._editor.getModel(),s.colorInfo,s.provider)]}return[]}renderHoverParts(e,t){return Y2e(this,this._editor,this._themeService,t,e)}};SW=O2e([B2e(1,ts)],SW);class JFt{constructor(e,t,i,r){this.owner=e,this.range=t,this.model=i,this.provider=r}}let HD=class{constructor(e,t){this._editor=e,this._themeService=t,this._color=null}async createColorHover(e,t,i){if(!this._editor.hasModel()||!b0.get(this._editor))return null;const o=await R2e(i,this._editor.getModel(),Hn.None);let s=null,a=null;for(const d of o){const h=d.colorInfo;K.containsRange(h.range,e.range)&&(s=h,a=d.provider)}const l=s??e,u=a??t,c=!!s;return{colorHover:await z2e(this,this._editor.getModel(),l,u),foundInEditor:c}}async updateEditorModel(e){if(!this._editor.hasModel())return;const t=e.model;let i=new K(e.range.startLineNumber,e.range.startColumn,e.range.endLineNumber,e.range.endColumn);this._color&&(await xW(this._editor.getModel(),t,this._color,i,e),i=H2e(this._editor,i,t))}renderHoverParts(e,t){return Y2e(this,this._editor,this._themeService,t,e)}set color(e){this._color=e}get color(){return this._color}};HD=O2e([B2e(1,ts)],HD);async function z2e(n,e,t,i){const r=e.getValueInRange(t.range),{red:o,green:s,blue:a,alpha:l}=t.color,u=new ii(Math.round(o*255),Math.round(s*255),Math.round(a*255),l),c=new Ee(u),d=await G2e(e,t,i,Hn.None),h=new GFt(c,[],0);return h.colorPresentations=d||[],h.guessColorPresentation(c,r),n instanceof SW?new UFt(n,K.lift(t.range),h,i):new JFt(n,K.lift(t.range),h,i)}function Y2e(n,e,t,i,r){if(i.length===0||!e.hasModel())return De.None;if(r.setMinimumDimensions){const h=e.getOption(67)+8;r.setMinimumDimensions(new fi(302,h))}const o=new je,s=i[0],a=e.getModel(),l=s.model,u=o.add(new HFt(r.fragment,l,e.getOption(142),t,n instanceof HD));r.setColorPicker(u);let c=!1,d=new K(s.range.startLineNumber,s.range.startColumn,s.range.endLineNumber,s.range.endColumn);if(n instanceof HD){const h=i[0].model.color;n.color=h,xW(a,l,h,d,s),o.add(l.onColorFlushed(g=>{n.color=g}))}else o.add(l.onColorFlushed(async h=>{await xW(a,l,h,d,s),c=!0,d=H2e(e,d,l)}));return o.add(l.onDidChangeColor(h=>{xW(a,l,h,d,s)})),o.add(e.onDidChangeModelContent(h=>{c?c=!1:(r.hide(),e.focus())})),o}function H2e(n,e,t){var i,r;const o=[],s=(i=t.presentation.textEdit)!==null&&i!==void 0?i:{range:e,text:t.presentation.label,forceMoveMarkers:!1};o.push(s),t.presentation.additionalTextEdits&&o.push(...t.presentation.additionalTextEdits);const a=K.lift(s.range),l=n.getModel()._setTrackedRange(null,a,3);return n.executeEdits("colorpicker",o),n.pushUndoStop(),(r=n.getModel()._getTrackedRange(l))!==null&&r!==void 0?r:a}async function xW(n,e,t,i,r){const o=await G2e(n,{range:i,color:{red:t.rgba.r/255,green:t.rgba.g/255,blue:t.rgba.b/255,alpha:t.rgba.a}},r.provider,Hn.None);e.colorPresentations=o||[]}function OJ(n,e){return!!n[e]}class BJ{constructor(e,t){this.target=e.target,this.isLeftClick=e.event.leftButton,this.isMiddleClick=e.event.middleButton,this.isRightClick=e.event.rightButton,this.hasTriggerModifier=OJ(e.event,t.triggerModifier),this.hasSideBySideModifier=OJ(e.event,t.triggerSideBySideModifier),this.isNoneOrSingleMouseDown=e.event.detail<=1}}class U2e{constructor(e,t){this.keyCodeIsTriggerKey=e.keyCode===t.triggerKey,this.keyCodeIsSideBySideKey=e.keyCode===t.triggerSideBySideKey,this.hasTriggerModifier=OJ(e,t.triggerModifier)}}class LW{constructor(e,t,i,r){this.triggerKey=e,this.triggerModifier=t,this.triggerSideBySideKey=i,this.triggerSideBySideModifier=r}equals(e){return this.triggerKey===e.triggerKey&&this.triggerModifier===e.triggerModifier&&this.triggerSideBySideKey===e.triggerSideBySideKey&&this.triggerSideBySideModifier===e.triggerSideBySideModifier}}function J2e(n){return n==="altKey"?$n?new LW(57,"metaKey",6,"altKey"):new LW(5,"ctrlKey",6,"altKey"):$n?new LW(6,"altKey",57,"metaKey"):new LW(6,"altKey",5,"ctrlKey")}class FW extends De{constructor(e,t){var i;super(),this._onMouseMoveOrRelevantKeyDown=this._register(new be),this.onMouseMoveOrRelevantKeyDown=this._onMouseMoveOrRelevantKeyDown.event,this._onExecute=this._register(new be),this.onExecute=this._onExecute.event,this._onCancel=this._register(new be),this.onCancel=this._onCancel.event,this._editor=e,this._extractLineNumberFromMouseEvent=(i=t==null?void 0:t.extractLineNumberFromMouseEvent)!==null&&i!==void 0?i:r=>r.target.position?r.target.position.lineNumber:0,this._opts=J2e(this._editor.getOption(78)),this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._register(this._editor.onDidChangeConfiguration(r=>{if(r.hasChanged(78)){const o=J2e(this._editor.getOption(78));if(this._opts.equals(o))return;this._opts=o,this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._lineNumberOnMouseDown=0,this._onCancel.fire()}})),this._register(this._editor.onMouseMove(r=>this._onEditorMouseMove(new BJ(r,this._opts)))),this._register(this._editor.onMouseDown(r=>this._onEditorMouseDown(new BJ(r,this._opts)))),this._register(this._editor.onMouseUp(r=>this._onEditorMouseUp(new BJ(r,this._opts)))),this._register(this._editor.onKeyDown(r=>this._onEditorKeyDown(new U2e(r,this._opts)))),this._register(this._editor.onKeyUp(r=>this._onEditorKeyUp(new U2e(r,this._opts)))),this._register(this._editor.onMouseDrag(()=>this._resetHandler())),this._register(this._editor.onDidChangeCursorSelection(r=>this._onDidChangeCursorSelection(r))),this._register(this._editor.onDidChangeModel(r=>this._resetHandler())),this._register(this._editor.onDidChangeModelContent(()=>this._resetHandler())),this._register(this._editor.onDidScrollChange(r=>{(r.scrollTopChanged||r.scrollLeftChanged)&&this._resetHandler()}))}_onDidChangeCursorSelection(e){e.selection&&e.selection.startColumn!==e.selection.endColumn&&this._resetHandler()}_onEditorMouseMove(e){this._lastMouseMoveEvent=e,this._onMouseMoveOrRelevantKeyDown.fire([e,null])}_onEditorMouseDown(e){this._hasTriggerKeyOnMouseDown=e.hasTriggerModifier,this._lineNumberOnMouseDown=this._extractLineNumberFromMouseEvent(e)}_onEditorMouseUp(e){const t=this._extractLineNumberFromMouseEvent(e);this._hasTriggerKeyOnMouseDown&&this._lineNumberOnMouseDown&&this._lineNumberOnMouseDown===t&&this._onExecute.fire(e)}_onEditorKeyDown(e){this._lastMouseMoveEvent&&(e.keyCodeIsTriggerKey||e.keyCodeIsSideBySideKey&&e.hasTriggerModifier)?this._onMouseMoveOrRelevantKeyDown.fire([this._lastMouseMoveEvent,e]):e.hasTriggerModifier&&this._onCancel.fire()}_onEditorKeyUp(e){e.keyCodeIsTriggerKey&&this._onCancel.fire()}_resetHandler(){this._lastMouseMoveEvent=null,this._hasTriggerKeyOnMouseDown=!1,this._onCancel.fire()}}var KFt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},rp=function(n,e){return function(t,i){e(t,i,n)}};let C0=class extends Q2{constructor(e,t,i,r,o,s,a,l,u,c,d,h,g){super(e,{...r.getRawOptions(),overflowWidgetsDomNode:r.getOverflowWidgetsDomNode()},i,o,s,a,l,u,c,d,h,g),this._parentEditor=r,this._overwriteOptions=t,super.updateOptions(this._overwriteOptions),this._register(r.onDidChangeConfiguration(m=>this._onParentConfigurationChanged(m)))}getParentEditor(){return this._parentEditor}_onParentConfigurationChanged(e){super.updateOptions(this._parentEditor.getRawOptions()),super.updateOptions(this._overwriteOptions)}updateOptions(e){gT(this._overwriteOptions,e,!0),super.updateOptions(this._overwriteOptions)}};C0=KFt([rp(4,tn),rp(5,yi),rp(6,Vr),rp(7,ln),rp(8,ts),rp(9,Fo),rp(10,vd),rp(11,$i),rp(12,Tt)],C0);const K2e=new Ee(new ii(0,122,204)),jFt={showArrow:!0,showFrame:!0,className:"",frameColor:K2e,arrowColor:K2e,keepEditorSelection:!1},QFt="vs.editor.contrib.zoneWidget";class $Ft{constructor(e,t,i,r,o,s,a,l){this.id="",this.domNode=e,this.afterLineNumber=t,this.afterColumn=i,this.heightInLines=r,this.showInHiddenAreas=a,this.ordinal=l,this._onDomNodeTop=o,this._onComputedHeight=s}onDomNodeTop(e){this._onDomNodeTop(e)}onComputedHeight(e){this._onComputedHeight(e)}}class qFt{constructor(e,t){this._id=e,this._domNode=t}getId(){return this._id}getDomNode(){return this._domNode}getPosition(){return null}}class _W{constructor(e){this._editor=e,this._ruleName=_W._IdGenerator.nextId(),this._decorations=this._editor.createDecorationsCollection(),this._color=null,this._height=-1}dispose(){this.hide(),zY(this._ruleName)}set color(e){this._color!==e&&(this._color=e,this._updateStyle())}set height(e){this._height!==e&&(this._height=e,this._updateStyle())}_updateStyle(){zY(this._ruleName),D5(`.monaco-editor ${this._ruleName}`,`border-style: solid; border-color: transparent; border-bottom-color: ${this._color}; border-width: ${this._height}px; bottom: -${this._height}px; margin-left: -${this._height}px; `)}show(e){e.column===1&&(e={lineNumber:e.lineNumber,column:2}),this._decorations.set([{range:K.fromPositions(e),options:{description:"zone-widget-arrow",className:this._ruleName,stickiness:1}}])}hide(){this._decorations.clear()}}_W._IdGenerator=new D7(".arrow-decoration-");class e_t{constructor(e,t={}){this._arrow=null,this._overlayWidget=null,this._resizeSash=null,this._viewZone=null,this._disposables=new je,this.container=null,this._isShowing=!1,this.editor=e,this._positionMarkerId=this.editor.createDecorationsCollection(),this.options=Ff(t),gT(this.options,jFt,!1),this.domNode=document.createElement("div"),this.options.isAccessible||(this.domNode.setAttribute("aria-hidden","true"),this.domNode.setAttribute("role","presentation")),this._disposables.add(this.editor.onDidLayoutChange(i=>{const r=this._getWidth(i);this.domNode.style.width=r+"px",this.domNode.style.left=this._getLeft(i)+"px",this._onWidth(r)}))}dispose(){this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this._viewZone&&this.editor.changeViewZones(e=>{this._viewZone&&e.removeZone(this._viewZone.id),this._viewZone=null}),this._positionMarkerId.clear(),this._disposables.dispose()}create(){this.domNode.classList.add("zone-widget"),this.options.className&&this.domNode.classList.add(this.options.className),this.container=document.createElement("div"),this.container.classList.add("zone-widget-container"),this.domNode.appendChild(this.container),this.options.showArrow&&(this._arrow=new _W(this.editor),this._disposables.add(this._arrow)),this._fillContainer(this.container),this._initSash(),this._applyStyles()}style(e){e.frameColor&&(this.options.frameColor=e.frameColor),e.arrowColor&&(this.options.arrowColor=e.arrowColor),this._applyStyles()}_applyStyles(){if(this.container&&this.options.frameColor){const e=this.options.frameColor.toString();this.container.style.borderTopColor=e,this.container.style.borderBottomColor=e}if(this._arrow&&this.options.arrowColor){const e=this.options.arrowColor.toString();this._arrow.color=e}}_getWidth(e){return e.width-e.minimap.minimapWidth-e.verticalScrollbarWidth}_getLeft(e){return e.minimap.minimapWidth>0&&e.minimap.minimapLeft===0?e.minimap.minimapWidth:0}_onViewZoneTop(e){this.domNode.style.top=e+"px"}_onViewZoneHeight(e){var t;if(this.domNode.style.height=`${e}px`,this.container){const i=e-this._decoratingElementsHeight();this.container.style.height=`${i}px`;const r=this.editor.getLayoutInfo();this._doLayout(i,this._getWidth(r))}(t=this._resizeSash)===null||t===void 0||t.layout()}get position(){const e=this._positionMarkerId.getRange(0);if(e)return e.getStartPosition()}show(e,t){const i=K.isIRange(e)?K.lift(e):K.fromPositions(e);this._isShowing=!0,this._showImpl(i,t),this._isShowing=!1,this._positionMarkerId.set([{range:i,options:In.EMPTY}])}hide(){var e;this._viewZone&&(this.editor.changeViewZones(t=>{this._viewZone&&t.removeZone(this._viewZone.id)}),this._viewZone=null),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),(e=this._arrow)===null||e===void 0||e.hide(),this._positionMarkerId.clear()}_decoratingElementsHeight(){const e=this.editor.getOption(67);let t=0;if(this.options.showArrow){const i=Math.round(e/3);t+=2*i}if(this.options.showFrame){const i=Math.round(e/9);t+=2*i}return t}_showImpl(e,t){const i=e.getStartPosition(),r=this.editor.getLayoutInfo(),o=this._getWidth(r);this.domNode.style.width=`${o}px`,this.domNode.style.left=this._getLeft(r)+"px";const s=document.createElement("div");s.style.overflow="hidden";const a=this.editor.getOption(67);if(!this.options.allowUnlimitedHeight){const h=Math.max(12,this.editor.getLayoutInfo().height/a*.8);t=Math.min(t,h)}let l=0,u=0;if(this._arrow&&this.options.showArrow&&(l=Math.round(a/3),this._arrow.height=l,this._arrow.show(i)),this.options.showFrame&&(u=Math.round(a/9)),this.editor.changeViewZones(h=>{this._viewZone&&h.removeZone(this._viewZone.id),this._overlayWidget&&(this.editor.removeOverlayWidget(this._overlayWidget),this._overlayWidget=null),this.domNode.style.top="-1000px",this._viewZone=new $Ft(s,i.lineNumber,i.column,t,g=>this._onViewZoneTop(g),g=>this._onViewZoneHeight(g),this.options.showInHiddenAreas,this.options.ordinal),this._viewZone.id=h.addZone(this._viewZone),this._overlayWidget=new qFt(QFt+this._viewZone.id,this.domNode),this.editor.addOverlayWidget(this._overlayWidget)}),this.container&&this.options.showFrame){const h=this.options.frameWidth?this.options.frameWidth:u;this.container.style.borderTopWidth=h+"px",this.container.style.borderBottomWidth=h+"px"}const c=t*a-this._decoratingElementsHeight();this.container&&(this.container.style.top=l+"px",this.container.style.height=c+"px",this.container.style.overflow="hidden"),this._doLayout(c,o),this.options.keepEditorSelection||this.editor.setSelection(e);const d=this.editor.getModel();if(d){const h=d.validateRange(new K(e.startLineNumber,1,e.endLineNumber+1,1));this.revealRange(h,h.startLineNumber===d.getLineCount())}}revealRange(e,t){t?this.editor.revealLineNearTop(e.endLineNumber,0):this.editor.revealRange(e,0)}setCssClass(e,t){this.container&&(t&&this.container.classList.remove(t),this.container.classList.add(e))}_onWidth(e){}_doLayout(e,t){}_relayout(e){this._viewZone&&this._viewZone.heightInLines!==e&&this.editor.changeViewZones(t=>{this._viewZone&&(this._viewZone.heightInLines=e,t.layoutZone(this._viewZone.id))})}_initSash(){if(this._resizeSash)return;this._resizeSash=this._disposables.add(new fa(this.domNode,this,{orientation:1})),this.options.isResizeable||(this._resizeSash.state=0);let e;this._disposables.add(this._resizeSash.onDidStart(t=>{this._viewZone&&(e={startY:t.startY,heightInLines:this._viewZone.heightInLines})})),this._disposables.add(this._resizeSash.onDidEnd(()=>{e=void 0})),this._disposables.add(this._resizeSash.onDidChange(t=>{if(e){const i=(t.currentY-e.startY)/this.editor.getOption(67),r=i<0?Math.ceil(i):Math.floor(i),o=e.heightInLines+r;o>5&&o<35&&this._relayout(o)}}))}getHorizontalSashLeft(){return 0}getHorizontalSashTop(){return(this.domNode.style.height===null?0:parseInt(this.domNode.style.height))-this._decoratingElementsHeight()/2}getHorizontalSashWidth(){const e=this.editor.getLayoutInfo();return e.width-e.minimap.minimapWidth}}class t_t extends AC{constructor(e,t){super(),this._onDidChangeVisibility=this._register(new be),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this._element=Je(e,vt(".monaco-dropdown")),this._label=Je(this._element,vt(".dropdown-label"));let i=t.labelRenderer;i||(i=o=>(o.textContent=t.label||"",null));for(const o of[at.CLICK,at.MOUSE_DOWN,qi.Tap])this._register(Ve(this.element,o,s=>En.stop(s,!0)));for(const o of[at.MOUSE_DOWN,qi.Tap])this._register(Ve(this._label,o,s=>{YY(s)&&(s.detail>1||s.button!==0)||(this.visible?this.hide():this.show())}));this._register(Ve(this._label,at.KEY_UP,o=>{const s=new nr(o);(s.equals(3)||s.equals(10))&&(En.stop(o,!0),this.visible?this.hide():this.show())}));const r=i(this._label);r&&this._register(r),this._register(er.addTarget(this._label))}get element(){return this._element}show(){this.visible||(this.visible=!0,this._onDidChangeVisibility.fire(!0))}hide(){this.visible&&(this.visible=!1,this._onDidChangeVisibility.fire(!1))}dispose(){super.dispose(),this.hide(),this.boxContainer&&(this.boxContainer.remove(),this.boxContainer=void 0),this.contents&&(this.contents.remove(),this.contents=void 0),this._label&&(this._label.remove(),this._label=void 0)}}class n_t extends t_t{constructor(e,t){super(e,t),this._options=t,this._actions=[],this.actions=t.actions||[]}set menuOptions(e){this._menuOptions=e}get menuOptions(){return this._menuOptions}get actions(){return this._options.actionProvider?this._options.actionProvider.getActions():this._actions}set actions(e){this._actions=e}show(){super.show(),this.element.classList.add("active"),this._options.contextMenuProvider.showContextMenu({getAnchor:()=>this.element,getActions:()=>this.actions,getActionsContext:()=>this.menuOptions?this.menuOptions.context:null,getActionViewItem:(e,t)=>this.menuOptions&&this.menuOptions.actionViewItemProvider?this.menuOptions.actionViewItemProvider(e,t):void 0,getKeyBinding:e=>this.menuOptions&&this.menuOptions.getKeyBinding?this.menuOptions.getKeyBinding(e):void 0,getMenuClassName:()=>this._options.menuClassName||"",onHide:()=>this.onHide(),actionRunner:this.menuOptions?this.menuOptions.actionRunner:void 0,anchorAlignment:this.menuOptions?this.menuOptions.anchorAlignment:0,domForShadowRoot:this._options.menuAsChild?this.element:void 0,skipTelemetry:this._options.skipTelemetry})}hide(){super.hide()}onHide(){this.hide(),this.element.classList.remove("active")}}class DW extends Th{constructor(e,t,i,r=Object.create(null)){super(null,e,r),this.actionItem=null,this._onDidChangeVisibility=this._register(new be),this.onDidChangeVisibility=this._onDidChangeVisibility.event,this.menuActionsOrProvider=t,this.contextMenuProvider=i,this.options=r,this.options.actionRunner&&(this.actionRunner=this.options.actionRunner)}render(e){this.actionItem=e;const t=o=>{this.element=Je(o,vt("a.action-label"));let s=[];return typeof this.options.classNames=="string"?s=this.options.classNames.split(/\s+/g).filter(a=>!!a):this.options.classNames&&(s=this.options.classNames),s.find(a=>a==="icon")||s.push("codicon"),this.element.classList.add(...s),this.element.setAttribute("role","button"),this.element.setAttribute("aria-haspopup","true"),this.element.setAttribute("aria-expanded","false"),this._action.label&&this._register(dv(Kf("mouse"),this.element,this._action.label)),this.element.ariaLabel=this._action.label||"",null},i=Array.isArray(this.menuActionsOrProvider),r={contextMenuProvider:this.contextMenuProvider,labelRenderer:t,menuAsChild:this.options.menuAsChild,actions:i?this.menuActionsOrProvider:void 0,actionProvider:i?void 0:this.menuActionsOrProvider,skipTelemetry:this.options.skipTelemetry};if(this.dropdownMenu=this._register(new n_t(e,r)),this._register(this.dropdownMenu.onDidChangeVisibility(o=>{var s;(s=this.element)===null||s===void 0||s.setAttribute("aria-expanded",`${o}`),this._onDidChangeVisibility.fire(o)})),this.dropdownMenu.menuOptions={actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,getKeyBinding:this.options.keybindingProvider,context:this._context},this.options.anchorAlignmentProvider){const o=this;this.dropdownMenu.menuOptions={...this.dropdownMenu.menuOptions,get anchorAlignment(){return o.options.anchorAlignmentProvider()}}}this.updateTooltip(),this.updateEnabled()}getTooltip(){let e=null;return this.action.tooltip?e=this.action.tooltip:this.action.label&&(e=this.action.label),e??void 0}setActionContext(e){super.setActionContext(e),this.dropdownMenu&&(this.dropdownMenu.menuOptions?this.dropdownMenu.menuOptions.context=e:this.dropdownMenu.menuOptions={context:e})}show(){var e;(e=this.dropdownMenu)===null||e===void 0||e.show()}updateEnabled(){var e,t;const i=!this.action.enabled;(e=this.actionItem)===null||e===void 0||e.classList.toggle("disabled",i),(t=this.element)===null||t===void 0||t.classList.toggle("disabled",i)}}function i_t(n){return n?n.condition!==void 0:!1}var AW=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Gl=function(n,e){return function(t,i){e(t,i,n)}};function r_t(n,e,t,i){const r=n.getActions(e),o=vf.getInstance(),s=o.keyStatus.altKey||(ya||Ha)&&o.keyStatus.shiftKey;j2e(r,t,s,i?a=>a===i:a=>a==="navigation")}function NW(n,e,t,i,r,o){const s=n.getActions(e);j2e(s,t,!1,typeof i=="string"?l=>l===i:i,r,o)}function j2e(n,e,t,i=s=>s==="navigation",r=()=>!1,o=!1){let s,a;Array.isArray(e)?(s=e,a=e):(s=e.primary,a=e.secondary);const l=new Set;for(const[u,c]of n){let d;i(u)?(d=s,d.length>0&&o&&d.push(new To)):(d=a,d.length>0&&d.push(new To));for(let h of c){t&&(h=h instanceof Wu&&h.alt?h.alt:h);const g=d.push(h);h instanceof qI&&l.add({group:u,action:h,index:g-1})}}for(const{group:u,action:c,index:d}of l){const h=i(u)?s:a,g=c.actions;r(c,u,h.length)&&h.splice(d,1,...g)}}let v0=class extends ow{constructor(e,t,i,r,o,s,a,l){super(void 0,e,{icon:!!(e.class||e.item.icon),label:!e.class&&!e.item.icon,draggable:t==null?void 0:t.draggable,keybinding:t==null?void 0:t.keybinding,hoverDelegate:t==null?void 0:t.hoverDelegate}),this._keybindingService=i,this._notificationService=r,this._contextKeyService=o,this._themeService=s,this._contextMenuService=a,this._accessibilityService=l,this._wantsAltCommand=!1,this._itemClassDispose=this._register(new zs),this._altKey=vf.getInstance()}get _menuItemAction(){return this._action}get _commandAction(){return this._wantsAltCommand&&this._menuItemAction.alt||this._menuItemAction}async onClick(e){e.preventDefault(),e.stopPropagation();try{await this.actionRunner.run(this._commandAction,this._context)}catch(t){this._notificationService.error(t)}}render(e){if(super.render(e),e.classList.add("menu-entry"),this.options.icon&&this._updateItemClass(this._menuItemAction.item),this._menuItemAction.alt){let t=!1;const i=()=>{var r;const o=!!(!((r=this._menuItemAction.alt)===null||r===void 0)&&r.enabled)&&(!this._accessibilityService.isMotionReduced()||t)&&(this._altKey.keyStatus.altKey||this._altKey.keyStatus.shiftKey&&t);o!==this._wantsAltCommand&&(this._wantsAltCommand=o,this.updateLabel(),this.updateTooltip(),this.updateClass())};this._register(this._altKey.event(i)),this._register(Ve(e,"mouseleave",r=>{t=!1,i()})),this._register(Ve(e,"mouseenter",r=>{t=!0,i()})),i()}}updateLabel(){this.options.label&&this.label&&(this.label.textContent=this._commandAction.label)}getTooltip(){var e;const t=this._keybindingService.lookupKeybinding(this._commandAction.id,this._contextKeyService),i=t&&t.getLabel(),r=this._commandAction.tooltip||this._commandAction.label;let o=i?x("titleAndKb","{0} ({1})",r,i):r;if(!this._wantsAltCommand&&(!((e=this._menuItemAction.alt)===null||e===void 0)&&e.enabled)){const s=this._menuItemAction.alt.tooltip||this._menuItemAction.alt.label,a=this._keybindingService.lookupKeybinding(this._menuItemAction.alt.id,this._contextKeyService),l=a&&a.getLabel(),u=l?x("titleAndKb","{0} ({1})",s,l):s;o=x("titleAndKbAndAlt",`{0} +[{1}] {2}`,o,LU.modifierLabels[eu].altKey,u)}return o}updateClass(){this.options.icon&&(this._commandAction!==this._menuItemAction?this._menuItemAction.alt&&this._updateItemClass(this._menuItemAction.alt.item):this._updateItemClass(this._menuItemAction.item))}_updateItemClass(e){this._itemClassDispose.value=void 0;const{element:t,label:i}=this;if(!t||!i)return;const r=this._commandAction.checked&&i_t(e.toggled)&&e.toggled.icon?e.toggled.icon:e.icon;if(r)if(on.isThemeIcon(r)){const o=on.asClassNameArray(r);i.classList.add(...o),this._itemClassDispose.value=en(()=>{i.classList.remove(...o)})}else i.style.backgroundImage=AT(this._themeService.getColorTheme().type)?Ab(r.dark):Ab(r.light),i.classList.add("icon"),this._itemClassDispose.value=hd(en(()=>{i.style.backgroundImage="",i.classList.remove("icon")}),this._themeService.onDidColorThemeChange(()=>{this.updateClass()}))}};v0=AW([Gl(2,Pi),Gl(3,Fo),Gl(4,ln),Gl(5,ts),Gl(6,hu),Gl(7,vd)],v0);let zJ=class extends DW{constructor(e,t,i,r,o){var s,a,l;const u={...t,menuAsChild:(s=t==null?void 0:t.menuAsChild)!==null&&s!==void 0?s:!1,classNames:(a=t==null?void 0:t.classNames)!==null&&a!==void 0?a:on.isThemeIcon(e.item.icon)?on.asClassName(e.item.icon):void 0,keybindingProvider:(l=t==null?void 0:t.keybindingProvider)!==null&&l!==void 0?l:c=>i.lookupKeybinding(c.id)};super(e,{getActions:()=>e.actions},r,u),this._keybindingService=i,this._contextMenuService=r,this._themeService=o}render(e){super.render(e),Ci(this.element),e.classList.add("menu-entry");const t=this._action,{icon:i}=t.item;if(i&&!on.isThemeIcon(i)){this.element.classList.add("icon");const r=()=>{this.element&&(this.element.style.backgroundImage=AT(this._themeService.getColorTheme().type)?Ab(i.dark):Ab(i.light))};r(),this._register(this._themeService.onDidColorThemeChange(()=>{r()}))}}};zJ=AW([Gl(2,Pi),Gl(3,hu),Gl(4,ts)],zJ);let YJ=class extends Th{constructor(e,t,i,r,o,s,a,l){var u,c,d;super(null,e),this._keybindingService=i,this._notificationService=r,this._contextMenuService=o,this._menuService=s,this._instaService=a,this._storageService=l,this._container=null,this._options=t,this._storageKey=`${e.item.submenu.id}_lastActionId`;let h;const g=t!=null&&t.persistLastActionId?l.get(this._storageKey,1):void 0;g&&(h=e.actions.find(f=>g===f.id)),h||(h=e.actions[0]),this._defaultAction=this._instaService.createInstance(v0,h,{keybinding:this._getDefaultActionKeybindingLabel(h)});const m={keybindingProvider:f=>this._keybindingService.lookupKeybinding(f.id),...t,menuAsChild:(u=t==null?void 0:t.menuAsChild)!==null&&u!==void 0?u:!0,classNames:(c=t==null?void 0:t.classNames)!==null&&c!==void 0?c:["codicon","codicon-chevron-down"],actionRunner:(d=t==null?void 0:t.actionRunner)!==null&&d!==void 0?d:new AC};this._dropdown=new DW(e,e.actions,this._contextMenuService,m),this._register(this._dropdown.actionRunner.onDidRun(f=>{f.action instanceof Wu&&this.update(f.action)}))}update(e){var t;!((t=this._options)===null||t===void 0)&&t.persistLastActionId&&this._storageService.store(this._storageKey,e.id,1,1),this._defaultAction.dispose(),this._defaultAction=this._instaService.createInstance(v0,e,{keybinding:this._getDefaultActionKeybindingLabel(e)}),this._defaultAction.actionRunner=new class extends AC{async runAction(i,r){await i.run(void 0)}},this._container&&this._defaultAction.render(UY(this._container,vt(".action-container")))}_getDefaultActionKeybindingLabel(e){var t;let i;if(!((t=this._options)===null||t===void 0)&&t.renderKeybindingWithDefaultActionLabel){const r=this._keybindingService.lookupKeybinding(e.id);r&&(i=`(${r.getLabel()})`)}return i}setActionContext(e){super.setActionContext(e),this._defaultAction.setActionContext(e),this._dropdown.setActionContext(e)}render(e){this._container=e,super.render(this._container),this._container.classList.add("monaco-dropdown-with-default");const t=vt(".action-container");this._defaultAction.render(Je(this._container,t)),this._register(Ve(t,at.KEY_DOWN,r=>{const o=new nr(r);o.equals(17)&&(this._defaultAction.element.tabIndex=-1,this._dropdown.focus(),o.stopPropagation())}));const i=vt(".dropdown-action-container");this._dropdown.render(Je(this._container,i)),this._register(Ve(i,at.KEY_DOWN,r=>{var o;const s=new nr(r);s.equals(15)&&(this._defaultAction.element.tabIndex=0,this._dropdown.setFocusable(!1),(o=this._defaultAction.element)===null||o===void 0||o.focus(),s.stopPropagation())}))}focus(e){e?this._dropdown.focus():(this._defaultAction.element.tabIndex=0,this._defaultAction.element.focus())}blur(){this._defaultAction.element.tabIndex=-1,this._dropdown.blur(),this._container.blur()}setFocusable(e){e?this._defaultAction.element.tabIndex=0:(this._defaultAction.element.tabIndex=-1,this._dropdown.setFocusable(!1))}dispose(){this._defaultAction.dispose(),this._dropdown.dispose(),super.dispose()}};YJ=AW([Gl(2,Pi),Gl(3,Fo),Gl(4,hu),Gl(5,wc),Gl(6,tn),Gl(7,bm)],YJ);let HJ=class extends $wt{constructor(e,t){super(null,e,e.actions.map(i=>({text:i.id===To.ID?"─────────":i.label,isDisabled:!i.enabled})),0,t,_Lt,{ariaLabel:e.tooltip,optionsAsChildren:!0}),this.select(Math.max(0,e.actions.findIndex(i=>i.checked)))}render(e){super.render(e),e.style.borderColor=Lt(L2)}runAction(e,t){const i=this.action.actions[t];i&&this.actionRunner.run(i)}};HJ=AW([Gl(1,hm)],HJ);function Q2e(n,e,t){return e instanceof Wu?n.createInstance(v0,e,t):e instanceof VF?e.item.isSelection?n.createInstance(HJ,e):e.item.rememberDefaultAction?n.createInstance(YJ,e,{...t,persistLastActionId:!0}):n.createInstance(zJ,e,t):void 0}var $2e=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},q2e=function(n,e){return function(t,i){e(t,i,n)}};const ewe=Un("IPeekViewService");ti(ewe,class{constructor(){this._widgets=new Map}addExclusiveWidget(n,e){const t=this._widgets.get(n);t&&(t.listener.dispose(),t.widget.dispose());const i=()=>{const r=this._widgets.get(n);r&&r.widget===e&&(r.listener.dispose(),this._widgets.delete(n))};this._widgets.set(n,{widget:e,listener:e.onDidClose(i)})}},1);var Vl;(function(n){n.inPeekEditor=new It("inReferenceSearchEditor",!0,x("inReferenceSearchEditor","Whether the current code editor is embedded inside peek")),n.notInPeekEditor=n.inPeekEditor.toNegated()})(Vl||(Vl={}));let UD=class{constructor(e,t){e instanceof C0&&Vl.inPeekEditor.bindTo(t)}dispose(){}};UD.ID="editor.contrib.referenceController",UD=$2e([q2e(1,ln)],UD),Ii(UD.ID,UD,0);function o_t(n){const e=n.get(yi).getFocusedCodeEditor();return e instanceof C0?e.getParentEditor():e}const s_t={headerBackgroundColor:Ee.white,primaryHeadingColor:Ee.fromHex("#333333"),secondaryHeadingColor:Ee.fromHex("#6c6c6cb3")};let kW=class extends e_t{constructor(e,t,i){super(e,t),this.instantiationService=i,this._onDidClose=new be,this.onDidClose=this._onDidClose.event,gT(this.options,s_t,!1)}dispose(){this.disposed||(this.disposed=!0,super.dispose(),this._onDidClose.fire(this))}style(e){const t=this.options;e.headerBackgroundColor&&(t.headerBackgroundColor=e.headerBackgroundColor),e.primaryHeadingColor&&(t.primaryHeadingColor=e.primaryHeadingColor),e.secondaryHeadingColor&&(t.secondaryHeadingColor=e.secondaryHeadingColor),super.style(e)}_applyStyles(){super._applyStyles();const e=this.options;this._headElement&&e.headerBackgroundColor&&(this._headElement.style.backgroundColor=e.headerBackgroundColor.toString()),this._primaryHeading&&e.primaryHeadingColor&&(this._primaryHeading.style.color=e.primaryHeadingColor.toString()),this._secondaryHeading&&e.secondaryHeadingColor&&(this._secondaryHeading.style.color=e.secondaryHeadingColor.toString()),this._bodyElement&&e.frameColor&&(this._bodyElement.style.borderColor=e.frameColor.toString())}_fillContainer(e){this.setCssClass("peekview-widget"),this._headElement=vt(".head"),this._bodyElement=vt(".body"),this._fillHead(this._headElement),this._fillBody(this._bodyElement),e.appendChild(this._headElement),e.appendChild(this._bodyElement)}_fillHead(e,t){this._titleElement=vt(".peekview-title"),this.options.supportOnTitleClick&&(this._titleElement.classList.add("clickable"),Gr(this._titleElement,"click",o=>this._onTitleClick(o))),Je(this._headElement,this._titleElement),this._fillTitleIcon(this._titleElement),this._primaryHeading=vt("span.filename"),this._secondaryHeading=vt("span.dirname"),this._metaHeading=vt("span.meta"),Je(this._titleElement,this._primaryHeading,this._secondaryHeading,this._metaHeading);const i=vt(".peekview-actions");Je(this._headElement,i);const r=this._getActionBarOptions();this._actionbarWidget=new Rc(i,r),this._disposables.add(this._actionbarWidget),t||this._actionbarWidget.push(new su("peekview.close",x("label.close","Close"),on.asClassName(ct.close),!0,()=>(this.dispose(),Promise.resolve())),{label:!1,icon:!0})}_fillTitleIcon(e){}_getActionBarOptions(){return{actionViewItemProvider:Q2e.bind(void 0,this.instantiationService),orientation:0}}_onTitleClick(e){}setTitle(e,t){this._primaryHeading&&this._secondaryHeading&&(this._primaryHeading.innerText=e,this._primaryHeading.setAttribute("title",e),t?this._secondaryHeading.innerText=t:la(this._secondaryHeading))}setMetaTitle(e){this._metaHeading&&(e?(this._metaHeading.innerText=e,ru(this._metaHeading)):Ka(this._metaHeading))}_doLayout(e,t){if(!this._isShowing&&e<0){this.dispose();return}const i=Math.ceil(this.editor.getOption(67)*1.2),r=Math.round(e-(i+2));this._doLayoutHead(i,t),this._doLayoutBody(r,t)}_doLayoutHead(e,t){this._headElement&&(this._headElement.style.height=`${e}px`,this._headElement.style.lineHeight=this._headElement.style.height)}_doLayoutBody(e,t){this._bodyElement&&(this._bodyElement.style.height=`${e}px`)}};kW=$2e([q2e(2,tn)],kW);const a_t=re("peekViewTitle.background",{dark:"#252526",light:"#F3F3F3",hcDark:Ee.black,hcLight:Ee.white},x("peekViewTitleBackground","Background color of the peek view title area.")),twe=re("peekViewTitleLabel.foreground",{dark:Ee.white,light:Ee.black,hcDark:Ee.white,hcLight:Id},x("peekViewTitleForeground","Color of the peek view title.")),nwe=re("peekViewTitleDescription.foreground",{dark:"#ccccccb3",light:"#616161",hcDark:"#FFFFFF99",hcLight:"#292929"},x("peekViewTitleInfoForeground","Color of the peek view title info.")),l_t=re("peekView.border",{dark:Tl,light:Tl,hcDark:jn,hcLight:jn},x("peekViewBorder","Color of the peek view borders and arrow.")),u_t=re("peekViewResult.background",{dark:"#252526",light:"#F3F3F3",hcDark:Ee.black,hcLight:Ee.white},x("peekViewResultsBackground","Background color of the peek view result list."));re("peekViewResult.lineForeground",{dark:"#bbbbbb",light:"#646465",hcDark:Ee.white,hcLight:Id},x("peekViewResultsMatchForeground","Foreground color for line nodes in the peek view result list.")),re("peekViewResult.fileForeground",{dark:Ee.white,light:"#1E1E1E",hcDark:Ee.white,hcLight:Id},x("peekViewResultsFileForeground","Foreground color for file nodes in the peek view result list.")),re("peekViewResult.selectionBackground",{dark:"#3399ff33",light:"#3399ff33",hcDark:null,hcLight:null},x("peekViewResultsSelectionBackground","Background color of the selected entry in the peek view result list.")),re("peekViewResult.selectionForeground",{dark:Ee.white,light:"#6C6C6C",hcDark:Ee.white,hcLight:Id},x("peekViewResultsSelectionForeground","Foreground color of the selected entry in the peek view result list."));const y0=re("peekViewEditor.background",{dark:"#001F33",light:"#F2F8FC",hcDark:Ee.black,hcLight:Ee.white},x("peekViewEditorBackground","Background color of the peek view editor."));re("peekViewEditorGutter.background",{dark:y0,light:y0,hcDark:y0,hcLight:y0},x("peekViewEditorGutterBackground","Background color of the gutter in the peek view editor.")),re("peekViewEditorStickyScroll.background",{dark:y0,light:y0,hcDark:y0,hcLight:y0},x("peekViewEditorStickScrollBackground","Background color of sticky scroll in the peek view editor.")),re("peekViewResult.matchHighlightBackground",{dark:"#ea5c004d",light:"#ea5c004d",hcDark:null,hcLight:null},x("peekViewResultsMatchHighlight","Match highlight color in the peek view result list.")),re("peekViewEditor.matchHighlightBackground",{dark:"#ff8f0099",light:"#f5d802de",hcDark:null,hcLight:null},x("peekViewEditorMatchHighlight","Match highlight color in the peek view editor.")),re("peekViewEditor.matchHighlightBorder",{dark:null,light:null,hcDark:dr,hcLight:dr},x("peekViewEditorMatchHighlightBorder","Match highlight border in the peek view editor."));function I0(n){return n&&typeof n.getEditorType=="function"?n.getEditorType()===P_.ICodeEditor:!1}function c_t(n){return n&&typeof n.getEditorType=="function"?n.getEditorType()===P_.IDiffEditor:!1}class d_t{get templateId(){return this.renderer.templateId}constructor(e,t){this.renderer=e,this.modelProvider=t}renderTemplate(e){return{data:this.renderer.renderTemplate(e),disposable:De.None}}renderElement(e,t,i,r){var o;if((o=i.disposable)===null||o===void 0||o.dispose(),!i.data)return;const s=this.modelProvider();if(s.isResolved(e))return this.renderer.renderElement(s.get(e),e,i.data,r);const a=new co,l=s.resolve(e,a.token);i.disposable={dispose:()=>a.cancel()},this.renderer.renderPlaceholder(e,i.data),l.then(u=>this.renderer.renderElement(u,e,i.data,r))}disposeTemplate(e){e.disposable&&(e.disposable.dispose(),e.disposable=void 0),e.data&&(this.renderer.disposeTemplate(e.data),e.data=void 0)}}class h_t{constructor(e,t){this.modelProvider=e,this.accessibilityProvider=t}getWidgetAriaLabel(){return this.accessibilityProvider.getWidgetAriaLabel()}getAriaLabel(e){const t=this.modelProvider();return t.isResolved(e)?this.accessibilityProvider.getAriaLabel(t.get(e)):null}}function g_t(n,e){return{...e,accessibilityProvider:e.accessibilityProvider&&new h_t(n,e.accessibilityProvider)}}class m_t{constructor(e,t,i,r,o={}){const s=()=>this.model,a=r.map(l=>new d_t(l,s));this.list=new zu(e,t,i,a,g_t(s,o))}updateOptions(e){this.list.updateOptions(e)}getHTMLElement(){return this.list.getHTMLElement()}get onDidFocus(){return this.list.onDidFocus}get widget(){return this.list}get onDidDispose(){return this.list.onDidDispose}get onMouseDblClick(){return ft.map(this.list.onMouseDblClick,({element:e,index:t,browserEvent:i})=>({element:e===void 0?void 0:this._model.get(e),index:t,browserEvent:i}))}get onPointer(){return ft.map(this.list.onPointer,({element:e,index:t,browserEvent:i})=>({element:e===void 0?void 0:this._model.get(e),index:t,browserEvent:i}))}get onDidChangeSelection(){return ft.map(this.list.onDidChangeSelection,({elements:e,indexes:t,browserEvent:i})=>({elements:e.map(r=>this._model.get(r)),indexes:t,browserEvent:i}))}get model(){return this._model}set model(e){this._model=e,this.list.splice(0,this.list.length,$a(e.length))}getFocus(){return this.list.getFocus()}getSelection(){return this.list.getSelection()}getSelectedElements(){return this.getSelection().map(e=>this.model.get(e))}style(e){this.list.style(e)}dispose(){this.list.dispose()}}const f_t={separatorBorder:Ee.transparent};class iwe{set size(e){this._size=e}get size(){return this._size}get visible(){return typeof this._cachedVisibleSize>"u"}setVisible(e,t){var i,r;if(e!==this.visible){e?(this.size=ol(this._cachedVisibleSize,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize=typeof t=="number"?t:this.size,this.size=0),this.container.classList.toggle("visible",e);try{(r=(i=this.view).setVisible)===null||r===void 0||r.call(i,e)}catch{}}}get minimumSize(){return this.visible?this.view.minimumSize:0}get viewMinimumSize(){return this.view.minimumSize}get maximumSize(){return this.visible?this.view.maximumSize:0}get viewMaximumSize(){return this.view.maximumSize}get priority(){return this.view.priority}get proportionalLayout(){var e;return(e=this.view.proportionalLayout)!==null&&e!==void 0?e:!0}get snap(){return!!this.view.snap}set enabled(e){this.container.style.pointerEvents=e?"":"none"}constructor(e,t,i,r){this.container=e,this.view=t,this.disposable=r,this._cachedVisibleSize=void 0,typeof i=="number"?(this._size=i,this._cachedVisibleSize=void 0,e.classList.add("visible")):(this._size=0,this._cachedVisibleSize=i.cachedVisibleSize)}layout(e,t){this.layoutContainer(e);try{this.view.layout(this.size,e,t)}catch{}}dispose(){this.disposable.dispose()}}class p_t extends iwe{layoutContainer(e){this.container.style.top=`${e}px`,this.container.style.height=`${this.size}px`}}class b_t extends iwe{layoutContainer(e){this.container.style.left=`${e}px`,this.container.style.width=`${this.size}px`}}var op;(function(n){n[n.Idle=0]="Idle",n[n.Busy=1]="Busy"})(op||(op={}));var MW;(function(n){n.Distribute={type:"distribute"};function e(r){return{type:"split",index:r}}n.Split=e;function t(r){return{type:"auto",index:r}}n.Auto=t;function i(r){return{type:"invisible",cachedVisibleSize:r}}n.Invisible=i})(MW||(MW={}));class rwe extends De{get orthogonalStartSash(){return this._orthogonalStartSash}get orthogonalEndSash(){return this._orthogonalEndSash}get startSnappingEnabled(){return this._startSnappingEnabled}get endSnappingEnabled(){return this._endSnappingEnabled}set orthogonalStartSash(e){for(const t of this.sashItems)t.sash.orthogonalStartSash=e;this._orthogonalStartSash=e}set orthogonalEndSash(e){for(const t of this.sashItems)t.sash.orthogonalEndSash=e;this._orthogonalEndSash=e}set startSnappingEnabled(e){this._startSnappingEnabled!==e&&(this._startSnappingEnabled=e,this.updateSashEnablement())}set endSnappingEnabled(e){this._endSnappingEnabled!==e&&(this._endSnappingEnabled=e,this.updateSashEnablement())}constructor(e,t={}){var i,r,o,s,a;super(),this.size=0,this._contentSize=0,this.proportions=void 0,this.viewItems=[],this.sashItems=[],this.state=op.Idle,this._onDidSashChange=this._register(new be),this._onDidSashReset=this._register(new be),this._startSnappingEnabled=!0,this._endSnappingEnabled=!0,this.onDidSashChange=this._onDidSashChange.event,this.onDidSashReset=this._onDidSashReset.event,this.orientation=(i=t.orientation)!==null&&i!==void 0?i:0,this.inverseAltBehavior=(r=t.inverseAltBehavior)!==null&&r!==void 0?r:!1,this.proportionalLayout=(o=t.proportionalLayout)!==null&&o!==void 0?o:!0,this.getSashOrthogonalSize=t.getSashOrthogonalSize,this.el=document.createElement("div"),this.el.classList.add("monaco-split-view2"),this.el.classList.add(this.orientation===0?"vertical":"horizontal"),e.appendChild(this.el),this.sashContainer=Je(this.el,vt(".sash-container")),this.viewContainer=vt(".split-view-container"),this.scrollable=this._register(new R2({forceIntegerValues:!0,smoothScrollDuration:125,scheduleAtNextAnimationFrame:u=>iu(qt(this.el),u)})),this.scrollableElement=this._register(new ZT(this.viewContainer,{vertical:this.orientation===0?(s=t.scrollbarVisibility)!==null&&s!==void 0?s:1:2,horizontal:this.orientation===1?(a=t.scrollbarVisibility)!==null&&a!==void 0?a:1:2},this.scrollable));const l=this._register(new Qn(this.viewContainer,"scroll")).event;this._register(l(u=>{const c=this.scrollableElement.getScrollPosition(),d=Math.abs(this.viewContainer.scrollLeft-c.scrollLeft)<=1?void 0:this.viewContainer.scrollLeft,h=Math.abs(this.viewContainer.scrollTop-c.scrollTop)<=1?void 0:this.viewContainer.scrollTop;(d!==void 0||h!==void 0)&&this.scrollableElement.setScrollPosition({scrollLeft:d,scrollTop:h})})),this.onDidScroll=this.scrollableElement.onScroll,this._register(this.onDidScroll(u=>{u.scrollTopChanged&&(this.viewContainer.scrollTop=u.scrollTop),u.scrollLeftChanged&&(this.viewContainer.scrollLeft=u.scrollLeft)})),Je(this.el,this.scrollableElement.getDomNode()),this.style(t.styles||f_t),t.descriptor&&(this.size=t.descriptor.size,t.descriptor.views.forEach((u,c)=>{const d=ql(u.visible)||u.visible?u.size:{type:"invisible",cachedVisibleSize:u.size},h=u.view;this.doAddView(h,d,c,!0)}),this._contentSize=this.viewItems.reduce((u,c)=>u+c.size,0),this.saveProportions())}style(e){e.separatorBorder.isTransparent()?(this.el.classList.remove("separator-border"),this.el.style.removeProperty("--separator-border")):(this.el.classList.add("separator-border"),this.el.style.setProperty("--separator-border",e.separatorBorder.toString()))}addView(e,t,i=this.viewItems.length,r){this.doAddView(e,t,i,r)}layout(e,t){const i=Math.max(this.size,this._contentSize);if(this.size=e,this.layoutContext=t,this.proportions){let r=0;for(let o=0;o0&&(s.size=ol(Math.round(a*e/r),s.minimumSize,s.maximumSize))}}else{const r=$a(this.viewItems.length),o=r.filter(a=>this.viewItems[a].priority===1),s=r.filter(a=>this.viewItems[a].priority===2);this.resize(this.viewItems.length-1,e-i,void 0,o,s)}this.distributeEmptySpace(),this.layoutViews()}saveProportions(){this.proportionalLayout&&this._contentSize>0&&(this.proportions=this.viewItems.map(e=>e.proportionalLayout&&e.visible?e.size/this._contentSize:void 0))}onSashStart({sash:e,start:t,alt:i}){for(const a of this.viewItems)a.enabled=!1;const r=this.sashItems.findIndex(a=>a.sash===e),o=hd(Ve(this.el.ownerDocument.body,"keydown",a=>s(this.sashDragState.current,a.altKey)),Ve(this.el.ownerDocument.body,"keyup",()=>s(this.sashDragState.current,!1))),s=(a,l)=>{const u=this.viewItems.map(m=>m.size);let c=Number.NEGATIVE_INFINITY,d=Number.POSITIVE_INFINITY;if(this.inverseAltBehavior&&(l=!l),l)if(r===this.sashItems.length-1){const f=this.viewItems[r];c=(f.minimumSize-f.size)/2,d=(f.maximumSize-f.size)/2}else{const f=this.viewItems[r+1];c=(f.size-f.maximumSize)/2,d=(f.size-f.minimumSize)/2}let h,g;if(!l){const m=$a(r,-1),f=$a(r+1,this.viewItems.length),b=m.reduce((A,M)=>A+(this.viewItems[M].minimumSize-u[M]),0),C=m.reduce((A,M)=>A+(this.viewItems[M].viewMaximumSize-u[M]),0),v=f.length===0?Number.POSITIVE_INFINITY:f.reduce((A,M)=>A+(u[M]-this.viewItems[M].minimumSize),0),w=f.length===0?Number.NEGATIVE_INFINITY:f.reduce((A,M)=>A+(u[M]-this.viewItems[M].viewMaximumSize),0),S=Math.max(b,w),F=Math.min(v,C),L=this.findFirstSnapIndex(m),D=this.findFirstSnapIndex(f);if(typeof L=="number"){const A=this.viewItems[L],M=Math.floor(A.viewMinimumSize/2);h={index:L,limitDelta:A.visible?S-M:S+M,size:A.size}}if(typeof D=="number"){const A=this.viewItems[D],M=Math.floor(A.viewMinimumSize/2);g={index:D,limitDelta:A.visible?F+M:F-M,size:A.size}}}this.sashDragState={start:a,current:a,index:r,sizes:u,minDelta:c,maxDelta:d,alt:l,snapBefore:h,snapAfter:g,disposable:o}};s(t,i)}onSashChange({current:e}){const{index:t,start:i,sizes:r,alt:o,minDelta:s,maxDelta:a,snapBefore:l,snapAfter:u}=this.sashDragState;this.sashDragState.current=e;const c=e-i,d=this.resize(t,c,r,void 0,void 0,s,a,l,u);if(o){const h=t===this.sashItems.length-1,g=this.viewItems.map(w=>w.size),m=h?t:t+1,f=this.viewItems[m],b=f.size-f.maximumSize,C=f.size-f.minimumSize,v=h?t-1:t+1;this.resize(v,-d,g,void 0,void 0,b,C)}this.distributeEmptySpace(),this.layoutViews()}onSashEnd(e){this._onDidSashChange.fire(e),this.sashDragState.disposable.dispose(),this.saveProportions();for(const t of this.viewItems)t.enabled=!0}onViewChange(e,t){const i=this.viewItems.indexOf(e);i<0||i>=this.viewItems.length||(t=typeof t=="number"?t:e.size,t=ol(t,e.minimumSize,e.maximumSize),this.inverseAltBehavior&&i>0?(this.resize(i-1,Math.floor((e.size-t)/2)),this.distributeEmptySpace(),this.layoutViews()):(e.size=t,this.relayout([i],void 0)))}resizeView(e,t){if(!(e<0||e>=this.viewItems.length)){if(this.state!==op.Idle)throw new Error("Cant modify splitview");this.state=op.Busy;try{const i=$a(this.viewItems.length).filter(a=>a!==e),r=[...i.filter(a=>this.viewItems[a].priority===1),e],o=i.filter(a=>this.viewItems[a].priority===2),s=this.viewItems[e];t=Math.round(t),t=ol(t,s.minimumSize,Math.min(s.maximumSize,this.size)),s.size=t,this.relayout(r,o)}finally{this.state=op.Idle}}}distributeViewSizes(){const e=[];let t=0;for(const a of this.viewItems)a.maximumSize-a.minimumSize>0&&(e.push(a),t+=a.size);const i=Math.floor(t/e.length);for(const a of e)a.size=ol(i,a.minimumSize,a.maximumSize);const r=$a(this.viewItems.length),o=r.filter(a=>this.viewItems[a].priority===1),s=r.filter(a=>this.viewItems[a].priority===2);this.relayout(o,s)}getViewSize(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size}doAddView(e,t,i=this.viewItems.length,r){if(this.state!==op.Idle)throw new Error("Cant modify splitview");this.state=op.Busy;try{const o=vt(".split-view-view");i===this.viewItems.length?this.viewContainer.appendChild(o):this.viewContainer.insertBefore(o,this.viewContainer.children.item(i));const s=e.onDidChange(h=>this.onViewChange(c,h)),a=en(()=>this.viewContainer.removeChild(o)),l=hd(s,a);let u;typeof t=="number"?u=t:(t.type==="auto"&&(this.areViewsDistributed()?t={type:"distribute"}:t={type:"split",index:t.index}),t.type==="split"?u=this.getViewSize(t.index)/2:t.type==="invisible"?u={cachedVisibleSize:t.cachedVisibleSize}:u=e.minimumSize);const c=this.orientation===0?new p_t(o,e,u,l):new b_t(o,e,u,l);if(this.viewItems.splice(i,0,c),this.viewItems.length>1){const h={orthogonalStartSash:this.orthogonalStartSash,orthogonalEndSash:this.orthogonalEndSash},g=this.orientation===0?new fa(this.sashContainer,{getHorizontalSashTop:A=>this.getSashPosition(A),getHorizontalSashWidth:this.getSashOrthogonalSize},{...h,orientation:1}):new fa(this.sashContainer,{getVerticalSashLeft:A=>this.getSashPosition(A),getVerticalSashHeight:this.getSashOrthogonalSize},{...h,orientation:0}),m=this.orientation===0?A=>({sash:g,start:A.startY,current:A.currentY,alt:A.altKey}):A=>({sash:g,start:A.startX,current:A.currentX,alt:A.altKey}),b=ft.map(g.onDidStart,m)(this.onSashStart,this),v=ft.map(g.onDidChange,m)(this.onSashChange,this),S=ft.map(g.onDidEnd,()=>this.sashItems.findIndex(A=>A.sash===g))(this.onSashEnd,this),F=g.onDidReset(()=>{const A=this.sashItems.findIndex(E=>E.sash===g),M=$a(A,-1),W=$a(A+1,this.viewItems.length),Z=this.findFirstSnapIndex(M),T=this.findFirstSnapIndex(W);typeof Z=="number"&&!this.viewItems[Z].visible||typeof T=="number"&&!this.viewItems[T].visible||this._onDidSashReset.fire(A)}),L=hd(b,v,S,F,g),D={sash:g,disposable:L};this.sashItems.splice(i-1,0,D)}o.appendChild(e.element);let d;typeof t!="number"&&t.type==="split"&&(d=[t.index]),r||this.relayout([i],d),!r&&typeof t!="number"&&t.type==="distribute"&&this.distributeViewSizes()}finally{this.state=op.Idle}}relayout(e,t){const i=this.viewItems.reduce((r,o)=>r+o.size,0);this.resize(this.viewItems.length-1,this.size-i,void 0,e,t),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}resize(e,t,i=this.viewItems.map(c=>c.size),r,o,s=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY,l,u){if(e<0||e>=this.viewItems.length)return 0;const c=$a(e,-1),d=$a(e+1,this.viewItems.length);if(o)for(const D of o)dH(c,D),dH(d,D);if(r)for(const D of r)tT(c,D),tT(d,D);const h=c.map(D=>this.viewItems[D]),g=c.map(D=>i[D]),m=d.map(D=>this.viewItems[D]),f=d.map(D=>i[D]),b=c.reduce((D,A)=>D+(this.viewItems[A].minimumSize-i[A]),0),C=c.reduce((D,A)=>D+(this.viewItems[A].maximumSize-i[A]),0),v=d.length===0?Number.POSITIVE_INFINITY:d.reduce((D,A)=>D+(i[A]-this.viewItems[A].minimumSize),0),w=d.length===0?Number.NEGATIVE_INFINITY:d.reduce((D,A)=>D+(i[A]-this.viewItems[A].maximumSize),0),S=Math.max(b,w,s),F=Math.min(v,C,a);let L=!1;if(l){const D=this.viewItems[l.index],A=t>=l.limitDelta;L=A!==D.visible,D.setVisible(A,l.size)}if(!L&&u){const D=this.viewItems[u.index],A=ta+l.size,0);let i=this.size-t;const r=$a(this.viewItems.length-1,-1),o=r.filter(a=>this.viewItems[a].priority===1),s=r.filter(a=>this.viewItems[a].priority===2);for(const a of s)dH(r,a);for(const a of o)tT(r,a);typeof e=="number"&&tT(r,e);for(let a=0;i!==0&&at+i.size,0);let e=0;for(const t of this.viewItems)t.layout(e,this.layoutContext),e+=t.size;this.sashItems.forEach(t=>t.sash.layout()),this.updateSashEnablement(),this.updateScrollableElement()}updateScrollableElement(){this.orientation===0?this.scrollableElement.setScrollDimensions({height:this.size,scrollHeight:this._contentSize}):this.scrollableElement.setScrollDimensions({width:this.size,scrollWidth:this._contentSize})}updateSashEnablement(){let e=!1;const t=this.viewItems.map(l=>e=l.size-l.minimumSize>0||e);e=!1;const i=this.viewItems.map(l=>e=l.maximumSize-l.size>0||e),r=[...this.viewItems].reverse();e=!1;const o=r.map(l=>e=l.size-l.minimumSize>0||e).reverse();e=!1;const s=r.map(l=>e=l.maximumSize-l.size>0||e).reverse();let a=0;for(let l=0;l0||this.startSnappingEnabled)?u.state=1:v&&t[l]&&(a0)return;if(!i.visible&&i.snap)return t}}areViewsDistributed(){let e,t;for(const i of this.viewItems)if(e=e===void 0?i.size:Math.min(e,i.size),t=t===void 0?i.size:Math.max(t,i.size),t-e>2)return!1;return!0}dispose(){var e;(e=this.sashDragState)===null||e===void 0||e.disposable.dispose(),Mi(this.viewItems),this.viewItems=[],this.sashItems.forEach(t=>t.disposable.dispose()),this.sashItems=[],super.dispose()}}class JD{constructor(e,t,i){this.columns=e,this.getColumnSize=i,this.templateId=JD.TemplateId,this.renderedTemplates=new Set;const r=new Map(t.map(o=>[o.templateId,o]));this.renderers=[];for(const o of e){const s=r.get(o.templateId);if(!s)throw new Error(`Table cell renderer for template id ${o.templateId} not found.`);this.renderers.push(s)}}renderTemplate(e){const t=Je(e,vt(".monaco-table-tr")),i=[],r=[];for(let s=0;sthis.disposables.add(new v_t(c,d))),l={size:a.reduce((c,d)=>c+d.column.weight,0),views:a.map(c=>({size:c.column.weight,view:c}))};this.splitview=this.disposables.add(new rwe(this.domNode,{orientation:1,scrollbarVisibility:2,getSashOrthogonalSize:()=>this.cachedHeight,descriptor:l})),this.splitview.el.style.height=`${i.headerRowHeight}px`,this.splitview.el.style.lineHeight=`${i.headerRowHeight}px`;const u=new JD(r,o,c=>this.splitview.getViewSize(c));this.list=this.disposables.add(new zu(e,this.domNode,C_t(i),[u],s)),ft.any(...a.map(c=>c.onDidLayout))(([c,d])=>u.layoutColumn(c,d),null,this.disposables),this.splitview.onDidSashReset(c=>{const d=r.reduce((g,m)=>g+m.weight,0),h=r[c].weight/d*this.cachedWidth;this.splitview.resizeView(c,h)},null,this.disposables),this.styleElement=Eu(this.domNode),this.style(Owt)}updateOptions(e){this.list.updateOptions(e)}splice(e,t,i=[]){this.list.splice(e,t,i)}getHTMLElement(){return this.domNode}style(e){const t=[];t.push(`.monaco-table.${this.domId} > .monaco-split-view2 .monaco-sash.vertical::before { + top: ${this.virtualDelegate.headerRowHeight+1}px; + height: calc(100% - ${this.virtualDelegate.headerRowHeight}px); + }`),this.styleElement.textContent=t.join(` +`),this.list.style(e)}getSelectedElements(){return this.list.getSelectedElements()}getSelection(){return this.list.getSelection()}getFocus(){return this.list.getFocus()}dispose(){this.disposables.dispose()}}ZW.InstanceCount=0;class Fw extends Pu{constructor(e){super(),this._onChange=this._register(new be),this.onChange=this._onChange.event,this._onKeyDown=this._register(new be),this.onKeyDown=this._onKeyDown.event,this._opts=e,this._checked=this._opts.isChecked;const t=["monaco-custom-toggle"];this._opts.icon&&(this._icon=this._opts.icon,t.push(...on.asClassNameArray(this._icon))),this._opts.actionClassName&&t.push(...this._opts.actionClassName.split(" ")),this._checked&&t.push("checked"),this.domNode=document.createElement("div"),this._hover=this._register(dv(Kf("mouse"),this.domNode,this._opts.title)),this.domNode.classList.add(...t),this._opts.notFocusable||(this.domNode.tabIndex=0),this.domNode.setAttribute("role","checkbox"),this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.setAttribute("aria-label",this._opts.title),this.applyStyles(),this.onclick(this.domNode,i=>{this.enabled&&(this.checked=!this._checked,this._onChange.fire(!1),i.preventDefault())}),this._register(this.ignoreGesture(this.domNode)),this.onkeydown(this.domNode,i=>{if(i.keyCode===10||i.keyCode===3){this.checked=!this._checked,this._onChange.fire(!0),i.preventDefault(),i.stopPropagation();return}this._onKeyDown.fire(i)})}get enabled(){return this.domNode.getAttribute("aria-disabled")!=="true"}focus(){this.domNode.focus()}get checked(){return this._checked}set checked(e){this._checked=e,this.domNode.setAttribute("aria-checked",String(this._checked)),this.domNode.classList.toggle("checked",this._checked),this.applyStyles()}width(){return 22}applyStyles(){this.domNode&&(this.domNode.style.borderColor=this._checked&&this._opts.inputActiveOptionBorder||"",this.domNode.style.color=this._checked&&this._opts.inputActiveOptionForeground||"inherit",this.domNode.style.backgroundColor=this._checked&&this._opts.inputActiveOptionBackground||"")}enable(){this.domNode.setAttribute("aria-disabled",String(!1))}disable(){this.domNode.setAttribute("aria-disabled",String(!0))}}const y_t=x("caseDescription","Match Case"),I_t=x("wordsDescription","Match Whole Word"),w_t=x("regexDescription","Use Regular Expression");class owe extends Fw{constructor(e){super({icon:ct.caseSensitive,title:y_t+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class swe extends Fw{constructor(e){super({icon:ct.wholeWord,title:I_t+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class awe extends Fw{constructor(e){super({icon:ct.regex,title:w_t+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class S_t{constructor(e,t=0,i=e.length,r=t-1){this.items=e,this.start=t,this.end=i,this.index=r}current(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]}next(){return this.index=Math.min(this.index+1,this.end),this.current()}previous(){return this.index=Math.max(this.index-1,this.start-1),this.current()}first(){return this.index=this.start,this.current()}last(){return this.index=this.end-1,this.current()}}class x_t{constructor(e=[],t=10){this._initialize(e),this._limit=t,this._onChange()}getHistory(){return this._elements}add(e){this._history.delete(e),this._history.add(e),this._onChange()}next(){return this._navigator.next()}previous(){return this._currentPosition()!==0?this._navigator.previous():null}current(){return this._navigator.current()}first(){return this._navigator.first()}last(){return this._navigator.last()}isLast(){return this._currentPosition()>=this._elements.length-1}isNowhere(){return this._navigator.current()===null}has(e){return this._history.has(e)}_onChange(){this._reduceToLimit();const e=this._elements;this._navigator=new S_t(e,0,e.length,e.length)}_reduceToLimit(){const e=this._elements;e.length>this._limit&&this._initialize(e.slice(e.length-this._limit))}_currentPosition(){const e=this._navigator.current();return e?this._elements.indexOf(e):-1}_initialize(e){this._history=new Set;for(const t of e)this._history.add(t)}get _elements(){const e=[];return this._history.forEach(t=>e.push(t)),e}}const KD=vt;let L_t=class extends Pu{constructor(e,t,i){var r;super(),this.state="idle",this.maxHeight=Number.POSITIVE_INFINITY,this._onDidChange=this._register(new be),this.onDidChange=this._onDidChange.event,this._onDidHeightChange=this._register(new be),this.onDidHeightChange=this._onDidHeightChange.event,this.contextViewProvider=t,this.options=i,this.message=null,this.placeholder=this.options.placeholder||"",this.tooltip=(r=this.options.tooltip)!==null&&r!==void 0?r:this.placeholder||"",this.ariaLabel=this.options.ariaLabel||"",this.options.validationOptions&&(this.validation=this.options.validationOptions.validation),this.element=Je(e,KD(".monaco-inputbox.idle"));const o=this.options.flexibleHeight?"textarea":"input",s=Je(this.element,KD(".ibwrapper"));if(this.input=Je(s,KD(o+".input.empty")),this.input.setAttribute("autocorrect","off"),this.input.setAttribute("autocapitalize","off"),this.input.setAttribute("spellcheck","false"),this.onfocus(this.input,()=>this.element.classList.add("synthetic-focus")),this.onblur(this.input,()=>this.element.classList.remove("synthetic-focus")),this.options.flexibleHeight){this.maxHeight=typeof this.options.flexibleMaxHeight=="number"?this.options.flexibleMaxHeight:Number.POSITIVE_INFINITY,this.mirror=Je(s,KD("div.mirror")),this.mirror.innerText=" ",this.scrollableElement=new j1e(this.element,{vertical:1}),this.options.flexibleWidth&&(this.input.setAttribute("wrap","off"),this.mirror.style.whiteSpace="pre",this.mirror.style.wordWrap="initial"),Je(e,this.scrollableElement.getDomNode()),this._register(this.scrollableElement),this._register(this.scrollableElement.onScroll(u=>this.input.scrollTop=u.scrollTop));const a=this._register(new Qn(e.ownerDocument,"selectionchange")),l=ft.filter(a.event,()=>{const u=e.ownerDocument.getSelection();return(u==null?void 0:u.anchorNode)===s});this._register(l(this.updateScrollDimensions,this)),this._register(this.onDidHeightChange(this.updateScrollDimensions,this))}else this.input.type=this.options.type||"text",this.input.setAttribute("wrap","off");this.ariaLabel&&this.input.setAttribute("aria-label",this.ariaLabel),this.placeholder&&!this.options.showPlaceholderOnFocus&&this.setPlaceHolder(this.placeholder),this.tooltip&&this.setTooltip(this.tooltip),this.oninput(this.input,()=>this.onValueChange()),this.onblur(this.input,()=>this.onBlur()),this.onfocus(this.input,()=>this.onFocus()),this._register(this.ignoreGesture(this.input)),setTimeout(()=>this.updateMirror(),0),this.options.actions&&(this.actionbar=this._register(new Rc(this.element)),this.actionbar.push(this.options.actions,{icon:!0,label:!1})),this.applyStyles()}onBlur(){this._hideMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder","")}onFocus(){this._showMessage(),this.options.showPlaceholderOnFocus&&this.input.setAttribute("placeholder",this.placeholder||"")}setPlaceHolder(e){this.placeholder=e,this.input.setAttribute("placeholder",e)}setTooltip(e){this.tooltip=e,this.input.title=e}get inputElement(){return this.input}get value(){return this.input.value}set value(e){this.input.value!==e&&(this.input.value=e,this.onValueChange())}get height(){return typeof this.cachedHeight=="number"?this.cachedHeight:bf(this.element)}focus(){this.input.focus()}blur(){this.input.blur()}hasFocus(){return EF(this.input)}select(e=null){this.input.select(),e&&(this.input.setSelectionRange(e.start,e.end),e.end===this.input.value.length&&(this.input.scrollLeft=this.input.scrollWidth))}isSelectionAtEnd(){return this.input.selectionEnd===this.input.value.length&&this.input.selectionStart===this.input.selectionEnd}enable(){this.input.removeAttribute("disabled")}disable(){this.blur(),this.input.disabled=!0,this._hideMessage()}set paddingRight(e){this.input.style.width=`calc(100% - ${e}px)`,this.mirror&&(this.mirror.style.paddingRight=e+"px")}updateScrollDimensions(){if(typeof this.cachedContentHeight!="number"||typeof this.cachedHeight!="number"||!this.scrollableElement)return;const e=this.cachedContentHeight,t=this.cachedHeight,i=this.input.scrollTop;this.scrollableElement.setScrollDimensions({scrollHeight:e,height:t}),this.scrollableElement.setScrollPosition({scrollTop:i})}showMessage(e,t){if(this.state==="open"&&Gu(this.message,e))return;this.message=e,this.element.classList.remove("idle"),this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add(this.classForType(e.type));const i=this.stylesForType(this.message.type);this.element.style.border=`1px solid ${Cf(i.border,"transparent")}`,this.message.content&&(this.hasFocus()||t)&&this._showMessage()}hideMessage(){this.message=null,this.element.classList.remove("info"),this.element.classList.remove("warning"),this.element.classList.remove("error"),this.element.classList.add("idle"),this._hideMessage(),this.applyStyles()}validate(){let e=null;return this.validation&&(e=this.validation(this.value),e?(this.inputElement.setAttribute("aria-invalid","true"),this.showMessage(e)):this.inputElement.hasAttribute("aria-invalid")&&(this.inputElement.removeAttribute("aria-invalid"),this.hideMessage())),e==null?void 0:e.type}stylesForType(e){const t=this.options.inputBoxStyles;switch(e){case 1:return{border:t.inputValidationInfoBorder,background:t.inputValidationInfoBackground,foreground:t.inputValidationInfoForeground};case 2:return{border:t.inputValidationWarningBorder,background:t.inputValidationWarningBackground,foreground:t.inputValidationWarningForeground};default:return{border:t.inputValidationErrorBorder,background:t.inputValidationErrorBackground,foreground:t.inputValidationErrorForeground}}}classForType(e){switch(e){case 1:return"info";case 2:return"warning";default:return"error"}}_showMessage(){if(!this.contextViewProvider||!this.message)return;let e;const t=()=>e.style.width=Ja(this.element)+"px";this.contextViewProvider.showContextView({getAnchor:()=>this.element,anchorAlignment:1,render:r=>{var o,s;if(!this.message)return null;e=Je(r,KD(".monaco-inputbox-container")),t();const a={inline:!0,className:"monaco-inputbox-message"},l=this.message.formatContent?q2t(this.message.content,a):$2t(this.message.content,a);l.classList.add(this.classForType(this.message.type));const u=this.stylesForType(this.message.type);return l.style.backgroundColor=(o=u.background)!==null&&o!==void 0?o:"",l.style.color=(s=u.foreground)!==null&&s!==void 0?s:"",l.style.border=u.border?`1px solid ${u.border}`:"",Je(e,l),null},onHide:()=>{this.state="closed"},layout:t});let i;this.message.type===3?i=x("alertErrorMessage","Error: {0}",this.message.content):this.message.type===2?i=x("alertWarningMessage","Warning: {0}",this.message.content):i=x("alertInfoMessage","Info: {0}",this.message.content),ou(i),this.state="open"}_hideMessage(){this.contextViewProvider&&(this.state==="open"&&this.contextViewProvider.hideContextView(),this.state="idle")}onValueChange(){this._onDidChange.fire(this.value),this.validate(),this.updateMirror(),this.input.classList.toggle("empty",!this.value),this.state==="open"&&this.contextViewProvider&&this.contextViewProvider.layout()}updateMirror(){if(!this.mirror)return;const e=this.value,i=e.charCodeAt(e.length-1)===10?" ":"";(e+i).replace(/\u000c/g,"")?this.mirror.textContent=e+i:this.mirror.innerText=" ",this.layout()}applyStyles(){var e,t,i;const r=this.options.inputBoxStyles,o=(e=r.inputBackground)!==null&&e!==void 0?e:"",s=(t=r.inputForeground)!==null&&t!==void 0?t:"",a=(i=r.inputBorder)!==null&&i!==void 0?i:"";this.element.style.backgroundColor=o,this.element.style.color=s,this.input.style.backgroundColor="inherit",this.input.style.color=s,this.element.style.border=`1px solid ${Cf(a,"transparent")}`}layout(){if(!this.mirror)return;const e=this.cachedContentHeight;this.cachedContentHeight=bf(this.mirror),e!==this.cachedContentHeight&&(this.cachedHeight=Math.min(this.cachedContentHeight,this.maxHeight),this.input.style.height=this.cachedHeight+"px",this._onDidHeightChange.fire(this.cachedContentHeight))}insertAtCursor(e){const t=this.inputElement,i=t.selectionStart,r=t.selectionEnd,o=t.value;i!==null&&r!==null&&(this.value=o.substr(0,i)+e+o.substr(r),t.setSelectionRange(i+1,i+1),this.layout())}dispose(){var e;this._hideMessage(),this.message=null,(e=this.actionbar)===null||e===void 0||e.dispose(),super.dispose()}};class lwe extends L_t{constructor(e,t,i){const r=x({key:"history.inputbox.hint.suffix.noparens",comment:['Text is the suffix of an input field placeholder coming after the action the input field performs, this will be used when the input field ends in a closing parenthesis ")", for example "Filter (e.g. text, !exclude)". The character inserted into the final string is ⇅ to represent the up and down arrow keys.']}," or {0} for history","⇅"),o=x({key:"history.inputbox.hint.suffix.inparens",comment:['Text is the suffix of an input field placeholder coming after the action the input field performs, this will be used when the input field does NOT end in a closing parenthesis (eg. "Find"). The character inserted into the final string is ⇅ to represent the up and down arrow keys.']}," ({0} for history)","⇅");super(e,t,i),this._onDidFocus=this._register(new be),this.onDidFocus=this._onDidFocus.event,this._onDidBlur=this._register(new be),this.onDidBlur=this._onDidBlur.event,this.history=new x_t(i.history,100);const s=()=>{if(i.showHistoryHint&&i.showHistoryHint()&&!this.placeholder.endsWith(r)&&!this.placeholder.endsWith(o)&&this.history.getHistory().length){const a=this.placeholder.endsWith(")")?r:o,l=this.placeholder+a;i.showPlaceholderOnFocus&&!EF(this.input)?this.placeholder=l:this.setPlaceHolder(l)}};this.observer=new MutationObserver((a,l)=>{a.forEach(u=>{u.target.textContent||s()})}),this.observer.observe(this.input,{attributeFilter:["class"]}),this.onfocus(this.input,()=>s()),this.onblur(this.input,()=>{const a=l=>{if(this.placeholder.endsWith(l)){const u=this.placeholder.slice(0,this.placeholder.length-l.length);return i.showPlaceholderOnFocus?this.placeholder=u:this.setPlaceHolder(u),!0}else return!1};a(o)||a(r)})}dispose(){super.dispose(),this.observer&&(this.observer.disconnect(),this.observer=void 0)}addToHistory(e){this.value&&(e||this.value!==this.getCurrentValue())&&this.history.add(this.value)}isAtLastInHistory(){return this.history.isLast()}isNowhereInHistory(){return this.history.isNowhere()}showNextValue(){this.history.has(this.value)||this.addToHistory();let e=this.getNextValue();e&&(e=e===this.value?this.getNextValue():e),this.value=e??"",yf(this.value?this.value:x("clearedInput","Cleared Input"))}showPreviousValue(){this.history.has(this.value)||this.addToHistory();let e=this.getPreviousValue();e&&(e=e===this.value?this.getPreviousValue():e),e&&(this.value=e,yf(this.value))}setPlaceHolder(e){super.setPlaceHolder(e),this.setTooltip(e)}onBlur(){super.onBlur(),this._onDidBlur.fire()}onFocus(){super.onFocus(),this._onDidFocus.fire()}getCurrentValue(){let e=this.history.current();return e||(e=this.history.last(),this.history.next()),e}getPreviousValue(){return this.history.previous()||this.history.first()}getNextValue(){return this.history.next()}}const F_t=x("defaultLabel","input");class uwe extends Pu{constructor(e,t,i){super(),this.fixFocusOnOptionClickEnabled=!0,this.imeSessionInProgress=!1,this.additionalTogglesDisposables=this._register(new zs),this.additionalToggles=[],this._onDidOptionChange=this._register(new be),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new be),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new be),this.onMouseDown=this._onMouseDown.event,this._onInput=this._register(new be),this._onKeyUp=this._register(new be),this._onCaseSensitiveKeyDown=this._register(new be),this.onCaseSensitiveKeyDown=this._onCaseSensitiveKeyDown.event,this._onRegexKeyDown=this._register(new be),this.onRegexKeyDown=this._onRegexKeyDown.event,this._lastHighlightFindOptions=0,this.placeholder=i.placeholder||"",this.validation=i.validation,this.label=i.label||F_t,this.showCommonFindToggles=!!i.showCommonFindToggles;const r=i.appendCaseSensitiveLabel||"",o=i.appendWholeWordsLabel||"",s=i.appendRegexLabel||"",a=i.history||[],l=!!i.flexibleHeight,u=!!i.flexibleWidth,c=i.flexibleMaxHeight;if(this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new lwe(this.domNode,t,{placeholder:this.placeholder||"",ariaLabel:this.label||"",validationOptions:{validation:this.validation},history:a,showHistoryHint:i.showHistoryHint,flexibleHeight:l,flexibleWidth:u,flexibleMaxHeight:c,inputBoxStyles:i.inputBoxStyles})),this.showCommonFindToggles){this.regex=this._register(new awe({appendTitle:s,isChecked:!1,...i.toggleStyles})),this._register(this.regex.onChange(h=>{this._onDidOptionChange.fire(h),!h&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.regex.onKeyDown(h=>{this._onRegexKeyDown.fire(h)})),this.wholeWords=this._register(new swe({appendTitle:o,isChecked:!1,...i.toggleStyles})),this._register(this.wholeWords.onChange(h=>{this._onDidOptionChange.fire(h),!h&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this.caseSensitive=this._register(new owe({appendTitle:r,isChecked:!1,...i.toggleStyles})),this._register(this.caseSensitive.onChange(h=>{this._onDidOptionChange.fire(h),!h&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.caseSensitive.onKeyDown(h=>{this._onCaseSensitiveKeyDown.fire(h)}));const d=[this.caseSensitive.domNode,this.wholeWords.domNode,this.regex.domNode];this.onkeydown(this.domNode,h=>{if(h.equals(15)||h.equals(17)||h.equals(9)){const g=d.indexOf(this.domNode.ownerDocument.activeElement);if(g>=0){let m=-1;h.equals(17)?m=(g+1)%d.length:h.equals(15)&&(g===0?m=d.length-1:m=g-1),h.equals(9)?(d[g].blur(),this.inputBox.focus()):m>=0&&d[m].focus(),En.stop(h,!0)}}})}this.controls=document.createElement("div"),this.controls.className="controls",this.controls.style.display=this.showCommonFindToggles?"":"none",this.caseSensitive&&this.controls.append(this.caseSensitive.domNode),this.wholeWords&&this.controls.appendChild(this.wholeWords.domNode),this.regex&&this.controls.appendChild(this.regex.domNode),this.setAdditionalToggles(i==null?void 0:i.additionalToggles),this.controls&&this.domNode.appendChild(this.controls),e==null||e.appendChild(this.domNode),this._register(Ve(this.inputBox.inputElement,"compositionstart",d=>{this.imeSessionInProgress=!0})),this._register(Ve(this.inputBox.inputElement,"compositionend",d=>{this.imeSessionInProgress=!1,this._onInput.fire()})),this.onkeydown(this.inputBox.inputElement,d=>this._onKeyDown.fire(d)),this.onkeyup(this.inputBox.inputElement,d=>this._onKeyUp.fire(d)),this.oninput(this.inputBox.inputElement,d=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,d=>this._onMouseDown.fire(d))}get onDidChange(){return this.inputBox.onDidChange}layout(e){this.inputBox.layout(),this.updateInputBoxPadding(e.collapsedFindWidget)}enable(){var e,t,i;this.domNode.classList.remove("disabled"),this.inputBox.enable(),(e=this.regex)===null||e===void 0||e.enable(),(t=this.wholeWords)===null||t===void 0||t.enable(),(i=this.caseSensitive)===null||i===void 0||i.enable();for(const r of this.additionalToggles)r.enable()}disable(){var e,t,i;this.domNode.classList.add("disabled"),this.inputBox.disable(),(e=this.regex)===null||e===void 0||e.disable(),(t=this.wholeWords)===null||t===void 0||t.disable(),(i=this.caseSensitive)===null||i===void 0||i.disable();for(const r of this.additionalToggles)r.disable()}setFocusInputOnOptionClick(e){this.fixFocusOnOptionClickEnabled=e}setEnabled(e){e?this.enable():this.disable()}setAdditionalToggles(e){for(const t of this.additionalToggles)t.domNode.remove();this.additionalToggles=[],this.additionalTogglesDisposables.value=new je;for(const t of e??[])this.additionalTogglesDisposables.value.add(t),this.controls.appendChild(t.domNode),this.additionalTogglesDisposables.value.add(t.onChange(i=>{this._onDidOptionChange.fire(i),!i&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus()})),this.additionalToggles.push(t);this.additionalToggles.length>0&&(this.controls.style.display=""),this.updateInputBoxPadding()}updateInputBoxPadding(e=!1){var t,i,r,o,s,a;e?this.inputBox.paddingRight=0:this.inputBox.paddingRight=((i=(t=this.caseSensitive)===null||t===void 0?void 0:t.width())!==null&&i!==void 0?i:0)+((o=(r=this.wholeWords)===null||r===void 0?void 0:r.width())!==null&&o!==void 0?o:0)+((a=(s=this.regex)===null||s===void 0?void 0:s.width())!==null&&a!==void 0?a:0)+this.additionalToggles.reduce((l,u)=>l+u.width(),0)}getValue(){return this.inputBox.value}setValue(e){this.inputBox.value!==e&&(this.inputBox.value=e)}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getCaseSensitive(){var e,t;return(t=(e=this.caseSensitive)===null||e===void 0?void 0:e.checked)!==null&&t!==void 0?t:!1}setCaseSensitive(e){this.caseSensitive&&(this.caseSensitive.checked=e)}getWholeWords(){var e,t;return(t=(e=this.wholeWords)===null||e===void 0?void 0:e.checked)!==null&&t!==void 0?t:!1}setWholeWords(e){this.wholeWords&&(this.wholeWords.checked=e)}getRegex(){var e,t;return(t=(e=this.regex)===null||e===void 0?void 0:e.checked)!==null&&t!==void 0?t:!1}setRegex(e){this.regex&&(this.regex.checked=e,this.validate())}focusOnCaseSensitive(){var e;(e=this.caseSensitive)===null||e===void 0||e.focus()}highlightFindOptions(){this.domNode.classList.remove("highlight-"+this._lastHighlightFindOptions),this._lastHighlightFindOptions=1-this._lastHighlightFindOptions,this.domNode.classList.add("highlight-"+this._lastHighlightFindOptions)}validate(){this.inputBox.validate()}showMessage(e){this.inputBox.showMessage(e)}clearMessage(){this.inputBox.hideMessage()}}var Hu;(function(n){n[n.Expanded=0]="Expanded",n[n.Collapsed=1]="Collapsed",n[n.PreserveOrExpanded=2]="PreserveOrExpanded",n[n.PreserveOrCollapsed=3]="PreserveOrCollapsed"})(Hu||(Hu={}));var Dv;(function(n){n[n.Unknown=0]="Unknown",n[n.Twistie=1]="Twistie",n[n.Element=2]="Element",n[n.Filter=3]="Filter"})(Dv||(Dv={}));class Uu extends Error{constructor(e,t){super(`TreeError [${e}] ${t}`)}}class UJ{constructor(e){this.fn=e,this._map=new WeakMap}map(e){let t=this._map.get(e);return t||(t=this.fn(e),this._map.set(e,t)),t}}function JJ(n){return typeof n=="object"&&"visibility"in n&&"data"in n}function jD(n){switch(n){case!0:return 1;case!1:return 0;default:return n}}function KJ(n){return typeof n.collapsible=="boolean"}class __t{constructor(e,t,i,r={}){this.user=e,this.list=t,this.rootRef=[],this.eventBufferer=new aY,this._onDidChangeCollapseState=new be,this.onDidChangeCollapseState=this.eventBufferer.wrapEvent(this._onDidChangeCollapseState.event),this._onDidChangeRenderNodeCount=new be,this.onDidChangeRenderNodeCount=this.eventBufferer.wrapEvent(this._onDidChangeRenderNodeCount.event),this._onDidSplice=new be,this.onDidSplice=this._onDidSplice.event,this.refilterDelayer=new gd(tbe),this.collapseByDefault=typeof r.collapseByDefault>"u"?!1:r.collapseByDefault,this.filter=r.filter,this.autoExpandSingleChildren=typeof r.autoExpandSingleChildren>"u"?!1:r.autoExpandSingleChildren,this.root={parent:void 0,element:i,children:[],depth:0,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:!1,collapsed:!1,renderNodeCount:0,visibility:1,visible:!0,filterData:void 0}}splice(e,t,i=qn.empty(),r={}){if(e.length===0)throw new Uu(this.user,"Invalid tree location");r.diffIdentityProvider?this.spliceSmart(r.diffIdentityProvider,e,t,i,r):this.spliceSimple(e,t,i,r)}spliceSmart(e,t,i,r,o,s){var a;r===void 0&&(r=qn.empty()),s===void 0&&(s=(a=o.diffDepth)!==null&&a!==void 0?a:0);const{parentNode:l}=this.getParentNodeWithListIndex(t);if(!l.lastDiffIds)return this.spliceSimple(t,i,r,o);const u=[...r],c=t[t.length-1],d=new Cm({getElements:()=>l.lastDiffIds},{getElements:()=>[...l.children.slice(0,c),...u,...l.children.slice(c+i)].map(b=>e.getId(b.element).toString())}).ComputeDiff(!1);if(d.quitEarly)return l.lastDiffIds=void 0,this.spliceSimple(t,i,u,o);const h=t.slice(0,-1),g=(b,C,v)=>{if(s>0)for(let w=0;wv.originalStart-C.originalStart))g(m,f,m-(b.originalStart+b.originalLength)),m=b.originalStart,f=b.modifiedStart-c,this.spliceSimple([...h,m],b.originalLength,qn.slice(u,f,f+b.modifiedLength),o);g(m,f,m)}spliceSimple(e,t,i=qn.empty(),{onDidCreateNode:r,onDidDeleteNode:o,diffIdentityProvider:s}){const{parentNode:a,listIndex:l,revealed:u,visible:c}=this.getParentNodeWithListIndex(e),d=[],h=qn.map(i,F=>this.createTreeNode(F,a,a.visible?1:0,u,d,r)),g=e[e.length-1];let m=0;for(let F=g;F>=0&&Fs.getId(F.element).toString())):a.lastDiffIds=a.children.map(F=>s.getId(F.element).toString()):a.lastDiffIds=void 0;let w=0;for(const F of v)F.visible&&w++;if(w!==0)for(let F=g+f.length;FL+(D.visible?D.renderNodeCount:0),0);this._updateAncestorsRenderNodeCount(a,C-F),this.list.splice(l,F,d)}if(v.length>0&&o){const F=L=>{o(L),L.children.forEach(F)};v.forEach(F)}this._onDidSplice.fire({insertedNodes:f,deletedNodes:v});let S=a;for(;S;){if(S.visibility===2){this.refilterDelayer.trigger(()=>this.refilter());break}S=S.parent}}rerender(e){if(e.length===0)throw new Uu(this.user,"Invalid tree location");const{node:t,listIndex:i,revealed:r}=this.getTreeNodeWithListIndex(e);t.visible&&r&&this.list.splice(i,1,[t])}has(e){return this.hasTreeNode(e)}getListIndex(e){const{listIndex:t,visible:i,revealed:r}=this.getTreeNodeWithListIndex(e);return i&&r?t:-1}getListRenderCount(e){return this.getTreeNode(e).renderNodeCount}isCollapsible(e){return this.getTreeNode(e).collapsible}setCollapsible(e,t){const i=this.getTreeNode(e);typeof t>"u"&&(t=!i.collapsible);const r={collapsible:t};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(e,r))}isCollapsed(e){return this.getTreeNode(e).collapsed}setCollapsed(e,t,i){const r=this.getTreeNode(e);typeof t>"u"&&(t=!r.collapsed);const o={collapsed:t,recursive:i||!1};return this.eventBufferer.bufferEvents(()=>this._setCollapseState(e,o))}_setCollapseState(e,t){const{node:i,listIndex:r,revealed:o}=this.getTreeNodeWithListIndex(e),s=this._setListNodeCollapseState(i,r,o,t);if(i!==this.root&&this.autoExpandSingleChildren&&s&&!KJ(t)&&i.collapsible&&!i.collapsed&&!t.recursive){let a=-1;for(let l=0;l-1){a=-1;break}else a=l;a>-1&&this._setCollapseState([...e,a],t)}return s}_setListNodeCollapseState(e,t,i,r){const o=this._setNodeCollapseState(e,r,!1);if(!i||!e.visible||!o)return o;const s=e.renderNodeCount,a=this.updateNodeAfterCollapseChange(e),l=s-(t===-1?0:1);return this.list.splice(t+1,l,a.slice(1)),o}_setNodeCollapseState(e,t,i){let r;if(e===this.root?r=!1:(KJ(t)?(r=e.collapsible!==t.collapsible,e.collapsible=t.collapsible):e.collapsible?(r=e.collapsed!==t.collapsed,e.collapsed=t.collapsed):r=!1,r&&this._onDidChangeCollapseState.fire({node:e,deep:i})),!KJ(t)&&t.recursive)for(const o of e.children)r=this._setNodeCollapseState(o,t,!0)||r;return r}expandTo(e){this.eventBufferer.bufferEvents(()=>{let t=this.getTreeNode(e);for(;t.parent;)t=t.parent,e=e.slice(0,e.length-1),t.collapsed&&this._setCollapseState(e,{collapsed:!1,recursive:!1})})}refilter(){const e=this.root.renderNodeCount,t=this.updateNodeAfterFilterChange(this.root);this.list.splice(0,e,t),this.refilterDelayer.cancel()}createTreeNode(e,t,i,r,o,s){const a={parent:t,element:e.element,children:[],depth:t.depth+1,visibleChildrenCount:0,visibleChildIndex:-1,collapsible:typeof e.collapsible=="boolean"?e.collapsible:typeof e.collapsed<"u",collapsed:typeof e.collapsed>"u"?this.collapseByDefault:e.collapsed,renderNodeCount:1,visibility:1,visible:!0,filterData:void 0},l=this._filterNode(a,i);a.visibility=l,r&&o.push(a);const u=e.children||qn.empty(),c=r&&l!==0&&!a.collapsed;let d=0,h=1;for(const g of u){const m=this.createTreeNode(g,a,l,c,o,s);a.children.push(m),h+=m.renderNodeCount,m.visible&&(m.visibleChildIndex=d++)}return a.collapsible=a.collapsible||a.children.length>0,a.visibleChildrenCount=d,a.visible=l===2?d>0:l===1,a.visible?a.collapsed||(a.renderNodeCount=h):(a.renderNodeCount=0,r&&o.pop()),s==null||s(a),a}updateNodeAfterCollapseChange(e){const t=e.renderNodeCount,i=[];return this._updateNodeAfterCollapseChange(e,i),this._updateAncestorsRenderNodeCount(e.parent,i.length-t),i}_updateNodeAfterCollapseChange(e,t){if(e.visible===!1)return 0;if(t.push(e),e.renderNodeCount=1,!e.collapsed)for(const i of e.children)e.renderNodeCount+=this._updateNodeAfterCollapseChange(i,t);return this._onDidChangeRenderNodeCount.fire(e),e.renderNodeCount}updateNodeAfterFilterChange(e){const t=e.renderNodeCount,i=[];return this._updateNodeAfterFilterChange(e,e.visible?1:0,i),this._updateAncestorsRenderNodeCount(e.parent,i.length-t),i}_updateNodeAfterFilterChange(e,t,i,r=!0){let o;if(e!==this.root){if(o=this._filterNode(e,t),o===0)return e.visible=!1,e.renderNodeCount=0,!1;r&&i.push(e)}const s=i.length;e.renderNodeCount=e===this.root?0:1;let a=!1;if(!e.collapsed||o!==0){let l=0;for(const u of e.children)a=this._updateNodeAfterFilterChange(u,o,i,r&&!e.collapsed)||a,u.visible&&(u.visibleChildIndex=l++);e.visibleChildrenCount=l}else e.visibleChildrenCount=0;return e!==this.root&&(e.visible=o===2?a:o===1,e.visibility=o),e.visible?e.collapsed||(e.renderNodeCount+=i.length-s):(e.renderNodeCount=0,r&&i.pop()),this._onDidChangeRenderNodeCount.fire(e),e.visible}_updateAncestorsRenderNodeCount(e,t){if(t!==0)for(;e;)e.renderNodeCount+=t,this._onDidChangeRenderNodeCount.fire(e),e=e.parent}_filterNode(e,t){const i=this.filter?this.filter.filter(e.element,t):1;return typeof i=="boolean"?(e.filterData=void 0,i?1:0):JJ(i)?(e.filterData=i.data,jD(i.visibility)):(e.filterData=void 0,jD(i))}hasTreeNode(e,t=this.root){if(!e||e.length===0)return!0;const[i,...r]=e;return i<0||i>t.children.length?!1:this.hasTreeNode(r,t.children[i])}getTreeNode(e,t=this.root){if(!e||e.length===0)return t;const[i,...r]=e;if(i<0||i>t.children.length)throw new Uu(this.user,"Invalid tree location");return this.getTreeNode(r,t.children[i])}getTreeNodeWithListIndex(e){if(e.length===0)return{node:this.root,listIndex:-1,revealed:!0,visible:!1};const{parentNode:t,listIndex:i,revealed:r,visible:o}=this.getParentNodeWithListIndex(e),s=e[e.length-1];if(s<0||s>t.children.length)throw new Uu(this.user,"Invalid tree location");const a=t.children[s];return{node:a,listIndex:i,revealed:r,visible:o&&a.visible}}getParentNodeWithListIndex(e,t=this.root,i=0,r=!0,o=!0){const[s,...a]=e;if(s<0||s>t.children.length)throw new Uu(this.user,"Invalid tree location");for(let l=0;lt.element)),this.data=e}}function jJ(n){return n instanceof bD?new D_t(n):n}class A_t{constructor(e,t){this.modelProvider=e,this.dnd=t,this.autoExpandDisposable=De.None,this.disposables=new je}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map(i=>i.element),t)}onDragStart(e,t){var i,r;(r=(i=this.dnd).onDragStart)===null||r===void 0||r.call(i,jJ(e),t)}onDragOver(e,t,i,r,o,s=!0){const a=this.dnd.onDragOver(jJ(e),t&&t.element,i,r,o),l=this.autoExpandNode!==t;if(l&&(this.autoExpandDisposable.dispose(),this.autoExpandNode=t),typeof t>"u")return a;if(l&&typeof a!="boolean"&&a.autoExpand&&(this.autoExpandDisposable=Cb(()=>{const g=this.modelProvider(),m=g.getNodeLocation(t);g.isCollapsed(m)&&g.setCollapsed(m,!1),this.autoExpandNode=void 0},500,this.disposables)),typeof a=="boolean"||!a.accept||typeof a.bubble>"u"||a.feedback){if(!s){const g=typeof a=="boolean"?a:a.accept,m=typeof a=="boolean"?void 0:a.effect;return{accept:g,effect:m,feedback:[i]}}return a}if(a.bubble===1){const g=this.modelProvider(),m=g.getNodeLocation(t),f=g.getParentNodeLocation(m),b=g.getNode(f),C=f&&g.getListIndex(f);return this.onDragOver(e,b,C,r,o,!1)}const u=this.modelProvider(),c=u.getNodeLocation(t),d=u.getListIndex(c),h=u.getListRenderCount(c);return{...a,feedback:$a(d,d+h)}}drop(e,t,i,r,o){this.autoExpandDisposable.dispose(),this.autoExpandNode=void 0,this.dnd.drop(jJ(e),t&&t.element,i,r,o)}onDragEnd(e){var t,i;(i=(t=this.dnd).onDragEnd)===null||i===void 0||i.call(t,e)}dispose(){this.disposables.dispose(),this.dnd.dispose()}}function N_t(n,e){return e&&{...e,identityProvider:e.identityProvider&&{getId(t){return e.identityProvider.getId(t.element)}},dnd:e.dnd&&new A_t(n,e.dnd),multipleSelectionController:e.multipleSelectionController&&{isSelectionSingleChangeEvent(t){return e.multipleSelectionController.isSelectionSingleChangeEvent({...t,element:t.element})},isSelectionRangeChangeEvent(t){return e.multipleSelectionController.isSelectionRangeChangeEvent({...t,element:t.element})}},accessibilityProvider:e.accessibilityProvider&&{...e.accessibilityProvider,getSetSize(t){const i=n(),r=i.getNodeLocation(t),o=i.getParentNodeLocation(r);return i.getNode(o).visibleChildrenCount},getPosInSet(t){return t.visibleChildIndex+1},isChecked:e.accessibilityProvider&&e.accessibilityProvider.isChecked?t=>e.accessibilityProvider.isChecked(t.element):void 0,getRole:e.accessibilityProvider&&e.accessibilityProvider.getRole?t=>e.accessibilityProvider.getRole(t.element):()=>"treeitem",getAriaLabel(t){return e.accessibilityProvider.getAriaLabel(t.element)},getWidgetAriaLabel(){return e.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:e.accessibilityProvider&&e.accessibilityProvider.getWidgetRole?()=>e.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:e.accessibilityProvider&&e.accessibilityProvider.getAriaLevel?t=>e.accessibilityProvider.getAriaLevel(t.element):t=>t.depth,getActiveDescendantId:e.accessibilityProvider.getActiveDescendantId&&(t=>e.accessibilityProvider.getActiveDescendantId(t.element))},keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&{...e.keyboardNavigationLabelProvider,getKeyboardNavigationLabel(t){return e.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(t.element)}}}}class QJ{constructor(e){this.delegate=e}getHeight(e){return this.delegate.getHeight(e.element)}getTemplateId(e){return this.delegate.getTemplateId(e.element)}hasDynamicHeight(e){return!!this.delegate.hasDynamicHeight&&this.delegate.hasDynamicHeight(e.element)}setDynamicHeight(e,t){var i,r;(r=(i=this.delegate).setDynamicHeight)===null||r===void 0||r.call(i,e.element,t)}}var QD;(function(n){n.None="none",n.OnHover="onHover",n.Always="always"})(QD||(QD={}));class k_t{get elements(){return this._elements}constructor(e,t=[]){this._elements=t,this.disposables=new je,this.onDidChange=ft.forEach(e,i=>this._elements=i,this.disposables)}dispose(){this.disposables.dispose()}}class $D{constructor(e,t,i,r,o,s={}){var a;this.renderer=e,this.modelProvider=t,this.activeNodes=r,this.renderedIndentGuides=o,this.renderedElements=new Map,this.renderedNodes=new Map,this.indent=$D.DefaultIndent,this.hideTwistiesOfChildlessElements=!1,this.shouldRenderIndentGuides=!1,this.activeIndentNodes=new Set,this.indentGuidesDisposable=De.None,this.disposables=new je,this.templateId=e.templateId,this.updateOptions(s),ft.map(i,l=>l.node)(this.onDidChangeNodeTwistieState,this,this.disposables),(a=e.onDidChangeTwistieState)===null||a===void 0||a.call(e,this.onDidChangeTwistieState,this,this.disposables)}updateOptions(e={}){if(typeof e.indent<"u"){const t=ol(e.indent,0,40);if(t!==this.indent){this.indent=t;for(const[i,r]of this.renderedNodes)this.renderTreeElement(i,r)}}if(typeof e.renderIndentGuides<"u"){const t=e.renderIndentGuides!==QD.None;if(t!==this.shouldRenderIndentGuides){this.shouldRenderIndentGuides=t;for(const[i,r]of this.renderedNodes)this._renderIndentGuides(i,r);if(this.indentGuidesDisposable.dispose(),t){const i=new je;this.activeNodes.onDidChange(this._onDidChangeActiveNodes,this,i),this.indentGuidesDisposable=i,this._onDidChangeActiveNodes(this.activeNodes.elements)}}}typeof e.hideTwistiesOfChildlessElements<"u"&&(this.hideTwistiesOfChildlessElements=e.hideTwistiesOfChildlessElements)}renderTemplate(e){const t=Je(e,vt(".monaco-tl-row")),i=Je(t,vt(".monaco-tl-indent")),r=Je(t,vt(".monaco-tl-twistie")),o=Je(t,vt(".monaco-tl-contents")),s=this.renderer.renderTemplate(o);return{container:e,indent:i,twistie:r,indentGuidesDisposable:De.None,templateData:s}}renderElement(e,t,i,r){this.renderedNodes.set(e,i),this.renderedElements.set(e.element,e),this.renderTreeElement(e,i),this.renderer.renderElement(e,t,i.templateData,r)}disposeElement(e,t,i,r){var o,s;i.indentGuidesDisposable.dispose(),(s=(o=this.renderer).disposeElement)===null||s===void 0||s.call(o,e,t,i.templateData,r),typeof r=="number"&&(this.renderedNodes.delete(e),this.renderedElements.delete(e.element))}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}onDidChangeTwistieState(e){const t=this.renderedElements.get(e);t&&this.onDidChangeNodeTwistieState(t)}onDidChangeNodeTwistieState(e){const t=this.renderedNodes.get(e);t&&(this._onDidChangeActiveNodes(this.activeNodes.elements),this.renderTreeElement(e,t))}renderTreeElement(e,t){const i=$D.DefaultIndent+(e.depth-1)*this.indent;t.twistie.style.paddingLeft=`${i}px`,t.indent.style.width=`${i+this.indent-16}px`,e.collapsible?t.container.setAttribute("aria-expanded",String(!e.collapsed)):t.container.removeAttribute("aria-expanded"),t.twistie.classList.remove(...on.asClassNameArray(ct.treeItemExpanded));let r=!1;this.renderer.renderTwistie&&(r=this.renderer.renderTwistie(e.element,t.twistie)),e.collapsible&&(!this.hideTwistiesOfChildlessElements||e.visibleChildrenCount>0)?(r||t.twistie.classList.add(...on.asClassNameArray(ct.treeItemExpanded)),t.twistie.classList.add("collapsible"),t.twistie.classList.toggle("collapsed",e.collapsed)):t.twistie.classList.remove("collapsible","collapsed"),this._renderIndentGuides(e,t)}_renderIndentGuides(e,t){if(la(t.indent),t.indentGuidesDisposable.dispose(),!this.shouldRenderIndentGuides)return;const i=new je,r=this.modelProvider();for(;;){const o=r.getNodeLocation(e),s=r.getParentNodeLocation(o);if(!s)break;const a=r.getNode(s),l=vt(".indent-guide",{style:`width: ${this.indent}px`});this.activeIndentNodes.has(a)&&l.classList.add("active"),t.indent.childElementCount===0?t.indent.appendChild(l):t.indent.insertBefore(l,t.indent.firstElementChild),this.renderedIndentGuides.add(a,l),i.add(en(()=>this.renderedIndentGuides.delete(a,l))),e=a}t.indentGuidesDisposable=i}_onDidChangeActiveNodes(e){if(!this.shouldRenderIndentGuides)return;const t=new Set,i=this.modelProvider();e.forEach(r=>{const o=i.getNodeLocation(r);try{const s=i.getParentNodeLocation(o);r.collapsible&&r.children.length>0&&!r.collapsed?t.add(r):s&&t.add(i.getNode(s))}catch{}}),this.activeIndentNodes.forEach(r=>{t.has(r)||this.renderedIndentGuides.forEach(r,o=>o.classList.remove("active"))}),t.forEach(r=>{this.activeIndentNodes.has(r)||this.renderedIndentGuides.forEach(r,o=>o.classList.add("active"))}),this.activeIndentNodes=t}dispose(){this.renderedNodes.clear(),this.renderedElements.clear(),this.indentGuidesDisposable.dispose(),Mi(this.disposables)}}$D.DefaultIndent=8;class M_t{get totalCount(){return this._totalCount}get matchCount(){return this._matchCount}constructor(e,t,i){this.tree=e,this.keyboardNavigationLabelProvider=t,this._filter=i,this._totalCount=0,this._matchCount=0,this._pattern="",this._lowercasePattern="",this.disposables=new je,e.onWillRefilter(this.reset,this,this.disposables)}filter(e,t){let i=1;if(this._filter){const s=this._filter.filter(e,t);if(typeof s=="boolean"?i=s?1:0:JJ(s)?i=jD(s.visibility):i=s,i===0)return!1}if(this._totalCount++,!this._pattern)return this._matchCount++,{data:Zh.Default,visibility:i};const r=this.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e),o=Array.isArray(r)?r:[r];for(const s of o){const a=s&&s.toString();if(typeof a>"u")return{data:Zh.Default,visibility:i};let l;if(this.tree.findMatchType===Av.Contiguous){const u=a.toLowerCase().indexOf(this._lowercasePattern);if(u>-1){l=[Number.MAX_SAFE_INTEGER,0];for(let c=this._lowercasePattern.length;c>0;c--)l.push(u+c-1)}}else l=nw(this._pattern,this._lowercasePattern,0,a,a.toLowerCase(),0,{firstMatchCanBeWeak:!0,boostFullMatch:!0});if(l)return this._matchCount++,o.length===1?{data:l,visibility:i}:{data:{label:a,score:l},visibility:i}}return this.tree.findMode===sp.Filter?typeof this.tree.options.defaultFindVisibility=="number"?this.tree.options.defaultFindVisibility:this.tree.options.defaultFindVisibility?this.tree.options.defaultFindVisibility(e):2:{data:Zh.Default,visibility:i}}reset(){this._totalCount=0,this._matchCount=0}dispose(){Mi(this.disposables)}}var sp;(function(n){n[n.Highlight=0]="Highlight",n[n.Filter=1]="Filter"})(sp||(sp={}));var Av;(function(n){n[n.Fuzzy=0]="Fuzzy",n[n.Contiguous=1]="Contiguous"})(Av||(Av={}));let Z_t=class{get pattern(){return this._pattern}get mode(){return this._mode}set mode(e){e!==this._mode&&(this._mode=e,this.widget&&(this.widget.mode=this._mode),this.tree.refilter(),this.render(),this._onDidChangeMode.fire(e))}get matchType(){return this._matchType}set matchType(e){e!==this._matchType&&(this._matchType=e,this.widget&&(this.widget.matchType=this._matchType),this.tree.refilter(),this.render(),this._onDidChangeMatchType.fire(e))}constructor(e,t,i,r,o,s={}){var a,l;this.tree=e,this.view=i,this.filter=r,this.contextViewProvider=o,this.options=s,this._pattern="",this.width=0,this._onDidChangeMode=new be,this.onDidChangeMode=this._onDidChangeMode.event,this._onDidChangeMatchType=new be,this.onDidChangeMatchType=this._onDidChangeMatchType.event,this._onDidChangePattern=new be,this._onDidChangeOpenState=new be,this.onDidChangeOpenState=this._onDidChangeOpenState.event,this.enabledDisposables=new je,this.disposables=new je,this._mode=(a=e.options.defaultFindMode)!==null&&a!==void 0?a:sp.Highlight,this._matchType=(l=e.options.defaultFindMatchType)!==null&&l!==void 0?l:Av.Fuzzy,t.onDidSplice(this.onDidSpliceModel,this,this.disposables)}updateOptions(e={}){e.defaultFindMode!==void 0&&(this.mode=e.defaultFindMode),e.defaultFindMatchType!==void 0&&(this.matchType=e.defaultFindMatchType)}onDidSpliceModel(){!this.widget||this.pattern.length===0||(this.tree.refilter(),this.render())}render(){var e,t,i,r;const o=this.filter.totalCount>0&&this.filter.matchCount===0;this.pattern&&o?!((e=this.tree.options.showNotFoundMessage)!==null&&e!==void 0)||e?(t=this.widget)===null||t===void 0||t.showMessage({type:2,content:x("not found","No elements found.")}):(i=this.widget)===null||i===void 0||i.showMessage({type:2}):(r=this.widget)===null||r===void 0||r.clearMessage()}shouldAllowFocus(e){return!this.widget||!this.pattern||this.filter.totalCount>0&&this.filter.matchCount<=1?!0:!Zh.isDefault(e.filterData)}layout(e){var t;this.width=e,(t=this.widget)===null||t===void 0||t.layout(e)}dispose(){this._history=void 0,this._onDidChangePattern.dispose(),this.enabledDisposables.dispose(),this.disposables.dispose()}};function T_t(n,e){return n.position===e.position&&cwe(n,e)}function cwe(n,e){return n.node.element===e.node.element&&n.startIndex===e.startIndex&&n.height===e.height&&n.endIndex===e.endIndex}class E_t{constructor(e=[]){this.stickyNodes=e}get count(){return this.stickyNodes.length}equal(e){return Ar(this.stickyNodes,e.stickyNodes,T_t)}lastNodePartiallyVisible(){if(this.count===0)return!1;const e=this.stickyNodes[this.count-1];if(this.count===1)return e.position!==0;const t=this.stickyNodes[this.count-2];return t.position+t.height!==e.position}animationStateChanged(e){if(!Ar(this.stickyNodes,e.stickyNodes,cwe)||this.count===0)return!1;const t=this.stickyNodes[this.count-1],i=e.stickyNodes[e.count-1];return t.position!==i.position}}class W_t{constrainStickyScrollNodes(e,t,i){for(let r=0;ri||r>=t)return e.slice(0,r)}return e}}let dwe=class extends De{constructor(e,t,i,r,o,s={}){var a;super(),this.tree=e,this.model=t,this.view=i,this.treeDelegate=o,this.maxWidgetViewRatio=.4;const l=this.validateStickySettings(s);this.stickyScrollMaxItemCount=l.stickyScrollMaxItemCount,this.stickyScrollDelegate=(a=s.stickyScrollDelegate)!==null&&a!==void 0?a:new W_t,this._widget=this._register(new R_t(i.getScrollableElement(),i,e,r,o,s.accessibilityProvider)),this.onDidChangeHasFocus=this._widget.onDidChangeHasFocus,this.onContextMenu=this._widget.onContextMenu,this._register(i.onDidScroll(()=>this.update())),this._register(i.onDidChangeContentHeight(()=>this.update())),this._register(e.onDidChangeCollapseState(()=>this.update())),this.update()}getNodeAtHeight(e){let t;if(e===0?t=this.view.firstVisibleIndex:t=this.view.indexAt(e+this.view.scrollTop),!(t<0||t>=this.view.length))return this.view.element(t)}update(){const e=this.getNodeAtHeight(0);if(!e||this.tree.scrollTop===0){this._widget.setState(void 0);return}const t=this.findStickyState(e);this._widget.setState(t)}findStickyState(e){const t=[];let i=e,r=0,o=this.getNextStickyNode(i,void 0,r);for(;o&&(t.push(o),r+=o.height,!(t.length<=this.stickyScrollMaxItemCount&&(i=this.getNextVisibleNode(o),!i)));)o=this.getNextStickyNode(i,o.node,r);const s=this.constrainStickyNodes(t);return s.length?new E_t(s):void 0}getNextVisibleNode(e){return this.getNodeAtHeight(e.position+e.height)}getNextStickyNode(e,t,i){const r=this.getAncestorUnderPrevious(e,t);if(r&&!(r===e&&(!this.nodeIsUncollapsedParent(e)||this.nodeTopAlignsWithStickyNodesBottom(e,i))))return this.createStickyScrollNode(r,i)}nodeTopAlignsWithStickyNodesBottom(e,t){const i=this.getNodeIndex(e),r=this.view.getElementTop(i),o=t;return this.view.scrollTop===r-o}createStickyScrollNode(e,t){const i=this.treeDelegate.getHeight(e),{startIndex:r,endIndex:o}=this.getNodeRange(e),s=this.calculateStickyNodePosition(o,t,i);return{node:e,position:s,height:i,startIndex:r,endIndex:o}}getAncestorUnderPrevious(e,t=void 0){let i=e,r=this.getParentNode(i);for(;r;){if(r===t)return i;i=r,r=this.getParentNode(i)}if(t===void 0)return i}calculateStickyNodePosition(e,t,i){let r=this.view.getRelativeTop(e);if(r===null&&this.view.firstVisibleIndex===e&&e+1l&&t<=l?l-i:t}constrainStickyNodes(e){if(e.length===0)return[];const t=this.view.renderHeight*this.maxWidgetViewRatio,i=e[e.length-1];if(e.length<=this.stickyScrollMaxItemCount&&i.position+i.height<=t)return e;const r=this.stickyScrollDelegate.constrainStickyScrollNodes(e,this.stickyScrollMaxItemCount,t);if(!r.length)return[];const o=r[r.length-1];if(r.length>this.stickyScrollMaxItemCount||o.position+o.height>t)throw new Error("stickyScrollDelegate violates constraints");return r}getParentNode(e){const t=this.model.getNodeLocation(e),i=this.model.getParentNodeLocation(t);return i?this.model.getNode(i):void 0}nodeIsUncollapsedParent(e){const t=this.model.getNodeLocation(e);return this.model.getListRenderCount(t)>1}getNodeIndex(e){const t=this.model.getNodeLocation(e);return this.model.getListIndex(t)}getNodeRange(e){const t=this.model.getNodeLocation(e),i=this.model.getListIndex(t);if(i<0)throw new Error("Node not found in tree");const r=this.model.getListRenderCount(t),o=i+r-1;return{startIndex:i,endIndex:o}}nodePositionTopBelowWidget(e){const t=[];let i=this.getParentNode(e);for(;i;)t.push(i),i=this.getParentNode(i);let r=0;for(let o=0;o0,i=!!e&&e.count>0;if(!t&&!i||t&&i&&this._previousState.equal(e))return;if(t!==i&&this.setVisible(i),!i){this._previousState=void 0,this._previousElements=[],this._previousStateDisposables.clear();return}const r=e.stickyNodes[e.count-1];if(this._previousState&&e.animationStateChanged(this._previousState))this._previousElements[this._previousState.count-1].style.top=`${r.position}px`;else{this._previousStateDisposables.clear();const o=Array(e.count);for(let s=e.count-1;s>=0;s--){const a=e.stickyNodes[s],{element:l,disposable:u}=this.createElement(a,s,e.count);o[s]=l,this._rootDomNode.appendChild(l),this._previousStateDisposables.add(u)}this.stickyScrollFocus.updateElements(o,e),this._previousElements=o}this._previousState=e,this._rootDomNode.style.height=`${r.position+r.height}px`}createElement(e,t,i){const r=e.startIndex,o=document.createElement("div");o.style.top=`${e.position}px`,o.style.height=`${e.height}px`,o.style.lineHeight=`${e.height}px`,o.classList.add("monaco-tree-sticky-row"),o.classList.add("monaco-list-row"),o.setAttribute("data-index",`${r}`),o.setAttribute("data-parity",r%2===0?"even":"odd"),o.setAttribute("id",this.view.getElementID(r)),this.setAccessibilityAttributes(o,e.node.element,t,i);const s=this.treeDelegate.getTemplateId(e.node),a=this.treeRenderers.find(d=>d.templateId===s);if(!a)throw new Error(`No renderer found for template id ${s}`);let l=e.node;l===this.tree.getNode(this.tree.getNodeLocation(e.node))&&(l=new Proxy(e.node,{}));const u=a.renderTemplate(o);a.renderElement(l,e.startIndex,u,e.height);const c=en(()=>{a.disposeElement(l,e.startIndex,u,e.height),a.disposeTemplate(u),o.remove()});return{element:o,disposable:c}}setAccessibilityAttributes(e,t,i,r){var o;if(!this.accessibilityProvider)return;this.accessibilityProvider.getSetSize&&e.setAttribute("aria-setsize",String(this.accessibilityProvider.getSetSize(t,i,r))),this.accessibilityProvider.getPosInSet&&e.setAttribute("aria-posinset",String(this.accessibilityProvider.getPosInSet(t,i))),this.accessibilityProvider.getRole&&e.setAttribute("role",(o=this.accessibilityProvider.getRole(t))!==null&&o!==void 0?o:"treeitem");const s=this.accessibilityProvider.getAriaLabel(t);s&&e.setAttribute("aria-label",s);const a=this.accessibilityProvider.getAriaLevel&&this.accessibilityProvider.getAriaLevel(t);typeof a=="number"&&e.setAttribute("aria-level",`${a}`),e.setAttribute("aria-selected",String(!1))}setVisible(e){this._rootDomNode.classList.toggle("empty",!e),e||this.stickyScrollFocus.updateElements([],void 0)}domFocus(){this.stickyScrollFocus.domFocus()}focusedLast(){return this.stickyScrollFocus.focusedLast()}dispose(){this.stickyScrollFocus.dispose(),this._previousStateDisposables.dispose(),this._rootDomNode.remove()}};class G_t extends De{get domHasFocus(){return this._domHasFocus}set domHasFocus(e){e!==this._domHasFocus&&(this._onDidChangeHasFocus.fire(e),this._domHasFocus=e)}constructor(e,t){super(),this.container=e,this.view=t,this.focusedIndex=-1,this.elements=[],this._onDidChangeHasFocus=new be,this.onDidChangeHasFocus=this._onDidChangeHasFocus.event,this._onContextMenu=new be,this.onContextMenu=this._onContextMenu.event,this._domHasFocus=!1,this.container.addEventListener("focus",()=>this.onFocus()),this.container.addEventListener("blur",()=>this.onBlur()),this._register(this.view.onDidFocus(()=>this.toggleStickyScrollFocused(!1))),this._register(this.view.onKeyDown(i=>this.onKeyDown(i))),this._register(this.view.onMouseDown(i=>this.onMouseDown(i))),this._register(this.view.onContextMenu(i=>this.handleContextMenu(i)))}handleContextMenu(e){const t=e.browserEvent.target;if(!RE(t)&&!yD(t)){this.focusedLast()&&this.view.domFocus();return}if(!HY(e.browserEvent)){if(!this.state)throw new Error("Context menu should not be triggered when state is undefined");const s=this.state.stickyNodes.findIndex(a=>{var l;return a.node.element===((l=e.element)===null||l===void 0?void 0:l.element)});if(s===-1)throw new Error("Context menu should not be triggered when element is not in sticky scroll widget");this.container.focus(),this.setFocus(s);return}if(!this.state||this.focusedIndex<0)throw new Error("Context menu key should not be triggered when focus is not in sticky scroll widget");const r=this.state.stickyNodes[this.focusedIndex].node.element,o=this.elements[this.focusedIndex];this._onContextMenu.fire({element:r,anchor:o,browserEvent:e.browserEvent,isStickyScroll:!0})}onKeyDown(e){if(this.domHasFocus&&this.state){if(e.key==="ArrowUp")this.setFocusedElement(Math.max(0,this.focusedIndex-1)),e.preventDefault(),e.stopPropagation();else if(e.key==="ArrowDown"||e.key==="ArrowRight"){if(this.focusedIndex>=this.state.count-1){const t=this.state.stickyNodes[this.state.count-1].startIndex+1;this.view.domFocus(),this.view.setFocus([t]),this.scrollNodeUnderWidget(t,this.state)}else this.setFocusedElement(this.focusedIndex+1);e.preventDefault(),e.stopPropagation()}}}onMouseDown(e){const t=e.browserEvent.target;!RE(t)&&!yD(t)||(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation())}updateElements(e,t){if(t&&t.count===0)throw new Error("Sticky scroll state must be undefined when there are no sticky nodes");if(t&&t.count!==e.length)throw new Error("Sticky scroll focus received illigel state");const i=this.focusedIndex;if(this.removeFocus(),this.elements=e,this.state=t,t){const r=ol(i,0,t.count-1);this.setFocus(r)}else this.domHasFocus&&this.view.domFocus();this.container.tabIndex=t?0:-1}setFocusedElement(e){const t=this.state;if(!t)throw new Error("Cannot set focus when state is undefined");if(this.setFocus(e),!(e1?t.stickyNodes[t.count-2]:void 0,o=this.view.getElementTop(e),s=r?r.position+r.height+i.height:i.height;this.view.scrollTop=o-s}domFocus(){if(!this.state)throw new Error("Cannot focus when state is undefined");this.container.focus()}focusedLast(){return this.state?this.view.getHTMLElement().classList.contains("sticky-scroll-focused"):!1}removeFocus(){this.focusedIndex!==-1&&(this.toggleElementFocus(this.elements[this.focusedIndex],!1),this.focusedIndex=-1)}setFocus(e){if(0>e)throw new Error("addFocus() can not remove focus");if(!this.state&&e>=0)throw new Error("Cannot set focus index when state is undefined");if(this.state&&e>=this.state.count)throw new Error("Cannot set focus index to an index that does not exist");const t=this.focusedIndex;t>=0&&this.toggleElementFocus(this.elements[t],!1),e>=0&&this.toggleElementFocus(this.elements[e],!0),this.focusedIndex=e}toggleElementFocus(e,t){e.classList.toggle("focused",t)}toggleStickyScrollFocused(e){this.view.getHTMLElement().classList.toggle("sticky-scroll-focused",e)}onFocus(){if(!this.state||this.elements.length===0)throw new Error("Cannot focus when state is undefined or elements are empty");this.domHasFocus=!0,this.toggleStickyScrollFocused(!0),this.focusedIndex===-1&&this.setFocus(0)}onBlur(){this.domHasFocus=!1}dispose(){this.toggleStickyScrollFocused(!1),this._onDidChangeHasFocus.fire(!1),super.dispose()}}function hwe(n){let e=Dv.Unknown;return PY(n.browserEvent.target,"monaco-tl-twistie","monaco-tl-row")?e=Dv.Twistie:PY(n.browserEvent.target,"monaco-tl-contents","monaco-tl-row")?e=Dv.Element:PY(n.browserEvent.target,"monaco-tree-type-filter","monaco-list")&&(e=Dv.Filter),{browserEvent:n.browserEvent,element:n.element?n.element.element:null,target:e}}function TW(n,e){e(n),n.children.forEach(t=>TW(t,e))}class $J{get nodeSet(){return this._nodeSet||(this._nodeSet=this.createNodeSet()),this._nodeSet}constructor(e,t){this.getFirstViewElementWithTrait=e,this.identityProvider=t,this.nodes=[],this._onDidChange=new be,this.onDidChange=this._onDidChange.event}set(e,t){!(t!=null&&t.__forceEvent)&&Ar(this.nodes,e)||this._set(e,!1,t)}_set(e,t,i){if(this.nodes=[...e],this.elements=void 0,this._nodeSet=void 0,!t){const r=this;this._onDidChange.fire({get elements(){return r.get()},browserEvent:i})}}get(){return this.elements||(this.elements=this.nodes.map(e=>e.element)),[...this.elements]}getNodes(){return this.nodes}has(e){return this.nodeSet.has(e)}onDidModelSplice({insertedNodes:e,deletedNodes:t}){if(!this.identityProvider){const l=this.createNodeSet(),u=c=>l.delete(c);t.forEach(c=>TW(c,u)),this.set([...l.values()]);return}const i=new Set,r=l=>i.add(this.identityProvider.getId(l.element).toString());t.forEach(l=>TW(l,r));const o=new Map,s=l=>o.set(this.identityProvider.getId(l.element).toString(),l);e.forEach(l=>TW(l,s));const a=[];for(const l of this.nodes){const u=this.identityProvider.getId(l.element).toString();if(!i.has(u))a.push(l);else{const d=o.get(u);d&&d.visible&&a.push(d)}}if(this.nodes.length>0&&a.length===0){const l=this.getFirstViewElementWithTrait();l&&a.push(l)}this._set(a,!0)}createNodeSet(){const e=new Set;for(const t of this.nodes)e.add(t);return e}}class V_t extends Lye{constructor(e,t,i){super(e),this.tree=t,this.stickyScrollProvider=i}onViewPointer(e){if(yye(e.browserEvent.target)||n0(e.browserEvent.target)||vD(e.browserEvent.target)||e.browserEvent.isHandledByList)return;const t=e.element;if(!t)return super.onViewPointer(e);if(this.isSelectionRangeChangeEvent(e)||this.isSelectionSingleChangeEvent(e))return super.onViewPointer(e);const i=e.browserEvent.target,r=i.classList.contains("monaco-tl-twistie")||i.classList.contains("monaco-icon-label")&&i.classList.contains("folder-icon")&&e.browserEvent.offsetX<16,o=yD(e.browserEvent.target);let s=!1;if(o?s=!0:typeof this.tree.expandOnlyOnTwistieClick=="function"?s=this.tree.expandOnlyOnTwistieClick(t.element):s=!!this.tree.expandOnlyOnTwistieClick,o)this.handleStickyScrollMouseEvent(e,t);else{if(s&&!r&&e.browserEvent.detail!==2)return super.onViewPointer(e);if(!this.tree.expandOnDoubleClick&&e.browserEvent.detail===2)return super.onViewPointer(e)}if(t.collapsible&&(!o||r)){const a=this.tree.getNodeLocation(t),l=e.browserEvent.altKey;if(this.tree.setFocus([a]),this.tree.toggleCollapsed(a,l),s&&r){e.browserEvent.isHandledByList=!0;return}}o||super.onViewPointer(e)}handleStickyScrollMouseEvent(e,t){if(Wwt(e.browserEvent.target)||Rwt(e.browserEvent.target))return;const i=this.stickyScrollProvider();if(!i)throw new Error("Sticky scroll controller not found");const r=this.list.indexOf(t),o=this.list.getElementTop(r),s=i.nodePositionTopBelowWidget(t);this.tree.scrollTop=o-s,this.list.domFocus(),this.list.setFocus([r]),this.list.setSelection([r])}onDoubleClick(e){e.browserEvent.target.classList.contains("monaco-tl-twistie")||!this.tree.expandOnDoubleClick||e.browserEvent.isHandledByList||super.onDoubleClick(e)}onMouseDown(e){const t=e.browserEvent.target;if(!RE(t)&&!yD(t)){super.onMouseDown(e);return}}onContextMenu(e){const t=e.browserEvent.target;if(!RE(t)&&!yD(t)){super.onContextMenu(e);return}}}class X_t extends zu{constructor(e,t,i,r,o,s,a,l){super(e,t,i,r,l),this.focusTrait=o,this.selectionTrait=s,this.anchorTrait=a}createMouseController(e){return new V_t(this,e.tree,e.stickyScrollProvider)}splice(e,t,i=[]){if(super.splice(e,t,i),i.length===0)return;const r=[],o=[];let s;i.forEach((a,l)=>{this.focusTrait.has(a)&&r.push(e+l),this.selectionTrait.has(a)&&o.push(e+l),this.anchorTrait.has(a)&&(s=e+l)}),r.length>0&&super.setFocus(Sf([...super.getFocus(),...r])),o.length>0&&super.setSelection(Sf([...super.getSelection(),...o])),typeof s=="number"&&super.setAnchor(s)}setFocus(e,t,i=!1){super.setFocus(e,t),i||this.focusTrait.set(e.map(r=>this.element(r)),t)}setSelection(e,t,i=!1){super.setSelection(e,t),i||this.selectionTrait.set(e.map(r=>this.element(r)),t)}setAnchor(e,t=!1){super.setAnchor(e),t||(typeof e>"u"?this.anchorTrait.set([]):this.anchorTrait.set([this.element(e)]))}}class gwe{get onDidScroll(){return this.view.onDidScroll}get onDidChangeFocus(){return this.eventBufferer.wrapEvent(this.focus.onDidChange)}get onDidChangeSelection(){return this.eventBufferer.wrapEvent(this.selection.onDidChange)}get onMouseDblClick(){return ft.filter(ft.map(this.view.onMouseDblClick,hwe),e=>e.target!==Dv.Filter)}get onPointer(){return ft.map(this.view.onPointer,hwe)}get onDidFocus(){return this.view.onDidFocus}get onDidChangeModel(){return ft.signal(this.model.onDidSplice)}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get findMode(){var e,t;return(t=(e=this.findController)===null||e===void 0?void 0:e.mode)!==null&&t!==void 0?t:sp.Highlight}set findMode(e){this.findController&&(this.findController.mode=e)}get findMatchType(){var e,t;return(t=(e=this.findController)===null||e===void 0?void 0:e.matchType)!==null&&t!==void 0?t:Av.Fuzzy}set findMatchType(e){this.findController&&(this.findController.matchType=e)}get expandOnDoubleClick(){return typeof this._options.expandOnDoubleClick>"u"?!0:this._options.expandOnDoubleClick}get expandOnlyOnTwistieClick(){return typeof this._options.expandOnlyOnTwistieClick>"u"?!0:this._options.expandOnlyOnTwistieClick}get onDidDispose(){return this.view.onDidDispose}constructor(e,t,i,r,o={}){var s;this._user=e,this._options=o,this.eventBufferer=new aY,this.onDidChangeFindOpenState=ft.None,this.onDidChangeStickyScrollFocused=ft.None,this.disposables=new je,this._onWillRefilter=new be,this.onWillRefilter=this._onWillRefilter.event,this._onDidUpdateOptions=new be,this.treeDelegate=new QJ(i);const a=new qpe,l=new qpe,u=this.disposables.add(new k_t(l.event)),c=new f7;this.renderers=r.map(f=>new $D(f,()=>this.model,a.event,u,c,o));for(const f of this.renderers)this.disposables.add(f);let d;o.keyboardNavigationLabelProvider&&(d=new M_t(this,o.keyboardNavigationLabelProvider,o.filter),o={...o,filter:d},this.disposables.add(d)),this.focus=new $J(()=>this.view.getFocusedElements()[0],o.identityProvider),this.selection=new $J(()=>this.view.getSelectedElements()[0],o.identityProvider),this.anchor=new $J(()=>this.view.getAnchorElement(),o.identityProvider),this.view=new X_t(e,t,this.treeDelegate,this.renderers,this.focus,this.selection,this.anchor,{...N_t(()=>this.model,o),tree:this,stickyScrollProvider:()=>this.stickyScrollController}),this.model=this.createModel(e,this.view,o),a.input=this.model.onDidChangeCollapseState;const h=ft.forEach(this.model.onDidSplice,f=>{this.eventBufferer.bufferEvents(()=>{this.focus.onDidModelSplice(f),this.selection.onDidModelSplice(f)})},this.disposables);h(()=>null,null,this.disposables);const g=this.disposables.add(new be),m=this.disposables.add(new gd(0));if(this.disposables.add(ft.any(h,this.focus.onDidChange,this.selection.onDidChange)(()=>{m.trigger(()=>{const f=new Set;for(const b of this.focus.getNodes())f.add(b);for(const b of this.selection.getNodes())f.add(b);g.fire([...f.values()])})})),l.input=g.event,o.keyboardSupport!==!1){const f=ft.chain(this.view.onKeyDown,b=>b.filter(C=>!n0(C.target)).map(C=>new nr(C)));ft.chain(f,b=>b.filter(C=>C.keyCode===15))(this.onLeftArrow,this,this.disposables),ft.chain(f,b=>b.filter(C=>C.keyCode===17))(this.onRightArrow,this,this.disposables),ft.chain(f,b=>b.filter(C=>C.keyCode===10))(this.onSpace,this,this.disposables)}if((!((s=o.findWidgetEnabled)!==null&&s!==void 0)||s)&&o.keyboardNavigationLabelProvider&&o.contextViewProvider){const f=this.options.findWidgetStyles?{styles:this.options.findWidgetStyles}:void 0;this.findController=new Z_t(this,this.model,this.view,d,o.contextViewProvider,f),this.focusNavigationFilter=b=>this.findController.shouldAllowFocus(b),this.onDidChangeFindOpenState=this.findController.onDidChangeOpenState,this.disposables.add(this.findController),this.onDidChangeFindMode=this.findController.onDidChangeMode,this.onDidChangeFindMatchType=this.findController.onDidChangeMatchType}else this.onDidChangeFindMode=ft.None,this.onDidChangeFindMatchType=ft.None;o.enableStickyScroll&&(this.stickyScrollController=new dwe(this,this.model,this.view,this.renderers,this.treeDelegate,o),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus),this.styleElement=Eu(this.view.getHTMLElement()),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===QD.Always)}updateOptions(e={}){var t;this._options={...this._options,...e};for(const i of this.renderers)i.updateOptions(e);this.view.updateOptions(this._options),(t=this.findController)===null||t===void 0||t.updateOptions(e),this.updateStickyScroll(e),this._onDidUpdateOptions.fire(this._options),this.getHTMLElement().classList.toggle("always",this._options.renderIndentGuides===QD.Always)}get options(){return this._options}updateStickyScroll(e){var t;!this.stickyScrollController&&this._options.enableStickyScroll?(this.stickyScrollController=new dwe(this,this.model,this.view,this.renderers,this.treeDelegate,this._options),this.onDidChangeStickyScrollFocused=this.stickyScrollController.onDidChangeHasFocus):this.stickyScrollController&&!this._options.enableStickyScroll&&(this.onDidChangeStickyScrollFocused=ft.None,this.stickyScrollController.dispose(),this.stickyScrollController=void 0),(t=this.stickyScrollController)===null||t===void 0||t.updateOptions(e)}getHTMLElement(){return this.view.getHTMLElement()}get scrollTop(){return this.view.scrollTop}set scrollTop(e){this.view.scrollTop=e}get scrollHeight(){return this.view.scrollHeight}get renderHeight(){return this.view.renderHeight}domFocus(){var e;!((e=this.stickyScrollController)===null||e===void 0)&&e.focusedLast()?this.stickyScrollController.domFocus():this.view.domFocus()}layout(e,t){var i;this.view.layout(e,t),mb(t)&&((i=this.findController)===null||i===void 0||i.layout(t))}style(e){var t;const i=`.${this.view.domId}`,r=[];e.treeIndentGuidesStroke&&(r.push(`.monaco-list${i}:hover .monaco-tl-indent > .indent-guide, .monaco-list${i}.always .monaco-tl-indent > .indent-guide { border-color: ${e.treeInactiveIndentGuidesStroke}; }`),r.push(`.monaco-list${i} .monaco-tl-indent > .indent-guide.active { border-color: ${e.treeIndentGuidesStroke}; }`)),e.listBackground&&(r.push(`.monaco-list${i} .monaco-scrollable-element .monaco-tree-sticky-container { background-color: ${e.listBackground}; }`),r.push(`.monaco-list${i} .monaco-scrollable-element .monaco-tree-sticky-container .monaco-tree-sticky-row { background-color: ${e.listBackground}; }`)),e.listFocusForeground&&(r.push(`.monaco-list${i}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { color: ${e.listFocusForeground}; }`),r.push(`.monaco-list${i}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { color: inherit; }`));const o=Cf(e.listFocusAndSelectionOutline,Cf(e.listSelectionOutline,(t=e.listFocusOutline)!==null&&t!==void 0?t:""));o&&(r.push(`.monaco-list${i}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused.selected { outline: 1px solid ${o}; outline-offset: -1px;}`),r.push(`.monaco-list${i}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused.selected { outline: inherit;}`)),e.listFocusOutline&&(r.push(`.monaco-list${i}.sticky-scroll-focused .monaco-scrollable-element .monaco-tree-sticky-container:focus .monaco-list-row.focused { outline: 1px solid ${e.listFocusOutline}; outline-offset: -1px; }`),r.push(`.monaco-list${i}:not(.sticky-scroll-focused) .monaco-scrollable-element .monaco-tree-sticky-container .monaco-list-row.focused { outline: inherit; }`),r.push(`.monaco-workbench.context-menu-visible .monaco-list${i}.last-focused.sticky-scroll-focused .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`),r.push(`.monaco-workbench.context-menu-visible .monaco-list${i}.last-focused:not(.sticky-scroll-focused) .monaco-tree-sticky-container .monaco-list-rows .monaco-list-row.focused { outline: inherit; }`)),this.styleElement.textContent=r.join(` +`),this.view.style(e)}getParentElement(e){const t=this.model.getParentNodeLocation(e);return this.model.getNode(t).element}getFirstElementChild(e){return this.model.getFirstElementChild(e)}getNode(e){return this.model.getNode(e)}getNodeLocation(e){return this.model.getNodeLocation(e)}collapse(e,t=!1){return this.model.setCollapsed(e,!0,t)}expand(e,t=!1){return this.model.setCollapsed(e,!1,t)}toggleCollapsed(e,t=!1){return this.model.setCollapsed(e,void 0,t)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}refilter(){this._onWillRefilter.fire(void 0),this.model.refilter()}setSelection(e,t){this.eventBufferer.bufferEvents(()=>{const i=e.map(o=>this.model.getNode(o));this.selection.set(i,t);const r=e.map(o=>this.model.getListIndex(o)).filter(o=>o>-1);this.view.setSelection(r,t,!0)})}getSelection(){return this.selection.get()}setFocus(e,t){this.eventBufferer.bufferEvents(()=>{const i=e.map(o=>this.model.getNode(o));this.focus.set(i,t);const r=e.map(o=>this.model.getListIndex(o)).filter(o=>o>-1);this.view.setFocus(r,t,!0)})}getFocus(){return this.focus.get()}reveal(e,t){this.model.expandTo(e);const i=this.model.getListIndex(e);if(i!==-1)if(!this.stickyScrollController)this.view.reveal(i,t);else{const r=this.stickyScrollController.nodePositionTopBelowWidget(this.getNode(e));this.view.reveal(i,t,r)}}onLeftArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],r=this.model.getNodeLocation(i);if(!this.model.setCollapsed(r,!0)){const s=this.model.getParentNodeLocation(r);if(!s)return;const a=this.model.getListIndex(s);this.view.reveal(a),this.view.setFocus([a])}}onRightArrow(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],r=this.model.getNodeLocation(i);if(!this.model.setCollapsed(r,!1)){if(!i.children.some(l=>l.visible))return;const[s]=this.view.getFocus(),a=s+1;this.view.reveal(a),this.view.setFocus([a])}}onSpace(e){e.preventDefault(),e.stopPropagation();const t=this.view.getFocusedElements();if(t.length===0)return;const i=t[0],r=this.model.getNodeLocation(i),o=e.browserEvent.altKey;this.model.setCollapsed(r,void 0,o)}dispose(){var e;Mi(this.disposables),(e=this.stickyScrollController)===null||e===void 0||e.dispose(),this.view.dispose()}}class qJ{constructor(e,t,i={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.nodesByIdentity=new Map,this.model=new __t(e,t,null,i),this.onDidSplice=this.model.onDidSplice,this.onDidChangeCollapseState=this.model.onDidChangeCollapseState,this.onDidChangeRenderNodeCount=this.model.onDidChangeRenderNodeCount,i.sorter&&(this.sorter={compare(r,o){return i.sorter.compare(r.element,o.element)}}),this.identityProvider=i.identityProvider}setChildren(e,t=qn.empty(),i={}){const r=this.getElementLocation(e);this._setChildren(r,this.preserveCollapseState(t),i)}_setChildren(e,t=qn.empty(),i){const r=new Set,o=new Set,s=l=>{var u;if(l.element===null)return;const c=l;if(r.add(c.element),this.nodes.set(c.element,c),this.identityProvider){const d=this.identityProvider.getId(c.element).toString();o.add(d),this.nodesByIdentity.set(d,c)}(u=i.onDidCreateNode)===null||u===void 0||u.call(i,c)},a=l=>{var u;if(l.element===null)return;const c=l;if(r.has(c.element)||this.nodes.delete(c.element),this.identityProvider){const d=this.identityProvider.getId(c.element).toString();o.has(d)||this.nodesByIdentity.delete(d)}(u=i.onDidDeleteNode)===null||u===void 0||u.call(i,c)};this.model.splice([...e,0],Number.MAX_VALUE,t,{...i,onDidCreateNode:s,onDidDeleteNode:a})}preserveCollapseState(e=qn.empty()){return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),qn.map(e,t=>{let i=this.nodes.get(t.element);if(!i&&this.identityProvider){const s=this.identityProvider.getId(t.element).toString();i=this.nodesByIdentity.get(s)}if(!i){let s;return typeof t.collapsed>"u"?s=void 0:t.collapsed===Hu.Collapsed||t.collapsed===Hu.PreserveOrCollapsed?s=!0:t.collapsed===Hu.Expanded||t.collapsed===Hu.PreserveOrExpanded?s=!1:s=!!t.collapsed,{...t,children:this.preserveCollapseState(t.children),collapsed:s}}const r=typeof t.collapsible=="boolean"?t.collapsible:i.collapsible;let o;return typeof t.collapsed>"u"||t.collapsed===Hu.PreserveOrCollapsed||t.collapsed===Hu.PreserveOrExpanded?o=i.collapsed:t.collapsed===Hu.Collapsed?o=!0:t.collapsed===Hu.Expanded?o=!1:o=!!t.collapsed,{...t,collapsible:r,collapsed:o,children:this.preserveCollapseState(t.children)}})}rerender(e){const t=this.getElementLocation(e);this.model.rerender(t)}getFirstElementChild(e=null){const t=this.getElementLocation(e);return this.model.getFirstElementChild(t)}has(e){return this.nodes.has(e)}getListIndex(e){const t=this.getElementLocation(e);return this.model.getListIndex(t)}getListRenderCount(e){const t=this.getElementLocation(e);return this.model.getListRenderCount(t)}isCollapsible(e){const t=this.getElementLocation(e);return this.model.isCollapsible(t)}setCollapsible(e,t){const i=this.getElementLocation(e);return this.model.setCollapsible(i,t)}isCollapsed(e){const t=this.getElementLocation(e);return this.model.isCollapsed(t)}setCollapsed(e,t,i){const r=this.getElementLocation(e);return this.model.setCollapsed(r,t,i)}expandTo(e){const t=this.getElementLocation(e);this.model.expandTo(t)}refilter(){this.model.refilter()}getNode(e=null){if(e===null)return this.model.getNode(this.model.rootRef);const t=this.nodes.get(e);if(!t)throw new Uu(this.user,`Tree element not found: ${e}`);return t}getNodeLocation(e){return e.element}getParentNodeLocation(e){if(e===null)throw new Uu(this.user,"Invalid getParentNodeLocation call");const t=this.nodes.get(e);if(!t)throw new Uu(this.user,`Tree element not found: ${e}`);const i=this.model.getNodeLocation(t),r=this.model.getParentNodeLocation(i);return this.model.getNode(r).element}getElementLocation(e){if(e===null)return[];const t=this.nodes.get(e);if(!t)throw new Uu(this.user,`Tree element not found: ${e}`);return this.model.getNodeLocation(t)}}function EW(n){const e=[n.element],t=n.incompressible||!1;return{element:{elements:e,incompressible:t},children:qn.map(qn.from(n.children),EW),collapsible:n.collapsible,collapsed:n.collapsed}}function WW(n){const e=[n.element],t=n.incompressible||!1;let i,r;for(;[r,i]=qn.consume(qn.from(n.children),2),!(r.length!==1||r[0].incompressible);)n=r[0],e.push(n.element);return{element:{elements:e,incompressible:t},children:qn.map(qn.concat(r,i),WW),collapsible:n.collapsible,collapsed:n.collapsed}}function eK(n,e=0){let t;return eeK(i,0)),e===0&&n.element.incompressible?{element:n.element.elements[e],children:t,incompressible:!0,collapsible:n.collapsible,collapsed:n.collapsed}:{element:n.element.elements[e],children:t,collapsible:n.collapsible,collapsed:n.collapsed}}function mwe(n){return eK(n,0)}function fwe(n,e,t){return n.element===e?{...n,children:t}:{...n,children:qn.map(qn.from(n.children),i=>fwe(i,e,t))}}const P_t=n=>({getId(e){return e.elements.map(t=>n.getId(t).toString()).join("\0")}});class O_t{get onDidSplice(){return this.model.onDidSplice}get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}get onDidChangeRenderNodeCount(){return this.model.onDidChangeRenderNodeCount}constructor(e,t,i={}){this.user=e,this.rootRef=null,this.nodes=new Map,this.model=new qJ(e,t,i),this.enabled=typeof i.compressionEnabled>"u"?!0:i.compressionEnabled,this.identityProvider=i.identityProvider}setChildren(e,t=qn.empty(),i){const r=i.diffIdentityProvider&&P_t(i.diffIdentityProvider);if(e===null){const m=qn.map(t,this.enabled?WW:EW);this._setChildren(null,m,{diffIdentityProvider:r,diffDepth:1/0});return}const o=this.nodes.get(e);if(!o)throw new Uu(this.user,"Unknown compressed tree node");const s=this.model.getNode(o),a=this.model.getParentNodeLocation(o),l=this.model.getNode(a),u=mwe(s),c=fwe(u,e,t),d=(this.enabled?WW:EW)(c),h=i.diffIdentityProvider?(m,f)=>i.diffIdentityProvider.getId(m)===i.diffIdentityProvider.getId(f):void 0;if(Ar(d.element.elements,s.element.elements,h)){this._setChildren(o,d.children||qn.empty(),{diffIdentityProvider:r,diffDepth:1});return}const g=l.children.map(m=>m===s?d:m);this._setChildren(l.element,g,{diffIdentityProvider:r,diffDepth:s.depth-l.depth})}isCompressionEnabled(){return this.enabled}setCompressionEnabled(e){if(e===this.enabled)return;this.enabled=e;const i=this.model.getNode().children,r=qn.map(i,mwe),o=qn.map(r,e?WW:EW);this._setChildren(null,o,{diffIdentityProvider:this.identityProvider,diffDepth:1/0})}_setChildren(e,t,i){const r=new Set,o=a=>{for(const l of a.element.elements)r.add(l),this.nodes.set(l,a.element)},s=a=>{for(const l of a.element.elements)r.has(l)||this.nodes.delete(l)};this.model.setChildren(e,t,{...i,onDidCreateNode:o,onDidDeleteNode:s})}has(e){return this.nodes.has(e)}getListIndex(e){const t=this.getCompressedNode(e);return this.model.getListIndex(t)}getListRenderCount(e){const t=this.getCompressedNode(e);return this.model.getListRenderCount(t)}getNode(e){if(typeof e>"u")return this.model.getNode();const t=this.getCompressedNode(e);return this.model.getNode(t)}getNodeLocation(e){const t=this.model.getNodeLocation(e);return t===null?null:t.elements[t.elements.length-1]}getParentNodeLocation(e){const t=this.getCompressedNode(e),i=this.model.getParentNodeLocation(t);return i===null?null:i.elements[i.elements.length-1]}getFirstElementChild(e){const t=this.getCompressedNode(e);return this.model.getFirstElementChild(t)}isCollapsible(e){const t=this.getCompressedNode(e);return this.model.isCollapsible(t)}setCollapsible(e,t){const i=this.getCompressedNode(e);return this.model.setCollapsible(i,t)}isCollapsed(e){const t=this.getCompressedNode(e);return this.model.isCollapsed(t)}setCollapsed(e,t,i){const r=this.getCompressedNode(e);return this.model.setCollapsed(r,t,i)}expandTo(e){const t=this.getCompressedNode(e);this.model.expandTo(t)}rerender(e){const t=this.getCompressedNode(e);this.model.rerender(t)}refilter(){this.model.refilter()}getCompressedNode(e){if(e===null)return null;const t=this.nodes.get(e);if(!t)throw new Uu(this.user,`Tree element not found: ${e}`);return t}}const B_t=n=>n[n.length-1];class tK{get element(){return this.node.element===null?null:this.unwrapper(this.node.element)}get children(){return this.node.children.map(e=>new tK(this.unwrapper,e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(e,t){this.unwrapper=e,this.node=t}}function z_t(n,e){return{splice(t,i,r){e.splice(t,i,r.map(o=>n.map(o)))},updateElementHeight(t,i){e.updateElementHeight(t,i)}}}function Y_t(n,e){return{...e,identityProvider:e.identityProvider&&{getId(t){return e.identityProvider.getId(n(t))}},sorter:e.sorter&&{compare(t,i){return e.sorter.compare(t.elements[0],i.elements[0])}},filter:e.filter&&{filter(t,i){return e.filter.filter(n(t),i)}}}}class H_t{get onDidSplice(){return ft.map(this.model.onDidSplice,({insertedNodes:e,deletedNodes:t})=>({insertedNodes:e.map(i=>this.nodeMapper.map(i)),deletedNodes:t.map(i=>this.nodeMapper.map(i))}))}get onDidChangeCollapseState(){return ft.map(this.model.onDidChangeCollapseState,({node:e,deep:t})=>({node:this.nodeMapper.map(e),deep:t}))}get onDidChangeRenderNodeCount(){return ft.map(this.model.onDidChangeRenderNodeCount,e=>this.nodeMapper.map(e))}constructor(e,t,i={}){this.rootRef=null,this.elementMapper=i.elementMapper||B_t;const r=o=>this.elementMapper(o.elements);this.nodeMapper=new UJ(o=>new tK(r,o)),this.model=new O_t(e,z_t(this.nodeMapper,t),Y_t(r,i))}setChildren(e,t=qn.empty(),i={}){this.model.setChildren(e,t,i)}isCompressionEnabled(){return this.model.isCompressionEnabled()}setCompressionEnabled(e){this.model.setCompressionEnabled(e)}has(e){return this.model.has(e)}getListIndex(e){return this.model.getListIndex(e)}getListRenderCount(e){return this.model.getListRenderCount(e)}getNode(e){return this.nodeMapper.map(this.model.getNode(e))}getNodeLocation(e){return e.element}getParentNodeLocation(e){return this.model.getParentNodeLocation(e)}getFirstElementChild(e){const t=this.model.getFirstElementChild(e);return t===null||typeof t>"u"?t:this.elementMapper(t.elements)}isCollapsible(e){return this.model.isCollapsible(e)}setCollapsible(e,t){return this.model.setCollapsible(e,t)}isCollapsed(e){return this.model.isCollapsed(e)}setCollapsed(e,t,i){return this.model.setCollapsed(e,t,i)}expandTo(e){return this.model.expandTo(e)}rerender(e){return this.model.rerender(e)}refilter(){return this.model.refilter()}getCompressedTreeNode(e=null){return this.model.getNode(e)}}var U_t=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o};class nK extends gwe{get onDidChangeCollapseState(){return this.model.onDidChangeCollapseState}constructor(e,t,i,r,o={}){super(e,t,i,r,o),this.user=e}setChildren(e,t=qn.empty(),i){this.model.setChildren(e,t,i)}rerender(e){if(e===void 0){this.view.rerender();return}this.model.rerender(e)}hasElement(e){return this.model.has(e)}createModel(e,t,i){return new qJ(e,t,i)}}class pwe{get compressedTreeNodeProvider(){return this._compressedTreeNodeProvider()}constructor(e,t,i){this._compressedTreeNodeProvider=e,this.stickyScrollDelegate=t,this.renderer=i,this.templateId=i.templateId,i.onDidChangeTwistieState&&(this.onDidChangeTwistieState=i.onDidChangeTwistieState)}renderTemplate(e){return{compressedTreeNode:void 0,data:this.renderer.renderTemplate(e)}}renderElement(e,t,i,r){let o=this.stickyScrollDelegate.getCompressedNode(e);o||(o=this.compressedTreeNodeProvider.getCompressedTreeNode(e.element)),o.element.elements.length===1?(i.compressedTreeNode=void 0,this.renderer.renderElement(e,t,i.data,r)):(i.compressedTreeNode=o,this.renderer.renderCompressedElements(o,t,i.data,r))}disposeElement(e,t,i,r){var o,s,a,l;i.compressedTreeNode?(s=(o=this.renderer).disposeCompressedElements)===null||s===void 0||s.call(o,i.compressedTreeNode,t,i.data,r):(l=(a=this.renderer).disposeElement)===null||l===void 0||l.call(a,e,t,i.data,r)}disposeTemplate(e){this.renderer.disposeTemplate(e.data)}renderTwistie(e,t){return this.renderer.renderTwistie?this.renderer.renderTwistie(e,t):!1}}U_t([qr],pwe.prototype,"compressedTreeNodeProvider",null);class J_t{constructor(e){this.modelProvider=e,this.compressedStickyNodes=new Map}getCompressedNode(e){return this.compressedStickyNodes.get(e)}constrainStickyScrollNodes(e,t,i){if(this.compressedStickyNodes.clear(),e.length===0)return[];for(let r=0;ri||r>=t-1&&tthis,a=new J_t(()=>this.model),l=r.map(u=>new pwe(s,a,u));super(e,t,i,l,{...K_t(s,o),stickyScrollDelegate:a})}setChildren(e,t=qn.empty(),i){this.model.setChildren(e,t,i)}createModel(e,t,i){return new H_t(e,t,i)}updateOptions(e={}){super.updateOptions(e),typeof e.compressionEnabled<"u"&&this.model.setCompressionEnabled(e.compressionEnabled)}getCompressedTreeNode(e=null){return this.model.getCompressedTreeNode(e)}}function iK(n){return{...n,children:[],refreshPromise:void 0,stale:!0,slow:!1,forceExpanded:!1}}function rK(n,e){return e.parent?e.parent===n?!0:rK(n,e.parent):!1}function j_t(n,e){return n===e||rK(n,e)||rK(e,n)}class oK{get element(){return this.node.element.element}get children(){return this.node.children.map(e=>new oK(e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(e){this.node=e}}class Q_t{constructor(e,t,i){this.renderer=e,this.nodeMapper=t,this.onDidChangeTwistieState=i,this.renderedNodes=new Map,this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,r){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,r)}renderTwistie(e,t){return e.slow?(t.classList.add(...on.asClassNameArray(ct.treeItemLoading)),!0):(t.classList.remove(...on.asClassNameArray(ct.treeItemLoading)),!1)}disposeElement(e,t,i,r){var o,s;(s=(o=this.renderer).disposeElement)===null||s===void 0||s.call(o,this.nodeMapper.map(e),t,i.templateData,r)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear()}}function Cwe(n){return{browserEvent:n.browserEvent,elements:n.elements.map(e=>e.element)}}function vwe(n){return{browserEvent:n.browserEvent,element:n.element&&n.element.element,target:n.target}}class $_t extends bD{constructor(e){super(e.elements.map(t=>t.element)),this.data=e}}function sK(n){return n instanceof bD?new $_t(n):n}class q_t{constructor(e){this.dnd=e}getDragURI(e){return this.dnd.getDragURI(e.element)}getDragLabel(e,t){if(this.dnd.getDragLabel)return this.dnd.getDragLabel(e.map(i=>i.element),t)}onDragStart(e,t){var i,r;(r=(i=this.dnd).onDragStart)===null||r===void 0||r.call(i,sK(e),t)}onDragOver(e,t,i,r,o,s=!0){return this.dnd.onDragOver(sK(e),t&&t.element,i,r,o)}drop(e,t,i,r,o){this.dnd.drop(sK(e),t&&t.element,i,r,o)}onDragEnd(e){var t,i;(i=(t=this.dnd).onDragEnd)===null||i===void 0||i.call(t,e)}dispose(){this.dnd.dispose()}}function ywe(n){return n&&{...n,collapseByDefault:!0,identityProvider:n.identityProvider&&{getId(e){return n.identityProvider.getId(e.element)}},dnd:n.dnd&&new q_t(n.dnd),multipleSelectionController:n.multipleSelectionController&&{isSelectionSingleChangeEvent(e){return n.multipleSelectionController.isSelectionSingleChangeEvent({...e,element:e.element})},isSelectionRangeChangeEvent(e){return n.multipleSelectionController.isSelectionRangeChangeEvent({...e,element:e.element})}},accessibilityProvider:n.accessibilityProvider&&{...n.accessibilityProvider,getPosInSet:void 0,getSetSize:void 0,getRole:n.accessibilityProvider.getRole?e=>n.accessibilityProvider.getRole(e.element):()=>"treeitem",isChecked:n.accessibilityProvider.isChecked?e=>{var t;return!!(!((t=n.accessibilityProvider)===null||t===void 0)&&t.isChecked(e.element))}:void 0,getAriaLabel(e){return n.accessibilityProvider.getAriaLabel(e.element)},getWidgetAriaLabel(){return n.accessibilityProvider.getWidgetAriaLabel()},getWidgetRole:n.accessibilityProvider.getWidgetRole?()=>n.accessibilityProvider.getWidgetRole():()=>"tree",getAriaLevel:n.accessibilityProvider.getAriaLevel&&(e=>n.accessibilityProvider.getAriaLevel(e.element)),getActiveDescendantId:n.accessibilityProvider.getActiveDescendantId&&(e=>n.accessibilityProvider.getActiveDescendantId(e.element))},filter:n.filter&&{filter(e,t){return n.filter.filter(e.element,t)}},keyboardNavigationLabelProvider:n.keyboardNavigationLabelProvider&&{...n.keyboardNavigationLabelProvider,getKeyboardNavigationLabel(e){return n.keyboardNavigationLabelProvider.getKeyboardNavigationLabel(e.element)}},sorter:void 0,expandOnlyOnTwistieClick:typeof n.expandOnlyOnTwistieClick>"u"?void 0:typeof n.expandOnlyOnTwistieClick!="function"?n.expandOnlyOnTwistieClick:e=>n.expandOnlyOnTwistieClick(e.element),defaultFindVisibility:e=>e.hasChildren&&e.stale?1:typeof n.defaultFindVisibility=="number"?n.defaultFindVisibility:typeof n.defaultFindVisibility>"u"?2:n.defaultFindVisibility(e.element)}}function aK(n,e){e(n),n.children.forEach(t=>aK(t,e))}class Iwe{get onDidScroll(){return this.tree.onDidScroll}get onDidChangeFocus(){return ft.map(this.tree.onDidChangeFocus,Cwe)}get onDidChangeSelection(){return ft.map(this.tree.onDidChangeSelection,Cwe)}get onMouseDblClick(){return ft.map(this.tree.onMouseDblClick,vwe)}get onPointer(){return ft.map(this.tree.onPointer,vwe)}get onDidFocus(){return this.tree.onDidFocus}get onDidChangeModel(){return this.tree.onDidChangeModel}get onDidChangeCollapseState(){return this.tree.onDidChangeCollapseState}get onDidChangeFindOpenState(){return this.tree.onDidChangeFindOpenState}get onDidChangeStickyScrollFocused(){return this.tree.onDidChangeStickyScrollFocused}get onDidDispose(){return this.tree.onDidDispose}constructor(e,t,i,r,o,s={}){this.user=e,this.dataSource=o,this.nodes=new Map,this.subTreeRefreshPromises=new Map,this.refreshPromises=new Map,this._onDidRender=new be,this._onDidChangeNodeSlowState=new be,this.nodeMapper=new UJ(a=>new oK(a)),this.disposables=new je,this.identityProvider=s.identityProvider,this.autoExpandSingleChildren=typeof s.autoExpandSingleChildren>"u"?!1:s.autoExpandSingleChildren,this.sorter=s.sorter,this.getDefaultCollapseState=a=>s.collapseByDefault?s.collapseByDefault(a)?Hu.PreserveOrCollapsed:Hu.PreserveOrExpanded:void 0,this.tree=this.createTree(e,t,i,r,s),this.onDidChangeFindMode=this.tree.onDidChangeFindMode,this.onDidChangeFindMatchType=this.tree.onDidChangeFindMatchType,this.root=iK({element:void 0,parent:null,hasChildren:!0,defaultCollapseState:void 0}),this.identityProvider&&(this.root={...this.root,id:null}),this.nodes.set(null,this.root),this.tree.onDidChangeCollapseState(this._onDidChangeCollapseState,this,this.disposables)}createTree(e,t,i,r,o){const s=new QJ(i),a=r.map(u=>new Q_t(u,this.nodeMapper,this._onDidChangeNodeSlowState.event)),l=ywe(o)||{};return new nK(e,t,s,a,l)}updateOptions(e={}){this.tree.updateOptions(e)}getHTMLElement(){return this.tree.getHTMLElement()}get scrollTop(){return this.tree.scrollTop}set scrollTop(e){this.tree.scrollTop=e}get scrollHeight(){return this.tree.scrollHeight}get renderHeight(){return this.tree.renderHeight}domFocus(){this.tree.domFocus()}layout(e,t){this.tree.layout(e,t)}style(e){this.tree.style(e)}getInput(){return this.root.element}async setInput(e,t){this.refreshPromises.forEach(r=>r.cancel()),this.refreshPromises.clear(),this.root.element=e;const i=t&&{viewState:t,focus:[],selection:[]};await this._updateChildren(e,!0,!1,i),i&&(this.tree.setFocus(i.focus),this.tree.setSelection(i.selection)),t&&typeof t.scrollTop=="number"&&(this.scrollTop=t.scrollTop)}async _updateChildren(e=this.root.element,t=!0,i=!1,r,o){if(typeof this.root.element>"u")throw new Uu(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await ft.toPromise(this._onDidRender.event));const s=this.getDataNode(e);if(await this.refreshAndRenderNode(s,t,r,o),i)try{this.tree.rerender(s)}catch{}}rerender(e){if(e===void 0||e===this.root.element){this.tree.rerender();return}const t=this.getDataNode(e);this.tree.rerender(t)}getNode(e=this.root.element){const t=this.getDataNode(e),i=this.tree.getNode(t===this.root?null:t);return this.nodeMapper.map(i)}collapse(e,t=!1){const i=this.getDataNode(e);return this.tree.collapse(i===this.root?null:i,t)}async expand(e,t=!1){if(typeof this.root.element>"u")throw new Uu(this.user,"Tree input not set");this.root.refreshPromise&&(await this.root.refreshPromise,await ft.toPromise(this._onDidRender.event));const i=this.getDataNode(e);if(this.tree.hasElement(i)&&!this.tree.isCollapsible(i)||(i.refreshPromise&&(await this.root.refreshPromise,await ft.toPromise(this._onDidRender.event)),i!==this.root&&!i.refreshPromise&&!this.tree.isCollapsed(i)))return!1;const r=this.tree.expand(i===this.root?null:i,t);return i.refreshPromise&&(await this.root.refreshPromise,await ft.toPromise(this._onDidRender.event)),r}setSelection(e,t){const i=e.map(r=>this.getDataNode(r));this.tree.setSelection(i,t)}getSelection(){return this.tree.getSelection().map(t=>t.element)}setFocus(e,t){const i=e.map(r=>this.getDataNode(r));this.tree.setFocus(i,t)}getFocus(){return this.tree.getFocus().map(t=>t.element)}reveal(e,t){this.tree.reveal(this.getDataNode(e),t)}getParentElement(e){const t=this.tree.getParentElement(this.getDataNode(e));return t&&t.element}getFirstElementChild(e=this.root.element){const t=this.getDataNode(e),i=this.tree.getFirstElementChild(t===this.root?null:t);return i&&i.element}getDataNode(e){const t=this.nodes.get(e===this.root.element?null:e);if(!t)throw new Uu(this.user,`Data tree node not found: ${e}`);return t}async refreshAndRenderNode(e,t,i,r){await this.refreshNode(e,t,i),!this.disposables.isDisposed&&this.render(e,i,r)}async refreshNode(e,t,i){let r;if(this.subTreeRefreshPromises.forEach((o,s)=>{!r&&j_t(s,e)&&(r=o.then(()=>this.refreshNode(e,t,i)))}),r)return r;if(e!==this.root&&this.tree.getNode(e).collapsed){e.hasChildren=!!this.dataSource.hasChildren(e.element),e.stale=!0,this.setChildren(e,[],t,i);return}return this.doRefreshSubTree(e,t,i)}async doRefreshSubTree(e,t,i){let r;e.refreshPromise=new Promise(o=>r=o),this.subTreeRefreshPromises.set(e,e.refreshPromise),e.refreshPromise.finally(()=>{e.refreshPromise=void 0,this.subTreeRefreshPromises.delete(e)});try{const o=await this.doRefreshNode(e,t,i);e.stale=!1,await hY.settled(o.map(s=>this.doRefreshSubTree(s,t,i)))}finally{r()}}async doRefreshNode(e,t,i){e.hasChildren=!!this.dataSource.hasChildren(e.element);let r;if(!e.hasChildren)r=Promise.resolve(qn.empty());else{const o=this.doGetChildren(e);if(Wpe(o))r=Promise.resolve(o);else{const s=xC(800);s.then(()=>{e.slow=!0,this._onDidChangeNodeSlowState.fire(e)},a=>null),r=o.finally(()=>s.cancel())}}try{const o=await r;return this.setChildren(e,o,t,i)}catch(o){if(e!==this.root&&this.tree.hasElement(e)&&this.tree.collapse(e),Ng(o))return[];throw o}finally{e.slow&&(e.slow=!1,this._onDidChangeNodeSlowState.fire(e))}}doGetChildren(e){let t=this.refreshPromises.get(e);if(t)return t;const i=this.dataSource.getChildren(e.element);return Wpe(i)?this.processChildren(i):(t=$o(async()=>this.processChildren(await i)),this.refreshPromises.set(e,t),t.finally(()=>{this.refreshPromises.delete(e)}))}_onDidChangeCollapseState({node:e,deep:t}){e.element!==null&&!e.collapsed&&e.element.stale&&(t?this.collapse(e.element.element):this.refreshAndRenderNode(e.element,!1).catch(fn))}setChildren(e,t,i,r){const o=[...t];if(e.children.length===0&&o.length===0)return[];const s=new Map,a=new Map;for(const c of e.children)s.set(c.element,c),this.identityProvider&&a.set(c.id,{node:c,collapsed:this.tree.hasElement(c)&&this.tree.isCollapsed(c)});const l=[],u=o.map(c=>{const d=!!this.dataSource.hasChildren(c);if(!this.identityProvider){const f=iK({element:c,parent:e,hasChildren:d,defaultCollapseState:this.getDefaultCollapseState(c)});return d&&f.defaultCollapseState===Hu.PreserveOrExpanded&&l.push(f),f}const h=this.identityProvider.getId(c).toString(),g=a.get(h);if(g){const f=g.node;return s.delete(f.element),this.nodes.delete(f.element),this.nodes.set(c,f),f.element=c,f.hasChildren=d,i?g.collapsed?(f.children.forEach(b=>aK(b,C=>this.nodes.delete(C.element))),f.children.splice(0,f.children.length),f.stale=!0):l.push(f):d&&!g.collapsed&&l.push(f),f}const m=iK({element:c,parent:e,id:h,hasChildren:d,defaultCollapseState:this.getDefaultCollapseState(c)});return r&&r.viewState.focus&&r.viewState.focus.indexOf(h)>-1&&r.focus.push(m),r&&r.viewState.selection&&r.viewState.selection.indexOf(h)>-1&&r.selection.push(m),(r&&r.viewState.expanded&&r.viewState.expanded.indexOf(h)>-1||d&&m.defaultCollapseState===Hu.PreserveOrExpanded)&&l.push(m),m});for(const c of s.values())aK(c,d=>this.nodes.delete(d.element));for(const c of u)this.nodes.set(c.element,c);return e.children.splice(0,e.children.length,...u),e!==this.root&&this.autoExpandSingleChildren&&u.length===1&&l.length===0&&(u[0].forceExpanded=!0,l.push(u[0])),l}render(e,t,i){const r=e.children.map(s=>this.asTreeElement(s,t)),o=i&&{...i,diffIdentityProvider:i.diffIdentityProvider&&{getId(s){return i.diffIdentityProvider.getId(s.element)}}};this.tree.setChildren(e===this.root?null:e,r,o),e!==this.root&&this.tree.setCollapsible(e,e.hasChildren),this._onDidRender.fire()}asTreeElement(e,t){if(e.stale)return{element:e,collapsible:e.hasChildren,collapsed:!0};let i;return t&&t.viewState.expanded&&e.id&&t.viewState.expanded.indexOf(e.id)>-1?i=!1:e.forceExpanded?(i=!1,e.forceExpanded=!1):i=e.defaultCollapseState,{element:e,children:e.hasChildren?qn.map(e.children,r=>this.asTreeElement(r,t)):[],collapsible:e.hasChildren,collapsed:i}}processChildren(e){return this.sorter&&(e=[...e].sort(this.sorter.compare.bind(this.sorter))),e}dispose(){this.disposables.dispose(),this.tree.dispose()}}class lK{get element(){return{elements:this.node.element.elements.map(e=>e.element),incompressible:this.node.element.incompressible}}get children(){return this.node.children.map(e=>new lK(e))}get depth(){return this.node.depth}get visibleChildrenCount(){return this.node.visibleChildrenCount}get visibleChildIndex(){return this.node.visibleChildIndex}get collapsible(){return this.node.collapsible}get collapsed(){return this.node.collapsed}get visible(){return this.node.visible}get filterData(){return this.node.filterData}constructor(e){this.node=e}}class eDt{constructor(e,t,i,r){this.renderer=e,this.nodeMapper=t,this.compressibleNodeMapperProvider=i,this.onDidChangeTwistieState=r,this.renderedNodes=new Map,this.disposables=[],this.templateId=e.templateId}renderTemplate(e){return{templateData:this.renderer.renderTemplate(e)}}renderElement(e,t,i,r){this.renderer.renderElement(this.nodeMapper.map(e),t,i.templateData,r)}renderCompressedElements(e,t,i,r){this.renderer.renderCompressedElements(this.compressibleNodeMapperProvider().map(e),t,i.templateData,r)}renderTwistie(e,t){return e.slow?(t.classList.add(...on.asClassNameArray(ct.treeItemLoading)),!0):(t.classList.remove(...on.asClassNameArray(ct.treeItemLoading)),!1)}disposeElement(e,t,i,r){var o,s;(s=(o=this.renderer).disposeElement)===null||s===void 0||s.call(o,this.nodeMapper.map(e),t,i.templateData,r)}disposeCompressedElements(e,t,i,r){var o,s;(s=(o=this.renderer).disposeCompressedElements)===null||s===void 0||s.call(o,this.compressibleNodeMapperProvider().map(e),t,i.templateData,r)}disposeTemplate(e){this.renderer.disposeTemplate(e.templateData)}dispose(){this.renderedNodes.clear(),this.disposables=Mi(this.disposables)}}function tDt(n){const e=n&&ywe(n);return e&&{...e,keyboardNavigationLabelProvider:e.keyboardNavigationLabelProvider&&{...e.keyboardNavigationLabelProvider,getCompressedNodeKeyboardNavigationLabel(t){return n.keyboardNavigationLabelProvider.getCompressedNodeKeyboardNavigationLabel(t.map(i=>i.element))}}}}class nDt extends Iwe{constructor(e,t,i,r,o,s,a={}){super(e,t,i,o,s,a),this.compressionDelegate=r,this.compressibleNodeMapper=new UJ(l=>new lK(l)),this.filter=a.filter}createTree(e,t,i,r,o){const s=new QJ(i),a=r.map(u=>new eDt(u,this.nodeMapper,()=>this.compressibleNodeMapper,this._onDidChangeNodeSlowState.event)),l=tDt(o)||{};return new bwe(e,t,s,a,l)}asTreeElement(e,t){return{incompressible:this.compressionDelegate.isIncompressible(e.element),...super.asTreeElement(e,t)}}updateOptions(e={}){this.tree.updateOptions(e)}render(e,t,i){if(!this.identityProvider)return super.render(e,t);const r=g=>this.identityProvider.getId(g).toString(),o=g=>{const m=new Set;for(const f of g){const b=this.tree.getCompressedTreeNode(f===this.root?null:f);if(b.element)for(const C of b.element.elements)m.add(r(C.element))}return m},s=o(this.tree.getSelection()),a=o(this.tree.getFocus());super.render(e,t,i);const l=this.getSelection();let u=!1;const c=this.getFocus();let d=!1;const h=g=>{const m=g.element;if(m)for(let f=0;f{const i=this.filter.filter(t,1),r=iDt(i);if(r===2)throw new Error("Recursive tree visibility not supported in async data compressed trees");return r===1})),super.processChildren(e)}}function iDt(n){return typeof n=="boolean"?n?1:0:JJ(n)?jD(n.visibility):jD(n)}class rDt extends gwe{constructor(e,t,i,r,o,s={}){super(e,t,i,r,s),this.user=e,this.dataSource=o,this.identityProvider=s.identityProvider}createModel(e,t,i){return new qJ(e,t,i)}}new It("isMac",$n,x("isMac","Whether the operating system is macOS")),new It("isLinux",Ha,x("isLinux","Whether the operating system is Linux"));const RW=new It("isWindows",ya,x("isWindows","Whether the operating system is Windows")),wwe=new It("isWeb",pb,x("isWeb","Whether the platform is a web browser"));new It("isMacNative",$n&&!pb,x("isMacNative","Whether the operating system is macOS on a non-browser platform")),new It("isIOS",Dg,x("isIOS","Whether the operating system is iOS")),new It("isMobile",Ppe,x("isMobile","Whether the platform is a mobile web browser")),new It("isDevelopment",!1,!0),new It("productQualityType","",x("productQualityType","Quality type of VS Code"));const Swe="inputFocus",oDt=new It(Swe,!1,x("inputFocus","Whether keyboard focus is inside an input box"));var ap=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},or=function(n,e){return function(t,i){e(t,i,n)}};const Pc=Un("listService");class sDt{get lastFocusedList(){return this._lastFocusedWidget}constructor(){this.disposables=new je,this.lists=[],this._lastFocusedWidget=void 0,this._hasCreatedStyleController=!1}setLastFocusedList(e){var t,i;e!==this._lastFocusedWidget&&((t=this._lastFocusedWidget)===null||t===void 0||t.getHTMLElement().classList.remove("last-focused"),this._lastFocusedWidget=e,(i=this._lastFocusedWidget)===null||i===void 0||i.getHTMLElement().classList.add("last-focused"))}register(e,t){if(this._hasCreatedStyleController||(this._hasCreatedStyleController=!0,new Fye(Eu(),"").style(g0)),this.lists.some(r=>r.widget===e))throw new Error("Cannot register the same widget multiple times");const i={widget:e,extraContextKeys:t};return this.lists.push(i),EF(e.getHTMLElement())&&this.setLastFocusedList(e),hd(e.onDidFocus(()=>this.setLastFocusedList(e)),en(()=>this.lists.splice(this.lists.indexOf(i),1)),e.onDidDispose(()=>{this.lists=this.lists.filter(r=>r!==i),this._lastFocusedWidget===e&&this.setLastFocusedList(void 0)}))}dispose(){this.disposables.dispose()}}const qD=new It("listScrollAtBoundary","none");Be.or(qD.isEqualTo("top"),qD.isEqualTo("both")),Be.or(qD.isEqualTo("bottom"),qD.isEqualTo("both"));const xwe=new It("listFocus",!0),Lwe=new It("treestickyScrollFocused",!1),GW=new It("listSupportsMultiselect",!0),Fwe=Be.and(xwe,Be.not(Swe),Lwe.negate()),uK=new It("listHasSelectionOrFocus",!1),cK=new It("listDoubleSelection",!1),dK=new It("listMultiSelection",!1),VW=new It("listSelectionNavigation",!1),aDt=new It("listSupportsFind",!0),hK=new It("treeElementCanCollapse",!1),lDt=new It("treeElementHasParent",!1),gK=new It("treeElementCanExpand",!1),uDt=new It("treeElementHasChild",!1),cDt=new It("treeFindOpen",!1),_we="listTypeNavigationMode",Dwe="listAutomaticKeyboardNavigation";function XW(n,e){const t=n.createScoped(e.getHTMLElement());return xwe.bindTo(t),t}function PW(n,e){const t=qD.bindTo(n),i=()=>{const r=e.scrollTop===0,o=e.scrollHeight-e.renderHeight-e.scrollTop<1;r&&o?t.set("both"):r?t.set("top"):o?t.set("bottom"):t.set("none")};return i(),e.onDidScroll(i)}const Nv="workbench.list.multiSelectModifier",OW="workbench.list.openMode",Oc="workbench.list.horizontalScrolling",mK="workbench.list.defaultFindMode",fK="workbench.list.typeNavigationMode",BW="workbench.list.keyboardNavigation",Rh="workbench.list.scrollByPage",pK="workbench.list.defaultFindMatchType",eA="workbench.tree.indent",zW="workbench.tree.renderIndentGuides",Gh="workbench.list.smoothScrolling",vm="workbench.list.mouseWheelScrollSensitivity",ym="workbench.list.fastScrollSensitivity",YW="workbench.tree.expandMode",HW="workbench.tree.enableStickyScroll",UW="workbench.tree.stickyScrollMaxItemCount";function Im(n){return n.getValue(Nv)==="alt"}class dDt extends De{constructor(e){super(),this.configurationService=e,this.useAltAsMultipleSelectionModifier=Im(e),this.registerListeners()}registerListeners(){this._register(this.configurationService.onDidChangeConfiguration(e=>{e.affectsConfiguration(Nv)&&(this.useAltAsMultipleSelectionModifier=Im(this.configurationService))}))}isSelectionSingleChangeEvent(e){return this.useAltAsMultipleSelectionModifier?e.browserEvent.altKey:wye(e)}isSelectionRangeChangeEvent(e){return Sye(e)}}function JW(n,e){var t;const i=n.get(Xn),r=n.get(Pi),o=new je;return[{...e,keyboardNavigationDelegate:{mightProducePrintableCharacter(a){return r.mightProducePrintableCharacter(a)}},smoothScrolling:!!i.getValue(Gh),mouseWheelScrollSensitivity:i.getValue(vm),fastScrollSensitivity:i.getValue(ym),multipleSelectionController:(t=e.multipleSelectionController)!==null&&t!==void 0?t:o.add(new dDt(i)),keyboardNavigationEventFilter:mDt(r),scrollByPage:!!i.getValue(Rh)},o]}let bK=class extends zu{constructor(e,t,i,r,o,s,a,l,u){const c=typeof o.horizontalScrolling<"u"?o.horizontalScrolling:!!l.getValue(Oc),[d,h]=u.invokeFunction(JW,o);super(e,t,i,r,{keyboardSupport:!1,...d,horizontalScrolling:c}),this.disposables.add(h),this.contextKeyService=XW(s,this),this.disposables.add(PW(this.contextKeyService,this)),this.listSupportsMultiSelect=GW.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(o.multipleSelectionSupport!==!1),VW.bindTo(this.contextKeyService).set(!!o.selectionNavigation),this.listHasSelectionOrFocus=uK.bindTo(this.contextKeyService),this.listDoubleSelection=cK.bindTo(this.contextKeyService),this.listMultiSelection=dK.bindTo(this.contextKeyService),this.horizontalScrolling=o.horizontalScrolling,this._useAltAsMultipleSelectionModifier=Im(l),this.disposables.add(this.contextKeyService),this.disposables.add(a.register(this)),this.updateStyles(o.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const m=this.getSelection(),f=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(m.length>0||f.length>0),this.listMultiSelection.set(m.length>1),this.listDoubleSelection.set(m.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const m=this.getSelection(),f=this.getFocus();this.listHasSelectionOrFocus.set(m.length>0||f.length>0)})),this.disposables.add(l.onDidChangeConfiguration(m=>{m.affectsConfiguration(Nv)&&(this._useAltAsMultipleSelectionModifier=Im(l));let f={};if(m.affectsConfiguration(Oc)&&this.horizontalScrolling===void 0){const b=!!l.getValue(Oc);f={...f,horizontalScrolling:b}}if(m.affectsConfiguration(Rh)){const b=!!l.getValue(Rh);f={...f,scrollByPage:b}}if(m.affectsConfiguration(Gh)){const b=!!l.getValue(Gh);f={...f,smoothScrolling:b}}if(m.affectsConfiguration(vm)){const b=l.getValue(vm);f={...f,mouseWheelScrollSensitivity:b}}if(m.affectsConfiguration(ym)){const b=l.getValue(ym);f={...f,fastScrollSensitivity:b}}Object.keys(f).length>0&&this.updateOptions(f)})),this.navigator=new kwe(this,{configurationService:l,...o}),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles!==void 0&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?bw(e):g0)}};bK=ap([or(5,ln),or(6,Pc),or(7,Xn),or(8,tn)],bK);let Awe=class extends m_t{constructor(e,t,i,r,o,s,a,l,u){const c=typeof o.horizontalScrolling<"u"?o.horizontalScrolling:!!l.getValue(Oc),[d,h]=u.invokeFunction(JW,o);super(e,t,i,r,{keyboardSupport:!1,...d,horizontalScrolling:c}),this.disposables=new je,this.disposables.add(h),this.contextKeyService=XW(s,this),this.disposables.add(PW(this.contextKeyService,this.widget)),this.horizontalScrolling=o.horizontalScrolling,this.listSupportsMultiSelect=GW.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(o.multipleSelectionSupport!==!1),VW.bindTo(this.contextKeyService).set(!!o.selectionNavigation),this._useAltAsMultipleSelectionModifier=Im(l),this.disposables.add(this.contextKeyService),this.disposables.add(a.register(this)),this.updateStyles(o.overrideStyles),this.disposables.add(l.onDidChangeConfiguration(m=>{m.affectsConfiguration(Nv)&&(this._useAltAsMultipleSelectionModifier=Im(l));let f={};if(m.affectsConfiguration(Oc)&&this.horizontalScrolling===void 0){const b=!!l.getValue(Oc);f={...f,horizontalScrolling:b}}if(m.affectsConfiguration(Rh)){const b=!!l.getValue(Rh);f={...f,scrollByPage:b}}if(m.affectsConfiguration(Gh)){const b=!!l.getValue(Gh);f={...f,smoothScrolling:b}}if(m.affectsConfiguration(vm)){const b=l.getValue(vm);f={...f,mouseWheelScrollSensitivity:b}}if(m.affectsConfiguration(ym)){const b=l.getValue(ym);f={...f,fastScrollSensitivity:b}}Object.keys(f).length>0&&this.updateOptions(f)})),this.navigator=new kwe(this,{configurationService:l,...o}),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles!==void 0&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?bw(e):g0)}dispose(){this.disposables.dispose(),super.dispose()}};Awe=ap([or(5,ln),or(6,Pc),or(7,Xn),or(8,tn)],Awe);let Nwe=class extends ZW{constructor(e,t,i,r,o,s,a,l,u,c){const d=typeof s.horizontalScrolling<"u"?s.horizontalScrolling:!!u.getValue(Oc),[h,g]=c.invokeFunction(JW,s);super(e,t,i,r,o,{keyboardSupport:!1,...h,horizontalScrolling:d}),this.disposables.add(g),this.contextKeyService=XW(a,this),this.disposables.add(PW(this.contextKeyService,this)),this.listSupportsMultiSelect=GW.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(s.multipleSelectionSupport!==!1),VW.bindTo(this.contextKeyService).set(!!s.selectionNavigation),this.listHasSelectionOrFocus=uK.bindTo(this.contextKeyService),this.listDoubleSelection=cK.bindTo(this.contextKeyService),this.listMultiSelection=dK.bindTo(this.contextKeyService),this.horizontalScrolling=s.horizontalScrolling,this._useAltAsMultipleSelectionModifier=Im(u),this.disposables.add(this.contextKeyService),this.disposables.add(l.register(this)),this.updateStyles(s.overrideStyles),this.disposables.add(this.onDidChangeSelection(()=>{const f=this.getSelection(),b=this.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.listHasSelectionOrFocus.set(f.length>0||b.length>0),this.listMultiSelection.set(f.length>1),this.listDoubleSelection.set(f.length===2)})})),this.disposables.add(this.onDidChangeFocus(()=>{const f=this.getSelection(),b=this.getFocus();this.listHasSelectionOrFocus.set(f.length>0||b.length>0)})),this.disposables.add(u.onDidChangeConfiguration(f=>{f.affectsConfiguration(Nv)&&(this._useAltAsMultipleSelectionModifier=Im(u));let b={};if(f.affectsConfiguration(Oc)&&this.horizontalScrolling===void 0){const C=!!u.getValue(Oc);b={...b,horizontalScrolling:C}}if(f.affectsConfiguration(Rh)){const C=!!u.getValue(Rh);b={...b,scrollByPage:C}}if(f.affectsConfiguration(Gh)){const C=!!u.getValue(Gh);b={...b,smoothScrolling:C}}if(f.affectsConfiguration(vm)){const C=u.getValue(vm);b={...b,mouseWheelScrollSensitivity:C}}if(f.affectsConfiguration(ym)){const C=u.getValue(ym);b={...b,fastScrollSensitivity:C}}Object.keys(b).length>0&&this.updateOptions(b)})),this.navigator=new hDt(this,{configurationService:u,...s}),this.disposables.add(this.navigator)}updateOptions(e){super.updateOptions(e),e.overrideStyles!==void 0&&this.updateStyles(e.overrideStyles),e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyles(e){this.style(e?bw(e):g0)}dispose(){this.disposables.dispose(),super.dispose()}};Nwe=ap([or(6,ln),or(7,Pc),or(8,Xn),or(9,tn)],Nwe);class CK extends De{constructor(e,t){var i;super(),this.widget=e,this._onDidOpen=this._register(new be),this.onDidOpen=this._onDidOpen.event,this._register(ft.filter(this.widget.onDidChangeSelection,r=>HY(r.browserEvent))(r=>this.onSelectionFromKeyboard(r))),this._register(this.widget.onPointer(r=>this.onPointer(r.element,r.browserEvent))),this._register(this.widget.onMouseDblClick(r=>this.onMouseDblClick(r.element,r.browserEvent))),typeof(t==null?void 0:t.openOnSingleClick)!="boolean"&&(t!=null&&t.configurationService)?(this.openOnSingleClick=(t==null?void 0:t.configurationService.getValue(OW))!=="doubleClick",this._register(t==null?void 0:t.configurationService.onDidChangeConfiguration(r=>{r.affectsConfiguration(OW)&&(this.openOnSingleClick=(t==null?void 0:t.configurationService.getValue(OW))!=="doubleClick")}))):this.openOnSingleClick=(i=t==null?void 0:t.openOnSingleClick)!==null&&i!==void 0?i:!0}onSelectionFromKeyboard(e){if(e.elements.length!==1)return;const t=e.browserEvent,i=typeof t.preserveFocus=="boolean"?t.preserveFocus:!0,r=typeof t.pinned=="boolean"?t.pinned:!i;this._open(this.getSelectedElement(),i,r,!1,e.browserEvent)}onPointer(e,t){if(!this.openOnSingleClick||t.detail===2)return;const r=t.button===1,o=!0,s=r,a=t.ctrlKey||t.metaKey||t.altKey;this._open(e,o,s,a,t)}onMouseDblClick(e,t){if(!t)return;const i=t.target;if(i.classList.contains("monaco-tl-twistie")||i.classList.contains("monaco-icon-label")&&i.classList.contains("folder-icon")&&t.offsetX<16)return;const o=!1,s=!0,a=t.ctrlKey||t.metaKey||t.altKey;this._open(e,o,s,a,t)}_open(e,t,i,r,o){e&&this._onDidOpen.fire({editorOptions:{preserveFocus:t,pinned:i,revealIfVisible:!0},sideBySide:r,element:e,browserEvent:o})}}class kwe extends CK{constructor(e,t){super(e,t),this.widget=e}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class hDt extends CK{constructor(e,t){super(e,t)}getSelectedElement(){return this.widget.getSelectedElements()[0]}}class gDt extends CK{constructor(e,t){super(e,t)}getSelectedElement(){var e;return(e=this.widget.getSelection()[0])!==null&&e!==void 0?e:void 0}}function mDt(n){let e=!1;return t=>{if(t.toKeyCodeChord().isModifierKey())return!1;if(e)return e=!1,!1;const i=n.softDispatch(t,t.target);return i.kind===1?(e=!0,!1):(e=!1,i.kind===0)}}let Mwe=class extends nK{constructor(e,t,i,r,o,s,a,l,u){const{options:c,getTypeNavigationMode:d,disposable:h}=s.invokeFunction(tA,o);super(e,t,i,r,c),this.disposables.add(h),this.internals=new kv(this,o,d,o.overrideStyles,a,l,u),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};Mwe=ap([or(5,tn),or(6,ln),or(7,Pc),or(8,Xn)],Mwe);let Zwe=class extends bwe{constructor(e,t,i,r,o,s,a,l,u){const{options:c,getTypeNavigationMode:d,disposable:h}=s.invokeFunction(tA,o);super(e,t,i,r,c),this.disposables.add(h),this.internals=new kv(this,o,d,o.overrideStyles,a,l,u),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};Zwe=ap([or(5,tn),or(6,ln),or(7,Pc),or(8,Xn)],Zwe);let Twe=class extends rDt{constructor(e,t,i,r,o,s,a,l,u,c){const{options:d,getTypeNavigationMode:h,disposable:g}=a.invokeFunction(tA,s);super(e,t,i,r,o,d),this.disposables.add(g),this.internals=new kv(this,s,h,s.overrideStyles,l,u,c),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles!==void 0&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};Twe=ap([or(6,tn),or(7,ln),or(8,Pc),or(9,Xn)],Twe);let vK=class extends Iwe{get onDidOpen(){return this.internals.onDidOpen}constructor(e,t,i,r,o,s,a,l,u,c){const{options:d,getTypeNavigationMode:h,disposable:g}=a.invokeFunction(tA,s);super(e,t,i,r,o,d),this.disposables.add(g),this.internals=new kv(this,s,h,s.overrideStyles,l,u,c),this.disposables.add(this.internals)}updateOptions(e={}){super.updateOptions(e),e.overrideStyles&&this.internals.updateStyleOverrides(e.overrideStyles),this.internals.updateOptions(e)}};vK=ap([or(6,tn),or(7,ln),or(8,Pc),or(9,Xn)],vK);let Ewe=class extends nDt{constructor(e,t,i,r,o,s,a,l,u,c,d){const{options:h,getTypeNavigationMode:g,disposable:m}=l.invokeFunction(tA,a);super(e,t,i,r,o,s,h),this.disposables.add(m),this.internals=new kv(this,a,g,a.overrideStyles,u,c,d),this.disposables.add(this.internals)}updateOptions(e){super.updateOptions(e),this.internals.updateOptions(e)}};Ewe=ap([or(7,tn),or(8,ln),or(9,Pc),or(10,Xn)],Ewe);function Wwe(n){const e=n.getValue(mK);if(e==="highlight")return sp.Highlight;if(e==="filter")return sp.Filter;const t=n.getValue(BW);if(t==="simple"||t==="highlight")return sp.Highlight;if(t==="filter")return sp.Filter}function Rwe(n){const e=n.getValue(pK);if(e==="fuzzy")return Av.Fuzzy;if(e==="contiguous")return Av.Contiguous}function tA(n,e){var t;const i=n.get(Xn),r=n.get(hm),o=n.get(ln),s=n.get(tn),a=()=>{const g=o.getContextKeyValue(_we);if(g==="automatic")return um.Automatic;if(g==="trigger"||o.getContextKeyValue(Dwe)===!1)return um.Trigger;const f=i.getValue(fK);if(f==="automatic")return um.Automatic;if(f==="trigger")return um.Trigger},l=e.horizontalScrolling!==void 0?e.horizontalScrolling:!!i.getValue(Oc),[u,c]=s.invokeFunction(JW,e),d=e.paddingBottom,h=e.renderIndentGuides!==void 0?e.renderIndentGuides:i.getValue(zW);return{getTypeNavigationMode:a,disposable:c,options:{keyboardSupport:!1,...u,indent:typeof i.getValue(eA)=="number"?i.getValue(eA):void 0,renderIndentGuides:h,smoothScrolling:!!i.getValue(Gh),defaultFindMode:Wwe(i),defaultFindMatchType:Rwe(i),horizontalScrolling:l,scrollByPage:!!i.getValue(Rh),paddingBottom:d,hideTwistiesOfChildlessElements:e.hideTwistiesOfChildlessElements,expandOnlyOnTwistieClick:(t=e.expandOnlyOnTwistieClick)!==null&&t!==void 0?t:i.getValue(YW)==="doubleClick",contextViewProvider:r,findWidgetStyles:FLt,enableStickyScroll:!!i.getValue(HW),stickyScrollMaxItemCount:Number(i.getValue(UW))}}}let kv=class{get onDidOpen(){return this.navigator.onDidOpen}constructor(e,t,i,r,o,s,a){var l;this.tree=e,this.disposables=[],this.contextKeyService=XW(o,e),this.disposables.push(PW(this.contextKeyService,e)),this.listSupportsMultiSelect=GW.bindTo(this.contextKeyService),this.listSupportsMultiSelect.set(t.multipleSelectionSupport!==!1),VW.bindTo(this.contextKeyService).set(!!t.selectionNavigation),this.listSupportFindWidget=aDt.bindTo(this.contextKeyService),this.listSupportFindWidget.set((l=t.findWidgetEnabled)!==null&&l!==void 0?l:!0),this.hasSelectionOrFocus=uK.bindTo(this.contextKeyService),this.hasDoubleSelection=cK.bindTo(this.contextKeyService),this.hasMultiSelection=dK.bindTo(this.contextKeyService),this.treeElementCanCollapse=hK.bindTo(this.contextKeyService),this.treeElementHasParent=lDt.bindTo(this.contextKeyService),this.treeElementCanExpand=gK.bindTo(this.contextKeyService),this.treeElementHasChild=uDt.bindTo(this.contextKeyService),this.treeFindOpen=cDt.bindTo(this.contextKeyService),this.treeStickyScrollFocused=Lwe.bindTo(this.contextKeyService),this._useAltAsMultipleSelectionModifier=Im(a),this.updateStyleOverrides(r);const c=()=>{const h=e.getFocus()[0];if(!h)return;const g=e.getNode(h);this.treeElementCanCollapse.set(g.collapsible&&!g.collapsed),this.treeElementHasParent.set(!!e.getParentElement(h)),this.treeElementCanExpand.set(g.collapsible&&g.collapsed),this.treeElementHasChild.set(!!e.getFirstElementChild(h))},d=new Set;d.add(_we),d.add(Dwe),this.disposables.push(this.contextKeyService,s.register(e),e.onDidChangeSelection(()=>{const h=e.getSelection(),g=e.getFocus();this.contextKeyService.bufferChangeEvents(()=>{this.hasSelectionOrFocus.set(h.length>0||g.length>0),this.hasMultiSelection.set(h.length>1),this.hasDoubleSelection.set(h.length===2)})}),e.onDidChangeFocus(()=>{const h=e.getSelection(),g=e.getFocus();this.hasSelectionOrFocus.set(h.length>0||g.length>0),c()}),e.onDidChangeCollapseState(c),e.onDidChangeModel(c),e.onDidChangeFindOpenState(h=>this.treeFindOpen.set(h)),e.onDidChangeStickyScrollFocused(h=>this.treeStickyScrollFocused.set(h)),a.onDidChangeConfiguration(h=>{let g={};if(h.affectsConfiguration(Nv)&&(this._useAltAsMultipleSelectionModifier=Im(a)),h.affectsConfiguration(eA)){const m=a.getValue(eA);g={...g,indent:m}}if(h.affectsConfiguration(zW)&&t.renderIndentGuides===void 0){const m=a.getValue(zW);g={...g,renderIndentGuides:m}}if(h.affectsConfiguration(Gh)){const m=!!a.getValue(Gh);g={...g,smoothScrolling:m}}if(h.affectsConfiguration(mK)||h.affectsConfiguration(BW)){const m=Wwe(a);g={...g,defaultFindMode:m}}if(h.affectsConfiguration(fK)||h.affectsConfiguration(BW)){const m=i();g={...g,typeNavigationMode:m}}if(h.affectsConfiguration(pK)){const m=Rwe(a);g={...g,defaultFindMatchType:m}}if(h.affectsConfiguration(Oc)&&t.horizontalScrolling===void 0){const m=!!a.getValue(Oc);g={...g,horizontalScrolling:m}}if(h.affectsConfiguration(Rh)){const m=!!a.getValue(Rh);g={...g,scrollByPage:m}}if(h.affectsConfiguration(YW)&&t.expandOnlyOnTwistieClick===void 0&&(g={...g,expandOnlyOnTwistieClick:a.getValue(YW)==="doubleClick"}),h.affectsConfiguration(HW)){const m=a.getValue(HW);g={...g,enableStickyScroll:m}}if(h.affectsConfiguration(UW)){const m=Math.max(1,a.getValue(UW));g={...g,stickyScrollMaxItemCount:m}}if(h.affectsConfiguration(vm)){const m=a.getValue(vm);g={...g,mouseWheelScrollSensitivity:m}}if(h.affectsConfiguration(ym)){const m=a.getValue(ym);g={...g,fastScrollSensitivity:m}}Object.keys(g).length>0&&e.updateOptions(g)}),this.contextKeyService.onDidChangeContext(h=>{h.affectsSome(d)&&e.updateOptions({typeNavigationMode:i()})})),this.navigator=new gDt(e,{configurationService:a,...t}),this.disposables.push(this.navigator)}updateOptions(e){e.multipleSelectionSupport!==void 0&&this.listSupportsMultiSelect.set(!!e.multipleSelectionSupport)}updateStyleOverrides(e){this.tree.style(e?bw(e):g0)}dispose(){this.disposables=Mi(this.disposables)}};kv=ap([or(4,ln),or(5,Pc),or(6,Xn)],kv),xo.as(Ih.Configuration).registerConfiguration({id:"workbench",order:7,title:x("workbenchConfigurationTitle","Workbench"),type:"object",properties:{[Nv]:{type:"string",enum:["ctrlCmd","alt"],markdownEnumDescriptions:[x("multiSelectModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),x("multiSelectModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],default:"ctrlCmd",description:x({key:"multiSelectModifier",comment:["- `ctrlCmd` refers to a value the setting can take and should not be localized.","- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized."]},"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.")},[OW]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:x({key:"openModeModifier",comment:["`singleClick` and `doubleClick` refers to a value the setting can take and should not be localized."]},"Controls how to open items in trees and lists using the mouse (if supported). Note that some trees and lists might choose to ignore this setting if it is not applicable.")},[Oc]:{type:"boolean",default:!1,description:x("horizontalScrolling setting","Controls whether lists and trees support horizontal scrolling in the workbench. Warning: turning on this setting has a performance implication.")},[Rh]:{type:"boolean",default:!1,description:x("list.scrollByPage","Controls whether clicks in the scrollbar scroll page by page.")},[eA]:{type:"number",default:8,minimum:4,maximum:40,description:x("tree indent setting","Controls tree indentation in pixels.")},[zW]:{type:"string",enum:["none","onHover","always"],default:"onHover",description:x("render tree indent guides","Controls whether the tree should render indent guides.")},[Gh]:{type:"boolean",default:!1,description:x("list smoothScrolling setting","Controls whether lists and trees have smooth scrolling.")},[vm]:{type:"number",default:1,markdownDescription:x("Mouse Wheel Scroll Sensitivity","A multiplier to be used on the `deltaX` and `deltaY` of mouse wheel scroll events.")},[ym]:{type:"number",default:5,markdownDescription:x("Fast Scroll Sensitivity","Scrolling speed multiplier when pressing `Alt`.")},[mK]:{type:"string",enum:["highlight","filter"],enumDescriptions:[x("defaultFindModeSettingKey.highlight","Highlight elements when searching. Further up and down navigation will traverse only the highlighted elements."),x("defaultFindModeSettingKey.filter","Filter elements when searching.")],default:"highlight",description:x("defaultFindModeSettingKey","Controls the default find mode for lists and trees in the workbench.")},[BW]:{type:"string",enum:["simple","highlight","filter"],enumDescriptions:[x("keyboardNavigationSettingKey.simple","Simple keyboard navigation focuses elements which match the keyboard input. Matching is done only on prefixes."),x("keyboardNavigationSettingKey.highlight","Highlight keyboard navigation highlights elements which match the keyboard input. Further up and down navigation will traverse only the highlighted elements."),x("keyboardNavigationSettingKey.filter","Filter keyboard navigation will filter out and hide all the elements which do not match the keyboard input.")],default:"highlight",description:x("keyboardNavigationSettingKey","Controls the keyboard navigation style for lists and trees in the workbench. Can be simple, highlight and filter."),deprecated:!0,deprecationMessage:x("keyboardNavigationSettingKeyDeprecated","Please use 'workbench.list.defaultFindMode' and 'workbench.list.typeNavigationMode' instead.")},[pK]:{type:"string",enum:["fuzzy","contiguous"],enumDescriptions:[x("defaultFindMatchTypeSettingKey.fuzzy","Use fuzzy matching when searching."),x("defaultFindMatchTypeSettingKey.contiguous","Use contiguous matching when searching.")],default:"fuzzy",description:x("defaultFindMatchTypeSettingKey","Controls the type of matching used when searching lists and trees in the workbench.")},[YW]:{type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:x("expand mode","Controls how tree folders are expanded when clicking the folder names. Note that some trees and lists might choose to ignore this setting if it is not applicable.")},[HW]:{type:"boolean",default:!0,description:x("sticky scroll","Controls whether sticky scrolling is enabled in trees.")},[UW]:{type:"number",minimum:1,default:7,markdownDescription:x("sticky scroll maximum items","Controls the number of sticky elements displayed in the tree when `#workbench.tree.enableStickyScroll#` is enabled.")},[fK]:{type:"string",enum:["automatic","trigger"],default:"automatic",markdownDescription:x("typeNavigationMode2","Controls how type navigation works in lists and trees in the workbench. When set to `trigger`, type navigation begins once the `list.triggerTypeNavigation` command is run.")}}});class w0{constructor(e,t,i,r){this.isProviderFirst=e,this.parent=t,this.link=i,this._rangeCallback=r,this.id=A7.nextId()}get uri(){return this.link.uri}get range(){var e,t;return(t=(e=this._range)!==null&&e!==void 0?e:this.link.targetSelectionRange)!==null&&t!==void 0?t:this.link.range}set range(e){this._range=e,this._rangeCallback(this)}get ariaMessage(){var e;const t=(e=this.parent.getPreview(this))===null||e===void 0?void 0:e.preview(this.range);return t?x({key:"aria.oneReference.preview",comment:["Placeholders are: 0: filename, 1:line number, 2: column number, 3: preview snippet of source code"]},"{0} in {1} on line {2} at column {3}",t.value,Ec(this.uri),this.range.startLineNumber,this.range.startColumn):x("aria.oneReference","in {0} on line {1} at column {2}",Ec(this.uri),this.range.startLineNumber,this.range.startColumn)}}class fDt{constructor(e){this._modelReference=e}dispose(){this._modelReference.dispose()}preview(e,t=8){const i=this._modelReference.object.textEditorModel;if(!i)return;const{startLineNumber:r,startColumn:o,endLineNumber:s,endColumn:a}=e,l=i.getWordUntilPosition({lineNumber:r,column:o-t}),u=new K(r,l.startColumn,r,o),c=new K(s,a,s,1073741824),d=i.getValueInRange(u).replace(/^\s+/,""),h=i.getValueInRange(e),g=i.getValueInRange(c).replace(/\s+$/,"");return{value:d+h+g,highlight:{start:d.length,end:d.length+h.length}}}}class nA{constructor(e,t){this.parent=e,this.uri=t,this.children=[],this._previews=new no}dispose(){Mi(this._previews.values()),this._previews.clear()}getPreview(e){return this._previews.get(e.uri)}get ariaMessage(){const e=this.children.length;return e===1?x("aria.fileReferences.1","1 symbol in {0}, full path {1}",Ec(this.uri),this.uri.fsPath):x("aria.fileReferences.N","{0} symbols in {1}, full path {2}",e,Ec(this.uri),this.uri.fsPath)}async resolve(e){if(this._previews.size!==0)return this;for(const t of this.children)if(!this._previews.has(t.uri))try{const i=await e.createModelReference(t.uri);this._previews.set(t.uri,new fDt(i))}catch(i){fn(i)}return this}}class mu{constructor(e,t){this.groups=[],this.references=[],this._onDidChangeReferenceRange=new be,this.onDidChangeReferenceRange=this._onDidChangeReferenceRange.event,this._links=e,this._title=t;const[i]=e;e.sort(mu._compareReferences);let r;for(const o of e)if((!r||!hr.isEqual(r.uri,o.uri,!0))&&(r=new nA(this,o.uri),this.groups.push(r)),r.children.length===0||mu._compareReferences(o,r.children[r.children.length-1])!==0){const s=new w0(i===o,r,o,a=>this._onDidChangeReferenceRange.fire(a));this.references.push(s),r.children.push(s)}}dispose(){Mi(this.groups),this._onDidChangeReferenceRange.dispose(),this.groups.length=0}clone(){return new mu(this._links,this._title)}get title(){return this._title}get isEmpty(){return this.groups.length===0}get ariaMessage(){return this.isEmpty?x("aria.result.0","No results found"):this.references.length===1?x("aria.result.1","Found 1 symbol in {0}",this.references[0].uri.fsPath):this.groups.length===1?x("aria.result.n1","Found {0} symbols in {1}",this.references.length,this.groups[0].uri.fsPath):x("aria.result.nm","Found {0} symbols in {1} files",this.references.length,this.groups.length)}nextOrPreviousReference(e,t){const{parent:i}=e;let r=i.children.indexOf(e);const o=i.children.length,s=i.parent.groups.length;return s===1||t&&r+10?(t?r=(r+1)%o:r=(r+o-1)%o,i.children[r]):(r=i.parent.groups.indexOf(i),t?(r=(r+1)%s,i.parent.groups[r].children[0]):(r=(r+s-1)%s,i.parent.groups[r].children[i.parent.groups[r].children.length-1]))}nearestReference(e,t){const i=this.references.map((r,o)=>({idx:o,prefixLen:yb(r.uri.toString(),e.toString()),offsetDist:Math.abs(r.range.startLineNumber-t.lineNumber)*100+Math.abs(r.range.startColumn-t.column)})).sort((r,o)=>r.prefixLen>o.prefixLen?-1:r.prefixLeno.offsetDist?1:0)[0];if(i)return this.references[i.idx]}referenceAt(e,t){for(const i of this.references)if(i.uri.toString()===e.toString()&&K.containsPosition(i.range,t))return i}firstReference(){for(const e of this.references)if(e.isProviderFirst)return e;return this.references[0]}static _compareReferences(e,t){return hr.compare(e.uri,t.uri)||K.compareRangesUsingStarts(e.range,t.range)}}class yK{constructor(e,t,i){this.options=t,this.styles=i,this.count=0,this.element=Je(e,vt(".monaco-count-badge")),this.countFormat=this.options.countFormat||"{0}",this.titleFormat=this.options.titleFormat||"",this.setCount(this.options.count||0)}setCount(e){this.count=e,this.render()}setTitleFormat(e){this.titleFormat=e,this.render()}render(){var e,t;this.element.textContent=UI(this.countFormat,this.count),this.element.title=UI(this.titleFormat,this.count),this.element.style.backgroundColor=(e=this.styles.badgeBackground)!==null&&e!==void 0?e:"",this.element.style.color=(t=this.styles.badgeForeground)!==null&&t!==void 0?t:"",this.styles.badgeBorder&&(this.element.style.border=`1px solid ${this.styles.badgeBorder}`)}}class S0{constructor(e,t){var i;this.text="",this.title="",this.highlights=[],this.didEverRender=!1,this.supportIcons=(i=t==null?void 0:t.supportIcons)!==null&&i!==void 0?i:!1,this.domNode=Je(e,vt("span.monaco-highlighted-label"))}get element(){return this.domNode}set(e,t=[],i="",r){e||(e=""),r&&(e=S0.escapeNewLines(e,t)),!(this.didEverRender&&this.text===e&&this.title===i&&Gu(this.highlights,t))&&(this.text=e,this.title=i,this.highlights=t,this.render())}render(){const e=[];let t=0;for(const i of this.highlights){if(i.end===i.start)continue;if(t{r=o===`\r +`?-1:0,s+=i;for(const a of t)a.end<=s||(a.start>=s&&(a.start+=r),a.end>=s&&(a.end+=r));return i+=r,"⏎"})}}class iA{constructor(e){this._element=e}get element(){return this._element}set textContent(e){this.disposed||e===this._textContent||(this._textContent=e,this._element.textContent=e)}set className(e){this.disposed||e===this._className||(this._className=e,this._element.className=e)}set empty(e){this.disposed||e===this._empty||(this._empty=e,this._element.style.marginLeft=e?"0":"")}dispose(){this.disposed=!0}}class KW extends De{constructor(e,t){var i;super(),this.customHovers=new Map,this.creationOptions=t,this.domNode=this._register(new iA(Je(e,vt(".monaco-icon-label")))),this.labelContainer=Je(this.domNode.element,vt(".monaco-icon-label-container")),this.nameContainer=Je(this.labelContainer,vt("span.monaco-icon-name-container")),t!=null&&t.supportHighlights||t!=null&&t.supportIcons?this.nameNode=new CDt(this.nameContainer,!!t.supportIcons):this.nameNode=new pDt(this.nameContainer),this.hoverDelegate=(i=t==null?void 0:t.hoverDelegate)!==null&&i!==void 0?i:Kf("mouse")}get element(){return this.domNode.element}setLabel(e,t,i){var r;const o=["monaco-icon-label"],s=["monaco-icon-label-container"];let a="";if(i&&(i.extraClasses&&o.push(...i.extraClasses),i.italic&&o.push("italic"),i.strikethrough&&o.push("strikethrough"),i.disabledCommand&&s.push("disabled"),i.title&&(typeof i.title=="string"?a+=i.title:a+=e)),this.domNode.className=o.join(" "),this.domNode.element.setAttribute("aria-label",a),this.labelContainer.className=s.join(" "),this.setupHover(i!=null&&i.descriptionTitle?this.labelContainer:this.element,i==null?void 0:i.title),this.nameNode.setLabel(e,i),t||this.descriptionNode){const l=this.getOrCreateDescriptionNode();l instanceof S0?(l.set(t||"",i?i.descriptionMatches:void 0,void 0,i==null?void 0:i.labelEscapeNewLines),this.setupHover(l.element,i==null?void 0:i.descriptionTitle)):(l.textContent=t&&(i!=null&&i.labelEscapeNewLines)?S0.escapeNewLines(t,[]):t||"",this.setupHover(l.element,(i==null?void 0:i.descriptionTitle)||""),l.empty=!t)}if(i!=null&&i.suffix||this.suffixNode){const l=this.getOrCreateSuffixNode();l.textContent=(r=i==null?void 0:i.suffix)!==null&&r!==void 0?r:""}}setupHover(e,t){const i=this.customHovers.get(e);if(i&&(i.dispose(),this.customHovers.delete(e)),!t){e.removeAttribute("title");return}if(this.hoverDelegate.showNativeHover)j2t(e,t);else{const r=dv(this.hoverDelegate,e,t);r&&this.customHovers.set(e,r)}}dispose(){super.dispose();for(const e of this.customHovers.values())e.dispose();this.customHovers.clear()}getOrCreateSuffixNode(){if(!this.suffixNode){const e=this._register(new iA(Ygt(this.nameContainer,vt("span.monaco-icon-suffix-container"))));this.suffixNode=this._register(new iA(Je(e.element,vt("span.label-suffix"))))}return this.suffixNode}getOrCreateDescriptionNode(){var e;if(!this.descriptionNode){const t=this._register(new iA(Je(this.labelContainer,vt("span.monaco-icon-description-container"))));!((e=this.creationOptions)===null||e===void 0)&&e.supportDescriptionHighlights?this.descriptionNode=new S0(Je(t.element,vt("span.label-description")),{supportIcons:!!this.creationOptions.supportIcons}):this.descriptionNode=this._register(new iA(Je(t.element,vt("span.label-description"))))}return this.descriptionNode}}class pDt{constructor(e){this.container=e,this.label=void 0,this.singleLabel=void 0}setLabel(e,t){if(!(this.label===e&&Gu(this.options,t)))if(this.label=e,this.options=t,typeof e=="string")this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=Je(this.container,vt("a.label-name",{id:t==null?void 0:t.domId}))),this.singleLabel.textContent=e;else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;for(let i=0;i{const o={start:i,end:i+r.length},s=t.map(a=>ma.intersect(o,a)).filter(a=>!ma.isEmpty(a)).map(({start:a,end:l})=>({start:a-i,end:l-i}));return i=o.end+e.length,s})}class CDt{constructor(e,t){this.container=e,this.supportIcons=t,this.label=void 0,this.singleLabel=void 0}setLabel(e,t){if(!(this.label===e&&Gu(this.options,t)))if(this.label=e,this.options=t,typeof e=="string")this.singleLabel||(this.container.innerText="",this.container.classList.remove("multiple"),this.singleLabel=new S0(Je(this.container,vt("a.label-name",{id:t==null?void 0:t.domId})),{supportIcons:this.supportIcons})),this.singleLabel.set(e,t==null?void 0:t.matches,void 0,t==null?void 0:t.labelEscapeNewLines);else{this.container.innerText="",this.container.classList.add("multiple"),this.singleLabel=void 0;const i=(t==null?void 0:t.separator)||"/",r=bDt(e,i,t==null?void 0:t.matches);for(let o=0;o=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},QW=function(n,e){return function(t,i){e(t,i,n)}},IK;let wK=class{constructor(e){this._resolverService=e}hasChildren(e){return e instanceof mu||e instanceof nA}getChildren(e){if(e instanceof mu)return e.groups;if(e instanceof nA)return e.resolve(this._resolverService).then(t=>t.children);throw new Error("bad tree")}};wK=jW([QW(0,Fl)],wK);class vDt{getHeight(){return 23}getTemplateId(e){return e instanceof nA?rA.id:oA.id}}let SK=class{constructor(e){this._keybindingService=e}getKeyboardNavigationLabel(e){var t;if(e instanceof w0){const i=(t=e.parent.getPreview(e))===null||t===void 0?void 0:t.preview(e.range);if(i)return i.value}return Ec(e.uri)}};SK=jW([QW(0,Pi)],SK);class yDt{getId(e){return e instanceof w0?e.id:e.uri}}let xK=class extends De{constructor(e,t){super(),this._labelService=t;const i=document.createElement("div");i.classList.add("reference-file"),this.file=this._register(new KW(i,{supportHighlights:!0})),this.badge=new yK(Je(i,vt(".count")),{},e2e),e.appendChild(i)}set(e,t){const i=oE(e.uri);this.file.setLabel(this._labelService.getUriBasenameLabel(e.uri),this._labelService.getUriLabel(i,{relative:!0}),{title:this._labelService.getUriLabel(e.uri),matches:t});const r=e.children.length;this.badge.setCount(r),r>1?this.badge.setTitleFormat(x("referencesCount","{0} references",r)):this.badge.setTitleFormat(x("referenceCount","{0} reference",r))}};xK=jW([QW(1,_w)],xK);let rA=IK=class{constructor(e){this._instantiationService=e,this.templateId=IK.id}renderTemplate(e){return this._instantiationService.createInstance(xK,e)}renderElement(e,t,i){i.set(e.element,AE(e.filterData))}disposeTemplate(e){e.dispose()}};rA.id="FileReferencesRenderer",rA=IK=jW([QW(0,tn)],rA);class IDt{constructor(e){this.label=new S0(e)}set(e,t){var i;const r=(i=e.parent.getPreview(e))===null||i===void 0?void 0:i.preview(e.range);if(!r||!r.value)this.label.set(`${Ec(e.uri)}:${e.range.startLineNumber+1}:${e.range.startColumn+1}`);else{const{value:o,highlight:s}=r;t&&!Zh.isDefault(t)?(this.label.element.classList.toggle("referenceMatch",!1),this.label.set(o,AE(t))):(this.label.element.classList.toggle("referenceMatch",!0),this.label.set(o,[s]))}}}class oA{constructor(){this.templateId=oA.id}renderTemplate(e){return new IDt(e)}renderElement(e,t,i){i.set(e.element,e.filterData)}disposeTemplate(){}}oA.id="OneReferenceRenderer";class wDt{getWidgetAriaLabel(){return x("treeAriaLabel","References")}getAriaLabel(e){return e.ariaMessage}}var SDt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},lp=function(n,e){return function(t,i){e(t,i,n)}};class $W{constructor(e,t){this._editor=e,this._model=t,this._decorations=new Map,this._decorationIgnoreSet=new Set,this._callOnDispose=new je,this._callOnModelChange=new je,this._callOnDispose.add(this._editor.onDidChangeModel(()=>this._onModelChanged())),this._onModelChanged()}dispose(){this._callOnModelChange.dispose(),this._callOnDispose.dispose(),this.removeDecorations()}_onModelChanged(){this._callOnModelChange.clear();const e=this._editor.getModel();if(e){for(const t of this._model.references)if(t.uri.toString()===e.uri.toString()){this._addDecorations(t.parent);return}}}_addDecorations(e){if(!this._editor.hasModel())return;this._callOnModelChange.add(this._editor.getModel().onDidChangeDecorations(()=>this._onDecorationChanged()));const t=[],i=[];for(let r=0,o=e.children.length;r{const o=r.deltaDecorations([],t);for(let s=0;s{o.equals(9)&&(this._keybindingService.dispatchEvent(o,o.target),o.stopPropagation())},!0)),this._tree=this._instantiationService.createInstance(LDt,"ReferencesWidget",this._treeContainer,new vDt,[this._instantiationService.createInstance(rA),this._instantiationService.createInstance(oA)],this._instantiationService.createInstance(wK),i),this._splitView.addView({onDidChange:ft.None,element:this._previewContainer,minimumSize:200,maximumSize:Number.MAX_VALUE,layout:o=>{this._preview.layout({height:this._dim.height,width:o})}},MW.Distribute),this._splitView.addView({onDidChange:ft.None,element:this._treeContainer,minimumSize:100,maximumSize:Number.MAX_VALUE,layout:o=>{this._treeContainer.style.height=`${this._dim.height}px`,this._treeContainer.style.width=`${o}px`,this._tree.layout(this._dim.height,o)}},MW.Distribute),this._disposables.add(this._splitView.onDidSashChange(()=>{this._dim.width&&(this.layoutData.ratio=this._splitView.getViewSize(0)/this._dim.width)},void 0));const r=(o,s)=>{o instanceof w0&&(s==="show"&&this._revealReference(o,!1),this._onDidSelectReference.fire({element:o,kind:s,source:"tree"}))};this._tree.onDidOpen(o=>{o.sideBySide?r(o.element,"side"):o.editorOptions.pinned?r(o.element,"goto"):r(o.element,"show")}),Ka(this._treeContainer)}_onWidth(e){this._dim&&this._doLayoutBody(this._dim.height,e)}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._dim=new fi(t,e),this.layoutData.heightInLines=this._viewZone?this._viewZone.heightInLines:this.layoutData.heightInLines,this._splitView.layout(t),this._splitView.resizeView(0,t*this.layoutData.ratio)}setSelection(e){return this._revealReference(e,!0).then(()=>{this._model&&(this._tree.setSelection([e]),this._tree.setFocus([e]))})}setModel(e){return this._disposeOnNewModel.clear(),this._model=e,this._model?this._onNewModel():Promise.resolve()}_onNewModel(){return this._model?this._model.isEmpty?(this.setTitle(""),this._messageContainer.innerText=x("noResults","No results"),ru(this._messageContainer),Promise.resolve(void 0)):(Ka(this._messageContainer),this._decorationsManager=new $W(this._preview,this._model),this._disposeOnNewModel.add(this._decorationsManager),this._disposeOnNewModel.add(this._model.onDidChangeReferenceRange(e=>this._tree.rerender(e))),this._disposeOnNewModel.add(this._preview.onMouseDown(e=>{const{event:t,target:i}=e;if(t.detail!==2)return;const r=this._getFocusedReference();r&&this._onDidSelectReference.fire({element:{uri:r.uri,range:i.range},kind:t.ctrlKey||t.metaKey||t.altKey?"side":"open",source:"editor"})})),this.container.classList.add("results-loaded"),ru(this._treeContainer),ru(this._previewContainer),this._splitView.layout(this._dim.width),this.focusOnReferenceTree(),this._tree.setInput(this._model.groups.length===1?this._model.groups[0]:this._model)):Promise.resolve(void 0)}_getFocusedReference(){const[e]=this._tree.getFocus();if(e instanceof w0)return e;if(e instanceof nA&&e.children.length>0)return e.children[0]}async revealReference(e){await this._revealReference(e,!1),this._onDidSelectReference.fire({element:e,kind:"goto",source:"tree"})}async _revealReference(e,t){if(this._revealedReference===e)return;this._revealedReference=e,e.uri.scheme!==xn.inMemory?this.setTitle(Ovt(e.uri),this._uriLabel.getUriLabel(oE(e.uri))):this.setTitle(x("peekView.alternateTitle","References"));const i=this._textModelResolverService.createModelReference(e.uri);this._tree.getInput()===e.parent?this._tree.reveal(e):(t&&this._tree.reveal(e.parent),await this._tree.expand(e.parent),this._tree.reveal(e));const r=await i;if(!this._model){r.dispose();return}Mi(this._previewModelReference);const o=r.object;if(o){const s=this._preview.getModel()===o.textEditorModel?0:1,a=K.lift(e.range).collapseToStart();this._previewModelReference=r,this._preview.setModel(o.textEditorModel),this._preview.setSelection(a),this._preview.revealRangeInCenter(a,s)}else this._preview.setModel(this._previewNotAvailableMessage),r.dispose()}};LK=SDt([lp(3,ts),lp(4,Fl),lp(5,tn),lp(6,ewe),lp(7,_w),lp(8,uE),lp(9,Pi),lp(10,Cr),lp(11,$i)],LK);var FDt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Dw=function(n,e){return function(t,i){e(t,i,n)}},qW;const Mv=new It("referenceSearchVisible",!1,x("referenceSearchVisible","Whether reference peek is visible, like 'Peek References' or 'Peek Definition'"));let Aw=qW=class{static get(e){return e.getContribution(qW.ID)}constructor(e,t,i,r,o,s,a,l){this._defaultTreeKeyboardSupport=e,this._editor=t,this._editorService=r,this._notificationService=o,this._instantiationService=s,this._storageService=a,this._configurationService=l,this._disposables=new je,this._requestIdPool=0,this._ignoreModelChangeEvent=!1,this._referenceSearchVisible=Mv.bindTo(i)}dispose(){var e,t;this._referenceSearchVisible.reset(),this._disposables.dispose(),(e=this._widget)===null||e===void 0||e.dispose(),(t=this._model)===null||t===void 0||t.dispose(),this._widget=void 0,this._model=void 0}toggleWidget(e,t,i){let r;if(this._widget&&(r=this._widget.position),this.closeWidget(),r&&e.containsPosition(r))return;this._peekMode=i,this._referenceSearchVisible.set(!0),this._disposables.add(this._editor.onDidChangeModelLanguage(()=>{this.closeWidget()})),this._disposables.add(this._editor.onDidChangeModel(()=>{this._ignoreModelChangeEvent||this.closeWidget()}));const o="peekViewLayout",s=xDt.fromJSON(this._storageService.get(o,0,"{}"));this._widget=this._instantiationService.createInstance(LK,this._editor,this._defaultTreeKeyboardSupport,s),this._widget.setTitle(x("labelLoading","Loading...")),this._widget.show(e),this._disposables.add(this._widget.onDidClose(()=>{t.cancel(),this._widget&&(this._storageService.store(o,JSON.stringify(this._widget.layoutData),0,1),this._widget=void 0),this.closeWidget()})),this._disposables.add(this._widget.onDidSelectReference(l=>{const{element:u,kind:c}=l;if(u)switch(c){case"open":(l.source!=="editor"||!this._configurationService.getValue("editor.stablePeek"))&&this.openReference(u,!1,!1);break;case"side":this.openReference(u,!0,!1);break;case"goto":i?this._gotoReference(u,!0):this.openReference(u,!1,!0);break}}));const a=++this._requestIdPool;t.then(l=>{var u;if(a!==this._requestIdPool||!this._widget){l.dispose();return}return(u=this._model)===null||u===void 0||u.dispose(),this._model=l,this._widget.setModel(this._model).then(()=>{if(this._widget&&this._model&&this._editor.hasModel()){this._model.isEmpty?this._widget.setMetaTitle(""):this._widget.setMetaTitle(x("metaTitle.N","{0} ({1})",this._model.title,this._model.references.length));const c=this._editor.getModel().uri,d=new ve(e.startLineNumber,e.startColumn),h=this._model.nearestReference(c,d);if(h)return this._widget.setSelection(h).then(()=>{this._widget&&this._editor.getOption(87)==="editor"&&this._widget.focusOnPreviewEditor()})}})},l=>{this._notificationService.error(l)})}changeFocusBetweenPreviewAndReferences(){this._widget&&(this._widget.isPreviewEditorFocused()?this._widget.focusOnReferenceTree():this._widget.focusOnPreviewEditor())}async goToNextOrPreviousReference(e){if(!this._editor.hasModel()||!this._model||!this._widget)return;const t=this._widget.position;if(!t)return;const i=this._model.nearestReference(this._editor.getModel().uri,t);if(!i)return;const r=this._model.nextOrPreviousReference(i,e),o=this._editor.hasTextFocus(),s=this._widget.isPreviewEditorFocused();await this._widget.setSelection(r),await this._gotoReference(r,!1),o?this._editor.focus():this._widget&&s&&this._widget.focusOnPreviewEditor()}async revealReference(e){!this._editor.hasModel()||!this._model||!this._widget||await this._widget.revealReference(e)}closeWidget(e=!0){var t,i;(t=this._widget)===null||t===void 0||t.dispose(),(i=this._model)===null||i===void 0||i.dispose(),this._referenceSearchVisible.reset(),this._disposables.clear(),this._widget=void 0,this._model=void 0,e&&this._editor.focus(),this._requestIdPool+=1}_gotoReference(e,t){var i;(i=this._widget)===null||i===void 0||i.hide(),this._ignoreModelChangeEvent=!0;const r=K.lift(e.range).collapseToStart();return this._editorService.openCodeEditor({resource:e.uri,options:{selection:r,selectionSource:"code.jump",pinned:t}},this._editor).then(o=>{var s;if(this._ignoreModelChangeEvent=!1,!o||!this._widget){this.closeWidget();return}if(this._editor===o)this._widget.show(r),this._widget.focusOnReferenceTree();else{const a=qW.get(o),l=this._model.clone();this.closeWidget(),o.focus(),a==null||a.toggleWidget(r,$o(u=>Promise.resolve(l)),(s=this._peekMode)!==null&&s!==void 0?s:!1)}},o=>{this._ignoreModelChangeEvent=!1,fn(o)})}openReference(e,t,i){t||this.closeWidget();const{uri:r,range:o}=e;this._editorService.openCodeEditor({resource:r,options:{selection:o,selectionSource:"code.jump",pinned:i}},this._editor,t)}};Aw.ID="editor.contrib.referencesController",Aw=qW=FDt([Dw(2,ln),Dw(3,yi),Dw(4,Fo),Dw(5,tn),Dw(6,bm),Dw(7,Xn)],Aw);function Zv(n,e){const t=o_t(n);if(!t)return;const i=Aw.get(t);i&&e(i)}Dl.registerCommandAndKeybindingRule({id:"togglePeekWidgetFocus",weight:100,primary:ko(2089,60),when:Be.or(Mv,Vl.inPeekEditor),handler(n){Zv(n,e=>{e.changeFocusBetweenPreviewAndReferences()})}}),Dl.registerCommandAndKeybindingRule({id:"goToNextReference",weight:90,primary:62,secondary:[70],when:Be.or(Mv,Vl.inPeekEditor),handler(n){Zv(n,e=>{e.goToNextOrPreviousReference(!0)})}}),Dl.registerCommandAndKeybindingRule({id:"goToPreviousReference",weight:90,primary:1086,secondary:[1094],when:Be.or(Mv,Vl.inPeekEditor),handler(n){Zv(n,e=>{e.goToNextOrPreviousReference(!1)})}}),ei.registerCommandAlias("goToNextReferenceFromEmbeddedEditor","goToNextReference"),ei.registerCommandAlias("goToPreviousReferenceFromEmbeddedEditor","goToPreviousReference"),ei.registerCommandAlias("closeReferenceSearchEditor","closeReferenceSearch"),ei.registerCommand("closeReferenceSearch",n=>Zv(n,e=>e.closeWidget())),Dl.registerKeybindingRule({id:"closeReferenceSearch",weight:-1,primary:9,secondary:[1033],when:Be.and(Vl.inPeekEditor,Be.not("config.editor.stablePeek"))}),Dl.registerKeybindingRule({id:"closeReferenceSearch",weight:250,primary:9,secondary:[1033],when:Be.and(Mv,Be.not("config.editor.stablePeek"),Be.or(ne.editorTextFocus,oDt.negate()))}),Dl.registerCommandAndKeybindingRule({id:"revealReference",weight:200,primary:3,mac:{primary:3,secondary:[2066]},when:Be.and(Mv,Fwe,hK.negate(),gK.negate()),handler(n){var e;const i=(e=n.get(Pc).lastFocusedList)===null||e===void 0?void 0:e.getFocus();Array.isArray(i)&&i[0]instanceof w0&&Zv(n,r=>r.revealReference(i[0]))}}),Dl.registerCommandAndKeybindingRule({id:"openReferenceToSide",weight:100,primary:2051,mac:{primary:259},when:Be.and(Mv,Fwe,hK.negate(),gK.negate()),handler(n){var e;const i=(e=n.get(Pc).lastFocusedList)===null||e===void 0?void 0:e.getFocus();Array.isArray(i)&&i[0]instanceof w0&&Zv(n,r=>r.openReference(i[0],!0,!0))}}),ei.registerCommand("openReference",n=>{var e;const i=(e=n.get(Pc).lastFocusedList)===null||e===void 0?void 0:e.getFocus();Array.isArray(i)&&i[0]instanceof w0&&Zv(n,r=>r.openReference(i[0],!1,!0))});var Gwe=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},sA=function(n,e){return function(t,i){e(t,i,n)}};const FK=new It("hasSymbols",!1,x("hasSymbols","Whether there are symbol locations that can be navigated via keyboard-only.")),eR=Un("ISymbolNavigationService");let _K=class{constructor(e,t,i,r){this._editorService=t,this._notificationService=i,this._keybindingService=r,this._currentModel=void 0,this._currentIdx=-1,this._ignoreEditorChange=!1,this._ctxHasSymbols=FK.bindTo(e)}reset(){var e,t;this._ctxHasSymbols.reset(),(e=this._currentState)===null||e===void 0||e.dispose(),(t=this._currentMessage)===null||t===void 0||t.dispose(),this._currentModel=void 0,this._currentIdx=-1}put(e){const t=e.parent.parent;if(t.references.length<=1){this.reset();return}this._currentModel=t,this._currentIdx=t.references.indexOf(e),this._ctxHasSymbols.set(!0),this._showMessage();const i=new DK(this._editorService),r=i.onDidChange(o=>{if(this._ignoreEditorChange)return;const s=this._editorService.getActiveCodeEditor();if(!s)return;const a=s.getModel(),l=s.getPosition();if(!a||!l)return;let u=!1,c=!1;for(const d of t.references)if(M6(d.uri,a.uri))u=!0,c=c||K.containsPosition(d.range,l);else if(u)break;(!u||!c)&&this.reset()});this._currentState=hd(i,r)}revealNext(e){if(!this._currentModel)return Promise.resolve();this._currentIdx+=1,this._currentIdx%=this._currentModel.references.length;const t=this._currentModel.references[this._currentIdx];return this._showMessage(),this._ignoreEditorChange=!0,this._editorService.openCodeEditor({resource:t.uri,options:{selection:K.collapseToStart(t.range),selectionRevealType:3}},e).finally(()=>{this._ignoreEditorChange=!1})}_showMessage(){var e;(e=this._currentMessage)===null||e===void 0||e.dispose();const t=this._keybindingService.lookupKeybinding("editor.gotoNextSymbolFromResult"),i=t?x("location.kb","Symbol {0} of {1}, {2} for next",this._currentIdx+1,this._currentModel.references.length,t.getLabel()):x("location","Symbol {0} of {1}",this._currentIdx+1,this._currentModel.references.length);this._currentMessage=this._notificationService.status(i)}};_K=Gwe([sA(0,ln),sA(1,yi),sA(2,Fo),sA(3,Pi)],_K),ti(eR,_K,1),mt(new class extends cs{constructor(){super({id:"editor.gotoNextSymbolFromResult",precondition:FK,kbOpts:{weight:100,primary:70}})}runEditorCommand(n,e){return n.get(eR).revealNext(e)}}),Dl.registerCommandAndKeybindingRule({id:"editor.gotoNextSymbolFromResult.cancel",weight:100,when:FK,primary:9,handler(n){n.get(eR).reset()}});let DK=class{constructor(e){this._listener=new Map,this._disposables=new je,this._onDidChange=new be,this.onDidChange=this._onDidChange.event,this._disposables.add(e.onCodeEditorRemove(this._onDidRemoveEditor,this)),this._disposables.add(e.onCodeEditorAdd(this._onDidAddEditor,this)),e.listCodeEditors().forEach(this._onDidAddEditor,this)}dispose(){this._disposables.dispose(),this._onDidChange.dispose(),Mi(this._listener.values())}_onDidAddEditor(e){this._listener.set(e,hd(e.onDidChangeCursorPosition(t=>this._onDidChange.fire({editor:e})),e.onDidChangeModelContent(t=>this._onDidChange.fire({editor:e}))))}_onDidRemoveEditor(e){var t;(t=this._listener.get(e))===null||t===void 0||t.dispose(),this._listener.delete(e)}};DK=Gwe([sA(0,yi)],DK);async function aA(n,e,t,i){const o=t.ordered(n).map(a=>Promise.resolve(i(a,n,e)).then(void 0,l=>{wo(l)})),s=await Promise.all(o);return Gg(s.flat())}function tR(n,e,t,i){return aA(e,t,n,(r,o,s)=>r.provideDefinition(o,s,i))}function Vwe(n,e,t,i){return aA(e,t,n,(r,o,s)=>r.provideDeclaration(o,s,i))}function Xwe(n,e,t,i){return aA(e,t,n,(r,o,s)=>r.provideImplementation(o,s,i))}function Pwe(n,e,t,i){return aA(e,t,n,(r,o,s)=>r.provideTypeDefinition(o,s,i))}function nR(n,e,t,i,r){return aA(e,t,n,async(o,s,a)=>{const l=await o.provideReferences(s,a,{includeDeclaration:!0},r);if(!i||!l||l.length!==2)return l;const u=await o.provideReferences(s,a,{includeDeclaration:!1},r);return u&&u.length===1?u:l})}async function lA(n){const e=await n(),t=new mu(e,""),i=t.references.map(r=>r.link);return t.dispose(),i}Wg("_executeDefinitionProvider",(n,e,t)=>{const i=n.get(Tt),r=tR(i.definitionProvider,e,t,Hn.None);return lA(()=>r)}),Wg("_executeTypeDefinitionProvider",(n,e,t)=>{const i=n.get(Tt),r=Pwe(i.typeDefinitionProvider,e,t,Hn.None);return lA(()=>r)}),Wg("_executeDeclarationProvider",(n,e,t)=>{const i=n.get(Tt),r=Vwe(i.declarationProvider,e,t,Hn.None);return lA(()=>r)}),Wg("_executeReferenceProvider",(n,e,t)=>{const i=n.get(Tt),r=nR(i.referenceProvider,e,t,!1,Hn.None);return lA(()=>r)}),Wg("_executeImplementationProvider",(n,e,t)=>{const i=n.get(Tt),r=Xwe(i.implementationProvider,e,t,Hn.None);return lA(()=>r)});var uA,cA,dA,iR,rR,oR,sR,aR;Ls.appendMenuItem($.EditorContext,{submenu:$.EditorContextPeek,title:x("peek.submenu","Peek"),group:"navigation",order:100});class Nw{static is(e){return!e||typeof e!="object"?!1:!!(e instanceof Nw||ve.isIPosition(e.position)&&e.model)}constructor(e,t){this.model=e,this.position=t}}class _a extends Ch{static all(){return _a._allSymbolNavigationCommands.values()}static _patchConfig(e){const t={...e,f1:!0};if(t.menu)for(const i of qn.wrap(t.menu))(i.id===$.EditorContext||i.id===$.EditorContextPeek)&&(i.when=Be.and(e.precondition,i.when));return t}constructor(e,t){super(_a._patchConfig(t)),this.configuration=e,_a._allSymbolNavigationCommands.set(t.id,this)}runEditorCommand(e,t,i,r){if(!t.hasModel())return Promise.resolve(void 0);const o=e.get(Fo),s=e.get(yi),a=e.get(u0),l=e.get(eR),u=e.get(Tt),c=e.get(tn),d=t.getModel(),h=t.getPosition(),g=Nw.is(i)?i:new Nw(d,h),m=new h0(t,5),f=LF(this._getLocationModel(u,g.model,g.position,m.token),m.token).then(async b=>{var C;if(!b||m.token.isCancellationRequested)return;ou(b.ariaMessage);let v;if(b.referenceAt(d.uri,h)){const S=this._getAlternativeCommand(t);!_a._activeAlternativeCommands.has(S)&&_a._allSymbolNavigationCommands.has(S)&&(v=_a._allSymbolNavigationCommands.get(S))}const w=b.references.length;if(w===0){if(!this.configuration.muteMessage){const S=d.getWordAtPosition(h);(C=ll.get(t))===null||C===void 0||C.showMessage(this._getNoResultFoundMessage(S),h)}}else if(w===1&&v)_a._activeAlternativeCommands.add(this.desc.id),c.invokeFunction(S=>v.runEditorCommand(S,t,i,r).finally(()=>{_a._activeAlternativeCommands.delete(this.desc.id)}));else return this._onResult(s,l,t,b,r)},b=>{o.error(b)}).finally(()=>{m.dispose()});return a.showWhile(f,250),f}async _onResult(e,t,i,r,o){const s=this._getGoToPreference(i);if(!(i instanceof C0)&&(this.configuration.openInPeek||s==="peek"&&r.references.length>1))this._openInPeek(i,r,o);else{const a=r.firstReference(),l=r.references.length>1&&s==="gotoAndPeek",u=await this._openReference(i,e,a,this.configuration.openToSide,!l);l&&u?this._openInPeek(u,r,o):r.dispose(),s==="goto"&&t.put(a)}}async _openReference(e,t,i,r,o){let s;if(K1t(i)&&(s=i.targetSelectionRange),s||(s=i.range),!s)return;const a=await t.openCodeEditor({resource:i.uri,options:{selection:K.collapseToStart(s),selectionRevealType:3,selectionSource:"code.jump"}},e,r);if(a){if(o){const l=a.getModel(),u=a.createDecorationsCollection([{range:s,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{a.getModel()===l&&u.clear()},350)}return a}}_openInPeek(e,t,i){const r=Aw.get(e);r&&e.hasModel()?r.toggleWidget(i??e.getSelection(),$o(o=>Promise.resolve(t)),this.configuration.openInPeek):t.dispose()}}_a._allSymbolNavigationCommands=new Map,_a._activeAlternativeCommands=new Set;class hA extends _a{async _getLocationModel(e,t,i,r){return new mu(await tR(e.definitionProvider,t,i,r),x("def.title","Definitions"))}_getNoResultFoundMessage(e){return e&&e.word?x("noResultWord","No definition found for '{0}'",e.word):x("generic.noResults","No definition found")}_getAlternativeCommand(e){return e.getOption(58).alternativeDefinitionCommand}_getGoToPreference(e){return e.getOption(58).multipleDefinitions}}Qi((uA=class extends hA{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:uA.id,title:{...ai("actions.goToDecl.label","Go to Definition"),mnemonicTitle:x({key:"miGotoDefinition",comment:["&& denotes a mnemonic"]},"Go to &&Definition")},precondition:ne.hasDefinitionProvider,keybinding:[{when:ne.editorTextFocus,primary:70,weight:100},{when:Be.and(ne.editorTextFocus,wwe),primary:2118,weight:100}],menu:[{id:$.EditorContext,group:"navigation",order:1.1},{id:$.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:2}]}),ei.registerCommandAlias("editor.action.goToDeclaration",uA.id)}},uA.id="editor.action.revealDefinition",uA)),Qi((cA=class extends hA{constructor(){super({openToSide:!0,openInPeek:!1,muteMessage:!1},{id:cA.id,title:ai("actions.goToDeclToSide.label","Open Definition to the Side"),precondition:Be.and(ne.hasDefinitionProvider,ne.isInEmbeddedEditor.toNegated()),keybinding:[{when:ne.editorTextFocus,primary:ko(2089,70),weight:100},{when:Be.and(ne.editorTextFocus,wwe),primary:ko(2089,2118),weight:100}]}),ei.registerCommandAlias("editor.action.openDeclarationToTheSide",cA.id)}},cA.id="editor.action.revealDefinitionAside",cA)),Qi((dA=class extends hA{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:dA.id,title:ai("actions.previewDecl.label","Peek Definition"),precondition:Be.and(ne.hasDefinitionProvider,Vl.notInPeekEditor,ne.isInEmbeddedEditor.toNegated()),keybinding:{when:ne.editorTextFocus,primary:582,linux:{primary:3140},weight:100},menu:{id:$.EditorContextPeek,group:"peek",order:2}}),ei.registerCommandAlias("editor.action.previewDeclaration",dA.id)}},dA.id="editor.action.peekDefinition",dA));class Owe extends _a{async _getLocationModel(e,t,i,r){return new mu(await Vwe(e.declarationProvider,t,i,r),x("decl.title","Declarations"))}_getNoResultFoundMessage(e){return e&&e.word?x("decl.noResultWord","No declaration found for '{0}'",e.word):x("decl.generic.noResults","No declaration found")}_getAlternativeCommand(e){return e.getOption(58).alternativeDeclarationCommand}_getGoToPreference(e){return e.getOption(58).multipleDeclarations}}Qi((iR=class extends Owe{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:iR.id,title:{...ai("actions.goToDeclaration.label","Go to Declaration"),mnemonicTitle:x({key:"miGotoDeclaration",comment:["&& denotes a mnemonic"]},"Go to &&Declaration")},precondition:Be.and(ne.hasDeclarationProvider,ne.isInEmbeddedEditor.toNegated()),menu:[{id:$.EditorContext,group:"navigation",order:1.3},{id:$.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}_getNoResultFoundMessage(e){return e&&e.word?x("decl.noResultWord","No declaration found for '{0}'",e.word):x("decl.generic.noResults","No declaration found")}},iR.id="editor.action.revealDeclaration",iR)),Qi(class extends Owe{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.peekDeclaration",title:ai("actions.peekDecl.label","Peek Declaration"),precondition:Be.and(ne.hasDeclarationProvider,Vl.notInPeekEditor,ne.isInEmbeddedEditor.toNegated()),menu:{id:$.EditorContextPeek,group:"peek",order:3}})}});class Bwe extends _a{async _getLocationModel(e,t,i,r){return new mu(await Pwe(e.typeDefinitionProvider,t,i,r),x("typedef.title","Type Definitions"))}_getNoResultFoundMessage(e){return e&&e.word?x("goToTypeDefinition.noResultWord","No type definition found for '{0}'",e.word):x("goToTypeDefinition.generic.noResults","No type definition found")}_getAlternativeCommand(e){return e.getOption(58).alternativeTypeDefinitionCommand}_getGoToPreference(e){return e.getOption(58).multipleTypeDefinitions}}Qi((rR=class extends Bwe{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:rR.ID,title:{...ai("actions.goToTypeDefinition.label","Go to Type Definition"),mnemonicTitle:x({key:"miGotoTypeDefinition",comment:["&& denotes a mnemonic"]},"Go to &&Type Definition")},precondition:ne.hasTypeDefinitionProvider,keybinding:{when:ne.editorTextFocus,primary:0,weight:100},menu:[{id:$.EditorContext,group:"navigation",order:1.4},{id:$.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:3}]})}},rR.ID="editor.action.goToTypeDefinition",rR)),Qi((oR=class extends Bwe{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:oR.ID,title:ai("actions.peekTypeDefinition.label","Peek Type Definition"),precondition:Be.and(ne.hasTypeDefinitionProvider,Vl.notInPeekEditor,ne.isInEmbeddedEditor.toNegated()),menu:{id:$.EditorContextPeek,group:"peek",order:4}})}},oR.ID="editor.action.peekTypeDefinition",oR));class zwe extends _a{async _getLocationModel(e,t,i,r){return new mu(await Xwe(e.implementationProvider,t,i,r),x("impl.title","Implementations"))}_getNoResultFoundMessage(e){return e&&e.word?x("goToImplementation.noResultWord","No implementation found for '{0}'",e.word):x("goToImplementation.generic.noResults","No implementation found")}_getAlternativeCommand(e){return e.getOption(58).alternativeImplementationCommand}_getGoToPreference(e){return e.getOption(58).multipleImplementations}}Qi((sR=class extends zwe{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:sR.ID,title:{...ai("actions.goToImplementation.label","Go to Implementations"),mnemonicTitle:x({key:"miGotoImplementation",comment:["&& denotes a mnemonic"]},"Go to &&Implementations")},precondition:ne.hasImplementationProvider,keybinding:{when:ne.editorTextFocus,primary:2118,weight:100},menu:[{id:$.EditorContext,group:"navigation",order:1.45},{id:$.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:4}]})}},sR.ID="editor.action.goToImplementation",sR)),Qi((aR=class extends zwe{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:aR.ID,title:ai("actions.peekImplementation.label","Peek Implementations"),precondition:Be.and(ne.hasImplementationProvider,Vl.notInPeekEditor,ne.isInEmbeddedEditor.toNegated()),keybinding:{when:ne.editorTextFocus,primary:3142,weight:100},menu:{id:$.EditorContextPeek,group:"peek",order:5}})}},aR.ID="editor.action.peekImplementation",aR));class Ywe extends _a{_getNoResultFoundMessage(e){return e?x("references.no","No references found for '{0}'",e.word):x("references.noGeneric","No references found")}_getAlternativeCommand(e){return e.getOption(58).alternativeReferenceCommand}_getGoToPreference(e){return e.getOption(58).multipleReferences}}Qi(class extends Ywe{constructor(){super({openToSide:!1,openInPeek:!1,muteMessage:!1},{id:"editor.action.goToReferences",title:{...ai("goToReferences.label","Go to References"),mnemonicTitle:x({key:"miGotoReference",comment:["&& denotes a mnemonic"]},"Go to &&References")},precondition:Be.and(ne.hasReferenceProvider,Vl.notInPeekEditor,ne.isInEmbeddedEditor.toNegated()),keybinding:{when:ne.editorTextFocus,primary:1094,weight:100},menu:[{id:$.EditorContext,group:"navigation",order:1.45},{id:$.MenubarGoMenu,precondition:null,group:"4_symbol_nav",order:5}]})}async _getLocationModel(e,t,i,r){return new mu(await nR(e.referenceProvider,t,i,!0,r),x("ref.title","References"))}}),Qi(class extends Ywe{constructor(){super({openToSide:!1,openInPeek:!0,muteMessage:!1},{id:"editor.action.referenceSearch.trigger",title:ai("references.action.label","Peek References"),precondition:Be.and(ne.hasReferenceProvider,Vl.notInPeekEditor,ne.isInEmbeddedEditor.toNegated()),menu:{id:$.EditorContextPeek,group:"peek",order:6}})}async _getLocationModel(e,t,i,r){return new mu(await nR(e.referenceProvider,t,i,!1,r),x("ref.title","References"))}});class _Dt extends _a{constructor(e,t,i){super(e,{id:"editor.action.goToLocation",title:ai("label.generic","Go to Any Symbol"),precondition:Be.and(Vl.notInPeekEditor,ne.isInEmbeddedEditor.toNegated())}),this._references=t,this._gotoMultipleBehaviour=i}async _getLocationModel(e,t,i,r){return new mu(this._references,x("generic.title","Locations"))}_getNoResultFoundMessage(e){return e&&x("generic.noResult","No results for '{0}'",e.word)||""}_getGoToPreference(e){var t;return(t=this._gotoMultipleBehaviour)!==null&&t!==void 0?t:e.getOption(58).multipleReferences}_getAlternativeCommand(){return""}}ei.registerCommand({id:"editor.action.goToLocations",metadata:{description:"Go to locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:$t},{name:"position",description:"The position at which to start",constraint:ve.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"},{name:"noResultsMessage",description:"Human readable message that shows when locations is empty."}]},handler:async(n,e,t,i,r,o,s)=>{Ci($t.isUri(e)),Ci(ve.isIPosition(t)),Ci(Array.isArray(i)),Ci(typeof r>"u"||typeof r=="string"),Ci(typeof s>"u"||typeof s=="boolean");const a=n.get(yi),l=await a.openCodeEditor({resource:e},a.getFocusedCodeEditor());if(I0(l))return l.setPosition(t),l.revealPositionInCenterIfOutsideViewport(t,0),l.invokeWithinContext(u=>{const c=new class extends _Dt{_getNoResultFoundMessage(d){return o||super._getNoResultFoundMessage(d)}}({muteMessage:!o,openInPeek:!!s,openToSide:!1},i,r);u.get(tn).invokeFunction(c.run.bind(c),l)})}}),ei.registerCommand({id:"editor.action.peekLocations",metadata:{description:"Peek locations from a position in a file",args:[{name:"uri",description:"The text document in which to start",constraint:$t},{name:"position",description:"The position at which to start",constraint:ve.isIPosition},{name:"locations",description:"An array of locations.",constraint:Array},{name:"multiple",description:"Define what to do when having multiple results, either `peek`, `gotoAndPeek`, or `goto`"}]},handler:async(n,e,t,i,r)=>{n.get(Vr).executeCommand("editor.action.goToLocations",e,t,i,r,void 0,!0)}}),ei.registerCommand({id:"editor.action.findReferences",handler:(n,e,t)=>{Ci($t.isUri(e)),Ci(ve.isIPosition(t));const i=n.get(Tt),r=n.get(yi);return r.openCodeEditor({resource:e},r.getFocusedCodeEditor()).then(o=>{if(!I0(o)||!o.hasModel())return;const s=Aw.get(o);if(!s)return;const a=$o(u=>nR(i.referenceProvider,o.getModel(),ve.lift(t),!1,u).then(c=>new mu(c,x("ref.title","References")))),l=new K(t.lineNumber,t.column,t.lineNumber,t.column);return Promise.resolve(s.toggleWidget(l,a,!1))})}}),ei.registerCommandAlias("editor.action.showReferences","editor.action.peekLocations");var DDt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},AK=function(n,e){return function(t,i){e(t,i,n)}},gA;let Tv=gA=class{constructor(e,t,i,r){this.textModelResolverService=t,this.languageService=i,this.languageFeaturesService=r,this.toUnhook=new je,this.toUnhookForKeyboard=new je,this.currentWordAtPosition=null,this.previousPromise=null,this.editor=e,this.linkDecorations=this.editor.createDecorationsCollection();const o=new FW(e);this.toUnhook.add(o),this.toUnhook.add(o.onMouseMoveOrRelevantKeyDown(([s,a])=>{this.startFindDefinitionFromMouse(s,a??void 0)})),this.toUnhook.add(o.onExecute(s=>{this.isEnabled(s)&&this.gotoDefinition(s.target.position,s.hasSideBySideModifier).catch(a=>{fn(a)}).finally(()=>{this.removeLinkDecorations()})})),this.toUnhook.add(o.onCancel(()=>{this.removeLinkDecorations(),this.currentWordAtPosition=null}))}static get(e){return e.getContribution(gA.ID)}async startFindDefinitionFromCursor(e){await this.startFindDefinition(e),this.toUnhookForKeyboard.add(this.editor.onDidChangeCursorPosition(()=>{this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear()})),this.toUnhookForKeyboard.add(this.editor.onKeyDown(t=>{t&&(this.currentWordAtPosition=null,this.removeLinkDecorations(),this.toUnhookForKeyboard.clear())}))}startFindDefinitionFromMouse(e,t){if(e.target.type===9&&this.linkDecorations.length>0)return;if(!this.editor.hasModel()||!this.isEnabled(e,t)){this.currentWordAtPosition=null,this.removeLinkDecorations();return}const i=e.target.position;this.startFindDefinition(i)}async startFindDefinition(e){var t;this.toUnhookForKeyboard.clear();const i=e?(t=this.editor.getModel())===null||t===void 0?void 0:t.getWordAtPosition(e):null;if(!i){this.currentWordAtPosition=null,this.removeLinkDecorations();return}if(this.currentWordAtPosition&&this.currentWordAtPosition.startColumn===i.startColumn&&this.currentWordAtPosition.endColumn===i.endColumn&&this.currentWordAtPosition.word===i.word)return;this.currentWordAtPosition=i;const r=new TIe(this.editor,15);this.previousPromise&&(this.previousPromise.cancel(),this.previousPromise=null),this.previousPromise=$o(a=>this.findDefinition(e,a));let o;try{o=await this.previousPromise}catch(a){fn(a);return}if(!o||!o.length||!r.validate(this.editor)){this.removeLinkDecorations();return}const s=o[0].originSelectionRange?K.lift(o[0].originSelectionRange):new K(e.lineNumber,i.startColumn,e.lineNumber,i.endColumn);if(o.length>1){let a=s;for(const{originSelectionRange:l}of o)l&&(a=K.plusRange(a,l));this.addDecoration(a,new ga().appendText(x("multipleResults","Click to show {0} definitions.",o.length)))}else{const a=o[0];if(!a.uri)return;this.textModelResolverService.createModelReference(a.uri).then(l=>{if(!l.object||!l.object.textEditorModel){l.dispose();return}const{object:{textEditorModel:u}}=l,{startLineNumber:c}=a.range;if(c<1||c>u.getLineCount()){l.dispose();return}const d=this.getPreviewValue(u,c,a),h=this.languageService.guessLanguageIdByFilepathOrFirstLine(u.uri);this.addDecoration(s,d?new ga().appendCodeblock(h||"",d):void 0),l.dispose()})}}getPreviewValue(e,t,i){let r=i.range;return r.endLineNumber-r.startLineNumber>=gA.MAX_SOURCE_PREVIEW_LINES&&(r=this.getPreviewRangeBasedOnIndentation(e,t)),this.stripIndentationFromPreviewRange(e,t,r)}stripIndentationFromPreviewRange(e,t,i){let o=e.getLineFirstNonWhitespaceColumn(t);for(let a=t+1;a{const r=!t&&this.editor.getOption(88)&&!this.isInPeekEditor(i);return new hA({openToSide:t,openInPeek:r,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(i)})}isInPeekEditor(e){const t=e.get(ln);return Vl.inPeekEditor.getValue(t)}dispose(){this.toUnhook.dispose(),this.toUnhookForKeyboard.dispose()}};Tv.ID="editor.contrib.gotodefinitionatposition",Tv.MAX_SOURCE_PREVIEW_LINES=8,Tv=gA=DDt([AK(1,Fl),AK(2,Cr),AK(3,Tt)],Tv),Ii(Tv.ID,Tv,2);const lR=vt;let NK=class extends De{constructor(){super(),this.containerDomNode=document.createElement("div"),this.containerDomNode.className="monaco-hover",this.containerDomNode.tabIndex=0,this.containerDomNode.setAttribute("role","tooltip"),this.contentsDomNode=document.createElement("div"),this.contentsDomNode.className="monaco-hover-content",this.scrollbar=this._register(new f_(this.contentsDomNode,{consumeMouseWheelIfScrollbarIsNeeded:!0})),this.containerDomNode.appendChild(this.scrollbar.getDomNode())}onContentsChanged(){this.scrollbar.scanDomNode()}};class uR extends De{static render(e,t,i){return new uR(e,t,i)}constructor(e,t,i){super(),this.actionContainer=Je(e,lR("div.action-container")),this.actionContainer.setAttribute("tabindex","0"),this.action=Je(this.actionContainer,lR("a.action")),this.action.setAttribute("role","button"),t.iconClass&&Je(this.action,lR(`span.icon.${t.iconClass}`));const r=Je(this.action,lR("span"));r.textContent=i?`${t.label} (${i})`:t.label,this._register(Ve(this.actionContainer,at.CLICK,o=>{o.stopPropagation(),o.preventDefault(),t.run(this.actionContainer)})),this._register(Ve(this.actionContainer,at.KEY_DOWN,o=>{const s=new nr(o);(s.equals(3)||s.equals(10))&&(o.stopPropagation(),o.preventDefault(),t.run(this.actionContainer))})),this.setEnabled(!0)}setEnabled(e){e?(this.actionContainer.classList.remove("disabled"),this.actionContainer.removeAttribute("aria-disabled")):(this.actionContainer.classList.add("disabled"),this.actionContainer.setAttribute("aria-disabled","true"))}}function Hwe(n,e){return n&&e?x("acessibleViewHint","Inspect this in the accessible view with {0}.",e):n?x("acessibleViewHintNoKbOpen","Inspect this in the accessible view via the command Open Accessible View which is currently not triggerable via keybinding."):""}let ADt=class{constructor(e,t,i){this.value=e,this.isComplete=t,this.hasLoadingMessage=i}};class Uwe extends De{constructor(e,t){super(),this._editor=e,this._computer=t,this._onResult=this._register(new be),this.onResult=this._onResult.event,this._firstWaitScheduler=this._register(new Vi(()=>this._triggerAsyncComputation(),0)),this._secondWaitScheduler=this._register(new Vi(()=>this._triggerSyncComputation(),0)),this._loadingMessageScheduler=this._register(new Vi(()=>this._triggerLoadingMessage(),0)),this._state=0,this._asyncIterable=null,this._asyncIterableDone=!1,this._result=[]}dispose(){this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),super.dispose()}get _hoverTime(){return this._editor.getOption(60).delay}get _firstWaitTime(){return this._hoverTime/2}get _secondWaitTime(){return this._hoverTime-this._firstWaitTime}get _loadingMessageTime(){return 3*this._hoverTime}_setState(e,t=!0){this._state=e,t&&this._fireResult()}_triggerAsyncComputation(){this._setState(2),this._secondWaitScheduler.schedule(this._secondWaitTime),this._computer.computeAsync?(this._asyncIterableDone=!1,this._asyncIterable=bht(e=>this._computer.computeAsync(e)),(async()=>{try{for await(const e of this._asyncIterable)e&&(this._result.push(e),this._fireResult());this._asyncIterableDone=!0,(this._state===3||this._state===4)&&this._setState(0)}catch(e){fn(e)}})()):this._asyncIterableDone=!0}_triggerSyncComputation(){this._computer.computeSync&&(this._result=this._result.concat(this._computer.computeSync())),this._setState(this._asyncIterableDone?0:3)}_triggerLoadingMessage(){this._state===3&&this._setState(4)}_fireResult(){if(this._state===1||this._state===2)return;const e=this._state===0,t=this._state===4;this._onResult.fire(new ADt(this._result.slice(0),e,t))}start(e){if(e===0)this._state===0&&(this._setState(1),this._firstWaitScheduler.schedule(this._firstWaitTime),this._loadingMessageScheduler.schedule(this._loadingMessageTime));else switch(this._state){case 0:this._triggerAsyncComputation(),this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break;case 2:this._secondWaitScheduler.cancel(),this._triggerSyncComputation();break}}cancel(){this._firstWaitScheduler.cancel(),this._secondWaitScheduler.cancel(),this._loadingMessageScheduler.cancel(),this._asyncIterable&&(this._asyncIterable.cancel(),this._asyncIterable=null),this._result=[],this._setState(0,!1)}}class kK{constructor(e,t,i,r){this.priority=e,this.range=t,this.initialMousePosX=i,this.initialMousePosY=r,this.type=1}equals(e){return e.type===1&&this.range.equalsRange(e.range)}canAdoptVisibleHover(e,t){return e.type===1&&t.lineNumber===this.range.startLineNumber}}class Ev{constructor(e,t,i,r,o,s){this.priority=e,this.owner=t,this.range=i,this.initialMousePosX=r,this.initialMousePosY=o,this.supportsMarkerHover=s,this.type=2}equals(e){return e.type===2&&this.owner===e.owner}canAdoptVisibleHover(e,t){return e.type===2&&this.owner===e.owner}}const x0=new class{constructor(){this._participants=[]}register(e){this._participants.push(e)}getAll(){return this._participants}};class MK{constructor(){this._onDidWillResize=new be,this.onDidWillResize=this._onDidWillResize.event,this._onDidResize=new be,this.onDidResize=this._onDidResize.event,this._sashListener=new je,this._size=new fi(0,0),this._minSize=new fi(0,0),this._maxSize=new fi(Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),this.domNode=document.createElement("div"),this._eastSash=new fa(this.domNode,{getVerticalSashLeft:()=>this._size.width},{orientation:0}),this._westSash=new fa(this.domNode,{getVerticalSashLeft:()=>0},{orientation:0}),this._northSash=new fa(this.domNode,{getHorizontalSashTop:()=>0},{orientation:1,orthogonalEdge:YE.North}),this._southSash=new fa(this.domNode,{getHorizontalSashTop:()=>this._size.height},{orientation:1,orthogonalEdge:YE.South}),this._northSash.orthogonalStartSash=this._westSash,this._northSash.orthogonalEndSash=this._eastSash,this._southSash.orthogonalStartSash=this._westSash,this._southSash.orthogonalEndSash=this._eastSash;let e,t=0,i=0;this._sashListener.add(ft.any(this._northSash.onDidStart,this._eastSash.onDidStart,this._southSash.onDidStart,this._westSash.onDidStart)(()=>{e===void 0&&(this._onDidWillResize.fire(),e=this._size,t=0,i=0)})),this._sashListener.add(ft.any(this._northSash.onDidEnd,this._eastSash.onDidEnd,this._southSash.onDidEnd,this._westSash.onDidEnd)(()=>{e!==void 0&&(e=void 0,t=0,i=0,this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(this._eastSash.onDidChange(r=>{e&&(i=r.currentX-r.startX,this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,east:!0}))})),this._sashListener.add(this._westSash.onDidChange(r=>{e&&(i=-(r.currentX-r.startX),this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,west:!0}))})),this._sashListener.add(this._northSash.onDidChange(r=>{e&&(t=-(r.currentY-r.startY),this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,north:!0}))})),this._sashListener.add(this._southSash.onDidChange(r=>{e&&(t=r.currentY-r.startY,this.layout(e.height+t,e.width+i),this._onDidResize.fire({dimension:this._size,done:!1,south:!0}))})),this._sashListener.add(ft.any(this._eastSash.onDidReset,this._westSash.onDidReset)(r=>{this._preferredSize&&(this.layout(this._size.height,this._preferredSize.width),this._onDidResize.fire({dimension:this._size,done:!0}))})),this._sashListener.add(ft.any(this._northSash.onDidReset,this._southSash.onDidReset)(r=>{this._preferredSize&&(this.layout(this._preferredSize.height,this._size.width),this._onDidResize.fire({dimension:this._size,done:!0}))}))}dispose(){this._northSash.dispose(),this._southSash.dispose(),this._eastSash.dispose(),this._westSash.dispose(),this._sashListener.dispose(),this._onDidResize.dispose(),this._onDidWillResize.dispose(),this.domNode.remove()}enableSashes(e,t,i,r){this._northSash.state=e?3:0,this._eastSash.state=t?3:0,this._southSash.state=i?3:0,this._westSash.state=r?3:0}layout(e=this.size.height,t=this.size.width){const{height:i,width:r}=this._minSize,{height:o,width:s}=this._maxSize;e=Math.max(i,Math.min(o,e)),t=Math.max(r,Math.min(s,t));const a=new fi(t,e);fi.equals(a,this._size)||(this.domNode.style.height=e+"px",this.domNode.style.width=t+"px",this._size=a,this._northSash.layout(),this._eastSash.layout(),this._southSash.layout(),this._westSash.layout())}clearSashHoverState(){this._eastSash.clearSashHoverState(),this._westSash.clearSashHoverState(),this._northSash.clearSashHoverState(),this._southSash.clearSashHoverState()}get size(){return this._size}set maxSize(e){this._maxSize=e}get maxSize(){return this._maxSize}set minSize(e){this._minSize=e}get minSize(){return this._minSize}set preferredSize(e){this._preferredSize=e}get preferredSize(){return this._preferredSize}}const NDt=30,kDt=24;class MDt extends De{constructor(e,t=new fi(10,10)){super(),this._editor=e,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._resizableNode=this._register(new MK),this._contentPosition=null,this._isResizing=!1,this._resizableNode.domNode.style.position="absolute",this._resizableNode.minSize=fi.lift(t),this._resizableNode.layout(t.height,t.width),this._resizableNode.enableSashes(!0,!0,!0,!0),this._register(this._resizableNode.onDidResize(i=>{this._resize(new fi(i.dimension.width,i.dimension.height)),i.done&&(this._isResizing=!1)})),this._register(this._resizableNode.onDidWillResize(()=>{this._isResizing=!0}))}get isResizing(){return this._isResizing}getDomNode(){return this._resizableNode.domNode}getPosition(){return this._contentPosition}get position(){var e;return!((e=this._contentPosition)===null||e===void 0)&&e.position?ve.lift(this._contentPosition.position):void 0}_availableVerticalSpaceAbove(e){const t=this._editor.getDomNode(),i=this._editor.getScrolledVisiblePosition(e);return!t||!i?void 0:go(t).top+i.top-NDt}_availableVerticalSpaceBelow(e){const t=this._editor.getDomNode(),i=this._editor.getScrolledVisiblePosition(e);if(!t||!i)return;const r=go(t),o=pf(t.ownerDocument.body),s=r.top+i.top+i.height;return o.height-s-kDt}_findPositionPreference(e,t){var i,r;const o=Math.min((i=this._availableVerticalSpaceBelow(t))!==null&&i!==void 0?i:1/0,e),s=Math.min((r=this._availableVerticalSpaceAbove(t))!==null&&r!==void 0?r:1/0,e),a=Math.min(Math.max(s,o),e),l=Math.min(e,a);let u;return this._editor.getOption(60).above?u=l<=s?1:2:u=l<=o?2:1,u===1?this._resizableNode.enableSashes(!0,!0,!1,!1):this._resizableNode.enableSashes(!1,!0,!0,!1),u}_resize(e){this._resizableNode.layout(e.height,e.width)}}var ZK=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Wv=function(n,e){return function(t,i){e(t,i,n)}},cR,wm;const Jwe=vt;let dR=cR=class extends De{constructor(e,t,i){super(),this._editor=e,this._instantiationService=t,this._keybindingService=i,this._currentResult=null,this._widget=this._register(this._instantiationService.createInstance(L0,this._editor)),this._participants=[];for(const r of x0.getAll())this._participants.push(this._instantiationService.createInstance(r,this._editor));this._participants.sort((r,o)=>r.hoverOrdinal-o.hoverOrdinal),this._computer=new gR(this._editor,this._participants),this._hoverOperation=this._register(new Uwe(this._editor,this._computer)),this._register(this._hoverOperation.onResult(r=>{if(!this._computer.anchor)return;const o=r.hasLoadingMessage?this._addLoadingMessage(r.value):r.value;this._withResult(new Kwe(this._computer.anchor,o,r.isComplete))})),this._register(Gr(this._widget.getDomNode(),"keydown",r=>{r.equals(9)&&this.hide()})),this._register(mo.onDidChange(()=>{this._widget.position&&this._currentResult&&this._setCurrentResult(this._currentResult)}))}_startShowingOrUpdateHover(e,t,i,r,o){return!this._widget.position||!this._currentResult?e?(this._startHoverOperationIfNecessary(e,t,i,r,!1),!0):!1:this._editor.getOption(60).sticky&&o&&this._widget.isMouseGettingCloser(o.event.posx,o.event.posy)?(e&&this._startHoverOperationIfNecessary(e,t,i,r,!0),!0):e?e&&this._currentResult.anchor.equals(e)?!0:e.canAdoptVisibleHover(this._currentResult.anchor,this._widget.position)?(this._setCurrentResult(this._currentResult.filter(e)),this._startHoverOperationIfNecessary(e,t,i,r,!1),!0):(this._setCurrentResult(null),this._startHoverOperationIfNecessary(e,t,i,r,!1),!0):(this._setCurrentResult(null),!1)}_startHoverOperationIfNecessary(e,t,i,r,o){this._computer.anchor&&this._computer.anchor.equals(e)||(this._hoverOperation.cancel(),this._computer.anchor=e,this._computer.shouldFocus=r,this._computer.source=i,this._computer.insistOnKeepingHoverVisible=o,this._hoverOperation.start(t))}_setCurrentResult(e){this._currentResult!==e&&(e&&e.messages.length===0&&(e=null),this._currentResult=e,this._currentResult?this._renderMessages(this._currentResult.anchor,this._currentResult.messages):this._widget.hide())}_addLoadingMessage(e){if(this._computer.anchor){for(const t of this._participants)if(t.createLoadingMessage){const i=t.createLoadingMessage(this._computer.anchor);if(i)return e.slice(0).concat([i])}}return e}_withResult(e){this._widget.position&&this._currentResult&&this._currentResult.isComplete&&(!e.isComplete||this._computer.insistOnKeepingHoverVisible&&e.messages.length===0)||this._setCurrentResult(e)}_renderMessages(e,t){const{showAtPosition:i,showAtSecondaryPosition:r,highlightRange:o}=cR.computeHoverRanges(this._editor,e.range,t),s=new je,a=s.add(new hR(this._keybindingService)),l=document.createDocumentFragment();let u=null;const c={fragment:l,statusBar:a,setColorPicker:h=>u=h,onContentsChanged:()=>this._widget.onContentsChanged(),setMinimumDimensions:h=>this._widget.setMinimumDimensions(h),hide:()=>this.hide()};for(const h of this._participants){const g=t.filter(m=>m.owner===h);g.length>0&&s.add(h.renderHoverParts(c,g))}const d=t.some(h=>h.isBeforeContent);if(a.hasContent&&l.appendChild(a.hoverElement),l.hasChildNodes()){if(o){const h=this._editor.createDecorationsCollection();h.set([{range:o,options:cR._DECORATION_OPTIONS}]),s.add(en(()=>{h.clear()}))}this._widget.showAt(l,new TDt(e.initialMousePosX,e.initialMousePosY,u,i,r,this._editor.getOption(60).above,this._computer.shouldFocus,this._computer.source,d,s))}else s.dispose()}static computeHoverRanges(e,t,i){let r=1;if(e.hasModel()){const d=e._getViewModel(),h=d.coordinatesConverter,g=h.convertModelRangeToViewRange(t),m=new ve(g.startLineNumber,d.getLineMinColumn(g.startLineNumber));r=h.convertViewPositionToModelPosition(m).column}const o=t.startLineNumber;let s=t.startColumn,a=i[0].range,l=null;for(const d of i)a=K.plusRange(a,d.range),d.range.startLineNumber===o&&d.range.endLineNumber===o&&(s=Math.max(Math.min(s,d.range.startColumn),r)),d.forceShowAtRange&&(l=d.range);const u=l?l.getStartPosition():new ve(o,t.startColumn),c=l?l.getStartPosition():new ve(o,s);return{showAtPosition:u,showAtSecondaryPosition:c,highlightRange:a}}showsOrWillShow(e){if(this._widget.isResizing)return!0;const t=[];for(const r of this._participants)if(r.suggestHoverAnchor){const o=r.suggestHoverAnchor(e);o&&t.push(o)}const i=e.target;if(i.type===6&&t.push(new kK(0,i.range,e.event.posx,e.event.posy)),i.type===7){const r=this._editor.getOption(50).typicalHalfwidthCharacterWidth/2;!i.detail.isAfterLines&&typeof i.detail.horizontalDistanceToText=="number"&&i.detail.horizontalDistanceToTexto.priority-r.priority),this._startShowingOrUpdateHover(t[0],0,0,!1,e))}startShowingAtRange(e,t,i,r){this._startShowingOrUpdateHover(new kK(0,e,void 0,void 0),t,i,r,null)}containsNode(e){return e?this._widget.getDomNode().contains(e):!1}focus(){this._widget.focus()}scrollUp(){this._widget.scrollUp()}scrollDown(){this._widget.scrollDown()}scrollLeft(){this._widget.scrollLeft()}scrollRight(){this._widget.scrollRight()}pageUp(){this._widget.pageUp()}pageDown(){this._widget.pageDown()}goToTop(){this._widget.goToTop()}goToBottom(){this._widget.goToBottom()}hide(){this._computer.anchor=null,this._hoverOperation.cancel(),this._setCurrentResult(null)}get isColorPickerVisible(){return this._widget.isColorPickerVisible}get isVisibleFromKeyboard(){return this._widget.isVisibleFromKeyboard}get isVisible(){return this._widget.isVisible}get isFocused(){return this._widget.isFocused}get isResizing(){return this._widget.isResizing}get widget(){return this._widget}};dR._DECORATION_OPTIONS=In.register({description:"content-hover-highlight",className:"hoverHighlight"}),dR=cR=ZK([Wv(1,tn),Wv(2,Pi)],dR);class Kwe{constructor(e,t,i){this.anchor=e,this.messages=t,this.isComplete=i}filter(e){const t=this.messages.filter(i=>i.isValidForHoverAnchor(e));return t.length===this.messages.length?this:new ZDt(this,this.anchor,t,this.isComplete)}}class ZDt extends Kwe{constructor(e,t,i,r){super(t,i,r),this.original=e}filter(e){return this.original.filter(e)}}class TDt{constructor(e,t,i,r,o,s,a,l,u,c){this.initialMousePosX=e,this.initialMousePosY=t,this.colorPicker=i,this.showAtPosition=r,this.showAtSecondaryPosition=o,this.preferAbove=s,this.stoleFocus=a,this.source=l,this.isBeforeContent=u,this.disposables=c,this.closestMouseDistance=void 0}}const jwe=30,TK=10,EDt=6;let L0=wm=class extends MDt{get isColorPickerVisible(){var e;return!!(!((e=this._visibleData)===null||e===void 0)&&e.colorPicker)}get isVisibleFromKeyboard(){var e;return((e=this._visibleData)===null||e===void 0?void 0:e.source)===1}get isVisible(){var e;return(e=this._hoverVisibleKey.get())!==null&&e!==void 0?e:!1}get isFocused(){var e;return(e=this._hoverFocusedKey.get())!==null&&e!==void 0?e:!1}constructor(e,t,i,r,o){const s=e.getOption(67)+8,a=150,l=new fi(a,s);super(e,l),this._configurationService=i,this._accessibilityService=r,this._keybindingService=o,this._hover=this._register(new NK),this._minimumSize=l,this._hoverVisibleKey=ne.hoverVisible.bindTo(t),this._hoverFocusedKey=ne.hoverFocused.bindTo(t),Je(this._resizableNode.domNode,this._hover.containerDomNode),this._resizableNode.domNode.style.zIndex="50",this._register(this._editor.onDidLayoutChange(()=>{this.isVisible&&this._updateMaxDimensions()})),this._register(this._editor.onDidChangeConfiguration(c=>{c.hasChanged(50)&&this._updateFont()}));const u=this._register(ph(this._resizableNode.domNode));this._register(u.onDidFocus(()=>{this._hoverFocusedKey.set(!0)})),this._register(u.onDidBlur(()=>{this._hoverFocusedKey.set(!1)})),this._setHoverData(void 0),this._editor.addContentWidget(this)}dispose(){var e;super.dispose(),(e=this._visibleData)===null||e===void 0||e.disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return wm.ID}static _applyDimensions(e,t,i){const r=typeof t=="number"?`${t}px`:t,o=typeof i=="number"?`${i}px`:i;e.style.width=r,e.style.height=o}_setContentsDomNodeDimensions(e,t){const i=this._hover.contentsDomNode;return wm._applyDimensions(i,e,t)}_setContainerDomNodeDimensions(e,t){const i=this._hover.containerDomNode;return wm._applyDimensions(i,e,t)}_setHoverWidgetDimensions(e,t){this._setContentsDomNodeDimensions(e,t),this._setContainerDomNodeDimensions(e,t),this._layoutContentWidget()}static _applyMaxDimensions(e,t,i){const r=typeof t=="number"?`${t}px`:t,o=typeof i=="number"?`${i}px`:i;e.style.maxWidth=r,e.style.maxHeight=o}_setHoverWidgetMaxDimensions(e,t){wm._applyMaxDimensions(this._hover.contentsDomNode,e,t),wm._applyMaxDimensions(this._hover.containerDomNode,e,t),this._hover.containerDomNode.style.setProperty("--vscode-hover-maxWidth",typeof e=="number"?`${e}px`:e),this._layoutContentWidget()}_hasHorizontalScrollbar(){const e=this._hover.scrollbar.getScrollDimensions();return e.scrollWidth>e.width}_adjustContentsBottomPadding(){const e=this._hover.contentsDomNode,t=`${this._hover.scrollbar.options.horizontalScrollbarSize}px`;e.style.paddingBottom!==t&&(e.style.paddingBottom=t)}_setAdjustedHoverWidgetDimensions(e){this._setHoverWidgetMaxDimensions("none","none");const t=e.width,i=e.height;this._setHoverWidgetDimensions(t,i),this._hasHorizontalScrollbar()&&(this._adjustContentsBottomPadding(),this._setContentsDomNodeDimensions(t,i-TK))}_updateResizableNodeMaxDimensions(){var e,t;const i=(e=this._findMaximumRenderingWidth())!==null&&e!==void 0?e:1/0,r=(t=this._findMaximumRenderingHeight())!==null&&t!==void 0?t:1/0;this._resizableNode.maxSize=new fi(i,r),this._setHoverWidgetMaxDimensions(i,r)}_resize(e){var t,i;wm._lastDimensions=new fi(e.width,e.height),this._setAdjustedHoverWidgetDimensions(e),this._resizableNode.layout(e.height,e.width),this._updateResizableNodeMaxDimensions(),this._hover.scrollbar.scanDomNode(),this._editor.layoutContentWidget(this),(i=(t=this._visibleData)===null||t===void 0?void 0:t.colorPicker)===null||i===void 0||i.layout()}_findAvailableSpaceVertically(){var e;const t=(e=this._visibleData)===null||e===void 0?void 0:e.showAtPosition;if(t)return this._positionPreference===1?this._availableVerticalSpaceAbove(t):this._availableVerticalSpaceBelow(t)}_findMaximumRenderingHeight(){const e=this._findAvailableSpaceVertically();if(!e)return;let t=EDt;return Array.from(this._hover.contentsDomNode.children).forEach(i=>{t+=i.clientHeight}),this._hasHorizontalScrollbar()&&(t+=TK),Math.min(e,t)}_isHoverTextOverflowing(){this._hover.containerDomNode.style.setProperty("--vscode-hover-whiteSpace","nowrap"),this._hover.containerDomNode.style.setProperty("--vscode-hover-sourceWhiteSpace","nowrap");const e=Array.from(this._hover.contentsDomNode.children).some(t=>t.scrollWidth>t.clientWidth);return this._hover.containerDomNode.style.removeProperty("--vscode-hover-whiteSpace"),this._hover.containerDomNode.style.removeProperty("--vscode-hover-sourceWhiteSpace"),e}_findMaximumRenderingWidth(){if(!this._editor||!this._editor.hasModel())return;const e=this._isHoverTextOverflowing(),t=typeof this._contentWidth>"u"?0:this._contentWidth-2;return e||this._hover.containerDomNode.clientWidth"u"||typeof this._visibleData.initialMousePosY>"u")return this._visibleData.initialMousePosX=e,this._visibleData.initialMousePosY=t,!1;const i=go(this.getDomNode());typeof this._visibleData.closestMouseDistance>"u"&&(this._visibleData.closestMouseDistance=Qwe(this._visibleData.initialMousePosX,this._visibleData.initialMousePosY,i.left,i.top,i.width,i.height));const r=Qwe(e,t,i.left,i.top,i.width,i.height);return r>this._visibleData.closestMouseDistance+4?!1:(this._visibleData.closestMouseDistance=Math.min(this._visibleData.closestMouseDistance,r),!0)}_setHoverData(e){var t;(t=this._visibleData)===null||t===void 0||t.disposables.dispose(),this._visibleData=e,this._hoverVisibleKey.set(!!e),this._hover.containerDomNode.classList.toggle("hidden",!e)}_updateFont(){const{fontSize:e,lineHeight:t}=this._editor.getOption(50),i=this._hover.contentsDomNode;i.style.fontSize=`${e}px`,i.style.lineHeight=`${t/e}`,Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(o=>this._editor.applyFontInfo(o))}_updateContent(e){const t=this._hover.contentsDomNode;t.style.paddingBottom="",t.textContent="",t.appendChild(e)}_layoutContentWidget(){this._editor.layoutContentWidget(this),this._hover.onContentsChanged()}_updateMaxDimensions(){const e=Math.max(this._editor.getLayoutInfo().height/4,250,wm._lastDimensions.height),t=Math.max(this._editor.getLayoutInfo().width*.66,500,wm._lastDimensions.width);this._setHoverWidgetMaxDimensions(t,e)}_render(e,t){this._setHoverData(t),this._updateFont(),this._updateContent(e),this._updateMaxDimensions(),this.onContentsChanged(),this._editor.render()}getPosition(){var e;return this._visibleData?{position:this._visibleData.showAtPosition,secondaryPosition:this._visibleData.showAtSecondaryPosition,positionAffinity:this._visibleData.isBeforeContent?3:void 0,preference:[(e=this._positionPreference)!==null&&e!==void 0?e:1]}:null}showAt(e,t){var i,r,o,s;if(!this._editor||!this._editor.hasModel())return;this._render(e,t);const a=bf(this._hover.containerDomNode),l=t.showAtPosition;this._positionPreference=(i=this._findPositionPreference(a,l))!==null&&i!==void 0?i:1,this.onContentsChanged(),t.stoleFocus&&this._hover.containerDomNode.focus(),(r=t.colorPicker)===null||r===void 0||r.layout();const c=this._hover.containerDomNode.ownerDocument.activeElement===this._hover.containerDomNode&&Hwe(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),(s=(o=this._keybindingService.lookupKeybinding("editor.action.accessibleView"))===null||o===void 0?void 0:o.getAriaLabel())!==null&&s!==void 0?s:"");c&&(this._hover.contentsDomNode.ariaLabel=this._hover.contentsDomNode.textContent+", "+c)}hide(){if(!this._visibleData)return;const e=this._visibleData.stoleFocus||this._hoverFocusedKey.get();this._setHoverData(void 0),this._resizableNode.maxSize=new fi(1/0,1/0),this._resizableNode.clearSashHoverState(),this._hoverFocusedKey.set(!1),this._editor.layoutContentWidget(this),e&&this._editor.focus()}_removeConstraintsRenderNormally(){const e=this._editor.getLayoutInfo();this._resizableNode.layout(e.height,e.width),this._setHoverWidgetDimensions("auto","auto")}_adjustHoverHeightForScrollbar(e){var t;const i=this._hover.containerDomNode,r=this._hover.contentsDomNode,o=(t=this._findMaximumRenderingHeight())!==null&&t!==void 0?t:1/0;this._setContainerDomNodeDimensions(Ja(i),Math.min(o,e)),this._setContentsDomNodeDimensions(Ja(r),Math.min(o,e-TK))}setMinimumDimensions(e){this._minimumSize=new fi(Math.max(this._minimumSize.width,e.width),Math.max(this._minimumSize.height,e.height)),this._updateMinimumWidth()}_updateMinimumWidth(){const e=typeof this._contentWidth>"u"?this._minimumSize.width:Math.min(this._contentWidth,this._minimumSize.width);this._resizableNode.minSize=new fi(e,this._minimumSize.height)}onContentsChanged(){var e;this._removeConstraintsRenderNormally();const t=this._hover.containerDomNode;let i=bf(t),r=Ja(t);if(this._resizableNode.layout(i,r),this._setHoverWidgetDimensions(r,i),i=bf(t),r=Ja(t),this._contentWidth=r,this._updateMinimumWidth(),this._resizableNode.layout(i,r),this._hasHorizontalScrollbar()&&(this._adjustContentsBottomPadding(),this._adjustHoverHeightForScrollbar(i)),!((e=this._visibleData)===null||e===void 0)&&e.showAtPosition){const o=bf(this._hover.containerDomNode);this._positionPreference=this._findPositionPreference(o,this._visibleData.showAtPosition)}this._layoutContentWidget()}focus(){this._hover.containerDomNode.focus()}scrollUp(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:e-t.lineHeight})}scrollDown(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._editor.getOption(50);this._hover.scrollbar.setScrollPosition({scrollTop:e+t.lineHeight})}scrollLeft(){const e=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:e-jwe})}scrollRight(){const e=this._hover.scrollbar.getScrollPosition().scrollLeft;this._hover.scrollbar.setScrollPosition({scrollLeft:e+jwe})}pageUp(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:e-t})}pageDown(){const e=this._hover.scrollbar.getScrollPosition().scrollTop,t=this._hover.scrollbar.getScrollDimensions().height;this._hover.scrollbar.setScrollPosition({scrollTop:e+t})}goToTop(){this._hover.scrollbar.setScrollPosition({scrollTop:0})}goToBottom(){this._hover.scrollbar.setScrollPosition({scrollTop:this._hover.scrollbar.getScrollDimensions().scrollHeight})}};L0.ID="editor.contrib.resizableContentHoverWidget",L0._lastDimensions=new fi(0,0),L0=wm=ZK([Wv(1,ln),Wv(2,Xn),Wv(3,vd),Wv(4,Pi)],L0);let hR=class extends De{get hasContent(){return this._hasContent}constructor(e){super(),this._keybindingService=e,this._hasContent=!1,this.hoverElement=Jwe("div.hover-row.status-bar"),this.actionsElement=Je(this.hoverElement,Jwe("div.actions"))}addAction(e){const t=this._keybindingService.lookupKeybinding(e.commandId),i=t?t.getLabel():null;return this._hasContent=!0,this._register(uR.render(this.actionsElement,e,i))}append(e){const t=Je(this.actionsElement,e);return this._hasContent=!0,t}};hR=ZK([Wv(0,Pi)],hR);class gR{get anchor(){return this._anchor}set anchor(e){this._anchor=e}get shouldFocus(){return this._shouldFocus}set shouldFocus(e){this._shouldFocus=e}get source(){return this._source}set source(e){this._source=e}get insistOnKeepingHoverVisible(){return this._insistOnKeepingHoverVisible}set insistOnKeepingHoverVisible(e){this._insistOnKeepingHoverVisible=e}constructor(e,t){this._editor=e,this._participants=t,this._anchor=null,this._shouldFocus=!1,this._source=0,this._insistOnKeepingHoverVisible=!1}static _getLineDecorations(e,t){if(t.type!==1&&!t.supportsMarkerHover)return[];const i=e.getModel(),r=t.range.startLineNumber;if(r>i.getLineCount())return[];const o=i.getLineMaxColumn(r);return e.getLineDecorations(r).filter(s=>{if(s.options.isWholeLine)return!0;const a=s.range.startLineNumber===r?s.range.startColumn:1,l=s.range.endLineNumber===r?s.range.endColumn:o;if(s.options.showIfCollapsed){if(a>t.range.startColumn+1||t.range.endColumn-1>l)return!1}else if(a>t.range.startColumn||t.range.endColumn>l)return!1;return!0})}computeAsync(e){const t=this._anchor;if(!this._editor.hasModel()||!t)return So.EMPTY;const i=gR._getLineDecorations(this._editor,t);return So.merge(this._participants.map(r=>r.computeAsync?r.computeAsync(t,i,e):So.EMPTY))}computeSync(){if(!this._editor.hasModel()||!this._anchor)return[];const e=gR._getLineDecorations(this._editor,this._anchor);let t=[];for(const i of this._participants)t=t.concat(i.computeSync(this._anchor,e));return Gg(t)}}function Qwe(n,e,t,i,r,o){const s=t+r/2,a=i+o/2,l=Math.max(Math.abs(n-s)-r/2,0),u=Math.max(Math.abs(e-a)-o/2,0);return Math.sqrt(l*l+u*u)}const $we=vt;class kw extends De{constructor(e,t,i){super(),this._renderDisposeables=this._register(new je),this._editor=e,this._isVisible=!1,this._messages=[],this._hover=this._register(new NK),this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible),this._markdownRenderer=this._register(new mm({editor:this._editor},t,i)),this._computer=new WDt(this._editor),this._hoverOperation=this._register(new Uwe(this._editor,this._computer)),this._register(this._hoverOperation.onResult(r=>{this._withResult(r.value)})),this._register(this._editor.onDidChangeModelDecorations(()=>this._onModelDecorationsChanged())),this._register(this._editor.onDidChangeConfiguration(r=>{r.hasChanged(50)&&this._updateFont()})),this._editor.addOverlayWidget(this)}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return kw.ID}getDomNode(){return this._hover.containerDomNode}getPosition(){return null}_updateFont(){Array.prototype.slice.call(this._hover.contentsDomNode.getElementsByClassName("code")).forEach(t=>this._editor.applyFontInfo(t))}_onModelDecorationsChanged(){this._isVisible&&(this._hoverOperation.cancel(),this._hoverOperation.start(0))}startShowingAt(e,t){this._computer.lineNumber===e&&this._computer.lane===t||(this._hoverOperation.cancel(),this.hide(),this._computer.lineNumber=e,this._computer.lane=t,this._hoverOperation.start(0))}hide(){this._computer.lineNumber=-1,this._hoverOperation.cancel(),this._isVisible&&(this._isVisible=!1,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible))}_withResult(e){this._messages=e,this._messages.length>0?this._renderMessages(this._computer.lineNumber,this._messages):this.hide()}_renderMessages(e,t){this._renderDisposeables.clear();const i=document.createDocumentFragment();for(const r of t){const o=$we("div.hover-row.markdown-hover"),s=Je(o,$we("div.hover-contents")),a=this._renderDisposeables.add(this._markdownRenderer.render(r.value));s.appendChild(a.element),i.appendChild(o)}this._updateContents(i),this._showAt(e)}_updateContents(e){this._hover.contentsDomNode.textContent="",this._hover.contentsDomNode.appendChild(e),this._updateFont()}_showAt(e){this._isVisible||(this._isVisible=!0,this._hover.containerDomNode.classList.toggle("hidden",!this._isVisible));const t=this._editor.getLayoutInfo(),i=this._editor.getTopForLineNumber(e),r=this._editor.getScrollTop(),o=this._editor.getOption(67),s=this._hover.containerDomNode.clientHeight,a=i-r-(s-o)/2,l=t.glyphMarginLeft+t.glyphMarginWidth+(this._computer.lane==="lineNo"?t.lineNumbersWidth:0);this._hover.containerDomNode.style.left=`${l}px`,this._hover.containerDomNode.style.top=`${Math.max(Math.round(a),0)}px`}}kw.ID="editor.contrib.modesGlyphHoverWidget";class WDt{get lineNumber(){return this._lineNumber}set lineNumber(e){this._lineNumber=e}get lane(){return this._laneOrLine}set lane(e){this._laneOrLine=e}constructor(e){this._editor=e,this._lineNumber=-1,this._laneOrLine=Qg.Center}computeSync(){var e,t;const i=a=>({value:a}),r=this._editor.getLineDecorations(this._lineNumber),o=[],s=this._laneOrLine==="lineNo";if(!r)return o;for(const a of r){const l=(t=(e=a.options.glyphMargin)===null||e===void 0?void 0:e.position)!==null&&t!==void 0?t:Qg.Center;if(!s&&l!==this._laneOrLine)continue;const u=s?a.options.lineNumberHoverMessage:a.options.glyphMarginHoverMessage;!u||iw(u)||o.push(...gH(u).map(i))}return o}}class RDt{constructor(e,t,i){this.provider=e,this.hover=t,this.ordinal=i}}async function GDt(n,e,t,i,r){try{const o=await Promise.resolve(n.provideHover(t,i,r));if(o&&XDt(o))return new RDt(n,o,e)}catch(o){wo(o)}}function EK(n,e,t,i){const o=n.ordered(e).map((s,a)=>GDt(s,a,e,t,i));return So.fromPromises(o).coalesce()}function VDt(n,e,t,i){return EK(n,e,t,i).map(r=>r.hover).toPromise()}Wg("_executeHoverProvider",(n,e,t)=>{const i=n.get(Tt);return VDt(i.hoverProvider,e,t,Hn.None)});function XDt(n){const e=typeof n.range<"u",t=typeof n.contents<"u"&&n.contents&&n.contents.length>0;return e&&t}var PDt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},mR=function(n,e){return function(t,i){e(t,i,n)}};const qwe=vt;class Vh{constructor(e,t,i,r,o){this.owner=e,this.range=t,this.contents=i,this.isBeforeContent=r,this.ordinal=o}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let fR=class{constructor(e,t,i,r,o){this._editor=e,this._languageService=t,this._openerService=i,this._configurationService=r,this._languageFeaturesService=o,this.hoverOrdinal=3}createLoadingMessage(e){return new Vh(this,e.range,[new ga().appendText(x("modesContentHover.loading","Loading..."))],!1,2e3)}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1)return[];const i=this._editor.getModel(),r=e.range.startLineNumber,o=i.getLineMaxColumn(r),s=[];let a=1e3;const l=i.getLineLength(r),u=i.getLanguageIdAtPosition(e.range.startLineNumber,e.range.startColumn),c=this._editor.getOption(117),d=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:u});let h=!1;c>=0&&l>c&&e.range.startColumn>=c&&(h=!0,s.push(new Vh(this,e.range,[{value:x("stopped rendering","Rendering paused for long line for performance reasons. This can be configured via `editor.stopRenderingLineAfter`.")}],!1,a++))),!h&&typeof d=="number"&&l>=d&&s.push(new Vh(this,e.range,[{value:x("too many characters","Tokenization is skipped for long lines for performance reasons. This can be configured via `editor.maxTokenizationLineLength`.")}],!1,a++));let g=!1;for(const m of t){const f=m.range.startLineNumber===r?m.range.startColumn:1,b=m.range.endLineNumber===r?m.range.endColumn:o,C=m.options.hoverMessage;if(!C||iw(C))continue;m.options.beforeContentClassName&&(g=!0);const v=new K(e.range.startLineNumber,f,e.range.startLineNumber,b);s.push(new Vh(this,v,gH(C),g,a++))}return s}computeAsync(e,t,i){if(!this._editor.hasModel()||e.type!==1)return So.EMPTY;const r=this._editor.getModel();if(!this._languageFeaturesService.hoverProvider.has(r))return So.EMPTY;const o=new ve(e.range.startLineNumber,e.range.startColumn);return EK(this._languageFeaturesService.hoverProvider,r,o,i).filter(s=>!iw(s.hover.contents)).map(s=>{const a=s.hover.range?K.lift(s.hover.range):e.range;return new Vh(this,a,s.hover.contents,!1,s.ordinal)})}renderHoverParts(e,t){return eSe(e,t,this._editor,this._languageService,this._openerService)}};fR=PDt([mR(1,Cr),mR(2,Rl),mR(3,Xn),mR(4,Tt)],fR);function eSe(n,e,t,i,r){e.sort((s,a)=>s.ordinal-a.ordinal);const o=new je;for(const s of e)for(const a of s.contents){if(iw(a))continue;const l=qwe("div.hover-row.markdown-hover"),u=Je(l,qwe("div.hover-contents")),c=o.add(new mm({editor:t},i,r));o.add(c.onDidRenderAsync(()=>{u.className="hover-contents code-hover-contents",n.onContentsChanged()}));const d=o.add(c.render(a));u.appendChild(d.element),n.fragment.appendChild(l)}return o}var tSe=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},pR=function(n,e){return function(t,i){e(t,i,n)}};class nSe{constructor(e,t,i){this.marker=e,this.index=t,this.total=i}}let WK=class{constructor(e,t,i){this._markerService=t,this._configService=i,this._onDidChange=new be,this.onDidChange=this._onDidChange.event,this._dispoables=new je,this._markers=[],this._nextIdx=-1,$t.isUri(e)?this._resourceFilter=a=>a.toString()===e.toString():e&&(this._resourceFilter=e);const r=this._configService.getValue("problems.sortOrder"),o=(a,l)=>{let u=AF(a.resource.toString(),l.resource.toString());return u===0&&(r==="position"?u=K.compareRangesUsingStarts(a,l)||Er.compare(a.severity,l.severity):u=Er.compare(a.severity,l.severity)||K.compareRangesUsingStarts(a,l)),u},s=()=>{this._markers=this._markerService.read({resource:$t.isUri(e)?e:void 0,severities:Er.Error|Er.Warning|Er.Info}),typeof e=="function"&&(this._markers=this._markers.filter(a=>this._resourceFilter(a.resource))),this._markers.sort(o)};s(),this._dispoables.add(t.onMarkerChanged(a=>{(!this._resourceFilter||a.some(l=>this._resourceFilter(l)))&&(s(),this._nextIdx=-1,this._onDidChange.fire())}))}dispose(){this._dispoables.dispose(),this._onDidChange.dispose()}matches(e){return!this._resourceFilter&&!e?!0:!this._resourceFilter||!e?!1:this._resourceFilter(e)}get selected(){const e=this._markers[this._nextIdx];return e&&new nSe(e,this._nextIdx+1,this._markers.length)}_initIdx(e,t,i){let r=!1,o=this._markers.findIndex(s=>s.resource.toString()===e.uri.toString());o<0&&(o=zF(this._markers,{resource:e.uri},(s,a)=>AF(s.resource.toString(),a.resource.toString())),o<0&&(o=~o));for(let s=o;sr.resource.toString()===e.toString());if(!(i<0)){for(;i=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Mw=function(n,e){return function(t,i){e(t,i,n)}},VK;class BDt{constructor(e,t,i,r,o){this._openerService=r,this._labelService=o,this._lines=0,this._longestLineLength=0,this._relatedDiagnostics=new WeakMap,this._disposables=new je,this._editor=t;const s=document.createElement("div");s.className="descriptioncontainer",this._messageBlock=document.createElement("div"),this._messageBlock.classList.add("message"),this._messageBlock.setAttribute("aria-live","assertive"),this._messageBlock.setAttribute("role","alert"),s.appendChild(this._messageBlock),this._relatedBlock=document.createElement("div"),s.appendChild(this._relatedBlock),this._disposables.add(Gr(this._relatedBlock,"click",a=>{a.preventDefault();const l=this._relatedDiagnostics.get(a.target);l&&i(l)})),this._scrollable=new j1e(s,{horizontal:1,vertical:1,useShadows:!1,horizontalScrollbarSize:6,verticalScrollbarSize:6}),e.appendChild(this._scrollable.getDomNode()),this._disposables.add(this._scrollable.onScroll(a=>{s.style.left=`-${a.scrollLeft}px`,s.style.top=`-${a.scrollTop}px`})),this._disposables.add(this._scrollable)}dispose(){Mi(this._disposables)}update(e){const{source:t,message:i,relatedInformation:r,code:o}=e;let s=((t==null?void 0:t.length)||0)+2;o&&(typeof o=="string"?s+=o.length:s+=o.value.length);const a=Zg(i);this._lines=a.length,this._longestLineLength=0;for(const h of a)this._longestLineLength=Math.max(h.length+s,this._longestLineLength);la(this._messageBlock),this._messageBlock.setAttribute("aria-label",this.getAriaLabel(e)),this._editor.applyFontInfo(this._messageBlock);let l=this._messageBlock;for(const h of a)l=document.createElement("div"),l.innerText=h,h===""&&(l.style.height=this._messageBlock.style.lineHeight),this._messageBlock.appendChild(l);if(t||o){const h=document.createElement("span");if(h.classList.add("details"),l.appendChild(h),t){const g=document.createElement("span");g.innerText=t,g.classList.add("source"),h.appendChild(g)}if(o)if(typeof o=="string"){const g=document.createElement("span");g.innerText=`(${o})`,g.classList.add("code"),h.appendChild(g)}else{this._codeLink=vt("a.code-link"),this._codeLink.setAttribute("href",`${o.target.toString()}`),this._codeLink.onclick=m=>{this._openerService.open(o.target,{allowCommands:!0}),m.preventDefault(),m.stopPropagation()};const g=Je(this._codeLink,vt("span"));g.innerText=o.value,h.appendChild(this._codeLink)}}if(la(this._relatedBlock),this._editor.applyFontInfo(this._relatedBlock),da(r)){const h=this._relatedBlock.appendChild(document.createElement("div"));h.style.paddingTop=`${Math.floor(this._editor.getOption(67)*.66)}px`,this._lines+=1;for(const g of r){const m=document.createElement("div"),f=document.createElement("a");f.classList.add("filename"),f.innerText=`${this._labelService.getUriBasenameLabel(g.resource)}(${g.startLineNumber}, ${g.startColumn}): `,f.title=this._labelService.getUriLabel(g.resource),this._relatedDiagnostics.set(f,g);const b=document.createElement("span");b.innerText=g.message,m.appendChild(f),m.appendChild(b),this._lines+=1,h.appendChild(m)}}const u=this._editor.getOption(50),c=Math.ceil(u.typicalFullwidthCharacterWidth*this._longestLineLength*.75),d=u.lineHeight*this._lines;this._scrollable.setScrollDimensions({scrollWidth:c,scrollHeight:d})}layout(e,t){this._scrollable.getDomNode().style.height=`${e}px`,this._scrollable.getDomNode().style.width=`${t}px`,this._scrollable.setScrollDimensions({width:t,height:e})}getHeightInLines(){return Math.min(17,this._lines)}getAriaLabel(e){let t="";switch(e.severity){case Er.Error:t=x("Error","Error");break;case Er.Warning:t=x("Warning","Warning");break;case Er.Info:t=x("Info","Info");break;case Er.Hint:t=x("Hint","Hint");break}let i=x("marker aria","{0} at {1}. ",t,e.startLineNumber+":"+e.startColumn);const r=this._editor.getModel();return r&&e.startLineNumber<=r.getLineCount()&&e.startLineNumber>=1&&(i=`${r.getLineContent(e.startLineNumber)}, ${i}`),i}}let Zw=VK=class extends kW{constructor(e,t,i,r,o,s,a){super(e,{showArrow:!0,showFrame:!0,isAccessible:!0,frameWidth:1},o),this._themeService=t,this._openerService=i,this._menuService=r,this._contextKeyService=s,this._labelService=a,this._callOnDispose=new je,this._onDidSelectRelatedInformation=new be,this.onDidSelectRelatedInformation=this._onDidSelectRelatedInformation.event,this._severity=Er.Warning,this._backgroundColor=Ee.white,this._applyTheme(t.getColorTheme()),this._callOnDispose.add(t.onDidColorThemeChange(this._applyTheme.bind(this))),this.create()}_applyTheme(e){this._backgroundColor=e.getColor(UDt);let t=XK,i=zDt;this._severity===Er.Warning?(t=bR,i=YDt):this._severity===Er.Info&&(t=PK,i=HDt);const r=e.getColor(t),o=e.getColor(i);this.style({arrowColor:r,frameColor:r,headerBackgroundColor:o,primaryHeadingColor:e.getColor(twe),secondaryHeadingColor:e.getColor(nwe)})}_applyStyles(){this._parentContainer&&(this._parentContainer.style.backgroundColor=this._backgroundColor?this._backgroundColor.toString():""),super._applyStyles()}dispose(){this._callOnDispose.dispose(),super.dispose()}_fillHead(e){super._fillHead(e),this._disposables.add(this._actionbarWidget.actionRunner.onWillRun(r=>this.editor.focus()));const t=[],i=this._menuService.createMenu(VK.TitleMenu,this._contextKeyService);NW(i,void 0,t),this._actionbarWidget.push(t,{label:!1,icon:!0,index:0}),i.dispose()}_fillTitleIcon(e){this._icon=Je(e,vt(""))}_fillBody(e){this._parentContainer=e,e.classList.add("marker-widget"),this._parentContainer.tabIndex=0,this._parentContainer.setAttribute("role","tooltip"),this._container=document.createElement("div"),e.appendChild(this._container),this._message=new BDt(this._container,this.editor,t=>this._onDidSelectRelatedInformation.fire(t),this._openerService,this._labelService),this._disposables.add(this._message)}show(){throw new Error("call showAtMarker")}showAtMarker(e,t,i){this._container.classList.remove("stale"),this._message.update(e),this._severity=e.severity,this._applyTheme(this._themeService.getColorTheme());const r=K.lift(e),o=this.editor.getPosition(),s=o&&r.containsPosition(o)?o:r.getStartPosition();super.show(s,this.computeRequiredHeight());const a=this.editor.getModel();if(a){const l=i>1?x("problems","{0} of {1} problems",t,i):x("change","{0} of {1} problem",t,i);this.setTitle(Ec(a.uri),l)}this._icon.className=`codicon ${GK.className(Er.toSeverity(this._severity))}`,this.editor.revealPositionNearTop(s,0),this.editor.focus()}updateMarker(e){this._container.classList.remove("stale"),this._message.update(e)}showStale(){this._container.classList.add("stale"),this._relayout()}_doLayoutBody(e,t){super._doLayoutBody(e,t),this._heightInPixel=e,this._message.layout(e,t),this._container.style.height=`${e}px`}_onWidth(e){this._message.layout(this._heightInPixel,e)}_relayout(){super._relayout(this.computeRequiredHeight())}computeRequiredHeight(){return 3+this._message.getHeightInLines()}};Zw.TitleMenu=new $("gotoErrorTitleMenu"),Zw=VK=ODt([Mw(1,ts),Mw(2,Rl),Mw(3,wc),Mw(4,tn),Mw(5,ln),Mw(6,_w)],Zw);const rSe=c_(Yg,abt),oSe=c_(Sa,o_),sSe=c_(Tl,s_),XK=re("editorMarkerNavigationError.background",{dark:rSe,light:rSe,hcDark:jn,hcLight:jn},x("editorMarkerNavigationError","Editor marker navigation widget error color.")),zDt=re("editorMarkerNavigationError.headerBackground",{dark:Bt(XK,.1),light:Bt(XK,.1),hcDark:null,hcLight:null},x("editorMarkerNavigationErrorHeaderBackground","Editor marker navigation widget error heading background.")),bR=re("editorMarkerNavigationWarning.background",{dark:oSe,light:oSe,hcDark:jn,hcLight:jn},x("editorMarkerNavigationWarning","Editor marker navigation widget warning color.")),YDt=re("editorMarkerNavigationWarning.headerBackground",{dark:Bt(bR,.1),light:Bt(bR,.1),hcDark:"#0C141F",hcLight:Bt(bR,.2)},x("editorMarkerNavigationWarningBackground","Editor marker navigation widget warning heading background.")),PK=re("editorMarkerNavigationInfo.background",{dark:sSe,light:sSe,hcDark:jn,hcLight:jn},x("editorMarkerNavigationInfo","Editor marker navigation widget info color.")),HDt=re("editorMarkerNavigationInfo.headerBackground",{dark:Bt(PK,.1),light:Bt(PK,.1),hcDark:null,hcLight:null},x("editorMarkerNavigationInfoHeaderBackground","Editor marker navigation widget info heading background.")),UDt=re("editorMarkerNavigation.background",{dark:es,light:es,hcDark:es,hcLight:es},x("editorMarkerNavigationBackground","Editor marker navigation widget background."));var JDt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},CR=function(n,e){return function(t,i){e(t,i,n)}},mA;let F0=mA=class{static get(e){return e.getContribution(mA.ID)}constructor(e,t,i,r,o){this._markerNavigationService=t,this._contextKeyService=i,this._editorService=r,this._instantiationService=o,this._sessionDispoables=new je,this._editor=e,this._widgetVisible=aSe.bindTo(this._contextKeyService)}dispose(){this._cleanUp(),this._sessionDispoables.dispose()}_cleanUp(){this._widgetVisible.reset(),this._sessionDispoables.clear(),this._widget=void 0,this._model=void 0}_getOrCreateModel(e){if(this._model&&this._model.matches(e))return this._model;let t=!1;return this._model&&(t=!0,this._cleanUp()),this._model=this._markerNavigationService.getMarkerList(e),t&&this._model.move(!0,this._editor.getModel(),this._editor.getPosition()),this._widget=this._instantiationService.createInstance(Zw,this._editor),this._widget.onDidClose(()=>this.close(),this,this._sessionDispoables),this._widgetVisible.set(!0),this._sessionDispoables.add(this._model),this._sessionDispoables.add(this._widget),this._sessionDispoables.add(this._editor.onDidChangeCursorPosition(i=>{var r,o,s;(!(!((r=this._model)===null||r===void 0)&&r.selected)||!K.containsPosition((o=this._model)===null||o===void 0?void 0:o.selected.marker,i.position))&&((s=this._model)===null||s===void 0||s.resetIndex())})),this._sessionDispoables.add(this._model.onDidChange(()=>{if(!this._widget||!this._widget.position||!this._model)return;const i=this._model.find(this._editor.getModel().uri,this._widget.position);i?this._widget.updateMarker(i.marker):this._widget.showStale()})),this._sessionDispoables.add(this._widget.onDidSelectRelatedInformation(i=>{this._editorService.openCodeEditor({resource:i.resource,options:{pinned:!0,revealIfOpened:!0,selection:K.lift(i).collapseToStart()}},this._editor),this.close(!1)})),this._sessionDispoables.add(this._editor.onDidChangeModel(()=>this._cleanUp())),this._model}close(e=!0){this._cleanUp(),e&&this._editor.focus()}showAtMarker(e){if(this._editor.hasModel()){const t=this._getOrCreateModel(this._editor.getModel().uri);t.resetIndex(),t.move(!0,this._editor.getModel(),new ve(e.startLineNumber,e.startColumn)),t.selected&&this._widget.showAtMarker(t.selected.marker,t.selected.index,t.selected.total)}}async nagivate(e,t){var i,r;if(this._editor.hasModel()){const o=this._getOrCreateModel(t?void 0:this._editor.getModel().uri);if(o.move(e,this._editor.getModel(),this._editor.getPosition()),!o.selected)return;if(o.selected.marker.resource.toString()!==this._editor.getModel().uri.toString()){this._cleanUp();const s=await this._editorService.openCodeEditor({resource:o.selected.marker.resource,options:{pinned:!1,revealIfOpened:!0,selectionRevealType:2,selection:o.selected.marker}},this._editor);s&&((i=mA.get(s))===null||i===void 0||i.close(),(r=mA.get(s))===null||r===void 0||r.nagivate(e,t))}else this._widget.showAtMarker(o.selected.marker,o.selected.index,o.selected.total)}}};F0.ID="editor.contrib.markerController",F0=mA=JDt([CR(1,iSe),CR(2,ln),CR(3,yi),CR(4,tn)],F0);class vR extends Nt{constructor(e,t,i){super(i),this._next=e,this._multiFile=t}async run(e,t){var i;t.hasModel()&&((i=F0.get(t))===null||i===void 0||i.nagivate(this._next,this._multiFile))}}class _0 extends vR{constructor(){super(!0,!1,{id:_0.ID,label:_0.LABEL,alias:"Go to Next Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:ne.focus,primary:578,weight:100},menuOpts:{menuId:Zw.TitleMenu,title:_0.LABEL,icon:io("marker-navigation-next",ct.arrowDown,x("nextMarkerIcon","Icon for goto next marker.")),group:"navigation",order:1}})}}_0.ID="editor.action.marker.next",_0.LABEL=x("markerAction.next.label","Go to Next Problem (Error, Warning, Info)");class Rv extends vR{constructor(){super(!1,!1,{id:Rv.ID,label:Rv.LABEL,alias:"Go to Previous Problem (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:ne.focus,primary:1602,weight:100},menuOpts:{menuId:Zw.TitleMenu,title:Rv.LABEL,icon:io("marker-navigation-previous",ct.arrowUp,x("previousMarkerIcon","Icon for goto previous marker.")),group:"navigation",order:2}})}}Rv.ID="editor.action.marker.prev",Rv.LABEL=x("markerAction.previous.label","Go to Previous Problem (Error, Warning, Info)");class KDt extends vR{constructor(){super(!0,!0,{id:"editor.action.marker.nextInFiles",label:x("markerAction.nextInFiles.label","Go to Next Problem in Files (Error, Warning, Info)"),alias:"Go to Next Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:ne.focus,primary:66,weight:100},menuOpts:{menuId:$.MenubarGoMenu,title:x({key:"miGotoNextProblem",comment:["&& denotes a mnemonic"]},"Next &&Problem"),group:"6_problem_nav",order:1}})}}class jDt extends vR{constructor(){super(!1,!0,{id:"editor.action.marker.prevInFiles",label:x("markerAction.previousInFiles.label","Go to Previous Problem in Files (Error, Warning, Info)"),alias:"Go to Previous Problem in Files (Error, Warning, Info)",precondition:void 0,kbOpts:{kbExpr:ne.focus,primary:1090,weight:100},menuOpts:{menuId:$.MenubarGoMenu,title:x({key:"miGotoPreviousProblem",comment:["&& denotes a mnemonic"]},"Previous &&Problem"),group:"6_problem_nav",order:2}})}}Ii(F0.ID,F0,4),it(_0),it(Rv),it(KDt),it(jDt);const aSe=new It("markersNavigationVisible",!1),QDt=cs.bindToContribution(F0.get);mt(new QDt({id:"closeMarkersNavigation",precondition:aSe,handler:n=>n.close(),kbOpts:{weight:150,kbExpr:ne.focus,primary:9,secondary:[1033]}}));var $Dt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},OK=function(n,e){return function(t,i){e(t,i,n)}};const kd=vt;class qDt{constructor(e,t,i){this.owner=e,this.range=t,this.marker=i}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}const lSe={type:1,filter:{include:dn.QuickFix},triggerAction:gu.QuickFixHover};let BK=class{constructor(e,t,i,r){this._editor=e,this._markerDecorationsService=t,this._openerService=i,this._languageFeaturesService=r,this.hoverOrdinal=1,this.recentMarkerCodeActionsInfo=void 0}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1&&!e.supportsMarkerHover)return[];const i=this._editor.getModel(),r=e.range.startLineNumber,o=i.getLineMaxColumn(r),s=[];for(const a of t){const l=a.range.startLineNumber===r?a.range.startColumn:1,u=a.range.endLineNumber===r?a.range.endColumn:o,c=this._markerDecorationsService.getMarker(i.uri,a);if(!c)continue;const d=new K(e.range.startLineNumber,l,e.range.startLineNumber,u);s.push(new qDt(this,d,c))}return s}renderHoverParts(e,t){if(!t.length)return De.None;const i=new je;t.forEach(o=>e.fragment.appendChild(this.renderMarkerHover(o,i)));const r=t.length===1?t[0]:t.sort((o,s)=>Er.compare(o.marker.severity,s.marker.severity))[0];return this.renderMarkerStatusbar(e,r,i),i}renderMarkerHover(e,t){const i=kd("div.hover-row"),r=Je(i,kd("div.marker.hover-contents")),{source:o,message:s,code:a,relatedInformation:l}=e.marker;this._editor.applyFontInfo(r);const u=Je(r,kd("span"));if(u.style.whiteSpace="pre-wrap",u.innerText=s,o||a)if(a&&typeof a!="string"){const c=kd("span");if(o){const m=Je(c,kd("span"));m.innerText=o}const d=Je(c,kd("a.code-link"));d.setAttribute("href",a.target.toString()),t.add(Ve(d,"click",m=>{this._openerService.open(a.target,{allowCommands:!0}),m.preventDefault(),m.stopPropagation()}));const h=Je(d,kd("span"));h.innerText=a.value;const g=Je(r,c);g.style.opacity="0.6",g.style.paddingLeft="6px"}else{const c=Je(r,kd("span"));c.style.opacity="0.6",c.style.paddingLeft="6px",c.innerText=o&&a?`${o}(${a})`:o||`(${a})`}if(da(l))for(const{message:c,resource:d,startLineNumber:h,startColumn:g}of l){const m=Je(r,kd("div"));m.style.marginTop="8px";const f=Je(m,kd("a"));f.innerText=`${Ec(d)}(${h}, ${g}): `,f.style.cursor="pointer",t.add(Ve(f,"click",C=>{C.stopPropagation(),C.preventDefault(),this._openerService&&this._openerService.open(d,{fromUserGesture:!0,editorOptions:{selection:{startLineNumber:h,startColumn:g}}}).catch(fn)}));const b=Je(m,kd("span"));b.innerText=c,this._editor.applyFontInfo(b)}return i}renderMarkerStatusbar(e,t,i){if(t.marker.severity===Er.Error||t.marker.severity===Er.Warning||t.marker.severity===Er.Info){const r=F0.get(this._editor);r&&e.statusBar.addAction({label:x("view problem","View Problem"),commandId:_0.ID,run:()=>{e.hide(),r.showAtMarker(t.marker),this._editor.focus()}})}if(!this._editor.getOption(91)){const r=e.statusBar.append(kd("div"));this.recentMarkerCodeActionsInfo&&(pW.makeKey(this.recentMarkerCodeActionsInfo.marker)===pW.makeKey(t.marker)?this.recentMarkerCodeActionsInfo.hasCodeActions||(r.textContent=x("noQuickFixes","No quick fixes available")):this.recentMarkerCodeActionsInfo=void 0);const o=this.recentMarkerCodeActionsInfo&&!this.recentMarkerCodeActionsInfo.hasCodeActions?De.None:Cb(()=>r.textContent=x("checkingForQuickFixes","Checking for quick fixes..."),200,i);r.textContent||(r.textContent=" ");const s=this.getCodeActions(t.marker);i.add(en(()=>s.cancel())),s.then(a=>{if(o.dispose(),this.recentMarkerCodeActionsInfo={marker:t.marker,hasCodeActions:a.validActions.length>0},!this.recentMarkerCodeActionsInfo.hasCodeActions){a.dispose(),r.textContent=x("noQuickFixes","No quick fixes available");return}r.style.display="none";let l=!1;i.add(en(()=>{l||a.dispose()})),e.statusBar.addAction({label:x("quick fixes","Quick Fix..."),commandId:yU,run:u=>{l=!0;const c=m0.get(this._editor),d=go(u);e.hide(),c==null||c.showCodeActions(lSe,a,{x:d.left,y:d.top,width:d.width,height:d.height})}})},fn)}}getCodeActions(e){return $o(t=>TD(this._languageFeaturesService.codeActionProvider,this._editor.getModel(),new K(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),lSe,ep.None,t))}};BK=$Dt([OK(1,FH),OK(2,Rl),OK(3,Tt)],BK);const uSe="editor.action.inlineSuggest.commit",cSe="editor.action.inlineSuggest.showPrevious",dSe="editor.action.inlineSuggest.showNext";class eAt extends De{constructor(e,t,i={orientation:0}){var r;super(),this.submenuActionViewItems=[],this.hasSecondaryActions=!1,this._onDidChangeDropdownVisibility=this._register(new dht),this.onDidChangeDropdownVisibility=this._onDidChangeDropdownVisibility.event,this.disposables=this._register(new je),i.hoverDelegate=(r=i.hoverDelegate)!==null&&r!==void 0?r:this._register(Kf("element",!0)),this.options=i,this.lookupKeybindings=typeof this.options.getKeyBinding=="function",this.toggleMenuAction=this._register(new fA(()=>{var o;return(o=this.toggleMenuActionViewItem)===null||o===void 0?void 0:o.show()},i.toggleMenuTitle)),this.element=document.createElement("div"),this.element.className="monaco-toolbar",e.appendChild(this.element),this.actionBar=this._register(new Rc(this.element,{orientation:i.orientation,ariaLabel:i.ariaLabel,actionRunner:i.actionRunner,allowContextMenu:i.allowContextMenu,highlightToggledItems:i.highlightToggledItems,hoverDelegate:i.hoverDelegate,actionViewItemProvider:(o,s)=>{var a;if(o.id===fA.ID)return this.toggleMenuActionViewItem=new DW(o,o.menuActions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:on.asClassNameArray((a=i.moreIcon)!==null&&a!==void 0?a:ct.toolBarMore),anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,isMenu:!0,hoverDelegate:this.options.hoverDelegate}),this.toggleMenuActionViewItem.setActionContext(this.actionBar.context),this.disposables.add(this._onDidChangeDropdownVisibility.add(this.toggleMenuActionViewItem.onDidChangeVisibility)),this.toggleMenuActionViewItem;if(i.actionViewItemProvider){const l=i.actionViewItemProvider(o,s);if(l)return l}if(o instanceof qI){const l=new DW(o,o.actions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:o.class,anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,hoverDelegate:this.options.hoverDelegate});return l.setActionContext(this.actionBar.context),this.submenuActionViewItems.push(l),this.disposables.add(this._onDidChangeDropdownVisibility.add(l.onDidChangeVisibility)),l}}}))}set actionRunner(e){this.actionBar.actionRunner=e}get actionRunner(){return this.actionBar.actionRunner}getElement(){return this.element}getItemAction(e){return this.actionBar.getAction(e)}setActions(e,t){this.clear();const i=e?e.slice(0):[];this.hasSecondaryActions=!!(t&&t.length>0),this.hasSecondaryActions&&t&&(this.toggleMenuAction.menuActions=t.slice(0),i.push(this.toggleMenuAction)),i.forEach(r=>{this.actionBar.push(r,{icon:!0,label:!1,keybinding:this.getKeybindingLabel(r)})})}getKeybindingLabel(e){var t,i,r;const o=this.lookupKeybindings?(i=(t=this.options).getKeyBinding)===null||i===void 0?void 0:i.call(t,e):void 0;return(r=o==null?void 0:o.getLabel())!==null&&r!==void 0?r:void 0}clear(){this.submenuActionViewItems=[],this.disposables.clear(),this.actionBar.clear()}dispose(){this.clear(),this.disposables.dispose(),super.dispose()}}class fA extends su{constructor(e,t){t=t||x("moreActions","More Actions..."),super(fA.ID,t,void 0,!0),this._menuActions=[],this.toggleDropdownMenu=e}async run(){this.toggleDropdownMenu()}get menuActions(){return this._menuActions}set menuActions(e){this._menuActions=e}}fA.ID="toolbar.toggle.more";function tAt(n,e){const t=[],i=[];for(const r of n)e.has(r)||t.push(r);for(const r of e)n.has(r)||i.push(r);return{removed:t,added:i}}function nAt(n,e){const t=new Set;for(const i of e)n.has(i)&&t.add(i);return t}var hSe=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Sm=function(n,e){return function(t,i){e(t,i,n)}};let pA=class extends eAt{constructor(e,t,i,r,o,s,a){super(e,o,{getKeyBinding:u=>{var c;return(c=s.lookupKeybinding(u.id))!==null&&c!==void 0?c:void 0},...t,allowContextMenu:!0,skipTelemetry:typeof(t==null?void 0:t.telemetrySource)=="string"}),this._options=t,this._menuService=i,this._contextKeyService=r,this._contextMenuService=o,this._sessionDisposables=this._store.add(new je);const l=t==null?void 0:t.telemetrySource;l&&this._store.add(this.actionBar.onDidRun(u=>a.publicLog2("workbenchActionExecuted",{id:u.action.id,from:l})))}setActions(e,t=[],i){var r,o,s;this._sessionDisposables.clear();const a=e.slice(),l=t.slice(),u=[];let c=0;const d=[];let h=!1;if(((r=this._options)===null||r===void 0?void 0:r.hiddenItemStrategy)!==-1)for(let g=0;gb==null?void 0:b.id)),m=this._options.overflowBehavior.maxItems-g.size;let f=0;for(let b=0;b=m&&(a[b]=void 0,d[b]=C))}}L0e(a),L0e(d),super.setActions(a,To.join(d,l)),u.length>0&&this._sessionDisposables.add(Ve(this.getElement(),"contextmenu",g=>{var m,f,b,C,v;const w=new dd(qt(this.getElement()),g),S=this.getItemAction(w.target);if(!S)return;w.preventDefault(),w.stopPropagation();let F=!1;if(c===1&&((m=this._options)===null||m===void 0?void 0:m.hiddenItemStrategy)===0){F=!0;for(let A=0;Athis._menuService.resetHiddenStates(i)}))),this._contextMenuService.showContextMenu({getAnchor:()=>w,getActions:()=>D,menuId:(b=this._options)===null||b===void 0?void 0:b.contextMenu,menuActionOptions:{renderShortTitle:!0,...(C=this._options)===null||C===void 0?void 0:C.menuOptions},skipTelemetry:typeof((v=this._options)===null||v===void 0?void 0:v.telemetrySource)=="string",contextKeyService:this._contextKeyService})}))}};pA=hSe([Sm(2,wc),Sm(3,ln),Sm(4,hu),Sm(5,Pi),Sm(6,Nl)],pA);let zK=class extends pA{constructor(e,t,i,r,o,s,a,l){super(e,{resetMenu:t,...i},r,o,s,a,l),this._onDidChangeMenuItems=this._store.add(new be);const u=this._store.add(r.createMenu(t,o,{emitEventsForSubmenuChanges:!0})),c=()=>{var d,h,g;const m=[],f=[];NW(u,i==null?void 0:i.menuOptions,{primary:m,secondary:f},(d=i==null?void 0:i.toolbarOptions)===null||d===void 0?void 0:d.primaryGroup,(h=i==null?void 0:i.toolbarOptions)===null||h===void 0?void 0:h.shouldInlineSubmenu,(g=i==null?void 0:i.toolbarOptions)===null||g===void 0?void 0:g.useSeparatorsInPrimaryActions),e.classList.toggle("has-no-actions",m.length===0&&f.length===0),super.setActions(m,f)};this._store.add(u.onDidChange(()=>{c(),this._onDidChangeMenuItems.fire(this)})),c()}setActions(){throw new br("This toolbar is populated from a menu.")}};zK=hSe([Sm(3,wc),Sm(4,ln),Sm(5,hu),Sm(6,Pi),Sm(7,Nl)],zK);var YK=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Xh=function(n,e){return function(t,i){e(t,i,n)}},yR;let HK=class extends De{constructor(e,t,i){super(),this.editor=e,this.model=t,this.instantiationService=i,this.alwaysShowToolbar=mr(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).showToolbar==="always"),this.sessionPosition=void 0,this.position=gn(this,r=>{var o,s,a;const l=(o=this.model.read(r))===null||o===void 0?void 0:o.primaryGhostText.read(r);if(!this.alwaysShowToolbar.read(r)||!l||l.parts.length===0)return this.sessionPosition=void 0,null;const u=l.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==l.lineNumber&&(this.sessionPosition=void 0);const c=new ve(l.lineNumber,Math.min(u,(a=(s=this.sessionPosition)===null||s===void 0?void 0:s.column)!==null&&a!==void 0?a:Number.MAX_SAFE_INTEGER));return this.sessionPosition=c,c}),this._register(kh((r,o)=>{const s=this.model.read(r);if(!s||!this.alwaysShowToolbar.read(r))return;const a=o.add(this.instantiationService.createInstance(D0,this.editor,!0,this.position,s.selectedInlineCompletionIndex,s.inlineCompletionsCount,s.selectedInlineCompletion.map(l=>{var u;return(u=l==null?void 0:l.inlineCompletion.source.inlineCompletions.commands)!==null&&u!==void 0?u:[]})));e.addContentWidget(a),o.add(en(()=>e.removeContentWidget(a))),o.add(Jn(l=>{this.position.read(l)&&s.lastTriggerKind.read(l)!==Wf.Explicit&&s.triggerExplicitly()}))}))}};HK=YK([Xh(2,tn)],HK);const iAt=io("inline-suggestion-hints-next",ct.chevronRight,x("parameterHintsNextIcon","Icon for show next parameter hint.")),rAt=io("inline-suggestion-hints-previous",ct.chevronLeft,x("parameterHintsPreviousIcon","Icon for show previous parameter hint."));let D0=yR=class extends De{static get dropDownVisible(){return this._dropDownVisible}createCommandAction(e,t,i){const r=new su(e,t,i,!0,()=>this._commandService.executeCommand(e)),o=this.keybindingService.lookupKeybinding(e,this._contextKeyService);let s=t;return o&&(s=x({key:"content",comment:["A label","A keybinding"]},"{0} ({1})",t,o.getLabel())),r.tooltip=s,r}constructor(e,t,i,r,o,s,a,l,u,c,d){super(),this.editor=e,this.withBorder=t,this._position=i,this._currentSuggestionIdx=r,this._suggestionCount=o,this._extraCommands=s,this._commandService=a,this.keybindingService=u,this._contextKeyService=c,this._menuService=d,this.id=`InlineSuggestionHintsContentWidget${yR.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=Xi("div.inlineSuggestionsHints",{className:this.withBorder?".withBorder":""},[Xi("div@toolBar")]),this.previousAction=this.createCommandAction(cSe,x("previous","Previous"),on.asClassName(rAt)),this.availableSuggestionCountAction=new su("inlineSuggestionHints.availableSuggestionCount","",void 0,!1),this.nextAction=this.createCommandAction(dSe,x("next","Next"),on.asClassName(iAt)),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu($.InlineCompletionsActions,this._contextKeyService)),this.clearAvailableSuggestionCountLabelDebounced=this._register(new Vi(()=>{this.availableSuggestionCountAction.label=""},100)),this.disableButtonsDebounced=this._register(new Vi(()=>{this.previousAction.enabled=this.nextAction.enabled=!1},100)),this.lastCommands=[],this.toolBar=this._register(l.createInstance(UK,this.nodes.toolBar,$.InlineSuggestionToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:h=>h.startsWith("primary")},actionViewItemProvider:(h,g)=>{if(h instanceof Wu)return l.createInstance(sAt,h,void 0);if(h===this.availableSuggestionCountAction){const m=new oAt(void 0,h,{label:!0,icon:!1});return m.setClass("availableSuggestionCount"),m}},telemetrySource:"InlineSuggestionToolbar"})),this.toolBar.setPrependedPrimaryActions([this.previousAction,this.availableSuggestionCountAction,this.nextAction]),this._register(this.toolBar.onDidChangeDropdownVisibility(h=>{yR._dropDownVisible=h})),this._register(Jn(h=>{this._position.read(h),this.editor.layoutContentWidget(this)})),this._register(Jn(h=>{const g=this._suggestionCount.read(h),m=this._currentSuggestionIdx.read(h);g!==void 0?(this.clearAvailableSuggestionCountLabelDebounced.cancel(),this.availableSuggestionCountAction.label=`${m+1}/${g}`):this.clearAvailableSuggestionCountLabelDebounced.schedule(),g!==void 0&&g>1?(this.disableButtonsDebounced.cancel(),this.previousAction.enabled=this.nextAction.enabled=!0):this.disableButtonsDebounced.schedule()})),this._register(Jn(h=>{const g=this._extraCommands.read(h);if(Ar(this.lastCommands,g))return;this.lastCommands=g;const m=g.map(f=>({class:void 0,id:f.id,enabled:!0,tooltip:f.tooltip||"",label:f.title,run:b=>this._commandService.executeCommand(f.id)}));for(const[f,b]of this.inlineCompletionsActionsMenus.getActions())for(const C of b)C instanceof Wu&&m.push(C);m.length>0&&m.unshift(new To),this.toolBar.setAdditionalSecondaryActions(m)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};D0._dropDownVisible=!1,D0.id=0,D0=yR=YK([Xh(6,Vr),Xh(7,tn),Xh(8,Pi),Xh(9,ln),Xh(10,wc)],D0);class oAt extends ow{constructor(){super(...arguments),this._className=void 0}setClass(e){this._className=e}render(e){super.render(e),this._className&&e.classList.add(this._className)}updateTooltip(){}}let sAt=class extends v0{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();if(this.label){const t=Xi("div.keybinding").root;new pw(t,eu,{disableTitle:!0,...qIe}).set(e),this.label.textContent=this._action.label,this.label.appendChild(t),this.label.classList.add("inlineSuggestionStatusBarItemLabel")}}updateTooltip(){}},UK=class extends pA{constructor(e,t,i,r,o,s,a,l){super(e,{resetMenu:t,...i},r,o,s,a,l),this.menuId=t,this.options2=i,this.menuService=r,this.contextKeyService=o,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){var e,t,i,r,o,s,a;const l=[],u=[];NW(this.menu,(e=this.options2)===null||e===void 0?void 0:e.menuOptions,{primary:l,secondary:u},(i=(t=this.options2)===null||t===void 0?void 0:t.toolbarOptions)===null||i===void 0?void 0:i.primaryGroup,(o=(r=this.options2)===null||r===void 0?void 0:r.toolbarOptions)===null||o===void 0?void 0:o.shouldInlineSubmenu,(a=(s=this.options2)===null||s===void 0?void 0:s.toolbarOptions)===null||a===void 0?void 0:a.useSeparatorsInPrimaryActions),u.push(...this.additionalActions),l.unshift(...this.prependedPrimaryActions),this.setActions(l,u)}setPrependedPrimaryActions(e){Ar(this.prependedPrimaryActions,e,(t,i)=>t===i)||(this.prependedPrimaryActions=e,this.updateToolbar())}setAdditionalSecondaryActions(e){Ar(this.additionalActions,e,(t,i)=>t===i)||(this.additionalActions=e,this.updateToolbar())}};UK=YK([Xh(3,wc),Xh(4,ln),Xh(5,hu),Xh(6,Pi),Xh(7,Nl)],UK);var aAt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},IR=function(n,e){return function(t,i){e(t,i,n)}},JK;const lAt=!1;let Xl=JK=class extends De{constructor(e,t,i,r,o){super(),this._editor=e,this._instantiationService=t,this._openerService=i,this._languageService=r,this._keybindingService=o,this._listenersStore=new je,this._hoverState={mouseDown:!1,contentHoverFocused:!1,activatedByDecoratorClick:!1},this._reactToEditorMouseMoveRunner=this._register(new Vi(()=>this._reactToEditorMouseMove(this._mouseMoveEvent),0)),this._hookListeners(),this._register(this._editor.onDidChangeConfiguration(s=>{s.hasChanged(60)&&(this._unhookListeners(),this._hookListeners())}))}static get(e){return e.getContribution(JK.ID)}_hookListeners(){const e=this._editor.getOption(60);this._hoverSettings={enabled:e.enabled,sticky:e.sticky,hidingDelay:e.delay},e.enabled?(this._listenersStore.add(this._editor.onMouseDown(t=>this._onEditorMouseDown(t))),this._listenersStore.add(this._editor.onMouseUp(()=>this._onEditorMouseUp())),this._listenersStore.add(this._editor.onMouseMove(t=>this._onEditorMouseMove(t))),this._listenersStore.add(this._editor.onKeyDown(t=>this._onKeyDown(t)))):(this._listenersStore.add(this._editor.onMouseMove(t=>this._onEditorMouseMove(t))),this._listenersStore.add(this._editor.onKeyDown(t=>this._onKeyDown(t)))),this._listenersStore.add(this._editor.onMouseLeave(t=>this._onEditorMouseLeave(t))),this._listenersStore.add(this._editor.onDidChangeModel(()=>{this._cancelScheduler(),this._hideWidgets()})),this._listenersStore.add(this._editor.onDidChangeModelContent(()=>this._cancelScheduler())),this._listenersStore.add(this._editor.onDidScrollChange(t=>this._onEditorScrollChanged(t)))}_unhookListeners(){this._listenersStore.clear()}_cancelScheduler(){this._mouseMoveEvent=void 0,this._reactToEditorMouseMoveRunner.cancel()}_onEditorScrollChanged(e){(e.scrollTopChanged||e.scrollLeftChanged)&&this._hideWidgets()}_onEditorMouseDown(e){var t;this._hoverState.mouseDown=!0;const i=e.target;if(i.type===9&&i.detail===L0.ID){this._hoverState.contentHoverFocused=!0;return}i.type===12&&i.detail===kw.ID||(i.type!==12&&(this._hoverState.contentHoverFocused=!1),!(!((t=this._contentWidget)===null||t===void 0)&&t.widget.isResizing)&&this._hideWidgets())}_onEditorMouseUp(){this._hoverState.mouseDown=!1}_onEditorMouseLeave(e){var t,i;this._cancelScheduler();const r=e.event.browserEvent.relatedTarget;!((t=this._contentWidget)===null||t===void 0)&&t.widget.isResizing||!((i=this._contentWidget)===null||i===void 0)&&i.containsNode(r)||this._hideWidgets()}_isMouseOverWidget(e){var t,i,r,o,s;const a=e.target,l=this._hoverSettings.sticky;return!!(l&&a.type===9&&a.detail===L0.ID||l&&(!((t=this._contentWidget)===null||t===void 0)&&t.containsNode((i=e.event.browserEvent.view)===null||i===void 0?void 0:i.document.activeElement))&&!(!((o=(r=e.event.browserEvent.view)===null||r===void 0?void 0:r.getSelection())===null||o===void 0)&&o.isCollapsed)||!l&&a.type===9&&a.detail===L0.ID&&(!((s=this._contentWidget)===null||s===void 0)&&s.isColorPickerVisible)||l&&a.type===12&&a.detail===kw.ID)}_onEditorMouseMove(e){var t,i,r,o;if(this._mouseMoveEvent=e,!((t=this._contentWidget)===null||t===void 0)&&t.isFocused||!((i=this._contentWidget)===null||i===void 0)&&i.isResizing||this._hoverState.mouseDown&&this._hoverState.contentHoverFocused)return;const s=this._hoverSettings.sticky;if(s&&(!((r=this._contentWidget)===null||r===void 0)&&r.isVisibleFromKeyboard))return;if(this._isMouseOverWidget(e)){this._reactToEditorMouseMoveRunner.cancel();return}const l=this._hoverSettings.hidingDelay;if(!((o=this._contentWidget)===null||o===void 0)&&o.isVisible&&s&&l>0){this._reactToEditorMouseMoveRunner.isScheduled()||this._reactToEditorMouseMoveRunner.schedule(l);return}this._reactToEditorMouseMove(e)}_reactToEditorMouseMove(e){var t,i,r,o;if(!e)return;const s=e.target,a=(t=s.element)===null||t===void 0?void 0:t.classList.contains("colorpicker-color-decoration"),l=this._editor.getOption(147),u=this._hoverSettings.enabled,c=this._hoverState.activatedByDecoratorClick;if(a&&(l==="click"&&!c||l==="hover"&&!u&&!lAt||l==="clickAndHover"&&!u&&!c)||!a&&!u&&!c){this._hideWidgets();return}if(this._getOrCreateContentWidget().showsOrWillShow(e)){(i=this._glyphWidget)===null||i===void 0||i.hide();return}if(s.type===2&&s.position&&s.detail.glyphMarginLane){(r=this._contentWidget)===null||r===void 0||r.hide(),this._getOrCreateGlyphWidget().startShowingAt(s.position.lineNumber,s.detail.glyphMarginLane);return}if(s.type===3&&s.position){(o=this._contentWidget)===null||o===void 0||o.hide(),this._getOrCreateGlyphWidget().startShowingAt(s.position.lineNumber,"lineNo");return}this._hideWidgets()}_onKeyDown(e){var t;if(!this._editor.hasModel())return;const i=this._keybindingService.softDispatch(e,this._editor.getDomNode()),r=i.kind===1||i.kind===2&&i.commandId==="editor.action.showHover"&&((t=this._contentWidget)===null||t===void 0?void 0:t.isVisible);e.keyCode===5||e.keyCode===6||e.keyCode===57||e.keyCode===4||r||this._hideWidgets()}_hideWidgets(){var e,t,i;this._hoverState.mouseDown&&this._hoverState.contentHoverFocused&&(!((e=this._contentWidget)===null||e===void 0)&&e.isColorPickerVisible)||D0.dropDownVisible||(this._hoverState.activatedByDecoratorClick=!1,this._hoverState.contentHoverFocused=!1,(t=this._glyphWidget)===null||t===void 0||t.hide(),(i=this._contentWidget)===null||i===void 0||i.hide())}_getOrCreateContentWidget(){return this._contentWidget||(this._contentWidget=this._instantiationService.createInstance(dR,this._editor)),this._contentWidget}_getOrCreateGlyphWidget(){return this._glyphWidget||(this._glyphWidget=new kw(this._editor,this._languageService,this._openerService)),this._glyphWidget}showContentHover(e,t,i,r,o=!1){this._hoverState.activatedByDecoratorClick=o,this._getOrCreateContentWidget().startShowingAtRange(e,t,i,r)}focus(){var e;(e=this._contentWidget)===null||e===void 0||e.focus()}scrollUp(){var e;(e=this._contentWidget)===null||e===void 0||e.scrollUp()}scrollDown(){var e;(e=this._contentWidget)===null||e===void 0||e.scrollDown()}scrollLeft(){var e;(e=this._contentWidget)===null||e===void 0||e.scrollLeft()}scrollRight(){var e;(e=this._contentWidget)===null||e===void 0||e.scrollRight()}pageUp(){var e;(e=this._contentWidget)===null||e===void 0||e.pageUp()}pageDown(){var e;(e=this._contentWidget)===null||e===void 0||e.pageDown()}goToTop(){var e;(e=this._contentWidget)===null||e===void 0||e.goToTop()}goToBottom(){var e;(e=this._contentWidget)===null||e===void 0||e.goToBottom()}get isColorPickerVisible(){var e;return(e=this._contentWidget)===null||e===void 0?void 0:e.isColorPickerVisible}get isHoverVisible(){var e;return(e=this._contentWidget)===null||e===void 0?void 0:e.isVisible}dispose(){var e,t;super.dispose(),this._unhookListeners(),this._listenersStore.dispose(),(e=this._glyphWidget)===null||e===void 0||e.dispose(),(t=this._contentWidget)===null||t===void 0||t.dispose()}};Xl.ID="editor.contrib.hover",Xl=JK=aAt([IR(1,tn),IR(2,Rl),IR(3,Cr),IR(4,Pi)],Xl);var Ph;(function(n){n.NoAutoFocus="noAutoFocus",n.FocusIfVisible="focusIfVisible",n.AutoFocusImmediately="autoFocusImmediately"})(Ph||(Ph={}));class uAt extends Nt{constructor(){super({id:"editor.action.showHover",label:x({key:"showOrFocusHover",comment:["Label for action that will trigger the showing/focusing of a hover in the editor.","If the hover is not visible, it will show the hover.","This allows for users to show the hover without using the mouse."]},"Show or Focus Hover"),metadata:{description:"Show or Focus Hover",args:[{name:"args",schema:{type:"object",properties:{focus:{description:"Controls if and when the hover should take focus upon being triggered by this action.",enum:[Ph.NoAutoFocus,Ph.FocusIfVisible,Ph.AutoFocusImmediately],enumDescriptions:[x("showOrFocusHover.focus.noAutoFocus","The hover will not automatically take focus."),x("showOrFocusHover.focus.focusIfVisible","The hover will take focus only if it is already visible."),x("showOrFocusHover.focus.autoFocusImmediately","The hover will automatically take focus when it appears.")],default:Ph.FocusIfVisible}}}}]},alias:"Show or Focus Hover",precondition:void 0,kbOpts:{kbExpr:ne.editorTextFocus,primary:ko(2089,2087),weight:100}})}run(e,t,i){if(!t.hasModel())return;const r=Xl.get(t);if(!r)return;const o=i==null?void 0:i.focus;let s=Ph.FocusIfVisible;Object.values(Ph).includes(o)?s=o:typeof o=="boolean"&&o&&(s=Ph.AutoFocusImmediately);const a=u=>{const c=t.getPosition(),d=new K(c.lineNumber,c.column,c.lineNumber,c.column);r.showContentHover(d,1,1,u)},l=t.getOption(2)===2;r.isHoverVisible?s!==Ph.NoAutoFocus?r.focus():a(l):a(l||s===Ph.AutoFocusImmediately)}}class cAt extends Nt{constructor(){super({id:"editor.action.showDefinitionPreviewHover",label:x({key:"showDefinitionPreviewHover",comment:["Label for action that will trigger the showing of definition preview hover in the editor.","This allows for users to show the definition preview hover without using the mouse."]},"Show Definition Preview Hover"),alias:"Show Definition Preview Hover",precondition:void 0})}run(e,t){const i=Xl.get(t);if(!i)return;const r=t.getPosition();if(!r)return;const o=new K(r.lineNumber,r.column,r.lineNumber,r.column),s=Tv.get(t);if(!s)return;s.startFindDefinitionFromCursor(r).then(()=>{i.showContentHover(o,1,1,!0)})}}class dAt extends Nt{constructor(){super({id:"editor.action.scrollUpHover",label:x({key:"scrollUpHover",comment:["Action that allows to scroll up in the hover widget with the up arrow when the hover widget is focused."]},"Scroll Up Hover"),alias:"Scroll Up Hover",precondition:ne.hoverFocused,kbOpts:{kbExpr:ne.hoverFocused,primary:16,weight:100}})}run(e,t){const i=Xl.get(t);i&&i.scrollUp()}}class hAt extends Nt{constructor(){super({id:"editor.action.scrollDownHover",label:x({key:"scrollDownHover",comment:["Action that allows to scroll down in the hover widget with the up arrow when the hover widget is focused."]},"Scroll Down Hover"),alias:"Scroll Down Hover",precondition:ne.hoverFocused,kbOpts:{kbExpr:ne.hoverFocused,primary:18,weight:100}})}run(e,t){const i=Xl.get(t);i&&i.scrollDown()}}class gAt extends Nt{constructor(){super({id:"editor.action.scrollLeftHover",label:x({key:"scrollLeftHover",comment:["Action that allows to scroll left in the hover widget with the left arrow when the hover widget is focused."]},"Scroll Left Hover"),alias:"Scroll Left Hover",precondition:ne.hoverFocused,kbOpts:{kbExpr:ne.hoverFocused,primary:15,weight:100}})}run(e,t){const i=Xl.get(t);i&&i.scrollLeft()}}class mAt extends Nt{constructor(){super({id:"editor.action.scrollRightHover",label:x({key:"scrollRightHover",comment:["Action that allows to scroll right in the hover widget with the right arrow when the hover widget is focused."]},"Scroll Right Hover"),alias:"Scroll Right Hover",precondition:ne.hoverFocused,kbOpts:{kbExpr:ne.hoverFocused,primary:17,weight:100}})}run(e,t){const i=Xl.get(t);i&&i.scrollRight()}}class fAt extends Nt{constructor(){super({id:"editor.action.pageUpHover",label:x({key:"pageUpHover",comment:["Action that allows to page up in the hover widget with the page up command when the hover widget is focused."]},"Page Up Hover"),alias:"Page Up Hover",precondition:ne.hoverFocused,kbOpts:{kbExpr:ne.hoverFocused,primary:11,secondary:[528],weight:100}})}run(e,t){const i=Xl.get(t);i&&i.pageUp()}}class pAt extends Nt{constructor(){super({id:"editor.action.pageDownHover",label:x({key:"pageDownHover",comment:["Action that allows to page down in the hover widget with the page down command when the hover widget is focused."]},"Page Down Hover"),alias:"Page Down Hover",precondition:ne.hoverFocused,kbOpts:{kbExpr:ne.hoverFocused,primary:12,secondary:[530],weight:100}})}run(e,t){const i=Xl.get(t);i&&i.pageDown()}}class bAt extends Nt{constructor(){super({id:"editor.action.goToTopHover",label:x({key:"goToTopHover",comment:["Action that allows to go to the top of the hover widget with the home command when the hover widget is focused."]},"Go To Top Hover"),alias:"Go To Bottom Hover",precondition:ne.hoverFocused,kbOpts:{kbExpr:ne.hoverFocused,primary:14,secondary:[2064],weight:100}})}run(e,t){const i=Xl.get(t);i&&i.goToTop()}}class CAt extends Nt{constructor(){super({id:"editor.action.goToBottomHover",label:x({key:"goToBottomHover",comment:["Action that allows to go to the bottom in the hover widget with the end command when the hover widget is focused."]},"Go To Bottom Hover"),alias:"Go To Bottom Hover",precondition:ne.hoverFocused,kbOpts:{kbExpr:ne.hoverFocused,primary:13,secondary:[2066],weight:100}})}run(e,t){const i=Xl.get(t);i&&i.goToBottom()}}Ii(Xl.ID,Xl,2),it(uAt),it(cAt),it(dAt),it(hAt),it(gAt),it(mAt),it(fAt),it(pAt),it(bAt),it(CAt),x0.register(fR),x0.register(BK),kc((n,e)=>{const t=n.getColor(I1e);t&&(e.addRule(`.monaco-editor .monaco-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${t.transparent(.5)}; }`),e.addRule(`.monaco-editor .monaco-hover hr { border-top: 1px solid ${t.transparent(.5)}; }`),e.addRule(`.monaco-editor .monaco-hover hr { border-bottom: 0px solid ${t.transparent(.5)}; }`))});class KK extends De{constructor(e){super(),this._editor=e,this._register(e.onMouseDown(t=>this.onMouseDown(t)))}dispose(){super.dispose()}onMouseDown(e){const t=this._editor.getOption(147);if(t!=="click"&&t!=="clickAndHover")return;const i=e.target;if(i.type!==6||!i.detail.injectedText||i.detail.injectedText.options.attachedData!==X2e||!i.range)return;const r=this._editor.getContribution(Xl.ID);if(r&&!r.isColorPickerVisible){const o=new K(i.range.startLineNumber,i.range.startColumn+1,i.range.endLineNumber,i.range.endColumn+1);r.showContentHover(o,1,0,!1,!0)}}}KK.ID="editor.contrib.colorContribution",Ii(KK.ID,KK,2),x0.register(SW);var gSe=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Oh=function(n,e){return function(t,i){e(t,i,n)}},jK,QK;let A0=jK=class extends De{constructor(e,t,i,r,o,s,a){super(),this._editor=e,this._modelService=i,this._keybindingService=r,this._instantiationService=o,this._languageFeatureService=s,this._languageConfigurationService=a,this._standaloneColorPickerWidget=null,this._standaloneColorPickerVisible=ne.standaloneColorPickerVisible.bindTo(t),this._standaloneColorPickerFocused=ne.standaloneColorPickerFocused.bindTo(t)}showOrFocus(){var e;this._editor.hasModel()&&(this._standaloneColorPickerVisible.get()?this._standaloneColorPickerFocused.get()||(e=this._standaloneColorPickerWidget)===null||e===void 0||e.focus():this._standaloneColorPickerWidget=new wR(this._editor,this._standaloneColorPickerVisible,this._standaloneColorPickerFocused,this._instantiationService,this._modelService,this._keybindingService,this._languageFeatureService,this._languageConfigurationService))}hide(){var e;this._standaloneColorPickerFocused.set(!1),this._standaloneColorPickerVisible.set(!1),(e=this._standaloneColorPickerWidget)===null||e===void 0||e.hide(),this._editor.focus()}insertColor(){var e;(e=this._standaloneColorPickerWidget)===null||e===void 0||e.updateEditor(),this.hide()}static get(e){return e.getContribution(jK.ID)}};A0.ID="editor.contrib.standaloneColorPickerController",A0=jK=gSe([Oh(1,ln),Oh(2,wr),Oh(3,Pi),Oh(4,tn),Oh(5,Tt),Oh(6,$i)],A0),Ii(A0.ID,A0,1);const mSe=8,vAt=22;let wR=QK=class extends De{constructor(e,t,i,r,o,s,a,l){var u;super(),this._editor=e,this._standaloneColorPickerVisible=t,this._standaloneColorPickerFocused=i,this._modelService=o,this._keybindingService=s,this._languageFeaturesService=a,this._languageConfigurationService=l,this.allowEditorOverflow=!0,this._position=void 0,this._body=document.createElement("div"),this._colorHover=null,this._selectionSetInEditor=!1,this._onResult=this._register(new be),this.onResult=this._onResult.event,this._standaloneColorPickerVisible.set(!0),this._standaloneColorPickerParticipant=r.createInstance(HD,this._editor),this._position=(u=this._editor._getViewModel())===null||u===void 0?void 0:u.getPrimaryCursorState().modelState.position;const c=this._editor.getSelection(),d=c?{startLineNumber:c.startLineNumber,startColumn:c.startColumn,endLineNumber:c.endLineNumber,endColumn:c.endColumn}:{startLineNumber:0,endLineNumber:0,endColumn:0,startColumn:0},h=this._register(ph(this._body));this._register(h.onDidBlur(g=>{this.hide()})),this._register(h.onDidFocus(g=>{this.focus()})),this._register(this._editor.onDidChangeCursorPosition(()=>{this._selectionSetInEditor?this._selectionSetInEditor=!1:this.hide()})),this._register(this._editor.onMouseMove(g=>{var m;const f=(m=g.target.element)===null||m===void 0?void 0:m.classList;f&&f.contains("colorpicker-color-decoration")&&this.hide()})),this._register(this.onResult(g=>{this._render(g.value,g.foundInEditor)})),this._start(d),this._body.style.zIndex="50",this._editor.addContentWidget(this)}updateEditor(){this._colorHover&&this._standaloneColorPickerParticipant.updateEditorModel(this._colorHover)}getId(){return QK.ID}getDomNode(){return this._body}getPosition(){if(!this._position)return null;const e=this._editor.getOption(60).above;return{position:this._position,secondaryPosition:this._position,preference:e?[1,2]:[2,1],positionAffinity:2}}hide(){this.dispose(),this._standaloneColorPickerVisible.set(!1),this._standaloneColorPickerFocused.set(!1),this._editor.removeContentWidget(this),this._editor.focus()}focus(){this._standaloneColorPickerFocused.set(!0),this._body.focus()}async _start(e){const t=await this._computeAsync(e);t&&this._onResult.fire(new yAt(t.result,t.foundInEditor))}async _computeAsync(e){if(!this._editor.hasModel())return null;const t={range:e,color:{red:0,green:0,blue:0,alpha:1}},i=await this._standaloneColorPickerParticipant.createColorHover(t,new RJ(this._modelService,this._languageConfigurationService),this._languageFeaturesService.colorProvider);return i?{result:i.colorHover,foundInEditor:i.foundInEditor}:null}_render(e,t){const i=document.createDocumentFragment(),r=this._register(new hR(this._keybindingService));let o;const s={fragment:i,statusBar:r,setColorPicker:f=>o=f,onContentsChanged:()=>{},hide:()=>this.hide()};if(this._colorHover=e,this._register(this._standaloneColorPickerParticipant.renderHoverParts(s,[e])),o===void 0)return;this._body.classList.add("standalone-colorpicker-body"),this._body.style.maxHeight=Math.max(this._editor.getLayoutInfo().height/4,250)+"px",this._body.style.maxWidth=Math.max(this._editor.getLayoutInfo().width*.66,500)+"px",this._body.tabIndex=0,this._body.appendChild(i),o.layout();const a=o.body,l=a.saturationBox.domNode.clientWidth,u=a.domNode.clientWidth-l-vAt-mSe,c=o.body.enterButton;c==null||c.onClicked(()=>{this.updateEditor(),this.hide()});const d=o.header,h=d.pickedColorNode;h.style.width=l+mSe+"px";const g=d.originalColorNode;g.style.width=u+"px";const m=o.header.closeButton;m==null||m.onClicked(()=>{this.hide()}),t&&(c&&(c.button.textContent="Replace"),this._selectionSetInEditor=!0,this._editor.setSelection(e.range)),this._editor.layoutContentWidget(this)}};wR.ID="editor.contrib.standaloneColorPickerWidget",wR=QK=gSe([Oh(3,tn),Oh(4,wr),Oh(5,Pi),Oh(6,Tt),Oh(7,$i)],wR);class yAt{constructor(e,t){this.value=e,this.foundInEditor=t}}class IAt extends Ch{constructor(){super({id:"editor.action.showOrFocusStandaloneColorPicker",title:{...ai("showOrFocusStandaloneColorPicker","Show or Focus Standalone Color Picker"),mnemonicTitle:x({key:"mishowOrFocusStandaloneColorPicker",comment:["&& denotes a mnemonic"]},"&&Show or Focus Standalone Color Picker")},precondition:void 0,menu:[{id:$.CommandPalette}]})}runEditorCommand(e,t){var i;(i=A0.get(t))===null||i===void 0||i.showOrFocus()}}class wAt extends Nt{constructor(){super({id:"editor.action.hideColorPicker",label:x({key:"hideColorPicker",comment:["Action that hides the color picker"]},"Hide the Color Picker"),alias:"Hide the Color Picker",precondition:ne.standaloneColorPickerVisible.isEqualTo(!0),kbOpts:{primary:9,weight:100}})}run(e,t){var i;(i=A0.get(t))===null||i===void 0||i.hide()}}class SAt extends Nt{constructor(){super({id:"editor.action.insertColorWithStandaloneColorPicker",label:x({key:"insertColorWithStandaloneColorPicker",comment:["Action that inserts color with standalone color picker"]},"Insert Color with Standalone Color Picker"),alias:"Insert Color with Standalone Color Picker",precondition:ne.standaloneColorPickerFocused.isEqualTo(!0),kbOpts:{primary:3,weight:100}})}run(e,t){var i;(i=A0.get(t))===null||i===void 0||i.insertColor()}}it(wAt),it(SAt),Qi(IAt);class vr{static insert(e,t){return{range:new K(e.lineNumber,e.column,e.lineNumber,e.column),text:t,forceMoveMarkers:!0}}static delete(e){return{range:e,text:null}}static replace(e,t){return{range:e,text:t}}static replaceMove(e,t){return{range:e,text:t,forceMoveMarkers:!0}}}class N0{constructor(e,t,i){this.languageConfigurationService=i,this._selection=e,this._insertSpace=t,this._usedEndToken=null}static _haystackHasNeedleAtOffset(e,t,i){if(i<0)return!1;const r=t.length,o=e.length;if(i+r>o)return!1;for(let s=0;s=65&&a<=90&&a+32===l)&&!(l>=65&&l<=90&&l+32===a))return!1}return!0}_createOperationsForBlockComment(e,t,i,r,o,s){const a=e.startLineNumber,l=e.startColumn,u=e.endLineNumber,c=e.endColumn,d=o.getLineContent(a),h=o.getLineContent(u);let g=d.lastIndexOf(t,l-1+t.length),m=h.indexOf(i,c-1-i.length);if(g!==-1&&m!==-1)if(a===u)d.substring(g+t.length,m).indexOf(i)>=0&&(g=-1,m=-1);else{const b=d.substring(g+t.length),C=h.substring(0,m);(b.indexOf(i)>=0||C.indexOf(i)>=0)&&(g=-1,m=-1)}let f;g!==-1&&m!==-1?(r&&g+t.length0&&h.charCodeAt(m-1)===32&&(i=" "+i,m-=1),f=N0._createRemoveBlockCommentOperations(new K(a,g+t.length+1,u,m+1),t,i)):(f=N0._createAddBlockCommentOperations(e,t,i,this._insertSpace),this._usedEndToken=f.length===1?i:null);for(const b of f)s.addTrackedEditOperation(b.range,b.text)}static _createRemoveBlockCommentOperations(e,t,i){const r=[];return K.isEmpty(e)?r.push(vr.delete(new K(e.startLineNumber,e.startColumn-t.length,e.endLineNumber,e.endColumn+i.length))):(r.push(vr.delete(new K(e.startLineNumber,e.startColumn-t.length,e.startLineNumber,e.startColumn))),r.push(vr.delete(new K(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn+i.length)))),r}static _createAddBlockCommentOperations(e,t,i,r){const o=[];return K.isEmpty(e)?o.push(vr.replace(new K(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn),t+" "+i)):(o.push(vr.insert(new ve(e.startLineNumber,e.startColumn),t+(r?" ":""))),o.push(vr.insert(new ve(e.endLineNumber,e.endColumn),(r?" ":"")+i))),o}getEditOperations(e,t){const i=this._selection.startLineNumber,r=this._selection.startColumn;e.tokenization.tokenizeIfCheap(i);const o=e.getLanguageIdAtPosition(i,r),s=this.languageConfigurationService.getLanguageConfiguration(o).comments;!s||!s.blockCommentStartToken||!s.blockCommentEndToken||this._createOperationsForBlockComment(this._selection,s.blockCommentStartToken,s.blockCommentEndToken,this._insertSpace,e,t)}computeCursorState(e,t){const i=t.getInverseEditOperations();if(i.length===2){const r=i[0],o=i[1];return new Gt(r.range.endLineNumber,r.range.endColumn,o.range.startLineNumber,o.range.startColumn)}else{const r=i[0].range,o=this._usedEndToken?-this._usedEndToken.length-1:0;return new Gt(r.endLineNumber,r.endColumn+o,r.endLineNumber,r.endColumn+o)}}}class up{constructor(e,t,i,r,o,s,a){this.languageConfigurationService=e,this._selection=t,this._tabSize=i,this._type=r,this._insertSpace=o,this._selectionId=null,this._deltaColumn=0,this._moveEndPositionDown=!1,this._ignoreEmptyLines=s,this._ignoreFirstLine=a||!1}static _gatherPreflightCommentStrings(e,t,i,r){e.tokenization.tokenizeIfCheap(t);const o=e.getLanguageIdAtPosition(t,1),s=r.getLanguageConfiguration(o).comments,a=s?s.lineCommentToken:null;if(!a)return null;const l=[];for(let u=0,c=i-t+1;uo?t[l].commentStrOffset=s-1:t[l].commentStrOffset=s}}}class $K extends Nt{constructor(e,t){super(t),this._type=e}run(e,t){const i=e.get($i);if(!t.hasModel())return;const r=t.getModel(),o=[],s=r.getOptions(),a=t.getOption(23),l=t.getSelections().map((c,d)=>({selection:c,index:d,ignoreFirstLine:!1}));l.sort((c,d)=>K.compareRangesUsingStarts(c.selection,d.selection));let u=l[0];for(let c=1;c=0;t--,this._valueLen--){const i=this._value.charCodeAt(t);if(!(i===47||this._splitOnBackslash&&i===92))break}return this.next()}hasNext(){return this._to!1,t=()=>!1){return new Tw(new kAt(e,t))}static forStrings(){return new Tw(new DAt)}static forConfigKeys(){return new Tw(new AAt)}constructor(e){this._iter=e}clear(){this._root=void 0}set(e,t){const i=this._iter.reset(e);let r;this._root||(this._root=new SR,this._root.segment=i.value());const o=[];for(r=this._root;;){const a=i.cmp(r.segment);if(a>0)r.left||(r.left=new SR,r.left.segment=i.value()),o.push([-1,r]),r=r.left;else if(a<0)r.right||(r.right=new SR,r.right.segment=i.value()),o.push([1,r]),r=r.right;else if(i.hasNext())i.next(),r.mid||(r.mid=new SR,r.mid.segment=i.value()),o.push([0,r]),r=r.mid;else break}const s=r.value;r.value=t,r.key=e;for(let a=o.length-1;a>=0;a--){const l=o[a][1];l.updateHeight();const u=l.balanceFactor();if(u<-1||u>1){const c=o[a][0],d=o[a+1][0];if(c===1&&d===1)o[a][1]=l.rotateLeft();else if(c===-1&&d===-1)o[a][1]=l.rotateRight();else if(c===1&&d===-1)l.right=o[a+1][1]=o[a+1][1].rotateRight(),o[a][1]=l.rotateLeft();else if(c===-1&&d===1)l.left=o[a+1][1]=o[a+1][1].rotateLeft(),o[a][1]=l.rotateRight();else throw new Error;if(a>0)switch(o[a-1][0]){case-1:o[a-1][1].left=o[a][1];break;case 1:o[a-1][1].right=o[a][1];break;case 0:o[a-1][1].mid=o[a][1];break}else this._root=o[0][1]}}return s}get(e){var t;return(t=this._getNode(e))===null||t===void 0?void 0:t.value}_getNode(e){const t=this._iter.reset(e);let i=this._root;for(;i;){const r=t.cmp(i.segment);if(r>0)i=i.left;else if(r<0)i=i.right;else if(t.hasNext())t.next(),i=i.mid;else break}return i}has(e){const t=this._getNode(e);return!((t==null?void 0:t.value)===void 0&&(t==null?void 0:t.mid)===void 0)}delete(e){return this._delete(e,!1)}deleteSuperstr(e){return this._delete(e,!0)}_delete(e,t){var i;const r=this._iter.reset(e),o=[];let s=this._root;for(;s;){const a=r.cmp(s.segment);if(a>0)o.push([-1,s]),s=s.left;else if(a<0)o.push([1,s]),s=s.right;else if(r.hasNext())r.next(),o.push([0,s]),s=s.mid;else break}if(s){if(t?(s.left=void 0,s.mid=void 0,s.right=void 0,s.height=1):(s.key=void 0,s.value=void 0),!s.mid&&!s.value)if(s.left&&s.right){const a=this._min(s.right);if(a.key){const{key:l,value:u,segment:c}=a;this._delete(a.key,!1),s.key=l,s.value=u,s.segment=c}}else{const a=(i=s.left)!==null&&i!==void 0?i:s.right;if(o.length>0){const[l,u]=o[o.length-1];switch(l){case-1:u.left=a;break;case 0:u.mid=a;break;case 1:u.right=a;break}}else this._root=a}for(let a=o.length-1;a>=0;a--){const l=o[a][1];l.updateHeight();const u=l.balanceFactor();if(u>1?(l.right.balanceFactor()>=0||(l.right=l.right.rotateRight()),o[a][1]=l.rotateLeft()):u<-1&&(l.left.balanceFactor()<=0||(l.left=l.left.rotateLeft()),o[a][1]=l.rotateRight()),a>0)switch(o[a-1][0]){case-1:o[a-1][1].left=o[a][1];break;case 1:o[a-1][1].right=o[a][1];break;case 0:o[a-1][1].mid=o[a][1];break}else this._root=o[0][1]}}}_min(e){for(;e.left;)e=e.left;return e}findSubstr(e){const t=this._iter.reset(e);let i=this._root,r;for(;i;){const o=t.cmp(i.segment);if(o>0)i=i.left;else if(o<0)i=i.right;else if(t.hasNext())t.next(),r=i.value||r,i=i.mid;else break}return i&&i.value||r}findSuperstr(e){return this._findSuperstrOrElement(e,!1)}_findSuperstrOrElement(e,t){const i=this._iter.reset(e);let r=this._root;for(;r;){const o=i.cmp(r.segment);if(o>0)r=r.left;else if(o<0)r=r.right;else if(i.hasNext())i.next(),r=r.mid;else return r.mid?this._entries(r.mid):t?r.value:void 0}}forEach(e){for(const[t,i]of this)e(i,t)}*[Symbol.iterator](){yield*this._entries(this._root)}_entries(e){const t=[];return this._dfsEntries(e,t),t[Symbol.iterator]()}_dfsEntries(e,t){e&&(e.left&&this._dfsEntries(e.left,t),e.value&&t.push([e.key,e.value]),e.mid&&this._dfsEntries(e.mid,t),e.right&&this._dfsEntries(e.right,t))}}const Gv=Un("contextService");function qK(n){const e=n;return typeof(e==null?void 0:e.id)=="string"&&$t.isUri(e.uri)}function MAt(n){const e=n;return typeof(e==null?void 0:e.id)=="string"&&!qK(n)&&!WAt(n)}const ZAt={id:"ext-dev"},TAt={id:"empty-window"};function EAt(n,e){if(typeof n=="string"||typeof n>"u")return typeof n=="string"?{id:_b(n)}:e?ZAt:TAt;const t=n;return t.configuration?{id:t.id,configPath:t.configuration}:t.folders.length===1?{id:t.id,uri:t.folders[0].uri}:{id:t.id}}function WAt(n){const e=n;return typeof(e==null?void 0:e.id)=="string"&&$t.isUri(e.configPath)}class RAt{constructor(e,t){this.raw=t,this.uri=e.uri,this.index=e.index,this.name=e.name}toJSON(){return{uri:this.uri,name:this.name,index:this.index}}}const e8="code-workspace";x("codeWorkspace","Code Workspace");const fSe="4064f6ec-cb38-4ad0-af64-ee6467e63c82";function GAt(n){return n.id===fSe}var VAt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Vv=function(n,e){return function(t,i){e(t,i,n)}},t8;let Ew=t8=class{static get(e){return e.getContribution(t8.ID)}constructor(e,t,i,r,o,s,a,l){this._contextMenuService=t,this._contextViewService=i,this._contextKeyService=r,this._keybindingService=o,this._menuService=s,this._configurationService=a,this._workspaceContextService=l,this._toDispose=new je,this._contextMenuIsBeingShownCount=0,this._editor=e,this._toDispose.add(this._editor.onContextMenu(u=>this._onContextMenu(u))),this._toDispose.add(this._editor.onMouseWheel(u=>{if(this._contextMenuIsBeingShownCount>0){const c=this._contextViewService.getContextViewElement(),d=u.srcElement;d.shadowRoot&&_C(c)===d.shadowRoot||this._contextViewService.hideContextView()}})),this._toDispose.add(this._editor.onKeyDown(u=>{this._editor.getOption(24)&&u.keyCode===58&&(u.preventDefault(),u.stopPropagation(),this.showContextMenu())}))}_onContextMenu(e){if(!this._editor.hasModel())return;if(!this._editor.getOption(24)){this._editor.focus(),e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position);return}if(e.target.type===12||e.target.type===6&&e.target.detail.injectedText)return;if(e.event.preventDefault(),e.event.stopPropagation(),e.target.type===11)return this._showScrollbarContextMenu(e.event);if(e.target.type!==6&&e.target.type!==7&&e.target.type!==1)return;if(this._editor.focus(),e.target.position){let i=!1;for(const r of this._editor.getSelections())if(r.containsPosition(e.target.position)){i=!0;break}i||this._editor.setPosition(e.target.position)}let t=null;e.target.type!==1&&(t=e.event),this.showContextMenu(t)}showContextMenu(e){if(!this._editor.getOption(24)||!this._editor.hasModel())return;const t=this._getMenuActions(this._editor.getModel(),this._editor.isSimpleWidget?$.SimpleEditorContext:$.EditorContext);t.length>0&&this._doShowContextMenu(t,e)}_getMenuActions(e,t){const i=[],r=this._menuService.createMenu(t,this._contextKeyService),o=r.getActions({arg:e.uri});r.dispose();for(const s of o){const[,a]=s;let l=0;for(const u of a)if(u instanceof VF){const c=this._getMenuActions(e,u.item.submenu);c.length>0&&(i.push(new qI(u.id,u.label,c)),l++)}else i.push(u),l++;l&&i.push(new To)}return i.length&&i.pop(),i}_doShowContextMenu(e,t=null){if(!this._editor.hasModel())return;const i=this._editor.getOption(60);this._editor.updateOptions({hover:{enabled:!1}});let r=t;if(!r){this._editor.revealPosition(this._editor.getPosition(),1),this._editor.render();const s=this._editor.getScrolledVisiblePosition(this._editor.getPosition()),a=go(this._editor.getDomNode()),l=a.left+s.left,u=a.top+s.top+s.height;r={x:l,y:u}}const o=this._editor.getOption(127)&&!Dg;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:o?this._editor.getDomNode():void 0,getAnchor:()=>r,getActions:()=>e,getActionViewItem:s=>{const a=this._keybindingFor(s);if(a)return new ow(s,s,{label:!0,keybinding:a.getLabel(),isMenu:!0});const l=s;return typeof l.getActionViewItem=="function"?l.getActionViewItem():new ow(s,s,{icon:!0,label:!0,isMenu:!0})},getKeyBinding:s=>this._keybindingFor(s),onHide:s=>{this._contextMenuIsBeingShownCount--,this._editor.updateOptions({hover:i})}})}_showScrollbarContextMenu(e){if(!this._editor.hasModel()||GAt(this._workspaceContextService.getWorkspace()))return;const t=this._editor.getOption(73);let i=0;const r=u=>({id:`menu-action-${++i}`,label:u.label,tooltip:"",class:void 0,enabled:typeof u.enabled>"u"?!0:u.enabled,checked:u.checked,run:u.run}),o=(u,c)=>new qI(`menu-action-${++i}`,u,c,void 0),s=(u,c,d,h,g)=>{if(!c)return r({label:u,enabled:c,run:()=>{}});const m=b=>()=>{this._configurationService.updateValue(d,b)},f=[];for(const b of g)f.push(r({label:b.label,checked:h===b.value,run:m(b.value)}));return o(u,f)},a=[];a.push(r({label:x("context.minimap.minimap","Minimap"),checked:t.enabled,run:()=>{this._configurationService.updateValue("editor.minimap.enabled",!t.enabled)}})),a.push(new To),a.push(r({label:x("context.minimap.renderCharacters","Render Characters"),enabled:t.enabled,checked:t.renderCharacters,run:()=>{this._configurationService.updateValue("editor.minimap.renderCharacters",!t.renderCharacters)}})),a.push(s(x("context.minimap.size","Vertical size"),t.enabled,"editor.minimap.size",t.size,[{label:x("context.minimap.size.proportional","Proportional"),value:"proportional"},{label:x("context.minimap.size.fill","Fill"),value:"fill"},{label:x("context.minimap.size.fit","Fit"),value:"fit"}])),a.push(s(x("context.minimap.slider","Slider"),t.enabled,"editor.minimap.showSlider",t.showSlider,[{label:x("context.minimap.slider.mouseover","Mouse Over"),value:"mouseover"},{label:x("context.minimap.slider.always","Always"),value:"always"}]));const l=this._editor.getOption(127)&&!Dg;this._contextMenuIsBeingShownCount++,this._contextMenuService.showContextMenu({domForShadowRoot:l?this._editor.getDomNode():void 0,getAnchor:()=>e,getActions:()=>a,onHide:u=>{this._contextMenuIsBeingShownCount--,this._editor.focus()}})}_keybindingFor(e){return this._keybindingService.lookupKeybinding(e.id)}dispose(){this._contextMenuIsBeingShownCount>0&&this._contextViewService.hideContextView(),this._toDispose.dispose()}};Ew.ID="editor.contrib.contextmenu",Ew=t8=VAt([Vv(1,hu),Vv(2,hm),Vv(3,ln),Vv(4,Pi),Vv(5,wc),Vv(6,Xn),Vv(7,Gv)],Ew);class XAt extends Nt{constructor(){super({id:"editor.action.showContextMenu",label:x("action.showContextMenu.label","Show Editor Context Menu"),alias:"Show Editor Context Menu",precondition:void 0,kbOpts:{kbExpr:ne.textInputFocus,primary:1092,weight:100}})}run(e,t){var i;(i=Ew.get(t))===null||i===void 0||i.showContextMenu()}}Ii(Ew.ID,Ew,2),it(XAt);class n8{constructor(e){this.selections=e}equals(e){const t=this.selections.length,i=e.selections.length;if(t!==i)return!1;for(let r=0;r{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeModelContent(t=>{this._undoStack=[],this._redoStack=[]})),this._register(e.onDidChangeCursorSelection(t=>{if(this._isCursorUndoRedo||!t.oldSelections||t.oldModelVersionId!==t.modelVersionId)return;const i=new n8(t.oldSelections);this._undoStack.length>0&&this._undoStack[this._undoStack.length-1].cursorState.equals(i)||(this._undoStack.push(new i8(i,e.getScrollTop(),e.getScrollLeft())),this._redoStack=[],this._undoStack.length>50&&this._undoStack.shift())}))}cursorUndo(){!this._editor.hasModel()||this._undoStack.length===0||(this._redoStack.push(new i8(new n8(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._undoStack.pop()))}cursorRedo(){!this._editor.hasModel()||this._redoStack.length===0||(this._undoStack.push(new i8(new n8(this._editor.getSelections()),this._editor.getScrollTop(),this._editor.getScrollLeft())),this._applyState(this._redoStack.pop()))}_applyState(e){this._isCursorUndoRedo=!0,this._editor.setSelections(e.cursorState.selections),this._editor.setScrollPosition({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft}),this._isCursorUndoRedo=!1}}Xv.ID="editor.contrib.cursorUndoRedoController";class PAt extends Nt{constructor(){super({id:"cursorUndo",label:x("cursor.undo","Cursor Undo"),alias:"Cursor Undo",precondition:void 0,kbOpts:{kbExpr:ne.textInputFocus,primary:2099,weight:100}})}run(e,t,i){var r;(r=Xv.get(t))===null||r===void 0||r.cursorUndo()}}class OAt extends Nt{constructor(){super({id:"cursorRedo",label:x("cursor.redo","Cursor Redo"),alias:"Cursor Redo",precondition:void 0})}run(e,t,i){var r;(r=Xv.get(t))===null||r===void 0||r.cursorRedo()}}Ii(Xv.ID,Xv,0),it(PAt),it(OAt);class BAt{constructor(e,t,i){this.selection=e,this.targetPosition=t,this.copy=i,this.targetSelection=null}getEditOperations(e,t){const i=e.getValueInRange(this.selection);if(this.copy||t.addEditOperation(this.selection,null),t.addEditOperation(new K(this.targetPosition.lineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.targetPosition.column),i),this.selection.containsPosition(this.targetPosition)&&!(this.copy&&(this.selection.getEndPosition().equals(this.targetPosition)||this.selection.getStartPosition().equals(this.targetPosition)))){this.targetSelection=this.selection;return}if(this.copy){this.targetSelection=new Gt(this.targetPosition.lineNumber,this.targetPosition.column,this.selection.endLineNumber-this.selection.startLineNumber+this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumber>this.selection.endLineNumber){this.targetSelection=new Gt(this.targetPosition.lineNumber-this.selection.endLineNumber+this.selection.startLineNumber,this.targetPosition.column,this.targetPosition.lineNumber,this.selection.startLineNumber===this.selection.endLineNumber?this.targetPosition.column+this.selection.endColumn-this.selection.startColumn:this.selection.endColumn);return}if(this.targetPosition.lineNumberthis._onEditorMouseDown(t))),this._register(this._editor.onMouseUp(t=>this._onEditorMouseUp(t))),this._register(this._editor.onMouseDrag(t=>this._onEditorMouseDrag(t))),this._register(this._editor.onMouseDrop(t=>this._onEditorMouseDrop(t))),this._register(this._editor.onMouseDropCanceled(()=>this._onEditorMouseDropCanceled())),this._register(this._editor.onKeyDown(t=>this.onEditorKeyDown(t))),this._register(this._editor.onKeyUp(t=>this.onEditorKeyUp(t))),this._register(this._editor.onDidBlurEditorWidget(()=>this.onEditorBlur())),this._register(this._editor.onDidBlurEditorText(()=>this.onEditorBlur())),this._mouseDown=!1,this._modifierPressed=!1,this._dragSelection=null}onEditorBlur(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1}onEditorKeyDown(e){!this._editor.getOption(35)||this._editor.getOption(22)||(Ww(e)&&(this._modifierPressed=!0),this._mouseDown&&Ww(e)&&this._editor.updateOptions({mouseStyle:"copy"}))}onEditorKeyUp(e){!this._editor.getOption(35)||this._editor.getOption(22)||(Ww(e)&&(this._modifierPressed=!1),this._mouseDown&&e.keyCode===cp.TRIGGER_KEY_VALUE&&this._editor.updateOptions({mouseStyle:"default"}))}_onEditorMouseDown(e){this._mouseDown=!0}_onEditorMouseUp(e){this._mouseDown=!1,this._editor.updateOptions({mouseStyle:"text"})}_onEditorMouseDrag(e){const t=e.target;if(this._dragSelection===null){const r=(this._editor.getSelections()||[]).filter(o=>t.position&&o.containsPosition(t.position));if(r.length===1)this._dragSelection=r[0];else return}Ww(e.event)?this._editor.updateOptions({mouseStyle:"copy"}):this._editor.updateOptions({mouseStyle:"default"}),t.position&&(this._dragSelection.containsPosition(t.position)?this._removeDecoration():this.showAt(t.position))}_onEditorMouseDropCanceled(){this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}_onEditorMouseDrop(e){if(e.target&&(this._hitContent(e.target)||this._hitMargin(e.target))&&e.target.position){const t=new ve(e.target.position.lineNumber,e.target.position.column);if(this._dragSelection===null){let i=null;if(e.event.shiftKey){const r=this._editor.getSelection();if(r){const{selectionStartLineNumber:o,selectionStartColumn:s}=r;i=[new Gt(o,s,t.lineNumber,t.column)]}}else i=(this._editor.getSelections()||[]).map(r=>r.containsPosition(t)?new Gt(t.lineNumber,t.column,t.lineNumber,t.column):r);this._editor.setSelections(i||[],"mouse",3)}else(!this._dragSelection.containsPosition(t)||(Ww(e.event)||this._modifierPressed)&&(this._dragSelection.getEndPosition().equals(t)||this._dragSelection.getStartPosition().equals(t)))&&(this._editor.pushUndoStop(),this._editor.executeCommand(cp.ID,new BAt(this._dragSelection,t,Ww(e.event)||this._modifierPressed)),this._editor.pushUndoStop())}this._editor.updateOptions({mouseStyle:"text"}),this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1}showAt(e){this._dndDecorationIds.set([{range:new K(e.lineNumber,e.column,e.lineNumber,e.column),options:cp._DECORATION_OPTIONS}]),this._editor.revealPosition(e,1)}_removeDecoration(){this._dndDecorationIds.clear()}_hitContent(e){return e.type===6||e.type===7}_hitMargin(e){return e.type===2||e.type===3||e.type===4}dispose(){this._removeDecoration(),this._dragSelection=null,this._mouseDown=!1,this._modifierPressed=!1,super.dispose()}}cp.ID="editor.contrib.dragAndDrop",cp.TRIGGER_KEY_VALUE=$n?6:5,cp._DECORATION_OPTIONS=In.register({description:"dnd-target",className:"dnd-target"}),Ii(cp.ID,cp,2);var r8=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},bA=function(n,e){return function(t,i){e(t,i,n)}};const xR=x("builtIn","Built-in");class o8{async provideDocumentPasteEdits(e,t,i,r,o){const s=await this.getEdit(i,o);return s?{insertText:s.insertText,label:s.label,detail:s.detail,handledMimeType:s.handledMimeType,yieldTo:s.yieldTo}:void 0}async provideDocumentOnDropEdits(e,t,i,r){const o=await this.getEdit(i,r);return o?{insertText:o.insertText,label:o.label,handledMimeType:o.handledMimeType,yieldTo:o.yieldTo}:void 0}}class pSe extends o8{constructor(){super(...arguments),this.id="text",this.dropMimeTypes=[Xr.text],this.pasteMimeTypes=[Xr.text]}async getEdit(e,t){const i=e.get(Xr.text);if(!i||e.has(Xr.uriList))return;const r=await i.asString();return{handledMimeType:Xr.text,label:x("text.label","Insert Plain Text"),detail:xR,insertText:r}}}class bSe extends o8{constructor(){super(...arguments),this.id="uri",this.dropMimeTypes=[Xr.uriList],this.pasteMimeTypes=[Xr.uriList]}async getEdit(e,t){const i=await CSe(e);if(!i.length||t.isCancellationRequested)return;let r=0;const o=i.map(({uri:a,originalText:l})=>a.scheme===xn.file?a.fsPath:(r++,l)).join(" ");let s;return r>0?s=i.length>1?x("defaultDropProvider.uriList.uris","Insert Uris"):x("defaultDropProvider.uriList.uri","Insert Uri"):s=i.length>1?x("defaultDropProvider.uriList.paths","Insert Paths"):x("defaultDropProvider.uriList.path","Insert Path"),{handledMimeType:Xr.uriList,insertText:o,label:s,detail:xR}}}let LR=class extends o8{constructor(e){super(),this._workspaceContextService=e,this.id="relativePath",this.dropMimeTypes=[Xr.uriList],this.pasteMimeTypes=[Xr.uriList]}async getEdit(e,t){const i=await CSe(e);if(!i.length||t.isCancellationRequested)return;const r=Gg(i.map(({uri:o})=>{const s=this._workspaceContextService.getWorkspaceFolder(o);return s?Hvt(s.uri,o):void 0}));if(r.length)return{handledMimeType:Xr.uriList,insertText:r.join(" "),label:i.length>1?x("defaultDropProvider.uriList.relativePaths","Insert Relative Paths"):x("defaultDropProvider.uriList.relativePath","Insert Relative Path"),detail:xR}}};LR=r8([bA(0,Gv)],LR);class zAt{constructor(){this.id="html",this.pasteMimeTypes=["text/html"],this._yieldTo=[{mimeType:Xr.text}]}async provideDocumentPasteEdits(e,t,i,r,o){if(r.trigger!=="explicit"&&r.only!==this.id)return;const s=i.get("text/html"),a=await(s==null?void 0:s.asString());if(!(!a||o.isCancellationRequested))return{insertText:a,yieldTo:this._yieldTo,label:x("pasteHtmlLabel","Insert HTML"),detail:xR}}}async function CSe(n){const e=n.get(Xr.uriList);if(!e)return[];const t=await e.asString(),i=[];for(const r of tW.parse(t))try{i.push({uri:$t.parse(r),originalText:r})}catch{}return i}let s8=class extends De{constructor(e,t){super(),this._register(e.documentOnDropEditProvider.register("*",new pSe)),this._register(e.documentOnDropEditProvider.register("*",new bSe)),this._register(e.documentOnDropEditProvider.register("*",new LR(t)))}};s8=r8([bA(0,Tt),bA(1,Gv)],s8);let a8=class extends De{constructor(e,t){super(),this._register(e.documentPasteEditProvider.register("*",new pSe)),this._register(e.documentPasteEditProvider.register("*",new bSe)),this._register(e.documentPasteEditProvider.register("*",new LR(t))),this._register(e.documentPasteEditProvider.register("*",new zAt))}};a8=r8([bA(0,Tt),bA(1,Gv)],a8),Ii(np.ID,np,0),YD(a8),mt(new class extends cs{constructor(){super({id:VIe,precondition:XIe,kbOpts:{weight:100,primary:2137}})}runEditorCommand(n,e,t){var i;return(i=np.get(e))===null||i===void 0?void 0:i.changePasteType()}}),it(class extends Nt{constructor(){super({id:"editor.action.pasteAs",label:x("pasteAs","Paste As..."),alias:"Paste As...",precondition:ne.writable,metadata:{description:"Paste as",args:[{name:"args",schema:{type:"object",properties:{id:{type:"string",description:x("pasteAs.id","The id of the paste edit to try applying. If not provided, the editor will show a picker.")}}}}]}})}run(n,e,t){var i;const r=typeof(t==null?void 0:t.id)=="string"?t.id:void 0;return(i=np.get(e))===null||i===void 0?void 0:i.pasteAs(r)}}),it(class extends Nt{constructor(){super({id:"editor.action.pasteAsText",label:x("pasteAsText","Paste as Text"),alias:"Paste as Text",precondition:ne.writable})}run(n,e,t){var i;return(i=np.get(e))===null||i===void 0?void 0:i.pasteAs("text")}});class YAt{constructor(){this._dragOperations=new Map}removeDragOperationTransfer(e){if(e&&this._dragOperations.has(e)){const t=this._dragOperations.get(e);return this._dragOperations.delete(e),t}}}class vSe{constructor(e){this.identifier=e}}const ySe=Un("treeViewsDndService");ti(ySe,YAt,1);var HAt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},FR=function(n,e){return function(t,i){e(t,i,n)}},l8;const ISe="editor.experimental.dropIntoEditor.defaultProvider",wSe="editor.changeDropType",SSe=new It("dropWidgetVisible",!1,x("dropWidgetVisible","Whether the drop widget is showing"));let Rw=l8=class extends De{static get(e){return e.getContribution(l8.ID)}constructor(e,t,i,r,o){super(),this._configService=i,this._languageFeaturesService=r,this._treeViewsDragAndDropService=o,this.treeItemsTransfer=_D.getInstance(),this._dropProgressManager=this._register(t.createInstance(iW,"dropIntoEditor",e)),this._postDropWidgetManager=this._register(t.createInstance(sW,"dropIntoEditor",e,SSe,{id:wSe,label:x("postDropWidgetTitle","Show drop options...")})),this._register(e.onDropIntoEditor(s=>this.onDropIntoEditor(e,s.position,s.event)))}changeDropType(){this._postDropWidgetManager.tryShowSelector()}async onDropIntoEditor(e,t,i){var r;if(!i.dataTransfer||!e.hasModel())return;(r=this._currentOperation)===null||r===void 0||r.cancel(),e.focus(),e.setPosition(t);const o=$o(async s=>{const a=new h0(e,1,void 0,s);try{const l=await this.extractDataTransferData(i);if(l.size===0||a.token.isCancellationRequested)return;const u=e.getModel();if(!u)return;const c=this._languageFeaturesService.documentOnDropEditProvider.ordered(u).filter(h=>h.dropMimeTypes?h.dropMimeTypes.some(g=>l.matches(g)):!0),d=await this.getDropEdits(c,u,t,l,a);if(a.token.isCancellationRequested)return;if(d.length){const h=this.getInitialActiveEditIndex(u,d),g=e.getOption(36).showDropSelector==="afterDrop";await this._postDropWidgetManager.applyEditAndShowIfNeeded([K.fromPositions(t)],{activeEditIndex:h,allEdits:d},g,s)}}finally{a.dispose(),this._currentOperation===o&&(this._currentOperation=void 0)}});this._dropProgressManager.showWhile(t,x("dropIntoEditorProgress","Running drop handlers. Click to cancel"),o),this._currentOperation=o}async getDropEdits(e,t,i,r,o){const s=await LF(Promise.all(e.map(async l=>{try{const u=await l.provideDocumentOnDropEdits(t,i,r,o.token);if(u)return{...u,providerId:l.id}}catch{}})),o.token),a=Gg(s??[]);return MIe(a)}getInitialActiveEditIndex(e,t){const i=this._configService.getValue(ISe,{resource:e.uri});for(const[r,o]of Object.entries(i)){const s=t.findIndex(a=>o===a.providerId&&a.handledMimeType&&xIe(r,[a.handledMimeType]));if(s>=0)return s}return 0}async extractDataTransferData(e){if(!e.dataTransfer)return new SIe;const t=DIe(e.dataTransfer);if(this.treeItemsTransfer.hasData(vSe.prototype)){const i=this.treeItemsTransfer.getData(vSe.prototype);if(Array.isArray(i))for(const r of i){const o=await this._treeViewsDragAndDropService.removeDragOperationTransfer(r.identifier);if(o)for(const[s,a]of o)t.replace(s,a)}}return t}};Rw.ID="editor.contrib.dropIntoEditorController",Rw=l8=HAt([FR(1,tn),FR(2,Xn),FR(3,Tt),FR(4,ySe)],Rw),Ii(Rw.ID,Rw,2),mt(new class extends cs{constructor(){super({id:wSe,precondition:SSe,kbOpts:{weight:100,primary:2137}})}runEditorCommand(n,e,t){var i;(i=Rw.get(e))===null||i===void 0||i.changeDropType()}}),YD(s8),xo.as(Ih.Configuration).registerConfiguration({...lW,properties:{[ISe]:{type:"object",scope:5,description:x("defaultProviderDescription","Configures the default drop provider to use for content of a given mime type."),default:{},additionalProperties:{type:"string"}}}});class Da{constructor(e){this._editor=e,this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null,this._startPosition=this._editor.getPosition()}dispose(){this._editor.removeDecorations(this._allDecorations()),this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}reset(){this._decorations=[],this._overviewRulerApproximateDecorations=[],this._findScopeDecorationIds=[],this._rangeHighlightDecorationId=null,this._highlightedDecorationId=null}getCount(){return this._decorations.length}getFindScope(){return this._findScopeDecorationIds[0]?this._editor.getModel().getDecorationRange(this._findScopeDecorationIds[0]):null}getFindScopes(){if(this._findScopeDecorationIds.length){const e=this._findScopeDecorationIds.map(t=>this._editor.getModel().getDecorationRange(t)).filter(t=>!!t);if(e.length)return e}return null}getStartPosition(){return this._startPosition}setStartPosition(e){this._startPosition=e,this.setCurrentFindMatch(null)}_getDecorationIndex(e){const t=this._decorations.indexOf(e);return t>=0?t+1:1}getDecorationRangeAt(e){const t=e{if(this._highlightedDecorationId!==null&&(r.changeDecorationOptions(this._highlightedDecorationId,Da._FIND_MATCH_DECORATION),this._highlightedDecorationId=null),t!==null&&(this._highlightedDecorationId=t,r.changeDecorationOptions(this._highlightedDecorationId,Da._CURRENT_FIND_MATCH_DECORATION)),this._rangeHighlightDecorationId!==null&&(r.removeDecoration(this._rangeHighlightDecorationId),this._rangeHighlightDecorationId=null),t!==null){let o=this._editor.getModel().getDecorationRange(t);if(o.startLineNumber!==o.endLineNumber&&o.endColumn===1){const s=o.endLineNumber-1,a=this._editor.getModel().getLineMaxColumn(s);o=new K(o.startLineNumber,o.startColumn,s,a)}this._rangeHighlightDecorationId=r.addDecoration(o,Da._RANGE_HIGHLIGHT_DECORATION)}}),i}set(e,t){this._editor.changeDecorations(i=>{let r=Da._FIND_MATCH_DECORATION;const o=[];if(e.length>1e3){r=Da._FIND_MATCH_NO_OVERVIEW_DECORATION;const a=this._editor.getModel().getLineCount(),u=this._editor.getLayoutInfo().height/a,c=Math.max(2,Math.ceil(3/u));let d=e[0].range.startLineNumber,h=e[0].range.endLineNumber;for(let g=1,m=e.length;g=f.startLineNumber?f.endLineNumber>h&&(h=f.endLineNumber):(o.push({range:new K(d,1,h,1),options:Da._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),d=f.startLineNumber,h=f.endLineNumber)}o.push({range:new K(d,1,h,1),options:Da._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}const s=new Array(e.length);for(let a=0,l=e.length;ai.removeDecoration(a)),this._findScopeDecorationIds=[]),t!=null&&t.length&&(this._findScopeDecorationIds=t.map(a=>i.addDecoration(a,Da._FIND_SCOPE_DECORATION)))})}matchBeforePosition(e){if(this._decorations.length===0)return null;for(let t=this._decorations.length-1;t>=0;t--){const i=this._decorations[t],r=this._editor.getModel().getDecorationRange(i);if(!(!r||r.endLineNumber>e.lineNumber)){if(r.endLineNumbere.column))return r}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])}matchAfterPosition(e){if(this._decorations.length===0)return null;for(let t=0,i=this._decorations.length;te.lineNumber)return o;if(!(o.startColumn0){const i=[];for(let s=0;sK.compareRangesUsingStarts(s.range,a.range));const r=[];let o=i[0];for(let s=1;s0?e[0].toUpperCase()+e.substr(1):n[0][0].toUpperCase()!==n[0][0]&&e.length>0?e[0].toLowerCase()+e.substr(1):e}else return e}function LSe(n,e,t){return n[0].indexOf(t)!==-1&&e.indexOf(t)!==-1&&n[0].split(t).length===e.split(t).length}function FSe(n,e,t){const i=e.split(t),r=n[0].split(t);let o="";return i.forEach((s,a)=>{o+=xSe([r[a]],s)+t}),o.slice(0,-1)}class _Se{constructor(e){this.staticValue=e,this.kind=0}}class JAt{constructor(e){this.pieces=e,this.kind=1}}class Gw{static fromStaticValue(e){return new Gw([Pv.staticValue(e)])}get hasReplacementPatterns(){return this._state.kind===1}constructor(e){!e||e.length===0?this._state=new _Se(""):e.length===1&&e[0].staticValue!==null?this._state=new _Se(e[0].staticValue):this._state=new JAt(e)}buildReplaceString(e,t){if(this._state.kind===0)return t?xSe(e,this._state.staticValue):this._state.staticValue;let i="";for(let r=0,o=this._state.pieces.length;r0){const l=[],u=s.caseOps.length;let c=0;for(let d=0,h=a.length;d=u){l.push(a.slice(d));break}switch(s.caseOps[c]){case"U":l.push(a[d].toUpperCase());break;case"u":l.push(a[d].toUpperCase()),c++;break;case"L":l.push(a[d].toLowerCase());break;case"l":l.push(a[d].toLowerCase()),c++;break;default:l.push(a[d])}}a=l.join("")}i+=a}return i}static _substitute(e,t){if(t===null)return"";if(e===0)return t[0];let i="";for(;e>0;){if(e=r)break;const s=n.charCodeAt(i);switch(s){case 92:t.emitUnchanged(i-1),t.emitStatic("\\",i+1);break;case 110:t.emitUnchanged(i-1),t.emitStatic(` +`,i+1);break;case 116:t.emitUnchanged(i-1),t.emitStatic(" ",i+1);break;case 117:case 85:case 108:case 76:t.emitUnchanged(i-1),t.emitStatic("",i+1),e.push(String.fromCharCode(s));break}continue}if(o===36){if(i++,i>=r)break;const s=n.charCodeAt(i);if(s===36){t.emitUnchanged(i-1),t.emitStatic("$",i+1);continue}if(s===48||s===38){t.emitUnchanged(i-1),t.emitMatchIndex(0,i+1,e),e.length=0;continue}if(49<=s&&s<=57){let a=s-48;if(i+1this.research(!1),100),this._toDispose.add(this._updateDecorationsScheduler),this._toDispose.add(this._editor.onDidChangeCursorPosition(i=>{(i.reason===3||i.reason===5||i.reason===6)&&this._decorations.setStartPosition(this._editor.getPosition())})),this._ignoreModelContentChanged=!1,this._toDispose.add(this._editor.onDidChangeModelContent(i=>{this._ignoreModelContentChanged||(i.isFlush&&this._decorations.reset(),this._decorations.setStartPosition(this._editor.getPosition()),this._updateDecorationsScheduler.schedule())})),this._toDispose.add(this._state.onFindReplaceStateChange(i=>this._onStateChanged(i))),this.research(!1,this._state.searchScope)}dispose(){this._isDisposed=!0,Mi(this._startSearchingTimer),this._toDispose.dispose()}_onStateChanged(e){this._isDisposed||this._editor.hasModel()&&(e.searchString||e.isReplaceRevealed||e.isRegex||e.wholeWord||e.matchCase||e.searchScope)&&(this._editor.getModel().isTooLargeForSyncing()?(this._startSearchingTimer.cancel(),this._startSearchingTimer.setIfNotSet(()=>{e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor)},QAt)):e.searchScope?this.research(e.moveCursor,this._state.searchScope):this.research(e.moveCursor))}static _getSearchRange(e,t){return t||e.getFullModelRange()}research(e,t){let i=null;typeof t<"u"?t!==null&&(Array.isArray(t)?i=t:i=[t]):i=this._decorations.getFindScopes(),i!==null&&(i=i.map(a=>{if(a.startLineNumber!==a.endLineNumber){let l=a.endLineNumber;return a.endColumn===1&&(l=l-1),new K(a.startLineNumber,1,l,this._editor.getModel().getLineMaxColumn(l))}return a}));const r=this._findMatches(i,!1,k0);this._decorations.set(r,i);const o=this._editor.getSelection();let s=this._decorations.getCurrentMatchesPosition(o);if(s===0&&r.length>0){const a=D_(r.map(l=>l.range),l=>K.compareRangesUsingStarts(l,o)>=0);s=a>0?a-1+1:s}this._state.changeMatchInfo(s,this._decorations.getCount(),void 0),e&&this._editor.getOption(41).cursorMoveOnType&&this._moveToNextMatch(this._decorations.getStartPosition())}_hasMatches(){return this._state.matchesCount>0}_cannotFind(){if(!this._hasMatches()){const e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1}_setCurrentFindMatch(e){const t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)}_prevSearchPosition(e){const t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:i,column:r}=e;const o=this._editor.getModel();return t||r===1?(i===1?i=o.getLineCount():i--,r=o.getLineMaxColumn(i)):r--,new ve(i,r)}_moveToPrevMatch(e,t=!1){if(!this._state.canNavigateBack()){const c=this._decorations.matchAfterPosition(e);c&&this._setCurrentFindMatch(c);return}if(this._decorations.getCount()=0||this._state.searchString.indexOf("$")>=0);let{lineNumber:i,column:r}=e;const o=this._editor.getModel();return t||r===o.getLineMaxColumn(i)?(i===o.getLineCount()?i=1:i++,r=1):r++,new ve(i,r)}_moveToNextMatch(e){if(!this._state.canNavigateForward()){const i=this._decorations.matchBeforePosition(e);i&&this._setCurrentFindMatch(i);return}if(this._decorations.getCount()CA._getSearchRange(this._editor.getModel(),o));return this._editor.getModel().findMatches(this._state.searchString,r,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(130):null,t,i)}replaceAll(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();e===null&&this._state.matchesCount>=k0?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}_largeReplaceAll(){const t=new tv(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getOption(130):null).parseSearchRequest();if(!t)return;let i=t.regex;if(!i.multiline){let d="mu";i.ignoreCase&&(d+="i"),i.global&&(d+="g"),i=new RegExp(i.source,d)}const r=this._editor.getModel(),o=r.getValue(1),s=r.getFullModelRange(),a=this._getReplacePattern();let l;const u=this._state.preserveCase;a.hasReplacementPatterns||u?l=o.replace(i,function(){return a.buildReplaceString(arguments,u)}):l=o.replace(i,a.buildReplaceString(null,u));const c=new iH(s,l,this._editor.getSelection());this._executeEditorCommand("replaceAll",c)}_regularReplaceAll(e){const t=this._getReplacePattern(),i=this._findMatches(e,t.hasReplacementPatterns||this._state.preserveCase,1073741824),r=[];for(let s=0,a=i.length;ss.range),r);this._executeEditorCommand("replaceAll",o)}selectAllMatches(){if(!this._hasMatches())return;const e=this._decorations.getFindScopes();let i=this._findMatches(e,!1,1073741824).map(o=>new Gt(o.range.startLineNumber,o.range.startColumn,o.range.endLineNumber,o.range.endColumn));const r=this._editor.getSelection();for(let o=0,s=i.length;othis._hide(),2e3)),this._isVisible=!1,this._editor=e,this._state=t,this._keybindingService=i,this._domNode=document.createElement("div"),this._domNode.className="findOptionsWidget",this._domNode.style.display="none",this._domNode.style.top="10px",this._domNode.style.zIndex="12",this._domNode.setAttribute("role","presentation"),this._domNode.setAttribute("aria-hidden","true");const r={inputActiveOptionBorder:Lt(EH),inputActiveOptionForeground:Lt(WH),inputActiveOptionBackground:Lt(PC)};this.caseSensitive=this._register(new owe({appendTitle:this._keybindingLabelFor(sr.ToggleCaseSensitiveCommand),isChecked:this._state.matchCase,...r})),this._domNode.appendChild(this.caseSensitive.domNode),this._register(this.caseSensitive.onChange(()=>{this._state.change({matchCase:this.caseSensitive.checked},!1)})),this.wholeWords=this._register(new swe({appendTitle:this._keybindingLabelFor(sr.ToggleWholeWordCommand),isChecked:this._state.wholeWord,...r})),this._domNode.appendChild(this.wholeWords.domNode),this._register(this.wholeWords.onChange(()=>{this._state.change({wholeWord:this.wholeWords.checked},!1)})),this.regex=this._register(new awe({appendTitle:this._keybindingLabelFor(sr.ToggleRegexCommand),isChecked:this._state.isRegex,...r})),this._domNode.appendChild(this.regex.domNode),this._register(this.regex.onChange(()=>{this._state.change({isRegex:this.regex.checked},!1)})),this._editor.addOverlayWidget(this),this._register(this._state.onFindReplaceStateChange(o=>{let s=!1;o.isRegex&&(this.regex.checked=this._state.isRegex,s=!0),o.wholeWord&&(this.wholeWords.checked=this._state.wholeWord,s=!0),o.matchCase&&(this.caseSensitive.checked=this._state.matchCase,s=!0),!this._state.isRevealed&&s&&this._revealTemporarily()})),this._register(Ve(this._domNode,at.MOUSE_LEAVE,o=>this._onMouseLeave())),this._register(Ve(this._domNode,"mouseover",o=>this._onMouseOver()))}_keybindingLabelFor(e){const t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:""}dispose(){this._editor.removeOverlayWidget(this),super.dispose()}getId(){return ZR.ID}getDomNode(){return this._domNode}getPosition(){return{preference:0}}highlightFindOptions(){this._revealTemporarily()}_revealTemporarily(){this._show(),this._hideSoon.schedule()}_onMouseLeave(){this._hideSoon.schedule()}_onMouseOver(){this._hideSoon.cancel()}_show(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")}_hide(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")}}ZR.ID="editor.contrib.findOptionsWidget";function TR(n,e){return n===1?!0:n===2?!1:e}class $At extends De{get searchString(){return this._searchString}get replaceString(){return this._replaceString}get isRevealed(){return this._isRevealed}get isReplaceRevealed(){return this._isReplaceRevealed}get isRegex(){return TR(this._isRegexOverride,this._isRegex)}get wholeWord(){return TR(this._wholeWordOverride,this._wholeWord)}get matchCase(){return TR(this._matchCaseOverride,this._matchCase)}get preserveCase(){return TR(this._preserveCaseOverride,this._preserveCase)}get actualIsRegex(){return this._isRegex}get actualWholeWord(){return this._wholeWord}get actualMatchCase(){return this._matchCase}get actualPreserveCase(){return this._preserveCase}get searchScope(){return this._searchScope}get matchesPosition(){return this._matchesPosition}get matchesCount(){return this._matchesCount}get currentMatch(){return this._currentMatch}constructor(){super(),this._onFindReplaceStateChange=this._register(new be),this.onFindReplaceStateChange=this._onFindReplaceStateChange.event,this._searchString="",this._replaceString="",this._isRevealed=!1,this._isReplaceRevealed=!1,this._isRegex=!1,this._isRegexOverride=0,this._wholeWord=!1,this._wholeWordOverride=0,this._matchCase=!1,this._matchCaseOverride=0,this._preserveCase=!1,this._preserveCaseOverride=0,this._searchScope=null,this._matchesPosition=0,this._matchesCount=0,this._currentMatch=null,this._loop=!0,this._isSearching=!1,this._filters=null}changeMatchInfo(e,t,i){const r={moveCursor:!1,updateHistory:!1,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let o=!1;t===0&&(e=0),e>t&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,r.matchesPosition=!0,o=!0),this._matchesCount!==t&&(this._matchesCount=t,r.matchesCount=!0,o=!0),typeof i<"u"&&(K.equalsRange(this._currentMatch,i)||(this._currentMatch=i,r.currentMatch=!0,o=!0)),o&&this._onFindReplaceStateChange.fire(r)}change(e,t,i=!0){var r;const o={moveCursor:t,updateHistory:i,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,preserveCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1,loop:!1,isSearching:!1,filters:!1};let s=!1;const a=this.isRegex,l=this.wholeWord,u=this.matchCase,c=this.preserveCase;typeof e.searchString<"u"&&this._searchString!==e.searchString&&(this._searchString=e.searchString,o.searchString=!0,s=!0),typeof e.replaceString<"u"&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,o.replaceString=!0,s=!0),typeof e.isRevealed<"u"&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,o.isRevealed=!0,s=!0),typeof e.isReplaceRevealed<"u"&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,o.isReplaceRevealed=!0,s=!0),typeof e.isRegex<"u"&&(this._isRegex=e.isRegex),typeof e.wholeWord<"u"&&(this._wholeWord=e.wholeWord),typeof e.matchCase<"u"&&(this._matchCase=e.matchCase),typeof e.preserveCase<"u"&&(this._preserveCase=e.preserveCase),typeof e.searchScope<"u"&&(!((r=e.searchScope)===null||r===void 0)&&r.every(d=>{var h;return(h=this._searchScope)===null||h===void 0?void 0:h.some(g=>!K.equalsRange(g,d))})||(this._searchScope=e.searchScope,o.searchScope=!0,s=!0)),typeof e.loop<"u"&&this._loop!==e.loop&&(this._loop=e.loop,o.loop=!0,s=!0),typeof e.isSearching<"u"&&this._isSearching!==e.isSearching&&(this._isSearching=e.isSearching,o.isSearching=!0,s=!0),typeof e.filters<"u"&&(this._filters?this._filters.update(e.filters):this._filters=e.filters,o.filters=!0,s=!0),this._isRegexOverride=typeof e.isRegexOverride<"u"?e.isRegexOverride:0,this._wholeWordOverride=typeof e.wholeWordOverride<"u"?e.wholeWordOverride:0,this._matchCaseOverride=typeof e.matchCaseOverride<"u"?e.matchCaseOverride:0,this._preserveCaseOverride=typeof e.preserveCaseOverride<"u"?e.preserveCaseOverride:0,a!==this.isRegex&&(s=!0,o.isRegex=!0),l!==this.wholeWord&&(s=!0,o.wholeWord=!0),u!==this.matchCase&&(s=!0,o.matchCase=!0),c!==this.preserveCase&&(s=!0,o.preserveCase=!0),s&&this._onFindReplaceStateChange.fire(o)}canNavigateBack(){return this.canNavigateInLoop()||this.matchesPosition!==1}canNavigateForward(){return this.canNavigateInLoop()||this.matchesPosition=k0}}const qAt=x("defaultLabel","input"),eNt=x("label.preserveCaseToggle","Preserve Case");class tNt extends Fw{constructor(e){super({icon:ct.preserveCase,title:eNt+e.appendTitle,isChecked:e.isChecked,inputActiveOptionBorder:e.inputActiveOptionBorder,inputActiveOptionForeground:e.inputActiveOptionForeground,inputActiveOptionBackground:e.inputActiveOptionBackground})}}class nNt extends Pu{constructor(e,t,i,r){super(),this._showOptionButtons=i,this.fixFocusOnOptionClickEnabled=!0,this.cachedOptionsWidth=0,this._onDidOptionChange=this._register(new be),this.onDidOptionChange=this._onDidOptionChange.event,this._onKeyDown=this._register(new be),this.onKeyDown=this._onKeyDown.event,this._onMouseDown=this._register(new be),this._onInput=this._register(new be),this._onKeyUp=this._register(new be),this._onPreserveCaseKeyDown=this._register(new be),this.onPreserveCaseKeyDown=this._onPreserveCaseKeyDown.event,this.contextViewProvider=t,this.placeholder=r.placeholder||"",this.validation=r.validation,this.label=r.label||qAt;const o=r.appendPreserveCaseLabel||"",s=r.history||[],a=!!r.flexibleHeight,l=!!r.flexibleWidth,u=r.flexibleMaxHeight;this.domNode=document.createElement("div"),this.domNode.classList.add("monaco-findInput"),this.inputBox=this._register(new lwe(this.domNode,this.contextViewProvider,{ariaLabel:this.label||"",placeholder:this.placeholder||"",validationOptions:{validation:this.validation},history:s,showHistoryHint:r.showHistoryHint,flexibleHeight:a,flexibleWidth:l,flexibleMaxHeight:u,inputBoxStyles:r.inputBoxStyles})),this.preserveCase=this._register(new tNt({appendTitle:o,isChecked:!1,...r.toggleStyles})),this._register(this.preserveCase.onChange(h=>{this._onDidOptionChange.fire(h),!h&&this.fixFocusOnOptionClickEnabled&&this.inputBox.focus(),this.validate()})),this._register(this.preserveCase.onKeyDown(h=>{this._onPreserveCaseKeyDown.fire(h)})),this._showOptionButtons?this.cachedOptionsWidth=this.preserveCase.width():this.cachedOptionsWidth=0;const c=[this.preserveCase.domNode];this.onkeydown(this.domNode,h=>{if(h.equals(15)||h.equals(17)||h.equals(9)){const g=c.indexOf(this.domNode.ownerDocument.activeElement);if(g>=0){let m=-1;h.equals(17)?m=(g+1)%c.length:h.equals(15)&&(g===0?m=c.length-1:m=g-1),h.equals(9)?(c[g].blur(),this.inputBox.focus()):m>=0&&c[m].focus(),En.stop(h,!0)}}});const d=document.createElement("div");d.className="controls",d.style.display=this._showOptionButtons?"block":"none",d.appendChild(this.preserveCase.domNode),this.domNode.appendChild(d),e==null||e.appendChild(this.domNode),this.onkeydown(this.inputBox.inputElement,h=>this._onKeyDown.fire(h)),this.onkeyup(this.inputBox.inputElement,h=>this._onKeyUp.fire(h)),this.oninput(this.inputBox.inputElement,h=>this._onInput.fire()),this.onmousedown(this.inputBox.inputElement,h=>this._onMouseDown.fire(h))}enable(){this.domNode.classList.remove("disabled"),this.inputBox.enable(),this.preserveCase.enable()}disable(){this.domNode.classList.add("disabled"),this.inputBox.disable(),this.preserveCase.disable()}setEnabled(e){e?this.enable():this.disable()}select(){this.inputBox.select()}focus(){this.inputBox.focus()}getPreserveCase(){return this.preserveCase.checked}setPreserveCase(e){this.preserveCase.checked=e}focusOnPreserve(){this.preserveCase.focus()}validate(){var e;(e=this.inputBox)===null||e===void 0||e.validate()}set width(e){this.inputBox.paddingRight=this.cachedOptionsWidth,this.domNode.style.width=e+"px"}dispose(){super.dispose()}}var DSe=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},ASe=function(n,e){return function(t,i){e(t,i,n)}};const c8=new It("suggestWidgetVisible",!1,x("suggestWidgetVisible","Whether suggestion are visible")),d8="historyNavigationWidgetFocus",NSe="historyNavigationForwardsEnabled",kSe="historyNavigationBackwardsEnabled";let hp;const ER=[];function MSe(n,e){if(ER.includes(e))throw new Error("Cannot register the same widget multiple times");ER.push(e);const t=new je,i=new It(d8,!1).bindTo(n),r=new It(NSe,!0).bindTo(n),o=new It(kSe,!0).bindTo(n),s=()=>{i.set(!0),hp=e},a=()=>{i.set(!1),hp===e&&(hp=void 0)};return EF(e.element)&&s(),t.add(e.onDidFocus(()=>s())),t.add(e.onDidBlur(()=>a())),t.add(en(()=>{ER.splice(ER.indexOf(e),1),a()})),{historyNavigationForwardsEnablement:r,historyNavigationBackwardsEnablement:o,dispose(){t.dispose()}}}let h8=class extends uwe{constructor(e,t,i,r){super(e,t,i);const o=this._register(r.createScoped(this.inputBox.element));this._register(MSe(o,this.inputBox))}};h8=DSe([ASe(3,ln)],h8);let g8=class extends nNt{constructor(e,t,i,r,o=!1){super(e,t,o,i);const s=this._register(r.createScoped(this.inputBox.element));this._register(MSe(s,this.inputBox))}};g8=DSe([ASe(3,ln)],g8),Dl.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:Be.and(Be.has(d8),Be.equals(kSe,!0),Be.not("isComposing"),c8.isEqualTo(!1)),primary:16,secondary:[528],handler:n=>{hp==null||hp.showPreviousValue()}}),Dl.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:Be.and(Be.has(d8),Be.equals(NSe,!0),Be.not("isComposing"),c8.isEqualTo(!1)),primary:18,secondary:[530],handler:n=>{hp==null||hp.showNextValue()}});function ZSe(n){var e,t;return((e=n.lookupKeybinding("history.showPrevious"))===null||e===void 0?void 0:e.getElectronAccelerator())==="Up"&&((t=n.lookupKeybinding("history.showNext"))===null||t===void 0?void 0:t.getElectronAccelerator())==="Down"}const iNt=io("find-selection",ct.selection,x("findSelectionIcon","Icon for 'Find in Selection' in the editor find widget.")),TSe=io("find-collapsed",ct.chevronRight,x("findCollapsedIcon","Icon to indicate that the editor find widget is collapsed.")),ESe=io("find-expanded",ct.chevronDown,x("findExpandedIcon","Icon to indicate that the editor find widget is expanded.")),rNt=io("find-replace",ct.replace,x("findReplaceIcon","Icon for 'Replace' in the editor find widget.")),oNt=io("find-replace-all",ct.replaceAll,x("findReplaceAllIcon","Icon for 'Replace All' in the editor find widget.")),sNt=io("find-previous-match",ct.arrowUp,x("findPreviousMatchIcon","Icon for 'Find Previous' in the editor find widget.")),aNt=io("find-next-match",ct.arrowDown,x("findNextMatchIcon","Icon for 'Find Next' in the editor find widget.")),lNt=x("label.findDialog","Find / Replace"),uNt=x("label.find","Find"),cNt=x("placeholder.find","Find"),dNt=x("label.previousMatchButton","Previous Match"),hNt=x("label.nextMatchButton","Next Match"),gNt=x("label.toggleSelectionFind","Find in Selection"),mNt=x("label.closeButton","Close"),fNt=x("label.replace","Replace"),pNt=x("placeholder.replace","Replace"),bNt=x("label.replaceButton","Replace"),CNt=x("label.replaceAllButton","Replace All"),vNt=x("label.toggleReplaceButton","Toggle Replace"),yNt=x("title.matchesCountLimit","Only the first {0} results are highlighted, but all find operations work on the entire text.",k0),INt=x("label.matchesLocation","{0} of {1}"),WSe=x("label.noResults","No results"),xm=419,wNt=275-54;let vA=69;const SNt=33,RSe="ctrlEnterReplaceAll.windows.donotask",GSe=$n?256:2048;class m8{constructor(e){this.afterLineNumber=e,this.heightInPx=SNt,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"}}function VSe(n,e,t){const i=!!e.match(/\n/);if(t&&i&&t.selectionStart>0){n.stopPropagation();return}}function XSe(n,e,t){const i=!!e.match(/\n/);if(t&&i&&t.selectionEndthis._updateHistoryDelayer.cancel())),this._register(this._state.onFindReplaceStateChange(c=>this._onStateChanged(c))),this._buildDomNode(),this._updateButtons(),this._tryUpdateWidgetWidth(),this._findInput.inputBox.layout(),this._register(this._codeEditor.onDidChangeConfiguration(c=>{if(c.hasChanged(91)&&(this._codeEditor.getOption(91)&&this._state.change({isReplaceRevealed:!1},!1),this._updateButtons()),c.hasChanged(144)&&this._tryUpdateWidgetWidth(),c.hasChanged(2)&&this.updateAccessibilitySupport(),c.hasChanged(41)){const d=this._codeEditor.getOption(41).loop;this._state.change({loop:d},!1);const h=this._codeEditor.getOption(41).addExtraSpaceOnTop;h&&!this._viewZone&&(this._viewZone=new m8(0),this._showViewZone()),!h&&this._viewZone&&this._removeViewZone()}})),this.updateAccessibilitySupport(),this._register(this._codeEditor.onDidChangeCursorSelection(()=>{this._isVisible&&this._updateToggleSelectionFindButton()})),this._register(this._codeEditor.onDidFocusEditorWidget(async()=>{if(this._isVisible){const c=await this._controller.getGlobalBufferTerm();c&&c!==this._state.searchString&&(this._state.change({searchString:c},!1),this._findInput.select())}})),this._findInputFocused=_R.bindTo(s),this._findFocusTracker=this._register(ph(this._findInput.inputBox.inputElement)),this._register(this._findFocusTracker.onDidFocus(()=>{this._findInputFocused.set(!0),this._updateSearchScope()})),this._register(this._findFocusTracker.onDidBlur(()=>{this._findInputFocused.set(!1)})),this._replaceInputFocused=u8.bindTo(s),this._replaceFocusTracker=this._register(ph(this._replaceInput.inputBox.inputElement)),this._register(this._replaceFocusTracker.onDidFocus(()=>{this._replaceInputFocused.set(!0),this._updateSearchScope()})),this._register(this._replaceFocusTracker.onDidBlur(()=>{this._replaceInputFocused.set(!1)})),this._codeEditor.addOverlayWidget(this),this._codeEditor.getOption(41).addExtraSpaceOnTop&&(this._viewZone=new m8(0)),this._register(this._codeEditor.onDidChangeModel(()=>{this._isVisible&&(this._viewZoneId=void 0)})),this._register(this._codeEditor.onDidScrollChange(c=>{if(c.scrollTopChanged){this._layoutViewZone();return}setTimeout(()=>{this._layoutViewZone()},0)}))}getId(){return WR.ID}getDomNode(){return this._domNode}getPosition(){return this._isVisible?{preference:0}:null}_onStateChanged(e){if(e.searchString){try{this._ignoreChangeEvent=!0,this._findInput.setValue(this._state.searchString)}finally{this._ignoreChangeEvent=!1}this._updateButtons()}if(e.replaceString&&(this._replaceInput.inputBox.value=this._state.replaceString),e.isRevealed&&(this._state.isRevealed?this._reveal():this._hide(!0)),e.isReplaceRevealed&&(this._state.isReplaceRevealed?!this._codeEditor.getOption(91)&&!this._isReplaceVisible&&(this._isReplaceVisible=!0,this._replaceInput.width=Ja(this._findInput.domNode),this._updateButtons(),this._replaceInput.inputBox.layout()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),(e.isRevealed||e.isReplaceRevealed)&&(this._state.isRevealed||this._state.isReplaceRevealed)&&this._tryUpdateHeight()&&this._showViewZone(),e.isRegex&&this._findInput.setRegex(this._state.isRegex),e.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),e.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),e.preserveCase&&this._replaceInput.setPreserveCase(this._state.preserveCase),e.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),e.searchString||e.matchesCount||e.matchesPosition){const t=this._state.searchString.length>0&&this._state.matchesCount===0;this._domNode.classList.toggle("no-results",t),this._updateMatchesCount(),this._updateButtons()}(e.searchString||e.currentMatch)&&this._layoutViewZone(),e.updateHistory&&this._delayedUpdateHistory(),e.loop&&this._updateButtons()}_delayedUpdateHistory(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this)).then(void 0,fn)}_updateHistory(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInput.inputBox.addToHistory()}_updateMatchesCount(){this._matchesCount.style.minWidth=vA+"px",this._state.matchesCount>=k0?this._matchesCount.title=yNt:this._matchesCount.title="",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild);let e;if(this._state.matchesCount>0){let t=String(this._state.matchesCount);this._state.matchesCount>=k0&&(t+="+");let i=String(this._state.matchesPosition);i==="0"&&(i="?"),e=UI(INt,i,t)}else e=WSe;this._matchesCount.appendChild(document.createTextNode(e)),ou(this._getAriaLabel(e,this._state.currentMatch,this._state.searchString)),vA=Math.max(vA,this._matchesCount.clientWidth)}_getAriaLabel(e,t,i){if(e===WSe)return i===""?x("ariaSearchNoResultEmpty","{0} found",e):x("ariaSearchNoResult","{0} found for '{1}'",e,i);if(t){const r=x("ariaSearchNoResultWithLineNum","{0} found for '{1}', at {2}",e,i,t.startLineNumber+":"+t.startColumn),o=this._codeEditor.getModel();return o&&t.startLineNumber<=o.getLineCount()&&t.startLineNumber>=1?`${o.getLineContent(t.startLineNumber)}, ${r}`:r}return x("ariaSearchNoResultWithLineNumNoCurrentMatch","{0} found for '{1}'",e,i)}_updateToggleSelectionFindButton(){const e=this._codeEditor.getSelection(),t=e?e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn:!1,i=this._toggleSelectionFind.checked;this._isVisible&&(i||t)?this._toggleSelectionFind.enable():this._toggleSelectionFind.disable()}_updateButtons(){this._findInput.setEnabled(this._isVisible),this._replaceInput.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);const e=this._state.searchString.length>0,t=!!this._state.matchesCount;this._prevBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateBack()),this._nextBtn.setEnabled(this._isVisible&&e&&t&&this._state.canNavigateForward()),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._domNode.classList.toggle("replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);const i=!this._codeEditor.getOption(91);this._toggleReplaceBtn.setEnabled(this._isVisible&&i)}_reveal(){if(this._revealTimeouts.forEach(e=>{clearTimeout(e)}),this._revealTimeouts=[],!this._isVisible){this._isVisible=!0;const e=this._codeEditor.getSelection();switch(this._codeEditor.getOption(41).autoFindInSelection){case"always":this._toggleSelectionFind.checked=!0;break;case"never":this._toggleSelectionFind.checked=!1;break;case"multiline":{const i=!!e&&e.startLineNumber!==e.endLineNumber;this._toggleSelectionFind.checked=i;break}}this._tryUpdateWidgetWidth(),this._updateButtons(),this._revealTimeouts.push(setTimeout(()=>{this._domNode.classList.add("visible"),this._domNode.setAttribute("aria-hidden","false")},0)),this._revealTimeouts.push(setTimeout(()=>{this._findInput.validate()},200)),this._codeEditor.layoutOverlayWidget(this);let t=!0;if(this._codeEditor.getOption(41).seedSearchStringFromSelection&&e){const i=this._codeEditor.getDomNode();if(i){const r=go(i),o=this._codeEditor.getScrolledVisiblePosition(e.getStartPosition()),s=r.left+(o?o.left:0),a=o?o.top:0;if(this._viewZone&&ae.startLineNumber&&(t=!1);const l=Ybe(this._domNode).left;s>l&&(t=!1);const u=this._codeEditor.getScrolledVisiblePosition(e.getEndPosition());r.left+(u?u.left:0)>l&&(t=!1)}}}this._showViewZone(t)}}_hide(e){this._revealTimeouts.forEach(t=>{clearTimeout(t)}),this._revealTimeouts=[],this._isVisible&&(this._isVisible=!1,this._updateButtons(),this._domNode.classList.remove("visible"),this._domNode.setAttribute("aria-hidden","true"),this._findInput.clearMessage(),e&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._removeViewZone())}_layoutViewZone(e){if(!this._codeEditor.getOption(41).addExtraSpaceOnTop){this._removeViewZone();return}if(!this._isVisible)return;const i=this._viewZone;this._viewZoneId!==void 0||!i||this._codeEditor.changeViewZones(r=>{i.heightInPx=this._getHeight(),this._viewZoneId=r.addZone(i),this._codeEditor.setScrollTop(e||this._codeEditor.getScrollTop()+i.heightInPx)})}_showViewZone(e=!0){if(!this._isVisible||!this._codeEditor.getOption(41).addExtraSpaceOnTop)return;this._viewZone===void 0&&(this._viewZone=new m8(0));const i=this._viewZone;this._codeEditor.changeViewZones(r=>{if(this._viewZoneId!==void 0){const o=this._getHeight();if(o===i.heightInPx)return;const s=o-i.heightInPx;i.heightInPx=o,r.layoutZone(this._viewZoneId),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+s);return}else{let o=this._getHeight();if(o-=this._codeEditor.getOption(84).top,o<=0)return;i.heightInPx=o,this._viewZoneId=r.addZone(i),e&&this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()+o)}})}_removeViewZone(){this._codeEditor.changeViewZones(e=>{this._viewZoneId!==void 0&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0,this._viewZone&&(this._codeEditor.setScrollTop(this._codeEditor.getScrollTop()-this._viewZone.heightInPx),this._viewZone=void 0))})}_tryUpdateWidgetWidth(){if(!this._isVisible||!this._domNode.isConnected)return;const e=this._codeEditor.getLayoutInfo();if(e.contentWidth<=0){this._domNode.classList.add("hiddenEditor");return}else this._domNode.classList.contains("hiddenEditor")&&this._domNode.classList.remove("hiddenEditor");const i=e.width,r=e.minimap.minimapWidth;let o=!1,s=!1,a=!1;if(this._resized&&Ja(this._domNode)>xm){this._domNode.style.maxWidth=`${i-28-r-15}px`,this._replaceInput.width=Ja(this._findInput.domNode);return}if(xm+28+r>=i&&(s=!0),xm+28+r-vA>=i&&(a=!0),xm+28+r-vA>=i+50&&(o=!0),this._domNode.classList.toggle("collapsed-find-widget",o),this._domNode.classList.toggle("narrow-find-widget",a),this._domNode.classList.toggle("reduced-find-widget",s),!a&&!o&&(this._domNode.style.maxWidth=`${i-28-r-15}px`),this._findInput.layout({collapsedFindWidget:o,narrowFindWidget:a,reducedFindWidget:s}),this._resized){const l=this._findInput.inputBox.element.clientWidth;l>0&&(this._replaceInput.width=l)}else this._isReplaceVisible&&(this._replaceInput.width=Ja(this._findInput.domNode))}_getHeight(){let e=0;return e+=4,e+=this._findInput.inputBox.height+2,this._isReplaceVisible&&(e+=4,e+=this._replaceInput.inputBox.height+2),e+=4,e}_tryUpdateHeight(){const e=this._getHeight();return this._cachedHeight!==null&&this._cachedHeight===e?!1:(this._cachedHeight=e,this._domNode.style.height=`${e}px`,!0)}focusFindInput(){this._findInput.select(),this._findInput.focus()}focusReplaceInput(){this._replaceInput.select(),this._replaceInput.focus()}highlightFindOptions(){this._findInput.highlightFindOptions()}_updateSearchScope(){if(this._codeEditor.hasModel()&&this._toggleSelectionFind.checked){const e=this._codeEditor.getSelections();e.map(t=>{t.endColumn===1&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(t.endLineNumber-1)));const i=this._state.currentMatch;return t.startLineNumber!==t.endLineNumber&&!K.equalsRange(t,i)?t:null}).filter(t=>!!t),e.length&&this._state.change({searchScope:e},!0)}}_onFindInputMouseDown(e){e.middleButton&&e.stopPropagation()}_onFindInputKeyDown(e){if(e.equals(GSe|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{this._findInput.inputBox.insertAtCursor(` +`),e.preventDefault();return}if(e.equals(2)){this._isReplaceVisible?this._replaceInput.focus():this._findInput.focusOnCaseSensitive(),e.preventDefault();return}if(e.equals(2066)){this._codeEditor.focus(),e.preventDefault();return}if(e.equals(16))return VSe(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"));if(e.equals(18))return XSe(e,this._findInput.getValue(),this._findInput.domNode.querySelector("textarea"))}_onReplaceInputKeyDown(e){if(e.equals(GSe|3))if(this._keybindingService.dispatchEvent(e,e.target)){e.preventDefault();return}else{ya&&dh&&!this._ctrlEnterReplaceAllWarningPrompted&&(this._notificationService.info(x("ctrlEnter.keybindingChanged","Ctrl+Enter now inserts line break instead of replacing all. You can modify the keybinding for editor.action.replaceAll to override this behavior.")),this._ctrlEnterReplaceAllWarningPrompted=!0,this._storageService.store(RSe,!0,0,0)),this._replaceInput.inputBox.insertAtCursor(` +`),e.preventDefault();return}if(e.equals(2)){this._findInput.focusOnCaseSensitive(),e.preventDefault();return}if(e.equals(1026)){this._findInput.focus(),e.preventDefault();return}if(e.equals(2066)){this._codeEditor.focus(),e.preventDefault();return}if(e.equals(16))return VSe(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"));if(e.equals(18))return XSe(e,this._replaceInput.inputBox.value,this._replaceInput.inputBox.element.querySelector("textarea"))}getVerticalSashLeft(e){return 0}_keybindingLabelFor(e){const t=this._keybindingService.lookupKeybinding(e);return t?` (${t.getLabel()})`:""}_buildDomNode(){this._findInput=this._register(new h8(null,this._contextViewProvider,{width:wNt,label:uNt,placeholder:cNt,appendCaseSensitiveLabel:this._keybindingLabelFor(sr.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(sr.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(sr.ToggleRegexCommand),validation:l=>{if(l.length===0||!this._findInput.getRegex())return null;try{return new RegExp(l,"gu"),null}catch(u){return{content:u.message}}},flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showCommonFindToggles:!0,showHistoryHint:()=>ZSe(this._keybindingService),inputBoxStyles:fW,toggleStyles:mW},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown(l=>this._onFindInputKeyDown(l))),this._register(this._findInput.inputBox.onDidChange(()=>{this._ignoreChangeEvent||this._state.change({searchString:this._findInput.getValue()},!0)})),this._register(this._findInput.onDidOptionChange(()=>{this._state.change({isRegex:this._findInput.getRegex(),wholeWord:this._findInput.getWholeWords(),matchCase:this._findInput.getCaseSensitive()},!0)})),this._register(this._findInput.onCaseSensitiveKeyDown(l=>{l.equals(1026)&&this._isReplaceVisible&&(this._replaceInput.focus(),l.preventDefault())})),this._register(this._findInput.onRegexKeyDown(l=>{l.equals(2)&&this._isReplaceVisible&&(this._replaceInput.focusOnPreserve(),l.preventDefault())})),this._register(this._findInput.inputBox.onDidHeightChange(l=>{this._tryUpdateHeight()&&this._showViewZone()})),Ha&&this._register(this._findInput.onMouseDown(l=>this._onFindInputMouseDown(l))),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount(),this._prevBtn=this._register(new Vw({label:dNt+this._keybindingLabelFor(sr.PreviousMatchFindAction),icon:sNt,onTrigger:()=>{fb(this._codeEditor.getAction(sr.PreviousMatchFindAction)).run().then(void 0,fn)}})),this._nextBtn=this._register(new Vw({label:hNt+this._keybindingLabelFor(sr.NextMatchFindAction),icon:aNt,onTrigger:()=>{fb(this._codeEditor.getAction(sr.NextMatchFindAction)).run().then(void 0,fn)}}));const i=document.createElement("div");i.className="find-part",i.appendChild(this._findInput.domNode);const r=document.createElement("div");r.className="find-actions",i.appendChild(r),r.appendChild(this._matchesCount),r.appendChild(this._prevBtn.domNode),r.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new Fw({icon:iNt,title:gNt+this._keybindingLabelFor(sr.ToggleSearchScopeCommand),isChecked:!1,inputActiveOptionBackground:Lt(PC),inputActiveOptionBorder:Lt(EH),inputActiveOptionForeground:Lt(WH)})),this._register(this._toggleSelectionFind.onChange(()=>{if(this._toggleSelectionFind.checked){if(this._codeEditor.hasModel()){let l=this._codeEditor.getSelections();l=l.map(u=>(u.endColumn===1&&u.endLineNumber>u.startLineNumber&&(u=u.setEndPosition(u.endLineNumber-1,this._codeEditor.getModel().getLineMaxColumn(u.endLineNumber-1))),u.isEmpty()?null:u)).filter(u=>!!u),l.length&&this._state.change({searchScope:l},!0)}}else this._state.change({searchScope:null},!0)})),r.appendChild(this._toggleSelectionFind.domNode),this._closeBtn=this._register(new Vw({label:mNt+this._keybindingLabelFor(sr.CloseFindWidgetCommand),icon:Xye,onTrigger:()=>{this._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:l=>{l.equals(2)&&this._isReplaceVisible&&(this._replaceBtn.isEnabled()?this._replaceBtn.focus():this._codeEditor.focus(),l.preventDefault())}})),this._replaceInput=this._register(new g8(null,void 0,{label:fNt,placeholder:pNt,appendPreserveCaseLabel:this._keybindingLabelFor(sr.TogglePreserveCaseCommand),history:[],flexibleHeight:!0,flexibleWidth:!0,flexibleMaxHeight:118,showHistoryHint:()=>ZSe(this._keybindingService),inputBoxStyles:fW,toggleStyles:mW},this._contextKeyService,!0)),this._replaceInput.setPreserveCase(!!this._state.preserveCase),this._register(this._replaceInput.onKeyDown(l=>this._onReplaceInputKeyDown(l))),this._register(this._replaceInput.inputBox.onDidChange(()=>{this._state.change({replaceString:this._replaceInput.inputBox.value},!1)})),this._register(this._replaceInput.inputBox.onDidHeightChange(l=>{this._isReplaceVisible&&this._tryUpdateHeight()&&this._showViewZone()})),this._register(this._replaceInput.onDidOptionChange(()=>{this._state.change({preserveCase:this._replaceInput.getPreserveCase()},!0)})),this._register(this._replaceInput.onPreserveCaseKeyDown(l=>{l.equals(2)&&(this._prevBtn.isEnabled()?this._prevBtn.focus():this._nextBtn.isEnabled()?this._nextBtn.focus():this._toggleSelectionFind.enabled?this._toggleSelectionFind.focus():this._closeBtn.isEnabled()&&this._closeBtn.focus(),l.preventDefault())})),this._replaceBtn=this._register(new Vw({label:bNt+this._keybindingLabelFor(sr.ReplaceOneAction),icon:rNt,onTrigger:()=>{this._controller.replace()},onKeyDown:l=>{l.equals(1026)&&(this._closeBtn.focus(),l.preventDefault())}})),this._replaceAllBtn=this._register(new Vw({label:CNt+this._keybindingLabelFor(sr.ReplaceAllAction),icon:oNt,onTrigger:()=>{this._controller.replaceAll()}}));const o=document.createElement("div");o.className="replace-part",o.appendChild(this._replaceInput.domNode);const s=document.createElement("div");s.className="replace-actions",o.appendChild(s),s.appendChild(this._replaceBtn.domNode),s.appendChild(this._replaceAllBtn.domNode),this._toggleReplaceBtn=this._register(new Vw({label:vNt,className:"codicon toggle left",onTrigger:()=>{this._state.change({isReplaceRevealed:!this._isReplaceVisible},!1),this._isReplaceVisible&&(this._replaceInput.width=Ja(this._findInput.domNode),this._replaceInput.inputBox.layout()),this._showViewZone()}})),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.ariaLabel=lNt,this._domNode.role="dialog",this._domNode.style.width=`${xm}px`,this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(i),this._domNode.appendChild(this._closeBtn.domNode),this._domNode.appendChild(o),this._resizeSash=this._register(new fa(this._domNode,this,{orientation:0,size:2})),this._resized=!1;let a=xm;this._register(this._resizeSash.onDidStart(()=>{a=Ja(this._domNode)})),this._register(this._resizeSash.onDidChange(l=>{this._resized=!0;const u=a+l.startX-l.currentX;if(uc||(this._domNode.style.width=`${u}px`,this._isReplaceVisible&&(this._replaceInput.width=Ja(this._findInput.domNode)),this._findInput.inputBox.layout(),this._tryUpdateHeight())})),this._register(this._resizeSash.onDidReset(()=>{const l=Ja(this._domNode);if(l{this._opts.onTrigger(),i.preventDefault()}),this.onkeydown(this._domNode,i=>{var r,o;if(i.equals(10)||i.equals(3)){this._opts.onTrigger(),i.preventDefault();return}(o=(r=this._opts).onKeyDown)===null||o===void 0||o.call(r,i)})}get domNode(){return this._domNode}isEnabled(){return this._domNode.tabIndex>=0}focus(){this._domNode.focus()}setEnabled(e){this._domNode.classList.toggle("disabled",!e),this._domNode.setAttribute("aria-disabled",String(!e)),this._domNode.tabIndex=e?0:-1}setExpanded(e){this._domNode.setAttribute("aria-expanded",String(!!e)),e?(this._domNode.classList.remove(...on.asClassNameArray(TSe)),this._domNode.classList.add(...on.asClassNameArray(ESe))):(this._domNode.classList.remove(...on.asClassNameArray(ESe)),this._domNode.classList.add(...on.asClassNameArray(TSe)))}}kc((n,e)=>{const t=n.getColor(Gb);t&&e.addRule(`.monaco-editor .findMatch { border: 1px ${Jg(n.type)?"dotted":"solid"} ${t}; box-sizing: border-box; }`);const i=n.getColor(bbt);i&&e.addRule(`.monaco-editor .findScope { border: 1px ${Jg(n.type)?"dashed":"solid"} ${i}; }`);const r=n.getColor(jn);r&&e.addRule(`.monaco-editor .find-widget { border: 1px solid ${r}; }`)});var PSe=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Bh=function(n,e){return function(t,i){e(t,i,n)}},f8;const xNt=524288;function p8(n,e="single",t=!1){if(!n.hasModel())return null;const i=n.getSelection();if(e==="single"&&i.startLineNumber===i.endLineNumber||e==="multiple"){if(i.isEmpty()){const r=n.getConfiguredWordAtPosition(i.getStartPosition());if(r&&t===!1)return r.word}else if(n.getModel().getValueLengthInRange(i)this._onStateChanged(s))),this._model=null,this._register(this._editor.onDidChangeModel(()=>{const s=this._editor.getModel()&&this._state.isRevealed;this.disposeModel(),this._state.change({searchScope:null,matchCase:this._storageService.getBoolean("editor.matchCase",1,!1),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,!1),isRegex:this._storageService.getBoolean("editor.isRegex",1,!1),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,!1)},!1),s&&this._start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1,updateSearchScope:!1,loop:this._editor.getOption(41).loop})}))}dispose(){this.disposeModel(),super.dispose()}disposeModel(){this._model&&(this._model.dispose(),this._model=null)}_onStateChanged(e){this.saveQueryState(e),e.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),e.searchString&&this.setGlobalBufferTerm(this._state.searchString)}saveQueryState(e){e.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,1,1),e.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,1,1),e.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,1,1),e.preserveCase&&this._storageService.store("editor.preserveCase",this._state.actualPreserveCase,1,1)}loadQueryState(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",1,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",1,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",1,this._state.isRegex),preserveCase:this._storageService.getBoolean("editor.preserveCase",1,this._state.preserveCase)},!1)}isFindInputFocused(){return!!_R.getValue(this._contextKeyService)}getState(){return this._state}closeFindWidget(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()}toggleCaseSensitive(){this._state.change({matchCase:!this._state.matchCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleWholeWords(){this._state.change({wholeWord:!this._state.wholeWord},!1),this._state.isRevealed||this.highlightFindOptions()}toggleRegex(){this._state.change({isRegex:!this._state.isRegex},!1),this._state.isRevealed||this.highlightFindOptions()}togglePreserveCase(){this._state.change({preserveCase:!this._state.preserveCase},!1),this._state.isRevealed||this.highlightFindOptions()}toggleSearchScope(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else if(this._editor.hasModel()){let e=this._editor.getSelections();e=e.map(t=>(t.endColumn===1&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,this._editor.getModel().getLineMaxColumn(t.endLineNumber-1))),t.isEmpty()?null:t)).filter(t=>!!t),e.length&&this._state.change({searchScope:e},!0)}}setSearchString(e){this._state.isRegex&&(e=Zu(e)),this._state.change({searchString:e},!1)}highlightFindOptions(e=!1){}async _start(e,t){if(this.disposeModel(),!this._editor.hasModel())return;const i={...t,isRevealed:!0};if(e.seedSearchStringFromSelection==="single"){const r=p8(this._editor,e.seedSearchStringFromSelection,e.seedSearchStringFromNonEmptySelection);r&&(this._state.isRegex?i.searchString=Zu(r):i.searchString=r)}else if(e.seedSearchStringFromSelection==="multiple"&&!e.updateSearchScope){const r=p8(this._editor,e.seedSearchStringFromSelection);r&&(i.searchString=r)}if(!i.searchString&&e.seedSearchStringFromGlobalClipboard){const r=await this.getGlobalBufferTerm();if(!this._editor.hasModel())return;r&&(i.searchString=r)}if(e.forceRevealReplace||i.isReplaceRevealed?i.isReplaceRevealed=!0:this._findWidgetVisible.get()||(i.isReplaceRevealed=!1),e.updateSearchScope){const r=this._editor.getSelections();r.some(o=>!o.isEmpty())&&(i.searchScope=r)}i.loop=e.loop,this._state.change(i,!1),this._model||(this._model=new CA(this._editor,this._state))}start(e,t){return this._start(e,t)}moveToNextMatch(){return this._model?(this._model.moveToNextMatch(),!0):!1}moveToPrevMatch(){return this._model?(this._model.moveToPrevMatch(),!0):!1}goToMatch(e){return this._model?(this._model.moveToMatch(e),!0):!1}replace(){return this._model?(this._model.replace(),!0):!1}replaceAll(){var e;return this._model?!((e=this._editor.getModel())===null||e===void 0)&&e.isTooLargeForHeapOperation()?(this._notificationService.warn(x("too.large.for.replaceall","The file is too large to perform a replace all operation.")),!1):(this._model.replaceAll(),!0):!1}selectAllMatches(){return this._model?(this._model.selectAllMatches(),this._editor.focus(),!0):!1}async getGlobalBufferTerm(){return this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""}setGlobalBufferTerm(e){this._editor.getOption(41).globalFindClipboard&&this._editor.hasModel()&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)}};ul.ID="editor.contrib.findController",ul=f8=PSe([Bh(1,ln),Bh(2,bm),Bh(3,qf),Bh(4,Fo)],ul);let b8=class extends ul{constructor(e,t,i,r,o,s,a,l){super(e,i,a,l,s),this._contextViewService=t,this._keybindingService=r,this._themeService=o,this._widget=null,this._findOptionsWidget=null}async _start(e,t){this._widget||this._createFindWidget();const i=this._editor.getSelection();let r=!1;switch(this._editor.getOption(41).autoFindInSelection){case"always":r=!0;break;case"never":r=!1;break;case"multiline":{r=!!i&&i.startLineNumber!==i.endLineNumber;break}}e.updateSearchScope=e.updateSearchScope||r,await super._start(e,t),this._widget&&(e.shouldFocus===2?this._widget.focusReplaceInput():e.shouldFocus===1&&this._widget.focusFindInput())}highlightFindOptions(e=!1){this._widget||this._createFindWidget(),this._state.isRevealed&&!e?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()}_createFindWidget(){this._widget=this._register(new WR(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService,this._storageService,this._notificationService)),this._findOptionsWidget=this._register(new ZR(this._editor,this._state,this._keybindingService))}};b8=PSe([Bh(1,hm),Bh(2,ln),Bh(3,Pi),Bh(4,ts),Bh(5,Fo),Bh(6,bm),Bh(7,qf)],b8),C0e(new b0e({id:sr.StartFindAction,label:x("startFindAction","Find"),alias:"Find",precondition:Be.or(ne.focus,Be.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2084,weight:100},menuOpts:{menuId:$.MenubarEditMenu,group:"3_find",title:x({key:"miFind",comment:["&& denotes a mnemonic"]},"&&Find"),order:1}})).addImplementation(0,(n,e,t)=>{const i=ul.get(e);return i?i.start({forceRevealReplace:!1,seedSearchStringFromSelection:e.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:e.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:e.getOption(41).globalFindClipboard,shouldFocus:1,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(41).loop}):!1});const LNt={description:"Open a new In-Editor Find Widget.",args:[{name:"Open a new In-Editor Find Widget args",schema:{properties:{searchString:{type:"string"},replaceString:{type:"string"},isRegex:{type:"boolean"},matchWholeWord:{type:"boolean"},isCaseSensitive:{type:"boolean"},preserveCase:{type:"boolean"},findInSelection:{type:"boolean"}}}}]};class FNt extends Nt{constructor(){super({id:sr.StartFindWithArgs,label:x("startFindWithArgsAction","Find With Arguments"),alias:"Find With Arguments",precondition:void 0,kbOpts:{kbExpr:null,primary:0,weight:100},metadata:LNt})}async run(e,t,i){const r=ul.get(t);if(r){const o=i?{searchString:i.searchString,replaceString:i.replaceString,isReplaceRevealed:i.replaceString!==void 0,isRegex:i.isRegex,wholeWord:i.matchWholeWord,matchCase:i.isCaseSensitive,preserveCase:i.preserveCase}:{};await r.start({forceRevealReplace:!1,seedSearchStringFromSelection:r.getState().searchString.length===0&&t.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:t.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:1,shouldAnimate:!0,updateSearchScope:(i==null?void 0:i.findInSelection)||!1,loop:t.getOption(41).loop},o),r.setGlobalBufferTerm(r.getState().searchString)}}}class _Nt extends Nt{constructor(){super({id:sr.StartFindWithSelection,label:x("startFindWithSelectionAction","Find With Selection"),alias:"Find With Selection",precondition:void 0,kbOpts:{kbExpr:null,primary:0,mac:{primary:2083},weight:100}})}async run(e,t){const i=ul.get(t);i&&(await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:"multiple",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),i.setGlobalBufferTerm(i.getState().searchString))}}class OSe extends Nt{async run(e,t){const i=ul.get(t);i&&!this._run(i)&&(await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:i.getState().searchString.length===0&&t.getOption(41).seedSearchStringFromSelection!=="never"?"single":"none",seedSearchStringFromNonEmptySelection:t.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),this._run(i))}}class DNt extends OSe{constructor(){super({id:sr.NextMatchFindAction,label:x("findNextMatchAction","Find Next"),alias:"Find Next",precondition:void 0,kbOpts:[{kbExpr:ne.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100},{kbExpr:Be.and(ne.focus,_R),primary:3,weight:100}]})}_run(e){return e.moveToNextMatch()?(e.editor.pushUndoStop(),!0):!1}}class ANt extends OSe{constructor(){super({id:sr.PreviousMatchFindAction,label:x("findPreviousMatchAction","Find Previous"),alias:"Find Previous",precondition:void 0,kbOpts:[{kbExpr:ne.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100},{kbExpr:Be.and(ne.focus,_R),primary:1027,weight:100}]})}_run(e){return e.moveToPrevMatch()}}class NNt extends Nt{constructor(){super({id:sr.GoToMatchFindAction,label:x("findMatchAction.goToMatch","Go to Match..."),alias:"Go to Match...",precondition:dp}),this._highlightDecorations=[]}run(e,t,i){const r=ul.get(t);if(!r)return;const o=r.getState().matchesCount;if(o<1){e.get(Fo).notify({severity:vE.Warning,message:x("findMatchAction.noResults","No matches. Try searching for something else.")});return}const a=e.get(vv).createInputBox();a.placeholder=x("findMatchAction.inputPlaceHolder","Type a number to go to a specific match (between 1 and {0})",o);const l=c=>{const d=parseInt(c);if(isNaN(d))return;const h=r.getState().matchesCount;if(d>0&&d<=h)return d-1;if(d<0&&d>=-h)return h+d},u=c=>{const d=l(c);if(typeof d=="number"){a.validationMessage=void 0,r.goToMatch(d);const h=r.getState().currentMatch;h&&this.addDecorations(t,h)}else a.validationMessage=x("findMatchAction.inputValidationMessage","Please type a number between 1 and {0}",r.getState().matchesCount),this.clearDecorations(t)};a.onDidChangeValue(c=>{u(c)}),a.onDidAccept(()=>{const c=l(a.value);typeof c=="number"?(r.goToMatch(c),a.hide()):a.validationMessage=x("findMatchAction.inputValidationMessage","Please type a number between 1 and {0}",r.getState().matchesCount)}),a.onDidHide(()=>{this.clearDecorations(t),a.dispose()}),a.show()}clearDecorations(e){e.changeDecorations(t=>{this._highlightDecorations=t.deltaDecorations(this._highlightDecorations,[])})}addDecorations(e,t){e.changeDecorations(i=>{this._highlightDecorations=i.deltaDecorations(this._highlightDecorations,[{range:t,options:{description:"find-match-quick-access-range-highlight",className:"rangeHighlight",isWholeLine:!0}},{range:t,options:{description:"find-match-quick-access-range-highlight-overview",overviewRuler:{color:Br(N1t),position:Mc.Full}}}])})}}class BSe extends Nt{async run(e,t){const i=ul.get(t);if(!i)return;const r=p8(t,"single",!1);r&&i.setSearchString(r),this._run(i)||(await i.start({forceRevealReplace:!1,seedSearchStringFromSelection:"none",seedSearchStringFromNonEmptySelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0,updateSearchScope:!1,loop:t.getOption(41).loop}),this._run(i))}}class kNt extends BSe{constructor(){super({id:sr.NextSelectionMatchFindAction,label:x("nextSelectionMatchFindAction","Find Next Selection"),alias:"Find Next Selection",precondition:void 0,kbOpts:{kbExpr:ne.focus,primary:2109,weight:100}})}_run(e){return e.moveToNextMatch()}}class MNt extends BSe{constructor(){super({id:sr.PreviousSelectionMatchFindAction,label:x("previousSelectionMatchFindAction","Find Previous Selection"),alias:"Find Previous Selection",precondition:void 0,kbOpts:{kbExpr:ne.focus,primary:3133,weight:100}})}_run(e){return e.moveToPrevMatch()}}C0e(new b0e({id:sr.StartFindReplaceAction,label:x("startReplace","Replace"),alias:"Replace",precondition:Be.or(ne.focus,Be.has("editorIsOpen")),kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menuOpts:{menuId:$.MenubarEditMenu,group:"3_find",title:x({key:"miReplace",comment:["&& denotes a mnemonic"]},"&&Replace"),order:2}})).addImplementation(0,(n,e,t)=>{if(!e.hasModel()||e.getOption(91))return!1;const i=ul.get(e);if(!i)return!1;const r=e.getSelection(),o=i.isFindInputFocused(),s=!r.isEmpty()&&r.startLineNumber===r.endLineNumber&&e.getOption(41).seedSearchStringFromSelection!=="never"&&!o,a=o||s?2:1;return i.start({forceRevealReplace:!0,seedSearchStringFromSelection:s?"single":"none",seedSearchStringFromNonEmptySelection:e.getOption(41).seedSearchStringFromSelection==="selection",seedSearchStringFromGlobalClipboard:e.getOption(41).seedSearchStringFromSelection!=="never",shouldFocus:a,shouldAnimate:!0,updateSearchScope:!1,loop:e.getOption(41).loop})}),Ii(ul.ID,b8,0),it(FNt),it(_Nt),it(DNt),it(ANt),it(NNt),it(kNt),it(MNt);const zh=cs.bindToContribution(ul.get);mt(new zh({id:sr.CloseFindWidgetCommand,precondition:dp,handler:n=>n.closeFindWidget(),kbOpts:{weight:105,kbExpr:Be.and(ne.focus,Be.not("isComposing")),primary:9,secondary:[1033]}})),mt(new zh({id:sr.ToggleCaseSensitiveCommand,precondition:void 0,handler:n=>n.toggleCaseSensitive(),kbOpts:{weight:105,kbExpr:ne.focus,primary:DR.primary,mac:DR.mac,win:DR.win,linux:DR.linux}})),mt(new zh({id:sr.ToggleWholeWordCommand,precondition:void 0,handler:n=>n.toggleWholeWords(),kbOpts:{weight:105,kbExpr:ne.focus,primary:AR.primary,mac:AR.mac,win:AR.win,linux:AR.linux}})),mt(new zh({id:sr.ToggleRegexCommand,precondition:void 0,handler:n=>n.toggleRegex(),kbOpts:{weight:105,kbExpr:ne.focus,primary:NR.primary,mac:NR.mac,win:NR.win,linux:NR.linux}})),mt(new zh({id:sr.ToggleSearchScopeCommand,precondition:void 0,handler:n=>n.toggleSearchScope(),kbOpts:{weight:105,kbExpr:ne.focus,primary:kR.primary,mac:kR.mac,win:kR.win,linux:kR.linux}})),mt(new zh({id:sr.TogglePreserveCaseCommand,precondition:void 0,handler:n=>n.togglePreserveCase(),kbOpts:{weight:105,kbExpr:ne.focus,primary:MR.primary,mac:MR.mac,win:MR.win,linux:MR.linux}})),mt(new zh({id:sr.ReplaceOneAction,precondition:dp,handler:n=>n.replace(),kbOpts:{weight:105,kbExpr:ne.focus,primary:3094}})),mt(new zh({id:sr.ReplaceOneAction,precondition:dp,handler:n=>n.replace(),kbOpts:{weight:105,kbExpr:Be.and(ne.focus,u8),primary:3}})),mt(new zh({id:sr.ReplaceAllAction,precondition:dp,handler:n=>n.replaceAll(),kbOpts:{weight:105,kbExpr:ne.focus,primary:2563}})),mt(new zh({id:sr.ReplaceAllAction,precondition:dp,handler:n=>n.replaceAll(),kbOpts:{weight:105,kbExpr:Be.and(ne.focus,u8),primary:void 0,mac:{primary:2051}}})),mt(new zh({id:sr.SelectAllMatchesAction,precondition:dp,handler:n=>n.selectAllMatches(),kbOpts:{weight:105,kbExpr:ne.focus,primary:515}}));const ZNt={0:" ",1:"u",2:"r"},zSe=65535,Yh=16777215,YSe=4278190080;class C8{constructor(e){const t=Math.ceil(e/32);this._states=new Uint32Array(t)}get(e){const t=e/32|0,i=e%32;return(this._states[t]&1<zSe)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=e,this._endIndexes=t,this._collapseStates=new C8(e.length),this._userDefinedStates=new C8(e.length),this._recoveredStates=new C8(e.length),this._types=i,this._parentsComputed=!1}ensureParentIndices(){if(!this._parentsComputed){this._parentsComputed=!0;const e=[],t=(i,r)=>{const o=e[e.length-1];return this.getStartLineNumber(o)<=i&&this.getEndLineNumber(o)>=r};for(let i=0,r=this._startIndexes.length;iYh||s>Yh)throw new Error("startLineNumber or endLineNumber must not exceed "+Yh);for(;e.length>0&&!t(o,s);)e.pop();const a=e.length>0?e[e.length-1]:-1;e.push(i),this._startIndexes[i]=o+((a&255)<<24),this._endIndexes[i]=s+((a&65280)<<16)}}}get length(){return this._startIndexes.length}getStartLineNumber(e){return this._startIndexes[e]&Yh}getEndLineNumber(e){return this._endIndexes[e]&Yh}getType(e){return this._types?this._types[e]:void 0}hasTypes(){return!!this._types}isCollapsed(e){return this._collapseStates.get(e)}setCollapsed(e,t){this._collapseStates.set(e,t)}isUserDefined(e){return this._userDefinedStates.get(e)}setUserDefined(e,t){return this._userDefinedStates.set(e,t)}isRecovered(e){return this._recoveredStates.get(e)}setRecovered(e,t){return this._recoveredStates.set(e,t)}getSource(e){return this.isUserDefined(e)?1:this.isRecovered(e)?2:0}setSource(e,t){t===1?(this.setUserDefined(e,!0),this.setRecovered(e,!1)):t===2?(this.setUserDefined(e,!1),this.setRecovered(e,!0)):(this.setUserDefined(e,!1),this.setRecovered(e,!1))}setCollapsedAllOfType(e,t){let i=!1;if(this._types)for(let r=0;r>>24)+((this._endIndexes[e]&YSe)>>>16);return t===zSe?-1:t}contains(e,t){return this.getStartLineNumber(e)<=t&&this.getEndLineNumber(e)>=t}findIndex(e){let t=0,i=this._startIndexes.length;if(i===0)return-1;for(;t=0){if(this.getEndLineNumber(t)>=e)return t;for(t=this.getParentIndex(t);t!==-1;){if(this.contains(t,e))return t;t=this.getParentIndex(t)}}return-1}toString(){const e=[];for(let t=0;tArray.isArray(f)?C=>CC=c.startLineNumber))u&&u.startLineNumber===c.startLineNumber?(c.source===1?f=c:(f=u,f.isCollapsed=c.isCollapsed&&u.endLineNumber===c.endLineNumber,f.source=0),u=o(++a)):(f=c,c.isCollapsed&&c.source===0&&(f.source=2)),c=s(++l);else{let b=l,C=c;for(;;){if(!C||C.startLineNumber>u.endLineNumber){f=u;break}if(C.source===1&&C.endLineNumber>u.endLineNumber)break;C=s(++b)}u=o(++a)}if(f){for(;h&&h.endLineNumberf.startLineNumber&&f.startLineNumber>g&&f.endLineNumber<=i&&(!h||h.endLineNumber>=f.endLineNumber)&&(m.push(f),g=f.startLineNumber,h&&d.push(h),h=f)}}return m}}class TNt{constructor(e,t){this.ranges=e,this.index=t}get startLineNumber(){return this.ranges.getStartLineNumber(this.index)}get endLineNumber(){return this.ranges.getEndLineNumber(this.index)}get regionIndex(){return this.index}get parentIndex(){return this.ranges.getParentIndex(this.index)}get isCollapsed(){return this.ranges.isCollapsed(this.index)}containedBy(e){return e.startLineNumber<=this.startLineNumber&&e.endLineNumber>=this.endLineNumber}containsLine(e){return this.startLineNumber<=e&&e<=this.endLineNumber}}class ENt{get regions(){return this._regions}get textModel(){return this._textModel}constructor(e,t){this._updateEventEmitter=new be,this.onDidChange=this._updateEventEmitter.event,this._textModel=e,this._decorationProvider=t,this._regions=new Ju(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[]}toggleCollapseState(e){if(!e.length)return;e=e.sort((i,r)=>i.regionIndex-r.regionIndex);const t={};this._decorationProvider.changeDecorations(i=>{let r=0,o=-1,s=-1;const a=l=>{for(;rs&&(s=u),r++}};for(const l of e){const u=l.regionIndex,c=this._editorDecorationIds[u];if(c&&!t[c]){t[c]=!0,a(u);const d=!this._regions.isCollapsed(u);this._regions.setCollapsed(u,d),o=Math.max(o,this._regions.getEndLineNumber(u))}}a(this._regions.length)}),this._updateEventEmitter.fire({model:this,collapseStateChanged:e})}removeManualRanges(e){const t=new Array,i=r=>{for(const o of e)if(!(o.startLineNumber>r.endLineNumber||r.startLineNumber>o.endLineNumber))return!0;return!1};for(let r=0;ri&&(i=a)}this._decorationProvider.changeDecorations(r=>this._editorDecorationIds=r.deltaDecorations(this._editorDecorationIds,t)),this._regions=e,this._updateEventEmitter.fire({model:this})}_currentFoldedOrManualRanges(e=[]){const t=(r,o)=>{for(const s of e)if(r=s.endLineNumber||s.startLineNumber<1||s.endLineNumber>i)continue;const a=this._getLinesChecksum(s.startLineNumber+1,s.endLineNumber);t.push({startLineNumber:s.startLineNumber,endLineNumber:s.endLineNumber,isCollapsed:s.isCollapsed,source:s.source,checksum:a})}return t.length>0?t:void 0}applyMemento(e){var t,i;if(!Array.isArray(e))return;const r=[],o=this._textModel.getLineCount();for(const a of e){if(a.startLineNumber>=a.endLineNumber||a.startLineNumber<1||a.endLineNumber>o)continue;const l=this._getLinesChecksum(a.startLineNumber+1,a.endLineNumber);(!a.checksum||l===a.checksum)&&r.push({startLineNumber:a.startLineNumber,endLineNumber:a.endLineNumber,type:void 0,isCollapsed:(t=a.isCollapsed)!==null&&t!==void 0?t:!0,source:(i=a.source)!==null&&i!==void 0?i:0})}const s=Ju.sanitizeAndMerge(this._regions,r,o);this.updatePost(Ju.fromFoldRanges(s))}_getLinesChecksum(e,t){return y5(this._textModel.getLineContent(e)+this._textModel.getLineContent(t))%1e6}dispose(){this._decorationProvider.removeDecorations(this._editorDecorationIds)}getAllRegionsAtLine(e,t){const i=[];if(this._regions){let r=this._regions.findRange(e),o=1;for(;r>=0;){const s=this._regions.toRegion(r);(!t||t(s,o))&&i.push(s),o++,r=s.parentIndex}}return i}getRegionAtLine(e){if(this._regions){const t=this._regions.findRange(e);if(t>=0)return this._regions.toRegion(t)}return null}getRegionsInside(e,t){const i=[],r=e?e.regionIndex+1:0,o=e?e.endLineNumber:Number.MAX_VALUE;if(t&&t.length===2){const s=[];for(let a=r,l=this._regions.length;a0&&!u.containedBy(s[s.length-1]);)s.pop();s.push(u),t(u,s.length)&&i.push(u)}else break}}else for(let s=r,a=this._regions.length;s1){const a=n.getRegionsInside(o,(l,u)=>l.isCollapsed!==s&&u0)for(const o of i){const s=n.getRegionAtLine(o);if(s&&(s.isCollapsed!==e&&r.push(s),t>1)){const a=n.getRegionsInside(s,(l,u)=>l.isCollapsed!==e&&us.isCollapsed!==e&&aa.isCollapsed!==e&&l<=t);r.push(...s)}n.toggleCollapseState(r)}function WNt(n,e,t){const i=[];for(const r of t){const o=n.getAllRegionsAtLine(r,s=>s.isCollapsed!==e);o.length>0&&i.push(o[0])}n.toggleCollapseState(i)}function RNt(n,e,t,i){const r=(s,a)=>a===e&&s.isCollapsed!==t&&!i.some(l=>s.containsLine(l)),o=n.getRegionsInside(null,r);n.toggleCollapseState(o)}function JSe(n,e,t){const i=[];for(const s of t){const a=n.getAllRegionsAtLine(s,void 0);a.length>0&&i.push(a[0])}const r=s=>i.every(a=>!a.containedBy(s)&&!s.containedBy(a))&&s.isCollapsed!==e,o=n.getRegionsInside(null,r);n.toggleCollapseState(o)}function v8(n,e,t){const i=n.textModel,r=n.regions,o=[];for(let s=r.length-1;s>=0;s--)if(t!==r.isCollapsed(s)){const a=r.getStartLineNumber(s);e.test(i.getLineContent(a))&&o.push(r.toRegion(s))}n.toggleCollapseState(o)}function y8(n,e,t){const i=n.regions,r=[];for(let o=i.length-1;o>=0;o--)t!==i.isCollapsed(o)&&e===i.getType(o)&&r.push(i.toRegion(o));n.toggleCollapseState(r)}function GNt(n,e){let t=null;const i=e.getRegionAtLine(n);if(i!==null&&(t=i.startLineNumber,n===t)){const r=i.parentIndex;r!==-1?t=e.regions.getStartLineNumber(r):t=null}return t}function VNt(n,e){let t=e.getRegionAtLine(n);if(t!==null&&t.startLineNumber===n){if(n!==t.startLineNumber)return t.startLineNumber;{const i=t.parentIndex;let r=0;for(i!==-1&&(r=e.regions.getStartLineNumber(t.parentIndex));t!==null;)if(t.regionIndex>0){if(t=e.regions.toRegion(t.regionIndex-1),t.startLineNumber<=r)return null;if(t.parentIndex===i)return t.startLineNumber}else return null}}else if(e.regions.length>0)for(t=e.regions.toRegion(e.regions.length-1);t!==null;){if(t.startLineNumber0?t=e.regions.toRegion(t.regionIndex-1):t=null}return null}function XNt(n,e){let t=e.getRegionAtLine(n);if(t!==null&&t.startLineNumber===n){const i=t.parentIndex;let r=0;if(i!==-1)r=e.regions.getEndLineNumber(t.parentIndex);else{if(e.regions.length===0)return null;r=e.regions.getEndLineNumber(e.regions.length-1)}for(;t!==null;)if(t.regionIndex=r)return null;if(t.parentIndex===i)return t.startLineNumber}else return null}else if(e.regions.length>0)for(t=e.regions.toRegion(0);t!==null;){if(t.startLineNumber>n)return t.startLineNumber;t.regionIndexthis.updateHiddenRanges()),this._hiddenRanges=[],e.regions.length&&this.updateHiddenRanges()}notifyChangeModelContent(e){this._hiddenRanges.length&&!this._hasLineChanges&&(this._hasLineChanges=e.changes.some(t=>t.range.endLineNumber!==t.range.startLineNumber||Bb(t.text)[0]!==0))}updateHiddenRanges(){let e=!1;const t=[];let i=0,r=0,o=Number.MAX_VALUE,s=-1;const a=this._foldingModel.regions;for(;i0}isHidden(e){return KSe(this._hiddenRanges,e)!==null}adjustSelections(e){let t=!1;const i=this._foldingModel.textModel;let r=null;const o=s=>((!r||!ONt(s,r))&&(r=KSe(this._hiddenRanges,s)),r?r.startLineNumber-1:null);for(let s=0,a=e.length;s0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)}}function ONt(n,e){return n>=e.startLineNumber&&n<=e.endLineNumber}function KSe(n,e){const t=D_(n,i=>e=0&&n[t].endLineNumber>=e?n[t]:null}const BNt=5e3,zNt="indent";class I8{constructor(e,t,i){this.editorModel=e,this.languageConfigurationService=t,this.foldingRangesLimit=i,this.id=zNt}dispose(){}compute(e){const t=this.languageConfigurationService.getLanguageConfiguration(this.editorModel.getLanguageId()).foldingRules,i=t&&!!t.offSide,r=t&&t.markers;return Promise.resolve(UNt(this.editorModel,i,r,this.foldingRangesLimit))}}let YNt=class{constructor(e){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=e}insertFirst(e,t,i){if(e>Yh||t>Yh)return;const r=this._length;this._startIndexes[r]=e,this._endIndexes[r]=t,this._length++,i<1e3&&(this._indentOccurrences[i]=(this._indentOccurrences[i]||0)+1)}toIndentRanges(e){const t=this._foldingRangesLimit.limit;if(this._length<=t){this._foldingRangesLimit.update(this._length,!1);const i=new Uint32Array(this._length),r=new Uint32Array(this._length);for(let o=this._length-1,s=0;o>=0;o--,s++)i[s]=this._startIndexes[o],r[s]=this._endIndexes[o];return new Ju(i,r)}else{this._foldingRangesLimit.update(this._length,t);let i=0,r=this._indentOccurrences.length;for(let l=0;lt){r=l;break}i+=u}}const o=e.getOptions().tabSize,s=new Uint32Array(t),a=new Uint32Array(t);for(let l=this._length-1,u=0;l>=0;l--){const c=this._startIndexes[l],d=e.getLineContent(c),h=HT(d,o);(h{}};function UNt(n,e,t,i=HNt){const r=n.getOptions().tabSize,o=new YNt(i);let s;t&&(s=new RegExp(`(${t.start.source})|(?:${t.end.source})`));const a=[],l=n.getLineCount()+1;a.push({indent:-1,endAbove:l,line:l});for(let u=n.getLineCount();u>0;u--){const c=n.getLineContent(u),d=HT(c,r);let h=a[a.length-1];if(d===-1){e&&(h.endAbove=u);continue}let g;if(s&&(g=c.match(s)))if(g[1]){let m=a.length-1;for(;m>0&&a[m].indent!==-2;)m--;if(m>0){a.length=m+1,h=a[m],o.insertFirst(u,h.line,d),h.line=u,h.indent=d,h.endAbove=u;continue}}else{a.push({indent:-2,endAbove:u,line:u});continue}if(h.indent>d){do a.pop(),h=a[a.length-1];while(h.indent>d);const m=h.endAbove-1;m-u>=1&&o.insertFirst(u,m,d)}h.indent===d?h.endAbove=u:a.push({indent:d,endAbove:u,line:u})}return o.toIndentRanges(n)}const JNt=re("editor.foldBackground",{light:Bt(Rb,.3),dark:Bt(Rb,.3),hcDark:null,hcLight:null},x("foldBackgroundBackground","Background color behind folded ranges. The color must not be opaque so as not to hide underlying decorations."),!0);re("editorGutter.foldingControlForeground",{dark:Bg,light:Bg,hcDark:Bg,hcLight:Bg},x("editorGutter.foldingControlForeground","Color of the folding control in the editor gutter."));const RR=io("folding-expanded",ct.chevronDown,x("foldingExpandedIcon","Icon for expanded ranges in the editor glyph margin.")),GR=io("folding-collapsed",ct.chevronRight,x("foldingCollapsedIcon","Icon for collapsed ranges in the editor glyph margin.")),jSe=io("folding-manual-collapsed",GR,x("foldingManualCollapedIcon","Icon for manually collapsed ranges in the editor glyph margin.")),QSe=io("folding-manual-expanded",RR,x("foldingManualExpandedIcon","Icon for manually expanded ranges in the editor glyph margin.")),w8={color:Br(JNt),position:uu.Inline},Pw=x("linesCollapsed","Click to expand the range."),VR=x("linesExpanded","Click to collapse the range.");class _o{constructor(e){this.editor=e,this.showFoldingControls="mouseover",this.showFoldingHighlights=!0}getDecorationOption(e,t,i){return t?_o.HIDDEN_RANGE_DECORATION:this.showFoldingControls==="never"?e?this.showFoldingHighlights?_o.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION:_o.NO_CONTROLS_COLLAPSED_RANGE_DECORATION:_o.NO_CONTROLS_EXPANDED_RANGE_DECORATION:e?i?this.showFoldingHighlights?_o.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:_o.MANUALLY_COLLAPSED_VISUAL_DECORATION:this.showFoldingHighlights?_o.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION:_o.COLLAPSED_VISUAL_DECORATION:this.showFoldingControls==="mouseover"?i?_o.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION:_o.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:i?_o.MANUALLY_EXPANDED_VISUAL_DECORATION:_o.EXPANDED_VISUAL_DECORATION}changeDecorations(e){return this.editor.changeDecorations(e)}removeDecorations(e){this.editor.removeDecorations(e)}}_o.COLLAPSED_VISUAL_DECORATION=In.register({description:"folding-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Pw,firstLineDecorationClassName:on.asClassName(GR)}),_o.COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=In.register({description:"folding-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:w8,isWholeLine:!0,linesDecorationsTooltip:Pw,firstLineDecorationClassName:on.asClassName(GR)}),_o.MANUALLY_COLLAPSED_VISUAL_DECORATION=In.register({description:"folding-manually-collapsed-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Pw,firstLineDecorationClassName:on.asClassName(jSe)}),_o.MANUALLY_COLLAPSED_HIGHLIGHTED_VISUAL_DECORATION=In.register({description:"folding-manually-collapsed-highlighted-visual-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:w8,isWholeLine:!0,linesDecorationsTooltip:Pw,firstLineDecorationClassName:on.asClassName(jSe)}),_o.NO_CONTROLS_COLLAPSED_RANGE_DECORATION=In.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",isWholeLine:!0,linesDecorationsTooltip:Pw}),_o.NO_CONTROLS_COLLAPSED_HIGHLIGHTED_RANGE_DECORATION=In.register({description:"folding-no-controls-range-decoration",stickiness:0,afterContentClassName:"inline-folded",className:"folded-background",minimap:w8,isWholeLine:!0,linesDecorationsTooltip:Pw}),_o.EXPANDED_VISUAL_DECORATION=In.register({description:"folding-expanded-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+on.asClassName(RR),linesDecorationsTooltip:VR}),_o.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=In.register({description:"folding-expanded-auto-hide-visual-decoration",stickiness:1,isWholeLine:!0,firstLineDecorationClassName:on.asClassName(RR),linesDecorationsTooltip:VR}),_o.MANUALLY_EXPANDED_VISUAL_DECORATION=In.register({description:"folding-manually-expanded-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:"alwaysShowFoldIcons "+on.asClassName(QSe),linesDecorationsTooltip:VR}),_o.MANUALLY_EXPANDED_AUTO_HIDE_VISUAL_DECORATION=In.register({description:"folding-manually-expanded-auto-hide-visual-decoration",stickiness:0,isWholeLine:!0,firstLineDecorationClassName:on.asClassName(QSe),linesDecorationsTooltip:VR}),_o.NO_CONTROLS_EXPANDED_RANGE_DECORATION=In.register({description:"folding-no-controls-range-decoration",stickiness:0,isWholeLine:!0}),_o.HIDDEN_RANGE_DECORATION=In.register({description:"folding-hidden-range-decoration",stickiness:1});const KNt={},jNt="syntax";class S8{constructor(e,t,i,r,o){this.editorModel=e,this.providers=t,this.handleFoldingRangesChange=i,this.foldingRangesLimit=r,this.fallbackRangeProvider=o,this.id=jNt,this.disposables=new je,o&&this.disposables.add(o);for(const s of t)typeof s.onDidChange=="function"&&this.disposables.add(s.onDidChange(i))}compute(e){return QNt(this.providers,this.editorModel,e).then(t=>{var i,r;return t?qNt(t,this.foldingRangesLimit):(r=(i=this.fallbackRangeProvider)===null||i===void 0?void 0:i.compute(e))!==null&&r!==void 0?r:null})}dispose(){this.disposables.dispose()}}function QNt(n,e,t){let i=null;const r=n.map((o,s)=>Promise.resolve(o.provideFoldingRanges(e,KNt,t)).then(a=>{if(!t.isCancellationRequested&&Array.isArray(a)){Array.isArray(i)||(i=[]);const l=e.getLineCount();for(const u of a)u.start>0&&u.end>u.start&&u.end<=l&&i.push({start:u.start,end:u.end,rank:s,kind:u.kind})}},wo));return Promise.all(r).then(o=>i)}class $Nt{constructor(e){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=e}add(e,t,i,r){if(e>Yh||t>Yh)return;const o=this._length;this._startIndexes[o]=e,this._endIndexes[o]=t,this._nestingLevels[o]=r,this._types[o]=i,this._length++,r<30&&(this._nestingLevelCounts[r]=(this._nestingLevelCounts[r]||0)+1)}toIndentRanges(){const e=this._foldingRangesLimit.limit;if(this._length<=e){this._foldingRangesLimit.update(this._length,!1);const t=new Uint32Array(this._length),i=new Uint32Array(this._length);for(let r=0;re){i=a;break}t+=l}}const r=new Uint32Array(e),o=new Uint32Array(e),s=[];for(let a=0,l=0;a{let l=s.start-a.start;return l===0&&(l=s.rank-a.rank),l}),i=new $Nt(e);let r;const o=[];for(const s of t)if(!r)r=s,i.add(s.start,s.end,s.kind&&s.kind.value,o.length);else if(s.start>r.start)if(s.end<=r.end)o.push(r),r=s,i.add(s.start,s.end,s.kind&&s.kind.value,o.length);else{if(s.start>r.end){do r=o.pop();while(r&&s.start>r.end);r&&o.push(r),r=s}i.add(s.start,s.end,s.kind&&s.kind.value,o.length)}return i.toIndentRanges()}var ekt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},yA=function(n,e){return function(t,i){e(t,i,n)}},Ow;const pa=new It("foldingEnabled",!1);let Lm=Ow=class extends De{static get(e){return e.getContribution(Ow.ID)}static getFoldingRangeProviders(e,t){var i,r;const o=e.foldingRangeProvider.ordered(t);return(r=(i=Ow._foldingRangeSelector)===null||i===void 0?void 0:i.call(Ow,o,t))!==null&&r!==void 0?r:o}constructor(e,t,i,r,o,s){super(),this.contextKeyService=t,this.languageConfigurationService=i,this.languageFeaturesService=s,this.localToDispose=this._register(new je),this.editor=e,this._foldingLimitReporter=new $Se(e);const a=this.editor.getOptions();this._isEnabled=a.get(43),this._useFoldingProviders=a.get(44)!=="indentation",this._unfoldOnClickAfterEndOfLine=a.get(48),this._restoringViewState=!1,this._currentModelHasFoldedImports=!1,this._foldingImportsByDefault=a.get(46),this.updateDebounceInfo=o.for(s.foldingRangeProvider,"Folding",{min:200}),this.foldingModel=null,this.hiddenRangeModel=null,this.rangeProvider=null,this.foldingRegionPromise=null,this.foldingModelPromise=null,this.updateScheduler=null,this.cursorChangedScheduler=null,this.mouseDownInfo=null,this.foldingDecorationProvider=new _o(e),this.foldingDecorationProvider.showFoldingControls=a.get(110),this.foldingDecorationProvider.showFoldingHighlights=a.get(45),this.foldingEnabled=pa.bindTo(this.contextKeyService),this.foldingEnabled.set(this._isEnabled),this._register(this.editor.onDidChangeModel(()=>this.onModelChanged())),this._register(this.editor.onDidChangeConfiguration(l=>{if(l.hasChanged(43)&&(this._isEnabled=this.editor.getOptions().get(43),this.foldingEnabled.set(this._isEnabled),this.onModelChanged()),l.hasChanged(47)&&this.onModelChanged(),l.hasChanged(110)||l.hasChanged(45)){const u=this.editor.getOptions();this.foldingDecorationProvider.showFoldingControls=u.get(110),this.foldingDecorationProvider.showFoldingHighlights=u.get(45),this.triggerFoldingModelChanged()}l.hasChanged(44)&&(this._useFoldingProviders=this.editor.getOptions().get(44)!=="indentation",this.onFoldingStrategyChanged()),l.hasChanged(48)&&(this._unfoldOnClickAfterEndOfLine=this.editor.getOptions().get(48)),l.hasChanged(46)&&(this._foldingImportsByDefault=this.editor.getOptions().get(46))})),this.onModelChanged()}saveViewState(){const e=this.editor.getModel();if(!e||!this._isEnabled||e.isTooLargeForTokenization())return{};if(this.foldingModel){const t=this.foldingModel.getMemento(),i=this.rangeProvider?this.rangeProvider.id:void 0;return{collapsedRegions:t,lineCount:e.getLineCount(),provider:i,foldedImports:this._currentModelHasFoldedImports}}}restoreViewState(e){const t=this.editor.getModel();if(!(!t||!this._isEnabled||t.isTooLargeForTokenization()||!this.hiddenRangeModel)&&e&&(this._currentModelHasFoldedImports=!!e.foldedImports,e.collapsedRegions&&e.collapsedRegions.length>0&&this.foldingModel)){this._restoringViewState=!0;try{this.foldingModel.applyMemento(e.collapsedRegions)}finally{this._restoringViewState=!1}}}onModelChanged(){this.localToDispose.clear();const e=this.editor.getModel();!this._isEnabled||!e||e.isTooLargeForTokenization()||(this._currentModelHasFoldedImports=!1,this.foldingModel=new ENt(e,this.foldingDecorationProvider),this.localToDispose.add(this.foldingModel),this.hiddenRangeModel=new PNt(this.foldingModel),this.localToDispose.add(this.hiddenRangeModel),this.localToDispose.add(this.hiddenRangeModel.onDidChange(t=>this.onHiddenRangesChanges(t))),this.updateScheduler=new gd(this.updateDebounceInfo.get(e)),this.cursorChangedScheduler=new Vi(()=>this.revealCursor(),200),this.localToDispose.add(this.cursorChangedScheduler),this.localToDispose.add(this.languageFeaturesService.foldingRangeProvider.onDidChange(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(()=>this.onFoldingStrategyChanged())),this.localToDispose.add(this.editor.onDidChangeModelContent(t=>this.onDidChangeModelContent(t))),this.localToDispose.add(this.editor.onDidChangeCursorPosition(()=>this.onCursorPositionChanged())),this.localToDispose.add(this.editor.onMouseDown(t=>this.onEditorMouseDown(t))),this.localToDispose.add(this.editor.onMouseUp(t=>this.onEditorMouseUp(t))),this.localToDispose.add({dispose:()=>{var t,i;this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),(t=this.updateScheduler)===null||t===void 0||t.cancel(),this.updateScheduler=null,this.foldingModel=null,this.foldingModelPromise=null,this.hiddenRangeModel=null,this.cursorChangedScheduler=null,(i=this.rangeProvider)===null||i===void 0||i.dispose(),this.rangeProvider=null}}),this.triggerFoldingModelChanged())}onFoldingStrategyChanged(){var e;(e=this.rangeProvider)===null||e===void 0||e.dispose(),this.rangeProvider=null,this.triggerFoldingModelChanged()}getRangeProvider(e){if(this.rangeProvider)return this.rangeProvider;const t=new I8(e,this.languageConfigurationService,this._foldingLimitReporter);if(this.rangeProvider=t,this._useFoldingProviders&&this.foldingModel){const i=Ow.getFoldingRangeProviders(this.languageFeaturesService,e);i.length>0&&(this.rangeProvider=new S8(e,i,()=>this.triggerFoldingModelChanged(),this._foldingLimitReporter,t))}return this.rangeProvider}getFoldingModel(){return this.foldingModelPromise}onDidChangeModelContent(e){var t;(t=this.hiddenRangeModel)===null||t===void 0||t.notifyChangeModelContent(e),this.triggerFoldingModelChanged()}triggerFoldingModelChanged(){this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger(()=>{const e=this.foldingModel;if(!e)return null;const t=new aa,i=this.getRangeProvider(e.textModel),r=this.foldingRegionPromise=$o(o=>i.compute(o));return r.then(o=>{if(o&&r===this.foldingRegionPromise){let s;if(this._foldingImportsByDefault&&!this._currentModelHasFoldedImports){const c=o.setCollapsedAllOfType(xd.Imports.value,!0);c&&(s=Mh.capture(this.editor),this._currentModelHasFoldedImports=c)}const a=this.editor.getSelections(),l=a?a.map(c=>c.startLineNumber):[];e.update(o,l),s==null||s.restore(this.editor);const u=this.updateDebounceInfo.update(e.textModel,t.elapsed());this.updateScheduler&&(this.updateScheduler.defaultDelay=u)}return e})}).then(void 0,e=>(fn(e),null)))}onHiddenRangesChanges(e){if(this.hiddenRangeModel&&e.length&&!this._restoringViewState){const t=this.editor.getSelections();t&&this.hiddenRangeModel.adjustSelections(t)&&this.editor.setSelections(t)}this.editor.setHiddenAreas(e,this)}onCursorPositionChanged(){this.hiddenRangeModel&&this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()}revealCursor(){const e=this.getFoldingModel();e&&e.then(t=>{if(t){const i=this.editor.getSelections();if(i&&i.length>0){const r=[];for(const o of i){const s=o.selectionStartLineNumber;this.hiddenRangeModel&&this.hiddenRangeModel.isHidden(s)&&r.push(...t.getAllRegionsAtLine(s,a=>a.isCollapsed&&s>a.startLineNumber))}r.length&&(t.toggleCollapseState(r),this.reveal(i[0].getPosition()))}}}).then(void 0,fn)}onEditorMouseDown(e){if(this.mouseDownInfo=null,!this.hiddenRangeModel||!e.target||!e.target.range||!e.event.leftButton&&!e.event.middleButton)return;const t=e.target.range;let i=!1;switch(e.target.type){case 4:{const r=e.target.detail,o=e.target.element.offsetLeft;if(r.offsetX-o<4)return;i=!0;break}case 7:{if(this._unfoldOnClickAfterEndOfLine&&this.hiddenRangeModel.hasRanges()&&!e.target.detail.isAfterLines)break;return}case 6:{if(this.hiddenRangeModel.hasRanges()){const r=this.editor.getModel();if(r&&t.startColumn===r.getLineMaxColumn(t.startLineNumber))break}return}default:return}this.mouseDownInfo={lineNumber:t.startLineNumber,iconClicked:i}}onEditorMouseUp(e){const t=this.foldingModel;if(!t||!this.mouseDownInfo||!e.target)return;const i=this.mouseDownInfo.lineNumber,r=this.mouseDownInfo.iconClicked,o=e.target.range;if(!o||o.startLineNumber!==i)return;if(r){if(e.target.type!==4)return}else{const a=this.editor.getModel();if(!a||o.startColumn!==a.getLineMaxColumn(i))return}const s=t.getRegionAtLine(i);if(s&&s.startLineNumber===i){const a=s.isCollapsed;if(r||a){const l=e.event.altKey;let u=[];if(l){const c=h=>!h.containedBy(s)&&!s.containedBy(h),d=t.getRegionsInside(null,c);for(const h of d)h.isCollapsed&&u.push(h);u.length===0&&(u=d)}else{const c=e.event.middleButton||e.event.shiftKey;if(c)for(const d of t.getRegionsInside(s))d.isCollapsed===a&&u.push(d);(a||!c||u.length===0)&&u.push(s)}t.toggleCollapseState(u),this.reveal({lineNumber:i,column:1})}}}reveal(e){this.editor.revealPositionInCenterIfOutsideViewport(e,0)}};Lm.ID="editor.contrib.folding",Lm=Ow=ekt([yA(1,ln),yA(2,$i),yA(3,Fo),yA(4,Xc),yA(5,Tt)],Lm);class $Se{constructor(e){this.editor=e,this._onDidChange=new be,this._computed=0,this._limited=!1}get limit(){return this.editor.getOptions().get(47)}update(e,t){(e!==this._computed||t!==this._limited)&&(this._computed=e,this._limited=t,this._onDidChange.fire())}}class Aa extends Nt{runEditorCommand(e,t,i){const r=e.get($i),o=Lm.get(t);if(!o)return;const s=o.getFoldingModel();if(s)return this.reportTelemetry(e,t),s.then(a=>{if(a){this.invoke(o,a,t,i,r);const l=t.getSelection();l&&o.reveal(l.getStartPosition())}})}getSelectedLines(e){const t=e.getSelections();return t?t.map(i=>i.startLineNumber):[]}getLineNumbers(e,t){return e&&e.selectionLines?e.selectionLines.map(i=>i+1):this.getSelectedLines(t)}run(e,t){}}function qSe(n){if(!ql(n)){if(!za(n))return!1;const e=n;if(!ql(e.levels)&&!mb(e.levels)||!ql(e.direction)&&!Ll(e.direction)||!ql(e.selectionLines)&&(!Array.isArray(e.selectionLines)||!e.selectionLines.every(mb)))return!1}return!0}class tkt extends Aa{constructor(){super({id:"editor.unfold",label:x("unfoldAction.label","Unfold"),alias:"Unfold",precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,primary:3166,mac:{primary:2654},weight:100},metadata:{description:"Unfold the content in the editor",args:[{name:"Unfold editor argument",description:`Property-value pairs that can be passed through this argument: + * 'levels': Number of levels to unfold. If not set, defaults to 1. + * 'direction': If 'up', unfold given number of levels up otherwise unfolds down. + * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the unfold action to. If not set, the active selection(s) will be used. + `,constraint:qSe,schema:{type:"object",properties:{levels:{type:"number",default:1},direction:{type:"string",enum:["up","down"],default:"down"},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,i,r){const o=r&&r.levels||1,s=this.getLineNumbers(r,i);r&&r.direction==="up"?USe(t,!1,o,s):Xw(t,!1,o,s)}}class nkt extends Aa{constructor(){super({id:"editor.unfoldRecursively",label:x("unFoldRecursivelyAction.label","Unfold Recursively"),alias:"Unfold Recursively",precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,primary:ko(2089,2142),weight:100}})}invoke(e,t,i,r){Xw(t,!1,Number.MAX_VALUE,this.getSelectedLines(i))}}class ikt extends Aa{constructor(){super({id:"editor.fold",label:x("foldAction.label","Fold"),alias:"Fold",precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,primary:3164,mac:{primary:2652},weight:100},metadata:{description:"Fold the content in the editor",args:[{name:"Fold editor argument",description:`Property-value pairs that can be passed through this argument: + * 'levels': Number of levels to fold. + * 'direction': If 'up', folds given number of levels up otherwise folds down. + * 'selectionLines': Array of the start lines (0-based) of the editor selections to apply the fold action to. If not set, the active selection(s) will be used. + If no levels or direction is set, folds the region at the locations or if already collapsed, the first uncollapsed parent instead. + `,constraint:qSe,schema:{type:"object",properties:{levels:{type:"number"},direction:{type:"string",enum:["up","down"]},selectionLines:{type:"array",items:{type:"number"}}}}}]}})}invoke(e,t,i,r){const o=this.getLineNumbers(r,i),s=r&&r.levels,a=r&&r.direction;typeof s!="number"&&typeof a!="string"?WNt(t,!0,o):a==="up"?USe(t,!0,s||1,o):Xw(t,!0,s||1,o)}}class rkt extends Aa{constructor(){super({id:"editor.toggleFold",label:x("toggleFoldAction.label","Toggle Fold"),alias:"Toggle Fold",precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,primary:ko(2089,2090),weight:100}})}invoke(e,t,i){const r=this.getSelectedLines(i);HSe(t,1,r)}}class okt extends Aa{constructor(){super({id:"editor.foldRecursively",label:x("foldRecursivelyAction.label","Fold Recursively"),alias:"Fold Recursively",precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,primary:ko(2089,2140),weight:100}})}invoke(e,t,i){const r=this.getSelectedLines(i);Xw(t,!0,Number.MAX_VALUE,r)}}class skt extends Aa{constructor(){super({id:"editor.foldAllBlockComments",label:x("foldAllBlockComments.label","Fold All Block Comments"),alias:"Fold All Block Comments",precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,primary:ko(2089,2138),weight:100}})}invoke(e,t,i,r,o){if(t.regions.hasTypes())y8(t,xd.Comment.value,!0);else{const s=i.getModel();if(!s)return;const a=o.getLanguageConfiguration(s.getLanguageId()).comments;if(a&&a.blockCommentStartToken){const l=new RegExp("^\\s*"+Zu(a.blockCommentStartToken));v8(t,l,!0)}}}}class akt extends Aa{constructor(){super({id:"editor.foldAllMarkerRegions",label:x("foldAllMarkerRegions.label","Fold All Regions"),alias:"Fold All Regions",precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,primary:ko(2089,2077),weight:100}})}invoke(e,t,i,r,o){if(t.regions.hasTypes())y8(t,xd.Region.value,!0);else{const s=i.getModel();if(!s)return;const a=o.getLanguageConfiguration(s.getLanguageId()).foldingRules;if(a&&a.markers&&a.markers.start){const l=new RegExp(a.markers.start);v8(t,l,!0)}}}}class lkt extends Aa{constructor(){super({id:"editor.unfoldAllMarkerRegions",label:x("unfoldAllMarkerRegions.label","Unfold All Regions"),alias:"Unfold All Regions",precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,primary:ko(2089,2078),weight:100}})}invoke(e,t,i,r,o){if(t.regions.hasTypes())y8(t,xd.Region.value,!1);else{const s=i.getModel();if(!s)return;const a=o.getLanguageConfiguration(s.getLanguageId()).foldingRules;if(a&&a.markers&&a.markers.start){const l=new RegExp(a.markers.start);v8(t,l,!1)}}}}class ukt extends Aa{constructor(){super({id:"editor.foldAllExcept",label:x("foldAllExcept.label","Fold All Except Selected"),alias:"Fold All Except Selected",precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,primary:ko(2089,2136),weight:100}})}invoke(e,t,i){const r=this.getSelectedLines(i);JSe(t,!0,r)}}class ckt extends Aa{constructor(){super({id:"editor.unfoldAllExcept",label:x("unfoldAllExcept.label","Unfold All Except Selected"),alias:"Unfold All Except Selected",precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,primary:ko(2089,2134),weight:100}})}invoke(e,t,i){const r=this.getSelectedLines(i);JSe(t,!1,r)}}class dkt extends Aa{constructor(){super({id:"editor.foldAll",label:x("foldAllAction.label","Fold All"),alias:"Fold All",precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,primary:ko(2089,2069),weight:100}})}invoke(e,t,i){Xw(t,!0)}}class hkt extends Aa{constructor(){super({id:"editor.unfoldAll",label:x("unfoldAllAction.label","Unfold All"),alias:"Unfold All",precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,primary:ko(2089,2088),weight:100}})}invoke(e,t,i){Xw(t,!1)}}class Ov extends Aa{getFoldingLevel(){return parseInt(this.id.substr(Ov.ID_PREFIX.length))}invoke(e,t,i){RNt(t,this.getFoldingLevel(),!0,this.getSelectedLines(i))}}Ov.ID_PREFIX="editor.foldLevel",Ov.ID=n=>Ov.ID_PREFIX+n;class gkt extends Aa{constructor(){super({id:"editor.gotoParentFold",label:x("gotoParentFold.label","Go to Parent Fold"),alias:"Go to Parent Fold",precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,weight:100}})}invoke(e,t,i){const r=this.getSelectedLines(i);if(r.length>0){const o=GNt(r[0],t);o!==null&&i.setSelection({startLineNumber:o,startColumn:1,endLineNumber:o,endColumn:1})}}}class mkt extends Aa{constructor(){super({id:"editor.gotoPreviousFold",label:x("gotoPreviousFold.label","Go to Previous Folding Range"),alias:"Go to Previous Folding Range",precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,weight:100}})}invoke(e,t,i){const r=this.getSelectedLines(i);if(r.length>0){const o=VNt(r[0],t);o!==null&&i.setSelection({startLineNumber:o,startColumn:1,endLineNumber:o,endColumn:1})}}}class fkt extends Aa{constructor(){super({id:"editor.gotoNextFold",label:x("gotoNextFold.label","Go to Next Folding Range"),alias:"Go to Next Folding Range",precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,weight:100}})}invoke(e,t,i){const r=this.getSelectedLines(i);if(r.length>0){const o=XNt(r[0],t);o!==null&&i.setSelection({startLineNumber:o,startColumn:1,endLineNumber:o,endColumn:1})}}}class pkt extends Aa{constructor(){super({id:"editor.createFoldingRangeFromSelection",label:x("createManualFoldRange.label","Create Folding Range from Selection"),alias:"Create Folding Range from Selection",precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,primary:ko(2089,2135),weight:100}})}invoke(e,t,i){var r;const o=[],s=i.getSelections();if(s){for(const a of s){let l=a.endLineNumber;a.endColumn===1&&--l,l>a.startLineNumber&&(o.push({startLineNumber:a.startLineNumber,endLineNumber:l,type:void 0,isCollapsed:!0,source:1}),i.setSelection({startLineNumber:a.startLineNumber,startColumn:1,endLineNumber:a.startLineNumber,endColumn:1}))}if(o.length>0){o.sort((l,u)=>l.startLineNumber-u.startLineNumber);const a=Ju.sanitizeAndMerge(t.regions,o,(r=i.getModel())===null||r===void 0?void 0:r.getLineCount());t.updatePost(Ju.fromFoldRanges(a))}}}}class bkt extends Aa{constructor(){super({id:"editor.removeManualFoldingRanges",label:x("removeManualFoldingRanges.label","Remove Manual Folding Ranges"),alias:"Remove Manual Folding Ranges",precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,primary:ko(2089,2137),weight:100}})}invoke(e,t,i){const r=i.getSelections();if(r){const o=[];for(const s of r){const{startLineNumber:a,endLineNumber:l}=s;o.push(l>=a?{startLineNumber:a,endLineNumber:l}:{endLineNumber:l,startLineNumber:a})}t.removeManualRanges(o),e.triggerFoldingModelChanged()}}}Ii(Lm.ID,Lm,0),it(tkt),it(nkt),it(ikt),it(okt),it(dkt),it(hkt),it(skt),it(akt),it(lkt),it(ukt),it(ckt),it(rkt),it(gkt),it(mkt),it(fkt),it(pkt),it(bkt);for(let n=1;n<=7;n++)Imt(new Ov({id:Ov.ID(n),label:x("foldLevelAction.label","Fold Level {0}",n),alias:`Fold Level ${n}`,precondition:pa,kbOpts:{kbExpr:ne.editorTextFocus,primary:ko(2089,2048|21+n),weight:100}}));ei.registerCommand("_executeFoldingRangeProvider",async function(n,...e){const[t]=e;if(!(t instanceof $t))throw yc();const i=n.get(Tt),r=n.get(wr).getModel(t);if(!r)throw yc();const o=n.get(Xn);if(!o.getValue("editor.folding",{resource:t}))return[];const s=n.get($i),a=o.getValue("editor.foldingStrategy",{resource:t}),l={get limit(){return o.getValue("editor.foldingMaximumRegions",{resource:t})},update:(g,m)=>{}},u=new I8(r,s,l);let c=u;if(a!=="indentation"){const g=Lm.getFoldingRangeProviders(i,r);g.length&&(c=new S8(r,g,()=>{},l,u))}const d=await c.compute(Hn.None),h=[];try{if(d)for(let g=0;gvr.replace(K.lift(s.range),s.text))):e.executeEdits("formatEditsCommand",o.map(s=>vr.replaceMove(K.lift(s.range),s.text))),i&&e.pushUndoStop(),r.restoreRelativeVerticalPositionOfCursor(e)}}class exe{constructor(e){this.value=e,this._lower=e.toLowerCase()}static toKey(e){return typeof e=="string"?e.toLowerCase():e._lower}}class Ikt{constructor(e){if(this._set=new Set,e)for(const t of e)this.add(t)}add(e){this._set.add(exe.toKey(e))}has(e){return this._set.has(exe.toKey(e))}}function txe(n,e,t){const i=[],r=new Ikt,o=n.ordered(t);for(const a of o)i.push(a),a.extensionId&&r.add(a.extensionId);const s=e.ordered(t);for(const a of s){if(a.extensionId){if(r.has(a.extensionId))continue;r.add(a.extensionId)}i.push({displayName:a.displayName,extensionId:a.extensionId,provideDocumentFormattingEdits(l,u,c){return a.provideDocumentRangeFormattingEdits(l,l.getFullModelRange(),u,c)}})}return i}class Bv{static setFormatterSelector(e){return{dispose:Bv._selectors.unshift(e)}}static async select(e,t,i,r){if(e.length===0)return;const o=qn.first(Bv._selectors);if(o)return await o(e,t,i,r)}}Bv._selectors=new Ua;async function nxe(n,e,t,i,r,o,s){const a=n.get(tn),{documentRangeFormattingEditProvider:l}=n.get(Tt),u=I0(e)?e.getModel():e,c=l.ordered(u),d=await Bv.select(c,u,i,2);d&&(r.report(d),await a.invokeFunction(wkt,d,e,t,o,s))}async function wkt(n,e,t,i,r,o){var s,a;const l=n.get(_d),u=n.get(Qa),c=n.get(o0);let d,h;I0(t)?(d=t.getModel(),h=new h0(t,5,void 0,r)):(d=t,h=new hU(t,r));const g=[];let m=0;for(const w of gH(i).sort(K.compareRangesUsingStarts))m>0&&K.areIntersectingOrTouching(g[m-1],w)?g[m-1]=K.fromPositions(g[m-1].getStartPosition(),w.getEndPosition()):m=g.push(w);const f=async w=>{var S,F;u.trace("[format][provideDocumentRangeFormattingEdits] (request)",(S=e.extensionId)===null||S===void 0?void 0:S.value,w);const L=await e.provideDocumentRangeFormattingEdits(d,w,d.getFormattingOptions(),h.token)||[];return u.trace("[format][provideDocumentRangeFormattingEdits] (response)",(F=e.extensionId)===null||F===void 0?void 0:F.value,L),L},b=(w,S)=>{if(!w.length||!S.length)return!1;const F=w.reduce((L,D)=>K.plusRange(L,D.range),w[0].range);if(!S.some(L=>K.intersectRanges(F,L.range)))return!1;for(const L of w)for(const D of S)if(K.intersectRanges(L.range,D.range))return!0;return!1},C=[],v=[];try{if(typeof e.provideDocumentRangesFormattingEdits=="function"){u.trace("[format][provideDocumentRangeFormattingEdits] (request)",(s=e.extensionId)===null||s===void 0?void 0:s.value,g);const w=await e.provideDocumentRangesFormattingEdits(d,g,d.getFormattingOptions(),h.token)||[];u.trace("[format][provideDocumentRangeFormattingEdits] (response)",(a=e.extensionId)===null||a===void 0?void 0:a.value,w),v.push(w)}else{for(const w of g){if(h.token.isCancellationRequested)return!0;v.push(await f(w))}for(let w=0;w({text:F.text,range:K.lift(F.range),forceMoveMarkers:!0})),F=>{for(const{range:L}of F)if(K.areIntersectingOrTouching(L,S))return[new Gt(L.startLineNumber,L.startColumn,L.endLineNumber,L.endColumn)];return null})}return c.playSignal(Dn.format,{userGesture:o}),!0}async function Skt(n,e,t,i,r,o){const s=n.get(tn),a=n.get(Tt),l=I0(e)?e.getModel():e,u=txe(a.documentFormattingEditProvider,a.documentRangeFormattingEditProvider,l),c=await Bv.select(u,l,t,1);c&&(i.report(c),await s.invokeFunction(xkt,c,e,t,r,o))}async function xkt(n,e,t,i,r,o){const s=n.get(_d),a=n.get(o0);let l,u;I0(t)?(l=t.getModel(),u=new h0(t,5,void 0,r)):(l=t,u=new hU(t,r));let c;try{const d=await e.provideDocumentFormattingEdits(l,l.getFormattingOptions(),u.token);if(c=await s.computeMoreMinimalEdits(l.uri,d),u.token.isCancellationRequested)return!0}finally{u.dispose()}if(!c||c.length===0)return!1;if(I0(t))Bw.execute(t,c,i!==2),i!==2&&t.revealPositionInCenterIfOutsideViewport(t.getPosition(),1);else{const[{range:d}]=c,h=new Gt(d.startLineNumber,d.startColumn,d.endLineNumber,d.endColumn);l.pushEditOperations([h],c.map(g=>({text:g.text,range:K.lift(g.range),forceMoveMarkers:!0})),g=>{for(const{range:m}of g)if(K.areIntersectingOrTouching(m,h))return[new Gt(m.startLineNumber,m.startColumn,m.endLineNumber,m.endColumn)];return null})}return a.playSignal(Dn.format,{userGesture:o}),!0}async function Lkt(n,e,t,i,r,o){const s=e.documentRangeFormattingEditProvider.ordered(t);for(const a of s){const l=await Promise.resolve(a.provideDocumentRangeFormattingEdits(t,i,r,o)).catch(wo);if(da(l))return await n.computeMoreMinimalEdits(t.uri,l)}}async function Fkt(n,e,t,i,r){const o=txe(e.documentFormattingEditProvider,e.documentRangeFormattingEditProvider,t);for(const s of o){const a=await Promise.resolve(s.provideDocumentFormattingEdits(t,i,r)).catch(wo);if(da(a))return await n.computeMoreMinimalEdits(t.uri,a)}}function ixe(n,e,t,i,r,o,s){const a=e.onTypeFormattingEditProvider.ordered(t);return a.length===0||a[0].autoFormatTriggerCharacters.indexOf(r)<0?Promise.resolve(void 0):Promise.resolve(a[0].provideOnTypeFormattingEdits(t,i,r,o,s)).catch(wo).then(l=>n.computeMoreMinimalEdits(t.uri,l))}ei.registerCommand("_executeFormatRangeProvider",async function(n,...e){const[t,i,r]=e;Ci($t.isUri(t)),Ci(K.isIRange(i));const o=n.get(Fl),s=n.get(_d),a=n.get(Tt),l=await o.createModelReference(t);try{return Lkt(s,a,l.object.textEditorModel,K.lift(i),r,Hn.None)}finally{l.dispose()}}),ei.registerCommand("_executeFormatDocumentProvider",async function(n,...e){const[t,i]=e;Ci($t.isUri(t));const r=n.get(Fl),o=n.get(_d),s=n.get(Tt),a=await r.createModelReference(t);try{return Fkt(o,s,a.object.textEditorModel,i,Hn.None)}finally{a.dispose()}}),ei.registerCommand("_executeFormatOnTypeProvider",async function(n,...e){const[t,i,r,o]=e;Ci($t.isUri(t)),Ci(ve.isIPosition(i)),Ci(typeof r=="string");const s=n.get(Fl),a=n.get(_d),l=n.get(Tt),u=await s.createModelReference(t);try{return ixe(a,l,u.object.textEditorModel,ve.lift(i),r,o,Hn.None)}finally{u.dispose()}});var rxe=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},IA=function(n,e){return function(t,i){e(t,i,n)}};let wA=class{constructor(e,t,i,r){this._editor=e,this._languageFeaturesService=t,this._workerService=i,this._accessibilitySignalService=r,this._disposables=new je,this._sessionDisposables=new je,this._disposables.add(t.onTypeFormattingEditProvider.onDidChange(this._update,this)),this._disposables.add(e.onDidChangeModel(()=>this._update())),this._disposables.add(e.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(e.onDidChangeConfiguration(o=>{o.hasChanged(56)&&this._update()})),this._update()}dispose(){this._disposables.dispose(),this._sessionDisposables.dispose()}_update(){if(this._sessionDisposables.clear(),!this._editor.getOption(56)||!this._editor.hasModel())return;const e=this._editor.getModel(),[t]=this._languageFeaturesService.onTypeFormattingEditProvider.ordered(e);if(!t||!t.autoFormatTriggerCharacters)return;const i=new j5;for(const r of t.autoFormatTriggerCharacters)i.add(r.charCodeAt(0));this._sessionDisposables.add(this._editor.onDidType(r=>{const o=r.charCodeAt(r.length-1);i.has(o)&&this._trigger(String.fromCharCode(o))}))}_trigger(e){if(!this._editor.hasModel()||this._editor.getSelections().length>1||!this._editor.getSelection().isEmpty())return;const t=this._editor.getModel(),i=this._editor.getPosition(),r=new co,o=this._editor.onDidChangeModelContent(s=>{if(s.isFlush){r.cancel(),o.dispose();return}for(let a=0,l=s.changes.length;a{r.token.isCancellationRequested||da(s)&&(this._accessibilitySignalService.playSignal(Dn.format,{userGesture:!1}),Bw.execute(this._editor,s,!0))}).finally(()=>{o.dispose()})}};wA.ID="editor.contrib.autoFormat",wA=rxe([IA(1,Tt),IA(2,_d),IA(3,o0)],wA);let SA=class{constructor(e,t,i){this.editor=e,this._languageFeaturesService=t,this._instantiationService=i,this._callOnDispose=new je,this._callOnModel=new je,this._callOnDispose.add(e.onDidChangeConfiguration(()=>this._update())),this._callOnDispose.add(e.onDidChangeModel(()=>this._update())),this._callOnDispose.add(e.onDidChangeModelLanguage(()=>this._update())),this._callOnDispose.add(t.documentRangeFormattingEditProvider.onDidChange(this._update,this))}dispose(){this._callOnDispose.dispose(),this._callOnModel.dispose()}_update(){this._callOnModel.clear(),this.editor.getOption(55)&&this.editor.hasModel()&&this._languageFeaturesService.documentRangeFormattingEditProvider.has(this.editor.getModel())&&this._callOnModel.add(this.editor.onDidPaste(({range:e})=>this._trigger(e)))}_trigger(e){this.editor.hasModel()&&(this.editor.getSelections().length>1||this._instantiationService.invokeFunction(nxe,this.editor,e,2,ep.None,Hn.None,!1).catch(fn))}};SA.ID="editor.contrib.formatOnPaste",SA=rxe([IA(1,Tt),IA(2,tn)],SA);class _kt extends Nt{constructor(){super({id:"editor.action.formatDocument",label:x("formatDocument.label","Format Document"),alias:"Format Document",precondition:Be.and(ne.notInCompositeEditor,ne.writable,ne.hasDocumentFormattingProvider),kbOpts:{kbExpr:ne.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},contextMenuOpts:{group:"1_modification",order:1.3}})}async run(e,t){if(t.hasModel()){const i=e.get(tn);await e.get(u0).showWhile(i.invokeFunction(Skt,t,1,ep.None,Hn.None,!0),250)}}}class Dkt extends Nt{constructor(){super({id:"editor.action.formatSelection",label:x("formatSelection.label","Format Selection"),alias:"Format Selection",precondition:Be.and(ne.writable,ne.hasDocumentSelectionFormattingProvider),kbOpts:{kbExpr:ne.editorTextFocus,primary:ko(2089,2084),weight:100},contextMenuOpts:{when:ne.hasNonEmptySelection,group:"1_modification",order:1.31}})}async run(e,t){if(!t.hasModel())return;const i=e.get(tn),r=t.getModel(),o=t.getSelections().map(a=>a.isEmpty()?new K(a.startLineNumber,1,a.startLineNumber,r.getLineMaxColumn(a.startLineNumber)):a);await e.get(u0).showWhile(i.invokeFunction(nxe,t,o,1,ep.None,Hn.None,!0),250)}}Ii(wA.ID,wA,2),Ii(SA.ID,SA,2),it(_kt),it(Dkt),ei.registerCommand("editor.action.format",async n=>{const e=n.get(yi).getFocusedCodeEditor();if(!e||!e.hasModel())return;const t=n.get(Vr);e.getSelection().isEmpty()?await t.executeCommand("editor.action.formatDocument"):await t.executeCommand("editor.action.formatSelection")});var Akt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},x8=function(n,e){return function(t,i){e(t,i,n)}};class zw{remove(){var e;(e=this.parent)===null||e===void 0||e.children.delete(this.id)}static findId(e,t){let i;typeof e=="string"?i=`${t.id}/${e}`:(i=`${t.id}/${e.name}`,t.children.get(i)!==void 0&&(i=`${t.id}/${e.name}_${e.range.startLineNumber}_${e.range.startColumn}`));let r=i;for(let o=0;t.children.get(r)!==void 0;o++)r=`${i}_${o}`;return r}static empty(e){return e.children.size===0}}class L8 extends zw{constructor(e,t,i){super(),this.id=e,this.parent=t,this.symbol=i,this.children=new Map}}class oxe extends zw{constructor(e,t,i,r){super(),this.id=e,this.parent=t,this.label=i,this.order=r,this.children=new Map}}class gp extends zw{static create(e,t,i){const r=new co(i),o=new gp(t.uri),s=e.ordered(t),a=s.map((u,c)=>{var d;const h=zw.findId(`provider_${c}`,o),g=new oxe(h,o,(d=u.displayName)!==null&&d!==void 0?d:"Unknown Outline Provider",c);return Promise.resolve(u.provideDocumentSymbols(t,r.token)).then(m=>{for(const f of m||[])gp._makeOutlineElement(f,g);return g},m=>(wo(m),g)).then(m=>{zw.empty(m)?m.remove():o._groups.set(h,m)})}),l=e.onDidChange(()=>{const u=e.ordered(t);Ar(u,s)||r.cancel()});return Promise.all(a).then(()=>r.token.isCancellationRequested&&!i.isCancellationRequested?gp.create(e,t,i):o._compact()).finally(()=>{r.dispose(),l.dispose(),r.dispose()})}static _makeOutlineElement(e,t){const i=zw.findId(e,t),r=new L8(i,t,e);if(e.children)for(const o of e.children)gp._makeOutlineElement(o,r);t.children.set(r.id,r)}constructor(e){super(),this.uri=e,this.id="root",this.parent=void 0,this._groups=new Map,this.children=new Map,this.id="root",this.parent=void 0}_compact(){let e=0;for(const[t,i]of this._groups)i.children.size===0?this._groups.delete(t):e+=1;if(e!==1)this.children=this._groups;else{const t=qn.first(this._groups.values());for(const[,i]of t.children)i.parent=this,this.children.set(i.id,i)}return this}getTopLevelSymbols(){const e=[];for(const t of this.children.values())t instanceof L8?e.push(t.symbol):e.push(...qn.map(t.children.values(),i=>i.symbol));return e.sort((t,i)=>K.compareRangesUsingStarts(t.range,i.range))}asListOfDocumentSymbols(){const e=this.getTopLevelSymbols(),t=[];return gp._flattenDocumentSymbols(t,e,""),t.sort((i,r)=>ve.compare(K.getStartPosition(i.range),K.getStartPosition(r.range))||ve.compare(K.getEndPosition(r.range),K.getEndPosition(i.range)))}static _flattenDocumentSymbols(e,t,i){for(const r of t)e.push({kind:r.kind,tags:r.tags,name:r.name,detail:r.detail,containerName:r.containerName||i,range:r.range,selectionRange:r.selectionRange,children:void 0}),r.children&&gp._flattenDocumentSymbols(e,r.children,r.name)}}const F8=Un("IOutlineModelService");let _8=class{constructor(e,t,i){this._languageFeaturesService=e,this._disposables=new je,this._cache=new uv(10,.7),this._debounceInformation=t.for(e.documentSymbolProvider,"DocumentSymbols",{min:350}),this._disposables.add(i.onModelRemoved(r=>{this._cache.delete(r.id)}))}dispose(){this._disposables.dispose()}async getOrCreate(e,t){const i=this._languageFeaturesService.documentSymbolProvider,r=i.ordered(e);let o=this._cache.get(e.id);if(!o||o.versionId!==e.getVersionId()||!Ar(o.provider,r)){const a=new co;o={versionId:e.getVersionId(),provider:r,promiseCnt:0,source:a,promise:gp.create(i,e,a.token),model:void 0},this._cache.set(e.id,o);const l=Date.now();o.promise.then(u=>{o.model=u,this._debounceInformation.update(e,Date.now()-l)}).catch(u=>{this._cache.delete(e.id)})}if(o.model)return o.model;o.promiseCnt+=1;const s=t.onCancellationRequested(()=>{--o.promiseCnt===0&&(o.source.cancel(),this._cache.delete(e.id))});try{return await o.promise}finally{s.dispose()}}};_8=Akt([x8(0,Tt),x8(1,Xc),x8(2,wr)],_8),ti(F8,_8,1),ei.registerCommand("_executeDocumentSymbolProvider",async function(n,...e){const[t]=e;Ci($t.isUri(t));const i=n.get(F8),o=await n.get(Fl).createModelReference(t);try{return(await i.getOrCreate(o.object.textEditorModel,Hn.None)).getTopLevelSymbols()}finally{o.dispose()}});class ms extends De{constructor(e,t){super(),this.contextKeyService=e,this.model=t,this.inlineCompletionVisible=ms.inlineSuggestionVisible.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentation=ms.inlineSuggestionHasIndentation.bindTo(this.contextKeyService),this.inlineCompletionSuggestsIndentationLessThanTabSize=ms.inlineSuggestionHasIndentationLessThanTabSize.bindTo(this.contextKeyService),this.suppressSuggestions=ms.suppressSuggestions.bindTo(this.contextKeyService),this._register(Jn(i=>{const r=this.model.read(i),o=r==null?void 0:r.state.read(i),s=!!(o!=null&&o.inlineCompletion)&&(o==null?void 0:o.primaryGhostText)!==void 0&&!(o!=null&&o.primaryGhostText.isEmpty());this.inlineCompletionVisible.set(s),o!=null&&o.primaryGhostText&&(o!=null&&o.inlineCompletion)&&this.suppressSuggestions.set(o.inlineCompletion.inlineCompletion.source.inlineCompletions.suppressSuggestions)})),this._register(Jn(i=>{const r=this.model.read(i);let o=!1,s=!0;const a=r==null?void 0:r.primaryGhostText.read(i);if(r!=null&&r.selectedSuggestItem&&a&&a.parts.length>0){const{column:l,lines:u}=a.parts[0],c=u[0],d=r.textModel.getLineIndentColumn(a.lineNumber);if(l<=d){let g=Ia(c);g===-1&&(g=c.length-1),o=g>0;const m=r.textModel.getOptions().tabSize;s=Yo.visibleColumnFromColumn(c,g+1,m){const o=K.lift(r.range);return{startOffset:t.getOffset(o.getStartPosition()),endOffset:t.getOffset(o.getEndPosition()),text:r.text}});i.sort((r,o)=>o.startOffset-r.startOffset);for(const r of i)n=n.substring(0,r.startOffset)+r.text+n.substring(r.endOffset);return n}class kkt{constructor(e){this.lineStartOffsetByLineIdx=[],this.lineStartOffsetByLineIdx.push(0);for(let t=0;tt)throw new br(`startColumn ${e} cannot be after endColumnExclusive ${t}`)}toRange(e){return new K(e,this.startColumn,e,this.endColumnExclusive)}equals(e){return this.startColumn===e.startColumn&&this.endColumnExclusive===e.endColumnExclusive}}function axe(n,e){const t=new je,i=n.createDecorationsCollection();return t.add(xE({debugName:()=>`Apply decorations from ${e.debugName}`},r=>{const o=e.read(r);i.set(o)})),t.add({dispose:()=>{i.clear()}}),t}function XR(n,e){return new ve(n.lineNumber+e.lineNumber-1,e.lineNumber===1?n.column+e.column-1:e.column)}function lxe(n,e){return new ve(n.lineNumber-e.lineNumber+1,n.lineNumber-e.lineNumber===0?n.column-e.column+1:n.column)}function D8(n){let e=1,t=1;for(const i of n)i===` +`?(e++,t=1):t++;return new ve(e,t)}function Tkt(n){var e;const t=[];let i=0,r=0,o=0;for(const s of n){const a=(e=s.text)!==null&&e!==void 0?e:"",l=D8(a),u=ve.lift({lineNumber:s.range.startLineNumber+r,column:s.range.startColumn+(s.range.startLineNumber===i?o:0)}),c=XR(u,l);t.push(K.fromPositions(u,c)),r+=l.lineNumber-s.range.endLineNumber+s.range.startLineNumber-1,o=c.column-s.range.endColumn,i=s.range.endLineNumber}return t}class PR{constructor(e){this._indexMap=e}static createSortPermutation(e,t){const i=Array.from(e.keys()).sort((r,o)=>t(e[r],e[o]));return new PR(i)}apply(e){return e.map((t,i)=>e[this._indexMap[i]])}inverse(){const e=this._indexMap.slice();for(let t=0;tt.equals(e.parts[i]))}renderForScreenReader(e){if(this.parts.length===0)return"";const t=this.parts[this.parts.length-1],i=e.substr(0,t.column-1);return Nkt(i,this.parts.map(o=>({range:{startLineNumber:1,endLineNumber:1,startColumn:o.column,endColumn:o.column},text:o.lines.join(` +`)}))).substring(this.parts[0].column-1)}isEmpty(){return this.parts.every(e=>e.lines.length===0)}get lineCount(){return 1+this.parts.reduce((e,t)=>e+t.lines.length-1,0)}}class OR{constructor(e,t,i){this.column=e,this.text=t,this.preview=i,this.lines=Zg(this.text)}equals(e){return this.column===e.column&&this.lines.length===e.lines.length&&this.lines.every((t,i)=>t===e.lines[i])}}class A8{constructor(e,t,i,r=0){this.lineNumber=e,this.columnRange=t,this.text=i,this.additionalReservedLineCount=r,this.parts=[new OR(this.columnRange.endColumnExclusive,this.text,!1)],this.newLines=Zg(this.text)}renderForScreenReader(e){return this.newLines.join(` +`)}get lineCount(){return this.newLines.length}isEmpty(){return this.parts.every(e=>e.lines.length===0)}equals(e){return this.lineNumber===e.lineNumber&&this.columnRange.equals(e.columnRange)&&this.newLines.length===e.newLines.length&&this.newLines.every((t,i)=>t===e.newLines[i])&&this.additionalReservedLineCount===e.additionalReservedLineCount}}function uxe(n,e){return Ar(n,e,cxe)}function cxe(n,e){return n===e?!0:!n||!e?!1:n instanceof xA&&e instanceof xA||n instanceof A8&&e instanceof A8?n.equals(e):!1}var Ekt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Wkt=function(n,e){return function(t,i){e(t,i,n)}};const dxe="ghost-text";let N8=class extends De{constructor(e,t,i){super(),this.editor=e,this.model=t,this.languageService=i,this.isDisposed=ci(this,!1),this.currentTextModel=mr(this.editor.onDidChangeModel,()=>this.editor.getModel()),this.uiState=gn(this,r=>{if(this.isDisposed.read(r))return;const o=this.currentTextModel.read(r);if(o!==this.model.targetTextModel.read(r))return;const s=this.model.ghostText.read(r);if(!s)return;const a=s instanceof A8?s.columnRange:void 0,l=[],u=[];function c(f,b){if(u.length>0){const C=u[u.length-1];b&&C.decorations.push(new el(C.content.length+1,C.content.length+1+f[0].length,b,0)),C.content+=f[0],f=f.slice(1)}for(const C of f)u.push({content:C,decorations:b?[new el(1,C.length+1,b,0)]:[]})}const d=o.getLineContent(s.lineNumber);let h,g=0;for(const f of s.parts){let b=f.lines;h===void 0?(l.push({column:f.column,text:b[0],preview:f.preview}),b=b.slice(1)):c([d.substring(g,f.column-1)],void 0),b.length>0&&(c(b,dxe),h===void 0&&f.column<=d.length&&(h=f.column)),g=f.column-1}h!==void 0&&c([d.substring(g)],void 0);const m=h!==void 0?new sxe(h,d.length+1):void 0;return{replacedRange:a,inlineTexts:l,additionalLines:u,hiddenRange:m,lineNumber:s.lineNumber,additionalReservedLineCount:this.model.minReservedLineCount.read(r),targetTextModel:o}}),this.decorations=gn(this,r=>{const o=this.uiState.read(r);if(!o)return[];const s=[];o.replacedRange&&s.push({range:o.replacedRange.toRange(o.lineNumber),options:{inlineClassName:"inline-completion-text-to-replace",description:"GhostTextReplacement"}}),o.hiddenRange&&s.push({range:o.hiddenRange.toRange(o.lineNumber),options:{inlineClassName:"ghost-text-hidden",description:"ghost-text-hidden"}});for(const a of o.inlineTexts)s.push({range:K.fromPositions(new ve(o.lineNumber,a.column)),options:{description:dxe,after:{content:a.text,inlineClassName:a.preview?"ghost-text-decoration-preview":"ghost-text-decoration",cursorStops:Ld.Left},showIfCollapsed:!0}});return s}),this.additionalLinesWidget=this._register(new hxe(this.editor,this.languageService.languageIdCodec,gn(r=>{const o=this.uiState.read(r);return o?{lineNumber:o.lineNumber,additionalLines:o.additionalLines,minReservedLineCount:o.additionalReservedLineCount,targetTextModel:o.targetTextModel}:void 0}))),this._register(en(()=>{this.isDisposed.set(!0,void 0)})),this._register(axe(this.editor,this.decorations))}ownsViewZone(e){return this.additionalLinesWidget.viewZoneId===e}};N8=Ekt([Wkt(2,Cr)],N8);class hxe extends De{get viewZoneId(){return this._viewZoneId}constructor(e,t,i){super(),this.editor=e,this.languageIdCodec=t,this.lines=i,this._viewZoneId=void 0,this.editorOptionsChanged=il("editorOptionChanged",ft.filter(this.editor.onDidChangeConfiguration,r=>r.hasChanged(33)||r.hasChanged(117)||r.hasChanged(99)||r.hasChanged(94)||r.hasChanged(51)||r.hasChanged(50)||r.hasChanged(67))),this._register(Jn(r=>{const o=this.lines.read(r);this.editorOptionsChanged.read(r),o?this.updateLines(o.lineNumber,o.additionalLines,o.minReservedLineCount):this.clear()}))}dispose(){super.dispose(),this.clear()}clear(){this.editor.changeViewZones(e=>{this._viewZoneId&&(e.removeZone(this._viewZoneId),this._viewZoneId=void 0)})}updateLines(e,t,i){const r=this.editor.getModel();if(!r)return;const{tabSize:o}=r.getOptions();this.editor.changeViewZones(s=>{this._viewZoneId&&(s.removeZone(this._viewZoneId),this._viewZoneId=void 0);const a=Math.max(t.length,i);if(a>0){const l=document.createElement("div");Rkt(l,o,t,this.editor.getOptions(),this.languageIdCodec),this._viewZoneId=s.addZone({afterLineNumber:e,heightInLines:a,domNode:l,afterColumnAffinity:1})}})}}function Rkt(n,e,t,i,r){const o=i.get(33),s=i.get(117),a="none",l=i.get(94),u=i.get(51),c=i.get(50),d=i.get(67),h=new c2(1e4);h.appendString('
    ');for(let f=0,b=t.length;f');const w=kF(v),S=KI(v),F=ns.createEmpty(v,r);g_(new Xb(c.isMonospace&&!o,c.canUseHalfwidthRightwardsArrow,v,!1,w,S,0,F,C.decorations,e,0,c.spaceWidth,c.middotWidth,c.wsmiddotWidth,s,a,l,u!==Vu.OFF,null),h),h.appendString("
    ")}h.appendString(""),Ks(n,c);const g=h.build(),m=gxe?gxe.createHTML(g):g;n.innerHTML=m}const gxe=Rf("editorGhostText",{createHTML:n=>n});function Gkt(n,e){const t=new PCe,i=new BCe(t,u=>e.getLanguageConfiguration(u)),r=new OCe(new Vkt([n]),i),o=_6(r,[],void 0,!0);let s="";const a=n.getLineContent();function l(u,c){if(u.kind===2)if(l(u.openingBracket,c),c=Tr(c,u.openingBracket.length),u.child&&(l(u.child,c),c=Tr(c,u.child.length)),u.closingBracket)l(u.closingBracket,c),c=Tr(c,u.closingBracket.length);else{const h=i.getSingleLanguageBracketTokens(u.openingBracket.languageId).findClosingTokenText(u.openingBracket.bracketIds);s+=h}else if(u.kind!==3){if(u.kind===0||u.kind===1)s+=a.substring(c,Tr(c,u.length));else if(u.kind===4)for(const d of u.children)l(d,c),c=Tr(c,d.length)}}return l(o,nl),s}class Vkt{constructor(e){this.lines=e,this.tokenization={getLineTokens:t=>this.lines[t-1]}}getLineCount(){return this.lines.length}getLineLength(e){return this.lines[e-1].getLineContent().length}}async function Xkt(n,e,t,i,r=Hn.None,o){const s=Bkt(e,t),a=n.all(t),l=new f7;for(const C of a)C.groupId&&l.add(C.groupId,C);function u(C){if(!C.yieldsToGroupIds)return[];const v=[];for(const w of C.yieldsToGroupIds||[]){const S=l.get(w);for(const F of S)v.push(F)}return v}const c=new Map,d=new Set;function h(C,v){if(v=[...v,C],d.has(C))return v;d.add(C);try{const w=u(C);for(const S of w){const F=h(S,v);if(F)return F}}finally{d.delete(C)}}function g(C){const v=c.get(C);if(v)return v;const w=h(C,[]);w&&wo(new Error(`Inline completions: cyclic yield-to dependency detected. Path: ${w.map(F=>F.toString?F.toString():""+F).join(" -> ")}`));const S=new dY;return c.set(C,S.p),(async()=>{if(!w){const F=u(C);for(const L of F){const D=await g(L);if(D&&D.items.length>0)return}}try{return await C.provideInlineCompletions(t,e,i,r)}catch(F){wo(F);return}})().then(F=>S.complete(F),F=>S.error(F)),S.p}const m=await Promise.all(a.map(async C=>({provider:C,completions:await g(C)}))),f=new Map,b=[];for(const C of m){const v=C.completions;if(!v)continue;const w=new Okt(v,C.provider);b.push(w);for(const S of v.items){const F=BR.from(S,w,s,t,o);f.set(F.hash(),F)}}return new Pkt(Array.from(f.values()),new Set(f.keys()),b)}class Pkt{constructor(e,t,i){this.completions=e,this.hashs=t,this.providerResults=i}has(e){return this.hashs.has(e.hash())}dispose(){for(const e of this.providerResults)e.removeRef()}}class Okt{constructor(e,t){this.inlineCompletions=e,this.provider=t,this.refCount=1}addRef(){this.refCount++}removeRef(){this.refCount--,this.refCount===0&&this.provider.freeInlineCompletions(this.inlineCompletions)}}class BR{static from(e,t,i,r,o){let s,a,l=e.range?K.lift(e.range):i;if(typeof e.insertText=="string"){if(s=e.insertText,o&&e.completeBracketPairs){s=mxe(s,l.getStartPosition(),r,o);const u=s.length-e.insertText.length;u!==0&&(l=new K(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn+u))}a=void 0}else if("snippet"in e.insertText){const u=e.insertText.snippet.length;if(o&&e.completeBracketPairs){e.insertText.snippet=mxe(e.insertText.snippet,l.getStartPosition(),r,o);const d=e.insertText.snippet.length-u;d!==0&&(l=new K(l.startLineNumber,l.startColumn,l.endLineNumber,l.endColumn+d))}const c=new Cv().parse(e.insertText.snippet);c.children.length===1&&c.children[0]instanceof al?(s=c.children[0].value,a=void 0):(s=c.toString(),a={snippet:e.insertText.snippet,range:l})}else O5(e.insertText);return new BR(s,e.command,l,s,a,e.additionalTextEdits||Zkt(),e,t)}constructor(e,t,i,r,o,s,a,l){this.filterText=e,this.command=t,this.range=i,this.insertText=r,this.snippetInfo=o,this.additionalTextEdits=s,this.sourceInlineCompletion=a,this.source=l,e=e.replace(/\r\n|\r/g,` +`),r=e.replace(/\r\n|\r/g,` +`)}withRange(e){return new BR(this.filterText,this.command,e,this.insertText,this.snippetInfo,this.additionalTextEdits,this.sourceInlineCompletion,this.source)}hash(){return JSON.stringify({insertText:this.insertText,range:this.range.toString()})}}function Bkt(n,e){const t=e.getWordAtPosition(n),i=e.getLineMaxColumn(n.lineNumber);return t?new K(n.lineNumber,t.startColumn,n.lineNumber,i):K.fromPositions(n,n.with(void 0,i))}function mxe(n,e,t,i){const o=t.getLineContent(e.lineNumber).substring(0,e.column-1)+n,s=t.tokenization.tokenizeLineWithEdit(e,o.length-(e.column-1),n),a=s==null?void 0:s.sliceAndInflate(e.column-1,o.length,0);return a?Gkt(a,i):n}class M0{constructor(e,t){this.range=e,this.text=t}removeCommonPrefix(e,t){const i=t?this.range.intersectRanges(t):this.range;if(!i)return this;const r=e.getValueInRange(i,1),o=yb(r,this.text),s=XR(this.range.getStartPosition(),D8(r.substring(0,o))),a=this.text.substring(o),l=K.fromPositions(s,this.range.getEndPosition());return new M0(l,a)}augments(e){return this.text.startsWith(e.text)&&zkt(this.range,e.range)}computeGhostText(e,t,i,r=0){let o=this.removeCommonPrefix(e);if(o.range.endLineNumber!==o.range.startLineNumber)return;const s=e.getLineContent(o.range.startLineNumber),a=Yi(s).length;if(o.range.startColumn-1<=a){const m=Yi(o.text).length,f=s.substring(o.range.startColumn-1,a),[b,C]=[o.range.getStartPosition(),o.range.getEndPosition()],v=b.column+f.length<=C.column?b.delta(0,f.length):C,w=K.fromPositions(v,C),S=o.text.startsWith(f)?o.text.substring(f.length):o.text.substring(m);o=new M0(w,S)}const u=e.getValueInRange(o.range),c=Ykt(u,o.text);if(!c)return;const d=o.range.startLineNumber,h=new Array;if(t==="prefix"){const m=c.filter(f=>f.originalLength===0);if(m.length>1||m.length===1&&m[0].originalStart!==u.length)return}const g=o.text.length-r;for(const m of c){const f=o.range.startColumn+m.originalStart+m.originalLength;if(t==="subwordSmart"&&i&&i.lineNumber===o.range.startLineNumber&&f0)return;if(m.modifiedLength===0)continue;const b=m.modifiedStart+m.modifiedLength,C=Math.max(m.modifiedStart,Math.min(b,g)),v=o.text.substring(m.modifiedStart,C),w=o.text.substring(C,Math.max(m.modifiedStart,b));v.length>0&&h.push(new OR(f,v,!1)),w.length>0&&h.push(new OR(f,w,!0))}return new xA(d,h)}}function zkt(n,e){return e.getStartPosition().equals(n.getStartPosition())&&e.getEndPosition().isBeforeOrEqual(n.getEndPosition())}let Fm;function Ykt(n,e){if((Fm==null?void 0:Fm.originalValue)===n&&(Fm==null?void 0:Fm.newValue)===e)return Fm==null?void 0:Fm.changes;{let t=pxe(n,e,!0);if(t){const i=fxe(t);if(i>0){const r=pxe(n,e,!1);r&&fxe(r)5e3||e.length>5e3)return;function i(u){let c=0;for(let d=0,h=u.length;dc&&(c=g)}return c}const r=Math.max(i(n),i(e));function o(u){if(u<0)throw new Error("unexpected");return r+u+1}function s(u){let c=0,d=0;const h=new Int32Array(u.length);for(let g=0,m=u.length;ga},{getElements:()=>l}).ComputeDiff(!1).changes}var Hkt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},bxe=function(n,e){return function(t,i){e(t,i,n)}};let k8=class extends De{constructor(e,t,i,r,o){super(),this.textModel=e,this.versionId=t,this._debounceValue=i,this.languageFeaturesService=r,this.languageConfigurationService=o,this._updateOperation=this._register(new zs),this.inlineCompletions=dD("inlineCompletions",void 0),this.suggestWidgetInlineCompletions=dD("suggestWidgetInlineCompletions",void 0),this._register(this.textModel.onDidChangeContent(()=>{this._updateOperation.clear()}))}fetch(e,t,i){var r,o;const s=new Jkt(e,t,this.textModel.getVersionId()),a=t.selectedSuggestionInfo?this.suggestWidgetInlineCompletions:this.inlineCompletions;if(!((r=this._updateOperation.value)===null||r===void 0)&&r.request.satisfies(s))return this._updateOperation.value.promise;if(!((o=a.get())===null||o===void 0)&&o.request.satisfies(s))return Promise.resolve(!0);const l=!!this._updateOperation.value;this._updateOperation.clear();const u=new co,c=(async()=>{if((l||t.triggerKind===Wf.Automatic)&&await Ukt(this._debounceValue.get(this.textModel),u.token),u.token.isCancellationRequested||this.textModel.getVersionId()!==s.versionId)return!1;const g=new Date,m=await Xkt(this.languageFeaturesService.inlineCompletionsProvider,e,this.textModel,t,u.token,this.languageConfigurationService);if(u.token.isCancellationRequested||this.textModel.getVersionId()!==s.versionId)return!1;const f=new Date;this._debounceValue.update(this.textModel,f.getTime()-g.getTime());const b=new Qkt(m,s,this.textModel,this.versionId);if(i){const C=i.toInlineCompletion(void 0);i.canBeReused(this.textModel,e)&&!m.has(C)&&b.prepend(i.inlineCompletion,C.range,!0)}return this._updateOperation.clear(),rr(C=>{a.set(b,C)}),!0})(),d=new jkt(s,u,c);return this._updateOperation.value=d,c}clear(e){this._updateOperation.clear(),this.inlineCompletions.set(void 0,e),this.suggestWidgetInlineCompletions.set(void 0,e)}clearSuggestWidgetInlineCompletions(e){var t;!((t=this._updateOperation.value)===null||t===void 0)&&t.request.context.selectedSuggestionInfo&&this._updateOperation.clear(),this.suggestWidgetInlineCompletions.set(void 0,e)}cancelUpdate(){this._updateOperation.clear()}};k8=Hkt([bxe(3,Tt),bxe(4,$i)],k8);function Ukt(n,e){return new Promise(t=>{let i;const r=setTimeout(()=>{i&&i.dispose(),t()},n);e&&(i=e.onCancellationRequested(()=>{clearTimeout(r),i&&i.dispose(),t()}))})}class Jkt{constructor(e,t,i){this.position=e,this.context=t,this.versionId=i}satisfies(e){return this.position.equals(e.position)&&Kkt(this.context.selectedSuggestionInfo,e.context.selectedSuggestionInfo,(t,i)=>t.equals(i))&&(e.context.triggerKind===Wf.Automatic||this.context.triggerKind===Wf.Explicit)&&this.versionId===e.versionId}}function Kkt(n,e,t){return!n||!e?n===e:t(n,e)}class jkt{constructor(e,t,i){this.request=e,this.cancellationTokenSource=t,this.promise=i}dispose(){this.cancellationTokenSource.cancel()}}class Qkt{get inlineCompletions(){return this._inlineCompletions}constructor(e,t,i,r){this.inlineCompletionProviderResult=e,this.request=t,this.textModel=i,this.versionId=r,this._refCount=1,this._prependedInlineCompletionItems=[],this._rangeVersionIdValue=0,this._rangeVersionId=gn(this,s=>{this.versionId.read(s);let a=!1;for(const l of this._inlineCompletions)a=a||l._updateRange(this.textModel);return a&&this._rangeVersionIdValue++,this._rangeVersionIdValue});const o=i.deltaDecorations([],e.completions.map(s=>({range:s.range,options:{description:"inline-completion-tracking-range"}})));this._inlineCompletions=e.completions.map((s,a)=>new Cxe(s,o[a],this._rangeVersionId))}clone(){return this._refCount++,this}dispose(){if(this._refCount--,this._refCount===0){setTimeout(()=>{this.textModel.isDisposed()||this.textModel.deltaDecorations(this._inlineCompletions.map(e=>e.decorationId),[])},0),this.inlineCompletionProviderResult.dispose();for(const e of this._prependedInlineCompletionItems)e.source.removeRef()}}prepend(e,t,i){i&&e.source.addRef();const r=this.textModel.deltaDecorations([],[{range:t,options:{description:"inline-completion-tracking-range"}}])[0];this._inlineCompletions.unshift(new Cxe(e,r,this._rangeVersionId,t)),this._prependedInlineCompletionItems.push(e)}}class Cxe{get forwardStable(){var e;return(e=this.inlineCompletion.source.inlineCompletions.enableForwardStability)!==null&&e!==void 0?e:!1}constructor(e,t,i,r){this.inlineCompletion=e,this.decorationId=t,this.rangeVersion=i,this.semanticId=JSON.stringify([this.inlineCompletion.filterText,this.inlineCompletion.insertText,this.inlineCompletion.range.getStartPosition().toString()]),this._isValid=!0,this._updatedRange=r??e.range}toInlineCompletion(e){return this.inlineCompletion.withRange(this._getUpdatedRange(e))}toSingleTextEdit(e){return new M0(this._getUpdatedRange(e),this.inlineCompletion.insertText)}isVisible(e,t,i){const r=this._toFilterTextReplacement(i).removeCommonPrefix(e);if(!this._isValid||!this.inlineCompletion.range.getStartPosition().equals(this._getUpdatedRange(i).getStartPosition())||t.lineNumber!==r.range.startLineNumber)return!1;const o=e.getValueInRange(r.range,1),s=r.text,a=Math.max(0,t.column-r.range.startColumn);let l=s.substring(0,a),u=s.substring(a),c=o.substring(0,a),d=o.substring(a);const h=e.getLineIndentColumn(r.range.startLineNumber);return r.range.startColumn<=h&&(c=c.trimStart(),c.length===0&&(d=d.trimStart()),l=l.trimStart(),l.length===0&&(u=u.trimStart())),l.startsWith(c)&&!!iye(d,u)}canBeReused(e,t){return this._isValid&&this._getUpdatedRange(void 0).containsPosition(t)&&this.isVisible(e,t,void 0)&&!this._isSmallerThanOriginal(void 0)}_toFilterTextReplacement(e){return new M0(this._getUpdatedRange(e),this.inlineCompletion.filterText)}_isSmallerThanOriginal(e){return vxe(this._getUpdatedRange(e)).isBefore(vxe(this.inlineCompletion.range))}_getUpdatedRange(e){return this.rangeVersion.read(e),this._updatedRange}_updateRange(e){const t=e.getDecorationRange(this.decorationId);return t?this._updatedRange.equalsRange(t)?!1:(this._updatedRange=t,!0):(this._isValid=!1,!0)}}function vxe(n){return n.startLineNumber===n.endLineNumber?new ve(1,1+n.endColumn-n.startColumn):new ve(1+n.endLineNumber-n.startLineNumber,n.endColumn)}const An={Visible:c8,HasFocusedSuggestion:new It("suggestWidgetHasFocusedSuggestion",!1,x("suggestWidgetHasSelection","Whether any suggestion is focused")),DetailsVisible:new It("suggestWidgetDetailsVisible",!1,x("suggestWidgetDetailsVisible","Whether suggestion details are visible")),MultipleSuggestions:new It("suggestWidgetMultipleSuggestions",!1,x("suggestWidgetMultipleSuggestions","Whether there are multiple suggestions to pick from")),MakesTextEdit:new It("suggestionMakesTextEdit",!0,x("suggestionMakesTextEdit","Whether inserting the current suggestion yields in a change or has everything already been typed")),AcceptSuggestionsOnEnter:new It("acceptSuggestionOnEnter",!0,x("acceptSuggestionOnEnter","Whether suggestions are inserted when pressing Enter")),HasInsertAndReplaceRange:new It("suggestionHasInsertAndReplaceRange",!1,x("suggestionHasInsertAndReplaceRange","Whether the current suggestion has insert and replace behaviour")),InsertMode:new It("suggestionInsertMode",void 0,{type:"string",description:x("suggestionInsertMode","Whether the default behaviour is to insert or replace")}),CanResolve:new It("suggestionCanResolve",!1,x("suggestionCanResolve","Whether the current suggestion supports to resolve further details"))},Z0=new $("suggestWidgetStatusBar");let $kt=class{constructor(e,t,i,r){var o;this.position=e,this.completion=t,this.container=i,this.provider=r,this.isInvalid=!1,this.score=Zh.Default,this.distance=0,this.textLabel=typeof t.label=="string"?t.label:(o=t.label)===null||o===void 0?void 0:o.label,this.labelLow=this.textLabel.toLowerCase(),this.isInvalid=!this.textLabel,this.sortTextLow=t.sortText&&t.sortText.toLowerCase(),this.filterTextLow=t.filterText&&t.filterText.toLowerCase(),this.extensionId=t.extensionId,K.isIRange(t.range)?(this.editStart=new ve(t.range.startLineNumber,t.range.startColumn),this.editInsertEnd=new ve(t.range.endLineNumber,t.range.endColumn),this.editReplaceEnd=new ve(t.range.endLineNumber,t.range.endColumn),this.isInvalid=this.isInvalid||K.spansMultipleLines(t.range)||t.range.startLineNumber!==e.lineNumber):(this.editStart=new ve(t.range.insert.startLineNumber,t.range.insert.startColumn),this.editInsertEnd=new ve(t.range.insert.endLineNumber,t.range.insert.endColumn),this.editReplaceEnd=new ve(t.range.replace.endLineNumber,t.range.replace.endColumn),this.isInvalid=this.isInvalid||K.spansMultipleLines(t.range.insert)||K.spansMultipleLines(t.range.replace)||t.range.insert.startLineNumber!==e.lineNumber||t.range.replace.startLineNumber!==e.lineNumber||t.range.insert.startColumn!==t.range.replace.startColumn),typeof r.resolveCompletionItem!="function"&&(this._resolveCache=Promise.resolve(),this._resolveDuration=0)}get isResolved(){return this._resolveDuration!==void 0}get resolveDuration(){return this._resolveDuration!==void 0?this._resolveDuration:-1}async resolve(e){if(!this._resolveCache){const t=e.onCancellationRequested(()=>{this._resolveCache=void 0,this._resolveDuration=void 0}),i=new aa(!0);this._resolveCache=Promise.resolve(this.provider.resolveCompletionItem(this.completion,e)).then(r=>{Object.assign(this.completion,r),this._resolveDuration=i.elapsed()},r=>{Ng(r)&&(this._resolveCache=void 0,this._resolveDuration=void 0)}).finally(()=>{t.dispose()})}return this._resolveCache}};class LA{constructor(e=2,t=new Set,i=new Set,r=new Map,o=!0){this.snippetSortOrder=e,this.kindFilter=t,this.providerFilter=i,this.providerItemsToReuse=r,this.showDeprecated=o}}LA.default=new LA;let qkt;function eMt(){return qkt}class tMt{constructor(e,t,i,r){this.items=e,this.needsClipboard=t,this.durations=i,this.disposable=r}}async function M8(n,e,t,i=LA.default,r={triggerKind:0},o=Hn.None){const s=new aa;t=t.clone();const a=e.getWordAtPosition(t),l=a?new K(t.lineNumber,a.startColumn,t.lineNumber,a.endColumn):K.fromPositions(t),u={replace:l,insert:l.setEndPosition(t.lineNumber,t.column)},c=[],d=new je,h=[];let g=!1;const m=(b,C,v)=>{var w,S,F;let L=!1;if(!C)return L;for(const D of C.suggestions)if(!i.kindFilter.has(D.kind)){if(!i.showDeprecated&&(!((w=D==null?void 0:D.tags)===null||w===void 0)&&w.includes(1)))continue;D.range||(D.range=u),D.sortText||(D.sortText=typeof D.label=="string"?D.label:D.label.label),!g&&D.insertTextRules&&D.insertTextRules&4&&(g=Cv.guessNeedsClipboard(D.insertText)),c.push(new $kt(t,D,C,b)),L=!0}return iY(C)&&d.add(C),h.push({providerName:(S=b._debugDisplayName)!==null&&S!==void 0?S:"unknown_provider",elapsedProvider:(F=C.duration)!==null&&F!==void 0?F:-1,elapsedOverall:v.elapsed()}),L},f=(async()=>{})();for(const b of n.orderedGroups(e)){let C=!1;if(await Promise.all(b.map(async v=>{if(i.providerItemsToReuse.has(v)){const w=i.providerItemsToReuse.get(v);w.forEach(S=>c.push(S)),C=C||w.length>0;return}if(!(i.providerFilter.size>0&&!i.providerFilter.has(v)))try{const w=new aa,S=await v.provideCompletionItems(e,t,r,o);C=m(v,S,w)||C}catch(w){wo(w)}})),C||o.isCancellationRequested)break}return await f,o.isCancellationRequested?(d.dispose(),Promise.reject(new bb)):new tMt(c.sort(rMt(i.snippetSortOrder)),g,{entries:h,elapsed:s.elapsed()},d)}function Z8(n,e){if(n.sortTextLow&&e.sortTextLow){if(n.sortTextLowe.sortTextLow)return 1}return n.textLabele.textLabel?1:n.completion.kind-e.completion.kind}function nMt(n,e){if(n.completion.kind!==e.completion.kind){if(n.completion.kind===27)return-1;if(e.completion.kind===27)return 1}return Z8(n,e)}function iMt(n,e){if(n.completion.kind!==e.completion.kind){if(n.completion.kind===27)return 1;if(e.completion.kind===27)return-1}return Z8(n,e)}const zR=new Map;zR.set(0,nMt),zR.set(2,iMt),zR.set(1,Z8);function rMt(n){return zR.get(n)}ei.registerCommand("_executeCompletionItemProvider",async(n,...e)=>{const[t,i,r,o]=e;Ci($t.isUri(t)),Ci(ve.isIPosition(i)),Ci(typeof r=="string"||!r),Ci(typeof o=="number"||!o);const{completionProvider:s}=n.get(Tt),a=await n.get(Fl).createModelReference(t);try{const l={incomplete:!1,suggestions:[]},u=[],c=a.object.textEditorModel.validatePosition(i),d=await M8(s,a.object.textEditorModel,c,void 0,{triggerCharacter:r??void 0,triggerKind:r?1:0});for(const h of d.items)u.length<(o??0)&&u.push(h.resolve(Hn.None)),l.incomplete=l.incomplete||h.container.incomplete,l.suggestions.push(h.completion);try{return await Promise.all(u),l}finally{setTimeout(()=>d.disposable.dispose(),100)}}finally{a.dispose()}});function oMt(n,e){var t;(t=n.getContribution("editor.contrib.suggestController"))===null||t===void 0||t.triggerSuggest(new Set().add(e),void 0,!0)}class Yw{static isAllOff(e){return e.other==="off"&&e.comments==="off"&&e.strings==="off"}static isAllOn(e){return e.other==="on"&&e.comments==="on"&&e.strings==="on"}static valueFor(e,t){switch(t){case 1:return e.comments;case 2:return e.strings;default:return e.other}}}function yxe(n,e=ya){return Xvt(n,e)?n.charAt(0).toUpperCase()+n.slice(1):n}var sMt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},aMt=function(n,e){return function(t,i){e(t,i,n)}};class Ixe{constructor(e){this._delegates=e}resolve(e){for(const t of this._delegates){const i=t.resolve(e);if(i!==void 0)return i}}}class wxe{constructor(e,t,i,r){this._model=e,this._selection=t,this._selectionIdx=i,this._overtypingCapturer=r}resolve(e){const{name:t}=e;if(t==="SELECTION"||t==="TM_SELECTED_TEXT"){let i=this._model.getValueInRange(this._selection)||void 0,r=this._selection.startLineNumber!==this._selection.endLineNumber;if(!i&&this._overtypingCapturer){const o=this._overtypingCapturer.getLastOvertypedInfo(this._selectionIdx);o&&(i=o.value,r=o.multiline)}if(i&&r&&e.snippet){const o=this._model.getLineContent(this._selection.startLineNumber),s=Yi(o,0,this._selection.startColumn-1);let a=s;e.snippet.walk(u=>u===e?!1:(u instanceof al&&(a=Yi(Zg(u.value).pop())),!0));const l=yb(a,s);i=i.replace(/(\r\n|\r|\n)(.*)/g,(u,c,d)=>`${c}${a.substr(l)}${d}`)}return i}else{if(t==="TM_CURRENT_LINE")return this._model.getLineContent(this._selection.positionLineNumber);if(t==="TM_CURRENT_WORD"){const i=this._model.getWordAtPosition({lineNumber:this._selection.positionLineNumber,column:this._selection.positionColumn});return i&&i.word||void 0}else{if(t==="TM_LINE_INDEX")return String(this._selection.positionLineNumber-1);if(t==="TM_LINE_NUMBER")return String(this._selection.positionLineNumber);if(t==="CURSOR_INDEX")return String(this._selectionIdx);if(t==="CURSOR_NUMBER")return String(this._selectionIdx+1)}}}}class Sxe{constructor(e,t){this._labelService=e,this._model=t}resolve(e){const{name:t}=e;if(t==="TM_FILENAME")return _b(this._model.uri.fsPath);if(t==="TM_FILENAME_BASE"){const i=_b(this._model.uri.fsPath),r=i.lastIndexOf(".");return r<=0?i:i.slice(0,r)}else{if(t==="TM_DIRECTORY")return kbe(this._model.uri.fsPath)==="."?"":this._labelService.getUriLabel(oE(this._model.uri));if(t==="TM_FILEPATH")return this._labelService.getUriLabel(this._model.uri);if(t==="RELATIVE_FILEPATH")return this._labelService.getUriLabel(this._model.uri,{relative:!0,noPrefix:!0})}}}class xxe{constructor(e,t,i,r){this._readClipboardText=e,this._selectionIdx=t,this._selectionCount=i,this._spread=r}resolve(e){if(e.name!=="CLIPBOARD")return;const t=this._readClipboardText();if(t){if(this._spread){const i=t.split(/\r\n|\n|\r/).filter(r=>!vbe(r));if(i.length===this._selectionCount)return i[this._selectionIdx]}return t}}}let YR=class{constructor(e,t,i){this._model=e,this._selection=t,this._languageConfigurationService=i}resolve(e){const{name:t}=e,i=this._model.getLanguageIdAtPosition(this._selection.selectionStartLineNumber,this._selection.selectionStartColumn),r=this._languageConfigurationService.getLanguageConfiguration(i).comments;if(r){if(t==="LINE_COMMENT")return r.lineCommentToken||void 0;if(t==="BLOCK_COMMENT_START")return r.blockCommentStartToken||void 0;if(t==="BLOCK_COMMENT_END")return r.blockCommentEndToken||void 0}}};YR=sMt([aMt(2,$i)],YR);class Hh{constructor(){this._date=new Date}resolve(e){const{name:t}=e;if(t==="CURRENT_YEAR")return String(this._date.getFullYear());if(t==="CURRENT_YEAR_SHORT")return String(this._date.getFullYear()).slice(-2);if(t==="CURRENT_MONTH")return String(this._date.getMonth().valueOf()+1).padStart(2,"0");if(t==="CURRENT_DATE")return String(this._date.getDate().valueOf()).padStart(2,"0");if(t==="CURRENT_HOUR")return String(this._date.getHours().valueOf()).padStart(2,"0");if(t==="CURRENT_MINUTE")return String(this._date.getMinutes().valueOf()).padStart(2,"0");if(t==="CURRENT_SECOND")return String(this._date.getSeconds().valueOf()).padStart(2,"0");if(t==="CURRENT_DAY_NAME")return Hh.dayNames[this._date.getDay()];if(t==="CURRENT_DAY_NAME_SHORT")return Hh.dayNamesShort[this._date.getDay()];if(t==="CURRENT_MONTH_NAME")return Hh.monthNames[this._date.getMonth()];if(t==="CURRENT_MONTH_NAME_SHORT")return Hh.monthNamesShort[this._date.getMonth()];if(t==="CURRENT_SECONDS_UNIX")return String(Math.floor(this._date.getTime()/1e3));if(t==="CURRENT_TIMEZONE_OFFSET"){const i=this._date.getTimezoneOffset(),r=i>0?"-":"+",o=Math.trunc(Math.abs(i/60)),s=o<10?"0"+o:o,a=Math.abs(i)-o*60,l=a<10?"0"+a:a;return r+s+":"+l}}}Hh.dayNames=[x("Sunday","Sunday"),x("Monday","Monday"),x("Tuesday","Tuesday"),x("Wednesday","Wednesday"),x("Thursday","Thursday"),x("Friday","Friday"),x("Saturday","Saturday")],Hh.dayNamesShort=[x("SundayShort","Sun"),x("MondayShort","Mon"),x("TuesdayShort","Tue"),x("WednesdayShort","Wed"),x("ThursdayShort","Thu"),x("FridayShort","Fri"),x("SaturdayShort","Sat")],Hh.monthNames=[x("January","January"),x("February","February"),x("March","March"),x("April","April"),x("May","May"),x("June","June"),x("July","July"),x("August","August"),x("September","September"),x("October","October"),x("November","November"),x("December","December")],Hh.monthNamesShort=[x("JanuaryShort","Jan"),x("FebruaryShort","Feb"),x("MarchShort","Mar"),x("AprilShort","Apr"),x("MayShort","May"),x("JuneShort","Jun"),x("JulyShort","Jul"),x("AugustShort","Aug"),x("SeptemberShort","Sep"),x("OctoberShort","Oct"),x("NovemberShort","Nov"),x("DecemberShort","Dec")];class Lxe{constructor(e){this._workspaceService=e}resolve(e){if(!this._workspaceService)return;const t=EAt(this._workspaceService.getWorkspace());if(!MAt(t)){if(e.name==="WORKSPACE_NAME")return this._resolveWorkspaceName(t);if(e.name==="WORKSPACE_FOLDER")return this._resoveWorkspacePath(t)}}_resolveWorkspaceName(e){if(qK(e))return _b(e.uri.path);let t=_b(e.configPath.path);return t.endsWith(e8)&&(t=t.substr(0,t.length-e8.length-1)),t}_resoveWorkspacePath(e){if(qK(e))return yxe(e.uri.fsPath);const t=_b(e.configPath.path);let i=e.configPath.fsPath;return i.endsWith(t)&&(i=i.substr(0,i.length-t.length-1)),i?yxe(i):"/"}}class Fxe{resolve(e){const{name:t}=e;if(t==="RANDOM")return Math.random().toString().slice(-6);if(t==="RANDOM_HEX")return Math.random().toString(16).slice(-6);if(t==="UUID")return qE()}}var lMt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},uMt=function(n,e){return function(t,i){e(t,i,n)}},Uh;class Bc{constructor(e,t,i){this._editor=e,this._snippet=t,this._snippetLineLeadingWhitespace=i,this._offset=-1,this._nestingLevel=1,this._placeholderGroups=S0e(t.placeholders,Vc.compareByIndex),this._placeholderGroupsIdx=-1}initialize(e){this._offset=e.newPosition}dispose(){this._placeholderDecorations&&this._editor.removeDecorations([...this._placeholderDecorations.values()]),this._placeholderGroups.length=0}_initDecorations(){if(this._offset===-1)throw new Error("Snippet not initialized!");if(this._placeholderDecorations)return;this._placeholderDecorations=new Map;const e=this._editor.getModel();this._editor.changeDecorations(t=>{for(const i of this._snippet.placeholders){const r=this._snippet.offset(i),o=this._snippet.fullLen(i),s=K.fromPositions(e.getPositionAt(this._offset+r),e.getPositionAt(this._offset+r+o)),a=i.isFinalTabstop?Bc._decor.inactiveFinal:Bc._decor.inactive,l=t.addDecoration(s,a);this._placeholderDecorations.set(i,l)}})}move(e){if(!this._editor.hasModel())return[];if(this._initDecorations(),this._placeholderGroupsIdx>=0){const r=[];for(const o of this._placeholderGroups[this._placeholderGroupsIdx])if(o.transform){const s=this._placeholderDecorations.get(o),a=this._editor.getModel().getDecorationRange(s),l=this._editor.getModel().getValueInRange(a),u=o.transform.resolve(l).split(/\r\n|\r|\n/);for(let c=1;c0&&this._editor.executeEdits("snippet.placeholderTransform",r)}let t=!1;e===!0&&this._placeholderGroupsIdx0&&(this._placeholderGroupsIdx-=1,t=!0);const i=this._editor.getModel().changeDecorations(r=>{const o=new Set,s=[];for(const a of this._placeholderGroups[this._placeholderGroupsIdx]){const l=this._placeholderDecorations.get(a),u=this._editor.getModel().getDecorationRange(l);s.push(new Gt(u.startLineNumber,u.startColumn,u.endLineNumber,u.endColumn)),t=t&&this._hasPlaceholderBeenCollapsed(a),r.changeDecorationOptions(l,a.isFinalTabstop?Bc._decor.activeFinal:Bc._decor.active),o.add(a);for(const c of this._snippet.enclosingPlaceholders(a)){const d=this._placeholderDecorations.get(c);r.changeDecorationOptions(d,c.isFinalTabstop?Bc._decor.activeFinal:Bc._decor.active),o.add(c)}}for(const[a,l]of this._placeholderDecorations)o.has(a)||r.changeDecorationOptions(l,a.isFinalTabstop?Bc._decor.inactiveFinal:Bc._decor.inactive);return s});return t?this.move(e):i??[]}_hasPlaceholderBeenCollapsed(e){let t=e;for(;t;){if(t instanceof Vc){const i=this._placeholderDecorations.get(t);if(this._editor.getModel().getDecorationRange(i).isEmpty()&&t.toString().length>0)return!0}t=t.parent}return!1}get isAtFirstPlaceholder(){return this._placeholderGroupsIdx<=0||this._placeholderGroups.length===0}get isAtLastPlaceholder(){return this._placeholderGroupsIdx===this._placeholderGroups.length-1}get hasPlaceholder(){return this._snippet.placeholders.length>0}get isTrivialSnippet(){if(this._snippet.placeholders.length===0)return!0;if(this._snippet.placeholders.length===1){const[e]=this._snippet.placeholders;if(e.isFinalTabstop&&this._snippet.rightMostDescendant===e)return!0}return!1}computePossibleSelections(){const e=new Map;for(const t of this._placeholderGroups){let i;for(const r of t){if(r.isFinalTabstop)break;i||(i=[],e.set(r.index,i));const o=this._placeholderDecorations.get(r),s=this._editor.getModel().getDecorationRange(o);if(!s){e.delete(r.index);break}i.push(s)}}return e}get activeChoice(){if(!this._placeholderDecorations)return;const e=this._placeholderGroups[this._placeholderGroupsIdx][0];if(!(e!=null&&e.choice))return;const t=this._placeholderDecorations.get(e);if(!t)return;const i=this._editor.getModel().getDecorationRange(t);if(i)return{range:i,choice:e.choice}}get hasChoice(){let e=!1;return this._snippet.walk(t=>(e=t instanceof hw,!e)),e}merge(e){const t=this._editor.getModel();this._nestingLevel*=10,this._editor.changeDecorations(i=>{for(const r of this._placeholderGroups[this._placeholderGroupsIdx]){const o=e.shift(),s=o._snippet.placeholderInfo.last.index;for(const l of o._snippet.placeholderInfo.all)l.isFinalTabstop?l.index=r.index+(s+1)/this._nestingLevel:l.index=r.index+l.index/this._nestingLevel;this._snippet.replace(r,o._snippet.children);const a=this._placeholderDecorations.get(r);i.removeDecoration(a),this._placeholderDecorations.delete(r);for(const l of o._snippet.placeholders){const u=o._snippet.offset(l),c=o._snippet.fullLen(l),d=K.fromPositions(t.getPositionAt(o._offset+u),t.getPositionAt(o._offset+u+c)),h=i.addDecoration(d,Bc._decor.inactive);this._placeholderDecorations.set(l,h)}}this._placeholderGroups=S0e(this._snippet.placeholders,Vc.compareByIndex)})}}Bc._decor={active:In.register({description:"snippet-placeholder-1",stickiness:0,className:"snippet-placeholder"}),inactive:In.register({description:"snippet-placeholder-2",stickiness:1,className:"snippet-placeholder"}),activeFinal:In.register({description:"snippet-placeholder-3",stickiness:1,className:"finish-snippet-placeholder"}),inactiveFinal:In.register({description:"snippet-placeholder-4",stickiness:1,className:"finish-snippet-placeholder"})};const _xe={overwriteBefore:0,overwriteAfter:0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let HR=Uh=class{static adjustWhitespace(e,t,i,r,o){const s=e.getLineContent(t.lineNumber),a=Yi(s,0,t.column-1);let l;return r.walk(u=>{if(!(u instanceof al)||u.parent instanceof hw||o&&!o.has(u))return!0;const c=u.value.split(/\r\n|\r|\n/);if(i){const h=r.offset(u);if(h===0)c[0]=e.normalizeIndentation(c[0]);else{l=l??r.toString();const g=l.charCodeAt(h-1);(g===10||g===13)&&(c[0]=e.normalizeIndentation(a+c[0]))}for(let g=1;gS.get(Gv)),m=e.invokeWithinContext(S=>new Sxe(S.get(_w),h)),f=()=>a,b=h.getValueInRange(Uh.adjustSelection(h,e.getSelection(),i,0)),C=h.getValueInRange(Uh.adjustSelection(h,e.getSelection(),0,r)),v=h.getLineFirstNonWhitespaceColumn(e.getSelection().positionLineNumber),w=e.getSelections().map((S,F)=>({selection:S,idx:F})).sort((S,F)=>K.compareRangesUsingStarts(S.selection,F.selection));for(const{selection:S,idx:F}of w){let L=Uh.adjustSelection(h,S,i,0),D=Uh.adjustSelection(h,S,0,r);b!==h.getValueInRange(L)&&(L=S),C!==h.getValueInRange(D)&&(D=S);const A=S.setStartPosition(L.startLineNumber,L.startColumn).setEndPosition(D.endLineNumber,D.endColumn),M=new Cv().parse(t,!0,o),W=A.getStartPosition(),Z=Uh.adjustWhitespace(h,W,s||F>0&&v!==h.getLineFirstNonWhitespaceColumn(S.positionLineNumber),M);M.resolveVariables(new Ixe([m,new xxe(f,F,w.length,e.getOption(79)==="spread"),new wxe(h,S,F,l),new YR(h,S,u),new Hh,new Lxe(g),new Fxe])),c[F]=vr.replace(A,M.toString()),c[F].identifier={major:F,minor:0},c[F]._isTracked=!0,d[F]=new Bc(e,M,Z)}return{edits:c,snippets:d}}static createEditsAndSnippetsFromEdits(e,t,i,r,o,s,a){if(!e.hasModel()||t.length===0)return{edits:[],snippets:[]};const l=[],u=e.getModel(),c=new Cv,d=new ND,h=new Ixe([e.invokeWithinContext(m=>new Sxe(m.get(_w),u)),new xxe(()=>o,0,e.getSelections().length,e.getOption(79)==="spread"),new wxe(u,e.getSelection(),0,s),new YR(u,e.getSelection(),a),new Hh,new Lxe(e.invokeWithinContext(m=>m.get(Gv))),new Fxe]);t=t.sort((m,f)=>K.compareRangesUsingStarts(m.range,f.range));let g=0;for(let m=0;m0){const F=t[m-1].range,L=K.fromPositions(F.getEndPosition(),f.getStartPosition()),D=new al(u.getValueInRange(L));d.appendChild(D),g+=D.value.length}const C=c.parseFragment(b,d);Uh.adjustWhitespace(u,f.getStartPosition(),!0,d,new Set(C)),d.resolveVariables(h);const v=d.toString(),w=v.slice(g);g=v.length;const S=vr.replace(f,w);S.identifier={major:m,minor:0},S._isTracked=!0,l.push(S)}return c.ensureFinalTabstop(d,i,!0),{edits:l,snippets:[new Bc(e,d,"")]}}constructor(e,t,i=_xe,r){this._editor=e,this._template=t,this._options=i,this._languageConfigurationService=r,this._templateMerges=[],this._snippets=[]}dispose(){Mi(this._snippets)}_logInfo(){return`template="${this._template}", merged_templates="${this._templateMerges.join(" -> ")}"`}insert(){if(!this._editor.hasModel())return;const{edits:e,snippets:t}=typeof this._template=="string"?Uh.createEditsAndSnippetsFromSelections(this._editor,this._template,this._options.overwriteBefore,this._options.overwriteAfter,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService):Uh.createEditsAndSnippetsFromEdits(this._editor,this._template,!1,this._options.adjustWhitespace,this._options.clipboardText,this._options.overtypingCapturer,this._languageConfigurationService);this._snippets=t,this._editor.executeEdits("snippet",e,i=>{const r=i.filter(o=>!!o.identifier);for(let o=0;oGt.fromPositions(o.range.getEndPosition()))}),this._editor.revealRange(this._editor.getSelections()[0])}merge(e,t=_xe){if(!this._editor.hasModel())return;this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,e]);const{edits:i,snippets:r}=Uh.createEditsAndSnippetsFromSelections(this._editor,e,t.overwriteBefore,t.overwriteAfter,!0,t.adjustWhitespace,t.clipboardText,t.overtypingCapturer,this._languageConfigurationService);this._editor.executeEdits("snippet",i,o=>{const s=o.filter(l=>!!l.identifier);for(let l=0;lGt.fromPositions(l.range.getEndPosition()))})}next(){const e=this._move(!0);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}prev(){const e=this._move(!1);this._editor.setSelections(e),this._editor.revealPositionInCenterIfOutsideViewport(e[0].getPosition())}_move(e){const t=[];for(const i of this._snippets){const r=i.move(e);t.push(...r)}return t}get isAtFirstPlaceholder(){return this._snippets[0].isAtFirstPlaceholder}get isAtLastPlaceholder(){return this._snippets[0].isAtLastPlaceholder}get hasPlaceholder(){return this._snippets[0].hasPlaceholder}get hasChoice(){return this._snippets[0].hasChoice}get activeChoice(){return this._snippets[0].activeChoice}isSelectionWithinPlaceholders(){if(!this.hasPlaceholder)return!1;const e=this._editor.getSelections();if(e.length{o.push(...r.get(s))})}e.sort(K.compareRangesUsingStarts);for(const[i,r]of t){if(r.length!==e.length){t.delete(i);continue}r.sort(K.compareRangesUsingStarts);for(let o=0;o0}};HR=Uh=lMt([uMt(3,$i)],HR);var cMt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},UR=function(n,e){return function(t,i){e(t,i,n)}},Hw;const Dxe={overwriteBefore:0,overwriteAfter:0,undoStopBefore:!0,undoStopAfter:!0,adjustWhitespace:!0,clipboardText:void 0,overtypingCapturer:void 0};let Ns=Hw=class{static get(e){return e.getContribution(Hw.ID)}constructor(e,t,i,r,o){this._editor=e,this._logService=t,this._languageFeaturesService=i,this._languageConfigurationService=o,this._snippetListener=new je,this._modelVersionId=-1,this._inSnippet=Hw.InSnippetMode.bindTo(r),this._hasNextTabstop=Hw.HasNextTabstop.bindTo(r),this._hasPrevTabstop=Hw.HasPrevTabstop.bindTo(r)}dispose(){var e;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),(e=this._session)===null||e===void 0||e.dispose(),this._snippetListener.dispose()}insert(e,t){try{this._doInsert(e,typeof t>"u"?Dxe:{...Dxe,...t})}catch(i){this.cancel(),this._logService.error(i),this._logService.error("snippet_error"),this._logService.error("insert_template=",e),this._logService.error("existing_template=",this._session?this._session._logInfo():"")}}_doInsert(e,t){var i;if(this._editor.hasModel()){if(this._snippetListener.clear(),t.undoStopBefore&&this._editor.getModel().pushStackElement(),this._session&&typeof e!="string"&&this.cancel(),this._session?(Ci(typeof e=="string"),this._session.merge(e,t)):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new HR(this._editor,e,t,this._languageConfigurationService),this._session.insert()),t.undoStopAfter&&this._editor.getModel().pushStackElement(),!((i=this._session)===null||i===void 0)&&i.hasChoice){const r={_debugDisplayName:"snippetChoiceCompletions",provideCompletionItems:(c,d)=>{if(!this._session||c!==this._editor.getModel()||!ve.equals(this._editor.getPosition(),d))return;const{activeChoice:h}=this._session;if(!h||h.choice.options.length===0)return;const g=c.getValueInRange(h.range),m=!!h.choice.options.find(b=>b.value===g),f=[];for(let b=0;b{s==null||s.dispose(),a=!1},u=()=>{a||(s=this._languageFeaturesService.completionProvider.register({language:o.getLanguageId(),pattern:o.uri.fsPath,scheme:o.uri.scheme,exclusive:!0},r),this._snippetListener.add(s),a=!0)};this._choiceCompletions={provider:r,enable:u,disable:l}}this._updateState(),this._snippetListener.add(this._editor.onDidChangeModelContent(r=>r.isFlush&&this.cancel())),this._snippetListener.add(this._editor.onDidChangeModel(()=>this.cancel())),this._snippetListener.add(this._editor.onDidChangeCursorSelection(()=>this._updateState()))}}_updateState(){if(!(!this._session||!this._editor.hasModel())){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this._editor.getModel().pushStackElement(),this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}}_handleChoice(){var e;if(!this._session||!this._editor.hasModel()){this._currentChoice=void 0;return}const{activeChoice:t}=this._session;if(!t||!this._choiceCompletions){(e=this._choiceCompletions)===null||e===void 0||e.disable(),this._currentChoice=void 0;return}this._currentChoice!==t.choice&&(this._currentChoice=t.choice,this._choiceCompletions.enable(),queueMicrotask(()=>{oMt(this._editor,this._choiceCompletions.provider)}))}finish(){for(;this._inSnippet.get();)this.next()}cancel(e=!1){var t;this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),this._snippetListener.clear(),this._currentChoice=void 0,(t=this._session)===null||t===void 0||t.dispose(),this._session=void 0,this._modelVersionId=-1,e&&this._editor.setSelections([this._editor.getSelection()])}prev(){var e;(e=this._session)===null||e===void 0||e.prev(),this._updateState()}next(){var e;(e=this._session)===null||e===void 0||e.next(),this._updateState()}isInSnippet(){return!!this._inSnippet.get()}};Ns.ID="snippetController2",Ns.InSnippetMode=new It("inSnippetMode",!1,x("inSnippetMode","Whether the editor in current in snippet mode")),Ns.HasNextTabstop=new It("hasNextTabstop",!1,x("hasNextTabstop","Whether there is a next tab stop when in snippet mode")),Ns.HasPrevTabstop=new It("hasPrevTabstop",!1,x("hasPrevTabstop","Whether there is a previous tab stop when in snippet mode")),Ns=Hw=cMt([UR(1,Qa),UR(2,Tt),UR(3,ln),UR(4,$i)],Ns),Ii(Ns.ID,Ns,4);const JR=cs.bindToContribution(Ns.get);mt(new JR({id:"jumpToNextSnippetPlaceholder",precondition:Be.and(Ns.InSnippetMode,Ns.HasNextTabstop),handler:n=>n.next(),kbOpts:{weight:130,kbExpr:ne.editorTextFocus,primary:2}})),mt(new JR({id:"jumpToPrevSnippetPlaceholder",precondition:Be.and(Ns.InSnippetMode,Ns.HasPrevTabstop),handler:n=>n.prev(),kbOpts:{weight:130,kbExpr:ne.editorTextFocus,primary:1026}})),mt(new JR({id:"leaveSnippet",precondition:Ns.InSnippetMode,handler:n=>n.cancel(!0),kbOpts:{weight:130,kbExpr:ne.editorTextFocus,primary:9,secondary:[1033]}})),mt(new JR({id:"acceptSnippet",precondition:Ns.InSnippetMode,handler:n=>n.finish()}));var dMt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},T8=function(n,e){return function(t,i){e(t,i,n)}},Ku;(function(n){n[n.Undo=0]="Undo",n[n.Redo=1]="Redo",n[n.AcceptWord=2]="AcceptWord",n[n.Other=3]="Other"})(Ku||(Ku={}));let E8=class extends De{get isAcceptingPartially(){return this._isAcceptingPartially}constructor(e,t,i,r,o,s,a,l,u,c,d,h){super(),this.textModel=e,this.selectedSuggestItem=t,this.textModelVersionId=i,this._positions=r,this._debounceValue=o,this._suggestPreviewEnabled=s,this._suggestPreviewMode=a,this._inlineSuggestMode=l,this._enabled=u,this._instantiationService=c,this._commandService=d,this._languageConfigurationService=h,this._source=this._register(this._instantiationService.createInstance(k8,this.textModel,this.textModelVersionId,this._debounceValue)),this._isActive=ci(this,!1),this._forceUpdateSignal=m7("forceUpdate"),this._selectedInlineCompletionId=ci(this,void 0),this._primaryPosition=gn(this,m=>{var f;return(f=this._positions.read(m)[0])!==null&&f!==void 0?f:new ve(1,1)}),this._isAcceptingPartially=!1,this._preserveCurrentCompletionReasons=new Set([Ku.Redo,Ku.Undo,Ku.AcceptWord]),this._fetchInlineCompletions=l2t({owner:this,createEmptyChangeSummary:()=>({preserveCurrentCompletion:!1,inlineCompletionTriggerKind:Wf.Automatic}),handleChange:(m,f)=>(m.didChange(this.textModelVersionId)&&this._preserveCurrentCompletionReasons.has(m.change)?f.preserveCurrentCompletion=!0:m.didChange(this._forceUpdateSignal)&&(f.inlineCompletionTriggerKind=m.change),!0)},(m,f)=>{if(this._forceUpdateSignal.read(m),!(this._enabled.read(m)&&this.selectedSuggestItem.read(m)||this._isActive.read(m))){this._source.cancelUpdate();return}this.textModelVersionId.read(m);const C=this.selectedInlineCompletion.get(),v=f.preserveCurrentCompletion||C!=null&&C.forwardStable?C:void 0,w=this._source.suggestWidgetInlineCompletions.get(),S=this.selectedSuggestItem.read(m);if(w&&!S){const D=this._source.inlineCompletions.get();rr(A=>{(!D||w.request.versionId>D.request.versionId)&&this._source.inlineCompletions.set(w.clone(),A),this._source.clearSuggestWidgetInlineCompletions(A)})}const F=this._primaryPosition.read(m),L={triggerKind:f.inlineCompletionTriggerKind,selectedSuggestionInfo:S==null?void 0:S.toSelectedSuggestionInfo()};return this._source.fetch(F,L,v)}),this._filteredInlineCompletionItems=gn(this,m=>{const f=this._source.inlineCompletions.read(m);if(!f)return[];const b=this._primaryPosition.read(m);return f.inlineCompletions.filter(v=>v.isVisible(this.textModel,b,m))}),this.selectedInlineCompletionIndex=gn(this,m=>{const f=this._selectedInlineCompletionId.read(m),b=this._filteredInlineCompletionItems.read(m),C=this._selectedInlineCompletionId===void 0?-1:b.findIndex(v=>v.semanticId===f);return C===-1?(this._selectedInlineCompletionId.set(void 0,void 0),0):C}),this.selectedInlineCompletion=gn(this,m=>{const f=this._filteredInlineCompletionItems.read(m),b=this.selectedInlineCompletionIndex.read(m);return f[b]}),this.lastTriggerKind=this._source.inlineCompletions.map(this,m=>m==null?void 0:m.request.context.triggerKind),this.inlineCompletionsCount=gn(this,m=>{if(this.lastTriggerKind.read(m)===Wf.Explicit)return this._filteredInlineCompletionItems.read(m).length}),this.state=q2({owner:this,equalityComparer:(m,f)=>!m||!f?m===f:uxe(m.ghostTexts,f.ghostTexts)&&m.inlineCompletion===f.inlineCompletion&&m.suggestItem===f.suggestItem},m=>{var f,b;const C=this.textModel,v=this.selectedSuggestItem.read(m);if(v){const w=v.toSingleTextEdit().removeCommonPrefix(C),S=this._computeAugmentation(w,m);if(!this._suggestPreviewEnabled.read(m)&&!S)return;const L=(f=S==null?void 0:S.edit)!==null&&f!==void 0?f:w,D=S?S.edit.text.length-w.text.length:0,A=this._suggestPreviewMode.read(m),M=this._positions.read(m),W=[L,...W8(this.textModel,M,L)],Z=W.map((E,V)=>E.computeGhostText(C,A,M[V],D)).filter(_g),T=(b=Z[0])!==null&&b!==void 0?b:new xA(L.range.endLineNumber,[]);return{edits:W,primaryGhostText:T,ghostTexts:Z,inlineCompletion:S==null?void 0:S.completion,suggestItem:v}}else{if(!this._isActive.read(m))return;const w=this.selectedInlineCompletion.read(m);if(!w)return;const S=w.toSingleTextEdit(m),F=this._inlineSuggestMode.read(m),L=this._positions.read(m),D=[S,...W8(this.textModel,L,S)],A=D.map((M,W)=>M.computeGhostText(C,F,L[W],0)).filter(_g);return A[0]?{edits:D,primaryGhostText:A[0],ghostTexts:A,inlineCompletion:w,suggestItem:void 0}:void 0}}),this.ghostTexts=q2({owner:this,equalityComparer:uxe},m=>{const f=this.state.read(m);if(f)return f.ghostTexts}),this.primaryGhostText=q2({owner:this,equalityComparer:cxe},m=>{const f=this.state.read(m);if(f)return f==null?void 0:f.primaryGhostText}),this._register(gD(this._fetchInlineCompletions));let g;this._register(Jn(m=>{var f,b;const C=this.state.read(m),v=C==null?void 0:C.inlineCompletion;if((v==null?void 0:v.semanticId)!==(g==null?void 0:g.semanticId)&&(g=v,v)){const w=v.inlineCompletion,S=w.source;(b=(f=S.provider).handleItemDidShow)===null||b===void 0||b.call(f,S.inlineCompletions,w.sourceInlineCompletion,w.insertText)}}))}async trigger(e){this._isActive.set(!0,e),await this._fetchInlineCompletions.get()}async triggerExplicitly(e){cD(e,t=>{this._isActive.set(!0,t),this._forceUpdateSignal.trigger(t,Wf.Explicit)}),await this._fetchInlineCompletions.get()}stop(e){cD(e,t=>{this._isActive.set(!1,t),this._source.clear(t)})}_computeAugmentation(e,t){const i=this.textModel,r=this._source.suggestWidgetInlineCompletions.read(t),o=r?r.inlineCompletions:[this.selectedInlineCompletion.read(t)].filter(_g);return FCt(o,a=>{let l=a.toSingleTextEdit(t);return l=l.removeCommonPrefix(i,K.fromPositions(l.range.getStartPosition(),e.range.getEndPosition())),l.augments(e)?{completion:a,edit:l}:void 0})}async _deltaSelectedInlineCompletionIndex(e){await this.triggerExplicitly();const t=this._filteredInlineCompletionItems.get()||[];if(t.length>0){const i=(this.selectedInlineCompletionIndex.get()+e+t.length)%t.length;this._selectedInlineCompletionId.set(t[i].semanticId,void 0)}else this._selectedInlineCompletionId.set(void 0,void 0)}async next(){await this._deltaSelectedInlineCompletionIndex(1)}async previous(){await this._deltaSelectedInlineCompletionIndex(-1)}async accept(e){var t;if(e.getModel()!==this.textModel)throw new br;const i=this.state.get();if(!i||i.primaryGhostText.isEmpty()||!i.inlineCompletion)return;const r=i.inlineCompletion.toInlineCompletion(void 0);if(e.pushUndoStop(),r.snippetInfo)e.executeEdits("inlineSuggestion.accept",[vr.replaceMove(r.range,""),...r.additionalTextEdits]),e.setPosition(r.snippetInfo.range.getStartPosition(),"inlineCompletionAccept"),(t=Ns.get(e))===null||t===void 0||t.insert(r.snippetInfo.snippet,{undoStopBefore:!1});else{const o=i.edits,s=Axe(o).map(a=>Gt.fromPositions(a));e.executeEdits("inlineSuggestion.accept",[...o.map(a=>vr.replaceMove(a.range,a.text)),...r.additionalTextEdits]),e.setSelections(s,"inlineCompletionAccept")}r.command&&r.source.addRef(),rr(o=>{this._source.clear(o),this._isActive.set(!1,o)}),r.command&&(await this._commandService.executeCommand(r.command.id,...r.command.arguments||[]).then(void 0,wo),r.source.removeRef())}async acceptNextWord(e){await this._acceptNext(e,(t,i)=>{const r=this.textModel.getLanguageIdAtPosition(t.lineNumber,t.column),o=this._languageConfigurationService.getLanguageConfiguration(r),s=new RegExp(o.wordDefinition.source,o.wordDefinition.flags.replace("g","")),a=i.match(s);let l=0;a&&a.index!==void 0?a.index===0?l=a[0].length:l=a.index:l=i.length;const c=/\s+/g.exec(i);return c&&c.index!==void 0&&c.index+c[0].length{const r=i.match(/\n/);return r&&r.index!==void 0?r.index+1:i.length})}async _acceptNext(e,t){if(e.getModel()!==this.textModel)throw new br;const i=this.state.get();if(!i||i.primaryGhostText.isEmpty()||!i.inlineCompletion)return;const r=i.primaryGhostText,o=i.inlineCompletion.toInlineCompletion(void 0);if(o.snippetInfo||o.filterText!==o.insertText){await this.accept(e);return}const s=r.parts[0],a=new ve(r.lineNumber,s.column),l=s.text,u=t(a,l);if(u===l.length&&r.parts.length===1){this.accept(e);return}const c=l.substring(0,u),d=this._positions.get(),h=d[0];o.source.addRef();try{this._isAcceptingPartially=!0;try{e.pushUndoStop();const g=K.fromPositions(h,a),m=e.getModel().getValueInRange(g)+c,f=new M0(g,m),b=[f,...W8(this.textModel,d,f)],C=Axe(b).map(v=>Gt.fromPositions(v));e.executeEdits("inlineSuggestion.accept",b.map(v=>vr.replaceMove(v.range,v.text))),e.setSelections(C,"inlineCompletionPartialAccept")}finally{this._isAcceptingPartially=!1}if(o.source.provider.handlePartialAccept){const g=K.fromPositions(o.range.getStartPosition(),XR(a,D8(c))),m=e.getModel().getValueInRange(g,1);o.source.provider.handlePartialAccept(o.source.inlineCompletions,o.sourceInlineCompletion,m.length)}}finally{o.source.removeRef()}}handleSuggestAccepted(e){var t,i;const r=e.toSingleTextEdit().removeCommonPrefix(this.textModel),o=this._computeAugmentation(r,void 0);if(!o)return;const s=o.completion.inlineCompletion;(i=(t=s.source.provider).handlePartialAccept)===null||i===void 0||i.call(t,s.source.inlineCompletions,s.sourceInlineCompletion,r.text.length)}};E8=dMt([T8(9,tn),T8(10,Vr),T8(11,$i)],E8);function W8(n,e,t){if(e.length===1)return[];const i=e[0],r=e.slice(1),o=t.range.getStartPosition(),s=t.range.getEndPosition(),a=n.getValueInRange(K.fromPositions(i,s)),l=lxe(i,o);if(l.lineNumber<1)return fn(new br(`positionWithinTextEdit line number should be bigger than 0. + Invalid subtraction between ${i.toString()} and ${o.toString()}`)),[];const u=hMt(t.text,l);return r.map(c=>{const d=XR(lxe(c,o),s),h=n.getValueInRange(K.fromPositions(c,d)),g=yb(a,h),m=K.fromPositions(c,c.delta(0,g));return new M0(m,u)})}function hMt(n,e){let t="";const i=zht(n);for(let r=e.lineNumber-1;rK.compareRangesUsingStarts(r.range,o.range)),t=Tkt(e.apply(n));return e.inverse().apply(t).map(r=>r.getEndPosition())}var gMt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Nxe=function(n,e){return function(t,i){e(t,i,n)}},FA;class R8{constructor(e){this.name=e}select(e,t,i){if(i.length===0)return 0;const r=i[0].score[0];for(let o=0;ol&&d.type===i[u].completion.kind&&d.insertText===i[u].completion.insertText&&(l=d.touch,a=u),i[u].completion.preselect&&s===-1)return s=u}return a!==-1?a:s!==-1?s:0}toJSON(){return this._cache.toJSON()}fromJSON(e){this._cache.clear();const t=0;for(const[i,r]of e)r.touch=t,r.type=typeof r.type=="number"?r.type:I_.fromString(r.type),this._cache.set(i,r);this._seq=this._cache.size}}class fMt extends R8{constructor(){super("recentlyUsedByPrefix"),this._trie=Tw.forStrings(),this._seq=0}memorize(e,t,i){const{word:r}=e.getWordUntilPosition(t),o=`${e.getLanguageId()}/${r}`;this._trie.set(o,{type:i.completion.kind,insertText:i.completion.insertText,touch:this._seq++})}select(e,t,i){const{word:r}=e.getWordUntilPosition(t);if(!r)return super.select(e,t,i);const o=`${e.getLanguageId()}/${r}`;let s=this._trie.get(o);if(s||(s=this._trie.findSubstr(o)),s)for(let a=0;ae.push([i,t])),e.sort((t,i)=>-(t[1].touch-i[1].touch)).forEach((t,i)=>t[1].touch=i),e.slice(0,200)}fromJSON(e){if(this._trie.clear(),e.length>0){this._seq=e[0][1].touch+1;for(const[t,i]of e)i.type=typeof i.type=="number"?i.type:I_.fromString(i.type),this._trie.set(t,i)}}}let _A=FA=class{constructor(e,t){this._storageService=e,this._configService=t,this._disposables=new je,this._persistSoon=new Vi(()=>this._saveState(),500),this._disposables.add(e.onWillSaveState(i=>{i.reason===CW.SHUTDOWN&&this._saveState()}))}dispose(){this._disposables.dispose(),this._persistSoon.dispose()}memorize(e,t,i){this._withStrategy(e,t).memorize(e,t,i),this._persistSoon.schedule()}select(e,t,i){return this._withStrategy(e,t).select(e,t,i)}_withStrategy(e,t){var i;const r=this._configService.getValue("editor.suggestSelection",{overrideIdentifier:e.getLanguageIdAtPosition(t.lineNumber,t.column),resource:e.uri});if(((i=this._strategy)===null||i===void 0?void 0:i.name)!==r){this._saveState();const o=FA._strategyCtors.get(r)||kxe;this._strategy=new o;try{const a=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,l=this._storageService.get(`${FA._storagePrefix}/${r}`,a);l&&this._strategy.fromJSON(JSON.parse(l))}catch{}}return this._strategy}_saveState(){if(this._strategy){const t=this._configService.getValue("editor.suggest.shareSuggestSelections")?0:1,i=JSON.stringify(this._strategy);this._storageService.store(`${FA._storagePrefix}/${this._strategy.name}`,i,t,1)}}};_A._strategyCtors=new Map([["recentlyUsedByPrefix",fMt],["recentlyUsed",mMt],["first",kxe]]),_A._storagePrefix="suggest/memories",_A=FA=gMt([Nxe(0,bm),Nxe(1,Xn)],_A);const KR=Un("ISuggestMemories");ti(KR,_A,1);var pMt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},bMt=function(n,e){return function(t,i){e(t,i,n)}},G8;let DA=G8=class{constructor(e,t){this._editor=e,this._enabled=!1,this._ckAtEnd=G8.AtEnd.bindTo(t),this._configListener=this._editor.onDidChangeConfiguration(i=>i.hasChanged(123)&&this._update()),this._update()}dispose(){var e;this._configListener.dispose(),(e=this._selectionListener)===null||e===void 0||e.dispose(),this._ckAtEnd.reset()}_update(){const e=this._editor.getOption(123)==="on";if(this._enabled!==e)if(this._enabled=e,this._enabled){const t=()=>{if(!this._editor.hasModel()){this._ckAtEnd.set(!1);return}const i=this._editor.getModel(),r=this._editor.getSelection(),o=i.getWordAtPosition(r.getStartPosition());if(!o){this._ckAtEnd.set(!1);return}this._ckAtEnd.set(o.endColumn===r.getStartPosition().column)};this._selectionListener=this._editor.onDidChangeCursorSelection(t),t()}else this._selectionListener&&(this._ckAtEnd.reset(),this._selectionListener.dispose(),this._selectionListener=void 0)}};DA.AtEnd=new It("atEndOfWord",!1),DA=G8=pMt([bMt(1,ln)],DA);var CMt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},vMt=function(n,e){return function(t,i){e(t,i,n)}},AA;let zv=AA=class{constructor(e,t){this._editor=e,this._index=0,this._ckOtherSuggestions=AA.OtherSuggestions.bindTo(t)}dispose(){this.reset()}reset(){var e;this._ckOtherSuggestions.reset(),(e=this._listener)===null||e===void 0||e.dispose(),this._model=void 0,this._acceptNext=void 0,this._ignore=!1}set({model:e,index:t},i){if(e.items.length===0){this.reset();return}if(AA._moveIndex(!0,e,t)===t){this.reset();return}this._acceptNext=i,this._model=e,this._index=t,this._listener=this._editor.onDidChangeCursorPosition(()=>{this._ignore||this.reset()}),this._ckOtherSuggestions.set(!0)}static _moveIndex(e,t,i){let r=i;for(let o=t.items.length;o>0&&(r=(r+t.items.length+(e?1:-1))%t.items.length,!(r===i||!t.items[r].completion.additionalTextEdits));o--);return r}next(){this._move(!0)}prev(){this._move(!1)}_move(e){if(this._model)try{this._ignore=!0,this._index=AA._moveIndex(e,this._model,this._index),this._acceptNext({index:this._index,item:this._model.items[this._index],model:this._model})}finally{this._ignore=!1}}};zv.OtherSuggestions=new It("hasOtherSuggestions",!1),zv=AA=CMt([vMt(1,ln)],zv);class yMt{constructor(e,t,i,r){this._disposables=new je,this._disposables.add(i.onDidSuggest(o=>{o.completionModel.items.length===0&&this.reset()})),this._disposables.add(i.onDidCancel(o=>{this.reset()})),this._disposables.add(t.onDidShow(()=>this._onItem(t.getFocusedItem()))),this._disposables.add(t.onDidFocus(this._onItem,this)),this._disposables.add(t.onDidHide(this.reset,this)),this._disposables.add(e.onWillType(o=>{if(this._active&&!t.isFrozen()&&i.state!==0){const s=o.charCodeAt(o.length-1);this._active.acceptCharacters.has(s)&&e.getOption(0)&&r(this._active.item)}}))}_onItem(e){if(!e||!da(e.item.completion.commitCharacters)){this.reset();return}if(this._active&&this._active.item.item===e.item)return;const t=new j5;for(const i of e.item.completion.commitCharacters)i.length>0&&t.add(i.charCodeAt(0));this._active={acceptCharacters:t,item:e}}reset(){this._active=void 0}dispose(){this._disposables.dispose()}}class ju{async provideSelectionRanges(e,t){const i=[];for(const r of t){const o=[];i.push(o);const s=new Map;await new Promise(a=>ju._bracketsRightYield(a,0,e,r,s)),await new Promise(a=>ju._bracketsLeftYield(a,0,e,r,s,o))}return i}static _bracketsRightYield(e,t,i,r,o){const s=new Map,a=Date.now();for(;;){if(t>=ju._maxRounds){e();break}if(!r){e();break}const l=i.bracketPairs.findNextBracket(r);if(!l){e();break}if(Date.now()-a>ju._maxDuration){setTimeout(()=>ju._bracketsRightYield(e,t+1,i,r,o));break}if(l.bracketInfo.isOpeningBracket){const c=l.bracketInfo.bracketText,d=s.has(c)?s.get(c):0;s.set(c,d+1)}else{const c=l.bracketInfo.getOpeningBrackets()[0].bracketText;let d=s.has(c)?s.get(c):0;if(d-=1,s.set(c,Math.max(0,d)),d<0){let h=o.get(c);h||(h=new Ua,o.set(c,h)),h.push(l.range)}}r=l.range.getEndPosition()}}static _bracketsLeftYield(e,t,i,r,o,s){const a=new Map,l=Date.now();for(;;){if(t>=ju._maxRounds&&o.size===0){e();break}if(!r){e();break}const u=i.bracketPairs.findPrevBracket(r);if(!u){e();break}if(Date.now()-l>ju._maxDuration){setTimeout(()=>ju._bracketsLeftYield(e,t+1,i,r,o,s));break}if(u.bracketInfo.isOpeningBracket){const d=u.bracketInfo.bracketText;let h=a.has(d)?a.get(d):0;if(h-=1,a.set(d,Math.max(0,h)),h<0){const g=o.get(d);if(g){const m=g.shift();g.size===0&&o.delete(d);const f=K.fromPositions(u.range.getEndPosition(),m.getStartPosition()),b=K.fromPositions(u.range.getStartPosition(),m.getEndPosition());s.push({range:f}),s.push({range:b}),ju._addBracketLeading(i,b,s)}}}else{const d=u.bracketInfo.getOpeningBrackets()[0].bracketText,h=a.has(d)?a.get(d):0;a.set(d,h+1)}r=u.range.getStartPosition()}}static _addBracketLeading(e,t,i){if(t.startLineNumber===t.endLineNumber)return;const r=t.startLineNumber,o=e.getLineFirstNonWhitespaceColumn(r);o!==0&&o!==t.startColumn&&(i.push({range:K.fromPositions(new ve(r,o),t.getEndPosition())}),i.push({range:K.fromPositions(new ve(r,1),t.getEndPosition())}));const s=r-1;if(s>0){const a=e.getLineFirstNonWhitespaceColumn(s);a===t.startColumn&&a!==e.getLineLastNonWhitespaceColumn(s)&&(i.push({range:K.fromPositions(new ve(s,a),t.getEndPosition())}),i.push({range:K.fromPositions(new ve(s,1),t.getEndPosition())}))}}}ju._maxDuration=30,ju._maxRounds=2;class Jh{static async create(e,t){if(!t.getOption(118).localityBonus||!t.hasModel())return Jh.None;const i=t.getModel(),r=t.getPosition();if(!e.canComputeWordRanges(i.uri))return Jh.None;const[o]=await new ju().provideSelectionRanges(i,[r]);if(o.length===0)return Jh.None;const s=await e.computeWordRanges(i.uri,o[0].range);if(!s)return Jh.None;const a=i.getWordUntilPosition(r);return delete s[a.word],new class extends Jh{distance(l,u){if(!r.equals(t.getPosition()))return 0;if(u.kind===17)return 2<<20;const c=typeof u.label=="string"?u.label:u.label.label,d=s[c];if(F0e(d))return 2<<20;const h=zF(d,K.fromPositions(l),K.compareRangesUsingStarts),g=h>=0?d[h]:d[Math.max(0,~h-1)];let m=o.length;for(const f of o){if(!K.containsRange(f.range,g))break;m-=1}return m}}}}Jh.None=new class extends Jh{distance(){return 0}};let Mxe=class{constructor(e,t){this.leadingLineContent=e,this.characterCountDelta=t}};class T0{constructor(e,t,i,r,o,s,a=ZE.default,l=void 0){this.clipboardText=l,this._snippetCompareFn=T0._compareCompletionItems,this._items=e,this._column=t,this._wordDistance=r,this._options=o,this._refilterKind=1,this._lineContext=i,this._fuzzyScoreOptions=a,s==="top"?this._snippetCompareFn=T0._compareCompletionItemsSnippetsUp:s==="bottom"&&(this._snippetCompareFn=T0._compareCompletionItemsSnippetsDown)}get lineContext(){return this._lineContext}set lineContext(e){(this._lineContext.leadingLineContent!==e.leadingLineContent||this._lineContext.characterCountDelta!==e.characterCountDelta)&&(this._refilterKind=this._lineContext.characterCountDelta0&&i[0].container.incomplete&&e.add(t);return e}get stats(){return this._ensureCachedState(),this._stats}_ensureCachedState(){this._refilterKind!==0&&this._createCachedState()}_createCachedState(){this._itemsByProvider=new Map;const e=[],{leadingLineContent:t,characterCountDelta:i}=this._lineContext;let r="",o="";const s=this._refilterKind===1?this._items:this._filteredItems,a=[],l=!this._options.filterGraceful||s.length>2e3?nw:W2t;for(let u=0;u=g)c.score=Zh.Default;else if(typeof c.completion.filterText=="string"){const f=l(r,o,m,c.completion.filterText,c.filterTextLow,0,this._fuzzyScoreOptions);if(!f)continue;wY(c.completion.filterText,c.textLabel)===0?c.score=f:(c.score=M2t(r,o,m,c.textLabel,c.labelLow,0),c.score[0]=f[0])}else{const f=l(r,o,m,c.textLabel,c.labelLow,0,this._fuzzyScoreOptions);if(!f)continue;c.score=f}}c.idx=u,c.distance=this._wordDistance.distance(c.position,c.completion),a.push(c),e.push(c.textLabel.length)}this._filteredItems=a.sort(this._snippetCompareFn),this._refilterKind=0,this._stats={pLabelLen:e.length?lH(e.length-.85,e,(u,c)=>u-c):0}}static _compareCompletionItems(e,t){return e.score[0]>t.score[0]?-1:e.score[0]t.distance?1:e.idxt.idx?1:0}static _compareCompletionItemsSnippetsDown(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===27)return 1;if(t.completion.kind===27)return-1}return T0._compareCompletionItems(e,t)}static _compareCompletionItemsSnippetsUp(e,t){if(e.completion.kind!==t.completion.kind){if(e.completion.kind===27)return-1;if(t.completion.kind===27)return 1}return T0._compareCompletionItems(e,t)}}var IMt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},E0=function(n,e){return function(t,i){e(t,i,n)}},V8;class Yv{static shouldAutoTrigger(e){if(!e.hasModel())return!1;const t=e.getModel(),i=e.getPosition();t.tokenization.tokenizeIfCheap(i.lineNumber);const r=t.getWordAtPosition(i);return!(!r||r.endColumn!==i.column&&r.startColumn+1!==i.column||!isNaN(Number(r.word)))}constructor(e,t,i){this.leadingLineContent=e.getLineContent(t.lineNumber).substr(0,t.column-1),this.leadingWord=e.getWordUntilPosition(t),this.lineNumber=t.lineNumber,this.column=t.column,this.triggerOptions=i}}function wMt(n,e,t){if(!e.getContextKeyValue(ms.inlineSuggestionVisible.key))return!0;const i=e.getContextKeyValue(ms.suppressSuggestions.key);return i!==void 0?!i:!n.getOption(62).suppressSuggestions}function SMt(n,e,t){if(!e.getContextKeyValue("inlineSuggestionVisible"))return!0;const i=e.getContextKeyValue(ms.suppressSuggestions.key);return i!==void 0?!i:!n.getOption(62).suppressSuggestions}let jR=V8=class{constructor(e,t,i,r,o,s,a,l,u){this._editor=e,this._editorWorkerService=t,this._clipboardService=i,this._telemetryService=r,this._logService=o,this._contextKeyService=s,this._configurationService=a,this._languageFeaturesService=l,this._envService=u,this._toDispose=new je,this._triggerCharacterListener=new je,this._triggerQuickSuggest=new md,this._triggerState=void 0,this._completionDisposables=new je,this._onDidCancel=new be,this._onDidTrigger=new be,this._onDidSuggest=new be,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._telemetryGate=0,this._currentSelection=this._editor.getSelection()||new Gt(1,1,1,1),this._toDispose.add(this._editor.onDidChangeModel(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeModelLanguage(()=>{this._updateTriggerCharacters(),this.cancel()})),this._toDispose.add(this._editor.onDidChangeConfiguration(()=>{this._updateTriggerCharacters()})),this._toDispose.add(this._languageFeaturesService.completionProvider.onDidChange(()=>{this._updateTriggerCharacters(),this._updateActiveSuggestSession()}));let c=!1;this._toDispose.add(this._editor.onDidCompositionStart(()=>{c=!0})),this._toDispose.add(this._editor.onDidCompositionEnd(()=>{c=!1,this._onCompositionEnd()})),this._toDispose.add(this._editor.onDidChangeCursorSelection(d=>{c||this._onCursorChange(d)})),this._toDispose.add(this._editor.onDidChangeModelContent(()=>{!c&&this._triggerState!==void 0&&this._refilterCompletionItems()})),this._updateTriggerCharacters()}dispose(){Mi(this._triggerCharacterListener),Mi([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerQuickSuggest]),this._toDispose.dispose(),this._completionDisposables.dispose(),this.cancel()}_updateTriggerCharacters(){if(this._triggerCharacterListener.clear(),this._editor.getOption(91)||!this._editor.hasModel()||!this._editor.getOption(121))return;const e=new Map;for(const i of this._languageFeaturesService.completionProvider.all(this._editor.getModel()))for(const r of i.triggerCharacters||[]){let o=e.get(r);o||(o=new Set,o.add(eMt()),e.set(r,o)),o.add(i)}const t=i=>{var r;if(!SMt(this._editor,this._contextKeyService,this._configurationService)||Yv.shouldAutoTrigger(this._editor))return;if(!i){const a=this._editor.getPosition();i=this._editor.getModel().getLineContent(a.lineNumber).substr(0,a.column-1)}let o="";LC(i.charCodeAt(i.length-1))?qo(i.charCodeAt(i.length-2))&&(o=i.substr(i.length-2)):o=i.charAt(i.length-1);const s=e.get(o);if(s){const a=new Map;if(this._completionModel)for(const[l,u]of this._completionModel.getItemsByProvider())s.has(l)||a.set(l,u);this.trigger({auto:!0,triggerKind:1,triggerCharacter:o,retrigger:!!this._completionModel,clipboardText:(r=this._completionModel)===null||r===void 0?void 0:r.clipboardText,completionOptions:{providerFilter:s,providerItemsToReuse:a}})}};this._triggerCharacterListener.add(this._editor.onDidType(t)),this._triggerCharacterListener.add(this._editor.onDidCompositionEnd(()=>t()))}get state(){return this._triggerState?this._triggerState.auto?2:1:0}cancel(e=!1){var t;this._triggerState!==void 0&&(this._triggerQuickSuggest.cancel(),(t=this._requestToken)===null||t===void 0||t.cancel(),this._requestToken=void 0,this._triggerState=void 0,this._completionModel=void 0,this._context=void 0,this._onDidCancel.fire({retrigger:e}))}clear(){this._completionDisposables.clear()}_updateActiveSuggestSession(){this._triggerState!==void 0&&(!this._editor.hasModel()||!this._languageFeaturesService.completionProvider.has(this._editor.getModel())?this.cancel():this.trigger({auto:this._triggerState.auto,retrigger:!0}))}_onCursorChange(e){if(!this._editor.hasModel())return;const t=this._currentSelection;if(this._currentSelection=this._editor.getSelection(),!e.selection.isEmpty()||e.reason!==0&&e.reason!==3||e.source!=="keyboard"&&e.source!=="deleteLeft"){this.cancel();return}this._triggerState===void 0&&e.reason===0?(t.containsRange(this._currentSelection)||t.getEndPosition().isBeforeOrEqual(this._currentSelection.getPosition()))&&this._doTriggerQuickSuggest():this._triggerState!==void 0&&e.reason===3&&this._refilterCompletionItems()}_onCompositionEnd(){this._triggerState===void 0?this._doTriggerQuickSuggest():this._refilterCompletionItems()}_doTriggerQuickSuggest(){var e;Yw.isAllOff(this._editor.getOption(89))||this._editor.getOption(118).snippetsPreventQuickSuggestions&&(!((e=Ns.get(this._editor))===null||e===void 0)&&e.isInSnippet())||(this.cancel(),this._triggerQuickSuggest.cancelAndSet(()=>{if(this._triggerState!==void 0||!Yv.shouldAutoTrigger(this._editor)||!this._editor.hasModel()||!this._editor.hasWidgetFocus())return;const t=this._editor.getModel(),i=this._editor.getPosition(),r=this._editor.getOption(89);if(!Yw.isAllOff(r)){if(!Yw.isAllOn(r)){t.tokenization.tokenizeIfCheap(i.lineNumber);const o=t.tokenization.getLineTokens(i.lineNumber),s=o.getStandardTokenType(o.findTokenIndexAtOffset(Math.max(i.column-1-1,0)));if(Yw.valueFor(r,s)!=="on")return}wMt(this._editor,this._contextKeyService,this._configurationService)&&this._languageFeaturesService.completionProvider.has(t)&&this.trigger({auto:!0})}},this._editor.getOption(90)))}_refilterCompletionItems(){Ci(this._editor.hasModel()),Ci(this._triggerState!==void 0);const e=this._editor.getModel(),t=this._editor.getPosition(),i=new Yv(e,t,{...this._triggerState,refilter:!0});this._onNewContext(i)}trigger(e){var t,i,r,o,s,a;if(!this._editor.hasModel())return;const l=this._editor.getModel(),u=new Yv(l,this._editor.getPosition(),e);this.cancel(e.retrigger),this._triggerState=e,this._onDidTrigger.fire({auto:e.auto,shy:(t=e.shy)!==null&&t!==void 0?t:!1,position:this._editor.getPosition()}),this._context=u;let c={triggerKind:(i=e.triggerKind)!==null&&i!==void 0?i:0};e.triggerCharacter&&(c={triggerKind:1,triggerCharacter:e.triggerCharacter}),this._requestToken=new co;const d=this._editor.getOption(112);let h=1;switch(d){case"top":h=0;break;case"bottom":h=2;break}const{itemKind:g,showDeprecated:m}=V8.createSuggestFilter(this._editor),f=new LA(h,(o=(r=e.completionOptions)===null||r===void 0?void 0:r.kindFilter)!==null&&o!==void 0?o:g,(s=e.completionOptions)===null||s===void 0?void 0:s.providerFilter,(a=e.completionOptions)===null||a===void 0?void 0:a.providerItemsToReuse,m),b=Jh.create(this._editorWorkerService,this._editor),C=M8(this._languageFeaturesService.completionProvider,l,this._editor.getPosition(),f,c,this._requestToken.token);Promise.all([C,b]).then(async([v,w])=>{var S;if((S=this._requestToken)===null||S===void 0||S.dispose(),!this._editor.hasModel())return;let F=e==null?void 0:e.clipboardText;if(!F&&v.needsClipboard&&(F=await this._clipboardService.readText()),this._triggerState===void 0)return;const L=this._editor.getModel(),D=new Yv(L,this._editor.getPosition(),e),A={...ZE.default,firstMatchCanBeWeak:!this._editor.getOption(118).matchOnWordStartOnly};if(this._completionModel=new T0(v.items,this._context.column,{leadingLineContent:D.leadingLineContent,characterCountDelta:D.column-this._context.column},w,this._editor.getOption(118),this._editor.getOption(112),A,F),this._completionDisposables.add(v.disposable),this._onNewContext(D),this._reportDurationsTelemetry(v.durations),!this._envService.isBuilt||this._envService.isExtensionDevelopment)for(const M of v.items)M.isInvalid&&this._logService.warn(`[suggest] did IGNORE invalid completion item from ${M.provider._debugDisplayName}`,M.completion)}).catch(fn)}_reportDurationsTelemetry(e){this._telemetryGate++%230===0&&setTimeout(()=>{this._telemetryService.publicLog2("suggest.durations.json",{data:JSON.stringify(e)}),this._logService.debug("suggest.durations.json",e)})}static createSuggestFilter(e){const t=new Set;e.getOption(112)==="none"&&t.add(27);const r=e.getOption(118);return r.showMethods||t.add(0),r.showFunctions||t.add(1),r.showConstructors||t.add(2),r.showFields||t.add(3),r.showVariables||t.add(4),r.showClasses||t.add(5),r.showStructs||t.add(6),r.showInterfaces||t.add(7),r.showModules||t.add(8),r.showProperties||t.add(9),r.showEvents||t.add(10),r.showOperators||t.add(11),r.showUnits||t.add(12),r.showValues||t.add(13),r.showConstants||t.add(14),r.showEnums||t.add(15),r.showEnumMembers||t.add(16),r.showKeywords||t.add(17),r.showWords||t.add(18),r.showColors||t.add(19),r.showFiles||t.add(20),r.showReferences||t.add(21),r.showColors||t.add(22),r.showFolders||t.add(23),r.showTypeParameters||t.add(24),r.showSnippets||t.add(27),r.showUsers||t.add(25),r.showIssues||t.add(26),{itemKind:t,showDeprecated:r.showDeprecated}}_onNewContext(e){if(this._context){if(e.lineNumber!==this._context.lineNumber){this.cancel();return}if(Yi(e.leadingLineContent)!==Yi(this._context.leadingLineContent)){this.cancel();return}if(e.columnthis._context.leadingWord.startColumn){if(Yv.shouldAutoTrigger(this._editor)&&this._context){const i=this._completionModel.getItemsByProvider();this.trigger({auto:this._context.triggerOptions.auto,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerItemsToReuse:i}})}return}if(e.column>this._context.column&&this._completionModel.getIncompleteProvider().size>0&&e.leadingWord.word.length!==0){const t=new Map,i=new Set;for(const[r,o]of this._completionModel.getItemsByProvider())o.length>0&&o[0].container.incomplete?i.add(r):t.set(r,o);this.trigger({auto:this._context.triggerOptions.auto,triggerKind:2,retrigger:!0,clipboardText:this._completionModel.clipboardText,completionOptions:{providerFilter:i,providerItemsToReuse:t}})}else{const t=this._completionModel.lineContext;let i=!1;if(this._completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this._context.column},this._completionModel.items.length===0){const r=Yv.shouldAutoTrigger(this._editor);if(!this._context){this.cancel();return}if(r&&this._context.leadingWord.endColumn0,i&&e.leadingWord.word.length===0){this.cancel();return}}this._onDidSuggest.fire({completionModel:this._completionModel,triggerOptions:e.triggerOptions,isFrozen:i})}}}}};jR=V8=IMt([E0(1,_d),E0(2,qf),E0(3,Nl),E0(4,Qa),E0(5,ln),E0(6,Xn),E0(7,Tt),E0(8,EU)],jR);class QR{constructor(e,t){this._disposables=new je,this._lastOvertyped=[],this._locked=!1,this._disposables.add(e.onWillType(()=>{if(this._locked||!e.hasModel())return;const i=e.getSelections(),r=i.length;let o=!1;for(let a=0;aQR._maxSelectionLength)return;this._lastOvertyped[a]={value:s.getValueInRange(l),multiline:l.startLineNumber!==l.endLineNumber}}})),this._disposables.add(t.onDidTrigger(i=>{this._locked=!0})),this._disposables.add(t.onDidCancel(i=>{this._locked=!1}))}getLastOvertypedInfo(e){if(e>=0&&e=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},X8=function(n,e){return function(t,i){e(t,i,n)}};let LMt=class fke extends v0{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();this.label&&(this.label.textContent=x({key:"content",comment:["A label","A keybinding"]},"{0} ({1})",this._action.label,fke.symbolPrintEnter(e)))}static symbolPrintEnter(e){var t;return(t=e.getLabel())===null||t===void 0?void 0:t.replace(/\benter\b/gi,"⏎")}},P8=class{constructor(e,t,i,r,o){this._menuId=t,this._menuService=r,this._contextKeyService=o,this._menuDisposables=new je,this.element=Je(e,vt(".suggest-status-bar"));const s=a=>a instanceof Wu?i.createInstance(LMt,a,void 0):void 0;this._leftActions=new Rc(this.element,{actionViewItemProvider:s}),this._rightActions=new Rc(this.element,{actionViewItemProvider:s}),this._leftActions.domNode.classList.add("left"),this._rightActions.domNode.classList.add("right")}dispose(){this._menuDisposables.dispose(),this._leftActions.dispose(),this._rightActions.dispose(),this.element.remove()}show(){const e=this._menuService.createMenu(this._menuId,this._contextKeyService),t=()=>{const i=[],r=[];for(const[o,s]of e.getActions())o==="left"?i.push(...s):r.push(...s);this._leftActions.clear(),this._leftActions.push(i),this._rightActions.clear(),this._rightActions.push(r)};this._menuDisposables.add(e.onDidChange(()=>t())),this._menuDisposables.add(e)}hide(){this._menuDisposables.clear()}};P8=xMt([X8(2,tn),X8(3,wc),X8(4,ln)],P8);var FMt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},_Mt=function(n,e){return function(t,i){e(t,i,n)}};function O8(n){return!!n&&!!(n.completion.documentation||n.completion.detail&&n.completion.detail!==n.completion.label)}let B8=class{constructor(e,t){this._editor=e,this._onDidClose=new be,this.onDidClose=this._onDidClose.event,this._onDidChangeContents=new be,this.onDidChangeContents=this._onDidChangeContents.event,this._disposables=new je,this._renderDisposeable=new je,this._borderWidth=1,this._size=new fi(330,0),this.domNode=vt(".suggest-details"),this.domNode.classList.add("no-docs"),this._markdownRenderer=t.createInstance(mm,{editor:e}),this._body=vt(".body"),this._scrollbar=new f_(this._body,{alwaysConsumeMouseWheel:!0}),Je(this.domNode,this._scrollbar.getDomNode()),this._disposables.add(this._scrollbar),this._header=Je(this._body,vt(".header")),this._close=Je(this._header,vt("span"+on.asCSSSelector(ct.close))),this._close.title=x("details.close","Close"),this._type=Je(this._header,vt("p.type")),this._docs=Je(this._body,vt("p.docs")),this._configureFont(),this._disposables.add(this._editor.onDidChangeConfiguration(i=>{i.hasChanged(50)&&this._configureFont()}))}dispose(){this._disposables.dispose(),this._renderDisposeable.dispose()}_configureFont(){const e=this._editor.getOptions(),t=e.get(50),i=t.getMassagedFontFamily(),r=e.get(119)||t.fontSize,o=e.get(120)||t.lineHeight,s=t.fontWeight,a=`${r}px`,l=`${o}px`;this.domNode.style.fontSize=a,this.domNode.style.lineHeight=`${o/r}`,this.domNode.style.fontWeight=s,this.domNode.style.fontFeatureSettings=t.fontFeatureSettings,this._type.style.fontFamily=i,this._close.style.height=l,this._close.style.width=l}getLayoutInfo(){const e=this._editor.getOption(120)||this._editor.getOption(50).lineHeight,t=this._borderWidth,i=t*2;return{lineHeight:e,borderWidth:t,borderHeight:i,verticalPadding:22,horizontalPadding:14}}renderLoading(){this._type.textContent=x("loading","Loading..."),this._docs.textContent="",this.domNode.classList.remove("no-docs","no-type"),this.layout(this.size.width,this.getLayoutInfo().lineHeight*2),this._onDidChangeContents.fire(this)}renderItem(e,t){var i,r;this._renderDisposeable.clear();let{detail:o,documentation:s}=e.completion;if(t){let a="";a+=`score: ${e.score[0]} +`,a+=`prefix: ${(i=e.word)!==null&&i!==void 0?i:"(no prefix)"} +`,a+=`word: ${e.completion.filterText?e.completion.filterText+" (filterText)":e.textLabel} +`,a+=`distance: ${e.distance} (localityBonus-setting) +`,a+=`index: ${e.idx}, based on ${e.completion.sortText&&`sortText: "${e.completion.sortText}"`||"label"} +`,a+=`commit_chars: ${(r=e.completion.commitCharacters)===null||r===void 0?void 0:r.join("")} +`,s=new ga().appendCodeblock("empty",a),o=`Provider: ${e.provider._debugDisplayName}`}if(!t&&!O8(e)){this.clearContents();return}if(this.domNode.classList.remove("no-docs","no-type"),o){const a=o.length>1e5?`${o.substr(0,1e5)}…`:o;this._type.textContent=a,this._type.title=a,ru(this._type),this._type.classList.toggle("auto-wrap",!/\r?\n^\s+/gmi.test(a))}else la(this._type),this._type.title="",Ka(this._type),this.domNode.classList.add("no-type");if(la(this._docs),typeof s=="string")this._docs.classList.remove("markdown-docs"),this._docs.textContent=s;else if(s){this._docs.classList.add("markdown-docs"),la(this._docs);const a=this._markdownRenderer.render(s);this._docs.appendChild(a.element),this._renderDisposeable.add(a),this._renderDisposeable.add(this._markdownRenderer.onDidRenderAsync(()=>{this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}))}this.domNode.style.userSelect="text",this.domNode.tabIndex=-1,this._close.onmousedown=a=>{a.preventDefault(),a.stopPropagation()},this._close.onclick=a=>{a.preventDefault(),a.stopPropagation(),this._onDidClose.fire()},this._body.scrollTop=0,this.layout(this._size.width,this._type.clientHeight+this._docs.clientHeight),this._onDidChangeContents.fire(this)}clearContents(){this.domNode.classList.add("no-docs"),this._type.textContent="",this._docs.textContent=""}get isEmpty(){return this.domNode.classList.contains("no-docs")}get size(){return this._size}layout(e,t){const i=new fi(e,t);fi.equals(i,this._size)||(this._size=i,Tgt(this.domNode,e,t)),this._scrollbar.scanDomNode()}scrollDown(e=8){this._body.scrollTop+=e}scrollUp(e=8){this._body.scrollTop-=e}scrollTop(){this._body.scrollTop=0}scrollBottom(){this._body.scrollTop=this._body.scrollHeight}pageDown(){this.scrollDown(80)}pageUp(){this.scrollUp(80)}set borderWidth(e){this._borderWidth=e}get borderWidth(){return this._borderWidth}};B8=FMt([_Mt(1,tn)],B8);class DMt{constructor(e,t){this.widget=e,this._editor=t,this.allowEditorOverflow=!0,this._disposables=new je,this._added=!1,this._preferAlignAtTop=!0,this._resizable=new MK,this._resizable.domNode.classList.add("suggest-details-container"),this._resizable.domNode.appendChild(e.domNode),this._resizable.enableSashes(!1,!0,!0,!1);let i,r,o=0,s=0;this._disposables.add(this._resizable.onDidWillResize(()=>{i=this._topLeft,r=this._resizable.size})),this._disposables.add(this._resizable.onDidResize(a=>{if(i&&r){this.widget.layout(a.dimension.width,a.dimension.height);let l=!1;a.west&&(s=r.width-a.dimension.width,l=!0),a.north&&(o=r.height-a.dimension.height,l=!0),l&&this._applyTopLeft({top:i.top+o,left:i.left+s})}a.done&&(i=void 0,r=void 0,o=0,s=0,this._userSize=a.dimension)})),this._disposables.add(this.widget.onDidChangeContents(()=>{var a;this._anchorBox&&this._placeAtAnchor(this._anchorBox,(a=this._userSize)!==null&&a!==void 0?a:this.widget.size,this._preferAlignAtTop)}))}dispose(){this._resizable.dispose(),this._disposables.dispose(),this.hide()}getId(){return"suggest.details"}getDomNode(){return this._resizable.domNode}getPosition(){return this._topLeft?{preference:this._topLeft}:null}show(){this._added||(this._editor.addOverlayWidget(this),this._added=!0)}hide(e=!1){this._resizable.clearSashHoverState(),this._added&&(this._editor.removeOverlayWidget(this),this._added=!1,this._anchorBox=void 0,this._topLeft=void 0),e&&(this._userSize=void 0,this.widget.clearContents())}placeAtAnchor(e,t){var i;const r=e.getBoundingClientRect();this._anchorBox=r,this._preferAlignAtTop=t,this._placeAtAnchor(this._anchorBox,(i=this._userSize)!==null&&i!==void 0?i:this.widget.size,t)}_placeAtAnchor(e,t,i){var r;const o=pf(this.getDomNode().ownerDocument.body),s=this.widget.getLayoutInfo(),a=new fi(220,2*s.lineHeight),l=e.top,u=function(){const L=o.width-(e.left+e.width+s.borderWidth+s.horizontalPadding),D=-s.borderWidth+e.left+e.width,A=new fi(L,o.height-e.top-s.borderHeight-s.verticalPadding),M=A.with(void 0,e.top+e.height-s.borderHeight-s.verticalPadding);return{top:l,left:D,fit:L-t.width,maxSizeTop:A,maxSizeBottom:M,minSize:a.with(Math.min(L,a.width))}}(),c=function(){const L=e.left-s.borderWidth-s.horizontalPadding,D=Math.max(s.horizontalPadding,e.left-t.width-s.borderWidth),A=new fi(L,o.height-e.top-s.borderHeight-s.verticalPadding),M=A.with(void 0,e.top+e.height-s.borderHeight-s.verticalPadding);return{top:l,left:D,fit:L-t.width,maxSizeTop:A,maxSizeBottom:M,minSize:a.with(Math.min(L,a.width))}}(),d=function(){const L=e.left,D=-s.borderWidth+e.top+e.height,A=new fi(e.width-s.borderHeight,o.height-e.top-e.height-s.verticalPadding);return{top:D,left:L,fit:A.height-t.height,maxSizeBottom:A,maxSizeTop:A,minSize:a.with(A.width)}}(),h=[u,c,d],g=(r=h.find(L=>L.fit>=0))!==null&&r!==void 0?r:h.sort((L,D)=>D.fit-L.fit)[0],m=e.top+e.height-s.borderHeight;let f,b=t.height;const C=Math.max(g.maxSizeTop.height,g.maxSizeBottom.height);b>C&&(b=C);let v;i?b<=g.maxSizeTop.height?(f=!0,v=g.maxSizeTop):(f=!1,v=g.maxSizeBottom):b<=g.maxSizeBottom.height?(f=!1,v=g.maxSizeBottom):(f=!0,v=g.maxSizeTop);let{top:w,left:S}=g;!f&&b>e.height&&(w=m-b);const F=this._editor.getDomNode();if(F){const L=F.getBoundingClientRect();w-=L.top,S-=L.left}this._applyTopLeft({left:S,top:w}),this._resizable.enableSashes(!f,g===u,f,g!==u),this._resizable.minSize=g.minSize,this._resizable.maxSize=v,this._resizable.layout(b,Math.min(v.width,t.width)),this.widget.layout(this._resizable.size.width,this._resizable.size.height)}_applyTopLeft(e){this._topLeft=e,this._editor.layoutOverlayWidget(this)}}var _m;(function(n){n[n.FILE=0]="FILE",n[n.FOLDER=1]="FOLDER",n[n.ROOT_FOLDER=2]="ROOT_FOLDER"})(_m||(_m={}));const AMt=/(?:\/|^)(?:([^\/]+)\/)?([^\/]+)$/;function $R(n,e,t,i,r){if(r)return[`codicon-${r.id}`,"predefined-file-icon"];const o=i===_m.ROOT_FOLDER?["rootfolder-icon"]:i===_m.FOLDER?["folder-icon"]:["file-icon"];if(t){let s;if(t.scheme===xn.data)s=Ub.parseMetaData(t).get(Ub.META_DATA_LABEL);else{const a=t.path.match(AMt);a?(s=qR(a[2].toLowerCase()),a[1]&&o.push(`${qR(a[1].toLowerCase())}-name-dir-icon`)):s=qR(t.authority.toLowerCase())}if(i===_m.ROOT_FOLDER)o.push(`${s}-root-name-folder-icon`);else if(i===_m.FOLDER)o.push(`${s}-name-folder-icon`);else{if(s){if(o.push(`${s}-name-file-icon`),o.push("name-file-icon"),s.length<=255){const l=s.split(".");for(let u=1;u=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},z8=function(n,e){return function(t,i){e(t,i,n)}},W0;function Zxe(n){return`suggest-aria-id:${n}`}const MMt=io("suggest-more-info",ct.chevronRight,x("suggestMoreInfoIcon","Icon for more information in the suggest widget.")),ZMt=new(W0=class{extract(e,t){if(e.textLabel.match(W0._regexStrict))return t[0]=e.textLabel,!0;if(e.completion.detail&&e.completion.detail.match(W0._regexStrict))return t[0]=e.completion.detail,!0;if(e.completion.documentation){const i=typeof e.completion.documentation=="string"?e.completion.documentation:e.completion.documentation.value,r=W0._regexRelaxed.exec(i);if(r&&(r.index===0||r.index+r[0].length===i.length))return t[0]=r[0],!0}return!1}},W0._regexRelaxed=/(#([\da-fA-F]{3}){1,2}|(rgb|hsl)a\(\s*(\d{1,3}%?\s*,\s*){3}(1|0?\.\d+)\)|(rgb|hsl)\(\s*\d{1,3}%?(\s*,\s*\d{1,3}%?){2}\s*\))/,W0._regexStrict=new RegExp(`^${W0._regexRelaxed.source}$`,"i"),W0);let Y8=class{constructor(e,t,i,r){this._editor=e,this._modelService=t,this._languageService=i,this._themeService=r,this._onDidToggleDetails=new be,this.onDidToggleDetails=this._onDidToggleDetails.event,this.templateId="suggestion"}dispose(){this._onDidToggleDetails.dispose()}renderTemplate(e){const t=new je,i=e;i.classList.add("show-file-icons");const r=Je(e,vt(".icon")),o=Je(r,vt("span.colorspan")),s=Je(e,vt(".contents")),a=Je(s,vt(".main")),l=Je(a,vt(".icon-label.codicon")),u=Je(a,vt("span.left")),c=Je(a,vt("span.right")),d=new KW(u,{supportHighlights:!0,supportIcons:!0});t.add(d);const h=Je(u,vt("span.signature-label")),g=Je(u,vt("span.qualifier-label")),m=Je(c,vt("span.details-label")),f=Je(c,vt("span.readMore"+on.asCSSSelector(MMt)));return f.title=x("readMore","Read More"),{root:i,left:u,right:c,icon:r,colorspan:o,iconLabel:d,iconContainer:l,parametersLabel:h,qualifierLabel:g,detailsLabel:m,readMore:f,disposables:t,configureFont:()=>{const C=this._editor.getOptions(),v=C.get(50),w=v.getMassagedFontFamily(),S=v.fontFeatureSettings,F=C.get(119)||v.fontSize,L=C.get(120)||v.lineHeight,D=v.fontWeight,A=v.letterSpacing,M=`${F}px`,W=`${L}px`,Z=`${A}px`;i.style.fontSize=M,i.style.fontWeight=D,i.style.letterSpacing=Z,a.style.fontFamily=w,a.style.fontFeatureSettings=S,a.style.lineHeight=W,r.style.height=W,r.style.width=W,f.style.height=W,f.style.width=W}}}renderElement(e,t,i){i.configureFont();const{completion:r}=e;i.root.id=Zxe(t),i.colorspan.style.backgroundColor="";const o={labelEscapeNewLines:!0,matches:AE(e.score)},s=[];if(r.kind===19&&ZMt.extract(e,s))i.icon.className="icon customcolor",i.iconContainer.className="icon hide",i.colorspan.style.backgroundColor=s[0];else if(r.kind===20&&this._themeService.getFileIconTheme().hasFileIcons){i.icon.className="icon hide",i.iconContainer.className="icon hide";const a=$R(this._modelService,this._languageService,$t.from({scheme:"fake",path:e.textLabel}),_m.FILE),l=$R(this._modelService,this._languageService,$t.from({scheme:"fake",path:r.detail}),_m.FILE);o.extraClasses=a.length>l.length?a:l}else r.kind===23&&this._themeService.getFileIconTheme().hasFolderIcons?(i.icon.className="icon hide",i.iconContainer.className="icon hide",o.extraClasses=[$R(this._modelService,this._languageService,$t.from({scheme:"fake",path:e.textLabel}),_m.FOLDER),$R(this._modelService,this._languageService,$t.from({scheme:"fake",path:r.detail}),_m.FOLDER)].flat()):(i.icon.className="icon hide",i.iconContainer.className="",i.iconContainer.classList.add("suggest-icon",...on.asClassNameArray(I_.toIcon(r.kind))));r.tags&&r.tags.indexOf(1)>=0&&(o.extraClasses=(o.extraClasses||[]).concat(["deprecated"]),o.matches=[]),i.iconLabel.setLabel(e.textLabel,void 0,o),typeof r.label=="string"?(i.parametersLabel.textContent="",i.detailsLabel.textContent=H8(r.detail||""),i.root.classList.add("string-label")):(i.parametersLabel.textContent=H8(r.label.detail||""),i.detailsLabel.textContent=H8(r.label.description||""),i.root.classList.remove("string-label")),this._editor.getOption(118).showInlineDetails?ru(i.detailsLabel):Ka(i.detailsLabel),O8(e)?(i.right.classList.add("can-expand-details"),ru(i.readMore),i.readMore.onmousedown=a=>{a.stopPropagation(),a.preventDefault()},i.readMore.onclick=a=>{a.stopPropagation(),a.preventDefault(),this._onDidToggleDetails.fire()}):(i.right.classList.remove("can-expand-details"),Ka(i.readMore),i.readMore.onmousedown=null,i.readMore.onclick=null)}disposeTemplate(e){e.disposables.dispose()}};Y8=kMt([z8(1,wr),z8(2,Cr),z8(3,ts)],Y8);function H8(n){return n.replace(/\r\n|\r|\n/g,"")}var TMt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},e3=function(n,e){return function(t,i){e(t,i,n)}},Uw;re("editorSuggestWidget.background",{dark:$r,light:$r,hcDark:$r,hcLight:$r},x("editorSuggestWidgetBackground","Background color of the suggest widget.")),re("editorSuggestWidget.border",{dark:Nf,light:Nf,hcDark:Nf,hcLight:Nf},x("editorSuggestWidgetBorder","Border color of the suggest widget."));const t3=re("editorSuggestWidget.foreground",{dark:Id,light:Id,hcDark:Id,hcLight:Id},x("editorSuggestWidgetForeground","Foreground color of the suggest widget."));re("editorSuggestWidget.selectedForeground",{dark:OC,light:OC,hcDark:OC,hcLight:OC},x("editorSuggestWidgetSelectedForeground","Foreground color of the selected entry in the suggest widget.")),re("editorSuggestWidget.selectedIconForeground",{dark:F2,light:F2,hcDark:F2,hcLight:F2},x("editorSuggestWidgetSelectedIconForeground","Icon foreground color of the selected entry in the suggest widget."));const EMt=re("editorSuggestWidget.selectedBackground",{dark:BC,light:BC,hcDark:BC,hcLight:BC},x("editorSuggestWidgetSelectedBackground","Background color of the selected entry in the suggest widget."));re("editorSuggestWidget.highlightForeground",{dark:wd,light:wd,hcDark:wd,hcLight:wd},x("editorSuggestWidgetHighlightForeground","Color of the match highlights in the suggest widget.")),re("editorSuggestWidget.focusHighlightForeground",{dark:wT,light:wT,hcDark:wT,hcLight:wT},x("editorSuggestWidgetFocusHighlightForeground","Color of the match highlights in the suggest widget when an item is focused.")),re("editorSuggestWidgetStatus.foreground",{dark:Bt(t3,.5),light:Bt(t3,.5),hcDark:Bt(t3,.5),hcLight:Bt(t3,.5)},x("editorSuggestWidgetStatusForeground","Foreground color of the suggest widget status."));class WMt{constructor(e,t){this._service=e,this._key=`suggestWidget.size/${t.getEditorType()}/${t instanceof C0}`}restore(){var e;const t=(e=this._service.get(this._key,0))!==null&&e!==void 0?e:"";try{const i=JSON.parse(t);if(fi.is(i))return fi.lift(i)}catch{}}store(e){this._service.store(this._key,JSON.stringify(e),0,1)}reset(){this._service.remove(this._key,0)}}let NA=Uw=class{constructor(e,t,i,r,o){this.editor=e,this._storageService=t,this._state=0,this._isAuto=!1,this._pendingLayout=new zs,this._pendingShowDetails=new zs,this._ignoreFocusEvents=!1,this._forceRenderingAbove=!1,this._explainMode=!1,this._showTimeout=new md,this._disposables=new je,this._onDidSelect=new SC,this._onDidFocus=new SC,this._onDidHide=new be,this._onDidShow=new be,this.onDidSelect=this._onDidSelect.event,this.onDidFocus=this._onDidFocus.event,this.onDidHide=this._onDidHide.event,this.onDidShow=this._onDidShow.event,this._onDetailsKeydown=new be,this.onDetailsKeyDown=this._onDetailsKeydown.event,this.element=new MK,this.element.domNode.classList.add("editor-widget","suggest-widget"),this._contentWidget=new RMt(this,e),this._persistedSize=new WMt(t,e);class s{constructor(g,m,f=!1,b=!1){this.persistedSize=g,this.currentSize=m,this.persistHeight=f,this.persistWidth=b}}let a;this._disposables.add(this.element.onDidWillResize(()=>{this._contentWidget.lockPreference(),a=new s(this._persistedSize.restore(),this.element.size)})),this._disposables.add(this.element.onDidResize(h=>{var g,m,f,b;if(this._resize(h.dimension.width,h.dimension.height),a&&(a.persistHeight=a.persistHeight||!!h.north||!!h.south,a.persistWidth=a.persistWidth||!!h.east||!!h.west),!!h.done){if(a){const{itemHeight:C,defaultSize:v}=this.getLayoutInfo(),w=Math.round(C/2);let{width:S,height:F}=this.element.size;(!a.persistHeight||Math.abs(a.currentSize.height-F)<=w)&&(F=(m=(g=a.persistedSize)===null||g===void 0?void 0:g.height)!==null&&m!==void 0?m:v.height),(!a.persistWidth||Math.abs(a.currentSize.width-S)<=w)&&(S=(b=(f=a.persistedSize)===null||f===void 0?void 0:f.width)!==null&&b!==void 0?b:v.width),this._persistedSize.store(new fi(S,F))}this._contentWidget.unlockPreference(),a=void 0}})),this._messageElement=Je(this.element.domNode,vt(".message")),this._listElement=Je(this.element.domNode,vt(".tree"));const l=this._disposables.add(o.createInstance(B8,this.editor));l.onDidClose(this.toggleDetails,this,this._disposables),this._details=new DMt(l,this.editor);const u=()=>this.element.domNode.classList.toggle("no-icons",!this.editor.getOption(118).showIcons);u();const c=o.createInstance(Y8,this.editor);this._disposables.add(c),this._disposables.add(c.onDidToggleDetails(()=>this.toggleDetails())),this._list=new zu("SuggestWidget",this._listElement,{getHeight:h=>this.getLayoutInfo().itemHeight,getTemplateId:h=>"suggestion"},[c],{alwaysConsumeMouseWheel:!0,useShadows:!1,mouseSupport:!1,multipleSelectionSupport:!1,accessibilityProvider:{getRole:()=>"option",getWidgetAriaLabel:()=>x("suggest","Suggest"),getWidgetRole:()=>"listbox",getAriaLabel:h=>{let g=h.textLabel;if(typeof h.completion.label!="string"){const{detail:C,description:v}=h.completion.label;C&&v?g=x("label.full","{0} {1}, {2}",g,C,v):C?g=x("label.detail","{0} {1}",g,C):v&&(g=x("label.desc","{0}, {1}",g,v))}if(!h.isResolved||!this._isDetailsVisible())return g;const{documentation:m,detail:f}=h.completion,b=UI("{0}{1}",f||"",m?typeof m=="string"?m:m.value:"");return x("ariaCurrenttSuggestionReadDetails","{0}, docs: {1}",g,b)}}}),this._list.style(bw({listInactiveFocusBackground:EMt,listInactiveFocusOutline:dr})),this._status=o.createInstance(P8,this.element.domNode,Z0);const d=()=>this.element.domNode.classList.toggle("with-status-bar",this.editor.getOption(118).showStatusBar);d(),this._disposables.add(r.onDidColorThemeChange(h=>this._onThemeChange(h))),this._onThemeChange(r.getColorTheme()),this._disposables.add(this._list.onMouseDown(h=>this._onListMouseDownOrTap(h))),this._disposables.add(this._list.onTap(h=>this._onListMouseDownOrTap(h))),this._disposables.add(this._list.onDidChangeSelection(h=>this._onListSelection(h))),this._disposables.add(this._list.onDidChangeFocus(h=>this._onListFocus(h))),this._disposables.add(this.editor.onDidChangeCursorSelection(()=>this._onCursorSelectionChanged())),this._disposables.add(this.editor.onDidChangeConfiguration(h=>{h.hasChanged(118)&&(d(),u()),this._completionModel&&(h.hasChanged(50)||h.hasChanged(119)||h.hasChanged(120))&&this._list.splice(0,this._list.length,this._completionModel.items)})),this._ctxSuggestWidgetVisible=An.Visible.bindTo(i),this._ctxSuggestWidgetDetailsVisible=An.DetailsVisible.bindTo(i),this._ctxSuggestWidgetMultipleSuggestions=An.MultipleSuggestions.bindTo(i),this._ctxSuggestWidgetHasFocusedSuggestion=An.HasFocusedSuggestion.bindTo(i),this._disposables.add(Gr(this._details.widget.domNode,"keydown",h=>{this._onDetailsKeydown.fire(h)})),this._disposables.add(this.editor.onMouseDown(h=>this._onEditorMouseDown(h)))}dispose(){var e;this._details.widget.dispose(),this._details.dispose(),this._list.dispose(),this._status.dispose(),this._disposables.dispose(),(e=this._loadingTimeout)===null||e===void 0||e.dispose(),this._pendingLayout.dispose(),this._pendingShowDetails.dispose(),this._showTimeout.dispose(),this._contentWidget.dispose(),this.element.dispose()}_onEditorMouseDown(e){this._details.widget.domNode.contains(e.target.element)?this._details.widget.domNode.focus():this.element.domNode.contains(e.target.element)&&this.editor.focus()}_onCursorSelectionChanged(){this._state!==0&&this._contentWidget.layout()}_onListMouseDownOrTap(e){typeof e.element>"u"||typeof e.index>"u"||(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation(),this._select(e.element,e.index))}_onListSelection(e){e.elements.length&&this._select(e.elements[0],e.indexes[0])}_select(e,t){const i=this._completionModel;i&&(this._onDidSelect.fire({item:e,index:t,model:i}),this.editor.focus())}_onThemeChange(e){this._details.widget.borderWidth=Jg(e.type)?2:1}_onListFocus(e){var t;if(this._ignoreFocusEvents)return;if(!e.elements.length){this._currentSuggestionDetails&&(this._currentSuggestionDetails.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=void 0),this.editor.setAriaOptions({activeDescendant:void 0}),this._ctxSuggestWidgetHasFocusedSuggestion.set(!1);return}if(!this._completionModel)return;this._ctxSuggestWidgetHasFocusedSuggestion.set(!0);const i=e.elements[0],r=e.indexes[0];i!==this._focusedItem&&((t=this._currentSuggestionDetails)===null||t===void 0||t.cancel(),this._currentSuggestionDetails=void 0,this._focusedItem=i,this._list.reveal(r),this._currentSuggestionDetails=$o(async o=>{const s=Cb(()=>{this._isDetailsVisible()&&this.showDetails(!0)},250),a=o.onCancellationRequested(()=>s.dispose());try{return await i.resolve(o)}finally{s.dispose(),a.dispose()}}),this._currentSuggestionDetails.then(()=>{r>=this._list.length||i!==this._list.element(r)||(this._ignoreFocusEvents=!0,this._list.splice(r,1,[i]),this._list.setFocus([r]),this._ignoreFocusEvents=!1,this._isDetailsVisible()?this.showDetails(!1):this.element.domNode.classList.remove("docs-side"),this.editor.setAriaOptions({activeDescendant:Zxe(r)}))}).catch(fn)),this._onDidFocus.fire({item:i,index:r,model:this._completionModel})}_setState(e){if(this._state!==e)switch(this._state=e,this.element.domNode.classList.toggle("frozen",e===4),this.element.domNode.classList.remove("message"),e){case 0:Ka(this._messageElement,this._listElement,this._status.element),this._details.hide(!0),this._status.hide(),this._contentWidget.hide(),this._ctxSuggestWidgetVisible.reset(),this._ctxSuggestWidgetMultipleSuggestions.reset(),this._ctxSuggestWidgetHasFocusedSuggestion.reset(),this._showTimeout.cancel(),this.element.domNode.classList.remove("visible"),this._list.splice(0,this._list.length),this._focusedItem=void 0,this._cappedHeight=void 0,this._explainMode=!1;break;case 1:this.element.domNode.classList.add("message"),this._messageElement.textContent=Uw.LOADING_MESSAGE,Ka(this._listElement,this._status.element),ru(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,yf(Uw.LOADING_MESSAGE);break;case 2:this.element.domNode.classList.add("message"),this._messageElement.textContent=Uw.NO_SUGGESTIONS_MESSAGE,Ka(this._listElement,this._status.element),ru(this._messageElement),this._details.hide(),this._show(),this._focusedItem=void 0,yf(Uw.NO_SUGGESTIONS_MESSAGE);break;case 3:Ka(this._messageElement),ru(this._listElement,this._status.element),this._show();break;case 4:Ka(this._messageElement),ru(this._listElement,this._status.element),this._show();break;case 5:Ka(this._messageElement),ru(this._listElement,this._status.element),this._details.show(),this._show();break}}_show(){this._status.show(),this._contentWidget.show(),this._layout(this._persistedSize.restore()),this._ctxSuggestWidgetVisible.set(!0),this._showTimeout.cancelAndSet(()=>{this.element.domNode.classList.add("visible"),this._onDidShow.fire(this)},100)}showTriggered(e,t){this._state===0&&(this._contentWidget.setPosition(this.editor.getPosition()),this._isAuto=!!e,this._isAuto||(this._loadingTimeout=Cb(()=>this._setState(1),t)))}showSuggestions(e,t,i,r,o){var s,a;if(this._contentWidget.setPosition(this.editor.getPosition()),(s=this._loadingTimeout)===null||s===void 0||s.dispose(),(a=this._currentSuggestionDetails)===null||a===void 0||a.cancel(),this._currentSuggestionDetails=void 0,this._completionModel!==e&&(this._completionModel=e),i&&this._state!==2&&this._state!==0){this._setState(4);return}const l=this._completionModel.items.length,u=l===0;if(this._ctxSuggestWidgetMultipleSuggestions.set(l>1),u){this._setState(r?0:2),this._completionModel=void 0;return}this._focusedItem=void 0,this._onDidFocus.pause(),this._onDidSelect.pause();try{this._list.splice(0,this._list.length,this._completionModel.items),this._setState(i?4:3),this._list.reveal(t,0),this._list.setFocus(o?[]:[t])}finally{this._onDidFocus.resume(),this._onDidSelect.resume()}this._pendingLayout.value=L5(qt(this.element.domNode),()=>{this._pendingLayout.clear(),this._layout(this.element.size),this._details.widget.domNode.classList.remove("focused")})}focusSelected(){this._list.length>0&&this._list.setFocus([0])}selectNextPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageDown(),!0;case 1:return!this._isAuto;default:return this._list.focusNextPage(),!0}}selectNext(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusNext(1,!0),!0}}selectLast(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollBottom(),!0;case 1:return!this._isAuto;default:return this._list.focusLast(),!0}}selectPreviousPage(){switch(this._state){case 0:return!1;case 5:return this._details.widget.pageUp(),!0;case 1:return!this._isAuto;default:return this._list.focusPreviousPage(),!0}}selectPrevious(){switch(this._state){case 0:return!1;case 1:return!this._isAuto;default:return this._list.focusPrevious(1,!0),!1}}selectFirst(){switch(this._state){case 0:return!1;case 5:return this._details.widget.scrollTop(),!0;case 1:return!this._isAuto;default:return this._list.focusFirst(),!0}}getFocusedItem(){if(this._state!==0&&this._state!==2&&this._state!==1&&this._completionModel&&this._list.getFocus().length>0)return{item:this._list.getFocusedElements()[0],index:this._list.getFocus()[0],model:this._completionModel}}toggleDetailsFocus(){this._state===5?(this._setState(3),this._details.widget.domNode.classList.remove("focused")):this._state===3&&this._isDetailsVisible()&&(this._setState(5),this._details.widget.domNode.classList.add("focused"))}toggleDetails(){this._isDetailsVisible()?(this._pendingShowDetails.clear(),this._ctxSuggestWidgetDetailsVisible.set(!1),this._setDetailsVisible(!1),this._details.hide(),this.element.domNode.classList.remove("shows-details")):(O8(this._list.getFocusedElements()[0])||this._explainMode)&&(this._state===3||this._state===5||this._state===4)&&(this._ctxSuggestWidgetDetailsVisible.set(!0),this._setDetailsVisible(!0),this.showDetails(!1))}showDetails(e){this._pendingShowDetails.value=L5(qt(this.element.domNode),()=>{this._pendingShowDetails.clear(),this._details.show(),e?this._details.widget.renderLoading():this._details.widget.renderItem(this._list.getFocusedElements()[0],this._explainMode),this._details.widget.isEmpty?this._details.hide():(this._positionDetails(),this.element.domNode.classList.add("shows-details")),this.editor.focus()})}toggleExplainMode(){this._list.getFocusedElements()[0]&&(this._explainMode=!this._explainMode,this._isDetailsVisible()?this.showDetails(!1):this.toggleDetails())}resetPersistedSize(){this._persistedSize.reset()}hideWidget(){var e;this._pendingLayout.clear(),this._pendingShowDetails.clear(),(e=this._loadingTimeout)===null||e===void 0||e.dispose(),this._setState(0),this._onDidHide.fire(this),this.element.clearSashHoverState();const t=this._persistedSize.restore(),i=Math.ceil(this.getLayoutInfo().itemHeight*4.3);t&&t.heightu&&(l=u);const c=this._completionModel?this._completionModel.stats.pLabelLen*s.typicalHalfwidthCharacterWidth:l,d=s.statusBarHeight+this._list.contentHeight+s.borderHeight,h=s.itemHeight+s.statusBarHeight,g=go(this.editor.getDomNode()),m=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),f=g.top+m.top+m.height,b=Math.min(o.height-f-s.verticalPadding,d),C=g.top+m.top-s.verticalPadding,v=Math.min(C,d);let w=Math.min(Math.max(v,b)+s.borderHeight,d);a===((t=this._cappedHeight)===null||t===void 0?void 0:t.capped)&&(a=this._cappedHeight.wanted),aw&&(a=w),a>b||this._forceRenderingAbove&&C>150?(this._contentWidget.setPreference(1),this.element.enableSashes(!0,!0,!1,!1),w=v):(this._contentWidget.setPreference(2),this.element.enableSashes(!1,!0,!0,!1),w=b),this.element.preferredSize=new fi(c,s.defaultSize.height),this.element.maxSize=new fi(u,w),this.element.minSize=new fi(220,h),this._cappedHeight=a===d?{wanted:(r=(i=this._cappedHeight)===null||i===void 0?void 0:i.wanted)!==null&&r!==void 0?r:e.height,capped:a}:void 0}this._resize(l,a)}_resize(e,t){const{width:i,height:r}=this.element.maxSize;e=Math.min(i,e),t=Math.min(r,t);const{statusBarHeight:o}=this.getLayoutInfo();this._list.layout(t-o,e),this._listElement.style.height=`${t-o}px`,this.element.layout(t,e),this._contentWidget.layout(),this._positionDetails()}_positionDetails(){var e;this._isDetailsVisible()&&this._details.placeAtAnchor(this.element.domNode,((e=this._contentWidget.getPosition())===null||e===void 0?void 0:e.preference[0])===2)}getLayoutInfo(){const e=this.editor.getOption(50),t=ol(this.editor.getOption(120)||e.lineHeight,8,1e3),i=!this.editor.getOption(118).showStatusBar||this._state===2||this._state===1?0:t,r=this._details.widget.borderWidth,o=2*r;return{itemHeight:t,statusBarHeight:i,borderWidth:r,borderHeight:o,typicalHalfwidthCharacterWidth:e.typicalHalfwidthCharacterWidth,verticalPadding:22,horizontalPadding:14,defaultSize:new fi(430,i+12*t+o)}}_isDetailsVisible(){return this._storageService.getBoolean("expandSuggestionDocs",0,!1)}_setDetailsVisible(e){this._storageService.store("expandSuggestionDocs",e,0,0)}forceRenderingAbove(){this._forceRenderingAbove||(this._forceRenderingAbove=!0,this._layout(this._persistedSize.restore()))}stopForceRenderingAbove(){this._forceRenderingAbove=!1}};NA.LOADING_MESSAGE=x("suggestWidget.loading","Loading..."),NA.NO_SUGGESTIONS_MESSAGE=x("suggestWidget.noSuggestions","No suggestions."),NA=Uw=TMt([e3(1,bm),e3(2,ln),e3(3,ts),e3(4,tn)],NA);class RMt{constructor(e,t){this._widget=e,this._editor=t,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this._preferenceLocked=!1,this._added=!1,this._hidden=!1}dispose(){this._added&&(this._added=!1,this._editor.removeContentWidget(this))}getId(){return"editor.widget.suggestWidget"}getDomNode(){return this._widget.element.domNode}show(){this._hidden=!1,this._added||(this._added=!0,this._editor.addContentWidget(this))}hide(){this._hidden||(this._hidden=!0,this.layout())}layout(){this._editor.layoutContentWidget(this)}getPosition(){return this._hidden||!this._position||!this._preference?null:{position:this._position,preference:[this._preference]}}beforeRender(){const{height:e,width:t}=this._widget.element.size,{borderWidth:i,horizontalPadding:r}=this._widget.getLayoutInfo();return new fi(t+2*i+r,e+2*i)}afterRender(e){this._widget._afterRender(e)}setPreference(e){this._preferenceLocked||(this._preference=e)}lockPreference(){this._preferenceLocked=!0}unlockPreference(){this._preferenceLocked=!1}setPosition(e){this._position=e}}var GMt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Jw=function(n,e){return function(t,i){e(t,i,n)}},U8;class VMt{constructor(e,t){if(this._model=e,this._position=t,this._decorationOptions=In.register({description:"suggest-line-suffix",stickiness:1}),e.getLineMaxColumn(t.lineNumber)!==t.column){const r=e.getOffsetAt(t),o=e.getPositionAt(r+1);e.changeDecorations(s=>{this._marker&&s.removeDecoration(this._marker),this._marker=s.addDecoration(K.fromPositions(t,o),this._decorationOptions)})}}dispose(){this._marker&&!this._model.isDisposed()&&this._model.changeDecorations(e=>{e.removeDecoration(this._marker),this._marker=void 0})}delta(e){if(this._model.isDisposed()||this._position.lineNumber!==e.lineNumber)return 0;if(this._marker){const t=this._model.getDecorationRange(this._marker);return this._model.getOffsetAt(t.getStartPosition())-this._model.getOffsetAt(e)}else return this._model.getLineMaxColumn(e.lineNumber)-e.column}}let Md=U8=class{static get(e){return e.getContribution(U8.ID)}constructor(e,t,i,r,o,s,a){this._memoryService=t,this._commandService=i,this._contextKeyService=r,this._instantiationService=o,this._logService=s,this._telemetryService=a,this._lineSuffix=new zs,this._toDispose=new je,this._selectors=new XMt(d=>d.priority),this._onWillInsertSuggestItem=new be,this.onWillInsertSuggestItem=this._onWillInsertSuggestItem.event,this.editor=e,this.model=o.createInstance(jR,this.editor),this._selectors.register({priority:0,select:(d,h,g)=>this._memoryService.select(d,h,g)});const l=An.InsertMode.bindTo(r);l.set(e.getOption(118).insertMode),this._toDispose.add(this.model.onDidTrigger(()=>l.set(e.getOption(118).insertMode))),this.widget=this._toDispose.add(new RY(qt(e.getDomNode()),()=>{const d=this._instantiationService.createInstance(NA,this.editor);this._toDispose.add(d),this._toDispose.add(d.onDidSelect(b=>this._insertSuggestion(b,0),this));const h=new yMt(this.editor,d,this.model,b=>this._insertSuggestion(b,2));this._toDispose.add(h);const g=An.MakesTextEdit.bindTo(this._contextKeyService),m=An.HasInsertAndReplaceRange.bindTo(this._contextKeyService),f=An.CanResolve.bindTo(this._contextKeyService);return this._toDispose.add(en(()=>{g.reset(),m.reset(),f.reset()})),this._toDispose.add(d.onDidFocus(({item:b})=>{const C=this.editor.getPosition(),v=b.editStart.column,w=C.column;let S=!0;this.editor.getOption(1)==="smart"&&this.model.state===2&&!b.completion.additionalTextEdits&&!(b.completion.insertTextRules&4)&&w-v===b.completion.insertText.length&&(S=this.editor.getModel().getValueInRange({startLineNumber:C.lineNumber,startColumn:v,endLineNumber:C.lineNumber,endColumn:w})!==b.completion.insertText),g.set(S),m.set(!ve.equals(b.editInsertEnd,b.editReplaceEnd)),f.set(!!b.provider.resolveCompletionItem||!!b.completion.documentation||b.completion.detail!==b.completion.label)})),this._toDispose.add(d.onDetailsKeyDown(b=>{if(b.toKeyCodeChord().equals(new mf(!0,!1,!1,!1,33))||$n&&b.toKeyCodeChord().equals(new mf(!1,!1,!1,!0,33))){b.stopPropagation();return}b.toKeyCodeChord().isModifierKey()||this.editor.focus()})),d})),this._overtypingCapturer=this._toDispose.add(new RY(qt(e.getDomNode()),()=>this._toDispose.add(new QR(this.editor,this.model)))),this._alternatives=this._toDispose.add(new RY(qt(e.getDomNode()),()=>this._toDispose.add(new zv(this.editor,this._contextKeyService)))),this._toDispose.add(o.createInstance(DA,e)),this._toDispose.add(this.model.onDidTrigger(d=>{this.widget.value.showTriggered(d.auto,d.shy?250:50),this._lineSuffix.value=new VMt(this.editor.getModel(),d.position)})),this._toDispose.add(this.model.onDidSuggest(d=>{if(d.triggerOptions.shy)return;let h=-1;for(const m of this._selectors.itemsOrderedByPriorityDesc)if(h=m.select(this.editor.getModel(),this.editor.getPosition(),d.completionModel.items),h!==-1)break;if(h===-1&&(h=0),this.model.state===0)return;let g=!1;if(d.triggerOptions.auto){const m=this.editor.getOption(118);m.selectionMode==="never"||m.selectionMode==="always"?g=m.selectionMode==="never":m.selectionMode==="whenTriggerCharacter"?g=d.triggerOptions.triggerKind!==1:m.selectionMode==="whenQuickSuggestion"&&(g=d.triggerOptions.triggerKind===1&&!d.triggerOptions.refilter)}this.widget.value.showSuggestions(d.completionModel,h,d.isFrozen,d.triggerOptions.auto,g)})),this._toDispose.add(this.model.onDidCancel(d=>{d.retrigger||this.widget.value.hideWidget()})),this._toDispose.add(this.editor.onDidBlurEditorWidget(()=>{this.model.cancel(),this.model.clear()}));const u=An.AcceptSuggestionsOnEnter.bindTo(r),c=()=>{const d=this.editor.getOption(1);u.set(d==="on"||d==="smart")};this._toDispose.add(this.editor.onDidChangeConfiguration(()=>c())),c()}dispose(){this._alternatives.dispose(),this._toDispose.dispose(),this.widget.dispose(),this.model.dispose(),this._lineSuffix.dispose(),this._onWillInsertSuggestItem.dispose()}_insertSuggestion(e,t){if(!e||!e.item){this._alternatives.value.reset(),this.model.cancel(),this.model.clear();return}if(!this.editor.hasModel())return;const i=Ns.get(this.editor);if(!i)return;this._onWillInsertSuggestItem.fire({item:e.item});const r=this.editor.getModel(),o=r.getAlternativeVersionId(),{item:s}=e,a=[],l=new co;t&1||this.editor.pushUndoStop();const u=this.getOverwriteInfo(s,!!(t&8));this._memoryService.memorize(r,this.editor.getPosition(),s);const c=s.isResolved;let d=-1,h=-1;if(Array.isArray(s.completion.additionalTextEdits)){this.model.cancel();const m=Mh.capture(this.editor);this.editor.executeEdits("suggestController.additionalTextEdits.sync",s.completion.additionalTextEdits.map(f=>{let b=K.lift(f.range);if(b.startLineNumber===s.position.lineNumber&&b.startColumn>s.position.column){const C=this.editor.getPosition().column-s.position.column,v=C,w=K.spansMultipleLines(b)?0:C;b=new K(b.startLineNumber,b.startColumn+v,b.endLineNumber,b.endColumn+w)}return vr.replaceMove(b,f.text)})),m.restoreRelativeVerticalPositionOfCursor(this.editor)}else if(!c){const m=new aa;let f;const b=r.onDidChangeContent(S=>{if(S.isFlush){l.cancel(),b.dispose();return}for(const F of S.changes){const L=K.getEndPosition(F.range);(!f||ve.isBefore(L,f))&&(f=L)}}),C=t;t|=2;let v=!1;const w=this.editor.onWillType(()=>{w.dispose(),v=!0,C&2||this.editor.pushUndoStop()});a.push(s.resolve(l.token).then(()=>{if(!s.completion.additionalTextEdits||l.token.isCancellationRequested)return;if(f&&s.completion.additionalTextEdits.some(F=>ve.isBefore(f,K.getStartPosition(F.range))))return!1;v&&this.editor.pushUndoStop();const S=Mh.capture(this.editor);return this.editor.executeEdits("suggestController.additionalTextEdits.async",s.completion.additionalTextEdits.map(F=>vr.replaceMove(K.lift(F.range),F.text))),S.restoreRelativeVerticalPositionOfCursor(this.editor),(v||!(C&2))&&this.editor.pushUndoStop(),!0}).then(S=>{this._logService.trace("[suggest] async resolving of edits DONE (ms, applied?)",m.elapsed(),S),h=S===!0?1:S===!1?0:-2}).finally(()=>{b.dispose(),w.dispose()}))}let{insertText:g}=s.completion;if(s.completion.insertTextRules&4||(g=Cv.escape(g)),this.model.cancel(),i.insert(g,{overwriteBefore:u.overwriteBefore,overwriteAfter:u.overwriteAfter,undoStopBefore:!1,undoStopAfter:!1,adjustWhitespace:!(s.completion.insertTextRules&1),clipboardText:e.model.clipboardText,overtypingCapturer:this._overtypingCapturer.value}),t&2||this.editor.pushUndoStop(),s.completion.command)if(s.completion.command.id===kA.id)this.model.trigger({auto:!0,retrigger:!0});else{const m=new aa;a.push(this._commandService.executeCommand(s.completion.command.id,...s.completion.command.arguments?[...s.completion.command.arguments]:[]).catch(f=>{s.completion.extensionId?wo(f):fn(f)}).finally(()=>{d=m.elapsed()}))}t&4&&this._alternatives.value.set(e,m=>{for(l.cancel();r.canUndo();){o!==r.getAlternativeVersionId()&&r.undo(),this._insertSuggestion(m,3|(t&8?8:0));break}}),this._alertCompletionItem(s),Promise.all(a).finally(()=>{this._reportSuggestionAcceptedTelemetry(s,r,c,d,h),this.model.clear(),l.dispose()})}_reportSuggestionAcceptedTelemetry(e,t,i,r,o){var s,a,l;Math.floor(Math.random()*100)!==0&&this._telemetryService.publicLog2("suggest.acceptedSuggestion",{extensionId:(a=(s=e.extensionId)===null||s===void 0?void 0:s.value)!==null&&a!==void 0?a:"unknown",providerId:(l=e.provider._debugDisplayName)!==null&&l!==void 0?l:"unknown",kind:e.completion.kind,basenameHash:y5(Ec(t.uri)).toString(16),languageId:t.getLanguageId(),fileExtension:Bvt(t.uri),resolveInfo:e.provider.resolveCompletionItem?i?1:0:-1,resolveDuration:e.resolveDuration,commandDuration:r,additionalEditsAsync:o})}getOverwriteInfo(e,t){Ci(this.editor.hasModel());let i=this.editor.getOption(118).insertMode==="replace";t&&(i=!i);const r=e.position.column-e.editStart.column,o=(i?e.editReplaceEnd.column:e.editInsertEnd.column)-e.position.column,s=this.editor.getPosition().column-e.position.column,a=this._lineSuffix.value?this._lineSuffix.value.delta(this.editor.getPosition()):0;return{overwriteBefore:r+s,overwriteAfter:o+a}}_alertCompletionItem(e){if(da(e.completion.additionalTextEdits)){const t=x("aria.alert.snippet","Accepting '{0}' made {1} additional edits",e.textLabel,e.completion.additionalTextEdits.length);ou(t)}}triggerSuggest(e,t,i){this.editor.hasModel()&&(this.model.trigger({auto:t??!1,completionOptions:{providerFilter:e,kindFilter:i?new Set:void 0}}),this.editor.revealPosition(this.editor.getPosition(),0),this.editor.focus())}triggerSuggestAndAcceptBest(e){if(!this.editor.hasModel())return;const t=this.editor.getPosition(),i=()=>{t.equals(this.editor.getPosition())&&this._commandService.executeCommand(e.fallback)},r=o=>{if(o.completion.insertTextRules&4||o.completion.additionalTextEdits)return!0;const s=this.editor.getPosition(),a=o.editStart.column,l=s.column;return l-a!==o.completion.insertText.length?!0:this.editor.getModel().getValueInRange({startLineNumber:s.lineNumber,startColumn:a,endLineNumber:s.lineNumber,endColumn:l})!==o.completion.insertText};ft.once(this.model.onDidTrigger)(o=>{const s=[];ft.any(this.model.onDidTrigger,this.model.onDidCancel)(()=>{Mi(s),i()},void 0,s),this.model.onDidSuggest(({completionModel:a})=>{if(Mi(s),a.items.length===0){i();return}const l=this._memoryService.select(this.editor.getModel(),this.editor.getPosition(),a.items),u=a.items[l];if(!r(u)){i();return}this.editor.pushUndoStop(),this._insertSuggestion({index:l,item:u,model:a},7)},void 0,s)}),this.model.trigger({auto:!1,shy:!0}),this.editor.revealPosition(t,0),this.editor.focus()}acceptSelectedSuggestion(e,t){const i=this.widget.value.getFocusedItem();let r=0;e&&(r|=4),t&&(r|=8),this._insertSuggestion(i,r)}acceptNextSuggestion(){this._alternatives.value.next()}acceptPrevSuggestion(){this._alternatives.value.prev()}cancelSuggestWidget(){this.model.cancel(),this.model.clear(),this.widget.value.hideWidget()}focusSuggestion(){this.widget.value.focusSelected()}selectNextSuggestion(){this.widget.value.selectNext()}selectNextPageSuggestion(){this.widget.value.selectNextPage()}selectLastSuggestion(){this.widget.value.selectLast()}selectPrevSuggestion(){this.widget.value.selectPrevious()}selectPrevPageSuggestion(){this.widget.value.selectPreviousPage()}selectFirstSuggestion(){this.widget.value.selectFirst()}toggleSuggestionDetails(){this.widget.value.toggleDetails()}toggleExplainMode(){this.widget.value.toggleExplainMode()}toggleSuggestionFocus(){this.widget.value.toggleDetailsFocus()}resetWidgetSize(){this.widget.value.resetPersistedSize()}forceRenderingAbove(){this.widget.value.forceRenderingAbove()}stopForceRenderingAbove(){this.widget.isInitialized&&this.widget.value.stopForceRenderingAbove()}registerSelector(e){return this._selectors.register(e)}};Md.ID="editor.contrib.suggestController",Md=U8=GMt([Jw(1,KR),Jw(2,Vr),Jw(3,ln),Jw(4,tn),Jw(5,Qa),Jw(6,Nl)],Md);class XMt{constructor(e){this.prioritySelector=e,this._items=new Array}register(e){if(this._items.indexOf(e)!==-1)throw new Error("Value is already registered");return this._items.push(e),this._items.sort((t,i)=>this.prioritySelector(i)-this.prioritySelector(t)),{dispose:()=>{const t=this._items.indexOf(e);t>=0&&this._items.splice(t,1)}}}get itemsOrderedByPriorityDesc(){return this._items}}class kA extends Nt{constructor(){super({id:kA.id,label:x("suggest.trigger.label","Trigger Suggest"),alias:"Trigger Suggest",precondition:Be.and(ne.writable,ne.hasCompletionItemProvider,An.Visible.toNegated()),kbOpts:{kbExpr:ne.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[521,2087]},weight:100}})}run(e,t,i){const r=Md.get(t);if(!r)return;let o;i&&typeof i=="object"&&i.auto===!0&&(o=!0),r.triggerSuggest(void 0,o,void 0)}}kA.id="editor.action.triggerSuggest",Ii(Md.ID,Md,2),it(kA);const Qu=190,cl=cs.bindToContribution(Md.get);mt(new cl({id:"acceptSelectedSuggestion",precondition:Be.and(An.Visible,An.HasFocusedSuggestion),handler(n){n.acceptSelectedSuggestion(!0,!1)},kbOpts:[{primary:2,kbExpr:Be.and(An.Visible,ne.textInputFocus),weight:Qu},{primary:3,kbExpr:Be.and(An.Visible,ne.textInputFocus,An.AcceptSuggestionsOnEnter,An.MakesTextEdit),weight:Qu}],menuOpts:[{menuId:Z0,title:x("accept.insert","Insert"),group:"left",order:1,when:An.HasInsertAndReplaceRange.toNegated()},{menuId:Z0,title:x("accept.insert","Insert"),group:"left",order:1,when:Be.and(An.HasInsertAndReplaceRange,An.InsertMode.isEqualTo("insert"))},{menuId:Z0,title:x("accept.replace","Replace"),group:"left",order:1,when:Be.and(An.HasInsertAndReplaceRange,An.InsertMode.isEqualTo("replace"))}]})),mt(new cl({id:"acceptAlternativeSelectedSuggestion",precondition:Be.and(An.Visible,ne.textInputFocus,An.HasFocusedSuggestion),kbOpts:{weight:Qu,kbExpr:ne.textInputFocus,primary:1027,secondary:[1026]},handler(n){n.acceptSelectedSuggestion(!1,!0)},menuOpts:[{menuId:Z0,group:"left",order:2,when:Be.and(An.HasInsertAndReplaceRange,An.InsertMode.isEqualTo("insert")),title:x("accept.replace","Replace")},{menuId:Z0,group:"left",order:2,when:Be.and(An.HasInsertAndReplaceRange,An.InsertMode.isEqualTo("replace")),title:x("accept.insert","Insert")}]})),ei.registerCommandAlias("acceptSelectedSuggestionOnEnter","acceptSelectedSuggestion"),mt(new cl({id:"hideSuggestWidget",precondition:An.Visible,handler:n=>n.cancelSuggestWidget(),kbOpts:{weight:Qu,kbExpr:ne.textInputFocus,primary:9,secondary:[1033]}})),mt(new cl({id:"selectNextSuggestion",precondition:Be.and(An.Visible,Be.or(An.MultipleSuggestions,An.HasFocusedSuggestion.negate())),handler:n=>n.selectNextSuggestion(),kbOpts:{weight:Qu,kbExpr:ne.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),mt(new cl({id:"selectNextPageSuggestion",precondition:Be.and(An.Visible,Be.or(An.MultipleSuggestions,An.HasFocusedSuggestion.negate())),handler:n=>n.selectNextPageSuggestion(),kbOpts:{weight:Qu,kbExpr:ne.textInputFocus,primary:12,secondary:[2060]}})),mt(new cl({id:"selectLastSuggestion",precondition:Be.and(An.Visible,Be.or(An.MultipleSuggestions,An.HasFocusedSuggestion.negate())),handler:n=>n.selectLastSuggestion()})),mt(new cl({id:"selectPrevSuggestion",precondition:Be.and(An.Visible,Be.or(An.MultipleSuggestions,An.HasFocusedSuggestion.negate())),handler:n=>n.selectPrevSuggestion(),kbOpts:{weight:Qu,kbExpr:ne.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),mt(new cl({id:"selectPrevPageSuggestion",precondition:Be.and(An.Visible,Be.or(An.MultipleSuggestions,An.HasFocusedSuggestion.negate())),handler:n=>n.selectPrevPageSuggestion(),kbOpts:{weight:Qu,kbExpr:ne.textInputFocus,primary:11,secondary:[2059]}})),mt(new cl({id:"selectFirstSuggestion",precondition:Be.and(An.Visible,Be.or(An.MultipleSuggestions,An.HasFocusedSuggestion.negate())),handler:n=>n.selectFirstSuggestion()})),mt(new cl({id:"focusSuggestion",precondition:Be.and(An.Visible,An.HasFocusedSuggestion.negate()),handler:n=>n.focusSuggestion(),kbOpts:{weight:Qu,kbExpr:ne.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}}})),mt(new cl({id:"focusAndAcceptSuggestion",precondition:Be.and(An.Visible,An.HasFocusedSuggestion.negate()),handler:n=>{n.focusSuggestion(),n.acceptSelectedSuggestion(!0,!1)}})),mt(new cl({id:"toggleSuggestionDetails",precondition:Be.and(An.Visible,An.HasFocusedSuggestion),handler:n=>n.toggleSuggestionDetails(),kbOpts:{weight:Qu,kbExpr:ne.textInputFocus,primary:2058,secondary:[2087],mac:{primary:266,secondary:[2087]}},menuOpts:[{menuId:Z0,group:"right",order:1,when:Be.and(An.DetailsVisible,An.CanResolve),title:x("detail.more","show less")},{menuId:Z0,group:"right",order:1,when:Be.and(An.DetailsVisible.toNegated(),An.CanResolve),title:x("detail.less","show more")}]})),mt(new cl({id:"toggleExplainMode",precondition:An.Visible,handler:n=>n.toggleExplainMode(),kbOpts:{weight:100,primary:2138}})),mt(new cl({id:"toggleSuggestionFocus",precondition:An.Visible,handler:n=>n.toggleSuggestionFocus(),kbOpts:{weight:Qu,kbExpr:ne.textInputFocus,primary:2570,mac:{primary:778}}})),mt(new cl({id:"insertBestCompletion",precondition:Be.and(ne.textInputFocus,Be.equals("config.editor.tabCompletion","on"),DA.AtEnd,An.Visible.toNegated(),zv.OtherSuggestions.toNegated(),Ns.InSnippetMode.toNegated()),handler:(n,e)=>{n.triggerSuggestAndAcceptBest(za(e)?{fallback:"tab",...e}:{fallback:"tab"})},kbOpts:{weight:Qu,primary:2}})),mt(new cl({id:"insertNextSuggestion",precondition:Be.and(ne.textInputFocus,Be.equals("config.editor.tabCompletion","on"),zv.OtherSuggestions,An.Visible.toNegated(),Ns.InSnippetMode.toNegated()),handler:n=>n.acceptNextSuggestion(),kbOpts:{weight:Qu,kbExpr:ne.textInputFocus,primary:2}})),mt(new cl({id:"insertPrevSuggestion",precondition:Be.and(ne.textInputFocus,Be.equals("config.editor.tabCompletion","on"),zv.OtherSuggestions,An.Visible.toNegated(),Ns.InSnippetMode.toNegated()),handler:n=>n.acceptPrevSuggestion(),kbOpts:{weight:Qu,kbExpr:ne.textInputFocus,primary:1026}})),it(class extends Nt{constructor(){super({id:"editor.action.resetSuggestSize",label:x("suggest.reset.label","Reset Suggest Widget Size"),alias:"Reset Suggest Widget Size",precondition:void 0})}run(n,e){var t;(t=Md.get(e))===null||t===void 0||t.resetWidgetSize()}});class PMt extends De{get selectedItem(){return this._selectedItem}constructor(e,t,i,r){super(),this.editor=e,this.suggestControllerPreselector=t,this.checkModelVersion=i,this.onWillAccept=r,this.isSuggestWidgetVisible=!1,this.isShiftKeyPressed=!1,this._isActive=!1,this._currentSuggestItemInfo=void 0,this._selectedItem=ci(this,void 0),this._register(e.onKeyDown(s=>{s.shiftKey&&!this.isShiftKeyPressed&&(this.isShiftKeyPressed=!0,this.update(this._isActive))})),this._register(e.onKeyUp(s=>{s.shiftKey&&this.isShiftKeyPressed&&(this.isShiftKeyPressed=!1,this.update(this._isActive))}));const o=Md.get(this.editor);if(o){this._register(o.registerSelector({priority:100,select:(l,u,c)=>{var d;rr(C=>this.checkModelVersion(C));const h=this.editor.getModel();if(!h)return-1;const g=(d=this.suggestControllerPreselector())===null||d===void 0?void 0:d.removeCommonPrefix(h);if(!g)return-1;const m=ve.lift(u),f=c.map((C,v)=>{const S=MA.fromSuggestion(o,h,m,C,this.isShiftKeyPressed).toSingleTextEdit().removeCommonPrefix(h),F=g.augments(S);return{index:v,valid:F,prefixLength:S.text.length,suggestItem:C}}).filter(C=>C&&C.valid&&C.prefixLength>0),b=u6(f,Fc(C=>C.prefixLength,xf));return b?b.index:-1}}));let s=!1;const a=()=>{s||(s=!0,this._register(o.widget.value.onDidShow(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})),this._register(o.widget.value.onDidHide(()=>{this.isSuggestWidgetVisible=!1,this.update(!1)})),this._register(o.widget.value.onDidFocus(()=>{this.isSuggestWidgetVisible=!0,this.update(!0)})))};this._register(ft.once(o.model.onDidTrigger)(l=>{a()})),this._register(o.onWillInsertSuggestItem(l=>{const u=this.editor.getPosition(),c=this.editor.getModel();if(!u||!c)return;const d=MA.fromSuggestion(o,c,u,l.item,this.isShiftKeyPressed);this.onWillAccept(d)}))}this.update(this._isActive)}update(e){const t=this.getSuggestItemInfo();(this._isActive!==e||!OMt(this._currentSuggestItemInfo,t))&&(this._isActive=e,this._currentSuggestItemInfo=t,rr(i=>{this.checkModelVersion(i),this._selectedItem.set(this._isActive?this._currentSuggestItemInfo:void 0,i)}))}getSuggestItemInfo(){const e=Md.get(this.editor);if(!e||!this.isSuggestWidgetVisible)return;const t=e.widget.value.getFocusedItem(),i=this.editor.getPosition(),r=this.editor.getModel();if(!(!t||!i||!r))return MA.fromSuggestion(e,r,i,t.item,this.isShiftKeyPressed)}stopForceRenderingAbove(){const e=Md.get(this.editor);e==null||e.stopForceRenderingAbove()}forceRenderingAbove(){const e=Md.get(this.editor);e==null||e.forceRenderingAbove()}}class MA{static fromSuggestion(e,t,i,r,o){let{insertText:s}=r.completion,a=!1;if(r.completion.insertTextRules&4){const u=new Cv().parse(s);u.children.length<100&&HR.adjustWhitespace(t,i,!0,u),s=u.toString(),a=!0}const l=e.getOverwriteInfo(r,o);return new MA(K.fromPositions(i.delta(0,-l.overwriteBefore),i.delta(0,Math.max(l.overwriteAfter,0))),s,r.completion.kind,a)}constructor(e,t,i,r){this.range=e,this.insertText=t,this.completionItemKind=i,this.isSnippetText=r}equals(e){return this.range.equalsRange(e.range)&&this.insertText===e.insertText&&this.completionItemKind===e.completionItemKind&&this.isSnippetText===e.isSnippetText}toSelectedSuggestionInfo(){return new uCe(this.range,this.insertText,this.completionItemKind,this.isSnippetText)}toSingleTextEdit(){return new M0(this.range,this.insertText)}}function OMt(n,e){return n===e?!0:!n||!e?!1:n.equals(e)}var BMt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},R0=function(n,e){return function(t,i){e(t,i,n)}},J8;let $u=J8=class extends De{static get(e){return e.getContribution(J8.ID)}constructor(e,t,i,r,o,s,a,l,u){super(),this.editor=e,this._instantiationService=t,this._contextKeyService=i,this._configurationService=r,this._commandService=o,this._debounceService=s,this._languageFeaturesService=a,this._accessibilitySignalService=l,this._keybindingService=u,this.model=this._register(dD("inlineCompletionModel",void 0)),this._textModelVersionId=ci(this,-1),this._positions=ci(this,[new ve(1,1)]),this._suggestWidgetAdaptor=this._register(new PMt(this.editor,()=>{var g,m;return(m=(g=this.model.get())===null||g===void 0?void 0:g.selectedInlineCompletion.get())===null||m===void 0?void 0:m.toSingleTextEdit(void 0)},g=>this.updateObservables(g,Ku.Other),g=>{rr(m=>{var f;this.updateObservables(m,Ku.Other),(f=this.model.get())===null||f===void 0||f.handleSuggestAccepted(g)})})),this._enabled=mr(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).enabled),this._fontFamily=mr(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(62).fontFamily),this._ghostTexts=gn(this,g=>{var m;const f=this.model.read(g);return(m=f==null?void 0:f.ghostTexts.read(g))!==null&&m!==void 0?m:[]}),this._stablizedGhostTexts=zMt(this._ghostTexts,this._store),this._ghostTextWidgets=g2t(this,this._stablizedGhostTexts,(g,m)=>m.add(this._instantiationService.createInstance(N8,this.editor,{ghostText:g,minReservedLineCount:Jf(0),targetTextModel:this.model.map(f=>f==null?void 0:f.textModel)}))).recomputeInitiallyAndOnChange(this._store),this._debounceValue=this._debounceService.for(this._languageFeaturesService.inlineCompletionsProvider,"InlineCompletionsDebounce",{min:50,max:50}),this._playAccessibilitySignal=m7(this),this._isReadonly=mr(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(91)),this._textModel=mr(this.editor.onDidChangeModel,()=>this.editor.getModel()),this._textModelIfWritable=gn(g=>this._isReadonly.read(g)?void 0:this._textModel.read(g)),this._register(new ms(this._contextKeyService,this.model)),this._register(Jn(g=>{const m=this._textModelIfWritable.read(g);rr(f=>{if(this.model.set(void 0,f),this.updateObservables(f,Ku.Other),m){const b=t.createInstance(E8,m,this._suggestWidgetAdaptor.selectedItem,this._textModelVersionId,this._positions,this._debounceValue,mr(e.onDidChangeConfiguration,()=>e.getOption(118).preview),mr(e.onDidChangeConfiguration,()=>e.getOption(118).previewMode),mr(e.onDidChangeConfiguration,()=>e.getOption(62).mode),this._enabled);this.model.set(b,f)}})}));const c=this._register(Kbe());this._register(Jn(g=>{const m=this._fontFamily.read(g);c.setStyle(m===""||m==="default"?"":` +.monaco-editor .ghost-text-decoration, +.monaco-editor .ghost-text-decoration-preview, +.monaco-editor .ghost-text { + font-family: ${m}; +}`)}));const d=g=>{var m;return g.isUndoing?Ku.Undo:g.isRedoing?Ku.Redo:!((m=this.model.get())===null||m===void 0)&&m.isAcceptingPartially?Ku.AcceptWord:Ku.Other};this._register(e.onDidChangeModelContent(g=>rr(m=>this.updateObservables(m,d(g))))),this._register(e.onDidChangeCursorPosition(g=>rr(m=>{var f;this.updateObservables(m,Ku.Other),(g.reason===3||g.source==="api")&&((f=this.model.get())===null||f===void 0||f.stop(m))}))),this._register(e.onDidType(()=>rr(g=>{var m;this.updateObservables(g,Ku.Other),this._enabled.get()&&((m=this.model.get())===null||m===void 0||m.trigger(g))}))),this._register(this._commandService.onDidExecuteCommand(g=>{new Set([C2.Tab.id,C2.DeleteLeft.id,C2.DeleteRight.id,uSe,"acceptSelectedSuggestion"]).has(g.commandId)&&e.hasTextFocus()&&this._enabled.get()&&rr(f=>{var b;(b=this.model.get())===null||b===void 0||b.trigger(f)})})),this._register(this.editor.onDidBlurEditorWidget(()=>{this._contextKeyService.getContextKeyValue("accessibleViewIsShown")||this._configurationService.getValue("editor.inlineSuggest.keepOnBlur")||e.getOption(62).keepOnBlur||D0.dropDownVisible||rr(g=>{var m;(m=this.model.get())===null||m===void 0||m.stop(g)})})),this._register(Jn(g=>{var m;const f=(m=this.model.read(g))===null||m===void 0?void 0:m.state.read(g);f!=null&&f.suggestItem?f.primaryGhostText.lineCount>=2&&this._suggestWidgetAdaptor.forceRenderingAbove():this._suggestWidgetAdaptor.stopForceRenderingAbove()})),this._register(en(()=>{this._suggestWidgetAdaptor.stopForceRenderingAbove()}));let h;this._register(hD({handleChange:(g,m)=>(g.didChange(this._playAccessibilitySignal)&&(h=void 0),!0)},async g=>{this._playAccessibilitySignal.read(g);const m=this.model.read(g),f=m==null?void 0:m.state.read(g);if(!m||!f||!f.inlineCompletion){h=void 0;return}if(f.inlineCompletion.semanticId!==h){h=f.inlineCompletion.semanticId;const b=m.textModel.getLineContent(f.primaryGhostText.lineNumber);this._accessibilitySignalService.playSignal(Dn.inlineSuggestion).then(()=>{this.editor.getOption(8)&&this.provideScreenReaderUpdate(f.primaryGhostText.renderForScreenReader(b))})}})),this._register(new HK(this.editor,this.model,this._instantiationService)),this._register(this._configurationService.onDidChangeConfiguration(g=>{g.affectsConfiguration("accessibility.verbosity.inlineCompletions")&&this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})})),this.editor.updateOptions({inlineCompletionsAccessibilityVerbose:this._configurationService.getValue("accessibility.verbosity.inlineCompletions")})}playAccessibilitySignal(e){this._playAccessibilitySignal.trigger(e)}provideScreenReaderUpdate(e){const t=this._contextKeyService.getContextKeyValue("accessibleViewIsShown"),i=this._keybindingService.lookupKeybinding("editor.action.accessibleView");let r;!t&&i&&this.editor.getOption(148)&&(r=x("showAccessibleViewHint","Inspect this in the accessible view ({0})",i.getAriaLabel())),ou(r?e+", "+r:e)}updateObservables(e,t){var i,r,o;const s=this.editor.getModel();this._textModelVersionId.set((i=s==null?void 0:s.getVersionId())!==null&&i!==void 0?i:-1,e,t),this._positions.set((o=(r=this.editor.getSelections())===null||r===void 0?void 0:r.map(a=>a.getPosition()))!==null&&o!==void 0?o:[new ve(1,1)],e)}shouldShowHoverAt(e){var t;const i=(t=this.model.get())===null||t===void 0?void 0:t.primaryGhostText.get();return i?i.parts.some(r=>e.containsPosition(new ve(i.lineNumber,r.column))):!1}shouldShowHoverAtViewZone(e){var t,i;return(i=(t=this._ghostTextWidgets.get()[0])===null||t===void 0?void 0:t.ownsViewZone(e))!==null&&i!==void 0?i:!1}};$u.ID="editor.contrib.inlineCompletionsController",$u=J8=BMt([R0(1,tn),R0(2,ln),R0(3,Xn),R0(4,Vr),R0(5,Xc),R0(6,Tt),R0(7,o0),R0(8,Pi)],$u);function zMt(n,e){const t=ci("result",[]),i=[];return e.add(Jn(r=>{const o=n.read(r);rr(s=>{if(o.length!==i.length){i.length=o.length;for(let a=0;aa.set(o[l],s))})})),t}class n3 extends Nt{constructor(){super({id:n3.ID,label:x("action.inlineSuggest.showNext","Show Next Inline Suggestion"),alias:"Show Next Inline Suggestion",precondition:Be.and(ne.writable,ms.inlineSuggestionVisible),kbOpts:{weight:100,primary:606}})}async run(e,t){var i;const r=$u.get(t);(i=r==null?void 0:r.model.get())===null||i===void 0||i.next()}}n3.ID=dSe;class i3 extends Nt{constructor(){super({id:i3.ID,label:x("action.inlineSuggest.showPrevious","Show Previous Inline Suggestion"),alias:"Show Previous Inline Suggestion",precondition:Be.and(ne.writable,ms.inlineSuggestionVisible),kbOpts:{weight:100,primary:604}})}async run(e,t){var i;const r=$u.get(t);(i=r==null?void 0:r.model.get())===null||i===void 0||i.previous()}}i3.ID=cSe;class YMt extends Nt{constructor(){super({id:"editor.action.inlineSuggest.trigger",label:x("action.inlineSuggest.trigger","Trigger Inline Suggestion"),alias:"Trigger Inline Suggestion",precondition:ne.writable})}async run(e,t){const i=$u.get(t);await a2t(async r=>{var o;await((o=i==null?void 0:i.model.get())===null||o===void 0?void 0:o.triggerExplicitly(r)),i==null||i.playAccessibilitySignal(r)})}}class HMt extends Nt{constructor(){super({id:"editor.action.inlineSuggest.acceptNextWord",label:x("action.inlineSuggest.acceptNextWord","Accept Next Word Of Inline Suggestion"),alias:"Accept Next Word Of Inline Suggestion",precondition:Be.and(ne.writable,ms.inlineSuggestionVisible),kbOpts:{weight:101,primary:2065,kbExpr:Be.and(ne.writable,ms.inlineSuggestionVisible)},menuOpts:[{menuId:$.InlineSuggestionToolbar,title:x("acceptWord","Accept Word"),group:"primary",order:2}]})}async run(e,t){var i;const r=$u.get(t);await((i=r==null?void 0:r.model.get())===null||i===void 0?void 0:i.acceptNextWord(r.editor))}}class UMt extends Nt{constructor(){super({id:"editor.action.inlineSuggest.acceptNextLine",label:x("action.inlineSuggest.acceptNextLine","Accept Next Line Of Inline Suggestion"),alias:"Accept Next Line Of Inline Suggestion",precondition:Be.and(ne.writable,ms.inlineSuggestionVisible),kbOpts:{weight:101},menuOpts:[{menuId:$.InlineSuggestionToolbar,title:x("acceptLine","Accept Line"),group:"secondary",order:2}]})}async run(e,t){var i;const r=$u.get(t);await((i=r==null?void 0:r.model.get())===null||i===void 0?void 0:i.acceptNextLine(r.editor))}}class JMt extends Nt{constructor(){super({id:uSe,label:x("action.inlineSuggest.accept","Accept Inline Suggestion"),alias:"Accept Inline Suggestion",precondition:ms.inlineSuggestionVisible,menuOpts:[{menuId:$.InlineSuggestionToolbar,title:x("accept","Accept"),group:"primary",order:1}],kbOpts:{primary:2,weight:200,kbExpr:Be.and(ms.inlineSuggestionVisible,ne.tabMovesFocus.toNegated(),ms.inlineSuggestionHasIndentationLessThanTabSize,An.Visible.toNegated(),ne.hoverFocused.toNegated())}})}async run(e,t){var i;const r=$u.get(t);r&&((i=r.model.get())===null||i===void 0||i.accept(r.editor),r.editor.focus())}}class r3 extends Nt{constructor(){super({id:r3.ID,label:x("action.inlineSuggest.hide","Hide Inline Suggestion"),alias:"Hide Inline Suggestion",precondition:ms.inlineSuggestionVisible,kbOpts:{weight:100,primary:9}})}async run(e,t){const i=$u.get(t);rr(r=>{var o;(o=i==null?void 0:i.model.get())===null||o===void 0||o.stop(r)})}}r3.ID="editor.action.inlineSuggest.hide";class o3 extends Al{constructor(){super({id:o3.ID,title:x("action.inlineSuggest.alwaysShowToolbar","Always Show Toolbar"),f1:!1,precondition:void 0,menu:[{id:$.InlineSuggestionToolbar,group:"secondary",order:10}],toggled:Be.equals("config.editor.inlineSuggest.showToolbar","always")})}async run(e,t){const i=e.get(Xn),o=i.getValue("editor.inlineSuggest.showToolbar")==="always"?"onHover":"always";i.updateValue("editor.inlineSuggest.showToolbar",o)}}o3.ID="editor.action.inlineSuggest.toggleAlwaysShowToolbar";var KMt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},ZA=function(n,e){return function(t,i){e(t,i,n)}};class jMt{constructor(e,t,i){this.owner=e,this.range=t,this.controller=i}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let K8=class{constructor(e,t,i,r,o,s){this._editor=e,this._languageService=t,this._openerService=i,this.accessibilityService=r,this._instantiationService=o,this._telemetryService=s,this.hoverOrdinal=4}suggestHoverAnchor(e){const t=$u.get(this._editor);if(!t)return null;const i=e.target;if(i.type===8){const r=i.detail;if(t.shouldShowHoverAtViewZone(r.viewZoneId))return new Ev(1e3,this,K.fromPositions(this._editor.getModel().validatePosition(r.positionBefore||r.position)),e.event.posx,e.event.posy,!1)}return i.type===7&&t.shouldShowHoverAt(i.range)?new Ev(1e3,this,i.range,e.event.posx,e.event.posy,!1):i.type===6&&i.detail.mightBeForeignElement&&t.shouldShowHoverAt(i.range)?new Ev(1e3,this,i.range,e.event.posx,e.event.posy,!1):null}computeSync(e,t){if(this._editor.getOption(62).showToolbar!=="onHover")return[];const i=$u.get(this._editor);return i&&i.shouldShowHoverAt(e.range)?[new jMt(this,e.range,i)]:[]}renderHoverParts(e,t){const i=new je,r=t[0];this._telemetryService.publicLog2("inlineCompletionHover.shown"),this.accessibilityService.isScreenReaderOptimized()&&!this._editor.getOption(8)&&this.renderScreenReaderText(e,r,i);const o=r.controller.model.get(),s=this._instantiationService.createInstance(D0,this._editor,!1,Jf(null),o.selectedInlineCompletionIndex,o.inlineCompletionsCount,o.selectedInlineCompletion.map(a=>{var l;return(l=a==null?void 0:a.inlineCompletion.source.inlineCompletions.commands)!==null&&l!==void 0?l:[]}));return e.fragment.appendChild(s.getDomNode()),o.triggerExplicitly(),i.add(s),i}renderScreenReaderText(e,t,i){const r=vt,o=r("div.hover-row.markdown-hover"),s=Je(o,r("div.hover-contents",{"aria-live":"assertive"})),a=i.add(new mm({editor:this._editor},this._languageService,this._openerService)),l=u=>{i.add(a.onDidRenderAsync(()=>{s.className="hover-contents code-hover-contents",e.onContentsChanged()}));const c=x("inlineSuggestionFollows","Suggestion:"),d=i.add(a.render(new ga().appendText(c).appendCodeblock("text",u)));s.replaceChildren(d.element)};i.add(Jn(u=>{var c;const d=(c=t.controller.model.read(u))===null||c===void 0?void 0:c.primaryGhostText.read(u);if(d){const h=this._editor.getModel().getLineContent(d.lineNumber);l(d.renderForScreenReader(h))}else ua(s)})),e.fragment.appendChild(o)}};K8=KMt([ZA(1,Cr),ZA(2,Rl),ZA(3,vd),ZA(4,tn),ZA(5,Nl)],K8),Ii($u.ID,$u,3),it(YMt),it(n3),it(i3),it(HMt),it(UMt),it(JMt),it(r3),Qi(o3),x0.register(K8);function fu(n,e){let t=0;for(let i=0;i=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},$Mt=function(n,e){return function(t,i){e(t,i,n)}};function Txe(n,e,t,i,r){if(n.getLineCount()===1&&n.getLineMaxColumn(1)===1)return[];const o=e.getLanguageConfiguration(n.getLanguageId()).indentationRules;if(!o)return[];for(i=Math.min(i,n.getLineCount());t<=i&&o.unIndentedLinePattern;){const b=n.getLineContent(t);if(!o.unIndentedLinePattern.test(b))break;t++}if(t>i-1)return[];const{tabSize:s,indentSize:a,insertSpaces:l}=n.getOptions(),u=(b,C)=>(C=C||1,_c.shiftIndent(b,b.length+C,s,a,l)),c=(b,C)=>(C=C||1,_c.unshiftIndent(b,b.length+C,s,a,l)),d=[];let h;const g=n.getLineContent(t);let m=g;if(r!=null){h=r;const b=Yi(g);m=h+g.substring(b.length),o.decreaseIndentPattern&&o.decreaseIndentPattern.test(m)&&(h=c(h),m=h+g.substring(b.length)),g!==m&&d.push(vr.replaceMove(new Gt(t,1,t,b.length+1),H5(h,a,l)))}else h=Yi(g);let f=h;o.increaseIndentPattern&&o.increaseIndentPattern.test(m)?(f=u(f),h=u(h)):o.indentNextLinePattern&&o.indentNextLinePattern.test(m)&&(f=u(f)),t++;for(let b=t;b<=i;b++){const C=n.getLineContent(b),v=Yi(C),w=f+C.substring(v.length);o.decreaseIndentPattern&&o.decreaseIndentPattern.test(w)&&(f=c(f),h=c(h)),v!==f&&d.push(vr.replaceMove(new Gt(b,1,b,v.length+1),H5(f,a,l))),!(o.unIndentedLinePattern&&o.unIndentedLinePattern.test(C))&&(o.increaseIndentPattern&&o.increaseIndentPattern.test(w)?(h=u(h),f=h):o.indentNextLinePattern&&o.indentNextLinePattern.test(w)?f=u(f):f=h)}return d}class s3 extends Nt{constructor(){super({id:s3.ID,label:x("indentationToSpaces","Convert Indentation to Spaces"),alias:"Convert Indentation to Spaces",precondition:ne.writable})}run(e,t){const i=t.getModel();if(!i)return;const r=i.getOptions(),o=t.getSelection();if(!o)return;const s=new nZt(o,r.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop(),i.updateOptions({insertSpaces:!0})}}s3.ID="editor.action.indentationToSpaces";class a3 extends Nt{constructor(){super({id:a3.ID,label:x("indentationToTabs","Convert Indentation to Tabs"),alias:"Convert Indentation to Tabs",precondition:ne.writable})}run(e,t){const i=t.getModel();if(!i)return;const r=i.getOptions(),o=t.getSelection();if(!o)return;const s=new iZt(o,r.tabSize);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop(),i.updateOptions({insertSpaces:!1})}}a3.ID="editor.action.indentationToTabs";class j8 extends Nt{constructor(e,t,i){super(i),this.insertSpaces=e,this.displaySizeOnly=t}run(e,t){const i=e.get(vv),r=e.get(wr),o=t.getModel();if(!o)return;const s=r.getCreationOptions(o.getLanguageId(),o.uri,o.isForSimpleWidget),a=o.getOptions(),l=[1,2,3,4,5,6,7,8].map(c=>({id:c.toString(),label:c.toString(),description:c===s.tabSize&&c===a.tabSize?x("configuredTabSize","Configured Tab Size"):c===s.tabSize?x("defaultTabSize","Default Tab Size"):c===a.tabSize?x("currentTabSize","Current Tab Size"):void 0})),u=Math.min(o.getOptions().tabSize-1,7);setTimeout(()=>{i.pick(l,{placeHolder:x({key:"selectTabWidth",comment:["Tab corresponds to the tab key"]},"Select Tab Size for Current File"),activeItem:l[u]}).then(c=>{if(c&&o&&!o.isDisposed()){const d=parseInt(c.label,10);this.displaySizeOnly?o.updateOptions({tabSize:d}):o.updateOptions({tabSize:d,indentSize:d,insertSpaces:this.insertSpaces})}})},50)}}class l3 extends j8{constructor(){super(!1,!1,{id:l3.ID,label:x("indentUsingTabs","Indent Using Tabs"),alias:"Indent Using Tabs",precondition:void 0})}}l3.ID="editor.action.indentUsingTabs";class u3 extends j8{constructor(){super(!0,!1,{id:u3.ID,label:x("indentUsingSpaces","Indent Using Spaces"),alias:"Indent Using Spaces",precondition:void 0})}}u3.ID="editor.action.indentUsingSpaces";class c3 extends j8{constructor(){super(!0,!0,{id:c3.ID,label:x("changeTabDisplaySize","Change Tab Display Size"),alias:"Change Tab Display Size",precondition:void 0})}}c3.ID="editor.action.changeTabDisplaySize";class d3 extends Nt{constructor(){super({id:d3.ID,label:x("detectIndentation","Detect Indentation from Content"),alias:"Detect Indentation from Content",precondition:void 0})}run(e,t){const i=e.get(wr),r=t.getModel();if(!r)return;const o=i.getCreationOptions(r.getLanguageId(),r.uri,r.isForSimpleWidget);r.detectIndentation(o.insertSpaces,o.tabSize)}}d3.ID="editor.action.detectIndentation";class qMt extends Nt{constructor(){super({id:"editor.action.reindentlines",label:x("editor.reindentlines","Reindent Lines"),alias:"Reindent Lines",precondition:ne.writable})}run(e,t){const i=e.get($i),r=t.getModel();if(!r)return;const o=Txe(r,i,1,r.getLineCount());o.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,o),t.pushUndoStop())}}class eZt extends Nt{constructor(){super({id:"editor.action.reindentselectedlines",label:x("editor.reindentselectedlines","Reindent Selected Lines"),alias:"Reindent Selected Lines",precondition:ne.writable})}run(e,t){const i=e.get($i),r=t.getModel();if(!r)return;const o=t.getSelections();if(o===null)return;const s=[];for(const a of o){let l=a.startLineNumber,u=a.endLineNumber;if(l!==u&&a.endColumn===1&&u--,l===1){if(l===u)continue}else l--;const c=Txe(r,i,l,u);s.push(...c)}s.length>0&&(t.pushUndoStop(),t.executeEdits(this.id,s),t.pushUndoStop())}}class tZt{constructor(e,t){this._initialSelection=t,this._edits=[],this._selectionId=null;for(const i of e)i.range&&typeof i.text=="string"&&this._edits.push(i)}getEditOperations(e,t){for(const r of this._edits)t.addEditOperation(K.lift(r.range),r.text);let i=!1;Array.isArray(this._edits)&&this._edits.length===1&&this._initialSelection.isEmpty()&&(this._edits[0].range.startColumn===this._initialSelection.endColumn&&this._edits[0].range.startLineNumber===this._initialSelection.endLineNumber?(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!0)):this._edits[0].range.endColumn===this._initialSelection.startColumn&&this._edits[0].range.endLineNumber===this._initialSelection.startLineNumber&&(i=!0,this._selectionId=t.trackSelection(this._initialSelection,!1))),i||(this._selectionId=t.trackSelection(this._initialSelection))}computeCursorState(e,t){return t.getTrackedSelection(this._selectionId)}}let EA=class{constructor(e,t){this.editor=e,this._languageConfigurationService=t,this.callOnDispose=new je,this.callOnModel=new je,this.callOnDispose.add(e.onDidChangeConfiguration(()=>this.update())),this.callOnDispose.add(e.onDidChangeModel(()=>this.update())),this.callOnDispose.add(e.onDidChangeModelLanguage(()=>this.update()))}update(){this.callOnModel.clear(),!(this.editor.getOption(12)<4||this.editor.getOption(55))&&this.editor.hasModel()&&this.callOnModel.add(this.editor.onDidPaste(({range:e})=>{this.trigger(e)}))}trigger(e){const t=this.editor.getSelections();if(t===null||t.length>1)return;const i=this.editor.getModel();if(!i||!i.tokenization.isCheapToTokenize(e.getStartPosition().lineNumber))return;const r=this.editor.getOption(12),{tabSize:o,indentSize:s,insertSpaces:a}=i.getOptions(),l=[],u={shiftIndent:g=>_c.shiftIndent(g,g.length+1,o,s,a),unshiftIndent:g=>_c.unshiftIndent(g,g.length+1,o,s,a)};let c=e.startLineNumber;for(;c<=e.endLineNumber;){if(this.shouldIgnoreLine(i,c)){c++;continue}break}if(c>e.endLineNumber)return;let d=i.getLineContent(c);if(!/\S/.test(d.substring(0,e.startColumn-1))){const g=UF(r,i,i.getLanguageId(),c,u,this._languageConfigurationService);if(g!==null){const m=Yi(d),f=fu(g,o),b=fu(m,o);if(f!==b){const C=TA(f,o,a);l.push({range:new K(c,1,c,m.length+1),text:C}),d=C+d.substr(m.length)}else{const C=q0e(i,c,this._languageConfigurationService);if(C===0||C===8)return}}}const h=c;for(;ci.tokenization.getLineTokens(f),getLanguageId:()=>i.getLanguageId(),getLanguageIdAtPosition:(f,b)=>i.getLanguageIdAtPosition(f,b)},getLineContent:f=>f===h?d:i.getLineContent(f)},i.getLanguageId(),c+1,u,this._languageConfigurationService);if(m!==null){const f=fu(m,o),b=fu(Yi(i.getLineContent(c+1)),o);if(f!==b){const C=f-b;for(let v=c+1;v<=e.endLineNumber;v++){const w=i.getLineContent(v),S=Yi(w),L=fu(S,o)+C,D=TA(L,o,a);D!==S&&l.push({range:new K(v,1,v,S.length+1),text:D})}}}}if(l.length>0){this.editor.pushUndoStop();const g=new tZt(l,this.editor.getSelection());this.editor.executeCommand("autoIndentOnPaste",g),this.editor.pushUndoStop()}}shouldIgnoreLine(e,t){e.tokenization.forceTokenization(t);const i=e.getLineFirstNonWhitespaceColumn(t);if(i===0)return!0;const r=e.tokenization.getLineTokens(t);if(r.getCount()>0){const o=r.findTokenIndexAtOffset(i);if(o>=0&&r.getStandardTokenType(o)===1)return!0}return!1}dispose(){this.callOnDispose.dispose(),this.callOnModel.dispose()}};EA.ID="editor.contrib.autoIndentOnPaste",EA=QMt([$Mt(1,$i)],EA);function Exe(n,e,t,i){if(n.getLineCount()===1&&n.getLineMaxColumn(1)===1)return;let r="";for(let s=0;sthis._currentResolve=void 0)),await this._currentResolve}}async _doResolve(e){var t,i,r;try{const o=await Promise.resolve(this.provider.resolveInlayHint(this.hint,e));this.hint.tooltip=(t=o==null?void 0:o.tooltip)!==null&&t!==void 0?t:this.hint.tooltip,this.hint.label=(i=o==null?void 0:o.label)!==null&&i!==void 0?i:this.hint.label,this.hint.textEdits=(r=o==null?void 0:o.textEdits)!==null&&r!==void 0?r:this.hint.textEdits,this._isResolved=!0}catch(o){wo(o),this._isResolved=!1}}}class Hv{static async create(e,t,i,r){const o=[],s=e.ordered(t).reverse().map(a=>i.map(async l=>{try{const u=await a.provideInlayHints(t,l,r);(u!=null&&u.hints.length||a.onDidChangeInlayHints)&&o.push([u??Hv._emptyInlayHintList,a])}catch(u){wo(u)}}));if(await Promise.all(s.flat()),r.isCancellationRequested||t.isDisposed())throw new bb;return new Hv(i,o,t)}constructor(e,t,i){this._disposables=new je,this.ranges=e,this.provider=new Set;const r=[];for(const[o,s]of t){this._disposables.add(o),this.provider.add(s);for(const a of o.hints){const l=i.validatePosition(a.position);let u="before";const c=Hv._getRangeAtPosition(i,l);let d;c.getStartPosition().isBefore(l)?(d=K.fromPositions(c.getStartPosition(),l),u="after"):(d=K.fromPositions(l,c.getEndPosition()),u="before"),r.push(new Q8(a,new Wxe(d,u),s))}}this.items=r.sort((o,s)=>ve.compare(o.hint.position,s.hint.position))}dispose(){this._disposables.dispose()}static _getRangeAtPosition(e,t){const i=t.lineNumber,r=e.getWordAtPosition(t);if(r)return new K(i,r.startColumn,i,r.endColumn);e.tokenization.tokenizeIfCheap(i);const o=e.tokenization.getLineTokens(i),s=t.column-1,a=o.findTokenIndexAtOffset(s);let l=o.getStartOffset(a),u=o.getEndOffset(a);return u-l===1&&(l===s&&a>1?(l=o.getStartOffset(a-1),u=o.getEndOffset(a-1)):u===s&&ai2(m)?m.command.id:qE()));for(const m of _a.all())h.has(m.desc.id)&&d.push(new su(m.desc.id,Wu.label(m.desc,{renderShortTitle:!0}),void 0,!0,async()=>{const f=await o.createModelReference(c.uri);try{const b=new Nw(f.object.textEditorModel,K.getStartPosition(c.range)),C=i.item.anchor.range;await l.invokeFunction(m.runEditorCommand.bind(m),e,b,C)}finally{f.dispose()}}));if(i.part.command){const{command:m}=i.part;d.push(new To),d.push(new su(m.id,m.title,void 0,!0,async()=>{var f;try{await a.executeCommand(m.id,...(f=m.arguments)!==null&&f!==void 0?f:[])}catch(b){u.notify({severity:vE.Error,source:i.item.provider.displayName,message:b})}}))}const g=e.getOption(127);s.showContextMenu({domForShadowRoot:g&&(r=e.getDomNode())!==null&&r!==void 0?r:void 0,getAnchor:()=>{const m=go(t);return{x:m.left,y:m.top+m.height+8}},getActions:()=>d,onHide:()=>{e.focus()},autoSelectFirstItem:!0})}async function Rxe(n,e,t,i){const o=await n.get(Fl).createModelReference(i.uri);await t.invokeWithinContext(async s=>{const a=e.hasSideBySideModifier,l=s.get(ln),u=Vl.inPeekEditor.getValue(l),c=!a&&t.getOption(88)&&!u;return new hA({openToSide:a,openInPeek:c,muteMessage:!0},{title:{value:"",original:""},id:"",precondition:void 0}).run(s,new Nw(o.object.textEditorModel,K.getStartPosition(i.range)),K.lift(i.range))}),o.dispose()}var sZt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Kw=function(n,e){return function(t,i){e(t,i,n)}},jw;class h3{constructor(){this._entries=new uv(50)}get(e){const t=h3._key(e);return this._entries.get(t)}set(e,t){const i=h3._key(e);this._entries.set(i,t)}static _key(e){return`${e.uri.toString()}/${e.getVersionId()}`}}const Gxe=Un("IInlayHintsCache");ti(Gxe,h3,1);class $8{constructor(e,t){this.item=e,this.index=t}get part(){const e=this.item.hint.label;return typeof e=="string"?{label:e}:e[this.index]}}class aZt{constructor(e,t){this.part=e,this.hasTriggerModifier=t}}let G0=jw=class{static get(e){var t;return(t=e.getContribution(jw.ID))!==null&&t!==void 0?t:void 0}constructor(e,t,i,r,o,s,a){this._editor=e,this._languageFeaturesService=t,this._inlayHintsCache=r,this._commandService=o,this._notificationService=s,this._instaService=a,this._disposables=new je,this._sessionDisposables=new je,this._decorationsMetadata=new Map,this._ruleFactory=new d_(this._editor),this._activeRenderMode=0,this._debounceInfo=i.for(t.inlayHintsProvider,"InlayHint",{min:25}),this._disposables.add(t.inlayHintsProvider.onDidChange(()=>this._update())),this._disposables.add(e.onDidChangeModel(()=>this._update())),this._disposables.add(e.onDidChangeModelLanguage(()=>this._update())),this._disposables.add(e.onDidChangeConfiguration(l=>{l.hasChanged(140)&&this._update()})),this._update()}dispose(){this._sessionDisposables.dispose(),this._removeAllDecorations(),this._disposables.dispose()}_update(){this._sessionDisposables.clear(),this._removeAllDecorations();const e=this._editor.getOption(140);if(e.enabled==="off")return;const t=this._editor.getModel();if(!t||!this._languageFeaturesService.inlayHintsProvider.has(t))return;if(e.enabled==="on")this._activeRenderMode=0;else{let a,l;e.enabled==="onUnlessPressed"?(a=0,l=1):(a=1,l=0),this._activeRenderMode=a,this._sessionDisposables.add(vf.getInstance().event(u=>{if(!this._editor.hasModel())return;const c=u.altKey&&u.ctrlKey&&!(u.shiftKey||u.metaKey)?l:a;if(c!==this._activeRenderMode){this._activeRenderMode=c;const d=this._editor.getModel(),h=this._copyInlayHintsWithCurrentAnchor(d);this._updateHintsDecorators([d.getFullModelRange()],h),s.schedule(0)}}))}const i=this._inlayHintsCache.get(t);i&&this._updateHintsDecorators([t.getFullModelRange()],i),this._sessionDisposables.add(en(()=>{t.isDisposed()||this._cacheHintsForFastRestore(t)}));let r;const o=new Set,s=new Vi(async()=>{const a=Date.now();r==null||r.dispose(!0),r=new co;const l=t.onWillDispose(()=>r==null?void 0:r.cancel());try{const u=r.token,c=await Hv.create(this._languageFeaturesService.inlayHintsProvider,t,this._getHintsRanges(),u);if(s.delay=this._debounceInfo.update(t,Date.now()-a),u.isCancellationRequested){c.dispose();return}for(const d of c.provider)typeof d.onDidChangeInlayHints=="function"&&!o.has(d)&&(o.add(d),this._sessionDisposables.add(d.onDidChangeInlayHints(()=>{s.isScheduled()||s.schedule()})));this._sessionDisposables.add(c),this._updateHintsDecorators(c.ranges,c.items),this._cacheHintsForFastRestore(t)}catch(u){fn(u)}finally{r.dispose(),l.dispose()}},this._debounceInfo.get(t));this._sessionDisposables.add(s),this._sessionDisposables.add(en(()=>r==null?void 0:r.dispose(!0))),s.schedule(0),this._sessionDisposables.add(this._editor.onDidScrollChange(a=>{(a.scrollTopChanged||!s.isScheduled())&&s.schedule()})),this._sessionDisposables.add(this._editor.onDidChangeModelContent(a=>{r==null||r.cancel();const l=Math.max(s.delay,1250);s.schedule(l)})),this._sessionDisposables.add(this._installDblClickGesture(()=>s.schedule(0))),this._sessionDisposables.add(this._installLinkGesture()),this._sessionDisposables.add(this._installContextMenu())}_installLinkGesture(){const e=new je,t=e.add(new FW(this._editor)),i=new je;return e.add(i),e.add(t.onMouseMoveOrRelevantKeyDown(r=>{const[o]=r,s=this._getInlayHintLabelPart(o),a=this._editor.getModel();if(!s||!a){i.clear();return}const l=new co;i.add(en(()=>l.dispose(!0))),s.item.resolve(l.token),this._activeInlayHintPart=s.part.command||s.part.location?new aZt(s,o.hasTriggerModifier):void 0;const u=a.validatePosition(s.item.hint.position).lineNumber,c=new K(u,1,u,a.getLineMaxColumn(u)),d=this._getInlineHintsForRange(c);this._updateHintsDecorators([c],d),i.add(en(()=>{this._activeInlayHintPart=void 0,this._updateHintsDecorators([c],d)}))})),e.add(t.onCancel(()=>i.clear())),e.add(t.onExecute(async r=>{const o=this._getInlayHintLabelPart(r);if(o){const s=o.part;s.location?this._instaService.invokeFunction(Rxe,r,this._editor,s.location):i6.is(s.command)&&await this._invokeCommand(s.command,o.item)}})),e}_getInlineHintsForRange(e){const t=new Set;for(const i of this._decorationsMetadata.values())e.containsRange(i.item.anchor.range)&&t.add(i.item);return Array.from(t)}_installDblClickGesture(e){return this._editor.onMouseUp(async t=>{if(t.event.detail!==2)return;const i=this._getInlayHintLabelPart(t);if(i&&(t.event.preventDefault(),await i.item.resolve(Hn.None),da(i.item.hint.textEdits))){const r=i.item.hint.textEdits.map(o=>vr.replace(K.lift(o.range),o.text));this._editor.executeEdits("inlayHint.default",r),e()}})}_installContextMenu(){return this._editor.onContextMenu(async e=>{if(!(e.event.target instanceof HTMLElement))return;const t=this._getInlayHintLabelPart(e);t&&await this._instaService.invokeFunction(oZt,this._editor,e.event.target,t)})}_getInlayHintLabelPart(e){var t;if(e.target.type!==6)return;const i=(t=e.target.detail.injectedText)===null||t===void 0?void 0:t.options;if(i instanceof jb&&(i==null?void 0:i.attachedData)instanceof $8)return i.attachedData}async _invokeCommand(e,t){var i;try{await this._commandService.executeCommand(e.id,...(i=e.arguments)!==null&&i!==void 0?i:[])}catch(r){this._notificationService.notify({severity:vE.Error,source:t.provider.displayName,message:r})}}_cacheHintsForFastRestore(e){const t=this._copyInlayHintsWithCurrentAnchor(e);this._inlayHintsCache.set(e,t)}_copyInlayHintsWithCurrentAnchor(e){const t=new Map;for(const[i,r]of this._decorationsMetadata){if(t.has(r.item))continue;const o=e.getDecorationRange(i);if(o){const s=new Wxe(o,r.item.anchor.direction),a=r.item.with({anchor:s});t.set(r.item,a)}}return Array.from(t.values())}_getHintsRanges(){const t=this._editor.getModel(),i=this._editor.getVisibleRangesPlusViewportAboveBelow(),r=[];for(const o of i.sort(K.compareRangesUsingStarts)){const s=t.validateRange(new K(o.startLineNumber-30,o.startColumn,o.endLineNumber+30,o.endColumn));r.length===0||!K.areIntersectingOrTouching(r[r.length-1],s)?r.push(s):r[r.length-1]=K.plusRange(r[r.length-1],s)}return r}_updateHintsDecorators(e,t){var i,r;const o=[],s=(b,C,v,w,S)=>{const F={content:v,inlineClassNameAffectsLetterSpacing:!0,inlineClassName:C.className,cursorStops:w,attachedData:S};o.push({item:b,classNameRef:C,decoration:{range:b.anchor.range,options:{description:"InlayHint",showIfCollapsed:b.anchor.range.isEmpty(),collapseOnReplaceEdit:!b.anchor.range.isEmpty(),stickiness:0,[b.anchor.direction]:this._activeRenderMode===0?F:void 0}}})},a=(b,C)=>{const v=this._ruleFactory.createClassNameRef({width:`${l/3|0}px`,display:"inline-block"});s(b,v," ",C?Ld.Right:Ld.None)},{fontSize:l,fontFamily:u,padding:c,isUniform:d}=this._getLayoutInfo(),h="--code-editorInlayHintsFontFamily";this._editor.getContainerDomNode().style.setProperty(h,u);let g={line:0,totalLen:0};for(const b of t){if(g.line!==b.anchor.range.startLineNumber&&(g={line:b.anchor.range.startLineNumber,totalLen:0}),g.totalLen>jw._MAX_LABEL_LEN)continue;b.hint.paddingLeft&&a(b,!1);const C=typeof b.hint.label=="string"?[{label:b.hint.label}]:b.hint.label;for(let v=0;v0&&(D=D.slice(0,-M)+"…",A=!0),s(b,this._ruleFactory.createClassNameRef(L),lZt(D),F&&!b.hint.paddingRight?Ld.Right:Ld.None,new $8(b,v)),A)break}if(b.hint.paddingRight&&a(b,!0),o.length>jw._MAX_DECORATORS)break}const m=[];for(const[b,C]of this._decorationsMetadata){const v=(r=this._editor.getModel())===null||r===void 0?void 0:r.getDecorationRange(b);v&&e.some(w=>w.containsRange(v))&&(m.push(b),C.classNameRef.dispose(),this._decorationsMetadata.delete(b))}const f=Mh.capture(this._editor);this._editor.changeDecorations(b=>{const C=b.deltaDecorations(m,o.map(v=>v.decoration));for(let v=0;vi)&&(o=i);const s=e.fontFamily||r;return{fontSize:o,fontFamily:s,padding:t,isUniform:!t&&s===r&&o===i}}_removeAllDecorations(){this._editor.removeDecorations(Array.from(this._decorationsMetadata.keys()));for(const e of this._decorationsMetadata.values())e.classNameRef.dispose();this._decorationsMetadata.clear()}};G0.ID="editor.contrib.InlayHints",G0._MAX_DECORATORS=1500,G0._MAX_LABEL_LEN=43,G0=jw=sZt([Kw(1,Tt),Kw(2,Xc),Kw(3,Gxe),Kw(4,Vr),Kw(5,Fo),Kw(6,tn)],G0);function lZt(n){return n.replace(/[ \t]/g," ")}ei.registerCommand("_executeInlayHintProvider",async(n,...e)=>{const[t,i]=e;Ci($t.isUri(t)),Ci(K.isIRange(i));const{inlayHintsProvider:r}=n.get(Tt),o=await n.get(Fl).createModelReference(t);try{const s=await Hv.create(r,o.object.textEditorModel,[K.lift(i)],Hn.None),a=s.items.map(l=>l.hint);return setTimeout(()=>s.dispose(),0),a}finally{o.dispose()}});var uZt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},WA=function(n,e){return function(t,i){e(t,i,n)}};class Vxe extends Ev{constructor(e,t,i,r){super(10,t,e.item.anchor.range,i,r,!0),this.part=e}}let q8=class extends fR{constructor(e,t,i,r,o,s){super(e,t,i,r,s),this._resolverService=o,this.hoverOrdinal=6}suggestHoverAnchor(e){var t;if(!G0.get(this._editor)||e.target.type!==6)return null;const r=(t=e.target.detail.injectedText)===null||t===void 0?void 0:t.options;return r instanceof jb&&r.attachedData instanceof $8?new Vxe(r.attachedData,this,e.event.posx,e.event.posy):null}computeSync(){return[]}computeAsync(e,t,i){return e instanceof Vxe?new So(async r=>{const{part:o}=e;if(await o.item.resolve(i),i.isCancellationRequested)return;let s;typeof o.item.hint.tooltip=="string"?s=new ga().appendText(o.item.hint.tooltip):o.item.hint.tooltip&&(s=o.item.hint.tooltip),s&&r.emitOne(new Vh(this,e.range,[s],!1,0)),da(o.item.hint.textEdits)&&r.emitOne(new Vh(this,e.range,[new ga().appendText(x("hint.dbl","Double-click to insert"))],!1,10001));let a;if(typeof o.part.tooltip=="string"?a=new ga().appendText(o.part.tooltip):o.part.tooltip&&(a=o.part.tooltip),a&&r.emitOne(new Vh(this,e.range,[a],!1,1)),o.part.location||o.part.command){let u;const d=this._editor.getOption(78)==="altKey"?$n?x("links.navigate.kb.meta.mac","cmd + click"):x("links.navigate.kb.meta","ctrl + click"):$n?x("links.navigate.kb.alt.mac","option + click"):x("links.navigate.kb.alt","alt + click");o.part.location&&o.part.command?u=new ga().appendText(x("hint.defAndCommand","Go to Definition ({0}), right click for more",d)):o.part.location?u=new ga().appendText(x("hint.def","Go to Definition ({0})",d)):o.part.command&&(u=new ga(`[${x("hint.cmd","Execute Command")}](${rZt(o.part.command)} "${o.part.command.title}") (${d})`,{isTrusted:!0})),u&&r.emitOne(new Vh(this,e.range,[u],!1,1e4))}const l=await this._resolveInlayHintLabelPartHover(o,i);for await(const u of l)r.emitOne(u)}):So.EMPTY}async _resolveInlayHintLabelPartHover(e,t){if(!e.part.location)return So.EMPTY;const{uri:i,range:r}=e.part.location,o=await this._resolverService.createModelReference(i);try{const s=o.object.textEditorModel;return this._languageFeaturesService.hoverProvider.has(s)?EK(this._languageFeaturesService.hoverProvider,s,new ve(r.startLineNumber,r.startColumn),t).filter(a=>!iw(a.hover.contents)).map(a=>new Vh(this,e.item.anchor.range,a.hover.contents,!1,2+a.ordinal)):So.EMPTY}finally{o.dispose()}}};q8=uZt([WA(1,Cr),WA(2,Rl),WA(3,Xn),WA(4,Fl),WA(5,Tt)],q8),Ii(G0.ID,G0,1),x0.register(q8);class cZt{constructor(e,t,i){this._editRange=e,this._originalSelection=t,this._text=i}getEditOperations(e,t){t.addTrackedEditOperation(this._editRange,this._text)}computeCursorState(e,t){const r=t.getInverseEditOperations()[0].range;return this._originalSelection.isEmpty()?new Gt(r.endLineNumber,Math.min(this._originalSelection.positionColumn,r.endColumn),r.endLineNumber,Math.min(this._originalSelection.positionColumn,r.endColumn)):new Gt(r.endLineNumber,r.endColumn-this._text.length,r.endLineNumber,r.endColumn)}}var dZt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},hZt=function(n,e){return function(t,i){e(t,i,n)}},g3;let V0=g3=class{static get(e){return e.getContribution(g3.ID)}constructor(e,t){this.editor=e,this.editorWorkerService=t,this.decorations=this.editor.createDecorationsCollection()}dispose(){}run(e,t){var i;(i=this.currentRequest)===null||i===void 0||i.cancel();const r=this.editor.getSelection(),o=this.editor.getModel();if(!o||!r)return;let s=r;if(s.startLineNumber!==s.endLineNumber)return;const a=new TIe(this.editor,5),l=o.uri;return this.editorWorkerService.canNavigateValueSet(l)?(this.currentRequest=$o(u=>this.editorWorkerService.navigateValueSet(l,s,t)),this.currentRequest.then(u=>{var c;if(!u||!u.range||!u.value||!a.validate(this.editor))return;const d=K.lift(u.range);let h=u.range;const g=u.value.length-(s.endColumn-s.startColumn);h={startLineNumber:h.startLineNumber,startColumn:h.startColumn,endLineNumber:h.endLineNumber,endColumn:h.startColumn+u.value.length},g>1&&(s=new Gt(s.startLineNumber,s.startColumn,s.endLineNumber,s.endColumn+g-1));const m=new cZt(d,s,u.value);this.editor.pushUndoStop(),this.editor.executeCommand(e,m),this.editor.pushUndoStop(),this.decorations.set([{range:h,options:g3.DECORATION}]),(c=this.decorationRemover)===null||c===void 0||c.cancel(),this.decorationRemover=xC(350),this.decorationRemover.then(()=>this.decorations.clear()).catch(fn)}).catch(fn)):Promise.resolve(void 0)}};V0.ID="editor.contrib.inPlaceReplaceController",V0.DECORATION=In.register({description:"in-place-replace",className:"valueSetReplacement"}),V0=g3=dZt([hZt(1,_d)],V0);class gZt extends Nt{constructor(){super({id:"editor.action.inPlaceReplace.up",label:x("InPlaceReplaceAction.previous.label","Replace with Previous Value"),alias:"Replace with Previous Value",precondition:ne.writable,kbOpts:{kbExpr:ne.editorTextFocus,primary:3159,weight:100}})}run(e,t){const i=V0.get(t);return i?i.run(this.id,!1):Promise.resolve(void 0)}}class mZt extends Nt{constructor(){super({id:"editor.action.inPlaceReplace.down",label:x("InPlaceReplaceAction.next.label","Replace with Next Value"),alias:"Replace with Next Value",precondition:ne.writable,kbOpts:{kbExpr:ne.editorTextFocus,primary:3161,weight:100}})}run(e,t){const i=V0.get(t);return i?i.run(this.id,!0):Promise.resolve(void 0)}}Ii(V0.ID,V0,4),it(gZt),it(mZt);class fZt extends Nt{constructor(){super({id:"expandLineSelection",label:x("expandLineSelection","Expand Line Selection"),alias:"Expand Line Selection",precondition:void 0,kbOpts:{weight:0,kbExpr:ne.textInputFocus,primary:2090}})}run(e,t,i){if(i=i||{},!t.hasModel())return;const r=t._getViewModel();r.model.pushStackElement(),r.setCursorStates(i.source,3,_s.expandLineSelection(r,r.getCursorStates())),r.revealPrimaryCursor(i.source,!0)}}it(fZt);class pZt{constructor(e,t){this._selection=e,this._cursors=t,this._selectionId=null}getEditOperations(e,t){const i=bZt(e,this._cursors);for(let r=0,o=i.length;rs.lineNumber===a.lineNumber?s.column-a.column:s.lineNumber-a.lineNumber);for(let s=e.length-2;s>=0;s--)e[s].lineNumber===e[s+1].lineNumber&&e.splice(s,1);const t=[];let i=0,r=0;const o=e.length;for(let s=1,a=n.getLineCount();s<=a;s++){const l=n.getLineContent(s),u=l.length+1;let c=0;if(r=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},vZt=function(n,e){return function(t,i){e(t,i,n)}};let ej=class{constructor(e,t,i,r){this._languageConfigurationService=r,this._selection=e,this._isMovingDown=t,this._autoIndent=i,this._selectionId=null,this._moveEndLineSelectionShrink=!1}getEditOperations(e,t){const i=e.getLineCount();if(this._isMovingDown&&this._selection.endLineNumber===i){this._selectionId=t.trackSelection(this._selection);return}if(!this._isMovingDown&&this._selection.startLineNumber===1){this._selectionId=t.trackSelection(this._selection);return}this._moveEndPositionDown=!1;let r=this._selection;r.startLineNumbere.tokenization.getLineTokens(c),getLanguageId:()=>e.getLanguageId(),getLanguageIdAtPosition:(c,d)=>e.getLanguageIdAtPosition(c,d)},getLineContent:null};if(r.startLineNumber===r.endLineNumber&&e.getLineMaxColumn(r.startLineNumber)===1){const c=r.startLineNumber,d=this._isMovingDown?c+1:c-1;e.getLineMaxColumn(d)===1?t.addEditOperation(new K(1,1,1,1),null):(t.addEditOperation(new K(c,1,c,1),e.getLineContent(d)),t.addEditOperation(new K(d,1,d,e.getLineMaxColumn(d)),null)),r=new Gt(d,1,d,1)}else{let c,d;if(this._isMovingDown){c=r.endLineNumber+1,d=e.getLineContent(c),t.addEditOperation(new K(c-1,e.getLineMaxColumn(c-1),c,e.getLineMaxColumn(c)),null);let h=d;if(this.shouldAutoIndent(e,r)){const g=this.matchEnterRule(e,l,o,c,r.startLineNumber-1);if(g!==null){const f=Yi(e.getLineContent(c)),b=g+fu(f,o);h=TA(b,o,a)+this.trimStart(d)}else{u.getLineContent=b=>b===r.startLineNumber?e.getLineContent(c):e.getLineContent(b);const f=UF(this._autoIndent,u,e.getLanguageIdAtPosition(c,1),r.startLineNumber,l,this._languageConfigurationService);if(f!==null){const b=Yi(e.getLineContent(c)),C=fu(f,o),v=fu(b,o);C!==v&&(h=TA(C,o,a)+this.trimStart(d))}}t.addEditOperation(new K(r.startLineNumber,1,r.startLineNumber,1),h+` +`);const m=this.matchEnterRuleMovingDown(e,l,o,r.startLineNumber,c,h);if(m!==null)m!==0&&this.getIndentEditsOfMovingBlock(e,t,r,o,a,m);else{u.getLineContent=b=>b===r.startLineNumber?h:b>=r.startLineNumber+1&&b<=r.endLineNumber+1?e.getLineContent(b-1):e.getLineContent(b);const f=UF(this._autoIndent,u,e.getLanguageIdAtPosition(c,1),r.startLineNumber+1,l,this._languageConfigurationService);if(f!==null){const b=Yi(e.getLineContent(r.startLineNumber)),C=fu(f,o),v=fu(b,o);if(C!==v){const w=C-v;this.getIndentEditsOfMovingBlock(e,t,r,o,a,w)}}}}else t.addEditOperation(new K(r.startLineNumber,1,r.startLineNumber,1),h+` +`)}else if(c=r.startLineNumber-1,d=e.getLineContent(c),t.addEditOperation(new K(c,1,c+1,1),null),t.addEditOperation(new K(r.endLineNumber,e.getLineMaxColumn(r.endLineNumber),r.endLineNumber,e.getLineMaxColumn(r.endLineNumber)),` +`+d),this.shouldAutoIndent(e,r)){u.getLineContent=g=>g===c?e.getLineContent(r.startLineNumber):e.getLineContent(g);const h=this.matchEnterRule(e,l,o,r.startLineNumber,r.startLineNumber-2);if(h!==null)h!==0&&this.getIndentEditsOfMovingBlock(e,t,r,o,a,h);else{const g=UF(this._autoIndent,u,e.getLanguageIdAtPosition(r.startLineNumber,1),c,l,this._languageConfigurationService);if(g!==null){const m=Yi(e.getLineContent(r.startLineNumber)),f=fu(g,o),b=fu(m,o);if(f!==b){const C=f-b;this.getIndentEditsOfMovingBlock(e,t,r,o,a,C)}}}}}this._selectionId=t.trackSelection(r)}buildIndentConverter(e,t,i){return{shiftIndent:r=>_c.shiftIndent(r,r.length+1,e,t,i),unshiftIndent:r=>_c.unshiftIndent(r,r.length+1,e,t,i)}}parseEnterResult(e,t,i,r,o){if(o){let s=o.indentation;o.indentAction===Lo.None||o.indentAction===Lo.Indent?s=o.indentation+o.appendText:o.indentAction===Lo.IndentOutdent?s=o.indentation:o.indentAction===Lo.Outdent&&(s=t.unshiftIndent(o.indentation)+o.appendText);const a=e.getLineContent(r);if(this.trimStart(a).indexOf(this.trimStart(s))>=0){const l=Yi(e.getLineContent(r));let u=Yi(s);const c=q0e(e,r,this._languageConfigurationService);c!==null&&c&2&&(u=t.unshiftIndent(u));const d=fu(u,i),h=fu(l,i);return d-h}}return null}matchEnterRuleMovingDown(e,t,i,r,o,s){if(mh(s)>=0){const a=e.getLineMaxColumn(o),l=f2(this._autoIndent,e,new K(o,a,o,a),this._languageConfigurationService);return this.parseEnterResult(e,t,i,r,l)}else{let a=r-1;for(;a>=1;){const c=e.getLineContent(a);if(mh(c)>=0)break;a--}if(a<1||r>e.getLineCount())return null;const l=e.getLineMaxColumn(a),u=f2(this._autoIndent,e,new K(a,l,a,l),this._languageConfigurationService);return this.parseEnterResult(e,t,i,r,u)}}matchEnterRule(e,t,i,r,o,s){let a=o;for(;a>=1;){let c;if(a===o&&s!==void 0?c=s:c=e.getLineContent(a),mh(c)>=0)break;a--}if(a<1||r>e.getLineCount())return null;const l=e.getLineMaxColumn(a),u=f2(this._autoIndent,e,new K(a,l,a,l),this._languageConfigurationService);return this.parseEnterResult(e,t,i,r,u)}trimStart(e){return e.replace(/^\s+/,"")}shouldAutoIndent(e,t){if(this._autoIndent<4||!e.tokenization.isCheapToTokenize(t.startLineNumber))return!1;const i=e.getLanguageIdAtPosition(t.startLineNumber,1),r=e.getLanguageIdAtPosition(t.endLineNumber,1);return!(i!==r||this._languageConfigurationService.getLanguageConfiguration(i).indentRulesSupport===null)}getIndentEditsOfMovingBlock(e,t,i,r,o,s){for(let a=i.startLineNumber;a<=i.endLineNumber;a++){const l=e.getLineContent(a),u=Yi(l),d=fu(u,r)+s,h=TA(d,r,o);h!==u&&(t.addEditOperation(new K(a,1,a,u.length+1),h),a===i.endLineNumber&&i.endColumn<=u.length+1&&h===""&&(this._moveEndLineSelectionShrink=!0))}}computeCursorState(e,t){let i=t.getTrackedSelection(this._selectionId);return this._moveEndPositionDown&&(i=i.setEndPosition(i.endLineNumber+1,1)),this._moveEndLineSelectionShrink&&i.startLineNumber=r)return null;const o=[];for(let a=i;a<=r;a++)o.push(n.getLineContent(a));let s=o.slice(0);return s.sort(X0.getCollator().compare),t===!0&&(s=s.reverse()),{startLineNumber:i,endLineNumber:r,before:o,after:s}}function yZt(n,e,t){const i=Pxe(n,e,t);return i?vr.replace(new K(i.startLineNumber,1,i.endLineNumber,n.getLineMaxColumn(i.endLineNumber)),i.after.join(` +`)):null}class Oxe extends Nt{constructor(e,t){super(t),this.down=e}run(e,t){if(!t.hasModel())return;const i=t.getSelections().map((s,a)=>({selection:s,index:a,ignore:!1}));i.sort((s,a)=>K.compareRangesUsingStarts(s.selection,a.selection));let r=i[0];for(let s=1;snew ve(a.positionLineNumber,a.positionColumn)));const o=t.getSelection();if(o===null)return;const s=new pZt(o,r);t.pushUndoStop(),t.executeCommands(this.id,[s]),t.pushUndoStop()}}m3.ID="editor.action.trimTrailingWhitespace";class AZt extends Nt{constructor(){super({id:"editor.action.deleteLines",label:x("lines.delete","Delete Line"),alias:"Delete Line",precondition:ne.writable,kbOpts:{kbExpr:ne.textInputFocus,primary:3113,weight:100}})}run(e,t){if(!t.hasModel())return;const i=this._getLinesToRemove(t),r=t.getModel();if(r.getLineCount()===1&&r.getLineMaxColumn(1)===1)return;let o=0;const s=[],a=[];for(let l=0,u=i.length;l1&&(d-=1,g=r.getLineMaxColumn(d)),s.push(vr.replace(new Gt(d,g,h,m),"")),a.push(new Gt(d-o,c.positionColumn,d-o,c.positionColumn)),o+=c.endLineNumber-c.startLineNumber+1}t.pushUndoStop(),t.executeEdits(this.id,s,a),t.pushUndoStop()}_getLinesToRemove(e){const t=e.getSelections().map(o=>{let s=o.endLineNumber;return o.startLineNumbero.startLineNumber===s.startLineNumber?o.endLineNumber-s.endLineNumber:o.startLineNumber-s.startLineNumber);const i=[];let r=t[0];for(let o=1;o=t[o].startLineNumber?r.endLineNumber=t[o].endLineNumber:(i.push(r),r=t[o]);return i.push(r),i}}class NZt extends Nt{constructor(){super({id:"editor.action.indentLines",label:x("lines.indent","Indent Line"),alias:"Indent Line",precondition:ne.writable,kbOpts:{kbExpr:ne.editorTextFocus,primary:2142,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,Nr.indent(i.cursorConfig,t.getModel(),t.getSelections())),t.pushUndoStop())}}class kZt extends Nt{constructor(){super({id:"editor.action.outdentLines",label:x("lines.outdent","Outdent Line"),alias:"Outdent Line",precondition:ne.writable,kbOpts:{kbExpr:ne.editorTextFocus,primary:2140,weight:100}})}run(e,t){C2.Outdent.runEditorCommand(e,t,null)}}class MZt extends Nt{constructor(){super({id:"editor.action.insertLineBefore",label:x("lines.insertBefore","Insert Line Above"),alias:"Insert Line Above",precondition:ne.writable,kbOpts:{kbExpr:ne.editorTextFocus,primary:3075,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,Nr.lineInsertBefore(i.cursorConfig,t.getModel(),t.getSelections())))}}class ZZt extends Nt{constructor(){super({id:"editor.action.insertLineAfter",label:x("lines.insertAfter","Insert Line Below"),alias:"Insert Line Below",precondition:ne.writable,kbOpts:{kbExpr:ne.editorTextFocus,primary:2051,weight:100}})}run(e,t){const i=t._getViewModel();i&&(t.pushUndoStop(),t.executeCommands(this.id,Nr.lineInsertAfter(i.cursorConfig,t.getModel(),t.getSelections())))}}class Yxe extends Nt{run(e,t){if(!t.hasModel())return;const i=t.getSelection(),r=this._getRangesToDelete(t),o=[];for(let l=0,u=r.length-1;lvr.replace(l,""));t.pushUndoStop(),t.executeEdits(this.id,a,s),t.pushUndoStop()}}class TZt extends Yxe{constructor(){super({id:"deleteAllLeft",label:x("lines.deleteAllLeft","Delete All Left"),alias:"Delete All Left",precondition:ne.writable,kbOpts:{kbExpr:ne.textInputFocus,primary:0,mac:{primary:2049},weight:100}})}_getEndCursorState(e,t){let i=null;const r=[];let o=0;return t.forEach(s=>{let a;if(s.endColumn===1&&o>0){const l=s.startLineNumber-o;a=new Gt(l,s.startColumn,l,s.startColumn)}else a=new Gt(s.startLineNumber,s.startColumn,s.startLineNumber,s.startColumn);o+=s.endLineNumber-s.startLineNumber,s.intersectRanges(e)?i=a:r.push(a)}),i&&r.unshift(i),r}_getRangesToDelete(e){const t=e.getSelections();if(t===null)return[];let i=t;const r=e.getModel();return r===null?[]:(i.sort(K.compareRangesUsingStarts),i=i.map(o=>{if(o.isEmpty())if(o.startColumn===1){const s=Math.max(1,o.startLineNumber-1),a=o.startLineNumber===1?1:r.getLineLength(s)+1;return new K(s,a,o.startLineNumber,1)}else return new K(o.startLineNumber,1,o.startLineNumber,o.startColumn);else return new K(o.startLineNumber,1,o.endLineNumber,o.endColumn)}),i)}}class EZt extends Yxe{constructor(){super({id:"deleteAllRight",label:x("lines.deleteAllRight","Delete All Right"),alias:"Delete All Right",precondition:ne.writable,kbOpts:{kbExpr:ne.textInputFocus,primary:0,mac:{primary:297,secondary:[2068]},weight:100}})}_getEndCursorState(e,t){let i=null;const r=[];for(let o=0,s=t.length,a=0;o{if(o.isEmpty()){const s=t.getLineMaxColumn(o.startLineNumber);return o.startColumn===s?new K(o.startLineNumber,o.startColumn,o.startLineNumber+1,1):new K(o.startLineNumber,o.startColumn,o.startLineNumber,s)}return o});return r.sort(K.compareRangesUsingStarts),r}}class WZt extends Nt{constructor(){super({id:"editor.action.joinLines",label:x("lines.joinLines","Join Lines"),alias:"Join Lines",precondition:ne.writable,kbOpts:{kbExpr:ne.editorTextFocus,primary:0,mac:{primary:296},weight:100}})}run(e,t){const i=t.getSelections();if(i===null)return;let r=t.getSelection();if(r===null)return;i.sort(K.compareRangesUsingStarts);const o=[],s=i.reduce((h,g)=>h.isEmpty()?h.endLineNumber===g.startLineNumber?(r.equalsSelection(h)&&(r=g),g):g.startLineNumber>h.endLineNumber+1?(o.push(h),g):new Gt(h.startLineNumber,h.startColumn,g.endLineNumber,g.endColumn):g.startLineNumber>h.endLineNumber?(o.push(h),g):new Gt(h.startLineNumber,h.startColumn,g.endLineNumber,g.endColumn));o.push(s);const a=t.getModel();if(a===null)return;const l=[],u=[];let c=r,d=0;for(let h=0,g=o.length;h=1){let W=!0;F===""&&(W=!1),W&&(F.charAt(F.length-1)===" "||F.charAt(F.length-1)===" ")&&(W=!1,F=F.replace(/[\s\uFEFF\xA0]+$/g," "));const Z=A.substr(M-1);F+=(W?" ":"")+Z,W?C=Z.length+1:C=Z.length}else C=0}const L=new K(f,b,v,w);if(!L.isEmpty()){let D;m.isEmpty()?(l.push(vr.replace(L,F)),D=new Gt(L.startLineNumber-d,F.length-C+1,f-d,F.length-C+1)):m.startLineNumber===m.endLineNumber?(l.push(vr.replace(L,F)),D=new Gt(m.startLineNumber-d,m.startColumn,m.endLineNumber-d,m.endColumn)):(l.push(vr.replace(L,F)),D=new Gt(m.startLineNumber-d,m.startColumn,m.startLineNumber-d,F.length-S)),K.intersectRanges(L,r)!==null?c=D:u.push(D)}d+=L.endLineNumber-L.startLineNumber}u.unshift(c),t.pushUndoStop(),t.executeEdits(this.id,l,u),t.pushUndoStop()}}class RZt extends Nt{constructor(){super({id:"editor.action.transpose",label:x("editor.transpose","Transpose Characters around the Cursor"),alias:"Transpose Characters around the Cursor",precondition:ne.writable})}run(e,t){const i=t.getSelections();if(i===null)return;const r=t.getModel();if(r===null)return;const o=[];for(let s=0,a=i.length;s=c){if(u.lineNumber===r.getLineCount())continue;const d=new K(u.lineNumber,Math.max(1,u.column-1),u.lineNumber+1,1),h=r.getValueInRange(d).split("").reverse().join("");o.push(new Us(new Gt(u.lineNumber,Math.max(1,u.column-1),u.lineNumber+1,1),h))}else{const d=new K(u.lineNumber,Math.max(1,u.column-1),u.lineNumber,u.column+1),h=r.getValueInRange(d).split("").reverse().join("");o.push(new iH(d,h,new Gt(u.lineNumber,u.column+1,u.lineNumber,u.column+1)))}}t.pushUndoStop(),t.executeCommands(this.id,o),t.pushUndoStop()}}class Qw extends Nt{run(e,t){const i=t.getSelections();if(i===null)return;const r=t.getModel();if(r===null)return;const o=t.getOption(130),s=[];for(const a of i)if(a.isEmpty()){const l=a.getStartPosition(),u=t.getConfiguredWordAtPosition(l);if(!u)continue;const c=new K(l.lineNumber,u.startColumn,l.lineNumber,u.endColumn),d=r.getValueInRange(c);s.push(vr.replace(c,this._modifyText(d,o)))}else{const l=r.getValueInRange(a);s.push(vr.replace(a,this._modifyText(l,o)))}t.pushUndoStop(),t.executeEdits(this.id,s),t.pushUndoStop()}}class GZt extends Qw{constructor(){super({id:"editor.action.transformToUppercase",label:x("editor.transformToUppercase","Transform to Uppercase"),alias:"Transform to Uppercase",precondition:ne.writable})}_modifyText(e,t){return e.toLocaleUpperCase()}}class VZt extends Qw{constructor(){super({id:"editor.action.transformToLowercase",label:x("editor.transformToLowercase","Transform to Lowercase"),alias:"Transform to Lowercase",precondition:ne.writable})}_modifyText(e,t){return e.toLocaleLowerCase()}}class Uv{constructor(e,t){this._pattern=e,this._flags=t,this._actual=null,this._evaluated=!1}get(){if(!this._evaluated){this._evaluated=!0;try{this._actual=new RegExp(this._pattern,this._flags)}catch{}}return this._actual}isSupported(){return this.get()!==null}}class RA extends Qw{constructor(){super({id:"editor.action.transformToTitlecase",label:x("editor.transformToTitlecase","Transform to Title Case"),alias:"Transform to Title Case",precondition:ne.writable})}_modifyText(e,t){const i=RA.titleBoundary.get();return i?e.toLocaleLowerCase().replace(i,r=>r.toLocaleUpperCase()):e}}RA.titleBoundary=new Uv("(^|[^\\p{L}\\p{N}']|((^|\\P{L})'))\\p{L}","gmu");class P0 extends Qw{constructor(){super({id:"editor.action.transformToSnakecase",label:x("editor.transformToSnakecase","Transform to Snake Case"),alias:"Transform to Snake Case",precondition:ne.writable})}_modifyText(e,t){const i=P0.caseBoundary.get(),r=P0.singleLetters.get();return!i||!r?e:e.replace(i,"$1_$2").replace(r,"$1_$2$3").toLocaleLowerCase()}}P0.caseBoundary=new Uv("(\\p{Ll})(\\p{Lu})","gmu"),P0.singleLetters=new Uv("(\\p{Lu}|\\p{N})(\\p{Lu})(\\p{Ll})","gmu");class GA extends Qw{constructor(){super({id:"editor.action.transformToCamelcase",label:x("editor.transformToCamelcase","Transform to Camel Case"),alias:"Transform to Camel Case",precondition:ne.writable})}_modifyText(e,t){const i=GA.wordBoundary.get();if(!i)return e;const r=e.split(i);return r.shift()+r.map(s=>s.substring(0,1).toLocaleUpperCase()+s.substring(1)).join("")}}GA.wordBoundary=new Uv("[_\\s-]","gm");class mp extends Qw{static isSupported(){return[this.caseBoundary,this.singleLetters,this.underscoreBoundary].every(t=>t.isSupported())}constructor(){super({id:"editor.action.transformToKebabcase",label:x("editor.transformToKebabcase","Transform to Kebab Case"),alias:"Transform to Kebab Case",precondition:ne.writable})}_modifyText(e,t){const i=mp.caseBoundary.get(),r=mp.singleLetters.get(),o=mp.underscoreBoundary.get();return!i||!r||!o?e:e.replace(o,"$1-$3").replace(i,"$1-$2").replace(r,"$1-$2").toLocaleLowerCase()}}mp.caseBoundary=new Uv("(\\p{Ll})(\\p{Lu})","gmu"),mp.singleLetters=new Uv("(\\p{Lu}|\\p{N})(\\p{Lu}\\p{Ll})","gmu"),mp.underscoreBoundary=new Uv("(\\S)(_)(\\S)","gm"),it(IZt),it(wZt),it(SZt),it(xZt),it(LZt),it(FZt),it(_Zt),it(DZt),it(m3),it(AZt),it(NZt),it(kZt),it(MZt),it(ZZt),it(TZt),it(EZt),it(WZt),it(RZt),it(GZt),it(VZt),P0.caseBoundary.isSupported()&&P0.singleLetters.isSupported()&&it(P0),GA.wordBoundary.isSupported()&&it(GA),RA.titleBoundary.isSupported()&&it(RA),mp.isSupported()&&it(mp);var XZt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},f3=function(n,e){return function(t,i){e(t,i,n)}},p3;const Hxe=new It("LinkedEditingInputVisible",!1),PZt="linked-editing-decoration";let O0=p3=class extends De{static get(e){return e.getContribution(p3.ID)}constructor(e,t,i,r,o){super(),this.languageConfigurationService=r,this._syncRangesToken=0,this._localToDispose=this._register(new je),this._editor=e,this._providers=i.linkedEditingRangeProvider,this._enabled=!1,this._visibleContextKey=Hxe.bindTo(t),this._debounceInformation=o.for(this._providers,"Linked Editing",{max:200}),this._currentDecorations=this._editor.createDecorationsCollection(),this._languageWordPattern=null,this._currentWordPattern=null,this._ignoreChangeEvent=!1,this._localToDispose=this._register(new je),this._rangeUpdateTriggerPromise=null,this._rangeSyncTriggerPromise=null,this._currentRequestCts=null,this._currentRequestPosition=null,this._currentRequestModelVersion=null,this._register(this._editor.onDidChangeModel(()=>this.reinitialize(!0))),this._register(this._editor.onDidChangeConfiguration(s=>{(s.hasChanged(70)||s.hasChanged(93))&&this.reinitialize(!1)})),this._register(this._providers.onDidChange(()=>this.reinitialize(!1))),this._register(this._editor.onDidChangeModelLanguage(()=>this.reinitialize(!0))),this.reinitialize(!0)}reinitialize(e){const t=this._editor.getModel(),i=t!==null&&(this._editor.getOption(70)||this._editor.getOption(93))&&this._providers.has(t);if(i===this._enabled&&!e||(this._enabled=i,this.clearRanges(),this._localToDispose.clear(),!i||t===null))return;this._localToDispose.add(ft.runAndSubscribe(t.onDidChangeLanguageConfiguration,()=>{this._languageWordPattern=this.languageConfigurationService.getLanguageConfiguration(t.getLanguageId()).getWordDefinition()}));const r=new gd(this._debounceInformation.get(t)),o=()=>{var l;this._rangeUpdateTriggerPromise=r.trigger(()=>this.updateRanges(),(l=this._debounceDuration)!==null&&l!==void 0?l:this._debounceInformation.get(t))},s=new gd(0),a=l=>{this._rangeSyncTriggerPromise=s.trigger(()=>this._syncRanges(l))};this._localToDispose.add(this._editor.onDidChangeCursorPosition(()=>{o()})),this._localToDispose.add(this._editor.onDidChangeModelContent(l=>{if(!this._ignoreChangeEvent&&this._currentDecorations.length>0){const u=this._currentDecorations.getRange(0);if(u&&l.changes.every(c=>u.intersectRanges(c.range))){a(this._syncRangesToken);return}}o()})),this._localToDispose.add({dispose:()=>{r.dispose(),s.dispose()}}),this.updateRanges()}_syncRanges(e){if(!this._editor.hasModel()||e!==this._syncRangesToken||this._currentDecorations.length===0)return;const t=this._editor.getModel(),i=this._currentDecorations.getRange(0);if(!i||i.startLineNumber!==i.endLineNumber)return this.clearRanges();const r=t.getValueInRange(i);if(this._currentWordPattern){const s=r.match(this._currentWordPattern);if((s?s[0].length:0)!==r.length)return this.clearRanges()}const o=[];for(let s=1,a=this._currentDecorations.length;s1){this.clearRanges();return}const i=this._editor.getModel(),r=i.getVersionId();if(this._currentRequestPosition&&this._currentRequestModelVersion===r){if(t.equals(this._currentRequestPosition))return;if(this._currentDecorations.length>0){const s=this._currentDecorations.getRange(0);if(s&&s.containsPosition(t))return}}this.clearRanges(),this._currentRequestPosition=t,this._currentRequestModelVersion=r;const o=this._currentRequestCts=new co;try{const s=new aa(!1),a=await Uxe(this._providers,i,t,o.token);if(this._debounceInformation.update(i,s.elapsed()),o!==this._currentRequestCts||(this._currentRequestCts=null,r!==i.getVersionId()))return;let l=[];a!=null&&a.ranges&&(l=a.ranges),this._currentWordPattern=(a==null?void 0:a.wordPattern)||this._languageWordPattern;let u=!1;for(let d=0,h=l.length;d({range:d,options:p3.DECORATION}));this._visibleContextKey.set(!0),this._currentDecorations.set(c),this._syncRangesToken++}catch(s){Ng(s)||fn(s),(this._currentRequestCts===o||!this._currentRequestCts)&&this.clearRanges()}}};O0.ID="editor.contrib.linkedEditing",O0.DECORATION=In.register({description:"linked-editing",stickiness:0,className:PZt}),O0=p3=XZt([f3(1,ln),f3(2,Tt),f3(3,$i),f3(4,Xc)],O0);class OZt extends Nt{constructor(){super({id:"editor.action.linkedEditing",label:x("linkedEditing.label","Start Linked Editing"),alias:"Start Linked Editing",precondition:Be.and(ne.writable,ne.hasRenameProvider),kbOpts:{kbExpr:ne.editorTextFocus,primary:3132,weight:100}})}runCommand(e,t){const i=e.get(yi),[r,o]=Array.isArray(t)&&t||[void 0,void 0];return $t.isUri(r)&&ve.isIPosition(o)?i.openCodeEditor({resource:r},i.getActiveCodeEditor()).then(s=>{s&&(s.setPosition(o),s.invokeWithinContext(a=>(this.reportTelemetry(a,s),this.run(a,s))))},fn):super.runCommand(e,t)}run(e,t){const i=O0.get(t);return i?Promise.resolve(i.updateRanges(!0)):Promise.resolve()}}const BZt=cs.bindToContribution(O0.get);mt(new BZt({id:"cancelLinkedEditingInput",precondition:Hxe,handler:n=>n.clearRanges(),kbOpts:{kbExpr:ne.editorTextFocus,weight:199,primary:9,secondary:[1033]}}));function Uxe(n,e,t,i){const r=n.ordered(e);return uY(r.map(o=>async()=>{try{return await o.provideLinkedEditingRanges(e,t,i)}catch(s){wo(s);return}}),o=>!!o&&da(o==null?void 0:o.ranges))}re("editor.linkedEditingBackground",{dark:Ee.fromHex("#f00").transparent(.3),light:Ee.fromHex("#f00").transparent(.3),hcDark:Ee.fromHex("#f00").transparent(.3),hcLight:Ee.white},x("editorLinkedEditingBackground","Background color when the editor auto renames on type.")),Wg("_executeLinkedEditingProvider",(n,e,t)=>{const{linkedEditingRangeProvider:i}=n.get(Tt);return Uxe(i,e,t,Hn.None)}),Ii(O0.ID,O0,1),it(OZt);let zZt=class{constructor(e,t){this._link=e,this._provider=t}toJSON(){return{range:this.range,url:this.url,tooltip:this.tooltip}}get range(){return this._link.range}get url(){return this._link.url}get tooltip(){return this._link.tooltip}async resolve(e){return this._link.url?this._link.url:typeof this._provider.resolveLink=="function"?Promise.resolve(this._provider.resolveLink(this._link,e)).then(t=>(this._link=t||this._link,this._link.url?this.resolve(e):Promise.reject(new Error("missing")))):Promise.reject(new Error("missing"))}};class b3{constructor(e){this._disposables=new je;let t=[];for(const[i,r]of e){const o=i.links.map(s=>new zZt(s,r));t=b3._union(t,o),iY(i)&&this._disposables.add(i)}this.links=t}dispose(){this._disposables.dispose(),this.links.length=0}static _union(e,t){const i=[];let r,o,s,a;for(r=0,s=0,o=e.length,a=t.length;rPromise.resolve(o.provideLinks(e,t)).then(a=>{a&&(i[s]=[a,o])},wo));return Promise.all(r).then(()=>{const o=new b3(Gg(i));return t.isCancellationRequested?(o.dispose(),new b3([])):o})}ei.registerCommand("_executeLinkProvider",async(n,...e)=>{let[t,i]=e;Ci(t instanceof $t),typeof i!="number"&&(i=0);const{linkProvider:r}=n.get(Tt),o=n.get(wr).getModel(t);if(!o)return[];const s=await Jxe(r,o,Hn.None);if(!s)return[];for(let l=0;l=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},C3=function(n,e){return function(t,i){e(t,i,n)}},tj;let $w=tj=class extends De{static get(e){return e.getContribution(tj.ID)}constructor(e,t,i,r,o){super(),this.editor=e,this.openerService=t,this.notificationService=i,this.languageFeaturesService=r,this.providers=this.languageFeaturesService.linkProvider,this.debounceInformation=o.for(this.providers,"Links",{min:1e3,max:4e3}),this.computeLinks=this._register(new Vi(()=>this.computeLinksNow(),1e3)),this.computePromise=null,this.activeLinksList=null,this.currentOccurrences={},this.activeLinkDecorationId=null;const s=this._register(new FW(e));this._register(s.onMouseMoveOrRelevantKeyDown(([a,l])=>{this._onEditorMouseMove(a,l)})),this._register(s.onExecute(a=>{this.onEditorMouseUp(a)})),this._register(s.onCancel(a=>{this.cleanUpActiveLinkDecoration()})),this._register(e.onDidChangeConfiguration(a=>{a.hasChanged(71)&&(this.updateDecorations([]),this.stop(),this.computeLinks.schedule(0))})),this._register(e.onDidChangeModelContent(a=>{this.editor.hasModel()&&this.computeLinks.schedule(this.debounceInformation.get(this.editor.getModel()))})),this._register(e.onDidChangeModel(a=>{this.currentOccurrences={},this.activeLinkDecorationId=null,this.stop(),this.computeLinks.schedule(0)})),this._register(e.onDidChangeModelLanguage(a=>{this.stop(),this.computeLinks.schedule(0)})),this._register(this.providers.onDidChange(a=>{this.stop(),this.computeLinks.schedule(0)})),this.computeLinks.schedule(0)}async computeLinksNow(){if(!this.editor.hasModel()||!this.editor.getOption(71))return;const e=this.editor.getModel();if(!e.isTooLargeForSyncing()&&this.providers.has(e)){this.activeLinksList&&(this.activeLinksList.dispose(),this.activeLinksList=null),this.computePromise=$o(t=>Jxe(this.providers,e,t));try{const t=new aa(!1);if(this.activeLinksList=await this.computePromise,this.debounceInformation.update(e,t.elapsed()),e.isDisposed())return;this.updateDecorations(this.activeLinksList.links)}catch(t){fn(t)}finally{this.computePromise=null}}}updateDecorations(e){const t=this.editor.getOption(78)==="altKey",i=[],r=Object.keys(this.currentOccurrences);for(const s of r){const a=this.currentOccurrences[s];i.push(a.decorationId)}const o=[];if(e)for(const s of e)o.push(qw.decoration(s,t));this.editor.changeDecorations(s=>{const a=s.deltaDecorations(i,o);this.currentOccurrences={},this.activeLinkDecorationId=null;for(let l=0,u=a.length;l{r.activate(o,i),this.activeLinkDecorationId=r.decorationId})}else this.cleanUpActiveLinkDecoration()}cleanUpActiveLinkDecoration(){const e=this.editor.getOption(78)==="altKey";if(this.activeLinkDecorationId){const t=this.currentOccurrences[this.activeLinkDecorationId];t&&this.editor.changeDecorations(i=>{t.deactivate(i,e)}),this.activeLinkDecorationId=null}}onEditorMouseUp(e){if(!this.isEnabled(e))return;const t=this.getLinkOccurrence(e.target.position);t&&this.openLinkOccurrence(t,e.hasSideBySideModifier,!0)}openLinkOccurrence(e,t,i=!1){if(!this.openerService)return;const{link:r}=e;r.resolve(Hn.None).then(o=>{if(typeof o=="string"&&this.editor.hasModel()){const s=this.editor.getModel().uri;if(s.scheme===xn.file&&o.startsWith(`${xn.file}:`)){const a=$t.parse(o);if(a.scheme===xn.file){const l=em(a);let u=null;l.startsWith("/./")?u=`.${l.substr(1)}`:l.startsWith("//./")&&(u=`.${l.substr(2)}`),u&&(o=zvt(s,u))}}}return this.openerService.open(o,{openToSide:t,fromUserGesture:i,allowContributedOpeners:!0,allowCommands:!0,fromWorkspace:!0})},o=>{const s=o instanceof Error?o.message:o;s==="invalid"?this.notificationService.warn(x("invalid.url","Failed to open this link because it is not well-formed: {0}",r.url.toString())):s==="missing"?this.notificationService.warn(x("missing.url","Failed to open this link because its target is missing.")):fn(o)})}getLinkOccurrence(e){if(!this.editor.hasModel()||!e)return null;const t=this.editor.getModel().getDecorationsInRange({startLineNumber:e.lineNumber,startColumn:e.column,endLineNumber:e.lineNumber,endColumn:e.column},0,!0);for(const i of t){const r=this.currentOccurrences[i.id];if(r)return r}return null}isEnabled(e,t){return!!(e.target.type===6&&(e.hasTriggerModifier||t&&t.keyCodeIsTriggerKey))}stop(){var e;this.computeLinks.cancel(),this.activeLinksList&&((e=this.activeLinksList)===null||e===void 0||e.dispose(),this.activeLinksList=null),this.computePromise&&(this.computePromise.cancel(),this.computePromise=null)}dispose(){super.dispose(),this.stop()}};$w.ID="editor.linkDetector",$w=tj=YZt([C3(1,Rl),C3(2,Fo),C3(3,Tt),C3(4,Xc)],$w);const Kxe={general:In.register({description:"detected-link",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link"}),active:In.register({description:"detected-link-active",stickiness:1,collapseOnReplaceEdit:!0,inlineClassName:"detected-link-active"})};class qw{static decoration(e,t){return{range:e.range,options:qw._getOptions(e,t,!1)}}static _getOptions(e,t,i){const r={...i?Kxe.active:Kxe.general};return r.hoverMessage=HZt(e,t),r}constructor(e,t){this.link=e,this.decorationId=t}activate(e,t){e.changeDecorationOptions(this.decorationId,qw._getOptions(this.link,t,!0))}deactivate(e,t){e.changeDecorationOptions(this.decorationId,qw._getOptions(this.link,t,!1))}}function HZt(n,e){const t=n.url&&/^command:/i.test(n.url.toString()),i=n.tooltip?n.tooltip:t?x("links.navigate.executeCmd","Execute command"):x("links.navigate.follow","Follow link"),r=e?$n?x("links.navigate.kb.meta.mac","cmd + click"):x("links.navigate.kb.meta","ctrl + click"):$n?x("links.navigate.kb.alt.mac","option + click"):x("links.navigate.kb.alt","alt + click");if(n.url){let o="";if(/^command:/i.test(n.url.toString())){const a=n.url.toString().match(/^command:([^?#]+)/);if(a){const l=a[1];o=x("tooltip.explanation","Execute command {0}",l)}}return new ga("",!0).appendLink(n.url.toString(!0).replace(/ /g,"%20"),i,o).appendMarkdown(` (${r})`)}else return new ga().appendText(`${i} (${r})`)}class UZt extends Nt{constructor(){super({id:"editor.action.openLink",label:x("label","Open Link"),alias:"Open Link",precondition:void 0})}run(e,t){const i=$w.get(t);if(!i||!t.hasModel())return;const r=t.getSelections();for(const o of r){const s=i.getLinkOccurrence(o.getEndPosition());s&&i.openLinkOccurrence(s,!1)}}}Ii($w.ID,$w,1),it(UZt);class nj extends De{constructor(e){super(),this._editor=e,this._register(this._editor.onMouseDown(t=>{const i=this._editor.getOption(117);i>=0&&t.target.type===6&&t.target.position.column>=i&&this._editor.updateOptions({stopRenderingLineAfter:-1})}))}}nj.ID="editor.contrib.longLinesHelper",Ii(nj.ID,nj,2);const v3=re("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hcDark:null,hcLight:null},x("wordHighlight","Background color of a symbol during read-access, like reading a variable. The color must not be opaque so as not to hide underlying decorations."),!0);re("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hcDark:null,hcLight:null},x("wordHighlightStrong","Background color of a symbol during write-access, like writing to a variable. The color must not be opaque so as not to hide underlying decorations."),!0),re("editor.wordHighlightTextBackground",{light:v3,dark:v3,hcDark:v3,hcLight:v3},x("wordHighlightText","Background color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0);const y3=re("editor.wordHighlightBorder",{light:null,dark:null,hcDark:dr,hcLight:dr},x("wordHighlightBorder","Border color of a symbol during read-access, like reading a variable."));re("editor.wordHighlightStrongBorder",{light:null,dark:null,hcDark:dr,hcLight:dr},x("wordHighlightStrongBorder","Border color of a symbol during write-access, like writing to a variable.")),re("editor.wordHighlightTextBorder",{light:y3,dark:y3,hcDark:y3,hcLight:y3},x("wordHighlightTextBorder","Border color of a textual occurrence for a symbol."));const JZt=re("editorOverviewRuler.wordHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hcDark:"#A0A0A0CC",hcLight:"#A0A0A0CC"},x("overviewRulerWordHighlightForeground","Overview ruler marker color for symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),KZt=re("editorOverviewRuler.wordHighlightStrongForeground",{dark:"#C0A0C0CC",light:"#C0A0C0CC",hcDark:"#C0A0C0CC",hcLight:"#C0A0C0CC"},x("overviewRulerWordHighlightStrongForeground","Overview ruler marker color for write-access symbol highlights. The color must not be opaque so as not to hide underlying decorations."),!0),jZt=re("editorOverviewRuler.wordHighlightTextForeground",{dark:u_,light:u_,hcDark:u_,hcLight:u_},x("overviewRulerWordHighlightTextForeground","Overview ruler marker color of a textual occurrence for a symbol. The color must not be opaque so as not to hide underlying decorations."),!0),QZt=In.register({description:"word-highlight-strong",stickiness:1,className:"wordHighlightStrong",overviewRuler:{color:Br(KZt),position:Mc.Center},minimap:{color:Br(ST),position:uu.Inline}}),$Zt=In.register({description:"word-highlight-text",stickiness:1,className:"wordHighlightText",overviewRuler:{color:Br(jZt),position:Mc.Center},minimap:{color:Br(ST),position:uu.Inline}}),qZt=In.register({description:"selection-highlight-overview",stickiness:1,className:"selectionHighlight",overviewRuler:{color:Br(u_),position:Mc.Center},minimap:{color:Br(ST),position:uu.Inline}}),e9t=In.register({description:"selection-highlight",stickiness:1,className:"selectionHighlight"}),t9t=In.register({description:"word-highlight",stickiness:1,className:"wordHighlight",overviewRuler:{color:Br(JZt),position:Mc.Center},minimap:{color:Br(ST),position:uu.Inline}});function n9t(n){return n===w_.Write?QZt:n===w_.Text?$Zt:t9t}function i9t(n){return n?e9t:qZt}kc((n,e)=>{const t=n.getColor(GH);t&&e.addRule(`.monaco-editor .selectionHighlight { background-color: ${t.transparent(.5)}; }`)});var r9t=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},o9t=function(n,e){return function(t,i){e(t,i,n)}},ij;function B0(n,e){const t=e.filter(i=>!n.find(r=>r.equals(i)));if(t.length>=1){const i=t.map(o=>`line ${o.viewState.position.lineNumber} column ${o.viewState.position.column}`).join(", "),r=t.length===1?x("cursorAdded","Cursor added: {0}",i):x("cursorsAdded","Cursors added: {0}",i);yf(r)}}class s9t extends Nt{constructor(){super({id:"editor.action.insertCursorAbove",label:x("mutlicursor.insertAbove","Add Cursor Above"),alias:"Add Cursor Above",precondition:void 0,kbOpts:{kbExpr:ne.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"3_multi",title:x({key:"miInsertCursorAbove",comment:["&& denotes a mnemonic"]},"&&Add Cursor Above"),order:2}})}run(e,t,i){if(!t.hasModel())return;let r=!0;i&&i.logicalLine===!1&&(r=!1);const o=t._getViewModel();if(o.cursorConfig.readOnly)return;o.model.pushStackElement();const s=o.getCursorStates();o.setCursorStates(i.source,3,_s.addCursorUp(o,s,r)),o.revealTopMostCursor(i.source),B0(s,o.getCursorStates())}}class a9t extends Nt{constructor(){super({id:"editor.action.insertCursorBelow",label:x("mutlicursor.insertBelow","Add Cursor Below"),alias:"Add Cursor Below",precondition:void 0,kbOpts:{kbExpr:ne.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"3_multi",title:x({key:"miInsertCursorBelow",comment:["&& denotes a mnemonic"]},"A&&dd Cursor Below"),order:3}})}run(e,t,i){if(!t.hasModel())return;let r=!0;i&&i.logicalLine===!1&&(r=!1);const o=t._getViewModel();if(o.cursorConfig.readOnly)return;o.model.pushStackElement();const s=o.getCursorStates();o.setCursorStates(i.source,3,_s.addCursorDown(o,s,r)),o.revealBottomMostCursor(i.source),B0(s,o.getCursorStates())}}class l9t extends Nt{constructor(){super({id:"editor.action.insertCursorAtEndOfEachLineSelected",label:x("mutlicursor.insertAtEndOfEachLineSelected","Add Cursors to Line Ends"),alias:"Add Cursors to Line Ends",precondition:void 0,kbOpts:{kbExpr:ne.editorTextFocus,primary:1575,weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"3_multi",title:x({key:"miInsertCursorAtEndOfEachLineSelected",comment:["&& denotes a mnemonic"]},"Add C&&ursors to Line Ends"),order:4}})}getCursorsForSelection(e,t,i){if(!e.isEmpty()){for(let r=e.startLineNumber;r1&&i.push(new Gt(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn))}}run(e,t){if(!t.hasModel())return;const i=t.getModel(),r=t.getSelections(),o=t._getViewModel(),s=o.getCursorStates(),a=[];r.forEach(l=>this.getCursorsForSelection(l,i,a)),a.length>0&&t.setSelections(a),B0(s,o.getCursorStates())}}class u9t extends Nt{constructor(){super({id:"editor.action.addCursorsToBottom",label:x("mutlicursor.addCursorsToBottom","Add Cursors To Bottom"),alias:"Add Cursors To Bottom",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getSelections(),r=t.getModel().getLineCount(),o=[];for(let l=i[0].startLineNumber;l<=r;l++)o.push(new Gt(l,i[0].startColumn,l,i[0].endColumn));const s=t._getViewModel(),a=s.getCursorStates();o.length>0&&t.setSelections(o),B0(a,s.getCursorStates())}}class c9t extends Nt{constructor(){super({id:"editor.action.addCursorsToTop",label:x("mutlicursor.addCursorsToTop","Add Cursors To Top"),alias:"Add Cursors To Top",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getSelections(),r=[];for(let a=i[0].startLineNumber;a>=1;a--)r.push(new Gt(a,i[0].startColumn,a,i[0].endColumn));const o=t._getViewModel(),s=o.getCursorStates();r.length>0&&t.setSelections(r),B0(s,o.getCursorStates())}}class I3{constructor(e,t,i){this.selections=e,this.revealRange=t,this.revealScrollType=i}}class VA{static create(e,t){if(!e.hasModel())return null;const i=t.getState();if(!e.hasTextFocus()&&i.isRevealed&&i.searchString.length>0)return new VA(e,t,!1,i.searchString,i.wholeWord,i.matchCase,null);let r=!1,o,s;const a=e.getSelections();a.length===1&&a[0].isEmpty()?(r=!0,o=!0,s=!0):(o=i.wholeWord,s=i.matchCase);const l=e.getSelection();let u,c=null;if(l.isEmpty()){const d=e.getConfiguredWordAtPosition(l.getStartPosition());if(!d)return null;u=d.word,c=new Gt(l.startLineNumber,d.startColumn,l.startLineNumber,d.endColumn)}else u=e.getModel().getValueInRange(l).replace(/\r\n/g,` +`);return new VA(e,t,r,u,o,s,c)}constructor(e,t,i,r,o,s,a){this._editor=e,this.findController=t,this.isDisconnectedFromFindController=i,this.searchText=r,this.wholeWord=o,this.matchCase=s,this.currentMatch=a}addSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new I3(t.concat(e),e,0)}moveSelectionToNextFindMatch(){if(!this._editor.hasModel())return null;const e=this._getNextMatch();if(!e)return null;const t=this._editor.getSelections();return new I3(t.slice(0,t.length-1).concat(e),e,0)}_getNextMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const r=this.currentMatch;return this.currentMatch=null,r}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findNextMatch(this.searchText,t.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(130):null,!1);return i?new Gt(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}addSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new I3(t.concat(e),e,0)}moveSelectionToPreviousFindMatch(){if(!this._editor.hasModel())return null;const e=this._getPreviousMatch();if(!e)return null;const t=this._editor.getSelections();return new I3(t.slice(0,t.length-1).concat(e),e,0)}_getPreviousMatch(){if(!this._editor.hasModel())return null;if(this.currentMatch){const r=this.currentMatch;return this.currentMatch=null,r}this.findController.highlightFindOptions();const e=this._editor.getSelections(),t=e[e.length-1],i=this._editor.getModel().findPreviousMatch(this.searchText,t.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getOption(130):null,!1);return i?new Gt(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null}selectAll(e){if(!this._editor.hasModel())return[];this.findController.highlightFindOptions();const t=this._editor.getModel();return e?t.findMatches(this.searchText,e,!1,this.matchCase,this.wholeWord?this._editor.getOption(130):null,!1,1073741824):t.findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getOption(130):null,!1,1073741824)}}class Jv extends De{static get(e){return e.getContribution(Jv.ID)}constructor(e){super(),this._sessionDispose=this._register(new je),this._editor=e,this._ignoreSelectionChange=!1,this._session=null}dispose(){this._endSession(),super.dispose()}_beginSessionIfNeeded(e){if(!this._session){const t=VA.create(this._editor,e);if(!t)return;this._session=t;const i={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(i.wholeWordOverride=1,i.matchCaseOverride=1,i.isRegexOverride=2),e.getState().change(i,!1),this._sessionDispose.add(this._editor.onDidChangeCursorSelection(r=>{this._ignoreSelectionChange||this._endSession()})),this._sessionDispose.add(this._editor.onDidBlurEditorText(()=>{this._endSession()})),this._sessionDispose.add(e.getState().onFindReplaceStateChange(r=>{(r.matchCase||r.wholeWord)&&this._endSession()}))}}_endSession(){if(this._sessionDispose.clear(),this._session&&this._session.isDisconnectedFromFindController){const e={wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0};this._session.findController.getState().change(e,!1)}this._session=null}_setSelections(e){this._ignoreSelectionChange=!0,this._editor.setSelections(e),this._ignoreSelectionChange=!1}_expandEmptyToWord(e,t){if(!t.isEmpty())return t;const i=this._editor.getConfiguredWordAtPosition(t.getStartPosition());return i?new Gt(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):t}_applySessionResult(e){e&&(this._setSelections(e.selections),e.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(e.revealRange,e.revealScrollType))}getSession(e){return this._session}addSelectionToNextFindMatch(e){if(this._editor.hasModel()){if(!this._session){const t=this._editor.getSelections();if(t.length>1){const r=e.getState().matchCase;if(!jxe(this._editor.getModel(),t,r)){const s=this._editor.getModel(),a=[];for(let l=0,u=t.length;l0&&i.isRegex){const r=this._editor.getModel();i.searchScope?t=r.findMatches(i.searchString,i.searchScope,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(130):null,!1,1073741824):t=r.findMatches(i.searchString,!0,i.isRegex,i.matchCase,i.wholeWord?this._editor.getOption(130):null,!1,1073741824)}else{if(this._beginSessionIfNeeded(e),!this._session)return;t=this._session.selectAll(i.searchScope)}if(t.length>0){const r=this._editor.getSelection();for(let o=0,s=t.length;onew Gt(o.range.startLineNumber,o.range.startColumn,o.range.endLineNumber,o.range.endColumn)))}}}Jv.ID="editor.contrib.multiCursorController";class eS extends Nt{run(e,t){const i=Jv.get(t);if(!i)return;const r=t._getViewModel();if(r){const o=r.getCursorStates(),s=ul.get(t);if(s)this._run(i,s);else{const a=e.get(tn).createInstance(ul,t);this._run(i,a),a.dispose()}B0(o,r.getCursorStates())}}}class d9t extends eS{constructor(){super({id:"editor.action.addSelectionToNextFindMatch",label:x("addSelectionToNextFindMatch","Add Selection To Next Find Match"),alias:"Add Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:ne.focus,primary:2082,weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"3_multi",title:x({key:"miAddSelectionToNextFindMatch",comment:["&& denotes a mnemonic"]},"Add &&Next Occurrence"),order:5}})}_run(e,t){e.addSelectionToNextFindMatch(t)}}class h9t extends eS{constructor(){super({id:"editor.action.addSelectionToPreviousFindMatch",label:x("addSelectionToPreviousFindMatch","Add Selection To Previous Find Match"),alias:"Add Selection To Previous Find Match",precondition:void 0,menuOpts:{menuId:$.MenubarSelectionMenu,group:"3_multi",title:x({key:"miAddSelectionToPreviousFindMatch",comment:["&& denotes a mnemonic"]},"Add P&&revious Occurrence"),order:6}})}_run(e,t){e.addSelectionToPreviousFindMatch(t)}}class g9t extends eS{constructor(){super({id:"editor.action.moveSelectionToNextFindMatch",label:x("moveSelectionToNextFindMatch","Move Last Selection To Next Find Match"),alias:"Move Last Selection To Next Find Match",precondition:void 0,kbOpts:{kbExpr:ne.focus,primary:ko(2089,2082),weight:100}})}_run(e,t){e.moveSelectionToNextFindMatch(t)}}class m9t extends eS{constructor(){super({id:"editor.action.moveSelectionToPreviousFindMatch",label:x("moveSelectionToPreviousFindMatch","Move Last Selection To Previous Find Match"),alias:"Move Last Selection To Previous Find Match",precondition:void 0})}_run(e,t){e.moveSelectionToPreviousFindMatch(t)}}class f9t extends eS{constructor(){super({id:"editor.action.selectHighlights",label:x("selectAllOccurrencesOfFindMatch","Select All Occurrences of Find Match"),alias:"Select All Occurrences of Find Match",precondition:void 0,kbOpts:{kbExpr:ne.focus,primary:3114,weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"3_multi",title:x({key:"miSelectHighlights",comment:["&& denotes a mnemonic"]},"Select All &&Occurrences"),order:7}})}_run(e,t){e.selectAll(t)}}class p9t extends eS{constructor(){super({id:"editor.action.changeAll",label:x("changeAll.label","Change All Occurrences"),alias:"Change All Occurrences",precondition:Be.and(ne.writable,ne.editorTextFocus),kbOpts:{kbExpr:ne.editorTextFocus,primary:2108,weight:100},contextMenuOpts:{group:"1_modification",order:1.2}})}_run(e,t){e.selectAll(t)}}class b9t{constructor(e,t,i,r,o){this._model=e,this._searchText=t,this._matchCase=i,this._wordSeparators=r,this._modelVersionId=this._model.getVersionId(),this._cachedFindMatches=null,o&&this._model===o._model&&this._searchText===o._searchText&&this._matchCase===o._matchCase&&this._wordSeparators===o._wordSeparators&&this._modelVersionId===o._modelVersionId&&(this._cachedFindMatches=o._cachedFindMatches)}findMatches(){return this._cachedFindMatches===null&&(this._cachedFindMatches=this._model.findMatches(this._searchText,!0,!1,this._matchCase,this._wordSeparators,!1).map(e=>e.range),this._cachedFindMatches.sort(K.compareRangesUsingStarts)),this._cachedFindMatches}}let XA=ij=class extends De{constructor(e,t){super(),this._languageFeaturesService=t,this.editor=e,this._isEnabled=e.getOption(108),this._decorations=e.createDecorationsCollection(),this.updateSoon=this._register(new Vi(()=>this._update(),300)),this.state=null,this._register(e.onDidChangeConfiguration(r=>{this._isEnabled=e.getOption(108)})),this._register(e.onDidChangeCursorSelection(r=>{this._isEnabled&&(r.selection.isEmpty()?r.reason===3?(this.state&&this._setState(null),this.updateSoon.schedule()):this._setState(null):this._update())})),this._register(e.onDidChangeModel(r=>{this._setState(null)})),this._register(e.onDidChangeModelContent(r=>{this._isEnabled&&this.updateSoon.schedule()}));const i=ul.get(e);i&&this._register(i.getState().onFindReplaceStateChange(r=>{this._update()})),this.updateSoon.schedule()}_update(){this._setState(ij._createState(this.state,this._isEnabled,this.editor))}static _createState(e,t,i){if(!t||!i.hasModel())return null;const r=i.getSelection();if(r.startLineNumber!==r.endLineNumber)return null;const o=Jv.get(i);if(!o)return null;const s=ul.get(i);if(!s)return null;let a=o.getSession(s);if(!a){const c=i.getSelections();if(c.length>1){const h=s.getState().matchCase;if(!jxe(i.getModel(),c,h))return null}a=VA.create(i,s)}if(!a||a.currentMatch||/^[ \t]+$/.test(a.searchText)||a.searchText.length>200)return null;const l=s.getState(),u=l.matchCase;if(l.isRevealed){let c=l.searchString;u||(c=c.toLowerCase());let d=a.searchText;if(u||(d=d.toLowerCase()),c===d&&a.matchCase===l.matchCase&&a.wholeWord===l.wholeWord&&!l.isRegex)return null}return new b9t(i.getModel(),a.searchText,a.matchCase,a.wholeWord?i.getOption(130):null,e)}_setState(e){if(this.state=e,!this.state){this._decorations.clear();return}if(!this.editor.hasModel())return;const t=this.editor.getModel();if(t.isTooLargeForTokenization())return;const i=this.state.findMatches(),r=this.editor.getSelections();r.sort(K.compareRangesUsingStarts);const o=[];for(let u=0,c=0,d=i.length,h=r.length;u=h)o.push(g),u++;else{const m=K.compareRangesUsingStarts(g,r[c]);m<0?((r[c].isEmpty()||!K.areIntersecting(g,r[c]))&&o.push(g),u++):(m>0||u++,c++)}}const s=this.editor.getOption(81)!=="off",a=this._languageFeaturesService.documentHighlightProvider.has(t)&&s,l=o.map(u=>({range:u,options:i9t(a)}));this._decorations.set(l)}dispose(){this._setState(null),super.dispose()}};XA.ID="editor.contrib.selectionHighlighter",XA=ij=r9t([o9t(1,Tt)],XA);function jxe(n,e,t){const i=Qxe(n,e[0],!t);for(let r=1,o=e.length;r=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},L9t=function(n,e){return function(t,i){e(t,i,n)}};const rj="inline-edit";let oj=class extends De{constructor(e,t,i){super(),this.editor=e,this.model=t,this.languageService=i,this.isDisposed=ci(this,!1),this.currentTextModel=mr(this.editor.onDidChangeModel,()=>this.editor.getModel()),this.uiState=gn(this,r=>{var o;if(this.isDisposed.read(r))return;const s=this.currentTextModel.read(r);if(s!==this.model.targetTextModel.read(r))return;const a=this.model.ghostText.read(r);if(!a)return;let l=(o=this.model.range)===null||o===void 0?void 0:o.read(r);l&&l.startLineNumber===l.endLineNumber&&l.startColumn===l.endColumn&&(l=void 0);const u=(l?l.startLineNumber===l.endLineNumber:!0)&&a.parts.length===1&&a.parts[0].lines.length===1,c=a.parts.length===1&&a.parts[0].lines.every(w=>w.length===0),d=[],h=[];function g(w,S){if(h.length>0){const F=h[h.length-1];S&&F.decorations.push(new el(F.content.length+1,F.content.length+1+w[0].length,S,0)),F.content+=w[0],w=w.slice(1)}for(const F of w)h.push({content:F,decorations:S?[new el(1,F.length+1,S,0)]:[]})}const m=s.getLineContent(a.lineNumber);let f,b=0;if(!c){for(const w of a.parts){let S=w.lines;l&&!u&&(g(S,rj),S=[]),f===void 0?(d.push({column:w.column,text:S[0],preview:w.preview}),S=S.slice(1)):g([m.substring(b,w.column-1)],void 0),S.length>0&&(g(S,rj),f===void 0&&w.column<=m.length&&(f=w.column)),b=w.column-1}f!==void 0&&g([m.substring(b)],void 0)}const C=f!==void 0?new sxe(f,m.length+1):void 0,v=u||!l?a.lineNumber:l.endLineNumber-1;return{inlineTexts:d,additionalLines:h,hiddenRange:C,lineNumber:v,additionalReservedLineCount:this.model.minReservedLineCount.read(r),targetTextModel:s,range:l,isSingleLine:u,isPureRemove:c,backgroundColoring:this.model.backgroundColoring.read(r)}}),this.decorations=gn(this,r=>{const o=this.uiState.read(r);if(!o)return[];const s=[];if(o.hiddenRange&&s.push({range:o.hiddenRange.toRange(o.lineNumber),options:{inlineClassName:"inline-edit-hidden",description:"inline-edit-hidden"}}),o.range){const a=[];if(o.isSingleLine)a.push(o.range);else if(o.isPureRemove){const u=o.range.endLineNumber-o.range.startLineNumber;for(let c=0;c{const o=this.uiState.read(r);return o&&!o.isPureRemove?{lineNumber:o.lineNumber,additionalLines:o.additionalLines,minReservedLineCount:o.additionalReservedLineCount,targetTextModel:o.targetTextModel}:void 0}))),this._register(en(()=>{this.isDisposed.set(!0,void 0)})),this._register(axe(this.editor,this.decorations))}ownsViewZone(e){return this.additionalLinesWidget.viewZoneId===e}};oj=x9t([L9t(2,Cr)],oj);var sj=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},fp=function(n,e){return function(t,i){e(t,i,n)}},w3;let aj=class extends De{constructor(e,t,i){super(),this.editor=e,this.model=t,this.instantiationService=i,this.alwaysShowToolbar=mr(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).showToolbar==="always"),this.sessionPosition=void 0,this.position=gn(this,r=>{var o,s,a;const l=(o=this.model.read(r))===null||o===void 0?void 0:o.widget.model.ghostText.read(r);if(!this.alwaysShowToolbar.read(r)||!l||l.parts.length===0)return this.sessionPosition=void 0,null;const u=l.parts[0].column;this.sessionPosition&&this.sessionPosition.lineNumber!==l.lineNumber&&(this.sessionPosition=void 0);const c=new ve(l.lineNumber,Math.min(u,(a=(s=this.sessionPosition)===null||s===void 0?void 0:s.column)!==null&&a!==void 0?a:Number.MAX_SAFE_INTEGER));return this.sessionPosition=c,c}),this._register(kh((r,o)=>{if(!this.model.read(r)||!this.alwaysShowToolbar.read(r))return;const a=o.add(this.instantiationService.createInstance(tS,this.editor,!0,this.position));e.addContentWidget(a),o.add(en(()=>e.removeContentWidget(a)))}))}};aj=sj([fp(2,tn)],aj);let tS=w3=class extends De{constructor(e,t,i,r,o,s){super(),this.editor=e,this.withBorder=t,this._position=i,this._contextKeyService=o,this._menuService=s,this.id=`InlineEditHintsContentWidget${w3.id++}`,this.allowEditorOverflow=!0,this.suppressMouseDown=!1,this.nodes=Xi("div.inlineEditHints",{className:this.withBorder?".withBorder":""},[Xi("div@toolBar")]),this.inlineCompletionsActionsMenus=this._register(this._menuService.createMenu($.InlineEditActions,this._contextKeyService)),this.toolBar=this._register(r.createInstance(lj,this.nodes.toolBar,this.editor,$.InlineEditToolbar,{menuOptions:{renderShortTitle:!0},toolbarOptions:{primaryGroup:a=>a.startsWith("primary")},actionViewItemProvider:(a,l)=>{if(a instanceof Wu)return r.createInstance(F9t,a,void 0)},telemetrySource:"InlineEditToolbar"})),this._register(this.toolBar.onDidChangeDropdownVisibility(a=>{w3._dropDownVisible=a})),this._register(Jn(a=>{this._position.read(a),this.editor.layoutContentWidget(this)})),this._register(Jn(a=>{const l=[];for(const[u,c]of this.inlineCompletionsActionsMenus.getActions())for(const d of c)d instanceof Wu&&l.push(d);l.length>0&&l.unshift(new To),this.toolBar.setAdditionalSecondaryActions(l)}))}getId(){return this.id}getDomNode(){return this.nodes.root}getPosition(){return{position:this._position.get(),preference:[1,2],positionAffinity:3}}};tS._dropDownVisible=!1,tS.id=0,tS=w3=sj([fp(3,tn),fp(4,ln),fp(5,wc)],tS);class F9t extends v0{updateLabel(){const e=this._keybindingService.lookupKeybinding(this._action.id,this._contextKeyService);if(!e)return super.updateLabel();if(this.label){const t=Xi("div.keybinding").root;new pw(t,eu,{disableTitle:!0,...qIe}).set(e),this.label.textContent=this._action.label,this.label.appendChild(t),this.label.classList.add("inlineEditStatusBarItemLabel")}}updateTooltip(){}}let lj=class extends pA{constructor(e,t,i,r,o,s,a,l,u){super(e,{resetMenu:i,...r},o,s,a,l,u),this.editor=t,this.menuId=i,this.options2=r,this.menuService=o,this.contextKeyService=s,this.menu=this._store.add(this.menuService.createMenu(this.menuId,this.contextKeyService,{emitEventsForSubmenuChanges:!0})),this.additionalActions=[],this.prependedPrimaryActions=[],this._store.add(this.menu.onDidChange(()=>this.updateToolbar())),this._store.add(this.editor.onDidChangeCursorPosition(()=>this.updateToolbar())),this.updateToolbar()}updateToolbar(){var e,t,i,r,o,s,a;const l=[],u=[];NW(this.menu,(e=this.options2)===null||e===void 0?void 0:e.menuOptions,{primary:l,secondary:u},(i=(t=this.options2)===null||t===void 0?void 0:t.toolbarOptions)===null||i===void 0?void 0:i.primaryGroup,(o=(r=this.options2)===null||r===void 0?void 0:r.toolbarOptions)===null||o===void 0?void 0:o.shouldInlineSubmenu,(a=(s=this.options2)===null||s===void 0?void 0:s.toolbarOptions)===null||a===void 0?void 0:a.useSeparatorsInPrimaryActions),u.push(...this.additionalActions),l.unshift(...this.prependedPrimaryActions),this.setActions(l,u)}setAdditionalSecondaryActions(e){Ar(this.additionalActions,e,(t,i)=>t===i)||(this.additionalActions=e,this.updateToolbar())}};lj=sj([fp(4,wc),fp(5,ln),fp(6,hu),fp(7,Pi),fp(8,Nl)],lj);var _9t=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},PA=function(n,e){return function(t,i){e(t,i,n)}},Kv;class D9t{constructor(e,t){this.widget=e,this.edit=t}dispose(){this.widget.dispose()}}let Ho=Kv=class extends De{static get(e){return e.getContribution(Kv.ID)}constructor(e,t,i,r,o,s){super(),this.editor=e,this.instantiationService=t,this.contextKeyService=i,this.languageFeaturesService=r,this._commandService=o,this._configurationService=s,this._isVisibleContext=Kv.inlineEditVisibleContext.bindTo(this.contextKeyService),this._isCursorAtInlineEditContext=Kv.cursorAtInlineEditContext.bindTo(this.contextKeyService),this._currentEdit=this._register(dD(this,void 0)),this._isAccepting=!1,this._enabled=mr(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).enabled),this._fontFamily=mr(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).fontFamily),this._backgroundColoring=mr(this.editor.onDidChangeConfiguration,()=>this.editor.getOption(63).backgroundColoring);const a=il("InlineEditController.modelContentChangedSignal",e.onDidChangeModelContent);this._register(Jn(h=>{this._enabled.read(h)&&(a.read(h),this.getInlineEdit(e,!0))}));const l=mr(e.onDidChangeCursorPosition,()=>e.getPosition());this._register(Jn(h=>{if(!this._enabled.read(h))return;const g=l.read(h);g&&this.checkCursorPosition(g)})),this._register(Jn(h=>{const g=this._currentEdit.read(h);if(this._isCursorAtInlineEditContext.set(!1),!g){this._isVisibleContext.set(!1);return}this._isVisibleContext.set(!0);const m=e.getPosition();m&&this.checkCursorPosition(m)}));const u=il("InlineEditController.editorBlurSignal",e.onDidBlurEditorWidget);this._register(Jn(h=>{var g;this._enabled.read(h)&&(u.read(h),!(this._configurationService.getValue("editor.experimentalInlineEdit.keepOnBlur")||e.getOption(63).keepOnBlur)&&((g=this._currentRequestCts)===null||g===void 0||g.dispose(),this._currentRequestCts=void 0,this.clear(!1)))}));const c=il("InlineEditController.editorFocusSignal",e.onDidFocusEditorText);this._register(Jn(h=>{this._enabled.read(h)&&(c.read(h),this.getInlineEdit(e,!0))}));const d=this._register(Kbe());this._register(Jn(h=>{const g=this._fontFamily.read(h);d.setStyle(g===""||g==="default"?"":` +.monaco-editor .inline-edit-decoration, +.monaco-editor .inline-edit-decoration-preview, +.monaco-editor .inline-edit { + font-family: ${g}; +}`)})),this._register(new aj(this.editor,this._currentEdit,this.instantiationService))}checkCursorPosition(e){var t;if(!this._currentEdit){this._isCursorAtInlineEditContext.set(!1);return}const i=(t=this._currentEdit.get())===null||t===void 0?void 0:t.edit;if(!i){this._isCursorAtInlineEditContext.set(!1);return}this._isCursorAtInlineEditContext.set(K.containsPosition(i.range,e))}validateInlineEdit(e,t){var i,r;if(t.text.includes(` +`)&&t.range.startLineNumber!==t.range.endLineNumber&&t.range.startColumn!==t.range.endColumn){if(t.range.startColumn!==1)return!1;const s=t.range.endLineNumber,a=t.range.endColumn,l=(r=(i=e.getModel())===null||i===void 0?void 0:i.getLineLength(s))!==null&&r!==void 0?r:0;if(a!==l+1)return!1}return!0}async fetchInlineEdit(e,t){this._currentRequestCts&&this._currentRequestCts.dispose(!0);const i=e.getModel();if(!i)return;const r=i.getVersionId(),o=this.languageFeaturesService.inlineEditProvider.all(i);if(o.length===0)return;const s=o[0];this._currentRequestCts=new co;const a=this._currentRequestCts.token,l=t?OT.Automatic:OT.Invoke;if(t&&await A9t(50,a),a.isCancellationRequested||i.isDisposed()||i.getVersionId()!==r)return;const c=await s.provideInlineEdit(i,{triggerKind:l},a);if(c&&!(a.isCancellationRequested||i.isDisposed()||i.getVersionId()!==r)&&this.validateInlineEdit(e,c))return c}async getInlineEdit(e,t){var i;this._isCursorAtInlineEditContext.set(!1),this.clear(),this._isAccepting=!1;const r=await this.fetchInlineEdit(e,t);if(!r)return;const o=r.range.endLineNumber,s=r.range.endColumn,a=new xA(o,[new OR(s,r.text,!1)]),l=this.instantiationService.createInstance(oj,this.editor,{ghostText:Jf(a),minReservedLineCount:Jf(0),targetTextModel:Jf((i=this.editor.getModel())!==null&&i!==void 0?i:void 0),range:Jf(r.range),backgroundColoring:this._backgroundColoring});this._currentEdit.set(new D9t(l,r),void 0)}async trigger(){await this.getInlineEdit(this.editor,!1)}async jumpBack(){this._jumpBackPosition&&(this.editor.setPosition(this._jumpBackPosition),this.editor.revealPositionInCenterIfOutsideViewport(this._jumpBackPosition))}accept(){var e;this._isAccepting=!0;const t=(e=this._currentEdit.get())===null||e===void 0?void 0:e.edit;if(!t)return;let i=t.text;t.text.startsWith(` +`)&&(i=t.text.substring(1)),this.editor.pushUndoStop(),this.editor.executeEdits("acceptCurrent",[vr.replace(K.lift(t.range),i)]),t.accepted&&this._commandService.executeCommand(t.accepted.id,...t.accepted.arguments||[]),this.freeEdit(t),this._currentEdit.set(void 0,void 0)}jumpToCurrent(){var e,t;this._jumpBackPosition=(e=this.editor.getSelection())===null||e===void 0?void 0:e.getStartPosition();const i=(t=this._currentEdit.get())===null||t===void 0?void 0:t.edit;if(!i)return;const r=ve.lift({lineNumber:i.range.startLineNumber,column:i.range.startColumn});this.editor.setPosition(r),this.editor.revealPositionInCenterIfOutsideViewport(r)}clear(e=!0){var t;const i=(t=this._currentEdit.get())===null||t===void 0?void 0:t.edit;i&&(i!=null&&i.rejected)&&!this._isAccepting&&e&&this._commandService.executeCommand(i.rejected.id,...i.rejected.arguments||[]),i&&this.freeEdit(i),this._currentEdit.set(void 0,void 0)}freeEdit(e){const t=this.editor.getModel();if(!t)return;const i=this.languageFeaturesService.inlineEditProvider.all(t);i.length!==0&&i[0].freeInlineEdit(e)}shouldShowHoverAt(e){const t=this._currentEdit.get();if(!t)return!1;const i=t.edit,r=t.widget.model;if(K.containsPosition(i.range,e.getStartPosition())||K.containsPosition(i.range,e.getEndPosition()))return!0;const s=r.ghostText.get();return s?s.parts.some(a=>e.containsPosition(new ve(s.lineNumber,a.column))):!1}shouldShowHoverAtViewZone(e){var t,i;return(i=(t=this._currentEdit.get())===null||t===void 0?void 0:t.widget.ownsViewZone(e))!==null&&i!==void 0?i:!1}};Ho.ID="editor.contrib.inlineEditController",Ho.inlineEditVisibleKey="inlineEditVisible",Ho.inlineEditVisibleContext=new It(Kv.inlineEditVisibleKey,!1),Ho.cursorAtInlineEditKey="cursorAtInlineEdit",Ho.cursorAtInlineEditContext=new It(Kv.cursorAtInlineEditKey,!1),Ho=Kv=_9t([PA(1,tn),PA(2,ln),PA(3,Tt),PA(4,Vr),PA(5,Xn)],Ho);function A9t(n,e){return new Promise(t=>{let i;const r=setTimeout(()=>{i&&i.dispose(),t()},n);e&&(i=e.onCancellationRequested(()=>{clearTimeout(r),i&&i.dispose(),t()}))})}class N9t extends Nt{constructor(){super({id:y9t,label:"Accept Inline Edit",alias:"Accept Inline Edit",precondition:Be.and(ne.writable,Ho.inlineEditVisibleContext),kbOpts:[{weight:101,primary:2,kbExpr:Be.and(ne.writable,Ho.inlineEditVisibleContext,Ho.cursorAtInlineEditContext)}],menuOpts:[{menuId:$.InlineEditToolbar,title:"Accept",group:"primary",order:1}]})}async run(e,t){const i=Ho.get(t);i==null||i.accept()}}class k9t extends Nt{constructor(){const e=Be.and(ne.writable,Be.not(Ho.inlineEditVisibleKey));super({id:"editor.action.inlineEdit.trigger",label:"Trigger Inline Edit",alias:"Trigger Inline Edit",precondition:e,kbOpts:{weight:101,primary:2646,kbExpr:e}})}async run(e,t){const i=Ho.get(t);i==null||i.trigger()}}class M9t extends Nt{constructor(){const e=Be.and(ne.writable,Ho.inlineEditVisibleContext,Be.not(Ho.cursorAtInlineEditKey));super({id:w9t,label:"Jump to Inline Edit",alias:"Jump to Inline Edit",precondition:e,kbOpts:{weight:101,primary:2646,kbExpr:e},menuOpts:[{menuId:$.InlineEditToolbar,title:"Jump To Edit",group:"primary",order:3,when:e}]})}async run(e,t){const i=Ho.get(t);i==null||i.jumpToCurrent()}}class Z9t extends Nt{constructor(){const e=Be.and(ne.writable,Ho.cursorAtInlineEditContext);super({id:S9t,label:"Jump Back from Inline Edit",alias:"Jump Back from Inline Edit",precondition:e,kbOpts:{weight:110,primary:2646,kbExpr:e},menuOpts:[{menuId:$.InlineEditToolbar,title:"Jump Back",group:"primary",order:3,when:e}]})}async run(e,t){const i=Ho.get(t);i==null||i.jumpBack()}}class T9t extends Nt{constructor(){const e=Be.and(ne.writable,Ho.inlineEditVisibleContext);super({id:I9t,label:"Reject Inline Edit",alias:"Reject Inline Edit",precondition:e,kbOpts:{weight:100,primary:9,kbExpr:e},menuOpts:[{menuId:$.InlineEditToolbar,title:"Reject",group:"secondary",order:2}]})}async run(e,t){const i=Ho.get(t);i==null||i.clear()}}var E9t=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},$xe=function(n,e){return function(t,i){e(t,i,n)}};class W9t{constructor(e,t,i){this.owner=e,this.range=t,this.controller=i}isValidForHoverAnchor(e){return e.type===1&&this.range.startColumn<=e.range.startColumn&&this.range.endColumn>=e.range.endColumn}}let uj=class{constructor(e,t,i){this._editor=e,this._instantiationService=t,this._telemetryService=i,this.hoverOrdinal=5}suggestHoverAnchor(e){const t=Ho.get(this._editor);if(!t)return null;const i=e.target;if(i.type===8){const r=i.detail;if(t.shouldShowHoverAtViewZone(r.viewZoneId)){const o=i.range;return new Ev(1e3,this,o,e.event.posx,e.event.posy,!1)}}return i.type===7&&t.shouldShowHoverAt(i.range)?new Ev(1e3,this,i.range,e.event.posx,e.event.posy,!1):i.type===6&&i.detail.mightBeForeignElement&&t.shouldShowHoverAt(i.range)?new Ev(1e3,this,i.range,e.event.posx,e.event.posy,!1):null}computeSync(e,t){if(this._editor.getOption(63).showToolbar!=="onHover")return[];const i=Ho.get(this._editor);return i&&i.shouldShowHoverAt(e.range)?[new W9t(this,e.range,i)]:[]}renderHoverParts(e,t){const i=new je;this._telemetryService.publicLog2("inlineEditHover.shown");const r=this._instantiationService.createInstance(tS,this._editor,!1,Jf(null));return e.fragment.appendChild(r.getDomNode()),i.add(r),i}};uj=E9t([$xe(1,tn),$xe(2,Nl)],uj),it(N9t),it(T9t),it(M9t),it(Z9t),it(k9t),Ii(Ho.ID,Ho,3),x0.register(uj);const jv={Visible:new It("parameterHintsVisible",!1),MultipleSignatures:new It("parameterHintsMultipleSignatures",!1)};async function qxe(n,e,t,i,r){const o=n.ordered(e);for(const s of o)try{const a=await s.provideSignatureHelp(e,t,r,i);if(a)return a}catch(a){wo(a)}}ei.registerCommand("_executeSignatureHelpProvider",async(n,...e)=>{const[t,i,r]=e;Ci($t.isUri(t)),Ci(ve.isIPosition(i)),Ci(typeof r=="string"||!r);const o=n.get(Tt),s=await n.get(Fl).createModelReference(t);try{const a=await qxe(o.signatureHelpProvider,s.object.textEditorModel,ve.lift(i),{triggerKind:jg.Invoke,isRetrigger:!1,triggerCharacter:r},Hn.None);return a?(setTimeout(()=>a.dispose(),0),a.value):void 0}finally{s.dispose()}});var z0;(function(n){n.Default={type:0};class e{constructor(r,o){this.request=r,this.previouslyActiveHints=o,this.type=2}}n.Pending=e;class t{constructor(r){this.hints=r,this.type=1}}n.Active=t})(z0||(z0={}));class S3 extends De{constructor(e,t,i=S3.DEFAULT_DELAY){super(),this._onChangedHints=this._register(new be),this.onChangedHints=this._onChangedHints.event,this.triggerOnType=!1,this._state=z0.Default,this._pendingTriggers=[],this._lastSignatureHelpResult=this._register(new zs),this.triggerChars=new j5,this.retriggerChars=new j5,this.triggerId=0,this.editor=e,this.providers=t,this.throttledDelayer=new gd(i),this._register(this.editor.onDidBlurEditorWidget(()=>this.cancel())),this._register(this.editor.onDidChangeConfiguration(()=>this.onEditorConfigurationChange())),this._register(this.editor.onDidChangeModel(r=>this.onModelChanged())),this._register(this.editor.onDidChangeModelLanguage(r=>this.onModelChanged())),this._register(this.editor.onDidChangeCursorSelection(r=>this.onCursorChange(r))),this._register(this.editor.onDidChangeModelContent(r=>this.onModelContentChange())),this._register(this.providers.onDidChange(this.onModelChanged,this)),this._register(this.editor.onDidType(r=>this.onDidType(r))),this.onEditorConfigurationChange(),this.onModelChanged()}get state(){return this._state}set state(e){this._state.type===2&&this._state.request.cancel(),this._state=e}cancel(e=!1){this.state=z0.Default,this.throttledDelayer.cancel(),e||this._onChangedHints.fire(void 0)}trigger(e,t){const i=this.editor.getModel();if(!i||!this.providers.has(i))return;const r=++this.triggerId;this._pendingTriggers.push(e),this.throttledDelayer.trigger(()=>this.doTrigger(r),t).catch(fn)}next(){if(this.state.type!==1)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=t%e===e-1,r=this.editor.getOption(86).cycle;if((e<2||i)&&!r){this.cancel();return}this.updateActiveSignature(i&&r?0:t+1)}previous(){if(this.state.type!==1)return;const e=this.state.hints.signatures.length,t=this.state.hints.activeSignature,i=t===0,r=this.editor.getOption(86).cycle;if((e<2||i)&&!r){this.cancel();return}this.updateActiveSignature(i&&r?e-1:t-1)}updateActiveSignature(e){this.state.type===1&&(this.state=new z0.Active({...this.state.hints,activeSignature:e}),this._onChangedHints.fire(this.state.hints))}async doTrigger(e){const t=this.state.type===1||this.state.type===2,i=this.getLastActiveHints();if(this.cancel(!0),this._pendingTriggers.length===0)return!1;const r=this._pendingTriggers.reduce(R9t);this._pendingTriggers=[];const o={triggerKind:r.triggerKind,triggerCharacter:r.triggerCharacter,isRetrigger:t,activeSignatureHelp:i};if(!this.editor.hasModel())return!1;const s=this.editor.getModel(),a=this.editor.getPosition();this.state=new z0.Pending($o(l=>qxe(this.providers,s,a,o,l)),i);try{const l=await this.state.request;return e!==this.triggerId?(l==null||l.dispose(),!1):!l||!l.value.signatures||l.value.signatures.length===0?(l==null||l.dispose(),this._lastSignatureHelpResult.clear(),this.cancel(),!1):(this.state=new z0.Active(l.value),this._lastSignatureHelpResult.value=l,this._onChangedHints.fire(this.state.hints),!0)}catch(l){return e===this.triggerId&&(this.state=z0.Default),fn(l),!1}}getLastActiveHints(){switch(this.state.type){case 1:return this.state.hints;case 2:return this.state.previouslyActiveHints;default:return}}get isTriggered(){return this.state.type===1||this.state.type===2||this.throttledDelayer.isTriggered()}onModelChanged(){this.cancel(),this.triggerChars.clear(),this.retriggerChars.clear();const e=this.editor.getModel();if(e)for(const t of this.providers.ordered(e)){for(const i of t.signatureHelpTriggerCharacters||[])if(i.length){const r=i.charCodeAt(0);this.triggerChars.add(r),this.retriggerChars.add(r)}for(const i of t.signatureHelpRetriggerCharacters||[])i.length&&this.retriggerChars.add(i.charCodeAt(0))}}onDidType(e){if(!this.triggerOnType)return;const t=e.length-1,i=e.charCodeAt(t);(this.triggerChars.has(i)||this.isTriggered&&this.retriggerChars.has(i))&&this.trigger({triggerKind:jg.TriggerCharacter,triggerCharacter:e.charAt(t)})}onCursorChange(e){e.source==="mouse"?this.cancel():this.isTriggered&&this.trigger({triggerKind:jg.ContentChange})}onModelContentChange(){this.isTriggered&&this.trigger({triggerKind:jg.ContentChange})}onEditorConfigurationChange(){this.triggerOnType=this.editor.getOption(86).enabled,this.triggerOnType||this.cancel()}dispose(){this.cancel(!0),super.dispose()}}S3.DEFAULT_DELAY=120;function R9t(n,e){switch(e.triggerKind){case jg.Invoke:return e;case jg.ContentChange:return n;case jg.TriggerCharacter:default:return e}}var G9t=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},cj=function(n,e){return function(t,i){e(t,i,n)}},dj;const qu=vt,V9t=io("parameter-hints-next",ct.chevronDown,x("parameterHintsNextIcon","Icon for show next parameter hint.")),X9t=io("parameter-hints-previous",ct.chevronUp,x("parameterHintsPreviousIcon","Icon for show previous parameter hint."));let x3=dj=class extends De{constructor(e,t,i,r,o){super(),this.editor=e,this.model=t,this.renderDisposeables=this._register(new je),this.visible=!1,this.announcedLabel=null,this.allowEditorOverflow=!0,this.markdownRenderer=this._register(new mm({editor:e},o,r)),this.keyVisible=jv.Visible.bindTo(i),this.keyMultipleSignatures=jv.MultipleSignatures.bindTo(i)}createParameterHintDOMNodes(){const e=qu(".editor-widget.parameter-hints-widget"),t=Je(e,qu(".phwrapper"));t.tabIndex=-1;const i=Je(t,qu(".controls")),r=Je(i,qu(".button"+on.asCSSSelector(X9t))),o=Je(i,qu(".overloads")),s=Je(i,qu(".button"+on.asCSSSelector(V9t)));this._register(Ve(r,"click",h=>{En.stop(h),this.previous()})),this._register(Ve(s,"click",h=>{En.stop(h),this.next()}));const a=qu(".body"),l=new f_(a,{alwaysConsumeMouseWheel:!0});this._register(l),t.appendChild(l.getDomNode());const u=Je(a,qu(".signature")),c=Je(a,qu(".docs"));e.style.userSelect="text",this.domNodes={element:e,signature:u,overloads:o,docs:c,scrollbar:l},this.editor.addContentWidget(this),this.hide(),this._register(this.editor.onDidChangeCursorSelection(h=>{this.visible&&this.editor.layoutContentWidget(this)}));const d=()=>{if(!this.domNodes)return;const h=this.editor.getOption(50);this.domNodes.element.style.fontSize=`${h.fontSize}px`,this.domNodes.element.style.lineHeight=`${h.lineHeight/h.fontSize}`};d(),this._register(ft.chain(this.editor.onDidChangeConfiguration.bind(this.editor),h=>h.filter(g=>g.hasChanged(50)))(d)),this._register(this.editor.onDidLayoutChange(h=>this.updateMaxHeight())),this.updateMaxHeight()}show(){this.visible||(this.domNodes||this.createParameterHintDOMNodes(),this.keyVisible.set(!0),this.visible=!0,setTimeout(()=>{var e;(e=this.domNodes)===null||e===void 0||e.element.classList.add("visible")},100),this.editor.layoutContentWidget(this))}hide(){var e;this.renderDisposeables.clear(),this.visible&&(this.keyVisible.reset(),this.visible=!1,this.announcedLabel=null,(e=this.domNodes)===null||e===void 0||e.element.classList.remove("visible"),this.editor.layoutContentWidget(this))}getPosition(){return this.visible?{position:this.editor.getPosition(),preference:[1,2]}:null}render(e){var t;if(this.renderDisposeables.clear(),!this.domNodes)return;const i=e.signatures.length>1;this.domNodes.element.classList.toggle("multiple",i),this.keyMultipleSignatures.set(i),this.domNodes.signature.innerText="",this.domNodes.docs.innerText="";const r=e.signatures[e.activeSignature];if(!r)return;const o=Je(this.domNodes.signature,qu(".code")),s=this.editor.getOption(50);o.style.fontSize=`${s.fontSize}px`,o.style.fontFamily=s.fontFamily;const a=r.parameters.length>0,l=(t=r.activeParameter)!==null&&t!==void 0?t:e.activeParameter;if(a)this.renderParameters(o,r,l);else{const d=Je(o,qu("span"));d.textContent=r.label}const u=r.parameters[l];if(u!=null&&u.documentation){const d=qu("span.documentation");if(typeof u.documentation=="string")d.textContent=u.documentation;else{const h=this.renderMarkdownDocs(u.documentation);d.appendChild(h.element)}Je(this.domNodes.docs,qu("p",{},d))}if(r.documentation!==void 0)if(typeof r.documentation=="string")Je(this.domNodes.docs,qu("p",{},r.documentation));else{const d=this.renderMarkdownDocs(r.documentation);Je(this.domNodes.docs,d.element)}const c=this.hasDocs(r,u);if(this.domNodes.signature.classList.toggle("has-docs",c),this.domNodes.docs.classList.toggle("empty",!c),this.domNodes.overloads.textContent=String(e.activeSignature+1).padStart(e.signatures.length.toString().length,"0")+"/"+e.signatures.length,u){let d="";const h=r.parameters[l];Array.isArray(h.label)?d=r.label.substring(h.label[0],h.label[1]):d=h.label,h.documentation&&(d+=typeof h.documentation=="string"?`, ${h.documentation}`:`, ${h.documentation.value}`),r.documentation&&(d+=typeof r.documentation=="string"?`, ${r.documentation}`:`, ${r.documentation.value}`),this.announcedLabel!==d&&(ou(x("hint","{0}, hint",d)),this.announcedLabel=d)}this.editor.layoutContentWidget(this),this.domNodes.scrollbar.scanDomNode()}renderMarkdownDocs(e){const t=this.renderDisposeables.add(this.markdownRenderer.render(e,{asyncRenderCallback:()=>{var i;(i=this.domNodes)===null||i===void 0||i.scrollbar.scanDomNode()}}));return t.element.classList.add("markdown-docs"),t}hasDocs(e,t){return!!(t&&typeof t.documentation=="string"&&fb(t.documentation).length>0||t&&typeof t.documentation=="object"&&fb(t.documentation).value.length>0||e.documentation&&typeof e.documentation=="string"&&fb(e.documentation).length>0||e.documentation&&typeof e.documentation=="object"&&fb(e.documentation.value).length>0)}renderParameters(e,t,i){const[r,o]=this.getParameterLabelOffsets(t,i),s=document.createElement("span");s.textContent=t.label.substring(0,r);const a=document.createElement("span");a.textContent=t.label.substring(r,o),a.className="parameter active";const l=document.createElement("span");l.textContent=t.label.substring(o),Je(e,s,a,l)}getParameterLabelOffsets(e,t){const i=e.parameters[t];if(i){if(Array.isArray(i.label))return i.label;if(i.label.length){const r=new RegExp(`(\\W|^)${Zu(i.label)}(?=\\W|$)`,"g");r.test(e.label);const o=r.lastIndex-i.label.length;return o>=0?[o,r.lastIndex]:[0,0]}else return[0,0]}else return[0,0]}next(){this.editor.focus(),this.model.next()}previous(){this.editor.focus(),this.model.previous()}getDomNode(){return this.domNodes||this.createParameterHintDOMNodes(),this.domNodes.element}getId(){return dj.ID}updateMaxHeight(){if(!this.domNodes)return;const t=`${Math.max(this.editor.getLayoutInfo().height/4,250)}px`;this.domNodes.element.style.maxHeight=t;const i=this.domNodes.element.getElementsByClassName("phwrapper");i.length&&(i[0].style.maxHeight=t)}};x3.ID="editor.widget.parameterHintsWidget",x3=dj=G9t([cj(2,ln),cj(3,Rl),cj(4,Cr)],x3),re("editorHoverWidget.highlightForeground",{dark:wd,light:wd,hcDark:wd,hcLight:wd},x("editorHoverWidgetHighlightForeground","Foreground color of the active item in the parameter hint."));var P9t=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},eLe=function(n,e){return function(t,i){e(t,i,n)}},hj;let Qv=hj=class extends De{static get(e){return e.getContribution(hj.ID)}constructor(e,t,i){super(),this.editor=e,this.model=this._register(new S3(e,i.signatureHelpProvider)),this._register(this.model.onChangedHints(r=>{var o;r?(this.widget.value.show(),this.widget.value.render(r)):(o=this.widget.rawValue)===null||o===void 0||o.hide()})),this.widget=new Mg(()=>this._register(t.createInstance(x3,this.editor,this.model)))}cancel(){this.model.cancel()}previous(){var e;(e=this.widget.rawValue)===null||e===void 0||e.previous()}next(){var e;(e=this.widget.rawValue)===null||e===void 0||e.next()}trigger(e){this.model.trigger(e,0)}};Qv.ID="editor.controller.parameterHints",Qv=hj=P9t([eLe(1,tn),eLe(2,Tt)],Qv);class O9t extends Nt{constructor(){super({id:"editor.action.triggerParameterHints",label:x("parameterHints.trigger.label","Trigger Parameter Hints"),alias:"Trigger Parameter Hints",precondition:ne.hasSignatureHelpProvider,kbOpts:{kbExpr:ne.editorTextFocus,primary:3082,weight:100}})}run(e,t){const i=Qv.get(t);i==null||i.trigger({triggerKind:jg.Invoke})}}Ii(Qv.ID,Qv,2),it(O9t);const gj=175,mj=cs.bindToContribution(Qv.get);mt(new mj({id:"closeParameterHints",precondition:jv.Visible,handler:n=>n.cancel(),kbOpts:{weight:gj,kbExpr:ne.focus,primary:9,secondary:[1033]}})),mt(new mj({id:"showPrevParameterHint",precondition:Be.and(jv.Visible,jv.MultipleSignatures),handler:n=>n.previous(),kbOpts:{weight:gj,kbExpr:ne.focus,primary:16,secondary:[528],mac:{primary:16,secondary:[528,302]}}})),mt(new mj({id:"showNextParameterHint",precondition:Be.and(jv.Visible,jv.MultipleSignatures),handler:n=>n.next(),kbOpts:{weight:gj,kbExpr:ne.focus,primary:18,secondary:[530],mac:{primary:18,secondary:[530,300]}}}));var B9t=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},L3=function(n,e){return function(t,i){e(t,i,n)}};const nS=new It("renameInputVisible",!1,x("renameInputVisible","Whether the rename input widget is visible")),fj=new It("renameInputFocused",!1,x("renameInputFocused","Whether the rename input widget is focused"));let pj=class{constructor(e,t,i,r,o,s){this._editor=e,this._acceptKeybindings=t,this._themeService=i,this._keybindingService=r,this._logService=s,this._disposables=new je,this.allowEditorOverflow=!0,this._visibleContextKey=nS.bindTo(o),this._focusedContextKey=fj.bindTo(o),this._editor.addContentWidget(this),this._disposables.add(this._editor.onDidChangeConfiguration(a=>{a.hasChanged(50)&&this._updateFont()})),this._disposables.add(i.onDidColorThemeChange(this._updateStyles,this))}dispose(){this._disposables.dispose(),this._editor.removeContentWidget(this)}getId(){return"__renameInputWidget"}getDomNode(){return this._domNode||(this._domNode=document.createElement("div"),this._domNode.className="monaco-editor rename-box",this._input=document.createElement("input"),this._input.className="rename-input",this._input.type="text",this._input.setAttribute("aria-label",x("renameAriaLabel","Rename input. Type new name and press Enter to commit.")),this._disposables.add(Ve(this._input,"focus",()=>{this._focusedContextKey.set(!0)})),this._disposables.add(Ve(this._input,"blur",()=>{this._focusedContextKey.reset()})),this._domNode.appendChild(this._input),this._candidatesView=this._disposables.add(new z9t(this._domNode,{fontInfo:this._editor.getOption(50),onSelectionChange:()=>this.acceptInput(!1)})),this._label=document.createElement("div"),this._label.className="rename-label",this._domNode.appendChild(this._label),this._updateFont(),this._updateStyles(this._themeService.getColorTheme())),this._domNode}_updateStyles(e){var t,i,r,o;if(!this._input||!this._domNode)return;const s=e.getColor(_f),a=e.getColor(m1e);this._domNode.style.backgroundColor=String((t=e.getColor($r))!==null&&t!==void 0?t:""),this._domNode.style.boxShadow=s?` 0 0 8px 2px ${s}`:"",this._domNode.style.border=a?`1px solid ${a}`:"",this._domNode.style.color=String((i=e.getColor(p1e))!==null&&i!==void 0?i:""),this._input.style.backgroundColor=String((r=e.getColor(f1e))!==null&&r!==void 0?r:"");const l=e.getColor(b1e);this._input.style.borderWidth=l?"1px":"0px",this._input.style.borderStyle=l?"solid":"none",this._input.style.borderColor=(o=l==null?void 0:l.toString())!==null&&o!==void 0?o:"none"}_updateFont(){if(!this._input||!this._label||!this._candidatesView)return;const e=this._editor.getOption(50);this._input.style.fontFamily=e.fontFamily,this._input.style.fontWeight=e.fontWeight,this._input.style.fontSize=`${e.fontSize}px`,this._candidatesView.updateFont(e),this._label.style.fontSize=`${this._computeLabelFontSize(e.fontSize)}px`}_computeLabelFontSize(e){return e*.8}getPosition(){if(!this._visible||!this._editor.hasModel()||!this._editor.getDomNode())return null;const e=pf(this.getDomNode().ownerDocument.body),t=go(this._editor.getDomNode()),i=this._getTopForPosition();this._nPxAvailableAbove=i+t.top,this._nPxAvailableBelow=e.height-this._nPxAvailableAbove;const r=this._editor.getOption(67),{totalHeight:o}=$v.getLayoutInfo({lineHeight:r}),s=this._nPxAvailableBelow>o*6?[2,1]:[1,2];return{position:this._position,preference:s}}beforeRender(){var e,t;const[i,r]=this._acceptKeybindings;return this._label.innerText=x({key:"label",comment:['placeholders are keybindings, e.g "F2 to Rename, Shift+F2 to Preview"']},"{0} to Rename, {1} to Preview",(e=this._keybindingService.lookupKeybinding(i))===null||e===void 0?void 0:e.getLabel(),(t=this._keybindingService.lookupKeybinding(r))===null||t===void 0?void 0:t.getLabel()),this._domNode.style.minWidth="200px",null}afterRender(e){if(this._trace("invoking afterRender, position: ",e?"not null":"null"),e===null){this.cancelInput(!0,"afterRender (because position is null)");return}if(!this._editor.hasModel()||!this._editor.getDomNode())return;Ci(this._candidatesView),Ci(this._nPxAvailableAbove!==void 0),Ci(this._nPxAvailableBelow!==void 0);const t=bf(this._input),i=bf(this._label);let r;e===2?r=this._nPxAvailableBelow:r=this._nPxAvailableAbove,this._candidatesView.layout({height:r-i-t,width:Ja(this._input)})}acceptInput(e){var t;this._trace("invoking acceptInput"),(t=this._currentAcceptInput)===null||t===void 0||t.call(this,e)}cancelInput(e,t){var i;this._trace(`invoking cancelInput, caller: ${t}, _currentCancelInput: ${this._currentAcceptInput?"not undefined":"undefined"}`),(i=this._currentCancelInput)===null||i===void 0||i.call(this,e)}focusNextRenameSuggestion(){var e;(e=this._candidatesView)===null||e===void 0||e.focusNext()}focusPreviousRenameSuggestion(){var e;!((e=this._candidatesView)===null||e===void 0)&&e.focusPrevious()||this._input.focus()}getInput(e,t,i,r,o,s,a){this._domNode.classList.toggle("preview",o),this._position=new ve(e.startLineNumber,e.startColumn),this._input.value=t,this._input.setAttribute("selectionStart",i.toString()),this._input.setAttribute("selectionEnd",r.toString()),this._input.size=Math.max((e.endColumn-e.startColumn)*1.1,20);const l=new je;return l.add(en(()=>a.dispose(!0))),this._updateRenameCandidates(s,t,a.token),new Promise(u=>{this._currentCancelInput=c=>{var d;return this._trace("invoking _currentCancelInput"),this._currentAcceptInput=void 0,this._currentCancelInput=void 0,(d=this._candidatesView)===null||d===void 0||d.clearCandidates(),u(c),!0},this._currentAcceptInput=c=>{this._trace("invoking _currentAcceptInput"),Ci(this._input!==void 0),Ci(this._candidatesView!==void 0);const d=this._candidatesView.nCandidates;let h,g;const m=this._candidatesView.focusedCandidate;if(m!==void 0?(this._trace("using new name from renameSuggestion"),h=m,g="renameSuggestion"):(this._trace("using new name from inputField"),h=this._input.value,g="inputField"),h===t||h.trim().length===0){this.cancelInput(!0,"_currentAcceptInput (because newName === value || newName.trim().length === 0)");return}this._currentAcceptInput=void 0,this._currentCancelInput=void 0,this._candidatesView.clearCandidates(),u({newName:h,wantsPreview:o&&c,source:g,nRenameSuggestions:d})},l.add(a.token.onCancellationRequested(()=>this.cancelInput(!0,"cts.token.onCancellationRequested"))),l.add(this._editor.onDidBlurEditorWidget(()=>{var c;return this.cancelInput(!(!((c=this._domNode)===null||c===void 0)&&c.ownerDocument.hasFocus()),"editor.onDidBlurEditorWidget")})),this._show()}).finally(()=>{l.dispose(),this._hide()})}_show(){this._trace("invoking _show"),this._editor.revealLineInCenterIfOutsideViewport(this._position.lineNumber,0),this._visible=!0,this._visibleContextKey.set(!0),this._editor.layoutContentWidget(this),setTimeout(()=>{this._input.focus(),this._input.setSelectionRange(parseInt(this._input.getAttribute("selectionStart")),parseInt(this._input.getAttribute("selectionEnd")))},100)}async _updateRenameCandidates(e,t,i){const r=(...u)=>this._trace("_updateRenameCandidates",...u);r("start");const o=await LF(Promise.allSettled(e),i);if(o===void 0){r("returning early - received updateRenameCandidates results - undefined");return}const s=o.flatMap(u=>u.status==="fulfilled"&&_g(u.value)?u.value:[]);r(`received updateRenameCandidates results - total (unfiltered) ${s.length} candidates.`);const a=Sf(s,u=>u.newSymbolName);r(`distinct candidates - ${a.length} candidates.`);const l=a.filter(({newSymbolName:u})=>{var c;return u.trim().length>0&&u!==((c=this._input)===null||c===void 0?void 0:c.value)&&u!==t});if(r(`valid distinct candidates - ${s.length} candidates.`),l.length<1){r("returning early - no valid distinct candidates");return}r("setting candidates"),this._candidatesView.setCandidates(l),r("asking editor to re-layout"),this._editor.layoutContentWidget(this)}_hide(){this._trace("invoked _hide"),this._visible=!1,this._visibleContextKey.reset(),this._editor.layoutContentWidget(this)}_getTopForPosition(){const e=this._editor.getVisibleRanges();let t;return e.length>0?t=e[0].startLineNumber:(this._logService.warn("RenameInputField#_getTopForPosition: this should not happen - visibleRanges is empty"),t=Math.max(1,this._position.lineNumber-5)),this._editor.getTopForLineNumber(this._position.lineNumber)-this._editor.getTopForLineNumber(t)}_trace(...e){this._logService.trace("RenameInputField",...e)}};pj=B9t([L3(2,ts),L3(3,Pi),L3(4,ln),L3(5,Qa)],pj);class z9t{constructor(e,t){this._disposables=new je,this._availableHeight=0,this._minimumWidth=0,this._lineHeight=t.fontInfo.lineHeight,this._typicalHalfwidthCharacterWidth=t.fontInfo.typicalHalfwidthCharacterWidth,this._listContainer=document.createElement("div"),this._listContainer.style.fontFamily=t.fontInfo.fontFamily,this._listContainer.style.fontWeight=t.fontInfo.fontWeight,this._listContainer.style.fontSize=`${t.fontInfo.fontSize}px`,e.appendChild(this._listContainer);const i=this,r=new class{getTemplateId(s){return"candidate"}getHeight(s){return i._candidateViewHeight}},o=new class{constructor(){this.templateId="candidate"}renderTemplate(s){return new $v(s,{lineHeight:i._lineHeight})}renderElement(s,a,l){l.model=s}disposeTemplate(s){s.dispose()}};this._listWidget=new zu("NewSymbolNameCandidates",this._listContainer,r,[o],{keyboardSupport:!1,mouseSupport:!0,multipleSelectionSupport:!1}),this._disposables.add(this._listWidget.onDidChangeSelection(s=>{s.elements.length>0&&t.onSelectionChange()})),this._disposables.add(this._listWidget.onDidBlur(s=>{this._listWidget.setFocus([])})),this._listWidget.style(g0)}dispose(){this._listWidget.dispose(),this._disposables.dispose()}layout({height:e,width:t}){this._availableHeight=e,this._minimumWidth=t}setCandidates(e){this._listWidget.splice(0,0,e);const t=this._pickListHeight(e.length),i=this._pickListWidth(e);this._listWidget.layout(t,i),this._listContainer.style.height=`${t}px`,this._listContainer.style.width=`${i}px`,yf(x("renameSuggestionsReceivedAria","Received {0} rename suggestions",e.length))}clearCandidates(){this._listContainer.style.height="0px",this._listContainer.style.width="0px",this._listWidget.splice(0,this._listWidget.length,[])}get nCandidates(){return this._listWidget.length}get focusedCandidate(){if(this._listWidget.length===0)return;const e=this._listWidget.getSelectedElements()[0];if(e!==void 0)return e.newSymbolName;const t=this._listWidget.getFocusedElements()[0];if(t!==void 0)return t.newSymbolName}updateFont(e){this._listContainer.style.fontFamily=e.fontFamily,this._listContainer.style.fontWeight=e.fontWeight,this._listContainer.style.fontSize=`${e.fontSize}px`,this._lineHeight=e.lineHeight,this._listWidget.rerender()}focusNext(){this._listWidget.length!==0&&(this._listWidget.isDOMFocused()?this._listWidget.focusNext():(this._listWidget.domFocus(),this._listWidget.focusFirst()),this._listWidget.reveal(this._listWidget.getFocus()[0]))}focusPrevious(){if(this._listWidget.length===0)return!1;this._listWidget.domFocus();const e=this._listWidget.getFocus()[0];return e!==0&&(this._listWidget.focusPrevious(),this._listWidget.reveal(this._listWidget.getFocus()[0])),e>0}get _candidateViewHeight(){const{totalHeight:e}=$v.getLayoutInfo({lineHeight:this._lineHeight});return e}_pickListHeight(e){const t=this._candidateViewHeight*e;return Math.min(t,this._availableHeight,this._candidateViewHeight*7)}_pickListWidth(e){const t=Math.ceil(Math.max(...e.map(r=>r.newSymbolName.length))*this._typicalHalfwidthCharacterWidth);return Math.max(this._minimumWidth,25+t+10)}}class $v{constructor(e,{lineHeight:t}){this.domNode=document.createElement("div"),this.domNode.style.display="flex",this.domNode.style.alignItems="center",this.domNode.style.height=`${t}px`,this.domNode.style.padding=`${$v._PADDING}px`,this._icon=document.createElement("div"),this._icon.style.display="flex",this._icon.style.alignItems="center",this._icon.style.width=this._icon.style.height=`${t*.8}px`,this.domNode.appendChild(this._icon),this._label=document.createElement("div"),this._icon.style.display="flex",this._icon.style.alignItems="center",this._label.style.marginLeft="5px",this.domNode.appendChild(this._label),e.appendChild(this.domNode)}set model(e){this._icon.children.length===0&&this._icon.appendChild(pD(ct.sparkle)),this._label.innerText=e.newSymbolName}static getLayoutInfo({lineHeight:e}){return{totalHeight:e+$v._PADDING*2}}dispose(){}}$v._PADDING=2;var Y9t=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Y0=function(n,e){return function(t,i){e(t,i,n)}},bj;class Cj{constructor(e,t,i){this.model=e,this.position=t,this._providerRenameIdx=0,this._providers=i.ordered(e)}hasProvider(){return this._providers.length>0}async resolveRenameLocation(e){const t=[];for(this._providerRenameIdx=0;this._providerRenameIdx0?t.join(` +`):void 0}:{range:K.fromPositions(this.position),text:"",rejectReason:t.length>0?t.join(` +`):void 0}}async provideRenameEdits(e,t){return this._provideRenameEdits(e,this._providerRenameIdx,[],t)}async _provideRenameEdits(e,t,i,r){const o=this._providers[t];if(!o)return{edits:[],rejectReason:i.join(` +`)};const s=await o.provideRenameEdits(this.model,this.position,e,r);if(s){if(s.rejectReason)return this._provideRenameEdits(e,t+1,i.concat(s.rejectReason),r)}else return this._provideRenameEdits(e,t+1,i.concat(x("no result","No result.")),r);return s}}async function H9t(n,e,t,i){const r=new Cj(e,t,n),o=await r.resolveRenameLocation(Hn.None);return o!=null&&o.rejectReason?{edits:[],rejectReason:o.rejectReason}:r.provideRenameEdits(i,Hn.None)}let pp=bj=class{static get(e){return e.getContribution(bj.ID)}constructor(e,t,i,r,o,s,a,l,u){this.editor=e,this._instaService=t,this._notificationService=i,this._bulkEditService=r,this._progressService=o,this._logService=s,this._configService=a,this._languageFeaturesService=l,this._telemetryService=u,this._disposableStore=new je,this._cts=new co,this._renameInputField=this._disposableStore.add(this._instaService.createInstance(pj,this.editor,["acceptRenameInput","acceptRenameInputWithPreview"]))}dispose(){this._disposableStore.dispose(),this._cts.dispose(!0)}async run(){var e,t;const i=this._logService.trace.bind(this._logService,"[rename]");if(this._cts.dispose(!0),this._cts=new co,!this.editor.hasModel()){i("editor has no model");return}const r=this.editor.getPosition(),o=new Cj(this.editor.getModel(),r,this._languageFeaturesService.renameProvider);if(!o.hasProvider()){i("skeleton has no provider");return}const s=new h0(this.editor,5,void 0,this._cts.token);let a;try{i("resolving rename location");const w=o.resolveRenameLocation(s.token);this._progressService.showWhile(w,250),a=await w,i("resolved rename location")}catch(w){i("resolve rename location failed",JSON.stringify(w,null," ")),(e=ll.get(this.editor))===null||e===void 0||e.showMessage(w||x("resolveRenameLocationFailed","An unknown error occurred while resolving rename location"),r);return}finally{s.dispose()}if(!a){i("returning early - no loc");return}if(a.rejectReason){i(`returning early - rejected with reason: ${a.rejectReason}`,a.rejectReason),(t=ll.get(this.editor))===null||t===void 0||t.showMessage(a.rejectReason,r);return}if(s.token.isCancellationRequested){i("returning early - cts1 cancelled");return}const l=new h0(this.editor,5,a.range,this._cts.token),u=this.editor.getModel(),c=new co(l.token),d=this._languageFeaturesService.newSymbolNamesProvider.all(u),h=d.map(w=>w.provideNewSymbolNames(u,a.range,c.token));i(`requested new symbol names from ${d.length} providers`);const g=this.editor.getSelection();let m=0,f=a.text.length;!K.isEmpty(g)&&!K.spansMultipleLines(g)&&K.containsRange(a.range,g)&&(m=Math.max(0,g.startColumn-a.range.startColumn),f=Math.min(a.range.endColumn,g.endColumn)-a.range.startColumn),i("creating rename input field and awaiting its result");const b=this._bulkEditService.hasPreviewHandler()&&this._configService.getValue(this.editor.getModel().uri,"editor.rename.enablePreview"),C=await this._renameInputField.getInput(a.range,a.text,m,f,b,h,c);if(i("received response from rename input field"),d.length>0&&this._reportTelemetry(d.length,u.getLanguageId(),C),typeof C=="boolean"){i(`returning early - rename input field response - ${C}`),C&&this.editor.focus(),l.dispose();return}this.editor.focus(),i("requesting rename edits");const v=LF(o.provideRenameEdits(C.newName,l.token),l.token).then(async w=>{if(!w){i("returning early - no rename edits result");return}if(!this.editor.hasModel()){i("returning early - no model after rename edits are provided");return}if(w.rejectReason){i(`returning early - rejected with reason: ${w.rejectReason}`),this._notificationService.info(w.rejectReason);return}this.editor.setSelection(K.fromPositions(this.editor.getSelection().getPosition())),i("applying edits"),this._bulkEditService.apply(w,{editor:this.editor,showPreview:C.wantsPreview,label:x("label","Renaming '{0}' to '{1}'",a==null?void 0:a.text,C.newName),code:"undoredo.rename",quotableLabel:x("quotableLabel","Renaming {0} to {1}",a==null?void 0:a.text,C.newName),respectAutoSaveConfig:!0}).then(S=>{i("edits applied"),S.ariaSummary&&ou(x("aria","Successfully renamed '{0}' to '{1}'. Summary: {2}",a.text,C.newName,S.ariaSummary))}).catch(S=>{i(`error when applying edits ${JSON.stringify(S,null," ")}`),this._notificationService.error(x("rename.failedApply","Rename failed to apply edits")),this._logService.error(S)})},w=>{i("error when providing rename edits",JSON.stringify(w,null," ")),this._notificationService.error(x("rename.failed","Rename failed to compute edits")),this._logService.error(w)}).finally(()=>{l.dispose()});return i("returning rename operation"),this._progressService.showWhile(v,250),v}acceptRenameInput(e){this._renameInputField.acceptInput(e)}cancelRenameInput(){this._renameInputField.cancelInput(!0,"cancelRenameInput command")}focusNextRenameSuggestion(){this._renameInputField.focusNextRenameSuggestion()}focusPreviousRenameSuggestion(){this._renameInputField.focusPreviousRenameSuggestion()}_reportTelemetry(e,t,i){const r=typeof i=="boolean"?{kind:"cancelled",languageId:t,nRenameSuggestionProviders:e}:{kind:"accepted",languageId:t,nRenameSuggestionProviders:e,source:i.source,nRenameSuggestions:i.nRenameSuggestions,wantsPreview:i.wantsPreview};this._telemetryService.publicLog2("renameInvokedEvent",r)}};pp.ID="editor.contrib.renameController",pp=bj=Y9t([Y0(1,tn),Y0(2,Fo),Y0(3,DD),Y0(4,u0),Y0(5,Qa),Y0(6,MJ),Y0(7,Tt),Y0(8,Nl)],pp);class U9t extends Nt{constructor(){super({id:"editor.action.rename",label:x("rename.label","Rename Symbol"),alias:"Rename Symbol",precondition:Be.and(ne.writable,ne.hasRenameProvider),kbOpts:{kbExpr:ne.editorTextFocus,primary:60,weight:100},contextMenuOpts:{group:"1_modification",order:1.1}})}runCommand(e,t){const i=e.get(yi),[r,o]=Array.isArray(t)&&t||[void 0,void 0];return $t.isUri(r)&&ve.isIPosition(o)?i.openCodeEditor({resource:r},i.getActiveCodeEditor()).then(s=>{s&&(s.setPosition(o),s.invokeWithinContext(a=>(this.reportTelemetry(a,s),this.run(a,s))))},fn):super.runCommand(e,t)}run(e,t){const i=e.get(Qa),r=pp.get(t);return r?(i.trace("[RenameAction] got controller, running..."),r.run()):(i.trace("[RenameAction] returning early - controller missing"),Promise.resolve())}}Ii(pp.ID,pp,4),it(U9t);const vj=cs.bindToContribution(pp.get);mt(new vj({id:"acceptRenameInput",precondition:nS,handler:n=>n.acceptRenameInput(!1),kbOpts:{weight:199,kbExpr:Be.and(ne.focus,Be.not("isComposing")),primary:3}})),mt(new vj({id:"acceptRenameInputWithPreview",precondition:Be.and(nS,Be.has("config.editor.rename.enablePreview")),handler:n=>n.acceptRenameInput(!0),kbOpts:{weight:199,kbExpr:Be.and(ne.focus,Be.not("isComposing")),primary:1027}})),mt(new vj({id:"cancelRenameInput",precondition:nS,handler:n=>n.cancelRenameInput(),kbOpts:{weight:199,kbExpr:ne.focus,primary:9,secondary:[1033]}})),Qi(class extends Al{constructor(){super({id:"focusNextRenameSuggestion",title:{...ai("focusNextRenameSuggestion","Focus Next Rename Suggestion")},precondition:nS,keybinding:[{primary:2,secondary:[18],weight:199}]})}run(e){const t=e.get(yi).getFocusedCodeEditor();if(!t)return;const i=pp.get(t);i&&i.focusNextRenameSuggestion()}}),Qi(class extends Al{constructor(){super({id:"focusPreviousRenameSuggestion",title:{...ai("focusPreviousRenameSuggestion","Focus Previous Rename Suggestion")},precondition:nS,keybinding:[{when:fj,primary:6,weight:199},{when:fj.toNegated(),primary:1026,secondary:[16],weight:199}]})}run(e){const t=e.get(yi).getFocusedCodeEditor();if(!t)return;const i=pp.get(t);i&&i.focusPreviousRenameSuggestion()}}),Wg("_executeDocumentRenameProvider",function(n,e,t,...i){const[r]=i;Ci(typeof r=="string");const{renameProvider:o}=n.get(Tt);return H9t(o,e,t,r)}),Wg("_executePrepareRename",async function(n,e,t){const{renameProvider:i}=n.get(Tt),o=await new Cj(e,t,i).resolveRenameLocation(Hn.None);if(o!=null&&o.rejectReason)throw new Error(o.rejectReason);return o}),xo.as(Ih.Configuration).registerConfiguration({id:"editor",properties:{"editor.rename.enablePreview":{scope:5,description:x("enablePreview","Enable/disable the ability to preview changes before renaming"),default:!0,type:"boolean"}}});class OA{static create(e,t){return new OA(e,new F3(t))}get startLineNumber(){return this._startLineNumber}get endLineNumber(){return this._endLineNumber}constructor(e,t){this._startLineNumber=e,this._tokens=t,this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}toString(){return this._tokens.toString(this._startLineNumber)}_updateEndLineNumber(){this._endLineNumber=this._startLineNumber+this._tokens.getMaxDeltaLine()}isEmpty(){return this._tokens.isEmpty()}getLineTokens(e){return this._startLineNumber<=e&&e<=this._endLineNumber?this._tokens.getLineTokens(e-this._startLineNumber):null}getRange(){const e=this._tokens.getRange();return e&&new K(this._startLineNumber+e.startLineNumber,e.startColumn,this._startLineNumber+e.endLineNumber,e.endColumn)}removeTokens(e){const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber;this._startLineNumber+=this._tokens.removeTokens(t,e.startColumn-1,i,e.endColumn-1),this._updateEndLineNumber()}split(e){const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber,[r,o,s]=this._tokens.split(t,e.startColumn-1,i,e.endColumn-1);return[new OA(this._startLineNumber,r),new OA(this._startLineNumber+s,o)]}applyEdit(e,t){const[i,r,o]=Bb(t);this.acceptEdit(e,i,r,o,t.length>0?t.charCodeAt(0):0)}acceptEdit(e,t,i,r,o){this._acceptDeleteRange(e),this._acceptInsertText(new ve(e.startLineNumber,e.startColumn),t,i,r,o),this._updateEndLineNumber()}_acceptDeleteRange(e){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return;const t=e.startLineNumber-this._startLineNumber,i=e.endLineNumber-this._startLineNumber;if(i<0){const o=i-t;this._startLineNumber-=o;return}const r=this._tokens.getMaxDeltaLine();if(!(t>=r+1)){if(t<0&&i>=r+1){this._startLineNumber=0,this._tokens.clear();return}if(t<0){const o=-t;this._startLineNumber-=o,this._tokens.acceptDeleteRange(e.startColumn-1,0,0,i,e.endColumn-1)}else this._tokens.acceptDeleteRange(0,t,e.startColumn-1,i,e.endColumn-1)}}_acceptInsertText(e,t,i,r,o){if(t===0&&i===0)return;const s=e.lineNumber-this._startLineNumber;if(s<0){this._startLineNumber+=t;return}const a=this._tokens.getMaxDeltaLine();s>=a+1||this._tokens.acceptInsertText(s,e.column-1,t,i,r,o)}}class F3{constructor(e){this._tokens=e,this._tokenCount=e.length/4}toString(e){const t=[];for(let i=0;ie)i=r-1;else{let s=r;for(;s>t&&this._getDeltaLine(s-1)===e;)s--;let a=r;for(;ae||h===e&&m>=t)&&(he||m===e&&b>=t){if(mo?f-=o-i:f=i;else if(g===t&&m===i)if(g===r&&f>o)f-=o-i;else{c=!0;continue}else if(go)g=t,m=i,f=m+(f-o);else{c=!0;continue}else if(g>r){if(l===0&&!c){u=a;break}g-=l}else if(g===r&&m>=o)e&&g===0&&(m+=e,f+=e),g-=l,m-=o-i,f-=o-i;else throw new Error("Not possible!");const C=4*u;s[C]=g,s[C+1]=m,s[C+2]=f,s[C+3]=b,u++}this._tokenCount=u}acceptInsertText(e,t,i,r,o,s){const a=i===0&&r===1&&(s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122),l=this._tokens,u=this._tokenCount;for(let c=0;c=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},yj=function(n,e){return function(t,i){e(t,i,n)}};let Ij=class{constructor(e,t,i,r){this._legend=e,this._themeService=t,this._languageService=i,this._logService=r,this._hasWarnedOverlappingTokens=!1,this._hasWarnedInvalidLengthTokens=!1,this._hasWarnedInvalidEditStart=!1,this._hashTable=new bp}getMetadata(e,t,i){const r=this._languageService.languageIdCodec.encodeLanguageId(i),o=this._hashTable.get(e,t,r);let s;if(o)s=o.metadata,this._logService.getLevel()===Hs.Trace&&this._logService.trace(`SemanticTokensProviderStyling [CACHED] ${e} / ${t}: foreground ${cu.getForeground(s)}, fontStyle ${cu.getFontStyle(s).toString(2)}`);else{let a=this._legend.tokenTypes[e];const l=[];if(a){let u=t;for(let d=0;u>0&&d>1;u>0&&this._logService.getLevel()===Hs.Trace&&(this._logService.trace(`SemanticTokensProviderStyling: unknown token modifier index: ${t.toString(2)} for legend: ${JSON.stringify(this._legend.tokenModifiers)}`),l.push("not-in-legend"));const c=this._themeService.getColorTheme().getTokenStyleMetadata(a,l,i);if(typeof c>"u")s=2147483647;else{if(s=0,typeof c.italic<"u"){const d=(c.italic?1:0)<<11;s|=d|1}if(typeof c.bold<"u"){const d=(c.bold?2:0)<<11;s|=d|2}if(typeof c.underline<"u"){const d=(c.underline?4:0)<<11;s|=d|4}if(typeof c.strikethrough<"u"){const d=(c.strikethrough?8:0)<<11;s|=d|8}if(c.foreground){const d=c.foreground<<15;s|=d|16}s===0&&(s=2147483647)}}else this._logService.getLevel()===Hs.Trace&&this._logService.trace(`SemanticTokensProviderStyling: unknown token type index: ${e} for legend: ${JSON.stringify(this._legend.tokenTypes)}`),s=2147483647,a="not-in-legend";this._hashTable.add(e,t,r,s),this._logService.getLevel()===Hs.Trace&&this._logService.trace(`SemanticTokensProviderStyling ${e} (${a}) / ${t} (${l.join(" ")}): foreground ${cu.getForeground(s)}, fontStyle ${cu.getFontStyle(s).toString(2)}`)}return s}warnOverlappingSemanticTokens(e,t){this._hasWarnedOverlappingTokens||(this._hasWarnedOverlappingTokens=!0,this._logService.warn(`Overlapping semantic tokens detected at lineNumber ${e}, column ${t}`))}warnInvalidLengthSemanticTokens(e,t){this._hasWarnedInvalidLengthTokens||(this._hasWarnedInvalidLengthTokens=!0,this._logService.warn(`Semantic token with invalid length detected at lineNumber ${e}, column ${t}`))}warnInvalidEditStart(e,t,i,r,o){this._hasWarnedInvalidEditStart||(this._hasWarnedInvalidEditStart=!0,this._logService.warn(`Invalid semantic tokens edit detected (previousResultId: ${e}, resultId: ${t}) at edit #${i}: The provided start offset ${r} is outside the previous data (length ${o}).`))}};Ij=J9t([yj(1,ts),yj(2,Cr),yj(3,Qa)],Ij);function nLe(n,e,t){const i=n.data,r=n.data.length/5|0,o=Math.max(Math.ceil(r/1024),400),s=[];let a=0,l=1,u=0;for(;ac&&i[5*v]===0;)v--;if(v-1===c){let w=d;for(;w+1L)e.warnOverlappingSemanticTokens(F,L+1);else{const Z=e.getMetadata(M,W,t);Z!==2147483647&&(m===0&&(m=F),h[g]=F-m,h[g+1]=L,h[g+2]=A,h[g+3]=Z,g+=4,f=F,b=A)}l=F,u=L,a++}g!==h.length&&(h=h.subarray(0,g));const C=OA.create(m,h);s.push(C)}return s}class K9t{constructor(e,t,i,r){this.tokenTypeIndex=e,this.tokenModifierSet=t,this.languageId=i,this.metadata=r,this.next=null}}class bp{constructor(){this._elementsCount=0,this._currentLengthIndex=0,this._currentLength=bp._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+1=this._growCount){const o=this._elements;this._currentLengthIndex++,this._currentLength=bp._SIZES[this._currentLengthIndex],this._growCount=Math.round(this._currentLengthIndex+10?t[0]:[]}async function sLe(n,e,t,i,r){const o=e5t(n,e),s=await Promise.all(o.map(async a=>{let l,u=null;try{l=await a.provideDocumentSemanticTokens(e,a===t?i:null,r)}catch(c){u=c,l=null}return(!l||!_3(l)&&!rLe(l))&&(l=null),new q9t(a,l,u)}));for(const a of s){if(a.error)throw a.error;if(a.tokens)return a}return s.length>0?s[0]:null}function t5t(n,e){const t=n.orderedGroups(e);return t.length>0?t[0]:null}class n5t{constructor(e,t){this.provider=e,this.tokens=t}}function i5t(n,e){return n.has(e)}function aLe(n,e){const t=n.orderedGroups(e);return t.length>0?t[0]:[]}async function wj(n,e,t,i){const r=aLe(n,e),o=await Promise.all(r.map(async s=>{let a;try{a=await s.provideDocumentRangeSemanticTokens(e,t,i)}catch(l){wo(l),a=null}return(!a||!_3(a))&&(a=null),new n5t(s,a)}));for(const s of o)if(s.tokens)return s;return o.length>0?o[0]:null}ei.registerCommand("_provideDocumentSemanticTokensLegend",async(n,...e)=>{const[t]=e;Ci(t instanceof $t);const i=n.get(wr).getModel(t);if(!i)return;const{documentSemanticTokensProvider:r}=n.get(Tt),o=t5t(r,i);return o?o[0].getLegend():n.get(Vr).executeCommand("_provideDocumentRangeSemanticTokensLegend",t)}),ei.registerCommand("_provideDocumentSemanticTokens",async(n,...e)=>{const[t]=e;Ci(t instanceof $t);const i=n.get(wr).getModel(t);if(!i)return;const{documentSemanticTokensProvider:r}=n.get(Tt);if(!oLe(r,i))return n.get(Vr).executeCommand("_provideDocumentRangeSemanticTokens",t,i.getFullModelRange());const o=await sLe(r,i,null,null,Hn.None);if(!o)return;const{provider:s,tokens:a}=o;if(!a||!_3(a))return;const l=iLe({id:0,type:"full",data:a.data});return a.resultId&&s.releaseDocumentSemanticTokens(a.resultId),l}),ei.registerCommand("_provideDocumentRangeSemanticTokensLegend",async(n,...e)=>{const[t,i]=e;Ci(t instanceof $t);const r=n.get(wr).getModel(t);if(!r)return;const{documentRangeSemanticTokensProvider:o}=n.get(Tt),s=aLe(o,r);if(s.length===0)return;if(s.length===1||!i||!K.isIRange(i))return s[0].getLegend();const a=await wj(o,r,K.lift(i),Hn.None);if(a)return a.provider.getLegend()}),ei.registerCommand("_provideDocumentRangeSemanticTokens",async(n,...e)=>{const[t,i]=e;Ci(t instanceof $t),Ci(K.isIRange(i));const r=n.get(wr).getModel(t);if(!r)return;const{documentRangeSemanticTokensProvider:o}=n.get(Tt),s=await wj(o,r,K.lift(i),Hn.None);if(!(!s||!s.tokens))return iLe({id:0,type:"full",data:s.tokens.data})});const D3=Un("semanticTokensStylingService"),Sj="editor.semanticHighlighting";function A3(n,e,t){var i;const r=(i=t.getValue(Sj,{overrideIdentifier:n.getLanguageId(),resource:n.uri}))===null||i===void 0?void 0:i.enabled;return typeof r=="boolean"?r:e.getColorTheme().semanticHighlighting}var lLe=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},Dm=function(n,e){return function(t,i){e(t,i,n)}},H0;let xj=class extends De{constructor(e,t,i,r,o,s){super(),this._watchers=Object.create(null);const a=c=>{this._watchers[c.uri.toString()]=new BA(c,e,i,o,s)},l=(c,d)=>{d.dispose(),delete this._watchers[c.uri.toString()]},u=()=>{for(const c of t.getModels()){const d=this._watchers[c.uri.toString()];A3(c,i,r)?d||a(c):d&&l(c,d)}};t.getModels().forEach(c=>{A3(c,i,r)&&a(c)}),this._register(t.onModelAdded(c=>{A3(c,i,r)&&a(c)})),this._register(t.onModelRemoved(c=>{const d=this._watchers[c.uri.toString()];d&&l(c,d)})),this._register(r.onDidChangeConfiguration(c=>{c.affectsConfiguration(Sj)&&u()})),this._register(i.onDidColorThemeChange(u))}dispose(){for(const e of Object.values(this._watchers))e.dispose();super.dispose()}};xj=lLe([Dm(0,D3),Dm(1,wr),Dm(2,ts),Dm(3,Xn),Dm(4,Xc),Dm(5,Tt)],xj);let BA=H0=class extends De{constructor(e,t,i,r,o){super(),this._semanticTokensStylingService=t,this._isDisposed=!1,this._model=e,this._provider=o.documentSemanticTokensProvider,this._debounceInformation=r.for(this._provider,"DocumentSemanticTokens",{min:H0.REQUEST_MIN_DELAY,max:H0.REQUEST_MAX_DELAY}),this._fetchDocumentSemanticTokens=this._register(new Vi(()=>this._fetchDocumentSemanticTokensNow(),H0.REQUEST_MIN_DELAY)),this._currentDocumentResponse=null,this._currentDocumentRequestCancellationTokenSource=null,this._documentProvidersChangeListeners=[],this._providersChangedDuringRequest=!1,this._register(this._model.onDidChangeContent(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeAttached(()=>{this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(this._model.onDidChangeLanguage(()=>{this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(0)}));const s=()=>{Mi(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[];for(const a of this._provider.all(e))typeof a.onDidChange=="function"&&this._documentProvidersChangeListeners.push(a.onDidChange(()=>{if(this._currentDocumentRequestCancellationTokenSource){this._providersChangedDuringRequest=!0;return}this._fetchDocumentSemanticTokens.schedule(0)}))};s(),this._register(this._provider.onDidChange(()=>{s(),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._register(i.onDidColorThemeChange(a=>{this._setDocumentSemanticTokens(null,null,null,[]),this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))})),this._fetchDocumentSemanticTokens.schedule(0)}dispose(){this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._currentDocumentRequestCancellationTokenSource&&(this._currentDocumentRequestCancellationTokenSource.cancel(),this._currentDocumentRequestCancellationTokenSource=null),Mi(this._documentProvidersChangeListeners),this._documentProvidersChangeListeners=[],this._setDocumentSemanticTokens(null,null,null,[]),this._isDisposed=!0,super.dispose()}_fetchDocumentSemanticTokensNow(){if(this._currentDocumentRequestCancellationTokenSource)return;if(!oLe(this._provider,this._model)){this._currentDocumentResponse&&this._model.tokenization.setSemanticTokens(null,!1);return}if(!this._model.isAttachedToEditor())return;const e=new co,t=this._currentDocumentResponse?this._currentDocumentResponse.provider:null,i=this._currentDocumentResponse&&this._currentDocumentResponse.resultId||null,r=sLe(this._provider,this._model,t,i,e.token);this._currentDocumentRequestCancellationTokenSource=e,this._providersChangedDuringRequest=!1;const o=[],s=this._model.onDidChangeContent(l=>{o.push(l)}),a=new aa(!1);r.then(l=>{if(this._debounceInformation.update(this._model,a.elapsed()),this._currentDocumentRequestCancellationTokenSource=null,s.dispose(),!l)this._setDocumentSemanticTokens(null,null,null,o);else{const{provider:u,tokens:c}=l,d=this._semanticTokensStylingService.getStyling(u);this._setDocumentSemanticTokens(u,c||null,d,o)}},l=>{l&&(Ng(l)||typeof l.message=="string"&&l.message.indexOf("busy")!==-1)||fn(l),this._currentDocumentRequestCancellationTokenSource=null,s.dispose(),(o.length>0||this._providersChangedDuringRequest)&&(this._fetchDocumentSemanticTokens.isScheduled()||this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model)))})}static _copy(e,t,i,r,o){o=Math.min(o,i.length-r,e.length-t);for(let s=0;s{(r.length>0||this._providersChangedDuringRequest)&&!this._fetchDocumentSemanticTokens.isScheduled()&&this._fetchDocumentSemanticTokens.schedule(this._debounceInformation.get(this._model))};if(this._currentDocumentResponse&&(this._currentDocumentResponse.dispose(),this._currentDocumentResponse=null),this._isDisposed){e&&t&&e.releaseDocumentSemanticTokens(t.resultId);return}if(!e||!i){this._model.tokenization.setSemanticTokens(null,!1);return}if(!t){this._model.tokenization.setSemanticTokens(null,!0),s();return}if(rLe(t)){if(!o){this._model.tokenization.setSemanticTokens(null,!0);return}if(t.edits.length===0)t={resultId:t.resultId,data:o.data};else{let a=0;for(const h of t.edits)a+=(h.data?h.data.length:0)-h.deleteCount;const l=o.data,u=new Uint32Array(l.length+a);let c=l.length,d=u.length;for(let h=t.edits.length-1;h>=0;h--){const g=t.edits[h];if(g.start>l.length){i.warnInvalidEditStart(o.resultId,t.resultId,h,g.start,l.length),this._model.tokenization.setSemanticTokens(null,!0);return}const m=c-(g.start+g.deleteCount);m>0&&(H0._copy(l,c-m,u,d-m,m),d-=m),g.data&&(H0._copy(g.data,0,u,d-g.data.length,g.data.length),d-=g.data.length),c=g.start}c>0&&H0._copy(l,0,u,0,c),t={resultId:t.resultId,data:u}}}if(_3(t)){this._currentDocumentResponse=new r5t(e,t.resultId,t.data);const a=nLe(t,i,this._model.getLanguageId());if(r.length>0)for(const l of r)for(const u of a)for(const c of l.changes)u.applyEdit(c.range,c.text);this._model.tokenization.setSemanticTokens(a,!0)}else this._model.tokenization.setSemanticTokens(null,!0);s()}};BA.REQUEST_MIN_DELAY=300,BA.REQUEST_MAX_DELAY=2e3,BA=H0=lLe([Dm(1,D3),Dm(2,ts),Dm(3,Xc),Dm(4,Tt)],BA);class r5t{constructor(e,t,i){this.provider=e,this.resultId=t,this.data=i}dispose(){this.provider.releaseDocumentSemanticTokens(this.resultId)}}YD(xj);var o5t=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},zA=function(n,e){return function(t,i){e(t,i,n)}};let YA=class extends De{constructor(e,t,i,r,o,s){super(),this._semanticTokensStylingService=t,this._themeService=i,this._configurationService=r,this._editor=e,this._provider=s.documentRangeSemanticTokensProvider,this._debounceInformation=o.for(this._provider,"DocumentRangeSemanticTokens",{min:100,max:500}),this._tokenizeViewport=this._register(new Vi(()=>this._tokenizeViewportNow(),100)),this._outstandingRequests=[];const a=()=>{this._editor.hasModel()&&this._tokenizeViewport.schedule(this._debounceInformation.get(this._editor.getModel()))};this._register(this._editor.onDidScrollChange(()=>{a()})),this._register(this._editor.onDidChangeModel(()=>{this._cancelAll(),a()})),this._register(this._editor.onDidChangeModelContent(l=>{this._cancelAll(),a()})),this._register(this._provider.onDidChange(()=>{this._cancelAll(),a()})),this._register(this._configurationService.onDidChangeConfiguration(l=>{l.affectsConfiguration(Sj)&&(this._cancelAll(),a())})),this._register(this._themeService.onDidColorThemeChange(()=>{this._cancelAll(),a()})),a()}_cancelAll(){for(const e of this._outstandingRequests)e.cancel();this._outstandingRequests=[]}_removeOutstandingRequest(e){for(let t=0,i=this._outstandingRequests.length;tthis._requestRange(e,i)))}_requestRange(e,t){const i=e.getVersionId(),r=$o(s=>Promise.resolve(wj(this._provider,e,t,s))),o=new aa(!1);return r.then(s=>{if(this._debounceInformation.update(e,o.elapsed()),!s||!s.tokens||e.isDisposed()||e.getVersionId()!==i)return;const{provider:a,tokens:l}=s,u=this._semanticTokensStylingService.getStyling(a);e.tokenization.setPartialSemanticTokens(t,nLe(l,u,e.getLanguageId()))}).then(()=>this._removeOutstandingRequest(r),()=>this._removeOutstandingRequest(r)),r}};YA.ID="editor.contrib.viewportSemanticTokens",YA=o5t([zA(1,D3),zA(2,ts),zA(3,Xn),zA(4,Xc),zA(5,Tt)],YA),Ii(YA.ID,YA,1);class s5t{constructor(e=!0){this.selectSubwords=e}provideSelectionRanges(e,t){const i=[];for(const r of t){const o=[];i.push(o),this.selectSubwords&&this._addInWordRanges(o,e,r),this._addWordRanges(o,e,r),this._addWhitespaceLine(o,e,r),o.push({range:e.getFullModelRange()})}return i}_addInWordRanges(e,t,i){const r=t.getWordAtPosition(i);if(!r)return;const{word:o,startColumn:s}=r,a=i.column-s;let l=a,u=a,c=0;for(;l>=0;l--){const d=o.charCodeAt(l);if(l!==a&&(d===95||d===45))break;if(vb(d)&&Tg(c))break;c=d}for(l+=1;u0&&t.getLineFirstNonWhitespaceColumn(i.lineNumber)===0&&t.getLineLastNonWhitespaceColumn(i.lineNumber)===0&&e.push({range:new K(i.lineNumber,1,i.lineNumber,t.getLineMaxColumn(i.lineNumber))})}}var a5t=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},l5t=function(n,e){return function(t,i){e(t,i,n)}},Lj;class Fj{constructor(e,t){this.index=e,this.ranges=t}mov(e){const t=this.index+(e?1:-1);if(t<0||t>=this.ranges.length)return this;const i=new Fj(t,this.ranges);return i.ranges[t].equalsRange(this.ranges[this.index])?i.mov(e):i}}let iS=Lj=class{static get(e){return e.getContribution(Lj.ID)}constructor(e,t){this._editor=e,this._languageFeaturesService=t,this._ignoreSelection=!1}dispose(){var e;(e=this._selectionListener)===null||e===void 0||e.dispose()}async run(e){if(!this._editor.hasModel())return;const t=this._editor.getSelections(),i=this._editor.getModel();if(this._state||await cLe(this._languageFeaturesService.selectionRangeProvider,i,t.map(o=>o.getPosition()),this._editor.getOption(113),Hn.None).then(o=>{var s;if(!(!da(o)||o.length!==t.length)&&!(!this._editor.hasModel()||!Ar(this._editor.getSelections(),t,(a,l)=>a.equalsSelection(l)))){for(let a=0;al.containsPosition(t[a].getStartPosition())&&l.containsPosition(t[a].getEndPosition())),o[a].unshift(t[a]);this._state=o.map(a=>new Fj(0,a)),(s=this._selectionListener)===null||s===void 0||s.dispose(),this._selectionListener=this._editor.onDidChangeCursorPosition(()=>{var a;this._ignoreSelection||((a=this._selectionListener)===null||a===void 0||a.dispose(),this._state=void 0)})}}),!this._state)return;this._state=this._state.map(o=>o.mov(e));const r=this._state.map(o=>Gt.fromPositions(o.ranges[o.index].getStartPosition(),o.ranges[o.index].getEndPosition()));this._ignoreSelection=!0;try{this._editor.setSelections(r)}finally{this._ignoreSelection=!1}}};iS.ID="editor.contrib.smartSelectController",iS=Lj=a5t([l5t(1,Tt)],iS);class uLe extends Nt{constructor(e,t){super(t),this._forward=e}async run(e,t){const i=iS.get(t);i&&await i.run(this._forward)}}class u5t extends uLe{constructor(){super(!0,{id:"editor.action.smartSelect.expand",label:x("smartSelect.expand","Expand Selection"),alias:"Expand Selection",precondition:void 0,kbOpts:{kbExpr:ne.editorTextFocus,primary:1553,mac:{primary:3345,secondary:[1297]},weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"1_basic",title:x({key:"miSmartSelectGrow",comment:["&& denotes a mnemonic"]},"&&Expand Selection"),order:2}})}}ei.registerCommandAlias("editor.action.smartSelect.grow","editor.action.smartSelect.expand");class c5t extends uLe{constructor(){super(!1,{id:"editor.action.smartSelect.shrink",label:x("smartSelect.shrink","Shrink Selection"),alias:"Shrink Selection",precondition:void 0,kbOpts:{kbExpr:ne.editorTextFocus,primary:1551,mac:{primary:3343,secondary:[1295]},weight:100},menuOpts:{menuId:$.MenubarSelectionMenu,group:"1_basic",title:x({key:"miSmartSelectShrink",comment:["&& denotes a mnemonic"]},"&&Shrink Selection"),order:3}})}}Ii(iS.ID,iS,4),it(u5t),it(c5t);async function cLe(n,e,t,i,r){const o=n.all(e).concat(new s5t(i.selectSubwords));o.length===1&&o.unshift(new ju);const s=[],a=[];for(const l of o)s.push(Promise.resolve(l.provideSelectionRanges(e,t,r)).then(u=>{if(da(u)&&u.length===t.length)for(let c=0;c{if(l.length===0)return[];l.sort((h,g)=>ve.isBefore(h.getStartPosition(),g.getStartPosition())?1:ve.isBefore(g.getStartPosition(),h.getStartPosition())||ve.isBefore(h.getEndPosition(),g.getEndPosition())?-1:ve.isBefore(g.getEndPosition(),h.getEndPosition())?1:0);const u=[];let c;for(const h of l)(!c||K.containsRange(h,c)&&!K.equalsRange(h,c))&&(u.push(h),c=h);if(!i.selectLeadingAndTrailingWhitespace)return u;const d=[u[0]];for(let h=1;hn}),_j="data-sticky-line-index",gLe="data-sticky-is-line",h5t="data-sticky-is-line-number",mLe="data-sticky-is-folding-icon";class g5t extends De{constructor(e){super(),this._editor=e,this._foldingIconStore=new je,this._rootDomNode=document.createElement("div"),this._lineNumbersDomNode=document.createElement("div"),this._linesDomNodeScrollable=document.createElement("div"),this._linesDomNode=document.createElement("div"),this._lineHeight=this._editor.getOption(67),this._renderedStickyLines=[],this._lineNumbers=[],this._lastLineRelativePosition=0,this._minContentWidthInPx=0,this._isOnGlyphMargin=!1,this._lineNumbersDomNode.className="sticky-widget-line-numbers",this._lineNumbersDomNode.setAttribute("role","none"),this._linesDomNode.className="sticky-widget-lines",this._linesDomNode.setAttribute("role","list"),this._linesDomNodeScrollable.className="sticky-widget-lines-scrollable",this._linesDomNodeScrollable.appendChild(this._linesDomNode),this._rootDomNode.className="sticky-widget",this._rootDomNode.classList.toggle("peek",e instanceof C0),this._rootDomNode.appendChild(this._lineNumbersDomNode),this._rootDomNode.appendChild(this._linesDomNodeScrollable);const t=()=>{this._linesDomNode.style.left=this._editor.getOption(115).scrollWithEditor?`-${this._editor.getScrollLeft()}px`:"0px"};this._register(this._editor.onDidChangeConfiguration(i=>{i.hasChanged(115)&&t(),i.hasChanged(67)&&(this._lineHeight=this._editor.getOption(67))})),this._register(this._editor.onDidScrollChange(i=>{i.scrollLeftChanged&&t(),i.scrollWidthChanged&&this._updateWidgetWidth()})),this._register(this._editor.onDidChangeModel(()=>{t(),this._updateWidgetWidth()})),this._register(this._foldingIconStore),t(),this._register(this._editor.onDidLayoutChange(i=>{this._updateWidgetWidth()})),this._updateWidgetWidth()}get lineNumbers(){return this._lineNumbers}get lineNumberCount(){return this._lineNumbers.length}getRenderedStickyLine(e){return this._renderedStickyLines.find(t=>t.lineNumber===e)}getCurrentLines(){return this._lineNumbers}setState(e,t,i){if(i===void 0&&(!this._previousState&&!e||this._previousState&&this._previousState.equals(e)))return;const r=this._isWidgetHeightZero(e),o=r?void 0:e,s=r?0:this._findLineToRebuildWidgetFrom(e,i);this._renderRootNode(o,t,s),this._previousState=e}_isWidgetHeightZero(e){if(!e)return!0;const t=e.startLineNumbers.length*this._lineHeight+e.lastLineRelativePosition;if(t>0){this._lastLineRelativePosition=e.lastLineRelativePosition;const i=[...e.startLineNumbers];e.showEndForLine!==null&&(i[e.showEndForLine]=e.endLineNumbers[e.showEndForLine]),this._lineNumbers=i}else this._lastLineRelativePosition=0,this._lineNumbers=[];return t===0}_findLineToRebuildWidgetFrom(e,t){if(!e||!this._previousState)return 0;if(t!==void 0)return t;const i=this._previousState,r=e.startLineNumbers.findIndex(o=>!i.startLineNumbers.includes(o));return r===-1?0:r}_updateWidgetWidth(){const e=this._editor.getLayoutInfo(),t=e.contentLeft;this._lineNumbersDomNode.style.width=`${t}px`,this._linesDomNodeScrollable.style.setProperty("--vscode-editorStickyScroll-scrollableWidth",`${this._editor.getScrollWidth()-e.verticalScrollbarWidth}px`),this._rootDomNode.style.width=`${e.width-e.verticalScrollbarWidth}px`}_clearStickyLinesFromLine(e){this._foldingIconStore.clear();for(let t=e;ta.scrollWidth))+r.verticalScrollbarWidth,this._editor.layoutOverlayWidget(this)}_setFoldingHoverListeners(){this._editor.getOption(110)==="mouseover"&&(this._foldingIconStore.add(Ve(this._lineNumbersDomNode,at.MOUSE_ENTER,()=>{this._isOnGlyphMargin=!0,this._setFoldingIconsVisibility(!0)})),this._foldingIconStore.add(Ve(this._lineNumbersDomNode,at.MOUSE_LEAVE,()=>{this._isOnGlyphMargin=!1,this._useFoldingOpacityTransition(!0),this._setFoldingIconsVisibility(!1)})))}_renderChildNode(e,t,i,r){const o=this._editor._getViewModel();if(!o)return;const s=o.coordinatesConverter.convertModelPositionToViewPosition(new ve(t,1)).lineNumber,a=o.getViewLineRenderingData(s),l=this._editor.getOption(68);let u;try{u=el.filter(a.inlineDecorations,s,a.minColumn,a.maxColumn)}catch{u=[]}const c=new Xb(!0,!0,a.content,a.continuesWithWrappedLine,a.isBasicASCII,a.containsRTL,0,a.tokens,u,a.tabSize,a.startVisibleColumn,1,1,1,500,"none",!0,!0,null),d=new c2(2e3),h=g_(c,d);let g;hLe?g=hLe.createHTML(d.build()):g=d.build();const m=document.createElement("span");m.setAttribute(_j,String(e)),m.setAttribute(gLe,""),m.setAttribute("role","listitem"),m.tabIndex=0,m.className="sticky-line-content",m.classList.add(`stickyLine${t}`),m.style.lineHeight=`${this._lineHeight}px`,m.innerHTML=g;const f=document.createElement("span");f.setAttribute(_j,String(e)),f.setAttribute(h5t,""),f.className="sticky-line-number",f.style.lineHeight=`${this._lineHeight}px`;const b=r.contentLeft;f.style.width=`${b}px`;const C=document.createElement("span");l.renderType===1||l.renderType===3&&t%10===0?C.innerText=t.toString():l.renderType===2&&(C.innerText=Math.abs(t-this._editor.getPosition().lineNumber).toString()),C.className="sticky-line-number-inner",C.style.lineHeight=`${this._lineHeight}px`,C.style.width=`${r.lineNumbersWidth}px`,C.style.paddingLeft=`${r.lineNumbersLeft}px`,f.appendChild(C);const v=this._renderFoldingIconForLine(i,t);v&&f.appendChild(v.domNode),this._editor.applyFontInfo(m),this._editor.applyFontInfo(C),f.style.lineHeight=`${this._lineHeight}px`,m.style.lineHeight=`${this._lineHeight}px`,f.style.height=`${this._lineHeight}px`,m.style.height=`${this._lineHeight}px`;const w=new m5t(e,t,m,f,v,h.characterMapping,m.scrollWidth);return this._updateTopAndZIndexOfStickyLine(w)}_updateTopAndZIndexOfStickyLine(e){var t;const i=e.index,r=e.lineDomNode,o=e.lineNumberDomNode,s=i===this._lineNumbers.length-1,a="0",l="1";r.style.zIndex=s?a:l,o.style.zIndex=s?a:l;const u=`${i*this._lineHeight+this._lastLineRelativePosition+(!((t=e.foldingIcon)===null||t===void 0)&&t.isCollapsed?1:0)}px`,c=`${i*this._lineHeight}px`;return r.style.top=s?u:c,o.style.top=s?u:c,e}_renderFoldingIconForLine(e,t){const i=this._editor.getOption(110);if(!e||i==="never")return;const r=e.regions,o=r.findRange(t),s=r.getStartLineNumber(o);if(!(t===s))return;const l=r.isCollapsed(o),u=new f5t(l,s,r.getEndLineNumber(o),this._lineHeight);return u.setVisible(this._isOnGlyphMargin?!0:l||i==="always"),u.domNode.setAttribute(mLe,""),u}getId(){return"editor.contrib.stickyScrollWidget"}getDomNode(){return this._rootDomNode}getPosition(){return{preference:null}}getMinContentWidthInPx(){return this._minContentWidthInPx}focusLineWithIndex(e){0<=e&&e0)return null;const t=this._getRenderedStickyLineFromChildDomNode(e);if(!t)return null;const i=YH(t.characterMapping,e,0);return new ve(t.lineNumber,i)}getLineNumberFromChildDomNode(e){var t,i;return(i=(t=this._getRenderedStickyLineFromChildDomNode(e))===null||t===void 0?void 0:t.lineNumber)!==null&&i!==void 0?i:null}_getRenderedStickyLineFromChildDomNode(e){const t=this.getLineIndexFromChildDomNode(e);return t===null||t<0||t>=this._renderedStickyLines.length?null:this._renderedStickyLines[t]}getLineIndexFromChildDomNode(e){const t=this._getAttributeValue(e,_j);return t?parseInt(t,10):null}isInStickyLine(e){return this._getAttributeValue(e,gLe)!==void 0}isInFoldingIconDomNode(e){return this._getAttributeValue(e,mLe)!==void 0}_getAttributeValue(e,t){for(;e&&e!==this._rootDomNode;){const i=e.getAttribute(t);if(i!==null)return i;e=e.parentElement}}}class m5t{constructor(e,t,i,r,o,s,a){this.index=e,this.lineNumber=t,this.lineDomNode=i,this.lineNumberDomNode=r,this.foldingIcon=o,this.characterMapping=s,this.scrollWidth=a}}class f5t{constructor(e,t,i,r){this.isCollapsed=e,this.foldingStartLine=t,this.foldingEndLine=i,this.dimension=r,this.domNode=document.createElement("div"),this.domNode.style.width=`${r}px`,this.domNode.style.height=`${r}px`,this.domNode.className=on.asClassName(e?GR:RR)}setVisible(e){this.domNode.style.cursor=e?"pointer":"default",this.domNode.style.opacity=e?"1":"0"}}class HA{constructor(e,t){this.startLineNumber=e,this.endLineNumber=t}}class N3{constructor(e,t,i){this.range=e,this.children=t,this.parent=i}}class fLe{constructor(e,t,i,r){this.uri=e,this.version=t,this.element=i,this.outlineProviderId=r}}var k3=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},UA=function(n,e){return function(t,i){e(t,i,n)}},JA;(function(n){n.OUTLINE_MODEL="outlineModel",n.FOLDING_PROVIDER_MODEL="foldingProviderModel",n.INDENTATION_MODEL="indentationModel"})(JA||(JA={}));var U0;(function(n){n[n.VALID=0]="VALID",n[n.INVALID=1]="INVALID",n[n.CANCELED=2]="CANCELED"})(U0||(U0={}));let Dj=class extends De{constructor(e,t,i,r){super(),this._editor=e,this._languageConfigurationService=t,this._languageFeaturesService=i,this._modelProviders=[],this._modelPromise=null,this._updateScheduler=this._register(new gd(300)),this._updateOperation=this._register(new je);const o=new Aj(i),s=new kj(this._editor,i),a=new Nj(this._editor,t);switch(r){case JA.OUTLINE_MODEL:this._modelProviders.push(o),this._modelProviders.push(s),this._modelProviders.push(a);break;case JA.FOLDING_PROVIDER_MODEL:this._modelProviders.push(s),this._modelProviders.push(a);break;case JA.INDENTATION_MODEL:this._modelProviders.push(a);break}}_cancelModelPromise(){this._modelPromise&&(this._modelPromise.cancel(),this._modelPromise=null)}async update(e,t,i){return this._updateOperation.clear(),this._updateOperation.add({dispose:()=>{this._cancelModelPromise(),this._updateScheduler.cancel()}}),this._cancelModelPromise(),await this._updateScheduler.trigger(async()=>{for(const r of this._modelProviders){const{statusPromise:o,modelPromise:s}=r.computeStickyModel(e,t,i);this._modelPromise=s;const a=await o;if(this._modelPromise!==s)return null;switch(a){case U0.CANCELED:return this._updateOperation.clear(),null;case U0.VALID:return r.stickyModel}}return null}).catch(r=>(fn(r),null))}};Dj=k3([UA(1,$i),UA(2,Tt)],Dj);class pLe{constructor(){this._stickyModel=null}get stickyModel(){return this._stickyModel}_invalid(){return this._stickyModel=null,U0.INVALID}computeStickyModel(e,t,i){if(i.isCancellationRequested||!this.isProviderValid(e))return{statusPromise:this._invalid(),modelPromise:null};const r=$o(o=>this.createModelFromProvider(e,t,o));return{statusPromise:r.then(o=>this.isModelValid(o)?i.isCancellationRequested?U0.CANCELED:(this._stickyModel=this.createStickyModel(e,t,i,o),U0.VALID):this._invalid()).then(void 0,o=>(fn(o),U0.CANCELED)),modelPromise:r}}isModelValid(e){return!0}isProviderValid(e){return!0}}let Aj=class extends pLe{constructor(e){super(),this._languageFeaturesService=e}createModelFromProvider(e,t,i){return gp.create(this._languageFeaturesService.documentSymbolProvider,e,i)}createStickyModel(e,t,i,r){var o;const{stickyOutlineElement:s,providerID:a}=this._stickyModelFromOutlineModel(r,(o=this._stickyModel)===null||o===void 0?void 0:o.outlineProviderId);return new fLe(e.uri,t,s,a)}isModelValid(e){return e&&e.children.size>0}_stickyModelFromOutlineModel(e,t){let i;if(qn.first(e.children.values())instanceof oxe){const a=qn.find(e.children.values(),l=>l.id===t);if(a)i=a.children;else{let l="",u=-1,c;for(const[d,h]of e.children.entries()){const g=this._findSumOfRangesOfGroup(h);g>u&&(c=h,u=g,l=h.id)}t=l,i=c.children}}else i=e.children;const r=[],o=Array.from(i.values()).sort((a,l)=>{const u=new HA(a.symbol.range.startLineNumber,a.symbol.range.endLineNumber),c=new HA(l.symbol.range.startLineNumber,l.symbol.range.endLineNumber);return this._comparator(u,c)});for(const a of o)r.push(this._stickyModelFromOutlineElement(a,a.symbol.selectionRange.startLineNumber));return{stickyOutlineElement:new N3(void 0,r,void 0),providerID:t}}_stickyModelFromOutlineElement(e,t){const i=[];for(const o of e.children.values())if(o.symbol.selectionRange.startLineNumber!==o.symbol.range.endLineNumber)if(o.symbol.selectionRange.startLineNumber!==t)i.push(this._stickyModelFromOutlineElement(o,o.symbol.selectionRange.startLineNumber));else for(const s of o.children.values())i.push(this._stickyModelFromOutlineElement(s,o.symbol.selectionRange.startLineNumber));i.sort((o,s)=>this._comparator(o.range,s.range));const r=new HA(e.symbol.selectionRange.startLineNumber,e.symbol.range.endLineNumber);return new N3(r,i,void 0)}_comparator(e,t){return e.startLineNumber!==t.startLineNumber?e.startLineNumber-t.startLineNumber:t.endLineNumber-e.endLineNumber}_findSumOfRangesOfGroup(e){let t=0;for(const i of e.children.values())t+=this._findSumOfRangesOfGroup(i);return e instanceof L8?t+e.symbol.range.endLineNumber-e.symbol.selectionRange.startLineNumber:t}};Aj=k3([UA(0,Tt)],Aj);class bLe extends pLe{constructor(e){super(),this._foldingLimitReporter=new $Se(e)}createStickyModel(e,t,i,r){const o=this._fromFoldingRegions(r);return new fLe(e.uri,t,o,void 0)}isModelValid(e){return e!==null}_fromFoldingRegions(e){const t=e.length,i=[],r=new N3(void 0,[],void 0);for(let o=0;o0}createModelFromProvider(e,t,i){const r=Lm.getFoldingRangeProviders(this._languageFeaturesService,e);return new S8(e,r,()=>this.createModelFromProvider(e,t,i),this._foldingLimitReporter,void 0).compute(i)}};kj=k3([UA(1,Tt)],kj);var p5t=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},CLe=function(n,e){return function(t,i){e(t,i,n)}};class b5t{constructor(e,t,i){this.startLineNumber=e,this.endLineNumber=t,this.nestingDepth=i}}let Mj=class extends De{constructor(e,t,i){super(),this._languageFeaturesService=t,this._languageConfigurationService=i,this._onDidChangeStickyScroll=this._register(new be),this.onDidChangeStickyScroll=this._onDidChangeStickyScroll.event,this._options=null,this._model=null,this._cts=null,this._stickyModelProvider=null,this._editor=e,this._sessionStore=this._register(new je),this._updateSoon=this._register(new Vi(()=>this.update(),50)),this._register(this._editor.onDidChangeConfiguration(r=>{r.hasChanged(115)&&this.readConfiguration()})),this.readConfiguration()}readConfiguration(){this._stickyModelProvider=null,this._sessionStore.clear(),this._options=this._editor.getOption(115),this._options.enabled&&(this._stickyModelProvider=this._sessionStore.add(new Dj(this._editor,this._languageConfigurationService,this._languageFeaturesService,this._options.defaultModel)),this._sessionStore.add(this._editor.onDidChangeModel(()=>{this._model=null,this._onDidChangeStickyScroll.fire(),this.update()})),this._sessionStore.add(this._editor.onDidChangeHiddenAreas(()=>this.update())),this._sessionStore.add(this._editor.onDidChangeModelContent(()=>this._updateSoon.schedule())),this._sessionStore.add(this._languageFeaturesService.documentSymbolProvider.onDidChange(()=>this.update())),this.update())}getVersionId(){var e;return(e=this._model)===null||e===void 0?void 0:e.version}async update(){var e;(e=this._cts)===null||e===void 0||e.dispose(!0),this._cts=new co,await this.updateStickyModel(this._cts.token),this._onDidChangeStickyScroll.fire()}async updateStickyModel(e){if(!this._editor.hasModel()||!this._stickyModelProvider||this._editor.getModel().isTooLargeForTokenization()){this._model=null;return}const t=this._editor.getModel(),i=t.getVersionId(),r=await this._stickyModelProvider.update(t,i,e);e.isCancellationRequested||(this._model=r)}updateIndex(e){return e===-1?e=0:e<0&&(e=-e-2),e}getCandidateStickyLinesIntersectingFromStickyModel(e,t,i,r,o){if(t.children.length===0)return;let s=o;const a=[];for(let c=0;cc-d)),u=this.updateIndex(zF(a,e.startLineNumber+r,(c,d)=>c-d));for(let c=l;c<=u;c++){const d=t.children[c];if(!d)return;if(d.range){const h=d.range.startLineNumber,g=d.range.endLineNumber;e.startLineNumber<=g+1&&h-1<=e.endLineNumber&&h!==s&&(s=h,i.push(new b5t(h,g-1,r+1)),this.getCandidateStickyLinesIntersectingFromStickyModel(e,d,i,r+1,h))}else this.getCandidateStickyLinesIntersectingFromStickyModel(e,d,i,r,o)}}getCandidateStickyLinesIntersecting(e){var t,i;if(!(!((t=this._model)===null||t===void 0)&&t.element))return[];let r=[];this.getCandidateStickyLinesIntersectingFromStickyModel(e,this._model.element,r,0,-1);const o=(i=this._editor._getViewModel())===null||i===void 0?void 0:i.getHiddenAreas();if(o)for(const s of o)r=r.filter(a=>!(a.startLineNumber>=s.startLineNumber&&a.endLineNumber<=s.endLineNumber+1));return r}};Mj=p5t([CLe(1,Tt),CLe(2,$i)],Mj);var C5t=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},rS=function(n,e){return function(t,i){e(t,i,n)}},Zj;let Am=Zj=class extends De{constructor(e,t,i,r,o,s,a){super(),this._editor=e,this._contextMenuService=t,this._languageFeaturesService=i,this._instaService=r,this._contextKeyService=a,this._sessionStore=new je,this._foldingModel=null,this._maxStickyLines=Number.MAX_SAFE_INTEGER,this._candidateDefinitionsLength=-1,this._focusedStickyElementIndex=-1,this._enabled=!1,this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1,this._endLineNumbers=[],this._showEndForLine=null,this._stickyScrollWidget=new g5t(this._editor),this._stickyLineCandidateProvider=new Mj(this._editor,i,o),this._register(this._stickyScrollWidget),this._register(this._stickyLineCandidateProvider),this._widgetState=new dLe([],[],0),this._onDidResize(),this._readConfiguration();const l=this._stickyScrollWidget.getDomNode();this._register(this._editor.onDidChangeConfiguration(c=>{(c.hasChanged(115)||c.hasChanged(73)||c.hasChanged(67)||c.hasChanged(110))&&this._readConfiguration()})),this._register(Ve(l,at.CONTEXT_MENU,async c=>{this._onContextMenu(qt(l),c)})),this._stickyScrollFocusedContextKey=ne.stickyScrollFocused.bindTo(this._contextKeyService),this._stickyScrollVisibleContextKey=ne.stickyScrollVisible.bindTo(this._contextKeyService);const u=this._register(ph(l));this._register(u.onDidBlur(c=>{this._positionRevealed===!1&&l.clientHeight===0?(this._focusedStickyElementIndex=-1,this.focus()):this._disposeFocusStickyScrollStore()})),this._register(u.onDidFocus(c=>{this.focus()})),this._registerMouseListeners(),this._register(Ve(l,at.MOUSE_DOWN,c=>{this._onMouseDown=!0}))}static get(e){return e.getContribution(Zj.ID)}_disposeFocusStickyScrollStore(){var e;this._stickyScrollFocusedContextKey.set(!1),(e=this._focusDisposableStore)===null||e===void 0||e.dispose(),this._focused=!1,this._positionRevealed=!1,this._onMouseDown=!1}focus(){if(this._onMouseDown){this._onMouseDown=!1,this._editor.focus();return}this._stickyScrollFocusedContextKey.get()!==!0&&(this._focused=!0,this._focusDisposableStore=new je,this._stickyScrollFocusedContextKey.set(!0),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumbers.length-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}focusNext(){this._focusedStickyElementIndex0&&this._focusNav(!1)}selectEditor(){this._editor.focus()}_focusNav(e){this._focusedStickyElementIndex=e?this._focusedStickyElementIndex+1:this._focusedStickyElementIndex-1,this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex)}goToFocused(){const e=this._stickyScrollWidget.lineNumbers;this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:e[this._focusedStickyElementIndex],column:1})}_revealPosition(e){this._reveaInEditor(e,()=>this._editor.revealPosition(e))}_revealLineInCenterIfOutsideViewport(e){this._reveaInEditor(e,()=>this._editor.revealLineInCenterIfOutsideViewport(e.lineNumber,0))}_reveaInEditor(e,t){this._focused&&this._disposeFocusStickyScrollStore(),this._positionRevealed=!0,t(),this._editor.setSelection(K.fromPositions(e)),this._editor.focus()}_registerMouseListeners(){const e=this._register(new je),t=this._register(new FW(this._editor,{extractLineNumberFromMouseEvent:o=>{const s=this._stickyScrollWidget.getEditorPositionFromNode(o.target.element);return s?s.lineNumber:0}})),i=o=>{if(!this._editor.hasModel()||o.target.type!==12||o.target.detail!==this._stickyScrollWidget.getId())return null;const s=o.target.element;if(!s||s.innerText!==s.innerHTML)return null;const a=this._stickyScrollWidget.getEditorPositionFromNode(s);return a?{range:new K(a.lineNumber,a.column,a.lineNumber,a.column+s.innerText.length),textElement:s}:null},r=this._stickyScrollWidget.getDomNode();this._register(Gr(r,at.CLICK,o=>{if(o.ctrlKey||o.altKey||o.metaKey||!o.leftButton)return;if(o.shiftKey){const u=this._stickyScrollWidget.getLineIndexFromChildDomNode(o.target);if(u===null)return;const c=new ve(this._endLineNumbers[u],1);this._revealLineInCenterIfOutsideViewport(c);return}if(this._stickyScrollWidget.isInFoldingIconDomNode(o.target)){const u=this._stickyScrollWidget.getLineNumberFromChildDomNode(o.target);this._toggleFoldingRegionForLine(u);return}if(!this._stickyScrollWidget.isInStickyLine(o.target))return;let l=this._stickyScrollWidget.getEditorPositionFromNode(o.target);if(!l){const u=this._stickyScrollWidget.getLineNumberFromChildDomNode(o.target);if(u===null)return;l=new ve(u,1)}this._revealPosition(l)})),this._register(Gr(r,at.MOUSE_MOVE,o=>{if(o.shiftKey){const s=this._stickyScrollWidget.getLineIndexFromChildDomNode(o.target);if(s===null||this._showEndForLine!==null&&this._showEndForLine===s)return;this._showEndForLine=s,this._renderStickyScroll();return}this._showEndForLine!==null&&(this._showEndForLine=null,this._renderStickyScroll())})),this._register(Ve(r,at.MOUSE_LEAVE,o=>{this._showEndForLine!==null&&(this._showEndForLine=null,this._renderStickyScroll())})),this._register(t.onMouseMoveOrRelevantKeyDown(([o,s])=>{const a=i(o);if(!a||!o.hasTriggerModifier||!this._editor.hasModel()){e.clear();return}const{range:l,textElement:u}=a;if(!l.equalsRange(this._stickyRangeProjectedOnEditor))this._stickyRangeProjectedOnEditor=l,e.clear();else if(u.style.textDecoration==="underline")return;const c=new co;e.add(en(()=>c.dispose(!0)));let d;tR(this._languageFeaturesService.definitionProvider,this._editor.getModel(),new ve(l.startLineNumber,l.startColumn+1),c.token).then(h=>{if(!c.token.isCancellationRequested)if(h.length!==0){this._candidateDefinitionsLength=h.length;const g=u;d!==g?(e.clear(),d=g,d.style.textDecoration="underline",e.add(en(()=>{d.style.textDecoration="none"}))):d||(d=g,d.style.textDecoration="underline",e.add(en(()=>{d.style.textDecoration="none"})))}else e.clear()})})),this._register(t.onCancel(()=>{e.clear()})),this._register(t.onExecute(async o=>{if(o.target.type!==12||o.target.detail!==this._stickyScrollWidget.getId())return;const s=this._stickyScrollWidget.getEditorPositionFromNode(o.target.element);s&&(!this._editor.hasModel()||!this._stickyRangeProjectedOnEditor||(this._candidateDefinitionsLength>1&&(this._focused&&this._disposeFocusStickyScrollStore(),this._revealPosition({lineNumber:s.lineNumber,column:1})),this._instaService.invokeFunction(Rxe,o,this._editor,{uri:this._editor.getModel().uri,range:this._stickyRangeProjectedOnEditor})))}))}_onContextMenu(e,t){const i=new dd(e,t);this._contextMenuService.showContextMenu({menuId:$.StickyScrollContext,getAnchor:()=>i})}_toggleFoldingRegionForLine(e){if(!this._foldingModel||e===null)return;const t=this._stickyScrollWidget.getRenderedStickyLine(e),i=t==null?void 0:t.foldingIcon;if(!i)return;HSe(this._foldingModel,Number.MAX_VALUE,[e]),i.isCollapsed=!i.isCollapsed;const r=(i.isCollapsed?this._editor.getTopForLineNumber(i.foldingEndLine):this._editor.getTopForLineNumber(i.foldingStartLine))-this._editor.getOption(67)*t.index+1;this._editor.setScrollTop(r),this._renderStickyScroll(e)}_readConfiguration(){const e=this._editor.getOption(115);if(e.enabled===!1){this._editor.removeOverlayWidget(this._stickyScrollWidget),this._sessionStore.clear(),this._enabled=!1;return}else e.enabled&&!this._enabled&&(this._editor.addOverlayWidget(this._stickyScrollWidget),this._sessionStore.add(this._editor.onDidScrollChange(i=>{i.scrollTopChanged&&(this._showEndForLine=null,this._renderStickyScroll())})),this._sessionStore.add(this._editor.onDidLayoutChange(()=>this._onDidResize())),this._sessionStore.add(this._editor.onDidChangeModelTokens(i=>this._onTokensChange(i))),this._sessionStore.add(this._stickyLineCandidateProvider.onDidChangeStickyScroll(()=>{this._showEndForLine=null,this._renderStickyScroll()})),this._enabled=!0);this._editor.getOption(68).renderType===2&&this._sessionStore.add(this._editor.onDidChangeCursorPosition(()=>{this._showEndForLine=null,this._renderStickyScroll(0)}))}_needsUpdate(e){const t=this._stickyScrollWidget.getCurrentLines();for(const i of t)for(const r of e.ranges)if(i>=r.fromLineNumber&&i<=r.toLineNumber)return!0;return!1}_onTokensChange(e){this._needsUpdate(e)&&this._renderStickyScroll(0)}_onDidResize(){const t=this._editor.getLayoutInfo().height/this._editor.getOption(67);this._maxStickyLines=Math.round(t*.25)}async _renderStickyScroll(e){var t,i;const r=this._editor.getModel();if(!r||r.isTooLargeForTokenization()){this._foldingModel=null,this._stickyScrollWidget.setState(void 0,null);return}const o=this._stickyLineCandidateProvider.getVersionId();if(o===void 0||o===r.getVersionId())if(this._foldingModel=(i=await((t=Lm.get(this._editor))===null||t===void 0?void 0:t.getFoldingModel()))!==null&&i!==void 0?i:null,this._widgetState=this.findScrollWidgetState(),this._stickyScrollVisibleContextKey.set(this._widgetState.startLineNumbers.length!==0),!this._focused)this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e);else if(this._focusedStickyElementIndex===-1)this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e),this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1,this._focusedStickyElementIndex!==-1&&this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex);else{const s=this._stickyScrollWidget.lineNumbers[this._focusedStickyElementIndex];this._stickyScrollWidget.setState(this._widgetState,this._foldingModel,e),this._stickyScrollWidget.lineNumberCount===0?this._focusedStickyElementIndex=-1:(this._stickyScrollWidget.lineNumbers.includes(s)||(this._focusedStickyElementIndex=this._stickyScrollWidget.lineNumberCount-1),this._stickyScrollWidget.focusLineWithIndex(this._focusedStickyElementIndex))}}findScrollWidgetState(){const e=this._editor.getOption(67),t=Math.min(this._maxStickyLines,this._editor.getOption(115).maxLineCount),i=this._editor.getScrollTop();let r=0;const o=[],s=[],a=this._editor.getVisibleRanges();if(a.length!==0){const l=new HA(a[0].startLineNumber,a[a.length-1].endLineNumber),u=this._stickyLineCandidateProvider.getCandidateStickyLinesIntersecting(l);for(const c of u){const d=c.startLineNumber,h=c.endLineNumber,g=c.nestingDepth;if(h-d>0){const m=(g-1)*e,f=g*e,b=this._editor.getBottomForLineNumber(d)-i,C=this._editor.getTopForLineNumber(h)-i,v=this._editor.getBottomForLineNumber(h)-i;if(m>C&&m<=v){o.push(d),s.push(h+1),r=v-f;break}else f>b&&f<=v&&(o.push(d),s.push(h+1));if(o.length===t)break}}}return this._endLineNumbers=s,new dLe(o,s,r,this._showEndForLine)}dispose(){super.dispose(),this._sessionStore.dispose()}};Am.ID="store.contrib.stickyScrollController",Am=Zj=C5t([rS(1,hu),rS(2,Tt),rS(3,tn),rS(4,$i),rS(5,Xc),rS(6,ln)],Am);class v5t extends Al{constructor(){super({id:"editor.action.toggleStickyScroll",title:{...ai("toggleEditorStickyScroll","Toggle Editor Sticky Scroll"),mnemonicTitle:x({key:"mitoggleStickyScroll",comment:["&& denotes a mnemonic"]},"&&Toggle Editor Sticky Scroll")},category:d5t.View,toggled:{condition:Be.equals("config.editor.stickyScroll.enabled",!0),title:x("stickyScroll","Sticky Scroll"),mnemonicTitle:x({key:"miStickyScroll",comment:["&& denotes a mnemonic"]},"&&Sticky Scroll")},menu:[{id:$.CommandPalette},{id:$.MenubarAppearanceMenu,group:"4_editor",order:3},{id:$.StickyScrollContext}]})}async run(e){const t=e.get(Xn),i=!t.getValue("editor.stickyScroll.enabled");return t.updateValue("editor.stickyScroll.enabled",i)}}const M3=100;class y5t extends Ch{constructor(){super({id:"editor.action.focusStickyScroll",title:{...ai("focusStickyScroll","Focus Sticky Scroll"),mnemonicTitle:x({key:"mifocusStickyScroll",comment:["&& denotes a mnemonic"]},"&&Focus Sticky Scroll")},precondition:Be.and(Be.has("config.editor.stickyScroll.enabled"),ne.stickyScrollVisible),menu:[{id:$.CommandPalette}]})}runEditorCommand(e,t){var i;(i=Am.get(t))===null||i===void 0||i.focus()}}class I5t extends Ch{constructor(){super({id:"editor.action.selectNextStickyScrollLine",title:ai("selectNextStickyScrollLine.title","Select next sticky scroll line"),precondition:ne.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:M3,primary:18}})}runEditorCommand(e,t){var i;(i=Am.get(t))===null||i===void 0||i.focusNext()}}class w5t extends Ch{constructor(){super({id:"editor.action.selectPreviousStickyScrollLine",title:ai("selectPreviousStickyScrollLine.title","Select previous sticky scroll line"),precondition:ne.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:M3,primary:16}})}runEditorCommand(e,t){var i;(i=Am.get(t))===null||i===void 0||i.focusPrevious()}}class S5t extends Ch{constructor(){super({id:"editor.action.goToFocusedStickyScrollLine",title:ai("goToFocusedStickyScrollLine.title","Go to focused sticky scroll line"),precondition:ne.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:M3,primary:3}})}runEditorCommand(e,t){var i;(i=Am.get(t))===null||i===void 0||i.goToFocused()}}class x5t extends Ch{constructor(){super({id:"editor.action.selectEditor",title:ai("selectEditor.title","Select Editor"),precondition:ne.stickyScrollFocused.isEqualTo(!0),keybinding:{weight:M3,primary:9}})}runEditorCommand(e,t){var i;(i=Am.get(t))===null||i===void 0||i.selectEditor()}}Ii(Am.ID,Am,1),Qi(v5t),Qi(y5t),Qi(w5t),Qi(I5t),Qi(S5t),Qi(x5t);var vLe=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},KA=function(n,e){return function(t,i){e(t,i,n)}};class L5t{constructor(e,t,i,r,o,s){this.range=e,this.insertText=t,this.filterText=i,this.additionalTextEdits=r,this.command=o,this.completion=s}}let Tj=class extends iht{constructor(e,t,i,r,o,s){super(o.disposable),this.model=e,this.line=t,this.word=i,this.completionModel=r,this._suggestMemoryService=s}canBeReused(e,t,i){return this.model===e&&this.line===t&&this.word.word.length>0&&this.word.startColumn===i.startColumn&&this.word.endColumn=0&&l.resolve(Hn.None)}return t}};Tj=vLe([KA(5,KR)],Tj);let Ej=class extends De{constructor(e,t,i,r){super(),this._languageFeatureService=e,this._clipboardService=t,this._suggestMemoryService=i,this._editorService=r,this._store.add(e.inlineCompletionsProvider.register("*",this))}async provideInlineCompletions(e,t,i,r){var o;if(i.selectedSuggestionInfo)return;let s;for(const m of this._editorService.listCodeEditors())if(m.getModel()===e){s=m;break}if(!s)return;const a=s.getOption(89);if(Yw.isAllOff(a))return;e.tokenization.tokenizeIfCheap(t.lineNumber);const l=e.tokenization.getLineTokens(t.lineNumber),u=l.getStandardTokenType(l.findTokenIndexAtOffset(Math.max(t.column-1-1,0)));if(Yw.valueFor(a,u)!=="inline")return;let c=e.getWordAtPosition(t),d;if(c!=null&&c.word||(d=this._getTriggerCharacterInfo(e,t)),!(c!=null&&c.word)&&!d||(c||(c=e.getWordUntilPosition(t)),c.endColumn!==t.column))return;let h;const g=e.getValueInRange(new K(t.lineNumber,1,t.lineNumber,t.column));if(!d&&(!((o=this._lastResult)===null||o===void 0)&&o.canBeReused(e,t.lineNumber,c))){const m=new Mxe(g,t.column-this._lastResult.word.endColumn);this._lastResult.completionModel.lineContext=m,this._lastResult.acquire(),h=this._lastResult}else{const m=await M8(this._languageFeatureService.completionProvider,e,t,new LA(void 0,jR.createSuggestFilter(s).itemKind,d==null?void 0:d.providers),d&&{triggerKind:1,triggerCharacter:d.ch},r);let f;m.needsClipboard&&(f=await this._clipboardService.readText());const b=new T0(m.items,t.column,new Mxe(g,0),Jh.None,s.getOption(118),s.getOption(112),{boostFullMatch:!1,firstMatchCanBeWeak:!1},f);h=new Tj(e,t.lineNumber,c,b,m,this._suggestMemoryService)}return this._lastResult=h,h}handleItemDidShow(e,t){t.completion.resolve(Hn.None)}freeInlineCompletions(e){e.release()}_getTriggerCharacterInfo(e,t){var i;const r=e.getValueInRange(K.fromPositions({lineNumber:t.lineNumber,column:t.column-1},t)),o=new Set;for(const s of this._languageFeatureService.completionProvider.all(e))!((i=s.triggerCharacters)===null||i===void 0)&&i.includes(r)&&o.add(s);if(o.size!==0)return{providers:o,ch:r}}};Ej=vLe([KA(0,Tt),KA(1,qf),KA(2,KR),KA(3,yi)],Ej),YD(Ej);class F5t extends Nt{constructor(){super({id:"editor.action.forceRetokenize",label:x("forceRetokenize","Developer: Force Retokenize"),alias:"Developer: Force Retokenize",precondition:void 0})}run(e,t){if(!t.hasModel())return;const i=t.getModel();i.tokenization.resetTokenization();const r=new aa;i.tokenization.forceTokenization(i.getLineCount()),r.stop()}}it(F5t);class Z3 extends Al{constructor(){super({id:Z3.ID,title:ai({key:"toggle.tabMovesFocus",comment:["Turn on/off use of tab key for moving focus around VS Code"]},"Toggle Tab Key Moves Focus"),precondition:void 0,keybinding:{primary:2091,mac:{primary:1323},weight:100},f1:!0})}run(){const t=!S2.getTabFocusMode();S2.setTabFocusMode(t),ou(t?x("toggle.tabMovesFocus.on","Pressing Tab will now move focus to the next focusable element"):x("toggle.tabMovesFocus.off","Pressing Tab will now insert the tab character"))}}Z3.ID="editor.action.toggleTabFocusMode",Qi(Z3);var _5t=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},D5t=function(n,e){return function(t,i){e(t,i,n)}};let Wj=class extends De{get enabled(){return this._enabled}set enabled(e){e?(this.el.setAttribute("aria-disabled","false"),this.el.tabIndex=0,this.el.style.pointerEvents="auto",this.el.style.opacity="1",this.el.style.cursor="pointer",this._enabled=!1):(this.el.setAttribute("aria-disabled","true"),this.el.tabIndex=-1,this.el.style.pointerEvents="none",this.el.style.opacity="0.4",this.el.style.cursor="default",this._enabled=!0),this._enabled=e}constructor(e,t,i={},r){var o;super(),this._link=t,this._enabled=!0,this.el=Je(e,vt("a.monaco-link",{tabIndex:(o=t.tabIndex)!==null&&o!==void 0?o:0,href:t.href,title:t.title},t.label)),this.el.setAttribute("role","button");const s=this._register(new Qn(this.el,"click")),a=this._register(new Qn(this.el,"keypress")),l=ft.chain(a.event,d=>d.map(h=>new nr(h)).filter(h=>h.keyCode===3)),u=this._register(new Qn(this.el,qi.Tap)).event;this._register(er.addTarget(this.el));const c=ft.any(s.event,l,u);this._register(c(d=>{this.enabled&&(En.stop(d,!0),i!=null&&i.opener?i.opener(this._link.href):r.open(this._link.href,{allowCommands:!0}))})),this.enabled=!0}};Wj=_5t([D5t(3,Rl)],Wj);var yLe=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},ILe=function(n,e){return function(t,i){e(t,i,n)}};const A5t=26;let Rj=class extends De{constructor(e,t){super(),this._editor=e,this.instantiationService=t,this.banner=this._register(this.instantiationService.createInstance(Gj))}hide(){this._editor.setBanner(null,0),this.banner.clear()}show(e){this.banner.show({...e,onClose:()=>{var t;this.hide(),(t=e.onClose)===null||t===void 0||t.call(e)}}),this._editor.setBanner(this.banner.element,A5t)}};Rj=yLe([ILe(1,tn)],Rj);let Gj=class extends De{constructor(e){super(),this.instantiationService=e,this.markdownRenderer=this.instantiationService.createInstance(mm,{}),this.element=vt("div.editor-banner"),this.element.tabIndex=0}getAriaLabel(e){if(e.ariaLabel)return e.ariaLabel;if(typeof e.message=="string")return e.message}getBannerMessage(e){if(typeof e=="string"){const t=vt("span");return t.innerText=e,t}return this.markdownRenderer.render(e).element}clear(){la(this.element)}show(e){la(this.element);const t=this.getAriaLabel(e);t&&this.element.setAttribute("aria-label",t);const i=Je(this.element,vt("div.icon-container"));i.setAttribute("aria-hidden","true"),e.icon&&i.appendChild(vt(`div${on.asCSSSelector(e.icon)}`));const r=Je(this.element,vt("div.message-container"));if(r.setAttribute("aria-hidden","true"),r.appendChild(this.getBannerMessage(e.message)),this.messageActionsContainer=Je(this.element,vt("div.message-actions-container")),e.actions)for(const s of e.actions)this._register(this.instantiationService.createInstance(Wj,this.messageActionsContainer,{...s,tabIndex:-1},{}));const o=Je(this.element,vt("div.action-container"));this.actionBar=this._register(new Rc(o)),this.actionBar.push(this._register(new su("banner.close","Close Banner",on.asClassName(Xye),!0,()=>{typeof e.onClose=="function"&&e.onClose()})),{icon:!0,label:!1}),this.actionBar.setFocusable(!1)}};Gj=yLe([ILe(0,tn)],Gj);const wLe=Un("workspaceTrustManagementService");var Vj=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},oS=function(n,e){return function(t,i){e(t,i,n)}};const N5t=io("extensions-warning-message",ct.warning,x("warningIcon","Icon shown with a warning message in the extensions editor."));let sS=class extends De{constructor(e,t,i,r){super(),this._editor=e,this._editorWorkerService=t,this._workspaceTrustService=i,this._highlighter=null,this._bannerClosed=!1,this._updateState=o=>{if(o&&o.hasMore){if(this._bannerClosed)return;const s=Math.max(o.ambiguousCharacterCount,o.nonBasicAsciiCharacterCount,o.invisibleCharacterCount);let a;if(o.nonBasicAsciiCharacterCount>=s)a={message:x("unicodeHighlighting.thisDocumentHasManyNonBasicAsciiUnicodeCharacters","This document contains many non-basic ASCII unicode characters"),command:new lS};else if(o.ambiguousCharacterCount>=s)a={message:x("unicodeHighlighting.thisDocumentHasManyAmbiguousUnicodeCharacters","This document contains many ambiguous unicode characters"),command:new J0};else if(o.invisibleCharacterCount>=s)a={message:x("unicodeHighlighting.thisDocumentHasManyInvisibleUnicodeCharacters","This document contains many invisible unicode characters"),command:new aS};else throw new Error("Unreachable");this._bannerController.show({id:"unicodeHighlightBanner",message:a.message,icon:N5t,actions:[{label:a.command.shortLabel,href:`command:${a.command.id}`}],onClose:()=>{this._bannerClosed=!0}})}else this._bannerController.hide()},this._bannerController=this._register(r.createInstance(Rj,e)),this._register(this._editor.onDidChangeModel(()=>{this._bannerClosed=!1,this._updateHighlighter()})),this._options=e.getOption(125),this._register(i.onDidChangeTrust(o=>{this._updateHighlighter()})),this._register(e.onDidChangeConfiguration(o=>{o.hasChanged(125)&&(this._options=e.getOption(125),this._updateHighlighter())})),this._updateHighlighter()}dispose(){this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),super.dispose()}_updateHighlighter(){if(this._updateState(null),this._highlighter&&(this._highlighter.dispose(),this._highlighter=null),!this._editor.hasModel())return;const e=k5t(this._workspaceTrustService.isWorkspaceTrusted(),this._options);if([e.nonBasicASCII,e.ambiguousCharacters,e.invisibleCharacters].every(i=>i===!1))return;const t={nonBasicASCII:e.nonBasicASCII,ambiguousCharacters:e.ambiguousCharacters,invisibleCharacters:e.invisibleCharacters,includeComments:e.includeComments,includeStrings:e.includeStrings,allowedCodePoints:Object.keys(e.allowedCharacters).map(i=>i.codePointAt(0)),allowedLocales:Object.keys(e.allowedLocales).map(i=>i==="_os"?new Intl.NumberFormat().resolvedOptions().locale:i==="_vscode"?Rdt:i)};this._editorWorkerService.canComputeUnicodeHighlights(this._editor.getModel().uri)?this._highlighter=new Xj(this._editor,t,this._updateState,this._editorWorkerService):this._highlighter=new M5t(this._editor,t,this._updateState)}getDecorationInfo(e){return this._highlighter?this._highlighter.getDecorationInfo(e):null}};sS.ID="editor.contrib.unicodeHighlighter",sS=Vj([oS(1,_d),oS(2,wLe),oS(3,tn)],sS);function k5t(n,e){return{nonBasicASCII:e.nonBasicASCII===Xu?!n:e.nonBasicASCII,ambiguousCharacters:e.ambiguousCharacters,invisibleCharacters:e.invisibleCharacters,includeComments:e.includeComments===Xu?!n:e.includeComments,includeStrings:e.includeStrings===Xu?!n:e.includeStrings,allowedCharacters:e.allowedCharacters,allowedLocales:e.allowedLocales}}let Xj=class extends De{constructor(e,t,i,r){super(),this._editor=e,this._options=t,this._updateState=i,this._editorWorkerService=r,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new Vi(()=>this._update(),250)),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const e=this._model.getVersionId();this._editorWorkerService.computedUnicodeHighlights(this._model.uri,this._options).then(t=>{if(this._model.isDisposed()||this._model.getVersionId()!==e)return;this._updateState(t);const i=[];if(!t.hasMore)for(const r of t.ranges)i.push({range:r,options:T3.instance.getDecorationFromOptions(this._options)});this._decorations.set(i)})}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel();if(!o7(t,e))return null;const i=t.getValueInRange(e.range);return{reason:xLe(i,this._options),inComment:s7(t,e),inString:a7(t,e)}}};Xj=Vj([oS(3,_d)],Xj);class M5t extends De{constructor(e,t,i){super(),this._editor=e,this._options=t,this._updateState=i,this._model=this._editor.getModel(),this._decorations=this._editor.createDecorationsCollection(),this._updateSoon=this._register(new Vi(()=>this._update(),250)),this._register(this._editor.onDidLayoutChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidScrollChange(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeHiddenAreas(()=>{this._updateSoon.schedule()})),this._register(this._editor.onDidChangeModelContent(()=>{this._updateSoon.schedule()})),this._updateSoon.schedule()}dispose(){this._decorations.clear(),super.dispose()}_update(){if(this._model.isDisposed())return;if(!this._model.mightContainNonBasicASCII()){this._decorations.clear();return}const e=this._editor.getVisibleRanges(),t=[],i={ranges:[],ambiguousCharacterCount:0,invisibleCharacterCount:0,nonBasicAsciiCharacterCount:0,hasMore:!1};for(const r of e){const o=DJ.computeUnicodeHighlights(this._model,this._options,r);for(const s of o.ranges)i.ranges.push(s);i.ambiguousCharacterCount+=i.ambiguousCharacterCount,i.invisibleCharacterCount+=i.invisibleCharacterCount,i.nonBasicAsciiCharacterCount+=i.nonBasicAsciiCharacterCount,i.hasMore=i.hasMore||o.hasMore}if(!i.hasMore)for(const r of i.ranges)t.push({range:r,options:T3.instance.getDecorationFromOptions(this._options)});this._updateState(i),this._decorations.set(t)}getDecorationInfo(e){if(!this._decorations.has(e))return null;const t=this._editor.getModel(),i=t.getValueInRange(e.range);return o7(t,e)?{reason:xLe(i,this._options),inComment:s7(t,e),inString:a7(t,e)}:null}}const SLe=x("unicodeHighlight.configureUnicodeHighlightOptions","Configure Unicode Highlight Options");let Pj=class{constructor(e,t,i){this._editor=e,this._languageService=t,this._openerService=i,this.hoverOrdinal=5}computeSync(e,t){if(!this._editor.hasModel()||e.type!==1)return[];const i=this._editor.getModel(),r=this._editor.getContribution(sS.ID);if(!r)return[];const o=[],s=new Set;let a=300;for(const l of t){const u=r.getDecorationInfo(l);if(!u)continue;const d=i.getValueInRange(l.range).codePointAt(0),h=Bj(d);let g;switch(u.reason.kind){case 0:{kF(u.reason.confusableWith)?g=x("unicodeHighlight.characterIsAmbiguousASCII","The character {0} could be confused with the ASCII character {1}, which is more common in source code.",h,Bj(u.reason.confusableWith.codePointAt(0))):g=x("unicodeHighlight.characterIsAmbiguous","The character {0} could be confused with the character {1}, which is more common in source code.",h,Bj(u.reason.confusableWith.codePointAt(0)));break}case 1:g=x("unicodeHighlight.characterIsInvisible","The character {0} is invisible.",h);break;case 2:g=x("unicodeHighlight.characterIsNonBasicAscii","The character {0} is not a basic ASCII character.",h);break}if(s.has(g))continue;s.add(g);const m={codePoint:d,reason:u.reason,inComment:u.inComment,inString:u.inString},f=x("unicodeHighlight.adjustSettings","Adjust settings"),b=`command:${jA.ID}?${encodeURIComponent(JSON.stringify(m))}`,C=new ga("",!0).appendMarkdown(g).appendText(" ").appendLink(b,f,SLe);o.push(new Vh(this,l.range,[C],!1,a++))}return o}renderHoverParts(e,t){return eSe(e,t,this._editor,this._languageService,this._openerService)}};Pj=Vj([oS(1,Cr),oS(2,Rl)],Pj);function Oj(n){return`U+${n.toString(16).padStart(4,"0")}`}function Bj(n){let e=`\`${Oj(n)}\``;return Eg.isInvisibleCharacter(n)||(e+=` "${`${Z5t(n)}`}"`),e}function Z5t(n){return n===96?"`` ` ``":"`"+String.fromCodePoint(n)+"`"}function xLe(n,e){return DJ.computeUnicodeHighlightReason(n,e)}class T3{constructor(){this.map=new Map}getDecorationFromOptions(e){return this.getDecoration(!e.includeComments,!e.includeStrings)}getDecoration(e,t){const i=`${e}${t}`;let r=this.map.get(i);return r||(r=In.createDynamic({description:"unicode-highlight",stickiness:1,className:"unicode-highlight",showIfCollapsed:!0,overviewRuler:null,minimap:null,hideInCommentTokens:e,hideInStringTokens:t}),this.map.set(i,r)),r}}T3.instance=new T3;class T5t extends Nt{constructor(){super({id:J0.ID,label:x("action.unicodeHighlight.disableHighlightingInComments","Disable highlighting of characters in comments"),alias:"Disable highlighting of characters in comments",precondition:void 0}),this.shortLabel=x("unicodeHighlight.disableHighlightingInComments.shortLabel","Disable Highlight In Comments")}async run(e,t,i){const r=e==null?void 0:e.get(Xn);r&&this.runAction(r)}async runAction(e){await e.updateValue(Ml.includeComments,!1,2)}}class E5t extends Nt{constructor(){super({id:J0.ID,label:x("action.unicodeHighlight.disableHighlightingInStrings","Disable highlighting of characters in strings"),alias:"Disable highlighting of characters in strings",precondition:void 0}),this.shortLabel=x("unicodeHighlight.disableHighlightingInStrings.shortLabel","Disable Highlight In Strings")}async run(e,t,i){const r=e==null?void 0:e.get(Xn);r&&this.runAction(r)}async runAction(e){await e.updateValue(Ml.includeStrings,!1,2)}}class J0 extends Nt{constructor(){super({id:J0.ID,label:x("action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters","Disable highlighting of ambiguous characters"),alias:"Disable highlighting of ambiguous characters",precondition:void 0}),this.shortLabel=x("unicodeHighlight.disableHighlightingOfAmbiguousCharacters.shortLabel","Disable Ambiguous Highlight")}async run(e,t,i){const r=e==null?void 0:e.get(Xn);r&&this.runAction(r)}async runAction(e){await e.updateValue(Ml.ambiguousCharacters,!1,2)}}J0.ID="editor.action.unicodeHighlight.disableHighlightingOfAmbiguousCharacters";class aS extends Nt{constructor(){super({id:aS.ID,label:x("action.unicodeHighlight.disableHighlightingOfInvisibleCharacters","Disable highlighting of invisible characters"),alias:"Disable highlighting of invisible characters",precondition:void 0}),this.shortLabel=x("unicodeHighlight.disableHighlightingOfInvisibleCharacters.shortLabel","Disable Invisible Highlight")}async run(e,t,i){const r=e==null?void 0:e.get(Xn);r&&this.runAction(r)}async runAction(e){await e.updateValue(Ml.invisibleCharacters,!1,2)}}aS.ID="editor.action.unicodeHighlight.disableHighlightingOfInvisibleCharacters";class lS extends Nt{constructor(){super({id:lS.ID,label:x("action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters","Disable highlighting of non basic ASCII characters"),alias:"Disable highlighting of non basic ASCII characters",precondition:void 0}),this.shortLabel=x("unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters.shortLabel","Disable Non ASCII Highlight")}async run(e,t,i){const r=e==null?void 0:e.get(Xn);r&&this.runAction(r)}async runAction(e){await e.updateValue(Ml.nonBasicASCII,!1,2)}}lS.ID="editor.action.unicodeHighlight.disableHighlightingOfNonBasicAsciiCharacters";class jA extends Nt{constructor(){super({id:jA.ID,label:x("action.unicodeHighlight.showExcludeOptions","Show Exclude Options"),alias:"Show Exclude Options",precondition:void 0})}async run(e,t,i){const{codePoint:r,reason:o,inString:s,inComment:a}=i,l=String.fromCodePoint(r),u=e.get(vv),c=e.get(Xn);function d(m){return Eg.isInvisibleCharacter(m)?x("unicodeHighlight.excludeInvisibleCharFromBeingHighlighted","Exclude {0} (invisible character) from being highlighted",Oj(m)):x("unicodeHighlight.excludeCharFromBeingHighlighted","Exclude {0} from being highlighted",`${Oj(m)} "${l}"`)}const h=[];if(o.kind===0)for(const m of o.notAmbiguousInLocales)h.push({label:x("unicodeHighlight.allowCommonCharactersInLanguage",'Allow unicode characters that are more common in the language "{0}".',m),run:async()=>{R5t(c,[m])}});if(h.push({label:d(r),run:()=>W5t(c,[r])}),a){const m=new T5t;h.push({label:m.label,run:async()=>m.runAction(c)})}else if(s){const m=new E5t;h.push({label:m.label,run:async()=>m.runAction(c)})}if(o.kind===0){const m=new J0;h.push({label:m.label,run:async()=>m.runAction(c)})}else if(o.kind===1){const m=new aS;h.push({label:m.label,run:async()=>m.runAction(c)})}else if(o.kind===2){const m=new lS;h.push({label:m.label,run:async()=>m.runAction(c)})}else G5t(o);const g=await u.pick(h,{title:SLe});g&&await g.run()}}jA.ID="editor.action.unicodeHighlight.showExcludeOptions";async function W5t(n,e){const t=n.getValue(Ml.allowedCharacters);let i;typeof t=="object"&&t?i=t:i={};for(const r of e)i[String.fromCodePoint(r)]=!0;await n.updateValue(Ml.allowedCharacters,i,2)}async function R5t(n,e){var t;const i=(t=n.inspect(Ml.allowedLocales).user)===null||t===void 0?void 0:t.value;let r;typeof i=="object"&&i?r=Object.assign({},i):r={};for(const o of e)r[o]=!0;await n.updateValue(Ml.allowedLocales,r,2)}function G5t(n){throw new Error(`Unexpected value: ${n}`)}it(J0),it(aS),it(lS),it(jA),Ii(sS.ID,sS,1),x0.register(Pj);const zj=Un("dialogService");var V5t=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},LLe=function(n,e){return function(t,i){e(t,i,n)}};const FLe="ignoreUnusualLineTerminators";function X5t(n,e,t){n.setModelProperty(e.uri,FLe,t)}function P5t(n,e){return n.getModelProperty(e.uri,FLe)}let QA=class extends De{constructor(e,t,i){super(),this._editor=e,this._dialogService=t,this._codeEditorService=i,this._isPresentingDialog=!1,this._config=this._editor.getOption(126),this._register(this._editor.onDidChangeConfiguration(r=>{r.hasChanged(126)&&(this._config=this._editor.getOption(126),this._checkForUnusualLineTerminators())})),this._register(this._editor.onDidChangeModel(()=>{this._checkForUnusualLineTerminators()})),this._register(this._editor.onDidChangeModelContent(r=>{r.isUndoing||this._checkForUnusualLineTerminators()})),this._checkForUnusualLineTerminators()}async _checkForUnusualLineTerminators(){if(this._config==="off"||!this._editor.hasModel())return;const e=this._editor.getModel();if(!e.mightContainUnusualLineTerminators()||P5t(this._codeEditorService,e)===!0||this._editor.getOption(91))return;if(this._config==="auto"){e.removeUnusualLineTerminators(this._editor.getSelections());return}if(this._isPresentingDialog)return;let i;try{this._isPresentingDialog=!0,i=await this._dialogService.confirm({title:x("unusualLineTerminators.title","Unusual Line Terminators"),message:x("unusualLineTerminators.message","Detected unusual line terminators"),detail:x("unusualLineTerminators.detail","The file '{0}' contains one or more unusual line terminator characters, like Line Separator (LS) or Paragraph Separator (PS).\n\nIt is recommended to remove them from the file. This can be configured via `editor.unusualLineTerminators`.",Ec(e.uri)),primaryButton:x({key:"unusualLineTerminators.fix",comment:["&& denotes a mnemonic"]},"&&Remove Unusual Line Terminators"),cancelButton:x("unusualLineTerminators.ignore","Ignore")})}finally{this._isPresentingDialog=!1}if(!i.confirmed){X5t(this._codeEditorService,e,!0);return}e.removeUnusualLineTerminators(this._editor.getSelections())}};QA.ID="editor.contrib.unusualLineTerminatorsDetector",QA=V5t([LLe(1,zj),LLe(2,yi)],QA),Ii(QA.ID,QA,1);const E3="**",_Le="/",W3="[/\\\\]",R3="[^/\\\\]",O5t=/\//g;function DLe(n,e){switch(n){case 0:return"";case 1:return`${R3}*?`;default:return`(?:${W3}|${R3}+${W3}${e?`|${W3}${R3}+`:""})*?`}}function ALe(n,e){if(!n)return[];const t=[];let i=!1,r=!1,o="";for(const s of n){switch(s){case e:if(!i&&!r){t.push(o),o="";continue}break;case"{":i=!0;break;case"}":i=!1;break;case"[":r=!0;break;case"]":r=!1;break}o+=s}return o&&t.push(o),t}function NLe(n){if(!n)return"";let e="";const t=ALe(n,_Le);if(t.every(i=>i===E3))e=".*";else{let i=!1;t.forEach((r,o)=>{if(r===E3){if(i)return;e+=DLe(2,o===t.length-1)}else{let s=!1,a="",l=!1,u="";for(const c of r){if(c!=="}"&&s){a+=c;continue}if(l&&(c!=="]"||!u)){let d;c==="-"?d=c:(c==="^"||c==="!")&&!u?d="^":c===_Le?d="":d=Zu(c),u+=d;continue}switch(c){case"{":s=!0;continue;case"[":l=!0;continue;case"}":{const h=`(?:${ALe(a,",").map(g=>NLe(g)).join("|")})`;e+=h,s=!1,a="";break}case"]":{e+="["+u+"]",l=!1,u="";break}case"?":e+=R3;continue;case"*":e+=DLe(1);continue;default:e+=Zu(c)}}oYj(a,e)).filter(a=>a!==Nm),n),i=t.length;if(!i)return Nm;if(i===1)return t[0];const r=function(a,l){for(let u=0,c=t.length;u!!a.allBasenames);o&&(r.allBasenames=o.allBasenames);const s=t.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return s.length&&(r.allPaths=s),r}function TLe(n,e,t){const i=Db===Zo.sep,r=i?n:n.replace(O5t,Db),o=Db+r,s=Zo.sep+n;let a;return t?a=function(l,u){return typeof l=="string"&&(l===r||l.endsWith(o)||!i&&(l===n||l.endsWith(s)))?e:null}:a=function(l,u){return typeof l=="string"&&(l===r||!i&&l===n)?e:null},a.allPaths=[(t?"*/":"./")+n],a}function $5t(n){try{const e=new RegExp(`^${NLe(n)}$`);return function(t){return e.lastIndex=0,typeof t=="string"&&e.test(t)?n:null}}catch{return Nm}}function q5t(n,e,t){return!n||typeof e!="string"?!1:ELe(n)(e,void 0,t)}function ELe(n,e={}){if(!n)return MLe;if(typeof n=="string"||eTt(n)){const t=Yj(n,e);if(t===Nm)return MLe;const i=function(r,o){return!!t(r,o)};return t.allBasenames&&(i.allBasenames=t.allBasenames),t.allPaths&&(i.allPaths=t.allPaths),i}return tTt(n,e)}function eTt(n){const e=n;return e?typeof e.base=="string"&&typeof e.pattern=="string":!1}function tTt(n,e){const t=WLe(Object.getOwnPropertyNames(n).map(a=>nTt(a,n[a],e)).filter(a=>a!==Nm)),i=t.length;if(!i)return Nm;if(!t.some(a=>!!a.requiresSiblings)){if(i===1)return t[0];const a=function(c,d){let h;for(let g=0,m=t.length;g{for(const g of h){const m=await g;if(typeof m=="string")return m}return null})():null},l=t.find(c=>!!c.allBasenames);l&&(a.allBasenames=l.allBasenames);const u=t.reduce((c,d)=>d.allPaths?c.concat(d.allPaths):c,[]);return u.length&&(a.allPaths=u),a}const r=function(a,l,u){let c,d;for(let h=0,g=t.length;h{for(const h of d){const g=await h;if(typeof g=="string")return g}return null})():null},o=t.find(a=>!!a.allBasenames);o&&(r.allBasenames=o.allBasenames);const s=t.reduce((a,l)=>l.allPaths?a.concat(l.allPaths):a,[]);return s.length&&(r.allPaths=s),r}function nTt(n,e,t){if(e===!1)return Nm;const i=Yj(n,t);if(i===Nm)return Nm;if(typeof e=="boolean")return i;if(e){const r=e.when;if(typeof r=="string"){const o=(s,a,l,u)=>{if(!u||!i(s,a))return null;const c=r.replace("$(basename)",()=>l),d=u(c);return lY(d)?d.then(h=>h?n:null):d?n:null};return o.requiresSiblings=!0,o}}return i}function WLe(n,e){const t=n.filter(a=>!!a.basenames);if(t.length<2)return n;const i=t.reduce((a,l)=>{const u=l.basenames;return u?a.concat(u):a},[]);let r;if(e){r=[];for(let a=0,l=i.length;a{const u=l.patterns;return u?a.concat(u):a},[]);const o=function(a,l){if(typeof a!="string")return null;if(!l){let c;for(c=a.length;c>0;c--){const d=a.charCodeAt(c-1);if(d===47||d===92)break}l=a.substr(c)}const u=i.indexOf(l);return u!==-1?r[u]:null};o.basenames=i,o.patterns=r,o.allBasenames=i;const s=n.filter(a=>!a.basenames);return s.push(o),s}function Uj(n,e,t,i,r,o){if(Array.isArray(n)){let s=0;for(const a of n){const l=Uj(a,e,t,i,r,o);if(l===10)return l;l>s&&(s=l)}return s}else{if(typeof n=="string")return i?n==="*"?5:n===t?10:0:0;if(n){const{language:s,pattern:a,scheme:l,hasAccessToAllModels:u,notebookType:c}=n;if(!i&&!u)return 0;c&&r&&(e=r);let d=0;if(l)if(l===e.scheme)d=10;else if(l==="*")d=5;else return 0;if(s)if(s===t)d=10;else if(s==="*")d=Math.max(d,5);else return 0;if(c)if(c===o)d=10;else if(c==="*"&&o!==void 0)d=Math.max(d,5);else return 0;if(a){let h;if(typeof a=="string"?h=a:h={...a,base:Nbe(a.base)},h===e.fsPath||q5t(h,e.fsPath))d=10;else return 0}return d}else return 0}}var RLe=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},G3=function(n,e){return function(t,i){e(t,i,n)}},Uo,Jj;const V3=new It("hasWordHighlights",!1);function GLe(n,e,t,i){const r=n.ordered(e);return uY(r.map(o=>()=>Promise.resolve(o.provideDocumentHighlights(e,t,i)).then(void 0,wo)),da).then(o=>{if(o){const s=new no;return s.set(e.uri,o),s}return new no})}function iTt(n,e,t,i,r,o){const s=n.ordered(e);return uY(s.map(a=>()=>{const l=o.filter(u=>bCe(u)).filter(u=>Uj(a.selector,u.uri,u.getLanguageId(),!0,void 0,void 0)>0);return Promise.resolve(a.provideMultiDocumentHighlights(e,t,l,r)).then(void 0,wo)}),a=>a instanceof no&&a.size>0)}class Kj{constructor(e,t,i){this._model=e,this._selection=t,this._wordSeparators=i,this._wordRange=this._getCurrentWordRange(e,t),this._result=null}get result(){return this._result||(this._result=$o(e=>this._compute(this._model,this._selection,this._wordSeparators,e))),this._result}_getCurrentWordRange(e,t){const i=e.getWordAtPosition(t.getPosition());return i?new K(t.startLineNumber,i.startColumn,t.startLineNumber,i.endColumn):null}isValid(e,t,i){const r=t.startLineNumber,o=t.startColumn,s=t.endColumn,a=this._getCurrentWordRange(e,t);let l=!!(this._wordRange&&this._wordRange.equalsRange(a));for(let u=0,c=i.length;!l&&u=s&&(l=!0)}return l}cancel(){this.result.cancel()}}class rTt extends Kj{constructor(e,t,i,r){super(e,t,i),this._providers=r}_compute(e,t,i,r){return GLe(this._providers,e,t.getPosition(),r).then(o=>o||new no)}}class oTt extends Kj{constructor(e,t,i,r,o){super(e,t,i),this._providers=r,this._otherModels=o}_compute(e,t,i,r){return iTt(this._providers,e,t.getPosition(),i,r,this._otherModels).then(o=>o||new no)}}class VLe extends Kj{constructor(e,t,i,r,o){super(e,t,r),this._otherModels=o,this._selectionIsEmpty=t.isEmpty(),this._word=i}_compute(e,t,i,r){return xC(250,r).then(()=>{const o=new no;let s;if(this._word?s=this._word:s=e.getWordAtPosition(t.getPosition()),!s)return new no;const a=[e,...this._otherModels];for(const l of a){if(l.isDisposed())continue;const c=l.findMatches(s.word,!0,!1,!0,i,!1).map(d=>({range:d.range,kind:w_.Text}));c&&o.set(l.uri,c)}return o})}isValid(e,t,i){const r=t.isEmpty();return this._selectionIsEmpty!==r?!1:super.isValid(e,t,i)}}function sTt(n,e,t,i,r){return n.has(e)?new rTt(e,t,r,n):new VLe(e,t,i,r,[])}function aTt(n,e,t,i,r,o){return n.has(e)?new oTt(e,t,r,n,o):new VLe(e,t,i,r,o)}Wg("_executeDocumentHighlights",async(n,e,t)=>{const i=n.get(Tt),r=await GLe(i.documentHighlightProvider,e,t,Hn.None);return r==null?void 0:r.get(e.uri)});let $A=Uo=class{constructor(e,t,i,r,o){this.toUnhook=new je,this.workerRequestTokenId=0,this.workerRequestCompleted=!1,this.workerRequestValue=new no,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=e,this.providers=t,this.multiDocumentProviders=i,this.codeEditorService=o,this._hasWordHighlights=V3.bindTo(r),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getOption(81),this.model=this.editor.getModel(),this.toUnhook.add(e.onDidChangeCursorPosition(s=>{this._ignorePositionChangeEvent||this.occurrencesHighlight!=="off"&&this._onPositionChanged(s)})),this.toUnhook.add(e.onDidFocusEditorText(s=>{this.occurrencesHighlight!=="off"&&(this.workerRequest||this._run())})),this.toUnhook.add(e.onDidChangeModelContent(s=>{this._stopAll()})),this.toUnhook.add(e.onDidChangeModel(s=>{!s.newModelUrl&&s.oldModelUrl?this._stopSingular():Uo.query&&this._run()})),this.toUnhook.add(e.onDidChangeConfiguration(s=>{const a=this.editor.getOption(81);this.occurrencesHighlight!==a&&(this.occurrencesHighlight=a,this._stopAll())})),this.decorations=this.editor.createDecorationsCollection(),this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,Uo.query&&this._run()}hasDecorations(){return this.decorations.length>0}restore(){this.occurrencesHighlight!=="off"&&this._run()}_getSortedHighlights(){return this.decorations.getRanges().sort(K.compareRangesUsingStarts)}moveNext(){const e=this._getSortedHighlights(),i=(e.findIndex(o=>o.containsPosition(this.editor.getPosition()))+1)%e.length,r=e[i];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(r.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(r);const o=this._getWord();if(o){const s=this.editor.getModel().getLineContent(r.startLineNumber);ou(`${s}, ${i+1} of ${e.length} for '${o.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}moveBack(){const e=this._getSortedHighlights(),i=(e.findIndex(o=>o.containsPosition(this.editor.getPosition()))-1+e.length)%e.length,r=e[i];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(r.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(r);const o=this._getWord();if(o){const s=this.editor.getModel().getLineContent(r.startLineNumber);ou(`${s}, ${i+1} of ${e.length} for '${o.word}'`)}}finally{this._ignorePositionChangeEvent=!1}}_removeSingleDecorations(){if(!this.editor.hasModel())return;const e=Uo.storedDecorations.get(this.editor.getModel().uri);e&&(this.editor.removeDecorations(e),Uo.storedDecorations.delete(this.editor.getModel().uri),this.decorations.length>0&&(this.decorations.clear(),this._hasWordHighlights.set(!1)))}_removeAllDecorations(){const e=this.codeEditorService.listCodeEditors(),t=[];for(const i of e){if(!i.hasModel())continue;const r=Uo.storedDecorations.get(i.getModel().uri);if(!r)continue;i.removeDecorations(r),t.push(i.getModel().uri);const o=Cp.get(i);o!=null&&o.wordHighlighter&&o.wordHighlighter.decorations.length>0&&(o.wordHighlighter.decorations.clear(),o.wordHighlighter.workerRequest=null,o.wordHighlighter._hasWordHighlights.set(!1))}for(const i of t)Uo.storedDecorations.delete(i)}_stopSingular(){var e,t,i,r;this._removeSingleDecorations(),this.editor.hasTextFocus()&&(((e=this.editor.getModel())===null||e===void 0?void 0:e.uri.scheme)!==xn.vscodeNotebookCell&&((i=(t=Uo.query)===null||t===void 0?void 0:t.modelInfo)===null||i===void 0?void 0:i.model.uri.scheme)!==xn.vscodeNotebookCell?(Uo.query=null,this._run()):!((r=Uo.query)===null||r===void 0)&&r.modelInfo&&(Uo.query.modelInfo=null)),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_stopAll(){this._removeAllDecorations(),this.renderDecorationsTimer!==-1&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),this.workerRequest!==null&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)}_onPositionChanged(e){var t;if(this.occurrencesHighlight==="off"){this._stopAll();return}if(e.reason!==3&&((t=this.editor.getModel())===null||t===void 0?void 0:t.uri.scheme)!==xn.vscodeNotebookCell){this._stopAll();return}this._run()}_getWord(){const e=this.editor.getSelection(),t=e.startLineNumber,i=e.startColumn;return this.model.isDisposed()?null:this.model.getWordAtPosition({lineNumber:t,column:i})}getOtherModelsToHighlight(e){if(!e)return[];if(e.uri.scheme===xn.vscodeNotebookCell){const o=[],s=this.codeEditorService.listCodeEditors();for(const a of s){const l=a.getModel();l&&l!==e&&l.uri.scheme===xn.vscodeNotebookCell&&o.push(l)}return o}const i=[],r=this.codeEditorService.listCodeEditors();for(const o of r){if(!c_t(o))continue;const s=o.getModel();s&&e===s.modified&&i.push(s.modified)}if(i.length)return i;if(this.occurrencesHighlight==="singleFile")return[];for(const o of r){const s=o.getModel();s&&s!==e&&i.push(s)}return i}_run(){var e;let t;if(this.editor.hasTextFocus()){const r=this.editor.getSelection();if(!r||r.startLineNumber!==r.endLineNumber){Uo.query=null,this._stopAll();return}const o=r.startColumn,s=r.endColumn,a=this._getWord();if(!a||a.startColumn>o||a.endColumn{r===this.workerRequestTokenId&&(this.workerRequestCompleted=!0,this.workerRequestValue=s||[],this._beginRenderDecorations())},fn)}}computeWithModel(e,t,i,r){return r.length?aTt(this.multiDocumentProviders,e,t,i,this.editor.getOption(130),r):sTt(this.providers,e,t,i,this.editor.getOption(130))}_beginRenderDecorations(){const e=new Date().getTime(),t=this.lastCursorPositionChangeTime+250;e>=t?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(()=>{this.renderDecorations()},t-e)}renderDecorations(){var e,t,i;this.renderDecorationsTimer=-1;const r=this.codeEditorService.listCodeEditors();for(const o of r){const s=Cp.get(o);if(!s)continue;const a=[],l=(e=o.getModel())===null||e===void 0?void 0:e.uri;if(l&&this.workerRequestValue.has(l)){const u=Uo.storedDecorations.get(l),c=this.workerRequestValue.get(l);if(c)for(const h of c)h.range&&a.push({range:h.range,options:n9t(h.kind)});let d=[];o.changeDecorations(h=>{d=h.deltaDecorations(u??[],a)}),Uo.storedDecorations=Uo.storedDecorations.set(l,d),a.length>0&&((t=s.wordHighlighter)===null||t===void 0||t.decorations.set(a),(i=s.wordHighlighter)===null||i===void 0||i._hasWordHighlights.set(!0))}}}dispose(){this._stopSingular(),this.toUnhook.dispose()}};$A.storedDecorations=new no,$A.query=null,$A=Uo=RLe([G3(4,yi)],$A);let Cp=Jj=class extends De{static get(e){return e.getContribution(Jj.ID)}constructor(e,t,i,r){super(),this._wordHighlighter=null;const o=()=>{e.hasModel()&&!e.getModel().isTooLargeForTokenization()&&(this._wordHighlighter=new $A(e,i.documentHighlightProvider,i.multiDocumentHighlightProvider,t,r))};this._register(e.onDidChangeModel(s=>{this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),o()})),o()}get wordHighlighter(){return this._wordHighlighter}saveViewState(){return!!(this._wordHighlighter&&this._wordHighlighter.hasDecorations())}moveNext(){var e;(e=this._wordHighlighter)===null||e===void 0||e.moveNext()}moveBack(){var e;(e=this._wordHighlighter)===null||e===void 0||e.moveBack()}restoreViewState(e){this._wordHighlighter&&e&&this._wordHighlighter.restore()}dispose(){this._wordHighlighter&&(this._wordHighlighter.dispose(),this._wordHighlighter=null),super.dispose()}};Cp.ID="editor.contrib.wordHighlighter",Cp=Jj=RLe([G3(1,ln),G3(2,Tt),G3(3,yi)],Cp);class XLe extends Nt{constructor(e,t){super(t),this._isNext=e}run(e,t){const i=Cp.get(t);i&&(this._isNext?i.moveNext():i.moveBack())}}class lTt extends XLe{constructor(){super(!0,{id:"editor.action.wordHighlight.next",label:x("wordHighlight.next.label","Go to Next Symbol Highlight"),alias:"Go to Next Symbol Highlight",precondition:V3,kbOpts:{kbExpr:ne.editorTextFocus,primary:65,weight:100}})}}class uTt extends XLe{constructor(){super(!1,{id:"editor.action.wordHighlight.prev",label:x("wordHighlight.previous.label","Go to Previous Symbol Highlight"),alias:"Go to Previous Symbol Highlight",precondition:V3,kbOpts:{kbExpr:ne.editorTextFocus,primary:1089,weight:100}})}}class cTt extends Nt{constructor(){super({id:"editor.action.wordHighlight.trigger",label:x("wordHighlight.trigger.label","Trigger Symbol Highlight"),alias:"Trigger Symbol Highlight",precondition:V3.toNegated(),kbOpts:{kbExpr:ne.editorTextFocus,primary:0,weight:100}})}run(e,t,i){const r=Cp.get(t);r&&r.restoreViewState(!0)}}Ii(Cp.ID,Cp,0),it(lTt),it(uTt),it(cTt);class X3 extends cs{constructor(e){super(e),this._inSelectionMode=e.inSelectionMode,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){if(!t.hasModel())return;const r=xc(t.getOption(130)),o=t.getModel(),a=t.getSelections().map(l=>{const u=new ve(l.positionLineNumber,l.positionColumn),c=this._move(r,o,u,this._wordNavigationType);return this._moveTo(l,c,this._inSelectionMode)});if(o.pushStackElement(),t._getViewModel().setCursorStates("moveWordCommand",3,a.map(l=>li.fromModelSelection(l))),a.length===1){const l=new ve(a[0].positionLineNumber,a[0].positionColumn);t.revealPosition(l,0)}}_moveTo(e,t,i){return i?new Gt(e.selectionStartLineNumber,e.selectionStartColumn,t.lineNumber,t.column):new Gt(t.lineNumber,t.column,t.lineNumber,t.column)}}class K0 extends X3{_move(e,t,i,r){return wi.moveWordLeft(e,t,i,r)}}class j0 extends X3{_move(e,t,i,r){return wi.moveWordRight(e,t,i,r)}}class dTt extends K0{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartLeft",precondition:void 0})}}class hTt extends K0{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndLeft",precondition:void 0})}}class gTt extends K0{constructor(){var e;super({inSelectionMode:!1,wordNavigationType:1,id:"cursorWordLeft",precondition:void 0,kbOpts:{kbExpr:Be.and(ne.textInputFocus,(e=Be.and($F,RW))===null||e===void 0?void 0:e.negate()),primary:2063,mac:{primary:527},weight:100}})}}class mTt extends K0{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartLeftSelect",precondition:void 0})}}class fTt extends K0{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndLeftSelect",precondition:void 0})}}class pTt extends K0{constructor(){var e;super({inSelectionMode:!0,wordNavigationType:1,id:"cursorWordLeftSelect",precondition:void 0,kbOpts:{kbExpr:Be.and(ne.textInputFocus,(e=Be.and($F,RW))===null||e===void 0?void 0:e.negate()),primary:3087,mac:{primary:1551},weight:100}})}}class bTt extends K0{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityLeft",precondition:void 0})}_move(e,t,i,r){return super._move(xc(xh.wordSeparators.defaultValue),t,i,r)}}class CTt extends K0{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityLeftSelect",precondition:void 0})}_move(e,t,i,r){return super._move(xc(xh.wordSeparators.defaultValue),t,i,r)}}class vTt extends j0{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordStartRight",precondition:void 0})}}class yTt extends j0{constructor(){var e;super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordEndRight",precondition:void 0,kbOpts:{kbExpr:Be.and(ne.textInputFocus,(e=Be.and($F,RW))===null||e===void 0?void 0:e.negate()),primary:2065,mac:{primary:529},weight:100}})}}class ITt extends j0{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordRight",precondition:void 0})}}class wTt extends j0{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordStartRightSelect",precondition:void 0})}}class STt extends j0{constructor(){var e;super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordEndRightSelect",precondition:void 0,kbOpts:{kbExpr:Be.and(ne.textInputFocus,(e=Be.and($F,RW))===null||e===void 0?void 0:e.negate()),primary:3089,mac:{primary:1553},weight:100}})}}class xTt extends j0{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordRightSelect",precondition:void 0})}}class LTt extends j0{constructor(){super({inSelectionMode:!1,wordNavigationType:3,id:"cursorWordAccessibilityRight",precondition:void 0})}_move(e,t,i,r){return super._move(xc(xh.wordSeparators.defaultValue),t,i,r)}}class FTt extends j0{constructor(){super({inSelectionMode:!0,wordNavigationType:3,id:"cursorWordAccessibilityRightSelect",precondition:void 0})}_move(e,t,i,r){return super._move(xc(xh.wordSeparators.defaultValue),t,i,r)}}class P3 extends cs{constructor(e){super(e),this._whitespaceHeuristics=e.whitespaceHeuristics,this._wordNavigationType=e.wordNavigationType}runEditorCommand(e,t,i){const r=e.get($i);if(!t.hasModel())return;const o=xc(t.getOption(130)),s=t.getModel(),a=t.getSelections(),l=t.getOption(6),u=t.getOption(11),c=r.getLanguageConfiguration(s.getLanguageId()).getAutoClosingPairs(),d=t._getViewModel(),h=a.map(g=>{const m=this._delete({wordSeparators:o,model:s,selection:g,whitespaceHeuristics:this._whitespaceHeuristics,autoClosingDelete:t.getOption(9),autoClosingBrackets:l,autoClosingQuotes:u,autoClosingPairs:c,autoClosedCharacters:d.getCursorAutoClosedCharacters()},this._wordNavigationType);return new Us(m,"")});t.pushUndoStop(),t.executeCommands(this.id,h),t.pushUndoStop()}}class jj extends P3{_delete(e,t){const i=wi.deleteWordLeft(e,t);return i||new K(1,1,1,1)}}class Qj extends P3{_delete(e,t){const i=wi.deleteWordRight(e,t);if(i)return i;const r=e.model.getLineCount(),o=e.model.getLineMaxColumn(r);return new K(r,o,r,o)}}class _Tt extends jj{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartLeft",precondition:ne.writable})}}class DTt extends jj{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndLeft",precondition:ne.writable})}}class ATt extends jj{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordLeft",precondition:ne.writable,kbOpts:{kbExpr:ne.textInputFocus,primary:2049,mac:{primary:513},weight:100}})}}class NTt extends Qj{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:0,id:"deleteWordStartRight",precondition:ne.writable})}}class kTt extends Qj{constructor(){super({whitespaceHeuristics:!1,wordNavigationType:2,id:"deleteWordEndRight",precondition:ne.writable})}}class MTt extends Qj{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordRight",precondition:ne.writable,kbOpts:{kbExpr:ne.textInputFocus,primary:2068,mac:{primary:532},weight:100}})}}class ZTt extends Nt{constructor(){super({id:"deleteInsideWord",precondition:ne.writable,label:x("deleteInsideWord","Delete Word"),alias:"Delete Word"})}run(e,t,i){if(!t.hasModel())return;const r=xc(t.getOption(130)),o=t.getModel(),a=t.getSelections().map(l=>{const u=wi.deleteInsideWord(r,o,l);return new Us(u,"")});t.pushUndoStop(),t.executeCommands(this.id,a),t.pushUndoStop()}}mt(new dTt),mt(new hTt),mt(new gTt),mt(new mTt),mt(new fTt),mt(new pTt),mt(new vTt),mt(new yTt),mt(new ITt),mt(new wTt),mt(new STt),mt(new xTt),mt(new bTt),mt(new CTt),mt(new LTt),mt(new FTt),mt(new _Tt),mt(new DTt),mt(new ATt),mt(new NTt),mt(new kTt),mt(new MTt),it(ZTt);class TTt extends P3{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:0,id:"deleteWordPartLeft",precondition:ne.writable,kbOpts:{kbExpr:ne.textInputFocus,primary:0,mac:{primary:769},weight:100}})}_delete(e,t){const i=Q5.deleteWordPartLeft(e);return i||new K(1,1,1,1)}}class ETt extends P3{constructor(){super({whitespaceHeuristics:!0,wordNavigationType:2,id:"deleteWordPartRight",precondition:ne.writable,kbOpts:{kbExpr:ne.textInputFocus,primary:0,mac:{primary:788},weight:100}})}_delete(e,t){const i=Q5.deleteWordPartRight(e);if(i)return i;const r=e.model.getLineCount(),o=e.model.getLineMaxColumn(r);return new K(r,o,r,o)}}class PLe extends X3{_move(e,t,i,r){return Q5.moveWordPartLeft(e,t,i)}}class WTt extends PLe{constructor(){super({inSelectionMode:!1,wordNavigationType:0,id:"cursorWordPartLeft",precondition:void 0,kbOpts:{kbExpr:ne.textInputFocus,primary:0,mac:{primary:783},weight:100}})}}ei.registerCommandAlias("cursorWordPartStartLeft","cursorWordPartLeft");class RTt extends PLe{constructor(){super({inSelectionMode:!0,wordNavigationType:0,id:"cursorWordPartLeftSelect",precondition:void 0,kbOpts:{kbExpr:ne.textInputFocus,primary:0,mac:{primary:1807},weight:100}})}}ei.registerCommandAlias("cursorWordPartStartLeftSelect","cursorWordPartLeftSelect");class OLe extends X3{_move(e,t,i,r){return Q5.moveWordPartRight(e,t,i)}}class GTt extends OLe{constructor(){super({inSelectionMode:!1,wordNavigationType:2,id:"cursorWordPartRight",precondition:void 0,kbOpts:{kbExpr:ne.textInputFocus,primary:0,mac:{primary:785},weight:100}})}}class VTt extends OLe{constructor(){super({inSelectionMode:!0,wordNavigationType:2,id:"cursorWordPartRightSelect",precondition:void 0,kbOpts:{kbExpr:ne.textInputFocus,primary:0,mac:{primary:1809},weight:100}})}}mt(new TTt),mt(new ETt),mt(new WTt),mt(new RTt),mt(new GTt),mt(new VTt);class $j extends De{constructor(e){super(),this.editor=e,this._register(this.editor.onDidAttemptReadOnlyEdit(()=>this._onDidAttemptReadOnlyEdit()))}_onDidAttemptReadOnlyEdit(){const e=ll.get(this.editor);if(e&&this.editor.hasModel()){let t=this.editor.getOptions().get(92);t||(this.editor.isSimpleWidget?t=new ga(x("editor.simple.readonly","Cannot edit in read-only input")):t=new ga(x("editor.readonly","Cannot edit in read-only editor"))),e.showMessage(t,this.editor.getPosition())}}}$j.ID="editor.contrib.readOnlyMessageController",Ii($j.ID,$j,2);var XTt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},BLe=function(n,e){return function(t,i){e(t,i,n)}};let qj=class extends De{constructor(e,t,i){super(),this._textModel=e,this._languageFeaturesService=t,this._outlineModelService=i,this._currentModel=ci(this,void 0);const r=il("documentSymbolProvider.onDidChange",this._languageFeaturesService.documentSymbolProvider.onDidChange),o=il("_textModel.onDidChangeContent",ft.debounce(s=>this._textModel.onDidChangeContent(s),()=>{},100));this._register(kh(async(s,a)=>{r.read(s),o.read(s);const l=a.add(new iSt),u=await this._outlineModelService.getOrCreate(this._textModel,l.token);a.isDisposed||this._currentModel.set(u,void 0)}))}getBreadcrumbItems(e,t){const i=this._currentModel.read(t);if(!i)return[];const r=i.asListOfDocumentSymbols().filter(o=>e.contains(o.range.startLineNumber)&&!e.contains(o.range.endLineNumber));return r.sort(A0e(Fc(o=>o.range.endLineNumber-o.range.startLineNumber,xf))),r.map(o=>({name:o.name,kind:o.kind,startLineNumber:o.range.startLineNumber}))}};qj=XTt([BLe(1,Tt),BLe(2,F8)],qj),wD.setBreadcrumbsSourceFactory((n,e)=>e.createInstance(qj,n));var zLe;(function(n){n.inspectTokensAction=x("inspectTokens","Developer: Inspect Tokens")})(zLe||(zLe={}));var YLe;(function(n){n.gotoLineActionLabel=x("gotoLineActionLabel","Go to Line/Column...")})(YLe||(YLe={}));var HLe;(function(n){n.helpQuickAccessActionLabel=x("helpQuickAccess","Show all Quick Access Providers")})(HLe||(HLe={}));var ULe;(function(n){n.quickCommandActionLabel=x("quickCommandActionLabel","Command Palette"),n.quickCommandHelp=x("quickCommandActionHelp","Show And Run Commands")})(ULe||(ULe={}));var JLe;(function(n){n.quickOutlineActionLabel=x("quickOutlineActionLabel","Go to Symbol..."),n.quickOutlineByCategoryActionLabel=x("quickOutlineByCategoryActionLabel","Go to Symbol by Category...")})(JLe||(JLe={}));var O3;(function(n){n.editorViewAccessibleLabel=x("editorViewAccessibleLabel","Editor content"),n.accessibilityHelpMessage=x("accessibilityHelpMessage","Press Alt+F1 for Accessibility Options.")})(O3||(O3={}));var KLe;(function(n){n.toggleHighContrast=x("toggleHighContrast","Toggle High Contrast Theme")})(KLe||(KLe={}));var eQ;(function(n){n.bulkEditServiceSummary=x("bulkEditServiceSummary","Made {0} edits in {1} files")})(eQ||(eQ={}));function PTt(n,e,t){return new OTt(n,e,t)}class OTt extends EJ{constructor(e,t,i){super(e,i.keepIdleModels||!1,i.label,t),this._foreignModuleId=i.moduleId,this._foreignModuleCreateData=i.createData||null,this._foreignModuleHost=i.host||null,this._foreignProxy=null}fhr(e,t){if(!this._foreignModuleHost||typeof this._foreignModuleHost[e]!="function")return Promise.reject(new Error("Missing method "+e+" or missing main thread foreign host."));try{return Promise.resolve(this._foreignModuleHost[e].apply(this._foreignModuleHost,t))}catch(i){return Promise.reject(i)}}_getForeignProxy(){return this._foreignProxy||(this._foreignProxy=this._getProxy().then(e=>{const t=this._foreignModuleHost?DH(this._foreignModuleHost):[];return e.loadForeignModule(this._foreignModuleId,this._foreignModuleCreateData,t).then(i=>{this._foreignModuleCreateData=null;const r=(a,l)=>e.fmr(a,l),o=(a,l)=>function(){const u=Array.prototype.slice.call(arguments,0);return l(a,u)},s={};for(const a of i)s[a]=o(a,r);return s})})),this._foreignProxy}getProxy(){return this._getForeignProxy()}withSyncedResources(e){return this._withSyncedResources(e).then(t=>this.getProxy())}}function BTt(n){return Array.isArray(n)}function zTt(n){return!BTt(n)}function jLe(n){return typeof n=="string"}function QLe(n){return!jLe(n)}function uS(n){return!n}function Q0(n,e){return n.ignoreCase&&e?e.toLowerCase():e}function $Le(n){return n.replace(/[&<>'"_]/g,"-")}function vJt(n,e){}function fr(n,e){return new Error(`${n.languageId}: ${e}`)}function $0(n,e,t,i,r){const o=/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g;let s=null;return e.replace(o,function(a,l,u,c,d,h,g,m,f){return uS(u)?uS(c)?!uS(d)&&d0;){const i=n.tokenizer[t];if(i)return i;const r=t.lastIndexOf(".");r<0?t=null:t=t.substr(0,r)}return null}function YTt(n,e){let t=e;for(;t&&t.length>0;){if(n.stateNames[t])return!0;const r=t.lastIndexOf(".");r<0?t=null:t=t.substr(0,r)}return!1}var HTt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},UTt=function(n,e){return function(t,i){e(t,i,n)}},tQ;const qLe=5;class qA{static create(e,t){return this._INSTANCE.create(e,t)}constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}create(e,t){if(e!==null&&e.depth>=this._maxCacheDepth)return new cS(e,t);let i=cS.getStackElementId(e);i.length>0&&(i+="|"),i+=t;let r=this._entries[i];return r||(r=new cS(e,t),this._entries[i]=r,r)}}qA._INSTANCE=new qA(qLe);class cS{constructor(e,t){this.parent=e,this.state=t,this.depth=(this.parent?this.parent.depth:0)+1}static getStackElementId(e){let t="";for(;e!==null;)t.length>0&&(t+="|"),t+=e.state,e=e.parent;return t}static _equals(e,t){for(;e!==null&&t!==null;){if(e===t)return!0;if(e.state!==t.state)return!1;e=e.parent,t=t.parent}return e===null&&t===null}equals(e){return cS._equals(this,e)}push(e){return qA.create(this,e)}pop(){return this.parent}popall(){let e=this;for(;e.parent;)e=e.parent;return e}switchTo(e){return qA.create(this.parent,e)}}class dS{constructor(e,t){this.languageId=e,this.state=t}equals(e){return this.languageId===e.languageId&&this.state.equals(e.state)}clone(){return this.state.clone()===this.state?this:new dS(this.languageId,this.state)}}class q0{static create(e,t){return this._INSTANCE.create(e,t)}constructor(e){this._maxCacheDepth=e,this._entries=Object.create(null)}create(e,t){if(t!==null)return new eN(e,t);if(e!==null&&e.depth>=this._maxCacheDepth)return new eN(e,t);const i=cS.getStackElementId(e);let r=this._entries[i];return r||(r=new eN(e,null),this._entries[i]=r,r)}}q0._INSTANCE=new q0(qLe);class eN{constructor(e,t){this.stack=e,this.embeddedLanguageData=t}clone(){return(this.embeddedLanguageData?this.embeddedLanguageData.clone():null)===this.embeddedLanguageData?this:q0.create(this.stack,this.embeddedLanguageData)}equals(e){return!(e instanceof eN)||!this.stack.equals(e.stack)?!1:this.embeddedLanguageData===null&&e.embeddedLanguageData===null?!0:this.embeddedLanguageData===null||e.embeddedLanguageData===null?!1:this.embeddedLanguageData.equals(e.embeddedLanguageData)}}class JTt{constructor(){this._tokens=[],this._languageId=null,this._lastTokenType=null,this._lastTokenLanguage=null}enterLanguage(e){this._languageId=e}emit(e,t){this._lastTokenType===t&&this._lastTokenLanguage===this._languageId||(this._lastTokenType=t,this._lastTokenLanguage=this._languageId,this._tokens.push(new y_(e,t,this._languageId)))}nestedLanguageTokenize(e,t,i,r){const o=i.languageId,s=i.state,a=mo.get(o);if(!a)return this.enterLanguage(o),this.emit(r,""),s;const l=a.tokenize(e,t,s);if(r!==0)for(const u of l.tokens)this._tokens.push(new y_(u.offset+r,u.type,u.language));else this._tokens=this._tokens.concat(l.tokens);return this._lastTokenType=null,this._lastTokenLanguage=null,this._languageId=null,l.endState}finalize(e){return new t6(this._tokens,e)}}class z3{constructor(e,t){this._languageService=e,this._theme=t,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}enterLanguage(e){this._currentLanguageId=this._languageService.languageIdCodec.encodeLanguageId(e)}emit(e,t){const i=this._theme.match(this._currentLanguageId,t)|1024;this._lastTokenMetadata!==i&&(this._lastTokenMetadata=i,this._tokens.push(e),this._tokens.push(i))}static _merge(e,t,i){const r=e!==null?e.length:0,o=t.length,s=i!==null?i.length:0;if(r===0&&o===0&&s===0)return new Uint32Array(0);if(r===0&&o===0)return i;if(o===0&&s===0)return e;const a=new Uint32Array(r+o+s);e!==null&&a.set(e);for(let l=0;l{if(s)return;let l=!1;for(let u=0,c=a.changedLanguages.length;u{a.affectsConfiguration("editor.maxTokenizationLineLength")&&(this._maxTokenizationLineLength=this._configurationService.getValue("editor.maxTokenizationLineLength",{overrideIdentifier:this._languageId}))}))}getLoadStatus(){const e=[];for(const t in this._embeddedLanguages){const i=mo.get(t);if(i){if(i instanceof tQ){const r=i.getLoadStatus();r.loaded===!1&&e.push(r.promise)}continue}mo.isResolved(t)||e.push(mo.getOrCreate(t))}return e.length===0?{loaded:!0}:{loaded:!1,promise:Promise.all(e).then(t=>{})}}getInitialState(){const e=qA.create(null,this._lexer.start);return q0.create(e,null)}tokenize(e,t,i){if(e.length>=this._maxTokenizationLineLength)return vve(this._languageId,i);const r=new JTt,o=this._tokenize(e,t,i,r);return r.finalize(o)}tokenizeEncoded(e,t,i){if(e.length>=this._maxTokenizationLineLength)return B6(this._languageService.languageIdCodec.encodeLanguageId(this._languageId),i);const r=new z3(this._languageService,this._standaloneThemeService.getColorTheme().tokenTheme),o=this._tokenize(e,t,i,r);return r.finalize(o)}_tokenize(e,t,i,r){return i.embeddedLanguageData?this._nestedTokenize(e,t,i,0,r):this._myTokenize(e,t,i,0,r)}_findLeavingNestedLanguageOffset(e,t){let i=this._lexer.tokenizer[t.stack.state];if(!i&&(i=B3(this._lexer,t.stack.state),!i))throw fr(this._lexer,"tokenizer state is not defined: "+t.stack.state);let r=-1,o=!1;for(const s of i){if(!QLe(s.action)||s.action.nextEmbedded!=="@pop")continue;o=!0;let a=s.regex;const l=s.regex.source;if(l.substr(0,4)==="^(?:"&&l.substr(l.length-1,1)===")"){const c=(a.ignoreCase?"i":"")+(a.unicode?"u":"");a=new RegExp(l.substr(4,l.length-5),c)}const u=e.search(a);u===-1||u!==0&&s.matchOnlyAtLineStart||(r===-1||u0&&o.nestedLanguageTokenize(a,!1,i.embeddedLanguageData,r);const l=e.substring(s);return this._myTokenize(l,t,i,r+s,o)}_safeRuleName(e){return e?e.name:"(unknown)"}_myTokenize(e,t,i,r,o){o.enterLanguage(this._languageId);const s=e.length,a=t&&this._lexer.includeLF?e+` +`:e,l=a.length;let u=i.embeddedLanguageData,c=i.stack,d=0,h=null,g=!0;for(;g||d=l)break;g=!1;let M=this._lexer.tokenizer[C];if(!M&&(M=B3(this._lexer,C),!M))throw fr(this._lexer,"tokenizer state is not defined: "+C);const W=a.substr(d);for(const Z of M)if((d===0||!Z.matchOnlyAtLineStart)&&(v=W.match(Z.regex),v)){w=v[0],S=Z.action;break}}if(v||(v=[""],w=""),S||(d=this._lexer.maxStack)throw fr(this._lexer,"maximum tokenizer stack size reached: ["+c.state+","+c.parent.state+",...]");c=c.push(C)}else if(S.next==="@pop"){if(c.depth<=1)throw fr(this._lexer,"trying to pop an empty stack in rule: "+this._safeRuleName(F));c=c.pop()}else if(S.next==="@popall")c=c.popall();else{let M=$0(this._lexer,S.next,w,v,C);if(M[0]==="@"&&(M=M.substr(1)),B3(this._lexer,M))c=c.push(M);else throw fr(this._lexer,"trying to set a next state '"+M+"' that is undefined in rule: "+this._safeRuleName(F))}}S.log&&typeof S.log=="string"&&(this._lexer,this._lexer.languageId+""+$0(this._lexer,S.log,w,v,C),void 0)}if(D===null)throw fr(this._lexer,"lexer rule has no well-defined action in rule: "+this._safeRuleName(F));const A=M=>{const W=this._languageService.getLanguageIdByLanguageName(M)||this._languageService.getLanguageIdByMimeType(M)||M,Z=this._getNestedEmbeddedLanguageData(W);if(d0)throw fr(this._lexer,"groups cannot be nested: "+this._safeRuleName(F));if(v.length!==D.length+1)throw fr(this._lexer,"matched number of groups does not match the number of actions in rule: "+this._safeRuleName(F));let M=0;for(let W=1;Wn});class iQ{static colorizeElement(e,t,i,r){r=r||{};const o=r.theme||"vs",s=r.mimeType||i.getAttribute("lang")||i.getAttribute("data-lang");if(!s)return Promise.resolve();const a=t.getLanguageIdByMimeType(s)||s;e.setTheme(o);const l=i.firstChild?i.firstChild.nodeValue:"";i.className+=" "+o;const u=c=>{var d;const h=(d=nQ==null?void 0:nQ.createHTML(c))!==null&&d!==void 0?d:c;i.innerHTML=h};return this.colorize(t,l||"",a,r).then(u,c=>{})}static async colorize(e,t,i,r){const o=e.languageIdCodec;let s=4;r&&typeof r.tabSize=="number"&&(s=r.tabSize),AY(t)&&(t=t.substr(1));const a=Zg(t);if(!e.isRegisteredLanguageId(i))return eFe(a,s,o);const l=await mo.getOrCreate(i);return l?jTt(a,s,l,o):eFe(a,s,o)}static colorizeLine(e,t,i,r,o=4){const s=Ou.isBasicASCII(e,t),a=Ou.containsRTL(e,s,i);return DT(new Xb(!1,!0,e,!1,s,a,0,r,[],o,0,0,0,0,-1,"none",!1,!1,null)).html}static colorizeModelLine(e,t,i=4){const r=e.getLineContent(t);e.tokenization.forceTokenization(t);const s=e.tokenization.getLineTokens(t).inflate();return this.colorizeLine(r,e.mightContainNonBasicASCII(),e.mightContainRTL(),s,i)}}function jTt(n,e,t,i){return new Promise((r,o)=>{const s=()=>{const a=QTt(n,e,t,i);if(t instanceof tN){const l=t.getLoadStatus();if(l.loaded===!1){l.promise.then(s,o);return}}r(a)};s()})}function eFe(n,e,t){let i=[];const o=new Uint32Array(2);o[0]=0,o[1]=33587200;for(let s=0,a=n.length;s")}return i.join("")}function QTt(n,e,t,i){let r=[],o=t.getInitialState();for(let s=0,a=n.length;s"),o=u.endState}return r.join("")}var $Tt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},qTt=function(n,e){return function(t,i){e(t,i,n)}};let rQ=class extends De{constructor(e){super(),this._themeService=e,this._onWillCreateCodeEditor=this._register(new be),this._onCodeEditorAdd=this._register(new be),this.onCodeEditorAdd=this._onCodeEditorAdd.event,this._onCodeEditorRemove=this._register(new be),this.onCodeEditorRemove=this._onCodeEditorRemove.event,this._onWillCreateDiffEditor=this._register(new be),this._onDiffEditorAdd=this._register(new be),this.onDiffEditorAdd=this._onDiffEditorAdd.event,this._onDiffEditorRemove=this._register(new be),this.onDiffEditorRemove=this._onDiffEditorRemove.event,this._decorationOptionProviders=new Map,this._codeEditorOpenHandlers=new Ua,this._modelProperties=new Map,this._codeEditors=Object.create(null),this._diffEditors=Object.create(null),this._globalStyleSheet=null}willCreateCodeEditor(){this._onWillCreateCodeEditor.fire()}addCodeEditor(e){this._codeEditors[e.getId()]=e,this._onCodeEditorAdd.fire(e)}removeCodeEditor(e){delete this._codeEditors[e.getId()]&&this._onCodeEditorRemove.fire(e)}listCodeEditors(){return Object.keys(this._codeEditors).map(e=>this._codeEditors[e])}willCreateDiffEditor(){this._onWillCreateDiffEditor.fire()}addDiffEditor(e){this._diffEditors[e.getId()]=e,this._onDiffEditorAdd.fire(e)}listDiffEditors(){return Object.keys(this._diffEditors).map(e=>this._diffEditors[e])}getFocusedCodeEditor(){let e=null;const t=this.listCodeEditors();for(const i of t){if(i.hasTextFocus())return i;i.hasWidgetFocus()&&(e=i)}return e}removeDecorationType(e){const t=this._decorationOptionProviders.get(e);t&&(t.refCount--,t.refCount<=0&&(this._decorationOptionProviders.delete(e),t.dispose(),this.listCodeEditors().forEach(i=>i.removeDecorationsByType(e))))}setModelProperty(e,t,i){const r=e.toString();let o;this._modelProperties.has(r)?o=this._modelProperties.get(r):(o=new Map,this._modelProperties.set(r,o)),o.set(t,i)}getModelProperty(e,t){const i=e.toString();if(this._modelProperties.has(i))return this._modelProperties.get(i).get(t)}async openCodeEditor(e,t,i){for(const r of this._codeEditorOpenHandlers){const o=await r(e,t,i);if(o!==null)return o}return null}registerCodeEditorOpenHandler(e){const t=this._codeEditorOpenHandlers.unshift(e);return en(t)}};rQ=$Tt([qTt(0,ts)],rQ);var eEt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},tFe=function(n,e){return function(t,i){e(t,i,n)}};let Y3=class extends rQ{constructor(e,t){super(t),this._register(this.onCodeEditorAdd(()=>this._checkContextKey())),this._register(this.onCodeEditorRemove(()=>this._checkContextKey())),this._editorIsOpen=e.createKey("editorIsOpen",!1),this._activeCodeEditor=null,this._register(this.registerCodeEditorOpenHandler(async(i,r,o)=>r?this.doOpenEditor(r,i):null))}_checkContextKey(){let e=!1;for(const t of this.listCodeEditors())if(!t.isSimpleWidget){e=!0;break}this._editorIsOpen.set(e)}setActiveCodeEditor(e){this._activeCodeEditor=e}getActiveCodeEditor(){return this._activeCodeEditor}doOpenEditor(e,t){if(!this.findModel(e,t.resource)){if(t.resource){const o=t.resource.scheme;if(o===xn.http||o===xn.https)return e0e(t.resource.toString()),e}return null}const r=t.options?t.options.selection:null;if(r)if(typeof r.endLineNumber=="number"&&typeof r.endColumn=="number")e.setSelection(r),e.revealRangeInCenter(r,1);else{const o={lineNumber:r.startLineNumber,column:r.startColumn};e.setPosition(o),e.revealPositionInCenter(o,1)}return e}findModel(e,t){const i=e.getModel();return i&&i.uri.toString()!==t.toString()?null:i}};Y3=eEt([tFe(0,ln),tFe(1,ts)],Y3),ti(yi,Y3,0);const qv=Un("layoutService");var nFe=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},iFe=function(n,e){return function(t,i){e(t,i,n)}};let H3=class{get mainContainer(){var e,t;return(t=(e=cH(this._codeEditorService.listCodeEditors()))===null||e===void 0?void 0:e.getContainerDomNode())!==null&&t!==void 0?t:Wi.document.body}get activeContainer(){var e,t;const i=(e=this._codeEditorService.getFocusedCodeEditor())!==null&&e!==void 0?e:this._codeEditorService.getActiveCodeEditor();return(t=i==null?void 0:i.getContainerDomNode())!==null&&t!==void 0?t:this.mainContainer}get mainContainerDimension(){return pf(this.mainContainer)}get activeContainerDimension(){return pf(this.activeContainer)}get containers(){return Gg(this._codeEditorService.listCodeEditors().map(e=>e.getContainerDomNode()))}getContainer(){return this.activeContainer}focus(){var e;(e=this._codeEditorService.getFocusedCodeEditor())===null||e===void 0||e.focus()}constructor(e){this._codeEditorService=e,this.onDidLayoutMainContainer=ft.None,this.onDidLayoutActiveContainer=ft.None,this.onDidLayoutContainer=ft.None,this.onDidChangeActiveContainer=ft.None,this.onDidAddContainer=ft.None,this.whenActiveContainerStylesLoaded=Promise.resolve(),this.mainContainerOffset={top:0,quickPickTop:0},this.activeContainerOffset={top:0,quickPickTop:0}}};H3=nFe([iFe(0,yi)],H3);let oQ=class extends H3{get mainContainer(){return this._container}constructor(e,t){super(t),this._container=e}};oQ=nFe([iFe(1,yi)],oQ),ti(qv,H3,1);var tEt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},rFe=function(n,e){return function(t,i){e(t,i,n)}};function U3(n){return n.scheme===xn.file?n.fsPath:n.path}let oFe=0;class J3{constructor(e,t,i,r,o,s,a){this.id=++oFe,this.type=0,this.actual=e,this.label=e.label,this.confirmBeforeUndo=e.confirmBeforeUndo||!1,this.resourceLabel=t,this.strResource=i,this.resourceLabels=[this.resourceLabel],this.strResources=[this.strResource],this.groupId=r,this.groupOrder=o,this.sourceId=s,this.sourceOrder=a,this.isValid=!0}setValid(e){this.isValid=e}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.isValid?" VALID":"INVALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class sFe{constructor(e,t){this.resourceLabel=e,this.reason=t}}class aFe{constructor(){this.elements=new Map}createMessage(){const e=[],t=[];for(const[,r]of this.elements)(r.reason===0?e:t).push(r.resourceLabel);const i=[];return e.length>0&&i.push(x({key:"externalRemoval",comment:["{0} is a list of filenames"]},"The following files have been closed and modified on disk: {0}.",e.join(", "))),t.length>0&&i.push(x({key:"noParallelUniverses",comment:["{0} is a list of filenames"]},"The following files have been modified in an incompatible way: {0}.",t.join(", "))),i.join(` +`)}get size(){return this.elements.size}has(e){return this.elements.has(e)}set(e,t){this.elements.set(e,t)}delete(e){return this.elements.delete(e)}}class nEt{constructor(e,t,i,r,o,s,a){this.id=++oFe,this.type=1,this.actual=e,this.label=e.label,this.confirmBeforeUndo=e.confirmBeforeUndo||!1,this.resourceLabels=t,this.strResources=i,this.groupId=r,this.groupOrder=o,this.sourceId=s,this.sourceOrder=a,this.removedResources=null,this.invalidatedResources=null}canSplit(){return typeof this.actual.split=="function"}removeResource(e,t,i){this.removedResources||(this.removedResources=new aFe),this.removedResources.has(t)||this.removedResources.set(t,new sFe(e,i))}setValid(e,t,i){i?this.invalidatedResources&&(this.invalidatedResources.delete(t),this.invalidatedResources.size===0&&(this.invalidatedResources=null)):(this.invalidatedResources||(this.invalidatedResources=new aFe),this.invalidatedResources.has(t)||this.invalidatedResources.set(t,new sFe(e,0)))}toString(){return`[id:${this.id}] [group:${this.groupId}] [${this.invalidatedResources?"INVALID":" VALID"}] ${this.actual.constructor.name} - ${this.actual}`}}class lFe{constructor(e,t){this.resourceLabel=e,this.strResource=t,this._past=[],this._future=[],this.locked=!1,this.versionId=1}dispose(){for(const e of this._past)e.type===1&&e.removeResource(this.resourceLabel,this.strResource,0);for(const e of this._future)e.type===1&&e.removeResource(this.resourceLabel,this.strResource,0);this.versionId++}toString(){const e=[];e.push(`* ${this.strResource}:`);for(let t=0;t=0;t--)e.push(` * [REDO] ${this._future[t]}`);return e.join(` +`)}flushAllElements(){this._past=[],this._future=[],this.versionId++}_setElementValidFlag(e,t){e.type===1?e.setValid(this.resourceLabel,this.strResource,t):e.setValid(t)}setElementsValidFlag(e,t){for(const i of this._past)t(i.actual)&&this._setElementValidFlag(i,e);for(const i of this._future)t(i.actual)&&this._setElementValidFlag(i,e)}pushElement(e){for(const t of this._future)t.type===1&&t.removeResource(this.resourceLabel,this.strResource,1);this._future=[],this._past.push(e),this.versionId++}createSnapshot(e){const t=[];for(let i=0,r=this._past.length;i=0;i--)t.push(this._future[i].id);return new Ive(e,t)}restoreSnapshot(e){const t=e.elements.length;let i=!0,r=0,o=-1;for(let a=0,l=this._past.length;a=t||u.id!==e.elements[r])&&(i=!1,o=0),!i&&u.type===1&&u.removeResource(this.resourceLabel,this.strResource,0)}let s=-1;for(let a=this._future.length-1;a>=0;a--,r++){const l=this._future[a];i&&(r>=t||l.id!==e.elements[r])&&(i=!1,s=a),!i&&l.type===1&&l.removeResource(this.resourceLabel,this.strResource,0)}o!==-1&&(this._past=this._past.slice(0,o)),s!==-1&&(this._future=this._future.slice(s+1)),this.versionId++}getElements(){const e=[],t=[];for(const i of this._past)e.push(i.actual);for(const i of this._future)t.push(i.actual);return{past:e,future:t}}getClosestPastElement(){return this._past.length===0?null:this._past[this._past.length-1]}getSecondClosestPastElement(){return this._past.length<2?null:this._past[this._past.length-2]}getClosestFutureElement(){return this._future.length===0?null:this._future[this._future.length-1]}hasPastElements(){return this._past.length>0}hasFutureElements(){return this._future.length>0}splitPastWorkspaceElement(e,t){for(let i=this._past.length-1;i>=0;i--)if(this._past[i]===e){t.has(this.strResource)?this._past[i]=t.get(this.strResource):this._past.splice(i,1);break}this.versionId++}splitFutureWorkspaceElement(e,t){for(let i=this._future.length-1;i>=0;i--)if(this._future[i]===e){t.has(this.strResource)?this._future[i]=t.get(this.strResource):this._future.splice(i,1);break}this.versionId++}moveBackward(e){this._past.pop(),this._future.push(e),this.versionId++}moveForward(e){this._future.pop(),this._past.push(e),this.versionId++}}class sQ{constructor(e){this.editStacks=e,this._versionIds=[];for(let t=0,i=this.editStacks.length;tt.sourceOrder)&&(t=s,i=r)}return[t,i]}canUndo(e){if(e instanceof nm){const[,i]=this._findClosestUndoElementWithSource(e.id);return!!i}const t=this.getUriComparisonKey(e);return this._editStacks.has(t)?this._editStacks.get(t).hasPastElements():!1}_onError(e,t){fn(e);for(const i of t.strResources)this.removeElements(i);this._notificationService.error(e)}_acquireLocks(e){for(const t of e.editStacks)if(t.locked)throw new Error("Cannot acquire edit stack lock");for(const t of e.editStacks)t.locked=!0;return()=>{for(const t of e.editStacks)t.locked=!1}}_safeInvokeWithLocks(e,t,i,r,o){const s=this._acquireLocks(i);let a;try{a=t()}catch(l){return s(),r.dispose(),this._onError(l,e)}return a?a.then(()=>(s(),r.dispose(),o()),l=>(s(),r.dispose(),this._onError(l,e))):(s(),r.dispose(),o())}async _invokeWorkspacePrepare(e){if(typeof e.actual.prepareUndoRedo>"u")return De.None;const t=e.actual.prepareUndoRedo();return typeof t>"u"?De.None:t}_invokeResourcePrepare(e,t){if(e.actual.type!==1||typeof e.actual.prepareUndoRedo>"u")return t(De.None);const i=e.actual.prepareUndoRedo();return i?iY(i)?t(i):i.then(r=>t(r)):t(De.None)}_getAffectedEditStacks(e){const t=[];for(const i of e.strResources)t.push(this._editStacks.get(i)||uFe);return new sQ(t)}_tryToSplitAndUndo(e,t,i,r){if(t.canSplit())return this._splitPastWorkspaceElement(t,i),this._notificationService.warn(r),new K3(this._undo(e,0,!0));for(const o of t.strResources)this.removeElements(o);return this._notificationService.warn(r),new K3}_checkWorkspaceUndo(e,t,i,r){if(t.removedResources)return this._tryToSplitAndUndo(e,t,t.removedResources,x({key:"cannotWorkspaceUndo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not undo '{0}' across all files. {1}",t.label,t.removedResources.createMessage()));if(r&&t.invalidatedResources)return this._tryToSplitAndUndo(e,t,t.invalidatedResources,x({key:"cannotWorkspaceUndo",comment:["{0} is a label for an operation. {1} is another message."]},"Could not undo '{0}' across all files. {1}",t.label,t.invalidatedResources.createMessage()));const o=[];for(const a of i.editStacks)a.getClosestPastElement()!==t&&o.push(a.resourceLabel);if(o.length>0)return this._tryToSplitAndUndo(e,t,null,x({key:"cannotWorkspaceUndoDueToChanges",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because changes were made to {1}",t.label,o.join(", ")));const s=[];for(const a of i.editStacks)a.locked&&s.push(a.resourceLabel);return s.length>0?this._tryToSplitAndUndo(e,t,null,x({key:"cannotWorkspaceUndoDueToInProgressUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,s.join(", "))):i.isValid()?null:this._tryToSplitAndUndo(e,t,null,x({key:"cannotWorkspaceUndoDueToInMeantimeUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not undo '{0}' across all files because an undo or redo operation occurred in the meantime",t.label))}_workspaceUndo(e,t,i){const r=this._getAffectedEditStacks(t),o=this._checkWorkspaceUndo(e,t,r,!1);return o?o.returnValue:this._confirmAndExecuteWorkspaceUndo(e,t,r,i)}_isPartOfUndoGroup(e){if(!e.groupId)return!1;for(const[,t]of this._editStacks){const i=t.getClosestPastElement();if(i){if(i===e){const r=t.getSecondClosestPastElement();if(r&&r.groupId===e.groupId)return!0}if(i.groupId===e.groupId)return!0}}return!1}async _confirmAndExecuteWorkspaceUndo(e,t,i,r){if(t.canSplit()&&!this._isPartOfUndoGroup(t)){let a;(function(c){c[c.All=0]="All",c[c.This=1]="This",c[c.Cancel=2]="Cancel"})(a||(a={}));const{result:l}=await this._dialogService.prompt({type:to.Info,message:x("confirmWorkspace","Would you like to undo '{0}' across all files?",t.label),buttons:[{label:x({key:"ok",comment:["{0} denotes a number that is > 1, && denotes a mnemonic"]},"&&Undo in {0} Files",i.editStacks.length),run:()=>a.All},{label:x({key:"nok",comment:["&& denotes a mnemonic"]},"Undo this &&File"),run:()=>a.This}],cancelButton:{run:()=>a.Cancel}});if(l===a.Cancel)return;if(l===a.This)return this._splitPastWorkspaceElement(t,null),this._undo(e,0,!0);const u=this._checkWorkspaceUndo(e,t,i,!1);if(u)return u.returnValue;r=!0}let o;try{o=await this._invokeWorkspacePrepare(t)}catch(a){return this._onError(a,t)}const s=this._checkWorkspaceUndo(e,t,i,!0);if(s)return o.dispose(),s.returnValue;for(const a of i.editStacks)a.moveBackward(t);return this._safeInvokeWithLocks(t,()=>t.actual.undo(),i,o,()=>this._continueUndoInGroup(t.groupId,r))}_resourceUndo(e,t,i){if(!t.isValid){e.flushAllElements();return}if(e.locked){const r=x({key:"cannotResourceUndoDueToInProgressUndoRedo",comment:["{0} is a label for an operation."]},"Could not undo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(r);return}return this._invokeResourcePrepare(t,r=>(e.moveBackward(t),this._safeInvokeWithLocks(t,()=>t.actual.undo(),new sQ([e]),r,()=>this._continueUndoInGroup(t.groupId,i))))}_findClosestUndoElementInGroup(e){if(!e)return[null,null];let t=null,i=null;for(const[r,o]of this._editStacks){const s=o.getClosestPastElement();s&&s.groupId===e&&(!t||s.groupOrder>t.groupOrder)&&(t=s,i=r)}return[t,i]}_continueUndoInGroup(e,t){if(!e)return;const[,i]=this._findClosestUndoElementInGroup(e);if(i)return this._undo(i,0,t)}undo(e){if(e instanceof nm){const[,t]=this._findClosestUndoElementWithSource(e.id);return t?this._undo(t,e.id,!1):void 0}return typeof e=="string"?this._undo(e,0,!1):this._undo(this.getUriComparisonKey(e),0,!1)}_undo(e,t=0,i){if(!this._editStacks.has(e))return;const r=this._editStacks.get(e),o=r.getClosestPastElement();if(!o)return;if(o.groupId){const[a,l]=this._findClosestUndoElementInGroup(o.groupId);if(o!==a&&l)return this._undo(l,t,i)}if((o.sourceId!==t||o.confirmBeforeUndo)&&!i)return this._confirmAndContinueUndo(e,t,o);try{return o.type===1?this._workspaceUndo(e,o,i):this._resourceUndo(r,o,i)}finally{}}async _confirmAndContinueUndo(e,t,i){if((await this._dialogService.confirm({message:x("confirmDifferentSource","Would you like to undo '{0}'?",i.label),primaryButton:x({key:"confirmDifferentSource.yes",comment:["&& denotes a mnemonic"]},"&&Yes"),cancelButton:x("confirmDifferentSource.no","No")})).confirmed)return this._undo(e,t,!0)}_findClosestRedoElementWithSource(e){if(!e)return[null,null];let t=null,i=null;for(const[r,o]of this._editStacks){const s=o.getClosestFutureElement();s&&s.sourceId===e&&(!t||s.sourceOrder0)return this._tryToSplitAndRedo(e,t,null,x({key:"cannotWorkspaceRedoDueToChanges",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because changes were made to {1}",t.label,o.join(", ")));const s=[];for(const a of i.editStacks)a.locked&&s.push(a.resourceLabel);return s.length>0?this._tryToSplitAndRedo(e,t,null,x({key:"cannotWorkspaceRedoDueToInProgressUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because there is already an undo or redo operation running on {1}",t.label,s.join(", "))):i.isValid()?null:this._tryToSplitAndRedo(e,t,null,x({key:"cannotWorkspaceRedoDueToInMeantimeUndoRedo",comment:["{0} is a label for an operation. {1} is a list of filenames."]},"Could not redo '{0}' across all files because an undo or redo operation occurred in the meantime",t.label))}_workspaceRedo(e,t){const i=this._getAffectedEditStacks(t),r=this._checkWorkspaceRedo(e,t,i,!1);return r?r.returnValue:this._executeWorkspaceRedo(e,t,i)}async _executeWorkspaceRedo(e,t,i){let r;try{r=await this._invokeWorkspacePrepare(t)}catch(s){return this._onError(s,t)}const o=this._checkWorkspaceRedo(e,t,i,!0);if(o)return r.dispose(),o.returnValue;for(const s of i.editStacks)s.moveForward(t);return this._safeInvokeWithLocks(t,()=>t.actual.redo(),i,r,()=>this._continueRedoInGroup(t.groupId))}_resourceRedo(e,t){if(!t.isValid){e.flushAllElements();return}if(e.locked){const i=x({key:"cannotResourceRedoDueToInProgressUndoRedo",comment:["{0} is a label for an operation."]},"Could not redo '{0}' because there is already an undo or redo operation running.",t.label);this._notificationService.warn(i);return}return this._invokeResourcePrepare(t,i=>(e.moveForward(t),this._safeInvokeWithLocks(t,()=>t.actual.redo(),new sQ([e]),i,()=>this._continueRedoInGroup(t.groupId))))}_findClosestRedoElementInGroup(e){if(!e)return[null,null];let t=null,i=null;for(const[r,o]of this._editStacks){const s=o.getClosestFutureElement();s&&s.groupId===e&&(!t||s.groupOrder=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},lQ=function(n,e){return function(t,i){e(t,i,n)}};let uQ=class extends De{constructor(e,t,i){super(),this._themeService=e,this._logService=t,this._languageService=i,this._caches=new WeakMap,this._register(this._themeService.onDidColorThemeChange(()=>{this._caches=new WeakMap}))}getStyling(e){return this._caches.has(e)||this._caches.set(e,new Ij(e.getLegend(),this._themeService,this._languageService,this._logService)),this._caches.get(e)}};uQ=iEt([lQ(0,ts),lQ(1,Qa),lQ(2,Cr)],uQ),ti(D3,uQ,1);function cFe(n){return typeof n=="string"?!1:Array.isArray(n)?n.every(cFe):!!n.exclusive}class dFe{constructor(e,t,i,r){this.uri=e,this.languageId=t,this.notebookUri=i,this.notebookType=r}equals(e){var t,i;return this.notebookType===e.notebookType&&this.languageId===e.languageId&&this.uri.toString()===e.uri.toString()&&((t=this.notebookUri)===null||t===void 0?void 0:t.toString())===((i=e.notebookUri)===null||i===void 0?void 0:i.toString())}}class xr{constructor(e){this._notebookInfoResolver=e,this._clock=0,this._entries=[],this._onDidChange=new be,this.onDidChange=this._onDidChange.event}register(e,t){let i={selector:e,provider:t,_score:-1,_time:this._clock++};return this._entries.push(i),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),en(()=>{if(i){const r=this._entries.indexOf(i);r>=0&&(this._entries.splice(r,1),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),i=void 0)}})}has(e){return this.all(e).length>0}all(e){if(!e)return[];this._updateScores(e);const t=[];for(const i of this._entries)i._score>0&&t.push(i.provider);return t}ordered(e){const t=[];return this._orderedForEach(e,i=>t.push(i.provider)),t}orderedGroups(e){const t=[];let i,r;return this._orderedForEach(e,o=>{i&&r===o._score?i.push(o.provider):(r=o._score,i=[o.provider],t.push(i))}),t}_orderedForEach(e,t){this._updateScores(e);for(const i of this._entries)i._score>0&&t(i)}_updateScores(e){var t,i;const r=(t=this._notebookInfoResolver)===null||t===void 0?void 0:t.call(this,e.uri),o=r?new dFe(e.uri,e.getLanguageId(),r.uri,r.type):new dFe(e.uri,e.getLanguageId(),void 0,void 0);if(!(!((i=this._lastCandidate)===null||i===void 0)&&i.equals(o))){this._lastCandidate=o;for(const s of this._entries)if(s._score=Uj(s.selector,o.uri,o.languageId,bCe(e),o.notebookUri,o.notebookType),cFe(s.selector)&&s._score>0){for(const a of this._entries)a._score=0;s._score=1e3;break}this._entries.sort(xr._compareByScoreAndTime)}}static _compareByScoreAndTime(e,t){return e._scoret._score?-1:nN(e.selector)&&!nN(t.selector)?1:!nN(e.selector)&&nN(t.selector)?-1:e._timet._time?-1:0}}function nN(n){return typeof n=="string"?!1:Array.isArray(n)?n.some(nN):!!n.isBuiltin}class rEt{constructor(){this.referenceProvider=new xr(this._score.bind(this)),this.renameProvider=new xr(this._score.bind(this)),this.newSymbolNamesProvider=new xr(this._score.bind(this)),this.codeActionProvider=new xr(this._score.bind(this)),this.definitionProvider=new xr(this._score.bind(this)),this.typeDefinitionProvider=new xr(this._score.bind(this)),this.declarationProvider=new xr(this._score.bind(this)),this.implementationProvider=new xr(this._score.bind(this)),this.documentSymbolProvider=new xr(this._score.bind(this)),this.inlayHintsProvider=new xr(this._score.bind(this)),this.colorProvider=new xr(this._score.bind(this)),this.codeLensProvider=new xr(this._score.bind(this)),this.documentFormattingEditProvider=new xr(this._score.bind(this)),this.documentRangeFormattingEditProvider=new xr(this._score.bind(this)),this.onTypeFormattingEditProvider=new xr(this._score.bind(this)),this.signatureHelpProvider=new xr(this._score.bind(this)),this.hoverProvider=new xr(this._score.bind(this)),this.documentHighlightProvider=new xr(this._score.bind(this)),this.multiDocumentHighlightProvider=new xr(this._score.bind(this)),this.selectionRangeProvider=new xr(this._score.bind(this)),this.foldingRangeProvider=new xr(this._score.bind(this)),this.linkProvider=new xr(this._score.bind(this)),this.inlineCompletionsProvider=new xr(this._score.bind(this)),this.inlineEditProvider=new xr(this._score.bind(this)),this.completionProvider=new xr(this._score.bind(this)),this.linkedEditingRangeProvider=new xr(this._score.bind(this)),this.documentRangeSemanticTokensProvider=new xr(this._score.bind(this)),this.documentSemanticTokensProvider=new xr(this._score.bind(this)),this.documentOnDropEditProvider=new xr(this._score.bind(this)),this.documentPasteEditProvider=new xr(this._score.bind(this))}_score(e){var t;return(t=this._notebookTypeResolver)===null||t===void 0?void 0:t.call(this,e)}}ti(Tt,rEt,1);var oEt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},hFe=function(n,e){return function(t,i){e(t,i,n)}};const cQ=Un("hoverService");let j3=class extends De{get delay(){return this.instantHover&&Date.now()-this.lastHoverHideTime{s.affectsConfiguration("workbench.hover.delay")&&(this._delay=this.configurationService.getValue("workbench.hover.delay"))}))}showHover(e,t){const i=typeof this.overrideOptions=="function"?this.overrideOptions(e,t):this.overrideOptions;this.hoverDisposables.clear();const r=e.target instanceof HTMLElement?[e.target]:e.target.targetElements;for(const o of r)this.hoverDisposables.add(Gr(o,"keydown",s=>{s.equals(9)&&this.hoverService.hideHover()}));return this.hoverService.showHover({...e,persistence:{hideOnHover:!0},...i},t)}onDidHideHover(){this.hoverDisposables.clear(),this.instantHover&&(this.lastHoverHideTime=Date.now())}};j3=oEt([hFe(3,Xn),hFe(4,cQ)],j3);var sEt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},iN=function(n,e){return function(t,i){e(t,i,n)}};const km=vt;let dQ=class extends Pu{get _targetWindow(){return qt(this._target.targetElements[0])}get _targetDocumentElement(){return qt(this._target.targetElements[0]).document.documentElement}get isDisposed(){return this._isDisposed}get isMouseIn(){return this._lockMouseTracker.isMouseIn}get domNode(){return this._hover.containerDomNode}get onDispose(){return this._onDispose.event}get onRequestLayout(){return this._onRequestLayout.event}get anchor(){return this._hoverPosition===2?0:1}get x(){return this._x}get y(){return this._y}get isLocked(){return this._isLocked}set isLocked(e){this._isLocked!==e&&(this._isLocked=e,this._hoverContainer.classList.toggle("locked",this._isLocked))}constructor(e,t,i,r,o,s){var a,l,u,c,d,h,g,m;super(),this._keybindingService=t,this._configurationService=i,this._openerService=r,this._instantiationService=o,this._accessibilityService=s,this._messageListeners=new je,this._isDisposed=!1,this._forcePosition=!1,this._x=0,this._y=0,this._isLocked=!1,this._enableFocusTraps=!1,this._addedFocusTrap=!1,this._onDispose=this._register(new be),this._onRequestLayout=this._register(new be),this._linkHandler=e.linkHandler||(S=>fU(this._openerService,S,sm(e.content)?e.content.isTrusted:void 0)),this._target="targetElements"in e.target?e.target:new aEt(e.target),this._hoverPointer=!((a=e.appearance)===null||a===void 0)&&a.showPointer?km("div.workbench-hover-pointer"):void 0,this._hover=this._register(new NK),this._hover.containerDomNode.classList.add("workbench-hover","fadeIn"),!((l=e.appearance)===null||l===void 0)&&l.compact&&this._hover.containerDomNode.classList.add("workbench-hover","compact"),!((u=e.appearance)===null||u===void 0)&&u.skipFadeInAnimation&&this._hover.containerDomNode.classList.add("skip-fade-in"),e.additionalClasses&&this._hover.containerDomNode.classList.add(...e.additionalClasses),!((c=e.position)===null||c===void 0)&&c.forcePosition&&(this._forcePosition=!0),e.trapFocus&&(this._enableFocusTraps=!0),this._hoverPosition=(h=(d=e.position)===null||d===void 0?void 0:d.hoverPosition)!==null&&h!==void 0?h:3,this.onmousedown(this._hover.containerDomNode,S=>S.stopPropagation()),this.onkeydown(this._hover.containerDomNode,S=>{S.equals(9)&&this.dispose()}),this._register(Ve(this._targetWindow,"blur",()=>this.dispose()));const f=km("div.hover-row.markdown-hover"),b=km("div.hover-contents");if(typeof e.content=="string")b.textContent=e.content,b.style.whiteSpace="pre-wrap";else if(e.content instanceof HTMLElement)b.appendChild(e.content),b.classList.add("html-hover-contents");else{const S=e.content,F=this._instantiationService.createInstance(mm,{codeBlockFontFamily:this._configurationService.getValue("editor").fontFamily||Zl.fontFamily}),{element:L}=F.render(S,{actionHandler:{callback:D=>this._linkHandler(D),disposables:this._messageListeners},asyncRenderCallback:()=>{b.classList.add("code-hover-contents"),this.layout(),this._onRequestLayout.fire()}});b.appendChild(L)}if(f.appendChild(b),this._hover.contentsDomNode.appendChild(f),e.actions&&e.actions.length>0){const S=km("div.hover-row.status-bar"),F=km("div.actions");e.actions.forEach(L=>{const D=this._keybindingService.lookupKeybinding(L.commandId),A=D?D.getLabel():null;uR.render(F,{label:L.label,commandId:L.commandId,run:M=>{L.run(M),this.dispose()},iconClass:L.iconClass},A)}),S.appendChild(F),this._hover.containerDomNode.appendChild(S)}this._hoverContainer=km("div.workbench-hover-container"),this._hoverPointer&&this._hoverContainer.appendChild(this._hoverPointer),this._hoverContainer.appendChild(this._hover.containerDomNode);let C;if(e.actions&&e.actions.length>0?C=!1:((g=e.persistence)===null||g===void 0?void 0:g.hideOnHover)===void 0?C=typeof e.content=="string"||sm(e.content)&&!e.content.value.includes("](")&&!e.content.value.includes(""):C=e.persistence.hideOnHover,C&&(!((m=e.appearance)===null||m===void 0)&&m.showHoverHint)){const S=km("div.hover-row.status-bar"),F=km("div.info");F.textContent=x("hoverhint","Hold {0} key to mouse over",$n?"Option":"Alt"),S.appendChild(F),this._hover.containerDomNode.appendChild(S)}const v=[...this._target.targetElements];C||v.push(this._hoverContainer);const w=this._register(new gFe(v));if(this._register(w.onMouseOut(()=>{this._isLocked||this.dispose()})),C){const S=[...this._target.targetElements,this._hoverContainer];this._lockMouseTracker=this._register(new gFe(S)),this._register(this._lockMouseTracker.onMouseOut(()=>{this._isLocked||this.dispose()}))}else this._lockMouseTracker=w}addFocusTrap(){if(!this._enableFocusTraps||this._addedFocusTrap)return;this._addedFocusTrap=!0;const e=this._hover.containerDomNode,t=this.findLastFocusableChild(this._hover.containerDomNode);if(t){const i=UY(this._hoverContainer,km("div")),r=Je(this._hoverContainer,km("div"));i.tabIndex=0,r.tabIndex=0,this._register(Ve(r,"focus",o=>{e.focus(),o.preventDefault()})),this._register(Ve(i,"focus",o=>{t.focus(),o.preventDefault()}))}}findLastFocusableChild(e){if(e.hasChildNodes())for(let t=0;t=0)return o}const r=this.findLastFocusableChild(i);if(r)return r}}render(e){var t;e.appendChild(this._hoverContainer);const r=this._hoverContainer.contains(this._hoverContainer.ownerDocument.activeElement)&&Hwe(this._configurationService.getValue("accessibility.verbosity.hover")===!0&&this._accessibilityService.isScreenReaderOptimized(),(t=this._keybindingService.lookupKeybinding("editor.action.accessibleView"))===null||t===void 0?void 0:t.getAriaLabel());r&&yf(r),this.layout(),this.addFocusTrap()}layout(){this._hover.containerDomNode.classList.remove("right-aligned"),this._hover.contentsDomNode.style.maxHeight="";const e=c=>{const d=Hbe(c),h=c.getBoundingClientRect();return{top:h.top*d,bottom:h.bottom*d,right:h.right*d,left:h.left*d}},t=this._target.targetElements.map(c=>e(c)),i=Math.min(...t.map(c=>c.top)),r=Math.max(...t.map(c=>c.right)),o=Math.max(...t.map(c=>c.bottom)),s=Math.min(...t.map(c=>c.left)),a=r-s,l=o-i,u={top:i,right:r,bottom:o,left:s,width:a,height:l,center:{x:s+a/2,y:i+l/2}};if(this.adjustHorizontalHoverPosition(u),this.adjustVerticalHoverPosition(u),this.adjustHoverMaxHeight(u),this._hoverContainer.style.padding="",this._hoverContainer.style.margin="",this._hoverPointer){switch(this._hoverPosition){case 1:u.left+=3,u.right+=3,this._hoverContainer.style.paddingLeft="3px",this._hoverContainer.style.marginLeft="-3px";break;case 0:u.left-=3,u.right-=3,this._hoverContainer.style.paddingRight="3px",this._hoverContainer.style.marginRight="-3px";break;case 2:u.top+=3,u.bottom+=3,this._hoverContainer.style.paddingTop="3px",this._hoverContainer.style.marginTop="-3px";break;case 3:u.top-=3,u.bottom-=3,this._hoverContainer.style.paddingBottom="3px",this._hoverContainer.style.marginBottom="-3px";break}u.center.x=u.left+a/2,u.center.y=u.top+l/2}this.computeXCordinate(u),this.computeYCordinate(u),this._hoverPointer&&(this._hoverPointer.classList.remove("top"),this._hoverPointer.classList.remove("left"),this._hoverPointer.classList.remove("right"),this._hoverPointer.classList.remove("bottom"),this.setHoverPointerPosition(u)),this._hover.onContentsChanged()}computeXCordinate(e){const t=this._hover.containerDomNode.clientWidth+2;this._target.x!==void 0?this._x=this._target.x:this._hoverPosition===1?this._x=e.right:this._hoverPosition===0?this._x=e.left-t:(this._hoverPointer?this._x=e.center.x-this._hover.containerDomNode.clientWidth/2:this._x=e.left,this._x+t>=this._targetDocumentElement.clientWidth&&(this._hover.containerDomNode.classList.add("right-aligned"),this._x=Math.max(this._targetDocumentElement.clientWidth-t-2,this._targetDocumentElement.clientLeft))),this._xthis._targetWindow.innerHeight&&(this._y=e.bottom)}adjustHorizontalHoverPosition(e){if(this._target.x===void 0){if(this._forcePosition){const t=(this._hoverPointer?3:0)+2;this._hoverPosition===1?this._hover.containerDomNode.style.maxWidth=`${this._targetDocumentElement.clientWidth-e.right-t}px`:this._hoverPosition===0&&(this._hover.containerDomNode.style.maxWidth=`${e.left-t}px`);return}this._hoverPosition===1?this._targetDocumentElement.clientWidth-e.right=this._hover.containerDomNode.clientWidth?this._hoverPosition=0:this._hoverPosition=2):this._hoverPosition===0&&(e.left=this._hover.containerDomNode.clientWidth?this._hoverPosition=1:this._hoverPosition=2),e.left-this._hover.containerDomNode.clientWidth<=this._targetDocumentElement.clientLeft&&(this._hoverPosition=1))}}adjustVerticalHoverPosition(e){this._target.y!==void 0||this._forcePosition||(this._hoverPosition===3?e.top-this._hover.containerDomNode.clientHeight<0&&(this._hoverPosition=2):this._hoverPosition===2&&e.bottom+this._hover.containerDomNode.clientHeight>this._targetWindow.innerHeight&&(this._hoverPosition=3))}adjustHoverMaxHeight(e){let t=this._targetWindow.innerHeight/2;if(this._forcePosition){const i=(this._hoverPointer?3:0)+2;this._hoverPosition===3?t=Math.min(t,e.top-i):this._hoverPosition===2&&(t=Math.min(t,this._targetWindow.innerHeight-e.bottom-i))}if(this._hover.containerDomNode.style.maxHeight=`${t}px`,this._hover.contentsDomNode.clientHeighte.height?this._hoverPointer.style.top=`${e.center.y-(this._y-t)-3}px`:this._hoverPointer.style.top=`${Math.round(t/2)-3}px`;break}case 3:case 2:{this._hoverPointer.classList.add(this._hoverPosition===3?"bottom":"top");const t=this._hover.containerDomNode.clientWidth;let i=Math.round(t/2)-3;const r=this._x+i;(re.right)&&(i=e.center.x-this._x-3),this._hoverPointer.style.left=`${i}px`;break}}}focus(){this._hover.containerDomNode.focus()}dispose(){this._isDisposed||(this._onDispose.fire(),this._hoverContainer.remove(),this._messageListeners.dispose(),this._target.dispose(),super.dispose()),this._isDisposed=!0}};dQ=sEt([iN(1,Pi),iN(2,Xn),iN(3,Rl),iN(4,tn),iN(5,vd)],dQ);class gFe extends Pu{get onMouseOut(){return this._onMouseOut.event}get isMouseIn(){return this._isMouseIn}constructor(e){super(),this._elements=e,this._isMouseIn=!0,this._onMouseOut=this._register(new be),this._elements.forEach(t=>this.onmouseover(t,()=>this._onTargetMouseOver(t))),this._elements.forEach(t=>this.onmouseleave(t,()=>this._onTargetMouseLeave(t)))}_onTargetMouseOver(e){this._isMouseIn=!0,this._clearEvaluateMouseStateTimeout(e)}_onTargetMouseLeave(e){this._isMouseIn=!1,this._evaluateMouseState(e)}_evaluateMouseState(e){this._clearEvaluateMouseStateTimeout(e),this._mouseTimeout=qt(e).setTimeout(()=>this._fireIfMouseOutside(),0)}_clearEvaluateMouseStateTimeout(e){this._mouseTimeout&&(qt(e).clearTimeout(this._mouseTimeout),this._mouseTimeout=void 0)}_fireIfMouseOutside(){this._isMouseIn||this._onMouseOut.fire()}}class aEt{constructor(e){this._element=e,this.targetElements=[this._element]}dispose(){}}var lEt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},hS=function(n,e){return function(t,i){e(t,i,n)}};let hQ=class{constructor(e,t,i,r,o,s){this._instantiationService=e,this._contextViewService=t,this._keybindingService=r,this._layoutService=o,this._accessibilityService=s,i.onDidShowContextMenu(()=>this.hideHover())}showHover(e,t,i){var r,o,s,a;if(mFe(this._currentHoverOptions)===mFe(e)||this._currentHover&&(!((o=(r=this._currentHoverOptions)===null||r===void 0?void 0:r.persistence)===null||o===void 0)&&o.sticky))return;this._currentHoverOptions=e,this._lastHoverOptions=e;const l=e.trapFocus||this._accessibilityService.isScreenReaderOptimized(),u=Ys();i||(l&&u?this._lastFocusedElementBeforeOpen=u:this._lastFocusedElementBeforeOpen=void 0);const c=new je,d=this._instantiationService.createInstance(dQ,e);if(!((s=e.persistence)===null||s===void 0)&&s.sticky&&(d.isLocked=!0),d.onDispose(()=>{var g,m;((g=this._currentHover)===null||g===void 0?void 0:g.domNode)&&Jbe(this._currentHover.domNode)&&((m=this._lastFocusedElementBeforeOpen)===null||m===void 0||m.focus()),this._currentHoverOptions===e&&(this._currentHoverOptions=void 0),c.dispose()}),!e.container){const g=e.target instanceof HTMLElement?e.target:e.target.targetElements[0];e.container=this._layoutService.getContainer(qt(g))}const h=this._contextViewService;if(h.showContextView(new uEt(d,t),e.container),d.onRequestLayout(()=>h.layout()),!((a=e.persistence)===null||a===void 0)&&a.sticky)c.add(Ve(qt(e.container).document,at.MOUSE_DOWN,g=>{xs(g.target,d.domNode)||this.doHideHover()}));else{if("targetElements"in e.target)for(const m of e.target.targetElements)c.add(Ve(m,at.CLICK,()=>this.hideHover()));else c.add(Ve(e.target,at.CLICK,()=>this.hideHover()));const g=Ys();if(g){const m=qt(g).document;c.add(Ve(g,at.KEY_DOWN,f=>{var b;return this._keyDown(f,d,!!(!((b=e.persistence)===null||b===void 0)&&b.hideOnKeyDown))})),c.add(Ve(m,at.KEY_DOWN,f=>{var b;return this._keyDown(f,d,!!(!((b=e.persistence)===null||b===void 0)&&b.hideOnKeyDown))})),c.add(Ve(g,at.KEY_UP,f=>this._keyUp(f,d))),c.add(Ve(m,at.KEY_UP,f=>this._keyUp(f,d)))}}if("IntersectionObserver"in Wi){const g=new IntersectionObserver(f=>this._intersectionChange(f,d),{threshold:0}),m="targetElements"in e.target?e.target.targetElements[0]:e.target;g.observe(m),c.add(en(()=>g.disconnect()))}return this._currentHover=d,d}hideHover(){var e;!((e=this._currentHover)===null||e===void 0)&&e.isLocked||!this._currentHoverOptions||this.doHideHover()}doHideHover(){this._currentHover=void 0,this._currentHoverOptions=void 0,this._contextViewService.hideContextView()}_intersectionChange(e,t){e[e.length-1].isIntersecting||t.dispose()}_keyDown(e,t,i){var r,o;if(e.key==="Alt"){t.isLocked=!0;return}const s=new nr(e);this._keybindingService.resolveKeyboardEvent(s).getSingleModifierDispatchChords().some(l=>!!l)||this._keybindingService.softDispatch(s,s.target).kind!==0||i&&(!(!((r=this._currentHoverOptions)===null||r===void 0)&&r.trapFocus)||e.key!=="Tab")&&(this.hideHover(),(o=this._lastFocusedElementBeforeOpen)===null||o===void 0||o.focus())}_keyUp(e,t){var i;e.key==="Alt"&&(t.isLocked=!1,t.isMouseIn||(this.hideHover(),(i=this._lastFocusedElementBeforeOpen)===null||i===void 0||i.focus()))}};hQ=lEt([hS(0,tn),hS(1,hm),hS(2,hu),hS(3,Pi),hS(4,qv),hS(5,vd)],hQ);function mFe(n){var e;if(n!==void 0)return(e=n==null?void 0:n.id)!==null&&e!==void 0?e:n}class uEt{get anchorPosition(){return this._hover.anchor}constructor(e,t=!1){this._hover=e,this._focus=t}render(e){return this._hover.render(e),this._focus&&this._hover.focus(),this._hover}getAnchor(){return{x:this._hover.x,y:this._hover.y}}layout(){this._hover.layout()}}ti(cQ,hQ,1),kc((n,e)=>{const t=n.getColor(I1e);t&&(e.addRule(`.monaco-workbench .workbench-hover .hover-row:not(:first-child):not(:empty) { border-top: 1px solid ${t.transparent(.5)}; }`),e.addRule(`.monaco-workbench .workbench-hover hr { border-top: 1px solid ${t.transparent(.5)}; }`))});function Q3(n){return Object.isFrozen(n)?n:Tft(n)}class qs{constructor(e={},t=[],i=[],r){this._contents=e,this._keys=t,this._overrides=i,this.raw=r,this.overrideConfigurations=new Map}get rawConfiguration(){var e;if(!this._rawConfiguration)if(!((e=this.raw)===null||e===void 0)&&e.length){const t=this.raw.map(i=>{if(i instanceof qs)return i;const r=new cEt("");return r.parseRaw(i),r.configurationModel});this._rawConfiguration=t.reduce((i,r)=>r===i?r:i.merge(r),t[0])}else this._rawConfiguration=this;return this._rawConfiguration}get contents(){return this._contents}get overrides(){return this._overrides}get keys(){return this._keys}isEmpty(){return this._keys.length===0&&Object.keys(this._contents).length===0&&this._overrides.length===0}getValue(e){return e?V0e(this.contents,e):this.contents}inspect(e,t){const i=this;return{get value(){return Q3(i.rawConfiguration.getValue(e))},get override(){return t?Q3(i.rawConfiguration.getOverrideValue(e,t)):void 0},get merged(){return Q3(t?i.rawConfiguration.override(t).getValue(e):i.rawConfiguration.getValue(e))},get overrides(){const r=[];for(const{contents:o,identifiers:s,keys:a}of i.rawConfiguration.overrides){const l=new qs(o,a).getValue(e);l!==void 0&&r.push({identifiers:s,value:l})}return r.length?Q3(r):void 0}}}getOverrideValue(e,t){const i=this.getContentsForOverrideIdentifer(t);return i?e?V0e(i,e):i:void 0}override(e){let t=this.overrideConfigurations.get(e);return t||(t=this.createOverrideConfigurationModel(e),this.overrideConfigurations.set(e,t)),t}merge(...e){var t,i;const r=Ff(this.contents),o=Ff(this.overrides),s=[...this.keys],a=!((t=this.raw)===null||t===void 0)&&t.length?[...this.raw]:[this];for(const l of e)if(a.push(...!((i=l.raw)===null||i===void 0)&&i.length?l.raw:[l]),!l.isEmpty()){this.mergeContents(r,l.contents);for(const u of l.overrides){const[c]=o.filter(d=>Ar(d.identifiers,u.identifiers));c?(this.mergeContents(c.contents,u.contents),c.keys.push(...u.keys),c.keys=Sf(c.keys)):o.push(Ff(u))}for(const u of l.keys)s.indexOf(u)===-1&&s.push(u)}return new qs(r,s,o,a.every(l=>l instanceof qs)?void 0:a)}createOverrideConfigurationModel(e){const t=this.getContentsForOverrideIdentifer(e);if(!t||typeof t!="object"||!Object.keys(t).length)return this;const i={};for(const r of Sf([...Object.keys(this.contents),...Object.keys(t)])){let o=this.contents[r];const s=t[r];s&&(typeof o=="object"&&typeof s=="object"?(o=Ff(o),this.mergeContents(o,s)):o=s),i[r]=o}return new qs(i,this.keys,this.overrides)}mergeContents(e,t){for(const i of Object.keys(t)){if(i in e&&za(e[i])&&za(t[i])){this.mergeContents(e[i],t[i]);continue}e[i]=Ff(t[i])}}getContentsForOverrideIdentifer(e){let t=null,i=null;const r=o=>{o&&(i?this.mergeContents(i,o):i=Ff(o))};for(const o of this.overrides)o.identifiers.length===1&&o.identifiers[0]===e?t=o.contents:o.identifiers.includes(e)&&r(o.contents);return r(t),i}toJSON(){return{contents:this.contents,overrides:this.overrides,keys:this.keys}}addValue(e,t){this.updateValue(e,t,!0)}setValue(e,t){this.updateValue(e,t,!1)}removeValue(e){const t=this.keys.indexOf(e);t!==-1&&(this.keys.splice(t,1),rft(this.contents,e),kb.test(e)&&this.overrides.splice(this.overrides.findIndex(i=>Ar(i.identifiers,lT(e))),1))}updateValue(e,t,i){R0e(this.contents,e,t,r=>{}),i=i||this.keys.indexOf(e)===-1,i&&this.keys.push(e),kb.test(e)&&this.overrides.push({identifiers:lT(e),keys:Object.keys(this.contents[e]),contents:vH(this.contents[e],r=>{})})}}class cEt{constructor(e){this._name=e,this._raw=null,this._configurationModel=null,this._restrictedConfigurations=[]}get configurationModel(){return this._configurationModel||new qs}parseRaw(e,t){this._raw=e;const{contents:i,keys:r,overrides:o,restricted:s,hasExcludedProperties:a}=this.doParseRaw(e,t);this._configurationModel=new qs(i,r,o,a?[e]:void 0),this._restrictedConfigurations=s||[]}doParseRaw(e,t){const i=xo.as(Ih.Configuration).getConfigurationProperties(),r=this.filter(e,i,!0,t);e=r.raw;const o=vH(e,l=>{}),s=Object.keys(e),a=this.toOverrides(e,l=>{});return{contents:o,keys:s,overrides:a,restricted:r.restricted,hasExcludedProperties:r.hasExcludedProperties}}filter(e,t,i,r){var o,s,a;let l=!1;if(!(r!=null&&r.scopes)&&!(r!=null&&r.skipRestricted)&&!(!((o=r==null?void 0:r.exclude)===null||o===void 0)&&o.length))return{raw:e,restricted:[],hasExcludedProperties:l};const u={},c=[];for(const d in e)if(kb.test(d)&&i){const h=this.filter(e[d],t,!1,r);u[d]=h.raw,l=l||h.hasExcludedProperties,c.push(...h.restricted)}else{const h=t[d],g=h?typeof h.scope<"u"?h.scope:3:void 0;h!=null&&h.restricted&&c.push(d),!(!((s=r.exclude)===null||s===void 0)&&s.includes(d))&&(!((a=r.include)===null||a===void 0)&&a.includes(d)||(g===void 0||r.scopes===void 0||r.scopes.includes(g))&&!(r.skipRestricted&&(h!=null&&h.restricted)))?u[d]=e[d]:l=!0}return{raw:u,restricted:c,hasExcludedProperties:l}}toOverrides(e,t){const i=[];for(const r of Object.keys(e))if(kb.test(r)){const o={};for(const s in e[r])o[s]=e[r][s];i.push({identifiers:lT(r),keys:Object.keys(o),contents:vH(o,t)})}return i}}class dEt{constructor(e,t,i,r,o,s,a,l,u,c,d,h,g){this.key=e,this.overrides=t,this._value=i,this.overrideIdentifiers=r,this.defaultConfiguration=o,this.policyConfiguration=s,this.applicationConfiguration=a,this.userConfiguration=l,this.localUserConfiguration=u,this.remoteUserConfiguration=c,this.workspaceConfiguration=d,this.folderConfigurationModel=h,this.memoryConfigurationModel=g}toInspectValue(e){return(e==null?void 0:e.value)!==void 0||(e==null?void 0:e.override)!==void 0||(e==null?void 0:e.overrides)!==void 0?e:void 0}get userInspectValue(){return this._userInspectValue||(this._userInspectValue=this.userConfiguration.inspect(this.key,this.overrides.overrideIdentifier)),this._userInspectValue}get user(){return this.toInspectValue(this.userInspectValue)}}class $3{constructor(e,t,i,r,o=new qs,s=new qs,a=new no,l=new qs,u=new no){this._defaultConfiguration=e,this._policyConfiguration=t,this._applicationConfiguration=i,this._localUserConfiguration=r,this._remoteUserConfiguration=o,this._workspaceConfiguration=s,this._folderConfigurations=a,this._memoryConfiguration=l,this._memoryConfigurationByResource=u,this._workspaceConsolidatedConfiguration=null,this._foldersConsolidatedConfigurations=new no,this._userConfiguration=null}getValue(e,t,i){return this.getConsolidatedConfigurationModel(e,t,i).getValue(e)}updateValue(e,t,i={}){let r;i.resource?(r=this._memoryConfigurationByResource.get(i.resource),r||(r=new qs,this._memoryConfigurationByResource.set(i.resource,r))):r=this._memoryConfiguration,t===void 0?r.removeValue(e):r.setValue(e,t),i.resource||(this._workspaceConsolidatedConfiguration=null)}inspect(e,t,i){const r=this.getConsolidatedConfigurationModel(e,t,i),o=this.getFolderConfigurationModelForResource(t.resource,i),s=t.resource?this._memoryConfigurationByResource.get(t.resource)||this._memoryConfiguration:this._memoryConfiguration,a=new Set;for(const l of r.overrides)for(const u of l.identifiers)r.getOverrideValue(e,u)!==void 0&&a.add(u);return new dEt(e,t,r.getValue(e),a.size?[...a]:void 0,this._defaultConfiguration,this._policyConfiguration.isEmpty()?void 0:this._policyConfiguration,this.applicationConfiguration.isEmpty()?void 0:this.applicationConfiguration,this.userConfiguration,this.localUserConfiguration,this.remoteUserConfiguration,i?this._workspaceConfiguration:void 0,o||void 0,s)}get applicationConfiguration(){return this._applicationConfiguration}get userConfiguration(){return this._userConfiguration||(this._userConfiguration=this._remoteUserConfiguration.isEmpty()?this._localUserConfiguration:this._localUserConfiguration.merge(this._remoteUserConfiguration)),this._userConfiguration}get localUserConfiguration(){return this._localUserConfiguration}get remoteUserConfiguration(){return this._remoteUserConfiguration}getConsolidatedConfigurationModel(e,t,i){let r=this.getConsolidatedConfigurationModelForResource(t,i);return t.overrideIdentifier&&(r=r.override(t.overrideIdentifier)),!this._policyConfiguration.isEmpty()&&this._policyConfiguration.getValue(e)!==void 0&&(r=r.merge(this._policyConfiguration)),r}getConsolidatedConfigurationModelForResource({resource:e},t){let i=this.getWorkspaceConsolidatedConfiguration();if(t&&e){const r=t.getFolder(e);r&&(i=this.getFolderConsolidatedConfiguration(r.uri)||i);const o=this._memoryConfigurationByResource.get(e);o&&(i=i.merge(o))}return i}getWorkspaceConsolidatedConfiguration(){return this._workspaceConsolidatedConfiguration||(this._workspaceConsolidatedConfiguration=this._defaultConfiguration.merge(this.applicationConfiguration,this.userConfiguration,this._workspaceConfiguration,this._memoryConfiguration)),this._workspaceConsolidatedConfiguration}getFolderConsolidatedConfiguration(e){let t=this._foldersConsolidatedConfigurations.get(e);if(!t){const i=this.getWorkspaceConsolidatedConfiguration(),r=this._folderConfigurations.get(e);r?(t=i.merge(r),this._foldersConsolidatedConfigurations.set(e,t)):t=i}return t}getFolderConfigurationModelForResource(e,t){if(t&&e){const i=t.getFolder(e);if(i)return this._folderConfigurations.get(i.uri)}}toData(){return{defaults:{contents:this._defaultConfiguration.contents,overrides:this._defaultConfiguration.overrides,keys:this._defaultConfiguration.keys},policy:{contents:this._policyConfiguration.contents,overrides:this._policyConfiguration.overrides,keys:this._policyConfiguration.keys},application:{contents:this.applicationConfiguration.contents,overrides:this.applicationConfiguration.overrides,keys:this.applicationConfiguration.keys},user:{contents:this.userConfiguration.contents,overrides:this.userConfiguration.overrides,keys:this.userConfiguration.keys},workspace:{contents:this._workspaceConfiguration.contents,overrides:this._workspaceConfiguration.overrides,keys:this._workspaceConfiguration.keys},folders:[...this._folderConfigurations.keys()].reduce((e,t)=>{const{contents:i,overrides:r,keys:o}=this._folderConfigurations.get(t);return e.push([t,{contents:i,overrides:r,keys:o}]),e},[])}}static parse(e){const t=this.parseConfigurationModel(e.defaults),i=this.parseConfigurationModel(e.policy),r=this.parseConfigurationModel(e.application),o=this.parseConfigurationModel(e.user),s=this.parseConfigurationModel(e.workspace),a=e.folders.reduce((l,u)=>(l.set($t.revive(u[0]),this.parseConfigurationModel(u[1])),l),new no);return new $3(t,i,r,o,new qs,s,a,new qs,new no)}static parseConfigurationModel(e){return new qs(e.contents,e.keys,e.overrides)}}class hEt{constructor(e,t,i,r){this.change=e,this.previous=t,this.currentConfiguraiton=i,this.currentWorkspace=r,this._marker=` +`,this._markerCode1=this._marker.charCodeAt(0),this._markerCode2=46,this.affectedKeys=new Set,this._previousConfiguration=void 0;for(const o of e.keys)this.affectedKeys.add(o);for(const[,o]of e.overrides)for(const s of o)this.affectedKeys.add(s);this._affectsConfigStr=this._marker;for(const o of this.affectedKeys)this._affectsConfigStr+=o+this._marker}get previousConfiguration(){return!this._previousConfiguration&&this.previous&&(this._previousConfiguration=$3.parse(this.previous.data)),this._previousConfiguration}affectsConfiguration(e,t){var i;const r=this._marker+e,o=this._affectsConfigStr.indexOf(r);if(o<0)return!1;const s=o+r.length;if(s>=this._affectsConfigStr.length)return!1;const a=this._affectsConfigStr.charCodeAt(s);if(a!==this._markerCode1&&a!==this._markerCode2)return!1;if(t){const l=this.previousConfiguration?this.previousConfiguration.getValue(e,t,(i=this.previous)===null||i===void 0?void 0:i.workspace):void 0,u=this.currentConfiguraiton.getValue(e,t,this.currentWorkspace);return!Gu(l,u)}return!0}}const q3={kind:0},gEt={kind:1};function mEt(n,e,t){return{kind:2,commandId:n,commandArgs:e,isBubble:t}}class rN{constructor(e,t,i){var r;this._log=i,this._defaultKeybindings=e,this._defaultBoundCommands=new Map;for(const o of e){const s=o.command;s&&s.charAt(0)!=="-"&&this._defaultBoundCommands.set(s,!0)}this._map=new Map,this._lookupMap=new Map,this._keybindings=rN.handleRemovals([].concat(e).concat(t));for(let o=0,s=this._keybindings.length;o"u"){this._map.set(e,[t]),this._addToLookupMap(t);return}for(let r=i.length-1;r>=0;r--){const o=i[r];if(o.command===t.command)continue;let s=!0;for(let a=1;a"u"?(t=[e],this._lookupMap.set(e.command,t)):t.push(e)}_removeFromLookupMap(e){if(!e.command)return;const t=this._lookupMap.get(e.command);if(!(typeof t>"u")){for(let i=0,r=t.length;i"u"||i.length===0)return null;if(i.length===1)return i[0];for(let r=i.length-1;r>=0;r--){const o=i[r];if(t.contextMatchesRules(o.when))return o}return i[i.length-1]}resolve(e,t,i){const r=[...t,i];this._log(`| Resolving ${r}`);const o=this._map.get(r[0]);if(o===void 0)return this._log("\\ No keybinding entries."),q3;let s=null;if(r.length<2)s=o;else{s=[];for(let l=0,u=o.length;lc.chords.length)continue;let d=!0;for(let h=1;h=0;i--){const r=t[i];if(rN._contextMatchesRules(e,r.when))return r}return null}static _contextMatchesRules(e,t){return t?t.evaluate(e):!0}}function fFe(n){return n?`${n.serialize()}`:"no when condition"}function pFe(n){return n.extensionId?n.isBuiltinExtension?`built-in extension ${n.extensionId}`:`user extension ${n.extensionId}`:n.isDefault?"built-in":"user"}const fEt=/^(cursor|delete|undo|redo|tab|editor\.action\.clipboard)/;class pEt extends De{get onDidUpdateKeybindings(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:ft.None}get inChordMode(){return this._currentChords.length>0}constructor(e,t,i,r,o){super(),this._contextKeyService=e,this._commandService=t,this._telemetryService=i,this._notificationService=r,this._logService=o,this._onDidUpdateKeybindings=this._register(new be),this._currentChords=[],this._currentChordChecker=new cY,this._currentChordStatusMessage=null,this._ignoreSingleModifiers=gS.EMPTY,this._currentSingleModifier=null,this._currentSingleModifierClearTimeout=new md,this._currentlyDispatchingCommandId=null,this._logging=!1}dispose(){super.dispose()}_log(e){this._logging&&this._logService.info(`[KeybindingService]: ${e}`)}getKeybindings(){return this._getResolver().getKeybindings()}lookupKeybinding(e,t){const i=this._getResolver().lookupPrimaryKeybinding(e,t||this._contextKeyService);if(i)return i.resolvedKeybinding}dispatchEvent(e,t){return this._dispatch(e,t)}softDispatch(e,t){this._log("/ Soft dispatching keyboard event");const i=this.resolveKeyboardEvent(e);if(i.hasMultipleChords())return q3;const[r]=i.getDispatchChords();if(r===null)return this._log("\\ Keyboard event cannot be dispatched"),q3;const o=this._contextKeyService.getContext(t),s=this._currentChords.map(({keypress:a})=>a);return this._getResolver().resolve(o,s,r)}_scheduleLeaveChordMode(){const e=Date.now();this._currentChordChecker.cancelAndSet(()=>{if(!this._documentHasFocus()){this._leaveChordMode();return}Date.now()-e>5e3&&this._leaveChordMode()},500)}_expectAnotherChord(e,t){switch(this._currentChords.push({keypress:e,label:t}),this._currentChords.length){case 0:throw eY("impossible");case 1:this._currentChordStatusMessage=this._notificationService.status(x("first.chord","({0}) was pressed. Waiting for second key of chord...",t));break;default:{const i=this._currentChords.map(({label:r})=>r).join(", ");this._currentChordStatusMessage=this._notificationService.status(x("next.chord","({0}) was pressed. Waiting for next key of chord...",i))}}this._scheduleLeaveChordMode(),S_.enabled&&S_.disable()}_leaveChordMode(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),this._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChords=[],S_.enable()}_dispatch(e,t){return this._doDispatch(this.resolveKeyboardEvent(e),t,!1)}_singleModifierDispatch(e,t){const i=this.resolveKeyboardEvent(e),[r]=i.getSingleModifierDispatchChords();if(r)return this._ignoreSingleModifiers.has(r)?(this._log(`+ Ignoring single modifier ${r} due to it being pressed together with other keys.`),this._ignoreSingleModifiers=gS.EMPTY,this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1):(this._ignoreSingleModifiers=gS.EMPTY,this._currentSingleModifier===null?(this._log(`+ Storing single modifier for possible chord ${r}.`),this._currentSingleModifier=r,this._currentSingleModifierClearTimeout.cancelAndSet(()=>{this._log("+ Clearing single modifier due to 300ms elapsed."),this._currentSingleModifier=null},300),!1):r===this._currentSingleModifier?(this._log(`/ Dispatching single modifier chord ${r} ${r}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,this._doDispatch(i,t,!0)):(this._log(`+ Clearing single modifier due to modifier mismatch: ${this._currentSingleModifier} ${r}`),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1));const[o]=i.getChords();return this._ignoreSingleModifiers=new gS(o),this._currentSingleModifier!==null&&this._log("+ Clearing single modifier due to other key up."),this._currentSingleModifierClearTimeout.cancel(),this._currentSingleModifier=null,!1}_doDispatch(e,t,i=!1){var r;let o=!1;if(e.hasMultipleChords())return!1;let s=null,a=null;if(i){const[d]=e.getSingleModifierDispatchChords();s=d,a=d?[d]:[]}else[s]=e.getDispatchChords(),a=this._currentChords.map(({keypress:d})=>d);if(s===null)return this._log("\\ Keyboard event cannot be dispatched in keydown phase."),o;const l=this._contextKeyService.getContext(t),u=e.getLabel(),c=this._getResolver().resolve(l,a,s);switch(c.kind){case 0:{if(this._logService.trace("KeybindingService#dispatch",u,"[ No matching keybinding ]"),this.inChordMode){const d=this._currentChords.map(({label:h})=>h).join(", ");this._log(`+ Leaving multi-chord mode: Nothing bound to "${d}, ${u}".`),this._notificationService.status(x("missing.chord","The key combination ({0}, {1}) is not a command.",d,u),{hideAfter:10*1e3}),this._leaveChordMode(),o=!0}return o}case 1:return this._logService.trace("KeybindingService#dispatch",u,"[ Several keybindings match - more chords needed ]"),o=!0,this._expectAnotherChord(s,u),this._log(this._currentChords.length===1?"+ Entering multi-chord mode...":"+ Continuing multi-chord mode..."),o;case 2:{if(this._logService.trace("KeybindingService#dispatch",u,`[ Will dispatch command ${c.commandId} ]`),c.commandId===null||c.commandId===""){if(this.inChordMode){const d=this._currentChords.map(({label:h})=>h).join(", ");this._log(`+ Leaving chord mode: Nothing bound to "${d}, ${u}".`),this._notificationService.status(x("missing.chord","The key combination ({0}, {1}) is not a command.",d,u),{hideAfter:10*1e3}),this._leaveChordMode(),o=!0}}else{this.inChordMode&&this._leaveChordMode(),c.isBubble||(o=!0),this._log(`+ Invoking command ${c.commandId}.`),this._currentlyDispatchingCommandId=c.commandId;try{typeof c.commandArgs>"u"?this._commandService.executeCommand(c.commandId).then(void 0,d=>this._notificationService.warn(d)):this._commandService.executeCommand(c.commandId,c.commandArgs).then(void 0,d=>this._notificationService.warn(d))}finally{this._currentlyDispatchingCommandId=null}fEt.test(c.commandId)||this._telemetryService.publicLog2("workbenchActionExecuted",{id:c.commandId,from:"keybinding",detail:(r=e.getUserSettingsLabel())!==null&&r!==void 0?r:void 0})}return o}}}mightProducePrintableCharacter(e){return e.ctrlKey||e.metaKey?!1:e.keyCode>=31&&e.keyCode<=56||e.keyCode>=21&&e.keyCode<=30}}class gS{constructor(e){this._ctrlKey=e?e.ctrlKey:!1,this._shiftKey=e?e.shiftKey:!1,this._altKey=e?e.altKey:!1,this._metaKey=e?e.metaKey:!1}has(e){switch(e){case"ctrl":return this._ctrlKey;case"shift":return this._shiftKey;case"alt":return this._altKey;case"meta":return this._metaKey}}}gS.EMPTY=new gS(null);class bFe{constructor(e,t,i,r,o,s,a){this._resolvedKeybindingItemBrand=void 0,this.resolvedKeybinding=e,this.chords=e?gQ(e.getDispatchChords()):[],e&&this.chords.length===0&&(this.chords=gQ(e.getSingleModifierDispatchChords())),this.bubble=t?t.charCodeAt(0)===94:!1,this.command=this.bubble?t.substr(1):t,this.commandArgs=i,this.when=r,this.isDefault=o,this.extensionId=s,this.isBuiltinExtension=a}}function gQ(n){const e=[];for(let t=0,i=n.length;tthis._getLabel(e))}getAriaLabel(){return CLt.toLabel(this._os,this._chords,e=>this._getAriaLabel(e))}getElectronAccelerator(){return this._chords.length>1||this._chords[0].isDuplicateModifierCase()?null:vLt.toLabel(this._os,this._chords,e=>this._getElectronAccelerator(e))}getUserSettingsLabel(){return yLt.toLabel(this._os,this._chords,e=>this._getUserSettingsLabel(e))}hasMultipleChords(){return this._chords.length>1}getChords(){return this._chords.map(e=>this._getChord(e))}_getChord(e){return new Jdt(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,this._getLabel(e),this._getAriaLabel(e))}getDispatchChords(){return this._chords.map(e=>this._getChordDispatch(e))}getSingleModifierDispatchChords(){return this._chords.map(e=>this._getSingleModifierChordDispatch(e))}}class oN extends bEt{constructor(e,t){super(t,e)}_keyCodeToUILabel(e){if(this._os===2)switch(e){case 15:return"←";case 16:return"↑";case 17:return"→";case 18:return"↓"}return gf.toString(e)}_getLabel(e){return e.isDuplicateModifierCase()?"":this._keyCodeToUILabel(e.keyCode)}_getAriaLabel(e){return e.isDuplicateModifierCase()?"":gf.toString(e.keyCode)}_getElectronAccelerator(e){return gf.toElectronAccelerator(e.keyCode)}_getUserSettingsLabel(e){if(e.isDuplicateModifierCase())return"";const t=gf.toUserSettingsUS(e.keyCode);return t&&t.toLowerCase()}_getChordDispatch(e){return oN.getDispatchStr(e)}static getDispatchStr(e){if(e.isModifierKey())return null;let t="";return e.ctrlKey&&(t+="ctrl+"),e.shiftKey&&(t+="shift+"),e.altKey&&(t+="alt+"),e.metaKey&&(t+="meta+"),t+=gf.toString(e.keyCode),t}_getSingleModifierChordDispatch(e){return e.keyCode===5&&!e.shiftKey&&!e.altKey&&!e.metaKey?"ctrl":e.keyCode===4&&!e.ctrlKey&&!e.altKey&&!e.metaKey?"shift":e.keyCode===6&&!e.ctrlKey&&!e.shiftKey&&!e.metaKey?"alt":e.keyCode===57&&!e.ctrlKey&&!e.shiftKey&&!e.altKey?"meta":null}static _scanCodeToKeyCode(e){const t=qz[e];if(t!==-1)return t;switch(e){case 10:return 31;case 11:return 32;case 12:return 33;case 13:return 34;case 14:return 35;case 15:return 36;case 16:return 37;case 17:return 38;case 18:return 39;case 19:return 40;case 20:return 41;case 21:return 42;case 22:return 43;case 23:return 44;case 24:return 45;case 25:return 46;case 26:return 47;case 27:return 48;case 28:return 49;case 29:return 50;case 30:return 51;case 31:return 52;case 32:return 53;case 33:return 54;case 34:return 55;case 35:return 56;case 36:return 22;case 37:return 23;case 38:return 24;case 39:return 25;case 40:return 26;case 41:return 27;case 42:return 28;case 43:return 29;case 44:return 30;case 45:return 21;case 51:return 88;case 52:return 86;case 53:return 92;case 54:return 94;case 55:return 93;case 56:return 0;case 57:return 85;case 58:return 95;case 59:return 91;case 60:return 87;case 61:return 89;case 62:return 90;case 106:return 97}return 0}static _toKeyCodeChord(e){if(!e)return null;if(e instanceof mf)return e;const t=this._scanCodeToKeyCode(e.scanCode);return t===0?null:new mf(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,t)}static resolveKeybinding(e,t){const i=gQ(e.chords.map(r=>this._toKeyCodeChord(r)));return i.length>0?[new oN(i,t)]:[]}}function CEt(n){const e=n;return!!e&&typeof e.x=="number"&&typeof e.y=="number"}var e1;(function(n){n[n.AVOID=0]="AVOID",n[n.ALIGN=1]="ALIGN"})(e1||(e1={}));function mS(n,e,t){const i=t.mode===e1.ALIGN?t.offset:t.offset+t.size,r=t.mode===e1.ALIGN?t.offset+t.size:t.offset;return t.position===0?e<=n-i?i:e<=r?r-e:Math.max(n-e,0):e<=r?r-e:e<=n-i?i:0}class fS extends De{constructor(e,t){super(),this.container=null,this.useFixedPosition=!1,this.useShadowDOM=!1,this.delegate=null,this.toDisposeOnClean=De.None,this.toDisposeOnSetContainer=De.None,this.shadowRoot=null,this.shadowRootHostElement=null,this.view=vt(".context-view"),Ka(this.view),this.setContainer(e,t),this._register(en(()=>this.setContainer(null,1)))}setContainer(e,t){var i;this.useFixedPosition=t!==1;const r=this.useShadowDOM;if(this.useShadowDOM=t===3,!(e===this.container&&r===this.useShadowDOM)&&(this.container&&(this.toDisposeOnSetContainer.dispose(),this.shadowRoot?(this.shadowRoot.removeChild(this.view),this.shadowRoot=null,(i=this.shadowRootHostElement)===null||i===void 0||i.remove(),this.shadowRootHostElement=null):this.container.removeChild(this.view),this.container=null),e)){if(this.container=e,this.useShadowDOM){this.shadowRootHostElement=vt(".shadow-root-host"),this.container.appendChild(this.shadowRootHostElement),this.shadowRoot=this.shadowRootHostElement.attachShadow({mode:"open"});const s=document.createElement("style");s.textContent=vEt,this.shadowRoot.appendChild(s),this.shadowRoot.appendChild(this.view),this.shadowRoot.appendChild(vt("slot"))}else this.container.appendChild(this.view);const o=new je;fS.BUBBLE_UP_EVENTS.forEach(s=>{o.add(Gr(this.container,s,a=>{this.onDOMEvent(a,!1)}))}),fS.BUBBLE_DOWN_EVENTS.forEach(s=>{o.add(Gr(this.container,s,a=>{this.onDOMEvent(a,!0)},!0))}),this.toDisposeOnSetContainer=o}}show(e){var t,i;this.isVisible()&&this.hide(),la(this.view),this.view.className="context-view",this.view.style.top="0px",this.view.style.left="0px",this.view.style.zIndex="2575",this.view.style.position=this.useFixedPosition?"fixed":"absolute",ru(this.view),this.toDisposeOnClean=e.render(this.view)||De.None,this.delegate=e,this.doLayout(),(i=(t=this.delegate).focus)===null||i===void 0||i.call(t)}getViewElement(){return this.view}layout(){var e,t;if(this.isVisible()){if(this.delegate.canRelayout===!1&&!(Dg&&Kz.pointerEvents)){this.hide();return}(t=(e=this.delegate)===null||e===void 0?void 0:e.layout)===null||t===void 0||t.call(e),this.doLayout()}}doLayout(){if(!this.isVisible())return;const e=this.delegate.getAnchor();let t;if(e instanceof HTMLElement){const h=go(e),g=Hbe(e);t={top:h.top*g,left:h.left*g,width:h.width*g,height:h.height*g}}else CEt(e)?t={top:e.y,left:e.x,width:e.width||1,height:e.height||2}:t={top:e.posy,left:e.posx,width:2,height:2};const i=Ja(this.view),r=bf(this.view),o=this.delegate.anchorPosition||0,s=this.delegate.anchorAlignment||0,a=this.delegate.anchorAxisAlignment||0;let l,u;const c=Rgt();if(a===0){const h={offset:t.top-c.pageYOffset,size:t.height,position:o===0?0:1},g={offset:t.left,size:t.width,position:s===0?0:1,mode:e1.ALIGN};l=mS(c.innerHeight,r,h)+c.pageYOffset,ma.intersects({start:l,end:l+r},{start:h.offset,end:h.offset+h.size})&&(g.mode=e1.AVOID),u=mS(c.innerWidth,i,g)}else{const h={offset:t.left,size:t.width,position:s===0?0:1},g={offset:t.top,size:t.height,position:o===0?0:1,mode:e1.ALIGN};u=mS(c.innerWidth,i,h),ma.intersects({start:u,end:u+i},{start:h.offset,end:h.offset+h.size})&&(g.mode=e1.AVOID),l=mS(c.innerHeight,r,g)+c.pageYOffset}this.view.classList.remove("top","bottom","left","right"),this.view.classList.add(o===0?"bottom":"top"),this.view.classList.add(s===0?"left":"right"),this.view.classList.toggle("fixed",this.useFixedPosition);const d=go(this.container);this.view.style.top=`${l-(this.useFixedPosition?go(this.view).top:d.top)}px`,this.view.style.left=`${u-(this.useFixedPosition?go(this.view).left:d.left)}px`,this.view.style.width="initial"}hide(e){const t=this.delegate;this.delegate=null,t!=null&&t.onHide&&t.onHide(e),this.toDisposeOnClean.dispose(),Ka(this.view)}isVisible(){return!!this.delegate}onDOMEvent(e,t){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(e,qt(e).document.activeElement):t&&!xs(e.target,this.container)&&this.hide())}dispose(){this.hide(),super.dispose()}}fS.BUBBLE_UP_EVENTS=["click","keydown","focus","blur"],fS.BUBBLE_DOWN_EVENTS=["click"];const vEt=` + :host { + all: initial; /* 1st rule so subsequent properties are reset. */ + } + + .codicon[class*='codicon-'] { + font: normal normal normal 16px/1 codicon; + display: inline-block; + text-decoration: none; + text-rendering: auto; + text-align: center; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + } + + :host { + font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", system-ui, "Ubuntu", "Droid Sans", sans-serif; + } + + :host-context(.mac) { font-family: -apple-system, BlinkMacSystemFont, sans-serif; } + :host-context(.mac:lang(zh-Hans)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif; } + :host-context(.mac:lang(zh-Hant)) { font-family: -apple-system, BlinkMacSystemFont, "PingFang TC", sans-serif; } + :host-context(.mac:lang(ja)) { font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic Pro", sans-serif; } + :host-context(.mac:lang(ko)) { font-family: -apple-system, BlinkMacSystemFont, "Nanum Gothic", "Apple SD Gothic Neo", "AppleGothic", sans-serif; } + + :host-context(.windows) { font-family: "Segoe WPC", "Segoe UI", sans-serif; } + :host-context(.windows:lang(zh-Hans)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft YaHei", sans-serif; } + :host-context(.windows:lang(zh-Hant)) { font-family: "Segoe WPC", "Segoe UI", "Microsoft Jhenghei", sans-serif; } + :host-context(.windows:lang(ja)) { font-family: "Segoe WPC", "Segoe UI", "Yu Gothic UI", "Meiryo UI", sans-serif; } + :host-context(.windows:lang(ko)) { font-family: "Segoe WPC", "Segoe UI", "Malgun Gothic", "Dotom", sans-serif; } + + :host-context(.linux) { font-family: system-ui, "Ubuntu", "Droid Sans", sans-serif; } + :host-context(.linux:lang(zh-Hans)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans SC", "Source Han Sans CN", "Source Han Sans", sans-serif; } + :host-context(.linux:lang(zh-Hant)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans TC", "Source Han Sans TW", "Source Han Sans", sans-serif; } + :host-context(.linux:lang(ja)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans J", "Source Han Sans JP", "Source Han Sans", sans-serif; } + :host-context(.linux:lang(ko)) { font-family: system-ui, "Ubuntu", "Droid Sans", "Source Han Sans K", "Source Han Sans JR", "Source Han Sans", "UnDotum", "FBaekmuk Gulim", sans-serif; } +`;var yEt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},IEt=function(n,e){return function(t,i){e(t,i,n)}};let mQ=class extends De{constructor(e){super(),this.layoutService=e,this.currentViewDisposable=De.None,this.contextView=this._register(new fS(this.layoutService.mainContainer,1)),this.layout(),this._register(e.onDidLayoutContainer(()=>this.layout()))}showContextView(e,t,i){let r;t?t===this.layoutService.getContainer(qt(t))?r=1:i?r=3:r=2:r=1,this.contextView.setContainer(t??this.layoutService.activeContainer,r),this.contextView.show(e);const o=en(()=>{this.currentViewDisposable===o&&this.hideContextView()});return this.currentViewDisposable=o,o}getContextViewElement(){return this.contextView.getViewElement()}layout(){this.contextView.layout()}hideContextView(e){this.contextView.hide(e)}dispose(){super.dispose(),this.currentViewDisposable.dispose(),this.currentViewDisposable=De.None}};mQ=yEt([IEt(0,qv)],mQ);let pS=[],fQ=[],CFe=[];function eG(n,e=!1){wEt(n,!1,e)}function wEt(n,e,t){const i=SEt(n,e);pS.push(i),i.userConfigured?CFe.push(i):fQ.push(i),t&&!i.userConfigured&&pS.forEach(r=>{r.mime===i.mime||r.userConfigured||(i.extension&&(r.extension,i.extension),i.filename&&(r.filename,i.filename),i.filepattern&&(r.filepattern,i.filepattern),i.firstline&&(r.firstline,i.firstline))})}function SEt(n,e){return{id:n.id,mime:n.mime,filename:n.filename,extension:n.extension,filepattern:n.filepattern,firstline:n.firstline,userConfigured:e,filenameLowercase:n.filename?n.filename.toLowerCase():void 0,extensionLowercase:n.extension?n.extension.toLowerCase():void 0,filepatternLowercase:n.filepattern?ELe(n.filepattern.toLowerCase()):void 0,filepatternOnPath:n.filepattern?n.filepattern.indexOf(Zo.sep)>=0:!1}}function xEt(){pS=pS.filter(n=>n.userConfigured),fQ=[]}function LEt(n,e){return FEt(n,e).map(t=>t.id)}function FEt(n,e){let t;if(n)switch(n.scheme){case xn.file:t=n.fsPath;break;case xn.data:{t=Ub.parseMetaData(n).get(Ub.META_DATA_LABEL);break}case xn.vscodeNotebookCell:t=void 0;break;default:t=n.path}if(!t)return[{id:"unknown",mime:Xr.unknown}];t=t.toLowerCase();const i=_b(t),r=vFe(t,i,CFe);if(r)return[r,{id:Ru,mime:Xr.text}];const o=vFe(t,i,fQ);if(o)return[o,{id:Ru,mime:Xr.text}];if(e){const s=_Et(e);if(s)return[s,{id:Ru,mime:Xr.text}]}return[{id:"unknown",mime:Xr.unknown}]}function vFe(n,e,t){var i;let r,o,s;for(let a=t.length-1;a>=0;a--){const l=t[a];if(e===l.filenameLowercase){r=l;break}if(l.filepattern&&(!o||l.filepattern.length>o.filepattern.length)){const u=l.filepatternOnPath?n:e;!((i=l.filepatternLowercase)===null||i===void 0)&&i.call(l,u)&&(o=l)}l.extension&&(!s||l.extension.length>s.extension.length)&&e.endsWith(l.extensionLowercase)&&(s=l)}if(r)return r;if(o)return o;if(s)return s}function _Et(n){if(AY(n)&&(n=n.substr(1)),n.length>0)for(let e=pS.length-1;e>=0;e--){const t=pS[e];if(!t.firstline)continue;const i=n.match(t.firstline);if(i&&i.length>0)return t}}const tG=Object.prototype.hasOwnProperty,yFe="vs.editor.nullLanguage";class DEt{constructor(){this._languageIdToLanguage=[],this._languageToLanguageId=new Map,this._register(yFe,0),this._register(Ru,1),this._nextLanguageId=2}_register(e,t){this._languageIdToLanguage[t]=e,this._languageToLanguageId.set(e,t)}register(e){if(this._languageToLanguageId.has(e))return;const t=this._nextLanguageId++;this._register(e,t)}encodeLanguageId(e){return this._languageToLanguageId.get(e)||0}decodeLanguageId(e){return this._languageIdToLanguage[e]||yFe}}class sN extends De{constructor(e=!0,t=!1){super(),this._onDidChange=this._register(new be),this.onDidChange=this._onDidChange.event,sN.instanceCount++,this._warnOnOverwrite=t,this.languageIdCodec=new DEt,this._dynamicLanguages=[],this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},e&&(this._initializeFromRegistry(),this._register(h2.onDidChangeLanguages(i=>{this._initializeFromRegistry()})))}dispose(){sN.instanceCount--,super.dispose()}_initializeFromRegistry(){this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},xEt();const e=[].concat(h2.getLanguages()).concat(this._dynamicLanguages);this._registerLanguages(e)}_registerLanguages(e){for(const t of e)this._registerLanguage(t);this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},Object.keys(this._languages).forEach(t=>{const i=this._languages[t];i.name&&(this._nameMap[i.name]=i.identifier),i.aliases.forEach(r=>{this._lowercaseNameMap[r.toLowerCase()]=i.identifier}),i.mimetypes.forEach(r=>{this._mimeTypesMap[r]=i.identifier})}),xo.as(Ih.Configuration).registerOverrideIdentifiers(this.getRegisteredLanguageIds()),this._onDidChange.fire()}_registerLanguage(e){const t=e.id;let i;tG.call(this._languages,t)?i=this._languages[t]:(this.languageIdCodec.register(t),i={identifier:t,name:null,mimetypes:[],aliases:[],extensions:[],filenames:[],configurationFiles:[],icons:[]},this._languages[t]=i),this._mergeLanguage(i,e)}_mergeLanguage(e,t){const i=t.id;let r=null;if(Array.isArray(t.mimetypes)&&t.mimetypes.length>0&&(e.mimetypes.push(...t.mimetypes),r=t.mimetypes[0]),r||(r=`text/x-${i}`,e.mimetypes.push(r)),Array.isArray(t.extensions)){t.configuration?e.extensions=t.extensions.concat(e.extensions):e.extensions=e.extensions.concat(t.extensions);for(const a of t.extensions)eG({id:i,mime:r,extension:a},this._warnOnOverwrite)}if(Array.isArray(t.filenames))for(const a of t.filenames)eG({id:i,mime:r,filename:a},this._warnOnOverwrite),e.filenames.push(a);if(Array.isArray(t.filenamePatterns))for(const a of t.filenamePatterns)eG({id:i,mime:r,filepattern:a},this._warnOnOverwrite);if(typeof t.firstLine=="string"&&t.firstLine.length>0){let a=t.firstLine;a.charAt(0)!=="^"&&(a="^"+a);try{const l=new RegExp(a);Bht(l)||eG({id:i,mime:r,firstline:l},this._warnOnOverwrite)}catch{}}e.aliases.push(i);let o=null;if(typeof t.aliases<"u"&&Array.isArray(t.aliases)&&(t.aliases.length===0?o=[null]:o=t.aliases),o!==null)for(const a of o)!a||a.length===0||e.aliases.push(a);const s=o!==null&&o.length>0;if(!(s&&o[0]===null)){const a=(s?o[0]:null)||i;(s||!e.name)&&(e.name=a)}t.configuration&&e.configurationFiles.push(t.configuration),t.icon&&e.icons.push(t.icon)}isRegisteredLanguageId(e){return e?tG.call(this._languages,e):!1}getRegisteredLanguageIds(){return Object.keys(this._languages)}getLanguageIdByLanguageName(e){const t=e.toLowerCase();return tG.call(this._lowercaseNameMap,t)?this._lowercaseNameMap[t]:null}getLanguageIdByMimeType(e){return e&&tG.call(this._mimeTypesMap,e)?this._mimeTypesMap[e]:null}guessLanguageIdByFilepathOrFirstLine(e,t){return!e&&!t?[]:LEt(e,t)}}sN.instanceCount=0;class aN extends De{constructor(e=!1){super(),this._onDidRequestBasicLanguageFeatures=this._register(new be),this.onDidRequestBasicLanguageFeatures=this._onDidRequestBasicLanguageFeatures.event,this._onDidRequestRichLanguageFeatures=this._register(new be),this.onDidRequestRichLanguageFeatures=this._onDidRequestRichLanguageFeatures.event,this._onDidChange=this._register(new be({leakWarningThreshold:200})),this.onDidChange=this._onDidChange.event,this._requestedBasicLanguages=new Set,this._requestedRichLanguages=new Set,aN.instanceCount++,this._registry=this._register(new sN(!0,e)),this.languageIdCodec=this._registry.languageIdCodec,this._register(this._registry.onDidChange(()=>this._onDidChange.fire()))}dispose(){aN.instanceCount--,super.dispose()}isRegisteredLanguageId(e){return this._registry.isRegisteredLanguageId(e)}getLanguageIdByLanguageName(e){return this._registry.getLanguageIdByLanguageName(e)}getLanguageIdByMimeType(e){return this._registry.getLanguageIdByMimeType(e)}guessLanguageIdByFilepathOrFirstLine(e,t){const i=this._registry.guessLanguageIdByFilepathOrFirstLine(e,t);return cH(i,null)}createById(e){return new IFe(this.onDidChange,()=>this._createAndGetLanguageIdentifier(e))}createByFilepathOrFirstLine(e,t){return new IFe(this.onDidChange,()=>{const i=this.guessLanguageIdByFilepathOrFirstLine(e,t);return this._createAndGetLanguageIdentifier(i)})}_createAndGetLanguageIdentifier(e){return(!e||!this.isRegisteredLanguageId(e))&&(e=Ru),e}requestBasicLanguageFeatures(e){this._requestedBasicLanguages.has(e)||(this._requestedBasicLanguages.add(e),this._onDidRequestBasicLanguageFeatures.fire(e))}requestRichLanguageFeatures(e){this._requestedRichLanguages.has(e)||(this._requestedRichLanguages.add(e),this.requestBasicLanguageFeatures(e),mo.getOrCreate(e),this._onDidRequestRichLanguageFeatures.fire(e))}}aN.instanceCount=0;class IFe{constructor(e,t){this._onDidChangeLanguages=e,this._selector=t,this._listener=null,this._emitter=null,this.languageId=this._selector()}_dispose(){this._listener&&(this._listener.dispose(),this._listener=null),this._emitter&&(this._emitter.dispose(),this._emitter=null)}get onDidChange(){return this._listener||(this._listener=this._onDidChangeLanguages(()=>this._evaluate())),this._emitter||(this._emitter=new be({onDidRemoveLastListener:()=>{this._dispose()}})),this._emitter.event}_evaluate(){var e;const t=this._selector();t!==this.languageId&&(this.languageId=t,(e=this._emitter)===null||e===void 0||e.fire(this.languageId))}}const pQ=/\(&([^\s&])\)|(^|[^&])&([^\s&])/,bQ=/(&)?(&)([^\s&])/g;var nG;(function(n){n[n.Right=0]="Right",n[n.Left=1]="Left"})(nG||(nG={}));class bS extends Rc{constructor(e,t,i,r){e.classList.add("monaco-menu-container"),e.setAttribute("role","presentation");const o=document.createElement("div");o.classList.add("monaco-menu"),o.setAttribute("role","presentation"),super(o,{orientation:1,actionViewItemProvider:u=>this.doGetActionViewItem(u,i,s),context:i.context,actionRunner:i.actionRunner,ariaLabel:i.ariaLabel,ariaRole:"menu",focusOnlyEnabledItems:!0,triggerKeys:{keys:[3,...$n||Ha?[10]:[]],keyDown:!0}}),this.menuStyles=r,this.menuElement=o,this.actionsList.tabIndex=0,this.initializeOrUpdateStyleSheet(e,r),this._register(er.addTarget(o)),this._register(Ve(o,at.KEY_DOWN,u=>{new nr(u).equals(2)&&u.preventDefault()})),i.enableMnemonics&&this._register(Ve(o,at.KEY_DOWN,u=>{const c=u.key.toLocaleLowerCase();if(this.mnemonics.has(c)){En.stop(u,!0);const d=this.mnemonics.get(c);if(d.length===1&&(d[0]instanceof SFe&&d[0].container&&this.focusItemByElement(d[0].container),d[0].onClick(u)),d.length>1){const h=d.shift();h&&h.container&&(this.focusItemByElement(h.container),d.push(h)),this.mnemonics.set(c,d)}}})),Ha&&this._register(Ve(o,at.KEY_DOWN,u=>{const c=new nr(u);c.equals(14)||c.equals(11)?(this.focusedItem=this.viewItems.length-1,this.focusNext(),En.stop(u,!0)):(c.equals(13)||c.equals(12))&&(this.focusedItem=0,this.focusPrevious(),En.stop(u,!0))})),this._register(Ve(this.domNode,at.MOUSE_OUT,u=>{const c=u.relatedTarget;xs(c,this.domNode)||(this.focusedItem=void 0,this.updateFocus(),u.stopPropagation())})),this._register(Ve(this.actionsList,at.MOUSE_OVER,u=>{let c=u.target;if(!(!c||!xs(c,this.actionsList)||c===this.actionsList)){for(;c.parentElement!==this.actionsList&&c.parentElement!==null;)c=c.parentElement;if(c.classList.contains("action-item")){const d=this.focusedItem;this.setFocusedItem(c),d!==this.focusedItem&&this.updateFocus()}}})),this._register(er.addTarget(this.actionsList)),this._register(Ve(this.actionsList,qi.Tap,u=>{let c=u.initialTarget;if(!(!c||!xs(c,this.actionsList)||c===this.actionsList)){for(;c.parentElement!==this.actionsList&&c.parentElement!==null;)c=c.parentElement;if(c.classList.contains("action-item")){const d=this.focusedItem;this.setFocusedItem(c),d!==this.focusedItem&&this.updateFocus()}}}));const s={parent:this};this.mnemonics=new Map,this.scrollableElement=this._register(new f_(o,{alwaysConsumeMouseWheel:!0,horizontal:2,vertical:3,verticalScrollbarSize:7,handleMouseWheel:!0,useShadows:!0}));const a=this.scrollableElement.getDomNode();a.style.position="",this.styleScrollElement(a,r),this._register(Ve(o,qi.Change,u=>{En.stop(u,!0);const c=this.scrollableElement.getScrollPosition().scrollTop;this.scrollableElement.setScrollPosition({scrollTop:c-u.translationY})})),this._register(Ve(a,at.MOUSE_UP,u=>{u.preventDefault()}));const l=qt(e);o.style.maxHeight=`${Math.max(10,l.innerHeight-e.getBoundingClientRect().top-35)}px`,t=t.filter((u,c)=>{var d;return!(!((d=i.submenuIds)===null||d===void 0)&&d.has(u.id)||u instanceof To&&(c===t.length-1||c===0||t[c-1]instanceof To))}),this.push(t,{icon:!0,label:!0,isMenu:!0}),e.appendChild(this.scrollableElement.getDomNode()),this.scrollableElement.scanDomNode(),this.viewItems.filter(u=>!(u instanceof xFe)).forEach((u,c,d)=>{u.updatePositionInSet(c+1,d.length)})}initializeOrUpdateStyleSheet(e,t){this.styleSheet||(_5(e)?this.styleSheet=Eu(e):(bS.globalStyleSheet||(bS.globalStyleSheet=Eu()),this.styleSheet=bS.globalStyleSheet)),this.styleSheet.textContent=NEt(t,_5(e))}styleScrollElement(e,t){var i,r;const o=(i=t.foregroundColor)!==null&&i!==void 0?i:"",s=(r=t.backgroundColor)!==null&&r!==void 0?r:"",a=t.borderColor?`1px solid ${t.borderColor}`:"",l="5px",u=t.shadowColor?`0 2px 8px ${t.shadowColor}`:"";e.style.outline=a,e.style.borderRadius=l,e.style.color=o,e.style.backgroundColor=s,e.style.boxShadow=u}getContainer(){return this.scrollableElement.getDomNode()}get onScroll(){return this.scrollableElement.onScroll}focusItemByElement(e){const t=this.focusedItem;this.setFocusedItem(e),t!==this.focusedItem&&this.updateFocus()}setFocusedItem(e){for(let t=0;t{this.element&&(this._register(Ve(this.element,at.MOUSE_UP,o=>{if(En.stop(o,!0),vc){if(new dd(qt(this.element),o).rightButton)return;this.onClick(o)}else setTimeout(()=>{this.onClick(o)},0)})),this._register(Ve(this.element,at.CONTEXT_MENU,o=>{En.stop(o,!0)})))},100),this._register(this.runOnceToEnableMouseUp)}render(e){super.render(e),this.element&&(this.container=e,this.item=Je(this.element,vt("a.action-menu-item")),this._action.id===To.ID?this.item.setAttribute("role","presentation"):(this.item.setAttribute("role","menuitem"),this.mnemonic&&this.item.setAttribute("aria-keyshortcuts",`${this.mnemonic}`)),this.check=Je(this.item,vt("span.menu-item-check"+on.asCSSSelector(ct.menuSelection))),this.check.setAttribute("role","none"),this.label=Je(this.item,vt("span.action-label")),this.options.label&&this.options.keybinding&&(Je(this.item,vt("span.keybinding")).textContent=this.options.keybinding),this.runOnceToEnableMouseUp.schedule(),this.updateClass(),this.updateLabel(),this.updateTooltip(),this.updateEnabled(),this.updateChecked(),this.applyStyle())}blur(){super.blur(),this.applyStyle()}focus(){var e;super.focus(),(e=this.item)===null||e===void 0||e.focus(),this.applyStyle()}updatePositionInSet(e,t){this.item&&(this.item.setAttribute("aria-posinset",`${e}`),this.item.setAttribute("aria-setsize",`${t}`))}updateLabel(){var e;if(this.label&&this.options.label){la(this.label);let t=gye(this.action.label);if(t){const i=AEt(t);this.options.enableMnemonics||(t=i),this.label.setAttribute("aria-label",i.replace(/&&/g,"&"));const r=pQ.exec(t);if(r){t=c5(t),bQ.lastIndex=0;let o=bQ.exec(t);for(;o&&o[1];)o=bQ.exec(t);const s=a=>a.replace(/&&/g,"&");o?this.label.append(d5(s(t.substr(0,o.index))," "),vt("u",{"aria-hidden":"true"},o[3]),Pht(s(t.substr(o.index+o[0].length))," ")):this.label.innerText=s(t).trim(),(e=this.item)===null||e===void 0||e.setAttribute("aria-keyshortcuts",(r[1]?r[1]:r[3]).toLocaleLowerCase())}else this.label.innerText=t.replace(/&&/g,"&").trim()}}}updateTooltip(){}updateClass(){this.cssClass&&this.item&&this.item.classList.remove(...this.cssClass.split(" ")),this.options.icon&&this.label?(this.cssClass=this.action.class||"",this.label.classList.add("icon"),this.cssClass&&this.label.classList.add(...this.cssClass.split(" ")),this.updateEnabled()):this.label&&this.label.classList.remove("icon")}updateEnabled(){this.action.enabled?(this.element&&(this.element.classList.remove("disabled"),this.element.removeAttribute("aria-disabled")),this.item&&(this.item.classList.remove("disabled"),this.item.removeAttribute("aria-disabled"),this.item.tabIndex=0)):(this.element&&(this.element.classList.add("disabled"),this.element.setAttribute("aria-disabled","true")),this.item&&(this.item.classList.add("disabled"),this.item.setAttribute("aria-disabled","true")))}updateChecked(){if(!this.item)return;const e=this.action.checked;this.item.classList.toggle("checked",!!e),e!==void 0?(this.item.setAttribute("role","menuitemcheckbox"),this.item.setAttribute("aria-checked",e?"true":"false")):(this.item.setAttribute("role","menuitem"),this.item.setAttribute("aria-checked",""))}getMnemonic(){return this.mnemonic}applyStyle(){const e=this.element&&this.element.classList.contains("focused"),t=e&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor,i=e&&this.menuStyle.selectionBackgroundColor?this.menuStyle.selectionBackgroundColor:void 0,r=e&&this.menuStyle.selectionBorderColor?`1px solid ${this.menuStyle.selectionBorderColor}`:"",o=e&&this.menuStyle.selectionBorderColor?"-1px":"";this.item&&(this.item.style.color=t??"",this.item.style.backgroundColor=i??"",this.item.style.outline=r,this.item.style.outlineOffset=o),this.check&&(this.check.style.color=t??"")}}class SFe extends wFe{constructor(e,t,i,r,o){super(e,e,r,o),this.submenuActions=t,this.parentData=i,this.submenuOptions=r,this.mysubmenu=null,this.submenuDisposables=this._register(new je),this.mouseOver=!1,this.expandDirection=r&&r.expandDirection!==void 0?r.expandDirection:nG.Right,this.showScheduler=new Vi(()=>{this.mouseOver&&(this.cleanupExistingSubmenu(!1),this.createSubmenu(!1))},250),this.hideScheduler=new Vi(()=>{this.element&&!xs(Ys(),this.element)&&this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))},750)}render(e){super.render(e),this.element&&(this.item&&(this.item.classList.add("monaco-submenu-item"),this.item.tabIndex=0,this.item.setAttribute("aria-haspopup","true"),this.updateAriaExpanded("false"),this.submenuIndicator=Je(this.item,vt("span.submenu-indicator"+on.asCSSSelector(ct.menuSubmenu))),this.submenuIndicator.setAttribute("aria-hidden","true")),this._register(Ve(this.element,at.KEY_UP,t=>{const i=new nr(t);(i.equals(17)||i.equals(3))&&(En.stop(t,!0),this.createSubmenu(!0))})),this._register(Ve(this.element,at.KEY_DOWN,t=>{const i=new nr(t);Ys()===this.item&&(i.equals(17)||i.equals(3))&&En.stop(t,!0)})),this._register(Ve(this.element,at.MOUSE_OVER,t=>{this.mouseOver||(this.mouseOver=!0,this.showScheduler.schedule())})),this._register(Ve(this.element,at.MOUSE_LEAVE,t=>{this.mouseOver=!1})),this._register(Ve(this.element,at.FOCUS_OUT,t=>{this.element&&!xs(Ys(),this.element)&&this.hideScheduler.schedule()})),this._register(this.parentData.parent.onScroll(()=>{this.parentData.submenu===this.mysubmenu&&(this.parentData.parent.focus(!1),this.cleanupExistingSubmenu(!0))})))}updateEnabled(){}onClick(e){En.stop(e,!0),this.cleanupExistingSubmenu(!1),this.createSubmenu(!0)}cleanupExistingSubmenu(e){if(this.parentData.submenu&&(e||this.parentData.submenu!==this.mysubmenu)){try{this.parentData.submenu.dispose()}catch{}this.parentData.submenu=void 0,this.updateAriaExpanded("false"),this.submenuContainer&&(this.submenuDisposables.clear(),this.submenuContainer=void 0)}}calculateSubmenuMenuLayout(e,t,i,r){const o={top:0,left:0};return o.left=mS(e.width,t.width,{position:r===nG.Right?0:1,offset:i.left,size:i.width}),o.left>=i.left&&o.left{new nr(c).equals(15)&&(En.stop(c,!0),this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0))})),this.submenuDisposables.add(Ve(this.submenuContainer,at.KEY_DOWN,c=>{new nr(c).equals(15)&&En.stop(c,!0)})),this.submenuDisposables.add(this.parentData.submenu.onDidCancel(()=>{this.parentData.parent.focus(),this.cleanupExistingSubmenu(!0)})),this.parentData.submenu.focus(e),this.mysubmenu=this.parentData.submenu}}updateAriaExpanded(e){var t;this.item&&((t=this.item)===null||t===void 0||t.setAttribute("aria-expanded",e))}applyStyle(){super.applyStyle();const t=this.element&&this.element.classList.contains("focused")&&this.menuStyle.selectionForegroundColor?this.menuStyle.selectionForegroundColor:this.menuStyle.foregroundColor;this.submenuIndicator&&(this.submenuIndicator.style.color=t??"")}dispose(){super.dispose(),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer=void 0)}}class xFe extends ow{constructor(e,t,i,r){super(e,t,i),this.menuStyles=r}render(e){super.render(e),this.label&&(this.label.style.borderBottomColor=this.menuStyles.separatorColor?`${this.menuStyles.separatorColor}`:"")}}function AEt(n){const e=pQ,t=e.exec(n);if(!t)return n;const i=!t[1];return n.replace(e,i?"$2$3":"").trim()}function LFe(n){const e=r0e()[n.id];return`.codicon-${n.id}:before { content: '\\${e.toString(16)}'; }`}function NEt(n,e){let t=` +.monaco-menu { + font-size: 13px; + border-radius: 5px; + min-width: 160px; +} + +${LFe(ct.menuSelection)} +${LFe(ct.menuSubmenu)} + +.monaco-menu .monaco-action-bar { + text-align: right; + overflow: hidden; + white-space: nowrap; +} + +.monaco-menu .monaco-action-bar .actions-container { + display: flex; + margin: 0 auto; + padding: 0; + width: 100%; + justify-content: flex-end; +} + +.monaco-menu .monaco-action-bar.vertical .actions-container { + display: inline-block; +} + +.monaco-menu .monaco-action-bar.reverse .actions-container { + flex-direction: row-reverse; +} + +.monaco-menu .monaco-action-bar .action-item { + cursor: pointer; + display: inline-block; + transition: transform 50ms ease; + position: relative; /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */ +} + +.monaco-menu .monaco-action-bar .action-item.disabled { + cursor: default; +} + +.monaco-menu .monaco-action-bar .action-item .icon, +.monaco-menu .monaco-action-bar .action-item .codicon { + display: inline-block; +} + +.monaco-menu .monaco-action-bar .action-item .codicon { + display: flex; + align-items: center; +} + +.monaco-menu .monaco-action-bar .action-label { + font-size: 11px; + margin-right: 4px; +} + +.monaco-menu .monaco-action-bar .action-item.disabled .action-label, +.monaco-menu .monaco-action-bar .action-item.disabled .action-label:hover { + color: var(--vscode-disabledForeground); +} + +/* Vertical actions */ + +.monaco-menu .monaco-action-bar.vertical { + text-align: left; +} + +.monaco-menu .monaco-action-bar.vertical .action-item { + display: block; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator { + display: block; + border-bottom: 1px solid var(--vscode-menu-separatorBackground); + padding-top: 1px; + padding: 30px; +} + +.monaco-menu .secondary-actions .monaco-action-bar .action-label { + margin-left: 6px; +} + +/* Action Items */ +.monaco-menu .monaco-action-bar .action-item.select-container { + overflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */ + flex: 1; + max-width: 170px; + min-width: 60px; + display: flex; + align-items: center; + justify-content: center; + margin-right: 10px; +} + +.monaco-menu .monaco-action-bar.vertical { + margin-left: 0; + overflow: visible; +} + +.monaco-menu .monaco-action-bar.vertical .actions-container { + display: block; +} + +.monaco-menu .monaco-action-bar.vertical .action-item { + padding: 0; + transform: none; + display: flex; +} + +.monaco-menu .monaco-action-bar.vertical .action-item.active { + transform: none; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item { + flex: 1 1 auto; + display: flex; + height: 2em; + align-items: center; + position: relative; + margin: 0 4px; + border-radius: 4px; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .keybinding, +.monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .keybinding { + opacity: unset; +} + +.monaco-menu .monaco-action-bar.vertical .action-label { + flex: 1 1 auto; + text-decoration: none; + padding: 0 1em; + background: none; + font-size: 12px; + line-height: 1; +} + +.monaco-menu .monaco-action-bar.vertical .keybinding, +.monaco-menu .monaco-action-bar.vertical .submenu-indicator { + display: inline-block; + flex: 2 1 auto; + padding: 0 1em; + text-align: right; + font-size: 12px; + line-height: 1; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator { + height: 100%; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon { + font-size: 16px !important; + display: flex; + align-items: center; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator.codicon::before { + margin-left: auto; + margin-right: -20px; +} + +.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding, +.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator { + opacity: 0.4; +} + +.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) { + display: inline-block; + box-sizing: border-box; + margin: 0; +} + +.monaco-menu .monaco-action-bar.vertical .action-item { + position: static; + overflow: visible; +} + +.monaco-menu .monaco-action-bar.vertical .action-item .monaco-submenu { + position: absolute; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator { + width: 100%; + height: 0px !important; + opacity: 1; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator.text { + padding: 0.7em 1em 0.1em 1em; + font-weight: bold; + opacity: 1; +} + +.monaco-menu .monaco-action-bar.vertical .action-label:hover { + color: inherit; +} + +.monaco-menu .monaco-action-bar.vertical .menu-item-check { + position: absolute; + visibility: hidden; + width: 1em; + height: 100%; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item.checked .menu-item-check { + visibility: visible; + display: flex; + align-items: center; + justify-content: center; +} + +/* Context Menu */ + +.context-view.monaco-menu-container { + outline: 0; + border: none; + animation: fadeIn 0.083s linear; + -webkit-app-region: no-drag; +} + +.context-view.monaco-menu-container :focus, +.context-view.monaco-menu-container .monaco-action-bar.vertical:focus, +.context-view.monaco-menu-container .monaco-action-bar.vertical :focus { + outline: 0; +} + +.hc-black .context-view.monaco-menu-container, +.hc-light .context-view.monaco-menu-container, +:host-context(.hc-black) .context-view.monaco-menu-container, +:host-context(.hc-light) .context-view.monaco-menu-container { + box-shadow: none; +} + +.hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused, +.hc-light .monaco-menu .monaco-action-bar.vertical .action-item.focused, +:host-context(.hc-black) .monaco-menu .monaco-action-bar.vertical .action-item.focused, +:host-context(.hc-light) .monaco-menu .monaco-action-bar.vertical .action-item.focused { + background: none; +} + +/* Vertical Action Bar Styles */ + +.monaco-menu .monaco-action-bar.vertical { + padding: 4px 0; +} + +.monaco-menu .monaco-action-bar.vertical .action-menu-item { + height: 2em; +} + +.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator), +.monaco-menu .monaco-action-bar.vertical .keybinding { + font-size: inherit; + padding: 0 2em; +} + +.monaco-menu .monaco-action-bar.vertical .menu-item-check { + font-size: inherit; + width: 2em; +} + +.monaco-menu .monaco-action-bar.vertical .action-label.separator { + font-size: inherit; + margin: 5px 0 !important; + padding: 0; + border-radius: 0; +} + +.linux .monaco-menu .monaco-action-bar.vertical .action-label.separator, +:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .action-label.separator { + margin-left: 0; + margin-right: 0; +} + +.monaco-menu .monaco-action-bar.vertical .submenu-indicator { + font-size: 60%; + padding: 0 1.8em; +} + +.linux .monaco-menu .monaco-action-bar.vertical .submenu-indicator, +:host-context(.linux) .monaco-menu .monaco-action-bar.vertical .submenu-indicator { + height: 100%; + mask-size: 10px 10px; + -webkit-mask-size: 10px 10px; +} + +.monaco-menu .action-item { + cursor: default; +}`;if(e){t+=` + /* Arrows */ + .monaco-scrollable-element > .scrollbar > .scra { + cursor: pointer; + font-size: 11px !important; + } + + .monaco-scrollable-element > .visible { + opacity: 1; + + /* Background rule added for IE9 - to allow clicks on dom node */ + background:rgba(0,0,0,0); + + transition: opacity 100ms linear; + } + .monaco-scrollable-element > .invisible { + opacity: 0; + pointer-events: none; + } + .monaco-scrollable-element > .invisible.fade { + transition: opacity 800ms linear; + } + + /* Scrollable Content Inset Shadow */ + .monaco-scrollable-element > .shadow { + position: absolute; + display: none; + } + .monaco-scrollable-element > .shadow.top { + display: block; + top: 0; + left: 3px; + height: 3px; + width: 100%; + } + .monaco-scrollable-element > .shadow.left { + display: block; + top: 3px; + left: 0; + height: 100%; + width: 3px; + } + .monaco-scrollable-element > .shadow.top-left-corner { + display: block; + top: 0; + left: 0; + height: 3px; + width: 3px; + } + `;const i=n.scrollbarShadow;i&&(t+=` + .monaco-scrollable-element > .shadow.top { + box-shadow: ${i} 0 6px 6px -6px inset; + } + + .monaco-scrollable-element > .shadow.left { + box-shadow: ${i} 6px 0 6px -6px inset; + } + + .monaco-scrollable-element > .shadow.top.left { + box-shadow: ${i} 6px 6px 6px -6px inset; + } + `);const r=n.scrollbarSliderBackground;r&&(t+=` + .monaco-scrollable-element > .scrollbar > .slider { + background: ${r}; + } + `);const o=n.scrollbarSliderHoverBackground;o&&(t+=` + .monaco-scrollable-element > .scrollbar > .slider:hover { + background: ${o}; + } + `);const s=n.scrollbarSliderActiveBackground;s&&(t+=` + .monaco-scrollable-element > .scrollbar > .slider.active { + background: ${s}; + } + `)}return t}class kEt{constructor(e,t,i,r){this.contextViewService=e,this.telemetryService=t,this.notificationService=i,this.keybindingService=r,this.focusToReturn=null,this.lastContainer=null,this.block=null,this.blockDisposable=null,this.options={blockMouse:!0}}configure(e){this.options=e}showContextMenu(e){const t=e.getActions();if(!t.length)return;this.focusToReturn=Ys();let i;const r=e.domForShadowRoot instanceof HTMLElement?e.domForShadowRoot:void 0;this.contextViewService.showContextView({getAnchor:()=>e.getAnchor(),canRelayout:!1,anchorAlignment:e.anchorAlignment,anchorAxisAlignment:e.anchorAxisAlignment,render:o=>{var s;this.lastContainer=o;const a=e.getMenuClassName?e.getMenuClassName():"";a&&(o.className+=" "+a),this.options.blockMouse&&(this.block=o.appendChild(vt(".context-view-block")),this.block.style.position="fixed",this.block.style.cursor="initial",this.block.style.left="0",this.block.style.top="0",this.block.style.width="100%",this.block.style.height="100%",this.block.style.zIndex="-1",(s=this.blockDisposable)===null||s===void 0||s.dispose(),this.blockDisposable=Ve(this.block,at.MOUSE_DOWN,d=>d.stopPropagation()));const l=new je,u=e.actionRunner||new AC;u.onWillRun(d=>this.onActionRun(d,!e.skipTelemetry),this,l),u.onDidRun(this.onDidActionRun,this,l),i=new bS(o,t,{actionViewItemProvider:e.getActionViewItem,context:e.getActionsContext?e.getActionsContext():null,actionRunner:u,getKeyBinding:e.getKeyBinding?e.getKeyBinding:d=>this.keybindingService.lookupKeybinding(d.id)},DLt),i.onDidCancel(()=>this.contextViewService.hideContextView(!0),null,l),i.onDidBlur(()=>this.contextViewService.hideContextView(!0),null,l);const c=qt(o);return l.add(Ve(c,at.BLUR,()=>this.contextViewService.hideContextView(!0))),l.add(Ve(c,at.MOUSE_DOWN,d=>{if(d.defaultPrevented)return;const h=new dd(c,d);let g=h.target;if(!h.rightButton){for(;g;){if(g===o)return;g=g.parentElement}this.contextViewService.hideContextView(!0)}})),hd(l,i)},focus:()=>{i==null||i.focus(!!e.autoSelectFirstItem)},onHide:o=>{var s,a,l;(s=e.onHide)===null||s===void 0||s.call(e,!!o),this.block&&(this.block.remove(),this.block=null),(a=this.blockDisposable)===null||a===void 0||a.dispose(),this.blockDisposable=null,this.lastContainer&&(Ys()===this.lastContainer||xs(Ys(),this.lastContainer))&&((l=this.focusToReturn)===null||l===void 0||l.focus()),this.lastContainer=null}},r,!!r)}onActionRun(e,t){t&&this.telemetryService.publicLog2("workbenchActionExecuted",{id:e.action.id,from:"contextMenu"}),this.contextViewService.hideContextView(!1)}onDidActionRun(e){e.error&&!Ng(e.error)&&this.notificationService.error(e.error)}}var MEt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},CS=function(n,e){return function(t,i){e(t,i,n)}};let CQ=class extends De{get contextMenuHandler(){return this._contextMenuHandler||(this._contextMenuHandler=new kEt(this.contextViewService,this.telemetryService,this.notificationService,this.keybindingService)),this._contextMenuHandler}constructor(e,t,i,r,o,s){super(),this.telemetryService=e,this.notificationService=t,this.contextViewService=i,this.keybindingService=r,this.menuService=o,this.contextKeyService=s,this._contextMenuHandler=void 0,this._onDidShowContextMenu=this._store.add(new be),this.onDidShowContextMenu=this._onDidShowContextMenu.event,this._onDidHideContextMenu=this._store.add(new be)}configure(e){this.contextMenuHandler.configure(e)}showContextMenu(e){e=vQ.transform(e,this.menuService,this.contextKeyService),this.contextMenuHandler.showContextMenu({...e,onHide:t=>{var i;(i=e.onHide)===null||i===void 0||i.call(e,t),this._onDidHideContextMenu.fire()}}),vf.getInstance().resetKeyStatus(),this._onDidShowContextMenu.fire()}};CQ=MEt([CS(0,Nl),CS(1,Fo),CS(2,hm),CS(3,Pi),CS(4,wc),CS(5,ln)],CQ);var vQ;(function(n){function e(i){return i&&i.menuId instanceof $}function t(i,r,o){if(!e(i))return i;const{menuId:s,menuActionOptions:a,contextKeyService:l}=i;return{...i,getActions:()=>{const u=[];if(s){const c=r.createMenu(s,l??o);r_t(c,a,u),c.dispose()}return i.getActions?To.join(i.getActions(),u):u}}}n.transform=t})(vQ||(vQ={}));var iG;(function(n){n[n.API=0]="API",n[n.USER=1]="USER"})(iG||(iG={}));var yQ=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},rG=function(n,e){return function(t,i){e(t,i,n)}};let IQ=class{constructor(e){this._commandService=e}async open(e,t){if(!TY(e,xn.command))return!1;if(!(t!=null&&t.allowCommands)||(typeof e=="string"&&(e=$t.parse(e)),Array.isArray(t.allowCommands)&&!t.allowCommands.includes(e.path)))return!0;let i=[];try{i=N7(decodeURIComponent(e.query))}catch{try{i=N7(e.query)}catch{}}return Array.isArray(i)||(i=[i]),await this._commandService.executeCommand(e.path,...i),!0}};IQ=yQ([rG(0,Vr)],IQ);let wQ=class{constructor(e){this._editorService=e}async open(e,t){typeof e=="string"&&(e=$t.parse(e));const{selection:i,uri:r}=Yxt(e);return e=r,e.scheme===xn.file&&(e=Yvt(e)),await this._editorService.openCodeEditor({resource:e,options:{selection:i,source:t!=null&&t.fromUserGesture?iG.USER:iG.API,...t==null?void 0:t.editorOptions}},this._editorService.getFocusedCodeEditor(),t==null?void 0:t.openToSide),!0}};wQ=yQ([rG(0,yi)],wQ);let SQ=class{constructor(e,t){this._openers=new Ua,this._validators=new Ua,this._resolvers=new Ua,this._resolvedUriTargets=new no(i=>i.with({path:null,fragment:null,query:null}).toString()),this._externalOpeners=new Ua,this._defaultExternalOpener={openExternal:async i=>(Rbe(i,xn.http,xn.https)?e0e(i):Wi.location.href=i,!0)},this._openers.push({open:async(i,r)=>r!=null&&r.openExternal||Rbe(i,xn.mailto,xn.http,xn.https,xn.vsls)?(await this._doOpenExternal(i,r),!0):!1}),this._openers.push(new IQ(t)),this._openers.push(new wQ(e))}registerOpener(e){return{dispose:this._openers.unshift(e)}}async open(e,t){var i;const r=typeof e=="string"?$t.parse(e):e,o=(i=this._resolvedUriTargets.get(r))!==null&&i!==void 0?i:e;for(const s of this._validators)if(!await s.shouldOpen(o,t))return!1;for(const s of this._openers)if(await s.open(e,t))return!0;return!1}async resolveExternalUri(e,t){for(const i of this._resolvers)try{const r=await i.resolveExternalUri(e,t);if(r)return this._resolvedUriTargets.has(r.resolved)||this._resolvedUriTargets.set(r.resolved,e),r}catch{}throw new Error("Could not resolve external URI: "+e.toString())}async _doOpenExternal(e,t){const i=typeof e=="string"?$t.parse(e):e;let r;try{r=(await this.resolveExternalUri(i,t)).resolved}catch{r=i}let o;if(typeof e=="string"&&i.toString()===r.toString()?o=e:o=encodeURI(r.toString(!0)),t!=null&&t.allowContributedOpeners){const s=typeof(t==null?void 0:t.allowContributedOpeners)=="string"?t==null?void 0:t.allowContributedOpeners:void 0;for(const a of this._externalOpeners)if(await a.openExternal(o,{sourceUri:i,preferredOpenerId:s},Hn.None))return!0}return this._defaultExternalOpener.openExternal(o,{sourceUri:i},Hn.None)}dispose(){this._validators.clear()}};SQ=yQ([rG(0,yi),rG(1,Vr)],SQ);var ZEt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},FFe=function(n,e){return function(t,i){e(t,i,n)}};let xQ=class extends De{constructor(e,t){super(),this._markerService=t,this._onDidChangeMarker=this._register(new be),this._markerDecorations=new no,e.getModels().forEach(i=>this._onModelAdded(i)),this._register(e.onModelAdded(this._onModelAdded,this)),this._register(e.onModelRemoved(this._onModelRemoved,this)),this._register(this._markerService.onMarkerChanged(this._handleMarkerChange,this))}dispose(){super.dispose(),this._markerDecorations.forEach(e=>e.dispose()),this._markerDecorations.clear()}getMarker(e,t){const i=this._markerDecorations.get(e);return i&&i.getMarker(t)||null}_handleMarkerChange(e){e.forEach(t=>{const i=this._markerDecorations.get(t);i&&this._updateDecorations(i)})}_onModelAdded(e){const t=new TEt(e);this._markerDecorations.set(e.uri,t),this._updateDecorations(t)}_onModelRemoved(e){var t;const i=this._markerDecorations.get(e.uri);i&&(i.dispose(),this._markerDecorations.delete(e.uri)),(e.uri.scheme===xn.inMemory||e.uri.scheme===xn.internal||e.uri.scheme===xn.vscode)&&((t=this._markerService)===null||t===void 0||t.read({resource:e.uri}).map(r=>r.owner).forEach(r=>this._markerService.remove(r,[e.uri])))}_updateDecorations(e){const t=this._markerService.read({resource:e.model.uri,take:500});e.update(t)&&this._onDidChangeMarker.fire(e.model)}};xQ=ZEt([FFe(0,wr),FFe(1,pm)],xQ);class TEt extends De{constructor(e){super(),this.model=e,this._map=new I2t,this._register(en(()=>{this.model.deltaDecorations([...this._map.values()],[]),this._map.clear()}))}update(e){const{added:t,removed:i}=tAt(new Set(this._map.keys()),new Set(e));if(t.length===0&&i.length===0)return!1;const r=i.map(a=>this._map.get(a)),o=t.map(a=>({range:this._createDecorationRange(this.model,a),options:this._createDecorationOption(a)})),s=this.model.deltaDecorations(r,o);for(const a of i)this._map.delete(a);for(let a=0;a=r)return i;const o=e.getWordAtPosition(i.getStartPosition());o&&(i=new K(i.startLineNumber,o.startColumn,i.endLineNumber,o.endColumn))}else if(t.endColumn===Number.MAX_VALUE&&t.startColumn===1&&i.startLineNumber===i.endLineNumber){const r=e.getLineFirstNonWhitespaceColumn(t.startLineNumber);r=0:!1}}var EEt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},lN=function(n,e){return function(t,i){e(t,i,n)}},vS;function ey(n){return n.toString()}class WEt{constructor(e,t,i){this.model=e,this._modelEventListeners=new je,this.model=e,this._modelEventListeners.add(e.onWillDispose(()=>t(e))),this._modelEventListeners.add(e.onDidChangeLanguage(r=>i(e,r)))}dispose(){this._modelEventListeners.dispose()}}const REt=Ha||$n?1:2;class GEt{constructor(e,t,i,r,o,s,a,l){this.uri=e,this.initialUndoRedoSnapshot=t,this.time=i,this.sharesUndoRedoStack=r,this.heapSize=o,this.sha1=s,this.versionId=a,this.alternativeVersionId=l}}let oG=vS=class extends De{constructor(e,t,i,r,o){super(),this._configurationService=e,this._resourcePropertiesService=t,this._undoRedoService=i,this._languageService=r,this._languageConfigurationService=o,this._onModelAdded=this._register(new be),this.onModelAdded=this._onModelAdded.event,this._onModelRemoved=this._register(new be),this.onModelRemoved=this._onModelRemoved.event,this._onModelModeChanged=this._register(new be),this.onModelLanguageChanged=this._onModelModeChanged.event,this._modelCreationOptionsByLanguageAndResource=Object.create(null),this._models={},this._disposedModels=new Map,this._disposedModelsHeapSize=0,this._register(this._configurationService.onDidChangeConfiguration(s=>this._updateModelOptions(s))),this._updateModelOptions(void 0)}static _readModelOptions(e,t){var i;let r=ha.tabSize;if(e.editor&&typeof e.editor.tabSize<"u"){const g=parseInt(e.editor.tabSize,10);isNaN(g)||(r=g),r<1&&(r=1)}let o="tabSize";if(e.editor&&typeof e.editor.indentSize<"u"&&e.editor.indentSize!=="tabSize"){const g=parseInt(e.editor.indentSize,10);isNaN(g)||(o=Math.max(g,1))}let s=ha.insertSpaces;e.editor&&typeof e.editor.insertSpaces<"u"&&(s=e.editor.insertSpaces==="false"?!1:!!e.editor.insertSpaces);let a=REt;const l=e.eol;l===`\r +`?a=2:l===` +`&&(a=1);let u=ha.trimAutoWhitespace;e.editor&&typeof e.editor.trimAutoWhitespace<"u"&&(u=e.editor.trimAutoWhitespace==="false"?!1:!!e.editor.trimAutoWhitespace);let c=ha.detectIndentation;e.editor&&typeof e.editor.detectIndentation<"u"&&(c=e.editor.detectIndentation==="false"?!1:!!e.editor.detectIndentation);let d=ha.largeFileOptimizations;e.editor&&typeof e.editor.largeFileOptimizations<"u"&&(d=e.editor.largeFileOptimizations==="false"?!1:!!e.editor.largeFileOptimizations);let h=ha.bracketPairColorizationOptions;return!((i=e.editor)===null||i===void 0)&&i.bracketPairColorization&&typeof e.editor.bracketPairColorization=="object"&&(h={enabled:!!e.editor.bracketPairColorization.enabled,independentColorPoolPerBracketType:!!e.editor.bracketPairColorization.independentColorPoolPerBracketType}),{isForSimpleWidget:t,tabSize:r,indentSize:o,insertSpaces:s,detectIndentation:c,defaultEOL:a,trimAutoWhitespace:u,largeFileOptimizations:d,bracketPairColorizationOptions:h}}_getEOL(e,t){if(e)return this._resourcePropertiesService.getEOL(e,t);const i=this._configurationService.getValue("files.eol",{overrideIdentifier:t});return i&&typeof i=="string"&&i!=="auto"?i:eu===3||eu===2?` +`:`\r +`}_shouldRestoreUndoStack(){const e=this._configurationService.getValue("files.restoreUndoStack");return typeof e=="boolean"?e:!0}getCreationOptions(e,t,i){const r=typeof e=="string"?e:e.languageId;let o=this._modelCreationOptionsByLanguageAndResource[r+t];if(!o){const s=this._configurationService.getValue("editor",{overrideIdentifier:r,resource:t}),a=this._getEOL(t,r);o=vS._readModelOptions({editor:s,eol:a},i),this._modelCreationOptionsByLanguageAndResource[r+t]=o}return o}_updateModelOptions(e){const t=this._modelCreationOptionsByLanguageAndResource;this._modelCreationOptionsByLanguageAndResource=Object.create(null);const i=Object.keys(this._models);for(let r=0,o=i.length;re){const t=[];for(this._disposedModels.forEach(i=>{i.sharesUndoRedoStack||t.push(i)}),t.sort((i,r)=>i.time-r.time);t.length>0&&this._disposedModelsHeapSize>e;){const i=t.shift();this._removeDisposedModel(i.uri),i.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(i.initialUndoRedoSnapshot)}}}_createModelData(e,t,i,r){const o=this.getCreationOptions(t,i,r),s=new im(e,t,o,i,this._undoRedoService,this._languageService,this._languageConfigurationService);if(i&&this._disposedModels.has(ey(i))){const u=this._removeDisposedModel(i),c=this._undoRedoService.getElements(i),d=this._getSHA1Computer(),h=d.canComputeSHA1(s)?d.computeSHA1(s)===u.sha1:!1;if(h||u.sharesUndoRedoStack){for(const g of c.past)Pf(g)&&g.matchesResource(i)&&g.setModel(s);for(const g of c.future)Pf(g)&&g.matchesResource(i)&&g.setModel(s);this._undoRedoService.setElementsValidFlag(i,!0,g=>Pf(g)&&g.matchesResource(i)),h&&(s._overwriteVersionId(u.versionId),s._overwriteAlternativeVersionId(u.alternativeVersionId),s._overwriteInitialUndoRedoSnapshot(u.initialUndoRedoSnapshot))}else u.initialUndoRedoSnapshot!==null&&this._undoRedoService.restoreSnapshot(u.initialUndoRedoSnapshot)}const a=ey(s.uri);if(this._models[a])throw new Error("ModelService: Cannot add model because it already exists!");const l=new WEt(s,u=>this._onWillDispose(u),(u,c)=>this._onDidChangeLanguage(u,c));return this._models[a]=l,l}createModel(e,t,i,r=!1){let o;return t?o=this._createModelData(e,t,i,r):o=this._createModelData(e,Ru,i,r),this._onModelAdded.fire(o.model),o.model}getModels(){const e=[],t=Object.keys(this._models);for(let i=0,r=t.length;i0||u.future.length>0){for(const c of u.past)Pf(c)&&c.matchesResource(e.uri)&&(o=!0,s+=c.heapSize(e.uri),c.setModel(e.uri));for(const c of u.future)Pf(c)&&c.matchesResource(e.uri)&&(o=!0,s+=c.heapSize(e.uri),c.setModel(e.uri))}}const a=vS.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK,l=this._getSHA1Computer();if(o)if(!r&&(s>a||!l.canComputeSHA1(e))){const u=i.model.getInitialUndoRedoSnapshot();u!==null&&this._undoRedoService.restoreSnapshot(u)}else this._ensureDisposedModelsHeapSize(a-s),this._undoRedoService.setElementsValidFlag(e.uri,!1,u=>Pf(u)&&u.matchesResource(e.uri)),this._insertDisposedModel(new GEt(e.uri,i.model.getInitialUndoRedoSnapshot(),Date.now(),r,s,l.computeSHA1(e),e.getVersionId(),e.getAlternativeVersionId()));else if(!r){const u=i.model.getInitialUndoRedoSnapshot();u!==null&&this._undoRedoService.restoreSnapshot(u)}delete this._models[t],i.dispose(),delete this._modelCreationOptionsByLanguageAndResource[e.getLanguageId()+e.uri],this._onModelRemoved.fire(e)}_onDidChangeLanguage(e,t){const i=t.oldLanguage,r=e.getLanguageId(),o=this.getCreationOptions(i,e.uri,e.isForSimpleWidget),s=this.getCreationOptions(r,e.uri,e.isForSimpleWidget);vS._setModelOptionsForModel(e,s,o),this._onModelModeChanged.fire({model:e,oldLanguageId:i})}_getSHA1Computer(){return new sG}};oG.MAX_MEMORY_FOR_CLOSED_FILES_UNDO_STACK=20*1024*1024,oG=vS=EEt([lN(0,Xn),lN(1,M2e),lN(2,uE),lN(3,Cr),lN(4,$i)],oG);class sG{canComputeSHA1(e){return e.getValueLength()<=sG.MAX_MODEL_SIZE}computeSHA1(e){const t=new w5,i=e.createSnapshot();let r;for(;r=i.read();)t.update(r);return t.digest()}}sG.MAX_MODEL_SIZE=10*1024*1024;var LQ;(function(n){n[n.PRESERVE=0]="PRESERVE",n[n.LAST=1]="LAST"})(LQ||(LQ={}));const _Fe={Quickaccess:"workbench.contributions.quickaccess"};class VEt{constructor(){this.providers=[],this.defaultProvider=void 0}registerQuickAccessProvider(e){return e.prefix.length===0?this.defaultProvider=e:this.providers.push(e),this.providers.sort((t,i)=>i.prefix.length-t.prefix.length),en(()=>{this.providers.splice(this.providers.indexOf(e),1),this.defaultProvider===e&&(this.defaultProvider=void 0)})}getQuickAccessProviders(){return Gg([this.defaultProvider,...this.providers])}getQuickAccessProvider(e){return e&&this.providers.find(i=>e.startsWith(i.prefix))||void 0||this.defaultProvider}}xo.add(_Fe.Quickaccess,new VEt);var XEt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},DFe=function(n,e){return function(t,i){e(t,i,n)}};let FQ=class extends De{constructor(e,t){super(),this.quickInputService=e,this.instantiationService=t,this.registry=xo.as(_Fe.Quickaccess),this.mapProviderToDescriptor=new Map,this.lastAcceptedPickerValues=new Map,this.visibleQuickAccess=void 0}show(e="",t){this.doShowOrPick(e,!1,t)}doShowOrPick(e,t,i){var r;const[o,s]=this.getOrInstantiateProvider(e),a=this.visibleQuickAccess,l=a==null?void 0:a.descriptor;if(a&&s&&l===s){e!==s.prefix&&!(i!=null&&i.preserveValue)&&(a.picker.value=e),this.adjustValueSelection(a.picker,s,i);return}if(s&&!(i!=null&&i.preserveValue)){let g;if(a&&l&&l!==s){const m=a.value.substr(l.prefix.length);m&&(g=`${s.prefix}${m}`)}if(!g){const m=o==null?void 0:o.defaultFilterValue;m===LQ.LAST?g=this.lastAcceptedPickerValues.get(s):typeof m=="string"&&(g=`${s.prefix}${m}`)}typeof g=="string"&&(e=g)}const u=new je,c=u.add(this.quickInputService.createQuickPick());c.value=e,this.adjustValueSelection(c,s,i),c.placeholder=s==null?void 0:s.placeholder,c.quickNavigate=i==null?void 0:i.quickNavigateConfiguration,c.hideInput=!!c.quickNavigate&&!a,(typeof(i==null?void 0:i.itemActivation)=="number"||i!=null&&i.quickNavigateConfiguration)&&(c.itemActivation=(r=i==null?void 0:i.itemActivation)!==null&&r!==void 0?r:gm.SECOND),c.contextKey=s==null?void 0:s.contextKey,c.filterValue=g=>g.substring(s?s.prefix.length:0);let d;t&&(d=new dY,u.add(ft.once(c.onWillAccept)(g=>{g.veto(),c.hide()}))),u.add(this.registerPickerListeners(c,o,s,e,i==null?void 0:i.providerOptions));const h=u.add(new co);if(o&&u.add(o.provide(c,h.token,i==null?void 0:i.providerOptions)),ft.once(c.onDidHide)(()=>{c.selectedItems.length===0&&h.cancel(),u.dispose(),d==null||d.complete(c.selectedItems.slice(0))}),c.show(),t)return d==null?void 0:d.p}adjustValueSelection(e,t,i){var r;let o;i!=null&&i.preserveValue?o=[e.value.length,e.value.length]:o=[(r=t==null?void 0:t.prefix.length)!==null&&r!==void 0?r:0,e.value.length],e.valueSelection=o}registerPickerListeners(e,t,i,r,o){const s=new je,a=this.visibleQuickAccess={picker:e,descriptor:i,value:r};return s.add(en(()=>{a===this.visibleQuickAccess&&(this.visibleQuickAccess=void 0)})),s.add(e.onDidChangeValue(l=>{const[u]=this.getOrInstantiateProvider(l);u!==t?this.show(l,{preserveValue:!0,providerOptions:o}):a.value=l})),i&&s.add(e.onDidAccept(()=>{this.lastAcceptedPickerValues.set(i,e.value)})),s}getOrInstantiateProvider(e){const t=this.registry.getQuickAccessProvider(e);if(!t)return[void 0,void 0];let i=this.mapProviderToDescriptor.get(t);return i||(i=this.instantiationService.createInstance(t.ctor),this.mapProviderToDescriptor.set(t,i)),[i,t]}};FQ=XEt([DFe(0,vv),DFe(1,tn)],FQ);const AFe=new Mg(()=>{const n=new Intl.Collator(void 0,{numeric:!0,sensitivity:"base"});return{collator:n,collatorIsNumeric:n.resolvedOptions().numeric}});function PEt(n,e,t=!1){const i=n||"",r=e||"",o=AFe.value.collator.compare(i,r);return AFe.value.collatorIsNumeric&&o===0&&i!==r?ir.length)return 1}return 0}var zEt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o};class NFe{constructor(e){this.nodes=e}toString(){return this.nodes.map(e=>typeof e=="string"?e:e.label).join("")}}zEt([qr],NFe.prototype,"toString",null);const YEt=/\[([^\]]+)\]\(((?:https?:\/\/|command:|file:)[^\)\s]+)(?: (["'])(.+?)(\3))?\)/gi;function HEt(n){const e=[];let t=0,i;for(;i=YEt.exec(n);){i.index-t>0&&e.push(n.substring(t,i.index));const[,r,o,,s]=i;s?e.push({label:r,href:o,title:s}):e.push({label:r,href:o}),t=i.index+i[0].length}return t{Ogt(g)&&En.stop(g,!0),t.callback(o.href)},u=t.disposables.add(new Qn(a,at.CLICK)).event,c=t.disposables.add(new Qn(a,at.KEY_DOWN)).event,d=ft.chain(c,g=>g.filter(m=>{const f=new nr(m);return f.equals(10)||f.equals(3)}));t.disposables.add(er.addTarget(a));const h=t.disposables.add(new Qn(a,qi.Tap)).event;ft.any(u,h,d)(l,null,t.disposables),e.appendChild(a)}}var kFe=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o};const Kh=vt;class jEt{constructor(e,t,i,r,o,s,a){var l,u,c;this._checked=!1,this._hidden=!1,this.hasCheckbox=r,this.index=i,this.fireButtonTriggered=o,this.fireSeparatorButtonTriggered=s,this._onChecked=a,this.onChecked=r?ft.map(ft.filter(this._onChecked.event,d=>d.listElement===this),d=>d.checked):ft.None,e.type==="separator"?this._separator=e:(this.item=e,t&&t.type==="separator"&&!t.buttons&&(this._separator=t),this.saneDescription=this.item.description,this.saneDetail=this.item.detail,this._labelHighlights=(l=this.item.highlights)===null||l===void 0?void 0:l.label,this._descriptionHighlights=(u=this.item.highlights)===null||u===void 0?void 0:u.description,this._detailHighlights=(c=this.item.highlights)===null||c===void 0?void 0:c.detail,this.saneTooltip=this.item.tooltip),this._init=new Mg(()=>{var d;const h=(d=e.label)!==null&&d!==void 0?d:"",g=fD(h).text.trim(),m=e.ariaLabel||[h,this.saneDescription,this.saneDetail].map(f=>Y2t(f)).filter(f=>!!f).join(", ");return{saneLabel:h,saneSortLabel:g,saneAriaLabel:m}})}get saneLabel(){return this._init.value.saneLabel}get saneSortLabel(){return this._init.value.saneSortLabel}get saneAriaLabel(){return this._init.value.saneAriaLabel}get element(){return this._element}set element(e){this._element=e}get hidden(){return this._hidden}set hidden(e){this._hidden=e}get checked(){return this._checked}set checked(e){e!==this._checked&&(this._checked=e,this._onChecked.fire({listElement:this,checked:e}))}get separator(){return this._separator}set separator(e){this._separator=e}get labelHighlights(){return this._labelHighlights}set labelHighlights(e){this._labelHighlights=e}get descriptionHighlights(){return this._descriptionHighlights}set descriptionHighlights(e){this._descriptionHighlights=e}get detailHighlights(){return this._detailHighlights}set detailHighlights(e){this._detailHighlights=e}}class uN{constructor(e,t){this.themeService=e,this.hoverDelegate=t}get templateId(){return uN.ID}renderTemplate(e){const t=Object.create(null);t.toDisposeElement=[],t.toDisposeTemplate=[],t.entry=Je(e,Kh(".quick-input-list-entry"));const i=Je(t.entry,Kh("label.quick-input-list-label"));t.toDisposeTemplate.push(Gr(i,at.CLICK,u=>{t.checkbox.offsetParent||u.preventDefault()})),t.checkbox=Je(i,Kh("input.quick-input-list-checkbox")),t.checkbox.type="checkbox",t.toDisposeTemplate.push(Gr(t.checkbox,at.CHANGE,u=>{t.element.checked=t.checkbox.checked}));const r=Je(i,Kh(".quick-input-list-rows")),o=Je(r,Kh(".quick-input-list-row")),s=Je(r,Kh(".quick-input-list-row"));t.label=new KW(o,{supportHighlights:!0,supportDescriptionHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),t.toDisposeTemplate.push(t.label),t.icon=UY(t.label.element,Kh(".quick-input-list-icon"));const a=Je(o,Kh(".quick-input-list-entry-keybinding"));t.keybinding=new pw(a,eu);const l=Je(s,Kh(".quick-input-list-label-meta"));return t.detail=new KW(l,{supportHighlights:!0,supportIcons:!0,hoverDelegate:this.hoverDelegate}),t.toDisposeTemplate.push(t.detail),t.separator=Je(t.entry,Kh(".quick-input-list-separator")),t.actionBar=new Rc(t.entry,this.hoverDelegate?{hoverDelegate:this.hoverDelegate}:void 0),t.actionBar.domNode.classList.add("quick-input-list-entry-action-bar"),t.toDisposeTemplate.push(t.actionBar),t}renderElement(e,t,i){var r,o,s,a;i.element=e,e.element=(r=i.entry)!==null&&r!==void 0?r:void 0;const l=e.item?e.item:e.separator;i.checkbox.checked=e.checked,i.toDisposeElement.push(e.onChecked(f=>i.checkbox.checked=f));const{labelHighlights:u,descriptionHighlights:c,detailHighlights:d}=e;if(!((o=e.item)===null||o===void 0)&&o.iconPath){const f=AT(this.themeService.getColorTheme().type)?e.item.iconPath.dark:(s=e.item.iconPath.light)!==null&&s!==void 0?s:e.item.iconPath.dark,b=$t.revive(f);i.icon.className="quick-input-list-icon",i.icon.style.backgroundImage=Ab(b)}else i.icon.style.backgroundImage="",i.icon.className=!((a=e.item)===null||a===void 0)&&a.iconClass?`quick-input-list-icon ${e.item.iconClass}`:"";let h;!e.saneTooltip&&e.saneDescription&&(h={markdown:{value:e.saneDescription,supportThemeIcons:!0},markdownNotSupportedFallback:e.saneDescription});const g={matches:u||[],descriptionTitle:h,descriptionMatches:c||[],labelEscapeNewLines:!0};if(l.type!=="separator"?(g.extraClasses=l.iconClasses,g.italic=l.italic,g.strikethrough=l.strikethrough,i.entry.classList.remove("quick-input-list-separator-as-item")):i.entry.classList.add("quick-input-list-separator-as-item"),i.label.setLabel(e.saneLabel,e.saneDescription,g),i.keybinding.set(l.type==="separator"?void 0:l.keybinding),e.saneDetail){let f;e.saneTooltip||(f={markdown:{value:e.saneDetail,supportThemeIcons:!0},markdownNotSupportedFallback:e.saneDetail}),i.detail.element.style.display="",i.detail.setLabel(e.saneDetail,void 0,{matches:d,title:f,labelEscapeNewLines:!0})}else i.detail.element.style.display="none";e.item&&e.separator&&e.separator.label?(i.separator.textContent=e.separator.label,i.separator.style.display=""):i.separator.style.display="none",i.entry.classList.toggle("quick-input-list-separator-border",!!e.separator);const m=l.buttons;m&&m.length?(i.actionBar.push(m.map((f,b)=>DQ(f,`id-${b}`,()=>l.type!=="separator"?e.fireButtonTriggered({button:f,item:l}):e.fireSeparatorButtonTriggered({button:f,separator:l}))),{icon:!0,label:!1}),i.entry.classList.add("has-actions")):i.entry.classList.remove("has-actions")}disposeElement(e,t,i){i.toDisposeElement=Mi(i.toDisposeElement),i.actionBar.clear()}disposeTemplate(e){e.toDisposeElement=Mi(e.toDisposeElement),e.toDisposeTemplate=Mi(e.toDisposeTemplate)}}uN.ID="listelement";class QEt{getHeight(e){return e.item?e.saneDetail?44:22:24}getTemplateId(e){return uN.ID}}var fs;(function(n){n[n.First=1]="First",n[n.Second=2]="Second",n[n.Last=3]="Last",n[n.Next=4]="Next",n[n.Previous=5]="Previous",n[n.NextPage=6]="NextPage",n[n.PreviousPage=7]="PreviousPage"})(fs||(fs={}));class AQ{constructor(e,t,i,r){this.parent=e,this.options=i,this.inputElements=[],this.elements=[],this.elementsToIndexes=new Map,this.matchOnDescription=!1,this.matchOnDetail=!1,this.matchOnLabel=!0,this.matchOnLabelMode="fuzzy",this.sortByLabel=!0,this._onChangedAllVisibleChecked=new be,this.onChangedAllVisibleChecked=this._onChangedAllVisibleChecked.event,this._onChangedCheckedCount=new be,this.onChangedCheckedCount=this._onChangedCheckedCount.event,this._onChangedVisibleCount=new be,this.onChangedVisibleCount=this._onChangedVisibleCount.event,this._onChangedCheckedElements=new be,this.onChangedCheckedElements=this._onChangedCheckedElements.event,this._onButtonTriggered=new be,this.onButtonTriggered=this._onButtonTriggered.event,this._onSeparatorButtonTriggered=new be,this.onSeparatorButtonTriggered=this._onSeparatorButtonTriggered.event,this._onKeyDown=new be,this.onKeyDown=this._onKeyDown.event,this._onLeave=new be,this.onLeave=this._onLeave.event,this._listElementChecked=new be,this._fireCheckedEvents=!0,this.elementDisposables=[],this.disposables=[],this.id=t,this.container=Je(this.parent,Kh(".quick-input-list"));const o=new QEt,s=new eWt;this.list=i.createList("QuickInput",this.container,o,[new uN(r,i.hoverDelegate)],{identityProvider:{getId:l=>{var u,c,d,h,g,m,f,b;return(b=(m=(h=(c=(u=l.item)===null||u===void 0?void 0:u.id)!==null&&c!==void 0?c:(d=l.item)===null||d===void 0?void 0:d.label)!==null&&h!==void 0?h:(g=l.separator)===null||g===void 0?void 0:g.id)!==null&&m!==void 0?m:(f=l.separator)===null||f===void 0?void 0:f.label)!==null&&b!==void 0?b:""}},setRowLineHeight:!1,multipleSelectionSupport:!1,horizontalScrolling:!1,accessibilityProvider:s}),this.list.getHTMLElement().id=t,this.disposables.push(this.list),this.disposables.push(this.list.onKeyDown(l=>{const u=new nr(l);switch(u.keyCode){case 10:this.toggleCheckbox();break;case 31:($n?l.metaKey:l.ctrlKey)&&this.list.setFocus($a(this.list.length));break;case 16:{const c=this.list.getFocus();c.length===1&&c[0]===0&&this._onLeave.fire();break}case 18:{const c=this.list.getFocus();c.length===1&&c[0]===this.list.length-1&&this._onLeave.fire();break}}this._onKeyDown.fire(u)})),this.disposables.push(this.list.onMouseDown(l=>{l.browserEvent.button!==2&&l.browserEvent.preventDefault()})),this.disposables.push(Ve(this.container,at.CLICK,l=>{(l.x||l.y)&&this._onLeave.fire()})),this.disposables.push(this.list.onMouseMiddleClick(l=>{this._onLeave.fire()})),this.disposables.push(this.list.onContextMenu(l=>{typeof l.index=="number"&&(l.browserEvent.preventDefault(),this.list.setSelection([l.index]))}));const a=new nbe(i.hoverDelegate.delay);this.disposables.push(this.list.onMouseOver(async l=>{var u;if(l.browserEvent.target instanceof HTMLAnchorElement){a.cancel();return}if(!(!(l.browserEvent.relatedTarget instanceof HTMLAnchorElement)&&xs(l.browserEvent.relatedTarget,(u=l.element)===null||u===void 0?void 0:u.element)))try{await a.trigger(async()=>{l.element&&this.showHover(l.element)})}catch(c){if(!Ng(c))throw c}})),this.disposables.push(this.list.onMouseOut(l=>{var u;xs(l.browserEvent.relatedTarget,(u=l.element)===null||u===void 0?void 0:u.element)||a.cancel()})),this.disposables.push(a),this.disposables.push(this._listElementChecked.event(l=>this.fireCheckedEvents())),this.disposables.push(this._onChangedAllVisibleChecked,this._onChangedCheckedCount,this._onChangedVisibleCount,this._onChangedCheckedElements,this._onButtonTriggered,this._onSeparatorButtonTriggered,this._onLeave,this._onKeyDown)}get onDidChangeFocus(){return ft.map(this.list.onDidChangeFocus,e=>e.elements.map(t=>t.item))}get onDidChangeSelection(){return ft.map(this.list.onDidChangeSelection,e=>({items:e.elements.map(t=>t.item),event:e.browserEvent}))}get scrollTop(){return this.list.scrollTop}set scrollTop(e){this.list.scrollTop=e}get ariaLabel(){return this.list.getHTMLElement().ariaLabel}set ariaLabel(e){this.list.getHTMLElement().ariaLabel=e}getAllVisibleChecked(){return this.allVisibleChecked(this.elements,!1)}allVisibleChecked(e,t=!0){for(let i=0,r=e.length;i{t.hidden||(t.checked=e)})}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}setElements(e){this.elementDisposables=Mi(this.elementDisposables);const t=s=>this.fireButtonTriggered(s),i=s=>this.fireSeparatorButtonTriggered(s);this.inputElements=e;const r=new Map,o=this.parent.classList.contains("show-checkboxes");this.elements=e.reduce((s,a,l)=>{var u;const c=l>0?e[l-1]:void 0;if(a.type==="separator"&&!a.buttons)return s;const d=new jEt(a,c,l,o,t,i,this._listElementChecked),h=s.length;return s.push(d),r.set((u=d.item)!==null&&u!==void 0?u:d.separator,h),s},[]),this.elementsToIndexes=r,this.list.splice(0,this.list.length),this.list.splice(0,this.list.length,this.elements),this._onChangedVisibleCount.fire(this.elements.length)}getFocusedElements(){return this.list.getFocusedElements().map(e=>e.item)}setFocusedElements(e){if(this.list.setFocus(e.filter(t=>this.elementsToIndexes.has(t)).map(t=>this.elementsToIndexes.get(t))),e.length>0){const t=this.list.getFocus()[0];typeof t=="number"&&this.list.reveal(t)}}getActiveDescendant(){return this.list.getHTMLElement().getAttribute("aria-activedescendant")}setSelectedElements(e){this.list.setSelection(e.filter(t=>this.elementsToIndexes.has(t)).map(t=>this.elementsToIndexes.get(t)))}getCheckedElements(){return this.elements.filter(e=>e.checked).map(e=>e.item).filter(e=>!!e)}setCheckedElements(e){try{this._fireCheckedEvents=!1;const t=new Set;for(const i of e)t.add(i);for(const i of this.elements)i.checked=t.has(i.item)}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}set enabled(e){this.list.getHTMLElement().style.pointerEvents=e?"":"none"}focus(e){if(!this.list.length)return;switch(e===fs.Second&&this.list.length<2&&(e=fs.First),e){case fs.First:this.list.scrollTop=0,this.list.focusFirst(void 0,i=>!!i.item);break;case fs.Second:this.list.scrollTop=0,this.list.focusNth(1,void 0,i=>!!i.item);break;case fs.Last:this.list.scrollTop=this.list.scrollHeight,this.list.focusLast(void 0,i=>!!i.item);break;case fs.Next:{this.list.focusNext(void 0,!0,void 0,r=>!!r.item);const i=this.list.getFocus()[0];i!==0&&!this.elements[i-1].item&&this.list.firstVisibleIndex>i-1&&this.list.reveal(i-1);break}case fs.Previous:{this.list.focusPrevious(void 0,!0,void 0,r=>!!r.item);const i=this.list.getFocus()[0];i!==0&&!this.elements[i-1].item&&this.list.firstVisibleIndex>i-1&&this.list.reveal(i-1);break}case fs.NextPage:this.list.focusNextPage(void 0,i=>!!i.item);break;case fs.PreviousPage:this.list.focusPreviousPage(void 0,i=>!!i.item);break}const t=this.list.getFocus()[0];typeof t=="number"&&this.list.reveal(t)}clearFocus(){this.list.setFocus([])}domFocus(){this.list.domFocus()}showHover(e){var t,i,r;this._lastHover&&!this._lastHover.isDisposed&&((i=(t=this.options.hoverDelegate).onDidHideHover)===null||i===void 0||i.call(t),(r=this._lastHover)===null||r===void 0||r.dispose()),!(!e.element||!e.saneTooltip)&&(this._lastHover=this.options.hoverDelegate.showHover({content:e.saneTooltip,target:e.element,linkHandler:o=>{this.options.linkOpenerDelegate(o)},appearance:{showPointer:!0},container:this.container,position:{hoverPosition:1}},!1))}layout(e){this.list.getHTMLElement().style.maxHeight=e?`${Math.floor(e/44)*44+6}px`:"",this.list.layout()}filter(e){if(!(this.sortByLabel||this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))return this.list.layout(),!1;const t=e;if(e=e.trim(),!e||!(this.matchOnLabel||this.matchOnDescription||this.matchOnDetail))this.elements.forEach(r=>{r.labelHighlights=void 0,r.descriptionHighlights=void 0,r.detailHighlights=void 0,r.hidden=!1;const o=r.index&&this.inputElements[r.index-1];r.item&&(r.separator=o&&o.type==="separator"&&!o.buttons?o:void 0)});else{let r;this.elements.forEach(o=>{var s,a,l,u;let c;this.matchOnLabelMode==="fuzzy"?c=this.matchOnLabel&&(s=x7(e,fD(o.saneLabel)))!==null&&s!==void 0?s:void 0:c=this.matchOnLabel&&(a=$Et(t,fD(o.saneLabel)))!==null&&a!==void 0?a:void 0;const d=this.matchOnDescription&&(l=x7(e,fD(o.saneDescription||"")))!==null&&l!==void 0?l:void 0,h=this.matchOnDetail&&(u=x7(e,fD(o.saneDetail||"")))!==null&&u!==void 0?u:void 0;if(c||d||h?(o.labelHighlights=c,o.descriptionHighlights=d,o.detailHighlights=h,o.hidden=!1):(o.labelHighlights=void 0,o.descriptionHighlights=void 0,o.detailHighlights=void 0,o.hidden=o.item?!o.item.alwaysShow:!0),o.item?o.separator=void 0:o.separator&&(o.hidden=!0),!this.sortByLabel){const g=o.index&&this.inputElements[o.index-1];r=g&&g.type==="separator"?g:r,r&&!o.hidden&&(o.separator=r,r=void 0)}})}const i=this.elements.filter(r=>!r.hidden);if(this.sortByLabel&&e){const r=e.toLowerCase();i.sort((o,s)=>qEt(o,s,r))}return this.elementsToIndexes=i.reduce((r,o,s)=>{var a;return r.set((a=o.item)!==null&&a!==void 0?a:o.separator,s),r},new Map),this.list.splice(0,this.list.length,i),this.list.setFocus([]),this.list.layout(),this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedVisibleCount.fire(i.length),!0}toggleCheckbox(){try{this._fireCheckedEvents=!1;const e=this.list.getFocusedElements(),t=this.allVisibleChecked(e);for(const i of e)i.checked=!t}finally{this._fireCheckedEvents=!0,this.fireCheckedEvents()}}display(e){this.container.style.display=e?"":"none"}isDisplayed(){return this.container.style.display!=="none"}dispose(){this.elementDisposables=Mi(this.elementDisposables),this.disposables=Mi(this.disposables)}fireCheckedEvents(){this._fireCheckedEvents&&(this._onChangedAllVisibleChecked.fire(this.getAllVisibleChecked()),this._onChangedCheckedCount.fire(this.getCheckedCount()),this._onChangedCheckedElements.fire(this.getCheckedElements()))}fireButtonTriggered(e){this._onButtonTriggered.fire(e)}fireSeparatorButtonTriggered(e){this._onSeparatorButtonTriggered.fire(e)}style(e){this.list.style(e)}toggleHover(){const e=this.list.getFocusedElements()[0];if(!(e!=null&&e.saneTooltip))return;if(this._lastHover&&!this._lastHover.isDisposed){this._lastHover.dispose();return}const t=this.list.getFocusedElements()[0];if(!t)return;this.showHover(t);const i=new je;i.add(this.list.onDidChangeFocus(r=>{r.indexes.length&&this.showHover(r.elements[0])})),this._lastHover&&i.add(this._lastHover),this._toggleHover=i,this.elementDisposables.push(this._toggleHover)}}kFe([qr],AQ.prototype,"onDidChangeFocus",null),kFe([qr],AQ.prototype,"onDidChangeSelection",null);function $Et(n,e){const{text:t,iconOffsets:i}=e;if(!i||i.length===0)return MFe(n,t);const r=d5(t," "),o=t.length-r.length,s=MFe(n,r);if(s)for(const a of s){const l=i[a.start+o]+o;a.start+=l,a.end+=l}return s}function MFe(n,e){const t=e.toLowerCase().indexOf(n.toLowerCase());return t!==-1?[{start:t,end:t+n.length}]:null}function qEt(n,e,t){const i=n.labelHighlights||[],r=e.labelHighlights||[];return i.length&&!r.length?-1:!i.length&&r.length?1:i.length===0&&r.length===0?0:OEt(n.saneSortLabel,e.saneSortLabel,t)}class eWt{getWidgetAriaLabel(){return x("quickInput","Quick Input")}getAriaLabel(e){var t;return!((t=e.separator)===null||t===void 0)&&t.label?`${e.saneAriaLabel}, ${e.separator.label}`:e.saneAriaLabel}getWidgetRole(){return"listbox"}getRole(e){return e.hasCheckbox?"checkbox":"option"}isChecked(e){if(e.hasCheckbox)return{value:e.checked,onDidChange:e.onChecked}}}var tWt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},ZFe=function(n,e){return function(t,i){e(t,i,n)}};const NQ={iconClass:on.asClassName(ct.quickInputBack),tooltip:x("quickInput.back","Back"),handle:-1};class cN extends De{constructor(e){super(),this.ui=e,this._widgetUpdated=!1,this.visible=!1,this._enabled=!0,this._busy=!1,this._ignoreFocusOut=!1,this._buttons=[],this.buttonsUpdated=!1,this._toggles=[],this.togglesUpdated=!1,this.noValidationMessage=cN.noPromptMessage,this._severity=to.Ignore,this.onDidTriggerButtonEmitter=this._register(new be),this.onDidHideEmitter=this._register(new be),this.onDisposeEmitter=this._register(new be),this.visibleDisposables=this._register(new je),this.onDidHide=this.onDidHideEmitter.event}get title(){return this._title}set title(e){this._title=e,this.update()}get description(){return this._description}set description(e){this._description=e,this.update()}get step(){return this._steps}set step(e){this._steps=e,this.update()}get totalSteps(){return this._totalSteps}set totalSteps(e){this._totalSteps=e,this.update()}get enabled(){return this._enabled}set enabled(e){this._enabled=e,this.update()}get contextKey(){return this._contextKey}set contextKey(e){this._contextKey=e,this.update()}get busy(){return this._busy}set busy(e){this._busy=e,this.update()}get ignoreFocusOut(){return this._ignoreFocusOut}set ignoreFocusOut(e){const t=this._ignoreFocusOut!==e&&!Dg;this._ignoreFocusOut=e&&!Dg,t&&this.update()}get buttons(){return this._buttons}set buttons(e){this._buttons=e,this.buttonsUpdated=!0,this.update()}get toggles(){return this._toggles}set toggles(e){this._toggles=e??[],this.togglesUpdated=!0,this.update()}get validationMessage(){return this._validationMessage}set validationMessage(e){this._validationMessage=e,this.update()}get severity(){return this._severity}set severity(e){this._severity=e,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.onDidTriggerButton(e=>{this.buttons.indexOf(e)!==-1&&this.onDidTriggerButtonEmitter.fire(e)})),this.ui.show(this),this.visible=!0,this._lastValidationMessage=void 0,this._lastSeverity=void 0,this.buttons.length&&(this.buttonsUpdated=!0),this.toggles.length&&(this.togglesUpdated=!0),this.update())}hide(){this.visible&&this.ui.hide()}didHide(e=kD.Other){this.visible=!1,this.visibleDisposables.clear(),this.onDidHideEmitter.fire({reason:e})}update(){var e,t;if(!this.visible)return;const i=this.getTitle();i&&this.ui.title.textContent!==i?this.ui.title.textContent=i:!i&&this.ui.title.innerHTML!==" "&&(this.ui.title.innerText=" ");const r=this.getDescription();if(this.ui.description1.textContent!==r&&(this.ui.description1.textContent=r),this.ui.description2.textContent!==r&&(this.ui.description2.textContent=r),this._widgetUpdated&&(this._widgetUpdated=!1,this._widget?ua(this.ui.widget,this._widget):ua(this.ui.widget)),this.busy&&!this.busyDelay&&(this.busyDelay=new md,this.busyDelay.setIfNotSet(()=>{this.visible&&this.ui.progressBar.infinite()},800)),!this.busy&&this.busyDelay&&(this.ui.progressBar.stop(),this.busyDelay.cancel(),this.busyDelay=void 0),this.buttonsUpdated){this.buttonsUpdated=!1,this.ui.leftActionBar.clear();const s=this.buttons.filter(l=>l===NQ).map((l,u)=>DQ(l,`id-${u}`,async()=>this.onDidTriggerButtonEmitter.fire(l)));this.ui.leftActionBar.push(s,{icon:!0,label:!1}),this.ui.rightActionBar.clear();const a=this.buttons.filter(l=>l!==NQ).map((l,u)=>DQ(l,`id-${u}`,async()=>this.onDidTriggerButtonEmitter.fire(l)));this.ui.rightActionBar.push(a,{icon:!0,label:!1})}if(this.togglesUpdated){this.togglesUpdated=!1;const s=(t=(e=this.toggles)===null||e===void 0?void 0:e.filter(a=>a instanceof Fw))!==null&&t!==void 0?t:[];this.ui.inputBox.toggles=s}this.ui.ignoreFocusOut=this.ignoreFocusOut,this.ui.setEnabled(this.enabled),this.ui.setContextKey(this.contextKey);const o=this.validationMessage||this.noValidationMessage;this._lastValidationMessage!==o&&(this._lastValidationMessage=o,ua(this.ui.message),KEt(o,this.ui.message,{callback:s=>{this.ui.linkOpenerDelegate(s)},disposables:this.visibleDisposables})),this._lastSeverity!==this.severity&&(this._lastSeverity=this.severity,this.showMessageDecoration(this.severity))}getTitle(){return this.title&&this.step?`${this.title} (${this.getSteps()})`:this.title?this.title:this.step?this.getSteps():""}getDescription(){return this.description||""}getSteps(){return this.step&&this.totalSteps?x("quickInput.steps","{0}/{1}",this.step,this.totalSteps):this.step?String(this.step):""}showMessageDecoration(e){if(this.ui.inputBox.showDecoration(e),e!==to.Ignore){const t=this.ui.inputBox.stylesForType(e);this.ui.message.style.color=t.foreground?`${t.foreground}`:"",this.ui.message.style.backgroundColor=t.background?`${t.background}`:"",this.ui.message.style.border=t.border?`1px solid ${t.border}`:"",this.ui.message.style.marginBottom="-2px"}else this.ui.message.style.color="",this.ui.message.style.backgroundColor="",this.ui.message.style.border="",this.ui.message.style.marginBottom=""}dispose(){this.hide(),this.onDisposeEmitter.fire(),super.dispose()}}cN.noPromptMessage=x("inputModeEntry","Press 'Enter' to confirm your input or 'Escape' to cancel");class dN extends cN{constructor(){super(...arguments),this._value="",this.onDidChangeValueEmitter=this._register(new be),this.onWillAcceptEmitter=this._register(new be),this.onDidAcceptEmitter=this._register(new be),this.onDidCustomEmitter=this._register(new be),this._items=[],this.itemsUpdated=!1,this._canSelectMany=!1,this._canAcceptInBackground=!1,this._matchOnDescription=!1,this._matchOnDetail=!1,this._matchOnLabel=!0,this._matchOnLabelMode="fuzzy",this._sortByLabel=!0,this._keepScrollPosition=!1,this._itemActivation=gm.FIRST,this._activeItems=[],this.activeItemsUpdated=!1,this.activeItemsToConfirm=[],this.onDidChangeActiveEmitter=this._register(new be),this._selectedItems=[],this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=[],this.onDidChangeSelectionEmitter=this._register(new be),this.onDidTriggerItemButtonEmitter=this._register(new be),this.onDidTriggerSeparatorButtonEmitter=this._register(new be),this.valueSelectionUpdated=!0,this._ok="default",this._customButton=!1,this.filterValue=e=>e,this.onDidChangeValue=this.onDidChangeValueEmitter.event,this.onWillAccept=this.onWillAcceptEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event,this.onDidChangeActive=this.onDidChangeActiveEmitter.event,this.onDidChangeSelection=this.onDidChangeSelectionEmitter.event,this.onDidTriggerItemButton=this.onDidTriggerItemButtonEmitter.event,this.onDidTriggerSeparatorButton=this.onDidTriggerSeparatorButtonEmitter.event}get quickNavigate(){return this._quickNavigate}set quickNavigate(e){this._quickNavigate=e,this.update()}get value(){return this._value}set value(e){this.doSetValue(e)}doSetValue(e,t){this._value!==e&&(this._value=e,t||this.update(),this.visible&&this.ui.list.filter(this.filterValue(this._value))&&this.trySelectFirst(),this.onDidChangeValueEmitter.fire(this._value))}set ariaLabel(e){this._ariaLabel=e,this.update()}get ariaLabel(){return this._ariaLabel}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.update()}get items(){return this._items}get scrollTop(){return this.ui.list.scrollTop}set scrollTop(e){this.ui.list.scrollTop=e}set items(e){this._items=e,this.itemsUpdated=!0,this.update()}get canSelectMany(){return this._canSelectMany}set canSelectMany(e){this._canSelectMany=e,this.update()}get canAcceptInBackground(){return this._canAcceptInBackground}set canAcceptInBackground(e){this._canAcceptInBackground=e}get matchOnDescription(){return this._matchOnDescription}set matchOnDescription(e){this._matchOnDescription=e,this.update()}get matchOnDetail(){return this._matchOnDetail}set matchOnDetail(e){this._matchOnDetail=e,this.update()}get matchOnLabel(){return this._matchOnLabel}set matchOnLabel(e){this._matchOnLabel=e,this.update()}get matchOnLabelMode(){return this._matchOnLabelMode}set matchOnLabelMode(e){this._matchOnLabelMode=e,this.update()}get sortByLabel(){return this._sortByLabel}set sortByLabel(e){this._sortByLabel=e,this.update()}get keepScrollPosition(){return this._keepScrollPosition}set keepScrollPosition(e){this._keepScrollPosition=e}get itemActivation(){return this._itemActivation}set itemActivation(e){this._itemActivation=e}get activeItems(){return this._activeItems}set activeItems(e){this._activeItems=e,this.activeItemsUpdated=!0,this.update()}get selectedItems(){return this._selectedItems}set selectedItems(e){this._selectedItems=e,this.selectedItemsUpdated=!0,this.update()}get keyMods(){return this._quickNavigate?zxt:this.ui.keyMods}set valueSelection(e){this._valueSelection=e,this.valueSelectionUpdated=!0,this.update()}get customButton(){return this._customButton}set customButton(e){this._customButton=e,this.update()}get customLabel(){return this._customButtonLabel}set customLabel(e){this._customButtonLabel=e,this.update()}get customHover(){return this._customButtonHover}set customHover(e){this._customButtonHover=e,this.update()}get ok(){return this._ok}set ok(e){this._ok=e,this.update()}get hideInput(){return!!this._hideInput}set hideInput(e){this._hideInput=e,this.update()}trySelectFirst(){this.canSelectMany||this.ui.list.focus(fs.First)}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(e=>{this.doSetValue(e,!0)})),this.visibleDisposables.add((this._hideInput?this.ui.list:this.ui.inputBox).onKeyDown(e=>{switch(e.keyCode){case 18:this.ui.list.focus(fs.Next),this.canSelectMany&&this.ui.list.domFocus(),En.stop(e,!0);break;case 16:this.ui.list.getFocusedElements().length?this.ui.list.focus(fs.Previous):this.ui.list.focus(fs.Last),this.canSelectMany&&this.ui.list.domFocus(),En.stop(e,!0);break;case 12:this.ui.list.focus(fs.NextPage),this.canSelectMany&&this.ui.list.domFocus(),En.stop(e,!0);break;case 11:this.ui.list.focus(fs.PreviousPage),this.canSelectMany&&this.ui.list.domFocus(),En.stop(e,!0);break;case 17:if(!this._canAcceptInBackground||!this.ui.inputBox.isSelectionAtEnd())return;this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!0));break;case 14:(e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey&&(this.ui.list.focus(fs.First),En.stop(e,!0));break;case 13:(e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey&&(this.ui.list.focus(fs.Last),En.stop(e,!0));break}})),this.visibleDisposables.add(this.ui.onDidAccept(()=>{this.canSelectMany?this.ui.list.getCheckedElements().length||(this._selectedItems=[],this.onDidChangeSelectionEmitter.fire(this.selectedItems)):this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems)),this.handleAccept(!1)})),this.visibleDisposables.add(this.ui.onDidCustom(()=>{this.onDidCustomEmitter.fire()})),this.visibleDisposables.add(this.ui.list.onDidChangeFocus(e=>{this.activeItemsUpdated||this.activeItemsToConfirm!==this._activeItems&&Ar(e,this._activeItems,(t,i)=>t===i)||(this._activeItems=e,this.onDidChangeActiveEmitter.fire(e))})),this.visibleDisposables.add(this.ui.list.onDidChangeSelection(({items:e,event:t})=>{if(this.canSelectMany){e.length&&this.ui.list.setSelectedElements([]);return}this.selectedItemsToConfirm!==this._selectedItems&&Ar(e,this._selectedItems,(i,r)=>i===r)||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e),e.length&&this.handleAccept(YY(t)&&t.button===1))})),this.visibleDisposables.add(this.ui.list.onChangedCheckedElements(e=>{this.canSelectMany&&(this.selectedItemsToConfirm!==this._selectedItems&&Ar(e,this._selectedItems,(t,i)=>t===i)||(this._selectedItems=e,this.onDidChangeSelectionEmitter.fire(e)))})),this.visibleDisposables.add(this.ui.list.onButtonTriggered(e=>this.onDidTriggerItemButtonEmitter.fire(e))),this.visibleDisposables.add(this.ui.list.onSeparatorButtonTriggered(e=>this.onDidTriggerSeparatorButtonEmitter.fire(e))),this.visibleDisposables.add(this.registerQuickNavigation()),this.valueSelectionUpdated=!0),super.show()}handleAccept(e){let t=!1;this.onWillAcceptEmitter.fire({veto:()=>t=!0}),t||this.onDidAcceptEmitter.fire({inBackground:e})}registerQuickNavigation(){return Ve(this.ui.container,at.KEY_UP,e=>{if(this.canSelectMany||!this._quickNavigate)return;const t=new nr(e),i=t.keyCode;this._quickNavigate.keybindings.some(s=>{const a=s.getChords();return a.length>1?!1:a[0].shiftKey&&i===4?!(t.ctrlKey||t.altKey||t.metaKey):!!(a[0].altKey&&i===6||a[0].ctrlKey&&i===5||a[0].metaKey&&i===57)})&&(this.activeItems[0]&&(this._selectedItems=[this.activeItems[0]],this.onDidChangeSelectionEmitter.fire(this.selectedItems),this.handleAccept(!1)),this._quickNavigate=void 0)})}update(){if(!this.visible)return;const e=this.keepScrollPosition?this.scrollTop:0,t=!!this.description,i={title:!!this.title||!!this.step||!!this.buttons.length,description:t,checkAll:this.canSelectMany&&!this._hideCheckAll,checkBox:this.canSelectMany,inputBox:!this._hideInput,progressBar:!this._hideInput||t,visibleCount:!0,count:this.canSelectMany&&!this._hideCountBadge,ok:this.ok==="default"?this.canSelectMany:this.ok,list:!0,message:!!this.validationMessage,customButton:this.customButton};this.ui.setVisibilities(i),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||"");let r=this.ariaLabel;if(!r&&i.inputBox&&(r=this.placeholder||dN.DEFAULT_ARIA_LABEL,this.title&&(r+=` - ${this.title}`)),this.ui.list.ariaLabel!==r&&(this.ui.list.ariaLabel=r??null),this.ui.list.matchOnDescription=this.matchOnDescription,this.ui.list.matchOnDetail=this.matchOnDetail,this.ui.list.matchOnLabel=this.matchOnLabel,this.ui.list.matchOnLabelMode=this.matchOnLabelMode,this.ui.list.sortByLabel=this.sortByLabel,this.itemsUpdated)switch(this.itemsUpdated=!1,this.ui.list.setElements(this.items),this.ui.list.filter(this.filterValue(this.ui.inputBox.value)),this.ui.checkAll.checked=this.ui.list.getAllVisibleChecked(),this.ui.visibleCount.setCount(this.ui.list.getVisibleCount()),this.ui.count.setCount(this.ui.list.getCheckedCount()),this._itemActivation){case gm.NONE:this._itemActivation=gm.FIRST;break;case gm.SECOND:this.ui.list.focus(fs.Second),this._itemActivation=gm.FIRST;break;case gm.LAST:this.ui.list.focus(fs.Last),this._itemActivation=gm.FIRST;break;default:this.trySelectFirst();break}this.ui.container.classList.contains("show-checkboxes")!==!!this.canSelectMany&&(this.canSelectMany?this.ui.list.clearFocus():this.trySelectFirst()),this.activeItemsUpdated&&(this.activeItemsUpdated=!1,this.activeItemsToConfirm=this._activeItems,this.ui.list.setFocusedElements(this.activeItems),this.activeItemsToConfirm===this._activeItems&&(this.activeItemsToConfirm=null)),this.selectedItemsUpdated&&(this.selectedItemsUpdated=!1,this.selectedItemsToConfirm=this._selectedItems,this.canSelectMany?this.ui.list.setCheckedElements(this.selectedItems):this.ui.list.setSelectedElements(this.selectedItems),this.selectedItemsToConfirm===this._selectedItems&&(this.selectedItemsToConfirm=null)),this.ui.customButton.label=this.customLabel||"",this.ui.customButton.element.title=this.customHover||"",i.inputBox||(this.ui.list.domFocus(),this.canSelectMany&&this.ui.list.focus(fs.First)),this.keepScrollPosition&&(this.scrollTop=e)}}dN.DEFAULT_ARIA_LABEL=x("quickInputBox.ariaLabel","Type to narrow down results.");class nWt extends cN{constructor(){super(...arguments),this._value="",this.valueSelectionUpdated=!0,this._password=!1,this.onDidValueChangeEmitter=this._register(new be),this.onDidAcceptEmitter=this._register(new be),this.onDidChangeValue=this.onDidValueChangeEmitter.event,this.onDidAccept=this.onDidAcceptEmitter.event}get value(){return this._value}set value(e){this._value=e||"",this.update()}get placeholder(){return this._placeholder}set placeholder(e){this._placeholder=e,this.update()}get password(){return this._password}set password(e){this._password=e,this.update()}show(){this.visible||(this.visibleDisposables.add(this.ui.inputBox.onDidChange(e=>{e!==this.value&&(this._value=e,this.onDidValueChangeEmitter.fire(e))})),this.visibleDisposables.add(this.ui.onDidAccept(()=>this.onDidAcceptEmitter.fire())),this.valueSelectionUpdated=!0),super.show()}update(){if(!this.visible)return;this.ui.container.classList.remove("hidden-input");const e={title:!!this.title||!!this.step||!!this.buttons.length,description:!!this.description||!!this.step,inputBox:!0,message:!0,progressBar:!0};this.ui.setVisibilities(e),super.update(),this.ui.inputBox.value!==this.value&&(this.ui.inputBox.value=this.value),this.valueSelectionUpdated&&(this.valueSelectionUpdated=!1,this.ui.inputBox.select(this._valueSelection&&{start:this._valueSelection[0],end:this._valueSelection[1]})),this.ui.inputBox.placeholder!==(this.placeholder||"")&&(this.ui.inputBox.placeholder=this.placeholder||""),this.ui.inputBox.password!==this.password&&(this.ui.inputBox.password=this.password)}}let kQ=class extends j3{constructor(e,t){super("element",!1,i=>this.getOverrideOptions(i),e,t)}getOverrideOptions(e){var t;const i=(e.content instanceof HTMLElement?(t=e.content.textContent)!==null&&t!==void 0?t:"":typeof e.content=="string"?e.content:e.content.value).includes(` +`);return{persistence:{hideOnKeyDown:!1},appearance:{showHoverHint:i,skipFadeInAnimation:!0}}}};kQ=tWt([ZFe(0,Xn),ZFe(1,cQ)],kQ);const TFe="done",EFe="active",MQ="infinite",ZQ="infinite-long-running",WFe="discrete";class aG extends De{constructor(e,t){super(),this.workedVal=0,this.showDelayedScheduler=this._register(new Vi(()=>ru(this.element),0)),this.longRunningScheduler=this._register(new Vi(()=>this.infiniteLongRunning(),aG.LONG_RUNNING_INFINITE_THRESHOLD)),this.create(e,t)}create(e,t){this.element=document.createElement("div"),this.element.classList.add("monaco-progress-container"),this.element.setAttribute("role","progressbar"),this.element.setAttribute("aria-valuemin","0"),e.appendChild(this.element),this.bit=document.createElement("div"),this.bit.classList.add("progress-bit"),this.bit.style.backgroundColor=(t==null?void 0:t.progressBarBackground)||"#0E70C0",this.element.appendChild(this.bit)}off(){this.bit.style.width="inherit",this.bit.style.opacity="1",this.element.classList.remove(EFe,MQ,ZQ,WFe),this.workedVal=0,this.totalWork=void 0,this.longRunningScheduler.cancel()}stop(){return this.doDone(!1)}doDone(e){return this.element.classList.add(TFe),this.element.classList.contains(MQ)?(this.bit.style.opacity="0",e?setTimeout(()=>this.off(),200):this.off()):(this.bit.style.width="inherit",e?setTimeout(()=>this.off(),200):this.off()),this}infinite(){return this.bit.style.width="2%",this.bit.style.opacity="1",this.element.classList.remove(WFe,TFe,ZQ),this.element.classList.add(EFe,MQ),this.longRunningScheduler.schedule(),this}infiniteLongRunning(){this.element.classList.add(ZQ)}getContainer(){return this.element}}aG.LONG_RUNNING_INFINITE_THRESHOLD=1e4;const iWt=vt;class rWt extends De{constructor(e,t,i){super(),this.parent=e,this.onKeyDown=o=>Gr(this.findInput.inputBox.inputElement,at.KEY_DOWN,o),this.onDidChange=o=>this.findInput.onDidChange(o),this.container=Je(this.parent,iWt(".quick-input-box")),this.findInput=this._register(new uwe(this.container,void 0,{label:"",inputBoxStyles:t,toggleStyles:i}));const r=this.findInput.inputBox.inputElement;r.role="combobox",r.ariaHasPopup="menu",r.ariaAutoComplete="list",r.ariaExpanded="true"}get value(){return this.findInput.getValue()}set value(e){this.findInput.setValue(e)}select(e=null){this.findInput.inputBox.select(e)}isSelectionAtEnd(){return this.findInput.inputBox.isSelectionAtEnd()}get placeholder(){return this.findInput.inputBox.inputElement.getAttribute("placeholder")||""}set placeholder(e){this.findInput.inputBox.setPlaceHolder(e)}get password(){return this.findInput.inputBox.inputElement.type==="password"}set password(e){this.findInput.inputBox.inputElement.type=e?"password":"text"}set enabled(e){this.findInput.inputBox.inputElement.toggleAttribute("readonly",!e)}set toggles(e){this.findInput.setAdditionalToggles(e)}setAttribute(e,t){this.findInput.inputBox.inputElement.setAttribute(e,t)}showDecoration(e){e===to.Ignore?this.findInput.clearMessage():this.findInput.showMessage({type:e===to.Info?1:e===to.Warning?2:3,content:""})}stylesForType(e){return this.findInput.inputBox.stylesForType(e===to.Info?1:e===to.Warning?2:3)}setFocus(){this.findInput.focus()}layout(){this.findInput.inputBox.layout()}}const pu=vt;class lG extends De{get container(){return this._container}constructor(e,t,i){super(),this.options=e,this.themeService=t,this.layoutService=i,this.enabled=!0,this.onDidAcceptEmitter=this._register(new be),this.onDidCustomEmitter=this._register(new be),this.onDidTriggerButtonEmitter=this._register(new be),this.keyMods={ctrlCmd:!1,alt:!1},this.controller=null,this.onShowEmitter=this._register(new be),this.onShow=this.onShowEmitter.event,this.onHideEmitter=this._register(new be),this.onHide=this.onHideEmitter.event,this.idPrefix=e.idPrefix,this._container=e.container,this.styles=e.styles,this._register(ft.runAndSubscribe(x5,({window:r,disposables:o})=>this.registerKeyModsListeners(r,o),{window:Wi,disposables:this._store})),this._register(Dgt(r=>{this.ui&&qt(this.ui.container)===r&&(this.reparentUI(this.layoutService.mainContainer),this.layout(this.layoutService.mainContainerDimension,this.layoutService.mainContainerOffset.quickPickTop))}))}registerKeyModsListeners(e,t){const i=r=>{this.keyMods.ctrlCmd=r.ctrlKey||r.metaKey,this.keyMods.alt=r.altKey};for(const r of[at.KEY_DOWN,at.KEY_UP,at.MOUSE_DOWN])t.add(Ve(e,r,i,!0))}getUI(e){if(this.ui)return e&&qt(this._container)!==qt(this.layoutService.activeContainer)&&(this.reparentUI(this.layoutService.activeContainer),this.layout(this.layoutService.activeContainerDimension,this.layoutService.activeContainerOffset.quickPickTop)),this.ui;const t=Je(this._container,pu(".quick-input-widget.show-file-icons"));t.tabIndex=-1,t.style.display="none";const i=Eu(t),r=Je(t,pu(".quick-input-titlebar")),o=this._register(new Rc(r,{hoverDelegate:this.options.hoverDelegate}));o.domNode.classList.add("quick-input-left-action-bar");const s=Je(r,pu(".quick-input-title")),a=this._register(new Rc(r,{hoverDelegate:this.options.hoverDelegate}));a.domNode.classList.add("quick-input-right-action-bar");const l=Je(t,pu(".quick-input-header")),u=Je(l,pu("input.quick-input-check-all"));u.type="checkbox",u.setAttribute("aria-label",x("quickInput.checkAll","Toggle all checkboxes")),this._register(Gr(u,at.CHANGE,E=>{const V=u.checked;Z.setAllVisibleChecked(V)})),this._register(Ve(u,at.CLICK,E=>{(E.x||E.y)&&g.setFocus()}));const c=Je(l,pu(".quick-input-description")),d=Je(l,pu(".quick-input-and-message")),h=Je(d,pu(".quick-input-filter")),g=this._register(new rWt(h,this.styles.inputBox,this.styles.toggle));g.setAttribute("aria-describedby",`${this.idPrefix}message`);const m=Je(h,pu(".quick-input-visible-count"));m.setAttribute("aria-live","polite"),m.setAttribute("aria-atomic","true");const f=new yK(m,{countFormat:x({key:"quickInput.visibleCount",comment:["This tells the user how many items are shown in a list of items to select from. The items can be anything. Currently not visible, but read by screen readers."]},"{0} Results")},this.styles.countBadge),b=Je(h,pu(".quick-input-count"));b.setAttribute("aria-live","polite");const C=new yK(b,{countFormat:x({key:"quickInput.countSelected",comment:["This tells the user how many items are selected in a list of items to select from. The items can be anything."]},"{0} Selected")},this.styles.countBadge),v=Je(l,pu(".quick-input-action")),w=this._register(new rW(v,this.styles.button));w.label=x("ok","OK"),this._register(w.onDidClick(E=>{this.onDidAcceptEmitter.fire()}));const S=Je(l,pu(".quick-input-action")),F=this._register(new rW(S,{...this.styles.button,supportIcons:!0}));F.label=x("custom","Custom"),this._register(F.onDidClick(E=>{this.onDidCustomEmitter.fire()}));const L=Je(d,pu(`#${this.idPrefix}message.quick-input-message`)),D=this._register(new aG(t,this.styles.progressBar));D.getContainer().classList.add("quick-input-progress");const A=Je(t,pu(".quick-input-html-widget"));A.tabIndex=-1;const M=Je(t,pu(".quick-input-description")),W=this.idPrefix+"list",Z=this._register(new AQ(t,W,this.options,this.themeService));g.setAttribute("aria-controls",W),this._register(Z.onDidChangeFocus(()=>{var E;g.setAttribute("aria-activedescendant",(E=Z.getActiveDescendant())!==null&&E!==void 0?E:"")})),this._register(Z.onChangedAllVisibleChecked(E=>{u.checked=E})),this._register(Z.onChangedVisibleCount(E=>{f.setCount(E)})),this._register(Z.onChangedCheckedCount(E=>{C.setCount(E)})),this._register(Z.onLeave(()=>{setTimeout(()=>{this.controller&&(g.setFocus(),this.controller instanceof dN&&this.controller.canSelectMany&&Z.clearFocus())},0)}));const T=ph(t);return this._register(T),this._register(Ve(t,at.FOCUS,E=>{xs(E.relatedTarget,t)||(this.previousFocusElement=E.relatedTarget instanceof HTMLElement?E.relatedTarget:void 0)},!0)),this._register(T.onDidBlur(()=>{!this.getUI().ignoreFocusOut&&!this.options.ignoreFocusOut()&&this.hide(kD.Blur),this.previousFocusElement=void 0})),this._register(Ve(t,at.FOCUS,E=>{g.setFocus()})),this._register(Gr(t,at.KEY_DOWN,E=>{if(!xs(E.target,A))switch(E.keyCode){case 3:En.stop(E,!0),this.enabled&&this.onDidAcceptEmitter.fire();break;case 9:En.stop(E,!0),this.hide(kD.Gesture);break;case 2:if(!E.altKey&&!E.ctrlKey&&!E.metaKey){const V=[".quick-input-list .monaco-action-bar .always-visible",".quick-input-list-entry:hover .monaco-action-bar",".monaco-list-row.focused .monaco-action-bar"];if(t.classList.contains("show-checkboxes")?V.push("input"):V.push("input[type=text]"),this.getUI().list.isDisplayed()&&V.push(".monaco-list"),this.getUI().message&&V.push(".quick-input-message a"),this.getUI().widget){if(xs(E.target,this.getUI().widget))break;V.push(".quick-input-html-widget")}const z=t.querySelectorAll(V.join(", "));E.shiftKey&&E.target===z[0]?(En.stop(E,!0),Z.clearFocus()):!E.shiftKey&&xs(E.target,z[z.length-1])&&(En.stop(E,!0),z[0].focus())}break;case 10:E.ctrlKey&&(En.stop(E,!0),this.getUI().list.toggleHover());break}})),this.ui={container:t,styleSheet:i,leftActionBar:o,titleBar:r,title:s,description1:M,description2:c,widget:A,rightActionBar:a,checkAll:u,inputContainer:d,filterContainer:h,inputBox:g,visibleCountContainer:m,visibleCount:f,countContainer:b,count:C,okContainer:v,ok:w,message:L,customButtonContainer:S,customButton:F,list:Z,progressBar:D,onDidAccept:this.onDidAcceptEmitter.event,onDidCustom:this.onDidCustomEmitter.event,onDidTriggerButton:this.onDidTriggerButtonEmitter.event,ignoreFocusOut:!1,keyMods:this.keyMods,show:E=>this.show(E),hide:()=>this.hide(),setVisibilities:E=>this.setVisibilities(E),setEnabled:E=>this.setEnabled(E),setContextKey:E=>this.options.setContextKey(E),linkOpenerDelegate:E=>this.options.linkOpenerDelegate(E)},this.updateStyles(),this.ui}reparentUI(e){this.ui&&(this._container=e,Je(this._container,this.ui.container))}pick(e,t={},i=Hn.None){return new Promise((r,o)=>{let s=c=>{var d;s=r,(d=t.onKeyMods)===null||d===void 0||d.call(t,a.keyMods),r(c)};if(i.isCancellationRequested){s(void 0);return}const a=this.createQuickPick();let l;const u=[a,a.onDidAccept(()=>{if(a.canSelectMany)s(a.selectedItems.slice()),a.hide();else{const c=a.activeItems[0];c&&(s(c),a.hide())}}),a.onDidChangeActive(c=>{const d=c[0];d&&t.onDidFocus&&t.onDidFocus(d)}),a.onDidChangeSelection(c=>{if(!a.canSelectMany){const d=c[0];d&&(s(d),a.hide())}}),a.onDidTriggerItemButton(c=>t.onDidTriggerItemButton&&t.onDidTriggerItemButton({...c,removeItem:()=>{const d=a.items.indexOf(c.item);if(d!==-1){const h=a.items.slice(),g=h.splice(d,1),m=a.activeItems.filter(b=>b!==g[0]),f=a.keepScrollPosition;a.keepScrollPosition=!0,a.items=h,m&&(a.activeItems=m),a.keepScrollPosition=f}}})),a.onDidTriggerSeparatorButton(c=>{var d;return(d=t.onDidTriggerSeparatorButton)===null||d===void 0?void 0:d.call(t,c)}),a.onDidChangeValue(c=>{l&&!c&&(a.activeItems.length!==1||a.activeItems[0]!==l)&&(a.activeItems=[l])}),i.onCancellationRequested(()=>{a.hide()}),a.onDidHide(()=>{Mi(u),s(void 0)})];a.title=t.title,a.canSelectMany=!!t.canPickMany,a.placeholder=t.placeHolder,a.ignoreFocusOut=!!t.ignoreFocusLost,a.matchOnDescription=!!t.matchOnDescription,a.matchOnDetail=!!t.matchOnDetail,a.matchOnLabel=t.matchOnLabel===void 0||t.matchOnLabel,a.quickNavigate=t.quickNavigate,a.hideInput=!!t.hideInput,a.contextKey=t.contextKey,a.busy=!0,Promise.all([e,t.activeItem]).then(([c,d])=>{l=d,a.busy=!1,a.items=c,a.canSelectMany&&(a.selectedItems=c.filter(h=>h.type!=="separator"&&h.picked)),l&&(a.activeItems=[l])}),a.show(),Promise.resolve(e).then(void 0,c=>{o(c),a.hide()})})}createQuickPick(){const e=this.getUI(!0);return new dN(e)}createInputBox(){const e=this.getUI(!0);return new nWt(e)}show(e){const t=this.getUI(!0);this.onShowEmitter.fire();const i=this.controller;this.controller=e,i==null||i.didHide(),this.setEnabled(!0),t.leftActionBar.clear(),t.title.textContent="",t.description1.textContent="",t.description2.textContent="",ua(t.widget),t.rightActionBar.clear(),t.checkAll.checked=!1,t.inputBox.placeholder="",t.inputBox.password=!1,t.inputBox.showDecoration(to.Ignore),t.visibleCount.setCount(0),t.count.setCount(0),ua(t.message),t.progressBar.stop(),t.list.setElements([]),t.list.matchOnDescription=!1,t.list.matchOnDetail=!1,t.list.matchOnLabel=!0,t.list.sortByLabel=!0,t.ignoreFocusOut=!1,t.inputBox.toggles=void 0;const r=this.options.backKeybindingLabel();NQ.tooltip=r?x("quickInput.backWithKeybinding","Back ({0})",r):x("quickInput.back","Back"),t.container.style.display="",this.updateLayout(),t.inputBox.setFocus()}isVisible(){return!!this.ui&&this.ui.container.style.display!=="none"}setVisibilities(e){const t=this.getUI();t.title.style.display=e.title?"":"none",t.description1.style.display=e.description&&(e.inputBox||e.checkAll)?"":"none",t.description2.style.display=e.description&&!(e.inputBox||e.checkAll)?"":"none",t.checkAll.style.display=e.checkAll?"":"none",t.inputContainer.style.display=e.inputBox?"":"none",t.filterContainer.style.display=e.inputBox?"":"none",t.visibleCountContainer.style.display=e.visibleCount?"":"none",t.countContainer.style.display=e.count?"":"none",t.okContainer.style.display=e.ok?"":"none",t.customButtonContainer.style.display=e.customButton?"":"none",t.message.style.display=e.message?"":"none",t.progressBar.getContainer().style.display=e.progressBar?"":"none",t.list.display(!!e.list),t.container.classList.toggle("show-checkboxes",!!e.checkBox),t.container.classList.toggle("hidden-input",!e.inputBox&&!e.description),this.updateLayout()}setEnabled(e){if(e!==this.enabled){this.enabled=e;for(const t of this.getUI().leftActionBar.viewItems)t.action.enabled=e;for(const t of this.getUI().rightActionBar.viewItems)t.action.enabled=e;this.getUI().checkAll.disabled=!e,this.getUI().inputBox.enabled=e,this.getUI().ok.enabled=e,this.getUI().list.enabled=e}}hide(e){var t,i;const r=this.controller;if(!r)return;const o=(t=this.ui)===null||t===void 0?void 0:t.container,s=o&&!Jbe(o);if(this.controller=null,this.onHideEmitter.fire(),o&&(o.style.display="none"),!s){let a=this.previousFocusElement;for(;a&&!a.offsetParent;)a=(i=a.parentElement)!==null&&i!==void 0?i:void 0;a!=null&&a.offsetParent?(a.focus(),this.previousFocusElement=void 0):this.options.returnFocus()}r.didHide(e)}layout(e,t){this.dimension=e,this.titleBarOffset=t,this.updateLayout()}updateLayout(){if(this.ui&&this.isVisible()){this.ui.container.style.top=`${this.titleBarOffset}px`;const e=this.ui.container.style,t=Math.min(this.dimension.width*.62,lG.MAX_WIDTH);e.width=t+"px",e.marginLeft="-"+t/2+"px",this.ui.inputBox.layout(),this.ui.list.layout(this.dimension&&this.dimension.height*.4)}}applyStyles(e){this.styles=e,this.updateStyles()}updateStyles(){if(this.ui){const{quickInputTitleBackground:e,quickInputBackground:t,quickInputForeground:i,widgetBorder:r,widgetShadow:o}=this.styles.widget;this.ui.titleBar.style.backgroundColor=e??"",this.ui.container.style.backgroundColor=t??"",this.ui.container.style.color=i??"",this.ui.container.style.border=r?`1px solid ${r}`:"",this.ui.container.style.boxShadow=o?`0 0 8px 2px ${o}`:"",this.ui.list.style(this.styles.list);const s=[];this.styles.pickerGroup.pickerGroupBorder&&s.push(`.quick-input-list .quick-input-list-entry { border-top-color: ${this.styles.pickerGroup.pickerGroupBorder}; }`),this.styles.pickerGroup.pickerGroupForeground&&s.push(`.quick-input-list .quick-input-list-separator { color: ${this.styles.pickerGroup.pickerGroupForeground}; }`),this.styles.pickerGroup.pickerGroupForeground&&s.push(".quick-input-list .quick-input-list-separator-as-item { color: var(--vscode-descriptionForeground); }"),(this.styles.keybindingLabel.keybindingLabelBackground||this.styles.keybindingLabel.keybindingLabelBorder||this.styles.keybindingLabel.keybindingLabelBottomBorder||this.styles.keybindingLabel.keybindingLabelShadow||this.styles.keybindingLabel.keybindingLabelForeground)&&(s.push(".quick-input-list .monaco-keybinding > .monaco-keybinding-key {"),this.styles.keybindingLabel.keybindingLabelBackground&&s.push(`background-color: ${this.styles.keybindingLabel.keybindingLabelBackground};`),this.styles.keybindingLabel.keybindingLabelBorder&&s.push(`border-color: ${this.styles.keybindingLabel.keybindingLabelBorder};`),this.styles.keybindingLabel.keybindingLabelBottomBorder&&s.push(`border-bottom-color: ${this.styles.keybindingLabel.keybindingLabelBottomBorder};`),this.styles.keybindingLabel.keybindingLabelShadow&&s.push(`box-shadow: inset 0 -1px 0 ${this.styles.keybindingLabel.keybindingLabelShadow};`),this.styles.keybindingLabel.keybindingLabelForeground&&s.push(`color: ${this.styles.keybindingLabel.keybindingLabelForeground};`),s.push("}"));const a=s.join(` +`);a!==this.ui.styleSheet.textContent&&(this.ui.styleSheet.textContent=a)}}}lG.MAX_WIDTH=600;var oWt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},hN=function(n,e){return function(t,i){e(t,i,n)}};let TQ=class extends g1t{get controller(){return this._controller||(this._controller=this._register(this.createController())),this._controller}get hasController(){return!!this._controller}get quickAccess(){return this._quickAccess||(this._quickAccess=this._register(this.instantiationService.createInstance(FQ))),this._quickAccess}constructor(e,t,i,r,o){super(i),this.instantiationService=e,this.contextKeyService=t,this.layoutService=r,this.configurationService=o,this._onShow=this._register(new be),this._onHide=this._register(new be),this.contexts=new Map}createController(e=this.layoutService,t){const i={idPrefix:"quickInput_",container:e.activeContainer,ignoreFocusOut:()=>!1,backKeybindingLabel:()=>{},setContextKey:o=>this.setContextKey(o),linkOpenerDelegate:o=>{this.instantiationService.invokeFunction(s=>{s.get(Rl).open(o,{allowCommands:!0,fromUserGesture:!0})})},returnFocus:()=>e.focus(),createList:(o,s,a,l,u)=>this.instantiationService.createInstance(bK,o,s,a,l,u),styles:this.computeStyles(),hoverDelegate:this._register(this.instantiationService.createInstance(kQ))},r=this._register(new lG({...i,...t},this.themeService,this.layoutService));return r.layout(e.activeContainerDimension,e.activeContainerOffset.quickPickTop),this._register(e.onDidLayoutActiveContainer(o=>{qt(e.activeContainer)===qt(r.container)&&r.layout(o,e.activeContainerOffset.quickPickTop)})),this._register(e.onDidChangeActiveContainer(()=>{r.isVisible()||r.layout(e.activeContainerDimension,e.activeContainerOffset.quickPickTop)})),this._register(r.onShow(()=>{this.resetContextKeys(),this._onShow.fire()})),this._register(r.onHide(()=>{this.resetContextKeys(),this._onHide.fire()})),r}setContextKey(e){let t;e&&(t=this.contexts.get(e),t||(t=new It(e,!1).bindTo(this.contextKeyService),this.contexts.set(e,t))),!(t&&t.get())&&(this.resetContextKeys(),t==null||t.set(!0))}resetContextKeys(){this.contexts.forEach(e=>{e.get()&&e.reset()})}pick(e,t={},i=Hn.None){return this.controller.pick(e,t,i)}createQuickPick(){return this.controller.createQuickPick()}createInputBox(){return this.controller.createInputBox()}updateStyles(){this.hasController&&this.controller.applyStyles(this.computeStyles())}computeStyles(){return{widget:{quickInputBackground:Lt(C1e),quickInputForeground:Lt(ubt),quickInputTitleBackground:Lt(cbt),widgetBorder:Lt(m1e),widgetShadow:Lt(_f)},inputBox:fW,toggle:mW,countBadge:e2e,button:xLt,progressBar:LLt,keybindingLabel:SLt,list:bw({listBackground:C1e,listFocusBackground:BC,listFocusForeground:OC,listInactiveFocusForeground:OC,listInactiveSelectionIconForeground:F2,listInactiveFocusBackground:BC,listFocusOutline:dr,listInactiveFocusOutline:dr}),pickerGroup:{pickerGroupBorder:Lt(dbt),pickerGroupForeground:Lt(v1e)}}}};TQ=oWt([hN(0,tn),hN(1,ln),hN(2,ts),hN(3,qv),hN(4,Xn)],TQ);var RFe=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},ty=function(n,e){return function(t,i){e(t,i,n)}};let EQ=class extends TQ{constructor(e,t,i,r,o,s){super(t,i,r,new oQ(e.getContainerDomNode(),o),s),this.host=void 0;const a=yS.get(e);if(a){const l=a.widget;this.host={_serviceBrand:void 0,get mainContainer(){return l.getDomNode()},getContainer(){return l.getDomNode()},get containers(){return[l.getDomNode()]},get activeContainer(){return l.getDomNode()},get mainContainerDimension(){return e.getLayoutInfo()},get activeContainerDimension(){return e.getLayoutInfo()},get onDidLayoutMainContainer(){return e.onDidLayoutChange},get onDidLayoutActiveContainer(){return e.onDidLayoutChange},get onDidLayoutContainer(){return ft.map(e.onDidLayoutChange,u=>({container:l.getDomNode(),dimension:u}))},get onDidChangeActiveContainer(){return ft.None},get onDidAddContainer(){return ft.None},get whenActiveContainerStylesLoaded(){return Promise.resolve()},get mainContainerOffset(){return{top:0,quickPickTop:0}},get activeContainerOffset(){return{top:0,quickPickTop:0}},focus:()=>e.focus()}}else this.host=void 0}createController(){return super.createController(this.host)}};EQ=RFe([ty(1,tn),ty(2,ln),ty(3,ts),ty(4,yi),ty(5,Xn)],EQ);let WQ=class{get activeService(){const e=this.codeEditorService.getFocusedCodeEditor();if(!e)throw new Error("Quick input service needs a focused editor to work.");let t=this.mapEditorToService.get(e);if(!t){const i=t=this.instantiationService.createInstance(EQ,e);this.mapEditorToService.set(e,t),BI(e.onDidDispose)(()=>{i.dispose(),this.mapEditorToService.delete(e)})}return t}get quickAccess(){return this.activeService.quickAccess}constructor(e,t){this.instantiationService=e,this.codeEditorService=t,this.mapEditorToService=new Map}pick(e,t={},i=Hn.None){return this.activeService.pick(e,t,i)}createQuickPick(){return this.activeService.createQuickPick()}createInputBox(){return this.activeService.createInputBox()}};WQ=RFe([ty(0,tn),ty(1,yi)],WQ);class yS{static get(e){return e.getContribution(yS.ID)}constructor(e){this.editor=e,this.widget=new uG(this.editor)}dispose(){this.widget.dispose()}}yS.ID="editor.controller.quickInput";class uG{constructor(e){this.codeEditor=e,this.domNode=document.createElement("div"),this.codeEditor.addOverlayWidget(this)}getId(){return uG.ID}getDomNode(){return this.domNode}getPosition(){return{preference:2}}dispose(){this.codeEditor.removeOverlayWidget(this)}}uG.ID="editor.contrib.quickInputWidget",Ii(yS.ID,yS,4);class sWt{constructor(e,t,i,r,o){this._parsedThemeRuleBrand=void 0,this.token=e,this.index=t,this.fontStyle=i,this.foreground=r,this.background=o}}function aWt(n){if(!n||!Array.isArray(n))return[];const e=[];let t=0;for(let i=0,r=n.length;i{const h=gWt(c.token,d.token);return h!==0?h:c.index-d.index});let t=0,i="000000",r="ffffff";for(;n.length>=1&&n[0].token==="";){const c=n.shift();c.fontStyle!==-1&&(t=c.fontStyle),c.foreground!==null&&(i=c.foreground),c.background!==null&&(r=c.background)}const o=new cWt;for(const c of e)o.getId(c);const s=o.getId(i),a=o.getId(r),l=new RQ(t,s,a),u=new GQ(l);for(let c=0,d=n.length;c"u"){const r=this._match(t),o=hWt(t);i=(r.metadata|o<<8)>>>0,this._cache.set(t,i)}return(i|e<<0)>>>0}}const dWt=/\b(comment|string|regex|regexp)\b/;function hWt(n){const e=n.match(dWt);if(!e)return 0;switch(e[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"regexp":return 3}throw new Error("Unexpected match for standard token type!")}function gWt(n,e){return ne?1:0}class RQ{constructor(e,t,i){this._themeTrieElementRuleBrand=void 0,this._fontStyle=e,this._foreground=t,this._background=i,this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}clone(){return new RQ(this._fontStyle,this._foreground,this._background)}acceptOverwrite(e,t,i){e!==-1&&(this._fontStyle=e),t!==0&&(this._foreground=t),i!==0&&(this._background=i),this.metadata=(this._fontStyle<<11|this._foreground<<15|this._background<<24)>>>0}}class GQ{constructor(e){this._themeTrieElementBrand=void 0,this._mainRule=e,this._children=new Map}match(e){if(e==="")return this._mainRule;const t=e.indexOf(".");let i,r;t===-1?(i=e,r=""):(i=e.substring(0,t),r=e.substring(t+1));const o=this._children.get(i);return typeof o<"u"?o.match(r):this._mainRule}insert(e,t,i,r){if(e===""){this._mainRule.acceptOverwrite(t,i,r);return}const o=e.indexOf(".");let s,a;o===-1?(s=e,a=""):(s=e.substring(0,o),a=e.substring(o+1));let l=this._children.get(s);typeof l>"u"&&(l=new GQ(this._mainRule.clone()),this._children.set(s,l)),l.insert(a,t,i,r)}}function mWt(n){const e=[];for(let t=1,i=n.length;tt.fire())),n&&e.add(n.onDidProductIconThemeChange(()=>t.fire())),{dispose:()=>e.dispose(),onDidChange:t.event,getCSS(){const r=n?n.getProductIconTheme():new VFe,o={},s=l=>{const u=r.getIcon(l);if(!u)return;const c=u.font;return c?(o[c.id]=c.definition,`.codicon-${l.id}:before { content: '${u.fontCharacter}'; font-family: ${t0e(c.id)}; }`):`.codicon-${l.id}:before { content: '${u.fontCharacter}'; }`},a=[];for(const l of i.getIcons()){const u=s(l);u&&a.push(u)}for(const l in o){const u=o[l],c=u.weight?`font-weight: ${u.weight};`:"",d=u.style?`font-style: ${u.style};`:"",h=u.src.map(g=>`${Ab(g.location)} format('${g.format}')`).join(", ");a.push(`@font-face { src: ${h}; font-family: ${t0e(l)};${c}${d} font-display: block; }`)}return a.join(` +`)}}}class VFe{getIcon(e){const t=Wye();let i=e.defaults;for(;on.isThemeIcon(i);){const r=t.getIcon(i.id);if(!r)return;i=r.defaults}return i}}const t1="vs",gN="vs-dark",IS="hc-black",wS="hc-light",XFe=xo.as(g1e.ColorContribution),yWt=xo.as($1e.ThemingContribution);class PFe{constructor(e,t){this.semanticHighlighting=!1,this.themeData=t;const i=t.base;e.length>0?(cG(e)?this.id=e:this.id=i+" "+e,this.themeName=e):(this.id=i,this.themeName=i),this.colors=null,this.defaultColors=Object.create(null),this._tokenTheme=null}get base(){return this.themeData.base}notifyBaseUpdated(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)}getColors(){if(!this.colors){const e=new Map;for(const t in this.themeData.colors)e.set(t,Ee.fromHex(this.themeData.colors[t]));if(this.themeData.inherit){const t=VQ(this.themeData.base);for(const i in t.colors)e.has(i)||e.set(i,Ee.fromHex(t.colors[i]))}this.colors=e}return this.colors}getColor(e,t){const i=this.getColors().get(e);if(i)return i;if(t!==!1)return this.getDefault(e)}getDefault(e){let t=this.defaultColors[e];return t||(t=XFe.resolveDefaultColor(e,this),this.defaultColors[e]=t,t)}defines(e){return this.getColors().has(e)}get type(){switch(this.base){case t1:return Nc.LIGHT;case IS:return Nc.HIGH_CONTRAST_DARK;case wS:return Nc.HIGH_CONTRAST_LIGHT;default:return Nc.DARK}}get tokenTheme(){if(!this._tokenTheme){let e=[],t=[];if(this.themeData.inherit){const o=VQ(this.themeData.base);e=o.rules,o.encodedTokensColors&&(t=o.encodedTokensColors)}const i=this.themeData.colors["editor.foreground"],r=this.themeData.colors["editor.background"];if(i||r){const o={token:""};i&&(o.foreground=i),r&&(o.background=r),e.push(o)}e=e.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(t=this.themeData.encodedTokensColors),this._tokenTheme=GFe.createFromRawTokenTheme(e,t)}return this._tokenTheme}getTokenStyleMetadata(e,t,i){const o=this.tokenTheme._match([e].concat(t).join(".")).metadata,s=cu.getForeground(o),a=cu.getFontStyle(o);return{foreground:s,italic:!!(a&1),bold:!!(a&2),underline:!!(a&4),strikethrough:!!(a&8)}}}function cG(n){return n===t1||n===gN||n===IS||n===wS}function VQ(n){switch(n){case t1:return fWt;case gN:return pWt;case IS:return bWt;case wS:return CWt}}function dG(n){const e=VQ(n);return new PFe(n,e)}class IWt extends De{constructor(){super(),this._onColorThemeChange=this._register(new be),this.onDidColorThemeChange=this._onColorThemeChange.event,this._onProductIconThemeChange=this._register(new be),this.onDidProductIconThemeChange=this._onProductIconThemeChange.event,this._environment=Object.create(null),this._builtInProductIconTheme=new VFe,this._autoDetectHighContrast=!0,this._knownThemes=new Map,this._knownThemes.set(t1,dG(t1)),this._knownThemes.set(gN,dG(gN)),this._knownThemes.set(IS,dG(IS)),this._knownThemes.set(wS,dG(wS));const e=this._register(vWt(this));this._codiconCSS=e.getCSS(),this._themeCSS="",this._allCSS=`${this._codiconCSS} +${this._themeCSS}`,this._globalStyleElement=null,this._styleElements=[],this._colorMapOverride=null,this.setTheme(t1),this._onOSSchemeChanged(),this._register(e.onDidChange(()=>{this._codiconCSS=e.getCSS(),this._updateCSS()})),Zpe(Wi,"(forced-colors: active)",()=>{this._onOSSchemeChanged()})}registerEditorContainer(e){return _5(e)?this._registerShadowDomContainer(e):this._registerRegularEditorContainer()}_registerRegularEditorContainer(){return this._globalStyleElement||(this._globalStyleElement=Eu(void 0,e=>{e.className="monaco-colors",e.textContent=this._allCSS}),this._styleElements.push(this._globalStyleElement)),De.None}_registerShadowDomContainer(e){const t=Eu(e,i=>{i.className="monaco-colors",i.textContent=this._allCSS});return this._styleElements.push(t),{dispose:()=>{for(let i=0;i{i.base===e&&i.notifyBaseUpdated()}),this._theme.themeName===e&&this.setTheme(e)}getColorTheme(){return this._theme}setColorMapOverride(e){this._colorMapOverride=e,this._updateThemeOrColorMap()}setTheme(e){let t;this._knownThemes.has(e)?t=this._knownThemes.get(e):t=this._knownThemes.get(t1),this._updateActualTheme(t)}_updateActualTheme(e){!e||this._theme===e||(this._theme=e,this._updateThemeOrColorMap())}_onOSSchemeChanged(){if(this._autoDetectHighContrast){const e=Wi.matchMedia("(forced-colors: active)").matches;if(e!==Jg(this._theme.type)){let t;AT(this._theme.type)?t=e?IS:gN:t=e?wS:t1,this._updateActualTheme(this._knownThemes.get(t))}}}setAutoDetectHighContrast(e){this._autoDetectHighContrast=e,this._onOSSchemeChanged()}_updateThemeOrColorMap(){const e=[],t={},i={addRule:s=>{t[s]||(e.push(s),t[s]=!0)}};yWt.getThemingParticipants().forEach(s=>s(this._theme,i,this._environment));const r=[];for(const s of XFe.getColors()){const a=this._theme.getColor(s.id,!0);a&&r.push(`${TH(s.id)}: ${a.toString()};`)}i.addRule(`.monaco-editor, .monaco-diff-editor, .monaco-component { ${r.join(` +`)} }`);const o=this._colorMapOverride||this._theme.tokenTheme.getColorMap();i.addRule(mWt(o)),this._themeCSS=e.join(` +`),this._updateCSS(),mo.setColorMap(o),this._onColorThemeChange.fire(this._theme)}_updateCSS(){this._allCSS=`${this._codiconCSS} +${this._themeCSS}`,this._styleElements.forEach(e=>e.textContent=this._allCSS)}getFileIconTheme(){return{hasFileIcons:!1,hasFolderIcons:!1,hidesExplorerArrows:!1}}getProductIconTheme(){return this._builtInProductIconTheme}}const Zd=Un("themeService");var wWt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},XQ=function(n,e){return function(t,i){e(t,i,n)}};let PQ=class extends De{constructor(e,t,i){super(),this._contextKeyService=e,this._layoutService=t,this._configurationService=i,this._accessibilitySupport=0,this._onDidChangeScreenReaderOptimized=new be,this._onDidChangeReducedMotion=new be,this._accessibilityModeEnabledContext=$F.bindTo(this._contextKeyService);const r=()=>this._accessibilityModeEnabledContext.set(this.isScreenReaderOptimized());this._register(this._configurationService.onDidChangeConfiguration(s=>{s.affectsConfiguration("editor.accessibilitySupport")&&(r(),this._onDidChangeScreenReaderOptimized.fire()),s.affectsConfiguration("workbench.reduceMotion")&&(this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this._onDidChangeReducedMotion.fire())})),r(),this._register(this.onDidChangeScreenReaderOptimized(()=>r()));const o=Wi.matchMedia("(prefers-reduced-motion: reduce)");this._systemMotionReduced=o.matches,this._configMotionReduced=this._configurationService.getValue("workbench.reduceMotion"),this.initReducedMotionListeners(o)}initReducedMotionListeners(e){this._register(Ve(e,"change",()=>{this._systemMotionReduced=e.matches,this._configMotionReduced==="auto"&&this._onDidChangeReducedMotion.fire()}));const t=()=>{const i=this.isMotionReduced();this._layoutService.mainContainer.classList.toggle("reduce-motion",i),this._layoutService.mainContainer.classList.toggle("enable-motion",!i)};t(),this._register(this.onDidChangeReducedMotion(()=>t()))}get onDidChangeScreenReaderOptimized(){return this._onDidChangeScreenReaderOptimized.event}isScreenReaderOptimized(){const e=this._configurationService.getValue("editor.accessibilitySupport");return e==="on"||e==="auto"&&this._accessibilitySupport===2}get onDidChangeReducedMotion(){return this._onDidChangeReducedMotion.event}isMotionReduced(){const e=this._configMotionReduced;return e==="on"||e==="auto"&&this._systemMotionReduced}getAccessibilitySupport(){return this._accessibilitySupport}};PQ=wWt([XQ(0,ln),XQ(1,qv),XQ(2,Xn)],PQ);var hG=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},ny=function(n,e){return function(t,i){e(t,i,n)}},SS,n1;let OQ=class{constructor(e,t){this._commandService=e,this._hiddenStates=new gG(t)}createMenu(e,t,i){return new zQ(e,this._hiddenStates,{emitEventsForSubmenuChanges:!1,eventDebounceDelay:50,...i},this._commandService,t)}resetHiddenStates(e){this._hiddenStates.reset(e)}};OQ=hG([ny(0,Vr),ny(1,bm)],OQ);let gG=SS=class{constructor(e){this._storageService=e,this._disposables=new je,this._onDidChange=new be,this.onDidChange=this._onDidChange.event,this._ignoreChangeEvent=!1,this._hiddenByDefaultCache=new Map;try{const t=e.get(SS._key,0,"{}");this._data=JSON.parse(t)}catch{this._data=Object.create(null)}this._disposables.add(e.onDidChangeValue(0,SS._key,this._disposables)(()=>{if(!this._ignoreChangeEvent)try{const t=e.get(SS._key,0,"{}");this._data=JSON.parse(t)}catch{}this._onDidChange.fire()}))}dispose(){this._onDidChange.dispose(),this._disposables.dispose()}_isHiddenByDefault(e,t){var i;return(i=this._hiddenByDefaultCache.get(`${e.id}/${t}`))!==null&&i!==void 0?i:!1}setDefaultState(e,t,i){this._hiddenByDefaultCache.set(`${e.id}/${t}`,i)}isHidden(e,t){var i,r;const o=this._isHiddenByDefault(e,t),s=(r=(i=this._data[e.id])===null||i===void 0?void 0:i.includes(t))!==null&&r!==void 0?r:!1;return o?!s:s}updateHidden(e,t,i){this._isHiddenByDefault(e,t)&&(i=!i);const o=this._data[e.id];if(i)o?o.indexOf(t)<0&&o.push(t):this._data[e.id]=[t];else if(o){const s=o.indexOf(t);s>=0&&Gmt(o,s),o.length===0&&delete this._data[e.id]}this._persist()}reset(e){if(e===void 0)this._data=Object.create(null),this._persist();else{for(const{id:t}of e)this._data[t]&&delete this._data[t];this._persist()}}_persist(){try{this._ignoreChangeEvent=!0;const e=JSON.stringify(this._data);this._storageService.store(SS._key,e,0,0)}finally{this._ignoreChangeEvent=!1}}};gG._key="menu.hiddenCommands",gG=SS=hG([ny(0,bm)],gG);let BQ=n1=class{constructor(e,t,i,r,o){this._id=e,this._hiddenStates=t,this._collectContextKeysForSubmenus=i,this._commandService=r,this._contextKeyService=o,this._menuGroups=[],this._structureContextKeys=new Set,this._preconditionContextKeys=new Set,this._toggledContextKeys=new Set,this.refresh()}get structureContextKeys(){return this._structureContextKeys}get preconditionContextKeys(){return this._preconditionContextKeys}get toggledContextKeys(){return this._toggledContextKeys}refresh(){this._menuGroups.length=0,this._structureContextKeys.clear(),this._preconditionContextKeys.clear(),this._toggledContextKeys.clear();const e=Ls.getMenuItems(this._id);let t;e.sort(n1._compareMenuItems);for(const i of e){const r=i.group||"";(!t||t[0]!==r)&&(t=[r,[]],this._menuGroups.push(t)),t[1].push(i),this._collectContextKeys(i)}}_collectContextKeys(e){if(n1._fillInKbExprKeys(e.when,this._structureContextKeys),i2(e)){if(e.command.precondition&&n1._fillInKbExprKeys(e.command.precondition,this._preconditionContextKeys),e.command.toggled){const t=e.command.toggled.condition||e.command.toggled;n1._fillInKbExprKeys(t,this._toggledContextKeys)}}else this._collectContextKeysForSubmenus&&Ls.getMenuItems(e.submenu).forEach(this._collectContextKeys,this)}createActionGroups(e){const t=[];for(const i of this._menuGroups){const[r,o]=i,s=[];for(const a of o)if(this._contextKeyService.contextMatchesRules(a.when)){const l=i2(a);l&&this._hiddenStates.setDefaultState(this._id,a.command.id,!!a.isHiddenByDefault);const u=SWt(this._id,l?a.command:a,this._hiddenStates);if(l)s.push(new Wu(a.command,a.alt,e,u,this._contextKeyService,this._commandService));else{const c=new n1(a.submenu,this._hiddenStates,this._collectContextKeysForSubmenus,this._commandService,this._contextKeyService).createActionGroups(e),d=To.join(...c.map(h=>h[1]));d.length>0&&s.push(new VF(a,u,d))}}s.length>0&&t.push([r,s])}return t}static _fillInKbExprKeys(e,t){if(e)for(const i of e.keys())t.add(i)}static _compareMenuItems(e,t){const i=e.group,r=t.group;if(i!==r){if(i){if(!r)return-1}else return 1;if(i==="navigation")return-1;if(r==="navigation")return 1;const a=i.localeCompare(r);if(a!==0)return a}const o=e.order||0,s=t.order||0;return os?1:n1._compareTitles(i2(e)?e.command.title:e.title,i2(t)?t.command.title:t.title)}static _compareTitles(e,t){const i=typeof e=="string"?e:e.original,r=typeof t=="string"?t:t.original;return i.localeCompare(r)}};BQ=n1=hG([ny(3,Vr),ny(4,ln)],BQ);let zQ=class{constructor(e,t,i,r,o){this._disposables=new je,this._menuInfo=new BQ(e,t,i.emitEventsForSubmenuChanges,r,o);const s=new Vi(()=>{this._menuInfo.refresh(),this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!0,isToggleChange:!0})},i.eventDebounceDelay);this._disposables.add(s),this._disposables.add(Ls.onDidChangeMenu(c=>{c.has(e)&&s.schedule()}));const a=this._disposables.add(new je),l=c=>{let d=!1,h=!1,g=!1;for(const m of c)if(d=d||m.isStructuralChange,h=h||m.isEnablementChange,g=g||m.isToggleChange,d&&h&&g)break;return{menu:this,isStructuralChange:d,isEnablementChange:h,isToggleChange:g}},u=()=>{a.add(o.onDidChangeContext(c=>{const d=c.affectsSome(this._menuInfo.structureContextKeys),h=c.affectsSome(this._menuInfo.preconditionContextKeys),g=c.affectsSome(this._menuInfo.toggledContextKeys);(d||h||g)&&this._onDidChange.fire({menu:this,isStructuralChange:d,isEnablementChange:h,isToggleChange:g})})),a.add(t.onDidChange(c=>{this._onDidChange.fire({menu:this,isStructuralChange:!0,isEnablementChange:!1,isToggleChange:!1})}))};this._onDidChange=new $pe({onWillAddFirstListener:u,onDidRemoveLastListener:a.clear.bind(a),delay:i.eventDebounceDelay,merge:l}),this.onDidChange=this._onDidChange.event}getActions(e){return this._menuInfo.createActionGroups(e)}dispose(){this._disposables.dispose(),this._onDidChange.dispose()}};zQ=hG([ny(3,Vr),ny(4,ln)],zQ);function SWt(n,e,t){const i=bmt(e)?e.submenu.id:e.id,r=typeof e.title=="string"?e.title:e.title.value,o=e2({id:`hide/${n.id}/${i}`,label:x("hide.label","Hide '{0}'",r),run(){t.updateHidden(n,i,!0)}}),s=e2({id:`toggle/${n.id}/${i}`,label:r,get checked(){return!t.isHidden(n,i)},run(){t.updateHidden(n,i,!!this.checked)}});return{hide:o,toggle:s,get isHidden(){return!s.checked}}}var xWt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},OFe=function(n,e){return function(t,i){e(t,i,n)}},YQ;let mG=YQ=class extends De{constructor(e,t){super(),this.layoutService=e,this.logService=t,this.mapTextToType=new Map,this.findText="",this.resources=[],this.resourcesStateHash=void 0,(df||Tpe)&&this.installWebKitWriteTextWorkaround(),this._register(ft.runAndSubscribe(x5,({window:i,disposables:r})=>{r.add(Ve(i.document,"copy",()=>this.clearResources()))},{window:Wi,disposables:this._store}))}installWebKitWriteTextWorkaround(){const e=()=>{const t=new dY;this.webKitPendingClipboardWritePromise&&!this.webKitPendingClipboardWritePromise.isSettled&&this.webKitPendingClipboardWritePromise.cancel(),this.webKitPendingClipboardWritePromise=t,navigator.clipboard.write([new ClipboardItem({"text/plain":t.p})]).catch(async i=>{(!(i instanceof Error)||i.name!=="NotAllowedError"||!t.isRejected)&&this.logService.error(i)})};this._register(ft.runAndSubscribe(this.layoutService.onDidAddContainer,({container:t,disposables:i})=>{i.add(Ve(t,"click",e)),i.add(Ve(t,"keydown",e))},{container:this.layoutService.mainContainer,disposables:this._store}))}async writeText(e,t){if(this.writeResources([]),t){this.mapTextToType.set(t,e);return}if(this.webKitPendingClipboardWritePromise)return this.webKitPendingClipboardWritePromise.complete(e);try{return await navigator.clipboard.writeText(e)}catch{}this.fallbackWriteText(e)}fallbackWriteText(e){const t=$I(),i=t.activeElement,r=t.body.appendChild(vt("textarea",{"aria-hidden":!0}));r.style.height="1px",r.style.width="1px",r.style.position="absolute",r.value=e,r.focus(),r.select(),t.execCommand("copy"),i instanceof HTMLElement&&i.focus(),t.body.removeChild(r)}async readText(e){if(e)return this.mapTextToType.get(e)||"";try{return await navigator.clipboard.readText()}catch{}return""}async readFindText(){return this.findText}async writeFindText(e){this.findText=e}async writeResources(e){e.length===0?this.clearResources():(this.resources=e,this.resourcesStateHash=await this.computeResourcesStateHash())}async readResources(){const e=await this.computeResourcesStateHash();return this.resourcesStateHash!==e&&this.clearResources(),this.resources}async computeResourcesStateHash(){if(this.resources.length===0)return;const e=await this.readText();return y5(e.substring(0,YQ.MAX_RESOURCE_STATE_SOURCE_LENGTH))}clearResources(){this.resources=[],this.resourcesStateHash=void 0}};mG.MAX_RESOURCE_STATE_SOURCE_LENGTH=1e3,mG=YQ=xWt([OFe(0,qv),OFe(1,Qa)],mG);var LWt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},FWt=function(n,e){return function(t,i){e(t,i,n)}};const mN="data-keybinding-context";class HQ{constructor(e,t){this._id=e,this._parent=t,this._value=Object.create(null),this._value._contextId=e}get value(){return{...this._value}}setValue(e,t){return this._value[e]!==t?(this._value[e]=t,!0):!1}removeValue(e){return e in this._value?(delete this._value[e],!0):!1}getValue(e){const t=this._value[e];return typeof t>"u"&&this._parent?this._parent.getValue(e):t}}class xS extends HQ{constructor(){super(-1,null)}setValue(e,t){return!1}removeValue(e){return!1}getValue(e){}}xS.INSTANCE=new xS;class fN extends HQ{constructor(e,t,i){super(e,null),this._configurationService=t,this._values=Tw.forConfigKeys(),this._listener=this._configurationService.onDidChangeConfiguration(r=>{if(r.source===7){const o=Array.from(this._values,([s])=>s);this._values.clear(),i.fire(new zFe(o))}else{const o=[];for(const s of r.affectedKeys){const a=`config.${s}`,l=this._values.findSuperstr(a);l!==void 0&&(o.push(...qn.map(l,([u])=>u)),this._values.deleteSuperstr(a)),this._values.has(a)&&(o.push(a),this._values.delete(a))}i.fire(new zFe(o))}})}dispose(){this._listener.dispose()}getValue(e){if(e.indexOf(fN._keyPrefix)!==0)return super.getValue(e);if(this._values.has(e))return this._values.get(e);const t=e.substr(fN._keyPrefix.length),i=this._configurationService.getValue(t);let r;switch(typeof i){case"number":case"boolean":case"string":r=i;break;default:Array.isArray(i)?r=JSON.stringify(i):r=i}return this._values.set(e,r),r}setValue(e,t){return super.setValue(e,t)}removeValue(e){return super.removeValue(e)}}fN._keyPrefix="config.";class _Wt{constructor(e,t,i){this._service=e,this._key=t,this._defaultValue=i,this.reset()}set(e){this._service.setContext(this._key,e)}reset(){typeof this._defaultValue>"u"?this._service.removeContext(this._key):this._service.setContext(this._key,this._defaultValue)}get(){return this._service.getContextKeyValue(this._key)}}class BFe{constructor(e){this.key=e}affectsSome(e){return e.has(this.key)}allKeysContainedIn(e){return this.affectsSome(e)}}class zFe{constructor(e){this.keys=e}affectsSome(e){for(const t of this.keys)if(e.has(t))return!0;return!1}allKeysContainedIn(e){return this.keys.every(t=>e.has(t))}}class DWt{constructor(e){this.events=e}affectsSome(e){for(const t of this.events)if(t.affectsSome(e))return!0;return!1}allKeysContainedIn(e){return this.events.every(t=>t.allKeysContainedIn(e))}}function AWt(n,e){return n.allKeysContainedIn(new Set(Object.keys(e)))}class YFe extends De{constructor(e){super(),this._onDidChangeContext=this._register(new SC({merge:t=>new DWt(t)})),this.onDidChangeContext=this._onDidChangeContext.event,this._isDisposed=!1,this._myContextId=e}createKey(e,t){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new _Wt(this,e,t)}bufferChangeEvents(e){this._onDidChangeContext.pause();try{e()}finally{this._onDidChangeContext.resume()}}createScoped(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");return new NWt(this,e)}contextMatchesRules(e){if(this._isDisposed)throw new Error("AbstractContextKeyService has been disposed");const t=this.getContextValuesContainer(this._myContextId);return e?e.evaluate(t):!0}getContextKeyValue(e){if(!this._isDisposed)return this.getContextValuesContainer(this._myContextId).getValue(e)}setContext(e,t){if(this._isDisposed)return;const i=this.getContextValuesContainer(this._myContextId);i&&i.setValue(e,t)&&this._onDidChangeContext.fire(new BFe(e))}removeContext(e){this._isDisposed||this.getContextValuesContainer(this._myContextId).removeValue(e)&&this._onDidChangeContext.fire(new BFe(e))}getContext(e){return this._isDisposed?xS.INSTANCE:this.getContextValuesContainer(kWt(e))}dispose(){super.dispose(),this._isDisposed=!0}}let UQ=class extends YFe{constructor(e){super(0),this._contexts=new Map,this._lastContextId=0;const t=this._register(new fN(this._myContextId,e,this._onDidChangeContext));this._contexts.set(this._myContextId,t)}getContextValuesContainer(e){return this._isDisposed?xS.INSTANCE:this._contexts.get(e)||xS.INSTANCE}createChildContext(e=this._myContextId){if(this._isDisposed)throw new Error("ContextKeyService has been disposed");const t=++this._lastContextId;return this._contexts.set(t,new HQ(t,this.getContextValuesContainer(e))),t}disposeContext(e){this._isDisposed||this._contexts.delete(e)}};UQ=LWt([FWt(0,Xn)],UQ);class NWt extends YFe{constructor(e,t){if(super(e.createChildContext()),this._parentChangeListener=this._register(new zs),this._parent=e,this._updateParentChangeListener(),this._domNode=t,this._domNode.hasAttribute(mN)){let i="";this._domNode.classList&&(i=Array.from(this._domNode.classList.values()).join(", "))}this._domNode.setAttribute(mN,String(this._myContextId))}_updateParentChangeListener(){this._parentChangeListener.value=this._parent.onDidChangeContext(e=>{const i=this._parent.getContextValuesContainer(this._myContextId).value;AWt(e,i)||this._onDidChangeContext.fire(e)})}dispose(){this._isDisposed||(this._parent.disposeContext(this._myContextId),this._domNode.removeAttribute(mN),super.dispose())}getContextValuesContainer(e){return this._isDisposed?xS.INSTANCE:this._parent.getContextValuesContainer(e)}createChildContext(e=this._myContextId){if(this._isDisposed)throw new Error("ScopedContextKeyService has been disposed");return this._parent.createChildContext(e)}disposeContext(e){this._isDisposed||this._parent.disposeContext(e)}}function kWt(n){for(;n;){if(n.hasAttribute(mN)){const e=n.getAttribute(mN);return e?parseInt(e,10):NaN}n=n.parentElement}return 0}function MWt(n,e,t){n.get(ln).createKey(String(e),ZWt(t))}function ZWt(n){return a1e(n,e=>{if(typeof e=="object"&&e.$mid===1)return $t.revive(e).toString();if(e instanceof $t)return e.toString()})}ei.registerCommand("_setContext",MWt),ei.registerCommand({id:"getContextKeyInfo",handler(){return[...It.all()].sort((n,e)=>n.key.localeCompare(e.key))},metadata:{description:x("getContextKeyInfo","A command that returns information about context keys"),args:[]}}),ei.registerCommand("_generateContextKeyInfo",function(){const n=[],e=new Set;for(const t of It.all())e.has(t.key)||(e.add(t.key),n.push(t));n.sort((t,i)=>t.key.localeCompare(i.key))});let TWt=class{constructor(e,t){this.key=e,this.data=t,this.incoming=new Map,this.outgoing=new Map}};class HFe{constructor(e){this._hashFn=e,this._nodes=new Map}roots(){const e=[];for(const t of this._nodes.values())t.outgoing.size===0&&e.push(t);return e}insertEdge(e,t){const i=this.lookupOrInsertNode(e),r=this.lookupOrInsertNode(t);i.outgoing.set(r.key,r),r.incoming.set(i.key,i)}removeNode(e){const t=this._hashFn(e);this._nodes.delete(t);for(const i of this._nodes.values())i.outgoing.delete(t),i.incoming.delete(t)}lookupOrInsertNode(e){const t=this._hashFn(e);let i=this._nodes.get(t);return i||(i=new TWt(t,e),this._nodes.set(t,i)),i}isEmpty(){return this._nodes.size===0}toString(){const e=[];for(const[t,i]of this._nodes)e.push(`${t} + (-> incoming)[${[...i.incoming.keys()].join(", ")}] + (outgoing ->)[${[...i.outgoing.keys()].join(",")}] +`);return e.join(` +`)}findCycleSlow(){for(const[e,t]of this._nodes){const i=new Set([e]),r=this._findCycle(t,i);if(r)return r}}_findCycle(e,t){for(const[i,r]of e.outgoing){if(t.has(i))return[...t,i].join(" -> ");t.add(i);const o=this._findCycle(r,t);if(o)return o;t.delete(i)}}}const EWt=!1;class UFe extends Error{constructor(e){var t;super("cyclic dependency between services"),this.message=(t=e.findCycleSlow())!==null&&t!==void 0?t:`UNABLE to detect cycle, dumping graph: +${e.toString()}`}}class fG{constructor(e=new aD,t=!1,i,r=EWt){var o;this._services=e,this._strict=t,this._parent=i,this._enableTracing=r,this._activeInstantiations=new Set,this._services.set(tn,this),this._globalGraph=r?(o=i==null?void 0:i._globalGraph)!==null&&o!==void 0?o:new HFe(s=>s):void 0}createChild(e){return new fG(e,this._strict,this,this._enableTracing)}invokeFunction(e,...t){const i=Pl.traceInvocation(this._enableTracing,e);let r=!1;try{return e({get:s=>{if(r)throw eY("service accessor is only valid during the invocation of its target method");const a=this._getOrCreateServiceInstance(s,i);if(!a)throw new Error(`[invokeFunction] unknown service '${s}'`);return a}},...t)}finally{r=!0,i.stop()}}createInstance(e,...t){let i,r;return e instanceof Xg?(i=Pl.traceCreation(this._enableTracing,e.ctor),r=this._createInstance(e.ctor,e.staticArguments.concat(t),i)):(i=Pl.traceCreation(this._enableTracing,e),r=this._createInstance(e,t,i)),i.stop(),r}_createInstance(e,t=[],i){const r=bh.getServiceDependencies(e).sort((a,l)=>a.index-l.index),o=[];for(const a of r){const l=this._getOrCreateServiceInstance(a.id,i);l||this._throwIfStrict(`[createInstance] ${e.name} depends on UNKNOWN service ${a.id}.`,!1),o.push(l)}const s=r.length>0?r[0].index:t.length;if(t.length!==s){const a=s-t.length;a>0?t=t.concat(new Array(a)):t=t.slice(0,s)}return Reflect.construct(e,t.concat(o))}_setServiceInstance(e,t){if(this._services.get(e)instanceof Xg)this._services.set(e,t);else if(this._parent)this._parent._setServiceInstance(e,t);else throw new Error("illegalState - setting UNKNOWN service instance")}_getServiceInstanceOrDescriptor(e){const t=this._services.get(e);return!t&&this._parent?this._parent._getServiceInstanceOrDescriptor(e):t}_getOrCreateServiceInstance(e,t){this._globalGraph&&this._globalGraphImplicitDependency&&this._globalGraph.insertEdge(this._globalGraphImplicitDependency,String(e));const i=this._getServiceInstanceOrDescriptor(e);return i instanceof Xg?this._safeCreateAndCacheServiceInstance(e,i,t.branch(e,!0)):(t.branch(e,!1),i)}_safeCreateAndCacheServiceInstance(e,t,i){if(this._activeInstantiations.has(e))throw new Error(`illegal state - RECURSIVELY instantiating service '${e}'`);this._activeInstantiations.add(e);try{return this._createAndCacheServiceInstance(e,t,i)}finally{this._activeInstantiations.delete(e)}}_createAndCacheServiceInstance(e,t,i){var r;const o=new HFe(l=>l.id.toString());let s=0;const a=[{id:e,desc:t,_trace:i}];for(;a.length;){const l=a.pop();if(o.lookupOrInsertNode(l),s++>1e3)throw new UFe(o);for(const u of bh.getServiceDependencies(l.desc.ctor)){const c=this._getServiceInstanceOrDescriptor(u.id);if(c||this._throwIfStrict(`[createInstance] ${e} depends on ${u.id} which is NOT registered.`,!0),(r=this._globalGraph)===null||r===void 0||r.insertEdge(String(l.id),String(u.id)),c instanceof Xg){const d={id:u.id,desc:c,_trace:l._trace.branch(u.id,!0)};o.insertEdge(l,d),a.push(d)}}}for(;;){const l=o.roots();if(l.length===0){if(!o.isEmpty())throw new UFe(o);break}for(const{data:u}of l){if(this._getServiceInstanceOrDescriptor(u.id)instanceof Xg){const d=this._createServiceInstanceWithOwner(u.id,u.desc.ctor,u.desc.staticArguments,u.desc.supportsDelayedInstantiation,u._trace);this._setServiceInstance(u.id,d)}o.removeNode(u)}}return this._getServiceInstanceOrDescriptor(e)}_createServiceInstanceWithOwner(e,t,i=[],r,o){if(this._services.get(e)instanceof Xg)return this._createServiceInstance(e,t,i,r,o);if(this._parent)return this._parent._createServiceInstanceWithOwner(e,t,i,r,o);throw new Error(`illegalState - creating UNKNOWN service instance ${t.name}`)}_createServiceInstance(e,t,i=[],r,o){if(r){const s=new fG(void 0,this._strict,this,this._enableTracing);s._globalGraphImplicitDependency=String(e);const a=new Map,l=new fht(()=>{const u=s._createInstance(t,i,o);for(const[c,d]of a){const h=u[c];if(typeof h=="function")for(const g of d)g.disposable=h.apply(u,g.listener)}return a.clear(),u});return new Proxy(Object.create(null),{get(u,c){if(!l.isInitialized&&typeof c=="string"&&(c.startsWith("onDid")||c.startsWith("onWill"))){let g=a.get(c);return g||(g=new Ua,a.set(c,g)),(f,b,C)=>{if(l.isInitialized)return l.value[c](f,b,C);{const v={listener:[f,b,C],disposable:void 0},w=g.push(v);return en(()=>{var F;w(),(F=v.disposable)===null||F===void 0||F.dispose()})}}}if(c in u)return u[c];const d=l.value;let h=d[c];return typeof h!="function"||(h=h.bind(d),u[c]=h),h},set(u,c,d){return l.value[c]=d,!0},getPrototypeOf(u){return t.prototype}})}else return this._createInstance(t,i,o)}_throwIfStrict(e,t){if(this._strict)throw new Error(e)}}class Pl{static traceInvocation(e,t){return e?new Pl(2,t.name||new Error().stack.split(` +`).slice(3,4).join(` +`)):Pl._None}static traceCreation(e,t){return e?new Pl(1,t.name):Pl._None}constructor(e,t){this.type=e,this.name=t,this._start=Date.now(),this._dep=[]}branch(e,t){const i=new Pl(3,e.toString());return this._dep.push([e,t,i]),i}stop(){const e=Date.now()-this._start;Pl._totals+=e;let t=!1;function i(o,s){const a=[],l=new Array(o+1).join(" ");for(const[u,c,d]of s._dep)if(c&&d){t=!0,a.push(`${l}CREATES -> ${u}`);const h=i(o+1,d);h&&a.push(h)}else a.push(`${l}uses -> ${u}`);return a.join(` +`)}const r=[`${this.type===1?"CREATE":"CALL"} ${this.name}`,`${i(1,this)}`,`DONE, took ${e.toFixed(2)}ms (grand total ${Pl._totals.toFixed(2)}ms)`];(e>2||t)&&Pl.all.add(r.join(` +`))}}Pl.all=new Set,Pl._None=new class extends Pl{constructor(){super(0,null)}stop(){}branch(){return this}},Pl._totals=0;const WWt=new Set([xn.inMemory,xn.vscodeSourceControl,xn.walkThrough,xn.walkThroughSnippet]);class RWt{constructor(){this._byResource=new no,this._byOwner=new Map}set(e,t,i){let r=this._byResource.get(e);r||(r=new Map,this._byResource.set(e,r)),r.set(t,i);let o=this._byOwner.get(t);o||(o=new no,this._byOwner.set(t,o)),o.set(e,i)}get(e,t){const i=this._byResource.get(e);return i==null?void 0:i.get(t)}delete(e,t){let i=!1,r=!1;const o=this._byResource.get(e);o&&(i=o.delete(t));const s=this._byOwner.get(t);if(s&&(r=s.delete(e)),i!==r)throw new Error("illegal state");return i&&r}values(e){var t,i,r,o;return typeof e=="string"?(i=(t=this._byOwner.get(e))===null||t===void 0?void 0:t.values())!==null&&i!==void 0?i:qn.empty():$t.isUri(e)?(o=(r=this._byResource.get(e))===null||r===void 0?void 0:r.values())!==null&&o!==void 0?o:qn.empty():qn.map(qn.concat(...this._byOwner.values()),s=>s[1])}}class GWt{constructor(e){this.errors=0,this.infos=0,this.warnings=0,this.unknowns=0,this._data=new no,this._service=e,this._subscription=e.onMarkerChanged(this._update,this)}dispose(){this._subscription.dispose()}_update(e){for(const t of e){const i=this._data.get(t);i&&this._substract(i);const r=this._resourceStats(t);this._add(r),this._data.set(t,r)}}_resourceStats(e){const t={errors:0,warnings:0,infos:0,unknowns:0};if(WWt.has(e.scheme))return t;for(const{severity:i}of this._service.read({resource:e}))i===Er.Error?t.errors+=1:i===Er.Warning?t.warnings+=1:i===Er.Info?t.infos+=1:t.unknowns+=1;return t}_substract(e){this.errors-=e.errors,this.warnings-=e.warnings,this.infos-=e.infos,this.unknowns-=e.unknowns}_add(e){this.errors+=e.errors,this.warnings+=e.warnings,this.infos+=e.infos,this.unknowns+=e.unknowns}}class i1{constructor(){this._onMarkerChanged=new $pe({delay:0,merge:i1._merge}),this.onMarkerChanged=this._onMarkerChanged.event,this._data=new RWt,this._stats=new GWt(this)}dispose(){this._stats.dispose(),this._onMarkerChanged.dispose()}remove(e,t){for(const i of t||[])this.changeOne(e,i,[])}changeOne(e,t,i){if(F0e(i))this._data.delete(t,e)&&this._onMarkerChanged.fire([t]);else{const r=[];for(const o of i){const s=i1._toMarker(e,t,o);s&&r.push(s)}this._data.set(t,e,r),this._onMarkerChanged.fire([t])}}static _toMarker(e,t,i){let{code:r,severity:o,message:s,source:a,startLineNumber:l,startColumn:u,endLineNumber:c,endColumn:d,relatedInformation:h,tags:g}=i;if(s)return l=l>0?l:1,u=u>0?u:1,c=c>=l?c:l,d=d>0?d:u,{resource:t,owner:e,code:r,severity:o,message:s,source:a,startLineNumber:l,startColumn:u,endLineNumber:c,endColumn:d,relatedInformation:h,tags:g}}changeAll(e,t){const i=[],r=this._data.values(e);if(r)for(const o of r){const s=qn.first(o);s&&(i.push(s.resource),this._data.delete(s.resource,e))}if(da(t)){const o=new no;for(const{resource:s,marker:a}of t){const l=i1._toMarker(e,s,a);if(!l)continue;const u=o.get(s);u?u.push(l):(o.set(s,[l]),i.push(s))}for(const[s,a]of o)this._data.set(s,e,a)}i.length>0&&this._onMarkerChanged.fire(i)}read(e=Object.create(null)){let{owner:t,resource:i,severities:r,take:o}=e;if((!o||o<0)&&(o=-1),t&&i){const s=this._data.get(i,t);if(s){const a=[];for(const l of s)if(i1._accept(l,r)){const u=a.push(l);if(o>0&&u===o)break}return a}else return[]}else if(!t&&!i){const s=[];for(const a of this._data.values())for(const l of a)if(i1._accept(l,r)){const u=s.push(l);if(o>0&&u===o)return s}return s}else{const s=this._data.values(i??t),a=[];for(const l of s)for(const u of l)if(i1._accept(u,r)){const c=a.push(u);if(o>0&&c===o)return a}return a}}static _accept(e,t){return t===void 0||(t&e.severity)===e.severity}static _merge(e){const t=new no;for(const i of e)for(const r of i)t.set(r,!0);return Array.from(t.keys())}}class VWt extends De{constructor(){super(...arguments),this._configurationModel=new qs}get configurationModel(){return this._configurationModel}reload(){return this.resetConfigurationModel(),this.configurationModel}getConfigurationDefaultOverrides(){return{}}resetConfigurationModel(){this._configurationModel=new qs;const e=xo.as(Ih.Configuration).getConfigurationProperties();this.updateConfigurationModel(Object.keys(e),e)}updateConfigurationModel(e,t){const i=this.getConfigurationDefaultOverrides();for(const r of e){const o=i[r],s=t[r];o!==void 0?this._configurationModel.addValue(r,o):s?this._configurationModel.addValue(r,s.default):this._configurationModel.removeValue(r)}}}class XWt extends De{constructor(e,t=[]){super(),this.logger=new vmt([e,...t]),this._register(e.onDidChangeLogLevel(i=>this.setLevel(i)))}get onDidChangeLogLevel(){return this.logger.onDidChangeLogLevel}setLevel(e){this.logger.setLevel(e)}getLevel(){return this.logger.getLevel()}trace(e,...t){this.logger.trace(e,...t)}debug(e,...t){this.logger.debug(e,...t)}info(e,...t){this.logger.info(e,...t)}warn(e,...t){this.logger.warn(e,...t)}error(e,...t){this.logger.error(e,...t)}}var r1=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},ks=function(n,e){return function(t,i){e(t,i,n)}};class PWt{constructor(e){this.disposed=!1,this.model=e,this._onWillDispose=new be}get textEditorModel(){return this.model}dispose(){this.disposed=!0,this._onWillDispose.fire()}}let JQ=class{constructor(e){this.modelService=e}createModelReference(e){const t=this.modelService.getModel(e);return t?Promise.resolve(new rht(new PWt(t))):Promise.reject(new Error("Model not found"))}};JQ=r1([ks(0,wr)],JQ);class pG{show(){return pG.NULL_PROGRESS_RUNNER}async showWhile(e,t){await e}}pG.NULL_PROGRESS_RUNNER={done:()=>{},total:()=>{},worked:()=>{}};class OWt{withProgress(e,t,i){return t({report:()=>{}})}}class BWt{constructor(){this.isExtensionDevelopment=!1,this.isBuilt=!1}}class zWt{async confirm(e){return{confirmed:this.doConfirm(e.message,e.detail),checkboxChecked:!1}}doConfirm(e,t){let i=e;return t&&(i=i+` + +`+t),Wi.confirm(i)}async prompt(e){var t,i;let r;if(this.doConfirm(e.message,e.detail)){const s=[...(t=e.buttons)!==null&&t!==void 0?t:[]];e.cancelButton&&typeof e.cancelButton!="string"&&typeof e.cancelButton!="boolean"&&s.push(e.cancelButton),r=await((i=s[0])===null||i===void 0?void 0:i.run({checkboxChecked:!1}))}return{result:r}}async error(e,t){await this.prompt({type:to.Error,message:e,detail:t})}}class pN{info(e){return this.notify({severity:to.Info,message:e})}warn(e){return this.notify({severity:to.Warning,message:e})}error(e){return this.notify({severity:to.Error,message:e})}notify(e){switch(e.severity){case to.Error:break;case to.Warning:break;default:break}return pN.NO_OP}prompt(e,t,i,r){return pN.NO_OP}status(e,t){return De.None}}pN.NO_OP=new XIt;let KQ=class{constructor(e){this._onWillExecuteCommand=new be,this._onDidExecuteCommand=new be,this.onDidExecuteCommand=this._onDidExecuteCommand.event,this._instantiationService=e}executeCommand(e,...t){const i=ei.getCommand(e);if(!i)return Promise.reject(new Error(`command '${e}' not found`));try{this._onWillExecuteCommand.fire({commandId:e,args:t});const r=this._instantiationService.invokeFunction.apply(this._instantiationService,[i.handler,...t]);return this._onDidExecuteCommand.fire({commandId:e,args:t}),Promise.resolve(r)}catch(r){return Promise.reject(r)}}};KQ=r1([ks(0,tn)],KQ);let LS=class extends pEt{constructor(e,t,i,r,o,s){super(e,t,i,r,o),this._cachedResolver=null,this._dynamicKeybindings=[],this._domNodeListeners=[];const a=g=>{const m=new je;m.add(Ve(g,at.KEY_DOWN,f=>{const b=new nr(f);this._dispatch(b,b.target)&&(b.preventDefault(),b.stopPropagation())})),m.add(Ve(g,at.KEY_UP,f=>{const b=new nr(f);this._singleModifierDispatch(b,b.target)&&b.preventDefault()})),this._domNodeListeners.push(new YWt(g,m))},l=g=>{for(let m=0;m{g.getOption(61)||a(g.getContainerDomNode())},c=g=>{g.getOption(61)||l(g.getContainerDomNode())};this._register(s.onCodeEditorAdd(u)),this._register(s.onCodeEditorRemove(c)),s.listCodeEditors().forEach(u);const d=g=>{a(g.getContainerDomNode())},h=g=>{l(g.getContainerDomNode())};this._register(s.onDiffEditorAdd(d)),this._register(s.onDiffEditorRemove(h)),s.listDiffEditors().forEach(d)}addDynamicKeybinding(e,t,i,r){return hd(ei.registerCommand(e,i),this.addDynamicKeybindings([{keybinding:t,command:e,when:r}]))}addDynamicKeybindings(e){const t=e.map(i=>{var r;return{keybinding:tY(i.keybinding,eu),command:(r=i.command)!==null&&r!==void 0?r:null,commandArgs:i.commandArgs,when:i.when,weight1:1e3,weight2:0,extensionId:null,isBuiltinExtension:!1}});return this._dynamicKeybindings=this._dynamicKeybindings.concat(t),this.updateResolver(),en(()=>{for(let i=0;ithis._log(i))}return this._cachedResolver}_documentHasFocus(){return Wi.document.hasFocus()}_toNormalizedKeybindingItems(e,t){const i=[];let r=0;for(const o of e){const s=o.when||void 0,a=o.keybinding;if(!a)i[r++]=new bFe(void 0,o.command,o.commandArgs,s,t,null,!1);else{const l=oN.resolveKeybinding(a,eu);for(const u of l)i[r++]=new bFe(u,o.command,o.commandArgs,s,t,null,!1)}}return i}resolveKeyboardEvent(e){const t=new mf(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,e.keyCode);return new oN([t],eu)}};LS=r1([ks(0,ln),ks(1,Vr),ks(2,Nl),ks(3,Fo),ks(4,Qa),ks(5,yi)],LS);class YWt extends De{constructor(e,t){super(),this.domNode=e,this._register(t)}}function JFe(n){return n&&typeof n=="object"&&(!n.overrideIdentifier||typeof n.overrideIdentifier=="string")&&(!n.resource||n.resource instanceof $t)}class KFe{constructor(){this._onDidChangeConfiguration=new be,this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;const e=new VWt;this._configuration=new $3(e.reload(),new qs,new qs,new qs),e.dispose()}getValue(e,t){const i=typeof e=="string"?e:void 0,r=JFe(e)?e:JFe(t)?t:{};return this._configuration.getValue(i,r,void 0)}updateValues(e){const t={data:this._configuration.toData()},i=[];for(const r of e){const[o,s]=r;this.getValue(o)!==s&&(this._configuration.updateValue(o,s),i.push(o))}if(i.length>0){const r=new hEt({keys:i,overrides:[]},t,this._configuration);r.source=8,this._onDidChangeConfiguration.fire(r)}return Promise.resolve()}updateValue(e,t,i,r){return this.updateValues([[e,t]])}inspect(e,t={}){return this._configuration.inspect(e,t,void 0)}}let jQ=class{constructor(e,t,i){this.configurationService=e,this.modelService=t,this.languageService=i,this._onDidChangeConfiguration=new be,this.configurationService.onDidChangeConfiguration(r=>{this._onDidChangeConfiguration.fire({affectedKeys:r.affectedKeys,affectsConfiguration:(o,s)=>r.affectsConfiguration(s)})})}getValue(e,t,i){const r=ve.isIPosition(t)?t:null,o=r?typeof i=="string"?i:void 0:typeof t=="string"?t:void 0,s=e?this.getLanguage(e,r):void 0;return typeof o>"u"?this.configurationService.getValue({resource:e,overrideIdentifier:s}):this.configurationService.getValue(o,{resource:e,overrideIdentifier:s})}getLanguage(e,t){const i=this.modelService.getModel(e);return i?t?i.getLanguageIdAtPosition(t.lineNumber,t.column):i.getLanguageId():this.languageService.guessLanguageIdByFilepathOrFirstLine(e)}};jQ=r1([ks(0,Xn),ks(1,wr),ks(2,Cr)],jQ);let QQ=class{constructor(e){this.configurationService=e}getEOL(e,t){const i=this.configurationService.getValue("files.eol",{overrideIdentifier:t,resource:e});return i&&typeof i=="string"&&i!=="auto"?i:Ha||$n?` +`:`\r +`}};QQ=r1([ks(0,Xn)],QQ);class HWt{publicLog2(){}}class bN{constructor(){const e=$t.from({scheme:bN.SCHEME,authority:"model",path:"/"});this.workspace={id:fSe,folders:[new RAt({uri:e,name:"",index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(e){return e&&e.scheme===bN.SCHEME?this.workspace.folders[0]:null}}bN.SCHEME="inmemory";function bG(n,e,t){if(!e||!(n instanceof KFe))return;const i=[];Object.keys(e).forEach(r=>{iLt(r)&&i.push([`editor.${r}`,e[r]]),t&&rLt(r)&&i.push([`diffEditor.${r}`,e[r]])}),i.length>0&&n.updateValues(i)}let $Q=class{constructor(e){this._modelService=e}hasPreviewHandler(){return!1}async apply(e,t){const i=Array.isArray(e)?e:uU.convert(e),r=new Map;for(const a of i){if(!(a instanceof d0))throw new Error("bad edit - only text edits are supported");const l=this._modelService.getModel(a.resource);if(!l)throw new Error("bad edit - model not found");if(typeof a.versionId=="number"&&l.getVersionId()!==a.versionId)throw new Error("bad state - model changed in the meantime");let u=r.get(l);u||(u=[],r.set(l,u)),u.push(vr.replaceMove(K.lift(a.textEdit.range),a.textEdit.text))}let o=0,s=0;for(const[a,l]of r)a.pushStackElement(),a.pushEditOperations([],l,()=>[]),a.pushStackElement(),s+=1,o+=l.length;return{ariaSummary:UI(eQ.bulkEditServiceSummary,o,s),isApplied:o>0}}};$Q=r1([ks(0,wr)],$Q);class UWt{getUriLabel(e,t){return e.scheme==="file"?e.fsPath:e.path}getUriBasenameLabel(e){return Ec(e)}}let qQ=class extends mQ{constructor(e,t){super(e),this._codeEditorService=t}showContextView(e,t,i){if(!t){const r=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();r&&(t=r.getContainerDomNode())}return super.showContextView(e,t,i)}};qQ=r1([ks(0,qv),ks(1,yi)],qQ);class JWt{constructor(){this._neverEmitter=new be,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}}class KWt extends aN{constructor(){super()}}class jWt extends XWt{constructor(){super(new Cmt)}}let e$=class extends CQ{constructor(e,t,i,r,o,s){super(e,t,i,r,o,s),this.configure({blockMouse:!1})}};e$=r1([ks(0,Nl),ks(1,Fo),ks(2,hm),ks(3,Pi),ks(4,wc),ks(5,ln)],e$);class QWt{async playSignal(e,t){}}ti(Xn,KFe,0),ti(MJ,jQ,0),ti(M2e,QQ,0),ti(Gv,bN,0),ti(_w,UWt,0),ti(Nl,HWt,0),ti(zj,zWt,0),ti(EU,BWt,0),ti(Fo,pN,0),ti(pm,i1,0),ti(Cr,KWt,0),ti(Zd,IWt,0),ti(Qa,jWt,0),ti(wr,oG,0),ti(FH,xQ,0),ti(ln,UQ,0),ti(pIe,OWt,0),ti(u0,pG,0),ti(bm,YLt,0),ti(_d,ZJ,0),ti(DD,$Q,0),ti(wLe,JWt,0),ti(Fl,JQ,0),ti(vd,PQ,0),ti(Pc,sDt,0),ti(Vr,KQ,0),ti(Pi,LS,0),ti(vv,WQ,0),ti(hm,qQ,0),ti(Rl,SQ,0),ti(qf,mG,0),ti(hu,e$,0),ti(wc,OQ,0),ti(o0,QWt,0);var sn;(function(n){const e=new aD;for(const[l,u]of P0e())e.set(l,u);const t=new fG(e,!0);e.set(tn,t);function i(l){r||s({});const u=e.get(l);if(!u)throw new Error("Missing service "+l);return u instanceof Xg?t.invokeFunction(c=>c.get(l)):u}n.get=i;let r=!1;const o=new be;function s(l){if(r)return t;r=!0;for(const[c,d]of P0e())e.get(c)||e.set(c,d);for(const c in l)if(l.hasOwnProperty(c)){const d=Un(c);e.get(d)instanceof Xg&&e.set(d,l[c])}const u=kFt();for(const c of u)try{t.createInstance(c)}catch(d){fn(d)}return o.fire(),t}n.initialize=s;function a(l){if(r)return l();const u=new je,c=u.add(o.event(()=>{c.dispose(),u.add(l())}));return u}n.withServices=a})(sn||(sn={}));var t$=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},yr=function(n,e){return function(t,i){e(t,i,n)}};let $Wt=0,jFe=!1;function qWt(n){if(!n){if(jFe)return;jFe=!0}qgt(n||Wi.document.body)}let CG=class extends Q2{constructor(e,t,i,r,o,s,a,l,u,c,d,h){const g={...t};g.ariaLabel=g.ariaLabel||O3.editorViewAccessibleLabel,g.ariaLabel=g.ariaLabel+";"+O3.accessibilityHelpMessage,super(e,g,{},i,r,o,s,l,u,c,d,h),a instanceof LS?this._standaloneKeybindingService=a:this._standaloneKeybindingService=null,qWt(g.ariaContainerElement),b2t((m,f)=>i.createInstance(j3,m,f,{}))}addCommand(e,t,i){if(!this._standaloneKeybindingService)return null;const r="DYNAMIC_"+ ++$Wt,o=Be.deserialize(i);return this._standaloneKeybindingService.addDynamicKeybinding(r,e,t,o),r}createContextKey(e,t){return this._contextKeyService.createKey(e,t)}addAction(e){if(typeof e.id!="string"||typeof e.label!="string"||typeof e.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return De.None;const t=e.id,i=e.label,r=Be.and(Be.equals("editorId",this.getId()),Be.deserialize(e.precondition)),o=e.keybindings,s=Be.and(r,Be.deserialize(e.keybindingContext)),a=e.contextMenuGroupId||null,l=e.contextMenuOrder||0,u=(g,...m)=>Promise.resolve(e.run(this,...m)),c=new je,d=this.getId()+":"+t;if(c.add(ei.registerCommand(d,u)),a){const g={command:{id:d,title:i},when:r,group:a,order:l};c.add(Ls.appendMenuItem($.EditorContext,g))}if(Array.isArray(o))for(const g of o)c.add(this._standaloneKeybindingService.addDynamicKeybinding(d,g,u,s));const h=new RCe(d,i,i,void 0,r,(...g)=>Promise.resolve(e.run(this,...g)),this._contextKeyService);return this._actions.set(t,h),c.add(en(()=>{this._actions.delete(t)})),c}_triggerCommand(e,t){if(this._codeEditorService instanceof Y3)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(e,t)}};CG=t$([yr(2,tn),yr(3,yi),yr(4,Vr),yr(5,ln),yr(6,Pi),yr(7,ts),yr(8,Fo),yr(9,vd),yr(10,$i),yr(11,Tt)],CG);let n$=class extends CG{constructor(e,t,i,r,o,s,a,l,u,c,d,h,g,m,f){const b={...t};bG(c,b,!1);const C=l.registerEditorContainer(e);typeof b.theme=="string"&&l.setTheme(b.theme),typeof b.autoDetectHighContrast<"u"&&l.setAutoDetectHighContrast(!!b.autoDetectHighContrast);const v=b.model;delete b.model,super(e,b,i,r,o,s,a,l,u,d,m,f),this._configurationService=c,this._standaloneThemeService=l,this._register(C);let w;if(typeof v>"u"){const S=g.getLanguageIdByMimeType(b.language)||b.language||Ru;w=QFe(h,g,b.value||"",S,void 0),this._ownsModel=!0}else w=v,this._ownsModel=!1;if(this._attachModel(w),w){const S={oldModelUrl:null,newModelUrl:w.uri};this._onDidChangeModel.fire(S)}}dispose(){super.dispose()}updateOptions(e){bG(this._configurationService,e,!1),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_postDetachModelCleanup(e){super._postDetachModelCleanup(e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}};n$=t$([yr(2,tn),yr(3,yi),yr(4,Vr),yr(5,ln),yr(6,Pi),yr(7,Zd),yr(8,Fo),yr(9,Xn),yr(10,vd),yr(11,wr),yr(12,Cr),yr(13,$i),yr(14,Tt)],n$);let i$=class extends c0{constructor(e,t,i,r,o,s,a,l,u,c,d,h){const g={...t};bG(l,g,!0);const m=s.registerEditorContainer(e);typeof g.theme=="string"&&s.setTheme(g.theme),typeof g.autoDetectHighContrast<"u"&&s.setAutoDetectHighContrast(!!g.autoDetectHighContrast),super(e,g,{},r,i,o,h,c),this._configurationService=l,this._standaloneThemeService=s,this._register(m)}dispose(){super.dispose()}updateOptions(e){bG(this._configurationService,e,!0),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_createInnerEditor(e,t,i){return e.createInstance(CG,t,i)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(e,t,i){return this.getModifiedEditor().addCommand(e,t,i)}createContextKey(e,t){return this.getModifiedEditor().createContextKey(e,t)}addAction(e){return this.getModifiedEditor().addAction(e)}};i$=t$([yr(2,tn),yr(3,ln),yr(4,yi),yr(5,Zd),yr(6,Fo),yr(7,Xn),yr(8,hu),yr(9,u0),yr(10,qf),yr(11,o0)],i$);function QFe(n,e,t,i,r){if(t=t||"",!i){const o=t.indexOf(` +`);let s=t;return o!==-1&&(s=t.substring(0,o)),$Fe(n,t,e.createByFilepathOrFirstLine(r||null,s),r)}return $Fe(n,t,e.createById(i),r)}function $Fe(n,e,t,i){return n.createModel(e,t,i)}class eRt extends AC{constructor(e){super(),this._getContext=e}runAction(e,t){return super.runAction(e,this._getContext())}}var tRt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},nRt=function(n,e){return function(t,i){e(t,i,n)}};class iRt{constructor(e,t){this.viewModel=e,this.deltaScrollVertical=t}getId(){return this.viewModel}}let vG=class extends De{constructor(e,t,i,r){super(),this._container=e,this._overflowWidgetsDomNode=t,this._workbenchUIElementFactory=i,this._instantiationService=r,this._viewModel=ci(this,void 0),this._collapsed=gn(this,s=>{var a;return(a=this._viewModel.read(s))===null||a===void 0?void 0:a.collapsed.read(s)}),this._editorContentHeight=ci(this,500),this.contentHeight=gn(this,s=>(this._collapsed.read(s)?0:this._editorContentHeight.read(s))+this._outerEditorHeight),this._modifiedContentWidth=ci(this,0),this._modifiedWidth=ci(this,0),this._originalContentWidth=ci(this,0),this._originalWidth=ci(this,0),this.maxScroll=gn(this,s=>{const a=this._modifiedContentWidth.read(s)-this._modifiedWidth.read(s),l=this._originalContentWidth.read(s)-this._originalWidth.read(s);return a>l?{maxScroll:a,width:this._modifiedWidth.read(s)}:{maxScroll:l,width:this._originalWidth.read(s)}}),this._elements=Xi("div.multiDiffEntry",[Xi("div.header@header",[Xi("div.header-content",[Xi("div.collapse-button@collapseButton"),Xi("div.file-path",[Xi("div.title.modified.show-file-icons@primaryPath",[]),Xi("div.status.deleted@status",["R"]),Xi("div.title.original.show-file-icons@secondaryPath",[])]),Xi("div.actions@actions")])]),Xi("div.editorParent",[Xi("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(c0,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode},{})),this.isModifedFocused=qFe(this.editor.getModifiedEditor()),this.isOriginalFocused=qFe(this.editor.getOriginalEditor()),this.isFocused=gn(this,s=>this.isModifedFocused.read(s)||this.isOriginalFocused.read(s)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=new je,this._headerHeight=48,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const o=new rW(this._elements.collapseButton,{});this._register(Jn(s=>{o.element.className="",o.icon=this._collapsed.read(s)?ct.chevronRight:ct.chevronDown})),this._register(o.onDidClick(()=>{var s;(s=this._viewModel.get())===null||s===void 0||s.collapsed.set(!this._collapsed.get(),void 0)})),this._register(Jn(s=>{this._elements.editor.style.display=this._collapsed.read(s)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(s=>{const a=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(a,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(s=>{const a=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(a,void 0)})),this._register(this.editor.onDidContentSizeChange(s=>{wE(a=>{this._editorContentHeight.set(s.contentHeight,a),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),a),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),a)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(s=>{if(this._isSettingScrollTop||!s.scrollTopChanged||!this._data)return;const a=s.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(a)})),this._register(Jn(s=>{const a=this.isFocused.read(s);this._elements.root.classList.toggle("focused",a)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._register(this._instantiationService.createInstance(zK,this._elements.actions,$.MultiDiffEditorFileToolbar,{actionRunner:this._register(new eRt(()=>{var s;return(s=this._viewModel.get())===null||s===void 0?void 0:s.modifiedUri})),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:s=>s.startsWith("navigation")},actionViewItemProvider:(s,a)=>Q2e(r,s,a)}))}setScrollLeft(e){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(e):this.editor.getOriginalEditor().setScrollLeft(e)}setData(e){this._data=e;function t(r){return{...r,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}const i=e.viewModel.entry.value;i.onOptionsDidChange&&this._dataStore.add(i.onOptionsDidChange(()=>{var r;this.editor.updateOptions(t((r=i.options)!==null&&r!==void 0?r:{}))})),wE(r=>{var o,s,a,l;(o=this._resourceLabel)===null||o===void 0||o.setUri((s=e.viewModel.modifiedUri)!==null&&s!==void 0?s:e.viewModel.originalUri,{strikethrough:e.viewModel.modifiedUri===void 0});let u=!1,c=!1,d=!1,h="";e.viewModel.modifiedUri&&e.viewModel.originalUri&&e.viewModel.modifiedUri.path!==e.viewModel.originalUri.path?(h="R",u=!0):e.viewModel.modifiedUri?e.viewModel.originalUri||(h="A",d=!0):(h="D",c=!0),this._elements.status.classList.toggle("renamed",u),this._elements.status.classList.toggle("deleted",c),this._elements.status.classList.toggle("added",d),this._elements.status.innerText=h,(a=this._resourceLabel2)===null||a===void 0||a.setUri(u?e.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(e.viewModel,r),this.editor.setModel(e.viewModel.diffEditorViewModel,r),this.editor.updateOptions(t((l=i.options)!==null&&l!==void 0?l:{}))})}render(e,t,i,r){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${e.start}px`,this._elements.root.style.height=`${e.length}px`,this._elements.root.style.width=`${t}px`,this._elements.root.style.position="absolute";const o=e.length-this._headerHeight,s=Math.max(0,Math.min(r.start-e.start,o));this._elements.header.style.transform=`translateY(${s}px)`,wE(a=>{this.editor.layout({width:t-2*8-2*1,height:e.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=i,this.editor.getOriginalEditor().setScrollTop(i)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",s>0||i>0),this._elements.header.classList.toggle("collapsed",s===o)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};vG=tRt([nRt(3,tn)],vG);function qFe(n){return mr(e=>{const t=new je;return t.add(n.onDidFocusEditorWidget(()=>e(!0))),t.add(n.onDidBlurEditorWidget(()=>e(!1))),t},()=>n.hasWidgetFocus())}class rRt{constructor(e){this._create=e,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(e){var t;let i;if(this._unused.size===0)i=this._create(e),this._itemData.set(i,e);else{const r=[...this._unused.values()];i=(t=r.find(o=>this._itemData.get(o).getId()===e.getId()))!==null&&t!==void 0?t:r[0],this._unused.delete(i),this._itemData.set(i,e),i.setData(e)}return this._used.add(i),{object:i,dispose:()=>{this._used.delete(i),this._unused.size>5?i.dispose():this._unused.add(i)}}}dispose(){for(const e of this._used)e.dispose();for(const e of this._unused)e.dispose();this._used.clear(),this._unused.clear()}}var oRt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},e_e=function(n,e){return function(t,i){e(t,i,n)}};let r$=class extends De{constructor(e,t,i,r,o,s){super(),this._element=e,this._dimension=t,this._viewModel=i,this._workbenchUIElementFactory=r,this._parentContextKeyService=o,this._parentInstantiationService=s,this._elements=Xi("div.monaco-component.multiDiffEditor",[Xi("div@content",{style:{overflow:"hidden"}}),Xi("div.monaco-editor@overflowWidgetsDomNode",{})]),this._sizeObserver=this._register(new Nye(this._element,void 0)),this._objectPool=this._register(new rRt(l=>{const u=this._instantiationService.createInstance(vG,this._elements.content,this._elements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return u.setData(l),u})),this._scrollable=this._register(new R2({forceIntegerValues:!1,scheduleAtNextAnimationFrame:l=>iu(qt(this._element),l),smoothScrollDuration:100})),this._scrollableElement=this._register(new ZT(this._elements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this.scrollTop=mr(this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=mr(this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItems=ew(this,(l,u)=>{const c=this._viewModel.read(l);return c?c.items.read(l).map(h=>{var g;const m=u.add(new sRt(h,this._objectPool,this.scrollLeft,b=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+b})})),f=(g=this._lastDocStates)===null||g===void 0?void 0:g[m.getKey()];return f&&rr(b=>{m.setViewState(f,b)}),m}):[]}),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(l,u)=>l.reduce((c,d)=>c+d.contentHeight.read(u)+this._spaceBetweenPx,0)),this.activeDiffItem=gn(this,l=>this._viewItems.read(l).find(u=>{var c;return(c=u.template.read(l))===null||c===void 0?void 0:c.isFocused.read(l)})),this.lastActiveDiffItem=h2t((l,u)=>{var c;return(c=this.activeDiffItem.read(l))!==null&&c!==void 0?c:u}),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._parentInstantiationService.createChild(new aD([ln,this._contextKeyService])),this._lastDocStates={},this._contextKeyService.createKey(ne.inMultiDiffEditor.key,!0),this._register(kh((l,u)=>{const c=this._viewModel.read(l);if(c&&c.contextKeys)for(const[d,h]of Object.entries(c.contextKeys)){const g=this._contextKeyService.createKey(d,void 0);g.set(h),u.add(en(()=>g.reset()))}}));const a=this._parentContextKeyService.createKey(ne.multiDiffEditorAllCollapsed.key,!1);this._register(Jn(l=>{const u=this._viewModel.read(l);if(u){const c=u.items.read(l).every(d=>d.collapsed.read(l));a.set(c)}})),this._register(Jn(l=>{const u=this.lastActiveDiffItem.read(l);rr(c=>{var d;(d=this._viewModel.read(l))===null||d===void 0||d.activeDiffItem.set(u==null?void 0:u.viewModel,c)})})),this._register(Jn(l=>{const u=this._dimension.read(l);this._sizeObserver.observe(u)})),this._elements.content.style.position="relative",this._register(Jn(l=>{const u=this._sizeObserver.height.read(l);this._elements.root.style.height=`${u}px`;const c=this._totalHeight.read(l);this._elements.content.style.height=`${c}px`;const d=this._sizeObserver.width.read(l);let h=d;const g=this._viewItems.read(l),m=u6(g,f=>f.maxScroll.read(l).maxScroll);if(m){const f=m.maxScroll.read(l);h=d+f.maxScroll}this._scrollableElement.setScrollDimensions({width:d,height:u,scrollHeight:c,scrollWidth:h})})),e.replaceChildren(this._scrollableElement.getDomNode()),this._register(en(()=>{e.replaceChildren()})),this._register(this._register(Jn(l=>{wE(u=>{this.render(l)})})))}render(e){const t=this.scrollTop.read(e);let i=0,r=0,o=0;const s=this._sizeObserver.height.read(e),a=Pn.ofStartAndLength(t,s),l=this._sizeObserver.width.read(e);for(const u of this._viewItems.read(e)){const c=u.contentHeight.read(e),d=Math.min(c,s),h=Pn.ofStartAndLength(r,d),g=Pn.ofStartAndLength(o,c);if(g.isBefore(a))i-=c-d,u.hide();else if(g.isAfter(a))u.hide();else{const m=Math.max(0,Math.min(a.start-g.start,c-d));i-=m;const f=Pn.ofStartAndLength(t+i,s);u.render(h,m,l,f)}r+=d+this._spaceBetweenPx,o+=c+this._spaceBetweenPx}this._elements.content.style.transform=`translateY(${-(t+i)}px)`}};r$=oRt([e_e(4,ln),e_e(5,tn)],r$);class sRt extends De{constructor(e,t,i,r){super(),this.viewModel=e,this._objectPool=t,this._scrollLeft=i,this._deltaScrollVertical=r,this._templateRef=this._register(dD(this,void 0)),this.contentHeight=gn(this,o=>{var s,a,l;return(l=(a=(s=this._templateRef.read(o))===null||s===void 0?void 0:s.object.contentHeight)===null||a===void 0?void 0:a.read(o))!==null&&l!==void 0?l:this.viewModel.lastTemplateData.read(o).contentHeight}),this.maxScroll=gn(this,o=>{var s,a;return(a=(s=this._templateRef.read(o))===null||s===void 0?void 0:s.object.maxScroll.read(o))!==null&&a!==void 0?a:{maxScroll:0,scrollWidth:0}}),this.template=gn(this,o=>{var s;return(s=this._templateRef.read(o))===null||s===void 0?void 0:s.object}),this._isHidden=ci(this,!1),this._register(Jn(o=>{var s;const a=this._scrollLeft.read(o);(s=this._templateRef.read(o))===null||s===void 0||s.object.setScrollLeft(a)})),this._register(Jn(o=>{const s=this._templateRef.read(o);!s||!this._isHidden.read(o)||s.object.isFocused.read(o)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){var e;return`VirtualViewItem(${(e=this.viewModel.entry.value.modified)===null||e===void 0?void 0:e.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(e,t){var i;this.viewModel.collapsed.set(e.collapsed,t),this._updateTemplateData(t);const r=this.viewModel.lastTemplateData.get(),o=(i=e.selections)===null||i===void 0?void 0:i.map(Gt.liftSelection);this.viewModel.lastTemplateData.set({...r,selections:o},t);const s=this._templateRef.get();s&&o&&s.object.editor.setSelections(o)}_updateTemplateData(e){var t;const i=this._templateRef.get();i&&this.viewModel.lastTemplateData.set({contentHeight:i.object.contentHeight.get(),selections:(t=i.object.editor.getSelections())!==null&&t!==void 0?t:void 0},e)}_clear(){const e=this._templateRef.get();e&&rr(t=>{this._updateTemplateData(t),e.object.hide(),this._templateRef.set(void 0,t)})}hide(){this._isHidden.set(!0,void 0)}render(e,t,i,r){this._isHidden.set(!1,void 0);let o=this._templateRef.get();if(!o){o=this._objectPool.getUnusedObj(new iRt(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(o,void 0);const s=this.viewModel.lastTemplateData.get().selections;s&&o.object.editor.setSelections(s)}o.object.render(e,i,t,r)}}re("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},x("multiDiffEditor.headerBackground","The background color of the diff editor's header")),re("multiDiffEditor.background",{dark:"editorBackground",light:"editorBackground",hcDark:"editorBackground",hcLight:"editorBackground"},x("multiDiffEditor.background","The background color of the multi file diff editor")),re("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},x("multiDiffEditor.border","The border color of the multi file diff editor"));var aRt=function(n,e,t,i){var r=arguments.length,o=r<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(n,e,t,i);else for(var a=n.length-1;a>=0;a--)(s=n[a])&&(o=(r<3?s(o):r>3?s(e,t,o):s(e,t))||o);return r>3&&o&&Object.defineProperty(e,t,o),o},lRt=function(n,e){return function(t,i){e(t,i,n)}};let o$=class extends De{constructor(e,t,i){super(),this._element=e,this._workbenchUIElementFactory=t,this._instantiationService=i,this._dimension=ci(this,void 0),this._viewModel=ci(this,void 0),this._widgetImpl=ew(this,(r,o)=>(dm(vG,r),o.add(this._instantiationService.createInstance(dm(r$,r),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory)))),this._register(gD(this._widgetImpl))}};o$=aRt([lRt(2,tn)],o$);function uRt(n,e,t){return sn.initialize(t||{}).createInstance(n$,n,e)}function cRt(n){return sn.get(yi).onCodeEditorAdd(t=>{n(t)})}function dRt(n){return sn.get(yi).onDiffEditorAdd(t=>{n(t)})}function hRt(){return sn.get(yi).listCodeEditors()}function gRt(){return sn.get(yi).listDiffEditors()}function mRt(n,e,t){return sn.initialize(t||{}).createInstance(i$,n,e)}function fRt(n,e){const t=sn.initialize(e||{});return new o$(n,{},t)}function pRt(n){if(typeof n.id!="string"||typeof n.run!="function")throw new Error("Invalid command descriptor, `id` and `run` are required properties!");return ei.registerCommand(n.id,n.run)}function bRt(n){if(typeof n.id!="string"||typeof n.label!="string"||typeof n.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");const e=Be.deserialize(n.precondition),t=(r,...o)=>cs.runEditorCommand(r,o,e,(s,a,l)=>Promise.resolve(n.run(a,...l))),i=new je;if(i.add(ei.registerCommand(n.id,t)),n.contextMenuGroupId){const r={command:{id:n.id,title:n.label},when:e,group:n.contextMenuGroupId,order:n.contextMenuOrder||0};i.add(Ls.appendMenuItem($.EditorContext,r))}if(Array.isArray(n.keybindings)){const r=sn.get(Pi);if(r instanceof LS){const o=Be.and(e,Be.deserialize(n.keybindingContext));i.add(r.addDynamicKeybindings(n.keybindings.map(s=>({keybinding:s,command:n.id,when:o}))))}}return i}function CRt(n){return t_e([n])}function t_e(n){const e=sn.get(Pi);return e instanceof LS?e.addDynamicKeybindings(n.map(t=>({keybinding:t.keybinding,command:t.command,commandArgs:t.commandArgs,when:Be.deserialize(t.when)}))):De.None}function vRt(n,e,t){const i=sn.get(Cr),r=i.getLanguageIdByMimeType(e)||e;return QFe(sn.get(wr),i,n,r,t)}function yRt(n,e){const t=sn.get(Cr),i=t.getLanguageIdByMimeType(e)||e||Ru;n.setLanguage(t.createById(i))}function IRt(n,e,t){n&&sn.get(pm).changeOne(e,n.uri,t)}function wRt(n){sn.get(pm).changeAll(n,[])}function SRt(n){return sn.get(pm).read(n)}function xRt(n){return sn.get(pm).onMarkerChanged(n)}function LRt(n){return sn.get(wr).getModel(n)}function FRt(){return sn.get(wr).getModels()}function _Rt(n){return sn.get(wr).onModelAdded(n)}function DRt(n){return sn.get(wr).onModelRemoved(n)}function ARt(n){return sn.get(wr).onModelLanguageChanged(t=>{n({model:t.model,oldLanguage:t.oldLanguageId})})}function NRt(n){return PTt(sn.get(wr),sn.get($i),n)}function kRt(n,e){const t=sn.get(Cr),i=sn.get(Zd);return iQ.colorizeElement(i,t,n,e).then(()=>{i.registerEditorContainer(n)})}function MRt(n,e,t){const i=sn.get(Cr);return sn.get(Zd).registerEditorContainer(Wi.document.body),iQ.colorize(i,n,e,t)}function ZRt(n,e,t=4){return sn.get(Zd).registerEditorContainer(Wi.document.body),iQ.colorizeModelLine(n,e,t)}function TRt(n){const e=mo.get(n);return e||{getInitialState:()=>q_,tokenize:(t,i,r)=>vve(n,r)}}function ERt(n,e){mo.getOrCreate(e);const t=TRt(e),i=Zg(n),r=[];let o=t.getInitialState();for(let s=0,a=i.length;s{var o;if(!i)return null;const s=(o=t.options)===null||o===void 0?void 0:o.selection;let a;return s&&typeof s.endLineNumber=="number"&&typeof s.endColumn=="number"?a=s:s&&(a={lineNumber:s.startLineNumber,column:s.startColumn}),await n.openCodeEditor(i,t.resource,a)?i:null})}function ORt(){return{create:uRt,getEditors:hRt,getDiffEditors:gRt,onDidCreateEditor:cRt,onDidCreateDiffEditor:dRt,createDiffEditor:mRt,addCommand:pRt,addEditorAction:bRt,addKeybindingRule:CRt,addKeybindingRules:t_e,createModel:vRt,setModelLanguage:yRt,setModelMarkers:IRt,getModelMarkers:SRt,removeAllMarkers:wRt,onDidChangeMarkers:xRt,getModels:FRt,getModel:LRt,onDidCreateModel:_Rt,onWillDisposeModel:DRt,onDidChangeModelLanguage:ARt,createWebWorker:NRt,colorizeElement:kRt,colorize:MRt,colorizeModelLine:ZRt,tokenize:ERt,defineTheme:WRt,setTheme:RRt,remeasureFonts:GRt,registerCommand:VRt,registerLinkOpener:XRt,registerEditorOpener:PRt,AccessibilitySupport:XU,ContentWidgetPositionPreference:HU,CursorChangeReason:UU,DefaultEndOfLine:JU,EditorAutoIndentStrategy:jU,EditorOption:QU,EndOfLinePreference:$U,EndOfLineSequence:qU,MinimapPosition:uJ,MouseTargetType:cJ,OverlayWidgetPositionPreference:hJ,OverviewRulerLane:gJ,GlyphMarginLane:eJ,RenderLineNumbersType:fJ,RenderMinimap:pJ,ScrollbarVisibility:CJ,ScrollType:bJ,TextEditorCursorBlinkingStyle:xJ,TextEditorCursorStyle:LJ,TrackedRangeStickiness:FJ,WrappingIndent:_J,InjectedTextCursorStops:nJ,PositionAffinity:mJ,ShowLightbulbIconMode:yJ,ConfigurationChangedEvent:u1e,BareFontInfo:XC,FontInfo:kH,TextModelResolvedOptions:zT,FindMatch:F_,ApplyUpdateResult:jF,EditorZoom:Dc,createMultiFileDiffEditor:fRt,EditorType:P_,EditorOptions:xh}}function BRt(n,e){if(!e||!Array.isArray(e))return!1;for(const t of e)if(!n(t))return!1;return!0}function yG(n,e){return typeof n=="boolean"?n:e}function n_e(n,e){return typeof n=="string"?n:e}function zRt(n){const e={};for(const t of n)e[t]=!0;return e}function i_e(n,e=!1){e&&(n=n.map(function(i){return i.toLowerCase()}));const t=zRt(n);return e?function(i){return t[i.toLowerCase()]!==void 0&&t.hasOwnProperty(i.toLowerCase())}:function(i){return t[i]!==void 0&&t.hasOwnProperty(i)}}function s$(n,e){e=e.replace(/@@/g,"");let t=0,i;do i=!1,e=e.replace(/@(\w+)/g,function(o,s){i=!0;let a="";if(typeof n[s]=="string")a=n[s];else if(n[s]&&n[s]instanceof RegExp)a=n[s].source;else throw n[s]===void 0?fr(n,"language definition does not contain attribute '"+s+"', used at: "+e):fr(n,"attribute reference '"+s+"' must be a string, used at: "+e);return uS(a)?"":"(?:"+a+")"}),t++;while(i&&t<5);e=e.replace(/\x01/g,"@");const r=(n.ignoreCase?"i":"")+(n.unicode?"u":"");return new RegExp(e,r)}function YRt(n,e,t,i){if(i<0)return n;if(i=100){i=i-100;const r=t.split(".");if(r.unshift(t),i=0&&(i.tokenSubst=!0),typeof t.bracket=="string")if(t.bracket==="@open")i.bracket=1;else if(t.bracket==="@close")i.bracket=-1;else throw fr(n,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+e);if(t.next){if(typeof t.next!="string")throw fr(n,"the next state must be a string value in rule: "+e);{let r=t.next;if(!/^(@pop|@push|@popall)$/.test(r)&&(r[0]==="@"&&(r=r.substr(1)),r.indexOf("$")<0&&!YTt(n,$0(n,r,"",[],""))))throw fr(n,"the next state '"+t.next+"' is not defined in rule: "+e);i.next=r}}return typeof t.goBack=="number"&&(i.goBack=t.goBack),typeof t.switchTo=="string"&&(i.switchTo=t.switchTo),typeof t.log=="string"&&(i.log=t.log),typeof t.nextEmbedded=="string"&&(i.nextEmbedded=t.nextEmbedded,n.usesEmbedded=!0),i}}else if(Array.isArray(t)){const i=[];for(let r=0,o=t.length;r0&&i[0]==="^",this.name=this.name+": "+i,this.regex=s$(e,"^(?:"+(this.matchOnlyAtLineStart?i.substr(1):i)+")")}setAction(e,t){this.action=a$(e,this.name,t)}}function r_e(n,e){if(!e||typeof e!="object")throw new Error("Monarch: expecting a language definition object");const t={};t.languageId=n,t.includeLF=yG(e.includeLF,!1),t.noThrow=!1,t.maxStack=100,t.start=typeof e.start=="string"?e.start:null,t.ignoreCase=yG(e.ignoreCase,!1),t.unicode=yG(e.unicode,!1),t.tokenPostfix=n_e(e.tokenPostfix,"."+t.languageId),t.defaultToken=n_e(e.defaultToken,"source"),t.usesEmbedded=!1;const i=e;i.languageId=n,i.includeLF=t.includeLF,i.ignoreCase=t.ignoreCase,i.unicode=t.unicode,i.noThrow=t.noThrow,i.usesEmbedded=t.usesEmbedded,i.stateNames=e.tokenizer,i.defaultToken=t.defaultToken;function r(s,a,l){for(const u of l){let c=u.include;if(c){if(typeof c!="string")throw fr(t,"an 'include' attribute must be a string at: "+s);if(c[0]==="@"&&(c=c.substr(1)),!e.tokenizer[c])throw fr(t,"include target '"+c+"' is not defined at: "+s);r(s+"."+c,a,e.tokenizer[c])}else{const d=new URt(s);if(Array.isArray(u)&&u.length>=1&&u.length<=3)if(d.setRegex(i,u[0]),u.length>=3)if(typeof u[1]=="string")d.setAction(i,{token:u[1],next:u[2]});else if(typeof u[1]=="object"){const h=u[1];h.next=u[2],d.setAction(i,h)}else throw fr(t,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+s);else d.setAction(i,u[1]);else{if(!u.regex)throw fr(t,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+s);u.name&&typeof u.name=="string"&&(d.name=u.name),u.matchOnlyAtStart&&(d.matchOnlyAtLineStart=yG(u.matchOnlyAtLineStart,!1)),d.setRegex(i,u.regex),d.setAction(i,u.action)}a.push(d)}}}if(!e.tokenizer||typeof e.tokenizer!="object")throw fr(t,"a language definition must define the 'tokenizer' attribute as an object");t.tokenizer=[];for(const s in e.tokenizer)if(e.tokenizer.hasOwnProperty(s)){t.start||(t.start=s);const a=e.tokenizer[s];t.tokenizer[s]=new Array,r("tokenizer."+s,t.tokenizer[s],a)}if(t.usesEmbedded=i.usesEmbedded,e.brackets){if(!Array.isArray(e.brackets))throw fr(t,"the 'brackets' attribute must be defined as an array")}else e.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];const o=[];for(const s of e.brackets){let a=s;if(a&&Array.isArray(a)&&a.length===3&&(a={token:a[2],open:a[0],close:a[1]}),a.open===a.close)throw fr(t,"open and close brackets in a 'brackets' attribute must be different: "+a.open+` + hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof a.open=="string"&&typeof a.token=="string"&&typeof a.close=="string")o.push({token:a.token+t.tokenPostfix,open:Q0(t,a.open),close:Q0(t,a.close)});else throw fr(t,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return t.brackets=o,t.noThrow=!0,t}function JRt(n){h2.registerLanguage(n)}function KRt(){let n=[];return n=n.concat(h2.getLanguages()),n}function jRt(n){return sn.get(Cr).languageIdCodec.encodeLanguageId(n)}function QRt(n,e){return sn.withServices(()=>{const i=sn.get(Cr).onDidRequestRichLanguageFeatures(r=>{r===n&&(i.dispose(),e())});return i})}function $Rt(n,e){return sn.withServices(()=>{const i=sn.get(Cr).onDidRequestBasicLanguageFeatures(r=>{r===n&&(i.dispose(),e())});return i})}function qRt(n,e){if(!sn.get(Cr).isRegisteredLanguageId(n))throw new Error(`Cannot set configuration for unknown language ${n}`);return sn.get($i).register(n,e,100)}class e3t{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){if(typeof this._actual.tokenize=="function")return CN.adaptTokenize(this._languageId,this._actual,e,i);throw new Error("Not supported!")}tokenizeEncoded(e,t,i){const r=this._actual.tokenizeEncoded(e,i);return new XT(r.tokens,r.endState)}}class CN{constructor(e,t,i,r){this._languageId=e,this._actual=t,this._languageService=i,this._standaloneThemeService=r}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const i=[];let r=0;for(let o=0,s=e.length;o0&&o[s-1]===h)continue;let g=d.startIndex;u===0?g=0:g{const i=await Promise.resolve(e.create());return i?t3t(i)?s_e(n,i):new tN(sn.get(Cr),sn.get(Zd),n,r_e(n,i),sn.get(Xn)):null});return mo.registerFactory(n,t)}function r3t(n,e){if(!sn.get(Cr).isRegisteredLanguageId(n))throw new Error(`Cannot set tokens provider for unknown language ${n}`);return o_e(e)?l$(n,{create:()=>e}):mo.register(n,s_e(n,e))}function o3t(n,e){const t=i=>new tN(sn.get(Cr),sn.get(Zd),n,r_e(n,i),sn.get(Xn));return o_e(e)?l$(n,{create:()=>e}):mo.register(n,t(e))}function s3t(n,e){return sn.get(Tt).referenceProvider.register(n,e)}function a3t(n,e){return sn.get(Tt).renameProvider.register(n,e)}function l3t(n,e){return sn.get(Tt).newSymbolNamesProvider.register(n,e)}function u3t(n,e){return sn.get(Tt).signatureHelpProvider.register(n,e)}function c3t(n,e){return sn.get(Tt).hoverProvider.register(n,{provideHover:(i,r,o)=>{const s=i.getWordAtPosition(r);return Promise.resolve(e.provideHover(i,r,o)).then(a=>{if(a)return!a.range&&s&&(a.range=new K(r.lineNumber,s.startColumn,r.lineNumber,s.endColumn)),a.range||(a.range=new K(r.lineNumber,r.column,r.lineNumber,r.column)),a})}})}function d3t(n,e){return sn.get(Tt).documentSymbolProvider.register(n,e)}function h3t(n,e){return sn.get(Tt).documentHighlightProvider.register(n,e)}function g3t(n,e){return sn.get(Tt).linkedEditingRangeProvider.register(n,e)}function m3t(n,e){return sn.get(Tt).definitionProvider.register(n,e)}function f3t(n,e){return sn.get(Tt).implementationProvider.register(n,e)}function p3t(n,e){return sn.get(Tt).typeDefinitionProvider.register(n,e)}function b3t(n,e){return sn.get(Tt).codeLensProvider.register(n,e)}function C3t(n,e,t){return sn.get(Tt).codeActionProvider.register(n,{providedCodeActionKinds:t==null?void 0:t.providedCodeActionKinds,documentation:t==null?void 0:t.documentation,provideCodeActions:(r,o,s,a)=>{const u=sn.get(pm).read({resource:r.uri}).filter(c=>K.areIntersectingOrTouching(c,o));return e.provideCodeActions(r,o,{markers:u,only:s.only,trigger:s.trigger},a)},resolveCodeAction:e.resolveCodeAction})}function v3t(n,e){return sn.get(Tt).documentFormattingEditProvider.register(n,e)}function y3t(n,e){return sn.get(Tt).documentRangeFormattingEditProvider.register(n,e)}function I3t(n,e){return sn.get(Tt).onTypeFormattingEditProvider.register(n,e)}function w3t(n,e){return sn.get(Tt).linkProvider.register(n,e)}function S3t(n,e){return sn.get(Tt).completionProvider.register(n,e)}function x3t(n,e){return sn.get(Tt).colorProvider.register(n,e)}function L3t(n,e){return sn.get(Tt).foldingRangeProvider.register(n,e)}function F3t(n,e){return sn.get(Tt).declarationProvider.register(n,e)}function _3t(n,e){return sn.get(Tt).selectionRangeProvider.register(n,e)}function D3t(n,e){return sn.get(Tt).documentSemanticTokensProvider.register(n,e)}function A3t(n,e){return sn.get(Tt).documentRangeSemanticTokensProvider.register(n,e)}function N3t(n,e){return sn.get(Tt).inlineCompletionsProvider.register(n,e)}function k3t(n,e){return sn.get(Tt).inlineEditProvider.register(n,e)}function M3t(n,e){return sn.get(Tt).inlayHintsProvider.register(n,e)}function Z3t(){return{register:JRt,getLanguages:KRt,onLanguage:QRt,onLanguageEncountered:$Rt,getEncodedLanguageId:jRt,setLanguageConfiguration:qRt,setColorMap:i3t,registerTokensProviderFactory:l$,setTokensProvider:r3t,setMonarchTokensProvider:o3t,registerReferenceProvider:s3t,registerRenameProvider:a3t,registerNewSymbolNameProvider:l3t,registerCompletionItemProvider:S3t,registerSignatureHelpProvider:u3t,registerHoverProvider:c3t,registerDocumentSymbolProvider:d3t,registerDocumentHighlightProvider:h3t,registerLinkedEditingRangeProvider:g3t,registerDefinitionProvider:m3t,registerImplementationProvider:f3t,registerTypeDefinitionProvider:p3t,registerCodeLensProvider:b3t,registerCodeActionProvider:C3t,registerDocumentFormattingEditProvider:v3t,registerDocumentRangeFormattingEditProvider:y3t,registerOnTypeFormattingEditProvider:I3t,registerLinkProvider:w3t,registerColorProvider:x3t,registerFoldingRangeProvider:L3t,registerDeclarationProvider:F3t,registerSelectionRangeProvider:_3t,registerDocumentSemanticTokensProvider:D3t,registerDocumentRangeSemanticTokensProvider:A3t,registerInlineCompletionsProvider:N3t,registerInlineEditProvider:k3t,registerInlayHintsProvider:M3t,DocumentHighlightKind:KU,CompletionItemKind:BU,CompletionItemTag:zU,CompletionItemInsertTextRule:OU,SymbolKind:wJ,SymbolTag:SJ,IndentAction:tJ,CompletionTriggerKind:YU,SignatureHelpTriggerKind:IJ,InlayHintKind:iJ,InlineCompletionTriggerKind:rJ,InlineEditTriggerKind:oJ,CodeActionTriggerType:PU,NewSymbolNameTag:dJ,FoldingRangeKind:xd,SelectedSuggestionInfo:uCe}}xh.wrappingIndent.defaultValue=0,xh.glyphMargin.defaultValue=!1,xh.autoIndent.defaultValue=3,xh.overviewRulerLanes.defaultValue=2,Bv.setFormatterSelector((n,e,t)=>Promise.resolve(n[0]));const dl=w2e();dl.editor=ORt(),dl.languages=Z3t();const T3t=dl.CancellationTokenSource,a_e=dl.Emitter,E3t=dl.KeyCode,W3t=dl.KeyMod,R3t=dl.Position,G3t=dl.Range,V3t=dl.Selection,X3t=dl.SelectionDirection,P3t=dl.MarkerSeverity,O3t=dl.MarkerTag,B3t=dl.Uri,z3t=dl.Token,Y3t=dl.editor,IG=dl.languages,u$=globalThis.MonacoEnvironment;(u$!=null&&u$.globalAPI||typeof define=="function"&&define.amd)&&(globalThis.monaco=dl),typeof globalThis.require<"u"&&typeof globalThis.require.config=="function"&&globalThis.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});const l_e=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:T3t,Emitter:a_e,KeyCode:E3t,KeyMod:W3t,MarkerSeverity:P3t,MarkerTag:O3t,Position:R3t,Range:G3t,Selection:V3t,SelectionDirection:X3t,Token:z3t,Uri:B3t,editor:Y3t,languages:IG},Symbol.toStringTag,{value:"Module"})),u_e="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NsYXNzIHpze2NvbnN0cnVjdG9yKCl7dGhpcy5saXN0ZW5lcnM9W10sdGhpcy51bmV4cGVjdGVkRXJyb3JIYW5kbGVyPWZ1bmN0aW9uKHQpe3NldFRpbWVvdXQoKCk9Pnt0aHJvdyB0LnN0YWNrP0FlLmlzRXJyb3JOb1RlbGVtZXRyeSh0KT9uZXcgQWUodC5tZXNzYWdlK2AKCmArdC5zdGFjayk6bmV3IEVycm9yKHQubWVzc2FnZStgCgpgK3Quc3RhY2spOnR9LDApfX1lbWl0KHQpe3RoaXMubGlzdGVuZXJzLmZvckVhY2gobj0+e24odCl9KX1vblVuZXhwZWN0ZWRFcnJvcih0KXt0aGlzLnVuZXhwZWN0ZWRFcnJvckhhbmRsZXIodCksdGhpcy5lbWl0KHQpfW9uVW5leHBlY3RlZEV4dGVybmFsRXJyb3IodCl7dGhpcy51bmV4cGVjdGVkRXJyb3JIYW5kbGVyKHQpfX1jb25zdCAkcz1uZXcgenM7ZnVuY3Rpb24gWXQoZSl7T3MoZSl8fCRzLm9uVW5leHBlY3RlZEVycm9yKGUpfWZ1bmN0aW9uIEp0KGUpe2lmKGUgaW5zdGFuY2VvZiBFcnJvcil7Y29uc3R7bmFtZTp0LG1lc3NhZ2U6bn09ZSxzPWUuc3RhY2t0cmFjZXx8ZS5zdGFjaztyZXR1cm57JGlzRXJyb3I6ITAsbmFtZTp0LG1lc3NhZ2U6bixzdGFjazpzLG5vVGVsZW1ldHJ5OkFlLmlzRXJyb3JOb1RlbGVtZXRyeShlKX19cmV0dXJuIGV9Y29uc3QgYnQ9IkNhbmNlbGVkIjtmdW5jdGlvbiBPcyhlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIEdzPyEwOmUgaW5zdGFuY2VvZiBFcnJvciYmZS5uYW1lPT09YnQmJmUubWVzc2FnZT09PWJ0fWNsYXNzIEdzIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoKXtzdXBlcihidCksdGhpcy5uYW1lPXRoaXMubWVzc2FnZX19Y2xhc3MgQWUgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLm5hbWU9IkNvZGVFeHBlY3RlZEVycm9yIn1zdGF0aWMgZnJvbUVycm9yKHQpe2lmKHQgaW5zdGFuY2VvZiBBZSlyZXR1cm4gdDtjb25zdCBuPW5ldyBBZTtyZXR1cm4gbi5tZXNzYWdlPXQubWVzc2FnZSxuLnN0YWNrPXQuc3RhY2ssbn1zdGF0aWMgaXNFcnJvck5vVGVsZW1ldHJ5KHQpe3JldHVybiB0Lm5hbWU9PT0iQ29kZUV4cGVjdGVkRXJyb3IifX1jbGFzcyBoZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQpe3N1cGVyKHR8fCJBbiB1bmV4cGVjdGVkIGJ1ZyBvY2N1cnJlZC4iKSxPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxoZS5wcm90b3R5cGUpfX1mdW5jdGlvbiBqcyhlLHQpe2NvbnN0IG49dGhpcztsZXQgcz0hMSxyO3JldHVybiBmdW5jdGlvbigpe2lmKHMpcmV0dXJuIHI7aWYocz0hMCx0KXRyeXtyPWUuYXBwbHkobixhcmd1bWVudHMpfWZpbmFsbHl7dCgpfWVsc2Ugcj1lLmFwcGx5KG4sYXJndW1lbnRzKTtyZXR1cm4gcn19dmFyIFplOyhmdW5jdGlvbihlKXtmdW5jdGlvbiB0KF8pe3JldHVybiBfJiZ0eXBlb2YgXz09Im9iamVjdCImJnR5cGVvZiBfW1N5bWJvbC5pdGVyYXRvcl09PSJmdW5jdGlvbiJ9ZS5pcz10O2NvbnN0IG49T2JqZWN0LmZyZWV6ZShbXSk7ZnVuY3Rpb24gcygpe3JldHVybiBufWUuZW1wdHk9cztmdW5jdGlvbipyKF8pe3lpZWxkIF99ZS5zaW5nbGU9cjtmdW5jdGlvbiBpKF8pe3JldHVybiB0KF8pP186cihfKX1lLndyYXA9aTtmdW5jdGlvbiBsKF8pe3JldHVybiBffHxufWUuZnJvbT1sO2Z1bmN0aW9uKm8oXyl7Zm9yKGxldCB3PV8ubGVuZ3RoLTE7dz49MDt3LS0peWllbGQgX1t3XX1lLnJldmVyc2U9bztmdW5jdGlvbiB1KF8pe3JldHVybiFffHxfW1N5bWJvbC5pdGVyYXRvcl0oKS5uZXh0KCkuZG9uZT09PSEwfWUuaXNFbXB0eT11O2Z1bmN0aW9uIGMoXyl7cmV0dXJuIF9bU3ltYm9sLml0ZXJhdG9yXSgpLm5leHQoKS52YWx1ZX1lLmZpcnN0PWM7ZnVuY3Rpb24gaChfLHcpe2Zvcihjb25zdCBwIG9mIF8paWYodyhwKSlyZXR1cm4hMDtyZXR1cm4hMX1lLnNvbWU9aDtmdW5jdGlvbiBmKF8sdyl7Zm9yKGNvbnN0IHAgb2YgXylpZih3KHApKXJldHVybiBwfWUuZmluZD1mO2Z1bmN0aW9uKmQoXyx3KXtmb3IoY29uc3QgcCBvZiBfKXcocCkmJih5aWVsZCBwKX1lLmZpbHRlcj1kO2Z1bmN0aW9uKm0oXyx3KXtsZXQgcD0wO2Zvcihjb25zdCB5IG9mIF8peWllbGQgdyh5LHArKyl9ZS5tYXA9bTtmdW5jdGlvbipnKC4uLl8pe2Zvcihjb25zdCB3IG9mIF8peWllbGQqd31lLmNvbmNhdD1nO2Z1bmN0aW9uIHgoXyx3LHApe2xldCB5PXA7Zm9yKGNvbnN0IFIgb2YgXyl5PXcoeSxSKTtyZXR1cm4geX1lLnJlZHVjZT14O2Z1bmN0aW9uKnYoXyx3LHA9Xy5sZW5ndGgpe2Zvcih3PDAmJih3Kz1fLmxlbmd0aCkscDwwP3ArPV8ubGVuZ3RoOnA+Xy5sZW5ndGgmJihwPV8ubGVuZ3RoKTt3PHA7dysrKXlpZWxkIF9bd119ZS5zbGljZT12O2Z1bmN0aW9uIE4oXyx3PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSl7Y29uc3QgcD1bXTtpZih3PT09MClyZXR1cm5bcCxfXTtjb25zdCB5PV9bU3ltYm9sLml0ZXJhdG9yXSgpO2ZvcihsZXQgUj0wO1I8dztSKyspe2NvbnN0IEU9eS5uZXh0KCk7aWYoRS5kb25lKXJldHVybltwLGUuZW1wdHkoKV07cC5wdXNoKEUudmFsdWUpfXJldHVybltwLHtbU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB5fX1dfWUuY29uc3VtZT1OO2FzeW5jIGZ1bmN0aW9uIFMoXyl7Y29uc3Qgdz1bXTtmb3IgYXdhaXQoY29uc3QgcCBvZiBfKXcucHVzaChwKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHcpfWUuYXN5bmNUb0FycmF5PVN9KShaZXx8KFplPXt9KSk7ZnVuY3Rpb24gbzEoZSl7cmV0dXJuIGV9ZnVuY3Rpb24gdTEoZSx0KXt9ZnVuY3Rpb24gWnQoZSl7aWYoWmUuaXMoZSkpe2NvbnN0IHQ9W107Zm9yKGNvbnN0IG4gb2YgZSlpZihuKXRyeXtuLmRpc3Bvc2UoKX1jYXRjaChzKXt0LnB1c2gocyl9aWYodC5sZW5ndGg9PT0xKXRocm93IHRbMF07aWYodC5sZW5ndGg+MSl0aHJvdyBuZXcgQWdncmVnYXRlRXJyb3IodCwiRW5jb3VudGVyZWQgZXJyb3JzIHdoaWxlIGRpc3Bvc2luZyBvZiBzdG9yZSIpO3JldHVybiBBcnJheS5pc0FycmF5KGUpP1tdOmV9ZWxzZSBpZihlKXJldHVybiBlLmRpc3Bvc2UoKSxlfWZ1bmN0aW9uIFhzKC4uLmUpe3JldHVybiBLZSgoKT0+WnQoZSkpfWZ1bmN0aW9uIEtlKGUpe3JldHVybntkaXNwb3NlOmpzKCgpPT57ZSgpfSl9fWNsYXNzIHlle2NvbnN0cnVjdG9yKCl7dGhpcy5fdG9EaXNwb3NlPW5ldyBTZXQsdGhpcy5faXNEaXNwb3NlZD0hMX1kaXNwb3NlKCl7dGhpcy5faXNEaXNwb3NlZHx8KHRoaXMuX2lzRGlzcG9zZWQ9ITAsdGhpcy5jbGVhcigpKX1nZXQgaXNEaXNwb3NlZCgpe3JldHVybiB0aGlzLl9pc0Rpc3Bvc2VkfWNsZWFyKCl7aWYodGhpcy5fdG9EaXNwb3NlLnNpemUhPT0wKXRyeXtadCh0aGlzLl90b0Rpc3Bvc2UpfWZpbmFsbHl7dGhpcy5fdG9EaXNwb3NlLmNsZWFyKCl9fWFkZCh0KXtpZighdClyZXR1cm4gdDtpZih0PT09dGhpcyl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCByZWdpc3RlciBhIGRpc3Bvc2FibGUgb24gaXRzZWxmISIpO3JldHVybiB0aGlzLl9pc0Rpc3Bvc2VkP3llLkRJU0FCTEVfRElTUE9TRURfV0FSTklORzp0aGlzLl90b0Rpc3Bvc2UuYWRkKHQpLHR9ZGVsZXRlQW5kTGVhayh0KXt0JiZ0aGlzLl90b0Rpc3Bvc2UuaGFzKHQpJiZ0aGlzLl90b0Rpc3Bvc2UuZGVsZXRlKHQpfX15ZS5ESVNBQkxFX0RJU1BPU0VEX1dBUk5JTkc9ITE7Y2xhc3MgSGV7Y29uc3RydWN0b3IoKXt0aGlzLl9zdG9yZT1uZXcgeWUsdGhpcy5fc3RvcmV9ZGlzcG9zZSgpe3RoaXMuX3N0b3JlLmRpc3Bvc2UoKX1fcmVnaXN0ZXIodCl7aWYodD09PXRoaXMpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmVnaXN0ZXIgYSBkaXNwb3NhYmxlIG9uIGl0c2VsZiEiKTtyZXR1cm4gdGhpcy5fc3RvcmUuYWRkKHQpfX1IZS5Ob25lPU9iamVjdC5mcmVlemUoe2Rpc3Bvc2UoKXt9fSk7Y2xhc3MgcXtjb25zdHJ1Y3Rvcih0KXt0aGlzLmVsZW1lbnQ9dCx0aGlzLm5leHQ9cS5VbmRlZmluZWQsdGhpcy5wcmV2PXEuVW5kZWZpbmVkfX1xLlVuZGVmaW5lZD1uZXcgcSh2b2lkIDApO2NsYXNzIFFze2NvbnN0cnVjdG9yKCl7dGhpcy5fZmlyc3Q9cS5VbmRlZmluZWQsdGhpcy5fbGFzdD1xLlVuZGVmaW5lZCx0aGlzLl9zaXplPTB9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5fc2l6ZX1pc0VtcHR5KCl7cmV0dXJuIHRoaXMuX2ZpcnN0PT09cS5VbmRlZmluZWR9Y2xlYXIoKXtsZXQgdD10aGlzLl9maXJzdDtmb3IoO3QhPT1xLlVuZGVmaW5lZDspe2NvbnN0IG49dC5uZXh0O3QucHJldj1xLlVuZGVmaW5lZCx0Lm5leHQ9cS5VbmRlZmluZWQsdD1ufXRoaXMuX2ZpcnN0PXEuVW5kZWZpbmVkLHRoaXMuX2xhc3Q9cS5VbmRlZmluZWQsdGhpcy5fc2l6ZT0wfXVuc2hpZnQodCl7cmV0dXJuIHRoaXMuX2luc2VydCh0LCExKX1wdXNoKHQpe3JldHVybiB0aGlzLl9pbnNlcnQodCwhMCl9X2luc2VydCh0LG4pe2NvbnN0IHM9bmV3IHEodCk7aWYodGhpcy5fZmlyc3Q9PT1xLlVuZGVmaW5lZCl0aGlzLl9maXJzdD1zLHRoaXMuX2xhc3Q9cztlbHNlIGlmKG4pe2NvbnN0IGk9dGhpcy5fbGFzdDt0aGlzLl9sYXN0PXMscy5wcmV2PWksaS5uZXh0PXN9ZWxzZXtjb25zdCBpPXRoaXMuX2ZpcnN0O3RoaXMuX2ZpcnN0PXMscy5uZXh0PWksaS5wcmV2PXN9dGhpcy5fc2l6ZSs9MTtsZXQgcj0hMTtyZXR1cm4oKT0+e3J8fChyPSEwLHRoaXMuX3JlbW92ZShzKSl9fXNoaWZ0KCl7aWYodGhpcy5fZmlyc3QhPT1xLlVuZGVmaW5lZCl7Y29uc3QgdD10aGlzLl9maXJzdC5lbGVtZW50O3JldHVybiB0aGlzLl9yZW1vdmUodGhpcy5fZmlyc3QpLHR9fXBvcCgpe2lmKHRoaXMuX2xhc3QhPT1xLlVuZGVmaW5lZCl7Y29uc3QgdD10aGlzLl9sYXN0LmVsZW1lbnQ7cmV0dXJuIHRoaXMuX3JlbW92ZSh0aGlzLl9sYXN0KSx0fX1fcmVtb3ZlKHQpe2lmKHQucHJldiE9PXEuVW5kZWZpbmVkJiZ0Lm5leHQhPT1xLlVuZGVmaW5lZCl7Y29uc3Qgbj10LnByZXY7bi5uZXh0PXQubmV4dCx0Lm5leHQucHJldj1ufWVsc2UgdC5wcmV2PT09cS5VbmRlZmluZWQmJnQubmV4dD09PXEuVW5kZWZpbmVkPyh0aGlzLl9maXJzdD1xLlVuZGVmaW5lZCx0aGlzLl9sYXN0PXEuVW5kZWZpbmVkKTp0Lm5leHQ9PT1xLlVuZGVmaW5lZD8odGhpcy5fbGFzdD10aGlzLl9sYXN0LnByZXYsdGhpcy5fbGFzdC5uZXh0PXEuVW5kZWZpbmVkKTp0LnByZXY9PT1xLlVuZGVmaW5lZCYmKHRoaXMuX2ZpcnN0PXRoaXMuX2ZpcnN0Lm5leHQsdGhpcy5fZmlyc3QucHJldj1xLlVuZGVmaW5lZCk7dGhpcy5fc2l6ZS09MX0qW1N5bWJvbC5pdGVyYXRvcl0oKXtsZXQgdD10aGlzLl9maXJzdDtmb3IoO3QhPT1xLlVuZGVmaW5lZDspeWllbGQgdC5lbGVtZW50LHQ9dC5uZXh0fX1jb25zdCBZcz1nbG9iYWxUaGlzLnBlcmZvcm1hbmNlJiZ0eXBlb2YgZ2xvYmFsVGhpcy5wZXJmb3JtYW5jZS5ub3c9PSJmdW5jdGlvbiI7Y2xhc3MgZXR7c3RhdGljIGNyZWF0ZSh0KXtyZXR1cm4gbmV3IGV0KHQpfWNvbnN0cnVjdG9yKHQpe3RoaXMuX25vdz1ZcyYmdD09PSExP0RhdGUubm93Omdsb2JhbFRoaXMucGVyZm9ybWFuY2Uubm93LmJpbmQoZ2xvYmFsVGhpcy5wZXJmb3JtYW5jZSksdGhpcy5fc3RhcnRUaW1lPXRoaXMuX25vdygpLHRoaXMuX3N0b3BUaW1lPS0xfXN0b3AoKXt0aGlzLl9zdG9wVGltZT10aGlzLl9ub3coKX1lbGFwc2VkKCl7cmV0dXJuIHRoaXMuX3N0b3BUaW1lIT09LTE/dGhpcy5fc3RvcFRpbWUtdGhpcy5fc3RhcnRUaW1lOnRoaXMuX25vdygpLXRoaXMuX3N0YXJ0VGltZX19dmFyIF90OyhmdW5jdGlvbihlKXtlLk5vbmU9KCk9PkhlLk5vbmU7ZnVuY3Rpb24gdChMLGIpe3JldHVybiBmKEwsKCk9Pnt9LDAsdm9pZCAwLCEwLHZvaWQgMCxiKX1lLmRlZmVyPXQ7ZnVuY3Rpb24gbihMKXtyZXR1cm4oYixDPW51bGwsQSk9PntsZXQgaz0hMSxGO3JldHVybiBGPUwoQj0+e2lmKCFrKXJldHVybiBGP0YuZGlzcG9zZSgpOms9ITAsYi5jYWxsKEMsQil9LG51bGwsQSksayYmRi5kaXNwb3NlKCksRn19ZS5vbmNlPW47ZnVuY3Rpb24gcyhMLGIsQyl7cmV0dXJuIGMoKEEsaz1udWxsLEYpPT5MKEI9PkEuY2FsbChrLGIoQikpLG51bGwsRiksQyl9ZS5tYXA9cztmdW5jdGlvbiByKEwsYixDKXtyZXR1cm4gYygoQSxrPW51bGwsRik9PkwoQj0+e2IoQiksQS5jYWxsKGssQil9LG51bGwsRiksQyl9ZS5mb3JFYWNoPXI7ZnVuY3Rpb24gaShMLGIsQyl7cmV0dXJuIGMoKEEsaz1udWxsLEYpPT5MKEI9PmIoQikmJkEuY2FsbChrLEIpLG51bGwsRiksQyl9ZS5maWx0ZXI9aTtmdW5jdGlvbiBsKEwpe3JldHVybiBMfWUuc2lnbmFsPWw7ZnVuY3Rpb24gbyguLi5MKXtyZXR1cm4oYixDPW51bGwsQSk9Pntjb25zdCBrPVhzKC4uLkwubWFwKEY9PkYoQj0+Yi5jYWxsKEMsQikpKSk7cmV0dXJuIGgoayxBKX19ZS5hbnk9bztmdW5jdGlvbiB1KEwsYixDLEEpe2xldCBrPUM7cmV0dXJuIHMoTCxGPT4oaz1iKGssRiksayksQSl9ZS5yZWR1Y2U9dTtmdW5jdGlvbiBjKEwsYil7bGV0IEM7Y29uc3QgQT17b25XaWxsQWRkRmlyc3RMaXN0ZW5lcigpe0M9TChrLmZpcmUsayl9LG9uRGlkUmVtb3ZlTGFzdExpc3RlbmVyKCl7Qz09bnVsbHx8Qy5kaXNwb3NlKCl9fSxrPW5ldyByZShBKTtyZXR1cm4gYj09bnVsbHx8Yi5hZGQoayksay5ldmVudH1mdW5jdGlvbiBoKEwsYil7cmV0dXJuIGIgaW5zdGFuY2VvZiBBcnJheT9iLnB1c2goTCk6YiYmYi5hZGQoTCksTH1mdW5jdGlvbiBmKEwsYixDPTEwMCxBPSExLGs9ITEsRixCKXtsZXQgWCxKLHFlLG10PTAsQ2U7Y29uc3QgaTE9e2xlYWtXYXJuaW5nVGhyZXNob2xkOkYsb25XaWxsQWRkRmlyc3RMaXN0ZW5lcigpe1g9TChhMT0+e210KyssSj1iKEosYTEpLEEmJiFxZSYmKGd0LmZpcmUoSiksSj12b2lkIDApLENlPSgpPT57Y29uc3QgbDE9SjtKPXZvaWQgMCxxZT12b2lkIDAsKCFBfHxtdD4xKSYmZ3QuZmlyZShsMSksbXQ9MH0sdHlwZW9mIEM9PSJudW1iZXIiPyhjbGVhclRpbWVvdXQocWUpLHFlPXNldFRpbWVvdXQoQ2UsQykpOnFlPT09dm9pZCAwJiYocWU9MCxxdWV1ZU1pY3JvdGFzayhDZSkpfSl9LG9uV2lsbFJlbW92ZUxpc3RlbmVyKCl7ayYmbXQ+MCYmKENlPT1udWxsfHxDZSgpKX0sb25EaWRSZW1vdmVMYXN0TGlzdGVuZXIoKXtDZT12b2lkIDAsWC5kaXNwb3NlKCl9fSxndD1uZXcgcmUoaTEpO3JldHVybiBCPT1udWxsfHxCLmFkZChndCksZ3QuZXZlbnR9ZS5kZWJvdW5jZT1mO2Z1bmN0aW9uIGQoTCxiPTAsQyl7cmV0dXJuIGUuZGVib3VuY2UoTCwoQSxrKT0+QT8oQS5wdXNoKGspLEEpOltrXSxiLHZvaWQgMCwhMCx2b2lkIDAsQyl9ZS5hY2N1bXVsYXRlPWQ7ZnVuY3Rpb24gbShMLGI9KEEsayk9PkE9PT1rLEMpe2xldCBBPSEwLGs7cmV0dXJuIGkoTCxGPT57Y29uc3QgQj1BfHwhYihGLGspO3JldHVybiBBPSExLGs9RixCfSxDKX1lLmxhdGNoPW07ZnVuY3Rpb24gZyhMLGIsQyl7cmV0dXJuW2UuZmlsdGVyKEwsYixDKSxlLmZpbHRlcihMLEE9PiFiKEEpLEMpXX1lLnNwbGl0PWc7ZnVuY3Rpb24geChMLGI9ITEsQz1bXSxBKXtsZXQgaz1DLnNsaWNlKCksRj1MKEo9PntrP2sucHVzaChKKTpYLmZpcmUoSil9KTtBJiZBLmFkZChGKTtjb25zdCBCPSgpPT57az09bnVsbHx8ay5mb3JFYWNoKEo9PlguZmlyZShKKSksaz1udWxsfSxYPW5ldyByZSh7b25XaWxsQWRkRmlyc3RMaXN0ZW5lcigpe0Z8fChGPUwoSj0+WC5maXJlKEopKSxBJiZBLmFkZChGKSl9LG9uRGlkQWRkRmlyc3RMaXN0ZW5lcigpe2smJihiP3NldFRpbWVvdXQoQik6QigpKX0sb25EaWRSZW1vdmVMYXN0TGlzdGVuZXIoKXtGJiZGLmRpc3Bvc2UoKSxGPW51bGx9fSk7cmV0dXJuIEEmJkEuYWRkKFgpLFguZXZlbnR9ZS5idWZmZXI9eDtmdW5jdGlvbiB2KEwsYil7cmV0dXJuKEEsayxGKT0+e2NvbnN0IEI9YihuZXcgUyk7cmV0dXJuIEwoZnVuY3Rpb24oWCl7Y29uc3QgSj1CLmV2YWx1YXRlKFgpO0ohPT1OJiZBLmNhbGwoayxKKX0sdm9pZCAwLEYpfX1lLmNoYWluPXY7Y29uc3QgTj1TeW1ib2woIkhhbHRDaGFpbmFibGUiKTtjbGFzcyBTe2NvbnN0cnVjdG9yKCl7dGhpcy5zdGVwcz1bXX1tYXAoYil7cmV0dXJuIHRoaXMuc3RlcHMucHVzaChiKSx0aGlzfWZvckVhY2goYil7cmV0dXJuIHRoaXMuc3RlcHMucHVzaChDPT4oYihDKSxDKSksdGhpc31maWx0ZXIoYil7cmV0dXJuIHRoaXMuc3RlcHMucHVzaChDPT5iKEMpP0M6TiksdGhpc31yZWR1Y2UoYixDKXtsZXQgQT1DO3JldHVybiB0aGlzLnN0ZXBzLnB1c2goaz0+KEE9YihBLGspLEEpKSx0aGlzfWxhdGNoKGI9KEMsQSk9PkM9PT1BKXtsZXQgQz0hMCxBO3JldHVybiB0aGlzLnN0ZXBzLnB1c2goaz0+e2NvbnN0IEY9Q3x8IWIoayxBKTtyZXR1cm4gQz0hMSxBPWssRj9rOk59KSx0aGlzfWV2YWx1YXRlKGIpe2Zvcihjb25zdCBDIG9mIHRoaXMuc3RlcHMpaWYoYj1DKGIpLGI9PT1OKWJyZWFrO3JldHVybiBifX1mdW5jdGlvbiBfKEwsYixDPUE9PkEpe2NvbnN0IEE9KC4uLlgpPT5CLmZpcmUoQyguLi5YKSksaz0oKT0+TC5vbihiLEEpLEY9KCk9PkwucmVtb3ZlTGlzdGVuZXIoYixBKSxCPW5ldyByZSh7b25XaWxsQWRkRmlyc3RMaXN0ZW5lcjprLG9uRGlkUmVtb3ZlTGFzdExpc3RlbmVyOkZ9KTtyZXR1cm4gQi5ldmVudH1lLmZyb21Ob2RlRXZlbnRFbWl0dGVyPV87ZnVuY3Rpb24gdyhMLGIsQz1BPT5BKXtjb25zdCBBPSguLi5YKT0+Qi5maXJlKEMoLi4uWCkpLGs9KCk9PkwuYWRkRXZlbnRMaXN0ZW5lcihiLEEpLEY9KCk9PkwucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLEEpLEI9bmV3IHJlKHtvbldpbGxBZGRGaXJzdExpc3RlbmVyOmssb25EaWRSZW1vdmVMYXN0TGlzdGVuZXI6Rn0pO3JldHVybiBCLmV2ZW50fWUuZnJvbURPTUV2ZW50RW1pdHRlcj13O2Z1bmN0aW9uIHAoTCl7cmV0dXJuIG5ldyBQcm9taXNlKGI9Pm4oTCkoYikpfWUudG9Qcm9taXNlPXA7ZnVuY3Rpb24geShMKXtjb25zdCBiPW5ldyByZTtyZXR1cm4gTC50aGVuKEM9PntiLmZpcmUoQyl9LCgpPT57Yi5maXJlKHZvaWQgMCl9KS5maW5hbGx5KCgpPT57Yi5kaXNwb3NlKCl9KSxiLmV2ZW50fWUuZnJvbVByb21pc2U9eTtmdW5jdGlvbiBSKEwsYixDKXtyZXR1cm4gYihDKSxMKEE9PmIoQSkpfWUucnVuQW5kU3Vic2NyaWJlPVI7Y2xhc3MgRXtjb25zdHJ1Y3RvcihiLEMpe3RoaXMuX29ic2VydmFibGU9Yix0aGlzLl9jb3VudGVyPTAsdGhpcy5faGFzQ2hhbmdlZD0hMTtjb25zdCBBPXtvbldpbGxBZGRGaXJzdExpc3RlbmVyOigpPT57Yi5hZGRPYnNlcnZlcih0aGlzKX0sb25EaWRSZW1vdmVMYXN0TGlzdGVuZXI6KCk9PntiLnJlbW92ZU9ic2VydmVyKHRoaXMpfX07dGhpcy5lbWl0dGVyPW5ldyByZShBKSxDJiZDLmFkZCh0aGlzLmVtaXR0ZXIpfWJlZ2luVXBkYXRlKGIpe3RoaXMuX2NvdW50ZXIrK31oYW5kbGVQb3NzaWJsZUNoYW5nZShiKXt9aGFuZGxlQ2hhbmdlKGIsQyl7dGhpcy5faGFzQ2hhbmdlZD0hMH1lbmRVcGRhdGUoYil7dGhpcy5fY291bnRlci0tLHRoaXMuX2NvdW50ZXI9PT0wJiYodGhpcy5fb2JzZXJ2YWJsZS5yZXBvcnRDaGFuZ2VzKCksdGhpcy5faGFzQ2hhbmdlZCYmKHRoaXMuX2hhc0NoYW5nZWQ9ITEsdGhpcy5lbWl0dGVyLmZpcmUodGhpcy5fb2JzZXJ2YWJsZS5nZXQoKSkpKX19ZnVuY3Rpb24gSShMLGIpe3JldHVybiBuZXcgRShMLGIpLmVtaXR0ZXIuZXZlbnR9ZS5mcm9tT2JzZXJ2YWJsZT1JO2Z1bmN0aW9uIEcoTCl7cmV0dXJuKGIsQyxBKT0+e2xldCBrPTAsRj0hMTtjb25zdCBCPXtiZWdpblVwZGF0ZSgpe2srK30sZW5kVXBkYXRlKCl7ay0tLGs9PT0wJiYoTC5yZXBvcnRDaGFuZ2VzKCksRiYmKEY9ITEsYi5jYWxsKEMpKSl9LGhhbmRsZVBvc3NpYmxlQ2hhbmdlKCl7fSxoYW5kbGVDaGFuZ2UoKXtGPSEwfX07TC5hZGRPYnNlcnZlcihCKSxMLnJlcG9ydENoYW5nZXMoKTtjb25zdCBYPXtkaXNwb3NlKCl7TC5yZW1vdmVPYnNlcnZlcihCKX19O3JldHVybiBBIGluc3RhbmNlb2YgeWU/QS5hZGQoWCk6QXJyYXkuaXNBcnJheShBKSYmQS5wdXNoKFgpLFh9fWUuZnJvbU9ic2VydmFibGVMaWdodD1HfSkoX3R8fChfdD17fSkpO2NsYXNzIFJle2NvbnN0cnVjdG9yKHQpe3RoaXMubGlzdGVuZXJDb3VudD0wLHRoaXMuaW52b2NhdGlvbkNvdW50PTAsdGhpcy5lbGFwc2VkT3ZlcmFsbD0wLHRoaXMuZHVyYXRpb25zPVtdLHRoaXMubmFtZT1gJHt0fV8ke1JlLl9pZFBvb2wrK31gLFJlLmFsbC5hZGQodGhpcyl9c3RhcnQodCl7dGhpcy5fc3RvcFdhdGNoPW5ldyBldCx0aGlzLmxpc3RlbmVyQ291bnQ9dH1zdG9wKCl7aWYodGhpcy5fc3RvcFdhdGNoKXtjb25zdCB0PXRoaXMuX3N0b3BXYXRjaC5lbGFwc2VkKCk7dGhpcy5kdXJhdGlvbnMucHVzaCh0KSx0aGlzLmVsYXBzZWRPdmVyYWxsKz10LHRoaXMuaW52b2NhdGlvbkNvdW50Kz0xLHRoaXMuX3N0b3BXYXRjaD12b2lkIDB9fX1SZS5hbGw9bmV3IFNldCxSZS5faWRQb29sPTA7bGV0IEpzPS0xO2NsYXNzIFpze2NvbnN0cnVjdG9yKHQsbj1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDE4KS5zbGljZSgyLDUpKXt0aGlzLnRocmVzaG9sZD10LHRoaXMubmFtZT1uLHRoaXMuX3dhcm5Db3VudGRvd249MH1kaXNwb3NlKCl7dmFyIHQ7KHQ9dGhpcy5fc3RhY2tzKT09PW51bGx8fHQ9PT12b2lkIDB8fHQuY2xlYXIoKX1jaGVjayh0LG4pe2NvbnN0IHM9dGhpcy50aHJlc2hvbGQ7aWYoczw9MHx8bjxzKXJldHVybjt0aGlzLl9zdGFja3N8fCh0aGlzLl9zdGFja3M9bmV3IE1hcCk7Y29uc3Qgcj10aGlzLl9zdGFja3MuZ2V0KHQudmFsdWUpfHwwO2lmKHRoaXMuX3N0YWNrcy5zZXQodC52YWx1ZSxyKzEpLHRoaXMuX3dhcm5Db3VudGRvd24tPTEsdGhpcy5fd2FybkNvdW50ZG93bjw9MCl7dGhpcy5fd2FybkNvdW50ZG93bj1zKi41O2xldCBpLGw9MDtmb3IoY29uc3Rbbyx1XW9mIHRoaXMuX3N0YWNrcykoIWl8fGw8dSkmJihpPW8sbD11KX1yZXR1cm4oKT0+e2NvbnN0IGk9dGhpcy5fc3RhY2tzLmdldCh0LnZhbHVlKXx8MDt0aGlzLl9zdGFja3Muc2V0KHQudmFsdWUsaS0xKX19fWNsYXNzIHh0e3N0YXRpYyBjcmVhdGUoKXt2YXIgdDtyZXR1cm4gbmV3IHh0KCh0PW5ldyBFcnJvcigpLnN0YWNrKSE9PW51bGwmJnQhPT12b2lkIDA/dDoiIil9Y29uc3RydWN0b3IodCl7dGhpcy52YWx1ZT10fXByaW50KCl7fX1jbGFzcyBwdHtjb25zdHJ1Y3Rvcih0KXt0aGlzLnZhbHVlPXR9fWNvbnN0IEtzPTI7Y2xhc3MgcmV7Y29uc3RydWN0b3IodCl7dmFyIG4scyxyLGksbDt0aGlzLl9zaXplPTAsdGhpcy5fb3B0aW9ucz10LHRoaXMuX2xlYWthZ2VNb249ISgobj10aGlzLl9vcHRpb25zKT09PW51bGx8fG49PT12b2lkIDApJiZuLmxlYWtXYXJuaW5nVGhyZXNob2xkP25ldyBacygocj0ocz10aGlzLl9vcHRpb25zKT09PW51bGx8fHM9PT12b2lkIDA/dm9pZCAwOnMubGVha1dhcm5pbmdUaHJlc2hvbGQpIT09bnVsbCYmciE9PXZvaWQgMD9yOkpzKTp2b2lkIDAsdGhpcy5fcGVyZk1vbj0hKChpPXRoaXMuX29wdGlvbnMpPT09bnVsbHx8aT09PXZvaWQgMCkmJmkuX3Byb2ZOYW1lP25ldyBSZSh0aGlzLl9vcHRpb25zLl9wcm9mTmFtZSk6dm9pZCAwLHRoaXMuX2RlbGl2ZXJ5UXVldWU9KGw9dGhpcy5fb3B0aW9ucyk9PT1udWxsfHxsPT09dm9pZCAwP3ZvaWQgMDpsLmRlbGl2ZXJ5UXVldWV9ZGlzcG9zZSgpe3ZhciB0LG4scyxyO3RoaXMuX2Rpc3Bvc2VkfHwodGhpcy5fZGlzcG9zZWQ9ITAsKCh0PXRoaXMuX2RlbGl2ZXJ5UXVldWUpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5jdXJyZW50KT09PXRoaXMmJnRoaXMuX2RlbGl2ZXJ5UXVldWUucmVzZXQoKSx0aGlzLl9saXN0ZW5lcnMmJih0aGlzLl9saXN0ZW5lcnM9dm9pZCAwLHRoaXMuX3NpemU9MCksKHM9KG49dGhpcy5fb3B0aW9ucyk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLm9uRGlkUmVtb3ZlTGFzdExpc3RlbmVyKT09PW51bGx8fHM9PT12b2lkIDB8fHMuY2FsbChuKSwocj10aGlzLl9sZWFrYWdlTW9uKT09PW51bGx8fHI9PT12b2lkIDB8fHIuZGlzcG9zZSgpKX1nZXQgZXZlbnQoKXt2YXIgdDtyZXR1cm4odD10aGlzLl9ldmVudCkhPT1udWxsJiZ0IT09dm9pZCAwfHwodGhpcy5fZXZlbnQ9KG4scyxyKT0+e3ZhciBpLGwsbyx1LGM7aWYodGhpcy5fbGVha2FnZU1vbiYmdGhpcy5fc2l6ZT50aGlzLl9sZWFrYWdlTW9uLnRocmVzaG9sZCozfHx0aGlzLl9kaXNwb3NlZClyZXR1cm4gSGUuTm9uZTtzJiYobj1uLmJpbmQocykpO2NvbnN0IGg9bmV3IHB0KG4pO2xldCBmO3RoaXMuX2xlYWthZ2VNb24mJnRoaXMuX3NpemU+PU1hdGguY2VpbCh0aGlzLl9sZWFrYWdlTW9uLnRocmVzaG9sZCouMikmJihoLnN0YWNrPXh0LmNyZWF0ZSgpLGY9dGhpcy5fbGVha2FnZU1vbi5jaGVjayhoLnN0YWNrLHRoaXMuX3NpemUrMSkpLHRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMgaW5zdGFuY2VvZiBwdD8oKGM9dGhpcy5fZGVsaXZlcnlRdWV1ZSkhPT1udWxsJiZjIT09dm9pZCAwfHwodGhpcy5fZGVsaXZlcnlRdWV1ZT1uZXcgZXIpLHRoaXMuX2xpc3RlbmVycz1bdGhpcy5fbGlzdGVuZXJzLGhdKTp0aGlzLl9saXN0ZW5lcnMucHVzaChoKTooKGw9KGk9dGhpcy5fb3B0aW9ucyk9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLm9uV2lsbEFkZEZpcnN0TGlzdGVuZXIpPT09bnVsbHx8bD09PXZvaWQgMHx8bC5jYWxsKGksdGhpcyksdGhpcy5fbGlzdGVuZXJzPWgsKHU9KG89dGhpcy5fb3B0aW9ucyk9PT1udWxsfHxvPT09dm9pZCAwP3ZvaWQgMDpvLm9uRGlkQWRkRmlyc3RMaXN0ZW5lcik9PT1udWxsfHx1PT09dm9pZCAwfHx1LmNhbGwobyx0aGlzKSksdGhpcy5fc2l6ZSsrO2NvbnN0IGQ9S2UoKCk9PntmPT1udWxsfHxmKCksdGhpcy5fcmVtb3ZlTGlzdGVuZXIoaCl9KTtyZXR1cm4gciBpbnN0YW5jZW9mIHllP3IuYWRkKGQpOkFycmF5LmlzQXJyYXkocikmJnIucHVzaChkKSxkfSksdGhpcy5fZXZlbnR9X3JlbW92ZUxpc3RlbmVyKHQpe3ZhciBuLHMscixpO2lmKChzPShuPXRoaXMuX29wdGlvbnMpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5vbldpbGxSZW1vdmVMaXN0ZW5lcik9PT1udWxsfHxzPT09dm9pZCAwfHxzLmNhbGwobix0aGlzKSwhdGhpcy5fbGlzdGVuZXJzKXJldHVybjtpZih0aGlzLl9zaXplPT09MSl7dGhpcy5fbGlzdGVuZXJzPXZvaWQgMCwoaT0ocj10aGlzLl9vcHRpb25zKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIub25EaWRSZW1vdmVMYXN0TGlzdGVuZXIpPT09bnVsbHx8aT09PXZvaWQgMHx8aS5jYWxsKHIsdGhpcyksdGhpcy5fc2l6ZT0wO3JldHVybn1jb25zdCBsPXRoaXMuX2xpc3RlbmVycyxvPWwuaW5kZXhPZih0KTtpZihvPT09LTEpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0ZWQgdG8gZGlzcG9zZSB1bmtub3duIGxpc3RlbmVyIik7dGhpcy5fc2l6ZS0tLGxbb109dm9pZCAwO2NvbnN0IHU9dGhpcy5fZGVsaXZlcnlRdWV1ZS5jdXJyZW50PT09dGhpcztpZih0aGlzLl9zaXplKktzPD1sLmxlbmd0aCl7bGV0IGM9MDtmb3IobGV0IGg9MDtoPGwubGVuZ3RoO2grKylsW2hdP2xbYysrXT1sW2hdOnUmJih0aGlzLl9kZWxpdmVyeVF1ZXVlLmVuZC0tLGM8dGhpcy5fZGVsaXZlcnlRdWV1ZS5pJiZ0aGlzLl9kZWxpdmVyeVF1ZXVlLmktLSk7bC5sZW5ndGg9Y319X2RlbGl2ZXIodCxuKXt2YXIgcztpZighdClyZXR1cm47Y29uc3Qgcj0oKHM9dGhpcy5fb3B0aW9ucyk9PT1udWxsfHxzPT09dm9pZCAwP3ZvaWQgMDpzLm9uTGlzdGVuZXJFcnJvcil8fFl0O2lmKCFyKXt0LnZhbHVlKG4pO3JldHVybn10cnl7dC52YWx1ZShuKX1jYXRjaChpKXtyKGkpfX1fZGVsaXZlclF1ZXVlKHQpe2NvbnN0IG49dC5jdXJyZW50Ll9saXN0ZW5lcnM7Zm9yKDt0Lmk8dC5lbmQ7KXRoaXMuX2RlbGl2ZXIoblt0LmkrK10sdC52YWx1ZSk7dC5yZXNldCgpfWZpcmUodCl7dmFyIG4scyxyLGk7aWYoISgobj10aGlzLl9kZWxpdmVyeVF1ZXVlKT09PW51bGx8fG49PT12b2lkIDApJiZuLmN1cnJlbnQmJih0aGlzLl9kZWxpdmVyUXVldWUodGhpcy5fZGVsaXZlcnlRdWV1ZSksKHM9dGhpcy5fcGVyZk1vbik9PT1udWxsfHxzPT09dm9pZCAwfHxzLnN0b3AoKSksKHI9dGhpcy5fcGVyZk1vbik9PT1udWxsfHxyPT09dm9pZCAwfHxyLnN0YXJ0KHRoaXMuX3NpemUpLHRoaXMuX2xpc3RlbmVycylpZih0aGlzLl9saXN0ZW5lcnMgaW5zdGFuY2VvZiBwdCl0aGlzLl9kZWxpdmVyKHRoaXMuX2xpc3RlbmVycyx0KTtlbHNle2NvbnN0IGw9dGhpcy5fZGVsaXZlcnlRdWV1ZTtsLmVucXVldWUodGhpcyx0LHRoaXMuX2xpc3RlbmVycy5sZW5ndGgpLHRoaXMuX2RlbGl2ZXJRdWV1ZShsKX0oaT10aGlzLl9wZXJmTW9uKT09PW51bGx8fGk9PT12b2lkIDB8fGkuc3RvcCgpfWhhc0xpc3RlbmVycygpe3JldHVybiB0aGlzLl9zaXplPjB9fWNsYXNzIGVye2NvbnN0cnVjdG9yKCl7dGhpcy5pPS0xLHRoaXMuZW5kPTB9ZW5xdWV1ZSh0LG4scyl7dGhpcy5pPTAsdGhpcy5lbmQ9cyx0aGlzLmN1cnJlbnQ9dCx0aGlzLnZhbHVlPW59cmVzZXQoKXt0aGlzLmk9dGhpcy5lbmQsdGhpcy5jdXJyZW50PXZvaWQgMCx0aGlzLnZhbHVlPXZvaWQgMH19ZnVuY3Rpb24gdHIoZSl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIn1mdW5jdGlvbiBucihlKXtsZXQgdD1bXTtmb3IoO09iamVjdC5wcm90b3R5cGUhPT1lOyl0PXQuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUpKSxlPU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtyZXR1cm4gdH1mdW5jdGlvbiB2dChlKXtjb25zdCB0PVtdO2Zvcihjb25zdCBuIG9mIG5yKGUpKXR5cGVvZiBlW25dPT0iZnVuY3Rpb24iJiZ0LnB1c2gobik7cmV0dXJuIHR9ZnVuY3Rpb24gc3IoZSx0KXtjb25zdCBuPXI9PmZ1bmN0aW9uKCl7Y29uc3QgaT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCk7cmV0dXJuIHQocixpKX0scz17fTtmb3IoY29uc3QgciBvZiBlKXNbcl09bihyKTtyZXR1cm4gc31sZXQgcnI9dHlwZW9mIGRvY3VtZW50PCJ1IiYmZG9jdW1lbnQubG9jYXRpb24mJmRvY3VtZW50LmxvY2F0aW9uLmhhc2guaW5kZXhPZigicHNldWRvPXRydWUiKT49MDtmdW5jdGlvbiBpcihlLHQpe2xldCBuO3JldHVybiB0Lmxlbmd0aD09PTA/bj1lOm49ZS5yZXBsYWNlKC9ceyhcZCspXH0vZywocyxyKT0+e2NvbnN0IGk9clswXSxsPXRbaV07bGV0IG89cztyZXR1cm4gdHlwZW9mIGw9PSJzdHJpbmciP289bDoodHlwZW9mIGw9PSJudW1iZXIifHx0eXBlb2YgbD09ImJvb2xlYW4ifHxsPT09dm9pZCAwfHxsPT09bnVsbCkmJihvPVN0cmluZyhsKSksb30pLHJyJiYobj0i77y7IituLnJlcGxhY2UoL1thb3VlaV0vZywiJCYkJiIpKyLvvL0iKSxufWZ1bmN0aW9uIEgoZSx0LC4uLm4pe3JldHVybiBpcih0LG4pfWZ1bmN0aW9uIGMxKGUpe312YXIgTHQ7Y29uc3QgRWU9ImVuIjtsZXQgd3Q9ITEsTnQ9ITEsU3Q9ITEsdHQsQ3Q9RWUsS3Q9RWUsYXIsaWU7Y29uc3QgdmU9Z2xvYmFsVGhpcztsZXQgUTt0eXBlb2YgdmUudnNjb2RlPCJ1IiYmdHlwZW9mIHZlLnZzY29kZS5wcm9jZXNzPCJ1Ij9RPXZlLnZzY29kZS5wcm9jZXNzOnR5cGVvZiBwcm9jZXNzPCJ1IiYmKFE9cHJvY2Vzcyk7Y29uc3QgbHI9dHlwZW9mKChMdD1RPT1udWxsP3ZvaWQgMDpRLnZlcnNpb25zKT09PW51bGx8fEx0PT09dm9pZCAwP3ZvaWQgMDpMdC5lbGVjdHJvbik9PSJzdHJpbmciJiYoUT09bnVsbD92b2lkIDA6US50eXBlKT09PSJyZW5kZXJlciI7aWYodHlwZW9mIFE9PSJvYmplY3QiKXt3dD1RLnBsYXRmb3JtPT09IndpbjMyIixOdD1RLnBsYXRmb3JtPT09ImRhcndpbiIsU3Q9US5wbGF0Zm9ybT09PSJsaW51eCIsU3QmJlEuZW52LlNOQVAmJlEuZW52LlNOQVBfUkVWSVNJT04sUS5lbnYuQ0l8fFEuZW52LkJVSUxEX0FSVElGQUNUU1RBR0lOR0RJUkVDVE9SWSx0dD1FZSxDdD1FZTtjb25zdCBlPVEuZW52LlZTQ09ERV9OTFNfQ09ORklHO2lmKGUpdHJ5e2NvbnN0IHQ9SlNPTi5wYXJzZShlKSxuPXQuYXZhaWxhYmxlTGFuZ3VhZ2VzWyIqIl07dHQ9dC5sb2NhbGUsS3Q9dC5vc0xvY2FsZSxDdD1ufHxFZSxhcj10Ll90cmFuc2xhdGlvbnNDb25maWdGaWxlfWNhdGNoe319ZWxzZSB0eXBlb2YgbmF2aWdhdG9yPT0ib2JqZWN0IiYmIWxyJiYoaWU9bmF2aWdhdG9yLnVzZXJBZ2VudCx3dD1pZS5pbmRleE9mKCJXaW5kb3dzIik+PTAsTnQ9aWUuaW5kZXhPZigiTWFjaW50b3NoIik+PTAsKGllLmluZGV4T2YoIk1hY2ludG9zaCIpPj0wfHxpZS5pbmRleE9mKCJpUGFkIik+PTB8fGllLmluZGV4T2YoImlQaG9uZSIpPj0wKSYmbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzJiZuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHM+MCxTdD1pZS5pbmRleE9mKCJMaW51eCIpPj0wLChpZT09bnVsbD92b2lkIDA6aWUuaW5kZXhPZigiTW9iaSIpKT49MCxIKHtrZXk6ImVuc3VyZUxvYWRlclBsdWdpbklzTG9hZGVkIixjb21tZW50Olsie0xvY2tlZH0iXX0sIl8iKSx0dD1FZSxDdD10dCxLdD1uYXZpZ2F0b3IubGFuZ3VhZ2UpO2NvbnN0IFdlPXd0LG9yPU50LG9lPWllLHVyPXR5cGVvZiB2ZS5wb3N0TWVzc2FnZT09ImZ1bmN0aW9uIiYmIXZlLmltcG9ydFNjcmlwdHM7KCgpPT57aWYodXIpe2NvbnN0IGU9W107dmUuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsbj0+e2lmKG4uZGF0YSYmbi5kYXRhLnZzY29kZVNjaGVkdWxlQXN5bmNXb3JrKWZvcihsZXQgcz0wLHI9ZS5sZW5ndGg7czxyO3MrKyl7Y29uc3QgaT1lW3NdO2lmKGkuaWQ9PT1uLmRhdGEudnNjb2RlU2NoZWR1bGVBc3luY1dvcmspe2Uuc3BsaWNlKHMsMSksaS5jYWxsYmFjaygpO3JldHVybn19fSk7bGV0IHQ9MDtyZXR1cm4gbj0+e2NvbnN0IHM9Kyt0O2UucHVzaCh7aWQ6cyxjYWxsYmFjazpufSksdmUucG9zdE1lc3NhZ2Uoe3ZzY29kZVNjaGVkdWxlQXN5bmNXb3JrOnN9LCIqIil9fXJldHVybiBlPT5zZXRUaW1lb3V0KGUpfSkoKTtjb25zdCBjcj0hIShvZSYmb2UuaW5kZXhPZigiQ2hyb21lIik+PTApO29lJiZvZS5pbmRleE9mKCJGaXJlZm94Iik+PTAsIWNyJiZvZSYmb2UuaW5kZXhPZigiU2FmYXJpIik+PTAsb2UmJm9lLmluZGV4T2YoIkVkZy8iKT49MCxvZSYmb2UuaW5kZXhPZigiQW5kcm9pZCIpPj0wO2NsYXNzIGhye2NvbnN0cnVjdG9yKHQpe3RoaXMuZm49dCx0aGlzLmxhc3RDYWNoZT12b2lkIDAsdGhpcy5sYXN0QXJnS2V5PXZvaWQgMH1nZXQodCl7Y29uc3Qgbj1KU09OLnN0cmluZ2lmeSh0KTtyZXR1cm4gdGhpcy5sYXN0QXJnS2V5IT09biYmKHRoaXMubGFzdEFyZ0tleT1uLHRoaXMubGFzdENhY2hlPXRoaXMuZm4odCkpLHRoaXMubGFzdENhY2hlfX1jbGFzcyBlbntjb25zdHJ1Y3Rvcih0KXt0aGlzLmV4ZWN1dG9yPXQsdGhpcy5fZGlkUnVuPSExfWdldCB2YWx1ZSgpe2lmKCF0aGlzLl9kaWRSdW4pdHJ5e3RoaXMuX3ZhbHVlPXRoaXMuZXhlY3V0b3IoKX1jYXRjaCh0KXt0aGlzLl9lcnJvcj10fWZpbmFsbHl7dGhpcy5fZGlkUnVuPSEwfWlmKHRoaXMuX2Vycm9yKXRocm93IHRoaXMuX2Vycm9yO3JldHVybiB0aGlzLl92YWx1ZX1nZXQgcmF3VmFsdWUoKXtyZXR1cm4gdGhpcy5fdmFsdWV9fXZhciBNZTtmdW5jdGlvbiBmcihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bXFxce1x9XCpcK1w/XHxcXlwkXC5cW1xdXChcKV0vZywiXFwkJiIpfWZ1bmN0aW9uIGRyKGUpe3JldHVybiBlLnNwbGl0KC9cclxufFxyfFxuLyl9ZnVuY3Rpb24gbXIoZSl7Zm9yKGxldCB0PTAsbj1lLmxlbmd0aDt0PG47dCsrKXtjb25zdCBzPWUuY2hhckNvZGVBdCh0KTtpZihzIT09MzImJnMhPT05KXJldHVybiB0fXJldHVybi0xfWZ1bmN0aW9uIGdyKGUsdD1lLmxlbmd0aC0xKXtmb3IobGV0IG49dDtuPj0wO24tLSl7Y29uc3Qgcz1lLmNoYXJDb2RlQXQobik7aWYocyE9PTMyJiZzIT09OSlyZXR1cm4gbn1yZXR1cm4tMX1mdW5jdGlvbiB0bihlKXtyZXR1cm4gZT49NjUmJmU8PTkwfWZ1bmN0aW9uIEF0KGUpe3JldHVybiA1NTI5Njw9ZSYmZTw9NTYzMTl9ZnVuY3Rpb24gYnIoZSl7cmV0dXJuIDU2MzIwPD1lJiZlPD01NzM0M31mdW5jdGlvbiBfcihlLHQpe3JldHVybihlLTU1Mjk2PDwxMCkrKHQtNTYzMjApKzY1NTM2fWZ1bmN0aW9uIHhyKGUsdCxuKXtjb25zdCBzPWUuY2hhckNvZGVBdChuKTtpZihBdChzKSYmbisxPHQpe2NvbnN0IHI9ZS5jaGFyQ29kZUF0KG4rMSk7aWYoYnIocikpcmV0dXJuIF9yKHMscil9cmV0dXJuIHN9Y29uc3QgcHI9L15bXHRcblxyXHgyMC1ceDdFXSokLztmdW5jdGlvbiB2cihlKXtyZXR1cm4gcHIudGVzdChlKX1jbGFzcyBMZXtzdGF0aWMgZ2V0SW5zdGFuY2UodCl7cmV0dXJuIE1lLmNhY2hlLmdldChBcnJheS5mcm9tKHQpKX1zdGF0aWMgZ2V0TG9jYWxlcygpe3JldHVybiBNZS5fbG9jYWxlcy52YWx1ZX1jb25zdHJ1Y3Rvcih0KXt0aGlzLmNvbmZ1c2FibGVEaWN0aW9uYXJ5PXR9aXNBbWJpZ3VvdXModCl7cmV0dXJuIHRoaXMuY29uZnVzYWJsZURpY3Rpb25hcnkuaGFzKHQpfWdldFByaW1hcnlDb25mdXNhYmxlKHQpe3JldHVybiB0aGlzLmNvbmZ1c2FibGVEaWN0aW9uYXJ5LmdldCh0KX1nZXRDb25mdXNhYmxlQ29kZVBvaW50cygpe3JldHVybiBuZXcgU2V0KHRoaXMuY29uZnVzYWJsZURpY3Rpb25hcnkua2V5cygpKX19TWU9TGUsTGUuYW1iaWd1b3VzQ2hhcmFjdGVyRGF0YT1uZXcgZW4oKCk9PkpTT04ucGFyc2UoJ3siX2NvbW1vbiI6WzgyMzIsMzIsODIzMywzMiw1NzYwLDMyLDgxOTIsMzIsODE5MywzMiw4MTk0LDMyLDgxOTUsMzIsODE5NiwzMiw4MTk3LDMyLDgxOTgsMzIsODIwMCwzMiw4MjAxLDMyLDgyMDIsMzIsODI4NywzMiw4MTk5LDMyLDgyMzksMzIsMjA0Miw5NSw2NTEwMSw5NSw2NTEwMiw5NSw2NTEwMyw5NSw4MjA4LDQ1LDgyMDksNDUsODIxMCw0NSw2NTExMiw0NSwxNzQ4LDQ1LDgyNTksNDUsNzI3LDQ1LDg3MjIsNDUsMTAxMzQsNDUsMTE0NTAsNDUsMTU0OSw0NCwxNjQzLDQ0LDgyMTgsNDQsMTg0LDQ0LDQyMjMzLDQ0LDg5NCw1OSwyMzA3LDU4LDI2OTEsNTgsMTQxNyw1OCwxNzk1LDU4LDE3OTYsNTgsNTg2OCw1OCw2NTA3Miw1OCw2MTQ3LDU4LDYxNTMsNTgsODI4Miw1OCwxNDc1LDU4LDc2MCw1OCw0Mjg4OSw1OCw4NzU4LDU4LDcyMCw1OCw0MjIzNyw1OCw0NTEsMzMsMTE2MDEsMzMsNjYwLDYzLDU3Nyw2MywyNDI5LDYzLDUwMzgsNjMsNDI3MzEsNjMsMTE5MTQ5LDQ2LDgyMjgsNDYsMTc5Myw0NiwxNzk0LDQ2LDQyNTEwLDQ2LDY4MTc2LDQ2LDE2MzIsNDYsMTc3Niw0Niw0MjIzMiw0NiwxMzczLDk2LDY1Mjg3LDk2LDgyMTksOTYsODI0Miw5NiwxMzcwLDk2LDE1MjMsOTYsODE3NSw5Niw2NTM0NCw5Niw5MDAsOTYsODE4OSw5Niw4MTI1LDk2LDgxMjcsOTYsODE5MCw5Niw2OTcsOTYsODg0LDk2LDcxMiw5Niw3MTQsOTYsNzE1LDk2LDc1Niw5Niw2OTksOTYsNzAxLDk2LDcwMCw5Niw3MDIsOTYsNDI4OTIsOTYsMTQ5Nyw5NiwyMDM2LDk2LDIwMzcsOTYsNTE5NCw5Niw1ODM2LDk2LDk0MDMzLDk2LDk0MDM0LDk2LDY1MzM5LDkxLDEwMDg4LDQwLDEwMDk4LDQwLDEyMzA4LDQwLDY0ODMwLDQwLDY1MzQxLDkzLDEwMDg5LDQxLDEwMDk5LDQxLDEyMzA5LDQxLDY0ODMxLDQxLDEwMTAwLDEyMywxMTkwNjAsMTIzLDEwMTAxLDEyNSw2NTM0Miw5NCw4MjcwLDQyLDE2NDUsNDIsODcyNyw0Miw2NjMzNSw0Miw1OTQxLDQ3LDgyNTcsNDcsODcyNSw0Nyw4MjYwLDQ3LDk1ODUsNDcsMTAxODcsNDcsMTA3NDQsNDcsMTE5MzU0LDQ3LDEyNzU1LDQ3LDEyMzM5LDQ3LDExNDYyLDQ3LDIwMDMxLDQ3LDEyMDM1LDQ3LDY1MzQwLDkyLDY1MTI4LDkyLDg3MjYsOTIsMTAxODksOTIsMTA3NDEsOTIsMTA3NDUsOTIsMTE5MzExLDkyLDExOTM1NSw5MiwxMjc1Niw5MiwyMDAyMiw5MiwxMjAzNCw5Miw0Mjg3MiwzOCw3MDgsOTQsNzEwLDk0LDU4NjksNDMsMTAxMzMsNDMsNjYyMDMsNDMsODI0OSw2MCwxMDA5NCw2MCw3MDYsNjAsMTE5MzUwLDYwLDUxNzYsNjAsNTgxMCw2MCw1MTIwLDYxLDExODQwLDYxLDEyNDQ4LDYxLDQyMjM5LDYxLDgyNTAsNjIsMTAwOTUsNjIsNzA3LDYyLDExOTM1MSw2Miw1MTcxLDYyLDk0MDE1LDYyLDgyNzUsMTI2LDczMiwxMjYsODEyOCwxMjYsODc2NCwxMjYsNjUzNzIsMTI0LDY1MjkzLDQ1LDEyMDc4NCw1MCwxMjA3OTQsNTAsMTIwODA0LDUwLDEyMDgxNCw1MCwxMjA4MjQsNTAsMTMwMDM0LDUwLDQyODQyLDUwLDQyMyw1MCwxMDAwLDUwLDQyNTY0LDUwLDUzMTEsNTAsNDI3MzUsNTAsMTE5MzAyLDUxLDEyMDc4NSw1MSwxMjA3OTUsNTEsMTIwODA1LDUxLDEyMDgxNSw1MSwxMjA4MjUsNTEsMTMwMDM1LDUxLDQyOTIzLDUxLDU0MCw1MSw0MzksNTEsNDI4NTgsNTEsMTE0NjgsNTEsMTI0OCw1MSw5NDAxMSw1MSw3MTg4Miw1MSwxMjA3ODYsNTIsMTIwNzk2LDUyLDEyMDgwNiw1MiwxMjA4MTYsNTIsMTIwODI2LDUyLDEzMDAzNiw1Miw1MDcwLDUyLDcxODU1LDUyLDEyMDc4Nyw1MywxMjA3OTcsNTMsMTIwODA3LDUzLDEyMDgxNyw1MywxMjA4MjcsNTMsMTMwMDM3LDUzLDQ0NCw1Myw3MTg2Nyw1MywxMjA3ODgsNTQsMTIwNzk4LDU0LDEyMDgwOCw1NCwxMjA4MTgsNTQsMTIwODI4LDU0LDEzMDAzOCw1NCwxMTQ3NCw1NCw1MTAyLDU0LDcxODkzLDU0LDExOTMxNCw1NSwxMjA3ODksNTUsMTIwNzk5LDU1LDEyMDgwOSw1NSwxMjA4MTksNTUsMTIwODI5LDU1LDEzMDAzOSw1NSw2Njc3MCw1NSw3MTg3OCw1NSwyODE5LDU2LDI1MzgsNTYsMjY2Niw1NiwxMjUxMzEsNTYsMTIwNzkwLDU2LDEyMDgwMCw1NiwxMjA4MTAsNTYsMTIwODIwLDU2LDEyMDgzMCw1NiwxMzAwNDAsNTYsNTQ3LDU2LDU0Niw1Niw2NjMzMCw1NiwyNjYzLDU3LDI5MjAsNTcsMjU0MSw1NywzNDM3LDU3LDEyMDc5MSw1NywxMjA4MDEsNTcsMTIwODExLDU3LDEyMDgyMSw1NywxMjA4MzEsNTcsMTMwMDQxLDU3LDQyODYyLDU3LDExNDY2LDU3LDcxODg0LDU3LDcxODUyLDU3LDcxODk0LDU3LDkwODIsOTcsNjUzNDUsOTcsMTE5ODM0LDk3LDExOTg4Niw5NywxMTk5MzgsOTcsMTE5OTkwLDk3LDEyMDA0Miw5NywxMjAwOTQsOTcsMTIwMTQ2LDk3LDEyMDE5OCw5NywxMjAyNTAsOTcsMTIwMzAyLDk3LDEyMDM1NCw5NywxMjA0MDYsOTcsMTIwNDU4LDk3LDU5Myw5Nyw5NDUsOTcsMTIwNTE0LDk3LDEyMDU3Miw5NywxMjA2MzAsOTcsMTIwNjg4LDk3LDEyMDc0Niw5Nyw2NTMxMyw2NSwxMTk4MDgsNjUsMTE5ODYwLDY1LDExOTkxMiw2NSwxMTk5NjQsNjUsMTIwMDE2LDY1LDEyMDA2OCw2NSwxMjAxMjAsNjUsMTIwMTcyLDY1LDEyMDIyNCw2NSwxMjAyNzYsNjUsMTIwMzI4LDY1LDEyMDM4MCw2NSwxMjA0MzIsNjUsOTEzLDY1LDEyMDQ4OCw2NSwxMjA1NDYsNjUsMTIwNjA0LDY1LDEyMDY2Miw2NSwxMjA3MjAsNjUsNTAzNCw2NSw1NTczLDY1LDQyMjIyLDY1LDk0MDE2LDY1LDY2MjA4LDY1LDExOTgzNSw5OCwxMTk4ODcsOTgsMTE5OTM5LDk4LDExOTk5MSw5OCwxMjAwNDMsOTgsMTIwMDk1LDk4LDEyMDE0Nyw5OCwxMjAxOTksOTgsMTIwMjUxLDk4LDEyMDMwMyw5OCwxMjAzNTUsOTgsMTIwNDA3LDk4LDEyMDQ1OSw5OCwzODgsOTgsNTA3MSw5OCw1MjM0LDk4LDU1NTEsOTgsNjUzMTQsNjYsODQ5Miw2NiwxMTk4MDksNjYsMTE5ODYxLDY2LDExOTkxMyw2NiwxMjAwMTcsNjYsMTIwMDY5LDY2LDEyMDEyMSw2NiwxMjAxNzMsNjYsMTIwMjI1LDY2LDEyMDI3Nyw2NiwxMjAzMjksNjYsMTIwMzgxLDY2LDEyMDQzMyw2Niw0MjkzMiw2Niw5MTQsNjYsMTIwNDg5LDY2LDEyMDU0Nyw2NiwxMjA2MDUsNjYsMTIwNjYzLDY2LDEyMDcyMSw2Niw1MTA4LDY2LDU2MjMsNjYsNDIxOTIsNjYsNjYxNzgsNjYsNjYyMDksNjYsNjYzMDUsNjYsNjUzNDcsOTksODU3Myw5OSwxMTk4MzYsOTksMTE5ODg4LDk5LDExOTk0MCw5OSwxMTk5OTIsOTksMTIwMDQ0LDk5LDEyMDA5Niw5OSwxMjAxNDgsOTksMTIwMjAwLDk5LDEyMDI1Miw5OSwxMjAzMDQsOTksMTIwMzU2LDk5LDEyMDQwOCw5OSwxMjA0NjAsOTksNzQyOCw5OSwxMDEwLDk5LDExNDI5LDk5LDQzOTUxLDk5LDY2NjIxLDk5LDEyODg0NCw2Nyw3MTkyMiw2Nyw3MTkxMyw2Nyw2NTMxNSw2Nyw4NTU3LDY3LDg0NTAsNjcsODQ5Myw2NywxMTk4MTAsNjcsMTE5ODYyLDY3LDExOTkxNCw2NywxMTk5NjYsNjcsMTIwMDE4LDY3LDEyMDE3NCw2NywxMjAyMjYsNjcsMTIwMjc4LDY3LDEyMDMzMCw2NywxMjAzODIsNjcsMTIwNDM0LDY3LDEwMTcsNjcsMTE0MjgsNjcsNTA4Nyw2Nyw0MjIwMiw2Nyw2NjIxMCw2Nyw2NjMwNiw2Nyw2NjU4MSw2Nyw2Njg0NCw2Nyw4NTc0LDEwMCw4NTE4LDEwMCwxMTk4MzcsMTAwLDExOTg4OSwxMDAsMTE5OTQxLDEwMCwxMTk5OTMsMTAwLDEyMDA0NSwxMDAsMTIwMDk3LDEwMCwxMjAxNDksMTAwLDEyMDIwMSwxMDAsMTIwMjUzLDEwMCwxMjAzMDUsMTAwLDEyMDM1NywxMDAsMTIwNDA5LDEwMCwxMjA0NjEsMTAwLDEyODEsMTAwLDUwOTUsMTAwLDUyMzEsMTAwLDQyMTk0LDEwMCw4NTU4LDY4LDg1MTcsNjgsMTE5ODExLDY4LDExOTg2Myw2OCwxMTk5MTUsNjgsMTE5OTY3LDY4LDEyMDAxOSw2OCwxMjAwNzEsNjgsMTIwMTIzLDY4LDEyMDE3NSw2OCwxMjAyMjcsNjgsMTIwMjc5LDY4LDEyMDMzMSw2OCwxMjAzODMsNjgsMTIwNDM1LDY4LDUwMjQsNjgsNTU5OCw2OCw1NjEwLDY4LDQyMTk1LDY4LDg0OTQsMTAxLDY1MzQ5LDEwMSw4NDk1LDEwMSw4NTE5LDEwMSwxMTk4MzgsMTAxLDExOTg5MCwxMDEsMTE5OTQyLDEwMSwxMjAwNDYsMTAxLDEyMDA5OCwxMDEsMTIwMTUwLDEwMSwxMjAyMDIsMTAxLDEyMDI1NCwxMDEsMTIwMzA2LDEwMSwxMjAzNTgsMTAxLDEyMDQxMCwxMDEsMTIwNDYyLDEwMSw0MzgyNiwxMDEsMTIxMywxMDEsODk1OSw2OSw2NTMxNyw2OSw4NDk2LDY5LDExOTgxMiw2OSwxMTk4NjQsNjksMTE5OTE2LDY5LDEyMDAyMCw2OSwxMjAwNzIsNjksMTIwMTI0LDY5LDEyMDE3Niw2OSwxMjAyMjgsNjksMTIwMjgwLDY5LDEyMDMzMiw2OSwxMjAzODQsNjksMTIwNDM2LDY5LDkxNyw2OSwxMjA0OTIsNjksMTIwNTUwLDY5LDEyMDYwOCw2OSwxMjA2NjYsNjksMTIwNzI0LDY5LDExNTc3LDY5LDUwMzYsNjksNDIyMjQsNjksNzE4NDYsNjksNzE4NTQsNjksNjYxODIsNjksMTE5ODM5LDEwMiwxMTk4OTEsMTAyLDExOTk0MywxMDIsMTE5OTk1LDEwMiwxMjAwNDcsMTAyLDEyMDA5OSwxMDIsMTIwMTUxLDEwMiwxMjAyMDMsMTAyLDEyMDI1NSwxMDIsMTIwMzA3LDEwMiwxMjAzNTksMTAyLDEyMDQxMSwxMDIsMTIwNDYzLDEwMiw0MzgyOSwxMDIsNDI5MDUsMTAyLDM4MywxMDIsNzgzNywxMDIsMTQxMiwxMDIsMTE5MzE1LDcwLDg0OTcsNzAsMTE5ODEzLDcwLDExOTg2NSw3MCwxMTk5MTcsNzAsMTIwMDIxLDcwLDEyMDA3Myw3MCwxMjAxMjUsNzAsMTIwMTc3LDcwLDEyMDIyOSw3MCwxMjAyODEsNzAsMTIwMzMzLDcwLDEyMDM4NSw3MCwxMjA0MzcsNzAsNDI5MDQsNzAsOTg4LDcwLDEyMDc3OCw3MCw1NTU2LDcwLDQyMjA1LDcwLDcxODc0LDcwLDcxODQyLDcwLDY2MTgzLDcwLDY2MjEzLDcwLDY2ODUzLDcwLDY1MzUxLDEwMyw4NDU4LDEwMywxMTk4NDAsMTAzLDExOTg5MiwxMDMsMTE5OTQ0LDEwMywxMjAwNDgsMTAzLDEyMDEwMCwxMDMsMTIwMTUyLDEwMywxMjAyMDQsMTAzLDEyMDI1NiwxMDMsMTIwMzA4LDEwMywxMjAzNjAsMTAzLDEyMDQxMiwxMDMsMTIwNDY0LDEwMyw2MDksMTAzLDc1NTUsMTAzLDM5NywxMDMsMTQwOSwxMDMsMTE5ODE0LDcxLDExOTg2Niw3MSwxMTk5MTgsNzEsMTE5OTcwLDcxLDEyMDAyMiw3MSwxMjAwNzQsNzEsMTIwMTI2LDcxLDEyMDE3OCw3MSwxMjAyMzAsNzEsMTIwMjgyLDcxLDEyMDMzNCw3MSwxMjAzODYsNzEsMTIwNDM4LDcxLDEyOTIsNzEsNTA1Niw3MSw1MTA3LDcxLDQyMTk4LDcxLDY1MzUyLDEwNCw4NDYyLDEwNCwxMTk4NDEsMTA0LDExOTk0NSwxMDQsMTE5OTk3LDEwNCwxMjAwNDksMTA0LDEyMDEwMSwxMDQsMTIwMTUzLDEwNCwxMjAyMDUsMTA0LDEyMDI1NywxMDQsMTIwMzA5LDEwNCwxMjAzNjEsMTA0LDEyMDQxMywxMDQsMTIwNDY1LDEwNCwxMjExLDEwNCwxMzkyLDEwNCw1MDU4LDEwNCw2NTMyMCw3Miw4NDU5LDcyLDg0NjAsNzIsODQ2MSw3MiwxMTk4MTUsNzIsMTE5ODY3LDcyLDExOTkxOSw3MiwxMjAwMjMsNzIsMTIwMTc5LDcyLDEyMDIzMSw3MiwxMjAyODMsNzIsMTIwMzM1LDcyLDEyMDM4Nyw3MiwxMjA0MzksNzIsOTE5LDcyLDEyMDQ5NCw3MiwxMjA1NTIsNzIsMTIwNjEwLDcyLDEyMDY2OCw3MiwxMjA3MjYsNzIsMTE0MDYsNzIsNTA1MSw3Miw1NTAwLDcyLDQyMjE1LDcyLDY2MjU1LDcyLDczMSwxMDUsOTA3NSwxMDUsNjUzNTMsMTA1LDg1NjAsMTA1LDg1MDUsMTA1LDg1MjAsMTA1LDExOTg0MiwxMDUsMTE5ODk0LDEwNSwxMTk5NDYsMTA1LDExOTk5OCwxMDUsMTIwMDUwLDEwNSwxMjAxMDIsMTA1LDEyMDE1NCwxMDUsMTIwMjA2LDEwNSwxMjAyNTgsMTA1LDEyMDMxMCwxMDUsMTIwMzYyLDEwNSwxMjA0MTQsMTA1LDEyMDQ2NiwxMDUsMTIwNDg0LDEwNSw2MTgsMTA1LDYxNywxMDUsOTUzLDEwNSw4MTI2LDEwNSw4OTAsMTA1LDEyMDUyMiwxMDUsMTIwNTgwLDEwNSwxMjA2MzgsMTA1LDEyMDY5NiwxMDUsMTIwNzU0LDEwNSwxMTEwLDEwNSw0MjU2NywxMDUsMTIzMSwxMDUsNDM4OTMsMTA1LDUwMjksMTA1LDcxODc1LDEwNSw2NTM1NCwxMDYsODUyMSwxMDYsMTE5ODQzLDEwNiwxMTk4OTUsMTA2LDExOTk0NywxMDYsMTE5OTk5LDEwNiwxMjAwNTEsMTA2LDEyMDEwMywxMDYsMTIwMTU1LDEwNiwxMjAyMDcsMTA2LDEyMDI1OSwxMDYsMTIwMzExLDEwNiwxMjAzNjMsMTA2LDEyMDQxNSwxMDYsMTIwNDY3LDEwNiwxMDExLDEwNiwxMTEyLDEwNiw2NTMyMiw3NCwxMTk4MTcsNzQsMTE5ODY5LDc0LDExOTkyMSw3NCwxMTk5NzMsNzQsMTIwMDI1LDc0LDEyMDA3Nyw3NCwxMjAxMjksNzQsMTIwMTgxLDc0LDEyMDIzMyw3NCwxMjAyODUsNzQsMTIwMzM3LDc0LDEyMDM4OSw3NCwxMjA0NDEsNzQsNDI5MzAsNzQsODk1LDc0LDEwMzIsNzQsNTAzNSw3NCw1MjYxLDc0LDQyMjAxLDc0LDExOTg0NCwxMDcsMTE5ODk2LDEwNywxMTk5NDgsMTA3LDEyMDAwMCwxMDcsMTIwMDUyLDEwNywxMjAxMDQsMTA3LDEyMDE1NiwxMDcsMTIwMjA4LDEwNywxMjAyNjAsMTA3LDEyMDMxMiwxMDcsMTIwMzY0LDEwNywxMjA0MTYsMTA3LDEyMDQ2OCwxMDcsODQ5MCw3NSw2NTMyMyw3NSwxMTk4MTgsNzUsMTE5ODcwLDc1LDExOTkyMiw3NSwxMTk5NzQsNzUsMTIwMDI2LDc1LDEyMDA3OCw3NSwxMjAxMzAsNzUsMTIwMTgyLDc1LDEyMDIzNCw3NSwxMjAyODYsNzUsMTIwMzM4LDc1LDEyMDM5MCw3NSwxMjA0NDIsNzUsOTIyLDc1LDEyMDQ5Nyw3NSwxMjA1NTUsNzUsMTIwNjEzLDc1LDEyMDY3MSw3NSwxMjA3MjksNzUsMTE0MTIsNzUsNTA5NCw3NSw1ODQ1LDc1LDQyMTk5LDc1LDY2ODQwLDc1LDE0NzIsMTA4LDg3MzksNzMsOTIxMyw3Myw2NTUxMiw3MywxNjMzLDEwOCwxNzc3LDczLDY2MzM2LDEwOCwxMjUxMjcsMTA4LDEyMDc4Myw3MywxMjA3OTMsNzMsMTIwODAzLDczLDEyMDgxMyw3MywxMjA4MjMsNzMsMTMwMDMzLDczLDY1MzIxLDczLDg1NDQsNzMsODQ2NCw3Myw4NDY1LDczLDExOTgxNiw3MywxMTk4NjgsNzMsMTE5OTIwLDczLDEyMDAyNCw3MywxMjAxMjgsNzMsMTIwMTgwLDczLDEyMDIzMiw3MywxMjAyODQsNzMsMTIwMzM2LDczLDEyMDM4OCw3MywxMjA0NDAsNzMsNjUzNTYsMTA4LDg1NzIsNzMsODQ2NywxMDgsMTE5ODQ1LDEwOCwxMTk4OTcsMTA4LDExOTk0OSwxMDgsMTIwMDAxLDEwOCwxMjAwNTMsMTA4LDEyMDEwNSw3MywxMjAxNTcsNzMsMTIwMjA5LDczLDEyMDI2MSw3MywxMjAzMTMsNzMsMTIwMzY1LDczLDEyMDQxNyw3MywxMjA0NjksNzMsNDQ4LDczLDEyMDQ5Niw3MywxMjA1NTQsNzMsMTIwNjEyLDczLDEyMDY3MCw3MywxMjA3MjgsNzMsMTE0MTAsNzMsMTAzMCw3MywxMjE2LDczLDE0OTMsMTA4LDE1MDMsMTA4LDE1NzUsMTA4LDEyNjQ2NCwxMDgsMTI2NTkyLDEwOCw2NTE2NiwxMDgsNjUxNjUsMTA4LDE5OTQsMTA4LDExNTk5LDczLDU4MjUsNzMsNDIyMjYsNzMsOTM5OTIsNzMsNjYxODYsMTI0LDY2MzEzLDEyNCwxMTkzMzgsNzYsODU1Niw3Niw4NDY2LDc2LDExOTgxOSw3NiwxMTk4NzEsNzYsMTE5OTIzLDc2LDEyMDAyNyw3NiwxMjAwNzksNzYsMTIwMTMxLDc2LDEyMDE4Myw3NiwxMjAyMzUsNzYsMTIwMjg3LDc2LDEyMDMzOSw3NiwxMjAzOTEsNzYsMTIwNDQzLDc2LDExNDcyLDc2LDUwODYsNzYsNTI5MCw3Niw0MjIwOSw3Niw5Mzk3NCw3Niw3MTg0Myw3Niw3MTg1OCw3Niw2NjU4Nyw3Niw2Njg1NCw3Niw2NTMyNSw3Nyw4NTU5LDc3LDg0OTksNzcsMTE5ODIwLDc3LDExOTg3Miw3NywxMTk5MjQsNzcsMTIwMDI4LDc3LDEyMDA4MCw3NywxMjAxMzIsNzcsMTIwMTg0LDc3LDEyMDIzNiw3NywxMjAyODgsNzcsMTIwMzQwLDc3LDEyMDM5Miw3NywxMjA0NDQsNzcsOTI0LDc3LDEyMDQ5OSw3NywxMjA1NTcsNzcsMTIwNjE1LDc3LDEyMDY3Myw3NywxMjA3MzEsNzcsMTAxOCw3NywxMTQxNiw3Nyw1MDQ3LDc3LDU2MTYsNzcsNTg0Niw3Nyw0MjIwNyw3Nyw2NjIyNCw3Nyw2NjMyMSw3NywxMTk4NDcsMTEwLDExOTg5OSwxMTAsMTE5OTUxLDExMCwxMjAwMDMsMTEwLDEyMDA1NSwxMTAsMTIwMTA3LDExMCwxMjAxNTksMTEwLDEyMDIxMSwxMTAsMTIwMjYzLDExMCwxMjAzMTUsMTEwLDEyMDM2NywxMTAsMTIwNDE5LDExMCwxMjA0NzEsMTEwLDE0MDAsMTEwLDE0MDQsMTEwLDY1MzI2LDc4LDg0NjksNzgsMTE5ODIxLDc4LDExOTg3Myw3OCwxMTk5MjUsNzgsMTE5OTc3LDc4LDEyMDAyOSw3OCwxMjAwODEsNzgsMTIwMTg1LDc4LDEyMDIzNyw3OCwxMjAyODksNzgsMTIwMzQxLDc4LDEyMDM5Myw3OCwxMjA0NDUsNzgsOTI1LDc4LDEyMDUwMCw3OCwxMjA1NTgsNzgsMTIwNjE2LDc4LDEyMDY3NCw3OCwxMjA3MzIsNzgsMTE0MTgsNzgsNDIyMDgsNzgsNjY4MzUsNzgsMzA3NCwxMTEsMzIwMiwxMTEsMzMzMCwxMTEsMzQ1OCwxMTEsMjQwNiwxMTEsMjY2MiwxMTEsMjc5MCwxMTEsMzA0NiwxMTEsMzE3NCwxMTEsMzMwMiwxMTEsMzQzMCwxMTEsMzY2NCwxMTEsMzc5MiwxMTEsNDE2MCwxMTEsMTYzNywxMTEsMTc4MSwxMTEsNjUzNTksMTExLDg1MDAsMTExLDExOTg0OCwxMTEsMTE5OTAwLDExMSwxMTk5NTIsMTExLDEyMDA1NiwxMTEsMTIwMTA4LDExMSwxMjAxNjAsMTExLDEyMDIxMiwxMTEsMTIwMjY0LDExMSwxMjAzMTYsMTExLDEyMDM2OCwxMTEsMTIwNDIwLDExMSwxMjA0NzIsMTExLDc0MzksMTExLDc0NDEsMTExLDQzODM3LDExMSw5NTksMTExLDEyMDUyOCwxMTEsMTIwNTg2LDExMSwxMjA2NDQsMTExLDEyMDcwMiwxMTEsMTIwNzYwLDExMSw5NjMsMTExLDEyMDUzMiwxMTEsMTIwNTkwLDExMSwxMjA2NDgsMTExLDEyMDcwNiwxMTEsMTIwNzY0LDExMSwxMTQyMywxMTEsNDM1MSwxMTEsMTQxMywxMTEsMTUwNSwxMTEsMTYwNywxMTEsMTI2NTAwLDExMSwxMjY1NjQsMTExLDEyNjU5NiwxMTEsNjUyNTksMTExLDY1MjYwLDExMSw2NTI1OCwxMTEsNjUyNTcsMTExLDE3MjYsMTExLDY0NDI4LDExMSw2NDQyOSwxMTEsNjQ0MjcsMTExLDY0NDI2LDExMSwxNzI5LDExMSw2NDQyNCwxMTEsNjQ0MjUsMTExLDY0NDIzLDExMSw2NDQyMiwxMTEsMTc0OSwxMTEsMzM2MCwxMTEsNDEyNSwxMTEsNjY3OTQsMTExLDcxODgwLDExMSw3MTg5NSwxMTEsNjY2MDQsMTExLDE5ODQsNzksMjUzNCw3OSwyOTE4LDc5LDEyMjk1LDc5LDcwODY0LDc5LDcxOTA0LDc5LDEyMDc4Miw3OSwxMjA3OTIsNzksMTIwODAyLDc5LDEyMDgxMiw3OSwxMjA4MjIsNzksMTMwMDMyLDc5LDY1MzI3LDc5LDExOTgyMiw3OSwxMTk4NzQsNzksMTE5OTI2LDc5LDExOTk3OCw3OSwxMjAwMzAsNzksMTIwMDgyLDc5LDEyMDEzNCw3OSwxMjAxODYsNzksMTIwMjM4LDc5LDEyMDI5MCw3OSwxMjAzNDIsNzksMTIwMzk0LDc5LDEyMDQ0Niw3OSw5MjcsNzksMTIwNTAyLDc5LDEyMDU2MCw3OSwxMjA2MTgsNzksMTIwNjc2LDc5LDEyMDczNCw3OSwxMTQyMiw3OSwxMzY1LDc5LDExNjA0LDc5LDQ4MTYsNzksMjg0OCw3OSw2Njc1NCw3OSw0MjIyNyw3OSw3MTg2MSw3OSw2NjE5NCw3OSw2NjIxOSw3OSw2NjU2NCw3OSw2NjgzOCw3OSw5MDc2LDExMiw2NTM2MCwxMTIsMTE5ODQ5LDExMiwxMTk5MDEsMTEyLDExOTk1MywxMTIsMTIwMDA1LDExMiwxMjAwNTcsMTEyLDEyMDEwOSwxMTIsMTIwMTYxLDExMiwxMjAyMTMsMTEyLDEyMDI2NSwxMTIsMTIwMzE3LDExMiwxMjAzNjksMTEyLDEyMDQyMSwxMTIsMTIwNDczLDExMiw5NjEsMTEyLDEyMDUzMCwxMTIsMTIwNTQ0LDExMiwxMjA1ODgsMTEyLDEyMDYwMiwxMTIsMTIwNjQ2LDExMiwxMjA2NjAsMTEyLDEyMDcwNCwxMTIsMTIwNzE4LDExMiwxMjA3NjIsMTEyLDEyMDc3NiwxMTIsMTE0MjcsMTEyLDY1MzI4LDgwLDg0NzMsODAsMTE5ODIzLDgwLDExOTg3NSw4MCwxMTk5MjcsODAsMTE5OTc5LDgwLDEyMDAzMSw4MCwxMjAwODMsODAsMTIwMTg3LDgwLDEyMDIzOSw4MCwxMjAyOTEsODAsMTIwMzQzLDgwLDEyMDM5NSw4MCwxMjA0NDcsODAsOTI5LDgwLDEyMDUwNCw4MCwxMjA1NjIsODAsMTIwNjIwLDgwLDEyMDY3OCw4MCwxMjA3MzYsODAsMTE0MjYsODAsNTA5MCw4MCw1MjI5LDgwLDQyMTkzLDgwLDY2MTk3LDgwLDExOTg1MCwxMTMsMTE5OTAyLDExMywxMTk5NTQsMTEzLDEyMDAwNiwxMTMsMTIwMDU4LDExMywxMjAxMTAsMTEzLDEyMDE2MiwxMTMsMTIwMjE0LDExMywxMjAyNjYsMTEzLDEyMDMxOCwxMTMsMTIwMzcwLDExMywxMjA0MjIsMTEzLDEyMDQ3NCwxMTMsMTMwNywxMTMsMTM3OSwxMTMsMTM4MiwxMTMsODQ3NCw4MSwxMTk4MjQsODEsMTE5ODc2LDgxLDExOTkyOCw4MSwxMTk5ODAsODEsMTIwMDMyLDgxLDEyMDA4NCw4MSwxMjAxODgsODEsMTIwMjQwLDgxLDEyMDI5Miw4MSwxMjAzNDQsODEsMTIwMzk2LDgxLDEyMDQ0OCw4MSwxMTYwNSw4MSwxMTk4NTEsMTE0LDExOTkwMywxMTQsMTE5OTU1LDExNCwxMjAwMDcsMTE0LDEyMDA1OSwxMTQsMTIwMTExLDExNCwxMjAxNjMsMTE0LDEyMDIxNSwxMTQsMTIwMjY3LDExNCwxMjAzMTksMTE0LDEyMDM3MSwxMTQsMTIwNDIzLDExNCwxMjA0NzUsMTE0LDQzODQ3LDExNCw0Mzg0OCwxMTQsNzQ2MiwxMTQsMTEzOTcsMTE0LDQzOTA1LDExNCwxMTkzMTgsODIsODQ3NSw4Miw4NDc2LDgyLDg0NzcsODIsMTE5ODI1LDgyLDExOTg3Nyw4MiwxMTk5MjksODIsMTIwMDMzLDgyLDEyMDE4OSw4MiwxMjAyNDEsODIsMTIwMjkzLDgyLDEyMDM0NSw4MiwxMjAzOTcsODIsMTIwNDQ5LDgyLDQyMiw4Miw1MDI1LDgyLDUwNzQsODIsNjY3NDAsODIsNTUxMSw4Miw0MjIxMSw4Miw5NDAwNSw4Miw2NTM2MywxMTUsMTE5ODUyLDExNSwxMTk5MDQsMTE1LDExOTk1NiwxMTUsMTIwMDA4LDExNSwxMjAwNjAsMTE1LDEyMDExMiwxMTUsMTIwMTY0LDExNSwxMjAyMTYsMTE1LDEyMDI2OCwxMTUsMTIwMzIwLDExNSwxMjAzNzIsMTE1LDEyMDQyNCwxMTUsMTIwNDc2LDExNSw0MjgwMSwxMTUsNDQ1LDExNSwxMTA5LDExNSw0Mzk0NiwxMTUsNzE4NzMsMTE1LDY2NjMyLDExNSw2NTMzMSw4MywxMTk4MjYsODMsMTE5ODc4LDgzLDExOTkzMCw4MywxMTk5ODIsODMsMTIwMDM0LDgzLDEyMDA4Niw4MywxMjAxMzgsODMsMTIwMTkwLDgzLDEyMDI0Miw4MywxMjAyOTQsODMsMTIwMzQ2LDgzLDEyMDM5OCw4MywxMjA0NTAsODMsMTAyOSw4MywxMzU5LDgzLDUwNzcsODMsNTA4Miw4Myw0MjIxMCw4Myw5NDAxMCw4Myw2NjE5OCw4Myw2NjU5Miw4MywxMTk4NTMsMTE2LDExOTkwNSwxMTYsMTE5OTU3LDExNiwxMjAwMDksMTE2LDEyMDA2MSwxMTYsMTIwMTEzLDExNiwxMjAxNjUsMTE2LDEyMDIxNywxMTYsMTIwMjY5LDExNiwxMjAzMjEsMTE2LDEyMDM3MywxMTYsMTIwNDI1LDExNiwxMjA0NzcsMTE2LDg4NjgsODQsMTAyMDEsODQsMTI4ODcyLDg0LDY1MzMyLDg0LDExOTgyNyw4NCwxMTk4NzksODQsMTE5OTMxLDg0LDExOTk4Myw4NCwxMjAwMzUsODQsMTIwMDg3LDg0LDEyMDEzOSw4NCwxMjAxOTEsODQsMTIwMjQzLDg0LDEyMDI5NSw4NCwxMjAzNDcsODQsMTIwMzk5LDg0LDEyMDQ1MSw4NCw5MzIsODQsMTIwNTA3LDg0LDEyMDU2NSw4NCwxMjA2MjMsODQsMTIwNjgxLDg0LDEyMDczOSw4NCwxMTQzMCw4NCw1MDI2LDg0LDQyMTk2LDg0LDkzOTYyLDg0LDcxODY4LDg0LDY2MTk5LDg0LDY2MjI1LDg0LDY2MzI1LDg0LDExOTg1NCwxMTcsMTE5OTA2LDExNywxMTk5NTgsMTE3LDEyMDAxMCwxMTcsMTIwMDYyLDExNywxMjAxMTQsMTE3LDEyMDE2NiwxMTcsMTIwMjE4LDExNywxMjAyNzAsMTE3LDEyMDMyMiwxMTcsMTIwMzc0LDExNywxMjA0MjYsMTE3LDEyMDQ3OCwxMTcsNDI5MTEsMTE3LDc0NTIsMTE3LDQzODU0LDExNyw0Mzg1OCwxMTcsNjUxLDExNyw5NjUsMTE3LDEyMDUzNCwxMTcsMTIwNTkyLDExNywxMjA2NTAsMTE3LDEyMDcwOCwxMTcsMTIwNzY2LDExNywxNDA1LDExNyw2NjgwNiwxMTcsNzE4OTYsMTE3LDg3NDYsODUsODg5OSw4NSwxMTk4MjgsODUsMTE5ODgwLDg1LDExOTkzMiw4NSwxMTk5ODQsODUsMTIwMDM2LDg1LDEyMDA4OCw4NSwxMjAxNDAsODUsMTIwMTkyLDg1LDEyMDI0NCw4NSwxMjAyOTYsODUsMTIwMzQ4LDg1LDEyMDQwMCw4NSwxMjA0NTIsODUsMTM1Nyw4NSw0NjA4LDg1LDY2NzY2LDg1LDUxOTYsODUsNDIyMjgsODUsOTQwMTgsODUsNzE4NjQsODUsODc0NCwxMTgsODg5NywxMTgsNjUzNjYsMTE4LDg1NjQsMTE4LDExOTg1NSwxMTgsMTE5OTA3LDExOCwxMTk5NTksMTE4LDEyMDAxMSwxMTgsMTIwMDYzLDExOCwxMjAxMTUsMTE4LDEyMDE2NywxMTgsMTIwMjE5LDExOCwxMjAyNzEsMTE4LDEyMDMyMywxMTgsMTIwMzc1LDExOCwxMjA0MjcsMTE4LDEyMDQ3OSwxMTgsNzQ1NiwxMTgsOTU3LDExOCwxMjA1MjYsMTE4LDEyMDU4NCwxMTgsMTIwNjQyLDExOCwxMjA3MDAsMTE4LDEyMDc1OCwxMTgsMTE0MSwxMTgsMTQ5NiwxMTgsNzE0MzAsMTE4LDQzOTQ1LDExOCw3MTg3MiwxMTgsMTE5MzA5LDg2LDE2MzksODYsMTc4Myw4Niw4NTQ4LDg2LDExOTgyOSw4NiwxMTk4ODEsODYsMTE5OTMzLDg2LDExOTk4NSw4NiwxMjAwMzcsODYsMTIwMDg5LDg2LDEyMDE0MSw4NiwxMjAxOTMsODYsMTIwMjQ1LDg2LDEyMDI5Nyw4NiwxMjAzNDksODYsMTIwNDAxLDg2LDEyMDQ1Myw4NiwxMTQwLDg2LDExNTc2LDg2LDUwODEsODYsNTE2Nyw4Niw0MjcxOSw4Niw0MjIxNCw4Niw5Mzk2MCw4Niw3MTg0MCw4Niw2Njg0NSw4Niw2MjMsMTE5LDExOTg1NiwxMTksMTE5OTA4LDExOSwxMTk5NjAsMTE5LDEyMDAxMiwxMTksMTIwMDY0LDExOSwxMjAxMTYsMTE5LDEyMDE2OCwxMTksMTIwMjIwLDExOSwxMjAyNzIsMTE5LDEyMDMyNCwxMTksMTIwMzc2LDExOSwxMjA0MjgsMTE5LDEyMDQ4MCwxMTksNzQ1NywxMTksMTEyMSwxMTksMTMwOSwxMTksMTM3NywxMTksNzE0MzQsMTE5LDcxNDM4LDExOSw3MTQzOSwxMTksNDM5MDcsMTE5LDcxOTE5LDg3LDcxOTEwLDg3LDExOTgzMCw4NywxMTk4ODIsODcsMTE5OTM0LDg3LDExOTk4Niw4NywxMjAwMzgsODcsMTIwMDkwLDg3LDEyMDE0Miw4NywxMjAxOTQsODcsMTIwMjQ2LDg3LDEyMDI5OCw4NywxMjAzNTAsODcsMTIwNDAyLDg3LDEyMDQ1NCw4NywxMzA4LDg3LDUwNDMsODcsNTA3Niw4Nyw0MjIxOCw4Nyw1NzQyLDEyMCwxMDUzOSwxMjAsMTA1NDAsMTIwLDEwNzk5LDEyMCw2NTM2OCwxMjAsODU2OSwxMjAsMTE5ODU3LDEyMCwxMTk5MDksMTIwLDExOTk2MSwxMjAsMTIwMDEzLDEyMCwxMjAwNjUsMTIwLDEyMDExNywxMjAsMTIwMTY5LDEyMCwxMjAyMjEsMTIwLDEyMDI3MywxMjAsMTIwMzI1LDEyMCwxMjAzNzcsMTIwLDEyMDQyOSwxMjAsMTIwNDgxLDEyMCw1NDQxLDEyMCw1NTAxLDEyMCw1NzQxLDg4LDk1ODcsODgsNjYzMzgsODgsNzE5MTYsODgsNjUzMzYsODgsODU1Myw4OCwxMTk4MzEsODgsMTE5ODgzLDg4LDExOTkzNSw4OCwxMTk5ODcsODgsMTIwMDM5LDg4LDEyMDA5MSw4OCwxMjAxNDMsODgsMTIwMTk1LDg4LDEyMDI0Nyw4OCwxMjAyOTksODgsMTIwMzUxLDg4LDEyMDQwMyw4OCwxMjA0NTUsODgsNDI5MzEsODgsOTM1LDg4LDEyMDUxMCw4OCwxMjA1NjgsODgsMTIwNjI2LDg4LDEyMDY4NCw4OCwxMjA3NDIsODgsMTE0MzYsODgsMTE2MTMsODgsNTgxNSw4OCw0MjIxOSw4OCw2NjE5Miw4OCw2NjIyOCw4OCw2NjMyNyw4OCw2Njg1NSw4OCw2MTEsMTIxLDc1NjQsMTIxLDY1MzY5LDEyMSwxMTk4NTgsMTIxLDExOTkxMCwxMjEsMTE5OTYyLDEyMSwxMjAwMTQsMTIxLDEyMDA2NiwxMjEsMTIwMTE4LDEyMSwxMjAxNzAsMTIxLDEyMDIyMiwxMjEsMTIwMjc0LDEyMSwxMjAzMjYsMTIxLDEyMDM3OCwxMjEsMTIwNDMwLDEyMSwxMjA0ODIsMTIxLDY1NSwxMjEsNzkzNSwxMjEsNDM4NjYsMTIxLDk0NywxMjEsODUwOSwxMjEsMTIwNTE2LDEyMSwxMjA1NzQsMTIxLDEyMDYzMiwxMjEsMTIwNjkwLDEyMSwxMjA3NDgsMTIxLDExOTksMTIxLDQzMjcsMTIxLDcxOTAwLDEyMSw2NTMzNyw4OSwxMTk4MzIsODksMTE5ODg0LDg5LDExOTkzNiw4OSwxMTk5ODgsODksMTIwMDQwLDg5LDEyMDA5Miw4OSwxMjAxNDQsODksMTIwMTk2LDg5LDEyMDI0OCw4OSwxMjAzMDAsODksMTIwMzUyLDg5LDEyMDQwNCw4OSwxMjA0NTYsODksOTMzLDg5LDk3OCw4OSwxMjA1MDgsODksMTIwNTY2LDg5LDEyMDYyNCw4OSwxMjA2ODIsODksMTIwNzQwLDg5LDExNDMyLDg5LDExOTgsODksNTAzMyw4OSw1MDUzLDg5LDQyMjIwLDg5LDk0MDE5LDg5LDcxODQ0LDg5LDY2MjI2LDg5LDExOTg1OSwxMjIsMTE5OTExLDEyMiwxMTk5NjMsMTIyLDEyMDAxNSwxMjIsMTIwMDY3LDEyMiwxMjAxMTksMTIyLDEyMDE3MSwxMjIsMTIwMjIzLDEyMiwxMjAyNzUsMTIyLDEyMDMyNywxMjIsMTIwMzc5LDEyMiwxMjA0MzEsMTIyLDEyMDQ4MywxMjIsNzQ1OCwxMjIsNDM5MjMsMTIyLDcxODc2LDEyMiw2NjI5Myw5MCw3MTkwOSw5MCw2NTMzOCw5MCw4NDg0LDkwLDg0ODgsOTAsMTE5ODMzLDkwLDExOTg4NSw5MCwxMTk5MzcsOTAsMTE5OTg5LDkwLDEyMDA0MSw5MCwxMjAxOTcsOTAsMTIwMjQ5LDkwLDEyMDMwMSw5MCwxMjAzNTMsOTAsMTIwNDA1LDkwLDEyMDQ1Nyw5MCw5MTgsOTAsMTIwNDkzLDkwLDEyMDU1MSw5MCwxMjA2MDksOTAsMTIwNjY3LDkwLDEyMDcyNSw5MCw1MDU5LDkwLDQyMjA0LDkwLDcxODQ5LDkwLDY1MjgyLDM0LDY1Mjg0LDM2LDY1Mjg1LDM3LDY1Mjg2LDM4LDY1MjkwLDQyLDY1MjkxLDQzLDY1Mjk0LDQ2LDY1Mjk1LDQ3LDY1Mjk2LDQ4LDY1Mjk3LDQ5LDY1Mjk4LDUwLDY1Mjk5LDUxLDY1MzAwLDUyLDY1MzAxLDUzLDY1MzAyLDU0LDY1MzAzLDU1LDY1MzA0LDU2LDY1MzA1LDU3LDY1MzA4LDYwLDY1MzA5LDYxLDY1MzEwLDYyLDY1MzEyLDY0LDY1MzE2LDY4LDY1MzE4LDcwLDY1MzE5LDcxLDY1MzI0LDc2LDY1MzI5LDgxLDY1MzMwLDgyLDY1MzMzLDg1LDY1MzM0LDg2LDY1MzM1LDg3LDY1MzQzLDk1LDY1MzQ2LDk4LDY1MzQ4LDEwMCw2NTM1MCwxMDIsNjUzNTUsMTA3LDY1MzU3LDEwOSw2NTM1OCwxMTAsNjUzNjEsMTEzLDY1MzYyLDExNCw2NTM2NCwxMTYsNjUzNjUsMTE3LDY1MzY3LDExOSw2NTM3MCwxMjIsNjUzNzEsMTIzLDY1MzczLDEyNSwxMTk4NDYsMTA5XSwiX2RlZmF1bHQiOlsxNjAsMzIsODIxMSw0NSw2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODIxNiw5Niw4MjE3LDk2LDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDIxNSwxMjAsMTA5MywxMjAsMTA2MSw4OCwxMDkxLDEyMSwxMDU5LDg5LDY1MjgzLDM1LDY1Mjg4LDQwLDY1Mjg5LDQxLDY1MjkyLDQ0LDY1MzA3LDU5LDY1MzExLDYzXSwiY3MiOls2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODIxNiw5Niw4MjE3LDk2LDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDEwOTMsMTIwLDEwNjEsODgsMTA5MSwxMjEsMTA1OSw4OSw2NTI4MywzNSw2NTI4OCw0MCw2NTI4OSw0MSw2NTI5Miw0NCw2NTMwNyw1OSw2NTMxMSw2M10sImRlIjpbNjUzNzQsMTI2LDY1MzA2LDU4LDY1MjgxLDMzLDgyMTYsOTYsODIxNyw5Niw4MjQ1LDk2LDE4MCw5NiwxMjQ5NCw0NywxMDQ3LDUxLDEwNzMsNTQsMTA3Miw5NywxMDQwLDY1LDEwNjgsOTgsMTA0Miw2NiwxMDg5LDk5LDEwNTcsNjcsMTA3NywxMDEsMTA0NSw2OSwxMDUzLDcyLDMwNSwxMDUsMTA1MCw3NSw5MjEsNzMsMTA1Miw3NywxMDg2LDExMSwxMDU0LDc5LDEwMDksMTEyLDEwODgsMTEyLDEwNTYsODAsMTA3NSwxMTQsMTA1OCw4NCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJlcyI6WzgyMTEsNDUsNjUzNzQsMTI2LDY1MzA2LDU4LDY1MjgxLDMzLDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJmciI6WzY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyNDUsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJpdCI6WzE2MCwzMiw4MjExLDQ1LDY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDIxNSwxMjAsMTA5MywxMjAsMTA2MSw4OCwxMDkxLDEyMSwxMDU5LDg5LDY1MjgzLDM1LDY1Mjg4LDQwLDY1Mjg5LDQxLDY1MjkyLDQ0LDY1MzA3LDU5LDY1MzExLDYzXSwiamEiOls4MjExLDQ1LDY1MzA2LDU4LDY1MjgxLDMzLDgyMTYsOTYsODIxNyw5Niw4MjQ1LDk2LDE4MCw5NiwxMDQ3LDUxLDEwNzMsNTQsMTA3Miw5NywxMDQwLDY1LDEwNjgsOTgsMTA0Miw2NiwxMDg5LDk5LDEwNTcsNjcsMTA3NywxMDEsMTA0NSw2OSwxMDUzLDcyLDMwNSwxMDUsMTA1MCw3NSw5MjEsNzMsMTA1Miw3NywxMDg2LDExMSwxMDU0LDc5LDEwMDksMTEyLDEwODgsMTEyLDEwNTYsODAsMTA3NSwxMTQsMTA1OCw4NCwyMTUsMTIwLDEwOTMsMTIwLDEwNjEsODgsMTA5MSwxMjEsMTA1OSw4OSw2NTI4MywzNSw2NTI5Miw0NCw2NTMwNyw1OV0sImtvIjpbODIxMSw0NSw2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJwbCI6WzY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyMTcsOTYsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJwdC1CUiI6WzY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyMTcsOTYsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJxcHMtcGxvYyI6WzE2MCwzMiw4MjExLDQ1LDY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyMTcsOTYsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJydSI6WzY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyMTcsOTYsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMzA1LDEwNSw5MjEsNzMsMTAwOSwxMTIsMjE1LDEyMCw2NTI4MywzNSw2NTI4OCw0MCw2NTI4OSw0MSw2NTI5Miw0NCw2NTMwNyw1OSw2NTMxMSw2M10sInRyIjpbMTYwLDMyLDgyMTEsNDUsNjUzNzQsMTI2LDY1MzA2LDU4LDY1MjgxLDMzLDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMTA1MCw3NSw5MjEsNzMsMTA1Miw3NywxMDg2LDExMSwxMDU0LDc5LDEwMDksMTEyLDEwODgsMTEyLDEwNTYsODAsMTA3NSwxMTQsMTA1OCw4NCwyMTUsMTIwLDEwOTMsMTIwLDEwNjEsODgsMTA5MSwxMjEsMTA1OSw4OSw2NTI4MywzNSw2NTI4OCw0MCw2NTI4OSw0MSw2NTI5Miw0NCw2NTMwNyw1OSw2NTMxMSw2M10sInpoLWhhbnMiOls2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODgsNDAsNjUyODksNDFdLCJ6aC1oYW50IjpbODIxMSw0NSw2NTM3NCwxMjYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDIxNSwxMjAsMTA5MywxMjAsMTA2MSw4OCwxMDkxLDEyMSwxMDU5LDg5LDY1MjgzLDM1LDY1MzA3LDU5XX0nKSksTGUuY2FjaGU9bmV3IGhyKGU9PntmdW5jdGlvbiB0KGMpe2NvbnN0IGg9bmV3IE1hcDtmb3IobGV0IGY9MDtmPGMubGVuZ3RoO2YrPTIpaC5zZXQoY1tmXSxjW2YrMV0pO3JldHVybiBofWZ1bmN0aW9uIG4oYyxoKXtjb25zdCBmPW5ldyBNYXAoYyk7Zm9yKGNvbnN0W2QsbV1vZiBoKWYuc2V0KGQsbSk7cmV0dXJuIGZ9ZnVuY3Rpb24gcyhjLGgpe2lmKCFjKXJldHVybiBoO2NvbnN0IGY9bmV3IE1hcDtmb3IoY29uc3RbZCxtXW9mIGMpaC5oYXMoZCkmJmYuc2V0KGQsbSk7cmV0dXJuIGZ9Y29uc3Qgcj1NZS5hbWJpZ3VvdXNDaGFyYWN0ZXJEYXRhLnZhbHVlO2xldCBpPWUuZmlsdGVyKGM9PiFjLnN0YXJ0c1dpdGgoIl8iKSYmYyBpbiByKTtpLmxlbmd0aD09PTAmJihpPVsiX2RlZmF1bHQiXSk7bGV0IGw7Zm9yKGNvbnN0IGMgb2YgaSl7Y29uc3QgaD10KHJbY10pO2w9cyhsLGgpfWNvbnN0IG89dChyLl9jb21tb24pLHU9bihvLGwpO3JldHVybiBuZXcgTWUodSl9KSxMZS5fbG9jYWxlcz1uZXcgZW4oKCk9Pk9iamVjdC5rZXlzKE1lLmFtYmlndW91c0NoYXJhY3RlckRhdGEudmFsdWUpLmZpbHRlcihlPT4hZS5zdGFydHNXaXRoKCJfIikpKTtjbGFzcyBmZXtzdGF0aWMgZ2V0UmF3RGF0YSgpe3JldHVybiBKU09OLnBhcnNlKCJbOSwxMCwxMSwxMiwxMywzMiwxMjcsMTYwLDE3Myw4NDcsMTU2NCw0NDQ3LDQ0NDgsNjA2OCw2MDY5LDYxNTUsNjE1Niw2MTU3LDYxNTgsNzM1NSw3MzU2LDgxOTIsODE5Myw4MTk0LDgxOTUsODE5Niw4MTk3LDgxOTgsODE5OSw4MjAwLDgyMDEsODIwMiw4MjAzLDgyMDQsODIwNSw4MjA2LDgyMDcsODIzNCw4MjM1LDgyMzYsODIzNyw4MjM4LDgyMzksODI4Nyw4Mjg4LDgyODksODI5MCw4MjkxLDgyOTIsODI5Myw4Mjk0LDgyOTUsODI5Niw4Mjk3LDgyOTgsODI5OSw4MzAwLDgzMDEsODMwMiw4MzAzLDEwMjQwLDEyMjg4LDEyNjQ0LDY1MDI0LDY1MDI1LDY1MDI2LDY1MDI3LDY1MDI4LDY1MDI5LDY1MDMwLDY1MDMxLDY1MDMyLDY1MDMzLDY1MDM0LDY1MDM1LDY1MDM2LDY1MDM3LDY1MDM4LDY1MDM5LDY1Mjc5LDY1NDQwLDY1NTIwLDY1NTIxLDY1NTIyLDY1NTIzLDY1NTI0LDY1NTI1LDY1NTI2LDY1NTI3LDY1NTI4LDY1NTMyLDc4ODQ0LDExOTE1NSwxMTkxNTYsMTE5MTU3LDExOTE1OCwxMTkxNTksMTE5MTYwLDExOTE2MSwxMTkxNjIsOTE3NTA0LDkxNzUwNSw5MTc1MDYsOTE3NTA3LDkxNzUwOCw5MTc1MDksOTE3NTEwLDkxNzUxMSw5MTc1MTIsOTE3NTEzLDkxNzUxNCw5MTc1MTUsOTE3NTE2LDkxNzUxNyw5MTc1MTgsOTE3NTE5LDkxNzUyMCw5MTc1MjEsOTE3NTIyLDkxNzUyMyw5MTc1MjQsOTE3NTI1LDkxNzUyNiw5MTc1MjcsOTE3NTI4LDkxNzUyOSw5MTc1MzAsOTE3NTMxLDkxNzUzMiw5MTc1MzMsOTE3NTM0LDkxNzUzNSw5MTc1MzYsOTE3NTM3LDkxNzUzOCw5MTc1MzksOTE3NTQwLDkxNzU0MSw5MTc1NDIsOTE3NTQzLDkxNzU0NCw5MTc1NDUsOTE3NTQ2LDkxNzU0Nyw5MTc1NDgsOTE3NTQ5LDkxNzU1MCw5MTc1NTEsOTE3NTUyLDkxNzU1Myw5MTc1NTQsOTE3NTU1LDkxNzU1Niw5MTc1NTcsOTE3NTU4LDkxNzU1OSw5MTc1NjAsOTE3NTYxLDkxNzU2Miw5MTc1NjMsOTE3NTY0LDkxNzU2NSw5MTc1NjYsOTE3NTY3LDkxNzU2OCw5MTc1NjksOTE3NTcwLDkxNzU3MSw5MTc1NzIsOTE3NTczLDkxNzU3NCw5MTc1NzUsOTE3NTc2LDkxNzU3Nyw5MTc1NzgsOTE3NTc5LDkxNzU4MCw5MTc1ODEsOTE3NTgyLDkxNzU4Myw5MTc1ODQsOTE3NTg1LDkxNzU4Niw5MTc1ODcsOTE3NTg4LDkxNzU4OSw5MTc1OTAsOTE3NTkxLDkxNzU5Miw5MTc1OTMsOTE3NTk0LDkxNzU5NSw5MTc1OTYsOTE3NTk3LDkxNzU5OCw5MTc1OTksOTE3NjAwLDkxNzYwMSw5MTc2MDIsOTE3NjAzLDkxNzYwNCw5MTc2MDUsOTE3NjA2LDkxNzYwNyw5MTc2MDgsOTE3NjA5LDkxNzYxMCw5MTc2MTEsOTE3NjEyLDkxNzYxMyw5MTc2MTQsOTE3NjE1LDkxNzYxNiw5MTc2MTcsOTE3NjE4LDkxNzYxOSw5MTc2MjAsOTE3NjIxLDkxNzYyMiw5MTc2MjMsOTE3NjI0LDkxNzYyNSw5MTc2MjYsOTE3NjI3LDkxNzYyOCw5MTc2MjksOTE3NjMwLDkxNzYzMSw5MTc3NjAsOTE3NzYxLDkxNzc2Miw5MTc3NjMsOTE3NzY0LDkxNzc2NSw5MTc3NjYsOTE3NzY3LDkxNzc2OCw5MTc3NjksOTE3NzcwLDkxNzc3MSw5MTc3NzIsOTE3NzczLDkxNzc3NCw5MTc3NzUsOTE3Nzc2LDkxNzc3Nyw5MTc3NzgsOTE3Nzc5LDkxNzc4MCw5MTc3ODEsOTE3NzgyLDkxNzc4Myw5MTc3ODQsOTE3Nzg1LDkxNzc4Niw5MTc3ODcsOTE3Nzg4LDkxNzc4OSw5MTc3OTAsOTE3NzkxLDkxNzc5Miw5MTc3OTMsOTE3Nzk0LDkxNzc5NSw5MTc3OTYsOTE3Nzk3LDkxNzc5OCw5MTc3OTksOTE3ODAwLDkxNzgwMSw5MTc4MDIsOTE3ODAzLDkxNzgwNCw5MTc4MDUsOTE3ODA2LDkxNzgwNyw5MTc4MDgsOTE3ODA5LDkxNzgxMCw5MTc4MTEsOTE3ODEyLDkxNzgxMyw5MTc4MTQsOTE3ODE1LDkxNzgxNiw5MTc4MTcsOTE3ODE4LDkxNzgxOSw5MTc4MjAsOTE3ODIxLDkxNzgyMiw5MTc4MjMsOTE3ODI0LDkxNzgyNSw5MTc4MjYsOTE3ODI3LDkxNzgyOCw5MTc4MjksOTE3ODMwLDkxNzgzMSw5MTc4MzIsOTE3ODMzLDkxNzgzNCw5MTc4MzUsOTE3ODM2LDkxNzgzNyw5MTc4MzgsOTE3ODM5LDkxNzg0MCw5MTc4NDEsOTE3ODQyLDkxNzg0Myw5MTc4NDQsOTE3ODQ1LDkxNzg0Niw5MTc4NDcsOTE3ODQ4LDkxNzg0OSw5MTc4NTAsOTE3ODUxLDkxNzg1Miw5MTc4NTMsOTE3ODU0LDkxNzg1NSw5MTc4NTYsOTE3ODU3LDkxNzg1OCw5MTc4NTksOTE3ODYwLDkxNzg2MSw5MTc4NjIsOTE3ODYzLDkxNzg2NCw5MTc4NjUsOTE3ODY2LDkxNzg2Nyw5MTc4NjgsOTE3ODY5LDkxNzg3MCw5MTc4NzEsOTE3ODcyLDkxNzg3Myw5MTc4NzQsOTE3ODc1LDkxNzg3Niw5MTc4NzcsOTE3ODc4LDkxNzg3OSw5MTc4ODAsOTE3ODgxLDkxNzg4Miw5MTc4ODMsOTE3ODg0LDkxNzg4NSw5MTc4ODYsOTE3ODg3LDkxNzg4OCw5MTc4ODksOTE3ODkwLDkxNzg5MSw5MTc4OTIsOTE3ODkzLDkxNzg5NCw5MTc4OTUsOTE3ODk2LDkxNzg5Nyw5MTc4OTgsOTE3ODk5LDkxNzkwMCw5MTc5MDEsOTE3OTAyLDkxNzkwMyw5MTc5MDQsOTE3OTA1LDkxNzkwNiw5MTc5MDcsOTE3OTA4LDkxNzkwOSw5MTc5MTAsOTE3OTExLDkxNzkxMiw5MTc5MTMsOTE3OTE0LDkxNzkxNSw5MTc5MTYsOTE3OTE3LDkxNzkxOCw5MTc5MTksOTE3OTIwLDkxNzkyMSw5MTc5MjIsOTE3OTIzLDkxNzkyNCw5MTc5MjUsOTE3OTI2LDkxNzkyNyw5MTc5MjgsOTE3OTI5LDkxNzkzMCw5MTc5MzEsOTE3OTMyLDkxNzkzMyw5MTc5MzQsOTE3OTM1LDkxNzkzNiw5MTc5MzcsOTE3OTM4LDkxNzkzOSw5MTc5NDAsOTE3OTQxLDkxNzk0Miw5MTc5NDMsOTE3OTQ0LDkxNzk0NSw5MTc5NDYsOTE3OTQ3LDkxNzk0OCw5MTc5NDksOTE3OTUwLDkxNzk1MSw5MTc5NTIsOTE3OTUzLDkxNzk1NCw5MTc5NTUsOTE3OTU2LDkxNzk1Nyw5MTc5NTgsOTE3OTU5LDkxNzk2MCw5MTc5NjEsOTE3OTYyLDkxNzk2Myw5MTc5NjQsOTE3OTY1LDkxNzk2Niw5MTc5NjcsOTE3OTY4LDkxNzk2OSw5MTc5NzAsOTE3OTcxLDkxNzk3Miw5MTc5NzMsOTE3OTc0LDkxNzk3NSw5MTc5NzYsOTE3OTc3LDkxNzk3OCw5MTc5NzksOTE3OTgwLDkxNzk4MSw5MTc5ODIsOTE3OTgzLDkxNzk4NCw5MTc5ODUsOTE3OTg2LDkxNzk4Nyw5MTc5ODgsOTE3OTg5LDkxNzk5MCw5MTc5OTEsOTE3OTkyLDkxNzk5Myw5MTc5OTQsOTE3OTk1LDkxNzk5Niw5MTc5OTcsOTE3OTk4LDkxNzk5OV0iKX1zdGF0aWMgZ2V0RGF0YSgpe3JldHVybiB0aGlzLl9kYXRhfHwodGhpcy5fZGF0YT1uZXcgU2V0KGZlLmdldFJhd0RhdGEoKSkpLHRoaXMuX2RhdGF9c3RhdGljIGlzSW52aXNpYmxlQ2hhcmFjdGVyKHQpe3JldHVybiBmZS5nZXREYXRhKCkuaGFzKHQpfXN0YXRpYyBnZXQgY29kZVBvaW50cygpe3JldHVybiBmZS5nZXREYXRhKCl9fWZlLl9kYXRhPXZvaWQgMDtjb25zdCBMcj0iJGluaXRpYWxpemUiO2NsYXNzIHdye2NvbnN0cnVjdG9yKHQsbixzLHIpe3RoaXMudnNXb3JrZXI9dCx0aGlzLnJlcT1uLHRoaXMubWV0aG9kPXMsdGhpcy5hcmdzPXIsdGhpcy50eXBlPTB9fWNsYXNzIG5ue2NvbnN0cnVjdG9yKHQsbixzLHIpe3RoaXMudnNXb3JrZXI9dCx0aGlzLnNlcT1uLHRoaXMucmVzPXMsdGhpcy5lcnI9cix0aGlzLnR5cGU9MX19Y2xhc3MgTnJ7Y29uc3RydWN0b3IodCxuLHMscil7dGhpcy52c1dvcmtlcj10LHRoaXMucmVxPW4sdGhpcy5ldmVudE5hbWU9cyx0aGlzLmFyZz1yLHRoaXMudHlwZT0yfX1jbGFzcyBTcntjb25zdHJ1Y3Rvcih0LG4scyl7dGhpcy52c1dvcmtlcj10LHRoaXMucmVxPW4sdGhpcy5ldmVudD1zLHRoaXMudHlwZT0zfX1jbGFzcyBDcntjb25zdHJ1Y3Rvcih0LG4pe3RoaXMudnNXb3JrZXI9dCx0aGlzLnJlcT1uLHRoaXMudHlwZT00fX1jbGFzcyBBcntjb25zdHJ1Y3Rvcih0KXt0aGlzLl93b3JrZXJJZD0tMSx0aGlzLl9oYW5kbGVyPXQsdGhpcy5fbGFzdFNlbnRSZXE9MCx0aGlzLl9wZW5kaW5nUmVwbGllcz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX3BlbmRpbmdFbWl0dGVycz1uZXcgTWFwLHRoaXMuX3BlbmRpbmdFdmVudHM9bmV3IE1hcH1zZXRXb3JrZXJJZCh0KXt0aGlzLl93b3JrZXJJZD10fXNlbmRNZXNzYWdlKHQsbil7Y29uc3Qgcz1TdHJpbmcoKyt0aGlzLl9sYXN0U2VudFJlcSk7cmV0dXJuIG5ldyBQcm9taXNlKChyLGkpPT57dGhpcy5fcGVuZGluZ1JlcGxpZXNbc109e3Jlc29sdmU6cixyZWplY3Q6aX0sdGhpcy5fc2VuZChuZXcgd3IodGhpcy5fd29ya2VySWQscyx0LG4pKX0pfWxpc3Rlbih0LG4pe2xldCBzPW51bGw7Y29uc3Qgcj1uZXcgcmUoe29uV2lsbEFkZEZpcnN0TGlzdGVuZXI6KCk9PntzPVN0cmluZygrK3RoaXMuX2xhc3RTZW50UmVxKSx0aGlzLl9wZW5kaW5nRW1pdHRlcnMuc2V0KHMsciksdGhpcy5fc2VuZChuZXcgTnIodGhpcy5fd29ya2VySWQscyx0LG4pKX0sb25EaWRSZW1vdmVMYXN0TGlzdGVuZXI6KCk9Pnt0aGlzLl9wZW5kaW5nRW1pdHRlcnMuZGVsZXRlKHMpLHRoaXMuX3NlbmQobmV3IENyKHRoaXMuX3dvcmtlcklkLHMpKSxzPW51bGx9fSk7cmV0dXJuIHIuZXZlbnR9aGFuZGxlTWVzc2FnZSh0KXshdHx8IXQudnNXb3JrZXJ8fHRoaXMuX3dvcmtlcklkIT09LTEmJnQudnNXb3JrZXIhPT10aGlzLl93b3JrZXJJZHx8dGhpcy5faGFuZGxlTWVzc2FnZSh0KX1faGFuZGxlTWVzc2FnZSh0KXtzd2l0Y2godC50eXBlKXtjYXNlIDE6cmV0dXJuIHRoaXMuX2hhbmRsZVJlcGx5TWVzc2FnZSh0KTtjYXNlIDA6cmV0dXJuIHRoaXMuX2hhbmRsZVJlcXVlc3RNZXNzYWdlKHQpO2Nhc2UgMjpyZXR1cm4gdGhpcy5faGFuZGxlU3Vic2NyaWJlRXZlbnRNZXNzYWdlKHQpO2Nhc2UgMzpyZXR1cm4gdGhpcy5faGFuZGxlRXZlbnRNZXNzYWdlKHQpO2Nhc2UgNDpyZXR1cm4gdGhpcy5faGFuZGxlVW5zdWJzY3JpYmVFdmVudE1lc3NhZ2UodCl9fV9oYW5kbGVSZXBseU1lc3NhZ2UodCl7aWYoIXRoaXMuX3BlbmRpbmdSZXBsaWVzW3Quc2VxXSlyZXR1cm47Y29uc3Qgbj10aGlzLl9wZW5kaW5nUmVwbGllc1t0LnNlcV07aWYoZGVsZXRlIHRoaXMuX3BlbmRpbmdSZXBsaWVzW3Quc2VxXSx0LmVycil7bGV0IHM9dC5lcnI7dC5lcnIuJGlzRXJyb3ImJihzPW5ldyBFcnJvcixzLm5hbWU9dC5lcnIubmFtZSxzLm1lc3NhZ2U9dC5lcnIubWVzc2FnZSxzLnN0YWNrPXQuZXJyLnN0YWNrKSxuLnJlamVjdChzKTtyZXR1cm59bi5yZXNvbHZlKHQucmVzKX1faGFuZGxlUmVxdWVzdE1lc3NhZ2UodCl7Y29uc3Qgbj10LnJlcTt0aGlzLl9oYW5kbGVyLmhhbmRsZU1lc3NhZ2UodC5tZXRob2QsdC5hcmdzKS50aGVuKHI9Pnt0aGlzLl9zZW5kKG5ldyBubih0aGlzLl93b3JrZXJJZCxuLHIsdm9pZCAwKSl9LHI9PntyLmRldGFpbCBpbnN0YW5jZW9mIEVycm9yJiYoci5kZXRhaWw9SnQoci5kZXRhaWwpKSx0aGlzLl9zZW5kKG5ldyBubih0aGlzLl93b3JrZXJJZCxuLHZvaWQgMCxKdChyKSkpfSl9X2hhbmRsZVN1YnNjcmliZUV2ZW50TWVzc2FnZSh0KXtjb25zdCBuPXQucmVxLHM9dGhpcy5faGFuZGxlci5oYW5kbGVFdmVudCh0LmV2ZW50TmFtZSx0LmFyZykocj0+e3RoaXMuX3NlbmQobmV3IFNyKHRoaXMuX3dvcmtlcklkLG4scikpfSk7dGhpcy5fcGVuZGluZ0V2ZW50cy5zZXQobixzKX1faGFuZGxlRXZlbnRNZXNzYWdlKHQpe3RoaXMuX3BlbmRpbmdFbWl0dGVycy5oYXModC5yZXEpJiZ0aGlzLl9wZW5kaW5nRW1pdHRlcnMuZ2V0KHQucmVxKS5maXJlKHQuZXZlbnQpfV9oYW5kbGVVbnN1YnNjcmliZUV2ZW50TWVzc2FnZSh0KXt0aGlzLl9wZW5kaW5nRXZlbnRzLmhhcyh0LnJlcSkmJih0aGlzLl9wZW5kaW5nRXZlbnRzLmdldCh0LnJlcSkuZGlzcG9zZSgpLHRoaXMuX3BlbmRpbmdFdmVudHMuZGVsZXRlKHQucmVxKSl9X3NlbmQodCl7Y29uc3Qgbj1bXTtpZih0LnR5cGU9PT0wKWZvcihsZXQgcz0wO3M8dC5hcmdzLmxlbmd0aDtzKyspdC5hcmdzW3NdaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmbi5wdXNoKHQuYXJnc1tzXSk7ZWxzZSB0LnR5cGU9PT0xJiZ0LnJlcyBpbnN0YW5jZW9mIEFycmF5QnVmZmVyJiZuLnB1c2godC5yZXMpO3RoaXMuX2hhbmRsZXIuc2VuZE1lc3NhZ2UodCxuKX19ZnVuY3Rpb24gc24oZSl7cmV0dXJuIGVbMF09PT0ibyImJmVbMV09PT0ibiImJnRuKGUuY2hhckNvZGVBdCgyKSl9ZnVuY3Rpb24gcm4oZSl7cmV0dXJuL15vbkR5bmFtaWMvLnRlc3QoZSkmJnRuKGUuY2hhckNvZGVBdCg5KSl9ZnVuY3Rpb24geXIoZSx0LG4pe2NvbnN0IHM9bD0+ZnVuY3Rpb24oKXtjb25zdCBvPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTtyZXR1cm4gdChsLG8pfSxyPWw9PmZ1bmN0aW9uKG8pe3JldHVybiBuKGwsbyl9LGk9e307Zm9yKGNvbnN0IGwgb2YgZSl7aWYocm4obCkpe2lbbF09cihsKTtjb250aW51ZX1pZihzbihsKSl7aVtsXT1uKGwsdm9pZCAwKTtjb250aW51ZX1pW2xdPXMobCl9cmV0dXJuIGl9Y2xhc3MgUnJ7Y29uc3RydWN0b3IodCxuKXt0aGlzLl9yZXF1ZXN0SGFuZGxlckZhY3Rvcnk9bix0aGlzLl9yZXF1ZXN0SGFuZGxlcj1udWxsLHRoaXMuX3Byb3RvY29sPW5ldyBBcih7c2VuZE1lc3NhZ2U6KHMscik9Pnt0KHMscil9LGhhbmRsZU1lc3NhZ2U6KHMscik9PnRoaXMuX2hhbmRsZU1lc3NhZ2UocyxyKSxoYW5kbGVFdmVudDoocyxyKT0+dGhpcy5faGFuZGxlRXZlbnQocyxyKX0pfW9ubWVzc2FnZSh0KXt0aGlzLl9wcm90b2NvbC5oYW5kbGVNZXNzYWdlKHQpfV9oYW5kbGVNZXNzYWdlKHQsbil7aWYodD09PUxyKXJldHVybiB0aGlzLmluaXRpYWxpemUoblswXSxuWzFdLG5bMl0sblszXSk7aWYoIXRoaXMuX3JlcXVlc3RIYW5kbGVyfHx0eXBlb2YgdGhpcy5fcmVxdWVzdEhhbmRsZXJbdF0hPSJmdW5jdGlvbiIpcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBFcnJvcigiTWlzc2luZyByZXF1ZXN0SGFuZGxlciBvciBtZXRob2Q6ICIrdCkpO3RyeXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX3JlcXVlc3RIYW5kbGVyW3RdLmFwcGx5KHRoaXMuX3JlcXVlc3RIYW5kbGVyLG4pKX1jYXRjaChzKXtyZXR1cm4gUHJvbWlzZS5yZWplY3Qocyl9fV9oYW5kbGVFdmVudCh0LG4pe2lmKCF0aGlzLl9yZXF1ZXN0SGFuZGxlcil0aHJvdyBuZXcgRXJyb3IoIk1pc3NpbmcgcmVxdWVzdEhhbmRsZXIiKTtpZihybih0KSl7Y29uc3Qgcz10aGlzLl9yZXF1ZXN0SGFuZGxlclt0XS5jYWxsKHRoaXMuX3JlcXVlc3RIYW5kbGVyLG4pO2lmKHR5cGVvZiBzIT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcihgTWlzc2luZyBkeW5hbWljIGV2ZW50ICR7dH0gb24gcmVxdWVzdCBoYW5kbGVyLmApO3JldHVybiBzfWlmKHNuKHQpKXtjb25zdCBzPXRoaXMuX3JlcXVlc3RIYW5kbGVyW3RdO2lmKHR5cGVvZiBzIT0iZnVuY3Rpb24iKXRocm93IG5ldyBFcnJvcihgTWlzc2luZyBldmVudCAke3R9IG9uIHJlcXVlc3QgaGFuZGxlci5gKTtyZXR1cm4gc310aHJvdyBuZXcgRXJyb3IoYE1hbGZvcm1lZCBldmVudCBuYW1lICR7dH1gKX1pbml0aWFsaXplKHQsbixzLHIpe3RoaXMuX3Byb3RvY29sLnNldFdvcmtlcklkKHQpO2NvbnN0IG89eXIociwodSxjKT0+dGhpcy5fcHJvdG9jb2wuc2VuZE1lc3NhZ2UodSxjKSwodSxjKT0+dGhpcy5fcHJvdG9jb2wubGlzdGVuKHUsYykpO3JldHVybiB0aGlzLl9yZXF1ZXN0SGFuZGxlckZhY3Rvcnk/KHRoaXMuX3JlcXVlc3RIYW5kbGVyPXRoaXMuX3JlcXVlc3RIYW5kbGVyRmFjdG9yeShvKSxQcm9taXNlLnJlc29sdmUodnQodGhpcy5fcmVxdWVzdEhhbmRsZXIpKSk6KG4mJih0eXBlb2Ygbi5iYXNlVXJsPCJ1IiYmZGVsZXRlIG4uYmFzZVVybCx0eXBlb2Ygbi5wYXRoczwidSImJnR5cGVvZiBuLnBhdGhzLnZzPCJ1IiYmZGVsZXRlIG4ucGF0aHMudnMsdHlwZW9mIG4udHJ1c3RlZFR5cGVzUG9saWN5PCJ1IiYmZGVsZXRlIG4udHJ1c3RlZFR5cGVzUG9saWN5LG4uY2F0Y2hFcnJvcj0hMCxnbG9iYWxUaGlzLnJlcXVpcmUuY29uZmlnKG4pKSxuZXcgUHJvbWlzZSgodSxjKT0+e2NvbnN0IGg9Z2xvYmFsVGhpcy5yZXF1aXJlO2goW3NdLGY9PntpZih0aGlzLl9yZXF1ZXN0SGFuZGxlcj1mLmNyZWF0ZShvKSwhdGhpcy5fcmVxdWVzdEhhbmRsZXIpe2MobmV3IEVycm9yKCJObyBSZXF1ZXN0SGFuZGxlciEiKSk7cmV0dXJufXUodnQodGhpcy5fcmVxdWVzdEhhbmRsZXIpKX0sYyl9KSl9fWNsYXNzIGRle2NvbnN0cnVjdG9yKHQsbixzLHIpe3RoaXMub3JpZ2luYWxTdGFydD10LHRoaXMub3JpZ2luYWxMZW5ndGg9bix0aGlzLm1vZGlmaWVkU3RhcnQ9cyx0aGlzLm1vZGlmaWVkTGVuZ3RoPXJ9Z2V0T3JpZ2luYWxFbmQoKXtyZXR1cm4gdGhpcy5vcmlnaW5hbFN0YXJ0K3RoaXMub3JpZ2luYWxMZW5ndGh9Z2V0TW9kaWZpZWRFbmQoKXtyZXR1cm4gdGhpcy5tb2RpZmllZFN0YXJ0K3RoaXMubW9kaWZpZWRMZW5ndGh9fWZ1bmN0aW9uIGFuKGUsdCl7cmV0dXJuKHQ8PDUpLXQrZXwwfWZ1bmN0aW9uIEVyKGUsdCl7dD1hbigxNDk0MTcsdCk7Zm9yKGxldCBuPTAscz1lLmxlbmd0aDtuPHM7bisrKXQ9YW4oZS5jaGFyQ29kZUF0KG4pLHQpO3JldHVybiB0fWNsYXNzIGxue2NvbnN0cnVjdG9yKHQpe3RoaXMuc291cmNlPXR9Z2V0RWxlbWVudHMoKXtjb25zdCB0PXRoaXMuc291cmNlLG49bmV3IEludDMyQXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgcz0wLHI9dC5sZW5ndGg7czxyO3MrKyluW3NdPXQuY2hhckNvZGVBdChzKTtyZXR1cm4gbn19ZnVuY3Rpb24gTXIoZSx0LG4pe3JldHVybiBuZXcgbWUobmV3IGxuKGUpLG5ldyBsbih0KSkuQ29tcHV0ZURpZmYobikuY2hhbmdlc31jbGFzcyBrZXtzdGF0aWMgQXNzZXJ0KHQsbil7aWYoIXQpdGhyb3cgbmV3IEVycm9yKG4pfX1jbGFzcyBQZXtzdGF0aWMgQ29weSh0LG4scyxyLGkpe2ZvcihsZXQgbD0wO2w8aTtsKyspc1tyK2xdPXRbbitsXX1zdGF0aWMgQ29weTIodCxuLHMscixpKXtmb3IobGV0IGw9MDtsPGk7bCsrKXNbcitsXT10W24rbF19fWNsYXNzIG9ue2NvbnN0cnVjdG9yKCl7dGhpcy5tX2NoYW5nZXM9W10sdGhpcy5tX29yaWdpbmFsU3RhcnQ9MTA3Mzc0MTgyNCx0aGlzLm1fbW9kaWZpZWRTdGFydD0xMDczNzQxODI0LHRoaXMubV9vcmlnaW5hbENvdW50PTAsdGhpcy5tX21vZGlmaWVkQ291bnQ9MH1NYXJrTmV4dENoYW5nZSgpeyh0aGlzLm1fb3JpZ2luYWxDb3VudD4wfHx0aGlzLm1fbW9kaWZpZWRDb3VudD4wKSYmdGhpcy5tX2NoYW5nZXMucHVzaChuZXcgZGUodGhpcy5tX29yaWdpbmFsU3RhcnQsdGhpcy5tX29yaWdpbmFsQ291bnQsdGhpcy5tX21vZGlmaWVkU3RhcnQsdGhpcy5tX21vZGlmaWVkQ291bnQpKSx0aGlzLm1fb3JpZ2luYWxDb3VudD0wLHRoaXMubV9tb2RpZmllZENvdW50PTAsdGhpcy5tX29yaWdpbmFsU3RhcnQ9MTA3Mzc0MTgyNCx0aGlzLm1fbW9kaWZpZWRTdGFydD0xMDczNzQxODI0fUFkZE9yaWdpbmFsRWxlbWVudCh0LG4pe3RoaXMubV9vcmlnaW5hbFN0YXJ0PU1hdGgubWluKHRoaXMubV9vcmlnaW5hbFN0YXJ0LHQpLHRoaXMubV9tb2RpZmllZFN0YXJ0PU1hdGgubWluKHRoaXMubV9tb2RpZmllZFN0YXJ0LG4pLHRoaXMubV9vcmlnaW5hbENvdW50Kyt9QWRkTW9kaWZpZWRFbGVtZW50KHQsbil7dGhpcy5tX29yaWdpbmFsU3RhcnQ9TWF0aC5taW4odGhpcy5tX29yaWdpbmFsU3RhcnQsdCksdGhpcy5tX21vZGlmaWVkU3RhcnQ9TWF0aC5taW4odGhpcy5tX21vZGlmaWVkU3RhcnQsbiksdGhpcy5tX21vZGlmaWVkQ291bnQrK31nZXRDaGFuZ2VzKCl7cmV0dXJuKHRoaXMubV9vcmlnaW5hbENvdW50PjB8fHRoaXMubV9tb2RpZmllZENvdW50PjApJiZ0aGlzLk1hcmtOZXh0Q2hhbmdlKCksdGhpcy5tX2NoYW5nZXN9Z2V0UmV2ZXJzZUNoYW5nZXMoKXtyZXR1cm4odGhpcy5tX29yaWdpbmFsQ291bnQ+MHx8dGhpcy5tX21vZGlmaWVkQ291bnQ+MCkmJnRoaXMuTWFya05leHRDaGFuZ2UoKSx0aGlzLm1fY2hhbmdlcy5yZXZlcnNlKCksdGhpcy5tX2NoYW5nZXN9fWNsYXNzIG1le2NvbnN0cnVjdG9yKHQsbixzPW51bGwpe3RoaXMuQ29udGludWVQcm9jZXNzaW5nUHJlZGljYXRlPXMsdGhpcy5fb3JpZ2luYWxTZXF1ZW5jZT10LHRoaXMuX21vZGlmaWVkU2VxdWVuY2U9bjtjb25zdFtyLGksbF09bWUuX2dldEVsZW1lbnRzKHQpLFtvLHUsY109bWUuX2dldEVsZW1lbnRzKG4pO3RoaXMuX2hhc1N0cmluZ3M9bCYmYyx0aGlzLl9vcmlnaW5hbFN0cmluZ0VsZW1lbnRzPXIsdGhpcy5fb3JpZ2luYWxFbGVtZW50c09ySGFzaD1pLHRoaXMuX21vZGlmaWVkU3RyaW5nRWxlbWVudHM9byx0aGlzLl9tb2RpZmllZEVsZW1lbnRzT3JIYXNoPXUsdGhpcy5tX2ZvcndhcmRIaXN0b3J5PVtdLHRoaXMubV9yZXZlcnNlSGlzdG9yeT1bXX1zdGF0aWMgX2lzU3RyaW5nQXJyYXkodCl7cmV0dXJuIHQubGVuZ3RoPjAmJnR5cGVvZiB0WzBdPT0ic3RyaW5nIn1zdGF0aWMgX2dldEVsZW1lbnRzKHQpe2NvbnN0IG49dC5nZXRFbGVtZW50cygpO2lmKG1lLl9pc1N0cmluZ0FycmF5KG4pKXtjb25zdCBzPW5ldyBJbnQzMkFycmF5KG4ubGVuZ3RoKTtmb3IobGV0IHI9MCxpPW4ubGVuZ3RoO3I8aTtyKyspc1tyXT1FcihuW3JdLDApO3JldHVybltuLHMsITBdfXJldHVybiBuIGluc3RhbmNlb2YgSW50MzJBcnJheT9bW10sbiwhMV06W1tdLG5ldyBJbnQzMkFycmF5KG4pLCExXX1FbGVtZW50c0FyZUVxdWFsKHQsbil7cmV0dXJuIHRoaXMuX29yaWdpbmFsRWxlbWVudHNPckhhc2hbdF0hPT10aGlzLl9tb2RpZmllZEVsZW1lbnRzT3JIYXNoW25dPyExOnRoaXMuX2hhc1N0cmluZ3M/dGhpcy5fb3JpZ2luYWxTdHJpbmdFbGVtZW50c1t0XT09PXRoaXMuX21vZGlmaWVkU3RyaW5nRWxlbWVudHNbbl06ITB9RWxlbWVudHNBcmVTdHJpY3RFcXVhbCh0LG4pe2lmKCF0aGlzLkVsZW1lbnRzQXJlRXF1YWwodCxuKSlyZXR1cm4hMTtjb25zdCBzPW1lLl9nZXRTdHJpY3RFbGVtZW50KHRoaXMuX29yaWdpbmFsU2VxdWVuY2UsdCkscj1tZS5fZ2V0U3RyaWN0RWxlbWVudCh0aGlzLl9tb2RpZmllZFNlcXVlbmNlLG4pO3JldHVybiBzPT09cn1zdGF0aWMgX2dldFN0cmljdEVsZW1lbnQodCxuKXtyZXR1cm4gdHlwZW9mIHQuZ2V0U3RyaWN0RWxlbWVudD09ImZ1bmN0aW9uIj90LmdldFN0cmljdEVsZW1lbnQobik6bnVsbH1PcmlnaW5hbEVsZW1lbnRzQXJlRXF1YWwodCxuKXtyZXR1cm4gdGhpcy5fb3JpZ2luYWxFbGVtZW50c09ySGFzaFt0XSE9PXRoaXMuX29yaWdpbmFsRWxlbWVudHNPckhhc2hbbl0/ITE6dGhpcy5faGFzU3RyaW5ncz90aGlzLl9vcmlnaW5hbFN0cmluZ0VsZW1lbnRzW3RdPT09dGhpcy5fb3JpZ2luYWxTdHJpbmdFbGVtZW50c1tuXTohMH1Nb2RpZmllZEVsZW1lbnRzQXJlRXF1YWwodCxuKXtyZXR1cm4gdGhpcy5fbW9kaWZpZWRFbGVtZW50c09ySGFzaFt0XSE9PXRoaXMuX21vZGlmaWVkRWxlbWVudHNPckhhc2hbbl0/ITE6dGhpcy5faGFzU3RyaW5ncz90aGlzLl9tb2RpZmllZFN0cmluZ0VsZW1lbnRzW3RdPT09dGhpcy5fbW9kaWZpZWRTdHJpbmdFbGVtZW50c1tuXTohMH1Db21wdXRlRGlmZih0KXtyZXR1cm4gdGhpcy5fQ29tcHV0ZURpZmYoMCx0aGlzLl9vcmlnaW5hbEVsZW1lbnRzT3JIYXNoLmxlbmd0aC0xLDAsdGhpcy5fbW9kaWZpZWRFbGVtZW50c09ySGFzaC5sZW5ndGgtMSx0KX1fQ29tcHV0ZURpZmYodCxuLHMscixpKXtjb25zdCBsPVshMV07bGV0IG89dGhpcy5Db21wdXRlRGlmZlJlY3Vyc2l2ZSh0LG4scyxyLGwpO3JldHVybiBpJiYobz10aGlzLlByZXR0aWZ5Q2hhbmdlcyhvKSkse3F1aXRFYXJseTpsWzBdLGNoYW5nZXM6b319Q29tcHV0ZURpZmZSZWN1cnNpdmUodCxuLHMscixpKXtmb3IoaVswXT0hMTt0PD1uJiZzPD1yJiZ0aGlzLkVsZW1lbnRzQXJlRXF1YWwodCxzKTspdCsrLHMrKztmb3IoO24+PXQmJnI+PXMmJnRoaXMuRWxlbWVudHNBcmVFcXVhbChuLHIpOyluLS0sci0tO2lmKHQ+bnx8cz5yKXtsZXQgZjtyZXR1cm4gczw9cj8oa2UuQXNzZXJ0KHQ9PT1uKzEsIm9yaWdpbmFsU3RhcnQgc2hvdWxkIG9ubHkgYmUgb25lIG1vcmUgdGhhbiBvcmlnaW5hbEVuZCIpLGY9W25ldyBkZSh0LDAscyxyLXMrMSldKTp0PD1uPyhrZS5Bc3NlcnQocz09PXIrMSwibW9kaWZpZWRTdGFydCBzaG91bGQgb25seSBiZSBvbmUgbW9yZSB0aGFuIG1vZGlmaWVkRW5kIiksZj1bbmV3IGRlKHQsbi10KzEscywwKV0pOihrZS5Bc3NlcnQodD09PW4rMSwib3JpZ2luYWxTdGFydCBzaG91bGQgb25seSBiZSBvbmUgbW9yZSB0aGFuIG9yaWdpbmFsRW5kIiksa2UuQXNzZXJ0KHM9PT1yKzEsIm1vZGlmaWVkU3RhcnQgc2hvdWxkIG9ubHkgYmUgb25lIG1vcmUgdGhhbiBtb2RpZmllZEVuZCIpLGY9W10pLGZ9Y29uc3QgbD1bMF0sbz1bMF0sdT10aGlzLkNvbXB1dGVSZWN1cnNpb25Qb2ludCh0LG4scyxyLGwsbyxpKSxjPWxbMF0saD1vWzBdO2lmKHUhPT1udWxsKXJldHVybiB1O2lmKCFpWzBdKXtjb25zdCBmPXRoaXMuQ29tcHV0ZURpZmZSZWN1cnNpdmUodCxjLHMsaCxpKTtsZXQgZD1bXTtyZXR1cm4gaVswXT9kPVtuZXcgZGUoYysxLG4tKGMrMSkrMSxoKzEsci0oaCsxKSsxKV06ZD10aGlzLkNvbXB1dGVEaWZmUmVjdXJzaXZlKGMrMSxuLGgrMSxyLGkpLHRoaXMuQ29uY2F0ZW5hdGVDaGFuZ2VzKGYsZCl9cmV0dXJuW25ldyBkZSh0LG4tdCsxLHMsci1zKzEpXX1XQUxLVFJBQ0UodCxuLHMscixpLGwsbyx1LGMsaCxmLGQsbSxnLHgsdixOLFMpe2xldCBfPW51bGwsdz1udWxsLHA9bmV3IG9uLHk9bixSPXMsRT1tWzBdLXZbMF0tcixJPS0xMDczNzQxODI0LEc9dGhpcy5tX2ZvcndhcmRIaXN0b3J5Lmxlbmd0aC0xO2Rve2NvbnN0IEw9RSt0O0w9PT15fHxMPFImJmNbTC0xXTxjW0wrMV0/KGY9Y1tMKzFdLGc9Zi1FLXIsZjxJJiZwLk1hcmtOZXh0Q2hhbmdlKCksST1mLHAuQWRkTW9kaWZpZWRFbGVtZW50KGYrMSxnKSxFPUwrMS10KTooZj1jW0wtMV0rMSxnPWYtRS1yLGY8SSYmcC5NYXJrTmV4dENoYW5nZSgpLEk9Zi0xLHAuQWRkT3JpZ2luYWxFbGVtZW50KGYsZysxKSxFPUwtMS10KSxHPj0wJiYoYz10aGlzLm1fZm9yd2FyZEhpc3RvcnlbR10sdD1jWzBdLHk9MSxSPWMubGVuZ3RoLTEpfXdoaWxlKC0tRz49LTEpO2lmKF89cC5nZXRSZXZlcnNlQ2hhbmdlcygpLFNbMF0pe2xldCBMPW1bMF0rMSxiPXZbMF0rMTtpZihfIT09bnVsbCYmXy5sZW5ndGg+MCl7Y29uc3QgQz1fW18ubGVuZ3RoLTFdO0w9TWF0aC5tYXgoTCxDLmdldE9yaWdpbmFsRW5kKCkpLGI9TWF0aC5tYXgoYixDLmdldE1vZGlmaWVkRW5kKCkpfXc9W25ldyBkZShMLGQtTCsxLGIseC1iKzEpXX1lbHNle3A9bmV3IG9uLHk9bCxSPW8sRT1tWzBdLXZbMF0tdSxJPTEwNzM3NDE4MjQsRz1OP3RoaXMubV9yZXZlcnNlSGlzdG9yeS5sZW5ndGgtMTp0aGlzLm1fcmV2ZXJzZUhpc3RvcnkubGVuZ3RoLTI7ZG97Y29uc3QgTD1FK2k7TD09PXl8fEw8UiYmaFtMLTFdPj1oW0wrMV0/KGY9aFtMKzFdLTEsZz1mLUUtdSxmPkkmJnAuTWFya05leHRDaGFuZ2UoKSxJPWYrMSxwLkFkZE9yaWdpbmFsRWxlbWVudChmKzEsZysxKSxFPUwrMS1pKTooZj1oW0wtMV0sZz1mLUUtdSxmPkkmJnAuTWFya05leHRDaGFuZ2UoKSxJPWYscC5BZGRNb2RpZmllZEVsZW1lbnQoZisxLGcrMSksRT1MLTEtaSksRz49MCYmKGg9dGhpcy5tX3JldmVyc2VIaXN0b3J5W0ddLGk9aFswXSx5PTEsUj1oLmxlbmd0aC0xKX13aGlsZSgtLUc+PS0xKTt3PXAuZ2V0Q2hhbmdlcygpfXJldHVybiB0aGlzLkNvbmNhdGVuYXRlQ2hhbmdlcyhfLHcpfUNvbXB1dGVSZWN1cnNpb25Qb2ludCh0LG4scyxyLGksbCxvKXtsZXQgdT0wLGM9MCxoPTAsZj0wLGQ9MCxtPTA7dC0tLHMtLSxpWzBdPTAsbFswXT0wLHRoaXMubV9mb3J3YXJkSGlzdG9yeT1bXSx0aGlzLm1fcmV2ZXJzZUhpc3Rvcnk9W107Y29uc3QgZz1uLXQrKHItcykseD1nKzEsdj1uZXcgSW50MzJBcnJheSh4KSxOPW5ldyBJbnQzMkFycmF5KHgpLFM9ci1zLF89bi10LHc9dC1zLHA9bi1yLFI9KF8tUyklMj09PTA7dltTXT10LE5bX109bixvWzBdPSExO2ZvcihsZXQgRT0xO0U8PWcvMisxO0UrKyl7bGV0IEk9MCxHPTA7aD10aGlzLkNsaXBEaWFnb25hbEJvdW5kKFMtRSxFLFMseCksZj10aGlzLkNsaXBEaWFnb25hbEJvdW5kKFMrRSxFLFMseCk7Zm9yKGxldCBiPWg7Yjw9ZjtiKz0yKXtiPT09aHx8YjxmJiZ2W2ItMV08dltiKzFdP3U9dltiKzFdOnU9dltiLTFdKzEsYz11LShiLVMpLXc7Y29uc3QgQz11O2Zvcig7dTxuJiZjPHImJnRoaXMuRWxlbWVudHNBcmVFcXVhbCh1KzEsYysxKTspdSsrLGMrKztpZih2W2JdPXUsdStjPkkrRyYmKEk9dSxHPWMpLCFSJiZNYXRoLmFicyhiLV8pPD1FLTEmJnU+PU5bYl0pcmV0dXJuIGlbMF09dSxsWzBdPWMsQzw9TltiXSYmRTw9MTQ0OD90aGlzLldBTEtUUkFDRShTLGgsZix3LF8sZCxtLHAsdixOLHUsbixpLGMscixsLFIsbyk6bnVsbH1jb25zdCBMPShJLXQrKEctcyktRSkvMjtpZih0aGlzLkNvbnRpbnVlUHJvY2Vzc2luZ1ByZWRpY2F0ZSE9PW51bGwmJiF0aGlzLkNvbnRpbnVlUHJvY2Vzc2luZ1ByZWRpY2F0ZShJLEwpKXJldHVybiBvWzBdPSEwLGlbMF09SSxsWzBdPUcsTD4wJiZFPD0xNDQ4P3RoaXMuV0FMS1RSQUNFKFMsaCxmLHcsXyxkLG0scCx2LE4sdSxuLGksYyxyLGwsUixvKToodCsrLHMrKyxbbmV3IGRlKHQsbi10KzEscyxyLXMrMSldKTtkPXRoaXMuQ2xpcERpYWdvbmFsQm91bmQoXy1FLEUsXyx4KSxtPXRoaXMuQ2xpcERpYWdvbmFsQm91bmQoXytFLEUsXyx4KTtmb3IobGV0IGI9ZDtiPD1tO2IrPTIpe2I9PT1kfHxiPG0mJk5bYi0xXT49TltiKzFdP3U9TltiKzFdLTE6dT1OW2ItMV0sYz11LShiLV8pLXA7Y29uc3QgQz11O2Zvcig7dT50JiZjPnMmJnRoaXMuRWxlbWVudHNBcmVFcXVhbCh1LGMpOyl1LS0sYy0tO2lmKE5bYl09dSxSJiZNYXRoLmFicyhiLVMpPD1FJiZ1PD12W2JdKXJldHVybiBpWzBdPXUsbFswXT1jLEM+PXZbYl0mJkU8PTE0NDg/dGhpcy5XQUxLVFJBQ0UoUyxoLGYsdyxfLGQsbSxwLHYsTix1LG4saSxjLHIsbCxSLG8pOm51bGx9aWYoRTw9MTQ0Nyl7bGV0IGI9bmV3IEludDMyQXJyYXkoZi1oKzIpO2JbMF09Uy1oKzEsUGUuQ29weTIodixoLGIsMSxmLWgrMSksdGhpcy5tX2ZvcndhcmRIaXN0b3J5LnB1c2goYiksYj1uZXcgSW50MzJBcnJheShtLWQrMiksYlswXT1fLWQrMSxQZS5Db3B5MihOLGQsYiwxLG0tZCsxKSx0aGlzLm1fcmV2ZXJzZUhpc3RvcnkucHVzaChiKX19cmV0dXJuIHRoaXMuV0FMS1RSQUNFKFMsaCxmLHcsXyxkLG0scCx2LE4sdSxuLGksYyxyLGwsUixvKX1QcmV0dGlmeUNoYW5nZXModCl7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspe2NvbnN0IHM9dFtuXSxyPW48dC5sZW5ndGgtMT90W24rMV0ub3JpZ2luYWxTdGFydDp0aGlzLl9vcmlnaW5hbEVsZW1lbnRzT3JIYXNoLmxlbmd0aCxpPW48dC5sZW5ndGgtMT90W24rMV0ubW9kaWZpZWRTdGFydDp0aGlzLl9tb2RpZmllZEVsZW1lbnRzT3JIYXNoLmxlbmd0aCxsPXMub3JpZ2luYWxMZW5ndGg+MCxvPXMubW9kaWZpZWRMZW5ndGg+MDtmb3IoO3Mub3JpZ2luYWxTdGFydCtzLm9yaWdpbmFsTGVuZ3RoPHImJnMubW9kaWZpZWRTdGFydCtzLm1vZGlmaWVkTGVuZ3RoPGkmJighbHx8dGhpcy5PcmlnaW5hbEVsZW1lbnRzQXJlRXF1YWwocy5vcmlnaW5hbFN0YXJ0LHMub3JpZ2luYWxTdGFydCtzLm9yaWdpbmFsTGVuZ3RoKSkmJighb3x8dGhpcy5Nb2RpZmllZEVsZW1lbnRzQXJlRXF1YWwocy5tb2RpZmllZFN0YXJ0LHMubW9kaWZpZWRTdGFydCtzLm1vZGlmaWVkTGVuZ3RoKSk7KXtjb25zdCBjPXRoaXMuRWxlbWVudHNBcmVTdHJpY3RFcXVhbChzLm9yaWdpbmFsU3RhcnQscy5tb2RpZmllZFN0YXJ0KTtpZih0aGlzLkVsZW1lbnRzQXJlU3RyaWN0RXF1YWwocy5vcmlnaW5hbFN0YXJ0K3Mub3JpZ2luYWxMZW5ndGgscy5tb2RpZmllZFN0YXJ0K3MubW9kaWZpZWRMZW5ndGgpJiYhYylicmVhaztzLm9yaWdpbmFsU3RhcnQrKyxzLm1vZGlmaWVkU3RhcnQrK31jb25zdCB1PVtudWxsXTtpZihuPHQubGVuZ3RoLTEmJnRoaXMuQ2hhbmdlc092ZXJsYXAodFtuXSx0W24rMV0sdSkpe3Rbbl09dVswXSx0LnNwbGljZShuKzEsMSksbi0tO2NvbnRpbnVlfX1mb3IobGV0IG49dC5sZW5ndGgtMTtuPj0wO24tLSl7Y29uc3Qgcz10W25dO2xldCByPTAsaT0wO2lmKG4+MCl7Y29uc3QgZj10W24tMV07cj1mLm9yaWdpbmFsU3RhcnQrZi5vcmlnaW5hbExlbmd0aCxpPWYubW9kaWZpZWRTdGFydCtmLm1vZGlmaWVkTGVuZ3RofWNvbnN0IGw9cy5vcmlnaW5hbExlbmd0aD4wLG89cy5tb2RpZmllZExlbmd0aD4wO2xldCB1PTAsYz10aGlzLl9ib3VuZGFyeVNjb3JlKHMub3JpZ2luYWxTdGFydCxzLm9yaWdpbmFsTGVuZ3RoLHMubW9kaWZpZWRTdGFydCxzLm1vZGlmaWVkTGVuZ3RoKTtmb3IobGV0IGY9MTs7ZisrKXtjb25zdCBkPXMub3JpZ2luYWxTdGFydC1mLG09cy5tb2RpZmllZFN0YXJ0LWY7aWYoZDxyfHxtPGl8fGwmJiF0aGlzLk9yaWdpbmFsRWxlbWVudHNBcmVFcXVhbChkLGQrcy5vcmlnaW5hbExlbmd0aCl8fG8mJiF0aGlzLk1vZGlmaWVkRWxlbWVudHNBcmVFcXVhbChtLG0rcy5tb2RpZmllZExlbmd0aCkpYnJlYWs7Y29uc3QgeD0oZD09PXImJm09PT1pPzU6MCkrdGhpcy5fYm91bmRhcnlTY29yZShkLHMub3JpZ2luYWxMZW5ndGgsbSxzLm1vZGlmaWVkTGVuZ3RoKTt4PmMmJihjPXgsdT1mKX1zLm9yaWdpbmFsU3RhcnQtPXUscy5tb2RpZmllZFN0YXJ0LT11O2NvbnN0IGg9W251bGxdO2lmKG4+MCYmdGhpcy5DaGFuZ2VzT3ZlcmxhcCh0W24tMV0sdFtuXSxoKSl7dFtuLTFdPWhbMF0sdC5zcGxpY2UobiwxKSxuKys7Y29udGludWV9fWlmKHRoaXMuX2hhc1N0cmluZ3MpZm9yKGxldCBuPTEscz10Lmxlbmd0aDtuPHM7bisrKXtjb25zdCByPXRbbi0xXSxpPXRbbl0sbD1pLm9yaWdpbmFsU3RhcnQtci5vcmlnaW5hbFN0YXJ0LXIub3JpZ2luYWxMZW5ndGgsbz1yLm9yaWdpbmFsU3RhcnQsdT1pLm9yaWdpbmFsU3RhcnQraS5vcmlnaW5hbExlbmd0aCxjPXUtbyxoPXIubW9kaWZpZWRTdGFydCxmPWkubW9kaWZpZWRTdGFydCtpLm1vZGlmaWVkTGVuZ3RoLGQ9Zi1oO2lmKGw8NSYmYzwyMCYmZDwyMCl7Y29uc3QgbT10aGlzLl9maW5kQmV0dGVyQ29udGlndW91c1NlcXVlbmNlKG8sYyxoLGQsbCk7aWYobSl7Y29uc3RbZyx4XT1tOyhnIT09ci5vcmlnaW5hbFN0YXJ0K3Iub3JpZ2luYWxMZW5ndGh8fHghPT1yLm1vZGlmaWVkU3RhcnQrci5tb2RpZmllZExlbmd0aCkmJihyLm9yaWdpbmFsTGVuZ3RoPWctci5vcmlnaW5hbFN0YXJ0LHIubW9kaWZpZWRMZW5ndGg9eC1yLm1vZGlmaWVkU3RhcnQsaS5vcmlnaW5hbFN0YXJ0PWcrbCxpLm1vZGlmaWVkU3RhcnQ9eCtsLGkub3JpZ2luYWxMZW5ndGg9dS1pLm9yaWdpbmFsU3RhcnQsaS5tb2RpZmllZExlbmd0aD1mLWkubW9kaWZpZWRTdGFydCl9fX1yZXR1cm4gdH1fZmluZEJldHRlckNvbnRpZ3VvdXNTZXF1ZW5jZSh0LG4scyxyLGkpe2lmKG48aXx8cjxpKXJldHVybiBudWxsO2NvbnN0IGw9dCtuLWkrMSxvPXMrci1pKzE7bGV0IHU9MCxjPTAsaD0wO2ZvcihsZXQgZj10O2Y8bDtmKyspZm9yKGxldCBkPXM7ZDxvO2QrKyl7Y29uc3QgbT10aGlzLl9jb250aWd1b3VzU2VxdWVuY2VTY29yZShmLGQsaSk7bT4wJiZtPnUmJih1PW0sYz1mLGg9ZCl9cmV0dXJuIHU+MD9bYyxoXTpudWxsfV9jb250aWd1b3VzU2VxdWVuY2VTY29yZSh0LG4scyl7bGV0IHI9MDtmb3IobGV0IGk9MDtpPHM7aSsrKXtpZighdGhpcy5FbGVtZW50c0FyZUVxdWFsKHQraSxuK2kpKXJldHVybiAwO3IrPXRoaXMuX29yaWdpbmFsU3RyaW5nRWxlbWVudHNbdCtpXS5sZW5ndGh9cmV0dXJuIHJ9X09yaWdpbmFsSXNCb3VuZGFyeSh0KXtyZXR1cm4gdDw9MHx8dD49dGhpcy5fb3JpZ2luYWxFbGVtZW50c09ySGFzaC5sZW5ndGgtMT8hMDp0aGlzLl9oYXNTdHJpbmdzJiYvXlxzKiQvLnRlc3QodGhpcy5fb3JpZ2luYWxTdHJpbmdFbGVtZW50c1t0XSl9X09yaWdpbmFsUmVnaW9uSXNCb3VuZGFyeSh0LG4pe2lmKHRoaXMuX09yaWdpbmFsSXNCb3VuZGFyeSh0KXx8dGhpcy5fT3JpZ2luYWxJc0JvdW5kYXJ5KHQtMSkpcmV0dXJuITA7aWYobj4wKXtjb25zdCBzPXQrbjtpZih0aGlzLl9PcmlnaW5hbElzQm91bmRhcnkocy0xKXx8dGhpcy5fT3JpZ2luYWxJc0JvdW5kYXJ5KHMpKXJldHVybiEwfXJldHVybiExfV9Nb2RpZmllZElzQm91bmRhcnkodCl7cmV0dXJuIHQ8PTB8fHQ+PXRoaXMuX21vZGlmaWVkRWxlbWVudHNPckhhc2gubGVuZ3RoLTE/ITA6dGhpcy5faGFzU3RyaW5ncyYmL15ccyokLy50ZXN0KHRoaXMuX21vZGlmaWVkU3RyaW5nRWxlbWVudHNbdF0pfV9Nb2RpZmllZFJlZ2lvbklzQm91bmRhcnkodCxuKXtpZih0aGlzLl9Nb2RpZmllZElzQm91bmRhcnkodCl8fHRoaXMuX01vZGlmaWVkSXNCb3VuZGFyeSh0LTEpKXJldHVybiEwO2lmKG4+MCl7Y29uc3Qgcz10K247aWYodGhpcy5fTW9kaWZpZWRJc0JvdW5kYXJ5KHMtMSl8fHRoaXMuX01vZGlmaWVkSXNCb3VuZGFyeShzKSlyZXR1cm4hMH1yZXR1cm4hMX1fYm91bmRhcnlTY29yZSh0LG4scyxyKXtjb25zdCBpPXRoaXMuX09yaWdpbmFsUmVnaW9uSXNCb3VuZGFyeSh0LG4pPzE6MCxsPXRoaXMuX01vZGlmaWVkUmVnaW9uSXNCb3VuZGFyeShzLHIpPzE6MDtyZXR1cm4gaStsfUNvbmNhdGVuYXRlQ2hhbmdlcyh0LG4pe2NvbnN0IHM9W107aWYodC5sZW5ndGg9PT0wfHxuLmxlbmd0aD09PTApcmV0dXJuIG4ubGVuZ3RoPjA/bjp0O2lmKHRoaXMuQ2hhbmdlc092ZXJsYXAodFt0Lmxlbmd0aC0xXSxuWzBdLHMpKXtjb25zdCByPW5ldyBBcnJheSh0Lmxlbmd0aCtuLmxlbmd0aC0xKTtyZXR1cm4gUGUuQ29weSh0LDAsciwwLHQubGVuZ3RoLTEpLHJbdC5sZW5ndGgtMV09c1swXSxQZS5Db3B5KG4sMSxyLHQubGVuZ3RoLG4ubGVuZ3RoLTEpLHJ9ZWxzZXtjb25zdCByPW5ldyBBcnJheSh0Lmxlbmd0aCtuLmxlbmd0aCk7cmV0dXJuIFBlLkNvcHkodCwwLHIsMCx0Lmxlbmd0aCksUGUuQ29weShuLDAscix0Lmxlbmd0aCxuLmxlbmd0aCkscn19Q2hhbmdlc092ZXJsYXAodCxuLHMpe2lmKGtlLkFzc2VydCh0Lm9yaWdpbmFsU3RhcnQ8PW4ub3JpZ2luYWxTdGFydCwiTGVmdCBjaGFuZ2UgaXMgbm90IGxlc3MgdGhhbiBvciBlcXVhbCB0byByaWdodCBjaGFuZ2UiKSxrZS5Bc3NlcnQodC5tb2RpZmllZFN0YXJ0PD1uLm1vZGlmaWVkU3RhcnQsIkxlZnQgY2hhbmdlIGlzIG5vdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gcmlnaHQgY2hhbmdlIiksdC5vcmlnaW5hbFN0YXJ0K3Qub3JpZ2luYWxMZW5ndGg+PW4ub3JpZ2luYWxTdGFydHx8dC5tb2RpZmllZFN0YXJ0K3QubW9kaWZpZWRMZW5ndGg+PW4ubW9kaWZpZWRTdGFydCl7Y29uc3Qgcj10Lm9yaWdpbmFsU3RhcnQ7bGV0IGk9dC5vcmlnaW5hbExlbmd0aDtjb25zdCBsPXQubW9kaWZpZWRTdGFydDtsZXQgbz10Lm1vZGlmaWVkTGVuZ3RoO3JldHVybiB0Lm9yaWdpbmFsU3RhcnQrdC5vcmlnaW5hbExlbmd0aD49bi5vcmlnaW5hbFN0YXJ0JiYoaT1uLm9yaWdpbmFsU3RhcnQrbi5vcmlnaW5hbExlbmd0aC10Lm9yaWdpbmFsU3RhcnQpLHQubW9kaWZpZWRTdGFydCt0Lm1vZGlmaWVkTGVuZ3RoPj1uLm1vZGlmaWVkU3RhcnQmJihvPW4ubW9kaWZpZWRTdGFydCtuLm1vZGlmaWVkTGVuZ3RoLXQubW9kaWZpZWRTdGFydCksc1swXT1uZXcgZGUocixpLGwsbyksITB9ZWxzZSByZXR1cm4gc1swXT1udWxsLCExfUNsaXBEaWFnb25hbEJvdW5kKHQsbixzLHIpe2lmKHQ+PTAmJnQ8cilyZXR1cm4gdDtjb25zdCBpPXMsbD1yLXMtMSxvPW4lMj09PTA7aWYodDwwKXtjb25zdCB1PWklMj09PTA7cmV0dXJuIG89PT11PzA6MX1lbHNle2NvbnN0IHU9bCUyPT09MDtyZXR1cm4gbz09PXU/ci0xOnItMn19fXZhciB1bj17VEVSTV9QUk9HUkFNOiJ2c2NvZGUiLE5PREU6Ii9Vc2Vycy9hbGV4YW5kZXIvLm52bS92ZXJzaW9ucy9ub2RlL3YxNi4xMC4wL2Jpbi9ub2RlIixOVk1fQ0RfRkxBR1M6Ii1xIixJTklUX0NXRDoiL1VzZXJzL2FsZXhhbmRlci9teS1jb2RlL2dpdGh1Yi9vcGVuYXBpLXVpIixTSEVMTDoiL2Jpbi96c2giLFRFUk06Inh0ZXJtLTI1NmNvbG9yIixUTVBESVI6Ii92YXIvZm9sZGVycy83Yi9mMjhnaDg2ZDA4M194cWo5cDloczk3azgwMDAwZ24vVC8iLG5wbV9jb25maWdfbWV0cmljc19yZWdpc3RyeToiaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvIixucG1fY29uZmlnX2dsb2JhbF9wcmVmaXg6Ii9Vc2Vycy9hbGV4YW5kZXIvLm52bS92ZXJzaW9ucy9ub2RlL3YxNi4xMC4wIixURVJNX1BST0dSQU1fVkVSU0lPTjoiMS44OC4xIixHVk1fUk9PVDoiL1VzZXJzL2FsZXhhbmRlci8uZ3ZtIixNYWxsb2NOYW5vWm9uZToiMCIsT1JJR0lOQUxfWERHX0NVUlJFTlRfREVTS1RPUDoidW5kZWZpbmVkIixaRE9URElSOiIvVXNlcnMvYWxleGFuZGVyIixDT0xPUjoiMSIsbnBtX2NvbmZpZ19ub3Byb3h5OiIiLFpTSDoiL1VzZXJzL2FsZXhhbmRlci8ub2gtbXktenNoIixQTlBNX0hPTUU6Ii9Vc2Vycy9hbGV4YW5kZXIvTGlicmFyeS9wbnBtIixucG1fY29uZmlnX2xvY2FsX3ByZWZpeDoiL1VzZXJzL2FsZXhhbmRlci9teS1jb2RlL2dpdGh1Yi9vcGVuYXBpLXVpIixVU0VSOiJhbGV4YW5kZXIiLE5WTV9ESVI6Ii9Vc2Vycy9hbGV4YW5kZXIvLm52bSIsTERfTElCUkFSWV9QQVRIOiIvVXNlcnMvYWxleGFuZGVyLy5ndm0vcGtnc2V0cy9nbzEuMjEuNi9nbG9iYWwvb3ZlcmxheS9saWI6L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL3BrZ3NldHMvZ28xLjIxLjYvZ2xvYmFsL292ZXJsYXkvbGliOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9wa2dzZXRzL2dvMS4yMS42L2dsb2JhbC9vdmVybGF5L2xpYjovVXNlcnMvYWxleGFuZGVyLy5ndm0vcGtnc2V0cy9nbzEuMjEuNi9nbG9iYWwvb3ZlcmxheS9saWI6IixDT01NQU5EX01PREU6InVuaXgyMDAzIixucG1fY29uZmlnX2dsb2JhbGNvbmZpZzoiL1VzZXJzL2FsZXhhbmRlci8ubnZtL3ZlcnNpb25zL25vZGUvdjE2LjEwLjAvZXRjL25wbXJjIixTU0hfQVVUSF9TT0NLOiIvcHJpdmF0ZS90bXAvY29tLmFwcGxlLmxhdW5jaGQuamFGRDhXM2tJZC9MaXN0ZW5lcnMiLF9fQ0ZfVVNFUl9URVhUX0VOQ09ESU5HOiIweDFGNToweDE5OjB4MzQiLG5wbV9leGVjcGF0aDoiL1VzZXJzL2FsZXhhbmRlci8ubnZtL3ZlcnNpb25zL25vZGUvdjE2LjEwLjAvbGliL25vZGVfbW9kdWxlcy9ucG0vYmluL25wbS1jbGkuanMiLFBBR0VSOiJsZXNzIixMU0NPTE9SUzoiR3hmeGN4ZHhieGVnZWRhYmFnYWNhZCIsUEFUSDoiL1VzZXJzL2FsZXhhbmRlci9teS1jb2RlL2dpdGh1Yi9vcGVuYXBpLXVpL25vZGVfbW9kdWxlcy8uYmluOi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvbm9kZV9tb2R1bGVzLy5iaW46L1VzZXJzL2FsZXhhbmRlci9teS1jb2RlL25vZGVfbW9kdWxlcy8uYmluOi9Vc2Vycy9hbGV4YW5kZXIvbm9kZV9tb2R1bGVzLy5iaW46L1VzZXJzL25vZGVfbW9kdWxlcy8uYmluOi9ub2RlX21vZHVsZXMvLmJpbjovVXNlcnMvYWxleGFuZGVyLy5udm0vdmVyc2lvbnMvbm9kZS92MTYuMTAuMC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvQG5wbWNsaS9ydW4tc2NyaXB0L2xpYi9ub2RlLWd5cC1iaW46L3Vzci9sb2NhbC9vcHQvcnVieS9iaW46L1VzZXJzL2FsZXhhbmRlci9MaWJyYXJ5L3BucG06L1VzZXJzL2FsZXhhbmRlci8ueWFybi9iaW46L1VzZXJzL2FsZXhhbmRlci8uY29uZmlnL3lhcm4vZ2xvYmFsL25vZGVfbW9kdWxlcy8uYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9wa2dzZXRzL2dvMS4yMS42L2dsb2JhbC9iaW46L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL2dvcy9nbzEuMjEuNi9iaW46L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL3BrZ3NldHMvZ28xLjIxLjYvZ2xvYmFsL292ZXJsYXkvYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9iaW46L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL2JpbjovVXNlcnMvYWxleGFuZGVyLy5ndm0vcGtnc2V0cy9nbzEuMjEuNi9nbG9iYWwvYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9nb3MvZ28xLjIxLjYvYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9wa2dzZXRzL2dvMS4yMS42L2dsb2JhbC9vdmVybGF5L2JpbjovVXNlcnMvYWxleGFuZGVyLy5ndm0vYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9iaW46L1VzZXJzL2FsZXhhbmRlci9teWdvL2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL2JpbjovYmluOi91c3Ivc2Jpbjovc2JpbjovVXNlcnMvYWxleGFuZGVyLy5ndm0vZ29zL2dvMS4yMC9iaW46L3Vzci9sb2NhbC9vcHQvcnVieS9iaW46L1VzZXJzL2FsZXhhbmRlci9MaWJyYXJ5L3BucG06L1VzZXJzL2FsZXhhbmRlci8ueWFybi9iaW46L1VzZXJzL2FsZXhhbmRlci8uY29uZmlnL3lhcm4vZ2xvYmFsL25vZGVfbW9kdWxlcy8uYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9wa2dzZXRzL2dvMS4yMS42L2dsb2JhbC9iaW46L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL2dvcy9nbzEuMjEuNi9iaW46L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL3BrZ3NldHMvZ28xLjIxLjYvZ2xvYmFsL292ZXJsYXkvYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9iaW46L1VzZXJzL2FsZXhhbmRlci8ubnZtL3ZlcnNpb25zL25vZGUvdjE2LjEwLjAvYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmNhcmdvL2JpbjovdXNyL2xvY2FsL215c3FsL2JpbjovVXNlcnMvYWxleGFuZGVyLy5nZW0vcnVieS8zLjIuMC9iaW46L3Vzci9sb2NhbC9teXNxbC9iaW46L1VzZXJzL2FsZXhhbmRlci8uZ2VtL3J1YnkvMy4yLjAvYmluIixucG1fcGFja2FnZV9qc29uOiIvVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL29wZW5hcGktdWkvcGFja2FnZS5qc29uIixfX0NGQnVuZGxlSWRlbnRpZmllcjoiY29tLm1pY3Jvc29mdC5WU0NvZGUiLFVTRVJfWkRPVERJUjoiL1VzZXJzL2FsZXhhbmRlciIsbnBtX2NvbmZpZ19hdXRvX2luc3RhbGxfcGVlcnM6InRydWUiLG5wbV9jb25maWdfaW5pdF9tb2R1bGU6Ii9Vc2Vycy9hbGV4YW5kZXIvLm5wbS1pbml0LmpzIixucG1fY29uZmlnX3VzZXJjb25maWc6Ii9Vc2Vycy9hbGV4YW5kZXIvLm5wbXJjIixQV0Q6Ii9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aSIsR1ZNX1ZFUlNJT046IjEuMC4yMiIsbnBtX2NvbW1hbmQ6InJ1bi1zY3JpcHQiLEVESVRPUjoidmkiLG5wbV9saWZlY3ljbGVfZXZlbnQ6ImJ1aWxkOnBhY2thZ2UiLExBTkc6InpoX0NOLlVURi04IixucG1fcGFja2FnZV9uYW1lOiJvcGVuYXBpLXVpLWRpc3QiLGd2bV9wa2dzZXRfbmFtZToiZ2xvYmFsIixOT0RFX1BBVEg6Ii9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9ub2RlX21vZHVsZXMvLnBucG0vbm9kZV9tb2R1bGVzIixYUENfRkxBR1M6IjB4MCIsVlNDT0RFX0dJVF9BU0tQQVNTX0VYVFJBX0FSR1M6IiIsbnBtX3BhY2thZ2VfZW5naW5lc19ub2RlOiJeMTguMC4wIHx8ID49MjAuMC4wIixucG1fY29uZmlnX25vZGVfZ3lwOiIvVXNlcnMvYWxleGFuZGVyLy5udm0vdmVyc2lvbnMvbm9kZS92MTYuMTAuMC9saWIvbm9kZV9tb2R1bGVzL25wbS9ub2RlX21vZHVsZXMvbm9kZS1neXAvYmluL25vZGUtZ3lwLmpzIixYUENfU0VSVklDRV9OQU1FOiIwIixucG1fcGFja2FnZV92ZXJzaW9uOiIyLjAuMSIsVlNDT0RFX0lOSkVDVElPTjoiMSIsSE9NRToiL1VzZXJzL2FsZXhhbmRlciIsU0hMVkw6IjIiLFZTQ09ERV9HSVRfQVNLUEFTU19NQUlOOiIvQXBwbGljYXRpb25zL1Zpc3VhbCBTdHVkaW8gQ29kZS5hcHAvQ29udGVudHMvUmVzb3VyY2VzL2FwcC9leHRlbnNpb25zL2dpdC9kaXN0L2Fza3Bhc3MtbWFpbi5qcyIsR09ST09UOiIvVXNlcnMvYWxleGFuZGVyLy5ndm0vZ29zL2dvMS4yMS42IixEWUxEX0xJQlJBUllfUEFUSDoiL1VzZXJzL2FsZXhhbmRlci8uZ3ZtL3BrZ3NldHMvZ28xLjIxLjYvZ2xvYmFsL292ZXJsYXkvbGliOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9wa2dzZXRzL2dvMS4yMS42L2dsb2JhbC9vdmVybGF5L2xpYjovVXNlcnMvYWxleGFuZGVyLy5ndm0vcGtnc2V0cy9nbzEuMjEuNi9nbG9iYWwvb3ZlcmxheS9saWI6L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL3BrZ3NldHMvZ28xLjIxLjYvZ2xvYmFsL292ZXJsYXkvbGliOiIsZ3ZtX2dvX25hbWU6ImdvMS4yMS42IixMT0dOQU1FOiJhbGV4YW5kZXIiLExFU1M6Ii1SIixWU0NPREVfUEFUSF9QUkVGSVg6Ii9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9nb3MvZ28xLjIwL2JpbjoiLG5wbV9jb25maWdfY2FjaGU6Ii9Vc2Vycy9hbGV4YW5kZXIvLm5wbSIsR1ZNX09WRVJMQVlfUFJFRklYOiIvVXNlcnMvYWxleGFuZGVyLy5ndm0vcGtnc2V0cy9nbzEuMjEuNi9nbG9iYWwvb3ZlcmxheSIsbnBtX2xpZmVjeWNsZV9zY3JpcHQ6InRzYyAmJiB2aXRlIGJ1aWxkIC0tY29uZmlnIHZpdGUucGFja2FnZS5jb25maWcudHMgLS1tb2RlIHBhY2thZ2UiLExDX0NUWVBFOiJ6aF9DTi5VVEYtOCIsVlNDT0RFX0dJVF9JUENfSEFORExFOiIvdmFyL2ZvbGRlcnMvN2IvZjI4Z2g4NmQwODNfeHFqOXA5aHM5N2s4MDAwMGduL1QvdnNjb2RlLWdpdC03OWExOGYxMGYyLnNvY2siLE5WTV9CSU46Ii9Vc2Vycy9hbGV4YW5kZXIvLm52bS92ZXJzaW9ucy9ub2RlL3YxNi4xMC4wL2JpbiIsUEtHX0NPTkZJR19QQVRIOiIvVXNlcnMvYWxleGFuZGVyLy5ndm0vcGtnc2V0cy9nbzEuMjEuNi9nbG9iYWwvb3ZlcmxheS9saWIvcGtnY29uZmlnOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9wa2dzZXRzL2dvMS4yMS42L2dsb2JhbC9vdmVybGF5L2xpYi9wa2djb25maWc6L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL3BrZ3NldHMvZ28xLjIxLjYvZ2xvYmFsL292ZXJsYXkvbGliL3BrZ2NvbmZpZzovVXNlcnMvYWxleGFuZGVyLy5ndm0vcGtnc2V0cy9nbzEuMjEuNi9nbG9iYWwvb3ZlcmxheS9saWIvcGtnY29uZmlnOiIsR09QQVRIOiIvVXNlcnMvYWxleGFuZGVyL215Z28iLG5wbV9jb25maWdfdXNlcl9hZ2VudDoibnBtLzcuMjQuMCBub2RlL3YxNi4xMC4wIGRhcndpbiB4NjQgd29ya3NwYWNlcy9mYWxzZSIsR0lUX0FTS1BBU1M6Ii9BcHBsaWNhdGlvbnMvVmlzdWFsIFN0dWRpbyBDb2RlLmFwcC9Db250ZW50cy9SZXNvdXJjZXMvYXBwL2V4dGVuc2lvbnMvZ2l0L2Rpc3QvYXNrcGFzcy5zaCIsVlNDT0RFX0dJVF9BU0tQQVNTX05PREU6Ii9BcHBsaWNhdGlvbnMvVmlzdWFsIFN0dWRpbyBDb2RlLmFwcC9Db250ZW50cy9GcmFtZXdvcmtzL0NvZGUgSGVscGVyIChQbHVnaW4pLmFwcC9Db250ZW50cy9NYWNPUy9Db2RlIEhlbHBlciAoUGx1Z2luKSIsR1ZNX1BBVEhfQkFDS1VQOiIvVXNlcnMvYWxleGFuZGVyLy5ndm0vYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9wa2dzZXRzL2dvMS4yMS42L2dsb2JhbC9iaW46L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL2dvcy9nbzEuMjEuNi9iaW46L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL3BrZ3NldHMvZ28xLjIxLjYvZ2xvYmFsL292ZXJsYXkvYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9iaW46L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL2JpbjovVXNlcnMvYWxleGFuZGVyL215Z28vYmluOi91c3IvbG9jYWwvYmluOi91c3IvYmluOi9iaW46L3Vzci9zYmluOi9zYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9nb3MvZ28xLjIwL2JpbjovdXNyL2xvY2FsL29wdC9ydWJ5L2JpbjovVXNlcnMvYWxleGFuZGVyL0xpYnJhcnkvcG5wbTovVXNlcnMvYWxleGFuZGVyLy55YXJuL2JpbjovVXNlcnMvYWxleGFuZGVyLy5jb25maWcveWFybi9nbG9iYWwvbm9kZV9tb2R1bGVzLy5iaW46L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL3BrZ3NldHMvZ28xLjIxLjYvZ2xvYmFsL2JpbjovVXNlcnMvYWxleGFuZGVyLy5ndm0vZ29zL2dvMS4yMS42L2JpbjovVXNlcnMvYWxleGFuZGVyLy5ndm0vcGtnc2V0cy9nbzEuMjEuNi9nbG9iYWwvb3ZlcmxheS9iaW46L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL2JpbjovVXNlcnMvYWxleGFuZGVyLy5udm0vdmVyc2lvbnMvbm9kZS92MTYuMTAuMC9iaW46L1VzZXJzL2FsZXhhbmRlci8uY2FyZ28vYmluOi91c3IvbG9jYWwvbXlzcWwvYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmdlbS9ydWJ5LzMuMi4wL2JpbiIsQ09MT1JURVJNOiJ0cnVlY29sb3IiLG5wbV9jb25maWdfcHJlZml4OiIvVXNlcnMvYWxleGFuZGVyLy5udm0vdmVyc2lvbnMvbm9kZS92MTYuMTAuMCIsbnBtX25vZGVfZXhlY3BhdGg6Ii9Vc2Vycy9hbGV4YW5kZXIvLm52bS92ZXJzaW9ucy9ub2RlL3YxNi4xMC4wL2Jpbi9ub2RlIixOT0RFX0VOVjoicHJvZHVjdGlvbiJ9O2xldCBEZTtjb25zdCB5dD1nbG9iYWxUaGlzLnZzY29kZTtpZih0eXBlb2YgeXQ8InUiJiZ0eXBlb2YgeXQucHJvY2VzczwidSIpe2NvbnN0IGU9eXQucHJvY2VzcztEZT17Z2V0IHBsYXRmb3JtKCl7cmV0dXJuIGUucGxhdGZvcm19LGdldCBhcmNoKCl7cmV0dXJuIGUuYXJjaH0sZ2V0IGVudigpe3JldHVybiBlLmVudn0sY3dkKCl7cmV0dXJuIGUuY3dkKCl9fX1lbHNlIHR5cGVvZiBwcm9jZXNzPCJ1Ij9EZT17Z2V0IHBsYXRmb3JtKCl7cmV0dXJuIHByb2Nlc3MucGxhdGZvcm19LGdldCBhcmNoKCl7cmV0dXJuIHByb2Nlc3MuYXJjaH0sZ2V0IGVudigpe3JldHVybiB1bn0sY3dkKCl7cmV0dXJuIHVuLlZTQ09ERV9DV0R8fHByb2Nlc3MuY3dkKCl9fTpEZT17Z2V0IHBsYXRmb3JtKCl7cmV0dXJuIFdlPyJ3aW4zMiI6b3I/ImRhcndpbiI6ImxpbnV4In0sZ2V0IGFyY2goKXt9LGdldCBlbnYoKXtyZXR1cm57fX0sY3dkKCl7cmV0dXJuIi8ifX07Y29uc3QgbnQ9RGUuY3dkLGtyPURlLmVudixQcj1EZS5wbGF0Zm9ybSxEcj02NSxGcj05NyxUcj05MCxVcj0xMjIsZ2U9NDYsaj00NyxLPTkyLGJlPTU4LFZyPTYzO2NsYXNzIGNuIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IodCxuLHMpe2xldCByO3R5cGVvZiBuPT0ic3RyaW5nIiYmbi5pbmRleE9mKCJub3QgIik9PT0wPyhyPSJtdXN0IG5vdCBiZSIsbj1uLnJlcGxhY2UoL15ub3QgLywiIikpOnI9Im11c3QgYmUiO2NvbnN0IGk9dC5pbmRleE9mKCIuIikhPT0tMT8icHJvcGVydHkiOiJhcmd1bWVudCI7bGV0IGw9YFRoZSAiJHt0fSIgJHtpfSAke3J9IG9mIHR5cGUgJHtufWA7bCs9YC4gUmVjZWl2ZWQgdHlwZSAke3R5cGVvZiBzfWAsc3VwZXIobCksdGhpcy5jb2RlPSJFUlJfSU5WQUxJRF9BUkdfVFlQRSJ9fWZ1bmN0aW9uIEJyKGUsdCl7aWYoZT09PW51bGx8fHR5cGVvZiBlIT0ib2JqZWN0Iil0aHJvdyBuZXcgY24odCwiT2JqZWN0IixlKX1mdW5jdGlvbiAkKGUsdCl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBjbih0LCJzdHJpbmciLGUpfWNvbnN0IF9lPVByPT09IndpbjMyIjtmdW5jdGlvbiBQKGUpe3JldHVybiBlPT09anx8ZT09PUt9ZnVuY3Rpb24gUnQoZSl7cmV0dXJuIGU9PT1qfWZ1bmN0aW9uIHhlKGUpe3JldHVybiBlPj1EciYmZTw9VHJ8fGU+PUZyJiZlPD1Vcn1mdW5jdGlvbiBzdChlLHQsbixzKXtsZXQgcj0iIixpPTAsbD0tMSxvPTAsdT0wO2ZvcihsZXQgYz0wO2M8PWUubGVuZ3RoOysrYyl7aWYoYzxlLmxlbmd0aCl1PWUuY2hhckNvZGVBdChjKTtlbHNle2lmKHModSkpYnJlYWs7dT1qfWlmKHModSkpe2lmKCEobD09PWMtMXx8bz09PTEpKWlmKG89PT0yKXtpZihyLmxlbmd0aDwyfHxpIT09Mnx8ci5jaGFyQ29kZUF0KHIubGVuZ3RoLTEpIT09Z2V8fHIuY2hhckNvZGVBdChyLmxlbmd0aC0yKSE9PWdlKXtpZihyLmxlbmd0aD4yKXtjb25zdCBoPXIubGFzdEluZGV4T2Yobik7aD09PS0xPyhyPSIiLGk9MCk6KHI9ci5zbGljZSgwLGgpLGk9ci5sZW5ndGgtMS1yLmxhc3RJbmRleE9mKG4pKSxsPWMsbz0wO2NvbnRpbnVlfWVsc2UgaWYoci5sZW5ndGghPT0wKXtyPSIiLGk9MCxsPWMsbz0wO2NvbnRpbnVlfX10JiYocis9ci5sZW5ndGg+MD9gJHtufS4uYDoiLi4iLGk9Mil9ZWxzZSByLmxlbmd0aD4wP3IrPWAke259JHtlLnNsaWNlKGwrMSxjKX1gOnI9ZS5zbGljZShsKzEsYyksaT1jLWwtMTtsPWMsbz0wfWVsc2UgdT09PWdlJiZvIT09LTE/KytvOm89LTF9cmV0dXJuIHJ9ZnVuY3Rpb24gaG4oZSx0KXtCcih0LCJwYXRoT2JqZWN0Iik7Y29uc3Qgbj10LmRpcnx8dC5yb290LHM9dC5iYXNlfHxgJHt0Lm5hbWV8fCIifSR7dC5leHR8fCIifWA7cmV0dXJuIG4/bj09PXQucm9vdD9gJHtufSR7c31gOmAke259JHtlfSR7c31gOnN9Y29uc3QgWj17cmVzb2x2ZSguLi5lKXtsZXQgdD0iIixuPSIiLHM9ITE7Zm9yKGxldCByPWUubGVuZ3RoLTE7cj49LTE7ci0tKXtsZXQgaTtpZihyPj0wKXtpZihpPWVbcl0sJChpLCJwYXRoIiksaS5sZW5ndGg9PT0wKWNvbnRpbnVlfWVsc2UgdC5sZW5ndGg9PT0wP2k9bnQoKTooaT1rcltgPSR7dH1gXXx8bnQoKSwoaT09PXZvaWQgMHx8aS5zbGljZSgwLDIpLnRvTG93ZXJDYXNlKCkhPT10LnRvTG93ZXJDYXNlKCkmJmkuY2hhckNvZGVBdCgyKT09PUspJiYoaT1gJHt0fVxcYCkpO2NvbnN0IGw9aS5sZW5ndGg7bGV0IG89MCx1PSIiLGM9ITE7Y29uc3QgaD1pLmNoYXJDb2RlQXQoMCk7aWYobD09PTEpUChoKSYmKG89MSxjPSEwKTtlbHNlIGlmKFAoaCkpaWYoYz0hMCxQKGkuY2hhckNvZGVBdCgxKSkpe2xldCBmPTIsZD1mO2Zvcig7ZjxsJiYhUChpLmNoYXJDb2RlQXQoZikpOylmKys7aWYoZjxsJiZmIT09ZCl7Y29uc3QgbT1pLnNsaWNlKGQsZik7Zm9yKGQ9ZjtmPGwmJlAoaS5jaGFyQ29kZUF0KGYpKTspZisrO2lmKGY8bCYmZiE9PWQpe2ZvcihkPWY7ZjxsJiYhUChpLmNoYXJDb2RlQXQoZikpOylmKys7KGY9PT1sfHxmIT09ZCkmJih1PWBcXFxcJHttfVxcJHtpLnNsaWNlKGQsZil9YCxvPWYpfX19ZWxzZSBvPTE7ZWxzZSB4ZShoKSYmaS5jaGFyQ29kZUF0KDEpPT09YmUmJih1PWkuc2xpY2UoMCwyKSxvPTIsbD4yJiZQKGkuY2hhckNvZGVBdCgyKSkmJihjPSEwLG89MykpO2lmKHUubGVuZ3RoPjApaWYodC5sZW5ndGg+MCl7aWYodS50b0xvd2VyQ2FzZSgpIT09dC50b0xvd2VyQ2FzZSgpKWNvbnRpbnVlfWVsc2UgdD11O2lmKHMpe2lmKHQubGVuZ3RoPjApYnJlYWt9ZWxzZSBpZihuPWAke2kuc2xpY2Uobyl9XFwke259YCxzPWMsYyYmdC5sZW5ndGg+MClicmVha31yZXR1cm4gbj1zdChuLCFzLCJcXCIsUCkscz9gJHt0fVxcJHtufWA6YCR7dH0ke259YHx8Ii4ifSxub3JtYWxpemUoZSl7JChlLCJwYXRoIik7Y29uc3QgdD1lLmxlbmd0aDtpZih0PT09MClyZXR1cm4iLiI7bGV0IG49MCxzLHI9ITE7Y29uc3QgaT1lLmNoYXJDb2RlQXQoMCk7aWYodD09PTEpcmV0dXJuIFJ0KGkpPyJcXCI6ZTtpZihQKGkpKWlmKHI9ITAsUChlLmNoYXJDb2RlQXQoMSkpKXtsZXQgbz0yLHU9bztmb3IoO288dCYmIVAoZS5jaGFyQ29kZUF0KG8pKTspbysrO2lmKG88dCYmbyE9PXUpe2NvbnN0IGM9ZS5zbGljZSh1LG8pO2Zvcih1PW87bzx0JiZQKGUuY2hhckNvZGVBdChvKSk7KW8rKztpZihvPHQmJm8hPT11KXtmb3IodT1vO288dCYmIVAoZS5jaGFyQ29kZUF0KG8pKTspbysrO2lmKG89PT10KXJldHVybmBcXFxcJHtjfVxcJHtlLnNsaWNlKHUpfVxcYDtvIT09dSYmKHM9YFxcXFwke2N9XFwke2Uuc2xpY2UodSxvKX1gLG49byl9fX1lbHNlIG49MTtlbHNlIHhlKGkpJiZlLmNoYXJDb2RlQXQoMSk9PT1iZSYmKHM9ZS5zbGljZSgwLDIpLG49Mix0PjImJlAoZS5jaGFyQ29kZUF0KDIpKSYmKHI9ITAsbj0zKSk7bGV0IGw9bjx0P3N0KGUuc2xpY2UobiksIXIsIlxcIixQKToiIjtyZXR1cm4gbC5sZW5ndGg9PT0wJiYhciYmKGw9Ii4iKSxsLmxlbmd0aD4wJiZQKGUuY2hhckNvZGVBdCh0LTEpKSYmKGwrPSJcXCIpLHM9PT12b2lkIDA/cj9gXFwke2x9YDpsOnI/YCR7c31cXCR7bH1gOmAke3N9JHtsfWB9LGlzQWJzb2x1dGUoZSl7JChlLCJwYXRoIik7Y29uc3QgdD1lLmxlbmd0aDtpZih0PT09MClyZXR1cm4hMTtjb25zdCBuPWUuY2hhckNvZGVBdCgwKTtyZXR1cm4gUChuKXx8dD4yJiZ4ZShuKSYmZS5jaGFyQ29kZUF0KDEpPT09YmUmJlAoZS5jaGFyQ29kZUF0KDIpKX0sam9pbiguLi5lKXtpZihlLmxlbmd0aD09PTApcmV0dXJuIi4iO2xldCB0LG47Zm9yKGxldCBpPTA7aTxlLmxlbmd0aDsrK2kpe2NvbnN0IGw9ZVtpXTskKGwsInBhdGgiKSxsLmxlbmd0aD4wJiYodD09PXZvaWQgMD90PW49bDp0Kz1gXFwke2x9YCl9aWYodD09PXZvaWQgMClyZXR1cm4iLiI7bGV0IHM9ITAscj0wO2lmKHR5cGVvZiBuPT0ic3RyaW5nIiYmUChuLmNoYXJDb2RlQXQoMCkpKXsrK3I7Y29uc3QgaT1uLmxlbmd0aDtpPjEmJlAobi5jaGFyQ29kZUF0KDEpKSYmKCsrcixpPjImJihQKG4uY2hhckNvZGVBdCgyKSk/KytyOnM9ITEpKX1pZihzKXtmb3IoO3I8dC5sZW5ndGgmJlAodC5jaGFyQ29kZUF0KHIpKTspcisrO3I+PTImJih0PWBcXCR7dC5zbGljZShyKX1gKX1yZXR1cm4gWi5ub3JtYWxpemUodCl9LHJlbGF0aXZlKGUsdCl7aWYoJChlLCJmcm9tIiksJCh0LCJ0byIpLGU9PT10KXJldHVybiIiO2NvbnN0IG49Wi5yZXNvbHZlKGUpLHM9Wi5yZXNvbHZlKHQpO2lmKG49PT1zfHwoZT1uLnRvTG93ZXJDYXNlKCksdD1zLnRvTG93ZXJDYXNlKCksZT09PXQpKXJldHVybiIiO2xldCByPTA7Zm9yKDtyPGUubGVuZ3RoJiZlLmNoYXJDb2RlQXQocik9PT1LOylyKys7bGV0IGk9ZS5sZW5ndGg7Zm9yKDtpLTE+ciYmZS5jaGFyQ29kZUF0KGktMSk9PT1LOylpLS07Y29uc3QgbD1pLXI7bGV0IG89MDtmb3IoO288dC5sZW5ndGgmJnQuY2hhckNvZGVBdChvKT09PUs7KW8rKztsZXQgdT10Lmxlbmd0aDtmb3IoO3UtMT5vJiZ0LmNoYXJDb2RlQXQodS0xKT09PUs7KXUtLTtjb25zdCBjPXUtbyxoPWw8Yz9sOmM7bGV0IGY9LTEsZD0wO2Zvcig7ZDxoO2QrKyl7Y29uc3QgZz1lLmNoYXJDb2RlQXQocitkKTtpZihnIT09dC5jaGFyQ29kZUF0KG8rZCkpYnJlYWs7Zz09PUsmJihmPWQpfWlmKGQhPT1oKXtpZihmPT09LTEpcmV0dXJuIHN9ZWxzZXtpZihjPmgpe2lmKHQuY2hhckNvZGVBdChvK2QpPT09SylyZXR1cm4gcy5zbGljZShvK2QrMSk7aWYoZD09PTIpcmV0dXJuIHMuc2xpY2UobytkKX1sPmgmJihlLmNoYXJDb2RlQXQocitkKT09PUs/Zj1kOmQ9PT0yJiYoZj0zKSksZj09PS0xJiYoZj0wKX1sZXQgbT0iIjtmb3IoZD1yK2YrMTtkPD1pOysrZCkoZD09PWl8fGUuY2hhckNvZGVBdChkKT09PUspJiYobSs9bS5sZW5ndGg9PT0wPyIuLiI6IlxcLi4iKTtyZXR1cm4gbys9ZixtLmxlbmd0aD4wP2Ake219JHtzLnNsaWNlKG8sdSl9YDoocy5jaGFyQ29kZUF0KG8pPT09SyYmKytvLHMuc2xpY2Uobyx1KSl9LHRvTmFtZXNwYWNlZFBhdGgoZSl7aWYodHlwZW9mIGUhPSJzdHJpbmcifHxlLmxlbmd0aD09PTApcmV0dXJuIGU7Y29uc3QgdD1aLnJlc29sdmUoZSk7aWYodC5sZW5ndGg8PTIpcmV0dXJuIGU7aWYodC5jaGFyQ29kZUF0KDApPT09Syl7aWYodC5jaGFyQ29kZUF0KDEpPT09Syl7Y29uc3Qgbj10LmNoYXJDb2RlQXQoMik7aWYobiE9PVZyJiZuIT09Z2UpcmV0dXJuYFxcXFw/XFxVTkNcXCR7dC5zbGljZSgyKX1gfX1lbHNlIGlmKHhlKHQuY2hhckNvZGVBdCgwKSkmJnQuY2hhckNvZGVBdCgxKT09PWJlJiZ0LmNoYXJDb2RlQXQoMik9PT1LKXJldHVybmBcXFxcP1xcJHt0fWA7cmV0dXJuIGV9LGRpcm5hbWUoZSl7JChlLCJwYXRoIik7Y29uc3QgdD1lLmxlbmd0aDtpZih0PT09MClyZXR1cm4iLiI7bGV0IG49LTEscz0wO2NvbnN0IHI9ZS5jaGFyQ29kZUF0KDApO2lmKHQ9PT0xKXJldHVybiBQKHIpP2U6Ii4iO2lmKFAocikpe2lmKG49cz0xLFAoZS5jaGFyQ29kZUF0KDEpKSl7bGV0IG89Mix1PW87Zm9yKDtvPHQmJiFQKGUuY2hhckNvZGVBdChvKSk7KW8rKztpZihvPHQmJm8hPT11KXtmb3IodT1vO288dCYmUChlLmNoYXJDb2RlQXQobykpOylvKys7aWYobzx0JiZvIT09dSl7Zm9yKHU9bztvPHQmJiFQKGUuY2hhckNvZGVBdChvKSk7KW8rKztpZihvPT09dClyZXR1cm4gZTtvIT09dSYmKG49cz1vKzEpfX19fWVsc2UgeGUocikmJmUuY2hhckNvZGVBdCgxKT09PWJlJiYobj10PjImJlAoZS5jaGFyQ29kZUF0KDIpKT8zOjIscz1uKTtsZXQgaT0tMSxsPSEwO2ZvcihsZXQgbz10LTE7bz49czstLW8paWYoUChlLmNoYXJDb2RlQXQobykpKXtpZighbCl7aT1vO2JyZWFrfX1lbHNlIGw9ITE7aWYoaT09PS0xKXtpZihuPT09LTEpcmV0dXJuIi4iO2k9bn1yZXR1cm4gZS5zbGljZSgwLGkpfSxiYXNlbmFtZShlLHQpe3QhPT12b2lkIDAmJiQodCwiZXh0IiksJChlLCJwYXRoIik7bGV0IG49MCxzPS0xLHI9ITAsaTtpZihlLmxlbmd0aD49MiYmeGUoZS5jaGFyQ29kZUF0KDApKSYmZS5jaGFyQ29kZUF0KDEpPT09YmUmJihuPTIpLHQhPT12b2lkIDAmJnQubGVuZ3RoPjAmJnQubGVuZ3RoPD1lLmxlbmd0aCl7aWYodD09PWUpcmV0dXJuIiI7bGV0IGw9dC5sZW5ndGgtMSxvPS0xO2ZvcihpPWUubGVuZ3RoLTE7aT49bjstLWkpe2NvbnN0IHU9ZS5jaGFyQ29kZUF0KGkpO2lmKFAodSkpe2lmKCFyKXtuPWkrMTticmVha319ZWxzZSBvPT09LTEmJihyPSExLG89aSsxKSxsPj0wJiYodT09PXQuY2hhckNvZGVBdChsKT8tLWw9PT0tMSYmKHM9aSk6KGw9LTEscz1vKSl9cmV0dXJuIG49PT1zP3M9bzpzPT09LTEmJihzPWUubGVuZ3RoKSxlLnNsaWNlKG4scyl9Zm9yKGk9ZS5sZW5ndGgtMTtpPj1uOy0taSlpZihQKGUuY2hhckNvZGVBdChpKSkpe2lmKCFyKXtuPWkrMTticmVha319ZWxzZSBzPT09LTEmJihyPSExLHM9aSsxKTtyZXR1cm4gcz09PS0xPyIiOmUuc2xpY2UobixzKX0sZXh0bmFtZShlKXskKGUsInBhdGgiKTtsZXQgdD0wLG49LTEscz0wLHI9LTEsaT0hMCxsPTA7ZS5sZW5ndGg+PTImJmUuY2hhckNvZGVBdCgxKT09PWJlJiZ4ZShlLmNoYXJDb2RlQXQoMCkpJiYodD1zPTIpO2ZvcihsZXQgbz1lLmxlbmd0aC0xO28+PXQ7LS1vKXtjb25zdCB1PWUuY2hhckNvZGVBdChvKTtpZihQKHUpKXtpZighaSl7cz1vKzE7YnJlYWt9Y29udGludWV9cj09PS0xJiYoaT0hMSxyPW8rMSksdT09PWdlP249PT0tMT9uPW86bCE9PTEmJihsPTEpOm4hPT0tMSYmKGw9LTEpfXJldHVybiBuPT09LTF8fHI9PT0tMXx8bD09PTB8fGw9PT0xJiZuPT09ci0xJiZuPT09cysxPyIiOmUuc2xpY2UobixyKX0sZm9ybWF0OmhuLmJpbmQobnVsbCwiXFwiKSxwYXJzZShlKXskKGUsInBhdGgiKTtjb25zdCB0PXtyb290OiIiLGRpcjoiIixiYXNlOiIiLGV4dDoiIixuYW1lOiIifTtpZihlLmxlbmd0aD09PTApcmV0dXJuIHQ7Y29uc3Qgbj1lLmxlbmd0aDtsZXQgcz0wLHI9ZS5jaGFyQ29kZUF0KDApO2lmKG49PT0xKXJldHVybiBQKHIpPyh0LnJvb3Q9dC5kaXI9ZSx0KToodC5iYXNlPXQubmFtZT1lLHQpO2lmKFAocikpe2lmKHM9MSxQKGUuY2hhckNvZGVBdCgxKSkpe2xldCBmPTIsZD1mO2Zvcig7ZjxuJiYhUChlLmNoYXJDb2RlQXQoZikpOylmKys7aWYoZjxuJiZmIT09ZCl7Zm9yKGQ9ZjtmPG4mJlAoZS5jaGFyQ29kZUF0KGYpKTspZisrO2lmKGY8biYmZiE9PWQpe2ZvcihkPWY7ZjxuJiYhUChlLmNoYXJDb2RlQXQoZikpOylmKys7Zj09PW4/cz1mOmYhPT1kJiYocz1mKzEpfX19fWVsc2UgaWYoeGUocikmJmUuY2hhckNvZGVBdCgxKT09PWJlKXtpZihuPD0yKXJldHVybiB0LnJvb3Q9dC5kaXI9ZSx0O2lmKHM9MixQKGUuY2hhckNvZGVBdCgyKSkpe2lmKG49PT0zKXJldHVybiB0LnJvb3Q9dC5kaXI9ZSx0O3M9M319cz4wJiYodC5yb290PWUuc2xpY2UoMCxzKSk7bGV0IGk9LTEsbD1zLG89LTEsdT0hMCxjPWUubGVuZ3RoLTEsaD0wO2Zvcig7Yz49czstLWMpe2lmKHI9ZS5jaGFyQ29kZUF0KGMpLFAocikpe2lmKCF1KXtsPWMrMTticmVha31jb250aW51ZX1vPT09LTEmJih1PSExLG89YysxKSxyPT09Z2U/aT09PS0xP2k9YzpoIT09MSYmKGg9MSk6aSE9PS0xJiYoaD0tMSl9cmV0dXJuIG8hPT0tMSYmKGk9PT0tMXx8aD09PTB8fGg9PT0xJiZpPT09by0xJiZpPT09bCsxP3QuYmFzZT10Lm5hbWU9ZS5zbGljZShsLG8pOih0Lm5hbWU9ZS5zbGljZShsLGkpLHQuYmFzZT1lLnNsaWNlKGwsbyksdC5leHQ9ZS5zbGljZShpLG8pKSksbD4wJiZsIT09cz90LmRpcj1lLnNsaWNlKDAsbC0xKTp0LmRpcj10LnJvb3QsdH0sc2VwOiJcXCIsZGVsaW1pdGVyOiI7Iix3aW4zMjpudWxsLHBvc2l4Om51bGx9LElyPSgoKT0+e2lmKF9lKXtjb25zdCBlPS9cXC9nO3JldHVybigpPT57Y29uc3QgdD1udCgpLnJlcGxhY2UoZSwiLyIpO3JldHVybiB0LnNsaWNlKHQuaW5kZXhPZigiLyIpKX19cmV0dXJuKCk9Pm50KCl9KSgpLGVlPXtyZXNvbHZlKC4uLmUpe2xldCB0PSIiLG49ITE7Zm9yKGxldCBzPWUubGVuZ3RoLTE7cz49LTEmJiFuO3MtLSl7Y29uc3Qgcj1zPj0wP2Vbc106SXIoKTskKHIsInBhdGgiKSxyLmxlbmd0aCE9PTAmJih0PWAke3J9LyR7dH1gLG49ci5jaGFyQ29kZUF0KDApPT09ail9cmV0dXJuIHQ9c3QodCwhbiwiLyIsUnQpLG4/YC8ke3R9YDp0Lmxlbmd0aD4wP3Q6Ii4ifSxub3JtYWxpemUoZSl7aWYoJChlLCJwYXRoIiksZS5sZW5ndGg9PT0wKXJldHVybiIuIjtjb25zdCB0PWUuY2hhckNvZGVBdCgwKT09PWosbj1lLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSk9PT1qO3JldHVybiBlPXN0KGUsIXQsIi8iLFJ0KSxlLmxlbmd0aD09PTA/dD8iLyI6bj8iLi8iOiIuIjoobiYmKGUrPSIvIiksdD9gLyR7ZX1gOmUpfSxpc0Fic29sdXRlKGUpe3JldHVybiAkKGUsInBhdGgiKSxlLmxlbmd0aD4wJiZlLmNoYXJDb2RlQXQoMCk9PT1qfSxqb2luKC4uLmUpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4iLiI7bGV0IHQ7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDsrK24pe2NvbnN0IHM9ZVtuXTskKHMsInBhdGgiKSxzLmxlbmd0aD4wJiYodD09PXZvaWQgMD90PXM6dCs9YC8ke3N9YCl9cmV0dXJuIHQ9PT12b2lkIDA/Ii4iOmVlLm5vcm1hbGl6ZSh0KX0scmVsYXRpdmUoZSx0KXtpZigkKGUsImZyb20iKSwkKHQsInRvIiksZT09PXR8fChlPWVlLnJlc29sdmUoZSksdD1lZS5yZXNvbHZlKHQpLGU9PT10KSlyZXR1cm4iIjtjb25zdCBuPTEscz1lLmxlbmd0aCxyPXMtbixpPTEsbD10Lmxlbmd0aC1pLG89cjxsP3I6bDtsZXQgdT0tMSxjPTA7Zm9yKDtjPG87YysrKXtjb25zdCBmPWUuY2hhckNvZGVBdChuK2MpO2lmKGYhPT10LmNoYXJDb2RlQXQoaStjKSlicmVhaztmPT09aiYmKHU9Yyl9aWYoYz09PW8paWYobD5vKXtpZih0LmNoYXJDb2RlQXQoaStjKT09PWopcmV0dXJuIHQuc2xpY2UoaStjKzEpO2lmKGM9PT0wKXJldHVybiB0LnNsaWNlKGkrYyl9ZWxzZSByPm8mJihlLmNoYXJDb2RlQXQobitjKT09PWo/dT1jOmM9PT0wJiYodT0wKSk7bGV0IGg9IiI7Zm9yKGM9bit1KzE7Yzw9czsrK2MpKGM9PT1zfHxlLmNoYXJDb2RlQXQoYyk9PT1qKSYmKGgrPWgubGVuZ3RoPT09MD8iLi4iOiIvLi4iKTtyZXR1cm5gJHtofSR7dC5zbGljZShpK3UpfWB9LHRvTmFtZXNwYWNlZFBhdGgoZSl7cmV0dXJuIGV9LGRpcm5hbWUoZSl7aWYoJChlLCJwYXRoIiksZS5sZW5ndGg9PT0wKXJldHVybiIuIjtjb25zdCB0PWUuY2hhckNvZGVBdCgwKT09PWo7bGV0IG49LTEscz0hMDtmb3IobGV0IHI9ZS5sZW5ndGgtMTtyPj0xOy0tcilpZihlLmNoYXJDb2RlQXQocik9PT1qKXtpZighcyl7bj1yO2JyZWFrfX1lbHNlIHM9ITE7cmV0dXJuIG49PT0tMT90PyIvIjoiLiI6dCYmbj09PTE/Ii8vIjplLnNsaWNlKDAsbil9LGJhc2VuYW1lKGUsdCl7dCE9PXZvaWQgMCYmJCh0LCJleHQiKSwkKGUsInBhdGgiKTtsZXQgbj0wLHM9LTEscj0hMCxpO2lmKHQhPT12b2lkIDAmJnQubGVuZ3RoPjAmJnQubGVuZ3RoPD1lLmxlbmd0aCl7aWYodD09PWUpcmV0dXJuIiI7bGV0IGw9dC5sZW5ndGgtMSxvPS0xO2ZvcihpPWUubGVuZ3RoLTE7aT49MDstLWkpe2NvbnN0IHU9ZS5jaGFyQ29kZUF0KGkpO2lmKHU9PT1qKXtpZighcil7bj1pKzE7YnJlYWt9fWVsc2Ugbz09PS0xJiYocj0hMSxvPWkrMSksbD49MCYmKHU9PT10LmNoYXJDb2RlQXQobCk/LS1sPT09LTEmJihzPWkpOihsPS0xLHM9bykpfXJldHVybiBuPT09cz9zPW86cz09PS0xJiYocz1lLmxlbmd0aCksZS5zbGljZShuLHMpfWZvcihpPWUubGVuZ3RoLTE7aT49MDstLWkpaWYoZS5jaGFyQ29kZUF0KGkpPT09ail7aWYoIXIpe249aSsxO2JyZWFrfX1lbHNlIHM9PT0tMSYmKHI9ITEscz1pKzEpO3JldHVybiBzPT09LTE/IiI6ZS5zbGljZShuLHMpfSxleHRuYW1lKGUpeyQoZSwicGF0aCIpO2xldCB0PS0xLG49MCxzPS0xLHI9ITAsaT0wO2ZvcihsZXQgbD1lLmxlbmd0aC0xO2w+PTA7LS1sKXtjb25zdCBvPWUuY2hhckNvZGVBdChsKTtpZihvPT09ail7aWYoIXIpe249bCsxO2JyZWFrfWNvbnRpbnVlfXM9PT0tMSYmKHI9ITEscz1sKzEpLG89PT1nZT90PT09LTE/dD1sOmkhPT0xJiYoaT0xKTp0IT09LTEmJihpPS0xKX1yZXR1cm4gdD09PS0xfHxzPT09LTF8fGk9PT0wfHxpPT09MSYmdD09PXMtMSYmdD09PW4rMT8iIjplLnNsaWNlKHQscyl9LGZvcm1hdDpobi5iaW5kKG51bGwsIi8iKSxwYXJzZShlKXskKGUsInBhdGgiKTtjb25zdCB0PXtyb290OiIiLGRpcjoiIixiYXNlOiIiLGV4dDoiIixuYW1lOiIifTtpZihlLmxlbmd0aD09PTApcmV0dXJuIHQ7Y29uc3Qgbj1lLmNoYXJDb2RlQXQoMCk9PT1qO2xldCBzO24/KHQucm9vdD0iLyIscz0xKTpzPTA7bGV0IHI9LTEsaT0wLGw9LTEsbz0hMCx1PWUubGVuZ3RoLTEsYz0wO2Zvcig7dT49czstLXUpe2NvbnN0IGg9ZS5jaGFyQ29kZUF0KHUpO2lmKGg9PT1qKXtpZighbyl7aT11KzE7YnJlYWt9Y29udGludWV9bD09PS0xJiYobz0hMSxsPXUrMSksaD09PWdlP3I9PT0tMT9yPXU6YyE9PTEmJihjPTEpOnIhPT0tMSYmKGM9LTEpfWlmKGwhPT0tMSl7Y29uc3QgaD1pPT09MCYmbj8xOmk7cj09PS0xfHxjPT09MHx8Yz09PTEmJnI9PT1sLTEmJnI9PT1pKzE/dC5iYXNlPXQubmFtZT1lLnNsaWNlKGgsbCk6KHQubmFtZT1lLnNsaWNlKGgsciksdC5iYXNlPWUuc2xpY2UoaCxsKSx0LmV4dD1lLnNsaWNlKHIsbCkpfXJldHVybiBpPjA/dC5kaXI9ZS5zbGljZSgwLGktMSk6biYmKHQuZGlyPSIvIiksdH0sc2VwOiIvIixkZWxpbWl0ZXI6IjoiLHdpbjMyOm51bGwscG9zaXg6bnVsbH07ZWUud2luMzI9Wi53aW4zMj1aLGVlLnBvc2l4PVoucG9zaXg9ZWUsX2U/Wi5ub3JtYWxpemU6ZWUubm9ybWFsaXplLF9lP1oucmVzb2x2ZTplZS5yZXNvbHZlLF9lP1oucmVsYXRpdmU6ZWUucmVsYXRpdmUsX2U/Wi5kaXJuYW1lOmVlLmRpcm5hbWUsX2U/Wi5iYXNlbmFtZTplZS5iYXNlbmFtZSxfZT9aLmV4dG5hbWU6ZWUuZXh0bmFtZSxfZT9aLnNlcDplZS5zZXA7Y29uc3QgcXI9L15cd1tcd1xkKy4tXSokLyxIcj0vXlwvLyxXcj0vXlwvXC8vO2Z1bmN0aW9uIHpyKGUsdCl7aWYoIWUuc2NoZW1lJiZ0KXRocm93IG5ldyBFcnJvcihgW1VyaUVycm9yXTogU2NoZW1lIGlzIG1pc3Npbmc6IHtzY2hlbWU6ICIiLCBhdXRob3JpdHk6ICIke2UuYXV0aG9yaXR5fSIsIHBhdGg6ICIke2UucGF0aH0iLCBxdWVyeTogIiR7ZS5xdWVyeX0iLCBmcmFnbWVudDogIiR7ZS5mcmFnbWVudH0ifWApO2lmKGUuc2NoZW1lJiYhcXIudGVzdChlLnNjaGVtZSkpdGhyb3cgbmV3IEVycm9yKCJbVXJpRXJyb3JdOiBTY2hlbWUgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzLiIpO2lmKGUucGF0aCl7aWYoZS5hdXRob3JpdHkpe2lmKCFIci50ZXN0KGUucGF0aCkpdGhyb3cgbmV3IEVycm9yKCdbVXJpRXJyb3JdOiBJZiBhIFVSSSBjb250YWlucyBhbiBhdXRob3JpdHkgY29tcG9uZW50LCB0aGVuIHRoZSBwYXRoIGNvbXBvbmVudCBtdXN0IGVpdGhlciBiZSBlbXB0eSBvciBiZWdpbiB3aXRoIGEgc2xhc2ggKCIvIikgY2hhcmFjdGVyJyl9ZWxzZSBpZihXci50ZXN0KGUucGF0aCkpdGhyb3cgbmV3IEVycm9yKCdbVXJpRXJyb3JdOiBJZiBhIFVSSSBkb2VzIG5vdCBjb250YWluIGFuIGF1dGhvcml0eSBjb21wb25lbnQsIHRoZW4gdGhlIHBhdGggY2Fubm90IGJlZ2luIHdpdGggdHdvIHNsYXNoIGNoYXJhY3RlcnMgKCIvLyIpJyl9fWZ1bmN0aW9uICRyKGUsdCl7cmV0dXJuIWUmJiF0PyJmaWxlIjplfWZ1bmN0aW9uIE9yKGUsdCl7c3dpdGNoKGUpe2Nhc2UiaHR0cHMiOmNhc2UiaHR0cCI6Y2FzZSJmaWxlIjp0P3RbMF0hPT1hZSYmKHQ9YWUrdCk6dD1hZTticmVha31yZXR1cm4gdH1jb25zdCBXPSIiLGFlPSIvIixHcj0vXigoW146Lz8jXSs/KTopPyhcL1wvKFteLz8jXSopKT8oW14/I10qKShcPyhbXiNdKikpPygjKC4qKSk/LztjbGFzcyB3ZXtzdGF0aWMgaXNVcmkodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB3ZT8hMDp0P3R5cGVvZiB0LmF1dGhvcml0eT09InN0cmluZyImJnR5cGVvZiB0LmZyYWdtZW50PT0ic3RyaW5nIiYmdHlwZW9mIHQucGF0aD09InN0cmluZyImJnR5cGVvZiB0LnF1ZXJ5PT0ic3RyaW5nIiYmdHlwZW9mIHQuc2NoZW1lPT0ic3RyaW5nIiYmdHlwZW9mIHQuZnNQYXRoPT0ic3RyaW5nIiYmdHlwZW9mIHQud2l0aD09ImZ1bmN0aW9uIiYmdHlwZW9mIHQudG9TdHJpbmc9PSJmdW5jdGlvbiI6ITF9Y29uc3RydWN0b3IodCxuLHMscixpLGw9ITEpe3R5cGVvZiB0PT0ib2JqZWN0Ij8odGhpcy5zY2hlbWU9dC5zY2hlbWV8fFcsdGhpcy5hdXRob3JpdHk9dC5hdXRob3JpdHl8fFcsdGhpcy5wYXRoPXQucGF0aHx8Vyx0aGlzLnF1ZXJ5PXQucXVlcnl8fFcsdGhpcy5mcmFnbWVudD10LmZyYWdtZW50fHxXKToodGhpcy5zY2hlbWU9JHIodCxsKSx0aGlzLmF1dGhvcml0eT1ufHxXLHRoaXMucGF0aD1Pcih0aGlzLnNjaGVtZSxzfHxXKSx0aGlzLnF1ZXJ5PXJ8fFcsdGhpcy5mcmFnbWVudD1pfHxXLHpyKHRoaXMsbCkpfWdldCBmc1BhdGgoKXtyZXR1cm4gRXQodGhpcywhMSl9d2l0aCh0KXtpZighdClyZXR1cm4gdGhpcztsZXR7c2NoZW1lOm4sYXV0aG9yaXR5OnMscGF0aDpyLHF1ZXJ5OmksZnJhZ21lbnQ6bH09dDtyZXR1cm4gbj09PXZvaWQgMD9uPXRoaXMuc2NoZW1lOm49PT1udWxsJiYobj1XKSxzPT09dm9pZCAwP3M9dGhpcy5hdXRob3JpdHk6cz09PW51bGwmJihzPVcpLHI9PT12b2lkIDA/cj10aGlzLnBhdGg6cj09PW51bGwmJihyPVcpLGk9PT12b2lkIDA/aT10aGlzLnF1ZXJ5Omk9PT1udWxsJiYoaT1XKSxsPT09dm9pZCAwP2w9dGhpcy5mcmFnbWVudDpsPT09bnVsbCYmKGw9Vyksbj09PXRoaXMuc2NoZW1lJiZzPT09dGhpcy5hdXRob3JpdHkmJnI9PT10aGlzLnBhdGgmJmk9PT10aGlzLnF1ZXJ5JiZsPT09dGhpcy5mcmFnbWVudD90aGlzOm5ldyBGZShuLHMscixpLGwpfXN0YXRpYyBwYXJzZSh0LG49ITEpe2NvbnN0IHM9R3IuZXhlYyh0KTtyZXR1cm4gcz9uZXcgRmUoc1syXXx8VyxydChzWzRdfHxXKSxydChzWzVdfHxXKSxydChzWzddfHxXKSxydChzWzldfHxXKSxuKTpuZXcgRmUoVyxXLFcsVyxXKX1zdGF0aWMgZmlsZSh0KXtsZXQgbj1XO2lmKFdlJiYodD10LnJlcGxhY2UoL1xcL2csYWUpKSx0WzBdPT09YWUmJnRbMV09PT1hZSl7Y29uc3Qgcz10LmluZGV4T2YoYWUsMik7cz09PS0xPyhuPXQuc3Vic3RyaW5nKDIpLHQ9YWUpOihuPXQuc3Vic3RyaW5nKDIscyksdD10LnN1YnN0cmluZyhzKXx8YWUpfXJldHVybiBuZXcgRmUoImZpbGUiLG4sdCxXLFcpfXN0YXRpYyBmcm9tKHQsbil7cmV0dXJuIG5ldyBGZSh0LnNjaGVtZSx0LmF1dGhvcml0eSx0LnBhdGgsdC5xdWVyeSx0LmZyYWdtZW50LG4pfXN0YXRpYyBqb2luUGF0aCh0LC4uLm4pe2lmKCF0LnBhdGgpdGhyb3cgbmV3IEVycm9yKCJbVXJpRXJyb3JdOiBjYW5ub3QgY2FsbCBqb2luUGF0aCBvbiBVUkkgd2l0aG91dCBwYXRoIik7bGV0IHM7cmV0dXJuIFdlJiZ0LnNjaGVtZT09PSJmaWxlIj9zPXdlLmZpbGUoWi5qb2luKEV0KHQsITApLC4uLm4pKS5wYXRoOnM9ZWUuam9pbih0LnBhdGgsLi4ubiksdC53aXRoKHtwYXRoOnN9KX10b1N0cmluZyh0PSExKXtyZXR1cm4gTXQodGhpcyx0KX10b0pTT04oKXtyZXR1cm4gdGhpc31zdGF0aWMgcmV2aXZlKHQpe3ZhciBuLHM7aWYodCl7aWYodCBpbnN0YW5jZW9mIHdlKXJldHVybiB0O3tjb25zdCByPW5ldyBGZSh0KTtyZXR1cm4gci5fZm9ybWF0dGVkPShuPXQuZXh0ZXJuYWwpIT09bnVsbCYmbiE9PXZvaWQgMD9uOm51bGwsci5fZnNQYXRoPXQuX3NlcD09PWZuJiYocz10LmZzUGF0aCkhPT1udWxsJiZzIT09dm9pZCAwP3M6bnVsbCxyfX1lbHNlIHJldHVybiB0fX1jb25zdCBmbj1XZT8xOnZvaWQgMDtjbGFzcyBGZSBleHRlbmRzIHdle2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9mb3JtYXR0ZWQ9bnVsbCx0aGlzLl9mc1BhdGg9bnVsbH1nZXQgZnNQYXRoKCl7cmV0dXJuIHRoaXMuX2ZzUGF0aHx8KHRoaXMuX2ZzUGF0aD1FdCh0aGlzLCExKSksdGhpcy5fZnNQYXRofXRvU3RyaW5nKHQ9ITEpe3JldHVybiB0P010KHRoaXMsITApOih0aGlzLl9mb3JtYXR0ZWR8fCh0aGlzLl9mb3JtYXR0ZWQ9TXQodGhpcywhMSkpLHRoaXMuX2Zvcm1hdHRlZCl9dG9KU09OKCl7Y29uc3QgdD17JG1pZDoxfTtyZXR1cm4gdGhpcy5fZnNQYXRoJiYodC5mc1BhdGg9dGhpcy5fZnNQYXRoLHQuX3NlcD1mbiksdGhpcy5fZm9ybWF0dGVkJiYodC5leHRlcm5hbD10aGlzLl9mb3JtYXR0ZWQpLHRoaXMucGF0aCYmKHQucGF0aD10aGlzLnBhdGgpLHRoaXMuc2NoZW1lJiYodC5zY2hlbWU9dGhpcy5zY2hlbWUpLHRoaXMuYXV0aG9yaXR5JiYodC5hdXRob3JpdHk9dGhpcy5hdXRob3JpdHkpLHRoaXMucXVlcnkmJih0LnF1ZXJ5PXRoaXMucXVlcnkpLHRoaXMuZnJhZ21lbnQmJih0LmZyYWdtZW50PXRoaXMuZnJhZ21lbnQpLHR9fWNvbnN0IGRuPXs1ODoiJTNBIiw0NzoiJTJGIiw2MzoiJTNGIiwzNToiJTIzIiw5MToiJTVCIiw5MzoiJTVEIiw2NDoiJTQwIiwzMzoiJTIxIiwzNjoiJTI0IiwzODoiJTI2IiwzOToiJTI3Iiw0MDoiJTI4Iiw0MToiJTI5Iiw0MjoiJTJBIiw0MzoiJTJCIiw0NDoiJTJDIiw1OToiJTNCIiw2MToiJTNEIiwzMjoiJTIwIn07ZnVuY3Rpb24gbW4oZSx0LG4pe2xldCBzLHI9LTE7Zm9yKGxldCBpPTA7aTxlLmxlbmd0aDtpKyspe2NvbnN0IGw9ZS5jaGFyQ29kZUF0KGkpO2lmKGw+PTk3JiZsPD0xMjJ8fGw+PTY1JiZsPD05MHx8bD49NDgmJmw8PTU3fHxsPT09NDV8fGw9PT00Nnx8bD09PTk1fHxsPT09MTI2fHx0JiZsPT09NDd8fG4mJmw9PT05MXx8biYmbD09PTkzfHxuJiZsPT09NTgpciE9PS0xJiYocys9ZW5jb2RlVVJJQ29tcG9uZW50KGUuc3Vic3RyaW5nKHIsaSkpLHI9LTEpLHMhPT12b2lkIDAmJihzKz1lLmNoYXJBdChpKSk7ZWxzZXtzPT09dm9pZCAwJiYocz1lLnN1YnN0cigwLGkpKTtjb25zdCBvPWRuW2xdO28hPT12b2lkIDA/KHIhPT0tMSYmKHMrPWVuY29kZVVSSUNvbXBvbmVudChlLnN1YnN0cmluZyhyLGkpKSxyPS0xKSxzKz1vKTpyPT09LTEmJihyPWkpfX1yZXR1cm4gciE9PS0xJiYocys9ZW5jb2RlVVJJQ29tcG9uZW50KGUuc3Vic3RyaW5nKHIpKSkscyE9PXZvaWQgMD9zOmV9ZnVuY3Rpb24ganIoZSl7bGV0IHQ7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspe2NvbnN0IHM9ZS5jaGFyQ29kZUF0KG4pO3M9PT0zNXx8cz09PTYzPyh0PT09dm9pZCAwJiYodD1lLnN1YnN0cigwLG4pKSx0Kz1kbltzXSk6dCE9PXZvaWQgMCYmKHQrPWVbbl0pfXJldHVybiB0IT09dm9pZCAwP3Q6ZX1mdW5jdGlvbiBFdChlLHQpe2xldCBuO3JldHVybiBlLmF1dGhvcml0eSYmZS5wYXRoLmxlbmd0aD4xJiZlLnNjaGVtZT09PSJmaWxlIj9uPWAvLyR7ZS5hdXRob3JpdHl9JHtlLnBhdGh9YDplLnBhdGguY2hhckNvZGVBdCgwKT09PTQ3JiYoZS5wYXRoLmNoYXJDb2RlQXQoMSk+PTY1JiZlLnBhdGguY2hhckNvZGVBdCgxKTw9OTB8fGUucGF0aC5jaGFyQ29kZUF0KDEpPj05NyYmZS5wYXRoLmNoYXJDb2RlQXQoMSk8PTEyMikmJmUucGF0aC5jaGFyQ29kZUF0KDIpPT09NTg/dD9uPWUucGF0aC5zdWJzdHIoMSk6bj1lLnBhdGhbMV0udG9Mb3dlckNhc2UoKStlLnBhdGguc3Vic3RyKDIpOm49ZS5wYXRoLFdlJiYobj1uLnJlcGxhY2UoL1wvL2csIlxcIikpLG59ZnVuY3Rpb24gTXQoZSx0KXtjb25zdCBuPXQ/anI6bW47bGV0IHM9IiIse3NjaGVtZTpyLGF1dGhvcml0eTppLHBhdGg6bCxxdWVyeTpvLGZyYWdtZW50OnV9PWU7aWYociYmKHMrPXIscys9IjoiKSwoaXx8cj09PSJmaWxlIikmJihzKz1hZSxzKz1hZSksaSl7bGV0IGM9aS5pbmRleE9mKCJAIik7aWYoYyE9PS0xKXtjb25zdCBoPWkuc3Vic3RyKDAsYyk7aT1pLnN1YnN0cihjKzEpLGM9aC5sYXN0SW5kZXhPZigiOiIpLGM9PT0tMT9zKz1uKGgsITEsITEpOihzKz1uKGguc3Vic3RyKDAsYyksITEsITEpLHMrPSI6IixzKz1uKGguc3Vic3RyKGMrMSksITEsITApKSxzKz0iQCJ9aT1pLnRvTG93ZXJDYXNlKCksYz1pLmxhc3RJbmRleE9mKCI6IiksYz09PS0xP3MrPW4oaSwhMSwhMCk6KHMrPW4oaS5zdWJzdHIoMCxjKSwhMSwhMCkscys9aS5zdWJzdHIoYykpfWlmKGwpe2lmKGwubGVuZ3RoPj0zJiZsLmNoYXJDb2RlQXQoMCk9PT00NyYmbC5jaGFyQ29kZUF0KDIpPT09NTgpe2NvbnN0IGM9bC5jaGFyQ29kZUF0KDEpO2M+PTY1JiZjPD05MCYmKGw9YC8ke1N0cmluZy5mcm9tQ2hhckNvZGUoYyszMil9OiR7bC5zdWJzdHIoMyl9YCl9ZWxzZSBpZihsLmxlbmd0aD49MiYmbC5jaGFyQ29kZUF0KDEpPT09NTgpe2NvbnN0IGM9bC5jaGFyQ29kZUF0KDApO2M+PTY1JiZjPD05MCYmKGw9YCR7U3RyaW5nLmZyb21DaGFyQ29kZShjKzMyKX06JHtsLnN1YnN0cigyKX1gKX1zKz1uKGwsITAsITEpfXJldHVybiBvJiYocys9Ij8iLHMrPW4obywhMSwhMSkpLHUmJihzKz0iIyIscys9dD91Om1uKHUsITEsITEpKSxzfWZ1bmN0aW9uIGduKGUpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGUpfWNhdGNoe3JldHVybiBlLmxlbmd0aD4zP2Uuc3Vic3RyKDAsMykrZ24oZS5zdWJzdHIoMykpOmV9fWNvbnN0IGJuPS8oJVswLTlBLVphLXpdWzAtOUEtWmEtel0pKy9nO2Z1bmN0aW9uIHJ0KGUpe3JldHVybiBlLm1hdGNoKGJuKT9lLnJlcGxhY2UoYm4sdD0+Z24odCkpOmV9Y2xhc3MgWXtjb25zdHJ1Y3Rvcih0LG4pe3RoaXMubGluZU51bWJlcj10LHRoaXMuY29sdW1uPW59d2l0aCh0PXRoaXMubGluZU51bWJlcixuPXRoaXMuY29sdW1uKXtyZXR1cm4gdD09PXRoaXMubGluZU51bWJlciYmbj09PXRoaXMuY29sdW1uP3RoaXM6bmV3IFkodCxuKX1kZWx0YSh0PTAsbj0wKXtyZXR1cm4gdGhpcy53aXRoKHRoaXMubGluZU51bWJlcit0LHRoaXMuY29sdW1uK24pfWVxdWFscyh0KXtyZXR1cm4gWS5lcXVhbHModGhpcyx0KX1zdGF0aWMgZXF1YWxzKHQsbil7cmV0dXJuIXQmJiFuPyEwOiEhdCYmISFuJiZ0LmxpbmVOdW1iZXI9PT1uLmxpbmVOdW1iZXImJnQuY29sdW1uPT09bi5jb2x1bW59aXNCZWZvcmUodCl7cmV0dXJuIFkuaXNCZWZvcmUodGhpcyx0KX1zdGF0aWMgaXNCZWZvcmUodCxuKXtyZXR1cm4gdC5saW5lTnVtYmVyPG4ubGluZU51bWJlcj8hMDpuLmxpbmVOdW1iZXI8dC5saW5lTnVtYmVyPyExOnQuY29sdW1uPG4uY29sdW1ufWlzQmVmb3JlT3JFcXVhbCh0KXtyZXR1cm4gWS5pc0JlZm9yZU9yRXF1YWwodGhpcyx0KX1zdGF0aWMgaXNCZWZvcmVPckVxdWFsKHQsbil7cmV0dXJuIHQubGluZU51bWJlcjxuLmxpbmVOdW1iZXI/ITA6bi5saW5lTnVtYmVyPHQubGluZU51bWJlcj8hMTp0LmNvbHVtbjw9bi5jb2x1bW59c3RhdGljIGNvbXBhcmUodCxuKXtjb25zdCBzPXQubGluZU51bWJlcnwwLHI9bi5saW5lTnVtYmVyfDA7aWYocz09PXIpe2NvbnN0IGk9dC5jb2x1bW58MCxsPW4uY29sdW1ufDA7cmV0dXJuIGktbH1yZXR1cm4gcy1yfWNsb25lKCl7cmV0dXJuIG5ldyBZKHRoaXMubGluZU51bWJlcix0aGlzLmNvbHVtbil9dG9TdHJpbmcoKXtyZXR1cm4iKCIrdGhpcy5saW5lTnVtYmVyKyIsIit0aGlzLmNvbHVtbisiKSJ9c3RhdGljIGxpZnQodCl7cmV0dXJuIG5ldyBZKHQubGluZU51bWJlcix0LmNvbHVtbil9c3RhdGljIGlzSVBvc2l0aW9uKHQpe3JldHVybiB0JiZ0eXBlb2YgdC5saW5lTnVtYmVyPT0ibnVtYmVyIiYmdHlwZW9mIHQuY29sdW1uPT0ibnVtYmVyIn10b0pTT04oKXtyZXR1cm57bGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uOnRoaXMuY29sdW1ufX19Y2xhc3MgRHtjb25zdHJ1Y3Rvcih0LG4scyxyKXt0PnN8fHQ9PT1zJiZuPnI/KHRoaXMuc3RhcnRMaW5lTnVtYmVyPXMsdGhpcy5zdGFydENvbHVtbj1yLHRoaXMuZW5kTGluZU51bWJlcj10LHRoaXMuZW5kQ29sdW1uPW4pOih0aGlzLnN0YXJ0TGluZU51bWJlcj10LHRoaXMuc3RhcnRDb2x1bW49bix0aGlzLmVuZExpbmVOdW1iZXI9cyx0aGlzLmVuZENvbHVtbj1yKX1pc0VtcHR5KCl7cmV0dXJuIEQuaXNFbXB0eSh0aGlzKX1zdGF0aWMgaXNFbXB0eSh0KXtyZXR1cm4gdC5zdGFydExpbmVOdW1iZXI9PT10LmVuZExpbmVOdW1iZXImJnQuc3RhcnRDb2x1bW49PT10LmVuZENvbHVtbn1jb250YWluc1Bvc2l0aW9uKHQpe3JldHVybiBELmNvbnRhaW5zUG9zaXRpb24odGhpcyx0KX1zdGF0aWMgY29udGFpbnNQb3NpdGlvbih0LG4pe3JldHVybiEobi5saW5lTnVtYmVyPHQuc3RhcnRMaW5lTnVtYmVyfHxuLmxpbmVOdW1iZXI+dC5lbmRMaW5lTnVtYmVyfHxuLmxpbmVOdW1iZXI9PT10LnN0YXJ0TGluZU51bWJlciYmbi5jb2x1bW48dC5zdGFydENvbHVtbnx8bi5saW5lTnVtYmVyPT09dC5lbmRMaW5lTnVtYmVyJiZuLmNvbHVtbj50LmVuZENvbHVtbil9c3RhdGljIHN0cmljdENvbnRhaW5zUG9zaXRpb24odCxuKXtyZXR1cm4hKG4ubGluZU51bWJlcjx0LnN0YXJ0TGluZU51bWJlcnx8bi5saW5lTnVtYmVyPnQuZW5kTGluZU51bWJlcnx8bi5saW5lTnVtYmVyPT09dC5zdGFydExpbmVOdW1iZXImJm4uY29sdW1uPD10LnN0YXJ0Q29sdW1ufHxuLmxpbmVOdW1iZXI9PT10LmVuZExpbmVOdW1iZXImJm4uY29sdW1uPj10LmVuZENvbHVtbil9Y29udGFpbnNSYW5nZSh0KXtyZXR1cm4gRC5jb250YWluc1JhbmdlKHRoaXMsdCl9c3RhdGljIGNvbnRhaW5zUmFuZ2UodCxuKXtyZXR1cm4hKG4uc3RhcnRMaW5lTnVtYmVyPHQuc3RhcnRMaW5lTnVtYmVyfHxuLmVuZExpbmVOdW1iZXI8dC5zdGFydExpbmVOdW1iZXJ8fG4uc3RhcnRMaW5lTnVtYmVyPnQuZW5kTGluZU51bWJlcnx8bi5lbmRMaW5lTnVtYmVyPnQuZW5kTGluZU51bWJlcnx8bi5zdGFydExpbmVOdW1iZXI9PT10LnN0YXJ0TGluZU51bWJlciYmbi5zdGFydENvbHVtbjx0LnN0YXJ0Q29sdW1ufHxuLmVuZExpbmVOdW1iZXI9PT10LmVuZExpbmVOdW1iZXImJm4uZW5kQ29sdW1uPnQuZW5kQ29sdW1uKX1zdHJpY3RDb250YWluc1JhbmdlKHQpe3JldHVybiBELnN0cmljdENvbnRhaW5zUmFuZ2UodGhpcyx0KX1zdGF0aWMgc3RyaWN0Q29udGFpbnNSYW5nZSh0LG4pe3JldHVybiEobi5zdGFydExpbmVOdW1iZXI8dC5zdGFydExpbmVOdW1iZXJ8fG4uZW5kTGluZU51bWJlcjx0LnN0YXJ0TGluZU51bWJlcnx8bi5zdGFydExpbmVOdW1iZXI+dC5lbmRMaW5lTnVtYmVyfHxuLmVuZExpbmVOdW1iZXI+dC5lbmRMaW5lTnVtYmVyfHxuLnN0YXJ0TGluZU51bWJlcj09PXQuc3RhcnRMaW5lTnVtYmVyJiZuLnN0YXJ0Q29sdW1uPD10LnN0YXJ0Q29sdW1ufHxuLmVuZExpbmVOdW1iZXI9PT10LmVuZExpbmVOdW1iZXImJm4uZW5kQ29sdW1uPj10LmVuZENvbHVtbil9cGx1c1JhbmdlKHQpe3JldHVybiBELnBsdXNSYW5nZSh0aGlzLHQpfXN0YXRpYyBwbHVzUmFuZ2UodCxuKXtsZXQgcyxyLGksbDtyZXR1cm4gbi5zdGFydExpbmVOdW1iZXI8dC5zdGFydExpbmVOdW1iZXI/KHM9bi5zdGFydExpbmVOdW1iZXIscj1uLnN0YXJ0Q29sdW1uKTpuLnN0YXJ0TGluZU51bWJlcj09PXQuc3RhcnRMaW5lTnVtYmVyPyhzPW4uc3RhcnRMaW5lTnVtYmVyLHI9TWF0aC5taW4obi5zdGFydENvbHVtbix0LnN0YXJ0Q29sdW1uKSk6KHM9dC5zdGFydExpbmVOdW1iZXIscj10LnN0YXJ0Q29sdW1uKSxuLmVuZExpbmVOdW1iZXI+dC5lbmRMaW5lTnVtYmVyPyhpPW4uZW5kTGluZU51bWJlcixsPW4uZW5kQ29sdW1uKTpuLmVuZExpbmVOdW1iZXI9PT10LmVuZExpbmVOdW1iZXI/KGk9bi5lbmRMaW5lTnVtYmVyLGw9TWF0aC5tYXgobi5lbmRDb2x1bW4sdC5lbmRDb2x1bW4pKTooaT10LmVuZExpbmVOdW1iZXIsbD10LmVuZENvbHVtbiksbmV3IEQocyxyLGksbCl9aW50ZXJzZWN0UmFuZ2VzKHQpe3JldHVybiBELmludGVyc2VjdFJhbmdlcyh0aGlzLHQpfXN0YXRpYyBpbnRlcnNlY3RSYW5nZXModCxuKXtsZXQgcz10LnN0YXJ0TGluZU51bWJlcixyPXQuc3RhcnRDb2x1bW4saT10LmVuZExpbmVOdW1iZXIsbD10LmVuZENvbHVtbjtjb25zdCBvPW4uc3RhcnRMaW5lTnVtYmVyLHU9bi5zdGFydENvbHVtbixjPW4uZW5kTGluZU51bWJlcixoPW4uZW5kQ29sdW1uO3JldHVybiBzPG8/KHM9byxyPXUpOnM9PT1vJiYocj1NYXRoLm1heChyLHUpKSxpPmM/KGk9YyxsPWgpOmk9PT1jJiYobD1NYXRoLm1pbihsLGgpKSxzPml8fHM9PT1pJiZyPmw/bnVsbDpuZXcgRChzLHIsaSxsKX1lcXVhbHNSYW5nZSh0KXtyZXR1cm4gRC5lcXVhbHNSYW5nZSh0aGlzLHQpfXN0YXRpYyBlcXVhbHNSYW5nZSh0LG4pe3JldHVybiF0JiYhbj8hMDohIXQmJiEhbiYmdC5zdGFydExpbmVOdW1iZXI9PT1uLnN0YXJ0TGluZU51bWJlciYmdC5zdGFydENvbHVtbj09PW4uc3RhcnRDb2x1bW4mJnQuZW5kTGluZU51bWJlcj09PW4uZW5kTGluZU51bWJlciYmdC5lbmRDb2x1bW49PT1uLmVuZENvbHVtbn1nZXRFbmRQb3NpdGlvbigpe3JldHVybiBELmdldEVuZFBvc2l0aW9uKHRoaXMpfXN0YXRpYyBnZXRFbmRQb3NpdGlvbih0KXtyZXR1cm4gbmV3IFkodC5lbmRMaW5lTnVtYmVyLHQuZW5kQ29sdW1uKX1nZXRTdGFydFBvc2l0aW9uKCl7cmV0dXJuIEQuZ2V0U3RhcnRQb3NpdGlvbih0aGlzKX1zdGF0aWMgZ2V0U3RhcnRQb3NpdGlvbih0KXtyZXR1cm4gbmV3IFkodC5zdGFydExpbmVOdW1iZXIsdC5zdGFydENvbHVtbil9dG9TdHJpbmcoKXtyZXR1cm4iWyIrdGhpcy5zdGFydExpbmVOdW1iZXIrIiwiK3RoaXMuc3RhcnRDb2x1bW4rIiAtPiAiK3RoaXMuZW5kTGluZU51bWJlcisiLCIrdGhpcy5lbmRDb2x1bW4rIl0ifXNldEVuZFBvc2l0aW9uKHQsbil7cmV0dXJuIG5ldyBEKHRoaXMuc3RhcnRMaW5lTnVtYmVyLHRoaXMuc3RhcnRDb2x1bW4sdCxuKX1zZXRTdGFydFBvc2l0aW9uKHQsbil7cmV0dXJuIG5ldyBEKHQsbix0aGlzLmVuZExpbmVOdW1iZXIsdGhpcy5lbmRDb2x1bW4pfWNvbGxhcHNlVG9TdGFydCgpe3JldHVybiBELmNvbGxhcHNlVG9TdGFydCh0aGlzKX1zdGF0aWMgY29sbGFwc2VUb1N0YXJ0KHQpe3JldHVybiBuZXcgRCh0LnN0YXJ0TGluZU51bWJlcix0LnN0YXJ0Q29sdW1uLHQuc3RhcnRMaW5lTnVtYmVyLHQuc3RhcnRDb2x1bW4pfWNvbGxhcHNlVG9FbmQoKXtyZXR1cm4gRC5jb2xsYXBzZVRvRW5kKHRoaXMpfXN0YXRpYyBjb2xsYXBzZVRvRW5kKHQpe3JldHVybiBuZXcgRCh0LmVuZExpbmVOdW1iZXIsdC5lbmRDb2x1bW4sdC5lbmRMaW5lTnVtYmVyLHQuZW5kQ29sdW1uKX1kZWx0YSh0KXtyZXR1cm4gbmV3IEQodGhpcy5zdGFydExpbmVOdW1iZXIrdCx0aGlzLnN0YXJ0Q29sdW1uLHRoaXMuZW5kTGluZU51bWJlcit0LHRoaXMuZW5kQ29sdW1uKX1zdGF0aWMgZnJvbVBvc2l0aW9ucyh0LG49dCl7cmV0dXJuIG5ldyBEKHQubGluZU51bWJlcix0LmNvbHVtbixuLmxpbmVOdW1iZXIsbi5jb2x1bW4pfXN0YXRpYyBsaWZ0KHQpe3JldHVybiB0P25ldyBEKHQuc3RhcnRMaW5lTnVtYmVyLHQuc3RhcnRDb2x1bW4sdC5lbmRMaW5lTnVtYmVyLHQuZW5kQ29sdW1uKTpudWxsfXN0YXRpYyBpc0lSYW5nZSh0KXtyZXR1cm4gdCYmdHlwZW9mIHQuc3RhcnRMaW5lTnVtYmVyPT0ibnVtYmVyIiYmdHlwZW9mIHQuc3RhcnRDb2x1bW49PSJudW1iZXIiJiZ0eXBlb2YgdC5lbmRMaW5lTnVtYmVyPT0ibnVtYmVyIiYmdHlwZW9mIHQuZW5kQ29sdW1uPT0ibnVtYmVyIn1zdGF0aWMgYXJlSW50ZXJzZWN0aW5nT3JUb3VjaGluZyh0LG4pe3JldHVybiEodC5lbmRMaW5lTnVtYmVyPG4uc3RhcnRMaW5lTnVtYmVyfHx0LmVuZExpbmVOdW1iZXI9PT1uLnN0YXJ0TGluZU51bWJlciYmdC5lbmRDb2x1bW48bi5zdGFydENvbHVtbnx8bi5lbmRMaW5lTnVtYmVyPHQuc3RhcnRMaW5lTnVtYmVyfHxuLmVuZExpbmVOdW1iZXI9PT10LnN0YXJ0TGluZU51bWJlciYmbi5lbmRDb2x1bW48dC5zdGFydENvbHVtbil9c3RhdGljIGFyZUludGVyc2VjdGluZyh0LG4pe3JldHVybiEodC5lbmRMaW5lTnVtYmVyPG4uc3RhcnRMaW5lTnVtYmVyfHx0LmVuZExpbmVOdW1iZXI9PT1uLnN0YXJ0TGluZU51bWJlciYmdC5lbmRDb2x1bW48PW4uc3RhcnRDb2x1bW58fG4uZW5kTGluZU51bWJlcjx0LnN0YXJ0TGluZU51bWJlcnx8bi5lbmRMaW5lTnVtYmVyPT09dC5zdGFydExpbmVOdW1iZXImJm4uZW5kQ29sdW1uPD10LnN0YXJ0Q29sdW1uKX1zdGF0aWMgY29tcGFyZVJhbmdlc1VzaW5nU3RhcnRzKHQsbil7aWYodCYmbil7Y29uc3QgaT10LnN0YXJ0TGluZU51bWJlcnwwLGw9bi5zdGFydExpbmVOdW1iZXJ8MDtpZihpPT09bCl7Y29uc3Qgbz10LnN0YXJ0Q29sdW1ufDAsdT1uLnN0YXJ0Q29sdW1ufDA7aWYobz09PXUpe2NvbnN0IGM9dC5lbmRMaW5lTnVtYmVyfDAsaD1uLmVuZExpbmVOdW1iZXJ8MDtpZihjPT09aCl7Y29uc3QgZj10LmVuZENvbHVtbnwwLGQ9bi5lbmRDb2x1bW58MDtyZXR1cm4gZi1kfXJldHVybiBjLWh9cmV0dXJuIG8tdX1yZXR1cm4gaS1sfXJldHVybih0PzE6MCktKG4/MTowKX1zdGF0aWMgY29tcGFyZVJhbmdlc1VzaW5nRW5kcyh0LG4pe3JldHVybiB0LmVuZExpbmVOdW1iZXI9PT1uLmVuZExpbmVOdW1iZXI/dC5lbmRDb2x1bW49PT1uLmVuZENvbHVtbj90LnN0YXJ0TGluZU51bWJlcj09PW4uc3RhcnRMaW5lTnVtYmVyP3Quc3RhcnRDb2x1bW4tbi5zdGFydENvbHVtbjp0LnN0YXJ0TGluZU51bWJlci1uLnN0YXJ0TGluZU51bWJlcjp0LmVuZENvbHVtbi1uLmVuZENvbHVtbjp0LmVuZExpbmVOdW1iZXItbi5lbmRMaW5lTnVtYmVyfXN0YXRpYyBzcGFuc011bHRpcGxlTGluZXModCl7cmV0dXJuIHQuZW5kTGluZU51bWJlcj50LnN0YXJ0TGluZU51bWJlcn10b0pTT04oKXtyZXR1cm4gdGhpc319ZnVuY3Rpb24gWHIoZSx0LG49KHMscik9PnM9PT1yKXtpZihlPT09dClyZXR1cm4hMDtpZighZXx8IXR8fGUubGVuZ3RoIT09dC5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCBzPTAscj1lLmxlbmd0aDtzPHI7cysrKWlmKCFuKGVbc10sdFtzXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24qUXIoZSx0KXtsZXQgbixzO2Zvcihjb25zdCByIG9mIGUpcyE9PXZvaWQgMCYmdChzLHIpP24ucHVzaChyKToobiYmKHlpZWxkIG4pLG49W3JdKSxzPXI7biYmKHlpZWxkIG4pfWZ1bmN0aW9uIFlyKGUsdCl7Zm9yKGxldCBuPTA7bjw9ZS5sZW5ndGg7bisrKXQobj09PTA/dm9pZCAwOmVbbi0xXSxuPT09ZS5sZW5ndGg/dm9pZCAwOmVbbl0pfWZ1bmN0aW9uIEpyKGUsdCl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspdChuPT09MD92b2lkIDA6ZVtuLTFdLGVbbl0sbisxPT09ZS5sZW5ndGg/dm9pZCAwOmVbbisxXSl9ZnVuY3Rpb24gWnIoZSx0KXtmb3IoY29uc3QgbiBvZiB0KWUucHVzaChuKX12YXIgX247KGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQoaSl7cmV0dXJuIGk8MH1lLmlzTGVzc1RoYW49dDtmdW5jdGlvbiBuKGkpe3JldHVybiBpPD0wfWUuaXNMZXNzVGhhbk9yRXF1YWw9bjtmdW5jdGlvbiBzKGkpe3JldHVybiBpPjB9ZS5pc0dyZWF0ZXJUaGFuPXM7ZnVuY3Rpb24gcihpKXtyZXR1cm4gaT09PTB9ZS5pc05laXRoZXJMZXNzT3JHcmVhdGVyVGhhbj1yLGUuZ3JlYXRlclRoYW49MSxlLmxlc3NUaGFuPS0xLGUubmVpdGhlckxlc3NPckdyZWF0ZXJUaGFuPTB9KShfbnx8KF9uPXt9KSk7ZnVuY3Rpb24gaXQoZSx0KXtyZXR1cm4obixzKT0+dChlKG4pLGUocykpfWNvbnN0IGF0PShlLHQpPT5lLXQ7ZnVuY3Rpb24gS3IoZSl7cmV0dXJuKHQsbik9Pi1lKHQsbil9ZnVuY3Rpb24geG4oZSl7cmV0dXJuIGU8MD8wOmU+MjU1PzI1NTplfDB9ZnVuY3Rpb24gVGUoZSl7cmV0dXJuIGU8MD8wOmU+NDI5NDk2NzI5NT80Mjk0OTY3Mjk1OmV8MH1jbGFzcyBlaXtjb25zdHJ1Y3Rvcih0KXt0aGlzLnZhbHVlcz10LHRoaXMucHJlZml4U3VtPW5ldyBVaW50MzJBcnJheSh0Lmxlbmd0aCksdGhpcy5wcmVmaXhTdW1WYWxpZEluZGV4PW5ldyBJbnQzMkFycmF5KDEpLHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXT0tMX1pbnNlcnRWYWx1ZXModCxuKXt0PVRlKHQpO2NvbnN0IHM9dGhpcy52YWx1ZXMscj10aGlzLnByZWZpeFN1bSxpPW4ubGVuZ3RoO3JldHVybiBpPT09MD8hMToodGhpcy52YWx1ZXM9bmV3IFVpbnQzMkFycmF5KHMubGVuZ3RoK2kpLHRoaXMudmFsdWVzLnNldChzLnN1YmFycmF5KDAsdCksMCksdGhpcy52YWx1ZXMuc2V0KHMuc3ViYXJyYXkodCksdCtpKSx0aGlzLnZhbHVlcy5zZXQobix0KSx0LTE8dGhpcy5wcmVmaXhTdW1WYWxpZEluZGV4WzBdJiYodGhpcy5wcmVmaXhTdW1WYWxpZEluZGV4WzBdPXQtMSksdGhpcy5wcmVmaXhTdW09bmV3IFVpbnQzMkFycmF5KHRoaXMudmFsdWVzLmxlbmd0aCksdGhpcy5wcmVmaXhTdW1WYWxpZEluZGV4WzBdPj0wJiZ0aGlzLnByZWZpeFN1bS5zZXQoci5zdWJhcnJheSgwLHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXSsxKSksITApfXNldFZhbHVlKHQsbil7cmV0dXJuIHQ9VGUodCksbj1UZShuKSx0aGlzLnZhbHVlc1t0XT09PW4/ITE6KHRoaXMudmFsdWVzW3RdPW4sdC0xPHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXSYmKHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXT10LTEpLCEwKX1yZW1vdmVWYWx1ZXModCxuKXt0PVRlKHQpLG49VGUobik7Y29uc3Qgcz10aGlzLnZhbHVlcyxyPXRoaXMucHJlZml4U3VtO2lmKHQ+PXMubGVuZ3RoKXJldHVybiExO2NvbnN0IGk9cy5sZW5ndGgtdDtyZXR1cm4gbj49aSYmKG49aSksbj09PTA/ITE6KHRoaXMudmFsdWVzPW5ldyBVaW50MzJBcnJheShzLmxlbmd0aC1uKSx0aGlzLnZhbHVlcy5zZXQocy5zdWJhcnJheSgwLHQpLDApLHRoaXMudmFsdWVzLnNldChzLnN1YmFycmF5KHQrbiksdCksdGhpcy5wcmVmaXhTdW09bmV3IFVpbnQzMkFycmF5KHRoaXMudmFsdWVzLmxlbmd0aCksdC0xPHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXSYmKHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXT10LTEpLHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXT49MCYmdGhpcy5wcmVmaXhTdW0uc2V0KHIuc3ViYXJyYXkoMCx0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF0rMSkpLCEwKX1nZXRUb3RhbFN1bSgpe3JldHVybiB0aGlzLnZhbHVlcy5sZW5ndGg9PT0wPzA6dGhpcy5fZ2V0UHJlZml4U3VtKHRoaXMudmFsdWVzLmxlbmd0aC0xKX1nZXRQcmVmaXhTdW0odCl7cmV0dXJuIHQ8MD8wOih0PVRlKHQpLHRoaXMuX2dldFByZWZpeFN1bSh0KSl9X2dldFByZWZpeFN1bSh0KXtpZih0PD10aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF0pcmV0dXJuIHRoaXMucHJlZml4U3VtW3RdO2xldCBuPXRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXSsxO249PT0wJiYodGhpcy5wcmVmaXhTdW1bMF09dGhpcy52YWx1ZXNbMF0sbisrKSx0Pj10aGlzLnZhbHVlcy5sZW5ndGgmJih0PXRoaXMudmFsdWVzLmxlbmd0aC0xKTtmb3IobGV0IHM9bjtzPD10O3MrKyl0aGlzLnByZWZpeFN1bVtzXT10aGlzLnByZWZpeFN1bVtzLTFdK3RoaXMudmFsdWVzW3NdO3JldHVybiB0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF09TWF0aC5tYXgodGhpcy5wcmVmaXhTdW1WYWxpZEluZGV4WzBdLHQpLHRoaXMucHJlZml4U3VtW3RdfWdldEluZGV4T2YodCl7dD1NYXRoLmZsb29yKHQpLHRoaXMuZ2V0VG90YWxTdW0oKTtsZXQgbj0wLHM9dGhpcy52YWx1ZXMubGVuZ3RoLTEscj0wLGk9MCxsPTA7Zm9yKDtuPD1zOylpZihyPW4rKHMtbikvMnwwLGk9dGhpcy5wcmVmaXhTdW1bcl0sbD1pLXRoaXMudmFsdWVzW3JdLHQ8bClzPXItMTtlbHNlIGlmKHQ+PWkpbj1yKzE7ZWxzZSBicmVhaztyZXR1cm4gbmV3IHRpKHIsdC1sKX19Y2xhc3MgdGl7Y29uc3RydWN0b3IodCxuKXt0aGlzLmluZGV4PXQsdGhpcy5yZW1haW5kZXI9bix0aGlzLl9wcmVmaXhTdW1JbmRleE9mUmVzdWx0QnJhbmQ9dm9pZCAwLHRoaXMuaW5kZXg9dCx0aGlzLnJlbWFpbmRlcj1ufX1jbGFzcyBuaXtjb25zdHJ1Y3Rvcih0LG4scyxyKXt0aGlzLl91cmk9dCx0aGlzLl9saW5lcz1uLHRoaXMuX2VvbD1zLHRoaXMuX3ZlcnNpb25JZD1yLHRoaXMuX2xpbmVTdGFydHM9bnVsbCx0aGlzLl9jYWNoZWRUZXh0VmFsdWU9bnVsbH1kaXNwb3NlKCl7dGhpcy5fbGluZXMubGVuZ3RoPTB9Z2V0IHZlcnNpb24oKXtyZXR1cm4gdGhpcy5fdmVyc2lvbklkfWdldFRleHQoKXtyZXR1cm4gdGhpcy5fY2FjaGVkVGV4dFZhbHVlPT09bnVsbCYmKHRoaXMuX2NhY2hlZFRleHRWYWx1ZT10aGlzLl9saW5lcy5qb2luKHRoaXMuX2VvbCkpLHRoaXMuX2NhY2hlZFRleHRWYWx1ZX1vbkV2ZW50cyh0KXt0LmVvbCYmdC5lb2whPT10aGlzLl9lb2wmJih0aGlzLl9lb2w9dC5lb2wsdGhpcy5fbGluZVN0YXJ0cz1udWxsKTtjb25zdCBuPXQuY2hhbmdlcztmb3IoY29uc3QgcyBvZiBuKXRoaXMuX2FjY2VwdERlbGV0ZVJhbmdlKHMucmFuZ2UpLHRoaXMuX2FjY2VwdEluc2VydFRleHQobmV3IFkocy5yYW5nZS5zdGFydExpbmVOdW1iZXIscy5yYW5nZS5zdGFydENvbHVtbikscy50ZXh0KTt0aGlzLl92ZXJzaW9uSWQ9dC52ZXJzaW9uSWQsdGhpcy5fY2FjaGVkVGV4dFZhbHVlPW51bGx9X2Vuc3VyZUxpbmVTdGFydHMoKXtpZighdGhpcy5fbGluZVN0YXJ0cyl7Y29uc3QgdD10aGlzLl9lb2wubGVuZ3RoLG49dGhpcy5fbGluZXMubGVuZ3RoLHM9bmV3IFVpbnQzMkFycmF5KG4pO2ZvcihsZXQgcj0wO3I8bjtyKyspc1tyXT10aGlzLl9saW5lc1tyXS5sZW5ndGgrdDt0aGlzLl9saW5lU3RhcnRzPW5ldyBlaShzKX19X3NldExpbmVUZXh0KHQsbil7dGhpcy5fbGluZXNbdF09bix0aGlzLl9saW5lU3RhcnRzJiZ0aGlzLl9saW5lU3RhcnRzLnNldFZhbHVlKHQsdGhpcy5fbGluZXNbdF0ubGVuZ3RoK3RoaXMuX2VvbC5sZW5ndGgpfV9hY2NlcHREZWxldGVSYW5nZSh0KXtpZih0LnN0YXJ0TGluZU51bWJlcj09PXQuZW5kTGluZU51bWJlcil7aWYodC5zdGFydENvbHVtbj09PXQuZW5kQ29sdW1uKXJldHVybjt0aGlzLl9zZXRMaW5lVGV4dCh0LnN0YXJ0TGluZU51bWJlci0xLHRoaXMuX2xpbmVzW3Quc3RhcnRMaW5lTnVtYmVyLTFdLnN1YnN0cmluZygwLHQuc3RhcnRDb2x1bW4tMSkrdGhpcy5fbGluZXNbdC5zdGFydExpbmVOdW1iZXItMV0uc3Vic3RyaW5nKHQuZW5kQ29sdW1uLTEpKTtyZXR1cm59dGhpcy5fc2V0TGluZVRleHQodC5zdGFydExpbmVOdW1iZXItMSx0aGlzLl9saW5lc1t0LnN0YXJ0TGluZU51bWJlci0xXS5zdWJzdHJpbmcoMCx0LnN0YXJ0Q29sdW1uLTEpK3RoaXMuX2xpbmVzW3QuZW5kTGluZU51bWJlci0xXS5zdWJzdHJpbmcodC5lbmRDb2x1bW4tMSkpLHRoaXMuX2xpbmVzLnNwbGljZSh0LnN0YXJ0TGluZU51bWJlcix0LmVuZExpbmVOdW1iZXItdC5zdGFydExpbmVOdW1iZXIpLHRoaXMuX2xpbmVTdGFydHMmJnRoaXMuX2xpbmVTdGFydHMucmVtb3ZlVmFsdWVzKHQuc3RhcnRMaW5lTnVtYmVyLHQuZW5kTGluZU51bWJlci10LnN0YXJ0TGluZU51bWJlcil9X2FjY2VwdEluc2VydFRleHQodCxuKXtpZihuLmxlbmd0aD09PTApcmV0dXJuO2NvbnN0IHM9ZHIobik7aWYocy5sZW5ndGg9PT0xKXt0aGlzLl9zZXRMaW5lVGV4dCh0LmxpbmVOdW1iZXItMSx0aGlzLl9saW5lc1t0LmxpbmVOdW1iZXItMV0uc3Vic3RyaW5nKDAsdC5jb2x1bW4tMSkrc1swXSt0aGlzLl9saW5lc1t0LmxpbmVOdW1iZXItMV0uc3Vic3RyaW5nKHQuY29sdW1uLTEpKTtyZXR1cm59c1tzLmxlbmd0aC0xXSs9dGhpcy5fbGluZXNbdC5saW5lTnVtYmVyLTFdLnN1YnN0cmluZyh0LmNvbHVtbi0xKSx0aGlzLl9zZXRMaW5lVGV4dCh0LmxpbmVOdW1iZXItMSx0aGlzLl9saW5lc1t0LmxpbmVOdW1iZXItMV0uc3Vic3RyaW5nKDAsdC5jb2x1bW4tMSkrc1swXSk7Y29uc3Qgcj1uZXcgVWludDMyQXJyYXkocy5sZW5ndGgtMSk7Zm9yKGxldCBpPTE7aTxzLmxlbmd0aDtpKyspdGhpcy5fbGluZXMuc3BsaWNlKHQubGluZU51bWJlcitpLTEsMCxzW2ldKSxyW2ktMV09c1tpXS5sZW5ndGgrdGhpcy5fZW9sLmxlbmd0aDt0aGlzLl9saW5lU3RhcnRzJiZ0aGlzLl9saW5lU3RhcnRzLmluc2VydFZhbHVlcyh0LmxpbmVOdW1iZXIscil9fWNvbnN0IHNpPSJgfiFAIyQlXiYqKCktPStbe119XFx8OzonXCIsLjw+Lz8iO2Z1bmN0aW9uIHJpKGU9IiIpe2xldCB0PSIoLT9cXGQqXFwuXFxkXFx3Kil8KFteIjtmb3IoY29uc3QgbiBvZiBzaSllLmluZGV4T2Yobik+PTB8fCh0Kz0iXFwiK24pO3JldHVybiB0Kz0iXFxzXSspIixuZXcgUmVnRXhwKHQsImciKX1jb25zdCBwbj1yaSgpO2Z1bmN0aW9uIHZuKGUpe2xldCB0PXBuO2lmKGUmJmUgaW5zdGFuY2VvZiBSZWdFeHApaWYoZS5nbG9iYWwpdD1lO2Vsc2V7bGV0IG49ImciO2UuaWdub3JlQ2FzZSYmKG4rPSJpIiksZS5tdWx0aWxpbmUmJihuKz0ibSIpLGUudW5pY29kZSYmKG4rPSJ1IiksdD1uZXcgUmVnRXhwKGUuc291cmNlLG4pfXJldHVybiB0Lmxhc3RJbmRleD0wLHR9Y29uc3QgTG49bmV3IFFzO0xuLnVuc2hpZnQoe21heExlbjoxZTMsd2luZG93U2l6ZToxNSx0aW1lQnVkZ2V0OjE1MH0pO2Z1bmN0aW9uIGt0KGUsdCxuLHMscil7aWYodD12bih0KSxyfHwocj1aZS5maXJzdChMbikpLG4ubGVuZ3RoPnIubWF4TGVuKXtsZXQgYz1lLXIubWF4TGVuLzI7cmV0dXJuIGM8MD9jPTA6cys9YyxuPW4uc3Vic3RyaW5nKGMsZStyLm1heExlbi8yKSxrdChlLHQsbixzLHIpfWNvbnN0IGk9RGF0ZS5ub3coKSxsPWUtMS1zO2xldCBvPS0xLHU9bnVsbDtmb3IobGV0IGM9MTshKERhdGUubm93KCktaT49ci50aW1lQnVkZ2V0KTtjKyspe2NvbnN0IGg9bC1yLndpbmRvd1NpemUqYzt0Lmxhc3RJbmRleD1NYXRoLm1heCgwLGgpO2NvbnN0IGY9aWkodCxuLGwsbyk7aWYoIWYmJnV8fCh1PWYsaDw9MCkpYnJlYWs7bz1ofWlmKHUpe2NvbnN0IGM9e3dvcmQ6dVswXSxzdGFydENvbHVtbjpzKzErdS5pbmRleCxlbmRDb2x1bW46cysxK3UuaW5kZXgrdVswXS5sZW5ndGh9O3JldHVybiB0Lmxhc3RJbmRleD0wLGN9cmV0dXJuIG51bGx9ZnVuY3Rpb24gaWkoZSx0LG4scyl7bGV0IHI7Zm9yKDtyPWUuZXhlYyh0KTspe2NvbnN0IGk9ci5pbmRleHx8MDtpZihpPD1uJiZlLmxhc3RJbmRleD49bilyZXR1cm4gcjtpZihzPjAmJmk+cylyZXR1cm4gbnVsbH1yZXR1cm4gbnVsbH1jbGFzcyBQdHtjb25zdHJ1Y3Rvcih0KXtjb25zdCBuPXhuKHQpO3RoaXMuX2RlZmF1bHRWYWx1ZT1uLHRoaXMuX2FzY2lpTWFwPVB0Ll9jcmVhdGVBc2NpaU1hcChuKSx0aGlzLl9tYXA9bmV3IE1hcH1zdGF0aWMgX2NyZWF0ZUFzY2lpTWFwKHQpe2NvbnN0IG49bmV3IFVpbnQ4QXJyYXkoMjU2KTtyZXR1cm4gbi5maWxsKHQpLG59c2V0KHQsbil7Y29uc3Qgcz14bihuKTt0Pj0wJiZ0PDI1Nj90aGlzLl9hc2NpaU1hcFt0XT1zOnRoaXMuX21hcC5zZXQodCxzKX1nZXQodCl7cmV0dXJuIHQ+PTAmJnQ8MjU2P3RoaXMuX2FzY2lpTWFwW3RdOnRoaXMuX21hcC5nZXQodCl8fHRoaXMuX2RlZmF1bHRWYWx1ZX1jbGVhcigpe3RoaXMuX2FzY2lpTWFwLmZpbGwodGhpcy5fZGVmYXVsdFZhbHVlKSx0aGlzLl9tYXAuY2xlYXIoKX19Y2xhc3MgYWl7Y29uc3RydWN0b3IodCxuLHMpe2NvbnN0IHI9bmV3IFVpbnQ4QXJyYXkodCpuKTtmb3IobGV0IGk9MCxsPXQqbjtpPGw7aSsrKXJbaV09czt0aGlzLl9kYXRhPXIsdGhpcy5yb3dzPXQsdGhpcy5jb2xzPW59Z2V0KHQsbil7cmV0dXJuIHRoaXMuX2RhdGFbdCp0aGlzLmNvbHMrbl19c2V0KHQsbixzKXt0aGlzLl9kYXRhW3QqdGhpcy5jb2xzK25dPXN9fWNsYXNzIGxpe2NvbnN0cnVjdG9yKHQpe2xldCBuPTAscz0wO2ZvcihsZXQgaT0wLGw9dC5sZW5ndGg7aTxsO2krKyl7Y29uc3Rbbyx1LGNdPXRbaV07dT5uJiYobj11KSxvPnMmJihzPW8pLGM+cyYmKHM9Yyl9bisrLHMrKztjb25zdCByPW5ldyBhaShzLG4sMCk7Zm9yKGxldCBpPTAsbD10Lmxlbmd0aDtpPGw7aSsrKXtjb25zdFtvLHUsY109dFtpXTtyLnNldChvLHUsYyl9dGhpcy5fc3RhdGVzPXIsdGhpcy5fbWF4Q2hhckNvZGU9bn1uZXh0U3RhdGUodCxuKXtyZXR1cm4gbjwwfHxuPj10aGlzLl9tYXhDaGFyQ29kZT8wOnRoaXMuX3N0YXRlcy5nZXQodCxuKX19bGV0IER0PW51bGw7ZnVuY3Rpb24gb2koKXtyZXR1cm4gRHQ9PT1udWxsJiYoRHQ9bmV3IGxpKFtbMSwxMDQsMl0sWzEsNzIsMl0sWzEsMTAyLDZdLFsxLDcwLDZdLFsyLDExNiwzXSxbMiw4NCwzXSxbMywxMTYsNF0sWzMsODQsNF0sWzQsMTEyLDVdLFs0LDgwLDVdLFs1LDExNSw5XSxbNSw4Myw5XSxbNSw1OCwxMF0sWzYsMTA1LDddLFs2LDczLDddLFs3LDEwOCw4XSxbNyw3Niw4XSxbOCwxMDEsOV0sWzgsNjksOV0sWzksNTgsMTBdLFsxMCw0NywxMV0sWzExLDQ3LDEyXV0pKSxEdH1sZXQgemU9bnVsbDtmdW5jdGlvbiB1aSgpe2lmKHplPT09bnVsbCl7emU9bmV3IFB0KDApO2NvbnN0IGU9YCAJPD4nIuOAgeOAgu+9oe+9pO+8jO+8ju+8mu+8m+KAmOOAiOOAjOOAjuOAlO+8iO+8u++9m++9ou+9o++9ne+8ve+8ieOAleOAj+OAjeOAieKAme+9gO+9nuKApmA7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspemUuc2V0KGUuY2hhckNvZGVBdChuKSwxKTtjb25zdCB0PSIuLDs6Ijtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rKyl6ZS5zZXQodC5jaGFyQ29kZUF0KG4pLDIpfXJldHVybiB6ZX1jbGFzcyBsdHtzdGF0aWMgX2NyZWF0ZUxpbmsodCxuLHMscixpKXtsZXQgbD1pLTE7ZG97Y29uc3Qgbz1uLmNoYXJDb2RlQXQobCk7aWYodC5nZXQobykhPT0yKWJyZWFrO2wtLX13aGlsZShsPnIpO2lmKHI+MCl7Y29uc3Qgbz1uLmNoYXJDb2RlQXQoci0xKSx1PW4uY2hhckNvZGVBdChsKTsobz09PTQwJiZ1PT09NDF8fG89PT05MSYmdT09PTkzfHxvPT09MTIzJiZ1PT09MTI1KSYmbC0tfXJldHVybntyYW5nZTp7c3RhcnRMaW5lTnVtYmVyOnMsc3RhcnRDb2x1bW46cisxLGVuZExpbmVOdW1iZXI6cyxlbmRDb2x1bW46bCsyfSx1cmw6bi5zdWJzdHJpbmcocixsKzEpfX1zdGF0aWMgY29tcHV0ZUxpbmtzKHQsbj1vaSgpKXtjb25zdCBzPXVpKCkscj1bXTtmb3IobGV0IGk9MSxsPXQuZ2V0TGluZUNvdW50KCk7aTw9bDtpKyspe2NvbnN0IG89dC5nZXRMaW5lQ29udGVudChpKSx1PW8ubGVuZ3RoO2xldCBjPTAsaD0wLGY9MCxkPTEsbT0hMSxnPSExLHg9ITEsdj0hMTtmb3IoO2M8dTspe2xldCBOPSExO2NvbnN0IFM9by5jaGFyQ29kZUF0KGMpO2lmKGQ9PT0xMyl7bGV0IF87c3dpdGNoKFMpe2Nhc2UgNDA6bT0hMCxfPTA7YnJlYWs7Y2FzZSA0MTpfPW0/MDoxO2JyZWFrO2Nhc2UgOTE6eD0hMCxnPSEwLF89MDticmVhaztjYXNlIDkzOng9ITEsXz1nPzA6MTticmVhaztjYXNlIDEyMzp2PSEwLF89MDticmVhaztjYXNlIDEyNTpfPXY/MDoxO2JyZWFrO2Nhc2UgMzk6Y2FzZSAzNDpjYXNlIDk2OmY9PT1TP189MTpmPT09Mzl8fGY9PT0zNHx8Zj09PTk2P189MDpfPTE7YnJlYWs7Y2FzZSA0MjpfPWY9PT00Mj8xOjA7YnJlYWs7Y2FzZSAxMjQ6Xz1mPT09MTI0PzE6MDticmVhaztjYXNlIDMyOl89eD8wOjE7YnJlYWs7ZGVmYXVsdDpfPXMuZ2V0KFMpfV89PT0xJiYoci5wdXNoKGx0Ll9jcmVhdGVMaW5rKHMsbyxpLGgsYykpLE49ITApfWVsc2UgaWYoZD09PTEyKXtsZXQgXztTPT09OTE/KGc9ITAsXz0wKTpfPXMuZ2V0KFMpLF89PT0xP049ITA6ZD0xM31lbHNlIGQ9bi5uZXh0U3RhdGUoZCxTKSxkPT09MCYmKE49ITApO04mJihkPTEsbT0hMSxnPSExLHY9ITEsaD1jKzEsZj1TKSxjKyt9ZD09PTEzJiZyLnB1c2gobHQuX2NyZWF0ZUxpbmsocyxvLGksaCx1KSl9cmV0dXJuIHJ9fWZ1bmN0aW9uIGNpKGUpe3JldHVybiFlfHx0eXBlb2YgZS5nZXRMaW5lQ291bnQhPSJmdW5jdGlvbiJ8fHR5cGVvZiBlLmdldExpbmVDb250ZW50IT0iZnVuY3Rpb24iP1tdOmx0LmNvbXB1dGVMaW5rcyhlKX1jbGFzcyBGdHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2RlZmF1bHRWYWx1ZVNldD1bWyJ0cnVlIiwiZmFsc2UiXSxbIlRydWUiLCJGYWxzZSJdLFsiUHJpdmF0ZSIsIlB1YmxpYyIsIkZyaWVuZCIsIlJlYWRPbmx5IiwiUGFydGlhbCIsIlByb3RlY3RlZCIsIldyaXRlT25seSJdLFsicHVibGljIiwicHJvdGVjdGVkIiwicHJpdmF0ZSJdXX1uYXZpZ2F0ZVZhbHVlU2V0KHQsbixzLHIsaSl7aWYodCYmbil7Y29uc3QgbD10aGlzLmRvTmF2aWdhdGVWYWx1ZVNldChuLGkpO2lmKGwpcmV0dXJue3JhbmdlOnQsdmFsdWU6bH19aWYocyYmcil7Y29uc3QgbD10aGlzLmRvTmF2aWdhdGVWYWx1ZVNldChyLGkpO2lmKGwpcmV0dXJue3JhbmdlOnMsdmFsdWU6bH19cmV0dXJuIG51bGx9ZG9OYXZpZ2F0ZVZhbHVlU2V0KHQsbil7Y29uc3Qgcz10aGlzLm51bWJlclJlcGxhY2UodCxuKTtyZXR1cm4gcyE9PW51bGw/czp0aGlzLnRleHRSZXBsYWNlKHQsbil9bnVtYmVyUmVwbGFjZSh0LG4pe2NvbnN0IHM9TWF0aC5wb3coMTAsdC5sZW5ndGgtKHQubGFzdEluZGV4T2YoIi4iKSsxKSk7bGV0IHI9TnVtYmVyKHQpO2NvbnN0IGk9cGFyc2VGbG9hdCh0KTtyZXR1cm4haXNOYU4ocikmJiFpc05hTihpKSYmcj09PWk/cj09PTAmJiFuP251bGw6KHI9TWF0aC5mbG9vcihyKnMpLHIrPW4/czotcyxTdHJpbmcoci9zKSk6bnVsbH10ZXh0UmVwbGFjZSh0LG4pe3JldHVybiB0aGlzLnZhbHVlU2V0c1JlcGxhY2UodGhpcy5fZGVmYXVsdFZhbHVlU2V0LHQsbil9dmFsdWVTZXRzUmVwbGFjZSh0LG4scyl7bGV0IHI9bnVsbDtmb3IobGV0IGk9MCxsPXQubGVuZ3RoO3I9PT1udWxsJiZpPGw7aSsrKXI9dGhpcy52YWx1ZVNldFJlcGxhY2UodFtpXSxuLHMpO3JldHVybiByfXZhbHVlU2V0UmVwbGFjZSh0LG4scyl7bGV0IHI9dC5pbmRleE9mKG4pO3JldHVybiByPj0wPyhyKz1zPzE6LTEscjwwP3I9dC5sZW5ndGgtMTpyJT10Lmxlbmd0aCx0W3JdKTpudWxsfX1GdC5JTlNUQU5DRT1uZXcgRnQ7Y29uc3Qgd249T2JqZWN0LmZyZWV6ZShmdW5jdGlvbihlLHQpe2NvbnN0IG49c2V0VGltZW91dChlLmJpbmQodCksMCk7cmV0dXJue2Rpc3Bvc2UoKXtjbGVhclRpbWVvdXQobil9fX0pO3ZhciBvdDsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChuKXtyZXR1cm4gbj09PWUuTm9uZXx8bj09PWUuQ2FuY2VsbGVkfHxuIGluc3RhbmNlb2YgdXQ/ITA6IW58fHR5cGVvZiBuIT0ib2JqZWN0Ij8hMTp0eXBlb2Ygbi5pc0NhbmNlbGxhdGlvblJlcXVlc3RlZD09ImJvb2xlYW4iJiZ0eXBlb2Ygbi5vbkNhbmNlbGxhdGlvblJlcXVlc3RlZD09ImZ1bmN0aW9uIn1lLmlzQ2FuY2VsbGF0aW9uVG9rZW49dCxlLk5vbmU9T2JqZWN0LmZyZWV6ZSh7aXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQ6ITEsb25DYW5jZWxsYXRpb25SZXF1ZXN0ZWQ6X3QuTm9uZX0pLGUuQ2FuY2VsbGVkPU9iamVjdC5mcmVlemUoe2lzQ2FuY2VsbGF0aW9uUmVxdWVzdGVkOiEwLG9uQ2FuY2VsbGF0aW9uUmVxdWVzdGVkOndufSl9KShvdHx8KG90PXt9KSk7Y2xhc3MgdXR7Y29uc3RydWN0b3IoKXt0aGlzLl9pc0NhbmNlbGxlZD0hMSx0aGlzLl9lbWl0dGVyPW51bGx9Y2FuY2VsKCl7dGhpcy5faXNDYW5jZWxsZWR8fCh0aGlzLl9pc0NhbmNlbGxlZD0hMCx0aGlzLl9lbWl0dGVyJiYodGhpcy5fZW1pdHRlci5maXJlKHZvaWQgMCksdGhpcy5kaXNwb3NlKCkpKX1nZXQgaXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQoKXtyZXR1cm4gdGhpcy5faXNDYW5jZWxsZWR9Z2V0IG9uQ2FuY2VsbGF0aW9uUmVxdWVzdGVkKCl7cmV0dXJuIHRoaXMuX2lzQ2FuY2VsbGVkP3duOih0aGlzLl9lbWl0dGVyfHwodGhpcy5fZW1pdHRlcj1uZXcgcmUpLHRoaXMuX2VtaXR0ZXIuZXZlbnQpfWRpc3Bvc2UoKXt0aGlzLl9lbWl0dGVyJiYodGhpcy5fZW1pdHRlci5kaXNwb3NlKCksdGhpcy5fZW1pdHRlcj1udWxsKX19Y2xhc3MgaGl7Y29uc3RydWN0b3IodCl7dGhpcy5fdG9rZW49dm9pZCAwLHRoaXMuX3BhcmVudExpc3RlbmVyPXZvaWQgMCx0aGlzLl9wYXJlbnRMaXN0ZW5lcj10JiZ0Lm9uQ2FuY2VsbGF0aW9uUmVxdWVzdGVkKHRoaXMuY2FuY2VsLHRoaXMpfWdldCB0b2tlbigpe3JldHVybiB0aGlzLl90b2tlbnx8KHRoaXMuX3Rva2VuPW5ldyB1dCksdGhpcy5fdG9rZW59Y2FuY2VsKCl7dGhpcy5fdG9rZW4/dGhpcy5fdG9rZW4gaW5zdGFuY2VvZiB1dCYmdGhpcy5fdG9rZW4uY2FuY2VsKCk6dGhpcy5fdG9rZW49b3QuQ2FuY2VsbGVkfWRpc3Bvc2UodD0hMSl7dmFyIG47dCYmdGhpcy5jYW5jZWwoKSwobj10aGlzLl9wYXJlbnRMaXN0ZW5lcik9PT1udWxsfHxuPT09dm9pZCAwfHxuLmRpc3Bvc2UoKSx0aGlzLl90b2tlbj90aGlzLl90b2tlbiBpbnN0YW5jZW9mIHV0JiZ0aGlzLl90b2tlbi5kaXNwb3NlKCk6dGhpcy5fdG9rZW49b3QuTm9uZX19Y2xhc3MgVHR7Y29uc3RydWN0b3IoKXt0aGlzLl9rZXlDb2RlVG9TdHI9W10sdGhpcy5fc3RyVG9LZXlDb2RlPU9iamVjdC5jcmVhdGUobnVsbCl9ZGVmaW5lKHQsbil7dGhpcy5fa2V5Q29kZVRvU3RyW3RdPW4sdGhpcy5fc3RyVG9LZXlDb2RlW24udG9Mb3dlckNhc2UoKV09dH1rZXlDb2RlVG9TdHIodCl7cmV0dXJuIHRoaXMuX2tleUNvZGVUb1N0clt0XX1zdHJUb0tleUNvZGUodCl7cmV0dXJuIHRoaXMuX3N0clRvS2V5Q29kZVt0LnRvTG93ZXJDYXNlKCldfHwwfX1jb25zdCBjdD1uZXcgVHQsVXQ9bmV3IFR0LFZ0PW5ldyBUdCxmaT1uZXcgQXJyYXkoMjMwKSxkaT1PYmplY3QuY3JlYXRlKG51bGwpLG1pPU9iamVjdC5jcmVhdGUobnVsbCk7KGZ1bmN0aW9uKCl7Y29uc3QgZT0iIix0PVtbMSwwLCJOb25lIiwwLCJ1bmtub3duIiwwLCJWS19VTktOT1dOIixlLGVdLFsxLDEsIkh5cGVyIiwwLGUsMCxlLGUsZV0sWzEsMiwiU3VwZXIiLDAsZSwwLGUsZSxlXSxbMSwzLCJGbiIsMCxlLDAsZSxlLGVdLFsxLDQsIkZuTG9jayIsMCxlLDAsZSxlLGVdLFsxLDUsIlN1c3BlbmQiLDAsZSwwLGUsZSxlXSxbMSw2LCJSZXN1bWUiLDAsZSwwLGUsZSxlXSxbMSw3LCJUdXJibyIsMCxlLDAsZSxlLGVdLFsxLDgsIlNsZWVwIiwwLGUsMCwiVktfU0xFRVAiLGUsZV0sWzEsOSwiV2FrZVVwIiwwLGUsMCxlLGUsZV0sWzAsMTAsIktleUEiLDMxLCJBIiw2NSwiVktfQSIsZSxlXSxbMCwxMSwiS2V5QiIsMzIsIkIiLDY2LCJWS19CIixlLGVdLFswLDEyLCJLZXlDIiwzMywiQyIsNjcsIlZLX0MiLGUsZV0sWzAsMTMsIktleUQiLDM0LCJEIiw2OCwiVktfRCIsZSxlXSxbMCwxNCwiS2V5RSIsMzUsIkUiLDY5LCJWS19FIixlLGVdLFswLDE1LCJLZXlGIiwzNiwiRiIsNzAsIlZLX0YiLGUsZV0sWzAsMTYsIktleUciLDM3LCJHIiw3MSwiVktfRyIsZSxlXSxbMCwxNywiS2V5SCIsMzgsIkgiLDcyLCJWS19IIixlLGVdLFswLDE4LCJLZXlJIiwzOSwiSSIsNzMsIlZLX0kiLGUsZV0sWzAsMTksIktleUoiLDQwLCJKIiw3NCwiVktfSiIsZSxlXSxbMCwyMCwiS2V5SyIsNDEsIksiLDc1LCJWS19LIixlLGVdLFswLDIxLCJLZXlMIiw0MiwiTCIsNzYsIlZLX0wiLGUsZV0sWzAsMjIsIktleU0iLDQzLCJNIiw3NywiVktfTSIsZSxlXSxbMCwyMywiS2V5TiIsNDQsIk4iLDc4LCJWS19OIixlLGVdLFswLDI0LCJLZXlPIiw0NSwiTyIsNzksIlZLX08iLGUsZV0sWzAsMjUsIktleVAiLDQ2LCJQIiw4MCwiVktfUCIsZSxlXSxbMCwyNiwiS2V5USIsNDcsIlEiLDgxLCJWS19RIixlLGVdLFswLDI3LCJLZXlSIiw0OCwiUiIsODIsIlZLX1IiLGUsZV0sWzAsMjgsIktleVMiLDQ5LCJTIiw4MywiVktfUyIsZSxlXSxbMCwyOSwiS2V5VCIsNTAsIlQiLDg0LCJWS19UIixlLGVdLFswLDMwLCJLZXlVIiw1MSwiVSIsODUsIlZLX1UiLGUsZV0sWzAsMzEsIktleVYiLDUyLCJWIiw4NiwiVktfViIsZSxlXSxbMCwzMiwiS2V5VyIsNTMsIlciLDg3LCJWS19XIixlLGVdLFswLDMzLCJLZXlYIiw1NCwiWCIsODgsIlZLX1giLGUsZV0sWzAsMzQsIktleVkiLDU1LCJZIiw4OSwiVktfWSIsZSxlXSxbMCwzNSwiS2V5WiIsNTYsIloiLDkwLCJWS19aIixlLGVdLFswLDM2LCJEaWdpdDEiLDIyLCIxIiw0OSwiVktfMSIsZSxlXSxbMCwzNywiRGlnaXQyIiwyMywiMiIsNTAsIlZLXzIiLGUsZV0sWzAsMzgsIkRpZ2l0MyIsMjQsIjMiLDUxLCJWS18zIixlLGVdLFswLDM5LCJEaWdpdDQiLDI1LCI0Iiw1MiwiVktfNCIsZSxlXSxbMCw0MCwiRGlnaXQ1IiwyNiwiNSIsNTMsIlZLXzUiLGUsZV0sWzAsNDEsIkRpZ2l0NiIsMjcsIjYiLDU0LCJWS182IixlLGVdLFswLDQyLCJEaWdpdDciLDI4LCI3Iiw1NSwiVktfNyIsZSxlXSxbMCw0MywiRGlnaXQ4IiwyOSwiOCIsNTYsIlZLXzgiLGUsZV0sWzAsNDQsIkRpZ2l0OSIsMzAsIjkiLDU3LCJWS185IixlLGVdLFswLDQ1LCJEaWdpdDAiLDIxLCIwIiw0OCwiVktfMCIsZSxlXSxbMSw0NiwiRW50ZXIiLDMsIkVudGVyIiwxMywiVktfUkVUVVJOIixlLGVdLFsxLDQ3LCJFc2NhcGUiLDksIkVzY2FwZSIsMjcsIlZLX0VTQ0FQRSIsZSxlXSxbMSw0OCwiQmFja3NwYWNlIiwxLCJCYWNrc3BhY2UiLDgsIlZLX0JBQ0siLGUsZV0sWzEsNDksIlRhYiIsMiwiVGFiIiw5LCJWS19UQUIiLGUsZV0sWzEsNTAsIlNwYWNlIiwxMCwiU3BhY2UiLDMyLCJWS19TUEFDRSIsZSxlXSxbMCw1MSwiTWludXMiLDg4LCItIiwxODksIlZLX09FTV9NSU5VUyIsIi0iLCJPRU1fTUlOVVMiXSxbMCw1MiwiRXF1YWwiLDg2LCI9IiwxODcsIlZLX09FTV9QTFVTIiwiPSIsIk9FTV9QTFVTIl0sWzAsNTMsIkJyYWNrZXRMZWZ0Iiw5MiwiWyIsMjE5LCJWS19PRU1fNCIsIlsiLCJPRU1fNCJdLFswLDU0LCJCcmFja2V0UmlnaHQiLDk0LCJdIiwyMjEsIlZLX09FTV82IiwiXSIsIk9FTV82Il0sWzAsNTUsIkJhY2tzbGFzaCIsOTMsIlxcIiwyMjAsIlZLX09FTV81IiwiXFwiLCJPRU1fNSJdLFswLDU2LCJJbnRsSGFzaCIsMCxlLDAsZSxlLGVdLFswLDU3LCJTZW1pY29sb24iLDg1LCI7IiwxODYsIlZLX09FTV8xIiwiOyIsIk9FTV8xIl0sWzAsNTgsIlF1b3RlIiw5NSwiJyIsMjIyLCJWS19PRU1fNyIsIiciLCJPRU1fNyJdLFswLDU5LCJCYWNrcXVvdGUiLDkxLCJgIiwxOTIsIlZLX09FTV8zIiwiYCIsIk9FTV8zIl0sWzAsNjAsIkNvbW1hIiw4NywiLCIsMTg4LCJWS19PRU1fQ09NTUEiLCIsIiwiT0VNX0NPTU1BIl0sWzAsNjEsIlBlcmlvZCIsODksIi4iLDE5MCwiVktfT0VNX1BFUklPRCIsIi4iLCJPRU1fUEVSSU9EIl0sWzAsNjIsIlNsYXNoIiw5MCwiLyIsMTkxLCJWS19PRU1fMiIsIi8iLCJPRU1fMiJdLFsxLDYzLCJDYXBzTG9jayIsOCwiQ2Fwc0xvY2siLDIwLCJWS19DQVBJVEFMIixlLGVdLFsxLDY0LCJGMSIsNTksIkYxIiwxMTIsIlZLX0YxIixlLGVdLFsxLDY1LCJGMiIsNjAsIkYyIiwxMTMsIlZLX0YyIixlLGVdLFsxLDY2LCJGMyIsNjEsIkYzIiwxMTQsIlZLX0YzIixlLGVdLFsxLDY3LCJGNCIsNjIsIkY0IiwxMTUsIlZLX0Y0IixlLGVdLFsxLDY4LCJGNSIsNjMsIkY1IiwxMTYsIlZLX0Y1IixlLGVdLFsxLDY5LCJGNiIsNjQsIkY2IiwxMTcsIlZLX0Y2IixlLGVdLFsxLDcwLCJGNyIsNjUsIkY3IiwxMTgsIlZLX0Y3IixlLGVdLFsxLDcxLCJGOCIsNjYsIkY4IiwxMTksIlZLX0Y4IixlLGVdLFsxLDcyLCJGOSIsNjcsIkY5IiwxMjAsIlZLX0Y5IixlLGVdLFsxLDczLCJGMTAiLDY4LCJGMTAiLDEyMSwiVktfRjEwIixlLGVdLFsxLDc0LCJGMTEiLDY5LCJGMTEiLDEyMiwiVktfRjExIixlLGVdLFsxLDc1LCJGMTIiLDcwLCJGMTIiLDEyMywiVktfRjEyIixlLGVdLFsxLDc2LCJQcmludFNjcmVlbiIsMCxlLDAsZSxlLGVdLFsxLDc3LCJTY3JvbGxMb2NrIiw4NCwiU2Nyb2xsTG9jayIsMTQ1LCJWS19TQ1JPTEwiLGUsZV0sWzEsNzgsIlBhdXNlIiw3LCJQYXVzZUJyZWFrIiwxOSwiVktfUEFVU0UiLGUsZV0sWzEsNzksIkluc2VydCIsMTksIkluc2VydCIsNDUsIlZLX0lOU0VSVCIsZSxlXSxbMSw4MCwiSG9tZSIsMTQsIkhvbWUiLDM2LCJWS19IT01FIixlLGVdLFsxLDgxLCJQYWdlVXAiLDExLCJQYWdlVXAiLDMzLCJWS19QUklPUiIsZSxlXSxbMSw4MiwiRGVsZXRlIiwyMCwiRGVsZXRlIiw0NiwiVktfREVMRVRFIixlLGVdLFsxLDgzLCJFbmQiLDEzLCJFbmQiLDM1LCJWS19FTkQiLGUsZV0sWzEsODQsIlBhZ2VEb3duIiwxMiwiUGFnZURvd24iLDM0LCJWS19ORVhUIixlLGVdLFsxLDg1LCJBcnJvd1JpZ2h0IiwxNywiUmlnaHRBcnJvdyIsMzksIlZLX1JJR0hUIiwiUmlnaHQiLGVdLFsxLDg2LCJBcnJvd0xlZnQiLDE1LCJMZWZ0QXJyb3ciLDM3LCJWS19MRUZUIiwiTGVmdCIsZV0sWzEsODcsIkFycm93RG93biIsMTgsIkRvd25BcnJvdyIsNDAsIlZLX0RPV04iLCJEb3duIixlXSxbMSw4OCwiQXJyb3dVcCIsMTYsIlVwQXJyb3ciLDM4LCJWS19VUCIsIlVwIixlXSxbMSw4OSwiTnVtTG9jayIsODMsIk51bUxvY2siLDE0NCwiVktfTlVNTE9DSyIsZSxlXSxbMSw5MCwiTnVtcGFkRGl2aWRlIiwxMTMsIk51bVBhZF9EaXZpZGUiLDExMSwiVktfRElWSURFIixlLGVdLFsxLDkxLCJOdW1wYWRNdWx0aXBseSIsMTA4LCJOdW1QYWRfTXVsdGlwbHkiLDEwNiwiVktfTVVMVElQTFkiLGUsZV0sWzEsOTIsIk51bXBhZFN1YnRyYWN0IiwxMTEsIk51bVBhZF9TdWJ0cmFjdCIsMTA5LCJWS19TVUJUUkFDVCIsZSxlXSxbMSw5MywiTnVtcGFkQWRkIiwxMDksIk51bVBhZF9BZGQiLDEwNywiVktfQUREIixlLGVdLFsxLDk0LCJOdW1wYWRFbnRlciIsMyxlLDAsZSxlLGVdLFsxLDk1LCJOdW1wYWQxIiw5OSwiTnVtUGFkMSIsOTcsIlZLX05VTVBBRDEiLGUsZV0sWzEsOTYsIk51bXBhZDIiLDEwMCwiTnVtUGFkMiIsOTgsIlZLX05VTVBBRDIiLGUsZV0sWzEsOTcsIk51bXBhZDMiLDEwMSwiTnVtUGFkMyIsOTksIlZLX05VTVBBRDMiLGUsZV0sWzEsOTgsIk51bXBhZDQiLDEwMiwiTnVtUGFkNCIsMTAwLCJWS19OVU1QQUQ0IixlLGVdLFsxLDk5LCJOdW1wYWQ1IiwxMDMsIk51bVBhZDUiLDEwMSwiVktfTlVNUEFENSIsZSxlXSxbMSwxMDAsIk51bXBhZDYiLDEwNCwiTnVtUGFkNiIsMTAyLCJWS19OVU1QQUQ2IixlLGVdLFsxLDEwMSwiTnVtcGFkNyIsMTA1LCJOdW1QYWQ3IiwxMDMsIlZLX05VTVBBRDciLGUsZV0sWzEsMTAyLCJOdW1wYWQ4IiwxMDYsIk51bVBhZDgiLDEwNCwiVktfTlVNUEFEOCIsZSxlXSxbMSwxMDMsIk51bXBhZDkiLDEwNywiTnVtUGFkOSIsMTA1LCJWS19OVU1QQUQ5IixlLGVdLFsxLDEwNCwiTnVtcGFkMCIsOTgsIk51bVBhZDAiLDk2LCJWS19OVU1QQUQwIixlLGVdLFsxLDEwNSwiTnVtcGFkRGVjaW1hbCIsMTEyLCJOdW1QYWRfRGVjaW1hbCIsMTEwLCJWS19ERUNJTUFMIixlLGVdLFswLDEwNiwiSW50bEJhY2tzbGFzaCIsOTcsIk9FTV8xMDIiLDIyNiwiVktfT0VNXzEwMiIsZSxlXSxbMSwxMDcsIkNvbnRleHRNZW51Iiw1OCwiQ29udGV4dE1lbnUiLDkzLGUsZSxlXSxbMSwxMDgsIlBvd2VyIiwwLGUsMCxlLGUsZV0sWzEsMTA5LCJOdW1wYWRFcXVhbCIsMCxlLDAsZSxlLGVdLFsxLDExMCwiRjEzIiw3MSwiRjEzIiwxMjQsIlZLX0YxMyIsZSxlXSxbMSwxMTEsIkYxNCIsNzIsIkYxNCIsMTI1LCJWS19GMTQiLGUsZV0sWzEsMTEyLCJGMTUiLDczLCJGMTUiLDEyNiwiVktfRjE1IixlLGVdLFsxLDExMywiRjE2Iiw3NCwiRjE2IiwxMjcsIlZLX0YxNiIsZSxlXSxbMSwxMTQsIkYxNyIsNzUsIkYxNyIsMTI4LCJWS19GMTciLGUsZV0sWzEsMTE1LCJGMTgiLDc2LCJGMTgiLDEyOSwiVktfRjE4IixlLGVdLFsxLDExNiwiRjE5Iiw3NywiRjE5IiwxMzAsIlZLX0YxOSIsZSxlXSxbMSwxMTcsIkYyMCIsNzgsIkYyMCIsMTMxLCJWS19GMjAiLGUsZV0sWzEsMTE4LCJGMjEiLDc5LCJGMjEiLDEzMiwiVktfRjIxIixlLGVdLFsxLDExOSwiRjIyIiw4MCwiRjIyIiwxMzMsIlZLX0YyMiIsZSxlXSxbMSwxMjAsIkYyMyIsODEsIkYyMyIsMTM0LCJWS19GMjMiLGUsZV0sWzEsMTIxLCJGMjQiLDgyLCJGMjQiLDEzNSwiVktfRjI0IixlLGVdLFsxLDEyMiwiT3BlbiIsMCxlLDAsZSxlLGVdLFsxLDEyMywiSGVscCIsMCxlLDAsZSxlLGVdLFsxLDEyNCwiU2VsZWN0IiwwLGUsMCxlLGUsZV0sWzEsMTI1LCJBZ2FpbiIsMCxlLDAsZSxlLGVdLFsxLDEyNiwiVW5kbyIsMCxlLDAsZSxlLGVdLFsxLDEyNywiQ3V0IiwwLGUsMCxlLGUsZV0sWzEsMTI4LCJDb3B5IiwwLGUsMCxlLGUsZV0sWzEsMTI5LCJQYXN0ZSIsMCxlLDAsZSxlLGVdLFsxLDEzMCwiRmluZCIsMCxlLDAsZSxlLGVdLFsxLDEzMSwiQXVkaW9Wb2x1bWVNdXRlIiwxMTcsIkF1ZGlvVm9sdW1lTXV0ZSIsMTczLCJWS19WT0xVTUVfTVVURSIsZSxlXSxbMSwxMzIsIkF1ZGlvVm9sdW1lVXAiLDExOCwiQXVkaW9Wb2x1bWVVcCIsMTc1LCJWS19WT0xVTUVfVVAiLGUsZV0sWzEsMTMzLCJBdWRpb1ZvbHVtZURvd24iLDExOSwiQXVkaW9Wb2x1bWVEb3duIiwxNzQsIlZLX1ZPTFVNRV9ET1dOIixlLGVdLFsxLDEzNCwiTnVtcGFkQ29tbWEiLDExMCwiTnVtUGFkX1NlcGFyYXRvciIsMTA4LCJWS19TRVBBUkFUT1IiLGUsZV0sWzAsMTM1LCJJbnRsUm8iLDExNSwiQUJOVF9DMSIsMTkzLCJWS19BQk5UX0MxIixlLGVdLFsxLDEzNiwiS2FuYU1vZGUiLDAsZSwwLGUsZSxlXSxbMCwxMzcsIkludGxZZW4iLDAsZSwwLGUsZSxlXSxbMSwxMzgsIkNvbnZlcnQiLDAsZSwwLGUsZSxlXSxbMSwxMzksIk5vbkNvbnZlcnQiLDAsZSwwLGUsZSxlXSxbMSwxNDAsIkxhbmcxIiwwLGUsMCxlLGUsZV0sWzEsMTQxLCJMYW5nMiIsMCxlLDAsZSxlLGVdLFsxLDE0MiwiTGFuZzMiLDAsZSwwLGUsZSxlXSxbMSwxNDMsIkxhbmc0IiwwLGUsMCxlLGUsZV0sWzEsMTQ0LCJMYW5nNSIsMCxlLDAsZSxlLGVdLFsxLDE0NSwiQWJvcnQiLDAsZSwwLGUsZSxlXSxbMSwxNDYsIlByb3BzIiwwLGUsMCxlLGUsZV0sWzEsMTQ3LCJOdW1wYWRQYXJlbkxlZnQiLDAsZSwwLGUsZSxlXSxbMSwxNDgsIk51bXBhZFBhcmVuUmlnaHQiLDAsZSwwLGUsZSxlXSxbMSwxNDksIk51bXBhZEJhY2tzcGFjZSIsMCxlLDAsZSxlLGVdLFsxLDE1MCwiTnVtcGFkTWVtb3J5U3RvcmUiLDAsZSwwLGUsZSxlXSxbMSwxNTEsIk51bXBhZE1lbW9yeVJlY2FsbCIsMCxlLDAsZSxlLGVdLFsxLDE1MiwiTnVtcGFkTWVtb3J5Q2xlYXIiLDAsZSwwLGUsZSxlXSxbMSwxNTMsIk51bXBhZE1lbW9yeUFkZCIsMCxlLDAsZSxlLGVdLFsxLDE1NCwiTnVtcGFkTWVtb3J5U3VidHJhY3QiLDAsZSwwLGUsZSxlXSxbMSwxNTUsIk51bXBhZENsZWFyIiwxMzEsIkNsZWFyIiwxMiwiVktfQ0xFQVIiLGUsZV0sWzEsMTU2LCJOdW1wYWRDbGVhckVudHJ5IiwwLGUsMCxlLGUsZV0sWzEsMCxlLDUsIkN0cmwiLDE3LCJWS19DT05UUk9MIixlLGVdLFsxLDAsZSw0LCJTaGlmdCIsMTYsIlZLX1NISUZUIixlLGVdLFsxLDAsZSw2LCJBbHQiLDE4LCJWS19NRU5VIixlLGVdLFsxLDAsZSw1NywiTWV0YSIsOTEsIlZLX0NPTU1BTkQiLGUsZV0sWzEsMTU3LCJDb250cm9sTGVmdCIsNSxlLDAsIlZLX0xDT05UUk9MIixlLGVdLFsxLDE1OCwiU2hpZnRMZWZ0Iiw0LGUsMCwiVktfTFNISUZUIixlLGVdLFsxLDE1OSwiQWx0TGVmdCIsNixlLDAsIlZLX0xNRU5VIixlLGVdLFsxLDE2MCwiTWV0YUxlZnQiLDU3LGUsMCwiVktfTFdJTiIsZSxlXSxbMSwxNjEsIkNvbnRyb2xSaWdodCIsNSxlLDAsIlZLX1JDT05UUk9MIixlLGVdLFsxLDE2MiwiU2hpZnRSaWdodCIsNCxlLDAsIlZLX1JTSElGVCIsZSxlXSxbMSwxNjMsIkFsdFJpZ2h0Iiw2LGUsMCwiVktfUk1FTlUiLGUsZV0sWzEsMTY0LCJNZXRhUmlnaHQiLDU3LGUsMCwiVktfUldJTiIsZSxlXSxbMSwxNjUsIkJyaWdodG5lc3NVcCIsMCxlLDAsZSxlLGVdLFsxLDE2NiwiQnJpZ2h0bmVzc0Rvd24iLDAsZSwwLGUsZSxlXSxbMSwxNjcsIk1lZGlhUGxheSIsMCxlLDAsZSxlLGVdLFsxLDE2OCwiTWVkaWFSZWNvcmQiLDAsZSwwLGUsZSxlXSxbMSwxNjksIk1lZGlhRmFzdEZvcndhcmQiLDAsZSwwLGUsZSxlXSxbMSwxNzAsIk1lZGlhUmV3aW5kIiwwLGUsMCxlLGUsZV0sWzEsMTcxLCJNZWRpYVRyYWNrTmV4dCIsMTI0LCJNZWRpYVRyYWNrTmV4dCIsMTc2LCJWS19NRURJQV9ORVhUX1RSQUNLIixlLGVdLFsxLDE3MiwiTWVkaWFUcmFja1ByZXZpb3VzIiwxMjUsIk1lZGlhVHJhY2tQcmV2aW91cyIsMTc3LCJWS19NRURJQV9QUkVWX1RSQUNLIixlLGVdLFsxLDE3MywiTWVkaWFTdG9wIiwxMjYsIk1lZGlhU3RvcCIsMTc4LCJWS19NRURJQV9TVE9QIixlLGVdLFsxLDE3NCwiRWplY3QiLDAsZSwwLGUsZSxlXSxbMSwxNzUsIk1lZGlhUGxheVBhdXNlIiwxMjcsIk1lZGlhUGxheVBhdXNlIiwxNzksIlZLX01FRElBX1BMQVlfUEFVU0UiLGUsZV0sWzEsMTc2LCJNZWRpYVNlbGVjdCIsMTI4LCJMYXVuY2hNZWRpYVBsYXllciIsMTgxLCJWS19NRURJQV9MQVVOQ0hfTUVESUFfU0VMRUNUIixlLGVdLFsxLDE3NywiTGF1bmNoTWFpbCIsMTI5LCJMYXVuY2hNYWlsIiwxODAsIlZLX01FRElBX0xBVU5DSF9NQUlMIixlLGVdLFsxLDE3OCwiTGF1bmNoQXBwMiIsMTMwLCJMYXVuY2hBcHAyIiwxODMsIlZLX01FRElBX0xBVU5DSF9BUFAyIixlLGVdLFsxLDE3OSwiTGF1bmNoQXBwMSIsMCxlLDAsIlZLX01FRElBX0xBVU5DSF9BUFAxIixlLGVdLFsxLDE4MCwiU2VsZWN0VGFzayIsMCxlLDAsZSxlLGVdLFsxLDE4MSwiTGF1bmNoU2NyZWVuU2F2ZXIiLDAsZSwwLGUsZSxlXSxbMSwxODIsIkJyb3dzZXJTZWFyY2giLDEyMCwiQnJvd3NlclNlYXJjaCIsMTcwLCJWS19CUk9XU0VSX1NFQVJDSCIsZSxlXSxbMSwxODMsIkJyb3dzZXJIb21lIiwxMjEsIkJyb3dzZXJIb21lIiwxNzIsIlZLX0JST1dTRVJfSE9NRSIsZSxlXSxbMSwxODQsIkJyb3dzZXJCYWNrIiwxMjIsIkJyb3dzZXJCYWNrIiwxNjYsIlZLX0JST1dTRVJfQkFDSyIsZSxlXSxbMSwxODUsIkJyb3dzZXJGb3J3YXJkIiwxMjMsIkJyb3dzZXJGb3J3YXJkIiwxNjcsIlZLX0JST1dTRVJfRk9SV0FSRCIsZSxlXSxbMSwxODYsIkJyb3dzZXJTdG9wIiwwLGUsMCwiVktfQlJPV1NFUl9TVE9QIixlLGVdLFsxLDE4NywiQnJvd3NlclJlZnJlc2giLDAsZSwwLCJWS19CUk9XU0VSX1JFRlJFU0giLGUsZV0sWzEsMTg4LCJCcm93c2VyRmF2b3JpdGVzIiwwLGUsMCwiVktfQlJPV1NFUl9GQVZPUklURVMiLGUsZV0sWzEsMTg5LCJab29tVG9nZ2xlIiwwLGUsMCxlLGUsZV0sWzEsMTkwLCJNYWlsUmVwbHkiLDAsZSwwLGUsZSxlXSxbMSwxOTEsIk1haWxGb3J3YXJkIiwwLGUsMCxlLGUsZV0sWzEsMTkyLCJNYWlsU2VuZCIsMCxlLDAsZSxlLGVdLFsxLDAsZSwxMTQsIktleUluQ29tcG9zaXRpb24iLDIyOSxlLGUsZV0sWzEsMCxlLDExNiwiQUJOVF9DMiIsMTk0LCJWS19BQk5UX0MyIixlLGVdLFsxLDAsZSw5NiwiT0VNXzgiLDIyMywiVktfT0VNXzgiLGUsZV0sWzEsMCxlLDAsZSwwLCJWS19LQU5BIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfSEFOR1VMIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfSlVOSkEiLGUsZV0sWzEsMCxlLDAsZSwwLCJWS19GSU5BTCIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX0hBTkpBIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfS0FOSkkiLGUsZV0sWzEsMCxlLDAsZSwwLCJWS19DT05WRVJUIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfTk9OQ09OVkVSVCIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX0FDQ0VQVCIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX01PREVDSEFOR0UiLGUsZV0sWzEsMCxlLDAsZSwwLCJWS19TRUxFQ1QiLGUsZV0sWzEsMCxlLDAsZSwwLCJWS19QUklOVCIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX0VYRUNVVEUiLGUsZV0sWzEsMCxlLDAsZSwwLCJWS19TTkFQU0hPVCIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX0hFTFAiLGUsZV0sWzEsMCxlLDAsZSwwLCJWS19BUFBTIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfUFJPQ0VTU0tFWSIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX1BBQ0tFVCIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX0RCRV9TQkNTQ0hBUiIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX0RCRV9EQkNTQ0hBUiIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX0FUVE4iLGUsZV0sWzEsMCxlLDAsZSwwLCJWS19DUlNFTCIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX0VYU0VMIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfRVJFT0YiLGUsZV0sWzEsMCxlLDAsZSwwLCJWS19QTEFZIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfWk9PTSIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX05PTkFNRSIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX1BBMSIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX09FTV9DTEVBUiIsZSxlXV0sbj1bXSxzPVtdO2Zvcihjb25zdCByIG9mIHQpe2NvbnN0W2ksbCxvLHUsYyxoLGYsZCxtXT1yO2lmKHNbbF18fChzW2xdPSEwLGRpW29dPWwsbWlbby50b0xvd2VyQ2FzZSgpXT1sKSwhblt1XSl7aWYoblt1XT0hMCwhYyl0aHJvdyBuZXcgRXJyb3IoYFN0cmluZyByZXByZXNlbnRhdGlvbiBtaXNzaW5nIGZvciBrZXkgY29kZSAke3V9IGFyb3VuZCBzY2FuIGNvZGUgJHtvfWApO2N0LmRlZmluZSh1LGMpLFV0LmRlZmluZSh1LGR8fGMpLFZ0LmRlZmluZSh1LG18fGR8fGMpfWgmJihmaVtoXT11KX19KSgpO3ZhciBObjsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChvKXtyZXR1cm4gY3Qua2V5Q29kZVRvU3RyKG8pfWUudG9TdHJpbmc9dDtmdW5jdGlvbiBuKG8pe3JldHVybiBjdC5zdHJUb0tleUNvZGUobyl9ZS5mcm9tU3RyaW5nPW47ZnVuY3Rpb24gcyhvKXtyZXR1cm4gVXQua2V5Q29kZVRvU3RyKG8pfWUudG9Vc2VyU2V0dGluZ3NVUz1zO2Z1bmN0aW9uIHIobyl7cmV0dXJuIFZ0LmtleUNvZGVUb1N0cihvKX1lLnRvVXNlclNldHRpbmdzR2VuZXJhbD1yO2Z1bmN0aW9uIGkobyl7cmV0dXJuIFV0LnN0clRvS2V5Q29kZShvKXx8VnQuc3RyVG9LZXlDb2RlKG8pfWUuZnJvbVVzZXJTZXR0aW5ncz1pO2Z1bmN0aW9uIGwobyl7aWYobz49OTgmJm88PTExMylyZXR1cm4gbnVsbDtzd2l0Y2gobyl7Y2FzZSAxNjpyZXR1cm4iVXAiO2Nhc2UgMTg6cmV0dXJuIkRvd24iO2Nhc2UgMTU6cmV0dXJuIkxlZnQiO2Nhc2UgMTc6cmV0dXJuIlJpZ2h0In1yZXR1cm4gY3Qua2V5Q29kZVRvU3RyKG8pfWUudG9FbGVjdHJvbkFjY2VsZXJhdG9yPWx9KShObnx8KE5uPXt9KSk7ZnVuY3Rpb24gZ2koZSx0KXtjb25zdCBuPSh0JjY1NTM1KTw8MTY+Pj4wO3JldHVybihlfG4pPj4+MH1jbGFzcyB0ZSBleHRlbmRzIER7Y29uc3RydWN0b3IodCxuLHMscil7c3VwZXIodCxuLHMsciksdGhpcy5zZWxlY3Rpb25TdGFydExpbmVOdW1iZXI9dCx0aGlzLnNlbGVjdGlvblN0YXJ0Q29sdW1uPW4sdGhpcy5wb3NpdGlvbkxpbmVOdW1iZXI9cyx0aGlzLnBvc2l0aW9uQ29sdW1uPXJ9dG9TdHJpbmcoKXtyZXR1cm4iWyIrdGhpcy5zZWxlY3Rpb25TdGFydExpbmVOdW1iZXIrIiwiK3RoaXMuc2VsZWN0aW9uU3RhcnRDb2x1bW4rIiAtPiAiK3RoaXMucG9zaXRpb25MaW5lTnVtYmVyKyIsIit0aGlzLnBvc2l0aW9uQ29sdW1uKyJdIn1lcXVhbHNTZWxlY3Rpb24odCl7cmV0dXJuIHRlLnNlbGVjdGlvbnNFcXVhbCh0aGlzLHQpfXN0YXRpYyBzZWxlY3Rpb25zRXF1YWwodCxuKXtyZXR1cm4gdC5zZWxlY3Rpb25TdGFydExpbmVOdW1iZXI9PT1uLnNlbGVjdGlvblN0YXJ0TGluZU51bWJlciYmdC5zZWxlY3Rpb25TdGFydENvbHVtbj09PW4uc2VsZWN0aW9uU3RhcnRDb2x1bW4mJnQucG9zaXRpb25MaW5lTnVtYmVyPT09bi5wb3NpdGlvbkxpbmVOdW1iZXImJnQucG9zaXRpb25Db2x1bW49PT1uLnBvc2l0aW9uQ29sdW1ufWdldERpcmVjdGlvbigpe3JldHVybiB0aGlzLnNlbGVjdGlvblN0YXJ0TGluZU51bWJlcj09PXRoaXMuc3RhcnRMaW5lTnVtYmVyJiZ0aGlzLnNlbGVjdGlvblN0YXJ0Q29sdW1uPT09dGhpcy5zdGFydENvbHVtbj8wOjF9c2V0RW5kUG9zaXRpb24odCxuKXtyZXR1cm4gdGhpcy5nZXREaXJlY3Rpb24oKT09PTA/bmV3IHRlKHRoaXMuc3RhcnRMaW5lTnVtYmVyLHRoaXMuc3RhcnRDb2x1bW4sdCxuKTpuZXcgdGUodCxuLHRoaXMuc3RhcnRMaW5lTnVtYmVyLHRoaXMuc3RhcnRDb2x1bW4pfWdldFBvc2l0aW9uKCl7cmV0dXJuIG5ldyBZKHRoaXMucG9zaXRpb25MaW5lTnVtYmVyLHRoaXMucG9zaXRpb25Db2x1bW4pfWdldFNlbGVjdGlvblN0YXJ0KCl7cmV0dXJuIG5ldyBZKHRoaXMuc2VsZWN0aW9uU3RhcnRMaW5lTnVtYmVyLHRoaXMuc2VsZWN0aW9uU3RhcnRDb2x1bW4pfXNldFN0YXJ0UG9zaXRpb24odCxuKXtyZXR1cm4gdGhpcy5nZXREaXJlY3Rpb24oKT09PTA/bmV3IHRlKHQsbix0aGlzLmVuZExpbmVOdW1iZXIsdGhpcy5lbmRDb2x1bW4pOm5ldyB0ZSh0aGlzLmVuZExpbmVOdW1iZXIsdGhpcy5lbmRDb2x1bW4sdCxuKX1zdGF0aWMgZnJvbVBvc2l0aW9ucyh0LG49dCl7cmV0dXJuIG5ldyB0ZSh0LmxpbmVOdW1iZXIsdC5jb2x1bW4sbi5saW5lTnVtYmVyLG4uY29sdW1uKX1zdGF0aWMgZnJvbVJhbmdlKHQsbil7cmV0dXJuIG49PT0wP25ldyB0ZSh0LnN0YXJ0TGluZU51bWJlcix0LnN0YXJ0Q29sdW1uLHQuZW5kTGluZU51bWJlcix0LmVuZENvbHVtbik6bmV3IHRlKHQuZW5kTGluZU51bWJlcix0LmVuZENvbHVtbix0LnN0YXJ0TGluZU51bWJlcix0LnN0YXJ0Q29sdW1uKX1zdGF0aWMgbGlmdFNlbGVjdGlvbih0KXtyZXR1cm4gbmV3IHRlKHQuc2VsZWN0aW9uU3RhcnRMaW5lTnVtYmVyLHQuc2VsZWN0aW9uU3RhcnRDb2x1bW4sdC5wb3NpdGlvbkxpbmVOdW1iZXIsdC5wb3NpdGlvbkNvbHVtbil9c3RhdGljIHNlbGVjdGlvbnNBcnJFcXVhbCh0LG4pe2lmKHQmJiFufHwhdCYmbilyZXR1cm4hMTtpZighdCYmIW4pcmV0dXJuITA7aWYodC5sZW5ndGghPT1uLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IHM9MCxyPXQubGVuZ3RoO3M8cjtzKyspaWYoIXRoaXMuc2VsZWN0aW9uc0VxdWFsKHRbc10sbltzXSkpcmV0dXJuITE7cmV0dXJuITB9c3RhdGljIGlzSVNlbGVjdGlvbih0KXtyZXR1cm4gdCYmdHlwZW9mIHQuc2VsZWN0aW9uU3RhcnRMaW5lTnVtYmVyPT0ibnVtYmVyIiYmdHlwZW9mIHQuc2VsZWN0aW9uU3RhcnRDb2x1bW49PSJudW1iZXIiJiZ0eXBlb2YgdC5wb3NpdGlvbkxpbmVOdW1iZXI9PSJudW1iZXIiJiZ0eXBlb2YgdC5wb3NpdGlvbkNvbHVtbj09Im51bWJlciJ9c3RhdGljIGNyZWF0ZVdpdGhEaXJlY3Rpb24odCxuLHMscixpKXtyZXR1cm4gaT09PTA/bmV3IHRlKHQsbixzLHIpOm5ldyB0ZShzLHIsdCxuKX19Y29uc3QgU249T2JqZWN0LmNyZWF0ZShudWxsKTtmdW5jdGlvbiBhKGUsdCl7aWYodHIodCkpe2NvbnN0IG49U25bdF07aWYobj09PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoYCR7ZX0gcmVmZXJlbmNlcyBhbiB1bmtub3duIGNvZGljb246ICR7dH1gKTt0PW59cmV0dXJuIFNuW2VdPXQse2lkOmV9fWNvbnN0IE09e2FkZDphKCJhZGQiLDZlNCkscGx1czphKCJwbHVzIiw2ZTQpLGdpc3ROZXc6YSgiZ2lzdC1uZXciLDZlNCkscmVwb0NyZWF0ZTphKCJyZXBvLWNyZWF0ZSIsNmU0KSxsaWdodGJ1bGI6YSgibGlnaHRidWxiIiw2MDAwMSksbGlnaHRCdWxiOmEoImxpZ2h0LWJ1bGIiLDYwMDAxKSxyZXBvOmEoInJlcG8iLDYwMDAyKSxyZXBvRGVsZXRlOmEoInJlcG8tZGVsZXRlIiw2MDAwMiksZ2lzdEZvcms6YSgiZ2lzdC1mb3JrIiw2MDAwMykscmVwb0ZvcmtlZDphKCJyZXBvLWZvcmtlZCIsNjAwMDMpLGdpdFB1bGxSZXF1ZXN0OmEoImdpdC1wdWxsLXJlcXVlc3QiLDYwMDA0KSxnaXRQdWxsUmVxdWVzdEFiYW5kb25lZDphKCJnaXQtcHVsbC1yZXF1ZXN0LWFiYW5kb25lZCIsNjAwMDQpLHJlY29yZEtleXM6YSgicmVjb3JkLWtleXMiLDYwMDA1KSxrZXlib2FyZDphKCJrZXlib2FyZCIsNjAwMDUpLHRhZzphKCJ0YWciLDYwMDA2KSx0YWdBZGQ6YSgidGFnLWFkZCIsNjAwMDYpLHRhZ1JlbW92ZTphKCJ0YWctcmVtb3ZlIiw2MDAwNiksZ2l0UHVsbFJlcXVlc3RMYWJlbDphKCJnaXQtcHVsbC1yZXF1ZXN0LWxhYmVsIiw2MDAwNikscGVyc29uOmEoInBlcnNvbiIsNjAwMDcpLHBlcnNvbkZvbGxvdzphKCJwZXJzb24tZm9sbG93Iiw2MDAwNykscGVyc29uT3V0bGluZTphKCJwZXJzb24tb3V0bGluZSIsNjAwMDcpLHBlcnNvbkZpbGxlZDphKCJwZXJzb24tZmlsbGVkIiw2MDAwNyksZ2l0QnJhbmNoOmEoImdpdC1icmFuY2giLDYwMDA4KSxnaXRCcmFuY2hDcmVhdGU6YSgiZ2l0LWJyYW5jaC1jcmVhdGUiLDYwMDA4KSxnaXRCcmFuY2hEZWxldGU6YSgiZ2l0LWJyYW5jaC1kZWxldGUiLDYwMDA4KSxzb3VyY2VDb250cm9sOmEoInNvdXJjZS1jb250cm9sIiw2MDAwOCksbWlycm9yOmEoIm1pcnJvciIsNjAwMDkpLG1pcnJvclB1YmxpYzphKCJtaXJyb3ItcHVibGljIiw2MDAwOSksc3RhcjphKCJzdGFyIiw2MDAxMCksc3RhckFkZDphKCJzdGFyLWFkZCIsNjAwMTApLHN0YXJEZWxldGU6YSgic3Rhci1kZWxldGUiLDYwMDEwKSxzdGFyRW1wdHk6YSgic3Rhci1lbXB0eSIsNjAwMTApLGNvbW1lbnQ6YSgiY29tbWVudCIsNjAwMTEpLGNvbW1lbnRBZGQ6YSgiY29tbWVudC1hZGQiLDYwMDExKSxhbGVydDphKCJhbGVydCIsNjAwMTIpLHdhcm5pbmc6YSgid2FybmluZyIsNjAwMTIpLHNlYXJjaDphKCJzZWFyY2giLDYwMDEzKSxzZWFyY2hTYXZlOmEoInNlYXJjaC1zYXZlIiw2MDAxMyksbG9nT3V0OmEoImxvZy1vdXQiLDYwMDE0KSxzaWduT3V0OmEoInNpZ24tb3V0Iiw2MDAxNCksbG9nSW46YSgibG9nLWluIiw2MDAxNSksc2lnbkluOmEoInNpZ24taW4iLDYwMDE1KSxleWU6YSgiZXllIiw2MDAxNiksZXllVW53YXRjaDphKCJleWUtdW53YXRjaCIsNjAwMTYpLGV5ZVdhdGNoOmEoImV5ZS13YXRjaCIsNjAwMTYpLGNpcmNsZUZpbGxlZDphKCJjaXJjbGUtZmlsbGVkIiw2MDAxNykscHJpbWl0aXZlRG90OmEoInByaW1pdGl2ZS1kb3QiLDYwMDE3KSxjbG9zZURpcnR5OmEoImNsb3NlLWRpcnR5Iiw2MDAxNyksZGVidWdCcmVha3BvaW50OmEoImRlYnVnLWJyZWFrcG9pbnQiLDYwMDE3KSxkZWJ1Z0JyZWFrcG9pbnREaXNhYmxlZDphKCJkZWJ1Zy1icmVha3BvaW50LWRpc2FibGVkIiw2MDAxNyksZGVidWdCcmVha3BvaW50UGVuZGluZzphKCJkZWJ1Zy1icmVha3BvaW50LXBlbmRpbmciLDYwMzc3KSxkZWJ1Z0hpbnQ6YSgiZGVidWctaGludCIsNjAwMTcpLHByaW1pdGl2ZVNxdWFyZTphKCJwcmltaXRpdmUtc3F1YXJlIiw2MDAxOCksZWRpdDphKCJlZGl0Iiw2MDAxOSkscGVuY2lsOmEoInBlbmNpbCIsNjAwMTkpLGluZm86YSgiaW5mbyIsNjAwMjApLGlzc3VlT3BlbmVkOmEoImlzc3VlLW9wZW5lZCIsNjAwMjApLGdpc3RQcml2YXRlOmEoImdpc3QtcHJpdmF0ZSIsNjAwMjEpLGdpdEZvcmtQcml2YXRlOmEoImdpdC1mb3JrLXByaXZhdGUiLDYwMDIxKSxsb2NrOmEoImxvY2siLDYwMDIxKSxtaXJyb3JQcml2YXRlOmEoIm1pcnJvci1wcml2YXRlIiw2MDAyMSksY2xvc2U6YSgiY2xvc2UiLDYwMDIyKSxyZW1vdmVDbG9zZTphKCJyZW1vdmUtY2xvc2UiLDYwMDIyKSx4OmEoIngiLDYwMDIyKSxyZXBvU3luYzphKCJyZXBvLXN5bmMiLDYwMDIzKSxzeW5jOmEoInN5bmMiLDYwMDIzKSxjbG9uZTphKCJjbG9uZSIsNjAwMjQpLGRlc2t0b3BEb3dubG9hZDphKCJkZXNrdG9wLWRvd25sb2FkIiw2MDAyNCksYmVha2VyOmEoImJlYWtlciIsNjAwMjUpLG1pY3Jvc2NvcGU6YSgibWljcm9zY29wZSIsNjAwMjUpLHZtOmEoInZtIiw2MDAyNiksZGV2aWNlRGVza3RvcDphKCJkZXZpY2UtZGVza3RvcCIsNjAwMjYpLGZpbGU6YSgiZmlsZSIsNjAwMjcpLGZpbGVUZXh0OmEoImZpbGUtdGV4dCIsNjAwMjcpLG1vcmU6YSgibW9yZSIsNjAwMjgpLGVsbGlwc2lzOmEoImVsbGlwc2lzIiw2MDAyOCksa2ViYWJIb3Jpem9udGFsOmEoImtlYmFiLWhvcml6b250YWwiLDYwMDI4KSxtYWlsUmVwbHk6YSgibWFpbC1yZXBseSIsNjAwMjkpLHJlcGx5OmEoInJlcGx5Iiw2MDAyOSksb3JnYW5pemF0aW9uOmEoIm9yZ2FuaXphdGlvbiIsNjAwMzApLG9yZ2FuaXphdGlvbkZpbGxlZDphKCJvcmdhbml6YXRpb24tZmlsbGVkIiw2MDAzMCksb3JnYW5pemF0aW9uT3V0bGluZTphKCJvcmdhbml6YXRpb24tb3V0bGluZSIsNjAwMzApLG5ld0ZpbGU6YSgibmV3LWZpbGUiLDYwMDMxKSxmaWxlQWRkOmEoImZpbGUtYWRkIiw2MDAzMSksbmV3Rm9sZGVyOmEoIm5ldy1mb2xkZXIiLDYwMDMyKSxmaWxlRGlyZWN0b3J5Q3JlYXRlOmEoImZpbGUtZGlyZWN0b3J5LWNyZWF0ZSIsNjAwMzIpLHRyYXNoOmEoInRyYXNoIiw2MDAzMyksdHJhc2hjYW46YSgidHJhc2hjYW4iLDYwMDMzKSxoaXN0b3J5OmEoImhpc3RvcnkiLDYwMDM0KSxjbG9jazphKCJjbG9jayIsNjAwMzQpLGZvbGRlcjphKCJmb2xkZXIiLDYwMDM1KSxmaWxlRGlyZWN0b3J5OmEoImZpbGUtZGlyZWN0b3J5Iiw2MDAzNSksc3ltYm9sRm9sZGVyOmEoInN5bWJvbC1mb2xkZXIiLDYwMDM1KSxsb2dvR2l0aHViOmEoImxvZ28tZ2l0aHViIiw2MDAzNiksbWFya0dpdGh1YjphKCJtYXJrLWdpdGh1YiIsNjAwMzYpLGdpdGh1YjphKCJnaXRodWIiLDYwMDM2KSx0ZXJtaW5hbDphKCJ0ZXJtaW5hbCIsNjAwMzcpLGNvbnNvbGU6YSgiY29uc29sZSIsNjAwMzcpLHJlcGw6YSgicmVwbCIsNjAwMzcpLHphcDphKCJ6YXAiLDYwMDM4KSxzeW1ib2xFdmVudDphKCJzeW1ib2wtZXZlbnQiLDYwMDM4KSxlcnJvcjphKCJlcnJvciIsNjAwMzkpLHN0b3A6YSgic3RvcCIsNjAwMzkpLHZhcmlhYmxlOmEoInZhcmlhYmxlIiw2MDA0MCksc3ltYm9sVmFyaWFibGU6YSgic3ltYm9sLXZhcmlhYmxlIiw2MDA0MCksYXJyYXk6YSgiYXJyYXkiLDYwMDQyKSxzeW1ib2xBcnJheTphKCJzeW1ib2wtYXJyYXkiLDYwMDQyKSxzeW1ib2xNb2R1bGU6YSgic3ltYm9sLW1vZHVsZSIsNjAwNDMpLHN5bWJvbFBhY2thZ2U6YSgic3ltYm9sLXBhY2thZ2UiLDYwMDQzKSxzeW1ib2xOYW1lc3BhY2U6YSgic3ltYm9sLW5hbWVzcGFjZSIsNjAwNDMpLHN5bWJvbE9iamVjdDphKCJzeW1ib2wtb2JqZWN0Iiw2MDA0Myksc3ltYm9sTWV0aG9kOmEoInN5bWJvbC1tZXRob2QiLDYwMDQ0KSxzeW1ib2xGdW5jdGlvbjphKCJzeW1ib2wtZnVuY3Rpb24iLDYwMDQ0KSxzeW1ib2xDb25zdHJ1Y3RvcjphKCJzeW1ib2wtY29uc3RydWN0b3IiLDYwMDQ0KSxzeW1ib2xCb29sZWFuOmEoInN5bWJvbC1ib29sZWFuIiw2MDA0Nyksc3ltYm9sTnVsbDphKCJzeW1ib2wtbnVsbCIsNjAwNDcpLHN5bWJvbE51bWVyaWM6YSgic3ltYm9sLW51bWVyaWMiLDYwMDQ4KSxzeW1ib2xOdW1iZXI6YSgic3ltYm9sLW51bWJlciIsNjAwNDgpLHN5bWJvbFN0cnVjdHVyZTphKCJzeW1ib2wtc3RydWN0dXJlIiw2MDA0OSksc3ltYm9sU3RydWN0OmEoInN5bWJvbC1zdHJ1Y3QiLDYwMDQ5KSxzeW1ib2xQYXJhbWV0ZXI6YSgic3ltYm9sLXBhcmFtZXRlciIsNjAwNTApLHN5bWJvbFR5cGVQYXJhbWV0ZXI6YSgic3ltYm9sLXR5cGUtcGFyYW1ldGVyIiw2MDA1MCksc3ltYm9sS2V5OmEoInN5bWJvbC1rZXkiLDYwMDUxKSxzeW1ib2xUZXh0OmEoInN5bWJvbC10ZXh0Iiw2MDA1MSksc3ltYm9sUmVmZXJlbmNlOmEoInN5bWJvbC1yZWZlcmVuY2UiLDYwMDUyKSxnb1RvRmlsZTphKCJnby10by1maWxlIiw2MDA1Miksc3ltYm9sRW51bTphKCJzeW1ib2wtZW51bSIsNjAwNTMpLHN5bWJvbFZhbHVlOmEoInN5bWJvbC12YWx1ZSIsNjAwNTMpLHN5bWJvbFJ1bGVyOmEoInN5bWJvbC1ydWxlciIsNjAwNTQpLHN5bWJvbFVuaXQ6YSgic3ltYm9sLXVuaXQiLDYwMDU0KSxhY3RpdmF0ZUJyZWFrcG9pbnRzOmEoImFjdGl2YXRlLWJyZWFrcG9pbnRzIiw2MDA1NSksYXJjaGl2ZTphKCJhcmNoaXZlIiw2MDA1NiksYXJyb3dCb3RoOmEoImFycm93LWJvdGgiLDYwMDU3KSxhcnJvd0Rvd246YSgiYXJyb3ctZG93biIsNjAwNTgpLGFycm93TGVmdDphKCJhcnJvdy1sZWZ0Iiw2MDA1OSksYXJyb3dSaWdodDphKCJhcnJvdy1yaWdodCIsNjAwNjApLGFycm93U21hbGxEb3duOmEoImFycm93LXNtYWxsLWRvd24iLDYwMDYxKSxhcnJvd1NtYWxsTGVmdDphKCJhcnJvdy1zbWFsbC1sZWZ0Iiw2MDA2MiksYXJyb3dTbWFsbFJpZ2h0OmEoImFycm93LXNtYWxsLXJpZ2h0Iiw2MDA2MyksYXJyb3dTbWFsbFVwOmEoImFycm93LXNtYWxsLXVwIiw2MDA2NCksYXJyb3dVcDphKCJhcnJvdy11cCIsNjAwNjUpLGJlbGw6YSgiYmVsbCIsNjAwNjYpLGJvbGQ6YSgiYm9sZCIsNjAwNjcpLGJvb2s6YSgiYm9vayIsNjAwNjgpLGJvb2ttYXJrOmEoImJvb2ttYXJrIiw2MDA2OSksZGVidWdCcmVha3BvaW50Q29uZGl0aW9uYWxVbnZlcmlmaWVkOmEoImRlYnVnLWJyZWFrcG9pbnQtY29uZGl0aW9uYWwtdW52ZXJpZmllZCIsNjAwNzApLGRlYnVnQnJlYWtwb2ludENvbmRpdGlvbmFsOmEoImRlYnVnLWJyZWFrcG9pbnQtY29uZGl0aW9uYWwiLDYwMDcxKSxkZWJ1Z0JyZWFrcG9pbnRDb25kaXRpb25hbERpc2FibGVkOmEoImRlYnVnLWJyZWFrcG9pbnQtY29uZGl0aW9uYWwtZGlzYWJsZWQiLDYwMDcxKSxkZWJ1Z0JyZWFrcG9pbnREYXRhVW52ZXJpZmllZDphKCJkZWJ1Zy1icmVha3BvaW50LWRhdGEtdW52ZXJpZmllZCIsNjAwNzIpLGRlYnVnQnJlYWtwb2ludERhdGE6YSgiZGVidWctYnJlYWtwb2ludC1kYXRhIiw2MDA3MyksZGVidWdCcmVha3BvaW50RGF0YURpc2FibGVkOmEoImRlYnVnLWJyZWFrcG9pbnQtZGF0YS1kaXNhYmxlZCIsNjAwNzMpLGRlYnVnQnJlYWtwb2ludExvZ1VudmVyaWZpZWQ6YSgiZGVidWctYnJlYWtwb2ludC1sb2ctdW52ZXJpZmllZCIsNjAwNzQpLGRlYnVnQnJlYWtwb2ludExvZzphKCJkZWJ1Zy1icmVha3BvaW50LWxvZyIsNjAwNzUpLGRlYnVnQnJlYWtwb2ludExvZ0Rpc2FibGVkOmEoImRlYnVnLWJyZWFrcG9pbnQtbG9nLWRpc2FibGVkIiw2MDA3NSksYnJpZWZjYXNlOmEoImJyaWVmY2FzZSIsNjAwNzYpLGJyb2FkY2FzdDphKCJicm9hZGNhc3QiLDYwMDc3KSxicm93c2VyOmEoImJyb3dzZXIiLDYwMDc4KSxidWc6YSgiYnVnIiw2MDA3OSksY2FsZW5kYXI6YSgiY2FsZW5kYXIiLDYwMDgwKSxjYXNlU2Vuc2l0aXZlOmEoImNhc2Utc2Vuc2l0aXZlIiw2MDA4MSksY2hlY2s6YSgiY2hlY2siLDYwMDgyKSxjaGVja2xpc3Q6YSgiY2hlY2tsaXN0Iiw2MDA4MyksY2hldnJvbkRvd246YSgiY2hldnJvbi1kb3duIiw2MDA4NCksZHJvcERvd25CdXR0b246YSgiZHJvcC1kb3duLWJ1dHRvbiIsNjAwODQpLGNoZXZyb25MZWZ0OmEoImNoZXZyb24tbGVmdCIsNjAwODUpLGNoZXZyb25SaWdodDphKCJjaGV2cm9uLXJpZ2h0Iiw2MDA4NiksY2hldnJvblVwOmEoImNoZXZyb24tdXAiLDYwMDg3KSxjaHJvbWVDbG9zZTphKCJjaHJvbWUtY2xvc2UiLDYwMDg4KSxjaHJvbWVNYXhpbWl6ZTphKCJjaHJvbWUtbWF4aW1pemUiLDYwMDg5KSxjaHJvbWVNaW5pbWl6ZTphKCJjaHJvbWUtbWluaW1pemUiLDYwMDkwKSxjaHJvbWVSZXN0b3JlOmEoImNocm9tZS1yZXN0b3JlIiw2MDA5MSksY2lyY2xlOmEoImNpcmNsZSIsNjAwOTIpLGNpcmNsZU91dGxpbmU6YSgiY2lyY2xlLW91dGxpbmUiLDYwMDkyKSxkZWJ1Z0JyZWFrcG9pbnRVbnZlcmlmaWVkOmEoImRlYnVnLWJyZWFrcG9pbnQtdW52ZXJpZmllZCIsNjAwOTIpLGNpcmNsZVNsYXNoOmEoImNpcmNsZS1zbGFzaCIsNjAwOTMpLGNpcmN1aXRCb2FyZDphKCJjaXJjdWl0LWJvYXJkIiw2MDA5NCksY2xlYXJBbGw6YSgiY2xlYXItYWxsIiw2MDA5NSksY2xpcHB5OmEoImNsaXBweSIsNjAwOTYpLGNsb3NlQWxsOmEoImNsb3NlLWFsbCIsNjAwOTcpLGNsb3VkRG93bmxvYWQ6YSgiY2xvdWQtZG93bmxvYWQiLDYwMDk4KSxjbG91ZFVwbG9hZDphKCJjbG91ZC11cGxvYWQiLDYwMDk5KSxjb2RlOmEoImNvZGUiLDYwMTAwKSxjb2xsYXBzZUFsbDphKCJjb2xsYXBzZS1hbGwiLDYwMTAxKSxjb2xvck1vZGU6YSgiY29sb3ItbW9kZSIsNjAxMDIpLGNvbW1lbnREaXNjdXNzaW9uOmEoImNvbW1lbnQtZGlzY3Vzc2lvbiIsNjAxMDMpLGNvbXBhcmVDaGFuZ2VzOmEoImNvbXBhcmUtY2hhbmdlcyIsNjAxNTcpLGNyZWRpdENhcmQ6YSgiY3JlZGl0LWNhcmQiLDYwMTA1KSxkYXNoOmEoImRhc2giLDYwMTA4KSxkYXNoYm9hcmQ6YSgiZGFzaGJvYXJkIiw2MDEwOSksZGF0YWJhc2U6YSgiZGF0YWJhc2UiLDYwMTEwKSxkZWJ1Z0NvbnRpbnVlOmEoImRlYnVnLWNvbnRpbnVlIiw2MDExMSksZGVidWdEaXNjb25uZWN0OmEoImRlYnVnLWRpc2Nvbm5lY3QiLDYwMTEyKSxkZWJ1Z1BhdXNlOmEoImRlYnVnLXBhdXNlIiw2MDExMyksZGVidWdSZXN0YXJ0OmEoImRlYnVnLXJlc3RhcnQiLDYwMTE0KSxkZWJ1Z1N0YXJ0OmEoImRlYnVnLXN0YXJ0Iiw2MDExNSksZGVidWdTdGVwSW50bzphKCJkZWJ1Zy1zdGVwLWludG8iLDYwMTE2KSxkZWJ1Z1N0ZXBPdXQ6YSgiZGVidWctc3RlcC1vdXQiLDYwMTE3KSxkZWJ1Z1N0ZXBPdmVyOmEoImRlYnVnLXN0ZXAtb3ZlciIsNjAxMTgpLGRlYnVnU3RvcDphKCJkZWJ1Zy1zdG9wIiw2MDExOSksZGVidWc6YSgiZGVidWciLDYwMTIwKSxkZXZpY2VDYW1lcmFWaWRlbzphKCJkZXZpY2UtY2FtZXJhLXZpZGVvIiw2MDEyMSksZGV2aWNlQ2FtZXJhOmEoImRldmljZS1jYW1lcmEiLDYwMTIyKSxkZXZpY2VNb2JpbGU6YSgiZGV2aWNlLW1vYmlsZSIsNjAxMjMpLGRpZmZBZGRlZDphKCJkaWZmLWFkZGVkIiw2MDEyNCksZGlmZklnbm9yZWQ6YSgiZGlmZi1pZ25vcmVkIiw2MDEyNSksZGlmZk1vZGlmaWVkOmEoImRpZmYtbW9kaWZpZWQiLDYwMTI2KSxkaWZmUmVtb3ZlZDphKCJkaWZmLXJlbW92ZWQiLDYwMTI3KSxkaWZmUmVuYW1lZDphKCJkaWZmLXJlbmFtZWQiLDYwMTI4KSxkaWZmOmEoImRpZmYiLDYwMTI5KSxkaXNjYXJkOmEoImRpc2NhcmQiLDYwMTMwKSxlZGl0b3JMYXlvdXQ6YSgiZWRpdG9yLWxheW91dCIsNjAxMzEpLGVtcHR5V2luZG93OmEoImVtcHR5LXdpbmRvdyIsNjAxMzIpLGV4Y2x1ZGU6YSgiZXhjbHVkZSIsNjAxMzMpLGV4dGVuc2lvbnM6YSgiZXh0ZW5zaW9ucyIsNjAxMzQpLGV5ZUNsb3NlZDphKCJleWUtY2xvc2VkIiw2MDEzNSksZmlsZUJpbmFyeTphKCJmaWxlLWJpbmFyeSIsNjAxMzYpLGZpbGVDb2RlOmEoImZpbGUtY29kZSIsNjAxMzcpLGZpbGVNZWRpYTphKCJmaWxlLW1lZGlhIiw2MDEzOCksZmlsZVBkZjphKCJmaWxlLXBkZiIsNjAxMzkpLGZpbGVTdWJtb2R1bGU6YSgiZmlsZS1zdWJtb2R1bGUiLDYwMTQwKSxmaWxlU3ltbGlua0RpcmVjdG9yeTphKCJmaWxlLXN5bWxpbmstZGlyZWN0b3J5Iiw2MDE0MSksZmlsZVN5bWxpbmtGaWxlOmEoImZpbGUtc3ltbGluay1maWxlIiw2MDE0MiksZmlsZVppcDphKCJmaWxlLXppcCIsNjAxNDMpLGZpbGVzOmEoImZpbGVzIiw2MDE0NCksZmlsdGVyOmEoImZpbHRlciIsNjAxNDUpLGZsYW1lOmEoImZsYW1lIiw2MDE0NiksZm9sZERvd246YSgiZm9sZC1kb3duIiw2MDE0NyksZm9sZFVwOmEoImZvbGQtdXAiLDYwMTQ4KSxmb2xkOmEoImZvbGQiLDYwMTQ5KSxmb2xkZXJBY3RpdmU6YSgiZm9sZGVyLWFjdGl2ZSIsNjAxNTApLGZvbGRlck9wZW5lZDphKCJmb2xkZXItb3BlbmVkIiw2MDE1MSksZ2VhcjphKCJnZWFyIiw2MDE1MiksZ2lmdDphKCJnaWZ0Iiw2MDE1MyksZ2lzdFNlY3JldDphKCJnaXN0LXNlY3JldCIsNjAxNTQpLGdpc3Q6YSgiZ2lzdCIsNjAxNTUpLGdpdENvbW1pdDphKCJnaXQtY29tbWl0Iiw2MDE1NiksZ2l0Q29tcGFyZTphKCJnaXQtY29tcGFyZSIsNjAxNTcpLGdpdE1lcmdlOmEoImdpdC1tZXJnZSIsNjAxNTgpLGdpdGh1YkFjdGlvbjphKCJnaXRodWItYWN0aW9uIiw2MDE1OSksZ2l0aHViQWx0OmEoImdpdGh1Yi1hbHQiLDYwMTYwKSxnbG9iZTphKCJnbG9iZSIsNjAxNjEpLGdyYWJiZXI6YSgiZ3JhYmJlciIsNjAxNjIpLGdyYXBoOmEoImdyYXBoIiw2MDE2MyksZ3JpcHBlcjphKCJncmlwcGVyIiw2MDE2NCksaGVhcnQ6YSgiaGVhcnQiLDYwMTY1KSxob21lOmEoImhvbWUiLDYwMTY2KSxob3Jpem9udGFsUnVsZTphKCJob3Jpem9udGFsLXJ1bGUiLDYwMTY3KSxodWJvdDphKCJodWJvdCIsNjAxNjgpLGluYm94OmEoImluYm94Iiw2MDE2OSksaXNzdWVDbG9zZWQ6YSgiaXNzdWUtY2xvc2VkIiw2MDMyNCksaXNzdWVSZW9wZW5lZDphKCJpc3N1ZS1yZW9wZW5lZCIsNjAxNzEpLGlzc3VlczphKCJpc3N1ZXMiLDYwMTcyKSxpdGFsaWM6YSgiaXRhbGljIiw2MDE3MyksamVyc2V5OmEoImplcnNleSIsNjAxNzQpLGpzb246YSgianNvbiIsNjAxNzUpLGJyYWNrZXQ6YSgiYnJhY2tldCIsNjAxNzUpLGtlYmFiVmVydGljYWw6YSgia2ViYWItdmVydGljYWwiLDYwMTc2KSxrZXk6YSgia2V5Iiw2MDE3NyksbGF3OmEoImxhdyIsNjAxNzgpLGxpZ2h0YnVsYkF1dG9maXg6YSgibGlnaHRidWxiLWF1dG9maXgiLDYwMTc5KSxsaW5rRXh0ZXJuYWw6YSgibGluay1leHRlcm5hbCIsNjAxODApLGxpbms6YSgibGluayIsNjAxODEpLGxpc3RPcmRlcmVkOmEoImxpc3Qtb3JkZXJlZCIsNjAxODIpLGxpc3RVbm9yZGVyZWQ6YSgibGlzdC11bm9yZGVyZWQiLDYwMTgzKSxsaXZlU2hhcmU6YSgibGl2ZS1zaGFyZSIsNjAxODQpLGxvYWRpbmc6YSgibG9hZGluZyIsNjAxODUpLGxvY2F0aW9uOmEoImxvY2F0aW9uIiw2MDE4NiksbWFpbFJlYWQ6YSgibWFpbC1yZWFkIiw2MDE4NyksbWFpbDphKCJtYWlsIiw2MDE4OCksbWFya2Rvd246YSgibWFya2Rvd24iLDYwMTg5KSxtZWdhcGhvbmU6YSgibWVnYXBob25lIiw2MDE5MCksbWVudGlvbjphKCJtZW50aW9uIiw2MDE5MSksbWlsZXN0b25lOmEoIm1pbGVzdG9uZSIsNjAxOTIpLGdpdFB1bGxSZXF1ZXN0TWlsZXN0b25lOmEoImdpdC1wdWxsLXJlcXVlc3QtbWlsZXN0b25lIiw2MDE5MiksbW9ydGFyQm9hcmQ6YSgibW9ydGFyLWJvYXJkIiw2MDE5MyksbW92ZTphKCJtb3ZlIiw2MDE5NCksbXVsdGlwbGVXaW5kb3dzOmEoIm11bHRpcGxlLXdpbmRvd3MiLDYwMTk1KSxtdXRlOmEoIm11dGUiLDYwMTk2KSxub05ld2xpbmU6YSgibm8tbmV3bGluZSIsNjAxOTcpLG5vdGU6YSgibm90ZSIsNjAxOTgpLG9jdG9mYWNlOmEoIm9jdG9mYWNlIiw2MDE5OSksb3BlblByZXZpZXc6YSgib3Blbi1wcmV2aWV3Iiw2MDIwMCkscGFja2FnZTphKCJwYWNrYWdlIiw2MDIwMSkscGFpbnRjYW46YSgicGFpbnRjYW4iLDYwMjAyKSxwaW46YSgicGluIiw2MDIwMykscGxheTphKCJwbGF5Iiw2MDIwNCkscnVuOmEoInJ1biIsNjAyMDQpLHBsdWc6YSgicGx1ZyIsNjAyMDUpLHByZXNlcnZlQ2FzZTphKCJwcmVzZXJ2ZS1jYXNlIiw2MDIwNikscHJldmlldzphKCJwcmV2aWV3Iiw2MDIwNykscHJvamVjdDphKCJwcm9qZWN0Iiw2MDIwOCkscHVsc2U6YSgicHVsc2UiLDYwMjA5KSxxdWVzdGlvbjphKCJxdWVzdGlvbiIsNjAyMTApLHF1b3RlOmEoInF1b3RlIiw2MDIxMSkscmFkaW9Ub3dlcjphKCJyYWRpby10b3dlciIsNjAyMTIpLHJlYWN0aW9uczphKCJyZWFjdGlvbnMiLDYwMjEzKSxyZWZlcmVuY2VzOmEoInJlZmVyZW5jZXMiLDYwMjE0KSxyZWZyZXNoOmEoInJlZnJlc2giLDYwMjE1KSxyZWdleDphKCJyZWdleCIsNjAyMTYpLHJlbW90ZUV4cGxvcmVyOmEoInJlbW90ZS1leHBsb3JlciIsNjAyMTcpLHJlbW90ZTphKCJyZW1vdGUiLDYwMjE4KSxyZW1vdmU6YSgicmVtb3ZlIiw2MDIxOSkscmVwbGFjZUFsbDphKCJyZXBsYWNlLWFsbCIsNjAyMjApLHJlcGxhY2U6YSgicmVwbGFjZSIsNjAyMjEpLHJlcG9DbG9uZTphKCJyZXBvLWNsb25lIiw2MDIyMikscmVwb0ZvcmNlUHVzaDphKCJyZXBvLWZvcmNlLXB1c2giLDYwMjIzKSxyZXBvUHVsbDphKCJyZXBvLXB1bGwiLDYwMjI0KSxyZXBvUHVzaDphKCJyZXBvLXB1c2giLDYwMjI1KSxyZXBvcnQ6YSgicmVwb3J0Iiw2MDIyNikscmVxdWVzdENoYW5nZXM6YSgicmVxdWVzdC1jaGFuZ2VzIiw2MDIyNykscm9ja2V0OmEoInJvY2tldCIsNjAyMjgpLHJvb3RGb2xkZXJPcGVuZWQ6YSgicm9vdC1mb2xkZXItb3BlbmVkIiw2MDIyOSkscm9vdEZvbGRlcjphKCJyb290LWZvbGRlciIsNjAyMzApLHJzczphKCJyc3MiLDYwMjMxKSxydWJ5OmEoInJ1YnkiLDYwMjMyKSxzYXZlQWxsOmEoInNhdmUtYWxsIiw2MDIzMyksc2F2ZUFzOmEoInNhdmUtYXMiLDYwMjM0KSxzYXZlOmEoInNhdmUiLDYwMjM1KSxzY3JlZW5GdWxsOmEoInNjcmVlbi1mdWxsIiw2MDIzNiksc2NyZWVuTm9ybWFsOmEoInNjcmVlbi1ub3JtYWwiLDYwMjM3KSxzZWFyY2hTdG9wOmEoInNlYXJjaC1zdG9wIiw2MDIzOCksc2VydmVyOmEoInNlcnZlciIsNjAyNDApLHNldHRpbmdzR2VhcjphKCJzZXR0aW5ncy1nZWFyIiw2MDI0MSksc2V0dGluZ3M6YSgic2V0dGluZ3MiLDYwMjQyKSxzaGllbGQ6YSgic2hpZWxkIiw2MDI0Myksc21pbGV5OmEoInNtaWxleSIsNjAyNDQpLHNvcnRQcmVjZWRlbmNlOmEoInNvcnQtcHJlY2VkZW5jZSIsNjAyNDUpLHNwbGl0SG9yaXpvbnRhbDphKCJzcGxpdC1ob3Jpem9udGFsIiw2MDI0Niksc3BsaXRWZXJ0aWNhbDphKCJzcGxpdC12ZXJ0aWNhbCIsNjAyNDcpLHNxdWlycmVsOmEoInNxdWlycmVsIiw2MDI0OCksc3RhckZ1bGw6YSgic3Rhci1mdWxsIiw2MDI0OSksc3RhckhhbGY6YSgic3Rhci1oYWxmIiw2MDI1MCksc3ltYm9sQ2xhc3M6YSgic3ltYm9sLWNsYXNzIiw2MDI1MSksc3ltYm9sQ29sb3I6YSgic3ltYm9sLWNvbG9yIiw2MDI1Miksc3ltYm9sQ3VzdG9tQ29sb3I6YSgic3ltYm9sLWN1c3RvbWNvbG9yIiw2MDI1Miksc3ltYm9sQ29uc3RhbnQ6YSgic3ltYm9sLWNvbnN0YW50Iiw2MDI1Myksc3ltYm9sRW51bU1lbWJlcjphKCJzeW1ib2wtZW51bS1tZW1iZXIiLDYwMjU0KSxzeW1ib2xGaWVsZDphKCJzeW1ib2wtZmllbGQiLDYwMjU1KSxzeW1ib2xGaWxlOmEoInN5bWJvbC1maWxlIiw2MDI1Niksc3ltYm9sSW50ZXJmYWNlOmEoInN5bWJvbC1pbnRlcmZhY2UiLDYwMjU3KSxzeW1ib2xLZXl3b3JkOmEoInN5bWJvbC1rZXl3b3JkIiw2MDI1OCksc3ltYm9sTWlzYzphKCJzeW1ib2wtbWlzYyIsNjAyNTkpLHN5bWJvbE9wZXJhdG9yOmEoInN5bWJvbC1vcGVyYXRvciIsNjAyNjApLHN5bWJvbFByb3BlcnR5OmEoInN5bWJvbC1wcm9wZXJ0eSIsNjAyNjEpLHdyZW5jaDphKCJ3cmVuY2giLDYwMjYxKSx3cmVuY2hTdWJhY3Rpb246YSgid3JlbmNoLXN1YmFjdGlvbiIsNjAyNjEpLHN5bWJvbFNuaXBwZXQ6YSgic3ltYm9sLXNuaXBwZXQiLDYwMjYyKSx0YXNrbGlzdDphKCJ0YXNrbGlzdCIsNjAyNjMpLHRlbGVzY29wZTphKCJ0ZWxlc2NvcGUiLDYwMjY0KSx0ZXh0U2l6ZTphKCJ0ZXh0LXNpemUiLDYwMjY1KSx0aHJlZUJhcnM6YSgidGhyZWUtYmFycyIsNjAyNjYpLHRodW1ic2Rvd246YSgidGh1bWJzZG93biIsNjAyNjcpLHRodW1ic3VwOmEoInRodW1ic3VwIiw2MDI2OCksdG9vbHM6YSgidG9vbHMiLDYwMjY5KSx0cmlhbmdsZURvd246YSgidHJpYW5nbGUtZG93biIsNjAyNzApLHRyaWFuZ2xlTGVmdDphKCJ0cmlhbmdsZS1sZWZ0Iiw2MDI3MSksdHJpYW5nbGVSaWdodDphKCJ0cmlhbmdsZS1yaWdodCIsNjAyNzIpLHRyaWFuZ2xlVXA6YSgidHJpYW5nbGUtdXAiLDYwMjczKSx0d2l0dGVyOmEoInR3aXR0ZXIiLDYwMjc0KSx1bmZvbGQ6YSgidW5mb2xkIiw2MDI3NSksdW5sb2NrOmEoInVubG9jayIsNjAyNzYpLHVubXV0ZTphKCJ1bm11dGUiLDYwMjc3KSx1bnZlcmlmaWVkOmEoInVudmVyaWZpZWQiLDYwMjc4KSx2ZXJpZmllZDphKCJ2ZXJpZmllZCIsNjAyNzkpLHZlcnNpb25zOmEoInZlcnNpb25zIiw2MDI4MCksdm1BY3RpdmU6YSgidm0tYWN0aXZlIiw2MDI4MSksdm1PdXRsaW5lOmEoInZtLW91dGxpbmUiLDYwMjgyKSx2bVJ1bm5pbmc6YSgidm0tcnVubmluZyIsNjAyODMpLHdhdGNoOmEoIndhdGNoIiw2MDI4NCksd2hpdGVzcGFjZTphKCJ3aGl0ZXNwYWNlIiw2MDI4NSksd2hvbGVXb3JkOmEoIndob2xlLXdvcmQiLDYwMjg2KSx3aW5kb3c6YSgid2luZG93Iiw2MDI4Nyksd29yZFdyYXA6YSgid29yZC13cmFwIiw2MDI4OCksem9vbUluOmEoInpvb20taW4iLDYwMjg5KSx6b29tT3V0OmEoInpvb20tb3V0Iiw2MDI5MCksbGlzdEZpbHRlcjphKCJsaXN0LWZpbHRlciIsNjAyOTEpLGxpc3RGbGF0OmEoImxpc3QtZmxhdCIsNjAyOTIpLGxpc3RTZWxlY3Rpb246YSgibGlzdC1zZWxlY3Rpb24iLDYwMjkzKSxzZWxlY3Rpb246YSgic2VsZWN0aW9uIiw2MDI5MyksbGlzdFRyZWU6YSgibGlzdC10cmVlIiw2MDI5NCksZGVidWdCcmVha3BvaW50RnVuY3Rpb25VbnZlcmlmaWVkOmEoImRlYnVnLWJyZWFrcG9pbnQtZnVuY3Rpb24tdW52ZXJpZmllZCIsNjAyOTUpLGRlYnVnQnJlYWtwb2ludEZ1bmN0aW9uOmEoImRlYnVnLWJyZWFrcG9pbnQtZnVuY3Rpb24iLDYwMjk2KSxkZWJ1Z0JyZWFrcG9pbnRGdW5jdGlvbkRpc2FibGVkOmEoImRlYnVnLWJyZWFrcG9pbnQtZnVuY3Rpb24tZGlzYWJsZWQiLDYwMjk2KSxkZWJ1Z1N0YWNrZnJhbWVBY3RpdmU6YSgiZGVidWctc3RhY2tmcmFtZS1hY3RpdmUiLDYwMjk3KSxjaXJjbGVTbWFsbEZpbGxlZDphKCJjaXJjbGUtc21hbGwtZmlsbGVkIiw2MDI5OCksZGVidWdTdGFja2ZyYW1lRG90OmEoImRlYnVnLXN0YWNrZnJhbWUtZG90Iiw2MDI5OCksZGVidWdTdGFja2ZyYW1lOmEoImRlYnVnLXN0YWNrZnJhbWUiLDYwMjk5KSxkZWJ1Z1N0YWNrZnJhbWVGb2N1c2VkOmEoImRlYnVnLXN0YWNrZnJhbWUtZm9jdXNlZCIsNjAyOTkpLGRlYnVnQnJlYWtwb2ludFVuc3VwcG9ydGVkOmEoImRlYnVnLWJyZWFrcG9pbnQtdW5zdXBwb3J0ZWQiLDYwMzAwKSxzeW1ib2xTdHJpbmc6YSgic3ltYm9sLXN0cmluZyIsNjAzMDEpLGRlYnVnUmV2ZXJzZUNvbnRpbnVlOmEoImRlYnVnLXJldmVyc2UtY29udGludWUiLDYwMzAyKSxkZWJ1Z1N0ZXBCYWNrOmEoImRlYnVnLXN0ZXAtYmFjayIsNjAzMDMpLGRlYnVnUmVzdGFydEZyYW1lOmEoImRlYnVnLXJlc3RhcnQtZnJhbWUiLDYwMzA0KSxjYWxsSW5jb21pbmc6YSgiY2FsbC1pbmNvbWluZyIsNjAzMDYpLGNhbGxPdXRnb2luZzphKCJjYWxsLW91dGdvaW5nIiw2MDMwNyksbWVudTphKCJtZW51Iiw2MDMwOCksZXhwYW5kQWxsOmEoImV4cGFuZC1hbGwiLDYwMzA5KSxmZWVkYmFjazphKCJmZWVkYmFjayIsNjAzMTApLGdpdFB1bGxSZXF1ZXN0UmV2aWV3ZXI6YSgiZ2l0LXB1bGwtcmVxdWVzdC1yZXZpZXdlciIsNjAzMTApLGdyb3VwQnlSZWZUeXBlOmEoImdyb3VwLWJ5LXJlZi10eXBlIiw2MDMxMSksdW5ncm91cEJ5UmVmVHlwZTphKCJ1bmdyb3VwLWJ5LXJlZi10eXBlIiw2MDMxMiksYWNjb3VudDphKCJhY2NvdW50Iiw2MDMxMyksZ2l0UHVsbFJlcXVlc3RBc3NpZ25lZTphKCJnaXQtcHVsbC1yZXF1ZXN0LWFzc2lnbmVlIiw2MDMxMyksYmVsbERvdDphKCJiZWxsLWRvdCIsNjAzMTQpLGRlYnVnQ29uc29sZTphKCJkZWJ1Zy1jb25zb2xlIiw2MDMxNSksbGlicmFyeTphKCJsaWJyYXJ5Iiw2MDMxNiksb3V0cHV0OmEoIm91dHB1dCIsNjAzMTcpLHJ1bkFsbDphKCJydW4tYWxsIiw2MDMxOCksc3luY0lnbm9yZWQ6YSgic3luYy1pZ25vcmVkIiw2MDMxOSkscGlubmVkOmEoInBpbm5lZCIsNjAzMjApLGdpdGh1YkludmVydGVkOmEoImdpdGh1Yi1pbnZlcnRlZCIsNjAzMjEpLGRlYnVnQWx0OmEoImRlYnVnLWFsdCIsNjAzMDUpLHNlcnZlclByb2Nlc3M6YSgic2VydmVyLXByb2Nlc3MiLDYwMzIyKSxzZXJ2ZXJFbnZpcm9ubWVudDphKCJzZXJ2ZXItZW52aXJvbm1lbnQiLDYwMzIzKSxwYXNzOmEoInBhc3MiLDYwMzI0KSxzdG9wQ2lyY2xlOmEoInN0b3AtY2lyY2xlIiw2MDMyNSkscGxheUNpcmNsZTphKCJwbGF5LWNpcmNsZSIsNjAzMjYpLHJlY29yZDphKCJyZWNvcmQiLDYwMzI3KSxkZWJ1Z0FsdFNtYWxsOmEoImRlYnVnLWFsdC1zbWFsbCIsNjAzMjgpLHZtQ29ubmVjdDphKCJ2bS1jb25uZWN0Iiw2MDMyOSksY2xvdWQ6YSgiY2xvdWQiLDYwMzMwKSxtZXJnZTphKCJtZXJnZSIsNjAzMzEpLGV4cG9ydEljb246YSgiZXhwb3J0Iiw2MDMzMiksZ3JhcGhMZWZ0OmEoImdyYXBoLWxlZnQiLDYwMzMzKSxtYWduZXQ6YSgibWFnbmV0Iiw2MDMzNCksbm90ZWJvb2s6YSgibm90ZWJvb2siLDYwMzM1KSxyZWRvOmEoInJlZG8iLDYwMzM2KSxjaGVja0FsbDphKCJjaGVjay1hbGwiLDYwMzM3KSxwaW5uZWREaXJ0eTphKCJwaW5uZWQtZGlydHkiLDYwMzM4KSxwYXNzRmlsbGVkOmEoInBhc3MtZmlsbGVkIiw2MDMzOSksY2lyY2xlTGFyZ2VGaWxsZWQ6YSgiY2lyY2xlLWxhcmdlLWZpbGxlZCIsNjAzNDApLGNpcmNsZUxhcmdlOmEoImNpcmNsZS1sYXJnZSIsNjAzNDEpLGNpcmNsZUxhcmdlT3V0bGluZTphKCJjaXJjbGUtbGFyZ2Utb3V0bGluZSIsNjAzNDEpLGNvbWJpbmU6YSgiY29tYmluZSIsNjAzNDIpLGdhdGhlcjphKCJnYXRoZXIiLDYwMzQyKSx0YWJsZTphKCJ0YWJsZSIsNjAzNDMpLHZhcmlhYmxlR3JvdXA6YSgidmFyaWFibGUtZ3JvdXAiLDYwMzQ0KSx0eXBlSGllcmFyY2h5OmEoInR5cGUtaGllcmFyY2h5Iiw2MDM0NSksdHlwZUhpZXJhcmNoeVN1YjphKCJ0eXBlLWhpZXJhcmNoeS1zdWIiLDYwMzQ2KSx0eXBlSGllcmFyY2h5U3VwZXI6YSgidHlwZS1oaWVyYXJjaHktc3VwZXIiLDYwMzQ3KSxnaXRQdWxsUmVxdWVzdENyZWF0ZTphKCJnaXQtcHVsbC1yZXF1ZXN0LWNyZWF0ZSIsNjAzNDgpLHJ1bkFib3ZlOmEoInJ1bi1hYm92ZSIsNjAzNDkpLHJ1bkJlbG93OmEoInJ1bi1iZWxvdyIsNjAzNTApLG5vdGVib29rVGVtcGxhdGU6YSgibm90ZWJvb2stdGVtcGxhdGUiLDYwMzUxKSxkZWJ1Z1JlcnVuOmEoImRlYnVnLXJlcnVuIiw2MDM1Miksd29ya3NwYWNlVHJ1c3RlZDphKCJ3b3Jrc3BhY2UtdHJ1c3RlZCIsNjAzNTMpLHdvcmtzcGFjZVVudHJ1c3RlZDphKCJ3b3Jrc3BhY2UtdW50cnVzdGVkIiw2MDM1NCksd29ya3NwYWNlVW5zcGVjaWZpZWQ6YSgid29ya3NwYWNlLXVuc3BlY2lmaWVkIiw2MDM1NSksdGVybWluYWxDbWQ6YSgidGVybWluYWwtY21kIiw2MDM1NiksdGVybWluYWxEZWJpYW46YSgidGVybWluYWwtZGViaWFuIiw2MDM1NyksdGVybWluYWxMaW51eDphKCJ0ZXJtaW5hbC1saW51eCIsNjAzNTgpLHRlcm1pbmFsUG93ZXJzaGVsbDphKCJ0ZXJtaW5hbC1wb3dlcnNoZWxsIiw2MDM1OSksdGVybWluYWxUbXV4OmEoInRlcm1pbmFsLXRtdXgiLDYwMzYwKSx0ZXJtaW5hbFVidW50dTphKCJ0ZXJtaW5hbC11YnVudHUiLDYwMzYxKSx0ZXJtaW5hbEJhc2g6YSgidGVybWluYWwtYmFzaCIsNjAzNjIpLGFycm93U3dhcDphKCJhcnJvdy1zd2FwIiw2MDM2MyksY29weTphKCJjb3B5Iiw2MDM2NCkscGVyc29uQWRkOmEoInBlcnNvbi1hZGQiLDYwMzY1KSxmaWx0ZXJGaWxsZWQ6YSgiZmlsdGVyLWZpbGxlZCIsNjAzNjYpLHdhbmQ6YSgid2FuZCIsNjAzNjcpLGRlYnVnTGluZUJ5TGluZTphKCJkZWJ1Zy1saW5lLWJ5LWxpbmUiLDYwMzY4KSxpbnNwZWN0OmEoImluc3BlY3QiLDYwMzY5KSxsYXllcnM6YSgibGF5ZXJzIiw2MDM3MCksbGF5ZXJzRG90OmEoImxheWVycy1kb3QiLDYwMzcxKSxsYXllcnNBY3RpdmU6YSgibGF5ZXJzLWFjdGl2ZSIsNjAzNzIpLGNvbXBhc3M6YSgiY29tcGFzcyIsNjAzNzMpLGNvbXBhc3NEb3Q6YSgiY29tcGFzcy1kb3QiLDYwMzc0KSxjb21wYXNzQWN0aXZlOmEoImNvbXBhc3MtYWN0aXZlIiw2MDM3NSksYXp1cmU6YSgiYXp1cmUiLDYwMzc2KSxpc3N1ZURyYWZ0OmEoImlzc3VlLWRyYWZ0Iiw2MDM3NyksZ2l0UHVsbFJlcXVlc3RDbG9zZWQ6YSgiZ2l0LXB1bGwtcmVxdWVzdC1jbG9zZWQiLDYwMzc4KSxnaXRQdWxsUmVxdWVzdERyYWZ0OmEoImdpdC1wdWxsLXJlcXVlc3QtZHJhZnQiLDYwMzc5KSxkZWJ1Z0FsbDphKCJkZWJ1Zy1hbGwiLDYwMzgwKSxkZWJ1Z0NvdmVyYWdlOmEoImRlYnVnLWNvdmVyYWdlIiw2MDM4MSkscnVuRXJyb3JzOmEoInJ1bi1lcnJvcnMiLDYwMzgyKSxmb2xkZXJMaWJyYXJ5OmEoImZvbGRlci1saWJyYXJ5Iiw2MDM4MyksZGVidWdDb250aW51ZVNtYWxsOmEoImRlYnVnLWNvbnRpbnVlLXNtYWxsIiw2MDM4NCksYmVha2VyU3RvcDphKCJiZWFrZXItc3RvcCIsNjAzODUpLGdyYXBoTGluZTphKCJncmFwaC1saW5lIiw2MDM4NiksZ3JhcGhTY2F0dGVyOmEoImdyYXBoLXNjYXR0ZXIiLDYwMzg3KSxwaWVDaGFydDphKCJwaWUtY2hhcnQiLDYwMzg4KSxicmFja2V0RG90OmEoImJyYWNrZXQtZG90Iiw2MDM4OSksYnJhY2tldEVycm9yOmEoImJyYWNrZXQtZXJyb3IiLDYwMzkwKSxsb2NrU21hbGw6YSgibG9jay1zbWFsbCIsNjAzOTEpLGF6dXJlRGV2b3BzOmEoImF6dXJlLWRldm9wcyIsNjAzOTIpLHZlcmlmaWVkRmlsbGVkOmEoInZlcmlmaWVkLWZpbGxlZCIsNjAzOTMpLG5ld0xpbmU6YSgibmV3bGluZSIsNjAzOTQpLGxheW91dDphKCJsYXlvdXQiLDYwMzk1KSxsYXlvdXRBY3Rpdml0eWJhckxlZnQ6YSgibGF5b3V0LWFjdGl2aXR5YmFyLWxlZnQiLDYwMzk2KSxsYXlvdXRBY3Rpdml0eWJhclJpZ2h0OmEoImxheW91dC1hY3Rpdml0eWJhci1yaWdodCIsNjAzOTcpLGxheW91dFBhbmVsTGVmdDphKCJsYXlvdXQtcGFuZWwtbGVmdCIsNjAzOTgpLGxheW91dFBhbmVsQ2VudGVyOmEoImxheW91dC1wYW5lbC1jZW50ZXIiLDYwMzk5KSxsYXlvdXRQYW5lbEp1c3RpZnk6YSgibGF5b3V0LXBhbmVsLWp1c3RpZnkiLDYwNDAwKSxsYXlvdXRQYW5lbFJpZ2h0OmEoImxheW91dC1wYW5lbC1yaWdodCIsNjA0MDEpLGxheW91dFBhbmVsOmEoImxheW91dC1wYW5lbCIsNjA0MDIpLGxheW91dFNpZGViYXJMZWZ0OmEoImxheW91dC1zaWRlYmFyLWxlZnQiLDYwNDAzKSxsYXlvdXRTaWRlYmFyUmlnaHQ6YSgibGF5b3V0LXNpZGViYXItcmlnaHQiLDYwNDA0KSxsYXlvdXRTdGF0dXNiYXI6YSgibGF5b3V0LXN0YXR1c2JhciIsNjA0MDUpLGxheW91dE1lbnViYXI6YSgibGF5b3V0LW1lbnViYXIiLDYwNDA2KSxsYXlvdXRDZW50ZXJlZDphKCJsYXlvdXQtY2VudGVyZWQiLDYwNDA3KSxsYXlvdXRTaWRlYmFyUmlnaHRPZmY6YSgibGF5b3V0LXNpZGViYXItcmlnaHQtb2ZmIiw2MDQxNiksbGF5b3V0UGFuZWxPZmY6YSgibGF5b3V0LXBhbmVsLW9mZiIsNjA0MTcpLGxheW91dFNpZGViYXJMZWZ0T2ZmOmEoImxheW91dC1zaWRlYmFyLWxlZnQtb2ZmIiw2MDQxOCksdGFyZ2V0OmEoInRhcmdldCIsNjA0MDgpLGluZGVudDphKCJpbmRlbnQiLDYwNDA5KSxyZWNvcmRTbWFsbDphKCJyZWNvcmQtc21hbGwiLDYwNDEwKSxlcnJvclNtYWxsOmEoImVycm9yLXNtYWxsIiw2MDQxMSksYXJyb3dDaXJjbGVEb3duOmEoImFycm93LWNpcmNsZS1kb3duIiw2MDQxMiksYXJyb3dDaXJjbGVMZWZ0OmEoImFycm93LWNpcmNsZS1sZWZ0Iiw2MDQxMyksYXJyb3dDaXJjbGVSaWdodDphKCJhcnJvdy1jaXJjbGUtcmlnaHQiLDYwNDE0KSxhcnJvd0NpcmNsZVVwOmEoImFycm93LWNpcmNsZS11cCIsNjA0MTUpLGhlYXJ0RmlsbGVkOmEoImhlYXJ0LWZpbGxlZCIsNjA0MjApLG1hcDphKCJtYXAiLDYwNDIxKSxtYXBGaWxsZWQ6YSgibWFwLWZpbGxlZCIsNjA0MjIpLGNpcmNsZVNtYWxsOmEoImNpcmNsZS1zbWFsbCIsNjA0MjMpLGJlbGxTbGFzaDphKCJiZWxsLXNsYXNoIiw2MDQyNCksYmVsbFNsYXNoRG90OmEoImJlbGwtc2xhc2gtZG90Iiw2MDQyNSksY29tbWVudFVucmVzb2x2ZWQ6YSgiY29tbWVudC11bnJlc29sdmVkIiw2MDQyNiksZ2l0UHVsbFJlcXVlc3RHb1RvQ2hhbmdlczphKCJnaXQtcHVsbC1yZXF1ZXN0LWdvLXRvLWNoYW5nZXMiLDYwNDI3KSxnaXRQdWxsUmVxdWVzdE5ld0NoYW5nZXM6YSgiZ2l0LXB1bGwtcmVxdWVzdC1uZXctY2hhbmdlcyIsNjA0MjgpLHNlYXJjaEZ1enp5OmEoInNlYXJjaC1mdXp6eSIsNjA0MjkpLGNvbW1lbnREcmFmdDphKCJjb21tZW50LWRyYWZ0Iiw2MDQzMCksc2VuZDphKCJzZW5kIiw2MDQzMSksc3BhcmtsZTphKCJzcGFya2xlIiw2MDQzMiksaW5zZXJ0OmEoImluc2VydCIsNjA0MzMpLG1pYzphKCJtaWMiLDYwNDM0KSx0aHVtYnNEb3duRmlsbGVkOmEoInRodW1ic2Rvd24tZmlsbGVkIiw2MDQzNSksdGh1bWJzVXBGaWxsZWQ6YSgidGh1bWJzdXAtZmlsbGVkIiw2MDQzNiksY29mZmVlOmEoImNvZmZlZSIsNjA0MzcpLHNuYWtlOmEoInNuYWtlIiw2MDQzOCksZ2FtZTphKCJnYW1lIiw2MDQzOSksdnI6YSgidnIiLDYwNDQwKSxjaGlwOmEoImNoaXAiLDYwNDQxKSxwaWFubzphKCJwaWFubyIsNjA0NDIpLG11c2ljOmEoIm11c2ljIiw2MDQ0MyksbWljRmlsbGVkOmEoIm1pYy1maWxsZWQiLDYwNDQ0KSxnaXRGZXRjaDphKCJnaXQtZmV0Y2giLDYwNDQ1KSxjb3BpbG90OmEoImNvcGlsb3QiLDYwNDQ2KSxsaWdodGJ1bGJTcGFya2xlOmEoImxpZ2h0YnVsYi1zcGFya2xlIiw2MDQ0NyksbGlnaHRidWxiU3BhcmtsZUF1dG9maXg6YSgibGlnaHRidWxiLXNwYXJrbGUtYXV0b2ZpeCIsNjA0NDcpLHJvYm90OmEoInJvYm90Iiw2MDQ0OCksc3BhcmtsZUZpbGxlZDphKCJzcGFya2xlLWZpbGxlZCIsNjA0NDkpLGRpZmZTaW5nbGU6YSgiZGlmZi1zaW5nbGUiLDYwNDUwKSxkaWZmTXVsdGlwbGU6YSgiZGlmZi1tdWx0aXBsZSIsNjA0NTEpLHN1cnJvdW5kV2l0aDphKCJzdXJyb3VuZC13aXRoIiw2MDQ1MiksZ2l0U3Rhc2g6YSgiZ2l0LXN0YXNoIiw2MDQ1NCksZ2l0U3Rhc2hBcHBseTphKCJnaXQtc3Rhc2gtYXBwbHkiLDYwNDU1KSxnaXRTdGFzaFBvcDphKCJnaXQtc3Rhc2gtcG9wIiw2MDQ1NikscnVuQWxsQ292ZXJhZ2U6YSgicnVuLWFsbC1jb3ZlcmFnZSIsNjA0NjEpLHJ1bkNvdmVyYWdlOmEoInJ1bi1hbGwtY292ZXJhZ2UiLDYwNDYwKSxjb3ZlcmFnZTphKCJjb3ZlcmFnZSIsNjA0NjIpLGdpdGh1YlByb2plY3Q6YSgiZ2l0aHViLXByb2plY3QiLDYwNDYzKSxkaWFsb2dFcnJvcjphKCJkaWFsb2ctZXJyb3IiLCJlcnJvciIpLGRpYWxvZ1dhcm5pbmc6YSgiZGlhbG9nLXdhcm5pbmciLCJ3YXJuaW5nIiksZGlhbG9nSW5mbzphKCJkaWFsb2ctaW5mbyIsImluZm8iKSxkaWFsb2dDbG9zZTphKCJkaWFsb2ctY2xvc2UiLCJjbG9zZSIpLHRyZWVJdGVtRXhwYW5kZWQ6YSgidHJlZS1pdGVtLWV4cGFuZGVkIiwiY2hldnJvbi1kb3duIiksdHJlZUZpbHRlck9uVHlwZU9uOmEoInRyZWUtZmlsdGVyLW9uLXR5cGUtb24iLCJsaXN0LWZpbHRlciIpLHRyZWVGaWx0ZXJPblR5cGVPZmY6YSgidHJlZS1maWx0ZXItb24tdHlwZS1vZmYiLCJsaXN0LXNlbGVjdGlvbiIpLHRyZWVGaWx0ZXJDbGVhcjphKCJ0cmVlLWZpbHRlci1jbGVhciIsImNsb3NlIiksdHJlZUl0ZW1Mb2FkaW5nOmEoInRyZWUtaXRlbS1sb2FkaW5nIiwibG9hZGluZyIpLG1lbnVTZWxlY3Rpb246YSgibWVudS1zZWxlY3Rpb24iLCJjaGVjayIpLG1lbnVTdWJtZW51OmEoIm1lbnUtc3VibWVudSIsImNoZXZyb24tcmlnaHQiKSxtZW51QmFyTW9yZTphKCJtZW51YmFyLW1vcmUiLCJtb3JlIiksc2Nyb2xsYmFyQnV0dG9uTGVmdDphKCJzY3JvbGxiYXItYnV0dG9uLWxlZnQiLCJ0cmlhbmdsZS1sZWZ0Iiksc2Nyb2xsYmFyQnV0dG9uUmlnaHQ6YSgic2Nyb2xsYmFyLWJ1dHRvbi1yaWdodCIsInRyaWFuZ2xlLXJpZ2h0Iiksc2Nyb2xsYmFyQnV0dG9uVXA6YSgic2Nyb2xsYmFyLWJ1dHRvbi11cCIsInRyaWFuZ2xlLXVwIiksc2Nyb2xsYmFyQnV0dG9uRG93bjphKCJzY3JvbGxiYXItYnV0dG9uLWRvd24iLCJ0cmlhbmdsZS1kb3duIiksdG9vbEJhck1vcmU6YSgidG9vbGJhci1tb3JlIiwibW9yZSIpLHF1aWNrSW5wdXRCYWNrOmEoInF1aWNrLWlucHV0LWJhY2siLCJhcnJvdy1sZWZ0Iil9O2NsYXNzIGJpe2NvbnN0cnVjdG9yKCl7dGhpcy5fdG9rZW5pemF0aW9uU3VwcG9ydHM9bmV3IE1hcCx0aGlzLl9mYWN0b3JpZXM9bmV3IE1hcCx0aGlzLl9vbkRpZENoYW5nZT1uZXcgcmUsdGhpcy5vbkRpZENoYW5nZT10aGlzLl9vbkRpZENoYW5nZS5ldmVudCx0aGlzLl9jb2xvck1hcD1udWxsfWhhbmRsZUNoYW5nZSh0KXt0aGlzLl9vbkRpZENoYW5nZS5maXJlKHtjaGFuZ2VkTGFuZ3VhZ2VzOnQsY2hhbmdlZENvbG9yTWFwOiExfSl9cmVnaXN0ZXIodCxuKXtyZXR1cm4gdGhpcy5fdG9rZW5pemF0aW9uU3VwcG9ydHMuc2V0KHQsbiksdGhpcy5oYW5kbGVDaGFuZ2UoW3RdKSxLZSgoKT0+e3RoaXMuX3Rva2VuaXphdGlvblN1cHBvcnRzLmdldCh0KT09PW4mJih0aGlzLl90b2tlbml6YXRpb25TdXBwb3J0cy5kZWxldGUodCksdGhpcy5oYW5kbGVDaGFuZ2UoW3RdKSl9KX1nZXQodCl7cmV0dXJuIHRoaXMuX3Rva2VuaXphdGlvblN1cHBvcnRzLmdldCh0KXx8bnVsbH1yZWdpc3RlckZhY3RvcnkodCxuKXt2YXIgczsocz10aGlzLl9mYWN0b3JpZXMuZ2V0KHQpKT09PW51bGx8fHM9PT12b2lkIDB8fHMuZGlzcG9zZSgpO2NvbnN0IHI9bmV3IF9pKHRoaXMsdCxuKTtyZXR1cm4gdGhpcy5fZmFjdG9yaWVzLnNldCh0LHIpLEtlKCgpPT57Y29uc3QgaT10aGlzLl9mYWN0b3JpZXMuZ2V0KHQpOyFpfHxpIT09cnx8KHRoaXMuX2ZhY3Rvcmllcy5kZWxldGUodCksaS5kaXNwb3NlKCkpfSl9YXN5bmMgZ2V0T3JDcmVhdGUodCl7Y29uc3Qgbj10aGlzLmdldCh0KTtpZihuKXJldHVybiBuO2NvbnN0IHM9dGhpcy5fZmFjdG9yaWVzLmdldCh0KTtyZXR1cm4hc3x8cy5pc1Jlc29sdmVkP251bGw6KGF3YWl0IHMucmVzb2x2ZSgpLHRoaXMuZ2V0KHQpKX1pc1Jlc29sdmVkKHQpe2lmKHRoaXMuZ2V0KHQpKXJldHVybiEwO2NvbnN0IHM9dGhpcy5fZmFjdG9yaWVzLmdldCh0KTtyZXR1cm4hISghc3x8cy5pc1Jlc29sdmVkKX1zZXRDb2xvck1hcCh0KXt0aGlzLl9jb2xvck1hcD10LHRoaXMuX29uRGlkQ2hhbmdlLmZpcmUoe2NoYW5nZWRMYW5ndWFnZXM6QXJyYXkuZnJvbSh0aGlzLl90b2tlbml6YXRpb25TdXBwb3J0cy5rZXlzKCkpLGNoYW5nZWRDb2xvck1hcDohMH0pfWdldENvbG9yTWFwKCl7cmV0dXJuIHRoaXMuX2NvbG9yTWFwfWdldERlZmF1bHRCYWNrZ3JvdW5kKCl7cmV0dXJuIHRoaXMuX2NvbG9yTWFwJiZ0aGlzLl9jb2xvck1hcC5sZW5ndGg+Mj90aGlzLl9jb2xvck1hcFsyXTpudWxsfX1jbGFzcyBfaSBleHRlbmRzIEhle2dldCBpc1Jlc29sdmVkKCl7cmV0dXJuIHRoaXMuX2lzUmVzb2x2ZWR9Y29uc3RydWN0b3IodCxuLHMpe3N1cGVyKCksdGhpcy5fcmVnaXN0cnk9dCx0aGlzLl9sYW5ndWFnZUlkPW4sdGhpcy5fZmFjdG9yeT1zLHRoaXMuX2lzRGlzcG9zZWQ9ITEsdGhpcy5fcmVzb2x2ZVByb21pc2U9bnVsbCx0aGlzLl9pc1Jlc29sdmVkPSExfWRpc3Bvc2UoKXt0aGlzLl9pc0Rpc3Bvc2VkPSEwLHN1cGVyLmRpc3Bvc2UoKX1hc3luYyByZXNvbHZlKCl7cmV0dXJuIHRoaXMuX3Jlc29sdmVQcm9taXNlfHwodGhpcy5fcmVzb2x2ZVByb21pc2U9dGhpcy5fY3JlYXRlKCkpLHRoaXMuX3Jlc29sdmVQcm9taXNlfWFzeW5jIF9jcmVhdGUoKXtjb25zdCB0PWF3YWl0IHRoaXMuX2ZhY3RvcnkudG9rZW5pemF0aW9uU3VwcG9ydDt0aGlzLl9pc1Jlc29sdmVkPSEwLHQmJiF0aGlzLl9pc0Rpc3Bvc2VkJiZ0aGlzLl9yZWdpc3Rlcih0aGlzLl9yZWdpc3RyeS5yZWdpc3Rlcih0aGlzLl9sYW5ndWFnZUlkLHQpKX19Y2xhc3MgeGl7Y29uc3RydWN0b3IodCxuLHMpe3RoaXMub2Zmc2V0PXQsdGhpcy50eXBlPW4sdGhpcy5sYW5ndWFnZT1zLHRoaXMuX3Rva2VuQnJhbmQ9dm9pZCAwfXRvU3RyaW5nKCl7cmV0dXJuIigiK3RoaXMub2Zmc2V0KyIsICIrdGhpcy50eXBlKyIpIn19dmFyIENuOyhmdW5jdGlvbihlKXtjb25zdCB0PW5ldyBNYXA7dC5zZXQoMCxNLnN5bWJvbE1ldGhvZCksdC5zZXQoMSxNLnN5bWJvbEZ1bmN0aW9uKSx0LnNldCgyLE0uc3ltYm9sQ29uc3RydWN0b3IpLHQuc2V0KDMsTS5zeW1ib2xGaWVsZCksdC5zZXQoNCxNLnN5bWJvbFZhcmlhYmxlKSx0LnNldCg1LE0uc3ltYm9sQ2xhc3MpLHQuc2V0KDYsTS5zeW1ib2xTdHJ1Y3QpLHQuc2V0KDcsTS5zeW1ib2xJbnRlcmZhY2UpLHQuc2V0KDgsTS5zeW1ib2xNb2R1bGUpLHQuc2V0KDksTS5zeW1ib2xQcm9wZXJ0eSksdC5zZXQoMTAsTS5zeW1ib2xFdmVudCksdC5zZXQoMTEsTS5zeW1ib2xPcGVyYXRvciksdC5zZXQoMTIsTS5zeW1ib2xVbml0KSx0LnNldCgxMyxNLnN5bWJvbFZhbHVlKSx0LnNldCgxNSxNLnN5bWJvbEVudW0pLHQuc2V0KDE0LE0uc3ltYm9sQ29uc3RhbnQpLHQuc2V0KDE1LE0uc3ltYm9sRW51bSksdC5zZXQoMTYsTS5zeW1ib2xFbnVtTWVtYmVyKSx0LnNldCgxNyxNLnN5bWJvbEtleXdvcmQpLHQuc2V0KDI3LE0uc3ltYm9sU25pcHBldCksdC5zZXQoMTgsTS5zeW1ib2xUZXh0KSx0LnNldCgxOSxNLnN5bWJvbENvbG9yKSx0LnNldCgyMCxNLnN5bWJvbEZpbGUpLHQuc2V0KDIxLE0uc3ltYm9sUmVmZXJlbmNlKSx0LnNldCgyMixNLnN5bWJvbEN1c3RvbUNvbG9yKSx0LnNldCgyMyxNLnN5bWJvbEZvbGRlciksdC5zZXQoMjQsTS5zeW1ib2xUeXBlUGFyYW1ldGVyKSx0LnNldCgyNSxNLmFjY291bnQpLHQuc2V0KDI2LE0uaXNzdWVzKTtmdW5jdGlvbiBuKGkpe2xldCBsPXQuZ2V0KGkpO3JldHVybiBsfHwobD1NLnN5bWJvbFByb3BlcnR5KSxsfWUudG9JY29uPW47Y29uc3Qgcz1uZXcgTWFwO3Muc2V0KCJtZXRob2QiLDApLHMuc2V0KCJmdW5jdGlvbiIsMSkscy5zZXQoImNvbnN0cnVjdG9yIiwyKSxzLnNldCgiZmllbGQiLDMpLHMuc2V0KCJ2YXJpYWJsZSIsNCkscy5zZXQoImNsYXNzIiw1KSxzLnNldCgic3RydWN0Iiw2KSxzLnNldCgiaW50ZXJmYWNlIiw3KSxzLnNldCgibW9kdWxlIiw4KSxzLnNldCgicHJvcGVydHkiLDkpLHMuc2V0KCJldmVudCIsMTApLHMuc2V0KCJvcGVyYXRvciIsMTEpLHMuc2V0KCJ1bml0IiwxMikscy5zZXQoInZhbHVlIiwxMykscy5zZXQoImNvbnN0YW50IiwxNCkscy5zZXQoImVudW0iLDE1KSxzLnNldCgiZW51bS1tZW1iZXIiLDE2KSxzLnNldCgiZW51bU1lbWJlciIsMTYpLHMuc2V0KCJrZXl3b3JkIiwxNykscy5zZXQoInNuaXBwZXQiLDI3KSxzLnNldCgidGV4dCIsMTgpLHMuc2V0KCJjb2xvciIsMTkpLHMuc2V0KCJmaWxlIiwyMCkscy5zZXQoInJlZmVyZW5jZSIsMjEpLHMuc2V0KCJjdXN0b21jb2xvciIsMjIpLHMuc2V0KCJmb2xkZXIiLDIzKSxzLnNldCgidHlwZS1wYXJhbWV0ZXIiLDI0KSxzLnNldCgidHlwZVBhcmFtZXRlciIsMjQpLHMuc2V0KCJhY2NvdW50IiwyNSkscy5zZXQoImlzc3VlIiwyNik7ZnVuY3Rpb24gcihpLGwpe2xldCBvPXMuZ2V0KGkpO3JldHVybiB0eXBlb2Ygbz4idSImJiFsJiYobz05KSxvfWUuZnJvbVN0cmluZz1yfSkoQ258fChDbj17fSkpO3ZhciBBbjsoZnVuY3Rpb24oZSl7ZVtlLkF1dG9tYXRpYz0wXT0iQXV0b21hdGljIixlW2UuRXhwbGljaXQ9MV09IkV4cGxpY2l0In0pKEFufHwoQW49e30pKTt2YXIgeW47KGZ1bmN0aW9uKGUpe2VbZS5JbnZva2U9MV09Ikludm9rZSIsZVtlLlRyaWdnZXJDaGFyYWN0ZXI9Ml09IlRyaWdnZXJDaGFyYWN0ZXIiLGVbZS5Db250ZW50Q2hhbmdlPTNdPSJDb250ZW50Q2hhbmdlIn0pKHlufHwoeW49e30pKTt2YXIgUm47KGZ1bmN0aW9uKGUpe2VbZS5UZXh0PTBdPSJUZXh0IixlW2UuUmVhZD0xXT0iUmVhZCIsZVtlLldyaXRlPTJdPSJXcml0ZSJ9KShSbnx8KFJuPXt9KSksSCgiQXJyYXkiLCJhcnJheSIpLEgoIkJvb2xlYW4iLCJib29sZWFuIiksSCgiQ2xhc3MiLCJjbGFzcyIpLEgoIkNvbnN0YW50IiwiY29uc3RhbnQiKSxIKCJDb25zdHJ1Y3RvciIsImNvbnN0cnVjdG9yIiksSCgiRW51bSIsImVudW1lcmF0aW9uIiksSCgiRW51bU1lbWJlciIsImVudW1lcmF0aW9uIG1lbWJlciIpLEgoIkV2ZW50IiwiZXZlbnQiKSxIKCJGaWVsZCIsImZpZWxkIiksSCgiRmlsZSIsImZpbGUiKSxIKCJGdW5jdGlvbiIsImZ1bmN0aW9uIiksSCgiSW50ZXJmYWNlIiwiaW50ZXJmYWNlIiksSCgiS2V5Iiwia2V5IiksSCgiTWV0aG9kIiwibWV0aG9kIiksSCgiTW9kdWxlIiwibW9kdWxlIiksSCgiTmFtZXNwYWNlIiwibmFtZXNwYWNlIiksSCgiTnVsbCIsIm51bGwiKSxIKCJOdW1iZXIiLCJudW1iZXIiKSxIKCJPYmplY3QiLCJvYmplY3QiKSxIKCJPcGVyYXRvciIsIm9wZXJhdG9yIiksSCgiUGFja2FnZSIsInBhY2thZ2UiKSxIKCJQcm9wZXJ0eSIsInByb3BlcnR5IiksSCgiU3RyaW5nIiwic3RyaW5nIiksSCgiU3RydWN0Iiwic3RydWN0IiksSCgiVHlwZVBhcmFtZXRlciIsInR5cGUgcGFyYW1ldGVyIiksSCgiVmFyaWFibGUiLCJ2YXJpYWJsZSIpO3ZhciBFbjsoZnVuY3Rpb24oZSl7Y29uc3QgdD1uZXcgTWFwO3Quc2V0KDAsTS5zeW1ib2xGaWxlKSx0LnNldCgxLE0uc3ltYm9sTW9kdWxlKSx0LnNldCgyLE0uc3ltYm9sTmFtZXNwYWNlKSx0LnNldCgzLE0uc3ltYm9sUGFja2FnZSksdC5zZXQoNCxNLnN5bWJvbENsYXNzKSx0LnNldCg1LE0uc3ltYm9sTWV0aG9kKSx0LnNldCg2LE0uc3ltYm9sUHJvcGVydHkpLHQuc2V0KDcsTS5zeW1ib2xGaWVsZCksdC5zZXQoOCxNLnN5bWJvbENvbnN0cnVjdG9yKSx0LnNldCg5LE0uc3ltYm9sRW51bSksdC5zZXQoMTAsTS5zeW1ib2xJbnRlcmZhY2UpLHQuc2V0KDExLE0uc3ltYm9sRnVuY3Rpb24pLHQuc2V0KDEyLE0uc3ltYm9sVmFyaWFibGUpLHQuc2V0KDEzLE0uc3ltYm9sQ29uc3RhbnQpLHQuc2V0KDE0LE0uc3ltYm9sU3RyaW5nKSx0LnNldCgxNSxNLnN5bWJvbE51bWJlciksdC5zZXQoMTYsTS5zeW1ib2xCb29sZWFuKSx0LnNldCgxNyxNLnN5bWJvbEFycmF5KSx0LnNldCgxOCxNLnN5bWJvbE9iamVjdCksdC5zZXQoMTksTS5zeW1ib2xLZXkpLHQuc2V0KDIwLE0uc3ltYm9sTnVsbCksdC5zZXQoMjEsTS5zeW1ib2xFbnVtTWVtYmVyKSx0LnNldCgyMixNLnN5bWJvbFN0cnVjdCksdC5zZXQoMjMsTS5zeW1ib2xFdmVudCksdC5zZXQoMjQsTS5zeW1ib2xPcGVyYXRvciksdC5zZXQoMjUsTS5zeW1ib2xUeXBlUGFyYW1ldGVyKTtmdW5jdGlvbiBuKHMpe2xldCByPXQuZ2V0KHMpO3JldHVybiByfHwocj1NLnN5bWJvbFByb3BlcnR5KSxyfWUudG9JY29uPW59KShFbnx8KEVuPXt9KSk7dmFyIE1uOyhmdW5jdGlvbihlKXtlW2UuQUlHZW5lcmF0ZWQ9MV09IkFJR2VuZXJhdGVkIn0pKE1ufHwoTW49e30pKTt2YXIga247KGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQobil7cmV0dXJuIW58fHR5cGVvZiBuIT0ib2JqZWN0Ij8hMTp0eXBlb2Ygbi5pZD09InN0cmluZyImJnR5cGVvZiBuLnRpdGxlPT0ic3RyaW5nIn1lLmlzPXR9KShrbnx8KGtuPXt9KSk7dmFyIFBuOyhmdW5jdGlvbihlKXtlW2UuVHlwZT0xXT0iVHlwZSIsZVtlLlBhcmFtZXRlcj0yXT0iUGFyYW1ldGVyIn0pKFBufHwoUG49e30pKSxuZXcgYmk7dmFyIERuOyhmdW5jdGlvbihlKXtlW2UuSW52b2tlPTBdPSJJbnZva2UiLGVbZS5BdXRvbWF0aWM9MV09IkF1dG9tYXRpYyJ9KShEbnx8KERuPXt9KSk7dmFyIEZuOyhmdW5jdGlvbihlKXtlW2UuVW5rbm93bj0wXT0iVW5rbm93biIsZVtlLkRpc2FibGVkPTFdPSJEaXNhYmxlZCIsZVtlLkVuYWJsZWQ9Ml09IkVuYWJsZWQifSkoRm58fChGbj17fSkpO3ZhciBUbjsoZnVuY3Rpb24oZSl7ZVtlLkludm9rZT0xXT0iSW52b2tlIixlW2UuQXV0bz0yXT0iQXV0byJ9KShUbnx8KFRuPXt9KSk7dmFyIFVuOyhmdW5jdGlvbihlKXtlW2UuTm9uZT0wXT0iTm9uZSIsZVtlLktlZXBXaGl0ZXNwYWNlPTFdPSJLZWVwV2hpdGVzcGFjZSIsZVtlLkluc2VydEFzU25pcHBldD00XT0iSW5zZXJ0QXNTbmlwcGV0In0pKFVufHwoVW49e30pKTt2YXIgVm47KGZ1bmN0aW9uKGUpe2VbZS5NZXRob2Q9MF09Ik1ldGhvZCIsZVtlLkZ1bmN0aW9uPTFdPSJGdW5jdGlvbiIsZVtlLkNvbnN0cnVjdG9yPTJdPSJDb25zdHJ1Y3RvciIsZVtlLkZpZWxkPTNdPSJGaWVsZCIsZVtlLlZhcmlhYmxlPTRdPSJWYXJpYWJsZSIsZVtlLkNsYXNzPTVdPSJDbGFzcyIsZVtlLlN0cnVjdD02XT0iU3RydWN0IixlW2UuSW50ZXJmYWNlPTddPSJJbnRlcmZhY2UiLGVbZS5Nb2R1bGU9OF09Ik1vZHVsZSIsZVtlLlByb3BlcnR5PTldPSJQcm9wZXJ0eSIsZVtlLkV2ZW50PTEwXT0iRXZlbnQiLGVbZS5PcGVyYXRvcj0xMV09Ik9wZXJhdG9yIixlW2UuVW5pdD0xMl09IlVuaXQiLGVbZS5WYWx1ZT0xM109IlZhbHVlIixlW2UuQ29uc3RhbnQ9MTRdPSJDb25zdGFudCIsZVtlLkVudW09MTVdPSJFbnVtIixlW2UuRW51bU1lbWJlcj0xNl09IkVudW1NZW1iZXIiLGVbZS5LZXl3b3JkPTE3XT0iS2V5d29yZCIsZVtlLlRleHQ9MThdPSJUZXh0IixlW2UuQ29sb3I9MTldPSJDb2xvciIsZVtlLkZpbGU9MjBdPSJGaWxlIixlW2UuUmVmZXJlbmNlPTIxXT0iUmVmZXJlbmNlIixlW2UuQ3VzdG9tY29sb3I9MjJdPSJDdXN0b21jb2xvciIsZVtlLkZvbGRlcj0yM109IkZvbGRlciIsZVtlLlR5cGVQYXJhbWV0ZXI9MjRdPSJUeXBlUGFyYW1ldGVyIixlW2UuVXNlcj0yNV09IlVzZXIiLGVbZS5Jc3N1ZT0yNl09Iklzc3VlIixlW2UuU25pcHBldD0yN109IlNuaXBwZXQifSkoVm58fChWbj17fSkpO3ZhciBCbjsoZnVuY3Rpb24oZSl7ZVtlLkRlcHJlY2F0ZWQ9MV09IkRlcHJlY2F0ZWQifSkoQm58fChCbj17fSkpO3ZhciBJbjsoZnVuY3Rpb24oZSl7ZVtlLkludm9rZT0wXT0iSW52b2tlIixlW2UuVHJpZ2dlckNoYXJhY3Rlcj0xXT0iVHJpZ2dlckNoYXJhY3RlciIsZVtlLlRyaWdnZXJGb3JJbmNvbXBsZXRlQ29tcGxldGlvbnM9Ml09IlRyaWdnZXJGb3JJbmNvbXBsZXRlQ29tcGxldGlvbnMifSkoSW58fChJbj17fSkpO3ZhciBxbjsoZnVuY3Rpb24oZSl7ZVtlLkVYQUNUPTBdPSJFWEFDVCIsZVtlLkFCT1ZFPTFdPSJBQk9WRSIsZVtlLkJFTE9XPTJdPSJCRUxPVyJ9KShxbnx8KHFuPXt9KSk7dmFyIEhuOyhmdW5jdGlvbihlKXtlW2UuTm90U2V0PTBdPSJOb3RTZXQiLGVbZS5Db250ZW50Rmx1c2g9MV09IkNvbnRlbnRGbHVzaCIsZVtlLlJlY292ZXJGcm9tTWFya2Vycz0yXT0iUmVjb3ZlckZyb21NYXJrZXJzIixlW2UuRXhwbGljaXQ9M109IkV4cGxpY2l0IixlW2UuUGFzdGU9NF09IlBhc3RlIixlW2UuVW5kbz01XT0iVW5kbyIsZVtlLlJlZG89Nl09IlJlZG8ifSkoSG58fChIbj17fSkpO3ZhciBXbjsoZnVuY3Rpb24oZSl7ZVtlLkxGPTFdPSJMRiIsZVtlLkNSTEY9Ml09IkNSTEYifSkoV258fChXbj17fSkpO3ZhciB6bjsoZnVuY3Rpb24oZSl7ZVtlLlRleHQ9MF09IlRleHQiLGVbZS5SZWFkPTFdPSJSZWFkIixlW2UuV3JpdGU9Ml09IldyaXRlIn0pKHpufHwoem49e30pKTt2YXIgJG47KGZ1bmN0aW9uKGUpe2VbZS5Ob25lPTBdPSJOb25lIixlW2UuS2VlcD0xXT0iS2VlcCIsZVtlLkJyYWNrZXRzPTJdPSJCcmFja2V0cyIsZVtlLkFkdmFuY2VkPTNdPSJBZHZhbmNlZCIsZVtlLkZ1bGw9NF09IkZ1bGwifSkoJG58fCgkbj17fSkpO3ZhciBPbjsoZnVuY3Rpb24oZSl7ZVtlLmFjY2VwdFN1Z2dlc3Rpb25PbkNvbW1pdENoYXJhY3Rlcj0wXT0iYWNjZXB0U3VnZ2VzdGlvbk9uQ29tbWl0Q2hhcmFjdGVyIixlW2UuYWNjZXB0U3VnZ2VzdGlvbk9uRW50ZXI9MV09ImFjY2VwdFN1Z2dlc3Rpb25PbkVudGVyIixlW2UuYWNjZXNzaWJpbGl0eVN1cHBvcnQ9Ml09ImFjY2Vzc2liaWxpdHlTdXBwb3J0IixlW2UuYWNjZXNzaWJpbGl0eVBhZ2VTaXplPTNdPSJhY2Nlc3NpYmlsaXR5UGFnZVNpemUiLGVbZS5hcmlhTGFiZWw9NF09ImFyaWFMYWJlbCIsZVtlLmFyaWFSZXF1aXJlZD01XT0iYXJpYVJlcXVpcmVkIixlW2UuYXV0b0Nsb3NpbmdCcmFja2V0cz02XT0iYXV0b0Nsb3NpbmdCcmFja2V0cyIsZVtlLmF1dG9DbG9zaW5nQ29tbWVudHM9N109ImF1dG9DbG9zaW5nQ29tbWVudHMiLGVbZS5zY3JlZW5SZWFkZXJBbm5vdW5jZUlubGluZVN1Z2dlc3Rpb249OF09InNjcmVlblJlYWRlckFubm91bmNlSW5saW5lU3VnZ2VzdGlvbiIsZVtlLmF1dG9DbG9zaW5nRGVsZXRlPTldPSJhdXRvQ2xvc2luZ0RlbGV0ZSIsZVtlLmF1dG9DbG9zaW5nT3ZlcnR5cGU9MTBdPSJhdXRvQ2xvc2luZ092ZXJ0eXBlIixlW2UuYXV0b0Nsb3NpbmdRdW90ZXM9MTFdPSJhdXRvQ2xvc2luZ1F1b3RlcyIsZVtlLmF1dG9JbmRlbnQ9MTJdPSJhdXRvSW5kZW50IixlW2UuYXV0b21hdGljTGF5b3V0PTEzXT0iYXV0b21hdGljTGF5b3V0IixlW2UuYXV0b1N1cnJvdW5kPTE0XT0iYXV0b1N1cnJvdW5kIixlW2UuYnJhY2tldFBhaXJDb2xvcml6YXRpb249MTVdPSJicmFja2V0UGFpckNvbG9yaXphdGlvbiIsZVtlLmd1aWRlcz0xNl09Imd1aWRlcyIsZVtlLmNvZGVMZW5zPTE3XT0iY29kZUxlbnMiLGVbZS5jb2RlTGVuc0ZvbnRGYW1pbHk9MThdPSJjb2RlTGVuc0ZvbnRGYW1pbHkiLGVbZS5jb2RlTGVuc0ZvbnRTaXplPTE5XT0iY29kZUxlbnNGb250U2l6ZSIsZVtlLmNvbG9yRGVjb3JhdG9ycz0yMF09ImNvbG9yRGVjb3JhdG9ycyIsZVtlLmNvbG9yRGVjb3JhdG9yc0xpbWl0PTIxXT0iY29sb3JEZWNvcmF0b3JzTGltaXQiLGVbZS5jb2x1bW5TZWxlY3Rpb249MjJdPSJjb2x1bW5TZWxlY3Rpb24iLGVbZS5jb21tZW50cz0yM109ImNvbW1lbnRzIixlW2UuY29udGV4dG1lbnU9MjRdPSJjb250ZXh0bWVudSIsZVtlLmNvcHlXaXRoU3ludGF4SGlnaGxpZ2h0aW5nPTI1XT0iY29weVdpdGhTeW50YXhIaWdobGlnaHRpbmciLGVbZS5jdXJzb3JCbGlua2luZz0yNl09ImN1cnNvckJsaW5raW5nIixlW2UuY3Vyc29yU21vb3RoQ2FyZXRBbmltYXRpb249MjddPSJjdXJzb3JTbW9vdGhDYXJldEFuaW1hdGlvbiIsZVtlLmN1cnNvclN0eWxlPTI4XT0iY3Vyc29yU3R5bGUiLGVbZS5jdXJzb3JTdXJyb3VuZGluZ0xpbmVzPTI5XT0iY3Vyc29yU3Vycm91bmRpbmdMaW5lcyIsZVtlLmN1cnNvclN1cnJvdW5kaW5nTGluZXNTdHlsZT0zMF09ImN1cnNvclN1cnJvdW5kaW5nTGluZXNTdHlsZSIsZVtlLmN1cnNvcldpZHRoPTMxXT0iY3Vyc29yV2lkdGgiLGVbZS5kaXNhYmxlTGF5ZXJIaW50aW5nPTMyXT0iZGlzYWJsZUxheWVySGludGluZyIsZVtlLmRpc2FibGVNb25vc3BhY2VPcHRpbWl6YXRpb25zPTMzXT0iZGlzYWJsZU1vbm9zcGFjZU9wdGltaXphdGlvbnMiLGVbZS5kb21SZWFkT25seT0zNF09ImRvbVJlYWRPbmx5IixlW2UuZHJhZ0FuZERyb3A9MzVdPSJkcmFnQW5kRHJvcCIsZVtlLmRyb3BJbnRvRWRpdG9yPTM2XT0iZHJvcEludG9FZGl0b3IiLGVbZS5lbXB0eVNlbGVjdGlvbkNsaXBib2FyZD0zN109ImVtcHR5U2VsZWN0aW9uQ2xpcGJvYXJkIixlW2UuZXhwZXJpbWVudGFsV2hpdGVzcGFjZVJlbmRlcmluZz0zOF09ImV4cGVyaW1lbnRhbFdoaXRlc3BhY2VSZW5kZXJpbmciLGVbZS5leHRyYUVkaXRvckNsYXNzTmFtZT0zOV09ImV4dHJhRWRpdG9yQ2xhc3NOYW1lIixlW2UuZmFzdFNjcm9sbFNlbnNpdGl2aXR5PTQwXT0iZmFzdFNjcm9sbFNlbnNpdGl2aXR5IixlW2UuZmluZD00MV09ImZpbmQiLGVbZS5maXhlZE92ZXJmbG93V2lkZ2V0cz00Ml09ImZpeGVkT3ZlcmZsb3dXaWRnZXRzIixlW2UuZm9sZGluZz00M109ImZvbGRpbmciLGVbZS5mb2xkaW5nU3RyYXRlZ3k9NDRdPSJmb2xkaW5nU3RyYXRlZ3kiLGVbZS5mb2xkaW5nSGlnaGxpZ2h0PTQ1XT0iZm9sZGluZ0hpZ2hsaWdodCIsZVtlLmZvbGRpbmdJbXBvcnRzQnlEZWZhdWx0PTQ2XT0iZm9sZGluZ0ltcG9ydHNCeURlZmF1bHQiLGVbZS5mb2xkaW5nTWF4aW11bVJlZ2lvbnM9NDddPSJmb2xkaW5nTWF4aW11bVJlZ2lvbnMiLGVbZS51bmZvbGRPbkNsaWNrQWZ0ZXJFbmRPZkxpbmU9NDhdPSJ1bmZvbGRPbkNsaWNrQWZ0ZXJFbmRPZkxpbmUiLGVbZS5mb250RmFtaWx5PTQ5XT0iZm9udEZhbWlseSIsZVtlLmZvbnRJbmZvPTUwXT0iZm9udEluZm8iLGVbZS5mb250TGlnYXR1cmVzPTUxXT0iZm9udExpZ2F0dXJlcyIsZVtlLmZvbnRTaXplPTUyXT0iZm9udFNpemUiLGVbZS5mb250V2VpZ2h0PTUzXT0iZm9udFdlaWdodCIsZVtlLmZvbnRWYXJpYXRpb25zPTU0XT0iZm9udFZhcmlhdGlvbnMiLGVbZS5mb3JtYXRPblBhc3RlPTU1XT0iZm9ybWF0T25QYXN0ZSIsZVtlLmZvcm1hdE9uVHlwZT01Nl09ImZvcm1hdE9uVHlwZSIsZVtlLmdseXBoTWFyZ2luPTU3XT0iZ2x5cGhNYXJnaW4iLGVbZS5nb3RvTG9jYXRpb249NThdPSJnb3RvTG9jYXRpb24iLGVbZS5oaWRlQ3Vyc29ySW5PdmVydmlld1J1bGVyPTU5XT0iaGlkZUN1cnNvckluT3ZlcnZpZXdSdWxlciIsZVtlLmhvdmVyPTYwXT0iaG92ZXIiLGVbZS5pbkRpZmZFZGl0b3I9NjFdPSJpbkRpZmZFZGl0b3IiLGVbZS5pbmxpbmVTdWdnZXN0PTYyXT0iaW5saW5lU3VnZ2VzdCIsZVtlLmlubGluZUVkaXQ9NjNdPSJpbmxpbmVFZGl0IixlW2UubGV0dGVyU3BhY2luZz02NF09ImxldHRlclNwYWNpbmciLGVbZS5saWdodGJ1bGI9NjVdPSJsaWdodGJ1bGIiLGVbZS5saW5lRGVjb3JhdGlvbnNXaWR0aD02Nl09ImxpbmVEZWNvcmF0aW9uc1dpZHRoIixlW2UubGluZUhlaWdodD02N109ImxpbmVIZWlnaHQiLGVbZS5saW5lTnVtYmVycz02OF09ImxpbmVOdW1iZXJzIixlW2UubGluZU51bWJlcnNNaW5DaGFycz02OV09ImxpbmVOdW1iZXJzTWluQ2hhcnMiLGVbZS5saW5rZWRFZGl0aW5nPTcwXT0ibGlua2VkRWRpdGluZyIsZVtlLmxpbmtzPTcxXT0ibGlua3MiLGVbZS5tYXRjaEJyYWNrZXRzPTcyXT0ibWF0Y2hCcmFja2V0cyIsZVtlLm1pbmltYXA9NzNdPSJtaW5pbWFwIixlW2UubW91c2VTdHlsZT03NF09Im1vdXNlU3R5bGUiLGVbZS5tb3VzZVdoZWVsU2Nyb2xsU2Vuc2l0aXZpdHk9NzVdPSJtb3VzZVdoZWVsU2Nyb2xsU2Vuc2l0aXZpdHkiLGVbZS5tb3VzZVdoZWVsWm9vbT03Nl09Im1vdXNlV2hlZWxab29tIixlW2UubXVsdGlDdXJzb3JNZXJnZU92ZXJsYXBwaW5nPTc3XT0ibXVsdGlDdXJzb3JNZXJnZU92ZXJsYXBwaW5nIixlW2UubXVsdGlDdXJzb3JNb2RpZmllcj03OF09Im11bHRpQ3Vyc29yTW9kaWZpZXIiLGVbZS5tdWx0aUN1cnNvclBhc3RlPTc5XT0ibXVsdGlDdXJzb3JQYXN0ZSIsZVtlLm11bHRpQ3Vyc29yTGltaXQ9ODBdPSJtdWx0aUN1cnNvckxpbWl0IixlW2Uub2NjdXJyZW5jZXNIaWdobGlnaHQ9ODFdPSJvY2N1cnJlbmNlc0hpZ2hsaWdodCIsZVtlLm92ZXJ2aWV3UnVsZXJCb3JkZXI9ODJdPSJvdmVydmlld1J1bGVyQm9yZGVyIixlW2Uub3ZlcnZpZXdSdWxlckxhbmVzPTgzXT0ib3ZlcnZpZXdSdWxlckxhbmVzIixlW2UucGFkZGluZz04NF09InBhZGRpbmciLGVbZS5wYXN0ZUFzPTg1XT0icGFzdGVBcyIsZVtlLnBhcmFtZXRlckhpbnRzPTg2XT0icGFyYW1ldGVySGludHMiLGVbZS5wZWVrV2lkZ2V0RGVmYXVsdEZvY3VzPTg3XT0icGVla1dpZGdldERlZmF1bHRGb2N1cyIsZVtlLmRlZmluaXRpb25MaW5rT3BlbnNJblBlZWs9ODhdPSJkZWZpbml0aW9uTGlua09wZW5zSW5QZWVrIixlW2UucXVpY2tTdWdnZXN0aW9ucz04OV09InF1aWNrU3VnZ2VzdGlvbnMiLGVbZS5xdWlja1N1Z2dlc3Rpb25zRGVsYXk9OTBdPSJxdWlja1N1Z2dlc3Rpb25zRGVsYXkiLGVbZS5yZWFkT25seT05MV09InJlYWRPbmx5IixlW2UucmVhZE9ubHlNZXNzYWdlPTkyXT0icmVhZE9ubHlNZXNzYWdlIixlW2UucmVuYW1lT25UeXBlPTkzXT0icmVuYW1lT25UeXBlIixlW2UucmVuZGVyQ29udHJvbENoYXJhY3RlcnM9OTRdPSJyZW5kZXJDb250cm9sQ2hhcmFjdGVycyIsZVtlLnJlbmRlckZpbmFsTmV3bGluZT05NV09InJlbmRlckZpbmFsTmV3bGluZSIsZVtlLnJlbmRlckxpbmVIaWdobGlnaHQ9OTZdPSJyZW5kZXJMaW5lSGlnaGxpZ2h0IixlW2UucmVuZGVyTGluZUhpZ2hsaWdodE9ubHlXaGVuRm9jdXM9OTddPSJyZW5kZXJMaW5lSGlnaGxpZ2h0T25seVdoZW5Gb2N1cyIsZVtlLnJlbmRlclZhbGlkYXRpb25EZWNvcmF0aW9ucz05OF09InJlbmRlclZhbGlkYXRpb25EZWNvcmF0aW9ucyIsZVtlLnJlbmRlcldoaXRlc3BhY2U9OTldPSJyZW5kZXJXaGl0ZXNwYWNlIixlW2UucmV2ZWFsSG9yaXpvbnRhbFJpZ2h0UGFkZGluZz0xMDBdPSJyZXZlYWxIb3Jpem9udGFsUmlnaHRQYWRkaW5nIixlW2Uucm91bmRlZFNlbGVjdGlvbj0xMDFdPSJyb3VuZGVkU2VsZWN0aW9uIixlW2UucnVsZXJzPTEwMl09InJ1bGVycyIsZVtlLnNjcm9sbGJhcj0xMDNdPSJzY3JvbGxiYXIiLGVbZS5zY3JvbGxCZXlvbmRMYXN0Q29sdW1uPTEwNF09InNjcm9sbEJleW9uZExhc3RDb2x1bW4iLGVbZS5zY3JvbGxCZXlvbmRMYXN0TGluZT0xMDVdPSJzY3JvbGxCZXlvbmRMYXN0TGluZSIsZVtlLnNjcm9sbFByZWRvbWluYW50QXhpcz0xMDZdPSJzY3JvbGxQcmVkb21pbmFudEF4aXMiLGVbZS5zZWxlY3Rpb25DbGlwYm9hcmQ9MTA3XT0ic2VsZWN0aW9uQ2xpcGJvYXJkIixlW2Uuc2VsZWN0aW9uSGlnaGxpZ2h0PTEwOF09InNlbGVjdGlvbkhpZ2hsaWdodCIsZVtlLnNlbGVjdE9uTGluZU51bWJlcnM9MTA5XT0ic2VsZWN0T25MaW5lTnVtYmVycyIsZVtlLnNob3dGb2xkaW5nQ29udHJvbHM9MTEwXT0ic2hvd0ZvbGRpbmdDb250cm9scyIsZVtlLnNob3dVbnVzZWQ9MTExXT0ic2hvd1VudXNlZCIsZVtlLnNuaXBwZXRTdWdnZXN0aW9ucz0xMTJdPSJzbmlwcGV0U3VnZ2VzdGlvbnMiLGVbZS5zbWFydFNlbGVjdD0xMTNdPSJzbWFydFNlbGVjdCIsZVtlLnNtb290aFNjcm9sbGluZz0xMTRdPSJzbW9vdGhTY3JvbGxpbmciLGVbZS5zdGlja3lTY3JvbGw9MTE1XT0ic3RpY2t5U2Nyb2xsIixlW2Uuc3RpY2t5VGFiU3RvcHM9MTE2XT0ic3RpY2t5VGFiU3RvcHMiLGVbZS5zdG9wUmVuZGVyaW5nTGluZUFmdGVyPTExN109InN0b3BSZW5kZXJpbmdMaW5lQWZ0ZXIiLGVbZS5zdWdnZXN0PTExOF09InN1Z2dlc3QiLGVbZS5zdWdnZXN0Rm9udFNpemU9MTE5XT0ic3VnZ2VzdEZvbnRTaXplIixlW2Uuc3VnZ2VzdExpbmVIZWlnaHQ9MTIwXT0ic3VnZ2VzdExpbmVIZWlnaHQiLGVbZS5zdWdnZXN0T25UcmlnZ2VyQ2hhcmFjdGVycz0xMjFdPSJzdWdnZXN0T25UcmlnZ2VyQ2hhcmFjdGVycyIsZVtlLnN1Z2dlc3RTZWxlY3Rpb249MTIyXT0ic3VnZ2VzdFNlbGVjdGlvbiIsZVtlLnRhYkNvbXBsZXRpb249MTIzXT0idGFiQ29tcGxldGlvbiIsZVtlLnRhYkluZGV4PTEyNF09InRhYkluZGV4IixlW2UudW5pY29kZUhpZ2hsaWdodGluZz0xMjVdPSJ1bmljb2RlSGlnaGxpZ2h0aW5nIixlW2UudW51c3VhbExpbmVUZXJtaW5hdG9ycz0xMjZdPSJ1bnVzdWFsTGluZVRlcm1pbmF0b3JzIixlW2UudXNlU2hhZG93RE9NPTEyN109InVzZVNoYWRvd0RPTSIsZVtlLnVzZVRhYlN0b3BzPTEyOF09InVzZVRhYlN0b3BzIixlW2Uud29yZEJyZWFrPTEyOV09IndvcmRCcmVhayIsZVtlLndvcmRTZXBhcmF0b3JzPTEzMF09IndvcmRTZXBhcmF0b3JzIixlW2Uud29yZFdyYXA9MTMxXT0id29yZFdyYXAiLGVbZS53b3JkV3JhcEJyZWFrQWZ0ZXJDaGFyYWN0ZXJzPTEzMl09IndvcmRXcmFwQnJlYWtBZnRlckNoYXJhY3RlcnMiLGVbZS53b3JkV3JhcEJyZWFrQmVmb3JlQ2hhcmFjdGVycz0xMzNdPSJ3b3JkV3JhcEJyZWFrQmVmb3JlQ2hhcmFjdGVycyIsZVtlLndvcmRXcmFwQ29sdW1uPTEzNF09IndvcmRXcmFwQ29sdW1uIixlW2Uud29yZFdyYXBPdmVycmlkZTE9MTM1XT0id29yZFdyYXBPdmVycmlkZTEiLGVbZS53b3JkV3JhcE92ZXJyaWRlMj0xMzZdPSJ3b3JkV3JhcE92ZXJyaWRlMiIsZVtlLndyYXBwaW5nSW5kZW50PTEzN109IndyYXBwaW5nSW5kZW50IixlW2Uud3JhcHBpbmdTdHJhdGVneT0xMzhdPSJ3cmFwcGluZ1N0cmF0ZWd5IixlW2Uuc2hvd0RlcHJlY2F0ZWQ9MTM5XT0ic2hvd0RlcHJlY2F0ZWQiLGVbZS5pbmxheUhpbnRzPTE0MF09ImlubGF5SGludHMiLGVbZS5lZGl0b3JDbGFzc05hbWU9MTQxXT0iZWRpdG9yQ2xhc3NOYW1lIixlW2UucGl4ZWxSYXRpbz0xNDJdPSJwaXhlbFJhdGlvIixlW2UudGFiRm9jdXNNb2RlPTE0M109InRhYkZvY3VzTW9kZSIsZVtlLmxheW91dEluZm89MTQ0XT0ibGF5b3V0SW5mbyIsZVtlLndyYXBwaW5nSW5mbz0xNDVdPSJ3cmFwcGluZ0luZm8iLGVbZS5kZWZhdWx0Q29sb3JEZWNvcmF0b3JzPTE0Nl09ImRlZmF1bHRDb2xvckRlY29yYXRvcnMiLGVbZS5jb2xvckRlY29yYXRvcnNBY3RpdmF0ZWRPbj0xNDddPSJjb2xvckRlY29yYXRvcnNBY3RpdmF0ZWRPbiIsZVtlLmlubGluZUNvbXBsZXRpb25zQWNjZXNzaWJpbGl0eVZlcmJvc2U9MTQ4XT0iaW5saW5lQ29tcGxldGlvbnNBY2Nlc3NpYmlsaXR5VmVyYm9zZSJ9KShPbnx8KE9uPXt9KSk7dmFyIEduOyhmdW5jdGlvbihlKXtlW2UuVGV4dERlZmluZWQ9MF09IlRleHREZWZpbmVkIixlW2UuTEY9MV09IkxGIixlW2UuQ1JMRj0yXT0iQ1JMRiJ9KShHbnx8KEduPXt9KSk7dmFyIGpuOyhmdW5jdGlvbihlKXtlW2UuTEY9MF09IkxGIixlW2UuQ1JMRj0xXT0iQ1JMRiJ9KShqbnx8KGpuPXt9KSk7dmFyIFhuOyhmdW5jdGlvbihlKXtlW2UuTGVmdD0xXT0iTGVmdCIsZVtlLkNlbnRlcj0yXT0iQ2VudGVyIixlW2UuUmlnaHQ9M109IlJpZ2h0In0pKFhufHwoWG49e30pKTt2YXIgUW47KGZ1bmN0aW9uKGUpe2VbZS5Ob25lPTBdPSJOb25lIixlW2UuSW5kZW50PTFdPSJJbmRlbnQiLGVbZS5JbmRlbnRPdXRkZW50PTJdPSJJbmRlbnRPdXRkZW50IixlW2UuT3V0ZGVudD0zXT0iT3V0ZGVudCJ9KShRbnx8KFFuPXt9KSk7dmFyIFluOyhmdW5jdGlvbihlKXtlW2UuQm90aD0wXT0iQm90aCIsZVtlLlJpZ2h0PTFdPSJSaWdodCIsZVtlLkxlZnQ9Ml09IkxlZnQiLGVbZS5Ob25lPTNdPSJOb25lIn0pKFlufHwoWW49e30pKTt2YXIgSm47KGZ1bmN0aW9uKGUpe2VbZS5UeXBlPTFdPSJUeXBlIixlW2UuUGFyYW1ldGVyPTJdPSJQYXJhbWV0ZXIifSkoSm58fChKbj17fSkpO3ZhciBabjsoZnVuY3Rpb24oZSl7ZVtlLkF1dG9tYXRpYz0wXT0iQXV0b21hdGljIixlW2UuRXhwbGljaXQ9MV09IkV4cGxpY2l0In0pKFpufHwoWm49e30pKTt2YXIgS247KGZ1bmN0aW9uKGUpe2VbZS5JbnZva2U9MF09Ikludm9rZSIsZVtlLkF1dG9tYXRpYz0xXT0iQXV0b21hdGljIn0pKEtufHwoS249e30pKTt2YXIgQnQ7KGZ1bmN0aW9uKGUpe2VbZS5EZXBlbmRzT25LYkxheW91dD0tMV09IkRlcGVuZHNPbktiTGF5b3V0IixlW2UuVW5rbm93bj0wXT0iVW5rbm93biIsZVtlLkJhY2tzcGFjZT0xXT0iQmFja3NwYWNlIixlW2UuVGFiPTJdPSJUYWIiLGVbZS5FbnRlcj0zXT0iRW50ZXIiLGVbZS5TaGlmdD00XT0iU2hpZnQiLGVbZS5DdHJsPTVdPSJDdHJsIixlW2UuQWx0PTZdPSJBbHQiLGVbZS5QYXVzZUJyZWFrPTddPSJQYXVzZUJyZWFrIixlW2UuQ2Fwc0xvY2s9OF09IkNhcHNMb2NrIixlW2UuRXNjYXBlPTldPSJFc2NhcGUiLGVbZS5TcGFjZT0xMF09IlNwYWNlIixlW2UuUGFnZVVwPTExXT0iUGFnZVVwIixlW2UuUGFnZURvd249MTJdPSJQYWdlRG93biIsZVtlLkVuZD0xM109IkVuZCIsZVtlLkhvbWU9MTRdPSJIb21lIixlW2UuTGVmdEFycm93PTE1XT0iTGVmdEFycm93IixlW2UuVXBBcnJvdz0xNl09IlVwQXJyb3ciLGVbZS5SaWdodEFycm93PTE3XT0iUmlnaHRBcnJvdyIsZVtlLkRvd25BcnJvdz0xOF09IkRvd25BcnJvdyIsZVtlLkluc2VydD0xOV09Ikluc2VydCIsZVtlLkRlbGV0ZT0yMF09IkRlbGV0ZSIsZVtlLkRpZ2l0MD0yMV09IkRpZ2l0MCIsZVtlLkRpZ2l0MT0yMl09IkRpZ2l0MSIsZVtlLkRpZ2l0Mj0yM109IkRpZ2l0MiIsZVtlLkRpZ2l0Mz0yNF09IkRpZ2l0MyIsZVtlLkRpZ2l0ND0yNV09IkRpZ2l0NCIsZVtlLkRpZ2l0NT0yNl09IkRpZ2l0NSIsZVtlLkRpZ2l0Nj0yN109IkRpZ2l0NiIsZVtlLkRpZ2l0Nz0yOF09IkRpZ2l0NyIsZVtlLkRpZ2l0OD0yOV09IkRpZ2l0OCIsZVtlLkRpZ2l0OT0zMF09IkRpZ2l0OSIsZVtlLktleUE9MzFdPSJLZXlBIixlW2UuS2V5Qj0zMl09IktleUIiLGVbZS5LZXlDPTMzXT0iS2V5QyIsZVtlLktleUQ9MzRdPSJLZXlEIixlW2UuS2V5RT0zNV09IktleUUiLGVbZS5LZXlGPTM2XT0iS2V5RiIsZVtlLktleUc9MzddPSJLZXlHIixlW2UuS2V5SD0zOF09IktleUgiLGVbZS5LZXlJPTM5XT0iS2V5SSIsZVtlLktleUo9NDBdPSJLZXlKIixlW2UuS2V5Sz00MV09IktleUsiLGVbZS5LZXlMPTQyXT0iS2V5TCIsZVtlLktleU09NDNdPSJLZXlNIixlW2UuS2V5Tj00NF09IktleU4iLGVbZS5LZXlPPTQ1XT0iS2V5TyIsZVtlLktleVA9NDZdPSJLZXlQIixlW2UuS2V5UT00N109IktleVEiLGVbZS5LZXlSPTQ4XT0iS2V5UiIsZVtlLktleVM9NDldPSJLZXlTIixlW2UuS2V5VD01MF09IktleVQiLGVbZS5LZXlVPTUxXT0iS2V5VSIsZVtlLktleVY9NTJdPSJLZXlWIixlW2UuS2V5Vz01M109IktleVciLGVbZS5LZXlYPTU0XT0iS2V5WCIsZVtlLktleVk9NTVdPSJLZXlZIixlW2UuS2V5Wj01Nl09IktleVoiLGVbZS5NZXRhPTU3XT0iTWV0YSIsZVtlLkNvbnRleHRNZW51PTU4XT0iQ29udGV4dE1lbnUiLGVbZS5GMT01OV09IkYxIixlW2UuRjI9NjBdPSJGMiIsZVtlLkYzPTYxXT0iRjMiLGVbZS5GND02Ml09IkY0IixlW2UuRjU9NjNdPSJGNSIsZVtlLkY2PTY0XT0iRjYiLGVbZS5GNz02NV09IkY3IixlW2UuRjg9NjZdPSJGOCIsZVtlLkY5PTY3XT0iRjkiLGVbZS5GMTA9NjhdPSJGMTAiLGVbZS5GMTE9NjldPSJGMTEiLGVbZS5GMTI9NzBdPSJGMTIiLGVbZS5GMTM9NzFdPSJGMTMiLGVbZS5GMTQ9NzJdPSJGMTQiLGVbZS5GMTU9NzNdPSJGMTUiLGVbZS5GMTY9NzRdPSJGMTYiLGVbZS5GMTc9NzVdPSJGMTciLGVbZS5GMTg9NzZdPSJGMTgiLGVbZS5GMTk9NzddPSJGMTkiLGVbZS5GMjA9NzhdPSJGMjAiLGVbZS5GMjE9NzldPSJGMjEiLGVbZS5GMjI9ODBdPSJGMjIiLGVbZS5GMjM9ODFdPSJGMjMiLGVbZS5GMjQ9ODJdPSJGMjQiLGVbZS5OdW1Mb2NrPTgzXT0iTnVtTG9jayIsZVtlLlNjcm9sbExvY2s9ODRdPSJTY3JvbGxMb2NrIixlW2UuU2VtaWNvbG9uPTg1XT0iU2VtaWNvbG9uIixlW2UuRXF1YWw9ODZdPSJFcXVhbCIsZVtlLkNvbW1hPTg3XT0iQ29tbWEiLGVbZS5NaW51cz04OF09Ik1pbnVzIixlW2UuUGVyaW9kPTg5XT0iUGVyaW9kIixlW2UuU2xhc2g9OTBdPSJTbGFzaCIsZVtlLkJhY2txdW90ZT05MV09IkJhY2txdW90ZSIsZVtlLkJyYWNrZXRMZWZ0PTkyXT0iQnJhY2tldExlZnQiLGVbZS5CYWNrc2xhc2g9OTNdPSJCYWNrc2xhc2giLGVbZS5CcmFja2V0UmlnaHQ9OTRdPSJCcmFja2V0UmlnaHQiLGVbZS5RdW90ZT05NV09IlF1b3RlIixlW2UuT0VNXzg9OTZdPSJPRU1fOCIsZVtlLkludGxCYWNrc2xhc2g9OTddPSJJbnRsQmFja3NsYXNoIixlW2UuTnVtcGFkMD05OF09Ik51bXBhZDAiLGVbZS5OdW1wYWQxPTk5XT0iTnVtcGFkMSIsZVtlLk51bXBhZDI9MTAwXT0iTnVtcGFkMiIsZVtlLk51bXBhZDM9MTAxXT0iTnVtcGFkMyIsZVtlLk51bXBhZDQ9MTAyXT0iTnVtcGFkNCIsZVtlLk51bXBhZDU9MTAzXT0iTnVtcGFkNSIsZVtlLk51bXBhZDY9MTA0XT0iTnVtcGFkNiIsZVtlLk51bXBhZDc9MTA1XT0iTnVtcGFkNyIsZVtlLk51bXBhZDg9MTA2XT0iTnVtcGFkOCIsZVtlLk51bXBhZDk9MTA3XT0iTnVtcGFkOSIsZVtlLk51bXBhZE11bHRpcGx5PTEwOF09Ik51bXBhZE11bHRpcGx5IixlW2UuTnVtcGFkQWRkPTEwOV09Ik51bXBhZEFkZCIsZVtlLk5VTVBBRF9TRVBBUkFUT1I9MTEwXT0iTlVNUEFEX1NFUEFSQVRPUiIsZVtlLk51bXBhZFN1YnRyYWN0PTExMV09Ik51bXBhZFN1YnRyYWN0IixlW2UuTnVtcGFkRGVjaW1hbD0xMTJdPSJOdW1wYWREZWNpbWFsIixlW2UuTnVtcGFkRGl2aWRlPTExM109Ik51bXBhZERpdmlkZSIsZVtlLktFWV9JTl9DT01QT1NJVElPTj0xMTRdPSJLRVlfSU5fQ09NUE9TSVRJT04iLGVbZS5BQk5UX0MxPTExNV09IkFCTlRfQzEiLGVbZS5BQk5UX0MyPTExNl09IkFCTlRfQzIiLGVbZS5BdWRpb1ZvbHVtZU11dGU9MTE3XT0iQXVkaW9Wb2x1bWVNdXRlIixlW2UuQXVkaW9Wb2x1bWVVcD0xMThdPSJBdWRpb1ZvbHVtZVVwIixlW2UuQXVkaW9Wb2x1bWVEb3duPTExOV09IkF1ZGlvVm9sdW1lRG93biIsZVtlLkJyb3dzZXJTZWFyY2g9MTIwXT0iQnJvd3NlclNlYXJjaCIsZVtlLkJyb3dzZXJIb21lPTEyMV09IkJyb3dzZXJIb21lIixlW2UuQnJvd3NlckJhY2s9MTIyXT0iQnJvd3NlckJhY2siLGVbZS5Ccm93c2VyRm9yd2FyZD0xMjNdPSJCcm93c2VyRm9yd2FyZCIsZVtlLk1lZGlhVHJhY2tOZXh0PTEyNF09Ik1lZGlhVHJhY2tOZXh0IixlW2UuTWVkaWFUcmFja1ByZXZpb3VzPTEyNV09Ik1lZGlhVHJhY2tQcmV2aW91cyIsZVtlLk1lZGlhU3RvcD0xMjZdPSJNZWRpYVN0b3AiLGVbZS5NZWRpYVBsYXlQYXVzZT0xMjddPSJNZWRpYVBsYXlQYXVzZSIsZVtlLkxhdW5jaE1lZGlhUGxheWVyPTEyOF09IkxhdW5jaE1lZGlhUGxheWVyIixlW2UuTGF1bmNoTWFpbD0xMjldPSJMYXVuY2hNYWlsIixlW2UuTGF1bmNoQXBwMj0xMzBdPSJMYXVuY2hBcHAyIixlW2UuQ2xlYXI9MTMxXT0iQ2xlYXIiLGVbZS5NQVhfVkFMVUU9MTMyXT0iTUFYX1ZBTFVFIn0pKEJ0fHwoQnQ9e30pKTt2YXIgSXQ7KGZ1bmN0aW9uKGUpe2VbZS5IaW50PTFdPSJIaW50IixlW2UuSW5mbz0yXT0iSW5mbyIsZVtlLldhcm5pbmc9NF09Ildhcm5pbmciLGVbZS5FcnJvcj04XT0iRXJyb3IifSkoSXR8fChJdD17fSkpO3ZhciBxdDsoZnVuY3Rpb24oZSl7ZVtlLlVubmVjZXNzYXJ5PTFdPSJVbm5lY2Vzc2FyeSIsZVtlLkRlcHJlY2F0ZWQ9Ml09IkRlcHJlY2F0ZWQifSkocXR8fChxdD17fSkpO3ZhciBlczsoZnVuY3Rpb24oZSl7ZVtlLklubGluZT0xXT0iSW5saW5lIixlW2UuR3V0dGVyPTJdPSJHdXR0ZXIifSkoZXN8fChlcz17fSkpO3ZhciB0czsoZnVuY3Rpb24oZSl7ZVtlLlVOS05PV049MF09IlVOS05PV04iLGVbZS5URVhUQVJFQT0xXT0iVEVYVEFSRUEiLGVbZS5HVVRURVJfR0xZUEhfTUFSR0lOPTJdPSJHVVRURVJfR0xZUEhfTUFSR0lOIixlW2UuR1VUVEVSX0xJTkVfTlVNQkVSUz0zXT0iR1VUVEVSX0xJTkVfTlVNQkVSUyIsZVtlLkdVVFRFUl9MSU5FX0RFQ09SQVRJT05TPTRdPSJHVVRURVJfTElORV9ERUNPUkFUSU9OUyIsZVtlLkdVVFRFUl9WSUVXX1pPTkU9NV09IkdVVFRFUl9WSUVXX1pPTkUiLGVbZS5DT05URU5UX1RFWFQ9Nl09IkNPTlRFTlRfVEVYVCIsZVtlLkNPTlRFTlRfRU1QVFk9N109IkNPTlRFTlRfRU1QVFkiLGVbZS5DT05URU5UX1ZJRVdfWk9ORT04XT0iQ09OVEVOVF9WSUVXX1pPTkUiLGVbZS5DT05URU5UX1dJREdFVD05XT0iQ09OVEVOVF9XSURHRVQiLGVbZS5PVkVSVklFV19SVUxFUj0xMF09Ik9WRVJWSUVXX1JVTEVSIixlW2UuU0NST0xMQkFSPTExXT0iU0NST0xMQkFSIixlW2UuT1ZFUkxBWV9XSURHRVQ9MTJdPSJPVkVSTEFZX1dJREdFVCIsZVtlLk9VVFNJREVfRURJVE9SPTEzXT0iT1VUU0lERV9FRElUT1IifSkodHN8fCh0cz17fSkpO3ZhciBuczsoZnVuY3Rpb24oZSl7ZVtlLkFJR2VuZXJhdGVkPTFdPSJBSUdlbmVyYXRlZCJ9KShuc3x8KG5zPXt9KSk7dmFyIHNzOyhmdW5jdGlvbihlKXtlW2UuVE9QX1JJR0hUX0NPUk5FUj0wXT0iVE9QX1JJR0hUX0NPUk5FUiIsZVtlLkJPVFRPTV9SSUdIVF9DT1JORVI9MV09IkJPVFRPTV9SSUdIVF9DT1JORVIiLGVbZS5UT1BfQ0VOVEVSPTJdPSJUT1BfQ0VOVEVSIn0pKHNzfHwoc3M9e30pKTt2YXIgcnM7KGZ1bmN0aW9uKGUpe2VbZS5MZWZ0PTFdPSJMZWZ0IixlW2UuQ2VudGVyPTJdPSJDZW50ZXIiLGVbZS5SaWdodD00XT0iUmlnaHQiLGVbZS5GdWxsPTddPSJGdWxsIn0pKHJzfHwocnM9e30pKTt2YXIgaXM7KGZ1bmN0aW9uKGUpe2VbZS5MZWZ0PTBdPSJMZWZ0IixlW2UuUmlnaHQ9MV09IlJpZ2h0IixlW2UuTm9uZT0yXT0iTm9uZSIsZVtlLkxlZnRPZkluamVjdGVkVGV4dD0zXT0iTGVmdE9mSW5qZWN0ZWRUZXh0IixlW2UuUmlnaHRPZkluamVjdGVkVGV4dD00XT0iUmlnaHRPZkluamVjdGVkVGV4dCJ9KShpc3x8KGlzPXt9KSk7dmFyIGFzOyhmdW5jdGlvbihlKXtlW2UuT2ZmPTBdPSJPZmYiLGVbZS5Pbj0xXT0iT24iLGVbZS5SZWxhdGl2ZT0yXT0iUmVsYXRpdmUiLGVbZS5JbnRlcnZhbD0zXT0iSW50ZXJ2YWwiLGVbZS5DdXN0b209NF09IkN1c3RvbSJ9KShhc3x8KGFzPXt9KSk7dmFyIGxzOyhmdW5jdGlvbihlKXtlW2UuTm9uZT0wXT0iTm9uZSIsZVtlLlRleHQ9MV09IlRleHQiLGVbZS5CbG9ja3M9Ml09IkJsb2NrcyJ9KShsc3x8KGxzPXt9KSk7dmFyIG9zOyhmdW5jdGlvbihlKXtlW2UuU21vb3RoPTBdPSJTbW9vdGgiLGVbZS5JbW1lZGlhdGU9MV09IkltbWVkaWF0ZSJ9KShvc3x8KG9zPXt9KSk7dmFyIHVzOyhmdW5jdGlvbihlKXtlW2UuQXV0bz0xXT0iQXV0byIsZVtlLkhpZGRlbj0yXT0iSGlkZGVuIixlW2UuVmlzaWJsZT0zXT0iVmlzaWJsZSJ9KSh1c3x8KHVzPXt9KSk7dmFyIEh0OyhmdW5jdGlvbihlKXtlW2UuTFRSPTBdPSJMVFIiLGVbZS5SVEw9MV09IlJUTCJ9KShIdHx8KEh0PXt9KSk7dmFyIGNzOyhmdW5jdGlvbihlKXtlLk9mZj0ib2ZmIixlLk9uQ29kZT0ib25Db2RlIixlLk9uPSJvbiJ9KShjc3x8KGNzPXt9KSk7dmFyIGhzOyhmdW5jdGlvbihlKXtlW2UuSW52b2tlPTFdPSJJbnZva2UiLGVbZS5UcmlnZ2VyQ2hhcmFjdGVyPTJdPSJUcmlnZ2VyQ2hhcmFjdGVyIixlW2UuQ29udGVudENoYW5nZT0zXT0iQ29udGVudENoYW5nZSJ9KShoc3x8KGhzPXt9KSk7dmFyIGZzOyhmdW5jdGlvbihlKXtlW2UuRmlsZT0wXT0iRmlsZSIsZVtlLk1vZHVsZT0xXT0iTW9kdWxlIixlW2UuTmFtZXNwYWNlPTJdPSJOYW1lc3BhY2UiLGVbZS5QYWNrYWdlPTNdPSJQYWNrYWdlIixlW2UuQ2xhc3M9NF09IkNsYXNzIixlW2UuTWV0aG9kPTVdPSJNZXRob2QiLGVbZS5Qcm9wZXJ0eT02XT0iUHJvcGVydHkiLGVbZS5GaWVsZD03XT0iRmllbGQiLGVbZS5Db25zdHJ1Y3Rvcj04XT0iQ29uc3RydWN0b3IiLGVbZS5FbnVtPTldPSJFbnVtIixlW2UuSW50ZXJmYWNlPTEwXT0iSW50ZXJmYWNlIixlW2UuRnVuY3Rpb249MTFdPSJGdW5jdGlvbiIsZVtlLlZhcmlhYmxlPTEyXT0iVmFyaWFibGUiLGVbZS5Db25zdGFudD0xM109IkNvbnN0YW50IixlW2UuU3RyaW5nPTE0XT0iU3RyaW5nIixlW2UuTnVtYmVyPTE1XT0iTnVtYmVyIixlW2UuQm9vbGVhbj0xNl09IkJvb2xlYW4iLGVbZS5BcnJheT0xN109IkFycmF5IixlW2UuT2JqZWN0PTE4XT0iT2JqZWN0IixlW2UuS2V5PTE5XT0iS2V5IixlW2UuTnVsbD0yMF09Ik51bGwiLGVbZS5FbnVtTWVtYmVyPTIxXT0iRW51bU1lbWJlciIsZVtlLlN0cnVjdD0yMl09IlN0cnVjdCIsZVtlLkV2ZW50PTIzXT0iRXZlbnQiLGVbZS5PcGVyYXRvcj0yNF09Ik9wZXJhdG9yIixlW2UuVHlwZVBhcmFtZXRlcj0yNV09IlR5cGVQYXJhbWV0ZXIifSkoZnN8fChmcz17fSkpO3ZhciBkczsoZnVuY3Rpb24oZSl7ZVtlLkRlcHJlY2F0ZWQ9MV09IkRlcHJlY2F0ZWQifSkoZHN8fChkcz17fSkpO3ZhciBtczsoZnVuY3Rpb24oZSl7ZVtlLkhpZGRlbj0wXT0iSGlkZGVuIixlW2UuQmxpbms9MV09IkJsaW5rIixlW2UuU21vb3RoPTJdPSJTbW9vdGgiLGVbZS5QaGFzZT0zXT0iUGhhc2UiLGVbZS5FeHBhbmQ9NF09IkV4cGFuZCIsZVtlLlNvbGlkPTVdPSJTb2xpZCJ9KShtc3x8KG1zPXt9KSk7dmFyIGdzOyhmdW5jdGlvbihlKXtlW2UuTGluZT0xXT0iTGluZSIsZVtlLkJsb2NrPTJdPSJCbG9jayIsZVtlLlVuZGVybGluZT0zXT0iVW5kZXJsaW5lIixlW2UuTGluZVRoaW49NF09IkxpbmVUaGluIixlW2UuQmxvY2tPdXRsaW5lPTVdPSJCbG9ja091dGxpbmUiLGVbZS5VbmRlcmxpbmVUaGluPTZdPSJVbmRlcmxpbmVUaGluIn0pKGdzfHwoZ3M9e30pKTt2YXIgYnM7KGZ1bmN0aW9uKGUpe2VbZS5BbHdheXNHcm93c1doZW5UeXBpbmdBdEVkZ2VzPTBdPSJBbHdheXNHcm93c1doZW5UeXBpbmdBdEVkZ2VzIixlW2UuTmV2ZXJHcm93c1doZW5UeXBpbmdBdEVkZ2VzPTFdPSJOZXZlckdyb3dzV2hlblR5cGluZ0F0RWRnZXMiLGVbZS5Hcm93c09ubHlXaGVuVHlwaW5nQmVmb3JlPTJdPSJHcm93c09ubHlXaGVuVHlwaW5nQmVmb3JlIixlW2UuR3Jvd3NPbmx5V2hlblR5cGluZ0FmdGVyPTNdPSJHcm93c09ubHlXaGVuVHlwaW5nQWZ0ZXIifSkoYnN8fChicz17fSkpO3ZhciBfczsoZnVuY3Rpb24oZSl7ZVtlLk5vbmU9MF09Ik5vbmUiLGVbZS5TYW1lPTFdPSJTYW1lIixlW2UuSW5kZW50PTJdPSJJbmRlbnQiLGVbZS5EZWVwSW5kZW50PTNdPSJEZWVwSW5kZW50In0pKF9zfHwoX3M9e30pKTtjbGFzcyAkZXtzdGF0aWMgY2hvcmQodCxuKXtyZXR1cm4gZ2kodCxuKX19JGUuQ3RybENtZD0yMDQ4LCRlLlNoaWZ0PTEwMjQsJGUuQWx0PTUxMiwkZS5XaW5DdHJsPTI1NjtmdW5jdGlvbiBwaSgpe3JldHVybntlZGl0b3I6dm9pZCAwLGxhbmd1YWdlczp2b2lkIDAsQ2FuY2VsbGF0aW9uVG9rZW5Tb3VyY2U6aGksRW1pdHRlcjpyZSxLZXlDb2RlOkJ0LEtleU1vZDokZSxQb3NpdGlvbjpZLFJhbmdlOkQsU2VsZWN0aW9uOnRlLFNlbGVjdGlvbkRpcmVjdGlvbjpIdCxNYXJrZXJTZXZlcml0eTpJdCxNYXJrZXJUYWc6cXQsVXJpOndlLFRva2VuOnhpfX12YXIgeHM7KGZ1bmN0aW9uKGUpe2VbZS5MZWZ0PTFdPSJMZWZ0IixlW2UuQ2VudGVyPTJdPSJDZW50ZXIiLGVbZS5SaWdodD00XT0iUmlnaHQiLGVbZS5GdWxsPTddPSJGdWxsIn0pKHhzfHwoeHM9e30pKTt2YXIgcHM7KGZ1bmN0aW9uKGUpe2VbZS5MZWZ0PTFdPSJMZWZ0IixlW2UuQ2VudGVyPTJdPSJDZW50ZXIiLGVbZS5SaWdodD0zXT0iUmlnaHQifSkocHN8fChwcz17fSkpO3ZhciB2czsoZnVuY3Rpb24oZSl7ZVtlLklubGluZT0xXT0iSW5saW5lIixlW2UuR3V0dGVyPTJdPSJHdXR0ZXIifSkodnN8fCh2cz17fSkpO3ZhciBMczsoZnVuY3Rpb24oZSl7ZVtlLkJvdGg9MF09IkJvdGgiLGVbZS5SaWdodD0xXT0iUmlnaHQiLGVbZS5MZWZ0PTJdPSJMZWZ0IixlW2UuTm9uZT0zXT0iTm9uZSJ9KShMc3x8KExzPXt9KSk7ZnVuY3Rpb24gdmkoZSx0LG4scyxyKXtpZihzPT09MClyZXR1cm4hMDtjb25zdCBpPXQuY2hhckNvZGVBdChzLTEpO2lmKGUuZ2V0KGkpIT09MHx8aT09PTEzfHxpPT09MTApcmV0dXJuITA7aWYocj4wKXtjb25zdCBsPXQuY2hhckNvZGVBdChzKTtpZihlLmdldChsKSE9PTApcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gTGkoZSx0LG4scyxyKXtpZihzK3I9PT1uKXJldHVybiEwO2NvbnN0IGk9dC5jaGFyQ29kZUF0KHMrcik7aWYoZS5nZXQoaSkhPT0wfHxpPT09MTN8fGk9PT0xMClyZXR1cm4hMDtpZihyPjApe2NvbnN0IGw9dC5jaGFyQ29kZUF0KHMrci0xKTtpZihlLmdldChsKSE9PTApcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gd2koZSx0LG4scyxyKXtyZXR1cm4gdmkoZSx0LG4scyxyKSYmTGkoZSx0LG4scyxyKX1jbGFzcyBOaXtjb25zdHJ1Y3Rvcih0LG4pe3RoaXMuX3dvcmRTZXBhcmF0b3JzPXQsdGhpcy5fc2VhcmNoUmVnZXg9bix0aGlzLl9wcmV2TWF0Y2hTdGFydEluZGV4PS0xLHRoaXMuX3ByZXZNYXRjaExlbmd0aD0wfXJlc2V0KHQpe3RoaXMuX3NlYXJjaFJlZ2V4Lmxhc3RJbmRleD10LHRoaXMuX3ByZXZNYXRjaFN0YXJ0SW5kZXg9LTEsdGhpcy5fcHJldk1hdGNoTGVuZ3RoPTB9bmV4dCh0KXtjb25zdCBuPXQubGVuZ3RoO2xldCBzO2Rve2lmKHRoaXMuX3ByZXZNYXRjaFN0YXJ0SW5kZXgrdGhpcy5fcHJldk1hdGNoTGVuZ3RoPT09bnx8KHM9dGhpcy5fc2VhcmNoUmVnZXguZXhlYyh0KSwhcykpcmV0dXJuIG51bGw7Y29uc3Qgcj1zLmluZGV4LGk9c1swXS5sZW5ndGg7aWYocj09PXRoaXMuX3ByZXZNYXRjaFN0YXJ0SW5kZXgmJmk9PT10aGlzLl9wcmV2TWF0Y2hMZW5ndGgpe2lmKGk9PT0wKXt4cih0LG4sdGhpcy5fc2VhcmNoUmVnZXgubGFzdEluZGV4KT42NTUzNT90aGlzLl9zZWFyY2hSZWdleC5sYXN0SW5kZXgrPTI6dGhpcy5fc2VhcmNoUmVnZXgubGFzdEluZGV4Kz0xO2NvbnRpbnVlfXJldHVybiBudWxsfWlmKHRoaXMuX3ByZXZNYXRjaFN0YXJ0SW5kZXg9cix0aGlzLl9wcmV2TWF0Y2hMZW5ndGg9aSwhdGhpcy5fd29yZFNlcGFyYXRvcnN8fHdpKHRoaXMuX3dvcmRTZXBhcmF0b3JzLHQsbixyLGkpKXJldHVybiBzfXdoaWxlKHMpO3JldHVybiBudWxsfX1mdW5jdGlvbiBTaShlLHQ9IlVucmVhY2hhYmxlIil7dGhyb3cgbmV3IEVycm9yKHQpfWZ1bmN0aW9uIGh0KGUpe2UoKXx8KGUoKSxZdChuZXcgaGUoIkFzc2VydGlvbiBGYWlsZWQiKSkpfWZ1bmN0aW9uIHdzKGUsdCl7bGV0IG49MDtmb3IoO248ZS5sZW5ndGgtMTspe2NvbnN0IHM9ZVtuXSxyPWVbbisxXTtpZighdChzLHIpKXJldHVybiExO24rK31yZXR1cm4hMH1jbGFzcyBDaXtzdGF0aWMgY29tcHV0ZVVuaWNvZGVIaWdobGlnaHRzKHQsbixzKXtjb25zdCByPXM/cy5zdGFydExpbmVOdW1iZXI6MSxpPXM/cy5lbmRMaW5lTnVtYmVyOnQuZ2V0TGluZUNvdW50KCksbD1uZXcgTnMobiksbz1sLmdldENhbmRpZGF0ZUNvZGVQb2ludHMoKTtsZXQgdTtvPT09ImFsbE5vbkJhc2ljQXNjaWkiP3U9bmV3IFJlZ0V4cCgiW15cXHRcXG5cXHJcXHgyMC1cXHg3RV0iLCJnIik6dT1uZXcgUmVnRXhwKGAke0FpKEFycmF5LmZyb20obykpfWAsImciKTtjb25zdCBjPW5ldyBOaShudWxsLHUpLGg9W107bGV0IGY9ITEsZCxtPTAsZz0wLHg9MDtlOmZvcihsZXQgdj1yLE49aTt2PD1OO3YrKyl7Y29uc3QgUz10LmdldExpbmVDb250ZW50KHYpLF89Uy5sZW5ndGg7Yy5yZXNldCgwKTtkbyBpZihkPWMubmV4dChTKSxkKXtsZXQgdz1kLmluZGV4LHA9ZC5pbmRleCtkWzBdLmxlbmd0aDtpZih3PjApe2NvbnN0IEk9Uy5jaGFyQ29kZUF0KHctMSk7QXQoSSkmJnctLX1pZihwKzE8Xyl7Y29uc3QgST1TLmNoYXJDb2RlQXQocC0xKTtBdChJKSYmcCsrfWNvbnN0IHk9Uy5zdWJzdHJpbmcodyxwKTtsZXQgUj1rdCh3KzEscG4sUywwKTtSJiZSLmVuZENvbHVtbjw9dysxJiYoUj1udWxsKTtjb25zdCBFPWwuc2hvdWxkSGlnaGxpZ2h0Tm9uQmFzaWNBU0NJSSh5LFI/Ui53b3JkOm51bGwpO2lmKEUhPT0wKXtpZihFPT09Mz9tKys6RT09PTI/ZysrOkU9PT0xP3grKzpTaSgpLGgubGVuZ3RoPj0xZTMpe2Y9ITA7YnJlYWsgZX1oLnB1c2gobmV3IEQodix3KzEsdixwKzEpKX19d2hpbGUoZCl9cmV0dXJue3JhbmdlczpoLGhhc01vcmU6ZixhbWJpZ3VvdXNDaGFyYWN0ZXJDb3VudDptLGludmlzaWJsZUNoYXJhY3RlckNvdW50Omcsbm9uQmFzaWNBc2NpaUNoYXJhY3RlckNvdW50Onh9fXN0YXRpYyBjb21wdXRlVW5pY29kZUhpZ2hsaWdodFJlYXNvbih0LG4pe2NvbnN0IHM9bmV3IE5zKG4pO3N3aXRjaChzLnNob3VsZEhpZ2hsaWdodE5vbkJhc2ljQVNDSUkodCxudWxsKSl7Y2FzZSAwOnJldHVybiBudWxsO2Nhc2UgMjpyZXR1cm57a2luZDoxfTtjYXNlIDM6e2NvbnN0IGk9dC5jb2RlUG9pbnRBdCgwKSxsPXMuYW1iaWd1b3VzQ2hhcmFjdGVycy5nZXRQcmltYXJ5Q29uZnVzYWJsZShpKSxvPUxlLmdldExvY2FsZXMoKS5maWx0ZXIodT0+IUxlLmdldEluc3RhbmNlKG5ldyBTZXQoWy4uLm4uYWxsb3dlZExvY2FsZXMsdV0pKS5pc0FtYmlndW91cyhpKSk7cmV0dXJue2tpbmQ6MCxjb25mdXNhYmxlV2l0aDpTdHJpbmcuZnJvbUNvZGVQb2ludChsKSxub3RBbWJpZ3VvdXNJbkxvY2FsZXM6b319Y2FzZSAxOnJldHVybntraW5kOjJ9fX19ZnVuY3Rpb24gQWkoZSx0KXtyZXR1cm5gWyR7ZnIoZS5tYXAocz0+U3RyaW5nLmZyb21Db2RlUG9pbnQocykpLmpvaW4oIiIpKX1dYH1jbGFzcyBOc3tjb25zdHJ1Y3Rvcih0KXt0aGlzLm9wdGlvbnM9dCx0aGlzLmFsbG93ZWRDb2RlUG9pbnRzPW5ldyBTZXQodC5hbGxvd2VkQ29kZVBvaW50cyksdGhpcy5hbWJpZ3VvdXNDaGFyYWN0ZXJzPUxlLmdldEluc3RhbmNlKG5ldyBTZXQodC5hbGxvd2VkTG9jYWxlcykpfWdldENhbmRpZGF0ZUNvZGVQb2ludHMoKXtpZih0aGlzLm9wdGlvbnMubm9uQmFzaWNBU0NJSSlyZXR1cm4iYWxsTm9uQmFzaWNBc2NpaSI7Y29uc3QgdD1uZXcgU2V0O2lmKHRoaXMub3B0aW9ucy5pbnZpc2libGVDaGFyYWN0ZXJzKWZvcihjb25zdCBuIG9mIGZlLmNvZGVQb2ludHMpU3MoU3RyaW5nLmZyb21Db2RlUG9pbnQobikpfHx0LmFkZChuKTtpZih0aGlzLm9wdGlvbnMuYW1iaWd1b3VzQ2hhcmFjdGVycylmb3IoY29uc3QgbiBvZiB0aGlzLmFtYmlndW91c0NoYXJhY3RlcnMuZ2V0Q29uZnVzYWJsZUNvZGVQb2ludHMoKSl0LmFkZChuKTtmb3IoY29uc3QgbiBvZiB0aGlzLmFsbG93ZWRDb2RlUG9pbnRzKXQuZGVsZXRlKG4pO3JldHVybiB0fXNob3VsZEhpZ2hsaWdodE5vbkJhc2ljQVNDSUkodCxuKXtjb25zdCBzPXQuY29kZVBvaW50QXQoMCk7aWYodGhpcy5hbGxvd2VkQ29kZVBvaW50cy5oYXMocykpcmV0dXJuIDA7aWYodGhpcy5vcHRpb25zLm5vbkJhc2ljQVNDSUkpcmV0dXJuIDE7bGV0IHI9ITEsaT0hMTtpZihuKWZvcihjb25zdCBsIG9mIG4pe2NvbnN0IG89bC5jb2RlUG9pbnRBdCgwKSx1PXZyKGwpO3I9cnx8dSwhdSYmIXRoaXMuYW1iaWd1b3VzQ2hhcmFjdGVycy5pc0FtYmlndW91cyhvKSYmIWZlLmlzSW52aXNpYmxlQ2hhcmFjdGVyKG8pJiYoaT0hMCl9cmV0dXJuIXImJmk/MDp0aGlzLm9wdGlvbnMuaW52aXNpYmxlQ2hhcmFjdGVycyYmIVNzKHQpJiZmZS5pc0ludmlzaWJsZUNoYXJhY3RlcihzKT8yOnRoaXMub3B0aW9ucy5hbWJpZ3VvdXNDaGFyYWN0ZXJzJiZ0aGlzLmFtYmlndW91c0NoYXJhY3RlcnMuaXNBbWJpZ3VvdXMocyk/MzowfX1mdW5jdGlvbiBTcyhlKXtyZXR1cm4gZT09PSIgInx8ZT09PWAKYHx8ZT09PSIJIn1jbGFzcyBmdHtjb25zdHJ1Y3Rvcih0LG4scyl7dGhpcy5jaGFuZ2VzPXQsdGhpcy5tb3Zlcz1uLHRoaXMuaGl0VGltZW91dD1zfX1jbGFzcyB5aXtjb25zdHJ1Y3Rvcih0LG4pe3RoaXMubGluZVJhbmdlTWFwcGluZz10LHRoaXMuY2hhbmdlcz1ufX1jbGFzcyBUe3N0YXRpYyBhZGRSYW5nZSh0LG4pe2xldCBzPTA7Zm9yKDtzPG4ubGVuZ3RoJiZuW3NdLmVuZEV4Y2x1c2l2ZTx0LnN0YXJ0OylzKys7bGV0IHI9cztmb3IoO3I8bi5sZW5ndGgmJm5bcl0uc3RhcnQ8PXQuZW5kRXhjbHVzaXZlOylyKys7aWYocz09PXIpbi5zcGxpY2UocywwLHQpO2Vsc2V7Y29uc3QgaT1NYXRoLm1pbih0LnN0YXJ0LG5bc10uc3RhcnQpLGw9TWF0aC5tYXgodC5lbmRFeGNsdXNpdmUsbltyLTFdLmVuZEV4Y2x1c2l2ZSk7bi5zcGxpY2UocyxyLXMsbmV3IFQoaSxsKSl9fXN0YXRpYyBvZkxlbmd0aCh0KXtyZXR1cm4gbmV3IFQoMCx0KX1zdGF0aWMgb2ZTdGFydEFuZExlbmd0aCh0LG4pe3JldHVybiBuZXcgVCh0LHQrbil9Y29uc3RydWN0b3IodCxuKXtpZih0aGlzLnN0YXJ0PXQsdGhpcy5lbmRFeGNsdXNpdmU9bix0Pm4pdGhyb3cgbmV3IGhlKGBJbnZhbGlkIHJhbmdlOiAke3RoaXMudG9TdHJpbmcoKX1gKX1nZXQgaXNFbXB0eSgpe3JldHVybiB0aGlzLnN0YXJ0PT09dGhpcy5lbmRFeGNsdXNpdmV9ZGVsdGEodCl7cmV0dXJuIG5ldyBUKHRoaXMuc3RhcnQrdCx0aGlzLmVuZEV4Y2x1c2l2ZSt0KX1kZWx0YVN0YXJ0KHQpe3JldHVybiBuZXcgVCh0aGlzLnN0YXJ0K3QsdGhpcy5lbmRFeGNsdXNpdmUpfWRlbHRhRW5kKHQpe3JldHVybiBuZXcgVCh0aGlzLnN0YXJ0LHRoaXMuZW5kRXhjbHVzaXZlK3QpfWdldCBsZW5ndGgoKXtyZXR1cm4gdGhpcy5lbmRFeGNsdXNpdmUtdGhpcy5zdGFydH10b1N0cmluZygpe3JldHVybmBbJHt0aGlzLnN0YXJ0fSwgJHt0aGlzLmVuZEV4Y2x1c2l2ZX0pYH1jb250YWlucyh0KXtyZXR1cm4gdGhpcy5zdGFydDw9dCYmdDx0aGlzLmVuZEV4Y2x1c2l2ZX1qb2luKHQpe3JldHVybiBuZXcgVChNYXRoLm1pbih0aGlzLnN0YXJ0LHQuc3RhcnQpLE1hdGgubWF4KHRoaXMuZW5kRXhjbHVzaXZlLHQuZW5kRXhjbHVzaXZlKSl9aW50ZXJzZWN0KHQpe2NvbnN0IG49TWF0aC5tYXgodGhpcy5zdGFydCx0LnN0YXJ0KSxzPU1hdGgubWluKHRoaXMuZW5kRXhjbHVzaXZlLHQuZW5kRXhjbHVzaXZlKTtpZihuPD1zKXJldHVybiBuZXcgVChuLHMpfWludGVyc2VjdHModCl7Y29uc3Qgbj1NYXRoLm1heCh0aGlzLnN0YXJ0LHQuc3RhcnQpLHM9TWF0aC5taW4odGhpcy5lbmRFeGNsdXNpdmUsdC5lbmRFeGNsdXNpdmUpO3JldHVybiBuPHN9aXNCZWZvcmUodCl7cmV0dXJuIHRoaXMuZW5kRXhjbHVzaXZlPD10LnN0YXJ0fWlzQWZ0ZXIodCl7cmV0dXJuIHRoaXMuc3RhcnQ+PXQuZW5kRXhjbHVzaXZlfXNsaWNlKHQpe3JldHVybiB0LnNsaWNlKHRoaXMuc3RhcnQsdGhpcy5lbmRFeGNsdXNpdmUpfWNsaXAodCl7aWYodGhpcy5pc0VtcHR5KXRocm93IG5ldyBoZShgSW52YWxpZCBjbGlwcGluZyByYW5nZTogJHt0aGlzLnRvU3RyaW5nKCl9YCk7cmV0dXJuIE1hdGgubWF4KHRoaXMuc3RhcnQsTWF0aC5taW4odGhpcy5lbmRFeGNsdXNpdmUtMSx0KSl9Y2xpcEN5Y2xpYyh0KXtpZih0aGlzLmlzRW1wdHkpdGhyb3cgbmV3IGhlKGBJbnZhbGlkIGNsaXBwaW5nIHJhbmdlOiAke3RoaXMudG9TdHJpbmcoKX1gKTtyZXR1cm4gdDx0aGlzLnN0YXJ0P3RoaXMuZW5kRXhjbHVzaXZlLSh0aGlzLnN0YXJ0LXQpJXRoaXMubGVuZ3RoOnQ+PXRoaXMuZW5kRXhjbHVzaXZlP3RoaXMuc3RhcnQrKHQtdGhpcy5zdGFydCkldGhpcy5sZW5ndGg6dH1mb3JFYWNoKHQpe2ZvcihsZXQgbj10aGlzLnN0YXJ0O248dGhpcy5lbmRFeGNsdXNpdmU7bisrKXQobil9fWZ1bmN0aW9uIFVlKGUsdCl7Y29uc3Qgbj1PZShlLHQpO3JldHVybiBuPT09LTE/dm9pZCAwOmVbbl19ZnVuY3Rpb24gT2UoZSx0LG49MCxzPWUubGVuZ3RoKXtsZXQgcj1uLGk9cztmb3IoO3I8aTspe2NvbnN0IGw9TWF0aC5mbG9vcigocitpKS8yKTt0KGVbbF0pP3I9bCsxOmk9bH1yZXR1cm4gci0xfWZ1bmN0aW9uIFJpKGUsdCl7Y29uc3Qgbj1XdChlLHQpO3JldHVybiBuPT09ZS5sZW5ndGg/dm9pZCAwOmVbbl19ZnVuY3Rpb24gV3QoZSx0LG49MCxzPWUubGVuZ3RoKXtsZXQgcj1uLGk9cztmb3IoO3I8aTspe2NvbnN0IGw9TWF0aC5mbG9vcigocitpKS8yKTt0KGVbbF0pP2k9bDpyPWwrMX1yZXR1cm4gcn1jbGFzcyBHZXtjb25zdHJ1Y3Rvcih0KXt0aGlzLl9hcnJheT10LHRoaXMuX2ZpbmRMYXN0TW9ub3Rvbm91c0xhc3RJZHg9MH1maW5kTGFzdE1vbm90b25vdXModCl7aWYoR2UuYXNzZXJ0SW52YXJpYW50cyl7aWYodGhpcy5fcHJldkZpbmRMYXN0UHJlZGljYXRlKXtmb3IoY29uc3QgcyBvZiB0aGlzLl9hcnJheSlpZih0aGlzLl9wcmV2RmluZExhc3RQcmVkaWNhdGUocykmJiF0KHMpKXRocm93IG5ldyBFcnJvcigiTW9ub3Rvbm91c0FycmF5OiBjdXJyZW50IHByZWRpY2F0ZSBtdXN0IGJlIHdlYWtlciB0aGFuIChvciBlcXVhbCB0bykgdGhlIHByZXZpb3VzIHByZWRpY2F0ZS4iKX10aGlzLl9wcmV2RmluZExhc3RQcmVkaWNhdGU9dH1jb25zdCBuPU9lKHRoaXMuX2FycmF5LHQsdGhpcy5fZmluZExhc3RNb25vdG9ub3VzTGFzdElkeCk7cmV0dXJuIHRoaXMuX2ZpbmRMYXN0TW9ub3Rvbm91c0xhc3RJZHg9bisxLG49PT0tMT92b2lkIDA6dGhpcy5fYXJyYXlbbl19fUdlLmFzc2VydEludmFyaWFudHM9ITE7Y2xhc3MgVXtzdGF0aWMgZnJvbVJhbmdlSW5jbHVzaXZlKHQpe3JldHVybiBuZXcgVSh0LnN0YXJ0TGluZU51bWJlcix0LmVuZExpbmVOdW1iZXIrMSl9c3RhdGljIGpvaW5NYW55KHQpe2lmKHQubGVuZ3RoPT09MClyZXR1cm5bXTtsZXQgbj1uZXcgdWUodFswXS5zbGljZSgpKTtmb3IobGV0IHM9MTtzPHQubGVuZ3RoO3MrKyluPW4uZ2V0VW5pb24obmV3IHVlKHRbc10uc2xpY2UoKSkpO3JldHVybiBuLnJhbmdlc31zdGF0aWMgb2ZMZW5ndGgodCxuKXtyZXR1cm4gbmV3IFUodCx0K24pfXN0YXRpYyBkZXNlcmlhbGl6ZSh0KXtyZXR1cm4gbmV3IFUodFswXSx0WzFdKX1jb25zdHJ1Y3Rvcih0LG4pe2lmKHQ+bil0aHJvdyBuZXcgaGUoYHN0YXJ0TGluZU51bWJlciAke3R9IGNhbm5vdCBiZSBhZnRlciBlbmRMaW5lTnVtYmVyRXhjbHVzaXZlICR7bn1gKTt0aGlzLnN0YXJ0TGluZU51bWJlcj10LHRoaXMuZW5kTGluZU51bWJlckV4Y2x1c2l2ZT1ufWNvbnRhaW5zKHQpe3JldHVybiB0aGlzLnN0YXJ0TGluZU51bWJlcjw9dCYmdDx0aGlzLmVuZExpbmVOdW1iZXJFeGNsdXNpdmV9Z2V0IGlzRW1wdHkoKXtyZXR1cm4gdGhpcy5zdGFydExpbmVOdW1iZXI9PT10aGlzLmVuZExpbmVOdW1iZXJFeGNsdXNpdmV9ZGVsdGEodCl7cmV0dXJuIG5ldyBVKHRoaXMuc3RhcnRMaW5lTnVtYmVyK3QsdGhpcy5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlK3QpfWRlbHRhTGVuZ3RoKHQpe3JldHVybiBuZXcgVSh0aGlzLnN0YXJ0TGluZU51bWJlcix0aGlzLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUrdCl9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUtdGhpcy5zdGFydExpbmVOdW1iZXJ9am9pbih0KXtyZXR1cm4gbmV3IFUoTWF0aC5taW4odGhpcy5zdGFydExpbmVOdW1iZXIsdC5zdGFydExpbmVOdW1iZXIpLE1hdGgubWF4KHRoaXMuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSx0LmVuZExpbmVOdW1iZXJFeGNsdXNpdmUpKX10b1N0cmluZygpe3JldHVybmBbJHt0aGlzLnN0YXJ0TGluZU51bWJlcn0sJHt0aGlzLmVuZExpbmVOdW1iZXJFeGNsdXNpdmV9KWB9aW50ZXJzZWN0KHQpe2NvbnN0IG49TWF0aC5tYXgodGhpcy5zdGFydExpbmVOdW1iZXIsdC5zdGFydExpbmVOdW1iZXIpLHM9TWF0aC5taW4odGhpcy5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLHQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSk7aWYobjw9cylyZXR1cm4gbmV3IFUobixzKX1pbnRlcnNlY3RzU3RyaWN0KHQpe3JldHVybiB0aGlzLnN0YXJ0TGluZU51bWJlcjx0LmVuZExpbmVOdW1iZXJFeGNsdXNpdmUmJnQuc3RhcnRMaW5lTnVtYmVyPHRoaXMuZW5kTGluZU51bWJlckV4Y2x1c2l2ZX1vdmVybGFwT3JUb3VjaCh0KXtyZXR1cm4gdGhpcy5zdGFydExpbmVOdW1iZXI8PXQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSYmdC5zdGFydExpbmVOdW1iZXI8PXRoaXMuZW5kTGluZU51bWJlckV4Y2x1c2l2ZX1lcXVhbHModCl7cmV0dXJuIHRoaXMuc3RhcnRMaW5lTnVtYmVyPT09dC5zdGFydExpbmVOdW1iZXImJnRoaXMuZW5kTGluZU51bWJlckV4Y2x1c2l2ZT09PXQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZX10b0luY2x1c2l2ZVJhbmdlKCl7cmV0dXJuIHRoaXMuaXNFbXB0eT9udWxsOm5ldyBEKHRoaXMuc3RhcnRMaW5lTnVtYmVyLDEsdGhpcy5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLTEsTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpfXRvRXhjbHVzaXZlUmFuZ2UoKXtyZXR1cm4gbmV3IEQodGhpcy5zdGFydExpbmVOdW1iZXIsMSx0aGlzLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUsMSl9bWFwVG9MaW5lQXJyYXkodCl7Y29uc3Qgbj1bXTtmb3IobGV0IHM9dGhpcy5zdGFydExpbmVOdW1iZXI7czx0aGlzLmVuZExpbmVOdW1iZXJFeGNsdXNpdmU7cysrKW4ucHVzaCh0KHMpKTtyZXR1cm4gbn1mb3JFYWNoKHQpe2ZvcihsZXQgbj10aGlzLnN0YXJ0TGluZU51bWJlcjtuPHRoaXMuZW5kTGluZU51bWJlckV4Y2x1c2l2ZTtuKyspdChuKX1zZXJpYWxpemUoKXtyZXR1cm5bdGhpcy5zdGFydExpbmVOdW1iZXIsdGhpcy5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlXX1pbmNsdWRlcyh0KXtyZXR1cm4gdGhpcy5zdGFydExpbmVOdW1iZXI8PXQmJnQ8dGhpcy5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlfXRvT2Zmc2V0UmFuZ2UoKXtyZXR1cm4gbmV3IFQodGhpcy5zdGFydExpbmVOdW1iZXItMSx0aGlzLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUtMSl9fWNsYXNzIHVle2NvbnN0cnVjdG9yKHQ9W10pe3RoaXMuX25vcm1hbGl6ZWRSYW5nZXM9dH1nZXQgcmFuZ2VzKCl7cmV0dXJuIHRoaXMuX25vcm1hbGl6ZWRSYW5nZXN9YWRkUmFuZ2UodCl7aWYodC5sZW5ndGg9PT0wKXJldHVybjtjb25zdCBuPVd0KHRoaXMuX25vcm1hbGl6ZWRSYW5nZXMscj0+ci5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlPj10LnN0YXJ0TGluZU51bWJlcikscz1PZSh0aGlzLl9ub3JtYWxpemVkUmFuZ2VzLHI9PnIuc3RhcnRMaW5lTnVtYmVyPD10LmVuZExpbmVOdW1iZXJFeGNsdXNpdmUpKzE7aWYobj09PXMpdGhpcy5fbm9ybWFsaXplZFJhbmdlcy5zcGxpY2UobiwwLHQpO2Vsc2UgaWYobj09PXMtMSl7Y29uc3Qgcj10aGlzLl9ub3JtYWxpemVkUmFuZ2VzW25dO3RoaXMuX25vcm1hbGl6ZWRSYW5nZXNbbl09ci5qb2luKHQpfWVsc2V7Y29uc3Qgcj10aGlzLl9ub3JtYWxpemVkUmFuZ2VzW25dLmpvaW4odGhpcy5fbm9ybWFsaXplZFJhbmdlc1tzLTFdKS5qb2luKHQpO3RoaXMuX25vcm1hbGl6ZWRSYW5nZXMuc3BsaWNlKG4scy1uLHIpfX1jb250YWlucyh0KXtjb25zdCBuPVVlKHRoaXMuX25vcm1hbGl6ZWRSYW5nZXMscz0+cy5zdGFydExpbmVOdW1iZXI8PXQpO3JldHVybiEhbiYmbi5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlPnR9aW50ZXJzZWN0cyh0KXtjb25zdCBuPVVlKHRoaXMuX25vcm1hbGl6ZWRSYW5nZXMscz0+cy5zdGFydExpbmVOdW1iZXI8dC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlKTtyZXR1cm4hIW4mJm4uZW5kTGluZU51bWJlckV4Y2x1c2l2ZT50LnN0YXJ0TGluZU51bWJlcn1nZXRVbmlvbih0KXtpZih0aGlzLl9ub3JtYWxpemVkUmFuZ2VzLmxlbmd0aD09PTApcmV0dXJuIHQ7aWYodC5fbm9ybWFsaXplZFJhbmdlcy5sZW5ndGg9PT0wKXJldHVybiB0aGlzO2NvbnN0IG49W107bGV0IHM9MCxyPTAsaT1udWxsO2Zvcig7czx0aGlzLl9ub3JtYWxpemVkUmFuZ2VzLmxlbmd0aHx8cjx0Ll9ub3JtYWxpemVkUmFuZ2VzLmxlbmd0aDspe2xldCBsPW51bGw7aWYoczx0aGlzLl9ub3JtYWxpemVkUmFuZ2VzLmxlbmd0aCYmcjx0Ll9ub3JtYWxpemVkUmFuZ2VzLmxlbmd0aCl7Y29uc3Qgbz10aGlzLl9ub3JtYWxpemVkUmFuZ2VzW3NdLHU9dC5fbm9ybWFsaXplZFJhbmdlc1tyXTtvLnN0YXJ0TGluZU51bWJlcjx1LnN0YXJ0TGluZU51bWJlcj8obD1vLHMrKyk6KGw9dSxyKyspfWVsc2Ugczx0aGlzLl9ub3JtYWxpemVkUmFuZ2VzLmxlbmd0aD8obD10aGlzLl9ub3JtYWxpemVkUmFuZ2VzW3NdLHMrKyk6KGw9dC5fbm9ybWFsaXplZFJhbmdlc1tyXSxyKyspO2k9PT1udWxsP2k9bDppLmVuZExpbmVOdW1iZXJFeGNsdXNpdmU+PWwuc3RhcnRMaW5lTnVtYmVyP2k9bmV3IFUoaS5zdGFydExpbmVOdW1iZXIsTWF0aC5tYXgoaS5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLGwuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSkpOihuLnB1c2goaSksaT1sKX1yZXR1cm4gaSE9PW51bGwmJm4ucHVzaChpKSxuZXcgdWUobil9c3VidHJhY3RGcm9tKHQpe2NvbnN0IG49V3QodGhpcy5fbm9ybWFsaXplZFJhbmdlcyxsPT5sLmVuZExpbmVOdW1iZXJFeGNsdXNpdmU+PXQuc3RhcnRMaW5lTnVtYmVyKSxzPU9lKHRoaXMuX25vcm1hbGl6ZWRSYW5nZXMsbD0+bC5zdGFydExpbmVOdW1iZXI8PXQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSkrMTtpZihuPT09cylyZXR1cm4gbmV3IHVlKFt0XSk7Y29uc3Qgcj1bXTtsZXQgaT10LnN0YXJ0TGluZU51bWJlcjtmb3IobGV0IGw9bjtsPHM7bCsrKXtjb25zdCBvPXRoaXMuX25vcm1hbGl6ZWRSYW5nZXNbbF07by5zdGFydExpbmVOdW1iZXI+aSYmci5wdXNoKG5ldyBVKGksby5zdGFydExpbmVOdW1iZXIpKSxpPW8uZW5kTGluZU51bWJlckV4Y2x1c2l2ZX1yZXR1cm4gaTx0LmVuZExpbmVOdW1iZXJFeGNsdXNpdmUmJnIucHVzaChuZXcgVShpLHQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSkpLG5ldyB1ZShyKX10b1N0cmluZygpe3JldHVybiB0aGlzLl9ub3JtYWxpemVkUmFuZ2VzLm1hcCh0PT50LnRvU3RyaW5nKCkpLmpvaW4oIiwgIil9Z2V0SW50ZXJzZWN0aW9uKHQpe2NvbnN0IG49W107bGV0IHM9MCxyPTA7Zm9yKDtzPHRoaXMuX25vcm1hbGl6ZWRSYW5nZXMubGVuZ3RoJiZyPHQuX25vcm1hbGl6ZWRSYW5nZXMubGVuZ3RoOyl7Y29uc3QgaT10aGlzLl9ub3JtYWxpemVkUmFuZ2VzW3NdLGw9dC5fbm9ybWFsaXplZFJhbmdlc1tyXSxvPWkuaW50ZXJzZWN0KGwpO28mJiFvLmlzRW1wdHkmJm4ucHVzaChvKSxpLmVuZExpbmVOdW1iZXJFeGNsdXNpdmU8bC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlP3MrKzpyKyt9cmV0dXJuIG5ldyB1ZShuKX1nZXRXaXRoRGVsdGEodCl7cmV0dXJuIG5ldyB1ZSh0aGlzLl9ub3JtYWxpemVkUmFuZ2VzLm1hcChuPT5uLmRlbHRhKHQpKSl9fWNsYXNzIGxle3N0YXRpYyBpbnZlcnNlKHQsbixzKXtjb25zdCByPVtdO2xldCBpPTEsbD0xO2Zvcihjb25zdCB1IG9mIHQpe2NvbnN0IGM9bmV3IGxlKG5ldyBVKGksdS5vcmlnaW5hbC5zdGFydExpbmVOdW1iZXIpLG5ldyBVKGwsdS5tb2RpZmllZC5zdGFydExpbmVOdW1iZXIpKTtjLm1vZGlmaWVkLmlzRW1wdHl8fHIucHVzaChjKSxpPXUub3JpZ2luYWwuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSxsPXUubW9kaWZpZWQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZX1jb25zdCBvPW5ldyBsZShuZXcgVShpLG4rMSksbmV3IFUobCxzKzEpKTtyZXR1cm4gby5tb2RpZmllZC5pc0VtcHR5fHxyLnB1c2gobykscn1zdGF0aWMgY2xpcCh0LG4scyl7Y29uc3Qgcj1bXTtmb3IoY29uc3QgaSBvZiB0KXtjb25zdCBsPWkub3JpZ2luYWwuaW50ZXJzZWN0KG4pLG89aS5tb2RpZmllZC5pbnRlcnNlY3Qocyk7bCYmIWwuaXNFbXB0eSYmbyYmIW8uaXNFbXB0eSYmci5wdXNoKG5ldyBsZShsLG8pKX1yZXR1cm4gcn1jb25zdHJ1Y3Rvcih0LG4pe3RoaXMub3JpZ2luYWw9dCx0aGlzLm1vZGlmaWVkPW59dG9TdHJpbmcoKXtyZXR1cm5geyR7dGhpcy5vcmlnaW5hbC50b1N0cmluZygpfS0+JHt0aGlzLm1vZGlmaWVkLnRvU3RyaW5nKCl9fWB9ZmxpcCgpe3JldHVybiBuZXcgbGUodGhpcy5tb2RpZmllZCx0aGlzLm9yaWdpbmFsKX1qb2luKHQpe3JldHVybiBuZXcgbGUodGhpcy5vcmlnaW5hbC5qb2luKHQub3JpZ2luYWwpLHRoaXMubW9kaWZpZWQuam9pbih0Lm1vZGlmaWVkKSl9fWNsYXNzIE5lIGV4dGVuZHMgbGV7Y29uc3RydWN0b3IodCxuLHMpe3N1cGVyKHQsbiksdGhpcy5pbm5lckNoYW5nZXM9c31mbGlwKCl7dmFyIHQ7cmV0dXJuIG5ldyBOZSh0aGlzLm1vZGlmaWVkLHRoaXMub3JpZ2luYWwsKHQ9dGhpcy5pbm5lckNoYW5nZXMpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5tYXAobj0+bi5mbGlwKCkpKX19Y2xhc3MgamV7Y29uc3RydWN0b3IodCxuKXt0aGlzLm9yaWdpbmFsUmFuZ2U9dCx0aGlzLm1vZGlmaWVkUmFuZ2U9bn10b1N0cmluZygpe3JldHVybmB7JHt0aGlzLm9yaWdpbmFsUmFuZ2UudG9TdHJpbmcoKX0tPiR7dGhpcy5tb2RpZmllZFJhbmdlLnRvU3RyaW5nKCl9fWB9ZmxpcCgpe3JldHVybiBuZXcgamUodGhpcy5tb2RpZmllZFJhbmdlLHRoaXMub3JpZ2luYWxSYW5nZSl9fWNvbnN0IEVpPTM7Y2xhc3MgTWl7Y29tcHV0ZURpZmYodCxuLHMpe3ZhciByO2NvbnN0IGw9bmV3IERpKHQsbix7bWF4Q29tcHV0YXRpb25UaW1lOnMubWF4Q29tcHV0YXRpb25UaW1lTXMsc2hvdWxkSWdub3JlVHJpbVdoaXRlc3BhY2U6cy5pZ25vcmVUcmltV2hpdGVzcGFjZSxzaG91bGRDb21wdXRlQ2hhckNoYW5nZXM6ITAsc2hvdWxkTWFrZVByZXR0eURpZmY6ITAsc2hvdWxkUG9zdFByb2Nlc3NDaGFyQ2hhbmdlczohMH0pLmNvbXB1dGVEaWZmKCksbz1bXTtsZXQgdT1udWxsO2Zvcihjb25zdCBjIG9mIGwuY2hhbmdlcyl7bGV0IGg7Yy5vcmlnaW5hbEVuZExpbmVOdW1iZXI9PT0wP2g9bmV3IFUoYy5vcmlnaW5hbFN0YXJ0TGluZU51bWJlcisxLGMub3JpZ2luYWxTdGFydExpbmVOdW1iZXIrMSk6aD1uZXcgVShjLm9yaWdpbmFsU3RhcnRMaW5lTnVtYmVyLGMub3JpZ2luYWxFbmRMaW5lTnVtYmVyKzEpO2xldCBmO2MubW9kaWZpZWRFbmRMaW5lTnVtYmVyPT09MD9mPW5ldyBVKGMubW9kaWZpZWRTdGFydExpbmVOdW1iZXIrMSxjLm1vZGlmaWVkU3RhcnRMaW5lTnVtYmVyKzEpOmY9bmV3IFUoYy5tb2RpZmllZFN0YXJ0TGluZU51bWJlcixjLm1vZGlmaWVkRW5kTGluZU51bWJlcisxKTtsZXQgZD1uZXcgTmUoaCxmLChyPWMuY2hhckNoYW5nZXMpPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5tYXAobT0+bmV3IGplKG5ldyBEKG0ub3JpZ2luYWxTdGFydExpbmVOdW1iZXIsbS5vcmlnaW5hbFN0YXJ0Q29sdW1uLG0ub3JpZ2luYWxFbmRMaW5lTnVtYmVyLG0ub3JpZ2luYWxFbmRDb2x1bW4pLG5ldyBEKG0ubW9kaWZpZWRTdGFydExpbmVOdW1iZXIsbS5tb2RpZmllZFN0YXJ0Q29sdW1uLG0ubW9kaWZpZWRFbmRMaW5lTnVtYmVyLG0ubW9kaWZpZWRFbmRDb2x1bW4pKSkpO3UmJih1Lm1vZGlmaWVkLmVuZExpbmVOdW1iZXJFeGNsdXNpdmU9PT1kLm1vZGlmaWVkLnN0YXJ0TGluZU51bWJlcnx8dS5vcmlnaW5hbC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlPT09ZC5vcmlnaW5hbC5zdGFydExpbmVOdW1iZXIpJiYoZD1uZXcgTmUodS5vcmlnaW5hbC5qb2luKGQub3JpZ2luYWwpLHUubW9kaWZpZWQuam9pbihkLm1vZGlmaWVkKSx1LmlubmVyQ2hhbmdlcyYmZC5pbm5lckNoYW5nZXM/dS5pbm5lckNoYW5nZXMuY29uY2F0KGQuaW5uZXJDaGFuZ2VzKTp2b2lkIDApLG8ucG9wKCkpLG8ucHVzaChkKSx1PWR9cmV0dXJuIGh0KCgpPT53cyhvLChjLGgpPT5oLm9yaWdpbmFsLnN0YXJ0TGluZU51bWJlci1jLm9yaWdpbmFsLmVuZExpbmVOdW1iZXJFeGNsdXNpdmU9PT1oLm1vZGlmaWVkLnN0YXJ0TGluZU51bWJlci1jLm1vZGlmaWVkLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUmJmMub3JpZ2luYWwuZW5kTGluZU51bWJlckV4Y2x1c2l2ZTxoLm9yaWdpbmFsLnN0YXJ0TGluZU51bWJlciYmYy5tb2RpZmllZC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlPGgubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyKSksbmV3IGZ0KG8sW10sbC5xdWl0RWFybHkpfX1mdW5jdGlvbiBDcyhlLHQsbixzKXtyZXR1cm4gbmV3IG1lKGUsdCxuKS5Db21wdXRlRGlmZihzKX1sZXQgQXM9Y2xhc3N7Y29uc3RydWN0b3IodCl7Y29uc3Qgbj1bXSxzPVtdO2ZvcihsZXQgcj0wLGk9dC5sZW5ndGg7cjxpO3IrKyluW3JdPXp0KHRbcl0sMSksc1tyXT0kdCh0W3JdLDEpO3RoaXMubGluZXM9dCx0aGlzLl9zdGFydENvbHVtbnM9bix0aGlzLl9lbmRDb2x1bW5zPXN9Z2V0RWxlbWVudHMoKXtjb25zdCB0PVtdO2ZvcihsZXQgbj0wLHM9dGhpcy5saW5lcy5sZW5ndGg7bjxzO24rKyl0W25dPXRoaXMubGluZXNbbl0uc3Vic3RyaW5nKHRoaXMuX3N0YXJ0Q29sdW1uc1tuXS0xLHRoaXMuX2VuZENvbHVtbnNbbl0tMSk7cmV0dXJuIHR9Z2V0U3RyaWN0RWxlbWVudCh0KXtyZXR1cm4gdGhpcy5saW5lc1t0XX1nZXRTdGFydExpbmVOdW1iZXIodCl7cmV0dXJuIHQrMX1nZXRFbmRMaW5lTnVtYmVyKHQpe3JldHVybiB0KzF9Y3JlYXRlQ2hhclNlcXVlbmNlKHQsbixzKXtjb25zdCByPVtdLGk9W10sbD1bXTtsZXQgbz0wO2ZvcihsZXQgdT1uO3U8PXM7dSsrKXtjb25zdCBjPXRoaXMubGluZXNbdV0saD10P3RoaXMuX3N0YXJ0Q29sdW1uc1t1XToxLGY9dD90aGlzLl9lbmRDb2x1bW5zW3VdOmMubGVuZ3RoKzE7Zm9yKGxldCBkPWg7ZDxmO2QrKylyW29dPWMuY2hhckNvZGVBdChkLTEpLGlbb109dSsxLGxbb109ZCxvKys7IXQmJnU8cyYmKHJbb109MTAsaVtvXT11KzEsbFtvXT1jLmxlbmd0aCsxLG8rKyl9cmV0dXJuIG5ldyBraShyLGksbCl9fTtjbGFzcyBraXtjb25zdHJ1Y3Rvcih0LG4scyl7dGhpcy5fY2hhckNvZGVzPXQsdGhpcy5fbGluZU51bWJlcnM9bix0aGlzLl9jb2x1bW5zPXN9dG9TdHJpbmcoKXtyZXR1cm4iWyIrdGhpcy5fY2hhckNvZGVzLm1hcCgodCxuKT0+KHQ9PT0xMD8iXFxuIjpTdHJpbmcuZnJvbUNoYXJDb2RlKHQpKStgLSgke3RoaXMuX2xpbmVOdW1iZXJzW25dfSwke3RoaXMuX2NvbHVtbnNbbl19KWApLmpvaW4oIiwgIikrIl0ifV9hc3NlcnRJbmRleCh0LG4pe2lmKHQ8MHx8dD49bi5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJJbGxlZ2FsIGluZGV4Iil9Z2V0RWxlbWVudHMoKXtyZXR1cm4gdGhpcy5fY2hhckNvZGVzfWdldFN0YXJ0TGluZU51bWJlcih0KXtyZXR1cm4gdD4wJiZ0PT09dGhpcy5fbGluZU51bWJlcnMubGVuZ3RoP3RoaXMuZ2V0RW5kTGluZU51bWJlcih0LTEpOih0aGlzLl9hc3NlcnRJbmRleCh0LHRoaXMuX2xpbmVOdW1iZXJzKSx0aGlzLl9saW5lTnVtYmVyc1t0XSl9Z2V0RW5kTGluZU51bWJlcih0KXtyZXR1cm4gdD09PS0xP3RoaXMuZ2V0U3RhcnRMaW5lTnVtYmVyKHQrMSk6KHRoaXMuX2Fzc2VydEluZGV4KHQsdGhpcy5fbGluZU51bWJlcnMpLHRoaXMuX2NoYXJDb2Rlc1t0XT09PTEwP3RoaXMuX2xpbmVOdW1iZXJzW3RdKzE6dGhpcy5fbGluZU51bWJlcnNbdF0pfWdldFN0YXJ0Q29sdW1uKHQpe3JldHVybiB0PjAmJnQ9PT10aGlzLl9jb2x1bW5zLmxlbmd0aD90aGlzLmdldEVuZENvbHVtbih0LTEpOih0aGlzLl9hc3NlcnRJbmRleCh0LHRoaXMuX2NvbHVtbnMpLHRoaXMuX2NvbHVtbnNbdF0pfWdldEVuZENvbHVtbih0KXtyZXR1cm4gdD09PS0xP3RoaXMuZ2V0U3RhcnRDb2x1bW4odCsxKToodGhpcy5fYXNzZXJ0SW5kZXgodCx0aGlzLl9jb2x1bW5zKSx0aGlzLl9jaGFyQ29kZXNbdF09PT0xMD8xOnRoaXMuX2NvbHVtbnNbdF0rMSl9fWNsYXNzIFZle2NvbnN0cnVjdG9yKHQsbixzLHIsaSxsLG8sdSl7dGhpcy5vcmlnaW5hbFN0YXJ0TGluZU51bWJlcj10LHRoaXMub3JpZ2luYWxTdGFydENvbHVtbj1uLHRoaXMub3JpZ2luYWxFbmRMaW5lTnVtYmVyPXMsdGhpcy5vcmlnaW5hbEVuZENvbHVtbj1yLHRoaXMubW9kaWZpZWRTdGFydExpbmVOdW1iZXI9aSx0aGlzLm1vZGlmaWVkU3RhcnRDb2x1bW49bCx0aGlzLm1vZGlmaWVkRW5kTGluZU51bWJlcj1vLHRoaXMubW9kaWZpZWRFbmRDb2x1bW49dX1zdGF0aWMgY3JlYXRlRnJvbURpZmZDaGFuZ2UodCxuLHMpe2NvbnN0IHI9bi5nZXRTdGFydExpbmVOdW1iZXIodC5vcmlnaW5hbFN0YXJ0KSxpPW4uZ2V0U3RhcnRDb2x1bW4odC5vcmlnaW5hbFN0YXJ0KSxsPW4uZ2V0RW5kTGluZU51bWJlcih0Lm9yaWdpbmFsU3RhcnQrdC5vcmlnaW5hbExlbmd0aC0xKSxvPW4uZ2V0RW5kQ29sdW1uKHQub3JpZ2luYWxTdGFydCt0Lm9yaWdpbmFsTGVuZ3RoLTEpLHU9cy5nZXRTdGFydExpbmVOdW1iZXIodC5tb2RpZmllZFN0YXJ0KSxjPXMuZ2V0U3RhcnRDb2x1bW4odC5tb2RpZmllZFN0YXJ0KSxoPXMuZ2V0RW5kTGluZU51bWJlcih0Lm1vZGlmaWVkU3RhcnQrdC5tb2RpZmllZExlbmd0aC0xKSxmPXMuZ2V0RW5kQ29sdW1uKHQubW9kaWZpZWRTdGFydCt0Lm1vZGlmaWVkTGVuZ3RoLTEpO3JldHVybiBuZXcgVmUocixpLGwsbyx1LGMsaCxmKX19ZnVuY3Rpb24gUGkoZSl7aWYoZS5sZW5ndGg8PTEpcmV0dXJuIGU7Y29uc3QgdD1bZVswXV07bGV0IG49dFswXTtmb3IobGV0IHM9MSxyPWUubGVuZ3RoO3M8cjtzKyspe2NvbnN0IGk9ZVtzXSxsPWkub3JpZ2luYWxTdGFydC0obi5vcmlnaW5hbFN0YXJ0K24ub3JpZ2luYWxMZW5ndGgpLG89aS5tb2RpZmllZFN0YXJ0LShuLm1vZGlmaWVkU3RhcnQrbi5tb2RpZmllZExlbmd0aCk7TWF0aC5taW4obCxvKTxFaT8obi5vcmlnaW5hbExlbmd0aD1pLm9yaWdpbmFsU3RhcnQraS5vcmlnaW5hbExlbmd0aC1uLm9yaWdpbmFsU3RhcnQsbi5tb2RpZmllZExlbmd0aD1pLm1vZGlmaWVkU3RhcnQraS5tb2RpZmllZExlbmd0aC1uLm1vZGlmaWVkU3RhcnQpOih0LnB1c2goaSksbj1pKX1yZXR1cm4gdH1jbGFzcyBYZXtjb25zdHJ1Y3Rvcih0LG4scyxyLGkpe3RoaXMub3JpZ2luYWxTdGFydExpbmVOdW1iZXI9dCx0aGlzLm9yaWdpbmFsRW5kTGluZU51bWJlcj1uLHRoaXMubW9kaWZpZWRTdGFydExpbmVOdW1iZXI9cyx0aGlzLm1vZGlmaWVkRW5kTGluZU51bWJlcj1yLHRoaXMuY2hhckNoYW5nZXM9aX1zdGF0aWMgY3JlYXRlRnJvbURpZmZSZXN1bHQodCxuLHMscixpLGwsbyl7bGV0IHUsYyxoLGYsZDtpZihuLm9yaWdpbmFsTGVuZ3RoPT09MD8odT1zLmdldFN0YXJ0TGluZU51bWJlcihuLm9yaWdpbmFsU3RhcnQpLTEsYz0wKToodT1zLmdldFN0YXJ0TGluZU51bWJlcihuLm9yaWdpbmFsU3RhcnQpLGM9cy5nZXRFbmRMaW5lTnVtYmVyKG4ub3JpZ2luYWxTdGFydCtuLm9yaWdpbmFsTGVuZ3RoLTEpKSxuLm1vZGlmaWVkTGVuZ3RoPT09MD8oaD1yLmdldFN0YXJ0TGluZU51bWJlcihuLm1vZGlmaWVkU3RhcnQpLTEsZj0wKTooaD1yLmdldFN0YXJ0TGluZU51bWJlcihuLm1vZGlmaWVkU3RhcnQpLGY9ci5nZXRFbmRMaW5lTnVtYmVyKG4ubW9kaWZpZWRTdGFydCtuLm1vZGlmaWVkTGVuZ3RoLTEpKSxsJiZuLm9yaWdpbmFsTGVuZ3RoPjAmJm4ub3JpZ2luYWxMZW5ndGg8MjAmJm4ubW9kaWZpZWRMZW5ndGg+MCYmbi5tb2RpZmllZExlbmd0aDwyMCYmaSgpKXtjb25zdCBtPXMuY3JlYXRlQ2hhclNlcXVlbmNlKHQsbi5vcmlnaW5hbFN0YXJ0LG4ub3JpZ2luYWxTdGFydCtuLm9yaWdpbmFsTGVuZ3RoLTEpLGc9ci5jcmVhdGVDaGFyU2VxdWVuY2UodCxuLm1vZGlmaWVkU3RhcnQsbi5tb2RpZmllZFN0YXJ0K24ubW9kaWZpZWRMZW5ndGgtMSk7aWYobS5nZXRFbGVtZW50cygpLmxlbmd0aD4wJiZnLmdldEVsZW1lbnRzKCkubGVuZ3RoPjApe2xldCB4PUNzKG0sZyxpLCEwKS5jaGFuZ2VzO28mJih4PVBpKHgpKSxkPVtdO2ZvcihsZXQgdj0wLE49eC5sZW5ndGg7djxOO3YrKylkLnB1c2goVmUuY3JlYXRlRnJvbURpZmZDaGFuZ2UoeFt2XSxtLGcpKX19cmV0dXJuIG5ldyBYZSh1LGMsaCxmLGQpfX1jbGFzcyBEaXtjb25zdHJ1Y3Rvcih0LG4scyl7dGhpcy5zaG91bGRDb21wdXRlQ2hhckNoYW5nZXM9cy5zaG91bGRDb21wdXRlQ2hhckNoYW5nZXMsdGhpcy5zaG91bGRQb3N0UHJvY2Vzc0NoYXJDaGFuZ2VzPXMuc2hvdWxkUG9zdFByb2Nlc3NDaGFyQ2hhbmdlcyx0aGlzLnNob3VsZElnbm9yZVRyaW1XaGl0ZXNwYWNlPXMuc2hvdWxkSWdub3JlVHJpbVdoaXRlc3BhY2UsdGhpcy5zaG91bGRNYWtlUHJldHR5RGlmZj1zLnNob3VsZE1ha2VQcmV0dHlEaWZmLHRoaXMub3JpZ2luYWxMaW5lcz10LHRoaXMubW9kaWZpZWRMaW5lcz1uLHRoaXMub3JpZ2luYWw9bmV3IEFzKHQpLHRoaXMubW9kaWZpZWQ9bmV3IEFzKG4pLHRoaXMuY29udGludWVMaW5lRGlmZj15cyhzLm1heENvbXB1dGF0aW9uVGltZSksdGhpcy5jb250aW51ZUNoYXJEaWZmPXlzKHMubWF4Q29tcHV0YXRpb25UaW1lPT09MD8wOk1hdGgubWluKHMubWF4Q29tcHV0YXRpb25UaW1lLDVlMykpfWNvbXB1dGVEaWZmKCl7aWYodGhpcy5vcmlnaW5hbC5saW5lcy5sZW5ndGg9PT0xJiZ0aGlzLm9yaWdpbmFsLmxpbmVzWzBdLmxlbmd0aD09PTApcmV0dXJuIHRoaXMubW9kaWZpZWQubGluZXMubGVuZ3RoPT09MSYmdGhpcy5tb2RpZmllZC5saW5lc1swXS5sZW5ndGg9PT0wP3txdWl0RWFybHk6ITEsY2hhbmdlczpbXX06e3F1aXRFYXJseTohMSxjaGFuZ2VzOlt7b3JpZ2luYWxTdGFydExpbmVOdW1iZXI6MSxvcmlnaW5hbEVuZExpbmVOdW1iZXI6MSxtb2RpZmllZFN0YXJ0TGluZU51bWJlcjoxLG1vZGlmaWVkRW5kTGluZU51bWJlcjp0aGlzLm1vZGlmaWVkLmxpbmVzLmxlbmd0aCxjaGFyQ2hhbmdlczp2b2lkIDB9XX07aWYodGhpcy5tb2RpZmllZC5saW5lcy5sZW5ndGg9PT0xJiZ0aGlzLm1vZGlmaWVkLmxpbmVzWzBdLmxlbmd0aD09PTApcmV0dXJue3F1aXRFYXJseTohMSxjaGFuZ2VzOlt7b3JpZ2luYWxTdGFydExpbmVOdW1iZXI6MSxvcmlnaW5hbEVuZExpbmVOdW1iZXI6dGhpcy5vcmlnaW5hbC5saW5lcy5sZW5ndGgsbW9kaWZpZWRTdGFydExpbmVOdW1iZXI6MSxtb2RpZmllZEVuZExpbmVOdW1iZXI6MSxjaGFyQ2hhbmdlczp2b2lkIDB9XX07Y29uc3QgdD1Dcyh0aGlzLm9yaWdpbmFsLHRoaXMubW9kaWZpZWQsdGhpcy5jb250aW51ZUxpbmVEaWZmLHRoaXMuc2hvdWxkTWFrZVByZXR0eURpZmYpLG49dC5jaGFuZ2VzLHM9dC5xdWl0RWFybHk7aWYodGhpcy5zaG91bGRJZ25vcmVUcmltV2hpdGVzcGFjZSl7Y29uc3Qgbz1bXTtmb3IobGV0IHU9MCxjPW4ubGVuZ3RoO3U8Yzt1Kyspby5wdXNoKFhlLmNyZWF0ZUZyb21EaWZmUmVzdWx0KHRoaXMuc2hvdWxkSWdub3JlVHJpbVdoaXRlc3BhY2Usblt1XSx0aGlzLm9yaWdpbmFsLHRoaXMubW9kaWZpZWQsdGhpcy5jb250aW51ZUNoYXJEaWZmLHRoaXMuc2hvdWxkQ29tcHV0ZUNoYXJDaGFuZ2VzLHRoaXMuc2hvdWxkUG9zdFByb2Nlc3NDaGFyQ2hhbmdlcykpO3JldHVybntxdWl0RWFybHk6cyxjaGFuZ2VzOm99fWNvbnN0IHI9W107bGV0IGk9MCxsPTA7Zm9yKGxldCBvPS0xLHU9bi5sZW5ndGg7bzx1O28rKyl7Y29uc3QgYz1vKzE8dT9uW28rMV06bnVsbCxoPWM/Yy5vcmlnaW5hbFN0YXJ0OnRoaXMub3JpZ2luYWxMaW5lcy5sZW5ndGgsZj1jP2MubW9kaWZpZWRTdGFydDp0aGlzLm1vZGlmaWVkTGluZXMubGVuZ3RoO2Zvcig7aTxoJiZsPGY7KXtjb25zdCBkPXRoaXMub3JpZ2luYWxMaW5lc1tpXSxtPXRoaXMubW9kaWZpZWRMaW5lc1tsXTtpZihkIT09bSl7e2xldCBnPXp0KGQsMSkseD16dChtLDEpO2Zvcig7Zz4xJiZ4PjE7KXtjb25zdCB2PWQuY2hhckNvZGVBdChnLTIpLE49bS5jaGFyQ29kZUF0KHgtMik7aWYodiE9PU4pYnJlYWs7Zy0tLHgtLX0oZz4xfHx4PjEpJiZ0aGlzLl9wdXNoVHJpbVdoaXRlc3BhY2VDaGFyQ2hhbmdlKHIsaSsxLDEsZyxsKzEsMSx4KX17bGV0IGc9JHQoZCwxKSx4PSR0KG0sMSk7Y29uc3Qgdj1kLmxlbmd0aCsxLE49bS5sZW5ndGgrMTtmb3IoO2c8diYmeDxOOyl7Y29uc3QgUz1kLmNoYXJDb2RlQXQoZy0xKSxfPWQuY2hhckNvZGVBdCh4LTEpO2lmKFMhPT1fKWJyZWFrO2crKyx4Kyt9KGc8dnx8eDxOKSYmdGhpcy5fcHVzaFRyaW1XaGl0ZXNwYWNlQ2hhckNoYW5nZShyLGkrMSxnLHYsbCsxLHgsTil9fWkrKyxsKyt9YyYmKHIucHVzaChYZS5jcmVhdGVGcm9tRGlmZlJlc3VsdCh0aGlzLnNob3VsZElnbm9yZVRyaW1XaGl0ZXNwYWNlLGMsdGhpcy5vcmlnaW5hbCx0aGlzLm1vZGlmaWVkLHRoaXMuY29udGludWVDaGFyRGlmZix0aGlzLnNob3VsZENvbXB1dGVDaGFyQ2hhbmdlcyx0aGlzLnNob3VsZFBvc3RQcm9jZXNzQ2hhckNoYW5nZXMpKSxpKz1jLm9yaWdpbmFsTGVuZ3RoLGwrPWMubW9kaWZpZWRMZW5ndGgpfXJldHVybntxdWl0RWFybHk6cyxjaGFuZ2VzOnJ9fV9wdXNoVHJpbVdoaXRlc3BhY2VDaGFyQ2hhbmdlKHQsbixzLHIsaSxsLG8pe2lmKHRoaXMuX21lcmdlVHJpbVdoaXRlc3BhY2VDaGFyQ2hhbmdlKHQsbixzLHIsaSxsLG8pKXJldHVybjtsZXQgdTt0aGlzLnNob3VsZENvbXB1dGVDaGFyQ2hhbmdlcyYmKHU9W25ldyBWZShuLHMsbixyLGksbCxpLG8pXSksdC5wdXNoKG5ldyBYZShuLG4saSxpLHUpKX1fbWVyZ2VUcmltV2hpdGVzcGFjZUNoYXJDaGFuZ2UodCxuLHMscixpLGwsbyl7Y29uc3QgdT10Lmxlbmd0aDtpZih1PT09MClyZXR1cm4hMTtjb25zdCBjPXRbdS0xXTtyZXR1cm4gYy5vcmlnaW5hbEVuZExpbmVOdW1iZXI9PT0wfHxjLm1vZGlmaWVkRW5kTGluZU51bWJlcj09PTA/ITE6Yy5vcmlnaW5hbEVuZExpbmVOdW1iZXI9PT1uJiZjLm1vZGlmaWVkRW5kTGluZU51bWJlcj09PWk/KHRoaXMuc2hvdWxkQ29tcHV0ZUNoYXJDaGFuZ2VzJiZjLmNoYXJDaGFuZ2VzJiZjLmNoYXJDaGFuZ2VzLnB1c2gobmV3IFZlKG4scyxuLHIsaSxsLGksbykpLCEwKTpjLm9yaWdpbmFsRW5kTGluZU51bWJlcisxPT09biYmYy5tb2RpZmllZEVuZExpbmVOdW1iZXIrMT09PWk/KGMub3JpZ2luYWxFbmRMaW5lTnVtYmVyPW4sYy5tb2RpZmllZEVuZExpbmVOdW1iZXI9aSx0aGlzLnNob3VsZENvbXB1dGVDaGFyQ2hhbmdlcyYmYy5jaGFyQ2hhbmdlcyYmYy5jaGFyQ2hhbmdlcy5wdXNoKG5ldyBWZShuLHMsbixyLGksbCxpLG8pKSwhMCk6ITF9fWZ1bmN0aW9uIHp0KGUsdCl7Y29uc3Qgbj1tcihlKTtyZXR1cm4gbj09PS0xP3Q6bisxfWZ1bmN0aW9uICR0KGUsdCl7Y29uc3Qgbj1ncihlKTtyZXR1cm4gbj09PS0xP3Q6bisyfWZ1bmN0aW9uIHlzKGUpe2lmKGU9PT0wKXJldHVybigpPT4hMDtjb25zdCB0PURhdGUubm93KCk7cmV0dXJuKCk9PkRhdGUubm93KCktdDxlfWNsYXNzIGNle3N0YXRpYyB0cml2aWFsKHQsbil7cmV0dXJuIG5ldyBjZShbbmV3IHooVC5vZkxlbmd0aCh0Lmxlbmd0aCksVC5vZkxlbmd0aChuLmxlbmd0aCkpXSwhMSl9c3RhdGljIHRyaXZpYWxUaW1lZE91dCh0LG4pe3JldHVybiBuZXcgY2UoW25ldyB6KFQub2ZMZW5ndGgodC5sZW5ndGgpLFQub2ZMZW5ndGgobi5sZW5ndGgpKV0sITApfWNvbnN0cnVjdG9yKHQsbil7dGhpcy5kaWZmcz10LHRoaXMuaGl0VGltZW91dD1ufX1jbGFzcyB6e3N0YXRpYyBpbnZlcnQodCxuKXtjb25zdCBzPVtdO3JldHVybiBZcih0LChyLGkpPT57cy5wdXNoKHouZnJvbU9mZnNldFBhaXJzKHI/ci5nZXRFbmRFeGNsdXNpdmVzKCk6bmUuemVybyxpP2kuZ2V0U3RhcnRzKCk6bmV3IG5lKG4sKHI/ci5zZXEyUmFuZ2UuZW5kRXhjbHVzaXZlLXIuc2VxMVJhbmdlLmVuZEV4Y2x1c2l2ZTowKStuKSkpfSksc31zdGF0aWMgZnJvbU9mZnNldFBhaXJzKHQsbil7cmV0dXJuIG5ldyB6KG5ldyBUKHQub2Zmc2V0MSxuLm9mZnNldDEpLG5ldyBUKHQub2Zmc2V0MixuLm9mZnNldDIpKX1jb25zdHJ1Y3Rvcih0LG4pe3RoaXMuc2VxMVJhbmdlPXQsdGhpcy5zZXEyUmFuZ2U9bn1zd2FwKCl7cmV0dXJuIG5ldyB6KHRoaXMuc2VxMlJhbmdlLHRoaXMuc2VxMVJhbmdlKX10b1N0cmluZygpe3JldHVybmAke3RoaXMuc2VxMVJhbmdlfSA8LT4gJHt0aGlzLnNlcTJSYW5nZX1gfWpvaW4odCl7cmV0dXJuIG5ldyB6KHRoaXMuc2VxMVJhbmdlLmpvaW4odC5zZXExUmFuZ2UpLHRoaXMuc2VxMlJhbmdlLmpvaW4odC5zZXEyUmFuZ2UpKX1kZWx0YSh0KXtyZXR1cm4gdD09PTA/dGhpczpuZXcgeih0aGlzLnNlcTFSYW5nZS5kZWx0YSh0KSx0aGlzLnNlcTJSYW5nZS5kZWx0YSh0KSl9ZGVsdGFTdGFydCh0KXtyZXR1cm4gdD09PTA/dGhpczpuZXcgeih0aGlzLnNlcTFSYW5nZS5kZWx0YVN0YXJ0KHQpLHRoaXMuc2VxMlJhbmdlLmRlbHRhU3RhcnQodCkpfWRlbHRhRW5kKHQpe3JldHVybiB0PT09MD90aGlzOm5ldyB6KHRoaXMuc2VxMVJhbmdlLmRlbHRhRW5kKHQpLHRoaXMuc2VxMlJhbmdlLmRlbHRhRW5kKHQpKX1pbnRlcnNlY3QodCl7Y29uc3Qgbj10aGlzLnNlcTFSYW5nZS5pbnRlcnNlY3QodC5zZXExUmFuZ2UpLHM9dGhpcy5zZXEyUmFuZ2UuaW50ZXJzZWN0KHQuc2VxMlJhbmdlKTtpZighKCFufHwhcykpcmV0dXJuIG5ldyB6KG4scyl9Z2V0U3RhcnRzKCl7cmV0dXJuIG5ldyBuZSh0aGlzLnNlcTFSYW5nZS5zdGFydCx0aGlzLnNlcTJSYW5nZS5zdGFydCl9Z2V0RW5kRXhjbHVzaXZlcygpe3JldHVybiBuZXcgbmUodGhpcy5zZXExUmFuZ2UuZW5kRXhjbHVzaXZlLHRoaXMuc2VxMlJhbmdlLmVuZEV4Y2x1c2l2ZSl9fWNsYXNzIG5le2NvbnN0cnVjdG9yKHQsbil7dGhpcy5vZmZzZXQxPXQsdGhpcy5vZmZzZXQyPW59dG9TdHJpbmcoKXtyZXR1cm5gJHt0aGlzLm9mZnNldDF9IDwtPiAke3RoaXMub2Zmc2V0Mn1gfWRlbHRhKHQpe3JldHVybiB0PT09MD90aGlzOm5ldyBuZSh0aGlzLm9mZnNldDErdCx0aGlzLm9mZnNldDIrdCl9ZXF1YWxzKHQpe3JldHVybiB0aGlzLm9mZnNldDE9PT10Lm9mZnNldDEmJnRoaXMub2Zmc2V0Mj09PXQub2Zmc2V0Mn19bmUuemVybz1uZXcgbmUoMCwwKSxuZS5tYXg9bmV3IG5lKE51bWJlci5NQVhfU0FGRV9JTlRFR0VSLE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTtjbGFzcyBRZXtpc1ZhbGlkKCl7cmV0dXJuITB9fVFlLmluc3RhbmNlPW5ldyBRZTtjbGFzcyBGaXtjb25zdHJ1Y3Rvcih0KXtpZih0aGlzLnRpbWVvdXQ9dCx0aGlzLnN0YXJ0VGltZT1EYXRlLm5vdygpLHRoaXMudmFsaWQ9ITAsdDw9MCl0aHJvdyBuZXcgaGUoInRpbWVvdXQgbXVzdCBiZSBwb3NpdGl2ZSIpfWlzVmFsaWQoKXtyZXR1cm4hKERhdGUubm93KCktdGhpcy5zdGFydFRpbWU8dGhpcy50aW1lb3V0KSYmdGhpcy52YWxpZCYmKHRoaXMudmFsaWQ9ITEpLHRoaXMudmFsaWR9fWNsYXNzIE90e2NvbnN0cnVjdG9yKHQsbil7dGhpcy53aWR0aD10LHRoaXMuaGVpZ2h0PW4sdGhpcy5hcnJheT1bXSx0aGlzLmFycmF5PW5ldyBBcnJheSh0Km4pfWdldCh0LG4pe3JldHVybiB0aGlzLmFycmF5W3Qrbip0aGlzLndpZHRoXX1zZXQodCxuLHMpe3RoaXMuYXJyYXlbdCtuKnRoaXMud2lkdGhdPXN9fWZ1bmN0aW9uIEd0KGUpe3JldHVybiBlPT09MzJ8fGU9PT05fWNsYXNzIEJle3N0YXRpYyBnZXRLZXkodCl7bGV0IG49dGhpcy5jaHJLZXlzLmdldCh0KTtyZXR1cm4gbj09PXZvaWQgMCYmKG49dGhpcy5jaHJLZXlzLnNpemUsdGhpcy5jaHJLZXlzLnNldCh0LG4pKSxufWNvbnN0cnVjdG9yKHQsbixzKXt0aGlzLnJhbmdlPXQsdGhpcy5saW5lcz1uLHRoaXMuc291cmNlPXMsdGhpcy5oaXN0b2dyYW09W107bGV0IHI9MDtmb3IobGV0IGk9dC5zdGFydExpbmVOdW1iZXItMTtpPHQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZS0xO2krKyl7Y29uc3QgbD1uW2ldO2ZvcihsZXQgdT0wO3U8bC5sZW5ndGg7dSsrKXtyKys7Y29uc3QgYz1sW3VdLGg9QmUuZ2V0S2V5KGMpO3RoaXMuaGlzdG9ncmFtW2hdPSh0aGlzLmhpc3RvZ3JhbVtoXXx8MCkrMX1yKys7Y29uc3Qgbz1CZS5nZXRLZXkoYApgKTt0aGlzLmhpc3RvZ3JhbVtvXT0odGhpcy5oaXN0b2dyYW1bb118fDApKzF9dGhpcy50b3RhbENvdW50PXJ9Y29tcHV0ZVNpbWlsYXJpdHkodCl7dmFyIG4scztsZXQgcj0wO2NvbnN0IGk9TWF0aC5tYXgodGhpcy5oaXN0b2dyYW0ubGVuZ3RoLHQuaGlzdG9ncmFtLmxlbmd0aCk7Zm9yKGxldCBsPTA7bDxpO2wrKylyKz1NYXRoLmFicygoKG49dGhpcy5oaXN0b2dyYW1bbF0pIT09bnVsbCYmbiE9PXZvaWQgMD9uOjApLSgocz10Lmhpc3RvZ3JhbVtsXSkhPT1udWxsJiZzIT09dm9pZCAwP3M6MCkpO3JldHVybiAxLXIvKHRoaXMudG90YWxDb3VudCt0LnRvdGFsQ291bnQpfX1CZS5jaHJLZXlzPW5ldyBNYXA7Y2xhc3MgVGl7Y29tcHV0ZSh0LG4scz1RZS5pbnN0YW5jZSxyKXtpZih0Lmxlbmd0aD09PTB8fG4ubGVuZ3RoPT09MClyZXR1cm4gY2UudHJpdmlhbCh0LG4pO2NvbnN0IGk9bmV3IE90KHQubGVuZ3RoLG4ubGVuZ3RoKSxsPW5ldyBPdCh0Lmxlbmd0aCxuLmxlbmd0aCksbz1uZXcgT3QodC5sZW5ndGgsbi5sZW5ndGgpO2ZvcihsZXQgZz0wO2c8dC5sZW5ndGg7ZysrKWZvcihsZXQgeD0wO3g8bi5sZW5ndGg7eCsrKXtpZighcy5pc1ZhbGlkKCkpcmV0dXJuIGNlLnRyaXZpYWxUaW1lZE91dCh0LG4pO2NvbnN0IHY9Zz09PTA/MDppLmdldChnLTEseCksTj14PT09MD8wOmkuZ2V0KGcseC0xKTtsZXQgUzt0LmdldEVsZW1lbnQoZyk9PT1uLmdldEVsZW1lbnQoeCk/KGc9PT0wfHx4PT09MD9TPTA6Uz1pLmdldChnLTEseC0xKSxnPjAmJng+MCYmbC5nZXQoZy0xLHgtMSk9PT0zJiYoUys9by5nZXQoZy0xLHgtMSkpLFMrPXI/cihnLHgpOjEpOlM9LTE7Y29uc3QgXz1NYXRoLm1heCh2LE4sUyk7aWYoXz09PVMpe2NvbnN0IHc9Zz4wJiZ4PjA/by5nZXQoZy0xLHgtMSk6MDtvLnNldChnLHgsdysxKSxsLnNldChnLHgsMyl9ZWxzZSBfPT09dj8oby5zZXQoZyx4LDApLGwuc2V0KGcseCwxKSk6Xz09PU4mJihvLnNldChnLHgsMCksbC5zZXQoZyx4LDIpKTtpLnNldChnLHgsXyl9Y29uc3QgdT1bXTtsZXQgYz10Lmxlbmd0aCxoPW4ubGVuZ3RoO2Z1bmN0aW9uIGYoZyx4KXsoZysxIT09Y3x8eCsxIT09aCkmJnUucHVzaChuZXcgeihuZXcgVChnKzEsYyksbmV3IFQoeCsxLGgpKSksYz1nLGg9eH1sZXQgZD10Lmxlbmd0aC0xLG09bi5sZW5ndGgtMTtmb3IoO2Q+PTAmJm0+PTA7KWwuZ2V0KGQsbSk9PT0zPyhmKGQsbSksZC0tLG0tLSk6bC5nZXQoZCxtKT09PTE/ZC0tOm0tLTtyZXR1cm4gZigtMSwtMSksdS5yZXZlcnNlKCksbmV3IGNlKHUsITEpfX1jbGFzcyBSc3tjb21wdXRlKHQsbixzPVFlLmluc3RhbmNlKXtpZih0Lmxlbmd0aD09PTB8fG4ubGVuZ3RoPT09MClyZXR1cm4gY2UudHJpdmlhbCh0LG4pO2NvbnN0IHI9dCxpPW47ZnVuY3Rpb24gbCh4LHYpe2Zvcig7eDxyLmxlbmd0aCYmdjxpLmxlbmd0aCYmci5nZXRFbGVtZW50KHgpPT09aS5nZXRFbGVtZW50KHYpOyl4KyssdisrO3JldHVybiB4fWxldCBvPTA7Y29uc3QgdT1uZXcgVWk7dS5zZXQoMCxsKDAsMCkpO2NvbnN0IGM9bmV3IFZpO2Muc2V0KDAsdS5nZXQoMCk9PT0wP251bGw6bmV3IEVzKG51bGwsMCwwLHUuZ2V0KDApKSk7bGV0IGg9MDtlOmZvcig7Oyl7aWYobysrLCFzLmlzVmFsaWQoKSlyZXR1cm4gY2UudHJpdmlhbFRpbWVkT3V0KHIsaSk7Y29uc3QgeD0tTWF0aC5taW4obyxpLmxlbmd0aCtvJTIpLHY9TWF0aC5taW4obyxyLmxlbmd0aCtvJTIpO2ZvcihoPXg7aDw9djtoKz0yKXtjb25zdCBOPWg9PT12Py0xOnUuZ2V0KGgrMSksUz1oPT09eD8tMTp1LmdldChoLTEpKzEsXz1NYXRoLm1pbihNYXRoLm1heChOLFMpLHIubGVuZ3RoKSx3PV8taDtpZihfPnIubGVuZ3RofHx3PmkubGVuZ3RoKWNvbnRpbnVlO2NvbnN0IHA9bChfLHcpO3Uuc2V0KGgscCk7Y29uc3QgeT1fPT09Tj9jLmdldChoKzEpOmMuZ2V0KGgtMSk7aWYoYy5zZXQoaCxwIT09Xz9uZXcgRXMoeSxfLHcscC1fKTp5KSx1LmdldChoKT09PXIubGVuZ3RoJiZ1LmdldChoKS1oPT09aS5sZW5ndGgpYnJlYWsgZX19bGV0IGY9Yy5nZXQoaCk7Y29uc3QgZD1bXTtsZXQgbT1yLmxlbmd0aCxnPWkubGVuZ3RoO2Zvcig7Oyl7Y29uc3QgeD1mP2YueCtmLmxlbmd0aDowLHY9Zj9mLnkrZi5sZW5ndGg6MDtpZigoeCE9PW18fHYhPT1nKSYmZC5wdXNoKG5ldyB6KG5ldyBUKHgsbSksbmV3IFQodixnKSkpLCFmKWJyZWFrO209Zi54LGc9Zi55LGY9Zi5wcmV2fXJldHVybiBkLnJldmVyc2UoKSxuZXcgY2UoZCwhMSl9fWNsYXNzIEVze2NvbnN0cnVjdG9yKHQsbixzLHIpe3RoaXMucHJldj10LHRoaXMueD1uLHRoaXMueT1zLHRoaXMubGVuZ3RoPXJ9fWNsYXNzIFVpe2NvbnN0cnVjdG9yKCl7dGhpcy5wb3NpdGl2ZUFycj1uZXcgSW50MzJBcnJheSgxMCksdGhpcy5uZWdhdGl2ZUFycj1uZXcgSW50MzJBcnJheSgxMCl9Z2V0KHQpe3JldHVybiB0PDA/KHQ9LXQtMSx0aGlzLm5lZ2F0aXZlQXJyW3RdKTp0aGlzLnBvc2l0aXZlQXJyW3RdfXNldCh0LG4pe2lmKHQ8MCl7aWYodD0tdC0xLHQ+PXRoaXMubmVnYXRpdmVBcnIubGVuZ3RoKXtjb25zdCBzPXRoaXMubmVnYXRpdmVBcnI7dGhpcy5uZWdhdGl2ZUFycj1uZXcgSW50MzJBcnJheShzLmxlbmd0aCoyKSx0aGlzLm5lZ2F0aXZlQXJyLnNldChzKX10aGlzLm5lZ2F0aXZlQXJyW3RdPW59ZWxzZXtpZih0Pj10aGlzLnBvc2l0aXZlQXJyLmxlbmd0aCl7Y29uc3Qgcz10aGlzLnBvc2l0aXZlQXJyO3RoaXMucG9zaXRpdmVBcnI9bmV3IEludDMyQXJyYXkocy5sZW5ndGgqMiksdGhpcy5wb3NpdGl2ZUFyci5zZXQocyl9dGhpcy5wb3NpdGl2ZUFyclt0XT1ufX19Y2xhc3MgVml7Y29uc3RydWN0b3IoKXt0aGlzLnBvc2l0aXZlQXJyPVtdLHRoaXMubmVnYXRpdmVBcnI9W119Z2V0KHQpe3JldHVybiB0PDA/KHQ9LXQtMSx0aGlzLm5lZ2F0aXZlQXJyW3RdKTp0aGlzLnBvc2l0aXZlQXJyW3RdfXNldCh0LG4pe3Q8MD8odD0tdC0xLHRoaXMubmVnYXRpdmVBcnJbdF09bik6dGhpcy5wb3NpdGl2ZUFyclt0XT1ufX1jbGFzcyBCaXtjb25zdHJ1Y3Rvcigpe3RoaXMubWFwPW5ldyBNYXB9YWRkKHQsbil7bGV0IHM9dGhpcy5tYXAuZ2V0KHQpO3N8fChzPW5ldyBTZXQsdGhpcy5tYXAuc2V0KHQscykpLHMuYWRkKG4pfWRlbGV0ZSh0LG4pe2NvbnN0IHM9dGhpcy5tYXAuZ2V0KHQpO3MmJihzLmRlbGV0ZShuKSxzLnNpemU9PT0wJiZ0aGlzLm1hcC5kZWxldGUodCkpfWZvckVhY2godCxuKXtjb25zdCBzPXRoaXMubWFwLmdldCh0KTtzJiZzLmZvckVhY2gobil9Z2V0KHQpe2NvbnN0IG49dGhpcy5tYXAuZ2V0KHQpO3JldHVybiBufHxuZXcgU2V0fX1jbGFzcyBkdHtjb25zdHJ1Y3Rvcih0LG4scyl7dGhpcy5saW5lcz10LHRoaXMuY29uc2lkZXJXaGl0ZXNwYWNlQ2hhbmdlcz1zLHRoaXMuZWxlbWVudHM9W10sdGhpcy5maXJzdENoYXJPZmZzZXRCeUxpbmU9W10sdGhpcy5hZGRpdGlvbmFsT2Zmc2V0QnlMaW5lPVtdO2xldCByPSExO24uc3RhcnQ+MCYmbi5lbmRFeGNsdXNpdmU+PXQubGVuZ3RoJiYobj1uZXcgVChuLnN0YXJ0LTEsbi5lbmRFeGNsdXNpdmUpLHI9ITApLHRoaXMubGluZVJhbmdlPW4sdGhpcy5maXJzdENoYXJPZmZzZXRCeUxpbmVbMF09MDtmb3IobGV0IGk9dGhpcy5saW5lUmFuZ2Uuc3RhcnQ7aTx0aGlzLmxpbmVSYW5nZS5lbmRFeGNsdXNpdmU7aSsrKXtsZXQgbD10W2ldLG89MDtpZihyKW89bC5sZW5ndGgsbD0iIixyPSExO2Vsc2UgaWYoIXMpe2NvbnN0IHU9bC50cmltU3RhcnQoKTtvPWwubGVuZ3RoLXUubGVuZ3RoLGw9dS50cmltRW5kKCl9dGhpcy5hZGRpdGlvbmFsT2Zmc2V0QnlMaW5lLnB1c2gobyk7Zm9yKGxldCB1PTA7dTxsLmxlbmd0aDt1KyspdGhpcy5lbGVtZW50cy5wdXNoKGwuY2hhckNvZGVBdCh1KSk7aTx0Lmxlbmd0aC0xJiYodGhpcy5lbGVtZW50cy5wdXNoKDEwKSx0aGlzLmZpcnN0Q2hhck9mZnNldEJ5TGluZVtpLXRoaXMubGluZVJhbmdlLnN0YXJ0KzFdPXRoaXMuZWxlbWVudHMubGVuZ3RoKX10aGlzLmFkZGl0aW9uYWxPZmZzZXRCeUxpbmUucHVzaCgwKX10b1N0cmluZygpe3JldHVybmBTbGljZTogIiR7dGhpcy50ZXh0fSJgfWdldCB0ZXh0KCl7cmV0dXJuIHRoaXMuZ2V0VGV4dChuZXcgVCgwLHRoaXMubGVuZ3RoKSl9Z2V0VGV4dCh0KXtyZXR1cm4gdGhpcy5lbGVtZW50cy5zbGljZSh0LnN0YXJ0LHQuZW5kRXhjbHVzaXZlKS5tYXAobj0+U3RyaW5nLmZyb21DaGFyQ29kZShuKSkuam9pbigiIil9Z2V0RWxlbWVudCh0KXtyZXR1cm4gdGhpcy5lbGVtZW50c1t0XX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuZWxlbWVudHMubGVuZ3RofWdldEJvdW5kYXJ5U2NvcmUodCl7Y29uc3Qgbj1rcyh0PjA/dGhpcy5lbGVtZW50c1t0LTFdOi0xKSxzPWtzKHQ8dGhpcy5lbGVtZW50cy5sZW5ndGg/dGhpcy5lbGVtZW50c1t0XTotMSk7aWYobj09PTcmJnM9PT04KXJldHVybiAwO2lmKG49PT04KXJldHVybiAxNTA7bGV0IHI9MDtyZXR1cm4gbiE9PXMmJihyKz0xMCxuPT09MCYmcz09PTEmJihyKz0xKSkscis9TXMobikscis9TXMocykscn10cmFuc2xhdGVPZmZzZXQodCl7aWYodGhpcy5saW5lUmFuZ2UuaXNFbXB0eSlyZXR1cm4gbmV3IFkodGhpcy5saW5lUmFuZ2Uuc3RhcnQrMSwxKTtjb25zdCBuPU9lKHRoaXMuZmlyc3RDaGFyT2Zmc2V0QnlMaW5lLHM9PnM8PXQpO3JldHVybiBuZXcgWSh0aGlzLmxpbmVSYW5nZS5zdGFydCtuKzEsdC10aGlzLmZpcnN0Q2hhck9mZnNldEJ5TGluZVtuXSt0aGlzLmFkZGl0aW9uYWxPZmZzZXRCeUxpbmVbbl0rMSl9dHJhbnNsYXRlUmFuZ2UodCl7cmV0dXJuIEQuZnJvbVBvc2l0aW9ucyh0aGlzLnRyYW5zbGF0ZU9mZnNldCh0LnN0YXJ0KSx0aGlzLnRyYW5zbGF0ZU9mZnNldCh0LmVuZEV4Y2x1c2l2ZSkpfWZpbmRXb3JkQ29udGFpbmluZyh0KXtpZih0PDB8fHQ+PXRoaXMuZWxlbWVudHMubGVuZ3RofHwhanQodGhpcy5lbGVtZW50c1t0XSkpcmV0dXJuO2xldCBuPXQ7Zm9yKDtuPjAmJmp0KHRoaXMuZWxlbWVudHNbbi0xXSk7KW4tLTtsZXQgcz10O2Zvcig7czx0aGlzLmVsZW1lbnRzLmxlbmd0aCYmanQodGhpcy5lbGVtZW50c1tzXSk7KXMrKztyZXR1cm4gbmV3IFQobixzKX1jb3VudExpbmVzSW4odCl7cmV0dXJuIHRoaXMudHJhbnNsYXRlT2Zmc2V0KHQuZW5kRXhjbHVzaXZlKS5saW5lTnVtYmVyLXRoaXMudHJhbnNsYXRlT2Zmc2V0KHQuc3RhcnQpLmxpbmVOdW1iZXJ9aXNTdHJvbmdseUVxdWFsKHQsbil7cmV0dXJuIHRoaXMuZWxlbWVudHNbdF09PT10aGlzLmVsZW1lbnRzW25dfWV4dGVuZFRvRnVsbExpbmVzKHQpe3ZhciBuLHM7Y29uc3Qgcj0obj1VZSh0aGlzLmZpcnN0Q2hhck9mZnNldEJ5TGluZSxsPT5sPD10LnN0YXJ0KSkhPT1udWxsJiZuIT09dm9pZCAwP246MCxpPShzPVJpKHRoaXMuZmlyc3RDaGFyT2Zmc2V0QnlMaW5lLGw9PnQuZW5kRXhjbHVzaXZlPD1sKSkhPT1udWxsJiZzIT09dm9pZCAwP3M6dGhpcy5lbGVtZW50cy5sZW5ndGg7cmV0dXJuIG5ldyBUKHIsaSl9fWZ1bmN0aW9uIGp0KGUpe3JldHVybiBlPj05NyYmZTw9MTIyfHxlPj02NSYmZTw9OTB8fGU+PTQ4JiZlPD01N31jb25zdCBJaT17MDowLDE6MCwyOjAsMzoxMCw0OjIsNTozMCw2OjMsNzoxMCw4OjEwfTtmdW5jdGlvbiBNcyhlKXtyZXR1cm4gSWlbZV19ZnVuY3Rpb24ga3MoZSl7cmV0dXJuIGU9PT0xMD84OmU9PT0xMz83Okd0KGUpPzY6ZT49OTcmJmU8PTEyMj8wOmU+PTY1JiZlPD05MD8xOmU+PTQ4JiZlPD01Nz8yOmU9PT0tMT8zOmU9PT00NHx8ZT09PTU5PzU6NH1mdW5jdGlvbiBxaShlLHQsbixzLHIsaSl7bGV0e21vdmVzOmwsZXhjbHVkZWRDaGFuZ2VzOm99PVdpKGUsdCxuLGkpO2lmKCFpLmlzVmFsaWQoKSlyZXR1cm5bXTtjb25zdCB1PWUuZmlsdGVyKGg9PiFvLmhhcyhoKSksYz16aSh1LHMscix0LG4saSk7cmV0dXJuIFpyKGwsYyksbD0kaShsKSxsPWwuZmlsdGVyKGg9Pntjb25zdCBmPWgub3JpZ2luYWwudG9PZmZzZXRSYW5nZSgpLnNsaWNlKHQpLm1hcChtPT5tLnRyaW0oKSk7cmV0dXJuIGYuam9pbihgCmApLmxlbmd0aD49MTUmJkhpKGYsbT0+bS5sZW5ndGg+PTIpPj0yfSksbD1PaShlLGwpLGx9ZnVuY3Rpb24gSGkoZSx0KXtsZXQgbj0wO2Zvcihjb25zdCBzIG9mIGUpdChzKSYmbisrO3JldHVybiBufWZ1bmN0aW9uIFdpKGUsdCxuLHMpe2NvbnN0IHI9W10saT1lLmZpbHRlcih1PT51Lm1vZGlmaWVkLmlzRW1wdHkmJnUub3JpZ2luYWwubGVuZ3RoPj0zKS5tYXAodT0+bmV3IEJlKHUub3JpZ2luYWwsdCx1KSksbD1uZXcgU2V0KGUuZmlsdGVyKHU9PnUub3JpZ2luYWwuaXNFbXB0eSYmdS5tb2RpZmllZC5sZW5ndGg+PTMpLm1hcCh1PT5uZXcgQmUodS5tb2RpZmllZCxuLHUpKSksbz1uZXcgU2V0O2Zvcihjb25zdCB1IG9mIGkpe2xldCBjPS0xLGg7Zm9yKGNvbnN0IGYgb2YgbCl7Y29uc3QgZD11LmNvbXB1dGVTaW1pbGFyaXR5KGYpO2Q+YyYmKGM9ZCxoPWYpfWlmKGM+LjkmJmgmJihsLmRlbGV0ZShoKSxyLnB1c2gobmV3IGxlKHUucmFuZ2UsaC5yYW5nZSkpLG8uYWRkKHUuc291cmNlKSxvLmFkZChoLnNvdXJjZSkpLCFzLmlzVmFsaWQoKSlyZXR1cm57bW92ZXM6cixleGNsdWRlZENoYW5nZXM6b319cmV0dXJue21vdmVzOnIsZXhjbHVkZWRDaGFuZ2VzOm99fWZ1bmN0aW9uIHppKGUsdCxuLHMscixpKXtjb25zdCBsPVtdLG89bmV3IEJpO2Zvcihjb25zdCBkIG9mIGUpZm9yKGxldCBtPWQub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyO208ZC5vcmlnaW5hbC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLTI7bSsrKXtjb25zdCBnPWAke3RbbS0xXX06JHt0W20rMS0xXX06JHt0W20rMi0xXX1gO28uYWRkKGcse3JhbmdlOm5ldyBVKG0sbSszKX0pfWNvbnN0IHU9W107ZS5zb3J0KGl0KGQ9PmQubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyLGF0KSk7Zm9yKGNvbnN0IGQgb2YgZSl7bGV0IG09W107Zm9yKGxldCBnPWQubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyO2c8ZC5tb2RpZmllZC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLTI7ZysrKXtjb25zdCB4PWAke25bZy0xXX06JHtuW2crMS0xXX06JHtuW2crMi0xXX1gLHY9bmV3IFUoZyxnKzMpLE49W107by5mb3JFYWNoKHgsKHtyYW5nZTpTfSk9Pntmb3IoY29uc3QgdyBvZiBtKWlmKHcub3JpZ2luYWxMaW5lUmFuZ2UuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSsxPT09Uy5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlJiZ3Lm1vZGlmaWVkTGluZVJhbmdlLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUrMT09PXYuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSl7dy5vcmlnaW5hbExpbmVSYW5nZT1uZXcgVSh3Lm9yaWdpbmFsTGluZVJhbmdlLnN0YXJ0TGluZU51bWJlcixTLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUpLHcubW9kaWZpZWRMaW5lUmFuZ2U9bmV3IFUody5tb2RpZmllZExpbmVSYW5nZS5zdGFydExpbmVOdW1iZXIsdi5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlKSxOLnB1c2godyk7cmV0dXJufWNvbnN0IF89e21vZGlmaWVkTGluZVJhbmdlOnYsb3JpZ2luYWxMaW5lUmFuZ2U6U307dS5wdXNoKF8pLE4ucHVzaChfKX0pLG09Tn1pZighaS5pc1ZhbGlkKCkpcmV0dXJuW119dS5zb3J0KEtyKGl0KGQ9PmQubW9kaWZpZWRMaW5lUmFuZ2UubGVuZ3RoLGF0KSkpO2NvbnN0IGM9bmV3IHVlLGg9bmV3IHVlO2Zvcihjb25zdCBkIG9mIHUpe2NvbnN0IG09ZC5tb2RpZmllZExpbmVSYW5nZS5zdGFydExpbmVOdW1iZXItZC5vcmlnaW5hbExpbmVSYW5nZS5zdGFydExpbmVOdW1iZXIsZz1jLnN1YnRyYWN0RnJvbShkLm1vZGlmaWVkTGluZVJhbmdlKSx4PWguc3VidHJhY3RGcm9tKGQub3JpZ2luYWxMaW5lUmFuZ2UpLmdldFdpdGhEZWx0YShtKSx2PWcuZ2V0SW50ZXJzZWN0aW9uKHgpO2Zvcihjb25zdCBOIG9mIHYucmFuZ2VzKXtpZihOLmxlbmd0aDwzKWNvbnRpbnVlO2NvbnN0IFM9TixfPU4uZGVsdGEoLW0pO2wucHVzaChuZXcgbGUoXyxTKSksYy5hZGRSYW5nZShTKSxoLmFkZFJhbmdlKF8pfX1sLnNvcnQoaXQoZD0+ZC5vcmlnaW5hbC5zdGFydExpbmVOdW1iZXIsYXQpKTtjb25zdCBmPW5ldyBHZShlKTtmb3IobGV0IGQ9MDtkPGwubGVuZ3RoO2QrKyl7Y29uc3QgbT1sW2RdLGc9Zi5maW5kTGFzdE1vbm90b25vdXMoeT0+eS5vcmlnaW5hbC5zdGFydExpbmVOdW1iZXI8PW0ub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyKSx4PVVlKGUseT0+eS5tb2RpZmllZC5zdGFydExpbmVOdW1iZXI8PW0ubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyKSx2PU1hdGgubWF4KG0ub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyLWcub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyLG0ubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyLXgubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyKSxOPWYuZmluZExhc3RNb25vdG9ub3VzKHk9Pnkub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyPG0ub3JpZ2luYWwuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSksUz1VZShlLHk9PnkubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyPG0ubW9kaWZpZWQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSksXz1NYXRoLm1heChOLm9yaWdpbmFsLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUtbS5vcmlnaW5hbC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLFMubW9kaWZpZWQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZS1tLm1vZGlmaWVkLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUpO2xldCB3O2Zvcih3PTA7dzx2O3crKyl7Y29uc3QgeT1tLm9yaWdpbmFsLnN0YXJ0TGluZU51bWJlci13LTEsUj1tLm1vZGlmaWVkLnN0YXJ0TGluZU51bWJlci13LTE7aWYoeT5zLmxlbmd0aHx8Uj5yLmxlbmd0aHx8Yy5jb250YWlucyhSKXx8aC5jb250YWlucyh5KXx8IVBzKHNbeS0xXSxyW1ItMV0saSkpYnJlYWt9dz4wJiYoaC5hZGRSYW5nZShuZXcgVShtLm9yaWdpbmFsLnN0YXJ0TGluZU51bWJlci13LG0ub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyKSksYy5hZGRSYW5nZShuZXcgVShtLm1vZGlmaWVkLnN0YXJ0TGluZU51bWJlci13LG0ubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyKSkpO2xldCBwO2ZvcihwPTA7cDxfO3ArKyl7Y29uc3QgeT1tLm9yaWdpbmFsLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUrcCxSPW0ubW9kaWZpZWQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZStwO2lmKHk+cy5sZW5ndGh8fFI+ci5sZW5ndGh8fGMuY29udGFpbnMoUil8fGguY29udGFpbnMoeSl8fCFQcyhzW3ktMV0scltSLTFdLGkpKWJyZWFrfXA+MCYmKGguYWRkUmFuZ2UobmV3IFUobS5vcmlnaW5hbC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLG0ub3JpZ2luYWwuZW5kTGluZU51bWJlckV4Y2x1c2l2ZStwKSksYy5hZGRSYW5nZShuZXcgVShtLm1vZGlmaWVkLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUsbS5tb2RpZmllZC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlK3ApKSksKHc+MHx8cD4wKSYmKGxbZF09bmV3IGxlKG5ldyBVKG0ub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyLXcsbS5vcmlnaW5hbC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlK3ApLG5ldyBVKG0ubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyLXcsbS5tb2RpZmllZC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlK3ApKSl9cmV0dXJuIGx9ZnVuY3Rpb24gUHMoZSx0LG4pe2lmKGUudHJpbSgpPT09dC50cmltKCkpcmV0dXJuITA7aWYoZS5sZW5ndGg+MzAwJiZ0Lmxlbmd0aD4zMDApcmV0dXJuITE7Y29uc3Qgcj1uZXcgUnMoKS5jb21wdXRlKG5ldyBkdChbZV0sbmV3IFQoMCwxKSwhMSksbmV3IGR0KFt0XSxuZXcgVCgwLDEpLCExKSxuKTtsZXQgaT0wO2NvbnN0IGw9ei5pbnZlcnQoci5kaWZmcyxlLmxlbmd0aCk7Zm9yKGNvbnN0IGggb2YgbCloLnNlcTFSYW5nZS5mb3JFYWNoKGY9PntHdChlLmNoYXJDb2RlQXQoZikpfHxpKyt9KTtmdW5jdGlvbiBvKGgpe2xldCBmPTA7Zm9yKGxldCBkPTA7ZDxlLmxlbmd0aDtkKyspR3QoaC5jaGFyQ29kZUF0KGQpKXx8ZisrO3JldHVybiBmfWNvbnN0IHU9byhlLmxlbmd0aD50Lmxlbmd0aD9lOnQpO3JldHVybiBpL3U+LjYmJnU+MTB9ZnVuY3Rpb24gJGkoZSl7aWYoZS5sZW5ndGg9PT0wKXJldHVybiBlO2Uuc29ydChpdChuPT5uLm9yaWdpbmFsLnN0YXJ0TGluZU51bWJlcixhdCkpO2NvbnN0IHQ9W2VbMF1dO2ZvcihsZXQgbj0xO248ZS5sZW5ndGg7bisrKXtjb25zdCBzPXRbdC5sZW5ndGgtMV0scj1lW25dLGk9ci5vcmlnaW5hbC5zdGFydExpbmVOdW1iZXItcy5vcmlnaW5hbC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLGw9ci5tb2RpZmllZC5zdGFydExpbmVOdW1iZXItcy5tb2RpZmllZC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlO2lmKGk+PTAmJmw+PTAmJmkrbDw9Mil7dFt0Lmxlbmd0aC0xXT1zLmpvaW4ocik7Y29udGludWV9dC5wdXNoKHIpfXJldHVybiB0fWZ1bmN0aW9uIE9pKGUsdCl7Y29uc3Qgbj1uZXcgR2UoZSk7cmV0dXJuIHQ9dC5maWx0ZXIocz0+e2NvbnN0IHI9bi5maW5kTGFzdE1vbm90b25vdXMobz0+by5vcmlnaW5hbC5zdGFydExpbmVOdW1iZXI8cy5vcmlnaW5hbC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlKXx8bmV3IGxlKG5ldyBVKDEsMSksbmV3IFUoMSwxKSksaT1VZShlLG89Pm8ubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyPHMubW9kaWZpZWQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSk7cmV0dXJuIHIhPT1pfSksdH1mdW5jdGlvbiBEcyhlLHQsbil7bGV0IHM9bjtyZXR1cm4gcz1GcyhlLHQscykscz1GcyhlLHQscykscz1HaShlLHQscyksc31mdW5jdGlvbiBGcyhlLHQsbil7aWYobi5sZW5ndGg9PT0wKXJldHVybiBuO2NvbnN0IHM9W107cy5wdXNoKG5bMF0pO2ZvcihsZXQgaT0xO2k8bi5sZW5ndGg7aSsrKXtjb25zdCBsPXNbcy5sZW5ndGgtMV07bGV0IG89bltpXTtpZihvLnNlcTFSYW5nZS5pc0VtcHR5fHxvLnNlcTJSYW5nZS5pc0VtcHR5KXtjb25zdCB1PW8uc2VxMVJhbmdlLnN0YXJ0LWwuc2VxMVJhbmdlLmVuZEV4Y2x1c2l2ZTtsZXQgYztmb3IoYz0xO2M8PXUmJiEoZS5nZXRFbGVtZW50KG8uc2VxMVJhbmdlLnN0YXJ0LWMpIT09ZS5nZXRFbGVtZW50KG8uc2VxMVJhbmdlLmVuZEV4Y2x1c2l2ZS1jKXx8dC5nZXRFbGVtZW50KG8uc2VxMlJhbmdlLnN0YXJ0LWMpIT09dC5nZXRFbGVtZW50KG8uc2VxMlJhbmdlLmVuZEV4Y2x1c2l2ZS1jKSk7YysrKTtpZihjLS0sYz09PXUpe3Nbcy5sZW5ndGgtMV09bmV3IHoobmV3IFQobC5zZXExUmFuZ2Uuc3RhcnQsby5zZXExUmFuZ2UuZW5kRXhjbHVzaXZlLXUpLG5ldyBUKGwuc2VxMlJhbmdlLnN0YXJ0LG8uc2VxMlJhbmdlLmVuZEV4Y2x1c2l2ZS11KSk7Y29udGludWV9bz1vLmRlbHRhKC1jKX1zLnB1c2gobyl9Y29uc3Qgcj1bXTtmb3IobGV0IGk9MDtpPHMubGVuZ3RoLTE7aSsrKXtjb25zdCBsPXNbaSsxXTtsZXQgbz1zW2ldO2lmKG8uc2VxMVJhbmdlLmlzRW1wdHl8fG8uc2VxMlJhbmdlLmlzRW1wdHkpe2NvbnN0IHU9bC5zZXExUmFuZ2Uuc3RhcnQtby5zZXExUmFuZ2UuZW5kRXhjbHVzaXZlO2xldCBjO2ZvcihjPTA7Yzx1JiYhKCFlLmlzU3Ryb25nbHlFcXVhbChvLnNlcTFSYW5nZS5zdGFydCtjLG8uc2VxMVJhbmdlLmVuZEV4Y2x1c2l2ZStjKXx8IXQuaXNTdHJvbmdseUVxdWFsKG8uc2VxMlJhbmdlLnN0YXJ0K2Msby5zZXEyUmFuZ2UuZW5kRXhjbHVzaXZlK2MpKTtjKyspO2lmKGM9PT11KXtzW2krMV09bmV3IHoobmV3IFQoby5zZXExUmFuZ2Uuc3RhcnQrdSxsLnNlcTFSYW5nZS5lbmRFeGNsdXNpdmUpLG5ldyBUKG8uc2VxMlJhbmdlLnN0YXJ0K3UsbC5zZXEyUmFuZ2UuZW5kRXhjbHVzaXZlKSk7Y29udGludWV9Yz4wJiYobz1vLmRlbHRhKGMpKX1yLnB1c2gobyl9cmV0dXJuIHMubGVuZ3RoPjAmJnIucHVzaChzW3MubGVuZ3RoLTFdKSxyfWZ1bmN0aW9uIEdpKGUsdCxuKXtpZighZS5nZXRCb3VuZGFyeVNjb3JlfHwhdC5nZXRCb3VuZGFyeVNjb3JlKXJldHVybiBuO2ZvcihsZXQgcz0wO3M8bi5sZW5ndGg7cysrKXtjb25zdCByPXM+MD9uW3MtMV06dm9pZCAwLGk9bltzXSxsPXMrMTxuLmxlbmd0aD9uW3MrMV06dm9pZCAwLG89bmV3IFQocj9yLnNlcTFSYW5nZS5lbmRFeGNsdXNpdmUrMTowLGw/bC5zZXExUmFuZ2Uuc3RhcnQtMTplLmxlbmd0aCksdT1uZXcgVChyP3Iuc2VxMlJhbmdlLmVuZEV4Y2x1c2l2ZSsxOjAsbD9sLnNlcTJSYW5nZS5zdGFydC0xOnQubGVuZ3RoKTtpLnNlcTFSYW5nZS5pc0VtcHR5P25bc109VHMoaSxlLHQsbyx1KTppLnNlcTJSYW5nZS5pc0VtcHR5JiYobltzXT1UcyhpLnN3YXAoKSx0LGUsdSxvKS5zd2FwKCkpfXJldHVybiBufWZ1bmN0aW9uIFRzKGUsdCxuLHMscil7bGV0IGw9MTtmb3IoO2Uuc2VxMVJhbmdlLnN0YXJ0LWw+PXMuc3RhcnQmJmUuc2VxMlJhbmdlLnN0YXJ0LWw+PXIuc3RhcnQmJm4uaXNTdHJvbmdseUVxdWFsKGUuc2VxMlJhbmdlLnN0YXJ0LWwsZS5zZXEyUmFuZ2UuZW5kRXhjbHVzaXZlLWwpJiZsPDEwMDspbCsrO2wtLTtsZXQgbz0wO2Zvcig7ZS5zZXExUmFuZ2Uuc3RhcnQrbzxzLmVuZEV4Y2x1c2l2ZSYmZS5zZXEyUmFuZ2UuZW5kRXhjbHVzaXZlK288ci5lbmRFeGNsdXNpdmUmJm4uaXNTdHJvbmdseUVxdWFsKGUuc2VxMlJhbmdlLnN0YXJ0K28sZS5zZXEyUmFuZ2UuZW5kRXhjbHVzaXZlK28pJiZvPDEwMDspbysrO2lmKGw9PT0wJiZvPT09MClyZXR1cm4gZTtsZXQgdT0wLGM9LTE7Zm9yKGxldCBoPS1sO2g8PW87aCsrKXtjb25zdCBmPWUuc2VxMlJhbmdlLnN0YXJ0K2gsZD1lLnNlcTJSYW5nZS5lbmRFeGNsdXNpdmUraCxtPWUuc2VxMVJhbmdlLnN0YXJ0K2gsZz10LmdldEJvdW5kYXJ5U2NvcmUobSkrbi5nZXRCb3VuZGFyeVNjb3JlKGYpK24uZ2V0Qm91bmRhcnlTY29yZShkKTtnPmMmJihjPWcsdT1oKX1yZXR1cm4gZS5kZWx0YSh1KX1mdW5jdGlvbiBqaShlLHQsbil7Y29uc3Qgcz1bXTtmb3IoY29uc3QgciBvZiBuKXtjb25zdCBpPXNbcy5sZW5ndGgtMV07aWYoIWkpe3MucHVzaChyKTtjb250aW51ZX1yLnNlcTFSYW5nZS5zdGFydC1pLnNlcTFSYW5nZS5lbmRFeGNsdXNpdmU8PTJ8fHIuc2VxMlJhbmdlLnN0YXJ0LWkuc2VxMlJhbmdlLmVuZEV4Y2x1c2l2ZTw9Mj9zW3MubGVuZ3RoLTFdPW5ldyB6KGkuc2VxMVJhbmdlLmpvaW4oci5zZXExUmFuZ2UpLGkuc2VxMlJhbmdlLmpvaW4oci5zZXEyUmFuZ2UpKTpzLnB1c2gocil9cmV0dXJuIHN9ZnVuY3Rpb24gWGkoZSx0LG4pe2NvbnN0IHM9ei5pbnZlcnQobixlLmxlbmd0aCkscj1bXTtsZXQgaT1uZXcgbmUoMCwwKTtmdW5jdGlvbiBsKHUsYyl7aWYodS5vZmZzZXQxPGkub2Zmc2V0MXx8dS5vZmZzZXQyPGkub2Zmc2V0MilyZXR1cm47Y29uc3QgaD1lLmZpbmRXb3JkQ29udGFpbmluZyh1Lm9mZnNldDEpLGY9dC5maW5kV29yZENvbnRhaW5pbmcodS5vZmZzZXQyKTtpZighaHx8IWYpcmV0dXJuO2xldCBkPW5ldyB6KGgsZik7Y29uc3QgbT1kLmludGVyc2VjdChjKTtsZXQgZz1tLnNlcTFSYW5nZS5sZW5ndGgseD1tLnNlcTJSYW5nZS5sZW5ndGg7Zm9yKDtzLmxlbmd0aD4wOyl7Y29uc3Qgdj1zWzBdO2lmKCEodi5zZXExUmFuZ2UuaW50ZXJzZWN0cyhoKXx8di5zZXEyUmFuZ2UuaW50ZXJzZWN0cyhmKSkpYnJlYWs7Y29uc3QgUz1lLmZpbmRXb3JkQ29udGFpbmluZyh2LnNlcTFSYW5nZS5zdGFydCksXz10LmZpbmRXb3JkQ29udGFpbmluZyh2LnNlcTJSYW5nZS5zdGFydCksdz1uZXcgeihTLF8pLHA9dy5pbnRlcnNlY3Qodik7aWYoZys9cC5zZXExUmFuZ2UubGVuZ3RoLHgrPXAuc2VxMlJhbmdlLmxlbmd0aCxkPWQuam9pbih3KSxkLnNlcTFSYW5nZS5lbmRFeGNsdXNpdmU+PXYuc2VxMVJhbmdlLmVuZEV4Y2x1c2l2ZSlzLnNoaWZ0KCk7ZWxzZSBicmVha31nK3g8KGQuc2VxMVJhbmdlLmxlbmd0aCtkLnNlcTJSYW5nZS5sZW5ndGgpKjIvMyYmci5wdXNoKGQpLGk9ZC5nZXRFbmRFeGNsdXNpdmVzKCl9Zm9yKDtzLmxlbmd0aD4wOyl7Y29uc3QgdT1zLnNoaWZ0KCk7dS5zZXExUmFuZ2UuaXNFbXB0eXx8KGwodS5nZXRTdGFydHMoKSx1KSxsKHUuZ2V0RW5kRXhjbHVzaXZlcygpLmRlbHRhKC0xKSx1KSl9cmV0dXJuIFFpKG4scil9ZnVuY3Rpb24gUWkoZSx0KXtjb25zdCBuPVtdO2Zvcig7ZS5sZW5ndGg+MHx8dC5sZW5ndGg+MDspe2NvbnN0IHM9ZVswXSxyPXRbMF07bGV0IGk7cyYmKCFyfHxzLnNlcTFSYW5nZS5zdGFydDxyLnNlcTFSYW5nZS5zdGFydCk/aT1lLnNoaWZ0KCk6aT10LnNoaWZ0KCksbi5sZW5ndGg+MCYmbltuLmxlbmd0aC0xXS5zZXExUmFuZ2UuZW5kRXhjbHVzaXZlPj1pLnNlcTFSYW5nZS5zdGFydD9uW24ubGVuZ3RoLTFdPW5bbi5sZW5ndGgtMV0uam9pbihpKTpuLnB1c2goaSl9cmV0dXJuIG59ZnVuY3Rpb24gWWkoZSx0LG4pe2xldCBzPW47aWYocy5sZW5ndGg9PT0wKXJldHVybiBzO2xldCByPTAsaTtkb3tpPSExO2NvbnN0IGw9W3NbMF1dO2ZvcihsZXQgbz0xO288cy5sZW5ndGg7bysrKXtsZXQgaD1mdW5jdGlvbihkLG0pe2NvbnN0IGc9bmV3IFQoYy5zZXExUmFuZ2UuZW5kRXhjbHVzaXZlLHUuc2VxMVJhbmdlLnN0YXJ0KTtyZXR1cm4gZS5nZXRUZXh0KGcpLnJlcGxhY2UoL1xzL2csIiIpLmxlbmd0aDw9NCYmKGQuc2VxMVJhbmdlLmxlbmd0aCtkLnNlcTJSYW5nZS5sZW5ndGg+NXx8bS5zZXExUmFuZ2UubGVuZ3RoK20uc2VxMlJhbmdlLmxlbmd0aD41KX07Y29uc3QgdT1zW29dLGM9bFtsLmxlbmd0aC0xXTtoKGMsdSk/KGk9ITAsbFtsLmxlbmd0aC0xXT1sW2wubGVuZ3RoLTFdLmpvaW4odSkpOmwucHVzaCh1KX1zPWx9d2hpbGUocisrPDEwJiZpKTtyZXR1cm4gc31mdW5jdGlvbiBKaShlLHQsbil7bGV0IHM9bjtpZihzLmxlbmd0aD09PTApcmV0dXJuIHM7bGV0IHI9MCxpO2Rve2k9ITE7Y29uc3Qgbz1bc1swXV07Zm9yKGxldCB1PTE7dTxzLmxlbmd0aDt1Kyspe2xldCBmPWZ1bmN0aW9uKG0sZyl7Y29uc3QgeD1uZXcgVChoLnNlcTFSYW5nZS5lbmRFeGNsdXNpdmUsYy5zZXExUmFuZ2Uuc3RhcnQpO2lmKGUuY291bnRMaW5lc0luKHgpPjV8fHgubGVuZ3RoPjUwMClyZXR1cm4hMTtjb25zdCBOPWUuZ2V0VGV4dCh4KS50cmltKCk7aWYoTi5sZW5ndGg+MjB8fE4uc3BsaXQoL1xyXG58XHJ8XG4vKS5sZW5ndGg+MSlyZXR1cm4hMTtjb25zdCBTPWUuY291bnRMaW5lc0luKG0uc2VxMVJhbmdlKSxfPW0uc2VxMVJhbmdlLmxlbmd0aCx3PXQuY291bnRMaW5lc0luKG0uc2VxMlJhbmdlKSxwPW0uc2VxMlJhbmdlLmxlbmd0aCx5PWUuY291bnRMaW5lc0luKGcuc2VxMVJhbmdlKSxSPWcuc2VxMVJhbmdlLmxlbmd0aCxFPXQuY291bnRMaW5lc0luKGcuc2VxMlJhbmdlKSxJPWcuc2VxMlJhbmdlLmxlbmd0aCxHPTIqNDArNTA7ZnVuY3Rpb24gTChiKXtyZXR1cm4gTWF0aC5taW4oYixHKX1yZXR1cm4gTWF0aC5wb3coTWF0aC5wb3coTChTKjQwK18pLDEuNSkrTWF0aC5wb3coTCh3KjQwK3ApLDEuNSksMS41KStNYXRoLnBvdyhNYXRoLnBvdyhMKHkqNDArUiksMS41KStNYXRoLnBvdyhMKEUqNDArSSksMS41KSwxLjUpPihHKioxLjUpKioxLjUqMS4zfTtjb25zdCBjPXNbdV0saD1vW28ubGVuZ3RoLTFdO2YoaCxjKT8oaT0hMCxvW28ubGVuZ3RoLTFdPW9bby5sZW5ndGgtMV0uam9pbihjKSk6by5wdXNoKGMpfXM9b313aGlsZShyKys8MTAmJmkpO2NvbnN0IGw9W107cmV0dXJuIEpyKHMsKG8sdSxjKT0+e2xldCBoPXU7ZnVuY3Rpb24gZihOKXtyZXR1cm4gTi5sZW5ndGg+MCYmTi50cmltKCkubGVuZ3RoPD0zJiZ1LnNlcTFSYW5nZS5sZW5ndGgrdS5zZXEyUmFuZ2UubGVuZ3RoPjEwMH1jb25zdCBkPWUuZXh0ZW5kVG9GdWxsTGluZXModS5zZXExUmFuZ2UpLG09ZS5nZXRUZXh0KG5ldyBUKGQuc3RhcnQsdS5zZXExUmFuZ2Uuc3RhcnQpKTtmKG0pJiYoaD1oLmRlbHRhU3RhcnQoLW0ubGVuZ3RoKSk7Y29uc3QgZz1lLmdldFRleHQobmV3IFQodS5zZXExUmFuZ2UuZW5kRXhjbHVzaXZlLGQuZW5kRXhjbHVzaXZlKSk7ZihnKSYmKGg9aC5kZWx0YUVuZChnLmxlbmd0aCkpO2NvbnN0IHg9ei5mcm9tT2Zmc2V0UGFpcnMobz9vLmdldEVuZEV4Y2x1c2l2ZXMoKTpuZS56ZXJvLGM/Yy5nZXRTdGFydHMoKTpuZS5tYXgpLHY9aC5pbnRlcnNlY3QoeCk7bC5sZW5ndGg+MCYmdi5nZXRTdGFydHMoKS5lcXVhbHMobFtsLmxlbmd0aC0xXS5nZXRFbmRFeGNsdXNpdmVzKCkpP2xbbC5sZW5ndGgtMV09bFtsLmxlbmd0aC0xXS5qb2luKHYpOmwucHVzaCh2KX0pLGx9Y2xhc3MgVXN7Y29uc3RydWN0b3IodCxuKXt0aGlzLnRyaW1tZWRIYXNoPXQsdGhpcy5saW5lcz1ufWdldEVsZW1lbnQodCl7cmV0dXJuIHRoaXMudHJpbW1lZEhhc2hbdF19Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLnRyaW1tZWRIYXNoLmxlbmd0aH1nZXRCb3VuZGFyeVNjb3JlKHQpe2NvbnN0IG49dD09PTA/MDpWcyh0aGlzLmxpbmVzW3QtMV0pLHM9dD09PXRoaXMubGluZXMubGVuZ3RoPzA6VnModGhpcy5saW5lc1t0XSk7cmV0dXJuIDFlMy0obitzKX1nZXRUZXh0KHQpe3JldHVybiB0aGlzLmxpbmVzLnNsaWNlKHQuc3RhcnQsdC5lbmRFeGNsdXNpdmUpLmpvaW4oYApgKX1pc1N0cm9uZ2x5RXF1YWwodCxuKXtyZXR1cm4gdGhpcy5saW5lc1t0XT09PXRoaXMubGluZXNbbl19fWZ1bmN0aW9uIFZzKGUpe2xldCB0PTA7Zm9yKDt0PGUubGVuZ3RoJiYoZS5jaGFyQ29kZUF0KHQpPT09MzJ8fGUuY2hhckNvZGVBdCh0KT09PTkpOyl0Kys7cmV0dXJuIHR9Y2xhc3MgWml7Y29uc3RydWN0b3IoKXt0aGlzLmR5bmFtaWNQcm9ncmFtbWluZ0RpZmZpbmc9bmV3IFRpLHRoaXMubXllcnNEaWZmaW5nQWxnb3JpdGhtPW5ldyBSc31jb21wdXRlRGlmZih0LG4scyl7aWYodC5sZW5ndGg8PTEmJlhyKHQsbiwocCx5KT0+cD09PXkpKXJldHVybiBuZXcgZnQoW10sW10sITEpO2lmKHQubGVuZ3RoPT09MSYmdFswXS5sZW5ndGg9PT0wfHxuLmxlbmd0aD09PTEmJm5bMF0ubGVuZ3RoPT09MClyZXR1cm4gbmV3IGZ0KFtuZXcgTmUobmV3IFUoMSx0Lmxlbmd0aCsxKSxuZXcgVSgxLG4ubGVuZ3RoKzEpLFtuZXcgamUobmV3IEQoMSwxLHQubGVuZ3RoLHRbMF0ubGVuZ3RoKzEpLG5ldyBEKDEsMSxuLmxlbmd0aCxuWzBdLmxlbmd0aCsxKSldKV0sW10sITEpO2NvbnN0IHI9cy5tYXhDb21wdXRhdGlvblRpbWVNcz09PTA/UWUuaW5zdGFuY2U6bmV3IEZpKHMubWF4Q29tcHV0YXRpb25UaW1lTXMpLGk9IXMuaWdub3JlVHJpbVdoaXRlc3BhY2UsbD1uZXcgTWFwO2Z1bmN0aW9uIG8ocCl7bGV0IHk9bC5nZXQocCk7cmV0dXJuIHk9PT12b2lkIDAmJih5PWwuc2l6ZSxsLnNldChwLHkpKSx5fWNvbnN0IHU9dC5tYXAocD0+byhwLnRyaW0oKSkpLGM9bi5tYXAocD0+byhwLnRyaW0oKSkpLGg9bmV3IFVzKHUsdCksZj1uZXcgVXMoYyxuKSxkPWgubGVuZ3RoK2YubGVuZ3RoPDE3MDA/dGhpcy5keW5hbWljUHJvZ3JhbW1pbmdEaWZmaW5nLmNvbXB1dGUoaCxmLHIsKHAseSk9PnRbcF09PT1uW3ldP25beV0ubGVuZ3RoPT09MD8uMToxK01hdGgubG9nKDErblt5XS5sZW5ndGgpOi45OSk6dGhpcy5teWVyc0RpZmZpbmdBbGdvcml0aG0uY29tcHV0ZShoLGYpO2xldCBtPWQuZGlmZnMsZz1kLmhpdFRpbWVvdXQ7bT1EcyhoLGYsbSksbT1ZaShoLGYsbSk7Y29uc3QgeD1bXSx2PXA9PntpZihpKWZvcihsZXQgeT0wO3k8cDt5Kyspe2NvbnN0IFI9Tit5LEU9Uyt5O2lmKHRbUl0hPT1uW0VdKXtjb25zdCBJPXRoaXMucmVmaW5lRGlmZih0LG4sbmV3IHoobmV3IFQoUixSKzEpLG5ldyBUKEUsRSsxKSkscixpKTtmb3IoY29uc3QgRyBvZiBJLm1hcHBpbmdzKXgucHVzaChHKTtJLmhpdFRpbWVvdXQmJihnPSEwKX19fTtsZXQgTj0wLFM9MDtmb3IoY29uc3QgcCBvZiBtKXtodCgoKT0+cC5zZXExUmFuZ2Uuc3RhcnQtTj09PXAuc2VxMlJhbmdlLnN0YXJ0LVMpO2NvbnN0IHk9cC5zZXExUmFuZ2Uuc3RhcnQtTjt2KHkpLE49cC5zZXExUmFuZ2UuZW5kRXhjbHVzaXZlLFM9cC5zZXEyUmFuZ2UuZW5kRXhjbHVzaXZlO2NvbnN0IFI9dGhpcy5yZWZpbmVEaWZmKHQsbixwLHIsaSk7Ui5oaXRUaW1lb3V0JiYoZz0hMCk7Zm9yKGNvbnN0IEUgb2YgUi5tYXBwaW5ncyl4LnB1c2goRSl9dih0Lmxlbmd0aC1OKTtjb25zdCBfPUJzKHgsdCxuKTtsZXQgdz1bXTtyZXR1cm4gcy5jb21wdXRlTW92ZXMmJih3PXRoaXMuY29tcHV0ZU1vdmVzKF8sdCxuLHUsYyxyLGkpKSxodCgoKT0+e2Z1bmN0aW9uIHAoUixFKXtpZihSLmxpbmVOdW1iZXI8MXx8Ui5saW5lTnVtYmVyPkUubGVuZ3RoKXJldHVybiExO2NvbnN0IEk9RVtSLmxpbmVOdW1iZXItMV07cmV0dXJuIShSLmNvbHVtbjwxfHxSLmNvbHVtbj5JLmxlbmd0aCsxKX1mdW5jdGlvbiB5KFIsRSl7cmV0dXJuIShSLnN0YXJ0TGluZU51bWJlcjwxfHxSLnN0YXJ0TGluZU51bWJlcj5FLmxlbmd0aCsxfHxSLmVuZExpbmVOdW1iZXJFeGNsdXNpdmU8MXx8Ui5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlPkUubGVuZ3RoKzEpfWZvcihjb25zdCBSIG9mIF8pe2lmKCFSLmlubmVyQ2hhbmdlcylyZXR1cm4hMTtmb3IoY29uc3QgRSBvZiBSLmlubmVyQ2hhbmdlcylpZighKHAoRS5tb2RpZmllZFJhbmdlLmdldFN0YXJ0UG9zaXRpb24oKSxuKSYmcChFLm1vZGlmaWVkUmFuZ2UuZ2V0RW5kUG9zaXRpb24oKSxuKSYmcChFLm9yaWdpbmFsUmFuZ2UuZ2V0U3RhcnRQb3NpdGlvbigpLHQpJiZwKEUub3JpZ2luYWxSYW5nZS5nZXRFbmRQb3NpdGlvbigpLHQpKSlyZXR1cm4hMTtpZigheShSLm1vZGlmaWVkLG4pfHwheShSLm9yaWdpbmFsLHQpKXJldHVybiExfXJldHVybiEwfSksbmV3IGZ0KF8sdyxnKX1jb21wdXRlTW92ZXModCxuLHMscixpLGwsbyl7cmV0dXJuIHFpKHQsbixzLHIsaSxsKS5tYXAoaD0+e2NvbnN0IGY9dGhpcy5yZWZpbmVEaWZmKG4scyxuZXcgeihoLm9yaWdpbmFsLnRvT2Zmc2V0UmFuZ2UoKSxoLm1vZGlmaWVkLnRvT2Zmc2V0UmFuZ2UoKSksbCxvKSxkPUJzKGYubWFwcGluZ3MsbixzLCEwKTtyZXR1cm4gbmV3IHlpKGgsZCl9KX1yZWZpbmVEaWZmKHQsbixzLHIsaSl7Y29uc3QgbD1uZXcgZHQodCxzLnNlcTFSYW5nZSxpKSxvPW5ldyBkdChuLHMuc2VxMlJhbmdlLGkpLHU9bC5sZW5ndGgrby5sZW5ndGg8NTAwP3RoaXMuZHluYW1pY1Byb2dyYW1taW5nRGlmZmluZy5jb21wdXRlKGwsbyxyKTp0aGlzLm15ZXJzRGlmZmluZ0FsZ29yaXRobS5jb21wdXRlKGwsbyxyKTtsZXQgYz11LmRpZmZzO3JldHVybiBjPURzKGwsbyxjKSxjPVhpKGwsbyxjKSxjPWppKGwsbyxjKSxjPUppKGwsbyxjKSx7bWFwcGluZ3M6Yy5tYXAoZj0+bmV3IGplKGwudHJhbnNsYXRlUmFuZ2UoZi5zZXExUmFuZ2UpLG8udHJhbnNsYXRlUmFuZ2UoZi5zZXEyUmFuZ2UpKSksaGl0VGltZW91dDp1LmhpdFRpbWVvdXR9fX1mdW5jdGlvbiBCcyhlLHQsbixzPSExKXtjb25zdCByPVtdO2Zvcihjb25zdCBpIG9mIFFyKGUubWFwKGw9PktpKGwsdCxuKSksKGwsbyk9Pmwub3JpZ2luYWwub3ZlcmxhcE9yVG91Y2goby5vcmlnaW5hbCl8fGwubW9kaWZpZWQub3ZlcmxhcE9yVG91Y2goby5tb2RpZmllZCkpKXtjb25zdCBsPWlbMF0sbz1pW2kubGVuZ3RoLTFdO3IucHVzaChuZXcgTmUobC5vcmlnaW5hbC5qb2luKG8ub3JpZ2luYWwpLGwubW9kaWZpZWQuam9pbihvLm1vZGlmaWVkKSxpLm1hcCh1PT51LmlubmVyQ2hhbmdlc1swXSkpKX1yZXR1cm4gaHQoKCk9PiFzJiZyLmxlbmd0aD4wJiZyWzBdLm9yaWdpbmFsLnN0YXJ0TGluZU51bWJlciE9PXJbMF0ubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyPyExOndzKHIsKGksbCk9Pmwub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyLWkub3JpZ2luYWwuZW5kTGluZU51bWJlckV4Y2x1c2l2ZT09PWwubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyLWkubW9kaWZpZWQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSYmaS5vcmlnaW5hbC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlPGwub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyJiZpLm1vZGlmaWVkLmVuZExpbmVOdW1iZXJFeGNsdXNpdmU8bC5tb2RpZmllZC5zdGFydExpbmVOdW1iZXIpKSxyfWZ1bmN0aW9uIEtpKGUsdCxuKXtsZXQgcz0wLHI9MDtlLm1vZGlmaWVkUmFuZ2UuZW5kQ29sdW1uPT09MSYmZS5vcmlnaW5hbFJhbmdlLmVuZENvbHVtbj09PTEmJmUub3JpZ2luYWxSYW5nZS5zdGFydExpbmVOdW1iZXIrczw9ZS5vcmlnaW5hbFJhbmdlLmVuZExpbmVOdW1iZXImJmUubW9kaWZpZWRSYW5nZS5zdGFydExpbmVOdW1iZXIrczw9ZS5tb2RpZmllZFJhbmdlLmVuZExpbmVOdW1iZXImJihyPS0xKSxlLm1vZGlmaWVkUmFuZ2Uuc3RhcnRDb2x1bW4tMT49bltlLm1vZGlmaWVkUmFuZ2Uuc3RhcnRMaW5lTnVtYmVyLTFdLmxlbmd0aCYmZS5vcmlnaW5hbFJhbmdlLnN0YXJ0Q29sdW1uLTE+PXRbZS5vcmlnaW5hbFJhbmdlLnN0YXJ0TGluZU51bWJlci0xXS5sZW5ndGgmJmUub3JpZ2luYWxSYW5nZS5zdGFydExpbmVOdW1iZXI8PWUub3JpZ2luYWxSYW5nZS5lbmRMaW5lTnVtYmVyK3ImJmUubW9kaWZpZWRSYW5nZS5zdGFydExpbmVOdW1iZXI8PWUubW9kaWZpZWRSYW5nZS5lbmRMaW5lTnVtYmVyK3ImJihzPTEpO2NvbnN0IGk9bmV3IFUoZS5vcmlnaW5hbFJhbmdlLnN0YXJ0TGluZU51bWJlcitzLGUub3JpZ2luYWxSYW5nZS5lbmRMaW5lTnVtYmVyKzErciksbD1uZXcgVShlLm1vZGlmaWVkUmFuZ2Uuc3RhcnRMaW5lTnVtYmVyK3MsZS5tb2RpZmllZFJhbmdlLmVuZExpbmVOdW1iZXIrMStyKTtyZXR1cm4gbmV3IE5lKGksbCxbZV0pfWNvbnN0IElzPXtnZXRMZWdhY3k6KCk9Pm5ldyBNaSxnZXREZWZhdWx0OigpPT5uZXcgWml9O2Z1bmN0aW9uIHBlKGUsdCl7Y29uc3Qgbj1NYXRoLnBvdygxMCx0KTtyZXR1cm4gTWF0aC5yb3VuZChlKm4pL259Y2xhc3MgT3tjb25zdHJ1Y3Rvcih0LG4scyxyPTEpe3RoaXMuX3JnYmFCcmFuZD12b2lkIDAsdGhpcy5yPU1hdGgubWluKDI1NSxNYXRoLm1heCgwLHQpKXwwLHRoaXMuZz1NYXRoLm1pbigyNTUsTWF0aC5tYXgoMCxuKSl8MCx0aGlzLmI9TWF0aC5taW4oMjU1LE1hdGgubWF4KDAscykpfDAsdGhpcy5hPXBlKE1hdGgubWF4KE1hdGgubWluKDEsciksMCksMyl9c3RhdGljIGVxdWFscyh0LG4pe3JldHVybiB0LnI9PT1uLnImJnQuZz09PW4uZyYmdC5iPT09bi5iJiZ0LmE9PT1uLmF9fWNsYXNzIHNle2NvbnN0cnVjdG9yKHQsbixzLHIpe3RoaXMuX2hzbGFCcmFuZD12b2lkIDAsdGhpcy5oPU1hdGgubWF4KE1hdGgubWluKDM2MCx0KSwwKXwwLHRoaXMucz1wZShNYXRoLm1heChNYXRoLm1pbigxLG4pLDApLDMpLHRoaXMubD1wZShNYXRoLm1heChNYXRoLm1pbigxLHMpLDApLDMpLHRoaXMuYT1wZShNYXRoLm1heChNYXRoLm1pbigxLHIpLDApLDMpfXN0YXRpYyBlcXVhbHModCxuKXtyZXR1cm4gdC5oPT09bi5oJiZ0LnM9PT1uLnMmJnQubD09PW4ubCYmdC5hPT09bi5hfXN0YXRpYyBmcm9tUkdCQSh0KXtjb25zdCBuPXQuci8yNTUscz10LmcvMjU1LHI9dC5iLzI1NSxpPXQuYSxsPU1hdGgubWF4KG4scyxyKSxvPU1hdGgubWluKG4scyxyKTtsZXQgdT0wLGM9MDtjb25zdCBoPShvK2wpLzIsZj1sLW87aWYoZj4wKXtzd2l0Y2goYz1NYXRoLm1pbihoPD0uNT9mLygyKmgpOmYvKDItMipoKSwxKSxsKXtjYXNlIG46dT0ocy1yKS9mKyhzPHI/NjowKTticmVhaztjYXNlIHM6dT0oci1uKS9mKzI7YnJlYWs7Y2FzZSByOnU9KG4tcykvZis0O2JyZWFrfXUqPTYwLHU9TWF0aC5yb3VuZCh1KX1yZXR1cm4gbmV3IHNlKHUsYyxoLGkpfXN0YXRpYyBfaHVlMnJnYih0LG4scyl7cmV0dXJuIHM8MCYmKHMrPTEpLHM+MSYmKHMtPTEpLHM8MS82P3QrKG4tdCkqNipzOnM8MS8yP246czwyLzM/dCsobi10KSooMi8zLXMpKjY6dH1zdGF0aWMgdG9SR0JBKHQpe2NvbnN0IG49dC5oLzM2MCx7cyxsOnIsYTppfT10O2xldCBsLG8sdTtpZihzPT09MClsPW89dT1yO2Vsc2V7Y29uc3QgYz1yPC41P3IqKDErcyk6citzLXIqcyxoPTIqci1jO2w9c2UuX2h1ZTJyZ2IoaCxjLG4rMS8zKSxvPXNlLl9odWUycmdiKGgsYyxuKSx1PXNlLl9odWUycmdiKGgsYyxuLTEvMyl9cmV0dXJuIG5ldyBPKE1hdGgucm91bmQobCoyNTUpLE1hdGgucm91bmQobyoyNTUpLE1hdGgucm91bmQodSoyNTUpLGkpfX1jbGFzcyBJZXtjb25zdHJ1Y3Rvcih0LG4scyxyKXt0aGlzLl9oc3ZhQnJhbmQ9dm9pZCAwLHRoaXMuaD1NYXRoLm1heChNYXRoLm1pbigzNjAsdCksMCl8MCx0aGlzLnM9cGUoTWF0aC5tYXgoTWF0aC5taW4oMSxuKSwwKSwzKSx0aGlzLnY9cGUoTWF0aC5tYXgoTWF0aC5taW4oMSxzKSwwKSwzKSx0aGlzLmE9cGUoTWF0aC5tYXgoTWF0aC5taW4oMSxyKSwwKSwzKX1zdGF0aWMgZXF1YWxzKHQsbil7cmV0dXJuIHQuaD09PW4uaCYmdC5zPT09bi5zJiZ0LnY9PT1uLnYmJnQuYT09PW4uYX1zdGF0aWMgZnJvbVJHQkEodCl7Y29uc3Qgbj10LnIvMjU1LHM9dC5nLzI1NSxyPXQuYi8yNTUsaT1NYXRoLm1heChuLHMsciksbD1NYXRoLm1pbihuLHMsciksbz1pLWwsdT1pPT09MD8wOm8vaTtsZXQgYztyZXR1cm4gbz09PTA/Yz0wOmk9PT1uP2M9KChzLXIpL28lNis2KSU2Omk9PT1zP2M9KHItbikvbysyOmM9KG4tcykvbys0LG5ldyBJZShNYXRoLnJvdW5kKGMqNjApLHUsaSx0LmEpfXN0YXRpYyB0b1JHQkEodCl7Y29uc3R7aDpuLHMsdjpyLGE6aX09dCxsPXIqcyxvPWwqKDEtTWF0aC5hYnMobi82MCUyLTEpKSx1PXItbDtsZXRbYyxoLGZdPVswLDAsMF07cmV0dXJuIG48NjA/KGM9bCxoPW8pOm48MTIwPyhjPW8saD1sKTpuPDE4MD8oaD1sLGY9byk6bjwyNDA/KGg9byxmPWwpOm48MzAwPyhjPW8sZj1sKTpuPD0zNjAmJihjPWwsZj1vKSxjPU1hdGgucm91bmQoKGMrdSkqMjU1KSxoPU1hdGgucm91bmQoKGgrdSkqMjU1KSxmPU1hdGgucm91bmQoKGYrdSkqMjU1KSxuZXcgTyhjLGgsZixpKX19Y2xhc3MgVntzdGF0aWMgZnJvbUhleCh0KXtyZXR1cm4gVi5Gb3JtYXQuQ1NTLnBhcnNlSGV4KHQpfHxWLnJlZH1zdGF0aWMgZXF1YWxzKHQsbil7cmV0dXJuIXQmJiFuPyEwOiF0fHwhbj8hMTp0LmVxdWFscyhuKX1nZXQgaHNsYSgpe3JldHVybiB0aGlzLl9oc2xhP3RoaXMuX2hzbGE6c2UuZnJvbVJHQkEodGhpcy5yZ2JhKX1nZXQgaHN2YSgpe3JldHVybiB0aGlzLl9oc3ZhP3RoaXMuX2hzdmE6SWUuZnJvbVJHQkEodGhpcy5yZ2JhKX1jb25zdHJ1Y3Rvcih0KXtpZih0KWlmKHQgaW5zdGFuY2VvZiBPKXRoaXMucmdiYT10O2Vsc2UgaWYodCBpbnN0YW5jZW9mIHNlKXRoaXMuX2hzbGE9dCx0aGlzLnJnYmE9c2UudG9SR0JBKHQpO2Vsc2UgaWYodCBpbnN0YW5jZW9mIEllKXRoaXMuX2hzdmE9dCx0aGlzLnJnYmE9SWUudG9SR0JBKHQpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNvbG9yIGN0b3IgYXJndW1lbnQiKTtlbHNlIHRocm93IG5ldyBFcnJvcigiQ29sb3IgbmVlZHMgYSB2YWx1ZSIpfWVxdWFscyh0KXtyZXR1cm4hIXQmJk8uZXF1YWxzKHRoaXMucmdiYSx0LnJnYmEpJiZzZS5lcXVhbHModGhpcy5oc2xhLHQuaHNsYSkmJkllLmVxdWFscyh0aGlzLmhzdmEsdC5oc3ZhKX1nZXRSZWxhdGl2ZUx1bWluYW5jZSgpe2NvbnN0IHQ9Vi5fcmVsYXRpdmVMdW1pbmFuY2VGb3JDb21wb25lbnQodGhpcy5yZ2JhLnIpLG49Vi5fcmVsYXRpdmVMdW1pbmFuY2VGb3JDb21wb25lbnQodGhpcy5yZ2JhLmcpLHM9Vi5fcmVsYXRpdmVMdW1pbmFuY2VGb3JDb21wb25lbnQodGhpcy5yZ2JhLmIpLHI9LjIxMjYqdCsuNzE1MipuKy4wNzIyKnM7cmV0dXJuIHBlKHIsNCl9c3RhdGljIF9yZWxhdGl2ZUx1bWluYW5jZUZvckNvbXBvbmVudCh0KXtjb25zdCBuPXQvMjU1O3JldHVybiBuPD0uMDM5Mjg/bi8xMi45MjpNYXRoLnBvdygobisuMDU1KS8xLjA1NSwyLjQpfWlzTGlnaHRlcigpe3JldHVybih0aGlzLnJnYmEucioyOTkrdGhpcy5yZ2JhLmcqNTg3K3RoaXMucmdiYS5iKjExNCkvMWUzPj0xMjh9aXNMaWdodGVyVGhhbih0KXtjb25zdCBuPXRoaXMuZ2V0UmVsYXRpdmVMdW1pbmFuY2UoKSxzPXQuZ2V0UmVsYXRpdmVMdW1pbmFuY2UoKTtyZXR1cm4gbj5zfWlzRGFya2VyVGhhbih0KXtjb25zdCBuPXRoaXMuZ2V0UmVsYXRpdmVMdW1pbmFuY2UoKSxzPXQuZ2V0UmVsYXRpdmVMdW1pbmFuY2UoKTtyZXR1cm4gbjxzfWxpZ2h0ZW4odCl7cmV0dXJuIG5ldyBWKG5ldyBzZSh0aGlzLmhzbGEuaCx0aGlzLmhzbGEucyx0aGlzLmhzbGEubCt0aGlzLmhzbGEubCp0LHRoaXMuaHNsYS5hKSl9ZGFya2VuKHQpe3JldHVybiBuZXcgVihuZXcgc2UodGhpcy5oc2xhLmgsdGhpcy5oc2xhLnMsdGhpcy5oc2xhLmwtdGhpcy5oc2xhLmwqdCx0aGlzLmhzbGEuYSkpfXRyYW5zcGFyZW50KHQpe2NvbnN0e3I6bixnOnMsYjpyLGE6aX09dGhpcy5yZ2JhO3JldHVybiBuZXcgVihuZXcgTyhuLHMscixpKnQpKX1pc1RyYW5zcGFyZW50KCl7cmV0dXJuIHRoaXMucmdiYS5hPT09MH1pc09wYXF1ZSgpe3JldHVybiB0aGlzLnJnYmEuYT09PTF9b3Bwb3NpdGUoKXtyZXR1cm4gbmV3IFYobmV3IE8oMjU1LXRoaXMucmdiYS5yLDI1NS10aGlzLnJnYmEuZywyNTUtdGhpcy5yZ2JhLmIsdGhpcy5yZ2JhLmEpKX1tYWtlT3BhcXVlKHQpe2lmKHRoaXMuaXNPcGFxdWUoKXx8dC5yZ2JhLmEhPT0xKXJldHVybiB0aGlzO2NvbnN0e3I6bixnOnMsYjpyLGE6aX09dGhpcy5yZ2JhO3JldHVybiBuZXcgVihuZXcgTyh0LnJnYmEuci1pKih0LnJnYmEuci1uKSx0LnJnYmEuZy1pKih0LnJnYmEuZy1zKSx0LnJnYmEuYi1pKih0LnJnYmEuYi1yKSwxKSl9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5fdG9TdHJpbmd8fCh0aGlzLl90b1N0cmluZz1WLkZvcm1hdC5DU1MuZm9ybWF0KHRoaXMpKSx0aGlzLl90b1N0cmluZ31zdGF0aWMgZ2V0TGlnaHRlckNvbG9yKHQsbixzKXtpZih0LmlzTGlnaHRlclRoYW4obikpcmV0dXJuIHQ7cz1zfHwuNTtjb25zdCByPXQuZ2V0UmVsYXRpdmVMdW1pbmFuY2UoKSxpPW4uZ2V0UmVsYXRpdmVMdW1pbmFuY2UoKTtyZXR1cm4gcz1zKihpLXIpL2ksdC5saWdodGVuKHMpfXN0YXRpYyBnZXREYXJrZXJDb2xvcih0LG4scyl7aWYodC5pc0RhcmtlclRoYW4obikpcmV0dXJuIHQ7cz1zfHwuNTtjb25zdCByPXQuZ2V0UmVsYXRpdmVMdW1pbmFuY2UoKSxpPW4uZ2V0UmVsYXRpdmVMdW1pbmFuY2UoKTtyZXR1cm4gcz1zKihyLWkpL3IsdC5kYXJrZW4ocyl9fVYud2hpdGU9bmV3IFYobmV3IE8oMjU1LDI1NSwyNTUsMSkpLFYuYmxhY2s9bmV3IFYobmV3IE8oMCwwLDAsMSkpLFYucmVkPW5ldyBWKG5ldyBPKDI1NSwwLDAsMSkpLFYuYmx1ZT1uZXcgVihuZXcgTygwLDAsMjU1LDEpKSxWLmdyZWVuPW5ldyBWKG5ldyBPKDAsMjU1LDAsMSkpLFYuY3lhbj1uZXcgVihuZXcgTygwLDI1NSwyNTUsMSkpLFYubGlnaHRncmV5PW5ldyBWKG5ldyBPKDIxMSwyMTEsMjExLDEpKSxWLnRyYW5zcGFyZW50PW5ldyBWKG5ldyBPKDAsMCwwLDApKSxmdW5jdGlvbihlKXsoZnVuY3Rpb24odCl7KGZ1bmN0aW9uKG4pe2Z1bmN0aW9uIHMobSl7cmV0dXJuIG0ucmdiYS5hPT09MT9gcmdiKCR7bS5yZ2JhLnJ9LCAke20ucmdiYS5nfSwgJHttLnJnYmEuYn0pYDplLkZvcm1hdC5DU1MuZm9ybWF0UkdCQShtKX1uLmZvcm1hdFJHQj1zO2Z1bmN0aW9uIHIobSl7cmV0dXJuYHJnYmEoJHttLnJnYmEucn0sICR7bS5yZ2JhLmd9LCAke20ucmdiYS5ifSwgJHsrbS5yZ2JhLmEudG9GaXhlZCgyKX0pYH1uLmZvcm1hdFJHQkE9cjtmdW5jdGlvbiBpKG0pe3JldHVybiBtLmhzbGEuYT09PTE/YGhzbCgke20uaHNsYS5ofSwgJHsobS5oc2xhLnMqMTAwKS50b0ZpeGVkKDIpfSUsICR7KG0uaHNsYS5sKjEwMCkudG9GaXhlZCgyKX0lKWA6ZS5Gb3JtYXQuQ1NTLmZvcm1hdEhTTEEobSl9bi5mb3JtYXRIU0w9aTtmdW5jdGlvbiBsKG0pe3JldHVybmBoc2xhKCR7bS5oc2xhLmh9LCAkeyhtLmhzbGEucyoxMDApLnRvRml4ZWQoMil9JSwgJHsobS5oc2xhLmwqMTAwKS50b0ZpeGVkKDIpfSUsICR7bS5oc2xhLmEudG9GaXhlZCgyKX0pYH1uLmZvcm1hdEhTTEE9bDtmdW5jdGlvbiBvKG0pe2NvbnN0IGc9bS50b1N0cmluZygxNik7cmV0dXJuIGcubGVuZ3RoIT09Mj8iMCIrZzpnfWZ1bmN0aW9uIHUobSl7cmV0dXJuYCMke28obS5yZ2JhLnIpfSR7byhtLnJnYmEuZyl9JHtvKG0ucmdiYS5iKX1gfW4uZm9ybWF0SGV4PXU7ZnVuY3Rpb24gYyhtLGc9ITEpe3JldHVybiBnJiZtLnJnYmEuYT09PTE/ZS5Gb3JtYXQuQ1NTLmZvcm1hdEhleChtKTpgIyR7byhtLnJnYmEucil9JHtvKG0ucmdiYS5nKX0ke28obS5yZ2JhLmIpfSR7byhNYXRoLnJvdW5kKG0ucmdiYS5hKjI1NSkpfWB9bi5mb3JtYXRIZXhBPWM7ZnVuY3Rpb24gaChtKXtyZXR1cm4gbS5pc09wYXF1ZSgpP2UuRm9ybWF0LkNTUy5mb3JtYXRIZXgobSk6ZS5Gb3JtYXQuQ1NTLmZvcm1hdFJHQkEobSl9bi5mb3JtYXQ9aDtmdW5jdGlvbiBmKG0pe2NvbnN0IGc9bS5sZW5ndGg7aWYoZz09PTB8fG0uY2hhckNvZGVBdCgwKSE9PTM1KXJldHVybiBudWxsO2lmKGc9PT03KXtjb25zdCB4PTE2KmQobS5jaGFyQ29kZUF0KDEpKStkKG0uY2hhckNvZGVBdCgyKSksdj0xNipkKG0uY2hhckNvZGVBdCgzKSkrZChtLmNoYXJDb2RlQXQoNCkpLE49MTYqZChtLmNoYXJDb2RlQXQoNSkpK2QobS5jaGFyQ29kZUF0KDYpKTtyZXR1cm4gbmV3IGUobmV3IE8oeCx2LE4sMSkpfWlmKGc9PT05KXtjb25zdCB4PTE2KmQobS5jaGFyQ29kZUF0KDEpKStkKG0uY2hhckNvZGVBdCgyKSksdj0xNipkKG0uY2hhckNvZGVBdCgzKSkrZChtLmNoYXJDb2RlQXQoNCkpLE49MTYqZChtLmNoYXJDb2RlQXQoNSkpK2QobS5jaGFyQ29kZUF0KDYpKSxTPTE2KmQobS5jaGFyQ29kZUF0KDcpKStkKG0uY2hhckNvZGVBdCg4KSk7cmV0dXJuIG5ldyBlKG5ldyBPKHgsdixOLFMvMjU1KSl9aWYoZz09PTQpe2NvbnN0IHg9ZChtLmNoYXJDb2RlQXQoMSkpLHY9ZChtLmNoYXJDb2RlQXQoMikpLE49ZChtLmNoYXJDb2RlQXQoMykpO3JldHVybiBuZXcgZShuZXcgTygxNip4K3gsMTYqdit2LDE2Kk4rTikpfWlmKGc9PT01KXtjb25zdCB4PWQobS5jaGFyQ29kZUF0KDEpKSx2PWQobS5jaGFyQ29kZUF0KDIpKSxOPWQobS5jaGFyQ29kZUF0KDMpKSxTPWQobS5jaGFyQ29kZUF0KDQpKTtyZXR1cm4gbmV3IGUobmV3IE8oMTYqeCt4LDE2KnYrdiwxNipOK04sKDE2KlMrUykvMjU1KSl9cmV0dXJuIG51bGx9bi5wYXJzZUhleD1mO2Z1bmN0aW9uIGQobSl7c3dpdGNoKG0pe2Nhc2UgNDg6cmV0dXJuIDA7Y2FzZSA0OTpyZXR1cm4gMTtjYXNlIDUwOnJldHVybiAyO2Nhc2UgNTE6cmV0dXJuIDM7Y2FzZSA1MjpyZXR1cm4gNDtjYXNlIDUzOnJldHVybiA1O2Nhc2UgNTQ6cmV0dXJuIDY7Y2FzZSA1NTpyZXR1cm4gNztjYXNlIDU2OnJldHVybiA4O2Nhc2UgNTc6cmV0dXJuIDk7Y2FzZSA5NzpyZXR1cm4gMTA7Y2FzZSA2NTpyZXR1cm4gMTA7Y2FzZSA5ODpyZXR1cm4gMTE7Y2FzZSA2NjpyZXR1cm4gMTE7Y2FzZSA5OTpyZXR1cm4gMTI7Y2FzZSA2NzpyZXR1cm4gMTI7Y2FzZSAxMDA6cmV0dXJuIDEzO2Nhc2UgNjg6cmV0dXJuIDEzO2Nhc2UgMTAxOnJldHVybiAxNDtjYXNlIDY5OnJldHVybiAxNDtjYXNlIDEwMjpyZXR1cm4gMTU7Y2FzZSA3MDpyZXR1cm4gMTV9cmV0dXJuIDB9fSkodC5DU1N8fCh0LkNTUz17fSkpfSkoZS5Gb3JtYXR8fChlLkZvcm1hdD17fSkpfShWfHwoVj17fSkpO2Z1bmN0aW9uIHFzKGUpe2NvbnN0IHQ9W107Zm9yKGNvbnN0IG4gb2YgZSl7Y29uc3Qgcz1OdW1iZXIobik7KHN8fHM9PT0wJiZuLnJlcGxhY2UoL1xzL2csIiIpIT09IiIpJiZ0LnB1c2gocyl9cmV0dXJuIHR9ZnVuY3Rpb24gWHQoZSx0LG4scyl7cmV0dXJue3JlZDplLzI1NSxibHVlOm4vMjU1LGdyZWVuOnQvMjU1LGFscGhhOnN9fWZ1bmN0aW9uIFllKGUsdCl7Y29uc3Qgbj10LmluZGV4LHM9dFswXS5sZW5ndGg7aWYoIW4pcmV0dXJuO2NvbnN0IHI9ZS5wb3NpdGlvbkF0KG4pO3JldHVybntzdGFydExpbmVOdW1iZXI6ci5saW5lTnVtYmVyLHN0YXJ0Q29sdW1uOnIuY29sdW1uLGVuZExpbmVOdW1iZXI6ci5saW5lTnVtYmVyLGVuZENvbHVtbjpyLmNvbHVtbitzfX1mdW5jdGlvbiBlMShlLHQpe2lmKCFlKXJldHVybjtjb25zdCBuPVYuRm9ybWF0LkNTUy5wYXJzZUhleCh0KTtpZihuKXJldHVybntyYW5nZTplLGNvbG9yOlh0KG4ucmdiYS5yLG4ucmdiYS5nLG4ucmdiYS5iLG4ucmdiYS5hKX19ZnVuY3Rpb24gSHMoZSx0LG4pe2lmKCFlfHx0Lmxlbmd0aCE9PTEpcmV0dXJuO2NvbnN0IHI9dFswXS52YWx1ZXMoKSxpPXFzKHIpO3JldHVybntyYW5nZTplLGNvbG9yOlh0KGlbMF0saVsxXSxpWzJdLG4/aVszXToxKX19ZnVuY3Rpb24gV3MoZSx0LG4pe2lmKCFlfHx0Lmxlbmd0aCE9PTEpcmV0dXJuO2NvbnN0IHI9dFswXS52YWx1ZXMoKSxpPXFzKHIpLGw9bmV3IFYobmV3IHNlKGlbMF0saVsxXS8xMDAsaVsyXS8xMDAsbj9pWzNdOjEpKTtyZXR1cm57cmFuZ2U6ZSxjb2xvcjpYdChsLnJnYmEucixsLnJnYmEuZyxsLnJnYmEuYixsLnJnYmEuYSl9fWZ1bmN0aW9uIEplKGUsdCl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIj9bLi4uZS5tYXRjaEFsbCh0KV06ZS5maW5kTWF0Y2hlcyh0KX1mdW5jdGlvbiB0MShlKXtjb25zdCB0PVtdLHM9SmUoZSwvXGIocmdifHJnYmF8aHNsfGhzbGEpKFwoWzAtOVxzLC5cJV0qXCkpfCgjKShbQS1GYS1mMC05XXszfSlcYnwoIykoW0EtRmEtZjAtOV17NH0pXGJ8KCMpKFtBLUZhLWYwLTldezZ9KVxifCgjKShbQS1GYS1mMC05XXs4fSlcYi9nbSk7aWYocy5sZW5ndGg+MClmb3IoY29uc3QgciBvZiBzKXtjb25zdCBpPXIuZmlsdGVyKGM9PmMhPT12b2lkIDApLGw9aVsxXSxvPWlbMl07aWYoIW8pY29udGludWU7bGV0IHU7aWYobD09PSJyZ2IiKXtjb25zdCBjPS9eXChccyooMjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV17Mn18WzEtOV1bMC05XXxbMC05XSlccyosXHMqKDI1WzAtNV18MlswLTRdWzAtOV18MVswLTldezJ9fFsxLTldWzAtOV18WzAtOV0pXHMqLFxzKigyNVswLTVdfDJbMC00XVswLTldfDFbMC05XXsyfXxbMS05XVswLTldfFswLTldKVxzKlwpJC9nbTt1PUhzKFllKGUsciksSmUobyxjKSwhMSl9ZWxzZSBpZihsPT09InJnYmEiKXtjb25zdCBjPS9eXChccyooMjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV17Mn18WzEtOV1bMC05XXxbMC05XSlccyosXHMqKDI1WzAtNV18MlswLTRdWzAtOV18MVswLTldezJ9fFsxLTldWzAtOV18WzAtOV0pXHMqLFxzKigyNVswLTVdfDJbMC00XVswLTldfDFbMC05XXsyfXxbMS05XVswLTldfFswLTldKVxzKixccyooMFsuXVswLTldK3xbLl1bMC05XSt8WzAxXVsuXXxbMDFdKVxzKlwpJC9nbTt1PUhzKFllKGUsciksSmUobyxjKSwhMCl9ZWxzZSBpZihsPT09ImhzbCIpe2NvbnN0IGM9L15cKFxzKigzNlswXXwzWzAtNV1bMC05XXxbMTJdWzAtOV1bMC05XXxbMS05XT9bMC05XSlccyosXHMqKDEwMHxcZHsxLDJ9Wy5dXGQqfFxkezEsMn0pJVxzKixccyooMTAwfFxkezEsMn1bLl1cZCp8XGR7MSwyfSklXHMqXCkkL2dtO3U9V3MoWWUoZSxyKSxKZShvLGMpLCExKX1lbHNlIGlmKGw9PT0iaHNsYSIpe2NvbnN0IGM9L15cKFxzKigzNlswXXwzWzAtNV1bMC05XXxbMTJdWzAtOV1bMC05XXxbMS05XT9bMC05XSlccyosXHMqKDEwMHxcZHsxLDJ9Wy5dXGQqfFxkezEsMn0pJVxzKixccyooMTAwfFxkezEsMn1bLl1cZCp8XGR7MSwyfSklXHMqLFxzKigwWy5dWzAtOV0rfFsuXVswLTldK3xbMDFdWy5dfFswMV0pXHMqXCkkL2dtO3U9V3MoWWUoZSxyKSxKZShvLGMpLCEwKX1lbHNlIGw9PT0iIyImJih1PWUxKFllKGUsciksbCtvKSk7dSYmdC5wdXNoKHUpfXJldHVybiB0fWZ1bmN0aW9uIG4xKGUpe3JldHVybiFlfHx0eXBlb2YgZS5nZXRWYWx1ZSE9ImZ1bmN0aW9uInx8dHlwZW9mIGUucG9zaXRpb25BdCE9ImZ1bmN0aW9uIj9bXTp0MShlKX1jbGFzcyBzMSBleHRlbmRzIG5pe2dldCB1cmkoKXtyZXR1cm4gdGhpcy5fdXJpfWdldCBlb2woKXtyZXR1cm4gdGhpcy5fZW9sfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMuZ2V0VGV4dCgpfWZpbmRNYXRjaGVzKHQpe2NvbnN0IG49W107Zm9yKGxldCBzPTA7czx0aGlzLl9saW5lcy5sZW5ndGg7cysrKXtjb25zdCByPXRoaXMuX2xpbmVzW3NdLGk9dGhpcy5vZmZzZXRBdChuZXcgWShzKzEsMSkpLGw9ci5tYXRjaEFsbCh0KTtmb3IoY29uc3QgbyBvZiBsKShvLmluZGV4fHxvLmluZGV4PT09MCkmJihvLmluZGV4PW8uaW5kZXgraSksbi5wdXNoKG8pfXJldHVybiBufWdldExpbmVzQ29udGVudCgpe3JldHVybiB0aGlzLl9saW5lcy5zbGljZSgwKX1nZXRMaW5lQ291bnQoKXtyZXR1cm4gdGhpcy5fbGluZXMubGVuZ3RofWdldExpbmVDb250ZW50KHQpe3JldHVybiB0aGlzLl9saW5lc1t0LTFdfWdldFdvcmRBdFBvc2l0aW9uKHQsbil7Y29uc3Qgcz1rdCh0LmNvbHVtbix2bihuKSx0aGlzLl9saW5lc1t0LmxpbmVOdW1iZXItMV0sMCk7cmV0dXJuIHM/bmV3IEQodC5saW5lTnVtYmVyLHMuc3RhcnRDb2x1bW4sdC5saW5lTnVtYmVyLHMuZW5kQ29sdW1uKTpudWxsfXdvcmRzKHQpe2NvbnN0IG49dGhpcy5fbGluZXMscz10aGlzLl93b3JkZW5pemUuYmluZCh0aGlzKTtsZXQgcj0wLGk9IiIsbD0wLG89W107cmV0dXJueypbU3ltYm9sLml0ZXJhdG9yXSgpe2Zvcig7OylpZihsPG8ubGVuZ3RoKXtjb25zdCB1PWkuc3Vic3RyaW5nKG9bbF0uc3RhcnQsb1tsXS5lbmQpO2wrPTEseWllbGQgdX1lbHNlIGlmKHI8bi5sZW5ndGgpaT1uW3JdLG89cyhpLHQpLGw9MCxyKz0xO2Vsc2UgYnJlYWt9fX1nZXRMaW5lV29yZHModCxuKXtjb25zdCBzPXRoaXMuX2xpbmVzW3QtMV0scj10aGlzLl93b3JkZW5pemUocyxuKSxpPVtdO2Zvcihjb25zdCBsIG9mIHIpaS5wdXNoKHt3b3JkOnMuc3Vic3RyaW5nKGwuc3RhcnQsbC5lbmQpLHN0YXJ0Q29sdW1uOmwuc3RhcnQrMSxlbmRDb2x1bW46bC5lbmQrMX0pO3JldHVybiBpfV93b3JkZW5pemUodCxuKXtjb25zdCBzPVtdO2xldCByO2ZvcihuLmxhc3RJbmRleD0wOyhyPW4uZXhlYyh0KSkmJnJbMF0ubGVuZ3RoIT09MDspcy5wdXNoKHtzdGFydDpyLmluZGV4LGVuZDpyLmluZGV4K3JbMF0ubGVuZ3RofSk7cmV0dXJuIHN9Z2V0VmFsdWVJblJhbmdlKHQpe2lmKHQ9dGhpcy5fdmFsaWRhdGVSYW5nZSh0KSx0LnN0YXJ0TGluZU51bWJlcj09PXQuZW5kTGluZU51bWJlcilyZXR1cm4gdGhpcy5fbGluZXNbdC5zdGFydExpbmVOdW1iZXItMV0uc3Vic3RyaW5nKHQuc3RhcnRDb2x1bW4tMSx0LmVuZENvbHVtbi0xKTtjb25zdCBuPXRoaXMuX2VvbCxzPXQuc3RhcnRMaW5lTnVtYmVyLTEscj10LmVuZExpbmVOdW1iZXItMSxpPVtdO2kucHVzaCh0aGlzLl9saW5lc1tzXS5zdWJzdHJpbmcodC5zdGFydENvbHVtbi0xKSk7Zm9yKGxldCBsPXMrMTtsPHI7bCsrKWkucHVzaCh0aGlzLl9saW5lc1tsXSk7cmV0dXJuIGkucHVzaCh0aGlzLl9saW5lc1tyXS5zdWJzdHJpbmcoMCx0LmVuZENvbHVtbi0xKSksaS5qb2luKG4pfW9mZnNldEF0KHQpe3JldHVybiB0PXRoaXMuX3ZhbGlkYXRlUG9zaXRpb24odCksdGhpcy5fZW5zdXJlTGluZVN0YXJ0cygpLHRoaXMuX2xpbmVTdGFydHMuZ2V0UHJlZml4U3VtKHQubGluZU51bWJlci0yKSsodC5jb2x1bW4tMSl9cG9zaXRpb25BdCh0KXt0PU1hdGguZmxvb3IodCksdD1NYXRoLm1heCgwLHQpLHRoaXMuX2Vuc3VyZUxpbmVTdGFydHMoKTtjb25zdCBuPXRoaXMuX2xpbmVTdGFydHMuZ2V0SW5kZXhPZih0KSxzPXRoaXMuX2xpbmVzW24uaW5kZXhdLmxlbmd0aDtyZXR1cm57bGluZU51bWJlcjoxK24uaW5kZXgsY29sdW1uOjErTWF0aC5taW4obi5yZW1haW5kZXIscyl9fV92YWxpZGF0ZVJhbmdlKHQpe2NvbnN0IG49dGhpcy5fdmFsaWRhdGVQb3NpdGlvbih7bGluZU51bWJlcjp0LnN0YXJ0TGluZU51bWJlcixjb2x1bW46dC5zdGFydENvbHVtbn0pLHM9dGhpcy5fdmFsaWRhdGVQb3NpdGlvbih7bGluZU51bWJlcjp0LmVuZExpbmVOdW1iZXIsY29sdW1uOnQuZW5kQ29sdW1ufSk7cmV0dXJuIG4ubGluZU51bWJlciE9PXQuc3RhcnRMaW5lTnVtYmVyfHxuLmNvbHVtbiE9PXQuc3RhcnRDb2x1bW58fHMubGluZU51bWJlciE9PXQuZW5kTGluZU51bWJlcnx8cy5jb2x1bW4hPT10LmVuZENvbHVtbj97c3RhcnRMaW5lTnVtYmVyOm4ubGluZU51bWJlcixzdGFydENvbHVtbjpuLmNvbHVtbixlbmRMaW5lTnVtYmVyOnMubGluZU51bWJlcixlbmRDb2x1bW46cy5jb2x1bW59OnR9X3ZhbGlkYXRlUG9zaXRpb24odCl7aWYoIVkuaXNJUG9zaXRpb24odCkpdGhyb3cgbmV3IEVycm9yKCJiYWQgcG9zaXRpb24iKTtsZXR7bGluZU51bWJlcjpuLGNvbHVtbjpzfT10LHI9ITE7aWYobjwxKW49MSxzPTEscj0hMDtlbHNlIGlmKG4+dGhpcy5fbGluZXMubGVuZ3RoKW49dGhpcy5fbGluZXMubGVuZ3RoLHM9dGhpcy5fbGluZXNbbi0xXS5sZW5ndGgrMSxyPSEwO2Vsc2V7Y29uc3QgaT10aGlzLl9saW5lc1tuLTFdLmxlbmd0aCsxO3M8MT8ocz0xLHI9ITApOnM+aSYmKHM9aSxyPSEwKX1yZXR1cm4gcj97bGluZU51bWJlcjpuLGNvbHVtbjpzfTp0fX1jbGFzcyBTZXtjb25zdHJ1Y3Rvcih0LG4pe3RoaXMuX2hvc3Q9dCx0aGlzLl9tb2RlbHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9mb3JlaWduTW9kdWxlRmFjdG9yeT1uLHRoaXMuX2ZvcmVpZ25Nb2R1bGU9bnVsbH1kaXNwb3NlKCl7dGhpcy5fbW9kZWxzPU9iamVjdC5jcmVhdGUobnVsbCl9X2dldE1vZGVsKHQpe3JldHVybiB0aGlzLl9tb2RlbHNbdF19X2dldE1vZGVscygpe2NvbnN0IHQ9W107cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX21vZGVscykuZm9yRWFjaChuPT50LnB1c2godGhpcy5fbW9kZWxzW25dKSksdH1hY2NlcHROZXdNb2RlbCh0KXt0aGlzLl9tb2RlbHNbdC51cmxdPW5ldyBzMSh3ZS5wYXJzZSh0LnVybCksdC5saW5lcyx0LkVPTCx0LnZlcnNpb25JZCl9YWNjZXB0TW9kZWxDaGFuZ2VkKHQsbil7aWYoIXRoaXMuX21vZGVsc1t0XSlyZXR1cm47dGhpcy5fbW9kZWxzW3RdLm9uRXZlbnRzKG4pfWFjY2VwdFJlbW92ZWRNb2RlbCh0KXt0aGlzLl9tb2RlbHNbdF0mJmRlbGV0ZSB0aGlzLl9tb2RlbHNbdF19YXN5bmMgY29tcHV0ZVVuaWNvZGVIaWdobGlnaHRzKHQsbixzKXtjb25zdCByPXRoaXMuX2dldE1vZGVsKHQpO3JldHVybiByP0NpLmNvbXB1dGVVbmljb2RlSGlnaGxpZ2h0cyhyLG4scyk6e3JhbmdlczpbXSxoYXNNb3JlOiExLGFtYmlndW91c0NoYXJhY3RlckNvdW50OjAsaW52aXNpYmxlQ2hhcmFjdGVyQ291bnQ6MCxub25CYXNpY0FzY2lpQ2hhcmFjdGVyQ291bnQ6MH19YXN5bmMgY29tcHV0ZURpZmYodCxuLHMscil7Y29uc3QgaT10aGlzLl9nZXRNb2RlbCh0KSxsPXRoaXMuX2dldE1vZGVsKG4pO3JldHVybiFpfHwhbD9udWxsOlNlLmNvbXB1dGVEaWZmKGksbCxzLHIpfXN0YXRpYyBjb21wdXRlRGlmZih0LG4scyxyKXtjb25zdCBpPXI9PT0iYWR2YW5jZWQiP0lzLmdldERlZmF1bHQoKTpJcy5nZXRMZWdhY3koKSxsPXQuZ2V0TGluZXNDb250ZW50KCksbz1uLmdldExpbmVzQ29udGVudCgpLHU9aS5jb21wdXRlRGlmZihsLG8scyksYz11LmNoYW5nZXMubGVuZ3RoPjA/ITE6dGhpcy5fbW9kZWxzQXJlSWRlbnRpY2FsKHQsbik7ZnVuY3Rpb24gaChmKXtyZXR1cm4gZi5tYXAoZD0+e3ZhciBtO3JldHVybltkLm9yaWdpbmFsLnN0YXJ0TGluZU51bWJlcixkLm9yaWdpbmFsLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUsZC5tb2RpZmllZC5zdGFydExpbmVOdW1iZXIsZC5tb2RpZmllZC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLChtPWQuaW5uZXJDaGFuZ2VzKT09PW51bGx8fG09PT12b2lkIDA/dm9pZCAwOm0ubWFwKGc9PltnLm9yaWdpbmFsUmFuZ2Uuc3RhcnRMaW5lTnVtYmVyLGcub3JpZ2luYWxSYW5nZS5zdGFydENvbHVtbixnLm9yaWdpbmFsUmFuZ2UuZW5kTGluZU51bWJlcixnLm9yaWdpbmFsUmFuZ2UuZW5kQ29sdW1uLGcubW9kaWZpZWRSYW5nZS5zdGFydExpbmVOdW1iZXIsZy5tb2RpZmllZFJhbmdlLnN0YXJ0Q29sdW1uLGcubW9kaWZpZWRSYW5nZS5lbmRMaW5lTnVtYmVyLGcubW9kaWZpZWRSYW5nZS5lbmRDb2x1bW5dKV19KX1yZXR1cm57aWRlbnRpY2FsOmMscXVpdEVhcmx5OnUuaGl0VGltZW91dCxjaGFuZ2VzOmgodS5jaGFuZ2VzKSxtb3Zlczp1Lm1vdmVzLm1hcChmPT5bZi5saW5lUmFuZ2VNYXBwaW5nLm9yaWdpbmFsLnN0YXJ0TGluZU51bWJlcixmLmxpbmVSYW5nZU1hcHBpbmcub3JpZ2luYWwuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSxmLmxpbmVSYW5nZU1hcHBpbmcubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyLGYubGluZVJhbmdlTWFwcGluZy5tb2RpZmllZC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLGgoZi5jaGFuZ2VzKV0pfX1zdGF0aWMgX21vZGVsc0FyZUlkZW50aWNhbCh0LG4pe2NvbnN0IHM9dC5nZXRMaW5lQ291bnQoKSxyPW4uZ2V0TGluZUNvdW50KCk7aWYocyE9PXIpcmV0dXJuITE7Zm9yKGxldCBpPTE7aTw9cztpKyspe2NvbnN0IGw9dC5nZXRMaW5lQ29udGVudChpKSxvPW4uZ2V0TGluZUNvbnRlbnQoaSk7aWYobCE9PW8pcmV0dXJuITF9cmV0dXJuITB9YXN5bmMgY29tcHV0ZU1vcmVNaW5pbWFsRWRpdHModCxuLHMpe2NvbnN0IHI9dGhpcy5fZ2V0TW9kZWwodCk7aWYoIXIpcmV0dXJuIG47Y29uc3QgaT1bXTtsZXQgbDtuPW4uc2xpY2UoMCkuc29ydCgodSxjKT0+e2lmKHUucmFuZ2UmJmMucmFuZ2UpcmV0dXJuIEQuY29tcGFyZVJhbmdlc1VzaW5nU3RhcnRzKHUucmFuZ2UsYy5yYW5nZSk7Y29uc3QgaD11LnJhbmdlPzA6MSxmPWMucmFuZ2U/MDoxO3JldHVybiBoLWZ9KTtsZXQgbz0wO2ZvcihsZXQgdT0xO3U8bi5sZW5ndGg7dSsrKUQuZ2V0RW5kUG9zaXRpb24obltvXS5yYW5nZSkuZXF1YWxzKEQuZ2V0U3RhcnRQb3NpdGlvbihuW3VdLnJhbmdlKSk/KG5bb10ucmFuZ2U9RC5mcm9tUG9zaXRpb25zKEQuZ2V0U3RhcnRQb3NpdGlvbihuW29dLnJhbmdlKSxELmdldEVuZFBvc2l0aW9uKG5bdV0ucmFuZ2UpKSxuW29dLnRleHQrPW5bdV0udGV4dCk6KG8rKyxuW29dPW5bdV0pO24ubGVuZ3RoPW8rMTtmb3IobGV0e3JhbmdlOnUsdGV4dDpjLGVvbDpofW9mIG4pe2lmKHR5cGVvZiBoPT0ibnVtYmVyIiYmKGw9aCksRC5pc0VtcHR5KHUpJiYhYyljb250aW51ZTtjb25zdCBmPXIuZ2V0VmFsdWVJblJhbmdlKHUpO2lmKGM9Yy5yZXBsYWNlKC9cclxufFxufFxyL2csci5lb2wpLGY9PT1jKWNvbnRpbnVlO2lmKE1hdGgubWF4KGMubGVuZ3RoLGYubGVuZ3RoKT5TZS5fZGlmZkxpbWl0KXtpLnB1c2goe3JhbmdlOnUsdGV4dDpjfSk7Y29udGludWV9Y29uc3QgZD1NcihmLGMscyksbT1yLm9mZnNldEF0KEQubGlmdCh1KS5nZXRTdGFydFBvc2l0aW9uKCkpO2Zvcihjb25zdCBnIG9mIGQpe2NvbnN0IHg9ci5wb3NpdGlvbkF0KG0rZy5vcmlnaW5hbFN0YXJ0KSx2PXIucG9zaXRpb25BdChtK2cub3JpZ2luYWxTdGFydCtnLm9yaWdpbmFsTGVuZ3RoKSxOPXt0ZXh0OmMuc3Vic3RyKGcubW9kaWZpZWRTdGFydCxnLm1vZGlmaWVkTGVuZ3RoKSxyYW5nZTp7c3RhcnRMaW5lTnVtYmVyOngubGluZU51bWJlcixzdGFydENvbHVtbjp4LmNvbHVtbixlbmRMaW5lTnVtYmVyOnYubGluZU51bWJlcixlbmRDb2x1bW46di5jb2x1bW59fTtyLmdldFZhbHVlSW5SYW5nZShOLnJhbmdlKSE9PU4udGV4dCYmaS5wdXNoKE4pfX1yZXR1cm4gdHlwZW9mIGw9PSJudW1iZXIiJiZpLnB1c2goe2VvbDpsLHRleHQ6IiIscmFuZ2U6e3N0YXJ0TGluZU51bWJlcjowLHN0YXJ0Q29sdW1uOjAsZW5kTGluZU51bWJlcjowLGVuZENvbHVtbjowfX0pLGl9YXN5bmMgY29tcHV0ZUxpbmtzKHQpe2NvbnN0IG49dGhpcy5fZ2V0TW9kZWwodCk7cmV0dXJuIG4/Y2kobik6bnVsbH1hc3luYyBjb21wdXRlRGVmYXVsdERvY3VtZW50Q29sb3JzKHQpe2NvbnN0IG49dGhpcy5fZ2V0TW9kZWwodCk7cmV0dXJuIG4/bjEobik6bnVsbH1hc3luYyB0ZXh0dWFsU3VnZ2VzdCh0LG4scyxyKXtjb25zdCBpPW5ldyBldCxsPW5ldyBSZWdFeHAocyxyKSxvPW5ldyBTZXQ7ZTpmb3IoY29uc3QgdSBvZiB0KXtjb25zdCBjPXRoaXMuX2dldE1vZGVsKHUpO2lmKGMpe2Zvcihjb25zdCBoIG9mIGMud29yZHMobCkpaWYoIShoPT09bnx8IWlzTmFOKE51bWJlcihoKSkpJiYoby5hZGQoaCksby5zaXplPlNlLl9zdWdnZXN0aW9uc0xpbWl0KSlicmVhayBlfX1yZXR1cm57d29yZHM6QXJyYXkuZnJvbShvKSxkdXJhdGlvbjppLmVsYXBzZWQoKX19YXN5bmMgY29tcHV0ZVdvcmRSYW5nZXModCxuLHMscil7Y29uc3QgaT10aGlzLl9nZXRNb2RlbCh0KTtpZighaSlyZXR1cm4gT2JqZWN0LmNyZWF0ZShudWxsKTtjb25zdCBsPW5ldyBSZWdFeHAocyxyKSxvPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGxldCB1PW4uc3RhcnRMaW5lTnVtYmVyO3U8bi5lbmRMaW5lTnVtYmVyO3UrKyl7Y29uc3QgYz1pLmdldExpbmVXb3Jkcyh1LGwpO2Zvcihjb25zdCBoIG9mIGMpe2lmKCFpc05hTihOdW1iZXIoaC53b3JkKSkpY29udGludWU7bGV0IGY9b1toLndvcmRdO2Z8fChmPVtdLG9baC53b3JkXT1mKSxmLnB1c2goe3N0YXJ0TGluZU51bWJlcjp1LHN0YXJ0Q29sdW1uOmguc3RhcnRDb2x1bW4sZW5kTGluZU51bWJlcjp1LGVuZENvbHVtbjpoLmVuZENvbHVtbn0pfX1yZXR1cm4gb31hc3luYyBuYXZpZ2F0ZVZhbHVlU2V0KHQsbixzLHIsaSl7Y29uc3QgbD10aGlzLl9nZXRNb2RlbCh0KTtpZighbClyZXR1cm4gbnVsbDtjb25zdCBvPW5ldyBSZWdFeHAocixpKTtuLnN0YXJ0Q29sdW1uPT09bi5lbmRDb2x1bW4mJihuPXtzdGFydExpbmVOdW1iZXI6bi5zdGFydExpbmVOdW1iZXIsc3RhcnRDb2x1bW46bi5zdGFydENvbHVtbixlbmRMaW5lTnVtYmVyOm4uZW5kTGluZU51bWJlcixlbmRDb2x1bW46bi5lbmRDb2x1bW4rMX0pO2NvbnN0IHU9bC5nZXRWYWx1ZUluUmFuZ2UobiksYz1sLmdldFdvcmRBdFBvc2l0aW9uKHtsaW5lTnVtYmVyOm4uc3RhcnRMaW5lTnVtYmVyLGNvbHVtbjpuLnN0YXJ0Q29sdW1ufSxvKTtpZighYylyZXR1cm4gbnVsbDtjb25zdCBoPWwuZ2V0VmFsdWVJblJhbmdlKGMpO3JldHVybiBGdC5JTlNUQU5DRS5uYXZpZ2F0ZVZhbHVlU2V0KG4sdSxjLGgscyl9bG9hZEZvcmVpZ25Nb2R1bGUodCxuLHMpe2NvbnN0IGw9e2hvc3Q6c3Iocywobyx1KT0+dGhpcy5faG9zdC5maHIobyx1KSksZ2V0TWlycm9yTW9kZWxzOigpPT50aGlzLl9nZXRNb2RlbHMoKX07cmV0dXJuIHRoaXMuX2ZvcmVpZ25Nb2R1bGVGYWN0b3J5Pyh0aGlzLl9mb3JlaWduTW9kdWxlPXRoaXMuX2ZvcmVpZ25Nb2R1bGVGYWN0b3J5KGwsbiksUHJvbWlzZS5yZXNvbHZlKHZ0KHRoaXMuX2ZvcmVpZ25Nb2R1bGUpKSk6UHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJVbmV4cGVjdGVkIHVzYWdlIikpfWZtcih0LG4pe2lmKCF0aGlzLl9mb3JlaWduTW9kdWxlfHx0eXBlb2YgdGhpcy5fZm9yZWlnbk1vZHVsZVt0XSE9ImZ1bmN0aW9uIilyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJNaXNzaW5nIHJlcXVlc3RIYW5kbGVyIG9yIG1ldGhvZDogIit0KSk7dHJ5e3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fZm9yZWlnbk1vZHVsZVt0XS5hcHBseSh0aGlzLl9mb3JlaWduTW9kdWxlLG4pKX1jYXRjaChzKXtyZXR1cm4gUHJvbWlzZS5yZWplY3Qocyl9fX1TZS5fZGlmZkxpbWl0PTFlNSxTZS5fc3VnZ2VzdGlvbnNMaW1pdD0xZTQsdHlwZW9mIGltcG9ydFNjcmlwdHM9PSJmdW5jdGlvbiImJihnbG9iYWxUaGlzLm1vbmFjbz1waSgpKTtsZXQgUXQ9ITE7ZnVuY3Rpb24gcjEoZSl7aWYoUXQpcmV0dXJuO1F0PSEwO2NvbnN0IHQ9bmV3IFJyKG49PntnbG9iYWxUaGlzLnBvc3RNZXNzYWdlKG4pfSxuPT5uZXcgU2UobixlKSk7Z2xvYmFsVGhpcy5vbm1lc3NhZ2U9bj0+e3Qub25tZXNzYWdlKG4uZGF0YSl9fWdsb2JhbFRoaXMub25tZXNzYWdlPWU9PntRdHx8cjEobnVsbCl9fSkoKTsK",H3t=n=>Uint8Array.from(atob(n),e=>e.charCodeAt(0)),c_e=typeof window<"u"&&window.Blob&&new Blob([H3t(u_e)],{type:"text/javascript;charset=utf-8"});function U3t(n){let e;try{if(e=c_e&&(window.URL||window.webkitURL).createObjectURL(c_e),!e)throw"";const t=new Worker(e,{name:n==null?void 0:n.name});return t.addEventListener("error",()=>{(window.URL||window.webkitURL).revokeObjectURL(e)}),t}catch{return new Worker("data:text/javascript;base64,"+u_e,{name:n==null?void 0:n.name})}finally{e&&(window.URL||window.webkitURL).revokeObjectURL(e)}}const d_e="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NsYXNzIENhe2NvbnN0cnVjdG9yKCl7dGhpcy5saXN0ZW5lcnM9W10sdGhpcy51bmV4cGVjdGVkRXJyb3JIYW5kbGVyPWZ1bmN0aW9uKHQpe3NldFRpbWVvdXQoKCk9Pnt0aHJvdyB0LnN0YWNrP3V0LmlzRXJyb3JOb1RlbGVtZXRyeSh0KT9uZXcgdXQodC5tZXNzYWdlK2AKCmArdC5zdGFjayk6bmV3IEVycm9yKHQubWVzc2FnZStgCgpgK3Quc3RhY2spOnR9LDApfX1lbWl0KHQpe3RoaXMubGlzdGVuZXJzLmZvckVhY2gobj0+e24odCl9KX1vblVuZXhwZWN0ZWRFcnJvcih0KXt0aGlzLnVuZXhwZWN0ZWRFcnJvckhhbmRsZXIodCksdGhpcy5lbWl0KHQpfW9uVW5leHBlY3RlZEV4dGVybmFsRXJyb3IodCl7dGhpcy51bmV4cGVjdGVkRXJyb3JIYW5kbGVyKHQpfX1jb25zdCBrYT1uZXcgQ2E7ZnVuY3Rpb24gSXIoZSl7RWEoZSl8fGthLm9uVW5leHBlY3RlZEVycm9yKGUpfWZ1bmN0aW9uIERyKGUpe2lmKGUgaW5zdGFuY2VvZiBFcnJvcil7Y29uc3R7bmFtZTp0LG1lc3NhZ2U6bn09ZSxyPWUuc3RhY2t0cmFjZXx8ZS5zdGFjaztyZXR1cm57JGlzRXJyb3I6ITAsbmFtZTp0LG1lc3NhZ2U6bixzdGFjazpyLG5vVGVsZW1ldHJ5OnV0LmlzRXJyb3JOb1RlbGVtZXRyeShlKX19cmV0dXJuIGV9Y29uc3Qga249IkNhbmNlbGVkIjtmdW5jdGlvbiBFYShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIFJhPyEwOmUgaW5zdGFuY2VvZiBFcnJvciYmZS5uYW1lPT09a24mJmUubWVzc2FnZT09PWtufWNsYXNzIFJhIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoKXtzdXBlcihrbiksdGhpcy5uYW1lPXRoaXMubWVzc2FnZX19Y2xhc3MgdXQgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcih0KXtzdXBlcih0KSx0aGlzLm5hbWU9IkNvZGVFeHBlY3RlZEVycm9yIn1zdGF0aWMgZnJvbUVycm9yKHQpe2lmKHQgaW5zdGFuY2VvZiB1dClyZXR1cm4gdDtjb25zdCBuPW5ldyB1dDtyZXR1cm4gbi5tZXNzYWdlPXQubWVzc2FnZSxuLnN0YWNrPXQuc3RhY2ssbn1zdGF0aWMgaXNFcnJvck5vVGVsZW1ldHJ5KHQpe3JldHVybiB0Lm5hbWU9PT0iQ29kZUV4cGVjdGVkRXJyb3IifX1jbGFzcyAkZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQpe3N1cGVyKHR8fCJBbiB1bmV4cGVjdGVkIGJ1ZyBvY2N1cnJlZC4iKSxPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywkZS5wcm90b3R5cGUpfX1mdW5jdGlvbiBNYShlLHQpe2NvbnN0IG49dGhpcztsZXQgcj0hMSxpO3JldHVybiBmdW5jdGlvbigpe2lmKHIpcmV0dXJuIGk7aWYocj0hMCx0KXRyeXtpPWUuYXBwbHkobixhcmd1bWVudHMpfWZpbmFsbHl7dCgpfWVsc2UgaT1lLmFwcGx5KG4sYXJndW1lbnRzKTtyZXR1cm4gaX19dmFyIFF0OyhmdW5jdGlvbihlKXtmdW5jdGlvbiB0KGIpe3JldHVybiBiJiZ0eXBlb2YgYj09Im9iamVjdCImJnR5cGVvZiBiW1N5bWJvbC5pdGVyYXRvcl09PSJmdW5jdGlvbiJ9ZS5pcz10O2NvbnN0IG49T2JqZWN0LmZyZWV6ZShbXSk7ZnVuY3Rpb24gcigpe3JldHVybiBufWUuZW1wdHk9cjtmdW5jdGlvbippKGIpe3lpZWxkIGJ9ZS5zaW5nbGU9aTtmdW5jdGlvbiBzKGIpe3JldHVybiB0KGIpP2I6aShiKX1lLndyYXA9cztmdW5jdGlvbiBhKGIpe3JldHVybiBifHxufWUuZnJvbT1hO2Z1bmN0aW9uKm8oYil7Zm9yKGxldCBOPWIubGVuZ3RoLTE7Tj49MDtOLS0peWllbGQgYltOXX1lLnJldmVyc2U9bztmdW5jdGlvbiBsKGIpe3JldHVybiFifHxiW1N5bWJvbC5pdGVyYXRvcl0oKS5uZXh0KCkuZG9uZT09PSEwfWUuaXNFbXB0eT1sO2Z1bmN0aW9uIHUoYil7cmV0dXJuIGJbU3ltYm9sLml0ZXJhdG9yXSgpLm5leHQoKS52YWx1ZX1lLmZpcnN0PXU7ZnVuY3Rpb24gZihiLE4pe2Zvcihjb25zdCBTIG9mIGIpaWYoTihTKSlyZXR1cm4hMDtyZXR1cm4hMX1lLnNvbWU9ZjtmdW5jdGlvbiBoKGIsTil7Zm9yKGNvbnN0IFMgb2YgYilpZihOKFMpKXJldHVybiBTfWUuZmluZD1oO2Z1bmN0aW9uKmQoYixOKXtmb3IoY29uc3QgUyBvZiBiKU4oUykmJih5aWVsZCBTKX1lLmZpbHRlcj1kO2Z1bmN0aW9uKmcoYixOKXtsZXQgUz0wO2Zvcihjb25zdCB3IG9mIGIpeWllbGQgTih3LFMrKyl9ZS5tYXA9ZztmdW5jdGlvbiptKC4uLmIpe2Zvcihjb25zdCBOIG9mIGIpeWllbGQqTn1lLmNvbmNhdD1tO2Z1bmN0aW9uIHYoYixOLFMpe2xldCB3PVM7Zm9yKGNvbnN0IEwgb2YgYil3PU4odyxMKTtyZXR1cm4gd31lLnJlZHVjZT12O2Z1bmN0aW9uKnAoYixOLFM9Yi5sZW5ndGgpe2ZvcihOPDAmJihOKz1iLmxlbmd0aCksUzwwP1MrPWIubGVuZ3RoOlM+Yi5sZW5ndGgmJihTPWIubGVuZ3RoKTtOPFM7TisrKXlpZWxkIGJbTl19ZS5zbGljZT1wO2Z1bmN0aW9uIHgoYixOPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSl7Y29uc3QgUz1bXTtpZihOPT09MClyZXR1cm5bUyxiXTtjb25zdCB3PWJbU3ltYm9sLml0ZXJhdG9yXSgpO2ZvcihsZXQgTD0wO0w8TjtMKyspe2NvbnN0IEE9dy5uZXh0KCk7aWYoQS5kb25lKXJldHVybltTLGUuZW1wdHkoKV07Uy5wdXNoKEEudmFsdWUpfXJldHVybltTLHtbU3ltYm9sLml0ZXJhdG9yXSgpe3JldHVybiB3fX1dfWUuY29uc3VtZT14O2FzeW5jIGZ1bmN0aW9uIHkoYil7Y29uc3QgTj1bXTtmb3IgYXdhaXQoY29uc3QgUyBvZiBiKU4ucHVzaChTKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKE4pfWUuYXN5bmNUb0FycmF5PXl9KShRdHx8KFF0PXt9KSk7ZnVuY3Rpb24gWHUoZSl7cmV0dXJuIGV9ZnVuY3Rpb24gUXUoZSx0KXt9ZnVuY3Rpb24gVnIoZSl7aWYoUXQuaXMoZSkpe2NvbnN0IHQ9W107Zm9yKGNvbnN0IG4gb2YgZSlpZihuKXRyeXtuLmRpc3Bvc2UoKX1jYXRjaChyKXt0LnB1c2gocil9aWYodC5sZW5ndGg9PT0xKXRocm93IHRbMF07aWYodC5sZW5ndGg+MSl0aHJvdyBuZXcgQWdncmVnYXRlRXJyb3IodCwiRW5jb3VudGVyZWQgZXJyb3JzIHdoaWxlIGRpc3Bvc2luZyBvZiBzdG9yZSIpO3JldHVybiBBcnJheS5pc0FycmF5KGUpP1tdOmV9ZWxzZSBpZihlKXJldHVybiBlLmRpc3Bvc2UoKSxlfWZ1bmN0aW9uIFRhKC4uLmUpe3JldHVybiBadCgoKT0+VnIoZSkpfWZ1bmN0aW9uIFp0KGUpe3JldHVybntkaXNwb3NlOk1hKCgpPT57ZSgpfSl9fWNsYXNzIGN0e2NvbnN0cnVjdG9yKCl7dGhpcy5fdG9EaXNwb3NlPW5ldyBTZXQsdGhpcy5faXNEaXNwb3NlZD0hMX1kaXNwb3NlKCl7dGhpcy5faXNEaXNwb3NlZHx8KHRoaXMuX2lzRGlzcG9zZWQ9ITAsdGhpcy5jbGVhcigpKX1nZXQgaXNEaXNwb3NlZCgpe3JldHVybiB0aGlzLl9pc0Rpc3Bvc2VkfWNsZWFyKCl7aWYodGhpcy5fdG9EaXNwb3NlLnNpemUhPT0wKXRyeXtWcih0aGlzLl90b0Rpc3Bvc2UpfWZpbmFsbHl7dGhpcy5fdG9EaXNwb3NlLmNsZWFyKCl9fWFkZCh0KXtpZighdClyZXR1cm4gdDtpZih0PT09dGhpcyl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCByZWdpc3RlciBhIGRpc3Bvc2FibGUgb24gaXRzZWxmISIpO3JldHVybiB0aGlzLl9pc0Rpc3Bvc2VkP2N0LkRJU0FCTEVfRElTUE9TRURfV0FSTklORzp0aGlzLl90b0Rpc3Bvc2UuYWRkKHQpLHR9ZGVsZXRlQW5kTGVhayh0KXt0JiZ0aGlzLl90b0Rpc3Bvc2UuaGFzKHQpJiZ0aGlzLl90b0Rpc3Bvc2UuZGVsZXRlKHQpfX1jdC5ESVNBQkxFX0RJU1BPU0VEX1dBUk5JTkc9ITE7Y2xhc3Mga3R7Y29uc3RydWN0b3IoKXt0aGlzLl9zdG9yZT1uZXcgY3QsdGhpcy5fc3RvcmV9ZGlzcG9zZSgpe3RoaXMuX3N0b3JlLmRpc3Bvc2UoKX1fcmVnaXN0ZXIodCl7aWYodD09PXRoaXMpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmVnaXN0ZXIgYSBkaXNwb3NhYmxlIG9uIGl0c2VsZiEiKTtyZXR1cm4gdGhpcy5fc3RvcmUuYWRkKHQpfX1rdC5Ob25lPU9iamVjdC5mcmVlemUoe2Rpc3Bvc2UoKXt9fSk7Y2xhc3MgUXtjb25zdHJ1Y3Rvcih0KXt0aGlzLmVsZW1lbnQ9dCx0aGlzLm5leHQ9US5VbmRlZmluZWQsdGhpcy5wcmV2PVEuVW5kZWZpbmVkfX1RLlVuZGVmaW5lZD1uZXcgUSh2b2lkIDApO2NsYXNzIFBhe2NvbnN0cnVjdG9yKCl7dGhpcy5fZmlyc3Q9US5VbmRlZmluZWQsdGhpcy5fbGFzdD1RLlVuZGVmaW5lZCx0aGlzLl9zaXplPTB9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5fc2l6ZX1pc0VtcHR5KCl7cmV0dXJuIHRoaXMuX2ZpcnN0PT09US5VbmRlZmluZWR9Y2xlYXIoKXtsZXQgdD10aGlzLl9maXJzdDtmb3IoO3QhPT1RLlVuZGVmaW5lZDspe2NvbnN0IG49dC5uZXh0O3QucHJldj1RLlVuZGVmaW5lZCx0Lm5leHQ9US5VbmRlZmluZWQsdD1ufXRoaXMuX2ZpcnN0PVEuVW5kZWZpbmVkLHRoaXMuX2xhc3Q9US5VbmRlZmluZWQsdGhpcy5fc2l6ZT0wfXVuc2hpZnQodCl7cmV0dXJuIHRoaXMuX2luc2VydCh0LCExKX1wdXNoKHQpe3JldHVybiB0aGlzLl9pbnNlcnQodCwhMCl9X2luc2VydCh0LG4pe2NvbnN0IHI9bmV3IFEodCk7aWYodGhpcy5fZmlyc3Q9PT1RLlVuZGVmaW5lZCl0aGlzLl9maXJzdD1yLHRoaXMuX2xhc3Q9cjtlbHNlIGlmKG4pe2NvbnN0IHM9dGhpcy5fbGFzdDt0aGlzLl9sYXN0PXIsci5wcmV2PXMscy5uZXh0PXJ9ZWxzZXtjb25zdCBzPXRoaXMuX2ZpcnN0O3RoaXMuX2ZpcnN0PXIsci5uZXh0PXMscy5wcmV2PXJ9dGhpcy5fc2l6ZSs9MTtsZXQgaT0hMTtyZXR1cm4oKT0+e2l8fChpPSEwLHRoaXMuX3JlbW92ZShyKSl9fXNoaWZ0KCl7aWYodGhpcy5fZmlyc3QhPT1RLlVuZGVmaW5lZCl7Y29uc3QgdD10aGlzLl9maXJzdC5lbGVtZW50O3JldHVybiB0aGlzLl9yZW1vdmUodGhpcy5fZmlyc3QpLHR9fXBvcCgpe2lmKHRoaXMuX2xhc3QhPT1RLlVuZGVmaW5lZCl7Y29uc3QgdD10aGlzLl9sYXN0LmVsZW1lbnQ7cmV0dXJuIHRoaXMuX3JlbW92ZSh0aGlzLl9sYXN0KSx0fX1fcmVtb3ZlKHQpe2lmKHQucHJldiE9PVEuVW5kZWZpbmVkJiZ0Lm5leHQhPT1RLlVuZGVmaW5lZCl7Y29uc3Qgbj10LnByZXY7bi5uZXh0PXQubmV4dCx0Lm5leHQucHJldj1ufWVsc2UgdC5wcmV2PT09US5VbmRlZmluZWQmJnQubmV4dD09PVEuVW5kZWZpbmVkPyh0aGlzLl9maXJzdD1RLlVuZGVmaW5lZCx0aGlzLl9sYXN0PVEuVW5kZWZpbmVkKTp0Lm5leHQ9PT1RLlVuZGVmaW5lZD8odGhpcy5fbGFzdD10aGlzLl9sYXN0LnByZXYsdGhpcy5fbGFzdC5uZXh0PVEuVW5kZWZpbmVkKTp0LnByZXY9PT1RLlVuZGVmaW5lZCYmKHRoaXMuX2ZpcnN0PXRoaXMuX2ZpcnN0Lm5leHQsdGhpcy5fZmlyc3QucHJldj1RLlVuZGVmaW5lZCk7dGhpcy5fc2l6ZS09MX0qW1N5bWJvbC5pdGVyYXRvcl0oKXtsZXQgdD10aGlzLl9maXJzdDtmb3IoO3QhPT1RLlVuZGVmaW5lZDspeWllbGQgdC5lbGVtZW50LHQ9dC5uZXh0fX1jb25zdCBGYT1nbG9iYWxUaGlzLnBlcmZvcm1hbmNlJiZ0eXBlb2YgZ2xvYmFsVGhpcy5wZXJmb3JtYW5jZS5ub3c9PSJmdW5jdGlvbiI7Y2xhc3MgWXR7c3RhdGljIGNyZWF0ZSh0KXtyZXR1cm4gbmV3IFl0KHQpfWNvbnN0cnVjdG9yKHQpe3RoaXMuX25vdz1GYSYmdD09PSExP0RhdGUubm93Omdsb2JhbFRoaXMucGVyZm9ybWFuY2Uubm93LmJpbmQoZ2xvYmFsVGhpcy5wZXJmb3JtYW5jZSksdGhpcy5fc3RhcnRUaW1lPXRoaXMuX25vdygpLHRoaXMuX3N0b3BUaW1lPS0xfXN0b3AoKXt0aGlzLl9zdG9wVGltZT10aGlzLl9ub3coKX1lbGFwc2VkKCl7cmV0dXJuIHRoaXMuX3N0b3BUaW1lIT09LTE/dGhpcy5fc3RvcFRpbWUtdGhpcy5fc3RhcnRUaW1lOnRoaXMuX25vdygpLXRoaXMuX3N0YXJ0VGltZX19dmFyIEVuOyhmdW5jdGlvbihlKXtlLk5vbmU9KCk9Pmt0Lk5vbmU7ZnVuY3Rpb24gdChDLF8pe3JldHVybiBoKEMsKCk9Pnt9LDAsdm9pZCAwLCEwLHZvaWQgMCxfKX1lLmRlZmVyPXQ7ZnVuY3Rpb24gbihDKXtyZXR1cm4oXyxUPW51bGwsRik9PntsZXQgVj0hMSxPO3JldHVybiBPPUMoTT0+e2lmKCFWKXJldHVybiBPP08uZGlzcG9zZSgpOlY9ITAsXy5jYWxsKFQsTSl9LG51bGwsRiksViYmTy5kaXNwb3NlKCksT319ZS5vbmNlPW47ZnVuY3Rpb24gcihDLF8sVCl7cmV0dXJuIHUoKEYsVj1udWxsLE8pPT5DKE09PkYuY2FsbChWLF8oTSkpLG51bGwsTyksVCl9ZS5tYXA9cjtmdW5jdGlvbiBpKEMsXyxUKXtyZXR1cm4gdSgoRixWPW51bGwsTyk9PkMoTT0+e18oTSksRi5jYWxsKFYsTSl9LG51bGwsTyksVCl9ZS5mb3JFYWNoPWk7ZnVuY3Rpb24gcyhDLF8sVCl7cmV0dXJuIHUoKEYsVj1udWxsLE8pPT5DKE09Pl8oTSkmJkYuY2FsbChWLE0pLG51bGwsTyksVCl9ZS5maWx0ZXI9cztmdW5jdGlvbiBhKEMpe3JldHVybiBDfWUuc2lnbmFsPWE7ZnVuY3Rpb24gbyguLi5DKXtyZXR1cm4oXyxUPW51bGwsRik9Pntjb25zdCBWPVRhKC4uLkMubWFwKE89Pk8oTT0+Xy5jYWxsKFQsTSkpKSk7cmV0dXJuIGYoVixGKX19ZS5hbnk9bztmdW5jdGlvbiBsKEMsXyxULEYpe2xldCBWPVQ7cmV0dXJuIHIoQyxPPT4oVj1fKFYsTyksViksRil9ZS5yZWR1Y2U9bDtmdW5jdGlvbiB1KEMsXyl7bGV0IFQ7Y29uc3QgRj17b25XaWxsQWRkRmlyc3RMaXN0ZW5lcigpe1Q9QyhWLmZpcmUsVil9LG9uRGlkUmVtb3ZlTGFzdExpc3RlbmVyKCl7VD09bnVsbHx8VC5kaXNwb3NlKCl9fSxWPW5ldyBBZShGKTtyZXR1cm4gXz09bnVsbHx8Xy5hZGQoViksVi5ldmVudH1mdW5jdGlvbiBmKEMsXyl7cmV0dXJuIF8gaW5zdGFuY2VvZiBBcnJheT9fLnB1c2goQyk6XyYmXy5hZGQoQyksQ31mdW5jdGlvbiBoKEMsXyxUPTEwMCxGPSExLFY9ITEsTyxNKXtsZXQgayxQLEQscT0wLEI7Y29uc3Qgej17bGVha1dhcm5pbmdUaHJlc2hvbGQ6TyxvbldpbGxBZGRGaXJzdExpc3RlbmVyKCl7az1DKGxlPT57cSsrLFA9XyhQLGxlKSxGJiYhRCYmKGRlLmZpcmUoUCksUD12b2lkIDApLEI9KCk9Pntjb25zdCBiZT1QO1A9dm9pZCAwLEQ9dm9pZCAwLCghRnx8cT4xKSYmZGUuZmlyZShiZSkscT0wfSx0eXBlb2YgVD09Im51bWJlciI/KGNsZWFyVGltZW91dChEKSxEPXNldFRpbWVvdXQoQixUKSk6RD09PXZvaWQgMCYmKEQ9MCxxdWV1ZU1pY3JvdGFzayhCKSl9KX0sb25XaWxsUmVtb3ZlTGlzdGVuZXIoKXtWJiZxPjAmJihCPT1udWxsfHxCKCkpfSxvbkRpZFJlbW92ZUxhc3RMaXN0ZW5lcigpe0I9dm9pZCAwLGsuZGlzcG9zZSgpfX0sZGU9bmV3IEFlKHopO3JldHVybiBNPT1udWxsfHxNLmFkZChkZSksZGUuZXZlbnR9ZS5kZWJvdW5jZT1oO2Z1bmN0aW9uIGQoQyxfPTAsVCl7cmV0dXJuIGUuZGVib3VuY2UoQywoRixWKT0+Rj8oRi5wdXNoKFYpLEYpOltWXSxfLHZvaWQgMCwhMCx2b2lkIDAsVCl9ZS5hY2N1bXVsYXRlPWQ7ZnVuY3Rpb24gZyhDLF89KEYsVik9PkY9PT1WLFQpe2xldCBGPSEwLFY7cmV0dXJuIHMoQyxPPT57Y29uc3QgTT1GfHwhXyhPLFYpO3JldHVybiBGPSExLFY9TyxNfSxUKX1lLmxhdGNoPWc7ZnVuY3Rpb24gbShDLF8sVCl7cmV0dXJuW2UuZmlsdGVyKEMsXyxUKSxlLmZpbHRlcihDLEY9PiFfKEYpLFQpXX1lLnNwbGl0PW07ZnVuY3Rpb24gdihDLF89ITEsVD1bXSxGKXtsZXQgVj1ULnNsaWNlKCksTz1DKFA9PntWP1YucHVzaChQKTprLmZpcmUoUCl9KTtGJiZGLmFkZChPKTtjb25zdCBNPSgpPT57Vj09bnVsbHx8Vi5mb3JFYWNoKFA9PmsuZmlyZShQKSksVj1udWxsfSxrPW5ldyBBZSh7b25XaWxsQWRkRmlyc3RMaXN0ZW5lcigpe098fChPPUMoUD0+ay5maXJlKFApKSxGJiZGLmFkZChPKSl9LG9uRGlkQWRkRmlyc3RMaXN0ZW5lcigpe1YmJihfP3NldFRpbWVvdXQoTSk6TSgpKX0sb25EaWRSZW1vdmVMYXN0TGlzdGVuZXIoKXtPJiZPLmRpc3Bvc2UoKSxPPW51bGx9fSk7cmV0dXJuIEYmJkYuYWRkKGspLGsuZXZlbnR9ZS5idWZmZXI9djtmdW5jdGlvbiBwKEMsXyl7cmV0dXJuKEYsVixPKT0+e2NvbnN0IE09XyhuZXcgeSk7cmV0dXJuIEMoZnVuY3Rpb24oayl7Y29uc3QgUD1NLmV2YWx1YXRlKGspO1AhPT14JiZGLmNhbGwoVixQKX0sdm9pZCAwLE8pfX1lLmNoYWluPXA7Y29uc3QgeD1TeW1ib2woIkhhbHRDaGFpbmFibGUiKTtjbGFzcyB5e2NvbnN0cnVjdG9yKCl7dGhpcy5zdGVwcz1bXX1tYXAoXyl7cmV0dXJuIHRoaXMuc3RlcHMucHVzaChfKSx0aGlzfWZvckVhY2goXyl7cmV0dXJuIHRoaXMuc3RlcHMucHVzaChUPT4oXyhUKSxUKSksdGhpc31maWx0ZXIoXyl7cmV0dXJuIHRoaXMuc3RlcHMucHVzaChUPT5fKFQpP1Q6eCksdGhpc31yZWR1Y2UoXyxUKXtsZXQgRj1UO3JldHVybiB0aGlzLnN0ZXBzLnB1c2goVj0+KEY9XyhGLFYpLEYpKSx0aGlzfWxhdGNoKF89KFQsRik9PlQ9PT1GKXtsZXQgVD0hMCxGO3JldHVybiB0aGlzLnN0ZXBzLnB1c2goVj0+e2NvbnN0IE89VHx8IV8oVixGKTtyZXR1cm4gVD0hMSxGPVYsTz9WOnh9KSx0aGlzfWV2YWx1YXRlKF8pe2Zvcihjb25zdCBUIG9mIHRoaXMuc3RlcHMpaWYoXz1UKF8pLF89PT14KWJyZWFrO3JldHVybiBffX1mdW5jdGlvbiBiKEMsXyxUPUY9PkYpe2NvbnN0IEY9KC4uLmspPT5NLmZpcmUoVCguLi5rKSksVj0oKT0+Qy5vbihfLEYpLE89KCk9PkMucmVtb3ZlTGlzdGVuZXIoXyxGKSxNPW5ldyBBZSh7b25XaWxsQWRkRmlyc3RMaXN0ZW5lcjpWLG9uRGlkUmVtb3ZlTGFzdExpc3RlbmVyOk99KTtyZXR1cm4gTS5ldmVudH1lLmZyb21Ob2RlRXZlbnRFbWl0dGVyPWI7ZnVuY3Rpb24gTihDLF8sVD1GPT5GKXtjb25zdCBGPSguLi5rKT0+TS5maXJlKFQoLi4uaykpLFY9KCk9PkMuYWRkRXZlbnRMaXN0ZW5lcihfLEYpLE89KCk9PkMucmVtb3ZlRXZlbnRMaXN0ZW5lcihfLEYpLE09bmV3IEFlKHtvbldpbGxBZGRGaXJzdExpc3RlbmVyOlYsb25EaWRSZW1vdmVMYXN0TGlzdGVuZXI6T30pO3JldHVybiBNLmV2ZW50fWUuZnJvbURPTUV2ZW50RW1pdHRlcj1OO2Z1bmN0aW9uIFMoQyl7cmV0dXJuIG5ldyBQcm9taXNlKF89Pm4oQykoXykpfWUudG9Qcm9taXNlPVM7ZnVuY3Rpb24gdyhDKXtjb25zdCBfPW5ldyBBZTtyZXR1cm4gQy50aGVuKFQ9PntfLmZpcmUoVCl9LCgpPT57Xy5maXJlKHZvaWQgMCl9KS5maW5hbGx5KCgpPT57Xy5kaXNwb3NlKCl9KSxfLmV2ZW50fWUuZnJvbVByb21pc2U9dztmdW5jdGlvbiBMKEMsXyxUKXtyZXR1cm4gXyhUKSxDKEY9Pl8oRikpfWUucnVuQW5kU3Vic2NyaWJlPUw7Y2xhc3MgQXtjb25zdHJ1Y3RvcihfLFQpe3RoaXMuX29ic2VydmFibGU9Xyx0aGlzLl9jb3VudGVyPTAsdGhpcy5faGFzQ2hhbmdlZD0hMTtjb25zdCBGPXtvbldpbGxBZGRGaXJzdExpc3RlbmVyOigpPT57Xy5hZGRPYnNlcnZlcih0aGlzKX0sb25EaWRSZW1vdmVMYXN0TGlzdGVuZXI6KCk9PntfLnJlbW92ZU9ic2VydmVyKHRoaXMpfX07dGhpcy5lbWl0dGVyPW5ldyBBZShGKSxUJiZULmFkZCh0aGlzLmVtaXR0ZXIpfWJlZ2luVXBkYXRlKF8pe3RoaXMuX2NvdW50ZXIrK31oYW5kbGVQb3NzaWJsZUNoYW5nZShfKXt9aGFuZGxlQ2hhbmdlKF8sVCl7dGhpcy5faGFzQ2hhbmdlZD0hMH1lbmRVcGRhdGUoXyl7dGhpcy5fY291bnRlci0tLHRoaXMuX2NvdW50ZXI9PT0wJiYodGhpcy5fb2JzZXJ2YWJsZS5yZXBvcnRDaGFuZ2VzKCksdGhpcy5faGFzQ2hhbmdlZCYmKHRoaXMuX2hhc0NoYW5nZWQ9ITEsdGhpcy5lbWl0dGVyLmZpcmUodGhpcy5fb2JzZXJ2YWJsZS5nZXQoKSkpKX19ZnVuY3Rpb24gUihDLF8pe3JldHVybiBuZXcgQShDLF8pLmVtaXR0ZXIuZXZlbnR9ZS5mcm9tT2JzZXJ2YWJsZT1SO2Z1bmN0aW9uIEkoQyl7cmV0dXJuKF8sVCxGKT0+e2xldCBWPTAsTz0hMTtjb25zdCBNPXtiZWdpblVwZGF0ZSgpe1YrK30sZW5kVXBkYXRlKCl7Vi0tLFY9PT0wJiYoQy5yZXBvcnRDaGFuZ2VzKCksTyYmKE89ITEsXy5jYWxsKFQpKSl9LGhhbmRsZVBvc3NpYmxlQ2hhbmdlKCl7fSxoYW5kbGVDaGFuZ2UoKXtPPSEwfX07Qy5hZGRPYnNlcnZlcihNKSxDLnJlcG9ydENoYW5nZXMoKTtjb25zdCBrPXtkaXNwb3NlKCl7Qy5yZW1vdmVPYnNlcnZlcihNKX19O3JldHVybiBGIGluc3RhbmNlb2YgY3Q/Ri5hZGQoayk6QXJyYXkuaXNBcnJheShGKSYmRi5wdXNoKGspLGt9fWUuZnJvbU9ic2VydmFibGVMaWdodD1JfSkoRW58fChFbj17fSkpO2NsYXNzIGZ0e2NvbnN0cnVjdG9yKHQpe3RoaXMubGlzdGVuZXJDb3VudD0wLHRoaXMuaW52b2NhdGlvbkNvdW50PTAsdGhpcy5lbGFwc2VkT3ZlcmFsbD0wLHRoaXMuZHVyYXRpb25zPVtdLHRoaXMubmFtZT1gJHt0fV8ke2Z0Ll9pZFBvb2wrK31gLGZ0LmFsbC5hZGQodGhpcyl9c3RhcnQodCl7dGhpcy5fc3RvcFdhdGNoPW5ldyBZdCx0aGlzLmxpc3RlbmVyQ291bnQ9dH1zdG9wKCl7aWYodGhpcy5fc3RvcFdhdGNoKXtjb25zdCB0PXRoaXMuX3N0b3BXYXRjaC5lbGFwc2VkKCk7dGhpcy5kdXJhdGlvbnMucHVzaCh0KSx0aGlzLmVsYXBzZWRPdmVyYWxsKz10LHRoaXMuaW52b2NhdGlvbkNvdW50Kz0xLHRoaXMuX3N0b3BXYXRjaD12b2lkIDB9fX1mdC5hbGw9bmV3IFNldCxmdC5faWRQb29sPTA7bGV0IElhPS0xO2NsYXNzIERhe2NvbnN0cnVjdG9yKHQsbj1NYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDE4KS5zbGljZSgyLDUpKXt0aGlzLnRocmVzaG9sZD10LHRoaXMubmFtZT1uLHRoaXMuX3dhcm5Db3VudGRvd249MH1kaXNwb3NlKCl7dmFyIHQ7KHQ9dGhpcy5fc3RhY2tzKT09PW51bGx8fHQ9PT12b2lkIDB8fHQuY2xlYXIoKX1jaGVjayh0LG4pe2NvbnN0IHI9dGhpcy50aHJlc2hvbGQ7aWYocjw9MHx8bjxyKXJldHVybjt0aGlzLl9zdGFja3N8fCh0aGlzLl9zdGFja3M9bmV3IE1hcCk7Y29uc3QgaT10aGlzLl9zdGFja3MuZ2V0KHQudmFsdWUpfHwwO2lmKHRoaXMuX3N0YWNrcy5zZXQodC52YWx1ZSxpKzEpLHRoaXMuX3dhcm5Db3VudGRvd24tPTEsdGhpcy5fd2FybkNvdW50ZG93bjw9MCl7dGhpcy5fd2FybkNvdW50ZG93bj1yKi41O2xldCBzLGE9MDtmb3IoY29uc3RbbyxsXW9mIHRoaXMuX3N0YWNrcykoIXN8fGE8bCkmJihzPW8sYT1sKX1yZXR1cm4oKT0+e2NvbnN0IHM9dGhpcy5fc3RhY2tzLmdldCh0LnZhbHVlKXx8MDt0aGlzLl9zdGFja3Muc2V0KHQudmFsdWUscy0xKX19fWNsYXNzIFJue3N0YXRpYyBjcmVhdGUoKXt2YXIgdDtyZXR1cm4gbmV3IFJuKCh0PW5ldyBFcnJvcigpLnN0YWNrKSE9PW51bGwmJnQhPT12b2lkIDA/dDoiIil9Y29uc3RydWN0b3IodCl7dGhpcy52YWx1ZT10fXByaW50KCl7fX1jbGFzcyBNbntjb25zdHJ1Y3Rvcih0KXt0aGlzLnZhbHVlPXR9fWNvbnN0IFZhPTI7Y2xhc3MgQWV7Y29uc3RydWN0b3IodCl7dmFyIG4scixpLHMsYTt0aGlzLl9zaXplPTAsdGhpcy5fb3B0aW9ucz10LHRoaXMuX2xlYWthZ2VNb249ISgobj10aGlzLl9vcHRpb25zKT09PW51bGx8fG49PT12b2lkIDApJiZuLmxlYWtXYXJuaW5nVGhyZXNob2xkP25ldyBEYSgoaT0ocj10aGlzLl9vcHRpb25zKT09PW51bGx8fHI9PT12b2lkIDA/dm9pZCAwOnIubGVha1dhcm5pbmdUaHJlc2hvbGQpIT09bnVsbCYmaSE9PXZvaWQgMD9pOklhKTp2b2lkIDAsdGhpcy5fcGVyZk1vbj0hKChzPXRoaXMuX29wdGlvbnMpPT09bnVsbHx8cz09PXZvaWQgMCkmJnMuX3Byb2ZOYW1lP25ldyBmdCh0aGlzLl9vcHRpb25zLl9wcm9mTmFtZSk6dm9pZCAwLHRoaXMuX2RlbGl2ZXJ5UXVldWU9KGE9dGhpcy5fb3B0aW9ucyk9PT1udWxsfHxhPT09dm9pZCAwP3ZvaWQgMDphLmRlbGl2ZXJ5UXVldWV9ZGlzcG9zZSgpe3ZhciB0LG4scixpO3RoaXMuX2Rpc3Bvc2VkfHwodGhpcy5fZGlzcG9zZWQ9ITAsKCh0PXRoaXMuX2RlbGl2ZXJ5UXVldWUpPT09bnVsbHx8dD09PXZvaWQgMD92b2lkIDA6dC5jdXJyZW50KT09PXRoaXMmJnRoaXMuX2RlbGl2ZXJ5UXVldWUucmVzZXQoKSx0aGlzLl9saXN0ZW5lcnMmJih0aGlzLl9saXN0ZW5lcnM9dm9pZCAwLHRoaXMuX3NpemU9MCksKHI9KG49dGhpcy5fb3B0aW9ucyk9PT1udWxsfHxuPT09dm9pZCAwP3ZvaWQgMDpuLm9uRGlkUmVtb3ZlTGFzdExpc3RlbmVyKT09PW51bGx8fHI9PT12b2lkIDB8fHIuY2FsbChuKSwoaT10aGlzLl9sZWFrYWdlTW9uKT09PW51bGx8fGk9PT12b2lkIDB8fGkuZGlzcG9zZSgpKX1nZXQgZXZlbnQoKXt2YXIgdDtyZXR1cm4odD10aGlzLl9ldmVudCkhPT1udWxsJiZ0IT09dm9pZCAwfHwodGhpcy5fZXZlbnQ9KG4scixpKT0+e3ZhciBzLGEsbyxsLHU7aWYodGhpcy5fbGVha2FnZU1vbiYmdGhpcy5fc2l6ZT50aGlzLl9sZWFrYWdlTW9uLnRocmVzaG9sZCozfHx0aGlzLl9kaXNwb3NlZClyZXR1cm4ga3QuTm9uZTtyJiYobj1uLmJpbmQocikpO2NvbnN0IGY9bmV3IE1uKG4pO2xldCBoO3RoaXMuX2xlYWthZ2VNb24mJnRoaXMuX3NpemU+PU1hdGguY2VpbCh0aGlzLl9sZWFrYWdlTW9uLnRocmVzaG9sZCouMikmJihmLnN0YWNrPVJuLmNyZWF0ZSgpLGg9dGhpcy5fbGVha2FnZU1vbi5jaGVjayhmLnN0YWNrLHRoaXMuX3NpemUrMSkpLHRoaXMuX2xpc3RlbmVycz90aGlzLl9saXN0ZW5lcnMgaW5zdGFuY2VvZiBNbj8oKHU9dGhpcy5fZGVsaXZlcnlRdWV1ZSkhPT1udWxsJiZ1IT09dm9pZCAwfHwodGhpcy5fZGVsaXZlcnlRdWV1ZT1uZXcgT2EpLHRoaXMuX2xpc3RlbmVycz1bdGhpcy5fbGlzdGVuZXJzLGZdKTp0aGlzLl9saXN0ZW5lcnMucHVzaChmKTooKGE9KHM9dGhpcy5fb3B0aW9ucyk9PT1udWxsfHxzPT09dm9pZCAwP3ZvaWQgMDpzLm9uV2lsbEFkZEZpcnN0TGlzdGVuZXIpPT09bnVsbHx8YT09PXZvaWQgMHx8YS5jYWxsKHMsdGhpcyksdGhpcy5fbGlzdGVuZXJzPWYsKGw9KG89dGhpcy5fb3B0aW9ucyk9PT1udWxsfHxvPT09dm9pZCAwP3ZvaWQgMDpvLm9uRGlkQWRkRmlyc3RMaXN0ZW5lcik9PT1udWxsfHxsPT09dm9pZCAwfHxsLmNhbGwobyx0aGlzKSksdGhpcy5fc2l6ZSsrO2NvbnN0IGQ9WnQoKCk9PntoPT1udWxsfHxoKCksdGhpcy5fcmVtb3ZlTGlzdGVuZXIoZil9KTtyZXR1cm4gaSBpbnN0YW5jZW9mIGN0P2kuYWRkKGQpOkFycmF5LmlzQXJyYXkoaSkmJmkucHVzaChkKSxkfSksdGhpcy5fZXZlbnR9X3JlbW92ZUxpc3RlbmVyKHQpe3ZhciBuLHIsaSxzO2lmKChyPShuPXRoaXMuX29wdGlvbnMpPT09bnVsbHx8bj09PXZvaWQgMD92b2lkIDA6bi5vbldpbGxSZW1vdmVMaXN0ZW5lcik9PT1udWxsfHxyPT09dm9pZCAwfHxyLmNhbGwobix0aGlzKSwhdGhpcy5fbGlzdGVuZXJzKXJldHVybjtpZih0aGlzLl9zaXplPT09MSl7dGhpcy5fbGlzdGVuZXJzPXZvaWQgMCwocz0oaT10aGlzLl9vcHRpb25zKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkub25EaWRSZW1vdmVMYXN0TGlzdGVuZXIpPT09bnVsbHx8cz09PXZvaWQgMHx8cy5jYWxsKGksdGhpcyksdGhpcy5fc2l6ZT0wO3JldHVybn1jb25zdCBhPXRoaXMuX2xpc3RlbmVycyxvPWEuaW5kZXhPZih0KTtpZihvPT09LTEpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0ZWQgdG8gZGlzcG9zZSB1bmtub3duIGxpc3RlbmVyIik7dGhpcy5fc2l6ZS0tLGFbb109dm9pZCAwO2NvbnN0IGw9dGhpcy5fZGVsaXZlcnlRdWV1ZS5jdXJyZW50PT09dGhpcztpZih0aGlzLl9zaXplKlZhPD1hLmxlbmd0aCl7bGV0IHU9MDtmb3IobGV0IGY9MDtmPGEubGVuZ3RoO2YrKylhW2ZdP2FbdSsrXT1hW2ZdOmwmJih0aGlzLl9kZWxpdmVyeVF1ZXVlLmVuZC0tLHU8dGhpcy5fZGVsaXZlcnlRdWV1ZS5pJiZ0aGlzLl9kZWxpdmVyeVF1ZXVlLmktLSk7YS5sZW5ndGg9dX19X2RlbGl2ZXIodCxuKXt2YXIgcjtpZighdClyZXR1cm47Y29uc3QgaT0oKHI9dGhpcy5fb3B0aW9ucyk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLm9uTGlzdGVuZXJFcnJvcil8fElyO2lmKCFpKXt0LnZhbHVlKG4pO3JldHVybn10cnl7dC52YWx1ZShuKX1jYXRjaChzKXtpKHMpfX1fZGVsaXZlclF1ZXVlKHQpe2NvbnN0IG49dC5jdXJyZW50Ll9saXN0ZW5lcnM7Zm9yKDt0Lmk8dC5lbmQ7KXRoaXMuX2RlbGl2ZXIoblt0LmkrK10sdC52YWx1ZSk7dC5yZXNldCgpfWZpcmUodCl7dmFyIG4scixpLHM7aWYoISgobj10aGlzLl9kZWxpdmVyeVF1ZXVlKT09PW51bGx8fG49PT12b2lkIDApJiZuLmN1cnJlbnQmJih0aGlzLl9kZWxpdmVyUXVldWUodGhpcy5fZGVsaXZlcnlRdWV1ZSksKHI9dGhpcy5fcGVyZk1vbik9PT1udWxsfHxyPT09dm9pZCAwfHxyLnN0b3AoKSksKGk9dGhpcy5fcGVyZk1vbik9PT1udWxsfHxpPT09dm9pZCAwfHxpLnN0YXJ0KHRoaXMuX3NpemUpLHRoaXMuX2xpc3RlbmVycylpZih0aGlzLl9saXN0ZW5lcnMgaW5zdGFuY2VvZiBNbil0aGlzLl9kZWxpdmVyKHRoaXMuX2xpc3RlbmVycyx0KTtlbHNle2NvbnN0IGE9dGhpcy5fZGVsaXZlcnlRdWV1ZTthLmVucXVldWUodGhpcyx0LHRoaXMuX2xpc3RlbmVycy5sZW5ndGgpLHRoaXMuX2RlbGl2ZXJRdWV1ZShhKX0ocz10aGlzLl9wZXJmTW9uKT09PW51bGx8fHM9PT12b2lkIDB8fHMuc3RvcCgpfWhhc0xpc3RlbmVycygpe3JldHVybiB0aGlzLl9zaXplPjB9fWNsYXNzIE9he2NvbnN0cnVjdG9yKCl7dGhpcy5pPS0xLHRoaXMuZW5kPTB9ZW5xdWV1ZSh0LG4scil7dGhpcy5pPTAsdGhpcy5lbmQ9cix0aGlzLmN1cnJlbnQ9dCx0aGlzLnZhbHVlPW59cmVzZXQoKXt0aGlzLmk9dGhpcy5lbmQsdGhpcy5jdXJyZW50PXZvaWQgMCx0aGlzLnZhbHVlPXZvaWQgMH19ZnVuY3Rpb24gVWEoZSl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIn1mdW5jdGlvbiBqYShlKXtsZXQgdD1bXTtmb3IoO09iamVjdC5wcm90b3R5cGUhPT1lOyl0PXQuY29uY2F0KE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUpKSxlPU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtyZXR1cm4gdH1mdW5jdGlvbiBUbihlKXtjb25zdCB0PVtdO2Zvcihjb25zdCBuIG9mIGphKGUpKXR5cGVvZiBlW25dPT0iZnVuY3Rpb24iJiZ0LnB1c2gobik7cmV0dXJuIHR9ZnVuY3Rpb24gcWEoZSx0KXtjb25zdCBuPWk9PmZ1bmN0aW9uKCl7Y29uc3Qgcz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCk7cmV0dXJuIHQoaSxzKX0scj17fTtmb3IoY29uc3QgaSBvZiBlKXJbaV09bihpKTtyZXR1cm4gcn1sZXQgQmE9dHlwZW9mIGRvY3VtZW50PCJ1IiYmZG9jdW1lbnQubG9jYXRpb24mJmRvY3VtZW50LmxvY2F0aW9uLmhhc2guaW5kZXhPZigicHNldWRvPXRydWUiKT49MDtmdW5jdGlvbiAkYShlLHQpe2xldCBuO3JldHVybiB0Lmxlbmd0aD09PTA/bj1lOm49ZS5yZXBsYWNlKC9ceyhcZCspXH0vZywocixpKT0+e2NvbnN0IHM9aVswXSxhPXRbc107bGV0IG89cjtyZXR1cm4gdHlwZW9mIGE9PSJzdHJpbmciP289YToodHlwZW9mIGE9PSJudW1iZXIifHx0eXBlb2YgYT09ImJvb2xlYW4ifHxhPT09dm9pZCAwfHxhPT09bnVsbCkmJihvPVN0cmluZyhhKSksb30pLEJhJiYobj0i77y7IituLnJlcGxhY2UoL1thb3VlaV0vZywiJCYkJiIpKyLvvL0iKSxufWZ1bmN0aW9uIFooZSx0LC4uLm4pe3JldHVybiAkYSh0LG4pfWZ1bmN0aW9uIFp1KGUpe312YXIgUG47Y29uc3QgaHQ9ImVuIjtsZXQgRm49ITEsSW49ITEsRG49ITEsS3QsVm49aHQsT3I9aHQsV2EsQ2U7Y29uc3QgdHQ9Z2xvYmFsVGhpcztsZXQgdWU7dHlwZW9mIHR0LnZzY29kZTwidSImJnR5cGVvZiB0dC52c2NvZGUucHJvY2VzczwidSI/dWU9dHQudnNjb2RlLnByb2Nlc3M6dHlwZW9mIHByb2Nlc3M8InUiJiYodWU9cHJvY2Vzcyk7Y29uc3QgSGE9dHlwZW9mKChQbj11ZT09bnVsbD92b2lkIDA6dWUudmVyc2lvbnMpPT09bnVsbHx8UG49PT12b2lkIDA/dm9pZCAwOlBuLmVsZWN0cm9uKT09InN0cmluZyImJih1ZT09bnVsbD92b2lkIDA6dWUudHlwZSk9PT0icmVuZGVyZXIiO2lmKHR5cGVvZiB1ZT09Im9iamVjdCIpe0ZuPXVlLnBsYXRmb3JtPT09IndpbjMyIixJbj11ZS5wbGF0Zm9ybT09PSJkYXJ3aW4iLERuPXVlLnBsYXRmb3JtPT09ImxpbnV4IixEbiYmdWUuZW52LlNOQVAmJnVlLmVudi5TTkFQX1JFVklTSU9OLHVlLmVudi5DSXx8dWUuZW52LkJVSUxEX0FSVElGQUNUU1RBR0lOR0RJUkVDVE9SWSxLdD1odCxWbj1odDtjb25zdCBlPXVlLmVudi5WU0NPREVfTkxTX0NPTkZJRztpZihlKXRyeXtjb25zdCB0PUpTT04ucGFyc2UoZSksbj10LmF2YWlsYWJsZUxhbmd1YWdlc1siKiJdO0t0PXQubG9jYWxlLE9yPXQub3NMb2NhbGUsVm49bnx8aHQsV2E9dC5fdHJhbnNsYXRpb25zQ29uZmlnRmlsZX1jYXRjaHt9fWVsc2UgdHlwZW9mIG5hdmlnYXRvcj09Im9iamVjdCImJiFIYSYmKENlPW5hdmlnYXRvci51c2VyQWdlbnQsRm49Q2UuaW5kZXhPZigiV2luZG93cyIpPj0wLEluPUNlLmluZGV4T2YoIk1hY2ludG9zaCIpPj0wLChDZS5pbmRleE9mKCJNYWNpbnRvc2giKT49MHx8Q2UuaW5kZXhPZigiaVBhZCIpPj0wfHxDZS5pbmRleE9mKCJpUGhvbmUiKT49MCkmJm5hdmlnYXRvci5tYXhUb3VjaFBvaW50cyYmbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzPjAsRG49Q2UuaW5kZXhPZigiTGludXgiKT49MCwoQ2U9PW51bGw/dm9pZCAwOkNlLmluZGV4T2YoIk1vYmkiKSk+PTAsWih7a2V5OiJlbnN1cmVMb2FkZXJQbHVnaW5Jc0xvYWRlZCIsY29tbWVudDpbIntMb2NrZWR9Il19LCJfIiksS3Q9aHQsVm49S3QsT3I9bmF2aWdhdG9yLmxhbmd1YWdlKTtjb25zdCBFdD1Gbix6YT1JbixUZT1DZSxHYT10eXBlb2YgdHQucG9zdE1lc3NhZ2U9PSJmdW5jdGlvbiImJiF0dC5pbXBvcnRTY3JpcHRzOygoKT0+e2lmKEdhKXtjb25zdCBlPVtdO3R0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLG49PntpZihuLmRhdGEmJm4uZGF0YS52c2NvZGVTY2hlZHVsZUFzeW5jV29yaylmb3IobGV0IHI9MCxpPWUubGVuZ3RoO3I8aTtyKyspe2NvbnN0IHM9ZVtyXTtpZihzLmlkPT09bi5kYXRhLnZzY29kZVNjaGVkdWxlQXN5bmNXb3JrKXtlLnNwbGljZShyLDEpLHMuY2FsbGJhY2soKTtyZXR1cm59fX0pO2xldCB0PTA7cmV0dXJuIG49Pntjb25zdCByPSsrdDtlLnB1c2goe2lkOnIsY2FsbGJhY2s6bn0pLHR0LnBvc3RNZXNzYWdlKHt2c2NvZGVTY2hlZHVsZUFzeW5jV29yazpyfSwiKiIpfX1yZXR1cm4gZT0+c2V0VGltZW91dChlKX0pKCk7Y29uc3QgSmE9ISEoVGUmJlRlLmluZGV4T2YoIkNocm9tZSIpPj0wKTtUZSYmVGUuaW5kZXhPZigiRmlyZWZveCIpPj0wLCFKYSYmVGUmJlRlLmluZGV4T2YoIlNhZmFyaSIpPj0wLFRlJiZUZS5pbmRleE9mKCJFZGcvIik+PTAsVGUmJlRlLmluZGV4T2YoIkFuZHJvaWQiKT49MDtjbGFzcyBYYXtjb25zdHJ1Y3Rvcih0KXt0aGlzLmZuPXQsdGhpcy5sYXN0Q2FjaGU9dm9pZCAwLHRoaXMubGFzdEFyZ0tleT12b2lkIDB9Z2V0KHQpe2NvbnN0IG49SlNPTi5zdHJpbmdpZnkodCk7cmV0dXJuIHRoaXMubGFzdEFyZ0tleSE9PW4mJih0aGlzLmxhc3RBcmdLZXk9bix0aGlzLmxhc3RDYWNoZT10aGlzLmZuKHQpKSx0aGlzLmxhc3RDYWNoZX19Y2xhc3MgVXJ7Y29uc3RydWN0b3IodCl7dGhpcy5leGVjdXRvcj10LHRoaXMuX2RpZFJ1bj0hMX1nZXQgdmFsdWUoKXtpZighdGhpcy5fZGlkUnVuKXRyeXt0aGlzLl92YWx1ZT10aGlzLmV4ZWN1dG9yKCl9Y2F0Y2godCl7dGhpcy5fZXJyb3I9dH1maW5hbGx5e3RoaXMuX2RpZFJ1bj0hMH1pZih0aGlzLl9lcnJvcil0aHJvdyB0aGlzLl9lcnJvcjtyZXR1cm4gdGhpcy5fdmFsdWV9Z2V0IHJhd1ZhbHVlKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfX12YXIgZHQ7ZnVuY3Rpb24gUWEoZSl7cmV0dXJuIGUucmVwbGFjZSgvW1xcXHtcfVwqXCtcP1x8XF5cJFwuXFtcXVwoXCldL2csIlxcJCYiKX1mdW5jdGlvbiBaYShlKXtyZXR1cm4gZS5zcGxpdCgvXHJcbnxccnxcbi8pfWZ1bmN0aW9uIFlhKGUpe2ZvcihsZXQgdD0wLG49ZS5sZW5ndGg7dDxuO3QrKyl7Y29uc3Qgcj1lLmNoYXJDb2RlQXQodCk7aWYociE9PTMyJiZyIT09OSlyZXR1cm4gdH1yZXR1cm4tMX1mdW5jdGlvbiBLYShlLHQ9ZS5sZW5ndGgtMSl7Zm9yKGxldCBuPXQ7bj49MDtuLS0pe2NvbnN0IHI9ZS5jaGFyQ29kZUF0KG4pO2lmKHIhPT0zMiYmciE9PTkpcmV0dXJuIG59cmV0dXJuLTF9ZnVuY3Rpb24ganIoZSl7cmV0dXJuIGU+PTY1JiZlPD05MH1mdW5jdGlvbiBPbihlKXtyZXR1cm4gNTUyOTY8PWUmJmU8PTU2MzE5fWZ1bmN0aW9uIGVvKGUpe3JldHVybiA1NjMyMDw9ZSYmZTw9NTczNDN9ZnVuY3Rpb24gdG8oZSx0KXtyZXR1cm4oZS01NTI5Njw8MTApKyh0LTU2MzIwKSs2NTUzNn1mdW5jdGlvbiBubyhlLHQsbil7Y29uc3Qgcj1lLmNoYXJDb2RlQXQobik7aWYoT24ocikmJm4rMTx0KXtjb25zdCBpPWUuY2hhckNvZGVBdChuKzEpO2lmKGVvKGkpKXJldHVybiB0byhyLGkpfXJldHVybiByfWNvbnN0IHJvPS9eW1x0XG5cclx4MjAtXHg3RV0qJC87ZnVuY3Rpb24gaW8oZSl7cmV0dXJuIHJvLnRlc3QoZSl9Y2xhc3MgbnR7c3RhdGljIGdldEluc3RhbmNlKHQpe3JldHVybiBkdC5jYWNoZS5nZXQoQXJyYXkuZnJvbSh0KSl9c3RhdGljIGdldExvY2FsZXMoKXtyZXR1cm4gZHQuX2xvY2FsZXMudmFsdWV9Y29uc3RydWN0b3IodCl7dGhpcy5jb25mdXNhYmxlRGljdGlvbmFyeT10fWlzQW1iaWd1b3VzKHQpe3JldHVybiB0aGlzLmNvbmZ1c2FibGVEaWN0aW9uYXJ5Lmhhcyh0KX1nZXRQcmltYXJ5Q29uZnVzYWJsZSh0KXtyZXR1cm4gdGhpcy5jb25mdXNhYmxlRGljdGlvbmFyeS5nZXQodCl9Z2V0Q29uZnVzYWJsZUNvZGVQb2ludHMoKXtyZXR1cm4gbmV3IFNldCh0aGlzLmNvbmZ1c2FibGVEaWN0aW9uYXJ5LmtleXMoKSl9fWR0PW50LG50LmFtYmlndW91c0NoYXJhY3RlckRhdGE9bmV3IFVyKCgpPT5KU09OLnBhcnNlKCd7Il9jb21tb24iOls4MjMyLDMyLDgyMzMsMzIsNTc2MCwzMiw4MTkyLDMyLDgxOTMsMzIsODE5NCwzMiw4MTk1LDMyLDgxOTYsMzIsODE5NywzMiw4MTk4LDMyLDgyMDAsMzIsODIwMSwzMiw4MjAyLDMyLDgyODcsMzIsODE5OSwzMiw4MjM5LDMyLDIwNDIsOTUsNjUxMDEsOTUsNjUxMDIsOTUsNjUxMDMsOTUsODIwOCw0NSw4MjA5LDQ1LDgyMTAsNDUsNjUxMTIsNDUsMTc0OCw0NSw4MjU5LDQ1LDcyNyw0NSw4NzIyLDQ1LDEwMTM0LDQ1LDExNDUwLDQ1LDE1NDksNDQsMTY0Myw0NCw4MjE4LDQ0LDE4NCw0NCw0MjIzMyw0NCw4OTQsNTksMjMwNyw1OCwyNjkxLDU4LDE0MTcsNTgsMTc5NSw1OCwxNzk2LDU4LDU4NjgsNTgsNjUwNzIsNTgsNjE0Nyw1OCw2MTUzLDU4LDgyODIsNTgsMTQ3NSw1OCw3NjAsNTgsNDI4ODksNTgsODc1OCw1OCw3MjAsNTgsNDIyMzcsNTgsNDUxLDMzLDExNjAxLDMzLDY2MCw2Myw1NzcsNjMsMjQyOSw2Myw1MDM4LDYzLDQyNzMxLDYzLDExOTE0OSw0Niw4MjI4LDQ2LDE3OTMsNDYsMTc5NCw0Niw0MjUxMCw0Niw2ODE3Niw0NiwxNjMyLDQ2LDE3NzYsNDYsNDIyMzIsNDYsMTM3Myw5Niw2NTI4Nyw5Niw4MjE5LDk2LDgyNDIsOTYsMTM3MCw5NiwxNTIzLDk2LDgxNzUsOTYsNjUzNDQsOTYsOTAwLDk2LDgxODksOTYsODEyNSw5Niw4MTI3LDk2LDgxOTAsOTYsNjk3LDk2LDg4NCw5Niw3MTIsOTYsNzE0LDk2LDcxNSw5Niw3NTYsOTYsNjk5LDk2LDcwMSw5Niw3MDAsOTYsNzAyLDk2LDQyODkyLDk2LDE0OTcsOTYsMjAzNiw5NiwyMDM3LDk2LDUxOTQsOTYsNTgzNiw5Niw5NDAzMyw5Niw5NDAzNCw5Niw2NTMzOSw5MSwxMDA4OCw0MCwxMDA5OCw0MCwxMjMwOCw0MCw2NDgzMCw0MCw2NTM0MSw5MywxMDA4OSw0MSwxMDA5OSw0MSwxMjMwOSw0MSw2NDgzMSw0MSwxMDEwMCwxMjMsMTE5MDYwLDEyMywxMDEwMSwxMjUsNjUzNDIsOTQsODI3MCw0MiwxNjQ1LDQyLDg3MjcsNDIsNjYzMzUsNDIsNTk0MSw0Nyw4MjU3LDQ3LDg3MjUsNDcsODI2MCw0Nyw5NTg1LDQ3LDEwMTg3LDQ3LDEwNzQ0LDQ3LDExOTM1NCw0NywxMjc1NSw0NywxMjMzOSw0NywxMTQ2Miw0NywyMDAzMSw0NywxMjAzNSw0Nyw2NTM0MCw5Miw2NTEyOCw5Miw4NzI2LDkyLDEwMTg5LDkyLDEwNzQxLDkyLDEwNzQ1LDkyLDExOTMxMSw5MiwxMTkzNTUsOTIsMTI3NTYsOTIsMjAwMjIsOTIsMTIwMzQsOTIsNDI4NzIsMzgsNzA4LDk0LDcxMCw5NCw1ODY5LDQzLDEwMTMzLDQzLDY2MjAzLDQzLDgyNDksNjAsMTAwOTQsNjAsNzA2LDYwLDExOTM1MCw2MCw1MTc2LDYwLDU4MTAsNjAsNTEyMCw2MSwxMTg0MCw2MSwxMjQ0OCw2MSw0MjIzOSw2MSw4MjUwLDYyLDEwMDk1LDYyLDcwNyw2MiwxMTkzNTEsNjIsNTE3MSw2Miw5NDAxNSw2Miw4Mjc1LDEyNiw3MzIsMTI2LDgxMjgsMTI2LDg3NjQsMTI2LDY1MzcyLDEyNCw2NTI5Myw0NSwxMjA3ODQsNTAsMTIwNzk0LDUwLDEyMDgwNCw1MCwxMjA4MTQsNTAsMTIwODI0LDUwLDEzMDAzNCw1MCw0Mjg0Miw1MCw0MjMsNTAsMTAwMCw1MCw0MjU2NCw1MCw1MzExLDUwLDQyNzM1LDUwLDExOTMwMiw1MSwxMjA3ODUsNTEsMTIwNzk1LDUxLDEyMDgwNSw1MSwxMjA4MTUsNTEsMTIwODI1LDUxLDEzMDAzNSw1MSw0MjkyMyw1MSw1NDAsNTEsNDM5LDUxLDQyODU4LDUxLDExNDY4LDUxLDEyNDgsNTEsOTQwMTEsNTEsNzE4ODIsNTEsMTIwNzg2LDUyLDEyMDc5Niw1MiwxMjA4MDYsNTIsMTIwODE2LDUyLDEyMDgyNiw1MiwxMzAwMzYsNTIsNTA3MCw1Miw3MTg1NSw1MiwxMjA3ODcsNTMsMTIwNzk3LDUzLDEyMDgwNyw1MywxMjA4MTcsNTMsMTIwODI3LDUzLDEzMDAzNyw1Myw0NDQsNTMsNzE4NjcsNTMsMTIwNzg4LDU0LDEyMDc5OCw1NCwxMjA4MDgsNTQsMTIwODE4LDU0LDEyMDgyOCw1NCwxMzAwMzgsNTQsMTE0NzQsNTQsNTEwMiw1NCw3MTg5Myw1NCwxMTkzMTQsNTUsMTIwNzg5LDU1LDEyMDc5OSw1NSwxMjA4MDksNTUsMTIwODE5LDU1LDEyMDgyOSw1NSwxMzAwMzksNTUsNjY3NzAsNTUsNzE4NzgsNTUsMjgxOSw1NiwyNTM4LDU2LDI2NjYsNTYsMTI1MTMxLDU2LDEyMDc5MCw1NiwxMjA4MDAsNTYsMTIwODEwLDU2LDEyMDgyMCw1NiwxMjA4MzAsNTYsMTMwMDQwLDU2LDU0Nyw1Niw1NDYsNTYsNjYzMzAsNTYsMjY2Myw1NywyOTIwLDU3LDI1NDEsNTcsMzQzNyw1NywxMjA3OTEsNTcsMTIwODAxLDU3LDEyMDgxMSw1NywxMjA4MjEsNTcsMTIwODMxLDU3LDEzMDA0MSw1Nyw0Mjg2Miw1NywxMTQ2Niw1Nyw3MTg4NCw1Nyw3MTg1Miw1Nyw3MTg5NCw1Nyw5MDgyLDk3LDY1MzQ1LDk3LDExOTgzNCw5NywxMTk4ODYsOTcsMTE5OTM4LDk3LDExOTk5MCw5NywxMjAwNDIsOTcsMTIwMDk0LDk3LDEyMDE0Niw5NywxMjAxOTgsOTcsMTIwMjUwLDk3LDEyMDMwMiw5NywxMjAzNTQsOTcsMTIwNDA2LDk3LDEyMDQ1OCw5Nyw1OTMsOTcsOTQ1LDk3LDEyMDUxNCw5NywxMjA1NzIsOTcsMTIwNjMwLDk3LDEyMDY4OCw5NywxMjA3NDYsOTcsNjUzMTMsNjUsMTE5ODA4LDY1LDExOTg2MCw2NSwxMTk5MTIsNjUsMTE5OTY0LDY1LDEyMDAxNiw2NSwxMjAwNjgsNjUsMTIwMTIwLDY1LDEyMDE3Miw2NSwxMjAyMjQsNjUsMTIwMjc2LDY1LDEyMDMyOCw2NSwxMjAzODAsNjUsMTIwNDMyLDY1LDkxMyw2NSwxMjA0ODgsNjUsMTIwNTQ2LDY1LDEyMDYwNCw2NSwxMjA2NjIsNjUsMTIwNzIwLDY1LDUwMzQsNjUsNTU3Myw2NSw0MjIyMiw2NSw5NDAxNiw2NSw2NjIwOCw2NSwxMTk4MzUsOTgsMTE5ODg3LDk4LDExOTkzOSw5OCwxMTk5OTEsOTgsMTIwMDQzLDk4LDEyMDA5NSw5OCwxMjAxNDcsOTgsMTIwMTk5LDk4LDEyMDI1MSw5OCwxMjAzMDMsOTgsMTIwMzU1LDk4LDEyMDQwNyw5OCwxMjA0NTksOTgsMzg4LDk4LDUwNzEsOTgsNTIzNCw5OCw1NTUxLDk4LDY1MzE0LDY2LDg0OTIsNjYsMTE5ODA5LDY2LDExOTg2MSw2NiwxMTk5MTMsNjYsMTIwMDE3LDY2LDEyMDA2OSw2NiwxMjAxMjEsNjYsMTIwMTczLDY2LDEyMDIyNSw2NiwxMjAyNzcsNjYsMTIwMzI5LDY2LDEyMDM4MSw2NiwxMjA0MzMsNjYsNDI5MzIsNjYsOTE0LDY2LDEyMDQ4OSw2NiwxMjA1NDcsNjYsMTIwNjA1LDY2LDEyMDY2Myw2NiwxMjA3MjEsNjYsNTEwOCw2Niw1NjIzLDY2LDQyMTkyLDY2LDY2MTc4LDY2LDY2MjA5LDY2LDY2MzA1LDY2LDY1MzQ3LDk5LDg1NzMsOTksMTE5ODM2LDk5LDExOTg4OCw5OSwxMTk5NDAsOTksMTE5OTkyLDk5LDEyMDA0NCw5OSwxMjAwOTYsOTksMTIwMTQ4LDk5LDEyMDIwMCw5OSwxMjAyNTIsOTksMTIwMzA0LDk5LDEyMDM1Niw5OSwxMjA0MDgsOTksMTIwNDYwLDk5LDc0MjgsOTksMTAxMCw5OSwxMTQyOSw5OSw0Mzk1MSw5OSw2NjYyMSw5OSwxMjg4NDQsNjcsNzE5MjIsNjcsNzE5MTMsNjcsNjUzMTUsNjcsODU1Nyw2Nyw4NDUwLDY3LDg0OTMsNjcsMTE5ODEwLDY3LDExOTg2Miw2NywxMTk5MTQsNjcsMTE5OTY2LDY3LDEyMDAxOCw2NywxMjAxNzQsNjcsMTIwMjI2LDY3LDEyMDI3OCw2NywxMjAzMzAsNjcsMTIwMzgyLDY3LDEyMDQzNCw2NywxMDE3LDY3LDExNDI4LDY3LDUwODcsNjcsNDIyMDIsNjcsNjYyMTAsNjcsNjYzMDYsNjcsNjY1ODEsNjcsNjY4NDQsNjcsODU3NCwxMDAsODUxOCwxMDAsMTE5ODM3LDEwMCwxMTk4ODksMTAwLDExOTk0MSwxMDAsMTE5OTkzLDEwMCwxMjAwNDUsMTAwLDEyMDA5NywxMDAsMTIwMTQ5LDEwMCwxMjAyMDEsMTAwLDEyMDI1MywxMDAsMTIwMzA1LDEwMCwxMjAzNTcsMTAwLDEyMDQwOSwxMDAsMTIwNDYxLDEwMCwxMjgxLDEwMCw1MDk1LDEwMCw1MjMxLDEwMCw0MjE5NCwxMDAsODU1OCw2OCw4NTE3LDY4LDExOTgxMSw2OCwxMTk4NjMsNjgsMTE5OTE1LDY4LDExOTk2Nyw2OCwxMjAwMTksNjgsMTIwMDcxLDY4LDEyMDEyMyw2OCwxMjAxNzUsNjgsMTIwMjI3LDY4LDEyMDI3OSw2OCwxMjAzMzEsNjgsMTIwMzgzLDY4LDEyMDQzNSw2OCw1MDI0LDY4LDU1OTgsNjgsNTYxMCw2OCw0MjE5NSw2OCw4NDk0LDEwMSw2NTM0OSwxMDEsODQ5NSwxMDEsODUxOSwxMDEsMTE5ODM4LDEwMSwxMTk4OTAsMTAxLDExOTk0MiwxMDEsMTIwMDQ2LDEwMSwxMjAwOTgsMTAxLDEyMDE1MCwxMDEsMTIwMjAyLDEwMSwxMjAyNTQsMTAxLDEyMDMwNiwxMDEsMTIwMzU4LDEwMSwxMjA0MTAsMTAxLDEyMDQ2MiwxMDEsNDM4MjYsMTAxLDEyMTMsMTAxLDg5NTksNjksNjUzMTcsNjksODQ5Niw2OSwxMTk4MTIsNjksMTE5ODY0LDY5LDExOTkxNiw2OSwxMjAwMjAsNjksMTIwMDcyLDY5LDEyMDEyNCw2OSwxMjAxNzYsNjksMTIwMjI4LDY5LDEyMDI4MCw2OSwxMjAzMzIsNjksMTIwMzg0LDY5LDEyMDQzNiw2OSw5MTcsNjksMTIwNDkyLDY5LDEyMDU1MCw2OSwxMjA2MDgsNjksMTIwNjY2LDY5LDEyMDcyNCw2OSwxMTU3Nyw2OSw1MDM2LDY5LDQyMjI0LDY5LDcxODQ2LDY5LDcxODU0LDY5LDY2MTgyLDY5LDExOTgzOSwxMDIsMTE5ODkxLDEwMiwxMTk5NDMsMTAyLDExOTk5NSwxMDIsMTIwMDQ3LDEwMiwxMjAwOTksMTAyLDEyMDE1MSwxMDIsMTIwMjAzLDEwMiwxMjAyNTUsMTAyLDEyMDMwNywxMDIsMTIwMzU5LDEwMiwxMjA0MTEsMTAyLDEyMDQ2MywxMDIsNDM4MjksMTAyLDQyOTA1LDEwMiwzODMsMTAyLDc4MzcsMTAyLDE0MTIsMTAyLDExOTMxNSw3MCw4NDk3LDcwLDExOTgxMyw3MCwxMTk4NjUsNzAsMTE5OTE3LDcwLDEyMDAyMSw3MCwxMjAwNzMsNzAsMTIwMTI1LDcwLDEyMDE3Nyw3MCwxMjAyMjksNzAsMTIwMjgxLDcwLDEyMDMzMyw3MCwxMjAzODUsNzAsMTIwNDM3LDcwLDQyOTA0LDcwLDk4OCw3MCwxMjA3NzgsNzAsNTU1Niw3MCw0MjIwNSw3MCw3MTg3NCw3MCw3MTg0Miw3MCw2NjE4Myw3MCw2NjIxMyw3MCw2Njg1Myw3MCw2NTM1MSwxMDMsODQ1OCwxMDMsMTE5ODQwLDEwMywxMTk4OTIsMTAzLDExOTk0NCwxMDMsMTIwMDQ4LDEwMywxMjAxMDAsMTAzLDEyMDE1MiwxMDMsMTIwMjA0LDEwMywxMjAyNTYsMTAzLDEyMDMwOCwxMDMsMTIwMzYwLDEwMywxMjA0MTIsMTAzLDEyMDQ2NCwxMDMsNjA5LDEwMyw3NTU1LDEwMywzOTcsMTAzLDE0MDksMTAzLDExOTgxNCw3MSwxMTk4NjYsNzEsMTE5OTE4LDcxLDExOTk3MCw3MSwxMjAwMjIsNzEsMTIwMDc0LDcxLDEyMDEyNiw3MSwxMjAxNzgsNzEsMTIwMjMwLDcxLDEyMDI4Miw3MSwxMjAzMzQsNzEsMTIwMzg2LDcxLDEyMDQzOCw3MSwxMjkyLDcxLDUwNTYsNzEsNTEwNyw3MSw0MjE5OCw3MSw2NTM1MiwxMDQsODQ2MiwxMDQsMTE5ODQxLDEwNCwxMTk5NDUsMTA0LDExOTk5NywxMDQsMTIwMDQ5LDEwNCwxMjAxMDEsMTA0LDEyMDE1MywxMDQsMTIwMjA1LDEwNCwxMjAyNTcsMTA0LDEyMDMwOSwxMDQsMTIwMzYxLDEwNCwxMjA0MTMsMTA0LDEyMDQ2NSwxMDQsMTIxMSwxMDQsMTM5MiwxMDQsNTA1OCwxMDQsNjUzMjAsNzIsODQ1OSw3Miw4NDYwLDcyLDg0NjEsNzIsMTE5ODE1LDcyLDExOTg2Nyw3MiwxMTk5MTksNzIsMTIwMDIzLDcyLDEyMDE3OSw3MiwxMjAyMzEsNzIsMTIwMjgzLDcyLDEyMDMzNSw3MiwxMjAzODcsNzIsMTIwNDM5LDcyLDkxOSw3MiwxMjA0OTQsNzIsMTIwNTUyLDcyLDEyMDYxMCw3MiwxMjA2NjgsNzIsMTIwNzI2LDcyLDExNDA2LDcyLDUwNTEsNzIsNTUwMCw3Miw0MjIxNSw3Miw2NjI1NSw3Miw3MzEsMTA1LDkwNzUsMTA1LDY1MzUzLDEwNSw4NTYwLDEwNSw4NTA1LDEwNSw4NTIwLDEwNSwxMTk4NDIsMTA1LDExOTg5NCwxMDUsMTE5OTQ2LDEwNSwxMTk5OTgsMTA1LDEyMDA1MCwxMDUsMTIwMTAyLDEwNSwxMjAxNTQsMTA1LDEyMDIwNiwxMDUsMTIwMjU4LDEwNSwxMjAzMTAsMTA1LDEyMDM2MiwxMDUsMTIwNDE0LDEwNSwxMjA0NjYsMTA1LDEyMDQ4NCwxMDUsNjE4LDEwNSw2MTcsMTA1LDk1MywxMDUsODEyNiwxMDUsODkwLDEwNSwxMjA1MjIsMTA1LDEyMDU4MCwxMDUsMTIwNjM4LDEwNSwxMjA2OTYsMTA1LDEyMDc1NCwxMDUsMTExMCwxMDUsNDI1NjcsMTA1LDEyMzEsMTA1LDQzODkzLDEwNSw1MDI5LDEwNSw3MTg3NSwxMDUsNjUzNTQsMTA2LDg1MjEsMTA2LDExOTg0MywxMDYsMTE5ODk1LDEwNiwxMTk5NDcsMTA2LDExOTk5OSwxMDYsMTIwMDUxLDEwNiwxMjAxMDMsMTA2LDEyMDE1NSwxMDYsMTIwMjA3LDEwNiwxMjAyNTksMTA2LDEyMDMxMSwxMDYsMTIwMzYzLDEwNiwxMjA0MTUsMTA2LDEyMDQ2NywxMDYsMTAxMSwxMDYsMTExMiwxMDYsNjUzMjIsNzQsMTE5ODE3LDc0LDExOTg2OSw3NCwxMTk5MjEsNzQsMTE5OTczLDc0LDEyMDAyNSw3NCwxMjAwNzcsNzQsMTIwMTI5LDc0LDEyMDE4MSw3NCwxMjAyMzMsNzQsMTIwMjg1LDc0LDEyMDMzNyw3NCwxMjAzODksNzQsMTIwNDQxLDc0LDQyOTMwLDc0LDg5NSw3NCwxMDMyLDc0LDUwMzUsNzQsNTI2MSw3NCw0MjIwMSw3NCwxMTk4NDQsMTA3LDExOTg5NiwxMDcsMTE5OTQ4LDEwNywxMjAwMDAsMTA3LDEyMDA1MiwxMDcsMTIwMTA0LDEwNywxMjAxNTYsMTA3LDEyMDIwOCwxMDcsMTIwMjYwLDEwNywxMjAzMTIsMTA3LDEyMDM2NCwxMDcsMTIwNDE2LDEwNywxMjA0NjgsMTA3LDg0OTAsNzUsNjUzMjMsNzUsMTE5ODE4LDc1LDExOTg3MCw3NSwxMTk5MjIsNzUsMTE5OTc0LDc1LDEyMDAyNiw3NSwxMjAwNzgsNzUsMTIwMTMwLDc1LDEyMDE4Miw3NSwxMjAyMzQsNzUsMTIwMjg2LDc1LDEyMDMzOCw3NSwxMjAzOTAsNzUsMTIwNDQyLDc1LDkyMiw3NSwxMjA0OTcsNzUsMTIwNTU1LDc1LDEyMDYxMyw3NSwxMjA2NzEsNzUsMTIwNzI5LDc1LDExNDEyLDc1LDUwOTQsNzUsNTg0NSw3NSw0MjE5OSw3NSw2Njg0MCw3NSwxNDcyLDEwOCw4NzM5LDczLDkyMTMsNzMsNjU1MTIsNzMsMTYzMywxMDgsMTc3Nyw3Myw2NjMzNiwxMDgsMTI1MTI3LDEwOCwxMjA3ODMsNzMsMTIwNzkzLDczLDEyMDgwMyw3MywxMjA4MTMsNzMsMTIwODIzLDczLDEzMDAzMyw3Myw2NTMyMSw3Myw4NTQ0LDczLDg0NjQsNzMsODQ2NSw3MywxMTk4MTYsNzMsMTE5ODY4LDczLDExOTkyMCw3MywxMjAwMjQsNzMsMTIwMTI4LDczLDEyMDE4MCw3MywxMjAyMzIsNzMsMTIwMjg0LDczLDEyMDMzNiw3MywxMjAzODgsNzMsMTIwNDQwLDczLDY1MzU2LDEwOCw4NTcyLDczLDg0NjcsMTA4LDExOTg0NSwxMDgsMTE5ODk3LDEwOCwxMTk5NDksMTA4LDEyMDAwMSwxMDgsMTIwMDUzLDEwOCwxMjAxMDUsNzMsMTIwMTU3LDczLDEyMDIwOSw3MywxMjAyNjEsNzMsMTIwMzEzLDczLDEyMDM2NSw3MywxMjA0MTcsNzMsMTIwNDY5LDczLDQ0OCw3MywxMjA0OTYsNzMsMTIwNTU0LDczLDEyMDYxMiw3MywxMjA2NzAsNzMsMTIwNzI4LDczLDExNDEwLDczLDEwMzAsNzMsMTIxNiw3MywxNDkzLDEwOCwxNTAzLDEwOCwxNTc1LDEwOCwxMjY0NjQsMTA4LDEyNjU5MiwxMDgsNjUxNjYsMTA4LDY1MTY1LDEwOCwxOTk0LDEwOCwxMTU5OSw3Myw1ODI1LDczLDQyMjI2LDczLDkzOTkyLDczLDY2MTg2LDEyNCw2NjMxMywxMjQsMTE5MzM4LDc2LDg1NTYsNzYsODQ2Niw3NiwxMTk4MTksNzYsMTE5ODcxLDc2LDExOTkyMyw3NiwxMjAwMjcsNzYsMTIwMDc5LDc2LDEyMDEzMSw3NiwxMjAxODMsNzYsMTIwMjM1LDc2LDEyMDI4Nyw3NiwxMjAzMzksNzYsMTIwMzkxLDc2LDEyMDQ0Myw3NiwxMTQ3Miw3Niw1MDg2LDc2LDUyOTAsNzYsNDIyMDksNzYsOTM5NzQsNzYsNzE4NDMsNzYsNzE4NTgsNzYsNjY1ODcsNzYsNjY4NTQsNzYsNjUzMjUsNzcsODU1OSw3Nyw4NDk5LDc3LDExOTgyMCw3NywxMTk4NzIsNzcsMTE5OTI0LDc3LDEyMDAyOCw3NywxMjAwODAsNzcsMTIwMTMyLDc3LDEyMDE4NCw3NywxMjAyMzYsNzcsMTIwMjg4LDc3LDEyMDM0MCw3NywxMjAzOTIsNzcsMTIwNDQ0LDc3LDkyNCw3NywxMjA0OTksNzcsMTIwNTU3LDc3LDEyMDYxNSw3NywxMjA2NzMsNzcsMTIwNzMxLDc3LDEwMTgsNzcsMTE0MTYsNzcsNTA0Nyw3Nyw1NjE2LDc3LDU4NDYsNzcsNDIyMDcsNzcsNjYyMjQsNzcsNjYzMjEsNzcsMTE5ODQ3LDExMCwxMTk4OTksMTEwLDExOTk1MSwxMTAsMTIwMDAzLDExMCwxMjAwNTUsMTEwLDEyMDEwNywxMTAsMTIwMTU5LDExMCwxMjAyMTEsMTEwLDEyMDI2MywxMTAsMTIwMzE1LDExMCwxMjAzNjcsMTEwLDEyMDQxOSwxMTAsMTIwNDcxLDExMCwxNDAwLDExMCwxNDA0LDExMCw2NTMyNiw3OCw4NDY5LDc4LDExOTgyMSw3OCwxMTk4NzMsNzgsMTE5OTI1LDc4LDExOTk3Nyw3OCwxMjAwMjksNzgsMTIwMDgxLDc4LDEyMDE4NSw3OCwxMjAyMzcsNzgsMTIwMjg5LDc4LDEyMDM0MSw3OCwxMjAzOTMsNzgsMTIwNDQ1LDc4LDkyNSw3OCwxMjA1MDAsNzgsMTIwNTU4LDc4LDEyMDYxNiw3OCwxMjA2NzQsNzgsMTIwNzMyLDc4LDExNDE4LDc4LDQyMjA4LDc4LDY2ODM1LDc4LDMwNzQsMTExLDMyMDIsMTExLDMzMzAsMTExLDM0NTgsMTExLDI0MDYsMTExLDI2NjIsMTExLDI3OTAsMTExLDMwNDYsMTExLDMxNzQsMTExLDMzMDIsMTExLDM0MzAsMTExLDM2NjQsMTExLDM3OTIsMTExLDQxNjAsMTExLDE2MzcsMTExLDE3ODEsMTExLDY1MzU5LDExMSw4NTAwLDExMSwxMTk4NDgsMTExLDExOTkwMCwxMTEsMTE5OTUyLDExMSwxMjAwNTYsMTExLDEyMDEwOCwxMTEsMTIwMTYwLDExMSwxMjAyMTIsMTExLDEyMDI2NCwxMTEsMTIwMzE2LDExMSwxMjAzNjgsMTExLDEyMDQyMCwxMTEsMTIwNDcyLDExMSw3NDM5LDExMSw3NDQxLDExMSw0MzgzNywxMTEsOTU5LDExMSwxMjA1MjgsMTExLDEyMDU4NiwxMTEsMTIwNjQ0LDExMSwxMjA3MDIsMTExLDEyMDc2MCwxMTEsOTYzLDExMSwxMjA1MzIsMTExLDEyMDU5MCwxMTEsMTIwNjQ4LDExMSwxMjA3MDYsMTExLDEyMDc2NCwxMTEsMTE0MjMsMTExLDQzNTEsMTExLDE0MTMsMTExLDE1MDUsMTExLDE2MDcsMTExLDEyNjUwMCwxMTEsMTI2NTY0LDExMSwxMjY1OTYsMTExLDY1MjU5LDExMSw2NTI2MCwxMTEsNjUyNTgsMTExLDY1MjU3LDExMSwxNzI2LDExMSw2NDQyOCwxMTEsNjQ0MjksMTExLDY0NDI3LDExMSw2NDQyNiwxMTEsMTcyOSwxMTEsNjQ0MjQsMTExLDY0NDI1LDExMSw2NDQyMywxMTEsNjQ0MjIsMTExLDE3NDksMTExLDMzNjAsMTExLDQxMjUsMTExLDY2Nzk0LDExMSw3MTg4MCwxMTEsNzE4OTUsMTExLDY2NjA0LDExMSwxOTg0LDc5LDI1MzQsNzksMjkxOCw3OSwxMjI5NSw3OSw3MDg2NCw3OSw3MTkwNCw3OSwxMjA3ODIsNzksMTIwNzkyLDc5LDEyMDgwMiw3OSwxMjA4MTIsNzksMTIwODIyLDc5LDEzMDAzMiw3OSw2NTMyNyw3OSwxMTk4MjIsNzksMTE5ODc0LDc5LDExOTkyNiw3OSwxMTk5NzgsNzksMTIwMDMwLDc5LDEyMDA4Miw3OSwxMjAxMzQsNzksMTIwMTg2LDc5LDEyMDIzOCw3OSwxMjAyOTAsNzksMTIwMzQyLDc5LDEyMDM5NCw3OSwxMjA0NDYsNzksOTI3LDc5LDEyMDUwMiw3OSwxMjA1NjAsNzksMTIwNjE4LDc5LDEyMDY3Niw3OSwxMjA3MzQsNzksMTE0MjIsNzksMTM2NSw3OSwxMTYwNCw3OSw0ODE2LDc5LDI4NDgsNzksNjY3NTQsNzksNDIyMjcsNzksNzE4NjEsNzksNjYxOTQsNzksNjYyMTksNzksNjY1NjQsNzksNjY4MzgsNzksOTA3NiwxMTIsNjUzNjAsMTEyLDExOTg0OSwxMTIsMTE5OTAxLDExMiwxMTk5NTMsMTEyLDEyMDAwNSwxMTIsMTIwMDU3LDExMiwxMjAxMDksMTEyLDEyMDE2MSwxMTIsMTIwMjEzLDExMiwxMjAyNjUsMTEyLDEyMDMxNywxMTIsMTIwMzY5LDExMiwxMjA0MjEsMTEyLDEyMDQ3MywxMTIsOTYxLDExMiwxMjA1MzAsMTEyLDEyMDU0NCwxMTIsMTIwNTg4LDExMiwxMjA2MDIsMTEyLDEyMDY0NiwxMTIsMTIwNjYwLDExMiwxMjA3MDQsMTEyLDEyMDcxOCwxMTIsMTIwNzYyLDExMiwxMjA3NzYsMTEyLDExNDI3LDExMiw2NTMyOCw4MCw4NDczLDgwLDExOTgyMyw4MCwxMTk4NzUsODAsMTE5OTI3LDgwLDExOTk3OSw4MCwxMjAwMzEsODAsMTIwMDgzLDgwLDEyMDE4Nyw4MCwxMjAyMzksODAsMTIwMjkxLDgwLDEyMDM0Myw4MCwxMjAzOTUsODAsMTIwNDQ3LDgwLDkyOSw4MCwxMjA1MDQsODAsMTIwNTYyLDgwLDEyMDYyMCw4MCwxMjA2NzgsODAsMTIwNzM2LDgwLDExNDI2LDgwLDUwOTAsODAsNTIyOSw4MCw0MjE5Myw4MCw2NjE5Nyw4MCwxMTk4NTAsMTEzLDExOTkwMiwxMTMsMTE5OTU0LDExMywxMjAwMDYsMTEzLDEyMDA1OCwxMTMsMTIwMTEwLDExMywxMjAxNjIsMTEzLDEyMDIxNCwxMTMsMTIwMjY2LDExMywxMjAzMTgsMTEzLDEyMDM3MCwxMTMsMTIwNDIyLDExMywxMjA0NzQsMTEzLDEzMDcsMTEzLDEzNzksMTEzLDEzODIsMTEzLDg0NzQsODEsMTE5ODI0LDgxLDExOTg3Niw4MSwxMTk5MjgsODEsMTE5OTgwLDgxLDEyMDAzMiw4MSwxMjAwODQsODEsMTIwMTg4LDgxLDEyMDI0MCw4MSwxMjAyOTIsODEsMTIwMzQ0LDgxLDEyMDM5Niw4MSwxMjA0NDgsODEsMTE2MDUsODEsMTE5ODUxLDExNCwxMTk5MDMsMTE0LDExOTk1NSwxMTQsMTIwMDA3LDExNCwxMjAwNTksMTE0LDEyMDExMSwxMTQsMTIwMTYzLDExNCwxMjAyMTUsMTE0LDEyMDI2NywxMTQsMTIwMzE5LDExNCwxMjAzNzEsMTE0LDEyMDQyMywxMTQsMTIwNDc1LDExNCw0Mzg0NywxMTQsNDM4NDgsMTE0LDc0NjIsMTE0LDExMzk3LDExNCw0MzkwNSwxMTQsMTE5MzE4LDgyLDg0NzUsODIsODQ3Niw4Miw4NDc3LDgyLDExOTgyNSw4MiwxMTk4NzcsODIsMTE5OTI5LDgyLDEyMDAzMyw4MiwxMjAxODksODIsMTIwMjQxLDgyLDEyMDI5Myw4MiwxMjAzNDUsODIsMTIwMzk3LDgyLDEyMDQ0OSw4Miw0MjIsODIsNTAyNSw4Miw1MDc0LDgyLDY2NzQwLDgyLDU1MTEsODIsNDIyMTEsODIsOTQwMDUsODIsNjUzNjMsMTE1LDExOTg1MiwxMTUsMTE5OTA0LDExNSwxMTk5NTYsMTE1LDEyMDAwOCwxMTUsMTIwMDYwLDExNSwxMjAxMTIsMTE1LDEyMDE2NCwxMTUsMTIwMjE2LDExNSwxMjAyNjgsMTE1LDEyMDMyMCwxMTUsMTIwMzcyLDExNSwxMjA0MjQsMTE1LDEyMDQ3NiwxMTUsNDI4MDEsMTE1LDQ0NSwxMTUsMTEwOSwxMTUsNDM5NDYsMTE1LDcxODczLDExNSw2NjYzMiwxMTUsNjUzMzEsODMsMTE5ODI2LDgzLDExOTg3OCw4MywxMTk5MzAsODMsMTE5OTgyLDgzLDEyMDAzNCw4MywxMjAwODYsODMsMTIwMTM4LDgzLDEyMDE5MCw4MywxMjAyNDIsODMsMTIwMjk0LDgzLDEyMDM0Niw4MywxMjAzOTgsODMsMTIwNDUwLDgzLDEwMjksODMsMTM1OSw4Myw1MDc3LDgzLDUwODIsODMsNDIyMTAsODMsOTQwMTAsODMsNjYxOTgsODMsNjY1OTIsODMsMTE5ODUzLDExNiwxMTk5MDUsMTE2LDExOTk1NywxMTYsMTIwMDA5LDExNiwxMjAwNjEsMTE2LDEyMDExMywxMTYsMTIwMTY1LDExNiwxMjAyMTcsMTE2LDEyMDI2OSwxMTYsMTIwMzIxLDExNiwxMjAzNzMsMTE2LDEyMDQyNSwxMTYsMTIwNDc3LDExNiw4ODY4LDg0LDEwMjAxLDg0LDEyODg3Miw4NCw2NTMzMiw4NCwxMTk4MjcsODQsMTE5ODc5LDg0LDExOTkzMSw4NCwxMTk5ODMsODQsMTIwMDM1LDg0LDEyMDA4Nyw4NCwxMjAxMzksODQsMTIwMTkxLDg0LDEyMDI0Myw4NCwxMjAyOTUsODQsMTIwMzQ3LDg0LDEyMDM5OSw4NCwxMjA0NTEsODQsOTMyLDg0LDEyMDUwNyw4NCwxMjA1NjUsODQsMTIwNjIzLDg0LDEyMDY4MSw4NCwxMjA3MzksODQsMTE0MzAsODQsNTAyNiw4NCw0MjE5Niw4NCw5Mzk2Miw4NCw3MTg2OCw4NCw2NjE5OSw4NCw2NjIyNSw4NCw2NjMyNSw4NCwxMTk4NTQsMTE3LDExOTkwNiwxMTcsMTE5OTU4LDExNywxMjAwMTAsMTE3LDEyMDA2MiwxMTcsMTIwMTE0LDExNywxMjAxNjYsMTE3LDEyMDIxOCwxMTcsMTIwMjcwLDExNywxMjAzMjIsMTE3LDEyMDM3NCwxMTcsMTIwNDI2LDExNywxMjA0NzgsMTE3LDQyOTExLDExNyw3NDUyLDExNyw0Mzg1NCwxMTcsNDM4NTgsMTE3LDY1MSwxMTcsOTY1LDExNywxMjA1MzQsMTE3LDEyMDU5MiwxMTcsMTIwNjUwLDExNywxMjA3MDgsMTE3LDEyMDc2NiwxMTcsMTQwNSwxMTcsNjY4MDYsMTE3LDcxODk2LDExNyw4NzQ2LDg1LDg4OTksODUsMTE5ODI4LDg1LDExOTg4MCw4NSwxMTk5MzIsODUsMTE5OTg0LDg1LDEyMDAzNiw4NSwxMjAwODgsODUsMTIwMTQwLDg1LDEyMDE5Miw4NSwxMjAyNDQsODUsMTIwMjk2LDg1LDEyMDM0OCw4NSwxMjA0MDAsODUsMTIwNDUyLDg1LDEzNTcsODUsNDYwOCw4NSw2Njc2Niw4NSw1MTk2LDg1LDQyMjI4LDg1LDk0MDE4LDg1LDcxODY0LDg1LDg3NDQsMTE4LDg4OTcsMTE4LDY1MzY2LDExOCw4NTY0LDExOCwxMTk4NTUsMTE4LDExOTkwNywxMTgsMTE5OTU5LDExOCwxMjAwMTEsMTE4LDEyMDA2MywxMTgsMTIwMTE1LDExOCwxMjAxNjcsMTE4LDEyMDIxOSwxMTgsMTIwMjcxLDExOCwxMjAzMjMsMTE4LDEyMDM3NSwxMTgsMTIwNDI3LDExOCwxMjA0NzksMTE4LDc0NTYsMTE4LDk1NywxMTgsMTIwNTI2LDExOCwxMjA1ODQsMTE4LDEyMDY0MiwxMTgsMTIwNzAwLDExOCwxMjA3NTgsMTE4LDExNDEsMTE4LDE0OTYsMTE4LDcxNDMwLDExOCw0Mzk0NSwxMTgsNzE4NzIsMTE4LDExOTMwOSw4NiwxNjM5LDg2LDE3ODMsODYsODU0OCw4NiwxMTk4MjksODYsMTE5ODgxLDg2LDExOTkzMyw4NiwxMTk5ODUsODYsMTIwMDM3LDg2LDEyMDA4OSw4NiwxMjAxNDEsODYsMTIwMTkzLDg2LDEyMDI0NSw4NiwxMjAyOTcsODYsMTIwMzQ5LDg2LDEyMDQwMSw4NiwxMjA0NTMsODYsMTE0MCw4NiwxMTU3Niw4Niw1MDgxLDg2LDUxNjcsODYsNDI3MTksODYsNDIyMTQsODYsOTM5NjAsODYsNzE4NDAsODYsNjY4NDUsODYsNjIzLDExOSwxMTk4NTYsMTE5LDExOTkwOCwxMTksMTE5OTYwLDExOSwxMjAwMTIsMTE5LDEyMDA2NCwxMTksMTIwMTE2LDExOSwxMjAxNjgsMTE5LDEyMDIyMCwxMTksMTIwMjcyLDExOSwxMjAzMjQsMTE5LDEyMDM3NiwxMTksMTIwNDI4LDExOSwxMjA0ODAsMTE5LDc0NTcsMTE5LDExMjEsMTE5LDEzMDksMTE5LDEzNzcsMTE5LDcxNDM0LDExOSw3MTQzOCwxMTksNzE0MzksMTE5LDQzOTA3LDExOSw3MTkxOSw4Nyw3MTkxMCw4NywxMTk4MzAsODcsMTE5ODgyLDg3LDExOTkzNCw4NywxMTk5ODYsODcsMTIwMDM4LDg3LDEyMDA5MCw4NywxMjAxNDIsODcsMTIwMTk0LDg3LDEyMDI0Niw4NywxMjAyOTgsODcsMTIwMzUwLDg3LDEyMDQwMiw4NywxMjA0NTQsODcsMTMwOCw4Nyw1MDQzLDg3LDUwNzYsODcsNDIyMTgsODcsNTc0MiwxMjAsMTA1MzksMTIwLDEwNTQwLDEyMCwxMDc5OSwxMjAsNjUzNjgsMTIwLDg1NjksMTIwLDExOTg1NywxMjAsMTE5OTA5LDEyMCwxMTk5NjEsMTIwLDEyMDAxMywxMjAsMTIwMDY1LDEyMCwxMjAxMTcsMTIwLDEyMDE2OSwxMjAsMTIwMjIxLDEyMCwxMjAyNzMsMTIwLDEyMDMyNSwxMjAsMTIwMzc3LDEyMCwxMjA0MjksMTIwLDEyMDQ4MSwxMjAsNTQ0MSwxMjAsNTUwMSwxMjAsNTc0MSw4OCw5NTg3LDg4LDY2MzM4LDg4LDcxOTE2LDg4LDY1MzM2LDg4LDg1NTMsODgsMTE5ODMxLDg4LDExOTg4Myw4OCwxMTk5MzUsODgsMTE5OTg3LDg4LDEyMDAzOSw4OCwxMjAwOTEsODgsMTIwMTQzLDg4LDEyMDE5NSw4OCwxMjAyNDcsODgsMTIwMjk5LDg4LDEyMDM1MSw4OCwxMjA0MDMsODgsMTIwNDU1LDg4LDQyOTMxLDg4LDkzNSw4OCwxMjA1MTAsODgsMTIwNTY4LDg4LDEyMDYyNiw4OCwxMjA2ODQsODgsMTIwNzQyLDg4LDExNDM2LDg4LDExNjEzLDg4LDU4MTUsODgsNDIyMTksODgsNjYxOTIsODgsNjYyMjgsODgsNjYzMjcsODgsNjY4NTUsODgsNjExLDEyMSw3NTY0LDEyMSw2NTM2OSwxMjEsMTE5ODU4LDEyMSwxMTk5MTAsMTIxLDExOTk2MiwxMjEsMTIwMDE0LDEyMSwxMjAwNjYsMTIxLDEyMDExOCwxMjEsMTIwMTcwLDEyMSwxMjAyMjIsMTIxLDEyMDI3NCwxMjEsMTIwMzI2LDEyMSwxMjAzNzgsMTIxLDEyMDQzMCwxMjEsMTIwNDgyLDEyMSw2NTUsMTIxLDc5MzUsMTIxLDQzODY2LDEyMSw5NDcsMTIxLDg1MDksMTIxLDEyMDUxNiwxMjEsMTIwNTc0LDEyMSwxMjA2MzIsMTIxLDEyMDY5MCwxMjEsMTIwNzQ4LDEyMSwxMTk5LDEyMSw0MzI3LDEyMSw3MTkwMCwxMjEsNjUzMzcsODksMTE5ODMyLDg5LDExOTg4NCw4OSwxMTk5MzYsODksMTE5OTg4LDg5LDEyMDA0MCw4OSwxMjAwOTIsODksMTIwMTQ0LDg5LDEyMDE5Niw4OSwxMjAyNDgsODksMTIwMzAwLDg5LDEyMDM1Miw4OSwxMjA0MDQsODksMTIwNDU2LDg5LDkzMyw4OSw5NzgsODksMTIwNTA4LDg5LDEyMDU2Niw4OSwxMjA2MjQsODksMTIwNjgyLDg5LDEyMDc0MCw4OSwxMTQzMiw4OSwxMTk4LDg5LDUwMzMsODksNTA1Myw4OSw0MjIyMCw4OSw5NDAxOSw4OSw3MTg0NCw4OSw2NjIyNiw4OSwxMTk4NTksMTIyLDExOTkxMSwxMjIsMTE5OTYzLDEyMiwxMjAwMTUsMTIyLDEyMDA2NywxMjIsMTIwMTE5LDEyMiwxMjAxNzEsMTIyLDEyMDIyMywxMjIsMTIwMjc1LDEyMiwxMjAzMjcsMTIyLDEyMDM3OSwxMjIsMTIwNDMxLDEyMiwxMjA0ODMsMTIyLDc0NTgsMTIyLDQzOTIzLDEyMiw3MTg3NiwxMjIsNjYyOTMsOTAsNzE5MDksOTAsNjUzMzgsOTAsODQ4NCw5MCw4NDg4LDkwLDExOTgzMyw5MCwxMTk4ODUsOTAsMTE5OTM3LDkwLDExOTk4OSw5MCwxMjAwNDEsOTAsMTIwMTk3LDkwLDEyMDI0OSw5MCwxMjAzMDEsOTAsMTIwMzUzLDkwLDEyMDQwNSw5MCwxMjA0NTcsOTAsOTE4LDkwLDEyMDQ5Myw5MCwxMjA1NTEsOTAsMTIwNjA5LDkwLDEyMDY2Nyw5MCwxMjA3MjUsOTAsNTA1OSw5MCw0MjIwNCw5MCw3MTg0OSw5MCw2NTI4MiwzNCw2NTI4NCwzNiw2NTI4NSwzNyw2NTI4NiwzOCw2NTI5MCw0Miw2NTI5MSw0Myw2NTI5NCw0Niw2NTI5NSw0Nyw2NTI5Niw0OCw2NTI5Nyw0OSw2NTI5OCw1MCw2NTI5OSw1MSw2NTMwMCw1Miw2NTMwMSw1Myw2NTMwMiw1NCw2NTMwMyw1NSw2NTMwNCw1Niw2NTMwNSw1Nyw2NTMwOCw2MCw2NTMwOSw2MSw2NTMxMCw2Miw2NTMxMiw2NCw2NTMxNiw2OCw2NTMxOCw3MCw2NTMxOSw3MSw2NTMyNCw3Niw2NTMyOSw4MSw2NTMzMCw4Miw2NTMzMyw4NSw2NTMzNCw4Niw2NTMzNSw4Nyw2NTM0Myw5NSw2NTM0Niw5OCw2NTM0OCwxMDAsNjUzNTAsMTAyLDY1MzU1LDEwNyw2NTM1NywxMDksNjUzNTgsMTEwLDY1MzYxLDExMyw2NTM2MiwxMTQsNjUzNjQsMTE2LDY1MzY1LDExNyw2NTM2NywxMTksNjUzNzAsMTIyLDY1MzcxLDEyMyw2NTM3MywxMjUsMTE5ODQ2LDEwOV0sIl9kZWZhdWx0IjpbMTYwLDMyLDgyMTEsNDUsNjUzNzQsMTI2LDY1MzA2LDU4LDY1MjgxLDMzLDgyMTYsOTYsODIxNyw5Niw4MjQ1LDk2LDE4MCw5NiwxMjQ5NCw0NywxMDQ3LDUxLDEwNzMsNTQsMTA3Miw5NywxMDQwLDY1LDEwNjgsOTgsMTA0Miw2NiwxMDg5LDk5LDEwNTcsNjcsMTA3NywxMDEsMTA0NSw2OSwxMDUzLDcyLDMwNSwxMDUsMTA1MCw3NSw5MjEsNzMsMTA1Miw3NywxMDg2LDExMSwxMDU0LDc5LDEwMDksMTEyLDEwODgsMTEyLDEwNTYsODAsMTA3NSwxMTQsMTA1OCw4NCwyMTUsMTIwLDEwOTMsMTIwLDEwNjEsODgsMTA5MSwxMjEsMTA1OSw4OSw2NTI4MywzNSw2NTI4OCw0MCw2NTI4OSw0MSw2NTI5Miw0NCw2NTMwNyw1OSw2NTMxMSw2M10sImNzIjpbNjUzNzQsMTI2LDY1MzA2LDU4LDY1MjgxLDMzLDgyMTYsOTYsODIxNyw5Niw4MjQ1LDk2LDE4MCw5NiwxMjQ5NCw0NywxMDQ3LDUxLDEwNzMsNTQsMTA3Miw5NywxMDQwLDY1LDEwNjgsOTgsMTA0Miw2NiwxMDg5LDk5LDEwNTcsNjcsMTA3NywxMDEsMTA0NSw2OSwxMDUzLDcyLDMwNSwxMDUsMTA1MCw3NSw5MjEsNzMsMTA1Miw3NywxMDg2LDExMSwxMDU0LDc5LDEwMDksMTEyLDEwODgsMTEyLDEwNTYsODAsMTA3NSwxMTQsMTA1OCw4NCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJkZSI6WzY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyMTcsOTYsODI0NSw5NiwxODAsOTYsMTI0OTQsNDcsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMTA5MywxMjAsMTA2MSw4OCwxMDkxLDEyMSwxMDU5LDg5LDY1MjgzLDM1LDY1Mjg4LDQwLDY1Mjg5LDQxLDY1MjkyLDQ0LDY1MzA3LDU5LDY1MzExLDYzXSwiZXMiOls4MjExLDQ1LDY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjQ1LDk2LDE4MCw5NiwxMjQ5NCw0NywxMDQ3LDUxLDEwNzMsNTQsMTA3Miw5NywxMDQwLDY1LDEwNjgsOTgsMTA0Miw2NiwxMDg5LDk5LDEwNTcsNjcsMTA3NywxMDEsMTA0NSw2OSwxMDUzLDcyLDMwNSwxMDUsMTA1MCw3NSwxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDIxNSwxMjAsMTA5MywxMjAsMTA2MSw4OCwxMDkxLDEyMSwxMDU5LDg5LDY1MjgzLDM1LDY1Mjg4LDQwLDY1Mjg5LDQxLDY1MjkyLDQ0LDY1MzA3LDU5LDY1MzExLDYzXSwiZnIiOls2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODIxNiw5Niw4MjQ1LDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDIxNSwxMjAsMTA5MywxMjAsMTA2MSw4OCwxMDkxLDEyMSwxMDU5LDg5LDY1MjgzLDM1LDY1Mjg4LDQwLDY1Mjg5LDQxLDY1MjkyLDQ0LDY1MzA3LDU5LDY1MzExLDYzXSwiaXQiOlsxNjAsMzIsODIxMSw0NSw2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODIxNiw5Niw4MjQ1LDk2LDE4MCw5NiwxMjQ5NCw0NywxMDQ3LDUxLDEwNzMsNTQsMTA3Miw5NywxMDQwLDY1LDEwNjgsOTgsMTA0Miw2NiwxMDg5LDk5LDEwNTcsNjcsMTA3NywxMDEsMTA0NSw2OSwxMDUzLDcyLDMwNSwxMDUsMTA1MCw3NSw5MjEsNzMsMTA1Miw3NywxMDg2LDExMSwxMDU0LDc5LDEwMDksMTEyLDEwODgsMTEyLDEwNTYsODAsMTA3NSwxMTQsMTA1OCw4NCwyMTUsMTIwLDEwOTMsMTIwLDEwNjEsODgsMTA5MSwxMjEsMTA1OSw4OSw2NTI4MywzNSw2NTI4OCw0MCw2NTI4OSw0MSw2NTI5Miw0NCw2NTMwNyw1OSw2NTMxMSw2M10sImphIjpbODIxMSw0NSw2NTMwNiw1OCw2NTI4MSwzMyw4MjE2LDk2LDgyMTcsOTYsODI0NSw5NiwxODAsOTYsMTA0Nyw1MSwxMDczLDU0LDEwNzIsOTcsMTA0MCw2NSwxMDY4LDk4LDEwNDIsNjYsMTA4OSw5OSwxMDU3LDY3LDEwNzcsMTAxLDEwNDUsNjksMTA1Myw3MiwzMDUsMTA1LDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyOTIsNDQsNjUzMDcsNTldLCJrbyI6WzgyMTEsNDUsNjUzNzQsMTI2LDY1MzA2LDU4LDY1MjgxLDMzLDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDIxNSwxMjAsMTA5MywxMjAsMTA2MSw4OCwxMDkxLDEyMSwxMDU5LDg5LDY1MjgzLDM1LDY1Mjg4LDQwLDY1Mjg5LDQxLDY1MjkyLDQ0LDY1MzA3LDU5LDY1MzExLDYzXSwicGwiOls2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODIxNiw5Niw4MjE3LDk2LDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDIxNSwxMjAsMTA5MywxMjAsMTA2MSw4OCwxMDkxLDEyMSwxMDU5LDg5LDY1MjgzLDM1LDY1Mjg4LDQwLDY1Mjg5LDQxLDY1MjkyLDQ0LDY1MzA3LDU5LDY1MzExLDYzXSwicHQtQlIiOls2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODIxNiw5Niw4MjE3LDk2LDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDIxNSwxMjAsMTA5MywxMjAsMTA2MSw4OCwxMDkxLDEyMSwxMDU5LDg5LDY1MjgzLDM1LDY1Mjg4LDQwLDY1Mjg5LDQxLDY1MjkyLDQ0LDY1MzA3LDU5LDY1MzExLDYzXSwicXBzLXBsb2MiOlsxNjAsMzIsODIxMSw0NSw2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODIxNiw5Niw4MjE3LDk2LDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDIxNSwxMjAsMTA5MywxMjAsMTA2MSw4OCwxMDkxLDEyMSwxMDU5LDg5LDY1MjgzLDM1LDY1Mjg4LDQwLDY1Mjg5LDQxLDY1MjkyLDQ0LDY1MzA3LDU5LDY1MzExLDYzXSwicnUiOls2NTM3NCwxMjYsNjUzMDYsNTgsNjUyODEsMzMsODIxNiw5Niw4MjE3LDk2LDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDMwNSwxMDUsOTIxLDczLDEwMDksMTEyLDIxNSwxMjAsNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJ0ciI6WzE2MCwzMiw4MjExLDQ1LDY1Mzc0LDEyNiw2NTMwNiw1OCw2NTI4MSwzMyw4MjQ1LDk2LDE4MCw5NiwxMjQ5NCw0NywxMDQ3LDUxLDEwNzMsNTQsMTA3Miw5NywxMDQwLDY1LDEwNjgsOTgsMTA0Miw2NiwxMDg5LDk5LDEwNTcsNjcsMTA3NywxMDEsMTA0NSw2OSwxMDUzLDcyLDEwNTAsNzUsOTIxLDczLDEwNTIsNzcsMTA4NiwxMTEsMTA1NCw3OSwxMDA5LDExMiwxMDg4LDExMiwxMDU2LDgwLDEwNzUsMTE0LDEwNTgsODQsMjE1LDEyMCwxMDkzLDEyMCwxMDYxLDg4LDEwOTEsMTIxLDEwNTksODksNjUyODMsMzUsNjUyODgsNDAsNjUyODksNDEsNjUyOTIsNDQsNjUzMDcsNTksNjUzMTEsNjNdLCJ6aC1oYW5zIjpbNjUzNzQsMTI2LDY1MzA2LDU4LDY1MjgxLDMzLDgyNDUsOTYsMTgwLDk2LDEyNDk0LDQ3LDEwNDcsNTEsMTA3Myw1NCwxMDcyLDk3LDEwNDAsNjUsMTA2OCw5OCwxMDQyLDY2LDEwODksOTksMTA1Nyw2NywxMDc3LDEwMSwxMDQ1LDY5LDEwNTMsNzIsMzA1LDEwNSwxMDUwLDc1LDkyMSw3MywxMDUyLDc3LDEwODYsMTExLDEwNTQsNzksMTAwOSwxMTIsMTA4OCwxMTIsMTA1Niw4MCwxMDc1LDExNCwxMDU4LDg0LDIxNSwxMjAsMTA5MywxMjAsMTA2MSw4OCwxMDkxLDEyMSwxMDU5LDg5LDY1Mjg4LDQwLDY1Mjg5LDQxXSwiemgtaGFudCI6WzgyMTEsNDUsNjUzNzQsMTI2LDE4MCw5NiwxMjQ5NCw0NywxMDQ3LDUxLDEwNzMsNTQsMTA3Miw5NywxMDQwLDY1LDEwNjgsOTgsMTA0Miw2NiwxMDg5LDk5LDEwNTcsNjcsMTA3NywxMDEsMTA0NSw2OSwxMDUzLDcyLDMwNSwxMDUsMTA1MCw3NSw5MjEsNzMsMTA1Miw3NywxMDg2LDExMSwxMDU0LDc5LDEwMDksMTEyLDEwODgsMTEyLDEwNTYsODAsMTA3NSwxMTQsMTA1OCw4NCwyMTUsMTIwLDEwOTMsMTIwLDEwNjEsODgsMTA5MSwxMjEsMTA1OSw4OSw2NTI4MywzNSw2NTMwNyw1OV19JykpLG50LmNhY2hlPW5ldyBYYShlPT57ZnVuY3Rpb24gdCh1KXtjb25zdCBmPW5ldyBNYXA7Zm9yKGxldCBoPTA7aDx1Lmxlbmd0aDtoKz0yKWYuc2V0KHVbaF0sdVtoKzFdKTtyZXR1cm4gZn1mdW5jdGlvbiBuKHUsZil7Y29uc3QgaD1uZXcgTWFwKHUpO2Zvcihjb25zdFtkLGddb2YgZiloLnNldChkLGcpO3JldHVybiBofWZ1bmN0aW9uIHIodSxmKXtpZighdSlyZXR1cm4gZjtjb25zdCBoPW5ldyBNYXA7Zm9yKGNvbnN0W2QsZ11vZiB1KWYuaGFzKGQpJiZoLnNldChkLGcpO3JldHVybiBofWNvbnN0IGk9ZHQuYW1iaWd1b3VzQ2hhcmFjdGVyRGF0YS52YWx1ZTtsZXQgcz1lLmZpbHRlcih1PT4hdS5zdGFydHNXaXRoKCJfIikmJnUgaW4gaSk7cy5sZW5ndGg9PT0wJiYocz1bIl9kZWZhdWx0Il0pO2xldCBhO2Zvcihjb25zdCB1IG9mIHMpe2NvbnN0IGY9dChpW3VdKTthPXIoYSxmKX1jb25zdCBvPXQoaS5fY29tbW9uKSxsPW4obyxhKTtyZXR1cm4gbmV3IGR0KGwpfSksbnQuX2xvY2FsZXM9bmV3IFVyKCgpPT5PYmplY3Qua2V5cyhkdC5hbWJpZ3VvdXNDaGFyYWN0ZXJEYXRhLnZhbHVlKS5maWx0ZXIoZT0+IWUuc3RhcnRzV2l0aCgiXyIpKSk7Y2xhc3MgV2V7c3RhdGljIGdldFJhd0RhdGEoKXtyZXR1cm4gSlNPTi5wYXJzZSgiWzksMTAsMTEsMTIsMTMsMzIsMTI3LDE2MCwxNzMsODQ3LDE1NjQsNDQ0Nyw0NDQ4LDYwNjgsNjA2OSw2MTU1LDYxNTYsNjE1Nyw2MTU4LDczNTUsNzM1Niw4MTkyLDgxOTMsODE5NCw4MTk1LDgxOTYsODE5Nyw4MTk4LDgxOTksODIwMCw4MjAxLDgyMDIsODIwMyw4MjA0LDgyMDUsODIwNiw4MjA3LDgyMzQsODIzNSw4MjM2LDgyMzcsODIzOCw4MjM5LDgyODcsODI4OCw4Mjg5LDgyOTAsODI5MSw4MjkyLDgyOTMsODI5NCw4Mjk1LDgyOTYsODI5Nyw4Mjk4LDgyOTksODMwMCw4MzAxLDgzMDIsODMwMywxMDI0MCwxMjI4OCwxMjY0NCw2NTAyNCw2NTAyNSw2NTAyNiw2NTAyNyw2NTAyOCw2NTAyOSw2NTAzMCw2NTAzMSw2NTAzMiw2NTAzMyw2NTAzNCw2NTAzNSw2NTAzNiw2NTAzNyw2NTAzOCw2NTAzOSw2NTI3OSw2NTQ0MCw2NTUyMCw2NTUyMSw2NTUyMiw2NTUyMyw2NTUyNCw2NTUyNSw2NTUyNiw2NTUyNyw2NTUyOCw2NTUzMiw3ODg0NCwxMTkxNTUsMTE5MTU2LDExOTE1NywxMTkxNTgsMTE5MTU5LDExOTE2MCwxMTkxNjEsMTE5MTYyLDkxNzUwNCw5MTc1MDUsOTE3NTA2LDkxNzUwNyw5MTc1MDgsOTE3NTA5LDkxNzUxMCw5MTc1MTEsOTE3NTEyLDkxNzUxMyw5MTc1MTQsOTE3NTE1LDkxNzUxNiw5MTc1MTcsOTE3NTE4LDkxNzUxOSw5MTc1MjAsOTE3NTIxLDkxNzUyMiw5MTc1MjMsOTE3NTI0LDkxNzUyNSw5MTc1MjYsOTE3NTI3LDkxNzUyOCw5MTc1MjksOTE3NTMwLDkxNzUzMSw5MTc1MzIsOTE3NTMzLDkxNzUzNCw5MTc1MzUsOTE3NTM2LDkxNzUzNyw5MTc1MzgsOTE3NTM5LDkxNzU0MCw5MTc1NDEsOTE3NTQyLDkxNzU0Myw5MTc1NDQsOTE3NTQ1LDkxNzU0Niw5MTc1NDcsOTE3NTQ4LDkxNzU0OSw5MTc1NTAsOTE3NTUxLDkxNzU1Miw5MTc1NTMsOTE3NTU0LDkxNzU1NSw5MTc1NTYsOTE3NTU3LDkxNzU1OCw5MTc1NTksOTE3NTYwLDkxNzU2MSw5MTc1NjIsOTE3NTYzLDkxNzU2NCw5MTc1NjUsOTE3NTY2LDkxNzU2Nyw5MTc1NjgsOTE3NTY5LDkxNzU3MCw5MTc1NzEsOTE3NTcyLDkxNzU3Myw5MTc1NzQsOTE3NTc1LDkxNzU3Niw5MTc1NzcsOTE3NTc4LDkxNzU3OSw5MTc1ODAsOTE3NTgxLDkxNzU4Miw5MTc1ODMsOTE3NTg0LDkxNzU4NSw5MTc1ODYsOTE3NTg3LDkxNzU4OCw5MTc1ODksOTE3NTkwLDkxNzU5MSw5MTc1OTIsOTE3NTkzLDkxNzU5NCw5MTc1OTUsOTE3NTk2LDkxNzU5Nyw5MTc1OTgsOTE3NTk5LDkxNzYwMCw5MTc2MDEsOTE3NjAyLDkxNzYwMyw5MTc2MDQsOTE3NjA1LDkxNzYwNiw5MTc2MDcsOTE3NjA4LDkxNzYwOSw5MTc2MTAsOTE3NjExLDkxNzYxMiw5MTc2MTMsOTE3NjE0LDkxNzYxNSw5MTc2MTYsOTE3NjE3LDkxNzYxOCw5MTc2MTksOTE3NjIwLDkxNzYyMSw5MTc2MjIsOTE3NjIzLDkxNzYyNCw5MTc2MjUsOTE3NjI2LDkxNzYyNyw5MTc2MjgsOTE3NjI5LDkxNzYzMCw5MTc2MzEsOTE3NzYwLDkxNzc2MSw5MTc3NjIsOTE3NzYzLDkxNzc2NCw5MTc3NjUsOTE3NzY2LDkxNzc2Nyw5MTc3NjgsOTE3NzY5LDkxNzc3MCw5MTc3NzEsOTE3NzcyLDkxNzc3Myw5MTc3NzQsOTE3Nzc1LDkxNzc3Niw5MTc3NzcsOTE3Nzc4LDkxNzc3OSw5MTc3ODAsOTE3NzgxLDkxNzc4Miw5MTc3ODMsOTE3Nzg0LDkxNzc4NSw5MTc3ODYsOTE3Nzg3LDkxNzc4OCw5MTc3ODksOTE3NzkwLDkxNzc5MSw5MTc3OTIsOTE3NzkzLDkxNzc5NCw5MTc3OTUsOTE3Nzk2LDkxNzc5Nyw5MTc3OTgsOTE3Nzk5LDkxNzgwMCw5MTc4MDEsOTE3ODAyLDkxNzgwMyw5MTc4MDQsOTE3ODA1LDkxNzgwNiw5MTc4MDcsOTE3ODA4LDkxNzgwOSw5MTc4MTAsOTE3ODExLDkxNzgxMiw5MTc4MTMsOTE3ODE0LDkxNzgxNSw5MTc4MTYsOTE3ODE3LDkxNzgxOCw5MTc4MTksOTE3ODIwLDkxNzgyMSw5MTc4MjIsOTE3ODIzLDkxNzgyNCw5MTc4MjUsOTE3ODI2LDkxNzgyNyw5MTc4MjgsOTE3ODI5LDkxNzgzMCw5MTc4MzEsOTE3ODMyLDkxNzgzMyw5MTc4MzQsOTE3ODM1LDkxNzgzNiw5MTc4MzcsOTE3ODM4LDkxNzgzOSw5MTc4NDAsOTE3ODQxLDkxNzg0Miw5MTc4NDMsOTE3ODQ0LDkxNzg0NSw5MTc4NDYsOTE3ODQ3LDkxNzg0OCw5MTc4NDksOTE3ODUwLDkxNzg1MSw5MTc4NTIsOTE3ODUzLDkxNzg1NCw5MTc4NTUsOTE3ODU2LDkxNzg1Nyw5MTc4NTgsOTE3ODU5LDkxNzg2MCw5MTc4NjEsOTE3ODYyLDkxNzg2Myw5MTc4NjQsOTE3ODY1LDkxNzg2Niw5MTc4NjcsOTE3ODY4LDkxNzg2OSw5MTc4NzAsOTE3ODcxLDkxNzg3Miw5MTc4NzMsOTE3ODc0LDkxNzg3NSw5MTc4NzYsOTE3ODc3LDkxNzg3OCw5MTc4NzksOTE3ODgwLDkxNzg4MSw5MTc4ODIsOTE3ODgzLDkxNzg4NCw5MTc4ODUsOTE3ODg2LDkxNzg4Nyw5MTc4ODgsOTE3ODg5LDkxNzg5MCw5MTc4OTEsOTE3ODkyLDkxNzg5Myw5MTc4OTQsOTE3ODk1LDkxNzg5Niw5MTc4OTcsOTE3ODk4LDkxNzg5OSw5MTc5MDAsOTE3OTAxLDkxNzkwMiw5MTc5MDMsOTE3OTA0LDkxNzkwNSw5MTc5MDYsOTE3OTA3LDkxNzkwOCw5MTc5MDksOTE3OTEwLDkxNzkxMSw5MTc5MTIsOTE3OTEzLDkxNzkxNCw5MTc5MTUsOTE3OTE2LDkxNzkxNyw5MTc5MTgsOTE3OTE5LDkxNzkyMCw5MTc5MjEsOTE3OTIyLDkxNzkyMyw5MTc5MjQsOTE3OTI1LDkxNzkyNiw5MTc5MjcsOTE3OTI4LDkxNzkyOSw5MTc5MzAsOTE3OTMxLDkxNzkzMiw5MTc5MzMsOTE3OTM0LDkxNzkzNSw5MTc5MzYsOTE3OTM3LDkxNzkzOCw5MTc5MzksOTE3OTQwLDkxNzk0MSw5MTc5NDIsOTE3OTQzLDkxNzk0NCw5MTc5NDUsOTE3OTQ2LDkxNzk0Nyw5MTc5NDgsOTE3OTQ5LDkxNzk1MCw5MTc5NTEsOTE3OTUyLDkxNzk1Myw5MTc5NTQsOTE3OTU1LDkxNzk1Niw5MTc5NTcsOTE3OTU4LDkxNzk1OSw5MTc5NjAsOTE3OTYxLDkxNzk2Miw5MTc5NjMsOTE3OTY0LDkxNzk2NSw5MTc5NjYsOTE3OTY3LDkxNzk2OCw5MTc5NjksOTE3OTcwLDkxNzk3MSw5MTc5NzIsOTE3OTczLDkxNzk3NCw5MTc5NzUsOTE3OTc2LDkxNzk3Nyw5MTc5NzgsOTE3OTc5LDkxNzk4MCw5MTc5ODEsOTE3OTgyLDkxNzk4Myw5MTc5ODQsOTE3OTg1LDkxNzk4Niw5MTc5ODcsOTE3OTg4LDkxNzk4OSw5MTc5OTAsOTE3OTkxLDkxNzk5Miw5MTc5OTMsOTE3OTk0LDkxNzk5NSw5MTc5OTYsOTE3OTk3LDkxNzk5OCw5MTc5OTldIil9c3RhdGljIGdldERhdGEoKXtyZXR1cm4gdGhpcy5fZGF0YXx8KHRoaXMuX2RhdGE9bmV3IFNldChXZS5nZXRSYXdEYXRhKCkpKSx0aGlzLl9kYXRhfXN0YXRpYyBpc0ludmlzaWJsZUNoYXJhY3Rlcih0KXtyZXR1cm4gV2UuZ2V0RGF0YSgpLmhhcyh0KX1zdGF0aWMgZ2V0IGNvZGVQb2ludHMoKXtyZXR1cm4gV2UuZ2V0RGF0YSgpfX1XZS5fZGF0YT12b2lkIDA7Y29uc3Qgc289IiRpbml0aWFsaXplIjtjbGFzcyBhb3tjb25zdHJ1Y3Rvcih0LG4scixpKXt0aGlzLnZzV29ya2VyPXQsdGhpcy5yZXE9bix0aGlzLm1ldGhvZD1yLHRoaXMuYXJncz1pLHRoaXMudHlwZT0wfX1jbGFzcyBxcntjb25zdHJ1Y3Rvcih0LG4scixpKXt0aGlzLnZzV29ya2VyPXQsdGhpcy5zZXE9bix0aGlzLnJlcz1yLHRoaXMuZXJyPWksdGhpcy50eXBlPTF9fWNsYXNzIG9ve2NvbnN0cnVjdG9yKHQsbixyLGkpe3RoaXMudnNXb3JrZXI9dCx0aGlzLnJlcT1uLHRoaXMuZXZlbnROYW1lPXIsdGhpcy5hcmc9aSx0aGlzLnR5cGU9Mn19Y2xhc3MgbG97Y29uc3RydWN0b3IodCxuLHIpe3RoaXMudnNXb3JrZXI9dCx0aGlzLnJlcT1uLHRoaXMuZXZlbnQ9cix0aGlzLnR5cGU9M319Y2xhc3MgdW97Y29uc3RydWN0b3IodCxuKXt0aGlzLnZzV29ya2VyPXQsdGhpcy5yZXE9bix0aGlzLnR5cGU9NH19Y2xhc3MgY297Y29uc3RydWN0b3IodCl7dGhpcy5fd29ya2VySWQ9LTEsdGhpcy5faGFuZGxlcj10LHRoaXMuX2xhc3RTZW50UmVxPTAsdGhpcy5fcGVuZGluZ1JlcGxpZXM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9wZW5kaW5nRW1pdHRlcnM9bmV3IE1hcCx0aGlzLl9wZW5kaW5nRXZlbnRzPW5ldyBNYXB9c2V0V29ya2VySWQodCl7dGhpcy5fd29ya2VySWQ9dH1zZW5kTWVzc2FnZSh0LG4pe2NvbnN0IHI9U3RyaW5nKCsrdGhpcy5fbGFzdFNlbnRSZXEpO3JldHVybiBuZXcgUHJvbWlzZSgoaSxzKT0+e3RoaXMuX3BlbmRpbmdSZXBsaWVzW3JdPXtyZXNvbHZlOmkscmVqZWN0OnN9LHRoaXMuX3NlbmQobmV3IGFvKHRoaXMuX3dvcmtlcklkLHIsdCxuKSl9KX1saXN0ZW4odCxuKXtsZXQgcj1udWxsO2NvbnN0IGk9bmV3IEFlKHtvbldpbGxBZGRGaXJzdExpc3RlbmVyOigpPT57cj1TdHJpbmcoKyt0aGlzLl9sYXN0U2VudFJlcSksdGhpcy5fcGVuZGluZ0VtaXR0ZXJzLnNldChyLGkpLHRoaXMuX3NlbmQobmV3IG9vKHRoaXMuX3dvcmtlcklkLHIsdCxuKSl9LG9uRGlkUmVtb3ZlTGFzdExpc3RlbmVyOigpPT57dGhpcy5fcGVuZGluZ0VtaXR0ZXJzLmRlbGV0ZShyKSx0aGlzLl9zZW5kKG5ldyB1byh0aGlzLl93b3JrZXJJZCxyKSkscj1udWxsfX0pO3JldHVybiBpLmV2ZW50fWhhbmRsZU1lc3NhZ2UodCl7IXR8fCF0LnZzV29ya2VyfHx0aGlzLl93b3JrZXJJZCE9PS0xJiZ0LnZzV29ya2VyIT09dGhpcy5fd29ya2VySWR8fHRoaXMuX2hhbmRsZU1lc3NhZ2UodCl9X2hhbmRsZU1lc3NhZ2UodCl7c3dpdGNoKHQudHlwZSl7Y2FzZSAxOnJldHVybiB0aGlzLl9oYW5kbGVSZXBseU1lc3NhZ2UodCk7Y2FzZSAwOnJldHVybiB0aGlzLl9oYW5kbGVSZXF1ZXN0TWVzc2FnZSh0KTtjYXNlIDI6cmV0dXJuIHRoaXMuX2hhbmRsZVN1YnNjcmliZUV2ZW50TWVzc2FnZSh0KTtjYXNlIDM6cmV0dXJuIHRoaXMuX2hhbmRsZUV2ZW50TWVzc2FnZSh0KTtjYXNlIDQ6cmV0dXJuIHRoaXMuX2hhbmRsZVVuc3Vic2NyaWJlRXZlbnRNZXNzYWdlKHQpfX1faGFuZGxlUmVwbHlNZXNzYWdlKHQpe2lmKCF0aGlzLl9wZW5kaW5nUmVwbGllc1t0LnNlcV0pcmV0dXJuO2NvbnN0IG49dGhpcy5fcGVuZGluZ1JlcGxpZXNbdC5zZXFdO2lmKGRlbGV0ZSB0aGlzLl9wZW5kaW5nUmVwbGllc1t0LnNlcV0sdC5lcnIpe2xldCByPXQuZXJyO3QuZXJyLiRpc0Vycm9yJiYocj1uZXcgRXJyb3Isci5uYW1lPXQuZXJyLm5hbWUsci5tZXNzYWdlPXQuZXJyLm1lc3NhZ2Usci5zdGFjaz10LmVyci5zdGFjayksbi5yZWplY3Qocik7cmV0dXJufW4ucmVzb2x2ZSh0LnJlcyl9X2hhbmRsZVJlcXVlc3RNZXNzYWdlKHQpe2NvbnN0IG49dC5yZXE7dGhpcy5faGFuZGxlci5oYW5kbGVNZXNzYWdlKHQubWV0aG9kLHQuYXJncykudGhlbihpPT57dGhpcy5fc2VuZChuZXcgcXIodGhpcy5fd29ya2VySWQsbixpLHZvaWQgMCkpfSxpPT57aS5kZXRhaWwgaW5zdGFuY2VvZiBFcnJvciYmKGkuZGV0YWlsPURyKGkuZGV0YWlsKSksdGhpcy5fc2VuZChuZXcgcXIodGhpcy5fd29ya2VySWQsbix2b2lkIDAsRHIoaSkpKX0pfV9oYW5kbGVTdWJzY3JpYmVFdmVudE1lc3NhZ2UodCl7Y29uc3Qgbj10LnJlcSxyPXRoaXMuX2hhbmRsZXIuaGFuZGxlRXZlbnQodC5ldmVudE5hbWUsdC5hcmcpKGk9Pnt0aGlzLl9zZW5kKG5ldyBsbyh0aGlzLl93b3JrZXJJZCxuLGkpKX0pO3RoaXMuX3BlbmRpbmdFdmVudHMuc2V0KG4scil9X2hhbmRsZUV2ZW50TWVzc2FnZSh0KXt0aGlzLl9wZW5kaW5nRW1pdHRlcnMuaGFzKHQucmVxKSYmdGhpcy5fcGVuZGluZ0VtaXR0ZXJzLmdldCh0LnJlcSkuZmlyZSh0LmV2ZW50KX1faGFuZGxlVW5zdWJzY3JpYmVFdmVudE1lc3NhZ2UodCl7dGhpcy5fcGVuZGluZ0V2ZW50cy5oYXModC5yZXEpJiYodGhpcy5fcGVuZGluZ0V2ZW50cy5nZXQodC5yZXEpLmRpc3Bvc2UoKSx0aGlzLl9wZW5kaW5nRXZlbnRzLmRlbGV0ZSh0LnJlcSkpfV9zZW5kKHQpe2NvbnN0IG49W107aWYodC50eXBlPT09MClmb3IobGV0IHI9MDtyPHQuYXJncy5sZW5ndGg7cisrKXQuYXJnc1tyXWluc3RhbmNlb2YgQXJyYXlCdWZmZXImJm4ucHVzaCh0LmFyZ3Nbcl0pO2Vsc2UgdC50eXBlPT09MSYmdC5yZXMgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmbi5wdXNoKHQucmVzKTt0aGlzLl9oYW5kbGVyLnNlbmRNZXNzYWdlKHQsbil9fWZ1bmN0aW9uIEJyKGUpe3JldHVybiBlWzBdPT09Im8iJiZlWzFdPT09Im4iJiZqcihlLmNoYXJDb2RlQXQoMikpfWZ1bmN0aW9uICRyKGUpe3JldHVybi9eb25EeW5hbWljLy50ZXN0KGUpJiZqcihlLmNoYXJDb2RlQXQoOSkpfWZ1bmN0aW9uIGZvKGUsdCxuKXtjb25zdCByPWE9PmZ1bmN0aW9uKCl7Y29uc3Qgbz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMsMCk7cmV0dXJuIHQoYSxvKX0saT1hPT5mdW5jdGlvbihvKXtyZXR1cm4gbihhLG8pfSxzPXt9O2Zvcihjb25zdCBhIG9mIGUpe2lmKCRyKGEpKXtzW2FdPWkoYSk7Y29udGludWV9aWYoQnIoYSkpe3NbYV09bihhLHZvaWQgMCk7Y29udGludWV9c1thXT1yKGEpfXJldHVybiBzfWNsYXNzIGhve2NvbnN0cnVjdG9yKHQsbil7dGhpcy5fcmVxdWVzdEhhbmRsZXJGYWN0b3J5PW4sdGhpcy5fcmVxdWVzdEhhbmRsZXI9bnVsbCx0aGlzLl9wcm90b2NvbD1uZXcgY28oe3NlbmRNZXNzYWdlOihyLGkpPT57dChyLGkpfSxoYW5kbGVNZXNzYWdlOihyLGkpPT50aGlzLl9oYW5kbGVNZXNzYWdlKHIsaSksaGFuZGxlRXZlbnQ6KHIsaSk9PnRoaXMuX2hhbmRsZUV2ZW50KHIsaSl9KX1vbm1lc3NhZ2UodCl7dGhpcy5fcHJvdG9jb2wuaGFuZGxlTWVzc2FnZSh0KX1faGFuZGxlTWVzc2FnZSh0LG4pe2lmKHQ9PT1zbylyZXR1cm4gdGhpcy5pbml0aWFsaXplKG5bMF0sblsxXSxuWzJdLG5bM10pO2lmKCF0aGlzLl9yZXF1ZXN0SGFuZGxlcnx8dHlwZW9mIHRoaXMuX3JlcXVlc3RIYW5kbGVyW3RdIT0iZnVuY3Rpb24iKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIk1pc3NpbmcgcmVxdWVzdEhhbmRsZXIgb3IgbWV0aG9kOiAiK3QpKTt0cnl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9yZXF1ZXN0SGFuZGxlclt0XS5hcHBseSh0aGlzLl9yZXF1ZXN0SGFuZGxlcixuKSl9Y2F0Y2gocil7cmV0dXJuIFByb21pc2UucmVqZWN0KHIpfX1faGFuZGxlRXZlbnQodCxuKXtpZighdGhpcy5fcmVxdWVzdEhhbmRsZXIpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHJlcXVlc3RIYW5kbGVyIik7aWYoJHIodCkpe2NvbnN0IHI9dGhpcy5fcmVxdWVzdEhhbmRsZXJbdF0uY2FsbCh0aGlzLl9yZXF1ZXN0SGFuZGxlcixuKTtpZih0eXBlb2YgciE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgZHluYW1pYyBldmVudCAke3R9IG9uIHJlcXVlc3QgaGFuZGxlci5gKTtyZXR1cm4gcn1pZihCcih0KSl7Y29uc3Qgcj10aGlzLl9yZXF1ZXN0SGFuZGxlclt0XTtpZih0eXBlb2YgciE9ImZ1bmN0aW9uIil0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgZXZlbnQgJHt0fSBvbiByZXF1ZXN0IGhhbmRsZXIuYCk7cmV0dXJuIHJ9dGhyb3cgbmV3IEVycm9yKGBNYWxmb3JtZWQgZXZlbnQgbmFtZSAke3R9YCl9aW5pdGlhbGl6ZSh0LG4scixpKXt0aGlzLl9wcm90b2NvbC5zZXRXb3JrZXJJZCh0KTtjb25zdCBvPWZvKGksKGwsdSk9PnRoaXMuX3Byb3RvY29sLnNlbmRNZXNzYWdlKGwsdSksKGwsdSk9PnRoaXMuX3Byb3RvY29sLmxpc3RlbihsLHUpKTtyZXR1cm4gdGhpcy5fcmVxdWVzdEhhbmRsZXJGYWN0b3J5Pyh0aGlzLl9yZXF1ZXN0SGFuZGxlcj10aGlzLl9yZXF1ZXN0SGFuZGxlckZhY3RvcnkobyksUHJvbWlzZS5yZXNvbHZlKFRuKHRoaXMuX3JlcXVlc3RIYW5kbGVyKSkpOihuJiYodHlwZW9mIG4uYmFzZVVybDwidSImJmRlbGV0ZSBuLmJhc2VVcmwsdHlwZW9mIG4ucGF0aHM8InUiJiZ0eXBlb2Ygbi5wYXRocy52czwidSImJmRlbGV0ZSBuLnBhdGhzLnZzLHR5cGVvZiBuLnRydXN0ZWRUeXBlc1BvbGljeTwidSImJmRlbGV0ZSBuLnRydXN0ZWRUeXBlc1BvbGljeSxuLmNhdGNoRXJyb3I9ITAsZ2xvYmFsVGhpcy5yZXF1aXJlLmNvbmZpZyhuKSksbmV3IFByb21pc2UoKGwsdSk9Pntjb25zdCBmPWdsb2JhbFRoaXMucmVxdWlyZTtmKFtyXSxoPT57aWYodGhpcy5fcmVxdWVzdEhhbmRsZXI9aC5jcmVhdGUobyksIXRoaXMuX3JlcXVlc3RIYW5kbGVyKXt1KG5ldyBFcnJvcigiTm8gUmVxdWVzdEhhbmRsZXIhIikpO3JldHVybn1sKFRuKHRoaXMuX3JlcXVlc3RIYW5kbGVyKSl9LHUpfSkpfX1jbGFzcyBIZXtjb25zdHJ1Y3Rvcih0LG4scixpKXt0aGlzLm9yaWdpbmFsU3RhcnQ9dCx0aGlzLm9yaWdpbmFsTGVuZ3RoPW4sdGhpcy5tb2RpZmllZFN0YXJ0PXIsdGhpcy5tb2RpZmllZExlbmd0aD1pfWdldE9yaWdpbmFsRW5kKCl7cmV0dXJuIHRoaXMub3JpZ2luYWxTdGFydCt0aGlzLm9yaWdpbmFsTGVuZ3RofWdldE1vZGlmaWVkRW5kKCl7cmV0dXJuIHRoaXMubW9kaWZpZWRTdGFydCt0aGlzLm1vZGlmaWVkTGVuZ3RofX1mdW5jdGlvbiBXcihlLHQpe3JldHVybih0PDw1KS10K2V8MH1mdW5jdGlvbiBnbyhlLHQpe3Q9V3IoMTQ5NDE3LHQpO2ZvcihsZXQgbj0wLHI9ZS5sZW5ndGg7bjxyO24rKyl0PVdyKGUuY2hhckNvZGVBdChuKSx0KTtyZXR1cm4gdH1jbGFzcyBIcntjb25zdHJ1Y3Rvcih0KXt0aGlzLnNvdXJjZT10fWdldEVsZW1lbnRzKCl7Y29uc3QgdD10aGlzLnNvdXJjZSxuPW5ldyBJbnQzMkFycmF5KHQubGVuZ3RoKTtmb3IobGV0IHI9MCxpPXQubGVuZ3RoO3I8aTtyKyspbltyXT10LmNoYXJDb2RlQXQocik7cmV0dXJuIG59fWZ1bmN0aW9uIG1vKGUsdCxuKXtyZXR1cm4gbmV3IHplKG5ldyBIcihlKSxuZXcgSHIodCkpLkNvbXB1dGVEaWZmKG4pLmNoYW5nZXN9Y2xhc3MgZ3R7c3RhdGljIEFzc2VydCh0LG4pe2lmKCF0KXRocm93IG5ldyBFcnJvcihuKX19Y2xhc3MgbXR7c3RhdGljIENvcHkodCxuLHIsaSxzKXtmb3IobGV0IGE9MDthPHM7YSsrKXJbaSthXT10W24rYV19c3RhdGljIENvcHkyKHQsbixyLGkscyl7Zm9yKGxldCBhPTA7YTxzO2ErKylyW2krYV09dFtuK2FdfX1jbGFzcyB6cntjb25zdHJ1Y3Rvcigpe3RoaXMubV9jaGFuZ2VzPVtdLHRoaXMubV9vcmlnaW5hbFN0YXJ0PTEwNzM3NDE4MjQsdGhpcy5tX21vZGlmaWVkU3RhcnQ9MTA3Mzc0MTgyNCx0aGlzLm1fb3JpZ2luYWxDb3VudD0wLHRoaXMubV9tb2RpZmllZENvdW50PTB9TWFya05leHRDaGFuZ2UoKXsodGhpcy5tX29yaWdpbmFsQ291bnQ+MHx8dGhpcy5tX21vZGlmaWVkQ291bnQ+MCkmJnRoaXMubV9jaGFuZ2VzLnB1c2gobmV3IEhlKHRoaXMubV9vcmlnaW5hbFN0YXJ0LHRoaXMubV9vcmlnaW5hbENvdW50LHRoaXMubV9tb2RpZmllZFN0YXJ0LHRoaXMubV9tb2RpZmllZENvdW50KSksdGhpcy5tX29yaWdpbmFsQ291bnQ9MCx0aGlzLm1fbW9kaWZpZWRDb3VudD0wLHRoaXMubV9vcmlnaW5hbFN0YXJ0PTEwNzM3NDE4MjQsdGhpcy5tX21vZGlmaWVkU3RhcnQ9MTA3Mzc0MTgyNH1BZGRPcmlnaW5hbEVsZW1lbnQodCxuKXt0aGlzLm1fb3JpZ2luYWxTdGFydD1NYXRoLm1pbih0aGlzLm1fb3JpZ2luYWxTdGFydCx0KSx0aGlzLm1fbW9kaWZpZWRTdGFydD1NYXRoLm1pbih0aGlzLm1fbW9kaWZpZWRTdGFydCxuKSx0aGlzLm1fb3JpZ2luYWxDb3VudCsrfUFkZE1vZGlmaWVkRWxlbWVudCh0LG4pe3RoaXMubV9vcmlnaW5hbFN0YXJ0PU1hdGgubWluKHRoaXMubV9vcmlnaW5hbFN0YXJ0LHQpLHRoaXMubV9tb2RpZmllZFN0YXJ0PU1hdGgubWluKHRoaXMubV9tb2RpZmllZFN0YXJ0LG4pLHRoaXMubV9tb2RpZmllZENvdW50Kyt9Z2V0Q2hhbmdlcygpe3JldHVybih0aGlzLm1fb3JpZ2luYWxDb3VudD4wfHx0aGlzLm1fbW9kaWZpZWRDb3VudD4wKSYmdGhpcy5NYXJrTmV4dENoYW5nZSgpLHRoaXMubV9jaGFuZ2VzfWdldFJldmVyc2VDaGFuZ2VzKCl7cmV0dXJuKHRoaXMubV9vcmlnaW5hbENvdW50PjB8fHRoaXMubV9tb2RpZmllZENvdW50PjApJiZ0aGlzLk1hcmtOZXh0Q2hhbmdlKCksdGhpcy5tX2NoYW5nZXMucmV2ZXJzZSgpLHRoaXMubV9jaGFuZ2VzfX1jbGFzcyB6ZXtjb25zdHJ1Y3Rvcih0LG4scj1udWxsKXt0aGlzLkNvbnRpbnVlUHJvY2Vzc2luZ1ByZWRpY2F0ZT1yLHRoaXMuX29yaWdpbmFsU2VxdWVuY2U9dCx0aGlzLl9tb2RpZmllZFNlcXVlbmNlPW47Y29uc3RbaSxzLGFdPXplLl9nZXRFbGVtZW50cyh0KSxbbyxsLHVdPXplLl9nZXRFbGVtZW50cyhuKTt0aGlzLl9oYXNTdHJpbmdzPWEmJnUsdGhpcy5fb3JpZ2luYWxTdHJpbmdFbGVtZW50cz1pLHRoaXMuX29yaWdpbmFsRWxlbWVudHNPckhhc2g9cyx0aGlzLl9tb2RpZmllZFN0cmluZ0VsZW1lbnRzPW8sdGhpcy5fbW9kaWZpZWRFbGVtZW50c09ySGFzaD1sLHRoaXMubV9mb3J3YXJkSGlzdG9yeT1bXSx0aGlzLm1fcmV2ZXJzZUhpc3Rvcnk9W119c3RhdGljIF9pc1N0cmluZ0FycmF5KHQpe3JldHVybiB0Lmxlbmd0aD4wJiZ0eXBlb2YgdFswXT09InN0cmluZyJ9c3RhdGljIF9nZXRFbGVtZW50cyh0KXtjb25zdCBuPXQuZ2V0RWxlbWVudHMoKTtpZih6ZS5faXNTdHJpbmdBcnJheShuKSl7Y29uc3Qgcj1uZXcgSW50MzJBcnJheShuLmxlbmd0aCk7Zm9yKGxldCBpPTAscz1uLmxlbmd0aDtpPHM7aSsrKXJbaV09Z28obltpXSwwKTtyZXR1cm5bbixyLCEwXX1yZXR1cm4gbiBpbnN0YW5jZW9mIEludDMyQXJyYXk/W1tdLG4sITFdOltbXSxuZXcgSW50MzJBcnJheShuKSwhMV19RWxlbWVudHNBcmVFcXVhbCh0LG4pe3JldHVybiB0aGlzLl9vcmlnaW5hbEVsZW1lbnRzT3JIYXNoW3RdIT09dGhpcy5fbW9kaWZpZWRFbGVtZW50c09ySGFzaFtuXT8hMTp0aGlzLl9oYXNTdHJpbmdzP3RoaXMuX29yaWdpbmFsU3RyaW5nRWxlbWVudHNbdF09PT10aGlzLl9tb2RpZmllZFN0cmluZ0VsZW1lbnRzW25dOiEwfUVsZW1lbnRzQXJlU3RyaWN0RXF1YWwodCxuKXtpZighdGhpcy5FbGVtZW50c0FyZUVxdWFsKHQsbikpcmV0dXJuITE7Y29uc3Qgcj16ZS5fZ2V0U3RyaWN0RWxlbWVudCh0aGlzLl9vcmlnaW5hbFNlcXVlbmNlLHQpLGk9emUuX2dldFN0cmljdEVsZW1lbnQodGhpcy5fbW9kaWZpZWRTZXF1ZW5jZSxuKTtyZXR1cm4gcj09PWl9c3RhdGljIF9nZXRTdHJpY3RFbGVtZW50KHQsbil7cmV0dXJuIHR5cGVvZiB0LmdldFN0cmljdEVsZW1lbnQ9PSJmdW5jdGlvbiI/dC5nZXRTdHJpY3RFbGVtZW50KG4pOm51bGx9T3JpZ2luYWxFbGVtZW50c0FyZUVxdWFsKHQsbil7cmV0dXJuIHRoaXMuX29yaWdpbmFsRWxlbWVudHNPckhhc2hbdF0hPT10aGlzLl9vcmlnaW5hbEVsZW1lbnRzT3JIYXNoW25dPyExOnRoaXMuX2hhc1N0cmluZ3M/dGhpcy5fb3JpZ2luYWxTdHJpbmdFbGVtZW50c1t0XT09PXRoaXMuX29yaWdpbmFsU3RyaW5nRWxlbWVudHNbbl06ITB9TW9kaWZpZWRFbGVtZW50c0FyZUVxdWFsKHQsbil7cmV0dXJuIHRoaXMuX21vZGlmaWVkRWxlbWVudHNPckhhc2hbdF0hPT10aGlzLl9tb2RpZmllZEVsZW1lbnRzT3JIYXNoW25dPyExOnRoaXMuX2hhc1N0cmluZ3M/dGhpcy5fbW9kaWZpZWRTdHJpbmdFbGVtZW50c1t0XT09PXRoaXMuX21vZGlmaWVkU3RyaW5nRWxlbWVudHNbbl06ITB9Q29tcHV0ZURpZmYodCl7cmV0dXJuIHRoaXMuX0NvbXB1dGVEaWZmKDAsdGhpcy5fb3JpZ2luYWxFbGVtZW50c09ySGFzaC5sZW5ndGgtMSwwLHRoaXMuX21vZGlmaWVkRWxlbWVudHNPckhhc2gubGVuZ3RoLTEsdCl9X0NvbXB1dGVEaWZmKHQsbixyLGkscyl7Y29uc3QgYT1bITFdO2xldCBvPXRoaXMuQ29tcHV0ZURpZmZSZWN1cnNpdmUodCxuLHIsaSxhKTtyZXR1cm4gcyYmKG89dGhpcy5QcmV0dGlmeUNoYW5nZXMobykpLHtxdWl0RWFybHk6YVswXSxjaGFuZ2VzOm99fUNvbXB1dGVEaWZmUmVjdXJzaXZlKHQsbixyLGkscyl7Zm9yKHNbMF09ITE7dDw9biYmcjw9aSYmdGhpcy5FbGVtZW50c0FyZUVxdWFsKHQscik7KXQrKyxyKys7Zm9yKDtuPj10JiZpPj1yJiZ0aGlzLkVsZW1lbnRzQXJlRXF1YWwobixpKTspbi0tLGktLTtpZih0Pm58fHI+aSl7bGV0IGg7cmV0dXJuIHI8PWk/KGd0LkFzc2VydCh0PT09bisxLCJvcmlnaW5hbFN0YXJ0IHNob3VsZCBvbmx5IGJlIG9uZSBtb3JlIHRoYW4gb3JpZ2luYWxFbmQiKSxoPVtuZXcgSGUodCwwLHIsaS1yKzEpXSk6dDw9bj8oZ3QuQXNzZXJ0KHI9PT1pKzEsIm1vZGlmaWVkU3RhcnQgc2hvdWxkIG9ubHkgYmUgb25lIG1vcmUgdGhhbiBtb2RpZmllZEVuZCIpLGg9W25ldyBIZSh0LG4tdCsxLHIsMCldKTooZ3QuQXNzZXJ0KHQ9PT1uKzEsIm9yaWdpbmFsU3RhcnQgc2hvdWxkIG9ubHkgYmUgb25lIG1vcmUgdGhhbiBvcmlnaW5hbEVuZCIpLGd0LkFzc2VydChyPT09aSsxLCJtb2RpZmllZFN0YXJ0IHNob3VsZCBvbmx5IGJlIG9uZSBtb3JlIHRoYW4gbW9kaWZpZWRFbmQiKSxoPVtdKSxofWNvbnN0IGE9WzBdLG89WzBdLGw9dGhpcy5Db21wdXRlUmVjdXJzaW9uUG9pbnQodCxuLHIsaSxhLG8scyksdT1hWzBdLGY9b1swXTtpZihsIT09bnVsbClyZXR1cm4gbDtpZighc1swXSl7Y29uc3QgaD10aGlzLkNvbXB1dGVEaWZmUmVjdXJzaXZlKHQsdSxyLGYscyk7bGV0IGQ9W107cmV0dXJuIHNbMF0/ZD1bbmV3IEhlKHUrMSxuLSh1KzEpKzEsZisxLGktKGYrMSkrMSldOmQ9dGhpcy5Db21wdXRlRGlmZlJlY3Vyc2l2ZSh1KzEsbixmKzEsaSxzKSx0aGlzLkNvbmNhdGVuYXRlQ2hhbmdlcyhoLGQpfXJldHVybltuZXcgSGUodCxuLXQrMSxyLGktcisxKV19V0FMS1RSQUNFKHQsbixyLGkscyxhLG8sbCx1LGYsaCxkLGcsbSx2LHAseCx5KXtsZXQgYj1udWxsLE49bnVsbCxTPW5ldyB6cix3PW4sTD1yLEE9Z1swXS1wWzBdLWksUj0tMTA3Mzc0MTgyNCxJPXRoaXMubV9mb3J3YXJkSGlzdG9yeS5sZW5ndGgtMTtkb3tjb25zdCBDPUErdDtDPT09d3x8QzxMJiZ1W0MtMV08dVtDKzFdPyhoPXVbQysxXSxtPWgtQS1pLGg8UiYmUy5NYXJrTmV4dENoYW5nZSgpLFI9aCxTLkFkZE1vZGlmaWVkRWxlbWVudChoKzEsbSksQT1DKzEtdCk6KGg9dVtDLTFdKzEsbT1oLUEtaSxoPFImJlMuTWFya05leHRDaGFuZ2UoKSxSPWgtMSxTLkFkZE9yaWdpbmFsRWxlbWVudChoLG0rMSksQT1DLTEtdCksST49MCYmKHU9dGhpcy5tX2ZvcndhcmRIaXN0b3J5W0ldLHQ9dVswXSx3PTEsTD11Lmxlbmd0aC0xKX13aGlsZSgtLUk+PS0xKTtpZihiPVMuZ2V0UmV2ZXJzZUNoYW5nZXMoKSx5WzBdKXtsZXQgQz1nWzBdKzEsXz1wWzBdKzE7aWYoYiE9PW51bGwmJmIubGVuZ3RoPjApe2NvbnN0IFQ9YltiLmxlbmd0aC0xXTtDPU1hdGgubWF4KEMsVC5nZXRPcmlnaW5hbEVuZCgpKSxfPU1hdGgubWF4KF8sVC5nZXRNb2RpZmllZEVuZCgpKX1OPVtuZXcgSGUoQyxkLUMrMSxfLHYtXysxKV19ZWxzZXtTPW5ldyB6cix3PWEsTD1vLEE9Z1swXS1wWzBdLWwsUj0xMDczNzQxODI0LEk9eD90aGlzLm1fcmV2ZXJzZUhpc3RvcnkubGVuZ3RoLTE6dGhpcy5tX3JldmVyc2VIaXN0b3J5Lmxlbmd0aC0yO2Rve2NvbnN0IEM9QStzO0M9PT13fHxDPEwmJmZbQy0xXT49ZltDKzFdPyhoPWZbQysxXS0xLG09aC1BLWwsaD5SJiZTLk1hcmtOZXh0Q2hhbmdlKCksUj1oKzEsUy5BZGRPcmlnaW5hbEVsZW1lbnQoaCsxLG0rMSksQT1DKzEtcyk6KGg9ZltDLTFdLG09aC1BLWwsaD5SJiZTLk1hcmtOZXh0Q2hhbmdlKCksUj1oLFMuQWRkTW9kaWZpZWRFbGVtZW50KGgrMSxtKzEpLEE9Qy0xLXMpLEk+PTAmJihmPXRoaXMubV9yZXZlcnNlSGlzdG9yeVtJXSxzPWZbMF0sdz0xLEw9Zi5sZW5ndGgtMSl9d2hpbGUoLS1JPj0tMSk7Tj1TLmdldENoYW5nZXMoKX1yZXR1cm4gdGhpcy5Db25jYXRlbmF0ZUNoYW5nZXMoYixOKX1Db21wdXRlUmVjdXJzaW9uUG9pbnQodCxuLHIsaSxzLGEsbyl7bGV0IGw9MCx1PTAsZj0wLGg9MCxkPTAsZz0wO3QtLSxyLS0sc1swXT0wLGFbMF09MCx0aGlzLm1fZm9yd2FyZEhpc3Rvcnk9W10sdGhpcy5tX3JldmVyc2VIaXN0b3J5PVtdO2NvbnN0IG09bi10KyhpLXIpLHY9bSsxLHA9bmV3IEludDMyQXJyYXkodikseD1uZXcgSW50MzJBcnJheSh2KSx5PWktcixiPW4tdCxOPXQtcixTPW4taSxMPShiLXkpJTI9PT0wO3BbeV09dCx4W2JdPW4sb1swXT0hMTtmb3IobGV0IEE9MTtBPD1tLzIrMTtBKyspe2xldCBSPTAsST0wO2Y9dGhpcy5DbGlwRGlhZ29uYWxCb3VuZCh5LUEsQSx5LHYpLGg9dGhpcy5DbGlwRGlhZ29uYWxCb3VuZCh5K0EsQSx5LHYpO2ZvcihsZXQgXz1mO188PWg7Xys9Mil7Xz09PWZ8fF88aCYmcFtfLTFdPHBbXysxXT9sPXBbXysxXTpsPXBbXy0xXSsxLHU9bC0oXy15KS1OO2NvbnN0IFQ9bDtmb3IoO2w8biYmdTxpJiZ0aGlzLkVsZW1lbnRzQXJlRXF1YWwobCsxLHUrMSk7KWwrKyx1Kys7aWYocFtfXT1sLGwrdT5SK0kmJihSPWwsST11KSwhTCYmTWF0aC5hYnMoXy1iKTw9QS0xJiZsPj14W19dKXJldHVybiBzWzBdPWwsYVswXT11LFQ8PXhbX10mJkE8PTE0NDg/dGhpcy5XQUxLVFJBQ0UoeSxmLGgsTixiLGQsZyxTLHAseCxsLG4scyx1LGksYSxMLG8pOm51bGx9Y29uc3QgQz0oUi10KyhJLXIpLUEpLzI7aWYodGhpcy5Db250aW51ZVByb2Nlc3NpbmdQcmVkaWNhdGUhPT1udWxsJiYhdGhpcy5Db250aW51ZVByb2Nlc3NpbmdQcmVkaWNhdGUoUixDKSlyZXR1cm4gb1swXT0hMCxzWzBdPVIsYVswXT1JLEM+MCYmQTw9MTQ0OD90aGlzLldBTEtUUkFDRSh5LGYsaCxOLGIsZCxnLFMscCx4LGwsbixzLHUsaSxhLEwsbyk6KHQrKyxyKyssW25ldyBIZSh0LG4tdCsxLHIsaS1yKzEpXSk7ZD10aGlzLkNsaXBEaWFnb25hbEJvdW5kKGItQSxBLGIsdiksZz10aGlzLkNsaXBEaWFnb25hbEJvdW5kKGIrQSxBLGIsdik7Zm9yKGxldCBfPWQ7Xzw9ZztfKz0yKXtfPT09ZHx8XzxnJiZ4W18tMV0+PXhbXysxXT9sPXhbXysxXS0xOmw9eFtfLTFdLHU9bC0oXy1iKS1TO2NvbnN0IFQ9bDtmb3IoO2w+dCYmdT5yJiZ0aGlzLkVsZW1lbnRzQXJlRXF1YWwobCx1KTspbC0tLHUtLTtpZih4W19dPWwsTCYmTWF0aC5hYnMoXy15KTw9QSYmbDw9cFtfXSlyZXR1cm4gc1swXT1sLGFbMF09dSxUPj1wW19dJiZBPD0xNDQ4P3RoaXMuV0FMS1RSQUNFKHksZixoLE4sYixkLGcsUyxwLHgsbCxuLHMsdSxpLGEsTCxvKTpudWxsfWlmKEE8PTE0NDcpe2xldCBfPW5ldyBJbnQzMkFycmF5KGgtZisyKTtfWzBdPXktZisxLG10LkNvcHkyKHAsZixfLDEsaC1mKzEpLHRoaXMubV9mb3J3YXJkSGlzdG9yeS5wdXNoKF8pLF89bmV3IEludDMyQXJyYXkoZy1kKzIpLF9bMF09Yi1kKzEsbXQuQ29weTIoeCxkLF8sMSxnLWQrMSksdGhpcy5tX3JldmVyc2VIaXN0b3J5LnB1c2goXyl9fXJldHVybiB0aGlzLldBTEtUUkFDRSh5LGYsaCxOLGIsZCxnLFMscCx4LGwsbixzLHUsaSxhLEwsbyl9UHJldHRpZnlDaGFuZ2VzKHQpe2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXtjb25zdCByPXRbbl0saT1uPHQubGVuZ3RoLTE/dFtuKzFdLm9yaWdpbmFsU3RhcnQ6dGhpcy5fb3JpZ2luYWxFbGVtZW50c09ySGFzaC5sZW5ndGgscz1uPHQubGVuZ3RoLTE/dFtuKzFdLm1vZGlmaWVkU3RhcnQ6dGhpcy5fbW9kaWZpZWRFbGVtZW50c09ySGFzaC5sZW5ndGgsYT1yLm9yaWdpbmFsTGVuZ3RoPjAsbz1yLm1vZGlmaWVkTGVuZ3RoPjA7Zm9yKDtyLm9yaWdpbmFsU3RhcnQrci5vcmlnaW5hbExlbmd0aDxpJiZyLm1vZGlmaWVkU3RhcnQrci5tb2RpZmllZExlbmd0aDxzJiYoIWF8fHRoaXMuT3JpZ2luYWxFbGVtZW50c0FyZUVxdWFsKHIub3JpZ2luYWxTdGFydCxyLm9yaWdpbmFsU3RhcnQrci5vcmlnaW5hbExlbmd0aCkpJiYoIW98fHRoaXMuTW9kaWZpZWRFbGVtZW50c0FyZUVxdWFsKHIubW9kaWZpZWRTdGFydCxyLm1vZGlmaWVkU3RhcnQrci5tb2RpZmllZExlbmd0aCkpOyl7Y29uc3QgdT10aGlzLkVsZW1lbnRzQXJlU3RyaWN0RXF1YWwoci5vcmlnaW5hbFN0YXJ0LHIubW9kaWZpZWRTdGFydCk7aWYodGhpcy5FbGVtZW50c0FyZVN0cmljdEVxdWFsKHIub3JpZ2luYWxTdGFydCtyLm9yaWdpbmFsTGVuZ3RoLHIubW9kaWZpZWRTdGFydCtyLm1vZGlmaWVkTGVuZ3RoKSYmIXUpYnJlYWs7ci5vcmlnaW5hbFN0YXJ0Kyssci5tb2RpZmllZFN0YXJ0Kyt9Y29uc3QgbD1bbnVsbF07aWYobjx0Lmxlbmd0aC0xJiZ0aGlzLkNoYW5nZXNPdmVybGFwKHRbbl0sdFtuKzFdLGwpKXt0W25dPWxbMF0sdC5zcGxpY2UobisxLDEpLG4tLTtjb250aW51ZX19Zm9yKGxldCBuPXQubGVuZ3RoLTE7bj49MDtuLS0pe2NvbnN0IHI9dFtuXTtsZXQgaT0wLHM9MDtpZihuPjApe2NvbnN0IGg9dFtuLTFdO2k9aC5vcmlnaW5hbFN0YXJ0K2gub3JpZ2luYWxMZW5ndGgscz1oLm1vZGlmaWVkU3RhcnQraC5tb2RpZmllZExlbmd0aH1jb25zdCBhPXIub3JpZ2luYWxMZW5ndGg+MCxvPXIubW9kaWZpZWRMZW5ndGg+MDtsZXQgbD0wLHU9dGhpcy5fYm91bmRhcnlTY29yZShyLm9yaWdpbmFsU3RhcnQsci5vcmlnaW5hbExlbmd0aCxyLm1vZGlmaWVkU3RhcnQsci5tb2RpZmllZExlbmd0aCk7Zm9yKGxldCBoPTE7O2grKyl7Y29uc3QgZD1yLm9yaWdpbmFsU3RhcnQtaCxnPXIubW9kaWZpZWRTdGFydC1oO2lmKGQ8aXx8ZzxzfHxhJiYhdGhpcy5PcmlnaW5hbEVsZW1lbnRzQXJlRXF1YWwoZCxkK3Iub3JpZ2luYWxMZW5ndGgpfHxvJiYhdGhpcy5Nb2RpZmllZEVsZW1lbnRzQXJlRXF1YWwoZyxnK3IubW9kaWZpZWRMZW5ndGgpKWJyZWFrO2NvbnN0IHY9KGQ9PT1pJiZnPT09cz81OjApK3RoaXMuX2JvdW5kYXJ5U2NvcmUoZCxyLm9yaWdpbmFsTGVuZ3RoLGcsci5tb2RpZmllZExlbmd0aCk7dj51JiYodT12LGw9aCl9ci5vcmlnaW5hbFN0YXJ0LT1sLHIubW9kaWZpZWRTdGFydC09bDtjb25zdCBmPVtudWxsXTtpZihuPjAmJnRoaXMuQ2hhbmdlc092ZXJsYXAodFtuLTFdLHRbbl0sZikpe3Rbbi0xXT1mWzBdLHQuc3BsaWNlKG4sMSksbisrO2NvbnRpbnVlfX1pZih0aGlzLl9oYXNTdHJpbmdzKWZvcihsZXQgbj0xLHI9dC5sZW5ndGg7bjxyO24rKyl7Y29uc3QgaT10W24tMV0scz10W25dLGE9cy5vcmlnaW5hbFN0YXJ0LWkub3JpZ2luYWxTdGFydC1pLm9yaWdpbmFsTGVuZ3RoLG89aS5vcmlnaW5hbFN0YXJ0LGw9cy5vcmlnaW5hbFN0YXJ0K3Mub3JpZ2luYWxMZW5ndGgsdT1sLW8sZj1pLm1vZGlmaWVkU3RhcnQsaD1zLm1vZGlmaWVkU3RhcnQrcy5tb2RpZmllZExlbmd0aCxkPWgtZjtpZihhPDUmJnU8MjAmJmQ8MjApe2NvbnN0IGc9dGhpcy5fZmluZEJldHRlckNvbnRpZ3VvdXNTZXF1ZW5jZShvLHUsZixkLGEpO2lmKGcpe2NvbnN0W20sdl09ZzsobSE9PWkub3JpZ2luYWxTdGFydCtpLm9yaWdpbmFsTGVuZ3RofHx2IT09aS5tb2RpZmllZFN0YXJ0K2kubW9kaWZpZWRMZW5ndGgpJiYoaS5vcmlnaW5hbExlbmd0aD1tLWkub3JpZ2luYWxTdGFydCxpLm1vZGlmaWVkTGVuZ3RoPXYtaS5tb2RpZmllZFN0YXJ0LHMub3JpZ2luYWxTdGFydD1tK2Escy5tb2RpZmllZFN0YXJ0PXYrYSxzLm9yaWdpbmFsTGVuZ3RoPWwtcy5vcmlnaW5hbFN0YXJ0LHMubW9kaWZpZWRMZW5ndGg9aC1zLm1vZGlmaWVkU3RhcnQpfX19cmV0dXJuIHR9X2ZpbmRCZXR0ZXJDb250aWd1b3VzU2VxdWVuY2UodCxuLHIsaSxzKXtpZihuPHN8fGk8cylyZXR1cm4gbnVsbDtjb25zdCBhPXQrbi1zKzEsbz1yK2ktcysxO2xldCBsPTAsdT0wLGY9MDtmb3IobGV0IGg9dDtoPGE7aCsrKWZvcihsZXQgZD1yO2Q8bztkKyspe2NvbnN0IGc9dGhpcy5fY29udGlndW91c1NlcXVlbmNlU2NvcmUoaCxkLHMpO2c+MCYmZz5sJiYobD1nLHU9aCxmPWQpfXJldHVybiBsPjA/W3UsZl06bnVsbH1fY29udGlndW91c1NlcXVlbmNlU2NvcmUodCxuLHIpe2xldCBpPTA7Zm9yKGxldCBzPTA7czxyO3MrKyl7aWYoIXRoaXMuRWxlbWVudHNBcmVFcXVhbCh0K3MsbitzKSlyZXR1cm4gMDtpKz10aGlzLl9vcmlnaW5hbFN0cmluZ0VsZW1lbnRzW3Qrc10ubGVuZ3RofXJldHVybiBpfV9PcmlnaW5hbElzQm91bmRhcnkodCl7cmV0dXJuIHQ8PTB8fHQ+PXRoaXMuX29yaWdpbmFsRWxlbWVudHNPckhhc2gubGVuZ3RoLTE/ITA6dGhpcy5faGFzU3RyaW5ncyYmL15ccyokLy50ZXN0KHRoaXMuX29yaWdpbmFsU3RyaW5nRWxlbWVudHNbdF0pfV9PcmlnaW5hbFJlZ2lvbklzQm91bmRhcnkodCxuKXtpZih0aGlzLl9PcmlnaW5hbElzQm91bmRhcnkodCl8fHRoaXMuX09yaWdpbmFsSXNCb3VuZGFyeSh0LTEpKXJldHVybiEwO2lmKG4+MCl7Y29uc3Qgcj10K247aWYodGhpcy5fT3JpZ2luYWxJc0JvdW5kYXJ5KHItMSl8fHRoaXMuX09yaWdpbmFsSXNCb3VuZGFyeShyKSlyZXR1cm4hMH1yZXR1cm4hMX1fTW9kaWZpZWRJc0JvdW5kYXJ5KHQpe3JldHVybiB0PD0wfHx0Pj10aGlzLl9tb2RpZmllZEVsZW1lbnRzT3JIYXNoLmxlbmd0aC0xPyEwOnRoaXMuX2hhc1N0cmluZ3MmJi9eXHMqJC8udGVzdCh0aGlzLl9tb2RpZmllZFN0cmluZ0VsZW1lbnRzW3RdKX1fTW9kaWZpZWRSZWdpb25Jc0JvdW5kYXJ5KHQsbil7aWYodGhpcy5fTW9kaWZpZWRJc0JvdW5kYXJ5KHQpfHx0aGlzLl9Nb2RpZmllZElzQm91bmRhcnkodC0xKSlyZXR1cm4hMDtpZihuPjApe2NvbnN0IHI9dCtuO2lmKHRoaXMuX01vZGlmaWVkSXNCb3VuZGFyeShyLTEpfHx0aGlzLl9Nb2RpZmllZElzQm91bmRhcnkocikpcmV0dXJuITB9cmV0dXJuITF9X2JvdW5kYXJ5U2NvcmUodCxuLHIsaSl7Y29uc3Qgcz10aGlzLl9PcmlnaW5hbFJlZ2lvbklzQm91bmRhcnkodCxuKT8xOjAsYT10aGlzLl9Nb2RpZmllZFJlZ2lvbklzQm91bmRhcnkocixpKT8xOjA7cmV0dXJuIHMrYX1Db25jYXRlbmF0ZUNoYW5nZXModCxuKXtjb25zdCByPVtdO2lmKHQubGVuZ3RoPT09MHx8bi5sZW5ndGg9PT0wKXJldHVybiBuLmxlbmd0aD4wP246dDtpZih0aGlzLkNoYW5nZXNPdmVybGFwKHRbdC5sZW5ndGgtMV0sblswXSxyKSl7Y29uc3QgaT1uZXcgQXJyYXkodC5sZW5ndGgrbi5sZW5ndGgtMSk7cmV0dXJuIG10LkNvcHkodCwwLGksMCx0Lmxlbmd0aC0xKSxpW3QubGVuZ3RoLTFdPXJbMF0sbXQuQ29weShuLDEsaSx0Lmxlbmd0aCxuLmxlbmd0aC0xKSxpfWVsc2V7Y29uc3QgaT1uZXcgQXJyYXkodC5sZW5ndGgrbi5sZW5ndGgpO3JldHVybiBtdC5Db3B5KHQsMCxpLDAsdC5sZW5ndGgpLG10LkNvcHkobiwwLGksdC5sZW5ndGgsbi5sZW5ndGgpLGl9fUNoYW5nZXNPdmVybGFwKHQsbixyKXtpZihndC5Bc3NlcnQodC5vcmlnaW5hbFN0YXJ0PD1uLm9yaWdpbmFsU3RhcnQsIkxlZnQgY2hhbmdlIGlzIG5vdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gcmlnaHQgY2hhbmdlIiksZ3QuQXNzZXJ0KHQubW9kaWZpZWRTdGFydDw9bi5tb2RpZmllZFN0YXJ0LCJMZWZ0IGNoYW5nZSBpcyBub3QgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHJpZ2h0IGNoYW5nZSIpLHQub3JpZ2luYWxTdGFydCt0Lm9yaWdpbmFsTGVuZ3RoPj1uLm9yaWdpbmFsU3RhcnR8fHQubW9kaWZpZWRTdGFydCt0Lm1vZGlmaWVkTGVuZ3RoPj1uLm1vZGlmaWVkU3RhcnQpe2NvbnN0IGk9dC5vcmlnaW5hbFN0YXJ0O2xldCBzPXQub3JpZ2luYWxMZW5ndGg7Y29uc3QgYT10Lm1vZGlmaWVkU3RhcnQ7bGV0IG89dC5tb2RpZmllZExlbmd0aDtyZXR1cm4gdC5vcmlnaW5hbFN0YXJ0K3Qub3JpZ2luYWxMZW5ndGg+PW4ub3JpZ2luYWxTdGFydCYmKHM9bi5vcmlnaW5hbFN0YXJ0K24ub3JpZ2luYWxMZW5ndGgtdC5vcmlnaW5hbFN0YXJ0KSx0Lm1vZGlmaWVkU3RhcnQrdC5tb2RpZmllZExlbmd0aD49bi5tb2RpZmllZFN0YXJ0JiYobz1uLm1vZGlmaWVkU3RhcnQrbi5tb2RpZmllZExlbmd0aC10Lm1vZGlmaWVkU3RhcnQpLHJbMF09bmV3IEhlKGkscyxhLG8pLCEwfWVsc2UgcmV0dXJuIHJbMF09bnVsbCwhMX1DbGlwRGlhZ29uYWxCb3VuZCh0LG4scixpKXtpZih0Pj0wJiZ0PGkpcmV0dXJuIHQ7Y29uc3Qgcz1yLGE9aS1yLTEsbz1uJTI9PT0wO2lmKHQ8MCl7Y29uc3QgbD1zJTI9PT0wO3JldHVybiBvPT09bD8wOjF9ZWxzZXtjb25zdCBsPWElMj09PTA7cmV0dXJuIG89PT1sP2ktMTppLTJ9fX12YXIgR3I9e1RFUk1fUFJPR1JBTToidnNjb2RlIixOT0RFOiIvVXNlcnMvYWxleGFuZGVyLy5udm0vdmVyc2lvbnMvbm9kZS92MTYuMTAuMC9iaW4vbm9kZSIsTlZNX0NEX0ZMQUdTOiItcSIsSU5JVF9DV0Q6Ii9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aSIsU0hFTEw6Ii9iaW4venNoIixURVJNOiJ4dGVybS0yNTZjb2xvciIsVE1QRElSOiIvdmFyL2ZvbGRlcnMvN2IvZjI4Z2g4NmQwODNfeHFqOXA5aHM5N2s4MDAwMGduL1QvIixucG1fY29uZmlnX21ldHJpY3NfcmVnaXN0cnk6Imh0dHBzOi8vcmVnaXN0cnkubnBtanMub3JnLyIsbnBtX2NvbmZpZ19nbG9iYWxfcHJlZml4OiIvVXNlcnMvYWxleGFuZGVyLy5udm0vdmVyc2lvbnMvbm9kZS92MTYuMTAuMCIsVEVSTV9QUk9HUkFNX1ZFUlNJT046IjEuODguMSIsR1ZNX1JPT1Q6Ii9Vc2Vycy9hbGV4YW5kZXIvLmd2bSIsTWFsbG9jTmFub1pvbmU6IjAiLE9SSUdJTkFMX1hER19DVVJSRU5UX0RFU0tUT1A6InVuZGVmaW5lZCIsWkRPVERJUjoiL1VzZXJzL2FsZXhhbmRlciIsQ09MT1I6IjEiLG5wbV9jb25maWdfbm9wcm94eToiIixaU0g6Ii9Vc2Vycy9hbGV4YW5kZXIvLm9oLW15LXpzaCIsUE5QTV9IT01FOiIvVXNlcnMvYWxleGFuZGVyL0xpYnJhcnkvcG5wbSIsbnBtX2NvbmZpZ19sb2NhbF9wcmVmaXg6Ii9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aSIsVVNFUjoiYWxleGFuZGVyIixOVk1fRElSOiIvVXNlcnMvYWxleGFuZGVyLy5udm0iLExEX0xJQlJBUllfUEFUSDoiL1VzZXJzL2FsZXhhbmRlci8uZ3ZtL3BrZ3NldHMvZ28xLjIxLjYvZ2xvYmFsL292ZXJsYXkvbGliOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9wa2dzZXRzL2dvMS4yMS42L2dsb2JhbC9vdmVybGF5L2xpYjovVXNlcnMvYWxleGFuZGVyLy5ndm0vcGtnc2V0cy9nbzEuMjEuNi9nbG9iYWwvb3ZlcmxheS9saWI6L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL3BrZ3NldHMvZ28xLjIxLjYvZ2xvYmFsL292ZXJsYXkvbGliOiIsQ09NTUFORF9NT0RFOiJ1bml4MjAwMyIsbnBtX2NvbmZpZ19nbG9iYWxjb25maWc6Ii9Vc2Vycy9hbGV4YW5kZXIvLm52bS92ZXJzaW9ucy9ub2RlL3YxNi4xMC4wL2V0Yy9ucG1yYyIsU1NIX0FVVEhfU09DSzoiL3ByaXZhdGUvdG1wL2NvbS5hcHBsZS5sYXVuY2hkLmphRkQ4VzNrSWQvTGlzdGVuZXJzIixfX0NGX1VTRVJfVEVYVF9FTkNPRElORzoiMHgxRjU6MHgxOToweDM0IixucG1fZXhlY3BhdGg6Ii9Vc2Vycy9hbGV4YW5kZXIvLm52bS92ZXJzaW9ucy9ub2RlL3YxNi4xMC4wL2xpYi9ub2RlX21vZHVsZXMvbnBtL2Jpbi9ucG0tY2xpLmpzIixQQUdFUjoibGVzcyIsTFNDT0xPUlM6Ikd4ZnhjeGR4YnhlZ2VkYWJhZ2FjYWQiLFBBVEg6Ii9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9ub2RlX21vZHVsZXMvLmJpbjovVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL25vZGVfbW9kdWxlcy8uYmluOi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9ub2RlX21vZHVsZXMvLmJpbjovVXNlcnMvYWxleGFuZGVyL25vZGVfbW9kdWxlcy8uYmluOi9Vc2Vycy9ub2RlX21vZHVsZXMvLmJpbjovbm9kZV9tb2R1bGVzLy5iaW46L1VzZXJzL2FsZXhhbmRlci8ubnZtL3ZlcnNpb25zL25vZGUvdjE2LjEwLjAvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL0BucG1jbGkvcnVuLXNjcmlwdC9saWIvbm9kZS1neXAtYmluOi91c3IvbG9jYWwvb3B0L3J1YnkvYmluOi9Vc2Vycy9hbGV4YW5kZXIvTGlicmFyeS9wbnBtOi9Vc2Vycy9hbGV4YW5kZXIvLnlhcm4vYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmNvbmZpZy95YXJuL2dsb2JhbC9ub2RlX21vZHVsZXMvLmJpbjovVXNlcnMvYWxleGFuZGVyLy5ndm0vcGtnc2V0cy9nbzEuMjEuNi9nbG9iYWwvYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9nb3MvZ28xLjIxLjYvYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9wa2dzZXRzL2dvMS4yMS42L2dsb2JhbC9vdmVybGF5L2JpbjovVXNlcnMvYWxleGFuZGVyLy5ndm0vYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9iaW46L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL3BrZ3NldHMvZ28xLjIxLjYvZ2xvYmFsL2JpbjovVXNlcnMvYWxleGFuZGVyLy5ndm0vZ29zL2dvMS4yMS42L2JpbjovVXNlcnMvYWxleGFuZGVyLy5ndm0vcGtnc2V0cy9nbzEuMjEuNi9nbG9iYWwvb3ZlcmxheS9iaW46L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL2JpbjovVXNlcnMvYWxleGFuZGVyLy5ndm0vYmluOi9Vc2Vycy9hbGV4YW5kZXIvbXlnby9iaW46L3Vzci9sb2NhbC9iaW46L3Vzci9iaW46L2JpbjovdXNyL3NiaW46L3NiaW46L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL2dvcy9nbzEuMjAvYmluOi91c3IvbG9jYWwvb3B0L3J1YnkvYmluOi9Vc2Vycy9hbGV4YW5kZXIvTGlicmFyeS9wbnBtOi9Vc2Vycy9hbGV4YW5kZXIvLnlhcm4vYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmNvbmZpZy95YXJuL2dsb2JhbC9ub2RlX21vZHVsZXMvLmJpbjovVXNlcnMvYWxleGFuZGVyLy5ndm0vcGtnc2V0cy9nbzEuMjEuNi9nbG9iYWwvYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9nb3MvZ28xLjIxLjYvYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9wa2dzZXRzL2dvMS4yMS42L2dsb2JhbC9vdmVybGF5L2JpbjovVXNlcnMvYWxleGFuZGVyLy5ndm0vYmluOi9Vc2Vycy9hbGV4YW5kZXIvLm52bS92ZXJzaW9ucy9ub2RlL3YxNi4xMC4wL2JpbjovVXNlcnMvYWxleGFuZGVyLy5jYXJnby9iaW46L3Vzci9sb2NhbC9teXNxbC9iaW46L1VzZXJzL2FsZXhhbmRlci8uZ2VtL3J1YnkvMy4yLjAvYmluOi91c3IvbG9jYWwvbXlzcWwvYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmdlbS9ydWJ5LzMuMi4wL2JpbiIsbnBtX3BhY2thZ2VfanNvbjoiL1VzZXJzL2FsZXhhbmRlci9teS1jb2RlL2dpdGh1Yi9vcGVuYXBpLXVpL3BhY2thZ2UuanNvbiIsX19DRkJ1bmRsZUlkZW50aWZpZXI6ImNvbS5taWNyb3NvZnQuVlNDb2RlIixVU0VSX1pET1RESVI6Ii9Vc2Vycy9hbGV4YW5kZXIiLG5wbV9jb25maWdfYXV0b19pbnN0YWxsX3BlZXJzOiJ0cnVlIixucG1fY29uZmlnX2luaXRfbW9kdWxlOiIvVXNlcnMvYWxleGFuZGVyLy5ucG0taW5pdC5qcyIsbnBtX2NvbmZpZ191c2VyY29uZmlnOiIvVXNlcnMvYWxleGFuZGVyLy5ucG1yYyIsUFdEOiIvVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL29wZW5hcGktdWkiLEdWTV9WRVJTSU9OOiIxLjAuMjIiLG5wbV9jb21tYW5kOiJydW4tc2NyaXB0IixFRElUT1I6InZpIixucG1fbGlmZWN5Y2xlX2V2ZW50OiJidWlsZDpwYWNrYWdlIixMQU5HOiJ6aF9DTi5VVEYtOCIsbnBtX3BhY2thZ2VfbmFtZToib3BlbmFwaS11aS1kaXN0Iixndm1fcGtnc2V0X25hbWU6Imdsb2JhbCIsTk9ERV9QQVRIOiIvVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL29wZW5hcGktdWkvbm9kZV9tb2R1bGVzLy5wbnBtL25vZGVfbW9kdWxlcyIsWFBDX0ZMQUdTOiIweDAiLFZTQ09ERV9HSVRfQVNLUEFTU19FWFRSQV9BUkdTOiIiLG5wbV9wYWNrYWdlX2VuZ2luZXNfbm9kZToiXjE4LjAuMCB8fCA+PTIwLjAuMCIsbnBtX2NvbmZpZ19ub2RlX2d5cDoiL1VzZXJzL2FsZXhhbmRlci8ubnZtL3ZlcnNpb25zL25vZGUvdjE2LjEwLjAvbGliL25vZGVfbW9kdWxlcy9ucG0vbm9kZV9tb2R1bGVzL25vZGUtZ3lwL2Jpbi9ub2RlLWd5cC5qcyIsWFBDX1NFUlZJQ0VfTkFNRToiMCIsbnBtX3BhY2thZ2VfdmVyc2lvbjoiMi4wLjEiLFZTQ09ERV9JTkpFQ1RJT046IjEiLEhPTUU6Ii9Vc2Vycy9hbGV4YW5kZXIiLFNITFZMOiIyIixWU0NPREVfR0lUX0FTS1BBU1NfTUFJTjoiL0FwcGxpY2F0aW9ucy9WaXN1YWwgU3R1ZGlvIENvZGUuYXBwL0NvbnRlbnRzL1Jlc291cmNlcy9hcHAvZXh0ZW5zaW9ucy9naXQvZGlzdC9hc2twYXNzLW1haW4uanMiLEdPUk9PVDoiL1VzZXJzL2FsZXhhbmRlci8uZ3ZtL2dvcy9nbzEuMjEuNiIsRFlMRF9MSUJSQVJZX1BBVEg6Ii9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9wa2dzZXRzL2dvMS4yMS42L2dsb2JhbC9vdmVybGF5L2xpYjovVXNlcnMvYWxleGFuZGVyLy5ndm0vcGtnc2V0cy9nbzEuMjEuNi9nbG9iYWwvb3ZlcmxheS9saWI6L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL3BrZ3NldHMvZ28xLjIxLjYvZ2xvYmFsL292ZXJsYXkvbGliOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9wa2dzZXRzL2dvMS4yMS42L2dsb2JhbC9vdmVybGF5L2xpYjoiLGd2bV9nb19uYW1lOiJnbzEuMjEuNiIsTE9HTkFNRToiYWxleGFuZGVyIixMRVNTOiItUiIsVlNDT0RFX1BBVEhfUFJFRklYOiIvVXNlcnMvYWxleGFuZGVyLy5ndm0vZ29zL2dvMS4yMC9iaW46IixucG1fY29uZmlnX2NhY2hlOiIvVXNlcnMvYWxleGFuZGVyLy5ucG0iLEdWTV9PVkVSTEFZX1BSRUZJWDoiL1VzZXJzL2FsZXhhbmRlci8uZ3ZtL3BrZ3NldHMvZ28xLjIxLjYvZ2xvYmFsL292ZXJsYXkiLG5wbV9saWZlY3ljbGVfc2NyaXB0OiJ0c2MgJiYgdml0ZSBidWlsZCAtLWNvbmZpZyB2aXRlLnBhY2thZ2UuY29uZmlnLnRzIC0tbW9kZSBwYWNrYWdlIixMQ19DVFlQRToiemhfQ04uVVRGLTgiLFZTQ09ERV9HSVRfSVBDX0hBTkRMRToiL3Zhci9mb2xkZXJzLzdiL2YyOGdoODZkMDgzX3hxajlwOWhzOTdrODAwMDBnbi9UL3ZzY29kZS1naXQtNzlhMThmMTBmMi5zb2NrIixOVk1fQklOOiIvVXNlcnMvYWxleGFuZGVyLy5udm0vdmVyc2lvbnMvbm9kZS92MTYuMTAuMC9iaW4iLFBLR19DT05GSUdfUEFUSDoiL1VzZXJzL2FsZXhhbmRlci8uZ3ZtL3BrZ3NldHMvZ28xLjIxLjYvZ2xvYmFsL292ZXJsYXkvbGliL3BrZ2NvbmZpZzovVXNlcnMvYWxleGFuZGVyLy5ndm0vcGtnc2V0cy9nbzEuMjEuNi9nbG9iYWwvb3ZlcmxheS9saWIvcGtnY29uZmlnOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9wa2dzZXRzL2dvMS4yMS42L2dsb2JhbC9vdmVybGF5L2xpYi9wa2djb25maWc6L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL3BrZ3NldHMvZ28xLjIxLjYvZ2xvYmFsL292ZXJsYXkvbGliL3BrZ2NvbmZpZzoiLEdPUEFUSDoiL1VzZXJzL2FsZXhhbmRlci9teWdvIixucG1fY29uZmlnX3VzZXJfYWdlbnQ6Im5wbS83LjI0LjAgbm9kZS92MTYuMTAuMCBkYXJ3aW4geDY0IHdvcmtzcGFjZXMvZmFsc2UiLEdJVF9BU0tQQVNTOiIvQXBwbGljYXRpb25zL1Zpc3VhbCBTdHVkaW8gQ29kZS5hcHAvQ29udGVudHMvUmVzb3VyY2VzL2FwcC9leHRlbnNpb25zL2dpdC9kaXN0L2Fza3Bhc3Muc2giLFZTQ09ERV9HSVRfQVNLUEFTU19OT0RFOiIvQXBwbGljYXRpb25zL1Zpc3VhbCBTdHVkaW8gQ29kZS5hcHAvQ29udGVudHMvRnJhbWV3b3Jrcy9Db2RlIEhlbHBlciAoUGx1Z2luKS5hcHAvQ29udGVudHMvTWFjT1MvQ29kZSBIZWxwZXIgKFBsdWdpbikiLEdWTV9QQVRIX0JBQ0tVUDoiL1VzZXJzL2FsZXhhbmRlci8uZ3ZtL2JpbjovVXNlcnMvYWxleGFuZGVyLy5ndm0vcGtnc2V0cy9nbzEuMjEuNi9nbG9iYWwvYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9nb3MvZ28xLjIxLjYvYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9wa2dzZXRzL2dvMS4yMS42L2dsb2JhbC9vdmVybGF5L2JpbjovVXNlcnMvYWxleGFuZGVyLy5ndm0vYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9iaW46L1VzZXJzL2FsZXhhbmRlci9teWdvL2JpbjovdXNyL2xvY2FsL2JpbjovdXNyL2JpbjovYmluOi91c3Ivc2Jpbjovc2JpbjovVXNlcnMvYWxleGFuZGVyLy5ndm0vZ29zL2dvMS4yMC9iaW46L3Vzci9sb2NhbC9vcHQvcnVieS9iaW46L1VzZXJzL2FsZXhhbmRlci9MaWJyYXJ5L3BucG06L1VzZXJzL2FsZXhhbmRlci8ueWFybi9iaW46L1VzZXJzL2FsZXhhbmRlci8uY29uZmlnL3lhcm4vZ2xvYmFsL25vZGVfbW9kdWxlcy8uYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9wa2dzZXRzL2dvMS4yMS42L2dsb2JhbC9iaW46L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL2dvcy9nbzEuMjEuNi9iaW46L1VzZXJzL2FsZXhhbmRlci8uZ3ZtL3BrZ3NldHMvZ28xLjIxLjYvZ2xvYmFsL292ZXJsYXkvYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmd2bS9iaW46L1VzZXJzL2FsZXhhbmRlci8ubnZtL3ZlcnNpb25zL25vZGUvdjE2LjEwLjAvYmluOi9Vc2Vycy9hbGV4YW5kZXIvLmNhcmdvL2JpbjovdXNyL2xvY2FsL215c3FsL2JpbjovVXNlcnMvYWxleGFuZGVyLy5nZW0vcnVieS8zLjIuMC9iaW4iLENPTE9SVEVSTToidHJ1ZWNvbG9yIixucG1fY29uZmlnX3ByZWZpeDoiL1VzZXJzL2FsZXhhbmRlci8ubnZtL3ZlcnNpb25zL25vZGUvdjE2LjEwLjAiLG5wbV9ub2RlX2V4ZWNwYXRoOiIvVXNlcnMvYWxleGFuZGVyLy5udm0vdmVyc2lvbnMvbm9kZS92MTYuMTAuMC9iaW4vbm9kZSIsTk9ERV9FTlY6InByb2R1Y3Rpb24ifTtsZXQgcHQ7Y29uc3QgVW49Z2xvYmFsVGhpcy52c2NvZGU7aWYodHlwZW9mIFVuPCJ1IiYmdHlwZW9mIFVuLnByb2Nlc3M8InUiKXtjb25zdCBlPVVuLnByb2Nlc3M7cHQ9e2dldCBwbGF0Zm9ybSgpe3JldHVybiBlLnBsYXRmb3JtfSxnZXQgYXJjaCgpe3JldHVybiBlLmFyY2h9LGdldCBlbnYoKXtyZXR1cm4gZS5lbnZ9LGN3ZCgpe3JldHVybiBlLmN3ZCgpfX19ZWxzZSB0eXBlb2YgcHJvY2VzczwidSI/cHQ9e2dldCBwbGF0Zm9ybSgpe3JldHVybiBwcm9jZXNzLnBsYXRmb3JtfSxnZXQgYXJjaCgpe3JldHVybiBwcm9jZXNzLmFyY2h9LGdldCBlbnYoKXtyZXR1cm4gR3J9LGN3ZCgpe3JldHVybiBHci5WU0NPREVfQ1dEfHxwcm9jZXNzLmN3ZCgpfX06cHQ9e2dldCBwbGF0Zm9ybSgpe3JldHVybiBFdD8id2luMzIiOnphPyJkYXJ3aW4iOiJsaW51eCJ9LGdldCBhcmNoKCl7fSxnZXQgZW52KCl7cmV0dXJue319LGN3ZCgpe3JldHVybiIvIn19O2NvbnN0IGVuPXB0LmN3ZCxwbz1wdC5lbnYsdm89cHQucGxhdGZvcm0sYm89NjUseG89OTcseW89OTAsX289MTIyLEdlPTQ2LG9lPTQ3LGdlPTkyLEplPTU4LHdvPTYzO2NsYXNzIEpyIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IodCxuLHIpe2xldCBpO3R5cGVvZiBuPT0ic3RyaW5nIiYmbi5pbmRleE9mKCJub3QgIik9PT0wPyhpPSJtdXN0IG5vdCBiZSIsbj1uLnJlcGxhY2UoL15ub3QgLywiIikpOmk9Im11c3QgYmUiO2NvbnN0IHM9dC5pbmRleE9mKCIuIikhPT0tMT8icHJvcGVydHkiOiJhcmd1bWVudCI7bGV0IGE9YFRoZSAiJHt0fSIgJHtzfSAke2l9IG9mIHR5cGUgJHtufWA7YSs9YC4gUmVjZWl2ZWQgdHlwZSAke3R5cGVvZiByfWAsc3VwZXIoYSksdGhpcy5jb2RlPSJFUlJfSU5WQUxJRF9BUkdfVFlQRSJ9fWZ1bmN0aW9uIFNvKGUsdCl7aWYoZT09PW51bGx8fHR5cGVvZiBlIT0ib2JqZWN0Iil0aHJvdyBuZXcgSnIodCwiT2JqZWN0IixlKX1mdW5jdGlvbiBlZShlLHQpe2lmKHR5cGVvZiBlIT0ic3RyaW5nIil0aHJvdyBuZXcgSnIodCwic3RyaW5nIixlKX1jb25zdCBYZT12bz09PSJ3aW4zMiI7ZnVuY3Rpb24gVyhlKXtyZXR1cm4gZT09PW9lfHxlPT09Z2V9ZnVuY3Rpb24gam4oZSl7cmV0dXJuIGU9PT1vZX1mdW5jdGlvbiBRZShlKXtyZXR1cm4gZT49Ym8mJmU8PXlvfHxlPj14byYmZTw9X299ZnVuY3Rpb24gdG4oZSx0LG4scil7bGV0IGk9IiIscz0wLGE9LTEsbz0wLGw9MDtmb3IobGV0IHU9MDt1PD1lLmxlbmd0aDsrK3Upe2lmKHU8ZS5sZW5ndGgpbD1lLmNoYXJDb2RlQXQodSk7ZWxzZXtpZihyKGwpKWJyZWFrO2w9b2V9aWYocihsKSl7aWYoIShhPT09dS0xfHxvPT09MSkpaWYobz09PTIpe2lmKGkubGVuZ3RoPDJ8fHMhPT0yfHxpLmNoYXJDb2RlQXQoaS5sZW5ndGgtMSkhPT1HZXx8aS5jaGFyQ29kZUF0KGkubGVuZ3RoLTIpIT09R2Upe2lmKGkubGVuZ3RoPjIpe2NvbnN0IGY9aS5sYXN0SW5kZXhPZihuKTtmPT09LTE/KGk9IiIscz0wKTooaT1pLnNsaWNlKDAsZikscz1pLmxlbmd0aC0xLWkubGFzdEluZGV4T2YobikpLGE9dSxvPTA7Y29udGludWV9ZWxzZSBpZihpLmxlbmd0aCE9PTApe2k9IiIscz0wLGE9dSxvPTA7Y29udGludWV9fXQmJihpKz1pLmxlbmd0aD4wP2Ake259Li5gOiIuLiIscz0yKX1lbHNlIGkubGVuZ3RoPjA/aSs9YCR7bn0ke2Uuc2xpY2UoYSsxLHUpfWA6aT1lLnNsaWNlKGErMSx1KSxzPXUtYS0xO2E9dSxvPTB9ZWxzZSBsPT09R2UmJm8hPT0tMT8rK286bz0tMX1yZXR1cm4gaX1mdW5jdGlvbiBYcihlLHQpe1NvKHQsInBhdGhPYmplY3QiKTtjb25zdCBuPXQuZGlyfHx0LnJvb3Qscj10LmJhc2V8fGAke3QubmFtZXx8IiJ9JHt0LmV4dHx8IiJ9YDtyZXR1cm4gbj9uPT09dC5yb290P2Ake259JHtyfWA6YCR7bn0ke2V9JHtyfWA6cn1jb25zdCBoZT17cmVzb2x2ZSguLi5lKXtsZXQgdD0iIixuPSIiLHI9ITE7Zm9yKGxldCBpPWUubGVuZ3RoLTE7aT49LTE7aS0tKXtsZXQgcztpZihpPj0wKXtpZihzPWVbaV0sZWUocywicGF0aCIpLHMubGVuZ3RoPT09MCljb250aW51ZX1lbHNlIHQubGVuZ3RoPT09MD9zPWVuKCk6KHM9cG9bYD0ke3R9YF18fGVuKCksKHM9PT12b2lkIDB8fHMuc2xpY2UoMCwyKS50b0xvd2VyQ2FzZSgpIT09dC50b0xvd2VyQ2FzZSgpJiZzLmNoYXJDb2RlQXQoMik9PT1nZSkmJihzPWAke3R9XFxgKSk7Y29uc3QgYT1zLmxlbmd0aDtsZXQgbz0wLGw9IiIsdT0hMTtjb25zdCBmPXMuY2hhckNvZGVBdCgwKTtpZihhPT09MSlXKGYpJiYobz0xLHU9ITApO2Vsc2UgaWYoVyhmKSlpZih1PSEwLFcocy5jaGFyQ29kZUF0KDEpKSl7bGV0IGg9MixkPWg7Zm9yKDtoPGEmJiFXKHMuY2hhckNvZGVBdChoKSk7KWgrKztpZihoPGEmJmghPT1kKXtjb25zdCBnPXMuc2xpY2UoZCxoKTtmb3IoZD1oO2g8YSYmVyhzLmNoYXJDb2RlQXQoaCkpOyloKys7aWYoaDxhJiZoIT09ZCl7Zm9yKGQ9aDtoPGEmJiFXKHMuY2hhckNvZGVBdChoKSk7KWgrKzsoaD09PWF8fGghPT1kKSYmKGw9YFxcXFwke2d9XFwke3Muc2xpY2UoZCxoKX1gLG89aCl9fX1lbHNlIG89MTtlbHNlIFFlKGYpJiZzLmNoYXJDb2RlQXQoMSk9PT1KZSYmKGw9cy5zbGljZSgwLDIpLG89MixhPjImJlcocy5jaGFyQ29kZUF0KDIpKSYmKHU9ITAsbz0zKSk7aWYobC5sZW5ndGg+MClpZih0Lmxlbmd0aD4wKXtpZihsLnRvTG93ZXJDYXNlKCkhPT10LnRvTG93ZXJDYXNlKCkpY29udGludWV9ZWxzZSB0PWw7aWYocil7aWYodC5sZW5ndGg+MClicmVha31lbHNlIGlmKG49YCR7cy5zbGljZShvKX1cXCR7bn1gLHI9dSx1JiZ0Lmxlbmd0aD4wKWJyZWFrfXJldHVybiBuPXRuKG4sIXIsIlxcIixXKSxyP2Ake3R9XFwke259YDpgJHt0fSR7bn1gfHwiLiJ9LG5vcm1hbGl6ZShlKXtlZShlLCJwYXRoIik7Y29uc3QgdD1lLmxlbmd0aDtpZih0PT09MClyZXR1cm4iLiI7bGV0IG49MCxyLGk9ITE7Y29uc3Qgcz1lLmNoYXJDb2RlQXQoMCk7aWYodD09PTEpcmV0dXJuIGpuKHMpPyJcXCI6ZTtpZihXKHMpKWlmKGk9ITAsVyhlLmNoYXJDb2RlQXQoMSkpKXtsZXQgbz0yLGw9bztmb3IoO288dCYmIVcoZS5jaGFyQ29kZUF0KG8pKTspbysrO2lmKG88dCYmbyE9PWwpe2NvbnN0IHU9ZS5zbGljZShsLG8pO2ZvcihsPW87bzx0JiZXKGUuY2hhckNvZGVBdChvKSk7KW8rKztpZihvPHQmJm8hPT1sKXtmb3IobD1vO288dCYmIVcoZS5jaGFyQ29kZUF0KG8pKTspbysrO2lmKG89PT10KXJldHVybmBcXFxcJHt1fVxcJHtlLnNsaWNlKGwpfVxcYDtvIT09bCYmKHI9YFxcXFwke3V9XFwke2Uuc2xpY2UobCxvKX1gLG49byl9fX1lbHNlIG49MTtlbHNlIFFlKHMpJiZlLmNoYXJDb2RlQXQoMSk9PT1KZSYmKHI9ZS5zbGljZSgwLDIpLG49Mix0PjImJlcoZS5jaGFyQ29kZUF0KDIpKSYmKGk9ITAsbj0zKSk7bGV0IGE9bjx0P3RuKGUuc2xpY2UobiksIWksIlxcIixXKToiIjtyZXR1cm4gYS5sZW5ndGg9PT0wJiYhaSYmKGE9Ii4iKSxhLmxlbmd0aD4wJiZXKGUuY2hhckNvZGVBdCh0LTEpKSYmKGErPSJcXCIpLHI9PT12b2lkIDA/aT9gXFwke2F9YDphOmk/YCR7cn1cXCR7YX1gOmAke3J9JHthfWB9LGlzQWJzb2x1dGUoZSl7ZWUoZSwicGF0aCIpO2NvbnN0IHQ9ZS5sZW5ndGg7aWYodD09PTApcmV0dXJuITE7Y29uc3Qgbj1lLmNoYXJDb2RlQXQoMCk7cmV0dXJuIFcobil8fHQ+MiYmUWUobikmJmUuY2hhckNvZGVBdCgxKT09PUplJiZXKGUuY2hhckNvZGVBdCgyKSl9LGpvaW4oLi4uZSl7aWYoZS5sZW5ndGg9PT0wKXJldHVybiIuIjtsZXQgdCxuO2ZvcihsZXQgcz0wO3M8ZS5sZW5ndGg7KytzKXtjb25zdCBhPWVbc107ZWUoYSwicGF0aCIpLGEubGVuZ3RoPjAmJih0PT09dm9pZCAwP3Q9bj1hOnQrPWBcXCR7YX1gKX1pZih0PT09dm9pZCAwKXJldHVybiIuIjtsZXQgcj0hMCxpPTA7aWYodHlwZW9mIG49PSJzdHJpbmciJiZXKG4uY2hhckNvZGVBdCgwKSkpeysraTtjb25zdCBzPW4ubGVuZ3RoO3M+MSYmVyhuLmNoYXJDb2RlQXQoMSkpJiYoKytpLHM+MiYmKFcobi5jaGFyQ29kZUF0KDIpKT8rK2k6cj0hMSkpfWlmKHIpe2Zvcig7aTx0Lmxlbmd0aCYmVyh0LmNoYXJDb2RlQXQoaSkpOylpKys7aT49MiYmKHQ9YFxcJHt0LnNsaWNlKGkpfWApfXJldHVybiBoZS5ub3JtYWxpemUodCl9LHJlbGF0aXZlKGUsdCl7aWYoZWUoZSwiZnJvbSIpLGVlKHQsInRvIiksZT09PXQpcmV0dXJuIiI7Y29uc3Qgbj1oZS5yZXNvbHZlKGUpLHI9aGUucmVzb2x2ZSh0KTtpZihuPT09cnx8KGU9bi50b0xvd2VyQ2FzZSgpLHQ9ci50b0xvd2VyQ2FzZSgpLGU9PT10KSlyZXR1cm4iIjtsZXQgaT0wO2Zvcig7aTxlLmxlbmd0aCYmZS5jaGFyQ29kZUF0KGkpPT09Z2U7KWkrKztsZXQgcz1lLmxlbmd0aDtmb3IoO3MtMT5pJiZlLmNoYXJDb2RlQXQocy0xKT09PWdlOylzLS07Y29uc3QgYT1zLWk7bGV0IG89MDtmb3IoO288dC5sZW5ndGgmJnQuY2hhckNvZGVBdChvKT09PWdlOylvKys7bGV0IGw9dC5sZW5ndGg7Zm9yKDtsLTE+byYmdC5jaGFyQ29kZUF0KGwtMSk9PT1nZTspbC0tO2NvbnN0IHU9bC1vLGY9YTx1P2E6dTtsZXQgaD0tMSxkPTA7Zm9yKDtkPGY7ZCsrKXtjb25zdCBtPWUuY2hhckNvZGVBdChpK2QpO2lmKG0hPT10LmNoYXJDb2RlQXQobytkKSlicmVhazttPT09Z2UmJihoPWQpfWlmKGQhPT1mKXtpZihoPT09LTEpcmV0dXJuIHJ9ZWxzZXtpZih1PmYpe2lmKHQuY2hhckNvZGVBdChvK2QpPT09Z2UpcmV0dXJuIHIuc2xpY2UobytkKzEpO2lmKGQ9PT0yKXJldHVybiByLnNsaWNlKG8rZCl9YT5mJiYoZS5jaGFyQ29kZUF0KGkrZCk9PT1nZT9oPWQ6ZD09PTImJihoPTMpKSxoPT09LTEmJihoPTApfWxldCBnPSIiO2ZvcihkPWkraCsxO2Q8PXM7KytkKShkPT09c3x8ZS5jaGFyQ29kZUF0KGQpPT09Z2UpJiYoZys9Zy5sZW5ndGg9PT0wPyIuLiI6IlxcLi4iKTtyZXR1cm4gbys9aCxnLmxlbmd0aD4wP2Ake2d9JHtyLnNsaWNlKG8sbCl9YDooci5jaGFyQ29kZUF0KG8pPT09Z2UmJisrbyxyLnNsaWNlKG8sbCkpfSx0b05hbWVzcGFjZWRQYXRoKGUpe2lmKHR5cGVvZiBlIT0ic3RyaW5nInx8ZS5sZW5ndGg9PT0wKXJldHVybiBlO2NvbnN0IHQ9aGUucmVzb2x2ZShlKTtpZih0Lmxlbmd0aDw9MilyZXR1cm4gZTtpZih0LmNoYXJDb2RlQXQoMCk9PT1nZSl7aWYodC5jaGFyQ29kZUF0KDEpPT09Z2Upe2NvbnN0IG49dC5jaGFyQ29kZUF0KDIpO2lmKG4hPT13byYmbiE9PUdlKXJldHVybmBcXFxcP1xcVU5DXFwke3Quc2xpY2UoMil9YH19ZWxzZSBpZihRZSh0LmNoYXJDb2RlQXQoMCkpJiZ0LmNoYXJDb2RlQXQoMSk9PT1KZSYmdC5jaGFyQ29kZUF0KDIpPT09Z2UpcmV0dXJuYFxcXFw/XFwke3R9YDtyZXR1cm4gZX0sZGlybmFtZShlKXtlZShlLCJwYXRoIik7Y29uc3QgdD1lLmxlbmd0aDtpZih0PT09MClyZXR1cm4iLiI7bGV0IG49LTEscj0wO2NvbnN0IGk9ZS5jaGFyQ29kZUF0KDApO2lmKHQ9PT0xKXJldHVybiBXKGkpP2U6Ii4iO2lmKFcoaSkpe2lmKG49cj0xLFcoZS5jaGFyQ29kZUF0KDEpKSl7bGV0IG89MixsPW87Zm9yKDtvPHQmJiFXKGUuY2hhckNvZGVBdChvKSk7KW8rKztpZihvPHQmJm8hPT1sKXtmb3IobD1vO288dCYmVyhlLmNoYXJDb2RlQXQobykpOylvKys7aWYobzx0JiZvIT09bCl7Zm9yKGw9bztvPHQmJiFXKGUuY2hhckNvZGVBdChvKSk7KW8rKztpZihvPT09dClyZXR1cm4gZTtvIT09bCYmKG49cj1vKzEpfX19fWVsc2UgUWUoaSkmJmUuY2hhckNvZGVBdCgxKT09PUplJiYobj10PjImJlcoZS5jaGFyQ29kZUF0KDIpKT8zOjIscj1uKTtsZXQgcz0tMSxhPSEwO2ZvcihsZXQgbz10LTE7bz49cjstLW8paWYoVyhlLmNoYXJDb2RlQXQobykpKXtpZighYSl7cz1vO2JyZWFrfX1lbHNlIGE9ITE7aWYocz09PS0xKXtpZihuPT09LTEpcmV0dXJuIi4iO3M9bn1yZXR1cm4gZS5zbGljZSgwLHMpfSxiYXNlbmFtZShlLHQpe3QhPT12b2lkIDAmJmVlKHQsImV4dCIpLGVlKGUsInBhdGgiKTtsZXQgbj0wLHI9LTEsaT0hMCxzO2lmKGUubGVuZ3RoPj0yJiZRZShlLmNoYXJDb2RlQXQoMCkpJiZlLmNoYXJDb2RlQXQoMSk9PT1KZSYmKG49MiksdCE9PXZvaWQgMCYmdC5sZW5ndGg+MCYmdC5sZW5ndGg8PWUubGVuZ3RoKXtpZih0PT09ZSlyZXR1cm4iIjtsZXQgYT10Lmxlbmd0aC0xLG89LTE7Zm9yKHM9ZS5sZW5ndGgtMTtzPj1uOy0tcyl7Y29uc3QgbD1lLmNoYXJDb2RlQXQocyk7aWYoVyhsKSl7aWYoIWkpe249cysxO2JyZWFrfX1lbHNlIG89PT0tMSYmKGk9ITEsbz1zKzEpLGE+PTAmJihsPT09dC5jaGFyQ29kZUF0KGEpPy0tYT09PS0xJiYocj1zKTooYT0tMSxyPW8pKX1yZXR1cm4gbj09PXI/cj1vOnI9PT0tMSYmKHI9ZS5sZW5ndGgpLGUuc2xpY2UobixyKX1mb3Iocz1lLmxlbmd0aC0xO3M+PW47LS1zKWlmKFcoZS5jaGFyQ29kZUF0KHMpKSl7aWYoIWkpe249cysxO2JyZWFrfX1lbHNlIHI9PT0tMSYmKGk9ITEscj1zKzEpO3JldHVybiByPT09LTE/IiI6ZS5zbGljZShuLHIpfSxleHRuYW1lKGUpe2VlKGUsInBhdGgiKTtsZXQgdD0wLG49LTEscj0wLGk9LTEscz0hMCxhPTA7ZS5sZW5ndGg+PTImJmUuY2hhckNvZGVBdCgxKT09PUplJiZRZShlLmNoYXJDb2RlQXQoMCkpJiYodD1yPTIpO2ZvcihsZXQgbz1lLmxlbmd0aC0xO28+PXQ7LS1vKXtjb25zdCBsPWUuY2hhckNvZGVBdChvKTtpZihXKGwpKXtpZighcyl7cj1vKzE7YnJlYWt9Y29udGludWV9aT09PS0xJiYocz0hMSxpPW8rMSksbD09PUdlP249PT0tMT9uPW86YSE9PTEmJihhPTEpOm4hPT0tMSYmKGE9LTEpfXJldHVybiBuPT09LTF8fGk9PT0tMXx8YT09PTB8fGE9PT0xJiZuPT09aS0xJiZuPT09cisxPyIiOmUuc2xpY2UobixpKX0sZm9ybWF0OlhyLmJpbmQobnVsbCwiXFwiKSxwYXJzZShlKXtlZShlLCJwYXRoIik7Y29uc3QgdD17cm9vdDoiIixkaXI6IiIsYmFzZToiIixleHQ6IiIsbmFtZToiIn07aWYoZS5sZW5ndGg9PT0wKXJldHVybiB0O2NvbnN0IG49ZS5sZW5ndGg7bGV0IHI9MCxpPWUuY2hhckNvZGVBdCgwKTtpZihuPT09MSlyZXR1cm4gVyhpKT8odC5yb290PXQuZGlyPWUsdCk6KHQuYmFzZT10Lm5hbWU9ZSx0KTtpZihXKGkpKXtpZihyPTEsVyhlLmNoYXJDb2RlQXQoMSkpKXtsZXQgaD0yLGQ9aDtmb3IoO2g8biYmIVcoZS5jaGFyQ29kZUF0KGgpKTspaCsrO2lmKGg8biYmaCE9PWQpe2ZvcihkPWg7aDxuJiZXKGUuY2hhckNvZGVBdChoKSk7KWgrKztpZihoPG4mJmghPT1kKXtmb3IoZD1oO2g8biYmIVcoZS5jaGFyQ29kZUF0KGgpKTspaCsrO2g9PT1uP3I9aDpoIT09ZCYmKHI9aCsxKX19fX1lbHNlIGlmKFFlKGkpJiZlLmNoYXJDb2RlQXQoMSk9PT1KZSl7aWYobjw9MilyZXR1cm4gdC5yb290PXQuZGlyPWUsdDtpZihyPTIsVyhlLmNoYXJDb2RlQXQoMikpKXtpZihuPT09MylyZXR1cm4gdC5yb290PXQuZGlyPWUsdDtyPTN9fXI+MCYmKHQucm9vdD1lLnNsaWNlKDAscikpO2xldCBzPS0xLGE9cixvPS0xLGw9ITAsdT1lLmxlbmd0aC0xLGY9MDtmb3IoO3U+PXI7LS11KXtpZihpPWUuY2hhckNvZGVBdCh1KSxXKGkpKXtpZighbCl7YT11KzE7YnJlYWt9Y29udGludWV9bz09PS0xJiYobD0hMSxvPXUrMSksaT09PUdlP3M9PT0tMT9zPXU6ZiE9PTEmJihmPTEpOnMhPT0tMSYmKGY9LTEpfXJldHVybiBvIT09LTEmJihzPT09LTF8fGY9PT0wfHxmPT09MSYmcz09PW8tMSYmcz09PWErMT90LmJhc2U9dC5uYW1lPWUuc2xpY2UoYSxvKToodC5uYW1lPWUuc2xpY2UoYSxzKSx0LmJhc2U9ZS5zbGljZShhLG8pLHQuZXh0PWUuc2xpY2UocyxvKSkpLGE+MCYmYSE9PXI/dC5kaXI9ZS5zbGljZSgwLGEtMSk6dC5kaXI9dC5yb290LHR9LHNlcDoiXFwiLGRlbGltaXRlcjoiOyIsd2luMzI6bnVsbCxwb3NpeDpudWxsfSxObz0oKCk9PntpZihYZSl7Y29uc3QgZT0vXFwvZztyZXR1cm4oKT0+e2NvbnN0IHQ9ZW4oKS5yZXBsYWNlKGUsIi8iKTtyZXR1cm4gdC5zbGljZSh0LmluZGV4T2YoIi8iKSl9fXJldHVybigpPT5lbigpfSkoKSxtZT17cmVzb2x2ZSguLi5lKXtsZXQgdD0iIixuPSExO2ZvcihsZXQgcj1lLmxlbmd0aC0xO3I+PS0xJiYhbjtyLS0pe2NvbnN0IGk9cj49MD9lW3JdOk5vKCk7ZWUoaSwicGF0aCIpLGkubGVuZ3RoIT09MCYmKHQ9YCR7aX0vJHt0fWAsbj1pLmNoYXJDb2RlQXQoMCk9PT1vZSl9cmV0dXJuIHQ9dG4odCwhbiwiLyIsam4pLG4/YC8ke3R9YDp0Lmxlbmd0aD4wP3Q6Ii4ifSxub3JtYWxpemUoZSl7aWYoZWUoZSwicGF0aCIpLGUubGVuZ3RoPT09MClyZXR1cm4iLiI7Y29uc3QgdD1lLmNoYXJDb2RlQXQoMCk9PT1vZSxuPWUuY2hhckNvZGVBdChlLmxlbmd0aC0xKT09PW9lO3JldHVybiBlPXRuKGUsIXQsIi8iLGpuKSxlLmxlbmd0aD09PTA/dD8iLyI6bj8iLi8iOiIuIjoobiYmKGUrPSIvIiksdD9gLyR7ZX1gOmUpfSxpc0Fic29sdXRlKGUpe3JldHVybiBlZShlLCJwYXRoIiksZS5sZW5ndGg+MCYmZS5jaGFyQ29kZUF0KDApPT09b2V9LGpvaW4oLi4uZSl7aWYoZS5sZW5ndGg9PT0wKXJldHVybiIuIjtsZXQgdDtmb3IobGV0IG49MDtuPGUubGVuZ3RoOysrbil7Y29uc3Qgcj1lW25dO2VlKHIsInBhdGgiKSxyLmxlbmd0aD4wJiYodD09PXZvaWQgMD90PXI6dCs9YC8ke3J9YCl9cmV0dXJuIHQ9PT12b2lkIDA/Ii4iOm1lLm5vcm1hbGl6ZSh0KX0scmVsYXRpdmUoZSx0KXtpZihlZShlLCJmcm9tIiksZWUodCwidG8iKSxlPT09dHx8KGU9bWUucmVzb2x2ZShlKSx0PW1lLnJlc29sdmUodCksZT09PXQpKXJldHVybiIiO2NvbnN0IG49MSxyPWUubGVuZ3RoLGk9ci1uLHM9MSxhPXQubGVuZ3RoLXMsbz1pPGE/aTphO2xldCBsPS0xLHU9MDtmb3IoO3U8bzt1Kyspe2NvbnN0IGg9ZS5jaGFyQ29kZUF0KG4rdSk7aWYoaCE9PXQuY2hhckNvZGVBdChzK3UpKWJyZWFrO2g9PT1vZSYmKGw9dSl9aWYodT09PW8paWYoYT5vKXtpZih0LmNoYXJDb2RlQXQocyt1KT09PW9lKXJldHVybiB0LnNsaWNlKHMrdSsxKTtpZih1PT09MClyZXR1cm4gdC5zbGljZShzK3UpfWVsc2UgaT5vJiYoZS5jaGFyQ29kZUF0KG4rdSk9PT1vZT9sPXU6dT09PTAmJihsPTApKTtsZXQgZj0iIjtmb3IodT1uK2wrMTt1PD1yOysrdSkodT09PXJ8fGUuY2hhckNvZGVBdCh1KT09PW9lKSYmKGYrPWYubGVuZ3RoPT09MD8iLi4iOiIvLi4iKTtyZXR1cm5gJHtmfSR7dC5zbGljZShzK2wpfWB9LHRvTmFtZXNwYWNlZFBhdGgoZSl7cmV0dXJuIGV9LGRpcm5hbWUoZSl7aWYoZWUoZSwicGF0aCIpLGUubGVuZ3RoPT09MClyZXR1cm4iLiI7Y29uc3QgdD1lLmNoYXJDb2RlQXQoMCk9PT1vZTtsZXQgbj0tMSxyPSEwO2ZvcihsZXQgaT1lLmxlbmd0aC0xO2k+PTE7LS1pKWlmKGUuY2hhckNvZGVBdChpKT09PW9lKXtpZighcil7bj1pO2JyZWFrfX1lbHNlIHI9ITE7cmV0dXJuIG49PT0tMT90PyIvIjoiLiI6dCYmbj09PTE/Ii8vIjplLnNsaWNlKDAsbil9LGJhc2VuYW1lKGUsdCl7dCE9PXZvaWQgMCYmZWUodCwiZXh0IiksZWUoZSwicGF0aCIpO2xldCBuPTAscj0tMSxpPSEwLHM7aWYodCE9PXZvaWQgMCYmdC5sZW5ndGg+MCYmdC5sZW5ndGg8PWUubGVuZ3RoKXtpZih0PT09ZSlyZXR1cm4iIjtsZXQgYT10Lmxlbmd0aC0xLG89LTE7Zm9yKHM9ZS5sZW5ndGgtMTtzPj0wOy0tcyl7Y29uc3QgbD1lLmNoYXJDb2RlQXQocyk7aWYobD09PW9lKXtpZighaSl7bj1zKzE7YnJlYWt9fWVsc2Ugbz09PS0xJiYoaT0hMSxvPXMrMSksYT49MCYmKGw9PT10LmNoYXJDb2RlQXQoYSk/LS1hPT09LTEmJihyPXMpOihhPS0xLHI9bykpfXJldHVybiBuPT09cj9yPW86cj09PS0xJiYocj1lLmxlbmd0aCksZS5zbGljZShuLHIpfWZvcihzPWUubGVuZ3RoLTE7cz49MDstLXMpaWYoZS5jaGFyQ29kZUF0KHMpPT09b2Upe2lmKCFpKXtuPXMrMTticmVha319ZWxzZSByPT09LTEmJihpPSExLHI9cysxKTtyZXR1cm4gcj09PS0xPyIiOmUuc2xpY2UobixyKX0sZXh0bmFtZShlKXtlZShlLCJwYXRoIik7bGV0IHQ9LTEsbj0wLHI9LTEsaT0hMCxzPTA7Zm9yKGxldCBhPWUubGVuZ3RoLTE7YT49MDstLWEpe2NvbnN0IG89ZS5jaGFyQ29kZUF0KGEpO2lmKG89PT1vZSl7aWYoIWkpe249YSsxO2JyZWFrfWNvbnRpbnVlfXI9PT0tMSYmKGk9ITEscj1hKzEpLG89PT1HZT90PT09LTE/dD1hOnMhPT0xJiYocz0xKTp0IT09LTEmJihzPS0xKX1yZXR1cm4gdD09PS0xfHxyPT09LTF8fHM9PT0wfHxzPT09MSYmdD09PXItMSYmdD09PW4rMT8iIjplLnNsaWNlKHQscil9LGZvcm1hdDpYci5iaW5kKG51bGwsIi8iKSxwYXJzZShlKXtlZShlLCJwYXRoIik7Y29uc3QgdD17cm9vdDoiIixkaXI6IiIsYmFzZToiIixleHQ6IiIsbmFtZToiIn07aWYoZS5sZW5ndGg9PT0wKXJldHVybiB0O2NvbnN0IG49ZS5jaGFyQ29kZUF0KDApPT09b2U7bGV0IHI7bj8odC5yb290PSIvIixyPTEpOnI9MDtsZXQgaT0tMSxzPTAsYT0tMSxvPSEwLGw9ZS5sZW5ndGgtMSx1PTA7Zm9yKDtsPj1yOy0tbCl7Y29uc3QgZj1lLmNoYXJDb2RlQXQobCk7aWYoZj09PW9lKXtpZighbyl7cz1sKzE7YnJlYWt9Y29udGludWV9YT09PS0xJiYobz0hMSxhPWwrMSksZj09PUdlP2k9PT0tMT9pPWw6dSE9PTEmJih1PTEpOmkhPT0tMSYmKHU9LTEpfWlmKGEhPT0tMSl7Y29uc3QgZj1zPT09MCYmbj8xOnM7aT09PS0xfHx1PT09MHx8dT09PTEmJmk9PT1hLTEmJmk9PT1zKzE/dC5iYXNlPXQubmFtZT1lLnNsaWNlKGYsYSk6KHQubmFtZT1lLnNsaWNlKGYsaSksdC5iYXNlPWUuc2xpY2UoZixhKSx0LmV4dD1lLnNsaWNlKGksYSkpfXJldHVybiBzPjA/dC5kaXI9ZS5zbGljZSgwLHMtMSk6biYmKHQuZGlyPSIvIiksdH0sc2VwOiIvIixkZWxpbWl0ZXI6IjoiLHdpbjMyOm51bGwscG9zaXg6bnVsbH07bWUud2luMzI9aGUud2luMzI9aGUsbWUucG9zaXg9aGUucG9zaXg9bWUsWGU/aGUubm9ybWFsaXplOm1lLm5vcm1hbGl6ZSxYZT9oZS5yZXNvbHZlOm1lLnJlc29sdmUsWGU/aGUucmVsYXRpdmU6bWUucmVsYXRpdmUsWGU/aGUuZGlybmFtZTptZS5kaXJuYW1lLFhlP2hlLmJhc2VuYW1lOm1lLmJhc2VuYW1lLFhlP2hlLmV4dG5hbWU6bWUuZXh0bmFtZSxYZT9oZS5zZXA6bWUuc2VwO2NvbnN0IExvPS9eXHdbXHdcZCsuLV0qJC8sQW89L15cLy8sQ289L15cL1wvLztmdW5jdGlvbiBrbyhlLHQpe2lmKCFlLnNjaGVtZSYmdCl0aHJvdyBuZXcgRXJyb3IoYFtVcmlFcnJvcl06IFNjaGVtZSBpcyBtaXNzaW5nOiB7c2NoZW1lOiAiIiwgYXV0aG9yaXR5OiAiJHtlLmF1dGhvcml0eX0iLCBwYXRoOiAiJHtlLnBhdGh9IiwgcXVlcnk6ICIke2UucXVlcnl9IiwgZnJhZ21lbnQ6ICIke2UuZnJhZ21lbnR9In1gKTtpZihlLnNjaGVtZSYmIUxvLnRlc3QoZS5zY2hlbWUpKXRocm93IG5ldyBFcnJvcigiW1VyaUVycm9yXTogU2NoZW1lIGNvbnRhaW5zIGlsbGVnYWwgY2hhcmFjdGVycy4iKTtpZihlLnBhdGgpe2lmKGUuYXV0aG9yaXR5KXtpZighQW8udGVzdChlLnBhdGgpKXRocm93IG5ldyBFcnJvcignW1VyaUVycm9yXTogSWYgYSBVUkkgY29udGFpbnMgYW4gYXV0aG9yaXR5IGNvbXBvbmVudCwgdGhlbiB0aGUgcGF0aCBjb21wb25lbnQgbXVzdCBlaXRoZXIgYmUgZW1wdHkgb3IgYmVnaW4gd2l0aCBhIHNsYXNoICgiLyIpIGNoYXJhY3RlcicpfWVsc2UgaWYoQ28udGVzdChlLnBhdGgpKXRocm93IG5ldyBFcnJvcignW1VyaUVycm9yXTogSWYgYSBVUkkgZG9lcyBub3QgY29udGFpbiBhbiBhdXRob3JpdHkgY29tcG9uZW50LCB0aGVuIHRoZSBwYXRoIGNhbm5vdCBiZWdpbiB3aXRoIHR3byBzbGFzaCBjaGFyYWN0ZXJzICgiLy8iKScpfX1mdW5jdGlvbiBFbyhlLHQpe3JldHVybiFlJiYhdD8iZmlsZSI6ZX1mdW5jdGlvbiBSbyhlLHQpe3N3aXRjaChlKXtjYXNlImh0dHBzIjpjYXNlImh0dHAiOmNhc2UiZmlsZSI6dD90WzBdIT09a2UmJih0PWtlK3QpOnQ9a2U7YnJlYWt9cmV0dXJuIHR9Y29uc3QgWT0iIixrZT0iLyIsTW89L14oKFteOi8/I10rPyk6KT8oXC9cLyhbXi8/I10qKSk/KFtePyNdKikoXD8oW14jXSopKT8oIyguKikpPy87bGV0IHFuPWNsYXNzIENue3N0YXRpYyBpc1VyaSh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIENuPyEwOnQ/dHlwZW9mIHQuYXV0aG9yaXR5PT0ic3RyaW5nIiYmdHlwZW9mIHQuZnJhZ21lbnQ9PSJzdHJpbmciJiZ0eXBlb2YgdC5wYXRoPT0ic3RyaW5nIiYmdHlwZW9mIHQucXVlcnk9PSJzdHJpbmciJiZ0eXBlb2YgdC5zY2hlbWU9PSJzdHJpbmciJiZ0eXBlb2YgdC5mc1BhdGg9PSJzdHJpbmciJiZ0eXBlb2YgdC53aXRoPT0iZnVuY3Rpb24iJiZ0eXBlb2YgdC50b1N0cmluZz09ImZ1bmN0aW9uIjohMX1jb25zdHJ1Y3Rvcih0LG4scixpLHMsYT0hMSl7dHlwZW9mIHQ9PSJvYmplY3QiPyh0aGlzLnNjaGVtZT10LnNjaGVtZXx8WSx0aGlzLmF1dGhvcml0eT10LmF1dGhvcml0eXx8WSx0aGlzLnBhdGg9dC5wYXRofHxZLHRoaXMucXVlcnk9dC5xdWVyeXx8WSx0aGlzLmZyYWdtZW50PXQuZnJhZ21lbnR8fFkpOih0aGlzLnNjaGVtZT1Fbyh0LGEpLHRoaXMuYXV0aG9yaXR5PW58fFksdGhpcy5wYXRoPVJvKHRoaXMuc2NoZW1lLHJ8fFkpLHRoaXMucXVlcnk9aXx8WSx0aGlzLmZyYWdtZW50PXN8fFksa28odGhpcyxhKSl9Z2V0IGZzUGF0aCgpe3JldHVybiBCbih0aGlzLCExKX13aXRoKHQpe2lmKCF0KXJldHVybiB0aGlzO2xldHtzY2hlbWU6bixhdXRob3JpdHk6cixwYXRoOmkscXVlcnk6cyxmcmFnbWVudDphfT10O3JldHVybiBuPT09dm9pZCAwP249dGhpcy5zY2hlbWU6bj09PW51bGwmJihuPVkpLHI9PT12b2lkIDA/cj10aGlzLmF1dGhvcml0eTpyPT09bnVsbCYmKHI9WSksaT09PXZvaWQgMD9pPXRoaXMucGF0aDppPT09bnVsbCYmKGk9WSkscz09PXZvaWQgMD9zPXRoaXMucXVlcnk6cz09PW51bGwmJihzPVkpLGE9PT12b2lkIDA/YT10aGlzLmZyYWdtZW50OmE9PT1udWxsJiYoYT1ZKSxuPT09dGhpcy5zY2hlbWUmJnI9PT10aGlzLmF1dGhvcml0eSYmaT09PXRoaXMucGF0aCYmcz09PXRoaXMucXVlcnkmJmE9PT10aGlzLmZyYWdtZW50P3RoaXM6bmV3IHZ0KG4scixpLHMsYSl9c3RhdGljIHBhcnNlKHQsbj0hMSl7Y29uc3Qgcj1Nby5leGVjKHQpO3JldHVybiByP25ldyB2dChyWzJdfHxZLG5uKHJbNF18fFkpLG5uKHJbNV18fFkpLG5uKHJbN118fFkpLG5uKHJbOV18fFkpLG4pOm5ldyB2dChZLFksWSxZLFkpfXN0YXRpYyBmaWxlKHQpe2xldCBuPVk7aWYoRXQmJih0PXQucmVwbGFjZSgvXFwvZyxrZSkpLHRbMF09PT1rZSYmdFsxXT09PWtlKXtjb25zdCByPXQuaW5kZXhPZihrZSwyKTtyPT09LTE/KG49dC5zdWJzdHJpbmcoMiksdD1rZSk6KG49dC5zdWJzdHJpbmcoMixyKSx0PXQuc3Vic3RyaW5nKHIpfHxrZSl9cmV0dXJuIG5ldyB2dCgiZmlsZSIsbix0LFksWSl9c3RhdGljIGZyb20odCxuKXtyZXR1cm4gbmV3IHZ0KHQuc2NoZW1lLHQuYXV0aG9yaXR5LHQucGF0aCx0LnF1ZXJ5LHQuZnJhZ21lbnQsbil9c3RhdGljIGpvaW5QYXRoKHQsLi4ubil7aWYoIXQucGF0aCl0aHJvdyBuZXcgRXJyb3IoIltVcmlFcnJvcl06IGNhbm5vdCBjYWxsIGpvaW5QYXRoIG9uIFVSSSB3aXRob3V0IHBhdGgiKTtsZXQgcjtyZXR1cm4gRXQmJnQuc2NoZW1lPT09ImZpbGUiP3I9Q24uZmlsZShoZS5qb2luKEJuKHQsITApLC4uLm4pKS5wYXRoOnI9bWUuam9pbih0LnBhdGgsLi4ubiksdC53aXRoKHtwYXRoOnJ9KX10b1N0cmluZyh0PSExKXtyZXR1cm4gJG4odGhpcyx0KX10b0pTT04oKXtyZXR1cm4gdGhpc31zdGF0aWMgcmV2aXZlKHQpe3ZhciBuLHI7aWYodCl7aWYodCBpbnN0YW5jZW9mIENuKXJldHVybiB0O3tjb25zdCBpPW5ldyB2dCh0KTtyZXR1cm4gaS5fZm9ybWF0dGVkPShuPXQuZXh0ZXJuYWwpIT09bnVsbCYmbiE9PXZvaWQgMD9uOm51bGwsaS5fZnNQYXRoPXQuX3NlcD09PVFyJiYocj10LmZzUGF0aCkhPT1udWxsJiZyIT09dm9pZCAwP3I6bnVsbCxpfX1lbHNlIHJldHVybiB0fX07Y29uc3QgUXI9RXQ/MTp2b2lkIDA7Y2xhc3MgdnQgZXh0ZW5kcyBxbntjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fZm9ybWF0dGVkPW51bGwsdGhpcy5fZnNQYXRoPW51bGx9Z2V0IGZzUGF0aCgpe3JldHVybiB0aGlzLl9mc1BhdGh8fCh0aGlzLl9mc1BhdGg9Qm4odGhpcywhMSkpLHRoaXMuX2ZzUGF0aH10b1N0cmluZyh0PSExKXtyZXR1cm4gdD8kbih0aGlzLCEwKToodGhpcy5fZm9ybWF0dGVkfHwodGhpcy5fZm9ybWF0dGVkPSRuKHRoaXMsITEpKSx0aGlzLl9mb3JtYXR0ZWQpfXRvSlNPTigpe2NvbnN0IHQ9eyRtaWQ6MX07cmV0dXJuIHRoaXMuX2ZzUGF0aCYmKHQuZnNQYXRoPXRoaXMuX2ZzUGF0aCx0Ll9zZXA9UXIpLHRoaXMuX2Zvcm1hdHRlZCYmKHQuZXh0ZXJuYWw9dGhpcy5fZm9ybWF0dGVkKSx0aGlzLnBhdGgmJih0LnBhdGg9dGhpcy5wYXRoKSx0aGlzLnNjaGVtZSYmKHQuc2NoZW1lPXRoaXMuc2NoZW1lKSx0aGlzLmF1dGhvcml0eSYmKHQuYXV0aG9yaXR5PXRoaXMuYXV0aG9yaXR5KSx0aGlzLnF1ZXJ5JiYodC5xdWVyeT10aGlzLnF1ZXJ5KSx0aGlzLmZyYWdtZW50JiYodC5mcmFnbWVudD10aGlzLmZyYWdtZW50KSx0fX1jb25zdCBacj17NTg6IiUzQSIsNDc6IiUyRiIsNjM6IiUzRiIsMzU6IiUyMyIsOTE6IiU1QiIsOTM6IiU1RCIsNjQ6IiU0MCIsMzM6IiUyMSIsMzY6IiUyNCIsMzg6IiUyNiIsMzk6IiUyNyIsNDA6IiUyOCIsNDE6IiUyOSIsNDI6IiUyQSIsNDM6IiUyQiIsNDQ6IiUyQyIsNTk6IiUzQiIsNjE6IiUzRCIsMzI6IiUyMCJ9O2Z1bmN0aW9uIFlyKGUsdCxuKXtsZXQgcixpPS0xO2ZvcihsZXQgcz0wO3M8ZS5sZW5ndGg7cysrKXtjb25zdCBhPWUuY2hhckNvZGVBdChzKTtpZihhPj05NyYmYTw9MTIyfHxhPj02NSYmYTw9OTB8fGE+PTQ4JiZhPD01N3x8YT09PTQ1fHxhPT09NDZ8fGE9PT05NXx8YT09PTEyNnx8dCYmYT09PTQ3fHxuJiZhPT09OTF8fG4mJmE9PT05M3x8biYmYT09PTU4KWkhPT0tMSYmKHIrPWVuY29kZVVSSUNvbXBvbmVudChlLnN1YnN0cmluZyhpLHMpKSxpPS0xKSxyIT09dm9pZCAwJiYocis9ZS5jaGFyQXQocykpO2Vsc2V7cj09PXZvaWQgMCYmKHI9ZS5zdWJzdHIoMCxzKSk7Y29uc3Qgbz1aclthXTtvIT09dm9pZCAwPyhpIT09LTEmJihyKz1lbmNvZGVVUklDb21wb25lbnQoZS5zdWJzdHJpbmcoaSxzKSksaT0tMSkscis9byk6aT09PS0xJiYoaT1zKX19cmV0dXJuIGkhPT0tMSYmKHIrPWVuY29kZVVSSUNvbXBvbmVudChlLnN1YnN0cmluZyhpKSkpLHIhPT12b2lkIDA/cjplfWZ1bmN0aW9uIFRvKGUpe2xldCB0O2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXtjb25zdCByPWUuY2hhckNvZGVBdChuKTtyPT09MzV8fHI9PT02Mz8odD09PXZvaWQgMCYmKHQ9ZS5zdWJzdHIoMCxuKSksdCs9WnJbcl0pOnQhPT12b2lkIDAmJih0Kz1lW25dKX1yZXR1cm4gdCE9PXZvaWQgMD90OmV9ZnVuY3Rpb24gQm4oZSx0KXtsZXQgbjtyZXR1cm4gZS5hdXRob3JpdHkmJmUucGF0aC5sZW5ndGg+MSYmZS5zY2hlbWU9PT0iZmlsZSI/bj1gLy8ke2UuYXV0aG9yaXR5fSR7ZS5wYXRofWA6ZS5wYXRoLmNoYXJDb2RlQXQoMCk9PT00NyYmKGUucGF0aC5jaGFyQ29kZUF0KDEpPj02NSYmZS5wYXRoLmNoYXJDb2RlQXQoMSk8PTkwfHxlLnBhdGguY2hhckNvZGVBdCgxKT49OTcmJmUucGF0aC5jaGFyQ29kZUF0KDEpPD0xMjIpJiZlLnBhdGguY2hhckNvZGVBdCgyKT09PTU4P3Q/bj1lLnBhdGguc3Vic3RyKDEpOm49ZS5wYXRoWzFdLnRvTG93ZXJDYXNlKCkrZS5wYXRoLnN1YnN0cigyKTpuPWUucGF0aCxFdCYmKG49bi5yZXBsYWNlKC9cLy9nLCJcXCIpKSxufWZ1bmN0aW9uICRuKGUsdCl7Y29uc3Qgbj10P1RvOllyO2xldCByPSIiLHtzY2hlbWU6aSxhdXRob3JpdHk6cyxwYXRoOmEscXVlcnk6byxmcmFnbWVudDpsfT1lO2lmKGkmJihyKz1pLHIrPSI6IiksKHN8fGk9PT0iZmlsZSIpJiYocis9a2Uscis9a2UpLHMpe2xldCB1PXMuaW5kZXhPZigiQCIpO2lmKHUhPT0tMSl7Y29uc3QgZj1zLnN1YnN0cigwLHUpO3M9cy5zdWJzdHIodSsxKSx1PWYubGFzdEluZGV4T2YoIjoiKSx1PT09LTE/cis9bihmLCExLCExKToocis9bihmLnN1YnN0cigwLHUpLCExLCExKSxyKz0iOiIscis9bihmLnN1YnN0cih1KzEpLCExLCEwKSkscis9IkAifXM9cy50b0xvd2VyQ2FzZSgpLHU9cy5sYXN0SW5kZXhPZigiOiIpLHU9PT0tMT9yKz1uKHMsITEsITApOihyKz1uKHMuc3Vic3RyKDAsdSksITEsITApLHIrPXMuc3Vic3RyKHUpKX1pZihhKXtpZihhLmxlbmd0aD49MyYmYS5jaGFyQ29kZUF0KDApPT09NDcmJmEuY2hhckNvZGVBdCgyKT09PTU4KXtjb25zdCB1PWEuY2hhckNvZGVBdCgxKTt1Pj02NSYmdTw9OTAmJihhPWAvJHtTdHJpbmcuZnJvbUNoYXJDb2RlKHUrMzIpfToke2Euc3Vic3RyKDMpfWApfWVsc2UgaWYoYS5sZW5ndGg+PTImJmEuY2hhckNvZGVBdCgxKT09PTU4KXtjb25zdCB1PWEuY2hhckNvZGVBdCgwKTt1Pj02NSYmdTw9OTAmJihhPWAke1N0cmluZy5mcm9tQ2hhckNvZGUodSszMil9OiR7YS5zdWJzdHIoMil9YCl9cis9bihhLCEwLCExKX1yZXR1cm4gbyYmKHIrPSI/IixyKz1uKG8sITEsITEpKSxsJiYocis9IiMiLHIrPXQ/bDpZcihsLCExLCExKSkscn1mdW5jdGlvbiBLcihlKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlKX1jYXRjaHtyZXR1cm4gZS5sZW5ndGg+Mz9lLnN1YnN0cigwLDMpK0tyKGUuc3Vic3RyKDMpKTplfX1jb25zdCBlaT0vKCVbMC05QS1aYS16XVswLTlBLVphLXpdKSsvZztmdW5jdGlvbiBubihlKXtyZXR1cm4gZS5tYXRjaChlaSk/ZS5yZXBsYWNlKGVpLHQ9PktyKHQpKTplfWxldCBQZT1jbGFzcyBsdHtjb25zdHJ1Y3Rvcih0LG4pe3RoaXMubGluZU51bWJlcj10LHRoaXMuY29sdW1uPW59d2l0aCh0PXRoaXMubGluZU51bWJlcixuPXRoaXMuY29sdW1uKXtyZXR1cm4gdD09PXRoaXMubGluZU51bWJlciYmbj09PXRoaXMuY29sdW1uP3RoaXM6bmV3IGx0KHQsbil9ZGVsdGEodD0wLG49MCl7cmV0dXJuIHRoaXMud2l0aCh0aGlzLmxpbmVOdW1iZXIrdCx0aGlzLmNvbHVtbituKX1lcXVhbHModCl7cmV0dXJuIGx0LmVxdWFscyh0aGlzLHQpfXN0YXRpYyBlcXVhbHModCxuKXtyZXR1cm4hdCYmIW4/ITA6ISF0JiYhIW4mJnQubGluZU51bWJlcj09PW4ubGluZU51bWJlciYmdC5jb2x1bW49PT1uLmNvbHVtbn1pc0JlZm9yZSh0KXtyZXR1cm4gbHQuaXNCZWZvcmUodGhpcyx0KX1zdGF0aWMgaXNCZWZvcmUodCxuKXtyZXR1cm4gdC5saW5lTnVtYmVyPG4ubGluZU51bWJlcj8hMDpuLmxpbmVOdW1iZXI8dC5saW5lTnVtYmVyPyExOnQuY29sdW1uPG4uY29sdW1ufWlzQmVmb3JlT3JFcXVhbCh0KXtyZXR1cm4gbHQuaXNCZWZvcmVPckVxdWFsKHRoaXMsdCl9c3RhdGljIGlzQmVmb3JlT3JFcXVhbCh0LG4pe3JldHVybiB0LmxpbmVOdW1iZXI8bi5saW5lTnVtYmVyPyEwOm4ubGluZU51bWJlcjx0LmxpbmVOdW1iZXI/ITE6dC5jb2x1bW48PW4uY29sdW1ufXN0YXRpYyBjb21wYXJlKHQsbil7Y29uc3Qgcj10LmxpbmVOdW1iZXJ8MCxpPW4ubGluZU51bWJlcnwwO2lmKHI9PT1pKXtjb25zdCBzPXQuY29sdW1ufDAsYT1uLmNvbHVtbnwwO3JldHVybiBzLWF9cmV0dXJuIHItaX1jbG9uZSgpe3JldHVybiBuZXcgbHQodGhpcy5saW5lTnVtYmVyLHRoaXMuY29sdW1uKX10b1N0cmluZygpe3JldHVybiIoIit0aGlzLmxpbmVOdW1iZXIrIiwiK3RoaXMuY29sdW1uKyIpIn1zdGF0aWMgbGlmdCh0KXtyZXR1cm4gbmV3IGx0KHQubGluZU51bWJlcix0LmNvbHVtbil9c3RhdGljIGlzSVBvc2l0aW9uKHQpe3JldHVybiB0JiZ0eXBlb2YgdC5saW5lTnVtYmVyPT0ibnVtYmVyIiYmdHlwZW9mIHQuY29sdW1uPT0ibnVtYmVyIn10b0pTT04oKXtyZXR1cm57bGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uOnRoaXMuY29sdW1ufX19LHNlPWNsYXNzIG5le2NvbnN0cnVjdG9yKHQsbixyLGkpe3Q+cnx8dD09PXImJm4+aT8odGhpcy5zdGFydExpbmVOdW1iZXI9cix0aGlzLnN0YXJ0Q29sdW1uPWksdGhpcy5lbmRMaW5lTnVtYmVyPXQsdGhpcy5lbmRDb2x1bW49bik6KHRoaXMuc3RhcnRMaW5lTnVtYmVyPXQsdGhpcy5zdGFydENvbHVtbj1uLHRoaXMuZW5kTGluZU51bWJlcj1yLHRoaXMuZW5kQ29sdW1uPWkpfWlzRW1wdHkoKXtyZXR1cm4gbmUuaXNFbXB0eSh0aGlzKX1zdGF0aWMgaXNFbXB0eSh0KXtyZXR1cm4gdC5zdGFydExpbmVOdW1iZXI9PT10LmVuZExpbmVOdW1iZXImJnQuc3RhcnRDb2x1bW49PT10LmVuZENvbHVtbn1jb250YWluc1Bvc2l0aW9uKHQpe3JldHVybiBuZS5jb250YWluc1Bvc2l0aW9uKHRoaXMsdCl9c3RhdGljIGNvbnRhaW5zUG9zaXRpb24odCxuKXtyZXR1cm4hKG4ubGluZU51bWJlcjx0LnN0YXJ0TGluZU51bWJlcnx8bi5saW5lTnVtYmVyPnQuZW5kTGluZU51bWJlcnx8bi5saW5lTnVtYmVyPT09dC5zdGFydExpbmVOdW1iZXImJm4uY29sdW1uPHQuc3RhcnRDb2x1bW58fG4ubGluZU51bWJlcj09PXQuZW5kTGluZU51bWJlciYmbi5jb2x1bW4+dC5lbmRDb2x1bW4pfXN0YXRpYyBzdHJpY3RDb250YWluc1Bvc2l0aW9uKHQsbil7cmV0dXJuIShuLmxpbmVOdW1iZXI8dC5zdGFydExpbmVOdW1iZXJ8fG4ubGluZU51bWJlcj50LmVuZExpbmVOdW1iZXJ8fG4ubGluZU51bWJlcj09PXQuc3RhcnRMaW5lTnVtYmVyJiZuLmNvbHVtbjw9dC5zdGFydENvbHVtbnx8bi5saW5lTnVtYmVyPT09dC5lbmRMaW5lTnVtYmVyJiZuLmNvbHVtbj49dC5lbmRDb2x1bW4pfWNvbnRhaW5zUmFuZ2UodCl7cmV0dXJuIG5lLmNvbnRhaW5zUmFuZ2UodGhpcyx0KX1zdGF0aWMgY29udGFpbnNSYW5nZSh0LG4pe3JldHVybiEobi5zdGFydExpbmVOdW1iZXI8dC5zdGFydExpbmVOdW1iZXJ8fG4uZW5kTGluZU51bWJlcjx0LnN0YXJ0TGluZU51bWJlcnx8bi5zdGFydExpbmVOdW1iZXI+dC5lbmRMaW5lTnVtYmVyfHxuLmVuZExpbmVOdW1iZXI+dC5lbmRMaW5lTnVtYmVyfHxuLnN0YXJ0TGluZU51bWJlcj09PXQuc3RhcnRMaW5lTnVtYmVyJiZuLnN0YXJ0Q29sdW1uPHQuc3RhcnRDb2x1bW58fG4uZW5kTGluZU51bWJlcj09PXQuZW5kTGluZU51bWJlciYmbi5lbmRDb2x1bW4+dC5lbmRDb2x1bW4pfXN0cmljdENvbnRhaW5zUmFuZ2UodCl7cmV0dXJuIG5lLnN0cmljdENvbnRhaW5zUmFuZ2UodGhpcyx0KX1zdGF0aWMgc3RyaWN0Q29udGFpbnNSYW5nZSh0LG4pe3JldHVybiEobi5zdGFydExpbmVOdW1iZXI8dC5zdGFydExpbmVOdW1iZXJ8fG4uZW5kTGluZU51bWJlcjx0LnN0YXJ0TGluZU51bWJlcnx8bi5zdGFydExpbmVOdW1iZXI+dC5lbmRMaW5lTnVtYmVyfHxuLmVuZExpbmVOdW1iZXI+dC5lbmRMaW5lTnVtYmVyfHxuLnN0YXJ0TGluZU51bWJlcj09PXQuc3RhcnRMaW5lTnVtYmVyJiZuLnN0YXJ0Q29sdW1uPD10LnN0YXJ0Q29sdW1ufHxuLmVuZExpbmVOdW1iZXI9PT10LmVuZExpbmVOdW1iZXImJm4uZW5kQ29sdW1uPj10LmVuZENvbHVtbil9cGx1c1JhbmdlKHQpe3JldHVybiBuZS5wbHVzUmFuZ2UodGhpcyx0KX1zdGF0aWMgcGx1c1JhbmdlKHQsbil7bGV0IHIsaSxzLGE7cmV0dXJuIG4uc3RhcnRMaW5lTnVtYmVyPHQuc3RhcnRMaW5lTnVtYmVyPyhyPW4uc3RhcnRMaW5lTnVtYmVyLGk9bi5zdGFydENvbHVtbik6bi5zdGFydExpbmVOdW1iZXI9PT10LnN0YXJ0TGluZU51bWJlcj8ocj1uLnN0YXJ0TGluZU51bWJlcixpPU1hdGgubWluKG4uc3RhcnRDb2x1bW4sdC5zdGFydENvbHVtbikpOihyPXQuc3RhcnRMaW5lTnVtYmVyLGk9dC5zdGFydENvbHVtbiksbi5lbmRMaW5lTnVtYmVyPnQuZW5kTGluZU51bWJlcj8ocz1uLmVuZExpbmVOdW1iZXIsYT1uLmVuZENvbHVtbik6bi5lbmRMaW5lTnVtYmVyPT09dC5lbmRMaW5lTnVtYmVyPyhzPW4uZW5kTGluZU51bWJlcixhPU1hdGgubWF4KG4uZW5kQ29sdW1uLHQuZW5kQ29sdW1uKSk6KHM9dC5lbmRMaW5lTnVtYmVyLGE9dC5lbmRDb2x1bW4pLG5ldyBuZShyLGkscyxhKX1pbnRlcnNlY3RSYW5nZXModCl7cmV0dXJuIG5lLmludGVyc2VjdFJhbmdlcyh0aGlzLHQpfXN0YXRpYyBpbnRlcnNlY3RSYW5nZXModCxuKXtsZXQgcj10LnN0YXJ0TGluZU51bWJlcixpPXQuc3RhcnRDb2x1bW4scz10LmVuZExpbmVOdW1iZXIsYT10LmVuZENvbHVtbjtjb25zdCBvPW4uc3RhcnRMaW5lTnVtYmVyLGw9bi5zdGFydENvbHVtbix1PW4uZW5kTGluZU51bWJlcixmPW4uZW5kQ29sdW1uO3JldHVybiByPG8/KHI9byxpPWwpOnI9PT1vJiYoaT1NYXRoLm1heChpLGwpKSxzPnU/KHM9dSxhPWYpOnM9PT11JiYoYT1NYXRoLm1pbihhLGYpKSxyPnN8fHI9PT1zJiZpPmE/bnVsbDpuZXcgbmUocixpLHMsYSl9ZXF1YWxzUmFuZ2UodCl7cmV0dXJuIG5lLmVxdWFsc1JhbmdlKHRoaXMsdCl9c3RhdGljIGVxdWFsc1JhbmdlKHQsbil7cmV0dXJuIXQmJiFuPyEwOiEhdCYmISFuJiZ0LnN0YXJ0TGluZU51bWJlcj09PW4uc3RhcnRMaW5lTnVtYmVyJiZ0LnN0YXJ0Q29sdW1uPT09bi5zdGFydENvbHVtbiYmdC5lbmRMaW5lTnVtYmVyPT09bi5lbmRMaW5lTnVtYmVyJiZ0LmVuZENvbHVtbj09PW4uZW5kQ29sdW1ufWdldEVuZFBvc2l0aW9uKCl7cmV0dXJuIG5lLmdldEVuZFBvc2l0aW9uKHRoaXMpfXN0YXRpYyBnZXRFbmRQb3NpdGlvbih0KXtyZXR1cm4gbmV3IFBlKHQuZW5kTGluZU51bWJlcix0LmVuZENvbHVtbil9Z2V0U3RhcnRQb3NpdGlvbigpe3JldHVybiBuZS5nZXRTdGFydFBvc2l0aW9uKHRoaXMpfXN0YXRpYyBnZXRTdGFydFBvc2l0aW9uKHQpe3JldHVybiBuZXcgUGUodC5zdGFydExpbmVOdW1iZXIsdC5zdGFydENvbHVtbil9dG9TdHJpbmcoKXtyZXR1cm4iWyIrdGhpcy5zdGFydExpbmVOdW1iZXIrIiwiK3RoaXMuc3RhcnRDb2x1bW4rIiAtPiAiK3RoaXMuZW5kTGluZU51bWJlcisiLCIrdGhpcy5lbmRDb2x1bW4rIl0ifXNldEVuZFBvc2l0aW9uKHQsbil7cmV0dXJuIG5ldyBuZSh0aGlzLnN0YXJ0TGluZU51bWJlcix0aGlzLnN0YXJ0Q29sdW1uLHQsbil9c2V0U3RhcnRQb3NpdGlvbih0LG4pe3JldHVybiBuZXcgbmUodCxuLHRoaXMuZW5kTGluZU51bWJlcix0aGlzLmVuZENvbHVtbil9Y29sbGFwc2VUb1N0YXJ0KCl7cmV0dXJuIG5lLmNvbGxhcHNlVG9TdGFydCh0aGlzKX1zdGF0aWMgY29sbGFwc2VUb1N0YXJ0KHQpe3JldHVybiBuZXcgbmUodC5zdGFydExpbmVOdW1iZXIsdC5zdGFydENvbHVtbix0LnN0YXJ0TGluZU51bWJlcix0LnN0YXJ0Q29sdW1uKX1jb2xsYXBzZVRvRW5kKCl7cmV0dXJuIG5lLmNvbGxhcHNlVG9FbmQodGhpcyl9c3RhdGljIGNvbGxhcHNlVG9FbmQodCl7cmV0dXJuIG5ldyBuZSh0LmVuZExpbmVOdW1iZXIsdC5lbmRDb2x1bW4sdC5lbmRMaW5lTnVtYmVyLHQuZW5kQ29sdW1uKX1kZWx0YSh0KXtyZXR1cm4gbmV3IG5lKHRoaXMuc3RhcnRMaW5lTnVtYmVyK3QsdGhpcy5zdGFydENvbHVtbix0aGlzLmVuZExpbmVOdW1iZXIrdCx0aGlzLmVuZENvbHVtbil9c3RhdGljIGZyb21Qb3NpdGlvbnModCxuPXQpe3JldHVybiBuZXcgbmUodC5saW5lTnVtYmVyLHQuY29sdW1uLG4ubGluZU51bWJlcixuLmNvbHVtbil9c3RhdGljIGxpZnQodCl7cmV0dXJuIHQ/bmV3IG5lKHQuc3RhcnRMaW5lTnVtYmVyLHQuc3RhcnRDb2x1bW4sdC5lbmRMaW5lTnVtYmVyLHQuZW5kQ29sdW1uKTpudWxsfXN0YXRpYyBpc0lSYW5nZSh0KXtyZXR1cm4gdCYmdHlwZW9mIHQuc3RhcnRMaW5lTnVtYmVyPT0ibnVtYmVyIiYmdHlwZW9mIHQuc3RhcnRDb2x1bW49PSJudW1iZXIiJiZ0eXBlb2YgdC5lbmRMaW5lTnVtYmVyPT0ibnVtYmVyIiYmdHlwZW9mIHQuZW5kQ29sdW1uPT0ibnVtYmVyIn1zdGF0aWMgYXJlSW50ZXJzZWN0aW5nT3JUb3VjaGluZyh0LG4pe3JldHVybiEodC5lbmRMaW5lTnVtYmVyPG4uc3RhcnRMaW5lTnVtYmVyfHx0LmVuZExpbmVOdW1iZXI9PT1uLnN0YXJ0TGluZU51bWJlciYmdC5lbmRDb2x1bW48bi5zdGFydENvbHVtbnx8bi5lbmRMaW5lTnVtYmVyPHQuc3RhcnRMaW5lTnVtYmVyfHxuLmVuZExpbmVOdW1iZXI9PT10LnN0YXJ0TGluZU51bWJlciYmbi5lbmRDb2x1bW48dC5zdGFydENvbHVtbil9c3RhdGljIGFyZUludGVyc2VjdGluZyh0LG4pe3JldHVybiEodC5lbmRMaW5lTnVtYmVyPG4uc3RhcnRMaW5lTnVtYmVyfHx0LmVuZExpbmVOdW1iZXI9PT1uLnN0YXJ0TGluZU51bWJlciYmdC5lbmRDb2x1bW48PW4uc3RhcnRDb2x1bW58fG4uZW5kTGluZU51bWJlcjx0LnN0YXJ0TGluZU51bWJlcnx8bi5lbmRMaW5lTnVtYmVyPT09dC5zdGFydExpbmVOdW1iZXImJm4uZW5kQ29sdW1uPD10LnN0YXJ0Q29sdW1uKX1zdGF0aWMgY29tcGFyZVJhbmdlc1VzaW5nU3RhcnRzKHQsbil7aWYodCYmbil7Y29uc3Qgcz10LnN0YXJ0TGluZU51bWJlcnwwLGE9bi5zdGFydExpbmVOdW1iZXJ8MDtpZihzPT09YSl7Y29uc3Qgbz10LnN0YXJ0Q29sdW1ufDAsbD1uLnN0YXJ0Q29sdW1ufDA7aWYobz09PWwpe2NvbnN0IHU9dC5lbmRMaW5lTnVtYmVyfDAsZj1uLmVuZExpbmVOdW1iZXJ8MDtpZih1PT09Zil7Y29uc3QgaD10LmVuZENvbHVtbnwwLGQ9bi5lbmRDb2x1bW58MDtyZXR1cm4gaC1kfXJldHVybiB1LWZ9cmV0dXJuIG8tbH1yZXR1cm4gcy1hfXJldHVybih0PzE6MCktKG4/MTowKX1zdGF0aWMgY29tcGFyZVJhbmdlc1VzaW5nRW5kcyh0LG4pe3JldHVybiB0LmVuZExpbmVOdW1iZXI9PT1uLmVuZExpbmVOdW1iZXI/dC5lbmRDb2x1bW49PT1uLmVuZENvbHVtbj90LnN0YXJ0TGluZU51bWJlcj09PW4uc3RhcnRMaW5lTnVtYmVyP3Quc3RhcnRDb2x1bW4tbi5zdGFydENvbHVtbjp0LnN0YXJ0TGluZU51bWJlci1uLnN0YXJ0TGluZU51bWJlcjp0LmVuZENvbHVtbi1uLmVuZENvbHVtbjp0LmVuZExpbmVOdW1iZXItbi5lbmRMaW5lTnVtYmVyfXN0YXRpYyBzcGFuc011bHRpcGxlTGluZXModCl7cmV0dXJuIHQuZW5kTGluZU51bWJlcj50LnN0YXJ0TGluZU51bWJlcn10b0pTT04oKXtyZXR1cm4gdGhpc319O2Z1bmN0aW9uIFBvKGUsdCxuPShyLGkpPT5yPT09aSl7aWYoZT09PXQpcmV0dXJuITA7aWYoIWV8fCF0fHxlLmxlbmd0aCE9PXQubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgcj0wLGk9ZS5sZW5ndGg7cjxpO3IrKylpZighbihlW3JdLHRbcl0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uKkZvKGUsdCl7bGV0IG4scjtmb3IoY29uc3QgaSBvZiBlKXIhPT12b2lkIDAmJnQocixpKT9uLnB1c2goaSk6KG4mJih5aWVsZCBuKSxuPVtpXSkscj1pO24mJih5aWVsZCBuKX1mdW5jdGlvbiBJbyhlLHQpe2ZvcihsZXQgbj0wO248PWUubGVuZ3RoO24rKyl0KG49PT0wP3ZvaWQgMDplW24tMV0sbj09PWUubGVuZ3RoP3ZvaWQgMDplW25dKX1mdW5jdGlvbiBEbyhlLHQpe2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXQobj09PTA/dm9pZCAwOmVbbi0xXSxlW25dLG4rMT09PWUubGVuZ3RoP3ZvaWQgMDplW24rMV0pfWZ1bmN0aW9uIFZvKGUsdCl7Zm9yKGNvbnN0IG4gb2YgdCllLnB1c2gobil9dmFyIHRpOyhmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHMpe3JldHVybiBzPDB9ZS5pc0xlc3NUaGFuPXQ7ZnVuY3Rpb24gbihzKXtyZXR1cm4gczw9MH1lLmlzTGVzc1RoYW5PckVxdWFsPW47ZnVuY3Rpb24gcihzKXtyZXR1cm4gcz4wfWUuaXNHcmVhdGVyVGhhbj1yO2Z1bmN0aW9uIGkocyl7cmV0dXJuIHM9PT0wfWUuaXNOZWl0aGVyTGVzc09yR3JlYXRlclRoYW49aSxlLmdyZWF0ZXJUaGFuPTEsZS5sZXNzVGhhbj0tMSxlLm5laXRoZXJMZXNzT3JHcmVhdGVyVGhhbj0wfSkodGl8fCh0aT17fSkpO2Z1bmN0aW9uIHJuKGUsdCl7cmV0dXJuKG4scik9PnQoZShuKSxlKHIpKX1jb25zdCBzbj0oZSx0KT0+ZS10O2Z1bmN0aW9uIE9vKGUpe3JldHVybih0LG4pPT4tZSh0LG4pfWZ1bmN0aW9uIG5pKGUpe3JldHVybiBlPDA/MDplPjI1NT8yNTU6ZXwwfWZ1bmN0aW9uIGJ0KGUpe3JldHVybiBlPDA/MDplPjQyOTQ5NjcyOTU/NDI5NDk2NzI5NTplfDB9Y2xhc3MgVW97Y29uc3RydWN0b3IodCl7dGhpcy52YWx1ZXM9dCx0aGlzLnByZWZpeFN1bT1uZXcgVWludDMyQXJyYXkodC5sZW5ndGgpLHRoaXMucHJlZml4U3VtVmFsaWRJbmRleD1uZXcgSW50MzJBcnJheSgxKSx0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF09LTF9aW5zZXJ0VmFsdWVzKHQsbil7dD1idCh0KTtjb25zdCByPXRoaXMudmFsdWVzLGk9dGhpcy5wcmVmaXhTdW0scz1uLmxlbmd0aDtyZXR1cm4gcz09PTA/ITE6KHRoaXMudmFsdWVzPW5ldyBVaW50MzJBcnJheShyLmxlbmd0aCtzKSx0aGlzLnZhbHVlcy5zZXQoci5zdWJhcnJheSgwLHQpLDApLHRoaXMudmFsdWVzLnNldChyLnN1YmFycmF5KHQpLHQrcyksdGhpcy52YWx1ZXMuc2V0KG4sdCksdC0xPHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXSYmKHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXT10LTEpLHRoaXMucHJlZml4U3VtPW5ldyBVaW50MzJBcnJheSh0aGlzLnZhbHVlcy5sZW5ndGgpLHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXT49MCYmdGhpcy5wcmVmaXhTdW0uc2V0KGkuc3ViYXJyYXkoMCx0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF0rMSkpLCEwKX1zZXRWYWx1ZSh0LG4pe3JldHVybiB0PWJ0KHQpLG49YnQobiksdGhpcy52YWx1ZXNbdF09PT1uPyExOih0aGlzLnZhbHVlc1t0XT1uLHQtMTx0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF0mJih0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF09dC0xKSwhMCl9cmVtb3ZlVmFsdWVzKHQsbil7dD1idCh0KSxuPWJ0KG4pO2NvbnN0IHI9dGhpcy52YWx1ZXMsaT10aGlzLnByZWZpeFN1bTtpZih0Pj1yLmxlbmd0aClyZXR1cm4hMTtjb25zdCBzPXIubGVuZ3RoLXQ7cmV0dXJuIG4+PXMmJihuPXMpLG49PT0wPyExOih0aGlzLnZhbHVlcz1uZXcgVWludDMyQXJyYXkoci5sZW5ndGgtbiksdGhpcy52YWx1ZXMuc2V0KHIuc3ViYXJyYXkoMCx0KSwwKSx0aGlzLnZhbHVlcy5zZXQoci5zdWJhcnJheSh0K24pLHQpLHRoaXMucHJlZml4U3VtPW5ldyBVaW50MzJBcnJheSh0aGlzLnZhbHVlcy5sZW5ndGgpLHQtMTx0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF0mJih0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF09dC0xKSx0aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF0+PTAmJnRoaXMucHJlZml4U3VtLnNldChpLnN1YmFycmF5KDAsdGhpcy5wcmVmaXhTdW1WYWxpZEluZGV4WzBdKzEpKSwhMCl9Z2V0VG90YWxTdW0oKXtyZXR1cm4gdGhpcy52YWx1ZXMubGVuZ3RoPT09MD8wOnRoaXMuX2dldFByZWZpeFN1bSh0aGlzLnZhbHVlcy5sZW5ndGgtMSl9Z2V0UHJlZml4U3VtKHQpe3JldHVybiB0PDA/MDoodD1idCh0KSx0aGlzLl9nZXRQcmVmaXhTdW0odCkpfV9nZXRQcmVmaXhTdW0odCl7aWYodDw9dGhpcy5wcmVmaXhTdW1WYWxpZEluZGV4WzBdKXJldHVybiB0aGlzLnByZWZpeFN1bVt0XTtsZXQgbj10aGlzLnByZWZpeFN1bVZhbGlkSW5kZXhbMF0rMTtuPT09MCYmKHRoaXMucHJlZml4U3VtWzBdPXRoaXMudmFsdWVzWzBdLG4rKyksdD49dGhpcy52YWx1ZXMubGVuZ3RoJiYodD10aGlzLnZhbHVlcy5sZW5ndGgtMSk7Zm9yKGxldCByPW47cjw9dDtyKyspdGhpcy5wcmVmaXhTdW1bcl09dGhpcy5wcmVmaXhTdW1bci0xXSt0aGlzLnZhbHVlc1tyXTtyZXR1cm4gdGhpcy5wcmVmaXhTdW1WYWxpZEluZGV4WzBdPU1hdGgubWF4KHRoaXMucHJlZml4U3VtVmFsaWRJbmRleFswXSx0KSx0aGlzLnByZWZpeFN1bVt0XX1nZXRJbmRleE9mKHQpe3Q9TWF0aC5mbG9vcih0KSx0aGlzLmdldFRvdGFsU3VtKCk7bGV0IG49MCxyPXRoaXMudmFsdWVzLmxlbmd0aC0xLGk9MCxzPTAsYT0wO2Zvcig7bjw9cjspaWYoaT1uKyhyLW4pLzJ8MCxzPXRoaXMucHJlZml4U3VtW2ldLGE9cy10aGlzLnZhbHVlc1tpXSx0PGEpcj1pLTE7ZWxzZSBpZih0Pj1zKW49aSsxO2Vsc2UgYnJlYWs7cmV0dXJuIG5ldyBqbyhpLHQtYSl9fWNsYXNzIGpve2NvbnN0cnVjdG9yKHQsbil7dGhpcy5pbmRleD10LHRoaXMucmVtYWluZGVyPW4sdGhpcy5fcHJlZml4U3VtSW5kZXhPZlJlc3VsdEJyYW5kPXZvaWQgMCx0aGlzLmluZGV4PXQsdGhpcy5yZW1haW5kZXI9bn19Y2xhc3MgcW97Y29uc3RydWN0b3IodCxuLHIsaSl7dGhpcy5fdXJpPXQsdGhpcy5fbGluZXM9bix0aGlzLl9lb2w9cix0aGlzLl92ZXJzaW9uSWQ9aSx0aGlzLl9saW5lU3RhcnRzPW51bGwsdGhpcy5fY2FjaGVkVGV4dFZhbHVlPW51bGx9ZGlzcG9zZSgpe3RoaXMuX2xpbmVzLmxlbmd0aD0wfWdldCB2ZXJzaW9uKCl7cmV0dXJuIHRoaXMuX3ZlcnNpb25JZH1nZXRUZXh0KCl7cmV0dXJuIHRoaXMuX2NhY2hlZFRleHRWYWx1ZT09PW51bGwmJih0aGlzLl9jYWNoZWRUZXh0VmFsdWU9dGhpcy5fbGluZXMuam9pbih0aGlzLl9lb2wpKSx0aGlzLl9jYWNoZWRUZXh0VmFsdWV9b25FdmVudHModCl7dC5lb2wmJnQuZW9sIT09dGhpcy5fZW9sJiYodGhpcy5fZW9sPXQuZW9sLHRoaXMuX2xpbmVTdGFydHM9bnVsbCk7Y29uc3Qgbj10LmNoYW5nZXM7Zm9yKGNvbnN0IHIgb2Ygbil0aGlzLl9hY2NlcHREZWxldGVSYW5nZShyLnJhbmdlKSx0aGlzLl9hY2NlcHRJbnNlcnRUZXh0KG5ldyBQZShyLnJhbmdlLnN0YXJ0TGluZU51bWJlcixyLnJhbmdlLnN0YXJ0Q29sdW1uKSxyLnRleHQpO3RoaXMuX3ZlcnNpb25JZD10LnZlcnNpb25JZCx0aGlzLl9jYWNoZWRUZXh0VmFsdWU9bnVsbH1fZW5zdXJlTGluZVN0YXJ0cygpe2lmKCF0aGlzLl9saW5lU3RhcnRzKXtjb25zdCB0PXRoaXMuX2VvbC5sZW5ndGgsbj10aGlzLl9saW5lcy5sZW5ndGgscj1uZXcgVWludDMyQXJyYXkobik7Zm9yKGxldCBpPTA7aTxuO2krKylyW2ldPXRoaXMuX2xpbmVzW2ldLmxlbmd0aCt0O3RoaXMuX2xpbmVTdGFydHM9bmV3IFVvKHIpfX1fc2V0TGluZVRleHQodCxuKXt0aGlzLl9saW5lc1t0XT1uLHRoaXMuX2xpbmVTdGFydHMmJnRoaXMuX2xpbmVTdGFydHMuc2V0VmFsdWUodCx0aGlzLl9saW5lc1t0XS5sZW5ndGgrdGhpcy5fZW9sLmxlbmd0aCl9X2FjY2VwdERlbGV0ZVJhbmdlKHQpe2lmKHQuc3RhcnRMaW5lTnVtYmVyPT09dC5lbmRMaW5lTnVtYmVyKXtpZih0LnN0YXJ0Q29sdW1uPT09dC5lbmRDb2x1bW4pcmV0dXJuO3RoaXMuX3NldExpbmVUZXh0KHQuc3RhcnRMaW5lTnVtYmVyLTEsdGhpcy5fbGluZXNbdC5zdGFydExpbmVOdW1iZXItMV0uc3Vic3RyaW5nKDAsdC5zdGFydENvbHVtbi0xKSt0aGlzLl9saW5lc1t0LnN0YXJ0TGluZU51bWJlci0xXS5zdWJzdHJpbmcodC5lbmRDb2x1bW4tMSkpO3JldHVybn10aGlzLl9zZXRMaW5lVGV4dCh0LnN0YXJ0TGluZU51bWJlci0xLHRoaXMuX2xpbmVzW3Quc3RhcnRMaW5lTnVtYmVyLTFdLnN1YnN0cmluZygwLHQuc3RhcnRDb2x1bW4tMSkrdGhpcy5fbGluZXNbdC5lbmRMaW5lTnVtYmVyLTFdLnN1YnN0cmluZyh0LmVuZENvbHVtbi0xKSksdGhpcy5fbGluZXMuc3BsaWNlKHQuc3RhcnRMaW5lTnVtYmVyLHQuZW5kTGluZU51bWJlci10LnN0YXJ0TGluZU51bWJlciksdGhpcy5fbGluZVN0YXJ0cyYmdGhpcy5fbGluZVN0YXJ0cy5yZW1vdmVWYWx1ZXModC5zdGFydExpbmVOdW1iZXIsdC5lbmRMaW5lTnVtYmVyLXQuc3RhcnRMaW5lTnVtYmVyKX1fYWNjZXB0SW5zZXJ0VGV4dCh0LG4pe2lmKG4ubGVuZ3RoPT09MClyZXR1cm47Y29uc3Qgcj1aYShuKTtpZihyLmxlbmd0aD09PTEpe3RoaXMuX3NldExpbmVUZXh0KHQubGluZU51bWJlci0xLHRoaXMuX2xpbmVzW3QubGluZU51bWJlci0xXS5zdWJzdHJpbmcoMCx0LmNvbHVtbi0xKStyWzBdK3RoaXMuX2xpbmVzW3QubGluZU51bWJlci0xXS5zdWJzdHJpbmcodC5jb2x1bW4tMSkpO3JldHVybn1yW3IubGVuZ3RoLTFdKz10aGlzLl9saW5lc1t0LmxpbmVOdW1iZXItMV0uc3Vic3RyaW5nKHQuY29sdW1uLTEpLHRoaXMuX3NldExpbmVUZXh0KHQubGluZU51bWJlci0xLHRoaXMuX2xpbmVzW3QubGluZU51bWJlci0xXS5zdWJzdHJpbmcoMCx0LmNvbHVtbi0xKStyWzBdKTtjb25zdCBpPW5ldyBVaW50MzJBcnJheShyLmxlbmd0aC0xKTtmb3IobGV0IHM9MTtzPHIubGVuZ3RoO3MrKyl0aGlzLl9saW5lcy5zcGxpY2UodC5saW5lTnVtYmVyK3MtMSwwLHJbc10pLGlbcy0xXT1yW3NdLmxlbmd0aCt0aGlzLl9lb2wubGVuZ3RoO3RoaXMuX2xpbmVTdGFydHMmJnRoaXMuX2xpbmVTdGFydHMuaW5zZXJ0VmFsdWVzKHQubGluZU51bWJlcixpKX19Y29uc3QgQm89ImB+IUAjJCVeJiooKS09K1t7XX1cXHw7OidcIiwuPD4vPyI7ZnVuY3Rpb24gJG8oZT0iIil7bGV0IHQ9IigtP1xcZCpcXC5cXGRcXHcqKXwoW14iO2Zvcihjb25zdCBuIG9mIEJvKWUuaW5kZXhPZihuKT49MHx8KHQrPSJcXCIrbik7cmV0dXJuIHQrPSJcXHNdKykiLG5ldyBSZWdFeHAodCwiZyIpfWNvbnN0IHJpPSRvKCk7ZnVuY3Rpb24gaWkoZSl7bGV0IHQ9cmk7aWYoZSYmZSBpbnN0YW5jZW9mIFJlZ0V4cClpZihlLmdsb2JhbCl0PWU7ZWxzZXtsZXQgbj0iZyI7ZS5pZ25vcmVDYXNlJiYobis9ImkiKSxlLm11bHRpbGluZSYmKG4rPSJtIiksZS51bmljb2RlJiYobis9InUiKSx0PW5ldyBSZWdFeHAoZS5zb3VyY2Usbil9cmV0dXJuIHQubGFzdEluZGV4PTAsdH1jb25zdCBzaT1uZXcgUGE7c2kudW5zaGlmdCh7bWF4TGVuOjFlMyx3aW5kb3dTaXplOjE1LHRpbWVCdWRnZXQ6MTUwfSk7ZnVuY3Rpb24gV24oZSx0LG4scixpKXtpZih0PWlpKHQpLGl8fChpPVF0LmZpcnN0KHNpKSksbi5sZW5ndGg+aS5tYXhMZW4pe2xldCB1PWUtaS5tYXhMZW4vMjtyZXR1cm4gdTwwP3U9MDpyKz11LG49bi5zdWJzdHJpbmcodSxlK2kubWF4TGVuLzIpLFduKGUsdCxuLHIsaSl9Y29uc3Qgcz1EYXRlLm5vdygpLGE9ZS0xLXI7bGV0IG89LTEsbD1udWxsO2ZvcihsZXQgdT0xOyEoRGF0ZS5ub3coKS1zPj1pLnRpbWVCdWRnZXQpO3UrKyl7Y29uc3QgZj1hLWkud2luZG93U2l6ZSp1O3QubGFzdEluZGV4PU1hdGgubWF4KDAsZik7Y29uc3QgaD1Xbyh0LG4sYSxvKTtpZighaCYmbHx8KGw9aCxmPD0wKSlicmVhaztvPWZ9aWYobCl7Y29uc3QgdT17d29yZDpsWzBdLHN0YXJ0Q29sdW1uOnIrMStsLmluZGV4LGVuZENvbHVtbjpyKzErbC5pbmRleCtsWzBdLmxlbmd0aH07cmV0dXJuIHQubGFzdEluZGV4PTAsdX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBXbyhlLHQsbixyKXtsZXQgaTtmb3IoO2k9ZS5leGVjKHQpOyl7Y29uc3Qgcz1pLmluZGV4fHwwO2lmKHM8PW4mJmUubGFzdEluZGV4Pj1uKXJldHVybiBpO2lmKHI+MCYmcz5yKXJldHVybiBudWxsfXJldHVybiBudWxsfWNsYXNzIEhue2NvbnN0cnVjdG9yKHQpe2NvbnN0IG49bmkodCk7dGhpcy5fZGVmYXVsdFZhbHVlPW4sdGhpcy5fYXNjaWlNYXA9SG4uX2NyZWF0ZUFzY2lpTWFwKG4pLHRoaXMuX21hcD1uZXcgTWFwfXN0YXRpYyBfY3JlYXRlQXNjaWlNYXAodCl7Y29uc3Qgbj1uZXcgVWludDhBcnJheSgyNTYpO3JldHVybiBuLmZpbGwodCksbn1zZXQodCxuKXtjb25zdCByPW5pKG4pO3Q+PTAmJnQ8MjU2P3RoaXMuX2FzY2lpTWFwW3RdPXI6dGhpcy5fbWFwLnNldCh0LHIpfWdldCh0KXtyZXR1cm4gdD49MCYmdDwyNTY/dGhpcy5fYXNjaWlNYXBbdF06dGhpcy5fbWFwLmdldCh0KXx8dGhpcy5fZGVmYXVsdFZhbHVlfWNsZWFyKCl7dGhpcy5fYXNjaWlNYXAuZmlsbCh0aGlzLl9kZWZhdWx0VmFsdWUpLHRoaXMuX21hcC5jbGVhcigpfX1jbGFzcyBIb3tjb25zdHJ1Y3Rvcih0LG4scil7Y29uc3QgaT1uZXcgVWludDhBcnJheSh0Km4pO2ZvcihsZXQgcz0wLGE9dCpuO3M8YTtzKyspaVtzXT1yO3RoaXMuX2RhdGE9aSx0aGlzLnJvd3M9dCx0aGlzLmNvbHM9bn1nZXQodCxuKXtyZXR1cm4gdGhpcy5fZGF0YVt0KnRoaXMuY29scytuXX1zZXQodCxuLHIpe3RoaXMuX2RhdGFbdCp0aGlzLmNvbHMrbl09cn19Y2xhc3Mgem97Y29uc3RydWN0b3IodCl7bGV0IG49MCxyPTA7Zm9yKGxldCBzPTAsYT10Lmxlbmd0aDtzPGE7cysrKXtjb25zdFtvLGwsdV09dFtzXTtsPm4mJihuPWwpLG8+ciYmKHI9byksdT5yJiYocj11KX1uKysscisrO2NvbnN0IGk9bmV3IEhvKHIsbiwwKTtmb3IobGV0IHM9MCxhPXQubGVuZ3RoO3M8YTtzKyspe2NvbnN0W28sbCx1XT10W3NdO2kuc2V0KG8sbCx1KX10aGlzLl9zdGF0ZXM9aSx0aGlzLl9tYXhDaGFyQ29kZT1ufW5leHRTdGF0ZSh0LG4pe3JldHVybiBuPDB8fG4+PXRoaXMuX21heENoYXJDb2RlPzA6dGhpcy5fc3RhdGVzLmdldCh0LG4pfX1sZXQgem49bnVsbDtmdW5jdGlvbiBHbygpe3JldHVybiB6bj09PW51bGwmJih6bj1uZXcgem8oW1sxLDEwNCwyXSxbMSw3MiwyXSxbMSwxMDIsNl0sWzEsNzAsNl0sWzIsMTE2LDNdLFsyLDg0LDNdLFszLDExNiw0XSxbMyw4NCw0XSxbNCwxMTIsNV0sWzQsODAsNV0sWzUsMTE1LDldLFs1LDgzLDldLFs1LDU4LDEwXSxbNiwxMDUsN10sWzYsNzMsN10sWzcsMTA4LDhdLFs3LDc2LDhdLFs4LDEwMSw5XSxbOCw2OSw5XSxbOSw1OCwxMF0sWzEwLDQ3LDExXSxbMTEsNDcsMTJdXSkpLHpufWxldCBSdD1udWxsO2Z1bmN0aW9uIEpvKCl7aWYoUnQ9PT1udWxsKXtSdD1uZXcgSG4oMCk7Y29uc3QgZT1gIAk8Pici44CB44CC772h772k77yM77yO77ya77yb4oCY44CI44CM44CO44CU77yI77y7772b772i772j772d77y977yJ44CV44CP44CN44CJ4oCZ772A772e4oCmYDtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rKylSdC5zZXQoZS5jaGFyQ29kZUF0KG4pLDEpO2NvbnN0IHQ9Ii4sOzoiO2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKVJ0LnNldCh0LmNoYXJDb2RlQXQobiksMil9cmV0dXJuIFJ0fWNsYXNzIGFue3N0YXRpYyBfY3JlYXRlTGluayh0LG4scixpLHMpe2xldCBhPXMtMTtkb3tjb25zdCBvPW4uY2hhckNvZGVBdChhKTtpZih0LmdldChvKSE9PTIpYnJlYWs7YS0tfXdoaWxlKGE+aSk7aWYoaT4wKXtjb25zdCBvPW4uY2hhckNvZGVBdChpLTEpLGw9bi5jaGFyQ29kZUF0KGEpOyhvPT09NDAmJmw9PT00MXx8bz09PTkxJiZsPT09OTN8fG89PT0xMjMmJmw9PT0xMjUpJiZhLS19cmV0dXJue3JhbmdlOntzdGFydExpbmVOdW1iZXI6cixzdGFydENvbHVtbjppKzEsZW5kTGluZU51bWJlcjpyLGVuZENvbHVtbjphKzJ9LHVybDpuLnN1YnN0cmluZyhpLGErMSl9fXN0YXRpYyBjb21wdXRlTGlua3ModCxuPUdvKCkpe2NvbnN0IHI9Sm8oKSxpPVtdO2ZvcihsZXQgcz0xLGE9dC5nZXRMaW5lQ291bnQoKTtzPD1hO3MrKyl7Y29uc3Qgbz10LmdldExpbmVDb250ZW50KHMpLGw9by5sZW5ndGg7bGV0IHU9MCxmPTAsaD0wLGQ9MSxnPSExLG09ITEsdj0hMSxwPSExO2Zvcig7dTxsOyl7bGV0IHg9ITE7Y29uc3QgeT1vLmNoYXJDb2RlQXQodSk7aWYoZD09PTEzKXtsZXQgYjtzd2l0Y2goeSl7Y2FzZSA0MDpnPSEwLGI9MDticmVhaztjYXNlIDQxOmI9Zz8wOjE7YnJlYWs7Y2FzZSA5MTp2PSEwLG09ITAsYj0wO2JyZWFrO2Nhc2UgOTM6dj0hMSxiPW0/MDoxO2JyZWFrO2Nhc2UgMTIzOnA9ITAsYj0wO2JyZWFrO2Nhc2UgMTI1OmI9cD8wOjE7YnJlYWs7Y2FzZSAzOTpjYXNlIDM0OmNhc2UgOTY6aD09PXk/Yj0xOmg9PT0zOXx8aD09PTM0fHxoPT09OTY/Yj0wOmI9MTticmVhaztjYXNlIDQyOmI9aD09PTQyPzE6MDticmVhaztjYXNlIDEyNDpiPWg9PT0xMjQ/MTowO2JyZWFrO2Nhc2UgMzI6Yj12PzA6MTticmVhaztkZWZhdWx0OmI9ci5nZXQoeSl9Yj09PTEmJihpLnB1c2goYW4uX2NyZWF0ZUxpbmsocixvLHMsZix1KSkseD0hMCl9ZWxzZSBpZihkPT09MTIpe2xldCBiO3k9PT05MT8obT0hMCxiPTApOmI9ci5nZXQoeSksYj09PTE/eD0hMDpkPTEzfWVsc2UgZD1uLm5leHRTdGF0ZShkLHkpLGQ9PT0wJiYoeD0hMCk7eCYmKGQ9MSxnPSExLG09ITEscD0hMSxmPXUrMSxoPXkpLHUrK31kPT09MTMmJmkucHVzaChhbi5fY3JlYXRlTGluayhyLG8scyxmLGwpKX1yZXR1cm4gaX19ZnVuY3Rpb24gWG8oZSl7cmV0dXJuIWV8fHR5cGVvZiBlLmdldExpbmVDb3VudCE9ImZ1bmN0aW9uInx8dHlwZW9mIGUuZ2V0TGluZUNvbnRlbnQhPSJmdW5jdGlvbiI/W106YW4uY29tcHV0ZUxpbmtzKGUpfWNsYXNzIEdue2NvbnN0cnVjdG9yKCl7dGhpcy5fZGVmYXVsdFZhbHVlU2V0PVtbInRydWUiLCJmYWxzZSJdLFsiVHJ1ZSIsIkZhbHNlIl0sWyJQcml2YXRlIiwiUHVibGljIiwiRnJpZW5kIiwiUmVhZE9ubHkiLCJQYXJ0aWFsIiwiUHJvdGVjdGVkIiwiV3JpdGVPbmx5Il0sWyJwdWJsaWMiLCJwcm90ZWN0ZWQiLCJwcml2YXRlIl1dfW5hdmlnYXRlVmFsdWVTZXQodCxuLHIsaSxzKXtpZih0JiZuKXtjb25zdCBhPXRoaXMuZG9OYXZpZ2F0ZVZhbHVlU2V0KG4scyk7aWYoYSlyZXR1cm57cmFuZ2U6dCx2YWx1ZTphfX1pZihyJiZpKXtjb25zdCBhPXRoaXMuZG9OYXZpZ2F0ZVZhbHVlU2V0KGkscyk7aWYoYSlyZXR1cm57cmFuZ2U6cix2YWx1ZTphfX1yZXR1cm4gbnVsbH1kb05hdmlnYXRlVmFsdWVTZXQodCxuKXtjb25zdCByPXRoaXMubnVtYmVyUmVwbGFjZSh0LG4pO3JldHVybiByIT09bnVsbD9yOnRoaXMudGV4dFJlcGxhY2UodCxuKX1udW1iZXJSZXBsYWNlKHQsbil7Y29uc3Qgcj1NYXRoLnBvdygxMCx0Lmxlbmd0aC0odC5sYXN0SW5kZXhPZigiLiIpKzEpKTtsZXQgaT1OdW1iZXIodCk7Y29uc3Qgcz1wYXJzZUZsb2F0KHQpO3JldHVybiFpc05hTihpKSYmIWlzTmFOKHMpJiZpPT09cz9pPT09MCYmIW4/bnVsbDooaT1NYXRoLmZsb29yKGkqciksaSs9bj9yOi1yLFN0cmluZyhpL3IpKTpudWxsfXRleHRSZXBsYWNlKHQsbil7cmV0dXJuIHRoaXMudmFsdWVTZXRzUmVwbGFjZSh0aGlzLl9kZWZhdWx0VmFsdWVTZXQsdCxuKX12YWx1ZVNldHNSZXBsYWNlKHQsbixyKXtsZXQgaT1udWxsO2ZvcihsZXQgcz0wLGE9dC5sZW5ndGg7aT09PW51bGwmJnM8YTtzKyspaT10aGlzLnZhbHVlU2V0UmVwbGFjZSh0W3NdLG4scik7cmV0dXJuIGl9dmFsdWVTZXRSZXBsYWNlKHQsbixyKXtsZXQgaT10LmluZGV4T2Yobik7cmV0dXJuIGk+PTA/KGkrPXI/MTotMSxpPDA/aT10Lmxlbmd0aC0xOmklPXQubGVuZ3RoLHRbaV0pOm51bGx9fUduLklOU1RBTkNFPW5ldyBHbjtjb25zdCBhaT1PYmplY3QuZnJlZXplKGZ1bmN0aW9uKGUsdCl7Y29uc3Qgbj1zZXRUaW1lb3V0KGUuYmluZCh0KSwwKTtyZXR1cm57ZGlzcG9zZSgpe2NsZWFyVGltZW91dChuKX19fSk7dmFyIG9uOyhmdW5jdGlvbihlKXtmdW5jdGlvbiB0KG4pe3JldHVybiBuPT09ZS5Ob25lfHxuPT09ZS5DYW5jZWxsZWR8fG4gaW5zdGFuY2VvZiBsbj8hMDohbnx8dHlwZW9mIG4hPSJvYmplY3QiPyExOnR5cGVvZiBuLmlzQ2FuY2VsbGF0aW9uUmVxdWVzdGVkPT0iYm9vbGVhbiImJnR5cGVvZiBuLm9uQ2FuY2VsbGF0aW9uUmVxdWVzdGVkPT0iZnVuY3Rpb24ifWUuaXNDYW5jZWxsYXRpb25Ub2tlbj10LGUuTm9uZT1PYmplY3QuZnJlZXplKHtpc0NhbmNlbGxhdGlvblJlcXVlc3RlZDohMSxvbkNhbmNlbGxhdGlvblJlcXVlc3RlZDpFbi5Ob25lfSksZS5DYW5jZWxsZWQ9T2JqZWN0LmZyZWV6ZSh7aXNDYW5jZWxsYXRpb25SZXF1ZXN0ZWQ6ITAsb25DYW5jZWxsYXRpb25SZXF1ZXN0ZWQ6YWl9KX0pKG9ufHwob249e30pKTtjbGFzcyBsbntjb25zdHJ1Y3Rvcigpe3RoaXMuX2lzQ2FuY2VsbGVkPSExLHRoaXMuX2VtaXR0ZXI9bnVsbH1jYW5jZWwoKXt0aGlzLl9pc0NhbmNlbGxlZHx8KHRoaXMuX2lzQ2FuY2VsbGVkPSEwLHRoaXMuX2VtaXR0ZXImJih0aGlzLl9lbWl0dGVyLmZpcmUodm9pZCAwKSx0aGlzLmRpc3Bvc2UoKSkpfWdldCBpc0NhbmNlbGxhdGlvblJlcXVlc3RlZCgpe3JldHVybiB0aGlzLl9pc0NhbmNlbGxlZH1nZXQgb25DYW5jZWxsYXRpb25SZXF1ZXN0ZWQoKXtyZXR1cm4gdGhpcy5faXNDYW5jZWxsZWQ/YWk6KHRoaXMuX2VtaXR0ZXJ8fCh0aGlzLl9lbWl0dGVyPW5ldyBBZSksdGhpcy5fZW1pdHRlci5ldmVudCl9ZGlzcG9zZSgpe3RoaXMuX2VtaXR0ZXImJih0aGlzLl9lbWl0dGVyLmRpc3Bvc2UoKSx0aGlzLl9lbWl0dGVyPW51bGwpfX1jbGFzcyBRb3tjb25zdHJ1Y3Rvcih0KXt0aGlzLl90b2tlbj12b2lkIDAsdGhpcy5fcGFyZW50TGlzdGVuZXI9dm9pZCAwLHRoaXMuX3BhcmVudExpc3RlbmVyPXQmJnQub25DYW5jZWxsYXRpb25SZXF1ZXN0ZWQodGhpcy5jYW5jZWwsdGhpcyl9Z2V0IHRva2VuKCl7cmV0dXJuIHRoaXMuX3Rva2VufHwodGhpcy5fdG9rZW49bmV3IGxuKSx0aGlzLl90b2tlbn1jYW5jZWwoKXt0aGlzLl90b2tlbj90aGlzLl90b2tlbiBpbnN0YW5jZW9mIGxuJiZ0aGlzLl90b2tlbi5jYW5jZWwoKTp0aGlzLl90b2tlbj1vbi5DYW5jZWxsZWR9ZGlzcG9zZSh0PSExKXt2YXIgbjt0JiZ0aGlzLmNhbmNlbCgpLChuPXRoaXMuX3BhcmVudExpc3RlbmVyKT09PW51bGx8fG49PT12b2lkIDB8fG4uZGlzcG9zZSgpLHRoaXMuX3Rva2VuP3RoaXMuX3Rva2VuIGluc3RhbmNlb2YgbG4mJnRoaXMuX3Rva2VuLmRpc3Bvc2UoKTp0aGlzLl90b2tlbj1vbi5Ob25lfX1jbGFzcyBKbntjb25zdHJ1Y3Rvcigpe3RoaXMuX2tleUNvZGVUb1N0cj1bXSx0aGlzLl9zdHJUb0tleUNvZGU9T2JqZWN0LmNyZWF0ZShudWxsKX1kZWZpbmUodCxuKXt0aGlzLl9rZXlDb2RlVG9TdHJbdF09bix0aGlzLl9zdHJUb0tleUNvZGVbbi50b0xvd2VyQ2FzZSgpXT10fWtleUNvZGVUb1N0cih0KXtyZXR1cm4gdGhpcy5fa2V5Q29kZVRvU3RyW3RdfXN0clRvS2V5Q29kZSh0KXtyZXR1cm4gdGhpcy5fc3RyVG9LZXlDb2RlW3QudG9Mb3dlckNhc2UoKV18fDB9fWNvbnN0IHVuPW5ldyBKbixYbj1uZXcgSm4sUW49bmV3IEpuLFpvPW5ldyBBcnJheSgyMzApLFlvPU9iamVjdC5jcmVhdGUobnVsbCksS289T2JqZWN0LmNyZWF0ZShudWxsKTsoZnVuY3Rpb24oKXtjb25zdCBlPSIiLHQ9W1sxLDAsIk5vbmUiLDAsInVua25vd24iLDAsIlZLX1VOS05PV04iLGUsZV0sWzEsMSwiSHlwZXIiLDAsZSwwLGUsZSxlXSxbMSwyLCJTdXBlciIsMCxlLDAsZSxlLGVdLFsxLDMsIkZuIiwwLGUsMCxlLGUsZV0sWzEsNCwiRm5Mb2NrIiwwLGUsMCxlLGUsZV0sWzEsNSwiU3VzcGVuZCIsMCxlLDAsZSxlLGVdLFsxLDYsIlJlc3VtZSIsMCxlLDAsZSxlLGVdLFsxLDcsIlR1cmJvIiwwLGUsMCxlLGUsZV0sWzEsOCwiU2xlZXAiLDAsZSwwLCJWS19TTEVFUCIsZSxlXSxbMSw5LCJXYWtlVXAiLDAsZSwwLGUsZSxlXSxbMCwxMCwiS2V5QSIsMzEsIkEiLDY1LCJWS19BIixlLGVdLFswLDExLCJLZXlCIiwzMiwiQiIsNjYsIlZLX0IiLGUsZV0sWzAsMTIsIktleUMiLDMzLCJDIiw2NywiVktfQyIsZSxlXSxbMCwxMywiS2V5RCIsMzQsIkQiLDY4LCJWS19EIixlLGVdLFswLDE0LCJLZXlFIiwzNSwiRSIsNjksIlZLX0UiLGUsZV0sWzAsMTUsIktleUYiLDM2LCJGIiw3MCwiVktfRiIsZSxlXSxbMCwxNiwiS2V5RyIsMzcsIkciLDcxLCJWS19HIixlLGVdLFswLDE3LCJLZXlIIiwzOCwiSCIsNzIsIlZLX0giLGUsZV0sWzAsMTgsIktleUkiLDM5LCJJIiw3MywiVktfSSIsZSxlXSxbMCwxOSwiS2V5SiIsNDAsIkoiLDc0LCJWS19KIixlLGVdLFswLDIwLCJLZXlLIiw0MSwiSyIsNzUsIlZLX0siLGUsZV0sWzAsMjEsIktleUwiLDQyLCJMIiw3NiwiVktfTCIsZSxlXSxbMCwyMiwiS2V5TSIsNDMsIk0iLDc3LCJWS19NIixlLGVdLFswLDIzLCJLZXlOIiw0NCwiTiIsNzgsIlZLX04iLGUsZV0sWzAsMjQsIktleU8iLDQ1LCJPIiw3OSwiVktfTyIsZSxlXSxbMCwyNSwiS2V5UCIsNDYsIlAiLDgwLCJWS19QIixlLGVdLFswLDI2LCJLZXlRIiw0NywiUSIsODEsIlZLX1EiLGUsZV0sWzAsMjcsIktleVIiLDQ4LCJSIiw4MiwiVktfUiIsZSxlXSxbMCwyOCwiS2V5UyIsNDksIlMiLDgzLCJWS19TIixlLGVdLFswLDI5LCJLZXlUIiw1MCwiVCIsODQsIlZLX1QiLGUsZV0sWzAsMzAsIktleVUiLDUxLCJVIiw4NSwiVktfVSIsZSxlXSxbMCwzMSwiS2V5ViIsNTIsIlYiLDg2LCJWS19WIixlLGVdLFswLDMyLCJLZXlXIiw1MywiVyIsODcsIlZLX1ciLGUsZV0sWzAsMzMsIktleVgiLDU0LCJYIiw4OCwiVktfWCIsZSxlXSxbMCwzNCwiS2V5WSIsNTUsIlkiLDg5LCJWS19ZIixlLGVdLFswLDM1LCJLZXlaIiw1NiwiWiIsOTAsIlZLX1oiLGUsZV0sWzAsMzYsIkRpZ2l0MSIsMjIsIjEiLDQ5LCJWS18xIixlLGVdLFswLDM3LCJEaWdpdDIiLDIzLCIyIiw1MCwiVktfMiIsZSxlXSxbMCwzOCwiRGlnaXQzIiwyNCwiMyIsNTEsIlZLXzMiLGUsZV0sWzAsMzksIkRpZ2l0NCIsMjUsIjQiLDUyLCJWS180IixlLGVdLFswLDQwLCJEaWdpdDUiLDI2LCI1Iiw1MywiVktfNSIsZSxlXSxbMCw0MSwiRGlnaXQ2IiwyNywiNiIsNTQsIlZLXzYiLGUsZV0sWzAsNDIsIkRpZ2l0NyIsMjgsIjciLDU1LCJWS183IixlLGVdLFswLDQzLCJEaWdpdDgiLDI5LCI4Iiw1NiwiVktfOCIsZSxlXSxbMCw0NCwiRGlnaXQ5IiwzMCwiOSIsNTcsIlZLXzkiLGUsZV0sWzAsNDUsIkRpZ2l0MCIsMjEsIjAiLDQ4LCJWS18wIixlLGVdLFsxLDQ2LCJFbnRlciIsMywiRW50ZXIiLDEzLCJWS19SRVRVUk4iLGUsZV0sWzEsNDcsIkVzY2FwZSIsOSwiRXNjYXBlIiwyNywiVktfRVNDQVBFIixlLGVdLFsxLDQ4LCJCYWNrc3BhY2UiLDEsIkJhY2tzcGFjZSIsOCwiVktfQkFDSyIsZSxlXSxbMSw0OSwiVGFiIiwyLCJUYWIiLDksIlZLX1RBQiIsZSxlXSxbMSw1MCwiU3BhY2UiLDEwLCJTcGFjZSIsMzIsIlZLX1NQQUNFIixlLGVdLFswLDUxLCJNaW51cyIsODgsIi0iLDE4OSwiVktfT0VNX01JTlVTIiwiLSIsIk9FTV9NSU5VUyJdLFswLDUyLCJFcXVhbCIsODYsIj0iLDE4NywiVktfT0VNX1BMVVMiLCI9IiwiT0VNX1BMVVMiXSxbMCw1MywiQnJhY2tldExlZnQiLDkyLCJbIiwyMTksIlZLX09FTV80IiwiWyIsIk9FTV80Il0sWzAsNTQsIkJyYWNrZXRSaWdodCIsOTQsIl0iLDIyMSwiVktfT0VNXzYiLCJdIiwiT0VNXzYiXSxbMCw1NSwiQmFja3NsYXNoIiw5MywiXFwiLDIyMCwiVktfT0VNXzUiLCJcXCIsIk9FTV81Il0sWzAsNTYsIkludGxIYXNoIiwwLGUsMCxlLGUsZV0sWzAsNTcsIlNlbWljb2xvbiIsODUsIjsiLDE4NiwiVktfT0VNXzEiLCI7IiwiT0VNXzEiXSxbMCw1OCwiUXVvdGUiLDk1LCInIiwyMjIsIlZLX09FTV83IiwiJyIsIk9FTV83Il0sWzAsNTksIkJhY2txdW90ZSIsOTEsImAiLDE5MiwiVktfT0VNXzMiLCJgIiwiT0VNXzMiXSxbMCw2MCwiQ29tbWEiLDg3LCIsIiwxODgsIlZLX09FTV9DT01NQSIsIiwiLCJPRU1fQ09NTUEiXSxbMCw2MSwiUGVyaW9kIiw4OSwiLiIsMTkwLCJWS19PRU1fUEVSSU9EIiwiLiIsIk9FTV9QRVJJT0QiXSxbMCw2MiwiU2xhc2giLDkwLCIvIiwxOTEsIlZLX09FTV8yIiwiLyIsIk9FTV8yIl0sWzEsNjMsIkNhcHNMb2NrIiw4LCJDYXBzTG9jayIsMjAsIlZLX0NBUElUQUwiLGUsZV0sWzEsNjQsIkYxIiw1OSwiRjEiLDExMiwiVktfRjEiLGUsZV0sWzEsNjUsIkYyIiw2MCwiRjIiLDExMywiVktfRjIiLGUsZV0sWzEsNjYsIkYzIiw2MSwiRjMiLDExNCwiVktfRjMiLGUsZV0sWzEsNjcsIkY0Iiw2MiwiRjQiLDExNSwiVktfRjQiLGUsZV0sWzEsNjgsIkY1Iiw2MywiRjUiLDExNiwiVktfRjUiLGUsZV0sWzEsNjksIkY2Iiw2NCwiRjYiLDExNywiVktfRjYiLGUsZV0sWzEsNzAsIkY3Iiw2NSwiRjciLDExOCwiVktfRjciLGUsZV0sWzEsNzEsIkY4Iiw2NiwiRjgiLDExOSwiVktfRjgiLGUsZV0sWzEsNzIsIkY5Iiw2NywiRjkiLDEyMCwiVktfRjkiLGUsZV0sWzEsNzMsIkYxMCIsNjgsIkYxMCIsMTIxLCJWS19GMTAiLGUsZV0sWzEsNzQsIkYxMSIsNjksIkYxMSIsMTIyLCJWS19GMTEiLGUsZV0sWzEsNzUsIkYxMiIsNzAsIkYxMiIsMTIzLCJWS19GMTIiLGUsZV0sWzEsNzYsIlByaW50U2NyZWVuIiwwLGUsMCxlLGUsZV0sWzEsNzcsIlNjcm9sbExvY2siLDg0LCJTY3JvbGxMb2NrIiwxNDUsIlZLX1NDUk9MTCIsZSxlXSxbMSw3OCwiUGF1c2UiLDcsIlBhdXNlQnJlYWsiLDE5LCJWS19QQVVTRSIsZSxlXSxbMSw3OSwiSW5zZXJ0IiwxOSwiSW5zZXJ0Iiw0NSwiVktfSU5TRVJUIixlLGVdLFsxLDgwLCJIb21lIiwxNCwiSG9tZSIsMzYsIlZLX0hPTUUiLGUsZV0sWzEsODEsIlBhZ2VVcCIsMTEsIlBhZ2VVcCIsMzMsIlZLX1BSSU9SIixlLGVdLFsxLDgyLCJEZWxldGUiLDIwLCJEZWxldGUiLDQ2LCJWS19ERUxFVEUiLGUsZV0sWzEsODMsIkVuZCIsMTMsIkVuZCIsMzUsIlZLX0VORCIsZSxlXSxbMSw4NCwiUGFnZURvd24iLDEyLCJQYWdlRG93biIsMzQsIlZLX05FWFQiLGUsZV0sWzEsODUsIkFycm93UmlnaHQiLDE3LCJSaWdodEFycm93IiwzOSwiVktfUklHSFQiLCJSaWdodCIsZV0sWzEsODYsIkFycm93TGVmdCIsMTUsIkxlZnRBcnJvdyIsMzcsIlZLX0xFRlQiLCJMZWZ0IixlXSxbMSw4NywiQXJyb3dEb3duIiwxOCwiRG93bkFycm93Iiw0MCwiVktfRE9XTiIsIkRvd24iLGVdLFsxLDg4LCJBcnJvd1VwIiwxNiwiVXBBcnJvdyIsMzgsIlZLX1VQIiwiVXAiLGVdLFsxLDg5LCJOdW1Mb2NrIiw4MywiTnVtTG9jayIsMTQ0LCJWS19OVU1MT0NLIixlLGVdLFsxLDkwLCJOdW1wYWREaXZpZGUiLDExMywiTnVtUGFkX0RpdmlkZSIsMTExLCJWS19ESVZJREUiLGUsZV0sWzEsOTEsIk51bXBhZE11bHRpcGx5IiwxMDgsIk51bVBhZF9NdWx0aXBseSIsMTA2LCJWS19NVUxUSVBMWSIsZSxlXSxbMSw5MiwiTnVtcGFkU3VidHJhY3QiLDExMSwiTnVtUGFkX1N1YnRyYWN0IiwxMDksIlZLX1NVQlRSQUNUIixlLGVdLFsxLDkzLCJOdW1wYWRBZGQiLDEwOSwiTnVtUGFkX0FkZCIsMTA3LCJWS19BREQiLGUsZV0sWzEsOTQsIk51bXBhZEVudGVyIiwzLGUsMCxlLGUsZV0sWzEsOTUsIk51bXBhZDEiLDk5LCJOdW1QYWQxIiw5NywiVktfTlVNUEFEMSIsZSxlXSxbMSw5NiwiTnVtcGFkMiIsMTAwLCJOdW1QYWQyIiw5OCwiVktfTlVNUEFEMiIsZSxlXSxbMSw5NywiTnVtcGFkMyIsMTAxLCJOdW1QYWQzIiw5OSwiVktfTlVNUEFEMyIsZSxlXSxbMSw5OCwiTnVtcGFkNCIsMTAyLCJOdW1QYWQ0IiwxMDAsIlZLX05VTVBBRDQiLGUsZV0sWzEsOTksIk51bXBhZDUiLDEwMywiTnVtUGFkNSIsMTAxLCJWS19OVU1QQUQ1IixlLGVdLFsxLDEwMCwiTnVtcGFkNiIsMTA0LCJOdW1QYWQ2IiwxMDIsIlZLX05VTVBBRDYiLGUsZV0sWzEsMTAxLCJOdW1wYWQ3IiwxMDUsIk51bVBhZDciLDEwMywiVktfTlVNUEFENyIsZSxlXSxbMSwxMDIsIk51bXBhZDgiLDEwNiwiTnVtUGFkOCIsMTA0LCJWS19OVU1QQUQ4IixlLGVdLFsxLDEwMywiTnVtcGFkOSIsMTA3LCJOdW1QYWQ5IiwxMDUsIlZLX05VTVBBRDkiLGUsZV0sWzEsMTA0LCJOdW1wYWQwIiw5OCwiTnVtUGFkMCIsOTYsIlZLX05VTVBBRDAiLGUsZV0sWzEsMTA1LCJOdW1wYWREZWNpbWFsIiwxMTIsIk51bVBhZF9EZWNpbWFsIiwxMTAsIlZLX0RFQ0lNQUwiLGUsZV0sWzAsMTA2LCJJbnRsQmFja3NsYXNoIiw5NywiT0VNXzEwMiIsMjI2LCJWS19PRU1fMTAyIixlLGVdLFsxLDEwNywiQ29udGV4dE1lbnUiLDU4LCJDb250ZXh0TWVudSIsOTMsZSxlLGVdLFsxLDEwOCwiUG93ZXIiLDAsZSwwLGUsZSxlXSxbMSwxMDksIk51bXBhZEVxdWFsIiwwLGUsMCxlLGUsZV0sWzEsMTEwLCJGMTMiLDcxLCJGMTMiLDEyNCwiVktfRjEzIixlLGVdLFsxLDExMSwiRjE0Iiw3MiwiRjE0IiwxMjUsIlZLX0YxNCIsZSxlXSxbMSwxMTIsIkYxNSIsNzMsIkYxNSIsMTI2LCJWS19GMTUiLGUsZV0sWzEsMTEzLCJGMTYiLDc0LCJGMTYiLDEyNywiVktfRjE2IixlLGVdLFsxLDExNCwiRjE3Iiw3NSwiRjE3IiwxMjgsIlZLX0YxNyIsZSxlXSxbMSwxMTUsIkYxOCIsNzYsIkYxOCIsMTI5LCJWS19GMTgiLGUsZV0sWzEsMTE2LCJGMTkiLDc3LCJGMTkiLDEzMCwiVktfRjE5IixlLGVdLFsxLDExNywiRjIwIiw3OCwiRjIwIiwxMzEsIlZLX0YyMCIsZSxlXSxbMSwxMTgsIkYyMSIsNzksIkYyMSIsMTMyLCJWS19GMjEiLGUsZV0sWzEsMTE5LCJGMjIiLDgwLCJGMjIiLDEzMywiVktfRjIyIixlLGVdLFsxLDEyMCwiRjIzIiw4MSwiRjIzIiwxMzQsIlZLX0YyMyIsZSxlXSxbMSwxMjEsIkYyNCIsODIsIkYyNCIsMTM1LCJWS19GMjQiLGUsZV0sWzEsMTIyLCJPcGVuIiwwLGUsMCxlLGUsZV0sWzEsMTIzLCJIZWxwIiwwLGUsMCxlLGUsZV0sWzEsMTI0LCJTZWxlY3QiLDAsZSwwLGUsZSxlXSxbMSwxMjUsIkFnYWluIiwwLGUsMCxlLGUsZV0sWzEsMTI2LCJVbmRvIiwwLGUsMCxlLGUsZV0sWzEsMTI3LCJDdXQiLDAsZSwwLGUsZSxlXSxbMSwxMjgsIkNvcHkiLDAsZSwwLGUsZSxlXSxbMSwxMjksIlBhc3RlIiwwLGUsMCxlLGUsZV0sWzEsMTMwLCJGaW5kIiwwLGUsMCxlLGUsZV0sWzEsMTMxLCJBdWRpb1ZvbHVtZU11dGUiLDExNywiQXVkaW9Wb2x1bWVNdXRlIiwxNzMsIlZLX1ZPTFVNRV9NVVRFIixlLGVdLFsxLDEzMiwiQXVkaW9Wb2x1bWVVcCIsMTE4LCJBdWRpb1ZvbHVtZVVwIiwxNzUsIlZLX1ZPTFVNRV9VUCIsZSxlXSxbMSwxMzMsIkF1ZGlvVm9sdW1lRG93biIsMTE5LCJBdWRpb1ZvbHVtZURvd24iLDE3NCwiVktfVk9MVU1FX0RPV04iLGUsZV0sWzEsMTM0LCJOdW1wYWRDb21tYSIsMTEwLCJOdW1QYWRfU2VwYXJhdG9yIiwxMDgsIlZLX1NFUEFSQVRPUiIsZSxlXSxbMCwxMzUsIkludGxSbyIsMTE1LCJBQk5UX0MxIiwxOTMsIlZLX0FCTlRfQzEiLGUsZV0sWzEsMTM2LCJLYW5hTW9kZSIsMCxlLDAsZSxlLGVdLFswLDEzNywiSW50bFllbiIsMCxlLDAsZSxlLGVdLFsxLDEzOCwiQ29udmVydCIsMCxlLDAsZSxlLGVdLFsxLDEzOSwiTm9uQ29udmVydCIsMCxlLDAsZSxlLGVdLFsxLDE0MCwiTGFuZzEiLDAsZSwwLGUsZSxlXSxbMSwxNDEsIkxhbmcyIiwwLGUsMCxlLGUsZV0sWzEsMTQyLCJMYW5nMyIsMCxlLDAsZSxlLGVdLFsxLDE0MywiTGFuZzQiLDAsZSwwLGUsZSxlXSxbMSwxNDQsIkxhbmc1IiwwLGUsMCxlLGUsZV0sWzEsMTQ1LCJBYm9ydCIsMCxlLDAsZSxlLGVdLFsxLDE0NiwiUHJvcHMiLDAsZSwwLGUsZSxlXSxbMSwxNDcsIk51bXBhZFBhcmVuTGVmdCIsMCxlLDAsZSxlLGVdLFsxLDE0OCwiTnVtcGFkUGFyZW5SaWdodCIsMCxlLDAsZSxlLGVdLFsxLDE0OSwiTnVtcGFkQmFja3NwYWNlIiwwLGUsMCxlLGUsZV0sWzEsMTUwLCJOdW1wYWRNZW1vcnlTdG9yZSIsMCxlLDAsZSxlLGVdLFsxLDE1MSwiTnVtcGFkTWVtb3J5UmVjYWxsIiwwLGUsMCxlLGUsZV0sWzEsMTUyLCJOdW1wYWRNZW1vcnlDbGVhciIsMCxlLDAsZSxlLGVdLFsxLDE1MywiTnVtcGFkTWVtb3J5QWRkIiwwLGUsMCxlLGUsZV0sWzEsMTU0LCJOdW1wYWRNZW1vcnlTdWJ0cmFjdCIsMCxlLDAsZSxlLGVdLFsxLDE1NSwiTnVtcGFkQ2xlYXIiLDEzMSwiQ2xlYXIiLDEyLCJWS19DTEVBUiIsZSxlXSxbMSwxNTYsIk51bXBhZENsZWFyRW50cnkiLDAsZSwwLGUsZSxlXSxbMSwwLGUsNSwiQ3RybCIsMTcsIlZLX0NPTlRST0wiLGUsZV0sWzEsMCxlLDQsIlNoaWZ0IiwxNiwiVktfU0hJRlQiLGUsZV0sWzEsMCxlLDYsIkFsdCIsMTgsIlZLX01FTlUiLGUsZV0sWzEsMCxlLDU3LCJNZXRhIiw5MSwiVktfQ09NTUFORCIsZSxlXSxbMSwxNTcsIkNvbnRyb2xMZWZ0Iiw1LGUsMCwiVktfTENPTlRST0wiLGUsZV0sWzEsMTU4LCJTaGlmdExlZnQiLDQsZSwwLCJWS19MU0hJRlQiLGUsZV0sWzEsMTU5LCJBbHRMZWZ0Iiw2LGUsMCwiVktfTE1FTlUiLGUsZV0sWzEsMTYwLCJNZXRhTGVmdCIsNTcsZSwwLCJWS19MV0lOIixlLGVdLFsxLDE2MSwiQ29udHJvbFJpZ2h0Iiw1LGUsMCwiVktfUkNPTlRST0wiLGUsZV0sWzEsMTYyLCJTaGlmdFJpZ2h0Iiw0LGUsMCwiVktfUlNISUZUIixlLGVdLFsxLDE2MywiQWx0UmlnaHQiLDYsZSwwLCJWS19STUVOVSIsZSxlXSxbMSwxNjQsIk1ldGFSaWdodCIsNTcsZSwwLCJWS19SV0lOIixlLGVdLFsxLDE2NSwiQnJpZ2h0bmVzc1VwIiwwLGUsMCxlLGUsZV0sWzEsMTY2LCJCcmlnaHRuZXNzRG93biIsMCxlLDAsZSxlLGVdLFsxLDE2NywiTWVkaWFQbGF5IiwwLGUsMCxlLGUsZV0sWzEsMTY4LCJNZWRpYVJlY29yZCIsMCxlLDAsZSxlLGVdLFsxLDE2OSwiTWVkaWFGYXN0Rm9yd2FyZCIsMCxlLDAsZSxlLGVdLFsxLDE3MCwiTWVkaWFSZXdpbmQiLDAsZSwwLGUsZSxlXSxbMSwxNzEsIk1lZGlhVHJhY2tOZXh0IiwxMjQsIk1lZGlhVHJhY2tOZXh0IiwxNzYsIlZLX01FRElBX05FWFRfVFJBQ0siLGUsZV0sWzEsMTcyLCJNZWRpYVRyYWNrUHJldmlvdXMiLDEyNSwiTWVkaWFUcmFja1ByZXZpb3VzIiwxNzcsIlZLX01FRElBX1BSRVZfVFJBQ0siLGUsZV0sWzEsMTczLCJNZWRpYVN0b3AiLDEyNiwiTWVkaWFTdG9wIiwxNzgsIlZLX01FRElBX1NUT1AiLGUsZV0sWzEsMTc0LCJFamVjdCIsMCxlLDAsZSxlLGVdLFsxLDE3NSwiTWVkaWFQbGF5UGF1c2UiLDEyNywiTWVkaWFQbGF5UGF1c2UiLDE3OSwiVktfTUVESUFfUExBWV9QQVVTRSIsZSxlXSxbMSwxNzYsIk1lZGlhU2VsZWN0IiwxMjgsIkxhdW5jaE1lZGlhUGxheWVyIiwxODEsIlZLX01FRElBX0xBVU5DSF9NRURJQV9TRUxFQ1QiLGUsZV0sWzEsMTc3LCJMYXVuY2hNYWlsIiwxMjksIkxhdW5jaE1haWwiLDE4MCwiVktfTUVESUFfTEFVTkNIX01BSUwiLGUsZV0sWzEsMTc4LCJMYXVuY2hBcHAyIiwxMzAsIkxhdW5jaEFwcDIiLDE4MywiVktfTUVESUFfTEFVTkNIX0FQUDIiLGUsZV0sWzEsMTc5LCJMYXVuY2hBcHAxIiwwLGUsMCwiVktfTUVESUFfTEFVTkNIX0FQUDEiLGUsZV0sWzEsMTgwLCJTZWxlY3RUYXNrIiwwLGUsMCxlLGUsZV0sWzEsMTgxLCJMYXVuY2hTY3JlZW5TYXZlciIsMCxlLDAsZSxlLGVdLFsxLDE4MiwiQnJvd3NlclNlYXJjaCIsMTIwLCJCcm93c2VyU2VhcmNoIiwxNzAsIlZLX0JST1dTRVJfU0VBUkNIIixlLGVdLFsxLDE4MywiQnJvd3NlckhvbWUiLDEyMSwiQnJvd3NlckhvbWUiLDE3MiwiVktfQlJPV1NFUl9IT01FIixlLGVdLFsxLDE4NCwiQnJvd3NlckJhY2siLDEyMiwiQnJvd3NlckJhY2siLDE2NiwiVktfQlJPV1NFUl9CQUNLIixlLGVdLFsxLDE4NSwiQnJvd3NlckZvcndhcmQiLDEyMywiQnJvd3NlckZvcndhcmQiLDE2NywiVktfQlJPV1NFUl9GT1JXQVJEIixlLGVdLFsxLDE4NiwiQnJvd3NlclN0b3AiLDAsZSwwLCJWS19CUk9XU0VSX1NUT1AiLGUsZV0sWzEsMTg3LCJCcm93c2VyUmVmcmVzaCIsMCxlLDAsIlZLX0JST1dTRVJfUkVGUkVTSCIsZSxlXSxbMSwxODgsIkJyb3dzZXJGYXZvcml0ZXMiLDAsZSwwLCJWS19CUk9XU0VSX0ZBVk9SSVRFUyIsZSxlXSxbMSwxODksIlpvb21Ub2dnbGUiLDAsZSwwLGUsZSxlXSxbMSwxOTAsIk1haWxSZXBseSIsMCxlLDAsZSxlLGVdLFsxLDE5MSwiTWFpbEZvcndhcmQiLDAsZSwwLGUsZSxlXSxbMSwxOTIsIk1haWxTZW5kIiwwLGUsMCxlLGUsZV0sWzEsMCxlLDExNCwiS2V5SW5Db21wb3NpdGlvbiIsMjI5LGUsZSxlXSxbMSwwLGUsMTE2LCJBQk5UX0MyIiwxOTQsIlZLX0FCTlRfQzIiLGUsZV0sWzEsMCxlLDk2LCJPRU1fOCIsMjIzLCJWS19PRU1fOCIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX0tBTkEiLGUsZV0sWzEsMCxlLDAsZSwwLCJWS19IQU5HVUwiLGUsZV0sWzEsMCxlLDAsZSwwLCJWS19KVU5KQSIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX0ZJTkFMIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfSEFOSkEiLGUsZV0sWzEsMCxlLDAsZSwwLCJWS19LQU5KSSIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX0NPTlZFUlQiLGUsZV0sWzEsMCxlLDAsZSwwLCJWS19OT05DT05WRVJUIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfQUNDRVBUIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfTU9ERUNIQU5HRSIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX1NFTEVDVCIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX1BSSU5UIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfRVhFQ1VURSIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX1NOQVBTSE9UIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfSEVMUCIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX0FQUFMiLGUsZV0sWzEsMCxlLDAsZSwwLCJWS19QUk9DRVNTS0VZIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfUEFDS0VUIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfREJFX1NCQ1NDSEFSIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfREJFX0RCQ1NDSEFSIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfQVRUTiIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX0NSU0VMIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfRVhTRUwiLGUsZV0sWzEsMCxlLDAsZSwwLCJWS19FUkVPRiIsZSxlXSxbMSwwLGUsMCxlLDAsIlZLX1BMQVkiLGUsZV0sWzEsMCxlLDAsZSwwLCJWS19aT09NIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfTk9OQU1FIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfUEExIixlLGVdLFsxLDAsZSwwLGUsMCwiVktfT0VNX0NMRUFSIixlLGVdXSxuPVtdLHI9W107Zm9yKGNvbnN0IGkgb2YgdCl7Y29uc3RbcyxhLG8sbCx1LGYsaCxkLGddPWk7aWYoclthXXx8KHJbYV09ITAsWW9bb109YSxLb1tvLnRvTG93ZXJDYXNlKCldPWEpLCFuW2xdKXtpZihuW2xdPSEwLCF1KXRocm93IG5ldyBFcnJvcihgU3RyaW5nIHJlcHJlc2VudGF0aW9uIG1pc3NpbmcgZm9yIGtleSBjb2RlICR7bH0gYXJvdW5kIHNjYW4gY29kZSAke299YCk7dW4uZGVmaW5lKGwsdSksWG4uZGVmaW5lKGwsZHx8dSksUW4uZGVmaW5lKGwsZ3x8ZHx8dSl9ZiYmKFpvW2ZdPWwpfX0pKCk7dmFyIG9pOyhmdW5jdGlvbihlKXtmdW5jdGlvbiB0KG8pe3JldHVybiB1bi5rZXlDb2RlVG9TdHIobyl9ZS50b1N0cmluZz10O2Z1bmN0aW9uIG4obyl7cmV0dXJuIHVuLnN0clRvS2V5Q29kZShvKX1lLmZyb21TdHJpbmc9bjtmdW5jdGlvbiByKG8pe3JldHVybiBYbi5rZXlDb2RlVG9TdHIobyl9ZS50b1VzZXJTZXR0aW5nc1VTPXI7ZnVuY3Rpb24gaShvKXtyZXR1cm4gUW4ua2V5Q29kZVRvU3RyKG8pfWUudG9Vc2VyU2V0dGluZ3NHZW5lcmFsPWk7ZnVuY3Rpb24gcyhvKXtyZXR1cm4gWG4uc3RyVG9LZXlDb2RlKG8pfHxRbi5zdHJUb0tleUNvZGUobyl9ZS5mcm9tVXNlclNldHRpbmdzPXM7ZnVuY3Rpb24gYShvKXtpZihvPj05OCYmbzw9MTEzKXJldHVybiBudWxsO3N3aXRjaChvKXtjYXNlIDE2OnJldHVybiJVcCI7Y2FzZSAxODpyZXR1cm4iRG93biI7Y2FzZSAxNTpyZXR1cm4iTGVmdCI7Y2FzZSAxNzpyZXR1cm4iUmlnaHQifXJldHVybiB1bi5rZXlDb2RlVG9TdHIobyl9ZS50b0VsZWN0cm9uQWNjZWxlcmF0b3I9YX0pKG9pfHwob2k9e30pKTtmdW5jdGlvbiBlbChlLHQpe2NvbnN0IG49KHQmNjU1MzUpPDwxNj4+PjA7cmV0dXJuKGV8bik+Pj4wfWNsYXNzIHhlIGV4dGVuZHMgc2V7Y29uc3RydWN0b3IodCxuLHIsaSl7c3VwZXIodCxuLHIsaSksdGhpcy5zZWxlY3Rpb25TdGFydExpbmVOdW1iZXI9dCx0aGlzLnNlbGVjdGlvblN0YXJ0Q29sdW1uPW4sdGhpcy5wb3NpdGlvbkxpbmVOdW1iZXI9cix0aGlzLnBvc2l0aW9uQ29sdW1uPWl9dG9TdHJpbmcoKXtyZXR1cm4iWyIrdGhpcy5zZWxlY3Rpb25TdGFydExpbmVOdW1iZXIrIiwiK3RoaXMuc2VsZWN0aW9uU3RhcnRDb2x1bW4rIiAtPiAiK3RoaXMucG9zaXRpb25MaW5lTnVtYmVyKyIsIit0aGlzLnBvc2l0aW9uQ29sdW1uKyJdIn1lcXVhbHNTZWxlY3Rpb24odCl7cmV0dXJuIHhlLnNlbGVjdGlvbnNFcXVhbCh0aGlzLHQpfXN0YXRpYyBzZWxlY3Rpb25zRXF1YWwodCxuKXtyZXR1cm4gdC5zZWxlY3Rpb25TdGFydExpbmVOdW1iZXI9PT1uLnNlbGVjdGlvblN0YXJ0TGluZU51bWJlciYmdC5zZWxlY3Rpb25TdGFydENvbHVtbj09PW4uc2VsZWN0aW9uU3RhcnRDb2x1bW4mJnQucG9zaXRpb25MaW5lTnVtYmVyPT09bi5wb3NpdGlvbkxpbmVOdW1iZXImJnQucG9zaXRpb25Db2x1bW49PT1uLnBvc2l0aW9uQ29sdW1ufWdldERpcmVjdGlvbigpe3JldHVybiB0aGlzLnNlbGVjdGlvblN0YXJ0TGluZU51bWJlcj09PXRoaXMuc3RhcnRMaW5lTnVtYmVyJiZ0aGlzLnNlbGVjdGlvblN0YXJ0Q29sdW1uPT09dGhpcy5zdGFydENvbHVtbj8wOjF9c2V0RW5kUG9zaXRpb24odCxuKXtyZXR1cm4gdGhpcy5nZXREaXJlY3Rpb24oKT09PTA/bmV3IHhlKHRoaXMuc3RhcnRMaW5lTnVtYmVyLHRoaXMuc3RhcnRDb2x1bW4sdCxuKTpuZXcgeGUodCxuLHRoaXMuc3RhcnRMaW5lTnVtYmVyLHRoaXMuc3RhcnRDb2x1bW4pfWdldFBvc2l0aW9uKCl7cmV0dXJuIG5ldyBQZSh0aGlzLnBvc2l0aW9uTGluZU51bWJlcix0aGlzLnBvc2l0aW9uQ29sdW1uKX1nZXRTZWxlY3Rpb25TdGFydCgpe3JldHVybiBuZXcgUGUodGhpcy5zZWxlY3Rpb25TdGFydExpbmVOdW1iZXIsdGhpcy5zZWxlY3Rpb25TdGFydENvbHVtbil9c2V0U3RhcnRQb3NpdGlvbih0LG4pe3JldHVybiB0aGlzLmdldERpcmVjdGlvbigpPT09MD9uZXcgeGUodCxuLHRoaXMuZW5kTGluZU51bWJlcix0aGlzLmVuZENvbHVtbik6bmV3IHhlKHRoaXMuZW5kTGluZU51bWJlcix0aGlzLmVuZENvbHVtbix0LG4pfXN0YXRpYyBmcm9tUG9zaXRpb25zKHQsbj10KXtyZXR1cm4gbmV3IHhlKHQubGluZU51bWJlcix0LmNvbHVtbixuLmxpbmVOdW1iZXIsbi5jb2x1bW4pfXN0YXRpYyBmcm9tUmFuZ2UodCxuKXtyZXR1cm4gbj09PTA/bmV3IHhlKHQuc3RhcnRMaW5lTnVtYmVyLHQuc3RhcnRDb2x1bW4sdC5lbmRMaW5lTnVtYmVyLHQuZW5kQ29sdW1uKTpuZXcgeGUodC5lbmRMaW5lTnVtYmVyLHQuZW5kQ29sdW1uLHQuc3RhcnRMaW5lTnVtYmVyLHQuc3RhcnRDb2x1bW4pfXN0YXRpYyBsaWZ0U2VsZWN0aW9uKHQpe3JldHVybiBuZXcgeGUodC5zZWxlY3Rpb25TdGFydExpbmVOdW1iZXIsdC5zZWxlY3Rpb25TdGFydENvbHVtbix0LnBvc2l0aW9uTGluZU51bWJlcix0LnBvc2l0aW9uQ29sdW1uKX1zdGF0aWMgc2VsZWN0aW9uc0FyckVxdWFsKHQsbil7aWYodCYmIW58fCF0JiZuKXJldHVybiExO2lmKCF0JiYhbilyZXR1cm4hMDtpZih0Lmxlbmd0aCE9PW4ubGVuZ3RoKXJldHVybiExO2ZvcihsZXQgcj0wLGk9dC5sZW5ndGg7cjxpO3IrKylpZighdGhpcy5zZWxlY3Rpb25zRXF1YWwodFtyXSxuW3JdKSlyZXR1cm4hMTtyZXR1cm4hMH1zdGF0aWMgaXNJU2VsZWN0aW9uKHQpe3JldHVybiB0JiZ0eXBlb2YgdC5zZWxlY3Rpb25TdGFydExpbmVOdW1iZXI9PSJudW1iZXIiJiZ0eXBlb2YgdC5zZWxlY3Rpb25TdGFydENvbHVtbj09Im51bWJlciImJnR5cGVvZiB0LnBvc2l0aW9uTGluZU51bWJlcj09Im51bWJlciImJnR5cGVvZiB0LnBvc2l0aW9uQ29sdW1uPT0ibnVtYmVyIn1zdGF0aWMgY3JlYXRlV2l0aERpcmVjdGlvbih0LG4scixpLHMpe3JldHVybiBzPT09MD9uZXcgeGUodCxuLHIsaSk6bmV3IHhlKHIsaSx0LG4pfX1jb25zdCBsaT1PYmplY3QuY3JlYXRlKG51bGwpO2Z1bmN0aW9uIGMoZSx0KXtpZihVYSh0KSl7Y29uc3Qgbj1saVt0XTtpZihuPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcihgJHtlfSByZWZlcmVuY2VzIGFuIHVua25vd24gY29kaWNvbjogJHt0fWApO3Q9bn1yZXR1cm4gbGlbZV09dCx7aWQ6ZX19Y29uc3Qgaj17YWRkOmMoImFkZCIsNmU0KSxwbHVzOmMoInBsdXMiLDZlNCksZ2lzdE5ldzpjKCJnaXN0LW5ldyIsNmU0KSxyZXBvQ3JlYXRlOmMoInJlcG8tY3JlYXRlIiw2ZTQpLGxpZ2h0YnVsYjpjKCJsaWdodGJ1bGIiLDYwMDAxKSxsaWdodEJ1bGI6YygibGlnaHQtYnVsYiIsNjAwMDEpLHJlcG86YygicmVwbyIsNjAwMDIpLHJlcG9EZWxldGU6YygicmVwby1kZWxldGUiLDYwMDAyKSxnaXN0Rm9yazpjKCJnaXN0LWZvcmsiLDYwMDAzKSxyZXBvRm9ya2VkOmMoInJlcG8tZm9ya2VkIiw2MDAwMyksZ2l0UHVsbFJlcXVlc3Q6YygiZ2l0LXB1bGwtcmVxdWVzdCIsNjAwMDQpLGdpdFB1bGxSZXF1ZXN0QWJhbmRvbmVkOmMoImdpdC1wdWxsLXJlcXVlc3QtYWJhbmRvbmVkIiw2MDAwNCkscmVjb3JkS2V5czpjKCJyZWNvcmQta2V5cyIsNjAwMDUpLGtleWJvYXJkOmMoImtleWJvYXJkIiw2MDAwNSksdGFnOmMoInRhZyIsNjAwMDYpLHRhZ0FkZDpjKCJ0YWctYWRkIiw2MDAwNiksdGFnUmVtb3ZlOmMoInRhZy1yZW1vdmUiLDYwMDA2KSxnaXRQdWxsUmVxdWVzdExhYmVsOmMoImdpdC1wdWxsLXJlcXVlc3QtbGFiZWwiLDYwMDA2KSxwZXJzb246YygicGVyc29uIiw2MDAwNykscGVyc29uRm9sbG93OmMoInBlcnNvbi1mb2xsb3ciLDYwMDA3KSxwZXJzb25PdXRsaW5lOmMoInBlcnNvbi1vdXRsaW5lIiw2MDAwNykscGVyc29uRmlsbGVkOmMoInBlcnNvbi1maWxsZWQiLDYwMDA3KSxnaXRCcmFuY2g6YygiZ2l0LWJyYW5jaCIsNjAwMDgpLGdpdEJyYW5jaENyZWF0ZTpjKCJnaXQtYnJhbmNoLWNyZWF0ZSIsNjAwMDgpLGdpdEJyYW5jaERlbGV0ZTpjKCJnaXQtYnJhbmNoLWRlbGV0ZSIsNjAwMDgpLHNvdXJjZUNvbnRyb2w6Yygic291cmNlLWNvbnRyb2wiLDYwMDA4KSxtaXJyb3I6YygibWlycm9yIiw2MDAwOSksbWlycm9yUHVibGljOmMoIm1pcnJvci1wdWJsaWMiLDYwMDA5KSxzdGFyOmMoInN0YXIiLDYwMDEwKSxzdGFyQWRkOmMoInN0YXItYWRkIiw2MDAxMCksc3RhckRlbGV0ZTpjKCJzdGFyLWRlbGV0ZSIsNjAwMTApLHN0YXJFbXB0eTpjKCJzdGFyLWVtcHR5Iiw2MDAxMCksY29tbWVudDpjKCJjb21tZW50Iiw2MDAxMSksY29tbWVudEFkZDpjKCJjb21tZW50LWFkZCIsNjAwMTEpLGFsZXJ0OmMoImFsZXJ0Iiw2MDAxMiksd2FybmluZzpjKCJ3YXJuaW5nIiw2MDAxMiksc2VhcmNoOmMoInNlYXJjaCIsNjAwMTMpLHNlYXJjaFNhdmU6Yygic2VhcmNoLXNhdmUiLDYwMDEzKSxsb2dPdXQ6YygibG9nLW91dCIsNjAwMTQpLHNpZ25PdXQ6Yygic2lnbi1vdXQiLDYwMDE0KSxsb2dJbjpjKCJsb2ctaW4iLDYwMDE1KSxzaWduSW46Yygic2lnbi1pbiIsNjAwMTUpLGV5ZTpjKCJleWUiLDYwMDE2KSxleWVVbndhdGNoOmMoImV5ZS11bndhdGNoIiw2MDAxNiksZXllV2F0Y2g6YygiZXllLXdhdGNoIiw2MDAxNiksY2lyY2xlRmlsbGVkOmMoImNpcmNsZS1maWxsZWQiLDYwMDE3KSxwcmltaXRpdmVEb3Q6YygicHJpbWl0aXZlLWRvdCIsNjAwMTcpLGNsb3NlRGlydHk6YygiY2xvc2UtZGlydHkiLDYwMDE3KSxkZWJ1Z0JyZWFrcG9pbnQ6YygiZGVidWctYnJlYWtwb2ludCIsNjAwMTcpLGRlYnVnQnJlYWtwb2ludERpc2FibGVkOmMoImRlYnVnLWJyZWFrcG9pbnQtZGlzYWJsZWQiLDYwMDE3KSxkZWJ1Z0JyZWFrcG9pbnRQZW5kaW5nOmMoImRlYnVnLWJyZWFrcG9pbnQtcGVuZGluZyIsNjAzNzcpLGRlYnVnSGludDpjKCJkZWJ1Zy1oaW50Iiw2MDAxNykscHJpbWl0aXZlU3F1YXJlOmMoInByaW1pdGl2ZS1zcXVhcmUiLDYwMDE4KSxlZGl0OmMoImVkaXQiLDYwMDE5KSxwZW5jaWw6YygicGVuY2lsIiw2MDAxOSksaW5mbzpjKCJpbmZvIiw2MDAyMCksaXNzdWVPcGVuZWQ6YygiaXNzdWUtb3BlbmVkIiw2MDAyMCksZ2lzdFByaXZhdGU6YygiZ2lzdC1wcml2YXRlIiw2MDAyMSksZ2l0Rm9ya1ByaXZhdGU6YygiZ2l0LWZvcmstcHJpdmF0ZSIsNjAwMjEpLGxvY2s6YygibG9jayIsNjAwMjEpLG1pcnJvclByaXZhdGU6YygibWlycm9yLXByaXZhdGUiLDYwMDIxKSxjbG9zZTpjKCJjbG9zZSIsNjAwMjIpLHJlbW92ZUNsb3NlOmMoInJlbW92ZS1jbG9zZSIsNjAwMjIpLHg6YygieCIsNjAwMjIpLHJlcG9TeW5jOmMoInJlcG8tc3luYyIsNjAwMjMpLHN5bmM6Yygic3luYyIsNjAwMjMpLGNsb25lOmMoImNsb25lIiw2MDAyNCksZGVza3RvcERvd25sb2FkOmMoImRlc2t0b3AtZG93bmxvYWQiLDYwMDI0KSxiZWFrZXI6YygiYmVha2VyIiw2MDAyNSksbWljcm9zY29wZTpjKCJtaWNyb3Njb3BlIiw2MDAyNSksdm06Yygidm0iLDYwMDI2KSxkZXZpY2VEZXNrdG9wOmMoImRldmljZS1kZXNrdG9wIiw2MDAyNiksZmlsZTpjKCJmaWxlIiw2MDAyNyksZmlsZVRleHQ6YygiZmlsZS10ZXh0Iiw2MDAyNyksbW9yZTpjKCJtb3JlIiw2MDAyOCksZWxsaXBzaXM6YygiZWxsaXBzaXMiLDYwMDI4KSxrZWJhYkhvcml6b250YWw6Yygia2ViYWItaG9yaXpvbnRhbCIsNjAwMjgpLG1haWxSZXBseTpjKCJtYWlsLXJlcGx5Iiw2MDAyOSkscmVwbHk6YygicmVwbHkiLDYwMDI5KSxvcmdhbml6YXRpb246Yygib3JnYW5pemF0aW9uIiw2MDAzMCksb3JnYW5pemF0aW9uRmlsbGVkOmMoIm9yZ2FuaXphdGlvbi1maWxsZWQiLDYwMDMwKSxvcmdhbml6YXRpb25PdXRsaW5lOmMoIm9yZ2FuaXphdGlvbi1vdXRsaW5lIiw2MDAzMCksbmV3RmlsZTpjKCJuZXctZmlsZSIsNjAwMzEpLGZpbGVBZGQ6YygiZmlsZS1hZGQiLDYwMDMxKSxuZXdGb2xkZXI6YygibmV3LWZvbGRlciIsNjAwMzIpLGZpbGVEaXJlY3RvcnlDcmVhdGU6YygiZmlsZS1kaXJlY3RvcnktY3JlYXRlIiw2MDAzMiksdHJhc2g6YygidHJhc2giLDYwMDMzKSx0cmFzaGNhbjpjKCJ0cmFzaGNhbiIsNjAwMzMpLGhpc3Rvcnk6YygiaGlzdG9yeSIsNjAwMzQpLGNsb2NrOmMoImNsb2NrIiw2MDAzNCksZm9sZGVyOmMoImZvbGRlciIsNjAwMzUpLGZpbGVEaXJlY3Rvcnk6YygiZmlsZS1kaXJlY3RvcnkiLDYwMDM1KSxzeW1ib2xGb2xkZXI6Yygic3ltYm9sLWZvbGRlciIsNjAwMzUpLGxvZ29HaXRodWI6YygibG9nby1naXRodWIiLDYwMDM2KSxtYXJrR2l0aHViOmMoIm1hcmstZ2l0aHViIiw2MDAzNiksZ2l0aHViOmMoImdpdGh1YiIsNjAwMzYpLHRlcm1pbmFsOmMoInRlcm1pbmFsIiw2MDAzNyksY29uc29sZTpjKCJjb25zb2xlIiw2MDAzNykscmVwbDpjKCJyZXBsIiw2MDAzNyksemFwOmMoInphcCIsNjAwMzgpLHN5bWJvbEV2ZW50OmMoInN5bWJvbC1ldmVudCIsNjAwMzgpLGVycm9yOmMoImVycm9yIiw2MDAzOSksc3RvcDpjKCJzdG9wIiw2MDAzOSksdmFyaWFibGU6YygidmFyaWFibGUiLDYwMDQwKSxzeW1ib2xWYXJpYWJsZTpjKCJzeW1ib2wtdmFyaWFibGUiLDYwMDQwKSxhcnJheTpjKCJhcnJheSIsNjAwNDIpLHN5bWJvbEFycmF5OmMoInN5bWJvbC1hcnJheSIsNjAwNDIpLHN5bWJvbE1vZHVsZTpjKCJzeW1ib2wtbW9kdWxlIiw2MDA0Myksc3ltYm9sUGFja2FnZTpjKCJzeW1ib2wtcGFja2FnZSIsNjAwNDMpLHN5bWJvbE5hbWVzcGFjZTpjKCJzeW1ib2wtbmFtZXNwYWNlIiw2MDA0Myksc3ltYm9sT2JqZWN0OmMoInN5bWJvbC1vYmplY3QiLDYwMDQzKSxzeW1ib2xNZXRob2Q6Yygic3ltYm9sLW1ldGhvZCIsNjAwNDQpLHN5bWJvbEZ1bmN0aW9uOmMoInN5bWJvbC1mdW5jdGlvbiIsNjAwNDQpLHN5bWJvbENvbnN0cnVjdG9yOmMoInN5bWJvbC1jb25zdHJ1Y3RvciIsNjAwNDQpLHN5bWJvbEJvb2xlYW46Yygic3ltYm9sLWJvb2xlYW4iLDYwMDQ3KSxzeW1ib2xOdWxsOmMoInN5bWJvbC1udWxsIiw2MDA0Nyksc3ltYm9sTnVtZXJpYzpjKCJzeW1ib2wtbnVtZXJpYyIsNjAwNDgpLHN5bWJvbE51bWJlcjpjKCJzeW1ib2wtbnVtYmVyIiw2MDA0OCksc3ltYm9sU3RydWN0dXJlOmMoInN5bWJvbC1zdHJ1Y3R1cmUiLDYwMDQ5KSxzeW1ib2xTdHJ1Y3Q6Yygic3ltYm9sLXN0cnVjdCIsNjAwNDkpLHN5bWJvbFBhcmFtZXRlcjpjKCJzeW1ib2wtcGFyYW1ldGVyIiw2MDA1MCksc3ltYm9sVHlwZVBhcmFtZXRlcjpjKCJzeW1ib2wtdHlwZS1wYXJhbWV0ZXIiLDYwMDUwKSxzeW1ib2xLZXk6Yygic3ltYm9sLWtleSIsNjAwNTEpLHN5bWJvbFRleHQ6Yygic3ltYm9sLXRleHQiLDYwMDUxKSxzeW1ib2xSZWZlcmVuY2U6Yygic3ltYm9sLXJlZmVyZW5jZSIsNjAwNTIpLGdvVG9GaWxlOmMoImdvLXRvLWZpbGUiLDYwMDUyKSxzeW1ib2xFbnVtOmMoInN5bWJvbC1lbnVtIiw2MDA1Myksc3ltYm9sVmFsdWU6Yygic3ltYm9sLXZhbHVlIiw2MDA1Myksc3ltYm9sUnVsZXI6Yygic3ltYm9sLXJ1bGVyIiw2MDA1NCksc3ltYm9sVW5pdDpjKCJzeW1ib2wtdW5pdCIsNjAwNTQpLGFjdGl2YXRlQnJlYWtwb2ludHM6YygiYWN0aXZhdGUtYnJlYWtwb2ludHMiLDYwMDU1KSxhcmNoaXZlOmMoImFyY2hpdmUiLDYwMDU2KSxhcnJvd0JvdGg6YygiYXJyb3ctYm90aCIsNjAwNTcpLGFycm93RG93bjpjKCJhcnJvdy1kb3duIiw2MDA1OCksYXJyb3dMZWZ0OmMoImFycm93LWxlZnQiLDYwMDU5KSxhcnJvd1JpZ2h0OmMoImFycm93LXJpZ2h0Iiw2MDA2MCksYXJyb3dTbWFsbERvd246YygiYXJyb3ctc21hbGwtZG93biIsNjAwNjEpLGFycm93U21hbGxMZWZ0OmMoImFycm93LXNtYWxsLWxlZnQiLDYwMDYyKSxhcnJvd1NtYWxsUmlnaHQ6YygiYXJyb3ctc21hbGwtcmlnaHQiLDYwMDYzKSxhcnJvd1NtYWxsVXA6YygiYXJyb3ctc21hbGwtdXAiLDYwMDY0KSxhcnJvd1VwOmMoImFycm93LXVwIiw2MDA2NSksYmVsbDpjKCJiZWxsIiw2MDA2NiksYm9sZDpjKCJib2xkIiw2MDA2NyksYm9vazpjKCJib29rIiw2MDA2OCksYm9va21hcms6YygiYm9va21hcmsiLDYwMDY5KSxkZWJ1Z0JyZWFrcG9pbnRDb25kaXRpb25hbFVudmVyaWZpZWQ6YygiZGVidWctYnJlYWtwb2ludC1jb25kaXRpb25hbC11bnZlcmlmaWVkIiw2MDA3MCksZGVidWdCcmVha3BvaW50Q29uZGl0aW9uYWw6YygiZGVidWctYnJlYWtwb2ludC1jb25kaXRpb25hbCIsNjAwNzEpLGRlYnVnQnJlYWtwb2ludENvbmRpdGlvbmFsRGlzYWJsZWQ6YygiZGVidWctYnJlYWtwb2ludC1jb25kaXRpb25hbC1kaXNhYmxlZCIsNjAwNzEpLGRlYnVnQnJlYWtwb2ludERhdGFVbnZlcmlmaWVkOmMoImRlYnVnLWJyZWFrcG9pbnQtZGF0YS11bnZlcmlmaWVkIiw2MDA3MiksZGVidWdCcmVha3BvaW50RGF0YTpjKCJkZWJ1Zy1icmVha3BvaW50LWRhdGEiLDYwMDczKSxkZWJ1Z0JyZWFrcG9pbnREYXRhRGlzYWJsZWQ6YygiZGVidWctYnJlYWtwb2ludC1kYXRhLWRpc2FibGVkIiw2MDA3MyksZGVidWdCcmVha3BvaW50TG9nVW52ZXJpZmllZDpjKCJkZWJ1Zy1icmVha3BvaW50LWxvZy11bnZlcmlmaWVkIiw2MDA3NCksZGVidWdCcmVha3BvaW50TG9nOmMoImRlYnVnLWJyZWFrcG9pbnQtbG9nIiw2MDA3NSksZGVidWdCcmVha3BvaW50TG9nRGlzYWJsZWQ6YygiZGVidWctYnJlYWtwb2ludC1sb2ctZGlzYWJsZWQiLDYwMDc1KSxicmllZmNhc2U6YygiYnJpZWZjYXNlIiw2MDA3NiksYnJvYWRjYXN0OmMoImJyb2FkY2FzdCIsNjAwNzcpLGJyb3dzZXI6YygiYnJvd3NlciIsNjAwNzgpLGJ1ZzpjKCJidWciLDYwMDc5KSxjYWxlbmRhcjpjKCJjYWxlbmRhciIsNjAwODApLGNhc2VTZW5zaXRpdmU6YygiY2FzZS1zZW5zaXRpdmUiLDYwMDgxKSxjaGVjazpjKCJjaGVjayIsNjAwODIpLGNoZWNrbGlzdDpjKCJjaGVja2xpc3QiLDYwMDgzKSxjaGV2cm9uRG93bjpjKCJjaGV2cm9uLWRvd24iLDYwMDg0KSxkcm9wRG93bkJ1dHRvbjpjKCJkcm9wLWRvd24tYnV0dG9uIiw2MDA4NCksY2hldnJvbkxlZnQ6YygiY2hldnJvbi1sZWZ0Iiw2MDA4NSksY2hldnJvblJpZ2h0OmMoImNoZXZyb24tcmlnaHQiLDYwMDg2KSxjaGV2cm9uVXA6YygiY2hldnJvbi11cCIsNjAwODcpLGNocm9tZUNsb3NlOmMoImNocm9tZS1jbG9zZSIsNjAwODgpLGNocm9tZU1heGltaXplOmMoImNocm9tZS1tYXhpbWl6ZSIsNjAwODkpLGNocm9tZU1pbmltaXplOmMoImNocm9tZS1taW5pbWl6ZSIsNjAwOTApLGNocm9tZVJlc3RvcmU6YygiY2hyb21lLXJlc3RvcmUiLDYwMDkxKSxjaXJjbGU6YygiY2lyY2xlIiw2MDA5MiksY2lyY2xlT3V0bGluZTpjKCJjaXJjbGUtb3V0bGluZSIsNjAwOTIpLGRlYnVnQnJlYWtwb2ludFVudmVyaWZpZWQ6YygiZGVidWctYnJlYWtwb2ludC11bnZlcmlmaWVkIiw2MDA5MiksY2lyY2xlU2xhc2g6YygiY2lyY2xlLXNsYXNoIiw2MDA5MyksY2lyY3VpdEJvYXJkOmMoImNpcmN1aXQtYm9hcmQiLDYwMDk0KSxjbGVhckFsbDpjKCJjbGVhci1hbGwiLDYwMDk1KSxjbGlwcHk6YygiY2xpcHB5Iiw2MDA5NiksY2xvc2VBbGw6YygiY2xvc2UtYWxsIiw2MDA5NyksY2xvdWREb3dubG9hZDpjKCJjbG91ZC1kb3dubG9hZCIsNjAwOTgpLGNsb3VkVXBsb2FkOmMoImNsb3VkLXVwbG9hZCIsNjAwOTkpLGNvZGU6YygiY29kZSIsNjAxMDApLGNvbGxhcHNlQWxsOmMoImNvbGxhcHNlLWFsbCIsNjAxMDEpLGNvbG9yTW9kZTpjKCJjb2xvci1tb2RlIiw2MDEwMiksY29tbWVudERpc2N1c3Npb246YygiY29tbWVudC1kaXNjdXNzaW9uIiw2MDEwMyksY29tcGFyZUNoYW5nZXM6YygiY29tcGFyZS1jaGFuZ2VzIiw2MDE1NyksY3JlZGl0Q2FyZDpjKCJjcmVkaXQtY2FyZCIsNjAxMDUpLGRhc2g6YygiZGFzaCIsNjAxMDgpLGRhc2hib2FyZDpjKCJkYXNoYm9hcmQiLDYwMTA5KSxkYXRhYmFzZTpjKCJkYXRhYmFzZSIsNjAxMTApLGRlYnVnQ29udGludWU6YygiZGVidWctY29udGludWUiLDYwMTExKSxkZWJ1Z0Rpc2Nvbm5lY3Q6YygiZGVidWctZGlzY29ubmVjdCIsNjAxMTIpLGRlYnVnUGF1c2U6YygiZGVidWctcGF1c2UiLDYwMTEzKSxkZWJ1Z1Jlc3RhcnQ6YygiZGVidWctcmVzdGFydCIsNjAxMTQpLGRlYnVnU3RhcnQ6YygiZGVidWctc3RhcnQiLDYwMTE1KSxkZWJ1Z1N0ZXBJbnRvOmMoImRlYnVnLXN0ZXAtaW50byIsNjAxMTYpLGRlYnVnU3RlcE91dDpjKCJkZWJ1Zy1zdGVwLW91dCIsNjAxMTcpLGRlYnVnU3RlcE92ZXI6YygiZGVidWctc3RlcC1vdmVyIiw2MDExOCksZGVidWdTdG9wOmMoImRlYnVnLXN0b3AiLDYwMTE5KSxkZWJ1ZzpjKCJkZWJ1ZyIsNjAxMjApLGRldmljZUNhbWVyYVZpZGVvOmMoImRldmljZS1jYW1lcmEtdmlkZW8iLDYwMTIxKSxkZXZpY2VDYW1lcmE6YygiZGV2aWNlLWNhbWVyYSIsNjAxMjIpLGRldmljZU1vYmlsZTpjKCJkZXZpY2UtbW9iaWxlIiw2MDEyMyksZGlmZkFkZGVkOmMoImRpZmYtYWRkZWQiLDYwMTI0KSxkaWZmSWdub3JlZDpjKCJkaWZmLWlnbm9yZWQiLDYwMTI1KSxkaWZmTW9kaWZpZWQ6YygiZGlmZi1tb2RpZmllZCIsNjAxMjYpLGRpZmZSZW1vdmVkOmMoImRpZmYtcmVtb3ZlZCIsNjAxMjcpLGRpZmZSZW5hbWVkOmMoImRpZmYtcmVuYW1lZCIsNjAxMjgpLGRpZmY6YygiZGlmZiIsNjAxMjkpLGRpc2NhcmQ6YygiZGlzY2FyZCIsNjAxMzApLGVkaXRvckxheW91dDpjKCJlZGl0b3ItbGF5b3V0Iiw2MDEzMSksZW1wdHlXaW5kb3c6YygiZW1wdHktd2luZG93Iiw2MDEzMiksZXhjbHVkZTpjKCJleGNsdWRlIiw2MDEzMyksZXh0ZW5zaW9uczpjKCJleHRlbnNpb25zIiw2MDEzNCksZXllQ2xvc2VkOmMoImV5ZS1jbG9zZWQiLDYwMTM1KSxmaWxlQmluYXJ5OmMoImZpbGUtYmluYXJ5Iiw2MDEzNiksZmlsZUNvZGU6YygiZmlsZS1jb2RlIiw2MDEzNyksZmlsZU1lZGlhOmMoImZpbGUtbWVkaWEiLDYwMTM4KSxmaWxlUGRmOmMoImZpbGUtcGRmIiw2MDEzOSksZmlsZVN1Ym1vZHVsZTpjKCJmaWxlLXN1Ym1vZHVsZSIsNjAxNDApLGZpbGVTeW1saW5rRGlyZWN0b3J5OmMoImZpbGUtc3ltbGluay1kaXJlY3RvcnkiLDYwMTQxKSxmaWxlU3ltbGlua0ZpbGU6YygiZmlsZS1zeW1saW5rLWZpbGUiLDYwMTQyKSxmaWxlWmlwOmMoImZpbGUtemlwIiw2MDE0MyksZmlsZXM6YygiZmlsZXMiLDYwMTQ0KSxmaWx0ZXI6YygiZmlsdGVyIiw2MDE0NSksZmxhbWU6YygiZmxhbWUiLDYwMTQ2KSxmb2xkRG93bjpjKCJmb2xkLWRvd24iLDYwMTQ3KSxmb2xkVXA6YygiZm9sZC11cCIsNjAxNDgpLGZvbGQ6YygiZm9sZCIsNjAxNDkpLGZvbGRlckFjdGl2ZTpjKCJmb2xkZXItYWN0aXZlIiw2MDE1MCksZm9sZGVyT3BlbmVkOmMoImZvbGRlci1vcGVuZWQiLDYwMTUxKSxnZWFyOmMoImdlYXIiLDYwMTUyKSxnaWZ0OmMoImdpZnQiLDYwMTUzKSxnaXN0U2VjcmV0OmMoImdpc3Qtc2VjcmV0Iiw2MDE1NCksZ2lzdDpjKCJnaXN0Iiw2MDE1NSksZ2l0Q29tbWl0OmMoImdpdC1jb21taXQiLDYwMTU2KSxnaXRDb21wYXJlOmMoImdpdC1jb21wYXJlIiw2MDE1NyksZ2l0TWVyZ2U6YygiZ2l0LW1lcmdlIiw2MDE1OCksZ2l0aHViQWN0aW9uOmMoImdpdGh1Yi1hY3Rpb24iLDYwMTU5KSxnaXRodWJBbHQ6YygiZ2l0aHViLWFsdCIsNjAxNjApLGdsb2JlOmMoImdsb2JlIiw2MDE2MSksZ3JhYmJlcjpjKCJncmFiYmVyIiw2MDE2MiksZ3JhcGg6YygiZ3JhcGgiLDYwMTYzKSxncmlwcGVyOmMoImdyaXBwZXIiLDYwMTY0KSxoZWFydDpjKCJoZWFydCIsNjAxNjUpLGhvbWU6YygiaG9tZSIsNjAxNjYpLGhvcml6b250YWxSdWxlOmMoImhvcml6b250YWwtcnVsZSIsNjAxNjcpLGh1Ym90OmMoImh1Ym90Iiw2MDE2OCksaW5ib3g6YygiaW5ib3giLDYwMTY5KSxpc3N1ZUNsb3NlZDpjKCJpc3N1ZS1jbG9zZWQiLDYwMzI0KSxpc3N1ZVJlb3BlbmVkOmMoImlzc3VlLXJlb3BlbmVkIiw2MDE3MSksaXNzdWVzOmMoImlzc3VlcyIsNjAxNzIpLGl0YWxpYzpjKCJpdGFsaWMiLDYwMTczKSxqZXJzZXk6YygiamVyc2V5Iiw2MDE3NCksanNvbjpjKCJqc29uIiw2MDE3NSksYnJhY2tldDpjKCJicmFja2V0Iiw2MDE3NSksa2ViYWJWZXJ0aWNhbDpjKCJrZWJhYi12ZXJ0aWNhbCIsNjAxNzYpLGtleTpjKCJrZXkiLDYwMTc3KSxsYXc6YygibGF3Iiw2MDE3OCksbGlnaHRidWxiQXV0b2ZpeDpjKCJsaWdodGJ1bGItYXV0b2ZpeCIsNjAxNzkpLGxpbmtFeHRlcm5hbDpjKCJsaW5rLWV4dGVybmFsIiw2MDE4MCksbGluazpjKCJsaW5rIiw2MDE4MSksbGlzdE9yZGVyZWQ6YygibGlzdC1vcmRlcmVkIiw2MDE4MiksbGlzdFVub3JkZXJlZDpjKCJsaXN0LXVub3JkZXJlZCIsNjAxODMpLGxpdmVTaGFyZTpjKCJsaXZlLXNoYXJlIiw2MDE4NCksbG9hZGluZzpjKCJsb2FkaW5nIiw2MDE4NSksbG9jYXRpb246YygibG9jYXRpb24iLDYwMTg2KSxtYWlsUmVhZDpjKCJtYWlsLXJlYWQiLDYwMTg3KSxtYWlsOmMoIm1haWwiLDYwMTg4KSxtYXJrZG93bjpjKCJtYXJrZG93biIsNjAxODkpLG1lZ2FwaG9uZTpjKCJtZWdhcGhvbmUiLDYwMTkwKSxtZW50aW9uOmMoIm1lbnRpb24iLDYwMTkxKSxtaWxlc3RvbmU6YygibWlsZXN0b25lIiw2MDE5MiksZ2l0UHVsbFJlcXVlc3RNaWxlc3RvbmU6YygiZ2l0LXB1bGwtcmVxdWVzdC1taWxlc3RvbmUiLDYwMTkyKSxtb3J0YXJCb2FyZDpjKCJtb3J0YXItYm9hcmQiLDYwMTkzKSxtb3ZlOmMoIm1vdmUiLDYwMTk0KSxtdWx0aXBsZVdpbmRvd3M6YygibXVsdGlwbGUtd2luZG93cyIsNjAxOTUpLG11dGU6YygibXV0ZSIsNjAxOTYpLG5vTmV3bGluZTpjKCJuby1uZXdsaW5lIiw2MDE5Nyksbm90ZTpjKCJub3RlIiw2MDE5OCksb2N0b2ZhY2U6Yygib2N0b2ZhY2UiLDYwMTk5KSxvcGVuUHJldmlldzpjKCJvcGVuLXByZXZpZXciLDYwMjAwKSxwYWNrYWdlOmMoInBhY2thZ2UiLDYwMjAxKSxwYWludGNhbjpjKCJwYWludGNhbiIsNjAyMDIpLHBpbjpjKCJwaW4iLDYwMjAzKSxwbGF5OmMoInBsYXkiLDYwMjA0KSxydW46YygicnVuIiw2MDIwNCkscGx1ZzpjKCJwbHVnIiw2MDIwNSkscHJlc2VydmVDYXNlOmMoInByZXNlcnZlLWNhc2UiLDYwMjA2KSxwcmV2aWV3OmMoInByZXZpZXciLDYwMjA3KSxwcm9qZWN0OmMoInByb2plY3QiLDYwMjA4KSxwdWxzZTpjKCJwdWxzZSIsNjAyMDkpLHF1ZXN0aW9uOmMoInF1ZXN0aW9uIiw2MDIxMCkscXVvdGU6YygicXVvdGUiLDYwMjExKSxyYWRpb1Rvd2VyOmMoInJhZGlvLXRvd2VyIiw2MDIxMikscmVhY3Rpb25zOmMoInJlYWN0aW9ucyIsNjAyMTMpLHJlZmVyZW5jZXM6YygicmVmZXJlbmNlcyIsNjAyMTQpLHJlZnJlc2g6YygicmVmcmVzaCIsNjAyMTUpLHJlZ2V4OmMoInJlZ2V4Iiw2MDIxNikscmVtb3RlRXhwbG9yZXI6YygicmVtb3RlLWV4cGxvcmVyIiw2MDIxNykscmVtb3RlOmMoInJlbW90ZSIsNjAyMTgpLHJlbW92ZTpjKCJyZW1vdmUiLDYwMjE5KSxyZXBsYWNlQWxsOmMoInJlcGxhY2UtYWxsIiw2MDIyMCkscmVwbGFjZTpjKCJyZXBsYWNlIiw2MDIyMSkscmVwb0Nsb25lOmMoInJlcG8tY2xvbmUiLDYwMjIyKSxyZXBvRm9yY2VQdXNoOmMoInJlcG8tZm9yY2UtcHVzaCIsNjAyMjMpLHJlcG9QdWxsOmMoInJlcG8tcHVsbCIsNjAyMjQpLHJlcG9QdXNoOmMoInJlcG8tcHVzaCIsNjAyMjUpLHJlcG9ydDpjKCJyZXBvcnQiLDYwMjI2KSxyZXF1ZXN0Q2hhbmdlczpjKCJyZXF1ZXN0LWNoYW5nZXMiLDYwMjI3KSxyb2NrZXQ6Yygicm9ja2V0Iiw2MDIyOCkscm9vdEZvbGRlck9wZW5lZDpjKCJyb290LWZvbGRlci1vcGVuZWQiLDYwMjI5KSxyb290Rm9sZGVyOmMoInJvb3QtZm9sZGVyIiw2MDIzMCkscnNzOmMoInJzcyIsNjAyMzEpLHJ1Ynk6YygicnVieSIsNjAyMzIpLHNhdmVBbGw6Yygic2F2ZS1hbGwiLDYwMjMzKSxzYXZlQXM6Yygic2F2ZS1hcyIsNjAyMzQpLHNhdmU6Yygic2F2ZSIsNjAyMzUpLHNjcmVlbkZ1bGw6Yygic2NyZWVuLWZ1bGwiLDYwMjM2KSxzY3JlZW5Ob3JtYWw6Yygic2NyZWVuLW5vcm1hbCIsNjAyMzcpLHNlYXJjaFN0b3A6Yygic2VhcmNoLXN0b3AiLDYwMjM4KSxzZXJ2ZXI6Yygic2VydmVyIiw2MDI0MCksc2V0dGluZ3NHZWFyOmMoInNldHRpbmdzLWdlYXIiLDYwMjQxKSxzZXR0aW5nczpjKCJzZXR0aW5ncyIsNjAyNDIpLHNoaWVsZDpjKCJzaGllbGQiLDYwMjQzKSxzbWlsZXk6Yygic21pbGV5Iiw2MDI0NCksc29ydFByZWNlZGVuY2U6Yygic29ydC1wcmVjZWRlbmNlIiw2MDI0NSksc3BsaXRIb3Jpem9udGFsOmMoInNwbGl0LWhvcml6b250YWwiLDYwMjQ2KSxzcGxpdFZlcnRpY2FsOmMoInNwbGl0LXZlcnRpY2FsIiw2MDI0Nyksc3F1aXJyZWw6Yygic3F1aXJyZWwiLDYwMjQ4KSxzdGFyRnVsbDpjKCJzdGFyLWZ1bGwiLDYwMjQ5KSxzdGFySGFsZjpjKCJzdGFyLWhhbGYiLDYwMjUwKSxzeW1ib2xDbGFzczpjKCJzeW1ib2wtY2xhc3MiLDYwMjUxKSxzeW1ib2xDb2xvcjpjKCJzeW1ib2wtY29sb3IiLDYwMjUyKSxzeW1ib2xDdXN0b21Db2xvcjpjKCJzeW1ib2wtY3VzdG9tY29sb3IiLDYwMjUyKSxzeW1ib2xDb25zdGFudDpjKCJzeW1ib2wtY29uc3RhbnQiLDYwMjUzKSxzeW1ib2xFbnVtTWVtYmVyOmMoInN5bWJvbC1lbnVtLW1lbWJlciIsNjAyNTQpLHN5bWJvbEZpZWxkOmMoInN5bWJvbC1maWVsZCIsNjAyNTUpLHN5bWJvbEZpbGU6Yygic3ltYm9sLWZpbGUiLDYwMjU2KSxzeW1ib2xJbnRlcmZhY2U6Yygic3ltYm9sLWludGVyZmFjZSIsNjAyNTcpLHN5bWJvbEtleXdvcmQ6Yygic3ltYm9sLWtleXdvcmQiLDYwMjU4KSxzeW1ib2xNaXNjOmMoInN5bWJvbC1taXNjIiw2MDI1OSksc3ltYm9sT3BlcmF0b3I6Yygic3ltYm9sLW9wZXJhdG9yIiw2MDI2MCksc3ltYm9sUHJvcGVydHk6Yygic3ltYm9sLXByb3BlcnR5Iiw2MDI2MSksd3JlbmNoOmMoIndyZW5jaCIsNjAyNjEpLHdyZW5jaFN1YmFjdGlvbjpjKCJ3cmVuY2gtc3ViYWN0aW9uIiw2MDI2MSksc3ltYm9sU25pcHBldDpjKCJzeW1ib2wtc25pcHBldCIsNjAyNjIpLHRhc2tsaXN0OmMoInRhc2tsaXN0Iiw2MDI2MyksdGVsZXNjb3BlOmMoInRlbGVzY29wZSIsNjAyNjQpLHRleHRTaXplOmMoInRleHQtc2l6ZSIsNjAyNjUpLHRocmVlQmFyczpjKCJ0aHJlZS1iYXJzIiw2MDI2NiksdGh1bWJzZG93bjpjKCJ0aHVtYnNkb3duIiw2MDI2NyksdGh1bWJzdXA6YygidGh1bWJzdXAiLDYwMjY4KSx0b29sczpjKCJ0b29scyIsNjAyNjkpLHRyaWFuZ2xlRG93bjpjKCJ0cmlhbmdsZS1kb3duIiw2MDI3MCksdHJpYW5nbGVMZWZ0OmMoInRyaWFuZ2xlLWxlZnQiLDYwMjcxKSx0cmlhbmdsZVJpZ2h0OmMoInRyaWFuZ2xlLXJpZ2h0Iiw2MDI3MiksdHJpYW5nbGVVcDpjKCJ0cmlhbmdsZS11cCIsNjAyNzMpLHR3aXR0ZXI6YygidHdpdHRlciIsNjAyNzQpLHVuZm9sZDpjKCJ1bmZvbGQiLDYwMjc1KSx1bmxvY2s6YygidW5sb2NrIiw2MDI3NiksdW5tdXRlOmMoInVubXV0ZSIsNjAyNzcpLHVudmVyaWZpZWQ6YygidW52ZXJpZmllZCIsNjAyNzgpLHZlcmlmaWVkOmMoInZlcmlmaWVkIiw2MDI3OSksdmVyc2lvbnM6YygidmVyc2lvbnMiLDYwMjgwKSx2bUFjdGl2ZTpjKCJ2bS1hY3RpdmUiLDYwMjgxKSx2bU91dGxpbmU6Yygidm0tb3V0bGluZSIsNjAyODIpLHZtUnVubmluZzpjKCJ2bS1ydW5uaW5nIiw2MDI4Myksd2F0Y2g6Yygid2F0Y2giLDYwMjg0KSx3aGl0ZXNwYWNlOmMoIndoaXRlc3BhY2UiLDYwMjg1KSx3aG9sZVdvcmQ6Yygid2hvbGUtd29yZCIsNjAyODYpLHdpbmRvdzpjKCJ3aW5kb3ciLDYwMjg3KSx3b3JkV3JhcDpjKCJ3b3JkLXdyYXAiLDYwMjg4KSx6b29tSW46Yygiem9vbS1pbiIsNjAyODkpLHpvb21PdXQ6Yygiem9vbS1vdXQiLDYwMjkwKSxsaXN0RmlsdGVyOmMoImxpc3QtZmlsdGVyIiw2MDI5MSksbGlzdEZsYXQ6YygibGlzdC1mbGF0Iiw2MDI5MiksbGlzdFNlbGVjdGlvbjpjKCJsaXN0LXNlbGVjdGlvbiIsNjAyOTMpLHNlbGVjdGlvbjpjKCJzZWxlY3Rpb24iLDYwMjkzKSxsaXN0VHJlZTpjKCJsaXN0LXRyZWUiLDYwMjk0KSxkZWJ1Z0JyZWFrcG9pbnRGdW5jdGlvblVudmVyaWZpZWQ6YygiZGVidWctYnJlYWtwb2ludC1mdW5jdGlvbi11bnZlcmlmaWVkIiw2MDI5NSksZGVidWdCcmVha3BvaW50RnVuY3Rpb246YygiZGVidWctYnJlYWtwb2ludC1mdW5jdGlvbiIsNjAyOTYpLGRlYnVnQnJlYWtwb2ludEZ1bmN0aW9uRGlzYWJsZWQ6YygiZGVidWctYnJlYWtwb2ludC1mdW5jdGlvbi1kaXNhYmxlZCIsNjAyOTYpLGRlYnVnU3RhY2tmcmFtZUFjdGl2ZTpjKCJkZWJ1Zy1zdGFja2ZyYW1lLWFjdGl2ZSIsNjAyOTcpLGNpcmNsZVNtYWxsRmlsbGVkOmMoImNpcmNsZS1zbWFsbC1maWxsZWQiLDYwMjk4KSxkZWJ1Z1N0YWNrZnJhbWVEb3Q6YygiZGVidWctc3RhY2tmcmFtZS1kb3QiLDYwMjk4KSxkZWJ1Z1N0YWNrZnJhbWU6YygiZGVidWctc3RhY2tmcmFtZSIsNjAyOTkpLGRlYnVnU3RhY2tmcmFtZUZvY3VzZWQ6YygiZGVidWctc3RhY2tmcmFtZS1mb2N1c2VkIiw2MDI5OSksZGVidWdCcmVha3BvaW50VW5zdXBwb3J0ZWQ6YygiZGVidWctYnJlYWtwb2ludC11bnN1cHBvcnRlZCIsNjAzMDApLHN5bWJvbFN0cmluZzpjKCJzeW1ib2wtc3RyaW5nIiw2MDMwMSksZGVidWdSZXZlcnNlQ29udGludWU6YygiZGVidWctcmV2ZXJzZS1jb250aW51ZSIsNjAzMDIpLGRlYnVnU3RlcEJhY2s6YygiZGVidWctc3RlcC1iYWNrIiw2MDMwMyksZGVidWdSZXN0YXJ0RnJhbWU6YygiZGVidWctcmVzdGFydC1mcmFtZSIsNjAzMDQpLGNhbGxJbmNvbWluZzpjKCJjYWxsLWluY29taW5nIiw2MDMwNiksY2FsbE91dGdvaW5nOmMoImNhbGwtb3V0Z29pbmciLDYwMzA3KSxtZW51OmMoIm1lbnUiLDYwMzA4KSxleHBhbmRBbGw6YygiZXhwYW5kLWFsbCIsNjAzMDkpLGZlZWRiYWNrOmMoImZlZWRiYWNrIiw2MDMxMCksZ2l0UHVsbFJlcXVlc3RSZXZpZXdlcjpjKCJnaXQtcHVsbC1yZXF1ZXN0LXJldmlld2VyIiw2MDMxMCksZ3JvdXBCeVJlZlR5cGU6YygiZ3JvdXAtYnktcmVmLXR5cGUiLDYwMzExKSx1bmdyb3VwQnlSZWZUeXBlOmMoInVuZ3JvdXAtYnktcmVmLXR5cGUiLDYwMzEyKSxhY2NvdW50OmMoImFjY291bnQiLDYwMzEzKSxnaXRQdWxsUmVxdWVzdEFzc2lnbmVlOmMoImdpdC1wdWxsLXJlcXVlc3QtYXNzaWduZWUiLDYwMzEzKSxiZWxsRG90OmMoImJlbGwtZG90Iiw2MDMxNCksZGVidWdDb25zb2xlOmMoImRlYnVnLWNvbnNvbGUiLDYwMzE1KSxsaWJyYXJ5OmMoImxpYnJhcnkiLDYwMzE2KSxvdXRwdXQ6Yygib3V0cHV0Iiw2MDMxNykscnVuQWxsOmMoInJ1bi1hbGwiLDYwMzE4KSxzeW5jSWdub3JlZDpjKCJzeW5jLWlnbm9yZWQiLDYwMzE5KSxwaW5uZWQ6YygicGlubmVkIiw2MDMyMCksZ2l0aHViSW52ZXJ0ZWQ6YygiZ2l0aHViLWludmVydGVkIiw2MDMyMSksZGVidWdBbHQ6YygiZGVidWctYWx0Iiw2MDMwNSksc2VydmVyUHJvY2VzczpjKCJzZXJ2ZXItcHJvY2VzcyIsNjAzMjIpLHNlcnZlckVudmlyb25tZW50OmMoInNlcnZlci1lbnZpcm9ubWVudCIsNjAzMjMpLHBhc3M6YygicGFzcyIsNjAzMjQpLHN0b3BDaXJjbGU6Yygic3RvcC1jaXJjbGUiLDYwMzI1KSxwbGF5Q2lyY2xlOmMoInBsYXktY2lyY2xlIiw2MDMyNikscmVjb3JkOmMoInJlY29yZCIsNjAzMjcpLGRlYnVnQWx0U21hbGw6YygiZGVidWctYWx0LXNtYWxsIiw2MDMyOCksdm1Db25uZWN0OmMoInZtLWNvbm5lY3QiLDYwMzI5KSxjbG91ZDpjKCJjbG91ZCIsNjAzMzApLG1lcmdlOmMoIm1lcmdlIiw2MDMzMSksZXhwb3J0SWNvbjpjKCJleHBvcnQiLDYwMzMyKSxncmFwaExlZnQ6YygiZ3JhcGgtbGVmdCIsNjAzMzMpLG1hZ25ldDpjKCJtYWduZXQiLDYwMzM0KSxub3RlYm9vazpjKCJub3RlYm9vayIsNjAzMzUpLHJlZG86YygicmVkbyIsNjAzMzYpLGNoZWNrQWxsOmMoImNoZWNrLWFsbCIsNjAzMzcpLHBpbm5lZERpcnR5OmMoInBpbm5lZC1kaXJ0eSIsNjAzMzgpLHBhc3NGaWxsZWQ6YygicGFzcy1maWxsZWQiLDYwMzM5KSxjaXJjbGVMYXJnZUZpbGxlZDpjKCJjaXJjbGUtbGFyZ2UtZmlsbGVkIiw2MDM0MCksY2lyY2xlTGFyZ2U6YygiY2lyY2xlLWxhcmdlIiw2MDM0MSksY2lyY2xlTGFyZ2VPdXRsaW5lOmMoImNpcmNsZS1sYXJnZS1vdXRsaW5lIiw2MDM0MSksY29tYmluZTpjKCJjb21iaW5lIiw2MDM0MiksZ2F0aGVyOmMoImdhdGhlciIsNjAzNDIpLHRhYmxlOmMoInRhYmxlIiw2MDM0MyksdmFyaWFibGVHcm91cDpjKCJ2YXJpYWJsZS1ncm91cCIsNjAzNDQpLHR5cGVIaWVyYXJjaHk6YygidHlwZS1oaWVyYXJjaHkiLDYwMzQ1KSx0eXBlSGllcmFyY2h5U3ViOmMoInR5cGUtaGllcmFyY2h5LXN1YiIsNjAzNDYpLHR5cGVIaWVyYXJjaHlTdXBlcjpjKCJ0eXBlLWhpZXJhcmNoeS1zdXBlciIsNjAzNDcpLGdpdFB1bGxSZXF1ZXN0Q3JlYXRlOmMoImdpdC1wdWxsLXJlcXVlc3QtY3JlYXRlIiw2MDM0OCkscnVuQWJvdmU6YygicnVuLWFib3ZlIiw2MDM0OSkscnVuQmVsb3c6YygicnVuLWJlbG93Iiw2MDM1MCksbm90ZWJvb2tUZW1wbGF0ZTpjKCJub3RlYm9vay10ZW1wbGF0ZSIsNjAzNTEpLGRlYnVnUmVydW46YygiZGVidWctcmVydW4iLDYwMzUyKSx3b3Jrc3BhY2VUcnVzdGVkOmMoIndvcmtzcGFjZS10cnVzdGVkIiw2MDM1Myksd29ya3NwYWNlVW50cnVzdGVkOmMoIndvcmtzcGFjZS11bnRydXN0ZWQiLDYwMzU0KSx3b3Jrc3BhY2VVbnNwZWNpZmllZDpjKCJ3b3Jrc3BhY2UtdW5zcGVjaWZpZWQiLDYwMzU1KSx0ZXJtaW5hbENtZDpjKCJ0ZXJtaW5hbC1jbWQiLDYwMzU2KSx0ZXJtaW5hbERlYmlhbjpjKCJ0ZXJtaW5hbC1kZWJpYW4iLDYwMzU3KSx0ZXJtaW5hbExpbnV4OmMoInRlcm1pbmFsLWxpbnV4Iiw2MDM1OCksdGVybWluYWxQb3dlcnNoZWxsOmMoInRlcm1pbmFsLXBvd2Vyc2hlbGwiLDYwMzU5KSx0ZXJtaW5hbFRtdXg6YygidGVybWluYWwtdG11eCIsNjAzNjApLHRlcm1pbmFsVWJ1bnR1OmMoInRlcm1pbmFsLXVidW50dSIsNjAzNjEpLHRlcm1pbmFsQmFzaDpjKCJ0ZXJtaW5hbC1iYXNoIiw2MDM2MiksYXJyb3dTd2FwOmMoImFycm93LXN3YXAiLDYwMzYzKSxjb3B5OmMoImNvcHkiLDYwMzY0KSxwZXJzb25BZGQ6YygicGVyc29uLWFkZCIsNjAzNjUpLGZpbHRlckZpbGxlZDpjKCJmaWx0ZXItZmlsbGVkIiw2MDM2Niksd2FuZDpjKCJ3YW5kIiw2MDM2NyksZGVidWdMaW5lQnlMaW5lOmMoImRlYnVnLWxpbmUtYnktbGluZSIsNjAzNjgpLGluc3BlY3Q6YygiaW5zcGVjdCIsNjAzNjkpLGxheWVyczpjKCJsYXllcnMiLDYwMzcwKSxsYXllcnNEb3Q6YygibGF5ZXJzLWRvdCIsNjAzNzEpLGxheWVyc0FjdGl2ZTpjKCJsYXllcnMtYWN0aXZlIiw2MDM3MiksY29tcGFzczpjKCJjb21wYXNzIiw2MDM3MyksY29tcGFzc0RvdDpjKCJjb21wYXNzLWRvdCIsNjAzNzQpLGNvbXBhc3NBY3RpdmU6YygiY29tcGFzcy1hY3RpdmUiLDYwMzc1KSxhenVyZTpjKCJhenVyZSIsNjAzNzYpLGlzc3VlRHJhZnQ6YygiaXNzdWUtZHJhZnQiLDYwMzc3KSxnaXRQdWxsUmVxdWVzdENsb3NlZDpjKCJnaXQtcHVsbC1yZXF1ZXN0LWNsb3NlZCIsNjAzNzgpLGdpdFB1bGxSZXF1ZXN0RHJhZnQ6YygiZ2l0LXB1bGwtcmVxdWVzdC1kcmFmdCIsNjAzNzkpLGRlYnVnQWxsOmMoImRlYnVnLWFsbCIsNjAzODApLGRlYnVnQ292ZXJhZ2U6YygiZGVidWctY292ZXJhZ2UiLDYwMzgxKSxydW5FcnJvcnM6YygicnVuLWVycm9ycyIsNjAzODIpLGZvbGRlckxpYnJhcnk6YygiZm9sZGVyLWxpYnJhcnkiLDYwMzgzKSxkZWJ1Z0NvbnRpbnVlU21hbGw6YygiZGVidWctY29udGludWUtc21hbGwiLDYwMzg0KSxiZWFrZXJTdG9wOmMoImJlYWtlci1zdG9wIiw2MDM4NSksZ3JhcGhMaW5lOmMoImdyYXBoLWxpbmUiLDYwMzg2KSxncmFwaFNjYXR0ZXI6YygiZ3JhcGgtc2NhdHRlciIsNjAzODcpLHBpZUNoYXJ0OmMoInBpZS1jaGFydCIsNjAzODgpLGJyYWNrZXREb3Q6YygiYnJhY2tldC1kb3QiLDYwMzg5KSxicmFja2V0RXJyb3I6YygiYnJhY2tldC1lcnJvciIsNjAzOTApLGxvY2tTbWFsbDpjKCJsb2NrLXNtYWxsIiw2MDM5MSksYXp1cmVEZXZvcHM6YygiYXp1cmUtZGV2b3BzIiw2MDM5MiksdmVyaWZpZWRGaWxsZWQ6YygidmVyaWZpZWQtZmlsbGVkIiw2MDM5MyksbmV3TGluZTpjKCJuZXdsaW5lIiw2MDM5NCksbGF5b3V0OmMoImxheW91dCIsNjAzOTUpLGxheW91dEFjdGl2aXR5YmFyTGVmdDpjKCJsYXlvdXQtYWN0aXZpdHliYXItbGVmdCIsNjAzOTYpLGxheW91dEFjdGl2aXR5YmFyUmlnaHQ6YygibGF5b3V0LWFjdGl2aXR5YmFyLXJpZ2h0Iiw2MDM5NyksbGF5b3V0UGFuZWxMZWZ0OmMoImxheW91dC1wYW5lbC1sZWZ0Iiw2MDM5OCksbGF5b3V0UGFuZWxDZW50ZXI6YygibGF5b3V0LXBhbmVsLWNlbnRlciIsNjAzOTkpLGxheW91dFBhbmVsSnVzdGlmeTpjKCJsYXlvdXQtcGFuZWwtanVzdGlmeSIsNjA0MDApLGxheW91dFBhbmVsUmlnaHQ6YygibGF5b3V0LXBhbmVsLXJpZ2h0Iiw2MDQwMSksbGF5b3V0UGFuZWw6YygibGF5b3V0LXBhbmVsIiw2MDQwMiksbGF5b3V0U2lkZWJhckxlZnQ6YygibGF5b3V0LXNpZGViYXItbGVmdCIsNjA0MDMpLGxheW91dFNpZGViYXJSaWdodDpjKCJsYXlvdXQtc2lkZWJhci1yaWdodCIsNjA0MDQpLGxheW91dFN0YXR1c2JhcjpjKCJsYXlvdXQtc3RhdHVzYmFyIiw2MDQwNSksbGF5b3V0TWVudWJhcjpjKCJsYXlvdXQtbWVudWJhciIsNjA0MDYpLGxheW91dENlbnRlcmVkOmMoImxheW91dC1jZW50ZXJlZCIsNjA0MDcpLGxheW91dFNpZGViYXJSaWdodE9mZjpjKCJsYXlvdXQtc2lkZWJhci1yaWdodC1vZmYiLDYwNDE2KSxsYXlvdXRQYW5lbE9mZjpjKCJsYXlvdXQtcGFuZWwtb2ZmIiw2MDQxNyksbGF5b3V0U2lkZWJhckxlZnRPZmY6YygibGF5b3V0LXNpZGViYXItbGVmdC1vZmYiLDYwNDE4KSx0YXJnZXQ6YygidGFyZ2V0Iiw2MDQwOCksaW5kZW50OmMoImluZGVudCIsNjA0MDkpLHJlY29yZFNtYWxsOmMoInJlY29yZC1zbWFsbCIsNjA0MTApLGVycm9yU21hbGw6YygiZXJyb3Itc21hbGwiLDYwNDExKSxhcnJvd0NpcmNsZURvd246YygiYXJyb3ctY2lyY2xlLWRvd24iLDYwNDEyKSxhcnJvd0NpcmNsZUxlZnQ6YygiYXJyb3ctY2lyY2xlLWxlZnQiLDYwNDEzKSxhcnJvd0NpcmNsZVJpZ2h0OmMoImFycm93LWNpcmNsZS1yaWdodCIsNjA0MTQpLGFycm93Q2lyY2xlVXA6YygiYXJyb3ctY2lyY2xlLXVwIiw2MDQxNSksaGVhcnRGaWxsZWQ6YygiaGVhcnQtZmlsbGVkIiw2MDQyMCksbWFwOmMoIm1hcCIsNjA0MjEpLG1hcEZpbGxlZDpjKCJtYXAtZmlsbGVkIiw2MDQyMiksY2lyY2xlU21hbGw6YygiY2lyY2xlLXNtYWxsIiw2MDQyMyksYmVsbFNsYXNoOmMoImJlbGwtc2xhc2giLDYwNDI0KSxiZWxsU2xhc2hEb3Q6YygiYmVsbC1zbGFzaC1kb3QiLDYwNDI1KSxjb21tZW50VW5yZXNvbHZlZDpjKCJjb21tZW50LXVucmVzb2x2ZWQiLDYwNDI2KSxnaXRQdWxsUmVxdWVzdEdvVG9DaGFuZ2VzOmMoImdpdC1wdWxsLXJlcXVlc3QtZ28tdG8tY2hhbmdlcyIsNjA0MjcpLGdpdFB1bGxSZXF1ZXN0TmV3Q2hhbmdlczpjKCJnaXQtcHVsbC1yZXF1ZXN0LW5ldy1jaGFuZ2VzIiw2MDQyOCksc2VhcmNoRnV6enk6Yygic2VhcmNoLWZ1enp5Iiw2MDQyOSksY29tbWVudERyYWZ0OmMoImNvbW1lbnQtZHJhZnQiLDYwNDMwKSxzZW5kOmMoInNlbmQiLDYwNDMxKSxzcGFya2xlOmMoInNwYXJrbGUiLDYwNDMyKSxpbnNlcnQ6YygiaW5zZXJ0Iiw2MDQzMyksbWljOmMoIm1pYyIsNjA0MzQpLHRodW1ic0Rvd25GaWxsZWQ6YygidGh1bWJzZG93bi1maWxsZWQiLDYwNDM1KSx0aHVtYnNVcEZpbGxlZDpjKCJ0aHVtYnN1cC1maWxsZWQiLDYwNDM2KSxjb2ZmZWU6YygiY29mZmVlIiw2MDQzNyksc25ha2U6Yygic25ha2UiLDYwNDM4KSxnYW1lOmMoImdhbWUiLDYwNDM5KSx2cjpjKCJ2ciIsNjA0NDApLGNoaXA6YygiY2hpcCIsNjA0NDEpLHBpYW5vOmMoInBpYW5vIiw2MDQ0MiksbXVzaWM6YygibXVzaWMiLDYwNDQzKSxtaWNGaWxsZWQ6YygibWljLWZpbGxlZCIsNjA0NDQpLGdpdEZldGNoOmMoImdpdC1mZXRjaCIsNjA0NDUpLGNvcGlsb3Q6YygiY29waWxvdCIsNjA0NDYpLGxpZ2h0YnVsYlNwYXJrbGU6YygibGlnaHRidWxiLXNwYXJrbGUiLDYwNDQ3KSxsaWdodGJ1bGJTcGFya2xlQXV0b2ZpeDpjKCJsaWdodGJ1bGItc3BhcmtsZS1hdXRvZml4Iiw2MDQ0Nykscm9ib3Q6Yygicm9ib3QiLDYwNDQ4KSxzcGFya2xlRmlsbGVkOmMoInNwYXJrbGUtZmlsbGVkIiw2MDQ0OSksZGlmZlNpbmdsZTpjKCJkaWZmLXNpbmdsZSIsNjA0NTApLGRpZmZNdWx0aXBsZTpjKCJkaWZmLW11bHRpcGxlIiw2MDQ1MSksc3Vycm91bmRXaXRoOmMoInN1cnJvdW5kLXdpdGgiLDYwNDUyKSxnaXRTdGFzaDpjKCJnaXQtc3Rhc2giLDYwNDU0KSxnaXRTdGFzaEFwcGx5OmMoImdpdC1zdGFzaC1hcHBseSIsNjA0NTUpLGdpdFN0YXNoUG9wOmMoImdpdC1zdGFzaC1wb3AiLDYwNDU2KSxydW5BbGxDb3ZlcmFnZTpjKCJydW4tYWxsLWNvdmVyYWdlIiw2MDQ2MSkscnVuQ292ZXJhZ2U6YygicnVuLWFsbC1jb3ZlcmFnZSIsNjA0NjApLGNvdmVyYWdlOmMoImNvdmVyYWdlIiw2MDQ2MiksZ2l0aHViUHJvamVjdDpjKCJnaXRodWItcHJvamVjdCIsNjA0NjMpLGRpYWxvZ0Vycm9yOmMoImRpYWxvZy1lcnJvciIsImVycm9yIiksZGlhbG9nV2FybmluZzpjKCJkaWFsb2ctd2FybmluZyIsIndhcm5pbmciKSxkaWFsb2dJbmZvOmMoImRpYWxvZy1pbmZvIiwiaW5mbyIpLGRpYWxvZ0Nsb3NlOmMoImRpYWxvZy1jbG9zZSIsImNsb3NlIiksdHJlZUl0ZW1FeHBhbmRlZDpjKCJ0cmVlLWl0ZW0tZXhwYW5kZWQiLCJjaGV2cm9uLWRvd24iKSx0cmVlRmlsdGVyT25UeXBlT246YygidHJlZS1maWx0ZXItb24tdHlwZS1vbiIsImxpc3QtZmlsdGVyIiksdHJlZUZpbHRlck9uVHlwZU9mZjpjKCJ0cmVlLWZpbHRlci1vbi10eXBlLW9mZiIsImxpc3Qtc2VsZWN0aW9uIiksdHJlZUZpbHRlckNsZWFyOmMoInRyZWUtZmlsdGVyLWNsZWFyIiwiY2xvc2UiKSx0cmVlSXRlbUxvYWRpbmc6YygidHJlZS1pdGVtLWxvYWRpbmciLCJsb2FkaW5nIiksbWVudVNlbGVjdGlvbjpjKCJtZW51LXNlbGVjdGlvbiIsImNoZWNrIiksbWVudVN1Ym1lbnU6YygibWVudS1zdWJtZW51IiwiY2hldnJvbi1yaWdodCIpLG1lbnVCYXJNb3JlOmMoIm1lbnViYXItbW9yZSIsIm1vcmUiKSxzY3JvbGxiYXJCdXR0b25MZWZ0OmMoInNjcm9sbGJhci1idXR0b24tbGVmdCIsInRyaWFuZ2xlLWxlZnQiKSxzY3JvbGxiYXJCdXR0b25SaWdodDpjKCJzY3JvbGxiYXItYnV0dG9uLXJpZ2h0IiwidHJpYW5nbGUtcmlnaHQiKSxzY3JvbGxiYXJCdXR0b25VcDpjKCJzY3JvbGxiYXItYnV0dG9uLXVwIiwidHJpYW5nbGUtdXAiKSxzY3JvbGxiYXJCdXR0b25Eb3duOmMoInNjcm9sbGJhci1idXR0b24tZG93biIsInRyaWFuZ2xlLWRvd24iKSx0b29sQmFyTW9yZTpjKCJ0b29sYmFyLW1vcmUiLCJtb3JlIikscXVpY2tJbnB1dEJhY2s6YygicXVpY2staW5wdXQtYmFjayIsImFycm93LWxlZnQiKX07Y2xhc3MgdGx7Y29uc3RydWN0b3IoKXt0aGlzLl90b2tlbml6YXRpb25TdXBwb3J0cz1uZXcgTWFwLHRoaXMuX2ZhY3Rvcmllcz1uZXcgTWFwLHRoaXMuX29uRGlkQ2hhbmdlPW5ldyBBZSx0aGlzLm9uRGlkQ2hhbmdlPXRoaXMuX29uRGlkQ2hhbmdlLmV2ZW50LHRoaXMuX2NvbG9yTWFwPW51bGx9aGFuZGxlQ2hhbmdlKHQpe3RoaXMuX29uRGlkQ2hhbmdlLmZpcmUoe2NoYW5nZWRMYW5ndWFnZXM6dCxjaGFuZ2VkQ29sb3JNYXA6ITF9KX1yZWdpc3Rlcih0LG4pe3JldHVybiB0aGlzLl90b2tlbml6YXRpb25TdXBwb3J0cy5zZXQodCxuKSx0aGlzLmhhbmRsZUNoYW5nZShbdF0pLFp0KCgpPT57dGhpcy5fdG9rZW5pemF0aW9uU3VwcG9ydHMuZ2V0KHQpPT09biYmKHRoaXMuX3Rva2VuaXphdGlvblN1cHBvcnRzLmRlbGV0ZSh0KSx0aGlzLmhhbmRsZUNoYW5nZShbdF0pKX0pfWdldCh0KXtyZXR1cm4gdGhpcy5fdG9rZW5pemF0aW9uU3VwcG9ydHMuZ2V0KHQpfHxudWxsfXJlZ2lzdGVyRmFjdG9yeSh0LG4pe3ZhciByOyhyPXRoaXMuX2ZhY3Rvcmllcy5nZXQodCkpPT09bnVsbHx8cj09PXZvaWQgMHx8ci5kaXNwb3NlKCk7Y29uc3QgaT1uZXcgbmwodGhpcyx0LG4pO3JldHVybiB0aGlzLl9mYWN0b3JpZXMuc2V0KHQsaSksWnQoKCk9Pntjb25zdCBzPXRoaXMuX2ZhY3Rvcmllcy5nZXQodCk7IXN8fHMhPT1pfHwodGhpcy5fZmFjdG9yaWVzLmRlbGV0ZSh0KSxzLmRpc3Bvc2UoKSl9KX1hc3luYyBnZXRPckNyZWF0ZSh0KXtjb25zdCBuPXRoaXMuZ2V0KHQpO2lmKG4pcmV0dXJuIG47Y29uc3Qgcj10aGlzLl9mYWN0b3JpZXMuZ2V0KHQpO3JldHVybiFyfHxyLmlzUmVzb2x2ZWQ/bnVsbDooYXdhaXQgci5yZXNvbHZlKCksdGhpcy5nZXQodCkpfWlzUmVzb2x2ZWQodCl7aWYodGhpcy5nZXQodCkpcmV0dXJuITA7Y29uc3Qgcj10aGlzLl9mYWN0b3JpZXMuZ2V0KHQpO3JldHVybiEhKCFyfHxyLmlzUmVzb2x2ZWQpfXNldENvbG9yTWFwKHQpe3RoaXMuX2NvbG9yTWFwPXQsdGhpcy5fb25EaWRDaGFuZ2UuZmlyZSh7Y2hhbmdlZExhbmd1YWdlczpBcnJheS5mcm9tKHRoaXMuX3Rva2VuaXphdGlvblN1cHBvcnRzLmtleXMoKSksY2hhbmdlZENvbG9yTWFwOiEwfSl9Z2V0Q29sb3JNYXAoKXtyZXR1cm4gdGhpcy5fY29sb3JNYXB9Z2V0RGVmYXVsdEJhY2tncm91bmQoKXtyZXR1cm4gdGhpcy5fY29sb3JNYXAmJnRoaXMuX2NvbG9yTWFwLmxlbmd0aD4yP3RoaXMuX2NvbG9yTWFwWzJdOm51bGx9fWNsYXNzIG5sIGV4dGVuZHMga3R7Z2V0IGlzUmVzb2x2ZWQoKXtyZXR1cm4gdGhpcy5faXNSZXNvbHZlZH1jb25zdHJ1Y3Rvcih0LG4scil7c3VwZXIoKSx0aGlzLl9yZWdpc3RyeT10LHRoaXMuX2xhbmd1YWdlSWQ9bix0aGlzLl9mYWN0b3J5PXIsdGhpcy5faXNEaXNwb3NlZD0hMSx0aGlzLl9yZXNvbHZlUHJvbWlzZT1udWxsLHRoaXMuX2lzUmVzb2x2ZWQ9ITF9ZGlzcG9zZSgpe3RoaXMuX2lzRGlzcG9zZWQ9ITAsc3VwZXIuZGlzcG9zZSgpfWFzeW5jIHJlc29sdmUoKXtyZXR1cm4gdGhpcy5fcmVzb2x2ZVByb21pc2V8fCh0aGlzLl9yZXNvbHZlUHJvbWlzZT10aGlzLl9jcmVhdGUoKSksdGhpcy5fcmVzb2x2ZVByb21pc2V9YXN5bmMgX2NyZWF0ZSgpe2NvbnN0IHQ9YXdhaXQgdGhpcy5fZmFjdG9yeS50b2tlbml6YXRpb25TdXBwb3J0O3RoaXMuX2lzUmVzb2x2ZWQ9ITAsdCYmIXRoaXMuX2lzRGlzcG9zZWQmJnRoaXMuX3JlZ2lzdGVyKHRoaXMuX3JlZ2lzdHJ5LnJlZ2lzdGVyKHRoaXMuX2xhbmd1YWdlSWQsdCkpfX1jbGFzcyBybHtjb25zdHJ1Y3Rvcih0LG4scil7dGhpcy5vZmZzZXQ9dCx0aGlzLnR5cGU9bix0aGlzLmxhbmd1YWdlPXIsdGhpcy5fdG9rZW5CcmFuZD12b2lkIDB9dG9TdHJpbmcoKXtyZXR1cm4iKCIrdGhpcy5vZmZzZXQrIiwgIit0aGlzLnR5cGUrIikifX12YXIgdWk7KGZ1bmN0aW9uKGUpe2NvbnN0IHQ9bmV3IE1hcDt0LnNldCgwLGouc3ltYm9sTWV0aG9kKSx0LnNldCgxLGouc3ltYm9sRnVuY3Rpb24pLHQuc2V0KDIsai5zeW1ib2xDb25zdHJ1Y3RvciksdC5zZXQoMyxqLnN5bWJvbEZpZWxkKSx0LnNldCg0LGouc3ltYm9sVmFyaWFibGUpLHQuc2V0KDUsai5zeW1ib2xDbGFzcyksdC5zZXQoNixqLnN5bWJvbFN0cnVjdCksdC5zZXQoNyxqLnN5bWJvbEludGVyZmFjZSksdC5zZXQoOCxqLnN5bWJvbE1vZHVsZSksdC5zZXQoOSxqLnN5bWJvbFByb3BlcnR5KSx0LnNldCgxMCxqLnN5bWJvbEV2ZW50KSx0LnNldCgxMSxqLnN5bWJvbE9wZXJhdG9yKSx0LnNldCgxMixqLnN5bWJvbFVuaXQpLHQuc2V0KDEzLGouc3ltYm9sVmFsdWUpLHQuc2V0KDE1LGouc3ltYm9sRW51bSksdC5zZXQoMTQsai5zeW1ib2xDb25zdGFudCksdC5zZXQoMTUsai5zeW1ib2xFbnVtKSx0LnNldCgxNixqLnN5bWJvbEVudW1NZW1iZXIpLHQuc2V0KDE3LGouc3ltYm9sS2V5d29yZCksdC5zZXQoMjcsai5zeW1ib2xTbmlwcGV0KSx0LnNldCgxOCxqLnN5bWJvbFRleHQpLHQuc2V0KDE5LGouc3ltYm9sQ29sb3IpLHQuc2V0KDIwLGouc3ltYm9sRmlsZSksdC5zZXQoMjEsai5zeW1ib2xSZWZlcmVuY2UpLHQuc2V0KDIyLGouc3ltYm9sQ3VzdG9tQ29sb3IpLHQuc2V0KDIzLGouc3ltYm9sRm9sZGVyKSx0LnNldCgyNCxqLnN5bWJvbFR5cGVQYXJhbWV0ZXIpLHQuc2V0KDI1LGouYWNjb3VudCksdC5zZXQoMjYsai5pc3N1ZXMpO2Z1bmN0aW9uIG4ocyl7bGV0IGE9dC5nZXQocyk7cmV0dXJuIGF8fChhPWouc3ltYm9sUHJvcGVydHkpLGF9ZS50b0ljb249bjtjb25zdCByPW5ldyBNYXA7ci5zZXQoIm1ldGhvZCIsMCksci5zZXQoImZ1bmN0aW9uIiwxKSxyLnNldCgiY29uc3RydWN0b3IiLDIpLHIuc2V0KCJmaWVsZCIsMyksci5zZXQoInZhcmlhYmxlIiw0KSxyLnNldCgiY2xhc3MiLDUpLHIuc2V0KCJzdHJ1Y3QiLDYpLHIuc2V0KCJpbnRlcmZhY2UiLDcpLHIuc2V0KCJtb2R1bGUiLDgpLHIuc2V0KCJwcm9wZXJ0eSIsOSksci5zZXQoImV2ZW50IiwxMCksci5zZXQoIm9wZXJhdG9yIiwxMSksci5zZXQoInVuaXQiLDEyKSxyLnNldCgidmFsdWUiLDEzKSxyLnNldCgiY29uc3RhbnQiLDE0KSxyLnNldCgiZW51bSIsMTUpLHIuc2V0KCJlbnVtLW1lbWJlciIsMTYpLHIuc2V0KCJlbnVtTWVtYmVyIiwxNiksci5zZXQoImtleXdvcmQiLDE3KSxyLnNldCgic25pcHBldCIsMjcpLHIuc2V0KCJ0ZXh0IiwxOCksci5zZXQoImNvbG9yIiwxOSksci5zZXQoImZpbGUiLDIwKSxyLnNldCgicmVmZXJlbmNlIiwyMSksci5zZXQoImN1c3RvbWNvbG9yIiwyMiksci5zZXQoImZvbGRlciIsMjMpLHIuc2V0KCJ0eXBlLXBhcmFtZXRlciIsMjQpLHIuc2V0KCJ0eXBlUGFyYW1ldGVyIiwyNCksci5zZXQoImFjY291bnQiLDI1KSxyLnNldCgiaXNzdWUiLDI2KTtmdW5jdGlvbiBpKHMsYSl7bGV0IG89ci5nZXQocyk7cmV0dXJuIHR5cGVvZiBvPiJ1IiYmIWEmJihvPTkpLG99ZS5mcm9tU3RyaW5nPWl9KSh1aXx8KHVpPXt9KSk7dmFyIGNpOyhmdW5jdGlvbihlKXtlW2UuQXV0b21hdGljPTBdPSJBdXRvbWF0aWMiLGVbZS5FeHBsaWNpdD0xXT0iRXhwbGljaXQifSkoY2l8fChjaT17fSkpO3ZhciBmaTsoZnVuY3Rpb24oZSl7ZVtlLkludm9rZT0xXT0iSW52b2tlIixlW2UuVHJpZ2dlckNoYXJhY3Rlcj0yXT0iVHJpZ2dlckNoYXJhY3RlciIsZVtlLkNvbnRlbnRDaGFuZ2U9M109IkNvbnRlbnRDaGFuZ2UifSkoZml8fChmaT17fSkpO3ZhciBoaTsoZnVuY3Rpb24oZSl7ZVtlLlRleHQ9MF09IlRleHQiLGVbZS5SZWFkPTFdPSJSZWFkIixlW2UuV3JpdGU9Ml09IldyaXRlIn0pKGhpfHwoaGk9e30pKSxaKCJBcnJheSIsImFycmF5IiksWigiQm9vbGVhbiIsImJvb2xlYW4iKSxaKCJDbGFzcyIsImNsYXNzIiksWigiQ29uc3RhbnQiLCJjb25zdGFudCIpLFooIkNvbnN0cnVjdG9yIiwiY29uc3RydWN0b3IiKSxaKCJFbnVtIiwiZW51bWVyYXRpb24iKSxaKCJFbnVtTWVtYmVyIiwiZW51bWVyYXRpb24gbWVtYmVyIiksWigiRXZlbnQiLCJldmVudCIpLFooIkZpZWxkIiwiZmllbGQiKSxaKCJGaWxlIiwiZmlsZSIpLFooIkZ1bmN0aW9uIiwiZnVuY3Rpb24iKSxaKCJJbnRlcmZhY2UiLCJpbnRlcmZhY2UiKSxaKCJLZXkiLCJrZXkiKSxaKCJNZXRob2QiLCJtZXRob2QiKSxaKCJNb2R1bGUiLCJtb2R1bGUiKSxaKCJOYW1lc3BhY2UiLCJuYW1lc3BhY2UiKSxaKCJOdWxsIiwibnVsbCIpLFooIk51bWJlciIsIm51bWJlciIpLFooIk9iamVjdCIsIm9iamVjdCIpLFooIk9wZXJhdG9yIiwib3BlcmF0b3IiKSxaKCJQYWNrYWdlIiwicGFja2FnZSIpLFooIlByb3BlcnR5IiwicHJvcGVydHkiKSxaKCJTdHJpbmciLCJzdHJpbmciKSxaKCJTdHJ1Y3QiLCJzdHJ1Y3QiKSxaKCJUeXBlUGFyYW1ldGVyIiwidHlwZSBwYXJhbWV0ZXIiKSxaKCJWYXJpYWJsZSIsInZhcmlhYmxlIik7dmFyIGRpOyhmdW5jdGlvbihlKXtjb25zdCB0PW5ldyBNYXA7dC5zZXQoMCxqLnN5bWJvbEZpbGUpLHQuc2V0KDEsai5zeW1ib2xNb2R1bGUpLHQuc2V0KDIsai5zeW1ib2xOYW1lc3BhY2UpLHQuc2V0KDMsai5zeW1ib2xQYWNrYWdlKSx0LnNldCg0LGouc3ltYm9sQ2xhc3MpLHQuc2V0KDUsai5zeW1ib2xNZXRob2QpLHQuc2V0KDYsai5zeW1ib2xQcm9wZXJ0eSksdC5zZXQoNyxqLnN5bWJvbEZpZWxkKSx0LnNldCg4LGouc3ltYm9sQ29uc3RydWN0b3IpLHQuc2V0KDksai5zeW1ib2xFbnVtKSx0LnNldCgxMCxqLnN5bWJvbEludGVyZmFjZSksdC5zZXQoMTEsai5zeW1ib2xGdW5jdGlvbiksdC5zZXQoMTIsai5zeW1ib2xWYXJpYWJsZSksdC5zZXQoMTMsai5zeW1ib2xDb25zdGFudCksdC5zZXQoMTQsai5zeW1ib2xTdHJpbmcpLHQuc2V0KDE1LGouc3ltYm9sTnVtYmVyKSx0LnNldCgxNixqLnN5bWJvbEJvb2xlYW4pLHQuc2V0KDE3LGouc3ltYm9sQXJyYXkpLHQuc2V0KDE4LGouc3ltYm9sT2JqZWN0KSx0LnNldCgxOSxqLnN5bWJvbEtleSksdC5zZXQoMjAsai5zeW1ib2xOdWxsKSx0LnNldCgyMSxqLnN5bWJvbEVudW1NZW1iZXIpLHQuc2V0KDIyLGouc3ltYm9sU3RydWN0KSx0LnNldCgyMyxqLnN5bWJvbEV2ZW50KSx0LnNldCgyNCxqLnN5bWJvbE9wZXJhdG9yKSx0LnNldCgyNSxqLnN5bWJvbFR5cGVQYXJhbWV0ZXIpO2Z1bmN0aW9uIG4ocil7bGV0IGk9dC5nZXQocik7cmV0dXJuIGl8fChpPWouc3ltYm9sUHJvcGVydHkpLGl9ZS50b0ljb249bn0pKGRpfHwoZGk9e30pKTt2YXIgZ2k7KGZ1bmN0aW9uKGUpe2VbZS5BSUdlbmVyYXRlZD0xXT0iQUlHZW5lcmF0ZWQifSkoZ2l8fChnaT17fSkpO3ZhciBtaTsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChuKXtyZXR1cm4hbnx8dHlwZW9mIG4hPSJvYmplY3QiPyExOnR5cGVvZiBuLmlkPT0ic3RyaW5nIiYmdHlwZW9mIG4udGl0bGU9PSJzdHJpbmcifWUuaXM9dH0pKG1pfHwobWk9e30pKTt2YXIgcGk7KGZ1bmN0aW9uKGUpe2VbZS5UeXBlPTFdPSJUeXBlIixlW2UuUGFyYW1ldGVyPTJdPSJQYXJhbWV0ZXIifSkocGl8fChwaT17fSkpLG5ldyB0bDt2YXIgdmk7KGZ1bmN0aW9uKGUpe2VbZS5JbnZva2U9MF09Ikludm9rZSIsZVtlLkF1dG9tYXRpYz0xXT0iQXV0b21hdGljIn0pKHZpfHwodmk9e30pKTt2YXIgYmk7KGZ1bmN0aW9uKGUpe2VbZS5Vbmtub3duPTBdPSJVbmtub3duIixlW2UuRGlzYWJsZWQ9MV09IkRpc2FibGVkIixlW2UuRW5hYmxlZD0yXT0iRW5hYmxlZCJ9KShiaXx8KGJpPXt9KSk7dmFyIHhpOyhmdW5jdGlvbihlKXtlW2UuSW52b2tlPTFdPSJJbnZva2UiLGVbZS5BdXRvPTJdPSJBdXRvIn0pKHhpfHwoeGk9e30pKTt2YXIgeWk7KGZ1bmN0aW9uKGUpe2VbZS5Ob25lPTBdPSJOb25lIixlW2UuS2VlcFdoaXRlc3BhY2U9MV09IktlZXBXaGl0ZXNwYWNlIixlW2UuSW5zZXJ0QXNTbmlwcGV0PTRdPSJJbnNlcnRBc1NuaXBwZXQifSkoeWl8fCh5aT17fSkpO3ZhciBfaTsoZnVuY3Rpb24oZSl7ZVtlLk1ldGhvZD0wXT0iTWV0aG9kIixlW2UuRnVuY3Rpb249MV09IkZ1bmN0aW9uIixlW2UuQ29uc3RydWN0b3I9Ml09IkNvbnN0cnVjdG9yIixlW2UuRmllbGQ9M109IkZpZWxkIixlW2UuVmFyaWFibGU9NF09IlZhcmlhYmxlIixlW2UuQ2xhc3M9NV09IkNsYXNzIixlW2UuU3RydWN0PTZdPSJTdHJ1Y3QiLGVbZS5JbnRlcmZhY2U9N109IkludGVyZmFjZSIsZVtlLk1vZHVsZT04XT0iTW9kdWxlIixlW2UuUHJvcGVydHk9OV09IlByb3BlcnR5IixlW2UuRXZlbnQ9MTBdPSJFdmVudCIsZVtlLk9wZXJhdG9yPTExXT0iT3BlcmF0b3IiLGVbZS5Vbml0PTEyXT0iVW5pdCIsZVtlLlZhbHVlPTEzXT0iVmFsdWUiLGVbZS5Db25zdGFudD0xNF09IkNvbnN0YW50IixlW2UuRW51bT0xNV09IkVudW0iLGVbZS5FbnVtTWVtYmVyPTE2XT0iRW51bU1lbWJlciIsZVtlLktleXdvcmQ9MTddPSJLZXl3b3JkIixlW2UuVGV4dD0xOF09IlRleHQiLGVbZS5Db2xvcj0xOV09IkNvbG9yIixlW2UuRmlsZT0yMF09IkZpbGUiLGVbZS5SZWZlcmVuY2U9MjFdPSJSZWZlcmVuY2UiLGVbZS5DdXN0b21jb2xvcj0yMl09IkN1c3RvbWNvbG9yIixlW2UuRm9sZGVyPTIzXT0iRm9sZGVyIixlW2UuVHlwZVBhcmFtZXRlcj0yNF09IlR5cGVQYXJhbWV0ZXIiLGVbZS5Vc2VyPTI1XT0iVXNlciIsZVtlLklzc3VlPTI2XT0iSXNzdWUiLGVbZS5TbmlwcGV0PTI3XT0iU25pcHBldCJ9KShfaXx8KF9pPXt9KSk7dmFyIHdpOyhmdW5jdGlvbihlKXtlW2UuRGVwcmVjYXRlZD0xXT0iRGVwcmVjYXRlZCJ9KSh3aXx8KHdpPXt9KSk7dmFyIFNpOyhmdW5jdGlvbihlKXtlW2UuSW52b2tlPTBdPSJJbnZva2UiLGVbZS5UcmlnZ2VyQ2hhcmFjdGVyPTFdPSJUcmlnZ2VyQ2hhcmFjdGVyIixlW2UuVHJpZ2dlckZvckluY29tcGxldGVDb21wbGV0aW9ucz0yXT0iVHJpZ2dlckZvckluY29tcGxldGVDb21wbGV0aW9ucyJ9KShTaXx8KFNpPXt9KSk7dmFyIE5pOyhmdW5jdGlvbihlKXtlW2UuRVhBQ1Q9MF09IkVYQUNUIixlW2UuQUJPVkU9MV09IkFCT1ZFIixlW2UuQkVMT1c9Ml09IkJFTE9XIn0pKE5pfHwoTmk9e30pKTt2YXIgTGk7KGZ1bmN0aW9uKGUpe2VbZS5Ob3RTZXQ9MF09Ik5vdFNldCIsZVtlLkNvbnRlbnRGbHVzaD0xXT0iQ29udGVudEZsdXNoIixlW2UuUmVjb3ZlckZyb21NYXJrZXJzPTJdPSJSZWNvdmVyRnJvbU1hcmtlcnMiLGVbZS5FeHBsaWNpdD0zXT0iRXhwbGljaXQiLGVbZS5QYXN0ZT00XT0iUGFzdGUiLGVbZS5VbmRvPTVdPSJVbmRvIixlW2UuUmVkbz02XT0iUmVkbyJ9KShMaXx8KExpPXt9KSk7dmFyIEFpOyhmdW5jdGlvbihlKXtlW2UuTEY9MV09IkxGIixlW2UuQ1JMRj0yXT0iQ1JMRiJ9KShBaXx8KEFpPXt9KSk7dmFyIENpOyhmdW5jdGlvbihlKXtlW2UuVGV4dD0wXT0iVGV4dCIsZVtlLlJlYWQ9MV09IlJlYWQiLGVbZS5Xcml0ZT0yXT0iV3JpdGUifSkoQ2l8fChDaT17fSkpO3ZhciBraTsoZnVuY3Rpb24oZSl7ZVtlLk5vbmU9MF09Ik5vbmUiLGVbZS5LZWVwPTFdPSJLZWVwIixlW2UuQnJhY2tldHM9Ml09IkJyYWNrZXRzIixlW2UuQWR2YW5jZWQ9M109IkFkdmFuY2VkIixlW2UuRnVsbD00XT0iRnVsbCJ9KShraXx8KGtpPXt9KSk7dmFyIEVpOyhmdW5jdGlvbihlKXtlW2UuYWNjZXB0U3VnZ2VzdGlvbk9uQ29tbWl0Q2hhcmFjdGVyPTBdPSJhY2NlcHRTdWdnZXN0aW9uT25Db21taXRDaGFyYWN0ZXIiLGVbZS5hY2NlcHRTdWdnZXN0aW9uT25FbnRlcj0xXT0iYWNjZXB0U3VnZ2VzdGlvbk9uRW50ZXIiLGVbZS5hY2Nlc3NpYmlsaXR5U3VwcG9ydD0yXT0iYWNjZXNzaWJpbGl0eVN1cHBvcnQiLGVbZS5hY2Nlc3NpYmlsaXR5UGFnZVNpemU9M109ImFjY2Vzc2liaWxpdHlQYWdlU2l6ZSIsZVtlLmFyaWFMYWJlbD00XT0iYXJpYUxhYmVsIixlW2UuYXJpYVJlcXVpcmVkPTVdPSJhcmlhUmVxdWlyZWQiLGVbZS5hdXRvQ2xvc2luZ0JyYWNrZXRzPTZdPSJhdXRvQ2xvc2luZ0JyYWNrZXRzIixlW2UuYXV0b0Nsb3NpbmdDb21tZW50cz03XT0iYXV0b0Nsb3NpbmdDb21tZW50cyIsZVtlLnNjcmVlblJlYWRlckFubm91bmNlSW5saW5lU3VnZ2VzdGlvbj04XT0ic2NyZWVuUmVhZGVyQW5ub3VuY2VJbmxpbmVTdWdnZXN0aW9uIixlW2UuYXV0b0Nsb3NpbmdEZWxldGU9OV09ImF1dG9DbG9zaW5nRGVsZXRlIixlW2UuYXV0b0Nsb3NpbmdPdmVydHlwZT0xMF09ImF1dG9DbG9zaW5nT3ZlcnR5cGUiLGVbZS5hdXRvQ2xvc2luZ1F1b3Rlcz0xMV09ImF1dG9DbG9zaW5nUXVvdGVzIixlW2UuYXV0b0luZGVudD0xMl09ImF1dG9JbmRlbnQiLGVbZS5hdXRvbWF0aWNMYXlvdXQ9MTNdPSJhdXRvbWF0aWNMYXlvdXQiLGVbZS5hdXRvU3Vycm91bmQ9MTRdPSJhdXRvU3Vycm91bmQiLGVbZS5icmFja2V0UGFpckNvbG9yaXphdGlvbj0xNV09ImJyYWNrZXRQYWlyQ29sb3JpemF0aW9uIixlW2UuZ3VpZGVzPTE2XT0iZ3VpZGVzIixlW2UuY29kZUxlbnM9MTddPSJjb2RlTGVucyIsZVtlLmNvZGVMZW5zRm9udEZhbWlseT0xOF09ImNvZGVMZW5zRm9udEZhbWlseSIsZVtlLmNvZGVMZW5zRm9udFNpemU9MTldPSJjb2RlTGVuc0ZvbnRTaXplIixlW2UuY29sb3JEZWNvcmF0b3JzPTIwXT0iY29sb3JEZWNvcmF0b3JzIixlW2UuY29sb3JEZWNvcmF0b3JzTGltaXQ9MjFdPSJjb2xvckRlY29yYXRvcnNMaW1pdCIsZVtlLmNvbHVtblNlbGVjdGlvbj0yMl09ImNvbHVtblNlbGVjdGlvbiIsZVtlLmNvbW1lbnRzPTIzXT0iY29tbWVudHMiLGVbZS5jb250ZXh0bWVudT0yNF09ImNvbnRleHRtZW51IixlW2UuY29weVdpdGhTeW50YXhIaWdobGlnaHRpbmc9MjVdPSJjb3B5V2l0aFN5bnRheEhpZ2hsaWdodGluZyIsZVtlLmN1cnNvckJsaW5raW5nPTI2XT0iY3Vyc29yQmxpbmtpbmciLGVbZS5jdXJzb3JTbW9vdGhDYXJldEFuaW1hdGlvbj0yN109ImN1cnNvclNtb290aENhcmV0QW5pbWF0aW9uIixlW2UuY3Vyc29yU3R5bGU9MjhdPSJjdXJzb3JTdHlsZSIsZVtlLmN1cnNvclN1cnJvdW5kaW5nTGluZXM9MjldPSJjdXJzb3JTdXJyb3VuZGluZ0xpbmVzIixlW2UuY3Vyc29yU3Vycm91bmRpbmdMaW5lc1N0eWxlPTMwXT0iY3Vyc29yU3Vycm91bmRpbmdMaW5lc1N0eWxlIixlW2UuY3Vyc29yV2lkdGg9MzFdPSJjdXJzb3JXaWR0aCIsZVtlLmRpc2FibGVMYXllckhpbnRpbmc9MzJdPSJkaXNhYmxlTGF5ZXJIaW50aW5nIixlW2UuZGlzYWJsZU1vbm9zcGFjZU9wdGltaXphdGlvbnM9MzNdPSJkaXNhYmxlTW9ub3NwYWNlT3B0aW1pemF0aW9ucyIsZVtlLmRvbVJlYWRPbmx5PTM0XT0iZG9tUmVhZE9ubHkiLGVbZS5kcmFnQW5kRHJvcD0zNV09ImRyYWdBbmREcm9wIixlW2UuZHJvcEludG9FZGl0b3I9MzZdPSJkcm9wSW50b0VkaXRvciIsZVtlLmVtcHR5U2VsZWN0aW9uQ2xpcGJvYXJkPTM3XT0iZW1wdHlTZWxlY3Rpb25DbGlwYm9hcmQiLGVbZS5leHBlcmltZW50YWxXaGl0ZXNwYWNlUmVuZGVyaW5nPTM4XT0iZXhwZXJpbWVudGFsV2hpdGVzcGFjZVJlbmRlcmluZyIsZVtlLmV4dHJhRWRpdG9yQ2xhc3NOYW1lPTM5XT0iZXh0cmFFZGl0b3JDbGFzc05hbWUiLGVbZS5mYXN0U2Nyb2xsU2Vuc2l0aXZpdHk9NDBdPSJmYXN0U2Nyb2xsU2Vuc2l0aXZpdHkiLGVbZS5maW5kPTQxXT0iZmluZCIsZVtlLmZpeGVkT3ZlcmZsb3dXaWRnZXRzPTQyXT0iZml4ZWRPdmVyZmxvd1dpZGdldHMiLGVbZS5mb2xkaW5nPTQzXT0iZm9sZGluZyIsZVtlLmZvbGRpbmdTdHJhdGVneT00NF09ImZvbGRpbmdTdHJhdGVneSIsZVtlLmZvbGRpbmdIaWdobGlnaHQ9NDVdPSJmb2xkaW5nSGlnaGxpZ2h0IixlW2UuZm9sZGluZ0ltcG9ydHNCeURlZmF1bHQ9NDZdPSJmb2xkaW5nSW1wb3J0c0J5RGVmYXVsdCIsZVtlLmZvbGRpbmdNYXhpbXVtUmVnaW9ucz00N109ImZvbGRpbmdNYXhpbXVtUmVnaW9ucyIsZVtlLnVuZm9sZE9uQ2xpY2tBZnRlckVuZE9mTGluZT00OF09InVuZm9sZE9uQ2xpY2tBZnRlckVuZE9mTGluZSIsZVtlLmZvbnRGYW1pbHk9NDldPSJmb250RmFtaWx5IixlW2UuZm9udEluZm89NTBdPSJmb250SW5mbyIsZVtlLmZvbnRMaWdhdHVyZXM9NTFdPSJmb250TGlnYXR1cmVzIixlW2UuZm9udFNpemU9NTJdPSJmb250U2l6ZSIsZVtlLmZvbnRXZWlnaHQ9NTNdPSJmb250V2VpZ2h0IixlW2UuZm9udFZhcmlhdGlvbnM9NTRdPSJmb250VmFyaWF0aW9ucyIsZVtlLmZvcm1hdE9uUGFzdGU9NTVdPSJmb3JtYXRPblBhc3RlIixlW2UuZm9ybWF0T25UeXBlPTU2XT0iZm9ybWF0T25UeXBlIixlW2UuZ2x5cGhNYXJnaW49NTddPSJnbHlwaE1hcmdpbiIsZVtlLmdvdG9Mb2NhdGlvbj01OF09ImdvdG9Mb2NhdGlvbiIsZVtlLmhpZGVDdXJzb3JJbk92ZXJ2aWV3UnVsZXI9NTldPSJoaWRlQ3Vyc29ySW5PdmVydmlld1J1bGVyIixlW2UuaG92ZXI9NjBdPSJob3ZlciIsZVtlLmluRGlmZkVkaXRvcj02MV09ImluRGlmZkVkaXRvciIsZVtlLmlubGluZVN1Z2dlc3Q9NjJdPSJpbmxpbmVTdWdnZXN0IixlW2UuaW5saW5lRWRpdD02M109ImlubGluZUVkaXQiLGVbZS5sZXR0ZXJTcGFjaW5nPTY0XT0ibGV0dGVyU3BhY2luZyIsZVtlLmxpZ2h0YnVsYj02NV09ImxpZ2h0YnVsYiIsZVtlLmxpbmVEZWNvcmF0aW9uc1dpZHRoPTY2XT0ibGluZURlY29yYXRpb25zV2lkdGgiLGVbZS5saW5lSGVpZ2h0PTY3XT0ibGluZUhlaWdodCIsZVtlLmxpbmVOdW1iZXJzPTY4XT0ibGluZU51bWJlcnMiLGVbZS5saW5lTnVtYmVyc01pbkNoYXJzPTY5XT0ibGluZU51bWJlcnNNaW5DaGFycyIsZVtlLmxpbmtlZEVkaXRpbmc9NzBdPSJsaW5rZWRFZGl0aW5nIixlW2UubGlua3M9NzFdPSJsaW5rcyIsZVtlLm1hdGNoQnJhY2tldHM9NzJdPSJtYXRjaEJyYWNrZXRzIixlW2UubWluaW1hcD03M109Im1pbmltYXAiLGVbZS5tb3VzZVN0eWxlPTc0XT0ibW91c2VTdHlsZSIsZVtlLm1vdXNlV2hlZWxTY3JvbGxTZW5zaXRpdml0eT03NV09Im1vdXNlV2hlZWxTY3JvbGxTZW5zaXRpdml0eSIsZVtlLm1vdXNlV2hlZWxab29tPTc2XT0ibW91c2VXaGVlbFpvb20iLGVbZS5tdWx0aUN1cnNvck1lcmdlT3ZlcmxhcHBpbmc9NzddPSJtdWx0aUN1cnNvck1lcmdlT3ZlcmxhcHBpbmciLGVbZS5tdWx0aUN1cnNvck1vZGlmaWVyPTc4XT0ibXVsdGlDdXJzb3JNb2RpZmllciIsZVtlLm11bHRpQ3Vyc29yUGFzdGU9NzldPSJtdWx0aUN1cnNvclBhc3RlIixlW2UubXVsdGlDdXJzb3JMaW1pdD04MF09Im11bHRpQ3Vyc29yTGltaXQiLGVbZS5vY2N1cnJlbmNlc0hpZ2hsaWdodD04MV09Im9jY3VycmVuY2VzSGlnaGxpZ2h0IixlW2Uub3ZlcnZpZXdSdWxlckJvcmRlcj04Ml09Im92ZXJ2aWV3UnVsZXJCb3JkZXIiLGVbZS5vdmVydmlld1J1bGVyTGFuZXM9ODNdPSJvdmVydmlld1J1bGVyTGFuZXMiLGVbZS5wYWRkaW5nPTg0XT0icGFkZGluZyIsZVtlLnBhc3RlQXM9ODVdPSJwYXN0ZUFzIixlW2UucGFyYW1ldGVySGludHM9ODZdPSJwYXJhbWV0ZXJIaW50cyIsZVtlLnBlZWtXaWRnZXREZWZhdWx0Rm9jdXM9ODddPSJwZWVrV2lkZ2V0RGVmYXVsdEZvY3VzIixlW2UuZGVmaW5pdGlvbkxpbmtPcGVuc0luUGVlaz04OF09ImRlZmluaXRpb25MaW5rT3BlbnNJblBlZWsiLGVbZS5xdWlja1N1Z2dlc3Rpb25zPTg5XT0icXVpY2tTdWdnZXN0aW9ucyIsZVtlLnF1aWNrU3VnZ2VzdGlvbnNEZWxheT05MF09InF1aWNrU3VnZ2VzdGlvbnNEZWxheSIsZVtlLnJlYWRPbmx5PTkxXT0icmVhZE9ubHkiLGVbZS5yZWFkT25seU1lc3NhZ2U9OTJdPSJyZWFkT25seU1lc3NhZ2UiLGVbZS5yZW5hbWVPblR5cGU9OTNdPSJyZW5hbWVPblR5cGUiLGVbZS5yZW5kZXJDb250cm9sQ2hhcmFjdGVycz05NF09InJlbmRlckNvbnRyb2xDaGFyYWN0ZXJzIixlW2UucmVuZGVyRmluYWxOZXdsaW5lPTk1XT0icmVuZGVyRmluYWxOZXdsaW5lIixlW2UucmVuZGVyTGluZUhpZ2hsaWdodD05Nl09InJlbmRlckxpbmVIaWdobGlnaHQiLGVbZS5yZW5kZXJMaW5lSGlnaGxpZ2h0T25seVdoZW5Gb2N1cz05N109InJlbmRlckxpbmVIaWdobGlnaHRPbmx5V2hlbkZvY3VzIixlW2UucmVuZGVyVmFsaWRhdGlvbkRlY29yYXRpb25zPTk4XT0icmVuZGVyVmFsaWRhdGlvbkRlY29yYXRpb25zIixlW2UucmVuZGVyV2hpdGVzcGFjZT05OV09InJlbmRlcldoaXRlc3BhY2UiLGVbZS5yZXZlYWxIb3Jpem9udGFsUmlnaHRQYWRkaW5nPTEwMF09InJldmVhbEhvcml6b250YWxSaWdodFBhZGRpbmciLGVbZS5yb3VuZGVkU2VsZWN0aW9uPTEwMV09InJvdW5kZWRTZWxlY3Rpb24iLGVbZS5ydWxlcnM9MTAyXT0icnVsZXJzIixlW2Uuc2Nyb2xsYmFyPTEwM109InNjcm9sbGJhciIsZVtlLnNjcm9sbEJleW9uZExhc3RDb2x1bW49MTA0XT0ic2Nyb2xsQmV5b25kTGFzdENvbHVtbiIsZVtlLnNjcm9sbEJleW9uZExhc3RMaW5lPTEwNV09InNjcm9sbEJleW9uZExhc3RMaW5lIixlW2Uuc2Nyb2xsUHJlZG9taW5hbnRBeGlzPTEwNl09InNjcm9sbFByZWRvbWluYW50QXhpcyIsZVtlLnNlbGVjdGlvbkNsaXBib2FyZD0xMDddPSJzZWxlY3Rpb25DbGlwYm9hcmQiLGVbZS5zZWxlY3Rpb25IaWdobGlnaHQ9MTA4XT0ic2VsZWN0aW9uSGlnaGxpZ2h0IixlW2Uuc2VsZWN0T25MaW5lTnVtYmVycz0xMDldPSJzZWxlY3RPbkxpbmVOdW1iZXJzIixlW2Uuc2hvd0ZvbGRpbmdDb250cm9scz0xMTBdPSJzaG93Rm9sZGluZ0NvbnRyb2xzIixlW2Uuc2hvd1VudXNlZD0xMTFdPSJzaG93VW51c2VkIixlW2Uuc25pcHBldFN1Z2dlc3Rpb25zPTExMl09InNuaXBwZXRTdWdnZXN0aW9ucyIsZVtlLnNtYXJ0U2VsZWN0PTExM109InNtYXJ0U2VsZWN0IixlW2Uuc21vb3RoU2Nyb2xsaW5nPTExNF09InNtb290aFNjcm9sbGluZyIsZVtlLnN0aWNreVNjcm9sbD0xMTVdPSJzdGlja3lTY3JvbGwiLGVbZS5zdGlja3lUYWJTdG9wcz0xMTZdPSJzdGlja3lUYWJTdG9wcyIsZVtlLnN0b3BSZW5kZXJpbmdMaW5lQWZ0ZXI9MTE3XT0ic3RvcFJlbmRlcmluZ0xpbmVBZnRlciIsZVtlLnN1Z2dlc3Q9MTE4XT0ic3VnZ2VzdCIsZVtlLnN1Z2dlc3RGb250U2l6ZT0xMTldPSJzdWdnZXN0Rm9udFNpemUiLGVbZS5zdWdnZXN0TGluZUhlaWdodD0xMjBdPSJzdWdnZXN0TGluZUhlaWdodCIsZVtlLnN1Z2dlc3RPblRyaWdnZXJDaGFyYWN0ZXJzPTEyMV09InN1Z2dlc3RPblRyaWdnZXJDaGFyYWN0ZXJzIixlW2Uuc3VnZ2VzdFNlbGVjdGlvbj0xMjJdPSJzdWdnZXN0U2VsZWN0aW9uIixlW2UudGFiQ29tcGxldGlvbj0xMjNdPSJ0YWJDb21wbGV0aW9uIixlW2UudGFiSW5kZXg9MTI0XT0idGFiSW5kZXgiLGVbZS51bmljb2RlSGlnaGxpZ2h0aW5nPTEyNV09InVuaWNvZGVIaWdobGlnaHRpbmciLGVbZS51bnVzdWFsTGluZVRlcm1pbmF0b3JzPTEyNl09InVudXN1YWxMaW5lVGVybWluYXRvcnMiLGVbZS51c2VTaGFkb3dET009MTI3XT0idXNlU2hhZG93RE9NIixlW2UudXNlVGFiU3RvcHM9MTI4XT0idXNlVGFiU3RvcHMiLGVbZS53b3JkQnJlYWs9MTI5XT0id29yZEJyZWFrIixlW2Uud29yZFNlcGFyYXRvcnM9MTMwXT0id29yZFNlcGFyYXRvcnMiLGVbZS53b3JkV3JhcD0xMzFdPSJ3b3JkV3JhcCIsZVtlLndvcmRXcmFwQnJlYWtBZnRlckNoYXJhY3RlcnM9MTMyXT0id29yZFdyYXBCcmVha0FmdGVyQ2hhcmFjdGVycyIsZVtlLndvcmRXcmFwQnJlYWtCZWZvcmVDaGFyYWN0ZXJzPTEzM109IndvcmRXcmFwQnJlYWtCZWZvcmVDaGFyYWN0ZXJzIixlW2Uud29yZFdyYXBDb2x1bW49MTM0XT0id29yZFdyYXBDb2x1bW4iLGVbZS53b3JkV3JhcE92ZXJyaWRlMT0xMzVdPSJ3b3JkV3JhcE92ZXJyaWRlMSIsZVtlLndvcmRXcmFwT3ZlcnJpZGUyPTEzNl09IndvcmRXcmFwT3ZlcnJpZGUyIixlW2Uud3JhcHBpbmdJbmRlbnQ9MTM3XT0id3JhcHBpbmdJbmRlbnQiLGVbZS53cmFwcGluZ1N0cmF0ZWd5PTEzOF09IndyYXBwaW5nU3RyYXRlZ3kiLGVbZS5zaG93RGVwcmVjYXRlZD0xMzldPSJzaG93RGVwcmVjYXRlZCIsZVtlLmlubGF5SGludHM9MTQwXT0iaW5sYXlIaW50cyIsZVtlLmVkaXRvckNsYXNzTmFtZT0xNDFdPSJlZGl0b3JDbGFzc05hbWUiLGVbZS5waXhlbFJhdGlvPTE0Ml09InBpeGVsUmF0aW8iLGVbZS50YWJGb2N1c01vZGU9MTQzXT0idGFiRm9jdXNNb2RlIixlW2UubGF5b3V0SW5mbz0xNDRdPSJsYXlvdXRJbmZvIixlW2Uud3JhcHBpbmdJbmZvPTE0NV09IndyYXBwaW5nSW5mbyIsZVtlLmRlZmF1bHRDb2xvckRlY29yYXRvcnM9MTQ2XT0iZGVmYXVsdENvbG9yRGVjb3JhdG9ycyIsZVtlLmNvbG9yRGVjb3JhdG9yc0FjdGl2YXRlZE9uPTE0N109ImNvbG9yRGVjb3JhdG9yc0FjdGl2YXRlZE9uIixlW2UuaW5saW5lQ29tcGxldGlvbnNBY2Nlc3NpYmlsaXR5VmVyYm9zZT0xNDhdPSJpbmxpbmVDb21wbGV0aW9uc0FjY2Vzc2liaWxpdHlWZXJib3NlIn0pKEVpfHwoRWk9e30pKTt2YXIgUmk7KGZ1bmN0aW9uKGUpe2VbZS5UZXh0RGVmaW5lZD0wXT0iVGV4dERlZmluZWQiLGVbZS5MRj0xXT0iTEYiLGVbZS5DUkxGPTJdPSJDUkxGIn0pKFJpfHwoUmk9e30pKTt2YXIgTWk7KGZ1bmN0aW9uKGUpe2VbZS5MRj0wXT0iTEYiLGVbZS5DUkxGPTFdPSJDUkxGIn0pKE1pfHwoTWk9e30pKTt2YXIgVGk7KGZ1bmN0aW9uKGUpe2VbZS5MZWZ0PTFdPSJMZWZ0IixlW2UuQ2VudGVyPTJdPSJDZW50ZXIiLGVbZS5SaWdodD0zXT0iUmlnaHQifSkoVGl8fChUaT17fSkpO3ZhciBQaTsoZnVuY3Rpb24oZSl7ZVtlLk5vbmU9MF09Ik5vbmUiLGVbZS5JbmRlbnQ9MV09IkluZGVudCIsZVtlLkluZGVudE91dGRlbnQ9Ml09IkluZGVudE91dGRlbnQiLGVbZS5PdXRkZW50PTNdPSJPdXRkZW50In0pKFBpfHwoUGk9e30pKTt2YXIgRmk7KGZ1bmN0aW9uKGUpe2VbZS5Cb3RoPTBdPSJCb3RoIixlW2UuUmlnaHQ9MV09IlJpZ2h0IixlW2UuTGVmdD0yXT0iTGVmdCIsZVtlLk5vbmU9M109Ik5vbmUifSkoRml8fChGaT17fSkpO3ZhciBJaTsoZnVuY3Rpb24oZSl7ZVtlLlR5cGU9MV09IlR5cGUiLGVbZS5QYXJhbWV0ZXI9Ml09IlBhcmFtZXRlciJ9KShJaXx8KElpPXt9KSk7dmFyIERpOyhmdW5jdGlvbihlKXtlW2UuQXV0b21hdGljPTBdPSJBdXRvbWF0aWMiLGVbZS5FeHBsaWNpdD0xXT0iRXhwbGljaXQifSkoRGl8fChEaT17fSkpO3ZhciBWaTsoZnVuY3Rpb24oZSl7ZVtlLkludm9rZT0wXT0iSW52b2tlIixlW2UuQXV0b21hdGljPTFdPSJBdXRvbWF0aWMifSkoVml8fChWaT17fSkpO3ZhciBabjsoZnVuY3Rpb24oZSl7ZVtlLkRlcGVuZHNPbktiTGF5b3V0PS0xXT0iRGVwZW5kc09uS2JMYXlvdXQiLGVbZS5Vbmtub3duPTBdPSJVbmtub3duIixlW2UuQmFja3NwYWNlPTFdPSJCYWNrc3BhY2UiLGVbZS5UYWI9Ml09IlRhYiIsZVtlLkVudGVyPTNdPSJFbnRlciIsZVtlLlNoaWZ0PTRdPSJTaGlmdCIsZVtlLkN0cmw9NV09IkN0cmwiLGVbZS5BbHQ9Nl09IkFsdCIsZVtlLlBhdXNlQnJlYWs9N109IlBhdXNlQnJlYWsiLGVbZS5DYXBzTG9jaz04XT0iQ2Fwc0xvY2siLGVbZS5Fc2NhcGU9OV09IkVzY2FwZSIsZVtlLlNwYWNlPTEwXT0iU3BhY2UiLGVbZS5QYWdlVXA9MTFdPSJQYWdlVXAiLGVbZS5QYWdlRG93bj0xMl09IlBhZ2VEb3duIixlW2UuRW5kPTEzXT0iRW5kIixlW2UuSG9tZT0xNF09IkhvbWUiLGVbZS5MZWZ0QXJyb3c9MTVdPSJMZWZ0QXJyb3ciLGVbZS5VcEFycm93PTE2XT0iVXBBcnJvdyIsZVtlLlJpZ2h0QXJyb3c9MTddPSJSaWdodEFycm93IixlW2UuRG93bkFycm93PTE4XT0iRG93bkFycm93IixlW2UuSW5zZXJ0PTE5XT0iSW5zZXJ0IixlW2UuRGVsZXRlPTIwXT0iRGVsZXRlIixlW2UuRGlnaXQwPTIxXT0iRGlnaXQwIixlW2UuRGlnaXQxPTIyXT0iRGlnaXQxIixlW2UuRGlnaXQyPTIzXT0iRGlnaXQyIixlW2UuRGlnaXQzPTI0XT0iRGlnaXQzIixlW2UuRGlnaXQ0PTI1XT0iRGlnaXQ0IixlW2UuRGlnaXQ1PTI2XT0iRGlnaXQ1IixlW2UuRGlnaXQ2PTI3XT0iRGlnaXQ2IixlW2UuRGlnaXQ3PTI4XT0iRGlnaXQ3IixlW2UuRGlnaXQ4PTI5XT0iRGlnaXQ4IixlW2UuRGlnaXQ5PTMwXT0iRGlnaXQ5IixlW2UuS2V5QT0zMV09IktleUEiLGVbZS5LZXlCPTMyXT0iS2V5QiIsZVtlLktleUM9MzNdPSJLZXlDIixlW2UuS2V5RD0zNF09IktleUQiLGVbZS5LZXlFPTM1XT0iS2V5RSIsZVtlLktleUY9MzZdPSJLZXlGIixlW2UuS2V5Rz0zN109IktleUciLGVbZS5LZXlIPTM4XT0iS2V5SCIsZVtlLktleUk9MzldPSJLZXlJIixlW2UuS2V5Sj00MF09IktleUoiLGVbZS5LZXlLPTQxXT0iS2V5SyIsZVtlLktleUw9NDJdPSJLZXlMIixlW2UuS2V5TT00M109IktleU0iLGVbZS5LZXlOPTQ0XT0iS2V5TiIsZVtlLktleU89NDVdPSJLZXlPIixlW2UuS2V5UD00Nl09IktleVAiLGVbZS5LZXlRPTQ3XT0iS2V5USIsZVtlLktleVI9NDhdPSJLZXlSIixlW2UuS2V5Uz00OV09IktleVMiLGVbZS5LZXlUPTUwXT0iS2V5VCIsZVtlLktleVU9NTFdPSJLZXlVIixlW2UuS2V5Vj01Ml09IktleVYiLGVbZS5LZXlXPTUzXT0iS2V5VyIsZVtlLktleVg9NTRdPSJLZXlYIixlW2UuS2V5WT01NV09IktleVkiLGVbZS5LZXlaPTU2XT0iS2V5WiIsZVtlLk1ldGE9NTddPSJNZXRhIixlW2UuQ29udGV4dE1lbnU9NThdPSJDb250ZXh0TWVudSIsZVtlLkYxPTU5XT0iRjEiLGVbZS5GMj02MF09IkYyIixlW2UuRjM9NjFdPSJGMyIsZVtlLkY0PTYyXT0iRjQiLGVbZS5GNT02M109IkY1IixlW2UuRjY9NjRdPSJGNiIsZVtlLkY3PTY1XT0iRjciLGVbZS5GOD02Nl09IkY4IixlW2UuRjk9NjddPSJGOSIsZVtlLkYxMD02OF09IkYxMCIsZVtlLkYxMT02OV09IkYxMSIsZVtlLkYxMj03MF09IkYxMiIsZVtlLkYxMz03MV09IkYxMyIsZVtlLkYxND03Ml09IkYxNCIsZVtlLkYxNT03M109IkYxNSIsZVtlLkYxNj03NF09IkYxNiIsZVtlLkYxNz03NV09IkYxNyIsZVtlLkYxOD03Nl09IkYxOCIsZVtlLkYxOT03N109IkYxOSIsZVtlLkYyMD03OF09IkYyMCIsZVtlLkYyMT03OV09IkYyMSIsZVtlLkYyMj04MF09IkYyMiIsZVtlLkYyMz04MV09IkYyMyIsZVtlLkYyND04Ml09IkYyNCIsZVtlLk51bUxvY2s9ODNdPSJOdW1Mb2NrIixlW2UuU2Nyb2xsTG9jaz04NF09IlNjcm9sbExvY2siLGVbZS5TZW1pY29sb249ODVdPSJTZW1pY29sb24iLGVbZS5FcXVhbD04Nl09IkVxdWFsIixlW2UuQ29tbWE9ODddPSJDb21tYSIsZVtlLk1pbnVzPTg4XT0iTWludXMiLGVbZS5QZXJpb2Q9ODldPSJQZXJpb2QiLGVbZS5TbGFzaD05MF09IlNsYXNoIixlW2UuQmFja3F1b3RlPTkxXT0iQmFja3F1b3RlIixlW2UuQnJhY2tldExlZnQ9OTJdPSJCcmFja2V0TGVmdCIsZVtlLkJhY2tzbGFzaD05M109IkJhY2tzbGFzaCIsZVtlLkJyYWNrZXRSaWdodD05NF09IkJyYWNrZXRSaWdodCIsZVtlLlF1b3RlPTk1XT0iUXVvdGUiLGVbZS5PRU1fOD05Nl09Ik9FTV84IixlW2UuSW50bEJhY2tzbGFzaD05N109IkludGxCYWNrc2xhc2giLGVbZS5OdW1wYWQwPTk4XT0iTnVtcGFkMCIsZVtlLk51bXBhZDE9OTldPSJOdW1wYWQxIixlW2UuTnVtcGFkMj0xMDBdPSJOdW1wYWQyIixlW2UuTnVtcGFkMz0xMDFdPSJOdW1wYWQzIixlW2UuTnVtcGFkND0xMDJdPSJOdW1wYWQ0IixlW2UuTnVtcGFkNT0xMDNdPSJOdW1wYWQ1IixlW2UuTnVtcGFkNj0xMDRdPSJOdW1wYWQ2IixlW2UuTnVtcGFkNz0xMDVdPSJOdW1wYWQ3IixlW2UuTnVtcGFkOD0xMDZdPSJOdW1wYWQ4IixlW2UuTnVtcGFkOT0xMDddPSJOdW1wYWQ5IixlW2UuTnVtcGFkTXVsdGlwbHk9MTA4XT0iTnVtcGFkTXVsdGlwbHkiLGVbZS5OdW1wYWRBZGQ9MTA5XT0iTnVtcGFkQWRkIixlW2UuTlVNUEFEX1NFUEFSQVRPUj0xMTBdPSJOVU1QQURfU0VQQVJBVE9SIixlW2UuTnVtcGFkU3VidHJhY3Q9MTExXT0iTnVtcGFkU3VidHJhY3QiLGVbZS5OdW1wYWREZWNpbWFsPTExMl09Ik51bXBhZERlY2ltYWwiLGVbZS5OdW1wYWREaXZpZGU9MTEzXT0iTnVtcGFkRGl2aWRlIixlW2UuS0VZX0lOX0NPTVBPU0lUSU9OPTExNF09IktFWV9JTl9DT01QT1NJVElPTiIsZVtlLkFCTlRfQzE9MTE1XT0iQUJOVF9DMSIsZVtlLkFCTlRfQzI9MTE2XT0iQUJOVF9DMiIsZVtlLkF1ZGlvVm9sdW1lTXV0ZT0xMTddPSJBdWRpb1ZvbHVtZU11dGUiLGVbZS5BdWRpb1ZvbHVtZVVwPTExOF09IkF1ZGlvVm9sdW1lVXAiLGVbZS5BdWRpb1ZvbHVtZURvd249MTE5XT0iQXVkaW9Wb2x1bWVEb3duIixlW2UuQnJvd3NlclNlYXJjaD0xMjBdPSJCcm93c2VyU2VhcmNoIixlW2UuQnJvd3NlckhvbWU9MTIxXT0iQnJvd3NlckhvbWUiLGVbZS5Ccm93c2VyQmFjaz0xMjJdPSJCcm93c2VyQmFjayIsZVtlLkJyb3dzZXJGb3J3YXJkPTEyM109IkJyb3dzZXJGb3J3YXJkIixlW2UuTWVkaWFUcmFja05leHQ9MTI0XT0iTWVkaWFUcmFja05leHQiLGVbZS5NZWRpYVRyYWNrUHJldmlvdXM9MTI1XT0iTWVkaWFUcmFja1ByZXZpb3VzIixlW2UuTWVkaWFTdG9wPTEyNl09Ik1lZGlhU3RvcCIsZVtlLk1lZGlhUGxheVBhdXNlPTEyN109Ik1lZGlhUGxheVBhdXNlIixlW2UuTGF1bmNoTWVkaWFQbGF5ZXI9MTI4XT0iTGF1bmNoTWVkaWFQbGF5ZXIiLGVbZS5MYXVuY2hNYWlsPTEyOV09IkxhdW5jaE1haWwiLGVbZS5MYXVuY2hBcHAyPTEzMF09IkxhdW5jaEFwcDIiLGVbZS5DbGVhcj0xMzFdPSJDbGVhciIsZVtlLk1BWF9WQUxVRT0xMzJdPSJNQVhfVkFMVUUifSkoWm58fChabj17fSkpO3ZhciBZbjsoZnVuY3Rpb24oZSl7ZVtlLkhpbnQ9MV09IkhpbnQiLGVbZS5JbmZvPTJdPSJJbmZvIixlW2UuV2FybmluZz00XT0iV2FybmluZyIsZVtlLkVycm9yPThdPSJFcnJvciJ9KShZbnx8KFluPXt9KSk7dmFyIEtuOyhmdW5jdGlvbihlKXtlW2UuVW5uZWNlc3Nhcnk9MV09IlVubmVjZXNzYXJ5IixlW2UuRGVwcmVjYXRlZD0yXT0iRGVwcmVjYXRlZCJ9KShLbnx8KEtuPXt9KSk7dmFyIE9pOyhmdW5jdGlvbihlKXtlW2UuSW5saW5lPTFdPSJJbmxpbmUiLGVbZS5HdXR0ZXI9Ml09Ikd1dHRlciJ9KShPaXx8KE9pPXt9KSk7dmFyIFVpOyhmdW5jdGlvbihlKXtlW2UuVU5LTk9XTj0wXT0iVU5LTk9XTiIsZVtlLlRFWFRBUkVBPTFdPSJURVhUQVJFQSIsZVtlLkdVVFRFUl9HTFlQSF9NQVJHSU49Ml09IkdVVFRFUl9HTFlQSF9NQVJHSU4iLGVbZS5HVVRURVJfTElORV9OVU1CRVJTPTNdPSJHVVRURVJfTElORV9OVU1CRVJTIixlW2UuR1VUVEVSX0xJTkVfREVDT1JBVElPTlM9NF09IkdVVFRFUl9MSU5FX0RFQ09SQVRJT05TIixlW2UuR1VUVEVSX1ZJRVdfWk9ORT01XT0iR1VUVEVSX1ZJRVdfWk9ORSIsZVtlLkNPTlRFTlRfVEVYVD02XT0iQ09OVEVOVF9URVhUIixlW2UuQ09OVEVOVF9FTVBUWT03XT0iQ09OVEVOVF9FTVBUWSIsZVtlLkNPTlRFTlRfVklFV19aT05FPThdPSJDT05URU5UX1ZJRVdfWk9ORSIsZVtlLkNPTlRFTlRfV0lER0VUPTldPSJDT05URU5UX1dJREdFVCIsZVtlLk9WRVJWSUVXX1JVTEVSPTEwXT0iT1ZFUlZJRVdfUlVMRVIiLGVbZS5TQ1JPTExCQVI9MTFdPSJTQ1JPTExCQVIiLGVbZS5PVkVSTEFZX1dJREdFVD0xMl09Ik9WRVJMQVlfV0lER0VUIixlW2UuT1VUU0lERV9FRElUT1I9MTNdPSJPVVRTSURFX0VESVRPUiJ9KShVaXx8KFVpPXt9KSk7dmFyIGppOyhmdW5jdGlvbihlKXtlW2UuQUlHZW5lcmF0ZWQ9MV09IkFJR2VuZXJhdGVkIn0pKGppfHwoamk9e30pKTt2YXIgcWk7KGZ1bmN0aW9uKGUpe2VbZS5UT1BfUklHSFRfQ09STkVSPTBdPSJUT1BfUklHSFRfQ09STkVSIixlW2UuQk9UVE9NX1JJR0hUX0NPUk5FUj0xXT0iQk9UVE9NX1JJR0hUX0NPUk5FUiIsZVtlLlRPUF9DRU5URVI9Ml09IlRPUF9DRU5URVIifSkocWl8fChxaT17fSkpO3ZhciBCaTsoZnVuY3Rpb24oZSl7ZVtlLkxlZnQ9MV09IkxlZnQiLGVbZS5DZW50ZXI9Ml09IkNlbnRlciIsZVtlLlJpZ2h0PTRdPSJSaWdodCIsZVtlLkZ1bGw9N109IkZ1bGwifSkoQml8fChCaT17fSkpO3ZhciAkaTsoZnVuY3Rpb24oZSl7ZVtlLkxlZnQ9MF09IkxlZnQiLGVbZS5SaWdodD0xXT0iUmlnaHQiLGVbZS5Ob25lPTJdPSJOb25lIixlW2UuTGVmdE9mSW5qZWN0ZWRUZXh0PTNdPSJMZWZ0T2ZJbmplY3RlZFRleHQiLGVbZS5SaWdodE9mSW5qZWN0ZWRUZXh0PTRdPSJSaWdodE9mSW5qZWN0ZWRUZXh0In0pKCRpfHwoJGk9e30pKTt2YXIgV2k7KGZ1bmN0aW9uKGUpe2VbZS5PZmY9MF09Ik9mZiIsZVtlLk9uPTFdPSJPbiIsZVtlLlJlbGF0aXZlPTJdPSJSZWxhdGl2ZSIsZVtlLkludGVydmFsPTNdPSJJbnRlcnZhbCIsZVtlLkN1c3RvbT00XT0iQ3VzdG9tIn0pKFdpfHwoV2k9e30pKTt2YXIgSGk7KGZ1bmN0aW9uKGUpe2VbZS5Ob25lPTBdPSJOb25lIixlW2UuVGV4dD0xXT0iVGV4dCIsZVtlLkJsb2Nrcz0yXT0iQmxvY2tzIn0pKEhpfHwoSGk9e30pKTt2YXIgemk7KGZ1bmN0aW9uKGUpe2VbZS5TbW9vdGg9MF09IlNtb290aCIsZVtlLkltbWVkaWF0ZT0xXT0iSW1tZWRpYXRlIn0pKHppfHwoemk9e30pKTt2YXIgR2k7KGZ1bmN0aW9uKGUpe2VbZS5BdXRvPTFdPSJBdXRvIixlW2UuSGlkZGVuPTJdPSJIaWRkZW4iLGVbZS5WaXNpYmxlPTNdPSJWaXNpYmxlIn0pKEdpfHwoR2k9e30pKTt2YXIgZXI7KGZ1bmN0aW9uKGUpe2VbZS5MVFI9MF09IkxUUiIsZVtlLlJUTD0xXT0iUlRMIn0pKGVyfHwoZXI9e30pKTt2YXIgSmk7KGZ1bmN0aW9uKGUpe2UuT2ZmPSJvZmYiLGUuT25Db2RlPSJvbkNvZGUiLGUuT249Im9uIn0pKEppfHwoSmk9e30pKTt2YXIgWGk7KGZ1bmN0aW9uKGUpe2VbZS5JbnZva2U9MV09Ikludm9rZSIsZVtlLlRyaWdnZXJDaGFyYWN0ZXI9Ml09IlRyaWdnZXJDaGFyYWN0ZXIiLGVbZS5Db250ZW50Q2hhbmdlPTNdPSJDb250ZW50Q2hhbmdlIn0pKFhpfHwoWGk9e30pKTt2YXIgUWk7KGZ1bmN0aW9uKGUpe2VbZS5GaWxlPTBdPSJGaWxlIixlW2UuTW9kdWxlPTFdPSJNb2R1bGUiLGVbZS5OYW1lc3BhY2U9Ml09Ik5hbWVzcGFjZSIsZVtlLlBhY2thZ2U9M109IlBhY2thZ2UiLGVbZS5DbGFzcz00XT0iQ2xhc3MiLGVbZS5NZXRob2Q9NV09Ik1ldGhvZCIsZVtlLlByb3BlcnR5PTZdPSJQcm9wZXJ0eSIsZVtlLkZpZWxkPTddPSJGaWVsZCIsZVtlLkNvbnN0cnVjdG9yPThdPSJDb25zdHJ1Y3RvciIsZVtlLkVudW09OV09IkVudW0iLGVbZS5JbnRlcmZhY2U9MTBdPSJJbnRlcmZhY2UiLGVbZS5GdW5jdGlvbj0xMV09IkZ1bmN0aW9uIixlW2UuVmFyaWFibGU9MTJdPSJWYXJpYWJsZSIsZVtlLkNvbnN0YW50PTEzXT0iQ29uc3RhbnQiLGVbZS5TdHJpbmc9MTRdPSJTdHJpbmciLGVbZS5OdW1iZXI9MTVdPSJOdW1iZXIiLGVbZS5Cb29sZWFuPTE2XT0iQm9vbGVhbiIsZVtlLkFycmF5PTE3XT0iQXJyYXkiLGVbZS5PYmplY3Q9MThdPSJPYmplY3QiLGVbZS5LZXk9MTldPSJLZXkiLGVbZS5OdWxsPTIwXT0iTnVsbCIsZVtlLkVudW1NZW1iZXI9MjFdPSJFbnVtTWVtYmVyIixlW2UuU3RydWN0PTIyXT0iU3RydWN0IixlW2UuRXZlbnQ9MjNdPSJFdmVudCIsZVtlLk9wZXJhdG9yPTI0XT0iT3BlcmF0b3IiLGVbZS5UeXBlUGFyYW1ldGVyPTI1XT0iVHlwZVBhcmFtZXRlciJ9KShRaXx8KFFpPXt9KSk7dmFyIFppOyhmdW5jdGlvbihlKXtlW2UuRGVwcmVjYXRlZD0xXT0iRGVwcmVjYXRlZCJ9KShaaXx8KFppPXt9KSk7dmFyIFlpOyhmdW5jdGlvbihlKXtlW2UuSGlkZGVuPTBdPSJIaWRkZW4iLGVbZS5CbGluaz0xXT0iQmxpbmsiLGVbZS5TbW9vdGg9Ml09IlNtb290aCIsZVtlLlBoYXNlPTNdPSJQaGFzZSIsZVtlLkV4cGFuZD00XT0iRXhwYW5kIixlW2UuU29saWQ9NV09IlNvbGlkIn0pKFlpfHwoWWk9e30pKTt2YXIgS2k7KGZ1bmN0aW9uKGUpe2VbZS5MaW5lPTFdPSJMaW5lIixlW2UuQmxvY2s9Ml09IkJsb2NrIixlW2UuVW5kZXJsaW5lPTNdPSJVbmRlcmxpbmUiLGVbZS5MaW5lVGhpbj00XT0iTGluZVRoaW4iLGVbZS5CbG9ja091dGxpbmU9NV09IkJsb2NrT3V0bGluZSIsZVtlLlVuZGVybGluZVRoaW49Nl09IlVuZGVybGluZVRoaW4ifSkoS2l8fChLaT17fSkpO3ZhciBlczsoZnVuY3Rpb24oZSl7ZVtlLkFsd2F5c0dyb3dzV2hlblR5cGluZ0F0RWRnZXM9MF09IkFsd2F5c0dyb3dzV2hlblR5cGluZ0F0RWRnZXMiLGVbZS5OZXZlckdyb3dzV2hlblR5cGluZ0F0RWRnZXM9MV09Ik5ldmVyR3Jvd3NXaGVuVHlwaW5nQXRFZGdlcyIsZVtlLkdyb3dzT25seVdoZW5UeXBpbmdCZWZvcmU9Ml09Ikdyb3dzT25seVdoZW5UeXBpbmdCZWZvcmUiLGVbZS5Hcm93c09ubHlXaGVuVHlwaW5nQWZ0ZXI9M109Ikdyb3dzT25seVdoZW5UeXBpbmdBZnRlciJ9KShlc3x8KGVzPXt9KSk7dmFyIHRzOyhmdW5jdGlvbihlKXtlW2UuTm9uZT0wXT0iTm9uZSIsZVtlLlNhbWU9MV09IlNhbWUiLGVbZS5JbmRlbnQ9Ml09IkluZGVudCIsZVtlLkRlZXBJbmRlbnQ9M109IkRlZXBJbmRlbnQifSkodHN8fCh0cz17fSkpO2NsYXNzIE10e3N0YXRpYyBjaG9yZCh0LG4pe3JldHVybiBlbCh0LG4pfX1NdC5DdHJsQ21kPTIwNDgsTXQuU2hpZnQ9MTAyNCxNdC5BbHQ9NTEyLE10LldpbkN0cmw9MjU2O2Z1bmN0aW9uIGlsKCl7cmV0dXJue2VkaXRvcjp2b2lkIDAsbGFuZ3VhZ2VzOnZvaWQgMCxDYW5jZWxsYXRpb25Ub2tlblNvdXJjZTpRbyxFbWl0dGVyOkFlLEtleUNvZGU6Wm4sS2V5TW9kOk10LFBvc2l0aW9uOlBlLFJhbmdlOnNlLFNlbGVjdGlvbjp4ZSxTZWxlY3Rpb25EaXJlY3Rpb246ZXIsTWFya2VyU2V2ZXJpdHk6WW4sTWFya2VyVGFnOktuLFVyaTpxbixUb2tlbjpybH19dmFyIG5zOyhmdW5jdGlvbihlKXtlW2UuTGVmdD0xXT0iTGVmdCIsZVtlLkNlbnRlcj0yXT0iQ2VudGVyIixlW2UuUmlnaHQ9NF09IlJpZ2h0IixlW2UuRnVsbD03XT0iRnVsbCJ9KShuc3x8KG5zPXt9KSk7dmFyIHJzOyhmdW5jdGlvbihlKXtlW2UuTGVmdD0xXT0iTGVmdCIsZVtlLkNlbnRlcj0yXT0iQ2VudGVyIixlW2UuUmlnaHQ9M109IlJpZ2h0In0pKHJzfHwocnM9e30pKTt2YXIgaXM7KGZ1bmN0aW9uKGUpe2VbZS5JbmxpbmU9MV09IklubGluZSIsZVtlLkd1dHRlcj0yXT0iR3V0dGVyIn0pKGlzfHwoaXM9e30pKTt2YXIgc3M7KGZ1bmN0aW9uKGUpe2VbZS5Cb3RoPTBdPSJCb3RoIixlW2UuUmlnaHQ9MV09IlJpZ2h0IixlW2UuTGVmdD0yXT0iTGVmdCIsZVtlLk5vbmU9M109Ik5vbmUifSkoc3N8fChzcz17fSkpO2Z1bmN0aW9uIHNsKGUsdCxuLHIsaSl7aWYocj09PTApcmV0dXJuITA7Y29uc3Qgcz10LmNoYXJDb2RlQXQoci0xKTtpZihlLmdldChzKSE9PTB8fHM9PT0xM3x8cz09PTEwKXJldHVybiEwO2lmKGk+MCl7Y29uc3QgYT10LmNoYXJDb2RlQXQocik7aWYoZS5nZXQoYSkhPT0wKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIGFsKGUsdCxuLHIsaSl7aWYocitpPT09bilyZXR1cm4hMDtjb25zdCBzPXQuY2hhckNvZGVBdChyK2kpO2lmKGUuZ2V0KHMpIT09MHx8cz09PTEzfHxzPT09MTApcmV0dXJuITA7aWYoaT4wKXtjb25zdCBhPXQuY2hhckNvZGVBdChyK2ktMSk7aWYoZS5nZXQoYSkhPT0wKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIG9sKGUsdCxuLHIsaSl7cmV0dXJuIHNsKGUsdCxuLHIsaSkmJmFsKGUsdCxuLHIsaSl9Y2xhc3MgbGx7Y29uc3RydWN0b3IodCxuKXt0aGlzLl93b3JkU2VwYXJhdG9ycz10LHRoaXMuX3NlYXJjaFJlZ2V4PW4sdGhpcy5fcHJldk1hdGNoU3RhcnRJbmRleD0tMSx0aGlzLl9wcmV2TWF0Y2hMZW5ndGg9MH1yZXNldCh0KXt0aGlzLl9zZWFyY2hSZWdleC5sYXN0SW5kZXg9dCx0aGlzLl9wcmV2TWF0Y2hTdGFydEluZGV4PS0xLHRoaXMuX3ByZXZNYXRjaExlbmd0aD0wfW5leHQodCl7Y29uc3Qgbj10Lmxlbmd0aDtsZXQgcjtkb3tpZih0aGlzLl9wcmV2TWF0Y2hTdGFydEluZGV4K3RoaXMuX3ByZXZNYXRjaExlbmd0aD09PW58fChyPXRoaXMuX3NlYXJjaFJlZ2V4LmV4ZWModCksIXIpKXJldHVybiBudWxsO2NvbnN0IGk9ci5pbmRleCxzPXJbMF0ubGVuZ3RoO2lmKGk9PT10aGlzLl9wcmV2TWF0Y2hTdGFydEluZGV4JiZzPT09dGhpcy5fcHJldk1hdGNoTGVuZ3RoKXtpZihzPT09MCl7bm8odCxuLHRoaXMuX3NlYXJjaFJlZ2V4Lmxhc3RJbmRleCk+NjU1MzU/dGhpcy5fc2VhcmNoUmVnZXgubGFzdEluZGV4Kz0yOnRoaXMuX3NlYXJjaFJlZ2V4Lmxhc3RJbmRleCs9MTtjb250aW51ZX1yZXR1cm4gbnVsbH1pZih0aGlzLl9wcmV2TWF0Y2hTdGFydEluZGV4PWksdGhpcy5fcHJldk1hdGNoTGVuZ3RoPXMsIXRoaXMuX3dvcmRTZXBhcmF0b3JzfHxvbCh0aGlzLl93b3JkU2VwYXJhdG9ycyx0LG4saSxzKSlyZXR1cm4gcn13aGlsZShyKTtyZXR1cm4gbnVsbH19ZnVuY3Rpb24gdWwoZSx0PSJVbnJlYWNoYWJsZSIpe3Rocm93IG5ldyBFcnJvcih0KX1mdW5jdGlvbiBjbihlKXtlKCl8fChlKCksSXIobmV3ICRlKCJBc3NlcnRpb24gRmFpbGVkIikpKX1mdW5jdGlvbiBhcyhlLHQpe2xldCBuPTA7Zm9yKDtuPGUubGVuZ3RoLTE7KXtjb25zdCByPWVbbl0saT1lW24rMV07aWYoIXQocixpKSlyZXR1cm4hMTtuKyt9cmV0dXJuITB9Y2xhc3MgY2x7c3RhdGljIGNvbXB1dGVVbmljb2RlSGlnaGxpZ2h0cyh0LG4scil7Y29uc3QgaT1yP3Iuc3RhcnRMaW5lTnVtYmVyOjEscz1yP3IuZW5kTGluZU51bWJlcjp0LmdldExpbmVDb3VudCgpLGE9bmV3IG9zKG4pLG89YS5nZXRDYW5kaWRhdGVDb2RlUG9pbnRzKCk7bGV0IGw7bz09PSJhbGxOb25CYXNpY0FzY2lpIj9sPW5ldyBSZWdFeHAoIlteXFx0XFxuXFxyXFx4MjAtXFx4N0VdIiwiZyIpOmw9bmV3IFJlZ0V4cChgJHtmbChBcnJheS5mcm9tKG8pKX1gLCJnIik7Y29uc3QgdT1uZXcgbGwobnVsbCxsKSxmPVtdO2xldCBoPSExLGQsZz0wLG09MCx2PTA7ZTpmb3IobGV0IHA9aSx4PXM7cDw9eDtwKyspe2NvbnN0IHk9dC5nZXRMaW5lQ29udGVudChwKSxiPXkubGVuZ3RoO3UucmVzZXQoMCk7ZG8gaWYoZD11Lm5leHQoeSksZCl7bGV0IE49ZC5pbmRleCxTPWQuaW5kZXgrZFswXS5sZW5ndGg7aWYoTj4wKXtjb25zdCBSPXkuY2hhckNvZGVBdChOLTEpO09uKFIpJiZOLS19aWYoUysxPGIpe2NvbnN0IFI9eS5jaGFyQ29kZUF0KFMtMSk7T24oUikmJlMrK31jb25zdCB3PXkuc3Vic3RyaW5nKE4sUyk7bGV0IEw9V24oTisxLHJpLHksMCk7TCYmTC5lbmRDb2x1bW48PU4rMSYmKEw9bnVsbCk7Y29uc3QgQT1hLnNob3VsZEhpZ2hsaWdodE5vbkJhc2ljQVNDSUkodyxMP0wud29yZDpudWxsKTtpZihBIT09MCl7aWYoQT09PTM/ZysrOkE9PT0yP20rKzpBPT09MT92Kys6dWwoKSxmLmxlbmd0aD49MWUzKXtoPSEwO2JyZWFrIGV9Zi5wdXNoKG5ldyBzZShwLE4rMSxwLFMrMSkpfX13aGlsZShkKX1yZXR1cm57cmFuZ2VzOmYsaGFzTW9yZTpoLGFtYmlndW91c0NoYXJhY3RlckNvdW50OmcsaW52aXNpYmxlQ2hhcmFjdGVyQ291bnQ6bSxub25CYXNpY0FzY2lpQ2hhcmFjdGVyQ291bnQ6dn19c3RhdGljIGNvbXB1dGVVbmljb2RlSGlnaGxpZ2h0UmVhc29uKHQsbil7Y29uc3Qgcj1uZXcgb3Mobik7c3dpdGNoKHIuc2hvdWxkSGlnaGxpZ2h0Tm9uQmFzaWNBU0NJSSh0LG51bGwpKXtjYXNlIDA6cmV0dXJuIG51bGw7Y2FzZSAyOnJldHVybntraW5kOjF9O2Nhc2UgMzp7Y29uc3Qgcz10LmNvZGVQb2ludEF0KDApLGE9ci5hbWJpZ3VvdXNDaGFyYWN0ZXJzLmdldFByaW1hcnlDb25mdXNhYmxlKHMpLG89bnQuZ2V0TG9jYWxlcygpLmZpbHRlcihsPT4hbnQuZ2V0SW5zdGFuY2UobmV3IFNldChbLi4ubi5hbGxvd2VkTG9jYWxlcyxsXSkpLmlzQW1iaWd1b3VzKHMpKTtyZXR1cm57a2luZDowLGNvbmZ1c2FibGVXaXRoOlN0cmluZy5mcm9tQ29kZVBvaW50KGEpLG5vdEFtYmlndW91c0luTG9jYWxlczpvfX1jYXNlIDE6cmV0dXJue2tpbmQ6Mn19fX1mdW5jdGlvbiBmbChlLHQpe3JldHVybmBbJHtRYShlLm1hcChyPT5TdHJpbmcuZnJvbUNvZGVQb2ludChyKSkuam9pbigiIikpfV1gfWNsYXNzIG9ze2NvbnN0cnVjdG9yKHQpe3RoaXMub3B0aW9ucz10LHRoaXMuYWxsb3dlZENvZGVQb2ludHM9bmV3IFNldCh0LmFsbG93ZWRDb2RlUG9pbnRzKSx0aGlzLmFtYmlndW91c0NoYXJhY3RlcnM9bnQuZ2V0SW5zdGFuY2UobmV3IFNldCh0LmFsbG93ZWRMb2NhbGVzKSl9Z2V0Q2FuZGlkYXRlQ29kZVBvaW50cygpe2lmKHRoaXMub3B0aW9ucy5ub25CYXNpY0FTQ0lJKXJldHVybiJhbGxOb25CYXNpY0FzY2lpIjtjb25zdCB0PW5ldyBTZXQ7aWYodGhpcy5vcHRpb25zLmludmlzaWJsZUNoYXJhY3RlcnMpZm9yKGNvbnN0IG4gb2YgV2UuY29kZVBvaW50cylscyhTdHJpbmcuZnJvbUNvZGVQb2ludChuKSl8fHQuYWRkKG4pO2lmKHRoaXMub3B0aW9ucy5hbWJpZ3VvdXNDaGFyYWN0ZXJzKWZvcihjb25zdCBuIG9mIHRoaXMuYW1iaWd1b3VzQ2hhcmFjdGVycy5nZXRDb25mdXNhYmxlQ29kZVBvaW50cygpKXQuYWRkKG4pO2Zvcihjb25zdCBuIG9mIHRoaXMuYWxsb3dlZENvZGVQb2ludHMpdC5kZWxldGUobik7cmV0dXJuIHR9c2hvdWxkSGlnaGxpZ2h0Tm9uQmFzaWNBU0NJSSh0LG4pe2NvbnN0IHI9dC5jb2RlUG9pbnRBdCgwKTtpZih0aGlzLmFsbG93ZWRDb2RlUG9pbnRzLmhhcyhyKSlyZXR1cm4gMDtpZih0aGlzLm9wdGlvbnMubm9uQmFzaWNBU0NJSSlyZXR1cm4gMTtsZXQgaT0hMSxzPSExO2lmKG4pZm9yKGNvbnN0IGEgb2Ygbil7Y29uc3Qgbz1hLmNvZGVQb2ludEF0KDApLGw9aW8oYSk7aT1pfHxsLCFsJiYhdGhpcy5hbWJpZ3VvdXNDaGFyYWN0ZXJzLmlzQW1iaWd1b3VzKG8pJiYhV2UuaXNJbnZpc2libGVDaGFyYWN0ZXIobykmJihzPSEwKX1yZXR1cm4haSYmcz8wOnRoaXMub3B0aW9ucy5pbnZpc2libGVDaGFyYWN0ZXJzJiYhbHModCkmJldlLmlzSW52aXNpYmxlQ2hhcmFjdGVyKHIpPzI6dGhpcy5vcHRpb25zLmFtYmlndW91c0NoYXJhY3RlcnMmJnRoaXMuYW1iaWd1b3VzQ2hhcmFjdGVycy5pc0FtYmlndW91cyhyKT8zOjB9fWZ1bmN0aW9uIGxzKGUpe3JldHVybiBlPT09IiAifHxlPT09YApgfHxlPT09IgkifWNsYXNzIGZue2NvbnN0cnVjdG9yKHQsbixyKXt0aGlzLmNoYW5nZXM9dCx0aGlzLm1vdmVzPW4sdGhpcy5oaXRUaW1lb3V0PXJ9fWNsYXNzIGhse2NvbnN0cnVjdG9yKHQsbil7dGhpcy5saW5lUmFuZ2VNYXBwaW5nPXQsdGhpcy5jaGFuZ2VzPW59fWNsYXNzIEh7c3RhdGljIGFkZFJhbmdlKHQsbil7bGV0IHI9MDtmb3IoO3I8bi5sZW5ndGgmJm5bcl0uZW5kRXhjbHVzaXZlPHQuc3RhcnQ7KXIrKztsZXQgaT1yO2Zvcig7aTxuLmxlbmd0aCYmbltpXS5zdGFydDw9dC5lbmRFeGNsdXNpdmU7KWkrKztpZihyPT09aSluLnNwbGljZShyLDAsdCk7ZWxzZXtjb25zdCBzPU1hdGgubWluKHQuc3RhcnQsbltyXS5zdGFydCksYT1NYXRoLm1heCh0LmVuZEV4Y2x1c2l2ZSxuW2ktMV0uZW5kRXhjbHVzaXZlKTtuLnNwbGljZShyLGktcixuZXcgSChzLGEpKX19c3RhdGljIG9mTGVuZ3RoKHQpe3JldHVybiBuZXcgSCgwLHQpfXN0YXRpYyBvZlN0YXJ0QW5kTGVuZ3RoKHQsbil7cmV0dXJuIG5ldyBIKHQsdCtuKX1jb25zdHJ1Y3Rvcih0LG4pe2lmKHRoaXMuc3RhcnQ9dCx0aGlzLmVuZEV4Y2x1c2l2ZT1uLHQ+bil0aHJvdyBuZXcgJGUoYEludmFsaWQgcmFuZ2U6ICR7dGhpcy50b1N0cmluZygpfWApfWdldCBpc0VtcHR5KCl7cmV0dXJuIHRoaXMuc3RhcnQ9PT10aGlzLmVuZEV4Y2x1c2l2ZX1kZWx0YSh0KXtyZXR1cm4gbmV3IEgodGhpcy5zdGFydCt0LHRoaXMuZW5kRXhjbHVzaXZlK3QpfWRlbHRhU3RhcnQodCl7cmV0dXJuIG5ldyBIKHRoaXMuc3RhcnQrdCx0aGlzLmVuZEV4Y2x1c2l2ZSl9ZGVsdGFFbmQodCl7cmV0dXJuIG5ldyBIKHRoaXMuc3RhcnQsdGhpcy5lbmRFeGNsdXNpdmUrdCl9Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLmVuZEV4Y2x1c2l2ZS10aGlzLnN0YXJ0fXRvU3RyaW5nKCl7cmV0dXJuYFske3RoaXMuc3RhcnR9LCAke3RoaXMuZW5kRXhjbHVzaXZlfSlgfWNvbnRhaW5zKHQpe3JldHVybiB0aGlzLnN0YXJ0PD10JiZ0PHRoaXMuZW5kRXhjbHVzaXZlfWpvaW4odCl7cmV0dXJuIG5ldyBIKE1hdGgubWluKHRoaXMuc3RhcnQsdC5zdGFydCksTWF0aC5tYXgodGhpcy5lbmRFeGNsdXNpdmUsdC5lbmRFeGNsdXNpdmUpKX1pbnRlcnNlY3QodCl7Y29uc3Qgbj1NYXRoLm1heCh0aGlzLnN0YXJ0LHQuc3RhcnQpLHI9TWF0aC5taW4odGhpcy5lbmRFeGNsdXNpdmUsdC5lbmRFeGNsdXNpdmUpO2lmKG48PXIpcmV0dXJuIG5ldyBIKG4scil9aW50ZXJzZWN0cyh0KXtjb25zdCBuPU1hdGgubWF4KHRoaXMuc3RhcnQsdC5zdGFydCkscj1NYXRoLm1pbih0aGlzLmVuZEV4Y2x1c2l2ZSx0LmVuZEV4Y2x1c2l2ZSk7cmV0dXJuIG48cn1pc0JlZm9yZSh0KXtyZXR1cm4gdGhpcy5lbmRFeGNsdXNpdmU8PXQuc3RhcnR9aXNBZnRlcih0KXtyZXR1cm4gdGhpcy5zdGFydD49dC5lbmRFeGNsdXNpdmV9c2xpY2UodCl7cmV0dXJuIHQuc2xpY2UodGhpcy5zdGFydCx0aGlzLmVuZEV4Y2x1c2l2ZSl9Y2xpcCh0KXtpZih0aGlzLmlzRW1wdHkpdGhyb3cgbmV3ICRlKGBJbnZhbGlkIGNsaXBwaW5nIHJhbmdlOiAke3RoaXMudG9TdHJpbmcoKX1gKTtyZXR1cm4gTWF0aC5tYXgodGhpcy5zdGFydCxNYXRoLm1pbih0aGlzLmVuZEV4Y2x1c2l2ZS0xLHQpKX1jbGlwQ3ljbGljKHQpe2lmKHRoaXMuaXNFbXB0eSl0aHJvdyBuZXcgJGUoYEludmFsaWQgY2xpcHBpbmcgcmFuZ2U6ICR7dGhpcy50b1N0cmluZygpfWApO3JldHVybiB0PHRoaXMuc3RhcnQ/dGhpcy5lbmRFeGNsdXNpdmUtKHRoaXMuc3RhcnQtdCkldGhpcy5sZW5ndGg6dD49dGhpcy5lbmRFeGNsdXNpdmU/dGhpcy5zdGFydCsodC10aGlzLnN0YXJ0KSV0aGlzLmxlbmd0aDp0fWZvckVhY2godCl7Zm9yKGxldCBuPXRoaXMuc3RhcnQ7bjx0aGlzLmVuZEV4Y2x1c2l2ZTtuKyspdChuKX19ZnVuY3Rpb24geHQoZSx0KXtjb25zdCBuPVR0KGUsdCk7cmV0dXJuIG49PT0tMT92b2lkIDA6ZVtuXX1mdW5jdGlvbiBUdChlLHQsbj0wLHI9ZS5sZW5ndGgpe2xldCBpPW4scz1yO2Zvcig7aTxzOyl7Y29uc3QgYT1NYXRoLmZsb29yKChpK3MpLzIpO3QoZVthXSk/aT1hKzE6cz1hfXJldHVybiBpLTF9ZnVuY3Rpb24gZGwoZSx0KXtjb25zdCBuPXRyKGUsdCk7cmV0dXJuIG49PT1lLmxlbmd0aD92b2lkIDA6ZVtuXX1mdW5jdGlvbiB0cihlLHQsbj0wLHI9ZS5sZW5ndGgpe2xldCBpPW4scz1yO2Zvcig7aTxzOyl7Y29uc3QgYT1NYXRoLmZsb29yKChpK3MpLzIpO3QoZVthXSk/cz1hOmk9YSsxfXJldHVybiBpfWNsYXNzIFB0e2NvbnN0cnVjdG9yKHQpe3RoaXMuX2FycmF5PXQsdGhpcy5fZmluZExhc3RNb25vdG9ub3VzTGFzdElkeD0wfWZpbmRMYXN0TW9ub3Rvbm91cyh0KXtpZihQdC5hc3NlcnRJbnZhcmlhbnRzKXtpZih0aGlzLl9wcmV2RmluZExhc3RQcmVkaWNhdGUpe2Zvcihjb25zdCByIG9mIHRoaXMuX2FycmF5KWlmKHRoaXMuX3ByZXZGaW5kTGFzdFByZWRpY2F0ZShyKSYmIXQocikpdGhyb3cgbmV3IEVycm9yKCJNb25vdG9ub3VzQXJyYXk6IGN1cnJlbnQgcHJlZGljYXRlIG11c3QgYmUgd2Vha2VyIHRoYW4gKG9yIGVxdWFsIHRvKSB0aGUgcHJldmlvdXMgcHJlZGljYXRlLiIpfXRoaXMuX3ByZXZGaW5kTGFzdFByZWRpY2F0ZT10fWNvbnN0IG49VHQodGhpcy5fYXJyYXksdCx0aGlzLl9maW5kTGFzdE1vbm90b25vdXNMYXN0SWR4KTtyZXR1cm4gdGhpcy5fZmluZExhc3RNb25vdG9ub3VzTGFzdElkeD1uKzEsbj09PS0xP3ZvaWQgMDp0aGlzLl9hcnJheVtuXX19UHQuYXNzZXJ0SW52YXJpYW50cz0hMTtjbGFzcyBHe3N0YXRpYyBmcm9tUmFuZ2VJbmNsdXNpdmUodCl7cmV0dXJuIG5ldyBHKHQuc3RhcnRMaW5lTnVtYmVyLHQuZW5kTGluZU51bWJlcisxKX1zdGF0aWMgam9pbk1hbnkodCl7aWYodC5sZW5ndGg9PT0wKXJldHVybltdO2xldCBuPW5ldyBGZSh0WzBdLnNsaWNlKCkpO2ZvcihsZXQgcj0xO3I8dC5sZW5ndGg7cisrKW49bi5nZXRVbmlvbihuZXcgRmUodFtyXS5zbGljZSgpKSk7cmV0dXJuIG4ucmFuZ2VzfXN0YXRpYyBvZkxlbmd0aCh0LG4pe3JldHVybiBuZXcgRyh0LHQrbil9c3RhdGljIGRlc2VyaWFsaXplKHQpe3JldHVybiBuZXcgRyh0WzBdLHRbMV0pfWNvbnN0cnVjdG9yKHQsbil7aWYodD5uKXRocm93IG5ldyAkZShgc3RhcnRMaW5lTnVtYmVyICR7dH0gY2Fubm90IGJlIGFmdGVyIGVuZExpbmVOdW1iZXJFeGNsdXNpdmUgJHtufWApO3RoaXMuc3RhcnRMaW5lTnVtYmVyPXQsdGhpcy5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlPW59Y29udGFpbnModCl7cmV0dXJuIHRoaXMuc3RhcnRMaW5lTnVtYmVyPD10JiZ0PHRoaXMuZW5kTGluZU51bWJlckV4Y2x1c2l2ZX1nZXQgaXNFbXB0eSgpe3JldHVybiB0aGlzLnN0YXJ0TGluZU51bWJlcj09PXRoaXMuZW5kTGluZU51bWJlckV4Y2x1c2l2ZX1kZWx0YSh0KXtyZXR1cm4gbmV3IEcodGhpcy5zdGFydExpbmVOdW1iZXIrdCx0aGlzLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUrdCl9ZGVsdGFMZW5ndGgodCl7cmV0dXJuIG5ldyBHKHRoaXMuc3RhcnRMaW5lTnVtYmVyLHRoaXMuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSt0KX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuZW5kTGluZU51bWJlckV4Y2x1c2l2ZS10aGlzLnN0YXJ0TGluZU51bWJlcn1qb2luKHQpe3JldHVybiBuZXcgRyhNYXRoLm1pbih0aGlzLnN0YXJ0TGluZU51bWJlcix0LnN0YXJ0TGluZU51bWJlciksTWF0aC5tYXgodGhpcy5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLHQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSkpfXRvU3RyaW5nKCl7cmV0dXJuYFske3RoaXMuc3RhcnRMaW5lTnVtYmVyfSwke3RoaXMuZW5kTGluZU51bWJlckV4Y2x1c2l2ZX0pYH1pbnRlcnNlY3QodCl7Y29uc3Qgbj1NYXRoLm1heCh0aGlzLnN0YXJ0TGluZU51bWJlcix0LnN0YXJ0TGluZU51bWJlcikscj1NYXRoLm1pbih0aGlzLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUsdC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlKTtpZihuPD1yKXJldHVybiBuZXcgRyhuLHIpfWludGVyc2VjdHNTdHJpY3QodCl7cmV0dXJuIHRoaXMuc3RhcnRMaW5lTnVtYmVyPHQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSYmdC5zdGFydExpbmVOdW1iZXI8dGhpcy5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlfW92ZXJsYXBPclRvdWNoKHQpe3JldHVybiB0aGlzLnN0YXJ0TGluZU51bWJlcjw9dC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlJiZ0LnN0YXJ0TGluZU51bWJlcjw9dGhpcy5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlfWVxdWFscyh0KXtyZXR1cm4gdGhpcy5zdGFydExpbmVOdW1iZXI9PT10LnN0YXJ0TGluZU51bWJlciYmdGhpcy5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlPT09dC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlfXRvSW5jbHVzaXZlUmFuZ2UoKXtyZXR1cm4gdGhpcy5pc0VtcHR5P251bGw6bmV3IHNlKHRoaXMuc3RhcnRMaW5lTnVtYmVyLDEsdGhpcy5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLTEsTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpfXRvRXhjbHVzaXZlUmFuZ2UoKXtyZXR1cm4gbmV3IHNlKHRoaXMuc3RhcnRMaW5lTnVtYmVyLDEsdGhpcy5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLDEpfW1hcFRvTGluZUFycmF5KHQpe2NvbnN0IG49W107Zm9yKGxldCByPXRoaXMuc3RhcnRMaW5lTnVtYmVyO3I8dGhpcy5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlO3IrKyluLnB1c2godChyKSk7cmV0dXJuIG59Zm9yRWFjaCh0KXtmb3IobGV0IG49dGhpcy5zdGFydExpbmVOdW1iZXI7bjx0aGlzLmVuZExpbmVOdW1iZXJFeGNsdXNpdmU7bisrKXQobil9c2VyaWFsaXplKCl7cmV0dXJuW3RoaXMuc3RhcnRMaW5lTnVtYmVyLHRoaXMuZW5kTGluZU51bWJlckV4Y2x1c2l2ZV19aW5jbHVkZXModCl7cmV0dXJuIHRoaXMuc3RhcnRMaW5lTnVtYmVyPD10JiZ0PHRoaXMuZW5kTGluZU51bWJlckV4Y2x1c2l2ZX10b09mZnNldFJhbmdlKCl7cmV0dXJuIG5ldyBIKHRoaXMuc3RhcnRMaW5lTnVtYmVyLTEsdGhpcy5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLTEpfX1jbGFzcyBGZXtjb25zdHJ1Y3Rvcih0PVtdKXt0aGlzLl9ub3JtYWxpemVkUmFuZ2VzPXR9Z2V0IHJhbmdlcygpe3JldHVybiB0aGlzLl9ub3JtYWxpemVkUmFuZ2VzfWFkZFJhbmdlKHQpe2lmKHQubGVuZ3RoPT09MClyZXR1cm47Y29uc3Qgbj10cih0aGlzLl9ub3JtYWxpemVkUmFuZ2VzLGk9PmkuZW5kTGluZU51bWJlckV4Y2x1c2l2ZT49dC5zdGFydExpbmVOdW1iZXIpLHI9VHQodGhpcy5fbm9ybWFsaXplZFJhbmdlcyxpPT5pLnN0YXJ0TGluZU51bWJlcjw9dC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlKSsxO2lmKG49PT1yKXRoaXMuX25vcm1hbGl6ZWRSYW5nZXMuc3BsaWNlKG4sMCx0KTtlbHNlIGlmKG49PT1yLTEpe2NvbnN0IGk9dGhpcy5fbm9ybWFsaXplZFJhbmdlc1tuXTt0aGlzLl9ub3JtYWxpemVkUmFuZ2VzW25dPWkuam9pbih0KX1lbHNle2NvbnN0IGk9dGhpcy5fbm9ybWFsaXplZFJhbmdlc1tuXS5qb2luKHRoaXMuX25vcm1hbGl6ZWRSYW5nZXNbci0xXSkuam9pbih0KTt0aGlzLl9ub3JtYWxpemVkUmFuZ2VzLnNwbGljZShuLHItbixpKX19Y29udGFpbnModCl7Y29uc3Qgbj14dCh0aGlzLl9ub3JtYWxpemVkUmFuZ2VzLHI9PnIuc3RhcnRMaW5lTnVtYmVyPD10KTtyZXR1cm4hIW4mJm4uZW5kTGluZU51bWJlckV4Y2x1c2l2ZT50fWludGVyc2VjdHModCl7Y29uc3Qgbj14dCh0aGlzLl9ub3JtYWxpemVkUmFuZ2VzLHI9PnIuc3RhcnRMaW5lTnVtYmVyPHQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSk7cmV0dXJuISFuJiZuLmVuZExpbmVOdW1iZXJFeGNsdXNpdmU+dC5zdGFydExpbmVOdW1iZXJ9Z2V0VW5pb24odCl7aWYodGhpcy5fbm9ybWFsaXplZFJhbmdlcy5sZW5ndGg9PT0wKXJldHVybiB0O2lmKHQuX25vcm1hbGl6ZWRSYW5nZXMubGVuZ3RoPT09MClyZXR1cm4gdGhpcztjb25zdCBuPVtdO2xldCByPTAsaT0wLHM9bnVsbDtmb3IoO3I8dGhpcy5fbm9ybWFsaXplZFJhbmdlcy5sZW5ndGh8fGk8dC5fbm9ybWFsaXplZFJhbmdlcy5sZW5ndGg7KXtsZXQgYT1udWxsO2lmKHI8dGhpcy5fbm9ybWFsaXplZFJhbmdlcy5sZW5ndGgmJmk8dC5fbm9ybWFsaXplZFJhbmdlcy5sZW5ndGgpe2NvbnN0IG89dGhpcy5fbm9ybWFsaXplZFJhbmdlc1tyXSxsPXQuX25vcm1hbGl6ZWRSYW5nZXNbaV07by5zdGFydExpbmVOdW1iZXI8bC5zdGFydExpbmVOdW1iZXI/KGE9byxyKyspOihhPWwsaSsrKX1lbHNlIHI8dGhpcy5fbm9ybWFsaXplZFJhbmdlcy5sZW5ndGg/KGE9dGhpcy5fbm9ybWFsaXplZFJhbmdlc1tyXSxyKyspOihhPXQuX25vcm1hbGl6ZWRSYW5nZXNbaV0saSsrKTtzPT09bnVsbD9zPWE6cy5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlPj1hLnN0YXJ0TGluZU51bWJlcj9zPW5ldyBHKHMuc3RhcnRMaW5lTnVtYmVyLE1hdGgubWF4KHMuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSxhLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUpKToobi5wdXNoKHMpLHM9YSl9cmV0dXJuIHMhPT1udWxsJiZuLnB1c2gocyksbmV3IEZlKG4pfXN1YnRyYWN0RnJvbSh0KXtjb25zdCBuPXRyKHRoaXMuX25vcm1hbGl6ZWRSYW5nZXMsYT0+YS5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlPj10LnN0YXJ0TGluZU51bWJlcikscj1UdCh0aGlzLl9ub3JtYWxpemVkUmFuZ2VzLGE9PmEuc3RhcnRMaW5lTnVtYmVyPD10LmVuZExpbmVOdW1iZXJFeGNsdXNpdmUpKzE7aWYobj09PXIpcmV0dXJuIG5ldyBGZShbdF0pO2NvbnN0IGk9W107bGV0IHM9dC5zdGFydExpbmVOdW1iZXI7Zm9yKGxldCBhPW47YTxyO2ErKyl7Y29uc3Qgbz10aGlzLl9ub3JtYWxpemVkUmFuZ2VzW2FdO28uc3RhcnRMaW5lTnVtYmVyPnMmJmkucHVzaChuZXcgRyhzLG8uc3RhcnRMaW5lTnVtYmVyKSkscz1vLmVuZExpbmVOdW1iZXJFeGNsdXNpdmV9cmV0dXJuIHM8dC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlJiZpLnB1c2gobmV3IEcocyx0LmVuZExpbmVOdW1iZXJFeGNsdXNpdmUpKSxuZXcgRmUoaSl9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5fbm9ybWFsaXplZFJhbmdlcy5tYXAodD0+dC50b1N0cmluZygpKS5qb2luKCIsICIpfWdldEludGVyc2VjdGlvbih0KXtjb25zdCBuPVtdO2xldCByPTAsaT0wO2Zvcig7cjx0aGlzLl9ub3JtYWxpemVkUmFuZ2VzLmxlbmd0aCYmaTx0Ll9ub3JtYWxpemVkUmFuZ2VzLmxlbmd0aDspe2NvbnN0IHM9dGhpcy5fbm9ybWFsaXplZFJhbmdlc1tyXSxhPXQuX25vcm1hbGl6ZWRSYW5nZXNbaV0sbz1zLmludGVyc2VjdChhKTtvJiYhby5pc0VtcHR5JiZuLnB1c2gobykscy5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlPGEuZW5kTGluZU51bWJlckV4Y2x1c2l2ZT9yKys6aSsrfXJldHVybiBuZXcgRmUobil9Z2V0V2l0aERlbHRhKHQpe3JldHVybiBuZXcgRmUodGhpcy5fbm9ybWFsaXplZFJhbmdlcy5tYXAobj0+bi5kZWx0YSh0KSkpfX1jbGFzcyBFZXtzdGF0aWMgaW52ZXJzZSh0LG4scil7Y29uc3QgaT1bXTtsZXQgcz0xLGE9MTtmb3IoY29uc3QgbCBvZiB0KXtjb25zdCB1PW5ldyBFZShuZXcgRyhzLGwub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyKSxuZXcgRyhhLGwubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyKSk7dS5tb2RpZmllZC5pc0VtcHR5fHxpLnB1c2godSkscz1sLm9yaWdpbmFsLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUsYT1sLm1vZGlmaWVkLmVuZExpbmVOdW1iZXJFeGNsdXNpdmV9Y29uc3Qgbz1uZXcgRWUobmV3IEcocyxuKzEpLG5ldyBHKGEscisxKSk7cmV0dXJuIG8ubW9kaWZpZWQuaXNFbXB0eXx8aS5wdXNoKG8pLGl9c3RhdGljIGNsaXAodCxuLHIpe2NvbnN0IGk9W107Zm9yKGNvbnN0IHMgb2YgdCl7Y29uc3QgYT1zLm9yaWdpbmFsLmludGVyc2VjdChuKSxvPXMubW9kaWZpZWQuaW50ZXJzZWN0KHIpO2EmJiFhLmlzRW1wdHkmJm8mJiFvLmlzRW1wdHkmJmkucHVzaChuZXcgRWUoYSxvKSl9cmV0dXJuIGl9Y29uc3RydWN0b3IodCxuKXt0aGlzLm9yaWdpbmFsPXQsdGhpcy5tb2RpZmllZD1ufXRvU3RyaW5nKCl7cmV0dXJuYHske3RoaXMub3JpZ2luYWwudG9TdHJpbmcoKX0tPiR7dGhpcy5tb2RpZmllZC50b1N0cmluZygpfX1gfWZsaXAoKXtyZXR1cm4gbmV3IEVlKHRoaXMubW9kaWZpZWQsdGhpcy5vcmlnaW5hbCl9am9pbih0KXtyZXR1cm4gbmV3IEVlKHRoaXMub3JpZ2luYWwuam9pbih0Lm9yaWdpbmFsKSx0aGlzLm1vZGlmaWVkLmpvaW4odC5tb2RpZmllZCkpfX1jbGFzcyBydCBleHRlbmRzIEVle2NvbnN0cnVjdG9yKHQsbixyKXtzdXBlcih0LG4pLHRoaXMuaW5uZXJDaGFuZ2VzPXJ9ZmxpcCgpe3ZhciB0O3JldHVybiBuZXcgcnQodGhpcy5tb2RpZmllZCx0aGlzLm9yaWdpbmFsLCh0PXRoaXMuaW5uZXJDaGFuZ2VzKT09PW51bGx8fHQ9PT12b2lkIDA/dm9pZCAwOnQubWFwKG49Pm4uZmxpcCgpKSl9fWNsYXNzIEZ0e2NvbnN0cnVjdG9yKHQsbil7dGhpcy5vcmlnaW5hbFJhbmdlPXQsdGhpcy5tb2RpZmllZFJhbmdlPW59dG9TdHJpbmcoKXtyZXR1cm5geyR7dGhpcy5vcmlnaW5hbFJhbmdlLnRvU3RyaW5nKCl9LT4ke3RoaXMubW9kaWZpZWRSYW5nZS50b1N0cmluZygpfX1gfWZsaXAoKXtyZXR1cm4gbmV3IEZ0KHRoaXMubW9kaWZpZWRSYW5nZSx0aGlzLm9yaWdpbmFsUmFuZ2UpfX1jb25zdCBnbD0zO2NsYXNzIG1se2NvbXB1dGVEaWZmKHQsbixyKXt2YXIgaTtjb25zdCBhPW5ldyBibCh0LG4se21heENvbXB1dGF0aW9uVGltZTpyLm1heENvbXB1dGF0aW9uVGltZU1zLHNob3VsZElnbm9yZVRyaW1XaGl0ZXNwYWNlOnIuaWdub3JlVHJpbVdoaXRlc3BhY2Usc2hvdWxkQ29tcHV0ZUNoYXJDaGFuZ2VzOiEwLHNob3VsZE1ha2VQcmV0dHlEaWZmOiEwLHNob3VsZFBvc3RQcm9jZXNzQ2hhckNoYW5nZXM6ITB9KS5jb21wdXRlRGlmZigpLG89W107bGV0IGw9bnVsbDtmb3IoY29uc3QgdSBvZiBhLmNoYW5nZXMpe2xldCBmO3Uub3JpZ2luYWxFbmRMaW5lTnVtYmVyPT09MD9mPW5ldyBHKHUub3JpZ2luYWxTdGFydExpbmVOdW1iZXIrMSx1Lm9yaWdpbmFsU3RhcnRMaW5lTnVtYmVyKzEpOmY9bmV3IEcodS5vcmlnaW5hbFN0YXJ0TGluZU51bWJlcix1Lm9yaWdpbmFsRW5kTGluZU51bWJlcisxKTtsZXQgaDt1Lm1vZGlmaWVkRW5kTGluZU51bWJlcj09PTA/aD1uZXcgRyh1Lm1vZGlmaWVkU3RhcnRMaW5lTnVtYmVyKzEsdS5tb2RpZmllZFN0YXJ0TGluZU51bWJlcisxKTpoPW5ldyBHKHUubW9kaWZpZWRTdGFydExpbmVOdW1iZXIsdS5tb2RpZmllZEVuZExpbmVOdW1iZXIrMSk7bGV0IGQ9bmV3IHJ0KGYsaCwoaT11LmNoYXJDaGFuZ2VzKT09PW51bGx8fGk9PT12b2lkIDA/dm9pZCAwOmkubWFwKGc9Pm5ldyBGdChuZXcgc2UoZy5vcmlnaW5hbFN0YXJ0TGluZU51bWJlcixnLm9yaWdpbmFsU3RhcnRDb2x1bW4sZy5vcmlnaW5hbEVuZExpbmVOdW1iZXIsZy5vcmlnaW5hbEVuZENvbHVtbiksbmV3IHNlKGcubW9kaWZpZWRTdGFydExpbmVOdW1iZXIsZy5tb2RpZmllZFN0YXJ0Q29sdW1uLGcubW9kaWZpZWRFbmRMaW5lTnVtYmVyLGcubW9kaWZpZWRFbmRDb2x1bW4pKSkpO2wmJihsLm1vZGlmaWVkLmVuZExpbmVOdW1iZXJFeGNsdXNpdmU9PT1kLm1vZGlmaWVkLnN0YXJ0TGluZU51bWJlcnx8bC5vcmlnaW5hbC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlPT09ZC5vcmlnaW5hbC5zdGFydExpbmVOdW1iZXIpJiYoZD1uZXcgcnQobC5vcmlnaW5hbC5qb2luKGQub3JpZ2luYWwpLGwubW9kaWZpZWQuam9pbihkLm1vZGlmaWVkKSxsLmlubmVyQ2hhbmdlcyYmZC5pbm5lckNoYW5nZXM/bC5pbm5lckNoYW5nZXMuY29uY2F0KGQuaW5uZXJDaGFuZ2VzKTp2b2lkIDApLG8ucG9wKCkpLG8ucHVzaChkKSxsPWR9cmV0dXJuIGNuKCgpPT5hcyhvLCh1LGYpPT5mLm9yaWdpbmFsLnN0YXJ0TGluZU51bWJlci11Lm9yaWdpbmFsLmVuZExpbmVOdW1iZXJFeGNsdXNpdmU9PT1mLm1vZGlmaWVkLnN0YXJ0TGluZU51bWJlci11Lm1vZGlmaWVkLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUmJnUub3JpZ2luYWwuZW5kTGluZU51bWJlckV4Y2x1c2l2ZTxmLm9yaWdpbmFsLnN0YXJ0TGluZU51bWJlciYmdS5tb2RpZmllZC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlPGYubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyKSksbmV3IGZuKG8sW10sYS5xdWl0RWFybHkpfX1mdW5jdGlvbiB1cyhlLHQsbixyKXtyZXR1cm4gbmV3IHplKGUsdCxuKS5Db21wdXRlRGlmZihyKX1sZXQgY3M9Y2xhc3N7Y29uc3RydWN0b3IodCl7Y29uc3Qgbj1bXSxyPVtdO2ZvcihsZXQgaT0wLHM9dC5sZW5ndGg7aTxzO2krKyluW2ldPW5yKHRbaV0sMSkscltpXT1ycih0W2ldLDEpO3RoaXMubGluZXM9dCx0aGlzLl9zdGFydENvbHVtbnM9bix0aGlzLl9lbmRDb2x1bW5zPXJ9Z2V0RWxlbWVudHMoKXtjb25zdCB0PVtdO2ZvcihsZXQgbj0wLHI9dGhpcy5saW5lcy5sZW5ndGg7bjxyO24rKyl0W25dPXRoaXMubGluZXNbbl0uc3Vic3RyaW5nKHRoaXMuX3N0YXJ0Q29sdW1uc1tuXS0xLHRoaXMuX2VuZENvbHVtbnNbbl0tMSk7cmV0dXJuIHR9Z2V0U3RyaWN0RWxlbWVudCh0KXtyZXR1cm4gdGhpcy5saW5lc1t0XX1nZXRTdGFydExpbmVOdW1iZXIodCl7cmV0dXJuIHQrMX1nZXRFbmRMaW5lTnVtYmVyKHQpe3JldHVybiB0KzF9Y3JlYXRlQ2hhclNlcXVlbmNlKHQsbixyKXtjb25zdCBpPVtdLHM9W10sYT1bXTtsZXQgbz0wO2ZvcihsZXQgbD1uO2w8PXI7bCsrKXtjb25zdCB1PXRoaXMubGluZXNbbF0sZj10P3RoaXMuX3N0YXJ0Q29sdW1uc1tsXToxLGg9dD90aGlzLl9lbmRDb2x1bW5zW2xdOnUubGVuZ3RoKzE7Zm9yKGxldCBkPWY7ZDxoO2QrKylpW29dPXUuY2hhckNvZGVBdChkLTEpLHNbb109bCsxLGFbb109ZCxvKys7IXQmJmw8ciYmKGlbb109MTAsc1tvXT1sKzEsYVtvXT11Lmxlbmd0aCsxLG8rKyl9cmV0dXJuIG5ldyBwbChpLHMsYSl9fTtjbGFzcyBwbHtjb25zdHJ1Y3Rvcih0LG4scil7dGhpcy5fY2hhckNvZGVzPXQsdGhpcy5fbGluZU51bWJlcnM9bix0aGlzLl9jb2x1bW5zPXJ9dG9TdHJpbmcoKXtyZXR1cm4iWyIrdGhpcy5fY2hhckNvZGVzLm1hcCgodCxuKT0+KHQ9PT0xMD8iXFxuIjpTdHJpbmcuZnJvbUNoYXJDb2RlKHQpKStgLSgke3RoaXMuX2xpbmVOdW1iZXJzW25dfSwke3RoaXMuX2NvbHVtbnNbbl19KWApLmpvaW4oIiwgIikrIl0ifV9hc3NlcnRJbmRleCh0LG4pe2lmKHQ8MHx8dD49bi5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJJbGxlZ2FsIGluZGV4Iil9Z2V0RWxlbWVudHMoKXtyZXR1cm4gdGhpcy5fY2hhckNvZGVzfWdldFN0YXJ0TGluZU51bWJlcih0KXtyZXR1cm4gdD4wJiZ0PT09dGhpcy5fbGluZU51bWJlcnMubGVuZ3RoP3RoaXMuZ2V0RW5kTGluZU51bWJlcih0LTEpOih0aGlzLl9hc3NlcnRJbmRleCh0LHRoaXMuX2xpbmVOdW1iZXJzKSx0aGlzLl9saW5lTnVtYmVyc1t0XSl9Z2V0RW5kTGluZU51bWJlcih0KXtyZXR1cm4gdD09PS0xP3RoaXMuZ2V0U3RhcnRMaW5lTnVtYmVyKHQrMSk6KHRoaXMuX2Fzc2VydEluZGV4KHQsdGhpcy5fbGluZU51bWJlcnMpLHRoaXMuX2NoYXJDb2Rlc1t0XT09PTEwP3RoaXMuX2xpbmVOdW1iZXJzW3RdKzE6dGhpcy5fbGluZU51bWJlcnNbdF0pfWdldFN0YXJ0Q29sdW1uKHQpe3JldHVybiB0PjAmJnQ9PT10aGlzLl9jb2x1bW5zLmxlbmd0aD90aGlzLmdldEVuZENvbHVtbih0LTEpOih0aGlzLl9hc3NlcnRJbmRleCh0LHRoaXMuX2NvbHVtbnMpLHRoaXMuX2NvbHVtbnNbdF0pfWdldEVuZENvbHVtbih0KXtyZXR1cm4gdD09PS0xP3RoaXMuZ2V0U3RhcnRDb2x1bW4odCsxKToodGhpcy5fYXNzZXJ0SW5kZXgodCx0aGlzLl9jb2x1bW5zKSx0aGlzLl9jaGFyQ29kZXNbdF09PT0xMD8xOnRoaXMuX2NvbHVtbnNbdF0rMSl9fWNsYXNzIHl0e2NvbnN0cnVjdG9yKHQsbixyLGkscyxhLG8sbCl7dGhpcy5vcmlnaW5hbFN0YXJ0TGluZU51bWJlcj10LHRoaXMub3JpZ2luYWxTdGFydENvbHVtbj1uLHRoaXMub3JpZ2luYWxFbmRMaW5lTnVtYmVyPXIsdGhpcy5vcmlnaW5hbEVuZENvbHVtbj1pLHRoaXMubW9kaWZpZWRTdGFydExpbmVOdW1iZXI9cyx0aGlzLm1vZGlmaWVkU3RhcnRDb2x1bW49YSx0aGlzLm1vZGlmaWVkRW5kTGluZU51bWJlcj1vLHRoaXMubW9kaWZpZWRFbmRDb2x1bW49bH1zdGF0aWMgY3JlYXRlRnJvbURpZmZDaGFuZ2UodCxuLHIpe2NvbnN0IGk9bi5nZXRTdGFydExpbmVOdW1iZXIodC5vcmlnaW5hbFN0YXJ0KSxzPW4uZ2V0U3RhcnRDb2x1bW4odC5vcmlnaW5hbFN0YXJ0KSxhPW4uZ2V0RW5kTGluZU51bWJlcih0Lm9yaWdpbmFsU3RhcnQrdC5vcmlnaW5hbExlbmd0aC0xKSxvPW4uZ2V0RW5kQ29sdW1uKHQub3JpZ2luYWxTdGFydCt0Lm9yaWdpbmFsTGVuZ3RoLTEpLGw9ci5nZXRTdGFydExpbmVOdW1iZXIodC5tb2RpZmllZFN0YXJ0KSx1PXIuZ2V0U3RhcnRDb2x1bW4odC5tb2RpZmllZFN0YXJ0KSxmPXIuZ2V0RW5kTGluZU51bWJlcih0Lm1vZGlmaWVkU3RhcnQrdC5tb2RpZmllZExlbmd0aC0xKSxoPXIuZ2V0RW5kQ29sdW1uKHQubW9kaWZpZWRTdGFydCt0Lm1vZGlmaWVkTGVuZ3RoLTEpO3JldHVybiBuZXcgeXQoaSxzLGEsbyxsLHUsZixoKX19ZnVuY3Rpb24gdmwoZSl7aWYoZS5sZW5ndGg8PTEpcmV0dXJuIGU7Y29uc3QgdD1bZVswXV07bGV0IG49dFswXTtmb3IobGV0IHI9MSxpPWUubGVuZ3RoO3I8aTtyKyspe2NvbnN0IHM9ZVtyXSxhPXMub3JpZ2luYWxTdGFydC0obi5vcmlnaW5hbFN0YXJ0K24ub3JpZ2luYWxMZW5ndGgpLG89cy5tb2RpZmllZFN0YXJ0LShuLm1vZGlmaWVkU3RhcnQrbi5tb2RpZmllZExlbmd0aCk7TWF0aC5taW4oYSxvKTxnbD8obi5vcmlnaW5hbExlbmd0aD1zLm9yaWdpbmFsU3RhcnQrcy5vcmlnaW5hbExlbmd0aC1uLm9yaWdpbmFsU3RhcnQsbi5tb2RpZmllZExlbmd0aD1zLm1vZGlmaWVkU3RhcnQrcy5tb2RpZmllZExlbmd0aC1uLm1vZGlmaWVkU3RhcnQpOih0LnB1c2gocyksbj1zKX1yZXR1cm4gdH1jbGFzcyBJdHtjb25zdHJ1Y3Rvcih0LG4scixpLHMpe3RoaXMub3JpZ2luYWxTdGFydExpbmVOdW1iZXI9dCx0aGlzLm9yaWdpbmFsRW5kTGluZU51bWJlcj1uLHRoaXMubW9kaWZpZWRTdGFydExpbmVOdW1iZXI9cix0aGlzLm1vZGlmaWVkRW5kTGluZU51bWJlcj1pLHRoaXMuY2hhckNoYW5nZXM9c31zdGF0aWMgY3JlYXRlRnJvbURpZmZSZXN1bHQodCxuLHIsaSxzLGEsbyl7bGV0IGwsdSxmLGgsZDtpZihuLm9yaWdpbmFsTGVuZ3RoPT09MD8obD1yLmdldFN0YXJ0TGluZU51bWJlcihuLm9yaWdpbmFsU3RhcnQpLTEsdT0wKToobD1yLmdldFN0YXJ0TGluZU51bWJlcihuLm9yaWdpbmFsU3RhcnQpLHU9ci5nZXRFbmRMaW5lTnVtYmVyKG4ub3JpZ2luYWxTdGFydCtuLm9yaWdpbmFsTGVuZ3RoLTEpKSxuLm1vZGlmaWVkTGVuZ3RoPT09MD8oZj1pLmdldFN0YXJ0TGluZU51bWJlcihuLm1vZGlmaWVkU3RhcnQpLTEsaD0wKTooZj1pLmdldFN0YXJ0TGluZU51bWJlcihuLm1vZGlmaWVkU3RhcnQpLGg9aS5nZXRFbmRMaW5lTnVtYmVyKG4ubW9kaWZpZWRTdGFydCtuLm1vZGlmaWVkTGVuZ3RoLTEpKSxhJiZuLm9yaWdpbmFsTGVuZ3RoPjAmJm4ub3JpZ2luYWxMZW5ndGg8MjAmJm4ubW9kaWZpZWRMZW5ndGg+MCYmbi5tb2RpZmllZExlbmd0aDwyMCYmcygpKXtjb25zdCBnPXIuY3JlYXRlQ2hhclNlcXVlbmNlKHQsbi5vcmlnaW5hbFN0YXJ0LG4ub3JpZ2luYWxTdGFydCtuLm9yaWdpbmFsTGVuZ3RoLTEpLG09aS5jcmVhdGVDaGFyU2VxdWVuY2UodCxuLm1vZGlmaWVkU3RhcnQsbi5tb2RpZmllZFN0YXJ0K24ubW9kaWZpZWRMZW5ndGgtMSk7aWYoZy5nZXRFbGVtZW50cygpLmxlbmd0aD4wJiZtLmdldEVsZW1lbnRzKCkubGVuZ3RoPjApe2xldCB2PXVzKGcsbSxzLCEwKS5jaGFuZ2VzO28mJih2PXZsKHYpKSxkPVtdO2ZvcihsZXQgcD0wLHg9di5sZW5ndGg7cDx4O3ArKylkLnB1c2goeXQuY3JlYXRlRnJvbURpZmZDaGFuZ2UodltwXSxnLG0pKX19cmV0dXJuIG5ldyBJdChsLHUsZixoLGQpfX1jbGFzcyBibHtjb25zdHJ1Y3Rvcih0LG4scil7dGhpcy5zaG91bGRDb21wdXRlQ2hhckNoYW5nZXM9ci5zaG91bGRDb21wdXRlQ2hhckNoYW5nZXMsdGhpcy5zaG91bGRQb3N0UHJvY2Vzc0NoYXJDaGFuZ2VzPXIuc2hvdWxkUG9zdFByb2Nlc3NDaGFyQ2hhbmdlcyx0aGlzLnNob3VsZElnbm9yZVRyaW1XaGl0ZXNwYWNlPXIuc2hvdWxkSWdub3JlVHJpbVdoaXRlc3BhY2UsdGhpcy5zaG91bGRNYWtlUHJldHR5RGlmZj1yLnNob3VsZE1ha2VQcmV0dHlEaWZmLHRoaXMub3JpZ2luYWxMaW5lcz10LHRoaXMubW9kaWZpZWRMaW5lcz1uLHRoaXMub3JpZ2luYWw9bmV3IGNzKHQpLHRoaXMubW9kaWZpZWQ9bmV3IGNzKG4pLHRoaXMuY29udGludWVMaW5lRGlmZj1mcyhyLm1heENvbXB1dGF0aW9uVGltZSksdGhpcy5jb250aW51ZUNoYXJEaWZmPWZzKHIubWF4Q29tcHV0YXRpb25UaW1lPT09MD8wOk1hdGgubWluKHIubWF4Q29tcHV0YXRpb25UaW1lLDVlMykpfWNvbXB1dGVEaWZmKCl7aWYodGhpcy5vcmlnaW5hbC5saW5lcy5sZW5ndGg9PT0xJiZ0aGlzLm9yaWdpbmFsLmxpbmVzWzBdLmxlbmd0aD09PTApcmV0dXJuIHRoaXMubW9kaWZpZWQubGluZXMubGVuZ3RoPT09MSYmdGhpcy5tb2RpZmllZC5saW5lc1swXS5sZW5ndGg9PT0wP3txdWl0RWFybHk6ITEsY2hhbmdlczpbXX06e3F1aXRFYXJseTohMSxjaGFuZ2VzOlt7b3JpZ2luYWxTdGFydExpbmVOdW1iZXI6MSxvcmlnaW5hbEVuZExpbmVOdW1iZXI6MSxtb2RpZmllZFN0YXJ0TGluZU51bWJlcjoxLG1vZGlmaWVkRW5kTGluZU51bWJlcjp0aGlzLm1vZGlmaWVkLmxpbmVzLmxlbmd0aCxjaGFyQ2hhbmdlczp2b2lkIDB9XX07aWYodGhpcy5tb2RpZmllZC5saW5lcy5sZW5ndGg9PT0xJiZ0aGlzLm1vZGlmaWVkLmxpbmVzWzBdLmxlbmd0aD09PTApcmV0dXJue3F1aXRFYXJseTohMSxjaGFuZ2VzOlt7b3JpZ2luYWxTdGFydExpbmVOdW1iZXI6MSxvcmlnaW5hbEVuZExpbmVOdW1iZXI6dGhpcy5vcmlnaW5hbC5saW5lcy5sZW5ndGgsbW9kaWZpZWRTdGFydExpbmVOdW1iZXI6MSxtb2RpZmllZEVuZExpbmVOdW1iZXI6MSxjaGFyQ2hhbmdlczp2b2lkIDB9XX07Y29uc3QgdD11cyh0aGlzLm9yaWdpbmFsLHRoaXMubW9kaWZpZWQsdGhpcy5jb250aW51ZUxpbmVEaWZmLHRoaXMuc2hvdWxkTWFrZVByZXR0eURpZmYpLG49dC5jaGFuZ2VzLHI9dC5xdWl0RWFybHk7aWYodGhpcy5zaG91bGRJZ25vcmVUcmltV2hpdGVzcGFjZSl7Y29uc3Qgbz1bXTtmb3IobGV0IGw9MCx1PW4ubGVuZ3RoO2w8dTtsKyspby5wdXNoKEl0LmNyZWF0ZUZyb21EaWZmUmVzdWx0KHRoaXMuc2hvdWxkSWdub3JlVHJpbVdoaXRlc3BhY2UsbltsXSx0aGlzLm9yaWdpbmFsLHRoaXMubW9kaWZpZWQsdGhpcy5jb250aW51ZUNoYXJEaWZmLHRoaXMuc2hvdWxkQ29tcHV0ZUNoYXJDaGFuZ2VzLHRoaXMuc2hvdWxkUG9zdFByb2Nlc3NDaGFyQ2hhbmdlcykpO3JldHVybntxdWl0RWFybHk6cixjaGFuZ2VzOm99fWNvbnN0IGk9W107bGV0IHM9MCxhPTA7Zm9yKGxldCBvPS0xLGw9bi5sZW5ndGg7bzxsO28rKyl7Y29uc3QgdT1vKzE8bD9uW28rMV06bnVsbCxmPXU/dS5vcmlnaW5hbFN0YXJ0OnRoaXMub3JpZ2luYWxMaW5lcy5sZW5ndGgsaD11P3UubW9kaWZpZWRTdGFydDp0aGlzLm1vZGlmaWVkTGluZXMubGVuZ3RoO2Zvcig7czxmJiZhPGg7KXtjb25zdCBkPXRoaXMub3JpZ2luYWxMaW5lc1tzXSxnPXRoaXMubW9kaWZpZWRMaW5lc1thXTtpZihkIT09Zyl7e2xldCBtPW5yKGQsMSksdj1ucihnLDEpO2Zvcig7bT4xJiZ2PjE7KXtjb25zdCBwPWQuY2hhckNvZGVBdChtLTIpLHg9Zy5jaGFyQ29kZUF0KHYtMik7aWYocCE9PXgpYnJlYWs7bS0tLHYtLX0obT4xfHx2PjEpJiZ0aGlzLl9wdXNoVHJpbVdoaXRlc3BhY2VDaGFyQ2hhbmdlKGkscysxLDEsbSxhKzEsMSx2KX17bGV0IG09cnIoZCwxKSx2PXJyKGcsMSk7Y29uc3QgcD1kLmxlbmd0aCsxLHg9Zy5sZW5ndGgrMTtmb3IoO208cCYmdjx4Oyl7Y29uc3QgeT1kLmNoYXJDb2RlQXQobS0xKSxiPWQuY2hhckNvZGVBdCh2LTEpO2lmKHkhPT1iKWJyZWFrO20rKyx2Kyt9KG08cHx8djx4KSYmdGhpcy5fcHVzaFRyaW1XaGl0ZXNwYWNlQ2hhckNoYW5nZShpLHMrMSxtLHAsYSsxLHYseCl9fXMrKyxhKyt9dSYmKGkucHVzaChJdC5jcmVhdGVGcm9tRGlmZlJlc3VsdCh0aGlzLnNob3VsZElnbm9yZVRyaW1XaGl0ZXNwYWNlLHUsdGhpcy5vcmlnaW5hbCx0aGlzLm1vZGlmaWVkLHRoaXMuY29udGludWVDaGFyRGlmZix0aGlzLnNob3VsZENvbXB1dGVDaGFyQ2hhbmdlcyx0aGlzLnNob3VsZFBvc3RQcm9jZXNzQ2hhckNoYW5nZXMpKSxzKz11Lm9yaWdpbmFsTGVuZ3RoLGErPXUubW9kaWZpZWRMZW5ndGgpfXJldHVybntxdWl0RWFybHk6cixjaGFuZ2VzOml9fV9wdXNoVHJpbVdoaXRlc3BhY2VDaGFyQ2hhbmdlKHQsbixyLGkscyxhLG8pe2lmKHRoaXMuX21lcmdlVHJpbVdoaXRlc3BhY2VDaGFyQ2hhbmdlKHQsbixyLGkscyxhLG8pKXJldHVybjtsZXQgbDt0aGlzLnNob3VsZENvbXB1dGVDaGFyQ2hhbmdlcyYmKGw9W25ldyB5dChuLHIsbixpLHMsYSxzLG8pXSksdC5wdXNoKG5ldyBJdChuLG4scyxzLGwpKX1fbWVyZ2VUcmltV2hpdGVzcGFjZUNoYXJDaGFuZ2UodCxuLHIsaSxzLGEsbyl7Y29uc3QgbD10Lmxlbmd0aDtpZihsPT09MClyZXR1cm4hMTtjb25zdCB1PXRbbC0xXTtyZXR1cm4gdS5vcmlnaW5hbEVuZExpbmVOdW1iZXI9PT0wfHx1Lm1vZGlmaWVkRW5kTGluZU51bWJlcj09PTA/ITE6dS5vcmlnaW5hbEVuZExpbmVOdW1iZXI9PT1uJiZ1Lm1vZGlmaWVkRW5kTGluZU51bWJlcj09PXM/KHRoaXMuc2hvdWxkQ29tcHV0ZUNoYXJDaGFuZ2VzJiZ1LmNoYXJDaGFuZ2VzJiZ1LmNoYXJDaGFuZ2VzLnB1c2gobmV3IHl0KG4scixuLGkscyxhLHMsbykpLCEwKTp1Lm9yaWdpbmFsRW5kTGluZU51bWJlcisxPT09biYmdS5tb2RpZmllZEVuZExpbmVOdW1iZXIrMT09PXM/KHUub3JpZ2luYWxFbmRMaW5lTnVtYmVyPW4sdS5tb2RpZmllZEVuZExpbmVOdW1iZXI9cyx0aGlzLnNob3VsZENvbXB1dGVDaGFyQ2hhbmdlcyYmdS5jaGFyQ2hhbmdlcyYmdS5jaGFyQ2hhbmdlcy5wdXNoKG5ldyB5dChuLHIsbixpLHMsYSxzLG8pKSwhMCk6ITF9fWZ1bmN0aW9uIG5yKGUsdCl7Y29uc3Qgbj1ZYShlKTtyZXR1cm4gbj09PS0xP3Q6bisxfWZ1bmN0aW9uIHJyKGUsdCl7Y29uc3Qgbj1LYShlKTtyZXR1cm4gbj09PS0xP3Q6bisyfWZ1bmN0aW9uIGZzKGUpe2lmKGU9PT0wKXJldHVybigpPT4hMDtjb25zdCB0PURhdGUubm93KCk7cmV0dXJuKCk9PkRhdGUubm93KCktdDxlfWNsYXNzIFVle3N0YXRpYyB0cml2aWFsKHQsbil7cmV0dXJuIG5ldyBVZShbbmV3IEsoSC5vZkxlbmd0aCh0Lmxlbmd0aCksSC5vZkxlbmd0aChuLmxlbmd0aCkpXSwhMSl9c3RhdGljIHRyaXZpYWxUaW1lZE91dCh0LG4pe3JldHVybiBuZXcgVWUoW25ldyBLKEgub2ZMZW5ndGgodC5sZW5ndGgpLEgub2ZMZW5ndGgobi5sZW5ndGgpKV0sITApfWNvbnN0cnVjdG9yKHQsbil7dGhpcy5kaWZmcz10LHRoaXMuaGl0VGltZW91dD1ufX1jbGFzcyBLe3N0YXRpYyBpbnZlcnQodCxuKXtjb25zdCByPVtdO3JldHVybiBJbyh0LChpLHMpPT57ci5wdXNoKEsuZnJvbU9mZnNldFBhaXJzKGk/aS5nZXRFbmRFeGNsdXNpdmVzKCk6eWUuemVybyxzP3MuZ2V0U3RhcnRzKCk6bmV3IHllKG4sKGk/aS5zZXEyUmFuZ2UuZW5kRXhjbHVzaXZlLWkuc2VxMVJhbmdlLmVuZEV4Y2x1c2l2ZTowKStuKSkpfSkscn1zdGF0aWMgZnJvbU9mZnNldFBhaXJzKHQsbil7cmV0dXJuIG5ldyBLKG5ldyBIKHQub2Zmc2V0MSxuLm9mZnNldDEpLG5ldyBIKHQub2Zmc2V0MixuLm9mZnNldDIpKX1jb25zdHJ1Y3Rvcih0LG4pe3RoaXMuc2VxMVJhbmdlPXQsdGhpcy5zZXEyUmFuZ2U9bn1zd2FwKCl7cmV0dXJuIG5ldyBLKHRoaXMuc2VxMlJhbmdlLHRoaXMuc2VxMVJhbmdlKX10b1N0cmluZygpe3JldHVybmAke3RoaXMuc2VxMVJhbmdlfSA8LT4gJHt0aGlzLnNlcTJSYW5nZX1gfWpvaW4odCl7cmV0dXJuIG5ldyBLKHRoaXMuc2VxMVJhbmdlLmpvaW4odC5zZXExUmFuZ2UpLHRoaXMuc2VxMlJhbmdlLmpvaW4odC5zZXEyUmFuZ2UpKX1kZWx0YSh0KXtyZXR1cm4gdD09PTA/dGhpczpuZXcgSyh0aGlzLnNlcTFSYW5nZS5kZWx0YSh0KSx0aGlzLnNlcTJSYW5nZS5kZWx0YSh0KSl9ZGVsdGFTdGFydCh0KXtyZXR1cm4gdD09PTA/dGhpczpuZXcgSyh0aGlzLnNlcTFSYW5nZS5kZWx0YVN0YXJ0KHQpLHRoaXMuc2VxMlJhbmdlLmRlbHRhU3RhcnQodCkpfWRlbHRhRW5kKHQpe3JldHVybiB0PT09MD90aGlzOm5ldyBLKHRoaXMuc2VxMVJhbmdlLmRlbHRhRW5kKHQpLHRoaXMuc2VxMlJhbmdlLmRlbHRhRW5kKHQpKX1pbnRlcnNlY3QodCl7Y29uc3Qgbj10aGlzLnNlcTFSYW5nZS5pbnRlcnNlY3QodC5zZXExUmFuZ2UpLHI9dGhpcy5zZXEyUmFuZ2UuaW50ZXJzZWN0KHQuc2VxMlJhbmdlKTtpZighKCFufHwhcikpcmV0dXJuIG5ldyBLKG4scil9Z2V0U3RhcnRzKCl7cmV0dXJuIG5ldyB5ZSh0aGlzLnNlcTFSYW5nZS5zdGFydCx0aGlzLnNlcTJSYW5nZS5zdGFydCl9Z2V0RW5kRXhjbHVzaXZlcygpe3JldHVybiBuZXcgeWUodGhpcy5zZXExUmFuZ2UuZW5kRXhjbHVzaXZlLHRoaXMuc2VxMlJhbmdlLmVuZEV4Y2x1c2l2ZSl9fWNsYXNzIHlle2NvbnN0cnVjdG9yKHQsbil7dGhpcy5vZmZzZXQxPXQsdGhpcy5vZmZzZXQyPW59dG9TdHJpbmcoKXtyZXR1cm5gJHt0aGlzLm9mZnNldDF9IDwtPiAke3RoaXMub2Zmc2V0Mn1gfWRlbHRhKHQpe3JldHVybiB0PT09MD90aGlzOm5ldyB5ZSh0aGlzLm9mZnNldDErdCx0aGlzLm9mZnNldDIrdCl9ZXF1YWxzKHQpe3JldHVybiB0aGlzLm9mZnNldDE9PT10Lm9mZnNldDEmJnRoaXMub2Zmc2V0Mj09PXQub2Zmc2V0Mn19eWUuemVybz1uZXcgeWUoMCwwKSx5ZS5tYXg9bmV3IHllKE51bWJlci5NQVhfU0FGRV9JTlRFR0VSLE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTtjbGFzcyBEdHtpc1ZhbGlkKCl7cmV0dXJuITB9fUR0Lmluc3RhbmNlPW5ldyBEdDtjbGFzcyB4bHtjb25zdHJ1Y3Rvcih0KXtpZih0aGlzLnRpbWVvdXQ9dCx0aGlzLnN0YXJ0VGltZT1EYXRlLm5vdygpLHRoaXMudmFsaWQ9ITAsdDw9MCl0aHJvdyBuZXcgJGUoInRpbWVvdXQgbXVzdCBiZSBwb3NpdGl2ZSIpfWlzVmFsaWQoKXtyZXR1cm4hKERhdGUubm93KCktdGhpcy5zdGFydFRpbWU8dGhpcy50aW1lb3V0KSYmdGhpcy52YWxpZCYmKHRoaXMudmFsaWQ9ITEpLHRoaXMudmFsaWR9fWNsYXNzIGlye2NvbnN0cnVjdG9yKHQsbil7dGhpcy53aWR0aD10LHRoaXMuaGVpZ2h0PW4sdGhpcy5hcnJheT1bXSx0aGlzLmFycmF5PW5ldyBBcnJheSh0Km4pfWdldCh0LG4pe3JldHVybiB0aGlzLmFycmF5W3Qrbip0aGlzLndpZHRoXX1zZXQodCxuLHIpe3RoaXMuYXJyYXlbdCtuKnRoaXMud2lkdGhdPXJ9fWZ1bmN0aW9uIHNyKGUpe3JldHVybiBlPT09MzJ8fGU9PT05fWNsYXNzIF90e3N0YXRpYyBnZXRLZXkodCl7bGV0IG49dGhpcy5jaHJLZXlzLmdldCh0KTtyZXR1cm4gbj09PXZvaWQgMCYmKG49dGhpcy5jaHJLZXlzLnNpemUsdGhpcy5jaHJLZXlzLnNldCh0LG4pKSxufWNvbnN0cnVjdG9yKHQsbixyKXt0aGlzLnJhbmdlPXQsdGhpcy5saW5lcz1uLHRoaXMuc291cmNlPXIsdGhpcy5oaXN0b2dyYW09W107bGV0IGk9MDtmb3IobGV0IHM9dC5zdGFydExpbmVOdW1iZXItMTtzPHQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZS0xO3MrKyl7Y29uc3QgYT1uW3NdO2ZvcihsZXQgbD0wO2w8YS5sZW5ndGg7bCsrKXtpKys7Y29uc3QgdT1hW2xdLGY9X3QuZ2V0S2V5KHUpO3RoaXMuaGlzdG9ncmFtW2ZdPSh0aGlzLmhpc3RvZ3JhbVtmXXx8MCkrMX1pKys7Y29uc3Qgbz1fdC5nZXRLZXkoYApgKTt0aGlzLmhpc3RvZ3JhbVtvXT0odGhpcy5oaXN0b2dyYW1bb118fDApKzF9dGhpcy50b3RhbENvdW50PWl9Y29tcHV0ZVNpbWlsYXJpdHkodCl7dmFyIG4scjtsZXQgaT0wO2NvbnN0IHM9TWF0aC5tYXgodGhpcy5oaXN0b2dyYW0ubGVuZ3RoLHQuaGlzdG9ncmFtLmxlbmd0aCk7Zm9yKGxldCBhPTA7YTxzO2ErKylpKz1NYXRoLmFicygoKG49dGhpcy5oaXN0b2dyYW1bYV0pIT09bnVsbCYmbiE9PXZvaWQgMD9uOjApLSgocj10Lmhpc3RvZ3JhbVthXSkhPT1udWxsJiZyIT09dm9pZCAwP3I6MCkpO3JldHVybiAxLWkvKHRoaXMudG90YWxDb3VudCt0LnRvdGFsQ291bnQpfX1fdC5jaHJLZXlzPW5ldyBNYXA7Y2xhc3MgeWx7Y29tcHV0ZSh0LG4scj1EdC5pbnN0YW5jZSxpKXtpZih0Lmxlbmd0aD09PTB8fG4ubGVuZ3RoPT09MClyZXR1cm4gVWUudHJpdmlhbCh0LG4pO2NvbnN0IHM9bmV3IGlyKHQubGVuZ3RoLG4ubGVuZ3RoKSxhPW5ldyBpcih0Lmxlbmd0aCxuLmxlbmd0aCksbz1uZXcgaXIodC5sZW5ndGgsbi5sZW5ndGgpO2ZvcihsZXQgbT0wO208dC5sZW5ndGg7bSsrKWZvcihsZXQgdj0wO3Y8bi5sZW5ndGg7disrKXtpZighci5pc1ZhbGlkKCkpcmV0dXJuIFVlLnRyaXZpYWxUaW1lZE91dCh0LG4pO2NvbnN0IHA9bT09PTA/MDpzLmdldChtLTEsdikseD12PT09MD8wOnMuZ2V0KG0sdi0xKTtsZXQgeTt0LmdldEVsZW1lbnQobSk9PT1uLmdldEVsZW1lbnQodik/KG09PT0wfHx2PT09MD95PTA6eT1zLmdldChtLTEsdi0xKSxtPjAmJnY+MCYmYS5nZXQobS0xLHYtMSk9PT0zJiYoeSs9by5nZXQobS0xLHYtMSkpLHkrPWk/aShtLHYpOjEpOnk9LTE7Y29uc3QgYj1NYXRoLm1heChwLHgseSk7aWYoYj09PXkpe2NvbnN0IE49bT4wJiZ2PjA/by5nZXQobS0xLHYtMSk6MDtvLnNldChtLHYsTisxKSxhLnNldChtLHYsMyl9ZWxzZSBiPT09cD8oby5zZXQobSx2LDApLGEuc2V0KG0sdiwxKSk6Yj09PXgmJihvLnNldChtLHYsMCksYS5zZXQobSx2LDIpKTtzLnNldChtLHYsYil9Y29uc3QgbD1bXTtsZXQgdT10Lmxlbmd0aCxmPW4ubGVuZ3RoO2Z1bmN0aW9uIGgobSx2KXsobSsxIT09dXx8disxIT09ZikmJmwucHVzaChuZXcgSyhuZXcgSChtKzEsdSksbmV3IEgodisxLGYpKSksdT1tLGY9dn1sZXQgZD10Lmxlbmd0aC0xLGc9bi5sZW5ndGgtMTtmb3IoO2Q+PTAmJmc+PTA7KWEuZ2V0KGQsZyk9PT0zPyhoKGQsZyksZC0tLGctLSk6YS5nZXQoZCxnKT09PTE/ZC0tOmctLTtyZXR1cm4gaCgtMSwtMSksbC5yZXZlcnNlKCksbmV3IFVlKGwsITEpfX1jbGFzcyBoc3tjb21wdXRlKHQsbixyPUR0Lmluc3RhbmNlKXtpZih0Lmxlbmd0aD09PTB8fG4ubGVuZ3RoPT09MClyZXR1cm4gVWUudHJpdmlhbCh0LG4pO2NvbnN0IGk9dCxzPW47ZnVuY3Rpb24gYSh2LHApe2Zvcig7djxpLmxlbmd0aCYmcDxzLmxlbmd0aCYmaS5nZXRFbGVtZW50KHYpPT09cy5nZXRFbGVtZW50KHApOyl2KysscCsrO3JldHVybiB2fWxldCBvPTA7Y29uc3QgbD1uZXcgX2w7bC5zZXQoMCxhKDAsMCkpO2NvbnN0IHU9bmV3IHdsO3Uuc2V0KDAsbC5nZXQoMCk9PT0wP251bGw6bmV3IGRzKG51bGwsMCwwLGwuZ2V0KDApKSk7bGV0IGY9MDtlOmZvcig7Oyl7aWYobysrLCFyLmlzVmFsaWQoKSlyZXR1cm4gVWUudHJpdmlhbFRpbWVkT3V0KGkscyk7Y29uc3Qgdj0tTWF0aC5taW4obyxzLmxlbmd0aCtvJTIpLHA9TWF0aC5taW4obyxpLmxlbmd0aCtvJTIpO2ZvcihmPXY7Zjw9cDtmKz0yKXtjb25zdCB4PWY9PT1wPy0xOmwuZ2V0KGYrMSkseT1mPT09dj8tMTpsLmdldChmLTEpKzEsYj1NYXRoLm1pbihNYXRoLm1heCh4LHkpLGkubGVuZ3RoKSxOPWItZjtpZihiPmkubGVuZ3RofHxOPnMubGVuZ3RoKWNvbnRpbnVlO2NvbnN0IFM9YShiLE4pO2wuc2V0KGYsUyk7Y29uc3Qgdz1iPT09eD91LmdldChmKzEpOnUuZ2V0KGYtMSk7aWYodS5zZXQoZixTIT09Yj9uZXcgZHModyxiLE4sUy1iKTp3KSxsLmdldChmKT09PWkubGVuZ3RoJiZsLmdldChmKS1mPT09cy5sZW5ndGgpYnJlYWsgZX19bGV0IGg9dS5nZXQoZik7Y29uc3QgZD1bXTtsZXQgZz1pLmxlbmd0aCxtPXMubGVuZ3RoO2Zvcig7Oyl7Y29uc3Qgdj1oP2gueCtoLmxlbmd0aDowLHA9aD9oLnkraC5sZW5ndGg6MDtpZigodiE9PWd8fHAhPT1tKSYmZC5wdXNoKG5ldyBLKG5ldyBIKHYsZyksbmV3IEgocCxtKSkpLCFoKWJyZWFrO2c9aC54LG09aC55LGg9aC5wcmV2fXJldHVybiBkLnJldmVyc2UoKSxuZXcgVWUoZCwhMSl9fWNsYXNzIGRze2NvbnN0cnVjdG9yKHQsbixyLGkpe3RoaXMucHJldj10LHRoaXMueD1uLHRoaXMueT1yLHRoaXMubGVuZ3RoPWl9fWNsYXNzIF9se2NvbnN0cnVjdG9yKCl7dGhpcy5wb3NpdGl2ZUFycj1uZXcgSW50MzJBcnJheSgxMCksdGhpcy5uZWdhdGl2ZUFycj1uZXcgSW50MzJBcnJheSgxMCl9Z2V0KHQpe3JldHVybiB0PDA/KHQ9LXQtMSx0aGlzLm5lZ2F0aXZlQXJyW3RdKTp0aGlzLnBvc2l0aXZlQXJyW3RdfXNldCh0LG4pe2lmKHQ8MCl7aWYodD0tdC0xLHQ+PXRoaXMubmVnYXRpdmVBcnIubGVuZ3RoKXtjb25zdCByPXRoaXMubmVnYXRpdmVBcnI7dGhpcy5uZWdhdGl2ZUFycj1uZXcgSW50MzJBcnJheShyLmxlbmd0aCoyKSx0aGlzLm5lZ2F0aXZlQXJyLnNldChyKX10aGlzLm5lZ2F0aXZlQXJyW3RdPW59ZWxzZXtpZih0Pj10aGlzLnBvc2l0aXZlQXJyLmxlbmd0aCl7Y29uc3Qgcj10aGlzLnBvc2l0aXZlQXJyO3RoaXMucG9zaXRpdmVBcnI9bmV3IEludDMyQXJyYXkoci5sZW5ndGgqMiksdGhpcy5wb3NpdGl2ZUFyci5zZXQocil9dGhpcy5wb3NpdGl2ZUFyclt0XT1ufX19Y2xhc3Mgd2x7Y29uc3RydWN0b3IoKXt0aGlzLnBvc2l0aXZlQXJyPVtdLHRoaXMubmVnYXRpdmVBcnI9W119Z2V0KHQpe3JldHVybiB0PDA/KHQ9LXQtMSx0aGlzLm5lZ2F0aXZlQXJyW3RdKTp0aGlzLnBvc2l0aXZlQXJyW3RdfXNldCh0LG4pe3Q8MD8odD0tdC0xLHRoaXMubmVnYXRpdmVBcnJbdF09bik6dGhpcy5wb3NpdGl2ZUFyclt0XT1ufX1jbGFzcyBTbHtjb25zdHJ1Y3Rvcigpe3RoaXMubWFwPW5ldyBNYXB9YWRkKHQsbil7bGV0IHI9dGhpcy5tYXAuZ2V0KHQpO3J8fChyPW5ldyBTZXQsdGhpcy5tYXAuc2V0KHQscikpLHIuYWRkKG4pfWRlbGV0ZSh0LG4pe2NvbnN0IHI9dGhpcy5tYXAuZ2V0KHQpO3ImJihyLmRlbGV0ZShuKSxyLnNpemU9PT0wJiZ0aGlzLm1hcC5kZWxldGUodCkpfWZvckVhY2godCxuKXtjb25zdCByPXRoaXMubWFwLmdldCh0KTtyJiZyLmZvckVhY2gobil9Z2V0KHQpe2NvbnN0IG49dGhpcy5tYXAuZ2V0KHQpO3JldHVybiBufHxuZXcgU2V0fX1jbGFzcyBobntjb25zdHJ1Y3Rvcih0LG4scil7dGhpcy5saW5lcz10LHRoaXMuY29uc2lkZXJXaGl0ZXNwYWNlQ2hhbmdlcz1yLHRoaXMuZWxlbWVudHM9W10sdGhpcy5maXJzdENoYXJPZmZzZXRCeUxpbmU9W10sdGhpcy5hZGRpdGlvbmFsT2Zmc2V0QnlMaW5lPVtdO2xldCBpPSExO24uc3RhcnQ+MCYmbi5lbmRFeGNsdXNpdmU+PXQubGVuZ3RoJiYobj1uZXcgSChuLnN0YXJ0LTEsbi5lbmRFeGNsdXNpdmUpLGk9ITApLHRoaXMubGluZVJhbmdlPW4sdGhpcy5maXJzdENoYXJPZmZzZXRCeUxpbmVbMF09MDtmb3IobGV0IHM9dGhpcy5saW5lUmFuZ2Uuc3RhcnQ7czx0aGlzLmxpbmVSYW5nZS5lbmRFeGNsdXNpdmU7cysrKXtsZXQgYT10W3NdLG89MDtpZihpKW89YS5sZW5ndGgsYT0iIixpPSExO2Vsc2UgaWYoIXIpe2NvbnN0IGw9YS50cmltU3RhcnQoKTtvPWEubGVuZ3RoLWwubGVuZ3RoLGE9bC50cmltRW5kKCl9dGhpcy5hZGRpdGlvbmFsT2Zmc2V0QnlMaW5lLnB1c2gobyk7Zm9yKGxldCBsPTA7bDxhLmxlbmd0aDtsKyspdGhpcy5lbGVtZW50cy5wdXNoKGEuY2hhckNvZGVBdChsKSk7czx0Lmxlbmd0aC0xJiYodGhpcy5lbGVtZW50cy5wdXNoKDEwKSx0aGlzLmZpcnN0Q2hhck9mZnNldEJ5TGluZVtzLXRoaXMubGluZVJhbmdlLnN0YXJ0KzFdPXRoaXMuZWxlbWVudHMubGVuZ3RoKX10aGlzLmFkZGl0aW9uYWxPZmZzZXRCeUxpbmUucHVzaCgwKX10b1N0cmluZygpe3JldHVybmBTbGljZTogIiR7dGhpcy50ZXh0fSJgfWdldCB0ZXh0KCl7cmV0dXJuIHRoaXMuZ2V0VGV4dChuZXcgSCgwLHRoaXMubGVuZ3RoKSl9Z2V0VGV4dCh0KXtyZXR1cm4gdGhpcy5lbGVtZW50cy5zbGljZSh0LnN0YXJ0LHQuZW5kRXhjbHVzaXZlKS5tYXAobj0+U3RyaW5nLmZyb21DaGFyQ29kZShuKSkuam9pbigiIil9Z2V0RWxlbWVudCh0KXtyZXR1cm4gdGhpcy5lbGVtZW50c1t0XX1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuZWxlbWVudHMubGVuZ3RofWdldEJvdW5kYXJ5U2NvcmUodCl7Y29uc3Qgbj1tcyh0PjA/dGhpcy5lbGVtZW50c1t0LTFdOi0xKSxyPW1zKHQ8dGhpcy5lbGVtZW50cy5sZW5ndGg/dGhpcy5lbGVtZW50c1t0XTotMSk7aWYobj09PTcmJnI9PT04KXJldHVybiAwO2lmKG49PT04KXJldHVybiAxNTA7bGV0IGk9MDtyZXR1cm4gbiE9PXImJihpKz0xMCxuPT09MCYmcj09PTEmJihpKz0xKSksaSs9Z3MobiksaSs9Z3MociksaX10cmFuc2xhdGVPZmZzZXQodCl7aWYodGhpcy5saW5lUmFuZ2UuaXNFbXB0eSlyZXR1cm4gbmV3IFBlKHRoaXMubGluZVJhbmdlLnN0YXJ0KzEsMSk7Y29uc3Qgbj1UdCh0aGlzLmZpcnN0Q2hhck9mZnNldEJ5TGluZSxyPT5yPD10KTtyZXR1cm4gbmV3IFBlKHRoaXMubGluZVJhbmdlLnN0YXJ0K24rMSx0LXRoaXMuZmlyc3RDaGFyT2Zmc2V0QnlMaW5lW25dK3RoaXMuYWRkaXRpb25hbE9mZnNldEJ5TGluZVtuXSsxKX10cmFuc2xhdGVSYW5nZSh0KXtyZXR1cm4gc2UuZnJvbVBvc2l0aW9ucyh0aGlzLnRyYW5zbGF0ZU9mZnNldCh0LnN0YXJ0KSx0aGlzLnRyYW5zbGF0ZU9mZnNldCh0LmVuZEV4Y2x1c2l2ZSkpfWZpbmRXb3JkQ29udGFpbmluZyh0KXtpZih0PDB8fHQ+PXRoaXMuZWxlbWVudHMubGVuZ3RofHwhYXIodGhpcy5lbGVtZW50c1t0XSkpcmV0dXJuO2xldCBuPXQ7Zm9yKDtuPjAmJmFyKHRoaXMuZWxlbWVudHNbbi0xXSk7KW4tLTtsZXQgcj10O2Zvcig7cjx0aGlzLmVsZW1lbnRzLmxlbmd0aCYmYXIodGhpcy5lbGVtZW50c1tyXSk7KXIrKztyZXR1cm4gbmV3IEgobixyKX1jb3VudExpbmVzSW4odCl7cmV0dXJuIHRoaXMudHJhbnNsYXRlT2Zmc2V0KHQuZW5kRXhjbHVzaXZlKS5saW5lTnVtYmVyLXRoaXMudHJhbnNsYXRlT2Zmc2V0KHQuc3RhcnQpLmxpbmVOdW1iZXJ9aXNTdHJvbmdseUVxdWFsKHQsbil7cmV0dXJuIHRoaXMuZWxlbWVudHNbdF09PT10aGlzLmVsZW1lbnRzW25dfWV4dGVuZFRvRnVsbExpbmVzKHQpe3ZhciBuLHI7Y29uc3QgaT0obj14dCh0aGlzLmZpcnN0Q2hhck9mZnNldEJ5TGluZSxhPT5hPD10LnN0YXJ0KSkhPT1udWxsJiZuIT09dm9pZCAwP246MCxzPShyPWRsKHRoaXMuZmlyc3RDaGFyT2Zmc2V0QnlMaW5lLGE9PnQuZW5kRXhjbHVzaXZlPD1hKSkhPT1udWxsJiZyIT09dm9pZCAwP3I6dGhpcy5lbGVtZW50cy5sZW5ndGg7cmV0dXJuIG5ldyBIKGkscyl9fWZ1bmN0aW9uIGFyKGUpe3JldHVybiBlPj05NyYmZTw9MTIyfHxlPj02NSYmZTw9OTB8fGU+PTQ4JiZlPD01N31jb25zdCBObD17MDowLDE6MCwyOjAsMzoxMCw0OjIsNTozMCw2OjMsNzoxMCw4OjEwfTtmdW5jdGlvbiBncyhlKXtyZXR1cm4gTmxbZV19ZnVuY3Rpb24gbXMoZSl7cmV0dXJuIGU9PT0xMD84OmU9PT0xMz83OnNyKGUpPzY6ZT49OTcmJmU8PTEyMj8wOmU+PTY1JiZlPD05MD8xOmU+PTQ4JiZlPD01Nz8yOmU9PT0tMT8zOmU9PT00NHx8ZT09PTU5PzU6NH1mdW5jdGlvbiBMbChlLHQsbixyLGkscyl7bGV0e21vdmVzOmEsZXhjbHVkZWRDaGFuZ2VzOm99PUNsKGUsdCxuLHMpO2lmKCFzLmlzVmFsaWQoKSlyZXR1cm5bXTtjb25zdCBsPWUuZmlsdGVyKGY9PiFvLmhhcyhmKSksdT1rbChsLHIsaSx0LG4scyk7cmV0dXJuIFZvKGEsdSksYT1FbChhKSxhPWEuZmlsdGVyKGY9Pntjb25zdCBoPWYub3JpZ2luYWwudG9PZmZzZXRSYW5nZSgpLnNsaWNlKHQpLm1hcChnPT5nLnRyaW0oKSk7cmV0dXJuIGguam9pbihgCmApLmxlbmd0aD49MTUmJkFsKGgsZz0+Zy5sZW5ndGg+PTIpPj0yfSksYT1SbChlLGEpLGF9ZnVuY3Rpb24gQWwoZSx0KXtsZXQgbj0wO2Zvcihjb25zdCByIG9mIGUpdChyKSYmbisrO3JldHVybiBufWZ1bmN0aW9uIENsKGUsdCxuLHIpe2NvbnN0IGk9W10scz1lLmZpbHRlcihsPT5sLm1vZGlmaWVkLmlzRW1wdHkmJmwub3JpZ2luYWwubGVuZ3RoPj0zKS5tYXAobD0+bmV3IF90KGwub3JpZ2luYWwsdCxsKSksYT1uZXcgU2V0KGUuZmlsdGVyKGw9Pmwub3JpZ2luYWwuaXNFbXB0eSYmbC5tb2RpZmllZC5sZW5ndGg+PTMpLm1hcChsPT5uZXcgX3QobC5tb2RpZmllZCxuLGwpKSksbz1uZXcgU2V0O2Zvcihjb25zdCBsIG9mIHMpe2xldCB1PS0xLGY7Zm9yKGNvbnN0IGggb2YgYSl7Y29uc3QgZD1sLmNvbXB1dGVTaW1pbGFyaXR5KGgpO2Q+dSYmKHU9ZCxmPWgpfWlmKHU+LjkmJmYmJihhLmRlbGV0ZShmKSxpLnB1c2gobmV3IEVlKGwucmFuZ2UsZi5yYW5nZSkpLG8uYWRkKGwuc291cmNlKSxvLmFkZChmLnNvdXJjZSkpLCFyLmlzVmFsaWQoKSlyZXR1cm57bW92ZXM6aSxleGNsdWRlZENoYW5nZXM6b319cmV0dXJue21vdmVzOmksZXhjbHVkZWRDaGFuZ2VzOm99fWZ1bmN0aW9uIGtsKGUsdCxuLHIsaSxzKXtjb25zdCBhPVtdLG89bmV3IFNsO2Zvcihjb25zdCBkIG9mIGUpZm9yKGxldCBnPWQub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyO2c8ZC5vcmlnaW5hbC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLTI7ZysrKXtjb25zdCBtPWAke3RbZy0xXX06JHt0W2crMS0xXX06JHt0W2crMi0xXX1gO28uYWRkKG0se3JhbmdlOm5ldyBHKGcsZyszKX0pfWNvbnN0IGw9W107ZS5zb3J0KHJuKGQ9PmQubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyLHNuKSk7Zm9yKGNvbnN0IGQgb2YgZSl7bGV0IGc9W107Zm9yKGxldCBtPWQubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyO208ZC5tb2RpZmllZC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLTI7bSsrKXtjb25zdCB2PWAke25bbS0xXX06JHtuW20rMS0xXX06JHtuW20rMi0xXX1gLHA9bmV3IEcobSxtKzMpLHg9W107by5mb3JFYWNoKHYsKHtyYW5nZTp5fSk9Pntmb3IoY29uc3QgTiBvZiBnKWlmKE4ub3JpZ2luYWxMaW5lUmFuZ2UuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSsxPT09eS5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlJiZOLm1vZGlmaWVkTGluZVJhbmdlLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUrMT09PXAuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSl7Ti5vcmlnaW5hbExpbmVSYW5nZT1uZXcgRyhOLm9yaWdpbmFsTGluZVJhbmdlLnN0YXJ0TGluZU51bWJlcix5LmVuZExpbmVOdW1iZXJFeGNsdXNpdmUpLE4ubW9kaWZpZWRMaW5lUmFuZ2U9bmV3IEcoTi5tb2RpZmllZExpbmVSYW5nZS5zdGFydExpbmVOdW1iZXIscC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlKSx4LnB1c2goTik7cmV0dXJufWNvbnN0IGI9e21vZGlmaWVkTGluZVJhbmdlOnAsb3JpZ2luYWxMaW5lUmFuZ2U6eX07bC5wdXNoKGIpLHgucHVzaChiKX0pLGc9eH1pZighcy5pc1ZhbGlkKCkpcmV0dXJuW119bC5zb3J0KE9vKHJuKGQ9PmQubW9kaWZpZWRMaW5lUmFuZ2UubGVuZ3RoLHNuKSkpO2NvbnN0IHU9bmV3IEZlLGY9bmV3IEZlO2Zvcihjb25zdCBkIG9mIGwpe2NvbnN0IGc9ZC5tb2RpZmllZExpbmVSYW5nZS5zdGFydExpbmVOdW1iZXItZC5vcmlnaW5hbExpbmVSYW5nZS5zdGFydExpbmVOdW1iZXIsbT11LnN1YnRyYWN0RnJvbShkLm1vZGlmaWVkTGluZVJhbmdlKSx2PWYuc3VidHJhY3RGcm9tKGQub3JpZ2luYWxMaW5lUmFuZ2UpLmdldFdpdGhEZWx0YShnKSxwPW0uZ2V0SW50ZXJzZWN0aW9uKHYpO2Zvcihjb25zdCB4IG9mIHAucmFuZ2VzKXtpZih4Lmxlbmd0aDwzKWNvbnRpbnVlO2NvbnN0IHk9eCxiPXguZGVsdGEoLWcpO2EucHVzaChuZXcgRWUoYix5KSksdS5hZGRSYW5nZSh5KSxmLmFkZFJhbmdlKGIpfX1hLnNvcnQocm4oZD0+ZC5vcmlnaW5hbC5zdGFydExpbmVOdW1iZXIsc24pKTtjb25zdCBoPW5ldyBQdChlKTtmb3IobGV0IGQ9MDtkPGEubGVuZ3RoO2QrKyl7Y29uc3QgZz1hW2RdLG09aC5maW5kTGFzdE1vbm90b25vdXModz0+dy5vcmlnaW5hbC5zdGFydExpbmVOdW1iZXI8PWcub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyKSx2PXh0KGUsdz0+dy5tb2RpZmllZC5zdGFydExpbmVOdW1iZXI8PWcubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyKSxwPU1hdGgubWF4KGcub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyLW0ub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyLGcubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyLXYubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyKSx4PWguZmluZExhc3RNb25vdG9ub3VzKHc9Pncub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyPGcub3JpZ2luYWwuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSkseT14dChlLHc9PncubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyPGcubW9kaWZpZWQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSksYj1NYXRoLm1heCh4Lm9yaWdpbmFsLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUtZy5vcmlnaW5hbC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLHkubW9kaWZpZWQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZS1nLm1vZGlmaWVkLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUpO2xldCBOO2ZvcihOPTA7TjxwO04rKyl7Y29uc3Qgdz1nLm9yaWdpbmFsLnN0YXJ0TGluZU51bWJlci1OLTEsTD1nLm1vZGlmaWVkLnN0YXJ0TGluZU51bWJlci1OLTE7aWYodz5yLmxlbmd0aHx8TD5pLmxlbmd0aHx8dS5jb250YWlucyhMKXx8Zi5jb250YWlucyh3KXx8IXBzKHJbdy0xXSxpW0wtMV0scykpYnJlYWt9Tj4wJiYoZi5hZGRSYW5nZShuZXcgRyhnLm9yaWdpbmFsLnN0YXJ0TGluZU51bWJlci1OLGcub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyKSksdS5hZGRSYW5nZShuZXcgRyhnLm1vZGlmaWVkLnN0YXJ0TGluZU51bWJlci1OLGcubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyKSkpO2xldCBTO2ZvcihTPTA7UzxiO1MrKyl7Y29uc3Qgdz1nLm9yaWdpbmFsLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUrUyxMPWcubW9kaWZpZWQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZStTO2lmKHc+ci5sZW5ndGh8fEw+aS5sZW5ndGh8fHUuY29udGFpbnMoTCl8fGYuY29udGFpbnModyl8fCFwcyhyW3ctMV0saVtMLTFdLHMpKWJyZWFrfVM+MCYmKGYuYWRkUmFuZ2UobmV3IEcoZy5vcmlnaW5hbC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLGcub3JpZ2luYWwuZW5kTGluZU51bWJlckV4Y2x1c2l2ZStTKSksdS5hZGRSYW5nZShuZXcgRyhnLm1vZGlmaWVkLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUsZy5tb2RpZmllZC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlK1MpKSksKE4+MHx8Uz4wKSYmKGFbZF09bmV3IEVlKG5ldyBHKGcub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyLU4sZy5vcmlnaW5hbC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlK1MpLG5ldyBHKGcubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyLU4sZy5tb2RpZmllZC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlK1MpKSl9cmV0dXJuIGF9ZnVuY3Rpb24gcHMoZSx0LG4pe2lmKGUudHJpbSgpPT09dC50cmltKCkpcmV0dXJuITA7aWYoZS5sZW5ndGg+MzAwJiZ0Lmxlbmd0aD4zMDApcmV0dXJuITE7Y29uc3QgaT1uZXcgaHMoKS5jb21wdXRlKG5ldyBobihbZV0sbmV3IEgoMCwxKSwhMSksbmV3IGhuKFt0XSxuZXcgSCgwLDEpLCExKSxuKTtsZXQgcz0wO2NvbnN0IGE9Sy5pbnZlcnQoaS5kaWZmcyxlLmxlbmd0aCk7Zm9yKGNvbnN0IGYgb2YgYSlmLnNlcTFSYW5nZS5mb3JFYWNoKGg9PntzcihlLmNoYXJDb2RlQXQoaCkpfHxzKyt9KTtmdW5jdGlvbiBvKGYpe2xldCBoPTA7Zm9yKGxldCBkPTA7ZDxlLmxlbmd0aDtkKyspc3IoZi5jaGFyQ29kZUF0KGQpKXx8aCsrO3JldHVybiBofWNvbnN0IGw9byhlLmxlbmd0aD50Lmxlbmd0aD9lOnQpO3JldHVybiBzL2w+LjYmJmw+MTB9ZnVuY3Rpb24gRWwoZSl7aWYoZS5sZW5ndGg9PT0wKXJldHVybiBlO2Uuc29ydChybihuPT5uLm9yaWdpbmFsLnN0YXJ0TGluZU51bWJlcixzbikpO2NvbnN0IHQ9W2VbMF1dO2ZvcihsZXQgbj0xO248ZS5sZW5ndGg7bisrKXtjb25zdCByPXRbdC5sZW5ndGgtMV0saT1lW25dLHM9aS5vcmlnaW5hbC5zdGFydExpbmVOdW1iZXItci5vcmlnaW5hbC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLGE9aS5tb2RpZmllZC5zdGFydExpbmVOdW1iZXItci5tb2RpZmllZC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlO2lmKHM+PTAmJmE+PTAmJnMrYTw9Mil7dFt0Lmxlbmd0aC0xXT1yLmpvaW4oaSk7Y29udGludWV9dC5wdXNoKGkpfXJldHVybiB0fWZ1bmN0aW9uIFJsKGUsdCl7Y29uc3Qgbj1uZXcgUHQoZSk7cmV0dXJuIHQ9dC5maWx0ZXIocj0+e2NvbnN0IGk9bi5maW5kTGFzdE1vbm90b25vdXMobz0+by5vcmlnaW5hbC5zdGFydExpbmVOdW1iZXI8ci5vcmlnaW5hbC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlKXx8bmV3IEVlKG5ldyBHKDEsMSksbmV3IEcoMSwxKSkscz14dChlLG89Pm8ubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyPHIubW9kaWZpZWQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSk7cmV0dXJuIGkhPT1zfSksdH1mdW5jdGlvbiB2cyhlLHQsbil7bGV0IHI9bjtyZXR1cm4gcj1icyhlLHQscikscj1icyhlLHQscikscj1NbChlLHQscikscn1mdW5jdGlvbiBicyhlLHQsbil7aWYobi5sZW5ndGg9PT0wKXJldHVybiBuO2NvbnN0IHI9W107ci5wdXNoKG5bMF0pO2ZvcihsZXQgcz0xO3M8bi5sZW5ndGg7cysrKXtjb25zdCBhPXJbci5sZW5ndGgtMV07bGV0IG89bltzXTtpZihvLnNlcTFSYW5nZS5pc0VtcHR5fHxvLnNlcTJSYW5nZS5pc0VtcHR5KXtjb25zdCBsPW8uc2VxMVJhbmdlLnN0YXJ0LWEuc2VxMVJhbmdlLmVuZEV4Y2x1c2l2ZTtsZXQgdTtmb3IodT0xO3U8PWwmJiEoZS5nZXRFbGVtZW50KG8uc2VxMVJhbmdlLnN0YXJ0LXUpIT09ZS5nZXRFbGVtZW50KG8uc2VxMVJhbmdlLmVuZEV4Y2x1c2l2ZS11KXx8dC5nZXRFbGVtZW50KG8uc2VxMlJhbmdlLnN0YXJ0LXUpIT09dC5nZXRFbGVtZW50KG8uc2VxMlJhbmdlLmVuZEV4Y2x1c2l2ZS11KSk7dSsrKTtpZih1LS0sdT09PWwpe3Jbci5sZW5ndGgtMV09bmV3IEsobmV3IEgoYS5zZXExUmFuZ2Uuc3RhcnQsby5zZXExUmFuZ2UuZW5kRXhjbHVzaXZlLWwpLG5ldyBIKGEuc2VxMlJhbmdlLnN0YXJ0LG8uc2VxMlJhbmdlLmVuZEV4Y2x1c2l2ZS1sKSk7Y29udGludWV9bz1vLmRlbHRhKC11KX1yLnB1c2gobyl9Y29uc3QgaT1bXTtmb3IobGV0IHM9MDtzPHIubGVuZ3RoLTE7cysrKXtjb25zdCBhPXJbcysxXTtsZXQgbz1yW3NdO2lmKG8uc2VxMVJhbmdlLmlzRW1wdHl8fG8uc2VxMlJhbmdlLmlzRW1wdHkpe2NvbnN0IGw9YS5zZXExUmFuZ2Uuc3RhcnQtby5zZXExUmFuZ2UuZW5kRXhjbHVzaXZlO2xldCB1O2Zvcih1PTA7dTxsJiYhKCFlLmlzU3Ryb25nbHlFcXVhbChvLnNlcTFSYW5nZS5zdGFydCt1LG8uc2VxMVJhbmdlLmVuZEV4Y2x1c2l2ZSt1KXx8IXQuaXNTdHJvbmdseUVxdWFsKG8uc2VxMlJhbmdlLnN0YXJ0K3Usby5zZXEyUmFuZ2UuZW5kRXhjbHVzaXZlK3UpKTt1KyspO2lmKHU9PT1sKXtyW3MrMV09bmV3IEsobmV3IEgoby5zZXExUmFuZ2Uuc3RhcnQrbCxhLnNlcTFSYW5nZS5lbmRFeGNsdXNpdmUpLG5ldyBIKG8uc2VxMlJhbmdlLnN0YXJ0K2wsYS5zZXEyUmFuZ2UuZW5kRXhjbHVzaXZlKSk7Y29udGludWV9dT4wJiYobz1vLmRlbHRhKHUpKX1pLnB1c2gobyl9cmV0dXJuIHIubGVuZ3RoPjAmJmkucHVzaChyW3IubGVuZ3RoLTFdKSxpfWZ1bmN0aW9uIE1sKGUsdCxuKXtpZighZS5nZXRCb3VuZGFyeVNjb3JlfHwhdC5nZXRCb3VuZGFyeVNjb3JlKXJldHVybiBuO2ZvcihsZXQgcj0wO3I8bi5sZW5ndGg7cisrKXtjb25zdCBpPXI+MD9uW3ItMV06dm9pZCAwLHM9bltyXSxhPXIrMTxuLmxlbmd0aD9uW3IrMV06dm9pZCAwLG89bmV3IEgoaT9pLnNlcTFSYW5nZS5lbmRFeGNsdXNpdmUrMTowLGE/YS5zZXExUmFuZ2Uuc3RhcnQtMTplLmxlbmd0aCksbD1uZXcgSChpP2kuc2VxMlJhbmdlLmVuZEV4Y2x1c2l2ZSsxOjAsYT9hLnNlcTJSYW5nZS5zdGFydC0xOnQubGVuZ3RoKTtzLnNlcTFSYW5nZS5pc0VtcHR5P25bcl09eHMocyxlLHQsbyxsKTpzLnNlcTJSYW5nZS5pc0VtcHR5JiYobltyXT14cyhzLnN3YXAoKSx0LGUsbCxvKS5zd2FwKCkpfXJldHVybiBufWZ1bmN0aW9uIHhzKGUsdCxuLHIsaSl7bGV0IGE9MTtmb3IoO2Uuc2VxMVJhbmdlLnN0YXJ0LWE+PXIuc3RhcnQmJmUuc2VxMlJhbmdlLnN0YXJ0LWE+PWkuc3RhcnQmJm4uaXNTdHJvbmdseUVxdWFsKGUuc2VxMlJhbmdlLnN0YXJ0LWEsZS5zZXEyUmFuZ2UuZW5kRXhjbHVzaXZlLWEpJiZhPDEwMDspYSsrO2EtLTtsZXQgbz0wO2Zvcig7ZS5zZXExUmFuZ2Uuc3RhcnQrbzxyLmVuZEV4Y2x1c2l2ZSYmZS5zZXEyUmFuZ2UuZW5kRXhjbHVzaXZlK288aS5lbmRFeGNsdXNpdmUmJm4uaXNTdHJvbmdseUVxdWFsKGUuc2VxMlJhbmdlLnN0YXJ0K28sZS5zZXEyUmFuZ2UuZW5kRXhjbHVzaXZlK28pJiZvPDEwMDspbysrO2lmKGE9PT0wJiZvPT09MClyZXR1cm4gZTtsZXQgbD0wLHU9LTE7Zm9yKGxldCBmPS1hO2Y8PW87ZisrKXtjb25zdCBoPWUuc2VxMlJhbmdlLnN0YXJ0K2YsZD1lLnNlcTJSYW5nZS5lbmRFeGNsdXNpdmUrZixnPWUuc2VxMVJhbmdlLnN0YXJ0K2YsbT10LmdldEJvdW5kYXJ5U2NvcmUoZykrbi5nZXRCb3VuZGFyeVNjb3JlKGgpK24uZ2V0Qm91bmRhcnlTY29yZShkKTttPnUmJih1PW0sbD1mKX1yZXR1cm4gZS5kZWx0YShsKX1mdW5jdGlvbiBUbChlLHQsbil7Y29uc3Qgcj1bXTtmb3IoY29uc3QgaSBvZiBuKXtjb25zdCBzPXJbci5sZW5ndGgtMV07aWYoIXMpe3IucHVzaChpKTtjb250aW51ZX1pLnNlcTFSYW5nZS5zdGFydC1zLnNlcTFSYW5nZS5lbmRFeGNsdXNpdmU8PTJ8fGkuc2VxMlJhbmdlLnN0YXJ0LXMuc2VxMlJhbmdlLmVuZEV4Y2x1c2l2ZTw9Mj9yW3IubGVuZ3RoLTFdPW5ldyBLKHMuc2VxMVJhbmdlLmpvaW4oaS5zZXExUmFuZ2UpLHMuc2VxMlJhbmdlLmpvaW4oaS5zZXEyUmFuZ2UpKTpyLnB1c2goaSl9cmV0dXJuIHJ9ZnVuY3Rpb24gUGwoZSx0LG4pe2NvbnN0IHI9Sy5pbnZlcnQobixlLmxlbmd0aCksaT1bXTtsZXQgcz1uZXcgeWUoMCwwKTtmdW5jdGlvbiBhKGwsdSl7aWYobC5vZmZzZXQxPHMub2Zmc2V0MXx8bC5vZmZzZXQyPHMub2Zmc2V0MilyZXR1cm47Y29uc3QgZj1lLmZpbmRXb3JkQ29udGFpbmluZyhsLm9mZnNldDEpLGg9dC5maW5kV29yZENvbnRhaW5pbmcobC5vZmZzZXQyKTtpZighZnx8IWgpcmV0dXJuO2xldCBkPW5ldyBLKGYsaCk7Y29uc3QgZz1kLmludGVyc2VjdCh1KTtsZXQgbT1nLnNlcTFSYW5nZS5sZW5ndGgsdj1nLnNlcTJSYW5nZS5sZW5ndGg7Zm9yKDtyLmxlbmd0aD4wOyl7Y29uc3QgcD1yWzBdO2lmKCEocC5zZXExUmFuZ2UuaW50ZXJzZWN0cyhmKXx8cC5zZXEyUmFuZ2UuaW50ZXJzZWN0cyhoKSkpYnJlYWs7Y29uc3QgeT1lLmZpbmRXb3JkQ29udGFpbmluZyhwLnNlcTFSYW5nZS5zdGFydCksYj10LmZpbmRXb3JkQ29udGFpbmluZyhwLnNlcTJSYW5nZS5zdGFydCksTj1uZXcgSyh5LGIpLFM9Ti5pbnRlcnNlY3QocCk7aWYobSs9Uy5zZXExUmFuZ2UubGVuZ3RoLHYrPVMuc2VxMlJhbmdlLmxlbmd0aCxkPWQuam9pbihOKSxkLnNlcTFSYW5nZS5lbmRFeGNsdXNpdmU+PXAuc2VxMVJhbmdlLmVuZEV4Y2x1c2l2ZSlyLnNoaWZ0KCk7ZWxzZSBicmVha31tK3Y8KGQuc2VxMVJhbmdlLmxlbmd0aCtkLnNlcTJSYW5nZS5sZW5ndGgpKjIvMyYmaS5wdXNoKGQpLHM9ZC5nZXRFbmRFeGNsdXNpdmVzKCl9Zm9yKDtyLmxlbmd0aD4wOyl7Y29uc3QgbD1yLnNoaWZ0KCk7bC5zZXExUmFuZ2UuaXNFbXB0eXx8KGEobC5nZXRTdGFydHMoKSxsKSxhKGwuZ2V0RW5kRXhjbHVzaXZlcygpLmRlbHRhKC0xKSxsKSl9cmV0dXJuIEZsKG4saSl9ZnVuY3Rpb24gRmwoZSx0KXtjb25zdCBuPVtdO2Zvcig7ZS5sZW5ndGg+MHx8dC5sZW5ndGg+MDspe2NvbnN0IHI9ZVswXSxpPXRbMF07bGV0IHM7ciYmKCFpfHxyLnNlcTFSYW5nZS5zdGFydDxpLnNlcTFSYW5nZS5zdGFydCk/cz1lLnNoaWZ0KCk6cz10LnNoaWZ0KCksbi5sZW5ndGg+MCYmbltuLmxlbmd0aC0xXS5zZXExUmFuZ2UuZW5kRXhjbHVzaXZlPj1zLnNlcTFSYW5nZS5zdGFydD9uW24ubGVuZ3RoLTFdPW5bbi5sZW5ndGgtMV0uam9pbihzKTpuLnB1c2gocyl9cmV0dXJuIG59ZnVuY3Rpb24gSWwoZSx0LG4pe2xldCByPW47aWYoci5sZW5ndGg9PT0wKXJldHVybiByO2xldCBpPTAscztkb3tzPSExO2NvbnN0IGE9W3JbMF1dO2ZvcihsZXQgbz0xO288ci5sZW5ndGg7bysrKXtsZXQgZj1mdW5jdGlvbihkLGcpe2NvbnN0IG09bmV3IEgodS5zZXExUmFuZ2UuZW5kRXhjbHVzaXZlLGwuc2VxMVJhbmdlLnN0YXJ0KTtyZXR1cm4gZS5nZXRUZXh0KG0pLnJlcGxhY2UoL1xzL2csIiIpLmxlbmd0aDw9NCYmKGQuc2VxMVJhbmdlLmxlbmd0aCtkLnNlcTJSYW5nZS5sZW5ndGg+NXx8Zy5zZXExUmFuZ2UubGVuZ3RoK2cuc2VxMlJhbmdlLmxlbmd0aD41KX07Y29uc3QgbD1yW29dLHU9YVthLmxlbmd0aC0xXTtmKHUsbCk/KHM9ITAsYVthLmxlbmd0aC0xXT1hW2EubGVuZ3RoLTFdLmpvaW4obCkpOmEucHVzaChsKX1yPWF9d2hpbGUoaSsrPDEwJiZzKTtyZXR1cm4gcn1mdW5jdGlvbiBEbChlLHQsbil7bGV0IHI9bjtpZihyLmxlbmd0aD09PTApcmV0dXJuIHI7bGV0IGk9MCxzO2Rve3M9ITE7Y29uc3Qgbz1bclswXV07Zm9yKGxldCBsPTE7bDxyLmxlbmd0aDtsKyspe2xldCBoPWZ1bmN0aW9uKGcsbSl7Y29uc3Qgdj1uZXcgSChmLnNlcTFSYW5nZS5lbmRFeGNsdXNpdmUsdS5zZXExUmFuZ2Uuc3RhcnQpO2lmKGUuY291bnRMaW5lc0luKHYpPjV8fHYubGVuZ3RoPjUwMClyZXR1cm4hMTtjb25zdCB4PWUuZ2V0VGV4dCh2KS50cmltKCk7aWYoeC5sZW5ndGg+MjB8fHguc3BsaXQoL1xyXG58XHJ8XG4vKS5sZW5ndGg+MSlyZXR1cm4hMTtjb25zdCB5PWUuY291bnRMaW5lc0luKGcuc2VxMVJhbmdlKSxiPWcuc2VxMVJhbmdlLmxlbmd0aCxOPXQuY291bnRMaW5lc0luKGcuc2VxMlJhbmdlKSxTPWcuc2VxMlJhbmdlLmxlbmd0aCx3PWUuY291bnRMaW5lc0luKG0uc2VxMVJhbmdlKSxMPW0uc2VxMVJhbmdlLmxlbmd0aCxBPXQuY291bnRMaW5lc0luKG0uc2VxMlJhbmdlKSxSPW0uc2VxMlJhbmdlLmxlbmd0aCxJPTIqNDArNTA7ZnVuY3Rpb24gQyhfKXtyZXR1cm4gTWF0aC5taW4oXyxJKX1yZXR1cm4gTWF0aC5wb3coTWF0aC5wb3coQyh5KjQwK2IpLDEuNSkrTWF0aC5wb3coQyhOKjQwK1MpLDEuNSksMS41KStNYXRoLnBvdyhNYXRoLnBvdyhDKHcqNDArTCksMS41KStNYXRoLnBvdyhDKEEqNDArUiksMS41KSwxLjUpPihJKioxLjUpKioxLjUqMS4zfTtjb25zdCB1PXJbbF0sZj1vW28ubGVuZ3RoLTFdO2goZix1KT8ocz0hMCxvW28ubGVuZ3RoLTFdPW9bby5sZW5ndGgtMV0uam9pbih1KSk6by5wdXNoKHUpfXI9b313aGlsZShpKys8MTAmJnMpO2NvbnN0IGE9W107cmV0dXJuIERvKHIsKG8sbCx1KT0+e2xldCBmPWw7ZnVuY3Rpb24gaCh4KXtyZXR1cm4geC5sZW5ndGg+MCYmeC50cmltKCkubGVuZ3RoPD0zJiZsLnNlcTFSYW5nZS5sZW5ndGgrbC5zZXEyUmFuZ2UubGVuZ3RoPjEwMH1jb25zdCBkPWUuZXh0ZW5kVG9GdWxsTGluZXMobC5zZXExUmFuZ2UpLGc9ZS5nZXRUZXh0KG5ldyBIKGQuc3RhcnQsbC5zZXExUmFuZ2Uuc3RhcnQpKTtoKGcpJiYoZj1mLmRlbHRhU3RhcnQoLWcubGVuZ3RoKSk7Y29uc3QgbT1lLmdldFRleHQobmV3IEgobC5zZXExUmFuZ2UuZW5kRXhjbHVzaXZlLGQuZW5kRXhjbHVzaXZlKSk7aChtKSYmKGY9Zi5kZWx0YUVuZChtLmxlbmd0aCkpO2NvbnN0IHY9Sy5mcm9tT2Zmc2V0UGFpcnMobz9vLmdldEVuZEV4Y2x1c2l2ZXMoKTp5ZS56ZXJvLHU/dS5nZXRTdGFydHMoKTp5ZS5tYXgpLHA9Zi5pbnRlcnNlY3Qodik7YS5sZW5ndGg+MCYmcC5nZXRTdGFydHMoKS5lcXVhbHMoYVthLmxlbmd0aC0xXS5nZXRFbmRFeGNsdXNpdmVzKCkpP2FbYS5sZW5ndGgtMV09YVthLmxlbmd0aC0xXS5qb2luKHApOmEucHVzaChwKX0pLGF9Y2xhc3MgeXN7Y29uc3RydWN0b3IodCxuKXt0aGlzLnRyaW1tZWRIYXNoPXQsdGhpcy5saW5lcz1ufWdldEVsZW1lbnQodCl7cmV0dXJuIHRoaXMudHJpbW1lZEhhc2hbdF19Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLnRyaW1tZWRIYXNoLmxlbmd0aH1nZXRCb3VuZGFyeVNjb3JlKHQpe2NvbnN0IG49dD09PTA/MDpfcyh0aGlzLmxpbmVzW3QtMV0pLHI9dD09PXRoaXMubGluZXMubGVuZ3RoPzA6X3ModGhpcy5saW5lc1t0XSk7cmV0dXJuIDFlMy0obityKX1nZXRUZXh0KHQpe3JldHVybiB0aGlzLmxpbmVzLnNsaWNlKHQuc3RhcnQsdC5lbmRFeGNsdXNpdmUpLmpvaW4oYApgKX1pc1N0cm9uZ2x5RXF1YWwodCxuKXtyZXR1cm4gdGhpcy5saW5lc1t0XT09PXRoaXMubGluZXNbbl19fWZ1bmN0aW9uIF9zKGUpe2xldCB0PTA7Zm9yKDt0PGUubGVuZ3RoJiYoZS5jaGFyQ29kZUF0KHQpPT09MzJ8fGUuY2hhckNvZGVBdCh0KT09PTkpOyl0Kys7cmV0dXJuIHR9Y2xhc3MgVmx7Y29uc3RydWN0b3IoKXt0aGlzLmR5bmFtaWNQcm9ncmFtbWluZ0RpZmZpbmc9bmV3IHlsLHRoaXMubXllcnNEaWZmaW5nQWxnb3JpdGhtPW5ldyBoc31jb21wdXRlRGlmZih0LG4scil7aWYodC5sZW5ndGg8PTEmJlBvKHQsbiwoUyx3KT0+Uz09PXcpKXJldHVybiBuZXcgZm4oW10sW10sITEpO2lmKHQubGVuZ3RoPT09MSYmdFswXS5sZW5ndGg9PT0wfHxuLmxlbmd0aD09PTEmJm5bMF0ubGVuZ3RoPT09MClyZXR1cm4gbmV3IGZuKFtuZXcgcnQobmV3IEcoMSx0Lmxlbmd0aCsxKSxuZXcgRygxLG4ubGVuZ3RoKzEpLFtuZXcgRnQobmV3IHNlKDEsMSx0Lmxlbmd0aCx0WzBdLmxlbmd0aCsxKSxuZXcgc2UoMSwxLG4ubGVuZ3RoLG5bMF0ubGVuZ3RoKzEpKV0pXSxbXSwhMSk7Y29uc3QgaT1yLm1heENvbXB1dGF0aW9uVGltZU1zPT09MD9EdC5pbnN0YW5jZTpuZXcgeGwoci5tYXhDb21wdXRhdGlvblRpbWVNcykscz0hci5pZ25vcmVUcmltV2hpdGVzcGFjZSxhPW5ldyBNYXA7ZnVuY3Rpb24gbyhTKXtsZXQgdz1hLmdldChTKTtyZXR1cm4gdz09PXZvaWQgMCYmKHc9YS5zaXplLGEuc2V0KFMsdykpLHd9Y29uc3QgbD10Lm1hcChTPT5vKFMudHJpbSgpKSksdT1uLm1hcChTPT5vKFMudHJpbSgpKSksZj1uZXcgeXMobCx0KSxoPW5ldyB5cyh1LG4pLGQ9Zi5sZW5ndGgraC5sZW5ndGg8MTcwMD90aGlzLmR5bmFtaWNQcm9ncmFtbWluZ0RpZmZpbmcuY29tcHV0ZShmLGgsaSwoUyx3KT0+dFtTXT09PW5bd10/blt3XS5sZW5ndGg9PT0wPy4xOjErTWF0aC5sb2coMStuW3ddLmxlbmd0aCk6Ljk5KTp0aGlzLm15ZXJzRGlmZmluZ0FsZ29yaXRobS5jb21wdXRlKGYsaCk7bGV0IGc9ZC5kaWZmcyxtPWQuaGl0VGltZW91dDtnPXZzKGYsaCxnKSxnPUlsKGYsaCxnKTtjb25zdCB2PVtdLHA9Uz0+e2lmKHMpZm9yKGxldCB3PTA7dzxTO3crKyl7Y29uc3QgTD14K3csQT15K3c7aWYodFtMXSE9PW5bQV0pe2NvbnN0IFI9dGhpcy5yZWZpbmVEaWZmKHQsbixuZXcgSyhuZXcgSChMLEwrMSksbmV3IEgoQSxBKzEpKSxpLHMpO2Zvcihjb25zdCBJIG9mIFIubWFwcGluZ3Mpdi5wdXNoKEkpO1IuaGl0VGltZW91dCYmKG09ITApfX19O2xldCB4PTAseT0wO2Zvcihjb25zdCBTIG9mIGcpe2NuKCgpPT5TLnNlcTFSYW5nZS5zdGFydC14PT09Uy5zZXEyUmFuZ2Uuc3RhcnQteSk7Y29uc3Qgdz1TLnNlcTFSYW5nZS5zdGFydC14O3AodykseD1TLnNlcTFSYW5nZS5lbmRFeGNsdXNpdmUseT1TLnNlcTJSYW5nZS5lbmRFeGNsdXNpdmU7Y29uc3QgTD10aGlzLnJlZmluZURpZmYodCxuLFMsaSxzKTtMLmhpdFRpbWVvdXQmJihtPSEwKTtmb3IoY29uc3QgQSBvZiBMLm1hcHBpbmdzKXYucHVzaChBKX1wKHQubGVuZ3RoLXgpO2NvbnN0IGI9d3Modix0LG4pO2xldCBOPVtdO3JldHVybiByLmNvbXB1dGVNb3ZlcyYmKE49dGhpcy5jb21wdXRlTW92ZXMoYix0LG4sbCx1LGkscykpLGNuKCgpPT57ZnVuY3Rpb24gUyhMLEEpe2lmKEwubGluZU51bWJlcjwxfHxMLmxpbmVOdW1iZXI+QS5sZW5ndGgpcmV0dXJuITE7Y29uc3QgUj1BW0wubGluZU51bWJlci0xXTtyZXR1cm4hKEwuY29sdW1uPDF8fEwuY29sdW1uPlIubGVuZ3RoKzEpfWZ1bmN0aW9uIHcoTCxBKXtyZXR1cm4hKEwuc3RhcnRMaW5lTnVtYmVyPDF8fEwuc3RhcnRMaW5lTnVtYmVyPkEubGVuZ3RoKzF8fEwuZW5kTGluZU51bWJlckV4Y2x1c2l2ZTwxfHxMLmVuZExpbmVOdW1iZXJFeGNsdXNpdmU+QS5sZW5ndGgrMSl9Zm9yKGNvbnN0IEwgb2YgYil7aWYoIUwuaW5uZXJDaGFuZ2VzKXJldHVybiExO2Zvcihjb25zdCBBIG9mIEwuaW5uZXJDaGFuZ2VzKWlmKCEoUyhBLm1vZGlmaWVkUmFuZ2UuZ2V0U3RhcnRQb3NpdGlvbigpLG4pJiZTKEEubW9kaWZpZWRSYW5nZS5nZXRFbmRQb3NpdGlvbigpLG4pJiZTKEEub3JpZ2luYWxSYW5nZS5nZXRTdGFydFBvc2l0aW9uKCksdCkmJlMoQS5vcmlnaW5hbFJhbmdlLmdldEVuZFBvc2l0aW9uKCksdCkpKXJldHVybiExO2lmKCF3KEwubW9kaWZpZWQsbil8fCF3KEwub3JpZ2luYWwsdCkpcmV0dXJuITF9cmV0dXJuITB9KSxuZXcgZm4oYixOLG0pfWNvbXB1dGVNb3Zlcyh0LG4scixpLHMsYSxvKXtyZXR1cm4gTGwodCxuLHIsaSxzLGEpLm1hcChmPT57Y29uc3QgaD10aGlzLnJlZmluZURpZmYobixyLG5ldyBLKGYub3JpZ2luYWwudG9PZmZzZXRSYW5nZSgpLGYubW9kaWZpZWQudG9PZmZzZXRSYW5nZSgpKSxhLG8pLGQ9d3MoaC5tYXBwaW5ncyxuLHIsITApO3JldHVybiBuZXcgaGwoZixkKX0pfXJlZmluZURpZmYodCxuLHIsaSxzKXtjb25zdCBhPW5ldyBobih0LHIuc2VxMVJhbmdlLHMpLG89bmV3IGhuKG4sci5zZXEyUmFuZ2UscyksbD1hLmxlbmd0aCtvLmxlbmd0aDw1MDA/dGhpcy5keW5hbWljUHJvZ3JhbW1pbmdEaWZmaW5nLmNvbXB1dGUoYSxvLGkpOnRoaXMubXllcnNEaWZmaW5nQWxnb3JpdGhtLmNvbXB1dGUoYSxvLGkpO2xldCB1PWwuZGlmZnM7cmV0dXJuIHU9dnMoYSxvLHUpLHU9UGwoYSxvLHUpLHU9VGwoYSxvLHUpLHU9RGwoYSxvLHUpLHttYXBwaW5nczp1Lm1hcChoPT5uZXcgRnQoYS50cmFuc2xhdGVSYW5nZShoLnNlcTFSYW5nZSksby50cmFuc2xhdGVSYW5nZShoLnNlcTJSYW5nZSkpKSxoaXRUaW1lb3V0OmwuaGl0VGltZW91dH19fWZ1bmN0aW9uIHdzKGUsdCxuLHI9ITEpe2NvbnN0IGk9W107Zm9yKGNvbnN0IHMgb2YgRm8oZS5tYXAoYT0+T2woYSx0LG4pKSwoYSxvKT0+YS5vcmlnaW5hbC5vdmVybGFwT3JUb3VjaChvLm9yaWdpbmFsKXx8YS5tb2RpZmllZC5vdmVybGFwT3JUb3VjaChvLm1vZGlmaWVkKSkpe2NvbnN0IGE9c1swXSxvPXNbcy5sZW5ndGgtMV07aS5wdXNoKG5ldyBydChhLm9yaWdpbmFsLmpvaW4oby5vcmlnaW5hbCksYS5tb2RpZmllZC5qb2luKG8ubW9kaWZpZWQpLHMubWFwKGw9PmwuaW5uZXJDaGFuZ2VzWzBdKSkpfXJldHVybiBjbigoKT0+IXImJmkubGVuZ3RoPjAmJmlbMF0ub3JpZ2luYWwuc3RhcnRMaW5lTnVtYmVyIT09aVswXS5tb2RpZmllZC5zdGFydExpbmVOdW1iZXI/ITE6YXMoaSwocyxhKT0+YS5vcmlnaW5hbC5zdGFydExpbmVOdW1iZXItcy5vcmlnaW5hbC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlPT09YS5tb2RpZmllZC5zdGFydExpbmVOdW1iZXItcy5tb2RpZmllZC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlJiZzLm9yaWdpbmFsLmVuZExpbmVOdW1iZXJFeGNsdXNpdmU8YS5vcmlnaW5hbC5zdGFydExpbmVOdW1iZXImJnMubW9kaWZpZWQuZW5kTGluZU51bWJlckV4Y2x1c2l2ZTxhLm1vZGlmaWVkLnN0YXJ0TGluZU51bWJlcikpLGl9ZnVuY3Rpb24gT2woZSx0LG4pe2xldCByPTAsaT0wO2UubW9kaWZpZWRSYW5nZS5lbmRDb2x1bW49PT0xJiZlLm9yaWdpbmFsUmFuZ2UuZW5kQ29sdW1uPT09MSYmZS5vcmlnaW5hbFJhbmdlLnN0YXJ0TGluZU51bWJlcityPD1lLm9yaWdpbmFsUmFuZ2UuZW5kTGluZU51bWJlciYmZS5tb2RpZmllZFJhbmdlLnN0YXJ0TGluZU51bWJlcityPD1lLm1vZGlmaWVkUmFuZ2UuZW5kTGluZU51bWJlciYmKGk9LTEpLGUubW9kaWZpZWRSYW5nZS5zdGFydENvbHVtbi0xPj1uW2UubW9kaWZpZWRSYW5nZS5zdGFydExpbmVOdW1iZXItMV0ubGVuZ3RoJiZlLm9yaWdpbmFsUmFuZ2Uuc3RhcnRDb2x1bW4tMT49dFtlLm9yaWdpbmFsUmFuZ2Uuc3RhcnRMaW5lTnVtYmVyLTFdLmxlbmd0aCYmZS5vcmlnaW5hbFJhbmdlLnN0YXJ0TGluZU51bWJlcjw9ZS5vcmlnaW5hbFJhbmdlLmVuZExpbmVOdW1iZXIraSYmZS5tb2RpZmllZFJhbmdlLnN0YXJ0TGluZU51bWJlcjw9ZS5tb2RpZmllZFJhbmdlLmVuZExpbmVOdW1iZXIraSYmKHI9MSk7Y29uc3Qgcz1uZXcgRyhlLm9yaWdpbmFsUmFuZ2Uuc3RhcnRMaW5lTnVtYmVyK3IsZS5vcmlnaW5hbFJhbmdlLmVuZExpbmVOdW1iZXIrMStpKSxhPW5ldyBHKGUubW9kaWZpZWRSYW5nZS5zdGFydExpbmVOdW1iZXIrcixlLm1vZGlmaWVkUmFuZ2UuZW5kTGluZU51bWJlcisxK2kpO3JldHVybiBuZXcgcnQocyxhLFtlXSl9Y29uc3QgU3M9e2dldExlZ2FjeTooKT0+bmV3IG1sLGdldERlZmF1bHQ6KCk9Pm5ldyBWbH07ZnVuY3Rpb24gWmUoZSx0KXtjb25zdCBuPU1hdGgucG93KDEwLHQpO3JldHVybiBNYXRoLnJvdW5kKGUqbikvbn1jbGFzcyBhZXtjb25zdHJ1Y3Rvcih0LG4scixpPTEpe3RoaXMuX3JnYmFCcmFuZD12b2lkIDAsdGhpcy5yPU1hdGgubWluKDI1NSxNYXRoLm1heCgwLHQpKXwwLHRoaXMuZz1NYXRoLm1pbigyNTUsTWF0aC5tYXgoMCxuKSl8MCx0aGlzLmI9TWF0aC5taW4oMjU1LE1hdGgubWF4KDAscikpfDAsdGhpcy5hPVplKE1hdGgubWF4KE1hdGgubWluKDEsaSksMCksMyl9c3RhdGljIGVxdWFscyh0LG4pe3JldHVybiB0LnI9PT1uLnImJnQuZz09PW4uZyYmdC5iPT09bi5iJiZ0LmE9PT1uLmF9fWNsYXNzIE5le2NvbnN0cnVjdG9yKHQsbixyLGkpe3RoaXMuX2hzbGFCcmFuZD12b2lkIDAsdGhpcy5oPU1hdGgubWF4KE1hdGgubWluKDM2MCx0KSwwKXwwLHRoaXMucz1aZShNYXRoLm1heChNYXRoLm1pbigxLG4pLDApLDMpLHRoaXMubD1aZShNYXRoLm1heChNYXRoLm1pbigxLHIpLDApLDMpLHRoaXMuYT1aZShNYXRoLm1heChNYXRoLm1pbigxLGkpLDApLDMpfXN0YXRpYyBlcXVhbHModCxuKXtyZXR1cm4gdC5oPT09bi5oJiZ0LnM9PT1uLnMmJnQubD09PW4ubCYmdC5hPT09bi5hfXN0YXRpYyBmcm9tUkdCQSh0KXtjb25zdCBuPXQuci8yNTUscj10LmcvMjU1LGk9dC5iLzI1NSxzPXQuYSxhPU1hdGgubWF4KG4scixpKSxvPU1hdGgubWluKG4scixpKTtsZXQgbD0wLHU9MDtjb25zdCBmPShvK2EpLzIsaD1hLW87aWYoaD4wKXtzd2l0Y2godT1NYXRoLm1pbihmPD0uNT9oLygyKmYpOmgvKDItMipmKSwxKSxhKXtjYXNlIG46bD0oci1pKS9oKyhyPGk/NjowKTticmVhaztjYXNlIHI6bD0oaS1uKS9oKzI7YnJlYWs7Y2FzZSBpOmw9KG4tcikvaCs0O2JyZWFrfWwqPTYwLGw9TWF0aC5yb3VuZChsKX1yZXR1cm4gbmV3IE5lKGwsdSxmLHMpfXN0YXRpYyBfaHVlMnJnYih0LG4scil7cmV0dXJuIHI8MCYmKHIrPTEpLHI+MSYmKHItPTEpLHI8MS82P3QrKG4tdCkqNipyOnI8MS8yP246cjwyLzM/dCsobi10KSooMi8zLXIpKjY6dH1zdGF0aWMgdG9SR0JBKHQpe2NvbnN0IG49dC5oLzM2MCx7czpyLGw6aSxhOnN9PXQ7bGV0IGEsbyxsO2lmKHI9PT0wKWE9bz1sPWk7ZWxzZXtjb25zdCB1PWk8LjU/aSooMStyKTppK3ItaSpyLGY9MippLXU7YT1OZS5faHVlMnJnYihmLHUsbisxLzMpLG89TmUuX2h1ZTJyZ2IoZix1LG4pLGw9TmUuX2h1ZTJyZ2IoZix1LG4tMS8zKX1yZXR1cm4gbmV3IGFlKE1hdGgucm91bmQoYSoyNTUpLE1hdGgucm91bmQobyoyNTUpLE1hdGgucm91bmQobCoyNTUpLHMpfX1jbGFzcyB3dHtjb25zdHJ1Y3Rvcih0LG4scixpKXt0aGlzLl9oc3ZhQnJhbmQ9dm9pZCAwLHRoaXMuaD1NYXRoLm1heChNYXRoLm1pbigzNjAsdCksMCl8MCx0aGlzLnM9WmUoTWF0aC5tYXgoTWF0aC5taW4oMSxuKSwwKSwzKSx0aGlzLnY9WmUoTWF0aC5tYXgoTWF0aC5taW4oMSxyKSwwKSwzKSx0aGlzLmE9WmUoTWF0aC5tYXgoTWF0aC5taW4oMSxpKSwwKSwzKX1zdGF0aWMgZXF1YWxzKHQsbil7cmV0dXJuIHQuaD09PW4uaCYmdC5zPT09bi5zJiZ0LnY9PT1uLnYmJnQuYT09PW4uYX1zdGF0aWMgZnJvbVJHQkEodCl7Y29uc3Qgbj10LnIvMjU1LHI9dC5nLzI1NSxpPXQuYi8yNTUscz1NYXRoLm1heChuLHIsaSksYT1NYXRoLm1pbihuLHIsaSksbz1zLWEsbD1zPT09MD8wOm8vcztsZXQgdTtyZXR1cm4gbz09PTA/dT0wOnM9PT1uP3U9KChyLWkpL28lNis2KSU2OnM9PT1yP3U9KGktbikvbysyOnU9KG4tcikvbys0LG5ldyB3dChNYXRoLnJvdW5kKHUqNjApLGwscyx0LmEpfXN0YXRpYyB0b1JHQkEodCl7Y29uc3R7aDpuLHM6cix2OmksYTpzfT10LGE9aSpyLG89YSooMS1NYXRoLmFicyhuLzYwJTItMSkpLGw9aS1hO2xldFt1LGYsaF09WzAsMCwwXTtyZXR1cm4gbjw2MD8odT1hLGY9byk6bjwxMjA/KHU9byxmPWEpOm48MTgwPyhmPWEsaD1vKTpuPDI0MD8oZj1vLGg9YSk6bjwzMDA/KHU9byxoPWEpOm48PTM2MCYmKHU9YSxoPW8pLHU9TWF0aC5yb3VuZCgodStsKSoyNTUpLGY9TWF0aC5yb3VuZCgoZitsKSoyNTUpLGg9TWF0aC5yb3VuZCgoaCtsKSoyNTUpLG5ldyBhZSh1LGYsaCxzKX19bGV0IHJlPWNsYXNzIExle3N0YXRpYyBmcm9tSGV4KHQpe3JldHVybiBMZS5Gb3JtYXQuQ1NTLnBhcnNlSGV4KHQpfHxMZS5yZWR9c3RhdGljIGVxdWFscyh0LG4pe3JldHVybiF0JiYhbj8hMDohdHx8IW4/ITE6dC5lcXVhbHMobil9Z2V0IGhzbGEoKXtyZXR1cm4gdGhpcy5faHNsYT90aGlzLl9oc2xhOk5lLmZyb21SR0JBKHRoaXMucmdiYSl9Z2V0IGhzdmEoKXtyZXR1cm4gdGhpcy5faHN2YT90aGlzLl9oc3ZhOnd0LmZyb21SR0JBKHRoaXMucmdiYSl9Y29uc3RydWN0b3IodCl7aWYodClpZih0IGluc3RhbmNlb2YgYWUpdGhpcy5yZ2JhPXQ7ZWxzZSBpZih0IGluc3RhbmNlb2YgTmUpdGhpcy5faHNsYT10LHRoaXMucmdiYT1OZS50b1JHQkEodCk7ZWxzZSBpZih0IGluc3RhbmNlb2Ygd3QpdGhpcy5faHN2YT10LHRoaXMucmdiYT13dC50b1JHQkEodCk7ZWxzZSB0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgY29sb3IgY3RvciBhcmd1bWVudCIpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJDb2xvciBuZWVkcyBhIHZhbHVlIil9ZXF1YWxzKHQpe3JldHVybiEhdCYmYWUuZXF1YWxzKHRoaXMucmdiYSx0LnJnYmEpJiZOZS5lcXVhbHModGhpcy5oc2xhLHQuaHNsYSkmJnd0LmVxdWFscyh0aGlzLmhzdmEsdC5oc3ZhKX1nZXRSZWxhdGl2ZUx1bWluYW5jZSgpe2NvbnN0IHQ9TGUuX3JlbGF0aXZlTHVtaW5hbmNlRm9yQ29tcG9uZW50KHRoaXMucmdiYS5yKSxuPUxlLl9yZWxhdGl2ZUx1bWluYW5jZUZvckNvbXBvbmVudCh0aGlzLnJnYmEuZykscj1MZS5fcmVsYXRpdmVMdW1pbmFuY2VGb3JDb21wb25lbnQodGhpcy5yZ2JhLmIpLGk9LjIxMjYqdCsuNzE1MipuKy4wNzIyKnI7cmV0dXJuIFplKGksNCl9c3RhdGljIF9yZWxhdGl2ZUx1bWluYW5jZUZvckNvbXBvbmVudCh0KXtjb25zdCBuPXQvMjU1O3JldHVybiBuPD0uMDM5Mjg/bi8xMi45MjpNYXRoLnBvdygobisuMDU1KS8xLjA1NSwyLjQpfWlzTGlnaHRlcigpe3JldHVybih0aGlzLnJnYmEucioyOTkrdGhpcy5yZ2JhLmcqNTg3K3RoaXMucmdiYS5iKjExNCkvMWUzPj0xMjh9aXNMaWdodGVyVGhhbih0KXtjb25zdCBuPXRoaXMuZ2V0UmVsYXRpdmVMdW1pbmFuY2UoKSxyPXQuZ2V0UmVsYXRpdmVMdW1pbmFuY2UoKTtyZXR1cm4gbj5yfWlzRGFya2VyVGhhbih0KXtjb25zdCBuPXRoaXMuZ2V0UmVsYXRpdmVMdW1pbmFuY2UoKSxyPXQuZ2V0UmVsYXRpdmVMdW1pbmFuY2UoKTtyZXR1cm4gbjxyfWxpZ2h0ZW4odCl7cmV0dXJuIG5ldyBMZShuZXcgTmUodGhpcy5oc2xhLmgsdGhpcy5oc2xhLnMsdGhpcy5oc2xhLmwrdGhpcy5oc2xhLmwqdCx0aGlzLmhzbGEuYSkpfWRhcmtlbih0KXtyZXR1cm4gbmV3IExlKG5ldyBOZSh0aGlzLmhzbGEuaCx0aGlzLmhzbGEucyx0aGlzLmhzbGEubC10aGlzLmhzbGEubCp0LHRoaXMuaHNsYS5hKSl9dHJhbnNwYXJlbnQodCl7Y29uc3R7cjpuLGc6cixiOmksYTpzfT10aGlzLnJnYmE7cmV0dXJuIG5ldyBMZShuZXcgYWUobixyLGkscyp0KSl9aXNUcmFuc3BhcmVudCgpe3JldHVybiB0aGlzLnJnYmEuYT09PTB9aXNPcGFxdWUoKXtyZXR1cm4gdGhpcy5yZ2JhLmE9PT0xfW9wcG9zaXRlKCl7cmV0dXJuIG5ldyBMZShuZXcgYWUoMjU1LXRoaXMucmdiYS5yLDI1NS10aGlzLnJnYmEuZywyNTUtdGhpcy5yZ2JhLmIsdGhpcy5yZ2JhLmEpKX1tYWtlT3BhcXVlKHQpe2lmKHRoaXMuaXNPcGFxdWUoKXx8dC5yZ2JhLmEhPT0xKXJldHVybiB0aGlzO2NvbnN0e3I6bixnOnIsYjppLGE6c309dGhpcy5yZ2JhO3JldHVybiBuZXcgTGUobmV3IGFlKHQucmdiYS5yLXMqKHQucmdiYS5yLW4pLHQucmdiYS5nLXMqKHQucmdiYS5nLXIpLHQucmdiYS5iLXMqKHQucmdiYS5iLWkpLDEpKX10b1N0cmluZygpe3JldHVybiB0aGlzLl90b1N0cmluZ3x8KHRoaXMuX3RvU3RyaW5nPUxlLkZvcm1hdC5DU1MuZm9ybWF0KHRoaXMpKSx0aGlzLl90b1N0cmluZ31zdGF0aWMgZ2V0TGlnaHRlckNvbG9yKHQsbixyKXtpZih0LmlzTGlnaHRlclRoYW4obikpcmV0dXJuIHQ7cj1yfHwuNTtjb25zdCBpPXQuZ2V0UmVsYXRpdmVMdW1pbmFuY2UoKSxzPW4uZ2V0UmVsYXRpdmVMdW1pbmFuY2UoKTtyZXR1cm4gcj1yKihzLWkpL3MsdC5saWdodGVuKHIpfXN0YXRpYyBnZXREYXJrZXJDb2xvcih0LG4scil7aWYodC5pc0RhcmtlclRoYW4obikpcmV0dXJuIHQ7cj1yfHwuNTtjb25zdCBpPXQuZ2V0UmVsYXRpdmVMdW1pbmFuY2UoKSxzPW4uZ2V0UmVsYXRpdmVMdW1pbmFuY2UoKTtyZXR1cm4gcj1yKihpLXMpL2ksdC5kYXJrZW4ocil9fTtyZS53aGl0ZT1uZXcgcmUobmV3IGFlKDI1NSwyNTUsMjU1LDEpKSxyZS5ibGFjaz1uZXcgcmUobmV3IGFlKDAsMCwwLDEpKSxyZS5yZWQ9bmV3IHJlKG5ldyBhZSgyNTUsMCwwLDEpKSxyZS5ibHVlPW5ldyByZShuZXcgYWUoMCwwLDI1NSwxKSkscmUuZ3JlZW49bmV3IHJlKG5ldyBhZSgwLDI1NSwwLDEpKSxyZS5jeWFuPW5ldyByZShuZXcgYWUoMCwyNTUsMjU1LDEpKSxyZS5saWdodGdyZXk9bmV3IHJlKG5ldyBhZSgyMTEsMjExLDIxMSwxKSkscmUudHJhbnNwYXJlbnQ9bmV3IHJlKG5ldyBhZSgwLDAsMCwwKSksZnVuY3Rpb24oZSl7KGZ1bmN0aW9uKHQpeyhmdW5jdGlvbihuKXtmdW5jdGlvbiByKGcpe3JldHVybiBnLnJnYmEuYT09PTE/YHJnYigke2cucmdiYS5yfSwgJHtnLnJnYmEuZ30sICR7Zy5yZ2JhLmJ9KWA6ZS5Gb3JtYXQuQ1NTLmZvcm1hdFJHQkEoZyl9bi5mb3JtYXRSR0I9cjtmdW5jdGlvbiBpKGcpe3JldHVybmByZ2JhKCR7Zy5yZ2JhLnJ9LCAke2cucmdiYS5nfSwgJHtnLnJnYmEuYn0sICR7K2cucmdiYS5hLnRvRml4ZWQoMil9KWB9bi5mb3JtYXRSR0JBPWk7ZnVuY3Rpb24gcyhnKXtyZXR1cm4gZy5oc2xhLmE9PT0xP2Boc2woJHtnLmhzbGEuaH0sICR7KGcuaHNsYS5zKjEwMCkudG9GaXhlZCgyKX0lLCAkeyhnLmhzbGEubCoxMDApLnRvRml4ZWQoMil9JSlgOmUuRm9ybWF0LkNTUy5mb3JtYXRIU0xBKGcpfW4uZm9ybWF0SFNMPXM7ZnVuY3Rpb24gYShnKXtyZXR1cm5gaHNsYSgke2cuaHNsYS5ofSwgJHsoZy5oc2xhLnMqMTAwKS50b0ZpeGVkKDIpfSUsICR7KGcuaHNsYS5sKjEwMCkudG9GaXhlZCgyKX0lLCAke2cuaHNsYS5hLnRvRml4ZWQoMil9KWB9bi5mb3JtYXRIU0xBPWE7ZnVuY3Rpb24gbyhnKXtjb25zdCBtPWcudG9TdHJpbmcoMTYpO3JldHVybiBtLmxlbmd0aCE9PTI/IjAiK206bX1mdW5jdGlvbiBsKGcpe3JldHVybmAjJHtvKGcucmdiYS5yKX0ke28oZy5yZ2JhLmcpfSR7byhnLnJnYmEuYil9YH1uLmZvcm1hdEhleD1sO2Z1bmN0aW9uIHUoZyxtPSExKXtyZXR1cm4gbSYmZy5yZ2JhLmE9PT0xP2UuRm9ybWF0LkNTUy5mb3JtYXRIZXgoZyk6YCMke28oZy5yZ2JhLnIpfSR7byhnLnJnYmEuZyl9JHtvKGcucmdiYS5iKX0ke28oTWF0aC5yb3VuZChnLnJnYmEuYSoyNTUpKX1gfW4uZm9ybWF0SGV4QT11O2Z1bmN0aW9uIGYoZyl7cmV0dXJuIGcuaXNPcGFxdWUoKT9lLkZvcm1hdC5DU1MuZm9ybWF0SGV4KGcpOmUuRm9ybWF0LkNTUy5mb3JtYXRSR0JBKGcpfW4uZm9ybWF0PWY7ZnVuY3Rpb24gaChnKXtjb25zdCBtPWcubGVuZ3RoO2lmKG09PT0wfHxnLmNoYXJDb2RlQXQoMCkhPT0zNSlyZXR1cm4gbnVsbDtpZihtPT09Nyl7Y29uc3Qgdj0xNipkKGcuY2hhckNvZGVBdCgxKSkrZChnLmNoYXJDb2RlQXQoMikpLHA9MTYqZChnLmNoYXJDb2RlQXQoMykpK2QoZy5jaGFyQ29kZUF0KDQpKSx4PTE2KmQoZy5jaGFyQ29kZUF0KDUpKStkKGcuY2hhckNvZGVBdCg2KSk7cmV0dXJuIG5ldyBlKG5ldyBhZSh2LHAseCwxKSl9aWYobT09PTkpe2NvbnN0IHY9MTYqZChnLmNoYXJDb2RlQXQoMSkpK2QoZy5jaGFyQ29kZUF0KDIpKSxwPTE2KmQoZy5jaGFyQ29kZUF0KDMpKStkKGcuY2hhckNvZGVBdCg0KSkseD0xNipkKGcuY2hhckNvZGVBdCg1KSkrZChnLmNoYXJDb2RlQXQoNikpLHk9MTYqZChnLmNoYXJDb2RlQXQoNykpK2QoZy5jaGFyQ29kZUF0KDgpKTtyZXR1cm4gbmV3IGUobmV3IGFlKHYscCx4LHkvMjU1KSl9aWYobT09PTQpe2NvbnN0IHY9ZChnLmNoYXJDb2RlQXQoMSkpLHA9ZChnLmNoYXJDb2RlQXQoMikpLHg9ZChnLmNoYXJDb2RlQXQoMykpO3JldHVybiBuZXcgZShuZXcgYWUoMTYqdit2LDE2KnArcCwxNip4K3gpKX1pZihtPT09NSl7Y29uc3Qgdj1kKGcuY2hhckNvZGVBdCgxKSkscD1kKGcuY2hhckNvZGVBdCgyKSkseD1kKGcuY2hhckNvZGVBdCgzKSkseT1kKGcuY2hhckNvZGVBdCg0KSk7cmV0dXJuIG5ldyBlKG5ldyBhZSgxNip2K3YsMTYqcCtwLDE2KngreCwoMTYqeSt5KS8yNTUpKX1yZXR1cm4gbnVsbH1uLnBhcnNlSGV4PWg7ZnVuY3Rpb24gZChnKXtzd2l0Y2goZyl7Y2FzZSA0ODpyZXR1cm4gMDtjYXNlIDQ5OnJldHVybiAxO2Nhc2UgNTA6cmV0dXJuIDI7Y2FzZSA1MTpyZXR1cm4gMztjYXNlIDUyOnJldHVybiA0O2Nhc2UgNTM6cmV0dXJuIDU7Y2FzZSA1NDpyZXR1cm4gNjtjYXNlIDU1OnJldHVybiA3O2Nhc2UgNTY6cmV0dXJuIDg7Y2FzZSA1NzpyZXR1cm4gOTtjYXNlIDk3OnJldHVybiAxMDtjYXNlIDY1OnJldHVybiAxMDtjYXNlIDk4OnJldHVybiAxMTtjYXNlIDY2OnJldHVybiAxMTtjYXNlIDk5OnJldHVybiAxMjtjYXNlIDY3OnJldHVybiAxMjtjYXNlIDEwMDpyZXR1cm4gMTM7Y2FzZSA2ODpyZXR1cm4gMTM7Y2FzZSAxMDE6cmV0dXJuIDE0O2Nhc2UgNjk6cmV0dXJuIDE0O2Nhc2UgMTAyOnJldHVybiAxNTtjYXNlIDcwOnJldHVybiAxNX1yZXR1cm4gMH19KSh0LkNTU3x8KHQuQ1NTPXt9KSl9KShlLkZvcm1hdHx8KGUuRm9ybWF0PXt9KSl9KHJlfHwocmU9e30pKTtmdW5jdGlvbiBOcyhlKXtjb25zdCB0PVtdO2Zvcihjb25zdCBuIG9mIGUpe2NvbnN0IHI9TnVtYmVyKG4pOyhyfHxyPT09MCYmbi5yZXBsYWNlKC9ccy9nLCIiKSE9PSIiKSYmdC5wdXNoKHIpfXJldHVybiB0fWZ1bmN0aW9uIG9yKGUsdCxuLHIpe3JldHVybntyZWQ6ZS8yNTUsYmx1ZTpuLzI1NSxncmVlbjp0LzI1NSxhbHBoYTpyfX1mdW5jdGlvbiBWdChlLHQpe2NvbnN0IG49dC5pbmRleCxyPXRbMF0ubGVuZ3RoO2lmKCFuKXJldHVybjtjb25zdCBpPWUucG9zaXRpb25BdChuKTtyZXR1cm57c3RhcnRMaW5lTnVtYmVyOmkubGluZU51bWJlcixzdGFydENvbHVtbjppLmNvbHVtbixlbmRMaW5lTnVtYmVyOmkubGluZU51bWJlcixlbmRDb2x1bW46aS5jb2x1bW4rcn19ZnVuY3Rpb24gVWwoZSx0KXtpZighZSlyZXR1cm47Y29uc3Qgbj1yZS5Gb3JtYXQuQ1NTLnBhcnNlSGV4KHQpO2lmKG4pcmV0dXJue3JhbmdlOmUsY29sb3I6b3Iobi5yZ2JhLnIsbi5yZ2JhLmcsbi5yZ2JhLmIsbi5yZ2JhLmEpfX1mdW5jdGlvbiBMcyhlLHQsbil7aWYoIWV8fHQubGVuZ3RoIT09MSlyZXR1cm47Y29uc3QgaT10WzBdLnZhbHVlcygpLHM9TnMoaSk7cmV0dXJue3JhbmdlOmUsY29sb3I6b3Ioc1swXSxzWzFdLHNbMl0sbj9zWzNdOjEpfX1mdW5jdGlvbiBBcyhlLHQsbil7aWYoIWV8fHQubGVuZ3RoIT09MSlyZXR1cm47Y29uc3QgaT10WzBdLnZhbHVlcygpLHM9TnMoaSksYT1uZXcgcmUobmV3IE5lKHNbMF0sc1sxXS8xMDAsc1syXS8xMDAsbj9zWzNdOjEpKTtyZXR1cm57cmFuZ2U6ZSxjb2xvcjpvcihhLnJnYmEucixhLnJnYmEuZyxhLnJnYmEuYixhLnJnYmEuYSl9fWZ1bmN0aW9uIE90KGUsdCl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIj9bLi4uZS5tYXRjaEFsbCh0KV06ZS5maW5kTWF0Y2hlcyh0KX1mdW5jdGlvbiBqbChlKXtjb25zdCB0PVtdLHI9T3QoZSwvXGIocmdifHJnYmF8aHNsfGhzbGEpKFwoWzAtOVxzLC5cJV0qXCkpfCgjKShbQS1GYS1mMC05XXszfSlcYnwoIykoW0EtRmEtZjAtOV17NH0pXGJ8KCMpKFtBLUZhLWYwLTldezZ9KVxifCgjKShbQS1GYS1mMC05XXs4fSlcYi9nbSk7aWYoci5sZW5ndGg+MClmb3IoY29uc3QgaSBvZiByKXtjb25zdCBzPWkuZmlsdGVyKHU9PnUhPT12b2lkIDApLGE9c1sxXSxvPXNbMl07aWYoIW8pY29udGludWU7bGV0IGw7aWYoYT09PSJyZ2IiKXtjb25zdCB1PS9eXChccyooMjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV17Mn18WzEtOV1bMC05XXxbMC05XSlccyosXHMqKDI1WzAtNV18MlswLTRdWzAtOV18MVswLTldezJ9fFsxLTldWzAtOV18WzAtOV0pXHMqLFxzKigyNVswLTVdfDJbMC00XVswLTldfDFbMC05XXsyfXxbMS05XVswLTldfFswLTldKVxzKlwpJC9nbTtsPUxzKFZ0KGUsaSksT3Qobyx1KSwhMSl9ZWxzZSBpZihhPT09InJnYmEiKXtjb25zdCB1PS9eXChccyooMjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV17Mn18WzEtOV1bMC05XXxbMC05XSlccyosXHMqKDI1WzAtNV18MlswLTRdWzAtOV18MVswLTldezJ9fFsxLTldWzAtOV18WzAtOV0pXHMqLFxzKigyNVswLTVdfDJbMC00XVswLTldfDFbMC05XXsyfXxbMS05XVswLTldfFswLTldKVxzKixccyooMFsuXVswLTldK3xbLl1bMC05XSt8WzAxXVsuXXxbMDFdKVxzKlwpJC9nbTtsPUxzKFZ0KGUsaSksT3Qobyx1KSwhMCl9ZWxzZSBpZihhPT09ImhzbCIpe2NvbnN0IHU9L15cKFxzKigzNlswXXwzWzAtNV1bMC05XXxbMTJdWzAtOV1bMC05XXxbMS05XT9bMC05XSlccyosXHMqKDEwMHxcZHsxLDJ9Wy5dXGQqfFxkezEsMn0pJVxzKixccyooMTAwfFxkezEsMn1bLl1cZCp8XGR7MSwyfSklXHMqXCkkL2dtO2w9QXMoVnQoZSxpKSxPdChvLHUpLCExKX1lbHNlIGlmKGE9PT0iaHNsYSIpe2NvbnN0IHU9L15cKFxzKigzNlswXXwzWzAtNV1bMC05XXxbMTJdWzAtOV1bMC05XXxbMS05XT9bMC05XSlccyosXHMqKDEwMHxcZHsxLDJ9Wy5dXGQqfFxkezEsMn0pJVxzKixccyooMTAwfFxkezEsMn1bLl1cZCp8XGR7MSwyfSklXHMqLFxzKigwWy5dWzAtOV0rfFsuXVswLTldK3xbMDFdWy5dfFswMV0pXHMqXCkkL2dtO2w9QXMoVnQoZSxpKSxPdChvLHUpLCEwKX1lbHNlIGE9PT0iIyImJihsPVVsKFZ0KGUsaSksYStvKSk7bCYmdC5wdXNoKGwpfXJldHVybiB0fWZ1bmN0aW9uIHFsKGUpe3JldHVybiFlfHx0eXBlb2YgZS5nZXRWYWx1ZSE9ImZ1bmN0aW9uInx8dHlwZW9mIGUucG9zaXRpb25BdCE9ImZ1bmN0aW9uIj9bXTpqbChlKX1jbGFzcyBCbCBleHRlbmRzIHFve2dldCB1cmkoKXtyZXR1cm4gdGhpcy5fdXJpfWdldCBlb2woKXtyZXR1cm4gdGhpcy5fZW9sfWdldFZhbHVlKCl7cmV0dXJuIHRoaXMuZ2V0VGV4dCgpfWZpbmRNYXRjaGVzKHQpe2NvbnN0IG49W107Zm9yKGxldCByPTA7cjx0aGlzLl9saW5lcy5sZW5ndGg7cisrKXtjb25zdCBpPXRoaXMuX2xpbmVzW3JdLHM9dGhpcy5vZmZzZXRBdChuZXcgUGUocisxLDEpKSxhPWkubWF0Y2hBbGwodCk7Zm9yKGNvbnN0IG8gb2YgYSkoby5pbmRleHx8by5pbmRleD09PTApJiYoby5pbmRleD1vLmluZGV4K3MpLG4ucHVzaChvKX1yZXR1cm4gbn1nZXRMaW5lc0NvbnRlbnQoKXtyZXR1cm4gdGhpcy5fbGluZXMuc2xpY2UoMCl9Z2V0TGluZUNvdW50KCl7cmV0dXJuIHRoaXMuX2xpbmVzLmxlbmd0aH1nZXRMaW5lQ29udGVudCh0KXtyZXR1cm4gdGhpcy5fbGluZXNbdC0xXX1nZXRXb3JkQXRQb3NpdGlvbih0LG4pe2NvbnN0IHI9V24odC5jb2x1bW4saWkobiksdGhpcy5fbGluZXNbdC5saW5lTnVtYmVyLTFdLDApO3JldHVybiByP25ldyBzZSh0LmxpbmVOdW1iZXIsci5zdGFydENvbHVtbix0LmxpbmVOdW1iZXIsci5lbmRDb2x1bW4pOm51bGx9d29yZHModCl7Y29uc3Qgbj10aGlzLl9saW5lcyxyPXRoaXMuX3dvcmRlbml6ZS5iaW5kKHRoaXMpO2xldCBpPTAscz0iIixhPTAsbz1bXTtyZXR1cm57KltTeW1ib2wuaXRlcmF0b3JdKCl7Zm9yKDs7KWlmKGE8by5sZW5ndGgpe2NvbnN0IGw9cy5zdWJzdHJpbmcob1thXS5zdGFydCxvW2FdLmVuZCk7YSs9MSx5aWVsZCBsfWVsc2UgaWYoaTxuLmxlbmd0aClzPW5baV0sbz1yKHMsdCksYT0wLGkrPTE7ZWxzZSBicmVha319fWdldExpbmVXb3Jkcyh0LG4pe2NvbnN0IHI9dGhpcy5fbGluZXNbdC0xXSxpPXRoaXMuX3dvcmRlbml6ZShyLG4pLHM9W107Zm9yKGNvbnN0IGEgb2YgaSlzLnB1c2goe3dvcmQ6ci5zdWJzdHJpbmcoYS5zdGFydCxhLmVuZCksc3RhcnRDb2x1bW46YS5zdGFydCsxLGVuZENvbHVtbjphLmVuZCsxfSk7cmV0dXJuIHN9X3dvcmRlbml6ZSh0LG4pe2NvbnN0IHI9W107bGV0IGk7Zm9yKG4ubGFzdEluZGV4PTA7KGk9bi5leGVjKHQpKSYmaVswXS5sZW5ndGghPT0wOylyLnB1c2goe3N0YXJ0OmkuaW5kZXgsZW5kOmkuaW5kZXgraVswXS5sZW5ndGh9KTtyZXR1cm4gcn1nZXRWYWx1ZUluUmFuZ2UodCl7aWYodD10aGlzLl92YWxpZGF0ZVJhbmdlKHQpLHQuc3RhcnRMaW5lTnVtYmVyPT09dC5lbmRMaW5lTnVtYmVyKXJldHVybiB0aGlzLl9saW5lc1t0LnN0YXJ0TGluZU51bWJlci0xXS5zdWJzdHJpbmcodC5zdGFydENvbHVtbi0xLHQuZW5kQ29sdW1uLTEpO2NvbnN0IG49dGhpcy5fZW9sLHI9dC5zdGFydExpbmVOdW1iZXItMSxpPXQuZW5kTGluZU51bWJlci0xLHM9W107cy5wdXNoKHRoaXMuX2xpbmVzW3JdLnN1YnN0cmluZyh0LnN0YXJ0Q29sdW1uLTEpKTtmb3IobGV0IGE9cisxO2E8aTthKyspcy5wdXNoKHRoaXMuX2xpbmVzW2FdKTtyZXR1cm4gcy5wdXNoKHRoaXMuX2xpbmVzW2ldLnN1YnN0cmluZygwLHQuZW5kQ29sdW1uLTEpKSxzLmpvaW4obil9b2Zmc2V0QXQodCl7cmV0dXJuIHQ9dGhpcy5fdmFsaWRhdGVQb3NpdGlvbih0KSx0aGlzLl9lbnN1cmVMaW5lU3RhcnRzKCksdGhpcy5fbGluZVN0YXJ0cy5nZXRQcmVmaXhTdW0odC5saW5lTnVtYmVyLTIpKyh0LmNvbHVtbi0xKX1wb3NpdGlvbkF0KHQpe3Q9TWF0aC5mbG9vcih0KSx0PU1hdGgubWF4KDAsdCksdGhpcy5fZW5zdXJlTGluZVN0YXJ0cygpO2NvbnN0IG49dGhpcy5fbGluZVN0YXJ0cy5nZXRJbmRleE9mKHQpLHI9dGhpcy5fbGluZXNbbi5pbmRleF0ubGVuZ3RoO3JldHVybntsaW5lTnVtYmVyOjErbi5pbmRleCxjb2x1bW46MStNYXRoLm1pbihuLnJlbWFpbmRlcixyKX19X3ZhbGlkYXRlUmFuZ2UodCl7Y29uc3Qgbj10aGlzLl92YWxpZGF0ZVBvc2l0aW9uKHtsaW5lTnVtYmVyOnQuc3RhcnRMaW5lTnVtYmVyLGNvbHVtbjp0LnN0YXJ0Q29sdW1ufSkscj10aGlzLl92YWxpZGF0ZVBvc2l0aW9uKHtsaW5lTnVtYmVyOnQuZW5kTGluZU51bWJlcixjb2x1bW46dC5lbmRDb2x1bW59KTtyZXR1cm4gbi5saW5lTnVtYmVyIT09dC5zdGFydExpbmVOdW1iZXJ8fG4uY29sdW1uIT09dC5zdGFydENvbHVtbnx8ci5saW5lTnVtYmVyIT09dC5lbmRMaW5lTnVtYmVyfHxyLmNvbHVtbiE9PXQuZW5kQ29sdW1uP3tzdGFydExpbmVOdW1iZXI6bi5saW5lTnVtYmVyLHN0YXJ0Q29sdW1uOm4uY29sdW1uLGVuZExpbmVOdW1iZXI6ci5saW5lTnVtYmVyLGVuZENvbHVtbjpyLmNvbHVtbn06dH1fdmFsaWRhdGVQb3NpdGlvbih0KXtpZighUGUuaXNJUG9zaXRpb24odCkpdGhyb3cgbmV3IEVycm9yKCJiYWQgcG9zaXRpb24iKTtsZXR7bGluZU51bWJlcjpuLGNvbHVtbjpyfT10LGk9ITE7aWYobjwxKW49MSxyPTEsaT0hMDtlbHNlIGlmKG4+dGhpcy5fbGluZXMubGVuZ3RoKW49dGhpcy5fbGluZXMubGVuZ3RoLHI9dGhpcy5fbGluZXNbbi0xXS5sZW5ndGgrMSxpPSEwO2Vsc2V7Y29uc3Qgcz10aGlzLl9saW5lc1tuLTFdLmxlbmd0aCsxO3I8MT8ocj0xLGk9ITApOnI+cyYmKHI9cyxpPSEwKX1yZXR1cm4gaT97bGluZU51bWJlcjpuLGNvbHVtbjpyfTp0fX1jbGFzcyBpdHtjb25zdHJ1Y3Rvcih0LG4pe3RoaXMuX2hvc3Q9dCx0aGlzLl9tb2RlbHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9mb3JlaWduTW9kdWxlRmFjdG9yeT1uLHRoaXMuX2ZvcmVpZ25Nb2R1bGU9bnVsbH1kaXNwb3NlKCl7dGhpcy5fbW9kZWxzPU9iamVjdC5jcmVhdGUobnVsbCl9X2dldE1vZGVsKHQpe3JldHVybiB0aGlzLl9tb2RlbHNbdF19X2dldE1vZGVscygpe2NvbnN0IHQ9W107cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX21vZGVscykuZm9yRWFjaChuPT50LnB1c2godGhpcy5fbW9kZWxzW25dKSksdH1hY2NlcHROZXdNb2RlbCh0KXt0aGlzLl9tb2RlbHNbdC51cmxdPW5ldyBCbChxbi5wYXJzZSh0LnVybCksdC5saW5lcyx0LkVPTCx0LnZlcnNpb25JZCl9YWNjZXB0TW9kZWxDaGFuZ2VkKHQsbil7aWYoIXRoaXMuX21vZGVsc1t0XSlyZXR1cm47dGhpcy5fbW9kZWxzW3RdLm9uRXZlbnRzKG4pfWFjY2VwdFJlbW92ZWRNb2RlbCh0KXt0aGlzLl9tb2RlbHNbdF0mJmRlbGV0ZSB0aGlzLl9tb2RlbHNbdF19YXN5bmMgY29tcHV0ZVVuaWNvZGVIaWdobGlnaHRzKHQsbixyKXtjb25zdCBpPXRoaXMuX2dldE1vZGVsKHQpO3JldHVybiBpP2NsLmNvbXB1dGVVbmljb2RlSGlnaGxpZ2h0cyhpLG4scik6e3JhbmdlczpbXSxoYXNNb3JlOiExLGFtYmlndW91c0NoYXJhY3RlckNvdW50OjAsaW52aXNpYmxlQ2hhcmFjdGVyQ291bnQ6MCxub25CYXNpY0FzY2lpQ2hhcmFjdGVyQ291bnQ6MH19YXN5bmMgY29tcHV0ZURpZmYodCxuLHIsaSl7Y29uc3Qgcz10aGlzLl9nZXRNb2RlbCh0KSxhPXRoaXMuX2dldE1vZGVsKG4pO3JldHVybiFzfHwhYT9udWxsOml0LmNvbXB1dGVEaWZmKHMsYSxyLGkpfXN0YXRpYyBjb21wdXRlRGlmZih0LG4scixpKXtjb25zdCBzPWk9PT0iYWR2YW5jZWQiP1NzLmdldERlZmF1bHQoKTpTcy5nZXRMZWdhY3koKSxhPXQuZ2V0TGluZXNDb250ZW50KCksbz1uLmdldExpbmVzQ29udGVudCgpLGw9cy5jb21wdXRlRGlmZihhLG8sciksdT1sLmNoYW5nZXMubGVuZ3RoPjA/ITE6dGhpcy5fbW9kZWxzQXJlSWRlbnRpY2FsKHQsbik7ZnVuY3Rpb24gZihoKXtyZXR1cm4gaC5tYXAoZD0+e3ZhciBnO3JldHVybltkLm9yaWdpbmFsLnN0YXJ0TGluZU51bWJlcixkLm9yaWdpbmFsLmVuZExpbmVOdW1iZXJFeGNsdXNpdmUsZC5tb2RpZmllZC5zdGFydExpbmVOdW1iZXIsZC5tb2RpZmllZC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLChnPWQuaW5uZXJDaGFuZ2VzKT09PW51bGx8fGc9PT12b2lkIDA/dm9pZCAwOmcubWFwKG09PlttLm9yaWdpbmFsUmFuZ2Uuc3RhcnRMaW5lTnVtYmVyLG0ub3JpZ2luYWxSYW5nZS5zdGFydENvbHVtbixtLm9yaWdpbmFsUmFuZ2UuZW5kTGluZU51bWJlcixtLm9yaWdpbmFsUmFuZ2UuZW5kQ29sdW1uLG0ubW9kaWZpZWRSYW5nZS5zdGFydExpbmVOdW1iZXIsbS5tb2RpZmllZFJhbmdlLnN0YXJ0Q29sdW1uLG0ubW9kaWZpZWRSYW5nZS5lbmRMaW5lTnVtYmVyLG0ubW9kaWZpZWRSYW5nZS5lbmRDb2x1bW5dKV19KX1yZXR1cm57aWRlbnRpY2FsOnUscXVpdEVhcmx5OmwuaGl0VGltZW91dCxjaGFuZ2VzOmYobC5jaGFuZ2VzKSxtb3ZlczpsLm1vdmVzLm1hcChoPT5baC5saW5lUmFuZ2VNYXBwaW5nLm9yaWdpbmFsLnN0YXJ0TGluZU51bWJlcixoLmxpbmVSYW5nZU1hcHBpbmcub3JpZ2luYWwuZW5kTGluZU51bWJlckV4Y2x1c2l2ZSxoLmxpbmVSYW5nZU1hcHBpbmcubW9kaWZpZWQuc3RhcnRMaW5lTnVtYmVyLGgubGluZVJhbmdlTWFwcGluZy5tb2RpZmllZC5lbmRMaW5lTnVtYmVyRXhjbHVzaXZlLGYoaC5jaGFuZ2VzKV0pfX1zdGF0aWMgX21vZGVsc0FyZUlkZW50aWNhbCh0LG4pe2NvbnN0IHI9dC5nZXRMaW5lQ291bnQoKSxpPW4uZ2V0TGluZUNvdW50KCk7aWYociE9PWkpcmV0dXJuITE7Zm9yKGxldCBzPTE7czw9cjtzKyspe2NvbnN0IGE9dC5nZXRMaW5lQ29udGVudChzKSxvPW4uZ2V0TGluZUNvbnRlbnQocyk7aWYoYSE9PW8pcmV0dXJuITF9cmV0dXJuITB9YXN5bmMgY29tcHV0ZU1vcmVNaW5pbWFsRWRpdHModCxuLHIpe2NvbnN0IGk9dGhpcy5fZ2V0TW9kZWwodCk7aWYoIWkpcmV0dXJuIG47Y29uc3Qgcz1bXTtsZXQgYTtuPW4uc2xpY2UoMCkuc29ydCgobCx1KT0+e2lmKGwucmFuZ2UmJnUucmFuZ2UpcmV0dXJuIHNlLmNvbXBhcmVSYW5nZXNVc2luZ1N0YXJ0cyhsLnJhbmdlLHUucmFuZ2UpO2NvbnN0IGY9bC5yYW5nZT8wOjEsaD11LnJhbmdlPzA6MTtyZXR1cm4gZi1ofSk7bGV0IG89MDtmb3IobGV0IGw9MTtsPG4ubGVuZ3RoO2wrKylzZS5nZXRFbmRQb3NpdGlvbihuW29dLnJhbmdlKS5lcXVhbHMoc2UuZ2V0U3RhcnRQb3NpdGlvbihuW2xdLnJhbmdlKSk/KG5bb10ucmFuZ2U9c2UuZnJvbVBvc2l0aW9ucyhzZS5nZXRTdGFydFBvc2l0aW9uKG5bb10ucmFuZ2UpLHNlLmdldEVuZFBvc2l0aW9uKG5bbF0ucmFuZ2UpKSxuW29dLnRleHQrPW5bbF0udGV4dCk6KG8rKyxuW29dPW5bbF0pO24ubGVuZ3RoPW8rMTtmb3IobGV0e3JhbmdlOmwsdGV4dDp1LGVvbDpmfW9mIG4pe2lmKHR5cGVvZiBmPT0ibnVtYmVyIiYmKGE9Ziksc2UuaXNFbXB0eShsKSYmIXUpY29udGludWU7Y29uc3QgaD1pLmdldFZhbHVlSW5SYW5nZShsKTtpZih1PXUucmVwbGFjZSgvXHJcbnxcbnxcci9nLGkuZW9sKSxoPT09dSljb250aW51ZTtpZihNYXRoLm1heCh1Lmxlbmd0aCxoLmxlbmd0aCk+aXQuX2RpZmZMaW1pdCl7cy5wdXNoKHtyYW5nZTpsLHRleHQ6dX0pO2NvbnRpbnVlfWNvbnN0IGQ9bW8oaCx1LHIpLGc9aS5vZmZzZXRBdChzZS5saWZ0KGwpLmdldFN0YXJ0UG9zaXRpb24oKSk7Zm9yKGNvbnN0IG0gb2YgZCl7Y29uc3Qgdj1pLnBvc2l0aW9uQXQoZyttLm9yaWdpbmFsU3RhcnQpLHA9aS5wb3NpdGlvbkF0KGcrbS5vcmlnaW5hbFN0YXJ0K20ub3JpZ2luYWxMZW5ndGgpLHg9e3RleHQ6dS5zdWJzdHIobS5tb2RpZmllZFN0YXJ0LG0ubW9kaWZpZWRMZW5ndGgpLHJhbmdlOntzdGFydExpbmVOdW1iZXI6di5saW5lTnVtYmVyLHN0YXJ0Q29sdW1uOnYuY29sdW1uLGVuZExpbmVOdW1iZXI6cC5saW5lTnVtYmVyLGVuZENvbHVtbjpwLmNvbHVtbn19O2kuZ2V0VmFsdWVJblJhbmdlKHgucmFuZ2UpIT09eC50ZXh0JiZzLnB1c2goeCl9fXJldHVybiB0eXBlb2YgYT09Im51bWJlciImJnMucHVzaCh7ZW9sOmEsdGV4dDoiIixyYW5nZTp7c3RhcnRMaW5lTnVtYmVyOjAsc3RhcnRDb2x1bW46MCxlbmRMaW5lTnVtYmVyOjAsZW5kQ29sdW1uOjB9fSksc31hc3luYyBjb21wdXRlTGlua3ModCl7Y29uc3Qgbj10aGlzLl9nZXRNb2RlbCh0KTtyZXR1cm4gbj9YbyhuKTpudWxsfWFzeW5jIGNvbXB1dGVEZWZhdWx0RG9jdW1lbnRDb2xvcnModCl7Y29uc3Qgbj10aGlzLl9nZXRNb2RlbCh0KTtyZXR1cm4gbj9xbChuKTpudWxsfWFzeW5jIHRleHR1YWxTdWdnZXN0KHQsbixyLGkpe2NvbnN0IHM9bmV3IFl0LGE9bmV3IFJlZ0V4cChyLGkpLG89bmV3IFNldDtlOmZvcihjb25zdCBsIG9mIHQpe2NvbnN0IHU9dGhpcy5fZ2V0TW9kZWwobCk7aWYodSl7Zm9yKGNvbnN0IGYgb2YgdS53b3JkcyhhKSlpZighKGY9PT1ufHwhaXNOYU4oTnVtYmVyKGYpKSkmJihvLmFkZChmKSxvLnNpemU+aXQuX3N1Z2dlc3Rpb25zTGltaXQpKWJyZWFrIGV9fXJldHVybnt3b3JkczpBcnJheS5mcm9tKG8pLGR1cmF0aW9uOnMuZWxhcHNlZCgpfX1hc3luYyBjb21wdXRlV29yZFJhbmdlcyh0LG4scixpKXtjb25zdCBzPXRoaXMuX2dldE1vZGVsKHQpO2lmKCFzKXJldHVybiBPYmplY3QuY3JlYXRlKG51bGwpO2NvbnN0IGE9bmV3IFJlZ0V4cChyLGkpLG89T2JqZWN0LmNyZWF0ZShudWxsKTtmb3IobGV0IGw9bi5zdGFydExpbmVOdW1iZXI7bDxuLmVuZExpbmVOdW1iZXI7bCsrKXtjb25zdCB1PXMuZ2V0TGluZVdvcmRzKGwsYSk7Zm9yKGNvbnN0IGYgb2YgdSl7aWYoIWlzTmFOKE51bWJlcihmLndvcmQpKSljb250aW51ZTtsZXQgaD1vW2Yud29yZF07aHx8KGg9W10sb1tmLndvcmRdPWgpLGgucHVzaCh7c3RhcnRMaW5lTnVtYmVyOmwsc3RhcnRDb2x1bW46Zi5zdGFydENvbHVtbixlbmRMaW5lTnVtYmVyOmwsZW5kQ29sdW1uOmYuZW5kQ29sdW1ufSl9fXJldHVybiBvfWFzeW5jIG5hdmlnYXRlVmFsdWVTZXQodCxuLHIsaSxzKXtjb25zdCBhPXRoaXMuX2dldE1vZGVsKHQpO2lmKCFhKXJldHVybiBudWxsO2NvbnN0IG89bmV3IFJlZ0V4cChpLHMpO24uc3RhcnRDb2x1bW49PT1uLmVuZENvbHVtbiYmKG49e3N0YXJ0TGluZU51bWJlcjpuLnN0YXJ0TGluZU51bWJlcixzdGFydENvbHVtbjpuLnN0YXJ0Q29sdW1uLGVuZExpbmVOdW1iZXI6bi5lbmRMaW5lTnVtYmVyLGVuZENvbHVtbjpuLmVuZENvbHVtbisxfSk7Y29uc3QgbD1hLmdldFZhbHVlSW5SYW5nZShuKSx1PWEuZ2V0V29yZEF0UG9zaXRpb24oe2xpbmVOdW1iZXI6bi5zdGFydExpbmVOdW1iZXIsY29sdW1uOm4uc3RhcnRDb2x1bW59LG8pO2lmKCF1KXJldHVybiBudWxsO2NvbnN0IGY9YS5nZXRWYWx1ZUluUmFuZ2UodSk7cmV0dXJuIEduLklOU1RBTkNFLm5hdmlnYXRlVmFsdWVTZXQobixsLHUsZixyKX1sb2FkRm9yZWlnbk1vZHVsZSh0LG4scil7Y29uc3QgYT17aG9zdDpxYShyLChvLGwpPT50aGlzLl9ob3N0LmZocihvLGwpKSxnZXRNaXJyb3JNb2RlbHM6KCk9PnRoaXMuX2dldE1vZGVscygpfTtyZXR1cm4gdGhpcy5fZm9yZWlnbk1vZHVsZUZhY3Rvcnk/KHRoaXMuX2ZvcmVpZ25Nb2R1bGU9dGhpcy5fZm9yZWlnbk1vZHVsZUZhY3RvcnkoYSxuKSxQcm9taXNlLnJlc29sdmUoVG4odGhpcy5fZm9yZWlnbk1vZHVsZSkpKTpQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgdXNhZ2UiKSl9Zm1yKHQsbil7aWYoIXRoaXMuX2ZvcmVpZ25Nb2R1bGV8fHR5cGVvZiB0aGlzLl9mb3JlaWduTW9kdWxlW3RdIT0iZnVuY3Rpb24iKXJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIk1pc3NpbmcgcmVxdWVzdEhhbmRsZXIgb3IgbWV0aG9kOiAiK3QpKTt0cnl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9mb3JlaWduTW9kdWxlW3RdLmFwcGx5KHRoaXMuX2ZvcmVpZ25Nb2R1bGUsbikpfWNhdGNoKHIpe3JldHVybiBQcm9taXNlLnJlamVjdChyKX19fWl0Ll9kaWZmTGltaXQ9MWU1LGl0Ll9zdWdnZXN0aW9uc0xpbWl0PTFlNCx0eXBlb2YgaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIiYmKGdsb2JhbFRoaXMubW9uYWNvPWlsKCkpO2xldCBscj0hMTtmdW5jdGlvbiBDcyhlKXtpZihscilyZXR1cm47bHI9ITA7Y29uc3QgdD1uZXcgaG8obj0+e2dsb2JhbFRoaXMucG9zdE1lc3NhZ2Uobil9LG49Pm5ldyBpdChuLGUpKTtnbG9iYWxUaGlzLm9ubWVzc2FnZT1uPT57dC5vbm1lc3NhZ2Uobi5kYXRhKX19Z2xvYmFsVGhpcy5vbm1lc3NhZ2U9ZT0+e2xyfHxDcyhudWxsKX07LyohLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICogQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqIFZlcnNpb246IDAuNDcuMCg2OTk5MWQ2NjEzNWU0YTFmYzFjZjBiMWFjNGFkMjVkNDI5ODY2YTBkKQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UKICogaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9tb25hY28tZWRpdG9yL2Jsb2IvbWFpbi9MSUNFTlNFLnR4dAogKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9mdW5jdGlvbiB1cihlLHQpe3Q9PT12b2lkIDAmJih0PSExKTt2YXIgbj1lLmxlbmd0aCxyPTAsaT0iIixzPTAsYT0xNixvPTAsbD0wLHU9MCxmPTAsaD0wO2Z1bmN0aW9uIGQoYixOKXtmb3IodmFyIFM9MCx3PTA7UzxifHwhTjspe3ZhciBMPWUuY2hhckNvZGVBdChyKTtpZihMPj00OCYmTDw9NTcpdz13KjE2K0wtNDg7ZWxzZSBpZihMPj02NSYmTDw9NzApdz13KjE2K0wtNjUrMTA7ZWxzZSBpZihMPj05NyYmTDw9MTAyKXc9dyoxNitMLTk3KzEwO2Vsc2UgYnJlYWs7cisrLFMrK31yZXR1cm4gUzxiJiYodz0tMSksd31mdW5jdGlvbiBnKGIpe3I9YixpPSIiLHM9MCxhPTE2LGg9MH1mdW5jdGlvbiBtKCl7dmFyIGI9cjtpZihlLmNoYXJDb2RlQXQocik9PT00OClyKys7ZWxzZSBmb3IocisrO3I8ZS5sZW5ndGgmJlN0KGUuY2hhckNvZGVBdChyKSk7KXIrKztpZihyPGUubGVuZ3RoJiZlLmNoYXJDb2RlQXQocik9PT00NilpZihyKysscjxlLmxlbmd0aCYmU3QoZS5jaGFyQ29kZUF0KHIpKSlmb3IocisrO3I8ZS5sZW5ndGgmJlN0KGUuY2hhckNvZGVBdChyKSk7KXIrKztlbHNlIHJldHVybiBoPTMsZS5zdWJzdHJpbmcoYixyKTt2YXIgTj1yO2lmKHI8ZS5sZW5ndGgmJihlLmNoYXJDb2RlQXQocik9PT02OXx8ZS5jaGFyQ29kZUF0KHIpPT09MTAxKSlpZihyKyssKHI8ZS5sZW5ndGgmJmUuY2hhckNvZGVBdChyKT09PTQzfHxlLmNoYXJDb2RlQXQocik9PT00NSkmJnIrKyxyPGUubGVuZ3RoJiZTdChlLmNoYXJDb2RlQXQocikpKXtmb3IocisrO3I8ZS5sZW5ndGgmJlN0KGUuY2hhckNvZGVBdChyKSk7KXIrKztOPXJ9ZWxzZSBoPTM7cmV0dXJuIGUuc3Vic3RyaW5nKGIsTil9ZnVuY3Rpb24gdigpe2Zvcih2YXIgYj0iIixOPXI7Oyl7aWYocj49bil7Yis9ZS5zdWJzdHJpbmcoTixyKSxoPTI7YnJlYWt9dmFyIFM9ZS5jaGFyQ29kZUF0KHIpO2lmKFM9PT0zNCl7Yis9ZS5zdWJzdHJpbmcoTixyKSxyKys7YnJlYWt9aWYoUz09PTkyKXtpZihiKz1lLnN1YnN0cmluZyhOLHIpLHIrKyxyPj1uKXtoPTI7YnJlYWt9dmFyIHc9ZS5jaGFyQ29kZUF0KHIrKyk7c3dpdGNoKHcpe2Nhc2UgMzQ6Yis9JyInO2JyZWFrO2Nhc2UgOTI6Yis9IlxcIjticmVhaztjYXNlIDQ3OmIrPSIvIjticmVhaztjYXNlIDk4OmIrPSJcYiI7YnJlYWs7Y2FzZSAxMDI6Yis9IlxmIjticmVhaztjYXNlIDExMDpiKz1gCmA7YnJlYWs7Y2FzZSAxMTQ6Yis9IlxyIjticmVhaztjYXNlIDExNjpiKz0iCSI7YnJlYWs7Y2FzZSAxMTc6dmFyIEw9ZCg0LCEwKTtMPj0wP2IrPVN0cmluZy5mcm9tQ2hhckNvZGUoTCk6aD00O2JyZWFrO2RlZmF1bHQ6aD01fU49cjtjb250aW51ZX1pZihTPj0wJiZTPD0zMSlpZihVdChTKSl7Yis9ZS5zdWJzdHJpbmcoTixyKSxoPTI7YnJlYWt9ZWxzZSBoPTY7cisrfXJldHVybiBifWZ1bmN0aW9uIHAoKXtpZihpPSIiLGg9MCxzPXIsbD1vLGY9dSxyPj1uKXJldHVybiBzPW4sYT0xNzt2YXIgYj1lLmNoYXJDb2RlQXQocik7aWYoY3IoYikpe2RvIHIrKyxpKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGIpLGI9ZS5jaGFyQ29kZUF0KHIpO3doaWxlKGNyKGIpKTtyZXR1cm4gYT0xNX1pZihVdChiKSlyZXR1cm4gcisrLGkrPVN0cmluZy5mcm9tQ2hhckNvZGUoYiksYj09PTEzJiZlLmNoYXJDb2RlQXQocik9PT0xMCYmKHIrKyxpKz1gCmApLG8rKyx1PXIsYT0xNDtzd2l0Y2goYil7Y2FzZSAxMjM6cmV0dXJuIHIrKyxhPTE7Y2FzZSAxMjU6cmV0dXJuIHIrKyxhPTI7Y2FzZSA5MTpyZXR1cm4gcisrLGE9MztjYXNlIDkzOnJldHVybiByKyssYT00O2Nhc2UgNTg6cmV0dXJuIHIrKyxhPTY7Y2FzZSA0NDpyZXR1cm4gcisrLGE9NTtjYXNlIDM0OnJldHVybiByKyssaT12KCksYT0xMDtjYXNlIDQ3OnZhciBOPXItMTtpZihlLmNoYXJDb2RlQXQocisxKT09PTQ3KXtmb3Iocis9MjtyPG4mJiFVdChlLmNoYXJDb2RlQXQocikpOylyKys7cmV0dXJuIGk9ZS5zdWJzdHJpbmcoTixyKSxhPTEyfWlmKGUuY2hhckNvZGVBdChyKzEpPT09NDIpe3IrPTI7Zm9yKHZhciBTPW4tMSx3PSExO3I8Uzspe3ZhciBMPWUuY2hhckNvZGVBdChyKTtpZihMPT09NDImJmUuY2hhckNvZGVBdChyKzEpPT09NDcpe3IrPTIsdz0hMDticmVha31yKyssVXQoTCkmJihMPT09MTMmJmUuY2hhckNvZGVBdChyKT09PTEwJiZyKyssbysrLHU9cil9cmV0dXJuIHd8fChyKyssaD0xKSxpPWUuc3Vic3RyaW5nKE4sciksYT0xM31yZXR1cm4gaSs9U3RyaW5nLmZyb21DaGFyQ29kZShiKSxyKyssYT0xNjtjYXNlIDQ1OmlmKGkrPVN0cmluZy5mcm9tQ2hhckNvZGUoYikscisrLHI9PT1ufHwhU3QoZS5jaGFyQ29kZUF0KHIpKSlyZXR1cm4gYT0xNjtjYXNlIDQ4OmNhc2UgNDk6Y2FzZSA1MDpjYXNlIDUxOmNhc2UgNTI6Y2FzZSA1MzpjYXNlIDU0OmNhc2UgNTU6Y2FzZSA1NjpjYXNlIDU3OnJldHVybiBpKz1tKCksYT0xMTtkZWZhdWx0OmZvcig7cjxuJiZ4KGIpOylyKyssYj1lLmNoYXJDb2RlQXQocik7aWYocyE9PXIpe3N3aXRjaChpPWUuc3Vic3RyaW5nKHMsciksaSl7Y2FzZSJ0cnVlIjpyZXR1cm4gYT04O2Nhc2UiZmFsc2UiOnJldHVybiBhPTk7Y2FzZSJudWxsIjpyZXR1cm4gYT03fXJldHVybiBhPTE2fXJldHVybiBpKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGIpLHIrKyxhPTE2fX1mdW5jdGlvbiB4KGIpe2lmKGNyKGIpfHxVdChiKSlyZXR1cm4hMTtzd2l0Y2goYil7Y2FzZSAxMjU6Y2FzZSA5MzpjYXNlIDEyMzpjYXNlIDkxOmNhc2UgMzQ6Y2FzZSA1ODpjYXNlIDQ0OmNhc2UgNDc6cmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24geSgpe3ZhciBiO2RvIGI9cCgpO3doaWxlKGI+PTEyJiZiPD0xNSk7cmV0dXJuIGJ9cmV0dXJue3NldFBvc2l0aW9uOmcsZ2V0UG9zaXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gcn0sc2Nhbjp0P3k6cCxnZXRUb2tlbjpmdW5jdGlvbigpe3JldHVybiBhfSxnZXRUb2tlblZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGdldFRva2VuT2Zmc2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHN9LGdldFRva2VuTGVuZ3RoOmZ1bmN0aW9uKCl7cmV0dXJuIHItc30sZ2V0VG9rZW5TdGFydExpbmU6ZnVuY3Rpb24oKXtyZXR1cm4gbH0sZ2V0VG9rZW5TdGFydENoYXJhY3RlcjpmdW5jdGlvbigpe3JldHVybiBzLWZ9LGdldFRva2VuRXJyb3I6ZnVuY3Rpb24oKXtyZXR1cm4gaH19fWZ1bmN0aW9uIGNyKGUpe3JldHVybiBlPT09MzJ8fGU9PT05fHxlPT09MTF8fGU9PT0xMnx8ZT09PTE2MHx8ZT09PTU3NjB8fGU+PTgxOTImJmU8PTgyMDN8fGU9PT04MjM5fHxlPT09ODI4N3x8ZT09PTEyMjg4fHxlPT09NjUyNzl9ZnVuY3Rpb24gVXQoZSl7cmV0dXJuIGU9PT0xMHx8ZT09PTEzfHxlPT09ODIzMnx8ZT09PTgyMzN9ZnVuY3Rpb24gU3QoZSl7cmV0dXJuIGU+PTQ4JiZlPD01N31mdW5jdGlvbiAkbChlLHQsbil7dmFyIHIsaSxzLGEsbztpZih0KXtmb3IoYT10Lm9mZnNldCxvPWErdC5sZW5ndGgscz1hO3M+MCYmIWtzKGUscy0xKTspcy0tO2Zvcih2YXIgbD1vO2w8ZS5sZW5ndGgmJiFrcyhlLGwpOylsKys7aT1lLnN1YnN0cmluZyhzLGwpLHI9V2woaSxuKX1lbHNlIGk9ZSxyPTAscz0wLGE9MCxvPWUubGVuZ3RoO3ZhciB1PUhsKG4sZSksZj0hMSxoPTAsZDtuLmluc2VydFNwYWNlcz9kPWZyKCIgIixuLnRhYlNpemV8fDQpOmQ9IgkiO3ZhciBnPXVyKGksITEpLG09ITE7ZnVuY3Rpb24gdigpe3JldHVybiB1K2ZyKGQscitoKX1mdW5jdGlvbiBwKCl7dmFyIF89Zy5zY2FuKCk7Zm9yKGY9ITE7Xz09PTE1fHxfPT09MTQ7KWY9Znx8Xz09PTE0LF89Zy5zY2FuKCk7cmV0dXJuIG09Xz09PTE2fHxnLmdldFRva2VuRXJyb3IoKSE9PTAsX312YXIgeD1bXTtmdW5jdGlvbiB5KF8sVCxGKXshbSYmKCF0fHxUPG8mJkY+YSkmJmUuc3Vic3RyaW5nKFQsRikhPT1fJiZ4LnB1c2goe29mZnNldDpULGxlbmd0aDpGLVQsY29udGVudDpffSl9dmFyIGI9cCgpO2lmKGIhPT0xNyl7dmFyIE49Zy5nZXRUb2tlbk9mZnNldCgpK3MsUz1mcihkLHIpO3koUyxzLE4pfWZvcig7YiE9PTE3Oyl7Zm9yKHZhciB3PWcuZ2V0VG9rZW5PZmZzZXQoKStnLmdldFRva2VuTGVuZ3RoKCkrcyxMPXAoKSxBPSIiLFI9ITE7IWYmJihMPT09MTJ8fEw9PT0xMyk7KXt2YXIgST1nLmdldFRva2VuT2Zmc2V0KCkrczt5KCIgIix3LEkpLHc9Zy5nZXRUb2tlbk9mZnNldCgpK2cuZ2V0VG9rZW5MZW5ndGgoKStzLFI9TD09PTEyLEE9Uj92KCk6IiIsTD1wKCl9aWYoTD09PTIpYiE9PTEmJihoLS0sQT12KCkpO2Vsc2UgaWYoTD09PTQpYiE9PTMmJihoLS0sQT12KCkpO2Vsc2V7c3dpdGNoKGIpe2Nhc2UgMzpjYXNlIDE6aCsrLEE9digpO2JyZWFrO2Nhc2UgNTpjYXNlIDEyOkE9digpO2JyZWFrO2Nhc2UgMTM6Zj9BPXYoKTpSfHwoQT0iICIpO2JyZWFrO2Nhc2UgNjpSfHwoQT0iICIpO2JyZWFrO2Nhc2UgMTA6aWYoTD09PTYpe1J8fChBPSIiKTticmVha31jYXNlIDc6Y2FzZSA4OmNhc2UgOTpjYXNlIDExOmNhc2UgMjpjYXNlIDQ6TD09PTEyfHxMPT09MTM/Unx8KEE9IiAiKTpMIT09NSYmTCE9PTE3JiYobT0hMCk7YnJlYWs7Y2FzZSAxNjptPSEwO2JyZWFrfWYmJihMPT09MTJ8fEw9PT0xMykmJihBPXYoKSl9TD09PTE3JiYoQT1uLmluc2VydEZpbmFsTmV3bGluZT91OiIiKTt2YXIgQz1nLmdldFRva2VuT2Zmc2V0KCkrczt5KEEsdyxDKSxiPUx9cmV0dXJuIHh9ZnVuY3Rpb24gZnIoZSx0KXtmb3IodmFyIG49IiIscj0wO3I8dDtyKyspbis9ZTtyZXR1cm4gbn1mdW5jdGlvbiBXbChlLHQpe2Zvcih2YXIgbj0wLHI9MCxpPXQudGFiU2l6ZXx8NDtuPGUubGVuZ3RoOyl7dmFyIHM9ZS5jaGFyQXQobik7aWYocz09PSIgIilyKys7ZWxzZSBpZihzPT09IgkiKXIrPWk7ZWxzZSBicmVhaztuKyt9cmV0dXJuIE1hdGguZmxvb3Ioci9pKX1mdW5jdGlvbiBIbChlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10LmNoYXJBdChuKTtpZihyPT09IlxyIilyZXR1cm4gbisxPHQubGVuZ3RoJiZ0LmNoYXJBdChuKzEpPT09YApgP2BccgpgOiJcciI7aWYocj09PWAKYClyZXR1cm5gCmB9cmV0dXJuIGUmJmUuZW9sfHxgCmB9ZnVuY3Rpb24ga3MoZSx0KXtyZXR1cm5gXHIKYC5pbmRleE9mKGUuY2hhckF0KHQpKSE9PS0xfXZhciBkbjsoZnVuY3Rpb24oZSl7ZS5ERUZBVUxUPXthbGxvd1RyYWlsaW5nQ29tbWE6ITF9fSkoZG58fChkbj17fSkpO2Z1bmN0aW9uIHpsKGUsdCxuKXt0PT09dm9pZCAwJiYodD1bXSksbj09PXZvaWQgMCYmKG49ZG4uREVGQVVMVCk7dmFyIHI9bnVsbCxpPVtdLHM9W107ZnVuY3Rpb24gYShsKXtBcnJheS5pc0FycmF5KGkpP2kucHVzaChsKTpyIT09bnVsbCYmKGlbcl09bCl9dmFyIG89e29uT2JqZWN0QmVnaW46ZnVuY3Rpb24oKXt2YXIgbD17fTthKGwpLHMucHVzaChpKSxpPWwscj1udWxsfSxvbk9iamVjdFByb3BlcnR5OmZ1bmN0aW9uKGwpe3I9bH0sb25PYmplY3RFbmQ6ZnVuY3Rpb24oKXtpPXMucG9wKCl9LG9uQXJyYXlCZWdpbjpmdW5jdGlvbigpe3ZhciBsPVtdO2EobCkscy5wdXNoKGkpLGk9bCxyPW51bGx9LG9uQXJyYXlFbmQ6ZnVuY3Rpb24oKXtpPXMucG9wKCl9LG9uTGl0ZXJhbFZhbHVlOmEsb25FcnJvcjpmdW5jdGlvbihsLHUsZil7dC5wdXNoKHtlcnJvcjpsLG9mZnNldDp1LGxlbmd0aDpmfSl9fTtyZXR1cm4gSmwoZSxvLG4pLGlbMF19ZnVuY3Rpb24gRXMoZSl7aWYoIWUucGFyZW50fHwhZS5wYXJlbnQuY2hpbGRyZW4pcmV0dXJuW107dmFyIHQ9RXMoZS5wYXJlbnQpO2lmKGUucGFyZW50LnR5cGU9PT0icHJvcGVydHkiKXt2YXIgbj1lLnBhcmVudC5jaGlsZHJlblswXS52YWx1ZTt0LnB1c2gobil9ZWxzZSBpZihlLnBhcmVudC50eXBlPT09ImFycmF5Iil7dmFyIHI9ZS5wYXJlbnQuY2hpbGRyZW4uaW5kZXhPZihlKTtyIT09LTEmJnQucHVzaChyKX1yZXR1cm4gdH1mdW5jdGlvbiBocihlKXtzd2l0Y2goZS50eXBlKXtjYXNlImFycmF5IjpyZXR1cm4gZS5jaGlsZHJlbi5tYXAoaHIpO2Nhc2Uib2JqZWN0Ijpmb3IodmFyIHQ9T2JqZWN0LmNyZWF0ZShudWxsKSxuPTAscj1lLmNoaWxkcmVuO248ci5sZW5ndGg7bisrKXt2YXIgaT1yW25dLHM9aS5jaGlsZHJlblsxXTtzJiYodFtpLmNoaWxkcmVuWzBdLnZhbHVlXT1ocihzKSl9cmV0dXJuIHQ7Y2FzZSJudWxsIjpjYXNlInN0cmluZyI6Y2FzZSJudW1iZXIiOmNhc2UiYm9vbGVhbiI6cmV0dXJuIGUudmFsdWU7ZGVmYXVsdDpyZXR1cm59fWZ1bmN0aW9uIEdsKGUsdCxuKXtyZXR1cm4gbj09PXZvaWQgMCYmKG49ITEpLHQ+PWUub2Zmc2V0JiZ0PGUub2Zmc2V0K2UubGVuZ3RofHxuJiZ0PT09ZS5vZmZzZXQrZS5sZW5ndGh9ZnVuY3Rpb24gUnMoZSx0LG4pe2lmKG49PT12b2lkIDAmJihuPSExKSxHbChlLHQsbikpe3ZhciByPWUuY2hpbGRyZW47aWYoQXJyYXkuaXNBcnJheShyKSlmb3IodmFyIGk9MDtpPHIubGVuZ3RoJiZyW2ldLm9mZnNldDw9dDtpKyspe3ZhciBzPVJzKHJbaV0sdCxuKTtpZihzKXJldHVybiBzfXJldHVybiBlfX1mdW5jdGlvbiBKbChlLHQsbil7bj09PXZvaWQgMCYmKG49ZG4uREVGQVVMVCk7dmFyIHI9dXIoZSwhMSk7ZnVuY3Rpb24gaShSKXtyZXR1cm4gUj9mdW5jdGlvbigpe3JldHVybiBSKHIuZ2V0VG9rZW5PZmZzZXQoKSxyLmdldFRva2VuTGVuZ3RoKCksci5nZXRUb2tlblN0YXJ0TGluZSgpLHIuZ2V0VG9rZW5TdGFydENoYXJhY3RlcigpKX06ZnVuY3Rpb24oKXtyZXR1cm4hMH19ZnVuY3Rpb24gcyhSKXtyZXR1cm4gUj9mdW5jdGlvbihJKXtyZXR1cm4gUihJLHIuZ2V0VG9rZW5PZmZzZXQoKSxyLmdldFRva2VuTGVuZ3RoKCksci5nZXRUb2tlblN0YXJ0TGluZSgpLHIuZ2V0VG9rZW5TdGFydENoYXJhY3RlcigpKX06ZnVuY3Rpb24oKXtyZXR1cm4hMH19dmFyIGE9aSh0Lm9uT2JqZWN0QmVnaW4pLG89cyh0Lm9uT2JqZWN0UHJvcGVydHkpLGw9aSh0Lm9uT2JqZWN0RW5kKSx1PWkodC5vbkFycmF5QmVnaW4pLGY9aSh0Lm9uQXJyYXlFbmQpLGg9cyh0Lm9uTGl0ZXJhbFZhbHVlKSxkPXModC5vblNlcGFyYXRvciksZz1pKHQub25Db21tZW50KSxtPXModC5vbkVycm9yKSx2PW4mJm4uZGlzYWxsb3dDb21tZW50cyxwPW4mJm4uYWxsb3dUcmFpbGluZ0NvbW1hO2Z1bmN0aW9uIHgoKXtmb3IoOzspe3ZhciBSPXIuc2NhbigpO3N3aXRjaChyLmdldFRva2VuRXJyb3IoKSl7Y2FzZSA0OnkoMTQpO2JyZWFrO2Nhc2UgNTp5KDE1KTticmVhaztjYXNlIDM6eSgxMyk7YnJlYWs7Y2FzZSAxOnZ8fHkoMTEpO2JyZWFrO2Nhc2UgMjp5KDEyKTticmVhaztjYXNlIDY6eSgxNik7YnJlYWt9c3dpdGNoKFIpe2Nhc2UgMTI6Y2FzZSAxMzp2P3koMTApOmcoKTticmVhaztjYXNlIDE2OnkoMSk7YnJlYWs7Y2FzZSAxNTpjYXNlIDE0OmJyZWFrO2RlZmF1bHQ6cmV0dXJuIFJ9fX1mdW5jdGlvbiB5KFIsSSxDKXtpZihJPT09dm9pZCAwJiYoST1bXSksQz09PXZvaWQgMCYmKEM9W10pLG0oUiksSS5sZW5ndGgrQy5sZW5ndGg+MClmb3IodmFyIF89ci5nZXRUb2tlbigpO18hPT0xNzspe2lmKEkuaW5kZXhPZihfKSE9PS0xKXt4KCk7YnJlYWt9ZWxzZSBpZihDLmluZGV4T2YoXykhPT0tMSlicmVhaztfPXgoKX19ZnVuY3Rpb24gYihSKXt2YXIgST1yLmdldFRva2VuVmFsdWUoKTtyZXR1cm4gUj9oKEkpOm8oSSkseCgpLCEwfWZ1bmN0aW9uIE4oKXtzd2l0Y2goci5nZXRUb2tlbigpKXtjYXNlIDExOnZhciBSPXIuZ2V0VG9rZW5WYWx1ZSgpLEk9TnVtYmVyKFIpO2lzTmFOKEkpJiYoeSgyKSxJPTApLGgoSSk7YnJlYWs7Y2FzZSA3OmgobnVsbCk7YnJlYWs7Y2FzZSA4OmgoITApO2JyZWFrO2Nhc2UgOTpoKCExKTticmVhaztkZWZhdWx0OnJldHVybiExfXJldHVybiB4KCksITB9ZnVuY3Rpb24gUygpe3JldHVybiByLmdldFRva2VuKCkhPT0xMD8oeSgzLFtdLFsyLDVdKSwhMSk6KGIoITEpLHIuZ2V0VG9rZW4oKT09PTY/KGQoIjoiKSx4KCksQSgpfHx5KDQsW10sWzIsNV0pKTp5KDUsW10sWzIsNV0pLCEwKX1mdW5jdGlvbiB3KCl7YSgpLHgoKTtmb3IodmFyIFI9ITE7ci5nZXRUb2tlbigpIT09MiYmci5nZXRUb2tlbigpIT09MTc7KXtpZihyLmdldFRva2VuKCk9PT01KXtpZihSfHx5KDQsW10sW10pLGQoIiwiKSx4KCksci5nZXRUb2tlbigpPT09MiYmcClicmVha31lbHNlIFImJnkoNixbXSxbXSk7UygpfHx5KDQsW10sWzIsNV0pLFI9ITB9cmV0dXJuIGwoKSxyLmdldFRva2VuKCkhPT0yP3koNyxbMl0sW10pOngoKSwhMH1mdW5jdGlvbiBMKCl7dSgpLHgoKTtmb3IodmFyIFI9ITE7ci5nZXRUb2tlbigpIT09NCYmci5nZXRUb2tlbigpIT09MTc7KXtpZihyLmdldFRva2VuKCk9PT01KXtpZihSfHx5KDQsW10sW10pLGQoIiwiKSx4KCksci5nZXRUb2tlbigpPT09NCYmcClicmVha31lbHNlIFImJnkoNixbXSxbXSk7QSgpfHx5KDQsW10sWzQsNV0pLFI9ITB9cmV0dXJuIGYoKSxyLmdldFRva2VuKCkhPT00P3koOCxbNF0sW10pOngoKSwhMH1mdW5jdGlvbiBBKCl7c3dpdGNoKHIuZ2V0VG9rZW4oKSl7Y2FzZSAzOnJldHVybiBMKCk7Y2FzZSAxOnJldHVybiB3KCk7Y2FzZSAxMDpyZXR1cm4gYighMCk7ZGVmYXVsdDpyZXR1cm4gTigpfX1yZXR1cm4geCgpLHIuZ2V0VG9rZW4oKT09PTE3P24uYWxsb3dFbXB0eUNvbnRlbnQ/ITA6KHkoNCxbXSxbXSksITEpOkEoKT8oci5nZXRUb2tlbigpIT09MTcmJnkoOSxbXSxbXSksITApOih5KDQsW10sW10pLCExKX12YXIgTnQ9dXIsWGw9emwsUWw9UnMsWmw9RXMsWWw9aHI7ZnVuY3Rpb24gS2woZSx0LG4pe3JldHVybiAkbChlLHQsbil9ZnVuY3Rpb24ganQoZSx0KXtpZihlPT09dClyZXR1cm4hMDtpZihlPT1udWxsfHx0PT09bnVsbHx8dD09PXZvaWQgMHx8dHlwZW9mIGUhPXR5cGVvZiB0fHx0eXBlb2YgZSE9Im9iamVjdCJ8fEFycmF5LmlzQXJyYXkoZSkhPT1BcnJheS5pc0FycmF5KHQpKXJldHVybiExO3ZhciBuLHI7aWYoQXJyYXkuaXNBcnJheShlKSl7aWYoZS5sZW5ndGghPT10Lmxlbmd0aClyZXR1cm4hMTtmb3Iobj0wO248ZS5sZW5ndGg7bisrKWlmKCFqdChlW25dLHRbbl0pKXJldHVybiExfWVsc2V7dmFyIGk9W107Zm9yKHIgaW4gZSlpLnB1c2gocik7aS5zb3J0KCk7dmFyIHM9W107Zm9yKHIgaW4gdClzLnB1c2gocik7aWYocy5zb3J0KCksIWp0KGkscykpcmV0dXJuITE7Zm9yKG49MDtuPGkubGVuZ3RoO24rKylpZighanQoZVtpW25dXSx0W2lbbl1dKSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiBfZShlKXtyZXR1cm4gdHlwZW9mIGU9PSJudW1iZXIifWZ1bmN0aW9uIGplKGUpe3JldHVybiB0eXBlb2YgZTwidSJ9ZnVuY3Rpb24gSWUoZSl7cmV0dXJuIHR5cGVvZiBlPT0iYm9vbGVhbiJ9ZnVuY3Rpb24gZXUoZSl7cmV0dXJuIHR5cGVvZiBlPT0ic3RyaW5nIn1mdW5jdGlvbiB0dShlLHQpe2lmKGUubGVuZ3RoPHQubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKWlmKGVbbl0hPT10W25dKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIHF0KGUsdCl7dmFyIG49ZS5sZW5ndGgtdC5sZW5ndGg7cmV0dXJuIG4+MD9lLmxhc3RJbmRleE9mKHQpPT09bjpuPT09MD9lPT09dDohMX1mdW5jdGlvbiBnbihlKXt2YXIgdD0iIjt0dShlLCIoP2kpIikmJihlPWUuc3Vic3RyaW5nKDQpLHQ9ImkiKTt0cnl7cmV0dXJuIG5ldyBSZWdFeHAoZSx0KyJ1Iil9Y2F0Y2h7dHJ5e3JldHVybiBuZXcgUmVnRXhwKGUsdCl9Y2F0Y2h7cmV0dXJufX19dmFyIE1zOyhmdW5jdGlvbihlKXtlLk1JTl9WQUxVRT0tMjE0NzQ4MzY0OCxlLk1BWF9WQUxVRT0yMTQ3NDgzNjQ3fSkoTXN8fChNcz17fSkpO3ZhciBtbjsoZnVuY3Rpb24oZSl7ZS5NSU5fVkFMVUU9MCxlLk1BWF9WQUxVRT0yMTQ3NDgzNjQ3fSkobW58fChtbj17fSkpO3ZhciBSZTsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChyLGkpe3JldHVybiByPT09TnVtYmVyLk1BWF9WQUxVRSYmKHI9bW4uTUFYX1ZBTFVFKSxpPT09TnVtYmVyLk1BWF9WQUxVRSYmKGk9bW4uTUFYX1ZBTFVFKSx7bGluZTpyLGNoYXJhY3RlcjppfX1lLmNyZWF0ZT10O2Z1bmN0aW9uIG4ocil7dmFyIGk9cjtyZXR1cm4gRS5vYmplY3RMaXRlcmFsKGkpJiZFLnVpbnRlZ2VyKGkubGluZSkmJkUudWludGVnZXIoaS5jaGFyYWN0ZXIpfWUuaXM9bn0pKFJlfHwoUmU9e30pKTt2YXIgWDsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChyLGkscyxhKXtpZihFLnVpbnRlZ2VyKHIpJiZFLnVpbnRlZ2VyKGkpJiZFLnVpbnRlZ2VyKHMpJiZFLnVpbnRlZ2VyKGEpKXJldHVybntzdGFydDpSZS5jcmVhdGUocixpKSxlbmQ6UmUuY3JlYXRlKHMsYSl9O2lmKFJlLmlzKHIpJiZSZS5pcyhpKSlyZXR1cm57c3RhcnQ6cixlbmQ6aX07dGhyb3cgbmV3IEVycm9yKCJSYW5nZSNjcmVhdGUgY2FsbGVkIHdpdGggaW52YWxpZCBhcmd1bWVudHNbIityKyIsICIraSsiLCAiK3MrIiwgIithKyJdIil9ZS5jcmVhdGU9dDtmdW5jdGlvbiBuKHIpe3ZhciBpPXI7cmV0dXJuIEUub2JqZWN0TGl0ZXJhbChpKSYmUmUuaXMoaS5zdGFydCkmJlJlLmlzKGkuZW5kKX1lLmlzPW59KShYfHwoWD17fSkpO3ZhciBCdDsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChyLGkpe3JldHVybnt1cmk6cixyYW5nZTppfX1lLmNyZWF0ZT10O2Z1bmN0aW9uIG4ocil7dmFyIGk9cjtyZXR1cm4gRS5kZWZpbmVkKGkpJiZYLmlzKGkucmFuZ2UpJiYoRS5zdHJpbmcoaS51cmkpfHxFLnVuZGVmaW5lZChpLnVyaSkpfWUuaXM9bn0pKEJ0fHwoQnQ9e30pKTt2YXIgVHM7KGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQocixpLHMsYSl7cmV0dXJue3RhcmdldFVyaTpyLHRhcmdldFJhbmdlOmksdGFyZ2V0U2VsZWN0aW9uUmFuZ2U6cyxvcmlnaW5TZWxlY3Rpb25SYW5nZTphfX1lLmNyZWF0ZT10O2Z1bmN0aW9uIG4ocil7dmFyIGk9cjtyZXR1cm4gRS5kZWZpbmVkKGkpJiZYLmlzKGkudGFyZ2V0UmFuZ2UpJiZFLnN0cmluZyhpLnRhcmdldFVyaSkmJihYLmlzKGkudGFyZ2V0U2VsZWN0aW9uUmFuZ2UpfHxFLnVuZGVmaW5lZChpLnRhcmdldFNlbGVjdGlvblJhbmdlKSkmJihYLmlzKGkub3JpZ2luU2VsZWN0aW9uUmFuZ2UpfHxFLnVuZGVmaW5lZChpLm9yaWdpblNlbGVjdGlvblJhbmdlKSl9ZS5pcz1ufSkoVHN8fChUcz17fSkpO3ZhciBkcjsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChyLGkscyxhKXtyZXR1cm57cmVkOnIsZ3JlZW46aSxibHVlOnMsYWxwaGE6YX19ZS5jcmVhdGU9dDtmdW5jdGlvbiBuKHIpe3ZhciBpPXI7cmV0dXJuIEUubnVtYmVyUmFuZ2UoaS5yZWQsMCwxKSYmRS5udW1iZXJSYW5nZShpLmdyZWVuLDAsMSkmJkUubnVtYmVyUmFuZ2UoaS5ibHVlLDAsMSkmJkUubnVtYmVyUmFuZ2UoaS5hbHBoYSwwLDEpfWUuaXM9bn0pKGRyfHwoZHI9e30pKTt2YXIgUHM7KGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQocixpKXtyZXR1cm57cmFuZ2U6cixjb2xvcjppfX1lLmNyZWF0ZT10O2Z1bmN0aW9uIG4ocil7dmFyIGk9cjtyZXR1cm4gWC5pcyhpLnJhbmdlKSYmZHIuaXMoaS5jb2xvcil9ZS5pcz1ufSkoUHN8fChQcz17fSkpO3ZhciBGczsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChyLGkscyl7cmV0dXJue2xhYmVsOnIsdGV4dEVkaXQ6aSxhZGRpdGlvbmFsVGV4dEVkaXRzOnN9fWUuY3JlYXRlPXQ7ZnVuY3Rpb24gbihyKXt2YXIgaT1yO3JldHVybiBFLnN0cmluZyhpLmxhYmVsKSYmKEUudW5kZWZpbmVkKGkudGV4dEVkaXQpfHxNZS5pcyhpKSkmJihFLnVuZGVmaW5lZChpLmFkZGl0aW9uYWxUZXh0RWRpdHMpfHxFLnR5cGVkQXJyYXkoaS5hZGRpdGlvbmFsVGV4dEVkaXRzLE1lLmlzKSl9ZS5pcz1ufSkoRnN8fChGcz17fSkpO3ZhciAkdDsoZnVuY3Rpb24oZSl7ZS5Db21tZW50PSJjb21tZW50IixlLkltcG9ydHM9ImltcG9ydHMiLGUuUmVnaW9uPSJyZWdpb24ifSkoJHR8fCgkdD17fSkpO3ZhciBJczsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChyLGkscyxhLG8pe3ZhciBsPXtzdGFydExpbmU6cixlbmRMaW5lOml9O3JldHVybiBFLmRlZmluZWQocykmJihsLnN0YXJ0Q2hhcmFjdGVyPXMpLEUuZGVmaW5lZChhKSYmKGwuZW5kQ2hhcmFjdGVyPWEpLEUuZGVmaW5lZChvKSYmKGwua2luZD1vKSxsfWUuY3JlYXRlPXQ7ZnVuY3Rpb24gbihyKXt2YXIgaT1yO3JldHVybiBFLnVpbnRlZ2VyKGkuc3RhcnRMaW5lKSYmRS51aW50ZWdlcihpLnN0YXJ0TGluZSkmJihFLnVuZGVmaW5lZChpLnN0YXJ0Q2hhcmFjdGVyKXx8RS51aW50ZWdlcihpLnN0YXJ0Q2hhcmFjdGVyKSkmJihFLnVuZGVmaW5lZChpLmVuZENoYXJhY3Rlcil8fEUudWludGVnZXIoaS5lbmRDaGFyYWN0ZXIpKSYmKEUudW5kZWZpbmVkKGkua2luZCl8fEUuc3RyaW5nKGkua2luZCkpfWUuaXM9bn0pKElzfHwoSXM9e30pKTt2YXIgZ3I7KGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQocixpKXtyZXR1cm57bG9jYXRpb246cixtZXNzYWdlOml9fWUuY3JlYXRlPXQ7ZnVuY3Rpb24gbihyKXt2YXIgaT1yO3JldHVybiBFLmRlZmluZWQoaSkmJkJ0LmlzKGkubG9jYXRpb24pJiZFLnN0cmluZyhpLm1lc3NhZ2UpfWUuaXM9bn0pKGdyfHwoZ3I9e30pKTt2YXIgd2U7KGZ1bmN0aW9uKGUpe2UuRXJyb3I9MSxlLldhcm5pbmc9MixlLkluZm9ybWF0aW9uPTMsZS5IaW50PTR9KSh3ZXx8KHdlPXt9KSk7dmFyIERzOyhmdW5jdGlvbihlKXtlLlVubmVjZXNzYXJ5PTEsZS5EZXByZWNhdGVkPTJ9KShEc3x8KERzPXt9KSk7dmFyIFZzOyhmdW5jdGlvbihlKXtmdW5jdGlvbiB0KG4pe3ZhciByPW47cmV0dXJuIHIhPW51bGwmJkUuc3RyaW5nKHIuaHJlZil9ZS5pcz10fSkoVnN8fChWcz17fSkpO3ZhciBxZTsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChyLGkscyxhLG8sbCl7dmFyIHU9e3JhbmdlOnIsbWVzc2FnZTppfTtyZXR1cm4gRS5kZWZpbmVkKHMpJiYodS5zZXZlcml0eT1zKSxFLmRlZmluZWQoYSkmJih1LmNvZGU9YSksRS5kZWZpbmVkKG8pJiYodS5zb3VyY2U9byksRS5kZWZpbmVkKGwpJiYodS5yZWxhdGVkSW5mb3JtYXRpb249bCksdX1lLmNyZWF0ZT10O2Z1bmN0aW9uIG4ocil7dmFyIGkscz1yO3JldHVybiBFLmRlZmluZWQocykmJlguaXMocy5yYW5nZSkmJkUuc3RyaW5nKHMubWVzc2FnZSkmJihFLm51bWJlcihzLnNldmVyaXR5KXx8RS51bmRlZmluZWQocy5zZXZlcml0eSkpJiYoRS5pbnRlZ2VyKHMuY29kZSl8fEUuc3RyaW5nKHMuY29kZSl8fEUudW5kZWZpbmVkKHMuY29kZSkpJiYoRS51bmRlZmluZWQocy5jb2RlRGVzY3JpcHRpb24pfHxFLnN0cmluZygoaT1zLmNvZGVEZXNjcmlwdGlvbik9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLmhyZWYpKSYmKEUuc3RyaW5nKHMuc291cmNlKXx8RS51bmRlZmluZWQocy5zb3VyY2UpKSYmKEUudW5kZWZpbmVkKHMucmVsYXRlZEluZm9ybWF0aW9uKXx8RS50eXBlZEFycmF5KHMucmVsYXRlZEluZm9ybWF0aW9uLGdyLmlzKSl9ZS5pcz1ufSkocWV8fChxZT17fSkpO3ZhciBXdDsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChyLGkpe2Zvcih2YXIgcz1bXSxhPTI7YTxhcmd1bWVudHMubGVuZ3RoO2ErKylzW2EtMl09YXJndW1lbnRzW2FdO3ZhciBvPXt0aXRsZTpyLGNvbW1hbmQ6aX07cmV0dXJuIEUuZGVmaW5lZChzKSYmcy5sZW5ndGg+MCYmKG8uYXJndW1lbnRzPXMpLG99ZS5jcmVhdGU9dDtmdW5jdGlvbiBuKHIpe3ZhciBpPXI7cmV0dXJuIEUuZGVmaW5lZChpKSYmRS5zdHJpbmcoaS50aXRsZSkmJkUuc3RyaW5nKGkuY29tbWFuZCl9ZS5pcz1ufSkoV3R8fChXdD17fSkpO3ZhciBNZTsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChzLGEpe3JldHVybntyYW5nZTpzLG5ld1RleHQ6YX19ZS5yZXBsYWNlPXQ7ZnVuY3Rpb24gbihzLGEpe3JldHVybntyYW5nZTp7c3RhcnQ6cyxlbmQ6c30sbmV3VGV4dDphfX1lLmluc2VydD1uO2Z1bmN0aW9uIHIocyl7cmV0dXJue3JhbmdlOnMsbmV3VGV4dDoiIn19ZS5kZWw9cjtmdW5jdGlvbiBpKHMpe3ZhciBhPXM7cmV0dXJuIEUub2JqZWN0TGl0ZXJhbChhKSYmRS5zdHJpbmcoYS5uZXdUZXh0KSYmWC5pcyhhLnJhbmdlKX1lLmlzPWl9KShNZXx8KE1lPXt9KSk7dmFyIEx0OyhmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHIsaSxzKXt2YXIgYT17bGFiZWw6cn07cmV0dXJuIGkhPT12b2lkIDAmJihhLm5lZWRzQ29uZmlybWF0aW9uPWkpLHMhPT12b2lkIDAmJihhLmRlc2NyaXB0aW9uPXMpLGF9ZS5jcmVhdGU9dDtmdW5jdGlvbiBuKHIpe3ZhciBpPXI7cmV0dXJuIGkhPT12b2lkIDAmJkUub2JqZWN0TGl0ZXJhbChpKSYmRS5zdHJpbmcoaS5sYWJlbCkmJihFLmJvb2xlYW4oaS5uZWVkc0NvbmZpcm1hdGlvbil8fGkubmVlZHNDb25maXJtYXRpb249PT12b2lkIDApJiYoRS5zdHJpbmcoaS5kZXNjcmlwdGlvbil8fGkuZGVzY3JpcHRpb249PT12b2lkIDApfWUuaXM9bn0pKEx0fHwoTHQ9e30pKTt2YXIgZmU7KGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQobil7dmFyIHI9bjtyZXR1cm4gdHlwZW9mIHI9PSJzdHJpbmcifWUuaXM9dH0pKGZlfHwoZmU9e30pKTt2YXIgWWU7KGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQocyxhLG8pe3JldHVybntyYW5nZTpzLG5ld1RleHQ6YSxhbm5vdGF0aW9uSWQ6b319ZS5yZXBsYWNlPXQ7ZnVuY3Rpb24gbihzLGEsbyl7cmV0dXJue3JhbmdlOntzdGFydDpzLGVuZDpzfSxuZXdUZXh0OmEsYW5ub3RhdGlvbklkOm99fWUuaW5zZXJ0PW47ZnVuY3Rpb24gcihzLGEpe3JldHVybntyYW5nZTpzLG5ld1RleHQ6IiIsYW5ub3RhdGlvbklkOmF9fWUuZGVsPXI7ZnVuY3Rpb24gaShzKXt2YXIgYT1zO3JldHVybiBNZS5pcyhhKSYmKEx0LmlzKGEuYW5ub3RhdGlvbklkKXx8ZmUuaXMoYS5hbm5vdGF0aW9uSWQpKX1lLmlzPWl9KShZZXx8KFllPXt9KSk7dmFyIHBuOyhmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHIsaSl7cmV0dXJue3RleHREb2N1bWVudDpyLGVkaXRzOml9fWUuY3JlYXRlPXQ7ZnVuY3Rpb24gbihyKXt2YXIgaT1yO3JldHVybiBFLmRlZmluZWQoaSkmJmJuLmlzKGkudGV4dERvY3VtZW50KSYmQXJyYXkuaXNBcnJheShpLmVkaXRzKX1lLmlzPW59KShwbnx8KHBuPXt9KSk7dmFyIEh0OyhmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHIsaSxzKXt2YXIgYT17a2luZDoiY3JlYXRlIix1cmk6cn07cmV0dXJuIGkhPT12b2lkIDAmJihpLm92ZXJ3cml0ZSE9PXZvaWQgMHx8aS5pZ25vcmVJZkV4aXN0cyE9PXZvaWQgMCkmJihhLm9wdGlvbnM9aSkscyE9PXZvaWQgMCYmKGEuYW5ub3RhdGlvbklkPXMpLGF9ZS5jcmVhdGU9dDtmdW5jdGlvbiBuKHIpe3ZhciBpPXI7cmV0dXJuIGkmJmkua2luZD09PSJjcmVhdGUiJiZFLnN0cmluZyhpLnVyaSkmJihpLm9wdGlvbnM9PT12b2lkIDB8fChpLm9wdGlvbnMub3ZlcndyaXRlPT09dm9pZCAwfHxFLmJvb2xlYW4oaS5vcHRpb25zLm92ZXJ3cml0ZSkpJiYoaS5vcHRpb25zLmlnbm9yZUlmRXhpc3RzPT09dm9pZCAwfHxFLmJvb2xlYW4oaS5vcHRpb25zLmlnbm9yZUlmRXhpc3RzKSkpJiYoaS5hbm5vdGF0aW9uSWQ9PT12b2lkIDB8fGZlLmlzKGkuYW5ub3RhdGlvbklkKSl9ZS5pcz1ufSkoSHR8fChIdD17fSkpO3ZhciB6dDsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChyLGkscyxhKXt2YXIgbz17a2luZDoicmVuYW1lIixvbGRVcmk6cixuZXdVcmk6aX07cmV0dXJuIHMhPT12b2lkIDAmJihzLm92ZXJ3cml0ZSE9PXZvaWQgMHx8cy5pZ25vcmVJZkV4aXN0cyE9PXZvaWQgMCkmJihvLm9wdGlvbnM9cyksYSE9PXZvaWQgMCYmKG8uYW5ub3RhdGlvbklkPWEpLG99ZS5jcmVhdGU9dDtmdW5jdGlvbiBuKHIpe3ZhciBpPXI7cmV0dXJuIGkmJmkua2luZD09PSJyZW5hbWUiJiZFLnN0cmluZyhpLm9sZFVyaSkmJkUuc3RyaW5nKGkubmV3VXJpKSYmKGkub3B0aW9ucz09PXZvaWQgMHx8KGkub3B0aW9ucy5vdmVyd3JpdGU9PT12b2lkIDB8fEUuYm9vbGVhbihpLm9wdGlvbnMub3ZlcndyaXRlKSkmJihpLm9wdGlvbnMuaWdub3JlSWZFeGlzdHM9PT12b2lkIDB8fEUuYm9vbGVhbihpLm9wdGlvbnMuaWdub3JlSWZFeGlzdHMpKSkmJihpLmFubm90YXRpb25JZD09PXZvaWQgMHx8ZmUuaXMoaS5hbm5vdGF0aW9uSWQpKX1lLmlzPW59KSh6dHx8KHp0PXt9KSk7dmFyIEd0OyhmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHIsaSxzKXt2YXIgYT17a2luZDoiZGVsZXRlIix1cmk6cn07cmV0dXJuIGkhPT12b2lkIDAmJihpLnJlY3Vyc2l2ZSE9PXZvaWQgMHx8aS5pZ25vcmVJZk5vdEV4aXN0cyE9PXZvaWQgMCkmJihhLm9wdGlvbnM9aSkscyE9PXZvaWQgMCYmKGEuYW5ub3RhdGlvbklkPXMpLGF9ZS5jcmVhdGU9dDtmdW5jdGlvbiBuKHIpe3ZhciBpPXI7cmV0dXJuIGkmJmkua2luZD09PSJkZWxldGUiJiZFLnN0cmluZyhpLnVyaSkmJihpLm9wdGlvbnM9PT12b2lkIDB8fChpLm9wdGlvbnMucmVjdXJzaXZlPT09dm9pZCAwfHxFLmJvb2xlYW4oaS5vcHRpb25zLnJlY3Vyc2l2ZSkpJiYoaS5vcHRpb25zLmlnbm9yZUlmTm90RXhpc3RzPT09dm9pZCAwfHxFLmJvb2xlYW4oaS5vcHRpb25zLmlnbm9yZUlmTm90RXhpc3RzKSkpJiYoaS5hbm5vdGF0aW9uSWQ9PT12b2lkIDB8fGZlLmlzKGkuYW5ub3RhdGlvbklkKSl9ZS5pcz1ufSkoR3R8fChHdD17fSkpO3ZhciBtcjsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChuKXt2YXIgcj1uO3JldHVybiByJiYoci5jaGFuZ2VzIT09dm9pZCAwfHxyLmRvY3VtZW50Q2hhbmdlcyE9PXZvaWQgMCkmJihyLmRvY3VtZW50Q2hhbmdlcz09PXZvaWQgMHx8ci5kb2N1bWVudENoYW5nZXMuZXZlcnkoZnVuY3Rpb24oaSl7cmV0dXJuIEUuc3RyaW5nKGkua2luZCk/SHQuaXMoaSl8fHp0LmlzKGkpfHxHdC5pcyhpKTpwbi5pcyhpKX0pKX1lLmlzPXR9KShtcnx8KG1yPXt9KSk7dmFyIHZuPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LG4pe3RoaXMuZWRpdHM9dCx0aGlzLmNoYW5nZUFubm90YXRpb25zPW59cmV0dXJuIGUucHJvdG90eXBlLmluc2VydD1mdW5jdGlvbih0LG4scil7dmFyIGkscztpZihyPT09dm9pZCAwP2k9TWUuaW5zZXJ0KHQsbik6ZmUuaXMocik/KHM9cixpPVllLmluc2VydCh0LG4scikpOih0aGlzLmFzc2VydENoYW5nZUFubm90YXRpb25zKHRoaXMuY2hhbmdlQW5ub3RhdGlvbnMpLHM9dGhpcy5jaGFuZ2VBbm5vdGF0aW9ucy5tYW5hZ2UociksaT1ZZS5pbnNlcnQodCxuLHMpKSx0aGlzLmVkaXRzLnB1c2goaSkscyE9PXZvaWQgMClyZXR1cm4gc30sZS5wcm90b3R5cGUucmVwbGFjZT1mdW5jdGlvbih0LG4scil7dmFyIGkscztpZihyPT09dm9pZCAwP2k9TWUucmVwbGFjZSh0LG4pOmZlLmlzKHIpPyhzPXIsaT1ZZS5yZXBsYWNlKHQsbixyKSk6KHRoaXMuYXNzZXJ0Q2hhbmdlQW5ub3RhdGlvbnModGhpcy5jaGFuZ2VBbm5vdGF0aW9ucykscz10aGlzLmNoYW5nZUFubm90YXRpb25zLm1hbmFnZShyKSxpPVllLnJlcGxhY2UodCxuLHMpKSx0aGlzLmVkaXRzLnB1c2goaSkscyE9PXZvaWQgMClyZXR1cm4gc30sZS5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQsbil7dmFyIHIsaTtpZihuPT09dm9pZCAwP3I9TWUuZGVsKHQpOmZlLmlzKG4pPyhpPW4scj1ZZS5kZWwodCxuKSk6KHRoaXMuYXNzZXJ0Q2hhbmdlQW5ub3RhdGlvbnModGhpcy5jaGFuZ2VBbm5vdGF0aW9ucyksaT10aGlzLmNoYW5nZUFubm90YXRpb25zLm1hbmFnZShuKSxyPVllLmRlbCh0LGkpKSx0aGlzLmVkaXRzLnB1c2gociksaSE9PXZvaWQgMClyZXR1cm4gaX0sZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQpe3RoaXMuZWRpdHMucHVzaCh0KX0sZS5wcm90b3R5cGUuYWxsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRpdHN9LGUucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5lZGl0cy5zcGxpY2UoMCx0aGlzLmVkaXRzLmxlbmd0aCl9LGUucHJvdG90eXBlLmFzc2VydENoYW5nZUFubm90YXRpb25zPWZ1bmN0aW9uKHQpe2lmKHQ9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJUZXh0IGVkaXQgY2hhbmdlIGlzIG5vdCBjb25maWd1cmVkIHRvIG1hbmFnZSBjaGFuZ2UgYW5ub3RhdGlvbnMuIil9LGV9KCksT3M9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpe3RoaXMuX2Fubm90YXRpb25zPXQ9PT12b2lkIDA/T2JqZWN0LmNyZWF0ZShudWxsKTp0LHRoaXMuX2NvdW50ZXI9MCx0aGlzLl9zaXplPTB9cmV0dXJuIGUucHJvdG90eXBlLmFsbD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hbm5vdGF0aW9uc30sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJzaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NpemV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUubWFuYWdlPWZ1bmN0aW9uKHQsbil7dmFyIHI7aWYoZmUuaXModCk/cj10OihyPXRoaXMubmV4dElkKCksbj10KSx0aGlzLl9hbm5vdGF0aW9uc1tyXSE9PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoIklkICIrcisiIGlzIGFscmVhZHkgaW4gdXNlLiIpO2lmKG49PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJObyBhbm5vdGF0aW9uIHByb3ZpZGVkIGZvciBpZCAiK3IpO3JldHVybiB0aGlzLl9hbm5vdGF0aW9uc1tyXT1uLHRoaXMuX3NpemUrKyxyfSxlLnByb3RvdHlwZS5uZXh0SWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY291bnRlcisrLHRoaXMuX2NvdW50ZXIudG9TdHJpbmcoKX0sZX0oKTsoZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQpe3ZhciBuPXRoaXM7dGhpcy5fdGV4dEVkaXRDaGFuZ2VzPU9iamVjdC5jcmVhdGUobnVsbCksdCE9PXZvaWQgMD8odGhpcy5fd29ya3NwYWNlRWRpdD10LHQuZG9jdW1lbnRDaGFuZ2VzPyh0aGlzLl9jaGFuZ2VBbm5vdGF0aW9ucz1uZXcgT3ModC5jaGFuZ2VBbm5vdGF0aW9ucyksdC5jaGFuZ2VBbm5vdGF0aW9ucz10aGlzLl9jaGFuZ2VBbm5vdGF0aW9ucy5hbGwoKSx0LmRvY3VtZW50Q2hhbmdlcy5mb3JFYWNoKGZ1bmN0aW9uKHIpe2lmKHBuLmlzKHIpKXt2YXIgaT1uZXcgdm4oci5lZGl0cyxuLl9jaGFuZ2VBbm5vdGF0aW9ucyk7bi5fdGV4dEVkaXRDaGFuZ2VzW3IudGV4dERvY3VtZW50LnVyaV09aX19KSk6dC5jaGFuZ2VzJiZPYmplY3Qua2V5cyh0LmNoYW5nZXMpLmZvckVhY2goZnVuY3Rpb24ocil7dmFyIGk9bmV3IHZuKHQuY2hhbmdlc1tyXSk7bi5fdGV4dEVkaXRDaGFuZ2VzW3JdPWl9KSk6dGhpcy5fd29ya3NwYWNlRWRpdD17fX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJlZGl0Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5pdERvY3VtZW50Q2hhbmdlcygpLHRoaXMuX2NoYW5nZUFubm90YXRpb25zIT09dm9pZCAwJiYodGhpcy5fY2hhbmdlQW5ub3RhdGlvbnMuc2l6ZT09PTA/dGhpcy5fd29ya3NwYWNlRWRpdC5jaGFuZ2VBbm5vdGF0aW9ucz12b2lkIDA6dGhpcy5fd29ya3NwYWNlRWRpdC5jaGFuZ2VBbm5vdGF0aW9ucz10aGlzLl9jaGFuZ2VBbm5vdGF0aW9ucy5hbGwoKSksdGhpcy5fd29ya3NwYWNlRWRpdH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS5nZXRUZXh0RWRpdENoYW5nZT1mdW5jdGlvbih0KXtpZihibi5pcyh0KSl7aWYodGhpcy5pbml0RG9jdW1lbnRDaGFuZ2VzKCksdGhpcy5fd29ya3NwYWNlRWRpdC5kb2N1bWVudENoYW5nZXM9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJXb3Jrc3BhY2UgZWRpdCBpcyBub3QgY29uZmlndXJlZCBmb3IgZG9jdW1lbnQgY2hhbmdlcy4iKTt2YXIgbj17dXJpOnQudXJpLHZlcnNpb246dC52ZXJzaW9ufSxyPXRoaXMuX3RleHRFZGl0Q2hhbmdlc1tuLnVyaV07aWYoIXIpe3ZhciBpPVtdLHM9e3RleHREb2N1bWVudDpuLGVkaXRzOml9O3RoaXMuX3dvcmtzcGFjZUVkaXQuZG9jdW1lbnRDaGFuZ2VzLnB1c2gocykscj1uZXcgdm4oaSx0aGlzLl9jaGFuZ2VBbm5vdGF0aW9ucyksdGhpcy5fdGV4dEVkaXRDaGFuZ2VzW24udXJpXT1yfXJldHVybiByfWVsc2V7aWYodGhpcy5pbml0Q2hhbmdlcygpLHRoaXMuX3dvcmtzcGFjZUVkaXQuY2hhbmdlcz09PXZvaWQgMCl0aHJvdyBuZXcgRXJyb3IoIldvcmtzcGFjZSBlZGl0IGlzIG5vdCBjb25maWd1cmVkIGZvciBub3JtYWwgdGV4dCBlZGl0IGNoYW5nZXMuIik7dmFyIHI9dGhpcy5fdGV4dEVkaXRDaGFuZ2VzW3RdO2lmKCFyKXt2YXIgaT1bXTt0aGlzLl93b3Jrc3BhY2VFZGl0LmNoYW5nZXNbdF09aSxyPW5ldyB2bihpKSx0aGlzLl90ZXh0RWRpdENoYW5nZXNbdF09cn1yZXR1cm4gcn19LGUucHJvdG90eXBlLmluaXREb2N1bWVudENoYW5nZXM9ZnVuY3Rpb24oKXt0aGlzLl93b3Jrc3BhY2VFZGl0LmRvY3VtZW50Q2hhbmdlcz09PXZvaWQgMCYmdGhpcy5fd29ya3NwYWNlRWRpdC5jaGFuZ2VzPT09dm9pZCAwJiYodGhpcy5fY2hhbmdlQW5ub3RhdGlvbnM9bmV3IE9zLHRoaXMuX3dvcmtzcGFjZUVkaXQuZG9jdW1lbnRDaGFuZ2VzPVtdLHRoaXMuX3dvcmtzcGFjZUVkaXQuY2hhbmdlQW5ub3RhdGlvbnM9dGhpcy5fY2hhbmdlQW5ub3RhdGlvbnMuYWxsKCkpfSxlLnByb3RvdHlwZS5pbml0Q2hhbmdlcz1mdW5jdGlvbigpe3RoaXMuX3dvcmtzcGFjZUVkaXQuZG9jdW1lbnRDaGFuZ2VzPT09dm9pZCAwJiZ0aGlzLl93b3Jrc3BhY2VFZGl0LmNoYW5nZXM9PT12b2lkIDAmJih0aGlzLl93b3Jrc3BhY2VFZGl0LmNoYW5nZXM9T2JqZWN0LmNyZWF0ZShudWxsKSl9LGUucHJvdG90eXBlLmNyZWF0ZUZpbGU9ZnVuY3Rpb24odCxuLHIpe2lmKHRoaXMuaW5pdERvY3VtZW50Q2hhbmdlcygpLHRoaXMuX3dvcmtzcGFjZUVkaXQuZG9jdW1lbnRDaGFuZ2VzPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcigiV29ya3NwYWNlIGVkaXQgaXMgbm90IGNvbmZpZ3VyZWQgZm9yIGRvY3VtZW50IGNoYW5nZXMuIik7dmFyIGk7THQuaXMobil8fGZlLmlzKG4pP2k9bjpyPW47dmFyIHMsYTtpZihpPT09dm9pZCAwP3M9SHQuY3JlYXRlKHQscik6KGE9ZmUuaXMoaSk/aTp0aGlzLl9jaGFuZ2VBbm5vdGF0aW9ucy5tYW5hZ2UoaSkscz1IdC5jcmVhdGUodCxyLGEpKSx0aGlzLl93b3Jrc3BhY2VFZGl0LmRvY3VtZW50Q2hhbmdlcy5wdXNoKHMpLGEhPT12b2lkIDApcmV0dXJuIGF9LGUucHJvdG90eXBlLnJlbmFtZUZpbGU9ZnVuY3Rpb24odCxuLHIsaSl7aWYodGhpcy5pbml0RG9jdW1lbnRDaGFuZ2VzKCksdGhpcy5fd29ya3NwYWNlRWRpdC5kb2N1bWVudENoYW5nZXM9PT12b2lkIDApdGhyb3cgbmV3IEVycm9yKCJXb3Jrc3BhY2UgZWRpdCBpcyBub3QgY29uZmlndXJlZCBmb3IgZG9jdW1lbnQgY2hhbmdlcy4iKTt2YXIgcztMdC5pcyhyKXx8ZmUuaXMocik/cz1yOmk9cjt2YXIgYSxvO2lmKHM9PT12b2lkIDA/YT16dC5jcmVhdGUodCxuLGkpOihvPWZlLmlzKHMpP3M6dGhpcy5fY2hhbmdlQW5ub3RhdGlvbnMubWFuYWdlKHMpLGE9enQuY3JlYXRlKHQsbixpLG8pKSx0aGlzLl93b3Jrc3BhY2VFZGl0LmRvY3VtZW50Q2hhbmdlcy5wdXNoKGEpLG8hPT12b2lkIDApcmV0dXJuIG99LGUucHJvdG90eXBlLmRlbGV0ZUZpbGU9ZnVuY3Rpb24odCxuLHIpe2lmKHRoaXMuaW5pdERvY3VtZW50Q2hhbmdlcygpLHRoaXMuX3dvcmtzcGFjZUVkaXQuZG9jdW1lbnRDaGFuZ2VzPT09dm9pZCAwKXRocm93IG5ldyBFcnJvcigiV29ya3NwYWNlIGVkaXQgaXMgbm90IGNvbmZpZ3VyZWQgZm9yIGRvY3VtZW50IGNoYW5nZXMuIik7dmFyIGk7THQuaXMobil8fGZlLmlzKG4pP2k9bjpyPW47dmFyIHMsYTtpZihpPT09dm9pZCAwP3M9R3QuY3JlYXRlKHQscik6KGE9ZmUuaXMoaSk/aTp0aGlzLl9jaGFuZ2VBbm5vdGF0aW9ucy5tYW5hZ2UoaSkscz1HdC5jcmVhdGUodCxyLGEpKSx0aGlzLl93b3Jrc3BhY2VFZGl0LmRvY3VtZW50Q2hhbmdlcy5wdXNoKHMpLGEhPT12b2lkIDApcmV0dXJuIGF9LGV9KSgpO3ZhciBVczsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChyKXtyZXR1cm57dXJpOnJ9fWUuY3JlYXRlPXQ7ZnVuY3Rpb24gbihyKXt2YXIgaT1yO3JldHVybiBFLmRlZmluZWQoaSkmJkUuc3RyaW5nKGkudXJpKX1lLmlzPW59KShVc3x8KFVzPXt9KSk7dmFyIGpzOyhmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHIsaSl7cmV0dXJue3VyaTpyLHZlcnNpb246aX19ZS5jcmVhdGU9dDtmdW5jdGlvbiBuKHIpe3ZhciBpPXI7cmV0dXJuIEUuZGVmaW5lZChpKSYmRS5zdHJpbmcoaS51cmkpJiZFLmludGVnZXIoaS52ZXJzaW9uKX1lLmlzPW59KShqc3x8KGpzPXt9KSk7dmFyIGJuOyhmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHIsaSl7cmV0dXJue3VyaTpyLHZlcnNpb246aX19ZS5jcmVhdGU9dDtmdW5jdGlvbiBuKHIpe3ZhciBpPXI7cmV0dXJuIEUuZGVmaW5lZChpKSYmRS5zdHJpbmcoaS51cmkpJiYoaS52ZXJzaW9uPT09bnVsbHx8RS5pbnRlZ2VyKGkudmVyc2lvbikpfWUuaXM9bn0pKGJufHwoYm49e30pKTt2YXIgcXM7KGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQocixpLHMsYSl7cmV0dXJue3VyaTpyLGxhbmd1YWdlSWQ6aSx2ZXJzaW9uOnMsdGV4dDphfX1lLmNyZWF0ZT10O2Z1bmN0aW9uIG4ocil7dmFyIGk9cjtyZXR1cm4gRS5kZWZpbmVkKGkpJiZFLnN0cmluZyhpLnVyaSkmJkUuc3RyaW5nKGkubGFuZ3VhZ2VJZCkmJkUuaW50ZWdlcihpLnZlcnNpb24pJiZFLnN0cmluZyhpLnRleHQpfWUuaXM9bn0pKHFzfHwocXM9e30pKTt2YXIgQmU7KGZ1bmN0aW9uKGUpe2UuUGxhaW5UZXh0PSJwbGFpbnRleHQiLGUuTWFya2Rvd249Im1hcmtkb3duIn0pKEJlfHwoQmU9e30pKSxmdW5jdGlvbihlKXtmdW5jdGlvbiB0KG4pe3ZhciByPW47cmV0dXJuIHI9PT1lLlBsYWluVGV4dHx8cj09PWUuTWFya2Rvd259ZS5pcz10fShCZXx8KEJlPXt9KSk7dmFyIHByOyhmdW5jdGlvbihlKXtmdW5jdGlvbiB0KG4pe3ZhciByPW47cmV0dXJuIEUub2JqZWN0TGl0ZXJhbChuKSYmQmUuaXMoci5raW5kKSYmRS5zdHJpbmcoci52YWx1ZSl9ZS5pcz10fSkocHJ8fChwcj17fSkpO3ZhciBTZTsoZnVuY3Rpb24oZSl7ZS5UZXh0PTEsZS5NZXRob2Q9MixlLkZ1bmN0aW9uPTMsZS5Db25zdHJ1Y3Rvcj00LGUuRmllbGQ9NSxlLlZhcmlhYmxlPTYsZS5DbGFzcz03LGUuSW50ZXJmYWNlPTgsZS5Nb2R1bGU9OSxlLlByb3BlcnR5PTEwLGUuVW5pdD0xMSxlLlZhbHVlPTEyLGUuRW51bT0xMyxlLktleXdvcmQ9MTQsZS5TbmlwcGV0PTE1LGUuQ29sb3I9MTYsZS5GaWxlPTE3LGUuUmVmZXJlbmNlPTE4LGUuRm9sZGVyPTE5LGUuRW51bU1lbWJlcj0yMCxlLkNvbnN0YW50PTIxLGUuU3RydWN0PTIyLGUuRXZlbnQ9MjMsZS5PcGVyYXRvcj0yNCxlLlR5cGVQYXJhbWV0ZXI9MjV9KShTZXx8KFNlPXt9KSk7dmFyIGllOyhmdW5jdGlvbihlKXtlLlBsYWluVGV4dD0xLGUuU25pcHBldD0yfSkoaWV8fChpZT17fSkpO3ZhciBCczsoZnVuY3Rpb24oZSl7ZS5EZXByZWNhdGVkPTF9KShCc3x8KEJzPXt9KSk7dmFyICRzOyhmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHIsaSxzKXtyZXR1cm57bmV3VGV4dDpyLGluc2VydDppLHJlcGxhY2U6c319ZS5jcmVhdGU9dDtmdW5jdGlvbiBuKHIpe3ZhciBpPXI7cmV0dXJuIGkmJkUuc3RyaW5nKGkubmV3VGV4dCkmJlguaXMoaS5pbnNlcnQpJiZYLmlzKGkucmVwbGFjZSl9ZS5pcz1ufSkoJHN8fCgkcz17fSkpO3ZhciBXczsoZnVuY3Rpb24oZSl7ZS5hc0lzPTEsZS5hZGp1c3RJbmRlbnRhdGlvbj0yfSkoV3N8fChXcz17fSkpO3ZhciB2cjsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChuKXtyZXR1cm57bGFiZWw6bn19ZS5jcmVhdGU9dH0pKHZyfHwodnI9e30pKTt2YXIgSHM7KGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQobixyKXtyZXR1cm57aXRlbXM6bnx8W10saXNJbmNvbXBsZXRlOiEhcn19ZS5jcmVhdGU9dH0pKEhzfHwoSHM9e30pKTt2YXIgeG47KGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQocil7cmV0dXJuIHIucmVwbGFjZSgvW1xcYCpfe31bXF0oKSMrXC0uIV0vZywiXFwkJiIpfWUuZnJvbVBsYWluVGV4dD10O2Z1bmN0aW9uIG4ocil7dmFyIGk9cjtyZXR1cm4gRS5zdHJpbmcoaSl8fEUub2JqZWN0TGl0ZXJhbChpKSYmRS5zdHJpbmcoaS5sYW5ndWFnZSkmJkUuc3RyaW5nKGkudmFsdWUpfWUuaXM9bn0pKHhufHwoeG49e30pKTt2YXIgenM7KGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQobil7dmFyIHI9bjtyZXR1cm4hIXImJkUub2JqZWN0TGl0ZXJhbChyKSYmKHByLmlzKHIuY29udGVudHMpfHx4bi5pcyhyLmNvbnRlbnRzKXx8RS50eXBlZEFycmF5KHIuY29udGVudHMseG4uaXMpKSYmKG4ucmFuZ2U9PT12b2lkIDB8fFguaXMobi5yYW5nZSkpfWUuaXM9dH0pKHpzfHwoenM9e30pKTt2YXIgR3M7KGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQobixyKXtyZXR1cm4gcj97bGFiZWw6bixkb2N1bWVudGF0aW9uOnJ9OntsYWJlbDpufX1lLmNyZWF0ZT10fSkoR3N8fChHcz17fSkpO3ZhciBKczsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChuLHIpe2Zvcih2YXIgaT1bXSxzPTI7czxhcmd1bWVudHMubGVuZ3RoO3MrKylpW3MtMl09YXJndW1lbnRzW3NdO3ZhciBhPXtsYWJlbDpufTtyZXR1cm4gRS5kZWZpbmVkKHIpJiYoYS5kb2N1bWVudGF0aW9uPXIpLEUuZGVmaW5lZChpKT9hLnBhcmFtZXRlcnM9aTphLnBhcmFtZXRlcnM9W10sYX1lLmNyZWF0ZT10fSkoSnN8fChKcz17fSkpO3ZhciBYczsoZnVuY3Rpb24oZSl7ZS5UZXh0PTEsZS5SZWFkPTIsZS5Xcml0ZT0zfSkoWHN8fChYcz17fSkpO3ZhciBRczsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChuLHIpe3ZhciBpPXtyYW5nZTpufTtyZXR1cm4gRS5udW1iZXIocikmJihpLmtpbmQ9ciksaX1lLmNyZWF0ZT10fSkoUXN8fChRcz17fSkpO3ZhciBEZTsoZnVuY3Rpb24oZSl7ZS5GaWxlPTEsZS5Nb2R1bGU9MixlLk5hbWVzcGFjZT0zLGUuUGFja2FnZT00LGUuQ2xhc3M9NSxlLk1ldGhvZD02LGUuUHJvcGVydHk9NyxlLkZpZWxkPTgsZS5Db25zdHJ1Y3Rvcj05LGUuRW51bT0xMCxlLkludGVyZmFjZT0xMSxlLkZ1bmN0aW9uPTEyLGUuVmFyaWFibGU9MTMsZS5Db25zdGFudD0xNCxlLlN0cmluZz0xNSxlLk51bWJlcj0xNixlLkJvb2xlYW49MTcsZS5BcnJheT0xOCxlLk9iamVjdD0xOSxlLktleT0yMCxlLk51bGw9MjEsZS5FbnVtTWVtYmVyPTIyLGUuU3RydWN0PTIzLGUuRXZlbnQ9MjQsZS5PcGVyYXRvcj0yNSxlLlR5cGVQYXJhbWV0ZXI9MjZ9KShEZXx8KERlPXt9KSk7dmFyIFpzOyhmdW5jdGlvbihlKXtlLkRlcHJlY2F0ZWQ9MX0pKFpzfHwoWnM9e30pKTt2YXIgWXM7KGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQobixyLGkscyxhKXt2YXIgbz17bmFtZTpuLGtpbmQ6cixsb2NhdGlvbjp7dXJpOnMscmFuZ2U6aX19O3JldHVybiBhJiYoby5jb250YWluZXJOYW1lPWEpLG99ZS5jcmVhdGU9dH0pKFlzfHwoWXM9e30pKTt2YXIgS3M7KGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQocixpLHMsYSxvLGwpe3ZhciB1PXtuYW1lOnIsZGV0YWlsOmksa2luZDpzLHJhbmdlOmEsc2VsZWN0aW9uUmFuZ2U6b307cmV0dXJuIGwhPT12b2lkIDAmJih1LmNoaWxkcmVuPWwpLHV9ZS5jcmVhdGU9dDtmdW5jdGlvbiBuKHIpe3ZhciBpPXI7cmV0dXJuIGkmJkUuc3RyaW5nKGkubmFtZSkmJkUubnVtYmVyKGkua2luZCkmJlguaXMoaS5yYW5nZSkmJlguaXMoaS5zZWxlY3Rpb25SYW5nZSkmJihpLmRldGFpbD09PXZvaWQgMHx8RS5zdHJpbmcoaS5kZXRhaWwpKSYmKGkuZGVwcmVjYXRlZD09PXZvaWQgMHx8RS5ib29sZWFuKGkuZGVwcmVjYXRlZCkpJiYoaS5jaGlsZHJlbj09PXZvaWQgMHx8QXJyYXkuaXNBcnJheShpLmNoaWxkcmVuKSkmJihpLnRhZ3M9PT12b2lkIDB8fEFycmF5LmlzQXJyYXkoaS50YWdzKSl9ZS5pcz1ufSkoS3N8fChLcz17fSkpO3ZhciBlYTsoZnVuY3Rpb24oZSl7ZS5FbXB0eT0iIixlLlF1aWNrRml4PSJxdWlja2ZpeCIsZS5SZWZhY3Rvcj0icmVmYWN0b3IiLGUuUmVmYWN0b3JFeHRyYWN0PSJyZWZhY3Rvci5leHRyYWN0IixlLlJlZmFjdG9ySW5saW5lPSJyZWZhY3Rvci5pbmxpbmUiLGUuUmVmYWN0b3JSZXdyaXRlPSJyZWZhY3Rvci5yZXdyaXRlIixlLlNvdXJjZT0ic291cmNlIixlLlNvdXJjZU9yZ2FuaXplSW1wb3J0cz0ic291cmNlLm9yZ2FuaXplSW1wb3J0cyIsZS5Tb3VyY2VGaXhBbGw9InNvdXJjZS5maXhBbGwifSkoZWF8fChlYT17fSkpO3ZhciB0YTsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChyLGkpe3ZhciBzPXtkaWFnbm9zdGljczpyfTtyZXR1cm4gaSE9bnVsbCYmKHMub25seT1pKSxzfWUuY3JlYXRlPXQ7ZnVuY3Rpb24gbihyKXt2YXIgaT1yO3JldHVybiBFLmRlZmluZWQoaSkmJkUudHlwZWRBcnJheShpLmRpYWdub3N0aWNzLHFlLmlzKSYmKGkub25seT09PXZvaWQgMHx8RS50eXBlZEFycmF5KGkub25seSxFLnN0cmluZykpfWUuaXM9bn0pKHRhfHwodGE9e30pKTt2YXIgbmE7KGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQocixpLHMpe3ZhciBhPXt0aXRsZTpyfSxvPSEwO3JldHVybiB0eXBlb2YgaT09InN0cmluZyI/KG89ITEsYS5raW5kPWkpOld0LmlzKGkpP2EuY29tbWFuZD1pOmEuZWRpdD1pLG8mJnMhPT12b2lkIDAmJihhLmtpbmQ9cyksYX1lLmNyZWF0ZT10O2Z1bmN0aW9uIG4ocil7dmFyIGk9cjtyZXR1cm4gaSYmRS5zdHJpbmcoaS50aXRsZSkmJihpLmRpYWdub3N0aWNzPT09dm9pZCAwfHxFLnR5cGVkQXJyYXkoaS5kaWFnbm9zdGljcyxxZS5pcykpJiYoaS5raW5kPT09dm9pZCAwfHxFLnN0cmluZyhpLmtpbmQpKSYmKGkuZWRpdCE9PXZvaWQgMHx8aS5jb21tYW5kIT09dm9pZCAwKSYmKGkuY29tbWFuZD09PXZvaWQgMHx8V3QuaXMoaS5jb21tYW5kKSkmJihpLmlzUHJlZmVycmVkPT09dm9pZCAwfHxFLmJvb2xlYW4oaS5pc1ByZWZlcnJlZCkpJiYoaS5lZGl0PT09dm9pZCAwfHxtci5pcyhpLmVkaXQpKX1lLmlzPW59KShuYXx8KG5hPXt9KSk7dmFyIHJhOyhmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHIsaSl7dmFyIHM9e3JhbmdlOnJ9O3JldHVybiBFLmRlZmluZWQoaSkmJihzLmRhdGE9aSksc31lLmNyZWF0ZT10O2Z1bmN0aW9uIG4ocil7dmFyIGk9cjtyZXR1cm4gRS5kZWZpbmVkKGkpJiZYLmlzKGkucmFuZ2UpJiYoRS51bmRlZmluZWQoaS5jb21tYW5kKXx8V3QuaXMoaS5jb21tYW5kKSl9ZS5pcz1ufSkocmF8fChyYT17fSkpO3ZhciBpYTsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChyLGkpe3JldHVybnt0YWJTaXplOnIsaW5zZXJ0U3BhY2VzOml9fWUuY3JlYXRlPXQ7ZnVuY3Rpb24gbihyKXt2YXIgaT1yO3JldHVybiBFLmRlZmluZWQoaSkmJkUudWludGVnZXIoaS50YWJTaXplKSYmRS5ib29sZWFuKGkuaW5zZXJ0U3BhY2VzKX1lLmlzPW59KShpYXx8KGlhPXt9KSk7dmFyIHNhOyhmdW5jdGlvbihlKXtmdW5jdGlvbiB0KHIsaSxzKXtyZXR1cm57cmFuZ2U6cix0YXJnZXQ6aSxkYXRhOnN9fWUuY3JlYXRlPXQ7ZnVuY3Rpb24gbihyKXt2YXIgaT1yO3JldHVybiBFLmRlZmluZWQoaSkmJlguaXMoaS5yYW5nZSkmJihFLnVuZGVmaW5lZChpLnRhcmdldCl8fEUuc3RyaW5nKGkudGFyZ2V0KSl9ZS5pcz1ufSkoc2F8fChzYT17fSkpO3ZhciB5bjsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChyLGkpe3JldHVybntyYW5nZTpyLHBhcmVudDppfX1lLmNyZWF0ZT10O2Z1bmN0aW9uIG4ocil7dmFyIGk9cjtyZXR1cm4gaSE9PXZvaWQgMCYmWC5pcyhpLnJhbmdlKSYmKGkucGFyZW50PT09dm9pZCAwfHxlLmlzKGkucGFyZW50KSl9ZS5pcz1ufSkoeW58fCh5bj17fSkpO3ZhciBhYTsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChzLGEsbyxsKXtyZXR1cm4gbmV3IG51KHMsYSxvLGwpfWUuY3JlYXRlPXQ7ZnVuY3Rpb24gbihzKXt2YXIgYT1zO3JldHVybiEhKEUuZGVmaW5lZChhKSYmRS5zdHJpbmcoYS51cmkpJiYoRS51bmRlZmluZWQoYS5sYW5ndWFnZUlkKXx8RS5zdHJpbmcoYS5sYW5ndWFnZUlkKSkmJkUudWludGVnZXIoYS5saW5lQ291bnQpJiZFLmZ1bmMoYS5nZXRUZXh0KSYmRS5mdW5jKGEucG9zaXRpb25BdCkmJkUuZnVuYyhhLm9mZnNldEF0KSl9ZS5pcz1uO2Z1bmN0aW9uIHIocyxhKXtmb3IodmFyIG89cy5nZXRUZXh0KCksbD1pKGEsZnVuY3Rpb24obSx2KXt2YXIgcD1tLnJhbmdlLnN0YXJ0LmxpbmUtdi5yYW5nZS5zdGFydC5saW5lO3JldHVybiBwPT09MD9tLnJhbmdlLnN0YXJ0LmNoYXJhY3Rlci12LnJhbmdlLnN0YXJ0LmNoYXJhY3RlcjpwfSksdT1vLmxlbmd0aCxmPWwubGVuZ3RoLTE7Zj49MDtmLS0pe3ZhciBoPWxbZl0sZD1zLm9mZnNldEF0KGgucmFuZ2Uuc3RhcnQpLGc9cy5vZmZzZXRBdChoLnJhbmdlLmVuZCk7aWYoZzw9dSlvPW8uc3Vic3RyaW5nKDAsZCkraC5uZXdUZXh0K28uc3Vic3RyaW5nKGcsby5sZW5ndGgpO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJPdmVybGFwcGluZyBlZGl0Iik7dT1kfXJldHVybiBvfWUuYXBwbHlFZGl0cz1yO2Z1bmN0aW9uIGkocyxhKXtpZihzLmxlbmd0aDw9MSlyZXR1cm4gczt2YXIgbz1zLmxlbmd0aC8yfDAsbD1zLnNsaWNlKDAsbyksdT1zLnNsaWNlKG8pO2kobCxhKSxpKHUsYSk7Zm9yKHZhciBmPTAsaD0wLGQ9MDtmPGwubGVuZ3RoJiZoPHUubGVuZ3RoOyl7dmFyIGc9YShsW2ZdLHVbaF0pO2c8PTA/c1tkKytdPWxbZisrXTpzW2QrK109dVtoKytdfWZvcig7ZjxsLmxlbmd0aDspc1tkKytdPWxbZisrXTtmb3IoO2g8dS5sZW5ndGg7KXNbZCsrXT11W2grK107cmV0dXJuIHN9fSkoYWF8fChhYT17fSkpO3ZhciBudT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxuLHIsaSl7dGhpcy5fdXJpPXQsdGhpcy5fbGFuZ3VhZ2VJZD1uLHRoaXMuX3ZlcnNpb249cix0aGlzLl9jb250ZW50PWksdGhpcy5fbGluZU9mZnNldHM9dm9pZCAwfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInVyaSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl91cml9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJsYW5ndWFnZUlkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xhbmd1YWdlSWR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCJ2ZXJzaW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZlcnNpb259LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuZ2V0VGV4dD1mdW5jdGlvbih0KXtpZih0KXt2YXIgbj10aGlzLm9mZnNldEF0KHQuc3RhcnQpLHI9dGhpcy5vZmZzZXRBdCh0LmVuZCk7cmV0dXJuIHRoaXMuX2NvbnRlbnQuc3Vic3RyaW5nKG4scil9cmV0dXJuIHRoaXMuX2NvbnRlbnR9LGUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LG4pe3RoaXMuX2NvbnRlbnQ9dC50ZXh0LHRoaXMuX3ZlcnNpb249bix0aGlzLl9saW5lT2Zmc2V0cz12b2lkIDB9LGUucHJvdG90eXBlLmdldExpbmVPZmZzZXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5fbGluZU9mZnNldHM9PT12b2lkIDApe2Zvcih2YXIgdD1bXSxuPXRoaXMuX2NvbnRlbnQscj0hMCxpPTA7aTxuLmxlbmd0aDtpKyspe3ImJih0LnB1c2goaSkscj0hMSk7dmFyIHM9bi5jaGFyQXQoaSk7cj1zPT09IlxyInx8cz09PWAKYCxzPT09IlxyIiYmaSsxPG4ubGVuZ3RoJiZuLmNoYXJBdChpKzEpPT09YApgJiZpKyt9ciYmbi5sZW5ndGg+MCYmdC5wdXNoKG4ubGVuZ3RoKSx0aGlzLl9saW5lT2Zmc2V0cz10fXJldHVybiB0aGlzLl9saW5lT2Zmc2V0c30sZS5wcm90b3R5cGUucG9zaXRpb25BdD1mdW5jdGlvbih0KXt0PU1hdGgubWF4KE1hdGgubWluKHQsdGhpcy5fY29udGVudC5sZW5ndGgpLDApO3ZhciBuPXRoaXMuZ2V0TGluZU9mZnNldHMoKSxyPTAsaT1uLmxlbmd0aDtpZihpPT09MClyZXR1cm4gUmUuY3JlYXRlKDAsdCk7Zm9yKDtyPGk7KXt2YXIgcz1NYXRoLmZsb29yKChyK2kpLzIpO25bc10+dD9pPXM6cj1zKzF9dmFyIGE9ci0xO3JldHVybiBSZS5jcmVhdGUoYSx0LW5bYV0pfSxlLnByb3RvdHlwZS5vZmZzZXRBdD1mdW5jdGlvbih0KXt2YXIgbj10aGlzLmdldExpbmVPZmZzZXRzKCk7aWYodC5saW5lPj1uLmxlbmd0aClyZXR1cm4gdGhpcy5fY29udGVudC5sZW5ndGg7aWYodC5saW5lPDApcmV0dXJuIDA7dmFyIHI9blt0LmxpbmVdLGk9dC5saW5lKzE8bi5sZW5ndGg/blt0LmxpbmUrMV06dGhpcy5fY29udGVudC5sZW5ndGg7cmV0dXJuIE1hdGgubWF4KE1hdGgubWluKHIrdC5jaGFyYWN0ZXIsaSkscil9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwibGluZUNvdW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0TGluZU9mZnNldHMoKS5sZW5ndGh9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZX0oKSxFOyhmdW5jdGlvbihlKXt2YXIgdD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIG4oZyl7cmV0dXJuIHR5cGVvZiBnPCJ1In1lLmRlZmluZWQ9bjtmdW5jdGlvbiByKGcpe3JldHVybiB0eXBlb2YgZz4idSJ9ZS51bmRlZmluZWQ9cjtmdW5jdGlvbiBpKGcpe3JldHVybiBnPT09ITB8fGc9PT0hMX1lLmJvb2xlYW49aTtmdW5jdGlvbiBzKGcpe3JldHVybiB0LmNhbGwoZyk9PT0iW29iamVjdCBTdHJpbmddIn1lLnN0cmluZz1zO2Z1bmN0aW9uIGEoZyl7cmV0dXJuIHQuY2FsbChnKT09PSJbb2JqZWN0IE51bWJlcl0ifWUubnVtYmVyPWE7ZnVuY3Rpb24gbyhnLG0sdil7cmV0dXJuIHQuY2FsbChnKT09PSJbb2JqZWN0IE51bWJlcl0iJiZtPD1nJiZnPD12fWUubnVtYmVyUmFuZ2U9bztmdW5jdGlvbiBsKGcpe3JldHVybiB0LmNhbGwoZyk9PT0iW29iamVjdCBOdW1iZXJdIiYmLTIxNDc0ODM2NDg8PWcmJmc8PTIxNDc0ODM2NDd9ZS5pbnRlZ2VyPWw7ZnVuY3Rpb24gdShnKXtyZXR1cm4gdC5jYWxsKGcpPT09IltvYmplY3QgTnVtYmVyXSImJjA8PWcmJmc8PTIxNDc0ODM2NDd9ZS51aW50ZWdlcj11O2Z1bmN0aW9uIGYoZyl7cmV0dXJuIHQuY2FsbChnKT09PSJbb2JqZWN0IEZ1bmN0aW9uXSJ9ZS5mdW5jPWY7ZnVuY3Rpb24gaChnKXtyZXR1cm4gZyE9PW51bGwmJnR5cGVvZiBnPT0ib2JqZWN0In1lLm9iamVjdExpdGVyYWw9aDtmdW5jdGlvbiBkKGcsbSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZykmJmcuZXZlcnkobSl9ZS50eXBlZEFycmF5PWR9KShFfHwoRT17fSkpO3ZhciBvYT1jbGFzcyBGcntjb25zdHJ1Y3Rvcih0LG4scixpKXt0aGlzLl91cmk9dCx0aGlzLl9sYW5ndWFnZUlkPW4sdGhpcy5fdmVyc2lvbj1yLHRoaXMuX2NvbnRlbnQ9aSx0aGlzLl9saW5lT2Zmc2V0cz12b2lkIDB9Z2V0IHVyaSgpe3JldHVybiB0aGlzLl91cml9Z2V0IGxhbmd1YWdlSWQoKXtyZXR1cm4gdGhpcy5fbGFuZ3VhZ2VJZH1nZXQgdmVyc2lvbigpe3JldHVybiB0aGlzLl92ZXJzaW9ufWdldFRleHQodCl7aWYodCl7Y29uc3Qgbj10aGlzLm9mZnNldEF0KHQuc3RhcnQpLHI9dGhpcy5vZmZzZXRBdCh0LmVuZCk7cmV0dXJuIHRoaXMuX2NvbnRlbnQuc3Vic3RyaW5nKG4scil9cmV0dXJuIHRoaXMuX2NvbnRlbnR9dXBkYXRlKHQsbil7Zm9yKGxldCByIG9mIHQpaWYoRnIuaXNJbmNyZW1lbnRhbChyKSl7Y29uc3QgaT11YShyLnJhbmdlKSxzPXRoaXMub2Zmc2V0QXQoaS5zdGFydCksYT10aGlzLm9mZnNldEF0KGkuZW5kKTt0aGlzLl9jb250ZW50PXRoaXMuX2NvbnRlbnQuc3Vic3RyaW5nKDAscykrci50ZXh0K3RoaXMuX2NvbnRlbnQuc3Vic3RyaW5nKGEsdGhpcy5fY29udGVudC5sZW5ndGgpO2NvbnN0IG89TWF0aC5tYXgoaS5zdGFydC5saW5lLDApLGw9TWF0aC5tYXgoaS5lbmQubGluZSwwKTtsZXQgdT10aGlzLl9saW5lT2Zmc2V0cztjb25zdCBmPWxhKHIudGV4dCwhMSxzKTtpZihsLW89PT1mLmxlbmd0aClmb3IobGV0IGQ9MCxnPWYubGVuZ3RoO2Q8ZztkKyspdVtkK28rMV09ZltkXTtlbHNlIGYubGVuZ3RoPDFlND91LnNwbGljZShvKzEsbC1vLC4uLmYpOnRoaXMuX2xpbmVPZmZzZXRzPXU9dS5zbGljZSgwLG8rMSkuY29uY2F0KGYsdS5zbGljZShsKzEpKTtjb25zdCBoPXIudGV4dC5sZW5ndGgtKGEtcyk7aWYoaCE9PTApZm9yKGxldCBkPW8rMStmLmxlbmd0aCxnPXUubGVuZ3RoO2Q8ZztkKyspdVtkXT11W2RdK2h9ZWxzZSBpZihGci5pc0Z1bGwocikpdGhpcy5fY29udGVudD1yLnRleHQsdGhpcy5fbGluZU9mZnNldHM9dm9pZCAwO2Vsc2UgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGNoYW5nZSBldmVudCByZWNlaXZlZCIpO3RoaXMuX3ZlcnNpb249bn1nZXRMaW5lT2Zmc2V0cygpe3JldHVybiB0aGlzLl9saW5lT2Zmc2V0cz09PXZvaWQgMCYmKHRoaXMuX2xpbmVPZmZzZXRzPWxhKHRoaXMuX2NvbnRlbnQsITApKSx0aGlzLl9saW5lT2Zmc2V0c31wb3NpdGlvbkF0KHQpe3Q9TWF0aC5tYXgoTWF0aC5taW4odCx0aGlzLl9jb250ZW50Lmxlbmd0aCksMCk7bGV0IG49dGhpcy5nZXRMaW5lT2Zmc2V0cygpLHI9MCxpPW4ubGVuZ3RoO2lmKGk9PT0wKXJldHVybntsaW5lOjAsY2hhcmFjdGVyOnR9O2Zvcig7cjxpOyl7bGV0IGE9TWF0aC5mbG9vcigocitpKS8yKTtuW2FdPnQ/aT1hOnI9YSsxfWxldCBzPXItMTtyZXR1cm57bGluZTpzLGNoYXJhY3Rlcjp0LW5bc119fW9mZnNldEF0KHQpe2xldCBuPXRoaXMuZ2V0TGluZU9mZnNldHMoKTtpZih0LmxpbmU+PW4ubGVuZ3RoKXJldHVybiB0aGlzLl9jb250ZW50Lmxlbmd0aDtpZih0LmxpbmU8MClyZXR1cm4gMDtsZXQgcj1uW3QubGluZV0saT10LmxpbmUrMTxuLmxlbmd0aD9uW3QubGluZSsxXTp0aGlzLl9jb250ZW50Lmxlbmd0aDtyZXR1cm4gTWF0aC5tYXgoTWF0aC5taW4ocit0LmNoYXJhY3RlcixpKSxyKX1nZXQgbGluZUNvdW50KCl7cmV0dXJuIHRoaXMuZ2V0TGluZU9mZnNldHMoKS5sZW5ndGh9c3RhdGljIGlzSW5jcmVtZW50YWwodCl7bGV0IG49dDtyZXR1cm4gbiE9bnVsbCYmdHlwZW9mIG4udGV4dD09InN0cmluZyImJm4ucmFuZ2UhPT12b2lkIDAmJihuLnJhbmdlTGVuZ3RoPT09dm9pZCAwfHx0eXBlb2Ygbi5yYW5nZUxlbmd0aD09Im51bWJlciIpfXN0YXRpYyBpc0Z1bGwodCl7bGV0IG49dDtyZXR1cm4gbiE9bnVsbCYmdHlwZW9mIG4udGV4dD09InN0cmluZyImJm4ucmFuZ2U9PT12b2lkIDAmJm4ucmFuZ2VMZW5ndGg9PT12b2lkIDB9fSxicjsoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdChpLHMsYSxvKXtyZXR1cm4gbmV3IG9hKGkscyxhLG8pfWUuY3JlYXRlPXQ7ZnVuY3Rpb24gbihpLHMsYSl7aWYoaSBpbnN0YW5jZW9mIG9hKXJldHVybiBpLnVwZGF0ZShzLGEpLGk7dGhyb3cgbmV3IEVycm9yKCJUZXh0RG9jdW1lbnQudXBkYXRlOiBkb2N1bWVudCBtdXN0IGJlIGNyZWF0ZWQgYnkgVGV4dERvY3VtZW50LmNyZWF0ZSIpfWUudXBkYXRlPW47ZnVuY3Rpb24gcihpLHMpe2xldCBhPWkuZ2V0VGV4dCgpLG89eHIocy5tYXAocnUpLChmLGgpPT57bGV0IGQ9Zi5yYW5nZS5zdGFydC5saW5lLWgucmFuZ2Uuc3RhcnQubGluZTtyZXR1cm4gZD09PTA/Zi5yYW5nZS5zdGFydC5jaGFyYWN0ZXItaC5yYW5nZS5zdGFydC5jaGFyYWN0ZXI6ZH0pLGw9MDtjb25zdCB1PVtdO2Zvcihjb25zdCBmIG9mIG8pe2xldCBoPWkub2Zmc2V0QXQoZi5yYW5nZS5zdGFydCk7aWYoaDxsKXRocm93IG5ldyBFcnJvcigiT3ZlcmxhcHBpbmcgZWRpdCIpO2g+bCYmdS5wdXNoKGEuc3Vic3RyaW5nKGwsaCkpLGYubmV3VGV4dC5sZW5ndGgmJnUucHVzaChmLm5ld1RleHQpLGw9aS5vZmZzZXRBdChmLnJhbmdlLmVuZCl9cmV0dXJuIHUucHVzaChhLnN1YnN0cihsKSksdS5qb2luKCIiKX1lLmFwcGx5RWRpdHM9cn0pKGJyfHwoYnI9e30pKTtmdW5jdGlvbiB4cihlLHQpe2lmKGUubGVuZ3RoPD0xKXJldHVybiBlO2NvbnN0IG49ZS5sZW5ndGgvMnwwLHI9ZS5zbGljZSgwLG4pLGk9ZS5zbGljZShuKTt4cihyLHQpLHhyKGksdCk7bGV0IHM9MCxhPTAsbz0wO2Zvcig7czxyLmxlbmd0aCYmYTxpLmxlbmd0aDspdChyW3NdLGlbYV0pPD0wP2VbbysrXT1yW3MrK106ZVtvKytdPWlbYSsrXTtmb3IoO3M8ci5sZW5ndGg7KWVbbysrXT1yW3MrK107Zm9yKDthPGkubGVuZ3RoOyllW28rK109aVthKytdO3JldHVybiBlfWZ1bmN0aW9uIGxhKGUsdCxuPTApe2NvbnN0IHI9dD9bbl06W107Zm9yKGxldCBpPTA7aTxlLmxlbmd0aDtpKyspe2xldCBzPWUuY2hhckNvZGVBdChpKTsocz09PTEzfHxzPT09MTApJiYocz09PTEzJiZpKzE8ZS5sZW5ndGgmJmUuY2hhckNvZGVBdChpKzEpPT09MTAmJmkrKyxyLnB1c2gobitpKzEpKX1yZXR1cm4gcn1mdW5jdGlvbiB1YShlKXtjb25zdCB0PWUuc3RhcnQsbj1lLmVuZDtyZXR1cm4gdC5saW5lPm4ubGluZXx8dC5saW5lPT09bi5saW5lJiZ0LmNoYXJhY3Rlcj5uLmNoYXJhY3Rlcj97c3RhcnQ6bixlbmQ6dH06ZX1mdW5jdGlvbiBydShlKXtjb25zdCB0PXVhKGUucmFuZ2UpO3JldHVybiB0IT09ZS5yYW5nZT97bmV3VGV4dDplLm5ld1RleHQscmFuZ2U6dH06ZX12YXIgSjsoZnVuY3Rpb24oZSl7ZVtlLlVuZGVmaW5lZD0wXT0iVW5kZWZpbmVkIixlW2UuRW51bVZhbHVlTWlzbWF0Y2g9MV09IkVudW1WYWx1ZU1pc21hdGNoIixlW2UuRGVwcmVjYXRlZD0yXT0iRGVwcmVjYXRlZCIsZVtlLlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQ9MjU3XT0iVW5leHBlY3RlZEVuZE9mQ29tbWVudCIsZVtlLlVuZXhwZWN0ZWRFbmRPZlN0cmluZz0yNThdPSJVbmV4cGVjdGVkRW5kT2ZTdHJpbmciLGVbZS5VbmV4cGVjdGVkRW5kT2ZOdW1iZXI9MjU5XT0iVW5leHBlY3RlZEVuZE9mTnVtYmVyIixlW2UuSW52YWxpZFVuaWNvZGU9MjYwXT0iSW52YWxpZFVuaWNvZGUiLGVbZS5JbnZhbGlkRXNjYXBlQ2hhcmFjdGVyPTI2MV09IkludmFsaWRFc2NhcGVDaGFyYWN0ZXIiLGVbZS5JbnZhbGlkQ2hhcmFjdGVyPTI2Ml09IkludmFsaWRDaGFyYWN0ZXIiLGVbZS5Qcm9wZXJ0eUV4cGVjdGVkPTUxM109IlByb3BlcnR5RXhwZWN0ZWQiLGVbZS5Db21tYUV4cGVjdGVkPTUxNF09IkNvbW1hRXhwZWN0ZWQiLGVbZS5Db2xvbkV4cGVjdGVkPTUxNV09IkNvbG9uRXhwZWN0ZWQiLGVbZS5WYWx1ZUV4cGVjdGVkPTUxNl09IlZhbHVlRXhwZWN0ZWQiLGVbZS5Db21tYU9yQ2xvc2VCYWNrZXRFeHBlY3RlZD01MTddPSJDb21tYU9yQ2xvc2VCYWNrZXRFeHBlY3RlZCIsZVtlLkNvbW1hT3JDbG9zZUJyYWNlRXhwZWN0ZWQ9NTE4XT0iQ29tbWFPckNsb3NlQnJhY2VFeHBlY3RlZCIsZVtlLlRyYWlsaW5nQ29tbWE9NTE5XT0iVHJhaWxpbmdDb21tYSIsZVtlLkR1cGxpY2F0ZUtleT01MjBdPSJEdXBsaWNhdGVLZXkiLGVbZS5Db21tZW50Tm90UGVybWl0dGVkPTUyMV09IkNvbW1lbnROb3RQZXJtaXR0ZWQiLGVbZS5TY2hlbWFSZXNvbHZlRXJyb3I9NzY4XT0iU2NoZW1hUmVzb2x2ZUVycm9yIn0pKEp8fChKPXt9KSk7dmFyIHlyOyhmdW5jdGlvbihlKXtlLkxBVEVTVD17dGV4dERvY3VtZW50Ontjb21wbGV0aW9uOntjb21wbGV0aW9uSXRlbTp7ZG9jdW1lbnRhdGlvbkZvcm1hdDpbQmUuTWFya2Rvd24sQmUuUGxhaW5UZXh0XSxjb21taXRDaGFyYWN0ZXJzU3VwcG9ydDohMH19fX19KSh5cnx8KHlyPXt9KSk7ZnVuY3Rpb24gaXUoZSx0KXtsZXQgbjtyZXR1cm4gdC5sZW5ndGg9PT0wP249ZTpuPWUucmVwbGFjZSgvXHsoXGQrKVx9L2csKHIsaSk9PntsZXQgcz1pWzBdO3JldHVybiB0eXBlb2YgdFtzXTwidSI/dFtzXTpyfSksbn1mdW5jdGlvbiBzdShlLHQsLi4ubil7cmV0dXJuIGl1KHQsbil9ZnVuY3Rpb24gSnQoZSl7cmV0dXJuIHN1fXZhciBzdD1mdW5jdGlvbigpe3ZhciBlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIGU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKHIsaSl7ci5fX3Byb3RvX189aX18fGZ1bmN0aW9uKHIsaSl7Zm9yKHZhciBzIGluIGkpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGkscykmJihyW3NdPWlbc10pfSxlKHQsbil9O3JldHVybiBmdW5jdGlvbih0LG4pe2lmKHR5cGVvZiBuIT0iZnVuY3Rpb24iJiZuIT09bnVsbCl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKG4pKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2UodCxuKTtmdW5jdGlvbiByKCl7dGhpcy5jb25zdHJ1Y3Rvcj10fXQucHJvdG90eXBlPW49PT1udWxsP09iamVjdC5jcmVhdGUobik6KHIucHJvdG90eXBlPW4ucHJvdG90eXBlLG5ldyByKX19KCksVT1KdCgpLGF1PXsiY29sb3ItaGV4Ijp7ZXJyb3JNZXNzYWdlOlUoImNvbG9ySGV4Rm9ybWF0V2FybmluZyIsIkludmFsaWQgY29sb3IgZm9ybWF0LiBVc2UgI1JHQiwgI1JHQkEsICNSUkdHQkIgb3IgI1JSR0dCQkFBLiIpLHBhdHRlcm46L14jKFswLTlBLUZhLWZdezMsNH18KFswLTlBLUZhLWZdezJ9KXszLDR9KSQvfSwiZGF0ZS10aW1lIjp7ZXJyb3JNZXNzYWdlOlUoImRhdGVUaW1lRm9ybWF0V2FybmluZyIsIlN0cmluZyBpcyBub3QgYSBSRkMzMzM5IGRhdGUtdGltZS4iKSxwYXR0ZXJuOi9eKFxkezR9KS0oMFsxLTldfDFbMC0yXSktKDBbMS05XXxbMTJdWzAtOV18M1swMV0pVChbMDFdWzAtOV18MlswLTNdKTooWzAtNV1bMC05XSk6KFswLTVdWzAtOV18NjApKFwuWzAtOV0rKT8oWnwoXCt8LSkoWzAxXVswLTldfDJbMC0zXSk6KFswLTVdWzAtOV0pKSQvaX0sZGF0ZTp7ZXJyb3JNZXNzYWdlOlUoImRhdGVGb3JtYXRXYXJuaW5nIiwiU3RyaW5nIGlzIG5vdCBhIFJGQzMzMzkgZGF0ZS4iKSxwYXR0ZXJuOi9eKFxkezR9KS0oMFsxLTldfDFbMC0yXSktKDBbMS05XXxbMTJdWzAtOV18M1swMV0pJC9pfSx0aW1lOntlcnJvck1lc3NhZ2U6VSgidGltZUZvcm1hdFdhcm5pbmciLCJTdHJpbmcgaXMgbm90IGEgUkZDMzMzOSB0aW1lLiIpLHBhdHRlcm46L14oWzAxXVswLTldfDJbMC0zXSk6KFswLTVdWzAtOV0pOihbMC01XVswLTldfDYwKShcLlswLTldKyk/KFp8KFwrfC0pKFswMV1bMC05XXwyWzAtM10pOihbMC01XVswLTldKSkkL2l9LGVtYWlsOntlcnJvck1lc3NhZ2U6VSgiZW1haWxGb3JtYXRXYXJuaW5nIiwiU3RyaW5nIGlzIG5vdCBhbiBlLW1haWwgYWRkcmVzcy4iKSxwYXR0ZXJuOi9eKChbXjw+KClcW1xdXFwuLDs6XHNAIl0rKFwuW148PigpXFtcXVxcLiw7OlxzQCJdKykqKXwoIi4rIikpQCgoXFtbMC05XXsxLDN9XC5bMC05XXsxLDN9XC5bMC05XXsxLDN9XC5bMC05XXsxLDN9XSl8KChbYS16QS1aMC05LV0rXC4pK1thLXpBLVpdezIsfSkpJC99LGhvc3RuYW1lOntlcnJvck1lc3NhZ2U6VSgiaG9zdG5hbWVGb3JtYXRXYXJuaW5nIiwiU3RyaW5nIGlzIG5vdCBhIGhvc3RuYW1lLiIpLHBhdHRlcm46L14oPz0uezEsMjUzfVwuPyQpW2EtejAtOV0oPzpbYS16MC05LV17MCw2MX1bYS16MC05XSk/KD86XC5bYS16MC05XSg/OlstMC05YS16XXswLDYxfVswLTlhLXpdKT8pKlwuPyQvaX0saXB2NDp7ZXJyb3JNZXNzYWdlOlUoImlwdjRGb3JtYXRXYXJuaW5nIiwiU3RyaW5nIGlzIG5vdCBhbiBJUHY0IGFkZHJlc3MuIikscGF0dGVybjovXig/Oig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpXC4pezN9KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkkL30saXB2Njp7ZXJyb3JNZXNzYWdlOlUoImlwdjZGb3JtYXRXYXJuaW5nIiwiU3RyaW5nIGlzIG5vdCBhbiBJUHY2IGFkZHJlc3MuIikscGF0dGVybjovXigoKFswLTlhLWZdezEsNH06KXs3fShbMC05YS1mXXsxLDR9fDopKXwoKFswLTlhLWZdezEsNH06KXs2fSg6WzAtOWEtZl17MSw0fXwoKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSl8OikpfCgoWzAtOWEtZl17MSw0fTopezV9KCgoOlswLTlhLWZdezEsNH0pezEsMn0pfDooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSl8OikpfCgoWzAtOWEtZl17MSw0fTopezR9KCgoOlswLTlhLWZdezEsNH0pezEsM30pfCgoOlswLTlhLWZdezEsNH0pPzooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSkpfDopKXwoKFswLTlhLWZdezEsNH06KXszfSgoKDpbMC05YS1mXXsxLDR9KXsxLDR9KXwoKDpbMC05YS1mXXsxLDR9KXswLDJ9OigoMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkoXC4oMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkpezN9KSl8OikpfCgoWzAtOWEtZl17MSw0fTopezJ9KCgoOlswLTlhLWZdezEsNH0pezEsNX0pfCgoOlswLTlhLWZdezEsNH0pezAsM306KCgyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKShcLigyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSl7M30pKXw6KSl8KChbMC05YS1mXXsxLDR9Oil7MX0oKCg6WzAtOWEtZl17MSw0fSl7MSw2fSl8KCg6WzAtOWEtZl17MSw0fSl7MCw0fTooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSkpfDopKXwoOigoKDpbMC05YS1mXXsxLDR9KXsxLDd9KXwoKDpbMC05YS1mXXsxLDR9KXswLDV9OigoMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkoXC4oMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkpezN9KSl8OikpKSQvaX19LGF0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LG4scil7cj09PXZvaWQgMCYmKHI9MCksdGhpcy5vZmZzZXQ9bix0aGlzLmxlbmd0aD1yLHRoaXMucGFyZW50PXR9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiY2hpbGRyZW4iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5bXX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxlLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJ0eXBlOiAiK3RoaXMudHlwZSsiICgiK3RoaXMub2Zmc2V0KyIvIit0aGlzLmxlbmd0aCsiKSIrKHRoaXMucGFyZW50PyIgcGFyZW50OiB7Iit0aGlzLnBhcmVudC50b1N0cmluZygpKyJ9IjoiIil9LGV9KCksb3U9ZnVuY3Rpb24oZSl7c3QodCxlKTtmdW5jdGlvbiB0KG4scil7dmFyIGk9ZS5jYWxsKHRoaXMsbixyKXx8dGhpcztyZXR1cm4gaS50eXBlPSJudWxsIixpLnZhbHVlPW51bGwsaX1yZXR1cm4gdH0oYXQpLGNhPWZ1bmN0aW9uKGUpe3N0KHQsZSk7ZnVuY3Rpb24gdChuLHIsaSl7dmFyIHM9ZS5jYWxsKHRoaXMsbixpKXx8dGhpcztyZXR1cm4gcy50eXBlPSJib29sZWFuIixzLnZhbHVlPXIsc31yZXR1cm4gdH0oYXQpLGx1PWZ1bmN0aW9uKGUpe3N0KHQsZSk7ZnVuY3Rpb24gdChuLHIpe3ZhciBpPWUuY2FsbCh0aGlzLG4scil8fHRoaXM7cmV0dXJuIGkudHlwZT0iYXJyYXkiLGkuaXRlbXM9W10saX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLCJjaGlsZHJlbiIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZW1zfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHR9KGF0KSx1dT1mdW5jdGlvbihlKXtzdCh0LGUpO2Z1bmN0aW9uIHQobixyKXt2YXIgaT1lLmNhbGwodGhpcyxuLHIpfHx0aGlzO3JldHVybiBpLnR5cGU9Im51bWJlciIsaS5pc0ludGVnZXI9ITAsaS52YWx1ZT1OdW1iZXIuTmFOLGl9cmV0dXJuIHR9KGF0KSxfcj1mdW5jdGlvbihlKXtzdCh0LGUpO2Z1bmN0aW9uIHQobixyLGkpe3ZhciBzPWUuY2FsbCh0aGlzLG4scixpKXx8dGhpcztyZXR1cm4gcy50eXBlPSJzdHJpbmciLHMudmFsdWU9IiIsc31yZXR1cm4gdH0oYXQpLGN1PWZ1bmN0aW9uKGUpe3N0KHQsZSk7ZnVuY3Rpb24gdChuLHIsaSl7dmFyIHM9ZS5jYWxsKHRoaXMsbixyKXx8dGhpcztyZXR1cm4gcy50eXBlPSJwcm9wZXJ0eSIscy5jb2xvbk9mZnNldD0tMSxzLmtleU5vZGU9aSxzfXJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsImNoaWxkcmVuIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVOb2RlP1t0aGlzLmtleU5vZGUsdGhpcy52YWx1ZU5vZGVdOlt0aGlzLmtleU5vZGVdfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHR9KGF0KSxmdT1mdW5jdGlvbihlKXtzdCh0LGUpO2Z1bmN0aW9uIHQobixyKXt2YXIgaT1lLmNhbGwodGhpcyxuLHIpfHx0aGlzO3JldHVybiBpLnR5cGU9Im9iamVjdCIsaS5wcm9wZXJ0aWVzPVtdLGl9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSwiY2hpbGRyZW4iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcm9wZXJ0aWVzfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHR9KGF0KTtmdW5jdGlvbiBwZShlKXtyZXR1cm4gSWUoZSk/ZT97fTp7bm90Ont9fTplfXZhciBmYTsoZnVuY3Rpb24oZSl7ZVtlLktleT0wXT0iS2V5IixlW2UuRW51bT0xXT0iRW51bSJ9KShmYXx8KGZhPXt9KSk7dmFyIGh1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LG4pe3Q9PT12b2lkIDAmJih0PS0xKSx0aGlzLmZvY3VzT2Zmc2V0PXQsdGhpcy5leGNsdWRlPW4sdGhpcy5zY2hlbWFzPVtdfXJldHVybiBlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dGhpcy5zY2hlbWFzLnB1c2godCl9LGUucHJvdG90eXBlLm1lcmdlPWZ1bmN0aW9uKHQpe0FycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHRoaXMuc2NoZW1hcyx0LnNjaGVtYXMpfSxlLnByb3RvdHlwZS5pbmNsdWRlPWZ1bmN0aW9uKHQpe3JldHVybih0aGlzLmZvY3VzT2Zmc2V0PT09LTF8fGhhKHQsdGhpcy5mb2N1c09mZnNldCkpJiZ0IT09dGhpcy5leGNsdWRlfSxlLnByb3RvdHlwZS5uZXdTdWI9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGUoLTEsdGhpcy5leGNsdWRlKX0sZX0oKSx3cj1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwic2NoZW1hcyIse2dldDpmdW5jdGlvbigpe3JldHVybltdfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0KXt9LGUucHJvdG90eXBlLm1lcmdlPWZ1bmN0aW9uKHQpe30sZS5wcm90b3R5cGUuaW5jbHVkZT1mdW5jdGlvbih0KXtyZXR1cm4hMH0sZS5wcm90b3R5cGUubmV3U3ViPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGUuaW5zdGFuY2U9bmV3IGUsZX0oKSx2ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt0aGlzLnByb2JsZW1zPVtdLHRoaXMucHJvcGVydGllc01hdGNoZXM9MCx0aGlzLnByb3BlcnRpZXNWYWx1ZU1hdGNoZXM9MCx0aGlzLnByaW1hcnlWYWx1ZU1hdGNoZXM9MCx0aGlzLmVudW1WYWx1ZU1hdGNoPSExLHRoaXMuZW51bVZhbHVlcz12b2lkIDB9cmV0dXJuIGUucHJvdG90eXBlLmhhc1Byb2JsZW1zPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLnByb2JsZW1zLmxlbmd0aH0sZS5wcm90b3R5cGUubWVyZ2VBbGw9ZnVuY3Rpb24odCl7Zm9yKHZhciBuPTAscj10O248ci5sZW5ndGg7bisrKXt2YXIgaT1yW25dO3RoaXMubWVyZ2UoaSl9fSxlLnByb3RvdHlwZS5tZXJnZT1mdW5jdGlvbih0KXt0aGlzLnByb2JsZW1zPXRoaXMucHJvYmxlbXMuY29uY2F0KHQucHJvYmxlbXMpfSxlLnByb3RvdHlwZS5tZXJnZUVudW1WYWx1ZXM9ZnVuY3Rpb24odCl7aWYoIXRoaXMuZW51bVZhbHVlTWF0Y2gmJiF0LmVudW1WYWx1ZU1hdGNoJiZ0aGlzLmVudW1WYWx1ZXMmJnQuZW51bVZhbHVlcyl7dGhpcy5lbnVtVmFsdWVzPXRoaXMuZW51bVZhbHVlcy5jb25jYXQodC5lbnVtVmFsdWVzKTtmb3IodmFyIG49MCxyPXRoaXMucHJvYmxlbXM7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl07aS5jb2RlPT09Si5FbnVtVmFsdWVNaXNtYXRjaCYmKGkubWVzc2FnZT1VKCJlbnVtV2FybmluZyIsIlZhbHVlIGlzIG5vdCBhY2NlcHRlZC4gVmFsaWQgdmFsdWVzOiB7MH0uIix0aGlzLmVudW1WYWx1ZXMubWFwKGZ1bmN0aW9uKHMpe3JldHVybiBKU09OLnN0cmluZ2lmeShzKX0pLmpvaW4oIiwgIikpKX19fSxlLnByb3RvdHlwZS5tZXJnZVByb3BlcnR5TWF0Y2g9ZnVuY3Rpb24odCl7dGhpcy5tZXJnZSh0KSx0aGlzLnByb3BlcnRpZXNNYXRjaGVzKyssKHQuZW51bVZhbHVlTWF0Y2h8fCF0Lmhhc1Byb2JsZW1zKCkmJnQucHJvcGVydGllc01hdGNoZXMpJiZ0aGlzLnByb3BlcnRpZXNWYWx1ZU1hdGNoZXMrKyx0LmVudW1WYWx1ZU1hdGNoJiZ0LmVudW1WYWx1ZXMmJnQuZW51bVZhbHVlcy5sZW5ndGg9PT0xJiZ0aGlzLnByaW1hcnlWYWx1ZU1hdGNoZXMrK30sZS5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbih0KXt2YXIgbj10aGlzLmhhc1Byb2JsZW1zKCk7cmV0dXJuIG4hPT10Lmhhc1Byb2JsZW1zKCk/bj8tMToxOnRoaXMuZW51bVZhbHVlTWF0Y2ghPT10LmVudW1WYWx1ZU1hdGNoP3QuZW51bVZhbHVlTWF0Y2g/LTE6MTp0aGlzLnByaW1hcnlWYWx1ZU1hdGNoZXMhPT10LnByaW1hcnlWYWx1ZU1hdGNoZXM/dGhpcy5wcmltYXJ5VmFsdWVNYXRjaGVzLXQucHJpbWFyeVZhbHVlTWF0Y2hlczp0aGlzLnByb3BlcnRpZXNWYWx1ZU1hdGNoZXMhPT10LnByb3BlcnRpZXNWYWx1ZU1hdGNoZXM/dGhpcy5wcm9wZXJ0aWVzVmFsdWVNYXRjaGVzLXQucHJvcGVydGllc1ZhbHVlTWF0Y2hlczp0aGlzLnByb3BlcnRpZXNNYXRjaGVzLXQucHJvcGVydGllc01hdGNoZXN9LGV9KCk7ZnVuY3Rpb24gZHUoZSx0KXtyZXR1cm4gdD09PXZvaWQgMCYmKHQ9W10pLG5ldyBkYShlLHQsW10pfWZ1bmN0aW9uIG90KGUpe3JldHVybiBZbChlKX1mdW5jdGlvbiBTcihlKXtyZXR1cm4gWmwoZSl9ZnVuY3Rpb24gaGEoZSx0LG4pe3JldHVybiBuPT09dm9pZCAwJiYobj0hMSksdD49ZS5vZmZzZXQmJnQ8ZS5vZmZzZXQrZS5sZW5ndGh8fG4mJnQ9PT1lLm9mZnNldCtlLmxlbmd0aH12YXIgZGE9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQsbixyKXtuPT09dm9pZCAwJiYobj1bXSkscj09PXZvaWQgMCYmKHI9W10pLHRoaXMucm9vdD10LHRoaXMuc3ludGF4RXJyb3JzPW4sdGhpcy5jb21tZW50cz1yfXJldHVybiBlLnByb3RvdHlwZS5nZXROb2RlRnJvbU9mZnNldD1mdW5jdGlvbih0LG4pe2lmKG49PT12b2lkIDAmJihuPSExKSx0aGlzLnJvb3QpcmV0dXJuIFFsKHRoaXMucm9vdCx0LG4pfSxlLnByb3RvdHlwZS52aXNpdD1mdW5jdGlvbih0KXtpZih0aGlzLnJvb3Qpe3ZhciBuPWZ1bmN0aW9uKHIpe3ZhciBpPXQocikscz1yLmNoaWxkcmVuO2lmKEFycmF5LmlzQXJyYXkocykpZm9yKHZhciBhPTA7YTxzLmxlbmd0aCYmaTthKyspaT1uKHNbYV0pO3JldHVybiBpfTtuKHRoaXMucm9vdCl9fSxlLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbih0LG4scil7aWYocj09PXZvaWQgMCYmKHI9d2UuV2FybmluZyksdGhpcy5yb290JiZuKXt2YXIgaT1uZXcgdmU7cmV0dXJuIGNlKHRoaXMucm9vdCxuLGksd3IuaW5zdGFuY2UpLGkucHJvYmxlbXMubWFwKGZ1bmN0aW9uKHMpe3ZhciBhLG89WC5jcmVhdGUodC5wb3NpdGlvbkF0KHMubG9jYXRpb24ub2Zmc2V0KSx0LnBvc2l0aW9uQXQocy5sb2NhdGlvbi5vZmZzZXQrcy5sb2NhdGlvbi5sZW5ndGgpKTtyZXR1cm4gcWUuY3JlYXRlKG8scy5tZXNzYWdlLChhPXMuc2V2ZXJpdHkpIT09bnVsbCYmYSE9PXZvaWQgMD9hOnIscy5jb2RlKX0pfX0sZS5wcm90b3R5cGUuZ2V0TWF0Y2hpbmdTY2hlbWFzPWZ1bmN0aW9uKHQsbixyKXtuPT09dm9pZCAwJiYobj0tMSk7dmFyIGk9bmV3IGh1KG4scik7cmV0dXJuIHRoaXMucm9vdCYmdCYmY2UodGhpcy5yb290LHQsbmV3IHZlLGkpLGkuc2NoZW1hc30sZX0oKTtmdW5jdGlvbiBjZShlLHQsbixyKXtpZighZXx8IXIuaW5jbHVkZShlKSlyZXR1cm47dmFyIGk9ZTtzd2l0Y2goaS50eXBlKXtjYXNlIm9iamVjdCI6dShpLHQsbixyKTticmVhaztjYXNlImFycmF5IjpsKGksdCxuLHIpO2JyZWFrO2Nhc2Uic3RyaW5nIjpvKGksdCxuKTticmVhaztjYXNlIm51bWJlciI6YShpLHQsbik7YnJlYWs7Y2FzZSJwcm9wZXJ0eSI6cmV0dXJuIGNlKGkudmFsdWVOb2RlLHQsbixyKX1zKCksci5hZGQoe25vZGU6aSxzY2hlbWE6dH0pO2Z1bmN0aW9uIHMoKXtmdW5jdGlvbiBmKFQpe3JldHVybiBpLnR5cGU9PT1UfHxUPT09ImludGVnZXIiJiZpLnR5cGU9PT0ibnVtYmVyIiYmaS5pc0ludGVnZXJ9aWYoQXJyYXkuaXNBcnJheSh0LnR5cGUpP3QudHlwZS5zb21lKGYpfHxuLnByb2JsZW1zLnB1c2goe2xvY2F0aW9uOntvZmZzZXQ6aS5vZmZzZXQsbGVuZ3RoOmkubGVuZ3RofSxtZXNzYWdlOnQuZXJyb3JNZXNzYWdlfHxVKCJ0eXBlQXJyYXlNaXNtYXRjaFdhcm5pbmciLCJJbmNvcnJlY3QgdHlwZS4gRXhwZWN0ZWQgb25lIG9mIHswfS4iLHQudHlwZS5qb2luKCIsICIpKX0pOnQudHlwZSYmKGYodC50eXBlKXx8bi5wcm9ibGVtcy5wdXNoKHtsb2NhdGlvbjp7b2Zmc2V0Omkub2Zmc2V0LGxlbmd0aDppLmxlbmd0aH0sbWVzc2FnZTp0LmVycm9yTWVzc2FnZXx8VSgidHlwZU1pc21hdGNoV2FybmluZyIsJ0luY29ycmVjdCB0eXBlLiBFeHBlY3RlZCAiezB9Ii4nLHQudHlwZSl9KSksQXJyYXkuaXNBcnJheSh0LmFsbE9mKSlmb3IodmFyIGg9MCxkPXQuYWxsT2Y7aDxkLmxlbmd0aDtoKyspe3ZhciBnPWRbaF07Y2UoaSxwZShnKSxuLHIpfXZhciBtPXBlKHQubm90KTtpZihtKXt2YXIgdj1uZXcgdmUscD1yLm5ld1N1YigpO2NlKGksbSx2LHApLHYuaGFzUHJvYmxlbXMoKXx8bi5wcm9ibGVtcy5wdXNoKHtsb2NhdGlvbjp7b2Zmc2V0Omkub2Zmc2V0LGxlbmd0aDppLmxlbmd0aH0sbWVzc2FnZTpVKCJub3RTY2hlbWFXYXJuaW5nIiwiTWF0Y2hlcyBhIHNjaGVtYSB0aGF0IGlzIG5vdCBhbGxvd2VkLiIpfSk7Zm9yKHZhciB4PTAseT1wLnNjaGVtYXM7eDx5Lmxlbmd0aDt4Kyspe3ZhciBiPXlbeF07Yi5pbnZlcnRlZD0hYi5pbnZlcnRlZCxyLmFkZChiKX19dmFyIE49ZnVuY3Rpb24oVCxGKXtmb3IodmFyIFY9W10sTz12b2lkIDAsTT0wLGs9VDtNPGsubGVuZ3RoO00rKyl7dmFyIFA9a1tNXSxEPXBlKFApLHE9bmV3IHZlLEI9ci5uZXdTdWIoKTtpZihjZShpLEQscSxCKSxxLmhhc1Byb2JsZW1zKCl8fFYucHVzaChEKSwhTylPPXtzY2hlbWE6RCx2YWxpZGF0aW9uUmVzdWx0OnEsbWF0Y2hpbmdTY2hlbWFzOkJ9O2Vsc2UgaWYoIUYmJiFxLmhhc1Byb2JsZW1zKCkmJiFPLnZhbGlkYXRpb25SZXN1bHQuaGFzUHJvYmxlbXMoKSlPLm1hdGNoaW5nU2NoZW1hcy5tZXJnZShCKSxPLnZhbGlkYXRpb25SZXN1bHQucHJvcGVydGllc01hdGNoZXMrPXEucHJvcGVydGllc01hdGNoZXMsTy52YWxpZGF0aW9uUmVzdWx0LnByb3BlcnRpZXNWYWx1ZU1hdGNoZXMrPXEucHJvcGVydGllc1ZhbHVlTWF0Y2hlcztlbHNle3ZhciB6PXEuY29tcGFyZShPLnZhbGlkYXRpb25SZXN1bHQpO3o+MD9PPXtzY2hlbWE6RCx2YWxpZGF0aW9uUmVzdWx0OnEsbWF0Y2hpbmdTY2hlbWFzOkJ9Ono9PT0wJiYoTy5tYXRjaGluZ1NjaGVtYXMubWVyZ2UoQiksTy52YWxpZGF0aW9uUmVzdWx0Lm1lcmdlRW51bVZhbHVlcyhxKSl9fXJldHVybiBWLmxlbmd0aD4xJiZGJiZuLnByb2JsZW1zLnB1c2goe2xvY2F0aW9uOntvZmZzZXQ6aS5vZmZzZXQsbGVuZ3RoOjF9LG1lc3NhZ2U6VSgib25lT2ZXYXJuaW5nIiwiTWF0Y2hlcyBtdWx0aXBsZSBzY2hlbWFzIHdoZW4gb25seSBvbmUgbXVzdCB2YWxpZGF0ZS4iKX0pLE8mJihuLm1lcmdlKE8udmFsaWRhdGlvblJlc3VsdCksbi5wcm9wZXJ0aWVzTWF0Y2hlcys9Ty52YWxpZGF0aW9uUmVzdWx0LnByb3BlcnRpZXNNYXRjaGVzLG4ucHJvcGVydGllc1ZhbHVlTWF0Y2hlcys9Ty52YWxpZGF0aW9uUmVzdWx0LnByb3BlcnRpZXNWYWx1ZU1hdGNoZXMsci5tZXJnZShPLm1hdGNoaW5nU2NoZW1hcykpLFYubGVuZ3RofTtBcnJheS5pc0FycmF5KHQuYW55T2YpJiZOKHQuYW55T2YsITEpLEFycmF5LmlzQXJyYXkodC5vbmVPZikmJk4odC5vbmVPZiwhMCk7dmFyIFM9ZnVuY3Rpb24oVCl7dmFyIEY9bmV3IHZlLFY9ci5uZXdTdWIoKTtjZShpLHBlKFQpLEYsViksbi5tZXJnZShGKSxuLnByb3BlcnRpZXNNYXRjaGVzKz1GLnByb3BlcnRpZXNNYXRjaGVzLG4ucHJvcGVydGllc1ZhbHVlTWF0Y2hlcys9Ri5wcm9wZXJ0aWVzVmFsdWVNYXRjaGVzLHIubWVyZ2UoVil9LHc9ZnVuY3Rpb24oVCxGLFYpe3ZhciBPPXBlKFQpLE09bmV3IHZlLGs9ci5uZXdTdWIoKTtjZShpLE8sTSxrKSxyLm1lcmdlKGspLE0uaGFzUHJvYmxlbXMoKT9WJiZTKFYpOkYmJlMoRil9LEw9cGUodC5pZik7aWYoTCYmdyhMLHBlKHQudGhlbikscGUodC5lbHNlKSksQXJyYXkuaXNBcnJheSh0LmVudW0pKXtmb3IodmFyIEE9b3QoaSksUj0hMSxJPTAsQz10LmVudW07STxDLmxlbmd0aDtJKyspe3ZhciBfPUNbSV07aWYoanQoQSxfKSl7Uj0hMDticmVha319bi5lbnVtVmFsdWVzPXQuZW51bSxuLmVudW1WYWx1ZU1hdGNoPVIsUnx8bi5wcm9ibGVtcy5wdXNoKHtsb2NhdGlvbjp7b2Zmc2V0Omkub2Zmc2V0LGxlbmd0aDppLmxlbmd0aH0sY29kZTpKLkVudW1WYWx1ZU1pc21hdGNoLG1lc3NhZ2U6dC5lcnJvck1lc3NhZ2V8fFUoImVudW1XYXJuaW5nIiwiVmFsdWUgaXMgbm90IGFjY2VwdGVkLiBWYWxpZCB2YWx1ZXM6IHswfS4iLHQuZW51bS5tYXAoZnVuY3Rpb24oVCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KFQpfSkuam9pbigiLCAiKSl9KX1pZihqZSh0LmNvbnN0KSl7dmFyIEE9b3QoaSk7anQoQSx0LmNvbnN0KT9uLmVudW1WYWx1ZU1hdGNoPSEwOihuLnByb2JsZW1zLnB1c2goe2xvY2F0aW9uOntvZmZzZXQ6aS5vZmZzZXQsbGVuZ3RoOmkubGVuZ3RofSxjb2RlOkouRW51bVZhbHVlTWlzbWF0Y2gsbWVzc2FnZTp0LmVycm9yTWVzc2FnZXx8VSgiY29uc3RXYXJuaW5nIiwiVmFsdWUgbXVzdCBiZSB7MH0uIixKU09OLnN0cmluZ2lmeSh0LmNvbnN0KSl9KSxuLmVudW1WYWx1ZU1hdGNoPSExKSxuLmVudW1WYWx1ZXM9W3QuY29uc3RdfXQuZGVwcmVjYXRpb25NZXNzYWdlJiZpLnBhcmVudCYmbi5wcm9ibGVtcy5wdXNoKHtsb2NhdGlvbjp7b2Zmc2V0OmkucGFyZW50Lm9mZnNldCxsZW5ndGg6aS5wYXJlbnQubGVuZ3RofSxzZXZlcml0eTp3ZS5XYXJuaW5nLG1lc3NhZ2U6dC5kZXByZWNhdGlvbk1lc3NhZ2UsY29kZTpKLkRlcHJlY2F0ZWR9KX1mdW5jdGlvbiBhKGYsaCxkLGcpe3ZhciBtPWYudmFsdWU7ZnVuY3Rpb24gdihJKXt2YXIgQyxfPS9eKC0/XGQrKSg/OlwuKFxkKykpPyg/OmUoWy0rXVxkKykpPyQvLmV4ZWMoSS50b1N0cmluZygpKTtyZXR1cm4gXyYme3ZhbHVlOk51bWJlcihfWzFdKyhfWzJdfHwiIikpLG11bHRpcGxpZXI6KCgoQz1fWzJdKT09PW51bGx8fEM9PT12b2lkIDA/dm9pZCAwOkMubGVuZ3RoKXx8MCktKHBhcnNlSW50KF9bM10pfHwwKX19aWYoX2UoaC5tdWx0aXBsZU9mKSl7dmFyIHA9LTE7aWYoTnVtYmVyLmlzSW50ZWdlcihoLm11bHRpcGxlT2YpKXA9bSVoLm11bHRpcGxlT2Y7ZWxzZXt2YXIgeD12KGgubXVsdGlwbGVPZikseT12KG0pO2lmKHgmJnkpe3ZhciBiPU1hdGgucG93KDEwLE1hdGguYWJzKHkubXVsdGlwbGllci14Lm11bHRpcGxpZXIpKTt5Lm11bHRpcGxpZXI8eC5tdWx0aXBsaWVyP3kudmFsdWUqPWI6eC52YWx1ZSo9YixwPXkudmFsdWUleC52YWx1ZX19cCE9PTAmJmQucHJvYmxlbXMucHVzaCh7bG9jYXRpb246e29mZnNldDpmLm9mZnNldCxsZW5ndGg6Zi5sZW5ndGh9LG1lc3NhZ2U6VSgibXVsdGlwbGVPZldhcm5pbmciLCJWYWx1ZSBpcyBub3QgZGl2aXNpYmxlIGJ5IHswfS4iLGgubXVsdGlwbGVPZil9KX1mdW5jdGlvbiBOKEksQyl7aWYoX2UoQykpcmV0dXJuIEM7aWYoSWUoQykmJkMpcmV0dXJuIEl9ZnVuY3Rpb24gUyhJLEMpe2lmKCFJZShDKXx8IUMpcmV0dXJuIEl9dmFyIHc9TihoLm1pbmltdW0saC5leGNsdXNpdmVNaW5pbXVtKTtfZSh3KSYmbTw9dyYmZC5wcm9ibGVtcy5wdXNoKHtsb2NhdGlvbjp7b2Zmc2V0OmYub2Zmc2V0LGxlbmd0aDpmLmxlbmd0aH0sbWVzc2FnZTpVKCJleGNsdXNpdmVNaW5pbXVtV2FybmluZyIsIlZhbHVlIGlzIGJlbG93IHRoZSBleGNsdXNpdmUgbWluaW11bSBvZiB7MH0uIix3KX0pO3ZhciBMPU4oaC5tYXhpbXVtLGguZXhjbHVzaXZlTWF4aW11bSk7X2UoTCkmJm0+PUwmJmQucHJvYmxlbXMucHVzaCh7bG9jYXRpb246e29mZnNldDpmLm9mZnNldCxsZW5ndGg6Zi5sZW5ndGh9LG1lc3NhZ2U6VSgiZXhjbHVzaXZlTWF4aW11bVdhcm5pbmciLCJWYWx1ZSBpcyBhYm92ZSB0aGUgZXhjbHVzaXZlIG1heGltdW0gb2YgezB9LiIsTCl9KTt2YXIgQT1TKGgubWluaW11bSxoLmV4Y2x1c2l2ZU1pbmltdW0pO19lKEEpJiZtPEEmJmQucHJvYmxlbXMucHVzaCh7bG9jYXRpb246e29mZnNldDpmLm9mZnNldCxsZW5ndGg6Zi5sZW5ndGh9LG1lc3NhZ2U6VSgibWluaW11bVdhcm5pbmciLCJWYWx1ZSBpcyBiZWxvdyB0aGUgbWluaW11bSBvZiB7MH0uIixBKX0pO3ZhciBSPVMoaC5tYXhpbXVtLGguZXhjbHVzaXZlTWF4aW11bSk7X2UoUikmJm0+UiYmZC5wcm9ibGVtcy5wdXNoKHtsb2NhdGlvbjp7b2Zmc2V0OmYub2Zmc2V0LGxlbmd0aDpmLmxlbmd0aH0sbWVzc2FnZTpVKCJtYXhpbXVtV2FybmluZyIsIlZhbHVlIGlzIGFib3ZlIHRoZSBtYXhpbXVtIG9mIHswfS4iLFIpfSl9ZnVuY3Rpb24gbyhmLGgsZCxnKXtpZihfZShoLm1pbkxlbmd0aCkmJmYudmFsdWUubGVuZ3RoPGgubWluTGVuZ3RoJiZkLnByb2JsZW1zLnB1c2goe2xvY2F0aW9uOntvZmZzZXQ6Zi5vZmZzZXQsbGVuZ3RoOmYubGVuZ3RofSxtZXNzYWdlOlUoIm1pbkxlbmd0aFdhcm5pbmciLCJTdHJpbmcgaXMgc2hvcnRlciB0aGFuIHRoZSBtaW5pbXVtIGxlbmd0aCBvZiB7MH0uIixoLm1pbkxlbmd0aCl9KSxfZShoLm1heExlbmd0aCkmJmYudmFsdWUubGVuZ3RoPmgubWF4TGVuZ3RoJiZkLnByb2JsZW1zLnB1c2goe2xvY2F0aW9uOntvZmZzZXQ6Zi5vZmZzZXQsbGVuZ3RoOmYubGVuZ3RofSxtZXNzYWdlOlUoIm1heExlbmd0aFdhcm5pbmciLCJTdHJpbmcgaXMgbG9uZ2VyIHRoYW4gdGhlIG1heGltdW0gbGVuZ3RoIG9mIHswfS4iLGgubWF4TGVuZ3RoKX0pLGV1KGgucGF0dGVybikpe3ZhciBtPWduKGgucGF0dGVybik7bSE9bnVsbCYmbS50ZXN0KGYudmFsdWUpfHxkLnByb2JsZW1zLnB1c2goe2xvY2F0aW9uOntvZmZzZXQ6Zi5vZmZzZXQsbGVuZ3RoOmYubGVuZ3RofSxtZXNzYWdlOmgucGF0dGVybkVycm9yTWVzc2FnZXx8aC5lcnJvck1lc3NhZ2V8fFUoInBhdHRlcm5XYXJuaW5nIiwnU3RyaW5nIGRvZXMgbm90IG1hdGNoIHRoZSBwYXR0ZXJuIG9mICJ7MH0iLicsaC5wYXR0ZXJuKX0pfWlmKGguZm9ybWF0KXN3aXRjaChoLmZvcm1hdCl7Y2FzZSJ1cmkiOmNhc2UidXJpLXJlZmVyZW5jZSI6e3ZhciB2PXZvaWQgMDtpZighZi52YWx1ZSl2PVUoInVyaUVtcHR5IiwiVVJJIGV4cGVjdGVkLiIpO2Vsc2V7dmFyIHA9L14oKFteOi8/I10rPyk6KT8oXC9cLyhbXi8/I10qKSk/KFtePyNdKikoXD8oW14jXSopKT8oIyguKikpPy8uZXhlYyhmLnZhbHVlKTtwPyFwWzJdJiZoLmZvcm1hdD09PSJ1cmkiJiYodj1VKCJ1cmlTY2hlbWVNaXNzaW5nIiwiVVJJIHdpdGggYSBzY2hlbWUgaXMgZXhwZWN0ZWQuIikpOnY9VSgidXJpTWlzc2luZyIsIlVSSSBpcyBleHBlY3RlZC4iKX12JiZkLnByb2JsZW1zLnB1c2goe2xvY2F0aW9uOntvZmZzZXQ6Zi5vZmZzZXQsbGVuZ3RoOmYubGVuZ3RofSxtZXNzYWdlOmgucGF0dGVybkVycm9yTWVzc2FnZXx8aC5lcnJvck1lc3NhZ2V8fFUoInVyaUZvcm1hdFdhcm5pbmciLCJTdHJpbmcgaXMgbm90IGEgVVJJOiB7MH0iLHYpfSl9YnJlYWs7Y2FzZSJjb2xvci1oZXgiOmNhc2UiZGF0ZS10aW1lIjpjYXNlImRhdGUiOmNhc2UidGltZSI6Y2FzZSJlbWFpbCI6Y2FzZSJob3N0bmFtZSI6Y2FzZSJpcHY0IjpjYXNlImlwdjYiOnZhciB4PWF1W2guZm9ybWF0XTsoIWYudmFsdWV8fCF4LnBhdHRlcm4uZXhlYyhmLnZhbHVlKSkmJmQucHJvYmxlbXMucHVzaCh7bG9jYXRpb246e29mZnNldDpmLm9mZnNldCxsZW5ndGg6Zi5sZW5ndGh9LG1lc3NhZ2U6aC5wYXR0ZXJuRXJyb3JNZXNzYWdlfHxoLmVycm9yTWVzc2FnZXx8eC5lcnJvck1lc3NhZ2V9KX19ZnVuY3Rpb24gbChmLGgsZCxnKXtpZihBcnJheS5pc0FycmF5KGguaXRlbXMpKXtmb3IodmFyIG09aC5pdGVtcyx2PTA7djxtLmxlbmd0aDt2Kyspe3ZhciBwPW1bdl0seD1wZShwKSx5PW5ldyB2ZSxiPWYuaXRlbXNbdl07Yj8oY2UoYix4LHksZyksZC5tZXJnZVByb3BlcnR5TWF0Y2goeSkpOmYuaXRlbXMubGVuZ3RoPj1tLmxlbmd0aCYmZC5wcm9wZXJ0aWVzVmFsdWVNYXRjaGVzKyt9aWYoZi5pdGVtcy5sZW5ndGg+bS5sZW5ndGgpaWYodHlwZW9mIGguYWRkaXRpb25hbEl0ZW1zPT0ib2JqZWN0Iilmb3IodmFyIE49bS5sZW5ndGg7TjxmLml0ZW1zLmxlbmd0aDtOKyspe3ZhciB5PW5ldyB2ZTtjZShmLml0ZW1zW05dLGguYWRkaXRpb25hbEl0ZW1zLHksZyksZC5tZXJnZVByb3BlcnR5TWF0Y2goeSl9ZWxzZSBoLmFkZGl0aW9uYWxJdGVtcz09PSExJiZkLnByb2JsZW1zLnB1c2goe2xvY2F0aW9uOntvZmZzZXQ6Zi5vZmZzZXQsbGVuZ3RoOmYubGVuZ3RofSxtZXNzYWdlOlUoImFkZGl0aW9uYWxJdGVtc1dhcm5pbmciLCJBcnJheSBoYXMgdG9vIG1hbnkgaXRlbXMgYWNjb3JkaW5nIHRvIHNjaGVtYS4gRXhwZWN0ZWQgezB9IG9yIGZld2VyLiIsbS5sZW5ndGgpfSl9ZWxzZXt2YXIgUz1wZShoLml0ZW1zKTtpZihTKWZvcih2YXIgdz0wLEw9Zi5pdGVtczt3PEwubGVuZ3RoO3crKyl7dmFyIGI9TFt3XSx5PW5ldyB2ZTtjZShiLFMseSxnKSxkLm1lcmdlUHJvcGVydHlNYXRjaCh5KX19dmFyIEE9cGUoaC5jb250YWlucyk7aWYoQSl7dmFyIFI9Zi5pdGVtcy5zb21lKGZ1bmN0aW9uKF8pe3ZhciBUPW5ldyB2ZTtyZXR1cm4gY2UoXyxBLFQsd3IuaW5zdGFuY2UpLCFULmhhc1Byb2JsZW1zKCl9KTtSfHxkLnByb2JsZW1zLnB1c2goe2xvY2F0aW9uOntvZmZzZXQ6Zi5vZmZzZXQsbGVuZ3RoOmYubGVuZ3RofSxtZXNzYWdlOmguZXJyb3JNZXNzYWdlfHxVKCJyZXF1aXJlZEl0ZW1NaXNzaW5nV2FybmluZyIsIkFycmF5IGRvZXMgbm90IGNvbnRhaW4gcmVxdWlyZWQgaXRlbS4iKX0pfWlmKF9lKGgubWluSXRlbXMpJiZmLml0ZW1zLmxlbmd0aDxoLm1pbkl0ZW1zJiZkLnByb2JsZW1zLnB1c2goe2xvY2F0aW9uOntvZmZzZXQ6Zi5vZmZzZXQsbGVuZ3RoOmYubGVuZ3RofSxtZXNzYWdlOlUoIm1pbkl0ZW1zV2FybmluZyIsIkFycmF5IGhhcyB0b28gZmV3IGl0ZW1zLiBFeHBlY3RlZCB7MH0gb3IgbW9yZS4iLGgubWluSXRlbXMpfSksX2UoaC5tYXhJdGVtcykmJmYuaXRlbXMubGVuZ3RoPmgubWF4SXRlbXMmJmQucHJvYmxlbXMucHVzaCh7bG9jYXRpb246e29mZnNldDpmLm9mZnNldCxsZW5ndGg6Zi5sZW5ndGh9LG1lc3NhZ2U6VSgibWF4SXRlbXNXYXJuaW5nIiwiQXJyYXkgaGFzIHRvbyBtYW55IGl0ZW1zLiBFeHBlY3RlZCB7MH0gb3IgZmV3ZXIuIixoLm1heEl0ZW1zKX0pLGgudW5pcXVlSXRlbXM9PT0hMCl7dmFyIEk9b3QoZiksQz1JLnNvbWUoZnVuY3Rpb24oXyxUKXtyZXR1cm4gVCE9PUkubGFzdEluZGV4T2YoXyl9KTtDJiZkLnByb2JsZW1zLnB1c2goe2xvY2F0aW9uOntvZmZzZXQ6Zi5vZmZzZXQsbGVuZ3RoOmYubGVuZ3RofSxtZXNzYWdlOlUoInVuaXF1ZUl0ZW1zV2FybmluZyIsIkFycmF5IGhhcyBkdXBsaWNhdGUgaXRlbXMuIil9KX19ZnVuY3Rpb24gdShmLGgsZCxnKXtmb3IodmFyIG09T2JqZWN0LmNyZWF0ZShudWxsKSx2PVtdLHA9MCx4PWYucHJvcGVydGllcztwPHgubGVuZ3RoO3ArKyl7dmFyIHk9eFtwXSxiPXkua2V5Tm9kZS52YWx1ZTttW2JdPXkudmFsdWVOb2RlLHYucHVzaChiKX1pZihBcnJheS5pc0FycmF5KGgucmVxdWlyZWQpKWZvcih2YXIgTj0wLFM9aC5yZXF1aXJlZDtOPFMubGVuZ3RoO04rKyl7dmFyIHc9U1tOXTtpZighbVt3XSl7dmFyIEw9Zi5wYXJlbnQmJmYucGFyZW50LnR5cGU9PT0icHJvcGVydHkiJiZmLnBhcmVudC5rZXlOb2RlLEE9TD97b2Zmc2V0Okwub2Zmc2V0LGxlbmd0aDpMLmxlbmd0aH06e29mZnNldDpmLm9mZnNldCxsZW5ndGg6MX07ZC5wcm9ibGVtcy5wdXNoKHtsb2NhdGlvbjpBLG1lc3NhZ2U6VSgiTWlzc2luZ1JlcXVpcmVkUHJvcFdhcm5pbmciLCdNaXNzaW5nIHByb3BlcnR5ICJ7MH0iLicsdyl9KX19dmFyIFI9ZnVuY3Rpb24oQWEpe2Zvcih2YXIgUHI9di5pbmRleE9mKEFhKTtQcj49MDspdi5zcGxpY2UoUHIsMSksUHI9di5pbmRleE9mKEFhKX07aWYoaC5wcm9wZXJ0aWVzKWZvcih2YXIgST0wLEM9T2JqZWN0LmtleXMoaC5wcm9wZXJ0aWVzKTtJPEMubGVuZ3RoO0krKyl7dmFyIHc9Q1tJXTtSKHcpO3ZhciBfPWgucHJvcGVydGllc1t3XSxUPW1bd107aWYoVClpZihJZShfKSlpZihfKWQucHJvcGVydGllc01hdGNoZXMrKyxkLnByb3BlcnRpZXNWYWx1ZU1hdGNoZXMrKztlbHNle3ZhciB5PVQucGFyZW50O2QucHJvYmxlbXMucHVzaCh7bG9jYXRpb246e29mZnNldDp5LmtleU5vZGUub2Zmc2V0LGxlbmd0aDp5LmtleU5vZGUubGVuZ3RofSxtZXNzYWdlOmguZXJyb3JNZXNzYWdlfHxVKCJEaXNhbGxvd2VkRXh0cmFQcm9wV2FybmluZyIsIlByb3BlcnR5IHswfSBpcyBub3QgYWxsb3dlZC4iLHcpfSl9ZWxzZXt2YXIgRj1uZXcgdmU7Y2UoVCxfLEYsZyksZC5tZXJnZVByb3BlcnR5TWF0Y2goRil9fWlmKGgucGF0dGVyblByb3BlcnRpZXMpZm9yKHZhciBWPTAsTz1PYmplY3Qua2V5cyhoLnBhdHRlcm5Qcm9wZXJ0aWVzKTtWPE8ubGVuZ3RoO1YrKylmb3IodmFyIE09T1tWXSxrPWduKE0pLFA9MCxEPXYuc2xpY2UoMCk7UDxELmxlbmd0aDtQKyspe3ZhciB3PURbUF07aWYoayE9bnVsbCYmay50ZXN0KHcpKXtSKHcpO3ZhciBUPW1bd107aWYoVCl7dmFyIF89aC5wYXR0ZXJuUHJvcGVydGllc1tNXTtpZihJZShfKSlpZihfKWQucHJvcGVydGllc01hdGNoZXMrKyxkLnByb3BlcnRpZXNWYWx1ZU1hdGNoZXMrKztlbHNle3ZhciB5PVQucGFyZW50O2QucHJvYmxlbXMucHVzaCh7bG9jYXRpb246e29mZnNldDp5LmtleU5vZGUub2Zmc2V0LGxlbmd0aDp5LmtleU5vZGUubGVuZ3RofSxtZXNzYWdlOmguZXJyb3JNZXNzYWdlfHxVKCJEaXNhbGxvd2VkRXh0cmFQcm9wV2FybmluZyIsIlByb3BlcnR5IHswfSBpcyBub3QgYWxsb3dlZC4iLHcpfSl9ZWxzZXt2YXIgRj1uZXcgdmU7Y2UoVCxfLEYsZyksZC5tZXJnZVByb3BlcnR5TWF0Y2goRil9fX19aWYodHlwZW9mIGguYWRkaXRpb25hbFByb3BlcnRpZXM9PSJvYmplY3QiKWZvcih2YXIgcT0wLEI9djtxPEIubGVuZ3RoO3ErKyl7dmFyIHc9QltxXSxUPW1bd107aWYoVCl7dmFyIEY9bmV3IHZlO2NlKFQsaC5hZGRpdGlvbmFsUHJvcGVydGllcyxGLGcpLGQubWVyZ2VQcm9wZXJ0eU1hdGNoKEYpfX1lbHNlIGlmKGguYWRkaXRpb25hbFByb3BlcnRpZXM9PT0hMSYmdi5sZW5ndGg+MClmb3IodmFyIHo9MCxkZT12O3o8ZGUubGVuZ3RoO3orKyl7dmFyIHc9ZGVbel0sVD1tW3ddO2lmKFQpe3ZhciB5PVQucGFyZW50O2QucHJvYmxlbXMucHVzaCh7bG9jYXRpb246e29mZnNldDp5LmtleU5vZGUub2Zmc2V0LGxlbmd0aDp5LmtleU5vZGUubGVuZ3RofSxtZXNzYWdlOmguZXJyb3JNZXNzYWdlfHxVKCJEaXNhbGxvd2VkRXh0cmFQcm9wV2FybmluZyIsIlByb3BlcnR5IHswfSBpcyBub3QgYWxsb3dlZC4iLHcpfSl9fWlmKF9lKGgubWF4UHJvcGVydGllcykmJmYucHJvcGVydGllcy5sZW5ndGg+aC5tYXhQcm9wZXJ0aWVzJiZkLnByb2JsZW1zLnB1c2goe2xvY2F0aW9uOntvZmZzZXQ6Zi5vZmZzZXQsbGVuZ3RoOmYubGVuZ3RofSxtZXNzYWdlOlUoIk1heFByb3BXYXJuaW5nIiwiT2JqZWN0IGhhcyBtb3JlIHByb3BlcnRpZXMgdGhhbiBsaW1pdCBvZiB7MH0uIixoLm1heFByb3BlcnRpZXMpfSksX2UoaC5taW5Qcm9wZXJ0aWVzKSYmZi5wcm9wZXJ0aWVzLmxlbmd0aDxoLm1pblByb3BlcnRpZXMmJmQucHJvYmxlbXMucHVzaCh7bG9jYXRpb246e29mZnNldDpmLm9mZnNldCxsZW5ndGg6Zi5sZW5ndGh9LG1lc3NhZ2U6VSgiTWluUHJvcFdhcm5pbmciLCJPYmplY3QgaGFzIGZld2VyIHByb3BlcnRpZXMgdGhhbiB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIHswfSIsaC5taW5Qcm9wZXJ0aWVzKX0pLGguZGVwZW5kZW5jaWVzKWZvcih2YXIgbGU9MCxiZT1PYmplY3Qua2V5cyhoLmRlcGVuZGVuY2llcyk7bGU8YmUubGVuZ3RoO2xlKyspe3ZhciBiPWJlW2xlXSxDdD1tW2JdO2lmKEN0KXt2YXIgT2U9aC5kZXBlbmRlbmNpZXNbYl07aWYoQXJyYXkuaXNBcnJheShPZSkpZm9yKHZhciBNcj0wLHdhPU9lO01yPHdhLmxlbmd0aDtNcisrKXt2YXIgU2E9d2FbTXJdO21bU2FdP2QucHJvcGVydGllc1ZhbHVlTWF0Y2hlcysrOmQucHJvYmxlbXMucHVzaCh7bG9jYXRpb246e29mZnNldDpmLm9mZnNldCxsZW5ndGg6Zi5sZW5ndGh9LG1lc3NhZ2U6VSgiUmVxdWlyZWREZXBlbmRlbnRQcm9wV2FybmluZyIsIk9iamVjdCBpcyBtaXNzaW5nIHByb3BlcnR5IHswfSByZXF1aXJlZCBieSBwcm9wZXJ0eSB7MX0uIixTYSxiKX0pfWVsc2V7dmFyIF89cGUoT2UpO2lmKF8pe3ZhciBGPW5ldyB2ZTtjZShmLF8sRixnKSxkLm1lcmdlUHJvcGVydHlNYXRjaChGKX19fX12YXIgTmE9cGUoaC5wcm9wZXJ0eU5hbWVzKTtpZihOYSlmb3IodmFyIFRyPTAsTGE9Zi5wcm9wZXJ0aWVzO1RyPExhLmxlbmd0aDtUcisrKXt2YXIgSnU9TGFbVHJdLGI9SnUua2V5Tm9kZTtiJiZjZShiLE5hLGQsd3IuaW5zdGFuY2UpfX19ZnVuY3Rpb24gZ3UoZSx0KXt2YXIgbj1bXSxyPS0xLGk9ZS5nZXRUZXh0KCkscz1OdChpLCExKSxhPXQmJnQuY29sbGVjdENvbW1lbnRzP1tdOnZvaWQgMDtmdW5jdGlvbiBvKCl7Zm9yKDs7KXt2YXIgdz1zLnNjYW4oKTtzd2l0Y2goZigpLHcpe2Nhc2UgMTI6Y2FzZSAxMzpBcnJheS5pc0FycmF5KGEpJiZhLnB1c2goWC5jcmVhdGUoZS5wb3NpdGlvbkF0KHMuZ2V0VG9rZW5PZmZzZXQoKSksZS5wb3NpdGlvbkF0KHMuZ2V0VG9rZW5PZmZzZXQoKStzLmdldFRva2VuTGVuZ3RoKCkpKSk7YnJlYWs7Y2FzZSAxNTpjYXNlIDE0OmJyZWFrO2RlZmF1bHQ6cmV0dXJuIHd9fX1mdW5jdGlvbiBsKHcsTCxBLFIsSSl7aWYoST09PXZvaWQgMCYmKEk9d2UuRXJyb3IpLG4ubGVuZ3RoPT09MHx8QSE9PXIpe3ZhciBDPVguY3JlYXRlKGUucG9zaXRpb25BdChBKSxlLnBvc2l0aW9uQXQoUikpO24ucHVzaChxZS5jcmVhdGUoQyx3LEksTCxlLmxhbmd1YWdlSWQpKSxyPUF9fWZ1bmN0aW9uIHUodyxMLEEsUixJKXtBPT09dm9pZCAwJiYoQT12b2lkIDApLFI9PT12b2lkIDAmJihSPVtdKSxJPT09dm9pZCAwJiYoST1bXSk7dmFyIEM9cy5nZXRUb2tlbk9mZnNldCgpLF89cy5nZXRUb2tlbk9mZnNldCgpK3MuZ2V0VG9rZW5MZW5ndGgoKTtpZihDPT09XyYmQz4wKXtmb3IoQy0tO0M+MCYmL1xzLy50ZXN0KGkuY2hhckF0KEMpKTspQy0tO189QysxfWlmKGwodyxMLEMsXyksQSYmaChBLCExKSxSLmxlbmd0aCtJLmxlbmd0aD4wKWZvcih2YXIgVD1zLmdldFRva2VuKCk7VCE9PTE3Oyl7aWYoUi5pbmRleE9mKFQpIT09LTEpe28oKTticmVha31lbHNlIGlmKEkuaW5kZXhPZihUKSE9PS0xKWJyZWFrO1Q9bygpfXJldHVybiBBfWZ1bmN0aW9uIGYoKXtzd2l0Y2gocy5nZXRUb2tlbkVycm9yKCkpe2Nhc2UgNDpyZXR1cm4gdShVKCJJbnZhbGlkVW5pY29kZSIsIkludmFsaWQgdW5pY29kZSBzZXF1ZW5jZSBpbiBzdHJpbmcuIiksSi5JbnZhbGlkVW5pY29kZSksITA7Y2FzZSA1OnJldHVybiB1KFUoIkludmFsaWRFc2NhcGVDaGFyYWN0ZXIiLCJJbnZhbGlkIGVzY2FwZSBjaGFyYWN0ZXIgaW4gc3RyaW5nLiIpLEouSW52YWxpZEVzY2FwZUNoYXJhY3RlciksITA7Y2FzZSAzOnJldHVybiB1KFUoIlVuZXhwZWN0ZWRFbmRPZk51bWJlciIsIlVuZXhwZWN0ZWQgZW5kIG9mIG51bWJlci4iKSxKLlVuZXhwZWN0ZWRFbmRPZk51bWJlciksITA7Y2FzZSAxOnJldHVybiB1KFUoIlVuZXhwZWN0ZWRFbmRPZkNvbW1lbnQiLCJVbmV4cGVjdGVkIGVuZCBvZiBjb21tZW50LiIpLEouVW5leHBlY3RlZEVuZE9mQ29tbWVudCksITA7Y2FzZSAyOnJldHVybiB1KFUoIlVuZXhwZWN0ZWRFbmRPZlN0cmluZyIsIlVuZXhwZWN0ZWQgZW5kIG9mIHN0cmluZy4iKSxKLlVuZXhwZWN0ZWRFbmRPZlN0cmluZyksITA7Y2FzZSA2OnJldHVybiB1KFUoIkludmFsaWRDaGFyYWN0ZXIiLCJJbnZhbGlkIGNoYXJhY3RlcnMgaW4gc3RyaW5nLiBDb250cm9sIGNoYXJhY3RlcnMgbXVzdCBiZSBlc2NhcGVkLiIpLEouSW52YWxpZENoYXJhY3RlciksITB9cmV0dXJuITF9ZnVuY3Rpb24gaCh3LEwpe3JldHVybiB3Lmxlbmd0aD1zLmdldFRva2VuT2Zmc2V0KCkrcy5nZXRUb2tlbkxlbmd0aCgpLXcub2Zmc2V0LEwmJm8oKSx3fWZ1bmN0aW9uIGQodyl7aWYocy5nZXRUb2tlbigpPT09Myl7dmFyIEw9bmV3IGx1KHcscy5nZXRUb2tlbk9mZnNldCgpKTtvKCk7Zm9yKHZhciBBPSExO3MuZ2V0VG9rZW4oKSE9PTQmJnMuZ2V0VG9rZW4oKSE9PTE3Oyl7aWYocy5nZXRUb2tlbigpPT09NSl7QXx8dShVKCJWYWx1ZUV4cGVjdGVkIiwiVmFsdWUgZXhwZWN0ZWQiKSxKLlZhbHVlRXhwZWN0ZWQpO3ZhciBSPXMuZ2V0VG9rZW5PZmZzZXQoKTtpZihvKCkscy5nZXRUb2tlbigpPT09NCl7QSYmbChVKCJUcmFpbGluZ0NvbW1hIiwiVHJhaWxpbmcgY29tbWEiKSxKLlRyYWlsaW5nQ29tbWEsUixSKzEpO2NvbnRpbnVlfX1lbHNlIEEmJnUoVSgiRXhwZWN0ZWRDb21tYSIsIkV4cGVjdGVkIGNvbW1hIiksSi5Db21tYUV4cGVjdGVkKTt2YXIgST1iKEwpO0k/TC5pdGVtcy5wdXNoKEkpOnUoVSgiUHJvcGVydHlFeHBlY3RlZCIsIlZhbHVlIGV4cGVjdGVkIiksSi5WYWx1ZUV4cGVjdGVkLHZvaWQgMCxbXSxbNCw1XSksQT0hMH1yZXR1cm4gcy5nZXRUb2tlbigpIT09ND91KFUoIkV4cGVjdGVkQ2xvc2VCcmFja2V0IiwiRXhwZWN0ZWQgY29tbWEgb3IgY2xvc2luZyBicmFja2V0IiksSi5Db21tYU9yQ2xvc2VCYWNrZXRFeHBlY3RlZCxMKTpoKEwsITApfX12YXIgZz1uZXcgX3Iodm9pZCAwLDAsMCk7ZnVuY3Rpb24gbSh3LEwpe3ZhciBBPW5ldyBjdSh3LHMuZ2V0VG9rZW5PZmZzZXQoKSxnKSxSPXAoQSk7aWYoIVIpaWYocy5nZXRUb2tlbigpPT09MTYpe3UoVSgiRG91YmxlUXVvdGVzRXhwZWN0ZWQiLCJQcm9wZXJ0eSBrZXlzIG11c3QgYmUgZG91YmxlcXVvdGVkIiksSi5VbmRlZmluZWQpO3ZhciBJPW5ldyBfcihBLHMuZ2V0VG9rZW5PZmZzZXQoKSxzLmdldFRva2VuTGVuZ3RoKCkpO0kudmFsdWU9cy5nZXRUb2tlblZhbHVlKCksUj1JLG8oKX1lbHNlIHJldHVybjtBLmtleU5vZGU9Ujt2YXIgQz1MW1IudmFsdWVdO2lmKEM/KGwoVSgiRHVwbGljYXRlS2V5V2FybmluZyIsIkR1cGxpY2F0ZSBvYmplY3Qga2V5IiksSi5EdXBsaWNhdGVLZXksQS5rZXlOb2RlLm9mZnNldCxBLmtleU5vZGUub2Zmc2V0K0Eua2V5Tm9kZS5sZW5ndGgsd2UuV2FybmluZyksdHlwZW9mIEM9PSJvYmplY3QiJiZsKFUoIkR1cGxpY2F0ZUtleVdhcm5pbmciLCJEdXBsaWNhdGUgb2JqZWN0IGtleSIpLEouRHVwbGljYXRlS2V5LEMua2V5Tm9kZS5vZmZzZXQsQy5rZXlOb2RlLm9mZnNldCtDLmtleU5vZGUubGVuZ3RoLHdlLldhcm5pbmcpLExbUi52YWx1ZV09ITApOkxbUi52YWx1ZV09QSxzLmdldFRva2VuKCk9PT02KUEuY29sb25PZmZzZXQ9cy5nZXRUb2tlbk9mZnNldCgpLG8oKTtlbHNlIGlmKHUoVSgiQ29sb25FeHBlY3RlZCIsIkNvbG9uIGV4cGVjdGVkIiksSi5Db2xvbkV4cGVjdGVkKSxzLmdldFRva2VuKCk9PT0xMCYmZS5wb3NpdGlvbkF0KFIub2Zmc2V0K1IubGVuZ3RoKS5saW5lPGUucG9zaXRpb25BdChzLmdldFRva2VuT2Zmc2V0KCkpLmxpbmUpcmV0dXJuIEEubGVuZ3RoPVIubGVuZ3RoLEE7dmFyIF89YihBKTtyZXR1cm4gXz8oQS52YWx1ZU5vZGU9XyxBLmxlbmd0aD1fLm9mZnNldCtfLmxlbmd0aC1BLm9mZnNldCxBKTp1KFUoIlZhbHVlRXhwZWN0ZWQiLCJWYWx1ZSBleHBlY3RlZCIpLEouVmFsdWVFeHBlY3RlZCxBLFtdLFsyLDVdKX1mdW5jdGlvbiB2KHcpe2lmKHMuZ2V0VG9rZW4oKT09PTEpe3ZhciBMPW5ldyBmdSh3LHMuZ2V0VG9rZW5PZmZzZXQoKSksQT1PYmplY3QuY3JlYXRlKG51bGwpO28oKTtmb3IodmFyIFI9ITE7cy5nZXRUb2tlbigpIT09MiYmcy5nZXRUb2tlbigpIT09MTc7KXtpZihzLmdldFRva2VuKCk9PT01KXtSfHx1KFUoIlByb3BlcnR5RXhwZWN0ZWQiLCJQcm9wZXJ0eSBleHBlY3RlZCIpLEouUHJvcGVydHlFeHBlY3RlZCk7dmFyIEk9cy5nZXRUb2tlbk9mZnNldCgpO2lmKG8oKSxzLmdldFRva2VuKCk9PT0yKXtSJiZsKFUoIlRyYWlsaW5nQ29tbWEiLCJUcmFpbGluZyBjb21tYSIpLEouVHJhaWxpbmdDb21tYSxJLEkrMSk7Y29udGludWV9fWVsc2UgUiYmdShVKCJFeHBlY3RlZENvbW1hIiwiRXhwZWN0ZWQgY29tbWEiKSxKLkNvbW1hRXhwZWN0ZWQpO3ZhciBDPW0oTCxBKTtDP0wucHJvcGVydGllcy5wdXNoKEMpOnUoVSgiUHJvcGVydHlFeHBlY3RlZCIsIlByb3BlcnR5IGV4cGVjdGVkIiksSi5Qcm9wZXJ0eUV4cGVjdGVkLHZvaWQgMCxbXSxbMiw1XSksUj0hMH1yZXR1cm4gcy5nZXRUb2tlbigpIT09Mj91KFUoIkV4cGVjdGVkQ2xvc2VCcmFjZSIsIkV4cGVjdGVkIGNvbW1hIG9yIGNsb3NpbmcgYnJhY2UiKSxKLkNvbW1hT3JDbG9zZUJyYWNlRXhwZWN0ZWQsTCk6aChMLCEwKX19ZnVuY3Rpb24gcCh3KXtpZihzLmdldFRva2VuKCk9PT0xMCl7dmFyIEw9bmV3IF9yKHcscy5nZXRUb2tlbk9mZnNldCgpKTtyZXR1cm4gTC52YWx1ZT1zLmdldFRva2VuVmFsdWUoKSxoKEwsITApfX1mdW5jdGlvbiB4KHcpe2lmKHMuZ2V0VG9rZW4oKT09PTExKXt2YXIgTD1uZXcgdXUodyxzLmdldFRva2VuT2Zmc2V0KCkpO2lmKHMuZ2V0VG9rZW5FcnJvcigpPT09MCl7dmFyIEE9cy5nZXRUb2tlblZhbHVlKCk7dHJ5e3ZhciBSPUpTT04ucGFyc2UoQSk7aWYoIV9lKFIpKXJldHVybiB1KFUoIkludmFsaWROdW1iZXJGb3JtYXQiLCJJbnZhbGlkIG51bWJlciBmb3JtYXQuIiksSi5VbmRlZmluZWQsTCk7TC52YWx1ZT1SfWNhdGNoe3JldHVybiB1KFUoIkludmFsaWROdW1iZXJGb3JtYXQiLCJJbnZhbGlkIG51bWJlciBmb3JtYXQuIiksSi5VbmRlZmluZWQsTCl9TC5pc0ludGVnZXI9QS5pbmRleE9mKCIuIik9PT0tMX1yZXR1cm4gaChMLCEwKX19ZnVuY3Rpb24geSh3KXtzd2l0Y2gocy5nZXRUb2tlbigpKXtjYXNlIDc6cmV0dXJuIGgobmV3IG91KHcscy5nZXRUb2tlbk9mZnNldCgpKSwhMCk7Y2FzZSA4OnJldHVybiBoKG5ldyBjYSh3LCEwLHMuZ2V0VG9rZW5PZmZzZXQoKSksITApO2Nhc2UgOTpyZXR1cm4gaChuZXcgY2EodywhMSxzLmdldFRva2VuT2Zmc2V0KCkpLCEwKTtkZWZhdWx0OnJldHVybn19ZnVuY3Rpb24gYih3KXtyZXR1cm4gZCh3KXx8dih3KXx8cCh3KXx8eCh3KXx8eSh3KX12YXIgTj12b2lkIDAsUz1vKCk7cmV0dXJuIFMhPT0xNyYmKE49YihOKSxOP3MuZ2V0VG9rZW4oKSE9PTE3JiZ1KFUoIkVuZCBvZiBmaWxlIGV4cGVjdGVkIiwiRW5kIG9mIGZpbGUgZXhwZWN0ZWQuIiksSi5VbmRlZmluZWQpOnUoVSgiSW52YWxpZCBzeW1ib2wiLCJFeHBlY3RlZCBhIEpTT04gb2JqZWN0LCBhcnJheSBvciBsaXRlcmFsLiIpLEouVW5kZWZpbmVkKSksbmV3IGRhKE4sbixhKX1mdW5jdGlvbiBOcihlLHQsbil7aWYoZSE9PW51bGwmJnR5cGVvZiBlPT0ib2JqZWN0Iil7dmFyIHI9dCsiCSI7aWYoQXJyYXkuaXNBcnJheShlKSl7aWYoZS5sZW5ndGg9PT0wKXJldHVybiJbXSI7Zm9yKHZhciBpPWBbCmAscz0wO3M8ZS5sZW5ndGg7cysrKWkrPXIrTnIoZVtzXSxyLG4pLHM8ZS5sZW5ndGgtMSYmKGkrPSIsIiksaSs9YApgO3JldHVybiBpKz10KyJdIixpfWVsc2V7dmFyIGE9T2JqZWN0LmtleXMoZSk7aWYoYS5sZW5ndGg9PT0wKXJldHVybiJ7fSI7Zm9yKHZhciBpPWB7CmAscz0wO3M8YS5sZW5ndGg7cysrKXt2YXIgbz1hW3NdO2krPXIrSlNPTi5zdHJpbmdpZnkobykrIjogIitOcihlW29dLHIsbiksczxhLmxlbmd0aC0xJiYoaSs9IiwiKSxpKz1gCmB9cmV0dXJuIGkrPXQrIn0iLGl9fXJldHVybiBuKGUpfXZhciBMcj1KdCgpLG11PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LG4scixpKXtuPT09dm9pZCAwJiYobj1bXSkscj09PXZvaWQgMCYmKHI9UHJvbWlzZSksaT09PXZvaWQgMCYmKGk9e30pLHRoaXMuc2NoZW1hU2VydmljZT10LHRoaXMuY29udHJpYnV0aW9ucz1uLHRoaXMucHJvbWlzZUNvbnN0cnVjdG9yPXIsdGhpcy5jbGllbnRDYXBhYmlsaXRpZXM9aX1yZXR1cm4gZS5wcm90b3R5cGUuZG9SZXNvbHZlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgbj10aGlzLmNvbnRyaWJ1dGlvbnMubGVuZ3RoLTE7bj49MDtuLS0pe3ZhciByPXRoaXMuY29udHJpYnV0aW9uc1tuXS5yZXNvbHZlQ29tcGxldGlvbjtpZihyKXt2YXIgaT1yKHQpO2lmKGkpcmV0dXJuIGl9fXJldHVybiB0aGlzLnByb21pc2VDb25zdHJ1Y3Rvci5yZXNvbHZlKHQpfSxlLnByb3RvdHlwZS5kb0NvbXBsZXRlPWZ1bmN0aW9uKHQsbixyKXt2YXIgaT10aGlzLHM9e2l0ZW1zOltdLGlzSW5jb21wbGV0ZTohMX0sYT10LmdldFRleHQoKSxvPXQub2Zmc2V0QXQobiksbD1yLmdldE5vZGVGcm9tT2Zmc2V0KG8sITApO2lmKHRoaXMuaXNJbkNvbW1lbnQodCxsP2wub2Zmc2V0OjAsbykpcmV0dXJuIFByb21pc2UucmVzb2x2ZShzKTtpZihsJiZvPT09bC5vZmZzZXQrbC5sZW5ndGgmJm8+MCl7dmFyIHU9YVtvLTFdOyhsLnR5cGU9PT0ib2JqZWN0IiYmdT09PSJ9Inx8bC50eXBlPT09ImFycmF5IiYmdT09PSJdIikmJihsPWwucGFyZW50KX12YXIgZj10aGlzLmdldEN1cnJlbnRXb3JkKHQsbyksaDtpZihsJiYobC50eXBlPT09InN0cmluZyJ8fGwudHlwZT09PSJudW1iZXIifHxsLnR5cGU9PT0iYm9vbGVhbiJ8fGwudHlwZT09PSJudWxsIikpaD1YLmNyZWF0ZSh0LnBvc2l0aW9uQXQobC5vZmZzZXQpLHQucG9zaXRpb25BdChsLm9mZnNldCtsLmxlbmd0aCkpO2Vsc2V7dmFyIGQ9by1mLmxlbmd0aDtkPjAmJmFbZC0xXT09PSciJyYmZC0tLGg9WC5jcmVhdGUodC5wb3NpdGlvbkF0KGQpLG4pfXZhciBnPXt9LG09e2FkZDpmdW5jdGlvbih2KXt2YXIgcD12LmxhYmVsLHg9Z1twXTtpZih4KXguZG9jdW1lbnRhdGlvbnx8KHguZG9jdW1lbnRhdGlvbj12LmRvY3VtZW50YXRpb24pLHguZGV0YWlsfHwoeC5kZXRhaWw9di5kZXRhaWwpO2Vsc2V7aWYocD1wLnJlcGxhY2UoL1tcbl0vZywi4oa1IikscC5sZW5ndGg+NjApe3ZhciB5PXAuc3Vic3RyKDAsNTcpLnRyaW0oKSsiLi4uIjtnW3ldfHwocD15KX1oJiZ2Lmluc2VydFRleHQhPT12b2lkIDAmJih2LnRleHRFZGl0PU1lLnJlcGxhY2UoaCx2Lmluc2VydFRleHQpKSx2LmxhYmVsPXAsZ1twXT12LHMuaXRlbXMucHVzaCh2KX19LHNldEFzSW5jb21wbGV0ZTpmdW5jdGlvbigpe3MuaXNJbmNvbXBsZXRlPSEwfSxlcnJvcjpmdW5jdGlvbih2KXt9LGxvZzpmdW5jdGlvbih2KXt9LGdldE51bWJlck9mUHJvcG9zYWxzOmZ1bmN0aW9uKCl7cmV0dXJuIHMuaXRlbXMubGVuZ3RofX07cmV0dXJuIHRoaXMuc2NoZW1hU2VydmljZS5nZXRTY2hlbWFGb3JSZXNvdXJjZSh0LnVyaSxyKS50aGVuKGZ1bmN0aW9uKHYpe3ZhciBwPVtdLHg9ITAseT0iIixiPXZvaWQgMDtpZihsJiZsLnR5cGU9PT0ic3RyaW5nIil7dmFyIE49bC5wYXJlbnQ7TiYmTi50eXBlPT09InByb3BlcnR5IiYmTi5rZXlOb2RlPT09bCYmKHg9IU4udmFsdWVOb2RlLGI9Tix5PWEuc3Vic3RyKGwub2Zmc2V0KzEsbC5sZW5ndGgtMiksTiYmKGw9Ti5wYXJlbnQpKX1pZihsJiZsLnR5cGU9PT0ib2JqZWN0Iil7aWYobC5vZmZzZXQ9PT1vKXJldHVybiBzO3ZhciBTPWwucHJvcGVydGllcztTLmZvckVhY2goZnVuY3Rpb24oUil7KCFifHxiIT09UikmJihnW1Iua2V5Tm9kZS52YWx1ZV09dnIuY3JlYXRlKCJfXyIpKX0pO3ZhciB3PSIiO3gmJih3PWkuZXZhbHVhdGVTZXBhcmF0b3JBZnRlcih0LHQub2Zmc2V0QXQoaC5lbmQpKSksdj9pLmdldFByb3BlcnR5Q29tcGxldGlvbnModixyLGwseCx3LG0pOmkuZ2V0U2NoZW1hTGVzc1Byb3BlcnR5Q29tcGxldGlvbnMocixsLHksbSk7dmFyIEw9U3IobCk7aS5jb250cmlidXRpb25zLmZvckVhY2goZnVuY3Rpb24oUil7dmFyIEk9Ui5jb2xsZWN0UHJvcGVydHlDb21wbGV0aW9ucyh0LnVyaSxMLGYseCx3PT09IiIsbSk7SSYmcC5wdXNoKEkpfSksIXYmJmYubGVuZ3RoPjAmJmEuY2hhckF0KG8tZi5sZW5ndGgtMSkhPT0nIicmJihtLmFkZCh7a2luZDpTZS5Qcm9wZXJ0eSxsYWJlbDppLmdldExhYmVsRm9yVmFsdWUoZiksaW5zZXJ0VGV4dDppLmdldEluc2VydFRleHRGb3JQcm9wZXJ0eShmLHZvaWQgMCwhMSx3KSxpbnNlcnRUZXh0Rm9ybWF0OmllLlNuaXBwZXQsZG9jdW1lbnRhdGlvbjoiIn0pLG0uc2V0QXNJbmNvbXBsZXRlKCkpfXZhciBBPXt9O3JldHVybiB2P2kuZ2V0VmFsdWVDb21wbGV0aW9ucyh2LHIsbCxvLHQsbSxBKTppLmdldFNjaGVtYUxlc3NWYWx1ZUNvbXBsZXRpb25zKHIsbCxvLHQsbSksaS5jb250cmlidXRpb25zLmxlbmd0aD4wJiZpLmdldENvbnRyaWJ1dGVkVmFsdWVDb21wbGV0aW9ucyhyLGwsbyx0LG0scCksaS5wcm9taXNlQ29uc3RydWN0b3IuYWxsKHApLnRoZW4oZnVuY3Rpb24oKXtpZihtLmdldE51bWJlck9mUHJvcG9zYWxzKCk9PT0wKXt2YXIgUj1vO2wmJihsLnR5cGU9PT0ic3RyaW5nInx8bC50eXBlPT09Im51bWJlciJ8fGwudHlwZT09PSJib29sZWFuInx8bC50eXBlPT09Im51bGwiKSYmKFI9bC5vZmZzZXQrbC5sZW5ndGgpO3ZhciBJPWkuZXZhbHVhdGVTZXBhcmF0b3JBZnRlcih0LFIpO2kuYWRkRmlsbGVyVmFsdWVDb21wbGV0aW9ucyhBLEksbSl9cmV0dXJuIHN9KX0pfSxlLnByb3RvdHlwZS5nZXRQcm9wZXJ0eUNvbXBsZXRpb25zPWZ1bmN0aW9uKHQsbixyLGkscyxhKXt2YXIgbz10aGlzLGw9bi5nZXRNYXRjaGluZ1NjaGVtYXModC5zY2hlbWEsci5vZmZzZXQpO2wuZm9yRWFjaChmdW5jdGlvbih1KXtpZih1Lm5vZGU9PT1yJiYhdS5pbnZlcnRlZCl7dmFyIGY9dS5zY2hlbWEucHJvcGVydGllcztmJiZPYmplY3Qua2V5cyhmKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe3ZhciBwPWZbdl07aWYodHlwZW9mIHA9PSJvYmplY3QiJiYhcC5kZXByZWNhdGlvbk1lc3NhZ2UmJiFwLmRvTm90U3VnZ2VzdCl7dmFyIHg9e2tpbmQ6U2UuUHJvcGVydHksbGFiZWw6dixpbnNlcnRUZXh0Om8uZ2V0SW5zZXJ0VGV4dEZvclByb3BlcnR5KHYscCxpLHMpLGluc2VydFRleHRGb3JtYXQ6aWUuU25pcHBldCxmaWx0ZXJUZXh0Om8uZ2V0RmlsdGVyVGV4dEZvclZhbHVlKHYpLGRvY3VtZW50YXRpb246by5mcm9tTWFya3VwKHAubWFya2Rvd25EZXNjcmlwdGlvbil8fHAuZGVzY3JpcHRpb258fCIifTtwLnN1Z2dlc3RTb3J0VGV4dCE9PXZvaWQgMCYmKHguc29ydFRleHQ9cC5zdWdnZXN0U29ydFRleHQpLHguaW5zZXJ0VGV4dCYmcXQoeC5pbnNlcnRUZXh0LCIkMSIuY29uY2F0KHMpKSYmKHguY29tbWFuZD17dGl0bGU6IlN1Z2dlc3QiLGNvbW1hbmQ6ImVkaXRvci5hY3Rpb24udHJpZ2dlclN1Z2dlc3QifSksYS5hZGQoeCl9fSk7dmFyIGg9dS5zY2hlbWEucHJvcGVydHlOYW1lcztpZih0eXBlb2YgaD09Im9iamVjdCImJiFoLmRlcHJlY2F0aW9uTWVzc2FnZSYmIWguZG9Ob3RTdWdnZXN0KXt2YXIgZD1mdW5jdGlvbih2LHApe3A9PT12b2lkIDAmJihwPXZvaWQgMCk7dmFyIHg9e2tpbmQ6U2UuUHJvcGVydHksbGFiZWw6dixpbnNlcnRUZXh0Om8uZ2V0SW5zZXJ0VGV4dEZvclByb3BlcnR5KHYsdm9pZCAwLGkscyksaW5zZXJ0VGV4dEZvcm1hdDppZS5TbmlwcGV0LGZpbHRlclRleHQ6by5nZXRGaWx0ZXJUZXh0Rm9yVmFsdWUodiksZG9jdW1lbnRhdGlvbjpwfHxvLmZyb21NYXJrdXAoaC5tYXJrZG93bkRlc2NyaXB0aW9uKXx8aC5kZXNjcmlwdGlvbnx8IiJ9O2guc3VnZ2VzdFNvcnRUZXh0IT09dm9pZCAwJiYoeC5zb3J0VGV4dD1oLnN1Z2dlc3RTb3J0VGV4dCkseC5pbnNlcnRUZXh0JiZxdCh4Lmluc2VydFRleHQsIiQxIi5jb25jYXQocykpJiYoeC5jb21tYW5kPXt0aXRsZToiU3VnZ2VzdCIsY29tbWFuZDoiZWRpdG9yLmFjdGlvbi50cmlnZ2VyU3VnZ2VzdCJ9KSxhLmFkZCh4KX07aWYoaC5lbnVtKWZvcih2YXIgZz0wO2c8aC5lbnVtLmxlbmd0aDtnKyspe3ZhciBtPXZvaWQgMDtoLm1hcmtkb3duRW51bURlc2NyaXB0aW9ucyYmZzxoLm1hcmtkb3duRW51bURlc2NyaXB0aW9ucy5sZW5ndGg/bT1vLmZyb21NYXJrdXAoaC5tYXJrZG93bkVudW1EZXNjcmlwdGlvbnNbZ10pOmguZW51bURlc2NyaXB0aW9ucyYmZzxoLmVudW1EZXNjcmlwdGlvbnMubGVuZ3RoJiYobT1oLmVudW1EZXNjcmlwdGlvbnNbZ10pLGQoaC5lbnVtW2ddLG0pfWguY29uc3QmJmQoaC5jb25zdCl9fX0pfSxlLnByb3RvdHlwZS5nZXRTY2hlbWFMZXNzUHJvcGVydHlDb21wbGV0aW9ucz1mdW5jdGlvbih0LG4scixpKXt2YXIgcz10aGlzLGE9ZnVuY3Rpb24obCl7bC5wcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24odSl7dmFyIGY9dS5rZXlOb2RlLnZhbHVlO2kuYWRkKHtraW5kOlNlLlByb3BlcnR5LGxhYmVsOmYsaW5zZXJ0VGV4dDpzLmdldEluc2VydFRleHRGb3JWYWx1ZShmLCIiKSxpbnNlcnRUZXh0Rm9ybWF0OmllLlNuaXBwZXQsZmlsdGVyVGV4dDpzLmdldEZpbHRlclRleHRGb3JWYWx1ZShmKSxkb2N1bWVudGF0aW9uOiIifSl9KX07aWYobi5wYXJlbnQpaWYobi5wYXJlbnQudHlwZT09PSJwcm9wZXJ0eSIpe3ZhciBvPW4ucGFyZW50LmtleU5vZGUudmFsdWU7dC52aXNpdChmdW5jdGlvbihsKXtyZXR1cm4gbC50eXBlPT09InByb3BlcnR5IiYmbCE9PW4ucGFyZW50JiZsLmtleU5vZGUudmFsdWU9PT1vJiZsLnZhbHVlTm9kZSYmbC52YWx1ZU5vZGUudHlwZT09PSJvYmplY3QiJiZhKGwudmFsdWVOb2RlKSwhMH0pfWVsc2Ugbi5wYXJlbnQudHlwZT09PSJhcnJheSImJm4ucGFyZW50Lml0ZW1zLmZvckVhY2goZnVuY3Rpb24obCl7bC50eXBlPT09Im9iamVjdCImJmwhPT1uJiZhKGwpfSk7ZWxzZSBuLnR5cGU9PT0ib2JqZWN0IiYmaS5hZGQoe2tpbmQ6U2UuUHJvcGVydHksbGFiZWw6IiRzY2hlbWEiLGluc2VydFRleHQ6dGhpcy5nZXRJbnNlcnRUZXh0Rm9yUHJvcGVydHkoIiRzY2hlbWEiLHZvaWQgMCwhMCwiIiksaW5zZXJ0VGV4dEZvcm1hdDppZS5TbmlwcGV0LGRvY3VtZW50YXRpb246IiIsZmlsdGVyVGV4dDp0aGlzLmdldEZpbHRlclRleHRGb3JWYWx1ZSgiJHNjaGVtYSIpfSl9LGUucHJvdG90eXBlLmdldFNjaGVtYUxlc3NWYWx1ZUNvbXBsZXRpb25zPWZ1bmN0aW9uKHQsbixyLGkscyl7dmFyIGE9dGhpcyxvPXI7aWYobiYmKG4udHlwZT09PSJzdHJpbmcifHxuLnR5cGU9PT0ibnVtYmVyInx8bi50eXBlPT09ImJvb2xlYW4ifHxuLnR5cGU9PT0ibnVsbCIpJiYobz1uLm9mZnNldCtuLmxlbmd0aCxuPW4ucGFyZW50KSwhbil7cy5hZGQoe2tpbmQ6dGhpcy5nZXRTdWdnZXN0aW9uS2luZCgib2JqZWN0IiksbGFiZWw6IkVtcHR5IG9iamVjdCIsaW5zZXJ0VGV4dDp0aGlzLmdldEluc2VydFRleHRGb3JWYWx1ZSh7fSwiIiksaW5zZXJ0VGV4dEZvcm1hdDppZS5TbmlwcGV0LGRvY3VtZW50YXRpb246IiJ9KSxzLmFkZCh7a2luZDp0aGlzLmdldFN1Z2dlc3Rpb25LaW5kKCJhcnJheSIpLGxhYmVsOiJFbXB0eSBhcnJheSIsaW5zZXJ0VGV4dDp0aGlzLmdldEluc2VydFRleHRGb3JWYWx1ZShbXSwiIiksaW5zZXJ0VGV4dEZvcm1hdDppZS5TbmlwcGV0LGRvY3VtZW50YXRpb246IiJ9KTtyZXR1cm59dmFyIGw9dGhpcy5ldmFsdWF0ZVNlcGFyYXRvckFmdGVyKGksbyksdT1mdW5jdGlvbihnKXtnLnBhcmVudCYmIWhhKGcucGFyZW50LHIsITApJiZzLmFkZCh7a2luZDphLmdldFN1Z2dlc3Rpb25LaW5kKGcudHlwZSksbGFiZWw6YS5nZXRMYWJlbFRleHRGb3JNYXRjaGluZ05vZGUoZyxpKSxpbnNlcnRUZXh0OmEuZ2V0SW5zZXJ0VGV4dEZvck1hdGNoaW5nTm9kZShnLGksbCksaW5zZXJ0VGV4dEZvcm1hdDppZS5TbmlwcGV0LGRvY3VtZW50YXRpb246IiJ9KSxnLnR5cGU9PT0iYm9vbGVhbiImJmEuYWRkQm9vbGVhblZhbHVlQ29tcGxldGlvbighZy52YWx1ZSxsLHMpfTtpZihuLnR5cGU9PT0icHJvcGVydHkiJiZyPihuLmNvbG9uT2Zmc2V0fHwwKSl7dmFyIGY9bi52YWx1ZU5vZGU7aWYoZiYmKHI+Zi5vZmZzZXQrZi5sZW5ndGh8fGYudHlwZT09PSJvYmplY3QifHxmLnR5cGU9PT0iYXJyYXkiKSlyZXR1cm47dmFyIGg9bi5rZXlOb2RlLnZhbHVlO3QudmlzaXQoZnVuY3Rpb24oZyl7cmV0dXJuIGcudHlwZT09PSJwcm9wZXJ0eSImJmcua2V5Tm9kZS52YWx1ZT09PWgmJmcudmFsdWVOb2RlJiZ1KGcudmFsdWVOb2RlKSwhMH0pLGg9PT0iJHNjaGVtYSImJm4ucGFyZW50JiYhbi5wYXJlbnQucGFyZW50JiZ0aGlzLmFkZERvbGxhclNjaGVtYUNvbXBsZXRpb25zKGwscyl9aWYobi50eXBlPT09ImFycmF5IilpZihuLnBhcmVudCYmbi5wYXJlbnQudHlwZT09PSJwcm9wZXJ0eSIpe3ZhciBkPW4ucGFyZW50LmtleU5vZGUudmFsdWU7dC52aXNpdChmdW5jdGlvbihnKXtyZXR1cm4gZy50eXBlPT09InByb3BlcnR5IiYmZy5rZXlOb2RlLnZhbHVlPT09ZCYmZy52YWx1ZU5vZGUmJmcudmFsdWVOb2RlLnR5cGU9PT0iYXJyYXkiJiZnLnZhbHVlTm9kZS5pdGVtcy5mb3JFYWNoKHUpLCEwfSl9ZWxzZSBuLml0ZW1zLmZvckVhY2godSl9LGUucHJvdG90eXBlLmdldFZhbHVlQ29tcGxldGlvbnM9ZnVuY3Rpb24odCxuLHIsaSxzLGEsbyl7dmFyIGw9aSx1PXZvaWQgMCxmPXZvaWQgMDtpZihyJiYoci50eXBlPT09InN0cmluZyJ8fHIudHlwZT09PSJudW1iZXIifHxyLnR5cGU9PT0iYm9vbGVhbiJ8fHIudHlwZT09PSJudWxsIikmJihsPXIub2Zmc2V0K3IubGVuZ3RoLGY9cixyPXIucGFyZW50KSwhcil7dGhpcy5hZGRTY2hlbWFWYWx1ZUNvbXBsZXRpb25zKHQuc2NoZW1hLCIiLGEsbyk7cmV0dXJufWlmKHIudHlwZT09PSJwcm9wZXJ0eSImJmk+KHIuY29sb25PZmZzZXR8fDApKXt2YXIgaD1yLnZhbHVlTm9kZTtpZihoJiZpPmgub2Zmc2V0K2gubGVuZ3RoKXJldHVybjt1PXIua2V5Tm9kZS52YWx1ZSxyPXIucGFyZW50fWlmKHImJih1IT09dm9pZCAwfHxyLnR5cGU9PT0iYXJyYXkiKSl7Zm9yKHZhciBkPXRoaXMuZXZhbHVhdGVTZXBhcmF0b3JBZnRlcihzLGwpLGc9bi5nZXRNYXRjaGluZ1NjaGVtYXModC5zY2hlbWEsci5vZmZzZXQsZiksbT0wLHY9ZzttPHYubGVuZ3RoO20rKyl7dmFyIHA9dlttXTtpZihwLm5vZGU9PT1yJiYhcC5pbnZlcnRlZCYmcC5zY2hlbWEpe2lmKHIudHlwZT09PSJhcnJheSImJnAuc2NoZW1hLml0ZW1zKWlmKEFycmF5LmlzQXJyYXkocC5zY2hlbWEuaXRlbXMpKXt2YXIgeD10aGlzLmZpbmRJdGVtQXRPZmZzZXQocixzLGkpO3g8cC5zY2hlbWEuaXRlbXMubGVuZ3RoJiZ0aGlzLmFkZFNjaGVtYVZhbHVlQ29tcGxldGlvbnMocC5zY2hlbWEuaXRlbXNbeF0sZCxhLG8pfWVsc2UgdGhpcy5hZGRTY2hlbWFWYWx1ZUNvbXBsZXRpb25zKHAuc2NoZW1hLml0ZW1zLGQsYSxvKTtpZih1IT09dm9pZCAwKXt2YXIgeT0hMTtpZihwLnNjaGVtYS5wcm9wZXJ0aWVzKXt2YXIgYj1wLnNjaGVtYS5wcm9wZXJ0aWVzW3VdO2ImJih5PSEwLHRoaXMuYWRkU2NoZW1hVmFsdWVDb21wbGV0aW9ucyhiLGQsYSxvKSl9aWYocC5zY2hlbWEucGF0dGVyblByb3BlcnRpZXMmJiF5KWZvcih2YXIgTj0wLFM9T2JqZWN0LmtleXMocC5zY2hlbWEucGF0dGVyblByb3BlcnRpZXMpO048Uy5sZW5ndGg7TisrKXt2YXIgdz1TW05dLEw9Z24odyk7aWYoTCE9bnVsbCYmTC50ZXN0KHUpKXt5PSEwO3ZhciBiPXAuc2NoZW1hLnBhdHRlcm5Qcm9wZXJ0aWVzW3ddO3RoaXMuYWRkU2NoZW1hVmFsdWVDb21wbGV0aW9ucyhiLGQsYSxvKX19aWYocC5zY2hlbWEuYWRkaXRpb25hbFByb3BlcnRpZXMmJiF5KXt2YXIgYj1wLnNjaGVtYS5hZGRpdGlvbmFsUHJvcGVydGllczt0aGlzLmFkZFNjaGVtYVZhbHVlQ29tcGxldGlvbnMoYixkLGEsbyl9fX19dT09PSIkc2NoZW1hIiYmIXIucGFyZW50JiZ0aGlzLmFkZERvbGxhclNjaGVtYUNvbXBsZXRpb25zKGQsYSksby5ib29sZWFuJiYodGhpcy5hZGRCb29sZWFuVmFsdWVDb21wbGV0aW9uKCEwLGQsYSksdGhpcy5hZGRCb29sZWFuVmFsdWVDb21wbGV0aW9uKCExLGQsYSkpLG8ubnVsbCYmdGhpcy5hZGROdWxsVmFsdWVDb21wbGV0aW9uKGQsYSl9fSxlLnByb3RvdHlwZS5nZXRDb250cmlidXRlZFZhbHVlQ29tcGxldGlvbnM9ZnVuY3Rpb24odCxuLHIsaSxzLGEpe2lmKCFuKXRoaXMuY29udHJpYnV0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGYpe3ZhciBoPWYuY29sbGVjdERlZmF1bHRDb21wbGV0aW9ucyhpLnVyaSxzKTtoJiZhLnB1c2goaCl9KTtlbHNlIGlmKChuLnR5cGU9PT0ic3RyaW5nInx8bi50eXBlPT09Im51bWJlciJ8fG4udHlwZT09PSJib29sZWFuInx8bi50eXBlPT09Im51bGwiKSYmKG49bi5wYXJlbnQpLG4mJm4udHlwZT09PSJwcm9wZXJ0eSImJnI+KG4uY29sb25PZmZzZXR8fDApKXt2YXIgbz1uLmtleU5vZGUudmFsdWUsbD1uLnZhbHVlTm9kZTtpZigoIWx8fHI8PWwub2Zmc2V0K2wubGVuZ3RoKSYmbi5wYXJlbnQpe3ZhciB1PVNyKG4ucGFyZW50KTt0aGlzLmNvbnRyaWJ1dGlvbnMuZm9yRWFjaChmdW5jdGlvbihmKXt2YXIgaD1mLmNvbGxlY3RWYWx1ZUNvbXBsZXRpb25zKGkudXJpLHUsbyxzKTtoJiZhLnB1c2goaCl9KX19fSxlLnByb3RvdHlwZS5hZGRTY2hlbWFWYWx1ZUNvbXBsZXRpb25zPWZ1bmN0aW9uKHQsbixyLGkpe3ZhciBzPXRoaXM7dHlwZW9mIHQ9PSJvYmplY3QiJiYodGhpcy5hZGRFbnVtVmFsdWVDb21wbGV0aW9ucyh0LG4sciksdGhpcy5hZGREZWZhdWx0VmFsdWVDb21wbGV0aW9ucyh0LG4sciksdGhpcy5jb2xsZWN0VHlwZXModCxpKSxBcnJheS5pc0FycmF5KHQuYWxsT2YpJiZ0LmFsbE9mLmZvckVhY2goZnVuY3Rpb24oYSl7cmV0dXJuIHMuYWRkU2NoZW1hVmFsdWVDb21wbGV0aW9ucyhhLG4scixpKX0pLEFycmF5LmlzQXJyYXkodC5hbnlPZikmJnQuYW55T2YuZm9yRWFjaChmdW5jdGlvbihhKXtyZXR1cm4gcy5hZGRTY2hlbWFWYWx1ZUNvbXBsZXRpb25zKGEsbixyLGkpfSksQXJyYXkuaXNBcnJheSh0Lm9uZU9mKSYmdC5vbmVPZi5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JldHVybiBzLmFkZFNjaGVtYVZhbHVlQ29tcGxldGlvbnMoYSxuLHIsaSl9KSl9LGUucHJvdG90eXBlLmFkZERlZmF1bHRWYWx1ZUNvbXBsZXRpb25zPWZ1bmN0aW9uKHQsbixyLGkpe3ZhciBzPXRoaXM7aT09PXZvaWQgMCYmKGk9MCk7dmFyIGE9ITE7aWYoamUodC5kZWZhdWx0KSl7Zm9yKHZhciBvPXQudHlwZSxsPXQuZGVmYXVsdCx1PWk7dT4wO3UtLSlsPVtsXSxvPSJhcnJheSI7ci5hZGQoe2tpbmQ6dGhpcy5nZXRTdWdnZXN0aW9uS2luZChvKSxsYWJlbDp0aGlzLmdldExhYmVsRm9yVmFsdWUobCksaW5zZXJ0VGV4dDp0aGlzLmdldEluc2VydFRleHRGb3JWYWx1ZShsLG4pLGluc2VydFRleHRGb3JtYXQ6aWUuU25pcHBldCxkZXRhaWw6THIoImpzb24uc3VnZ2VzdC5kZWZhdWx0IiwiRGVmYXVsdCB2YWx1ZSIpfSksYT0hMH1BcnJheS5pc0FycmF5KHQuZXhhbXBsZXMpJiZ0LmV4YW1wbGVzLmZvckVhY2goZnVuY3Rpb24oZil7Zm9yKHZhciBoPXQudHlwZSxkPWYsZz1pO2c+MDtnLS0pZD1bZF0saD0iYXJyYXkiO3IuYWRkKHtraW5kOnMuZ2V0U3VnZ2VzdGlvbktpbmQoaCksbGFiZWw6cy5nZXRMYWJlbEZvclZhbHVlKGQpLGluc2VydFRleHQ6cy5nZXRJbnNlcnRUZXh0Rm9yVmFsdWUoZCxuKSxpbnNlcnRUZXh0Rm9ybWF0OmllLlNuaXBwZXR9KSxhPSEwfSksQXJyYXkuaXNBcnJheSh0LmRlZmF1bHRTbmlwcGV0cykmJnQuZGVmYXVsdFNuaXBwZXRzLmZvckVhY2goZnVuY3Rpb24oZil7dmFyIGg9dC50eXBlLGQ9Zi5ib2R5LGc9Zi5sYWJlbCxtLHY7aWYoamUoZCkpe3QudHlwZTtmb3IodmFyIHA9aTtwPjA7cC0tKWQ9W2RdO209cy5nZXRJbnNlcnRUZXh0Rm9yU25pcHBldFZhbHVlKGQsbiksdj1zLmdldEZpbHRlclRleHRGb3JTbmlwcGV0VmFsdWUoZCksZz1nfHxzLmdldExhYmVsRm9yU25pcHBldFZhbHVlKGQpfWVsc2UgaWYodHlwZW9mIGYuYm9keVRleHQ9PSJzdHJpbmciKXtmb3IodmFyIHg9IiIseT0iIixiPSIiLHA9aTtwPjA7cC0tKXg9eCtiK2BbCmAseT15K2AKYCtiKyJdIixiKz0iCSIsaD0iYXJyYXkiO209eCtiK2YuYm9keVRleHQuc3BsaXQoYApgKS5qb2luKGAKYCtiKSt5K24sZz1nfHxtLHY9bS5yZXBsYWNlKC9bXG5dL2csIiIpfWVsc2UgcmV0dXJuO3IuYWRkKHtraW5kOnMuZ2V0U3VnZ2VzdGlvbktpbmQoaCksbGFiZWw6Zyxkb2N1bWVudGF0aW9uOnMuZnJvbU1hcmt1cChmLm1hcmtkb3duRGVzY3JpcHRpb24pfHxmLmRlc2NyaXB0aW9uLGluc2VydFRleHQ6bSxpbnNlcnRUZXh0Rm9ybWF0OmllLlNuaXBwZXQsZmlsdGVyVGV4dDp2fSksYT0hMH0pLCFhJiZ0eXBlb2YgdC5pdGVtcz09Im9iamVjdCImJiFBcnJheS5pc0FycmF5KHQuaXRlbXMpJiZpPDUmJnRoaXMuYWRkRGVmYXVsdFZhbHVlQ29tcGxldGlvbnModC5pdGVtcyxuLHIsaSsxKX0sZS5wcm90b3R5cGUuYWRkRW51bVZhbHVlQ29tcGxldGlvbnM9ZnVuY3Rpb24odCxuLHIpe2lmKGplKHQuY29uc3QpJiZyLmFkZCh7a2luZDp0aGlzLmdldFN1Z2dlc3Rpb25LaW5kKHQudHlwZSksbGFiZWw6dGhpcy5nZXRMYWJlbEZvclZhbHVlKHQuY29uc3QpLGluc2VydFRleHQ6dGhpcy5nZXRJbnNlcnRUZXh0Rm9yVmFsdWUodC5jb25zdCxuKSxpbnNlcnRUZXh0Rm9ybWF0OmllLlNuaXBwZXQsZG9jdW1lbnRhdGlvbjp0aGlzLmZyb21NYXJrdXAodC5tYXJrZG93bkRlc2NyaXB0aW9uKXx8dC5kZXNjcmlwdGlvbn0pLEFycmF5LmlzQXJyYXkodC5lbnVtKSlmb3IodmFyIGk9MCxzPXQuZW51bS5sZW5ndGg7aTxzO2krKyl7dmFyIGE9dC5lbnVtW2ldLG89dGhpcy5mcm9tTWFya3VwKHQubWFya2Rvd25EZXNjcmlwdGlvbil8fHQuZGVzY3JpcHRpb247dC5tYXJrZG93bkVudW1EZXNjcmlwdGlvbnMmJmk8dC5tYXJrZG93bkVudW1EZXNjcmlwdGlvbnMubGVuZ3RoJiZ0aGlzLmRvZXNTdXBwb3J0TWFya2Rvd24oKT9vPXRoaXMuZnJvbU1hcmt1cCh0Lm1hcmtkb3duRW51bURlc2NyaXB0aW9uc1tpXSk6dC5lbnVtRGVzY3JpcHRpb25zJiZpPHQuZW51bURlc2NyaXB0aW9ucy5sZW5ndGgmJihvPXQuZW51bURlc2NyaXB0aW9uc1tpXSksci5hZGQoe2tpbmQ6dGhpcy5nZXRTdWdnZXN0aW9uS2luZCh0LnR5cGUpLGxhYmVsOnRoaXMuZ2V0TGFiZWxGb3JWYWx1ZShhKSxpbnNlcnRUZXh0OnRoaXMuZ2V0SW5zZXJ0VGV4dEZvclZhbHVlKGEsbiksaW5zZXJ0VGV4dEZvcm1hdDppZS5TbmlwcGV0LGRvY3VtZW50YXRpb246b30pfX0sZS5wcm90b3R5cGUuY29sbGVjdFR5cGVzPWZ1bmN0aW9uKHQsbil7aWYoIShBcnJheS5pc0FycmF5KHQuZW51bSl8fGplKHQuY29uc3QpKSl7dmFyIHI9dC50eXBlO0FycmF5LmlzQXJyYXkocik/ci5mb3JFYWNoKGZ1bmN0aW9uKGkpe3JldHVybiBuW2ldPSEwfSk6ciYmKG5bcl09ITApfX0sZS5wcm90b3R5cGUuYWRkRmlsbGVyVmFsdWVDb21wbGV0aW9ucz1mdW5jdGlvbih0LG4scil7dC5vYmplY3QmJnIuYWRkKHtraW5kOnRoaXMuZ2V0U3VnZ2VzdGlvbktpbmQoIm9iamVjdCIpLGxhYmVsOiJ7fSIsaW5zZXJ0VGV4dDp0aGlzLmdldEluc2VydFRleHRGb3JHdWVzc2VkVmFsdWUoe30sbiksaW5zZXJ0VGV4dEZvcm1hdDppZS5TbmlwcGV0LGRldGFpbDpMcigiZGVmYXVsdHMub2JqZWN0IiwiTmV3IG9iamVjdCIpLGRvY3VtZW50YXRpb246IiJ9KSx0LmFycmF5JiZyLmFkZCh7a2luZDp0aGlzLmdldFN1Z2dlc3Rpb25LaW5kKCJhcnJheSIpLGxhYmVsOiJbXSIsaW5zZXJ0VGV4dDp0aGlzLmdldEluc2VydFRleHRGb3JHdWVzc2VkVmFsdWUoW10sbiksaW5zZXJ0VGV4dEZvcm1hdDppZS5TbmlwcGV0LGRldGFpbDpMcigiZGVmYXVsdHMuYXJyYXkiLCJOZXcgYXJyYXkiKSxkb2N1bWVudGF0aW9uOiIifSl9LGUucHJvdG90eXBlLmFkZEJvb2xlYW5WYWx1ZUNvbXBsZXRpb249ZnVuY3Rpb24odCxuLHIpe3IuYWRkKHtraW5kOnRoaXMuZ2V0U3VnZ2VzdGlvbktpbmQoImJvb2xlYW4iKSxsYWJlbDp0PyJ0cnVlIjoiZmFsc2UiLGluc2VydFRleHQ6dGhpcy5nZXRJbnNlcnRUZXh0Rm9yVmFsdWUodCxuKSxpbnNlcnRUZXh0Rm9ybWF0OmllLlNuaXBwZXQsZG9jdW1lbnRhdGlvbjoiIn0pfSxlLnByb3RvdHlwZS5hZGROdWxsVmFsdWVDb21wbGV0aW9uPWZ1bmN0aW9uKHQsbil7bi5hZGQoe2tpbmQ6dGhpcy5nZXRTdWdnZXN0aW9uS2luZCgibnVsbCIpLGxhYmVsOiJudWxsIixpbnNlcnRUZXh0OiJudWxsIit0LGluc2VydFRleHRGb3JtYXQ6aWUuU25pcHBldCxkb2N1bWVudGF0aW9uOiIifSl9LGUucHJvdG90eXBlLmFkZERvbGxhclNjaGVtYUNvbXBsZXRpb25zPWZ1bmN0aW9uKHQsbil7dmFyIHI9dGhpcyxpPXRoaXMuc2NoZW1hU2VydmljZS5nZXRSZWdpc3RlcmVkU2NoZW1hSWRzKGZ1bmN0aW9uKHMpe3JldHVybiBzPT09Imh0dHAifHxzPT09Imh0dHBzIn0pO2kuZm9yRWFjaChmdW5jdGlvbihzKXtyZXR1cm4gbi5hZGQoe2tpbmQ6U2UuTW9kdWxlLGxhYmVsOnIuZ2V0TGFiZWxGb3JWYWx1ZShzKSxmaWx0ZXJUZXh0OnIuZ2V0RmlsdGVyVGV4dEZvclZhbHVlKHMpLGluc2VydFRleHQ6ci5nZXRJbnNlcnRUZXh0Rm9yVmFsdWUocyx0KSxpbnNlcnRUZXh0Rm9ybWF0OmllLlNuaXBwZXQsZG9jdW1lbnRhdGlvbjoiIn0pfSl9LGUucHJvdG90eXBlLmdldExhYmVsRm9yVmFsdWU9ZnVuY3Rpb24odCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpfSxlLnByb3RvdHlwZS5nZXRGaWx0ZXJUZXh0Rm9yVmFsdWU9ZnVuY3Rpb24odCl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpfSxlLnByb3RvdHlwZS5nZXRGaWx0ZXJUZXh0Rm9yU25pcHBldFZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0KS5yZXBsYWNlKC9cJFx7XGQrOihbXn1dKylcfXxcJFxkKy9nLCIkMSIpfSxlLnByb3RvdHlwZS5nZXRMYWJlbEZvclNuaXBwZXRWYWx1ZT1mdW5jdGlvbih0KXt2YXIgbj1KU09OLnN0cmluZ2lmeSh0KTtyZXR1cm4gbi5yZXBsYWNlKC9cJFx7XGQrOihbXn1dKylcfXxcJFxkKy9nLCIkMSIpfSxlLnByb3RvdHlwZS5nZXRJbnNlcnRUZXh0Rm9yUGxhaW5UZXh0PWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoL1tcXFwkXH1dL2csIlxcJCYiKX0sZS5wcm90b3R5cGUuZ2V0SW5zZXJ0VGV4dEZvclZhbHVlPWZ1bmN0aW9uKHQsbil7dmFyIHI9SlNPTi5zdHJpbmdpZnkodCxudWxsLCIJIik7cmV0dXJuIHI9PT0ie30iPyJ7JDF9IituOnI9PT0iW10iPyJbJDFdIituOnRoaXMuZ2V0SW5zZXJ0VGV4dEZvclBsYWluVGV4dChyK24pfSxlLnByb3RvdHlwZS5nZXRJbnNlcnRUZXh0Rm9yU25pcHBldFZhbHVlPWZ1bmN0aW9uKHQsbil7dmFyIHI9ZnVuY3Rpb24oaSl7cmV0dXJuIHR5cGVvZiBpPT0ic3RyaW5nIiYmaVswXT09PSJeIj9pLnN1YnN0cigxKTpKU09OLnN0cmluZ2lmeShpKX07cmV0dXJuIE5yKHQsIiIscikrbn0sZS5wcm90b3R5cGUuZ2V0SW5zZXJ0VGV4dEZvckd1ZXNzZWRWYWx1ZT1mdW5jdGlvbih0LG4pe3N3aXRjaCh0eXBlb2YgdCl7Y2FzZSJvYmplY3QiOnJldHVybiB0PT09bnVsbD8iJHsxOm51bGx9IituOnRoaXMuZ2V0SW5zZXJ0VGV4dEZvclZhbHVlKHQsbik7Y2FzZSJzdHJpbmciOnZhciByPUpTT04uc3RyaW5naWZ5KHQpO3JldHVybiByPXIuc3Vic3RyKDEsci5sZW5ndGgtMikscj10aGlzLmdldEluc2VydFRleHRGb3JQbGFpblRleHQociksJyIkezE6JytyKyd9IicrbjtjYXNlIm51bWJlciI6Y2FzZSJib29sZWFuIjpyZXR1cm4iJHsxOiIrSlNPTi5zdHJpbmdpZnkodCkrIn0iK259cmV0dXJuIHRoaXMuZ2V0SW5zZXJ0VGV4dEZvclZhbHVlKHQsbil9LGUucHJvdG90eXBlLmdldFN1Z2dlc3Rpb25LaW5kPWZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpe3ZhciBuPXQ7dD1uLmxlbmd0aD4wP25bMF06dm9pZCAwfWlmKCF0KXJldHVybiBTZS5WYWx1ZTtzd2l0Y2godCl7Y2FzZSJzdHJpbmciOnJldHVybiBTZS5WYWx1ZTtjYXNlIm9iamVjdCI6cmV0dXJuIFNlLk1vZHVsZTtjYXNlInByb3BlcnR5IjpyZXR1cm4gU2UuUHJvcGVydHk7ZGVmYXVsdDpyZXR1cm4gU2UuVmFsdWV9fSxlLnByb3RvdHlwZS5nZXRMYWJlbFRleHRGb3JNYXRjaGluZ05vZGU9ZnVuY3Rpb24odCxuKXtzd2l0Y2godC50eXBlKXtjYXNlImFycmF5IjpyZXR1cm4iW10iO2Nhc2Uib2JqZWN0IjpyZXR1cm4ie30iO2RlZmF1bHQ6dmFyIHI9bi5nZXRUZXh0KCkuc3Vic3RyKHQub2Zmc2V0LHQubGVuZ3RoKTtyZXR1cm4gcn19LGUucHJvdG90eXBlLmdldEluc2VydFRleHRGb3JNYXRjaGluZ05vZGU9ZnVuY3Rpb24odCxuLHIpe3N3aXRjaCh0LnR5cGUpe2Nhc2UiYXJyYXkiOnJldHVybiB0aGlzLmdldEluc2VydFRleHRGb3JWYWx1ZShbXSxyKTtjYXNlIm9iamVjdCI6cmV0dXJuIHRoaXMuZ2V0SW5zZXJ0VGV4dEZvclZhbHVlKHt9LHIpO2RlZmF1bHQ6dmFyIGk9bi5nZXRUZXh0KCkuc3Vic3RyKHQub2Zmc2V0LHQubGVuZ3RoKStyO3JldHVybiB0aGlzLmdldEluc2VydFRleHRGb3JQbGFpblRleHQoaSl9fSxlLnByb3RvdHlwZS5nZXRJbnNlcnRUZXh0Rm9yUHJvcGVydHk9ZnVuY3Rpb24odCxuLHIsaSl7dmFyIHM9dGhpcy5nZXRJbnNlcnRUZXh0Rm9yVmFsdWUodCwiIik7aWYoIXIpcmV0dXJuIHM7dmFyIGE9cysiOiAiLG8sbD0wO2lmKG4pe2lmKEFycmF5LmlzQXJyYXkobi5kZWZhdWx0U25pcHBldHMpKXtpZihuLmRlZmF1bHRTbmlwcGV0cy5sZW5ndGg9PT0xKXt2YXIgdT1uLmRlZmF1bHRTbmlwcGV0c1swXS5ib2R5O2plKHUpJiYobz10aGlzLmdldEluc2VydFRleHRGb3JTbmlwcGV0VmFsdWUodSwiIikpfWwrPW4uZGVmYXVsdFNuaXBwZXRzLmxlbmd0aH1pZihuLmVudW0mJighbyYmbi5lbnVtLmxlbmd0aD09PTEmJihvPXRoaXMuZ2V0SW5zZXJ0VGV4dEZvckd1ZXNzZWRWYWx1ZShuLmVudW1bMF0sIiIpKSxsKz1uLmVudW0ubGVuZ3RoKSxqZShuLmRlZmF1bHQpJiYob3x8KG89dGhpcy5nZXRJbnNlcnRUZXh0Rm9yR3Vlc3NlZFZhbHVlKG4uZGVmYXVsdCwiIikpLGwrKyksQXJyYXkuaXNBcnJheShuLmV4YW1wbGVzKSYmbi5leGFtcGxlcy5sZW5ndGgmJihvfHwobz10aGlzLmdldEluc2VydFRleHRGb3JHdWVzc2VkVmFsdWUobi5leGFtcGxlc1swXSwiIikpLGwrPW4uZXhhbXBsZXMubGVuZ3RoKSxsPT09MCl7dmFyIGY9QXJyYXkuaXNBcnJheShuLnR5cGUpP24udHlwZVswXTpuLnR5cGU7c3dpdGNoKGZ8fChuLnByb3BlcnRpZXM/Zj0ib2JqZWN0IjpuLml0ZW1zJiYoZj0iYXJyYXkiKSksZil7Y2FzZSJib29sZWFuIjpvPSIkMSI7YnJlYWs7Y2FzZSJzdHJpbmciOm89JyIkMSInO2JyZWFrO2Nhc2Uib2JqZWN0IjpvPSJ7JDF9IjticmVhaztjYXNlImFycmF5IjpvPSJbJDFdIjticmVhaztjYXNlIm51bWJlciI6Y2FzZSJpbnRlZ2VyIjpvPSIkezE6MH0iO2JyZWFrO2Nhc2UibnVsbCI6bz0iJHsxOm51bGx9IjticmVhaztkZWZhdWx0OnJldHVybiBzfX19cmV0dXJuKCFvfHxsPjEpJiYobz0iJDEiKSxhK28raX0sZS5wcm90b3R5cGUuZ2V0Q3VycmVudFdvcmQ9ZnVuY3Rpb24odCxuKXtmb3IodmFyIHI9bi0xLGk9dC5nZXRUZXh0KCk7cj49MCYmYCAJClxyXHYiOntbLF19YC5pbmRleE9mKGkuY2hhckF0KHIpKT09PS0xOylyLS07cmV0dXJuIGkuc3Vic3RyaW5nKHIrMSxuKX0sZS5wcm90b3R5cGUuZXZhbHVhdGVTZXBhcmF0b3JBZnRlcj1mdW5jdGlvbih0LG4pe3ZhciByPU50KHQuZ2V0VGV4dCgpLCEwKTtyLnNldFBvc2l0aW9uKG4pO3ZhciBpPXIuc2NhbigpO3N3aXRjaChpKXtjYXNlIDU6Y2FzZSAyOmNhc2UgNDpjYXNlIDE3OnJldHVybiIiO2RlZmF1bHQ6cmV0dXJuIiwifX0sZS5wcm90b3R5cGUuZmluZEl0ZW1BdE9mZnNldD1mdW5jdGlvbih0LG4scil7Zm9yKHZhciBpPU50KG4uZ2V0VGV4dCgpLCEwKSxzPXQuaXRlbXMsYT1zLmxlbmd0aC0xO2E+PTA7YS0tKXt2YXIgbz1zW2FdO2lmKHI+by5vZmZzZXQrby5sZW5ndGgpe2kuc2V0UG9zaXRpb24oby5vZmZzZXQrby5sZW5ndGgpO3ZhciBsPWkuc2NhbigpO3JldHVybiBsPT09NSYmcj49aS5nZXRUb2tlbk9mZnNldCgpK2kuZ2V0VG9rZW5MZW5ndGgoKT9hKzE6YX1lbHNlIGlmKHI+PW8ub2Zmc2V0KXJldHVybiBhfXJldHVybiAwfSxlLnByb3RvdHlwZS5pc0luQ29tbWVudD1mdW5jdGlvbih0LG4scil7dmFyIGk9TnQodC5nZXRUZXh0KCksITEpO2kuc2V0UG9zaXRpb24obik7Zm9yKHZhciBzPWkuc2NhbigpO3MhPT0xNyYmaS5nZXRUb2tlbk9mZnNldCgpK2kuZ2V0VG9rZW5MZW5ndGgoKTxyOylzPWkuc2NhbigpO3JldHVybihzPT09MTJ8fHM9PT0xMykmJmkuZ2V0VG9rZW5PZmZzZXQoKTw9cn0sZS5wcm90b3R5cGUuZnJvbU1hcmt1cD1mdW5jdGlvbih0KXtpZih0JiZ0aGlzLmRvZXNTdXBwb3J0TWFya2Rvd24oKSlyZXR1cm57a2luZDpCZS5NYXJrZG93bix2YWx1ZTp0fX0sZS5wcm90b3R5cGUuZG9lc1N1cHBvcnRNYXJrZG93bj1mdW5jdGlvbigpe2lmKCFqZSh0aGlzLnN1cHBvcnRzTWFya2Rvd24pKXt2YXIgdD10aGlzLmNsaWVudENhcGFiaWxpdGllcy50ZXh0RG9jdW1lbnQmJnRoaXMuY2xpZW50Q2FwYWJpbGl0aWVzLnRleHREb2N1bWVudC5jb21wbGV0aW9uO3RoaXMuc3VwcG9ydHNNYXJrZG93bj10JiZ0LmNvbXBsZXRpb25JdGVtJiZBcnJheS5pc0FycmF5KHQuY29tcGxldGlvbkl0ZW0uZG9jdW1lbnRhdGlvbkZvcm1hdCkmJnQuY29tcGxldGlvbkl0ZW0uZG9jdW1lbnRhdGlvbkZvcm1hdC5pbmRleE9mKEJlLk1hcmtkb3duKSE9PS0xfXJldHVybiB0aGlzLnN1cHBvcnRzTWFya2Rvd259LGUucHJvdG90eXBlLmRvZXNTdXBwb3J0c0NvbW1pdENoYXJhY3RlcnM9ZnVuY3Rpb24oKXtpZighamUodGhpcy5zdXBwb3J0c0NvbW1pdENoYXJhY3RlcnMpKXt2YXIgdD10aGlzLmNsaWVudENhcGFiaWxpdGllcy50ZXh0RG9jdW1lbnQmJnRoaXMuY2xpZW50Q2FwYWJpbGl0aWVzLnRleHREb2N1bWVudC5jb21wbGV0aW9uO3RoaXMuc3VwcG9ydHNDb21taXRDaGFyYWN0ZXJzPXQmJnQuY29tcGxldGlvbkl0ZW0mJiEhdC5jb21wbGV0aW9uSXRlbS5jb21taXRDaGFyYWN0ZXJzU3VwcG9ydH1yZXR1cm4gdGhpcy5zdXBwb3J0c0NvbW1pdENoYXJhY3RlcnN9LGV9KCkscHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQsbixyKXtuPT09dm9pZCAwJiYobj1bXSksdGhpcy5zY2hlbWFTZXJ2aWNlPXQsdGhpcy5jb250cmlidXRpb25zPW4sdGhpcy5wcm9taXNlPXJ8fFByb21pc2V9cmV0dXJuIGUucHJvdG90eXBlLmRvSG92ZXI9ZnVuY3Rpb24odCxuLHIpe3ZhciBpPXQub2Zmc2V0QXQobikscz1yLmdldE5vZGVGcm9tT2Zmc2V0KGkpO2lmKCFzfHwocy50eXBlPT09Im9iamVjdCJ8fHMudHlwZT09PSJhcnJheSIpJiZpPnMub2Zmc2V0KzEmJmk8cy5vZmZzZXQrcy5sZW5ndGgtMSlyZXR1cm4gdGhpcy5wcm9taXNlLnJlc29sdmUobnVsbCk7dmFyIGE9cztpZihzLnR5cGU9PT0ic3RyaW5nIil7dmFyIG89cy5wYXJlbnQ7aWYobyYmby50eXBlPT09InByb3BlcnR5IiYmby5rZXlOb2RlPT09cyYmKHM9by52YWx1ZU5vZGUsIXMpKXJldHVybiB0aGlzLnByb21pc2UucmVzb2x2ZShudWxsKX1mb3IodmFyIGw9WC5jcmVhdGUodC5wb3NpdGlvbkF0KGEub2Zmc2V0KSx0LnBvc2l0aW9uQXQoYS5vZmZzZXQrYS5sZW5ndGgpKSx1PWZ1bmN0aW9uKG0pe3ZhciB2PXtjb250ZW50czptLHJhbmdlOmx9O3JldHVybiB2fSxmPVNyKHMpLGg9dGhpcy5jb250cmlidXRpb25zLmxlbmd0aC0xO2g+PTA7aC0tKXt2YXIgZD10aGlzLmNvbnRyaWJ1dGlvbnNbaF0sZz1kLmdldEluZm9Db250cmlidXRpb24odC51cmksZik7aWYoZylyZXR1cm4gZy50aGVuKGZ1bmN0aW9uKG0pe3JldHVybiB1KG0pfSl9cmV0dXJuIHRoaXMuc2NoZW1hU2VydmljZS5nZXRTY2hlbWFGb3JSZXNvdXJjZSh0LnVyaSxyKS50aGVuKGZ1bmN0aW9uKG0pe2lmKG0mJnMpe3ZhciB2PXIuZ2V0TWF0Y2hpbmdTY2hlbWFzKG0uc2NoZW1hLHMub2Zmc2V0KSxwPXZvaWQgMCx4PXZvaWQgMCx5PXZvaWQgMCxiPXZvaWQgMDt2LmV2ZXJ5KGZ1bmN0aW9uKFMpe2lmKFMubm9kZT09PXMmJiFTLmludmVydGVkJiZTLnNjaGVtYSYmKHA9cHx8Uy5zY2hlbWEudGl0bGUseD14fHxTLnNjaGVtYS5tYXJrZG93bkRlc2NyaXB0aW9ufHxBcihTLnNjaGVtYS5kZXNjcmlwdGlvbiksUy5zY2hlbWEuZW51bSkpe3ZhciB3PVMuc2NoZW1hLmVudW0uaW5kZXhPZihvdChzKSk7Uy5zY2hlbWEubWFya2Rvd25FbnVtRGVzY3JpcHRpb25zP3k9Uy5zY2hlbWEubWFya2Rvd25FbnVtRGVzY3JpcHRpb25zW3ddOlMuc2NoZW1hLmVudW1EZXNjcmlwdGlvbnMmJih5PUFyKFMuc2NoZW1hLmVudW1EZXNjcmlwdGlvbnNbd10pKSx5JiYoYj1TLnNjaGVtYS5lbnVtW3ddLHR5cGVvZiBiIT0ic3RyaW5nIiYmKGI9SlNPTi5zdHJpbmdpZnkoYikpKX1yZXR1cm4hMH0pO3ZhciBOPSIiO3JldHVybiBwJiYoTj1BcihwKSkseCYmKE4ubGVuZ3RoPjAmJihOKz1gCgpgKSxOKz14KSx5JiYoTi5sZW5ndGg+MCYmKE4rPWAKCmApLE4rPSJgIi5jb25jYXQodnUoYiksImA6ICIpLmNvbmNhdCh5KSksdShbTl0pfXJldHVybiBudWxsfSl9LGV9KCk7ZnVuY3Rpb24gQXIoZSl7aWYoZSl7dmFyIHQ9ZS5yZXBsYWNlKC8oW15cblxyXSkoXHI/XG4pKFteXG5ccl0pL2dtLGAkMQoKJDNgKTtyZXR1cm4gdC5yZXBsYWNlKC9bXFxgKl97fVtcXSgpIytcLS4hXS9nLCJcXCQmIil9fWZ1bmN0aW9uIHZ1KGUpe3JldHVybiBlLmluZGV4T2YoImAiKSE9PS0xPyJgYCAiK2UrIiBgYCI6ZX12YXIgYnU9SnQoKSx4dT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxuKXt0aGlzLmpzb25TY2hlbWFTZXJ2aWNlPXQsdGhpcy5wcm9taXNlPW4sdGhpcy52YWxpZGF0aW9uRW5hYmxlZD0hMH1yZXR1cm4gZS5wcm90b3R5cGUuY29uZmlndXJlPWZ1bmN0aW9uKHQpe3QmJih0aGlzLnZhbGlkYXRpb25FbmFibGVkPXQudmFsaWRhdGUhPT0hMSx0aGlzLmNvbW1lbnRTZXZlcml0eT10LmFsbG93Q29tbWVudHM/dm9pZCAwOndlLkVycm9yKX0sZS5wcm90b3R5cGUuZG9WYWxpZGF0aW9uPWZ1bmN0aW9uKHQsbixyLGkpe3ZhciBzPXRoaXM7aWYoIXRoaXMudmFsaWRhdGlvbkVuYWJsZWQpcmV0dXJuIHRoaXMucHJvbWlzZS5yZXNvbHZlKFtdKTt2YXIgYT1bXSxvPXt9LGw9ZnVuY3Rpb24oZCl7dmFyIGc9ZC5yYW5nZS5zdGFydC5saW5lKyIgIitkLnJhbmdlLnN0YXJ0LmNoYXJhY3RlcisiICIrZC5tZXNzYWdlO29bZ118fChvW2ddPSEwLGEucHVzaChkKSl9LHU9ZnVuY3Rpb24oZCl7dmFyIGc9ciE9bnVsbCYmci50cmFpbGluZ0NvbW1hcz9fbihyLnRyYWlsaW5nQ29tbWFzKTp3ZS5FcnJvcixtPXIhPW51bGwmJnIuY29tbWVudHM/X24oci5jb21tZW50cyk6cy5jb21tZW50U2V2ZXJpdHksdj1yIT1udWxsJiZyLnNjaGVtYVZhbGlkYXRpb24/X24oci5zY2hlbWFWYWxpZGF0aW9uKTp3ZS5XYXJuaW5nLHA9ciE9bnVsbCYmci5zY2hlbWFSZXF1ZXN0P19uKHIuc2NoZW1hUmVxdWVzdCk6d2UuV2FybmluZztpZihkKXtpZihkLmVycm9ycy5sZW5ndGgmJm4ucm9vdCYmcCl7dmFyIHg9bi5yb290LHk9eC50eXBlPT09Im9iamVjdCI/eC5wcm9wZXJ0aWVzWzBdOnZvaWQgMDtpZih5JiZ5LmtleU5vZGUudmFsdWU9PT0iJHNjaGVtYSIpe3ZhciBiPXkudmFsdWVOb2RlfHx5LE49WC5jcmVhdGUodC5wb3NpdGlvbkF0KGIub2Zmc2V0KSx0LnBvc2l0aW9uQXQoYi5vZmZzZXQrYi5sZW5ndGgpKTtsKHFlLmNyZWF0ZShOLGQuZXJyb3JzWzBdLHAsSi5TY2hlbWFSZXNvbHZlRXJyb3IpKX1lbHNle3ZhciBOPVguY3JlYXRlKHQucG9zaXRpb25BdCh4Lm9mZnNldCksdC5wb3NpdGlvbkF0KHgub2Zmc2V0KzEpKTtsKHFlLmNyZWF0ZShOLGQuZXJyb3JzWzBdLHAsSi5TY2hlbWFSZXNvbHZlRXJyb3IpKX19ZWxzZSBpZih2KXt2YXIgUz1uLnZhbGlkYXRlKHQsZC5zY2hlbWEsdik7UyYmUy5mb3JFYWNoKGwpfWdhKGQuc2NoZW1hKSYmKG09dm9pZCAwKSxtYShkLnNjaGVtYSkmJihnPXZvaWQgMCl9Zm9yKHZhciB3PTAsTD1uLnN5bnRheEVycm9yczt3PEwubGVuZ3RoO3crKyl7dmFyIEE9TFt3XTtpZihBLmNvZGU9PT1KLlRyYWlsaW5nQ29tbWEpe2lmKHR5cGVvZiBnIT0ibnVtYmVyIiljb250aW51ZTtBLnNldmVyaXR5PWd9bChBKX1pZih0eXBlb2YgbT09Im51bWJlciIpe3ZhciBSPWJ1KCJJbnZhbGlkQ29tbWVudFRva2VuIiwiQ29tbWVudHMgYXJlIG5vdCBwZXJtaXR0ZWQgaW4gSlNPTi4iKTtuLmNvbW1lbnRzLmZvckVhY2goZnVuY3Rpb24oSSl7bChxZS5jcmVhdGUoSSxSLG0sSi5Db21tZW50Tm90UGVybWl0dGVkKSl9KX1yZXR1cm4gYX07aWYoaSl7dmFyIGY9aS5pZHx8InNjaGVtYXNlcnZpY2U6Ly91bnRpdGxlZC8iK3l1KyssaD10aGlzLmpzb25TY2hlbWFTZXJ2aWNlLnJlZ2lzdGVyRXh0ZXJuYWxTY2hlbWEoZixbXSxpKTtyZXR1cm4gaC5nZXRSZXNvbHZlZFNjaGVtYSgpLnRoZW4oZnVuY3Rpb24oZCl7cmV0dXJuIHUoZCl9KX1yZXR1cm4gdGhpcy5qc29uU2NoZW1hU2VydmljZS5nZXRTY2hlbWFGb3JSZXNvdXJjZSh0LnVyaSxuKS50aGVuKGZ1bmN0aW9uKGQpe3JldHVybiB1KGQpfSl9LGUucHJvdG90eXBlLmdldExhbmd1YWdlU3RhdHVzPWZ1bmN0aW9uKHQsbil7cmV0dXJue3NjaGVtYXM6dGhpcy5qc29uU2NoZW1hU2VydmljZS5nZXRTY2hlbWFVUklzRm9yUmVzb3VyY2UodC51cmksbil9fSxlfSgpLHl1PTA7ZnVuY3Rpb24gZ2EoZSl7aWYoZSYmdHlwZW9mIGU9PSJvYmplY3QiKXtpZihJZShlLmFsbG93Q29tbWVudHMpKXJldHVybiBlLmFsbG93Q29tbWVudHM7aWYoZS5hbGxPZilmb3IodmFyIHQ9MCxuPWUuYWxsT2Y7dDxuLmxlbmd0aDt0Kyspe3ZhciByPW5bdF0saT1nYShyKTtpZihJZShpKSlyZXR1cm4gaX19fWZ1bmN0aW9uIG1hKGUpe2lmKGUmJnR5cGVvZiBlPT0ib2JqZWN0Iil7aWYoSWUoZS5hbGxvd1RyYWlsaW5nQ29tbWFzKSlyZXR1cm4gZS5hbGxvd1RyYWlsaW5nQ29tbWFzO3ZhciB0PWU7aWYoSWUodC5hbGxvd3NUcmFpbGluZ0NvbW1hcykpcmV0dXJuIHQuYWxsb3dzVHJhaWxpbmdDb21tYXM7aWYoZS5hbGxPZilmb3IodmFyIG49MCxyPWUuYWxsT2Y7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl0scz1tYShpKTtpZihJZShzKSlyZXR1cm4gc319fWZ1bmN0aW9uIF9uKGUpe3N3aXRjaChlKXtjYXNlImVycm9yIjpyZXR1cm4gd2UuRXJyb3I7Y2FzZSJ3YXJuaW5nIjpyZXR1cm4gd2UuV2FybmluZztjYXNlImlnbm9yZSI6cmV0dXJufX12YXIgcGE9NDgsX3U9NTcsd3U9NjUsd249OTcsU3U9MTAyO2Z1bmN0aW9uIHRlKGUpe3JldHVybiBlPHBhPzA6ZTw9X3U/ZS1wYTooZTx3biYmKGUrPXduLXd1KSxlPj13biYmZTw9U3U/ZS13bisxMDowKX1mdW5jdGlvbiBOdShlKXtpZihlWzBdPT09IiMiKXN3aXRjaChlLmxlbmd0aCl7Y2FzZSA0OnJldHVybntyZWQ6dGUoZS5jaGFyQ29kZUF0KDEpKSoxNy8yNTUsZ3JlZW46dGUoZS5jaGFyQ29kZUF0KDIpKSoxNy8yNTUsYmx1ZTp0ZShlLmNoYXJDb2RlQXQoMykpKjE3LzI1NSxhbHBoYToxfTtjYXNlIDU6cmV0dXJue3JlZDp0ZShlLmNoYXJDb2RlQXQoMSkpKjE3LzI1NSxncmVlbjp0ZShlLmNoYXJDb2RlQXQoMikpKjE3LzI1NSxibHVlOnRlKGUuY2hhckNvZGVBdCgzKSkqMTcvMjU1LGFscGhhOnRlKGUuY2hhckNvZGVBdCg0KSkqMTcvMjU1fTtjYXNlIDc6cmV0dXJue3JlZDoodGUoZS5jaGFyQ29kZUF0KDEpKSoxNit0ZShlLmNoYXJDb2RlQXQoMikpKS8yNTUsZ3JlZW46KHRlKGUuY2hhckNvZGVBdCgzKSkqMTYrdGUoZS5jaGFyQ29kZUF0KDQpKSkvMjU1LGJsdWU6KHRlKGUuY2hhckNvZGVBdCg1KSkqMTYrdGUoZS5jaGFyQ29kZUF0KDYpKSkvMjU1LGFscGhhOjF9O2Nhc2UgOTpyZXR1cm57cmVkOih0ZShlLmNoYXJDb2RlQXQoMSkpKjE2K3RlKGUuY2hhckNvZGVBdCgyKSkpLzI1NSxncmVlbjoodGUoZS5jaGFyQ29kZUF0KDMpKSoxNit0ZShlLmNoYXJDb2RlQXQoNCkpKS8yNTUsYmx1ZToodGUoZS5jaGFyQ29kZUF0KDUpKSoxNit0ZShlLmNoYXJDb2RlQXQoNikpKS8yNTUsYWxwaGE6KHRlKGUuY2hhckNvZGVBdCg3KSkqMTYrdGUoZS5jaGFyQ29kZUF0KDgpKSkvMjU1fX19dmFyIEx1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0KXt0aGlzLnNjaGVtYVNlcnZpY2U9dH1yZXR1cm4gZS5wcm90b3R5cGUuZmluZERvY3VtZW50U3ltYm9scz1mdW5jdGlvbih0LG4scil7dmFyIGk9dGhpcztyPT09dm9pZCAwJiYocj17cmVzdWx0TGltaXQ6TnVtYmVyLk1BWF9WQUxVRX0pO3ZhciBzPW4ucm9vdDtpZighcylyZXR1cm5bXTt2YXIgYT1yLnJlc3VsdExpbWl0fHxOdW1iZXIuTUFYX1ZBTFVFLG89dC51cmk7aWYoKG89PT0idnNjb2RlOi8vZGVmYXVsdHNldHRpbmdzL2tleWJpbmRpbmdzLmpzb24ifHxxdChvLnRvTG93ZXJDYXNlKCksIi91c2VyL2tleWJpbmRpbmdzLmpzb24iKSkmJnMudHlwZT09PSJhcnJheSIpe2Zvcih2YXIgbD1bXSx1PTAsZj1zLml0ZW1zO3U8Zi5sZW5ndGg7dSsrKXt2YXIgaD1mW3VdO2lmKGgudHlwZT09PSJvYmplY3QiKWZvcih2YXIgZD0wLGc9aC5wcm9wZXJ0aWVzO2Q8Zy5sZW5ndGg7ZCsrKXt2YXIgbT1nW2RdO2lmKG0ua2V5Tm9kZS52YWx1ZT09PSJrZXkiJiZtLnZhbHVlTm9kZSl7dmFyIHY9QnQuY3JlYXRlKHQudXJpLEtlKHQsaCkpO2lmKGwucHVzaCh7bmFtZTpvdChtLnZhbHVlTm9kZSksa2luZDpEZS5GdW5jdGlvbixsb2NhdGlvbjp2fSksYS0tLGE8PTApcmV0dXJuIHImJnIub25SZXN1bHRMaW1pdEV4Y2VlZGVkJiZyLm9uUmVzdWx0TGltaXRFeGNlZWRlZChvKSxsfX19cmV0dXJuIGx9Zm9yKHZhciBwPVt7bm9kZTpzLGNvbnRhaW5lck5hbWU6IiJ9XSx4PTAseT0hMSxiPVtdLE49ZnVuY3Rpb24odyxMKXt3LnR5cGU9PT0iYXJyYXkiP3cuaXRlbXMuZm9yRWFjaChmdW5jdGlvbihBKXtBJiZwLnB1c2goe25vZGU6QSxjb250YWluZXJOYW1lOkx9KX0pOncudHlwZT09PSJvYmplY3QiJiZ3LnByb3BlcnRpZXMuZm9yRWFjaChmdW5jdGlvbihBKXt2YXIgUj1BLnZhbHVlTm9kZTtpZihSKWlmKGE+MCl7YS0tO3ZhciBJPUJ0LmNyZWF0ZSh0LnVyaSxLZSh0LEEpKSxDPUw/TCsiLiIrQS5rZXlOb2RlLnZhbHVlOkEua2V5Tm9kZS52YWx1ZTtiLnB1c2goe25hbWU6aS5nZXRLZXlMYWJlbChBKSxraW5kOmkuZ2V0U3ltYm9sS2luZChSLnR5cGUpLGxvY2F0aW9uOkksY29udGFpbmVyTmFtZTpMfSkscC5wdXNoKHtub2RlOlIsY29udGFpbmVyTmFtZTpDfSl9ZWxzZSB5PSEwfSl9O3g8cC5sZW5ndGg7KXt2YXIgUz1wW3grK107TihTLm5vZGUsUy5jb250YWluZXJOYW1lKX1yZXR1cm4geSYmciYmci5vblJlc3VsdExpbWl0RXhjZWVkZWQmJnIub25SZXN1bHRMaW1pdEV4Y2VlZGVkKG8pLGJ9LGUucHJvdG90eXBlLmZpbmREb2N1bWVudFN5bWJvbHMyPWZ1bmN0aW9uKHQsbixyKXt2YXIgaT10aGlzO3I9PT12b2lkIDAmJihyPXtyZXN1bHRMaW1pdDpOdW1iZXIuTUFYX1ZBTFVFfSk7dmFyIHM9bi5yb290O2lmKCFzKXJldHVybltdO3ZhciBhPXIucmVzdWx0TGltaXR8fE51bWJlci5NQVhfVkFMVUUsbz10LnVyaTtpZigobz09PSJ2c2NvZGU6Ly9kZWZhdWx0c2V0dGluZ3Mva2V5YmluZGluZ3MuanNvbiJ8fHF0KG8udG9Mb3dlckNhc2UoKSwiL3VzZXIva2V5YmluZGluZ3MuanNvbiIpKSYmcy50eXBlPT09ImFycmF5Iil7Zm9yKHZhciBsPVtdLHU9MCxmPXMuaXRlbXM7dTxmLmxlbmd0aDt1Kyspe3ZhciBoPWZbdV07aWYoaC50eXBlPT09Im9iamVjdCIpZm9yKHZhciBkPTAsZz1oLnByb3BlcnRpZXM7ZDxnLmxlbmd0aDtkKyspe3ZhciBtPWdbZF07aWYobS5rZXlOb2RlLnZhbHVlPT09ImtleSImJm0udmFsdWVOb2RlKXt2YXIgdj1LZSh0LGgpLHA9S2UodCxtLmtleU5vZGUpO2lmKGwucHVzaCh7bmFtZTpvdChtLnZhbHVlTm9kZSksa2luZDpEZS5GdW5jdGlvbixyYW5nZTp2LHNlbGVjdGlvblJhbmdlOnB9KSxhLS0sYTw9MClyZXR1cm4gciYmci5vblJlc3VsdExpbWl0RXhjZWVkZWQmJnIub25SZXN1bHRMaW1pdEV4Y2VlZGVkKG8pLGx9fX1yZXR1cm4gbH1mb3IodmFyIHg9W10seT1be25vZGU6cyxyZXN1bHQ6eH1dLGI9MCxOPSExLFM9ZnVuY3Rpb24oTCxBKXtMLnR5cGU9PT0iYXJyYXkiP0wuaXRlbXMuZm9yRWFjaChmdW5jdGlvbihSLEkpe2lmKFIpaWYoYT4wKXthLS07dmFyIEM9S2UodCxSKSxfPUMsVD1TdHJpbmcoSSksRj17bmFtZTpULGtpbmQ6aS5nZXRTeW1ib2xLaW5kKFIudHlwZSkscmFuZ2U6QyxzZWxlY3Rpb25SYW5nZTpfLGNoaWxkcmVuOltdfTtBLnB1c2goRikseS5wdXNoKHtyZXN1bHQ6Ri5jaGlsZHJlbixub2RlOlJ9KX1lbHNlIE49ITB9KTpMLnR5cGU9PT0ib2JqZWN0IiYmTC5wcm9wZXJ0aWVzLmZvckVhY2goZnVuY3Rpb24oUil7dmFyIEk9Ui52YWx1ZU5vZGU7aWYoSSlpZihhPjApe2EtLTt2YXIgQz1LZSh0LFIpLF89S2UodCxSLmtleU5vZGUpLFQ9W10sRj17bmFtZTppLmdldEtleUxhYmVsKFIpLGtpbmQ6aS5nZXRTeW1ib2xLaW5kKEkudHlwZSkscmFuZ2U6QyxzZWxlY3Rpb25SYW5nZTpfLGNoaWxkcmVuOlQsZGV0YWlsOmkuZ2V0RGV0YWlsKEkpfTtBLnB1c2goRikseS5wdXNoKHtyZXN1bHQ6VCxub2RlOkl9KX1lbHNlIE49ITB9KX07Yjx5Lmxlbmd0aDspe3ZhciB3PXlbYisrXTtTKHcubm9kZSx3LnJlc3VsdCl9cmV0dXJuIE4mJnImJnIub25SZXN1bHRMaW1pdEV4Y2VlZGVkJiZyLm9uUmVzdWx0TGltaXRFeGNlZWRlZChvKSx4fSxlLnByb3RvdHlwZS5nZXRTeW1ib2xLaW5kPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIm9iamVjdCI6cmV0dXJuIERlLk1vZHVsZTtjYXNlInN0cmluZyI6cmV0dXJuIERlLlN0cmluZztjYXNlIm51bWJlciI6cmV0dXJuIERlLk51bWJlcjtjYXNlImFycmF5IjpyZXR1cm4gRGUuQXJyYXk7Y2FzZSJib29sZWFuIjpyZXR1cm4gRGUuQm9vbGVhbjtkZWZhdWx0OnJldHVybiBEZS5WYXJpYWJsZX19LGUucHJvdG90eXBlLmdldEtleUxhYmVsPWZ1bmN0aW9uKHQpe3ZhciBuPXQua2V5Tm9kZS52YWx1ZTtyZXR1cm4gbiYmKG49bi5yZXBsYWNlKC9bXG5dL2csIuKGtSIpKSxuJiZuLnRyaW0oKT9uOiciJy5jb25jYXQobiwnIicpfSxlLnByb3RvdHlwZS5nZXREZXRhaWw9ZnVuY3Rpb24odCl7aWYodCl7aWYodC50eXBlPT09ImJvb2xlYW4ifHx0LnR5cGU9PT0ibnVtYmVyInx8dC50eXBlPT09Im51bGwifHx0LnR5cGU9PT0ic3RyaW5nIilyZXR1cm4gU3RyaW5nKHQudmFsdWUpO2lmKHQudHlwZT09PSJhcnJheSIpcmV0dXJuIHQuY2hpbGRyZW4ubGVuZ3RoP3ZvaWQgMDoiW10iO2lmKHQudHlwZT09PSJvYmplY3QiKXJldHVybiB0LmNoaWxkcmVuLmxlbmd0aD92b2lkIDA6Int9In19LGUucHJvdG90eXBlLmZpbmREb2N1bWVudENvbG9ycz1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRoaXMuc2NoZW1hU2VydmljZS5nZXRTY2hlbWFGb3JSZXNvdXJjZSh0LnVyaSxuKS50aGVuKGZ1bmN0aW9uKGkpe3ZhciBzPVtdO2lmKGkpZm9yKHZhciBhPXImJnR5cGVvZiByLnJlc3VsdExpbWl0PT0ibnVtYmVyIj9yLnJlc3VsdExpbWl0Ok51bWJlci5NQVhfVkFMVUUsbz1uLmdldE1hdGNoaW5nU2NoZW1hcyhpLnNjaGVtYSksbD17fSx1PTAsZj1vO3U8Zi5sZW5ndGg7dSsrKXt2YXIgaD1mW3VdO2lmKCFoLmludmVydGVkJiZoLnNjaGVtYSYmKGguc2NoZW1hLmZvcm1hdD09PSJjb2xvciJ8fGguc2NoZW1hLmZvcm1hdD09PSJjb2xvci1oZXgiKSYmaC5ub2RlJiZoLm5vZGUudHlwZT09PSJzdHJpbmciKXt2YXIgZD1TdHJpbmcoaC5ub2RlLm9mZnNldCk7aWYoIWxbZF0pe3ZhciBnPU51KG90KGgubm9kZSkpO2lmKGcpe3ZhciBtPUtlKHQsaC5ub2RlKTtzLnB1c2goe2NvbG9yOmcscmFuZ2U6bX0pfWlmKGxbZF09ITAsYS0tLGE8PTApcmV0dXJuIHImJnIub25SZXN1bHRMaW1pdEV4Y2VlZGVkJiZyLm9uUmVzdWx0TGltaXRFeGNlZWRlZCh0LnVyaSksc319fXJldHVybiBzfSl9LGUucHJvdG90eXBlLmdldENvbG9yUHJlc2VudGF0aW9ucz1mdW5jdGlvbih0LG4scixpKXt2YXIgcz1bXSxhPU1hdGgucm91bmQoci5yZWQqMjU1KSxvPU1hdGgucm91bmQoci5ncmVlbioyNTUpLGw9TWF0aC5yb3VuZChyLmJsdWUqMjU1KTtmdW5jdGlvbiB1KGgpe3ZhciBkPWgudG9TdHJpbmcoMTYpO3JldHVybiBkLmxlbmd0aCE9PTI/IjAiK2Q6ZH12YXIgZjtyZXR1cm4gci5hbHBoYT09PTE/Zj0iIyIuY29uY2F0KHUoYSkpLmNvbmNhdCh1KG8pKS5jb25jYXQodShsKSk6Zj0iIyIuY29uY2F0KHUoYSkpLmNvbmNhdCh1KG8pKS5jb25jYXQodShsKSkuY29uY2F0KHUoTWF0aC5yb3VuZChyLmFscGhhKjI1NSkpKSxzLnB1c2goe2xhYmVsOmYsdGV4dEVkaXQ6TWUucmVwbGFjZShpLEpTT04uc3RyaW5naWZ5KGYpKX0pLHN9LGV9KCk7ZnVuY3Rpb24gS2UoZSx0KXtyZXR1cm4gWC5jcmVhdGUoZS5wb3NpdGlvbkF0KHQub2Zmc2V0KSxlLnBvc2l0aW9uQXQodC5vZmZzZXQrdC5sZW5ndGgpKX12YXIgJD1KdCgpLENyPXtzY2hlbWFBc3NvY2lhdGlvbnM6W10sc2NoZW1hczp7Imh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvc2NoZW1hIyI6eyRyZWY6Imh0dHA6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQtMDcvc2NoZW1hIyJ9LCJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMiOnskc2NoZW1hOiJodHRwOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LTA0L3NjaGVtYSMiLGRlZmluaXRpb25zOntzY2hlbWFBcnJheTp7dHlwZToiYXJyYXkiLG1pbkl0ZW1zOjEsaXRlbXM6eyRyZWY6IiMifX0scG9zaXRpdmVJbnRlZ2VyOnt0eXBlOiJpbnRlZ2VyIixtaW5pbXVtOjB9LHBvc2l0aXZlSW50ZWdlckRlZmF1bHQwOnthbGxPZjpbeyRyZWY6IiMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyIn0se2RlZmF1bHQ6MH1dfSxzaW1wbGVUeXBlczp7dHlwZToic3RyaW5nIixlbnVtOlsiYXJyYXkiLCJib29sZWFuIiwiaW50ZWdlciIsIm51bGwiLCJudW1iZXIiLCJvYmplY3QiLCJzdHJpbmciXX0sc3RyaW5nQXJyYXk6e3R5cGU6ImFycmF5IixpdGVtczp7dHlwZToic3RyaW5nIn0sbWluSXRlbXM6MSx1bmlxdWVJdGVtczohMH19LHR5cGU6Im9iamVjdCIscHJvcGVydGllczp7aWQ6e3R5cGU6InN0cmluZyIsZm9ybWF0OiJ1cmkifSwkc2NoZW1hOnt0eXBlOiJzdHJpbmciLGZvcm1hdDoidXJpIn0sdGl0bGU6e3R5cGU6InN0cmluZyJ9LGRlc2NyaXB0aW9uOnt0eXBlOiJzdHJpbmcifSxkZWZhdWx0Ont9LG11bHRpcGxlT2Y6e3R5cGU6Im51bWJlciIsbWluaW11bTowLGV4Y2x1c2l2ZU1pbmltdW06ITB9LG1heGltdW06e3R5cGU6Im51bWJlciJ9LGV4Y2x1c2l2ZU1heGltdW06e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITF9LG1pbmltdW06e3R5cGU6Im51bWJlciJ9LGV4Y2x1c2l2ZU1pbmltdW06e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITF9LG1heExlbmd0aDp7YWxsT2Y6W3skcmVmOiIjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlciJ9XX0sbWluTGVuZ3RoOnthbGxPZjpbeyRyZWY6IiMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyRGVmYXVsdDAifV19LHBhdHRlcm46e3R5cGU6InN0cmluZyIsZm9ybWF0OiJyZWdleCJ9LGFkZGl0aW9uYWxJdGVtczp7YW55T2Y6W3t0eXBlOiJib29sZWFuIn0seyRyZWY6IiMifV0sZGVmYXVsdDp7fX0saXRlbXM6e2FueU9mOlt7JHJlZjoiIyJ9LHskcmVmOiIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5In1dLGRlZmF1bHQ6e319LG1heEl0ZW1zOnthbGxPZjpbeyRyZWY6IiMvZGVmaW5pdGlvbnMvcG9zaXRpdmVJbnRlZ2VyIn1dfSxtaW5JdGVtczp7YWxsT2Y6W3skcmVmOiIjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlckRlZmF1bHQwIn1dfSx1bmlxdWVJdGVtczp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMX0sbWF4UHJvcGVydGllczp7YWxsT2Y6W3skcmVmOiIjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlciJ9XX0sbWluUHJvcGVydGllczp7YWxsT2Y6W3skcmVmOiIjL2RlZmluaXRpb25zL3Bvc2l0aXZlSW50ZWdlckRlZmF1bHQwIn1dfSxyZXF1aXJlZDp7YWxsT2Y6W3skcmVmOiIjL2RlZmluaXRpb25zL3N0cmluZ0FycmF5In1dfSxhZGRpdGlvbmFsUHJvcGVydGllczp7YW55T2Y6W3t0eXBlOiJib29sZWFuIn0seyRyZWY6IiMifV0sZGVmYXVsdDp7fX0sZGVmaW5pdGlvbnM6e3R5cGU6Im9iamVjdCIsYWRkaXRpb25hbFByb3BlcnRpZXM6eyRyZWY6IiMifSxkZWZhdWx0Ont9fSxwcm9wZXJ0aWVzOnt0eXBlOiJvYmplY3QiLGFkZGl0aW9uYWxQcm9wZXJ0aWVzOnskcmVmOiIjIn0sZGVmYXVsdDp7fX0scGF0dGVyblByb3BlcnRpZXM6e3R5cGU6Im9iamVjdCIsYWRkaXRpb25hbFByb3BlcnRpZXM6eyRyZWY6IiMifSxkZWZhdWx0Ont9fSxkZXBlbmRlbmNpZXM6e3R5cGU6Im9iamVjdCIsYWRkaXRpb25hbFByb3BlcnRpZXM6e2FueU9mOlt7JHJlZjoiIyJ9LHskcmVmOiIjL2RlZmluaXRpb25zL3N0cmluZ0FycmF5In1dfX0sZW51bTp7dHlwZToiYXJyYXkiLG1pbkl0ZW1zOjEsdW5pcXVlSXRlbXM6ITB9LHR5cGU6e2FueU9mOlt7JHJlZjoiIy9kZWZpbml0aW9ucy9zaW1wbGVUeXBlcyJ9LHt0eXBlOiJhcnJheSIsaXRlbXM6eyRyZWY6IiMvZGVmaW5pdGlvbnMvc2ltcGxlVHlwZXMifSxtaW5JdGVtczoxLHVuaXF1ZUl0ZW1zOiEwfV19LGZvcm1hdDp7YW55T2Y6W3t0eXBlOiJzdHJpbmciLGVudW06WyJkYXRlLXRpbWUiLCJ1cmkiLCJlbWFpbCIsImhvc3RuYW1lIiwiaXB2NCIsImlwdjYiLCJyZWdleCJdfSx7dHlwZToic3RyaW5nIn1dfSxhbGxPZjp7YWxsT2Y6W3skcmVmOiIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5In1dfSxhbnlPZjp7YWxsT2Y6W3skcmVmOiIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5In1dfSxvbmVPZjp7YWxsT2Y6W3skcmVmOiIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5In1dfSxub3Q6e2FsbE9mOlt7JHJlZjoiIyJ9XX19LGRlcGVuZGVuY2llczp7ZXhjbHVzaXZlTWF4aW11bTpbIm1heGltdW0iXSxleGNsdXNpdmVNaW5pbXVtOlsibWluaW11bSJdfSxkZWZhdWx0Ont9fSwiaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wNy9zY2hlbWEjIjp7ZGVmaW5pdGlvbnM6e3NjaGVtYUFycmF5Ont0eXBlOiJhcnJheSIsbWluSXRlbXM6MSxpdGVtczp7JHJlZjoiIyJ9fSxub25OZWdhdGl2ZUludGVnZXI6e3R5cGU6ImludGVnZXIiLG1pbmltdW06MH0sbm9uTmVnYXRpdmVJbnRlZ2VyRGVmYXVsdDA6e2FsbE9mOlt7JHJlZjoiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXIifSx7ZGVmYXVsdDowfV19LHNpbXBsZVR5cGVzOntlbnVtOlsiYXJyYXkiLCJib29sZWFuIiwiaW50ZWdlciIsIm51bGwiLCJudW1iZXIiLCJvYmplY3QiLCJzdHJpbmciXX0sc3RyaW5nQXJyYXk6e3R5cGU6ImFycmF5IixpdGVtczp7dHlwZToic3RyaW5nIn0sdW5pcXVlSXRlbXM6ITAsZGVmYXVsdDpbXX19LHR5cGU6WyJvYmplY3QiLCJib29sZWFuIl0scHJvcGVydGllczp7JGlkOnt0eXBlOiJzdHJpbmciLGZvcm1hdDoidXJpLXJlZmVyZW5jZSJ9LCRzY2hlbWE6e3R5cGU6InN0cmluZyIsZm9ybWF0OiJ1cmkifSwkcmVmOnt0eXBlOiJzdHJpbmciLGZvcm1hdDoidXJpLXJlZmVyZW5jZSJ9LCRjb21tZW50Ont0eXBlOiJzdHJpbmcifSx0aXRsZTp7dHlwZToic3RyaW5nIn0sZGVzY3JpcHRpb246e3R5cGU6InN0cmluZyJ9LGRlZmF1bHQ6ITAscmVhZE9ubHk6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITF9LGV4YW1wbGVzOnt0eXBlOiJhcnJheSIsaXRlbXM6ITB9LG11bHRpcGxlT2Y6e3R5cGU6Im51bWJlciIsZXhjbHVzaXZlTWluaW11bTowfSxtYXhpbXVtOnt0eXBlOiJudW1iZXIifSxleGNsdXNpdmVNYXhpbXVtOnt0eXBlOiJudW1iZXIifSxtaW5pbXVtOnt0eXBlOiJudW1iZXIifSxleGNsdXNpdmVNaW5pbXVtOnt0eXBlOiJudW1iZXIifSxtYXhMZW5ndGg6eyRyZWY6IiMvZGVmaW5pdGlvbnMvbm9uTmVnYXRpdmVJbnRlZ2VyIn0sbWluTGVuZ3RoOnskcmVmOiIjL2RlZmluaXRpb25zL25vbk5lZ2F0aXZlSW50ZWdlckRlZmF1bHQwIn0scGF0dGVybjp7dHlwZToic3RyaW5nIixmb3JtYXQ6InJlZ2V4In0sYWRkaXRpb25hbEl0ZW1zOnskcmVmOiIjIn0saXRlbXM6e2FueU9mOlt7JHJlZjoiIyJ9LHskcmVmOiIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5In1dLGRlZmF1bHQ6ITB9LG1heEl0ZW1zOnskcmVmOiIjL2RlZmluaXRpb25zL25vbk5lZ2F0aXZlSW50ZWdlciJ9LG1pbkl0ZW1zOnskcmVmOiIjL2RlZmluaXRpb25zL25vbk5lZ2F0aXZlSW50ZWdlckRlZmF1bHQwIn0sdW5pcXVlSXRlbXM6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITF9LGNvbnRhaW5zOnskcmVmOiIjIn0sbWF4UHJvcGVydGllczp7JHJlZjoiIy9kZWZpbml0aW9ucy9ub25OZWdhdGl2ZUludGVnZXIifSxtaW5Qcm9wZXJ0aWVzOnskcmVmOiIjL2RlZmluaXRpb25zL25vbk5lZ2F0aXZlSW50ZWdlckRlZmF1bHQwIn0scmVxdWlyZWQ6eyRyZWY6IiMvZGVmaW5pdGlvbnMvc3RyaW5nQXJyYXkifSxhZGRpdGlvbmFsUHJvcGVydGllczp7JHJlZjoiIyJ9LGRlZmluaXRpb25zOnt0eXBlOiJvYmplY3QiLGFkZGl0aW9uYWxQcm9wZXJ0aWVzOnskcmVmOiIjIn0sZGVmYXVsdDp7fX0scHJvcGVydGllczp7dHlwZToib2JqZWN0IixhZGRpdGlvbmFsUHJvcGVydGllczp7JHJlZjoiIyJ9LGRlZmF1bHQ6e319LHBhdHRlcm5Qcm9wZXJ0aWVzOnt0eXBlOiJvYmplY3QiLGFkZGl0aW9uYWxQcm9wZXJ0aWVzOnskcmVmOiIjIn0scHJvcGVydHlOYW1lczp7Zm9ybWF0OiJyZWdleCJ9LGRlZmF1bHQ6e319LGRlcGVuZGVuY2llczp7dHlwZToib2JqZWN0IixhZGRpdGlvbmFsUHJvcGVydGllczp7YW55T2Y6W3skcmVmOiIjIn0seyRyZWY6IiMvZGVmaW5pdGlvbnMvc3RyaW5nQXJyYXkifV19fSxwcm9wZXJ0eU5hbWVzOnskcmVmOiIjIn0sY29uc3Q6ITAsZW51bTp7dHlwZToiYXJyYXkiLGl0ZW1zOiEwLG1pbkl0ZW1zOjEsdW5pcXVlSXRlbXM6ITB9LHR5cGU6e2FueU9mOlt7JHJlZjoiIy9kZWZpbml0aW9ucy9zaW1wbGVUeXBlcyJ9LHt0eXBlOiJhcnJheSIsaXRlbXM6eyRyZWY6IiMvZGVmaW5pdGlvbnMvc2ltcGxlVHlwZXMifSxtaW5JdGVtczoxLHVuaXF1ZUl0ZW1zOiEwfV19LGZvcm1hdDp7dHlwZToic3RyaW5nIn0sY29udGVudE1lZGlhVHlwZTp7dHlwZToic3RyaW5nIn0sY29udGVudEVuY29kaW5nOnt0eXBlOiJzdHJpbmcifSxpZjp7JHJlZjoiIyJ9LHRoZW46eyRyZWY6IiMifSxlbHNlOnskcmVmOiIjIn0sYWxsT2Y6eyRyZWY6IiMvZGVmaW5pdGlvbnMvc2NoZW1hQXJyYXkifSxhbnlPZjp7JHJlZjoiIy9kZWZpbml0aW9ucy9zY2hlbWFBcnJheSJ9LG9uZU9mOnskcmVmOiIjL2RlZmluaXRpb25zL3NjaGVtYUFycmF5In0sbm90OnskcmVmOiIjIn19LGRlZmF1bHQ6ITB9fX0sQXU9e2lkOiQoInNjaGVtYS5qc29uLmlkIiwiQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHNjaGVtYS4iKSwkc2NoZW1hOiQoInNjaGVtYS5qc29uLiRzY2hlbWEiLCJUaGUgc2NoZW1hIHRvIHZlcmlmeSB0aGlzIGRvY3VtZW50IGFnYWluc3QuIiksdGl0bGU6JCgic2NoZW1hLmpzb24udGl0bGUiLCJBIGRlc2NyaXB0aXZlIHRpdGxlIG9mIHRoZSBlbGVtZW50LiIpLGRlc2NyaXB0aW9uOiQoInNjaGVtYS5qc29uLmRlc2NyaXB0aW9uIiwiQSBsb25nIGRlc2NyaXB0aW9uIG9mIHRoZSBlbGVtZW50LiBVc2VkIGluIGhvdmVyIG1lbnVzIGFuZCBzdWdnZXN0aW9ucy4iKSxkZWZhdWx0OiQoInNjaGVtYS5qc29uLmRlZmF1bHQiLCJBIGRlZmF1bHQgdmFsdWUuIFVzZWQgYnkgc3VnZ2VzdGlvbnMuIiksbXVsdGlwbGVPZjokKCJzY2hlbWEuanNvbi5tdWx0aXBsZU9mIiwiQSBudW1iZXIgdGhhdCBzaG91bGQgY2xlYW5seSBkaXZpZGUgdGhlIGN1cnJlbnQgdmFsdWUgKGkuZS4gaGF2ZSBubyByZW1haW5kZXIpLiIpLG1heGltdW06JCgic2NoZW1hLmpzb24ubWF4aW11bSIsIlRoZSBtYXhpbXVtIG51bWVyaWNhbCB2YWx1ZSwgaW5jbHVzaXZlIGJ5IGRlZmF1bHQuIiksZXhjbHVzaXZlTWF4aW11bTokKCJzY2hlbWEuanNvbi5leGNsdXNpdmVNYXhpbXVtIiwiTWFrZXMgdGhlIG1heGltdW0gcHJvcGVydHkgZXhjbHVzaXZlLiIpLG1pbmltdW06JCgic2NoZW1hLmpzb24ubWluaW11bSIsIlRoZSBtaW5pbXVtIG51bWVyaWNhbCB2YWx1ZSwgaW5jbHVzaXZlIGJ5IGRlZmF1bHQuIiksZXhjbHVzaXZlTWluaW11bTokKCJzY2hlbWEuanNvbi5leGNsdXNpdmVNaW5pbnVtIiwiTWFrZXMgdGhlIG1pbmltdW0gcHJvcGVydHkgZXhjbHVzaXZlLiIpLG1heExlbmd0aDokKCJzY2hlbWEuanNvbi5tYXhMZW5ndGgiLCJUaGUgbWF4aW11bSBsZW5ndGggb2YgYSBzdHJpbmcuIiksbWluTGVuZ3RoOiQoInNjaGVtYS5qc29uLm1pbkxlbmd0aCIsIlRoZSBtaW5pbXVtIGxlbmd0aCBvZiBhIHN0cmluZy4iKSxwYXR0ZXJuOiQoInNjaGVtYS5qc29uLnBhdHRlcm4iLCJBIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBtYXRjaCB0aGUgc3RyaW5nIGFnYWluc3QuIEl0IGlzIG5vdCBpbXBsaWNpdGx5IGFuY2hvcmVkLiIpLGFkZGl0aW9uYWxJdGVtczokKCJzY2hlbWEuanNvbi5hZGRpdGlvbmFsSXRlbXMiLCJGb3IgYXJyYXlzLCBvbmx5IHdoZW4gaXRlbXMgaXMgc2V0IGFzIGFuIGFycmF5LiBJZiBpdCBpcyBhIHNjaGVtYSwgdGhlbiB0aGlzIHNjaGVtYSB2YWxpZGF0ZXMgaXRlbXMgYWZ0ZXIgdGhlIG9uZXMgc3BlY2lmaWVkIGJ5IHRoZSBpdGVtcyBhcnJheS4gSWYgaXQgaXMgZmFsc2UsIHRoZW4gYWRkaXRpb25hbCBpdGVtcyB3aWxsIGNhdXNlIHZhbGlkYXRpb24gdG8gZmFpbC4iKSxpdGVtczokKCJzY2hlbWEuanNvbi5pdGVtcyIsIkZvciBhcnJheXMuIENhbiBlaXRoZXIgYmUgYSBzY2hlbWEgdG8gdmFsaWRhdGUgZXZlcnkgZWxlbWVudCBhZ2FpbnN0IG9yIGFuIGFycmF5IG9mIHNjaGVtYXMgdG8gdmFsaWRhdGUgZWFjaCBpdGVtIGFnYWluc3QgaW4gb3JkZXIgKHRoZSBmaXJzdCBzY2hlbWEgd2lsbCB2YWxpZGF0ZSB0aGUgZmlyc3QgZWxlbWVudCwgdGhlIHNlY29uZCBzY2hlbWEgd2lsbCB2YWxpZGF0ZSB0aGUgc2Vjb25kIGVsZW1lbnQsIGFuZCBzbyBvbi4iKSxtYXhJdGVtczokKCJzY2hlbWEuanNvbi5tYXhJdGVtcyIsIlRoZSBtYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0aGF0IGNhbiBiZSBpbnNpZGUgYW4gYXJyYXkuIEluY2x1c2l2ZS4iKSxtaW5JdGVtczokKCJzY2hlbWEuanNvbi5taW5JdGVtcyIsIlRoZSBtaW5pbXVtIG51bWJlciBvZiBpdGVtcyB0aGF0IGNhbiBiZSBpbnNpZGUgYW4gYXJyYXkuIEluY2x1c2l2ZS4iKSx1bmlxdWVJdGVtczokKCJzY2hlbWEuanNvbi51bmlxdWVJdGVtcyIsIklmIGFsbCBvZiB0aGUgaXRlbXMgaW4gdGhlIGFycmF5IG11c3QgYmUgdW5pcXVlLiBEZWZhdWx0cyB0byBmYWxzZS4iKSxtYXhQcm9wZXJ0aWVzOiQoInNjaGVtYS5qc29uLm1heFByb3BlcnRpZXMiLCJUaGUgbWF4aW11bSBudW1iZXIgb2YgcHJvcGVydGllcyBhbiBvYmplY3QgY2FuIGhhdmUuIEluY2x1c2l2ZS4iKSxtaW5Qcm9wZXJ0aWVzOiQoInNjaGVtYS5qc29uLm1pblByb3BlcnRpZXMiLCJUaGUgbWluaW11bSBudW1iZXIgb2YgcHJvcGVydGllcyBhbiBvYmplY3QgY2FuIGhhdmUuIEluY2x1c2l2ZS4iKSxyZXF1aXJlZDokKCJzY2hlbWEuanNvbi5yZXF1aXJlZCIsIkFuIGFycmF5IG9mIHN0cmluZ3MgdGhhdCBsaXN0cyB0aGUgbmFtZXMgb2YgYWxsIHByb3BlcnRpZXMgcmVxdWlyZWQgb24gdGhpcyBvYmplY3QuIiksYWRkaXRpb25hbFByb3BlcnRpZXM6JCgic2NoZW1hLmpzb24uYWRkaXRpb25hbFByb3BlcnRpZXMiLCJFaXRoZXIgYSBzY2hlbWEgb3IgYSBib29sZWFuLiBJZiBhIHNjaGVtYSwgdGhlbiB1c2VkIHRvIHZhbGlkYXRlIGFsbCBwcm9wZXJ0aWVzIG5vdCBtYXRjaGVkIGJ5ICdwcm9wZXJ0aWVzJyBvciAncGF0dGVyblByb3BlcnRpZXMnLiBJZiBmYWxzZSwgdGhlbiBhbnkgcHJvcGVydGllcyBub3QgbWF0Y2hlZCBieSBlaXRoZXIgd2lsbCBjYXVzZSB0aGlzIHNjaGVtYSB0byBmYWlsLiIpLGRlZmluaXRpb25zOiQoInNjaGVtYS5qc29uLmRlZmluaXRpb25zIiwiTm90IHVzZWQgZm9yIHZhbGlkYXRpb24uIFBsYWNlIHN1YnNjaGVtYXMgaGVyZSB0aGF0IHlvdSB3aXNoIHRvIHJlZmVyZW5jZSBpbmxpbmUgd2l0aCAkcmVmLiIpLHByb3BlcnRpZXM6JCgic2NoZW1hLmpzb24ucHJvcGVydGllcyIsIkEgbWFwIG9mIHByb3BlcnR5IG5hbWVzIHRvIHNjaGVtYXMgZm9yIGVhY2ggcHJvcGVydHkuIikscGF0dGVyblByb3BlcnRpZXM6JCgic2NoZW1hLmpzb24ucGF0dGVyblByb3BlcnRpZXMiLCJBIG1hcCBvZiByZWd1bGFyIGV4cHJlc3Npb25zIG9uIHByb3BlcnR5IG5hbWVzIHRvIHNjaGVtYXMgZm9yIG1hdGNoaW5nIHByb3BlcnRpZXMuIiksZGVwZW5kZW5jaWVzOiQoInNjaGVtYS5qc29uLmRlcGVuZGVuY2llcyIsIkEgbWFwIG9mIHByb3BlcnR5IG5hbWVzIHRvIGVpdGhlciBhbiBhcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyBvciBhIHNjaGVtYS4gQW4gYXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgbWVhbnMgdGhlIHByb3BlcnR5IG5hbWVkIGluIHRoZSBrZXkgZGVwZW5kcyBvbiB0aGUgcHJvcGVydGllcyBpbiB0aGUgYXJyYXkgYmVpbmcgcHJlc2VudCBpbiB0aGUgb2JqZWN0IGluIG9yZGVyIHRvIGJlIHZhbGlkLiBJZiB0aGUgdmFsdWUgaXMgYSBzY2hlbWEsIHRoZW4gdGhlIHNjaGVtYSBpcyBvbmx5IGFwcGxpZWQgdG8gdGhlIG9iamVjdCBpZiB0aGUgcHJvcGVydHkgaW4gdGhlIGtleSBleGlzdHMgb24gdGhlIG9iamVjdC4iKSxlbnVtOiQoInNjaGVtYS5qc29uLmVudW0iLCJUaGUgc2V0IG9mIGxpdGVyYWwgdmFsdWVzIHRoYXQgYXJlIHZhbGlkLiIpLHR5cGU6JCgic2NoZW1hLmpzb24udHlwZSIsIkVpdGhlciBhIHN0cmluZyBvZiBvbmUgb2YgdGhlIGJhc2ljIHNjaGVtYSB0eXBlcyAobnVtYmVyLCBpbnRlZ2VyLCBudWxsLCBhcnJheSwgb2JqZWN0LCBib29sZWFuLCBzdHJpbmcpIG9yIGFuIGFycmF5IG9mIHN0cmluZ3Mgc3BlY2lmeWluZyBhIHN1YnNldCBvZiB0aG9zZSB0eXBlcy4iKSxmb3JtYXQ6JCgic2NoZW1hLmpzb24uZm9ybWF0IiwiRGVzY3JpYmVzIHRoZSBmb3JtYXQgZXhwZWN0ZWQgZm9yIHRoZSB2YWx1ZS4iKSxhbGxPZjokKCJzY2hlbWEuanNvbi5hbGxPZiIsIkFuIGFycmF5IG9mIHNjaGVtYXMsIGFsbCBvZiB3aGljaCBtdXN0IG1hdGNoLiIpLGFueU9mOiQoInNjaGVtYS5qc29uLmFueU9mIiwiQW4gYXJyYXkgb2Ygc2NoZW1hcywgd2hlcmUgYXQgbGVhc3Qgb25lIG11c3QgbWF0Y2guIiksb25lT2Y6JCgic2NoZW1hLmpzb24ub25lT2YiLCJBbiBhcnJheSBvZiBzY2hlbWFzLCBleGFjdGx5IG9uZSBvZiB3aGljaCBtdXN0IG1hdGNoLiIpLG5vdDokKCJzY2hlbWEuanNvbi5ub3QiLCJBIHNjaGVtYSB3aGljaCBtdXN0IG5vdCBtYXRjaC4iKSwkaWQ6JCgic2NoZW1hLmpzb24uJGlkIiwiQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHNjaGVtYS4iKSwkcmVmOiQoInNjaGVtYS5qc29uLiRyZWYiLCJSZWZlcmVuY2UgYSBkZWZpbml0aW9uIGhvc3RlZCBvbiBhbnkgbG9jYXRpb24uIiksJGNvbW1lbnQ6JCgic2NoZW1hLmpzb24uJGNvbW1lbnQiLCJDb21tZW50cyBmcm9tIHNjaGVtYSBhdXRob3JzIHRvIHJlYWRlcnMgb3IgbWFpbnRhaW5lcnMgb2YgdGhlIHNjaGVtYS4iKSxyZWFkT25seTokKCJzY2hlbWEuanNvbi5yZWFkT25seSIsIkluZGljYXRlcyB0aGF0IHRoZSB2YWx1ZSBvZiB0aGUgaW5zdGFuY2UgaXMgbWFuYWdlZCBleGNsdXNpdmVseSBieSB0aGUgb3duaW5nIGF1dGhvcml0eS4iKSxleGFtcGxlczokKCJzY2hlbWEuanNvbi5leGFtcGxlcyIsIlNhbXBsZSBKU09OIHZhbHVlcyBhc3NvY2lhdGVkIHdpdGggYSBwYXJ0aWN1bGFyIHNjaGVtYSwgZm9yIHRoZSBwdXJwb3NlIG9mIGlsbHVzdHJhdGluZyB1c2FnZS4iKSxjb250YWluczokKCJzY2hlbWEuanNvbi5jb250YWlucyIsJ0FuIGFycmF5IGluc3RhbmNlIGlzIHZhbGlkIGFnYWluc3QgImNvbnRhaW5zIiBpZiBhdCBsZWFzdCBvbmUgb2YgaXRzIGVsZW1lbnRzIGlzIHZhbGlkIGFnYWluc3QgdGhlIGdpdmVuIHNjaGVtYS4nKSxwcm9wZXJ0eU5hbWVzOiQoInNjaGVtYS5qc29uLnByb3BlcnR5TmFtZXMiLCJJZiB0aGUgaW5zdGFuY2UgaXMgYW4gb2JqZWN0LCB0aGlzIGtleXdvcmQgdmFsaWRhdGVzIGlmIGV2ZXJ5IHByb3BlcnR5IG5hbWUgaW4gdGhlIGluc3RhbmNlIHZhbGlkYXRlcyBhZ2FpbnN0IHRoZSBwcm92aWRlZCBzY2hlbWEuIiksY29uc3Q6JCgic2NoZW1hLmpzb24uY29uc3QiLCJBbiBpbnN0YW5jZSB2YWxpZGF0ZXMgc3VjY2Vzc2Z1bGx5IGFnYWluc3QgdGhpcyBrZXl3b3JkIGlmIGl0cyB2YWx1ZSBpcyBlcXVhbCB0byB0aGUgdmFsdWUgb2YgdGhlIGtleXdvcmQuIiksY29udGVudE1lZGlhVHlwZTokKCJzY2hlbWEuanNvbi5jb250ZW50TWVkaWFUeXBlIiwiRGVzY3JpYmVzIHRoZSBtZWRpYSB0eXBlIG9mIGEgc3RyaW5nIHByb3BlcnR5LiIpLGNvbnRlbnRFbmNvZGluZzokKCJzY2hlbWEuanNvbi5jb250ZW50RW5jb2RpbmciLCJEZXNjcmliZXMgdGhlIGNvbnRlbnQgZW5jb2Rpbmcgb2YgYSBzdHJpbmcgcHJvcGVydHkuIiksaWY6JCgic2NoZW1hLmpzb24uaWYiLCdUaGUgdmFsaWRhdGlvbiBvdXRjb21lIG9mIHRoZSAiaWYiIHN1YnNjaGVtYSBjb250cm9scyB3aGljaCBvZiB0aGUgInRoZW4iIG9yICJlbHNlIiBrZXl3b3JkcyBhcmUgZXZhbHVhdGVkLicpLHRoZW46JCgic2NoZW1hLmpzb24udGhlbiIsJ1RoZSAiaWYiIHN1YnNjaGVtYSBpcyB1c2VkIGZvciB2YWxpZGF0aW9uIHdoZW4gdGhlICJpZiIgc3Vic2NoZW1hIHN1Y2NlZWRzLicpLGVsc2U6JCgic2NoZW1hLmpzb24uZWxzZSIsJ1RoZSAiZWxzZSIgc3Vic2NoZW1hIGlzIHVzZWQgZm9yIHZhbGlkYXRpb24gd2hlbiB0aGUgImlmIiBzdWJzY2hlbWEgZmFpbHMuJyl9O2Zvcih2YSBpbiBDci5zY2hlbWFzKXtTbj1Dci5zY2hlbWFzW3ZhXTtmb3IoTG4gaW4gU24ucHJvcGVydGllcylObj1Tbi5wcm9wZXJ0aWVzW0xuXSx0eXBlb2YgTm49PSJib29sZWFuIiYmKE5uPVNuLnByb3BlcnRpZXNbTG5dPXt9KSxrcj1BdVtMbl0sa3ImJihObi5kZXNjcmlwdGlvbj1rcil9dmFyIFNuLE5uLGtyLExuLHZhLGJhO2JhPSgoKT0+e3ZhciBlPXs0NzA6cj0+e2Z1bmN0aW9uIGkobyl7aWYodHlwZW9mIG8hPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIlBhdGggbXVzdCBiZSBhIHN0cmluZy4gUmVjZWl2ZWQgIitKU09OLnN0cmluZ2lmeShvKSl9ZnVuY3Rpb24gcyhvLGwpe2Zvcih2YXIgdSxmPSIiLGg9MCxkPS0xLGc9MCxtPTA7bTw9by5sZW5ndGg7KyttKXtpZihtPG8ubGVuZ3RoKXU9by5jaGFyQ29kZUF0KG0pO2Vsc2V7aWYodT09PTQ3KWJyZWFrO3U9NDd9aWYodT09PTQ3KXtpZighKGQ9PT1tLTF8fGc9PT0xKSlpZihkIT09bS0xJiZnPT09Mil7aWYoZi5sZW5ndGg8Mnx8aCE9PTJ8fGYuY2hhckNvZGVBdChmLmxlbmd0aC0xKSE9PTQ2fHxmLmNoYXJDb2RlQXQoZi5sZW5ndGgtMikhPT00Nil7aWYoZi5sZW5ndGg+Mil7dmFyIHY9Zi5sYXN0SW5kZXhPZigiLyIpO2lmKHYhPT1mLmxlbmd0aC0xKXt2PT09LTE/KGY9IiIsaD0wKTpoPShmPWYuc2xpY2UoMCx2KSkubGVuZ3RoLTEtZi5sYXN0SW5kZXhPZigiLyIpLGQ9bSxnPTA7Y29udGludWV9fWVsc2UgaWYoZi5sZW5ndGg9PT0yfHxmLmxlbmd0aD09PTEpe2Y9IiIsaD0wLGQ9bSxnPTA7Y29udGludWV9fWwmJihmLmxlbmd0aD4wP2YrPSIvLi4iOmY9Ii4uIixoPTIpfWVsc2UgZi5sZW5ndGg+MD9mKz0iLyIrby5zbGljZShkKzEsbSk6Zj1vLnNsaWNlKGQrMSxtKSxoPW0tZC0xO2Q9bSxnPTB9ZWxzZSB1PT09NDYmJmchPT0tMT8rK2c6Zz0tMX1yZXR1cm4gZn12YXIgYT17cmVzb2x2ZTpmdW5jdGlvbigpe2Zvcih2YXIgbyxsPSIiLHU9ITEsZj1hcmd1bWVudHMubGVuZ3RoLTE7Zj49LTEmJiF1O2YtLSl7dmFyIGg7Zj49MD9oPWFyZ3VtZW50c1tmXToobz09PXZvaWQgMCYmKG89cHJvY2Vzcy5jd2QoKSksaD1vKSxpKGgpLGgubGVuZ3RoIT09MCYmKGw9aCsiLyIrbCx1PWguY2hhckNvZGVBdCgwKT09PTQ3KX1yZXR1cm4gbD1zKGwsIXUpLHU/bC5sZW5ndGg+MD8iLyIrbDoiLyI6bC5sZW5ndGg+MD9sOiIuIn0sbm9ybWFsaXplOmZ1bmN0aW9uKG8pe2lmKGkobyksby5sZW5ndGg9PT0wKXJldHVybiIuIjt2YXIgbD1vLmNoYXJDb2RlQXQoMCk9PT00Nyx1PW8uY2hhckNvZGVBdChvLmxlbmd0aC0xKT09PTQ3O3JldHVybihvPXMobywhbCkpLmxlbmd0aCE9PTB8fGx8fChvPSIuIiksby5sZW5ndGg+MCYmdSYmKG8rPSIvIiksbD8iLyIrbzpvfSxpc0Fic29sdXRlOmZ1bmN0aW9uKG8pe3JldHVybiBpKG8pLG8ubGVuZ3RoPjAmJm8uY2hhckNvZGVBdCgwKT09PTQ3fSxqb2luOmZ1bmN0aW9uKCl7aWYoYXJndW1lbnRzLmxlbmd0aD09PTApcmV0dXJuIi4iO2Zvcih2YXIgbyxsPTA7bDxhcmd1bWVudHMubGVuZ3RoOysrbCl7dmFyIHU9YXJndW1lbnRzW2xdO2kodSksdS5sZW5ndGg+MCYmKG89PT12b2lkIDA/bz11Om8rPSIvIit1KX1yZXR1cm4gbz09PXZvaWQgMD8iLiI6YS5ub3JtYWxpemUobyl9LHJlbGF0aXZlOmZ1bmN0aW9uKG8sbCl7aWYoaShvKSxpKGwpLG89PT1sfHwobz1hLnJlc29sdmUobykpPT09KGw9YS5yZXNvbHZlKGwpKSlyZXR1cm4iIjtmb3IodmFyIHU9MTt1PG8ubGVuZ3RoJiZvLmNoYXJDb2RlQXQodSk9PT00NzsrK3UpO2Zvcih2YXIgZj1vLmxlbmd0aCxoPWYtdSxkPTE7ZDxsLmxlbmd0aCYmbC5jaGFyQ29kZUF0KGQpPT09NDc7KytkKTtmb3IodmFyIGc9bC5sZW5ndGgtZCxtPWg8Zz9oOmcsdj0tMSxwPTA7cDw9bTsrK3Ape2lmKHA9PT1tKXtpZihnPm0pe2lmKGwuY2hhckNvZGVBdChkK3ApPT09NDcpcmV0dXJuIGwuc2xpY2UoZCtwKzEpO2lmKHA9PT0wKXJldHVybiBsLnNsaWNlKGQrcCl9ZWxzZSBoPm0mJihvLmNoYXJDb2RlQXQodStwKT09PTQ3P3Y9cDpwPT09MCYmKHY9MCkpO2JyZWFrfXZhciB4PW8uY2hhckNvZGVBdCh1K3ApO2lmKHghPT1sLmNoYXJDb2RlQXQoZCtwKSlicmVhazt4PT09NDcmJih2PXApfXZhciB5PSIiO2ZvcihwPXUrdisxO3A8PWY7KytwKXAhPT1mJiZvLmNoYXJDb2RlQXQocCkhPT00N3x8KHkubGVuZ3RoPT09MD95Kz0iLi4iOnkrPSIvLi4iKTtyZXR1cm4geS5sZW5ndGg+MD95K2wuc2xpY2UoZCt2KTooZCs9dixsLmNoYXJDb2RlQXQoZCk9PT00NyYmKytkLGwuc2xpY2UoZCkpfSxfbWFrZUxvbmc6ZnVuY3Rpb24obyl7cmV0dXJuIG99LGRpcm5hbWU6ZnVuY3Rpb24obyl7aWYoaShvKSxvLmxlbmd0aD09PTApcmV0dXJuIi4iO2Zvcih2YXIgbD1vLmNoYXJDb2RlQXQoMCksdT1sPT09NDcsZj0tMSxoPSEwLGQ9by5sZW5ndGgtMTtkPj0xOy0tZClpZigobD1vLmNoYXJDb2RlQXQoZCkpPT09NDcpe2lmKCFoKXtmPWQ7YnJlYWt9fWVsc2UgaD0hMTtyZXR1cm4gZj09PS0xP3U/Ii8iOiIuIjp1JiZmPT09MT8iLy8iOm8uc2xpY2UoMCxmKX0sYmFzZW5hbWU6ZnVuY3Rpb24obyxsKXtpZihsIT09dm9pZCAwJiZ0eXBlb2YgbCE9InN0cmluZyIpdGhyb3cgbmV3IFR5cGVFcnJvcignImV4dCIgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZycpO2kobyk7dmFyIHUsZj0wLGg9LTEsZD0hMDtpZihsIT09dm9pZCAwJiZsLmxlbmd0aD4wJiZsLmxlbmd0aDw9by5sZW5ndGgpe2lmKGwubGVuZ3RoPT09by5sZW5ndGgmJmw9PT1vKXJldHVybiIiO3ZhciBnPWwubGVuZ3RoLTEsbT0tMTtmb3IodT1vLmxlbmd0aC0xO3U+PTA7LS11KXt2YXIgdj1vLmNoYXJDb2RlQXQodSk7aWYodj09PTQ3KXtpZighZCl7Zj11KzE7YnJlYWt9fWVsc2UgbT09PS0xJiYoZD0hMSxtPXUrMSksZz49MCYmKHY9PT1sLmNoYXJDb2RlQXQoZyk/LS1nPT0tMSYmKGg9dSk6KGc9LTEsaD1tKSl9cmV0dXJuIGY9PT1oP2g9bTpoPT09LTEmJihoPW8ubGVuZ3RoKSxvLnNsaWNlKGYsaCl9Zm9yKHU9by5sZW5ndGgtMTt1Pj0wOy0tdSlpZihvLmNoYXJDb2RlQXQodSk9PT00Nyl7aWYoIWQpe2Y9dSsxO2JyZWFrfX1lbHNlIGg9PT0tMSYmKGQ9ITEsaD11KzEpO3JldHVybiBoPT09LTE/IiI6by5zbGljZShmLGgpfSxleHRuYW1lOmZ1bmN0aW9uKG8pe2kobyk7Zm9yKHZhciBsPS0xLHU9MCxmPS0xLGg9ITAsZD0wLGc9by5sZW5ndGgtMTtnPj0wOy0tZyl7dmFyIG09by5jaGFyQ29kZUF0KGcpO2lmKG0hPT00NylmPT09LTEmJihoPSExLGY9ZysxKSxtPT09NDY/bD09PS0xP2w9ZzpkIT09MSYmKGQ9MSk6bCE9PS0xJiYoZD0tMSk7ZWxzZSBpZighaCl7dT1nKzE7YnJlYWt9fXJldHVybiBsPT09LTF8fGY9PT0tMXx8ZD09PTB8fGQ9PT0xJiZsPT09Zi0xJiZsPT09dSsxPyIiOm8uc2xpY2UobCxmKX0sZm9ybWF0OmZ1bmN0aW9uKG8pe2lmKG89PT1udWxsfHx0eXBlb2YgbyE9Im9iamVjdCIpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJwYXRoT2JqZWN0IiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgT2JqZWN0LiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIG8pO3JldHVybiBmdW5jdGlvbihsLHUpe3ZhciBmPXUuZGlyfHx1LnJvb3QsaD11LmJhc2V8fCh1Lm5hbWV8fCIiKSsodS5leHR8fCIiKTtyZXR1cm4gZj9mPT09dS5yb290P2YraDpmKyIvIitoOmh9KDAsbyl9LHBhcnNlOmZ1bmN0aW9uKG8pe2kobyk7dmFyIGw9e3Jvb3Q6IiIsZGlyOiIiLGJhc2U6IiIsZXh0OiIiLG5hbWU6IiJ9O2lmKG8ubGVuZ3RoPT09MClyZXR1cm4gbDt2YXIgdSxmPW8uY2hhckNvZGVBdCgwKSxoPWY9PT00NztoPyhsLnJvb3Q9Ii8iLHU9MSk6dT0wO2Zvcih2YXIgZD0tMSxnPTAsbT0tMSx2PSEwLHA9by5sZW5ndGgtMSx4PTA7cD49dTstLXApaWYoKGY9by5jaGFyQ29kZUF0KHApKSE9PTQ3KW09PT0tMSYmKHY9ITEsbT1wKzEpLGY9PT00Nj9kPT09LTE/ZD1wOnghPT0xJiYoeD0xKTpkIT09LTEmJih4PS0xKTtlbHNlIGlmKCF2KXtnPXArMTticmVha31yZXR1cm4gZD09PS0xfHxtPT09LTF8fHg9PT0wfHx4PT09MSYmZD09PW0tMSYmZD09PWcrMT9tIT09LTEmJihsLmJhc2U9bC5uYW1lPWc9PT0wJiZoP28uc2xpY2UoMSxtKTpvLnNsaWNlKGcsbSkpOihnPT09MCYmaD8obC5uYW1lPW8uc2xpY2UoMSxkKSxsLmJhc2U9by5zbGljZSgxLG0pKToobC5uYW1lPW8uc2xpY2UoZyxkKSxsLmJhc2U9by5zbGljZShnLG0pKSxsLmV4dD1vLnNsaWNlKGQsbSkpLGc+MD9sLmRpcj1vLnNsaWNlKDAsZy0xKTpoJiYobC5kaXI9Ii8iKSxsfSxzZXA6Ii8iLGRlbGltaXRlcjoiOiIsd2luMzI6bnVsbCxwb3NpeDpudWxsfTthLnBvc2l4PWEsci5leHBvcnRzPWF9LDQ0NzoocixpLHMpPT57dmFyIGE7aWYocy5yKGkpLHMuZChpLHtVUkk6KCk9PnksVXRpbHM6KCk9PlR9KSx0eXBlb2YgcHJvY2Vzcz09Im9iamVjdCIpYT1wcm9jZXNzLnBsYXRmb3JtPT09IndpbjMyIjtlbHNlIGlmKHR5cGVvZiBuYXZpZ2F0b3I9PSJvYmplY3QiKXt2YXIgbz1uYXZpZ2F0b3IudXNlckFnZW50O2E9by5pbmRleE9mKCJXaW5kb3dzIik+PTB9dmFyIGwsdSxmPShsPWZ1bmN0aW9uKE0sayl7cmV0dXJuKGw9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKFAsRCl7UC5fX3Byb3RvX189RH18fGZ1bmN0aW9uKFAsRCl7Zm9yKHZhciBxIGluIEQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEQscSkmJihQW3FdPURbcV0pfSkoTSxrKX0sZnVuY3Rpb24oTSxrKXtpZih0eXBlb2YgayE9ImZ1bmN0aW9uIiYmayE9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhrKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBQKCl7dGhpcy5jb25zdHJ1Y3Rvcj1NfWwoTSxrKSxNLnByb3RvdHlwZT1rPT09bnVsbD9PYmplY3QuY3JlYXRlKGspOihQLnByb3RvdHlwZT1rLnByb3RvdHlwZSxuZXcgUCl9KSxoPS9eXHdbXHdcZCsuLV0qJC8sZD0vXlwvLyxnPS9eXC9cLy87ZnVuY3Rpb24gbShNLGspe2lmKCFNLnNjaGVtZSYmayl0aHJvdyBuZXcgRXJyb3IoJ1tVcmlFcnJvcl06IFNjaGVtZSBpcyBtaXNzaW5nOiB7c2NoZW1lOiAiIiwgYXV0aG9yaXR5OiAiJy5jb25jYXQoTS5hdXRob3JpdHksJyIsIHBhdGg6ICInKS5jb25jYXQoTS5wYXRoLCciLCBxdWVyeTogIicpLmNvbmNhdChNLnF1ZXJ5LCciLCBmcmFnbWVudDogIicpLmNvbmNhdChNLmZyYWdtZW50LCcifScpKTtpZihNLnNjaGVtZSYmIWgudGVzdChNLnNjaGVtZSkpdGhyb3cgbmV3IEVycm9yKCJbVXJpRXJyb3JdOiBTY2hlbWUgY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzLiIpO2lmKE0ucGF0aCl7aWYoTS5hdXRob3JpdHkpe2lmKCFkLnRlc3QoTS5wYXRoKSl0aHJvdyBuZXcgRXJyb3IoJ1tVcmlFcnJvcl06IElmIGEgVVJJIGNvbnRhaW5zIGFuIGF1dGhvcml0eSBjb21wb25lbnQsIHRoZW4gdGhlIHBhdGggY29tcG9uZW50IG11c3QgZWl0aGVyIGJlIGVtcHR5IG9yIGJlZ2luIHdpdGggYSBzbGFzaCAoIi8iKSBjaGFyYWN0ZXInKX1lbHNlIGlmKGcudGVzdChNLnBhdGgpKXRocm93IG5ldyBFcnJvcignW1VyaUVycm9yXTogSWYgYSBVUkkgZG9lcyBub3QgY29udGFpbiBhbiBhdXRob3JpdHkgY29tcG9uZW50LCB0aGVuIHRoZSBwYXRoIGNhbm5vdCBiZWdpbiB3aXRoIHR3byBzbGFzaCBjaGFyYWN0ZXJzICgiLy8iKScpfX12YXIgdj0iIixwPSIvIix4PS9eKChbXjovPyNdKz8pOik/KFwvXC8oW14vPyNdKikpPyhbXj8jXSopKFw/KFteI10qKSk/KCMoLiopKT8vLHk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBNKGssUCxELHEsQix6KXt6PT09dm9pZCAwJiYoej0hMSksdHlwZW9mIGs9PSJvYmplY3QiPyh0aGlzLnNjaGVtZT1rLnNjaGVtZXx8dix0aGlzLmF1dGhvcml0eT1rLmF1dGhvcml0eXx8dix0aGlzLnBhdGg9ay5wYXRofHx2LHRoaXMucXVlcnk9ay5xdWVyeXx8dix0aGlzLmZyYWdtZW50PWsuZnJhZ21lbnR8fHYpOih0aGlzLnNjaGVtZT1mdW5jdGlvbihkZSxsZSl7cmV0dXJuIGRlfHxsZT9kZToiZmlsZSJ9KGsseiksdGhpcy5hdXRob3JpdHk9UHx8dix0aGlzLnBhdGg9ZnVuY3Rpb24oZGUsbGUpe3N3aXRjaChkZSl7Y2FzZSJodHRwcyI6Y2FzZSJodHRwIjpjYXNlImZpbGUiOmxlP2xlWzBdIT09cCYmKGxlPXArbGUpOmxlPXB9cmV0dXJuIGxlfSh0aGlzLnNjaGVtZSxEfHx2KSx0aGlzLnF1ZXJ5PXF8fHYsdGhpcy5mcmFnbWVudD1CfHx2LG0odGhpcyx6KSl9cmV0dXJuIE0uaXNVcmk9ZnVuY3Rpb24oayl7cmV0dXJuIGsgaW5zdGFuY2VvZiBNfHwhIWsmJnR5cGVvZiBrLmF1dGhvcml0eT09InN0cmluZyImJnR5cGVvZiBrLmZyYWdtZW50PT0ic3RyaW5nIiYmdHlwZW9mIGsucGF0aD09InN0cmluZyImJnR5cGVvZiBrLnF1ZXJ5PT0ic3RyaW5nIiYmdHlwZW9mIGsuc2NoZW1lPT0ic3RyaW5nIiYmdHlwZW9mIGsuZnNQYXRoPT0ic3RyaW5nIiYmdHlwZW9mIGsud2l0aD09ImZ1bmN0aW9uIiYmdHlwZW9mIGsudG9TdHJpbmc9PSJmdW5jdGlvbiJ9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShNLnByb3RvdHlwZSwiZnNQYXRoIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEEodGhpcywhMSl9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksTS5wcm90b3R5cGUud2l0aD1mdW5jdGlvbihrKXtpZighaylyZXR1cm4gdGhpczt2YXIgUD1rLnNjaGVtZSxEPWsuYXV0aG9yaXR5LHE9ay5wYXRoLEI9ay5xdWVyeSx6PWsuZnJhZ21lbnQ7cmV0dXJuIFA9PT12b2lkIDA/UD10aGlzLnNjaGVtZTpQPT09bnVsbCYmKFA9diksRD09PXZvaWQgMD9EPXRoaXMuYXV0aG9yaXR5OkQ9PT1udWxsJiYoRD12KSxxPT09dm9pZCAwP3E9dGhpcy5wYXRoOnE9PT1udWxsJiYocT12KSxCPT09dm9pZCAwP0I9dGhpcy5xdWVyeTpCPT09bnVsbCYmKEI9diksej09PXZvaWQgMD96PXRoaXMuZnJhZ21lbnQ6ej09PW51bGwmJih6PXYpLFA9PT10aGlzLnNjaGVtZSYmRD09PXRoaXMuYXV0aG9yaXR5JiZxPT09dGhpcy5wYXRoJiZCPT09dGhpcy5xdWVyeSYmej09PXRoaXMuZnJhZ21lbnQ/dGhpczpuZXcgTihQLEQscSxCLHopfSxNLnBhcnNlPWZ1bmN0aW9uKGssUCl7UD09PXZvaWQgMCYmKFA9ITEpO3ZhciBEPXguZXhlYyhrKTtyZXR1cm4gRD9uZXcgTihEWzJdfHx2LF8oRFs0XXx8diksXyhEWzVdfHx2KSxfKERbN118fHYpLF8oRFs5XXx8diksUCk6bmV3IE4odix2LHYsdix2KX0sTS5maWxlPWZ1bmN0aW9uKGspe3ZhciBQPXY7aWYoYSYmKGs9ay5yZXBsYWNlKC9cXC9nLHApKSxrWzBdPT09cCYma1sxXT09PXApe3ZhciBEPWsuaW5kZXhPZihwLDIpO0Q9PT0tMT8oUD1rLnN1YnN0cmluZygyKSxrPXApOihQPWsuc3Vic3RyaW5nKDIsRCksaz1rLnN1YnN0cmluZyhEKXx8cCl9cmV0dXJuIG5ldyBOKCJmaWxlIixQLGssdix2KX0sTS5mcm9tPWZ1bmN0aW9uKGspe3ZhciBQPW5ldyBOKGsuc2NoZW1lLGsuYXV0aG9yaXR5LGsucGF0aCxrLnF1ZXJ5LGsuZnJhZ21lbnQpO3JldHVybiBtKFAsITApLFB9LE0ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKGspe3JldHVybiBrPT09dm9pZCAwJiYoaz0hMSksUih0aGlzLGspfSxNLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sTS5yZXZpdmU9ZnVuY3Rpb24oayl7aWYoayl7aWYoayBpbnN0YW5jZW9mIE0pcmV0dXJuIGs7dmFyIFA9bmV3IE4oayk7cmV0dXJuIFAuX2Zvcm1hdHRlZD1rLmV4dGVybmFsLFAuX2ZzUGF0aD1rLl9zZXA9PT1iP2suZnNQYXRoOm51bGwsUH1yZXR1cm4ga30sTX0oKSxiPWE/MTp2b2lkIDAsTj1mdW5jdGlvbihNKXtmdW5jdGlvbiBrKCl7dmFyIFA9TSE9PW51bGwmJk0uYXBwbHkodGhpcyxhcmd1bWVudHMpfHx0aGlzO3JldHVybiBQLl9mb3JtYXR0ZWQ9bnVsbCxQLl9mc1BhdGg9bnVsbCxQfXJldHVybiBmKGssTSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGsucHJvdG90eXBlLCJmc1BhdGgiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZnNQYXRofHwodGhpcy5fZnNQYXRoPUEodGhpcywhMSkpLHRoaXMuX2ZzUGF0aH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxrLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbihQKXtyZXR1cm4gUD09PXZvaWQgMCYmKFA9ITEpLFA/Uih0aGlzLCEwKToodGhpcy5fZm9ybWF0dGVkfHwodGhpcy5fZm9ybWF0dGVkPVIodGhpcywhMSkpLHRoaXMuX2Zvcm1hdHRlZCl9LGsucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3ZhciBQPXskbWlkOjF9O3JldHVybiB0aGlzLl9mc1BhdGgmJihQLmZzUGF0aD10aGlzLl9mc1BhdGgsUC5fc2VwPWIpLHRoaXMuX2Zvcm1hdHRlZCYmKFAuZXh0ZXJuYWw9dGhpcy5fZm9ybWF0dGVkKSx0aGlzLnBhdGgmJihQLnBhdGg9dGhpcy5wYXRoKSx0aGlzLnNjaGVtZSYmKFAuc2NoZW1lPXRoaXMuc2NoZW1lKSx0aGlzLmF1dGhvcml0eSYmKFAuYXV0aG9yaXR5PXRoaXMuYXV0aG9yaXR5KSx0aGlzLnF1ZXJ5JiYoUC5xdWVyeT10aGlzLnF1ZXJ5KSx0aGlzLmZyYWdtZW50JiYoUC5mcmFnbWVudD10aGlzLmZyYWdtZW50KSxQfSxrfSh5KSxTPSgodT17fSlbNThdPSIlM0EiLHVbNDddPSIlMkYiLHVbNjNdPSIlM0YiLHVbMzVdPSIlMjMiLHVbOTFdPSIlNUIiLHVbOTNdPSIlNUQiLHVbNjRdPSIlNDAiLHVbMzNdPSIlMjEiLHVbMzZdPSIlMjQiLHVbMzhdPSIlMjYiLHVbMzldPSIlMjciLHVbNDBdPSIlMjgiLHVbNDFdPSIlMjkiLHVbNDJdPSIlMkEiLHVbNDNdPSIlMkIiLHVbNDRdPSIlMkMiLHVbNTldPSIlM0IiLHVbNjFdPSIlM0QiLHVbMzJdPSIlMjAiLHUpO2Z1bmN0aW9uIHcoTSxrKXtmb3IodmFyIFA9dm9pZCAwLEQ9LTEscT0wO3E8TS5sZW5ndGg7cSsrKXt2YXIgQj1NLmNoYXJDb2RlQXQocSk7aWYoQj49OTcmJkI8PTEyMnx8Qj49NjUmJkI8PTkwfHxCPj00OCYmQjw9NTd8fEI9PT00NXx8Qj09PTQ2fHxCPT09OTV8fEI9PT0xMjZ8fGsmJkI9PT00NylEIT09LTEmJihQKz1lbmNvZGVVUklDb21wb25lbnQoTS5zdWJzdHJpbmcoRCxxKSksRD0tMSksUCE9PXZvaWQgMCYmKFArPU0uY2hhckF0KHEpKTtlbHNle1A9PT12b2lkIDAmJihQPU0uc3Vic3RyKDAscSkpO3ZhciB6PVNbQl07eiE9PXZvaWQgMD8oRCE9PS0xJiYoUCs9ZW5jb2RlVVJJQ29tcG9uZW50KE0uc3Vic3RyaW5nKEQscSkpLEQ9LTEpLFArPXopOkQ9PT0tMSYmKEQ9cSl9fXJldHVybiBEIT09LTEmJihQKz1lbmNvZGVVUklDb21wb25lbnQoTS5zdWJzdHJpbmcoRCkpKSxQIT09dm9pZCAwP1A6TX1mdW5jdGlvbiBMKE0pe2Zvcih2YXIgaz12b2lkIDAsUD0wO1A8TS5sZW5ndGg7UCsrKXt2YXIgRD1NLmNoYXJDb2RlQXQoUCk7RD09PTM1fHxEPT09NjM/KGs9PT12b2lkIDAmJihrPU0uc3Vic3RyKDAsUCkpLGsrPVNbRF0pOmshPT12b2lkIDAmJihrKz1NW1BdKX1yZXR1cm4gayE9PXZvaWQgMD9rOk19ZnVuY3Rpb24gQShNLGspe3ZhciBQO3JldHVybiBQPU0uYXV0aG9yaXR5JiZNLnBhdGgubGVuZ3RoPjEmJk0uc2NoZW1lPT09ImZpbGUiPyIvLyIuY29uY2F0KE0uYXV0aG9yaXR5KS5jb25jYXQoTS5wYXRoKTpNLnBhdGguY2hhckNvZGVBdCgwKT09PTQ3JiYoTS5wYXRoLmNoYXJDb2RlQXQoMSk+PTY1JiZNLnBhdGguY2hhckNvZGVBdCgxKTw9OTB8fE0ucGF0aC5jaGFyQ29kZUF0KDEpPj05NyYmTS5wYXRoLmNoYXJDb2RlQXQoMSk8PTEyMikmJk0ucGF0aC5jaGFyQ29kZUF0KDIpPT09NTg/az9NLnBhdGguc3Vic3RyKDEpOk0ucGF0aFsxXS50b0xvd2VyQ2FzZSgpK00ucGF0aC5zdWJzdHIoMik6TS5wYXRoLGEmJihQPVAucmVwbGFjZSgvXC8vZywiXFwiKSksUH1mdW5jdGlvbiBSKE0sayl7dmFyIFA9az9MOncsRD0iIixxPU0uc2NoZW1lLEI9TS5hdXRob3JpdHksej1NLnBhdGgsZGU9TS5xdWVyeSxsZT1NLmZyYWdtZW50O2lmKHEmJihEKz1xLEQrPSI6IiksKEJ8fHE9PT0iZmlsZSIpJiYoRCs9cCxEKz1wKSxCKXt2YXIgYmU9Qi5pbmRleE9mKCJAIik7aWYoYmUhPT0tMSl7dmFyIEN0PUIuc3Vic3RyKDAsYmUpO0I9Qi5zdWJzdHIoYmUrMSksKGJlPUN0LmluZGV4T2YoIjoiKSk9PT0tMT9EKz1QKEN0LCExKTooRCs9UChDdC5zdWJzdHIoMCxiZSksITEpLEQrPSI6IixEKz1QKEN0LnN1YnN0cihiZSsxKSwhMSkpLEQrPSJAIn0oYmU9KEI9Qi50b0xvd2VyQ2FzZSgpKS5pbmRleE9mKCI6IikpPT09LTE/RCs9UChCLCExKTooRCs9UChCLnN1YnN0cigwLGJlKSwhMSksRCs9Qi5zdWJzdHIoYmUpKX1pZih6KXtpZih6Lmxlbmd0aD49MyYmei5jaGFyQ29kZUF0KDApPT09NDcmJnouY2hhckNvZGVBdCgyKT09PTU4KShPZT16LmNoYXJDb2RlQXQoMSkpPj02NSYmT2U8PTkwJiYoej0iLyIuY29uY2F0KFN0cmluZy5mcm9tQ2hhckNvZGUoT2UrMzIpLCI6IikuY29uY2F0KHouc3Vic3RyKDMpKSk7ZWxzZSBpZih6Lmxlbmd0aD49MiYmei5jaGFyQ29kZUF0KDEpPT09NTgpe3ZhciBPZTsoT2U9ei5jaGFyQ29kZUF0KDApKT49NjUmJk9lPD05MCYmKHo9IiIuY29uY2F0KFN0cmluZy5mcm9tQ2hhckNvZGUoT2UrMzIpLCI6IikuY29uY2F0KHouc3Vic3RyKDIpKSl9RCs9UCh6LCEwKX1yZXR1cm4gZGUmJihEKz0iPyIsRCs9UChkZSwhMSkpLGxlJiYoRCs9IiMiLEQrPWs/bGU6dyhsZSwhMSkpLER9ZnVuY3Rpb24gSShNKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChNKX1jYXRjaHtyZXR1cm4gTS5sZW5ndGg+Mz9NLnN1YnN0cigwLDMpK0koTS5zdWJzdHIoMykpOk19fXZhciBDPS8oJVswLTlBLVphLXpdWzAtOUEtWmEtel0pKy9nO2Z1bmN0aW9uIF8oTSl7cmV0dXJuIE0ubWF0Y2goQyk/TS5yZXBsYWNlKEMsZnVuY3Rpb24oayl7cmV0dXJuIEkoayl9KTpNfXZhciBULEY9cyg0NzApLFY9ZnVuY3Rpb24oTSxrLFApe2lmKFB8fGFyZ3VtZW50cy5sZW5ndGg9PT0yKWZvcih2YXIgRCxxPTAsQj1rLmxlbmd0aDtxPEI7cSsrKSFEJiZxIGluIGt8fChEfHwoRD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChrLDAscSkpLERbcV09a1txXSk7cmV0dXJuIE0uY29uY2F0KER8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGspKX0sTz1GLnBvc2l4fHxGOyhmdW5jdGlvbihNKXtNLmpvaW5QYXRoPWZ1bmN0aW9uKGspe2Zvcih2YXIgUD1bXSxEPTE7RDxhcmd1bWVudHMubGVuZ3RoO0QrKylQW0QtMV09YXJndW1lbnRzW0RdO3JldHVybiBrLndpdGgoe3BhdGg6Ty5qb2luLmFwcGx5KE8sVihbay5wYXRoXSxQLCExKSl9KX0sTS5yZXNvbHZlUGF0aD1mdW5jdGlvbihrKXtmb3IodmFyIFA9W10sRD0xO0Q8YXJndW1lbnRzLmxlbmd0aDtEKyspUFtELTFdPWFyZ3VtZW50c1tEXTt2YXIgcT1rLnBhdGh8fCIvIjtyZXR1cm4gay53aXRoKHtwYXRoOk8ucmVzb2x2ZS5hcHBseShPLFYoW3FdLFAsITEpKX0pfSxNLmRpcm5hbWU9ZnVuY3Rpb24oayl7dmFyIFA9Ty5kaXJuYW1lKGsucGF0aCk7cmV0dXJuIFAubGVuZ3RoPT09MSYmUC5jaGFyQ29kZUF0KDApPT09NDY/azprLndpdGgoe3BhdGg6UH0pfSxNLmJhc2VuYW1lPWZ1bmN0aW9uKGspe3JldHVybiBPLmJhc2VuYW1lKGsucGF0aCl9LE0uZXh0bmFtZT1mdW5jdGlvbihrKXtyZXR1cm4gTy5leHRuYW1lKGsucGF0aCl9fSkoVHx8KFQ9e30pKX19LHQ9e307ZnVuY3Rpb24gbihyKXtpZih0W3JdKXJldHVybiB0W3JdLmV4cG9ydHM7dmFyIGk9dFtyXT17ZXhwb3J0czp7fX07cmV0dXJuIGVbcl0oaSxpLmV4cG9ydHMsbiksaS5leHBvcnRzfXJldHVybiBuLmQ9KHIsaSk9Pntmb3IodmFyIHMgaW4gaSluLm8oaSxzKSYmIW4ubyhyLHMpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixzLHtlbnVtZXJhYmxlOiEwLGdldDppW3NdfSl9LG4ubz0ocixpKT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHIsaSksbi5yPXI9Pnt0eXBlb2YgU3ltYm9sPCJ1IiYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkocixTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxuKDQ0Nyl9KSgpO3ZhcntVUkk6QXQsVXRpbHM6S3V9PWJhO2Z1bmN0aW9uIEN1KGUsdCl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBUeXBlRXJyb3IoIkV4cGVjdGVkIGEgc3RyaW5nIik7Zm9yKHZhciBuPVN0cmluZyhlKSxyPSIiLGk9dD8hIXQuZXh0ZW5kZWQ6ITEscz10PyEhdC5nbG9ic3RhcjohMSxhPSExLG89dCYmdHlwZW9mIHQuZmxhZ3M9PSJzdHJpbmciP3QuZmxhZ3M6IiIsbCx1PTAsZj1uLmxlbmd0aDt1PGY7dSsrKXN3aXRjaChsPW5bdV0sbCl7Y2FzZSIvIjpjYXNlIiQiOmNhc2UiXiI6Y2FzZSIrIjpjYXNlIi4iOmNhc2UiKCI6Y2FzZSIpIjpjYXNlIj0iOmNhc2UiISI6Y2FzZSJ8IjpyKz0iXFwiK2w7YnJlYWs7Y2FzZSI/IjppZihpKXtyKz0iLiI7YnJlYWt9Y2FzZSJbIjpjYXNlIl0iOmlmKGkpe3IrPWw7YnJlYWt9Y2FzZSJ7IjppZihpKXthPSEwLHIrPSIoIjticmVha31jYXNlIn0iOmlmKGkpe2E9ITEscis9IikiO2JyZWFrfWNhc2UiLCI6aWYoYSl7cis9InwiO2JyZWFrfXIrPSJcXCIrbDticmVhaztjYXNlIioiOmZvcih2YXIgaD1uW3UtMV0sZD0xO25bdSsxXT09PSIqIjspZCsrLHUrKzt2YXIgZz1uW3UrMV07aWYoIXMpcis9Ii4qIjtlbHNle3ZhciBtPWQ+MSYmKGg9PT0iLyJ8fGg9PT12b2lkIDB8fGg9PT0ieyJ8fGg9PT0iLCIpJiYoZz09PSIvInx8Zz09PXZvaWQgMHx8Zz09PSIsInx8Zz09PSJ9Iik7bT8oZz09PSIvIj91Kys6aD09PSIvIiYmci5lbmRzV2l0aCgiXFwvIikmJihyPXIuc3Vic3RyKDAsci5sZW5ndGgtMikpLHIrPSIoKD86W14vXSooPzovfCQpKSopIik6cis9IihbXi9dKikifWJyZWFrO2RlZmF1bHQ6cis9bH1yZXR1cm4oIW98fCF+by5pbmRleE9mKCJnIikpJiYocj0iXiIrcisiJCIpLG5ldyBSZWdFeHAocixvKX12YXIgVmU9SnQoKSxrdT0iISIsRXU9Ii8iLFJ1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSh0LG4pe3RoaXMuZ2xvYldyYXBwZXJzPVtdO3RyeXtmb3IodmFyIHI9MCxpPXQ7cjxpLmxlbmd0aDtyKyspe3ZhciBzPWlbcl0sYT1zWzBdIT09a3U7YXx8KHM9cy5zdWJzdHJpbmcoMSkpLHMubGVuZ3RoPjAmJihzWzBdPT09RXUmJihzPXMuc3Vic3RyaW5nKDEpKSx0aGlzLmdsb2JXcmFwcGVycy5wdXNoKHtyZWdleHA6Q3UoIioqLyIrcyx7ZXh0ZW5kZWQ6ITAsZ2xvYnN0YXI6ITB9KSxpbmNsdWRlOmF9KSl9dGhpcy51cmlzPW59Y2F0Y2h7dGhpcy5nbG9iV3JhcHBlcnMubGVuZ3RoPTAsdGhpcy51cmlzPVtdfX1yZXR1cm4gZS5wcm90b3R5cGUubWF0Y2hlc1BhdHRlcm49ZnVuY3Rpb24odCl7Zm9yKHZhciBuPSExLHI9MCxpPXRoaXMuZ2xvYldyYXBwZXJzO3I8aS5sZW5ndGg7cisrKXt2YXIgcz1pW3JdLGE9cy5yZWdleHAsbz1zLmluY2x1ZGU7YS50ZXN0KHQpJiYobj1vKX1yZXR1cm4gbn0sZS5wcm90b3R5cGUuZ2V0VVJJcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnVyaXN9LGV9KCksTXU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQsbixyKXt0aGlzLnNlcnZpY2U9dCx0aGlzLnVyaT1uLHRoaXMuZGVwZW5kZW5jaWVzPW5ldyBTZXQsdGhpcy5hbmNob3JzPXZvaWQgMCxyJiYodGhpcy51bnJlc29sdmVkU2NoZW1hPXRoaXMuc2VydmljZS5wcm9taXNlLnJlc29sdmUobmV3IFh0KHIpKSl9cmV0dXJuIGUucHJvdG90eXBlLmdldFVucmVzb2x2ZWRTY2hlbWE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51bnJlc29sdmVkU2NoZW1hfHwodGhpcy51bnJlc29sdmVkU2NoZW1hPXRoaXMuc2VydmljZS5sb2FkU2NoZW1hKHRoaXMudXJpKSksdGhpcy51bnJlc29sdmVkU2NoZW1hfSxlLnByb3RvdHlwZS5nZXRSZXNvbHZlZFNjaGVtYT1mdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMucmVzb2x2ZWRTY2hlbWF8fCh0aGlzLnJlc29sdmVkU2NoZW1hPXRoaXMuZ2V0VW5yZXNvbHZlZFNjaGVtYSgpLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIHQuc2VydmljZS5yZXNvbHZlU2NoZW1hQ29udGVudChuLHQpfSkpLHRoaXMucmVzb2x2ZWRTY2hlbWF9LGUucHJvdG90eXBlLmNsZWFyU2NoZW1hPWZ1bmN0aW9uKCl7dmFyIHQ9ISF0aGlzLnVucmVzb2x2ZWRTY2hlbWE7cmV0dXJuIHRoaXMucmVzb2x2ZWRTY2hlbWE9dm9pZCAwLHRoaXMudW5yZXNvbHZlZFNjaGVtYT12b2lkIDAsdGhpcy5kZXBlbmRlbmNpZXMuY2xlYXIoKSx0aGlzLmFuY2hvcnM9dm9pZCAwLHR9LGV9KCksWHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQsbil7bj09PXZvaWQgMCYmKG49W10pLHRoaXMuc2NoZW1hPXQsdGhpcy5lcnJvcnM9bn1yZXR1cm4gZX0oKSx4YT1mdW5jdGlvbigpe2Z1bmN0aW9uIGUodCxuKXtuPT09dm9pZCAwJiYobj1bXSksdGhpcy5zY2hlbWE9dCx0aGlzLmVycm9ycz1ufXJldHVybiBlLnByb3RvdHlwZS5nZXRTZWN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBuPXRoaXMuZ2V0U2VjdGlvblJlY3Vyc2l2ZSh0LHRoaXMuc2NoZW1hKTtpZihuKXJldHVybiBwZShuKX0sZS5wcm90b3R5cGUuZ2V0U2VjdGlvblJlY3Vyc2l2ZT1mdW5jdGlvbih0LG4pe2lmKCFufHx0eXBlb2Ygbj09ImJvb2xlYW4ifHx0Lmxlbmd0aD09PTApcmV0dXJuIG47dmFyIHI9dC5zaGlmdCgpO2lmKG4ucHJvcGVydGllcyYmdHlwZW9mIG4ucHJvcGVydGllc1tyXSlyZXR1cm4gdGhpcy5nZXRTZWN0aW9uUmVjdXJzaXZlKHQsbi5wcm9wZXJ0aWVzW3JdKTtpZihuLnBhdHRlcm5Qcm9wZXJ0aWVzKWZvcih2YXIgaT0wLHM9T2JqZWN0LmtleXMobi5wYXR0ZXJuUHJvcGVydGllcyk7aTxzLmxlbmd0aDtpKyspe3ZhciBhPXNbaV0sbz1nbihhKTtpZihvIT1udWxsJiZvLnRlc3QocikpcmV0dXJuIHRoaXMuZ2V0U2VjdGlvblJlY3Vyc2l2ZSh0LG4ucGF0dGVyblByb3BlcnRpZXNbYV0pfWVsc2V7aWYodHlwZW9mIG4uYWRkaXRpb25hbFByb3BlcnRpZXM9PSJvYmplY3QiKXJldHVybiB0aGlzLmdldFNlY3Rpb25SZWN1cnNpdmUodCxuLmFkZGl0aW9uYWxQcm9wZXJ0aWVzKTtpZihyLm1hdGNoKCJbMC05XSsiKSl7aWYoQXJyYXkuaXNBcnJheShuLml0ZW1zKSl7dmFyIGw9cGFyc2VJbnQociwxMCk7aWYoIWlzTmFOKGwpJiZuLml0ZW1zW2xdKXJldHVybiB0aGlzLmdldFNlY3Rpb25SZWN1cnNpdmUodCxuLml0ZW1zW2xdKX1lbHNlIGlmKG4uaXRlbXMpcmV0dXJuIHRoaXMuZ2V0U2VjdGlvblJlY3Vyc2l2ZSh0LG4uaXRlbXMpfX19LGV9KCksVHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKHQsbixyKXt0aGlzLmNvbnRleHRTZXJ2aWNlPW4sdGhpcy5yZXF1ZXN0U2VydmljZT10LHRoaXMucHJvbWlzZUNvbnN0cnVjdG9yPXJ8fFByb21pc2UsdGhpcy5jYWxsT25EaXNwb3NlPVtdLHRoaXMuY29udHJpYnV0aW9uU2NoZW1hcz17fSx0aGlzLmNvbnRyaWJ1dGlvbkFzc29jaWF0aW9ucz1bXSx0aGlzLnNjaGVtYXNCeUlkPXt9LHRoaXMuZmlsZVBhdHRlcm5Bc3NvY2lhdGlvbnM9W10sdGhpcy5yZWdpc3RlcmVkU2NoZW1hc0lkcz17fX1yZXR1cm4gZS5wcm90b3R5cGUuZ2V0UmVnaXN0ZXJlZFNjaGVtYUlkcz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5yZWdpc3RlcmVkU2NoZW1hc0lkcykuZmlsdGVyKGZ1bmN0aW9uKG4pe3ZhciByPUF0LnBhcnNlKG4pLnNjaGVtZTtyZXR1cm4gciE9PSJzY2hlbWFzZXJ2aWNlIiYmKCF0fHx0KHIpKX0pfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5wcm90b3R5cGUsInByb21pc2UiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcm9taXNlQ29uc3RydWN0b3J9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksZS5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2Zvcig7dGhpcy5jYWxsT25EaXNwb3NlLmxlbmd0aD4wOyl0aGlzLmNhbGxPbkRpc3Bvc2UucG9wKCkoKX0sZS5wcm90b3R5cGUub25SZXNvdXJjZUNoYW5nZT1mdW5jdGlvbih0KXt2YXIgbj10aGlzO3RoaXMuY2FjaGVkU2NoZW1hRm9yUmVzb3VyY2U9dm9pZCAwO3ZhciByPSExO3Q9ZXQodCk7Zm9yKHZhciBpPVt0XSxzPU9iamVjdC5rZXlzKHRoaXMuc2NoZW1hc0J5SWQpLm1hcChmdW5jdGlvbih1KXtyZXR1cm4gbi5zY2hlbWFzQnlJZFt1XX0pO2kubGVuZ3RoOylmb3IodmFyIGE9aS5wb3AoKSxvPTA7bzxzLmxlbmd0aDtvKyspe3ZhciBsPXNbb107bCYmKGwudXJpPT09YXx8bC5kZXBlbmRlbmNpZXMuaGFzKGEpKSYmKGwudXJpIT09YSYmaS5wdXNoKGwudXJpKSxsLmNsZWFyU2NoZW1hKCkmJihyPSEwKSxzW29dPXZvaWQgMCl9cmV0dXJuIHJ9LGUucHJvdG90eXBlLnNldFNjaGVtYUNvbnRyaWJ1dGlvbnM9ZnVuY3Rpb24odCl7aWYodC5zY2hlbWFzKXt2YXIgbj10LnNjaGVtYXM7Zm9yKHZhciByIGluIG4pe3ZhciBpPWV0KHIpO3RoaXMuY29udHJpYnV0aW9uU2NoZW1hc1tpXT10aGlzLmFkZFNjaGVtYUhhbmRsZShpLG5bcl0pfX1pZihBcnJheS5pc0FycmF5KHQuc2NoZW1hQXNzb2NpYXRpb25zKSlmb3IodmFyIHM9dC5zY2hlbWFBc3NvY2lhdGlvbnMsYT0wLG89czthPG8ubGVuZ3RoO2ErKyl7dmFyIGw9b1thXSx1PWwudXJpcy5tYXAoZXQpLGY9dGhpcy5hZGRGaWxlUGF0dGVybkFzc29jaWF0aW9uKGwucGF0dGVybix1KTt0aGlzLmNvbnRyaWJ1dGlvbkFzc29jaWF0aW9ucy5wdXNoKGYpfX0sZS5wcm90b3R5cGUuYWRkU2NoZW1hSGFuZGxlPWZ1bmN0aW9uKHQsbil7dmFyIHI9bmV3IE11KHRoaXMsdCxuKTtyZXR1cm4gdGhpcy5zY2hlbWFzQnlJZFt0XT1yLHJ9LGUucHJvdG90eXBlLmdldE9yQWRkU2NoZW1hSGFuZGxlPWZ1bmN0aW9uKHQsbil7cmV0dXJuIHRoaXMuc2NoZW1hc0J5SWRbdF18fHRoaXMuYWRkU2NoZW1hSGFuZGxlKHQsbil9LGUucHJvdG90eXBlLmFkZEZpbGVQYXR0ZXJuQXNzb2NpYXRpb249ZnVuY3Rpb24odCxuKXt2YXIgcj1uZXcgUnUodCxuKTtyZXR1cm4gdGhpcy5maWxlUGF0dGVybkFzc29jaWF0aW9ucy5wdXNoKHIpLHJ9LGUucHJvdG90eXBlLnJlZ2lzdGVyRXh0ZXJuYWxTY2hlbWE9ZnVuY3Rpb24odCxuLHIpe3ZhciBpPWV0KHQpO3JldHVybiB0aGlzLnJlZ2lzdGVyZWRTY2hlbWFzSWRzW2ldPSEwLHRoaXMuY2FjaGVkU2NoZW1hRm9yUmVzb3VyY2U9dm9pZCAwLG4mJnRoaXMuYWRkRmlsZVBhdHRlcm5Bc3NvY2lhdGlvbihuLFtpXSkscj90aGlzLmFkZFNjaGVtYUhhbmRsZShpLHIpOnRoaXMuZ2V0T3JBZGRTY2hlbWFIYW5kbGUoaSl9LGUucHJvdG90eXBlLmNsZWFyRXh0ZXJuYWxTY2hlbWFzPWZ1bmN0aW9uKCl7dGhpcy5zY2hlbWFzQnlJZD17fSx0aGlzLmZpbGVQYXR0ZXJuQXNzb2NpYXRpb25zPVtdLHRoaXMucmVnaXN0ZXJlZFNjaGVtYXNJZHM9e30sdGhpcy5jYWNoZWRTY2hlbWFGb3JSZXNvdXJjZT12b2lkIDA7Zm9yKHZhciB0IGluIHRoaXMuY29udHJpYnV0aW9uU2NoZW1hcyl0aGlzLnNjaGVtYXNCeUlkW3RdPXRoaXMuY29udHJpYnV0aW9uU2NoZW1hc1t0XSx0aGlzLnJlZ2lzdGVyZWRTY2hlbWFzSWRzW3RdPSEwO2Zvcih2YXIgbj0wLHI9dGhpcy5jb250cmlidXRpb25Bc3NvY2lhdGlvbnM7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl07dGhpcy5maWxlUGF0dGVybkFzc29jaWF0aW9ucy5wdXNoKGkpfX0sZS5wcm90b3R5cGUuZ2V0UmVzb2x2ZWRTY2hlbWE9ZnVuY3Rpb24odCl7dmFyIG49ZXQodCkscj10aGlzLnNjaGVtYXNCeUlkW25dO3JldHVybiByP3IuZ2V0UmVzb2x2ZWRTY2hlbWEoKTp0aGlzLnByb21pc2UucmVzb2x2ZSh2b2lkIDApfSxlLnByb3RvdHlwZS5sb2FkU2NoZW1hPWZ1bmN0aW9uKHQpe2lmKCF0aGlzLnJlcXVlc3RTZXJ2aWNlKXt2YXIgbj1WZSgianNvbi5zY2hlbWEubm9yZXF1ZXN0c2VydmljZSIsIlVuYWJsZSB0byBsb2FkIHNjaGVtYSBmcm9tICd7MH0nLiBObyBzY2hlbWEgcmVxdWVzdCBzZXJ2aWNlIGF2YWlsYWJsZSIsQW4odCkpO3JldHVybiB0aGlzLnByb21pc2UucmVzb2x2ZShuZXcgWHQoe30sW25dKSl9cmV0dXJuIHRoaXMucmVxdWVzdFNlcnZpY2UodCkudGhlbihmdW5jdGlvbihyKXtpZighcil7dmFyIGk9VmUoImpzb24uc2NoZW1hLm5vY29udGVudCIsIlVuYWJsZSB0byBsb2FkIHNjaGVtYSBmcm9tICd7MH0nOiBObyBjb250ZW50LiIsQW4odCkpO3JldHVybiBuZXcgWHQoe30sW2ldKX12YXIgcz17fSxhPVtdO3M9WGwocixhKTt2YXIgbz1hLmxlbmd0aD9bVmUoImpzb24uc2NoZW1hLmludmFsaWRGb3JtYXQiLCJVbmFibGUgdG8gcGFyc2UgY29udGVudCBmcm9tICd7MH0nOiBQYXJzZSBlcnJvciBhdCBvZmZzZXQgezF9LiIsQW4odCksYVswXS5vZmZzZXQpXTpbXTtyZXR1cm4gbmV3IFh0KHMsbyl9LGZ1bmN0aW9uKHIpe3ZhciBpPXIudG9TdHJpbmcoKSxzPXIudG9TdHJpbmcoKS5zcGxpdCgiRXJyb3I6ICIpO3JldHVybiBzLmxlbmd0aD4xJiYoaT1zWzFdKSxxdChpLCIuIikmJihpPWkuc3Vic3RyKDAsaS5sZW5ndGgtMSkpLG5ldyBYdCh7fSxbVmUoImpzb24uc2NoZW1hLm5vY29udGVudCIsIlVuYWJsZSB0byBsb2FkIHNjaGVtYSBmcm9tICd7MH0nOiB7MX0uIixBbih0KSxpKV0pfSl9LGUucHJvdG90eXBlLnJlc29sdmVTY2hlbWFDb250ZW50PWZ1bmN0aW9uKHQsbil7dmFyIHI9dGhpcyxpPXQuZXJyb3JzLnNsaWNlKDApLHM9dC5zY2hlbWE7aWYocy4kc2NoZW1hKXt2YXIgYT1ldChzLiRzY2hlbWEpO2lmKGE9PT0iaHR0cDovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC0wMy9zY2hlbWEiKXJldHVybiB0aGlzLnByb21pc2UucmVzb2x2ZShuZXcgeGEoe30sW1ZlKCJqc29uLnNjaGVtYS5kcmFmdDAzLm5vdHN1cHBvcnRlZCIsIkRyYWZ0LTAzIHNjaGVtYXMgYXJlIG5vdCBzdXBwb3J0ZWQuIildKSk7YT09PSJodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDE5LTA5L3NjaGVtYSI/aS5wdXNoKFZlKCJqc29uLnNjaGVtYS5kcmFmdDIwMTkwOS5ub3RzdXBwb3J0ZWQiLCJEcmFmdCAyMDE5LTA5IHNjaGVtYXMgYXJlIG5vdCB5ZXQgZnVsbHkgc3VwcG9ydGVkLiIpKTphPT09Imh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMjAtMTIvc2NoZW1hIiYmaS5wdXNoKFZlKCJqc29uLnNjaGVtYS5kcmFmdDIwMjAxMi5ub3RzdXBwb3J0ZWQiLCJEcmFmdCAyMDIwLTEyIHNjaGVtYXMgYXJlIG5vdCB5ZXQgZnVsbHkgc3VwcG9ydGVkLiIpKX12YXIgbz10aGlzLmNvbnRleHRTZXJ2aWNlLGw9ZnVuY3Rpb24odixwKXtwPWRlY29kZVVSSUNvbXBvbmVudChwKTt2YXIgeD12O3JldHVybiBwWzBdPT09Ii8iJiYocD1wLnN1YnN0cmluZygxKSkscC5zcGxpdCgiLyIpLnNvbWUoZnVuY3Rpb24oeSl7cmV0dXJuIHk9eS5yZXBsYWNlKC9+MS9nLCIvIikucmVwbGFjZSgvfjAvZywifiIpLHg9eFt5XSwheH0pLHh9LHU9ZnVuY3Rpb24odixwLHgpe3JldHVybiBwLmFuY2hvcnN8fChwLmFuY2hvcnM9bSh2KSkscC5hbmNob3JzLmdldCh4KX0sZj1mdW5jdGlvbih2LHApe2Zvcih2YXIgeCBpbiBwKXAuaGFzT3duUHJvcGVydHkoeCkmJiF2Lmhhc093blByb3BlcnR5KHgpJiZ4IT09ImlkIiYmeCE9PSIkaWQiJiYodlt4XT1wW3hdKX0saD1mdW5jdGlvbih2LHAseCx5KXt2YXIgYjt5PT09dm9pZCAwfHx5Lmxlbmd0aD09PTA/Yj1wOnkuY2hhckF0KDApPT09Ii8iP2I9bChwLHkpOmI9dShwLHgseSksYj9mKHYsYik6aS5wdXNoKFZlKCJqc29uLnNjaGVtYS5pbnZhbGlkaWQiLCIkcmVmICd7MH0nIGluICd7MX0nIGNhbiBub3QgYmUgcmVzb2x2ZWQuIix5LHgudXJpKSl9LGQ9ZnVuY3Rpb24odixwLHgseSl7byYmIS9eW0EtWmEtel1bQS1aYS16MC05K1wtLitdKjpcL1wvLiovLnRlc3QocCkmJihwPW8ucmVzb2x2ZVJlbGF0aXZlUGF0aChwLHkudXJpKSkscD1ldChwKTt2YXIgYj1yLmdldE9yQWRkU2NoZW1hSGFuZGxlKHApO3JldHVybiBiLmdldFVucmVzb2x2ZWRTY2hlbWEoKS50aGVuKGZ1bmN0aW9uKE4pe2lmKHkuZGVwZW5kZW5jaWVzLmFkZChwKSxOLmVycm9ycy5sZW5ndGgpe3ZhciBTPXg/cCsiIyIreDpwO2kucHVzaChWZSgianNvbi5zY2hlbWEucHJvYmxlbWxvYWRpbmdyZWYiLCJQcm9ibGVtcyBsb2FkaW5nIHJlZmVyZW5jZSAnezB9JzogezF9IixTLE4uZXJyb3JzWzBdKSl9cmV0dXJuIGgodixOLnNjaGVtYSxiLHgpLGcodixOLnNjaGVtYSxiKX0pfSxnPWZ1bmN0aW9uKHYscCx4KXt2YXIgeT1bXTtyZXR1cm4gci50cmF2ZXJzZU5vZGVzKHYsZnVuY3Rpb24oYil7Zm9yKHZhciBOPW5ldyBTZXQ7Yi4kcmVmOyl7dmFyIFM9Yi4kcmVmLHc9Uy5zcGxpdCgiIyIsMik7aWYoZGVsZXRlIGIuJHJlZix3WzBdLmxlbmd0aD4wKXt5LnB1c2goZChiLHdbMF0sd1sxXSx4KSk7cmV0dXJufWVsc2UgaWYoIU4uaGFzKFMpKXt2YXIgTD13WzFdO2goYixwLHgsTCksTi5hZGQoUyl9fX0pLHIucHJvbWlzZS5hbGwoeSl9LG09ZnVuY3Rpb24odil7dmFyIHA9bmV3IE1hcDtyZXR1cm4gci50cmF2ZXJzZU5vZGVzKHYsZnVuY3Rpb24oeCl7dmFyIHk9eC4kaWR8fHguaWQ7aWYodHlwZW9mIHk9PSJzdHJpbmciJiZ5LmNoYXJBdCgwKT09PSIjIil7dmFyIGI9eS5zdWJzdHJpbmcoMSk7cC5oYXMoYik/aS5wdXNoKFZlKCJqc29uLnNjaGVtYS5kdXBsaWNhdGVpZCIsIkR1cGxpY2F0ZSBpZCBkZWNsYXJhdGlvbjogJ3swfSciLHkpKTpwLnNldChiLHgpfX0pLHB9O3JldHVybiBnKHMscyxuKS50aGVuKGZ1bmN0aW9uKHYpe3JldHVybiBuZXcgeGEocyxpKX0pfSxlLnByb3RvdHlwZS50cmF2ZXJzZU5vZGVzPWZ1bmN0aW9uKHQsbil7aWYoIXR8fHR5cGVvZiB0IT0ib2JqZWN0IilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO2Zvcih2YXIgcj1uZXcgU2V0LGk9ZnVuY3Rpb24oKXtmb3IodmFyIHU9W10sZj0wO2Y8YXJndW1lbnRzLmxlbmd0aDtmKyspdVtmXT1hcmd1bWVudHNbZl07Zm9yKHZhciBoPTAsZD11O2g8ZC5sZW5ndGg7aCsrKXt2YXIgZz1kW2hdO3R5cGVvZiBnPT0ib2JqZWN0IiYmby5wdXNoKGcpfX0scz1mdW5jdGlvbigpe2Zvcih2YXIgdT1bXSxmPTA7Zjxhcmd1bWVudHMubGVuZ3RoO2YrKyl1W2ZdPWFyZ3VtZW50c1tmXTtmb3IodmFyIGg9MCxkPXU7aDxkLmxlbmd0aDtoKyspe3ZhciBnPWRbaF07aWYodHlwZW9mIGc9PSJvYmplY3QiKWZvcih2YXIgbSBpbiBnKXt2YXIgdj1tLHA9Z1t2XTt0eXBlb2YgcD09Im9iamVjdCImJm8ucHVzaChwKX19fSxhPWZ1bmN0aW9uKCl7Zm9yKHZhciB1PVtdLGY9MDtmPGFyZ3VtZW50cy5sZW5ndGg7ZisrKXVbZl09YXJndW1lbnRzW2ZdO2Zvcih2YXIgaD0wLGQ9dTtoPGQubGVuZ3RoO2grKyl7dmFyIGc9ZFtoXTtpZihBcnJheS5pc0FycmF5KGcpKWZvcih2YXIgbT0wLHY9ZzttPHYubGVuZ3RoO20rKyl7dmFyIHA9dlttXTt0eXBlb2YgcD09Im9iamVjdCImJm8ucHVzaChwKX19fSxvPVt0XSxsPW8ucG9wKCk7bDspci5oYXMobCl8fChyLmFkZChsKSxuKGwpLGkobC5pdGVtcyxsLmFkZGl0aW9uYWxJdGVtcyxsLmFkZGl0aW9uYWxQcm9wZXJ0aWVzLGwubm90LGwuY29udGFpbnMsbC5wcm9wZXJ0eU5hbWVzLGwuaWYsbC50aGVuLGwuZWxzZSkscyhsLmRlZmluaXRpb25zLGwucHJvcGVydGllcyxsLnBhdHRlcm5Qcm9wZXJ0aWVzLGwuZGVwZW5kZW5jaWVzKSxhKGwuYW55T2YsbC5hbGxPZixsLm9uZU9mLGwuaXRlbXMpKSxsPW8ucG9wKCl9LGUucHJvdG90eXBlLmdldFNjaGVtYUZyb21Qcm9wZXJ0eT1mdW5jdGlvbih0LG4pe3ZhciByLGk7aWYoKChyPW4ucm9vdCk9PT1udWxsfHxyPT09dm9pZCAwP3ZvaWQgMDpyLnR5cGUpPT09Im9iamVjdCIpZm9yKHZhciBzPTAsYT1uLnJvb3QucHJvcGVydGllcztzPGEubGVuZ3RoO3MrKyl7dmFyIG89YVtzXTtpZihvLmtleU5vZGUudmFsdWU9PT0iJHNjaGVtYSImJigoaT1vLnZhbHVlTm9kZSk9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLnR5cGUpPT09InN0cmluZyIpe3ZhciBsPW8udmFsdWVOb2RlLnZhbHVlO3JldHVybiB0aGlzLmNvbnRleHRTZXJ2aWNlJiYhL15cd1tcd1xkKy4tXSo6Ly50ZXN0KGwpJiYobD10aGlzLmNvbnRleHRTZXJ2aWNlLnJlc29sdmVSZWxhdGl2ZVBhdGgobCx0KSksbH19fSxlLnByb3RvdHlwZS5nZXRBc3NvY2lhdGVkU2NoZW1hcz1mdW5jdGlvbih0KXtmb3IodmFyIG49T2JqZWN0LmNyZWF0ZShudWxsKSxyPVtdLGk9RnUodCkscz0wLGE9dGhpcy5maWxlUGF0dGVybkFzc29jaWF0aW9ucztzPGEubGVuZ3RoO3MrKyl7dmFyIG89YVtzXTtpZihvLm1hdGNoZXNQYXR0ZXJuKGkpKWZvcih2YXIgbD0wLHU9by5nZXRVUklzKCk7bDx1Lmxlbmd0aDtsKyspe3ZhciBmPXVbbF07bltmXXx8KHIucHVzaChmKSxuW2ZdPSEwKX19cmV0dXJuIHJ9LGUucHJvdG90eXBlLmdldFNjaGVtYVVSSXNGb3JSZXNvdXJjZT1mdW5jdGlvbih0LG4pe3ZhciByPW4mJnRoaXMuZ2V0U2NoZW1hRnJvbVByb3BlcnR5KHQsbik7cmV0dXJuIHI/W3JdOnRoaXMuZ2V0QXNzb2NpYXRlZFNjaGVtYXModCl9LGUucHJvdG90eXBlLmdldFNjaGVtYUZvclJlc291cmNlPWZ1bmN0aW9uKHQsbil7aWYobil7dmFyIHI9dGhpcy5nZXRTY2hlbWFGcm9tUHJvcGVydHkodCxuKTtpZihyKXt2YXIgaT1ldChyKTtyZXR1cm4gdGhpcy5nZXRPckFkZFNjaGVtYUhhbmRsZShpKS5nZXRSZXNvbHZlZFNjaGVtYSgpfX1pZih0aGlzLmNhY2hlZFNjaGVtYUZvclJlc291cmNlJiZ0aGlzLmNhY2hlZFNjaGVtYUZvclJlc291cmNlLnJlc291cmNlPT09dClyZXR1cm4gdGhpcy5jYWNoZWRTY2hlbWFGb3JSZXNvdXJjZS5yZXNvbHZlZFNjaGVtYTt2YXIgcz10aGlzLmdldEFzc29jaWF0ZWRTY2hlbWFzKHQpLGE9cy5sZW5ndGg+MD90aGlzLmNyZWF0ZUNvbWJpbmVkU2NoZW1hKHQscykuZ2V0UmVzb2x2ZWRTY2hlbWEoKTp0aGlzLnByb21pc2UucmVzb2x2ZSh2b2lkIDApO3JldHVybiB0aGlzLmNhY2hlZFNjaGVtYUZvclJlc291cmNlPXtyZXNvdXJjZTp0LHJlc29sdmVkU2NoZW1hOmF9LGF9LGUucHJvdG90eXBlLmNyZWF0ZUNvbWJpbmVkU2NoZW1hPWZ1bmN0aW9uKHQsbil7aWYobi5sZW5ndGg9PT0xKXJldHVybiB0aGlzLmdldE9yQWRkU2NoZW1hSGFuZGxlKG5bMF0pO3ZhciByPSJzY2hlbWFzZXJ2aWNlOi8vY29tYmluZWRTY2hlbWEvIitlbmNvZGVVUklDb21wb25lbnQodCksaT17YWxsT2Y6bi5tYXAoZnVuY3Rpb24ocyl7cmV0dXJueyRyZWY6c319KX07cmV0dXJuIHRoaXMuYWRkU2NoZW1hSGFuZGxlKHIsaSl9LGUucHJvdG90eXBlLmdldE1hdGNoaW5nU2NoZW1hcz1mdW5jdGlvbih0LG4scil7aWYocil7dmFyIGk9ci5pZHx8InNjaGVtYXNlcnZpY2U6Ly91bnRpdGxlZC9tYXRjaGluZ1NjaGVtYXMvIitQdSsrLHM9dGhpcy5hZGRTY2hlbWFIYW5kbGUoaSxyKTtyZXR1cm4gcy5nZXRSZXNvbHZlZFNjaGVtYSgpLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIG4uZ2V0TWF0Y2hpbmdTY2hlbWFzKGEuc2NoZW1hKS5maWx0ZXIoZnVuY3Rpb24obyl7cmV0dXJuIW8uaW52ZXJ0ZWR9KX0pfXJldHVybiB0aGlzLmdldFNjaGVtYUZvclJlc291cmNlKHQudXJpLG4pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGE/bi5nZXRNYXRjaGluZ1NjaGVtYXMoYS5zY2hlbWEpLmZpbHRlcihmdW5jdGlvbihvKXtyZXR1cm4hby5pbnZlcnRlZH0pOltdfSl9LGV9KCksUHU9MDtmdW5jdGlvbiBldChlKXt0cnl7cmV0dXJuIEF0LnBhcnNlKGUpLnRvU3RyaW5nKCEwKX1jYXRjaHtyZXR1cm4gZX19ZnVuY3Rpb24gRnUoZSl7dHJ5e3JldHVybiBBdC5wYXJzZShlKS53aXRoKHtmcmFnbWVudDpudWxsLHF1ZXJ5Om51bGx9KS50b1N0cmluZyghMCl9Y2F0Y2h7cmV0dXJuIGV9fWZ1bmN0aW9uIEFuKGUpe3RyeXt2YXIgdD1BdC5wYXJzZShlKTtpZih0LnNjaGVtZT09PSJmaWxlIilyZXR1cm4gdC5mc1BhdGh9Y2F0Y2h7fXJldHVybiBlfWZ1bmN0aW9uIEl1KGUsdCl7dmFyIG49W10scj1bXSxpPVtdLHM9LTEsYT1OdChlLmdldFRleHQoKSwhMSksbz1hLnNjYW4oKTtmdW5jdGlvbiBsKEkpe24ucHVzaChJKSxyLnB1c2goaS5sZW5ndGgpfWZvcig7byE9PTE3Oyl7c3dpdGNoKG8pe2Nhc2UgMTpjYXNlIDM6e3ZhciB1PWUucG9zaXRpb25BdChhLmdldFRva2VuT2Zmc2V0KCkpLmxpbmUsZj17c3RhcnRMaW5lOnUsZW5kTGluZTp1LGtpbmQ6bz09PTE/Im9iamVjdCI6ImFycmF5In07aS5wdXNoKGYpO2JyZWFrfWNhc2UgMjpjYXNlIDQ6e3ZhciBoPW89PT0yPyJvYmplY3QiOiJhcnJheSI7aWYoaS5sZW5ndGg+MCYmaVtpLmxlbmd0aC0xXS5raW5kPT09aCl7dmFyIGY9aS5wb3AoKSxkPWUucG9zaXRpb25BdChhLmdldFRva2VuT2Zmc2V0KCkpLmxpbmU7ZiYmZD5mLnN0YXJ0TGluZSsxJiZzIT09Zi5zdGFydExpbmUmJihmLmVuZExpbmU9ZC0xLGwoZikscz1mLnN0YXJ0TGluZSl9YnJlYWt9Y2FzZSAxMzp7dmFyIHU9ZS5wb3NpdGlvbkF0KGEuZ2V0VG9rZW5PZmZzZXQoKSkubGluZSxnPWUucG9zaXRpb25BdChhLmdldFRva2VuT2Zmc2V0KCkrYS5nZXRUb2tlbkxlbmd0aCgpKS5saW5lO2EuZ2V0VG9rZW5FcnJvcigpPT09MSYmdSsxPGUubGluZUNvdW50P2Euc2V0UG9zaXRpb24oZS5vZmZzZXRBdChSZS5jcmVhdGUodSsxLDApKSk6dTxnJiYobCh7c3RhcnRMaW5lOnUsZW5kTGluZTpnLGtpbmQ6JHQuQ29tbWVudH0pLHM9dSk7YnJlYWt9Y2FzZSAxMjp7dmFyIG09ZS5nZXRUZXh0KCkuc3Vic3RyKGEuZ2V0VG9rZW5PZmZzZXQoKSxhLmdldFRva2VuTGVuZ3RoKCkpLHY9bS5tYXRjaCgvXlwvXC9ccyojKHJlZ2lvblxiKXwoZW5kcmVnaW9uXGIpLyk7aWYodil7dmFyIGQ9ZS5wb3NpdGlvbkF0KGEuZ2V0VG9rZW5PZmZzZXQoKSkubGluZTtpZih2WzFdKXt2YXIgZj17c3RhcnRMaW5lOmQsZW5kTGluZTpkLGtpbmQ6JHQuUmVnaW9ufTtpLnB1c2goZil9ZWxzZXtmb3IodmFyIHA9aS5sZW5ndGgtMTtwPj0wJiZpW3BdLmtpbmQhPT0kdC5SZWdpb247KXAtLTtpZihwPj0wKXt2YXIgZj1pW3BdO2kubGVuZ3RoPXAsZD5mLnN0YXJ0TGluZSYmcyE9PWYuc3RhcnRMaW5lJiYoZi5lbmRMaW5lPWQsbChmKSxzPWYuc3RhcnRMaW5lKX19fWJyZWFrfX1vPWEuc2NhbigpfXZhciB4PXQmJnQucmFuZ2VMaW1pdDtpZih0eXBlb2YgeCE9Im51bWJlciJ8fG4ubGVuZ3RoPD14KXJldHVybiBuO3QmJnQub25SYW5nZUxpbWl0RXhjZWVkZWQmJnQub25SYW5nZUxpbWl0RXhjZWVkZWQoZS51cmkpO2Zvcih2YXIgeT1bXSxiPTAsTj1yO2I8Ti5sZW5ndGg7YisrKXt2YXIgUz1OW2JdO1M8MzAmJih5W1NdPSh5W1NdfHwwKSsxKX1mb3IodmFyIHc9MCxMPTAscD0wO3A8eS5sZW5ndGg7cCsrKXt2YXIgQT15W3BdO2lmKEEpe2lmKEErdz54KXtMPXA7YnJlYWt9dys9QX19Zm9yKHZhciBSPVtdLHA9MDtwPG4ubGVuZ3RoO3ArKyl7dmFyIFM9cltwXTt0eXBlb2YgUz09Im51bWJlciImJihTPEx8fFM9PT1MJiZ3Kys8eCkmJlIucHVzaChuW3BdKX1yZXR1cm4gUn1mdW5jdGlvbiBEdShlLHQsbil7ZnVuY3Rpb24gcihvKXtmb3IodmFyIGw9ZS5vZmZzZXRBdChvKSx1PW4uZ2V0Tm9kZUZyb21PZmZzZXQobCwhMCksZj1bXTt1Oyl7c3dpdGNoKHUudHlwZSl7Y2FzZSJzdHJpbmciOmNhc2Uib2JqZWN0IjpjYXNlImFycmF5Ijp2YXIgaD11Lm9mZnNldCsxLGQ9dS5vZmZzZXQrdS5sZW5ndGgtMTtoPGQmJmw+PWgmJmw8PWQmJmYucHVzaChpKGgsZCkpLGYucHVzaChpKHUub2Zmc2V0LHUub2Zmc2V0K3UubGVuZ3RoKSk7YnJlYWs7Y2FzZSJudW1iZXIiOmNhc2UiYm9vbGVhbiI6Y2FzZSJudWxsIjpjYXNlInByb3BlcnR5IjpmLnB1c2goaSh1Lm9mZnNldCx1Lm9mZnNldCt1Lmxlbmd0aCkpO2JyZWFrfWlmKHUudHlwZT09PSJwcm9wZXJ0eSJ8fHUucGFyZW50JiZ1LnBhcmVudC50eXBlPT09ImFycmF5Iil7dmFyIGc9YSh1Lm9mZnNldCt1Lmxlbmd0aCw1KTtnIT09LTEmJmYucHVzaChpKHUub2Zmc2V0LGcpKX11PXUucGFyZW50fWZvcih2YXIgbT12b2lkIDAsdj1mLmxlbmd0aC0xO3Y+PTA7di0tKW09eW4uY3JlYXRlKGZbdl0sbSk7cmV0dXJuIG18fChtPXluLmNyZWF0ZShYLmNyZWF0ZShvLG8pKSksbX1mdW5jdGlvbiBpKG8sbCl7cmV0dXJuIFguY3JlYXRlKGUucG9zaXRpb25BdChvKSxlLnBvc2l0aW9uQXQobCkpfXZhciBzPU50KGUuZ2V0VGV4dCgpLCEwKTtmdW5jdGlvbiBhKG8sbCl7cy5zZXRQb3NpdGlvbihvKTt2YXIgdT1zLnNjYW4oKTtyZXR1cm4gdT09PWw/cy5nZXRUb2tlbk9mZnNldCgpK3MuZ2V0VG9rZW5MZW5ndGgoKTotMX1yZXR1cm4gdC5tYXAocil9ZnVuY3Rpb24gVnUoZSx0KXt2YXIgbj1bXTtyZXR1cm4gdC52aXNpdChmdW5jdGlvbihyKXt2YXIgaTtpZihyLnR5cGU9PT0icHJvcGVydHkiJiZyLmtleU5vZGUudmFsdWU9PT0iJHJlZiImJigoaT1yLnZhbHVlTm9kZSk9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLnR5cGUpPT09InN0cmluZyIpe3ZhciBzPXIudmFsdWVOb2RlLnZhbHVlLGE9VXUodCxzKTtpZihhKXt2YXIgbz1lLnBvc2l0aW9uQXQoYS5vZmZzZXQpO24ucHVzaCh7dGFyZ2V0OiIiLmNvbmNhdChlLnVyaSwiIyIpLmNvbmNhdChvLmxpbmUrMSwiLCIpLmNvbmNhdChvLmNoYXJhY3RlcisxKSxyYW5nZTpPdShlLHIudmFsdWVOb2RlKX0pfX1yZXR1cm4hMH0pLFByb21pc2UucmVzb2x2ZShuKX1mdW5jdGlvbiBPdShlLHQpe3JldHVybiBYLmNyZWF0ZShlLnBvc2l0aW9uQXQodC5vZmZzZXQrMSksZS5wb3NpdGlvbkF0KHQub2Zmc2V0K3QubGVuZ3RoLTEpKX1mdW5jdGlvbiBVdShlLHQpe3ZhciBuPWp1KHQpO3JldHVybiBuP0VyKG4sZS5yb290KTpudWxsfWZ1bmN0aW9uIEVyKGUsdCl7aWYoIXQpcmV0dXJuIG51bGw7aWYoZS5sZW5ndGg9PT0wKXJldHVybiB0O3ZhciBuPWUuc2hpZnQoKTtpZih0JiZ0LnR5cGU9PT0ib2JqZWN0Iil7dmFyIHI9dC5wcm9wZXJ0aWVzLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEua2V5Tm9kZS52YWx1ZT09PW59KTtyZXR1cm4gcj9FcihlLHIudmFsdWVOb2RlKTpudWxsfWVsc2UgaWYodCYmdC50eXBlPT09ImFycmF5IiYmbi5tYXRjaCgvXigwfFsxLTldWzAtOV0qKSQvKSl7dmFyIGk9TnVtYmVyLnBhcnNlSW50KG4pLHM9dC5pdGVtc1tpXTtyZXR1cm4gcz9FcihlLHMpOm51bGx9cmV0dXJuIG51bGx9ZnVuY3Rpb24ganUoZSl7cmV0dXJuIGU9PT0iIyI/W106ZVswXSE9PSIjInx8ZVsxXSE9PSIvIj9udWxsOmUuc3Vic3RyaW5nKDIpLnNwbGl0KC9cLy8pLm1hcChxdSl9ZnVuY3Rpb24gcXUoZSl7cmV0dXJuIGUucmVwbGFjZSgvfjEvZywiLyIpLnJlcGxhY2UoL34wL2csIn4iKX1mdW5jdGlvbiBCdShlKXt2YXIgdD1lLnByb21pc2VDb25zdHJ1Y3Rvcnx8UHJvbWlzZSxuPW5ldyBUdShlLnNjaGVtYVJlcXVlc3RTZXJ2aWNlLGUud29ya3NwYWNlQ29udGV4dCx0KTtuLnNldFNjaGVtYUNvbnRyaWJ1dGlvbnMoQ3IpO3ZhciByPW5ldyBtdShuLGUuY29udHJpYnV0aW9ucyx0LGUuY2xpZW50Q2FwYWJpbGl0aWVzKSxpPW5ldyBwdShuLGUuY29udHJpYnV0aW9ucyx0KSxzPW5ldyBMdShuKSxhPW5ldyB4dShuLHQpO3JldHVybntjb25maWd1cmU6ZnVuY3Rpb24obyl7bi5jbGVhckV4dGVybmFsU2NoZW1hcygpLG8uc2NoZW1hcyYmby5zY2hlbWFzLmZvckVhY2goZnVuY3Rpb24obCl7bi5yZWdpc3RlckV4dGVybmFsU2NoZW1hKGwudXJpLGwuZmlsZU1hdGNoLGwuc2NoZW1hKX0pLGEuY29uZmlndXJlKG8pfSxyZXNldFNjaGVtYTpmdW5jdGlvbihvKXtyZXR1cm4gbi5vblJlc291cmNlQ2hhbmdlKG8pfSxkb1ZhbGlkYXRpb246YS5kb1ZhbGlkYXRpb24uYmluZChhKSxnZXRMYW5ndWFnZVN0YXR1czphLmdldExhbmd1YWdlU3RhdHVzLmJpbmQoYSkscGFyc2VKU09ORG9jdW1lbnQ6ZnVuY3Rpb24obyl7cmV0dXJuIGd1KG8se2NvbGxlY3RDb21tZW50czohMH0pfSxuZXdKU09ORG9jdW1lbnQ6ZnVuY3Rpb24obyxsKXtyZXR1cm4gZHUobyxsKX0sZ2V0TWF0Y2hpbmdTY2hlbWFzOm4uZ2V0TWF0Y2hpbmdTY2hlbWFzLmJpbmQobiksZG9SZXNvbHZlOnIuZG9SZXNvbHZlLmJpbmQociksZG9Db21wbGV0ZTpyLmRvQ29tcGxldGUuYmluZChyKSxmaW5kRG9jdW1lbnRTeW1ib2xzOnMuZmluZERvY3VtZW50U3ltYm9scy5iaW5kKHMpLGZpbmREb2N1bWVudFN5bWJvbHMyOnMuZmluZERvY3VtZW50U3ltYm9sczIuYmluZChzKSxmaW5kRG9jdW1lbnRDb2xvcnM6cy5maW5kRG9jdW1lbnRDb2xvcnMuYmluZChzKSxnZXRDb2xvclByZXNlbnRhdGlvbnM6cy5nZXRDb2xvclByZXNlbnRhdGlvbnMuYmluZChzKSxkb0hvdmVyOmkuZG9Ib3Zlci5iaW5kKGkpLGdldEZvbGRpbmdSYW5nZXM6SXUsZ2V0U2VsZWN0aW9uUmFuZ2VzOkR1LGZpbmREZWZpbml0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSl9LGZpbmRMaW5rczpWdSxmb3JtYXQ6ZnVuY3Rpb24obyxsLHUpe3ZhciBmPXZvaWQgMDtpZihsKXt2YXIgaD1vLm9mZnNldEF0KGwuc3RhcnQpLGQ9by5vZmZzZXRBdChsLmVuZCktaDtmPXtvZmZzZXQ6aCxsZW5ndGg6ZH19dmFyIGc9e3RhYlNpemU6dT91LnRhYlNpemU6NCxpbnNlcnRTcGFjZXM6KHU9PW51bGw/dm9pZCAwOnUuaW5zZXJ0U3BhY2VzKT09PSEwLGluc2VydEZpbmFsTmV3bGluZToodT09bnVsbD92b2lkIDA6dS5pbnNlcnRGaW5hbE5ld2xpbmUpPT09ITAsZW9sOmAKYH07cmV0dXJuIEtsKG8uZ2V0VGV4dCgpLGYsZykubWFwKGZ1bmN0aW9uKG0pe3JldHVybiBNZS5yZXBsYWNlKFguY3JlYXRlKG8ucG9zaXRpb25BdChtLm9mZnNldCksby5wb3NpdGlvbkF0KG0ub2Zmc2V0K20ubGVuZ3RoKSksbS5jb250ZW50KX0pfX19dmFyIHlhO3R5cGVvZiBmZXRjaDwidSImJih5YT1mdW5jdGlvbihlKXtyZXR1cm4gZmV0Y2goZSkudGhlbih0PT50LnRleHQoKSl9KTt2YXIgJHU9Y2xhc3N7Y29uc3RydWN0b3IoZSx0KXt0aGlzLl9jdHg9ZSx0aGlzLl9sYW5ndWFnZVNldHRpbmdzPXQubGFuZ3VhZ2VTZXR0aW5ncyx0aGlzLl9sYW5ndWFnZUlkPXQubGFuZ3VhZ2VJZCx0aGlzLl9sYW5ndWFnZVNlcnZpY2U9QnUoe3dvcmtzcGFjZUNvbnRleHQ6e3Jlc29sdmVSZWxhdGl2ZVBhdGg6KG4scik9Pntjb25zdCBpPXIuc3Vic3RyKDAsci5sYXN0SW5kZXhPZigiLyIpKzEpO3JldHVybiB6dShpLG4pfX0sc2NoZW1hUmVxdWVzdFNlcnZpY2U6dC5lbmFibGVTY2hlbWFSZXF1ZXN0P3lhOnZvaWQgMCxjbGllbnRDYXBhYmlsaXRpZXM6eXIuTEFURVNUfSksdGhpcy5fbGFuZ3VhZ2VTZXJ2aWNlLmNvbmZpZ3VyZSh0aGlzLl9sYW5ndWFnZVNldHRpbmdzKX1hc3luYyBkb1ZhbGlkYXRpb24oZSl7bGV0IHQ9dGhpcy5fZ2V0VGV4dERvY3VtZW50KGUpO2lmKHQpe2xldCBuPXRoaXMuX2xhbmd1YWdlU2VydmljZS5wYXJzZUpTT05Eb2N1bWVudCh0KTtyZXR1cm4gdGhpcy5fbGFuZ3VhZ2VTZXJ2aWNlLmRvVmFsaWRhdGlvbih0LG4sdGhpcy5fbGFuZ3VhZ2VTZXR0aW5ncyl9cmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSl9YXN5bmMgZG9Db21wbGV0ZShlLHQpe2xldCBuPXRoaXMuX2dldFRleHREb2N1bWVudChlKTtpZighbilyZXR1cm4gbnVsbDtsZXQgcj10aGlzLl9sYW5ndWFnZVNlcnZpY2UucGFyc2VKU09ORG9jdW1lbnQobik7cmV0dXJuIHRoaXMuX2xhbmd1YWdlU2VydmljZS5kb0NvbXBsZXRlKG4sdCxyKX1hc3luYyBkb1Jlc29sdmUoZSl7cmV0dXJuIHRoaXMuX2xhbmd1YWdlU2VydmljZS5kb1Jlc29sdmUoZSl9YXN5bmMgZG9Ib3ZlcihlLHQpe2xldCBuPXRoaXMuX2dldFRleHREb2N1bWVudChlKTtpZighbilyZXR1cm4gbnVsbDtsZXQgcj10aGlzLl9sYW5ndWFnZVNlcnZpY2UucGFyc2VKU09ORG9jdW1lbnQobik7cmV0dXJuIHRoaXMuX2xhbmd1YWdlU2VydmljZS5kb0hvdmVyKG4sdCxyKX1hc3luYyBmb3JtYXQoZSx0LG4pe2xldCByPXRoaXMuX2dldFRleHREb2N1bWVudChlKTtpZighcilyZXR1cm5bXTtsZXQgaT10aGlzLl9sYW5ndWFnZVNlcnZpY2UuZm9ybWF0KHIsdCxuKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGkpfWFzeW5jIHJlc2V0U2NoZW1hKGUpe3JldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fbGFuZ3VhZ2VTZXJ2aWNlLnJlc2V0U2NoZW1hKGUpKX1hc3luYyBmaW5kRG9jdW1lbnRTeW1ib2xzKGUpe2xldCB0PXRoaXMuX2dldFRleHREb2N1bWVudChlKTtpZighdClyZXR1cm5bXTtsZXQgbj10aGlzLl9sYW5ndWFnZVNlcnZpY2UucGFyc2VKU09ORG9jdW1lbnQodCkscj10aGlzLl9sYW5ndWFnZVNlcnZpY2UuZmluZERvY3VtZW50U3ltYm9sczIodCxuKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHIpfWFzeW5jIGZpbmREb2N1bWVudENvbG9ycyhlKXtsZXQgdD10aGlzLl9nZXRUZXh0RG9jdW1lbnQoZSk7aWYoIXQpcmV0dXJuW107bGV0IG49dGhpcy5fbGFuZ3VhZ2VTZXJ2aWNlLnBhcnNlSlNPTkRvY3VtZW50KHQpLHI9dGhpcy5fbGFuZ3VhZ2VTZXJ2aWNlLmZpbmREb2N1bWVudENvbG9ycyh0LG4pO3JldHVybiBQcm9taXNlLnJlc29sdmUocil9YXN5bmMgZ2V0Q29sb3JQcmVzZW50YXRpb25zKGUsdCxuKXtsZXQgcj10aGlzLl9nZXRUZXh0RG9jdW1lbnQoZSk7aWYoIXIpcmV0dXJuW107bGV0IGk9dGhpcy5fbGFuZ3VhZ2VTZXJ2aWNlLnBhcnNlSlNPTkRvY3VtZW50KHIpLHM9dGhpcy5fbGFuZ3VhZ2VTZXJ2aWNlLmdldENvbG9yUHJlc2VudGF0aW9ucyhyLGksdCxuKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHMpfWFzeW5jIGdldEZvbGRpbmdSYW5nZXMoZSx0KXtsZXQgbj10aGlzLl9nZXRUZXh0RG9jdW1lbnQoZSk7aWYoIW4pcmV0dXJuW107bGV0IHI9dGhpcy5fbGFuZ3VhZ2VTZXJ2aWNlLmdldEZvbGRpbmdSYW5nZXMobix0KTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHIpfWFzeW5jIGdldFNlbGVjdGlvblJhbmdlcyhlLHQpe2xldCBuPXRoaXMuX2dldFRleHREb2N1bWVudChlKTtpZighbilyZXR1cm5bXTtsZXQgcj10aGlzLl9sYW5ndWFnZVNlcnZpY2UucGFyc2VKU09ORG9jdW1lbnQobiksaT10aGlzLl9sYW5ndWFnZVNlcnZpY2UuZ2V0U2VsZWN0aW9uUmFuZ2VzKG4sdCxyKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGkpfWFzeW5jIHBhcnNlSlNPTkRvY3VtZW50KGUpe2xldCB0PXRoaXMuX2dldFRleHREb2N1bWVudChlKTtpZighdClyZXR1cm4gbnVsbDtsZXQgbj10aGlzLl9sYW5ndWFnZVNlcnZpY2UucGFyc2VKU09ORG9jdW1lbnQodCk7cmV0dXJuIFByb21pc2UucmVzb2x2ZShuKX1hc3luYyBnZXRNYXRjaGluZ1NjaGVtYXMoZSl7bGV0IHQ9dGhpcy5fZ2V0VGV4dERvY3VtZW50KGUpO2lmKCF0KXJldHVybltdO2xldCBuPXRoaXMuX2xhbmd1YWdlU2VydmljZS5wYXJzZUpTT05Eb2N1bWVudCh0KTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMuX2xhbmd1YWdlU2VydmljZS5nZXRNYXRjaGluZ1NjaGVtYXModCxuKSl9X2dldFRleHREb2N1bWVudChlKXtsZXQgdD10aGlzLl9jdHguZ2V0TWlycm9yTW9kZWxzKCk7Zm9yKGxldCBuIG9mIHQpaWYobi51cmkudG9TdHJpbmcoKT09PWUpcmV0dXJuIGJyLmNyZWF0ZShlLHRoaXMuX2xhbmd1YWdlSWQsbi52ZXJzaW9uLG4uZ2V0VmFsdWUoKSk7cmV0dXJuIG51bGx9fSxXdT00NyxScj00NjtmdW5jdGlvbiBIdShlKXtyZXR1cm4gZS5jaGFyQ29kZUF0KDApPT09V3V9ZnVuY3Rpb24genUoZSx0KXtpZihIdSh0KSl7Y29uc3Qgbj1BdC5wYXJzZShlKSxyPXQuc3BsaXQoIi8iKTtyZXR1cm4gbi53aXRoKHtwYXRoOl9hKHIpfSkudG9TdHJpbmcoKX1yZXR1cm4gR3UoZSx0KX1mdW5jdGlvbiBfYShlKXtjb25zdCB0PVtdO2Zvcihjb25zdCByIG9mIGUpci5sZW5ndGg9PT0wfHxyLmxlbmd0aD09PTEmJnIuY2hhckNvZGVBdCgwKT09PVJyfHwoci5sZW5ndGg9PT0yJiZyLmNoYXJDb2RlQXQoMCk9PT1SciYmci5jaGFyQ29kZUF0KDEpPT09UnI/dC5wb3AoKTp0LnB1c2gocikpO2UubGVuZ3RoPjEmJmVbZS5sZW5ndGgtMV0ubGVuZ3RoPT09MCYmdC5wdXNoKCIiKTtsZXQgbj10LmpvaW4oIi8iKTtyZXR1cm4gZVswXS5sZW5ndGg9PT0wJiYobj0iLyIrbiksbn1mdW5jdGlvbiBHdShlLC4uLnQpe2NvbnN0IG49QXQucGFyc2UoZSkscj1uLnBhdGguc3BsaXQoIi8iKTtmb3IobGV0IGkgb2YgdClyLnB1c2goLi4uaS5zcGxpdCgiLyIpKTtyZXR1cm4gbi53aXRoKHtwYXRoOl9hKHIpfSkudG9TdHJpbmcoKX1zZWxmLm9ubWVzc2FnZT0oKT0+e0NzKChlLHQpPT5uZXcgJHUoZSx0KSl9fSkoKTsK",J3t=n=>Uint8Array.from(atob(n),e=>e.charCodeAt(0)),h_e=typeof window<"u"&&window.Blob&&new Blob([J3t(d_e)],{type:"text/javascript;charset=utf-8"});function K3t(n){let e;try{if(e=h_e&&(window.URL||window.webkitURL).createObjectURL(h_e),!e)throw"";const t=new Worker(e,{name:n==null?void 0:n.name});return t.addEventListener("error",()=>{(window.URL||window.webkitURL).revokeObjectURL(e)}),t}catch{return new Worker("data:text/javascript;base64,"+d_e,{name:n==null?void 0:n.name})}finally{e&&(window.URL||window.webkitURL).revokeObjectURL(e)}}var j3t=class{constructor(n,e,t){this._onDidChange=new a_e,this._languageId=n,this.setDiagnosticsOptions(e),this.setModeConfiguration(t)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this._diagnosticsOptions}setDiagnosticsOptions(n){this._diagnosticsOptions=n||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(n){this._modeConfiguration=n||Object.create(null),this._onDidChange.fire(this)}},Q3t={validate:!0,allowComments:!0,schemas:[],enableSchemaRequest:!1,schemaRequest:"warning",schemaValidation:"warning",comments:"error",trailingCommas:"error"},$3t={documentFormattingEdits:!0,documentRangeFormattingEdits:!0,completionItems:!0,hovers:!0,documentSymbols:!0,tokens:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0},g_e=new j3t("json",Q3t,$3t),q3t=()=>m_e().then(n=>n.getWorker());IG.json={jsonDefaults:g_e,getWorker:q3t};function m_e(){return Promise.resolve().then(()=>tHt)}IG.register({id:"json",extensions:[".json",".bowerrc",".jshintrc",".jscsrc",".eslintrc",".babelrc",".har"],aliases:["JSON","json"],mimetypes:["application/json"]}),IG.onLanguage("json",()=>{m_e().then(n=>n.setupMode(g_e))}),self.MonacoEnvironment={getWorker(n,e){return e==="json"?new K3t:new U3t}},Bz.config({monaco:l_e});function eGt(n){const e=n.value?JSON.stringify(n.value,null,4):"{}";return ae(kpe,{height:"300px",theme:"vs-dark",defaultLanguage:"json",value:e,onChange:t=>{if(!t)return n.onChange(null);try{const i=JSON.parse(t);i&&n.onChange(i)}catch{}},onMount:(t,i)=>{try{i.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,schemas:[{uri:"https://json.schemastore.org/schema",fileMatch:["*"],schema:n.schema}]})}catch{}}})}const tGt={path:"URL Path",header:"Header",query:"Query",body:"Body",cookie:"Cookie",formData:"Form Data"};function nGt(n){return{"&:before":{content:JSON.stringify({path:"/",header:"H",query:"?",body:"{}",cookie:"*",formData:"[]"}[n])}}}function f_e({position:n}){return ae("span",{css:Ji({position:"relative",display:"inline-block",textAlign:"center",borderRadius:2,width:"1.2em",height:"1.5em",lineHeight:"1.3em",bottom:"0.1em",padding:1,backgroundColor:Qt.color.text,color:Qt.color.bg,fontSize:"0.8em",marginRight:"0.5em",...nGt(n)},"","")})}function iGt({children:n,required:e}){return ae("div",{css:Ji({...e?{position:"relative",fontWeight:"bold","&:after":{content:'"*"',color:Qt.color.danger,position:"absolute",top:"15%",marginLeft:1}}:{}},"",""),children:n})}var rGt={name:"1jajcdx",styles:"display:flex;justify-content:space-between;margin-bottom:6px"},oGt={name:"1qmr6ab",styles:"overflow:auto"};function vN(n){const{schema:e,fieldLabel:t,fieldDesc:i,schemas:r,children:o}=n;return Rt("div",{style:{fontSize:Qt.fontSize.xs},children:[Rt("div",{children:[Rt("div",{css:rGt,children:[t,i]}),ae("div",{children:o})]}),e&&(GI(e)||vF(e))&&ae(upe,{schema:e,schemas:r,css:oGt})]})}var sGt={name:"1vebhez",styles:"width:100%;display:flex;align-items:center;& [role=input]{flex:1;}& [role=btn]{width:2em;display:flex;justify-content:center;opacity:0.5;cursor:pointer;}& + &{margin-top:6px;}"};function p_e({children:n}){return ae("div",{css:sGt,children:n})}function b_e(n,e){return Kr(n,t=>({label:`${e[t]||" "} ${t}`,value:t}))}function C_e(n){return n&&(n.type==="file"||n.type==="string"&&n.format==="binary")}function aGt(n){return oh(fg(n.name),"time")||oh(fg(n.name),"date")||oh(n.description,"时间")||oh(n.description,"日期")}var lGt={name:"1d3w5wq",styles:"width:100%"};function c$({schema:n,...e}){const t=vF(n),i=RI(n)+P9(n)+O9(n);if(n.enum){const r=Ez(n);return ae(Yy,{...e,allowClear:!0,placeholder:i,options:b_e(n.enum,r)})}return n.type==="boolean"?ae(Yy,{...e,allowClear:!0,placeholder:i,options:[{label:"是",value:!0},{label:"否",value:!1}]}):n.type==="integer"||n.type==="number"?ae(rle,{...e,css:lGt,placeholder:i,min:0}):C_e(n)||t&&C_e(n.items)?ae(sO,{...e,multiple:t,maxCount:t?void 0:1,fileList:t?e.value:e.value?[e.value]:[],onChange:r=>{e.onChange(t?r.fileList:r.file)},beforeUpload:()=>!1,children:Rt(so,{css:[$B(),"&:hover img{filter:invert(30%) sepia(85%) saturate(2525%) hue-rotate(208deg) brightness(104%) contrast(101%);}",""],children:[ae("img",{src:ez,style:{marginRight:6},alt:"upload"}),i||"Upload"]})}):ae(th,{...e,allowClear:!0,onChange:r=>e.onChange(r.target.value),placeholder:i})}function uGt({schema:n,...e}){const[t,i]=I.useState(),r=()=>{e.onChange(t),i(void 0)};return Rt(ah,{children:[ae("span",{role:"input",onKeyDown:o=>{o.key==="Enter"&&(o.preventDefault(),o.stopPropagation(),r())},children:ae(c$,{...e,schema:n,value:t,onChange:o=>{i(o)}})}),ae("a",{role:"btn",onClick:r,children:ae("img",{src:Xz,style:{padding:"6px 4px"}})})]})}function cGt({schema:n,...e}){const t=RI(n)+P9(n)+O9(n),i=Ez(n);return ae(Yy,{...e,mode:"multiple",placeholder:t,options:b_e(n.enum,i),allowClear:!0})}function dGt({schema:n,isUnix:e,...t}){const i=RI(n)+P9(n)+O9(n),r=(o,s)=>{t.onChange(e?o==null?void 0:o.unix():s)};return ae(mle,{allowClear:!0,style:{width:"100%"},placeholder:i,showTime:{showNow:!0,defaultValue:Ao("00:00:00","HH:mm:ss")},value:t.value?e?Ao.unix(t.value):Ao(t.value):void 0,onChange:r})}const d$=({schemas:n,parameter:e,...t})=>{var l;const i=Fg(e.schema||e,n),r=vF(i),o={value:r?t.value?[].concat(t.value):[]:t.value,onChange:t.onChange?t.onChange:()=>{}},s=Rt(iGt,{required:e.required,children:[ae(f_e,{position:e.in}),e.name]}),a=ae(lpe,{desc:e.description||i.description||""});if(GI(i)||r&&GI(i.items))return ae(vN,{schema:i,schemas:n,fieldLabel:s,fieldDesc:a,children:ae(eGt,{...o,schema:i})});if(r)return(l=i.items)!=null&&l.enum?ae(vN,{schema:i,schemas:n,fieldLabel:s,fieldDesc:a,children:ae(cGt,{...o,schema:i.items})}):Rt(vN,{schema:i,schemas:n,fieldLabel:s,fieldDesc:a,children:[Kr(o.value,(c,d)=>Rt(p_e,{children:[ae("span",{role:"input",children:ae(c$,{...o,schema:i.items,value:c,onChange:h=>{o.onChange(Kr(o.value,(g,m)=>d===m?h:g))}})}),ae("a",{role:"btn",onClick:()=>{o.onChange($p(o.value,(h,g)=>d!==g))},children:ae("img",{src:Vz,style:{padding:"6px 4px"}})})]},d)),ae(p_e,{children:ae(uGt,{schema:i.items,value:o.value,onChange:c=>{o.onChange(o.value.concat(c))}},"input")})]});if(aGt(e)){const u=(e==null?void 0:e.schema).type;return ae(vN,{schema:i,schemas:n,fieldLabel:s,fieldDesc:a,children:ae(dGt,{...o,schema:i,isUnix:u==="integer"||u==="number"})})}return ae(vN,{schema:i,schemas:n,fieldLabel:s,fieldDesc:a,children:ae(c$,{...o,schema:i})})};function hGt(n){const{url:e="",method:t=mc.post,headers:i,data:r,params:o}=n;let s="",a="",l="",u="",c="";if(e.startsWith("http")?s=e:s=new URL(e,globalThis.location.href).href,Xs(o)||(s=`${s}${ub(o)}`),a=`curl -X ${t.toUpperCase()} '${s}' \\ +`,l=Kr(i,(d,h)=>` -H '${h}: ${d}'`).join(` \\ +`),l&&(l=`${l} \\ +`),r instanceof URLSearchParams)u=` -d ${r.toString()} \\ +`;else if(r instanceof File)u=` --data-binary @${r.name} \\ +`;else if(r instanceof FormData)c=sh(Array.from(r),(d,[h,g])=>{if(g instanceof File)return[...d,` -F '${h}=@${g.name}' \\ +`];const m=g.match(/([^,],)/gm);if(m){const f=Kr(m,b=>` -F '${h}[]=${b}' \\ +`);return[...d,...f]}return[...d,` -F '${h}=${g}' \\ +`]},[]).join(` \\ +`);else if(r instanceof Object)try{u=` -d '${JSON.stringify(r)}' \\ +`}catch{}return`${a}${l}${u}${c} --compressed`}var gGt=[{name:"Aegean Airlines",iataCode:"A3"},{name:"Aeroflot",iataCode:"SU"},{name:"Aerolineas Argentinas",iataCode:"AR"},{name:"Aeromexico",iataCode:"AM"},{name:"Air Algerie",iataCode:"AH"},{name:"Air Arabia",iataCode:"G9"},{name:"Air Canada",iataCode:"AC"},{name:"Air China",iataCode:"CA"},{name:"Air Europa",iataCode:"UX"},{name:"Air France-KLM",iataCode:"AF"},{name:"Air India",iataCode:"AI"},{name:"Air Mauritius",iataCode:"MK"},{name:"Air New Zealand",iataCode:"NZ"},{name:"Air Niugini",iataCode:"PX"},{name:"Air Tahiti",iataCode:"VT"},{name:"Air Tahiti Nui",iataCode:"TN"},{name:"Air Transat",iataCode:"TS"},{name:"AirAsia X",iataCode:"D7"},{name:"AirAsia",iataCode:"AK"},{name:"Aircalin",iataCode:"SB"},{name:"Alaska Airlines",iataCode:"AS"},{name:"Alitalia",iataCode:"AZ"},{name:"All Nippon Airways",iataCode:"NH"},{name:"Allegiant Air",iataCode:"G4"},{name:"American Airlines",iataCode:"AA"},{name:"Asiana Airlines",iataCode:"OZ"},{name:"Avianca",iataCode:"AV"},{name:"Azul Linhas Aereas Brasileiras",iataCode:"AD"},{name:"Azur Air",iataCode:"ZF"},{name:"Beijing Capital Airlines",iataCode:"JD"},{name:"Boliviana de Aviacion",iataCode:"OB"},{name:"British Airways",iataCode:"BA"},{name:"Cathay Pacific",iataCode:"CX"},{name:"Cebu Pacific Air",iataCode:"5J"},{name:"China Airlines",iataCode:"CI"},{name:"China Eastern Airlines",iataCode:"MU"},{name:"China Southern Airlines",iataCode:"CZ"},{name:"Condor",iataCode:"DE"},{name:"Copa Airlines",iataCode:"CM"},{name:"Delta Air Lines",iataCode:"DL"},{name:"Easyfly",iataCode:"VE"},{name:"EasyJet",iataCode:"U2"},{name:"EcoJet",iataCode:"8J"},{name:"Egyptair",iataCode:"MS"},{name:"El Al",iataCode:"LY"},{name:"Emirates Airlines",iataCode:"EK"},{name:"Ethiopian Airlines",iataCode:"ET"},{name:"Etihad Airways",iataCode:"EY"},{name:"EVA Air",iataCode:"BR"},{name:"Fiji Airways",iataCode:"FJ"},{name:"Finnair",iataCode:"AY"},{name:"Flybondi",iataCode:"FO"},{name:"Flydubai",iataCode:"FZ"},{name:"FlySafair",iataCode:"FA"},{name:"Frontier Airlines",iataCode:"F9"},{name:"Garuda Indonesia",iataCode:"GA"},{name:"Go First",iataCode:"G8"},{name:"Gol Linhas Aereas Inteligentes",iataCode:"G3"},{name:"Hainan Airlines",iataCode:"HU"},{name:"Hawaiian Airlines",iataCode:"HA"},{name:"IndiGo Airlines",iataCode:"6E"},{name:"Japan Airlines",iataCode:"JL"},{name:"Jeju Air",iataCode:"7C"},{name:"Jet2",iataCode:"LS"},{name:"JetBlue Airways",iataCode:"B6"},{name:"JetSMART",iataCode:"JA"},{name:"Juneyao Airlines",iataCode:"HO"},{name:"Kenya Airways",iataCode:"KQ"},{name:"Korean Air",iataCode:"KE"},{name:"Kulula.com",iataCode:"MN"},{name:"LATAM Airlines",iataCode:"LA"},{name:"Lion Air",iataCode:"JT"},{name:"LOT Polish Airlines",iataCode:"LO"},{name:"Lufthansa",iataCode:"LH"},{name:"Libyan Airlines",iataCode:"LN"},{name:"Linea Aerea Amaszonas",iataCode:"Z8"},{name:"Malaysia Airlines",iataCode:"MH"},{name:"Nordwind Airlines",iataCode:"N4"},{name:"Norwegian Air Shuttle",iataCode:"DY"},{name:"Oman Air",iataCode:"WY"},{name:"Pakistan International Airlines",iataCode:"PK"},{name:"Pegasus Airlines",iataCode:"PC"},{name:"Philippine Airlines",iataCode:"PR"},{name:"Qantas Group",iataCode:"QF"},{name:"Qatar Airways",iataCode:"QR"},{name:"Republic Airways",iataCode:"YX"},{name:"Royal Air Maroc",iataCode:"AT"},{name:"Ryanair",iataCode:"FR"},{name:"S7 Airlines",iataCode:"S7"},{name:"SAS",iataCode:"SK"},{name:"Satena",iataCode:"9R"},{name:"Saudia",iataCode:"SV"},{name:"Shandong Airlines",iataCode:"SC"},{name:"Sichuan Airlines",iataCode:"3U"},{name:"Singapore Airlines",iataCode:"SQ"},{name:"Sky Airline",iataCode:"H2"},{name:"SkyWest Airlines",iataCode:"OO"},{name:"South African Airways",iataCode:"SA"},{name:"Southwest Airlines",iataCode:"WN"},{name:"SpiceJet",iataCode:"SG"},{name:"Spirit Airlines",iataCode:"NK"},{name:"Spring Airlines",iataCode:"9S"},{name:"SriLankan Airlines",iataCode:"UL"},{name:"Star Peru",iataCode:"2I"},{name:"Sun Country Airlines",iataCode:"SY"},{name:"SunExpress",iataCode:"XQ"},{name:"TAP Air Portugal",iataCode:"TP"},{name:"Thai AirAsia",iataCode:"FD"},{name:"Thai Airways",iataCode:"TG"},{name:"TUI Airways",iataCode:"BY"},{name:"Tunisair",iataCode:"TU"},{name:"Turkish Airlines",iataCode:"TK"},{name:"Ukraine International",iataCode:"PS"},{name:"United Airlines",iataCode:"UA"},{name:"Ural Airlines",iataCode:"U6"},{name:"VietJet Air",iataCode:"VJ"},{name:"Vietnam Airlines",iataCode:"VN"},{name:"Virgin Atlantic Airways",iataCode:"VS"},{name:"Virgin Australia",iataCode:"VA"},{name:"VivaAerobus",iataCode:"VB"},{name:"VOEPASS Linhas Aereas",iataCode:"2Z"},{name:"Volaris",iataCode:"Y4"},{name:"WestJet",iataCode:"WS"},{name:"Wingo",iataCode:"P5"},{name:"Wizz Air",iataCode:"W6"}],mGt=[{name:"Aerospatiale/BAC Concorde",iataTypeCode:"SSC"},{name:"Airbus A300",iataTypeCode:"AB3"},{name:"Airbus A310",iataTypeCode:"310"},{name:"Airbus A310-200",iataTypeCode:"312"},{name:"Airbus A310-300",iataTypeCode:"313"},{name:"Airbus A318",iataTypeCode:"318"},{name:"Airbus A319",iataTypeCode:"319"},{name:"Airbus A319neo",iataTypeCode:"31N"},{name:"Airbus A320",iataTypeCode:"320"},{name:"Airbus A320neo",iataTypeCode:"32N"},{name:"Airbus A321",iataTypeCode:"321"},{name:"Airbus A321neo",iataTypeCode:"32Q"},{name:"Airbus A330",iataTypeCode:"330"},{name:"Airbus A330-200",iataTypeCode:"332"},{name:"Airbus A330-300",iataTypeCode:"333"},{name:"Airbus A330-800neo",iataTypeCode:"338"},{name:"Airbus A330-900neo",iataTypeCode:"339"},{name:"Airbus A340",iataTypeCode:"340"},{name:"Airbus A340-200",iataTypeCode:"342"},{name:"Airbus A340-300",iataTypeCode:"343"},{name:"Airbus A340-500",iataTypeCode:"345"},{name:"Airbus A340-600",iataTypeCode:"346"},{name:"Airbus A350",iataTypeCode:"350"},{name:"Airbus A350-900",iataTypeCode:"359"},{name:"Airbus A350-1000",iataTypeCode:"351"},{name:"Airbus A380",iataTypeCode:"380"},{name:"Airbus A380-800",iataTypeCode:"388"},{name:"Antonov An-12",iataTypeCode:"ANF"},{name:"Antonov An-24",iataTypeCode:"AN4"},{name:"Antonov An-26",iataTypeCode:"A26"},{name:"Antonov An-28",iataTypeCode:"A28"},{name:"Antonov An-30",iataTypeCode:"A30"},{name:"Antonov An-32",iataTypeCode:"A32"},{name:"Antonov An-72",iataTypeCode:"AN7"},{name:"Antonov An-124 Ruslan",iataTypeCode:"A4F"},{name:"Antonov An-140",iataTypeCode:"A40"},{name:"Antonov An-148",iataTypeCode:"A81"},{name:"Antonov An-158",iataTypeCode:"A58"},{name:"Antonov An-225 Mriya",iataTypeCode:"A5F"},{name:"Boeing 707",iataTypeCode:"703"},{name:"Boeing 717",iataTypeCode:"717"},{name:"Boeing 720B",iataTypeCode:"B72"},{name:"Boeing 727",iataTypeCode:"727"},{name:"Boeing 727-100",iataTypeCode:"721"},{name:"Boeing 727-200",iataTypeCode:"722"},{name:"Boeing 737 MAX 7",iataTypeCode:"7M7"},{name:"Boeing 737 MAX 8",iataTypeCode:"7M8"},{name:"Boeing 737 MAX 9",iataTypeCode:"7M9"},{name:"Boeing 737 MAX 10",iataTypeCode:"7MJ"},{name:"Boeing 737",iataTypeCode:"737"},{name:"Boeing 737-100",iataTypeCode:"731"},{name:"Boeing 737-200",iataTypeCode:"732"},{name:"Boeing 737-300",iataTypeCode:"733"},{name:"Boeing 737-400",iataTypeCode:"734"},{name:"Boeing 737-500",iataTypeCode:"735"},{name:"Boeing 737-600",iataTypeCode:"736"},{name:"Boeing 737-700",iataTypeCode:"73G"},{name:"Boeing 737-800",iataTypeCode:"738"},{name:"Boeing 737-900",iataTypeCode:"739"},{name:"Boeing 747",iataTypeCode:"747"},{name:"Boeing 747-100",iataTypeCode:"741"},{name:"Boeing 747-200",iataTypeCode:"742"},{name:"Boeing 747-300",iataTypeCode:"743"},{name:"Boeing 747-400",iataTypeCode:"744"},{name:"Boeing 747-400D",iataTypeCode:"74J"},{name:"Boeing 747-8",iataTypeCode:"748"},{name:"Boeing 747SP",iataTypeCode:"74L"},{name:"Boeing 747SR",iataTypeCode:"74R"},{name:"Boeing 757",iataTypeCode:"757"},{name:"Boeing 757-200",iataTypeCode:"752"},{name:"Boeing 757-300",iataTypeCode:"753"},{name:"Boeing 767",iataTypeCode:"767"},{name:"Boeing 767-200",iataTypeCode:"762"},{name:"Boeing 767-300",iataTypeCode:"763"},{name:"Boeing 767-400",iataTypeCode:"764"},{name:"Boeing 777",iataTypeCode:"777"},{name:"Boeing 777-200",iataTypeCode:"772"},{name:"Boeing 777-200LR",iataTypeCode:"77L"},{name:"Boeing 777-300",iataTypeCode:"773"},{name:"Boeing 777-300ER",iataTypeCode:"77W"},{name:"Boeing 787",iataTypeCode:"787"},{name:"Boeing 787-8",iataTypeCode:"788"},{name:"Boeing 787-9",iataTypeCode:"789"},{name:"Boeing 787-10",iataTypeCode:"781"},{name:"Canadair Challenger",iataTypeCode:"CCJ"},{name:"Canadair CL-44",iataTypeCode:"CL4"},{name:"Canadair Regional Jet 100",iataTypeCode:"CR1"},{name:"Canadair Regional Jet 200",iataTypeCode:"CR2"},{name:"Canadair Regional Jet 700",iataTypeCode:"CR7"},{name:"Canadair Regional Jet 705",iataTypeCode:"CRA"},{name:"Canadair Regional Jet 900",iataTypeCode:"CR9"},{name:"Canadair Regional Jet 1000",iataTypeCode:"CRK"},{name:"De Havilland Canada DHC-2 Beaver",iataTypeCode:"DHP"},{name:"De Havilland Canada DHC-2 Turbo-Beaver",iataTypeCode:"DHR"},{name:"De Havilland Canada DHC-3 Otter",iataTypeCode:"DHL"},{name:"De Havilland Canada DHC-4 Caribou",iataTypeCode:"DHC"},{name:"De Havilland Canada DHC-6 Twin Otter",iataTypeCode:"DHT"},{name:"De Havilland Canada DHC-7 Dash 7",iataTypeCode:"DH7"},{name:"De Havilland Canada DHC-8-100 Dash 8 / 8Q",iataTypeCode:"DH1"},{name:"De Havilland Canada DHC-8-200 Dash 8 / 8Q",iataTypeCode:"DH2"},{name:"De Havilland Canada DHC-8-300 Dash 8 / 8Q",iataTypeCode:"DH3"},{name:"De Havilland Canada DHC-8-400 Dash 8Q",iataTypeCode:"DH4"},{name:"De Havilland DH.104 Dove",iataTypeCode:"DHD"},{name:"De Havilland DH.114 Heron",iataTypeCode:"DHH"},{name:"Douglas DC-3",iataTypeCode:"D3F"},{name:"Douglas DC-6",iataTypeCode:"D6F"},{name:"Douglas DC-8-50",iataTypeCode:"D8T"},{name:"Douglas DC-8-62",iataTypeCode:"D8L"},{name:"Douglas DC-8-72",iataTypeCode:"D8Q"},{name:"Douglas DC-9-10",iataTypeCode:"D91"},{name:"Douglas DC-9-20",iataTypeCode:"D92"},{name:"Douglas DC-9-30",iataTypeCode:"D93"},{name:"Douglas DC-9-40",iataTypeCode:"D94"},{name:"Douglas DC-9-50",iataTypeCode:"D95"},{name:"Douglas DC-10",iataTypeCode:"D10"},{name:"Douglas DC-10-10",iataTypeCode:"D1X"},{name:"Douglas DC-10-30",iataTypeCode:"D1Y"},{name:"Embraer 170",iataTypeCode:"E70"},{name:"Embraer 175",iataTypeCode:"E75"},{name:"Embraer 190",iataTypeCode:"E90"},{name:"Embraer 195",iataTypeCode:"E95"},{name:"Embraer E190-E2",iataTypeCode:"290"},{name:"Embraer E195-E2",iataTypeCode:"295"},{name:"Embraer EMB.110 Bandeirante",iataTypeCode:"EMB"},{name:"Embraer EMB.120 Brasilia",iataTypeCode:"EM2"},{name:"Embraer Legacy 600",iataTypeCode:"ER3"},{name:"Embraer Phenom 100",iataTypeCode:"EP1"},{name:"Embraer Phenom 300",iataTypeCode:"EP3"},{name:"Embraer RJ135",iataTypeCode:"ER3"},{name:"Embraer RJ140",iataTypeCode:"ERD"},{name:"Embraer RJ145 Amazon",iataTypeCode:"ER4"},{name:"Ilyushin IL18",iataTypeCode:"IL8"},{name:"Ilyushin IL62",iataTypeCode:"IL6"},{name:"Ilyushin IL76",iataTypeCode:"IL7"},{name:"Ilyushin IL86",iataTypeCode:"ILW"},{name:"Ilyushin IL96-300",iataTypeCode:"I93"},{name:"Ilyushin IL114",iataTypeCode:"I14"},{name:"Lockheed L-182 / 282 / 382 (L-100) Hercules",iataTypeCode:"LOH"},{name:"Lockheed L-188 Electra",iataTypeCode:"LOE"},{name:"Lockheed L-1011 Tristar",iataTypeCode:"L10"},{name:"Lockheed L-1049 Super Constellation",iataTypeCode:"L49"},{name:"McDonnell Douglas MD11",iataTypeCode:"M11"},{name:"McDonnell Douglas MD80",iataTypeCode:"M80"},{name:"McDonnell Douglas MD81",iataTypeCode:"M81"},{name:"McDonnell Douglas MD82",iataTypeCode:"M82"},{name:"McDonnell Douglas MD83",iataTypeCode:"M83"},{name:"McDonnell Douglas MD87",iataTypeCode:"M87"},{name:"McDonnell Douglas MD88",iataTypeCode:"M88"},{name:"McDonnell Douglas MD90",iataTypeCode:"M90"},{name:"Sukhoi Superjet 100-95",iataTypeCode:"SU9"},{name:"Tupolev Tu-134",iataTypeCode:"TU3"},{name:"Tupolev Tu-154",iataTypeCode:"TU5"},{name:"Tupolev Tu-204",iataTypeCode:"T20"},{name:"Yakovlev Yak-40",iataTypeCode:"YK4"},{name:"Yakovlev Yak-42",iataTypeCode:"YK2"}],fGt=[{name:"Adelaide International Airport",iataCode:"ADL"},{name:"Adolfo Suarez Madrid-Barajas Airport",iataCode:"MAD"},{name:"Aeroparque Jorge Newbery Airport",iataCode:"AEP"},{name:"Afonso Pena International Airport",iataCode:"CWB"},{name:"Alfonso Bonilla Aragon International Airport",iataCode:"CLO"},{name:"Amsterdam Airport Schiphol",iataCode:"AMS"},{name:"Arturo Merino Benitez International Airport",iataCode:"SCL"},{name:"Auckland International Airport",iataCode:"AKL"},{name:"Beijing Capital International Airport",iataCode:"PEK"},{name:"Belem Val de Cans International Airport",iataCode:"BEL"},{name:"Belo Horizonte Tancredo Neves International Airport",iataCode:"CNF"},{name:"Berlin-Tegel Airport",iataCode:"TXL"},{name:"Bole International Airport",iataCode:"ADD"},{name:"Brasilia-Presidente Juscelino Kubitschek International Airport",iataCode:"BSB"},{name:"Brisbane International Airport",iataCode:"BNE"},{name:"Brussels Airport",iataCode:"BRU"},{name:"Cairns Airport",iataCode:"CNS"},{name:"Cairo International Airport",iataCode:"CAI"},{name:"Canberra Airport",iataCode:"CBR"},{name:"Capetown International Airport",iataCode:"CPT"},{name:"Charles de Gaulle International Airport",iataCode:"CDG"},{name:"Charlotte Douglas International Airport",iataCode:"CLT"},{name:"Chengdu Shuangliu International Airport",iataCode:"CTU"},{name:"Chhatrapati Shivaji International Airport",iataCode:"BOM"},{name:"Chicago O'Hare International Airport",iataCode:"ORD"},{name:"Chongqing Jiangbei International Airport",iataCode:"CKG"},{name:"Christchurch International Airport",iataCode:"CHC"},{name:"Copenhagen Kastrup Airport",iataCode:"CPH"},{name:"Dallas Fort Worth International Airport",iataCode:"DFW"},{name:"Daniel K. Inouye International Airport",iataCode:"HNL"},{name:"Denver International Airport",iataCode:"DEN"},{name:"Don Mueang International Airport",iataCode:"DMK"},{name:"Dubai International Airport",iataCode:"DXB"},{name:"Dublin Airport",iataCode:"DUB"},{name:"Dusseldorf Airport",iataCode:"DUS"},{name:"El Dorado International Airport",iataCode:"BOG"},{name:"Eleftherios Venizelos International Airport",iataCode:"ATH"},{name:"Faa'a International Airport",iataCode:"PPT"},{name:"Fort Lauderdale Hollywood International Airport",iataCode:"FLL"},{name:"Fortaleza Pinto Martins International Airport",iataCode:"FOR"},{name:"Frankfurt am Main Airport",iataCode:"FRA"},{name:"George Bush Intercontinental Houston Airport",iataCode:"IAH"},{name:"Gold Coast Airport",iataCode:"OOL"},{name:"Guarulhos - Governador Andre Franco Montoro International Airport",iataCode:"GRU"},{name:"Hartsfield-Jackson Atlanta International Airport",iataCode:"ATL"},{name:"Helsinki Vantaa Airport",iataCode:"HEL"},{name:"Hobart International Airport",iataCode:"HBA"},{name:"Hong Kong International Airport",iataCode:"HKG"},{name:"Houari Boumediene Airport",iataCode:"ALG"},{name:"Hurgada International Airport",iataCode:"HRG"},{name:"Incheon International Airport",iataCode:"ICN"},{name:"Indira Gandhi International Airport",iataCode:"DEL"},{name:"Istanbul Airport",iataCode:"IST"},{name:"Jacksons International Airport",iataCode:"POM"},{name:"Jeju International Airport",iataCode:"CJU"},{name:"John F Kennedy International Airport",iataCode:"JFK"},{name:"Jorge Chavez International Airport",iataCode:"LIM"},{name:"Jose Maria Cordova International Airport",iataCode:"MDE"},{name:"Josep Tarradellas Barcelona-El Prat Airport",iataCode:"BCN"},{name:"Kahului Airport",iataCode:"OGG"},{name:"King Abdulaziz International Airport",iataCode:"JED"},{name:"Kuala Lumpur International Airport",iataCode:"KUL"},{name:"Kunming Changshui International Airport",iataCode:"KMG"},{name:"La Tontouta International Airport",iataCode:"NOU"},{name:"Leonardo da Vinci-Fiumicino Airport",iataCode:"FCO"},{name:"London Heathrow Airport",iataCode:"LHR"},{name:"Los Angeles International Airport",iataCode:"LAX"},{name:"McCarran International Airport",iataCode:"LAS"},{name:"Melbourne International Airport",iataCode:"MEL"},{name:"Mexico City International Airport",iataCode:"MEX"},{name:"Miami International Airport",iataCode:"MIA"},{name:"Ministro Pistarini International Airport",iataCode:"EZE"},{name:"Minneapolis-St Paul International/Wold-Chamberlain Airport",iataCode:"MSP"},{name:"Mohammed V International Airport",iataCode:"CMN"},{name:"Moscow Domodedovo Airport",iataCode:"DME"},{name:"Munich Airport",iataCode:"MUC"},{name:"Murtala Muhammed International Airport",iataCode:"LOS"},{name:"Nadi International Airport",iataCode:"NAN"},{name:"Nairobi Jomo Kenyatta International Airport",iataCode:"NBO"},{name:"Narita International Airport",iataCode:"NRT"},{name:"Newark Liberty International Airport",iataCode:"EWR"},{name:"Ninoy Aquino International Airport",iataCode:"MNL"},{name:"Noumea Magenta Airport",iataCode:"GEA"},{name:"O. R. Tambo International Airport",iataCode:"JNB"},{name:"Orlando International Airport",iataCode:"MCO"},{name:"Oslo Lufthavn",iataCode:"OSL"},{name:"Perth Airport",iataCode:"PER"},{name:"Phoenix Sky Harbor International Airport",iataCode:"PHX"},{name:"Recife Guararapes-Gilberto Freyre International Airport",iataCode:"REC"},{name:"Rio de Janeiro Galeao International Airport",iataCode:"GIG"},{name:"Salgado Filho International Airport",iataCode:"POA"},{name:"Salvador Deputado Luis Eduardo Magalhaes International Airport",iataCode:"SSA"},{name:"San Francisco International Airport",iataCode:"SFO"},{name:"Santos Dumont Airport",iataCode:"SDU"},{name:"Sao Paulo-Congonhas Airport",iataCode:"CGH"},{name:"Seattle Tacoma International Airport",iataCode:"SEA"},{name:"Shanghai Hongqiao International Airport",iataCode:"SHA"},{name:"Shanghai Pudong International Airport",iataCode:"PVG"},{name:"Shenzhen Bao'an International Airport",iataCode:"SZX"},{name:"Sheremetyevo International Airport",iataCode:"SVO"},{name:"Singapore Changi Airport",iataCode:"SIN"},{name:"Soekarno-Hatta International Airport",iataCode:"CGK"},{name:'Stockholm-Arlanda Airport"',iataCode:"ARN"},{name:"Suvarnabhumi Airport",iataCode:"BKK"},{name:"Sydney Kingsford Smith International Airport",iataCode:"SYD"},{name:"Taiwan Taoyuan International Airport",iataCode:"TPE"},{name:"Tan Son Nhat International Airport",iataCode:"SGN"},{name:"Tokyo Haneda International Airport",iataCode:"HND"},{name:"Toronto Pearson International Airport",iataCode:"YYZ"},{name:"Tunis Carthage International Airport",iataCode:"TUN"},{name:"Vancouver International Airport",iataCode:"YVR"},{name:"Vienna International Airport",iataCode:"VIE"},{name:"Viracopos International Airport",iataCode:"VCP"},{name:"Vnukovo International Airport",iataCode:"VKO"},{name:"Wellington International Airport",iataCode:"WLG"},{name:"Xi'an Xianyang International Airport",iataCode:"XIY"},{name:"Zhukovsky International Airport",iataCode:"ZIA"},{name:"Zurich Airport",iataCode:"ZRH"}],pGt={airline:gGt,airplane:mGt,airport:fGt},bGt=pGt,CGt=["Giant panda","Spectacled bear","Sun bear","Sloth bear","American black bear","Asian black bear","Brown bear","Polar bear"],vGt=["Red-throated Loon","Arctic Loon","Pacific Loon","Common Loon","Yellow-billed Loon","Least Grebe","Pied-billed Grebe","Horned Grebe","Red-necked Grebe","Eared Grebe","Western Grebe","Clark's Grebe","Yellow-nosed Albatross","Shy Albatross","Black-browed Albatross","Wandering Albatross","Laysan Albatross","Black-footed Albatross","Short-tailed Albatross","Northern Fulmar","Herald Petrel","Murphy's Petrel","Mottled Petrel","Black-capped Petrel","Cook's Petrel","Stejneger's Petrel","White-chinned Petrel","Streaked Shearwater","Cory's Shearwater","Pink-footed Shearwater","Flesh-footed Shearwater","Greater Shearwater","Wedge-tailed Shearwater","Buller's Shearwater","Sooty Shearwater","Short-tailed Shearwater","Manx Shearwater","Black-vented Shearwater","Audubon's Shearwater","Little Shearwater","Wilson's Storm-Petrel","White-faced Storm-Petrel","European Storm-Petrel","Fork-tailed Storm-Petrel","Leach's Storm-Petrel","Ashy Storm-Petrel","Band-rumped Storm-Petrel","Wedge-rumped Storm-Petrel","Black Storm-Petrel","Least Storm-Petrel","White-tailed Tropicbird","Red-billed Tropicbird","Red-tailed Tropicbird","Masked Booby","Blue-footed Booby","Brown Booby","Red-footed Booby","Northern Gannet","American White Pelican","Brown Pelican","Brandt's Cormorant","Neotropic Cormorant","Double-crested Cormorant","Great Cormorant","Red-faced Cormorant","Pelagic Cormorant","Anhinga","Magnificent Frigatebird","Great Frigatebird","Lesser Frigatebird","American Bittern","Yellow Bittern","Least Bittern","Great Blue Heron","Great Egret","Chinese Egret","Little Egret","Western Reef-Heron","Snowy Egret","Little Blue Heron","Tricolored Heron","Reddish Egret","Cattle Egret","Green Heron","Black-crowned Night-Heron","Yellow-crowned Night-Heron","White Ibis","Scarlet Ibis","Glossy Ibis","White-faced Ibis","Roseate Spoonbill","Jabiru","Wood Stork","Black Vulture","Turkey Vulture","California Condor","Greater Flamingo","Black-bellied Whistling-Duck","Fulvous Whistling-Duck","Bean Goose","Pink-footed Goose","Greater White-fronted Goose","Lesser White-fronted Goose","Emperor Goose","Snow Goose","Ross's Goose","Canada Goose","Brant","Barnacle Goose","Mute Swan","Trumpeter Swan","Tundra Swan","Whooper Swan","Muscovy Duck","Wood Duck","Gadwall","Falcated Duck","Eurasian Wigeon","American Wigeon","American Black Duck","Mallard","Mottled Duck","Spot-billed Duck","Blue-winged Teal","Cinnamon Teal","Northern Shoveler","White-cheeked Pintail","Northern Pintail","Garganey","Baikal Teal","Green-winged Teal","Canvasback","Redhead","Common Pochard","Ring-necked Duck","Tufted Duck","Greater Scaup","Lesser Scaup","Steller's Eider","Spectacled Eider","King Eider","Common Eider","Harlequin Duck","Labrador Duck","Surf Scoter","White-winged Scoter","Black Scoter","Oldsquaw","Bufflehead","Common Goldeneye","Barrow's Goldeneye","Smew","Hooded Merganser","Common Merganser","Red-breasted Merganser","Masked Duck","Ruddy Duck","Osprey","Hook-billed Kite","Swallow-tailed Kite","White-tailed Kite","Snail Kite","Mississippi Kite","Bald Eagle","White-tailed Eagle","Steller's Sea-Eagle","Northern Harrier","Sharp-shinned Hawk","Cooper's Hawk","Northern Goshawk","Crane Hawk","Gray Hawk","Common Black-Hawk","Harris's Hawk","Roadside Hawk","Red-shouldered Hawk","Broad-winged Hawk","Short-tailed Hawk","Swainson's Hawk","White-tailed Hawk","Zone-tailed Hawk","Red-tailed Hawk","Ferruginous Hawk","Rough-legged Hawk","Golden Eagle","Collared Forest-Falcon","Crested Caracara","Eurasian Kestrel","American Kestrel","Merlin","Eurasian Hobby","Aplomado Falcon","Gyrfalcon","Peregrine Falcon","Prairie Falcon","Plain Chachalaca","Chukar","Himalayan Snowcock","Gray Partridge","Ring-necked Pheasant","Ruffed Grouse","Sage Grouse","Spruce Grouse","Willow Ptarmigan","Rock Ptarmigan","White-tailed Ptarmigan","Blue Grouse","Sharp-tailed Grouse","Greater Prairie-chicken","Lesser Prairie-chicken","Wild Turkey","Mountain Quail","Scaled Quail","California Quail","Gambel's Quail","Northern Bobwhite","Montezuma Quail","Yellow Rail","Black Rail","Corn Crake","Clapper Rail","King Rail","Virginia Rail","Sora","Paint-billed Crake","Spotted Rail","Purple Gallinule","Azure Gallinule","Common Moorhen","Eurasian Coot","American Coot","Limpkin","Sandhill Crane","Common Crane","Whooping Crane","Double-striped Thick-knee","Northern Lapwing","Black-bellied Plover","European Golden-Plover","American Golden-Plover","Pacific Golden-Plover","Mongolian Plover","Collared Plover","Snowy Plover","Wilson's Plover","Common Ringed Plover","Semipalmated Plover","Piping Plover","Little Ringed Plover","Killdeer","Mountain Plover","Eurasian Dotterel","Eurasian Oystercatcher","American Oystercatcher","Black Oystercatcher","Black-winged Stilt","Black-necked Stilt","American Avocet","Northern Jacana","Common Greenshank","Greater Yellowlegs","Lesser Yellowlegs","Marsh Sandpiper","Spotted Redshank","Wood Sandpiper","Green Sandpiper","Solitary Sandpiper","Willet","Wandering Tattler","Gray-tailed Tattler","Common Sandpiper","Spotted Sandpiper","Terek Sandpiper","Upland Sandpiper","Little Curlew","Eskimo Curlew","Whimbrel","Bristle-thighed Curlew","Far Eastern Curlew","Slender-billed Curlew","Eurasian Curlew","Long-billed Curlew","Black-tailed Godwit","Hudsonian Godwit","Bar-tailed Godwit","Marbled Godwit","Ruddy Turnstone","Black Turnstone","Surfbird","Great Knot","Red Knot","Sanderling","Semipalmated Sandpiper","Western Sandpiper","Red-necked Stint","Little Stint","Temminck's Stint","Long-toed Stint","Least Sandpiper","White-rumped Sandpiper","Baird's Sandpiper","Pectoral Sandpiper","Sharp-tailed Sandpiper","Purple Sandpiper","Rock Sandpiper","Dunlin","Curlew Sandpiper","Stilt Sandpiper","Spoonbill Sandpiper","Broad-billed Sandpiper","Buff-breasted Sandpiper","Ruff","Short-billed Dowitcher","Long-billed Dowitcher","Jack Snipe","Common Snipe","Pin-tailed Snipe","Eurasian Woodcock","American Woodcock","Wilson's Phalarope","Red-necked Phalarope","Red Phalarope","Oriental Pratincole","Great Skua","South Polar Skua","Pomarine Jaeger","Parasitic Jaeger","Long-tailed Jaeger","Laughing Gull","Franklin's Gull","Little Gull","Black-headed Gull","Bonaparte's Gull","Heermann's Gull","Band-tailed Gull","Black-tailed Gull","Mew Gull","Ring-billed Gull","California Gull","Herring Gull","Yellow-legged Gull","Thayer's Gull","Iceland Gull","Lesser Black-backed Gull","Slaty-backed Gull","Yellow-footed Gull","Western Gull","Glaucous-winged Gull","Glaucous Gull","Great Black-backed Gull","Sabine's Gull","Black-legged Kittiwake","Red-legged Kittiwake","Ross's Gull","Ivory Gull","Gull-billed Tern","Caspian Tern","Royal Tern","Elegant Tern","Sandwich Tern","Roseate Tern","Common Tern","Arctic Tern","Forster's Tern","Least Tern","Aleutian Tern","Bridled Tern","Sooty Tern","Large-billed Tern","White-winged Tern","Whiskered Tern","Black Tern","Brown Noddy","Black Noddy","Black Skimmer","Dovekie","Common Murre","Thick-billed Murre","Razorbill","Great Auk","Black Guillemot","Pigeon Guillemot","Long-billed Murrelet","Marbled Murrelet","Kittlitz's Murrelet","Xantus's Murrelet","Craveri's Murrelet","Ancient Murrelet","Cassin's Auklet","Parakeet Auklet","Least Auklet","Whiskered Auklet","Crested Auklet","Rhinoceros Auklet","Atlantic Puffin","Horned Puffin","Tufted Puffin","Rock Dove","Scaly-naped Pigeon","White-crowned Pigeon","Red-billed Pigeon","Band-tailed Pigeon","Oriental Turtle-Dove","European Turtle-Dove","Eurasian Collared-Dove","Spotted Dove","White-winged Dove","Zenaida Dove","Mourning Dove","Passenger Pigeon","Inca Dove","Common Ground-Dove","Ruddy Ground-Dove","White-tipped Dove","Key West Quail-Dove","Ruddy Quail-Dove","Budgerigar","Monk Parakeet","Carolina Parakeet","Thick-billed Parrot","White-winged Parakeet","Red-crowned Parrot","Common Cuckoo","Oriental Cuckoo","Black-billed Cuckoo","Yellow-billed Cuckoo","Mangrove Cuckoo","Greater Roadrunner","Smooth-billed Ani","Groove-billed Ani","Barn Owl","Flammulated Owl","Oriental Scops-Owl","Western Screech-Owl","Eastern Screech-Owl","Whiskered Screech-Owl","Great Horned Owl","Snowy Owl","Northern Hawk Owl","Northern Pygmy-Owl","Ferruginous Pygmy-Owl","Elf Owl","Burrowing Owl","Mottled Owl","Spotted Owl","Barred Owl","Great Gray Owl","Long-eared Owl","Short-eared Owl","Boreal Owl","Northern Saw-whet Owl","Lesser Nighthawk","Common Nighthawk","Antillean Nighthawk","Common Pauraque","Common Poorwill","Chuck-will's-widow","Buff-collared Nightjar","Whip-poor-will","Jungle Nightjar","Black Swift","White-collared Swift","Chimney Swift","Vaux's Swift","White-throated Needletail","Common Swift","Fork-tailed Swift","White-throated Swift","Antillean Palm Swift","Green Violet-ear","Green-breasted Mango","Broad-billed Hummingbird","White-eared Hummingbird","Xantus's Hummingbird","Berylline Hummingbird","Buff-bellied Hummingbird","Cinnamon Hummingbird","Violet-crowned Hummingbird","Blue-throated Hummingbird","Magnificent Hummingbird","Plain-capped Starthroat","Bahama Woodstar","Lucifer Hummingbird","Ruby-throated Hummingbird","Black-chinned Hummingbird","Anna's Hummingbird","Costa's Hummingbird","Calliope Hummingbird","Bumblebee Hummingbird","Broad-tailed Hummingbird","Rufous Hummingbird","Allen's Hummingbird","Elegant Trogon","Eared Trogon","Hoopoe","Ringed Kingfisher","Belted Kingfisher","Green Kingfisher","Eurasian Wryneck","Lewis's Woodpecker","Red-headed Woodpecker","Acorn Woodpecker","Gila Woodpecker","Golden-fronted Woodpecker","Red-bellied Woodpecker","Williamson's Sapsucker","Yellow-bellied Sapsucker","Red-naped Sapsucker","Red-breasted Sapsucker","Great Spotted Woodpecker","Ladder-backed Woodpecker","Nuttall's Woodpecker","Downy Woodpecker","Hairy Woodpecker","Strickland's Woodpecker","Red-cockaded Woodpecker","White-headed Woodpecker","Three-toed Woodpecker","Black-backed Woodpecker","Northern Flicker","Gilded Flicker","Pileated Woodpecker","Ivory-billed Woodpecker","Northern Beardless-Tyrannulet","Greenish Elaenia","Caribbean Elaenia","Tufted Flycatcher","Olive-sided Flycatcher","Greater Pewee","Western Wood-Pewee","Eastern Wood-Pewee","Yellow-bellied Flycatcher","Acadian Flycatcher","Alder Flycatcher","Willow Flycatcher","Least Flycatcher","Hammond's Flycatcher","Dusky Flycatcher","Gray Flycatcher","Pacific-slope Flycatcher","Cordilleran Flycatcher","Buff-breasted Flycatcher","Black Phoebe","Eastern Phoebe","Say's Phoebe","Vermilion Flycatcher","Dusky-capped Flycatcher","Ash-throated Flycatcher","Nutting's Flycatcher","Great Crested Flycatcher","Brown-crested Flycatcher","La Sagra's Flycatcher","Great Kiskadee","Sulphur-bellied Flycatcher","Variegated Flycatcher","Tropical Kingbird","Couch's Kingbird","Cassin's Kingbird","Thick-billed Kingbird","Western Kingbird","Eastern Kingbird","Gray Kingbird","Loggerhead Kingbird","Scissor-tailed Flycatcher","Fork-tailed Flycatcher","Rose-throated Becard","Masked Tityra","Brown Shrike","Loggerhead Shrike","Northern Shrike","White-eyed Vireo","Thick-billed Vireo","Bell's Vireo","Black-capped Vireo","Gray Vireo","Yellow-throated Vireo","Plumbeous Vireo","Cassin's Vireo","Blue-headed Vireo","Hutton's Vireo","Warbling Vireo","Philadelphia Vireo","Red-eyed Vireo","Yellow-green Vireo","Black-whiskered Vireo","Yucatan Vireo","Gray Jay","Steller's Jay","Blue Jay","Green Jay","Brown Jay","Florida Scrub-Jay","Island Scrub-Jay","Western Scrub-Jay","Mexican Jay","Pinyon Jay","Clark's Nutcracker","Black-billed Magpie","Yellow-billed Magpie","Eurasian Jackdaw","American Crow","Northwestern Crow","Tamaulipas Crow","Fish Crow","Chihuahuan Raven","Common Raven","Sky Lark","Horned Lark","Purple Martin","Cuban Martin","Gray-breasted Martin","Southern Martin","Brown-chested Martin","Tree Swallow","Violet-green Swallow","Bahama Swallow","Northern Rough-winged Swallow","Bank Swallow","Cliff Swallow","Cave Swallow","Barn Swallow","Common House-Martin","Carolina Chickadee","Black-capped Chickadee","Mountain Chickadee","Mexican Chickadee","Chestnut-backed Chickadee","Boreal Chickadee","Gray-headed Chickadee","Bridled Titmouse","Oak Titmouse","Juniper Titmouse","Tufted Titmouse","Verdin","Bushtit","Red-breasted Nuthatch","White-breasted Nuthatch","Pygmy Nuthatch","Brown-headed Nuthatch","Brown Creeper","Cactus Wren","Rock Wren","Canyon Wren","Carolina Wren","Bewick's Wren","House Wren","Winter Wren","Sedge Wren","Marsh Wren","American Dipper","Red-whiskered Bulbul","Golden-crowned Kinglet","Ruby-crowned Kinglet","Middendorff's Grasshopper-Warbler","Lanceolated Warbler","Wood Warbler","Dusky Warbler","Arctic Warbler","Blue-gray Gnatcatcher","California Gnatcatcher","Black-tailed Gnatcatcher","Black-capped Gnatcatcher","Narcissus Flycatcher","Mugimaki Flycatcher","Red-breasted Flycatcher","Siberian Flycatcher","Gray-spotted Flycatcher","Asian Brown Flycatcher","Siberian Rubythroat","Bluethroat","Siberian Blue Robin","Red-flanked Bluetail","Northern Wheatear","Stonechat","Eastern Bluebird","Western Bluebird","Mountain Bluebird","Townsend's Solitaire","Veery","Gray-cheeked Thrush","Bicknell's Thrush","Swainson's Thrush","Hermit Thrush","Wood Thrush","Eurasian Blackbird","Eyebrowed Thrush","Dusky Thrush","Fieldfare","Redwing","Clay-colored Robin","White-throated Robin","Rufous-backed Robin","American Robin","Varied Thrush","Aztec Thrush","Wrentit","Gray Catbird","Black Catbird","Northern Mockingbird","Bahama Mockingbird","Sage Thrasher","Brown Thrasher","Long-billed Thrasher","Bendire's Thrasher","Curve-billed Thrasher","California Thrasher","Crissal Thrasher","Le Conte's Thrasher","Blue Mockingbird","European Starling","Crested Myna","Siberian Accentor","Yellow Wagtail","Citrine Wagtail","Gray Wagtail","White Wagtail","Black-backed Wagtail","Tree Pipit","Olive-backed Pipit","Pechora Pipit","Red-throated Pipit","American Pipit","Sprague's Pipit","Bohemian Waxwing","Cedar Waxwing","Gray Silky-flycatcher","Phainopepla","Olive Warbler","Bachman's Warbler","Blue-winged Warbler","Golden-winged Warbler","Tennessee Warbler","Orange-crowned Warbler","Nashville Warbler","Virginia's Warbler","Colima Warbler","Lucy's Warbler","Crescent-chested Warbler","Northern Parula","Tropical Parula","Yellow Warbler","Chestnut-sided Warbler","Magnolia Warbler","Cape May Warbler","Black-throated Blue Warbler","Yellow-rumped Warbler","Black-throated Gray Warbler","Golden-cheeked Warbler","Black-throated Green Warbler","Townsend's Warbler","Hermit Warbler","Blackburnian Warbler","Yellow-throated Warbler","Grace's Warbler","Pine Warbler","Kirtland's Warbler","Prairie Warbler","Palm Warbler","Bay-breasted Warbler","Blackpoll Warbler","Cerulean Warbler","Black-and-white Warbler","American Redstart","Prothonotary Warbler","Worm-eating Warbler","Swainson's Warbler","Ovenbird","Northern Waterthrush","Louisiana Waterthrush","Kentucky Warbler","Connecticut Warbler","Mourning Warbler","MacGillivray's Warbler","Common Yellowthroat","Gray-crowned Yellowthroat","Hooded Warbler","Wilson's Warbler","Canada Warbler","Red-faced Warbler","Painted Redstart","Slate-throated Redstart","Fan-tailed Warbler","Golden-crowned Warbler","Rufous-capped Warbler","Yellow-breasted Chat","Bananaquit","Hepatic Tanager","Summer Tanager","Scarlet Tanager","Western Tanager","Flame-colored Tanager","Stripe-headed Tanager","White-collared Seedeater","Yellow-faced Grassquit","Black-faced Grassquit","Olive Sparrow","Green-tailed Towhee","Spotted Towhee","Eastern Towhee","Canyon Towhee","California Towhee","Abert's Towhee","Rufous-winged Sparrow","Cassin's Sparrow","Bachman's Sparrow","Botteri's Sparrow","Rufous-crowned Sparrow","Five-striped Sparrow","American Tree Sparrow","Chipping Sparrow","Clay-colored Sparrow","Brewer's Sparrow","Field Sparrow","Worthen's Sparrow","Black-chinned Sparrow","Vesper Sparrow","Lark Sparrow","Black-throated Sparrow","Sage Sparrow","Lark Bunting","Savannah Sparrow","Grasshopper Sparrow","Baird's Sparrow","Henslow's Sparrow","Le Conte's Sparrow","Nelson's Sharp-tailed Sparrow","Saltmarsh Sharp-tailed Sparrow","Seaside Sparrow","Fox Sparrow","Song Sparrow","Lincoln's Sparrow","Swamp Sparrow","White-throated Sparrow","Harris's Sparrow","White-crowned Sparrow","Golden-crowned Sparrow","Dark-eyed Junco","Yellow-eyed Junco","McCown's Longspur","Lapland Longspur","Smith's Longspur","Chestnut-collared Longspur","Pine Bunting","Little Bunting","Rustic Bunting","Yellow-breasted Bunting","Gray Bunting","Pallas's Bunting","Reed Bunting","Snow Bunting","McKay's Bunting","Crimson-collared Grosbeak","Northern Cardinal","Pyrrhuloxia","Yellow Grosbeak","Rose-breasted Grosbeak","Black-headed Grosbeak","Blue Bunting","Blue Grosbeak","Lazuli Bunting","Indigo Bunting","Varied Bunting","Painted Bunting","Dickcissel","Bobolink","Red-winged Blackbird","Tricolored Blackbird","Tawny-shouldered Blackbird","Eastern Meadowlark","Western Meadowlark","Yellow-headed Blackbird","Rusty Blackbird","Brewer's Blackbird","Common Grackle","Boat-tailed Grackle","Great-tailed Grackle","Shiny Cowbird","Bronzed Cowbird","Brown-headed Cowbird","Black-vented Oriole","Orchard Oriole","Hooded Oriole","Streak-backed Oriole","Spot-breasted Oriole","Altamira Oriole","Audubon's Oriole","Baltimore Oriole","Bullock's Oriole","Scott's Oriole","Common Chaffinch","Brambling","Gray-crowned Rosy-Finch","Black Rosy-Finch","Brown-capped Rosy-Finch","Pine Grosbeak","Common Rosefinch","Purple Finch","Cassin's Finch","House Finch","Red Crossbill","White-winged Crossbill","Common Redpoll","Hoary Redpoll","Eurasian Siskin","Pine Siskin","Lesser Goldfinch","Lawrence's Goldfinch","American Goldfinch","Oriental Greenfinch","Eurasian Bullfinch","Evening Grosbeak","Hawfinch","House Sparrow","Eurasian Tree Sparrow"],yGt=["Abyssinian","American Bobtail","American Curl","American Shorthair","American Wirehair","Balinese","Bengal","Birman","Bombay","British Shorthair","Burmese","Chartreux","Chausie","Cornish Rex","Devon Rex","Donskoy","Egyptian Mau","Exotic Shorthair","Havana","Highlander","Himalayan","Japanese Bobtail","Korat","Kurilian Bobtail","LaPerm","Maine Coon","Manx","Minskin","Munchkin","Nebelung","Norwegian Forest Cat","Ocicat","Ojos Azules","Oriental","Persian","Peterbald","Pixiebob","Ragdoll","Russian Blue","Savannah","Scottish Fold","Selkirk Rex","Serengeti","Siberian","Siamese","Singapura","Snowshoe","Sokoke","Somali","Sphynx","Thai","Tonkinese","Toyger","Turkish Angora","Turkish Van"],IGt=["Blue Whale","Fin Whale","Sei Whale","Sperm Whale","Bryde’s whale","Omura’s whale","Humpback whale","Long-Beaked Common Dolphin","Short-Beaked Common Dolphin","Bottlenose Dolphin","Indo-Pacific Bottlenose Dolphin","Northern Rightwhale Dolphin","Southern Rightwhale Dolphin","Tucuxi","Costero","Indo-Pacific Hump-backed Dolphin","Chinese White Dolphin","Atlantic Humpbacked Dolphin","Atlantic Spotted Dolphin","Clymene Dolphin","Pantropical Spotted Dolphin","Spinner Dolphin","Striped Dolphin","Rough-Toothed Dolphin","Chilean Dolphin","Commerson’s Dolphin","Heaviside’s Dolphin","Hector’s Dolphin","Risso’s Dolphin","Fraser’s Dolphin","Atlantic White-Sided Dolphin","Dusky Dolphin","Hourglass Dolphin","Pacific White-Sided Dolphin","Peale’s Dolphin","White-Beaked Dolphin","Australian Snubfin Dolphin","Irrawaddy Dolphin","Melon-headed Whale","Killer Whale (Orca)","Pygmy Killer Whale","False Killer Whale","Long-finned Pilot Whale","Short-finned Pilot Whale","Guiana Dolphin","Burrunan Dolphin","Australian humpback Dolphin","Amazon River Dolphin","Chinese River Dolphin","Ganges River Dolphin","La Plata Dolphin","Southern Bottlenose Whale","Longman's Beaked Whale","Arnoux's Beaked Whale"],wGt=["Aberdeen Angus","Abergele","Abigar","Abondance","Abyssinian Shorthorned Zebu","Aceh","Achham","Adamawa","Adaptaur","Afar","Africangus","Afrikaner","Agerolese","Alambadi","Alatau","Albanian","Albera","Alderney","Alentejana","Aleutian wild cattle","Aliad Dinka","Alistana-Sanabresa","Allmogekor","Alur","American","American Angus","American Beef Friesian","American Brown Swiss","American Milking Devon","American White Park","Amerifax","Amrit Mahal","Amsterdam Island cattle","Anatolian Black","Andalusian Black","Andalusian Blond","Andalusian Grey","Angeln","Angoni","Ankina","Ankole","Ankole-Watusi","Aracena","Arado","Argentine Criollo","Argentine Friesian","Armorican","Arouquesa","Arsi","Asturian Mountain","Asturian Valley","Aubrac","Aulie-Ata","Aure et Saint-Girons","Australian Braford","Australian Brangus","Australian Charbray","Australian Friesian Sahiwal","Australian Lowline","Australian Milking Zebu","Australian Shorthorn","Austrian Simmental","Austrian Yellow","Avétonou","Avileña-Negra Ibérica","Aweil Dinka","Ayrshire","Azaouak","Azebuado","Azerbaijan Zebu","Azores","Bedit","Breed","Bachaur cattle","Baherie cattle","Bakosi cattle","Balancer","Baoule","Bargur cattle","Barrosã","Barzona","Bazadaise","Beef Freisian","Beefalo","Beefmaker","Beefmaster","Begayt","Belgian Blue","Belgian Red","Belgian Red Pied","Belgian White-and-Red","Belmont Red","Belted Galloway","Bernese","Berrenda cattle","Betizu","Bianca Modenese","Blaarkop","Black Angus","Black Baldy","Black Hereford","Blanca Cacereña","Blanco Orejinegro BON","Blonde d'Aquitaine","Blue Albion","Blue Grey","Bohuskulla","Bonsmara","Boran","Boškarin","Braford","Brahman","Brahmousin","Brangus","Braunvieh","Brava","British White","British Friesian","Brown Carpathian","Brown Caucasian","Brown Swiss","Bue Lingo","Burlina","Buša cattle","Butana cattle","Bushuyev","Cedit","Cachena","Caldelana","Camargue","Campbell Island cattle","Canadian Speckle Park","Canadienne","Canaria","Canchim","Caracu","Cárdena Andaluza","Carinthian Blondvieh","Carora","Charbray","Charolais","Chateaubriand","Chiangus","Chianina","Chillingham cattle","Chinese Black Pied","Cholistani","Coloursided White Back","Commercial","Corriente","Corsican cattle","Costeño con Cuernos","Crioulo Lageano","Dedit","Dajal","Dangi cattle","Danish Black-Pied","Danish Jersey","Danish Red","Deep Red cattle","Deoni","Devon","Dexter cattle","Dhanni","Doayo cattle","Doela","Drakensberger","Dølafe","Droughtmaster","Dulong'","Dutch Belted","Dutch Friesian","Dwarf Lulu","Eedit","East Anatolian Red","Eastern Finncattle","Eastern Red Polled","Enderby Island cattle","English Longhorn","Ennstaler Bergscheck","Estonian Holstein","Estonian Native","Estonian Red cattle","Évolène cattle","Fedit","Fēng Cattle","Finnish Ayrshire","Finncattle","Finnish Holstein-Friesian","Fjäll","Fleckvieh","Florida Cracker cattle","Fogera","French Simmental","Fribourgeoise","Friesian Red and White","Fulani Sudanese","Gedit","Galician Blond","Galloway cattle","Gangatiri","Gaolao","Garvonesa","Gascon cattle","Gelbvieh","Georgian Mountain cattle","German Angus","German Black Pied cattle","German Black Pied Dairy","German Red Pied","Gir","Glan cattle","Gloucester","Gobra","Greek Shorthorn","Greek Steppe","Greyman cattle","Gudali","Guernsey cattle","Guzerá","Hedit","Hallikar4","Hanwoo","Hariana cattle","Hartón del Valle","Harzer Rotvieh","Hays Converter","Heck cattle","Hereford","Herens","Hybridmaster","Highland cattle","Hinterwald","Holando-Argentino","Holstein Friesian cattle","Horro","Huáng Cattle","Hungarian Grey","Iedit","Iberian cattle","Icelandic","Illawarra cattle","Improved Red and White","Indo-Brazilian","Irish Moiled","Israeli Holstein","Israeli Red","Istoben cattle","Istrian cattle","Jedit","Jamaica Black","Jamaica Hope","Jamaica Red","Japanese Brown","Jarmelista","Javari cattle","Jersey cattle","Jutland cattle","Kedit","Kabin Buri cattle","Kalmyk cattle","Kangayam","Kankrej","Kamphaeng Saen cattle","Karan Swiss","Kasaragod Dwarf cattle","Kathiawadi","Kazakh Whiteheaded","Kenana cattle","Kenkatha cattle","Kerry cattle","Kherigarh","Khillari cattle","Kholomogory","Korat Wagyu","Kostroma cattle","Krishna Valley cattle","Kuri","Kurgan cattle","Ledit","La Reina cattle","Lakenvelder cattle","Lampurger","Latvian Blue","Latvian Brown","Latvian Danish Red","Lebedyn","Levantina","Limia cattle","Limousin","Limpurger","Lincoln Red","Lineback","Lithuanian Black-and-White","Lithuanian Light Grey","Lithuanian Red","Lithuanian White-Backed","Lohani cattle","Lourdais","Lucerna cattle","Luing","Medit","Madagascar Zebu","Madura","Maine-Anjou","Malnad Gidda","Malvi","Mandalong Special","Mantequera Leonesa","Maramureş Brown","Marchigiana","Maremmana","Marinhoa","Maronesa","Masai","Mashona","Menorquina","Mertolenga","Meuse-Rhine-Issel","Mewati","Milking Shorthorn","Minhota","Mirandesa","Mirkadim","Mocăniţă","Mollie","Monchina","Mongolian","Montbéliarde","Morucha","Muturu","Murboden","Murnau-Werdenfels","Murray Grey","Nedit","Nagori","N'Dama","Negra Andaluza","Nelore","Nguni","Nimari","Normande","North Bengal Grey","Northern Finncattle","Northern Shorthorn","Norwegian Red","Oedit]","Ongole","Original Simmental","Pedit","Pajuna","Palmera","Pantaneiro","Parda Alpina","Parthenaise","Pasiega","Pembroke","Philippine Native","Pie Rouge des Plaines","Piedmontese cattle","Pineywoods","Pinzgauer","Pirenaica","Podolac","Podolica","Polish Black-and-White","Polish Red","Polled Hereford","Poll Shorthorn","Polled Shorthorn","Ponwar","Preta","Punganur","Pulikulam","Pustertaler Sprinzen","Qedit","Qinchaun","Queensland Miniature Boran","Redit","Ramo Grande","Randall","Raramuri Criollo","Rathi","Rätisches Grauvieh","Raya","Red Angus","Red Brangus","Red Chittagong","Red Fulani","Red Gorbatov","Red Holstein","Red Kandhari","Red Mingrelian","Red Poll","Red Polled Østland","Red Sindhi","Retinta","Riggit Galloway","Ringamåla","Rohjan","Romagnola","Romanian Bălţata","Romanian Steppe Gray","Romosinuano","Russian Black Pied","RX3","Sedit","Sahiwal","Salers","Salorn","Sanga","Sanhe","Santa Cruz","Santa Gertrudis","Sayaguesa","Schwyz","Selembu","Senepol","Serbian Pied","Serbian Steppe","Sheko","Shetland","Shorthorn","Siboney de Cuba","Simbrah","Simford","Simmental","Siri","South Devon","Spanish Fighting Bull","Speckle Park","Square Meater","Sussex","Swedish Friesian","Swedish Polled","Swedish Red Pied","Swedish Red Polled","Swedish Red-and-White","Tedit","Tabapuã","Tarentaise","Tasmanian Grey","Tauros","Telemark","Texas Longhorn","Texon","Thai Black","Thai Fighting Bull","Thai Friesian","Thai Milking Zebu","Tharparkar","Tswana","Tudanca","Tuli","Tulim","Turkish Grey Steppe","Tux-Zillertal","Tyrol Grey","Uedit","Umblachery","Ukrainian Grey","Vedit","Valdostana Castana","Valdostana Pezzata Nera","Valdostana Pezzata Rossa","Väneko","Vaynol","Vechur8","Vestland Fjord","Vestland Red Polled","Vianesa","Volinian Beef","Vorderwald","Vosgienne","Wedit","Wagyu","Waguli","Wangus","Welsh Black","Western Finncattle","White Cáceres","White Fulani","White Lamphun","White Park","Whitebred Shorthorn","Xedit","Xingjiang Brown","Yedit","Yakutian","Yanbian","Yanhuang","Yurino","Zedit","Żubroń","Zebu"],SGt=["Alligator mississippiensis","Chinese Alligator","Black Caiman","Broad-snouted Caiman","Spectacled Caiman","Yacare Caiman","Cuvier’s Dwarf Caiman","Schneider’s Smooth-fronted Caiman","African Slender-snouted Crocodile","American Crocodile","Australian Freshwater Crocodile","Cuban Crocodile","Dwarf Crocodile","Morelet’s Crocodile","Mugger Crocodile","New Guinea Freshwater Crocodile","Nile Crocodile","West African Crocodile","Orinoco Crocodile","Philippine Crocodile","Saltwater Crocodile","Siamese Crocodile","Gharial","Tomistoma"],xGt=["Affenpinscher","Afghan Hound","Aidi","Airedale Terrier","Akbash","Akita","Alano Español","Alapaha Blue Blood Bulldog","Alaskan Husky","Alaskan Klee Kai","Alaskan Malamute","Alopekis","Alpine Dachsbracke","American Bulldog","American Bully","American Cocker Spaniel","American English Coonhound","American Foxhound","American Hairless Terrier","American Pit Bull Terrier","American Staffordshire Terrier","American Water Spaniel","Andalusian Hound","Anglo-Français de Petite Vénerie","Appenzeller Sennenhund","Ariegeois","Armant","Armenian Gampr dog","Artois Hound","Australian Cattle Dog","Australian Kelpie","Australian Shepherd","Australian Stumpy Tail Cattle Dog","Australian Terrier","Austrian Black and Tan Hound","Austrian Pinscher","Azawakh","Bakharwal dog","Banjara Hound","Barbado da Terceira","Barbet","Basenji","Basque Shepherd Dog","Basset Artésien Normand","Basset Bleu de Gascogne","Basset Fauve de Bretagne","Basset Hound","Bavarian Mountain Hound","Beagle","Beagle-Harrier","Belgian Shepherd","Bearded Collie","Beauceron","Bedlington Terrier","Bergamasco Shepherd","Berger Picard","Bernese Mountain Dog","Bhotia","Bichon Frisé","Billy","Black and Tan Coonhound","Black Norwegian Elkhound","Black Russian Terrier","Black Mouth Cur","Bloodhound","Blue Lacy","Blue Picardy Spaniel","Bluetick Coonhound","Boerboel","Bohemian Shepherd","Bolognese","Border Collie","Border Terrier","Borzoi","Bosnian Coarse-haired Hound","Boston Terrier","Bouvier des Ardennes","Bouvier des Flandres","Boxer","Boykin Spaniel","Bracco Italiano","Braque d'Auvergne","Braque de l'Ariège","Braque du Bourbonnais","Braque Francais","Braque Saint-Germain","Briard","Briquet Griffon Vendéen","Brittany","Broholmer","Bruno Jura Hound","Brussels Griffon","Bucovina Shepherd Dog","Bull Arab","Bull Terrier","Bulldog","Bullmastiff","Bully Kutta","Burgos Pointer","Cairn Terrier","Campeiro Bulldog","Canaan Dog","Canadian Eskimo Dog","Cane Corso","Cane di Oropa","Cane Paratore","Cantabrian Water Dog","Can de Chira","Cão da Serra de Aires","Cão de Castro Laboreiro","Cão de Gado Transmontano","Cão Fila de São Miguel","Cardigan Welsh Corgi","Carea Castellano Manchego","Carolina Dog","Carpathian Shepherd Dog","Catahoula Leopard Dog","Catalan Sheepdog","Caucasian Shepherd Dog","Cavalier King Charles Spaniel","Central Asian Shepherd Dog","Cesky Fousek","Cesky Terrier","Chesapeake Bay Retriever","Chien Français Blanc et Noir","Chien Français Blanc et Orange","Chien Français Tricolore","Chihuahua","Chilean Terrier","Chinese Chongqing Dog","Chinese Crested Dog","Chinook","Chippiparai","Chongqing dog","Chortai","Chow Chow","Cimarrón Uruguayo","Cirneco dell'Etna","Clumber Spaniel","Colombian fino hound","Coton de Tulear","Cretan Hound","Croatian Sheepdog","Curly-Coated Retriever","Cursinu","Czechoslovakian Wolfdog","Dachshund","Dalmatian","Dandie Dinmont Terrier","Danish-Swedish Farmdog","Denmark Feist","Dingo","Doberman Pinscher","Dogo Argentino","Dogo Guatemalteco","Dogo Sardesco","Dogue Brasileiro","Dogue de Bordeaux","Drentse Patrijshond","Drever","Dunker","Dutch Shepherd","Dutch Smoushond","East Siberian Laika","East European Shepherd","English Cocker Spaniel","English Foxhound","English Mastiff","English Setter","English Shepherd","English Springer Spaniel","English Toy Terrier","Entlebucher Mountain Dog","Estonian Hound","Estrela Mountain Dog","Eurasier","Field Spaniel","Fila Brasileiro","Finnish Hound","Finnish Lapphund","Finnish Spitz","Flat-Coated Retriever","French Bulldog","French Spaniel","Galgo Español","Galician Shepherd Dog","Garafian Shepherd","Gascon Saintongeois","Georgian Shepherd","German Hound","German Longhaired Pointer","German Pinscher","German Roughhaired Pointer","German Shepherd Dog","German Shorthaired Pointer","German Spaniel","German Spitz","German Wirehaired Pointer","Giant Schnauzer","Glen of Imaal Terrier","Golden Retriever","Gończy Polski","Gordon Setter","Grand Anglo-Français Blanc et Noir","Grand Anglo-Français Blanc et Orange","Grand Anglo-Français Tricolore","Grand Basset Griffon Vendéen","Grand Bleu de Gascogne","Grand Griffon Vendéen","Great Dane","Greater Swiss Mountain Dog","Greek Harehound","Greek Shepherd","Greenland Dog","Greyhound","Griffon Bleu de Gascogne","Griffon Fauve de Bretagne","Griffon Nivernais","Gull Dong","Gull Terrier","Hällefors Elkhound","Hamiltonstövare","Hanover Hound","Harrier","Havanese","Hierran Wolfdog","Hokkaido","Hovawart","Huntaway","Hygen Hound","Ibizan Hound","Icelandic Sheepdog","Indian pariah dog","Indian Spitz","Irish Red and White Setter","Irish Setter","Irish Terrier","Irish Water Spaniel","Irish Wolfhound","Istrian Coarse-haired Hound","Istrian Shorthaired Hound","Italian Greyhound","Jack Russell Terrier","Jagdterrier","Japanese Chin","Japanese Spitz","Japanese Terrier","Jindo","Jonangi","Kai Ken","Kaikadi","Kangal Shepherd Dog","Kanni","Karakachan dog","Karelian Bear Dog","Kars","Karst Shepherd","Keeshond","Kerry Beagle","Kerry Blue Terrier","King Charles Spaniel","King Shepherd","Kintamani","Kishu","Kokoni","Kombai","Komondor","Kooikerhondje","Koolie","Koyun dog","Kromfohrländer","Kuchi","Kuvasz","Labrador Retriever","Lagotto Romagnolo","Lakeland Terrier","Lancashire Heeler","Landseer","Lapponian Herder","Large Münsterländer","Leonberger","Levriero Sardo","Lhasa Apso","Lithuanian Hound","Löwchen","Lupo Italiano","Mackenzie River Husky","Magyar agár","Mahratta Greyhound","Maltese","Manchester Terrier","Maremmano-Abruzzese Sheepdog","McNab dog","Miniature American Shepherd","Miniature Bull Terrier","Miniature Fox Terrier","Miniature Pinscher","Miniature Schnauzer","Molossus of Epirus","Montenegrin Mountain Hound","Mountain Cur","Mountain Feist","Mucuchies","Mudhol Hound","Mudi","Neapolitan Mastiff","New Guinea Singing Dog","New Zealand Heading Dog","Newfoundland","Norfolk Terrier","Norrbottenspets","Northern Inuit Dog","Norwegian Buhund","Norwegian Elkhound","Norwegian Lundehund","Norwich Terrier","Nova Scotia Duck Tolling Retriever","Old Croatian Sighthound","Old Danish Pointer","Old English Sheepdog","Old English Terrier","Olde English Bulldogge","Otterhound","Pachon Navarro","Pampas Deerhound","Paisley Terrier","Papillon","Parson Russell Terrier","Pastore della Lessinia e del Lagorai","Patagonian Sheepdog","Patterdale Terrier","Pekingese","Pembroke Welsh Corgi","Perro Majorero","Perro de Pastor Mallorquin","Perro de Presa Canario","Perro de Presa Mallorquin","Peruvian Inca Orchid","Petit Basset Griffon Vendéen","Petit Bleu de Gascogne","Phalène","Pharaoh Hound","Phu Quoc Ridgeback","Picardy Spaniel","Plummer Terrier","Plott Hound","Podenco Canario","Podenco Valenciano","Pointer","Poitevin","Polish Greyhound","Polish Hound","Polish Lowland Sheepdog","Polish Tatra Sheepdog","Pomeranian","Pont-Audemer Spaniel","Poodle","Porcelaine","Portuguese Podengo","Portuguese Pointer","Portuguese Water Dog","Posavac Hound","Pražský Krysařík","Pshdar Dog","Pudelpointer","Pug","Puli","Pumi","Pungsan Dog","Pyrenean Mastiff","Pyrenean Mountain Dog","Pyrenean Sheepdog","Rafeiro do Alentejo","Rajapalayam","Rampur Greyhound","Rat Terrier","Ratonero Bodeguero Andaluz","Ratonero Mallorquin","Ratonero Murciano de Huerta","Ratonero Valenciano","Redbone Coonhound","Rhodesian Ridgeback","Romanian Mioritic Shepherd Dog","Romanian Raven Shepherd Dog","Rottweiler","Rough Collie","Russian Spaniel","Russian Toy","Russo-European Laika","Saarloos Wolfdog","Sabueso Español","Saint Bernard","Saint Hubert Jura Hound","Saint-Usuge Spaniel","Saluki","Samoyed","Sapsali","Sarabi dog","Šarplaninac","Schapendoes","Schillerstövare","Schipperke","Schweizer Laufhund","Schweizerischer Niederlaufhund","Scottish Deerhound","Scottish Terrier","Sealyham Terrier","Segugio dell'Appennino","Segugio Italiano","Segugio Maremmano","Seppala Siberian Sleddog","Serbian Hound","Serbian Tricolour Hound","Serrano Bulldog","Shar Pei","Shetland Sheepdog","Shiba Inu","Shih Tzu","Shikoku","Shiloh Shepherd","Siberian Husky","Silken Windhound","Silky Terrier","Sinhala Hound","Skye Terrier","Sloughi","Slovakian Wirehaired Pointer","Slovenský Cuvac","Slovenský Kopov","Smalandstövare","Small Greek domestic dog","Small Münsterländer","Smooth Collie","Smooth Fox Terrier","Soft-Coated Wheaten Terrier","South Russian Ovcharka","Spanish Mastiff","Spanish Water Dog","Spinone Italiano","Sporting Lucas Terrier","Sardinian Shepherd Dog","Stabyhoun","Staffordshire Bull Terrier","Standard Schnauzer","Stephens Stock","Styrian Coarse-haired Hound","Sussex Spaniel","Swedish Elkhound","Swedish Lapphund","Swedish Vallhund","Swedish White Elkhound","Taigan","Taiwan Dog","Tamaskan Dog","Teddy Roosevelt Terrier","Telomian","Tenterfield Terrier","Terrier Brasileiro","Thai Bangkaew Dog","Thai Ridgeback","Tibetan Mastiff","Tibetan Spaniel","Tibetan Terrier","Tornjak","Tosa","Toy Fox Terrier","Toy Manchester Terrier","Transylvanian Hound","Treeing Cur","Treeing Feist","Treeing Tennessee Brindle","Treeing Walker Coonhound","Trigg Hound","Tyrolean Hound","Vikhan","Villano de Las Encartaciones","Villanuco de Las Encartaciones","Vizsla","Volpino Italiano","Weimaraner","Welsh Sheepdog","Welsh Springer Spaniel","Welsh Terrier","West Highland White Terrier","West Siberian Laika","Westphalian Dachsbracke","Wetterhoun","Whippet","White Shepherd","White Swiss Shepherd Dog","Wire Fox Terrier","Wirehaired Pointing Griffon","Wirehaired Vizsla","Xiasi Dog","Xoloitzcuintli","Yakutian Laika","Yorkshire Terrier"],LGt=["Grass carp","Peruvian anchoveta","Silver carp","Common carp","Asari","Japanese littleneck","Filipino Venus","Japanese cockle","Alaska pollock","Nile tilapia","Whiteleg shrimp","Bighead carp","Skipjack tuna","Catla","Crucian carp","Atlantic salmon","Atlantic herring","Chub mackerel","Rohu","Yellowfin tuna","Japanese anchovy","Largehead hairtail","Atlantic cod","European pilchard","Capelin","Jumbo flying squid","Milkfish","Atlantic mackerel","Rainbow trout","Araucanian herring","Wuchang bream","Gulf menhaden","Indian oil sardine","Black carp","European anchovy","Northern snakehead","Pacific cod","Pacific saury","Pacific herring","Bigeye tuna","Chilean jack mackerel","Yellow croaker","Haddock","Gazami crab","Amur catfish","Japanese common catfish","European sprat","Pink salmon","Mrigal carp","Channel catfish","Blood cockle","Blue whiting","Hilsa shad","Daggertooth pike conger","California pilchard","Cape horse mackerel","Pacific anchoveta","Japanese flying squid","Pollock","Chinese softshell turtle","Kawakawa","Indian mackerel","Asian swamp eel","Argentine hake","Short mackerel","Southern rough shrimp","Southern African anchovy","Pond loach","Iridescent shark","Mandarin fish","Chinese perch","Nile perch","Round sardinella","Japanese pilchard","Bombay-duck","Yellowhead catfish","Korean bullhead","Narrow-barred Spanish mackerel","Albacore","Madeiran sardinella","Bonga shad","Silver cyprinid","Longtail tuna","Atlantic menhaden","North Pacific hake","Atlantic horse mackerel","Japanese jack mackerel","Pacific thread herring","Bigeye scad","Yellowstripe scad","Chum salmon","Blue swimming crab","Pacific sand lance","Pacific sandlance","Goldstripe sardinella"],FGt=["American Albino","Abaco Barb","Abtenauer","Abyssinian","Aegidienberger","Akhal-Teke","Albanian Horse","Altai Horse","Altèr Real","American Cream Draft","American Indian Horse","American Paint Horse","American Quarter Horse","American Saddlebred","American Warmblood","Andalusian Horse","Andravida Horse","Anglo-Arabian","Anglo-Arabo-Sardo","Anglo-Kabarda","Appaloosa","AraAppaloosa","Arabian Horse","Ardennes Horse","Arenberg-Nordkirchen","Argentine Criollo","Asian wild Horse","Assateague Horse","Asturcón","Augeron","Australian Brumby","Australian Draught Horse","Australian Stock Horse","Austrian Warmblood","Auvergne Horse","Auxois","Azerbaijan Horse","Azteca Horse","Baise Horse","Bale","Balearic Horse","Balikun Horse","Baluchi Horse","Banker Horse","Barb Horse","Bardigiano","Bashkir Curly","Basque Mountain Horse","Bavarian Warmblood","Belgian Half-blood","Belgian Horse","Belgian Warmblood ","Bhutia Horse","Black Forest Horse","Blazer Horse","Boerperd","Borana","Boulonnais Horse","Brabant","Brandenburger","Brazilian Sport Horse","Breton Horse","Brumby","Budyonny Horse","Burguete Horse","Burmese Horse","Byelorussian Harness Horse","Calabrese Horse","Camargue Horse","Camarillo White Horse","Campeiro","Campolina","Canadian Horse","Canadian Pacer","Carolina Marsh Tacky","Carthusian Horse","Caspian Horse","Castilian Horse","Castillonnais","Catria Horse","Cavallo Romano della Maremma Laziale","Cerbat Mustang","Chickasaw Horse","Chilean Corralero","Choctaw Horse","Cleveland Bay","Clydesdale Horse","Cob","Coldblood Trotter","Colonial Spanish Horse","Colorado Ranger","Comtois Horse","Corsican Horse","Costa Rican Saddle Horse","Cretan Horse","Criollo Horse","Croatian Coldblood","Cuban Criollo","Cumberland Island Horse","Curly Horse","Czech Warmblood","Daliboz","Danish Warmblood","Danube Delta Horse","Dole Gudbrandsdal","Don","Dongola Horse","Draft Trotter","Dutch Harness Horse","Dutch Heavy Draft","Dutch Warmblood","Dzungarian Horse","East Bulgarian","East Friesian Horse","Estonian Draft","Estonian Horse","Falabella","Faroese","Finnhorse","Fjord Horse","Fleuve","Florida Cracker Horse","Foutanké","Frederiksborg Horse","Freiberger","French Trotter","Friesian Cross","Friesian Horse","Friesian Sporthorse","Furioso-North Star","Galiceño","Galician Pony","Gelderland Horse","Georgian Grande Horse","German Warmblood","Giara Horse","Gidran","Groningen Horse","Gypsy Horse","Hackney Horse","Haflinger","Hanoverian Horse","Heck Horse","Heihe Horse","Henson Horse","Hequ Horse","Hirzai","Hispano-Bretón","Holsteiner Horse","Horro","Hungarian Warmblood","Icelandic Horse","Iomud","Irish Draught","Irish Sport Horse sometimes called Irish Hunter","Italian Heavy Draft","Italian Trotter","Jaca Navarra","Jeju Horse","Jutland Horse","Kabarda Horse","Kafa","Kaimanawa Horses","Kalmyk Horse","Karabair","Karabakh Horse","Karachai Horse","Karossier","Kathiawari","Kazakh Horse","Kentucky Mountain Saddle Horse","Kiger Mustang","Kinsky Horse","Kisber Felver","Kiso Horse","Kladruber","Knabstrupper","Konik","Kundudo","Kustanair","Kyrgyz Horse","Latvian Horse","Lipizzan","Lithuanian Heavy Draught","Lokai","Losino Horse","Lusitano","Lyngshest","M'Bayar","M'Par","Mallorquín","Malopolski","Mangalarga","Mangalarga Marchador","Maremmano","Marismeño Horse","Marsh Tacky","Marwari Horse","Mecklenburger","Međimurje Horse","Menorquín","Mérens Horse","Messara Horse","Metis Trotter","Mezőhegyesi Sport Horse","Miniature Horse","Misaki Horse","Missouri Fox Trotter","Monchina","Mongolian Horse","Mongolian Wild Horse","Monterufolino","Morab","Morgan Horse","Mountain Pleasure Horse","Moyle Horse","Murakoz Horse","Murgese","Mustang Horse","Namib Desert Horse","Nangchen Horse","National Show Horse","Nez Perce Horse","Nivernais Horse","Nokota Horse","Noma","Nonius Horse","Nooitgedachter","Nordlandshest","Noriker Horse","Norman Cob","North American Single-Footer Horse","North Swedish Horse","Norwegian Coldblood Trotter","Norwegian Fjord","Novokirghiz","Oberlander Horse","Ogaden","Oldenburg Horse","Orlov trotter","Ostfriesen","Paint","Pampa Horse","Paso Fino","Pentro Horse","Percheron","Persano Horse","Peruvian Paso","Pintabian","Pleven Horse","Poitevin Horse","Posavac Horse","Pottok","Pryor Mountain Mustang","Przewalski's Horse","Pura Raza Española","Purosangue Orientale","Qatgani","Quarab","Quarter Horse","Racking Horse","Retuerta Horse","Rhenish German Coldblood","Rhinelander Horse","Riwoche Horse","Rocky Mountain Horse","Romanian Sporthorse","Rottaler","Russian Don","Russian Heavy Draft","Russian Trotter","Saddlebred","Salerno Horse","Samolaco Horse","San Fratello Horse","Sarcidano Horse","Sardinian Anglo-Arab","Schleswig Coldblood","Schwarzwälder Kaltblut","Selale","Sella Italiano","Selle Français","Shagya Arabian","Shan Horse","Shire Horse","Siciliano Indigeno","Silesian Horse","Sokolsky Horse","Sorraia","South German Coldblood","Soviet Heavy Draft","Spanish Anglo-Arab","Spanish Barb","Spanish Jennet Horse","Spanish Mustang","Spanish Tarpan","Spanish-Norman Horse","Spiti Horse","Spotted Saddle Horse","Standardbred Horse","Suffolk Punch","Swedish Ardennes","Swedish coldblood trotter","Swedish Warmblood","Swiss Warmblood","Taishū Horse","Takhi","Tawleed","Tchernomor","Tennessee Walking Horse","Tersk Horse","Thoroughbred","Tiger Horse","Tinker Horse","Tolfetano","Tori Horse","Trait Du Nord","Trakehner","Tsushima","Tuigpaard","Ukrainian Riding Horse","Unmol Horse","Uzunyayla","Ventasso Horse","Virginia Highlander","Vlaamperd","Vladimir Heavy Draft","Vyatka","Waler","Waler Horse","Walkaloosa","Warlander","Warmblood","Welsh Cob","Westphalian Horse","Wielkopolski","Württemberger","Xilingol Horse","Yakutian Horse","Yili Horse","Yonaguni Horse","Zaniskari","Žemaitukas","Zhemaichu","Zweibrücker"],_Gt=["Acacia-ants","Acorn-plum gall","Aerial yellowjacket","Africanized honey bee","Allegheny mound ant","Almond stone wasp","Ant","Arboreal ant","Argentine ant","Asian paper wasp","Baldfaced hornet","Bee","Bigheaded ant","Black and yellow mud dauber","Black carpenter ant","Black imported fire ant","Blue horntail woodwasp","Blue orchard bee","Braconid wasp","Bumble bee","Carpenter ant","Carpenter wasp","Chalcid wasp","Cicada killer","Citrus blackfly parasitoid","Common paper wasp","Crazy ant","Cuckoo wasp","Cynipid gall wasp","Eastern Carpenter bee","Eastern yellowjacket","Elm sawfly","Encyrtid wasp","Erythrina gall wasp","Eulophid wasp","European hornet","European imported fire ant","False honey ant","Fire ant","Forest bachac","Forest yellowjacket","German yellowjacket","Ghost ant","Giant ichneumon wasp","Giant resin bee","Giant wood wasp","Golden northern bumble bee","Golden paper wasp","Gouty oak gall","Grass Carrying Wasp","Great black wasp","Great golden digger wasp","Hackberry nipple gall parasitoid","Honey bee","Horned oak gall","Horse guard wasp","Hunting wasp","Ichneumonid wasp","Keyhole wasp","Knopper gall","Large garden bumble bee","Large oak-apple gall","Leafcutting bee","Little fire ant","Little yellow ant","Long-horned bees","Long-legged ant","Macao paper wasp","Mallow bee","Marble gall","Mossyrose gall wasp","Mud-daubers","Multiflora rose seed chalcid","Oak apple gall wasp","Oak rough bulletgall wasp","Oak saucer gall","Oak shoot sawfly","Odorous house ant","Orange-tailed bumble bee","Orangetailed potter wasp","Oriental chestnut gall wasp","Paper wasp","Pavement ant","Pigeon tremex","Pip gall wasp","Prairie yellowjacket","Pteromalid wasp","Pyramid ant","Raspberry Horntail","Red ant","Red carpenter ant","Red harvester ant","Red imported fire ant","Red wasp","Red wood ant","Red-tailed wasp","Reddish carpenter ant","Rough harvester ant","Sawfly parasitic wasp","Scale parasitoid","Silky ant","Sirex woodwasp","Siricid woodwasp","Smaller yellow ant","Southeastern blueberry bee","Southern fire ant","Southern yellowjacket","Sphecid wasp","Stony gall","Sweat bee","Texas leafcutting ant","Tiphiid wasp","Torymid wasp","Tramp ant","Valentine ant","Velvet ant","Vespid wasp","Weevil parasitoid","Western harvester ant","Western paper wasp","Western thatching ant","Western yellowjacket","White-horned horntail","Willow shoot sawfly","Woodwasp","Wool sower gall maker","Yellow and black potter wasp","Yellow Crazy Ant","Yellow-horned horntail"],DGt=["Asiatic Lion","Barbary Lion","West African Lion","Northeast Congo Lion","Masai Lion","Transvaal lion","Cape lion"],AGt=["American","American Chinchilla","American Fuzzy Lop","American Sable","Argente Brun","Belgian Hare","Beveren","Blanc de Hotot","Britannia Petite","Californian","Champagne D’Argent","Checkered Giant","Cinnamon","Crème D’Argent","Dutch","Dwarf Hotot","English Angora","English Lop","English Spot","Flemish Giant","Florida White","French Angora","French Lop","Giant Angora","Giant Chinchilla","Harlequin","Havana","Himalayan","Holland Lop","Jersey Wooly","Lilac","Lionhead","Mini Lop","Mini Rex","Mini Satin","Netherland Dwarf","New Zealand","Palomino","Polish","Rex","Rhinelander","Satin","Satin Angora","Silver","Silver Fox","Silver Marten","Standard Chinchilla","Tan","Thrianta"],NGt=["Abrocoma","Abrocoma schistacea","Aconaemys","Aconaemys porteri","African brush-tailed porcupine","Andean mountain cavy","Argentine tuco-tuco","Ashy chinchilla rat","Asiatic brush-tailed porcupine","Atherurus","Azara's agouti","Azara's tuco-tuco","Bahia porcupine","Bathyergus","Bathyergus janetta","Bathyergus suillus","Bennett's chinchilla rat","Bicolored-spined porcupine","Black agouti","Black dwarf porcupine","Black-rumped agouti","Black-tailed hairy dwarf porcupine","Bolivian chinchilla rat","Bolivian tuco-tuco","Bonetto's tuco-tuco","Brandt's yellow-toothed cavy","Brazilian guinea pig","Brazilian porcupine","Brazilian tuco-tuco","Bridge's degu","Brown hairy dwarf porcupine","Budin's chinchilla rat, A. budini","Cape porcupine","Catamarca tuco-tuco","Cavia","Central American agouti","Chacoan tuco-tuco","Chilean rock rat","Chinchilla","Coendou","Coiban agouti","Colburn's tuco-tuco","Collared tuco-tuco","Common degu","Common yellow-toothed cavy","Conover's tuco-tuco","Coruro","Crested agouti","Crested porcupine","Cryptomys","Cryptomys bocagei","Cryptomys damarensis","Cryptomys foxi","Cryptomys hottentotus","Cryptomys mechowi","Cryptomys ochraceocinereus","Cryptomys zechi","Ctenomys","Cuniculus","Cuscomys","Cuscomys ashanika","Dactylomys","Dactylomys boliviensis","Dactylomys dactylinus","Dactylomys peruanus","Dasyprocta","Domestic guinea pig","Emily's tuco-tuco","Erethizon","Famatina chinchilla rat","Frosted hairy dwarf porcupine","Fukomys","Fukomys amatus","Fukomys anselli","Fukomys bocagei","Fukomys damarensis","Fukomys darlingi","Fukomys foxi","Fukomys ilariae","Fukomys kafuensis","Fukomys mechowii","Fukomys micklemi","Fukomys occlusus","Fukomys ochraceocinereus","Fukomys whytei","Fukomys zechi","Furtive tuco-tuco","Galea","Georychus","Georychus capensis","Golden viscacha-rat","Goya tuco-tuco","Greater guinea pig","Green acouchi","Haig's tuco-tuco","Heliophobius","Heliophobius argenteocinereus","Heterocephalus","Heterocephalus glaber","Highland tuco-tuco","Hystrix","Indian porcupine","Isla Mocha degu","Kalinowski agouti","Kannabateomys","Kannabateomys amblyonyx","Lagidium","Lagostomus","Lewis' tuco-tuco","Long-tailed chinchilla","Long-tailed porcupine","Los Chalchaleros' viscacha-rat","Lowland paca","Magellanic tuco-tuco","Malayan porcupine","Maule tuco-tuco","Mendoza tuco-tuco","Mexican agouti","Mexican hairy dwarf porcupine","Microcavia","Montane guinea pig","Moon-toothed degu","Mottled tuco-tuco","Mountain degu","Mountain paca","Mountain viscacha-rat","Myoprocta","Natterer's tuco-tuco","North American porcupine","Northern viscacha","Octodon","Octodontomys","Octomys","Olallamys","Olallamys albicauda","Olallamys edax","Orinoco agouti","Paraguaian hairy dwarf porcupine","Pearson's tuco-tuco","Peruvian tuco-tuco","Philippine porcupine","Pipanacoctomys","Plains viscacha","Plains viscacha-rat","Porteous' tuco-tuco","Punta de Vacas chinchilla rat","Red acouchi","Red-rumped agouti","Reddish tuco-tuco","Rio Negro tuco-tuco","Robust tuco-tuco","Roosmalen's dwarf porcupine","Rothschild's porcupine","Ruatan Island agouti","Sage's rock rat","Salinoctomys","Salta tuco-tuco","San Luis tuco-tuco","Santa Catarina's guinea pig","Shiny guinea pig","Shipton's mountain cavy","Short-tailed chinchilla","Silky tuco-tuco","Social tuco-tuco","Southern mountain cavy","Southern tuco-tuco","Southern viscacha","Spalacopus","Spix's yellow-toothed cavy","Steinbach's tuco-tuco","Streaked dwarf porcupine","Strong tuco-tuco","Stump-tailed porcupine","Sumatran porcupine","Sunda porcupine","Talas tuco-tuco","Tawny tuco-tuco","Thick-spined porcupine","Tiny tuco-tuco","Trichys","Tucuman tuco-tuco","Tympanoctomys","Uspallata chinchilla rat","White-toothed tuco-tuco","Wolffsohn's viscacha"],kGt=["Viper Adder","Common adder","Death Adder","Desert death adder","Horned adder","Long-nosed adder","Many-horned adder","Mountain adder","Mud adder","Namaqua dwarf adder","Nightingale adder","Peringuey's adder","Puff adder","African puff adder","Rhombic night adder","Sand adder","Dwarf sand adder","Namib dwarf sand adder","Water adder","Aesculapian snake","Anaconda","Bolivian anaconda","De Schauensee's anaconda","Green anaconda","Yellow anaconda","Arafura file snake","Asp","European asp","Egyptian asp","African beaked snake","Ball Python","Bird snake","Black-headed snake","Mexican black kingsnake","Black rat snake","Black snake","Red-bellied black snake","Blind snake","Brahminy blind snake","Texas blind snake","Western blind snake","Boa","Abaco Island boa","Amazon tree boa","Boa constrictor","Cuban boa","Dumeril's boa","Dwarf boa","Emerald tree boa","Hogg Island boa","Jamaican boa","Madagascar ground boa","Madagascar tree boa","Puerto Rican boa","Rainbow boa","Red-tailed boa","Rosy boa","Rubber boa","Sand boa","Tree boa","Boiga","Boomslang","Brown snake","Eastern brown snake","Bull snake","Bushmaster","Dwarf beaked snake","Rufous beaked snake","Canebrake","Cantil","Cascabel","Cat-eyed snake","Banded cat-eyed snake","Green cat-eyed snake","Cat snake","Andaman cat snake","Beddome's cat snake","Dog-toothed cat snake","Forsten's cat snake","Gold-ringed cat snake","Gray cat snake","Many-spotted cat snake","Tawny cat snake","Chicken snake","Coachwhip snake","Cobra","Andaman cobra","Arabian cobra","Asian cobra","Banded water cobra","Black-necked cobra","Black-necked spitting cobra","Black tree cobra","Burrowing cobra","Cape cobra","Caspian cobra","Congo water cobra","Common cobra","Eastern water cobra","Egyptian cobra","Equatorial spitting cobra","False cobra","False water cobra","Forest cobra","Gold tree cobra","Indian cobra","Indochinese spitting cobra","Javan spitting cobra","King cobra","Mandalay cobra","Mozambique spitting cobra","North Philippine cobra","Nubian spitting cobra","Philippine cobra","Red spitting cobra","Rinkhals cobra","Shield-nosed cobra","Sinai desert cobra","Southern Indonesian spitting cobra","Southern Philippine cobra","Southwestern black spitting cobra","Snouted cobra","Spectacled cobra","Spitting cobra","Storm water cobra","Thai cobra","Taiwan cobra","Zebra spitting cobra","Collett's snake","Congo snake","Copperhead","American copperhead","Australian copperhead","Coral snake","Arizona coral snake","Beddome's coral snake","Brazilian coral snake","Cape coral snake","Harlequin coral snake","High Woods coral snake","Malayan long-glanded coral snake","Texas Coral Snake","Western coral snake","Corn snake","South eastern corn snake","Cottonmouth","Crowned snake","Cuban wood snake","Eastern hognose snake","Egg-eater","Eastern coral snake","Fer-de-lance","Fierce snake","Fishing snake","Flying snake","Golden tree snake","Indian flying snake","Moluccan flying snake","Ornate flying snake","Paradise flying snake","Twin-Barred tree snake","Banded Flying Snake","Fox snake, three species of Pantherophis","Forest flame snake","Garter snake","Checkered garter snake","Common garter snake","San Francisco garter snake","Texas garter snake","Cape gopher snake","Grass snake","Green snake","Rough green snake","Smooth green snake","Ground snake","Common ground snake","Three-lined ground snake","Western ground snake","Habu","Hognose snake","Blonde hognose snake","Dusty hognose snake","Jan's hognose snake","Giant Malagasy hognose snake","Mexican hognose snake","South American hognose snake","Hundred pacer","Ikaheka snake","Indigo snake","Jamaican Tree Snake","Keelback","Asian keelback","Assam keelback","Black-striped keelback","Buff striped keelback","Burmese keelback","Checkered keelback","Common keelback","Hill keelback","Himalayan keelback","Khasi Hills keelback","Modest keelback","Nicobar Island keelback","Nilgiri keelback","Orange-collared keelback","Red-necked keelback","Sikkim keelback","Speckle-bellied keelback","White-lipped keelback","Wynaad keelback","Yunnan keelback","King brown","King snake","California kingsnake","Desert kingsnake","Grey-banded kingsnake","North eastern king snake","Prairie kingsnake","Scarlet kingsnake","Speckled kingsnake","Krait","Banded krait","Blue krait","Black krait","Burmese krait","Ceylon krait","Indian krait","Lesser black krait","Malayan krait","Many-banded krait","Northeastern hill krait","Red-headed krait","Sind krait","Large shield snake","Lancehead","Common lancehead","Lora","Grey Lora","Lyre snake","Baja California lyresnake","Central American lyre snake","Texas lyre snake","Eastern lyre snake","Machete savane","Mamba","Black mamba","Green mamba","Eastern green mamba","Western green mamba","Mamushi","Mangrove snake","Milk snake","Moccasin snake","Montpellier snake","Mud snake","Eastern mud snake","Western mud snake","Mussurana","Night snake","Cat-eyed night snake","Texas night snake","Nichell snake","Narrowhead Garter Snake","Nose-horned viper","Rhinoceros viper","Vipera ammodytes","Parrot snake","Mexican parrot snake","Patchnose snake","Perrotet's shieldtail snake","Pine snake","Pipe snake","Asian pipe snake","Dwarf pipe snake","Red-tailed pipe snake","Python","African rock python","Amethystine python","Angolan python","Australian scrub python","Ball python","Bismarck ringed python","Black headed python","Blood python","Boelen python","Borneo short-tailed python","Bredl's python","Brown water python","Burmese python","Calabar python","Western carpet python","Centralian carpet python","Coastal carpet python","Inland carpet python","Jungle carpet python","New Guinea carpet python","Northwestern carpet python","Southwestern carpet python","Children's python","Dauan Island water python","Desert woma python","Diamond python","Flinders python","Green tree python","Halmahera python","Indian python","Indonesian water python","Macklot's python","Mollucan python","Oenpelli python","Olive python","Papuan python","Pygmy python","Red blood python","Reticulated python","Kayaudi dwarf reticulated python","Selayer reticulated python","Rough-scaled python","Royal python","Savu python","Spotted python","Stimson's python","Sumatran short-tailed python","Tanimbar python","Timor python","Wetar Island python","White-lipped python","Brown white-lipped python","Northern white-lipped python","Southern white-lipped python","Woma python","Western woma python","Queen snake","Racer","Bimini racer","Buttermilk racer","Eastern racer","Eastern yellowbelly sad racer","Mexican racer","Southern black racer","Tan racer","West Indian racer","Raddysnake","Southwestern blackhead snake","Rat snake","Baird's rat snake","Beauty rat snake","Great Plains rat snake","Green rat snake","Japanese forest rat snake","Japanese rat snake","King rat snake","Mandarin rat snake","Persian rat snake","Red-backed rat snake","Twin-spotted rat snake","Yellow-striped rat snake","Manchurian Black Water Snake","Rattlesnake","Arizona black rattlesnake","Aruba rattlesnake","Chihuahuan ridge-nosed rattlesnake","Coronado Island rattlesnake","Durango rock rattlesnake","Dusky pigmy rattlesnake","Eastern diamondback rattlesnake","Grand Canyon rattlesnake","Great Basin rattlesnake","Hopi rattlesnake","Lance-headed rattlesnake","Long-tailed rattlesnake","Massasauga rattlesnake","Mexican green rattlesnake","Mexican west coast rattlesnake","Midget faded rattlesnake","Mojave rattlesnake","Northern black-tailed rattlesnake","Oaxacan small-headed rattlesnake","Rattler","Red diamond rattlesnake","Southern Pacific rattlesnake","Southwestern speckled rattlesnake","Tancitaran dusky rattlesnake","Tiger rattlesnake","Timber rattlesnake","Tropical rattlesnake","Twin-spotted rattlesnake","Uracoan rattlesnake","Western diamondback rattlesnake","Ribbon snake","Rinkhals","River jack","Sea snake","Annulated sea snake","Beaked sea snake","Dubois's sea snake","Hardwicke's sea snake","Hook Nosed Sea Snake","Olive sea snake","Pelagic sea snake","Stoke's sea snake","Yellow-banded sea snake","Yellow-bellied sea snake","Yellow-lipped sea snake","Shield-tailed snake","Sidewinder","Colorado desert sidewinder","Mojave desert sidewinder","Sonoran sidewinder","Small-eyed snake","Smooth snake","Brazilian smooth snake","European smooth snake","Stiletto snake","Striped snake","Japanese striped snake","Sunbeam snake","Taipan","Central ranges taipan","Coastal taipan","Inland taipan","Paupan taipan","Tentacled snake","Tic polonga","Tiger snake","Chappell Island tiger snake","Common tiger snake","Down's tiger snake","Eastern tiger snake","King Island tiger snake","Krefft's tiger snake","Peninsula tiger snake","Tasmanian tiger snake","Western tiger snake","Tigre snake","Tree snake","Blanding's tree snake","Blunt-headed tree snake","Brown tree snake","Long-nosed tree snake","Many-banded tree snake","Northern tree snake","Trinket snake","Black-banded trinket snake","Twig snake","African twig snake","Twin Headed King Snake","Titanboa","Urutu","Vine snake","Asian Vine Snake, Whip Snake","American Vine Snake","Mexican vine snake","Viper","Asp viper","Bamboo viper","Bluntnose viper","Brazilian mud Viper","Burrowing viper","Bush viper","Great Lakes bush viper","Hairy bush viper","Nitsche's bush viper","Rough-scaled bush viper","Spiny bush viper","Carpet viper","Crossed viper","Cyclades blunt-nosed viper","Eyelash viper","False horned viper","Fea's viper","Fifty pacer","Gaboon viper","Hognosed viper","Horned desert viper","Horned viper","Jumping viper","Kaznakov's viper","Leaf-nosed viper","Leaf viper","Levant viper","Long-nosed viper","McMahon's viper","Mole viper","Palestine viper","Pallas' viper","Palm viper","Amazonian palm viper","Black-speckled palm-pitviper","Eyelash palm-pitviper","Green palm viper","Mexican palm-pitviper","Guatemalan palm viper","Honduran palm viper","Siamese palm viper","Side-striped palm-pitviper","Yellow-lined palm viper","Pit viper","Banded pitviper","Bamboo pitviper","Barbour's pit viper","Black-tailed horned pit viper","Bornean pitviper","Brongersma's pitviper","Brown spotted pitviper[4]","Cantor's pitviper","Elegant pitviper","Eyelash pit viper","Fan-Si-Pan horned pitviper","Flat-nosed pitviper","Godman's pit viper","Green tree pit viper","Habu pit viper","Hagen's pitviper","Horseshoe pitviper","Jerdon's pitviper","Kanburian pit viper","Kaulback's lance-headed pitviper","Kham Plateau pitviper","Large-eyed pitviper","Malabar rock pitviper","Malayan pit viper","Mangrove pit viper","Mangshan pitviper","Motuo bamboo pitviper","Nicobar bamboo pitviper","Philippine pitviper","Pointed-scaled pit viper[5]","Red-tailed bamboo pitviper","Schultze's pitviper","Stejneger's bamboo pitviper","Sri Lankan pit viper","Temple pit viper","Tibetan bamboo pitviper","Tiger pit viper","Undulated pit viper","Wagler's pit viper","Wirot's pit viper","Portuguese viper","Saw-scaled viper","Schlegel's viper","Sedge viper","Sharp-nosed viper","Snorkel viper","Temple viper","Tree viper","Chinese tree viper","Guatemalan tree viper","Hutton's tree viper","Indian tree viper","Large-scaled tree viper","Malcolm's tree viper","Nitsche's tree viper","Pope's tree viper","Rough-scaled tree viper","Rungwe tree viper","Sumatran tree viper","White-lipped tree viper","Ursini's viper","Western hog-nosed viper","Wart snake","Water moccasin","Water snake","Bocourt's water snake","Northern water snake","Whip snake","Long-nosed whip snake","Wolf snake","African wolf snake","Barred wolf snake","Worm snake","Common worm snake","Longnosed worm snake","Wutu","Yarara","Zebra snake"],MGt=["dog","cat","snake","bear","lion","cetacean","insect","crocodilia","cow","bird","fish","rabbit","horse"],ZGt={bear:CGt,bird:vGt,cat:yGt,cetacean:IGt,cow:wGt,crocodilia:SGt,dog:xGt,fish:LGt,horse:FGt,insect:_Gt,lion:DGt,rabbit:AGt,rodent:NGt,snake:kGt,type:MGt},TGt=ZGt,EGt=["{{person.name}}","{{company.name}}"],WGt=["Redhold","Treeflex","Trippledex","Kanlam","Bigtax","Daltfresh","Toughjoyfax","Mat Lam Tam","Otcom","Tres-Zap","Y-Solowarm","Tresom","Voltsillam","Biodex","Greenlam","Viva","Matsoft","Temp","Zoolab","Subin","Rank","Job","Stringtough","Tin","It","Home Ing","Zamit","Sonsing","Konklab","Alpha","Latlux","Voyatouch","Alphazap","Holdlamis","Zaam-Dox","Sub-Ex","Quo Lux","Bamity","Ventosanzap","Lotstring","Hatity","Tempsoft","Overhold","Fixflex","Konklux","Zontrax","Tampflex","Span","Namfix","Transcof","Stim","Fix San","Sonair","Stronghold","Fintone","Y-find","Opela","Lotlux","Ronstring","Zathin","Duobam","Keylex"],RGt=["0.#.#","0.##","#.##","#.#","#.#.#"],GGt={author:EGt,name:WGt,version:RGt},VGt=GGt,XGt=["###-###-####","(###) ###-####","1-###-###-####","###.###.####"],PGt={formats:XGt},OGt=PGt,BGt=["red","green","blue","yellow","purple","mint green","teal","white","black","orange","pink","grey","maroon","violet","turquoise","tan","sky blue","salmon","plum","orchid","olive","magenta","lime","ivory","indigo","gold","fuchsia","cyan","azure","lavender","silver"],zGt={human:BGt},YGt=zGt,HGt=["Books","Movies","Music","Games","Electronics","Computers","Home","Garden","Tools","Grocery","Health","Beauty","Toys","Kids","Baby","Clothing","Shoes","Jewelery","Sports","Outdoors","Automotive","Industrial"],UGt=["Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support","The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive","New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016","The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality","The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design","The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J","The Football Is Good For Training And Recreational Purposes","Carbonite web goalkeeper gloves are ergonomically designed to give easy fit","Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles","New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart","The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients","Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals"],JGt={adjective:["Small","Ergonomic","Electronic","Rustic","Intelligent","Gorgeous","Incredible","Elegant","Fantastic","Practical","Modern","Recycled","Sleek","Bespoke","Awesome","Generic","Handcrafted","Handmade","Oriental","Licensed","Luxurious","Refined","Unbranded","Tasty"],material:["Steel","Bronze","Wooden","Concrete","Plastic","Cotton","Granite","Rubber","Metal","Soft","Fresh","Frozen"],product:["Chair","Car","Computer","Keyboard","Mouse","Bike","Ball","Gloves","Pants","Shirt","Table","Shoes","Hat","Towels","Soap","Tuna","Chicken","Fish","Cheese","Bacon","Pizza","Salad","Sausages","Chips"]},KGt={department:HGt,product_description:UGt,product_name:JGt},jGt=KGt,QGt=["Adaptive","Advanced","Ameliorated","Assimilated","Automated","Balanced","Business-focused","Centralized","Cloned","Compatible","Configurable","Cross-group","Cross-platform","Customer-focused","Customizable","Decentralized","De-engineered","Devolved","Digitized","Distributed","Diverse","Down-sized","Enhanced","Enterprise-wide","Ergonomic","Exclusive","Expanded","Extended","Face to face","Focused","Front-line","Fully-configurable","Function-based","Fundamental","Future-proofed","Grass-roots","Horizontal","Implemented","Innovative","Integrated","Intuitive","Inverse","Managed","Mandatory","Monitored","Multi-channelled","Multi-lateral","Multi-layered","Multi-tiered","Networked","Object-based","Open-architected","Open-source","Operative","Optimized","Optional","Organic","Organized","Persevering","Persistent","Phased","Polarised","Pre-emptive","Proactive","Profit-focused","Profound","Programmable","Progressive","Public-key","Quality-focused","Reactive","Realigned","Re-contextualized","Re-engineered","Reduced","Reverse-engineered","Right-sized","Robust","Seamless","Secured","Self-enabling","Sharable","Stand-alone","Streamlined","Switchable","Synchronised","Synergistic","Synergized","Team-oriented","Total","Triple-buffered","Universal","Up-sized","Upgradable","User-centric","User-friendly","Versatile","Virtual","Visionary","Vision-oriented"],$Gt=["clicks-and-mortar","value-added","vertical","proactive","robust","revolutionary","scalable","leading-edge","innovative","intuitive","strategic","e-business","mission-critical","sticky","one-to-one","24/7","end-to-end","global","B2B","B2C","granular","frictionless","virtual","viral","dynamic","24/365","best-of-breed","killer","magnetic","bleeding-edge","web-enabled","interactive","dot-com","sexy","back-end","real-time","efficient","front-end","distributed","seamless","extensible","turn-key","world-class","open-source","cross-platform","cross-media","synergistic","bricks-and-clicks","out-of-the-box","enterprise","integrated","impactful","wireless","transparent","next-generation","cutting-edge","user-centric","visionary","customized","ubiquitous","plug-and-play","collaborative","compelling","holistic","rich"],qGt=["synergies","paradigms","markets","partnerships","infrastructures","platforms","initiatives","channels","eyeballs","communities","ROI","solutions","action-items","portals","niches","technologies","content","supply-chains","convergence","relationships","architectures","interfaces","e-markets","e-commerce","systems","bandwidth","models","mindshare","deliverables","users","schemas","networks","applications","metrics","e-business","functionalities","experiences","web services","methodologies","blockchains","lifetime value"],eVt=["implement","utilize","integrate","streamline","optimize","evolve","transform","embrace","enable","orchestrate","leverage","reinvent","aggregate","architect","enhance","incentivize","morph","empower","envisioneer","monetize","harness","facilitate","seize","disintermediate","synergize","strategize","deploy","brand","grow","target","syndicate","synthesize","deliver","mesh","incubate","engage","maximize","benchmark","expedite","reintermediate","whiteboard","visualize","repurpose","innovate","scale","unleash","drive","extend","engineer","revolutionize","generate","exploit","transition","e-enable","iterate","cultivate","matrix","productize","redefine","recontextualize"],tVt=["24 hour","24/7","3rd generation","4th generation","5th generation","6th generation","actuating","analyzing","asymmetric","asynchronous","attitude-oriented","background","bandwidth-monitored","bi-directional","bifurcated","bottom-line","clear-thinking","client-driven","client-server","coherent","cohesive","composite","context-sensitive","contextually-based","content-based","dedicated","demand-driven","didactic","directional","discrete","disintermediate","dynamic","eco-centric","empowering","encompassing","even-keeled","executive","explicit","exuding","fault-tolerant","foreground","fresh-thinking","full-range","global","grid-enabled","heuristic","high-level","holistic","homogeneous","human-resource","hybrid","impactful","incremental","intangible","interactive","intermediate","leading edge","local","logistical","maximized","methodical","mission-critical","mobile","modular","motivating","multimedia","multi-state","multi-tasking","national","needs-based","neutral","next generation","non-volatile","object-oriented","optimal","optimizing","radical","real-time","reciprocal","regional","responsive","scalable","secondary","solution-oriented","stable","static","systematic","systemic","system-worthy","tangible","tertiary","transitional","uniform","upward-trending","user-facing","value-added","web-enabled","well-modulated","zero administration","zero defect","zero tolerance"],nVt=["{{person.last_name}} {{company.suffix}}","{{person.last_name}} - {{person.last_name}}","{{person.last_name}}, {{person.last_name}} and {{person.last_name}}"],iVt=["ability","access","adapter","algorithm","alliance","analyzer","application","approach","architecture","archive","artificial intelligence","array","attitude","benchmark","budgetary management","capability","capacity","challenge","circuit","collaboration","complexity","concept","conglomeration","contingency","core","customer loyalty","database","data-warehouse","definition","emulation","encoding","encryption","extranet","firmware","flexibility","focus group","forecast","frame","framework","function","functionalities","Graphic Interface","groupware","Graphical User Interface","hardware","help-desk","hierarchy","hub","implementation","info-mediaries","infrastructure","initiative","installation","instruction set","interface","internet solution","intranet","knowledge user","knowledge base","local area network","leverage","matrices","matrix","methodology","middleware","migration","model","moderator","monitoring","moratorium","neural-net","open architecture","open system","orchestration","paradigm","parallelism","policy","portal","pricing structure","process improvement","product","productivity","project","projection","protocol","secured line","service-desk","software","solution","standardization","strategy","structure","success","superstructure","support","synergy","system engine","task-force","throughput","time-frame","toolset","utilisation","website","workforce"],rVt=["Inc","and Sons","LLC","Group"],oVt={adjective:QGt,buzz_adjective:$Gt,buzz_noun:qGt,buzz_verb:eVt,descriptor:tVt,name_pattern:nVt,noun:iVt,suffix:rVt},sVt=oVt,aVt=["id","title","name","email","phone","token","group","category","password","comment","avatar","status","createdAt","updatedAt"],lVt={column:aVt},uVt=lVt,cVt={wide:["January","February","March","April","May","June","July","August","September","October","November","December"],abbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]},dVt={wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],abbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},hVt={month:cVt,weekday:dVt},gVt=hVt,mVt=["Checking","Savings","Money Market","Investment","Home Loan","Credit Card","Auto Loan","Personal Loan"],fVt=["34##-######-####L","37##-######-####L"],pVt=["30[0-5]#-######-###L","36##-######-###L","54##-####-####-###L"],bVt=["6011-####-####-###L","65##-####-####-###L","64[4-9]#-####-####-###L","6011-62##-####-####-###L","65##-62##-####-####-###L","64[4-9]#-62##-####-####-###L"],CVt=["3528-####-####-###L","3529-####-####-###L","35[3-8]#-####-####-###L"],vVt=["5018-#{4}-#{4}-#{3}L","5020-#{4}-#{4}-#{3}L","5038-#{4}-#{4}-#{3}L","5893-#{4}-#{4}-#{3}L","6304-#{4}-#{4}-#{3}L","6759-#{4}-#{4}-#{3}L","676[1-3]-####-####-###L","5018#{11,15}L","5020#{11,15}L","5038#{11,15}L","5893#{11,15}L","6304#{11,15}L","6759#{11,15}L","676[1-3]#{11,15}L"],yVt=["5[1-5]##-####-####-###L","2[221-720]-####-####-###L"],IVt=["4###########L","4###-####-####-###L"],wVt={american_express:fVt,diners_club:pVt,discover:bVt,jcb:CVt,maestro:vVt,mastercard:yVt,visa:IVt},SVt=wVt,xVt=[{name:"UAE Dirham",code:"AED",symbol:""},{name:"Afghani",code:"AFN",symbol:"؋"},{name:"Lek",code:"ALL",symbol:"Lek"},{name:"Armenian Dram",code:"AMD",symbol:""},{name:"Netherlands Antillian Guilder",code:"ANG",symbol:"ƒ"},{name:"Kwanza",code:"AOA",symbol:""},{name:"Argentine Peso",code:"ARS",symbol:"$"},{name:"Australian Dollar",code:"AUD",symbol:"$"},{name:"Aruban Guilder",code:"AWG",symbol:"ƒ"},{name:"Azerbaijanian Manat",code:"AZN",symbol:"ман"},{name:"Convertible Marks",code:"BAM",symbol:"KM"},{name:"Barbados Dollar",code:"BBD",symbol:"$"},{name:"Taka",code:"BDT",symbol:""},{name:"Bulgarian Lev",code:"BGN",symbol:"лв"},{name:"Bahraini Dinar",code:"BHD",symbol:""},{name:"Burundi Franc",code:"BIF",symbol:""},{name:"Bermudian Dollar (customarily known as Bermuda Dollar)",code:"BMD",symbol:"$"},{name:"Brunei Dollar",code:"BND",symbol:"$"},{name:"Boliviano boliviano",code:"BOB",symbol:"Bs"},{name:"Brazilian Real",code:"BRL",symbol:"R$"},{name:"Bahamian Dollar",code:"BSD",symbol:"$"},{name:"Pula",code:"BWP",symbol:"P"},{name:"Belarusian Ruble",code:"BYN",symbol:"Rbl"},{name:"Belize Dollar",code:"BZD",symbol:"BZ$"},{name:"Canadian Dollar",code:"CAD",symbol:"$"},{name:"Congolese Franc",code:"CDF",symbol:""},{name:"Swiss Franc",code:"CHF",symbol:"CHF"},{name:"Chilean Peso",code:"CLP",symbol:"$"},{name:"Yuan Renminbi",code:"CNY",symbol:"¥"},{name:"Colombian Peso",code:"COP",symbol:"$"},{name:"Costa Rican Colon",code:"CRC",symbol:"₡"},{name:"Cuban Peso",code:"CUP",symbol:"₱"},{name:"Cape Verde Escudo",code:"CVE",symbol:""},{name:"Czech Koruna",code:"CZK",symbol:"Kč"},{name:"Djibouti Franc",code:"DJF",symbol:""},{name:"Danish Krone",code:"DKK",symbol:"kr"},{name:"Dominican Peso",code:"DOP",symbol:"RD$"},{name:"Algerian Dinar",code:"DZD",symbol:""},{name:"Egyptian Pound",code:"EGP",symbol:"£"},{name:"Nakfa",code:"ERN",symbol:""},{name:"Ethiopian Birr",code:"ETB",symbol:""},{name:"Euro",code:"EUR",symbol:"€"},{name:"Fiji Dollar",code:"FJD",symbol:"$"},{name:"Falkland Islands Pound",code:"FKP",symbol:"£"},{name:"Pound Sterling",code:"GBP",symbol:"£"},{name:"Lari",code:"GEL",symbol:""},{name:"Cedi",code:"GHS",symbol:""},{name:"Gibraltar Pound",code:"GIP",symbol:"£"},{name:"Dalasi",code:"GMD",symbol:""},{name:"Guinea Franc",code:"GNF",symbol:""},{name:"Quetzal",code:"GTQ",symbol:"Q"},{name:"Guyana Dollar",code:"GYD",symbol:"$"},{name:"Hong Kong Dollar",code:"HKD",symbol:"$"},{name:"Lempira",code:"HNL",symbol:"L"},{name:"Gourde",code:"HTG",symbol:""},{name:"Forint",code:"HUF",symbol:"Ft"},{name:"Rupiah",code:"IDR",symbol:"Rp"},{name:"New Israeli Sheqel",code:"ILS",symbol:"₪"},{name:"Bhutanese Ngultrum",code:"BTN",symbol:"Nu"},{name:"Indian Rupee",code:"INR",symbol:"₹"},{name:"Iraqi Dinar",code:"IQD",symbol:""},{name:"Iranian Rial",code:"IRR",symbol:"﷼"},{name:"Iceland Krona",code:"ISK",symbol:"kr"},{name:"Jamaican Dollar",code:"JMD",symbol:"J$"},{name:"Jordanian Dinar",code:"JOD",symbol:""},{name:"Yen",code:"JPY",symbol:"¥"},{name:"Kenyan Shilling",code:"KES",symbol:""},{name:"Som",code:"KGS",symbol:"лв"},{name:"Riel",code:"KHR",symbol:"៛"},{name:"Comoro Franc",code:"KMF",symbol:""},{name:"North Korean Won",code:"KPW",symbol:"₩"},{name:"Won",code:"KRW",symbol:"₩"},{name:"Kuwaiti Dinar",code:"KWD",symbol:""},{name:"Cayman Islands Dollar",code:"KYD",symbol:"$"},{name:"Tenge",code:"KZT",symbol:"лв"},{name:"Kip",code:"LAK",symbol:"₭"},{name:"Lebanese Pound",code:"LBP",symbol:"£"},{name:"Sri Lanka Rupee",code:"LKR",symbol:"₨"},{name:"Liberian Dollar",code:"LRD",symbol:"$"},{name:"Libyan Dinar",code:"LYD",symbol:""},{name:"Moroccan Dirham",code:"MAD",symbol:""},{name:"Moldovan Leu",code:"MDL",symbol:""},{name:"Malagasy Ariary",code:"MGA",symbol:""},{name:"Denar",code:"MKD",symbol:"ден"},{name:"Kyat",code:"MMK",symbol:""},{name:"Tugrik",code:"MNT",symbol:"₮"},{name:"Pataca",code:"MOP",symbol:""},{name:"Ouguiya",code:"MRU",symbol:""},{name:"Mauritius Rupee",code:"MUR",symbol:"₨"},{name:"Rufiyaa",code:"MVR",symbol:""},{name:"Kwacha",code:"MWK",symbol:""},{name:"Mexican Peso",code:"MXN",symbol:"$"},{name:"Malaysian Ringgit",code:"MYR",symbol:"RM"},{name:"Metical",code:"MZN",symbol:"MT"},{name:"Naira",code:"NGN",symbol:"₦"},{name:"Cordoba Oro",code:"NIO",symbol:"C$"},{name:"Norwegian Krone",code:"NOK",symbol:"kr"},{name:"Nepalese Rupee",code:"NPR",symbol:"₨"},{name:"New Zealand Dollar",code:"NZD",symbol:"$"},{name:"Rial Omani",code:"OMR",symbol:"﷼"},{name:"Balboa",code:"PAB",symbol:"B/."},{name:"Nuevo Sol",code:"PEN",symbol:"S/."},{name:"Kina",code:"PGK",symbol:""},{name:"Philippine Peso",code:"PHP",symbol:"Php"},{name:"Pakistan Rupee",code:"PKR",symbol:"₨"},{name:"Zloty",code:"PLN",symbol:"zł"},{name:"Guarani",code:"PYG",symbol:"Gs"},{name:"Qatari Rial",code:"QAR",symbol:"﷼"},{name:"New Leu",code:"RON",symbol:"lei"},{name:"Serbian Dinar",code:"RSD",symbol:"Дин."},{name:"Russian Ruble",code:"RUB",symbol:"руб"},{name:"Rwanda Franc",code:"RWF",symbol:""},{name:"Saudi Riyal",code:"SAR",symbol:"﷼"},{name:"Solomon Islands Dollar",code:"SBD",symbol:"$"},{name:"Seychelles Rupee",code:"SCR",symbol:"₨"},{name:"Sudanese Pound",code:"SDG",symbol:""},{name:"Swedish Krona",code:"SEK",symbol:"kr"},{name:"Singapore Dollar",code:"SGD",symbol:"$"},{name:"Saint Helena Pound",code:"SHP",symbol:"£"},{name:"Leone",code:"SLE",symbol:""},{name:"Somali Shilling",code:"SOS",symbol:"S"},{name:"Surinam Dollar",code:"SRD",symbol:"$"},{name:"South Sudanese pound",code:"SSP",symbol:""},{name:"Dobra",code:"STN",symbol:"Db"},{name:"Syrian Pound",code:"SYP",symbol:"£"},{name:"Lilangeni",code:"SZL",symbol:""},{name:"Baht",code:"THB",symbol:"฿"},{name:"Somoni",code:"TJS",symbol:""},{name:"Manat",code:"TMT",symbol:""},{name:"Tunisian Dinar",code:"TND",symbol:""},{name:"Pa'anga",code:"TOP",symbol:""},{name:"Turkish Lira",code:"TRY",symbol:"₺"},{name:"Trinidad and Tobago Dollar",code:"TTD",symbol:"TT$"},{name:"New Taiwan Dollar",code:"TWD",symbol:"NT$"},{name:"Tanzanian Shilling",code:"TZS",symbol:""},{name:"Hryvnia",code:"UAH",symbol:"₴"},{name:"Uganda Shilling",code:"UGX",symbol:""},{name:"US Dollar",code:"USD",symbol:"$"},{name:"Peso Uruguayo",code:"UYU",symbol:"$U"},{name:"Uzbekistan Sum",code:"UZS",symbol:"лв"},{name:"Venezuelan bolívar",code:"VES",symbol:"Bs"},{name:"Dong",code:"VND",symbol:"₫"},{name:"Vatu",code:"VUV",symbol:""},{name:"Tala",code:"WST",symbol:""},{name:"CFA Franc BEAC",code:"XAF",symbol:""},{name:"East Caribbean Dollar",code:"XCD",symbol:"$"},{name:"CFA Franc BCEAO",code:"XOF",symbol:""},{name:"CFP Franc",code:"XPF",symbol:""},{name:"Yemeni Rial",code:"YER",symbol:"﷼"},{name:"Rand",code:"ZAR",symbol:"R"},{name:"Lesotho Loti",code:"LSL",symbol:""},{name:"Namibia Dollar",code:"NAD",symbol:"N$"},{name:"Zambian Kwacha",code:"ZMW",symbol:"K"},{name:"Zimbabwe Dollar",code:"ZWL",symbol:""}],LVt=["deposit","withdrawal","payment","invoice"],FVt={account_type:mVt,credit_card:SVt,currency:xVt,transaction_type:LVt},_Vt=FVt,DVt=["auxiliary","primary","back-end","digital","open-source","virtual","cross-platform","redundant","online","haptic","multi-byte","bluetooth","wireless","1080p","neural","optical","solid state","mobile"],AVt=["backing up","bypassing","hacking","overriding","compressing","copying","navigating","indexing","connecting","generating","quantifying","calculating","synthesizing","transmitting","programming","parsing"],NVt=["driver","protocol","bandwidth","panel","microchip","program","port","card","array","interface","system","sensor","firewall","hard drive","pixel","alarm","feed","monitor","application","transmitter","bus","circuit","capacitor","matrix"],kVt=["If we {{verb}} the {{noun}}, we can get to the {{abbreviation}} {{noun}} through the {{adjective}} {{abbreviation}} {{noun}}!","We need to {{verb}} the {{adjective}} {{abbreviation}} {{noun}}!","Try to {{verb}} the {{abbreviation}} {{noun}}, maybe it will {{verb}} the {{adjective}} {{noun}}!","You can't {{verb}} the {{noun}} without {{ingverb}} the {{adjective}} {{abbreviation}} {{noun}}!","Use the {{adjective}} {{abbreviation}} {{noun}}, then you can {{verb}} the {{adjective}} {{noun}}!","The {{abbreviation}} {{noun}} is down, {{verb}} the {{adjective}} {{noun}} so we can {{verb}} the {{abbreviation}} {{noun}}!","{{ingverb}} the {{noun}} won't do anything, we need to {{verb}} the {{adjective}} {{abbreviation}} {{noun}}!","I'll {{verb}} the {{adjective}} {{abbreviation}} {{noun}}, that should {{noun}} the {{abbreviation}} {{noun}}!"],MVt=["back up","bypass","hack","override","compress","copy","navigate","index","connect","generate","quantify","calculate","synthesize","input","transmit","program","reboot","parse"],ZVt={adjective:DVt,ingverb:AVt,noun:NVt,phrase:kVt,verb:MVt},TVt=ZVt,EVt=["com","biz","info","name","net","org"],WVt=["example.org","example.com","example.net"],RVt=["gmail.com","yahoo.com","hotmail.com"],GVt={domain_suffix:EVt,example_email:WVt,free_email:RVt},VVt=GVt,XVt=["#####","####","###"],PVt=["Abilene","Akron","Alafaya","Alameda","Albany","Albuquerque","Alexandria","Alhambra","Aliso Viejo","Allen","Allentown","Aloha","Alpharetta","Altadena","Altamonte Springs","Altoona","Amarillo","Ames","Anaheim","Anchorage","Anderson","Ankeny","Ann Arbor","Annandale","Antelope","Antioch","Apex","Apopka","Apple Valley","Appleton","Arcadia","Arden-Arcade","Arecibo","Arlington","Arlington Heights","Arvada","Ashburn","Asheville","Aspen Hill","Atascocita","Athens-Clarke County","Atlanta","Attleboro","Auburn","Augusta-Richmond County","Aurora","Austin","Avondale","Azusa","Bakersfield","Baldwin Park","Baltimore","Barnstable Town","Bartlett","Baton Rouge","Battle Creek","Bayamon","Bayonne","Baytown","Beaumont","Beavercreek","Beaverton","Bedford","Bel Air South","Bell Gardens","Belleville","Bellevue","Bellflower","Bellingham","Bend","Bentonville","Berkeley","Berwyn","Bethesda","Bethlehem","Billings","Biloxi","Binghamton","Birmingham","Bismarck","Blacksburg","Blaine","Bloomington","Blue Springs","Boca Raton","Boise City","Bolingbrook","Bonita Springs","Bossier City","Boston","Bothell","Boulder","Bountiful","Bowie","Bowling Green","Boynton Beach","Bozeman","Bradenton","Brandon","Brentwood","Bridgeport","Bristol","Brockton","Broken Arrow","Brookhaven","Brookline","Brooklyn Park","Broomfield","Brownsville","Bryan","Buckeye","Buena Park","Buffalo","Buffalo Grove","Burbank","Burien","Burke","Burleson","Burlington","Burnsville","Caguas","Caldwell","Camarillo","Cambridge","Camden","Canton","Cape Coral","Carlsbad","Carmel","Carmichael","Carolina","Carrollton","Carson","Carson City","Cary","Casa Grande","Casas Adobes","Casper","Castle Rock","Castro Valley","Catalina Foothills","Cathedral City","Catonsville","Cedar Hill","Cedar Park","Cedar Rapids","Centennial","Centreville","Ceres","Cerritos","Champaign","Chandler","Chapel Hill","Charleston","Charlotte","Charlottesville","Chattanooga","Cheektowaga","Chesapeake","Chesterfield","Cheyenne","Chicago","Chico","Chicopee","Chino","Chino Hills","Chula Vista","Cicero","Cincinnati","Citrus Heights","Clarksville","Clearwater","Cleveland","Cleveland Heights","Clifton","Clovis","Coachella","Coconut Creek","Coeur d'Alene","College Station","Collierville","Colorado Springs","Colton","Columbia","Columbus","Commerce City","Compton","Concord","Conroe","Conway","Coon Rapids","Coral Gables","Coral Springs","Corona","Corpus Christi","Corvallis","Costa Mesa","Council Bluffs","Country Club","Covina","Cranston","Cupertino","Cutler Bay","Cuyahoga Falls","Cypress","Dale City","Dallas","Daly City","Danbury","Danville","Davenport","Davie","Davis","Dayton","Daytona Beach","DeKalb","DeSoto","Dearborn","Dearborn Heights","Decatur","Deerfield Beach","Delano","Delray Beach","Deltona","Denton","Denver","Des Moines","Des Plaines","Detroit","Diamond Bar","Doral","Dothan","Downers Grove","Downey","Draper","Dublin","Dubuque","Duluth","Dundalk","Dunwoody","Durham","Eagan","East Hartford","East Honolulu","East Lansing","East Los Angeles","East Orange","East Providence","Eastvale","Eau Claire","Eden Prairie","Edina","Edinburg","Edmond","El Cajon","El Centro","El Dorado Hills","El Monte","El Paso","Elgin","Elizabeth","Elk Grove","Elkhart","Ellicott City","Elmhurst","Elyria","Encinitas","Enid","Enterprise","Erie","Escondido","Euclid","Eugene","Euless","Evanston","Evansville","Everett","Fairfield","Fall River","Fargo","Farmington","Farmington Hills","Fayetteville","Federal Way","Findlay","Fishers","Flagstaff","Flint","Florence-Graham","Florin","Florissant","Flower Mound","Folsom","Fond du Lac","Fontana","Fort Collins","Fort Lauderdale","Fort Myers","Fort Pierce","Fort Smith","Fort Wayne","Fort Worth","Fountain Valley","Fountainebleau","Framingham","Franklin","Frederick","Freeport","Fremont","Fresno","Frisco","Fullerton","Gainesville","Gaithersburg","Galveston","Garden Grove","Gardena","Garland","Gary","Gastonia","Georgetown","Germantown","Gilbert","Gilroy","Glen Burnie","Glendale","Glendora","Glenview","Goodyear","Grand Forks","Grand Island","Grand Junction","Grand Prairie","Grand Rapids","Grapevine","Great Falls","Greeley","Green Bay","Greensboro","Greenville","Greenwood","Gresham","Guaynabo","Gulfport","Hacienda Heights","Hackensack","Haltom City","Hamilton","Hammond","Hampton","Hanford","Harlingen","Harrisburg","Harrisonburg","Hartford","Hattiesburg","Haverhill","Hawthorne","Hayward","Hemet","Hempstead","Henderson","Hendersonville","Hesperia","Hialeah","Hicksville","High Point","Highland","Highlands Ranch","Hillsboro","Hilo","Hoboken","Hoffman Estates","Hollywood","Homestead","Honolulu","Hoover","Houston","Huntersville","Huntington","Huntington Beach","Huntington Park","Huntsville","Hutchinson","Idaho Falls","Independence","Indianapolis","Indio","Inglewood","Iowa City","Irondequoit","Irvine","Irving","Jackson","Jacksonville","Janesville","Jefferson City","Jeffersonville","Jersey City","Johns Creek","Johnson City","Joliet","Jonesboro","Joplin","Jupiter","Jurupa Valley","Kalamazoo","Kannapolis","Kansas City","Kearny","Keller","Kendale Lakes","Kendall","Kenner","Kennewick","Kenosha","Kent","Kentwood","Kettering","Killeen","Kingsport","Kirkland","Kissimmee","Knoxville","Kokomo","La Crosse","La Habra","La Mesa","La Mirada","Lacey","Lafayette","Laguna Niguel","Lake Charles","Lake Elsinore","Lake Forest","Lake Havasu City","Lake Ridge","Lakeland","Lakeville","Lakewood","Lancaster","Lansing","Laredo","Largo","Las Cruces","Las Vegas","Lauderhill","Lawrence","Lawton","Layton","League City","Lee's Summit","Leesburg","Lehi","Lehigh Acres","Lenexa","Levittown","Lewisville","Lexington-Fayette","Lincoln","Linden","Little Rock","Littleton","Livermore","Livonia","Lodi","Logan","Lombard","Lompoc","Long Beach","Longmont","Longview","Lorain","Los Angeles","Louisville/Jefferson County","Loveland","Lowell","Lubbock","Lynchburg","Lynn","Lynwood","Macon-Bibb County","Madera","Madison","Malden","Manchester","Manhattan","Mansfield","Manteca","Maple Grove","Margate","Maricopa","Marietta","Marysville","Mayaguez","McAllen","McKinney","McLean","Medford","Melbourne","Memphis","Menifee","Mentor","Merced","Meriden","Meridian","Mesa","Mesquite","Metairie","Methuen Town","Miami","Miami Beach","Miami Gardens","Middletown","Midland","Midwest City","Milford","Millcreek","Milpitas","Milwaukee","Minneapolis","Minnetonka","Minot","Miramar","Mishawaka","Mission","Mission Viejo","Missoula","Missouri City","Mobile","Modesto","Moline","Monroe","Montebello","Monterey Park","Montgomery","Moore","Moreno Valley","Morgan Hill","Mount Pleasant","Mount Prospect","Mount Vernon","Mountain View","Muncie","Murfreesboro","Murray","Murrieta","Nampa","Napa","Naperville","Nashua","Nashville-Davidson","National City","New Bedford","New Braunfels","New Britain","New Brunswick","New Haven","New Orleans","New Rochelle","New York","Newark","Newport Beach","Newport News","Newton","Niagara Falls","Noblesville","Norfolk","Normal","Norman","North Bethesda","North Charleston","North Highlands","North Las Vegas","North Lauderdale","North Little Rock","North Miami","North Miami Beach","North Port","North Richland Hills","Norwalk","Novato","Novi","O'Fallon","Oak Lawn","Oak Park","Oakland","Oakland Park","Ocala","Oceanside","Odessa","Ogden","Oklahoma City","Olathe","Olympia","Omaha","Ontario","Orange","Orem","Orland Park","Orlando","Oro Valley","Oshkosh","Overland Park","Owensboro","Oxnard","Palatine","Palm Bay","Palm Beach Gardens","Palm Coast","Palm Desert","Palm Harbor","Palm Springs","Palmdale","Palo Alto","Paradise","Paramount","Parker","Parma","Pasadena","Pasco","Passaic","Paterson","Pawtucket","Peabody","Pearl City","Pearland","Pembroke Pines","Pensacola","Peoria","Perris","Perth Amboy","Petaluma","Pflugerville","Pharr","Philadelphia","Phoenix","Pico Rivera","Pine Bluff","Pine Hills","Pinellas Park","Pittsburg","Pittsburgh","Pittsfield","Placentia","Plainfield","Plano","Plantation","Pleasanton","Plymouth","Pocatello","Poinciana","Pomona","Pompano Beach","Ponce","Pontiac","Port Arthur","Port Charlotte","Port Orange","Port St. Lucie","Portage","Porterville","Portland","Portsmouth","Potomac","Poway","Providence","Provo","Pueblo","Quincy","Racine","Raleigh","Rancho Cordova","Rancho Cucamonga","Rancho Palos Verdes","Rancho Santa Margarita","Rapid City","Reading","Redding","Redlands","Redmond","Redondo Beach","Redwood City","Reno","Renton","Reston","Revere","Rialto","Richardson","Richland","Richmond","Rio Rancho","Riverside","Riverton","Riverview","Roanoke","Rochester","Rochester Hills","Rock Hill","Rockford","Rocklin","Rockville","Rockwall","Rocky Mount","Rogers","Rohnert Park","Rosemead","Roseville","Roswell","Round Rock","Rowland Heights","Rowlett","Royal Oak","Sacramento","Saginaw","Salem","Salina","Salinas","Salt Lake City","Sammamish","San Angelo","San Antonio","San Bernardino","San Bruno","San Buenaventura (Ventura)","San Clemente","San Diego","San Francisco","San Jacinto","San Jose","San Juan","San Leandro","San Luis Obispo","San Marcos","San Mateo","San Rafael","San Ramon","San Tan Valley","Sandy","Sandy Springs","Sanford","Santa Ana","Santa Barbara","Santa Clara","Santa Clarita","Santa Cruz","Santa Fe","Santa Maria","Santa Monica","Santa Rosa","Santee","Sarasota","Savannah","Sayreville","Schaumburg","Schenectady","Scottsdale","Scranton","Seattle","Severn","Shawnee","Sheboygan","Shoreline","Shreveport","Sierra Vista","Silver Spring","Simi Valley","Sioux City","Sioux Falls","Skokie","Smyrna","Somerville","South Bend","South Gate","South Hill","South Jordan","South San Francisco","South Valley","South Whittier","Southaven","Southfield","Sparks","Spokane","Spokane Valley","Spring","Spring Hill","Spring Valley","Springdale","Springfield","St. Charles","St. Clair Shores","St. Cloud","St. George","St. Joseph","St. Louis","St. Louis Park","St. Paul","St. Peters","St. Petersburg","Stamford","State College","Sterling Heights","Stillwater","Stockton","Stratford","Strongsville","Suffolk","Sugar Land","Summerville","Sunnyvale","Sunrise","Sunrise Manor","Surprise","Syracuse","Tacoma","Tallahassee","Tamarac","Tamiami","Tampa","Taunton","Taylor","Taylorsville","Temecula","Tempe","Temple","Terre Haute","Texas City","The Hammocks","The Villages","The Woodlands","Thornton","Thousand Oaks","Tigard","Tinley Park","Titusville","Toledo","Toms River","Tonawanda","Topeka","Torrance","Town 'n' Country","Towson","Tracy","Trenton","Troy","Trujillo Alto","Tuckahoe","Tucson","Tulare","Tulsa","Turlock","Tuscaloosa","Tustin","Twin Falls","Tyler","Union City","University","Upland","Urbana","Urbandale","Utica","Vacaville","Valdosta","Vallejo","Vancouver","Victoria","Victorville","Vineland","Virginia Beach","Visalia","Vista","Waco","Waipahu","Waldorf","Walnut Creek","Waltham","Warner Robins","Warren","Warwick","Washington","Waterbury","Waterloo","Watsonville","Waukegan","Waukesha","Wauwatosa","Wellington","Wesley Chapel","West Allis","West Babylon","West Covina","West Des Moines","West Hartford","West Haven","West Jordan","West Lafayette","West New York","West Palm Beach","West Sacramento","West Seneca","West Valley City","Westfield","Westland","Westminster","Weston","Weymouth Town","Wheaton","White Plains","Whittier","Wichita","Wichita Falls","Wilmington","Wilson","Winston-Salem","Woodbury","Woodland","Worcester","Wylie","Wyoming","Yakima","Yonkers","Yorba Linda","York","Youngstown","Yuba City","Yucaipa","Yuma"],OVt=["{{location.city_prefix}} {{person.first_name}}{{location.city_suffix}}","{{location.city_prefix}} {{person.first_name}}","{{person.first_name}}{{location.city_suffix}}","{{person.last_name}}{{location.city_suffix}}","{{location.city_name}}"],BVt=["North","East","West","South","New","Lake","Port","Fort"],zVt=["town","ton","land","ville","berg","burgh","boro","borough","bury","view","port","mouth","stad","stead","furt","chester","cester","fort","field","haven","side","shire","worth"],YVt=["Afghanistan","Aland Islands","Albania","Algeria","American Samoa","Andorra","Angola","Anguilla","Antarctica","Antigua and Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bonaire, Sint Eustatius and Saba","Bosnia and Herzegovina","Botswana","Bouvet Island","Brazil","British Indian Ocean Territory (Chagos Archipelago)","Brunei Darussalam","Bulgaria","Burkina Faso","Burundi","Cambodia","Cameroon","Canada","Cape Verde","Cayman Islands","Central African Republic","Chad","Chile","China","Christmas Island","Cocos (Keeling) Islands","Colombia","Comoros","Congo","Cook Islands","Costa Rica","Cote d'Ivoire","Croatia","Cuba","Curacao","Cyprus","Czechia","Democratic Republic of the Congo","Denmark","Djibouti","Dominica","Dominican Republic","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Eswatini","Ethiopia","Faroe Islands","Falkland Islands (Malvinas)","Fiji","Finland","France","French Guiana","French Polynesia","French Southern Territories","Gabon","Gambia","Georgia","Germany","Ghana","Gibraltar","Greece","Greenland","Grenada","Guadeloupe","Guam","Guatemala","Guernsey","Guinea","Guinea-Bissau","Guyana","Haiti","Heard Island and McDonald Islands","Holy See (Vatican City State)","Honduras","Hong Kong","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Isle of Man","Israel","Italy","Jamaica","Japan","Jersey","Jordan","Kazakhstan","Kenya","Kiribati","Democratic People's Republic of Korea","Republic of Korea","Kuwait","Kyrgyz Republic","Lao People's Democratic Republic","Latvia","Lebanon","Lesotho","Liberia","Libyan Arab Jamahiriya","Liechtenstein","Lithuania","Luxembourg","Macao","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands","Martinique","Mauritania","Mauritius","Mayotte","Mexico","Micronesia","Moldova","Monaco","Mongolia","Montenegro","Montserrat","Morocco","Mozambique","Myanmar","Namibia","Nauru","Nepal","Netherlands","New Caledonia","New Zealand","Nicaragua","Niger","Nigeria","Niue","Norfolk Island","North Macedonia","Northern Mariana Islands","Norway","Oman","Pakistan","Palau","Palestine","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Pitcairn Islands","Poland","Portugal","Puerto Rico","Qatar","Reunion","Romania","Russian Federation","Rwanda","Saint Barthelemy","Saint Helena","Saint Kitts and Nevis","Saint Lucia","Saint Martin","Saint Pierre and Miquelon","Saint Vincent and the Grenadines","Samoa","San Marino","Sao Tome and Principe","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Sint Maarten","Slovakia","Slovenia","Solomon Islands","Somalia","South Africa","South Georgia and the South Sandwich Islands","South Sudan","Spain","Sri Lanka","Sudan","Suriname","Svalbard & Jan Mayen Islands","Sweden","Switzerland","Syrian Arab Republic","Taiwan","Tajikistan","Tanzania","Thailand","Timor-Leste","Togo","Tokelau","Tonga","Trinidad and Tobago","Tunisia","Turkey","Turkmenistan","Turks and Caicos Islands","Tuvalu","Uganda","Ukraine","United Arab Emirates","United Kingdom","United States of America","United States Minor Outlying Islands","Uruguay","Uzbekistan","Vanuatu","Venezuela","Vietnam","Virgin Islands, British","Virgin Islands, U.S.","Wallis and Futuna","Western Sahara","Yemen","Zambia","Zimbabwe"],HVt=["Adams County","Calhoun County","Carroll County","Clark County","Clay County","Crawford County","Douglas County","Fayette County","Franklin County","Grant County","Greene County","Hamilton County","Hancock County","Henry County","Jackson County","Jefferson County","Johnson County","Lake County","Lawrence County","Lee County","Lincoln County","Logan County","Madison County","Marion County","Marshall County","Monroe County","Montgomery County","Morgan County","Perry County","Pike County","Polk County","Scott County","Union County","Warren County","Washington County","Wayne County","Avon","Bedfordshire","Berkshire","Borders","Buckinghamshire","Cambridgeshire","Central","Cheshire","Cleveland","Clwyd","Cornwall","County Antrim","County Armagh","County Down","County Fermanagh","County Londonderry","County Tyrone","Cumbria","Derbyshire","Devon","Dorset","Dumfries and Galloway","Durham","Dyfed","East Sussex","Essex","Fife","Gloucestershire","Grampian","Greater Manchester","Gwent","Gwynedd County","Hampshire","Herefordshire","Hertfordshire","Highlands and Islands","Humberside","Isle of Wight","Kent","Lancashire","Leicestershire","Lincolnshire","Lothian","Merseyside","Mid Glamorgan","Norfolk","North Yorkshire","Northamptonshire","Northumberland","Nottinghamshire","Oxfordshire","Powys","Rutland","Shropshire","Somerset","South Glamorgan","South Yorkshire","Staffordshire","Strathclyde","Suffolk","Surrey","Tayside","Tyne and Wear","Warwickshire","West Glamorgan","West Midlands","West Sussex","West Yorkshire","Wiltshire","Worcestershire"],UVt=["United States of America"],JVt=["North","East","South","West","Northeast","Northwest","Southeast","Southwest"],KVt=["N","E","S","W","NE","NW","SE","SW"],jVt=["#####","#####-####"],QVt=["Apt. ###","Suite ###"],$Vt=["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut","Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky","Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri","Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Carolina","North Dakota","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina","South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming"],qVt=["AL","AK","AZ","AR","CA","CO","CT","DE","FL","GA","HI","ID","IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MO","MT","NE","NV","NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN","TX","UT","VT","VA","WA","WV","WI","WY"],eXt={normal:"{{location.buildingNumber}} {{location.street}}",full:"{{location.buildingNumber}} {{location.street}} {{location.secondaryAddress}}"},tXt=["10th Street","11th Street","12th Street","13th Street","14th Street","15th Street","16th Street","1st Avenue","1st Street","2nd Avenue","2nd Street","3rd Avenue","3rd Street","4th Avenue","4th Street","5th Avenue","5th Street","6th Avenue","6th Street","7th Avenue","7th Street","8th Avenue","8th Street","9th Street","A Street","Abbey Road","Adams Avenue","Adams Street","Airport Road","Albany Road","Albert Road","Albion Street","Alexandra Road","Alfred Street","Alma Street","Ash Close","Ash Grove","Ash Road","Ash Street","Aspen Close","Atlantic Avenue","Avenue Road","Back Lane","Baker Street","Balmoral Road","Barn Close","Barton Road","Bath Road","Bath Street","Bay Street","Beach Road","Bedford Road","Beech Close","Beech Drive","Beech Grove","Beech Road","Beechwood Avenue","Bell Lane","Belmont Road","Birch Avenue","Birch Close","Birch Grove","Birch Road","Blind Lane","Bluebell Close","Boundary Road","Bramble Close","Bramley Close","Bridge Road","Bridge Street","Broad Lane","Broad Street","Broadway","Broadway Avenue","Broadway Street","Brook Lane","Brook Road","Brook Street","Brookside","Buckingham Road","Cambridge Street","Canal Street","Castle Close","Castle Lane","Castle Road","Castle Street","Cavendish Road","Cedar Avenue","Cedar Close","Cedar Grove","Cedar Road","Cedar Street","Cemetery Road","Center Avenue","Center Road","Center Street","Central Avenue","Central Street","Chapel Close","Chapel Hill","Chapel Road","Chapel Street","Charles Street","Cherry Close","Cherry Street","Cherry Tree Close","Chester Road","Chestnut Close","Chestnut Drive","Chestnut Grove","Chestnut Street","Church Avenue","Church Close","Church Hill","Church Lane","Church Path","Church Road","Church Street","Church View","Church Walk","Claremont Road","Clarence Road","Clarence Street","Clarendon Road","Clark Street","Clay Lane","Cleveland Street","Cliff Road","Clifton Road","Clinton Street","College Avenue","College Street","Columbia Avenue","Commerce Street","Commercial Road","Commercial Street","Common Lane","Coronation Avenue","Coronation Road","County Line Road","County Road","Court Street","Cow Lane","Crescent Road","Cromwell Road","Cross Lane","Cross Street","Crown Street","Cumberland Street","Dale Street","Dark Lane","Davis Street","Depot Street","Derby Road","Derwent Close","Devonshire Road","Division Street","Douglas Road","Duke Street","E 10th Street","E 11th Street","E 12th Street","E 14th Street","E 1st Street","E 2nd Street","E 3rd Street","E 4th Avenue","E 4th Street","E 5th Street","E 6th Avenue","E 6th Street","E 7th Street","E 8th Street","E 9th Street","E Bridge Street","E Broad Street","E Broadway","E Broadway Street","E Cedar Street","E Center Street","E Central Avenue","E Church Street","E Elm Street","E Franklin Street","E Front Street","E Grand Avenue","E High Street","E Jackson Street","E Jefferson Street","E Main","E Main Street","E Maple Street","E Market Street","E North Street","E Oak Street","E Park Avenue","E Pine Street","E River Road","E South Street","E State Street","E Union Street","E Walnut Street","E Washington Avenue","E Washington Street","E Water Street","East Avenue","East Road","East Street","Edward Street","Elm Close","Elm Grove","Elm Road","Elm Street","Euclid Avenue","Fairfield Road","Farm Close","Ferry Road","Field Close","Field Lane","First Avenue","First Street","Fore Street","Forest Avenue","Forest Road","Fourth Avenue","Franklin Avenue","Franklin Road","Franklin Street","Front Street","Frontage Road","Garden Close","Garden Street","George Street","Gladstone Road","Glebe Close","Gloucester Road","Gordon Road","Gordon Street","Grand Avenue","Grange Avenue","Grange Close","Grange Road","Grant Street","Green Close","Green Lane","Green Street","Greenville Road","Greenway","Greenwood Road","Grove Lane","Grove Road","Grove Street","Hall Lane","Hall Street","Harrison Avenue","Harrison Street","Hawthorn Avenue","Hawthorn Close","Hazel Close","Hazel Grove","Heath Road","Heather Close","Henry Street","Heron Close","Hickory Street","High Road","High Street","Highfield Avenue","Highfield Close","Highfield Road","Highland Avenue","Hill Road","Hill Street","Hillside","Hillside Avenue","Hillside Close","Hillside Road","Holly Close","Honeysuckle Close","Howard Road","Howard Street","Jackson Avenue","Jackson Street","James Street","Jefferson Avenue","Jefferson Street","Johnson Street","Jubilee Close","Juniper Close","Kent Road","Kestrel Close","King Street","King's Road","Kingfisher Close","Kings Highway","Kingsway","Laburnum Grove","Lafayette Street","Lake Avenue","Lake Drive","Lake Road","Lake Street","Lancaster Road","Lansdowne Road","Larch Close","Laurel Close","Lawrence Street","Lee Street","Liberty Street","Lime Grove","Lincoln Avenue","Lincoln Highway","Lincoln Road","Lincoln Street","Locust Street","Lodge Close","Lodge Lane","London Road","Long Lane","Low Road","Madison Avenue","Madison Street","Main","Main Avenue","Main Road","Main Street","Main Street E","Main Street N","Main Street S","Main Street W","Manchester Road","Manor Close","Manor Drive","Manor Gardens","Manor Road","Manor Way","Maple Avenue","Maple Close","Maple Drive","Maple Road","Maple Street","Market Place","Market Square","Market Street","Marlborough Road","Marsh Lane","Martin Luther King Boulevard","Martin Luther King Drive","Martin Luther King Jr Boulevard","Mary Street","Mayfield Road","Meadow Close","Meadow Drive","Meadow Lane","Meadow View","Meadow Way","Memorial Drive","Middle Street","Mill Close","Mill Lane","Mill Road","Mill Street","Milton Road","Milton Street","Monroe Street","Moor Lane","Moss Lane","Mount Pleasant","Mount Street","Mulberry Street","N 1st Street","N 2nd Street","N 3rd Street","N 4th Street","N 5th Street","N 6th Street","N 7th Street","N 8th Street","N 9th Street","N Bridge Street","N Broad Street","N Broadway","N Broadway Street","N Cedar Street","N Center Street","N Central Avenue","N Chestnut Street","N Church Street","N College Street","N Court Street","N Division Street","N East Street","N Elm Street","N Franklin Street","N Front Street","N Harrison Street","N High Street","N Jackson Street","N Jefferson Street","N Lincoln Street","N Locust Street","N Main","N Main Avenue","N Main Street","N Maple Street","N Market Street","N Monroe Street","N Oak Street","N Park Street","N Pearl Street","N Pine Street","N Poplar Street","N Railroad Street","N State Street","N Union Street","N Walnut Street","N Washington Avenue","N Washington Street","N Water Street","Nelson Road","Nelson Street","New Lane","New Road","New Street","Newton Road","Nightingale Close","Norfolk Road","North Avenue","North Lane","North Road","North Street","Northfield Road","Oak Avenue","Oak Drive","Oak Lane","Oak Road","Oak Street","Oakfield Road","Oaklands","Old Lane","Old Military Road","Old Road","Old State Road","Orchard Drive","Orchard Lane","Orchard Road","Orchard Street","Oxford Road","Oxford Street","Park Avenue","Park Crescent","Park Drive","Park Lane","Park Place","Park Road","Park Street","Park View","Parkside","Pearl Street","Pennsylvania Avenue","Pine Close","Pine Grove","Pine Street","Pinfold Lane","Pleasant Street","Poplar Avenue","Poplar Close","Poplar Road","Poplar Street","Post Road","Pound Lane","Princes Street","Princess Street","Priory Close","Priory Road","Prospect Avenue","Prospect Place","Prospect Road","Prospect Street","Quarry Lane","Quarry Road","Queen's Road","Railroad Avenue","Railroad Street","Railway Street","Rectory Close","Rectory Lane","Richmond Close","Richmond Road","Ridge Road","River Road","River Street","Riverside","Riverside Avenue","Riverside Drive","Roman Road","Roman Way","Rowan Close","Russell Street","S 10th Street","S 14th Street","S 1st Avenue","S 1st Street","S 2nd Street","S 3rd Street","S 4th Street","S 5th Street","S 6th Street","S 7th Street","S 8th Street","S 9th Street","S Bridge Street","S Broad Street","S Broadway","S Broadway Street","S Center Street","S Central Avenue","S Chestnut Street","S Church Street","S College Street","S Division Street","S East Street","S Elm Street","S Franklin Street","S Front Street","S Grand Avenue","S High Street","S Jackson Street","S Jefferson Street","S Lincoln Street","S Main","S Main Avenue","S Main Street","S Maple Street","S Market Street","S Mill Street","S Monroe Street","S Oak Street","S Park Street","S Pine Street","S Railroad Street","S State Street","S Union Street","S Walnut Street","S Washington Avenue","S Washington Street","S Water Street","S West Street","Salisbury Road","Sandringham Road","Sandy Lane","School Close","School Lane","School Road","School Street","Second Avenue","Silver Street","Skyline Drive","Smith Street","Somerset Road","South Avenue","South Drive","South Road","South Street","South View","Spring Gardens","Spring Street","Springfield Close","Springfield Road","Spruce Street","St Andrew's Road","St Andrews Close","St George's Road","St John's Road","St Mary's Close","St Mary's Road","Stanley Road","Stanley Street","State Avenue","State Line Road","State Road","State Street","Station Road","Station Street","Stoney Lane","Sycamore Avenue","Sycamore Close","Sycamore Drive","Sycamore Street","Talbot Road","Tennyson Road","The Avenue","The Beeches","The Causeway","The Chase","The Coppice","The Copse","The Crescent","The Croft","The Dell","The Drive","The Fairway","The Glebe","The Grange","The Green","The Grove","The Hawthorns","The Lane","The Laurels","The Limes","The Maltings","The Meadows","The Mews","The Mount","The Oaks","The Orchard","The Oval","The Paddock","The Paddocks","The Poplars","The Ridgeway","The Ridings","The Rise","The Sidings","The Spinney","The Square","The Willows","The Woodlands","Third Avenue","Third Street","Tower Road","Trinity Road","Tudor Close","Union Avenue","Union Street","University Avenue","University Drive","Valley Road","Veterans Memorial Drive","Veterans Memorial Highway","Vicarage Close","Vicarage Lane","Vicarage Road","Victoria Place","Victoria Road","Victoria Street","Vine Street","W 10th Street","W 11th Street","W 12th Street","W 14th Street","W 1st Street","W 2nd Street","W 3rd Street","W 4th Avenue","W 4th Street","W 5th Street","W 6th Avenue","W 6th Street","W 7th Street","W 8th Street","W 9th Street","W Bridge Street","W Broad Street","W Broadway","W Broadway Avenue","W Broadway Street","W Center Street","W Central Avenue","W Chestnut Street","W Church Street","W Division Street","W Elm Street","W Franklin Street","W Front Street","W Grand Avenue","W High Street","W Jackson Street","W Jefferson Street","W Lake Street","W Main","W Main Street","W Maple Street","W Market Street","W Monroe Street","W North Street","W Oak Street","W Park Street","W Pine Street","W River Road","W South Street","W State Street","W Union Street","W Walnut Street","W Washington Avenue","W Washington Street","Walnut Close","Walnut Street","Warren Close","Warren Road","Washington Avenue","Washington Boulevard","Washington Road","Washington Street","Water Lane","Water Street","Waterloo Road","Waterside","Watery Lane","Waverley Road","Well Lane","Wellington Road","Wellington Street","West Avenue","West End","West Lane","West Road","West Street","West View","Western Avenue","Western Road","Westfield Road","Westgate","William Street","Willow Close","Willow Drive","Willow Grove","Willow Road","Willow Street","Windermere Road","Windmill Close","Windmill Lane","Windsor Avenue","Windsor Close","Windsor Drive","Wood Lane","Wood Street","Woodland Close","Woodland Road","Woodlands","Woodlands Avenue","Woodlands Close","Woodlands Road","Woodside","Woodside Road","Wren Close","Yew Tree Close","York Road","York Street"],nXt=["{{person.first_name}} {{location.street_suffix}}","{{person.last_name}} {{location.street_suffix}}","{{location.street_name}}"],iXt=["Alley","Avenue","Branch","Bridge","Brook","Brooks","Burg","Burgs","Bypass","Camp","Canyon","Cape","Causeway","Center","Centers","Circle","Circles","Cliff","Cliffs","Club","Common","Corner","Corners","Course","Court","Courts","Cove","Coves","Creek","Crescent","Crest","Crossing","Crossroad","Curve","Dale","Dam","Divide","Drive","Drives","Estate","Estates","Expressway","Extension","Extensions","Fall","Falls","Ferry","Field","Fields","Flat","Flats","Ford","Fords","Forest","Forge","Forges","Fork","Forks","Fort","Freeway","Garden","Gardens","Gateway","Glen","Glens","Green","Greens","Grove","Groves","Harbor","Harbors","Haven","Heights","Highway","Hill","Hills","Hollow","Inlet","Island","Islands","Isle","Junction","Junctions","Key","Keys","Knoll","Knolls","Lake","Lakes","Land","Landing","Lane","Light","Lights","Loaf","Lock","Locks","Lodge","Loop","Mall","Manor","Manors","Meadow","Meadows","Mews","Mill","Mills","Mission","Motorway","Mount","Mountain","Mountains","Neck","Orchard","Oval","Overpass","Park","Parks","Parkway","Parkways","Pass","Passage","Path","Pike","Pine","Pines","Place","Plain","Plains","Plaza","Point","Points","Port","Ports","Prairie","Radial","Ramp","Ranch","Rapid","Rapids","Rest","Ridge","Ridges","River","Road","Roads","Route","Row","Rue","Run","Shoal","Shoals","Shore","Shores","Skyway","Spring","Springs","Spur","Spurs","Square","Squares","Station","Stravenue","Stream","Street","Streets","Summit","Terrace","Throughway","Trace","Track","Trafficway","Trail","Tunnel","Turnpike","Underpass","Union","Unions","Valley","Valleys","Via","Viaduct","View","Views","Village","Villages","Ville","Vista","Walk","Walks","Wall","Way","Ways","Well","Wells"],rXt={building_number:XVt,city_name:PVt,city_pattern:OVt,city_prefix:BVt,city_suffix:zVt,country:YVt,county:HVt,default_country:UVt,direction:JVt,direction_abbr:KVt,postcode:jVt,secondary_address:QVt,state:$Vt,state_abbr:qVt,street_address:eXt,street_name:tXt,street_pattern:nXt,street_suffix:iXt},oXt=rXt,sXt=["a","ab","abbas","abduco","abeo","abscido","absconditus","absens","absorbeo","absque","abstergo","absum","abundans","abutor","accedo","accendo","acceptus","accommodo","accusamus","accusantium","accusator","acer","acerbitas","acervus","acidus","acies","acquiro","acsi","ad","adamo","adaugeo","addo","adduco","ademptio","adeo","adeptio","adfectus","adfero","adficio","adflicto","adhaero","adhuc","adicio","adimpleo","adinventitias","adipisci","adipiscor","adiuvo","administratio","admiratio","admitto","admoneo","admoveo","adnuo","adopto","adsidue","adstringo","adsuesco","adsum","adulatio","adulescens","aduro","advenio","adversus","advoco","aedificium","aeger","aegre","aegrotatio","aegrus","aeneus","aequitas","aequus","aer","aestas","aestivus","aestus","aetas","aeternus","ager","aggero","aggredior","agnitio","agnosco","ago","ait","aiunt","alias","alienus","alii","alioqui","aliqua","aliquam","aliquid","alius","allatus","alo","alter","altus","alveus","amaritudo","ambitus","ambulo","amet","amicitia","amiculum","amissio","amita","amitto","amo","amor","amoveo","amplexus","amplitudo","amplus","ancilla","angelus","angulus","angustus","animadverto","animi","animus","annus","anser","ante","antea","antepono","antiquus","aperiam","aperio","aperte","apostolus","apparatus","appello","appono","appositus","approbo","apto","aptus","apud","aqua","ara","aranea","arbitro","arbor","arbustum","arca","arceo","arcesso","architecto","arcus","argentum","argumentum","arguo","arma","armarium","aro","ars","articulus","artificiose","arto","arx","ascisco","ascit","asper","asperiores","aspernatur","aspicio","asporto","assentator","assumenda","astrum","at","atavus","ater","atque","atqui","atrocitas","atrox","attero","attollo","attonbitus","auctor","auctus","audacia","audax","audentia","audeo","audio","auditor","aufero","aureus","aurum","aut","autem","autus","auxilium","avaritia","avarus","aveho","averto","baiulus","balbus","barba","bardus","basium","beatae","beatus","bellicus","bellum","bene","beneficium","benevolentia","benigne","bestia","bibo","bis","blandior","blanditiis","bonus","bos","brevis","cado","caecus","caelestis","caelum","calamitas","calcar","calco","calculus","callide","campana","candidus","canis","canonicus","canto","capillus","capio","capitulus","capto","caput","carbo","carcer","careo","caries","cariosus","caritas","carmen","carpo","carus","casso","caste","casus","catena","caterva","cattus","cauda","causa","caute","caveo","cavus","cedo","celebrer","celer","celo","cena","cenaculum","ceno","censura","centum","cerno","cernuus","certe","certus","cervus","cetera","charisma","chirographum","cibo","cibus","cicuta","cilicium","cimentarius","ciminatio","cinis","circumvenio","cito","civis","civitas","clam","clamo","claro","clarus","claudeo","claustrum","clementia","clibanus","coadunatio","coaegresco","coepi","coerceo","cogito","cognatus","cognomen","cogo","cohaero","cohibeo","cohors","colligo","collum","colo","color","coma","combibo","comburo","comedo","comes","cometes","comis","comitatus","commemoro","comminor","commodi","commodo","communis","comparo","compello","complectus","compono","comprehendo","comptus","conatus","concedo","concido","conculco","condico","conduco","confero","confido","conforto","confugo","congregatio","conicio","coniecto","conitor","coniuratio","conor","conqueror","conscendo","consectetur","consequatur","consequuntur","conservo","considero","conspergo","constans","consuasor","contabesco","contego","contigo","contra","conturbo","conventus","convoco","copia","copiose","cornu","corona","corporis","corpus","correptius","corrigo","corroboro","corrumpo","corrupti","coruscus","cotidie","crapula","cras","crastinus","creator","creber","crebro","credo","creo","creptio","crepusculum","cresco","creta","cribro","crinis","cruciamentum","crudelis","cruentus","crur","crustulum","crux","cubicularis","cubitum","cubo","cui","cuius","culpa","culpo","cultellus","cultura","cum","cumque","cunabula","cunae","cunctatio","cupiditas","cupiditate","cupio","cuppedia","cupressus","cur","cura","curatio","curia","curiositas","curis","curo","curriculum","currus","cursim","curso","cursus","curto","curtus","curvo","custodia","damnatio","damno","dapifer","debeo","debilito","debitis","decens","decerno","decet","decimus","decipio","decor","decretum","decumbo","dedecor","dedico","deduco","defaeco","defendo","defero","defessus","defetiscor","deficio","defleo","defluo","defungo","degenero","degero","degusto","deinde","delectatio","delectus","delego","deleniti","deleo","delibero","delicate","delinquo","deludo","demens","demergo","demitto","demo","demonstro","demoror","demulceo","demum","denego","denique","dens","denuncio","denuo","deorsum","depereo","depono","depopulo","deporto","depraedor","deprecator","deprimo","depromo","depulso","deputo","derelinquo","derideo","deripio","deserunt","desidero","desino","desipio","desolo","desparatus","despecto","dicta","dignissimos","distinctio","dolor","dolore","dolorem","doloremque","dolores","doloribus","dolorum","ducimus","ea","eaque","earum","eius","eligendi","enim","eos","error","esse","est","et","eum","eveniet","ex","excepturi","exercitationem","expedita","explicabo","facere","facilis","fuga","fugiat","fugit","harum","hic","id","illo","illum","impedit","in","incidunt","infit","inflammatio","inventore","ipsa","ipsam","ipsum","iste","itaque","iure","iusto","labore","laboriosam","laborum","laudantium","libero","magnam","magni","maiores","maxime","minima","minus","modi","molestiae","molestias","mollitia","nam","natus","necessitatibus","nemo","neque","nesciunt","nihil","nisi","nobis","non","nostrum","nulla","numquam","occaecati","ocer","odio","odit","officia","officiis","omnis","optio","paens","pariatur","patior","patria","patrocinor","patruus","pauci","paulatim","pauper","pax","peccatus","pecco","pecto","pectus","pecus","peior","pel","perferendis","perspiciatis","placeat","porro","possimus","praesentium","provident","quae","quaerat","quam","quas","quasi","qui","quia","quibusdam","quidem","quis","quisquam","quo","quod","quos","ratione","recusandae","reiciendis","rem","repellat","repellendus","reprehenderit","repudiandae","rerum","saepe","sapiente","sed","sequi","similique","sint","sit","socius","sodalitas","sol","soleo","solio","solitudo","solium","sollers","sollicito","solum","solus","soluta","solutio","solvo","somniculosus","somnus","sonitus","sono","sophismata","sopor","sordeo","sortitus","spargo","speciosus","spectaculum","speculum","sperno","spero","spes","spiculum","spiritus","spoliatio","sponte","stabilis","statim","statua","stella","stillicidium","stipes","stips","sto","strenuus","strues","studio","stultus","suadeo","suasoria","sub","subito","subiungo","sublime","subnecto","subseco","substantia","subvenio","succedo","succurro","sufficio","suffoco","suffragium","suggero","sui","sulum","sum","summa","summisse","summopere","sumo","sumptus","sunt","supellex","super","suppellex","supplanto","suppono","supra","surculus","surgo","sursum","suscipio","suscipit","suspendo","sustineo","suus","synagoga","tabella","tabernus","tabesco","tabgo","tabula","taceo","tactus","taedium","talio","talis","talus","tam","tamdiu","tamen","tametsi","tamisium","tamquam","tandem","tantillus","tantum","tardus","tego","temeritas","temperantia","templum","tempora","tempore","temporibus","temptatio","tempus","tenax","tendo","teneo","tener","tenetur","tenuis","tenus","tepesco","tepidus","ter","terebro","teres","terga","tergeo","tergiversatio","tergo","tergum","termes","terminatio","tero","terra","terreo","territo","terror","tersus","tertius","testimonium","texo","textilis","textor","textus","thalassinus","theatrum","theca","thema","theologus","thermae","thesaurus","thesis","thorax","thymbra","thymum","tibi","timidus","timor","titulus","tolero","tollo","tondeo","tonsor","torqueo","torrens","tot","totam","totidem","toties","totus","tracto","trado","traho","trans","tredecim","tremo","trepide","tres","tribuo","tricesimus","triduana","tripudio","tristis","triumphus","trucido","truculenter","tubineus","tui","tum","tumultus","tunc","turba","turbo","turpis","tutamen","tutis","tyrannus","uberrime","ubi","ulciscor","ullam","ullus","ulterius","ultio","ultra","umbra","umerus","umquam","una","unde","undique","universe","unus","urbanus","urbs","uredo","usitas","usque","ustilo","ustulo","usus","ut","uter","uterque","utilis","utique","utor","utpote","utrimque","utroque","utrum","uxor","vaco","vacuus","vado","vae","valde","valens","valeo","valetudo","validus","vallum","vapulus","varietas","varius","vehemens","vel","velit","velociter","velum","velut","venia","veniam","venio","ventito","ventosus","ventus","venustas","ver","verbera","verbum","vere","verecundia","vereor","vergo","veritas","veritatis","vero","versus","verto","verumtamen","verus","vesco","vesica","vesper","vespillo","vester","vestigium","vestrum","vetus","via","vicinus","vicissitudo","victoria","victus","videlicet","video","viduo","vigilo","vigor","vilicus","vilis","vilitas","villa","vinco","vinculum","vindico","vinitor","vinum","vir","virga","virgo","viridis","viriliter","virtus","vis","viscus","vita","vitae","vitiosus","vitium","vito","vivo","vix","vobis","vociferor","voco","volaticus","volo","volubilis","voluntarius","volup","voluptas","voluptate","voluptatem","voluptates","voluptatibus","voluptatum","volutabrum","volva","vomer","vomica","vomito","vorago","vorax","voro","vos","votum","voveo","vox","vulariter","vulgaris","vulgivagus","vulgo","vulgus","vulnero","vulnus","vulpes","vulticulus","xiphias"],aXt={words:sXt},lXt=aXt,uXt={title:"English",code:"en",language:"en",endonym:"English",dir:"ltr",script:"Latn"},cXt=uXt,dXt=["Rock","Metal","Pop","Electronic","Folk","World","Country","Jazz","Funk","Soul","Hip Hop","Classical","Latin","Reggae","Stage And Screen","Blues","Non Music","Rap"],hXt=["White Christmas","Hey Jude","Every Breath You Take","Mack the Knife","Rock Around the Clock","I Want to Hold Your Hand","(I Can't Get No) Satisfaction","The Twist","(Everything I Do) I Do it For You","Bridge Over Troubled Water","When Doves Cry","Call Me","Bette Davis Eyes","I Will Always Love You","Over the Rainbow","American Pie","Flashdance. What a Feeling","The Way We Were","I Heard it Through the Grapevine","You've Lost That Lovin' Feelin'","Nothing Compares 2 U","Endless Love","Yeah!","Let's Get it On","That's What Friends Are For","You Light Up My Life","(Sittin' On) the Dock of the Bay","Joy to the World","Heartbreak Hotel","Theme From 'A Summer Place'","Aquarius/Let The Sunshine In","I Will Survive","It's Too Late","Respect","Sugar Sugar","Stayin' Alive","Maggie May","My Heart Will Go On","Eye of the Tiger","End of the Road","Another One Bites the Dust","Billie Jean","Let's Stay Together","Battle of New Orleans","Oh","Hound Dog","I Love Rock 'n' Roll","Smooth","Good Vibrations","Physical","Light My Fire","Low","Hey Ya!","Let it Be","Don't Be Cruel","Hotel California","We Belong Together","Le Freak","Raindrops Keep Falling On My Head","How High the Moon","My Girl","I Can't Stop Loving You","Killing Me Softly With His Song","Mona Lisa","In the Mood","She Loves You","The Letter","Mister Sandman","Careless Whisper","What's Love Got to Do With It?","I'm a Believer","Wooly Bully","Theme From 'Shaft'","Hot Stuff","Centerfold","Honky Tonk Woman","I'll Be There","Gangsta's Paradise","Yesterday","My Sharona","Tennessee Waltz","Reach Out (I'll Be There)","California Dreamin'","Jailhouse Rock","Irreplaceable","Dancing in the Street","Rolling In The Deep","Tie a Yellow Ribbon 'round the Old Oak Tree","Stand By Me","Sentimental Journey","The First Time Ever I Saw Your Face","Louie Louie","Another Brick in the Wall (part 2)","(Just Like) Starting Over","Night Fever","To Sir","You're So Vain","Be My Baby","Celebration","(They Long to Be) Close to You","Begin the Beguine","I Still Haven't Found What I'm Looking For","I Want You Back","Arthur's Theme (Best That You Can Do)","Boulevard of Broken Dreams","With Or Without You","Tonight's the Night (Gonna Be Alright)","Are You Lonesome Tonight?","Upside Down","Dancing Queen","Sweet Child O' Mine","Where Did Our Love Go","Unchained Melody","Rudolph","Take My Breath Away","I'll Make Love to You","Love Will Keep Us Together","When a Man Loves a Woman","Walk Like an Egyptian","Crazy in Love","Strangers in the Night","You Belong to Me","In Da Club","Say You","We Are the World","Johnny B Goode","Love Theme From 'A Star is Born' (Evergreen)","Shadow Dancing","Superstition","Beat It","Night & Day","Waterfalls","House of the Rising Sun","Paper Doll","Downtown","I Can't Help Myself (Sugar Pie","Kiss From a Rose","Believe","Ballad of the Green Berets","Proud Mary","Too Young","Umbrella","Swanee","Need You Tonight","Like a Rolling Stone","Lady","One Sweet Day","Lean On Me","Tik-Toc","Monday Monday","What'd I Say","How You Remind Me","Silly Love Songs","My Guy","Macarena","Goodnight","Just My Imagination (Running Away With Me)","The Sounds of Silence","Imagine","Me & Bobby McGee","Near You","What's Going On?","Suspicious Minds","Ode To Billie Joe","Wind Beneath My Wings","The Boy is Mine","Mr Tambourine Man","Faith","Green Onions","Mrs Robinson","How Deep is Your Love?","Hey There","Heart of Glass","Pennies From Heaven","Like a Virgin","Midnight Train to Georgia","Help!","Tossing & Turning","The Sign","Born to Be Wild","Layla","I Just Wanna Be Your Everything","War","96 Tears","I Get Around","Because You Loved Me","Summer in the City","Get Back","Secret Love","9 to 5","(Ghost) Riders in the Sky","The Loco-Motion","Play That Funky Music","Bohemian Rhapsody","Little Things Mean a Lot","Cry","All Shook Up","Up Where We Belong","Sledgehammer","Fire & Rain","Stop! in the Name of Love","Sweet Home Alabama","Another Day in Paradise","Bleeding Love","Lady Marmalade (Voulez-Vous Coucher Aver Moi Ce Soir?)","Whispering","Vogue","Under the Bridge","Sixteen Tons","Sugar Shack","Baby Love","What a Fool Believes","Lose Yourself","Hello Dolly","Brown Eyed Girl","Without You","Build Me Up Buttercup","We Found Love","Tears in Heaven","Family Affair","All I Wanna Do","Soul Man","Tequila","Rock With You","Livin' La Vida Loca","Best of My Love","Runaway","Alone Again (Naturally)","Can't Help Falling in Love","My Sweet Lord","Runaround Sue","Swinging On a Star","Gold Digger","Happy Together","Losing My Religion","Heart of Gold","Stardust","Will You Love Me Tomorrow","You Are the Sunshine of My Life","You Were Meant for Me","Take On Me","Hollaback Girl","God Bless America","I Swear","Sunshine of Your Love","Firework","Groovin'","Smells Like Teen Spirit","Big Girls Don't Cry","Jack & Diane","Addicted to Love","The Last Dance","Georgia On My Mind","Money For Nothing","Jump","Vaya Con Dios (may God Be With You)","You'll Never Know","That'll Be the Day","Girls Just Wanna Have Fun","Wheel of Fortune","When You Wish Upon a Star","Don't Fence Me In","Turn! Turn! Turn! (To Everything There is a Season)","Volare","Sweet Dreams (Are Made of This)","Whole Lotta Love","You've Got a Friend","Penny Lane","People Got to Be Free","Nature Boy","Sexyback","Crying","Single Ladies (Put A Ring On It)","Bad Girls","Too Close","I Got You Babe","We've Only Just Begun","Sh-Boom (Life Could Be a Dream)","Shining Star","Kansas City","Like a Prayer","Cheek to Cheek","Papa Was a Rolling Stone","Promiscuous","Love Shack","Funkytown","Crazy","Philadelphia Freedom","Temperature","Somebody That I Used to Know","All I Have to Do is Dream","Jessie's Girl","Rhinestone Cowboy","Blue Suede Shoes","Ebony & Ivory","I'll Never Smile Again","Keep On Loving You","Since U Been Gone","The Way You Look Tonight","Crazy Little Thing Called Love","The Great Pretender","Brown Sugar","Que sera sera (Whatever will be will be)","No One","Bad Day","Boom Boom Pow","Party Rock Anthem","Because of You","Chattanooga Choo Choo","A Whiter Shade of Pale","Love Me Tender","Higher Love","Footloose","Blurred Lines","I Just Called to Say I Love You","Come Together","It's Now Or Never","Under the Boardwalk","Don't You Want Me","You Can't Hurry Love","Fame","Fallin'","Poker Face","Bad Romance","Ruby Tuesday","All Night Long (All Night)","Baby Got Back","Whole Lotta Shakin' Goin' On","Frenesi","December 1963 (Oh What a Night)","Bad Moon Rising","Abracadabra","I Gotta Feeling","The Song From Moulin Rouge (Where Is Your Heart)","Waiting For a Girl Like You","Everybody Loves Somebody","I Can't Go For That (No Can Do)","Buttons & Bows","It's All in the Game","Love Train","Dance to the Music","Candle in the Wind '97","Honey","Kiss","I'll Take You There","Paint it Black","Band of Gold","Just the Way You Are","Spirit in the Sky","Vision of Love","Hips don't lie","Till The End of Time","Duke of Earl","YMCA","Oh My Papa (O Mein Papa)","Pistol Packin' Mama","Gonna Make You Sweat (Everybody Dance Now)","Dilemma","I Need You Now","Wanted","Jumpin' Jack Flash","Against All Odds (Take a Look At Me Now)","Tom Dooley","Goodbye Yellow Brick Road","Rhapsody in Blue","Bennie & the Jets","Call Me Maybe","You Really Got Me","God Bless the Child","I'm Sorry","Bad","I Can't Get Next to You","The Power of Love","Dreamlover","Only The Lonely (Know The Way I Feel)","We Are Family","At Last","Brand New Key","I've Heard That Song Before","Stay (I Missed You)","Do Ya Think I'm Sexy?","Tutti Frutti","This Ole House","Please Mr Postman","Good Times","Something","(I've Had) the Time of My Life","I Don't Want to Miss a Thing","Down Hearted Blues","Rag Doll","Blueberry Hill","Ain't No Sunshine","Wild Thing","Blaze of Glory","Ray of Light","The Hustle","Grenade","Cathy's Clown","Minnie the Moocher","Love Is Blue (L'Amour Est Bleu)","Iris","The Boys of Summer","The Tide is High","She Drives Me Crazy","Save the Best For Last","These Boots Are Made For Walking","I Feel Love","A Woman in Love","We Can Work it Out","The Reason","Locked Out Of Heaven","Do That to Me One More Time","That's the Way Love Goes","A Hard Day's Night","I Believe I Can Fly","Karma Chameleon","One O'Clock Jump","Mule Train","Car Wash","Rapture","Creep","Streets of Philadelphia","West End Girls","Leader of the Pack","T For Texas (Blue Yodel No 1)","Mama Told Me Not to Come","Just Dance","Mercy Mercy Me (The Ecology)","Livin' On a Prayer","Good Lovin'","50 Ways to Leave Your Lover","Stronger","I Can See Clearly Now","We Are the Champions","(I've Got a Gal In) Kalamazoo","No Scrubs","How Do You Mend a Broken Heart","I Got You (I Feel Good)","Don't Let the Stars Get in Your Eyes","The Girl From Ipanema","(Sexual) Healing","Tears of a Clown","We Will Rock You","Hold On","Bye Bye Love","Chapel of Love","White Rabbit","Rock the Boat","The Gypsy","Take The 'A' Train","Crimson & Clover","Crocodile Rock","Make Love to Me","Nothing's Gonna Stop Us Now","Say Say Say","The Christmas Song (Chestnuts Roasting On An Open Fire)","Un-Break My Heart","Cherish","I'll Be Missing You","Drops of Jupiter (Tell Me)","There goes my baby","You Send Me","If (They Made Me a King)","The Prisoner's Song","ABC","Do Wah Diddy Diddy","He's So Fine","A Boy Named Sue","Roll Over Beethoven","Sweet Georgia Brown","Earth Angel","Rehab","(You Keep Me) Hangin' On","This Diamond Ring","Be My Love","Rush Rush","You're Beautiful","Roll With It","Moonlight Serenade","Unbelievable","Peg o' My Heart","This Land is Your Land","Stranger On the Shore","Rum & Coca-Cola","Hit the Road","Without Me","Crazy For You","I Want to Know What Love Is","Bye Bye","Down Under","At the Hop","One Bad Apple","Kiss & Say Goodbye","For What It's Worth (Stop","The Long & Winding Road","Baby One More Time","Stairway to Heaven","How Do I Live?","Hello","Truly Madly Deeply","Great Balls of Fire","King of the Road","I Wanna Dance With Somebody (Who Loves Me)","Reunited","Help Me","Rags to Riches","(It's No) Sin","Say My Name","Nobody Does it Better","Paperback Writer","Don't Worry Be Happy","I Fall to Pieces","Body & Soul","You're Still the One","Stormy Weather (Keeps Rainin' All the Time)","Horse With No Name","American Woman","Chattanoogie Shoe-Shine Boy","Pick Up the Pieces","Everybody Wants to Rule the World","Blue Tango","Hurt So Good","Apologize","Let's Dance","(You're My) Soul & Inspiration","I Only Have Eyes For You","Wichita Lineman","Hanging by a Moment","Spinning Wheel","Look Away","Ironic","Don't Stop 'Til You Get Enough","Empire State Of Mind","Do You Love Me?","Jive Talkin'","You're the One That I Want","Sweet Soul Music","Hey There Delilah","A Whole New World (Aladdin's Theme)","Somethin' Stupid","Knock Three Times","Mickey","The Wanderer","Dancing in the Dark","It's Still Rock 'n' Roll to Me","Boogie Oogie Oogie","Can You Feel the Love Tonight","Harper Valley PTA","Seasons in the Sun","Come On-a My House","Viva La Vida","Walk On By","Drop it Like It's Hot","Private Eyes","Maniac","All My Lovin' (You're Never Gonna Get It)","Take a Bow","Ring of Fire","Save the Last Dance For Me","Make it With You","Don't Speak","I Shot the Sheriff","Say It Right","Sing","Twist & Shout","Walk This Way","A-Tisket A-Tasket","Let Me Love You","I Can Dream","Toxic","The Joker","Hero","In the Year 2525 (Exordium & Terminus)","Your Song","Oh Happy Day","Grease","Love In This Club","Angie","How Much is That Doggy in the Window?","Daydream Believer","Whip It","Boogie Woogie Bugle Boy","Down","Hanky Panky","Total Eclipse of the Heart","Cat's in the Cradle","Strange Fruit","Breathe","On My Own","Dizzy","Ticket to Ride","We Got The Beat","On the Atchison","Always On My Mind","Unforgettable","In the End","Music","Can't Buy Me Love","Chain of Fools","Won't Get Fooled Again","Happy Days Are Here Again","Third Man Theme","Your Cheatin' Heart","Thriller","Venus","Time After Time","That Lucky Old Sun (Just Rolls Around Heaven All Day)","E.T.","Three Coins in the Fountain","Touch Me","You Ain't Seen Nothin' Yet","Gives You Hell","Knock On Wood","One of These Nights","Again","Doo Wop (That Thing)","Whoomp! (There it Is)","Magic","I'm Walking Behind You","We Didn't Start the Fire","Lola","Ghostbusters","Winchester Cathedral","Greatest Love of All","My Love","Wannabe","Miss You","I Feel Fine","Baby Baby","TSOP (The Sound of Philadelphia)","Loving You","This Guy's in Love With You","Till I Waltz Again With You","Why Do Fools Fall in Love?","Nights in White Satin","That's the Way (I Like It)","My Prayer","(Put Another Nickel In) Music! Music! Music!","Colors of the Wind","Morning Train (Nine to Five)","I Went to Your Wedding","Kiss Me","Gypsies","Cracklin' Rosie","Maybellene","Born in the USA","Here Without You","Mony Mony","Mmmbop","You Always Hurt the One You Love","Eight Days a Week","What Goes Around Comes Around","Kung Fu Fighting","Fantasy","Sir Duke","Ain't Misbehavin'","Need You Now","Last Train to Clarksville","Yakety Yak","I'll be seeing you","Hard to Say I'm Sorry","It's My Party","Love to Love You Baby","Miss You Much","Born to Run","Instant Karma","The Rose","Purple Rain","One","Groove is in the Heart","Gimme Some Lovin'","Beautiful Day","Escape (The Pina Colada Song)","Use Somebody","Fortunate Son","Afternoon Delight","Love's Theme","Sailing","Cherry Pink & Apple Blossom White","Georgy Girl","How to Save a Life","I Walk the Line","All You Need is Love","U Can't Touch This","All Out of Love","Where is the Love?","Revolution","The Love You Save","Black Or White","This Used to Be My Playground","Living For the City","School's Out","Disturbia","Riders On the Storm","Some Enchanted Evening","Weak","Maneater","More Than Words","Time of the Season","Mrs Brown You've Got a Lovely Daughter","If You Leave Me Now","Can't Get Enough of Your Love","Na Na Hey Hey (Kiss Him Goodbye)","Mr Brightside","Black Velvet","I'm Yours","My Blue Heaven","It Had to Be You","Tha Crossroads","Ac-cent-tchu-ate the Positive","Everyday People","We Are Young","Take Me Home","Smoke! Smoke! Smoke! (That Cigarette)","In the Summertime","The Tracks of My Tears","Fly Robin Fly","Love is a Many Splendoured Thing","Another Night","Long Tall Sally","You Sexy Thing","The Morning After","Get Off of My Cloud","Roses Are Red","Thank You (Falettinme be Mice Elf Again)","Slow Poke","You Belong With Me","Ain't No Mountain High Enough","Auf Wiederseh'n Sweetheart","Beauty & the Beast","St Louis Blues","Peggy Sue","U Got it Bad","Sweet Caroline (Good Times Never Seemed So Good)","Wedding Bell Blues","Freebird","Wipe Out","California Girls","Being With You","Makin' Whoopee","Shop Around","Smoke On the Water","Hungry Heart","That's Amore","My Life","Brandy (You're A Fine Girl)","Walk Don't Run","Surfin' USA","Ball of Confusion (That's What the World is Today)","Sunshine Superman","Frankenstein","Kiss You All Over","Wishing Well","Piano Man","Ben","In the Ghetto","Hang On Sloopy","Singing The Blues","Cry Like a Baby","I Honestly Love You","Brother","Lookin' Out My Back Door","Candy Man","Burn","Stagger Lee","Moonlight Cocktail","Coming Up","Pop Muzik","As Time Goes By","My Eyes Adored You","Strawberry Fields Forever","Some of These Days","I Think I Love You","Judy in Disguise (With Glasses)","All Along the Watchtower","A Thousand Miles","Fast Car","Red Red Wine","Live & Let Die","Come On Eileen","Right Back Where We Started From","Brother Louie","Ol' Man River","Band On the Run","Rich Girl","Green River","Got to Give it Up","Behind Closed Doors","Don't Go Breaking My Heart","I'm Looking Over a Four Leaf Clover","Mr Big Stuff","Tiger Rag","Kryptonite","Hey Paula","Go Your Own Way","Big Bad John","Wake Me Up Before You Go Go","Tangerine","Wayward Wind","Disco Lady","Spanish Harlem","Wicked Game","Rosanna","Papa Don't Preach","Somebody to Love","Kokomo","Manana (Is Soon Enough For Me)","Puttin' on the Ritz","One More Try","I'll Walk Alone","Shout","Woman","Ballerina","We Built This City","19th Nervous Breakdown","Working My Way Back to You","Superstar","Foolish Games","Get Down Tonight","On Bended Knee","Magic Carpet Ride","Only You (And You Alone)","A String of Pearls","A Tree in the Meadow","So Much in Love","Every Little Thing She Does is Magic","La Bamba","Tighten Up","Three Times a Lady","Airplanes","Don't Leave Me This Way","Rock the Casbah","Feel Good Inc","Love Me Do","Kiss On My List","Give Me Everything","Have You Ever Really Loved a Woman?","Love Letters in the Sand","Ring My Bell","Love Child","I Feel For You","Bye","(Let Me Be Your) Teddy Bear","Soldier Boy","Papa's Got a Brand New Bag","Love Hangover","Spill the Wine","Royals","April Showers","Don't You (Forget About Me)","Travellin' Man","The Thing","You Make Me Feel Brand New","The Glow-Worm","You Don't Bring Me Flowers","Summertime Blues","Straight Up","Sunday","Wake Up Little Susie","She's a Lady","Over There","Little Darlin'","Rag Mop","Shake Down","Up Around the Bend","Harbour Lights","Chances Are","Mood Indigo","Pony Time","After You've Gone","I Wanna Love You","Da Doo Ron Ron (When He Walked Me Home)","If You Don't Know Me By Now","Green Tambourine","My Man","If I Didn't Care","St George & the Dragonette","Why Don't You Believe Me?","How Will I Know","Disco Duck","Lonely Boy","Never Gonna Give You Up","Before The Next Teardrop Falls","Running Scared","Let's Hear it For the Boy","Sleep Walk","Walk On the Wild Side","Memories Are Made of This","Open Arms","Stuck On You","Personality","Feel Like Making Love","Stars & Stripes Forever","Besame Mucho","Let Me Call You Sweetheart","Indian Reservation (The Lament Of The Cherokee Reservation Indian)","Cars","You Make Me Feel Like Dancing","Whatcha Say","Me & Mrs Jones","Bitter Sweet Symphony","Uncle Albert (Admiral Halsey)","More Than a Feeling","My Boyfriend's Back","People","He'll Have to Go","I Can Help","The Streak","Dreams","Hair","Cold","Nothin' on You","The End of the World","Caldonia Boogie (What Makes Your Big Head So Hard)","I Kissed A Girl","Incense & Peppermints","12th Street Rag","West End Blues","The Way You Move","Smoke Gets in Your Eyes","Want Ads","Long Cool Woman in a Black Dress","Hey Baby","(Your Love Keeps Lifting Me) Higher & Higher","He's a Rebel","Alone","Thrift Shop","Don't Let the Sun Go Down On Me","The Sweet Escape","Return to Sender","Here in My Heart","Wabash Cannonball","Ain't That a Shame","Travellin' Band","I'm Your Boogie Man","I Write the Songs","This Love","Lights","Will It Go Round In Circles","Purple Haze","Rock Your Baby","Delicado","Tammy","Check On It","Breaking Up is Hard to Do","1999","Prisoner of Love","Wild Wild West","Walk Like a Man","I Will Follow Him","Glamorous","Yellow Rose of Texas","That Old Black Magic","I'm So Lonesome I Could Cry","Up Up & Away","Baby Come Back","Let it Snow! Let it Snow! Let it Snow!","Pon De Replay","Because I Love You (The Postman Song)","Sleepy Lagoon","Baker Street","Dardanella","You Don't Have to Be a Star (To Be in My Show)","Leaving","Glory of Love","Theme From 'Greatest American Hero' (Believe It Or Not)","Shake You Down","Ole Buttermilk Sky","I Can't Get Started","Freak Me","Hot Child In The City","Man in the Mirror","Queen of Hearts","Let's Groove","Change the World","You make Me Wanna","Someday","Eve of Destruction","One of Us","Honky Tonk","Be Bop a Lula","Two Hearts","Paper Planes"],gXt={genre:dXt,song_name:hXt},mXt=gXt,fXt=["activist","artist","author","blogger","business owner","coach","creator","designer","developer","dreamer","educator","engineer","entrepreneur","environmentalist","film lover","filmmaker","foodie","founder","friend","gamer","geek","grad","inventor","leader","model","musician","nerd","parent","patriot","person","philosopher","photographer","public speaker","scientist","singer","streamer","student","teacher","traveler","veteran","writer"],pXt=["{{person.bio_part}}","{{person.bio_part}}, {{person.bio_part}}","{{person.bio_part}}, {{person.bio_part}}, {{person.bio_part}}","{{person.bio_part}}, {{person.bio_part}}, {{person.bio_part}} {{internet.emoji}}","{{word.noun}} {{person.bio_supporter}}","{{word.noun}} {{person.bio_supporter}} {{internet.emoji}}","{{word.noun}} {{person.bio_supporter}}, {{person.bio_part}}","{{word.noun}} {{person.bio_supporter}}, {{person.bio_part}} {{internet.emoji}}"],bXt=["advocate","devotee","enthusiast","fan","junkie","lover","supporter"],CXt=["Mary","Patricia","Linda","Barbara","Elizabeth","Jennifer","Maria","Susan","Margaret","Dorothy","Lisa","Nancy","Karen","Betty","Helen","Sandra","Donna","Carol","Ruth","Sharon","Michelle","Laura","Sarah","Kimberly","Deborah","Jessica","Shirley","Cynthia","Angela","Melissa","Brenda","Amy","Anna","Rebecca","Virginia","Kathleen","Pamela","Martha","Debra","Amanda","Stephanie","Carolyn","Christine","Marie","Janet","Catherine","Frances","Ann","Joyce","Diane","Alice","Julie","Heather","Teresa","Doris","Gloria","Evelyn","Jean","Cheryl","Mildred","Katherine","Joan","Ashley","Judith","Rose","Janice","Kelly","Nicole","Judy","Christina","Kathy","Theresa","Beverly","Denise","Tammy","Irene","Jane","Lori","Rachel","Marilyn","Andrea","Kathryn","Louise","Sara","Anne","Jacqueline","Wanda","Bonnie","Julia","Ruby","Lois","Tina","Phyllis","Norma","Paula","Diana","Annie","Lillian","Emily","Robin","Peggy","Crystal","Gladys","Rita","Dawn","Connie","Florence","Tracy","Edna","Tiffany","Carmen","Rosa","Cindy","Grace","Wendy","Victoria","Edith","Kim","Sherry","Sylvia","Josephine","Thelma","Shannon","Sheila","Ethel","Ellen","Elaine","Marjorie","Carrie","Charlotte","Monica","Esther","Pauline","Emma","Juanita","Anita","Rhonda","Hazel","Amber","Eva","Debbie","April","Leslie","Clara","Lucille","Jamie","Joanne","Eleanor","Valerie","Danielle","Megan","Alicia","Suzanne","Michele","Gail","Bertha","Darlene","Veronica","Jill","Erin","Geraldine","Lauren","Cathy","Joann","Lorraine","Lynn","Sally","Regina","Erica","Beatrice","Dolores","Bernice","Audrey","Yvonne","Annette","June","Samantha","Marion","Dana","Stacy","Ana","Renee","Ida","Vivian","Roberta","Holly","Brittany","Melanie","Loretta","Yolanda","Jeanette","Laurie","Katie","Kristen","Vanessa","Alma","Sue","Elsie","Beth","Jeanne","Vicki","Carla","Tara","Rosemary","Eileen","Terri","Gertrude","Lucy","Tonya","Ella","Stacey","Wilma","Gina","Kristin","Jessie","Natalie","Agnes","Vera","Willie","Charlene","Bessie","Delores","Melinda","Pearl","Arlene","Maureen","Colleen","Allison","Tamara","Joy","Georgia","Constance","Lillie","Claudia","Jackie","Marcia","Tanya","Nellie","Minnie","Marlene","Heidi","Glenda","Lydia","Viola","Courtney","Marian","Stella","Caroline","Dora","Jo","Vickie","Mattie","Terry","Maxine","Irma","Mabel","Marsha","Myrtle","Lena","Christy","Deanna","Patsy","Hilda","Gwendolyn","Jennie","Nora","Margie","Nina","Cassandra","Leah","Penny","Kay","Priscilla","Naomi","Carole","Brandy","Olga","Billie","Dianne","Tracey","Leona","Jenny","Felicia","Sonia","Miriam","Velma","Becky","Bobbie","Violet","Kristina","Toni","Misty","Mae","Shelly","Daisy","Ramona","Sherri","Erika","Katrina","Claire","Lindsey","Lindsay","Geneva","Guadalupe","Belinda","Margarita","Sheryl","Cora","Faye","Ada","Natasha","Sabrina","Isabel","Marguerite","Hattie","Harriet","Molly","Cecilia","Kristi","Brandi","Blanche","Sandy","Rosie","Joanna","Iris","Eunice","Angie","Inez","Lynda","Madeline","Amelia","Alberta","Genevieve","Monique","Jodi","Janie","Maggie","Kayla","Sonya","Jan","Lee","Kristine","Candace","Fannie","Maryann","Opal","Alison","Yvette","Melody","Luz","Susie","Olivia","Flora","Shelley","Kristy","Mamie","Lula","Lola","Verna","Beulah","Antoinette","Candice","Juana","Jeannette","Pam","Kelli","Hannah","Whitney","Bridget","Karla","Celia","Latoya","Patty","Shelia","Gayle","Della","Vicky","Lynne","Sheri","Marianne","Kara","Jacquelyn","Erma","Blanca","Myra","Leticia","Pat","Krista","Roxanne","Angelica","Johnnie","Robyn","Francis","Adrienne","Rosalie","Alexandra","Brooke","Bethany","Sadie","Bernadette","Traci","Jody","Kendra","Jasmine","Nichole","Rachael","Chelsea","Mable","Ernestine","Muriel","Marcella","Elena","Krystal","Angelina","Nadine","Kari","Estelle","Dianna","Paulette","Lora","Mona","Doreen","Rosemarie","Angel","Desiree","Antonia","Hope","Ginger","Janis","Betsy","Christie","Freda","Mercedes","Meredith","Lynette","Teri","Cristina","Eula","Leigh","Meghan","Sophia","Eloise","Rochelle","Gretchen","Cecelia","Raquel","Henrietta","Alyssa","Jana","Kelley","Gwen","Kerry","Jenna","Tricia","Laverne","Olive","Alexis","Tasha","Silvia","Elvira","Casey","Delia","Sophie","Kate","Patti","Lorena","Kellie","Sonja","Lila","Lana","Darla","May","Mindy","Essie","Mandy","Lorene","Elsa","Josefina","Jeannie","Miranda","Dixie","Lucia","Marta","Faith","Lela","Johanna","Shari","Camille","Tami","Shawna","Elisa","Ebony","Melba","Ora","Nettie","Tabitha","Ollie","Jaime","Winifred","Kristie"],vXt=["Abigail","Adele","Alex","Alice","Alisha","Amber","Amelia","Amora","Anaïs","Angelou","Anika","Anise","Annabel","Anne","Aphrodite","Aretha","Arya","Ashton","Aster","Audrey","Avery","Bailee","Bay","Belle","Beth","Billie","Blair","Blaise","Blake","Blanche","Blue","Bree","Brielle","Brienne","Brooke","Caleen","Candice","Caprice","Carelyn","Caylen","Celine","Cerise","Cia","Claire","Claudia","Clementine","Coral","Coraline","Dahlia","Dakota","Dawn","Della","Demi","Denise","Denver","Devine","Devon","Diana","Dylan","Ebony","Eden","Eleanor","Elein","Elizabeth","Ellen","Elodie","Eloise","Ember","Emma","Erin","Eyre","Faith","Farrah","Fawn","Fayre","Fern","France","Francis","Frida","Genisis","Georgia","Grace","Gwen","Harley","Harper","Hazel","Helen","Hippolyta","Holly","Hope","Imani","Iowa","Ireland","Irene","Iris","Isa","Isla","Ivy","Jade","Jane","Jazz","Jean","Jess","Jett","Jo","Joan","Jolie","Jordan","Josie","Journey","Joy","Jules","Julien","Juliet","Juniper","Justice","Kali","Karma","Kat","Kate","Kennedy","Keva","Kylie","Lake","Lane","Lark","Layla","Lee","Leigh","Leona","Lexi","London","Lou","Louise","Love","Luna","Lux","Lynn","Lyric","Maddie","Mae","Marie","Matilda","Maude","Maybel","Meadow","Medusa","Mercy","Michelle","Mirabel","Monroe","Morgan","Nalia","Naomi","Nova","Olive","Paige","Parker","Pax","Pearl","Penelope","Phoenix","Quinn","Rae","Rain","Raven","Ray","Raye","Rebel","Reese","Reeve","Regan","Riley","River","Robin","Rory","Rose","Royal","Ruth","Rylie","Sage","Sam","Saturn","Scout","Serena","Sky","Skylar","Sofia","Sophia","Storm","Sue","Suzanne","Sydney","Taylen","Taylor","Teagan","Tempest","Tenley","Thea","Trinity","Valerie","Venus","Vera","Violet","Willow","Winter","Xena","Zaylee","Zion","Zoe"],v_e=["Mrs.","Ms.","Miss","Dr."],yXt=["Aaliyah","Aaron","Abagail","Abbey","Abbie","Abbigail","Abby","Abdiel","Abdul","Abdullah","Abe","Abel","Abelardo","Abigail","Abigale","Abigayle","Abner","Abraham","Ada","Adah","Adalberto","Adaline","Adam","Adan","Addie","Addison","Adela","Adelbert","Adele","Adelia","Adeline","Adell","Adella","Adelle","Aditya","Adolf","Adolfo","Adolph","Adolphus","Adonis","Adrain","Adrian","Adriana","Adrianna","Adriel","Adrien","Adrienne","Afton","Aglae","Agnes","Agustin","Agustina","Ahmad","Ahmed","Aida","Aidan","Aiden","Aileen","Aimee","Aisha","Aiyana","Akeem","Al","Alaina","Alan","Alana","Alanis","Alanna","Alayna","Alba","Albert","Alberta","Albertha","Alberto","Albin","Albina","Alda","Alden","Alec","Aleen","Alejandra","Alejandrin","Alek","Alena","Alene","Alessandra","Alessandro","Alessia","Aletha","Alex","Alexa","Alexander","Alexandra","Alexandre","Alexandrea","Alexandria","Alexandrine","Alexandro","Alexane","Alexanne","Alexie","Alexis","Alexys","Alexzander","Alf","Alfonso","Alfonzo","Alford","Alfred","Alfreda","Alfredo","Ali","Alia","Alice","Alicia","Alisa","Alisha","Alison","Alivia","Aliya","Aliyah","Aliza","Alize","Allan","Allen","Allene","Allie","Allison","Ally","Alphonso","Alta","Althea","Alva","Alvah","Alvena","Alvera","Alverta","Alvina","Alvis","Alyce","Alycia","Alysa","Alysha","Alyson","Alysson","Amalia","Amanda","Amani","Amara","Amari","Amaya","Amber","Ambrose","Amelia","Amelie","Amely","America","Americo","Amie","Amina","Amir","Amira","Amiya","Amos","Amparo","Amy","Amya","Ana","Anabel","Anabelle","Anahi","Anais","Anastacio","Anastasia","Anderson","Andre","Andreane","Andreanne","Andres","Andrew","Andy","Angel","Angela","Angelica","Angelina","Angeline","Angelita","Angelo","Angie","Angus","Anibal","Anika","Anissa","Anita","Aniya","Aniyah","Anjali","Anna","Annabel","Annabell","Annabelle","Annalise","Annamae","Annamarie","Anne","Annetta","Annette","Annie","Ansel","Ansley","Anthony","Antoinette","Antone","Antonetta","Antonette","Antonia","Antonietta","Antonina","Antonio","Antwan","Antwon","Anya","April","Ara","Araceli","Aracely","Arch","Archibald","Ardella","Arden","Ardith","Arely","Ari","Ariane","Arianna","Aric","Ariel","Arielle","Arjun","Arlene","Arlie","Arlo","Armand","Armando","Armani","Arnaldo","Arne","Arno","Arnold","Arnoldo","Arnulfo","Aron","Art","Arthur","Arturo","Arvel","Arvid","Arvilla","Aryanna","Asa","Asha","Ashlee","Ashleigh","Ashley","Ashly","Ashlynn","Ashton","Ashtyn","Asia","Assunta","Astrid","Athena","Aubree","Aubrey","Audie","Audra","Audreanne","Audrey","August","Augusta","Augustine","Augustus","Aurelia","Aurelie","Aurelio","Aurore","Austen","Austin","Austyn","Autumn","Ava","Avery","Avis","Axel","Ayana","Ayden","Ayla","Aylin","Baby","Bailee","Bailey","Barbara","Barney","Baron","Barrett","Barry","Bart","Bartholome","Barton","Baylee","Beatrice","Beau","Beaulah","Bell","Bella","Belle","Ben","Benedict","Benjamin","Bennett","Bennie","Benny","Benton","Berenice","Bernadette","Bernadine","Bernard","Bernardo","Berneice","Bernhard","Bernice","Bernie","Berniece","Bernita","Berry","Bert","Berta","Bertha","Bertram","Bertrand","Beryl","Bessie","Beth","Bethany","Bethel","Betsy","Bette","Bettie","Betty","Bettye","Beulah","Beverly","Bianka","Bill","Billie","Billy","Birdie","Blair","Blaise","Blake","Blanca","Blanche","Blaze","Bo","Bobbie","Bobby","Bonita","Bonnie","Boris","Boyd","Brad","Braden","Bradford","Bradley","Bradly","Brady","Braeden","Brain","Brandi","Brando","Brandon","Brandt","Brandy","Brandyn","Brannon","Branson","Brant","Braulio","Braxton","Brayan","Breana","Breanna","Breanne","Brenda","Brendan","Brenden","Brendon","Brenna","Brennan","Brennon","Brent","Bret","Brett","Bria","Brian","Briana","Brianne","Brice","Bridget","Bridgette","Bridie","Brielle","Brigitte","Brionna","Brisa","Britney","Brittany","Brock","Broderick","Brody","Brook","Brooke","Brooklyn","Brooks","Brown","Bruce","Bryana","Bryce","Brycen","Bryon","Buck","Bud","Buddy","Buford","Bulah","Burdette","Burley","Burnice","Buster","Cade","Caden","Caesar","Caitlyn","Cale","Caleb","Caleigh","Cali","Calista","Callie","Camden","Cameron","Camila","Camilla","Camille","Camren","Camron","Camryn","Camylle","Candace","Candelario","Candice","Candida","Candido","Cara","Carey","Carissa","Carlee","Carleton","Carley","Carli","Carlie","Carlo","Carlos","Carlotta","Carmel","Carmela","Carmella","Carmelo","Carmen","Carmine","Carol","Carolanne","Carole","Carolina","Caroline","Carolyn","Carolyne","Carrie","Carroll","Carson","Carter","Cary","Casandra","Casey","Casimer","Casimir","Casper","Cassandra","Cassandre","Cassidy","Cassie","Catalina","Caterina","Catharine","Catherine","Cathrine","Cathryn","Cathy","Cayla","Ceasar","Cecelia","Cecil","Cecile","Cecilia","Cedrick","Celestine","Celestino","Celia","Celine","Cesar","Chad","Chadd","Chadrick","Chaim","Chance","Chandler","Chanel","Chanelle","Charity","Charlene","Charles","Charley","Charlie","Charlotte","Chase","Chasity","Chauncey","Chaya","Chaz","Chelsea","Chelsey","Chelsie","Chesley","Chester","Chet","Cheyanne","Cheyenne","Chloe","Chris","Christ","Christa","Christelle","Christian","Christiana","Christina","Christine","Christop","Christophe","Christopher","Christy","Chyna","Ciara","Cicero","Cielo","Cierra","Cindy","Citlalli","Clair","Claire","Clara","Clarabelle","Clare","Clarissa","Clark","Claud","Claude","Claudia","Claudie","Claudine","Clay","Clemens","Clement","Clementina","Clementine","Clemmie","Cleo","Cleora","Cleta","Cletus","Cleve","Cleveland","Clifford","Clifton","Clint","Clinton","Clotilde","Clovis","Cloyd","Clyde","Coby","Cody","Colby","Cole","Coleman","Colin","Colleen","Collin","Colt","Colten","Colton","Columbus","Concepcion","Conner","Connie","Connor","Conor","Conrad","Constance","Constantin","Consuelo","Cooper","Cora","Coralie","Corbin","Cordelia","Cordell","Cordia","Cordie","Corene","Corine","Cornelius","Cornell","Corrine","Cortez","Cortney","Cory","Coty","Courtney","Coy","Craig","Crawford","Creola","Cristal","Cristian","Cristina","Cristobal","Cristopher","Cruz","Crystal","Crystel","Cullen","Curt","Curtis","Cydney","Cynthia","Cyril","Cyrus","Dagmar","Dahlia","Daija","Daisha","Daisy","Dakota","Dale","Dallas","Dallin","Dalton","Damaris","Dameon","Damian","Damien","Damion","Damon","Dan","Dana","Dandre","Dane","D'angelo","Dangelo","Danial","Daniela","Daniella","Danielle","Danika","Dannie","Danny","Dante","Danyka","Daphne","Daphnee","Daphney","Darby","Daren","Darian","Dariana","Darien","Dario","Darion","Darius","Darlene","Daron","Darrel","Darrell","Darren","Darrick","Darrin","Darrion","Darron","Darryl","Darwin","Daryl","Dashawn","Dasia","Dave","David","Davin","Davion","Davon","Davonte","Dawn","Dawson","Dax","Dayana","Dayna","Dayne","Dayton","Dean","Deangelo","Deanna","Deborah","Declan","Dedric","Dedrick","Dee","Deion","Deja","Dejah","Dejon","Dejuan","Delaney","Delbert","Delfina","Delia","Delilah","Dell","Della","Delmer","Delores","Delpha","Delphia","Delphine","Delta","Demarco","Demarcus","Demario","Demetris","Demetrius","Demond","Dena","Denis","Dennis","Deon","Deondre","Deontae","Deonte","Dereck","Derek","Derick","Deron","Derrick","Deshaun","Deshawn","Desiree","Desmond","Dessie","Destany","Destin","Destinee","Destiney","Destini","Destiny","Devan","Devante","Deven","Devin","Devon","Devonte","Devyn","Dewayne","Dewitt","Dexter","Diamond","Diana","Dianna","Diego","Dillan","Dillon","Dimitri","Dina","Dino","Dion","Dixie","Dock","Dolly","Dolores","Domenic","Domenica","Domenick","Domenico","Domingo","Dominic","Dominique","Don","Donald","Donato","Donavon","Donna","Donnell","Donnie","Donny","Dora","Dorcas","Dorian","Doris","Dorothea","Dorothy","Dorris","Dortha","Dorthy","Doug","Douglas","Dovie","Doyle","Drake","Drew","Duane","Dudley","Dulce","Duncan","Durward","Dustin","Dusty","Dwight","Dylan","Earl","Earlene","Earline","Earnest","Earnestine","Easter","Easton","Ebba","Ebony","Ed","Eda","Edd","Eddie","Eden","Edgar","Edgardo","Edison","Edmond","Edmund","Edna","Eduardo","Edward","Edwardo","Edwin","Edwina","Edyth","Edythe","Effie","Efrain","Efren","Eileen","Einar","Eino","Eladio","Elaina","Elbert","Elda","Eldon","Eldora","Eldred","Eldridge","Eleanora","Eleanore","Eleazar","Electa","Elena","Elenor","Elenora","Eleonore","Elfrieda","Eli","Elian","Eliane","Elias","Eliezer","Elijah","Elinor","Elinore","Elisa","Elisabeth","Elise","Eliseo","Elisha","Elissa","Eliza","Elizabeth","Ella","Ellen","Ellie","Elliot","Elliott","Ellis","Ellsworth","Elmer","Elmira","Elmo","Elmore","Elna","Elnora","Elody","Eloisa","Eloise","Elouise","Eloy","Elroy","Elsa","Else","Elsie","Elta","Elton","Elva","Elvera","Elvie","Elvis","Elwin","Elwyn","Elyse","Elyssa","Elza","Emanuel","Emelia","Emelie","Emely","Emerald","Emerson","Emery","Emie","Emil","Emile","Emilia","Emiliano","Emilie","Emilio","Emily","Emma","Emmalee","Emmanuel","Emmanuelle","Emmet","Emmett","Emmie","Emmitt","Emmy","Emory","Ena","Enid","Enoch","Enola","Enos","Enrico","Enrique","Ephraim","Era","Eriberto","Eric","Erica","Erich","Erick","Ericka","Erik","Erika","Erin","Erling","Erna","Ernest","Ernestina","Ernestine","Ernesto","Ernie","Ervin","Erwin","Eryn","Esmeralda","Esperanza","Esta","Esteban","Estefania","Estel","Estell","Estella","Estelle","Estevan","Esther","Estrella","Etha","Ethan","Ethel","Ethelyn","Ethyl","Ettie","Eudora","Eugene","Eugenia","Eula","Eulah","Eulalia","Euna","Eunice","Eusebio","Eva","Evalyn","Evan","Evangeline","Evans","Eve","Eveline","Evelyn","Everardo","Everett","Everette","Evert","Evie","Ewald","Ewell","Ezekiel","Ezequiel","Ezra","Fabian","Fabiola","Fae","Fannie","Fanny","Fatima","Faustino","Fausto","Favian","Fay","Faye","Federico","Felicia","Felicita","Felicity","Felipa","Felipe","Felix","Felton","Fermin","Fern","Fernando","Ferne","Fidel","Filiberto","Filomena","Finn","Fiona","Flavie","Flavio","Fleta","Fletcher","Flo","Florence","Florencio","Florian","Florida","Florine","Flossie","Floy","Floyd","Ford","Forest","Forrest","Foster","Frances","Francesca","Francesco","Francis","Francisca","Francisco","Franco","Frank","Frankie","Franz","Fred","Freda","Freddie","Freddy","Frederic","Frederick","Frederik","Frederique","Fredrick","Fredy","Freeda","Freeman","Freida","Frida","Frieda","Friedrich","Fritz","Furman","Gabe","Gabriel","Gabriella","Gabrielle","Gaetano","Gage","Gail","Gardner","Garett","Garfield","Garland","Garnet","Garnett","Garret","Garrett","Garrick","Garrison","Garry","Garth","Gaston","Gavin","Gayle","Gene","General","Genesis","Genevieve","Gennaro","Genoveva","Geo","Geoffrey","George","Georgette","Georgiana","Georgianna","Geovanni","Geovanny","Geovany","Gerald","Geraldine","Gerard","Gerardo","Gerda","Gerhard","Germaine","German","Gerry","Gerson","Gertrude","Gia","Gianni","Gideon","Gilbert","Gilberto","Gilda","Giles","Gillian","Gina","Gino","Giovani","Giovanna","Giovanni","Giovanny","Gisselle","Giuseppe","Gladyce","Gladys","Glen","Glenda","Glenna","Glennie","Gloria","Godfrey","Golda","Golden","Gonzalo","Gordon","Grace","Gracie","Graciela","Grady","Graham","Grant","Granville","Grayce","Grayson","Green","Greg","Gregg","Gregoria","Gregorio","Gregory","Greta","Gretchen","Greyson","Griffin","Grover","Guadalupe","Gudrun","Guido","Guillermo","Guiseppe","Gunnar","Gunner","Gus","Gussie","Gust","Gustave","Guy","Gwen","Gwendolyn","Hadley","Hailee","Hailey","Hailie","Hal","Haleigh","Haley","Halie","Halle","Hallie","Hank","Hanna","Hannah","Hans","Hardy","Harley","Harmon","Harmony","Harold","Harrison","Harry","Harvey","Haskell","Hassan","Hassie","Hattie","Haven","Hayden","Haylee","Hayley","Haylie","Hazel","Hazle","Heath","Heather","Heaven","Heber","Hector","Heidi","Helen","Helena","Helene","Helga","Hellen","Helmer","Heloise","Henderson","Henri","Henriette","Henry","Herbert","Herman","Hermann","Hermina","Herminia","Herminio","Hershel","Herta","Hertha","Hester","Hettie","Hilario","Hilbert","Hilda","Hildegard","Hillard","Hillary","Hilma","Hilton","Hipolito","Hiram","Hobart","Holden","Hollie","Hollis","Holly","Hope","Horace","Horacio","Hortense","Hosea","Houston","Howard","Howell","Hoyt","Hubert","Hudson","Hugh","Hulda","Humberto","Hunter","Hyman","Ian","Ibrahim","Icie","Ida","Idell","Idella","Ignacio","Ignatius","Ike","Ila","Ilene","Iliana","Ima","Imani","Imelda","Immanuel","Imogene","Ines","Irma","Irving","Irwin","Isaac","Isabel","Isabell","Isabella","Isabelle","Isac","Isadore","Isai","Isaiah","Isaias","Isidro","Ismael","Isobel","Isom","Israel","Issac","Itzel","Iva","Ivah","Ivory","Ivy","Izabella","Izaiah","Jabari","Jace","Jacey","Jacinthe","Jacinto","Jack","Jackeline","Jackie","Jacklyn","Jackson","Jacky","Jaclyn","Jacquelyn","Jacques","Jacynthe","Jada","Jade","Jaden","Jadon","Jadyn","Jaeden","Jaida","Jaiden","Jailyn","Jaime","Jairo","Jakayla","Jake","Jakob","Jaleel","Jalen","Jalon","Jalyn","Jamaal","Jamal","Jamar","Jamarcus","Jamel","Jameson","Jamey","Jamie","Jamil","Jamir","Jamison","Jammie","Jan","Jana","Janae","Jane","Janelle","Janessa","Janet","Janice","Janick","Janie","Janis","Janiya","Jannie","Jany","Jaquan","Jaquelin","Jaqueline","Jared","Jaren","Jarod","Jaron","Jarred","Jarrell","Jarret","Jarrett","Jarrod","Jarvis","Jasen","Jasmin","Jason","Jasper","Jaunita","Javier","Javon","Javonte","Jay","Jayce","Jaycee","Jayda","Jayde","Jayden","Jaydon","Jaylan","Jaylen","Jaylin","Jaylon","Jayme","Jayne","Jayson","Jazlyn","Jazmin","Jazmyn","Jazmyne","Jean","Jeanette","Jeanie","Jeanne","Jed","Jedediah","Jedidiah","Jeff","Jefferey","Jeffery","Jeffrey","Jeffry","Jena","Jenifer","Jennie","Jennifer","Jennings","Jennyfer","Jensen","Jerad","Jerald","Jeramie","Jeramy","Jerel","Jeremie","Jeremy","Jermain","Jermaine","Jermey","Jerod","Jerome","Jeromy","Jerrell","Jerrod","Jerrold","Jerry","Jess","Jesse","Jessica","Jessie","Jessika","Jessy","Jessyca","Jesus","Jett","Jettie","Jevon","Jewel","Jewell","Jillian","Jimmie","Jimmy","Jo","Joan","Joana","Joanie","Joanne","Joannie","Joanny","Joany","Joaquin","Jocelyn","Jodie","Jody","Joe","Joel","Joelle","Joesph","Joey","Johan","Johann","Johanna","Johathan","John","Johnathan","Johnathon","Johnnie","Johnny","Johnpaul","Johnson","Jolie","Jon","Jonas","Jonatan","Jonathan","Jonathon","Jordan","Jordane","Jordi","Jordon","Jordy","Jordyn","Jorge","Jose","Josefa","Josefina","Joseph","Josephine","Josh","Joshua","Joshuah","Josiah","Josiane","Josianne","Josie","Josue","Jovan","Jovani","Jovanny","Jovany","Joy","Joyce","Juana","Juanita","Judah","Judd","Jude","Judge","Judson","Judy","Jules","Julia","Julian","Juliana","Julianne","Julie","Julien","Juliet","Julio","Julius","June","Junior","Junius","Justen","Justice","Justina","Justine","Juston","Justus","Justyn","Juvenal","Juwan","Kacey","Kaci","Kacie","Kade","Kaden","Kadin","Kaela","Kaelyn","Kaia","Kailee","Kailey","Kailyn","Kaitlin","Kaitlyn","Kale","Kaleb","Kaleigh","Kaley","Kali","Kallie","Kameron","Kamille","Kamren","Kamron","Kamryn","Kane","Kara","Kareem","Karelle","Karen","Kari","Kariane","Karianne","Karina","Karine","Karl","Karlee","Karley","Karli","Karlie","Karolann","Karson","Kasandra","Kasey","Kassandra","Katarina","Katelin","Katelyn","Katelynn","Katharina","Katherine","Katheryn","Kathleen","Kathlyn","Kathryn","Kathryne","Katlyn","Katlynn","Katrina","Katrine","Kattie","Kavon","Kay","Kaya","Kaycee","Kayden","Kayla","Kaylah","Kaylee","Kayleigh","Kayley","Kayli","Kaylie","Kaylin","Keagan","Keanu","Keara","Keaton","Keegan","Keeley","Keely","Keenan","Keira","Keith","Kellen","Kelley","Kelli","Kellie","Kelly","Kelsi","Kelsie","Kelton","Kelvin","Ken","Kendall","Kendra","Kendrick","Kenna","Kennedi","Kennedy","Kenneth","Kennith","Kenny","Kenton","Kenya","Kenyatta","Kenyon","Keon","Keshaun","Keshawn","Keven","Kevin","Kevon","Keyon","Keyshawn","Khalid","Khalil","Kian","Kiana","Kianna","Kiara","Kiarra","Kiel","Kiera","Kieran","Kiley","Kim","Kimberly","King","Kip","Kira","Kirk","Kirsten","Kirstin","Kitty","Kobe","Koby","Kody","Kolby","Kole","Korbin","Korey","Kory","Kraig","Kris","Krista","Kristian","Kristin","Kristina","Kristofer","Kristoffer","Kristopher","Kristy","Krystal","Krystel","Krystina","Kurt","Kurtis","Kyla","Kyle","Kylee","Kyleigh","Kyler","Kylie","Kyra","Lacey","Lacy","Ladarius","Lafayette","Laila","Laisha","Lamar","Lambert","Lamont","Lance","Landen","Lane","Laney","Larissa","Laron","Larry","Larue","Laura","Laurel","Lauren","Laurence","Lauretta","Lauriane","Laurianne","Laurie","Laurine","Laury","Lauryn","Lavada","Lavern","Laverna","Laverne","Lavina","Lavinia","Lavon","Lavonne","Lawrence","Lawson","Layla","Layne","Lazaro","Lea","Leann","Leanna","Leanne","Leatha","Leda","Lee","Leif","Leila","Leilani","Lela","Lelah","Leland","Lelia","Lempi","Lemuel","Lenna","Lennie","Lenny","Lenora","Lenore","Leo","Leola","Leon","Leonard","Leonardo","Leone","Leonel","Leonie","Leonor","Leonora","Leopold","Leopoldo","Leora","Lera","Lesley","Leslie","Lesly","Lessie","Lester","Leta","Letha","Letitia","Levi","Lew","Lewis","Lexi","Lexie","Lexus","Lia","Liam","Liana","Libbie","Libby","Lila","Lilian","Liliana","Liliane","Lilla","Lillian","Lilliana","Lillie","Lilly","Lily","Lilyan","Lina","Lincoln","Linda","Lindsay","Lindsey","Linnea","Linnie","Linwood","Lionel","Lisa","Lisandro","Lisette","Litzy","Liza","Lizeth","Lizzie","Llewellyn","Lloyd","Logan","Lois","Lola","Lolita","Loma","Lon","London","Lonie","Lonnie","Lonny","Lonzo","Lora","Loraine","Loren","Lorena","Lorenz","Lorenza","Lorenzo","Lori","Lorine","Lorna","Lottie","Lou","Louie","Louisa","Lourdes","Louvenia","Lowell","Loy","Loyal","Loyce","Lucas","Luciano","Lucie","Lucienne","Lucile","Lucinda","Lucio","Lucious","Lucius","Lucy","Ludie","Ludwig","Lue","Luella","Luigi","Luis","Luisa","Lukas","Lula","Lulu","Luna","Lupe","Lura","Lurline","Luther","Luz","Lyda","Lydia","Lyla","Lynn","Lyric","Lysanne","Mabel","Mabelle","Mable","Mac","Macey","Maci","Macie","Mack","Mackenzie","Macy","Madaline","Madalyn","Maddison","Madeline","Madelyn","Madelynn","Madge","Madie","Madilyn","Madisen","Madison","Madisyn","Madonna","Madyson","Mae","Maegan","Maeve","Mafalda","Magali","Magdalen","Magdalena","Maggie","Magnolia","Magnus","Maia","Maida","Maiya","Major","Makayla","Makenna","Makenzie","Malachi","Malcolm","Malika","Malinda","Mallie","Mallory","Malvina","Mandy","Manley","Manuel","Manuela","Mara","Marc","Marcel","Marcelina","Marcelino","Marcella","Marcelle","Marcellus","Marcelo","Marcia","Marco","Marcos","Marcus","Margaret","Margarete","Margarett","Margaretta","Margarette","Margarita","Marge","Margie","Margot","Margret","Marguerite","Maria","Mariah","Mariam","Marian","Mariana","Mariane","Marianna","Marianne","Mariano","Maribel","Marie","Mariela","Marielle","Marietta","Marilie","Marilou","Marilyne","Marina","Mario","Marion","Marisa","Marisol","Maritza","Marjolaine","Marjorie","Marjory","Mark","Markus","Marlee","Marlen","Marlene","Marley","Marlin","Marlon","Marques","Marquis","Marquise","Marshall","Marta","Martin","Martina","Martine","Marty","Marvin","Mary","Maryam","Maryjane","Maryse","Mason","Mateo","Mathew","Mathias","Mathilde","Matilda","Matilde","Matt","Matteo","Mattie","Maud","Maude","Maudie","Maureen","Maurice","Mauricio","Maurine","Maverick","Mavis","Max","Maxie","Maxime","Maximilian","Maximillia","Maximillian","Maximo","Maximus","Maxine","Maxwell","May","Maya","Maybell","Maybelle","Maye","Maymie","Maynard","Mayra","Mazie","Mckayla","Mckenna","Mckenzie","Meagan","Meaghan","Meda","Megane","Meggie","Meghan","Mekhi","Melany","Melba","Melisa","Melissa","Mellie","Melody","Melvin","Melvina","Melyna","Melyssa","Mercedes","Meredith","Merl","Merle","Merlin","Merritt","Mertie","Mervin","Meta","Mia","Micaela","Micah","Michael","Michaela","Michale","Micheal","Michel","Michele","Michelle","Miguel","Mikayla","Mike","Mikel","Milan","Miles","Milford","Miller","Millie","Milo","Milton","Mina","Minerva","Minnie","Miracle","Mireille","Mireya","Misael","Missouri","Misty","Mitchel","Mitchell","Mittie","Modesta","Modesto","Mohamed","Mohammad","Mohammed","Moises","Mollie","Molly","Mona","Monica","Monique","Monroe","Monserrat","Monserrate","Montana","Monte","Monty","Morgan","Moriah","Morris","Mortimer","Morton","Mose","Moses","Moshe","Mossie","Mozell","Mozelle","Muhammad","Muriel","Murl","Murphy","Murray","Mustafa","Mya","Myah","Mylene","Myles","Myra","Myriam","Myrl","Myrna","Myron","Myrtice","Myrtie","Myrtis","Myrtle","Nadia","Nakia","Name","Nannie","Naomi","Naomie","Napoleon","Narciso","Nash","Nasir","Nat","Natalia","Natalie","Natasha","Nathan","Nathanael","Nathanial","Nathaniel","Nathen","Nayeli","Neal","Ned","Nedra","Neha","Neil","Nelda","Nella","Nelle","Nellie","Nels","Nelson","Neoma","Nestor","Nettie","Neva","Newell","Newton","Nia","Nicholas","Nicholaus","Nichole","Nick","Nicklaus","Nickolas","Nico","Nicola","Nicolas","Nicole","Nicolette","Nigel","Nikita","Nikki","Nikko","Niko","Nikolas","Nils","Nina","Noah","Noble","Noe","Noel","Noelia","Noemi","Noemie","Noemy","Nola","Nolan","Nona","Nora","Norbert","Norberto","Norene","Norma","Norris","Norval","Norwood","Nova","Novella","Nya","Nyah","Nyasia","Obie","Oceane","Ocie","Octavia","Oda","Odell","Odessa","Odie","Ofelia","Okey","Ola","Olaf","Ole","Olen","Oleta","Olga","Olin","Oliver","Ollie","Oma","Omari","Omer","Ona","Onie","Opal","Ophelia","Ora","Oral","Oran","Oren","Orie","Orin","Orion","Orland","Orlando","Orlo","Orpha","Orrin","Orval","Orville","Osbaldo","Osborne","Oscar","Osvaldo","Oswald","Oswaldo","Otha","Otho","Otilia","Otis","Ottilie","Ottis","Otto","Ova","Owen","Ozella","Pablo","Paige","Palma","Pamela","Pansy","Paolo","Paris","Parker","Pascale","Pasquale","Pat","Patience","Patricia","Patrick","Patsy","Pattie","Paul","Paula","Pauline","Paxton","Payton","Pearl","Pearlie","Pearline","Pedro","Peggie","Penelope","Percival","Percy","Perry","Pete","Peter","Petra","Peyton","Philip","Phoebe","Phyllis","Pierce","Pierre","Pietro","Pink","Pinkie","Piper","Polly","Porter","Precious","Presley","Preston","Price","Prince","Princess","Priscilla","Providenci","Prudence","Queen","Queenie","Quentin","Quincy","Quinn","Quinten","Quinton","Rachael","Rachel","Rachelle","Rae","Raegan","Rafael","Rafaela","Raheem","Rahsaan","Rahul","Raina","Raleigh","Ralph","Ramiro","Ramon","Ramona","Randal","Randall","Randi","Randy","Ransom","Raoul","Raphael","Raphaelle","Raquel","Rashad","Rashawn","Rasheed","Raul","Raven","Ray","Raymond","Raymundo","Reagan","Reanna","Reba","Rebeca","Rebecca","Rebeka","Rebekah","Reece","Reed","Reese","Regan","Reggie","Reginald","Reid","Reilly","Reina","Reinhold","Remington","Rene","Renee","Ressie","Reta","Retha","Retta","Reuben","Reva","Rex","Rey","Reyes","Reymundo","Reyna","Reynold","Rhea","Rhett","Rhianna","Rhiannon","Rhoda","Ricardo","Richard","Richie","Richmond","Rick","Rickey","Rickie","Ricky","Rico","Rigoberto","Riley","Rita","River","Robb","Robbie","Robert","Roberta","Roberto","Robin","Robyn","Rocio","Rocky","Rod","Roderick","Rodger","Rodolfo","Rodrick","Rodrigo","Roel","Rogelio","Roger","Rogers","Rolando","Rollin","Roma","Romaine","Roman","Ron","Ronaldo","Ronny","Roosevelt","Rory","Rosa","Rosalee","Rosalia","Rosalind","Rosalinda","Rosalyn","Rosamond","Rosanna","Rosario","Roscoe","Rose","Rosella","Roselyn","Rosemarie","Rosemary","Rosendo","Rosetta","Rosie","Rosina","Roslyn","Ross","Rossie","Rowan","Rowena","Rowland","Roxane","Roxanne","Roy","Royal","Royce","Rozella","Ruben","Rubie","Ruby","Rubye","Rudolph","Rudy","Rupert","Russ","Russel","Russell","Rusty","Ruth","Ruthe","Ruthie","Ryan","Ryann","Ryder","Rylan","Rylee","Ryleigh","Ryley","Sabina","Sabrina","Sabryna","Sadie","Sadye","Sage","Saige","Sallie","Sally","Salma","Salvador","Salvatore","Sam","Samanta","Samantha","Samara","Samir","Sammie","Sammy","Samson","Sandra","Sandrine","Sandy","Sanford","Santa","Santiago","Santina","Santino","Santos","Sarah","Sarai","Sarina","Sasha","Saul","Savanah","Savanna","Savannah","Savion","Scarlett","Schuyler","Scot","Scottie","Scotty","Seamus","Sean","Sebastian","Sedrick","Selena","Selina","Selmer","Serena","Serenity","Seth","Shad","Shaina","Shakira","Shana","Shane","Shanel","Shanelle","Shania","Shanie","Shaniya","Shanna","Shannon","Shanny","Shanon","Shany","Sharon","Shaun","Shawn","Shawna","Shaylee","Shayna","Shayne","Shea","Sheila","Sheldon","Shemar","Sheridan","Sherman","Sherwood","Shirley","Shyann","Shyanne","Sibyl","Sid","Sidney","Sienna","Sierra","Sigmund","Sigrid","Sigurd","Silas","Sim","Simeon","Simone","Sincere","Sister","Skye","Skyla","Skylar","Sofia","Soledad","Solon","Sonia","Sonny","Sonya","Sophia","Sophie","Spencer","Stacey","Stacy","Stan","Stanford","Stanley","Stanton","Stefan","Stefanie","Stella","Stephan","Stephania","Stephanie","Stephany","Stephen","Stephon","Sterling","Steve","Stevie","Stewart","Stone","Stuart","Summer","Sunny","Susan","Susana","Susanna","Susie","Suzanne","Sven","Syble","Sydnee","Sydney","Sydni","Sydnie","Sylvan","Sylvester","Sylvia","Tabitha","Tad","Talia","Talon","Tamara","Tamia","Tania","Tanner","Tanya","Tara","Taryn","Tate","Tatum","Tatyana","Taurean","Tavares","Taya","Taylor","Teagan","Ted","Telly","Terence","Teresa","Terrance","Terrell","Terrence","Terrill","Terry","Tess","Tessie","Tevin","Thad","Thaddeus","Thalia","Thea","Thelma","Theo","Theodora","Theodore","Theresa","Therese","Theresia","Theron","Thomas","Thora","Thurman","Tia","Tiana","Tianna","Tiara","Tierra","Tiffany","Tillman","Timmothy","Timmy","Timothy","Tina","Tito","Titus","Tobin","Toby","Tod","Tom","Tomas","Tomasa","Tommie","Toney","Toni","Tony","Torey","Torrance","Torrey","Toy","Trace","Tracey","Tracy","Travis","Travon","Tre","Tremaine","Tremayne","Trent","Trenton","Tressa","Tressie","Treva","Trever","Trevion","Trevor","Trey","Trinity","Trisha","Tristian","Tristin","Triston","Troy","Trudie","Trycia","Trystan","Turner","Twila","Tyler","Tyra","Tyree","Tyreek","Tyrel","Tyrell","Tyrese","Tyrique","Tyshawn","Tyson","Ubaldo","Ulices","Ulises","Una","Unique","Urban","Uriah","Uriel","Ursula","Vada","Valentin","Valentina","Valentine","Valerie","Vallie","Van","Vance","Vanessa","Vaughn","Veda","Velda","Vella","Velma","Velva","Vena","Verda","Verdie","Vergie","Verla","Verlie","Vern","Verna","Verner","Vernice","Vernie","Vernon","Verona","Veronica","Vesta","Vicenta","Vicente","Vickie","Vicky","Victor","Victoria","Vida","Vidal","Vilma","Vince","Vincent","Vincenza","Vincenzo","Vinnie","Viola","Violet","Violette","Virgie","Virgil","Virginia","Virginie","Vita","Vito","Viva","Vivian","Viviane","Vivianne","Vivien","Vivienne","Vladimir","Wade","Waino","Waldo","Walker","Wallace","Walter","Walton","Wanda","Ward","Warren","Watson","Wava","Waylon","Wayne","Webster","Weldon","Wellington","Wendell","Wendy","Werner","Westley","Weston","Whitney","Wilber","Wilbert","Wilburn","Wiley","Wilford","Wilfred","Wilfredo","Wilfrid","Wilhelm","Wilhelmine","Will","Willa","Willard","William","Willie","Willis","Willow","Willy","Wilma","Wilmer","Wilson","Wilton","Winfield","Winifred","Winnifred","Winona","Winston","Woodrow","Wyatt","Wyman","Xander","Xavier","Xzavier","Yadira","Yasmeen","Yasmin","Yasmine","Yazmin","Yesenia","Yessenia","Yolanda","Yoshiko","Yvette","Yvonne","Zachariah","Zachary","Zachery","Zack","Zackary","Zackery","Zakary","Zander","Zane","Zaria","Zechariah","Zelda","Zella","Zelma","Zena","Zetta","Zion","Zita","Zoe","Zoey","Zoie","Zoila","Zola","Zora","Zula"],IXt=["Agender","Androgyne","Androgynous","Bigender","Cis female","Cis male","Cis man","Cis woman","Cis","Cisgender female","Cisgender male","Cisgender man","Cisgender woman","Cisgender","Demi-boy","Demi-girl","Demi-man","Demi-woman","Demiflux","Demigender","F2M","FTM","Female to male trans man","Female to male transgender man","Female to male transsexual man","Female to male","Gender fluid","Gender neutral","Gender nonconforming","Gender questioning","Gender variant","Genderflux","Genderqueer","Hermaphrodite","Intersex man","Intersex person","Intersex woman","Intersex","M2F","MTF","Male to female trans woman","Male to female transgender woman","Male to female transsexual woman","Male to female","Man","Multigender","Neither","Neutrois","Non-binary","Omnigender","Other","Pangender","Polygender","T* man","T* woman","Trans female","Trans male","Trans man","Trans person","Trans woman","Trans","Transexual female","Transexual male","Transexual man","Transexual person","Transexual woman","Transexual","Transgender female","Transgender person","Transmasculine","Trigender","Two* person","Two-spirit person","Two-spirit","Woman","Xenogender"],wXt=["{{person.jobDescriptor}} {{person.jobArea}} {{person.jobType}}"],SXt=["Abbott","Abernathy","Abshire","Adams","Altenwerth","Anderson","Ankunding","Armstrong","Auer","Aufderhar","Bahringer","Bailey","Balistreri","Barrows","Bartell","Bartoletti","Barton","Bashirian","Batz","Bauch","Baumbach","Bayer","Beahan","Beatty","Bechtelar","Becker","Bednar","Beer","Beier","Berge","Bergnaum","Bergstrom","Bernhard","Bernier","Bins","Blanda","Blick","Block","Bode","Boehm","Bogan","Bogisich","Borer","Bosco","Botsford","Boyer","Boyle","Bradtke","Brakus","Braun","Breitenberg","Brekke","Brown","Bruen","Buckridge","Carroll","Carter","Cartwright","Casper","Cassin","Champlin","Christiansen","Cole","Collier","Collins","Conn","Connelly","Conroy","Considine","Corkery","Cormier","Corwin","Cremin","Crist","Crona","Cronin","Crooks","Cruickshank","Cummerata","Cummings","Dach","D'Amore","Daniel","Dare","Daugherty","Davis","Deckow","Denesik","Dibbert","Dickens","Dicki","Dickinson","Dietrich","Donnelly","Dooley","Douglas","Doyle","DuBuque","Durgan","Ebert","Effertz","Emard","Emmerich","Erdman","Ernser","Fadel","Fahey","Farrell","Fay","Feeney","Feest","Feil","Ferry","Fisher","Flatley","Frami","Franecki","Franey","Friesen","Fritsch","Funk","Gerhold","Gerlach","Gibson","Gislason","Gleason","Gleichner","Glover","Goldner","Goodwin","Gorczany","Gottlieb","Goyette","Grady","Graham","Grant","Green","Greenfelder","Greenholt","Grimes","Gulgowski","Gusikowski","Gutkowski","Gutmann","Haag","Hackett","Hagenes","Hahn","Haley","Halvorson","Hamill","Hammes","Hand","Hane","Hansen","Harber","Harris","Hartmann","Harvey","Hauck","Hayes","Heaney","Heathcote","Hegmann","Heidenreich","Heller","Herman","Hermann","Hermiston","Herzog","Hessel","Hettinger","Hickle","Hilll","Hills","Hilpert","Hintz","Hirthe","Hodkiewicz","Hoeger","Homenick","Hoppe","Howe","Howell","Hudson","Huel","Huels","Hyatt","Jacobi","Jacobs","Jacobson","Jakubowski","Jaskolski","Jast","Jenkins","Jerde","Johns","Johnson","Johnston","Jones","Kassulke","Kautzer","Keebler","Keeling","Kemmer","Kerluke","Kertzmann","Kessler","Kiehn","Kihn","Kilback","King","Kirlin","Klein","Kling","Klocko","Koch","Koelpin","Koepp","Kohler","Konopelski","Koss","Kovacek","Kozey","Krajcik","Kreiger","Kris","Kshlerin","Kub","Kuhic","Kuhlman","Kuhn","Kulas","Kunde","Kunze","Kuphal","Kutch","Kuvalis","Labadie","Lakin","Lang","Langosh","Langworth","Larkin","Larson","Leannon","Lebsack","Ledner","Leffler","Legros","Lehner","Lemke","Lesch","Leuschke","Lind","Lindgren","Littel","Little","Lockman","Lowe","Lubowitz","Lueilwitz","Luettgen","Lynch","Macejkovic","MacGyver","Maggio","Mann","Mante","Marks","Marquardt","Marvin","Mayer","Mayert","McClure","McCullough","McDermott","McGlynn","McKenzie","McLaughlin","Medhurst","Mertz","Metz","Miller","Mills","Mitchell","Moen","Mohr","Monahan","Moore","Morar","Morissette","Mosciski","Mraz","Mueller","Muller","Murazik","Murphy","Murray","Nader","Nicolas","Nienow","Nikolaus","Nitzsche","Nolan","Oberbrunner","O'Connell","O'Conner","O'Hara","O'Keefe","O'Kon","Okuneva","Olson","Ondricka","O'Reilly","Orn","Ortiz","Osinski","Pacocha","Padberg","Pagac","Parisian","Parker","Paucek","Pfannerstill","Pfeffer","Pollich","Pouros","Powlowski","Predovic","Price","Prohaska","Prosacco","Purdy","Quigley","Quitzon","Rath","Ratke","Rau","Raynor","Reichel","Reichert","Reilly","Reinger","Rempel","Renner","Reynolds","Rice","Rippin","Ritchie","Robel","Roberts","Rodriguez","Rogahn","Rohan","Rolfson","Romaguera","Roob","Rosenbaum","Rowe","Ruecker","Runolfsdottir","Runolfsson","Runte","Russel","Rutherford","Ryan","Sanford","Satterfield","Sauer","Sawayn","Schaden","Schaefer","Schamberger","Schiller","Schimmel","Schinner","Schmeler","Schmidt","Schmitt","Schneider","Schoen","Schowalter","Schroeder","Schulist","Schultz","Schumm","Schuppe","Schuster","Senger","Shanahan","Shields","Simonis","Sipes","Skiles","Smith","Smitham","Spencer","Spinka","Sporer","Stamm","Stanton","Stark","Stehr","Steuber","Stiedemann","Stokes","Stoltenberg","Stracke","Streich","Stroman","Strosin","Swaniawski","Swift","Terry","Thiel","Thompson","Tillman","Torp","Torphy","Towne","Toy","Trantow","Tremblay","Treutel","Tromp","Turcotte","Turner","Ullrich","Upton","Vandervort","Veum","Volkman","Von","VonRueden","Waelchi","Walker","Walsh","Walter","Ward","Waters","Watsica","Weber","Wehner","Weimann","Weissnat","Welch","West","White","Wiegand","Wilderman","Wilkinson","Will","Williamson","Willms","Windler","Wintheiser","Wisoky","Wisozk","Witting","Wiza","Wolf","Wolff","Wuckert","Wunsch","Wyman","Yost","Yundt","Zboncak","Zemlak","Ziemann","Zieme","Zulauf"],xXt=[{value:"{{person.last_name}}",weight:95},{value:"{{person.last_name}}-{{person.last_name}}",weight:5}],LXt=["James","John","Robert","Michael","William","David","Richard","Charles","Joseph","Thomas","Christopher","Daniel","Paul","Mark","Donald","George","Kenneth","Steven","Edward","Brian","Ronald","Anthony","Kevin","Jason","Matthew","Gary","Timothy","Jose","Larry","Jeffrey","Frank","Scott","Eric","Stephen","Andrew","Raymond","Gregory","Joshua","Jerry","Dennis","Walter","Patrick","Peter","Harold","Douglas","Henry","Carl","Arthur","Ryan","Roger","Joe","Juan","Jack","Albert","Jonathan","Justin","Terry","Gerald","Keith","Samuel","Willie","Ralph","Lawrence","Nicholas","Roy","Benjamin","Bruce","Brandon","Adam","Harry","Fred","Wayne","Billy","Steve","Louis","Jeremy","Aaron","Randy","Howard","Eugene","Carlos","Russell","Bobby","Victor","Martin","Ernest","Phillip","Todd","Jesse","Craig","Alan","Shawn","Clarence","Sean","Philip","Chris","Johnny","Earl","Jimmy","Antonio","Danny","Bryan","Tony","Luis","Mike","Stanley","Leonard","Nathan","Dale","Manuel","Rodney","Curtis","Norman","Allen","Marvin","Vincent","Glenn","Jeffery","Travis","Jeff","Chad","Jacob","Lee","Melvin","Alfred","Kyle","Francis","Bradley","Jesus","Herbert","Frederick","Ray","Joel","Edwin","Don","Eddie","Ricky","Troy","Randall","Barry","Alexander","Bernard","Mario","Leroy","Francisco","Marcus","Micheal","Theodore","Clifford","Miguel","Oscar","Jay","Jim","Tom","Calvin","Alex","Jon","Ronnie","Bill","Lloyd","Tommy","Leon","Derek","Warren","Darrell","Jerome","Floyd","Leo","Alvin","Tim","Wesley","Gordon","Dean","Greg","Jorge","Dustin","Pedro","Derrick","Dan","Lewis","Zachary","Corey","Herman","Maurice","Vernon","Roberto","Clyde","Glen","Hector","Shane","Ricardo","Sam","Rick","Lester","Brent","Ramon","Charlie","Tyler","Gilbert","Gene","Marc","Reginald","Ruben","Brett","Angel","Nathaniel","Rafael","Leslie","Edgar","Milton","Raul","Ben","Chester","Cecil","Duane","Franklin","Andre","Elmer","Brad","Gabriel","Ron","Mitchell","Roland","Arnold","Harvey","Jared","Adrian","Karl","Cory","Claude","Erik","Darryl","Jamie","Neil","Jessie","Christian","Javier","Fernando","Clinton","Ted","Mathew","Tyrone","Darren","Lonnie","Lance","Cody","Julio","Kelly","Kurt","Allan","Nelson","Guy","Clayton","Hugh","Max","Dwayne","Dwight","Armando","Felix","Jimmie","Everett","Jordan","Ian","Wallace","Ken","Bob","Jaime","Casey","Alfredo","Alberto","Dave","Ivan","Johnnie","Sidney","Byron","Julian","Isaac","Morris","Clifton","Willard","Daryl","Ross","Virgil","Andy","Marshall","Salvador","Perry","Kirk","Sergio","Marion","Tracy","Seth","Kent","Terrance","Rene","Eduardo","Terrence","Enrique","Freddie","Wade","Austin","Stuart","Fredrick","Arturo","Alejandro","Jackie","Joey","Nick","Luther","Wendell","Jeremiah","Evan","Julius","Dana","Donnie","Otis","Shannon","Trevor","Oliver","Luke","Homer","Gerard","Doug","Kenny","Hubert","Angelo","Shaun","Lyle","Matt","Lynn","Alfonso","Orlando","Rex","Carlton","Ernesto","Cameron","Neal","Pablo","Lorenzo","Omar","Wilbur","Blake","Grant","Horace","Roderick","Kerry","Abraham","Willis","Rickey","Jean","Ira","Andres","Cesar","Johnathan","Malcolm","Rudolph","Damon","Kelvin","Rudy","Preston","Alton","Archie","Marco","Wm","Pete","Randolph","Garry","Geoffrey","Jonathon","Felipe","Bennie","Gerardo","Ed","Dominic","Robin","Loren","Delbert","Colin","Guillermo","Earnest","Lucas","Benny","Noel","Spencer","Rodolfo","Myron","Edmund","Garrett","Salvatore","Cedric","Lowell","Gregg","Sherman","Wilson","Devin","Sylvester","Kim","Roosevelt","Israel","Jermaine","Forrest","Wilbert","Leland","Simon","Guadalupe","Clark","Irving","Carroll","Bryant","Owen","Rufus","Woodrow","Sammy","Kristopher","Mack","Levi","Marcos","Gustavo","Jake","Lionel","Marty","Taylor","Ellis","Dallas","Gilberto","Clint","Nicolas","Laurence","Ismael","Orville","Drew","Jody","Ervin","Dewey","Al","Wilfred","Josh","Hugo","Ignacio","Caleb","Tomas","Sheldon","Erick","Frankie","Stewart","Doyle","Darrel","Rogelio","Terence","Santiago","Alonzo","Elias","Bert","Elbert","Ramiro","Conrad","Pat","Noah","Grady","Phil","Cornelius","Lamar","Rolando","Clay","Percy","Dexter","Bradford","Merle","Darin","Amos","Terrell","Moses","Irvin","Saul","Roman","Darnell","Randal","Tommie","Timmy","Darrin","Winston","Brendan","Toby","Van","Abel","Dominick","Boyd","Courtney","Jan","Emilio","Elijah","Cary","Domingo","Santos","Aubrey","Emmett","Marlon","Emanuel","Jerald","Edmond"],FXt=["Ace","Aiden","Alexander","Ander","Anthony","Asher","August","Aziel","Bear","Beckham","Benjamin","Buddy","Calvin","Carter","Charles","Christopher","Clyde","Cooper","Daniel","David","Dior","Dylan","Elijah","Ellis","Emerson","Ethan","Ezra","Fletcher","Flynn","Gabriel","Grayson","Gus","Hank","Harrison","Hendrix","Henry","Houston","Hudson","Hugh","Isaac","Jack","Jackson","Jacob","Jakobe","James","Jaxon","Jaxtyn","Jayden","John","Joseph","Josiah","Jude","Julian","Karsyn","Kenji","Kobe","Kylo","Lennon","Leo","Levi","Liam","Lincoln","Logan","Louis","Lucas","Lucky","Luke","Mason","Mateo","Matthew","Maverick","Michael","Monroe","Nixon","Ocean","Oliver","Otis","Otto","Owen","Ozzy","Parker","Rocky","Samuel","Sebastian","Sonny","Teddy","Theo","Theodore","Thomas","Truett","Walter","Warren","Watson","William","Wison","Wyatt","Ziggy","Zyair"],y_e=["Mr.","Dr."],_Xt=["Addison","Alex","Anderson","Angel","Arden","August","Austin","Avery","Bailey","Billie","Blake","Bowie","Brooklyn","Cameron","Charlie","Corey","Dakota","Drew","Elliott","Ellis","Emerson","Finley","Gray","Greer","Harper","Hayden","Jaden","James","Jamie","Jordan","Jules","Kai","Kendall","Kennedy","Kyle","Leslie","Logan","London","Marlowe","Micah","Nico","Noah","North","Parker","Phoenix","Quinn","Reagan","Reese","Reign","Riley","River","Robin","Rory","Rowan","Ryan","Sage","Sasha","Sawyer","Shawn","Shiloh","Skyler","Taylor"],DXt=[{value:"{{person.firstName}} {{person.lastName}}",weight:49},{value:"{{person.prefix}} {{person.firstName}} {{person.lastName}}",weight:7},{value:"{{person.firstName}} {{person.lastName}} {{person.suffix}}",weight:7},{value:"{{person.prefix}} {{person.firstName}} {{person.lastName}} {{person.suffix}}",weight:1}];function AXt(...n){return[...new Set(n.flat())].sort()}var NXt=AXt(v_e,y_e),kXt=["female","male"],MXt=["Jr.","Sr.","I","II","III","IV","V","MD","DDS","PhD","DVM"],ZXt={descriptor:["Lead","Senior","Direct","Corporate","Dynamic","Future","Product","National","Regional","District","Central","Global","Customer","Investor","International","Legacy","Forward","Internal","Human","Chief","Principal"],level:["Solutions","Program","Brand","Security","Research","Marketing","Directives","Implementation","Integration","Functionality","Response","Paradigm","Tactics","Identity","Markets","Group","Division","Applications","Optimization","Operations","Infrastructure","Intranet","Communications","Web","Branding","Quality","Assurance","Mobility","Accounts","Data","Creative","Configuration","Accountability","Interactions","Factors","Usability","Metrics"],job:["Supervisor","Associate","Executive","Liaison","Officer","Manager","Engineer","Specialist","Director","Coordinator","Administrator","Architect","Analyst","Designer","Planner","Orchestrator","Technician","Developer","Producer","Consultant","Assistant","Facilitator","Agent","Representative","Strategist"]},TXt=["Aquarius","Pisces","Aries","Taurus","Gemini","Cancer","Leo","Virgo","Libra","Scorpio","Sagittarius","Capricorn"],EXt={bio_part:fXt,bio_pattern:pXt,bio_supporter:bXt,female_first_name:CXt,female_middle_name:vXt,female_prefix:v_e,first_name:yXt,gender:IXt,job_title_pattern:wXt,last_name:SXt,last_name_pattern:xXt,male_first_name:LXt,male_middle_name:FXt,male_prefix:y_e,middle_name:_Xt,name:DXt,prefix:NXt,sex:kXt,suffix:MXt,title:ZXt,western_zodiac_sign:TXt},WXt=EXt,RXt=["!##-!##-####","(!##) !##-####","1-!##-!##-####","!##.!##.####","!##-!##-#### x###","(!##) !##-#### x###","1-!##-!##-#### x###","!##.!##.#### x###","!##-!##-#### x####","(!##) !##-#### x####","1-!##-!##-#### x####","!##.!##.#### x####","!##-!##-#### x#####","(!##) !##-#### x#####","1-!##-!##-#### x#####","!##.!##.#### x#####"],GXt={formats:RXt},VXt=GXt,XXt=Object.freeze([{symbol:"H",name:"Hydrogen",atomicNumber:1},{symbol:"He",name:"Helium",atomicNumber:2},{symbol:"Li",name:"Lithium",atomicNumber:3},{symbol:"Be",name:"Beryllium",atomicNumber:4},{symbol:"B",name:"Boron",atomicNumber:5},{symbol:"C",name:"Carbon",atomicNumber:6},{symbol:"N",name:"Nitrogen",atomicNumber:7},{symbol:"O",name:"Oxygen",atomicNumber:8},{symbol:"F",name:"Fluorine",atomicNumber:9},{symbol:"Ne",name:"Neon",atomicNumber:10},{symbol:"Na",name:"Sodium",atomicNumber:11},{symbol:"Mg",name:"Magnesium",atomicNumber:12},{symbol:"Al",name:"Aluminium",atomicNumber:13},{symbol:"Si",name:"Silicon",atomicNumber:14},{symbol:"P",name:"Phosphorus",atomicNumber:15},{symbol:"S",name:"Sulfur",atomicNumber:16},{symbol:"Cl",name:"Chlorine",atomicNumber:17},{symbol:"Ar",name:"Argon",atomicNumber:18},{symbol:"K",name:"Potassium",atomicNumber:19},{symbol:"Ca",name:"Calcium",atomicNumber:20},{symbol:"Sc",name:"Scandium",atomicNumber:21},{symbol:"Ti",name:"Titanium",atomicNumber:22},{symbol:"V",name:"Vanadium",atomicNumber:23},{symbol:"Cr",name:"Chromium",atomicNumber:24},{symbol:"Mn",name:"Manganese",atomicNumber:25},{symbol:"Fe",name:"Iron",atomicNumber:26},{symbol:"Co",name:"Cobalt",atomicNumber:27},{symbol:"Ni",name:"Nickel",atomicNumber:28},{symbol:"Cu",name:"Copper",atomicNumber:29},{symbol:"Zn",name:"Zinc",atomicNumber:30},{symbol:"Ga",name:"Gallium",atomicNumber:31},{symbol:"Ge",name:"Germanium",atomicNumber:32},{symbol:"As",name:"Arsenic",atomicNumber:33},{symbol:"Se",name:"Selenium",atomicNumber:34},{symbol:"Br",name:"Bromine",atomicNumber:35},{symbol:"Kr",name:"Krypton",atomicNumber:36},{symbol:"Rb",name:"Rubidium",atomicNumber:37},{symbol:"Sr",name:"Strontium",atomicNumber:38},{symbol:"Y",name:"Yttrium",atomicNumber:39},{symbol:"Zr",name:"Zirconium",atomicNumber:40},{symbol:"Nb",name:"Niobium",atomicNumber:41},{symbol:"Mo",name:"Molybdenum",atomicNumber:42},{symbol:"Tc",name:"Technetium",atomicNumber:43},{symbol:"Ru",name:"Ruthenium",atomicNumber:44},{symbol:"Rh",name:"Rhodium",atomicNumber:45},{symbol:"Pd",name:"Palladium",atomicNumber:46},{symbol:"Ag",name:"Silver",atomicNumber:47},{symbol:"Cd",name:"Cadmium",atomicNumber:48},{symbol:"In",name:"Indium",atomicNumber:49},{symbol:"Sn",name:"Tin",atomicNumber:50},{symbol:"Sb",name:"Antimony",atomicNumber:51},{symbol:"Te",name:"Tellurium",atomicNumber:52},{symbol:"I",name:"Iodine",atomicNumber:53},{symbol:"Xe",name:"Xenon",atomicNumber:54},{symbol:"Cs",name:"Caesium",atomicNumber:55},{symbol:"Ba",name:"Barium",atomicNumber:56},{symbol:"La",name:"Lanthanum",atomicNumber:57},{symbol:"Ce",name:"Cerium",atomicNumber:58},{symbol:"Pr",name:"Praseodymium",atomicNumber:59},{symbol:"Nd",name:"Neodymium",atomicNumber:60},{symbol:"Pm",name:"Promethium",atomicNumber:61},{symbol:"Sm",name:"Samarium",atomicNumber:62},{symbol:"Eu",name:"Europium",atomicNumber:63},{symbol:"Gd",name:"Gadolinium",atomicNumber:64},{symbol:"Tb",name:"Terbium",atomicNumber:65},{symbol:"Dy",name:"Dysprosium",atomicNumber:66},{symbol:"Ho",name:"Holmium",atomicNumber:67},{symbol:"Er",name:"Erbium",atomicNumber:68},{symbol:"Tm",name:"Thulium",atomicNumber:69},{symbol:"Yb",name:"Ytterbium",atomicNumber:70},{symbol:"Lu",name:"Lutetium",atomicNumber:71},{symbol:"Hf",name:"Hafnium",atomicNumber:72},{symbol:"Ta",name:"Tantalum",atomicNumber:73},{symbol:"W",name:"Tungsten",atomicNumber:74},{symbol:"Re",name:"Rhenium",atomicNumber:75},{symbol:"Os",name:"Osmium",atomicNumber:76},{symbol:"Ir",name:"Iridium",atomicNumber:77},{symbol:"Pt",name:"Platinum",atomicNumber:78},{symbol:"Au",name:"Gold",atomicNumber:79},{symbol:"Hg",name:"Mercury",atomicNumber:80},{symbol:"Tl",name:"Thallium",atomicNumber:81},{symbol:"Pb",name:"Lead",atomicNumber:82},{symbol:"Bi",name:"Bismuth",atomicNumber:83},{symbol:"Po",name:"Polonium",atomicNumber:84},{symbol:"At",name:"Astatine",atomicNumber:85},{symbol:"Rn",name:"Radon",atomicNumber:86},{symbol:"Fr",name:"Francium",atomicNumber:87},{symbol:"Ra",name:"Radium",atomicNumber:88},{symbol:"Ac",name:"Actinium",atomicNumber:89},{symbol:"Th",name:"Thorium",atomicNumber:90},{symbol:"Pa",name:"Protactinium",atomicNumber:91},{symbol:"U",name:"Uranium",atomicNumber:92},{symbol:"Np",name:"Neptunium",atomicNumber:93},{symbol:"Pu",name:"Plutonium",atomicNumber:94},{symbol:"Am",name:"Americium",atomicNumber:95},{symbol:"Cm",name:"Curium",atomicNumber:96},{symbol:"Bk",name:"Berkelium",atomicNumber:97},{symbol:"Cf",name:"Californium",atomicNumber:98},{symbol:"Es",name:"Einsteinium",atomicNumber:99},{symbol:"Fm",name:"Fermium",atomicNumber:100},{symbol:"Md",name:"Mendelevium",atomicNumber:101},{symbol:"No",name:"Nobelium",atomicNumber:102},{symbol:"Lr",name:"Lawrencium",atomicNumber:103},{symbol:"Rf",name:"Rutherfordium",atomicNumber:104},{symbol:"Db",name:"Dubnium",atomicNumber:105},{symbol:"Sg",name:"Seaborgium",atomicNumber:106},{symbol:"Bh",name:"Bohrium",atomicNumber:107},{symbol:"Hs",name:"Hassium",atomicNumber:108},{symbol:"Mt",name:"Meitnerium",atomicNumber:109},{symbol:"Ds",name:"Darmstadtium",atomicNumber:110},{symbol:"Rg",name:"Roentgenium",atomicNumber:111},{symbol:"Cn",name:"Copernicium",atomicNumber:112},{symbol:"Nh",name:"Nihonium",atomicNumber:113},{symbol:"Fl",name:"Flerovium",atomicNumber:114},{symbol:"Mc",name:"Moscovium",atomicNumber:115},{symbol:"Lv",name:"Livermorium",atomicNumber:116},{symbol:"Ts",name:"Tennessine",atomicNumber:117},{symbol:"Og",name:"Oganesson",atomicNumber:118}]),PXt=Object.freeze([{name:"meter",symbol:"m"},{name:"second",symbol:"s"},{name:"mole",symbol:"mol"},{name:"ampere",symbol:"A"},{name:"kelvin",symbol:"K"},{name:"candela",symbol:"cd"},{name:"kilogram",symbol:"kg"},{name:"radian",symbol:"rad"},{name:"hertz",symbol:"Hz"},{name:"newton",symbol:"N"},{name:"pascal",symbol:"Pa"},{name:"joule",symbol:"J"},{name:"watt",symbol:"W"},{name:"coulomb",symbol:"C"},{name:"volt",symbol:"V"},{name:"ohm",symbol:"Ω"},{name:"tesla",symbol:"T"},{name:"degree Celsius",symbol:"°C"},{name:"lumen",symbol:"lm"},{name:"becquerel",symbol:"Bq"},{name:"gray",symbol:"Gy"},{name:"sievert",symbol:"Sv"},{name:"steradian",symbol:"sr"},{name:"farad",symbol:"F"},{name:"siemens",symbol:"S"},{name:"weber",symbol:"Wb"},{name:"henry",symbol:"H"},{name:"lux",symbol:"lx"},{name:"katal",symbol:"kat"}]),OXt={chemicalElement:XXt,unit:PXt},BXt=OXt,zXt=["ants","bats","bears","bees","birds","buffalo","cats","chickens","cattle","dogs","dolphins","ducks","elephants","fishes","foxes","frogs","geese","goats","horses","kangaroos","lions","monkeys","owls","oxen","penguins","people","pigs","rabbits","sheep","tigers","whales","wolves","zebras","banshees","crows","black cats","chimeras","ghosts","conspirators","dragons","dwarves","elves","enchanters","exorcists","sons","foes","giants","gnomes","goblins","gooses","griffins","lycanthropes","nemesis","ogres","oracles","prophets","sorcerors","spiders","spirits","vampires","warlocks","vixens","werewolves","witches","worshipers","zombies","druids"],YXt=["{{location.state}} {{team.creature}}"],HXt={creature:zXt,name:YXt},UXt=HXt,JXt=["Adventure Road Bicycle","BMX Bicycle","City Bicycle","Cruiser Bicycle","Cyclocross Bicycle","Dual-Sport Bicycle","Fitness Bicycle","Flat-Foot Comfort Bicycle","Folding Bicycle","Hybrid Bicycle","Mountain Bicycle","Recumbent Bicycle","Road Bicycle","Tandem Bicycle","Touring Bicycle","Track/Fixed-Gear Bicycle","Triathlon/Time Trial Bicycle","Tricycle"],KXt=["Diesel","Electric","Gasoline","Hybrid"],jXt=["Aston Martin","Audi","Bentley","BMW","Bugatti","Cadillac","Chevrolet","Chrysler","Dodge","Ferrari","Fiat","Ford","Honda","Hyundai","Jaguar","Jeep","Kia","Lamborghini","Land Rover","Maserati","Mazda","Mercedes Benz","Mini","Nissan","Polestar","Porsche","Rolls Royce","Smart","Tesla","Toyota","Volkswagen","Volvo"],QXt=["Fiesta","Focus","Taurus","Mustang","Explorer","Expedition","F-150","Model T","Ranchero","Volt","Cruze","Malibu","Impala","Camaro","Corvette","Colorado","Silverado","El Camino","CTS","XTS","ATS","Escalade","Alpine","Charger","LeBaron","PT Cruiser","Challenger","Durango","Grand Caravan","Wrangler","Grand Cherokee","Roadster","Model S","Model 3","Model X","Model Y","Camry","Prius","Land Cruiser","Accord","Civic","Element","Sentra","Altima","A8","A4","Beetle","Jetta","Golf","911","Spyder","Countach","Mercielago","Aventador","1","2","Fortwo","V90","XC90","CX-9"],$Xt=["Cargo Van","Convertible","Coupe","Crew Cab Pickup","Extended Cab Pickup","Hatchback","Minivan","Passenger Van","SUV","Sedan","Wagon"],qXt={bicycle_type:JXt,fuel:KXt,manufacturer:jXt,model:QXt,type:$Xt},e4t=qXt,t4t=["abandoned","able","absolute","adorable","adventurous","academic","acceptable","acclaimed","accomplished","accurate","aching","acidic","acrobatic","active","actual","adept","admirable","admired","adolescent","adored","advanced","afraid","affectionate","aged","aggravating","aggressive","agile","agitated","agonizing","agreeable","ajar","alarmed","alarming","alert","alienated","alive","all","altruistic","amazing","ambitious","ample","amused","amusing","anchored","ancient","angelic","angry","anguished","animated","annual","another","antique","anxious","any","apprehensive","appropriate","apt","arctic","arid","aromatic","artistic","ashamed","assured","astonishing","athletic","attached","attentive","attractive","austere","authentic","authorized","automatic","avaricious","average","aware","awesome","awful","awkward","babyish","bad","back","baggy","bare","barren","basic","beautiful","belated","beloved","beneficial","better","best","bewitched","big","big-hearted","biodegradable","bite-sized","bitter","black","black-and-white","bland","blank","blaring","bleak","blind","blissful","blond","blue","blushing","bogus","boiling","bold","bony","boring","bossy","both","bouncy","bountiful","bowed","brave","breakable","brief","bright","brilliant","brisk","broken","bronze","brown","bruised","bubbly","bulky","bumpy","buoyant","burdensome","burly","bustling","busy","buttery","buzzing","calculating","calm","candid","canine","capital","carefree","careful","careless","caring","cautious","cavernous","celebrated","charming","cheap","cheerful","cheery","chief","chilly","chubby","circular","classic","clean","clear","clear-cut","clever","close","closed","cloudy","clueless","clumsy","cluttered","coarse","cold","colorful","colorless","colossal","comfortable","common","compassionate","competent","complete","complex","complicated","composed","concerned","concrete","confused","conscious","considerate","constant","content","conventional","cooked","cool","cooperative","coordinated","corny","corrupt","costly","courageous","courteous","crafty","crazy","creamy","creative","creepy","criminal","crisp","critical","crooked","crowded","cruel","crushing","cuddly","cultivated","cultured","cumbersome","curly","curvy","cute","cylindrical","damaged","damp","dangerous","dapper","daring","darling","dark","dazzling","dead","deadly","deafening","dear","dearest","decent","decimal","decisive","deep","defenseless","defensive","defiant","deficient","definite","definitive","delayed","delectable","delicious","delightful","delirious","demanding","dense","dental","dependable","dependent","descriptive","deserted","detailed","determined","devoted","different","difficult","digital","diligent","dim","dimpled","direct","disastrous","discrete","disgusting","disloyal","dismal","distant","downright","dreary","dirty","disguised","dishonest","distinct","distorted","dizzy","doting","double","drab","drafty","dramatic","droopy","dry","dual","dull","dutiful","each","eager","earnest","early","easy","easy-going","ecstatic","edible","educated","elaborate","elastic","elated","elderly","electric","elegant","elementary","elliptical","embarrassed","embellished","eminent","emotional","empty","enchanted","enchanting","energetic","enlightened","enormous","enraged","entire","envious","equal","equatorial","essential","esteemed","ethical","euphoric","even","evergreen","everlasting","every","evil","exalted","excellent","exemplary","exhausted","excitable","excited","exciting","exotic","expensive","experienced","expert","extraneous","extroverted","extra-large","extra-small","fabulous","failing","faint","fair","faithful","fake","false","familiar","famous","fancy","fantastic","far","faraway","far-flung","far-off","fast","fat","fatal","fatherly","favorable","favorite","fearful","fearless","feisty","feline","female","feminine","few","fickle","filthy","fine","finished","firm","first","firsthand","fitting","fixed","flaky","flamboyant","flashy","flat","flawed","flawless","flickering","flimsy","flippant","flowery","fluffy","fluid","flustered","focused","fond","foolhardy","foolish","forceful","forked","formal","forsaken","forthright","fortunate","fragrant","frail","frank","frayed","free","french","fresh","frequent","friendly","frightened","frightening","frigid","frilly","frizzy","frivolous","front","frosty","frozen","frugal","fruitful","full","fumbling","functional","funny","fussy","fuzzy","gargantuan","gaseous","general","generous","gentle","genuine","giant","giddy","gigantic","gifted","giving","glamorous","glaring","glass","gleaming","gleeful","glistening","glittering","gloomy","glorious","glossy","glum","golden","good","good-natured","gorgeous","graceful","gracious","grand","grandiose","granular","grateful","grave","gray","great","greedy","green","gregarious","grim","grimy","gripping","grizzled","grotesque","grouchy","grounded","growing","growling","grown","grubby","gruesome","grumpy","guilty","gullible","gummy","hairy","half","handmade","handsome","handy","happy","happy-go-lucky","hard","hard-to-find","harmful","harmless","harmonious","harsh","hasty","hateful","haunting","healthy","heartfelt","hearty","heavenly","heavy","hefty","helpful","helpless","hidden","hideous","high","high-level","hilarious","hoarse","hollow","homely","honest","honorable","honored","hopeful","horrible","hospitable","hot","huge","humble","humiliating","humming","humongous","hungry","hurtful","husky","icky","icy","ideal","idealistic","identical","idle","idolized","ignorant","ill","ill-fated","ill-informed","illiterate","illustrious","imaginary","imaginative","immaculate","immaterial","immediate","immense","impassioned","impeccable","impartial","imperfect","imperturbable","impish","impolite","important","impossible","impractical","impressionable","impressive","improbable","impure","inborn","incomparable","incompatible","incomplete","inconsequential","incredible","indelible","inexperienced","indolent","infamous","infantile","infatuated","inferior","infinite","informal","innocent","insecure","insidious","insignificant","insistent","instructive","insubstantial","intelligent","intent","intentional","interesting","internal","international","intrepid","ironclad","irresponsible","irritating","itchy","jaded","jagged","jam-packed","jaunty","jealous","jittery","joint","jolly","jovial","joyful","joyous","jubilant","judicious","juicy","jumbo","junior","jumpy","juvenile","kaleidoscopic","keen","key","kind","kindhearted","kindly","klutzy","knobby","knotty","knowledgeable","knowing","known","kooky","kosher","lanky","large","last","lasting","late","lavish","lawful","lazy","leading","lean","leafy","left","legal","legitimate","light","lighthearted","likable","likely","limited","limp","limping","linear","lined","liquid","little","live","lively","livid","loathsome","lone","lonely","long","long-term","loose","lopsided","lost","loud","lovable","lovely","loving","low","loyal","lucky","lumbering","luminous","lumpy","lustrous","luxurious","mad","made-up","magnificent","majestic","major","male","mammoth","married","marvelous","masculine","massive","mature","meager","mealy","mean","measly","meaty","medical","mediocre","medium","meek","mellow","melodic","memorable","menacing","merry","messy","metallic","mild","milky","mindless","miniature","minor","minty","miserable","miserly","misguided","misty","mixed","modern","modest","moist","monstrous","monthly","monumental","moral","mortified","motherly","motionless","mountainous","muddy","muffled","multicolored","mundane","murky","mushy","musty","muted","mysterious","naive","narrow","natural","naughty","nautical","near","neat","necessary","needy","negative","neglected","negligible","neighboring","nervous","new","next","nice","nifty","nimble","nippy","nocturnal","noisy","nonstop","normal","notable","noted","noteworthy","novel","noxious","numb","nutritious","nutty","obedient","oblong","oily","obvious","occasional","odd","oddball","offbeat","offensive","official","old","old-fashioned","only","open","optimal","optimistic","opulent","orange","orderly","organic","ornate","ornery","ordinary","original","other","our","outlying","outgoing","outlandish","outrageous","outstanding","oval","overcooked","overdue","overjoyed","overlooked","palatable","pale","paltry","parallel","parched","partial","passionate","past","pastel","peaceful","peppery","perfect","perfumed","periodic","perky","personal","pertinent","pesky","pessimistic","petty","phony","physical","piercing","pink","pitiful","plain","plaintive","plastic","playful","pleasant","pleased","pleasing","plump","plush","polished","polite","political","pointed","pointless","poised","poor","popular","portly","posh","positive","possible","potable","powerful","powerless","practical","precious","present","prestigious","pretty","previous","pricey","prickly","primary","prime","pristine","private","prize","probable","productive","profitable","profuse","proper","proud","prudent","punctual","pungent","puny","pure","purple","pushy","putrid","puzzled","puzzling","quaint","qualified","quarrelsome","quarterly","queasy","querulous","questionable","quick","quick-witted","quiet","quintessential","quirky","quixotic","quizzical","radiant","ragged","rapid","rare","rash","raw","recent","reckless","rectangular","ready","real","realistic","reasonable","red","reflecting","regal","regular","reliable","relieved","remarkable","remorseful","remote","repentant","required","respectful","responsible","repulsive","revolving","rewarding","rich","rigid","right","ringed","ripe","roasted","robust","rosy","rotating","rotten","rough","round","rowdy","royal","rubbery","rundown","ruddy","rude","runny","rural","rusty","sad","safe","salty","same","sandy","sane","sarcastic","sardonic","satisfied","scaly","scarce","scared","scary","scented","scholarly","scientific","scornful","scratchy","scrawny","second","secondary","second-hand","secret","self-assured","self-reliant","selfish","sentimental","separate","serene","serious","serpentine","several","severe","shabby","shadowy","shady","shallow","shameful","shameless","sharp","shimmering","shiny","shocked","shocking","shoddy","short","short-term","showy","shrill","shy","sick","silent","silky","silly","silver","similar","simple","simplistic","sinful","single","sizzling","skeletal","skinny","sleepy","slight","slim","slimy","slippery","slow","slushy","small","smart","smoggy","smooth","smug","snappy","snarling","sneaky","sniveling","snoopy","sociable","soft","soggy","solid","somber","some","spherical","sophisticated","sore","sorrowful","soulful","soupy","sour","spanish","sparkling","sparse","specific","spectacular","speedy","spicy","spiffy","spirited","spiteful","splendid","spotless","spotted","spry","square","squeaky","squiggly","stable","staid","stained","stale","standard","starchy","stark","starry","steep","sticky","stiff","stimulating","stingy","stormy","straight","strange","steel","strict","strident","striking","striped","strong","studious","stunning","stupendous","sturdy","stylish","subdued","submissive","substantial","subtle","suburban","sudden","sugary","sunny","super","superb","superficial","superior","supportive","sure-footed","surprised","suspicious","svelte","sweaty","sweet","sweltering","swift","sympathetic","tall","talkative","tame","tan","tangible","tart","tasty","tattered","taut","tedious","teeming","tempting","tender","tense","tepid","terrible","terrific","testy","thankful","that","these","thick","thin","third","thirsty","this","thorough","thorny","those","thoughtful","threadbare","thrifty","thunderous","tidy","tight","timely","tinted","tiny","tired","torn","total","tough","traumatic","treasured","tremendous","tragic","trained","triangular","tricky","trifling","trim","trivial","troubled","true","trusting","trustworthy","trusty","truthful","turbulent","twin","ugly","ultimate","unacceptable","unaware","uncomfortable","uncommon","unconscious","understated","unequaled","uneven","unfinished","unfit","unfolded","unfortunate","unhappy","unhealthy","uniform","unimportant","unique","united","unkempt","unknown","unlawful","unlined","unlucky","unnatural","unpleasant","unrealistic","unripe","unruly","unselfish","unsightly","unsteady","unsung","untidy","untimely","untried","untrue","unused","unusual","unwelcome","unwieldy","unwilling","unwitting","unwritten","upbeat","upright","upset","urban","usable","used","useful","useless","utilized","utter","vacant","vague","vain","valid","valuable","vapid","variable","vast","velvety","venerated","vengeful","verifiable","vibrant","vicious","victorious","vigilant","vigorous","villainous","violet","violent","virtual","virtuous","visible","vital","vivacious","vivid","voluminous","wan","warlike","warm","warmhearted","warped","wary","wasteful","watchful","waterlogged","watery","wavy","wealthy","weak","weary","webbed","wee","weekly","weepy","weighty","weird","welcome","well-documented","well-groomed","well-informed","well-lit","well-made","well-off","well-to-do","well-worn","wet","which","whimsical","whirlwind","whispered","white","whole","whopping","wicked","wide","wide-eyed","wiggly","wild","willing","wilted","winding","windy","winged","wiry","wise","witty","wobbly","woeful","wonderful","wooden","woozy","wordy","worldly","worn","worried","worrisome","worse","worst","worthless","worthwhile","worthy","wrathful","wretched","writhing","wrong","wry","yawning","yearly","yellow","yellowish","young","youthful","yummy","zany","zealous","zesty","zigzag"],n4t=["abnormally","absentmindedly","accidentally","acidly","actually","adventurously","afterwards","almost","always","angrily","annually","anxiously","arrogantly","awkwardly","badly","bashfully","beautifully","bitterly","bleakly","blindly","blissfully","boastfully","boldly","bravely","briefly","brightly","briskly","broadly","busily","calmly","carefully","carelessly","cautiously","certainly","cheerfully","clearly","cleverly","closely","coaxingly","colorfully","commonly","continually","coolly","correctly","courageously","crossly","cruelly","curiously","daily","daintily","dearly","deceivingly","deeply","defiantly","deliberately","delightfully","diligently","dimly","doubtfully","dreamily","easily","elegantly","energetically","enormously","enthusiastically","equally","especially","even","evenly","eventually","exactly","excitedly","extremely","fairly","faithfully","famously","far","fast","fatally","ferociously","fervently","fiercely","fondly","foolishly","fortunately","frankly","frantically","freely","frenetically","frightfully","fully","furiously","generally","generously","gently","gladly","gleefully","gracefully","gratefully","greatly","greedily","happily","hastily","healthily","heavily","helpfully","helplessly","highly","honestly","hopelessly","hourly","hungrily","immediately","innocently","inquisitively","instantly","intensely","intently","interestingly","inwardly","irritably","jaggedly","jealously","joshingly","jovially","joyfully","joyously","jubilantly","judgementally","justly","keenly","kiddingly","kindheartedly","kindly","kissingly","knavishly","knottily","knowingly","knowledgeably","kookily","lazily","less","lightly","likely","limply","lively","loftily","longingly","loosely","loudly","lovingly","loyally","madly","majestically","meaningfully","mechanically","merrily","miserably","mockingly","monthly","more","mortally","mostly","mysteriously","naturally","nearly","neatly","needily","nervously","never","nicely","noisily","not","obediently","obnoxiously","oddly","offensively","officially","often","only","openly","optimistically","overconfidently","owlishly","painfully","partially","patiently","perfectly","physically","playfully","politely","poorly","positively","potentially","powerfully","promptly","properly","punctually","quaintly","quarrelsomely","queasily","questionably","questioningly","quicker","quickly","quietly","quirkily","quizzically","rapidly","rarely","readily","really","reassuringly","recklessly","regularly","reluctantly","repeatedly","reproachfully","restfully","righteously","rightfully","rigidly","roughly","rudely","sadly","safely","scarcely","scarily","searchingly","sedately","seemingly","seldom","selfishly","separately","seriously","shakily","sharply","sheepishly","shrilly","shyly","silently","sleepily","slowly","smoothly","softly","solemnly","solidly","sometimes","soon","speedily","stealthily","sternly","strictly","successfully","suddenly","surprisingly","suspiciously","sweetly","swiftly","sympathetically","tenderly","tensely","terribly","thankfully","thoroughly","thoughtfully","tightly","tomorrow","too","tremendously","triumphantly","truly","truthfully","ultimately","unabashedly","unaccountably","unbearably","unethically","unexpectedly","unfortunately","unimpressively","unnaturally","unnecessarily","upbeat","upliftingly","upright","upside-down","upward","upwardly","urgently","usefully","uselessly","usually","utterly","vacantly","vaguely","vainly","valiantly","vastly","verbally","very","viciously","victoriously","violently","vivaciously","voluntarily","warmly","weakly","wearily","well","wetly","wholly","wildly","willfully","wisely","woefully","wonderfully","worriedly","wrongly","yawningly","yearly","yearningly","yesterday","yieldingly","youthfully"],i4t=["after","although","and","as","because","before","but","consequently","even","finally","for","furthermore","hence","how","however","if","inasmuch","incidentally","indeed","instead","lest","likewise","meanwhile","nor","now","once","or","provided","since","so","supposing","than","that","though","till","unless","until","what","when","whenever","where","whereas","wherever","whether","which","while","who","whoever","whose","why","yet"],r4t=["yuck","oh","phooey","blah","boo","whoa","yowza","huzzah","boohoo","fooey","geez","pfft","ew","ah","yum","brr","hm","yahoo","aha","woot","drat","gah","meh","psst","aw","ugh","yippee","eek","gee","bah","gadzooks","duh","ha","mmm","ouch","phew","ack","uh-huh","gosh","hmph","pish","zowie","er","ick","oof","um"],o4t=["ATM","CD","SUV","TV","aardvark","abacus","abbey","abbreviation","abdomen","ability","abnormality","abolishment","abrogation","absence","abundance","academics","academy","accelerant","accelerator","accent","acceptance","access","accessory","accident","accommodation","accompanist","accomplishment","accord","accordance","accordion","account","accountability","accountant","accounting","accuracy","accusation","acetate","achievement","achiever","acid","acknowledgment","acorn","acoustics","acquaintance","acquisition","acre","acrylic","act","action","activation","activist","activity","actor","actress","acupuncture","ad","adaptation","adapter","addiction","addition","address","adjective","adjustment","admin","administration","administrator","admire","admission","adobe","adoption","adrenalin","adrenaline","adult","adulthood","advance","advancement","advantage","advent","adverb","advertisement","advertising","advice","adviser","advocacy","advocate","affair","affect","affidavit","affiliate","affinity","afoul","afterlife","aftermath","afternoon","aftershave","aftershock","afterthought","age","agency","agenda","agent","aggradation","aggression","aglet","agony","agreement","agriculture","aid","aide","aim","air","airbag","airbus","aircraft","airfare","airfield","airforce","airline","airmail","airman","airplane","airport","airship","airspace","alarm","alb","albatross","album","alcohol","alcove","alder","ale","alert","alfalfa","algebra","algorithm","alias","alibi","alien","allegation","allergist","alley","alliance","alligator","allocation","allowance","alloy","alluvium","almanac","almighty","almond","alpaca","alpenglow","alpenhorn","alpha","alphabet","altar","alteration","alternative","altitude","alto","aluminium","aluminum","amazement","amazon","ambassador","amber","ambience","ambiguity","ambition","ambulance","amendment","amenity","ammunition","amnesty","amount","amusement","anagram","analgesia","analog","analogue","analogy","analysis","analyst","analytics","anarchist","anarchy","anatomy","ancestor","anchovy","android","anesthesiologist","anesthesiology","angel","anger","angina","angle","angora","angstrom","anguish","animal","anime","anise","ankle","anklet","anniversary","announcement","annual","anorak","answer","ant","anteater","antecedent","antechamber","antelope","antennae","anterior","anthropology","antibody","anticipation","anticodon","antigen","antique","antiquity","antler","antling","anxiety","anybody","anyone","anything","anywhere","apartment","ape","aperitif","apology","app","apparatus","apparel","appeal","appearance","appellation","appendix","appetiser","appetite","appetizer","applause","apple","applewood","appliance","application","appointment","appreciation","apprehension","approach","appropriation","approval","apricot","apron","apse","aquarium","aquifer","arcade","arch","arch-rival","archaeologist","archaeology","archeology","archer","architect","architecture","archives","area","arena","argument","arithmetic","ark","arm","arm-rest","armadillo","armament","armchair","armoire","armor","armour","armpit","armrest","army","arrangement","array","arrest","arrival","arrogance","arrow","art","artery","arthur","artichoke","article","artifact","artificer","artist","ascend","ascent","ascot","ash","ashram","ashtray","aside","asparagus","aspect","asphalt","aspic","assassination","assault","assembly","assertion","assessment","asset","assignment","assist","assistance","assistant","associate","association","assumption","assurance","asterisk","astrakhan","astrolabe","astrologer","astrology","astronomy","asymmetry","atelier","atheist","athlete","athletics","atmosphere","atom","atrium","attachment","attack","attacker","attainment","attempt","attendance","attendant","attention","attenuation","attic","attitude","attorney","attraction","attribute","auction","audience","audit","auditorium","aunt","authentication","authenticity","author","authorisation","authority","authorization","auto","autoimmunity","automation","automaton","autumn","availability","avalanche","avenue","average","avocado","award","awareness","awe","axis","azimuth","baboon","babushka","baby","bachelor","back","back-up","backbone","backburn","backdrop","background","backpack","backup","backyard","bacon","bacterium","badge","badger","bafflement","bag","bagel","baggage","baggie","baggy","bagpipe","bail","bait","bake","baker","bakery","bakeware","balaclava","balalaika","balance","balcony","ball","ballet","balloon","balloonist","ballot","ballpark","bamboo","ban","banana","band","bandana","bandanna","bandolier","bandwidth","bangle","banjo","bank","bankbook","banker","banking","bankruptcy","banner","banquette","banyan","baobab","bar","barbecue","barbeque","barber","bargain","barge","baritone","barium","bark","barley","barn","barometer","barracks","barrage","barrel","barrier","barstool","bartender","base","baseball","baseboard","baseline","basement","basics","basil","basin","basis","basket","basketball","bass","bassinet","bassoon","bat","bath","bather","bathhouse","bathrobe","bathroom","bathtub","battalion","batter","battery","batting","battle","battleship","bay","bayou","beach","bead","beak","beam","bean","beancurd","beanie","beanstalk","bear","beard","beast","beastie","beat","beating","beauty","beck","bed","bedrock","bedroom","bee","beech","beef","beet","beetle","beggar","beginner","beginning","begonia","behalf","behavior","behaviour","behest","behold","being","belfry","belief","believer","bell","belligerency","bellows","belly","belt","bench","bend","beneficiary","benefit","beret","berry","best-seller","bestseller","bet","beverage","beyond","bias","bibliography","bicycle","bid","bidder","bidding","bidet","bifocals","bijou","bike","bikini","bill","billboard","billing","billion","bin","binoculars","biology","biopsy","biosphere","biplane","birch","bird","bird-watcher","birdbath","birdcage","birdhouse","birth","birthday","biscuit","bit","bite","bitten","bitter","blackberry","blackbird","blackboard","blackfish","blackness","bladder","blade","blame","blank","blanket","blast","blazer","blend","blessing","blight","blind","blinker","blister","blizzard","block","blocker","blog","blogger","blood","bloodflow","bloom","bloomer","blossom","blouse","blow","blowgun","blowhole","blueberry","blush","boar","board","boat","boatload","boatyard","bob","bobcat","body","bog","bolero","bolt","bond","bonding","bondsman","bone","bonfire","bongo","bonnet","bonsai","bonus","boogeyman","book","bookcase","bookend","booking","booklet","bookmark","boolean","boom","boon","boost","booster","boot","bootie","border","bore","borrower","borrowing","boss","botany","bother","bottle","bottling","bottom","bottom-line","boudoir","bough","boulder","boulevard","boundary","bouquet","bourgeoisie","bout","boutique","bow","bower","bowl","bowler","bowling","bowtie","box","boxer","boxspring","boy","boycott","boyfriend","boyhood","boysenberry","brace","bracelet","bracket","brain","brake","bran","branch","brand","brass","bratwurst","bread","breadcrumb","breadfruit","break","breakdown","breakfast","breakpoint","breakthrough","breastplate","breath","breeze","brewer","bribery","brick","bricklaying","bride","bridge","brief","briefing","briefly","brilliant","brink","brisket","broad","broadcast","broccoli","brochure","brocolli","broiler","broker","bronchitis","bronco","bronze","brooch","brood","brook","broom","brother","brother-in-law","brow","brownie","browser","browsing","brunch","brush","brushfire","brushing","bubble","buck","bucket","buckle","buckwheat","bud","buddy","budget","buffalo","buffer","buffet","bug","buggy","bugle","builder","building","bulb","bulk","bull","bull-fighter","bulldozer","bullet","bump","bumper","bun","bunch","bungalow","bunkhouse","burden","bureau","burglar","burial","burn","burn-out","burning","burrito","burro","burrow","burst","bus","bush","business","businessman","bust","bustle","butane","butcher","butler","butter","butterfly","button","buy","buyer","buying","buzz","buzzard","c-clamp","cabana","cabbage","cabin","cabinet","cable","caboose","cacao","cactus","caddy","cadet","cafe","caffeine","caftan","cage","cake","calcification","calculation","calculator","calculus","calendar","calf","caliber","calibre","calico","call","calm","calorie","camel","cameo","camera","camp","campaign","campaigning","campanile","camper","campus","can","canal","candelabra","candidacy","candidate","candle","candy","cane","cannibal","cannon","canoe","canon","canopy","cantaloupe","canteen","canvas","cap","capability","capacity","cape","caper","capital","capitalism","capitulation","capon","cappelletti","cappuccino","captain","caption","captor","car","carabao","caramel","caravan","carbohydrate","carbon","carboxyl","card","cardboard","cardigan","care","career","cargo","caribou","carload","carnation","carnival","carol","carotene","carp","carpenter","carpet","carpeting","carport","carriage","carrier","carrot","carry","cart","cartel","carter","cartilage","cartload","cartoon","cartridge","carving","cascade","case","casement","cash","cashew","cashier","casino","casket","cassava","casserole","cassock","cast","castanet","castle","casualty","cat","catacomb","catalogue","catalysis","catalyst","catamaran","catastrophe","catch","catcher","category","caterpillar","cathedral","cation","catsup","cattle","cauliflower","causal","cause","causeway","caution","cave","caviar","cayenne","ceiling","celebration","celebrity","celeriac","celery","cell","cellar","cello","celsius","cement","cemetery","cenotaph","census","cent","center","centimeter","centre","centurion","century","cephalopod","ceramic","ceramics","cereal","ceremony","certainty","certificate","certification","cesspool","chafe","chain","chainstay","chair","chairlift","chairman","chairperson","chaise","chalet","chalice","chalk","challenge","chamber","champagne","champion","championship","chance","chandelier","change","channel","chaos","chap","chapel","chaplain","chapter","character","characteristic","characterization","chard","charge","charger","charity","charlatan","charm","charset","chart","charter","chasm","chassis","chastity","chasuble","chateau","chatter","chauffeur","chauvinist","check","checkbook","checking","checkout","checkroom","cheddar","cheek","cheer","cheese","cheesecake","cheetah","chef","chem","chemical","chemistry","chemotaxis","cheque","cherry","chess","chest","chestnut","chick","chicken","chicory","chief","chiffonier","child","childbirth","childhood","chili","chill","chime","chimpanzee","chin","chinchilla","chino","chip","chipmunk","chit-chat","chivalry","chive","chives","chocolate","choice","choir","choker","cholesterol","choosing","chop","chops","chopstick","chopsticks","chord","chorus","chow","chowder","chrome","chromolithograph","chronicle","chronograph","chronometer","chrysalis","chub","chuck","church","churn","chutney","cicada","cigarette","cilantro","cinder","cinema","cinnamon","circadian","circle","circuit","circulation","circumference","circumstance","cirrus","citizen","citizenship","citron","citrus","city","civilian","civilisation","civilization","claim","clam","clamp","clan","clank","clapboard","clarification","clarinet","clarity","clasp","class","classic","classification","classmate","classroom","clause","clave","clavicle","clavier","claw","clay","cleaner","clearance","clearing","cleat","clef","cleft","clergyman","cleric","clerk","click","client","cliff","climate","climb","clinic","clip","clipboard","clipper","cloak","cloakroom","clock","clockwork","clogs","cloister","clone","close","closet","closing","closure","cloth","clothes","clothing","cloud","cloudburst","clove","clover","cloves","club","clue","cluster","clutch","co-producer","coach","coal","coalition","coast","coaster","coat","cob","cobbler","cobweb","cockpit","cockroach","cocktail","cocoa","coconut","cod","code","codepage","codling","codon","coevolution","cofactor","coffee","coffin","cohesion","cohort","coil","coin","coincidence","coinsurance","coke","cold","coleslaw","coliseum","collaboration","collagen","collapse","collar","collard","collateral","colleague","collection","collectivisation","collectivization","collector","college","collision","colloquy","colon","colonial","colonialism","colonisation","colonization","colony","color","colorlessness","colt","column","columnist","comb","combat","combination","combine","comeback","comedy","comestible","comfort","comfortable","comic","comics","comma","command","commander","commandment","comment","commerce","commercial","commission","commitment","committee","commodity","common","commonsense","commotion","communicant","communication","communion","communist","community","commuter","company","comparison","compass","compassion","compassionate","compensation","competence","competition","competitor","complaint","complement","completion","complex","complexity","compliance","complication","complicity","compliment","component","comportment","composer","composite","composition","compost","comprehension","compress","compromise","comptroller","compulsion","computer","comradeship","con","concentrate","concentration","concept","conception","concern","concert","conclusion","concrete","condition","conditioner","condominium","condor","conduct","conductor","cone","confectionery","conference","confidence","confidentiality","configuration","confirmation","conflict","conformation","confusion","conga","congo","congregation","congress","congressman","congressperson","conifer","connection","connotation","conscience","consciousness","consensus","consent","consequence","conservation","conservative","consideration","consignment","consist","consistency","console","consonant","conspiracy","conspirator","constant","constellation","constitution","constraint","construction","consul","consulate","consulting","consumer","consumption","contact","contagion","container","content","contention","contest","context","continent","contingency","continuity","contour","contract","contractor","contrail","contrary","contrast","contribution","contributor","control","controller","controversy","convection","convenience","convention","conversation","conversion","convert","convertible","conviction","cook","cookbook","cookie","cooking","cooperation","coordination","coordinator","cop","cop-out","cope","copper","copy","copying","copyright","copywriter","coral","cord","corduroy","core","cork","cormorant","corn","corner","cornerstone","cornet","cornflakes","cornmeal","corporal","corporation","corporatism","corps","corral","correspondence","correspondent","corridor","corruption","corsage","cosset","cost","costume","cot","cottage","cotton","couch","cougar","cough","council","councilman","councilor","councilperson","counsel","counseling","counselling","counsellor","counselor","count","counter","counter-force","counterpart","countess","country","countryside","county","couple","coupon","courage","course","court","courthouse","courtroom","cousin","covariate","cover","coverage","coverall","cow","cowbell","cowboy","coyote","crab","cradle","craft","craftsman","cranberry","crane","cranky","crate","cravat","craw","crawdad","crayfish","crayon","crazy","cream","creation","creative","creativity","creator","creature","creche","credential","credenza","credibility","credit","creditor","creek","crepe","crest","crew","crewman","crewmate","crewmember","crewmen","cria","crib","cribbage","cricket","cricketer","crime","criminal","crinoline","crisis","crisp","criteria","criterion","critic","criticism","crocodile","crocus","croissant","crook","crop","cross","cross-contamination","cross-stitch","croup","crow","crowd","crown","crude","cruelty","cruise","crumb","crunch","crusader","crush","crust","cry","crystal","crystallography","cub","cube","cuckoo","cucumber","cue","cuff-link","cuisine","cultivar","cultivator","culture","culvert","cummerbund","cup","cupboard","cupcake","cupola","curd","cure","curio","curiosity","curl","curler","currant","currency","current","curriculum","curry","curse","cursor","curtailment","curtain","curve","cushion","custard","custody","custom","customer","cut","cuticle","cutlet","cutover","cutting","cyclamen","cycle","cyclone","cyclooxygenase","cygnet","cylinder","cymbal","cynic","cyst","cytokine","cytoplasm","dad","daddy","daffodil","dagger","dahlia","daikon","daily","dairy","daisy","dam","damage","dame","dance","dancer","dancing","dandelion","danger","dare","dark","darkness","darn","dart","dash","dashboard","data","database","date","daughter","dawn","day","daybed","daylight","dead","deadline","deal","dealer","dealing","dearest","death","deathwatch","debate","debris","debt","debtor","decade","decadence","decency","decimal","decision","decision-making","deck","declaration","declination","decline","decoder","decongestant","decoration","decrease","decryption","dedication","deduce","deduction","deed","deep","deer","default","defeat","defendant","defender","defense","deficit","definition","deformation","degradation","degree","delay","deliberation","delight","delivery","demand","democracy","democrat","demur","den","denim","denominator","density","dentist","deodorant","department","departure","dependency","dependent","deployment","deposit","deposition","depot","depression","depressive","depth","deputy","derby","derivation","derivative","derrick","descendant","descent","description","desert","design","designation","designer","desire","desk","desktop","dessert","destination","destiny","destroyer","destruction","detail","detainee","detainment","detection","detective","detector","detention","determination","detour","devastation","developer","developing","development","developmental","deviance","deviation","device","devil","dew","dhow","diabetes","diadem","diagnosis","diagram","dial","dialect","dialogue","diam","diamond","diaper","diaphragm","diarist","diary","dibble","dickey","dictaphone","dictator","diction","dictionary","die","diesel","diet","difference","differential","difficulty","diffuse","dig","digestion","digestive","digger","digging","digit","dignity","dilapidation","dill","dilution","dime","dimension","dimple","diner","dinghy","dining","dinner","dinosaur","dioxide","dip","diploma","diplomacy","direction","directive","director","directory","dirndl","dirt","disability","disadvantage","disagreement","disappointment","disarmament","disaster","discharge","discipline","disclaimer","disclosure","disco","disconnection","discount","discourse","discovery","discrepancy","discretion","discrimination","discussion","disdain","disease","disembodiment","disengagement","disguise","disgust","dish","dishwasher","disk","disparity","dispatch","displacement","display","disposal","disposer","disposition","dispute","disregard","disruption","dissemination","dissonance","distance","distinction","distortion","distribution","distributor","district","divalent","divan","diver","diversity","divide","dividend","divider","divine","diving","division","divorce","doc","dock","doctor","doctorate","doctrine","document","documentary","documentation","doe","dog","dogsled","dogwood","doing","doll","dollar","dollop","dolman","dolor","dolphin","domain","dome","donation","donkey","donor","donut","door","doorbell","doorknob","doorpost","doorway","dory","dose","dot","double","doubling","doubt","doubter","dough","doughnut","down","downfall","downforce","downgrade","download","downstairs","downtown","downturn","dozen","draft","drag","dragon","dragonfly","dragonfruit","dragster","drain","drainage","drake","drama","dramaturge","drapes","draw","drawbridge","drawer","drawing","dream","dreamer","dredger","dress","dresser","dressing","drill","drink","drinking","drive","driver","driveway","driving","drizzle","dromedary","drop","drudgery","drug","drum","drummer","dryer","duck","duckling","dud","dude","due","duel","dueling","duffel","dugout","dulcimer","dumbwaiter","dump","dune","dungarees","dungeon","duplexer","duration","durian","dusk","dust","duster","duty","dwell","dwelling","dynamics","dynamite","dynamo","dynasty","dysfunction","e-book","e-mail","e-reader","eagle","eaglet","ear","eardrum","earmuffs","earnings","earplug","earring","earrings","earth","earthquake","earthworm","ease","easel","east","eating","eaves","eavesdropper","ecclesia","echidna","eclipse","ecliptic","ecology","economics","economy","ecosystem","ectoderm","ectodermal","ecumenist","eddy","edge","edger","edible","editing","edition","editor","editorial","education","eel","effacement","effect","effective","effectiveness","effector","efficacy","efficiency","effort","egg","egghead","eggnog","eggplant","ego","eicosanoid","ejector","elbow","elderberry","election","electricity","electrocardiogram","electronics","element","elephant","elevation","elevator","eleventh","elf","elicit","eligibility","elimination","elite","elixir","elk","ellipse","elm","elongation","elver","email","emanate","embarrassment","embassy","embellishment","embossing","embryo","emerald","emergence","emergency","emergent","emery","emission","emitter","emotion","emphasis","empire","employ","employee","employer","employment","empowerment","emu","enactment","encirclement","enclave","enclosure","encounter","encouragement","encyclopedia","end","endive","endoderm","endorsement","endothelium","endpoint","enemy","energy","enforcement","engagement","engine","engineer","engineering","enigma","enjoyment","enquiry","enrollment","enterprise","entertainment","enthusiasm","entirety","entity","entrance","entree","entrepreneur","entry","envelope","environment","envy","enzyme","epauliere","epee","ephemera","ephemeris","ephyra","epic","episode","epithelium","epoch","eponym","epoxy","equal","equality","equation","equinox","equipment","equity","equivalent","era","eraser","erosion","error","escalator","escape","espadrille","espalier","essay","essence","essential","establishment","estate","estimate","estrogen","estuary","eternity","ethernet","ethics","ethnicity","ethyl","euphonium","eurocentrism","evaluation","evaluator","evaporation","eve","evening","evening-wear","event","everybody","everyone","everything","eviction","evidence","evil","evocation","evolution","ex-husband","ex-wife","exaggeration","exam","examination","examiner","example","exasperation","excellence","exception","excerpt","excess","exchange","excitement","exclamation","excursion","excuse","execution","executive","executor","exercise","exhaust","exhaustion","exhibit","exhibition","exile","existence","exit","exocrine","expansion","expansionism","expectancy","expectation","expedition","expense","experience","experiment","experimentation","expert","expertise","explanation","exploration","explorer","export","expose","exposition","exposure","expression","extension","extent","exterior","external","extinction","extreme","extremist","eye","eyeball","eyebrow","eyebrows","eyeglasses","eyelash","eyelashes","eyelid","eyelids","eyeliner","eyestrain","eyrie","fabric","face","facelift","facet","facility","facsimile","fact","factor","factory","faculty","fahrenheit","fail","failure","fairness","fairy","faith","faithful","fall","fallacy","falling-out","fame","familiar","familiarity","family","fan","fang","fanlight","fanny-pack","fantasy","farm","farmer","farming","farmland","farrow","fascia","fashion","fat","fate","father","father-in-law","fatigue","fatigues","faucet","fault","fav","fava","favor","favorite","fawn","fax","fear","feast","feather","feature","fedelini","federation","fedora","fee","feed","feedback","feeding","feel","feeling","fellow","felony","female","fen","fence","fencing","fender","feng","fennel","ferret","ferry","ferryboat","fertilizer","festival","fetus","few","fiber","fiberglass","fibre","fibroblast","fibrosis","ficlet","fiction","fiddle","field","fiery","fiesta","fifth","fig","fight","fighter","figure","figurine","file","filing","fill","fillet","filly","film","filter","filth","final","finance","financing","finding","fine","finer","finger","fingerling","fingernail","finish","finisher","fir","fire","fireman","fireplace","firewall","firm","first","fish","fishbone","fisherman","fishery","fishing","fishmonger","fishnet","fit","fitness","fix","fixture","flag","flair","flame","flan","flanker","flare","flash","flat","flatboat","flavor","flax","fleck","fledgling","fleece","flesh","flexibility","flick","flicker","flight","flint","flintlock","flip-flops","flock","flood","floodplain","floor","floozie","flour","flow","flower","flu","flugelhorn","fluke","flume","flung","flute","fly","flytrap","foal","foam","fob","focus","fog","fold","folder","folk","folklore","follower","following","fondue","font","food","foodstuffs","fool","foot","footage","football","footnote","footprint","footrest","footstep","footstool","footwear","forage","forager","foray","force","ford","forearm","forebear","forecast","forehead","foreigner","forelimb","forest","forestry","forever","forgery","fork","form","formal","formamide","format","formation","former","formicarium","formula","fort","forte","fortnight","fortress","fortune","forum","foundation","founder","founding","fountain","fourths","fowl","fox","foxglove","fraction","fragrance","frame","framework","fratricide","fraud","fraudster","freak","freckle","freedom","freelance","freezer","freezing","freight","freighter","frenzy","freon","frequency","fresco","friction","fridge","friend","friendship","fries","frigate","fright","fringe","fritter","frock","frog","front","frontier","frost","frosting","frown","fruit","frustration","fry","fuel","fugato","fulfillment","full","fun","function","functionality","fund","funding","fundraising","fur","furnace","furniture","fusarium","futon","future","gadget","gaffe","gaffer","gain","gaiters","gale","gall-bladder","gallery","galley","gallon","galoshes","gambling","game","gamebird","gaming","gamma-ray","gander","gang","gap","garage","garb","garbage","garden","garlic","garment","garter","gas","gasket","gasoline","gasp","gastronomy","gastropod","gate","gateway","gather","gathering","gator","gauge","gauntlet","gavel","gazebo","gazelle","gear","gearshift","geek","gel","gelatin","gelding","gem","gemsbok","gender","gene","general","generation","generator","generosity","genetics","genie","genius","genre","gentleman","geography","geology","geometry","geranium","gerbil","gesture","geyser","gherkin","ghost","giant","gift","gig","gigantism","giggle","ginger","gingerbread","ginseng","giraffe","girdle","girl","girlfriend","glacier","gladiolus","glance","gland","glass","glasses","glee","glen","glider","gliding","glimpse","globe","glockenspiel","gloom","glory","glove","glow","glucose","glue","glut","glutamate","gnat","gnu","go-kart","goal","goat","gobbler","god","goddess","godfather","godmother","godparent","goggles","going","gold","goldfish","golf","gondola","gong","good","good-bye","goodbye","goodie","goodness","goodnight","goodwill","goose","gopher","gorilla","gosling","gossip","governance","government","governor","gown","grab-bag","grace","grade","gradient","graduate","graduation","graffiti","graft","grain","gram","grammar","gran","grand","grandchild","granddaughter","grandfather","grandma","grandmom","grandmother","grandpa","grandparent","grandson","granny","granola","grant","grape","grapefruit","graph","graphic","grasp","grass","grasshopper","grassland","gratitude","gravel","gravitas","gravity","gravy","gray","grease","great-grandfather","great-grandmother","greatness","greed","green","greenhouse","greens","grenade","grey","grid","grief","grill","grin","grip","gripper","grit","grocery","ground","group","grouper","grouse","grove","growth","grub","guacamole","guarantee","guard","guava","guerrilla","guess","guest","guestbook","guidance","guide","guideline","guilder","guilt","guilty","guinea","guitar","guitarist","gum","gumshoe","gun","gunpowder","gutter","guy","gym","gymnast","gymnastics","gynaecology","gyro","habit","habitat","hacienda","hacksaw","hackwork","hail","hair","haircut","hake","half","half-brother","half-sister","halibut","hall","halloween","hallway","halt","ham","hamburger","hammer","hammock","hamster","hand","hand-holding","handball","handful","handgun","handicap","handle","handlebar","handmaiden","handover","handrail","handsaw","hanger","happening","happiness","harald","harbor","harbour","hard-hat","hardboard","hardcover","hardening","hardhat","hardship","hardware","hare","harm","harmonica","harmonise","harmonize","harmony","harp","harpooner","harpsichord","harvest","harvester","hash","hashtag","hassock","haste","hat","hatbox","hatchet","hatchling","hate","hatred","haunt","haven","haversack","havoc","hawk","hay","haze","hazel","hazelnut","head","headache","headlight","headline","headphones","headquarters","headrest","health","health-care","hearing","hearsay","heart","heart-throb","heartache","heartbeat","hearth","hearthside","heartwood","heat","heater","heating","heaven","heavy","hectare","hedge","hedgehog","heel","heifer","height","heir","heirloom","helicopter","helium","hellcat","hello","helmet","helo","help","hemisphere","hemp","hen","hepatitis","herb","herbs","heritage","hermit","hero","heroine","heron","herring","hesitation","hexagon","heyday","hiccups","hide","hierarchy","high","high-rise","highland","highlight","highway","hike","hiking","hill","hint","hip","hippodrome","hippopotamus","hire","hiring","historian","history","hit","hive","hobbit","hobby","hockey","hog","hold","holder","hole","holiday","home","homeland","homeownership","hometown","homework","homogenate","homonym","honesty","honey","honeybee","honeydew","honor","honoree","hood","hoof","hook","hop","hope","hops","horde","horizon","hormone","horn","hornet","horror","horse","horseradish","horst","hose","hosiery","hospice","hospital","hospitalisation","hospitality","hospitalization","host","hostel","hostess","hotdog","hotel","hound","hour","hourglass","house","houseboat","household","housewife","housework","housing","hovel","hovercraft","howard","howitzer","hub","hubcap","hubris","hug","hugger","hull","human","humanity","humidity","hummus","humor","humour","hundred","hunger","hunt","hunter","hunting","hurdle","hurdler","hurricane","hurry","hurt","husband","hut","hutch","hyacinth","hybridisation","hybridization","hydrant","hydraulics","hydrocarb","hydrocarbon","hydrofoil","hydrogen","hydrolyse","hydrolysis","hydrolyze","hydroxyl","hyena","hygienic","hype","hyphenation","hypochondria","hypothermia","hypothesis","ice","ice-cream","iceberg","icebreaker","icecream","icicle","icing","icon","icy","id","idea","ideal","identification","identity","ideology","idiom","igloo","ignorance","ignorant","ikebana","illiteracy","illness","illusion","illustration","image","imagination","imbalance","imitation","immigrant","immigration","immortal","impact","impairment","impala","impediment","implement","implementation","implication","import","importance","impostor","impress","impression","imprisonment","impropriety","improvement","impudence","impulse","in-joke","in-laws","inability","inauguration","inbox","incandescence","incarnation","incense","incentive","inch","incidence","incident","incision","inclusion","income","incompetence","inconvenience","increase","incubation","independence","independent","index","indication","indicator","indigence","individual","industrialisation","industrialization","industry","inequality","inevitable","infancy","infant","infarction","infection","infiltration","infinite","infix","inflammation","inflation","influence","influx","info","information","infrastructure","infusion","inglenook","ingrate","ingredient","inhabitant","inheritance","inhibition","inhibitor","initial","initialise","initialize","initiative","injunction","injury","injustice","ink","inlay","inn","innervation","innocence","innocent","innovation","input","inquiry","inscription","insect","insectarium","insert","inside","insight","insolence","insomnia","inspection","inspector","inspiration","installation","instance","instant","instinct","institute","institution","instruction","instructor","instrument","instrumentalist","instrumentation","insulation","insurance","insurgence","insurrection","integer","integral","integration","integrity","intellect","intelligence","intensity","intent","intention","intentionality","interaction","interchange","interconnection","interest","interface","interferometer","interior","interject","interloper","internet","interpretation","interpreter","interval","intervenor","intervention","interview","interviewer","intestine","introduction","intuition","invader","invasion","invention","inventor","inventory","inverse","inversion","investigation","investigator","investment","investor","invitation","invite","invoice","involvement","iridescence","iris","iron","ironclad","irony","irrigation","ischemia","island","isogloss","isolation","issue","item","itinerary","ivory","jack","jackal","jacket","jackfruit","jade","jaguar","jail","jailhouse","jalapeño","jam","jar","jasmine","jaw","jazz","jealousy","jeans","jeep","jelly","jellybeans","jellyfish","jet","jewel","jeweller","jewellery","jewelry","jicama","jiffy","job","jockey","jodhpurs","joey","jogging","joint","joke","jot","journal","journalism","journalist","journey","joy","judge","judgment","judo","jug","juggernaut","juice","julienne","jumbo","jump","jumper","jumpsuit","jungle","junior","junk","junker","junket","jury","justice","justification","jute","kale","kangaroo","karate","kayak","kazoo","kebab","keep","keeper","kendo","kennel","ketch","ketchup","kettle","kettledrum","key","keyboard","keyboarding","keystone","kick","kick-off","kid","kidney","kielbasa","kill","killer","killing","kilogram","kilometer","kilt","kimono","kinase","kind","kindness","king","kingdom","kingfish","kiosk","kiss","kit","kitchen","kite","kitsch","kitten","kitty","kiwi","knee","kneejerk","knickers","knife","knife-edge","knight","knitting","knock","knot","know-how","knowledge","knuckle","koala","kohlrabi","lab","label","labor","laboratory","laborer","labour","labourer","lace","lack","lacquerware","lad","ladder","ladle","lady","ladybug","lag","lake","lamb","lambkin","lament","lamp","lanai","land","landform","landing","landmine","landscape","lane","language","lantern","lap","laparoscope","lapdog","laptop","larch","lard","larder","lark","larva","laryngitis","lasagna","lashes","last","latency","latex","lathe","latitude","latte","latter","laugh","laughter","laundry","lava","law","lawmaker","lawn","lawsuit","lawyer","lay","layer","layout","lead","leader","leadership","leading","leaf","league","leaker","leap","learning","leash","leather","leave","leaver","lecture","leek","leeway","left","leg","legacy","legal","legend","legging","legislation","legislator","legislature","legitimacy","legume","leisure","lemon","lemonade","lemur","lender","lending","length","lens","lentil","leopard","leprosy","leptocephalus","lesson","letter","lettuce","level","lever","leverage","leveret","liability","liar","liberty","library","licence","license","licensing","licorice","lid","lie","lieu","lieutenant","life","lifestyle","lifetime","lift","ligand","light","lighting","lightning","lightscreen","ligula","likelihood","likeness","lilac","lily","limb","lime","limestone","limit","limitation","limo","line","linen","liner","linguist","linguistics","lining","link","linkage","linseed","lion","lip","lipid","lipoprotein","lipstick","liquid","liquidity","liquor","list","listening","listing","literate","literature","litigation","litmus","litter","littleneck","liver","livestock","living","lizard","llama","load","loading","loaf","loafer","loan","lobby","lobotomy","lobster","local","locality","location","lock","locker","locket","locomotive","locust","lode","loft","log","loggia","logic","login","logistics","logo","loincloth","lollipop","loneliness","longboat","longitude","look","lookout","loop","loophole","loquat","lord","loss","lot","lotion","lottery","lounge","louse","lout","love","lover","lox","loyalty","luck","luggage","lumber","lumberman","lunch","luncheonette","lunchmeat","lunchroom","lung","lunge","lute","luxury","lychee","lycra","lye","lymphocyte","lynx","lyocell","lyre","lyrics","lysine","mRNA","macadamia","macaroni","macaroon","macaw","machine","machinery","macrame","macro","macrofauna","madam","maelstrom","maestro","magazine","maggot","magic","magnet","magnitude","maid","maiden","mail","mailbox","mailer","mailing","mailman","main","mainland","mainstream","maintainer","maintenance","maize","major","major-league","majority","makeover","maker","makeup","making","male","malice","mall","mallard","mallet","malnutrition","mama","mambo","mammoth","man","manacle","management","manager","manatee","mandarin","mandate","mandolin","mangle","mango","mangrove","manhunt","maniac","manicure","manifestation","manipulation","mankind","manner","manor","mansard","manservant","mansion","mantel","mantle","mantua","manufacturer","manufacturing","many","map","maple","mapping","maracas","marathon","marble","march","mare","margarine","margin","mariachi","marimba","marines","marionberry","mark","marker","market","marketer","marketing","marketplace","marksman","markup","marmalade","marriage","marsh","marshland","marshmallow","marten","marxism","mascara","mask","masonry","mass","massage","mast","masterpiece","mastication","mastoid","mat","match","matchmaker","mate","material","maternity","math","mathematics","matrix","matter","mattock","mattress","max","maximum","maybe","mayonnaise","mayor","meadow","meal","mean","meander","meaning","means","meantime","measles","measure","measurement","meat","meatball","meatloaf","mecca","mechanic","mechanism","med","medal","media","median","medication","medicine","medium","meet","meeting","melatonin","melody","melon","member","membership","membrane","meme","memo","memorial","memory","men","menopause","menorah","mention","mentor","menu","merchandise","merchant","mercury","meridian","meringue","merit","mesenchyme","mess","message","messenger","messy","metabolite","metal","metallurgist","metaphor","meteor","meteorology","meter","methane","method","methodology","metric","metro","metronome","mezzanine","microlending","micronutrient","microphone","microwave","mid-course","midden","middle","middleman","midline","midnight","midwife","might","migrant","migration","mile","mileage","milepost","milestone","military","milk","milkshake","mill","millennium","millet","millimeter","million","millisecond","millstone","mime","mimosa","min","mincemeat","mind","mine","mineral","mineshaft","mini","mini-skirt","minibus","minimalism","minimum","mining","minion","minister","mink","minnow","minor","minor-league","minority","mint","minute","miracle","mirror","miscommunication","misfit","misnomer","misplacement","misreading","misrepresentation","miss","missile","mission","mist","mistake","mister","misunderstand","miter","mitten","mix","mixer","mixture","moai","moat","mob","mobile","mobility","mobster","moccasins","mocha","mochi","mode","model","modeling","modem","modernist","modernity","modification","molar","molasses","molding","mole","molecule","mom","moment","monastery","monasticism","money","monger","monitor","monitoring","monk","monkey","monocle","monopoly","monotheism","monsoon","monster","month","monument","mood","moody","moon","moonlight","moonscape","moose","mop","morale","morbid","morbidity","morning","morphology","morsel","mortal","mortality","mortgage","mortise","mosque","mosquito","most","motel","moth","mother","mother-in-law","motion","motivation","motive","motor","motorboat","motorcar","motorcycle","mound","mountain","mouse","mouser","mousse","moustache","mouth","mouton","movement","mover","movie","mower","mozzarella","mud","muffin","mug","mukluk","mule","multimedia","muscat","muscatel","muscle","musculature","museum","mushroom","music","music-box","music-making","musician","muskrat","mussel","mustache","mustard","mutation","mutt","mutton","mycoplasma","mystery","myth","mythology","nail","name","naming","nanoparticle","napkin","narrative","nasal","nation","nationality","native","naturalisation","nature","navigation","necessity","neck","necklace","necktie","nectar","nectarine","need","needle","neglect","negligee","negotiation","neighbor","neighborhood","neighbour","neighbourhood","neologism","neon","neonate","nephew","nerve","nest","nestling","nestmate","net","netball","netbook","netsuke","network","networking","neurobiologist","neuron","neuropathologist","neuropsychiatry","news","newsletter","newspaper","newsprint","newsstand","nexus","nibble","nicety","niche","nick","nickel","nickname","niece","night","nightclub","nightgown","nightingale","nightlife","nightlight","nightmare","ninja","nit","nitrogen","nobody","nod","node","noir","noise","nonbeliever","nonconformist","nondisclosure","nonsense","noodle","noodles","noon","norm","normal","normalisation","normalization","north","nose","notation","note","notebook","notepad","nothing","notice","notion","notoriety","nougat","noun","nourishment","novel","nucleotidase","nucleotide","nudge","nuke","number","numeracy","numeric","numismatist","nun","nurse","nursery","nursing","nurture","nut","nutmeg","nutrient","nutrition","nylon","oak","oar","oasis","oat","oatmeal","oats","obedience","obesity","obi","object","objection","objective","obligation","oboe","observation","observatory","obsession","obsidian","obstacle","occasion","occupation","occurrence","ocean","ocelot","octagon","octave","octavo","octet","octopus","odometer","odyssey","oeuvre","off-ramp","offence","offense","offer","offering","office","officer","official","offset","oil","okra","oldie","oleo","olive","omega","omelet","omission","omnivore","oncology","onion","online","onset","opening","opera","operating","operation","operator","ophthalmologist","opinion","opossum","opponent","opportunist","opportunity","opposite","opposition","optimal","optimisation","optimist","optimization","option","orange","orangutan","orator","orchard","orchestra","orchid","order","ordinary","ordination","ore","oregano","organ","organisation","organising","organization","organizing","orient","orientation","origin","original","originality","ornament","osmosis","osprey","ostrich","other","otter","ottoman","ounce","outback","outcome","outfielder","outfit","outhouse","outlaw","outlay","outlet","outline","outlook","output","outrage","outrigger","outrun","outset","outside","oval","ovary","oven","overcharge","overclocking","overcoat","overexertion","overflight","overhead","overheard","overload","overnighter","overshoot","oversight","overview","overweight","owl","owner","ownership","ox","oxford","oxygen","oyster","ozone","pace","pacemaker","pack","package","packaging","packet","pad","paddle","paddock","pagan","page","pagoda","pail","pain","paint","painter","painting","paintwork","pair","pajamas","palace","palate","palm","pamphlet","pan","pancake","pancreas","panda","panel","panic","pannier","panpipe","panther","pantologist","pantology","pantry","pants","pantsuit","pantyhose","papa","papaya","paper","paperback","paperwork","parable","parachute","parade","paradise","paragraph","parallelogram","paramecium","paramedic","parameter","paranoia","parcel","parchment","pard","pardon","parent","parenthesis","parenting","park","parka","parking","parliament","parole","parrot","parser","parsley","parsnip","part","participant","participation","particle","particular","partner","partnership","partridge","party","pass","passage","passbook","passenger","passing","passion","passive","passport","password","past","pasta","paste","pastor","pastoralist","pastry","pasture","pat","patch","pate","patent","patentee","path","pathogenesis","pathology","pathway","patience","patient","patina","patio","patriarch","patrimony","patriot","patrol","patroller","patrolling","patron","pattern","patty","pattypan","pause","pavement","pavilion","paw","pawnshop","pay","payee","payment","payoff","pea","peace","peach","peacoat","peacock","peak","peanut","pear","pearl","peasant","pecan","pedal","peek","peen","peer","peer-to-peer","pegboard","pelican","pelt","pen","penalty","pence","pencil","pendant","pendulum","penguin","penicillin","peninsula","pennant","penny","pension","pentagon","peony","people","pepper","pepperoni","percent","percentage","perception","perch","perennial","perfection","performance","perfume","period","periodical","peripheral","permafrost","permission","permit","perp","perpendicular","persimmon","person","personal","personality","personnel","perspective","pest","pet","petal","petition","petitioner","petticoat","pew","pharmacist","pharmacopoeia","phase","pheasant","phenomenon","phenotype","pheromone","philanthropy","philosopher","philosophy","phone","phosphate","photo","photodiode","photograph","photographer","photography","photoreceptor","phrase","phrasing","physical","physics","physiology","pianist","piano","piccolo","pick","pickax","pickaxe","picket","pickle","pickup","picnic","picture","picturesque","pie","piece","pier","piety","pig","pigeon","piglet","pigpen","pigsty","pike","pilaf","pile","pilgrim","pilgrimage","pill","pillar","pillbox","pillow","pilot","pimple","pin","pinafore","pince-nez","pine","pineapple","pinecone","ping","pinkie","pinot","pinstripe","pint","pinto","pinworm","pioneer","pipe","pipeline","piracy","pirate","pit","pita","pitch","pitcher","pitching","pith","pizza","place","placebo","placement","placode","plagiarism","plain","plaintiff","plan","plane","planet","planning","plant","plantation","planter","planula","plaster","plasterboard","plastic","plate","platelet","platform","platinum","platter","platypus","play","player","playground","playroom","playwright","plea","pleasure","pleat","pledge","plenty","plier","pliers","plight","plot","plough","plover","plow","plowman","plug","plugin","plum","plumber","plume","plunger","plywood","pneumonia","pocket","pocket-watch","pocketbook","pod","podcast","poem","poet","poetry","poignance","point","poison","poisoning","poker","polarisation","polarization","pole","polenta","police","policeman","policy","polish","politician","politics","poll","polliwog","pollutant","pollution","polo","polyester","polyp","pomegranate","pomelo","pompom","poncho","pond","pony","pool","poor","pop","popcorn","poppy","popsicle","popularity","population","populist","porcelain","porch","porcupine","pork","porpoise","port","porter","portfolio","porthole","portion","portrait","position","possession","possibility","possible","post","postage","postbox","poster","posterior","postfix","pot","potato","potential","pottery","potty","pouch","poultry","pound","pounding","poverty","powder","power","practice","practitioner","prairie","praise","pray","prayer","precedence","precedent","precipitation","precision","predecessor","preface","preference","prefix","pregnancy","prejudice","prelude","premeditation","premier","premise","premium","preoccupation","preparation","prescription","presence","present","presentation","preservation","preserves","presidency","president","press","pressroom","pressure","pressurisation","pressurization","prestige","presume","pretzel","prevalence","prevention","prey","price","pricing","pride","priest","priesthood","primary","primate","prince","princess","principal","principle","print","printer","printing","prior","priority","prison","prisoner","privacy","private","privilege","prize","prizefight","probability","probation","probe","problem","procedure","proceedings","process","processing","processor","proctor","procurement","produce","producer","product","production","productivity","profession","professional","professor","profile","profit","progenitor","program","programme","programming","progress","progression","prohibition","project","proliferation","promenade","promise","promotion","prompt","pronoun","pronunciation","proof","proof-reader","propane","property","prophet","proponent","proportion","proposal","proposition","proprietor","prose","prosecution","prosecutor","prospect","prosperity","prostacyclin","prostanoid","prostrate","protection","protein","protest","protocol","providence","provider","province","provision","prow","proximal","proximity","prune","pruner","pseudocode","pseudoscience","psychiatrist","psychoanalyst","psychologist","psychology","ptarmigan","pub","public","publication","publicity","publisher","publishing","pudding","puddle","puffin","pug","puggle","pulley","pulse","puma","pump","pumpernickel","pumpkin","pumpkinseed","pun","punch","punctuation","punishment","pup","pupa","pupil","puppet","puppy","purchase","puritan","purity","purpose","purr","purse","pursuit","push","pusher","put","puzzle","pyramid","pyridine","quadrant","quail","qualification","quality","quantity","quart","quarter","quartet","quartz","queen","query","quest","question","questioner","questionnaire","quiche","quicksand","quiet","quill","quilt","quince","quinoa","quit","quiver","quota","quotation","quote","rabbi","rabbit","raccoon","race","racer","racing","rack","radar","radiator","radio","radiosonde","radish","raffle","raft","rag","rage","raid","rail","railing","railroad","railway","raiment","rain","rainbow","raincoat","rainmaker","rainstorm","rainy","raise","raisin","rake","rally","ram","rambler","ramen","ramie","ranch","rancher","randomisation","randomization","range","ranger","rank","rap","raspberry","rat","rate","ratepayer","rating","ratio","rationale","rations","raven","ravioli","rawhide","ray","rayon","razor","reach","reactant","reaction","read","reader","readiness","reading","real","reality","realization","realm","reamer","rear","reason","reasoning","rebel","rebellion","reboot","recall","recapitulation","receipt","receiver","reception","receptor","recess","recession","recipe","recipient","reciprocity","reclamation","recliner","recognition","recollection","recommendation","reconsideration","record","recorder","recording","recovery","recreation","recruit","rectangle","redesign","redhead","redirect","rediscovery","reduction","reef","refectory","reference","referendum","reflection","reform","refreshments","refrigerator","refuge","refund","refusal","refuse","regard","regime","region","regionalism","register","registration","registry","regret","regulation","regulator","rehospitalisation","rehospitalization","reindeer","reinscription","reject","relation","relationship","relative","relaxation","relay","release","reliability","relief","religion","relish","reluctance","remains","remark","reminder","remnant","remote","removal","renaissance","rent","reorganisation","reorganization","repair","reparation","repayment","repeat","replacement","replica","replication","reply","report","reporter","reporting","repository","representation","representative","reprocessing","republic","republican","reputation","request","requirement","resale","rescue","research","researcher","resemblance","reservation","reserve","reservoir","reset","residence","resident","residue","resist","resistance","resolution","resolve","resort","resource","respect","respite","response","responsibility","rest","restaurant","restoration","restriction","restroom","restructuring","result","resume","retailer","retention","rethinking","retina","retirement","retouching","retreat","retrospect","retrospective","retrospectivity","return","reunion","revascularisation","revascularization","reveal","revelation","revenant","revenge","revenue","reversal","reverse","review","revitalisation","revitalization","revival","revolution","revolver","reward","rhetoric","rheumatism","rhinoceros","rhubarb","rhyme","rhythm","rib","ribbon","rice","riddle","ride","rider","ridge","riding","rifle","right","rim","ring","ringworm","riot","rip","ripple","rise","riser","risk","rite","ritual","river","riverbed","rivulet","road","roadway","roar","roast","robe","robin","robot","robotics","rock","rocker","rocket","rocket-ship","rod","role","roll","roller","romaine","romance","roof","room","roommate","rooster","root","rope","rose","rosemary","roster","rostrum","rotation","round","roundabout","route","router","routine","row","rowboat","rowing","rubber","rubbish","rubric","ruby","ruckus","rudiment","ruffle","rug","rugby","ruin","rule","ruler","ruling","rumor","run","runaway","runner","running","runway","rush","rust","rutabaga","rye","sabre","sack","saddle","sadness","safari","safe","safeguard","safety","saffron","sage","sail","sailboat","sailing","sailor","saint","sake","salad","salami","salary","sale","salesman","salmon","salon","saloon","salsa","salt","salute","samovar","sampan","sample","samurai","sanction","sanctity","sanctuary","sand","sandal","sandbar","sandpaper","sandwich","sanity","sardine","sari","sarong","sash","satellite","satin","satire","satisfaction","sauce","saucer","sauerkraut","sausage","savage","savannah","saving","savings","savior","saviour","savory","saw","saxophone","scaffold","scale","scallion","scallops","scalp","scam","scanner","scarecrow","scarf","scarification","scenario","scene","scenery","scent","schedule","scheduling","schema","scheme","schnitzel","scholar","scholarship","school","schoolhouse","schooner","science","scientist","scimitar","scissors","scooter","scope","score","scorn","scorpion","scotch","scout","scow","scrambled","scrap","scraper","scratch","screamer","screen","screening","screenwriting","screw","screw-up","screwdriver","scrim","scrip","script","scripture","scrutiny","sculpting","sculptural","sculpture","sea","seabass","seafood","seagull","seal","seaplane","search","seashore","seaside","season","seat","seaweed","second","secrecy","secret","secretariat","secretary","secretion","section","sectional","sector","security","sediment","seed","seeder","seeker","seep","segment","seizure","selection","self","self-confidence","self-control","self-esteem","seller","selling","semantics","semester","semicircle","semicolon","semiconductor","seminar","senate","senator","sender","senior","sense","sensibility","sensitive","sensitivity","sensor","sentence","sentencing","sentiment","sepal","separation","septicaemia","sequel","sequence","serial","series","sermon","serum","serval","servant","server","service","servitude","sesame","session","set","setback","setting","settlement","settler","severity","sewer","shack","shackle","shade","shadow","shadowbox","shakedown","shaker","shallot","shallows","shame","shampoo","shanty","shape","share","shareholder","shark","shaw","shawl","shear","shearling","sheath","shed","sheep","sheet","shelf","shell","shelter","sherbet","sherry","shield","shift","shin","shine","shingle","ship","shipper","shipping","shipyard","shirt","shirtdress","shoat","shock","shoe","shoe-horn","shoehorn","shoelace","shoemaker","shoes","shoestring","shofar","shoot","shootdown","shop","shopper","shopping","shore","shoreline","short","shortage","shorts","shortwave","shot","shoulder","shout","shovel","show","show-stopper","shower","shred","shrimp","shrine","shutdown","sibling","sick","sickness","side","sideboard","sideburns","sidecar","sidestream","sidewalk","siding","siege","sigh","sight","sightseeing","sign","signal","signature","signet","significance","signify","signup","silence","silica","silicon","silk","silkworm","sill","silly","silo","silver","similarity","simple","simplicity","simplification","simvastatin","sin","singer","singing","singular","sink","sinuosity","sip","sir","sister","sister-in-law","sitar","site","situation","size","skate","skating","skean","skeleton","ski","skiing","skill","skin","skirt","skull","skullcap","skullduggery","skunk","sky","skylight","skyline","skyscraper","skywalk","slang","slapstick","slash","slate","slaw","sled","sledge","sleep","sleepiness","sleeping","sleet","sleuth","slice","slide","slider","slime","slip","slipper","slippers","slope","slot","sloth","slump","smell","smelting","smile","smith","smock","smog","smoke","smoking","smolt","smuggling","snack","snail","snake","snakebite","snap","snarl","sneaker","sneakers","sneeze","sniffle","snob","snorer","snow","snowboarding","snowflake","snowman","snowmobiling","snowplow","snowstorm","snowsuit","snuck","snug","snuggle","soap","soccer","socialism","socialist","society","sociology","sock","socks","soda","sofa","softball","softdrink","softening","software","soil","soldier","sole","solicitation","solicitor","solidarity","solidity","soliloquy","solitaire","solution","solvency","sombrero","somebody","someone","someplace","somersault","something","somewhere","son","sonar","sonata","song","songbird","sonnet","soot","sophomore","soprano","sorbet","sorghum","sorrel","sorrow","sort","soul","soulmate","sound","soundness","soup","source","sourwood","sousaphone","south","southeast","souvenir","sovereignty","sow","soy","soybean","space","spacing","spaghetti","span","spandex","sparerib","spark","sparrow","spasm","spat","spatula","spawn","speaker","speakerphone","speaking","spear","spec","special","specialist","specialty","species","specification","spectacle","spectacles","spectrograph","spectrum","speculation","speech","speed","speedboat","spell","spelling","spelt","spending","sphere","sphynx","spice","spider","spiderling","spike","spill","spinach","spine","spiral","spirit","spiritual","spirituality","spit","spite","spleen","splendor","split","spokesman","spokeswoman","sponge","sponsor","sponsorship","spool","spoon","spork","sport","sportsman","spot","spotlight","spouse","sprag","sprat","spray","spread","spreadsheet","spree","spring","sprinkles","sprinter","sprout","spruce","spud","spume","spur","spy","spyglass","square","squash","squatter","squeegee","squid","squirrel","stab","stability","stable","stack","stacking","stadium","staff","stag","stage","stain","stair","staircase","stake","stalk","stall","stallion","stamen","stamina","stamp","stance","stand","standard","standardisation","standardization","standing","standoff","standpoint","star","starboard","start","starter","state","statement","statin","station","station-wagon","statistic","statistics","statue","status","statute","stay","steak","stealth","steam","steamroller","steel","steeple","stem","stench","stencil","step","step-aunt","step-brother","step-daughter","step-father","step-grandfather","step-grandmother","step-mother","step-sister","step-son","step-uncle","stepdaughter","stepmother","stepping-stone","stepson","stereo","stew","steward","stick","sticker","stiletto","still","stimulation","stimulus","sting","stinger","stir-fry","stitch","stitcher","stock","stock-in-trade","stockings","stole","stomach","stone","stonework","stool","stop","stopsign","stopwatch","storage","store","storey","storm","story","story-telling","storyboard","stot","stove","strait","strand","stranger","strap","strategy","straw","strawberry","strawman","stream","street","streetcar","strength","stress","stretch","strife","strike","string","strip","stripe","strobe","structure","strudel","struggle","stucco","stud","student","studio","study","stuff","stumbling","stump","stupidity","sturgeon","sty","style","styling","stylus","sub","subcomponent","subconscious","subcontractor","subexpression","subgroup","subject","submarine","submitter","subprime","subroutine","subscription","subsection","subset","subsidence","subsidiary","subsidy","substance","substitution","subtitle","suburb","subway","success","succotash","suede","suet","suffocation","sugar","suggestion","suit","suitcase","suite","sulfur","sultan","sum","summary","summer","summit","sun","sunbeam","sunbonnet","sundae","sunday","sundial","sunflower","sunglasses","sunlamp","sunlight","sunrise","sunroom","sunset","sunshine","superiority","supermarket","supernatural","supervision","supervisor","supper","supplement","supplier","supply","support","supporter","suppression","supreme","surface","surfboard","surge","surgeon","surgery","surname","surplus","surprise","surround","surroundings","surrounds","survey","survival","survivor","sushi","suspect","suspenders","suspension","sustainment","sustenance","swamp","swan","swanling","swath","sweat","sweater","sweatshirt","sweatshop","sweatsuit","sweets","swell","swim","swimming","swimsuit","swine","swing","switch","switchboard","switching","swivel","sword","swordfight","swordfish","sycamore","symbol","symmetry","sympathy","symptom","syndicate","syndrome","synergy","synod","synonym","synthesis","syrup","system","t-shirt","tab","tabby","tabernacle","table","tablecloth","tablet","tabletop","tachometer","tackle","taco","tactics","tactile","tadpole","tag","tail","tailbud","tailor","tailspin","take-out","takeover","tale","talent","talk","talking","tam-o'-shanter","tamale","tambour","tambourine","tan","tandem","tangerine","tank","tank-top","tanker","tankful","tap","tape","tapioca","target","taro","tarragon","tart","task","tassel","taste","tatami","tattler","tattoo","tavern","tax","taxi","taxicab","taxpayer","tea","teacher","teaching","team","teammate","teapot","tear","tech","technician","technique","technologist","technology","tectonics","teen","teenager","teepee","telephone","telescreen","teletype","television","tell","teller","temp","temper","temperature","temple","tempo","temporariness","temporary","temptation","temptress","tenant","tendency","tender","tenement","tenet","tennis","tenor","tension","tensor","tent","tentacle","tenth","tepee","teriyaki","term","terminal","termination","terminology","termite","terrace","terracotta","terrapin","terrarium","territory","test","testament","testimonial","testimony","testing","text","textbook","textual","texture","thanks","thaw","theater","theft","theism","theme","theology","theory","therapist","therapy","thermals","thermometer","thermostat","thesis","thickness","thief","thigh","thing","thinking","thirst","thistle","thong","thongs","thorn","thought","thousand","thread","threat","threshold","thrift","thrill","throne","thrush","thumb","thump","thunder","thunderbolt","thunderhead","thunderstorm","thyme","tiara","tic","tick","ticket","tide","tie","tiger","tights","tile","till","tilt","timbale","timber","time","timeline","timeout","timer","timetable","timing","timpani","tin","tinderbox","tintype","tip","tire","tissue","titanium","title","toad","toast","toaster","tobacco","today","toe","toenail","toffee","tofu","tog","toga","toilet","tolerance","tolerant","toll","tom-tom","tomatillo","tomato","tomb","tomography","tomorrow","ton","tonality","tone","tongue","tonic","tonight","tool","toot","tooth","toothbrush","toothpaste","toothpick","top","top-hat","topic","topsail","toque","toreador","tornado","torso","torte","tortellini","tortilla","tortoise","total","tote","touch","tough-guy","tour","tourism","tourist","tournament","tow-truck","towel","tower","town","townhouse","township","toy","trace","trachoma","track","tracking","tracksuit","tract","tractor","trade","trader","trading","tradition","traditionalism","traffic","trafficker","tragedy","trail","trailer","trailpatrol","train","trainer","training","trait","tram","trance","transaction","transcript","transfer","transformation","transit","transition","translation","transmission","transom","transparency","transplantation","transport","transportation","trap","trapdoor","trapezium","trapezoid","trash","travel","traveler","tray","treasure","treasury","treat","treatment","treaty","tree","trek","trellis","tremor","trench","trend","triad","trial","triangle","tribe","tributary","trick","trigger","trigonometry","trillion","trim","trinket","trip","tripod","tritone","triumph","trolley","troop","trooper","trophy","trouble","trousers","trout","trove","trowel","truck","trumpet","trunk","trust","trustee","truth","try","tsunami","tub","tuba","tube","tuber","tug","tugboat","tuition","tulip","tumbler","tummy","tuna","tune","tune-up","tunic","tunnel","turban","turf","turkey","turmeric","turn","turning","turnip","turnover","turnstile","turret","turtle","tusk","tussle","tutu","tuxedo","tweet","tweezers","twig","twilight","twine","twins","twist","twister","twitter","type","typeface","typewriter","typhoon","ukulele","ultimatum","umbrella","unblinking","uncertainty","uncle","underclothes","underestimate","underground","underneath","underpants","underpass","undershirt","understanding","understatement","undertaker","underwear","underweight","underwire","underwriting","unemployment","unibody","uniform","uniformity","union","unique","unit","unity","universe","university","update","upgrade","uplift","upper","upstairs","upward","urge","urgency","urn","usage","use","user","usher","usual","utensil","utilisation","utility","utilization","vacation","vaccine","vacuum","vagrant","valance","valentine","validate","validity","valley","valuable","value","vampire","van","vanadyl","vane","vanilla","vanity","variability","variable","variant","variation","variety","vascular","vase","vault","vaulting","veal","vector","vegetable","vegetarian","vegetarianism","vegetation","vehicle","veil","vein","veldt","vellum","velocity","velodrome","velvet","vendor","veneer","vengeance","venison","venom","venti","venture","venue","veranda","verb","verdict","verification","vermicelli","vernacular","verse","version","vertigo","verve","vessel","vest","vestment","vet","veteran","veterinarian","veto","viability","vibraphone","vibration","vibrissae","vice","vicinity","victim","victory","video","view","viewer","vignette","villa","village","vine","vinegar","vineyard","vintage","vintner","vinyl","viola","violation","violence","violet","violin","virtue","virus","visa","viscose","vise","vision","visit","visitor","visor","vista","visual","vitality","vitamin","vitro","vivo","vogue","voice","void","vol","volatility","volcano","volleyball","volume","volunteer","volunteering","vote","voter","voting","voyage","vulture","wafer","waffle","wage","wagon","waist","waistband","wait","waiter","waiting","waitress","waiver","wake","walk","walker","walking","walkway","wall","wallaby","wallet","walnut","walrus","wampum","wannabe","want","war","warden","wardrobe","warfare","warlock","warlord","warm-up","warming","warmth","warning","warrant","warren","warrior","wasabi","wash","washbasin","washcloth","washer","washtub","wasp","waste","wastebasket","wasting","watch","watcher","watchmaker","water","waterbed","watercress","waterfall","waterfront","watermelon","waterskiing","waterspout","waterwheel","wave","waveform","wax","way","weakness","wealth","weapon","wear","weasel","weather","web","webinar","webmail","webpage","website","wedding","wedge","weeder","weedkiller","week","weekend","weekender","weight","weird","welcome","welfare","well","well-being","west","western","wet-bar","wetland","wetsuit","whack","whale","wharf","wheat","wheel","whelp","whey","whip","whirlpool","whirlwind","whisker","whisper","whistle","whole","wholesale","wholesaler","whorl","wick","widget","widow","width","wife","wifi","wild","wildebeest","wilderness","wildlife","will","willingness","willow","win","wind","wind-chime","windage","window","windscreen","windshield","winery","wing","wingman","wingtip","wink","winner","winter","wire","wiretap","wiring","wisdom","wiseguy","wish","wisteria","wit","witch","witch-hunt","withdrawal","witness","wok","wolf","woman","wombat","wonder","wont","wood","woodchuck","woodland","woodshed","woodwind","wool","woolens","word","wording","work","workbench","worker","workforce","workhorse","working","workout","workplace","workshop","world","worm","worry","worship","worshiper","worth","wound","wrap","wraparound","wrapper","wrapping","wreck","wrecker","wren","wrench","wrestler","wriggler","wrinkle","wrist","writer","writing","wrong","xylophone","yacht","yahoo","yak","yam","yang","yard","yarmulke","yarn","yawl","year","yeast","yellowjacket","yesterday","yew","yin","yoga","yogurt","yoke","yolk","young","youngster","yourself","youth","yoyo","yurt","zampone","zebra","zebrafish","zen","zephyr","zero","ziggurat","zinc","zipper","zither","zombie","zone","zoo","zoologist","zoology","zoot-suit","zucchini"],s4t=["a","abaft","aboard","about","above","absent","across","afore","after","against","along","alongside","amid","amidst","among","amongst","an","anenst","anti","apropos","apud","around","as","aside","astride","at","athwart","atop","barring","before","behind","below","beneath","beside","besides","between","beyond","but","by","circa","concerning","considering","despite","down","during","except","excepting","excluding","failing","following","for","forenenst","from","given","in","including","inside","into","lest","like","mid","midst","minus","modulo","near","next","notwithstanding","of","off","on","onto","opposite","out","outside","over","pace","past","per","plus","pro","qua","regarding","round","sans","save","since","than","the","through","throughout","till","times","to","toward","towards","under","underneath","unlike","until","unto","up","upon","versus","via","vice","with","within","without","worth"],a4t=["abandon","abase","abate","abbreviate","abdicate","abduct","abet","abhor","abide","abjure","abnegate","abolish","abominate","abort","abound","abrade","abridge","abrogate","abscond","abseil","absent","absolve","absorb","abstain","abstract","abut","accede","accelerate","accent","accentuate","accept","access","accessorise","accessorize","acclaim","acclimate","acclimatise","acclimatize","accommodate","accompany","accomplish","accord","accost","account","accouter","accoutre","accredit","accrue","acculturate","accumulate","accuse","accustom","ace","ache","achieve","acidify","acknowledge","acquaint","acquiesce","acquire","acquit","act","action","activate","actualise","actualize","actuate","adapt","add","addle","address","adduce","adhere","adjoin","adjourn","adjudge","adjudicate","adjure","adjust","administer","admire","admit","admonish","adopt","adore","adorn","adsorb","adulterate","adumbrate","advance","advantage","advertise","advise","advocate","aerate","affect","affiliate","affirm","affix","afflict","afford","afforest","affront","age","agglomerate","aggravate","aggregate","agitate","agonise","agonize","agree","aid","ail","aim","air","airbrush","airdrop","airfreight","airlift","alarm","alert","alienate","alight","align","allay","allege","alleviate","allocate","allot","allow","alloy","allude","ally","alphabetise","alphabetize","alter","alternate","amalgamate","amass","amaze","amble","ambush","ameliorate","amend","amortise","amortize","amount","amplify","amputate","amuse","anaesthetise","anaesthetize","analyse","anchor","anesthetize","anger","angle","anglicise","anglicize","animate","anneal","annex","annihilate","annotate","announce","annoy","annul","anodise","anodize","anoint","anonymise","anonymize","answer","antagonise","antagonize","antedate","anthologise","anthologize","anticipate","ape","apologise","apologize","apostrophise","apostrophize","appal","appall","appeal","appear","appease","append","appertain","applaud","apply","appoint","apportion","appraise","appreciate","apprehend","apprentice","apprise","approach","appropriate","approve","approximate","aquaplane","arbitrate","arc","arch","archive","argue","arise","arm","arraign","arrange","array","arrest","arrive","arrogate","art","articulate","ascend","ascertain","ascribe","ask","asphyxiate","aspirate","aspire","assail","assassinate","assault","assay","assemble","assent","assert","assess","assign","assimilate","assist","associate","assuage","assume","assure","asterisk","astonish","astound","atomise","atomize","atone","atrophy","attach","attack","attain","attempt","attend","attenuate","attest","attract","attribute","auction","audit","audition","augment","augur","authenticate","author","authorise","authorize","autograph","automate","autosave","autowind","avail","avenge","aver","average","avert","avoid","avow","await","awake","awaken","award","awe","ax","axe","baa","babble","baby","babysit","back","backcomb","backdate","backfill","backfire","backlight","backpack","backspace","backtrack","badger","baffle","bag","bail","bait","bake","balance","bale","ball","balloon","ballot","balls","bamboozle","ban","band","bandage","bandy","banish","bank","bankroll","bankrupt","banter","baptise","baptize","bar","barbecue","bare","bargain","barge","bark","barnstorm","barrack","barrel","barricade","barter","base","bash","bask","baste","bat","batch","bath","bathe","batten","batter","battle","baulk","bawl","bay","bayonet","be","beach","beam","bean","bear","beard","beat","beatbox","beatboxer","beatify","beautify","beckon","become","bedazzle","bedeck","bedevil","beef","beep","beetle","befall","befit","befog","befriend","beg","beget","beggar","begin","begrudge","beguile","behave","behold","behoove","behove","belabor","belabour","belay","belch","belie","believe","belittle","bellow","belly","bellyache","belong","belt","bemoan","bemuse","benchmark","bend","benefit","bequeath","berate","bereave","berth","beseech","beset","besiege","besmirch","bespatter","bespeak","best","bestir","bestow","bestride","bet","betake","betide","betoken","betray","better","bewail","beware","bewilder","bewitch","bias","bicker","bicycle","bid","bide","biff","bifurcate","big","bike","bilk","bill","billet","billow","bin","bind","binge","biodegrade","bird","bisect","bite","bitmap","bivouac","bivvy","blab","blabber","blacken","blackmail","blag","blame","blanch","blank","blanket","blare","blaspheme","blast","blather","blaze","blazon","bleach","bleat","bleed","bleep","blemish","blench","blend","bless","blight","blind","blindfold","blindfolded","blindside","blink","bliss","blister","blitz","bloat","block","blockade","blog","blood","bloom","bloop","blossom","blot","blow","blub","blubber","bludge","bludgeon","bluff","blunder","blunt","blur","blurt","blush","bluster","board","boast","bob","bobble","bode","bodge","bog","boggle","boil","bolster","bolt","bomb","bombard","bond","bonk","boo","boogie","book","bookmark","boom","boomerang","boost","boot","bootleg","bop","border","bore","born","borrow","boss","botch","bother","bottle","bottleful","bottom","bounce","bound","bow","bowdlerise","bowdlerize","bowl","bowlful","box","boycott","braai","brace","braces","bracket","brag","braid","brain","brainstorm","brainwash","braise","brake","branch","brand","brandish","brave","brawl","bray","brazen","breach","break","breakfast","breathalyse","breathalyze","breathe","breed","breeze","brew","bribe","brick","bridge","bridle","brief","brighten","brim","bring","bristle","broach","broadcast","broaden","broadside","broil","broker","brood","brook","browbeat","browse","bruise","bruit","brush","brutalise","brutalize","bubble","buck","bucket","bucketful","buckle","bud","buddy","budge","budget","buff","buffer","buffet","bug","build","bulge","bulk","bulldoze","bully","bum","bumble","bump","bunch","bundle","bungle","bunk","bunker","bunt","buoy","burble","burden","burgeon","burglarize","burgle","burn","burnish","burp","burrow","burst","bury","bus","bushwhack","busk","bust","bustle","busy","butcher","butt","butter","button","buttonhole","buttress","buy","buzz","buzzing","bypass","cable","cache","cackle","caddie","cadge","cage","cajole","cake","calcify","calculate","calibrate","call","calm","calve","camouflage","camp","campaign","can","canalise","canalize","cancel","cane","cannibalise","cannibalize","cannon","cannulate","canoe","canonise","canonize","canst","cant","canter","canvass","cap","caper","capitalise","capitalize","capitulate","capsize","captain","caption","captivate","capture","caramelise","caramelize","carbonise","carbonize","carburise","carburize","card","care","careen","career","caress","caricature","carjack","carol","carom","carouse","carp","carpet","carpool","carry","cart","cartwheel","carve","cascade","case","cash","cashier","casserole","cast","castigate","catalog","catalogue","catalyse","catalyze","catapult","catch","categorise","categorize","cater","caterwaul","catnap","caucus","caulk","cause","cauterise","cauterize","caution","cave","cavil","cavort","caw","cc","cease","cede","celebrate","cement","censor","censure","centralise","centralize","centre","certificate","certify","chafe","chaff","chain","chair","chalk","challenge","champ","champion","chance","change","channel","chant","chaperon","chaperone","char","characterise","characterize","charbroil","charge","chargesheet","chargrill","charm","chart","charter","chase","chasten","chastise","chat","chatter","chauffeur","cheapen","cheat","cheater","check","checkmate","cheek","cheep","cheer","cherish","chew","chicken","chide","chill","chillax","chime","chip","chirp","chisel","chivvy","chlorinate","choke","chomp","choose","chop","choreograph","chortle","chorus","christen","chromakey","chronicle","chuck","chuckle","chunder","chunter","churn","cinch","circle","circulate","circumnavigate","circumscribe","circumvent","cite","civilise","civilize","clack","claim","clam","clamber","clamor","clamour","clamp","clang","clank","clap","clarify","clash","clasp","class","classify","clatter","claw","clean","cleanse","clear","cleave","clench","clerk","click","climb","clinch","cling","clink","clinking","clip","cloak","clobber","clock","clog","clone","clonk","close","closet","clot","clothe","cloud","clout","clown","club","cluck","clue","clump","clunk","cluster","clutch","clutter","coach","coagulate","coalesce","coarsen","coast","coat","coax","cobble","cocoon","coddle","code","codify","coerce","coexist","cogitate","cohabit","cohere","coil","coin","coincide","collaborate","collapse","collar","collate","collect","collectivise","collectivize","collide","colligate","collocate","collude","colonise","colonize","colorize","colour","comb","combat","combine","combust","come","comfort","command","commandeer","commemorate","commence","commend","comment","commentate","commercialise","commercialize","commingle","commiserate","commission","commit","commune","communicate","commute","compact","compare","compartmentalise","compartmentalize","compel","compensate","compete","compile","complain","complement","complete","complicate","compliment","comply","comport","compose","compost","compound","comprehend","compress","comprise","compromise","compute","computerise","computerize","con","conceal","concede","conceive","concentrate","conceptualise","conceptualize","concern","concertina","conciliate","conclude","concoct","concrete","concur","concuss","condemn","condense","condescend","condition","condone","conduct","cone","confer","confess","confide","configure","confine","confirm","confiscate","conflate","conflict","conform","confound","confront","confuse","confute","congeal","congratulate","congregate","conjecture","conjoin","conjugate","conjure","conk","connect","connive","connote","conquer","conscientise","conscientize","conscript","consecrate","consent","conserve","consider","consign","consist","console","consolidate","consort","conspire","constitute","constrain","constrict","construct","construe","consult","consume","consummate","contact","contain","contaminate","contemplate","contend","content","contest","contextualise","contextualize","continue","contort","contract","contradict","contraindicate","contrast","contravene","contribute","contrive","control","controvert","convalesce","convene","converge","converse","convert","convey","convict","convince","convoke","convulse","coo","cook","cool","coop","cooperate","coordinate","cop","cope","coppice","copy","copyright","cordon","core","cork","corkscrew","corner","corral","correct","correlate","correspond","corrode","corrupt","coruscate","cosh","cosset","cost","cosy","cotton","couch","cough","counsel","count","countenance","counter","counteract","counterbalance","counterfeit","countermand","counterpoint","countersign","couple","courier","course","court","covenant","cover","covet","cow","cower","cozy","crackle","cradle","craft","cram","cramp","crane","crank","crate","crave","crawl","crayon","creak","creaking","cream","crease","create","credential","credit","creep","cremate","creolise","creolize","creosote","crest","crew","crib","crick","criminalise","criminalize","crimp","cringe","crinkle","cripple","crisp","criticise","criticize","critique","croak","crochet","crook","croon","crop","cross","crouch","crow","crowd","crown","cruise","crumble","crumple","crunch","crusade","crush","cry","crystallise","crystallize","cube","cuddle","cudgel","cue","cuff","cull","culminate","cultivate","culture","cup","curate","curb","curdle","cure","curl","curry","curse","curtail","curtain","curtsy","curve","cushion","cuss","customise","customize","cut","cwtch","cycle","dab","dabble","dally","dam","damage","damp","dampen","dance","dandle","dangle","dare","darken","darn","dart","dash","date","daub","daunt","dawdle","dawn","daydream","dazzle","deactivate","deaden","deadhead","deafen","deal","debar","debase","debate","debilitate","debit","debrief","debug","debunk","debut","decamp","decant","decay","deceive","decelerate","decentralise","decentralize","decide","decimalise","decimalize","decimate","decipher","deck","declaim","declare","declassify","decline","declutter","decode","decommission","decompose","decompress","deconsecrate","deconstruct","decontaminate","decontrol","decorate","decouple","decoy","decrease","decree","decriminalise","decriminalize","decry","decrypt","dedicate","deduce","deduct","deejay","deem","deepen","deface","defame","default","defeat","defect","defend","defer","defile","define","deflate","deflect","defog","defoliate","deforest","deform","defrag","defragment","defraud","defray","defrock","defrost","defuse","defy","degenerate","deglaze","degrade","degrease","dehumanise","dehumanize","dehydrate","deify","deign","delay","delegate","delete","deliberate","delight","delimit","delineate","deliquesce","deliver","delouse","delude","deluge","delve","demand","demarcate","demean","demerge","demilitarise","demilitarize","demineralise","demineralize","demist","demo","demob","demobilise","demobilize","democratise","democratize","demolish","demonise","demonize","demonstrate","demoralise","demoralize","demote","demotivate","demur","demystify","denationalise","denationalize","denigrate","denitrify","denominate","denote","denounce","dent","denude","deny","depart","depend","depersonalise","depersonalize","depict","deplane","deplete","deplore","deploy","depopulate","deport","depose","deposit","deprave","deprecate","depreciate","depress","depressurise","depressurize","deprive","depute","deputise","deputize","deracinate","derail","dereference","deregulate","deride","derive","derogate","descale","descend","describe","descry","desecrate","desegregate","deselect","desensitise","desensitize","desert","deserve","design","designate","desire","desist","deskill","desolate","despair","despise","despoil","destabilise","destabilize","destock","destroy","detach","detail","detain","detect","deter","deteriorate","determine","detest","dethrone","detonate","detour","detoxify","detract","detrain","devalue","devastate","develop","deviate","devise","devoice","devolve","devote","devour","diagnose","dial","dice","dicker","dictate","die","diet","differ","differentiate","diffract","diffuse","dig","digest","digitalise","digitalize","digitise","digitize","dignify","digress","dilate","dilute","diluted","dim","diminish","dimple","dine","ding","dip","diphthongise","diphthongize","direct","dirty","dis","disable","disabuse","disadvantage","disaffiliate","disafforest","disagree","disallow","disambiguate","disappear","disappoint","disapprove","disarm","disarrange","disassemble","disassociate","disavow","disband","disbar","disbelieve","disburse","discard","discern","discharge","discipline","disclaim","disclose","discolor","discolour","discomfit","discomfort","discompose","disconcert","disconnect","discontinue","discount","discourage","discourse","discover","discredit","discriminate","discuss","disdain","disembark","disembowel","disenfranchise","disengage","disentangle","disestablish","disgorge","disgrace","disguise","disgust","dish","dishearten","dishonor","dishonour","disillusion","disincentivise","disincentivize","disinfect","disinherit","disinhibit","disintegrate","disinter","disinvest","dislike","dislocate","dislodge","dismantle","dismay","dismember","dismiss","dismount","disobey","disorient","disorientate","disown","disparage","dispatch","dispel","dispense","disperse","displace","display","displease","disport","dispose","dispossess","disprove","dispute","disqualify","disregard","disrespect","disrobe","disrupt","dissect","dissemble","disseminate","dissent","dissimulate","dissipate","dissociate","dissolve","dissuade","distance","distend","distil","distill","distinguish","distort","distract","distress","distribute","distrust","disturb","disunite","ditch","dither","dive","diverge","diversify","divert","divest","divide","divine","divorce","divulge","divvy","do","dob","dock","doctor","document","dodge","doff","dog","dole","doll","dollarise","dollarize","domesticate","dominate","don","donate","doodle","doom","doorstep","dop","dope","dose","doss","dot","dote","double","doubt","douse","dovetail","down","downchange","downgrade","downlink","download","downplay","downshift","downsize","dowse","doze","draft","drag","dragoon","drain","dramatise","dramatize","drape","draught","draw","drawl","dread","dream","dredge","drench","dress","dribble","drift","drill","drink","drip","drive","drivel","drizzle","drone","drool","droop","drop","drown","drowse","drug","drum","dry","dub","duck","duckie","ducks","duel","duff","dull","dumb","dumbfound","dump","dunk","dunt","dupe","duplicate","dust","dwarf","dwell","dwindle","dye","dynamite","earmark","earn","earth","ease","eat","eavesdrop","ebb","echo","eclipse","economise","economize","eddy","edge","edify","edit","editorialise","editorialize","educate","efface","effect","effectuate","egg","eject","eke","elaborate","elapse","elbow","elect","electrify","electrocute","electroplate","elevate","elicit","elide","eliminate","elongate","elope","elucidate","elude","email","emanate","emancipate","embalm","embargo","embark","embarrass","embed","embellish","embezzle","embitter","emblazon","embody","embolden","emboss","embrace","embroider","embroil","emcee","emend","emerge","emigrate","emit","emote","empathise","empathize","emphasise","emphasize","employ","empower","empty","emulate","emulsify","enable","enact","encamp","encapsulate","encase","encash","enchant","encircle","enclose","encode","encompass","encounter","encourage","encroach","encrypt","encumber","end","endanger","endear","endeavor","endeavour","endorse","endow","endure","energise","energize","enervate","enfeeble","enfold","enforce","enfranchise","engage","engender","engineer","engorge","engrave","engross","engulf","enhance","enjoin","enjoy","enlarge","enlighten","enlist","enliven","enmesh","ennoble","enquire","enrage","enrapture","enrich","enrol","enroll","ensconce","enshrine","enshroud","ensnare","ensue","ensure","entail","entangle","enter","entertain","enthral","enthrall","enthrone","enthuse","entice","entitle","entomb","entrance","entrap","entreat","entrench","entrust","entwine","enumerate","enunciate","envelop","envisage","envision","envy","epitomise","epitomize","equal","equalise","equalize","equate","equip","equivocate","eradicate","erase","erode","err","erupt","escalate","escape","eschew","espouse","espy","essay","establish","esteem","estimate","etch","eulogise","eulogize","euthanise","euthanize","evacuate","evade","evaluate","evangelise","evangelize","evaporate","even","eventuate","evict","evidence","evince","eviscerate","evoke","evolve","exacerbate","exact","exaggerate","exalt","examine","exasperate","excavate","exceed","excel","except","excerpt","exchange","excise","excite","exclaim","exclude","excommunicate","excoriate","excrete","exculpate","excuse","execute","exemplify","exempt","exercise","exert","exeunt","exfoliate","exhale","exhaust","exhibit","exhilarate","exhort","exhume","exile","exist","exit","exonerate","exorcise","exorcize","expand","expatiate","expect","expectorate","expedite","expel","expend","experience","experiment","expiate","expire","explain","explicate","explode","exploit","explore","export","expose","expostulate","expound","express","expropriate","expunge","expurgate","extemporise","extemporize","extend","exterminate","externalise","externalize","extinguish","extirpate","extol","extort","extract","extradite","extrapolate","extricate","extrude","exude","exult","eye","eyeball","eyeglasses","fabricate","face","facilitate","factor","factorise","factorize","fade","faff","fail","faint","fake","fall","falsify","falter","familiarise","familiarize","fan","fancy","fantasise","fantasize","fare","farewell","farm","farrow","fascinate","fashion","fast","fasten","father","fathom","fatten","fault","favor","favour","fawn","fax","faze","fear","feast","feather","feature","federate","feed","feel","feign","feint","fell","feminise","feminize","fence","fend","ferment","ferret","ferry","fertilise","fertilize","fess","fester","festoon","fetch","fete","fetter","feud","fib","fictionalise","fictionalize","fiddle","fidget","field","fight","figure","filch","file","filibuster","fill","fillet","film","filter","finagle","finalise","finalize","finance","find","fine","finesse","fingerprint","finish","fire","firebomb","firm","fish","fishtail","fit","fix","fizz","fizzle","flag","flagellate","flail","flake","flame","flank","flap","flare","flash","flat","flatline","flatten","flatter","flaunt","flavour","flay","fleck","flee","fleece","flesh","flex","flick","flicker","flight","flinch","fling","flip","flirt","flit","float","flock","flog","flood","floodlight","floor","flop","floss","flounce","flounder","flour","flourish","flout","flow","flower","flub","fluctuate","fluff","flummox","flunk","flush","fluster","flutter","fly","foal","foam","fob","focalise","focalize","focus","fog","foil","foist","fold","follow","foment","fool","foot","forage","forbear","forbid","force","ford","forearm","forecast","foreclose","foregather","foreground","foresee","foreshadow","foreshorten","forestall","foretell","forewarn","forfeit","forfend","forgather","forge","forget","forgive","forgo","fork","form","formalise","formalize","format","formulate","forsake","forswear","fortify","forward","forwards","fossick","fossilise","fossilize","foster","foul","found","founder","fox","fracture","fragment","frame","franchise","frank","fraternise","fraternize","fray","freak","free","freelance","freeload","freestyle","freewheel","freeze","freight","frequent","freshen","fret","frighten","fringe","frisk","fritter","frizz","frizzle","frogmarch","frolic","front","frost","froth","frown","fruit","frustrate","fry","fudge","fuel","fulfil","fulfill","fulminate","fumble","fume","fumigate","function","fund","funk","funnel","furl","furlough","furnish","furrow","further","fuse","fuss","gab","gabble","gad","gag","gain","gainsay","gall","gallivant","gallop","galumph","galvanise","galvanize","gamble","gambol","gang","gape","garage","garden","gargle","garland","garner","garnish","garrison","garrote","garrotte","gas","gash","gasp","gatecrash","gather","gauge","gawk","gawp","gaze","gazump","gazunder","gear","gee","gel","geld","gen","generalise","generalize","generate","gentrify","genuflect","germinate","gerrymander","gestate","gesticulate","gesture","get","ghost","ghostwrite","gibber","gift","giggle","gild","ginger","gird","girdle","give","gladden","glamorise","glamorize","glance","glare","glass","glaze","gleam","glean","glide","glimmer","glimmering","glimpse","glint","glisten","glister","glitter","gloat","globalise","globalize","glom","glorify","glory","gloss","glow","glower","glue","glug","glut","gnash","gnaw","go","goad","gobble","goggle","goldbrick","goof","google","goose","gore","gorge","gossip","gouge","govern","grab","grace","grade","graduate","graft","grant","grapple","grasp","grass","grate","gratify","gravitate","graze","grease","green","greet","grey","grieve","grill","grimace","grin","grind","grip","gripe","grit","grizzle","groan","grok","groom","grouch","ground","group","grouse","grout","grovel","grow","growl","grub","grudge","grumble","grunt","guarantee","guard","guess","guest","guffaw","guide","guillotine","guilt","gulp","gum","gun","gurgle","gurn","gush","gussy","gust","gut","gutter","guzzle","gybe","gyrate","hack","haemorrhage","haggle","hail","hallmark","halloo","hallucinate","halt","halve","ham","hammer","hamper","hamstring","hand","handcuff","handicap","handle","hang","hanker","happen","harangue","harass","harbor","harbour","harden","hare","hark","harm","harmonise","harmonize","harness","harp","harpoon","harrow","harrumph","harry","harvest","hash","hassle","hasten","hatch","hate","haul","haunt","have","haw","hawk","hazard","haze","head","headbutt","headhunt","headline","heal","heap","hear","hearken","hearten","heat","heave","heckle","hector","hedge","heed","heel","heft","heighten","heist","help","hem","hemorrhage","herald","herd","hesitate","hew","hex","hibernate","hiccough","hiccup","hide","hie","highball","highlight","hightail","hijack","hike","hinder","hinge","hint","hire","hiss","hit","hitch","hitchhike","hive","hoard","hoax","hobble","hobnob","hock","hog","hoick","hoist","hold","hole","holiday","holler","hollow","holster","home","homeschool","homestead","hone","honeymoon","honk","honour","hoodwink","hoof","hook","hoon","hoot","hoover","hop","hope","horn","horrify","horse","horsewhip","hose","hosepipe","hospitalise","hospitalize","host","hot","hotfoot","hound","house","hover","howl","huddle","huff","hug","hull","hum","humanise","humanize","humble","humiliate","humour","hunch","hunger","hunker","hunt","hurdle","hurl","hurry","hurt","hurtle","husband","hush","husk","hustle","hybridise","hybridize","hydrate","hydroplane","hype","hyperventilate","hyphenate","hypnotise","hypnotize","hypothesise","hypothesize","ice","iconify","idealise","idealize","ideate","identify","idle","idolise","idolize","ignite","ignore","illuminate","illumine","illustrate","imagine","imagineer","imbibe","imbue","imitate","immerse","immigrate","immobilise","immobilize","immolate","immortalise","immortalize","immunise","immunize","immure","impact","impair","impale","impanel","impart","impeach","impede","impel","imperil","impersonate","impinge","implant","implement","implicate","implode","implore","imply","import","importune","impose","impound","impoverish","impress","imprint","imprison","improve","improvise","impugn","inactivate","inaugurate","incapacitate","incarcerate","incarnate","incense","incentivise","incentivize","inch","incinerate","incise","incite","incline","include","incommode","inconvenience","incorporate","increase","incriminate","incubate","inculcate","incur","indemnify","indent","index","indicate","indict","individualise","individualize","individuate","indoctrinate","induce","induct","indulge","industrialise","industrialize","infantilise","infantilize","infect","infer","infest","infill","infiltrate","inflame","inflate","inflect","inflict","influence","inform","infringe","infuriate","infuse","ingest","ingratiate","inhabit","inhale","inhere","inherit","inhibit","initial","initialise","initialize","initiate","inject","injure","ink","inlay","innovate","inoculate","input","inscribe","insert","inset","insinuate","insist","inspect","inspire","install","instance","instigate","instil","instill","institute","institutionalise","institutionalize","instruct","insulate","insult","insure","integrate","intend","intensify","inter","interact","intercede","intercept","interchange","interconnect","intercut","interest","interface","interfere","interject","interlace","interleave","interlink","interlock","intermarry","intermesh","intermingle","intermix","intern","internalise","internalize","internationalise","internationalize","interpenetrate","interpolate","interpose","interpret","interrelate","interrogate","interrupt","intersect","intersperse","intertwine","intervene","interview","interweave","interwork","intimate","intimidate","intone","intoxicate","intrigue","introduce","intrude","intubate","intuit","inundate","inure","invade","invalid","invalidate","inveigh","inveigle","invent","inventory","invert","invest","investigate","invigilate","invigorate","invite","invoice","invoke","involve","ionise","ionize","irk","iron","irradiate","irrigate","irritate","irrupt","isolate","issue","italicise","italicize","itch","itemise","itemize","iterate","jab","jabber","jack","jackknife","jail","jam","jangle","jar","jaw","jaywalk","jazz","jeer","jell","jeopardise","jeopardize","jest","jet","jettison","jib","jibe","jiggle","jilt","jingle","jink","jinx","jive","jockey","jog","joggle","join","joint","joke","jol","jolly","jolt","josh","jostle","jot","journey","joust","judder","judge","juggle","juice","jumble","jump","junk","justify","jut","juxtapose","keel","keelhaul","keen","keep","ken","key","keyboard","kibitz","kick","kid","kindle","kip","kiss","kit","kite","klap","kludge","knacker","knead","knee","kneecap","kneel","knife","knight","knit","knock","knot","know","knuckle","kowtow","kvetch","label","labour","lace","lacerate","lack","lacquer","ladder","ladle","lag","lam","lamb","lambast","lambaste","lament","lamp","lampoon","lance","land","lands","landscape","languish","lap","lapse","lard","large","lark","lash","lasso","last","latch","lather","laud","laugh","launch","launder","lavish","lay","layer","laze","leach","lead","leaf","leaflet","leak","lean","leap","leapfrog","learn","lease","leash","leave","leaven","lecture","leer","leg","legalise","legalize","legislate","legitimise","legitimize","lend","lengthen","lessen","let","letter","letterbox","level","lever","leverage","levitate","levy","liaise","libel","liberalise","liberalize","liberate","license","lick","lie","lift","ligate","light","lighten","like","liken","limber","lime","limit","limp","line","linger","link","lionise","lionize","liquefy","liquidate","liquidise","liquidize","lisp","list","listen","litigate","litter","live","liven","load","loads","loaf","loan","loathe","lob","lobby","lobotomise","lobotomize","localise","localize","locate","lock","lodge","loft","log","loiter","loll","lollop","long","look","looks","loom","loop","loose","loosen","loot","lop","lope","lord","lose","lounge","lour","louse","love","low","lowball","lower","lubricate","luck","lug","lull","lumber","lump","lunch","lunge","lurch","lure","lurk","luxuriate","macerate","machine","madden","magic","magnetise","magnetize","magnify","mail","maim","mainline","mainstream","maintain","major","make","malfunction","malign","malinger","maltreat","man","manacle","manage","mandate","mangle","manhandle","manicure","manifest","manipulate","manoeuvre","mantle","manufacture","manure","map","mar","march","marginalise","marginalize","marinate","mark","market","maroon","marry","marshal","martyr","marvel","masculinise","masculinize","mash","mask","masquerade","mass","massacre","massage","master","mastermind","masticate","match","materialise","materialize","matriculate","matter","mature","maul","maunder","max","maximise","maximize","mean","meander","measure","mechanise","mechanize","medal","meddle","mediate","medicate","meditate","meet","meld","mellow","melt","memorialise","memorialize","memorise","memorize","menace","mend","mention","meow","mercerise","mercerize","merchandise","merge","merit","mesh","mesmerise","mesmerize","mess","message","metabolise","metabolize","metamorphose","mete","meter","methinks","mew","mewl","miaow","microblog","microchip","micromanage","microwave","micturate","migrate","militarise","militarize","militate","milk","mill","mime","mimic","mince","mind","mine","mingle","miniaturise","miniaturize","minimise","minimize","minister","minor","mint","minute","mirror","misapply","misappropriate","misbehave","miscalculate","miscast","misconceive","misconstrue","miscount","misdiagnose","misdial","misdirect","misfile","misfire","misgovern","mishandle","mishear","mishit","misinform","misinterpret","misjudge","miskey","mislay","mislead","mismanage","mismatch","misname","misplace","misplay","mispronounce","misquote","misread","misreport","misrepresent","miss","mission","misspell","misspend","mist","mistake","mistime","mistreat","mistrust","misunderstand","misuse","mitigate","mitre","mix","moan","mob","mobilise","mobilize","mock","mod","model","moderate","modernise","modernize","modify","modulate","moisten","moisturise","moisturize","mold","molder","mollify","mollycoddle","molt","monitor","monopolise","monopolize","moo","mooch","moon","moonlight","moonwalk","moor","moot","mop","mope","moralise","moralize","morph","mortar","mortgage","mortify","mosey","mosh","mothball","mother","motion","motivate","motor","mould","moulder","moult","mount","mourn","mouse","mouth","move","movies","mow","muck","muddle","muddy","muffle","mug","mulch","mull","multicast","multiply","multitask","mumble","mumbling","mummify","munch","murmur","murmuring","murmurings","muscle","muse","mushroom","muss","muster","mutate","mute","mutilate","mutiny","mutter","muzzle","mystify","nab","nag","nail","name","namecheck","nap","narrate","narrow","narrowcast","nasalise","nasalize","nationalise","nationalize","natter","naturalise","naturalize","nauseate","navigate","near","nearer","nearest","neaten","necessitate","neck","necklace","need","needle","negate","negative","neglect","negotiate","neigh","nerve","nest","nestle","net","nettle","network","neuter","neutralise","neutralize","nibble","nick","nickname","nitrify","nix","nobble","nod","nominalize","nominate","norm","normalise","normalize","nose","nosedive","nosh","notarise","notarize","notch","note","notice","notify","nourish","nudge","nuke","nullify","numb","number","nurse","nurture","nut","nuzzle","obey","obfuscate","object","objectify","oblige","obliterate","obscure","observe","obsess","obstruct","obtain","obtrude","obviate","occasion","occlude","occupy","occur","off","offend","offer","officiate","offload","offset","offshore","ogle","oil","okay","omit","ooze","open","operate","opine","oppose","oppress","opt","optimise","optimize","option","orbit","orchestrate","ordain","order","organise","organize","orient","orientate","originate","ornament","orphan","oscillate","ossify","ostracise","ostracize","oust","out","outbid","outclass","outdistance","outdo","outface","outfit","outflank","outfox","outgrow","outgun","outlast","outlaw","outline","outlive","outmaneuver","outmanoeuvre","outnumber","outpace","outperform","outplay","outpoint","output","outrage","outrank","outrun","outsell","outshine","outsmart","outsource","outstay","outstrip","outvote","outweigh","outwit","overachieve","overact","overawe","overbalance","overbook","overburden","overcharge","overcome","overcompensate","overcook","overdevelop","overdo","overdose","overdraw","overdub","overeat","overemphasize","overestimate","overexpose","overextend","overfeed","overflow","overfly","overgeneralise","overgeneralize","overgraze","overhang","overhaul","overhear","overheat","overindulge","overlap","overlay","overlie","overload","overlook","overpay","overplay","overpower","overprint","overproduce","overrate","overreach","overreact","override","overrule","overrun","oversee","oversell","overshadow","overshoot","oversimplify","oversleep","overspend","overstate","overstay","overstep","overstock","overstretch","overtake","overtax","overthrow","overtrain","overturn","overuse","overvalue","overwhelm","overwinter","overwork","overwrite","owe","own","oxidise","oxidize","oxygenate","pace","pacify","pack","package","packetise","packetize","pad","paddle","padlock","page","paginate","pailful","pain","paint","pair","pal","palatalise","palatalize","pale","pall","palliate","palm","palpate","palpitate","pamper","pan","pander","panel","panhandle","panic","pant","paper","parachute","parade","parallel","paralyse","paralyze","paraphrase","parboil","parcel","parch","pardon","pare","park","parlay","parley","parody","parole","parrot","parry","parse","part","partake","participate","particularise","particularize","partition","partner","party","pass","passivise","passivize","paste","pasteurise","pasteurize","pasture","pat","patch","patent","patrol","patronise","patronize","patter","pattern","pause","pave","paw","pawn","pay","peak","peal","pedal","peddle","pedestrianise","pedestrianize","peek","peel","peep","peer","peg","pelt","pen","penalise","penalize","pencil","pension","people","pep","pepper","perambulate","perceive","perch","percolate","perfect","perforate","perform","perfume","perish","perjure","perk","perm","permeate","permit","perpetrate","perpetuate","perplex","persecute","persevere","persist","personalise","personalize","personify","perspire","persuade","pertain","perturb","peruse","pervade","pervert","pester","pet","peter","petition","petrify","phase","philosophise","philosophize","phone","photocopy","photograph","photoshop","photosynthesise","photosynthesize","phrase","pick","picket","pickle","picnic","picture","picturise","picturize","piddle","piece","pierce","pig","pigeonhole","piggyback","pike","pile","pilfer","pill","pillage","pillory","pillow","pilot","pin","pinch","pine","ping","pinion","pink","pinpoint","pioneer","pip","pipe","pique","pirate","pirouette","pit","pitch","pity","pivot","pixelate","pixellate","placate","place","plagiarise","plagiarize","plague","plait","plan","plane","plant","plaster","plasticise","plasticize","plate","plateau","play","plead","please","pledge","plight","plod","plonk","plop","plot","plough","pluck","plug","plumb","plummet","plump","plunder","plunge","plunk","pluralise","pluralize","ply","poach","pocket","point","poise","poison","poke","polarise","polarize","pole","poleax","poleaxe","police","polish","politicise","politicize","poll","pollard","pollinate","pollute","polymerise","polymerize","ponce","ponder","pong","pontificate","pony","pooh","pool","pootle","pop","popularise","popularize","populate","pore","port","portend","portion","portray","pose","posit","position","possess","posset","post","postmark","postpone","postulate","posture","pot","potter","pounce","pound","pour","pout","powder","power","practice","practise","praise","praises","prance","prang","prate","prattle","pray","preach","precede","precipitate","precis","preclude","predate","predecease","predetermine","predicate","predict","predispose","predominate","preen","preface","prefer","prefigure","prefix","preheat","prejudge","prejudice","preload","premaster","premiere","preoccupy","prep","prepare","prepone","preregister","presage","prescind","prescribe","preselect","presell","present","preserve","preset","preside","press","pressure","pressurise","pressurize","presume","presuppose","pretend","pretest","prettify","prevail","prevaricate","prevent","preview","prey","price","prickle","pride","prime","primp","print","prioritise","prioritize","prise","privatise","privatize","privilege","prize","probate","probe","proceed","process","proclaim","procrastinate","procreate","proctor","procure","prod","produce","profane","profess","professionalise","professionalize","proffer","profile","profit","program","programme","progress","prohibit","project","proliferate","prolong","promenade","promise","promote","prompt","promulgate","pronounce","proof","proofread","prop","propagandise","propagandize","propagate","propel","prophesy","propitiate","propose","proposition","propound","proscribe","prosecute","proselytise","proselytize","prospect","prosper","prostrate","protect","protest","protrude","prove","provide","provision","provoke","prowl","prune","pry","psych","psychoanalyse","publicise","publicize","publish","pucker","puff","pull","pullulate","pulp","pulsate","pulse","pulverise","pulverize","pummel","pump","pun","punch","punctuate","puncture","punish","punt","pupate","purchase","purge","purify","purl","purloin","purport","purr","purse","pursue","purvey","push","pussyfoot","put","putrefy","putt","putter","puzzle","quack","quadruple","quaff","quail","quake","qualify","quantify","quarantine","quarrel","quarry","quarter","quarterback","quash","quaver","quell","quench","query","quest","question","queue","quibble","quicken","quiet","quieten","quintuple","quip","quirk","quit","quiver","quiz","quote","quoth","rabbit","race","rack","radiate","radicalise","radicalize","radio","raffle","rag","rage","raid","rail","railroad","rain","raise","rake","rally","ram","ramble","ramp","rampage","randomise","randomize","range","rank","rankle","ransack","ransom","rant","rap","rappel","rasp","rasterise","rasterize","rat","ratchet","rate","ratify","ration","rationalise","rationalize","rattle","ravage","rave","ravel","ravish","raze","razz","reach","reacquaint","react","reactivate","read","readdress","readies","readjust","readmit","ready","reaffirm","realign","realise","realize","reallocate","ream","reanimate","reap","reappear","reapply","reappoint","reappraise","rear","rearm","rearrange","reason","reassemble","reassert","reassess","reassign","reassure","reawaken","rebel","reboot","reborn","rebound","rebrand","rebuff","rebuild","rebuke","rebut","recall","recant","recap","recapitulate","recapture","recast","recede","receive","recess","recharge","reciprocate","recite","reckon","reclaim","reclassify","recline","recognise","recognize","recoil","recollect","recommence","recommend","recompense","reconcile","recondition","reconfigure","reconfirm","reconnect","reconnoitre","reconquer","reconsider","reconstitute","reconstruct","reconvene","record","recount","recoup","recover","recreate","recrudesce","recruit","rectify","recuperate","recur","recycle","redact","redden","redecorate","redeem","redefine","redeploy","redesign","redevelop","redial","redirect","rediscover","redistribute","redistrict","redo","redouble","redound","redraft","redraw","redress","reduce","reduplicate","reef","reek","reel","ref","refer","referee","reference","refill","refinance","refine","refit","reflate","reflect","refloat","refocus","reform","reformat","reformulate","refract","refrain","refresh","refrigerate","refuel","refund","refurbish","refuse","refute","regain","regale","regard","regenerate","register","regress","regret","regroup","regularise","regularize","regulate","regurgitate","rehabilitate","rehash","rehear","rehearse","reheat","rehome","rehouse","reign","reignite","reimburse","rein","reincarnate","reinforce","reinstate","reinterpret","reintroduce","reinvent","reinvest","reinvigorate","reissue","reiterate","reject","rejig","rejigger","rejoice","rejoin","rejuvenate","rekindle","relapse","relate","relaunch","relax","relay","release","relegate","relent","relieve","relinquish","relish","relive","reload","relocate","rely","remain","remainder","remake","remand","remap","remark","remarry","remaster","remediate","remedy","remember","remind","reminisce","remit","remix","remodel","remonstrate","remortgage","remould","remount","remove","remunerate","rename","rend","render","rendezvous","renege","renew","renounce","renovate","rent","reoccur","reoffend","reopen","reorder","reorganise","reorganize","reorient","repackage","repair","repatriate","repay","repeal","repeat","repel","repent","rephrase","replace","replay","replenish","replicate","reply","report","repose","repossess","represent","repress","reprieve","reprimand","reprint","reproach","reprocess","reproduce","reprove","repudiate","repulse","repurpose","request","require","requisition","requite","rerun","reschedule","rescind","rescue","research","researches","resect","resell","resemble","resent","reserve","reset","resettle","reshape","reshuffle","reside","resign","resist","resit","resize","reskill","resolve","resonate","resort","resound","resource","respect","respire","respond","respray","rest","restart","restate","restock","restore","restrain","restrict","restring","restructure","result","resume","resupply","resurface","resurrect","resuscitate","retail","retain","retake","retaliate","retch","retell","retest","rethink","retire","retool","retort","retouch","retrace","retract","retrain","retreat","retrench","retrieve","retrofit","retry","return","reunify","reunite","reuse","rev","revalue","revamp","reveal","revel","revenge","reverberate","revere","reverse","revert","review","revile","revise","revisit","revitalise","revitalize","revive","revivify","revoke","revolt","revolutionise","revolutionize","revolve","reward","rewind","rewire","reword","rework","rewrite","rhapsodise","rhapsodize","rhyme","rib","rick","ricochet","rid","riddle","ride","ridge","ridicule","riffle","rifle","rig","right","rightsize","rile","rim","ring","rinse","riot","rip","ripen","riposte","ripple","rise","risk","ritualise","ritualize","rival","rivet","roam","roar","roast","rob","robe","rock","rocket","roger","roll","romance","romanticise","romanticize","romp","roof","room","roost","root","rope","rosin","roster","rot","rotate","rouge","rough","roughen","roughhouse","round","rouse","roust","rout","route","rove","row","rub","rubberneck","rubbish","ruck","rue","ruffle","ruin","ruins","rule","rumble","ruminate","rummage","rumor","rumour","rumple","run","rupture","rush","rust","rustle","sabotage","sack","sacrifice","sadden","saddle","safeguard","sag","sail","salaam","salivate","sally","salt","salute","salvage","salve","sample","sanctify","sanction","sand","sandbag","sandblast","sandpaper","sandwich","sanitise","sanitize","sap","sashay","sass","sate","satiate","satirise","satirize","satisfy","saturate","saunter","savage","save","savor","savour","saw","say","scald","scale","scallop","scalp","scamper","scan","scandalise","scandalize","scapegoat","scar","scare","scarf","scarify","scarper","scatter","scattering","scavenge","scent","schedule","schematise","schematize","scheme","schlep","schlepp","schmooze","school","schtup","schuss","scoff","scold","scoop","scoot","scope","scorch","score","scorn","scotch","scour","scourge","scout","scowl","scrabble","scram","scramble","scrap","scrape","scratch","scrawl","scream","screech","screen","screw","scribble","scrimp","script","scroll","scrounge","scrub","scrummage","scrunch","scruple","scrutinise","scrutinize","scud","scuff","scuffle","scull","sculpt","scupper","scurry","scuttle","scythe","seal","sealift","sear","search","season","seat","secede","seclude","second","secrete","section","secularise","secularize","secure","sedate","see","seed","seek","seep","seethe","segment","segregate","segue","seize","select","sell","sellotape","semaphore","send","sensationalise","sensationalize","sense","sensitise","sensitize","sentence","sentimentalise","sentimentalize","separate","sequence","sequester","sequestrate","serenade","serialise","serialize","sermonise","sermonize","serve","service","set","settle","sever","sew","shack","shackle","shade","shadow","shaft","shake","shalt","sham","shamble","shame","shampoo","shanghai","shape","share","sharpen","shatter","shave","shear","sheathe","shed","sheer","shell","shellac","shelter","shelve","shepherd","shield","shift","shimmer","shimmy","shin","shine","shinny","ship","shipwreck","shirk","shiver","shock","shoe","shoehorn","shoo","shoot","shop","shoplift","shore","short","shorten","shortlist","shoulder","shout","shove","shovel","show","showboat","showcase","shower","shred","shriek","shrill","shrink","shrivel","shroom","shroud","shrug","shuck","shudder","shuffle","shun","shunt","shush","shut","shuttle","shy","sic","sick","sicken","side","sideline","sidestep","sideswipe","sidetrack","sidle","sieve","sift","sigh","sight","sightsee","sign","signal","signify","signpost","silence","silhouette","silt","silver","simmer","simper","simplify","simulate","simulcast","sin","sing","singe","single","sink","sip","siphon","sire","sit","site","situate","size","sizzle","skate","skateboard","skedaddle","sketch","skew","skewer","ski","skid","skim","skimp","skin","skip","skipper","skirmish","skirt","skitter","skive","skivvy","skulk","sky","skyjack","skyrocket","slack","slacken","slake","slam","slander","slap","slash","slate","slather","sledge","sleek","sleep","sleepwalk","sleet","slew","slice","slick","slide","slight","slim","sling","slink","slip","slit","slither","slob","slobber","slog","slop","slope","slosh","slot","slouch","slough","slow","slug","sluice","slum","slumber","slump","slur","slurp","smart","smarten","smash","smear","smell","smelt","smile","smirk","smite","smoke","smooch","smoodge","smooth","smother","smoulder","smudge","smuggle","snack","snaffle","snag","snaggle","snake","snap","snare","snarf","snarl","sneak","sneer","sneeze","snicker","sniff","sniffle","snip","snipe","snitch","snivel","snooker","snoop","snooper","snooze","snore","snorkel","snort","snow","snowball","snowplough","snowplow","snub","snuffle","snuffling","snuggle","soak","soap","soar","sober","socialise","socialize","sock","sod","soften","soil","sojourn","solace","solder","soldier","sole","solemnise","solemnize","solicit","solidify","soliloquize","solve","somersault","soothe","sorrow","sort","sough","sound","soundproof","soup","sour","source","sow","space","span","spangle","spar","spare","spark","sparkle","spatter","spattering","spawn","spay","speak","spear","spearhead","spec","specialise","specialize","specify","spectacles","spectate","speculate","speed","spell","spellcheck","spend","spew","spice","spiff","spike","spill","spin","spiral","spirit","spit","spite","splash","splatter","splay","splice","splinter","split","splosh","splurge","splutter","spoil","sponge","sponsor","spoof","spook","spool","spoon","sport","sports","spot","spotlight","spout","sprain","sprawl","spray","spread","spring","springboard","sprinkle","sprint","spritz","sprout","spruce","spur","spurn","spurt","sputter","spy","squabble","squall","squander","square","squash","squat","squawk","squeak","squeal","squeeze","squelch","squint","squirm","squirrel","squirt","squish","stab","stabilise","stabilize","stable","stables","stack","staff","stage","stagger","stagnate","stain","stake","stalk","stall","stammer","stamp","stampede","stanch","stand","standardise","standardize","staple","star","starch","stare","start","startle","starve","stash","state","statement","station","staunch","stave","stay","steady","steal","steam","steamroller","steel","steep","steepen","steer","stem","stencil","step","stereotype","sterilise","sterilize","stew","stick","stickybeak","stiff","stiffen","stifle","stigmatise","stigmatize","still","stimulate","sting","stinger","stink","stint","stipple","stipulate","stir","stitch","stock","stockpile","stoke","stomach","stomp","stone","stonewall","stoop","stop","stopper","store","storm","storyboard","stow","straddle","strafe","straggle","straighten","strain","strand","strangle","strap","stratify","stravage","stravaig","stray","streak","stream","streamline","strengthen","stress","stretch","stretcher","strew","stride","strike","string","strip","strive","stroll","structure","struggle","strum","strut","stub","stud","study","stuff","stultify","stumble","stump","stun","stunt","stupefy","stutter","style","stymie","sub","subcontract","subdivide","subdue","subedit","subject","sublet","sublimate","submerge","submit","subordinate","suborn","subpoena","subscribe","subside","subsidise","subsidize","subsist","substantiate","substitute","subsume","subtend","subtitle","subtract","subvert","succeed","succor","succour","succumb","suckle","suction","sue","suffer","suffice","suffocate","suffuse","sugar","suggest","suit","sulk","sulks","sully","sum","summarise","summarize","summon","summons","sun","sunbathe","sunder","sunset","sup","superimpose","superintend","superpose","supersede","supersize","supersized","supervene","supervise","supplant","supplement","supply","support","suppose","suppress","suppurate","surcharge","surf","surface","surge","surmise","surmount","surpass","surprise","surrender","surround","survey","survive","suspect","suspend","suspenders","suss","sustain","suture","swab","swaddle","swagger","swamp","swan","swank","swap","swarm","swat","swath","swathe","sway","swear","sweat","sweep","sweeps","sweeten","swell","swelter","swerve","swig","swill","swim","swindle","swing","swipe","swirl","swish","switch","swivel","swoon","swoop","swoosh","swot","symbolise","symbolize","sympathise","sympathize","symptomize","synchronise","synchronize","syndicate","synthesise","synthesize","syringe","systematise","systematize","tab","table","tabulate","tack","tackle","tag","tail","tailgate","tailor","taint","take","talk","tally","tame","tamp","tamper","tan","tangle","tango","tank","tankful","tantalise","tantalize","tap","tape","taper","tar","target","tarmac","tarnish","tarry","tart","task","taste","tattle","tattoo","taunt","tauten","tax","taxi","taxicab","teach","team","tear","tease","tee","teem","teeter","teethe","telecast","telecommute","teleconference","telegraph","telemeter","teleoperate","telephone","teleport","telescope","televise","telex","tell","telnet","temp","temper","temporise","temporize","tempt","tenant","tend","tender","tenderise","tenderize","tense","tension","tergiversate","term","terminate","terraform","terrify","terrorise","terrorize","test","testify","tether","text","thank","thatch","thaw","theorise","theorize","thicken","thin","think","thirst","thrash","thread","threaten","thresh","thrill","thrive","throb","throbbing","throng","throttle","throw","thud","thumb","thump","thunder","thwack","thwart","tick","ticket","tickle","tide","tidy","tie","tighten","tile","till","tilt","time","timetable","tinge","tingle","tingling","tinker","tinkling","tint","tip","tippex","tipple","tiptoe","tire","titillate","titivate","title","titrate","titter","toady","toast","toboggan","toddle","toe","tog","toggle","toil","tolerate","toll","tone","tongue","tonify","tool","toot","tootle","top","topple","torch","torment","torpedo","toss","tot","total","tote","totter","touch","tough","toughen","tour","tousle","tout","tow","towel","tower","toy","trace","track","trade","traduce","traffic","trail","train","traipse","trammel","trample","trampoline","tranquilize","tranquillize","transact","transcend","transcribe","transfer","transfigure","transfix","transform","transfuse","transgress","transit","translate","transliterate","transmit","transmogrify","transmute","transpire","transplant","transport","transpose","trap","trash","traumatise","traumatize","travel","traverse","trawl","tread","treasure","treat","treble","trek","tremble","trembling","trepan","trespass","trial","trick","trickle","trifle","trigger","trill","trim","trip","triple","triumph","trivialise","trivialize","troll","tromp","troop","trot","trouble","troubleshoot","trounce","trouser","truant","truck","trudge","trump","trumpet","truncate","trundle","truss","trust","try","tuck","tug","tugboat","tumble","tune","tunnel","turbocharge","turf","turn","tussle","tut","tutor","twang","tweak","tweet","twiddle","twig","twin","twine","twinkle","twirl","twist","twitch","twitter","twittering","type","typecast","typeset","typify","tyrannise","tyrannize","ulcerate","ululate","ump","umpire","unbalance","unban","unbend","unblock","unbuckle","unburden","unbutton","uncoil","uncork","uncouple","uncover","uncurl","undelete","underachieve","underbid","undercharge","undercook","undercut","underestimate","underestimation","underexpose","undergo","underlie","underline","undermine","underpay","underperform","underpin","underplay","underrate","underscore","undersell","undershoot","underspend","understand","understate","understudy","undertake","undervalue","underwrite","undo","undock","undress","undulate","unearth","unfasten","unfold","unfreeze","unfurl","unhand","unhinge","unhitch","unhook","unify","uninstall","unionise","unionize","unite","unlace","unlearn","unleash","unload","unlock","unloose","unloosen","unmask","unnerve","unpack","unpick","unplug","unravel","unroll","unsaddle","unscramble","unscrew","unseat","unsettle","unsubscribe","untangle","untie","unveil","unwind","unwrap","unzip","up","upbraid","upchange","upchuck","update","upend","upgrade","uphold","upholster","uplift","upload","uproot","upsell","upset","upshift","upskill","upstage","urge","use","usher","usurp","utilise","utilize","utter","vacate","vacation","vaccinate","vacillate","vacuum","valet","validate","value","vamoose","vandalise","vandalize","vanish","vanquish","vaporise","vaporize","varnish","vary","vault","veer","veg","vegetate","veil","vend","veneer","venerate","vent","ventilate","venture","verbalise","verbalize","verge","verify","versify","vest","vet","veto","vex","vibrate","victimise","victimize","vide","video","videotape","vie","view","viewing","vilify","vindicate","violate","visit","visualise","visualize","vitiate","vitrify","vocalize","voice","void","volley","volumise","volumize","volunteer","vote","vouch","vouchsafe","vow","voyage","vulgarise","vulgarize","waddle","wade","waffle","waft","wag","wage","wager","waggle","wail","wait","waive","wake","wakeboard","waken","walk","wall","wallop","wallow","wallpaper","waltz","wander","wane","wangle","want","warble","ward","warm","warn","warp","warrant","wash","wassail","waste","watch","water","waterproof","waterski","wave","waver","wax","waylay","weaken","wean","weaponise","weaponize","wear","weary","weasel","weather","weatherise","weatherize","weave","wed","wedge","weekend","weep","weigh","weight","weird","welch","welcome","weld","well","welly","wend","westernise","westernize","wet","whack","wheedle","wheel","wheeze","whelp","whet","whiff","while","whilst","whimper","whine","whinge","whinny","whip","whirl","whirr","whirring","whisk","whisper","whispering","whistle","whiten","whitewash","whittle","whoop","whoosh","whup","wick","widen","widow","wield","wig","wiggle","wildcat","will","wilt","wimp","win","wince","winch","wind","winds","windsurf","wine","wing","wink","winkle","winnow","winter","wipe","wire","wiretap","wise","wisecrack","wish","withdraw","wither","withhold","withstand","witness","witter","wobble","wolf","wonder","woo","woof","word","work","worm","worry","worsen","worship","worst","wound","wow","wowee","wrangle","wrap","wreak","wreathe","wreck","wrench","wrest","wrestle","wriggle","wring","wrinkle","writ","write","writhe","wrong","wrought","xerox","yack","yak","yap","yaw","yawn","yearn","yell","yellow","yelp","yield","yodel","yoke","yomp","yowl","yuppify","zap","zero","zigzag","zing","zip","zone","zoom"],l4t={adjective:t4t,adverb:n4t,conjunction:i4t,interjection:r4t,noun:o4t,preposition:s4t,verb:a4t},u4t=l4t,c4t={airline:bGt,animal:TGt,app:VGt,cell_phone:OGt,color:YGt,commerce:jGt,company:sVt,database:uVt,date:gVt,finance:_Vt,hacker:TVt,internet:VVt,location:oXt,lorem:lXt,metadata:cXt,music:mXt,person:WXt,phone_number:VXt,science:BXt,team:UXt,vehicle:e4t,word:u4t},d4t=c4t,h4t=Object.defineProperty,g4t=(n,e,t)=>e in n?h4t(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,Li=(n,e,t)=>(g4t(n,typeof e!="symbol"?e+"":e,t),t),ni=class extends Error{};function m4t(n){let e=Object.getPrototypeOf(n);do{for(let t of Object.getOwnPropertyNames(e))typeof n[t]=="function"&&t!=="constructor"&&(n[t]=n[t].bind(n));e=Object.getPrototypeOf(e)}while(e!==Object.prototype)}var FS=class{constructor(e){this.faker=e,m4t(this)}},Ms=class extends FS{constructor(e){super(e),this.faker=e}},I_e=(n=>(n.Narrowbody="narrowbody",n.Regional="regional",n.Widebody="widebody",n))(I_e||{}),f4t=["0","1","2","3","4","5","6","7","8","9"],p4t=["0","O","1","I","L"],b4t={regional:20,narrowbody:35,widebody:60},C4t={regional:["A","B","C","D"],narrowbody:["A","B","C","D","E","F"],widebody:["A","B","C","D","E","F","G","H","J","K"]},v4t=class extends Ms{airport(){return this.faker.helpers.arrayElement(this.faker.definitions.airline.airport)}airline(){return this.faker.helpers.arrayElement(this.faker.definitions.airline.airline)}airplane(){return this.faker.helpers.arrayElement(this.faker.definitions.airline.airplane)}recordLocator(e={}){let{allowNumerics:t=!1,allowVisuallySimilarCharacters:i=!1}=e,r=[];return t||r.push(...f4t),i||r.push(...p4t),this.faker.string.alphanumeric({length:6,casing:"upper",exclude:r})}seat(e={}){let{aircraftType:t="narrowbody"}=e,i=b4t[t],r=C4t[t],o=this.faker.number.int({min:1,max:i}),s=this.faker.helpers.arrayElement(r);return`${o}${s}`}aircraftType(){return this.faker.helpers.enumValue(I_e)}flightNumber(e={}){let{length:t={min:1,max:4},addLeadingZeros:i=!1}=e,r=this.faker.string.numeric({length:t,allowLeadingZeros:!1});return i?r.padStart(4,"0"):r}},w_e=(n=>(n.SRGB="sRGB",n.DisplayP3="display-p3",n.REC2020="rec2020",n.A98RGB="a98-rgb",n.ProphotoRGB="prophoto-rgb",n))(w_e||{}),S_e=(n=>(n.RGB="rgb",n.RGBA="rgba",n.HSL="hsl",n.HSLA="hsla",n.HWB="hwb",n.CMYK="cmyk",n.LAB="lab",n.LCH="lch",n.COLOR="color",n))(S_e||{});function y4t(n,e){let{prefix:t,casing:i}=e;switch(i){case"upper":n=n.toUpperCase();break;case"lower":n=n.toLowerCase();break}return t&&(n=t+n),n}function x_e(n){return n.map(e=>{if(e%1!==0){let t=new ArrayBuffer(4);new DataView(t).setFloat32(0,e);let i=new Uint8Array(t);return x_e([...i]).replace(/ /g,"")}return(e>>>0).toString(2).padStart(8,"0")}).join(" ")}function I4t(n,e="rgb",t="sRGB"){let i=r=>Math.round(r*100);switch(e){case"rgba":return`rgba(${n[0]}, ${n[1]}, ${n[2]}, ${n[3]})`;case"color":return`color(${t} ${n[0]} ${n[1]} ${n[2]})`;case"cmyk":return`cmyk(${i(n[0])}%, ${i(n[1])}%, ${i(n[2])}%, ${i(n[3])}%)`;case"hsl":return`hsl(${n[0]}deg ${i(n[1])}% ${i(n[2])}%)`;case"hsla":return`hsl(${n[0]}deg ${i(n[1])}% ${i(n[2])}% / ${i(n[3])})`;case"hwb":return`hwb(${n[0]} ${i(n[1])}% ${i(n[2])}%)`;case"lab":return`lab(${i(n[0])}% ${n[1]} ${n[2]})`;case"lch":return`lch(${i(n[0])}% ${n[1]} ${n[2]})`;case"rgb":default:return`rgb(${n[0]}, ${n[1]}, ${n[2]})`}}function iy(n,e,t="rgb",i="sRGB"){switch(e){case"css":return I4t(n,t,i);case"binary":return x_e(n);case"decimal":default:return n}}var w4t=class extends Ms{human(){return this.faker.helpers.arrayElement(this.faker.definitions.color.human)}space(){return this.faker.helpers.arrayElement(this.faker.definitions.color.space)}cssSupportedFunction(){return this.faker.helpers.enumValue(S_e)}cssSupportedSpace(){return this.faker.helpers.enumValue(w_e)}rgb(e={}){let{format:t="hex",includeAlpha:i=!1,prefix:r="#",casing:o="lower"}=e,s,a="rgb";return t==="hex"?(s=this.faker.string.hexadecimal({length:i?8:6,prefix:""}),s=y4t(s,{prefix:r,casing:o}),s):(s=Array.from({length:3},()=>this.faker.number.int(255)),i&&(s.push(this.faker.number.float({multipleOf:.01})),a="rgba"),iy(s,t,a))}cmyk(e){let t=Array.from({length:4},()=>this.faker.number.float({multipleOf:.01}));return iy(t,(e==null?void 0:e.format)||"decimal","cmyk")}hsl(e){let t=[this.faker.number.int(360)];for(let i=0;i<(e!=null&&e.includeAlpha?3:2);i++)t.push(this.faker.number.float({multipleOf:.01}));return iy(t,(e==null?void 0:e.format)||"decimal",e!=null&&e.includeAlpha?"hsla":"hsl")}hwb(e){let t=[this.faker.number.int(360)];for(let i=0;i<2;i++)t.push(this.faker.number.float({multipleOf:.01}));return iy(t,(e==null?void 0:e.format)||"decimal","hwb")}lab(e){let t=[this.faker.number.float({multipleOf:1e-6})];for(let i=0;i<2;i++)t.push(this.faker.number.float({min:-100,max:100,multipleOf:1e-4}));return iy(t,(e==null?void 0:e.format)||"decimal","lab")}lch(e){let t=[this.faker.number.float({multipleOf:1e-6})];for(let i=0;i<2;i++)t.push(this.faker.number.float({max:230,multipleOf:.1}));return iy(t,(e==null?void 0:e.format)||"decimal","lch")}colorByCSSColorSpace(e){(e==null?void 0:e.format)==="css"&&!(e!=null&&e.space)&&(e={...e,space:"sRGB"});let t=Array.from({length:3},()=>this.faker.number.float({multipleOf:1e-4}));return iy(t,(e==null?void 0:e.format)||"decimal","color",e==null?void 0:e.space)}},wG=()=>{throw new ni("You cannot edit the locale data on the faker instance")};function S4t(n){let e={};return new Proxy(n,{has(){return!0},get(t,i){return typeof i=="symbol"||i==="nodeType"?t[i]:i in e?e[i]:e[i]=x4t(i,t[i])},set:wG,deleteProperty:wG})}function SG(n,...e){if(n===null)throw new ni(`The locale data for '${e.join(".")}' aren't applicable to this locale. + If you think this is a bug, please report it at: https://github.com/faker-js/faker`);if(n===void 0)throw new ni(`The locale data for '${e.join(".")}' are missing in this locale. + Please contribute the missing data to the project or use a locale/Faker instance that has these data. + For more information see https://fakerjs.dev/guide/localization.html`)}function x4t(n,e={}){return new Proxy(e,{has(t,i){return t[i]!=null},get(t,i){let r=t[i];return typeof i=="symbol"||i==="nodeType"||SG(r,n,i.toString()),r},set:wG,deleteProperty:wG})}var L_e=(n=>(n.Female="female",n.Male="male",n))(L_e||{});function yN(n,e,t,{generic:i,female:r,male:o},s){let a;switch(t){case"female":a=r;break;case"male":a=o;break;default:a=i;break}return a==null&&(r!=null&&o!=null?a=n.helpers.arrayElement([r,o]):a=i,SG(a,`person.{${s}, female_${s}, male_${s}}`)),e(a)}var L4t=class extends Ms{firstName(e){var t;let{first_name:i,female_first_name:r,male_first_name:o}=(t=this.faker.rawDefinitions.person)!=null?t:{};return yN(this.faker,this.faker.helpers.arrayElement,e,{generic:i,female:r,male:o},"first_name")}lastName(e){var t;let{last_name:i,female_last_name:r,male_last_name:o,last_name_pattern:s,male_last_name_pattern:a,female_last_name_pattern:l}=(t=this.faker.rawDefinitions.person)!=null?t:{};if(s!=null||a!=null||l!=null){let u=yN(this.faker,this.faker.helpers.weightedArrayElement,e,{generic:s,female:l,male:a},"last_name_pattern");return this.faker.helpers.fake(u)}return yN(this.faker,this.faker.helpers.arrayElement,e,{generic:i,female:r,male:o},"last_name")}middleName(e){var t;let{middle_name:i,female_middle_name:r,male_middle_name:o}=(t=this.faker.rawDefinitions.person)!=null?t:{};return yN(this.faker,this.faker.helpers.arrayElement,e,{generic:i,female:r,male:o},"middle_name")}fullName(e={}){let{sex:t=this.faker.helpers.arrayElement(["female","male"]),firstName:i=this.firstName(t),lastName:r=this.lastName(t)}=e,o=this.faker.helpers.weightedArrayElement(this.faker.definitions.person.name);return this.faker.helpers.mustache(o,{"person.prefix":()=>this.prefix(t),"person.firstName":()=>i,"person.middleName":()=>this.middleName(t),"person.lastName":()=>r,"person.suffix":()=>this.suffix()})}gender(){return this.faker.helpers.arrayElement(this.faker.definitions.person.gender)}sex(){return this.faker.helpers.arrayElement(this.faker.definitions.person.sex)}sexType(){return this.faker.helpers.enumValue(L_e)}bio(){let{bio_pattern:e}=this.faker.definitions.person;return this.faker.helpers.fake(e)}prefix(e){var t;let{prefix:i,female_prefix:r,male_prefix:o}=(t=this.faker.rawDefinitions.person)!=null?t:{};return yN(this.faker,this.faker.helpers.arrayElement,e,{generic:i,female:r,male:o},"prefix")}suffix(){return this.faker.helpers.arrayElement(this.faker.definitions.person.suffix)}jobTitle(){return this.faker.helpers.fake(this.faker.definitions.person.job_title_pattern)}jobDescriptor(){let e=this.faker.definitions.person.title.descriptor;if(e==null)throw new ni("No person.title.descriptor definitions available.");return this.faker.helpers.arrayElement(e)}jobArea(){let e=this.faker.definitions.person.title.level;if(e==null)throw new ni("No person.title.area definitions available.");return this.faker.helpers.arrayElement(e)}jobType(){let e=this.faker.definitions.person.title.job;if(e==null)throw new ni("No person.title.job definitions available.");return this.faker.helpers.arrayElement(e)}zodiacSign(){return this.faker.helpers.arrayElement(this.faker.definitions.person.western_zodiac_sign)}},F4t=class{constructor(){Li(this,"N",624),Li(this,"M",397),Li(this,"MATRIX_A",2567483615),Li(this,"UPPER_MASK",2147483648),Li(this,"LOWER_MASK",2147483647),Li(this,"mt",Array.from({length:this.N})),Li(this,"mti",this.N+1),Li(this,"mag01",[0,this.MATRIX_A])}unsigned32(e){return e<0?(e^this.UPPER_MASK)+this.UPPER_MASK:e}subtraction32(e,t){return e>>r&1&&(i=this.addition32(i,this.unsigned32(t<>>30)),this.mti),this.mt[this.mti]=this.unsigned32(this.mt[this.mti]&4294967295)}initByArray(e,t){this.initGenrand(19650218);let i=1,r=0,o=this.N>t?this.N:t;for(;o;o--)this.mt[i]=this.addition32(this.addition32(this.unsigned32(this.mt[i]^this.multiplication32(this.unsigned32(this.mt[i-1]^this.mt[i-1]>>>30),1664525)),e[r]),r),this.mt[i]=this.unsigned32(this.mt[i]&4294967295),i++,r++,i>=this.N&&(this.mt[0]=this.mt[this.N-1],i=1),r>=t&&(r=0);for(o=this.N-1;o;o--)this.mt[i]=this.subtraction32(this.unsigned32(this.mt[i]^this.multiplication32(this.unsigned32(this.mt[i-1]^this.mt[i-1]>>>30),1566083941)),i),this.mt[i]=this.unsigned32(this.mt[i]&4294967295),i++,i>=this.N&&(this.mt[0]=this.mt[this.N-1],i=1);this.mt[0]=2147483648}genrandInt32(){let e;if(this.mti>=this.N){let t;for(this.mti===this.N+1&&this.initGenrand(5489),t=0;t>>1^this.mag01[e&1]);for(;t>>1^this.mag01[e&1]);e=this.unsigned32(this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK),this.mt[this.N-1]=this.unsigned32(this.mt[this.M-1]^e>>>1^this.mag01[e&1]),this.mti=0}return e=this.mt[this.mti++],e=this.unsigned32(e^e>>>11),e=this.unsigned32(e^e<<7&2636928640),e=this.unsigned32(e^e<<15&4022730752),e=this.unsigned32(e^e>>>18),e}genrandInt31(){return this.genrandInt32()>>>1}genrandReal1(){return this.genrandInt32()*(1/4294967295)}genrandReal2(){return this.genrandInt32()*(1/4294967296)}genrandReal3(){return(this.genrandInt32()+.5)*(1/4294967296)}genrandRes53(){let e=this.genrandInt32()>>>5,t=this.genrandInt32()>>>6;return(e*67108864+t)*(1/9007199254740992)}};function _4t(){let n=new F4t;return n.initGenrand(Math.ceil(Math.random()*Number.MAX_SAFE_INTEGER)),{next(){return n.genrandReal2()},seed(e){typeof e=="number"?n.initGenrand(e):Array.isArray(e)&&n.initByArray(e,e.length)}}}function Ht(n){let e=`[@faker-js/faker]: ${n.deprecated} is deprecated`;n.since&&(e+=` since v${n.since}`),n.until&&(e+=` and will be removed in v${n.until}`),n.proposed&&(e+=`. Please use ${n.proposed} instead`)}var D4t=class extends FS{number(e=99999){Ht({deprecated:"faker.datatype.number()",proposed:"faker.number.int()",since:"8.0",until:"9.0"}),typeof e=="number"&&(e={max:e});let{min:t=0,max:i=t+99999,precision:r=1}=e;return this.faker.number.float({min:t,max:i,multipleOf:r})}float(e={}){Ht({deprecated:"faker.datatype.float()",proposed:"faker.number.float()",since:"8.0",until:"9.0"}),typeof e=="number"&&(e={precision:e});let{min:t=0,max:i=t+99999,precision:r=.01}=e;return this.faker.number.float({min:t,max:i,multipleOf:r})}datetime(e={}){Ht({deprecated:"faker.datatype.datetime({ min, max })",proposed:"faker.date.between({ from, to }) or faker.date.anytime()",since:"8.0",until:"9.0"});let t=864e13,i=typeof e=="number"?void 0:e.min,r=typeof e=="number"?e:e.max;return(i==null||it)&&(r=Date.UTC(2100,0)),this.faker.date.between({from:i,to:r})}string(e={}){Ht({deprecated:"faker.datatype.string()",proposed:"faker.string.sample()",since:"8.0",until:"9.0"}),typeof e=="number"&&(e={length:e});let{length:t=10}=e;return this.faker.string.sample(t)}uuid(){return Ht({deprecated:"faker.datatype.uuid()",proposed:"faker.string.uuid()",since:"8.0",until:"9.0"}),this.faker.string.uuid()}boolean(e={}){typeof e=="number"&&(e={probability:e});let{probability:t=.5}=e;return t<=0?!1:t>=1?!0:this.faker.number.float()this.boolean()?this.faker.string.sample():this.faker.number.int(),{count:e})}bigInt(e){return Ht({deprecated:"faker.datatype.bigInt()",proposed:"faker.number.bigInt()",since:"8.0",until:"9.0"}),this.faker.number.bigInt(e)}};function o1(n,e){return n==null?e():(n=new Date(n),Number.isNaN(n.valueOf())&&(n=e()),n)}var F_e=class extends FS{anytime(e={}){let{refDate:t}=e,i=o1(t,this.faker.defaultRefDate);return this.between({from:new Date(i.getTime()-1e3*60*60*24*365),to:new Date(i.getTime()+1e3*60*60*24*365)})}past(e={},t){typeof e=="number"&&(Ht({deprecated:"faker.date.past(years, refDate)",proposed:"faker.date.past({ years, refDate })",since:"8.0",until:"9.0"}),e={years:e});let{years:i=1,refDate:r=t}=e;if(i<=0)throw new ni("Years must be greater than 0.");let o=o1(r,this.faker.defaultRefDate),s={min:1e3,max:i*365*24*3600*1e3},a=o.getTime();return a-=this.faker.number.int(s),o.setTime(a),o}future(e={},t){typeof e=="number"&&(Ht({deprecated:"faker.date.future(years, refDate)",proposed:"faker.date.future({ years, refDate })",since:"8.0",until:"9.0"}),e={years:e});let{years:i=1,refDate:r=t}=e;if(i<=0)throw new ni("Years must be greater than 0.");let o=o1(r,this.faker.defaultRefDate),s={min:1e3,max:i*365*24*3600*1e3},a=o.getTime();return a+=this.faker.number.int(s),o.setTime(a),o}between(e,t){(e instanceof Date||typeof e!="object")&&(Ht({deprecated:"faker.date.between(from, to)",proposed:"faker.date.between({ from, to })",since:"8.0",until:"9.0"}),e={from:e,to:t??e});let{from:i,to:r}=e,o=o1(i,this.faker.defaultRefDate).getTime(),s=o1(r,this.faker.defaultRefDate).getTime(),a=this.faker.number.int(s-o);return new Date(o+a)}betweens(e,t,i=3){(e instanceof Date||typeof e!="object")&&(Ht({deprecated:"faker.date.betweens(from, to, count)",proposed:"faker.date.betweens({ from, to, count })",since:"8.0",until:"9.0"}),e={from:e,to:t??e,count:i});let{from:r,to:o,count:s=3}=e;return this.faker.helpers.multiple(()=>this.between({from:r,to:o}),{count:s}).sort((a,l)=>a.getTime()-l.getTime())}recent(e={},t){typeof e=="number"&&(Ht({deprecated:"faker.date.recent(days, refDate)",proposed:"faker.date.recent({ days, refDate })",since:"8.0",until:"9.0"}),e={days:e});let{days:i=1,refDate:r=t}=e;if(i<=0)throw new ni("Days must be greater than 0.");let o=o1(r,this.faker.defaultRefDate),s={min:1e3,max:i*24*3600*1e3},a=o.getTime();return a-=this.faker.number.int(s),o.setTime(a),o}soon(e={},t){typeof e=="number"&&(Ht({deprecated:"faker.date.soon(days, refDate)",proposed:"faker.date.soon({ days, refDate })",since:"8.0",until:"9.0"}),e={days:e});let{days:i=1,refDate:r=t}=e;if(i<=0)throw new ni("Days must be greater than 0.");let o=o1(r,this.faker.defaultRefDate),s={min:1e3,max:i*24*3600*1e3},a=o.getTime();return a+=this.faker.number.int(s),o.setTime(a),o}birthdate(e={}){var t,i,r,o;let s=e.mode==="age"?"age":"year",a=o1(e.refDate,this.faker.defaultRefDate),l=a.getUTCFullYear(),u,c;if(s==="age"?(u=new Date(a).setUTCFullYear(l-((t=e.max)!=null?t:80)-1),c=new Date(a).setUTCFullYear(l-((i=e.min)!=null?i:18))):(u=new Date(Date.UTC(0,0,2)).setUTCFullYear((r=e.min)!=null?r:l-80),c=new Date(Date.UTC(0,11,30)).setUTCFullYear((o=e.max)!=null?o:l-19)),ca!=null).map(a=>Array.isArray(a)?e.helpers.arrayElement(a):a)}while(r.length>0&&i.length>0);if(i.length===0)throw new ni(`Cannot resolve expression '${n}'`);let o=i[0];return typeof o=="function"?o():o}function M4t(n,e){let[t,i]=Z4t(n),r=n[t+1];switch(r){case".":case"(":case void 0:break;default:throw new ni(`Expected dot ('.'), open parenthesis ('('), or nothing after function call but got '${r}'`)}return[t+(r==="."?2:1),e.map(o=>typeof o=="function"?o(...i):o)]}function Z4t(n){let e=n.indexOf(")",1);if(e===-1)throw new ni(`Missing closing parenthesis in '${n}'`);for(;e!==-1;){let i=n.substring(1,e);try{return[e,JSON.parse(`[${i}]`)]}catch{if(!i.includes("'")&&!i.includes('"'))try{return[e,JSON.parse(`["${i}"]`)]}catch{}}e=n.indexOf(")",e+1)}e=n.lastIndexOf(")");let t=n.substring(1,e);return[e,[t]]}function T4t(n,e){var t,i;let r=N4t.exec(n),o=((t=r==null?void 0:r[0])!=null?t:"")===".",s=(i=r==null?void 0:r.index)!=null?i:n.length,a=n.substring(0,s);if(a.length===0)throw new ni(`Expression parts cannot be empty in '${n}'`);let l=n[s+1];if(o&&(l==null||l==="."||l==="("))throw new ni(`Found dot without property name in '${n}'`);return[s+(o?1:0),e.map(u=>E4t(u,a))]}function E4t(n,e){switch(typeof n){case"function":{try{n=n()}catch{return}return n==null?void 0:n[e]}case"object":return n==null?void 0:n[e];default:return}}function W4t(n){let e=R4t(n.replace(/L?$/,"0"));return e===0?0:10-e}function R4t(n){n=n.replace(/[\s-]/g,"");let e=0,t=!1;for(let i=n.length-1;i>=0;i--){let r=Number.parseInt(n[i]);t&&(r*=2,r>9&&(r=r%10+1)),e+=r,t=!t}return e%10}function G4t(n,e){return n[e]===void 0?-1:0}function __e(n,e,t,i,r){throw new ni(`${t} for uniqueness check. + +May not be able to generate any more unique values with current settings. +Try adjusting maxTime or maxRetries parameters for faker.helpers.unique().`)}function D_e(n,e,t={}){let i=Date.now(),{startTime:r=Date.now(),maxTime:o=50,maxRetries:s=50,currentIterations:a=0,compare:l=G4t,store:u={}}=t,{exclude:c=[]}=t;if(t.currentIterations=a,Array.isArray(c)||(c=[c]),i-r>=o)return __e(r,i,`Exceeded maxTime: ${o}`,u,a);if(a>=s)return __e(r,i,`Exceeded maxRetries: ${s}`,u,a);let d=n(...e);return l(u,d)===-1&&!c.includes(d)?(u[d]=d,t.currentIterations=0,d):(t.currentIterations++,D_e(n,e,{...t,startTime:r,maxTime:o,maxRetries:s,compare:l,exclude:c}))}function A_e(n,e,t,i){let r=1;if(e)switch(e){case"?":{r=n.datatype.boolean()?0:1;break}case"*":{let o=1;for(;n.datatype.boolean();)o*=2;r=n.number.int({min:0,max:o});break}case"+":{let o=1;for(;n.datatype.boolean();)o*=2;r=n.number.int({min:1,max:o});break}default:throw new ni("Unknown quantifier symbol provided.")}else t!=null&&i!=null?r=n.number.int({min:Number.parseInt(t),max:Number.parseInt(i)}):t!=null&&i==null&&(r=Number.parseInt(t));return r}function N_e(n,e=""){let t=/(.)\{(\d+),(\d+)\}/,i=/(.)\{(\d+)\}/,r=/\[(\d+)-(\d+)\]/,o,s,a,l,u=t.exec(e);for(;u!=null;)o=Number.parseInt(u[2]),s=Number.parseInt(u[3]),o>s&&(a=s,s=o,o=a),l=n.number.int({min:o,max:s}),e=e.slice(0,u.index)+u[1].repeat(l)+e.slice(u.index+u[0].length),u=t.exec(e);for(u=i.exec(e);u!=null;)l=Number.parseInt(u[2]),e=e.slice(0,u.index)+u[1].repeat(l)+e.slice(u.index+u[0].length),u=i.exec(e);for(u=r.exec(e);u!=null;)o=Number.parseInt(u[1]),s=Number.parseInt(u[2]),o>s&&(a=s,s=o,o=a),e=e.slice(0,u.index)+n.number.int({min:o,max:s}).toString()+e.slice(u.index+u[0].length),u=r.exec(e);return e}function h$(n,e="",t="#"){let i="";for(let r=0;r faker.string.numeric(m.length))",since:"8.4",until:"9.0"}),h$(this.faker,e,t)}replaceSymbols(e=""){let t=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"],i="";for(let r=0;r{var V;return(V=E.codePointAt(0))!=null?V:Number.NaN});if(c=T[0],d=T[1],c>d)throw new ni("Character range provided is out of order.");for(let E=c;E<=d;E++)if(u&&Number.isNaN(Number(String.fromCodePoint(E)))){let V=String.fromCodePoint(E);A.push((r=V.toUpperCase().codePointAt(0))!=null?r:Number.NaN,(o=V.toLowerCase().codePointAt(0))!=null?o:Number.NaN)}else A.push(E)}else u&&Number.isNaN(Number(W[0]))?A.push((s=W[0].toUpperCase().codePointAt(0))!=null?s:Number.NaN,(a=W[0].toLowerCase().codePointAt(0))!=null?a:Number.NaN):A.push((l=W[0].codePointAt(0))!=null?l:Number.NaN);M=M.substring(W[0].length),W=f.exec(M)}if(h=A_e(this.faker,D,F,L),w){let T=-1;for(let E=48;E<=57;E++){if(T=A.indexOf(E),T>-1){A.splice(T,1);continue}A.push(E)}for(let E=65;E<=90;E++){if(T=A.indexOf(E),T>-1){A.splice(T,1);continue}A.push(E)}for(let E=97;E<=122;E++){if(T=A.indexOf(E),T>-1){A.splice(T,1);continue}A.push(E)}}let Z=this.multiple(()=>String.fromCodePoint(this.arrayElement(A)),{count:h}).join("");e=e.slice(0,m.index)+Z+e.slice(m.index+m[0].length),m=b.exec(e)}let C=/(.)\{(\d+),(\d+)\}/;for(m=C.exec(e);m!=null;){if(c=Number.parseInt(m[2]),d=Number.parseInt(m[3]),c>d)throw new ni("Numbers out of order in {} quantifier.");h=this.faker.number.int({min:c,max:d}),e=e.slice(0,m.index)+m[1].repeat(h)+e.slice(m.index+m[0].length),m=C.exec(e)}let v=/(.)\{(\d+)\}/;for(m=v.exec(e);m!=null;)h=Number.parseInt(m[2]),e=e.slice(0,m.index)+m[1].repeat(h)+e.slice(m.index+m[0].length),m=v.exec(e);return e}shuffle(e,t={}){let{inplace:i=!1}=t;i||(e=[...e]);for(let r=e.length-1;r>0;--r){let o=this.faker.number.int(r);[e[r],e[o]]=[e[o],e[r]]}return e}uniqueArray(e,t){if(Array.isArray(e)){let r=[...new Set(e)];return this.shuffle(r).splice(0,t)}let i=new Set;try{if(typeof e=="function"){let r=1e3*t,o=0;for(;i.size1?this.faker.number.int({max:e.length-1}):0;return e[t]}weightedArrayElement(e){if(e.length===0)throw new ni("weightedArrayElement expects an array with at least one element");if(!e.every(o=>o.weight>0))throw new ni("weightedArrayElement expects an array of { weight, value } objects where weight is a positive number");let t=e.reduce((o,{weight:s})=>o+s,0),i=this.faker.number.float({min:0,max:t}),r=0;for(let{weight:o,value:s}of e)if(r+=o,i=e.length)return this.shuffle(e);if(i<=0)return[];let r=[...e],o=e.length,s=o-i,a,l;for(;o-- >s;)l=this.faker.number.int(o),a=r[l],r[l]=r[o],r[o]=a;return r.slice(s)}enumValue(e){let t=Object.keys(e).filter(r=>Number.isNaN(Number(r))),i=this.arrayElement(t);return e[i]}rangeToNumber(e){return typeof e=="number"?e:this.faker.number.int(e)}unique(e,t=[],i={}){Ht({deprecated:"faker.helpers.unique",proposed:"https://github.com/faker-js/faker/issues/1785#issuecomment-1407773744",since:"8.0",until:"9.0"});let{maxTime:r=50,maxRetries:o=50,exclude:s=[],store:a=this.uniqueStore}=i;return D_e(e,t,{...i,startTime:Date.now(),maxTime:r,maxRetries:o,currentIterations:0,exclude:s,store:a})}multiple(e,t={}){var i;let r=this.rangeToNumber((i=t.count)!=null?i:3);return r<=0?[]:Array.from({length:r},e)}},V4t=class extends k_e{constructor(e){super(e),this.faker=e}fake(e){e=typeof e=="string"?e:this.arrayElement(e);let t=e.search(/{{[a-z]/),i=e.indexOf("}}",t);if(t===-1||i===-1)return e;let r=e.substring(t+2,i+2).replace("}}","").replace("{{",""),o=k4t(r,this.faker),s=String(o),a=e.substring(0,t)+s+e.substring(i+2);return this.fake(a)}},X4t=class extends FS{int(e={}){typeof e=="number"&&(e={max:e});let{min:t=0,max:i=Number.MAX_SAFE_INTEGER}=e,r=Math.ceil(t),o=Math.floor(i);if(r===o)return r;if(o=t?new ni(`No integer value between ${t} and ${i} found.`):new ni(`Max ${i} should be greater than min ${t}.`);let s=this.faker._randomizer.next();return Math.floor(s*(o+1-r)+r)}float(e={}){typeof e=="number"&&(e={max:e});let{min:t=0,max:i=1,fractionDigits:r,precision:o,multipleOf:s=o,multipleOf:a=o??(r==null?void 0:10**-r)}=e;if(o!=null&&Ht({deprecated:"faker.number.float({ precision })",proposed:"faker.number.float({ multipleOf })",since:"8.4",until:"9.0"}),i===t)return t;if(ithis.faker.helpers.arrayElement(e),{count:t}).join("")}alpha(e={}){var t;typeof e=="number"&&(e={length:e});let i=this.faker.helpers.rangeToNumber((t=e.length)!=null?t:1);if(i<=0)return"";let{casing:r="mixed"}=e,{exclude:o=[]}=e;typeof o=="string"&&(o=[...o]);let s;switch(r){case"upper":s=[...xG];break;case"lower":s=[...LG];break;case"mixed":default:s=[...LG,...xG];break}return s=s.filter(a=>!o.includes(a)),this.fromCharacters(s,i)}alphanumeric(e={}){var t;typeof e=="number"&&(e={length:e});let i=this.faker.helpers.rangeToNumber((t=e.length)!=null?t:1);if(i<=0)return"";let{casing:r="mixed"}=e,{exclude:o=[]}=e;typeof o=="string"&&(o=[...o]);let s=[...M_e];switch(r){case"upper":s.push(...xG);break;case"lower":s.push(...LG);break;case"mixed":default:s.push(...LG,...xG);break}return s=s.filter(a=>!o.includes(a)),this.fromCharacters(s,i)}binary(e={}){var t;let{prefix:i="0b"}=e,r=i;return r+=this.fromCharacters(["0","1"],(t=e.length)!=null?t:1),r}octal(e={}){var t;let{prefix:i="0o"}=e,r=i;return r+=this.fromCharacters(["0","1","2","3","4","5","6","7"],(t=e.length)!=null?t:1),r}hexadecimal(e={}){var t;let{casing:i="mixed",prefix:r="0x"}=e,o=this.faker.helpers.rangeToNumber((t=e.length)!=null?t:1);if(o<=0)return r;let s=this.fromCharacters(["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","A","B","C","D","E","F"],o);return i==="upper"?s=s.toUpperCase():i==="lower"&&(s=s.toLowerCase()),`${r}${s}`}numeric(e={}){var t;typeof e=="number"&&(e={length:e});let i=this.faker.helpers.rangeToNumber((t=e.length)!=null?t:1);if(i<=0)return"";let{allowLeadingZeros:r=!0}=e,{exclude:o=[]}=e;typeof o=="string"&&(o=[...o]);let s=M_e.filter(l=>!o.includes(l));if(s.length===0||s.length===1&&!r&&s[0]==="0")throw new ni("Unable to generate numeric string, because all possible digits are excluded.");let a="";return!r&&!o.includes("0")&&(a+=this.faker.helpers.arrayElement(s.filter(l=>l!=="0"))),a+=this.fromCharacters(s,i-a.length),a}sample(e=10){e=this.faker.helpers.rangeToNumber(e);let t={min:33,max:125},i="";for(;i.lengththis.faker.number.hex({min:0,max:15})).replace(/y/g,()=>this.faker.number.hex({min:8,max:11}))}nanoid(e=21){if(e=this.faker.helpers.rangeToNumber(e),e<=0)return"";let t=[{value:()=>this.alphanumeric(1),weight:62},{value:()=>this.faker.helpers.arrayElement(["_","-"]),weight:2}],i="";for(;i.length","?","@","[","\\","]","^","_","`","{","|","}","~"],e)}},Z_e=class{constructor(e={}){Li(this,"_defaultRefDate",()=>new Date),Li(this,"_randomizer"),Li(this,"datatype",new D4t(this)),Li(this,"date",new F_e(this)),Li(this,"helpers",new k_e(this)),Li(this,"number",new X4t(this)),Li(this,"string",new P4t(this));let{randomizer:t=_4t()}=e;this._randomizer=t}get defaultRefDate(){return this._defaultRefDate}setDefaultRefDate(e=()=>new Date){typeof e=="function"?this._defaultRefDate=e:this._defaultRefDate=()=>new Date(e)}seed(e=Math.ceil(Math.random()*Number.MAX_SAFE_INTEGER)){return this._randomizer.seed(e),e}};new Z_e;function O4t(n){let e={};for(let t of n)for(let i in t){let r=t[i];e[i]===void 0?e[i]={...r}:e[i]={...r,...e[i]}}return e}var B4t=class extends Ms{dog(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.dog)}cat(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.cat)}snake(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.snake)}bear(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.bear)}lion(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.lion)}cetacean(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.cetacean)}horse(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.horse)}bird(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.bird)}cow(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.cow)}fish(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.fish)}crocodilia(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.crocodilia)}insect(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.insect)}rabbit(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.rabbit)}rodent(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.rodent)}type(){return this.faker.helpers.arrayElement(this.faker.definitions.animal.type)}},z4t={0:[[1999999,2],[2279999,3],[2289999,4],[3689999,3],[3699999,4],[6389999,3],[6397999,4],[6399999,7],[6449999,3],[6459999,7],[6479999,3],[6489999,7],[6549999,3],[6559999,4],[6999999,3],[8499999,4],[8999999,5],[9499999,6],[9999999,7]],1:[[99999,3],[299999,2],[349999,3],[399999,4],[499999,3],[699999,2],[999999,4],[3979999,3],[5499999,4],[6499999,5],[6799999,4],[6859999,5],[7139999,4],[7169999,3],[7319999,4],[7399999,7],[7749999,5],[7753999,7],[7763999,5],[7764999,7],[7769999,5],[7782999,7],[7899999,5],[7999999,4],[8004999,5],[8049999,5],[8379999,5],[8384999,7],[8671999,5],[8675999,4],[8697999,5],[9159999,6],[9165059,7],[9168699,6],[9169079,7],[9195999,6],[9196549,7],[9729999,6],[9877999,4],[9911499,6],[9911999,7],[9989899,6],[9999999,7]]},Y4t=class extends Ms{department(){return this.faker.helpers.arrayElement(this.faker.definitions.commerce.department)}productName(){return`${this.productAdjective()} ${this.productMaterial()} ${this.product()}`}price(e={},t=1e3,i=2,r=""){typeof e=="number"&&(Ht({deprecated:"faker.commerce.price(min, max, dec, symbol)",proposed:"faker.commerce.price({ min, max, dec, symbol })",since:"8.0",until:"9.0"}),e={min:e,dec:i,max:t,symbol:r});let{dec:o=2,max:s=1e3,min:a=1,symbol:l=""}=e;if(a<0||s<0)return`${l}0`;let u=this.faker.number.int({min:a,max:s});return l+u.toFixed(o)}productAdjective(){return this.faker.helpers.arrayElement(this.faker.definitions.commerce.product_name.adjective)}productMaterial(){return this.faker.helpers.arrayElement(this.faker.definitions.commerce.product_name.material)}product(){return this.faker.helpers.arrayElement(this.faker.definitions.commerce.product_name.product)}productDescription(){return this.faker.helpers.arrayElement(this.faker.definitions.commerce.product_description)}isbn(e={}){var t;typeof e=="number"&&(e={variant:e});let{variant:i=13,separator:r="-"}=e,o="978",[s,a]=this.faker.helpers.objectEntry(z4t),l=this.faker.string.numeric(8),u=Number.parseInt(l.slice(0,-1)),c=(t=a.find(([b])=>u<=b))==null?void 0:t[1];if(!c)throw new ni(`Unable to find a registrant length for the group ${s}`);let d=l.slice(0,c),h=l.slice(c),g=[o,s,d,h];i===10&&g.shift();let m=g.join(""),f=0;for(let b=0;b{let e=0;for(let t of n)e=(e*10+ +t)%97;return e},pattern10:["01","02","03","04","05","06","07","08","09"],pattern100:["001","002","003","004","005","006","007","008","009"],toDigitString:n=>n.replace(/[A-Z]/gi,e=>{var t;return String(((t=e.toUpperCase().codePointAt(0))!=null?t:Number.NaN)-55)})},vp=J4t;function K4t(n){let e="";for(let t=0;tc.country===i):this.faker.helpers.arrayElement(vp.formats);if(!o)throw new ni(`Country code ${i} not supported.`);let s="",a=0;for(let c of o.bban){let d=c.count;for(a+=c.count;d>0;)c.type==="a"?s+=this.faker.helpers.arrayElement(vp.alpha):c.type==="c"?this.faker.datatype.boolean(.8)?s+=this.faker.number.int(9):s+=this.faker.helpers.arrayElement(vp.alpha):d>=3&&this.faker.datatype.boolean(.3)?this.faker.datatype.boolean()?(s+=this.faker.helpers.arrayElement(vp.pattern100),d-=2):(s+=this.faker.helpers.arrayElement(vp.pattern10),d--):s+=this.faker.number.int(9),d--;s=s.substring(0,a)}let l=98-vp.mod97(vp.toDigitString(`${s}${o.country}00`));l<10&&(l=`0${l}`);let u=`${o.country}${l}${s}`;return r?K4t(u):u}bic(e={}){let{includeBranchCode:t=this.faker.datatype.boolean()}=e,i=this.faker.string.alpha({length:4,casing:"upper"}),r=this.faker.helpers.arrayElement(vp.iso3166),o=this.faker.string.alphanumeric({length:2,casing:"upper"}),s=t?this.faker.datatype.boolean()?this.faker.string.alphanumeric({length:3,casing:"upper"}):"XXX":"";return`${i}${r}${o}${s}`}transactionDescription(){let e=this.amount(),t=this.faker.company.name(),i=this.transactionType(),r=this.accountNumber(),o=this.maskedNumber(),s=this.currencyCode();return`${i} transaction at ${t} using card ending with ***${o} for ${s} ${e} in account ***${r}`}},Q4t=" ",$4t=class extends Ms{branch(){let e=this.faker.hacker.noun().replace(" ","-"),t=this.faker.hacker.verb().replace(" ","-");return`${e}-${t}`}commitEntry(e={}){let{merge:t=this.faker.datatype.boolean({probability:.2}),eol:i="CRLF",refDate:r}=e,o=[`commit ${this.faker.git.commitSha()}`];t&&o.push(`Merge: ${this.commitSha({length:7})} ${this.commitSha({length:7})}`);let s=this.faker.person.firstName(),a=this.faker.person.lastName(),l=this.faker.person.fullName({firstName:s,lastName:a}),u=this.faker.internet.userName({firstName:s,lastName:a}),c=this.faker.helpers.arrayElement([l,u]),d=this.faker.internet.email({firstName:s,lastName:a});c=c.replace(/^[.,:;"\\']|[<>\n]|[.,:;"\\']$/g,""),o.push(`Author: ${c} <${d}>`,`Date: ${this.commitDate({refDate:r})}`,"",`${Q4t.repeat(4)}${this.commitMessage()}`,"");let h=i==="CRLF"?`\r +`:` +`;return o.join(h)}commitMessage(){return`${this.faker.hacker.verb()} ${this.faker.hacker.adjective()} ${this.faker.hacker.noun()}`}commitDate(e={}){let{refDate:t=this.faker.defaultRefDate()}=e,i=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],r=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],o=this.faker.date.recent({days:1,refDate:t}),s=i[o.getUTCDay()],a=r[o.getUTCMonth()],l=o.getUTCDate(),u=o.getUTCHours().toString().padStart(2,"0"),c=o.getUTCMinutes().toString().padStart(2,"0"),d=o.getUTCSeconds().toString().padStart(2,"0"),h=o.getUTCFullYear(),g=this.faker.number.int({min:-11,max:12}),m=Math.abs(g).toString().padStart(2,"0"),f="00",b=g>=0?"+":"-";return`${s} ${a} ${l} ${u}:${c}:${d} ${h} ${b}${m}${f}`}commitSha(e={}){let{length:t=40}=e;return this.faker.string.hexadecimal({length:t,casing:"lower",prefix:""})}shortSha(){return Ht({deprecated:"faker.git.shortSha()",proposed:"faker.git.commitSha({ length: 7 })",since:"8.0",until:"9.0"}),this.commitSha({length:7})}},q4t=class extends Ms{abbreviation(){return this.faker.helpers.arrayElement(this.faker.definitions.hacker.abbreviation)}adjective(){return this.faker.helpers.arrayElement(this.faker.definitions.hacker.adjective)}noun(){return this.faker.helpers.arrayElement(this.faker.definitions.hacker.noun)}verb(){return this.faker.helpers.arrayElement(this.faker.definitions.hacker.verb)}ingverb(){return this.faker.helpers.arrayElement(this.faker.definitions.hacker.ingverb)}phrase(){let e={abbreviation:this.abbreviation,adjective:this.adjective,ingverb:this.ingverb,noun:this.noun,verb:this.verb},t=this.faker.helpers.arrayElement(this.faker.definitions.hacker.phrase);return this.faker.helpers.mustache(t,e)}},ePt=class{constructor(e){this.faker=e}image(e,t,i,r){return Ht({deprecated:"faker.lorempicsum.image",proposed:"faker.image.urlPicsumPhotos",since:"8.0",until:"9.0"}),this.imageUrl(e,t,i,r)}imageGrayscale(e,t,i){return Ht({deprecated:"faker.lorempicsum.imageGrayscale",proposed:"faker.image.urlPicsumPhotos",since:"8.0",until:"9.0"}),this.imageUrl(e,t,i)}imageBlurred(e,t,i){return Ht({deprecated:"faker.lorempicsum.imageBlurred",proposed:"faker.image.urlPicsumPhotos",since:"8.0",until:"9.0"}),this.imageUrl(e,t,void 0,i)}imageRandomSeeded(e,t,i,r,o){return Ht({deprecated:"faker.lorempicsum.imageRandomSeeded",proposed:"faker.image.urlPicsumPhotos",since:"8.0",until:"9.0"}),this.imageUrl(e,t,i,r,o)}imageUrl(e,t,i,r,o){Ht({deprecated:"faker.lorempicsum.imageUrl",proposed:"faker.image.urlPicsumPhotos",since:"8.0",until:"9.0"}),e=e||640,t=t||480;let s="https://picsum.photos";return o&&(s+=`/seed/${o}`),s+=`/${e}/${t}`,i&&r?`${s}?grayscale&blur=${r}`:i?`${s}?grayscale`:r?`${s}?blur=${r}`:s}},tPt=class pke{constructor(e){this.faker=e;for(let t of Object.getOwnPropertyNames(pke.prototype))t==="constructor"||typeof this[t]!="function"||(this[t]=this[t].bind(this))}imageUrl(e,t,i,r,o,s){Ht({deprecated:"faker.placeholder.imageUrl",proposed:"faker.image.urlPlaceholder",since:"8.0",until:"9.0"}),e=e||640,t=t||e;let a="https://via.placeholder.com";if(a+=`/${e}x${t}`,o!=null&&(a+=`/${o.replace("#","").toUpperCase()}`,s!=null&&(a+=`/${s.replace("#","").toUpperCase()}`)),r!=null&&(a+=`.${r}`),i!=null){let l=new URLSearchParams({text:i});a+=`?${l.toString()}`}return a}randomUrl(e,t,i){return Ht({deprecated:"faker.placeholder.randomUrl",proposed:"faker.image.urlPlaceholder",since:"8.0",until:"9.0"}),this.imageUrl(e,t,this.faker.lorem.word(),i,this.faker.color.rgb({casing:"upper",prefix:""}),this.faker.color.rgb({casing:"upper",prefix:""}))}},nPt=class{constructor(e){this.faker=e}image(e,t,i){return Ht({deprecated:"faker.unsplash.image",proposed:"faker.image.url",since:"8.0",until:"9.0"}),this.imageUrl(e,t,void 0,i)}imageUrl(e,t,i,r){Ht({deprecated:"faker.unsplash.imageUrl",proposed:"faker.image.url",since:"8.0",until:"9.0"}),e=e||640,t=t||480;let o="https://source.unsplash.com";return i!=null&&(o+=`/category/${i}`),o+=`/${e}x${t}`,r!=null&&/^([A-Za-z0-9].+,[A-Za-z0-9]+)$|^([A-Za-z0-9]+)$/.test(r)&&(o+=`?${r}`),o}food(e,t,i){return Ht({deprecated:"faker.unsplash.food",proposed:"faker.image.url",since:"8.0",until:"9.0"}),this.faker.image.unsplash.imageUrl(e,t,"food",i)}people(e,t,i){return Ht({deprecated:"faker.unsplash.people",proposed:"faker.image.url",since:"8.0",until:"9.0"}),this.faker.image.unsplash.imageUrl(e,t,"people",i)}nature(e,t,i){return Ht({deprecated:"faker.unsplash.nature",proposed:"faker.image.url",since:"8.0",until:"9.0"}),this.faker.image.unsplash.imageUrl(e,t,"nature",i)}technology(e,t,i){return Ht({deprecated:"faker.unsplash.technology",proposed:"faker.image.url",since:"8.0",until:"9.0"}),this.faker.image.unsplash.imageUrl(e,t,"technology",i)}objects(e,t,i){return Ht({deprecated:"faker.unsplash.objects",proposed:"faker.image.url",since:"8.0",until:"9.0"}),this.faker.image.unsplash.imageUrl(e,t,"objects",i)}buildings(e,t,i){return Ht({deprecated:"faker.unsplash.buildings",proposed:"faker.image.url",since:"8.0",until:"9.0"}),this.faker.image.unsplash.imageUrl(e,t,"buildings",i)}},iPt=class extends Ms{constructor(e){super(e),Li(this,"unsplash"),Li(this,"lorempicsum"),Li(this,"placeholder"),this.unsplash=new nPt(this.faker),this.lorempicsum=new ePt(this.faker),this.placeholder=new tPt(this.faker)}avatar(){return this.faker.helpers.arrayElement([this.avatarLegacy,this.avatarGitHub])()}avatarGitHub(){return`https://avatars.githubusercontent.com/u/${this.faker.number.int(1e8)}`}avatarLegacy(){return`https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/${this.faker.number.int(1249)}.jpg`}url(e={}){let{width:t=640,height:i=480}=e;return this.faker.helpers.arrayElement([this.urlLoremFlickr,this.urlPicsumPhotos])({width:t,height:i})}urlLoremFlickr(e={}){let{width:t=640,height:i=480,category:r}=e;return`https://loremflickr.com/${t}/${i}${r==null?"":`/${r}`}?lock=${this.faker.number.int()}`}urlPicsumPhotos(e={}){let{width:t=640,height:i=480,grayscale:r=!1,blur:o}=e,s=`https://picsum.photos/seed/${this.faker.string.alphanumeric({length:{min:5,max:10}})}/${t}/${i}`,a=typeof o=="number"&&o>=1&&o<=10;return(r||a)&&(s+="?",r&&(s+="grayscale"),r&&a&&(s+="&"),a&&(s+=`blur=${o}`)),s}urlPlaceholder(e={}){let{width:t=this.faker.number.int({min:1,max:3999}),height:i=this.faker.number.int({min:1,max:3999}),backgroundColor:r=this.faker.color.rgb({format:"hex",prefix:""}),textColor:o=this.faker.color.rgb({format:"hex",prefix:""}),format:s=this.faker.helpers.arrayElement(["gif","jpeg","jpg","png","webp"]),text:a=this.faker.lorem.words()}=e,l="https://via.placeholder.com";return l+=`/${t}`,l+=`x${i}`,l+=`/${r}`,l+=`/${o}`,l+=`.${s}`,l+=`?text=${encodeURIComponent(a)}`,l}dataUri(e={}){let{width:t=640,height:i=480,color:r=this.faker.color.rgb(),type:o="svg-uri"}=e,s=`${t}x${i}`;return o==="svg-uri"?`data:image/svg+xml;charset=UTF-8,${encodeURIComponent(s)}`:`data:image/svg+xml;base64,${Buffer.from(s).toString("base64")}`}image(e,t,i){Ht({deprecated:"faker.image.image",proposed:"faker.image.url",since:"8.0",until:"9.0"});let r=["abstract","animals","business","cats","city","food","nightlife","fashion","people","nature","sports","technics","transport"];return this[this.faker.helpers.arrayElement(r)](e,t,i)}imageUrl(e,t,i,r){Ht({deprecated:"faker.image.imageUrl",proposed:"faker.image.url",since:"8.0",until:"9.0"}),e=e||640,t=t||480;let o=`https://loremflickr.com/${e}/${t}`;return i!=null&&(o+=`/${i}`),r&&(o+=`?lock=${this.faker.number.int()}`),o}abstract(e,t,i){return Ht({deprecated:"faker.image.abstract",proposed:"faker.image.urlLoremFlickr({ category: 'abstract' }) or faker.image.url",since:"8.0",until:"9.0"}),this.imageUrl(e,t,"abstract",i)}animals(e,t,i){return Ht({deprecated:"faker.image.animals",proposed:"faker.image.urlLoremFlickr({ category: 'animals' }) or faker.image.url",since:"8.0",until:"9.0"}),this.imageUrl(e,t,"animals",i)}business(e,t,i){return Ht({deprecated:"faker.image.business",proposed:"faker.image.urlLoremFlickr({ category: 'business' }) or faker.image.url",since:"8.0",until:"9.0"}),this.imageUrl(e,t,"business",i)}cats(e,t,i){return Ht({deprecated:"faker.image.cats",proposed:"faker.image.urlLoremFlickr({ category: 'cats' }) or faker.image.url",since:"8.0",until:"9.0"}),this.imageUrl(e,t,"cats",i)}city(e,t,i){return Ht({deprecated:"faker.image.city",proposed:"faker.image.urlLoremFlickr({ category: 'city' }) or faker.image.url",since:"8.0",until:"9.0"}),this.imageUrl(e,t,"city",i)}food(e,t,i){return Ht({deprecated:"faker.image.food",proposed:"faker.image.urlLoremFlickr({ category: 'food' }) or faker.image.url",since:"8.0",until:"9.0"}),this.imageUrl(e,t,"food",i)}nightlife(e,t,i){return Ht({deprecated:"faker.image.nightlife",proposed:"faker.image.urlLoremFlickr({ category: 'nightlife' }) or faker.image.url",since:"8.0",until:"9.0"}),this.imageUrl(e,t,"nightlife",i)}fashion(e,t,i){return Ht({deprecated:"faker.image.fashion",proposed:"faker.image.urlLoremFlickr({ category: 'fashion' }) or faker.image.url",since:"8.0",until:"9.0"}),this.imageUrl(e,t,"fashion",i)}people(e,t,i){return Ht({deprecated:"faker.image.people",proposed:"faker.image.urlLoremFlickr({ category: 'people' }) or faker.image.url",since:"8.0",until:"9.0"}),this.imageUrl(e,t,"people",i)}nature(e,t,i){return Ht({deprecated:"faker.image.nature",proposed:"faker.image.urlLoremFlickr({ category: 'nature' }) or faker.image.url",since:"8.0",until:"9.0"}),this.imageUrl(e,t,"nature",i)}sports(e,t,i){return Ht({deprecated:"faker.image.sports",proposed:"faker.image.urlLoremFlickr({ category: 'sports' }) or faker.image.url",since:"8.0",until:"9.0"}),this.imageUrl(e,t,"sports",i)}technics(e,t,i){return Ht({deprecated:"faker.image.technics",proposed:"faker.image.urlLoremFlickr({ category: 'technics' }) or faker.image.url",since:"8.0",until:"9.0"}),this.imageUrl(e,t,"technics",i)}transport(e,t,i){return Ht({deprecated:"faker.image.transport",proposed:"faker.image.urlLoremFlickr({ category: 'transport' }) or faker.image.url",since:"8.0",until:"9.0"}),this.imageUrl(e,t,"transport",i)}},rPt=Object.fromEntries([["А","A"],["а","a"],["Б","B"],["б","b"],["В","V"],["в","v"],["Г","G"],["г","g"],["Д","D"],["д","d"],["ъе","ye"],["Ъе","Ye"],["ъЕ","yE"],["ЪЕ","YE"],["Е","E"],["е","e"],["Ё","Yo"],["ё","yo"],["Ж","Zh"],["ж","zh"],["З","Z"],["з","z"],["И","I"],["и","i"],["ый","iy"],["Ый","Iy"],["ЫЙ","IY"],["ыЙ","iY"],["Й","Y"],["й","y"],["К","K"],["к","k"],["Л","L"],["л","l"],["М","M"],["м","m"],["Н","N"],["н","n"],["О","O"],["о","o"],["П","P"],["п","p"],["Р","R"],["р","r"],["С","S"],["с","s"],["Т","T"],["т","t"],["У","U"],["у","u"],["Ф","F"],["ф","f"],["Х","Kh"],["х","kh"],["Ц","Ts"],["ц","ts"],["Ч","Ch"],["ч","ch"],["Ш","Sh"],["ш","sh"],["Щ","Sch"],["щ","sch"],["Ъ",""],["ъ",""],["Ы","Y"],["ы","y"],["Ь",""],["ь",""],["Э","E"],["э","e"],["Ю","Yu"],["ю","yu"],["Я","Ya"],["я","ya"]]),oPt=Object.fromEntries([["α","a"],["β","v"],["γ","g"],["δ","d"],["ε","e"],["ζ","z"],["η","i"],["θ","th"],["ι","i"],["κ","k"],["λ","l"],["μ","m"],["ν","n"],["ξ","ks"],["ο","o"],["π","p"],["ρ","r"],["σ","s"],["τ","t"],["υ","y"],["φ","f"],["χ","x"],["ψ","ps"],["ω","o"],["ά","a"],["έ","e"],["ί","i"],["ό","o"],["ύ","y"],["ή","i"],["ώ","o"],["ς","s"],["ϊ","i"],["ΰ","y"],["ϋ","y"],["ΐ","i"],["Α","A"],["Β","B"],["Γ","G"],["Δ","D"],["Ε","E"],["Ζ","Z"],["Η","I"],["Θ","TH"],["Ι","I"],["Κ","K"],["Λ","L"],["Μ","M"],["Ν","N"],["Ξ","KS"],["Ο","O"],["Π","P"],["Ρ","R"],["Σ","S"],["Τ","T"],["Υ","Y"],["Φ","F"],["Χ","X"],["Ψ","PS"],["Ω","O"],["Ά","A"],["Έ","E"],["Ί","I"],["Ό","O"],["Ύ","Y"],["Ή","I"],["Ώ","O"],["Ϊ","I"],["Ϋ","Y"]]),sPt=Object.fromEntries([["ء","e"],["آ","a"],["أ","a"],["ؤ","w"],["إ","i"],["ئ","y"],["ا","a"],["ب","b"],["ة","t"],["ت","t"],["ث","th"],["ج","j"],["ح","h"],["خ","kh"],["د","d"],["ذ","dh"],["ر","r"],["ز","z"],["س","s"],["ش","sh"],["ص","s"],["ض","d"],["ط","t"],["ظ","z"],["ع","e"],["غ","gh"],["ـ","_"],["ف","f"],["ق","q"],["ك","k"],["ل","l"],["م","m"],["ن","n"],["ه","h"],["و","w"],["ى","a"],["ي","y"],["َ‎","a"],["ُ","u"],["ِ‎","i"]]),aPt=Object.fromEntries([["ա","a"],["Ա","A"],["բ","b"],["Բ","B"],["գ","g"],["Գ","G"],["դ","d"],["Դ","D"],["ե","ye"],["Ե","Ye"],["զ","z"],["Զ","Z"],["է","e"],["Է","E"],["ը","y"],["Ը","Y"],["թ","t"],["Թ","T"],["ժ","zh"],["Ժ","Zh"],["ի","i"],["Ի","I"],["լ","l"],["Լ","L"],["խ","kh"],["Խ","Kh"],["ծ","ts"],["Ծ","Ts"],["կ","k"],["Կ","K"],["հ","h"],["Հ","H"],["ձ","dz"],["Ձ","Dz"],["ղ","gh"],["Ղ","Gh"],["ճ","tch"],["Ճ","Tch"],["մ","m"],["Մ","M"],["յ","y"],["Յ","Y"],["ն","n"],["Ն","N"],["շ","sh"],["Շ","Sh"],["ո","vo"],["Ո","Vo"],["չ","ch"],["Չ","Ch"],["պ","p"],["Պ","P"],["ջ","j"],["Ջ","J"],["ռ","r"],["Ռ","R"],["ս","s"],["Ս","S"],["վ","v"],["Վ","V"],["տ","t"],["Տ","T"],["ր","r"],["Ր","R"],["ց","c"],["Ց","C"],["ու","u"],["ՈՒ","U"],["Ու","U"],["փ","p"],["Փ","P"],["ք","q"],["Ք","Q"],["օ","o"],["Օ","O"],["ֆ","f"],["Ֆ","F"],["և","yev"]]),lPt=Object.fromEntries([["چ","ch"],["ک","k"],["گ","g"],["پ","p"],["ژ","zh"],["ی","y"]]),T_e={...rPt,...oPt,...sPt,...lPt,...aPt};function uPt(n){let e=()=>n.helpers.arrayElement(["AB","AF","AN","AR","AS","AZ","BE","BG","BN","BO","BR","BS","CA","CE","CO","CS","CU","CY","DA","DE","EL","EN","EO","ES","ET","EU","FA","FI","FJ","FO","FR","FY","GA","GD","GL","GV","HE","HI","HR","HT","HU","HY","ID","IS","IT","JA","JV","KA","KG","KO","KU","KW","KY","LA","LB","LI","LN","LT","LV","MG","MK","MN","MO","MS","MT","MY","NB","NE","NL","NN","NO","OC","PL","PT","RM","RO","RU","SC","SE","SK","SL","SO","SQ","SR","SV","SW","TK","TR","TY","UK","UR","UZ","VI","VO","YI","ZH"]),t=()=>{let u={chrome:["win","mac","lin"],firefox:["win","mac","lin"],opera:["win","mac","lin"],safari:["win","mac"],iexplorer:["win"]},c=n.helpers.objectKey(u),d=n.helpers.arrayElement(u[c]);return[c,d]},i=u=>n.helpers.arrayElement({lin:["i686","x86_64"],mac:["Intel","PPC","U; Intel","U; PPC"],win:["","WOW64","Win64; x64"]}[u]),r=u=>{let c="";for(let d=0;d=11?`Mozilla/5.0 (Windows NT 6.${n.number.int({min:1,max:3})}; Trident/7.0; ${n.datatype.boolean()?"Touch; ":""}rv:11.0) like Gecko`:`Mozilla/5.0 (compatible; MSIE ${u}.0; Windows NT ${o.nt()}; Trident/${o.trident()}${n.datatype.boolean()?`; .NET CLR ${o.net()}`:""})`},opera(u){let c=` Presto/${o.presto()} Version/${o.presto2()})`,d=u==="win"?`(Windows NT ${o.nt()}; U; ${e()}${c}`:u==="lin"?`(X11; Linux ${i(u)}; U; ${e()}${c}`:`(Macintosh; Intel Mac OS X ${o.osx()} U; ${e()} Presto/${o.presto()} Version/${o.presto2()})`;return`Opera/${n.number.int({min:9,max:14})}.${n.number.int(99)} ${d}`},safari(u){let c=o.safari(),d=`${n.number.int({min:4,max:7})}.${n.number.int(1)}.${n.number.int(10)}`;return`Mozilla/5.0 ${u==="mac"?`(Macintosh; ${i("mac")} Mac OS X ${o.osx("_")} rv:${n.number.int({min:2,max:6})}.0; ${e()}) `:`(Windows; U; Windows NT ${o.nt()})`}AppleWebKit/${c} (KHTML, like Gecko) Version/${d} Safari/${c}`},chrome(u){let c=o.safari();return`Mozilla/5.0 ${u==="mac"?`(Macintosh; ${i("mac")} Mac OS X ${o.osx("_")}) `:u==="win"?`(Windows; U; Windows NT ${o.nt()})`:`(X11; Linux ${i(u)}`} AppleWebKit/${c} (KHTML, like Gecko) Chrome/${o.chrome()} Safari/${c}`}},[a,l]=t();return s[a](l)}var cPt=class extends Ms{avatar(){return Ht({deprecated:"faker.internet.avatar()",proposed:"faker.image.avatarLegacy() or faker.image.avatar()",since:"8.4",until:"9.0"}),this.faker.image.avatarLegacy()}email(e={},t,i,r){var o;(typeof e=="string"||t!=null||i!=null||r!=null)&&Ht({deprecated:"faker.internet.email(firstName, lastName, provider, options)",proposed:"faker.internet.email({ firstName, lastName, provider, ... })",since:"8.0",until:"9.0"}),typeof e=="string"&&(e={firstName:e});let{firstName:s,lastName:a=t,provider:l=i??this.faker.helpers.arrayElement(this.faker.definitions.internet.free_email),allowSpecialCharacters:u=(o=r==null?void 0:r.allowSpecialCharacters)!=null?o:!1}=e,c=this.userName({firstName:s,lastName:a});if(c=c.replace(/[^A-Za-z0-9._+-]+/g,""),c=c.substring(0,50),u){let d=[..."._-"],h=[...".!#$%&'*+-/=?^_`{|}~"];c=c.replace(this.faker.helpers.arrayElement(d),this.faker.helpers.arrayElement(h))}return c=c.replace(/\.{2,}/g,"."),c=c.replace(/^\./,""),c=c.replace(/\.$/,""),`${c}@${l}`}exampleEmail(e={},t,i){var r;(typeof e=="string"||t!=null||i!=null)&&Ht({deprecated:"faker.internet.exampleEmail(firstName, lastName, options)",proposed:"faker.internet.exampleEmail({ firstName, lastName, ... })",since:"8.0",until:"9.0"}),typeof e=="string"&&(e={firstName:e});let{firstName:o,lastName:s=t,allowSpecialCharacters:a=(r=i==null?void 0:i.allowSpecialCharacters)!=null?r:!1}=e,l=this.faker.helpers.arrayElement(this.faker.definitions.internet.example_email);return this.email({firstName:o,lastName:s,provider:l,allowSpecialCharacters:a})}userName(e={},t){(typeof e=="string"||t!=null)&&Ht({deprecated:"faker.internet.userName(firstName, lastName)",proposed:"faker.internet.userName({ firstName, lastName })",since:"8.0",until:"9.0"}),typeof e=="string"&&(e={firstName:e});let{firstName:i=this.faker.person.firstName(),lastName:r=t??this.faker.person.lastName(),lastName:o=t}=e,s,a=this.faker.number.int(o?1:2),l=this.faker.helpers.arrayElement([".","_"]);switch(a){case 0:s=`${i}${l}${r}${this.faker.number.int(99)}`;break;case 1:s=`${i}${l}${r}`;break;case 2:default:s=`${i}${this.faker.number.int(99)}`;break}return s=s.normalize("NFKD").replace(/[\u0300-\u036F]/g,""),s=[...s].map(u=>{var c;if(T_e[u])return T_e[u];let d=(c=u.codePointAt(0))!=null?c:Number.NaN;return d<128?u:d.toString(36)}).join(""),s=s.toString().replace(/'/g,""),s=s.replace(/ /g,""),s}displayName(e={},t){(typeof e=="string"||t!=null)&&Ht({deprecated:"faker.internet.displayName(firstName, lastName)",proposed:"faker.internet.displayName({ firstName, lastName })",since:"8.0",until:"9.0"}),typeof e=="string"&&(e={firstName:e});let{firstName:i=this.faker.person.firstName(),lastName:r=t??this.faker.person.lastName()}=e,o;switch(this.faker.number.int(2)){case 0:o=`${i}${this.faker.number.int(99)}`;break;case 1:o=i+this.faker.helpers.arrayElement([".","_"])+r;break;case 2:default:o=`${i}${this.faker.helpers.arrayElement([".","_"])}${r}${this.faker.number.int(99)}`;break}return o=o.toString().replace(/'/g,""),o=o.replace(/ /g,""),o}protocol(){let e=["http","https"];return this.faker.helpers.arrayElement(e)}httpMethod(){let e=["GET","POST","PUT","DELETE","PATCH"];return this.faker.helpers.arrayElement(e)}httpStatusCode(e={}){let{types:t=Object.keys(this.faker.definitions.internet.http_status_code)}=e,i=this.faker.helpers.arrayElement(t);return this.faker.helpers.arrayElement(this.faker.definitions.internet.http_status_code[i])}url(e={}){let{appendSlash:t=this.faker.datatype.boolean(),protocol:i="https"}=e;return`${i}://${this.domainName()}${t?"/":""}`}domainName(){return`${this.domainWord()}.${this.domainSuffix()}`}domainSuffix(){return this.faker.helpers.arrayElement(this.faker.definitions.internet.domain_suffix)}domainWord(){return this.faker.helpers.slugify(`${this.faker.word.adjective()}-${this.faker.word.noun()}`).toLowerCase()}ip(){return this.faker.datatype.boolean()?this.ipv4():this.ipv6()}ipv4(){return Array.from({length:4},()=>this.faker.number.int(255)).join(".")}ipv6(){return Array.from({length:8},()=>this.faker.string.hexadecimal({length:4,casing:"lower",prefix:""})).join(":")}port(){return this.faker.number.int(65535)}userAgent(){return uPt(this.faker)}color(e={},t,i){(typeof e=="number"||i!=null||t!=null)&&Ht({deprecated:"faker.internet.color(redBase, greenBase, blueBase)",proposed:"faker.internet.color({ redBase, greenBase, blueBase })",since:"8.0",until:"9.0"}),typeof e=="number"&&(e={redBase:e});let{redBase:r=0,greenBase:o=t??0,blueBase:s=i??0}=e,a=d=>Math.floor((this.faker.number.int(256)+d)/2).toString(16).padStart(2,"0"),l=a(r),u=a(o),c=a(s);return`#${l}${u}${c}`}mac(e={}){typeof e=="string"&&(e={separator:e});let{separator:t=":"}=e,i,r="";for([":","-",""].includes(t)||(t=":"),i=0;i<12;i++)r+=this.faker.number.hex(15),i%2===1&&i!==11&&(r+=t);return r}password(e={},t,i,r){let o=/[aeiouAEIOU]$/,s=/[bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ]$/,a=(h,g,m,f)=>{if(f.length>=h)return f;g&&(m=s.test(f)?o:s);let b=this.faker.number.int(94)+33,C=String.fromCodePoint(b);return g&&(C=C.toLowerCase()),m.test(C)?a(h,g,m,f+C):a(h,g,m,f)};(typeof e=="string"||t!=null||i!=null||r!=null)&&Ht({deprecated:"faker.internet.password(length, memorable, pattern, prefix)",proposed:"faker.internet.password({ length, memorable, pattern, prefix })",since:"8.0",until:"9.0"}),typeof e=="number"&&(e={length:e});let{length:l=15,memorable:u=t??!1,pattern:c=i??/\w/,prefix:d=r??""}=e;return a(l,u,c,d)}emoji(e={}){let{types:t=Object.keys(this.faker.definitions.internet.emoji)}=e,i=this.faker.helpers.arrayElement(t);return this.faker.helpers.arrayElement(this.faker.definitions.internet.emoji[i])}},dPt=class extends Ms{zipCode(e={}){typeof e=="string"&&(e={format:e});let{state:t}=e;if(t){let r=this.faker.definitions.location.postcode_by_state[t];if(r)return this.faker.helpers.fake(r);throw new ni(`No zip code definition found for state "${t}"`)}let{format:i=this.faker.definitions.location.postcode}=e;return typeof i=="string"&&(i=[i]),i=this.faker.helpers.arrayElement(i),this.faker.helpers.replaceSymbols(i)}zipCodeByState(e={}){Ht({deprecated:"faker.location.zipCodeByState",proposed:"faker.location.zipCode({ state })",since:"8.0",until:"9.0"}),typeof e=="string"&&(e={state:e});let{state:t}=e;return this.zipCode({state:t})}city(){return this.faker.helpers.fake(this.faker.definitions.location.city_pattern)}cityName(){return Ht({deprecated:"faker.location.cityName",proposed:"faker.location.city",since:"8.0",until:"9.0"}),this.faker.helpers.arrayElement(this.faker.definitions.location.city_name)}buildingNumber(){return this.faker.helpers.arrayElement(this.faker.definitions.location.building_number).replace(/#+/g,e=>this.faker.string.numeric({length:e.length,allowLeadingZeros:!1}))}street(){return this.faker.helpers.fake(this.faker.definitions.location.street_pattern)}streetName(){return Ht({deprecated:"faker.location.streetName",proposed:"faker.location.street",since:"8.0",until:"9.0"}),this.faker.helpers.arrayElement(this.faker.definitions.location.street_name)}streetAddress(e={}){typeof e=="boolean"&&(e={useFullAddress:e});let{useFullAddress:t}=e,i=this.faker.definitions.location.street_address[t?"full":"normal"];return this.faker.helpers.fake(i)}secondaryAddress(){return this.faker.helpers.arrayElement(this.faker.definitions.location.secondary_address).replace(/#+/g,e=>this.faker.string.numeric({length:e.length,allowLeadingZeros:!1}))}county(){return this.faker.helpers.arrayElement(this.faker.definitions.location.county)}country(){return this.faker.helpers.arrayElement(this.faker.definitions.location.country)}countryCode(e={}){typeof e=="string"&&(e={variant:e});let{variant:t="alpha-2"}=e,i=(()=>{switch(t){case"numeric":return"numeric";case"alpha-3":return"alpha3";case"alpha-2":default:return"alpha2"}})();return this.faker.helpers.arrayElement(this.faker.definitions.location.country_code)[i]}state(e={}){let{abbreviated:t=!1}=e,i=t?this.faker.definitions.location.state_abbr:this.faker.definitions.location.state;return this.faker.helpers.arrayElement(i)}stateAbbr(){return Ht({deprecated:"faker.location.stateAbbr()",proposed:"faker.location.state({ abbreviated: true })",since:"8.0",until:"9.0"}),this.state({abbreviated:!0})}latitude(e={},t=-90,i=4){typeof e=="number"&&(Ht({deprecated:"faker.location.latitude(max, min, precision)",proposed:"faker.location.latitude({ max, min, precision })",since:"8.0",until:"9.0"}),e={max:e});let{max:r=90,min:o=t,precision:s=i}=e;return this.faker.number.float({min:o,max:r,fractionDigits:s})}longitude(e={},t=-180,i=4){typeof e=="number"&&(Ht({deprecated:"faker.location.longitude(max, min, precision)",proposed:"faker.location.longitude({ max, min, precision })",since:"8.0",until:"9.0"}),e={max:e});let{max:r=180,min:o=t,precision:s=i}=e;return this.faker.number.float({max:r,min:o,fractionDigits:s})}direction(e={}){typeof e=="boolean"&&(Ht({deprecated:"faker.location.direction(abbreviated)",proposed:"faker.location.direction({ abbreviated })",since:"8.0",until:"9.0"}),e={abbreviated:e});let{abbreviated:t=!1}=e;return t?this.faker.helpers.arrayElement(this.faker.definitions.location.direction_abbr):this.faker.helpers.arrayElement(this.faker.definitions.location.direction)}cardinalDirection(e={}){typeof e=="boolean"&&(Ht({deprecated:"faker.location.cardinalDirection(abbreviated)",proposed:"faker.location.cardinalDirection({ abbreviated })",since:"8.0",until:"9.0"}),e={abbreviated:e});let{abbreviated:t=!1}=e;return t?this.faker.helpers.arrayElement(this.faker.definitions.location.direction_abbr.slice(0,4)):this.faker.helpers.arrayElement(this.faker.definitions.location.direction.slice(0,4))}ordinalDirection(e={}){typeof e=="boolean"&&(Ht({deprecated:"faker.location.ordinalDirection(abbreviated)",proposed:"faker.location.ordinalDirection({ abbreviated })",since:"8.0",until:"9.0"}),e={abbreviated:e});let{abbreviated:t=!1}=e;return t?this.faker.helpers.arrayElement(this.faker.definitions.location.direction_abbr.slice(4,8)):this.faker.helpers.arrayElement(this.faker.definitions.location.direction.slice(4,8))}nearbyGPSCoordinate(e={},t=10,i=!1){Array.isArray(e)&&(Ht({deprecated:"faker.location.nearbyGPSCoordinate(coordinate, radius, isMetric)",proposed:"faker.location.nearbyGPSCoordinate({ origin, radius, isMetric })",since:"8.0",until:"9.0"}),e={origin:e});let{origin:r,radius:o=t,isMetric:s=i}=e;if(r==null)return[this.latitude(),this.longitude()];let a=this.faker.number.float({max:2*Math.PI,fractionDigits:5}),l=s?o:o*1.60934,u=this.faker.number.float({max:l,fractionDigits:3})*.995,c=4e4/360,d=u/c,h=[r[0]+Math.sin(a)*d,r[1]+Math.cos(a)*d];return h[0]=h[0]%180,(h[0]<-90||h[0]>90)&&(h[0]=Math.sign(h[0])*180-h[0],h[1]+=180),h[1]=(h[1]%360+540)%360-180,[h[0],h[1]]}timeZone(){return this.faker.helpers.arrayElement(this.faker.definitions.location.time_zone)}};function hPt(n,e,t=i=>i){let i={};for(let r of n){let o=e(r);i[o]===void 0&&(i[o]=[]),i[o].push(t(r))}return i}var g$={fail:()=>{throw new ni("No words found that match the given length.")},closest:(n,e)=>{let t=hPt(n,a=>a.length),i=Object.keys(t).map(Number),r=Math.min(...i),o=Math.max(...i),s=Math.min(e.min-r,o-e.max);return n.filter(a=>a.length===e.min-s||a.length===e.max+s)},shortest:n=>{let e=Math.min(...n.map(t=>t.length));return n.filter(t=>t.length===e)},longest:n=>{let e=Math.max(...n.map(t=>t.length));return n.filter(t=>t.length===e)},"any-length":n=>[...n]};function s1(n){let{wordList:e,length:t,strategy:i="any-length"}=n;if(t){let r=typeof t=="number"?s=>s.length===t:s=>s.length>=t.min&&s.length<=t.max,o=e.filter(r);return o.length>0?o:typeof t=="number"?g$[i](e,{min:t,max:t}):g$[i](e,t)}else if(i==="shortest"||i==="longest")return g$[i](e);return[...e]}var gPt=class extends Ms{word(e={}){let t=typeof e=="number"?{length:e}:e;return this.faker.helpers.arrayElement(s1({...t,wordList:this.faker.definitions.lorem.words}))}words(e=3){return this.faker.helpers.multiple(()=>this.word(),{count:e}).join(" ")}sentence(e={min:3,max:10}){let t=this.words(e);return`${t.charAt(0).toUpperCase()+t.substring(1)}.`}slug(e=3){let t=this.words(e);return this.faker.helpers.slugify(t)}sentences(e={min:2,max:6},t=" "){return this.faker.helpers.multiple(()=>this.sentence(),{count:e}).join(t)}paragraph(e=3){return this.sentences(e)}paragraphs(e=3,t=` +`){return this.faker.helpers.multiple(()=>this.paragraph(),{count:e}).join(t)}text(){let e=["sentence","sentences","paragraph","paragraphs","lines"],t=this.faker.helpers.arrayElement(e);return this[t]()}lines(e={min:1,max:5}){return this.sentences(e,` +`)}},mPt=class extends Ms{genre(){return this.faker.helpers.arrayElement(this.faker.definitions.music.genre)}songName(){return this.faker.helpers.arrayElement(this.faker.definitions.music.song_name)}},fPt=class extends Ms{number(e){return e!=null&&Ht({deprecated:"faker.phone.number(format)",proposed:"faker.phone.number(), faker.string.numeric() or faker.helpers.fromRegExp()",since:"8.1",until:"9.0"}),e=e??this.faker.helpers.arrayElement(this.faker.definitions.phone_number.formats),h$(this.faker,e)}imei(){return this.faker.helpers.replaceCreditCardSymbols("##-######-######-L","#")}},pPt=class extends Ms{word(){Ht({deprecated:"faker.random.word()",proposed:"faker.lorem.word() or faker.word.sample()",since:"8.0",until:"9.0"});let e=[()=>this.faker.location.cardinalDirection(),this.faker.location.country,this.faker.location.county,()=>this.faker.location.direction(),()=>this.faker.location.ordinalDirection(),this.faker.location.state,this.faker.location.street,this.faker.color.human,this.faker.commerce.department,this.faker.commerce.product,this.faker.commerce.productAdjective,this.faker.commerce.productMaterial,this.faker.commerce.productName,this.faker.company.buzzAdjective,this.faker.company.buzzNoun,this.faker.company.buzzVerb,this.faker.company.catchPhraseAdjective,this.faker.company.catchPhraseDescriptor,this.faker.company.catchPhraseNoun,this.faker.finance.accountName,this.faker.finance.currencyName,this.faker.finance.transactionType,this.faker.hacker.abbreviation,this.faker.hacker.adjective,this.faker.hacker.ingverb,this.faker.hacker.noun,this.faker.hacker.verb,this.faker.lorem.word,this.faker.music.genre,this.faker.person.gender,this.faker.person.jobArea,this.faker.person.jobDescriptor,this.faker.person.jobTitle,this.faker.person.jobType,this.faker.person.sex,()=>this.faker.science.chemicalElement().name,()=>this.faker.science.unit().name,this.faker.vehicle.bicycle,this.faker.vehicle.color,this.faker.vehicle.fuel,this.faker.vehicle.manufacturer,this.faker.vehicle.type,this.faker.word.adjective,this.faker.word.adverb,this.faker.word.conjunction,this.faker.word.interjection,this.faker.word.noun,this.faker.word.preposition,this.faker.word.verb],t=["!","#","%","&","*",")","(","+","=",".","<",">","{","}","[","]",":",";","'",'"',"_","-"],i="",r=0;do{let o=this.faker.helpers.arrayElement(e);try{i=o()}catch{if(r++,r>100)throw new ni("No matching word data available for the current locale");continue}}while(!i||t.some(o=>i.includes(o)));return this.faker.helpers.arrayElement(i.split(" "))}words(e={min:1,max:3}){return Ht({deprecated:"faker.random.words()",proposed:"faker.lorem.words() or faker.word.words()",since:"8.0",until:"9.0"}),this.faker.helpers.multiple(this.word,{count:e}).join(" ")}locale(){throw new ni("This method has been removed. Please use `faker.helpers.objectKey(allLocales/allFakers)` instead.")}alpha(e={}){return Ht({deprecated:"faker.random.alpha()",proposed:"faker.string.alpha()",since:"8.0",until:"9.0"}),typeof e=="number"?this.faker.string.alpha(e):this.faker.string.alpha({length:e.count,casing:e.casing,exclude:e.bannedChars})}alphaNumeric(e=1,t={}){return Ht({deprecated:"faker.random.alphaNumeric()",proposed:"faker.string.alphanumeric()",since:"8.0",until:"9.0"}),this.faker.string.alphanumeric({length:e,exclude:t.bannedChars,casing:t.casing})}numeric(e=1,t={}){return Ht({deprecated:"faker.random.numeric()",proposed:"faker.string.numeric()",since:"8.0",until:"9.0"}),this.faker.string.numeric({length:e,allowLeadingZeros:t.allowLeadingZeros,exclude:t.bannedDigits})}},bPt=class extends Ms{chemicalElement(){return this.faker.helpers.arrayElement(this.faker.definitions.science.chemicalElement)}unit(){return this.faker.helpers.arrayElement(this.faker.definitions.science.unit)}},CPt=["video","audio","image","text","application"],vPt=["application/pdf","audio/mpeg","audio/wav","image/png","image/jpeg","image/gif","video/mp4","video/mpeg","text/html"],yPt=["en","wl","ww"],E_e={index:"o",slot:"s",mac:"x",pci:"p"},IPt=["SUN","MON","TUE","WED","THU","FRI","SAT"],wPt=class extends Ms{fileName(e={}){let{extensionCount:t=1}=e,i=this.faker.word.words().toLowerCase().replace(/\W/g,"_"),r=this.faker.helpers.multiple(()=>this.fileExt(),{count:t}).join(".");return r.length===0?i:`${i}.${r}`}commonFileName(e){return`${this.fileName({extensionCount:0})}.${e||this.commonFileExt()}`}mimeType(){let e=Object.keys(this.faker.definitions.system.mimeTypes);return this.faker.helpers.arrayElement(e)}commonFileType(){return this.faker.helpers.arrayElement(CPt)}commonFileExt(){return this.fileExt(this.faker.helpers.arrayElement(vPt))}fileType(){let e=this.faker.definitions.system.mimeTypes,t=new Set(Object.keys(e).map(i=>i.split("/")[0]));return this.faker.helpers.arrayElement([...t])}fileExt(e){let t=this.faker.definitions.system.mimeTypes;if(typeof e=="string")return this.faker.helpers.arrayElement(t[e].extensions);let i=new Set(Object.values(t).flatMap(({extensions:r})=>r));return this.faker.helpers.arrayElement([...i])}directoryPath(){let e=this.faker.definitions.system.directoryPaths;return this.faker.helpers.arrayElement(e)}filePath(){return`${this.directoryPath()}/${this.fileName()}`}semver(){return[this.faker.number.int(9),this.faker.number.int(9),this.faker.number.int(9)].join(".")}networkInterface(e={}){var t,i,r,o,s;let{interfaceType:a=this.faker.helpers.arrayElement(yPt),interfaceSchema:l=this.faker.helpers.objectKey(E_e)}=e,u,c="",d=()=>this.faker.string.numeric({allowLeadingZeros:!0});switch(l){case"index":u=d();break;case"slot":u=`${d()}${(t=this.faker.helpers.maybe(()=>`f${d()}`))!=null?t:""}${(i=this.faker.helpers.maybe(()=>`d${d()}`))!=null?i:""}`;break;case"mac":u=this.faker.internet.mac("");break;case"pci":c=(r=this.faker.helpers.maybe(()=>`P${d()}`))!=null?r:"",u=`${d()}s${d()}${(o=this.faker.helpers.maybe(()=>`f${d()}`))!=null?o:""}${(s=this.faker.helpers.maybe(()=>`d${d()}`))!=null?s:""}`;break}return`${c}${a}${E_e[l]}${u}`}cron(e={}){let{includeYear:t=!1,includeNonStandard:i=!1}=e,r=[this.faker.number.int(59),"*"],o=[this.faker.number.int(23),"*"],s=[this.faker.number.int({min:1,max:31}),"*","?"],a=[this.faker.number.int({min:1,max:12}),"*"],l=[this.faker.number.int(6),this.faker.helpers.arrayElement(IPt),"*","?"],u=[this.faker.number.int({min:1970,max:2099}),"*"],c=this.faker.helpers.arrayElement(r),d=this.faker.helpers.arrayElement(o),h=this.faker.helpers.arrayElement(s),g=this.faker.helpers.arrayElement(a),m=this.faker.helpers.arrayElement(l),f=this.faker.helpers.arrayElement(u),b=`${c} ${d} ${h} ${g} ${m}`;t&&(b+=` ${f}`);let C=["@annually","@daily","@hourly","@monthly","@reboot","@weekly","@yearly"];return!i||this.faker.datatype.boolean()?b:this.faker.helpers.arrayElement(C)}},SPt=class extends Ms{vehicle(){return`${this.manufacturer()} ${this.model()}`}manufacturer(){return this.faker.helpers.arrayElement(this.faker.definitions.vehicle.manufacturer)}model(){return this.faker.helpers.arrayElement(this.faker.definitions.vehicle.model)}type(){return this.faker.helpers.arrayElement(this.faker.definitions.vehicle.type)}fuel(){return this.faker.helpers.arrayElement(this.faker.definitions.vehicle.fuel)}vin(){let e=["o","i","q","O","I","Q"];return`${this.faker.string.alphanumeric({length:10,casing:"upper",exclude:e})}${this.faker.string.alpha({length:1,casing:"upper",exclude:e})}${this.faker.string.alphanumeric({length:1,casing:"upper",exclude:e})}${this.faker.number.int({min:1e4,max:99999})}`}color(){return this.faker.color.human()}vrm(){return`${this.faker.string.alpha({length:2,casing:"upper"})}${this.faker.string.numeric({length:2,allowLeadingZeros:!0})}${this.faker.string.alpha({length:3,casing:"upper"})}`}bicycle(){return this.faker.helpers.arrayElement(this.faker.definitions.vehicle.bicycle_type)}},xPt=class extends Ms{adjective(e={}){let t=typeof e=="number"?{length:e}:e;return this.faker.helpers.arrayElement(s1({...t,wordList:this.faker.definitions.word.adjective}))}adverb(e={}){let t=typeof e=="number"?{length:e}:e;return this.faker.helpers.arrayElement(s1({...t,wordList:this.faker.definitions.word.adverb}))}conjunction(e={}){let t=typeof e=="number"?{length:e}:e;return this.faker.helpers.arrayElement(s1({...t,wordList:this.faker.definitions.word.conjunction}))}interjection(e={}){let t=typeof e=="number"?{length:e}:e;return this.faker.helpers.arrayElement(s1({...t,wordList:this.faker.definitions.word.interjection}))}noun(e={}){let t=typeof e=="number"?{length:e}:e;return this.faker.helpers.arrayElement(s1({...t,wordList:this.faker.definitions.word.noun}))}preposition(e={}){let t=typeof e=="number"?{length:e}:e;return this.faker.helpers.arrayElement(s1({...t,wordList:this.faker.definitions.word.preposition}))}verb(e={}){let t=typeof e=="number"?{length:e}:e;return this.faker.helpers.arrayElement(s1({...t,wordList:this.faker.definitions.word.verb}))}sample(e={}){let t=this.faker.helpers.shuffle([this.adjective,this.adverb,this.conjunction,this.interjection,this.noun,this.preposition,this.verb]);for(let i of t)try{return i(e)}catch{continue}throw new ni("No matching word data available for the current locale")}words(e={}){typeof e=="number"&&(e={count:e});let{count:t={min:1,max:3}}=e;return this.faker.helpers.multiple(()=>this.sample(),{count:t}).join(" ")}},LPt=class extends Z_e{constructor(e){super({randomizer:e.randomizer}),Li(this,"rawDefinitions"),Li(this,"definitions"),Li(this,"random",new pPt(this)),Li(this,"airline",new v4t(this)),Li(this,"animal",new B4t(this)),Li(this,"color",new w4t(this)),Li(this,"commerce",new Y4t(this)),Li(this,"company",new H4t(this)),Li(this,"database",new U4t(this)),Li(this,"date",new A4t(this)),Li(this,"finance",new j4t(this)),Li(this,"git",new $4t(this)),Li(this,"hacker",new q4t(this)),Li(this,"helpers",new V4t(this)),Li(this,"image",new iPt(this)),Li(this,"internet",new cPt(this)),Li(this,"location",new dPt(this)),Li(this,"lorem",new gPt(this)),Li(this,"music",new mPt(this)),Li(this,"person",new L4t(this)),Li(this,"phone",new fPt(this)),Li(this,"science",new bPt(this)),Li(this,"system",new wPt(this)),Li(this,"vehicle",new SPt(this)),Li(this,"word",new xPt(this));let{locales:t}=e;if(t!=null){Ht({deprecated:"new Faker({ locales: {a, b}, locale: 'a', localeFallback: 'b' })",proposed:"new Faker({ locale: [a, b, ...] }) or new Faker({ locale: a })",since:"8.0",until:"9.0"});let{locale:r="en",localeFallback:o="en"}=e;e={locale:[t[r],t[o]]}}let{locale:i}=e;if(Array.isArray(i)){if(i.length===0)throw new ni("The locale option must contain at least one locale definition.");i=O4t(i)}this.rawDefinitions=i,this.definitions=S4t(this.rawDefinitions)}get address(){return Ht({deprecated:"faker.address",proposed:"faker.location",since:"8.0",until:"10.0"}),this.location}get name(){return Ht({deprecated:"faker.name",proposed:"faker.person",since:"8.0",until:"10.0"}),this.person}getMetadata(){var e;return(e=this.rawDefinitions.metadata)!=null?e:{}}get locales(){throw new ni("The locales property has been removed. Please use the constructor instead.")}set locales(e){throw new ni("The locales property has been removed. Please use the constructor instead.")}get locale(){throw new ni("The locale property has been removed. Please use the constructor instead.")}set locale(e){throw new ni("The locale property has been removed. Please use the constructor instead.")}get localeFallback(){throw new ni("The localeFallback property has been removed. Please use the constructor instead.")}set localeFallback(e){throw new ni("The localeFallback property has been removed. Please use the constructor instead.")}setLocale(){throw new ni("This method has been removed. Please use the constructor instead.")}},FPt=["CIE 1931 XYZ","CIEUVW","Uniform Color Spaces (UCSs)","CIELUV","CIELAB","HSLuv","sRGB","Adobe RGB","Adobe Wide Gamut RGB","Rec. 2100","ProPhoto RGB Color Space","scRGB","DCI-P3","Display-P3","Rec. 601","Rec. 709","Academy Color Encoding System (ACES)","Rec. 2020","YPbPr","YDbDr","YIQ","xvYCC","sYCC","HSV","HSL","HWB","RGBA","HSLA","LCh","CMY","CMYK","Munsell Color System","Natural Color System (NSC)","Pantone Matching System (PMS)","RAL","Federal Standard 595C","British Standard Colour (BS)","HKS","LMS","RG","RGK"],_Pt={space:FPt},DPt=_Pt,APt=["utf8_unicode_ci","utf8_general_ci","utf8_bin","ascii_bin","ascii_general_ci","cp1250_bin","cp1250_general_ci"],NPt=["InnoDB","MyISAM","MEMORY","CSV","BLACKHOLE","ARCHIVE"],kPt=["int","varchar","text","date","datetime","tinyint","time","timestamp","smallint","mediumint","bigint","decimal","float","double","real","bit","boolean","serial","blob","binary","enum","set","geometry","point"],MPt={collation:APt,engine:NPt,type:kPt},ZPt=MPt,TPt=["ADP","AGP","AI","API","ASCII","CLI","COM","CSS","DNS","DRAM","EXE","FTP","GB","HDD","HEX","HTTP","IB","IP","JBOD","JSON","OCR","PCI","PNG","RAM","RSS","SAS","SCSI","SDD","SMS","SMTP","SQL","SSD","SSL","TCP","THX","TLS","UDP","USB","UTF8","VGA","XML","XSS"],EPt={abbreviation:TPt},WPt=EPt,RPt={smiley:["😀","😃","😄","😁","😆","😅","🤣","😂","🙂","🙃","😉","😊","😇","🥰","😍","🤩","😘","😗","☺️","😚","😙","🥲","😋","😛","😜","🤪","😝","🤑","🤗","🤭","🤫","🤔","🤐","🤨","😐","😑","😶","😶‍🌫️","😏","😒","🙄","😬","😮‍💨","🤥","😌","😔","😪","🤤","😴","😷","🤒","🤕","🤢","🤮","🤧","🥵","🥶","🥴","😵","😵‍💫","🤯","🤠","🥳","🥸","😎","🤓","🧐","😕","😟","🙁","☹️","😮","😯","😲","😳","🥺","😦","😧","😨","😰","😥","😢","😭","😱","😖","😣","😞","😓","😩","😫","🥱","😤","😡","😠","🤬","😈","👿","💀","☠️","💩","🤡","👹","👺","👻","👽","👾","🤖","😺","😸","😹","😻","😼","😽","🙀","😿","😾","🙈","🙉","🙊","💋","💌","💘","💝","💖","💗","💓","💞","💕","💟","❣️","💔","❤️‍🔥","❤️‍🩹","❤️","🧡","💛","💚","💙","💜","🤎","🖤","🤍","💯","💢","💥","💫","💦","💨","🕳️","💣","💬","👁️‍🗨️","🗨️","🗯️","💭","💤"],body:["👋","👋🏻","👋🏼","👋🏽","👋🏾","👋🏿","🤚","🤚🏻","🤚🏼","🤚🏽","🤚🏾","🤚🏿","🖐️","🖐🏻","🖐🏼","🖐🏽","🖐🏾","🖐🏿","✋","✋🏻","✋🏼","✋🏽","✋🏾","✋🏿","🖖","🖖🏻","🖖🏼","🖖🏽","🖖🏾","🖖🏿","👌","👌🏻","👌🏼","👌🏽","👌🏾","👌🏿","🤌","🤌🏻","🤌🏼","🤌🏽","🤌🏾","🤌🏿","🤏","🤏🏻","🤏🏼","🤏🏽","🤏🏾","🤏🏿","✌️","✌🏻","✌🏼","✌🏽","✌🏾","✌🏿","🤞","🤞🏻","🤞🏼","🤞🏽","🤞🏾","🤞🏿","🤟","🤟🏻","🤟🏼","🤟🏽","🤟🏾","🤟🏿","🤘","🤘🏻","🤘🏼","🤘🏽","🤘🏾","🤘🏿","🤙","🤙🏻","🤙🏼","🤙🏽","🤙🏾","🤙🏿","👈","👈🏻","👈🏼","👈🏽","👈🏾","👈🏿","👉","👉🏻","👉🏼","👉🏽","👉🏾","👉🏿","👆","👆🏻","👆🏼","👆🏽","👆🏾","👆🏿","🖕","🖕🏻","🖕🏼","🖕🏽","🖕🏾","🖕🏿","👇","👇🏻","👇🏼","👇🏽","👇🏾","👇🏿","☝️","☝🏻","☝🏼","☝🏽","☝🏾","☝🏿","👍","👍🏻","👍🏼","👍🏽","👍🏾","👍🏿","👎","👎🏻","👎🏼","👎🏽","👎🏾","👎🏿","✊","✊🏻","✊🏼","✊🏽","✊🏾","✊🏿","👊","👊🏻","👊🏼","👊🏽","👊🏾","👊🏿","🤛","🤛🏻","🤛🏼","🤛🏽","🤛🏾","🤛🏿","🤜","🤜🏻","🤜🏼","🤜🏽","🤜🏾","🤜🏿","👏","👏🏻","👏🏼","👏🏽","👏🏾","👏🏿","🙌","🙌🏻","🙌🏼","🙌🏽","🙌🏾","🙌🏿","👐","👐🏻","👐🏼","👐🏽","👐🏾","👐🏿","🤲","🤲🏻","🤲🏼","🤲🏽","🤲🏾","🤲🏿","🤝","🙏","🙏🏻","🙏🏼","🙏🏽","🙏🏾","🙏🏿","✍️","✍🏻","✍🏼","✍🏽","✍🏾","✍🏿","💅","💅🏻","💅🏼","💅🏽","💅🏾","💅🏿","🤳","🤳🏻","🤳🏼","🤳🏽","🤳🏾","🤳🏿","💪","💪🏻","💪🏼","💪🏽","💪🏾","💪🏿","🦾","🦿","🦵","🦵🏻","🦵🏼","🦵🏽","🦵🏾","🦵🏿","🦶","🦶🏻","🦶🏼","🦶🏽","🦶🏾","🦶🏿","👂","👂🏻","👂🏼","👂🏽","👂🏾","👂🏿","🦻","🦻🏻","🦻🏼","🦻🏽","🦻🏾","🦻🏿","👃","👃🏻","👃🏼","👃🏽","👃🏾","👃🏿","🧠","🫀","🫁","🦷","🦴","👀","👁️","👅","👄"],person:["👶","👶🏻","👶🏼","👶🏽","👶🏾","👶🏿","🧒","🧒🏻","🧒🏼","🧒🏽","🧒🏾","🧒🏿","👦","👦🏻","👦🏼","👦🏽","👦🏾","👦🏿","👧","👧🏻","👧🏼","👧🏽","👧🏾","👧🏿","🧑","🧑🏻","🧑🏼","🧑🏽","🧑🏾","🧑🏿","👱","👱🏻","👱🏼","👱🏽","👱🏾","👱🏿","👨","👨🏻","👨🏼","👨🏽","👨🏾","👨🏿","🧔","🧔🏻","🧔🏼","🧔🏽","🧔🏾","🧔🏿","🧔‍♂️","🧔🏻‍♂️","🧔🏼‍♂️","🧔🏽‍♂️","🧔🏾‍♂️","🧔🏿‍♂️","🧔‍♀️","🧔🏻‍♀️","🧔🏼‍♀️","🧔🏽‍♀️","🧔🏾‍♀️","🧔🏿‍♀️","👨‍🦰","👨🏻‍🦰","👨🏼‍🦰","👨🏽‍🦰","👨🏾‍🦰","👨🏿‍🦰","👨‍🦱","👨🏻‍🦱","👨🏼‍🦱","👨🏽‍🦱","👨🏾‍🦱","👨🏿‍🦱","👨‍🦳","👨🏻‍🦳","👨🏼‍🦳","👨🏽‍🦳","👨🏾‍🦳","👨🏿‍🦳","👨‍🦲","👨🏻‍🦲","👨🏼‍🦲","👨🏽‍🦲","👨🏾‍🦲","👨🏿‍🦲","👩","👩🏻","👩🏼","👩🏽","👩🏾","👩🏿","👩‍🦰","👩🏻‍🦰","👩🏼‍🦰","👩🏽‍🦰","👩🏾‍🦰","👩🏿‍🦰","🧑‍🦰","🧑🏻‍🦰","🧑🏼‍🦰","🧑🏽‍🦰","🧑🏾‍🦰","🧑🏿‍🦰","👩‍🦱","👩🏻‍🦱","👩🏼‍🦱","👩🏽‍🦱","👩🏾‍🦱","👩🏿‍🦱","🧑‍🦱","🧑🏻‍🦱","🧑🏼‍🦱","🧑🏽‍🦱","🧑🏾‍🦱","🧑🏿‍🦱","👩‍🦳","👩🏻‍🦳","👩🏼‍🦳","👩🏽‍🦳","👩🏾‍🦳","👩🏿‍🦳","🧑‍🦳","🧑🏻‍🦳","🧑🏼‍🦳","🧑🏽‍🦳","🧑🏾‍🦳","🧑🏿‍🦳","👩‍🦲","👩🏻‍🦲","👩🏼‍🦲","👩🏽‍🦲","👩🏾‍🦲","👩🏿‍🦲","🧑‍🦲","🧑🏻‍🦲","🧑🏼‍🦲","🧑🏽‍🦲","🧑🏾‍🦲","🧑🏿‍🦲","👱‍♀️","👱🏻‍♀️","👱🏼‍♀️","👱🏽‍♀️","👱🏾‍♀️","👱🏿‍♀️","👱‍♂️","👱🏻‍♂️","👱🏼‍♂️","👱🏽‍♂️","👱🏾‍♂️","👱🏿‍♂️","🧓","🧓🏻","🧓🏼","🧓🏽","🧓🏾","🧓🏿","👴","👴🏻","👴🏼","👴🏽","👴🏾","👴🏿","👵","👵🏻","👵🏼","👵🏽","👵🏾","👵🏿","🙍","🙍🏻","🙍🏼","🙍🏽","🙍🏾","🙍🏿","🙍‍♂️","🙍🏻‍♂️","🙍🏼‍♂️","🙍🏽‍♂️","🙍🏾‍♂️","🙍🏿‍♂️","🙍‍♀️","🙍🏻‍♀️","🙍🏼‍♀️","🙍🏽‍♀️","🙍🏾‍♀️","🙍🏿‍♀️","🙎","🙎🏻","🙎🏼","🙎🏽","🙎🏾","🙎🏿","🙎‍♂️","🙎🏻‍♂️","🙎🏼‍♂️","🙎🏽‍♂️","🙎🏾‍♂️","🙎🏿‍♂️","🙎‍♀️","🙎🏻‍♀️","🙎🏼‍♀️","🙎🏽‍♀️","🙎🏾‍♀️","🙎🏿‍♀️","🙅","🙅🏻","🙅🏼","🙅🏽","🙅🏾","🙅🏿","🙅‍♂️","🙅🏻‍♂️","🙅🏼‍♂️","🙅🏽‍♂️","🙅🏾‍♂️","🙅🏿‍♂️","🙅‍♀️","🙅🏻‍♀️","🙅🏼‍♀️","🙅🏽‍♀️","🙅🏾‍♀️","🙅🏿‍♀️","🙆","🙆🏻","🙆🏼","🙆🏽","🙆🏾","🙆🏿","🙆‍♂️","🙆🏻‍♂️","🙆🏼‍♂️","🙆🏽‍♂️","🙆🏾‍♂️","🙆🏿‍♂️","🙆‍♀️","🙆🏻‍♀️","🙆🏼‍♀️","🙆🏽‍♀️","🙆🏾‍♀️","🙆🏿‍♀️","💁","💁🏻","💁🏼","💁🏽","💁🏾","💁🏿","💁‍♂️","💁🏻‍♂️","💁🏼‍♂️","💁🏽‍♂️","💁🏾‍♂️","💁🏿‍♂️","💁‍♀️","💁🏻‍♀️","💁🏼‍♀️","💁🏽‍♀️","💁🏾‍♀️","💁🏿‍♀️","🙋","🙋🏻","🙋🏼","🙋🏽","🙋🏾","🙋🏿","🙋‍♂️","🙋🏻‍♂️","🙋🏼‍♂️","🙋🏽‍♂️","🙋🏾‍♂️","🙋🏿‍♂️","🙋‍♀️","🙋🏻‍♀️","🙋🏼‍♀️","🙋🏽‍♀️","🙋🏾‍♀️","🙋🏿‍♀️","🧏","🧏🏻","🧏🏼","🧏🏽","🧏🏾","🧏🏿","🧏‍♂️","🧏🏻‍♂️","🧏🏼‍♂️","🧏🏽‍♂️","🧏🏾‍♂️","🧏🏿‍♂️","🧏‍♀️","🧏🏻‍♀️","🧏🏼‍♀️","🧏🏽‍♀️","🧏🏾‍♀️","🧏🏿‍♀️","🙇","🙇🏻","🙇🏼","🙇🏽","🙇🏾","🙇🏿","🙇‍♂️","🙇🏻‍♂️","🙇🏼‍♂️","🙇🏽‍♂️","🙇🏾‍♂️","🙇🏿‍♂️","🙇‍♀️","🙇🏻‍♀️","🙇🏼‍♀️","🙇🏽‍♀️","🙇🏾‍♀️","🙇🏿‍♀️","🤦","🤦🏻","🤦🏼","🤦🏽","🤦🏾","🤦🏿","🤦‍♂️","🤦🏻‍♂️","🤦🏼‍♂️","🤦🏽‍♂️","🤦🏾‍♂️","🤦🏿‍♂️","🤦‍♀️","🤦🏻‍♀️","🤦🏼‍♀️","🤦🏽‍♀️","🤦🏾‍♀️","🤦🏿‍♀️","🤷","🤷🏻","🤷🏼","🤷🏽","🤷🏾","🤷🏿","🤷‍♂️","🤷🏻‍♂️","🤷🏼‍♂️","🤷🏽‍♂️","🤷🏾‍♂️","🤷🏿‍♂️","🤷‍♀️","🤷🏻‍♀️","🤷🏼‍♀️","🤷🏽‍♀️","🤷🏾‍♀️","🤷🏿‍♀️","🧑‍⚕️","🧑🏻‍⚕️","🧑🏼‍⚕️","🧑🏽‍⚕️","🧑🏾‍⚕️","🧑🏿‍⚕️","👨‍⚕️","👨🏻‍⚕️","👨🏼‍⚕️","👨🏽‍⚕️","👨🏾‍⚕️","👨🏿‍⚕️","👩‍⚕️","👩🏻‍⚕️","👩🏼‍⚕️","👩🏽‍⚕️","👩🏾‍⚕️","👩🏿‍⚕️","🧑‍🎓","🧑🏻‍🎓","🧑🏼‍🎓","🧑🏽‍🎓","🧑🏾‍🎓","🧑🏿‍🎓","👨‍🎓","👨🏻‍🎓","👨🏼‍🎓","👨🏽‍🎓","👨🏾‍🎓","👨🏿‍🎓","👩‍🎓","👩🏻‍🎓","👩🏼‍🎓","👩🏽‍🎓","👩🏾‍🎓","👩🏿‍🎓","🧑‍🏫","🧑🏻‍🏫","🧑🏼‍🏫","🧑🏽‍🏫","🧑🏾‍🏫","🧑🏿‍🏫","👨‍🏫","👨🏻‍🏫","👨🏼‍🏫","👨🏽‍🏫","👨🏾‍🏫","👨🏿‍🏫","👩‍🏫","👩🏻‍🏫","👩🏼‍🏫","👩🏽‍🏫","👩🏾‍🏫","👩🏿‍🏫","🧑‍⚖️","🧑🏻‍⚖️","🧑🏼‍⚖️","🧑🏽‍⚖️","🧑🏾‍⚖️","🧑🏿‍⚖️","👨‍⚖️","👨🏻‍⚖️","👨🏼‍⚖️","👨🏽‍⚖️","👨🏾‍⚖️","👨🏿‍⚖️","👩‍⚖️","👩🏻‍⚖️","👩🏼‍⚖️","👩🏽‍⚖️","👩🏾‍⚖️","👩🏿‍⚖️","🧑‍🌾","🧑🏻‍🌾","🧑🏼‍🌾","🧑🏽‍🌾","🧑🏾‍🌾","🧑🏿‍🌾","👨‍🌾","👨🏻‍🌾","👨🏼‍🌾","👨🏽‍🌾","👨🏾‍🌾","👨🏿‍🌾","👩‍🌾","👩🏻‍🌾","👩🏼‍🌾","👩🏽‍🌾","👩🏾‍🌾","👩🏿‍🌾","🧑‍🍳","🧑🏻‍🍳","🧑🏼‍🍳","🧑🏽‍🍳","🧑🏾‍🍳","🧑🏿‍🍳","👨‍🍳","👨🏻‍🍳","👨🏼‍🍳","👨🏽‍🍳","👨🏾‍🍳","👨🏿‍🍳","👩‍🍳","👩🏻‍🍳","👩🏼‍🍳","👩🏽‍🍳","👩🏾‍🍳","👩🏿‍🍳","🧑‍🔧","🧑🏻‍🔧","🧑🏼‍🔧","🧑🏽‍🔧","🧑🏾‍🔧","🧑🏿‍🔧","👨‍🔧","👨🏻‍🔧","👨🏼‍🔧","👨🏽‍🔧","👨🏾‍🔧","👨🏿‍🔧","👩‍🔧","👩🏻‍🔧","👩🏼‍🔧","👩🏽‍🔧","👩🏾‍🔧","👩🏿‍🔧","🧑‍🏭","🧑🏻‍🏭","🧑🏼‍🏭","🧑🏽‍🏭","🧑🏾‍🏭","🧑🏿‍🏭","👨‍🏭","👨🏻‍🏭","👨🏼‍🏭","👨🏽‍🏭","👨🏾‍🏭","👨🏿‍🏭","👩‍🏭","👩🏻‍🏭","👩🏼‍🏭","👩🏽‍🏭","👩🏾‍🏭","👩🏿‍🏭","🧑‍💼","🧑🏻‍💼","🧑🏼‍💼","🧑🏽‍💼","🧑🏾‍💼","🧑🏿‍💼","👨‍💼","👨🏻‍💼","👨🏼‍💼","👨🏽‍💼","👨🏾‍💼","👨🏿‍💼","👩‍💼","👩🏻‍💼","👩🏼‍💼","👩🏽‍💼","👩🏾‍💼","👩🏿‍💼","🧑‍🔬","🧑🏻‍🔬","🧑🏼‍🔬","🧑🏽‍🔬","🧑🏾‍🔬","🧑🏿‍🔬","👨‍🔬","👨🏻‍🔬","👨🏼‍🔬","👨🏽‍🔬","👨🏾‍🔬","👨🏿‍🔬","👩‍🔬","👩🏻‍🔬","👩🏼‍🔬","👩🏽‍🔬","👩🏾‍🔬","👩🏿‍🔬","🧑‍💻","🧑🏻‍💻","🧑🏼‍💻","🧑🏽‍💻","🧑🏾‍💻","🧑🏿‍💻","👨‍💻","👨🏻‍💻","👨🏼‍💻","👨🏽‍💻","👨🏾‍💻","👨🏿‍💻","👩‍💻","👩🏻‍💻","👩🏼‍💻","👩🏽‍💻","👩🏾‍💻","👩🏿‍💻","🧑‍🎤","🧑🏻‍🎤","🧑🏼‍🎤","🧑🏽‍🎤","🧑🏾‍🎤","🧑🏿‍🎤","👨‍🎤","👨🏻‍🎤","👨🏼‍🎤","👨🏽‍🎤","👨🏾‍🎤","👨🏿‍🎤","👩‍🎤","👩🏻‍🎤","👩🏼‍🎤","👩🏽‍🎤","👩🏾‍🎤","👩🏿‍🎤","🧑‍🎨","🧑🏻‍🎨","🧑🏼‍🎨","🧑🏽‍🎨","🧑🏾‍🎨","🧑🏿‍🎨","👨‍🎨","👨🏻‍🎨","👨🏼‍🎨","👨🏽‍🎨","👨🏾‍🎨","👨🏿‍🎨","👩‍🎨","👩🏻‍🎨","👩🏼‍🎨","👩🏽‍🎨","👩🏾‍🎨","👩🏿‍🎨","🧑‍✈️","🧑🏻‍✈️","🧑🏼‍✈️","🧑🏽‍✈️","🧑🏾‍✈️","🧑🏿‍✈️","👨‍✈️","👨🏻‍✈️","👨🏼‍✈️","👨🏽‍✈️","👨🏾‍✈️","👨🏿‍✈️","👩‍✈️","👩🏻‍✈️","👩🏼‍✈️","👩🏽‍✈️","👩🏾‍✈️","👩🏿‍✈️","🧑‍🚀","🧑🏻‍🚀","🧑🏼‍🚀","🧑🏽‍🚀","🧑🏾‍🚀","🧑🏿‍🚀","👨‍🚀","👨🏻‍🚀","👨🏼‍🚀","👨🏽‍🚀","👨🏾‍🚀","👨🏿‍🚀","👩‍🚀","👩🏻‍🚀","👩🏼‍🚀","👩🏽‍🚀","👩🏾‍🚀","👩🏿‍🚀","🧑‍🚒","🧑🏻‍🚒","🧑🏼‍🚒","🧑🏽‍🚒","🧑🏾‍🚒","🧑🏿‍🚒","👨‍🚒","👨🏻‍🚒","👨🏼‍🚒","👨🏽‍🚒","👨🏾‍🚒","👨🏿‍🚒","👩‍🚒","👩🏻‍🚒","👩🏼‍🚒","👩🏽‍🚒","👩🏾‍🚒","👩🏿‍🚒","👮","👮🏻","👮🏼","👮🏽","👮🏾","👮🏿","👮‍♂️","👮🏻‍♂️","👮🏼‍♂️","👮🏽‍♂️","👮🏾‍♂️","👮🏿‍♂️","👮‍♀️","👮🏻‍♀️","👮🏼‍♀️","👮🏽‍♀️","👮🏾‍♀️","👮🏿‍♀️","🕵️","🕵🏻","🕵🏼","🕵🏽","🕵🏾","🕵🏿","🕵️‍♂️","🕵🏻‍♂️","🕵🏼‍♂️","🕵🏽‍♂️","🕵🏾‍♂️","🕵🏿‍♂️","🕵️‍♀️","🕵🏻‍♀️","🕵🏼‍♀️","🕵🏽‍♀️","🕵🏾‍♀️","🕵🏿‍♀️","💂","💂🏻","💂🏼","💂🏽","💂🏾","💂🏿","💂‍♂️","💂🏻‍♂️","💂🏼‍♂️","💂🏽‍♂️","💂🏾‍♂️","💂🏿‍♂️","💂‍♀️","💂🏻‍♀️","💂🏼‍♀️","💂🏽‍♀️","💂🏾‍♀️","💂🏿‍♀️","🥷","🥷🏻","🥷🏼","🥷🏽","🥷🏾","🥷🏿","👷","👷🏻","👷🏼","👷🏽","👷🏾","👷🏿","👷‍♂️","👷🏻‍♂️","👷🏼‍♂️","👷🏽‍♂️","👷🏾‍♂️","👷🏿‍♂️","👷‍♀️","👷🏻‍♀️","👷🏼‍♀️","👷🏽‍♀️","👷🏾‍♀️","👷🏿‍♀️","🤴","🤴🏻","🤴🏼","🤴🏽","🤴🏾","🤴🏿","👸","👸🏻","👸🏼","👸🏽","👸🏾","👸🏿","👳","👳🏻","👳🏼","👳🏽","👳🏾","👳🏿","👳‍♂️","👳🏻‍♂️","👳🏼‍♂️","👳🏽‍♂️","👳🏾‍♂️","👳🏿‍♂️","👳‍♀️","👳🏻‍♀️","👳🏼‍♀️","👳🏽‍♀️","👳🏾‍♀️","👳🏿‍♀️","👲","👲🏻","👲🏼","👲🏽","👲🏾","👲🏿","🧕","🧕🏻","🧕🏼","🧕🏽","🧕🏾","🧕🏿","🤵","🤵🏻","🤵🏼","🤵🏽","🤵🏾","🤵🏿","🤵‍♂️","🤵🏻‍♂️","🤵🏼‍♂️","🤵🏽‍♂️","🤵🏾‍♂️","🤵🏿‍♂️","🤵‍♀️","🤵🏻‍♀️","🤵🏼‍♀️","🤵🏽‍♀️","🤵🏾‍♀️","🤵🏿‍♀️","👰","👰🏻","👰🏼","👰🏽","👰🏾","👰🏿","👰‍♂️","👰🏻‍♂️","👰🏼‍♂️","👰🏽‍♂️","👰🏾‍♂️","👰🏿‍♂️","👰‍♀️","👰🏻‍♀️","👰🏼‍♀️","👰🏽‍♀️","👰🏾‍♀️","👰🏿‍♀️","🤰","🤰🏻","🤰🏼","🤰🏽","🤰🏾","🤰🏿","🤱","🤱🏻","🤱🏼","🤱🏽","🤱🏾","🤱🏿","👩‍🍼","👩🏻‍🍼","👩🏼‍🍼","👩🏽‍🍼","👩🏾‍🍼","👩🏿‍🍼","👨‍🍼","👨🏻‍🍼","👨🏼‍🍼","👨🏽‍🍼","👨🏾‍🍼","👨🏿‍🍼","🧑‍🍼","🧑🏻‍🍼","🧑🏼‍🍼","🧑🏽‍🍼","🧑🏾‍🍼","🧑🏿‍🍼","👼","👼🏻","👼🏼","👼🏽","👼🏾","👼🏿","🎅","🎅🏻","🎅🏼","🎅🏽","🎅🏾","🎅🏿","🤶","🤶🏻","🤶🏼","🤶🏽","🤶🏾","🤶🏿","🧑‍🎄","🧑🏻‍🎄","🧑🏼‍🎄","🧑🏽‍🎄","🧑🏾‍🎄","🧑🏿‍🎄","🦸","🦸🏻","🦸🏼","🦸🏽","🦸🏾","🦸🏿","🦸‍♂️","🦸🏻‍♂️","🦸🏼‍♂️","🦸🏽‍♂️","🦸🏾‍♂️","🦸🏿‍♂️","🦸‍♀️","🦸🏻‍♀️","🦸🏼‍♀️","🦸🏽‍♀️","🦸🏾‍♀️","🦸🏿‍♀️","🦹","🦹🏻","🦹🏼","🦹🏽","🦹🏾","🦹🏿","🦹‍♂️","🦹🏻‍♂️","🦹🏼‍♂️","🦹🏽‍♂️","🦹🏾‍♂️","🦹🏿‍♂️","🦹‍♀️","🦹🏻‍♀️","🦹🏼‍♀️","🦹🏽‍♀️","🦹🏾‍♀️","🦹🏿‍♀️","🧙","🧙🏻","🧙🏼","🧙🏽","🧙🏾","🧙🏿","🧙‍♂️","🧙🏻‍♂️","🧙🏼‍♂️","🧙🏽‍♂️","🧙🏾‍♂️","🧙🏿‍♂️","🧙‍♀️","🧙🏻‍♀️","🧙🏼‍♀️","🧙🏽‍♀️","🧙🏾‍♀️","🧙🏿‍♀️","🧚","🧚🏻","🧚🏼","🧚🏽","🧚🏾","🧚🏿","🧚‍♂️","🧚🏻‍♂️","🧚🏼‍♂️","🧚🏽‍♂️","🧚🏾‍♂️","🧚🏿‍♂️","🧚‍♀️","🧚🏻‍♀️","🧚🏼‍♀️","🧚🏽‍♀️","🧚🏾‍♀️","🧚🏿‍♀️","🧛","🧛🏻","🧛🏼","🧛🏽","🧛🏾","🧛🏿","🧛‍♂️","🧛🏻‍♂️","🧛🏼‍♂️","🧛🏽‍♂️","🧛🏾‍♂️","🧛🏿‍♂️","🧛‍♀️","🧛🏻‍♀️","🧛🏼‍♀️","🧛🏽‍♀️","🧛🏾‍♀️","🧛🏿‍♀️","🧜","🧜🏻","🧜🏼","🧜🏽","🧜🏾","🧜🏿","🧜‍♂️","🧜🏻‍♂️","🧜🏼‍♂️","🧜🏽‍♂️","🧜🏾‍♂️","🧜🏿‍♂️","🧜‍♀️","🧜🏻‍♀️","🧜🏼‍♀️","🧜🏽‍♀️","🧜🏾‍♀️","🧜🏿‍♀️","🧝","🧝🏻","🧝🏼","🧝🏽","🧝🏾","🧝🏿","🧝‍♂️","🧝🏻‍♂️","🧝🏼‍♂️","🧝🏽‍♂️","🧝🏾‍♂️","🧝🏿‍♂️","🧝‍♀️","🧝🏻‍♀️","🧝🏼‍♀️","🧝🏽‍♀️","🧝🏾‍♀️","🧝🏿‍♀️","🧞","🧞‍♂️","🧞‍♀️","🧟","🧟‍♂️","🧟‍♀️","💆","💆🏻","💆🏼","💆🏽","💆🏾","💆🏿","💆‍♂️","💆🏻‍♂️","💆🏼‍♂️","💆🏽‍♂️","💆🏾‍♂️","💆🏿‍♂️","💆‍♀️","💆🏻‍♀️","💆🏼‍♀️","💆🏽‍♀️","💆🏾‍♀️","💆🏿‍♀️","💇","💇🏻","💇🏼","💇🏽","💇🏾","💇🏿","💇‍♂️","💇🏻‍♂️","💇🏼‍♂️","💇🏽‍♂️","💇🏾‍♂️","💇🏿‍♂️","💇‍♀️","💇🏻‍♀️","💇🏼‍♀️","💇🏽‍♀️","💇🏾‍♀️","💇🏿‍♀️","🚶","🚶🏻","🚶🏼","🚶🏽","🚶🏾","🚶🏿","🚶‍♂️","🚶🏻‍♂️","🚶🏼‍♂️","🚶🏽‍♂️","🚶🏾‍♂️","🚶🏿‍♂️","🚶‍♀️","🚶🏻‍♀️","🚶🏼‍♀️","🚶🏽‍♀️","🚶🏾‍♀️","🚶🏿‍♀️","🧍","🧍🏻","🧍🏼","🧍🏽","🧍🏾","🧍🏿","🧍‍♂️","🧍🏻‍♂️","🧍🏼‍♂️","🧍🏽‍♂️","🧍🏾‍♂️","🧍🏿‍♂️","🧍‍♀️","🧍🏻‍♀️","🧍🏼‍♀️","🧍🏽‍♀️","🧍🏾‍♀️","🧍🏿‍♀️","🧎","🧎🏻","🧎🏼","🧎🏽","🧎🏾","🧎🏿","🧎‍♂️","🧎🏻‍♂️","🧎🏼‍♂️","🧎🏽‍♂️","🧎🏾‍♂️","🧎🏿‍♂️","🧎‍♀️","🧎🏻‍♀️","🧎🏼‍♀️","🧎🏽‍♀️","🧎🏾‍♀️","🧎🏿‍♀️","🧑‍🦯","🧑🏻‍🦯","🧑🏼‍🦯","🧑🏽‍🦯","🧑🏾‍🦯","🧑🏿‍🦯","👨‍🦯","👨🏻‍🦯","👨🏼‍🦯","👨🏽‍🦯","👨🏾‍🦯","👨🏿‍🦯","👩‍🦯","👩🏻‍🦯","👩🏼‍🦯","👩🏽‍🦯","👩🏾‍🦯","👩🏿‍🦯","🧑‍🦼","🧑🏻‍🦼","🧑🏼‍🦼","🧑🏽‍🦼","🧑🏾‍🦼","🧑🏿‍🦼","👨‍🦼","👨🏻‍🦼","👨🏼‍🦼","👨🏽‍🦼","👨🏾‍🦼","👨🏿‍🦼","👩‍🦼","👩🏻‍🦼","👩🏼‍🦼","👩🏽‍🦼","👩🏾‍🦼","👩🏿‍🦼","🧑‍🦽","🧑🏻‍🦽","🧑🏼‍🦽","🧑🏽‍🦽","🧑🏾‍🦽","🧑🏿‍🦽","👨‍🦽","👨🏻‍🦽","👨🏼‍🦽","👨🏽‍🦽","👨🏾‍🦽","👨🏿‍🦽","👩‍🦽","👩🏻‍🦽","👩🏼‍🦽","👩🏽‍🦽","👩🏾‍🦽","👩🏿‍🦽","🏃","🏃🏻","🏃🏼","🏃🏽","🏃🏾","🏃🏿","🏃‍♂️","🏃🏻‍♂️","🏃🏼‍♂️","🏃🏽‍♂️","🏃🏾‍♂️","🏃🏿‍♂️","🏃‍♀️","🏃🏻‍♀️","🏃🏼‍♀️","🏃🏽‍♀️","🏃🏾‍♀️","🏃🏿‍♀️","💃","💃🏻","💃🏼","💃🏽","💃🏾","💃🏿","🕺","🕺🏻","🕺🏼","🕺🏽","🕺🏾","🕺🏿","🕴️","🕴🏻","🕴🏼","🕴🏽","🕴🏾","🕴🏿","👯","👯‍♂️","👯‍♀️","🧖","🧖🏻","🧖🏼","🧖🏽","🧖🏾","🧖🏿","🧖‍♂️","🧖🏻‍♂️","🧖🏼‍♂️","🧖🏽‍♂️","🧖🏾‍♂️","🧖🏿‍♂️","🧖‍♀️","🧖🏻‍♀️","🧖🏼‍♀️","🧖🏽‍♀️","🧖🏾‍♀️","🧖🏿‍♀️","🧗","🧗🏻","🧗🏼","🧗🏽","🧗🏾","🧗🏿","🧗‍♂️","🧗🏻‍♂️","🧗🏼‍♂️","🧗🏽‍♂️","🧗🏾‍♂️","🧗🏿‍♂️","🧗‍♀️","🧗🏻‍♀️","🧗🏼‍♀️","🧗🏽‍♀️","🧗🏾‍♀️","🧗🏿‍♀️","🤺","🏇","🏇🏻","🏇🏼","🏇🏽","🏇🏾","🏇🏿","⛷️","🏂","🏂🏻","🏂🏼","🏂🏽","🏂🏾","🏂🏿","🏌️","🏌🏻","🏌🏼","🏌🏽","🏌🏾","🏌🏿","🏌️‍♂️","🏌🏻‍♂️","🏌🏼‍♂️","🏌🏽‍♂️","🏌🏾‍♂️","🏌🏿‍♂️","🏌️‍♀️","🏌🏻‍♀️","🏌🏼‍♀️","🏌🏽‍♀️","🏌🏾‍♀️","🏌🏿‍♀️","🏄","🏄🏻","🏄🏼","🏄🏽","🏄🏾","🏄🏿","🏄‍♂️","🏄🏻‍♂️","🏄🏼‍♂️","🏄🏽‍♂️","🏄🏾‍♂️","🏄🏿‍♂️","🏄‍♀️","🏄🏻‍♀️","🏄🏼‍♀️","🏄🏽‍♀️","🏄🏾‍♀️","🏄🏿‍♀️","🚣","🚣🏻","🚣🏼","🚣🏽","🚣🏾","🚣🏿","🚣‍♂️","🚣🏻‍♂️","🚣🏼‍♂️","🚣🏽‍♂️","🚣🏾‍♂️","🚣🏿‍♂️","🚣‍♀️","🚣🏻‍♀️","🚣🏼‍♀️","🚣🏽‍♀️","🚣🏾‍♀️","🚣🏿‍♀️","🏊","🏊🏻","🏊🏼","🏊🏽","🏊🏾","🏊🏿","🏊‍♂️","🏊🏻‍♂️","🏊🏼‍♂️","🏊🏽‍♂️","🏊🏾‍♂️","🏊🏿‍♂️","🏊‍♀️","🏊🏻‍♀️","🏊🏼‍♀️","🏊🏽‍♀️","🏊🏾‍♀️","🏊🏿‍♀️","⛹️","⛹🏻","⛹🏼","⛹🏽","⛹🏾","⛹🏿","⛹️‍♂️","⛹🏻‍♂️","⛹🏼‍♂️","⛹🏽‍♂️","⛹🏾‍♂️","⛹🏿‍♂️","⛹️‍♀️","⛹🏻‍♀️","⛹🏼‍♀️","⛹🏽‍♀️","⛹🏾‍♀️","⛹🏿‍♀️","🏋️","🏋🏻","🏋🏼","🏋🏽","🏋🏾","🏋🏿","🏋️‍♂️","🏋🏻‍♂️","🏋🏼‍♂️","🏋🏽‍♂️","🏋🏾‍♂️","🏋🏿‍♂️","🏋️‍♀️","🏋🏻‍♀️","🏋🏼‍♀️","🏋🏽‍♀️","🏋🏾‍♀️","🏋🏿‍♀️","🚴","🚴🏻","🚴🏼","🚴🏽","🚴🏾","🚴🏿","🚴‍♂️","🚴🏻‍♂️","🚴🏼‍♂️","🚴🏽‍♂️","🚴🏾‍♂️","🚴🏿‍♂️","🚴‍♀️","🚴🏻‍♀️","🚴🏼‍♀️","🚴🏽‍♀️","🚴🏾‍♀️","🚴🏿‍♀️","🚵","🚵🏻","🚵🏼","🚵🏽","🚵🏾","🚵🏿","🚵‍♂️","🚵🏻‍♂️","🚵🏼‍♂️","🚵🏽‍♂️","🚵🏾‍♂️","🚵🏿‍♂️","🚵‍♀️","🚵🏻‍♀️","🚵🏼‍♀️","🚵🏽‍♀️","🚵🏾‍♀️","🚵🏿‍♀️","🤸","🤸🏻","🤸🏼","🤸🏽","🤸🏾","🤸🏿","🤸‍♂️","🤸🏻‍♂️","🤸🏼‍♂️","🤸🏽‍♂️","🤸🏾‍♂️","🤸🏿‍♂️","🤸‍♀️","🤸🏻‍♀️","🤸🏼‍♀️","🤸🏽‍♀️","🤸🏾‍♀️","🤸🏿‍♀️","🤼","🤼‍♂️","🤼‍♀️","🤽","🤽🏻","🤽🏼","🤽🏽","🤽🏾","🤽🏿","🤽‍♂️","🤽🏻‍♂️","🤽🏼‍♂️","🤽🏽‍♂️","🤽🏾‍♂️","🤽🏿‍♂️","🤽‍♀️","🤽🏻‍♀️","🤽🏼‍♀️","🤽🏽‍♀️","🤽🏾‍♀️","🤽🏿‍♀️","🤾","🤾🏻","🤾🏼","🤾🏽","🤾🏾","🤾🏿","🤾‍♂️","🤾🏻‍♂️","🤾🏼‍♂️","🤾🏽‍♂️","🤾🏾‍♂️","🤾🏿‍♂️","🤾‍♀️","🤾🏻‍♀️","🤾🏼‍♀️","🤾🏽‍♀️","🤾🏾‍♀️","🤾🏿‍♀️","🤹","🤹🏻","🤹🏼","🤹🏽","🤹🏾","🤹🏿","🤹‍♂️","🤹🏻‍♂️","🤹🏼‍♂️","🤹🏽‍♂️","🤹🏾‍♂️","🤹🏿‍♂️","🤹‍♀️","🤹🏻‍♀️","🤹🏼‍♀️","🤹🏽‍♀️","🤹🏾‍♀️","🤹🏿‍♀️","🧘","🧘🏻","🧘🏼","🧘🏽","🧘🏾","🧘🏿","🧘‍♂️","🧘🏻‍♂️","🧘🏼‍♂️","🧘🏽‍♂️","🧘🏾‍♂️","🧘🏿‍♂️","🧘‍♀️","🧘🏻‍♀️","🧘🏼‍♀️","🧘🏽‍♀️","🧘🏾‍♀️","🧘🏿‍♀️","🛀","🛀🏻","🛀🏼","🛀🏽","🛀🏾","🛀🏿","🛌","🛌🏻","🛌🏼","🛌🏽","🛌🏾","🛌🏿","🧑‍🤝‍🧑","🧑🏻‍🤝‍🧑🏻","🧑🏻‍🤝‍🧑🏼","🧑🏻‍🤝‍🧑🏽","🧑🏻‍🤝‍🧑🏾","🧑🏻‍🤝‍🧑🏿","🧑🏼‍🤝‍🧑🏻","🧑🏼‍🤝‍🧑🏼","🧑🏼‍🤝‍🧑🏽","🧑🏼‍🤝‍🧑🏾","🧑🏼‍🤝‍🧑🏿","🧑🏽‍🤝‍🧑🏻","🧑🏽‍🤝‍🧑🏼","🧑🏽‍🤝‍🧑🏽","🧑🏽‍🤝‍🧑🏾","🧑🏽‍🤝‍🧑🏿","🧑🏾‍🤝‍🧑🏻","🧑🏾‍🤝‍🧑🏼","🧑🏾‍🤝‍🧑🏽","🧑🏾‍🤝‍🧑🏾","🧑🏾‍🤝‍🧑🏿","🧑🏿‍🤝‍🧑🏻","🧑🏿‍🤝‍🧑🏼","🧑🏿‍🤝‍🧑🏽","🧑🏿‍🤝‍🧑🏾","🧑🏿‍🤝‍🧑🏿","👭","👭🏻","👩🏻‍🤝‍👩🏼","👩🏻‍🤝‍👩🏽","👩🏻‍🤝‍👩🏾","👩🏻‍🤝‍👩🏿","👩🏼‍🤝‍👩🏻","👭🏼","👩🏼‍🤝‍👩🏽","👩🏼‍🤝‍👩🏾","👩🏼‍🤝‍👩🏿","👩🏽‍🤝‍👩🏻","👩🏽‍🤝‍👩🏼","👭🏽","👩🏽‍🤝‍👩🏾","👩🏽‍🤝‍👩🏿","👩🏾‍🤝‍👩🏻","👩🏾‍🤝‍👩🏼","👩🏾‍🤝‍👩🏽","👭🏾","👩🏾‍🤝‍👩🏿","👩🏿‍🤝‍👩🏻","👩🏿‍🤝‍👩🏼","👩🏿‍🤝‍👩🏽","👩🏿‍🤝‍👩🏾","👭🏿","👫","👫🏻","👩🏻‍🤝‍👨🏼","👩🏻‍🤝‍👨🏽","👩🏻‍🤝‍👨🏾","👩🏻‍🤝‍👨🏿","👩🏼‍🤝‍👨🏻","👫🏼","👩🏼‍🤝‍👨🏽","👩🏼‍🤝‍👨🏾","👩🏼‍🤝‍👨🏿","👩🏽‍🤝‍👨🏻","👩🏽‍🤝‍👨🏼","👫🏽","👩🏽‍🤝‍👨🏾","👩🏽‍🤝‍👨🏿","👩🏾‍🤝‍👨🏻","👩🏾‍🤝‍👨🏼","👩🏾‍🤝‍👨🏽","👫🏾","👩🏾‍🤝‍👨🏿","👩🏿‍🤝‍👨🏻","👩🏿‍🤝‍👨🏼","👩🏿‍🤝‍👨🏽","👩🏿‍🤝‍👨🏾","👫🏿","👬","👬🏻","👨🏻‍🤝‍👨🏼","👨🏻‍🤝‍👨🏽","👨🏻‍🤝‍👨🏾","👨🏻‍🤝‍👨🏿","👨🏼‍🤝‍👨🏻","👬🏼","👨🏼‍🤝‍👨🏽","👨🏼‍🤝‍👨🏾","👨🏼‍🤝‍👨🏿","👨🏽‍🤝‍👨🏻","👨🏽‍🤝‍👨🏼","👬🏽","👨🏽‍🤝‍👨🏾","👨🏽‍🤝‍👨🏿","👨🏾‍🤝‍👨🏻","👨🏾‍🤝‍👨🏼","👨🏾‍🤝‍👨🏽","👬🏾","👨🏾‍🤝‍👨🏿","👨🏿‍🤝‍👨🏻","👨🏿‍🤝‍👨🏼","👨🏿‍🤝‍👨🏽","👨🏿‍🤝‍👨🏾","👬🏿","💏","💏🏻","💏🏼","💏🏽","💏🏾","💏🏿","🧑🏻‍❤️‍💋‍🧑🏼","🧑🏻‍❤️‍💋‍🧑🏽","🧑🏻‍❤️‍💋‍🧑🏾","🧑🏻‍❤️‍💋‍🧑🏿","🧑🏼‍❤️‍💋‍🧑🏻","🧑🏼‍❤️‍💋‍🧑🏽","🧑🏼‍❤️‍💋‍🧑🏾","🧑🏼‍❤️‍💋‍🧑🏿","🧑🏽‍❤️‍💋‍🧑🏻","🧑🏽‍❤️‍💋‍🧑🏼","🧑🏽‍❤️‍💋‍🧑🏾","🧑🏽‍❤️‍💋‍🧑🏿","🧑🏾‍❤️‍💋‍🧑🏻","🧑🏾‍❤️‍💋‍🧑🏼","🧑🏾‍❤️‍💋‍🧑🏽","🧑🏾‍❤️‍💋‍🧑🏿","🧑🏿‍❤️‍💋‍🧑🏻","🧑🏿‍❤️‍💋‍🧑🏼","🧑🏿‍❤️‍💋‍🧑🏽","🧑🏿‍❤️‍💋‍🧑🏾","👩‍❤️‍💋‍👨","👩🏻‍❤️‍💋‍👨🏻","👩🏻‍❤️‍💋‍👨🏼","👩🏻‍❤️‍💋‍👨🏽","👩🏻‍❤️‍💋‍👨🏾","👩🏻‍❤️‍💋‍👨🏿","👩🏼‍❤️‍💋‍👨🏻","👩🏼‍❤️‍💋‍👨🏼","👩🏼‍❤️‍💋‍👨🏽","👩🏼‍❤️‍💋‍👨🏾","👩🏼‍❤️‍💋‍👨🏿","👩🏽‍❤️‍💋‍👨🏻","👩🏽‍❤️‍💋‍👨🏼","👩🏽‍❤️‍💋‍👨🏽","👩🏽‍❤️‍💋‍👨🏾","👩🏽‍❤️‍💋‍👨🏿","👩🏾‍❤️‍💋‍👨🏻","👩🏾‍❤️‍💋‍👨🏼","👩🏾‍❤️‍💋‍👨🏽","👩🏾‍❤️‍💋‍👨🏾","👩🏾‍❤️‍💋‍👨🏿","👩🏿‍❤️‍💋‍👨🏻","👩🏿‍❤️‍💋‍👨🏼","👩🏿‍❤️‍💋‍👨🏽","👩🏿‍❤️‍💋‍👨🏾","👩🏿‍❤️‍💋‍👨🏿","👨‍❤️‍💋‍👨","👨🏻‍❤️‍💋‍👨🏻","👨🏻‍❤️‍💋‍👨🏼","👨🏻‍❤️‍💋‍👨🏽","👨🏻‍❤️‍💋‍👨🏾","👨🏻‍❤️‍💋‍👨🏿","👨🏼‍❤️‍💋‍👨🏻","👨🏼‍❤️‍💋‍👨🏼","👨🏼‍❤️‍💋‍👨🏽","👨🏼‍❤️‍💋‍👨🏾","👨🏼‍❤️‍💋‍👨🏿","👨🏽‍❤️‍💋‍👨🏻","👨🏽‍❤️‍💋‍👨🏼","👨🏽‍❤️‍💋‍👨🏽","👨🏽‍❤️‍💋‍👨🏾","👨🏽‍❤️‍💋‍👨🏿","👨🏾‍❤️‍💋‍👨🏻","👨🏾‍❤️‍💋‍👨🏼","👨🏾‍❤️‍💋‍👨🏽","👨🏾‍❤️‍💋‍👨🏾","👨🏾‍❤️‍💋‍👨🏿","👨🏿‍❤️‍💋‍👨🏻","👨🏿‍❤️‍💋‍👨🏼","👨🏿‍❤️‍💋‍👨🏽","👨🏿‍❤️‍💋‍👨🏾","👨🏿‍❤️‍💋‍👨🏿","👩‍❤️‍💋‍👩","👩🏻‍❤️‍💋‍👩🏻","👩🏻‍❤️‍💋‍👩🏼","👩🏻‍❤️‍💋‍👩🏽","👩🏻‍❤️‍💋‍👩🏾","👩🏻‍❤️‍💋‍👩🏿","👩🏼‍❤️‍💋‍👩🏻","👩🏼‍❤️‍💋‍👩🏼","👩🏼‍❤️‍💋‍👩🏽","👩🏼‍❤️‍💋‍👩🏾","👩🏼‍❤️‍💋‍👩🏿","👩🏽‍❤️‍💋‍👩🏻","👩🏽‍❤️‍💋‍👩🏼","👩🏽‍❤️‍💋‍👩🏽","👩🏽‍❤️‍💋‍👩🏾","👩🏽‍❤️‍💋‍👩🏿","👩🏾‍❤️‍💋‍👩🏻","👩🏾‍❤️‍💋‍👩🏼","👩🏾‍❤️‍💋‍👩🏽","👩🏾‍❤️‍💋‍👩🏾","👩🏾‍❤️‍💋‍👩🏿","👩🏿‍❤️‍💋‍👩🏻","👩🏿‍❤️‍💋‍👩🏼","👩🏿‍❤️‍💋‍👩🏽","👩🏿‍❤️‍💋‍👩🏾","👩🏿‍❤️‍💋‍👩🏿","💑","💑🏻","💑🏼","💑🏽","💑🏾","💑🏿","🧑🏻‍❤️‍🧑🏼","🧑🏻‍❤️‍🧑🏽","🧑🏻‍❤️‍🧑🏾","🧑🏻‍❤️‍🧑🏿","🧑🏼‍❤️‍🧑🏻","🧑🏼‍❤️‍🧑🏽","🧑🏼‍❤️‍🧑🏾","🧑🏼‍❤️‍🧑🏿","🧑🏽‍❤️‍🧑🏻","🧑🏽‍❤️‍🧑🏼","🧑🏽‍❤️‍🧑🏾","🧑🏽‍❤️‍🧑🏿","🧑🏾‍❤️‍🧑🏻","🧑🏾‍❤️‍🧑🏼","🧑🏾‍❤️‍🧑🏽","🧑🏾‍❤️‍🧑🏿","🧑🏿‍❤️‍🧑🏻","🧑🏿‍❤️‍🧑🏼","🧑🏿‍❤️‍🧑🏽","🧑🏿‍❤️‍🧑🏾","👩‍❤️‍👨","👩🏻‍❤️‍👨🏻","👩🏻‍❤️‍👨🏼","👩🏻‍❤️‍👨🏽","👩🏻‍❤️‍👨🏾","👩🏻‍❤️‍👨🏿","👩🏼‍❤️‍👨🏻","👩🏼‍❤️‍👨🏼","👩🏼‍❤️‍👨🏽","👩🏼‍❤️‍👨🏾","👩🏼‍❤️‍👨🏿","👩🏽‍❤️‍👨🏻","👩🏽‍❤️‍👨🏼","👩🏽‍❤️‍👨🏽","👩🏽‍❤️‍👨🏾","👩🏽‍❤️‍👨🏿","👩🏾‍❤️‍👨🏻","👩🏾‍❤️‍👨🏼","👩🏾‍❤️‍👨🏽","👩🏾‍❤️‍👨🏾","👩🏾‍❤️‍👨🏿","👩🏿‍❤️‍👨🏻","👩🏿‍❤️‍👨🏼","👩🏿‍❤️‍👨🏽","👩🏿‍❤️‍👨🏾","👩🏿‍❤️‍👨🏿","👨‍❤️‍👨","👨🏻‍❤️‍👨🏻","👨🏻‍❤️‍👨🏼","👨🏻‍❤️‍👨🏽","👨🏻‍❤️‍👨🏾","👨🏻‍❤️‍👨🏿","👨🏼‍❤️‍👨🏻","👨🏼‍❤️‍👨🏼","👨🏼‍❤️‍👨🏽","👨🏼‍❤️‍👨🏾","👨🏼‍❤️‍👨🏿","👨🏽‍❤️‍👨🏻","👨🏽‍❤️‍👨🏼","👨🏽‍❤️‍👨🏽","👨🏽‍❤️‍👨🏾","👨🏽‍❤️‍👨🏿","👨🏾‍❤️‍👨🏻","👨🏾‍❤️‍👨🏼","👨🏾‍❤️‍👨🏽","👨🏾‍❤️‍👨🏾","👨🏾‍❤️‍👨🏿","👨🏿‍❤️‍👨🏻","👨🏿‍❤️‍👨🏼","👨🏿‍❤️‍👨🏽","👨🏿‍❤️‍👨🏾","👨🏿‍❤️‍👨🏿","👩‍❤️‍👩","👩🏻‍❤️‍👩🏻","👩🏻‍❤️‍👩🏼","👩🏻‍❤️‍👩🏽","👩🏻‍❤️‍👩🏾","👩🏻‍❤️‍👩🏿","👩🏼‍❤️‍👩🏻","👩🏼‍❤️‍👩🏼","👩🏼‍❤️‍👩🏽","👩🏼‍❤️‍👩🏾","👩🏼‍❤️‍👩🏿","👩🏽‍❤️‍👩🏻","👩🏽‍❤️‍👩🏼","👩🏽‍❤️‍👩🏽","👩🏽‍❤️‍👩🏾","👩🏽‍❤️‍👩🏿","👩🏾‍❤️‍👩🏻","👩🏾‍❤️‍👩🏼","👩🏾‍❤️‍👩🏽","👩🏾‍❤️‍👩🏾","👩🏾‍❤️‍👩🏿","👩🏿‍❤️‍👩🏻","👩🏿‍❤️‍👩🏼","👩🏿‍❤️‍👩🏽","👩🏿‍❤️‍👩🏾","👩🏿‍❤️‍👩🏿","👪","👨‍👩‍👦","👨‍👩‍👧","👨‍👩‍👧‍👦","👨‍👩‍👦‍👦","👨‍👩‍👧‍👧","👨‍👨‍👦","👨‍👨‍👧","👨‍👨‍👧‍👦","👨‍👨‍👦‍👦","👨‍👨‍👧‍👧","👩‍👩‍👦","👩‍👩‍👧","👩‍👩‍👧‍👦","👩‍👩‍👦‍👦","👩‍👩‍👧‍👧","👨‍👦","👨‍👦‍👦","👨‍👧","👨‍👧‍👦","👨‍👧‍👧","👩‍👦","👩‍👦‍👦","👩‍👧","👩‍👧‍👦","👩‍👧‍👧","🗣️","👤","👥","🫂","👣"],nature:["🐵","🐒","🦍","🦧","🐶","🐕","🦮","🐕‍🦺","🐩","🐺","🦊","🦝","🐱","🐈","🐈‍⬛","🦁","🐯","🐅","🐆","🐴","🐎","🦄","🦓","🦌","🦬","🐮","🐂","🐃","🐄","🐷","🐖","🐗","🐽","🐏","🐑","🐐","🐪","🐫","🦙","🦒","🐘","🦣","🦏","🦛","🐭","🐁","🐀","🐹","🐰","🐇","🐿️","🦫","🦔","🦇","🐻","🐻‍❄️","🐨","🐼","🦥","🦦","🦨","🦘","🦡","🐾","🦃","🐔","🐓","🐣","🐤","🐥","🐦","🐧","🕊️","🦅","🦆","🦢","🦉","🦤","🪶","🦩","🦚","🦜","🐸","🐊","🐢","🦎","🐍","🐲","🐉","🦕","🦖","🐳","🐋","🐬","🦭","🐟","🐠","🐡","🦈","🐙","🐚","🐌","🦋","🐛","🐜","🐝","🪲","🐞","🦗","🪳","🕷️","🕸️","🦂","🦟","🪰","🪱","🦠","💐","🌸","💮","🏵️","🌹","🥀","🌺","🌻","🌼","🌷","🌱","🪴","🌲","🌳","🌴","🌵","🌾","🌿","☘️","🍀","🍁","🍂","🍃"],food:["🍇","🍈","🍉","🍊","🍋","🍌","🍍","🥭","🍎","🍏","🍐","🍑","🍒","🍓","🫐","🥝","🍅","🫒","🥥","🥑","🍆","🥔","🥕","🌽","🌶️","🫑","🥒","🥬","🥦","🧄","🧅","🍄","🥜","🌰","🍞","🥐","🥖","🫓","🥨","🥯","🥞","🧇","🧀","🍖","🍗","🥩","🥓","🍔","🍟","🍕","🌭","🥪","🌮","🌯","🫔","🥙","🧆","🥚","🍳","🥘","🍲","🫕","🥣","🥗","🍿","🧈","🧂","🥫","🍱","🍘","🍙","🍚","🍛","🍜","🍝","🍠","🍢","🍣","🍤","🍥","🥮","🍡","🥟","🥠","🥡","🦀","🦞","🦐","🦑","🦪","🍦","🍧","🍨","🍩","🍪","🎂","🍰","🧁","🥧","🍫","🍬","🍭","🍮","🍯","🍼","🥛","☕","🫖","🍵","🍶","🍾","🍷","🍸","🍹","🍺","🍻","🥂","🥃","🥤","🧋","🧃","🧉","🧊","🥢","🍽️","🍴","🥄","🔪","🏺"],travel:["🌍","🌎","🌏","🌐","🗺️","🗾","🧭","🏔️","⛰️","🌋","🗻","🏕️","🏖️","🏜️","🏝️","🏞️","🏟️","🏛️","🏗️","🧱","🪨","🪵","🛖","🏘️","🏚️","🏠","🏡","🏢","🏣","🏤","🏥","🏦","🏨","🏩","🏪","🏫","🏬","🏭","🏯","🏰","💒","🗼","🗽","⛪","🕌","🛕","🕍","⛩️","🕋","⛲","⛺","🌁","🌃","🏙️","🌄","🌅","🌆","🌇","🌉","♨️","🎠","🎡","🎢","💈","🎪","🚂","🚃","🚄","🚅","🚆","🚇","🚈","🚉","🚊","🚝","🚞","🚋","🚌","🚍","🚎","🚐","🚑","🚒","🚓","🚔","🚕","🚖","🚗","🚘","🚙","🛻","🚚","🚛","🚜","🏎️","🏍️","🛵","🦽","🦼","🛺","🚲","🛴","🛹","🛼","🚏","🛣️","🛤️","🛢️","⛽","🚨","🚥","🚦","🛑","🚧","⚓","⛵","🛶","🚤","🛳️","⛴️","🛥️","🚢","✈️","🛩️","🛫","🛬","🪂","💺","🚁","🚟","🚠","🚡","🛰️","🚀","🛸","🛎️","🧳","⌛","⏳","⌚","⏰","⏱️","⏲️","🕰️","🕛","🕧","🕐","🕜","🕑","🕝","🕒","🕞","🕓","🕟","🕔","🕠","🕕","🕡","🕖","🕢","🕗","🕣","🕘","🕤","🕙","🕥","🕚","🕦","🌑","🌒","🌓","🌔","🌕","🌖","🌗","🌘","🌙","🌚","🌛","🌜","🌡️","☀️","🌝","🌞","🪐","⭐","🌟","🌠","🌌","☁️","⛅","⛈️","🌤️","🌥️","🌦️","🌧️","🌨️","🌩️","🌪️","🌫️","🌬️","🌀","🌈","🌂","☂️","☔","⛱️","⚡","❄️","☃️","⛄","☄️","🔥","💧","🌊"],activity:["🎃","🎄","🎆","🎇","🧨","✨","🎈","🎉","🎊","🎋","🎍","🎎","🎏","🎐","🎑","🧧","🎀","🎁","🎗️","🎟️","🎫","🎖️","🏆","🏅","🥇","🥈","🥉","⚽","⚾","🥎","🏀","🏐","🏈","🏉","🎾","🥏","🎳","🏏","🏑","🏒","🥍","🏓","🏸","🥊","🥋","🥅","⛳","⛸️","🎣","🤿","🎽","🎿","🛷","🥌","🎯","🪀","🪁","🎱","🔮","🪄","🧿","🎮","🕹️","🎰","🎲","🧩","🧸","🪅","🪆","♠️","♥️","♦️","♣️","♟️","🃏","🀄","🎴","🎭","🖼️","🎨","🧵","🪡","🧶","🪢"],object:["👓","🕶️","🥽","🥼","🦺","👔","👕","👖","🧣","🧤","🧥","🧦","👗","👘","🥻","🩱","🩲","🩳","👙","👚","👛","👜","👝","🛍️","🎒","🩴","👞","👟","🥾","🥿","👠","👡","🩰","👢","👑","👒","🎩","🎓","🧢","🪖","⛑️","📿","💄","💍","💎","🔇","🔈","🔉","🔊","📢","📣","📯","🔔","🔕","🎼","🎵","🎶","🎙️","🎚️","🎛️","🎤","🎧","📻","🎷","🪗","🎸","🎹","🎺","🎻","🪕","🥁","🪘","📱","📲","☎️","📞","📟","📠","🔋","🔌","💻","🖥️","🖨️","⌨️","🖱️","🖲️","💽","💾","💿","📀","🧮","🎥","🎞️","📽️","🎬","📺","📷","📸","📹","📼","🔍","🔎","🕯️","💡","🔦","🏮","🪔","📔","📕","📖","📗","📘","📙","📚","📓","📒","📃","📜","📄","📰","🗞️","📑","🔖","🏷️","💰","🪙","💴","💵","💶","💷","💸","💳","🧾","💹","✉️","📧","📨","📩","📤","📥","📦","📫","📪","📬","📭","📮","🗳️","✏️","✒️","🖋️","🖊️","🖌️","🖍️","📝","💼","📁","📂","🗂️","📅","📆","🗒️","🗓️","📇","📈","📉","📊","📋","📌","📍","📎","🖇️","📏","📐","✂️","🗃️","🗄️","🗑️","🔒","🔓","🔏","🔐","🔑","🗝️","🔨","🪓","⛏️","⚒️","🛠️","🗡️","⚔️","🔫","🪃","🏹","🛡️","🪚","🔧","🪛","🔩","⚙️","🗜️","⚖️","🦯","🔗","⛓️","🪝","🧰","🧲","🪜","⚗️","🧪","🧫","🧬","🔬","🔭","📡","💉","🩸","💊","🩹","🩺","🚪","🛗","🪞","🪟","🛏️","🛋️","🪑","🚽","🪠","🚿","🛁","🪤","🪒","🧴","🧷","🧹","🧺","🧻","🪣","🧼","🪥","🧽","🧯","🛒","🚬","⚰️","🪦","⚱️","🗿","🪧"],symbol:["🏧","🚮","🚰","♿","🚹","🚺","🚻","🚼","🚾","🛂","🛃","🛄","🛅","⚠️","🚸","⛔","🚫","🚳","🚭","🚯","🚱","🚷","📵","🔞","☢️","☣️","⬆️","↗️","➡️","↘️","⬇️","↙️","⬅️","↖️","↕️","↔️","↩️","↪️","⤴️","⤵️","🔃","🔄","🔙","🔚","🔛","🔜","🔝","🛐","⚛️","🕉️","✡️","☸️","☯️","✝️","☦️","☪️","☮️","🕎","🔯","♈","♉","♊","♋","♌","♍","♎","♏","♐","♑","♒","♓","⛎","🔀","🔁","🔂","▶️","⏩","⏭️","⏯️","◀️","⏪","⏮️","🔼","⏫","🔽","⏬","⏸️","⏹️","⏺️","⏏️","🎦","🔅","🔆","📶","📳","📴","♀️","♂️","⚧️","✖️","➕","➖","➗","♾️","‼️","⁉️","❓","❔","❕","❗","〰️","💱","💲","⚕️","♻️","⚜️","🔱","📛","🔰","⭕","✅","☑️","✔️","❌","❎","➰","➿","〽️","✳️","✴️","❇️","©️","®️","™️","#️⃣","*️⃣","0️⃣","1️⃣","2️⃣","3️⃣","4️⃣","5️⃣","6️⃣","7️⃣","8️⃣","9️⃣","🔟","🔠","🔡","🔢","🔣","🔤","🅰️","🆎","🅱️","🆑","🆒","🆓","ℹ️","🆔","Ⓜ️","🆕","🆖","🅾️","🆗","🅿️","🆘","🆙","🆚","🈁","🈂️","🈷️","🈶","🈯","🉐","🈹","🈚","🈲","🉑","🈸","🈴","🈳","㊗️","㊙️","🈺","🈵","🔴","🟠","🟡","🟢","🔵","🟣","🟤","⚫","⚪","🟥","🟧","🟨","🟩","🟦","🟪","🟫","⬛","⬜","◼️","◻️","◾","◽","▪️","▫️","🔶","🔷","🔸","🔹","🔺","🔻","💠","🔘","🔳","🔲"],flag:["🏁","🚩","🎌","🏴","🏳️","🏳️‍🌈","🏳️‍⚧️","🏴‍☠️","🇦🇨","🇦🇩","🇦🇪","🇦🇫","🇦🇬","🇦🇮","🇦🇱","🇦🇲","🇦🇴","🇦🇶","🇦🇷","🇦🇸","🇦🇹","🇦🇺","🇦🇼","🇦🇽","🇦🇿","🇧🇦","🇧🇧","🇧🇩","🇧🇪","🇧🇫","🇧🇬","🇧🇭","🇧🇮","🇧🇯","🇧🇱","🇧🇲","🇧🇳","🇧🇴","🇧🇶","🇧🇷","🇧🇸","🇧🇹","🇧🇻","🇧🇼","🇧🇾","🇧🇿","🇨🇦","🇨🇨","🇨🇩","🇨🇫","🇨🇬","🇨🇭","🇨🇮","🇨🇰","🇨🇱","🇨🇲","🇨🇳","🇨🇴","🇨🇵","🇨🇷","🇨🇺","🇨🇻","🇨🇼","🇨🇽","🇨🇾","🇨🇿","🇩🇪","🇩🇬","🇩🇯","🇩🇰","🇩🇲","🇩🇴","🇩🇿","🇪🇦","🇪🇨","🇪🇪","🇪🇬","🇪🇭","🇪🇷","🇪🇸","🇪🇹","🇪🇺","🇫🇮","🇫🇯","🇫🇰","🇫🇲","🇫🇴","🇫🇷","🇬🇦","🇬🇧","🇬🇩","🇬🇪","🇬🇫","🇬🇬","🇬🇭","🇬🇮","🇬🇱","🇬🇲","🇬🇳","🇬🇵","🇬🇶","🇬🇷","🇬🇸","🇬🇹","🇬🇺","🇬🇼","🇬🇾","🇭🇰","🇭🇲","🇭🇳","🇭🇷","🇭🇹","🇭🇺","🇮🇨","🇮🇩","🇮🇪","🇮🇱","🇮🇲","🇮🇳","🇮🇴","🇮🇶","🇮🇷","🇮🇸","🇮🇹","🇯🇪","🇯🇲","🇯🇴","🇯🇵","🇰🇪","🇰🇬","🇰🇭","🇰🇮","🇰🇲","🇰🇳","🇰🇵","🇰🇷","🇰🇼","🇰🇾","🇰🇿","🇱🇦","🇱🇧","🇱🇨","🇱🇮","🇱🇰","🇱🇷","🇱🇸","🇱🇹","🇱🇺","🇱🇻","🇱🇾","🇲🇦","🇲🇨","🇲🇩","🇲🇪","🇲🇫","🇲🇬","🇲🇭","🇲🇰","🇲🇱","🇲🇲","🇲🇳","🇲🇴","🇲🇵","🇲🇶","🇲🇷","🇲🇸","🇲🇹","🇲🇺","🇲🇻","🇲🇼","🇲🇽","🇲🇾","🇲🇿","🇳🇦","🇳🇨","🇳🇪","🇳🇫","🇳🇬","🇳🇮","🇳🇱","🇳🇴","🇳🇵","🇳🇷","🇳🇺","🇳🇿","🇴🇲","🇵🇦","🇵🇪","🇵🇫","🇵🇬","🇵🇭","🇵🇰","🇵🇱","🇵🇲","🇵🇳","🇵🇷","🇵🇸","🇵🇹","🇵🇼","🇵🇾","🇶🇦","🇷🇪","🇷🇴","🇷🇸","🇷🇺","🇷🇼","🇸🇦","🇸🇧","🇸🇨","🇸🇩","🇸🇪","🇸🇬","🇸🇭","🇸🇮","🇸🇯","🇸🇰","🇸🇱","🇸🇲","🇸🇳","🇸🇴","🇸🇷","🇸🇸","🇸🇹","🇸🇻","🇸🇽","🇸🇾","🇸🇿","🇹🇦","🇹🇨","🇹🇩","🇹🇫","🇹🇬","🇹🇭","🇹🇯","🇹🇰","🇹🇱","🇹🇲","🇹🇳","🇹🇴","🇹🇷","🇹🇹","🇹🇻","🇹🇼","🇹🇿","🇺🇦","🇺🇬","🇺🇲","🇺🇳","🇺🇸","🇺🇾","🇺🇿","🇻🇦","🇻🇨","🇻🇪","🇻🇬","🇻🇮","🇻🇳","🇻🇺","🇼🇫","🇼🇸","🇽🇰","🇾🇪","🇾🇹","🇿🇦","🇿🇲","🇿🇼"]},GPt={informational:[100,101,102,103],success:[200,201,202,203,204,205,206,207,208,226],redirection:[300,301,302,303,304,305,306,307,308],clientError:[400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,421,422,423,424,425,426,428,429,431,451],serverError:[500,501,502,503,504,505,506,507,508,510,511]},VPt={emoji:RPt,http_status_code:GPt},XPt=VPt,PPt=[{alpha2:"AD",alpha3:"AND",numeric:"020"},{alpha2:"AE",alpha3:"ARE",numeric:"784"},{alpha2:"AF",alpha3:"AFG",numeric:"004"},{alpha2:"AG",alpha3:"ATG",numeric:"028"},{alpha2:"AI",alpha3:"AIA",numeric:"660"},{alpha2:"AL",alpha3:"ALB",numeric:"008"},{alpha2:"AM",alpha3:"ARM",numeric:"051"},{alpha2:"AO",alpha3:"AGO",numeric:"024"},{alpha2:"AQ",alpha3:"ATA",numeric:"010"},{alpha2:"AR",alpha3:"ARG",numeric:"032"},{alpha2:"AS",alpha3:"ASM",numeric:"016"},{alpha2:"AT",alpha3:"AUT",numeric:"040"},{alpha2:"AU",alpha3:"AUS",numeric:"036"},{alpha2:"AW",alpha3:"ABW",numeric:"533"},{alpha2:"AX",alpha3:"ALA",numeric:"248"},{alpha2:"AZ",alpha3:"AZE",numeric:"031"},{alpha2:"BA",alpha3:"BIH",numeric:"070"},{alpha2:"BB",alpha3:"BRB",numeric:"052"},{alpha2:"BD",alpha3:"BGD",numeric:"050"},{alpha2:"BE",alpha3:"BEL",numeric:"056"},{alpha2:"BF",alpha3:"BFA",numeric:"854"},{alpha2:"BG",alpha3:"BGR",numeric:"100"},{alpha2:"BH",alpha3:"BHR",numeric:"048"},{alpha2:"BI",alpha3:"BDI",numeric:"108"},{alpha2:"BJ",alpha3:"BEN",numeric:"204"},{alpha2:"BL",alpha3:"BLM",numeric:"652"},{alpha2:"BM",alpha3:"BMU",numeric:"060"},{alpha2:"BN",alpha3:"BRN",numeric:"096"},{alpha2:"BO",alpha3:"BOL",numeric:"068"},{alpha2:"BQ",alpha3:"BES",numeric:"535"},{alpha2:"BR",alpha3:"BRA",numeric:"076"},{alpha2:"BS",alpha3:"BHS",numeric:"044"},{alpha2:"BT",alpha3:"BTN",numeric:"064"},{alpha2:"BV",alpha3:"BVT",numeric:"074"},{alpha2:"BW",alpha3:"BWA",numeric:"072"},{alpha2:"BY",alpha3:"BLR",numeric:"112"},{alpha2:"BZ",alpha3:"BLZ",numeric:"084"},{alpha2:"CA",alpha3:"CAN",numeric:"124"},{alpha2:"CC",alpha3:"CCK",numeric:"166"},{alpha2:"CD",alpha3:"COD",numeric:"180"},{alpha2:"CF",alpha3:"CAF",numeric:"140"},{alpha2:"CG",alpha3:"COG",numeric:"178"},{alpha2:"CH",alpha3:"CHE",numeric:"756"},{alpha2:"CI",alpha3:"CIV",numeric:"384"},{alpha2:"CK",alpha3:"COK",numeric:"184"},{alpha2:"CL",alpha3:"CHL",numeric:"152"},{alpha2:"CM",alpha3:"CMR",numeric:"120"},{alpha2:"CN",alpha3:"CHN",numeric:"156"},{alpha2:"CO",alpha3:"COL",numeric:"170"},{alpha2:"CR",alpha3:"CRI",numeric:"188"},{alpha2:"CU",alpha3:"CUB",numeric:"192"},{alpha2:"CV",alpha3:"CPV",numeric:"132"},{alpha2:"CW",alpha3:"CUW",numeric:"531"},{alpha2:"CX",alpha3:"CXR",numeric:"162"},{alpha2:"CY",alpha3:"CYP",numeric:"196"},{alpha2:"CZ",alpha3:"CZE",numeric:"203"},{alpha2:"DE",alpha3:"DEU",numeric:"276"},{alpha2:"DJ",alpha3:"DJI",numeric:"262"},{alpha2:"DK",alpha3:"DNK",numeric:"208"},{alpha2:"DM",alpha3:"DMA",numeric:"212"},{alpha2:"DO",alpha3:"DOM",numeric:"214"},{alpha2:"DZ",alpha3:"DZA",numeric:"012"},{alpha2:"EC",alpha3:"ECU",numeric:"218"},{alpha2:"EE",alpha3:"EST",numeric:"233"},{alpha2:"EG",alpha3:"EGY",numeric:"818"},{alpha2:"EH",alpha3:"ESH",numeric:"732"},{alpha2:"ER",alpha3:"ERI",numeric:"232"},{alpha2:"ES",alpha3:"ESP",numeric:"724"},{alpha2:"ET",alpha3:"ETH",numeric:"231"},{alpha2:"FI",alpha3:"FIN",numeric:"246"},{alpha2:"FJ",alpha3:"FJI",numeric:"242"},{alpha2:"FK",alpha3:"FLK",numeric:"238"},{alpha2:"FM",alpha3:"FSM",numeric:"583"},{alpha2:"FO",alpha3:"FRO",numeric:"234"},{alpha2:"FR",alpha3:"FRA",numeric:"250"},{alpha2:"GA",alpha3:"GAB",numeric:"266"},{alpha2:"GB",alpha3:"GBR",numeric:"826"},{alpha2:"GD",alpha3:"GRD",numeric:"308"},{alpha2:"GE",alpha3:"GEO",numeric:"268"},{alpha2:"GF",alpha3:"GUF",numeric:"254"},{alpha2:"GG",alpha3:"GGY",numeric:"831"},{alpha2:"GH",alpha3:"GHA",numeric:"288"},{alpha2:"GI",alpha3:"GIB",numeric:"292"},{alpha2:"GL",alpha3:"GRL",numeric:"304"},{alpha2:"GM",alpha3:"GMB",numeric:"270"},{alpha2:"GN",alpha3:"GIN",numeric:"324"},{alpha2:"GP",alpha3:"GLP",numeric:"312"},{alpha2:"GQ",alpha3:"GNQ",numeric:"226"},{alpha2:"GR",alpha3:"GRC",numeric:"300"},{alpha2:"GS",alpha3:"SGS",numeric:"239"},{alpha2:"GT",alpha3:"GTM",numeric:"320"},{alpha2:"GU",alpha3:"GUM",numeric:"316"},{alpha2:"GW",alpha3:"GNB",numeric:"624"},{alpha2:"GY",alpha3:"GUY",numeric:"328"},{alpha2:"HK",alpha3:"HKG",numeric:"344"},{alpha2:"HM",alpha3:"HMD",numeric:"334"},{alpha2:"HN",alpha3:"HND",numeric:"340"},{alpha2:"HR",alpha3:"HRV",numeric:"191"},{alpha2:"HT",alpha3:"HTI",numeric:"332"},{alpha2:"HU",alpha3:"HUN",numeric:"348"},{alpha2:"ID",alpha3:"IDN",numeric:"360"},{alpha2:"IE",alpha3:"IRL",numeric:"372"},{alpha2:"IL",alpha3:"ISR",numeric:"376"},{alpha2:"IM",alpha3:"IMN",numeric:"833"},{alpha2:"IN",alpha3:"IND",numeric:"356"},{alpha2:"IO",alpha3:"IOT",numeric:"086"},{alpha2:"IQ",alpha3:"IRQ",numeric:"368"},{alpha2:"IR",alpha3:"IRN",numeric:"364"},{alpha2:"IS",alpha3:"ISL",numeric:"352"},{alpha2:"IT",alpha3:"ITA",numeric:"380"},{alpha2:"JE",alpha3:"JEY",numeric:"832"},{alpha2:"JM",alpha3:"JAM",numeric:"388"},{alpha2:"JO",alpha3:"JOR",numeric:"400"},{alpha2:"JP",alpha3:"JPN",numeric:"392"},{alpha2:"KE",alpha3:"KEN",numeric:"404"},{alpha2:"KG",alpha3:"KGZ",numeric:"417"},{alpha2:"KH",alpha3:"KHM",numeric:"116"},{alpha2:"KI",alpha3:"KIR",numeric:"296"},{alpha2:"KM",alpha3:"COM",numeric:"174"},{alpha2:"KN",alpha3:"KNA",numeric:"659"},{alpha2:"KP",alpha3:"PRK",numeric:"408"},{alpha2:"KR",alpha3:"KOR",numeric:"410"},{alpha2:"KW",alpha3:"KWT",numeric:"414"},{alpha2:"KY",alpha3:"CYM",numeric:"136"},{alpha2:"KZ",alpha3:"KAZ",numeric:"398"},{alpha2:"LA",alpha3:"LAO",numeric:"418"},{alpha2:"LB",alpha3:"LBN",numeric:"422"},{alpha2:"LC",alpha3:"LCA",numeric:"662"},{alpha2:"LI",alpha3:"LIE",numeric:"438"},{alpha2:"LK",alpha3:"LKA",numeric:"144"},{alpha2:"LR",alpha3:"LBR",numeric:"430"},{alpha2:"LS",alpha3:"LSO",numeric:"426"},{alpha2:"LT",alpha3:"LTU",numeric:"440"},{alpha2:"LU",alpha3:"LUX",numeric:"442"},{alpha2:"LV",alpha3:"LVA",numeric:"428"},{alpha2:"LY",alpha3:"LBY",numeric:"434"},{alpha2:"MA",alpha3:"MAR",numeric:"504"},{alpha2:"MC",alpha3:"MCO",numeric:"492"},{alpha2:"MD",alpha3:"MDA",numeric:"498"},{alpha2:"ME",alpha3:"MNE",numeric:"499"},{alpha2:"MF",alpha3:"MAF",numeric:"663"},{alpha2:"MG",alpha3:"MDG",numeric:"450"},{alpha2:"MH",alpha3:"MHL",numeric:"584"},{alpha2:"MK",alpha3:"MKD",numeric:"807"},{alpha2:"ML",alpha3:"MLI",numeric:"466"},{alpha2:"MM",alpha3:"MMR",numeric:"104"},{alpha2:"MN",alpha3:"MNG",numeric:"496"},{alpha2:"MO",alpha3:"MAC",numeric:"446"},{alpha2:"MP",alpha3:"MNP",numeric:"580"},{alpha2:"MQ",alpha3:"MTQ",numeric:"474"},{alpha2:"MR",alpha3:"MRT",numeric:"478"},{alpha2:"MS",alpha3:"MSR",numeric:"500"},{alpha2:"MT",alpha3:"MLT",numeric:"470"},{alpha2:"MU",alpha3:"MUS",numeric:"480"},{alpha2:"MV",alpha3:"MDV",numeric:"462"},{alpha2:"MW",alpha3:"MWI",numeric:"454"},{alpha2:"MX",alpha3:"MEX",numeric:"484"},{alpha2:"MY",alpha3:"MYS",numeric:"458"},{alpha2:"MZ",alpha3:"MOZ",numeric:"508"},{alpha2:"NA",alpha3:"NAM",numeric:"516"},{alpha2:"NC",alpha3:"NCL",numeric:"540"},{alpha2:"NE",alpha3:"NER",numeric:"562"},{alpha2:"NF",alpha3:"NFK",numeric:"574"},{alpha2:"NG",alpha3:"NGA",numeric:"566"},{alpha2:"NI",alpha3:"NIC",numeric:"558"},{alpha2:"NL",alpha3:"NLD",numeric:"528"},{alpha2:"NO",alpha3:"NOR",numeric:"578"},{alpha2:"NP",alpha3:"NPL",numeric:"524"},{alpha2:"NR",alpha3:"NRU",numeric:"520"},{alpha2:"NU",alpha3:"NIU",numeric:"570"},{alpha2:"NZ",alpha3:"NZL",numeric:"554"},{alpha2:"OM",alpha3:"OMN",numeric:"512"},{alpha2:"PA",alpha3:"PAN",numeric:"591"},{alpha2:"PE",alpha3:"PER",numeric:"604"},{alpha2:"PF",alpha3:"PYF",numeric:"258"},{alpha2:"PG",alpha3:"PNG",numeric:"598"},{alpha2:"PH",alpha3:"PHL",numeric:"608"},{alpha2:"PK",alpha3:"PAK",numeric:"586"},{alpha2:"PL",alpha3:"POL",numeric:"616"},{alpha2:"PM",alpha3:"SPM",numeric:"666"},{alpha2:"PN",alpha3:"PCN",numeric:"612"},{alpha2:"PR",alpha3:"PRI",numeric:"630"},{alpha2:"PS",alpha3:"PSE",numeric:"275"},{alpha2:"PT",alpha3:"PRT",numeric:"620"},{alpha2:"PW",alpha3:"PLW",numeric:"585"},{alpha2:"PY",alpha3:"PRY",numeric:"600"},{alpha2:"QA",alpha3:"QAT",numeric:"634"},{alpha2:"RE",alpha3:"REU",numeric:"638"},{alpha2:"RO",alpha3:"ROU",numeric:"642"},{alpha2:"RS",alpha3:"SRB",numeric:"688"},{alpha2:"RU",alpha3:"RUS",numeric:"643"},{alpha2:"RW",alpha3:"RWA",numeric:"646"},{alpha2:"SA",alpha3:"SAU",numeric:"682"},{alpha2:"SB",alpha3:"SLB",numeric:"090"},{alpha2:"SC",alpha3:"SYC",numeric:"690"},{alpha2:"SD",alpha3:"SDN",numeric:"729"},{alpha2:"SE",alpha3:"SWE",numeric:"752"},{alpha2:"SG",alpha3:"SGP",numeric:"702"},{alpha2:"SH",alpha3:"SHN",numeric:"654"},{alpha2:"SI",alpha3:"SVN",numeric:"705"},{alpha2:"SJ",alpha3:"SJM",numeric:"744"},{alpha2:"SK",alpha3:"SVK",numeric:"703"},{alpha2:"SL",alpha3:"SLE",numeric:"694"},{alpha2:"SM",alpha3:"SMR",numeric:"674"},{alpha2:"SN",alpha3:"SEN",numeric:"686"},{alpha2:"SO",alpha3:"SOM",numeric:"706"},{alpha2:"SR",alpha3:"SUR",numeric:"740"},{alpha2:"SS",alpha3:"SSD",numeric:"728"},{alpha2:"ST",alpha3:"STP",numeric:"678"},{alpha2:"SV",alpha3:"SLV",numeric:"222"},{alpha2:"SX",alpha3:"SXM",numeric:"534"},{alpha2:"SY",alpha3:"SYR",numeric:"760"},{alpha2:"SZ",alpha3:"SWZ",numeric:"748"},{alpha2:"TC",alpha3:"TCA",numeric:"796"},{alpha2:"TD",alpha3:"TCD",numeric:"148"},{alpha2:"TF",alpha3:"ATF",numeric:"260"},{alpha2:"TG",alpha3:"TGO",numeric:"768"},{alpha2:"TH",alpha3:"THA",numeric:"764"},{alpha2:"TJ",alpha3:"TJK",numeric:"762"},{alpha2:"TK",alpha3:"TKL",numeric:"772"},{alpha2:"TL",alpha3:"TLS",numeric:"626"},{alpha2:"TM",alpha3:"TKM",numeric:"795"},{alpha2:"TN",alpha3:"TUN",numeric:"788"},{alpha2:"TO",alpha3:"TON",numeric:"776"},{alpha2:"TR",alpha3:"TUR",numeric:"792"},{alpha2:"TT",alpha3:"TTO",numeric:"780"},{alpha2:"TV",alpha3:"TUV",numeric:"798"},{alpha2:"TW",alpha3:"TWN",numeric:"158"},{alpha2:"TZ",alpha3:"TZA",numeric:"834"},{alpha2:"UA",alpha3:"UKR",numeric:"804"},{alpha2:"UG",alpha3:"UGA",numeric:"800"},{alpha2:"UM",alpha3:"UMI",numeric:"581"},{alpha2:"US",alpha3:"USA",numeric:"840"},{alpha2:"UY",alpha3:"URY",numeric:"858"},{alpha2:"UZ",alpha3:"UZB",numeric:"860"},{alpha2:"VA",alpha3:"VAT",numeric:"336"},{alpha2:"VC",alpha3:"VCT",numeric:"670"},{alpha2:"VE",alpha3:"VEN",numeric:"862"},{alpha2:"VG",alpha3:"VGB",numeric:"092"},{alpha2:"VI",alpha3:"VIR",numeric:"850"},{alpha2:"VN",alpha3:"VNM",numeric:"704"},{alpha2:"VU",alpha3:"VUT",numeric:"548"},{alpha2:"WF",alpha3:"WLF",numeric:"876"},{alpha2:"WS",alpha3:"WSM",numeric:"882"},{alpha2:"YE",alpha3:"YEM",numeric:"887"},{alpha2:"YT",alpha3:"MYT",numeric:"175"},{alpha2:"ZA",alpha3:"ZAF",numeric:"710"},{alpha2:"ZM",alpha3:"ZMB",numeric:"894"},{alpha2:"ZW",alpha3:"ZWE",numeric:"716"}],OPt=["Africa/Abidjan","Africa/Accra","Africa/Addis_Ababa","Africa/Algiers","Africa/Asmara","Africa/Bamako","Africa/Bangui","Africa/Banjul","Africa/Bissau","Africa/Blantyre","Africa/Brazzaville","Africa/Bujumbura","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/Conakry","Africa/Dakar","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Douala","Africa/El_Aaiun","Africa/Freetown","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Kigali","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Lome","Africa/Luanda","Africa/Lubumbashi","Africa/Lusaka","Africa/Malabo","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Africa/Mogadishu","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Niamey","Africa/Nouakchott","Africa/Ouagadougou","Africa/Porto-Novo","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Anguilla","America/Antigua","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Aruba","America/Asuncion","America/Atikokan","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Cayenne","America/Cayman","America/Chicago","America/Chihuahua","America/Costa_Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Dominica","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fort_Nelson","America/Fortaleza","America/Glace_Bay","America/Goose_Bay","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Inuvik","America/Iqaluit","America/Jamaica","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/Kralendijk","America/La_Paz","America/Lima","America/Los_Angeles","America/Lower_Princes","America/Maceio","America/Managua","America/Manaus","America/Marigot","America/Martinique","America/Matamoros","America/Mazatlan","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Montserrat","America/Nassau","America/New_York","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Nuuk","America/Ojinaga","America/Panama","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Sitka","America/St_Barthelemy","America/St_Johns","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Tijuana","America/Toronto","America/Tortola","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","America/Yellowknife","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/McMurdo","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Arctic/Longyearbyen","Asia/Aden","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Atyrau","Asia/Baghdad","Asia/Bahrain","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Chita","Asia/Choibalsan","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kathmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Kuwait","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Muscat","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Phnom_Penh","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Riyadh","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vientiane","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/St_Helena","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Bratislava","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Busingen","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Guernsey","Europe/Helsinki","Europe/Isle_of_Man","Europe/Istanbul","Europe/Jersey","Europe/Kaliningrad","Europe/Kirov","Europe/Kyiv","Europe/Lisbon","Europe/Ljubljana","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Mariehamn","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Podgorica","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/San_Marino","Europe/Sarajevo","Europe/Saratov","Europe/Simferopol","Europe/Skopje","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Ulyanovsk","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zagreb","Europe/Zurich","Indian/Antananarivo","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Comoro","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Mayotte","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Kanton","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Midway","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Saipan","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Wake","Pacific/Wallis"],BPt={country_code:PPt,time_zone:OPt},zPt=BPt,YPt={title:"Base",code:"base"},HPt=YPt,UPt=["/Applications","/bin","/boot","/boot/defaults","/dev","/etc","/etc/defaults","/etc/mail","/etc/namedb","/etc/periodic","/etc/ppp","/home","/home/user","/home/user/dir","/lib","/Library","/lost+found","/media","/mnt","/net","/Network","/opt","/opt/bin","/opt/include","/opt/lib","/opt/sbin","/opt/share","/private","/private/tmp","/private/var","/proc","/rescue","/root","/sbin","/selinux","/srv","/sys","/System","/tmp","/Users","/usr","/usr/X11R6","/usr/bin","/usr/include","/usr/lib","/usr/libdata","/usr/libexec","/usr/local/bin","/usr/local/src","/usr/obj","/usr/ports","/usr/sbin","/usr/share","/usr/src","/var","/var/log","/var/mail","/var/spool","/var/tmp","/var/yp"],JPt={"application/epub+zip":{extensions:["epub"]},"application/gzip":{extensions:["gz"]},"application/java-archive":{extensions:["jar","war","ear"]},"application/json":{extensions:["json","map"]},"application/ld+json":{extensions:["jsonld"]},"application/msword":{extensions:["doc","dot"]},"application/octet-stream":{extensions:["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/ogg":{extensions:["ogx"]},"application/pdf":{extensions:["pdf"]},"application/rtf":{extensions:["rtf"]},"application/vnd.amazon.ebook":{extensions:["azw"]},"application/vnd.apple.installer+xml":{extensions:["mpkg"]},"application/vnd.mozilla.xul+xml":{extensions:["xul"]},"application/vnd.ms-excel":{extensions:["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-fontobject":{extensions:["eot"]},"application/vnd.ms-powerpoint":{extensions:["ppt","pps","pot"]},"application/vnd.oasis.opendocument.presentation":{extensions:["odp"]},"application/vnd.oasis.opendocument.spreadsheet":{extensions:["ods"]},"application/vnd.oasis.opendocument.text":{extensions:["odt"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{extensions:["docx"]},"application/vnd.rar":{extensions:["rar"]},"application/vnd.visio":{extensions:["vsd","vst","vss","vsw"]},"application/x-7z-compressed":{extensions:["7z"]},"application/x-abiword":{extensions:["abw"]},"application/x-bzip":{extensions:["bz"]},"application/x-bzip2":{extensions:["bz2","boz"]},"application/x-csh":{extensions:["csh"]},"application/x-freearc":{extensions:["arc"]},"application/x-httpd-php":{extensions:["php"]},"application/x-sh":{extensions:["sh"]},"application/x-tar":{extensions:["tar"]},"application/xhtml+xml":{extensions:["xhtml","xht"]},"application/xml":{extensions:["xml","xsl","xsd","rng"]},"application/zip":{extensions:["zip"]},"audio/3gpp":{extensions:["3gpp"]},"audio/3gpp2":{extensions:["3g2"]},"audio/aac":{extensions:["aac"]},"audio/midi":{extensions:["mid","midi","kar","rmi"]},"audio/mpeg":{extensions:["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/ogg":{extensions:["oga","ogg","spx","opus"]},"audio/opus":{extensions:["opus"]},"audio/wav":{extensions:["wav"]},"audio/webm":{extensions:["weba"]},"font/otf":{extensions:["otf"]},"font/ttf":{extensions:["ttf"]},"font/woff":{extensions:["woff"]},"font/woff2":{extensions:["woff2"]},"image/avif":{extensions:["avif"]},"image/bmp":{extensions:["bmp"]},"image/gif":{extensions:["gif"]},"image/jpeg":{extensions:["jpeg","jpg","jpe"]},"image/png":{extensions:["png"]},"image/svg+xml":{extensions:["svg","svgz"]},"image/tiff":{extensions:["tif","tiff"]},"image/vnd.microsoft.icon":{extensions:["ico"]},"image/webp":{extensions:["webp"]},"text/calendar":{extensions:["ics","ifb"]},"text/css":{extensions:["css"]},"text/csv":{extensions:["csv"]},"text/html":{extensions:["html","htm","shtml"]},"text/javascript":{extensions:["js","mjs"]},"text/plain":{extensions:["txt","text","conf","def","list","log","in","ini"]},"video/3gpp":{extensions:["3gp","3gpp"]},"video/3gpp2":{extensions:["3g2"]},"video/mp2t":{extensions:["ts"]},"video/mp4":{extensions:["mp4","mp4v","mpg4"]},"video/mpeg":{extensions:["mpeg","mpg","mpe","m1v","m2v"]},"video/ogg":{extensions:["ogv"]},"video/webm":{extensions:["webm"]},"video/x-msvideo":{extensions:["avi"]}},KPt={directoryPaths:UPt,mimeTypes:JPt},jPt=KPt,QPt={color:DPt,database:ZPt,hacker:WPt,internet:XPt,location:zPt,metadata:HPt,system:jPt},$Pt=QPt,qPt=[{name:"爱琴海航空公司",iataCode:"A3"},{name:"俄罗斯航空公司",iataCode:"SU"},{name:"阿根廷航空公司",iataCode:"AR"},{name:"墨西哥国际航空公司",iataCode:"AM"},{name:"阿尔及利亚航空公司",iataCode:"AH"},{name:"阿拉伯航空公司",iataCode:"G9"},{name:"加拿大航空公司",iataCode:"AC"},{name:"中国国际航空公司",iataCode:"CA"},{name:"西班牙欧洲航空公司",iataCode:"UX"},{name:"法航荷航集团",iataCode:"AF"},{name:"印度国际航空公司",iataCode:"AI"},{name:"毛里求斯航空公司",iataCode:"MK"},{name:"新西兰航空公司",iataCode:"NZ"},{name:"新几内亚航空公司",iataCode:"PX"},{name:"塔希提航空公司",iataCode:"VT"},{name:"大溪地航空公司",iataCode:"TN"},{name:"越洋航空公司",iataCode:"TS"},{name:"亚洲航空X公司",iataCode:"D7"},{name:"亚洲航空公司",iataCode:"AK"},{name:"喀里多尼亚国际航空公司",iataCode:"SB"},{name:"阿拉斯加航空公司",iataCode:"AS"},{name:"意大利航空公司",iataCode:"AZ"},{name:"全日空公司",iataCode:"NH"},{name:"忠实航空公司",iataCode:"G4"},{name:"美国航空公司",iataCode:"AA"},{name:"韩亚航空公司",iataCode:"OZ"},{name:"哥伦比亚航空公司",iataCode:"AV"},{name:"巴西蔚蓝航空公司",iataCode:"AD"},{name:"蓝色航空公司",iataCode:"ZF"},{name:"北京首都航空公司",iataCode:"JD"},{name:"玻利维亚航空公司",iataCode:"OB"},{name:"英国航空公司",iataCode:"BA"},{name:"国泰航空公司",iataCode:"CX"},{name:"宿雾太平洋航空公司",iataCode:"5J"},{name:"中华航空公司",iataCode:"CI"},{name:"中国东方航空公司",iataCode:"MU"},{name:"中国南方航空公司",iataCode:"CZ"},{name:"神鹰航空公司",iataCode:"DE"},{name:"巴拿马航空公司",iataCode:"CM"},{name:"达美航空公司",iataCode:"DL"},{name:"易飞航空公司",iataCode:"VE"},{name:"易捷航空公司",iataCode:"U2"},{name:"埃及航空公司",iataCode:"MS"},{name:"以色列艾拉航空公司",iataCode:"LY"},{name:"阿联酋航空公司",iataCode:"EK"},{name:"埃塞俄比亚航空公司",iataCode:"ET"},{name:"阿提哈德航空公司",iataCode:"EY"},{name:"长荣航空公司",iataCode:"BR"},{name:"斐济航空公司",iataCode:"FJ"},{name:"芬兰航空公司",iataCode:"AY"},{name:"迪拜航空公司公司",iataCode:"FZ"},{name:"边疆航空公司",iataCode:"F9"},{name:"印度尼西亚鹰航空公司",iataCode:"GA"},{name:"高尔航空公司",iataCode:"G3"},{name:"海南航空公司",iataCode:"HU"},{name:"夏威夷航空公司",iataCode:"HA"},{name:"靛蓝航空公司",iataCode:"6E"},{name:"日本航空公司",iataCode:"JL"},{name:"济州航空公司",iataCode:"7C"},{name:"捷特二航空公司",iataCode:"LS"},{name:"捷蓝航空公司",iataCode:"B6"},{name:"上海吉祥航空公司",iataCode:"HO"},{name:"肯尼亚航空公司",iataCode:"KQ"},{name:"大韩航空公司",iataCode:"KE"},{name:"酷路拉航空航空公司",iataCode:"MN"},{name:"南美航空公司",iataCode:"LA"},{name:"狮子航空公司",iataCode:"JT"},{name:"波兰航空公司",iataCode:"LO"},{name:"德国汉莎航空公司",iataCode:"LH"},{name:"利比亚阿拉伯航空公司",iataCode:"LN"},{name:"玻利维亚亚马孙航空公司",iataCode:"Z8"},{name:"马来西亚航空公司",iataCode:"MH"},{name:"北风航空公司",iataCode:"N4"},{name:"挪威穿梭航空公司",iataCode:"DY"},{name:"阿曼航空公司",iataCode:"WY"},{name:"巴基斯坦国际航空公司",iataCode:"PK"},{name:"飞马航空公司",iataCode:"PC"},{name:"菲律宾航空公司",iataCode:"PR"},{name:"澳洲航空公司",iataCode:"QF"},{name:"卡塔尔航空公司",iataCode:"QR"},{name:"共和航空公司",iataCode:"YX"},{name:"摩洛哥皇家航空公司",iataCode:"AT"},{name:"瑞安航空公司",iataCode:"FR"},{name:"西伯利亚航空公司",iataCode:"S7"},{name:"北欧航空公司",iataCode:"SK"},{name:"沙特阿拉伯航空公司",iataCode:"SV"},{name:"山东航空公司",iataCode:"SC"},{name:"四川航空公司",iataCode:"3U"},{name:"新加坡航空公司",iataCode:"SQ"},{name:"天空航空公司",iataCode:"H2"},{name:"天西航空公司",iataCode:"OO"},{name:"南非航空公司",iataCode:"SA"},{name:"西南航空公司",iataCode:"WN"},{name:"香料航空公司",iataCode:"SG"},{name:"精神航空公司",iataCode:"NK"},{name:"春秋航空公司",iataCode:"9S"},{name:"斯里兰卡航空公司",iataCode:"UL"},{name:"秘鲁星航空公司",iataCode:"2I"},{name:"太阳城航空公司",iataCode:"SY"},{name:"阳光快运航空",iataCode:"XQ"},{name:"葡萄牙航空公司",iataCode:"TP"},{name:"泰国亚洲航空",iataCode:"FD"},{name:"泰国航空公司",iataCode:"TG"},{name:"途易飞航空",iataCode:"BY"},{name:"突尼斯航空公司",iataCode:"TU"},{name:"土耳其航空公司",iataCode:"TK"},{name:"乌克兰国际航空公司",iataCode:"PS"},{name:"美国联合航空公司",iataCode:"UA"},{name:"乌拉航空公司",iataCode:"U6"},{name:"越南越捷航空公司",iataCode:"VJ"},{name:"越南航空公司",iataCode:"VN"},{name:"维珍航空公司",iataCode:"VS"},{name:"维珍蓝航空公司",iataCode:"VA"},{name:"万岁空中巴士航空公司",iataCode:"VB"},{name:"巴西航空公司",iataCode:"2Z"},{name:"沃拉里斯航空公司",iataCode:"Y4"},{name:"西捷航空公司",iataCode:"WS"},{name:"温戈航空公司",iataCode:"P5"},{name:"维兹航空公司",iataCode:"W6"}],eOt=[{name:"航天/BAC协和式飞机",iataTypeCode:"SSC"},{name:"空客A300",iataTypeCode:"AB3"},{name:"空客A310",iataTypeCode:"310"},{name:"空客A310-200",iataTypeCode:"312"},{name:"空客A310-300",iataTypeCode:"313"},{name:"空客A318",iataTypeCode:"318"},{name:"空客A319",iataTypeCode:"319"},{name:"空客A319neo",iataTypeCode:"31N"},{name:"空客A320",iataTypeCode:"320"},{name:"空客A320neo",iataTypeCode:"32N"},{name:"空客A321",iataTypeCode:"321"},{name:"空客A321neo",iataTypeCode:"32Q"},{name:"空客A330",iataTypeCode:"330"},{name:"空客A330-200",iataTypeCode:"332"},{name:"空客A330-300",iataTypeCode:"333"},{name:"空客A330-800neo",iataTypeCode:"338"},{name:"空客A330-900neo",iataTypeCode:"339"},{name:"空客A340",iataTypeCode:"340"},{name:"空客A340-200",iataTypeCode:"342"},{name:"空客A340-300",iataTypeCode:"343"},{name:"空客A340-500",iataTypeCode:"345"},{name:"空客A340-600",iataTypeCode:"346"},{name:"空客A350",iataTypeCode:"350"},{name:"空客A350-900",iataTypeCode:"359"},{name:"空客A350-1000",iataTypeCode:"351"},{name:"空客A380",iataTypeCode:"380"},{name:"空客A380-800",iataTypeCode:"388"},{name:"安东诺夫 安-12",iataTypeCode:"ANF"},{name:"安东诺夫 安-24",iataTypeCode:"AN4"},{name:"安东诺夫 安-26",iataTypeCode:"A26"},{name:"安东诺夫 安-28",iataTypeCode:"A28"},{name:"安东诺夫 安-30",iataTypeCode:"A30"},{name:"安东诺夫 安-32",iataTypeCode:"A32"},{name:"安东诺夫 安-72",iataTypeCode:"AN7"},{name:"安东诺夫 安-124 Ruslan",iataTypeCode:"A4F"},{name:"安东诺夫 安-140",iataTypeCode:"A40"},{name:"安东诺夫 安-148",iataTypeCode:"A81"},{name:"安东诺夫 安-158",iataTypeCode:"A58"},{name:"安东诺夫 安-225 Mriya",iataTypeCode:"A5F"},{name:"波音707",iataTypeCode:"703"},{name:"波音717",iataTypeCode:"717"},{name:"波音720B",iataTypeCode:"B72"},{name:"波音727",iataTypeCode:"727"},{name:"波音727-100",iataTypeCode:"721"},{name:"波音727-200",iataTypeCode:"722"},{name:"波音737 MAX 7",iataTypeCode:"7M7"},{name:"波音737 MAX 8",iataTypeCode:"7M8"},{name:"波音737 MAX 9",iataTypeCode:"7M9"},{name:"波音737 MAX 10",iataTypeCode:"7MJ"},{name:"波音737",iataTypeCode:"737"},{name:"波音737-100",iataTypeCode:"731"},{name:"波音737-200",iataTypeCode:"732"},{name:"波音737-300",iataTypeCode:"733"},{name:"波音737-400",iataTypeCode:"734"},{name:"波音737-500",iataTypeCode:"735"},{name:"波音737-600",iataTypeCode:"736"},{name:"波音737-700",iataTypeCode:"73G"},{name:"波音737-800",iataTypeCode:"738"},{name:"波音737-900",iataTypeCode:"739"},{name:"波音747",iataTypeCode:"747"},{name:"波音747-100",iataTypeCode:"741"},{name:"波音747-200",iataTypeCode:"742"},{name:"波音747-300",iataTypeCode:"743"},{name:"波音747-400",iataTypeCode:"744"},{name:"波音747-400D",iataTypeCode:"74J"},{name:"波音747-8",iataTypeCode:"748"},{name:"波音747SP",iataTypeCode:"74L"},{name:"波音747SR",iataTypeCode:"74R"},{name:"波音757",iataTypeCode:"757"},{name:"波音757-200",iataTypeCode:"752"},{name:"波音757-300",iataTypeCode:"753"},{name:"波音767",iataTypeCode:"767"},{name:"波音767-200",iataTypeCode:"762"},{name:"波音767-300",iataTypeCode:"763"},{name:"波音767-400",iataTypeCode:"764"},{name:"波音777",iataTypeCode:"777"},{name:"波音777-200",iataTypeCode:"772"},{name:"波音777-200LR",iataTypeCode:"77L"},{name:"波音777-300",iataTypeCode:"773"},{name:"波音777-300ER",iataTypeCode:"77W"},{name:"波音787",iataTypeCode:"787"},{name:"波音787-8",iataTypeCode:"788"},{name:"波音787-9",iataTypeCode:"789"},{name:"波音787-10",iataTypeCode:"781"},{name:"加拿大挑战者飞机",iataTypeCode:"CCJ"},{name:"加拿大CL-44",iataTypeCode:"CL4"},{name:"加拿大支线喷气机100",iataTypeCode:"CR1"},{name:"加拿大支线喷气机200",iataTypeCode:"CR2"},{name:"加拿大支线喷气机700",iataTypeCode:"CR7"},{name:"加拿大支线喷气机705",iataTypeCode:"CRA"},{name:"加拿大支线喷气机900",iataTypeCode:"CR9"},{name:"加拿大支线喷气机1000",iataTypeCode:"CRK"},{name:"加拿大德哈维兰DHC-2 Beaver",iataTypeCode:"DHP"},{name:"加拿大德哈维兰DHC-2 Turbo-Beaver",iataTypeCode:"DHR"},{name:"加拿大德哈维兰DHC-3 Otter",iataTypeCode:"DHL"},{name:"加拿大德哈维兰DHC-4 Caribou",iataTypeCode:"DHC"},{name:"加拿大德哈维兰DHC-6 Twin Otter",iataTypeCode:"DHT"},{name:"加拿大德哈维兰DHC-7 Dash 7",iataTypeCode:"DH7"},{name:"加拿大德哈维兰DHC-8-100 Dash 8 / 8Q",iataTypeCode:"DH1"},{name:"加拿大德哈维兰DHC-8-200 Dash 8 / 8Q",iataTypeCode:"DH2"},{name:"加拿大德哈维兰DHC-8-300 Dash 8 / 8Q",iataTypeCode:"DH3"},{name:"加拿大德哈维兰DHC-8-400 Dash 8Q",iataTypeCode:"DH4"},{name:"德哈维兰DH.104 Dove",iataTypeCode:"DHD"},{name:"德哈维兰DH.114 Heron",iataTypeCode:"DHH"},{name:"道格拉斯DC-3",iataTypeCode:"D3F"},{name:"道格拉斯DC-6",iataTypeCode:"D6F"},{name:"道格拉斯DC-8-50",iataTypeCode:"D8T"},{name:"道格拉斯DC-8-62",iataTypeCode:"D8L"},{name:"道格拉斯DC-8-72",iataTypeCode:"D8Q"},{name:"道格拉斯DC-9-10",iataTypeCode:"D91"},{name:"道格拉斯DC-9-20",iataTypeCode:"D92"},{name:"道格拉斯DC-9-30",iataTypeCode:"D93"},{name:"道格拉斯DC-9-40",iataTypeCode:"D94"},{name:"道格拉斯DC-9-50",iataTypeCode:"D95"},{name:"道格拉斯DC-10",iataTypeCode:"D10"},{name:"道格拉斯DC-10-10",iataTypeCode:"D1X"},{name:"道格拉斯DC-10-30",iataTypeCode:"D1Y"},{name:"巴西工业航空公司170",iataTypeCode:"E70"},{name:"巴西工业航空公司175",iataTypeCode:"E75"},{name:"巴西工业航空公司190",iataTypeCode:"E90"},{name:"巴西工业航空公司195",iataTypeCode:"E95"},{name:"巴西工业航空公司E190-E2",iataTypeCode:"290"},{name:"巴西工业航空公司E195-E2",iataTypeCode:"295"},{name:"巴西工业航空公司EMB.110 Bandeirante",iataTypeCode:"EMB"},{name:"巴西工业航空公司EMB.120 Brasilia",iataTypeCode:"EM2"},{name:"巴西工业航空公司Legacy 600",iataTypeCode:"ER3"},{name:"巴西工业航空公司Phenom 100",iataTypeCode:"EP1"},{name:"巴西工业航空公司Phenom 300",iataTypeCode:"EP3"},{name:"巴西工业航空公司RJ135",iataTypeCode:"ER3"},{name:"巴西工业航空公司RJ140",iataTypeCode:"ERD"},{name:"巴西工业航空公司RJ145 Amazon",iataTypeCode:"ER4"},{name:"伊留申IL18",iataTypeCode:"IL8"},{name:"伊留申IL62",iataTypeCode:"IL6"},{name:"伊留申IL76",iataTypeCode:"IL7"},{name:"伊留申IL86",iataTypeCode:"ILW"},{name:"伊留申IL96-300",iataTypeCode:"I93"},{name:"伊留申IL114",iataTypeCode:"I14"},{name:"洛克希德L-182 / 282 / 382 (L-100) Hercules",iataTypeCode:"LOH"},{name:"洛克希德L-188 Electra",iataTypeCode:"LOE"},{name:"洛克希德L-1011 Tristar",iataTypeCode:"L10"},{name:"洛克希德L-1049 Super Constellation",iataTypeCode:"L49"},{name:"麦克唐纳道格拉斯MD11",iataTypeCode:"M11"},{name:"麦克唐纳道格拉斯MD80",iataTypeCode:"M80"},{name:"麦克唐纳道格拉斯MD81",iataTypeCode:"M81"},{name:"麦克唐纳道格拉斯MD82",iataTypeCode:"M82"},{name:"麦克唐纳道格拉斯MD83",iataTypeCode:"M83"},{name:"麦克唐纳道格拉斯MD87",iataTypeCode:"M87"},{name:"麦克唐纳道格拉斯MD88",iataTypeCode:"M88"},{name:"麦克唐纳道格拉斯MD90",iataTypeCode:"M90"},{name:"苏霍伊超级喷气机100-95",iataTypeCode:"SU9"},{name:"图波列夫Tu-134",iataTypeCode:"TU3"},{name:"图波列夫Tu-154",iataTypeCode:"TU5"},{name:"图波列夫Tu-204",iataTypeCode:"T20"},{name:"雅科夫列夫Yak-40",iataTypeCode:"YK4"},{name:"雅科夫列夫Yak-42",iataTypeCode:"YK2"}],tOt=[{name:"阿德莱德国际机场",iataCode:"ADL"},{name:"阿道弗·苏亚雷斯马德里-巴拉哈斯机场",iataCode:"MAD"},{name:"豪尔赫纽伯里机场机场",iataCode:"AEP"},{name:"阿方索·佩纳国际机场",iataCode:"CWB"},{name:"阿方索·博尼利亚·阿拉贡国际机场",iataCode:"CLO"},{name:"阿姆斯特丹史基浦机场",iataCode:"AMS"},{name:"阿图罗·梅里诺·贝尼特斯国际机场",iataCode:"SCL"},{name:"奥克兰国际机场",iataCode:"AKL"},{name:"北京首都国际机场",iataCode:"PEK"},{name:"贝伦瓦德坎斯国际机场",iataCode:"BEL"},{name:"贝洛奥里藏特坦克雷多·内维斯国际机场",iataCode:"CNF"},{name:"柏林泰格尔机场",iataCode:"TXL"},{name:"博乐国际机场",iataCode:"ADD"},{name:"巴西利亚儒塞利诺·库比契克总统国际机场",iataCode:"BSB"},{name:"布里斯班国际机场",iataCode:"BNE"},{name:"布里斯班机场",iataCode:"BRU"},{name:"凯恩斯机场",iataCode:"CNS"},{name:"开罗国际机场",iataCode:"CAI"},{name:"堪培拉机场",iataCode:"CBR"},{name:"开普敦国际机场",iataCode:"CPT"},{name:"戴高乐国际机场",iataCode:"CDG"},{name:"夏洛特道格拉斯国际机场",iataCode:"CLT"},{name:"成都双流国际机场",iataCode:"CTU"},{name:"贾特拉帕蒂·希瓦吉国际机场",iataCode:"BOM"},{name:"芝加哥奥黑尔国际机场",iataCode:"ORD"},{name:"重庆江北国际机场",iataCode:"CKG"},{name:"基督城国际机场",iataCode:"CHC"},{name:"哥本哈根卡斯特鲁普机场",iataCode:"CPH"},{name:"达拉斯沃思堡国际机场",iataCode:"DFW"},{name:"丹尼尔·井上国际机场",iataCode:"HNL"},{name:"丹佛国际机场",iataCode:"DEN"},{name:"廊曼国际机场",iataCode:"DMK"},{name:"迪拜国际机场",iataCode:"DXB"},{name:"都柏林机场",iataCode:"DUB"},{name:"杜塞尔多夫机场",iataCode:"DUS"},{name:"埃尔多拉多国际机场",iataCode:"BOG"},{name:"埃莱夫塞里奥斯·韦尼泽洛斯国际机场",iataCode:"ATH"},{name:"法阿国际机场",iataCode:"PPT"},{name:"劳德代尔堡好莱坞国际机场",iataCode:"FLL"},{name:"福塔莱萨平托马丁斯国际机场",iataCode:"FOR"},{name:"美因河畔法兰克福机场",iataCode:"FRA"},{name:"休斯顿机场乔治·布什洲际酒店",iataCode:"IAH"},{name:"黄金海岸机场",iataCode:"OOL"},{name:"瓜鲁柳斯 - 安德烈·佛朗哥·蒙托罗州长国际机场",iataCode:"GRU"},{name:"哈兹菲尔德-杰克逊亚特兰大国际机场",iataCode:"ATL"},{name:"赫尔辛基万塔机场",iataCode:"HEL"},{name:"霍巴特国际机场",iataCode:"HBA"},{name:"香港国际机场",iataCode:"HKG"},{name:"胡阿里·布迈丁机场",iataCode:"ALG"},{name:"赫尔格达国际机场",iataCode:"HRG"},{name:"仁川国际机场",iataCode:"ICN"},{name:"英迪拉·甘地国际机场",iataCode:"DEL"},{name:"伊斯坦布尔机场",iataCode:"IST"},{name:"杰克逊国际机场",iataCode:"POM"},{name:"济州国际机场",iataCode:"CJU"},{name:"约翰肯尼迪国际机场",iataCode:"JFK"},{name:"豪尔赫·查韦斯国际机场",iataCode:"LIM"},{name:"何塞·玛丽亚·科尔多瓦国际机场",iataCode:"MDE"},{name:"何塞普·塔拉德拉斯巴塞罗那埃尔普拉特机场",iataCode:"BCN"},{name:"卡胡卢伊机场",iataCode:"OGG"},{name:"阿卜杜勒阿齐兹国王国际机场",iataCode:"JED"},{name:"吉隆坡国际机场",iataCode:"KUL"},{name:"昆明长水国际机场",iataCode:"KMG"},{name:"拉通图塔国际机场",iataCode:"NOU"},{name:"莱昂纳多达芬奇-菲乌米奇诺机场",iataCode:"FCO"},{name:"伦敦希思罗机场",iataCode:"LHR"},{name:"洛杉矶国际机场",iataCode:"LAX"},{name:"麦卡伦国际机场",iataCode:"LAS"},{name:"墨尔本国际机场",iataCode:"MEL"},{name:"墨西哥城国际机场",iataCode:"MEX"},{name:"迈阿密国际机场",iataCode:"MIA"},{name:"皮斯塔里尼部长国际机场",iataCode:"EZE"},{name:"明尼阿波利斯-圣保罗国际机场/沃尔德-张伯伦机场",iataCode:"MSP"},{name:"穆罕默德五世国际机场",iataCode:"CMN"},{name:"莫斯科多莫杰多沃机场",iataCode:"DME"},{name:"慕尼黑机场",iataCode:"MUC"},{name:"穆尔塔拉穆罕默德国际机场",iataCode:"LOS"},{name:"楠迪国际机场",iataCode:"NAN"},{name:"内罗毕乔莫肯雅塔国际机场",iataCode:"NBO"},{name:"成田国际机场",iataCode:"NRT"},{name:"纽瓦克自由国际机场",iataCode:"EWR"},{name:"尼诺·阿基诺国际机场",iataCode:"MNL"},{name:"努美阿洋红色机场",iataCode:"GEA"},{name:"奥利弗·R·坦博国际机场",iataCode:"JNB"},{name:"奥兰多国际机场",iataCode:"MCO"},{name:"奥斯陆卢夫塔文机场",iataCode:"OSL"},{name:"珀斯机场",iataCode:"PER"},{name:"凤凰城天港国际机场",iataCode:"PHX"},{name:"累西腓瓜拉拉佩斯-吉尔伯托弗雷尔国际机场",iataCode:"REC"},{name:"里约热内卢加利昂国际机场",iataCode:"GIG"},{name:"萨尔加多菲略国际机场",iataCode:"POA"},{name:"萨尔瓦多·德普塔多·路易斯·爱德华多·马加良斯国际机场",iataCode:"SSA"},{name:"旧金山国际机场",iataCode:"SFO"},{name:"桑托斯·杜蒙特机场",iataCode:"SDU"},{name:"圣保罗孔戈尼亚斯机场",iataCode:"CGH"},{name:"西雅图塔科马国际机场",iataCode:"SEA"},{name:"上海虹桥国际机场",iataCode:"SHA"},{name:"上海浦东国际机场",iataCode:"PVG"},{name:"深圳宝安国际机场",iataCode:"SZX"},{name:"谢列梅捷沃国际机场",iataCode:"SVO"},{name:"新加坡樟宜机场",iataCode:"SIN"},{name:"苏加诺-哈达国际机场",iataCode:"CGK"},{name:"斯德哥尔摩-阿兰达机场",iataCode:"ARN"},{name:"素万那普机场",iataCode:"BKK"},{name:"悉尼金斯福德史密斯国际机场",iataCode:"SYD"},{name:"台湾桃园国际机场",iataCode:"TPE"},{name:"新山一国际机场",iataCode:"SGN"},{name:"东京羽田国际机场",iataCode:"HND"},{name:"多伦多皮尔逊国际机场",iataCode:"YYZ"},{name:"突尼斯迦太基国际机场",iataCode:"TUN"},{name:"温哥华国际机场",iataCode:"YVR"},{name:"维也纳国际机场",iataCode:"VIE"},{name:"维拉科波斯国际机场",iataCode:"VCP"},{name:"伏努科沃国际机场",iataCode:"VKO"},{name:"惠灵顿国际机场",iataCode:"WLG"},{name:"西安咸阳国际机场",iataCode:"XIY"},{name:"茹科夫斯基国际机场",iataCode:"ZIA"},{name:"苏黎世机场",iataCode:"ZRH"}],nOt={airline:qPt,airplane:eOt,airport:tOt},iOt=nOt,rOt=["大熊猫","眼镜熊","太阳熊","懒熊","美洲黑熊","亚洲黑熊","棕熊","北极熊"],oOt=["中华田园猫","中国狸花猫","山东狮子猫","玄猫","黑白花猫","三花猫","玳瑁猫","橘猫","四川简州猫","中国大白猫","美国短毛猫","英国短毛猫","加菲猫","波斯猫","布偶猫","苏格兰折耳猫","暹罗猫","斯芬克斯猫","德文卷毛猫","阿比西尼亚猫"],sOt=["藏獒","袖狗","拉萨狮子犬","西藏狮子犬","松狮犬","中国冠毛犬","西施犬","沙皮犬","八哥犬","西藏獚","中华田园犬","下司犬","北京犬","西藏梗","柴犬","哈士奇","德国牧羊犬","边境牧羊犬","贵兵犬","秋田犬","罗威纳犬","蝴蝶犬","英国斗牛犬","阿富汗猎犬","萨摩耶犬","大白熊犬","比利时牧羊犬","美国爱斯基摩犬","彭布罗克威尔士柯基犬","墨西哥无毛犬"],aOt=["草鱼","鲶鱼","鳙鱼","鲤鱼","金鱼","胭脂鱼","中华鲟","长江白鲟","新疆大头鱼","青鱼","鲫鱼"],lOt=["蒙古马","伊利马","三河马","河曲马"],uOt=["熊","猫","狗","鱼","马"],cOt={bear:rOt,cat:oOt,dog:sOt,fish:aOt,horse:lOt,type:uOt},dOt=cOt,hOt=["红色","绿色","蓝色","黄色","紫色","薄荷绿色","蓝绿色","白色","黑色","橙色","粉红色","灰色","红褐色","蓝紫色","青绿色","棕褐色","天蓝色","浅橙色","紫红色","淡紫色","淡褐色","青柠色","乳白色","靛蓝色","金色","银色"],gOt={human:hOt},mOt=gOt,fOt=["书籍","电影","音乐","游戏","电子","电脑","主页","花园","工具","杂货","健康","美丽","玩具","孩子","宝宝","服装","鞋子","珠宝","运动","户外","汽车","工业"],pOt=["人体工学椅电脑椅家用宿舍学生学习椅舒适久坐办公座椅转椅书桌椅","鼠标有线USB静音无声家用办公台式笔记本电脑家用商务电竞男","台式电脑机械硬盘SATA串口320G 500G 1TB 2T 3TB 4TB支持游戏监控","【2023新品官方旗舰正品】DERE戴睿笔记本电脑二合一新Surface Pro13平板商务办公学生教育超轻薄便携电脑本","华为笔记本电脑MateBook X Pro 2023 13代酷睿版锐炬显卡14.2英寸3.1K原色触控屏超轻薄旗舰微绒典藏1943","可选16G【M2芯片】Apple/苹果 MacBook Pro 13英寸笔记本电脑剪辑设计大学生办公专用正品分期24G","Sony/索尼 XR-55A80EK 55英寸4K超清认知智能OLED安卓摄像头电视","小米电视 Redmi A43 高清智能电视 43英寸液晶平板电视L43RA-RA","【新品享壕礼】vivo iQOO Z8x手机官方旗舰店新品上市官网正品学生大电池大内存手机iqoo z7 z7x","【至高立省300元 赠数据线】vivo Y78新品全面屏游戏拍照学生5G智能手机大电池官方旗舰店老人机Y78+ Y77"],bOt={adjective:["小的","人体工程学的","电子的","质朴的","智能的","华丽的","不可思议的","优雅的","精彩绝伦的","实用的","现代的","回收的","圆滑的","定制的","贼好用的","通用的","手工的","手工制作的","东方的","已许可的","豪华的","精致的","无品牌的","好吃"],material:["钢","青铜","木制","混凝土","塑料","棉花","花岗岩","橡胶","金属","软","新鲜","冷冻"],product:["椅子","汽车","电脑","键盘","鼠标","自行车","球","手套","裤子","衬衫","桌子","鞋子","帽子","毛巾","肥皂","金枪鱼","鸡肉","鱼肉","奶酪","培根","披萨","沙拉","香肠","薯条"]},COt={department:fOt,product_description:pOt,product_name:bOt},vOt=COt,yOt=["水产","林业","矿业","建设","食品","印刷","电力","燃气","网络科技","物流","保险","旅游发展","传媒","运输"],IOt=["{{location.state}}{{person.first_name}}{{company.category}}{{company.type}}","{{location.city}}{{person.first_name}}{{company.category}}{{company.type}}"],wOt=["有限责任公司","股份有限公司","有限公司","(集团)有限公司","集团有限公司","无限公司","无限责任公司"],SOt={category:yOt,name_pattern:IOt,type:wOt},xOt=SOt,LOt=["标识","标题","名称","邮箱","手机","令牌","组别","类别","密码","注释","头像","状态","创建于","更新于"],FOt={column:LOt},_Ot=FOt,DOt={wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],abbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"]},AOt={wide:["星期天","星期一","星期二","星期三","星期四","星期五","星期六"],abbr:["周日","周一","周二","周三","周四","周五","周六"]},NOt={month:DOt,weekday:AOt},kOt=NOt,MOt=["支票","储蓄","货币市场","投资","房屋贷款","信用卡","汽车贷款","个人贷款"],ZOt=["5[1-5]##-####-####-###L","2[221-720]-####-####-###L"],TOt=["62#############L","67#############L","81#############L","81##############L","81###############L","81################L"],EOt=["4###########L","4###-####-####-###L"],WOt={mastercard:ZOt,unionpay:TOt,visa:EOt},ROt=WOt,GOt=[{name:"阿联酋迪拉姆",code:"AED",symbol:""},{name:"阿富汗尼",code:"AFN",symbol:"؋"},{name:"列克",code:"ALL",symbol:"Lek"},{name:"亚美尼亚德拉姆",code:"AMD",symbol:""},{name:"荷属安的列斯盾",code:"ANG",symbol:"ƒ"},{name:"宽扎",code:"AOA",symbol:""},{name:"阿根廷比索",code:"ARS",symbol:"$"},{name:"澳大利亚元",code:"AUD",symbol:"$"},{name:"阿鲁巴弗罗林",code:"AWG",symbol:"ƒ"},{name:"阿塞拜疆马纳特",code:"AZN",symbol:"ман"},{name:"可兑换马克",code:"BAM",symbol:"KM"},{name:"巴巴多斯元",code:"BBD",symbol:"$"},{name:"孟加拉塔卡",code:"BDT",symbol:""},{name:"保加利亚列弗",code:"BGN",symbol:"лв"},{name:"巴林第纳尔",code:"BHD",symbol:""},{name:"布隆迪法郎",code:"BIF",symbol:""},{name:"百慕大元(通常称为百慕大元)",code:"BMD",symbol:"$"},{name:"文莱元",code:"BND",symbol:"$"},{name:"玻利维亚诺",code:"BOB",symbol:"Bs"},{name:"巴西雷亚尔",code:"BRL",symbol:"R$"},{name:"巴哈马元",code:"BSD",symbol:"$"},{name:"普拉",code:"BWP",symbol:"P"},{name:"白俄罗斯卢布",code:"BYN",symbol:"Rbl"},{name:"伯利兹元",code:"BZD",symbol:"BZ$"},{name:"加拿大元",code:"CAD",symbol:"$"},{name:"刚果法郎",code:"CDF",symbol:""},{name:"瑞士法郎",code:"CHF",symbol:"CHF"},{name:"智利比索",code:"CLP",symbol:"$"},{name:"人民币",code:"CNY",symbol:"¥"},{name:"哥伦比亚比索",code:"COP",symbol:"$"},{name:"哥斯达黎加科朗",code:"CRC",symbol:"₡"},{name:"古巴比索",code:"CUP",symbol:"₱"},{name:"佛得角埃斯库多",code:"CVE",symbol:""},{name:"捷克克朗",code:"CZK",symbol:"Kč"},{name:"吉布提法郎",code:"DJF",symbol:""},{name:"丹麦克朗",code:"DKK",symbol:"kr"},{name:"多米尼加比索",code:"DOP",symbol:"RD$"},{name:"阿尔及利亚第纳尔",code:"DZD",symbol:""},{name:"埃及镑",code:"EGP",symbol:"£"},{name:"纳克法",code:"ERN",symbol:""},{name:"埃塞俄比亚比尔",code:"ETB",symbol:""},{name:"欧元",code:"EUR",symbol:"€"},{name:"斐济元",code:"FJD",symbol:"$"},{name:"福克兰群岛镑",code:"FKP",symbol:"£"},{name:"英镑",code:"GBP",symbol:"£"},{name:"格鲁吉亚拉里",code:"GEL",symbol:""},{name:"塞地",code:"GHS",symbol:""},{name:"直布罗陀镑",code:"GIP",symbol:"£"},{name:"达尔西",code:"GMD",symbol:""},{name:"几内亚法郎",code:"GNF",symbol:""},{name:"格查尔",code:"GTQ",symbol:"Q"},{name:"圭亚那元",code:"GYD",symbol:"$"},{name:"港元",code:"HKD",symbol:"$"},{name:"伦皮拉",code:"HNL",symbol:"L"},{name:"古德",code:"HTG",symbol:""},{name:"福林特",code:"HUF",symbol:"Ft"},{name:"印度尼西亚卢比",code:"IDR",symbol:"Rp"},{name:"新以色列谢克尔",code:"ILS",symbol:"₪"},{name:"不丹努扎姆",code:"BTN",symbol:"Nu"},{name:"印度卢比",code:"INR",symbol:"₹"},{name:"伊拉克第纳尔",code:"IQD",symbol:""},{name:"伊朗里亚尔",code:"IRR",symbol:"﷼"},{name:"冰岛克朗",code:"ISK",symbol:"kr"},{name:"牙买加元",code:"JMD",symbol:"J$"},{name:"约旦第纳尔",code:"JOD",symbol:""},{name:"日元",code:"JPY",symbol:"¥"},{name:"肯尼亚先令",code:"KES",symbol:""},{name:"吉尔吉斯斯坦索姆",code:"KGS",symbol:"лв"},{name:"瑞尔",code:"KHR",symbol:"៛"},{name:"科摩罗法郎",code:"KMF",symbol:""},{name:"朝鲜圆",code:"KPW",symbol:"₩"},{name:"韩元",code:"KRW",symbol:"₩"},{name:"科威特第纳尔",code:"KWD",symbol:""},{name:"开曼群岛元",code:"KYD",symbol:"$"},{name:"坚戈",code:"KZT",symbol:"лв"},{name:"基普",code:"LAK",symbol:"₭"},{name:"黎巴嫩镑",code:"LBP",symbol:"£"},{name:"斯里兰卡卢比",code:"LKR",symbol:"₨"},{name:"利比里亚元",code:"LRD",symbol:"$"},{name:"利比亚第纳尔",code:"LYD",symbol:""},{name:"摩洛哥迪拉姆",code:"MAD",symbol:""},{name:"摩尔多瓦列伊",code:"MDL",symbol:""},{name:"马达加斯加阿里亚里",code:"MGA",symbol:""},{name:"马其顿代纳尔",code:"MKD",symbol:"ден"},{name:"缅甸元",code:"MMK",symbol:""},{name:"图格里克",code:"MNT",symbol:"₮"},{name:"澳门元",code:"MOP",symbol:""},{name:"乌吉亚",code:"MRU",symbol:""},{name:"毛里求斯卢比",code:"MUR",symbol:"₨"},{name:"拉菲亚",code:"MVR",symbol:""},{name:"克瓦查",code:"MWK",symbol:""},{name:"墨西哥比索",code:"MXN",symbol:"$"},{name:"马来西亚林吉特",code:"MYR",symbol:"RM"},{name:"莫桑比克梅蒂卡尔",code:"MZN",symbol:"MT"},{name:"奈拉",code:"NGN",symbol:"₦"},{name:"科多巴金科多巴",code:"NIO",symbol:"C$"},{name:"挪威克朗",code:"NOK",symbol:"kr"},{name:"尼泊尔卢比",code:"NPR",symbol:"₨"},{name:"新西兰元",code:"NZD",symbol:"$"},{name:"阿曼里亚尔",code:"OMR",symbol:"﷼"},{name:"巴尔博亚",code:"PAB",symbol:"B/."},{name:"秘鲁新索尔",code:"PEN",symbol:"S/."},{name:"基纳",code:"PGK",symbol:""},{name:"菲律宾比索",code:"PHP",symbol:"Php"},{name:"巴基斯坦卢比",code:"PKR",symbol:"₨"},{name:"兹罗提",code:"PLN",symbol:"zł"},{name:"巴拉圭瓜拉尼",code:"PYG",symbol:"Gs"},{name:"卡塔尔里亚尔",code:"QAR",symbol:"﷼"},{name:"新卢",code:"RON",symbol:"lei"},{name:"塞尔维亚第纳尔",code:"RSD",symbol:"Дин."},{name:"俄罗斯卢布",code:"RUB",symbol:"руб"},{name:"卢旺达法郎",code:"RWF",symbol:""},{name:"沙特里亚尔",code:"SAR",symbol:"﷼"},{name:"所罗门群岛元",code:"SBD",symbol:"$"},{name:"塞舌尔卢比",code:"SCR",symbol:"₨"},{name:"苏丹镑",code:"SDG",symbol:""},{name:"瑞典克朗",code:"SEK",symbol:"kr"},{name:"新加坡元",code:"SGD",symbol:"$"},{name:"圣赫勒拿镑",code:"SHP",symbol:"£"},{name:"利昂",code:"SLE",symbol:""},{name:"索马里先令",code:"SOS",symbol:"S"},{name:"苏里南元",code:"SRD",symbol:"$"},{name:"南苏丹镑",code:"SSP",symbol:""},{name:"多布拉",code:"STN",symbol:"Db"},{name:"叙利亚镑",code:"SYP",symbol:"£"},{name:"利兰吉尼",code:"SZL",symbol:""},{name:"泰铢",code:"THB",symbol:"฿"},{name:"索莫尼",code:"TJS",symbol:""},{name:"马纳特",code:"TMT",symbol:""},{name:"突尼斯第纳尔",code:"TND",symbol:""},{name:"帕安加",code:"TOP",symbol:""},{name:"土耳其里拉",code:"TRY",symbol:"₺"},{name:"特立尼达和多巴哥元",code:"TTD",symbol:"TT$"},{name:"新台币",code:"TWD",symbol:"NT$"},{name:"坦桑尼亚先令",code:"TZS",symbol:""},{name:"格里夫尼亚",code:"UAH",symbol:"₴"},{name:"乌干达先令",code:"UGX",symbol:""},{name:"美元",code:"USD",symbol:"$"},{name:"乌拉圭比索",code:"UYU",symbol:"$U"},{name:"乌兹别克索姆",code:"UZS",symbol:"лв"},{name:"委内瑞拉玻利瓦尔",code:"VES",symbol:"Bs"},{name:"越南盾",code:"VND",symbol:"₫"},{name:"瓦图",code:"VUV",symbol:""},{name:"塔拉",code:"WST",symbol:""},{name:"科姆罗尔法郎",code:"XAF",symbol:""},{name:"银",code:"XAG",symbol:"XAG"},{name:"金",code:"XAU",symbol:"XAU"},{name:"东加勒比元",code:"XCD",symbol:"$"},{name:"特别提款权",code:"XDR",symbol:"XDR"},{name:"中非金融合作法郎",code:"XOF",symbol:""},{name:"波利尼西亚法郎",code:"XPF",symbol:""},{name:"也门里亚尔",code:"YER",symbol:"﷼"},{name:"南非兰特",code:"ZAR",symbol:"R"},{name:"赞比亚克瓦查",code:"ZMW",symbol:"ZK"},{name:"津巴布韦元",code:"ZWL",symbol:"$"}],VOt=["存款","取款","支付","开票"],XOt={account_type:MOt,credit_card:ROt,currency:GOt,transaction_type:VOt},POt=XOt,OOt=["辅助","主要","后端","开源","虚拟","跨平台","冗余","在线","触控","多字节","蓝牙","无线","全高清","神经元","光学","固态","移动"],BOt=["驱动","协议","带宽","面板","芯片","程序","端口","卡片","数组","接口","系统","传感器","防火墙","硬盘","像素","警报","提要","监视器","应用","发送端","总线","电路","电容器","矩阵"],zOt=["倘若我们{{verb}}{{noun}},我们就可以通过{{adjective}}{{abbreviation}}{{noun}}获得{{abbreviation}}{{noun}}!","我们需要{{verb}}{{adjective}}{{abbreviation}}{{noun}}!","尝试{{verb}}{{abbreviation}}{{noun}},也许会{{verb}}{{adjective}}{{noun}}!","在没有{{verb}}{{adjective}}{{abbreviation}}{{noun}}的情况下,你不能{{verb}}{{noun}}!","使用{{adjective}}{{abbreviation}}{{noun}},然后你就能{{verb}}{{adjective}}{{noun}}!","{{abbreviation}}{{noun}}已关闭,因为{{adjective}}{{noun}}所以我们能{{verb}}{{abbreviation}}{{noun}}!","{{verb}}{{noun}}是无济于事的,我们需要{{verb}}{{adjective}}{{abbreviation}}{{noun}}!","我将{{verb}}{{adjective}}{{abbreviation}}{{noun}},那是应该{{noun}}{{abbreviation}}{{noun}}!"],YOt=["备份","绕过","入侵","覆盖","压缩","复制","导航","索引","链接","生成","量化","计算","合成","输入","传输","编程","重启","解析"],HOt={adjective:OOt,noun:BOt,phrase:zOt,verb:YOt},UOt=HOt,JOt=["126.com","139.com","163.com","21cn.com","gmail.com","hotmail.com","qq.com","sina.com","sohu.com","tom.com","vip.qq.com","yahoo.cn","yahoo.com.cn","yeah.net","foxmail.com","outlook.com"],KOt={free_email:JOt},jOt=KOt,QOt=["#####","####","###","##","#"],$Ot=["{{location.city_prefix}}{{location.city_suffix}}"],qOt=["上","包","北","南","厦","吉","太","宁","安","成","武","济","海","珠","福","衡","西","诸","贵","长"],eBt=["乡县","京市","南市","原市","口市","头市","宁市","安市","州市","徽市","林市","汉市","沙市","海市","码市","都市","门市","阳市"],tBt=["中国"],nBt=["######"],iBt=["北京市","上海市","天津市","重庆市","黑龙江省","吉林省","辽宁省","内蒙古自治区","河北省","新疆维吾尔自治区","甘肃省","青海省","陕西省","宁夏回族自治区","河南省","山东省","山西省","安徽省","湖北省","湖南省","江苏省","四川省","贵州省","云南省","广西壮族自治区","西藏自治区","浙江省","江西省","广东省","福建省","海南省"],rBt=["北京","上海","天津","重庆","黑龙江","吉林","辽阳","内蒙古","河北","新疆","甘肃","青海","陕西","宁夏","河南","山东","山西","合肥","湖北","湖南","苏州","四川","贵州","云南","广西","西藏","浙江","江西","广东","福建","海南"],oBt={normal:"{{location.street}}{{location.buildingNumber}}号",full:"{{location.street}}{{location.buildingNumber}}号 {{location.secondaryAddress}}"},sBt=["{{person.last_name}}{{location.street_suffix}}"],aBt=["巷","街","路","桥","侬","旁","中心","栋"],lBt={building_number:QOt,city_pattern:$Ot,city_prefix:qOt,city_suffix:eBt,default_country:tBt,postcode:nBt,state:iBt,state_abbr:rBt,street_address:oBt,street_pattern:sBt,street_suffix:aBt},uBt=lBt,cBt={title:"Chinese (China)",code:"zh_CN",country:"CN",language:"zh",endonym:"中文 (中国)",dir:"ltr",script:"Hans"},dBt=cBt,hBt=["摇滚","流行","重金属","电子","民谣","世界","乡村","爵士","放克","灵魂","嘻哈","经典","拉丁","牙买加","蓝调","非音乐","说唱","舞台与银幕"],gBt=["白月光与朱砂痣","孤勇者","稻香","起风了","纪念","晴天","兰亭序","我流泪情绪零碎","七里香","花海","反方向的钟","一路向北","蒲公英的约定","夜曲","搁浅","海底","105度的你","明明就","爱在西元前","我如此相信","枫","青花瓷","半岛铁盒","说了再见","暗号","退后","最长的电影","等你下课","烟花易冷","不该","告白气球","说好不哭","轨迹","红尘客栈","不能说的秘密","珊瑚海","给我一首歌的时间","你听得到","简单的爱","龙卷风","发如雪","园游会","听妈妈的话","夜的第七章","接口","手写从前","安静","爱情废材","以父之名","我不配","最伟大的作品","可爱女人","彩虹","回到过去","听悲伤的情话","把回忆拼好给你","东风破","黑色毛衣","本草纲目","开不了口","霍元甲","爱的飞行日记","大本钟","断了的弦","爷爷泡的茶","星晴","甜甜的","红颜如霜","粉色海洋","她的睫毛","雨下一整晚","白色风车","还在流浪","阳光宅男","算什么男人","菊花台","千里之外","错过的烟火","倒影","听见下雨的声音","黑色幽默","默","不爱我拉倒","之战之殇","布拉格广场","美人鱼","分裂","心雨","米兰的小铁匠","世界末日","一点点","外婆","画沙","哪里都是你","刀马旦","超人不会飞","牛仔很忙","周大侠","飘移","忍者","夏日妄想","铃芽之旅","玫瑰少年","大鱼","灯火里的中国","义勇军进行曲","调查中","少年","堕","在你身边","悬溺","奢香夫人","最好的安排","夏至未至","小城夏天","暖暖"],mBt={genre:hBt,song_name:gBt},fBt=mBt,pBt=["活动家","艺术家","作家","博主","企业家","教练","发明家","设计师","开发者","教育家","工程师","企业主","环保主义者","电影爱好者","电影制片人","美食家","创始人","朋友","玩家","极客","毕业生","创造者","领导者","模特","脑力爱好者","父母","爱国者","个人","哲学家","摄影爱好者","公众演说家","科学家","梦想家","学生","老师","旅行家","退伍军人","作者"],bBt=["{{person.bio_part}}","{{person.bio_part}},{{person.bio_part}}","{{person.bio_part}},{{person.bio_part}},{{person.bio_part}}","{{person.bio_part}},{{person.bio_part}},{{person.bio_part}}{{internet.emoji}}","{{word.noun}}{{person.bio_supporter}}","{{word.noun}}{{person.bio_supporter}}{{internet.emoji}}","{{word.noun}}{{person.bio_supporter}},{{person.bio_part}}","{{word.noun}}{{person.bio_supporter}},{{person.bio_part}}{{internet.emoji}}"],CBt=["倡导者","贡献者","发烧友","粉丝","狂热者","爱好者","支持者"],vBt=["秀英","秀兰","秀珍","桂英","桂兰","玉兰","玉珍","玉英","玉梅","凤英","兰英","婷婷","国英","国珍","国华","国芳","国兰","国秀","国琴","国荣","国香","英","萍","蒙","红","丽","敏","芳","静","霞","燕","娟","艳","娜","丹","玲","婷","珈","雪","倩","悦","颖","洁","慧","开慧","丽芬","丽芳","丽萍","若汐","一诺","艺涵","依诺","梓涵","梓晨","梓馨","梓萱","梓妍","梓玥","苡沫","雨桐","欣怡","语桐","语汐","雨涵","雨欣","诗雨","婷方","美方","雅婷","紫林","天娇","万佳","子欣","海燕","乙萍","安琪","馨羽","馥君","思佳","雅鑫","静怡","晨阳","佳琪","雯静","榕融"],yBt=null,IBt=["乐驹","伟宸","伟泽","伟祺","伟诚","俊驰","修杰","修洁","健柏","健雄","凯瑞","博文","博涛","博超","君浩","哲瀚","嘉懿","嘉熙","天宇","天磊","天翊","子涵","子轩","子骞","子默","展鹏","峻熙","建辉","弘文","彬","志强","志泽","思","思淼","思源","思聪","思远","懿轩","振家","擎宇","擎苍","文","文博","文昊","文轩","旭尧","昊天","昊强","昊焱","昊然","明","明哲","明杰","明轩","明辉","晋鹏","晓博","晓啸","晟睿","智宸","智渊","智辉","果","梓晨","楷瑞","正豪","泽洋","浩","浩宇","浩然","浩轩","涛","潇然","炎彬","炫明","烨伟","烨华","烨磊","烨霖","煜城","煜祺","熠彤","琪","瑞霖","瑾瑜","皓轩","睿渊","立果","立诚","立轩","立辉","笑愚","绍辉","绍齐","耀杰","聪健","胤祥","致远","航","苑博","荣轩","语堂","越彬","越泽","远航","金鑫","鑫磊","鑫鹏","钰轩","锦程","雨泽","雪松","靖琪","风华","驰","鸿涛","鸿煊","鹏","鹏涛","鹏煊","鹏飞","鹤轩","鹭洋","黎昕","诗雨","婷方","美方","雅婷","紫林","天娇","万佳","子欣","海燕","乙萍","安琪","馨羽","馥君","思佳","雅鑫","静怡","晨阳","佳琪","雯静","榕融","浩辰","癸霖","一全","三锋","义轩","俊凯","子豪","振东","智杰","哲新","中海","超栋","治涛","治文","文韬","敬彪","敬阳","政君","立伟","呈轩"],wBt=["赵","钱","孙","李","周","吴","郑","王","冯","陈","褚","卫","蒋","沈","韩","杨","朱","秦","尤","许","何","吕","施","张","孔","曹","严","华","金","魏","陶","姜","戚","谢","邹","喻","柏","水","窦","章","云","苏","潘","葛","奚","范","彭","郎","鲁","韦","昌","马","苗","凤","花","方","俞","任","袁","柳","酆","鲍","史","唐","费","廉","岑","薛","雷","贺","倪","汤","滕","殷","罗","毕","郝","邬","安","常","乐","于","时","傅","皮","卞","齐","康","伍","余","元","卜","顾","孟","平","黄","和","穆","萧","尹","姚","邵","湛","汪","祁","毛","禹","狄","米","贝","明","臧","计","伏","成","戴","谈","宋","茅","庞","熊","纪","舒","屈","项","祝","董","梁","杜","阮","蓝","闵","席","季","麻","强","贾","路","娄","危","江","童","颜","郭","梅","盛","林","刁","锺","徐","邱","骆","高","夏","蔡","田","樊","胡","凌","蹇","称","诺","来","多","繁","戊","朴","回","毓","税","荤","靖","绪","愈","硕","牢","买","但","巧","枚","撒","泰","秘","亥","绍","以","壬","森","斋","释","奕","姒","朋","求","羽","用","占","真","穰","翦","闾","漆","贵","代","贯","旁","崇","栋","告","休","褒","谏","锐","皋","闳","在","歧","禾","示","是","委","钊","频","嬴","呼","大","威","昂","律","冒","保","系","抄","定","化","莱","校","么","抗","祢","綦","悟","宏","功","庚","务","敏","捷","拱","兆","丑","丙","畅","苟","随","类","卯","俟","友","答","乙","允","甲","留","尾","佼","玄","乘","裔","延","植","环","矫","赛","昔","侍","度","旷","遇","偶","前","由","咎","塞","敛","受","泷","袭","衅","叔","圣","御","夫","仆","镇","藩","邸","府","掌","首","员","焉","戏","可","智","尔","凭","悉","进","笃","厚","仁","业","肇","资","合","仍","九","衷","哀","刑","俎","仵","圭","夷","徭","蛮","汗","孛","乾","帖","罕","洛","淦","洋","邶","郸","郯","邗","邛","剑","虢","隋","蒿","茆","菅","苌","树","桐","锁","钟","机","盘","铎","斛","玉","线","针","箕","庹","绳","磨","蒉","瓮","弭","刀","疏","牵","浑","恽","势","世","仝","同","蚁","止","戢","睢","冼","种","涂","肖","己","泣","潜","卷","脱","谬","蹉","赧","浮","顿","说","次","错","念","夙","斯","完","丹","表","聊","源","姓","吾","寻","展","出","不","户","闭","才","无","书","学","愚","本","性","雪","霜","烟","寒","少","字","桥","板","斐","独","千","诗","嘉","扬","善","揭","祈","析","赤","紫","青","柔","刚","奇","拜","佛","陀","弥","阿","素","长","僧","隐","仙","隽","宇","祭","酒","淡","塔","琦","闪","始","星","南","天","接","波","碧","速","禚","腾","潮","镜","似","澄","潭","謇","纵","渠","奈","风","春","濯","沐","茂","英","兰","檀","藤","枝","检","生","折","登","驹","骑","貊","虎","肥","鹿","雀","野","禽","飞","节","宜","鲜","粟","栗","豆","帛","官","布","衣","藏","宝","钞","银","门","盈","庆","喜","及","普","建","营","巨","望","希","道","载","声","漫","犁","力","贸","勤","革","改","兴","亓","睦","修","信","闽","北","守","坚","勇","汉","练","尉","士","旅","五","令","将","旗","军","行","奉","敬","恭","仪","母","堂","丘","义","礼","慈","孝","理","伦","卿","问","永","辉","位","让","尧","依","犹","介","承","市","所","苑","杞","剧","第","零","谌","招","续","达","忻","六","鄞","战","迟","候","宛","励","粘","萨","邝","覃","辜","初","楼","城","区","局","台","原","考","妫","纳","泉","老","清","德","卑","过","麦","曲","竹","百","福","言","霍","虞","万","支","柯","昝","管","卢","莫","经","房","裘","缪","干","解","应","宗","丁","宣","贲","邓","单","杭","洪","包","诸","左","石","崔","吉","钮","龚","程","嵇","邢","滑","裴","陆","荣","翁","荀","羊","於","惠","甄","麴","家","封","芮","羿","储","靳","汲","邴","糜","松","井","段","富","巫","乌","焦","巴","弓","牧","隗","山","谷","车","侯","宓","蓬","全","郗","班","仰","秋","仲","伊","宫","宁","仇","栾","暴","甘","钭","历","戎","祖","武","符","刘","景","詹","束","龙","叶","幸","司","韶","郜","黎","蓟","溥","印","宿","白","怀","蒲","邰","召","有","舜","拉","丛","岳","寸","贰","皇","侨","彤","竭","端","赫","实","甫","集","象","翠","狂","辟","典","良","函","芒","苦","其","京","中","夕","之","从","鄂","索","咸","籍","赖","卓","蔺","屠","蒙","池","乔","阳","郁","胥","能","苍","双","闻","莘","党","翟","谭","贡","劳","逄","姬","申","扶","堵","冉","宰","郦","雍","却","璩","桑","桂","濮","牛","寿","通","边","扈","燕","冀","僪","浦","尚","农","温","别","庄","晏","柴","瞿","阎","充","慕","连","茹","习","宦","艾","鱼","容","向","古","易","慎","戈","廖","庾","终","暨","居","衡","步","都","耿","满","弘","匡","国","文","琴","况","亢","缑","帅","寇","广","禄","阙","东","欧","殳","沃","利","蔚","越","夔","隆","师","巩","厍","聂","晁","勾","敖","融","冷","訾","辛","阚","那","简","饶","空","曾","毋","沙","乜","养","鞠","须","丰","巢","关","蒯","相","查","后","荆","红","游","特","察","竺","冠","宾","香","赏","伯","佴","佘","佟","爱","年","笪","谯","哈","墨","牟","商","海","归","钦","鄢","汝","法","闫","楚","晋","督","仉","盖","逯","库","郏","逢","阴","薄","厉","稽","开","光","操","瑞","眭","泥","运","摩","伟","铁","迮","果","权","逮","盍","益","桓","公","万俟","司马","上官","欧阳","夏侯","诸葛","闻人","东方","赫连","皇甫","尉迟","公羊","澹台","公冶","宗政","濮阳","淳于","单于","太叔","申屠","公孙","仲孙","轩辕","令狐","钟离","宇文","长孙","慕容","司徒","司空","章佳","那拉","觉罗","纳喇","乌雅","范姜","碧鲁"],SBt=[{value:"{{person.last_name}}",weight:1}],xBt=["建华","建国","建军","国强","国平","国良","国栋","国辉","志国","志明","勇","军","伟","强","刚","涛","斌","波","辉","磊","超","鹏","杰","浩","鑫","帅","宇","晨","诚","成","民","明","阳","瑜","熙成","熙瑶","家豪","家明","俊杰","俊熙","沐宸","浩宇","浩然","浩轩","浩晨","沐辰","茗泽","奕辰","奕泽","宇泽","宇轩","宇航","沐阳","梓诚","梓豪","梓睿","梓浩","浩辰","癸霖","一全","三锋","义轩","俊凯","子豪","振东","智杰","哲新","文昊","中海","超栋","治涛","治文","文韬","敬彪","敬阳","政君","立伟","呈轩"],LBt=null,FBt=[{value:"{{person.lastName}}{{person.firstName}}",weight:1}],_Bt=null,DBt={bio_part:pBt,bio_pattern:bBt,bio_supporter:CBt,female_first_name:vBt,female_prefix:yBt,first_name:IBt,last_name:wBt,last_name_pattern:SBt,male_first_name:xBt,male_prefix:LBt,name:FBt,prefix:_Bt},ABt=DBt,NBt=["0##-########","0###-########","1##########"],kBt={formats:NBt},MBt=kBt,ZBt=Object.freeze([{symbol:"H",name:"氢",atomicNumber:1},{symbol:"He",name:"氦",atomicNumber:2},{symbol:"Li",name:"锂",atomicNumber:3},{symbol:"Be",name:"铍",atomicNumber:4},{symbol:"B",name:"硼",atomicNumber:5},{symbol:"C",name:"碳",atomicNumber:6},{symbol:"N",name:"氮",atomicNumber:7},{symbol:"O",name:"氧",atomicNumber:8},{symbol:"F",name:"氟",atomicNumber:9},{symbol:"Ne",name:"氖",atomicNumber:10},{symbol:"Na",name:"钠",atomicNumber:11},{symbol:"Mg",name:"镁",atomicNumber:12},{symbol:"Al",name:"铝",atomicNumber:13},{symbol:"Si",name:"硅",atomicNumber:14},{symbol:"P",name:"磷",atomicNumber:15},{symbol:"S",name:"硫",atomicNumber:16},{symbol:"Cl",name:"氯",atomicNumber:17},{symbol:"Ar",name:"氩",atomicNumber:18},{symbol:"K",name:"钾",atomicNumber:19},{symbol:"Ca",name:"钙",atomicNumber:20},{symbol:"Sc",name:"钪",atomicNumber:21},{symbol:"Ti",name:"钛",atomicNumber:22},{symbol:"V",name:"钒",atomicNumber:23},{symbol:"Cr",name:"铬",atomicNumber:24},{symbol:"Mn",name:"锰",atomicNumber:25},{symbol:"Fe",name:"铁",atomicNumber:26},{symbol:"Co",name:"钴",atomicNumber:27},{symbol:"Ni",name:"镍",atomicNumber:28},{symbol:"Cu",name:"铜",atomicNumber:29},{symbol:"Zn",name:"锌",atomicNumber:30},{symbol:"Ga",name:"镓",atomicNumber:31},{symbol:"Ge",name:"锗",atomicNumber:32},{symbol:"As",name:"砷",atomicNumber:33},{symbol:"Se",name:"硒",atomicNumber:34},{symbol:"Br",name:"溴",atomicNumber:35},{symbol:"Kr",name:"氪",atomicNumber:36},{symbol:"Rb",name:"铷",atomicNumber:37},{symbol:"Sr",name:"锶",atomicNumber:38},{symbol:"Y",name:"钇",atomicNumber:39},{symbol:"Zr",name:"锆",atomicNumber:40},{symbol:"Nb",name:"铌",atomicNumber:41},{symbol:"Mo",name:"钼",atomicNumber:42},{symbol:"Tc",name:"Technetium",atomicNumber:43},{symbol:"Ru",name:"锝",atomicNumber:44},{symbol:"Rh",name:"锝",atomicNumber:45},{symbol:"Pd",name:"钯",atomicNumber:46},{symbol:"Ag",name:"银",atomicNumber:47},{symbol:"Cd",name:"镉",atomicNumber:48},{symbol:"In",name:"铟",atomicNumber:49},{symbol:"Sn",name:"锡",atomicNumber:50},{symbol:"Sb",name:"锑",atomicNumber:51},{symbol:"Te",name:"碲",atomicNumber:52},{symbol:"I",name:"碘",atomicNumber:53},{symbol:"Xe",name:"氙",atomicNumber:54},{symbol:"Cs",name:"铯",atomicNumber:55},{symbol:"Ba",name:"钡",atomicNumber:56},{symbol:"La",name:"镧",atomicNumber:57},{symbol:"Ce",name:"铈",atomicNumber:58},{symbol:"Pr",name:"镨",atomicNumber:59},{symbol:"Nd",name:"钕",atomicNumber:60},{symbol:"Pm",name:"钷",atomicNumber:61},{symbol:"Sm",name:"钐",atomicNumber:62},{symbol:"Eu",name:"铕",atomicNumber:63},{symbol:"Gd",name:"钆",atomicNumber:64},{symbol:"Tb",name:"铽",atomicNumber:65},{symbol:"Dy",name:"钬",atomicNumber:66},{symbol:"Ho",name:"钬",atomicNumber:67},{symbol:"Er",name:"铥",atomicNumber:68},{symbol:"Tm",name:"铥",atomicNumber:69},{symbol:"Yb",name:"镱",atomicNumber:70},{symbol:"Lu",name:"镥",atomicNumber:71},{symbol:"Hf",name:"铪",atomicNumber:72},{symbol:"Ta",name:"钽",atomicNumber:73},{symbol:"W",name:"钨",atomicNumber:74},{symbol:"Re",name:"铼",atomicNumber:75},{symbol:"Os",name:"锇",atomicNumber:76},{symbol:"Ir",name:"铱",atomicNumber:77},{symbol:"Pt",name:"铂",atomicNumber:78},{symbol:"Au",name:"金",atomicNumber:79},{symbol:"Hg",name:"汞",atomicNumber:80},{symbol:"Tl",name:"铊",atomicNumber:81},{symbol:"Pb",name:"铅",atomicNumber:82},{symbol:"Bi",name:"铋",atomicNumber:83},{symbol:"Po",name:"钋",atomicNumber:84},{symbol:"At",name:"砹",atomicNumber:85},{symbol:"Rn",name:"氡",atomicNumber:86},{symbol:"Fr",name:"钫",atomicNumber:87},{symbol:"Ra",name:"镭",atomicNumber:88},{symbol:"Ac",name:"锕",atomicNumber:89},{symbol:"Th",name:"钍",atomicNumber:90},{symbol:"Pa",name:"镎",atomicNumber:91},{symbol:"U",name:"镎",atomicNumber:92},{symbol:"Np",name:"镎",atomicNumber:93},{symbol:"Pu",name:"钚",atomicNumber:94},{symbol:"Am",name:"镅",atomicNumber:95},{symbol:"Cm",name:"锔",atomicNumber:96},{symbol:"Bk",name:"锫",atomicNumber:97},{symbol:"Cf",name:"锎",atomicNumber:98},{symbol:"Es",name:"锿",atomicNumber:99},{symbol:"Fm",name:"镄",atomicNumber:100},{symbol:"Md",name:"钔",atomicNumber:101},{symbol:"No",name:"锘",atomicNumber:102},{symbol:"Lr",name:"铹",atomicNumber:103},{symbol:"Rf",name:"𬬻",atomicNumber:104},{symbol:"Db",name:"𬭊",atomicNumber:105},{symbol:"Sg",name:"𬭳",atomicNumber:106},{symbol:"Bh",name:"𬭛",atomicNumber:107},{symbol:"Hs",name:"𬭶",atomicNumber:108},{symbol:"Mt",name:"鿏",atomicNumber:109},{symbol:"Ds",name:"𫟼",atomicNumber:110},{symbol:"Rg",name:"𬬭",atomicNumber:111},{symbol:"Cn",name:"鿔",atomicNumber:112},{symbol:"Nh",name:"鿭",atomicNumber:113},{symbol:"Fl",name:"𫓧",atomicNumber:114},{symbol:"Mc",name:"镆",atomicNumber:115},{symbol:"Lv",name:"𫟷",atomicNumber:116},{symbol:"Ts",name:"钿",atomicNumber:117},{symbol:"Og",name:"鿫",atomicNumber:118}]),TBt=Object.freeze([{name:"米",symbol:"m"},{name:"秒",symbol:"s"},{name:"摩尔",symbol:"mol"},{name:"安培",symbol:"A"},{name:"开尔文",symbol:"K"},{name:"坎德拉",symbol:"cd"},{name:"千克",symbol:"kg"},{name:"弧度",symbol:"rad"},{name:"赫兹",symbol:"Hz"},{name:"牛顿",symbol:"N"},{name:"帕斯卡",symbol:"Pa"},{name:"焦耳",symbol:"J"},{name:"瓦特",symbol:"W"},{name:"库伦",symbol:"C"},{name:"伏特",symbol:"V"},{name:"欧姆",symbol:"Ω"},{name:"特斯拉",symbol:"T"},{name:"摄氏度",symbol:"°C"},{name:"流明",symbol:"lm"},{name:"贝尔勒尔",symbol:"Bq"},{name:"戈瑞",symbol:"Gy"},{name:"希沃特",symbol:"Sv"},{name:"球面度",symbol:"sr"},{name:"法拉",symbol:"F"},{name:"西门子",symbol:"S"},{name:"韦伯",symbol:"Wb"},{name:"亨利",symbol:"H"},{name:"勒克斯",symbol:"lx"},{name:"开特",symbol:"kat"}]),EBt={chemicalElement:ZBt,unit:TBt},WBt=EBt,RBt=["冒险公路自行车","小轮车自行车","城市自行车","巡洋舰自行车","越野自行车","双运动自行车","健身自行车","平足舒适自行车","折叠自行车","混合动力自行车","山地自行车","卧式自行车","公路自行车","双人自行车","旅行自行车","场地/固定齿轮自行车","铁人三项/计时自行车","三轮车"],GBt=["柴油","电动","汽油","混合动力"],VBt=["阿斯顿·马丁","奥迪","宾利","宝马","布加迪","卡迪拉克","雪佛兰","克莱斯勒","躲闪","法拉利","菲亚特","福特","本田","现代","捷豹","吉普车","起亚","兰博基尼","路虎","玛莎拉蒂","马自达","奔驰","小型的","日产","极星","保时捷","劳斯莱斯","聪明的","特斯拉","丰田","大众汽车","沃尔沃"],XBt=["货车","掀背车","面包车","客车","越野车","轿车","旅行车"],PBt={bicycle_type:RBt,fuel:GBt,manufacturer:VBt,type:XBt},OBt=PBt,BBt=["长","短","大","小","粗","细","红","绿","平坦","整齐","雪白","笔直","绿油油","血淋淋","骨碌碌","黑不溜秋","好","坏","伟大","勇敢","优秀","聪明","老实","鲁莽","大方","软","硬","苦","甜","冷","热","坚固","平常","快","慢","生动","熟练","轻松","清楚","马虎","干脆","许多","好些","全部","全","整","多","少"],zBt=["都","全","单","共","光","尽","净","仅","就","只","一共","一起","一同","一道","一齐","一概","一味","统统","总共","仅仅","惟独","可","倒","一定","必定","必然","却","幸亏","难道","何尝","偏偏","索性","简直","反正","多亏","也许","大约","好在","敢情","不","没","没有","别","仿佛","渐渐","百般","特地","互相","擅自","几乎","逐渐","逐步","猛然","依然","仍然","当然","毅然","果然","差点儿","很","极","最","太","更","更加","格外","十分","极其","比较","相当","稍微","略微","多么"],YBt=["打","吃","抿","做","坐","跑","跳","走","飞","爬","开","滑","切","拆","咬","吞","吐","吮","吸","啃","喝","咀","嚼","搀","抱","搂","扶","捉","擒","掐","推","拿","抽","撕","摘","拣","捡","播","击","捏","撒","按","弹","撞","提","扭","捶","持","揍","披","捣","搜","托","举","拖","擦","敲","挖","抛","掘","抬","插","扔","写","抄","抓","捧","掷","撑","摊","倒","摔","劈","画","搔","撬","挥","揽","挡","捺","抚","搡","拉","摸","拍","摇","剪","拎","拔","拧","拨","舞","握","攥","驾驶","移动","转动","操作","蠕动","启动","关闭"],HBt={adjective:BBt,adverb:zBt,verb:YBt},UBt=HBt,JBt={airline:iOt,animal:dOt,color:mOt,commerce:vOt,company:xOt,database:_Ot,date:kOt,finance:POt,hacker:UOt,internet:jOt,location:uBt,metadata:dBt,music:fBt,person:ABt,phone_number:MBt,science:WBt,vehicle:OBt,word:UBt},KBt=JBt,Wo=new LPt({locale:[KBt,d4t,$Pt]});function IN(n){return n<10?"0"+n:n}function jBt(n,e,t,i){var r=t?"":n.getUTCFullYear()+"-"+IN(n.getUTCMonth()+1)+"-"+IN(n.getUTCDate());return e||(r+="T"+IN(n.getUTCHours())+":"+IN(n.getUTCMinutes())+":"+IN(n.getUTCSeconds())+(i?"."+(n.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5):"")+"Z"),r}function W_e(n,e){return e>n.length?n.repeat(Math.trunc(e/n.length)+1).substring(0,e):n}function FG(...n){const e=t=>t&&typeof t=="object";return n.reduce((t,i)=>(Object.keys(i||{}).forEach(r=>{const o=t[r],s=i[r];e(o)&&e(s)?t[r]=FG(o,s):t[r]=s}),t),Array.isArray(n[n.length-1])?[]:{})}function QBt(n){var e=$Bt(n),t=qBt(e,e,e,e),i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,r=>{var o=t()*16%16|0;return(r=="x"?o:o&3|8).toString(16)});return i}function m$(n){return{value:n==="object"?{}:n==="array"?[]:void 0}}function a1(n,e){e&&n.pop()}function $Bt(n){var e=0;if(n.length==0)return e;for(var t=0;t>>5)|0;return n=e^(t<<17|t>>>15),e=t+i|0,t=i+r|0,i=n+r|0,(i>>>0)/4294967296}}function ezt(n,e,t,i,r){let o=Qh(n,t,i);const s=[];for(let a of e){const{type:l,readOnly:u,writeOnly:c,value:d}=Qh({type:o.type,...a},t,i,r);o.type&&l&&l!==o.type&&(o.type=l),o.type=o.type||l,o.readOnly=o.readOnly||u,o.writeOnly=o.writeOnly||c,d!=null&&s.push(d)}if(o.type==="object")return o.value=FG(o.value||{},...s.filter(a=>typeof a=="object")),o;{o.type==="array"&&t.quiet;const a=s[s.length-1];return o.value=a??o.value,o}}const R_e={multipleOf:"number",maximum:"number",exclusiveMaximum:"number",minimum:"number",exclusiveMinimum:"number",maxLength:"string",minLength:"string",pattern:"string",items:"array",maxItems:"array",minItems:"array",uniqueItems:"array",additionalItems:"array",maxProperties:"object",minProperties:"object",required:"object",additionalProperties:"object",properties:"object",patternProperties:"object",dependencies:"object"};function _G(n){if(n.type!==void 0)return Array.isArray(n.type)?n.type.length===0?null:n.type[0]:n.type;const e=Object.keys(R_e);for(var t=0;te.maxSampleDepth)return a1(jh,i),m$(_G(n));if(n.$ref){if(!t)throw new Error("Your schema contains $ref. You must provide full specification in the third parameter.");let a=decodeURIComponent(n.$ref);a.startsWith("#")&&(a=a.substring(1));const l=szt.get(t,a);let u;if(DG[a]!==!0)DG[a]=!0,u=Qh(l,e,t,i),DG[a]=!1;else{const c=_G(l);u=m$(c)}return a1(jh,i),u}if(n.example!==void 0)return a1(jh,i),{value:n.example,readOnly:n.readOnly,writeOnly:n.writeOnly,type:n.type};if(n.allOf!==void 0)return a1(jh,i),V_e(n)||ezt({...n,allOf:void 0},n.allOf,e,t,i);if(n.oneOf&&n.oneOf.length){n.anyOf&&e.quiet,a1(jh,i);const a=Object.assign({readOnly:n.readOnly,writeOnly:n.writeOnly},n.oneOf[0]);return s(n,a)}if(n.anyOf&&n.anyOf.length){a1(jh,i);const a=Object.assign({readOnly:n.readOnly,writeOnly:n.writeOnly},n.anyOf[0]);return s(n,a)}if(n.if&&n.then){a1(jh,i);const{if:a,then:l,...u}=n;return Qh(FG(u,a,l),e,t,i)}let r=G_e(n),o=null;if(r===void 0){r=null,o=n.type,Array.isArray(o)&&n.type.length>0&&(o=n.type[0]),o||(o=_G(n));let a=O_e[o];a&&(r=a(n,e,t,i))}return a1(jh,i),{value:r,readOnly:n.readOnly,writeOnly:n.writeOnly,type:o};function s(a,l){const u=V_e(a);if(u!==void 0)return u;const c=Qh({...a,oneOf:void 0,anyOf:void 0},e,t,i),d=Qh(l,e,t,i);if(typeof c.value=="object"&&typeof d.value=="object"){const h=FG(c.value,d.value);return{...d,value:h}}return d}}function lzt(n,e={},t,i){const r=i&&i.depth||1;let o=Math.min(n.maxItems!=null?n.maxItems:1/0,n.minItems||1);const s=n.prefixItems||n.items||n.contains;Array.isArray(s)&&(o=Math.max(o,s.length));let a=u=>Array.isArray(s)?s[u]||{}:s||{},l=[];if(!s)return l;for(let u=0;u=n.maximum||!n.exclusiveMaximum&&e>n.maximum)&&(e=(n.maximum+n.minimum)/2),e;if(n.minimum)return n.exclusiveMinimum?Math.floor(n.minimum)+1:n.minimum;if(n.maximum)return n.exclusiveMaximum?n.maximum>0?0:Math.floor(n.maximum)-1:n.maximum>0?0:n.maximum}else{if(n.minimum)return n.minimum;n.exclusiveMinimum?(e=Math.floor(n.exclusiveMinimum)+1,e===n.exclusiveMaximum&&(e=(e+Math.floor(n.exclusiveMaximum)-1)/2)):n.exclusiveMaximum?e=Math.floor(n.exclusiveMaximum)-1:n.maximum&&(e=n.maximum)}return e}function czt(n,e={},t,i){let r={};const o=i&&i.depth||1;if(n&&typeof n.properties=="object"){let a=(Array.isArray(n.required)?n.required:[]).reduce((l,u)=>(l[u]=!0,l),{});Object.keys(n.properties).forEach(l=>{if(e.skipNonRequired&&!a.hasOwnProperty(l))return;const u=Qh(n.properties[l],e,t,{propertyName:l,depth:o+1});e.skipReadOnly&&u.readOnly||e.skipWriteOnly&&u.writeOnly||(r[l]=u.value)})}if(n&&typeof n.additionalProperties=="object"){const s=n.additionalProperties["x-additionalPropertiesName"]||"property";r[`${String(s)}1`]=Qh(n.additionalProperties,e,t,{depth:o+1}).value,r[`${String(s)}2`]=Qh(n.additionalProperties,e,t,{depth:o+1}).value}return r}const dzt="qwerty!@#$%^123456";function hzt(){return"user@example.com"}function gzt(){return"пошта@укр.нет"}function mzt(n,e){let t="pa$$word";return n>t.length&&(t+="_",t+=W_e(dzt,n-t.length).substring(0,n-t.length)),t}function f$({min:n,max:e,omitTime:t,omitDate:i}){let r=jBt(new Date("2019-08-24T14:15:22.123Z"),t,i,!1);return r.lengthe,r}function fzt(n,e){return f$({min:n,max:e,omitTime:!1,omitDate:!1})}function pzt(n,e){return f$({min:n,max:e,omitTime:!0,omitDate:!1})}function bzt(n,e){return f$({min:n,max:e,omitTime:!1,omitDate:!0}).slice(1)}function P_e(n,e){let t=W_e("string",n);return e&&t.length>e&&(t=t.substring(0,e)),t}function Czt(){return"192.168.0.1"}function vzt(){return"2001:0db8:85a3:0000:0000:8a2e:0370:7334"}function yzt(){return"example.com"}function Izt(){return"приклад.укр"}function wzt(){return"http://example.com"}function Szt(){return"../dictionary"}function xzt(){return"http://example.com/{endpoint}"}function Lzt(){return"http://example.com/entity/1"}function Fzt(){return"/entity/1"}function _zt(n,e,t){return QBt(t||"id")}function Dzt(){return"/json/pointer"}function Azt(){return"1/relative/json/pointer"}function Nzt(){return"/regex/"}const kzt={email:hzt,"idn-email":gzt,password:mzt,"date-time":fzt,date:pzt,time:bzt,ipv4:Czt,ipv6:vzt,hostname:yzt,"idn-hostname":Izt,iri:Lzt,"iri-reference":Fzt,uri:wzt,"uri-reference":Szt,"uri-template":xzt,uuid:_zt,default:P_e,"json-pointer":Dzt,"relative-json-pointer":Azt,regex:Nzt};function Mzt(n,e,t,i){let r=n.format||"default",o=kzt[r]||P_e,s=i&&i.propertyName;return o(n.minLength|0,n.maxLength,s)}var O_e={};const Zzt={skipReadOnly:!1,maxSampleDepth:15};function B_e(n,e,t){let i=Object.assign({},Zzt,e);return azt(),Qh(n,i,t).value}function _S(n,e){O_e[n]=e}_S("array",lzt),_S("boolean",uzt),_S("integer",X_e),_S("number",X_e),_S("object",czt),_S("string",Mzt);function z_e(n){return Ao(n).format("YYYY-MM-DD")}function Tzt(n){return Ao(Ao(n).format("YYYY-MM-DD")).unix()}function Ezt(n){return Ao(n).format("YYYY-MM-DD HH:mm:ss")}function Y_e(n){return Ao(n).unix()}var H_e=(n=>(n.id="id",n.timestamp="timestamp",n.datetimeunix="datetimeunix",n.datetime="datetime",n.time="time",n.dateunix="dateunix",n.date="date",n.email="email",n.ip="ip",n.host="host",n.url="url",n.username="username",n.password="password",n.mobile="mobile",n.tel="tel",n.phone="phone",n.idcard="idcard",n.bankcard="bankcard",n.address="address",n.birth="birth",n.offset="offset",n.pagesn="pagesn",n.pageno="pageno",n.pagenumber="pagenumber",n.size="size",n))(H_e||{});function Wzt(n,e){let t;switch(n){case"id":t=Wo.string.uuid();break;case"dateunix":t=Tzt(Wo.date.recent());break;case"date":t=z_e(Wo.date.recent());break;case"datetimeunix":case"timestamp":t=Y_e(Wo.date.recent());break;case"datetime":case"time":(e==null?void 0:e.schema).type==="number"||(e==null?void 0:e.schema).type==="integer"?t=Y_e(Wo.date.recent()):t=Ezt(Wo.date.recent());break;case"email":t=Wo.internet.email();break;case"ip":t=Wo.internet.ip();break;case"host":case"url":t=Wo.internet.url();break;case"username":t=Wo.internet.userName();break;case"password":t=Wo.internet.password();break;case"mobile":case"tel":case"phone":t=Wo.phone.number();break;case"idcard":t=`${Wo.location.zipCode()}${Ao(Wo.date.past({years:30})).format("YYYYMMDD")}${Wo.helpers.rangeToNumber({min:100,max:999})}X`;break;case"bankcard":t=Wo.finance.creditCardNumber();break;case"address":t=`${Wo.location.state()}${Wo.location.city()}${Wo.location.streetAddress()}`;break;case"birth":t=z_e(Wo.date.birthdate({min:1950,max:Ao().get("year")}));break;case"offset":case"pagesn":case"pageno":case"pagenumber":t=Wo.number.int({min:0,max:10});break;case"size":t=Wo.number.int({min:10,max:50});break;default:t=""}return t}function Rzt(n,e){const t={};return e?n=$p(n,i=>fg(i.name)!=="authorization"&&!!i.required):n=$p(n,i=>fg(i.name)!=="authorization"),zO(n,i=>{const r=i.schema;if(!Xs(r))if(r!=null&&r.format)t[i.name]=B_e(r,{skipReadOnly:!0});else{const o=yje(H_e,s=>oh(fg(i.name),s));o?t[i.name]=Wzt(o,i):r.type==="integer"?t[i.name]=Wo.number.int({min:0,max:1e5}):r.type==="string"?t[i.name]=Wo.string.sample({min:1,max:30}):r.type==="boolean"&&(t[i.name]=Wo.datatype.boolean())}}),t}function Gzt(n,e,t){return Xs(n)?void 0:B_e(n,{skipReadOnly:!0,skipNonRequired:t},e)}function Vzt(n){return e=>$p(n,t=>t.in===e)}function AG(n,e={}){return Kr(n,t=>{var o;const i=t.name,r=(o=t.schema)==null?void 0:o.pattern;return ae(Ti.Item,{name:i,rules:t.required?[r?{required:!0,pattern:r}:{required:!0}]:void 0,style:{marginBottom:10},children:ae(d$,{parameter:t,schemas:e})},i)})}var Xzt={name:"kkohdv",styles:"padding:6px 0"};function Pzt(n,e={}){const t=_me(n);return ae("div",{children:Kr(t,(i,r)=>{const o=i.schema?Fg(i.schema,e):{};return ae("div",{children:Rz(r)||Gz(r)?Rt("div",{css:Ji({backgroundColor:Qt.color.bg,padding:6,borderRadius:6},"",""),children:[ae("div",{css:Xzt,children:r}),ae("div",{css:Ji({height:1,backgroundColor:Qt.color.border,marginBottom:10},"","")}),Kr((o||{}).properties,(s,a)=>ae(Ti.Item,{name:a,children:ae(d$,{parameter:{in:"formData",name:a,schema:s},schemas:e})},a))]}):ae(Ti.Item,{name:"body",rules:n.required?[{required:!0}]:void 0,children:ae(d$,{parameter:{in:"body",name:r,schema:o},schemas:e})})},r)})},"requestBody")}function U_e({request:n}){const{t:e}=va(),t=hGt(n);return Rt("div",{children:[ae("div",{children:ae(so,{type:"primary",size:"small",style:{fontSize:Qt.fontSize.xxs},onClick:()=>{qP(t),Ql.success(e("openapi.copySuccess"))},children:e("openapi.copy")})}),ae("pre",{css:[{width:772,fontSize:Qt.fontSize.xs},Y9,"",""],children:t})]})}var Ozt={name:"1eoy87d",styles:"display:flex;justify-content:space-between"};function Bzt({request:n}){const{t:e}=va(),{method:t,url:i,headers:r,params:o,data:s}=n,a=` import axios from "axios"; + + const config = { + method: "${t}", + url: "${i}", + headers: ${JSON.stringify(r)}, + ${o?"params: "+JSON.stringify(o):"params: null"}, + ${s?"data: "+JSON.stringify(s):"data: null"}, + }; + + axios(config).then((response)=>{ + console.log(JSON.stringify(response.data)); + }).catch((error)=>{ + console.log(error); + });`;return Rt("div",{children:[Rt("div",{css:Ozt,children:[ae(K1.Group,{defaultValue:"axios",size:"small",children:ae(K1.Button,{value:"axios",children:"javaScript"})}),ae(so,{type:"primary",size:"small",style:{fontSize:Qt.fontSize.xxs},onClick:()=>{qP(a),Ql.success(e("openapi.copySuccess"))},children:e("openapi.copy")})]}),ae("pre",{css:[{width:772,fontSize:Qt.fontSize.xs},Y9,"",""],children:a})]})}var zzt={name:"182mwxi",styles:"flex:1;max-width:50%"},Yzt={name:"53oy56",styles:"flex:1;max-width:50%;margin-left:2em"},Hzt={name:"oelr46",styles:"margin:1em 0"},Uzt={name:"yaxt6v",styles:"margin:1em 0;& > *{margin-right:4px;}"};function Jzt(n){var v;const{operation:e,schemas:t}=n,[i]=Ti.useForm(),r=fC(),{openapiWithServiceInfo:o}=pg(),{configInfo:s}=eB(),{t:a}=va(),l=act(e,(v=o||{})==null?void 0:v.openapi),u=Vzt(e.parameters||[]),[c,d]=I.useState({}),[h,g]=I.useState(!1),[m,f]=I.useState(0);I.useEffect(()=>{i.resetFields(),d({})},[r.pathname]),I.useEffect(()=>{i.setFieldValue("Authorization",(s==null?void 0:s.authorization)||""),i.setFieldValue("authorization",(s==null?void 0:s.authorization)||""),f(w=>w+1)},[s==null?void 0:s.authorization]);async function b(w){g(!0);const S=await _L(w).finally(()=>g(!1));(S==null?void 0:S.status)>=200&&(S==null?void 0:S.status)<300&&d(S),g(!1)}function C(w){var L,D;let S,F;if(e.parameters&&(S=Rzt(e.parameters,w)),e.requestBody){const A=(D=(L=XZ(e.requestBody.content))==null?void 0:L[0])==null?void 0:D.schema;A&&(F=Gzt(A,o==null?void 0:o.openapi,w))}i.setFieldsValue({...S||{},body:Xs(F)?void 0:F}),f(m+1)}return ae(Ti,{form:i,name:"request-control-form",initialValues:{Authorization:s==null?void 0:s.authorization,authorization:s==null?void 0:s.authorization},onValuesChange:()=>{f(m+1)},onFinish:()=>b(l(i.getFieldsValue())),children:Rt("div",{css:Ji({display:"flex",fontSize:Qt.fontSize.xs},"",""),children:[Rt("div",{css:zzt,children:[AG(u("path"),t),AG(u("header"),t),AG(u("query"),t),AG(u("cookie"),t),e.requestBody&&Pzt(e.requestBody,t)]}),Rt("div",{css:Yzt,children:[ae(fpe,{css:Hzt,request:l(i.getFieldsValue())}),Rt("div",{css:Uzt,children:[ae(so,{htmlType:"submit",type:"primary",size:"small",style:{fontSize:Qt.fontSize.xxs},disabled:h,children:a(h?"openapi.requesting":"openapi.request")}),ae(so,{size:"small",style:{fontSize:Qt.fontSize.xxs},onClick:()=>C(!0),children:a("openapi.mockRequired")}),ae(so,{size:"small",style:{fontSize:Qt.fontSize.xxs},onClick:()=>C(!1),children:a("openapi.mockAll")}),ae(Q4,{content:ae(U_e,{request:l(i.getFieldsValue())}),trigger:"click",children:ae(so,{size:"small",style:{fontSize:Qt.fontSize.xxs},children:a("openapi.cURL")})}),ae(Q4,{content:ae(Bzt,{request:l(i.getFieldsValue())}),trigger:"click",children:ae(so,{size:"small",style:{fontSize:Qt.fontSize.xxs},children:a("openapi.generateCode")})})]}),!Xs(c)&&ae(Cpe,{...c})]})]})})}var Na={TERM_PROGRAM:"vscode",NODE:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NVM_CD_FLAGS:"-q",INIT_CWD:"/Users/alexander/my-code/github/openapi-ui",SHELL:"/bin/zsh",TERM:"xterm-256color",TMPDIR:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/",npm_config_metrics_registry:"https://registry.npmjs.org/",npm_config_global_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",TERM_PROGRAM_VERSION:"1.88.1",GVM_ROOT:"/Users/alexander/.gvm",MallocNanoZone:"0",ORIGINAL_XDG_CURRENT_DESKTOP:"undefined",ZDOTDIR:"/Users/alexander",COLOR:"1",npm_config_noproxy:"",ZSH:"/Users/alexander/.oh-my-zsh",PNPM_HOME:"/Users/alexander/Library/pnpm",npm_config_local_prefix:"/Users/alexander/my-code/github/openapi-ui",USER:"alexander",NVM_DIR:"/Users/alexander/.nvm",LD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",COMMAND_MODE:"unix2003",npm_config_globalconfig:"/Users/alexander/.nvm/versions/node/v16.10.0/etc/npmrc",SSH_AUTH_SOCK:"/private/tmp/com.apple.launchd.jaFD8W3kId/Listeners",__CF_USER_TEXT_ENCODING:"0x1F5:0x19:0x34",npm_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/bin/npm-cli.js",PAGER:"less",LSCOLORS:"Gxfxcxdxbxegedabagacad",PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.bin:/Users/alexander/my-code/github/node_modules/.bin:/Users/alexander/my-code/node_modules/.bin:/Users/alexander/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",npm_package_json:"/Users/alexander/my-code/github/openapi-ui/package.json",__CFBundleIdentifier:"com.microsoft.VSCode",USER_ZDOTDIR:"/Users/alexander",npm_config_auto_install_peers:"true",npm_config_init_module:"/Users/alexander/.npm-init.js",npm_config_userconfig:"/Users/alexander/.npmrc",PWD:"/Users/alexander/my-code/github/openapi-ui",GVM_VERSION:"1.0.22",npm_command:"run-script",EDITOR:"vi",npm_lifecycle_event:"build:package",LANG:"zh_CN.UTF-8",npm_package_name:"openapi-ui-dist",gvm_pkgset_name:"global",NODE_PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.pnpm/node_modules",XPC_FLAGS:"0x0",VSCODE_GIT_ASKPASS_EXTRA_ARGS:"",npm_package_engines_node:"^18.0.0 || >=20.0.0",npm_config_node_gyp:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",XPC_SERVICE_NAME:"0",npm_package_version:"2.0.1",VSCODE_INJECTION:"1",HOME:"/Users/alexander",SHLVL:"2",VSCODE_GIT_ASKPASS_MAIN:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js",GOROOT:"/Users/alexander/.gvm/gos/go1.21.6",DYLD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",gvm_go_name:"go1.21.6",LOGNAME:"alexander",LESS:"-R",VSCODE_PATH_PREFIX:"/Users/alexander/.gvm/gos/go1.20/bin:",npm_config_cache:"/Users/alexander/.npm",GVM_OVERLAY_PREFIX:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay",npm_lifecycle_script:"tsc && vite build --config vite.package.config.ts --mode package",LC_CTYPE:"zh_CN.UTF-8",VSCODE_GIT_IPC_HANDLE:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/vscode-git-79a18f10f2.sock",NVM_BIN:"/Users/alexander/.nvm/versions/node/v16.10.0/bin",PKG_CONFIG_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:",GOPATH:"/Users/alexander/mygo",npm_config_user_agent:"npm/7.24.0 node/v16.10.0 darwin x64 workspaces/false",GIT_ASKPASS:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh",VSCODE_GIT_ASKPASS_NODE:"/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin)",GVM_PATH_BACKUP:"/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",COLORTERM:"truecolor",npm_config_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",npm_node_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NODE_ENV:"production"};function J_e(){return"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."}var Kzt=Na.NODE_ENV==="production"?{name:"12o8wmt",styles:"display:inline-block;margin-left:8px"}:{name:"uo55jk-OpenapiView",styles:"display:inline-block;margin-left:8px;label:OpenapiView;",map:"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvb3BlbmFwaS9PcGVuYXBpVmlldy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEVjIiwiZmlsZSI6Ii9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvb3BlbmFwaS9PcGVuYXBpVmlldy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sdGlwLCBtZXNzYWdlIH0gZnJvbSBcImFudGRcIjtcbmltcG9ydCBjb3B5IGZyb20gXCJjb3B5LXRvLWNsaXBib2FyZFwiO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IFJlYWN0TWFya2Rvd24gZnJvbSBcInJlYWN0LW1hcmtkb3duXCI7XG5pbXBvcnQgeyB1c2VQYXJhbXMgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gXCIuLi9jb21wb25lbnRzL1NlY3Rpb25cIjtcbmltcG9ydCB7IHVzZU9wZW5hcGlXaXRoU2VydmljZUluZm9TdG9yZSB9IGZyb20gXCIuLi9jb3JlL3N0b3JlXCI7XG5pbXBvcnQgeyBkc2MgfSBmcm9tIFwiLi4vY29yZS9zdHlsZS9kZWZhdWx0U3R5bGVDb25maWdcIjtcbmltcG9ydCB7IFJlc3BvbnNlcyB9IGZyb20gXCIuL09wZW5hcGlWaWV3Q29tcFwiO1xuaW1wb3J0IHsgUmVxdWVzdEJ1aWxkZXIgfSBmcm9tIFwiLi9SZXF1ZXN0QnVpbGRlclwiO1xuaW1wb3J0IHsgUGFyYW1ldGVyUG9zaXRpb25JY29uQ29tcCwgcGFyYW1ldGVyUG9zaXRpb25NYXAgfSBmcm9tIFwiLi9jb25maWdcIjtcbmltcG9ydCB7IGdldEF4aW9zQmFzZVBhdGhCeVVybCwgZ2V0TWV0aG9kQ29sb3IgfSBmcm9tIFwiLi91dGlsXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE9wZW5hcGlWaWV3KCkge1xuICBjb25zdCB7IG9wZXJhdGlvbklkIH0gPSB1c2VQYXJhbXMoKTtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBjb25zdCB7IG9wZW5hcGlXaXRoU2VydmljZUluZm8gfSA9IHVzZU9wZW5hcGlXaXRoU2VydmljZUluZm9TdG9yZSgpO1xuXG4gIGlmICghb3BlbmFwaVdpdGhTZXJ2aWNlSW5mbz8ub3BlcmF0aW9ucyB8fCAhb3BlcmF0aW9uSWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IG9wZXJhdGlvbiA9IG9wZW5hcGlXaXRoU2VydmljZUluZm8ub3BlcmF0aW9uc1tvcGVyYXRpb25JZF0gfHwge307XG4gIGNvbnN0IG1ldGhvZFN0eWxlID0gb3BlcmF0aW9uLm1ldGhvZCA/IHsgY29sb3I6IGdldE1ldGhvZENvbG9yKG9wZXJhdGlvbi5tZXRob2QpIH0gOiB7fTtcbiAgY29uc3QgY29tbW9uQ29sb3JTdHlsZSA9IHsgY29sb3I6IGRzYy5jb2xvci5wcmltYXJ5IH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IDYsXG4gICAgICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7bWV0aG9kU3R5bGUuY29sb3J9YCxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBtZXRob2RTdHlsZS5jb2xvcixcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgY29sb3I6IGRzYy5jb2xvci5iZyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgIHRleHREZWNvcmF0aW9uOiBvcGVyYXRpb24uZGVwcmVjYXRlZCA/IFwibGluZS10aHJvdWdoXCIgOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiA4LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dChcIm9wZW5hcGkuY2xpY2tUb0NvcHlcIil9PlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAgZm9udFNpemU6IGRzYy5mb250U2l6ZS5zLFxuICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogXCJib2xkXCIsXG4gICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogMTAsXG4gICAgICAgICAgICAgICAgICBjdXJzb3I6IFwicG9pbnRlclwiLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29weShvcGVyYXRpb24ub3BlcmF0aW9uSWQpO1xuICAgICAgICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKHQoXCJvcGVuYXBpLmNvcHlTdWNjZXNzXCIpKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge29wZXJhdGlvbi5vcGVyYXRpb25JZH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgPHNwYW4gdGl0bGU9e29wZXJhdGlvbi5zdW1tYXJ5fSBjc3M9e3sgZm9udFNpemU6IGRzYy5mb250U2l6ZS54eHMgfX0+XG4gICAgICAgICAgICAgIHtvcGVyYXRpb24uc3VtbWFyeX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgZm9udFNpemU6IGRzYy5mb250U2l6ZS5zLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjc3M9e3sgdGV4dFRyYW5zZm9ybTogXCJ1cHBlcmNhc2VcIiwgZm9udEZhbWlseTogZHNjLmZvbnRGYW1pbHkubW9ubyB9fT57b3BlcmF0aW9uLm1ldGhvZH08L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImlubGluZS1ibG9ja1wiLFxuICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IDgsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtvcGVyYXRpb24ucGF0aH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY3NzPXt7IHBhZGRpbmc6IDE2IH19PlxuICAgICAgICAgIHtvcGVyYXRpb24uZGVzY3JpcHRpb24gJiYgKFxuICAgICAgICAgICAgPFNlY3Rpb24gdGl0bGU9ezxzcGFuIGNzcz17Y29tbW9uQ29sb3JTdHlsZX0+e3QoXCJvcGVuYXBpLmRlc2NyaXB0aW9uXCIpfTwvc3Bhbj59PlxuICAgICAgICAgICAgICA8UmVhY3RNYXJrZG93bj57b3BlcmF0aW9uLmRlc2NyaXB0aW9ufTwvUmVhY3RNYXJrZG93bj5cbiAgICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTZWN0aW9uXG4gICAgICAgICAgICB0aXRsZT17XG4gICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNzcz17Y29tbW9uQ29sb3JTdHlsZX0+e3QoXCJvcGVuYXBpLnBhcmFtZXRlcnNcIil9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzbWFsbFxuICAgICAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IDEuNCxcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IFwiMC44ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiBcIjAuNWVtXCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBkc2MuY29sb3IudGV4dCxcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge21hcChwYXJhbWV0ZXJQb3NpdGlvbk1hcCwgKGxhYmVsLCBwb3NpdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cG9zaXRpb259XG4gICAgICAgICAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiBcIjFlbVwiLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGFyYW1ldGVyUG9zaXRpb25JY29uQ29tcCBwb3NpdGlvbj17cG9zaXRpb259IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxSZXF1ZXN0QnVpbGRlclxuICAgICAgICAgICAgICBzY2hlbWFzPXtvcGVuYXBpV2l0aFNlcnZpY2VJbmZvLm9wZW5hcGkuY29tcG9uZW50cz8uc2NoZW1hcyB8fCB7fX1cbiAgICAgICAgICAgICAgb3BlcmF0aW9uPXt7XG4gICAgICAgICAgICAgICAgLi4ub3BlcmF0aW9uLFxuICAgICAgICAgICAgICAgIGJhc2VQYXRoOiBnZXRBeGlvc0Jhc2VQYXRoQnlVcmwob3BlbmFwaVdpdGhTZXJ2aWNlSW5mby5zZXJ2aWNlVVJMKSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TZWN0aW9uPlxuICAgICAgICAgIDxTZWN0aW9uIHRpdGxlPXs8c3BhbiBjc3M9e2NvbW1vbkNvbG9yU3R5bGV9Pnt0KFwib3BlbmFwaS5yZXNwb25zZXNcIil9PC9zcGFuPn0+XG4gICAgICAgICAgICA8UmVzcG9uc2VzIG9wZXJhdGlvbj17b3BlcmF0aW9ufSAvPlxuICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ== */",toString:J_e},jzt=Na.NODE_ENV==="production"?{name:"10rtstj",styles:"padding:16px"}:{name:"yldor9-OpenapiView",styles:"padding:16px;label:OpenapiView;",map:"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvb3BlbmFwaS9PcGVuYXBpVmlldy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUZhIiwiZmlsZSI6Ii9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvb3BlbmFwaS9PcGVuYXBpVmlldy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sdGlwLCBtZXNzYWdlIH0gZnJvbSBcImFudGRcIjtcbmltcG9ydCBjb3B5IGZyb20gXCJjb3B5LXRvLWNsaXBib2FyZFwiO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IFJlYWN0TWFya2Rvd24gZnJvbSBcInJlYWN0LW1hcmtkb3duXCI7XG5pbXBvcnQgeyB1c2VQYXJhbXMgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gXCIuLi9jb21wb25lbnRzL1NlY3Rpb25cIjtcbmltcG9ydCB7IHVzZU9wZW5hcGlXaXRoU2VydmljZUluZm9TdG9yZSB9IGZyb20gXCIuLi9jb3JlL3N0b3JlXCI7XG5pbXBvcnQgeyBkc2MgfSBmcm9tIFwiLi4vY29yZS9zdHlsZS9kZWZhdWx0U3R5bGVDb25maWdcIjtcbmltcG9ydCB7IFJlc3BvbnNlcyB9IGZyb20gXCIuL09wZW5hcGlWaWV3Q29tcFwiO1xuaW1wb3J0IHsgUmVxdWVzdEJ1aWxkZXIgfSBmcm9tIFwiLi9SZXF1ZXN0QnVpbGRlclwiO1xuaW1wb3J0IHsgUGFyYW1ldGVyUG9zaXRpb25JY29uQ29tcCwgcGFyYW1ldGVyUG9zaXRpb25NYXAgfSBmcm9tIFwiLi9jb25maWdcIjtcbmltcG9ydCB7IGdldEF4aW9zQmFzZVBhdGhCeVVybCwgZ2V0TWV0aG9kQ29sb3IgfSBmcm9tIFwiLi91dGlsXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE9wZW5hcGlWaWV3KCkge1xuICBjb25zdCB7IG9wZXJhdGlvbklkIH0gPSB1c2VQYXJhbXMoKTtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBjb25zdCB7IG9wZW5hcGlXaXRoU2VydmljZUluZm8gfSA9IHVzZU9wZW5hcGlXaXRoU2VydmljZUluZm9TdG9yZSgpO1xuXG4gIGlmICghb3BlbmFwaVdpdGhTZXJ2aWNlSW5mbz8ub3BlcmF0aW9ucyB8fCAhb3BlcmF0aW9uSWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IG9wZXJhdGlvbiA9IG9wZW5hcGlXaXRoU2VydmljZUluZm8ub3BlcmF0aW9uc1tvcGVyYXRpb25JZF0gfHwge307XG4gIGNvbnN0IG1ldGhvZFN0eWxlID0gb3BlcmF0aW9uLm1ldGhvZCA/IHsgY29sb3I6IGdldE1ldGhvZENvbG9yKG9wZXJhdGlvbi5tZXRob2QpIH0gOiB7fTtcbiAgY29uc3QgY29tbW9uQ29sb3JTdHlsZSA9IHsgY29sb3I6IGRzYy5jb2xvci5wcmltYXJ5IH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IDYsXG4gICAgICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7bWV0aG9kU3R5bGUuY29sb3J9YCxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBtZXRob2RTdHlsZS5jb2xvcixcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgY29sb3I6IGRzYy5jb2xvci5iZyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgIHRleHREZWNvcmF0aW9uOiBvcGVyYXRpb24uZGVwcmVjYXRlZCA/IFwibGluZS10aHJvdWdoXCIgOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiA4LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dChcIm9wZW5hcGkuY2xpY2tUb0NvcHlcIil9PlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAgZm9udFNpemU6IGRzYy5mb250U2l6ZS5zLFxuICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogXCJib2xkXCIsXG4gICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogMTAsXG4gICAgICAgICAgICAgICAgICBjdXJzb3I6IFwicG9pbnRlclwiLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29weShvcGVyYXRpb24ub3BlcmF0aW9uSWQpO1xuICAgICAgICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKHQoXCJvcGVuYXBpLmNvcHlTdWNjZXNzXCIpKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge29wZXJhdGlvbi5vcGVyYXRpb25JZH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgPHNwYW4gdGl0bGU9e29wZXJhdGlvbi5zdW1tYXJ5fSBjc3M9e3sgZm9udFNpemU6IGRzYy5mb250U2l6ZS54eHMgfX0+XG4gICAgICAgICAgICAgIHtvcGVyYXRpb24uc3VtbWFyeX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgZm9udFNpemU6IGRzYy5mb250U2l6ZS5zLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjc3M9e3sgdGV4dFRyYW5zZm9ybTogXCJ1cHBlcmNhc2VcIiwgZm9udEZhbWlseTogZHNjLmZvbnRGYW1pbHkubW9ubyB9fT57b3BlcmF0aW9uLm1ldGhvZH08L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImlubGluZS1ibG9ja1wiLFxuICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IDgsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtvcGVyYXRpb24ucGF0aH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY3NzPXt7IHBhZGRpbmc6IDE2IH19PlxuICAgICAgICAgIHtvcGVyYXRpb24uZGVzY3JpcHRpb24gJiYgKFxuICAgICAgICAgICAgPFNlY3Rpb24gdGl0bGU9ezxzcGFuIGNzcz17Y29tbW9uQ29sb3JTdHlsZX0+e3QoXCJvcGVuYXBpLmRlc2NyaXB0aW9uXCIpfTwvc3Bhbj59PlxuICAgICAgICAgICAgICA8UmVhY3RNYXJrZG93bj57b3BlcmF0aW9uLmRlc2NyaXB0aW9ufTwvUmVhY3RNYXJrZG93bj5cbiAgICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTZWN0aW9uXG4gICAgICAgICAgICB0aXRsZT17XG4gICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNzcz17Y29tbW9uQ29sb3JTdHlsZX0+e3QoXCJvcGVuYXBpLnBhcmFtZXRlcnNcIil9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzbWFsbFxuICAgICAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IDEuNCxcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IFwiMC44ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiBcIjAuNWVtXCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBkc2MuY29sb3IudGV4dCxcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge21hcChwYXJhbWV0ZXJQb3NpdGlvbk1hcCwgKGxhYmVsLCBwb3NpdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cG9zaXRpb259XG4gICAgICAgICAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiBcIjFlbVwiLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGFyYW1ldGVyUG9zaXRpb25JY29uQ29tcCBwb3NpdGlvbj17cG9zaXRpb259IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxSZXF1ZXN0QnVpbGRlclxuICAgICAgICAgICAgICBzY2hlbWFzPXtvcGVuYXBpV2l0aFNlcnZpY2VJbmZvLm9wZW5hcGkuY29tcG9uZW50cz8uc2NoZW1hcyB8fCB7fX1cbiAgICAgICAgICAgICAgb3BlcmF0aW9uPXt7XG4gICAgICAgICAgICAgICAgLi4ub3BlcmF0aW9uLFxuICAgICAgICAgICAgICAgIGJhc2VQYXRoOiBnZXRBeGlvc0Jhc2VQYXRoQnlVcmwob3BlbmFwaVdpdGhTZXJ2aWNlSW5mby5zZXJ2aWNlVVJMKSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TZWN0aW9uPlxuICAgICAgICAgIDxTZWN0aW9uIHRpdGxlPXs8c3BhbiBjc3M9e2NvbW1vbkNvbG9yU3R5bGV9Pnt0KFwib3BlbmFwaS5yZXNwb25zZXNcIil9PC9zcGFuPn0+XG4gICAgICAgICAgICA8UmVzcG9uc2VzIG9wZXJhdGlvbj17b3BlcmF0aW9ufSAvPlxuICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ== */",toString:J_e},Qzt={name:"1mwkkc",styles:"margin-left:1em"};function $zt(){var s;const{operationId:n}=Wge(),{t:e}=va(),{openapiWithServiceInfo:t}=pg();if(!(t!=null&&t.operations)||!n)return null;const i=t.operations[n]||{},r=i.method?{color:Lme(i.method)}:{},o={color:Qt.color.primary};return ae("div",{children:Rt("div",{css:Ji({borderRadius:6,overflow:"hidden",border:`1px solid ${r.color}`},Na.NODE_ENV==="production"?"":";label:OpenapiView;",Na.NODE_ENV==="production"?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvb3BlbmFwaS9PcGVuYXBpVmlldy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEJRIiwiZmlsZSI6Ii9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvb3BlbmFwaS9PcGVuYXBpVmlldy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sdGlwLCBtZXNzYWdlIH0gZnJvbSBcImFudGRcIjtcbmltcG9ydCBjb3B5IGZyb20gXCJjb3B5LXRvLWNsaXBib2FyZFwiO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IFJlYWN0TWFya2Rvd24gZnJvbSBcInJlYWN0LW1hcmtkb3duXCI7XG5pbXBvcnQgeyB1c2VQYXJhbXMgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gXCIuLi9jb21wb25lbnRzL1NlY3Rpb25cIjtcbmltcG9ydCB7IHVzZU9wZW5hcGlXaXRoU2VydmljZUluZm9TdG9yZSB9IGZyb20gXCIuLi9jb3JlL3N0b3JlXCI7XG5pbXBvcnQgeyBkc2MgfSBmcm9tIFwiLi4vY29yZS9zdHlsZS9kZWZhdWx0U3R5bGVDb25maWdcIjtcbmltcG9ydCB7IFJlc3BvbnNlcyB9IGZyb20gXCIuL09wZW5hcGlWaWV3Q29tcFwiO1xuaW1wb3J0IHsgUmVxdWVzdEJ1aWxkZXIgfSBmcm9tIFwiLi9SZXF1ZXN0QnVpbGRlclwiO1xuaW1wb3J0IHsgUGFyYW1ldGVyUG9zaXRpb25JY29uQ29tcCwgcGFyYW1ldGVyUG9zaXRpb25NYXAgfSBmcm9tIFwiLi9jb25maWdcIjtcbmltcG9ydCB7IGdldEF4aW9zQmFzZVBhdGhCeVVybCwgZ2V0TWV0aG9kQ29sb3IgfSBmcm9tIFwiLi91dGlsXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE9wZW5hcGlWaWV3KCkge1xuICBjb25zdCB7IG9wZXJhdGlvbklkIH0gPSB1c2VQYXJhbXMoKTtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBjb25zdCB7IG9wZW5hcGlXaXRoU2VydmljZUluZm8gfSA9IHVzZU9wZW5hcGlXaXRoU2VydmljZUluZm9TdG9yZSgpO1xuXG4gIGlmICghb3BlbmFwaVdpdGhTZXJ2aWNlSW5mbz8ub3BlcmF0aW9ucyB8fCAhb3BlcmF0aW9uSWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IG9wZXJhdGlvbiA9IG9wZW5hcGlXaXRoU2VydmljZUluZm8ub3BlcmF0aW9uc1tvcGVyYXRpb25JZF0gfHwge307XG4gIGNvbnN0IG1ldGhvZFN0eWxlID0gb3BlcmF0aW9uLm1ldGhvZCA/IHsgY29sb3I6IGdldE1ldGhvZENvbG9yKG9wZXJhdGlvbi5tZXRob2QpIH0gOiB7fTtcbiAgY29uc3QgY29tbW9uQ29sb3JTdHlsZSA9IHsgY29sb3I6IGRzYy5jb2xvci5wcmltYXJ5IH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IDYsXG4gICAgICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7bWV0aG9kU3R5bGUuY29sb3J9YCxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBtZXRob2RTdHlsZS5jb2xvcixcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgY29sb3I6IGRzYy5jb2xvci5iZyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgIHRleHREZWNvcmF0aW9uOiBvcGVyYXRpb24uZGVwcmVjYXRlZCA/IFwibGluZS10aHJvdWdoXCIgOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiA4LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dChcIm9wZW5hcGkuY2xpY2tUb0NvcHlcIil9PlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAgZm9udFNpemU6IGRzYy5mb250U2l6ZS5zLFxuICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogXCJib2xkXCIsXG4gICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogMTAsXG4gICAgICAgICAgICAgICAgICBjdXJzb3I6IFwicG9pbnRlclwiLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29weShvcGVyYXRpb24ub3BlcmF0aW9uSWQpO1xuICAgICAgICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKHQoXCJvcGVuYXBpLmNvcHlTdWNjZXNzXCIpKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge29wZXJhdGlvbi5vcGVyYXRpb25JZH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgPHNwYW4gdGl0bGU9e29wZXJhdGlvbi5zdW1tYXJ5fSBjc3M9e3sgZm9udFNpemU6IGRzYy5mb250U2l6ZS54eHMgfX0+XG4gICAgICAgICAgICAgIHtvcGVyYXRpb24uc3VtbWFyeX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgZm9udFNpemU6IGRzYy5mb250U2l6ZS5zLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjc3M9e3sgdGV4dFRyYW5zZm9ybTogXCJ1cHBlcmNhc2VcIiwgZm9udEZhbWlseTogZHNjLmZvbnRGYW1pbHkubW9ubyB9fT57b3BlcmF0aW9uLm1ldGhvZH08L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImlubGluZS1ibG9ja1wiLFxuICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IDgsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtvcGVyYXRpb24ucGF0aH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY3NzPXt7IHBhZGRpbmc6IDE2IH19PlxuICAgICAgICAgIHtvcGVyYXRpb24uZGVzY3JpcHRpb24gJiYgKFxuICAgICAgICAgICAgPFNlY3Rpb24gdGl0bGU9ezxzcGFuIGNzcz17Y29tbW9uQ29sb3JTdHlsZX0+e3QoXCJvcGVuYXBpLmRlc2NyaXB0aW9uXCIpfTwvc3Bhbj59PlxuICAgICAgICAgICAgICA8UmVhY3RNYXJrZG93bj57b3BlcmF0aW9uLmRlc2NyaXB0aW9ufTwvUmVhY3RNYXJrZG93bj5cbiAgICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTZWN0aW9uXG4gICAgICAgICAgICB0aXRsZT17XG4gICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNzcz17Y29tbW9uQ29sb3JTdHlsZX0+e3QoXCJvcGVuYXBpLnBhcmFtZXRlcnNcIil9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzbWFsbFxuICAgICAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IDEuNCxcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IFwiMC44ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiBcIjAuNWVtXCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBkc2MuY29sb3IudGV4dCxcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge21hcChwYXJhbWV0ZXJQb3NpdGlvbk1hcCwgKGxhYmVsLCBwb3NpdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cG9zaXRpb259XG4gICAgICAgICAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiBcIjFlbVwiLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGFyYW1ldGVyUG9zaXRpb25JY29uQ29tcCBwb3NpdGlvbj17cG9zaXRpb259IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxSZXF1ZXN0QnVpbGRlclxuICAgICAgICAgICAgICBzY2hlbWFzPXtvcGVuYXBpV2l0aFNlcnZpY2VJbmZvLm9wZW5hcGkuY29tcG9uZW50cz8uc2NoZW1hcyB8fCB7fX1cbiAgICAgICAgICAgICAgb3BlcmF0aW9uPXt7XG4gICAgICAgICAgICAgICAgLi4ub3BlcmF0aW9uLFxuICAgICAgICAgICAgICAgIGJhc2VQYXRoOiBnZXRBeGlvc0Jhc2VQYXRoQnlVcmwob3BlbmFwaVdpdGhTZXJ2aWNlSW5mby5zZXJ2aWNlVVJMKSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TZWN0aW9uPlxuICAgICAgICAgIDxTZWN0aW9uIHRpdGxlPXs8c3BhbiBjc3M9e2NvbW1vbkNvbG9yU3R5bGV9Pnt0KFwib3BlbmFwaS5yZXNwb25zZXNcIil9PC9zcGFuPn0+XG4gICAgICAgICAgICA8UmVzcG9uc2VzIG9wZXJhdGlvbj17b3BlcmF0aW9ufSAvPlxuICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ== */"),children:[Rt("div",{css:Ji({backgroundColor:r.color,padding:10,color:Qt.color.bg},Na.NODE_ENV==="production"?"":";label:OpenapiView;",Na.NODE_ENV==="production"?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvb3BlbmFwaS9PcGVuYXBpVmlldy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUNVIiwiZmlsZSI6Ii9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvb3BlbmFwaS9PcGVuYXBpVmlldy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sdGlwLCBtZXNzYWdlIH0gZnJvbSBcImFudGRcIjtcbmltcG9ydCBjb3B5IGZyb20gXCJjb3B5LXRvLWNsaXBib2FyZFwiO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IFJlYWN0TWFya2Rvd24gZnJvbSBcInJlYWN0LW1hcmtkb3duXCI7XG5pbXBvcnQgeyB1c2VQYXJhbXMgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gXCIuLi9jb21wb25lbnRzL1NlY3Rpb25cIjtcbmltcG9ydCB7IHVzZU9wZW5hcGlXaXRoU2VydmljZUluZm9TdG9yZSB9IGZyb20gXCIuLi9jb3JlL3N0b3JlXCI7XG5pbXBvcnQgeyBkc2MgfSBmcm9tIFwiLi4vY29yZS9zdHlsZS9kZWZhdWx0U3R5bGVDb25maWdcIjtcbmltcG9ydCB7IFJlc3BvbnNlcyB9IGZyb20gXCIuL09wZW5hcGlWaWV3Q29tcFwiO1xuaW1wb3J0IHsgUmVxdWVzdEJ1aWxkZXIgfSBmcm9tIFwiLi9SZXF1ZXN0QnVpbGRlclwiO1xuaW1wb3J0IHsgUGFyYW1ldGVyUG9zaXRpb25JY29uQ29tcCwgcGFyYW1ldGVyUG9zaXRpb25NYXAgfSBmcm9tIFwiLi9jb25maWdcIjtcbmltcG9ydCB7IGdldEF4aW9zQmFzZVBhdGhCeVVybCwgZ2V0TWV0aG9kQ29sb3IgfSBmcm9tIFwiLi91dGlsXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE9wZW5hcGlWaWV3KCkge1xuICBjb25zdCB7IG9wZXJhdGlvbklkIH0gPSB1c2VQYXJhbXMoKTtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBjb25zdCB7IG9wZW5hcGlXaXRoU2VydmljZUluZm8gfSA9IHVzZU9wZW5hcGlXaXRoU2VydmljZUluZm9TdG9yZSgpO1xuXG4gIGlmICghb3BlbmFwaVdpdGhTZXJ2aWNlSW5mbz8ub3BlcmF0aW9ucyB8fCAhb3BlcmF0aW9uSWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IG9wZXJhdGlvbiA9IG9wZW5hcGlXaXRoU2VydmljZUluZm8ub3BlcmF0aW9uc1tvcGVyYXRpb25JZF0gfHwge307XG4gIGNvbnN0IG1ldGhvZFN0eWxlID0gb3BlcmF0aW9uLm1ldGhvZCA/IHsgY29sb3I6IGdldE1ldGhvZENvbG9yKG9wZXJhdGlvbi5tZXRob2QpIH0gOiB7fTtcbiAgY29uc3QgY29tbW9uQ29sb3JTdHlsZSA9IHsgY29sb3I6IGRzYy5jb2xvci5wcmltYXJ5IH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IDYsXG4gICAgICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7bWV0aG9kU3R5bGUuY29sb3J9YCxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBtZXRob2RTdHlsZS5jb2xvcixcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgY29sb3I6IGRzYy5jb2xvci5iZyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgIHRleHREZWNvcmF0aW9uOiBvcGVyYXRpb24uZGVwcmVjYXRlZCA/IFwibGluZS10aHJvdWdoXCIgOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiA4LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dChcIm9wZW5hcGkuY2xpY2tUb0NvcHlcIil9PlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAgZm9udFNpemU6IGRzYy5mb250U2l6ZS5zLFxuICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogXCJib2xkXCIsXG4gICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogMTAsXG4gICAgICAgICAgICAgICAgICBjdXJzb3I6IFwicG9pbnRlclwiLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29weShvcGVyYXRpb24ub3BlcmF0aW9uSWQpO1xuICAgICAgICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKHQoXCJvcGVuYXBpLmNvcHlTdWNjZXNzXCIpKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge29wZXJhdGlvbi5vcGVyYXRpb25JZH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgPHNwYW4gdGl0bGU9e29wZXJhdGlvbi5zdW1tYXJ5fSBjc3M9e3sgZm9udFNpemU6IGRzYy5mb250U2l6ZS54eHMgfX0+XG4gICAgICAgICAgICAgIHtvcGVyYXRpb24uc3VtbWFyeX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgZm9udFNpemU6IGRzYy5mb250U2l6ZS5zLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjc3M9e3sgdGV4dFRyYW5zZm9ybTogXCJ1cHBlcmNhc2VcIiwgZm9udEZhbWlseTogZHNjLmZvbnRGYW1pbHkubW9ubyB9fT57b3BlcmF0aW9uLm1ldGhvZH08L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImlubGluZS1ibG9ja1wiLFxuICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IDgsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtvcGVyYXRpb24ucGF0aH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY3NzPXt7IHBhZGRpbmc6IDE2IH19PlxuICAgICAgICAgIHtvcGVyYXRpb24uZGVzY3JpcHRpb24gJiYgKFxuICAgICAgICAgICAgPFNlY3Rpb24gdGl0bGU9ezxzcGFuIGNzcz17Y29tbW9uQ29sb3JTdHlsZX0+e3QoXCJvcGVuYXBpLmRlc2NyaXB0aW9uXCIpfTwvc3Bhbj59PlxuICAgICAgICAgICAgICA8UmVhY3RNYXJrZG93bj57b3BlcmF0aW9uLmRlc2NyaXB0aW9ufTwvUmVhY3RNYXJrZG93bj5cbiAgICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTZWN0aW9uXG4gICAgICAgICAgICB0aXRsZT17XG4gICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNzcz17Y29tbW9uQ29sb3JTdHlsZX0+e3QoXCJvcGVuYXBpLnBhcmFtZXRlcnNcIil9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzbWFsbFxuICAgICAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IDEuNCxcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IFwiMC44ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiBcIjAuNWVtXCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBkc2MuY29sb3IudGV4dCxcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge21hcChwYXJhbWV0ZXJQb3NpdGlvbk1hcCwgKGxhYmVsLCBwb3NpdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cG9zaXRpb259XG4gICAgICAgICAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiBcIjFlbVwiLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGFyYW1ldGVyUG9zaXRpb25JY29uQ29tcCBwb3NpdGlvbj17cG9zaXRpb259IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxSZXF1ZXN0QnVpbGRlclxuICAgICAgICAgICAgICBzY2hlbWFzPXtvcGVuYXBpV2l0aFNlcnZpY2VJbmZvLm9wZW5hcGkuY29tcG9uZW50cz8uc2NoZW1hcyB8fCB7fX1cbiAgICAgICAgICAgICAgb3BlcmF0aW9uPXt7XG4gICAgICAgICAgICAgICAgLi4ub3BlcmF0aW9uLFxuICAgICAgICAgICAgICAgIGJhc2VQYXRoOiBnZXRBeGlvc0Jhc2VQYXRoQnlVcmwob3BlbmFwaVdpdGhTZXJ2aWNlSW5mby5zZXJ2aWNlVVJMKSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TZWN0aW9uPlxuICAgICAgICAgIDxTZWN0aW9uIHRpdGxlPXs8c3BhbiBjc3M9e2NvbW1vbkNvbG9yU3R5bGV9Pnt0KFwib3BlbmFwaS5yZXNwb25zZXNcIil9PC9zcGFuPn0+XG4gICAgICAgICAgICA8UmVzcG9uc2VzIG9wZXJhdGlvbj17b3BlcmF0aW9ufSAvPlxuICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ== */"),children:[Rt("div",{css:Ji({textDecoration:i.deprecated?"line-through":"none",marginBottom:8},Na.NODE_ENV==="production"?"":";label:OpenapiView;",Na.NODE_ENV==="production"?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvb3BlbmFwaS9PcGVuYXBpVmlldy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNENZIiwiZmlsZSI6Ii9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvb3BlbmFwaS9PcGVuYXBpVmlldy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sdGlwLCBtZXNzYWdlIH0gZnJvbSBcImFudGRcIjtcbmltcG9ydCBjb3B5IGZyb20gXCJjb3B5LXRvLWNsaXBib2FyZFwiO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IFJlYWN0TWFya2Rvd24gZnJvbSBcInJlYWN0LW1hcmtkb3duXCI7XG5pbXBvcnQgeyB1c2VQYXJhbXMgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gXCIuLi9jb21wb25lbnRzL1NlY3Rpb25cIjtcbmltcG9ydCB7IHVzZU9wZW5hcGlXaXRoU2VydmljZUluZm9TdG9yZSB9IGZyb20gXCIuLi9jb3JlL3N0b3JlXCI7XG5pbXBvcnQgeyBkc2MgfSBmcm9tIFwiLi4vY29yZS9zdHlsZS9kZWZhdWx0U3R5bGVDb25maWdcIjtcbmltcG9ydCB7IFJlc3BvbnNlcyB9IGZyb20gXCIuL09wZW5hcGlWaWV3Q29tcFwiO1xuaW1wb3J0IHsgUmVxdWVzdEJ1aWxkZXIgfSBmcm9tIFwiLi9SZXF1ZXN0QnVpbGRlclwiO1xuaW1wb3J0IHsgUGFyYW1ldGVyUG9zaXRpb25JY29uQ29tcCwgcGFyYW1ldGVyUG9zaXRpb25NYXAgfSBmcm9tIFwiLi9jb25maWdcIjtcbmltcG9ydCB7IGdldEF4aW9zQmFzZVBhdGhCeVVybCwgZ2V0TWV0aG9kQ29sb3IgfSBmcm9tIFwiLi91dGlsXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE9wZW5hcGlWaWV3KCkge1xuICBjb25zdCB7IG9wZXJhdGlvbklkIH0gPSB1c2VQYXJhbXMoKTtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBjb25zdCB7IG9wZW5hcGlXaXRoU2VydmljZUluZm8gfSA9IHVzZU9wZW5hcGlXaXRoU2VydmljZUluZm9TdG9yZSgpO1xuXG4gIGlmICghb3BlbmFwaVdpdGhTZXJ2aWNlSW5mbz8ub3BlcmF0aW9ucyB8fCAhb3BlcmF0aW9uSWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IG9wZXJhdGlvbiA9IG9wZW5hcGlXaXRoU2VydmljZUluZm8ub3BlcmF0aW9uc1tvcGVyYXRpb25JZF0gfHwge307XG4gIGNvbnN0IG1ldGhvZFN0eWxlID0gb3BlcmF0aW9uLm1ldGhvZCA/IHsgY29sb3I6IGdldE1ldGhvZENvbG9yKG9wZXJhdGlvbi5tZXRob2QpIH0gOiB7fTtcbiAgY29uc3QgY29tbW9uQ29sb3JTdHlsZSA9IHsgY29sb3I6IGRzYy5jb2xvci5wcmltYXJ5IH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IDYsXG4gICAgICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7bWV0aG9kU3R5bGUuY29sb3J9YCxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBtZXRob2RTdHlsZS5jb2xvcixcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgY29sb3I6IGRzYy5jb2xvci5iZyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgIHRleHREZWNvcmF0aW9uOiBvcGVyYXRpb24uZGVwcmVjYXRlZCA/IFwibGluZS10aHJvdWdoXCIgOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiA4LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dChcIm9wZW5hcGkuY2xpY2tUb0NvcHlcIil9PlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAgZm9udFNpemU6IGRzYy5mb250U2l6ZS5zLFxuICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogXCJib2xkXCIsXG4gICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogMTAsXG4gICAgICAgICAgICAgICAgICBjdXJzb3I6IFwicG9pbnRlclwiLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29weShvcGVyYXRpb24ub3BlcmF0aW9uSWQpO1xuICAgICAgICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKHQoXCJvcGVuYXBpLmNvcHlTdWNjZXNzXCIpKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge29wZXJhdGlvbi5vcGVyYXRpb25JZH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgPHNwYW4gdGl0bGU9e29wZXJhdGlvbi5zdW1tYXJ5fSBjc3M9e3sgZm9udFNpemU6IGRzYy5mb250U2l6ZS54eHMgfX0+XG4gICAgICAgICAgICAgIHtvcGVyYXRpb24uc3VtbWFyeX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgZm9udFNpemU6IGRzYy5mb250U2l6ZS5zLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjc3M9e3sgdGV4dFRyYW5zZm9ybTogXCJ1cHBlcmNhc2VcIiwgZm9udEZhbWlseTogZHNjLmZvbnRGYW1pbHkubW9ubyB9fT57b3BlcmF0aW9uLm1ldGhvZH08L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImlubGluZS1ibG9ja1wiLFxuICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IDgsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtvcGVyYXRpb24ucGF0aH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY3NzPXt7IHBhZGRpbmc6IDE2IH19PlxuICAgICAgICAgIHtvcGVyYXRpb24uZGVzY3JpcHRpb24gJiYgKFxuICAgICAgICAgICAgPFNlY3Rpb24gdGl0bGU9ezxzcGFuIGNzcz17Y29tbW9uQ29sb3JTdHlsZX0+e3QoXCJvcGVuYXBpLmRlc2NyaXB0aW9uXCIpfTwvc3Bhbj59PlxuICAgICAgICAgICAgICA8UmVhY3RNYXJrZG93bj57b3BlcmF0aW9uLmRlc2NyaXB0aW9ufTwvUmVhY3RNYXJrZG93bj5cbiAgICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTZWN0aW9uXG4gICAgICAgICAgICB0aXRsZT17XG4gICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNzcz17Y29tbW9uQ29sb3JTdHlsZX0+e3QoXCJvcGVuYXBpLnBhcmFtZXRlcnNcIil9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzbWFsbFxuICAgICAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IDEuNCxcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IFwiMC44ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiBcIjAuNWVtXCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBkc2MuY29sb3IudGV4dCxcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge21hcChwYXJhbWV0ZXJQb3NpdGlvbk1hcCwgKGxhYmVsLCBwb3NpdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cG9zaXRpb259XG4gICAgICAgICAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiBcIjFlbVwiLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGFyYW1ldGVyUG9zaXRpb25JY29uQ29tcCBwb3NpdGlvbj17cG9zaXRpb259IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxSZXF1ZXN0QnVpbGRlclxuICAgICAgICAgICAgICBzY2hlbWFzPXtvcGVuYXBpV2l0aFNlcnZpY2VJbmZvLm9wZW5hcGkuY29tcG9uZW50cz8uc2NoZW1hcyB8fCB7fX1cbiAgICAgICAgICAgICAgb3BlcmF0aW9uPXt7XG4gICAgICAgICAgICAgICAgLi4ub3BlcmF0aW9uLFxuICAgICAgICAgICAgICAgIGJhc2VQYXRoOiBnZXRBeGlvc0Jhc2VQYXRoQnlVcmwob3BlbmFwaVdpdGhTZXJ2aWNlSW5mby5zZXJ2aWNlVVJMKSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TZWN0aW9uPlxuICAgICAgICAgIDxTZWN0aW9uIHRpdGxlPXs8c3BhbiBjc3M9e2NvbW1vbkNvbG9yU3R5bGV9Pnt0KFwib3BlbmFwaS5yZXNwb25zZXNcIil9PC9zcGFuPn0+XG4gICAgICAgICAgICA8UmVzcG9uc2VzIG9wZXJhdGlvbj17b3BlcmF0aW9ufSAvPlxuICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ== */"),children:[ae(cg,{title:e("openapi.clickToCopy"),children:ae("span",{css:Ji({fontSize:Qt.fontSize.s,fontWeight:"bold",marginRight:10,cursor:"pointer"},Na.NODE_ENV==="production"?"":";label:OpenapiView;",Na.NODE_ENV==="production"?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvb3BlbmFwaS9PcGVuYXBpVmlldy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbURnQiIsImZpbGUiOiIvVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL29wZW5hcGktdWkvc3JjL29wZW5hcGkvT3BlbmFwaVZpZXcudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9vbHRpcCwgbWVzc2FnZSB9IGZyb20gXCJhbnRkXCI7XG5pbXBvcnQgY29weSBmcm9tIFwiY29weS10by1jbGlwYm9hcmRcIjtcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCBSZWFjdE1hcmtkb3duIGZyb20gXCJyZWFjdC1tYXJrZG93blwiO1xuaW1wb3J0IHsgdXNlUGFyYW1zIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tIFwiLi4vY29tcG9uZW50cy9TZWN0aW9uXCI7XG5pbXBvcnQgeyB1c2VPcGVuYXBpV2l0aFNlcnZpY2VJbmZvU3RvcmUgfSBmcm9tIFwiLi4vY29yZS9zdG9yZVwiO1xuaW1wb3J0IHsgZHNjIH0gZnJvbSBcIi4uL2NvcmUvc3R5bGUvZGVmYXVsdFN0eWxlQ29uZmlnXCI7XG5pbXBvcnQgeyBSZXNwb25zZXMgfSBmcm9tIFwiLi9PcGVuYXBpVmlld0NvbXBcIjtcbmltcG9ydCB7IFJlcXVlc3RCdWlsZGVyIH0gZnJvbSBcIi4vUmVxdWVzdEJ1aWxkZXJcIjtcbmltcG9ydCB7IFBhcmFtZXRlclBvc2l0aW9uSWNvbkNvbXAsIHBhcmFtZXRlclBvc2l0aW9uTWFwIH0gZnJvbSBcIi4vY29uZmlnXCI7XG5pbXBvcnQgeyBnZXRBeGlvc0Jhc2VQYXRoQnlVcmwsIGdldE1ldGhvZENvbG9yIH0gZnJvbSBcIi4vdXRpbFwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBPcGVuYXBpVmlldygpIHtcbiAgY29uc3QgeyBvcGVyYXRpb25JZCB9ID0gdXNlUGFyYW1zKCk7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgY29uc3QgeyBvcGVuYXBpV2l0aFNlcnZpY2VJbmZvIH0gPSB1c2VPcGVuYXBpV2l0aFNlcnZpY2VJbmZvU3RvcmUoKTtcblxuICBpZiAoIW9wZW5hcGlXaXRoU2VydmljZUluZm8/Lm9wZXJhdGlvbnMgfHwgIW9wZXJhdGlvbklkKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBvcGVyYXRpb24gPSBvcGVuYXBpV2l0aFNlcnZpY2VJbmZvLm9wZXJhdGlvbnNbb3BlcmF0aW9uSWRdIHx8IHt9O1xuICBjb25zdCBtZXRob2RTdHlsZSA9IG9wZXJhdGlvbi5tZXRob2QgPyB7IGNvbG9yOiBnZXRNZXRob2RDb2xvcihvcGVyYXRpb24ubWV0aG9kKSB9IDoge307XG4gIGNvbnN0IGNvbW1vbkNvbG9yU3R5bGUgPSB7IGNvbG9yOiBkc2MuY29sb3IucHJpbWFyeSB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiA2LFxuICAgICAgICAgIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICAgICAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke21ldGhvZFN0eWxlLmNvbG9yfWAsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogbWV0aG9kU3R5bGUuY29sb3IsXG4gICAgICAgICAgICBwYWRkaW5nOiAxMCxcbiAgICAgICAgICAgIGNvbG9yOiBkc2MuY29sb3IuYmcsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICB0ZXh0RGVjb3JhdGlvbjogb3BlcmF0aW9uLmRlcHJlY2F0ZWQgPyBcImxpbmUtdGhyb3VnaFwiIDogXCJub25lXCIsXG4gICAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogOCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoXCJvcGVuYXBpLmNsaWNrVG9Db3B5XCIpfT5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiBkc2MuZm9udFNpemUucyxcbiAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6IFwiYm9sZFwiLFxuICAgICAgICAgICAgICAgICAgbWFyZ2luUmlnaHQ6IDEwLFxuICAgICAgICAgICAgICAgICAgY3Vyc29yOiBcInBvaW50ZXJcIixcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvcHkob3BlcmF0aW9uLm9wZXJhdGlvbklkKTtcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2Vzcyh0KFwib3BlbmFwaS5jb3B5U3VjY2Vzc1wiKSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtvcGVyYXRpb24ub3BlcmF0aW9uSWR9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIDxzcGFuIHRpdGxlPXtvcGVyYXRpb24uc3VtbWFyeX0gY3NzPXt7IGZvbnRTaXplOiBkc2MuZm9udFNpemUueHhzIH19PlxuICAgICAgICAgICAgICB7b3BlcmF0aW9uLnN1bW1hcnl9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgIGZvbnRTaXplOiBkc2MuZm9udFNpemUucyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY3NzPXt7IHRleHRUcmFuc2Zvcm06IFwidXBwZXJjYXNlXCIsIGZvbnRGYW1pbHk6IGRzYy5mb250RmFtaWx5Lm1vbm8gfX0+e29wZXJhdGlvbi5tZXRob2R9PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogXCJpbmxpbmUtYmxvY2tcIixcbiAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiA4LFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7b3BlcmF0aW9uLnBhdGh9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNzcz17eyBwYWRkaW5nOiAxNiB9fT5cbiAgICAgICAgICB7b3BlcmF0aW9uLmRlc2NyaXB0aW9uICYmIChcbiAgICAgICAgICAgIDxTZWN0aW9uIHRpdGxlPXs8c3BhbiBjc3M9e2NvbW1vbkNvbG9yU3R5bGV9Pnt0KFwib3BlbmFwaS5kZXNjcmlwdGlvblwiKX08L3NwYW4+fT5cbiAgICAgICAgICAgICAgPFJlYWN0TWFya2Rvd24+e29wZXJhdGlvbi5kZXNjcmlwdGlvbn08L1JlYWN0TWFya2Rvd24+XG4gICAgICAgICAgICA8L1NlY3Rpb24+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U2VjdGlvblxuICAgICAgICAgICAgdGl0bGU9e1xuICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjc3M9e2NvbW1vbkNvbG9yU3R5bGV9Pnt0KFwib3BlbmFwaS5wYXJhbWV0ZXJzXCIpfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c21hbGxcbiAgICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAxLjQsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiBcIjAuOGVtXCIsXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogXCIwLjVlbVwiLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogZHNjLmNvbG9yLnRleHQsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHttYXAocGFyYW1ldGVyUG9zaXRpb25NYXAsIChsYWJlbCwgcG9zaXRpb24pID0+IChcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3Bvc2l0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogXCIxZW1cIixcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFBhcmFtZXRlclBvc2l0aW9uSWNvbkNvbXAgcG9zaXRpb249e3Bvc2l0aW9ufSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8UmVxdWVzdEJ1aWxkZXJcbiAgICAgICAgICAgICAgc2NoZW1hcz17b3BlbmFwaVdpdGhTZXJ2aWNlSW5mby5vcGVuYXBpLmNvbXBvbmVudHM/LnNjaGVtYXMgfHwge319XG4gICAgICAgICAgICAgIG9wZXJhdGlvbj17e1xuICAgICAgICAgICAgICAgIC4uLm9wZXJhdGlvbixcbiAgICAgICAgICAgICAgICBiYXNlUGF0aDogZ2V0QXhpb3NCYXNlUGF0aEJ5VXJsKG9wZW5hcGlXaXRoU2VydmljZUluZm8uc2VydmljZVVSTCksXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgICA8U2VjdGlvbiB0aXRsZT17PHNwYW4gY3NzPXtjb21tb25Db2xvclN0eWxlfT57dChcIm9wZW5hcGkucmVzcG9uc2VzXCIpfTwvc3Bhbj59PlxuICAgICAgICAgICAgPFJlc3BvbnNlcyBvcGVyYXRpb249e29wZXJhdGlvbn0gLz5cbiAgICAgICAgICA8L1NlY3Rpb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXX0= */"),onClick:()=>{qP(i.operationId),Ql.success(e("openapi.copySuccess"))},children:i.operationId})}),ae("span",{title:i.summary,css:Ji({fontSize:Qt.fontSize.xxs},Na.NODE_ENV==="production"?"":";label:OpenapiView;",Na.NODE_ENV==="production"?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvb3BlbmFwaS9PcGVuYXBpVmlldy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUU0QyIsImZpbGUiOiIvVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL29wZW5hcGktdWkvc3JjL29wZW5hcGkvT3BlbmFwaVZpZXcudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9vbHRpcCwgbWVzc2FnZSB9IGZyb20gXCJhbnRkXCI7XG5pbXBvcnQgY29weSBmcm9tIFwiY29weS10by1jbGlwYm9hcmRcIjtcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCBSZWFjdE1hcmtkb3duIGZyb20gXCJyZWFjdC1tYXJrZG93blwiO1xuaW1wb3J0IHsgdXNlUGFyYW1zIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tIFwiLi4vY29tcG9uZW50cy9TZWN0aW9uXCI7XG5pbXBvcnQgeyB1c2VPcGVuYXBpV2l0aFNlcnZpY2VJbmZvU3RvcmUgfSBmcm9tIFwiLi4vY29yZS9zdG9yZVwiO1xuaW1wb3J0IHsgZHNjIH0gZnJvbSBcIi4uL2NvcmUvc3R5bGUvZGVmYXVsdFN0eWxlQ29uZmlnXCI7XG5pbXBvcnQgeyBSZXNwb25zZXMgfSBmcm9tIFwiLi9PcGVuYXBpVmlld0NvbXBcIjtcbmltcG9ydCB7IFJlcXVlc3RCdWlsZGVyIH0gZnJvbSBcIi4vUmVxdWVzdEJ1aWxkZXJcIjtcbmltcG9ydCB7IFBhcmFtZXRlclBvc2l0aW9uSWNvbkNvbXAsIHBhcmFtZXRlclBvc2l0aW9uTWFwIH0gZnJvbSBcIi4vY29uZmlnXCI7XG5pbXBvcnQgeyBnZXRBeGlvc0Jhc2VQYXRoQnlVcmwsIGdldE1ldGhvZENvbG9yIH0gZnJvbSBcIi4vdXRpbFwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBPcGVuYXBpVmlldygpIHtcbiAgY29uc3QgeyBvcGVyYXRpb25JZCB9ID0gdXNlUGFyYW1zKCk7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgY29uc3QgeyBvcGVuYXBpV2l0aFNlcnZpY2VJbmZvIH0gPSB1c2VPcGVuYXBpV2l0aFNlcnZpY2VJbmZvU3RvcmUoKTtcblxuICBpZiAoIW9wZW5hcGlXaXRoU2VydmljZUluZm8/Lm9wZXJhdGlvbnMgfHwgIW9wZXJhdGlvbklkKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBvcGVyYXRpb24gPSBvcGVuYXBpV2l0aFNlcnZpY2VJbmZvLm9wZXJhdGlvbnNbb3BlcmF0aW9uSWRdIHx8IHt9O1xuICBjb25zdCBtZXRob2RTdHlsZSA9IG9wZXJhdGlvbi5tZXRob2QgPyB7IGNvbG9yOiBnZXRNZXRob2RDb2xvcihvcGVyYXRpb24ubWV0aG9kKSB9IDoge307XG4gIGNvbnN0IGNvbW1vbkNvbG9yU3R5bGUgPSB7IGNvbG9yOiBkc2MuY29sb3IucHJpbWFyeSB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiA2LFxuICAgICAgICAgIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICAgICAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke21ldGhvZFN0eWxlLmNvbG9yfWAsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogbWV0aG9kU3R5bGUuY29sb3IsXG4gICAgICAgICAgICBwYWRkaW5nOiAxMCxcbiAgICAgICAgICAgIGNvbG9yOiBkc2MuY29sb3IuYmcsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICB0ZXh0RGVjb3JhdGlvbjogb3BlcmF0aW9uLmRlcHJlY2F0ZWQgPyBcImxpbmUtdGhyb3VnaFwiIDogXCJub25lXCIsXG4gICAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogOCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoXCJvcGVuYXBpLmNsaWNrVG9Db3B5XCIpfT5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiBkc2MuZm9udFNpemUucyxcbiAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6IFwiYm9sZFwiLFxuICAgICAgICAgICAgICAgICAgbWFyZ2luUmlnaHQ6IDEwLFxuICAgICAgICAgICAgICAgICAgY3Vyc29yOiBcInBvaW50ZXJcIixcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvcHkob3BlcmF0aW9uLm9wZXJhdGlvbklkKTtcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2Vzcyh0KFwib3BlbmFwaS5jb3B5U3VjY2Vzc1wiKSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtvcGVyYXRpb24ub3BlcmF0aW9uSWR9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIDxzcGFuIHRpdGxlPXtvcGVyYXRpb24uc3VtbWFyeX0gY3NzPXt7IGZvbnRTaXplOiBkc2MuZm9udFNpemUueHhzIH19PlxuICAgICAgICAgICAgICB7b3BlcmF0aW9uLnN1bW1hcnl9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgIGZvbnRTaXplOiBkc2MuZm9udFNpemUucyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY3NzPXt7IHRleHRUcmFuc2Zvcm06IFwidXBwZXJjYXNlXCIsIGZvbnRGYW1pbHk6IGRzYy5mb250RmFtaWx5Lm1vbm8gfX0+e29wZXJhdGlvbi5tZXRob2R9PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogXCJpbmxpbmUtYmxvY2tcIixcbiAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiA4LFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7b3BlcmF0aW9uLnBhdGh9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNzcz17eyBwYWRkaW5nOiAxNiB9fT5cbiAgICAgICAgICB7b3BlcmF0aW9uLmRlc2NyaXB0aW9uICYmIChcbiAgICAgICAgICAgIDxTZWN0aW9uIHRpdGxlPXs8c3BhbiBjc3M9e2NvbW1vbkNvbG9yU3R5bGV9Pnt0KFwib3BlbmFwaS5kZXNjcmlwdGlvblwiKX08L3NwYW4+fT5cbiAgICAgICAgICAgICAgPFJlYWN0TWFya2Rvd24+e29wZXJhdGlvbi5kZXNjcmlwdGlvbn08L1JlYWN0TWFya2Rvd24+XG4gICAgICAgICAgICA8L1NlY3Rpb24+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U2VjdGlvblxuICAgICAgICAgICAgdGl0bGU9e1xuICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjc3M9e2NvbW1vbkNvbG9yU3R5bGV9Pnt0KFwib3BlbmFwaS5wYXJhbWV0ZXJzXCIpfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c21hbGxcbiAgICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAxLjQsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiBcIjAuOGVtXCIsXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogXCIwLjVlbVwiLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogZHNjLmNvbG9yLnRleHQsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHttYXAocGFyYW1ldGVyUG9zaXRpb25NYXAsIChsYWJlbCwgcG9zaXRpb24pID0+IChcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3Bvc2l0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogXCIxZW1cIixcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFBhcmFtZXRlclBvc2l0aW9uSWNvbkNvbXAgcG9zaXRpb249e3Bvc2l0aW9ufSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8UmVxdWVzdEJ1aWxkZXJcbiAgICAgICAgICAgICAgc2NoZW1hcz17b3BlbmFwaVdpdGhTZXJ2aWNlSW5mby5vcGVuYXBpLmNvbXBvbmVudHM/LnNjaGVtYXMgfHwge319XG4gICAgICAgICAgICAgIG9wZXJhdGlvbj17e1xuICAgICAgICAgICAgICAgIC4uLm9wZXJhdGlvbixcbiAgICAgICAgICAgICAgICBiYXNlUGF0aDogZ2V0QXhpb3NCYXNlUGF0aEJ5VXJsKG9wZW5hcGlXaXRoU2VydmljZUluZm8uc2VydmljZVVSTCksXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgICA8U2VjdGlvbiB0aXRsZT17PHNwYW4gY3NzPXtjb21tb25Db2xvclN0eWxlfT57dChcIm9wZW5hcGkucmVzcG9uc2VzXCIpfTwvc3Bhbj59PlxuICAgICAgICAgICAgPFJlc3BvbnNlcyBvcGVyYXRpb249e29wZXJhdGlvbn0gLz5cbiAgICAgICAgICA8L1NlY3Rpb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXX0= */"),children:i.summary})]}),Rt("div",{css:Ji({fontSize:Qt.fontSize.s},Na.NODE_ENV==="production"?"":";label:OpenapiView;",Na.NODE_ENV==="production"?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvb3BlbmFwaS9PcGVuYXBpVmlldy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0VZIiwiZmlsZSI6Ii9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvb3BlbmFwaS9PcGVuYXBpVmlldy50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUb29sdGlwLCBtZXNzYWdlIH0gZnJvbSBcImFudGRcIjtcbmltcG9ydCBjb3B5IGZyb20gXCJjb3B5LXRvLWNsaXBib2FyZFwiO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tIFwicmVhY3QtaTE4bmV4dFwiO1xuaW1wb3J0IFJlYWN0TWFya2Rvd24gZnJvbSBcInJlYWN0LW1hcmtkb3duXCI7XG5pbXBvcnQgeyB1c2VQYXJhbXMgfSBmcm9tIFwicmVhY3Qtcm91dGVyLWRvbVwiO1xuaW1wb3J0IHsgU2VjdGlvbiB9IGZyb20gXCIuLi9jb21wb25lbnRzL1NlY3Rpb25cIjtcbmltcG9ydCB7IHVzZU9wZW5hcGlXaXRoU2VydmljZUluZm9TdG9yZSB9IGZyb20gXCIuLi9jb3JlL3N0b3JlXCI7XG5pbXBvcnQgeyBkc2MgfSBmcm9tIFwiLi4vY29yZS9zdHlsZS9kZWZhdWx0U3R5bGVDb25maWdcIjtcbmltcG9ydCB7IFJlc3BvbnNlcyB9IGZyb20gXCIuL09wZW5hcGlWaWV3Q29tcFwiO1xuaW1wb3J0IHsgUmVxdWVzdEJ1aWxkZXIgfSBmcm9tIFwiLi9SZXF1ZXN0QnVpbGRlclwiO1xuaW1wb3J0IHsgUGFyYW1ldGVyUG9zaXRpb25JY29uQ29tcCwgcGFyYW1ldGVyUG9zaXRpb25NYXAgfSBmcm9tIFwiLi9jb25maWdcIjtcbmltcG9ydCB7IGdldEF4aW9zQmFzZVBhdGhCeVVybCwgZ2V0TWV0aG9kQ29sb3IgfSBmcm9tIFwiLi91dGlsXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE9wZW5hcGlWaWV3KCkge1xuICBjb25zdCB7IG9wZXJhdGlvbklkIH0gPSB1c2VQYXJhbXMoKTtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuICBjb25zdCB7IG9wZW5hcGlXaXRoU2VydmljZUluZm8gfSA9IHVzZU9wZW5hcGlXaXRoU2VydmljZUluZm9TdG9yZSgpO1xuXG4gIGlmICghb3BlbmFwaVdpdGhTZXJ2aWNlSW5mbz8ub3BlcmF0aW9ucyB8fCAhb3BlcmF0aW9uSWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IG9wZXJhdGlvbiA9IG9wZW5hcGlXaXRoU2VydmljZUluZm8ub3BlcmF0aW9uc1tvcGVyYXRpb25JZF0gfHwge307XG4gIGNvbnN0IG1ldGhvZFN0eWxlID0gb3BlcmF0aW9uLm1ldGhvZCA/IHsgY29sb3I6IGdldE1ldGhvZENvbG9yKG9wZXJhdGlvbi5tZXRob2QpIH0gOiB7fTtcbiAgY29uc3QgY29tbW9uQ29sb3JTdHlsZSA9IHsgY29sb3I6IGRzYy5jb2xvci5wcmltYXJ5IH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjc3M9e3tcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IDYsXG4gICAgICAgICAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7bWV0aG9kU3R5bGUuY29sb3J9YCxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBtZXRob2RTdHlsZS5jb2xvcixcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwLFxuICAgICAgICAgICAgY29sb3I6IGRzYy5jb2xvci5iZyxcbiAgICAgICAgICB9fVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgIHRleHREZWNvcmF0aW9uOiBvcGVyYXRpb24uZGVwcmVjYXRlZCA/IFwibGluZS10aHJvdWdoXCIgOiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiA4LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dChcIm9wZW5hcGkuY2xpY2tUb0NvcHlcIil9PlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAgZm9udFNpemU6IGRzYy5mb250U2l6ZS5zLFxuICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogXCJib2xkXCIsXG4gICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogMTAsXG4gICAgICAgICAgICAgICAgICBjdXJzb3I6IFwicG9pbnRlclwiLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29weShvcGVyYXRpb24ub3BlcmF0aW9uSWQpO1xuICAgICAgICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKHQoXCJvcGVuYXBpLmNvcHlTdWNjZXNzXCIpKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge29wZXJhdGlvbi5vcGVyYXRpb25JZH1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgPHNwYW4gdGl0bGU9e29wZXJhdGlvbi5zdW1tYXJ5fSBjc3M9e3sgZm9udFNpemU6IGRzYy5mb250U2l6ZS54eHMgfX0+XG4gICAgICAgICAgICAgIHtvcGVyYXRpb24uc3VtbWFyeX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgZm9udFNpemU6IGRzYy5mb250U2l6ZS5zLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjc3M9e3sgdGV4dFRyYW5zZm9ybTogXCJ1cHBlcmNhc2VcIiwgZm9udEZhbWlseTogZHNjLmZvbnRGYW1pbHkubW9ubyB9fT57b3BlcmF0aW9uLm1ldGhvZH08L3NwYW4+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImlubGluZS1ibG9ja1wiLFxuICAgICAgICAgICAgICAgIG1hcmdpbkxlZnQ6IDgsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtvcGVyYXRpb24ucGF0aH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY3NzPXt7IHBhZGRpbmc6IDE2IH19PlxuICAgICAgICAgIHtvcGVyYXRpb24uZGVzY3JpcHRpb24gJiYgKFxuICAgICAgICAgICAgPFNlY3Rpb24gdGl0bGU9ezxzcGFuIGNzcz17Y29tbW9uQ29sb3JTdHlsZX0+e3QoXCJvcGVuYXBpLmRlc2NyaXB0aW9uXCIpfTwvc3Bhbj59PlxuICAgICAgICAgICAgICA8UmVhY3RNYXJrZG93bj57b3BlcmF0aW9uLmRlc2NyaXB0aW9ufTwvUmVhY3RNYXJrZG93bj5cbiAgICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTZWN0aW9uXG4gICAgICAgICAgICB0aXRsZT17XG4gICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNzcz17Y29tbW9uQ29sb3JTdHlsZX0+e3QoXCJvcGVuYXBpLnBhcmFtZXRlcnNcIil9PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzbWFsbFxuICAgICAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQ6IDEuNCxcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IFwiMC44ZW1cIixcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiBcIjAuNWVtXCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiBkc2MuY29sb3IudGV4dCxcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge21hcChwYXJhbWV0ZXJQb3NpdGlvbk1hcCwgKGxhYmVsLCBwb3NpdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cG9zaXRpb259XG4gICAgICAgICAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiBcIjFlbVwiLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8UGFyYW1ldGVyUG9zaXRpb25JY29uQ29tcCBwb3NpdGlvbj17cG9zaXRpb259IC8+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e2xhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxSZXF1ZXN0QnVpbGRlclxuICAgICAgICAgICAgICBzY2hlbWFzPXtvcGVuYXBpV2l0aFNlcnZpY2VJbmZvLm9wZW5hcGkuY29tcG9uZW50cz8uc2NoZW1hcyB8fCB7fX1cbiAgICAgICAgICAgICAgb3BlcmF0aW9uPXt7XG4gICAgICAgICAgICAgICAgLi4ub3BlcmF0aW9uLFxuICAgICAgICAgICAgICAgIGJhc2VQYXRoOiBnZXRBeGlvc0Jhc2VQYXRoQnlVcmwob3BlbmFwaVdpdGhTZXJ2aWNlSW5mby5zZXJ2aWNlVVJMKSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TZWN0aW9uPlxuICAgICAgICAgIDxTZWN0aW9uIHRpdGxlPXs8c3BhbiBjc3M9e2NvbW1vbkNvbG9yU3R5bGV9Pnt0KFwib3BlbmFwaS5yZXNwb25zZXNcIil9PC9zcGFuPn0+XG4gICAgICAgICAgICA8UmVzcG9uc2VzIG9wZXJhdGlvbj17b3BlcmF0aW9ufSAvPlxuICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdfQ== */"),children:[ae("span",{css:Ji({textTransform:"uppercase",fontFamily:Qt.fontFamily.mono},Na.NODE_ENV==="production"?"":";label:OpenapiView;",Na.NODE_ENV==="production"?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvb3BlbmFwaS9PcGVuYXBpVmlldy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEVrQiIsImZpbGUiOiIvVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL29wZW5hcGktdWkvc3JjL29wZW5hcGkvT3BlbmFwaVZpZXcudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9vbHRpcCwgbWVzc2FnZSB9IGZyb20gXCJhbnRkXCI7XG5pbXBvcnQgY29weSBmcm9tIFwiY29weS10by1jbGlwYm9hcmRcIjtcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCBSZWFjdE1hcmtkb3duIGZyb20gXCJyZWFjdC1tYXJrZG93blwiO1xuaW1wb3J0IHsgdXNlUGFyYW1zIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tIFwiLi4vY29tcG9uZW50cy9TZWN0aW9uXCI7XG5pbXBvcnQgeyB1c2VPcGVuYXBpV2l0aFNlcnZpY2VJbmZvU3RvcmUgfSBmcm9tIFwiLi4vY29yZS9zdG9yZVwiO1xuaW1wb3J0IHsgZHNjIH0gZnJvbSBcIi4uL2NvcmUvc3R5bGUvZGVmYXVsdFN0eWxlQ29uZmlnXCI7XG5pbXBvcnQgeyBSZXNwb25zZXMgfSBmcm9tIFwiLi9PcGVuYXBpVmlld0NvbXBcIjtcbmltcG9ydCB7IFJlcXVlc3RCdWlsZGVyIH0gZnJvbSBcIi4vUmVxdWVzdEJ1aWxkZXJcIjtcbmltcG9ydCB7IFBhcmFtZXRlclBvc2l0aW9uSWNvbkNvbXAsIHBhcmFtZXRlclBvc2l0aW9uTWFwIH0gZnJvbSBcIi4vY29uZmlnXCI7XG5pbXBvcnQgeyBnZXRBeGlvc0Jhc2VQYXRoQnlVcmwsIGdldE1ldGhvZENvbG9yIH0gZnJvbSBcIi4vdXRpbFwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBPcGVuYXBpVmlldygpIHtcbiAgY29uc3QgeyBvcGVyYXRpb25JZCB9ID0gdXNlUGFyYW1zKCk7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgY29uc3QgeyBvcGVuYXBpV2l0aFNlcnZpY2VJbmZvIH0gPSB1c2VPcGVuYXBpV2l0aFNlcnZpY2VJbmZvU3RvcmUoKTtcblxuICBpZiAoIW9wZW5hcGlXaXRoU2VydmljZUluZm8/Lm9wZXJhdGlvbnMgfHwgIW9wZXJhdGlvbklkKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBvcGVyYXRpb24gPSBvcGVuYXBpV2l0aFNlcnZpY2VJbmZvLm9wZXJhdGlvbnNbb3BlcmF0aW9uSWRdIHx8IHt9O1xuICBjb25zdCBtZXRob2RTdHlsZSA9IG9wZXJhdGlvbi5tZXRob2QgPyB7IGNvbG9yOiBnZXRNZXRob2RDb2xvcihvcGVyYXRpb24ubWV0aG9kKSB9IDoge307XG4gIGNvbnN0IGNvbW1vbkNvbG9yU3R5bGUgPSB7IGNvbG9yOiBkc2MuY29sb3IucHJpbWFyeSB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiA2LFxuICAgICAgICAgIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICAgICAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke21ldGhvZFN0eWxlLmNvbG9yfWAsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogbWV0aG9kU3R5bGUuY29sb3IsXG4gICAgICAgICAgICBwYWRkaW5nOiAxMCxcbiAgICAgICAgICAgIGNvbG9yOiBkc2MuY29sb3IuYmcsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICB0ZXh0RGVjb3JhdGlvbjogb3BlcmF0aW9uLmRlcHJlY2F0ZWQgPyBcImxpbmUtdGhyb3VnaFwiIDogXCJub25lXCIsXG4gICAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogOCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoXCJvcGVuYXBpLmNsaWNrVG9Db3B5XCIpfT5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiBkc2MuZm9udFNpemUucyxcbiAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6IFwiYm9sZFwiLFxuICAgICAgICAgICAgICAgICAgbWFyZ2luUmlnaHQ6IDEwLFxuICAgICAgICAgICAgICAgICAgY3Vyc29yOiBcInBvaW50ZXJcIixcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvcHkob3BlcmF0aW9uLm9wZXJhdGlvbklkKTtcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2Vzcyh0KFwib3BlbmFwaS5jb3B5U3VjY2Vzc1wiKSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtvcGVyYXRpb24ub3BlcmF0aW9uSWR9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIDxzcGFuIHRpdGxlPXtvcGVyYXRpb24uc3VtbWFyeX0gY3NzPXt7IGZvbnRTaXplOiBkc2MuZm9udFNpemUueHhzIH19PlxuICAgICAgICAgICAgICB7b3BlcmF0aW9uLnN1bW1hcnl9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgIGZvbnRTaXplOiBkc2MuZm9udFNpemUucyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY3NzPXt7IHRleHRUcmFuc2Zvcm06IFwidXBwZXJjYXNlXCIsIGZvbnRGYW1pbHk6IGRzYy5mb250RmFtaWx5Lm1vbm8gfX0+e29wZXJhdGlvbi5tZXRob2R9PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogXCJpbmxpbmUtYmxvY2tcIixcbiAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiA4LFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7b3BlcmF0aW9uLnBhdGh9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNzcz17eyBwYWRkaW5nOiAxNiB9fT5cbiAgICAgICAgICB7b3BlcmF0aW9uLmRlc2NyaXB0aW9uICYmIChcbiAgICAgICAgICAgIDxTZWN0aW9uIHRpdGxlPXs8c3BhbiBjc3M9e2NvbW1vbkNvbG9yU3R5bGV9Pnt0KFwib3BlbmFwaS5kZXNjcmlwdGlvblwiKX08L3NwYW4+fT5cbiAgICAgICAgICAgICAgPFJlYWN0TWFya2Rvd24+e29wZXJhdGlvbi5kZXNjcmlwdGlvbn08L1JlYWN0TWFya2Rvd24+XG4gICAgICAgICAgICA8L1NlY3Rpb24+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U2VjdGlvblxuICAgICAgICAgICAgdGl0bGU9e1xuICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjc3M9e2NvbW1vbkNvbG9yU3R5bGV9Pnt0KFwib3BlbmFwaS5wYXJhbWV0ZXJzXCIpfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c21hbGxcbiAgICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAxLjQsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiBcIjAuOGVtXCIsXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogXCIwLjVlbVwiLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogZHNjLmNvbG9yLnRleHQsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHttYXAocGFyYW1ldGVyUG9zaXRpb25NYXAsIChsYWJlbCwgcG9zaXRpb24pID0+IChcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3Bvc2l0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogXCIxZW1cIixcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFBhcmFtZXRlclBvc2l0aW9uSWNvbkNvbXAgcG9zaXRpb249e3Bvc2l0aW9ufSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8UmVxdWVzdEJ1aWxkZXJcbiAgICAgICAgICAgICAgc2NoZW1hcz17b3BlbmFwaVdpdGhTZXJ2aWNlSW5mby5vcGVuYXBpLmNvbXBvbmVudHM/LnNjaGVtYXMgfHwge319XG4gICAgICAgICAgICAgIG9wZXJhdGlvbj17e1xuICAgICAgICAgICAgICAgIC4uLm9wZXJhdGlvbixcbiAgICAgICAgICAgICAgICBiYXNlUGF0aDogZ2V0QXhpb3NCYXNlUGF0aEJ5VXJsKG9wZW5hcGlXaXRoU2VydmljZUluZm8uc2VydmljZVVSTCksXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgICA8U2VjdGlvbiB0aXRsZT17PHNwYW4gY3NzPXtjb21tb25Db2xvclN0eWxlfT57dChcIm9wZW5hcGkucmVzcG9uc2VzXCIpfTwvc3Bhbj59PlxuICAgICAgICAgICAgPFJlc3BvbnNlcyBvcGVyYXRpb249e29wZXJhdGlvbn0gLz5cbiAgICAgICAgICA8L1NlY3Rpb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXX0= */"),children:i.method}),ae("span",{css:Kzt,children:i.path})]})]}),Rt("div",{css:jzt,children:[i.description&&ae(CF,{title:ae("span",{css:o,children:e("openapi.description")}),children:ae(ope,{children:i.description})}),ae(CF,{title:Rt("span",{children:[ae("span",{css:o,children:e("openapi.parameters")}),ae("small",{css:Ji({lineHeight:1.4,fontSize:"0.8em",marginBottom:"0.5em",color:Qt.color.text},Na.NODE_ENV==="production"?"":";label:OpenapiView;",Na.NODE_ENV==="production"?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvb3BlbmFwaS9PcGVuYXBpVmlldy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0drQiIsImZpbGUiOiIvVXNlcnMvYWxleGFuZGVyL215LWNvZGUvZ2l0aHViL29wZW5hcGktdWkvc3JjL29wZW5hcGkvT3BlbmFwaVZpZXcudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVG9vbHRpcCwgbWVzc2FnZSB9IGZyb20gXCJhbnRkXCI7XG5pbXBvcnQgY29weSBmcm9tIFwiY29weS10by1jbGlwYm9hcmRcIjtcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcInJlYWN0LWkxOG5leHRcIjtcbmltcG9ydCBSZWFjdE1hcmtkb3duIGZyb20gXCJyZWFjdC1tYXJrZG93blwiO1xuaW1wb3J0IHsgdXNlUGFyYW1zIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcbmltcG9ydCB7IFNlY3Rpb24gfSBmcm9tIFwiLi4vY29tcG9uZW50cy9TZWN0aW9uXCI7XG5pbXBvcnQgeyB1c2VPcGVuYXBpV2l0aFNlcnZpY2VJbmZvU3RvcmUgfSBmcm9tIFwiLi4vY29yZS9zdG9yZVwiO1xuaW1wb3J0IHsgZHNjIH0gZnJvbSBcIi4uL2NvcmUvc3R5bGUvZGVmYXVsdFN0eWxlQ29uZmlnXCI7XG5pbXBvcnQgeyBSZXNwb25zZXMgfSBmcm9tIFwiLi9PcGVuYXBpVmlld0NvbXBcIjtcbmltcG9ydCB7IFJlcXVlc3RCdWlsZGVyIH0gZnJvbSBcIi4vUmVxdWVzdEJ1aWxkZXJcIjtcbmltcG9ydCB7IFBhcmFtZXRlclBvc2l0aW9uSWNvbkNvbXAsIHBhcmFtZXRlclBvc2l0aW9uTWFwIH0gZnJvbSBcIi4vY29uZmlnXCI7XG5pbXBvcnQgeyBnZXRBeGlvc0Jhc2VQYXRoQnlVcmwsIGdldE1ldGhvZENvbG9yIH0gZnJvbSBcIi4vdXRpbFwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBPcGVuYXBpVmlldygpIHtcbiAgY29uc3QgeyBvcGVyYXRpb25JZCB9ID0gdXNlUGFyYW1zKCk7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgY29uc3QgeyBvcGVuYXBpV2l0aFNlcnZpY2VJbmZvIH0gPSB1c2VPcGVuYXBpV2l0aFNlcnZpY2VJbmZvU3RvcmUoKTtcblxuICBpZiAoIW9wZW5hcGlXaXRoU2VydmljZUluZm8/Lm9wZXJhdGlvbnMgfHwgIW9wZXJhdGlvbklkKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBvcGVyYXRpb24gPSBvcGVuYXBpV2l0aFNlcnZpY2VJbmZvLm9wZXJhdGlvbnNbb3BlcmF0aW9uSWRdIHx8IHt9O1xuICBjb25zdCBtZXRob2RTdHlsZSA9IG9wZXJhdGlvbi5tZXRob2QgPyB7IGNvbG9yOiBnZXRNZXRob2RDb2xvcihvcGVyYXRpb24ubWV0aG9kKSB9IDoge307XG4gIGNvbnN0IGNvbW1vbkNvbG9yU3R5bGUgPSB7IGNvbG9yOiBkc2MuY29sb3IucHJpbWFyeSB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXt7XG4gICAgICAgICAgYm9yZGVyUmFkaXVzOiA2LFxuICAgICAgICAgIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICAgICAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke21ldGhvZFN0eWxlLmNvbG9yfWAsXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogbWV0aG9kU3R5bGUuY29sb3IsXG4gICAgICAgICAgICBwYWRkaW5nOiAxMCxcbiAgICAgICAgICAgIGNvbG9yOiBkc2MuY29sb3IuYmcsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICB0ZXh0RGVjb3JhdGlvbjogb3BlcmF0aW9uLmRlcHJlY2F0ZWQgPyBcImxpbmUtdGhyb3VnaFwiIDogXCJub25lXCIsXG4gICAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogOCxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e3QoXCJvcGVuYXBpLmNsaWNrVG9Db3B5XCIpfT5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjc3M9e3tcbiAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiBkc2MuZm9udFNpemUucyxcbiAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6IFwiYm9sZFwiLFxuICAgICAgICAgICAgICAgICAgbWFyZ2luUmlnaHQ6IDEwLFxuICAgICAgICAgICAgICAgICAgY3Vyc29yOiBcInBvaW50ZXJcIixcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvcHkob3BlcmF0aW9uLm9wZXJhdGlvbklkKTtcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2Vzcyh0KFwib3BlbmFwaS5jb3B5U3VjY2Vzc1wiKSk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtvcGVyYXRpb24ub3BlcmF0aW9uSWR9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgIDxzcGFuIHRpdGxlPXtvcGVyYXRpb24uc3VtbWFyeX0gY3NzPXt7IGZvbnRTaXplOiBkc2MuZm9udFNpemUueHhzIH19PlxuICAgICAgICAgICAgICB7b3BlcmF0aW9uLnN1bW1hcnl9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgIGZvbnRTaXplOiBkc2MuZm9udFNpemUucyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY3NzPXt7IHRleHRUcmFuc2Zvcm06IFwidXBwZXJjYXNlXCIsIGZvbnRGYW1pbHk6IGRzYy5mb250RmFtaWx5Lm1vbm8gfX0+e29wZXJhdGlvbi5tZXRob2R9PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY3NzPXt7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogXCJpbmxpbmUtYmxvY2tcIixcbiAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiA4LFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7b3BlcmF0aW9uLnBhdGh9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNzcz17eyBwYWRkaW5nOiAxNiB9fT5cbiAgICAgICAgICB7b3BlcmF0aW9uLmRlc2NyaXB0aW9uICYmIChcbiAgICAgICAgICAgIDxTZWN0aW9uIHRpdGxlPXs8c3BhbiBjc3M9e2NvbW1vbkNvbG9yU3R5bGV9Pnt0KFwib3BlbmFwaS5kZXNjcmlwdGlvblwiKX08L3NwYW4+fT5cbiAgICAgICAgICAgICAgPFJlYWN0TWFya2Rvd24+e29wZXJhdGlvbi5kZXNjcmlwdGlvbn08L1JlYWN0TWFya2Rvd24+XG4gICAgICAgICAgICA8L1NlY3Rpb24+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8U2VjdGlvblxuICAgICAgICAgICAgdGl0bGU9e1xuICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjc3M9e2NvbW1vbkNvbG9yU3R5bGV9Pnt0KFwib3BlbmFwaS5wYXJhbWV0ZXJzXCIpfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c21hbGxcbiAgICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiAxLjQsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiBcIjAuOGVtXCIsXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogXCIwLjVlbVwiLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogZHNjLmNvbG9yLnRleHQsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHttYXAocGFyYW1ldGVyUG9zaXRpb25NYXAsIChsYWJlbCwgcG9zaXRpb24pID0+IChcbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e3Bvc2l0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgIGNzcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogXCIxZW1cIixcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFBhcmFtZXRlclBvc2l0aW9uSWNvbkNvbXAgcG9zaXRpb249e3Bvc2l0aW9ufSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPntsYWJlbH08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8UmVxdWVzdEJ1aWxkZXJcbiAgICAgICAgICAgICAgc2NoZW1hcz17b3BlbmFwaVdpdGhTZXJ2aWNlSW5mby5vcGVuYXBpLmNvbXBvbmVudHM/LnNjaGVtYXMgfHwge319XG4gICAgICAgICAgICAgIG9wZXJhdGlvbj17e1xuICAgICAgICAgICAgICAgIC4uLm9wZXJhdGlvbixcbiAgICAgICAgICAgICAgICBiYXNlUGF0aDogZ2V0QXhpb3NCYXNlUGF0aEJ5VXJsKG9wZW5hcGlXaXRoU2VydmljZUluZm8uc2VydmljZVVSTCksXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvU2VjdGlvbj5cbiAgICAgICAgICA8U2VjdGlvbiB0aXRsZT17PHNwYW4gY3NzPXtjb21tb25Db2xvclN0eWxlfT57dChcIm9wZW5hcGkucmVzcG9uc2VzXCIpfTwvc3Bhbj59PlxuICAgICAgICAgICAgPFJlc3BvbnNlcyBvcGVyYXRpb249e29wZXJhdGlvbn0gLz5cbiAgICAgICAgICA8L1NlY3Rpb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXX0= */"),children:Kr(tGt,(a,l)=>Rt("span",{css:Qzt,children:[ae(f_e,{position:l}),ae("span",{children:a})]},l))})]}),children:ae(Jzt,{schemas:((s=t.openapi.components)==null?void 0:s.schemas)||{},operation:{...i,basePath:Prt(t.serviceURL)}})}),ae(CF,{title:ae("span",{css:o,children:e("openapi.responses")}),children:ae(Kut,{operation:i})})]})]})})}const qzt=Object.freeze(Object.defineProperty({__proto__:null,default:$zt},Symbol.toStringTag,{value:"Module"}));var eYt={name:"i2ygnv",styles:"height:100%;cursor:pointer"};function tYt(){const n=wg(),{t:e}=va(),[t,i]=I.useState(!1);return Rt(ah,{children:[t&&ae(Sme,{onSuccess:()=>i(!1)}),Rt("div",{css:[xme(),{height:CC,backgroundColor:Qt.color.bg,padding:12,margin:"0 16px",boxSizing:"border-box"},"",""],children:[ae("a",{css:eYt,onClick:()=>{n(D9)},children:ae("img",{src:Ime,alt:"postman"})}),Rt("div",{css:[cb(),"& > * + *{margin-left:6px;}",""],children:[ae(UP,{menu:{items:[{key:"0",label:e("head.updateConfig"),onClick(){i(!0)}},{key:"1",label:e("head.reselectService"),onClick(){n(D9)}}]},children:ae("a",{css:cb(),onClick:r=>r.preventDefault(),children:ae(wme,{})})}),ae(KB,{}),ae(jB,{})]})]})]})}var p$=(n=>(n.dateTimeUnix="dateTimeUnix",n.dateUnix="dateUnix",n.dateTime="dateTime",n.date="date",n))(p$||{}),K_e=(n=>(n.dateTime="dateTime",n.dateTimeUnix="dateTimeUnix",n))(K_e||{});const nYt=n=>({dateTime:Qo.t("postman.dateTime"),date:Qo.t("postman.date"),dateTimeUnix:Qo.t("postman.dateTimeUnix"),dateUnix:Qo.t("postman.dateUnix")})[n];var $h=(n=>(n.fieldName="fieldName",n.fieldType="fieldType",n.fieldValue="fieldValue",n))($h||{}),b$=(n=>(n.single="single",n.multiple="multiple",n))(b$||{});const iYt=n=>({single:Qo.t("postman.single"),multiple:Qo.t("postman.multiple")})[n];var C$=(n=>(n.fieldName="fieldName",n.fieldType="fieldType",n.fieldValue="fieldValue",n))(C$||{});function j_e({position:n,form:e}){const{t}=va(),i=Kr(p$,a=>({label:nYt(a),value:a})),r=Kr(b$,a=>({label:iYt(a),value:a})),o=a=>Array.isArray(a)?a:a==null?void 0:a.fileList,s=(a,l)=>{var u;return((u=e.getFieldValue(a))==null?void 0:u[l])||{}};return Rt(ah,{children:[ae(CF,{title:t("postman.customTime"),children:ae(Ti.List,{name:`custom${n}Times`,children:(a,{add:l,remove:u})=>Rt(ah,{children:[a.map(({key:c,name:d,...h},g)=>{const m=s(`custom${n}Times`,g);return Rt("div",{style:{display:"flex"},children:[ae(Ti.Item,{...h,name:[d,$h.fieldName],style:{width:"35%",marginRight:8},children:ae(th,{addonBefore:t("postman.fieldName"),placeholder:t("postman.fieldNamePlaceholder")})}),ae(Ti.Item,{...h,name:[d,$h.fieldType],style:{width:"27%",marginRight:8},children:ae(Yy,{placeholder:"please select time type",options:i})}),ae(Ti.Item,{...h,name:[d,$h.fieldValue],style:{width:"33%",marginRight:8},children:ae(mle,{showTime:oh(K_e,m.fieldType),needConfirm:!1,style:{width:"100%"}})}),ae(Ti.Item,{...h,style:{width:"5%"},children:ae("a",{onClick:()=>u(d),children:ae("img",{src:Vz})})})]},c)}),ae("div",{children:ae(so,{type:"dashed",onClick:()=>l({[$h.fieldName]:"time",[$h.fieldType]:p$.dateTimeUnix,[$h.fieldValue]:Ao()}),style:{width:"60%"},icon:ae("img",{src:Xz}),children:t("postman.addTimeField")})})]})})}),n==="Data"&&ae(CF,{title:t("postman.customFile"),children:ae(Ti.List,{name:"customDataFiles",children:(a,{add:l,remove:u})=>Rt(ah,{children:[a.map(({key:c,name:d,...h},g)=>{const m=s("customDataFiles",g);return Rt("div",{style:{display:"flex"},children:[ae(Ti.Item,{...h,name:[d,C$.fieldName],style:{width:"35%",marginRight:8},children:ae(th,{addonBefore:t("postman.fieldName"),placeholder:t("postman.fieldNamePlaceholder")})}),ae(Ti.Item,{...h,name:[d,$h.fieldType],style:{width:"27%",marginRight:8},children:ae(Yy,{placeholder:"please select upload file type",options:r})}),ae(Ti.Item,{...h,name:[d,C$.fieldValue],valuePropName:"fileList",getValueFromEvent:o,style:{width:"33%",marginRight:8},children:ae(sO,{multiple:(m==null?void 0:m.fieldType)==="multiple",beforeUpload:()=>!1,children:Rt(so,{css:[$B(),"&:hover img{filter:invert(30%) sepia(85%) saturate(2525%) hue-rotate(208deg) brightness(104%) contrast(101%);}",""],children:[ae("img",{src:ez,style:{marginRight:6},alt:"upload"}),ae("span",{style:{fontSize:Qt.fontSize.xs},children:t("postman.uploadFile")})]})})}),ae(Ti.Item,{...h,style:{width:"5%"},children:ae("a",{onClick:()=>u(d),children:ae("img",{src:Vz})})})]},c)}),ae("div",{children:ae(so,{type:"dashed",onClick:()=>l({[$h.fieldName]:"file",[$h.fieldType]:b$.single,[$h.fieldValue]:null}),style:{width:"60%"},icon:ae("img",{src:Xz}),children:t("postman.addFileField")})})]})})})]})}function v$(n){const e=n.value?JSON.stringify(n.value,null,4):"{}";return ae(kpe,{height:n.height||300,theme:"vs-dark",defaultLanguage:"json",value:e,onChange:t=>{if(!t)return n.onChange(null);try{const i=JSON.parse(t);i&&n.onChange(i)}catch{}},onMount:(t,i)=>{try{i.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0})}catch{}}})}const rYt=n=>{const e={value:n.value||{},onChange:n.onChange?n.onChange:()=>{}};return Rt("div",{children:[ae(v$,{...e,height:400}),Rt(K1.Group,{style:{marginTop:10},value:e.value["Content-Type"]||"",onChange:t=>e.onChange(Object.assign({},e.value,{"Content-Type":t.target.value})),children:[ae(K1,{value:"",children:"none"}),ae(K1,{value:"application/json",children:"json"}),ae(K1,{value:"multipart/form-data",children:"form-data"}),ae(K1,{value:"application/x-www-form-urlencoded",children:"x-www-form-urlencoded"})]})]})},oYt=n=>{const e={value:n.value||{},onChange:n.onChange?n.onChange:()=>{}};return ae(v$,{...e,height:400})},sYt=n=>{const e={value:n.value||{},onChange:n.onChange?n.onChange:()=>{}};return ae(v$,{...e,height:400})};function aYt(n={}){var r,o;if(!n.url)return n;const[e,t]=lYt(n.url);n.baseURL=e,n.url=t;const i=((r=n==null?void 0:n.headers)==null?void 0:r["Content-Type"])||"application/json";return(o=n==null?void 0:n.headers)!=null&&o.Referer&&(n==null||delete n.headers.Referer),Xs(n==null?void 0:n.data)||(n.headers={...(n==null?void 0:n.headers)||{},"Content-Type":i+";charset=UTF-8"}),n}function lYt(n){if(!n||!kI.test(n))return["//serviceURL","/URL"];const e=n.split("//"),t=e[1].split("/"),i=`${e[0]}//${t[0]}`,r=`/${t.slice(1).join("/")}`;return[i,r]}function Q_e(n){return!n||!n.length?{}:sh(n,(t,i)=>(i!=null&&i.fieldValue&&(t[i==null?void 0:i.fieldName]=i!=null&&i.fieldType.toLocaleLowerCase().includes("unix")?i==null?void 0:i.fieldValue.unix():i==null?void 0:i.fieldValue.toISOString()),t),{})}function uYt(n){return!n||!n.length?{}:sh(n,(t,i)=>(i!=null&&i.fieldValue&&(t[i==null?void 0:i.fieldName]=(i==null?void 0:i.fieldType)==="single"?i==null?void 0:i.fieldValue[0]:i==null?void 0:i.fieldValue),t),{})}function cYt({size:n="18",fill:e="#8A8A8A",...t}){return ae("svg",{width:n,height:n,viewBox:"0 0 1024 1024",...t,children:ae("path",{d:"M512 81.408a422.4 422.4 0 1 0 422.4 422.4A422.4 422.4 0 0 0 512 81.408zm26.624 629.76a45.056 45.056 0 0 1-31.232 12.288 42.496 42.496 0 0 1-31.232-12.8 41.984 41.984 0 0 1-12.8-30.72 39.424 39.424 0 0 1 12.8-30.72 42.496 42.496 0 0 1 31.232-12.288 43.008 43.008 0 0 1 31.744 12.288 39.424 39.424 0 0 1 12.8 30.72 43.008 43.008 0 0 1-13.312 31.744zm87.04-235.52a617.472 617.472 0 0 1-51.2 47.104 93.184 93.184 0 0 0-25.088 31.232 80.896 80.896 0 0 0-9.728 39.936v10.24h-64v-10.24a119.808 119.808 0 0 1 12.288-57.344A311.296 311.296 0 0 1 555.52 460.8l10.24-11.264a71.168 71.168 0 0 0 16.896-44.032A69.632 69.632 0 0 0 563.2 358.4a69.632 69.632 0 0 0-51.2-17.92 67.072 67.072 0 0 0-58.88 26.112 102.4 102.4 0 0 0-16.384 61.44h-61.44a140.288 140.288 0 0 1 37.888-102.4 140.8 140.8 0 0 1 104.96-38.4 135.68 135.68 0 0 1 96.256 29.184 108.032 108.032 0 0 1 36.352 86.528 116.736 116.736 0 0 1-25.088 73.216z",fill:e})})}const y$=Ti.Item;var dYt={name:"1m24gx0",styles:"width:90%;margin-right:5px"},hYt={name:"14t521x",styles:"margin-bottom:8px;& > *{margin-right:4px;}"};function $_e(){const[n]=Ti.useForm(),{t:e}=va(),{configInfo:t}=eB(),[i,r]=I.useState({}),[o,s]=I.useState(!1),[a,l]=I.useState(0),[u,c]=I.useState(mc.get),[d,h]=I.useState("");I.useEffect(()=>{n.setFieldValue("headers",Object.assign({},n.getFieldValue("headers")||{},{Authorization:t==null?void 0:t.authorization})),l(v=>v+1)},[t==null?void 0:t.authorization]);const g=[{key:"0",label:e("postman.headers"),children:ae(y$,{name:"headers",children:ae(rYt,{})})},{key:"1",label:e("postman.query"),children:Rt("div",{children:[ae(y$,{name:"params",style:{marginBottom:6},children:ae(oYt,{})}),ae(j_e,{position:"Params",form:n})]})},{key:"2",label:Rt("div",{style:{display:"flex",alignItems:"center"},children:[e("postman.body")," ",ae(cg,{title:e("postman.bodyTitleTip"),overlayInnerStyle:{width:260},children:ae(cYt,{})})]}),children:Rt("div",{children:[ae(y$,{name:"data",style:{marginBottom:6},children:ae(sYt,{})}),ae(j_e,{position:"Data",form:n})]})}],m=I.useMemo(()=>Kr(mc,v=>({label:Uce(v),value:v})),[]),f=()=>ae(Yy,{style:{width:96},options:m,defaultValue:mc.get,onSelect:c});async function b(v){s(!0);const w=await _L(v).finally(()=>s(!1));(w==null?void 0:w.status)>=200&&(w==null?void 0:w.status)<300&&r(w),s(!1)}const C=I.useMemo(()=>{const v=n.getFieldsValue();if(v.customParamsTimes){const w=Q_e(v.customParamsTimes);v.params={...v.params||{},...w||{}},delete v.customParamsTimes}if(v.customDataTimes){const w=Q_e(v.customDataTimes);v.data={...v.data||{},...w||{}},delete v.customDataTimes}if(v.customDataFiles){const w=uYt(v.customDataFiles);v.data={...v.data||{},...w||{}},delete v.customDataFiles}return aYt(Object.assign({method:u,url:d},v))},[u,d,n.getFieldsValue()]);return Rt("div",{style:{display:"flex"},children:[Rt("div",{style:{width:"50%"},children:[Rt("div",{style:{display:"flex",marginBottom:10},children:[ae(th,{css:dYt,addonBefore:ae(f,{}),placeholder:e("postman.urlPlaceholder"),defaultValue:d,onChange:v=>{var w;return h((w=v.target.value)==null?void 0:w.trim())}}),ae(so,{type:"primary",disabled:o,onClick:()=>{kI.test(d)?n.submit():Ql.warning(e("postman.validUrlTip"))},children:e("postman.send")})]}),ae("div",{children:ae(Ti,{form:n,name:"postman-request-control-form",initialValues:{headers:t!=null&&t.authorization?{Authorization:t==null?void 0:t.authorization}:null,params:null,customParamsTimes:null,data:null,customDataTimes:null,customDataFiles:null},onValuesChange:()=>{l(a+1)},onFinish:()=>{b(C)},children:ae(Oae,{defaultActiveKey:"1",items:g})})})]}),Rt("div",{style:{width:"50%",fontSize:Qt.fontSize.xxs,paddingLeft:10},children:[ae("div",{style:{marginBottom:8},children:ae(fpe,{request:C})}),ae("div",{css:hYt,children:ae(Q4,{content:ae(U_e,{request:Object.assign({},C,{url:d})}),trigger:"click",children:ae(so,{size:"small",style:{fontSize:Qt.fontSize.xxs},children:e("openapi.cURL")})})}),!Xs(i)&&ae(Cpe,{...i})]})]})}var NG={TERM_PROGRAM:"vscode",NODE:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NVM_CD_FLAGS:"-q",INIT_CWD:"/Users/alexander/my-code/github/openapi-ui",SHELL:"/bin/zsh",TERM:"xterm-256color",TMPDIR:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/",npm_config_metrics_registry:"https://registry.npmjs.org/",npm_config_global_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",TERM_PROGRAM_VERSION:"1.88.1",GVM_ROOT:"/Users/alexander/.gvm",MallocNanoZone:"0",ORIGINAL_XDG_CURRENT_DESKTOP:"undefined",ZDOTDIR:"/Users/alexander",COLOR:"1",npm_config_noproxy:"",ZSH:"/Users/alexander/.oh-my-zsh",PNPM_HOME:"/Users/alexander/Library/pnpm",npm_config_local_prefix:"/Users/alexander/my-code/github/openapi-ui",USER:"alexander",NVM_DIR:"/Users/alexander/.nvm",LD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",COMMAND_MODE:"unix2003",npm_config_globalconfig:"/Users/alexander/.nvm/versions/node/v16.10.0/etc/npmrc",SSH_AUTH_SOCK:"/private/tmp/com.apple.launchd.jaFD8W3kId/Listeners",__CF_USER_TEXT_ENCODING:"0x1F5:0x19:0x34",npm_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/bin/npm-cli.js",PAGER:"less",LSCOLORS:"Gxfxcxdxbxegedabagacad",PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.bin:/Users/alexander/my-code/github/node_modules/.bin:/Users/alexander/my-code/node_modules/.bin:/Users/alexander/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",npm_package_json:"/Users/alexander/my-code/github/openapi-ui/package.json",__CFBundleIdentifier:"com.microsoft.VSCode",USER_ZDOTDIR:"/Users/alexander",npm_config_auto_install_peers:"true",npm_config_init_module:"/Users/alexander/.npm-init.js",npm_config_userconfig:"/Users/alexander/.npmrc",PWD:"/Users/alexander/my-code/github/openapi-ui",GVM_VERSION:"1.0.22",npm_command:"run-script",EDITOR:"vi",npm_lifecycle_event:"build:package",LANG:"zh_CN.UTF-8",npm_package_name:"openapi-ui-dist",gvm_pkgset_name:"global",NODE_PATH:"/Users/alexander/my-code/github/openapi-ui/node_modules/.pnpm/node_modules",XPC_FLAGS:"0x0",VSCODE_GIT_ASKPASS_EXTRA_ARGS:"",npm_package_engines_node:"^18.0.0 || >=20.0.0",npm_config_node_gyp:"/Users/alexander/.nvm/versions/node/v16.10.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js",XPC_SERVICE_NAME:"0",npm_package_version:"2.0.1",VSCODE_INJECTION:"1",HOME:"/Users/alexander",SHLVL:"2",VSCODE_GIT_ASKPASS_MAIN:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js",GOROOT:"/Users/alexander/.gvm/gos/go1.21.6",DYLD_LIBRARY_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib:",gvm_go_name:"go1.21.6",LOGNAME:"alexander",LESS:"-R",VSCODE_PATH_PREFIX:"/Users/alexander/.gvm/gos/go1.20/bin:",npm_config_cache:"/Users/alexander/.npm",GVM_OVERLAY_PREFIX:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay",npm_lifecycle_script:"tsc && vite build --config vite.package.config.ts --mode package",LC_CTYPE:"zh_CN.UTF-8",VSCODE_GIT_IPC_HANDLE:"/var/folders/7b/f28gh86d083_xqj9p9hs97k80000gn/T/vscode-git-79a18f10f2.sock",NVM_BIN:"/Users/alexander/.nvm/versions/node/v16.10.0/bin",PKG_CONFIG_PATH:"/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/lib/pkgconfig:",GOPATH:"/Users/alexander/mygo",npm_config_user_agent:"npm/7.24.0 node/v16.10.0 darwin x64 workspaces/false",GIT_ASKPASS:"/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh",VSCODE_GIT_ASKPASS_NODE:"/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin)",GVM_PATH_BACKUP:"/Users/alexander/.gvm/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.gvm/bin:/Users/alexander/mygo/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/alexander/.gvm/gos/go1.20/bin:/usr/local/opt/ruby/bin:/Users/alexander/Library/pnpm:/Users/alexander/.yarn/bin:/Users/alexander/.config/yarn/global/node_modules/.bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/bin:/Users/alexander/.gvm/gos/go1.21.6/bin:/Users/alexander/.gvm/pkgsets/go1.21.6/global/overlay/bin:/Users/alexander/.gvm/bin:/Users/alexander/.nvm/versions/node/v16.10.0/bin:/Users/alexander/.cargo/bin:/usr/local/mysql/bin:/Users/alexander/.gem/ruby/3.2.0/bin",COLORTERM:"truecolor",npm_config_prefix:"/Users/alexander/.nvm/versions/node/v16.10.0",npm_node_execpath:"/Users/alexander/.nvm/versions/node/v16.10.0/bin/node",NODE_ENV:"production"};const q_e=[{key:"0",label:`${Qo.t("postman.request")} 1`,children:ae($_e,{}),closable:!1}];function gYt(){const{t:n}=va(),[e,t]=I.useState(document.documentElement.clientHeight),i=e-CC,r=bZ().env===hL.zh,[o,s]=I.useState(q_e[0].key),[a,l]=I.useState(q_e),u=I.useRef(0),c=Hce(()=>{t(globalThis.document.documentElement.clientHeight)},1200,{leading:!0,trailing:!0});I.useEffect(()=>(globalThis.addEventListener("resize",c),()=>{globalThis.removeEventListener("resize",c)}),[c]);const d=()=>{const m=`${++u.current}`,f=[...a];f.push({key:m,label:`${n("postman.request")} ${u.current+1}`,children:ae($_e,{}),closable:!0}),l(f),s(m)},h=m=>{let f=o,b=-1;a.forEach((v,w)=>{v.key===m&&(b=w-1)});const C=a.filter(v=>v.key!==m);C.length&&f===m&&(b>=0?f=C[b].key:f=C[0].key),l(C),s(f)},g=(m,f)=>{f==="add"?d():h(m)};return Rt("div",{children:[ae(tYt,{}),Rt("div",{css:[{height:i,overflow:"auto",padding:12,backgroundColor:Qt.color.bgGray,borderRadius:"10px 10px 0",boxSizing:"border-box"},r?{paddingBottom:0}:{},NG.NODE_ENV==="production"?"":";label:Postman;",NG.NODE_ENV==="production"?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvcG9zdG1hbi9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUdRIiwiZmlsZSI6Ii9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvcG9zdG1hbi9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJzIH0gZnJvbSBcImFudGRcIjtcbmltcG9ydCB7IHRocm90dGxlIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgeyBQb3N0bWFuSGVhZCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2hlYWQvUG9zdG1hbkhlYWRcIjtcbmltcG9ydCB7IElDUFJlZ2lzdHJhdGlvbiB9IGZyb20gXCIuLi9jb21wb25lbnRzL2ljcC1yZWdpc3RyYXRpb25cIjtcbmltcG9ydCB7IEVudiB9IGZyb20gXCIuLi9jb25maWdcIjtcbmltcG9ydCB7IGdldENvbmZpZyB9IGZyb20gXCIuLi9jb3JlL2h0dHAvY29uZmlnXCI7XG5pbXBvcnQgeyBkc2MgfSBmcm9tIFwiLi4vY29yZS9zdHlsZS9kZWZhdWx0U3R5bGVDb25maWdcIjtcbmltcG9ydCBpMThuIGZyb20gXCIuLi9pMThuXCI7XG5pbXBvcnQgeyBkZWZhdWx0TWVudVRpdGxlSGVpZ2h0IH0gZnJvbSBcIi4uL21haW5cIjtcbmltcG9ydCB7IFJlcXVlc3RCdWlsZGVyIH0gZnJvbSBcIi4vUmVxdWVzdEJ1aWxkZXJcIjtcblxudHlwZSBUYXJnZXRLZXkgPSBSZWFjdC5Nb3VzZUV2ZW50IHwgUmVhY3QuS2V5Ym9hcmRFdmVudCB8IHN0cmluZztcblxuY29uc3QgaW5pdGlhbEl0ZW1zID0gW1xuICB7XG4gICAga2V5OiBcIjBcIixcbiAgICBsYWJlbDogYCR7aTE4bi50KFwicG9zdG1hbi5yZXF1ZXN0XCIpfSAxYCxcbiAgICBjaGlsZHJlbjogPFJlcXVlc3RCdWlsZGVyIC8+LFxuICAgIGNsb3NhYmxlOiBmYWxzZSxcbiAgfSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFBvc3RtYW4oKSB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgY29uc3QgW21lbnVIZWlnaHQsIHNldE1lbnVIZWlnaHRdID0gdXNlU3RhdGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCk7XG4gIGNvbnN0IGRlZmF1bHRDb250ZW50SGVpZ2h0ID0gbWVudUhlaWdodCAtIGRlZmF1bHRNZW51VGl0bGVIZWlnaHQ7XG4gIGNvbnN0IGlzWmggPSBnZXRDb25maWcoKS5lbnYgPT09IEVudi56aDtcbiAgY29uc3QgW2FjdGl2ZUtleSwgc2V0QWN0aXZlS2V5XSA9IHVzZVN0YXRlKGluaXRpYWxJdGVtc1swXS5rZXkpO1xuICBjb25zdCBbaXRlbXMsIHNldEl0ZW1zXSA9IHVzZVN0YXRlKGluaXRpYWxJdGVtcyk7XG4gIGNvbnN0IG5ld1RhYkluZGV4ID0gdXNlUmVmKDApO1xuXG4gIGNvbnN0IHRocm90dGxlZFJlc2l6ZUhhbmRsZXIgPSB0aHJvdHRsZShcbiAgICAoKSA9PiB7XG4gICAgICBzZXRNZW51SGVpZ2h0KGdsb2JhbFRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCk7XG4gICAgfSxcbiAgICAxMjAwLFxuICAgIHsgbGVhZGluZzogdHJ1ZSwgdHJhaWxpbmc6IHRydWUgfSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGdsb2JhbFRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB0aHJvdHRsZWRSZXNpemVIYW5kbGVyKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBnbG9iYWxUaGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhyb3R0bGVkUmVzaXplSGFuZGxlcik7XG4gICAgfTtcbiAgfSwgW3Rocm90dGxlZFJlc2l6ZUhhbmRsZXJdKTtcblxuICBjb25zdCBhZGQgPSAoKSA9PiB7XG4gICAgY29uc3QgbmV3QWN0aXZlS2V5ID0gYCR7KytuZXdUYWJJbmRleC5jdXJyZW50fWA7XG4gICAgY29uc3QgbmV3UGFuZXMgPSBbLi4uaXRlbXNdO1xuICAgIG5ld1BhbmVzLnB1c2goe1xuICAgICAga2V5OiBuZXdBY3RpdmVLZXksXG4gICAgICBsYWJlbDogYCR7dChcInBvc3RtYW4ucmVxdWVzdFwiKX0gJHtuZXdUYWJJbmRleC5jdXJyZW50ICsgMX1gLFxuICAgICAgY2hpbGRyZW46IDxSZXF1ZXN0QnVpbGRlciAvPixcbiAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgIH0pO1xuICAgIHNldEl0ZW1zKG5ld1BhbmVzKTtcbiAgICBzZXRBY3RpdmVLZXkobmV3QWN0aXZlS2V5KTtcbiAgfTtcblxuICBjb25zdCByZW1vdmUgPSAodGFyZ2V0S2V5OiBUYXJnZXRLZXkpID0+IHtcbiAgICBsZXQgbmV3QWN0aXZlS2V5ID0gYWN0aXZlS2V5O1xuICAgIGxldCBsYXN0SW5kZXggPSAtMTtcblxuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0sIGkpID0+IHtcbiAgICAgIGlmIChpdGVtLmtleSA9PT0gdGFyZ2V0S2V5KSB7XG4gICAgICAgIGxhc3RJbmRleCA9IGkgLSAxO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG5ld1BhbmVzID0gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmtleSAhPT0gdGFyZ2V0S2V5KTtcblxuICAgIGlmIChuZXdQYW5lcy5sZW5ndGggJiYgbmV3QWN0aXZlS2V5ID09PSB0YXJnZXRLZXkpIHtcbiAgICAgIGlmIChsYXN0SW5kZXggPj0gMCkge1xuICAgICAgICBuZXdBY3RpdmVLZXkgPSBuZXdQYW5lc1tsYXN0SW5kZXhdLmtleTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld0FjdGl2ZUtleSA9IG5ld1BhbmVzWzBdLmtleTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRJdGVtcyhuZXdQYW5lcyk7XG4gICAgc2V0QWN0aXZlS2V5KG5ld0FjdGl2ZUtleSk7XG4gIH07XG5cbiAgY29uc3Qgb25FZGl0ID0gKHRhcmdldEtleTogVGFyZ2V0S2V5LCBhY3Rpb246IFwiYWRkXCIgfCBcInJlbW92ZVwiKSA9PiB7XG4gICAgaWYgKGFjdGlvbiA9PT0gXCJhZGRcIikge1xuICAgICAgYWRkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbW92ZSh0YXJnZXRLZXkpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8UG9zdG1hbkhlYWQgLz5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaGVpZ2h0OiBkZWZhdWx0Q29udGVudEhlaWdodCxcbiAgICAgICAgICAgIG92ZXJmbG93OiBcImF1dG9cIixcbiAgICAgICAgICAgIHBhZGRpbmc6IDEyLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBkc2MuY29sb3IuYmdHcmF5LFxuICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjEwcHggMTBweCAwXCIsXG4gICAgICAgICAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaXNaaCA/IHsgcGFkZGluZ0JvdHRvbTogMCB9IDoge30sXG4gICAgICAgIF19XG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e1tcbiAgICAgICAgICAgIHsgYmFja2dyb3VuZENvbG9yOiBkc2MuY29sb3IuYmcsIHBhZGRpbmc6IDEwLCBib3JkZXJSYWRpdXM6IDggfSxcbiAgICAgICAgICAgIGlzWmggPyB7IG1pbkhlaWdodDogZGVmYXVsdENvbnRlbnRIZWlnaHQgLSAzMiAtIDEyIH0gOiB7fSxcbiAgICAgICAgICBdfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxUYWJzXG4gICAgICAgICAgICAgIHR5cGU9XCJlZGl0YWJsZS1jYXJkXCJcbiAgICAgICAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICAgICAgICBhY3RpdmVLZXk9e2FjdGl2ZUtleX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhuZXdBY3RpdmVLZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHNldEFjdGl2ZUtleShuZXdBY3RpdmVLZXkpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBvbkVkaXQ9e29uRWRpdH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7aXNaaCAmJiA8SUNQUmVnaXN0cmF0aW9uIC8+fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXX0= */"],children:[ae("div",{css:[{backgroundColor:Qt.color.bg,padding:10,borderRadius:8},r?{minHeight:i-32-12}:{},NG.NODE_ENV==="production"?"":";label:Postman;",NG.NODE_ENV==="production"?"":"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvcG9zdG1hbi9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEdVIiwiZmlsZSI6Ii9Vc2Vycy9hbGV4YW5kZXIvbXktY29kZS9naXRodWIvb3BlbmFwaS11aS9zcmMvcG9zdG1hbi9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUYWJzIH0gZnJvbSBcImFudGRcIjtcbmltcG9ydCB7IHRocm90dGxlIH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gXCJyZWFjdC1pMThuZXh0XCI7XG5pbXBvcnQgeyBQb3N0bWFuSGVhZCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2hlYWQvUG9zdG1hbkhlYWRcIjtcbmltcG9ydCB7IElDUFJlZ2lzdHJhdGlvbiB9IGZyb20gXCIuLi9jb21wb25lbnRzL2ljcC1yZWdpc3RyYXRpb25cIjtcbmltcG9ydCB7IEVudiB9IGZyb20gXCIuLi9jb25maWdcIjtcbmltcG9ydCB7IGdldENvbmZpZyB9IGZyb20gXCIuLi9jb3JlL2h0dHAvY29uZmlnXCI7XG5pbXBvcnQgeyBkc2MgfSBmcm9tIFwiLi4vY29yZS9zdHlsZS9kZWZhdWx0U3R5bGVDb25maWdcIjtcbmltcG9ydCBpMThuIGZyb20gXCIuLi9pMThuXCI7XG5pbXBvcnQgeyBkZWZhdWx0TWVudVRpdGxlSGVpZ2h0IH0gZnJvbSBcIi4uL21haW5cIjtcbmltcG9ydCB7IFJlcXVlc3RCdWlsZGVyIH0gZnJvbSBcIi4vUmVxdWVzdEJ1aWxkZXJcIjtcblxudHlwZSBUYXJnZXRLZXkgPSBSZWFjdC5Nb3VzZUV2ZW50IHwgUmVhY3QuS2V5Ym9hcmRFdmVudCB8IHN0cmluZztcblxuY29uc3QgaW5pdGlhbEl0ZW1zID0gW1xuICB7XG4gICAga2V5OiBcIjBcIixcbiAgICBsYWJlbDogYCR7aTE4bi50KFwicG9zdG1hbi5yZXF1ZXN0XCIpfSAxYCxcbiAgICBjaGlsZHJlbjogPFJlcXVlc3RCdWlsZGVyIC8+LFxuICAgIGNsb3NhYmxlOiBmYWxzZSxcbiAgfSxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFBvc3RtYW4oKSB7XG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKTtcbiAgY29uc3QgW21lbnVIZWlnaHQsIHNldE1lbnVIZWlnaHRdID0gdXNlU3RhdGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCk7XG4gIGNvbnN0IGRlZmF1bHRDb250ZW50SGVpZ2h0ID0gbWVudUhlaWdodCAtIGRlZmF1bHRNZW51VGl0bGVIZWlnaHQ7XG4gIGNvbnN0IGlzWmggPSBnZXRDb25maWcoKS5lbnYgPT09IEVudi56aDtcbiAgY29uc3QgW2FjdGl2ZUtleSwgc2V0QWN0aXZlS2V5XSA9IHVzZVN0YXRlKGluaXRpYWxJdGVtc1swXS5rZXkpO1xuICBjb25zdCBbaXRlbXMsIHNldEl0ZW1zXSA9IHVzZVN0YXRlKGluaXRpYWxJdGVtcyk7XG4gIGNvbnN0IG5ld1RhYkluZGV4ID0gdXNlUmVmKDApO1xuXG4gIGNvbnN0IHRocm90dGxlZFJlc2l6ZUhhbmRsZXIgPSB0aHJvdHRsZShcbiAgICAoKSA9PiB7XG4gICAgICBzZXRNZW51SGVpZ2h0KGdsb2JhbFRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCk7XG4gICAgfSxcbiAgICAxMjAwLFxuICAgIHsgbGVhZGluZzogdHJ1ZSwgdHJhaWxpbmc6IHRydWUgfSxcbiAgKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGdsb2JhbFRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcInJlc2l6ZVwiLCB0aHJvdHRsZWRSZXNpemVIYW5kbGVyKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBnbG9iYWxUaGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJyZXNpemVcIiwgdGhyb3R0bGVkUmVzaXplSGFuZGxlcik7XG4gICAgfTtcbiAgfSwgW3Rocm90dGxlZFJlc2l6ZUhhbmRsZXJdKTtcblxuICBjb25zdCBhZGQgPSAoKSA9PiB7XG4gICAgY29uc3QgbmV3QWN0aXZlS2V5ID0gYCR7KytuZXdUYWJJbmRleC5jdXJyZW50fWA7XG4gICAgY29uc3QgbmV3UGFuZXMgPSBbLi4uaXRlbXNdO1xuICAgIG5ld1BhbmVzLnB1c2goe1xuICAgICAga2V5OiBuZXdBY3RpdmVLZXksXG4gICAgICBsYWJlbDogYCR7dChcInBvc3RtYW4ucmVxdWVzdFwiKX0gJHtuZXdUYWJJbmRleC5jdXJyZW50ICsgMX1gLFxuICAgICAgY2hpbGRyZW46IDxSZXF1ZXN0QnVpbGRlciAvPixcbiAgICAgIGNsb3NhYmxlOiB0cnVlLFxuICAgIH0pO1xuICAgIHNldEl0ZW1zKG5ld1BhbmVzKTtcbiAgICBzZXRBY3RpdmVLZXkobmV3QWN0aXZlS2V5KTtcbiAgfTtcblxuICBjb25zdCByZW1vdmUgPSAodGFyZ2V0S2V5OiBUYXJnZXRLZXkpID0+IHtcbiAgICBsZXQgbmV3QWN0aXZlS2V5ID0gYWN0aXZlS2V5O1xuICAgIGxldCBsYXN0SW5kZXggPSAtMTtcblxuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0sIGkpID0+IHtcbiAgICAgIGlmIChpdGVtLmtleSA9PT0gdGFyZ2V0S2V5KSB7XG4gICAgICAgIGxhc3RJbmRleCA9IGkgLSAxO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG5ld1BhbmVzID0gaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmtleSAhPT0gdGFyZ2V0S2V5KTtcblxuICAgIGlmIChuZXdQYW5lcy5sZW5ndGggJiYgbmV3QWN0aXZlS2V5ID09PSB0YXJnZXRLZXkpIHtcbiAgICAgIGlmIChsYXN0SW5kZXggPj0gMCkge1xuICAgICAgICBuZXdBY3RpdmVLZXkgPSBuZXdQYW5lc1tsYXN0SW5kZXhdLmtleTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld0FjdGl2ZUtleSA9IG5ld1BhbmVzWzBdLmtleTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRJdGVtcyhuZXdQYW5lcyk7XG4gICAgc2V0QWN0aXZlS2V5KG5ld0FjdGl2ZUtleSk7XG4gIH07XG5cbiAgY29uc3Qgb25FZGl0ID0gKHRhcmdldEtleTogVGFyZ2V0S2V5LCBhY3Rpb246IFwiYWRkXCIgfCBcInJlbW92ZVwiKSA9PiB7XG4gICAgaWYgKGFjdGlvbiA9PT0gXCJhZGRcIikge1xuICAgICAgYWRkKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbW92ZSh0YXJnZXRLZXkpO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8UG9zdG1hbkhlYWQgLz5cbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaGVpZ2h0OiBkZWZhdWx0Q29udGVudEhlaWdodCxcbiAgICAgICAgICAgIG92ZXJmbG93OiBcImF1dG9cIixcbiAgICAgICAgICAgIHBhZGRpbmc6IDEyLFxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBkc2MuY29sb3IuYmdHcmF5LFxuICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjEwcHggMTBweCAwXCIsXG4gICAgICAgICAgICBib3hTaXppbmc6IFwiYm9yZGVyLWJveFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgaXNaaCA/IHsgcGFkZGluZ0JvdHRvbTogMCB9IDoge30sXG4gICAgICAgIF19XG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjc3M9e1tcbiAgICAgICAgICAgIHsgYmFja2dyb3VuZENvbG9yOiBkc2MuY29sb3IuYmcsIHBhZGRpbmc6IDEwLCBib3JkZXJSYWRpdXM6IDggfSxcbiAgICAgICAgICAgIGlzWmggPyB7IG1pbkhlaWdodDogZGVmYXVsdENvbnRlbnRIZWlnaHQgLSAzMiAtIDEyIH0gOiB7fSxcbiAgICAgICAgICBdfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxUYWJzXG4gICAgICAgICAgICAgIHR5cGU9XCJlZGl0YWJsZS1jYXJkXCJcbiAgICAgICAgICAgICAgaXRlbXM9e2l0ZW1zfVxuICAgICAgICAgICAgICBhY3RpdmVLZXk9e2FjdGl2ZUtleX1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9eyhuZXdBY3RpdmVLZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgIHNldEFjdGl2ZUtleShuZXdBY3RpdmVLZXkpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBvbkVkaXQ9e29uRWRpdH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7aXNaaCAmJiA8SUNQUmVnaXN0cmF0aW9uIC8+fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXX0= */"],children:ae("div",{children:ae(Oae,{type:"editable-card",items:a,activeKey:o,onChange:m=>{s(m)},onEdit:g})})}),r&&ae(qB,{})]})]})}const mYt=Object.freeze(Object.defineProperty({__proto__:null,default:gYt},Symbol.toStringTag,{value:"Module"}));/*!----------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Version: 0.47.0(69991d66135e4a1fc1cf0b1ac4ad25d429866a0d) + * Released under the MIT license + * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt + *-----------------------------------------------------------------------------*/var fYt=Object.defineProperty,pYt=Object.getOwnPropertyDescriptor,bYt=Object.getOwnPropertyNames,CYt=Object.prototype.hasOwnProperty,eDe=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of bYt(e))!CYt.call(n,r)&&r!==t&&fYt(n,r,{get:()=>e[r],enumerable:!(i=pYt(e,r))||i.enumerable});return n},vYt=(n,e,t)=>(eDe(n,e,"default"),t&&eDe(t,e,"default")),Zi={};vYt(Zi,l_e);var yYt=2*60*1e3,tDe=class{constructor(n){this._defaults=n,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>yYt&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=Zi.editor.createWebWorker({moduleId:"vs/language/json/jsonWorker",label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...n){let e;return this._getClient().then(t=>{e=t}).then(t=>{if(this._worker)return this._worker.withSyncedResources(n)}).then(t=>e)}},nDe;(function(n){n.MIN_VALUE=-2147483648,n.MAX_VALUE=2147483647})(nDe||(nDe={}));var kG;(function(n){n.MIN_VALUE=0,n.MAX_VALUE=2147483647})(kG||(kG={}));var Mm;(function(n){function e(i,r){return i===Number.MAX_VALUE&&(i=kG.MAX_VALUE),r===Number.MAX_VALUE&&(r=kG.MAX_VALUE),{line:i,character:r}}n.create=e;function t(i){var r=i;return bt.objectLiteral(r)&&bt.uinteger(r.line)&&bt.uinteger(r.character)}n.is=t})(Mm||(Mm={}));var hl;(function(n){function e(i,r,o,s){if(bt.uinteger(i)&&bt.uinteger(r)&&bt.uinteger(o)&&bt.uinteger(s))return{start:Mm.create(i,r),end:Mm.create(o,s)};if(Mm.is(i)&&Mm.is(r))return{start:i,end:r};throw new Error("Range#create called with invalid arguments["+i+", "+r+", "+o+", "+s+"]")}n.create=e;function t(i){var r=i;return bt.objectLiteral(r)&&Mm.is(r.start)&&Mm.is(r.end)}n.is=t})(hl||(hl={}));var I$;(function(n){function e(i,r){return{uri:i,range:r}}n.create=e;function t(i){var r=i;return bt.defined(r)&&hl.is(r.range)&&(bt.string(r.uri)||bt.undefined(r.uri))}n.is=t})(I$||(I$={}));var iDe;(function(n){function e(i,r,o,s){return{targetUri:i,targetRange:r,targetSelectionRange:o,originSelectionRange:s}}n.create=e;function t(i){var r=i;return bt.defined(r)&&hl.is(r.targetRange)&&bt.string(r.targetUri)&&(hl.is(r.targetSelectionRange)||bt.undefined(r.targetSelectionRange))&&(hl.is(r.originSelectionRange)||bt.undefined(r.originSelectionRange))}n.is=t})(iDe||(iDe={}));var w$;(function(n){function e(i,r,o,s){return{red:i,green:r,blue:o,alpha:s}}n.create=e;function t(i){var r=i;return bt.numberRange(r.red,0,1)&&bt.numberRange(r.green,0,1)&&bt.numberRange(r.blue,0,1)&&bt.numberRange(r.alpha,0,1)}n.is=t})(w$||(w$={}));var rDe;(function(n){function e(i,r){return{range:i,color:r}}n.create=e;function t(i){var r=i;return hl.is(r.range)&&w$.is(r.color)}n.is=t})(rDe||(rDe={}));var oDe;(function(n){function e(i,r,o){return{label:i,textEdit:r,additionalTextEdits:o}}n.create=e;function t(i){var r=i;return bt.string(r.label)&&(bt.undefined(r.textEdit)||l1.is(r))&&(bt.undefined(r.additionalTextEdits)||bt.typedArray(r.additionalTextEdits,l1.is))}n.is=t})(oDe||(oDe={}));var wN;(function(n){n.Comment="comment",n.Imports="imports",n.Region="region"})(wN||(wN={}));var sDe;(function(n){function e(i,r,o,s,a){var l={startLine:i,endLine:r};return bt.defined(o)&&(l.startCharacter=o),bt.defined(s)&&(l.endCharacter=s),bt.defined(a)&&(l.kind=a),l}n.create=e;function t(i){var r=i;return bt.uinteger(r.startLine)&&bt.uinteger(r.startLine)&&(bt.undefined(r.startCharacter)||bt.uinteger(r.startCharacter))&&(bt.undefined(r.endCharacter)||bt.uinteger(r.endCharacter))&&(bt.undefined(r.kind)||bt.string(r.kind))}n.is=t})(sDe||(sDe={}));var S$;(function(n){function e(i,r){return{location:i,message:r}}n.create=e;function t(i){var r=i;return bt.defined(r)&&I$.is(r.location)&&bt.string(r.message)}n.is=t})(S$||(S$={}));var DS;(function(n){n.Error=1,n.Warning=2,n.Information=3,n.Hint=4})(DS||(DS={}));var aDe;(function(n){n.Unnecessary=1,n.Deprecated=2})(aDe||(aDe={}));var lDe;(function(n){function e(t){var i=t;return i!=null&&bt.string(i.href)}n.is=e})(lDe||(lDe={}));var MG;(function(n){function e(i,r,o,s,a,l){var u={range:i,message:r};return bt.defined(o)&&(u.severity=o),bt.defined(s)&&(u.code=s),bt.defined(a)&&(u.source=a),bt.defined(l)&&(u.relatedInformation=l),u}n.create=e;function t(i){var r,o=i;return bt.defined(o)&&hl.is(o.range)&&bt.string(o.message)&&(bt.number(o.severity)||bt.undefined(o.severity))&&(bt.integer(o.code)||bt.string(o.code)||bt.undefined(o.code))&&(bt.undefined(o.codeDescription)||bt.string((r=o.codeDescription)===null||r===void 0?void 0:r.href))&&(bt.string(o.source)||bt.undefined(o.source))&&(bt.undefined(o.relatedInformation)||bt.typedArray(o.relatedInformation,S$.is))}n.is=t})(MG||(MG={}));var SN;(function(n){function e(i,r){for(var o=[],s=2;s0&&(a.arguments=o),a}n.create=e;function t(i){var r=i;return bt.defined(r)&&bt.string(r.title)&&bt.string(r.command)}n.is=t})(SN||(SN={}));var l1;(function(n){function e(o,s){return{range:o,newText:s}}n.replace=e;function t(o,s){return{range:{start:o,end:o},newText:s}}n.insert=t;function i(o){return{range:o,newText:""}}n.del=i;function r(o){var s=o;return bt.objectLiteral(s)&&bt.string(s.newText)&&hl.is(s.range)}n.is=r})(l1||(l1={}));var AS;(function(n){function e(i,r,o){var s={label:i};return r!==void 0&&(s.needsConfirmation=r),o!==void 0&&(s.description=o),s}n.create=e;function t(i){var r=i;return r!==void 0&&bt.objectLiteral(r)&&bt.string(r.label)&&(bt.boolean(r.needsConfirmation)||r.needsConfirmation===void 0)&&(bt.string(r.description)||r.description===void 0)}n.is=t})(AS||(AS={}));var Ol;(function(n){function e(t){var i=t;return typeof i=="string"}n.is=e})(Ol||(Ol={}));var u1;(function(n){function e(o,s,a){return{range:o,newText:s,annotationId:a}}n.replace=e;function t(o,s,a){return{range:{start:o,end:o},newText:s,annotationId:a}}n.insert=t;function i(o,s){return{range:o,newText:"",annotationId:s}}n.del=i;function r(o){var s=o;return l1.is(s)&&(AS.is(s.annotationId)||Ol.is(s.annotationId))}n.is=r})(u1||(u1={}));var ZG;(function(n){function e(i,r){return{textDocument:i,edits:r}}n.create=e;function t(i){var r=i;return bt.defined(r)&&EG.is(r.textDocument)&&Array.isArray(r.edits)}n.is=t})(ZG||(ZG={}));var xN;(function(n){function e(i,r,o){var s={kind:"create",uri:i};return r!==void 0&&(r.overwrite!==void 0||r.ignoreIfExists!==void 0)&&(s.options=r),o!==void 0&&(s.annotationId=o),s}n.create=e;function t(i){var r=i;return r&&r.kind==="create"&&bt.string(r.uri)&&(r.options===void 0||(r.options.overwrite===void 0||bt.boolean(r.options.overwrite))&&(r.options.ignoreIfExists===void 0||bt.boolean(r.options.ignoreIfExists)))&&(r.annotationId===void 0||Ol.is(r.annotationId))}n.is=t})(xN||(xN={}));var LN;(function(n){function e(i,r,o,s){var a={kind:"rename",oldUri:i,newUri:r};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(a.options=o),s!==void 0&&(a.annotationId=s),a}n.create=e;function t(i){var r=i;return r&&r.kind==="rename"&&bt.string(r.oldUri)&&bt.string(r.newUri)&&(r.options===void 0||(r.options.overwrite===void 0||bt.boolean(r.options.overwrite))&&(r.options.ignoreIfExists===void 0||bt.boolean(r.options.ignoreIfExists)))&&(r.annotationId===void 0||Ol.is(r.annotationId))}n.is=t})(LN||(LN={}));var FN;(function(n){function e(i,r,o){var s={kind:"delete",uri:i};return r!==void 0&&(r.recursive!==void 0||r.ignoreIfNotExists!==void 0)&&(s.options=r),o!==void 0&&(s.annotationId=o),s}n.create=e;function t(i){var r=i;return r&&r.kind==="delete"&&bt.string(r.uri)&&(r.options===void 0||(r.options.recursive===void 0||bt.boolean(r.options.recursive))&&(r.options.ignoreIfNotExists===void 0||bt.boolean(r.options.ignoreIfNotExists)))&&(r.annotationId===void 0||Ol.is(r.annotationId))}n.is=t})(FN||(FN={}));var x$;(function(n){function e(t){var i=t;return i&&(i.changes!==void 0||i.documentChanges!==void 0)&&(i.documentChanges===void 0||i.documentChanges.every(function(r){return bt.string(r.kind)?xN.is(r)||LN.is(r)||FN.is(r):ZG.is(r)}))}n.is=e})(x$||(x$={}));var TG=function(){function n(e,t){this.edits=e,this.changeAnnotations=t}return n.prototype.insert=function(e,t,i){var r,o;if(i===void 0?r=l1.insert(e,t):Ol.is(i)?(o=i,r=u1.insert(e,t,i)):(this.assertChangeAnnotations(this.changeAnnotations),o=this.changeAnnotations.manage(i),r=u1.insert(e,t,o)),this.edits.push(r),o!==void 0)return o},n.prototype.replace=function(e,t,i){var r,o;if(i===void 0?r=l1.replace(e,t):Ol.is(i)?(o=i,r=u1.replace(e,t,i)):(this.assertChangeAnnotations(this.changeAnnotations),o=this.changeAnnotations.manage(i),r=u1.replace(e,t,o)),this.edits.push(r),o!==void 0)return o},n.prototype.delete=function(e,t){var i,r;if(t===void 0?i=l1.del(e):Ol.is(t)?(r=t,i=u1.del(e,t)):(this.assertChangeAnnotations(this.changeAnnotations),r=this.changeAnnotations.manage(t),i=u1.del(e,r)),this.edits.push(i),r!==void 0)return r},n.prototype.add=function(e){this.edits.push(e)},n.prototype.all=function(){return this.edits},n.prototype.clear=function(){this.edits.splice(0,this.edits.length)},n.prototype.assertChangeAnnotations=function(e){if(e===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},n}(),uDe=function(){function n(e){this._annotations=e===void 0?Object.create(null):e,this._counter=0,this._size=0}return n.prototype.all=function(){return this._annotations},Object.defineProperty(n.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),n.prototype.manage=function(e,t){var i;if(Ol.is(e)?i=e:(i=this.nextId(),t=e),this._annotations[i]!==void 0)throw new Error("Id "+i+" is already in use.");if(t===void 0)throw new Error("No annotation provided for id "+i);return this._annotations[i]=t,this._size++,i},n.prototype.nextId=function(){return this._counter++,this._counter.toString()},n}();(function(){function n(e){var t=this;this._textEditChanges=Object.create(null),e!==void 0?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new uDe(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach(function(i){if(ZG.is(i)){var r=new TG(i.edits,t._changeAnnotations);t._textEditChanges[i.textDocument.uri]=r}})):e.changes&&Object.keys(e.changes).forEach(function(i){var r=new TG(e.changes[i]);t._textEditChanges[i]=r})):this._workspaceEdit={}}return Object.defineProperty(n.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),n.prototype.getTextEditChange=function(e){if(EG.is(e)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var t={uri:e.uri,version:e.version},i=this._textEditChanges[t.uri];if(!i){var r=[],o={textDocument:t,edits:r};this._workspaceEdit.documentChanges.push(o),i=new TG(r,this._changeAnnotations),this._textEditChanges[t.uri]=i}return i}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var i=this._textEditChanges[e];if(!i){var r=[];this._workspaceEdit.changes[e]=r,i=new TG(r),this._textEditChanges[e]=i}return i}},n.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new uDe,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},n.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},n.prototype.createFile=function(e,t,i){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var r;AS.is(t)||Ol.is(t)?r=t:i=t;var o,s;if(r===void 0?o=xN.create(e,i):(s=Ol.is(r)?r:this._changeAnnotations.manage(r),o=xN.create(e,i,s)),this._workspaceEdit.documentChanges.push(o),s!==void 0)return s},n.prototype.renameFile=function(e,t,i,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var o;AS.is(i)||Ol.is(i)?o=i:r=i;var s,a;if(o===void 0?s=LN.create(e,t,r):(a=Ol.is(o)?o:this._changeAnnotations.manage(o),s=LN.create(e,t,r,a)),this._workspaceEdit.documentChanges.push(s),a!==void 0)return a},n.prototype.deleteFile=function(e,t,i){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var r;AS.is(t)||Ol.is(t)?r=t:i=t;var o,s;if(r===void 0?o=FN.create(e,i):(s=Ol.is(r)?r:this._changeAnnotations.manage(r),o=FN.create(e,i,s)),this._workspaceEdit.documentChanges.push(o),s!==void 0)return s},n})();var cDe;(function(n){function e(i){return{uri:i}}n.create=e;function t(i){var r=i;return bt.defined(r)&&bt.string(r.uri)}n.is=t})(cDe||(cDe={}));var dDe;(function(n){function e(i,r){return{uri:i,version:r}}n.create=e;function t(i){var r=i;return bt.defined(r)&&bt.string(r.uri)&&bt.integer(r.version)}n.is=t})(dDe||(dDe={}));var EG;(function(n){function e(i,r){return{uri:i,version:r}}n.create=e;function t(i){var r=i;return bt.defined(r)&&bt.string(r.uri)&&(r.version===null||bt.integer(r.version))}n.is=t})(EG||(EG={}));var hDe;(function(n){function e(i,r,o,s){return{uri:i,languageId:r,version:o,text:s}}n.create=e;function t(i){var r=i;return bt.defined(r)&&bt.string(r.uri)&&bt.string(r.languageId)&&bt.integer(r.version)&&bt.string(r.text)}n.is=t})(hDe||(hDe={}));var _N;(function(n){n.PlainText="plaintext",n.Markdown="markdown"})(_N||(_N={})),function(n){function e(t){var i=t;return i===n.PlainText||i===n.Markdown}n.is=e}(_N||(_N={}));var L$;(function(n){function e(t){var i=t;return bt.objectLiteral(t)&&_N.is(i.kind)&&bt.string(i.value)}n.is=e})(L$||(L$={}));var ea;(function(n){n.Text=1,n.Method=2,n.Function=3,n.Constructor=4,n.Field=5,n.Variable=6,n.Class=7,n.Interface=8,n.Module=9,n.Property=10,n.Unit=11,n.Value=12,n.Enum=13,n.Keyword=14,n.Snippet=15,n.Color=16,n.File=17,n.Reference=18,n.Folder=19,n.EnumMember=20,n.Constant=21,n.Struct=22,n.Event=23,n.Operator=24,n.TypeParameter=25})(ea||(ea={}));var F$;(function(n){n.PlainText=1,n.Snippet=2})(F$||(F$={}));var gDe;(function(n){n.Deprecated=1})(gDe||(gDe={}));var mDe;(function(n){function e(i,r,o){return{newText:i,insert:r,replace:o}}n.create=e;function t(i){var r=i;return r&&bt.string(r.newText)&&hl.is(r.insert)&&hl.is(r.replace)}n.is=t})(mDe||(mDe={}));var fDe;(function(n){n.asIs=1,n.adjustIndentation=2})(fDe||(fDe={}));var pDe;(function(n){function e(t){return{label:t}}n.create=e})(pDe||(pDe={}));var bDe;(function(n){function e(t,i){return{items:t||[],isIncomplete:!!i}}n.create=e})(bDe||(bDe={}));var WG;(function(n){function e(i){return i.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}n.fromPlainText=e;function t(i){var r=i;return bt.string(r)||bt.objectLiteral(r)&&bt.string(r.language)&&bt.string(r.value)}n.is=t})(WG||(WG={}));var CDe;(function(n){function e(t){var i=t;return!!i&&bt.objectLiteral(i)&&(L$.is(i.contents)||WG.is(i.contents)||bt.typedArray(i.contents,WG.is))&&(t.range===void 0||hl.is(t.range))}n.is=e})(CDe||(CDe={}));var vDe;(function(n){function e(t,i){return i?{label:t,documentation:i}:{label:t}}n.create=e})(vDe||(vDe={}));var yDe;(function(n){function e(t,i){for(var r=[],o=2;o=0;c--){var d=l[c],h=o.offsetAt(d.range.start),g=o.offsetAt(d.range.end);if(g<=u)a=a.substring(0,h)+d.newText+a.substring(g,a.length);else throw new Error("Overlapping edit");u=h}return a}n.applyEdits=i;function r(o,s){if(o.length<=1)return o;var a=o.length/2|0,l=o.slice(0,a),u=o.slice(a);r(l,s),r(u,s);for(var c=0,d=0,h=0;c0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},n.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),i=0,r=t.length;if(r===0)return Mm.create(0,e);for(;ie?r=o:i=o+1}var s=i-1;return Mm.create(s,e-t[s])},n.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var i=t[e.line],r=e.line+1"u"}n.undefined=i;function r(g){return g===!0||g===!1}n.boolean=r;function o(g){return e.call(g)==="[object String]"}n.string=o;function s(g){return e.call(g)==="[object Number]"}n.number=s;function a(g,m,f){return e.call(g)==="[object Number]"&&m<=g&&g<=f}n.numberRange=a;function l(g){return e.call(g)==="[object Number]"&&-2147483648<=g&&g<=2147483647}n.integer=l;function u(g){return e.call(g)==="[object Number]"&&0<=g&&g<=2147483647}n.uinteger=u;function c(g){return e.call(g)==="[object Function]"}n.func=c;function d(g){return g!==null&&typeof g=="object"}n.objectLiteral=d;function h(g,m){return Array.isArray(g)&&g.every(m)}n.typedArray=h})(bt||(bt={}));var ZDe=class{constructor(n,e,t){this._languageId=n,this._worker=e,this._disposables=[],this._listener=Object.create(null);const i=o=>{let s=o.getLanguageId();if(s!==this._languageId)return;let a;this._listener[o.uri.toString()]=o.onDidChangeContent(()=>{window.clearTimeout(a),a=window.setTimeout(()=>this._doValidate(o.uri,s),500)}),this._doValidate(o.uri,s)},r=o=>{Zi.editor.setModelMarkers(o,this._languageId,[]);let s=o.uri.toString(),a=this._listener[s];a&&(a.dispose(),delete this._listener[s])};this._disposables.push(Zi.editor.onDidCreateModel(i)),this._disposables.push(Zi.editor.onWillDisposeModel(r)),this._disposables.push(Zi.editor.onDidChangeModelLanguage(o=>{r(o.model),i(o.model)})),this._disposables.push(t(o=>{Zi.editor.getModels().forEach(s=>{s.getLanguageId()===this._languageId&&(r(s),i(s))})})),this._disposables.push({dispose:()=>{Zi.editor.getModels().forEach(r);for(let o in this._listener)this._listener[o].dispose()}}),Zi.editor.getModels().forEach(i)}dispose(){this._disposables.forEach(n=>n&&n.dispose()),this._disposables.length=0}_doValidate(n,e){this._worker(n).then(t=>t.doValidation(n.toString())).then(t=>{const i=t.map(o=>SYt(n,o));let r=Zi.editor.getModel(n);r&&r.getLanguageId()===e&&Zi.editor.setModelMarkers(r,e,i)}).then(void 0,t=>{})}};function wYt(n){switch(n){case DS.Error:return Zi.MarkerSeverity.Error;case DS.Warning:return Zi.MarkerSeverity.Warning;case DS.Information:return Zi.MarkerSeverity.Info;case DS.Hint:return Zi.MarkerSeverity.Hint;default:return Zi.MarkerSeverity.Info}}function SYt(n,e){let t=typeof e.code=="number"?String(e.code):e.code;return{severity:wYt(e.severity),startLineNumber:e.range.start.line+1,startColumn:e.range.start.character+1,endLineNumber:e.range.end.line+1,endColumn:e.range.end.character+1,message:e.message,code:t,source:e.source}}var TDe=class{constructor(n,e){this._worker=n,this._triggerCharacters=e}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(n,e,t,i){const r=n.uri;return this._worker(r).then(o=>o.doComplete(r.toString(),c1(e))).then(o=>{if(!o)return;const s=n.getWordUntilPosition(e),a=new Zi.Range(e.lineNumber,s.startColumn,e.lineNumber,s.endColumn),l=o.items.map(u=>{const c={label:u.label,insertText:u.insertText||u.label,sortText:u.sortText,filterText:u.filterText,documentation:u.documentation,detail:u.detail,command:FYt(u.command),range:a,kind:LYt(u.kind)};return u.textEdit&&(xYt(u.textEdit)?c.range={insert:Bl(u.textEdit.insert),replace:Bl(u.textEdit.replace)}:c.range=Bl(u.textEdit.range),c.insertText=u.textEdit.newText),u.additionalTextEdits&&(c.additionalTextEdits=u.additionalTextEdits.map(NS)),u.insertTextFormat===F$.Snippet&&(c.insertTextRules=Zi.languages.CompletionItemInsertTextRule.InsertAsSnippet),c});return{isIncomplete:o.isIncomplete,suggestions:l}})}};function c1(n){if(n)return{character:n.column-1,line:n.lineNumber-1}}function _$(n){if(n)return{start:{line:n.startLineNumber-1,character:n.startColumn-1},end:{line:n.endLineNumber-1,character:n.endColumn-1}}}function Bl(n){if(n)return new Zi.Range(n.start.line+1,n.start.character+1,n.end.line+1,n.end.character+1)}function xYt(n){return typeof n.insert<"u"&&typeof n.replace<"u"}function LYt(n){const e=Zi.languages.CompletionItemKind;switch(n){case ea.Text:return e.Text;case ea.Method:return e.Method;case ea.Function:return e.Function;case ea.Constructor:return e.Constructor;case ea.Field:return e.Field;case ea.Variable:return e.Variable;case ea.Class:return e.Class;case ea.Interface:return e.Interface;case ea.Module:return e.Module;case ea.Property:return e.Property;case ea.Unit:return e.Unit;case ea.Value:return e.Value;case ea.Enum:return e.Enum;case ea.Keyword:return e.Keyword;case ea.Snippet:return e.Snippet;case ea.Color:return e.Color;case ea.File:return e.File;case ea.Reference:return e.Reference}return e.Property}function NS(n){if(n)return{range:Bl(n.range),text:n.newText}}function FYt(n){return n&&n.command==="editor.action.triggerSuggest"?{id:n.command,title:n.title,arguments:n.arguments}:void 0}var EDe=class{constructor(n){this._worker=n}provideHover(n,e,t){let i=n.uri;return this._worker(i).then(r=>r.doHover(i.toString(),c1(e))).then(r=>{if(r)return{range:Bl(r.range),contents:DYt(r.contents)}})}};function _Yt(n){return n&&typeof n=="object"&&typeof n.kind=="string"}function WDe(n){return typeof n=="string"?{value:n}:_Yt(n)?n.kind==="plaintext"?{value:n.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:n.value}:{value:"```"+n.language+` +`+n.value+"\n```\n"}}function DYt(n){if(n)return Array.isArray(n)?n.map(WDe):[WDe(n)]}var AYt=class{constructor(n){this._worker=n}provideDocumentHighlights(n,e,t){const i=n.uri;return this._worker(i).then(r=>r.findDocumentHighlights(i.toString(),c1(e))).then(r=>{if(r)return r.map(o=>({range:Bl(o.range),kind:NYt(o.kind)}))})}};function NYt(n){switch(n){case DN.Read:return Zi.languages.DocumentHighlightKind.Read;case DN.Write:return Zi.languages.DocumentHighlightKind.Write;case DN.Text:return Zi.languages.DocumentHighlightKind.Text}return Zi.languages.DocumentHighlightKind.Text}var kYt=class{constructor(n){this._worker=n}provideDefinition(n,e,t){const i=n.uri;return this._worker(i).then(r=>r.findDefinition(i.toString(),c1(e))).then(r=>{if(r)return[RDe(r)]})}};function RDe(n){return{uri:Zi.Uri.parse(n.uri),range:Bl(n.range)}}var MYt=class{constructor(n){this._worker=n}provideReferences(n,e,t,i){const r=n.uri;return this._worker(r).then(o=>o.findReferences(r.toString(),c1(e))).then(o=>{if(o)return o.map(RDe)})}},ZYt=class{constructor(n){this._worker=n}provideRenameEdits(n,e,t,i){const r=n.uri;return this._worker(r).then(o=>o.doRename(r.toString(),c1(e),t)).then(o=>TYt(o))}};function TYt(n){if(!n||!n.changes)return;let e=[];for(let t in n.changes){const i=Zi.Uri.parse(t);for(let r of n.changes[t])e.push({resource:i,versionId:void 0,textEdit:{range:Bl(r.range),text:r.newText}})}return{edits:e}}var GDe=class{constructor(n){this._worker=n}provideDocumentSymbols(n,e){const t=n.uri;return this._worker(t).then(i=>i.findDocumentSymbols(t.toString())).then(i=>{if(i)return i.map(r=>EYt(r)?VDe(r):{name:r.name,detail:"",containerName:r.containerName,kind:XDe(r.kind),range:Bl(r.location.range),selectionRange:Bl(r.location.range),tags:[]})})}};function EYt(n){return"children"in n}function VDe(n){return{name:n.name,detail:n.detail??"",kind:XDe(n.kind),range:Bl(n.range),selectionRange:Bl(n.selectionRange),tags:n.tags??[],children:(n.children??[]).map(e=>VDe(e))}}function XDe(n){let e=Zi.languages.SymbolKind;switch(n){case ta.File:return e.File;case ta.Module:return e.Module;case ta.Namespace:return e.Namespace;case ta.Package:return e.Package;case ta.Class:return e.Class;case ta.Method:return e.Method;case ta.Property:return e.Property;case ta.Field:return e.Field;case ta.Constructor:return e.Constructor;case ta.Enum:return e.Enum;case ta.Interface:return e.Interface;case ta.Function:return e.Function;case ta.Variable:return e.Variable;case ta.Constant:return e.Constant;case ta.String:return e.String;case ta.Number:return e.Number;case ta.Boolean:return e.Boolean;case ta.Array:return e.Array}return e.Function}var WYt=class{constructor(n){this._worker=n}provideLinks(n,e){const t=n.uri;return this._worker(t).then(i=>i.findDocumentLinks(t.toString())).then(i=>{if(i)return{links:i.map(r=>({range:Bl(r.range),url:r.target}))}})}},PDe=class{constructor(n){this._worker=n}provideDocumentFormattingEdits(n,e,t){const i=n.uri;return this._worker(i).then(r=>r.format(i.toString(),null,BDe(e)).then(o=>{if(!(!o||o.length===0))return o.map(NS)}))}},ODe=class{constructor(n){this._worker=n,this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(n,e,t,i){const r=n.uri;return this._worker(r).then(o=>o.format(r.toString(),_$(e),BDe(t)).then(s=>{if(!(!s||s.length===0))return s.map(NS)}))}};function BDe(n){return{tabSize:n.tabSize,insertSpaces:n.insertSpaces}}var zDe=class{constructor(n){this._worker=n}provideDocumentColors(n,e){const t=n.uri;return this._worker(t).then(i=>i.findDocumentColors(t.toString())).then(i=>{if(i)return i.map(r=>({color:r.color,range:Bl(r.range)}))})}provideColorPresentations(n,e,t){const i=n.uri;return this._worker(i).then(r=>r.getColorPresentations(i.toString(),e.color,_$(e.range))).then(r=>{if(r)return r.map(o=>{let s={label:o.label};return o.textEdit&&(s.textEdit=NS(o.textEdit)),o.additionalTextEdits&&(s.additionalTextEdits=o.additionalTextEdits.map(NS)),s})})}},YDe=class{constructor(n){this._worker=n}provideFoldingRanges(n,e,t){const i=n.uri;return this._worker(i).then(r=>r.getFoldingRanges(i.toString(),e)).then(r=>{if(r)return r.map(o=>{const s={start:o.startLine+1,end:o.endLine+1};return typeof o.kind<"u"&&(s.kind=RYt(o.kind)),s})})}};function RYt(n){switch(n){case wN.Comment:return Zi.languages.FoldingRangeKind.Comment;case wN.Imports:return Zi.languages.FoldingRangeKind.Imports;case wN.Region:return Zi.languages.FoldingRangeKind.Region}}var HDe=class{constructor(n){this._worker=n}provideSelectionRanges(n,e,t){const i=n.uri;return this._worker(i).then(r=>r.getSelectionRanges(i.toString(),e.map(c1))).then(r=>{if(r)return r.map(o=>{const s=[];for(;o;)s.push({range:Bl(o.range)}),o=o.parent;return s})})}};function GYt(n,e){e===void 0&&(e=!1);var t=n.length,i=0,r="",o=0,s=16,a=0,l=0,u=0,c=0,d=0;function h(w,S){for(var F=0,L=0;F=48&&D<=57)L=L*16+D-48;else if(D>=65&&D<=70)L=L*16+D-65+10;else if(D>=97&&D<=102)L=L*16+D-97+10;else break;i++,F++}return F=t){w+=n.substring(S,i),d=2;break}var F=n.charCodeAt(i);if(F===34){w+=n.substring(S,i),i++;break}if(F===92){if(w+=n.substring(S,i),i++,i>=t){d=2;break}var L=n.charCodeAt(i++);switch(L){case 34:w+='"';break;case 92:w+="\\";break;case 47:w+="/";break;case 98:w+="\b";break;case 102:w+="\f";break;case 110:w+=` +`;break;case 114:w+="\r";break;case 116:w+=" ";break;case 117:var D=h(4,!0);D>=0?w+=String.fromCharCode(D):d=4;break;default:d=5}S=i;continue}if(F>=0&&F<=31)if(AN(F)){w+=n.substring(S,i),d=2;break}else d=6;i++}return w}function b(){if(r="",d=0,o=i,l=a,c=u,i>=t)return o=t,s=17;var w=n.charCodeAt(i);if(D$(w)){do i++,r+=String.fromCharCode(w),w=n.charCodeAt(i);while(D$(w));return s=15}if(AN(w))return i++,r+=String.fromCharCode(w),w===13&&n.charCodeAt(i)===10&&(i++,r+=` +`),a++,u=i,s=14;switch(w){case 123:return i++,s=1;case 125:return i++,s=2;case 91:return i++,s=3;case 93:return i++,s=4;case 58:return i++,s=6;case 44:return i++,s=5;case 34:return i++,r=f(),s=10;case 47:var S=i-1;if(n.charCodeAt(i+1)===47){for(i+=2;i=12&&w<=15);return w}return{setPosition:g,getPosition:function(){return i},scan:e?v:b,getToken:function(){return s},getTokenValue:function(){return r},getTokenOffset:function(){return o},getTokenLength:function(){return i-o},getTokenStartLine:function(){return l},getTokenStartCharacter:function(){return o-c},getTokenError:function(){return d}}}function D$(n){return n===32||n===9||n===11||n===12||n===160||n===5760||n>=8192&&n<=8203||n===8239||n===8287||n===12288||n===65279}function AN(n){return n===10||n===13||n===8232||n===8233}function kS(n){return n>=48&&n<=57}var UDe;(function(n){n.DEFAULT={allowTrailingComma:!1}})(UDe||(UDe={}));var VYt=GYt;function XYt(n){return{getInitialState:()=>new jDe(null,null,!1,null),tokenize:(e,t)=>jYt(n,e,t)}}var JDe="delimiter.bracket.json",KDe="delimiter.array.json",PYt="delimiter.colon.json",OYt="delimiter.comma.json",BYt="keyword.json",zYt="keyword.json",YYt="string.value.json",HYt="number.json",UYt="string.key.json",JYt="comment.block.json",KYt="comment.line.json",NN=class bke{constructor(e,t){this.parent=e,this.type=t}static pop(e){return e?e.parent:null}static push(e,t){return new bke(e,t)}static equals(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;for(;e&&t;){if(e===t)return!0;if(e.type!==t.type)return!1;e=e.parent,t=t.parent}return!0}},jDe=class aee{constructor(e,t,i,r){this._state=e,this.scanError=t,this.lastWasColon=i,this.parents=r}clone(){return new aee(this._state,this.scanError,this.lastWasColon,this.parents)}equals(e){return e===this?!0:!e||!(e instanceof aee)?!1:this.scanError===e.scanError&&this.lastWasColon===e.lastWasColon&&NN.equals(this.parents,e.parents)}getStateData(){return this._state}setStateData(e){this._state=e}};function jYt(n,e,t,i=0){let r=0,o=!1;switch(t.scanError){case 2:e='"'+e,r=1;break;case 1:e="/*"+e,r=2;break}const s=VYt(e);let a=t.lastWasColon,l=t.parents;const u={tokens:[],endState:t.clone()};for(;;){let c=i+s.getPosition(),d="";const h=s.scan();if(h===17)break;if(c===i+s.getPosition())throw new Error("Scanner did not advance, next 3 characters are: "+e.substr(s.getPosition(),3));switch(o&&(c-=r),o=r>0,h){case 1:l=NN.push(l,0),d=JDe,a=!1;break;case 2:l=NN.pop(l),d=JDe,a=!1;break;case 3:l=NN.push(l,1),d=KDe,a=!1;break;case 4:l=NN.pop(l),d=KDe,a=!1;break;case 6:d=PYt,a=!0;break;case 5:d=OYt,a=!1;break;case 8:case 9:d=BYt,a=!1;break;case 7:d=zYt,a=!1;break;case 10:const m=(l?l.type:0)===1;d=a||m?YYt:UYt,a=!1;break;case 11:d=HYt,a=!1;break}if(n)switch(h){case 12:d=KYt;break;case 13:d=JYt;break}u.endState=new jDe(t.getStateData(),s.getTokenError(),a,l),u.tokens.push({startIndex:c,scopes:d})}return u}var Td;function QYt(){return new Promise((n,e)=>{if(!Td)return e("JSON not registered!");n(Td)})}var $Yt=class extends ZDe{constructor(n,e,t){super(n,e,t.onDidChange),this._disposables.push(Zi.editor.onWillDisposeModel(i=>{this._resetSchema(i.uri)})),this._disposables.push(Zi.editor.onDidChangeModelLanguage(i=>{this._resetSchema(i.model.uri)}))}_resetSchema(n){this._worker().then(e=>{e.resetSchema(n.toString())})}};function qYt(n){const e=[],t=[],i=new tDe(n);e.push(i),Td=(...s)=>i.getLanguageServiceWorker(...s);function r(){const{languageId:s,modeConfiguration:a}=n;$De(t),a.documentFormattingEdits&&t.push(Zi.languages.registerDocumentFormattingEditProvider(s,new PDe(Td))),a.documentRangeFormattingEdits&&t.push(Zi.languages.registerDocumentRangeFormattingEditProvider(s,new ODe(Td))),a.completionItems&&t.push(Zi.languages.registerCompletionItemProvider(s,new TDe(Td,[" ",":",'"']))),a.hovers&&t.push(Zi.languages.registerHoverProvider(s,new EDe(Td))),a.documentSymbols&&t.push(Zi.languages.registerDocumentSymbolProvider(s,new GDe(Td))),a.tokens&&t.push(Zi.languages.setTokensProvider(s,XYt(!0))),a.colors&&t.push(Zi.languages.registerColorProvider(s,new zDe(Td))),a.foldingRanges&&t.push(Zi.languages.registerFoldingRangeProvider(s,new YDe(Td))),a.diagnostics&&t.push(new $Yt(s,Td,n)),a.selectionRanges&&t.push(Zi.languages.registerSelectionRangeProvider(s,new HDe(Td)))}r(),e.push(Zi.languages.setLanguageConfiguration(n.languageId,eHt));let o=n.modeConfiguration;return n.onDidChange(s=>{s.modeConfiguration!==o&&(o=s.modeConfiguration,r())}),e.push(QDe(t)),QDe(e)}function QDe(n){return{dispose:()=>$De(n)}}function $De(n){for(;n.length;)n.pop().dispose()}var eHt={wordPattern:/(-?\d*\.\d\w*)|([^\[\{\]\}\:\"\,\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:'"',close:'"',notIn:["string"]}]};const tHt=Object.freeze(Object.defineProperty({__proto__:null,CompletionAdapter:TDe,DefinitionAdapter:kYt,DiagnosticsAdapter:ZDe,DocumentColorAdapter:zDe,DocumentFormattingEditProvider:PDe,DocumentHighlightAdapter:AYt,DocumentLinkAdapter:WYt,DocumentRangeFormattingEditProvider:ODe,DocumentSymbolAdapter:GDe,FoldingRangeAdapter:YDe,HoverAdapter:EDe,ReferenceAdapter:MYt,RenameAdapter:ZYt,SelectionRangeAdapter:HDe,WorkerManager:tDe,fromPosition:c1,fromRange:_$,getWorker:QYt,setupMode:qYt,toRange:Bl,toTextEdit:NS},Symbol.toStringTag,{value:"Module"}))}); diff --git a/doc.go b/doc.go new file mode 100644 index 0000000..e6e93c5 --- /dev/null +++ b/doc.go @@ -0,0 +1,106 @@ +package doc + +import ( + "bytes" + "embed" + "errors" + "net/http" + "os" + "strings" + "text/template" +) + +// ErrSpecNotFound error for when spec file not found +var ErrSpecNotFound = errors.New("spec not found") + +// Doc configuration +type Doc struct { + DocsPath string + SpecPath string + SpecFile string + SpecFS *embed.FS + Title string + Description string +} + +// HTML represents the openapi-ui index.html page +// +//go:embed assets/index.html +var HTML string + +// JavaScript represents the openapi-ui umd javascript +// +//go:embed assets/openapi-ui.umd.js +var JavaScript string + +// Body returns the final html with the js in the body +func (r Doc) Body() ([]byte, error) { + buf := bytes.NewBuffer(nil) + tpl, err := template.New("doc").Parse(HTML) + if err != nil { + return nil, err + } + + if err = tpl.Execute(buf, map[string]string{ + "body": JavaScript, + "title": r.Title, + "url": r.SpecPath, + "description": r.Description, + }); err != nil { + return nil, err + } + + return buf.Bytes(), nil +} + +// Handler sets some defaults and returns a HandlerFunc +func (r Doc) Handler() http.HandlerFunc { + data, err := r.Body() + if err != nil { + panic(err) + } + + specFile := r.SpecFile + if specFile == "" { + panic(ErrSpecNotFound) + } + + if r.SpecPath == "" { + r.SpecPath = "/openapi.json" + } + + var spec []byte + if r.SpecFS == nil { + spec, err = os.ReadFile(specFile) + if err != nil { + panic(err) + } + } else { + spec, err = r.SpecFS.ReadFile(specFile) + if err != nil { + panic(err) + } + } + + docsPath := r.DocsPath + return func(w http.ResponseWriter, req *http.Request) { + method := strings.ToLower(req.Method) + if method != "get" && method != "head" { + return + } + + header := w.Header() + if strings.HasSuffix(req.URL.Path, r.SpecPath) { + header.Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + _, _ = w.Write(spec) + return + } + + if docsPath == "" || docsPath == req.URL.Path { + header.Set("Content-Type", "text/html") + w.WriteHeader(http.StatusOK) + _, _ = w.Write(data) + } + } +} diff --git a/doc_test.go b/doc_test.go new file mode 100644 index 0000000..3b3829c --- /dev/null +++ b/doc_test.go @@ -0,0 +1,62 @@ +package doc_test + +import ( + "embed" + "io" + "net/http" + "net/http/httptest" + "testing" + + doc "github.com/rookie-luochao/go-openapi-ui" + "github.com/stretchr/testify/assert" +) + +//go:embed test-data/spec.json +var spec embed.FS + +func TestOpenapiUI(t *testing.T) { + r := doc.Doc{ + SpecFile: "test-data/spec.json", + SpecFS: &spec, + SpecPath: "/openapi.json", // "/openapi.yaml" + Title: "Test API", + } + + t.Run("Body", func(t *testing.T) { + body, err := r.Body() + assert.NoError(t, err) + assert.Contains(t, string(body), r.Title) + }) + + t.Run("Handler", func(t *testing.T) { + handler := r.Handler() + + t.Run("Spec", func(t *testing.T) { + req := httptest.NewRequest(http.MethodGet, "/openapi.json", nil) + w := httptest.NewRecorder() + handler(w, req) + + resp := w.Result() + assert.Equal(t, http.StatusOK, resp.StatusCode) + assert.Equal(t, "application/json", resp.Header.Get("Content-Type")) + + body, err := io.ReadAll(resp.Body) + assert.NoError(t, err) + assert.Contains(t, string(body), `"swagger":"2.0"`) + }) + + t.Run("Docs", func(t *testing.T) { + req := httptest.NewRequest(http.MethodGet, "/", nil) + w := httptest.NewRecorder() + handler(w, req) + + resp := w.Result() + assert.Equal(t, http.StatusOK, resp.StatusCode) + assert.Equal(t, "text/html", resp.Header.Get("Content-Type")) + + body, err := io.ReadAll(resp.Body) + assert.NoError(t, err) + assert.Contains(t, string(body), r.Title) + }) + }) +} diff --git a/echo/echo.go b/echo/echo.go new file mode 100644 index 0000000..ca204e6 --- /dev/null +++ b/echo/echo.go @@ -0,0 +1,22 @@ +package echoopenapiui + +import ( + "github.com/labstack/echo/v4" + "github.com/rookie-luochao/go-openapi-ui" +) + +func New(doc doc.Doc) echo.MiddlewareFunc { + handle := doc.Handler() + + return func(next echo.HandlerFunc) echo.HandlerFunc { + return func(ctx echo.Context) error { + handle(ctx.Response(), ctx.Request()) + + if ctx.Response().Committed { + return nil + } + + return next(ctx) + } + } +} diff --git a/echo/go.mod b/echo/go.mod new file mode 100644 index 0000000..e722e21 --- /dev/null +++ b/echo/go.mod @@ -0,0 +1,22 @@ +module github.com/rookie-luochao/go-openapi-ui/echo + +go 1.21.6 + +replace github.com/rookie-luochao/go-openapi-ui => ../ + +require ( + github.com/labstack/echo/v4 v4.11.4 + github.com/rookie-luochao/go-openapi-ui v0.0.0 +) + +require ( + github.com/labstack/gommon v0.4.2 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/valyala/bytebufferpool v1.0.0 // indirect + github.com/valyala/fasttemplate v1.2.2 // indirect + golang.org/x/crypto v0.17.0 // indirect + golang.org/x/net v0.19.0 // indirect + golang.org/x/sys v0.15.0 // indirect + golang.org/x/text v0.14.0 // indirect +) diff --git a/echo/go.sum b/echo/go.sum new file mode 100644 index 0000000..2d37cc5 --- /dev/null +++ b/echo/go.sum @@ -0,0 +1,31 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/labstack/echo/v4 v4.11.4 h1:vDZmA+qNeh1pd/cCkEicDMrjtrnMGQ1QFI9gWN1zGq8= +github.com/labstack/echo/v4 v4.11.4/go.mod h1:noh7EvLwqDsmh/X/HWKPUl1AjzJrhyptRyEbQJfxen8= +github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= +github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= +github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/fiber/fiber.go b/fiber/fiber.go new file mode 100644 index 0000000..45cfa98 --- /dev/null +++ b/fiber/fiber.go @@ -0,0 +1,11 @@ +package fiberopenapiui + +import ( + "github.com/gofiber/adaptor/v2" + "github.com/gofiber/fiber/v2" + "github.com/rookie-luochao/go-openapi-ui" +) + +func New(doc doc.Doc) fiber.Handler { + return adaptor.HTTPHandlerFunc(doc.Handler()) +} diff --git a/fiber/go.mod b/fiber/go.mod new file mode 100644 index 0000000..492de08 --- /dev/null +++ b/fiber/go.mod @@ -0,0 +1,25 @@ +module github.com/rookie-luochao/go-openapi-ui/fiber + +go 1.21.6 + +replace github.com/rookie-luochao/go-openapi-ui => ../ + +require ( + github.com/gofiber/adaptor/v2 v2.2.1 + github.com/gofiber/fiber/v2 v2.52.0 + github.com/rookie-luochao/go-openapi-ui v0.0.0 +) + +require ( + github.com/andybalholm/brotli v1.0.5 // indirect + github.com/google/uuid v1.5.0 // indirect + github.com/klauspost/compress v1.17.0 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect + github.com/rivo/uniseg v0.2.0 // indirect + github.com/valyala/bytebufferpool v1.0.0 // indirect + github.com/valyala/fasthttp v1.51.0 // indirect + github.com/valyala/tcplisten v1.0.0 // indirect + golang.org/x/sys v0.15.0 // indirect +) diff --git a/fiber/go.sum b/fiber/go.sum new file mode 100644 index 0000000..169851a --- /dev/null +++ b/fiber/go.sum @@ -0,0 +1,37 @@ +github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs= +github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gofiber/adaptor/v2 v2.2.1 h1:givE7iViQWlsTR4Jh7tB4iXzrlKBgiraB/yTdHs9Lv4= +github.com/gofiber/adaptor/v2 v2.2.1/go.mod h1:AhR16dEqs25W2FY/l8gSj1b51Azg5dtPDmm+pruNOrc= +github.com/gofiber/fiber/v2 v2.52.0 h1:S+qXi7y+/Pgvqq4DrSmREGiFwtB7Bu6+QFLuIHYw/UE= +github.com/gofiber/fiber/v2 v2.52.0/go.mod h1:KEOE+cXMhXG0zHc9d8+E38hoX+ZN7bhOtgeF2oT6jrQ= +github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM= +github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA= +github.com/valyala/fasthttp v1.51.0/go.mod h1:oI2XroL+lI7vdXyYoQk03bXBThfFl2cVdIA3Xl7cH8g= +github.com/valyala/tcplisten v1.0.0 h1:rBHj/Xf+E1tRGZyWIWwJDiRY0zc1Js+CV5DqwacVSA8= +github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= \ No newline at end of file diff --git a/gin/gin.go b/gin/gin.go new file mode 100644 index 0000000..55cb99f --- /dev/null +++ b/gin/gin.go @@ -0,0 +1,15 @@ +package ginopenapiui + +import ( + "github.com/gin-gonic/gin" + doc "github.com/rookie-luochao/go-openapi-ui" +) + +func New(doc doc.Doc) gin.HandlerFunc { + handle := doc.Handler() + + return func(ctx *gin.Context) { + handle(ctx.Writer, ctx.Request) + ctx.Next() + } +} diff --git a/gin/go.mod b/gin/go.mod new file mode 100644 index 0000000..d5dea65 --- /dev/null +++ b/gin/go.mod @@ -0,0 +1,38 @@ +module github.com/rookie-luochao/go-openapi-ui/gin + +go 1.21.6 + +replace github.com/rookie-luochao/go-openapi-ui => ../ + +require ( + github.com/gin-gonic/gin v1.9.1 + github.com/rookie-luochao/go-openapi-ui v0.0.0 +) + +require ( + github.com/bytedance/sonic v1.9.1 // indirect + github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect + github.com/gabriel-vasile/mimetype v1.4.2 // indirect + github.com/gin-contrib/sse v0.1.0 // indirect + github.com/go-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/go-playground/validator/v10 v10.14.0 // indirect + github.com/goccy/go-json v0.10.2 // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/klauspost/cpuid/v2 v2.2.4 // indirect + github.com/leodido/go-urn v1.2.4 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/pelletier/go-toml/v2 v2.0.8 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/ugorji/go/codec v1.2.11 // indirect + golang.org/x/arch v0.3.0 // indirect + golang.org/x/crypto v0.14.0 // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/sys v0.13.0 // indirect + golang.org/x/text v0.13.0 // indirect + google.golang.org/protobuf v1.30.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/gin/go.sum b/gin/go.sum new file mode 100644 index 0000000..af2d680 --- /dev/null +++ b/gin/go.sum @@ -0,0 +1,87 @@ +github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= +github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s= +github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= +github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= +github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= +github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q7OhCmWKU= +github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= +github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= +github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= +github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.14.0 h1:vgvQWe3XCz3gIeFDm/HnTIbj6UGmg/+t63MyGU2n5js= +github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= +github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +github.com/leodido/go-urn v1.2.4 h1:XlAE/cm/ms7TE/VMVoduSpNBoyc2dOxHs5MZSwAN63Q= +github.com/leodido/go-urn v1.2.4/go.mod h1:7ZrI8mTSeBSHl/UaRyKQW1qZeMgak41ANeCNaVckg+4= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= +github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU= +github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= +golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= +golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= \ No newline at end of file diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..c197f92 --- /dev/null +++ b/go.mod @@ -0,0 +1,11 @@ +module github.com/rookie-luochao/go-openapi-ui + +go 1.17 + +require github.com/stretchr/testify v1.8.4 + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) \ No newline at end of file diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..6bfb8c1 --- /dev/null +++ b/go.sum @@ -0,0 +1,5 @@ +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= \ No newline at end of file diff --git a/test-data/spec.json b/test-data/spec.json new file mode 100644 index 0000000..84f510c --- /dev/null +++ b/test-data/spec.json @@ -0,0 +1 @@ +{"swagger":"2.0","info":{"description":"This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.","version":"1.0.6","title":"Swagger Petstore","termsOfService":"http://swagger.io/terms/","contact":{"email":"apiteam@swagger.io"},"license":{"name":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}},"host":"petstore.swagger.io","basePath":"/v2","tags":[{"name":"pet","description":"Everything about your Pets","externalDocs":{"description":"Find out more","url":"http://swagger.io"}},{"name":"store","description":"Access to Petstore orders"},{"name":"user","description":"Operations about user","externalDocs":{"description":"Find out more about our store","url":"http://swagger.io"}}],"schemes":["https","http"],"paths":{"/pet/{petId}/uploadImage":{"post":{"tags":["pet"],"summary":"uploads an image","description":"","operationId":"uploadFile","consumes":["multipart/form-data"],"produces":["application/json"],"parameters":[{"name":"petId","in":"path","description":"ID of pet to update","required":true,"type":"integer","format":"int64"},{"name":"additionalMetadata","in":"formData","description":"Additional data to pass to server","required":false,"type":"string"},{"name":"file","in":"formData","description":"file to upload","required":false,"type":"file"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/ApiResponse"}}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet":{"post":{"tags":["pet"],"summary":"Add a new pet to the store","description":"","operationId":"addPet","consumes":["application/json","application/xml"],"produces":["application/json","application/xml"],"parameters":[{"in":"body","name":"body","description":"Pet object that needs to be added to the store","required":true,"schema":{"$ref":"#/definitions/Pet"}}],"responses":{"405":{"description":"Invalid input"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]},"put":{"tags":["pet"],"summary":"Update an existing pet","description":"","operationId":"updatePet","consumes":["application/json","application/xml"],"produces":["application/json","application/xml"],"parameters":[{"in":"body","name":"body","description":"Pet object that needs to be added to the store","required":true,"schema":{"$ref":"#/definitions/Pet"}}],"responses":{"400":{"description":"Invalid ID supplied"},"404":{"description":"Pet not found"},"405":{"description":"Validation exception"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/findByStatus":{"get":{"tags":["pet"],"summary":"Finds Pets by status","description":"Multiple status values can be provided with comma separated strings","operationId":"findPetsByStatus","produces":["application/json","application/xml"],"parameters":[{"name":"status","in":"query","description":"Status values that need to be considered for filter","required":true,"type":"array","items":{"type":"string","enum":["available","pending","sold"],"default":"available"},"collectionFormat":"multi"}],"responses":{"200":{"description":"successful operation","schema":{"type":"array","items":{"$ref":"#/definitions/Pet"}}},"400":{"description":"Invalid status value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/pet/findByTags":{"get":{"tags":["pet"],"summary":"Finds Pets by tags","description":"Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.","operationId":"findPetsByTags","produces":["application/json","application/xml"],"parameters":[{"name":"tags","in":"query","description":"Tags to filter by","required":true,"type":"array","items":{"type":"string"},"collectionFormat":"multi"}],"responses":{"200":{"description":"successful operation","schema":{"type":"array","items":{"$ref":"#/definitions/Pet"}}},"400":{"description":"Invalid tag value"}},"security":[{"petstore_auth":["write:pets","read:pets"]}],"deprecated":true}},"/pet/{petId}":{"get":{"tags":["pet"],"summary":"Find pet by ID","description":"Returns a single pet","operationId":"getPetById","produces":["application/json","application/xml"],"parameters":[{"name":"petId","in":"path","description":"ID of pet to return","required":true,"type":"integer","format":"int64"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/Pet"}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Pet not found"}},"security":[{"api_key":[]}]},"post":{"tags":["pet"],"summary":"Updates a pet in the store with form data","description":"","operationId":"updatePetWithForm","consumes":["application/x-www-form-urlencoded"],"produces":["application/json","application/xml"],"parameters":[{"name":"petId","in":"path","description":"ID of pet that needs to be updated","required":true,"type":"integer","format":"int64"},{"name":"name","in":"formData","description":"Updated name of the pet","required":false,"type":"string"},{"name":"status","in":"formData","description":"Updated status of the pet","required":false,"type":"string"}],"responses":{"405":{"description":"Invalid input"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]},"delete":{"tags":["pet"],"summary":"Deletes a pet","description":"","operationId":"deletePet","produces":["application/json","application/xml"],"parameters":[{"name":"api_key","in":"header","required":false,"type":"string"},{"name":"petId","in":"path","description":"Pet id to delete","required":true,"type":"integer","format":"int64"}],"responses":{"400":{"description":"Invalid ID supplied"},"404":{"description":"Pet not found"}},"security":[{"petstore_auth":["write:pets","read:pets"]}]}},"/store/order":{"post":{"tags":["store"],"summary":"Place an order for a pet","description":"","operationId":"placeOrder","consumes":["application/json"],"produces":["application/json","application/xml"],"parameters":[{"in":"body","name":"body","description":"order placed for purchasing the pet","required":true,"schema":{"$ref":"#/definitions/Order"}}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/Order"}},"400":{"description":"Invalid Order"}}}},"/store/order/{orderId}":{"get":{"tags":["store"],"summary":"Find purchase order by ID","description":"For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions","operationId":"getOrderById","produces":["application/json","application/xml"],"parameters":[{"name":"orderId","in":"path","description":"ID of pet that needs to be fetched","required":true,"type":"integer","maximum":10,"minimum":1,"format":"int64"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/Order"}},"400":{"description":"Invalid ID supplied"},"404":{"description":"Order not found"}}},"delete":{"tags":["store"],"summary":"Delete purchase order by ID","description":"For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors","operationId":"deleteOrder","produces":["application/json","application/xml"],"parameters":[{"name":"orderId","in":"path","description":"ID of the order that needs to be deleted","required":true,"type":"integer","minimum":1,"format":"int64"}],"responses":{"400":{"description":"Invalid ID supplied"},"404":{"description":"Order not found"}}}},"/store/inventory":{"get":{"tags":["store"],"summary":"Returns pet inventories by status","description":"Returns a map of status codes to quantities","operationId":"getInventory","produces":["application/json"],"parameters":[],"responses":{"200":{"description":"successful operation","schema":{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}}},"security":[{"api_key":[]}]}},"/user/createWithArray":{"post":{"tags":["user"],"summary":"Creates list of users with given input array","description":"","operationId":"createUsersWithArrayInput","consumes":["application/json"],"produces":["application/json","application/xml"],"parameters":[{"in":"body","name":"body","description":"List of user object","required":true,"schema":{"type":"array","items":{"$ref":"#/definitions/User"}}}],"responses":{"default":{"description":"successful operation"}}}},"/user/createWithList":{"post":{"tags":["user"],"summary":"Creates list of users with given input array","description":"","operationId":"createUsersWithListInput","consumes":["application/json"],"produces":["application/json","application/xml"],"parameters":[{"in":"body","name":"body","description":"List of user object","required":true,"schema":{"type":"array","items":{"$ref":"#/definitions/User"}}}],"responses":{"default":{"description":"successful operation"}}}},"/user/{username}":{"get":{"tags":["user"],"summary":"Get user by user name","description":"","operationId":"getUserByName","produces":["application/json","application/xml"],"parameters":[{"name":"username","in":"path","description":"The name that needs to be fetched. Use user1 for testing. ","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","schema":{"$ref":"#/definitions/User"}},"400":{"description":"Invalid username supplied"},"404":{"description":"User not found"}}},"put":{"tags":["user"],"summary":"Updated user","description":"This can only be done by the logged in user.","operationId":"updateUser","consumes":["application/json"],"produces":["application/json","application/xml"],"parameters":[{"name":"username","in":"path","description":"name that need to be updated","required":true,"type":"string"},{"in":"body","name":"body","description":"Updated user object","required":true,"schema":{"$ref":"#/definitions/User"}}],"responses":{"400":{"description":"Invalid user supplied"},"404":{"description":"User not found"}}},"delete":{"tags":["user"],"summary":"Delete user","description":"This can only be done by the logged in user.","operationId":"deleteUser","produces":["application/json","application/xml"],"parameters":[{"name":"username","in":"path","description":"The name that needs to be deleted","required":true,"type":"string"}],"responses":{"400":{"description":"Invalid username supplied"},"404":{"description":"User not found"}}}},"/user/login":{"get":{"tags":["user"],"summary":"Logs user into the system","description":"","operationId":"loginUser","produces":["application/json","application/xml"],"parameters":[{"name":"username","in":"query","description":"The user name for login","required":true,"type":"string"},{"name":"password","in":"query","description":"The password for login in clear text","required":true,"type":"string"}],"responses":{"200":{"description":"successful operation","headers":{"X-Expires-After":{"type":"string","format":"date-time","description":"date in UTC when token expires"},"X-Rate-Limit":{"type":"integer","format":"int32","description":"calls per hour allowed by the user"}},"schema":{"type":"string"}},"400":{"description":"Invalid username/password supplied"}}}},"/user/logout":{"get":{"tags":["user"],"summary":"Logs out current logged in user session","description":"","operationId":"logoutUser","produces":["application/json","application/xml"],"parameters":[],"responses":{"default":{"description":"successful operation"}}}},"/user":{"post":{"tags":["user"],"summary":"Create user","description":"This can only be done by the logged in user.","operationId":"createUser","consumes":["application/json"],"produces":["application/json","application/xml"],"parameters":[{"in":"body","name":"body","description":"Created user object","required":true,"schema":{"$ref":"#/definitions/User"}}],"responses":{"default":{"description":"successful operation"}}}}},"securityDefinitions":{"api_key":{"type":"apiKey","name":"api_key","in":"header"},"petstore_auth":{"type":"oauth2","authorizationUrl":"https://petstore.swagger.io/oauth/authorize","flow":"implicit","scopes":{"read:pets":"read your pets","write:pets":"modify pets in your account"}}},"definitions":{"ApiResponse":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"type":{"type":"string"},"message":{"type":"string"}}},"Category":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}},"xml":{"name":"Category"}},"Pet":{"type":"object","required":["name","photoUrls"],"properties":{"id":{"type":"integer","format":"int64"},"category":{"$ref":"#/definitions/Category"},"name":{"type":"string","example":"doggie"},"photoUrls":{"type":"array","xml":{"wrapped":true},"items":{"type":"string","xml":{"name":"photoUrl"}}},"tags":{"type":"array","xml":{"wrapped":true},"items":{"xml":{"name":"tag"},"$ref":"#/definitions/Tag"}},"status":{"type":"string","description":"pet status in the store","enum":["available","pending","sold"]}},"xml":{"name":"Pet"}},"Tag":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"}},"xml":{"name":"Tag"}},"Order":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"petId":{"type":"integer","format":"int64"},"quantity":{"type":"integer","format":"int32"},"shipDate":{"type":"string","format":"date-time"},"status":{"type":"string","description":"Order Status","enum":["placed","approved","delivered"]},"complete":{"type":"boolean"}},"xml":{"name":"Order"}},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"username":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"},"password":{"type":"string"},"phone":{"type":"string"},"userStatus":{"type":"integer","format":"int32","description":"User Status"}},"xml":{"name":"User"}}},"externalDocs":{"description":"Find out more about Swagger","url":"http://swagger.io"}} \ No newline at end of file