From c420c0f3e7c7d81b671cf42e979040df6fe97a4b Mon Sep 17 00:00:00 2001 From: freshgum <85623267+freshgum-bubbles@users.noreply.github.com> Date: Mon, 9 Oct 2023 14:31:12 +0100 Subject: [PATCH] Deploy website - based on d28246376ebff8f95120e317aceda8fa13e5256f --- search-index.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/search-index.json b/search-index.json index 6b2cdca4..982c5f09 100644 --- a/search-index.json +++ b/search-index.json @@ -1 +1 @@ -[{"documents":[{"i":1,"t":"Hello World!","u":"/docs/examples/hello-world","b":["Tutorial"]},{"i":11,"t":"Stopping Our App","u":"/docs/examples/nodejs-web-server/application-disposal","b":["Tutorial","NodeJS Web Server"]},{"i":13,"t":"NodeJS Web Server","u":"/docs/examples/nodejs-web-server/implementation","b":["Tutorial","NodeJS Web Server"]},{"i":24,"t":"Testing our App","u":"/docs/examples/nodejs-web-server/testing","b":["Tutorial","NodeJS Web Server"]},{"i":26,"t":"Creating Containers","u":"/docs/guide/containers/creating-containers","b":["Tutorial"]},{"i":44,"t":"Custom Containers","u":"/docs/guide/containers/custom-containers","b":["Tutorial"]},{"i":46,"t":"Containers","u":"/docs/guide/containers/introduction","b":["Tutorial"]},{"i":58,"t":"Getting Started","u":"/docs/getting-started","b":["Tutorial"]},{"i":60,"t":"React Bindings","u":"/docs/guide/react/introduction","b":["Tutorial"]},{"i":64,"t":"Eager Services","u":"/docs/guide/services/eager-services","b":["Tutorial"]},{"i":70,"t":"HostContainer","u":"/docs/guide/services/host-container","b":["Tutorial"]},{"i":72,"t":"Services","u":"/docs/guide/services/introduction","b":["Tutorial"]},{"i":80,"t":"Multiple Services","u":"/docs/guide/services/multiple-services","b":["Tutorial"]},{"i":82,"t":"Resolution Constraints","u":"/docs/guide/services/resolution-constraints","b":["Tutorial"]},{"i":96,"t":"Singletons","u":"/docs/guide/services/singletons","b":["Tutorial"]},{"i":98,"t":"Transient Services","u":"/docs/guide/services/transient-services","b":["Tutorial"]},{"i":108,"t":"Usage in JavaScript","u":"/docs/guide/services/usage-in-javascript","b":["Tutorial"]},{"i":114,"t":"Tokens","u":"/docs/guide/tokens/introduction","b":["Tutorial"]},{"i":122,"t":"Contributor Covenant Code of Conduct","u":"/docs/meta/code-of-conduct","b":["Tutorial"]},{"i":145,"t":"License","u":"/docs/meta/license","b":["Tutorial"]},{"i":147,"t":"Contributing to TypeDI","u":"/docs/meta/contributing","b":["Tutorial"]},{"i":148,"t":"Migrating from typestack/typedi","u":"/docs/migration/migrating-from-upstream-typedi","b":["Tutorial"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,2.651,1,2.651]],["t/11",[2,2.651,3,2.155]],["t/13",[4,2.185,5,2.185,6,2.185]],["t/24",[3,2.155,7,2.651]],["t/26",[8,2.651,9,1.828]],["t/44",[9,1.828,10,2.651]],["t/46",[9,2.323]],["t/58",[11,2.651,12,2.651]],["t/60",[13,2.651,14,2.651]],["t/64",[15,2.651,16,1.584]],["t/70",[17,3.369]],["t/72",[16,2.013]],["t/80",[16,1.584,18,2.651]],["t/82",[19,2.651,20,2.651]],["t/96",[21,3.369]],["t/98",[16,1.584,22,2.651]],["t/108",[23,2.651,24,2.651]],["t/114",[25,3.369]],["t/122",[26,1.858,27,1.858,28,1.858,29,1.858]],["t/145",[30,3.369]],["t/147",[31,2.651,32,2.651]],["t/148",[33,2.651,34,2.651]]],"invertedIndex":[["app",{"_index":3,"t":{"11":{"position":[[13,3]]},"24":{"position":[[12,3]]}}}],["bind",{"_index":14,"t":{"60":{"position":[[6,8]]}}}],["code",{"_index":28,"t":{"122":{"position":[[21,4]]}}}],["conduct",{"_index":29,"t":{"122":{"position":[[29,7]]}}}],["constraint",{"_index":20,"t":{"82":{"position":[[11,11]]}}}],["contain",{"_index":9,"t":{"26":{"position":[[9,10]]},"44":{"position":[[7,10]]},"46":{"position":[[0,10]]}}}],["contribut",{"_index":31,"t":{"147":{"position":[[0,12]]}}}],["contributor",{"_index":26,"t":{"122":{"position":[[0,11]]}}}],["coven",{"_index":27,"t":{"122":{"position":[[12,8]]}}}],["creat",{"_index":8,"t":{"26":{"position":[[0,8]]}}}],["custom",{"_index":10,"t":{"44":{"position":[[0,6]]}}}],["eager",{"_index":15,"t":{"64":{"position":[[0,5]]}}}],["get",{"_index":11,"t":{"58":{"position":[[0,7]]}}}],["hello",{"_index":0,"t":{"1":{"position":[[0,5]]}}}],["hostcontain",{"_index":17,"t":{"70":{"position":[[0,13]]}}}],["javascript",{"_index":24,"t":{"108":{"position":[[9,10]]}}}],["licens",{"_index":30,"t":{"145":{"position":[[0,7]]}}}],["migrat",{"_index":33,"t":{"148":{"position":[[0,9]]}}}],["multipl",{"_index":18,"t":{"80":{"position":[[0,8]]}}}],["nodej",{"_index":4,"t":{"13":{"position":[[0,6]]}}}],["react",{"_index":13,"t":{"60":{"position":[[0,5]]}}}],["resolut",{"_index":19,"t":{"82":{"position":[[0,10]]}}}],["server",{"_index":6,"t":{"13":{"position":[[11,6]]}}}],["servic",{"_index":16,"t":{"64":{"position":[[6,8]]},"72":{"position":[[0,8]]},"80":{"position":[[9,8]]},"98":{"position":[[10,8]]}}}],["singleton",{"_index":21,"t":{"96":{"position":[[0,10]]}}}],["start",{"_index":12,"t":{"58":{"position":[[8,7]]}}}],["stop",{"_index":2,"t":{"11":{"position":[[0,8]]}}}],["test",{"_index":7,"t":{"24":{"position":[[0,7]]}}}],["token",{"_index":25,"t":{"114":{"position":[[0,6]]}}}],["transient",{"_index":22,"t":{"98":{"position":[[0,9]]}}}],["typedi",{"_index":32,"t":{"147":{"position":[[16,6]]}}}],["typestack/typedi",{"_index":34,"t":{"148":{"position":[[15,16]]}}}],["usag",{"_index":23,"t":{"108":{"position":[[0,5]]}}}],["web",{"_index":5,"t":{"13":{"position":[[7,3]]}}}],["world",{"_index":1,"t":{"1":{"position":[[6,6]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"Creating your First Service","u":"/docs/examples/hello-world","h":"#creating-your-first-service","p":1},{"i":5,"t":"The Root Service","u":"/docs/examples/hello-world","h":"#the-root-service","p":1},{"i":7,"t":"Using the Container","u":"/docs/examples/hello-world","h":"#using-the-container","p":1},{"i":9,"t":"Running our New App","u":"/docs/examples/hello-world","h":"#running-our-new-app","p":1},{"i":15,"t":"Creating our Web Server Service","u":"/docs/examples/nodejs-web-server/implementation","h":"#creating-our-web-server-service","p":13},{"i":17,"t":"Creating our RootService","u":"/docs/examples/nodejs-web-server/implementation","h":"#creating-our-rootservice","p":13},{"i":19,"t":"Adding a database","u":"/docs/examples/nodejs-web-server/implementation","h":"#adding-a-database","p":13},{"i":21,"t":"Updating our WebServerService","u":"/docs/examples/nodejs-web-server/implementation","h":"#updating-our-webserverservice","p":13},{"i":23,"t":"","u":"/docs/examples/nodejs-web-server/implementation","h":"","p":13},{"i":28,"t":"ContainerInstance.of(id, parent?, options?)","u":"/docs/guide/containers/creating-containers","h":"#containerinstanceofid-parent-options","p":26},{"i":30,"t":"Container.of(id, options?)","u":"/docs/guide/containers/creating-containers","h":"#containerofid-options","p":26},{"i":32,"t":"Container.ofChild(id, options?)","u":"/docs/guide/containers/creating-containers","h":"#containerofchildid-options","p":26},{"i":34,"t":"Creation Options","u":"/docs/guide/containers/creating-containers","h":"#creation-options","p":26},{"i":36,"t":"Dealing with conflicts","u":"/docs/guide/containers/creating-containers","h":"#dealing-with-conflicts","p":26},{"i":38,"t":"Real-life example of conflict strategies","u":"/docs/guide/containers/creating-containers","h":"#real-life-example-of-conflict-strategies","p":26},{"i":40,"t":"Dealing with free IDs","u":"/docs/guide/containers/creating-containers","h":"#dealing-with-free-ids","p":26},{"i":42,"t":"Defining a conflict","u":"/docs/guide/containers/creating-containers","h":"#defining-a-conflict","p":26},{"i":48,"t":"Default Container","u":"/docs/guide/containers/introduction","h":"#default-container","p":46},{"i":50,"t":"Container Inheritance","u":"/docs/guide/containers/introduction","h":"#container-inheritance","p":46},{"i":52,"t":"Creating child containers","u":"/docs/guide/containers/introduction","h":"#creating-child-containers","p":46},{"i":54,"t":"Creating containers with no parent","u":"/docs/guide/containers/introduction","h":"#creating-containers-with-no-parent","p":46},{"i":56,"t":"Disposing a container","u":"/docs/guide/containers/introduction","h":"#disposing-a-container","p":46},{"i":62,"t":"useService","u":"/docs/guide/react/introduction","h":"#useservice","p":60},{"i":66,"t":"Example","u":"/docs/guide/services/eager-services","h":"#example","p":64},{"i":68,"t":"The Dangers of eager: true","u":"/docs/guide/services/eager-services","h":"#the-dangers-of-eager-true","p":64},{"i":74,"t":"Attaching to Containers","u":"/docs/guide/services/introduction","h":"#attaching-to-containers","p":72},{"i":76,"t":"Finding our Service","u":"/docs/guide/services/introduction","h":"#finding-our-service","p":72},{"i":78,"t":"Creating Instances via Factories","u":"/docs/guide/services/introduction","h":"#creating-instances-via-factories","p":72},{"i":84,"t":"Introduction","u":"/docs/guide/services/resolution-constraints","h":"#introduction","p":82},{"i":86,"t":"Resolution Constraint Flags","u":"/docs/guide/services/resolution-constraints","h":"#resolution-constraint-flags","p":82},{"i":88,"t":"Making dependencies optional with Optional()","u":"/docs/guide/services/resolution-constraints","h":"#making-dependencies-optional-with-optional","p":82},{"i":90,"t":"Resolve via the container's parent with SkipSelf()","u":"/docs/guide/services/resolution-constraints","h":"#resolve-via-the-containers-parent-with-skipself","p":82},{"i":92,"t":"Resolve non-recursively with Self()","u":"/docs/guide/services/resolution-constraints","h":"#resolve-non-recursively-with-self","p":82},{"i":94,"t":"Acquire multiple services with Many()","u":"/docs/guide/services/resolution-constraints","h":"#acquire-multiple-services-with-many","p":82},{"i":100,"t":"Demo","u":"/docs/guide/services/transient-services","h":"#demo","p":98},{"i":102,"t":"Transient Services as Dependencies","u":"/docs/guide/services/transient-services","h":"#transient-services-as-dependencies","p":98},{"i":104,"t":"Performance","u":"/docs/guide/services/transient-services","h":"#performance","p":98},{"i":106,"t":"TransientRef","u":"/docs/guide/services/transient-services","h":"#transientref","p":98},{"i":110,"t":"JSService type","u":"/docs/guide/services/usage-in-javascript","h":"#jsservice-type","p":108},{"i":112,"t":"Function classes","u":"/docs/guide/services/usage-in-javascript","h":"#function-classes","p":108},{"i":116,"t":"Creating our Token","u":"/docs/guide/tokens/introduction","h":"#creating-our-token","p":114},{"i":118,"t":"Consuming our Token","u":"/docs/guide/tokens/introduction","h":"#consuming-our-token","p":114},{"i":120,"t":"Setting the value of a Token","u":"/docs/guide/tokens/introduction","h":"#setting-the-value-of-a-token","p":114},{"i":123,"t":"Our Pledge","u":"/docs/meta/code-of-conduct","h":"#our-pledge","p":122},{"i":125,"t":"Our Standards","u":"/docs/meta/code-of-conduct","h":"#our-standards","p":122},{"i":127,"t":"Enforcement Responsibilities","u":"/docs/meta/code-of-conduct","h":"#enforcement-responsibilities","p":122},{"i":129,"t":"Scope","u":"/docs/meta/code-of-conduct","h":"#scope","p":122},{"i":131,"t":"Enforcement","u":"/docs/meta/code-of-conduct","h":"#enforcement","p":122},{"i":133,"t":"Enforcement Guidelines","u":"/docs/meta/code-of-conduct","h":"#enforcement-guidelines","p":122},{"i":135,"t":"1. Correction","u":"/docs/meta/code-of-conduct","h":"#1-correction","p":122},{"i":137,"t":"2. Warning","u":"/docs/meta/code-of-conduct","h":"#2-warning","p":122},{"i":139,"t":"3. Temporary Ban","u":"/docs/meta/code-of-conduct","h":"#3-temporary-ban","p":122},{"i":141,"t":"4. Permanent Ban","u":"/docs/meta/code-of-conduct","h":"#4-permanent-ban","p":122},{"i":143,"t":"Attribution","u":"/docs/meta/code-of-conduct","h":"#attribution","p":122}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,1.764,1,3.188,2,1.89]],["t/5",[2,2.248,3,3.791]],["t/7",[4,3.791,5,2.097]],["t/9",[6,3.188,7,3.188,8,3.188]],["t/15",[0,1.522,2,1.631,9,2.751,10,2.751]],["t/17",[0,2.097,11,3.791]],["t/19",[12,3.791,13,3.791]],["t/21",[14,3.791,15,3.791]],["t/23",[]],["t/28",[16,3.188,17,2.438,18,2.038]],["t/30",[18,2.423,19,3.791]],["t/32",[18,2.423,20,3.791]],["t/34",[18,2.423,21,3.791]],["t/36",[22,3.253,23,2.899]],["t/38",[23,1.85,24,2.419,25,2.419,26,2.076,27,2.419]],["t/40",[22,2.736,28,3.188,29,3.188]],["t/42",[23,2.899,30,3.791]],["t/48",[5,2.097,31,3.791]],["t/50",[5,2.097,32,3.791]],["t/52",[0,1.764,5,1.764,33,3.188]],["t/54",[0,1.764,5,1.764,17,2.438]],["t/56",[5,2.097,34,3.791]],["t/62",[35,4.675]],["t/66",[26,4.012]],["t/68",[36,3.188,37,3.188,38,3.188]],["t/74",[5,2.097,39,3.791]],["t/76",[2,2.248,40,3.791]],["t/78",[0,1.522,41,2.751,42,2.361,43,2.751]],["t/84",[44,4.675]],["t/86",[45,3.188,46,3.188,47,3.188]],["t/88",[18,2.611,48,2.751,49,2.361]],["t/90",[17,1.85,42,2.076,50,2.076,51,2.419,52,2.419]],["t/92",[50,2.361,53,2.751,54,2.751,55,2.751]],["t/94",[2,1.631,56,2.751,57,2.751,58,2.751]],["t/100",[59,4.675]],["t/102",[2,1.89,49,2.736,60,3.188]],["t/104",[61,4.675]],["t/106",[62,4.675]],["t/110",[63,3.791,64,3.791]],["t/112",[65,3.791,66,3.791]],["t/116",[0,2.097,67,2.899]],["t/118",[67,2.899,68,3.791]],["t/120",[67,2.438,69,3.188,70,3.188]],["t/123",[71,4.675]],["t/125",[72,4.675]],["t/127",[73,2.899,74,3.791]],["t/129",[75,4.675]],["t/131",[73,3.575]],["t/133",[73,2.899,76,3.791]],["t/135",[77,3.791,78,3.791]],["t/137",[79,3.791,80,3.791]],["t/139",[81,3.188,82,3.188,83,2.736]],["t/141",[83,2.736,84,3.188,85,3.188]],["t/143",[86,4.675]]],"invertedIndex":[["1",{"_index":77,"t":{"135":{"position":[[0,2]]}}}],["2",{"_index":79,"t":{"137":{"position":[[0,2]]}}}],["3",{"_index":81,"t":{"139":{"position":[[0,2]]}}}],["4",{"_index":84,"t":{"141":{"position":[[0,2]]}}}],["acquir",{"_index":56,"t":{"94":{"position":[[0,7]]}}}],["ad",{"_index":12,"t":{"19":{"position":[[0,6]]}}}],["app",{"_index":8,"t":{"9":{"position":[[16,3]]}}}],["attach",{"_index":39,"t":{"74":{"position":[[0,9]]}}}],["attribut",{"_index":86,"t":{"143":{"position":[[0,11]]}}}],["ban",{"_index":83,"t":{"139":{"position":[[13,3]]},"141":{"position":[[13,3]]}}}],["child",{"_index":33,"t":{"52":{"position":[[9,5]]}}}],["class",{"_index":66,"t":{"112":{"position":[[9,7]]}}}],["conflict",{"_index":23,"t":{"36":{"position":[[13,9]]},"38":{"position":[[21,8]]},"42":{"position":[[11,8]]}}}],["constraint",{"_index":46,"t":{"86":{"position":[[11,10]]}}}],["consum",{"_index":68,"t":{"118":{"position":[[0,9]]}}}],["contain",{"_index":5,"t":{"7":{"position":[[10,9]]},"48":{"position":[[8,9]]},"50":{"position":[[0,9]]},"52":{"position":[[15,10]]},"54":{"position":[[9,10]]},"56":{"position":[[12,9]]},"74":{"position":[[13,10]]}}}],["container'",{"_index":51,"t":{"90":{"position":[[16,11]]}}}],["container.of(id",{"_index":19,"t":{"30":{"position":[[0,16]]}}}],["container.ofchild(id",{"_index":20,"t":{"32":{"position":[[0,21]]}}}],["containerinstance.of(id",{"_index":16,"t":{"28":{"position":[[0,24]]}}}],["correct",{"_index":78,"t":{"135":{"position":[[3,10]]}}}],["creat",{"_index":0,"t":{"3":{"position":[[0,8]]},"15":{"position":[[0,8]]},"17":{"position":[[0,8]]},"52":{"position":[[0,8]]},"54":{"position":[[0,8]]},"78":{"position":[[0,8]]},"116":{"position":[[0,8]]}}}],["creation",{"_index":21,"t":{"34":{"position":[[0,8]]}}}],["danger",{"_index":36,"t":{"68":{"position":[[4,7]]}}}],["databas",{"_index":13,"t":{"19":{"position":[[9,8]]}}}],["deal",{"_index":22,"t":{"36":{"position":[[0,7]]},"40":{"position":[[0,7]]}}}],["default",{"_index":31,"t":{"48":{"position":[[0,7]]}}}],["defin",{"_index":30,"t":{"42":{"position":[[0,8]]}}}],["demo",{"_index":59,"t":{"100":{"position":[[0,4]]}}}],["depend",{"_index":49,"t":{"88":{"position":[[7,12]]},"102":{"position":[[22,12]]}}}],["dispos",{"_index":34,"t":{"56":{"position":[[0,9]]}}}],["eager",{"_index":37,"t":{"68":{"position":[[15,6]]}}}],["enforc",{"_index":73,"t":{"127":{"position":[[0,11]]},"131":{"position":[[0,11]]},"133":{"position":[[0,11]]}}}],["exampl",{"_index":26,"t":{"38":{"position":[[10,7]]},"66":{"position":[[0,7]]}}}],["factori",{"_index":43,"t":{"78":{"position":[[23,9]]}}}],["find",{"_index":40,"t":{"76":{"position":[[0,7]]}}}],["first",{"_index":1,"t":{"3":{"position":[[14,5]]}}}],["flag",{"_index":47,"t":{"86":{"position":[[22,5]]}}}],["free",{"_index":28,"t":{"40":{"position":[[13,4]]}}}],["function",{"_index":65,"t":{"112":{"position":[[0,8]]}}}],["guidelin",{"_index":76,"t":{"133":{"position":[[12,10]]}}}],["id",{"_index":29,"t":{"40":{"position":[[18,3]]}}}],["inherit",{"_index":32,"t":{"50":{"position":[[10,11]]}}}],["instanc",{"_index":41,"t":{"78":{"position":[[9,9]]}}}],["introduct",{"_index":44,"t":{"84":{"position":[[0,12]]}}}],["jsservic",{"_index":63,"t":{"110":{"position":[[0,9]]}}}],["life",{"_index":25,"t":{"38":{"position":[[5,4]]}}}],["make",{"_index":48,"t":{"88":{"position":[[0,6]]}}}],["mani",{"_index":58,"t":{"94":{"position":[[31,6]]}}}],["multipl",{"_index":57,"t":{"94":{"position":[[8,8]]}}}],["new",{"_index":7,"t":{"9":{"position":[[12,3]]}}}],["non",{"_index":53,"t":{"92":{"position":[[8,3]]}}}],["option",{"_index":18,"t":{"28":{"position":[[34,9]]},"30":{"position":[[17,9]]},"32":{"position":[[22,9]]},"34":{"position":[[9,7]]},"88":{"position":[[20,8],[34,10]]}}}],["parent",{"_index":17,"t":{"28":{"position":[[25,8]]},"54":{"position":[[28,6]]},"90":{"position":[[28,6]]}}}],["perform",{"_index":61,"t":{"104":{"position":[[0,11]]}}}],["perman",{"_index":85,"t":{"141":{"position":[[3,9]]}}}],["pledg",{"_index":71,"t":{"123":{"position":[[4,6]]}}}],["real",{"_index":24,"t":{"38":{"position":[[0,4]]}}}],["recurs",{"_index":54,"t":{"92":{"position":[[12,11]]}}}],["resolut",{"_index":45,"t":{"86":{"position":[[0,10]]}}}],["resolv",{"_index":50,"t":{"90":{"position":[[0,7]]},"92":{"position":[[0,7]]}}}],["respons",{"_index":74,"t":{"127":{"position":[[12,16]]}}}],["root",{"_index":3,"t":{"5":{"position":[[4,4]]}}}],["rootservic",{"_index":11,"t":{"17":{"position":[[13,11]]}}}],["run",{"_index":6,"t":{"9":{"position":[[0,7]]}}}],["scope",{"_index":75,"t":{"129":{"position":[[0,5]]}}}],["self",{"_index":55,"t":{"92":{"position":[[29,6]]}}}],["server",{"_index":10,"t":{"15":{"position":[[17,6]]}}}],["servic",{"_index":2,"t":{"3":{"position":[[20,7]]},"5":{"position":[[9,7]]},"15":{"position":[[24,7]]},"76":{"position":[[12,7]]},"94":{"position":[[17,8]]},"102":{"position":[[10,8]]}}}],["set",{"_index":69,"t":{"120":{"position":[[0,7]]}}}],["skipself",{"_index":52,"t":{"90":{"position":[[40,10]]}}}],["standard",{"_index":72,"t":{"125":{"position":[[4,9]]}}}],["strategi",{"_index":27,"t":{"38":{"position":[[30,10]]}}}],["temporari",{"_index":82,"t":{"139":{"position":[[3,9]]}}}],["token",{"_index":67,"t":{"116":{"position":[[13,5]]},"118":{"position":[[14,5]]},"120":{"position":[[23,5]]}}}],["transient",{"_index":60,"t":{"102":{"position":[[0,9]]}}}],["transientref",{"_index":62,"t":{"106":{"position":[[0,12]]}}}],["true",{"_index":38,"t":{"68":{"position":[[22,4]]}}}],["type",{"_index":64,"t":{"110":{"position":[[10,4]]}}}],["updat",{"_index":14,"t":{"21":{"position":[[0,8]]}}}],["us",{"_index":4,"t":{"7":{"position":[[0,5]]}}}],["useservic",{"_index":35,"t":{"62":{"position":[[0,10]]}}}],["valu",{"_index":70,"t":{"120":{"position":[[12,5]]}}}],["via",{"_index":42,"t":{"78":{"position":[[19,3]]},"90":{"position":[[8,3]]}}}],["warn",{"_index":80,"t":{"137":{"position":[[3,7]]}}}],["web",{"_index":9,"t":{"15":{"position":[[13,3]]}}}],["webserverservic",{"_index":15,"t":{"21":{"position":[[13,16]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":2,"t":"The most basic application you can write is one which logs \"Hello World!\" and then exits. To give a basic demonstration of how TypeDI works, this is what we'll be doing today. To start, you'll want to make sure you've followed the instructions in Getting Started. This will make sure you have a functioning environment to test TypeDI in. tip To run the examples below, you'll also want ts-node installed. This will let us run TypeScript code without having to transpile it beforehand. npm install -g ts-node It's installed globally so it can be run from the command line, like ts-node main.ts.","s":"Hello World!","u":"/docs/examples/hello-world","h":"","p":1},{"i":4,"t":"To begin, you'll want to create your log.service.ts file, which will contain the application logic to log messages to the console. We'll then use this service later on to log a message! src/log.service.ts import { Service } from '@freshgum/typedi'; @Service([]) export class LogService { public log(message: string) { console.log(message); } } What we just did there was: Declare a service named LogService, Tell TypeDI it has no dependencies on other services, Create a method on the service to log messages. Dependencies are a core concept of TypeDI, and Dependency Injection in general: services can depend on other services! This lets us abstract our application logic away and place it into a neat little service, which we just did above.","s":"Creating your First Service","u":"/docs/examples/hello-world","h":"#creating-your-first-service","p":1},{"i":6,"t":"A typical convention in Dependency Injection is to create a \"root service\", which initialises other services and ensures the environment is ready for them. Typically, an application will then call a method on the root service to run the application. In our root.service.ts file, we'll be doing just that. src/root.service.ts import { Service } from '@freshgum/typedi'; @Service([LogService]) export class RootService { public constructor(private logger: LogService) {} run() { this.logger.log('Hello World!'); } } We just declared a service named RootService, which depends on the LogService to log a message to the console. We've told TypeDI our RootService depends on the LogService through the @Service decorator, which is a fundamental part of the library. With it, you can declare services with a multitude of different configurations (but we'll get into that later).","s":"The Root Service","u":"/docs/examples/hello-world","h":"#the-root-service","p":1},{"i":8,"t":"Finally, to put everything together, we'll create a nice main.ts file which starts the RootService and calls its run method. src/main.ts import { Container } from '@freshgum/typedi'; import { RootService } from './root.service'; const rootService = Container.get(RootService); rootService.run();","s":"Using the Container","u":"/docs/examples/hello-world","h":"#using-the-container","p":1},{"i":10,"t":"If you set up ts-node as advised above, it'll be as simple as: $ ts-node ./src/main.ts Hello World! I hear the questions already: Wait... what? You gave it the name of the class, and it magically created an instance with the required dependencies? How does that work? Fear not! How TypeDI works is covered in the Learning TypeDI section.","s":"Running our New App","u":"/docs/examples/hello-world","h":"#running-our-new-app","p":1},{"i":12,"t":"Our WebServerService is pretty smart. It creates a server for us on-demand, while also handling any requests from users on the server's port. However, one thing it doesn't do is allow the consumer to shut down the server. Currently, the only way to do this is to stop the Node.js process altogether. tip This is an anti-pattern; services should always provide a way to close down any resources they may create over their lifetime. For example, a service managing database connections should allow for the closing of connections too. Let's update our web server service to provide a shutdown method, which will shutdown the active HTTP server. // ... @Service([DatabaseService]) class WebServerService { // ... stopServer() { if (this.server?.listening) { this.server.close(); } } // ... }","s":"Stopping Our App","u":"/docs/examples/nodejs-web-server/application-disposal","h":"","p":11},{"i":14,"t":"In the Services section, we talk about an implementation of a simple web server in TypeDI, through NodeJS and TypeScript. The server would declare the following services: DatabaseService, for handling connections to the app's database. WebServerService, which would handle the instantiation and management of your web server. In this example, we're going to look at implementing that server. tip To run the examples below, you'll also want ts-node installed. This will let us run TypeScript code without having to transpile it beforehand. npm install -g ts-node It's installed globally so it can be run from the command line, like ts-node main.ts.","s":"NodeJS Web Server","u":"/docs/examples/nodejs-web-server/implementation","h":"","p":13},{"i":16,"t":"The main part of our application is going to consist of a web-server and, as such, that's what we're going to implement first. To start, let's create a webserver.service.ts which contains the logic for deploying the server, responding to requests, and closing the server. src/webserver.service.ts import { Service } from '@freshgum/typedi'; import http, { Server, IncomingMessage, ServerResponse } from 'http'; // Node's HTTP module. @Service([]) export class WebServerService { private server!: Server; async startServer() { if (this.server?.listening) { return null; } const server = this.createServer(); // Listen for connections on port 8080. // Make sure this isn't taken when you run the example! return server.listen(8080); } protected createServer() { return http.createServer((request, response) => this.handleRequest(request, response)); } protected handleRequest(request: IncomingMessage, response: ServerResponse) { switch (response.url) { case '/hello': response.writeHead(200); response.end('Hello!'); break; default: response.writeHead(404); response.end('Not Found'); break; } } } The WebServerService supports the creation of the server and management of requests. This lets it respond to HTTP requests from users. This is a good start, but we're not done yet...","s":"Creating our Web Server Service","u":"/docs/examples/nodejs-web-server/implementation","h":"#creating-our-web-server-service","p":13},{"i":18,"t":"To make our example run, we'll need something called a root service. This service will depend on our web server and start it. note While not explicitly required, the root service pattern is recommended for applications. It keeps your application initialisation code inside the context of a DI container, with as little as possible outside it. src/root.service.ts import { Service, Container } from '@freshgum/typedi'; import { WebServerService } from './webserver.service'; @Service([WebServerService]) export class RootService { constructor(private webServer: WebServerService) {} async bootstrap() { return this.webServer.startServer(); } } // If we're being run as \"$ ts-node root.service.ts\", start the server automatically. if (require.main === module) { const rootService = Container.get(RootService); rootService.bootstrap().then(() => console.log('Web server online!')); } Let's run our app! Run the following code: $ ts-node ./root.service.ts Now, navigate to http://localhost:3000/hello and examine your work :-)","s":"Creating our RootService","u":"/docs/examples/nodejs-web-server/implementation","h":"#creating-our-rootservice","p":13},{"i":20,"t":"As with any modern web application, we'll need a way to store inputs from users and then output them at a later date. To do this, we'll be using a database. note This section is skippable. We won't be setting up a database here. The example below makes use of a map to keep the example simple. We'll achieve this through a service which will read and write to an in-memory database. To make it easier to migrate to an out-of-process database like SQLite later on, we'll also make the APIs for reading and writing data asynchronous. src/database.service.ts import { Service } from '@freshgum/typedi'; @Service([ ]) export const DatabaseService { private _map = new Map(); async read (key: string) { this._map.get(key); } async write (key: string, value: string) { this._map.set(key, value); } }","s":"Adding a database","u":"/docs/examples/nodejs-web-server/implementation","h":"#adding-a-database","p":13},{"i":22,"t":"Now we have a database, we can update the web server to read and write values to it. Let's update our web-server service with two new routes: one for reading a value, and another for writing it. src/webserver.service.ts // ... import { DatabaseService } from './database.service'; @Service([DatabaseService]) class WebServerService { // ... constructor(private database: DatabaseService) {} protected handleRequest(request: IncomingMessage, response: ServerResponse) { const { searchParams: params } = new URL(request.url ?? ''); switch (response.url) { case '/hello': response.writeHead(200); this.database.get('name').then(name => { response.end(`Hello, ${name ?? 'unknown person'}!`); }); break; case '/setname': response.writeHead(200); this.database.set('name', params.name).then(() => { response.end(`Hello, ${params.name}!`); }); break; default: response.writeHead(404); response.end('Not Found'); break; } } // ... } Now, we've got a functioning web-server which can store the user's name in memory. Try running the updated version, like so: $ ts-node ./root.service.ts Now, when we tell the server our name with http://localhost:3000/setname?name=Joe, the /hello endpoint will address you by name! 🎉","s":"Updating our WebServerService","u":"/docs/examples/nodejs-web-server/implementation","h":"#updating-our-webserverservice","p":13},{"i":25,"t":"One primary advantage of using TypeDI, and Dependency Injection in general, is it greatly improves your ability to test individual components in isolation, by providing them with different values and implementations than would normally be present in your app. For instance, consider the implementation of the HTTP server in the previous example. In testing, we may not want it to actually create a HTTP server, though we would want it to ensure it creates a HTTP server successfully. note For the examples below, we'll be making use of Jest. Tests are written in an easy-to-follow format.","s":"Testing our App","u":"/docs/examples/nodejs-web-server/testing","h":"","p":24},{"i":27,"t":"TypeDI maintains a global container registry, which is a shared registry of all containers it knows about. Aside from custom containers, all newly-created containers are added to the registry. tip By default, if a container with the same name already exists, it is returned. There are multiple ways to create a container, each of which will be demonstrated below.","s":"Creating Containers","u":"/docs/guide/containers/creating-containers","h":"","p":26},{"i":29,"t":"API Reference The static of method can be used to create both orphaned and child containers, like so: import { ContainerInstance, Container } from '@freshgum/typedi'; // Create an orphaned container: ContainerInstance.of('my-new-container', null); // Create a container as a child of the default container: ContainerInstance.of('my-second-new-container', Container); If the second parameter, parent, is not provided, then it defaults to the default container.","s":"ContainerInstance.of(id, parent?, options?)","u":"/docs/guide/containers/creating-containers","h":"#containerinstanceofid-parent-options","p":26},{"i":31,"t":"API Reference The instance method of can also be used to create containers, in XXX","s":"Container.of(id, options?)","u":"/docs/guide/containers/creating-containers","h":"#containerofid-options","p":26},{"i":33,"t":"API Reference The instance ofChild method can be used to create a container which is a child of the current. For example: import { Container } from '@freshgum/typedi'; // Create a child of the default container: const newContainer = Container.ofChild('my-new-container'); assert(newContainer.parent === Container); // You can also create a child of a child! const newNewContainer = newContainer.ofChild('my-really-new-container'); assert(newNewContainer.parent === newContainer);","s":"Container.ofChild(id, options?)","u":"/docs/guide/containers/creating-containers","h":"#containerofchildid-options","p":26},{"i":35,"t":"In each of the above methods, an options parameter of type CreateContainerOptions can optionally be provided. These options dictate how TypeDI should handle certain situations, such as when... a container with the ID already exists (a conflict) a container with the ID does not exist (free)","s":"Creation Options","u":"/docs/guide/containers/creating-containers","h":"#creation-options","p":26},{"i":37,"t":"In many situations, you'll want an operation to fail if it means it returns a container with the same ID, but with completely different characteristics. Consider the following (incorrect) example: // Create an orphaned container. ContainerInstance.of('my-container', null); // Create a child of the default container. Container.ofChild('my-container'); As the call to ofChild specifies an ID which already exists in the container registry, the existing (orphaned) container is returned. In most cases, this isn't what you want. To remedy this, we can append a list of options to our ofChild call to fail if a container with the ID already exists. // Create an orphaned container. ContainerInstance.of('my-container', null); // Create a child of the default container. Container.ofChild('my-container', { onConflict: 'throw', }); The above example will throw an error due to the conflicting container IDs. This is one of three conflict strategies you can choose to resolve a conflict. The others are as follows: 'returnExisting': Return the existing container. This is the default. 'throw': Throw an error upon conflict. 'null': Return null upon conflict.` A better solution would be to restrict the use of well-known string-based keys, replacing them with well-known instances of Symbol. Symbols, even with the same name, will never collide. Let's update our example above to make use of Symbols instead: export const MY_CONTAINER = Symbol('my-container'); export const MY_SECOND_CONTAINER = Symbol('my-container'); // Create an orphaned container. ContainerInstance.of(MY_CONTAINER, null); // Create a child of the default container. ContainerInstance.of(MY_SECOND_CONTAINER);","s":"Dealing with conflicts","u":"/docs/guide/containers/creating-containers","h":"#dealing-with-conflicts","p":26},{"i":39,"t":"Consider the following example: import { ContainerInstance, Token } from '@freshgum/typedi'; // Keep the container ID local, so other packages have to use // our function below to create the container. const VALUE_CONTAINER = Symbol('value'); export const START_TIME = new Token(); function getValueContainer() { const container = ContainerInstance.of(VALUE_CONTAINER, null, { onConflict: 'null', }); // If we've already created the container, the above call returns null. if (container) { container.setValue(START_TIME, performance.now()); } // If we've already set up the container, 'container' will be null. // However, we still want to return it here, so we re-get it without a conflict strategy. return container ?? ContainerInstance.of(VALUE_CONTAINER); } // ... function logEvents() { // Get the time when the application started. const startTime = getValueContainer().get(START_TIME); // ... }","s":"Real-life example of conflict strategies","u":"/docs/guide/containers/creating-containers","h":"#real-life-example-of-conflict-strategies","p":26},{"i":41,"t":"In some cases, you may not want a container to be created if the ID isn't in use. For argument's sake, let's say your application sets up a container with specific values. A good way to ensure the container is always instantiated correctly can be found below. Let's tweak our event-logging example above to incorporate the usage of free strategies instead. import { ContainerInstance, Token } from '@freshgum/typedi'; // Keep the container ID local, so other packages have to use // our function below to create the container. const VALUE_CONTAINER = Symbol('value'); export const START_TIME = new Token(); function getValueContainer() { // ... } // ... function logEvents() { // Get the value container. const valueContainer = ContainerInstance.of(VALUE_CONTAINER, null, { onFree: 'null', }); if (valueContainer === null) { // Oh no! We've forgotten to call `getValueContainer`. return; } // Get the time when the application started. const startTime = valueContainer.get(START_TIME); // ... }","s":"Dealing with free IDs","u":"/docs/guide/containers/creating-containers","h":"#dealing-with-free-ids","p":26},{"i":43,"t":"In some cases, your definition of a conflict may differ from TypeDI's default, which checks whether another container with the same ID already exists. In this case, the library helpfully provides a way to define what a conflict is. This is done through conflict definitions. Currently, there are two ways to define a conflict: 'rejectAll': This is the default. 'allowSameParent': Allow conflicts with containers with the same container to the one provided. note If you pass a conflict definition without an accompany strategy, by default, TypeDI will throw an error if a conflict arises. In the case of allowSameParent, if a conflict were to arise, TypeDI would check whether the parent of the conflicting container matches the one you expected. If not, the strategy is executed. Let's look at an example below: import { Container } from '@freshgum/typedi'; // Create a child container of the default container. Container.ofChild('my-new-container'); // Do the same thing again. Container.ofChild('my-new-container', { onConflict: 'throw', conflictDefinition: 'allowSameParent', }); In the above example, the second call succeeds, even though the specified ID already exists in the registry. Without the explicit conflict definition, the above call would throw.","s":"Defining a conflict","u":"/docs/guide/containers/creating-containers","h":"#defining-a-conflict","p":26},{"i":45,"t":"In some scenarios, you may wish to change how containers work. In this case, custom containers may be appropriate. In TypeDI, each container is always an instance of ContainerInstance. However, you can extend this class with custom functionality, and then register it as an ordinary container. In practice, this looks like the following: import { ContainerInstance, ContainerRegistry, ServiceIdentifier, ContainerIdentifier } from '@freshgum/typedi'; export class MyContainerInstance { public constructor(id: ContainerIdentifier, parent?: ContainerInstance) { super(id, parent); } // ... } const newContainer = new MyContainerInstance('my-new-container'); ContainerRegistry.registerContainer(newContainer); tip Your custom container class will need a public constructor as, currently, TypeDI's ContainerInstance has a protected constructor. Once your custom container has been registered, it functions as an ordinary container. Calls to methods such as ContainerInstance.of return the custom instance.","s":"Custom Containers","u":"/docs/guide/containers/custom-containers","h":"","p":44},{"i":47,"t":"Containers power the majority of TypeDI. They're used to store, retrieve and instantiate services on-the-fly. Crucially, a TypeDI-dependent application must have a container to function.","s":"Containers","u":"/docs/guide/containers/introduction","h":"","p":46},{"i":49,"t":"Thankfully, TypeDI provides one by default, which is aptly named the default container. By default, services are attached to this, and can be retrieved at any time (like we saw in our Hello World! example.) tip Throughout this guide, we've assumed services are bound to the default container. This isn't always true! TypeDI allows you to bind services to different containers. Read more about this in the Services section. To get the default container, we just need to import Container from TypeDI: import { Container } from '@freshgum/typedi';","s":"Default Container","u":"/docs/guide/containers/introduction","h":"#default-container","p":46},{"i":51,"t":"One of the most powerful features of TypeDI is container inheritance. To understand how inheritance works, you first have to understand how individual containers work. Each container holds an internal map of services and values. When a service is registered against a specific container, it's added to that internal registry. Then, when the service is requested, the container knows how to handle the request. In most circumstances, the service knows how to handle the value itself. However, in some cases, it may have to ask its parent. By design, containers can have parents. If a container can't find a value itself, it can defer the operation to its parent. This happens recursively until either the value is found somewhere in the tree, or an error is thrown once the tree has been exhausted. As a concrete example of this, let's see what happens when we register a service to the default container, and then request the service from a newly-created child container. import { Container, Service } from '@freshgum/typedi'; @Service([ ]) class MyService { } const childContainer = Container.ofChild('my-new-container'); childContainer.get(MyService); The child container didn't know how to resolve that value, so it looked it up in its parent, the defualt container, which did. The metadata for that service was then pulled from the parent, with the newly-created instance being stored in the child container and then returned to the caller. tip This highlights an important TypeDI design point: service instances are bound to the containers which created them. So, in the above example, even though the child container resolved the identifier via its parent (the default container), the actual instance of MyService was then stored in the child container. This is good! It gives you the flexibility to use services from other containers while also supplying them with different values. If you're a visual learner, here's a flow-chart of the value resolution process. Over the course of our application, we may want to make separate containers for different parts of the application. This will let us compartmentalise values and services under different containers, with each container having a different responsibility. To do this, we have multiple APIs which we will explore below.","s":"Container Inheritance","u":"/docs/guide/containers/introduction","h":"#container-inheritance","p":46},{"i":53,"t":"As we explored above, all services are bound to the default container by default. However, one potentially unwanted behaviour in this API is that, if you request any identifiers via Container.get (or use them as dependencies in a service and then execute that service), service instances would then be cached in the default container. To remedy this, we can create a child container of the default container, like so: import { Container } from '@freshgum/typedi'; const myNewContainer = Container.ofChild('my-new-container'); This also lets us immutably extend the default container by adding new services to our child container via Container.set.","s":"Creating child containers","u":"/docs/guide/containers/introduction","h":"#creating-child-containers","p":46},{"i":55,"t":"Sometimes, you might not want to create a container with a parent. In this case, only the values explicitly set in that container (and via @Service decorator's container option) will be available in the container. Currently, the API provides the following function to achieve this: import { ContainerInstance } from '@freshgum/typedi'; ContainerInstance.of('my-new-container-without-a-parent', null);","s":"Creating containers with no parent","u":"/docs/guide/containers/introduction","h":"#creating-containers-with-no-parent","p":46},{"i":57,"t":"In many cases, you'll want to get rid of a container once you're finished with it. This might be when you're using individual containers for worker tasks, for example. In this case, you can make use of the container's dispose method, which disposes of the container asynchronously. import { Container } from '@freshgum/typedi'; // Create a new container. const myNewContainer = Container.ofChild('my-new-container'); myNewContainer.set({ id: 'my-value', value: 'hello-world', dependencies: [ ] }); myNewContainer.dispose().then(() => console.log('disposed!')); Once you've disposed a container, it's essentially useless. You won't be able to resolve values from it (even from its parent), or perform any other actions. If you try to get a value from a container after you've disposed it, TypeDI will throw a runtime error. caution It's typically best not to dispose of the default container. Unless you've bound all your services to a different container, without the default container they're virtually inacessible.","s":"Disposing a container","u":"/docs/guide/containers/introduction","h":"#disposing-a-container","p":46},{"i":59,"t":"Welcome to the TypeDI documentation! To get started, you'll need to ensure you have a working environment containing Node and NPM (or any other package manager). Then, you'll need to install TypeDI: NPM Yarn PNPM $ npm install @freshgum/typedi $ yarn add @freshgum/typedi $ pnpm install @freshgum/typedi You're done! Move on to the Hello World! example to learn how to use TypeDI.","s":"Getting Started","u":"/docs/getting-started","h":"","p":58},{"i":61,"t":"A set of bindings have been created to simplify usage of TypeDI within React applications. danger The React hooks are currently in beta, and the API surface could change at any time. They may also contain bugs. If you wish to use them in a production application, please consider locking the package version used to prevent future updates from making unexpected changes. These bindings consist of the following hooks: useService useServiceOrNull useContainer useTreeVisitor","s":"React Bindings","u":"/docs/guide/react/introduction","h":"","p":60},{"i":63,"t":"This hook is rather simple: it gets a service with a specific identifier from within a specified container which, by default, is the default container instance.","s":"useService","u":"/docs/guide/react/introduction","h":"#useservice","p":60},{"i":65,"t":"Ordinarily, services aren't created until either: They're explicitly called via Container.get, or... A service which is called via Container.get uses the service as a dependency. Therefore, if you need a way to start a service immediately, TypeDI provides a concept called Eager Services. caution Eager Services create fragile application code, and should only be used in a few limited scenarios. If you think you need this feature, consider its application carefully and use it very frugally. In future, eager services will not be initialised by default without an explicit call to enableEagerLoading (see #17). For more information on why eager services are discouraged, see the section below on its dangers.","s":"Eager Services","u":"/docs/guide/services/eager-services","h":"","p":64},{"i":67,"t":"To create a service which is immediately run upon declaration, we can do the following: src/log.service.ts import { Service } from '@freshgum/typedi'; @Service({ eager: true }, []) export class LogService { constructor() { this.log('LogService is ready!'); } public log(message: string) { console.log(message); } } Then, once LogService is imported, its constructor will immediately run and log the message to the console.","s":"Example","u":"/docs/guide/services/eager-services","h":"#example","p":64},{"i":69,"t":"If you declare an eager service, the service won't be run until it's been imported by another file. Therefore, if you forget to import your eager DatabaseService, the connection to the database won't be initialised early on in the application flow. Another pain-point of eager services is testability: by making side-effects run on import, we create a dangerous precedent for the API, and overall make it much harder to test. Consider the following (simplified) example: src/database.service.ts import { Service } from '@freshgum/typedi'; @Service({ eager: true }, []) export class DatabaseService { constructor() { this.connect(); } private connection: Connection; private async connect() { // Connect to the database here... } public async getValue(name: string): string { return this.connection.getValue(name); } } If we're looking to test our application and replace DatabaseService with something else, how would we import it to get the ID to replace? Normally, to stub the database connection, you would do something like this: spec/app.service.ts import { Service } from '@freshgum/typedi'; import { DatabaseService } from '../src/database.service.ts'; // Oops! @Service({ id: DatabaseService }, []) export class FakeDatabaseService implements DatabaseService { private map = new Map(); private async connect() {} public async getValue(name: string): string { return this.map.get(name); } } // Test our app... Do you see the issue? We've imported DatabaseService to get its ID (to replace with a stub), but by doing that, we've created a connection to the database! This means that, currently, we can't test the application without also creating a wasted database connection. tip Instead of using eager services, consider creating a root service which runs side effects such as database initialisation before the rest of the environment is loaded. This does the same thing without the above disadvantages.","s":"The Dangers of eager: true","u":"/docs/guide/services/eager-services","h":"#the-dangers-of-eager-true","p":64},{"i":71,"t":"Sometimes, you'll encounter a situation within your app that requires breaking out of the more expressive decorator syntax. This might be to check whether certain dependencies exist, or to perform any computations on the application's container. To do this, TypeDI helpfully provides the HostContainer function, which allows you to inject a service's executing container into the service. caution HostContainer is considered an \"escape hatch\", and it should be avoided where possible. This is called the Service Locator pattern, and it's only useful in certain scenarios. In many cases, it's typically considered an anti-pattern. (archive) If misused, it could mean that the dependencies of your serivce become opaque, where the only way to see what the service requires is to view its implementation. The HostContainer function returns a Token which, when passed to a DI container, resolves to the container itself. This means that the returned Token from HostContainer can also be passed to Container.get. import { ContainerInstance, HostContainer, Service } from '@freshgum/typedi'; @Service([ HostContainer(), ]) export class MyService { constructor(private container: ContainerInstance) { if (container.has(MyService)) { console.log('Hello world!'); } } }","s":"HostContainer","u":"/docs/guide/services/host-container","h":"","p":70},{"i":73,"t":"Services are one of the core concepts of Dependency Injection. Each service has a certain responsibility and, when each service is brought together, they power the functionality of your project. note This page doesn't aim to be an introductory guide to Dependency Injection. If you're new to the concept, here are some recommended learning resources: \"Dependency Injection Demystified\" by James Shore (archive) \"Inversion of Control Containers and the Dependency Injection pattern\" by Martin Fowler (archive) In your typical NodeJS app, you may have the following services: DatabaseService, for handling connections to the app's database. WebServerService, which would handle the instantiation and management of your web server. DiagnosticsService, allowing for sending diagnostics to a central service. tip To see what the above server would look like when implemented in TypeDI, check out the NodeJS Web Server example. Each service manages one part of the application. Additionally, each service abstracts away implementation logic. For example, if your application makes use of PostgreSQL now, it is most likely possible that you can change the underlying database implementation within DatabaseService to support a different database, such as MySQL. TypeDI lets you express services through an expressive decorator-based syntax, which allows you to: Declare any neighbouring services a service depends on Store implementation logic in an easily-readable ES6 class format Provide a public interface for consumers of your service Let's put that into practice, while also exploring the various ways you can tweak the declaration of services to meet various use-cases you may require in your app.","s":"Services","u":"/docs/guide/services/introduction","h":"","p":72},{"i":75,"t":"By default, services are attached to the default container. However, we can tweak this behaviour by introducing an options object to the @Service decorator. Let's explore how our Hello World! example could be changed to bind the service to a different container. src/log.service.ts import { Service, Container } from '@freshgum/typedi'; export const container = Container.ofChild('my-new-container'); @Service({ container }, []) export class LogService { public log(message: string) { console.log(message); } } What we did there was add an options object to our service declaration. This gives TypeDI certain instructions on how & why the service should be initialised. In our case, we only changed the container.","s":"Attaching to Containers","u":"/docs/guide/services/introduction","h":"#attaching-to-containers","p":72},{"i":77,"t":"As we've now moved the LogService to a different container, the following will no longer work: src/main.ts import { Container } from '@freshgum/typedi'; import { LogService } from './log.service'; const logger = Container.get(LogService); // ^^^^^^^^^^^^^ // ServiceNotFoundError: // Service with \"LogService\" identifier was not found in the container. This is because containers don't search upwards. This is covered in the Containers guide. Instead, what we have to do is use our newly-created container to find the service. Let's update our code above. src/main.ts import { Container } from '@freshgum/typedi'; import { LogService, container } from './log.service'; const logger = container.get(LogService); Perfect!","s":"Finding our Service","u":"/docs/guide/services/introduction","h":"#finding-our-service","p":72},{"i":79,"t":"In some cases, you'll want to create a service via a function instead of have TypeDI create it for you. For these cases, the Service decorator allows you provide a factory function, which TypeDI will use instead of the new operator to create an instance of your service. XXX","s":"Creating Instances via Factories","u":"/docs/guide/services/introduction","h":"#creating-instances-via-factories","p":72},{"i":81,"t":"In some scenarios, you may want to store multiple instances of a service in your container. Using get wouldn't accomplish this, as subsequent calls would provide the same instance. However, one important feature of TypeDI is its ability to allow you to store multiple values under one ID. Let's explore this below with a quick example. Let's consider the example of an application which needs to store information about multiple users. Some users have different roles, which we'll also need to represent via individual services. src/user.class.ts export class UserService { public readonly role = 'user'; constructor(public name: string) {} } Now, let's create a ManagerService to represent managers. Managers should have the ability to perform administrative actions, so we'll add a deleteComment method. src/manager-user.class.ts import { User } from './user.class'; export class Manager extends User { public readonly role = 'manager'; constructor(public name: string) { super(name); } deleteComment(commentId: string) { // ... } } To store each user, we'd also want a Token that we can use to reference them. Let's do this below. src/app.ts import { Container } from '@freshgum/typedi'; import { User } from './user.class'; export const USER = new Token(); const joe = new User('Joe'); const rick = new ManagerUser('Rick'); function addUser(value: User) { Container.set({ id: USER, multiple: true, value, dependencies: [] }); } addUser(joe); addUser(rick); note The advantage of this approach is that it's much easier to keep track of each service instance, as they're all stored in one container. You'll notice that while we can store individual users, we can't currently access them. Let's fix that. src/app.ts // ... function getUsers() { return Container.getMany(USER); } console.log(getUsers()); // -> [class User, class ManagerUser] There we go! There's a basic example of how to use multiple services in TypeDI.","s":"Multiple Services","u":"/docs/guide/services/multiple-services","h":"","p":80},{"i":83,"t":"Many times, you'll want a service to rely on a dependency, but there's always the possibility of it not existing (and you wouldn't want your service to fail if it didn't). Or, you want to take advantage of container inheritance and resolve a symbol in the context of the current parent's container, or restrict the resolution process to return null if the current container doesn't have it. (There are more features too.) This is where resolution constraints shine. They allow you to specify how you'd like a certain dependency to be resolved, by a set-list of pre-defined strategies. tip This feature is very similar to Angular's DI decorators. In fact, resolution constraints were originally designed to mimic these features in TypeDI. Therefore, if you're familiar with Angular, you most likely already understand resolution constraints.","s":"Resolution Constraints","u":"/docs/guide/services/resolution-constraints","h":"","p":82},{"i":85,"t":"When a service requests an identifier (which can be another service or a token) as a dependency, the Dependency Injection framework has to check its internal map for that identifier and, if found, return an instance of that value. If the identifier cannot be found, it checks its parent, which checks its parent (recursively) until the chain is exhausted. An error is then thrown. If you're a visual learner, here's a flow-chart of the process. While this behaviour makes sense for most configurations, there are most certainly times when you'll want to modify it a little. In the below sections, we'll explore how to do that in TypeDI.","s":"Introduction","u":"/docs/guide/services/resolution-constraints","h":"#introduction","p":82},{"i":87,"t":"In TypeDI, the concept of constraining certain resolutions is done through specific functions which, when called, return a bit. Multiple functions can be conjoined with the Bitwise OR operator to form a bitmask, like so: Optional() | Many() | Self() note You don't have to understand how bitmasks work to make use of resolution constraints. The functions above construct the bitmask for you, which can then be safely passed to TypeDI. danger You should always make use of the above functions instead of constructing a bitmask yourself, as the signature of the mask could change at any time.","s":"Resolution Constraint Flags","u":"/docs/guide/services/resolution-constraints","h":"#resolution-constraint-flags","p":82},{"i":89,"t":"If your service wants a dependency, but doesn't need it, you can make use of the Optional() flag. If the identifier cannot be found, the value will be substituted with null. (This would be useful if you were, for example, building a library where some parts of the configuration might not have been set-up by the end-user.) tip Adding an optinal constraint isn't always necessary: only add it if you're not 100% sure that the service you're using as a dependency will not be available at runtime. Let's explore how we could make use of Optional in an example service, which requests an identifier from the container that may not exist. src/configuration-reader.service.ts import { Service, Optional } from '@freshgum/typedi'; import { APP_TOKEN } from './configuration'; // Where APP_TOKEN is a Token. @Service([ [APP_TOKEN, Optional()] ]) export class ConfigurationReaderService { constructor (private appToken: string | null) { } validateConfiguration () { if (this.appToken === null) { console.warn('An app token was not provided!'); } } } caution If you're using an optional service, make sure you also allow the type to be null (like above, where we used | null) Otherwise in usage, you may forget that the value may not exist, causing runtime errors. In the above service, we requested APP_TOKEN as a dependency. In the case of our library, this would be set by the user before they start the root service. However, if that value isn't set, we log a warning to the console. Normally, if APP_TOKEN wasn't present in the container, the container itself would throw an error.","s":"Making dependencies optional with Optional()","u":"/docs/guide/services/resolution-constraints","h":"#making-dependencies-optional-with-optional","p":82},{"i":91,"t":"Much like in Angular, the SkipSelf can be applied to individual dependencies to tell the container to resolve them from its parent container. This can be useful in the case of an application which makes use of container inheritance to provide a different set of tokens to services under it. caution Use of SkipSelf makes your services dependent on a certain container structure. If you were to change that structure, resolutions may fail, leading to runtime errors. Use it carefully. For instance, consider the following example of an blog. The application creates a Page service for each page of the blog. Each Page service has access to the DOM_NODE token, which: in the child container the Page is run in, is set to the DOM element containing the individual page. in the parent container, is set to the body element. Each page contains a dark mode button which, when clicked, toggles the \"dark-mode\" class on the element. src/dom-node.token.ts import { Token } from '@freshgum/typedi'; export const DOM_NODE = new Token(`\\ The current DOM node. In services for individual pages, this will be set to the node of the page element. In the root, this will be set to the body of the document. `); src/page.service.ts import { Service, SkipSelf } from '@freshgum/typedi'; import { STORAGE } from './storage.token'; @Service([ DOM_NODE, [DOM_NODE, SkipSelf()] ]) export class PageService { constructor (private pageNode: HTMLElement, private rootNode: HTMLElement) { } bootstrap () { this.pageNode.getElementById('dark-mode-button').addEventListener('click', () => { this.rootNode.classList.toggle('dark-mode'); }); } } src/root.service.ts import { ContainerInstance, Service, HostContainer } from '@freshgum/typedi'; import { PageService } from './page.service'; import { route } from 'my-router'; // Placeholder for your router :-) @Service([ HostContainer() ]) export class RootService { constructor (private container: ContainerInstance) { container.set({ id: DOM_NODE, value: document.body, dependencies: [ ] }); } async renderPage (pageUrl: string) { const childContainer = this.container.ofChild(Symbol('page')); const { renderedElement } = await route(pageUrl); childDontainer.set({ id: DOM_NODE, value: renderedElement, dependencies: [ ] }); childContainer.get(PageService).bootstrap(); } } const root = Container.get(RootService); root.renderPage('/introduction'); (While this is a rather contrived example, it serves as a guide for how to use the constraint.)","s":"Resolve via the container's parent with SkipSelf()","u":"/docs/guide/services/resolution-constraints","h":"#resolve-via-the-containers-parent-with-skipself","p":82},{"i":93,"t":"The Self constraint allows you to tell the container not to traverse up the container parent tree until it finds a value. tip This constraint is most useful when combined with Optional. That way, if the current container doesn't have the value, a runtime error would not occur. If you're a visual learner, here's a flow-chart of the resolution process with Self. If we were to modify our flow-chart from above, the resolution for resolving identifiers marked with Self would look like this:","s":"Resolve non-recursively with Self()","u":"/docs/guide/services/resolution-constraints","h":"#resolve-non-recursively-with-self","p":82},{"i":95,"t":"The Many constraint is functionally equivalent to Container.getMany. It can also be combined with Optional, SkipSelf (or Self) to further constrain resolution. To provide an example of this, consider the following: XXX","s":"Acquire multiple services with Many()","u":"/docs/guide/services/resolution-constraints","h":"#acquire-multiple-services-with-many","p":82},{"i":97,"t":"Sometimes, you'll want a service to only be created once. This might be when it has side-effects, such as creating a web server. TypeDI supports this use-case by allowing individual services to be marked as singletons. When they are, only one instance of them will ever be created over the lifetime of the application. tip Singletons are attached to the globally-available default container. This means that, regardless of the container which resolves them, the same value will always be returned. Singletons are created very similarly to ordinary services, with one extra configuration parameter that must be declared. As an example, let's create services for an application that hosts a web server. We'd only want that web server to be created once, so we'd mark it as a singleton. src/webserver.service.ts import { Service } from '@freshgum/typedi'; import http from 'http'; // Node's HTTP module @Service( { singleton: true, }, [] ) export class WebServerService { private server: http.Server; startServer() { this.server = http.createServer((request, response) => { response.write('Hello world!'); response.end(); }); this.server.listen(3000); } } Once we've done that, we can then start the web server in our root service. src/root.service.ts import { Service } from '@freshgum/typedi'; import { WebServerService } from './webserver.service'; @Service([WebServerService]) export class RootService { constructor(private webServer: WebServerService) {} bootstrap() { this.webServer.startServer(); } } Now, any services which use the web-server as a dependency, regardless of if they are child containers, will always refer to that same web server instance. This prevents multiple web servers from being started at once. tip Utilising singletons for run-once operations is broadly considered a good idea. In the case of our demo application, if multiple web server instances were to start, you would experience runtime errors as only one server can be hosted on a port at a time. On the contrary, TypeDI also supports creating multiple instances of a service.","s":"Singletons","u":"/docs/guide/services/singletons","h":"","p":96},{"i":99,"t":"Normally, when you create a service, it's cached and any further calls to Container.get (or when the service is used as a dependency) result in the same instance of the service. In some cases, that behaviour may actually be undesirable. For this use-case, TypeDI provides transient services, which are re-instantiated every time they're requested. tip If your service performs complicated calculations, or emits side-effects (e.g. database connections), you may find that the performance of your application quickly deteriorates. To fix this, you can \"hoist\" the logic outside of your transient service. Read more about this in the Performance section.","s":"Transient Services","u":"/docs/guide/services/transient-services","h":"","p":98},{"i":101,"t":"To demonstrate how transient services, let's create a simple example: a performance timing API. The timing API should correspond with one set of marks alongside a final measurement. src/timer.service.ts import { Service } from '@freshgum/typedi'; @Service({ transient: true }, [ ]) export class TimerService { private name: string | null = null; start (name: string) { this.name = name; performance.mark(`${name}-start`); } end () { const endName = `${this.name}-end`; performance.mark(endName); performance.measure(this.name, `${this.name}-start`, endName); } } Now, we'll make use of this timing API in our page service, a fictional service which is responsible for rendering pages. src/page.service.ts import { Service, HostContainer } from '@freshgum/typedi'; import { TransientRef } from '@freshgum/typedi/contrib/transient-ref'; import { TimerService } from './timer.service'; @Service([ TransientRef(TimerService) ]) export class PageService { constructor (private timerServiceRef: TransientRef) { } async renderPage () { const timer = this.timerServiceRef.create(); timer.start('page-render'); // Perform page rendering logic... timer.end(); } } Now, when a page is rendered, we'll have new performance entries to upload to a central diagnostics server.","s":"Demo","u":"/docs/guide/services/transient-services","h":"#demo","p":98},{"i":103,"t":"When you use a transient service as a dependency, the same instance of the service will be used over the lifetime over the consuming service. If this isn't the desired behaviour, you would be better served by the HostContainer() API, which allows you to get an instance of the container the service is running under. Then, you can replace references to the transient service with calls to Container.get. In the example above, we did just that. This allowed us to get a new instance of TimerService for each page that was rendered in the app.","s":"Transient Services as Dependencies","u":"/docs/guide/services/transient-services","h":"#transient-services-as-dependencies","p":98},{"i":105,"t":"If your transient service relies on a great number of other transient services, computes expensive computations, or creates side-effects which may affect the application, you may find that transient services affect your application's performance. For this reason, it's typically recommended to use static services or singletons if your workflow doesn't explicitly require services to be transient. If you would still prefer transient scenarios in this case, consider hoisting calculations and side-effects out of individual transient services, replacing them with references to a static / singleton service.","s":"Performance","u":"/docs/guide/services/transient-services","h":"#performance","p":98},{"i":107,"t":"In v0.5.0, a new function was added to make the management of transient services easier. This should replace any prior usages of HostContainer.","s":"TransientRef","u":"/docs/guide/services/transient-services","h":"#transientref","p":98},{"i":109,"t":"TypeDI is primarily developed for use in TypeScript. However, to make it easier to make use of it in JavaScript, a JSService function is provided. As an example of how to use it, let's tweak the logging service we made in the Hello World! example: src/log.service.js import { JSService } from '@freshgum/typedi'; export const LogService = JSService( [], class LogService { log(message) { console.log(message); } } ); src/root.service.js import { Service } from '@freshgum/typedi'; export const RootService = JSService( [LogService], class RootService { public constructor(private logger) {} run() { this.logger.log('Hello World!'); } } ); caution As with Service, don't forget to place any dependencies your service requires in the array. Otherwise, TypeDI won't know your service requires them, and won't pass them in as arguments. As you can see, the API is quite similar to its TypeScript-friendly equivalent. With our changes, the example above will run in plain JavaScript with no problems. But we're not done yet.","s":"Usage in JavaScript","u":"/docs/guide/services/usage-in-javascript","h":"","p":108},{"i":111,"t":"In the examples above, TypeScript doesn't interpret each service as a class. That means the following will fail: src/example.ts import { LogService } from './log.service'; const logService: LogService = new LogService(); // ^^^^^^^^^^ // 'LogService' refers to a value, but is being used as a type here. Did you mean 'typeof MyService'? If you're type-checking JavaScript with TypeScript, that can quickly become a problem. That's where the JSService type comes in. Cleverly, the JSService import is actually two imports: one for the function implementation, and another for a type. The type allows you to wrap the service in the type to elide type errors, like so: src/example.ts import { JSService } from '@freshgum/typedi'; import { LogService } from './log.service'; const logService: JSService = new LogService(); note Unfortunately, due to a limitation in TypeScript, it's not currently possible to export the equivalent JSService-wrapped type from a .js file. See microsoft/TypeScript#48104.","s":"JSService type","u":"/docs/guide/services/usage-in-javascript","h":"#jsservice-type","p":108},{"i":113,"t":"The JSService function also supports functional classes as opposed to ES6 ones. This lets us take advantage of TypeDI in ES5 environments without any transpilation steps. As an example, let's change the LogService we made above to the following: src/log.service.js import { JSService } from '@freshgum/typedi'; export const LogService = JSService([], function LogService() {}); LogService.prototype.log = function (message) { console.log(message); }; We've now moved our methods outside of the main call to JSService. Instead, they reside below it. info It's generally recommended to use ES6 classes wherever possible, as they provide a better experience in editors such Visual Studio Code. The example above might need additional typing in adjacent .d.ts files. As of currently, the methods in the above service are not automatically inferred by TypeScript. Therefore, when used, they are of type any.","s":"Function classes","u":"/docs/guide/services/usage-in-javascript","h":"#function-classes","p":108},{"i":115,"t":"In TypeDI, tokens can be used to create a reference to a static value inside the container. They can then be injected into services as regular dependencies. As an example, let's update our Hello World! example to print the value of a token instead of a hard-coded string.","s":"Tokens","u":"/docs/guide/tokens/introduction","h":"","p":114},{"i":117,"t":"First, we'll create a file which holds the token. import { Token } from '@freshgum/typedi'; export const MESSAGE = new Token('The message to print to the console.'); In TypeDI, tokens are created by making new instances of the Token class. It also accepts a type parameter, which sets the type of the value the token points to. Finally, a message is also accepted, which is used for debugging purposes within TypeDI. tip As with services, it's good practice to name your files according to what they contain. As this file centres around exporting a token, we add a \".token.ts\" suffix to the file name.","s":"Creating our Token","u":"/docs/guide/tokens/introduction","h":"#creating-our-token","p":114},{"i":119,"t":"Let's now update our logging service to print the value of the token. import { Service } from '@freshgum/typedi'; import { MESSAGE } from './message.token'; @Service([MESSAGE]) export class LogService { constructor(private message: string) {} public log() { console.log(this.message); } } What we've done is update our LogService to consume the newly-created token as a dependency. Before we've created our container, TypeDI doesn't know what the value of the token is.","s":"Consuming our Token","u":"/docs/guide/tokens/introduction","h":"#consuming-our-token","p":114},{"i":121,"t":"We'll now need to tell TypeDI what the value of MESSAGE should be before we create our LogService. note For brevity, the RootService service in the example is skipped here. src/main.ts import { Container } from '@freshgum/typedi'; import { LogService } from './log.service'; import { MESSAGE } from './message.token'; Container.set({ id: MESSAGE, value: 'Hello World!', dependencies: [] }); Container.get(LogService).log(); If we now run our code, we'll see the following: $ ts-node ./src/main.ts Hello World! Did you know... In TypeDI, tokens aren't treated specially. In fact, the implementation of Token is quite literally: export class Token { constructor(public name?: string) {} }","s":"Setting the value of a Token","u":"/docs/guide/tokens/introduction","h":"#setting-the-value-of-a-token","p":114},{"i":124,"t":"We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.","s":"Our Pledge","u":"/docs/meta/code-of-conduct","h":"#our-pledge","p":122},{"i":126,"t":"Examples of behavior that contributes to a positive environment for our community include: Demonstrating empathy and kindness toward other people Being respectful of differing opinions, viewpoints, and experiences Giving and gracefully accepting constructive feedback Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience Focusing on what is best not just for us as individuals, but for the overall community Examples of unacceptable behavior include: The use of sexualized language or imagery, and sexual attention or advances of any kind Trolling, insulting or derogatory comments, and personal or political attacks Public or private harassment Publishing others' private information, such as a physical or email address, without their explicit permission Other conduct which could reasonably be considered inappropriate in a professional setting","s":"Our Standards","u":"/docs/meta/code-of-conduct","h":"#our-standards","p":122},{"i":128,"t":"Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.","s":"Enforcement Responsibilities","u":"/docs/meta/code-of-conduct","h":"#enforcement-responsibilities","p":122},{"i":130,"t":"This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.","s":"Scope","u":"/docs/meta/code-of-conduct","h":"#scope","p":122},{"i":132,"t":"Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at freshgum.bubbles@protonmail.com. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the reporter of any incident.","s":"Enforcement","u":"/docs/meta/code-of-conduct","h":"#enforcement","p":122},{"i":134,"t":"Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:","s":"Enforcement Guidelines","u":"/docs/meta/code-of-conduct","h":"#enforcement-guidelines","p":122},{"i":136,"t":"Community Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. Consequence: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.","s":"1. Correction","u":"/docs/meta/code-of-conduct","h":"#1-correction","p":122},{"i":138,"t":"Community Impact: A violation through a single incident or series of actions. Consequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.","s":"2. Warning","u":"/docs/meta/code-of-conduct","h":"#2-warning","p":122},{"i":140,"t":"Community Impact: A serious violation of community standards, including sustained inappropriate behavior. Consequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.","s":"3. Temporary Ban","u":"/docs/meta/code-of-conduct","h":"#3-temporary-ban","p":122},{"i":142,"t":"Community Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. Consequence: A permanent ban from any sort of public interaction within the community.","s":"4. Permanent Ban","u":"/docs/meta/code-of-conduct","h":"#4-permanent-ban","p":122},{"i":144,"t":"This Code of Conduct is adapted from the Contributor Covenant, version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. Community Impact Guidelines were inspired by Mozilla's code of conduct enforcement ladder. For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.","s":"Attribution","u":"/docs/meta/code-of-conduct","h":"#attribution","p":122},{"i":146,"t":"The MIT License Copyright (c) 2015-2021 TypeStack Copyright (c) 2023 freshgum (https://github.com/freshgum-bubbles) 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.","s":"License","u":"/docs/meta/license","h":"","p":145}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,4.848,1,1.408,2,3.24,3,1.653,4,2.294,5,1.971,6,1.882,7,4.144,8,2.972,9,2.758,10,1.119,11,2.294,12,1.882,13,3.24,14,4.144,15,2.655,16,2.535,17,2.226,18,1.825,19,4.364,20,3.599,21,1.355,22,3.599,23,3.599,24,1.523,25,2.58,26,3.24,27,1.653,28,2.626,29,0.831,30,1.8,31,3.929,32,3.493,33,4.935,34,2.758,35,1.724,36,1.971,37,3.24,38,3.24,39,3.599,40,3.24,41,3.599,42,1.882,43,2.972,44,3.599,45,3.599,46,3.24]],["t/4",[1,1.845,4,3.421,10,1.088,12,1.807,16,1.807,17,1.587,47,3.978,48,1.007,49,3.978,50,2.202,51,0.655,52,3.613,53,3.62,54,2.647,55,0.603,56,1.102,57,3.11,58,3.11,59,0.767,60,1.088,61,0.767,62,1.118,63,1.037,64,2.71,65,1.587,66,2.853,67,1.728,68,2.647,69,2.202,70,1.892,71,2.647,72,1.937,73,1.807,74,3.455,75,2.853,76,2.33,77,3.11,78,2.647,79,3.455,80,3.455,81,3.455,82,3.978,83,3.11,84,1.3]],["t/6",[1,1.809,4,2.14,6,1.757,10,0.775,12,2.419,13,3.024,25,2.407,28,2.215,48,0.718,50,2.14,53,2.265,54,2.574,56,1.059,57,3.024,59,0.746,60,1.105,61,0.746,62,1.087,63,1.009,64,3.04,65,1.542,69,2.947,70,1.84,72,1.777,73,1.757,76,2.265,85,3.544,86,3.867,87,3.315,88,2.574,89,2.773,90,3.359,91,1.542,92,3.024,93,2.773,94,3.867,95,3.567,96,2.265,97,3.024,98,3.359,99,1.93,100,3.867,101,2.265,102,2.407,103,3.867,104,2.574,105,3.024,106,3.867,107,1.68,108,2.773]],["t/8",[12,2.326,15,2.436,28,2.131,46,4.004,48,0.95,50,2.835,51,0.843,59,1.236,60,1.143,61,0.988,73,2.326,91,2.043,95,4.093,109,4.004,110,4.448,111,5.121,112,4.448,113,5.121,114,3.673,115,5.121,116,1.551,117,4.004,118,5.121]],["t/10",[5,2.366,6,2.26,10,1.261,11,3.481,31,3.915,32,3.481,48,0.923,60,0.754,63,1.297,70,2.366,72,1.451,84,1.626,114,3.568,119,2.26,120,2.914,121,4.974,122,4.974,123,3.311,124,4.974,125,4.32,126,2.914,127,4.974,128,4.974,129,4.974,130,1.758,131,3.097,132,4.974,133,4.32,134,3.568,135,2.914]],["t/12",[3,1.525,27,1.525,29,0.767,48,0.981,56,0.88,60,1.175,63,0.998,73,1.737,136,3.095,137,3.824,138,3.824,139,3.428,140,3.824,141,2.545,142,2.117,143,2.545,144,3.824,145,2.99,146,2.99,147,2.117,148,2.198,149,2.743,150,3.824,151,5.284,152,1.661,153,2.638,154,3.824,155,3.824,156,2.381,157,3.824,158,3.322,159,2.545,160,2.117,161,1.727,162,4.589,163,3.322,164,2.743,165,2.99,166,2.24,167,2.24,168,3.095,169,1.299,170,2.24,171,2.117,172,5.284,173,3.824,174,2.743,175,3.322,176,3.824,177,3.322,178,3.824]],["t/14",[10,0.831,16,1.882,17,1.653,21,1.355,27,1.653,28,2.626,29,1.119,30,1.8,31,3.929,32,3.493,33,4.935,34,3.715,35,1.724,36,1.971,37,3.24,38,3.24,39,3.599,40,3.24,41,3.599,42,1.882,43,2.972,44,3.599,45,3.599,46,3.24,56,0.811,69,2.294,101,2.427,123,2.758,135,2.427,136,2.427,139,3.545,141,3.715,166,2.427,167,2.427,168,2.427,171,3.089,179,4.144,180,3.089,181,3.599,182,2.758,183,3.599,184,2.758,185,2.758,186,3.24,187,2.427]],["t/16",[1,1.023,5,1.433,15,2.119,18,0.985,19,2.355,28,1.253,29,0.604,48,0.559,51,0.496,52,2.005,56,0.648,59,0.859,60,1.192,61,0.581,62,0.846,63,0.786,78,2.005,104,2.005,116,0.912,136,2.609,139,3.648,142,2.934,143,2.005,145,2.355,162,2.616,166,1.764,168,1.764,169,1.023,171,1.667,174,4.2,177,2.616,180,1.667,185,2.965,186,3.483,188,2.616,189,2.616,190,1.667,191,2.616,192,2.355,193,3.012,194,3.012,195,4.454,196,2.355,197,3.869,198,3.012,199,2.616,200,2.355,201,1.503,202,1.875,203,2.616,204,2.114,205,1.581,206,3.012,207,3.012,208,3.012,209,1.875,210,3.012,211,3.012,212,3.483,213,3.012,214,2.616,215,2.782,216,3.012,217,2.616,218,2.616,219,2.616,220,2.616,221,1.064,222,2.616,223,3.012,224,3.483,225,1.201,226,2.616,227,2.616,228,1.764,229,2.16,230,3.012,231,2.005,232,1.764]],["t/18",[1,1.628,11,1.843,12,1.512,15,2.28,18,1.088,21,1.088,28,2.555,29,0.668,31,2.984,32,2.653,35,1.994,51,0.789,56,0.893,59,0.925,60,1.197,61,0.642,62,0.936,63,0.868,72,0.971,83,2.603,87,2.984,88,2.216,91,1.328,92,3.747,93,2.388,95,2.807,96,1.95,116,1.009,117,2.603,131,2.073,136,2.807,139,2.947,159,2.216,169,1.131,171,1.843,185,2.216,200,2.603,202,2.073,204,1.328,233,1.662,234,2.892,235,1.748,236,2.388,237,2.388,238,2.216,239,2.892,240,2.892,241,2.603,242,2.073,243,2.603,244,2.892,245,2.892,246,2.892,247,2.603,248,2.892,249,2.216,250,2.892,251,3.33,252,3.33,253,3.33,254,2.892,255,1.95,256,1.662,257,3.33,258,3.33,259,3.33]],["t/20",[1,1.206,2,4.549,12,2.872,18,1.902,29,1.006,30,1.543,55,0.761,56,0.846,57,3.923,59,0.685,60,1.136,61,0.685,62,0.998,67,2.747,101,2.08,116,1.076,119,1.613,120,2.08,123,2.363,135,2.08,143,2.363,153,1.772,156,2.211,167,3.703,171,1.965,182,2.363,201,1.772,202,3.124,233,1.772,235,1.864,238,2.363,260,3.551,261,2.211,262,3.551,263,3.551,264,3.551,265,3.551,266,2.547,267,2.211,268,2.547,269,3.084,270,4.173,271,3.084,272,2.547,273,3.551,274,2.363,275,3.551,276,1.613,277,3.551,278,3.084,279,3.084,280,3.551,281,1.036,282,3.084,283,4.358,284,3.551,285,1.773,286,3.551]],["t/22",[2,3.551,3,1.234,5,2.161,24,1.137,28,1.287,31,1.925,32,1.712,56,0.45,59,0.597,60,1.222,63,0.807,70,2.822,71,2.058,92,2.418,96,1.811,99,1.544,116,0.937,136,1.811,139,3.113,167,2.66,169,1.051,170,3.153,171,2.979,175,2.686,182,3.023,196,2.418,197,2.686,212,2.418,215,1.623,217,2.686,218,2.686,219,2.686,220,2.686,221,1.605,222,3.945,224,4.209,225,1.234,226,2.686,227,2.686,228,1.811,256,2.687,261,1.925,270,3.257,271,2.686,281,1.325,285,1.605,287,2.418,288,2.686,289,2.058,290,3.092,291,3.092,292,3.092,293,3.092,294,3.092,295,4.542,296,2.686,297,2.218,298,3.092,299,3.092,300,3.092,301,3.092,302,3.092,303,2.686,304,2.418,305,3.092,306,3.092,307,2.418]],["t/25",[3,1.736,10,0.872,12,1.977,17,2.3,18,1.422,21,1.422,26,5.057,29,1.156,30,1.89,48,1.07,55,0.875,72,1.27,76,2.549,77,3.402,89,3.121,107,1.89,130,1.537,139,3.395,161,1.422,174,4.639,180,3.192,235,2.284,255,2.549,285,1.537,308,4.351,309,3.121,310,4.351,311,4.351,312,3.779,313,2.172,314,4.351,315,4.351,316,3.121,317,3.779,318,1.89,319,4.351,320,3.121,321,3.402,322,4.351,323,4.351,324,3.779,325,4.351,326,3.779]],["t/27",[9,3.359,10,1.012,27,2.013,30,2.192,43,3.619,48,1.178,51,1.262,70,2.401,126,2.956,153,2.519,204,2.013,225,2.013,327,5.047,328,4.979,329,5.047,330,3.359,331,5.047,332,4.383,333,3.619,334,3.359,335,2.793,336,2.956,337,3.359,338,2.649]],["t/29",[48,1.247,51,1.29,55,0.713,59,0.908,60,1.076,61,0.908,73,2.137,161,1.538,205,2.47,225,2.68,276,2.137,281,1.771,339,2.47,340,3.679,341,4.705,342,5.271,343,3.359,344,2.756,345,4.745,346,5.271,347,3.374,348,2.47]],["t/31",[48,1.134,51,1.007,55,0.927,73,2.776,130,2.16,276,2.776,339,3.208,349,4.779]],["t/33",[29,0.931,48,1.239,51,1.234,55,0.704,59,0.896,60,1.173,61,0.896,73,2.109,116,1.823,130,1.64,152,2.017,225,1.852,276,2.109,281,1.755,339,2.437,343,3.909,350,4.032,351,5.225,352,2.719,353,4.642,354,4.642,355,4.642,356,4.642,357,4.642]],["t/35",[10,1.066,51,1.08,73,2.415,84,1.738,126,3.114,141,3.539,161,1.738,190,2.943,336,3.84,338,2.791,347,3.813,358,3.934,359,3.539,360,5.317,361,5.317,362,3.114,363,4.157,364,3.272,365,3.813,366,3.813]],["t/37",[3,1.043,16,1.188,17,1.598,18,0.855,21,1.309,29,0.976,48,1.151,51,1.25,55,0.607,60,1.057,62,1.126,67,1.136,70,1.244,84,1.309,91,1.598,107,1.136,116,1.213,126,2.346,130,0.924,169,0.889,170,1.532,204,2.176,205,3.086,209,1.628,221,0.924,225,2.176,283,2.271,318,1.136,328,1.876,335,2.217,336,3.195,342,4.737,343,2.694,345,3.132,350,3.478,352,2.346,358,1.448,363,2.045,364,2.722,365,4.217,367,1.628,368,1.741,369,2.872,370,1.741,371,2.615,372,2.271,373,2.615,374,1.628,375,2.271,376,2.615,377,2.271,378,2.045,379,3.912,380,1.999,381,2.271,382,2.615,383,1.741,384,2.615,385,1.448,386,2.271,387,2.615,388,3.478,389,2.045,390,2.615,391,2.045,392,3.478,393,4.005,394,2.271,395,1.741,396,4.227,397,1.876,398,2.615,399,2.615,400,1.448,401,2.615,402,4.005,403,2.615,404,2.615,405,2.615]],["t/39",[1,1.176,15,1.647,17,1.381,21,1.132,24,2.11,29,0.694,30,1.504,36,1.647,48,0.915,51,1.189,55,0.525,59,0.668,60,1.224,61,0.668,62,0.973,84,1.132,91,1.381,99,2.46,116,1.894,119,1.573,120,2.028,126,2.887,204,2.289,205,3.281,238,2.304,267,2.156,281,1.01,318,1.504,344,2.028,364,1.728,365,2.483,378,2.707,383,2.304,406,1.647,407,3.007,408,2.483,409,3.007,410,3.007,411,3.007,412,3.007,413,3.007,414,4.28,415,3.462,416,3.462,417,3.007,418,3.007,419,3.007,420,1.573,421,3.007,422,3.462]],["t/41",[1,1.59,4,1.783,15,1.533,17,1.285,24,2.026,29,0.646,30,2.033,48,0.868,51,1.104,55,0.71,59,0.622,60,1.219,61,0.622,62,0.905,84,1.053,89,2.311,91,1.285,99,1.608,116,1.832,119,1.463,120,1.887,153,1.608,160,1.783,169,1.59,184,2.144,204,1.285,205,2.892,209,2.006,221,1.138,228,1.887,231,2.144,238,2.144,281,0.94,285,1.653,344,1.887,364,2.336,366,2.311,383,2.144,400,1.783,406,1.533,407,2.798,408,2.311,409,2.798,410,2.798,411,2.798,412,2.798,413,4.064,414,2.798,419,2.798,420,1.463,421,2.798,423,3.222,424,3.222,425,2.311,426,3.222,427,2.311,428,2.519,429,3.222,430,2.311,431,4.679,432,3.222,433,3.222,434,3.222,435,3.222]],["t/43",[3,1.818,10,0.914,29,0.914,30,1.349,36,2.168,48,0.576,51,1.178,59,0.599,60,1.003,61,0.599,84,1.49,91,1.818,101,1.819,105,2.429,107,1.349,126,2.669,146,2.429,148,1.292,152,1.349,153,2.274,161,1.49,169,1.055,187,1.819,221,1.907,225,2.371,232,1.819,235,1.63,281,1.329,287,2.429,289,2.067,321,2.429,328,2.228,335,2.987,336,2.669,343,1.719,346,2.698,348,1.63,352,2.669,364,2.274,365,5.216,374,1.934,378,2.429,379,3.87,380,1.55,383,3.033,397,2.228,436,5.944,437,2.698,438,3.033,439,3.563,440,2.698,441,3.957,442,3.106,443,5.396,444,2.228,445,3.106,446,3.957,447,3.106,448,3.106,449,2.429,450,3.106,451,3.106,452,3.106,453,2.429]],["t/45",[10,0.738,11,2.038,21,1.204,24,1.892,27,1.469,51,1.208,59,0.71,60,1.13,61,0.71,62,1.035,63,1.548,65,2.053,73,1.673,91,1.469,116,1.116,130,1.819,152,1.6,160,2.038,187,2.157,190,2.038,204,1.469,212,2.879,221,1.301,233,1.838,281,1.502,332,5.872,338,1.933,344,3.763,348,2.702,351,3.198,437,3.198,454,2.451,455,3.198,456,2.038,457,3.198,458,2.879,459,4.471,460,4.471,461,2.879,462,3.683,463,3.683,464,5.147,465,3.683,466,3.683,467,3.683,468,3.683,469,3.683,470,3.205,471,2.451,472,3.683]],["t/47",[1,1.924,10,1.366,24,2.082,51,1.122,55,0.859,56,0.823,72,1.652,184,3.769,261,3.526,473,4.428,474,5.664,475,3.769,476,4.919,477,5.664,478,5.664]],["t/49",[3,1.769,5,2.11,6,2.014,10,1.309,27,1.769,29,0.889,51,1.219,56,1.009,59,1.127,60,0.886,61,0.856,70,2.11,99,2.213,107,1.927,135,2.597,148,1.845,160,2.455,161,1.45,209,2.761,225,2.876,233,2.213,270,3.181,420,2.014,476,3.852,479,4.435,480,4.435,481,3.467,482,4.435,483,4.435,484,3.181,485,4.435,486,3.181,487,2.761,488,3.467,489,2.952]],["t/51",[1,1.227,3,0.913,8,1.641,10,0.724,11,1.998,17,0.913,18,0.748,27,0.913,29,0.724,30,0.994,37,1.789,42,1.039,48,0.83,51,1.252,55,0.347,56,1.012,59,0.696,60,0.89,61,0.441,63,0.597,84,0.748,104,1.523,107,2.205,116,0.693,120,1.34,130,1.58,141,2.403,142,2.475,156,1.424,164,1.641,169,0.777,187,1.34,192,1.789,204,0.913,215,1.201,221,0.808,225,1.44,228,1.34,231,1.523,249,1.523,261,2.247,268,1.641,276,1.039,281,0.668,285,2.25,313,1.142,320,1.641,321,1.789,328,1.641,330,2.975,333,2.589,334,1.523,337,1.523,338,1.895,343,3.058,348,3.081,352,1.34,368,1.523,380,1.142,385,1.998,397,1.641,425,1.641,459,3.135,471,1.523,473,1.789,486,1.641,490,1.641,491,2.822,492,2.822,493,1.987,494,3.135,495,2.288,496,2.288,497,2.822,498,2.288,499,3.135,500,1.789,501,1.523,502,2.288,503,3.61,504,1.987,505,1.523,506,2.288,507,3.135,508,1.987,509,1.987,510,2.288,511,1.201,512,2.822,513,1.987,514,2.288,515,1.987,516,2.288,517,2.288,518,2.288,519,2.288,520,2.288,521,1.789,522,1.34,523,1.34,524,2.288,525,2.288,526,1.201,527,1.641,528,1.789,529,1.789,530,1.641,531,1.789,532,1.424,533,2.288,534,2.288,535,2.288,536,1.641,537,1.34]],["t/53",[3,1.725,48,0.802,51,1.254,55,0.656,56,1.039,59,0.834,60,0.978,61,0.834,72,1.262,78,2.878,84,1.414,116,1.31,130,1.528,142,2.394,225,2.852,276,1.964,281,1.676,334,2.878,343,3.179,352,2.533,375,3.756,449,3.381,458,3.381,486,3.101,522,2.533,523,3.364,537,2.533,538,4.324,539,4.324,540,2.878,541,2.878,542,3.756,543,3.756,544,4.324,545,3.101]],["t/55",[17,1.984,21,1.626,24,1.829,36,2.366,48,0.923,51,1.231,56,0.723,59,0.96,60,0.954,61,0.96,119,2.26,152,2.161,161,1.626,205,2.611,221,1.758,236,3.568,269,4.32,276,2.26,281,1.451,285,1.758,344,2.914,345,3.889,348,3.301,358,2.753,523,2.914,546,3.889,547,4.974,548,3.568]],["t/57",[5,1.647,6,1.573,10,0.694,16,1.573,17,1.381,18,1.132,20,4.984,29,0.694,36,1.647,42,2.239,48,0.642,51,1.242,55,0.747,56,0.503,59,0.668,60,1.095,61,0.668,72,1.01,73,1.573,85,2.304,107,1.504,116,1.049,221,1.741,225,1.966,266,2.483,278,3.007,281,1.438,285,2.209,303,3.007,313,1.728,348,1.817,352,2.028,364,1.728,367,2.156,379,2.483,380,1.728,385,1.916,397,2.483,471,3.28,475,2.304,486,2.483,526,2.587,543,3.007,549,3.462,550,3.462,551,3.462,552,3.462,553,3.462,554,6.607,555,3.462,556,3.462,557,3.462,558,3.462,559,3.462,560,2.156,561,2.156,562,2.304,563,2.156,564,3.007,565,3.462,566,3.462,567,3.462]],["t/59",[5,2.238,6,2.137,10,1.347,11,2.604,15,2.238,16,2.757,25,2.929,29,0.943,32,2.604,33,5.253,40,5.253,51,0.775,55,0.713,60,1.019,61,1.296,89,3.374,134,3.374,166,2.756,232,2.756,233,3.029,408,3.374,526,2.47,568,4.086,569,3.679,570,6.069,571,6.069,572,3.131,573,3.679]],["t/61",[1,2.044,10,0.931,18,1.518,21,1.518,48,0.861,51,0.764,55,0.912,119,2.109,152,2.017,170,2.719,189,4.032,276,2.109,304,3.63,318,2.017,408,3.329,420,2.109,430,3.329,455,4.032,456,3.33,488,4.704,574,4.032,575,2.719,576,6.016,577,3.329,578,5.225,579,4.642,580,4.642,581,4.642,582,4.642,583,4.642,584,4.642,585,4.032,586,4.032,587,4.642,588,4.642,589,4.642,590,4.642,591,4.642]],["t/63",[23,5.085,51,1.144,56,0.851,123,3.897,130,2.069,225,2.772,374,3.645,425,4.199,522,3.429,575,3.429,578,5.085]],["t/65",[1,1.845,10,0.797,15,1.892,30,1.728,35,1.655,36,1.892,48,1.007,55,0.937,56,1.086,72,1.16,75,2.853,88,2.647,91,2.649,135,2.33,153,1.985,161,1.3,225,1.587,233,2.71,236,2.853,318,1.728,453,3.11,454,2.647,475,2.647,489,2.647,490,2.853,505,2.647,511,2.849,523,3.18,541,3.613,563,2.476,577,2.853,586,3.455,592,3.978,593,3.455,594,2.853,595,3.455,596,5.192,597,3.978,598,3.978,599,3.11,600,3.978,601,3.455,602,3.11,603,3.978,604,3.978,605,3.978,606,3.11,607,3.978]],["t/67",[4,2.587,21,1.528,28,2.514,48,0.867,53,2.737,54,3.11,56,0.973,58,3.654,59,1.166,60,1.197,61,0.902,62,1.313,63,1.219,64,3.016,65,1.864,66,3.352,67,2.03,68,3.11,69,2.587,90,4.059,388,4.059,470,3.762,471,3.11,487,2.909,595,5.248,596,3.654,608,4.673]],["t/69",[1,1.522,13,1.795,18,1.183,21,0.75,25,1.429,26,3.976,27,0.916,28,1.864,29,0.46,36,1.722,42,1.043,48,0.944,50,1.271,55,0.348,56,0.954,59,1.23,60,1.177,61,0.698,62,1.017,63,0.944,65,1.444,67,2.209,69,1.271,84,0.75,87,1.429,88,2.409,99,1.806,146,1.795,152,0.997,167,3.443,168,3.843,180,1.271,182,4.095,185,1.528,187,1.345,190,1.271,201,2.538,202,3.166,204,1.444,234,3.143,255,1.345,266,2.596,267,1.429,268,1.646,276,1.043,279,3.143,281,0.67,282,1.994,289,2.409,296,1.994,316,1.646,318,1.572,335,1.271,364,2.236,370,1.528,395,2.982,400,1.271,470,1.429,487,1.429,500,1.795,505,1.528,511,1.205,521,1.795,530,1.646,574,1.994,577,1.646,594,1.646,596,4.327,609,1.795,610,2.296,611,2.296,612,2.296,613,2.596,614,2.596,615,2.296,616,1.994,617,1.795,618,2.296,619,2.296,620,3.619,621,2.296,622,3.619,623,2.296,624,2.296,625,2.296,626,2.296,627,1.994,628,2.296,629,1.646,630,2.296,631,2.296,632,2.296]],["t/71",[6,1.47,10,0.649,16,1.47,24,1.726,42,2.133,51,1.06,55,0.491,56,0.935,59,0.624,60,1.096,61,0.624,62,0.91,63,0.844,72,1.37,76,1.896,85,2.154,91,1.291,96,1.896,102,2.015,131,2.923,148,1.347,153,1.615,158,2.811,159,3.125,161,1.058,180,1.791,204,1.873,221,1.144,224,2.531,241,2.531,242,2.015,255,1.896,274,2.154,318,2.04,336,1.896,344,2.75,362,2.75,363,2.531,367,2.015,370,3.125,385,1.791,406,2.234,438,2.154,439,2.531,440,2.811,444,3.367,449,2.531,454,2.154,489,2.154,497,2.531,511,1.699,512,2.531,541,2.154,546,2.531,560,2.015,563,2.015,575,1.896,633,3.237,634,2.321,635,2.811,636,2.811,637,2.811,638,4.467,639,3.237,640,3.237,641,3.237,642,2.811,643,3.237,644,2.811,645,3.237,646,3.237,647,2.811,648,3.237,649,3.237,650,3.237,651,3.237]],["t/73",[1,1.377,3,1.616,10,0.812,18,0.868,21,0.868,24,0.976,27,1.059,29,0.812,51,0.437,52,2.697,55,0.614,56,1.049,63,0.693,65,1.059,69,2.243,72,1.727,74,2.306,75,2.906,76,3.22,78,1.767,79,2.306,80,2.306,84,0.868,85,1.767,101,1.555,102,1.653,104,1.767,107,1.154,110,2.306,112,2.306,131,1.653,134,1.904,136,1.555,139,2.579,141,2.697,147,1.47,148,1.686,149,1.904,153,1.325,159,1.767,161,0.868,163,2.306,166,2.373,167,2.878,168,1.555,169,0.902,171,2.243,180,3.043,181,3.519,182,2.697,183,2.306,184,1.767,187,1.555,190,1.47,215,1.394,221,0.938,229,1.904,235,1.394,237,1.904,242,1.653,255,2.373,256,1.325,261,1.653,267,1.653,274,1.767,281,0.775,326,2.306,338,2.886,362,1.555,394,2.306,427,1.904,438,1.767,456,1.47,461,2.076,473,2.076,484,1.904,511,1.394,526,1.394,537,1.555,575,1.555,634,2.906,635,2.306,644,3.519,652,2.655,653,2.655,654,1.904,655,2.655,656,2.655,657,2.655,658,2.655,659,2.655,660,2.655,661,2.655,662,2.655,663,2.655,664,2.655,665,2.655,666,2.306,667,2.306,668,2.655,669,2.655,670,2.655,671,2.655,672,2.655,673,2.655,674,2.655,675,2.306,676,2.655,677,4.052,678,2.655]],["t/75",[5,1.925,6,1.838,8,2.903,10,0.811,22,3.515,29,0.811,51,1.215,56,1.072,58,3.164,59,0.781,60,1.166,61,0.781,62,1.544,63,1.056,64,2.02,65,1.614,66,2.903,67,1.758,68,2.694,69,2.24,88,2.694,102,2.52,107,1.758,116,1.226,169,1.375,221,1.43,225,2.191,281,1.181,352,2.371,358,3.041,362,2.371,427,2.903,456,3.041,481,3.164,488,3.164,537,2.371,540,2.694,572,2.694,679,4.047,680,5.493]],["t/77",[11,2.202,21,1.3,35,1.655,48,0.738,51,1.231,55,0.603,56,0.789,59,1.281,60,1.198,61,1.047,64,3.314,84,1.3,97,4.245,99,1.985,107,1.728,114,3.894,116,1.645,133,3.455,169,1.352,170,2.33,228,2.33,256,1.985,333,2.853,400,2.202,484,2.853,501,2.647,522,2.33,573,3.11,681,3.978,682,4.245,683,5.429,684,3.978,685,3.11,686,3.978,687,3.978,688,3.978]],["t/79",[10,1.308,16,2.397,17,2.105,24,2.399,48,1.314,55,0.8,56,1.03,102,3.285,130,1.864,148,2.195,161,1.725,221,2.305,281,1.539,349,4.126,368,3.512,400,3.612,523,3.091,689,5.277]],["t/81",[0,1.894,1,0.741,3,1.728,10,0.697,12,1.578,16,0.99,17,1.386,24,1.277,29,0.868,30,1.509,42,0.99,48,0.405,51,0.713,55,0.657,56,0.718,59,0.953,60,1.188,61,0.421,62,1.217,63,1.289,65,1.386,67,1.882,70,1.653,72,0.636,73,0.99,91,0.87,107,0.947,116,1.312,130,1.53,143,4.575,148,0.907,152,0.947,161,0.713,166,2.894,169,1.833,186,1.705,204,0.87,233,1.734,235,1.144,238,1.451,256,1.088,261,3.579,272,1.564,281,1.264,285,1.228,309,1.564,312,3.018,313,1.734,318,0.947,335,1.207,337,3.591,338,1.824,339,1.144,364,1.734,406,1.037,454,1.451,458,1.705,475,1.451,487,1.357,490,1.564,500,1.705,523,1.277,536,1.564,537,1.277,545,1.564,560,1.357,561,1.357,572,1.451,606,1.705,617,1.705,690,1.894,691,2.18,692,2.18,693,2.18,694,4.331,695,3.018,696,2.18,697,2.18,698,3.474,699,3.018,700,2.18,701,2.18,702,2.18,703,2.18,704,2.18,705,3.474,706,2.18,707,2.18,708,1.894,709,3.474,710,2.18,711,2.18,712,2.18,713,2.18,714,2.18,715,2.18,716,2.18,717,2.18,718,2.18,719,2.18,720,1.894,721,1.894,722,1.894,723,2.18,724,2.18,725,2.18,726,2.18,727,1.894]],["t/83",[10,0.775,16,1.757,17,2.429,27,1.542,51,1.003,56,0.774,72,1.554,102,2.407,119,1.757,126,2.265,147,2.14,148,1.609,152,2.313,156,2.407,160,2.14,204,1.542,205,2.03,240,3.359,241,3.024,242,2.407,309,2.773,336,2.265,362,2.265,367,2.407,369,2.773,374,2.407,377,3.359,383,2.574,385,2.947,391,3.024,396,3.359,420,1.757,441,3.359,489,2.574,490,4.368,491,3.024,492,3.024,499,3.359,515,3.359,526,2.03,532,4.085,594,2.773,602,3.024,690,3.359,727,3.359,728,3.359,729,3.024,730,3.867,731,3.791,732,3.867,733,3.867,734,3.867,735,3.359,736,3.867,737,3.359,738,3.867,739,3.867,740,3.867,741,3.359]],["t/85",[10,0.883,12,2.002,16,2.002,17,1.758,18,1.441,30,1.914,56,0.845,72,1.697,76,2.581,83,3.445,108,3.16,130,1.557,135,2.581,142,2.439,156,2.743,204,1.758,228,3.406,268,3.16,285,1.557,289,2.933,348,3.052,380,2.199,406,2.096,420,2.002,438,4.332,494,3.827,504,3.827,505,2.933,508,3.827,509,3.827,522,3.812,526,2.313,527,3.16,528,3.445,529,3.445,530,3.16,531,3.445,537,2.581,540,2.933,742,4.406,743,4.406,744,4.406,745,4.406,746,3.445]],["t/87",[10,1.156,11,2.409,18,1.885,24,2.532,55,0.875,60,0.875,75,3.121,84,1.885,91,1.736,101,2.549,160,2.409,204,1.736,232,2.549,235,2.284,337,2.896,358,2.409,362,2.549,367,2.709,368,2.896,400,2.409,420,1.977,425,3.121,444,3.121,456,2.409,492,3.402,532,3.59,577,3.121,685,3.402,731,2.709,747,3.779,748,4.351,749,4.351,750,4.351,751,4.351,752,6.887,753,3.402,754,5.008,755,4.351,756,4.351,757,4.351,758,4.351]],["t/89",[4,1.522,15,1.308,18,1.641,19,3.253,27,1.097,29,0.834,51,0.827,54,1.83,55,0.959,56,0.983,59,0.803,60,1.16,61,0.53,62,0.773,63,0.717,67,1.195,72,1.464,84,1.36,87,1.712,104,1.83,105,3.253,108,2.984,119,2.28,120,1.611,142,2.303,143,2.769,147,1.522,148,1.144,160,1.522,161,0.899,169,0.934,201,1.372,205,3.156,209,2.59,221,0.972,228,1.611,233,1.372,255,1.611,285,1.774,316,1.972,317,2.388,334,1.83,336,2.437,358,3.328,359,1.83,379,1.972,380,2.077,406,1.308,430,1.972,470,1.712,497,2.15,522,2.437,526,2.635,537,1.611,548,1.972,562,2.769,563,1.712,572,1.83,609,2.15,629,1.972,731,1.712,759,2.75,760,2.75,761,2.75,762,2.388,763,2.75,764,2.75,765,2.75,766,2.75,767,2.75,768,6.012,769,2.75,770,2.75,771,2.75,772,2.75,773,2.75,774,2.75,775,1.972,776,2.75,777,2.15,778,2.75]],["t/91",[1,1.096,18,1.054,21,0.65,28,0.827,29,0.646,32,1.785,48,0.369,51,1.03,55,0.781,56,0.909,59,1.064,60,1.211,61,0.785,62,1.144,63,1.061,67,0.863,71,1.323,72,1.366,87,2.007,93,1.425,95,1.164,107,0.863,116,1.419,117,1.554,119,2.338,130,0.702,152,0.863,161,0.65,201,2.031,202,1.237,221,0.702,247,1.554,281,0.58,285,1.139,288,1.726,313,2.031,318,0.863,338,2.136,343,1.1,344,1.889,348,1.692,362,1.164,364,1.609,369,1.425,380,0.992,385,1.1,406,1.936,456,1.1,470,2.007,484,1.425,491,1.554,513,1.726,532,1.237,536,1.425,545,1.425,562,1.323,563,1.237,569,1.554,601,1.726,617,1.554,638,2.146,654,4.339,721,1.726,731,1.237,741,1.726,779,4.067,780,1.726,781,3.224,782,1.554,783,3.224,784,5.513,785,3.224,786,4.682,787,3.534,788,3.224,789,4.682,790,1.987,791,1.987,792,1.987,793,1.987,794,1.987,795,1.987,796,1.726,797,1.987,798,1.987,799,2.8,800,1.987,801,3.224,802,1.987,803,1.987,804,1.987,805,1.987,806,1.987,807,3.224,808,1.987,809,1.987,810,1.726,811,1.987,812,1.987,813,3.224,814,1.987,815,1.987,816,1.987,817,1.987,818,1.987,819,1.987,820,1.726]],["t/93",[27,1.839,51,1.096,55,0.699,71,3.069,84,1.507,120,2.701,147,2.552,148,1.918,152,2.003,153,2.302,156,2.871,187,2.701,285,2.117,348,2.42,358,2.552,380,2.302,385,2.552,501,3.069,505,3.069,507,4.005,522,2.701,526,2.42,527,3.307,528,3.606,529,3.606,530,4.296,531,4.684,532,3.729,562,3.069,731,3.729,746,3.606,753,5.203,821,4.611,822,4.005,823,4.611,824,3.606]],["t/95",[21,1.851,24,2.082,29,1.136,161,1.851,318,2.46,349,4.428,358,3.135,367,3.526,532,3.526,731,3.526,747,4.919,753,4.428,779,4.919,822,4.919,825,4.428,826,5.664,827,4.919]],["t/97",[1,1.513,3,1.776,6,1.033,10,0.72,15,2.118,16,1.033,17,1.432,27,1.432,28,0.946,29,0.456,43,1.63,48,1.138,51,0.733,55,0.545,56,0.974,59,0.976,60,1.162,61,0.693,62,1.009,63,0.937,69,1.258,72,0.663,87,1.415,93,1.63,95,1.331,96,1.331,99,1.135,108,1.63,130,1.787,136,2.607,139,3.516,145,1.777,148,0.946,160,1.988,164,1.63,165,1.777,169,0.772,171,3.517,174,3.193,190,1.258,196,1.777,199,1.974,200,1.777,201,1.135,203,1.974,204,0.907,214,1.974,215,1.193,221,1.269,225,0.907,229,2.576,231,1.513,232,1.331,244,1.974,245,1.974,246,1.974,247,1.777,248,1.974,249,1.513,256,1.135,285,0.803,313,1.135,318,0.987,335,1.988,337,2.963,339,1.193,343,1.258,347,1.63,368,1.513,370,1.513,380,1.135,385,1.258,420,1.033,460,1.974,471,3.665,481,1.777,487,1.415,546,1.777,548,1.63,562,1.513,585,1.974,602,1.777,613,1.63,614,1.63,708,3.119,824,2.808,828,5.084,829,3.119,830,2.273,831,2.273,832,3.591,833,2.273,834,2.273,835,2.273,836,2.273,837,2.273,838,2.273,839,2.273,840,2.273,841,2.273,842,1.63,843,2.273]],["t/99",[1,1.46,10,0.862,27,1.714,42,1.952,48,0.797,52,2.86,55,0.867,56,1.067,72,1.254,91,1.714,130,1.518,135,2.517,142,2.379,161,1.405,167,2.517,168,2.517,184,2.86,221,2.021,243,3.36,270,3.082,316,3.082,320,3.082,335,2.379,418,3.732,420,1.952,475,2.86,489,2.86,501,2.86,540,2.86,541,2.86,542,3.732,560,4.002,613,3.082,614,3.082,722,3.732,827,3.732,844,4.297,845,4.297,846,3.807,847,4.297,848,3.732,849,4.297,850,4.297,851,3.732,852,4.297,853,3.732]],["t/101",[3,1.128,9,1.882,12,1.931,15,2.429,18,0.925,29,0.567,48,0.525,52,1.882,55,0.429,56,0.964,59,1.095,60,1.219,61,0.82,62,1.194,63,1.109,67,1.846,70,2.429,109,2.211,116,1.288,119,1.285,123,1.882,139,1.484,169,0.961,201,2.121,202,1.761,205,2.231,215,1.484,256,2.121,276,2.319,281,0.825,420,2.319,470,1.761,487,1.761,560,3.179,638,1.882,654,4.072,666,2.456,667,2.456,762,3.691,796,2.456,799,2.456,810,2.456,824,2.211,846,2.829,854,2.828,855,2.828,856,2.828,857,2.828,858,3.691,859,5.106,860,2.828,861,4.25,862,2.828,863,2.828,864,2.828,865,4.931,866,2.828,867,2.828,868,2.828,869,2.828,870,2.828,871,2.828,872,2.828,873,2.828,874,2.828,875,2.828,876,2.828,877,2.828,878,2.828]],["t/103",[28,1.957,29,0.943,51,0.775,55,0.92,56,1.068,72,1.373,84,1.538,91,1.877,130,2.374,148,2.525,149,3.374,164,4.353,165,3.679,209,2.929,255,2.756,276,2.137,281,1.373,335,2.604,338,2.47,339,2.47,389,3.679,395,3.131,536,3.374,540,3.131,541,3.131,638,3.131,654,3.374,820,4.086,846,4.039,858,4.086,865,4.086,879,4.705]],["t/105",[1,1.469,42,1.964,48,0.802,55,0.656,56,1.09,60,0.656,85,2.878,131,2.692,147,2.394,221,1.528,236,3.101,237,3.101,274,2.878,313,2.158,318,1.879,339,2.27,340,4.49,395,2.878,417,3.756,454,2.878,501,2.878,560,2.692,613,4.119,614,4.119,636,4.988,637,3.756,728,3.756,828,4.988,846,4.892,848,3.756,853,3.756,880,4.324,881,4.324,882,4.324,883,4.988,884,3.381,885,4.324,886,4.324]],["t/107",[18,1.914,24,2.152,56,0.851,166,3.429,272,4.199,281,1.708,334,3.897,395,3.897,430,4.199,638,3.897,846,3.897,887,5.854,888,5.854]],["t/109",[4,1.834,5,1.576,6,2.169,10,0.958,18,1.561,24,1.218,28,1.987,29,1.123,34,3.179,55,0.849,56,0.944,59,0.921,60,1.192,61,0.921,62,1.342,63,1.246,64,2.795,65,1.322,66,2.377,68,2.205,72,0.967,81,2.878,84,1.083,95,2.797,96,1.941,97,2.591,98,2.878,116,1.447,131,2.973,161,1.083,169,1.126,185,2.205,232,1.941,266,3.425,272,2.377,276,1.505,330,2.205,427,2.377,444,2.377,456,1.834,511,1.739,563,2.063,609,2.591,685,2.591,735,2.878,775,2.377,825,2.591,889,3.314,890,3.314,891,4.148,892,4.791,893,2.878,894,2.878,895,3.314,896,3.314,897,3.314,898,2.878,899,3.314,900,3.314,901,2.878]],["t/111",[3,1.334,21,1.094,24,1.23,29,0.671,34,3.747,42,1.52,50,1.852,55,0.507,56,0.699,59,1.258,60,1.136,61,0.645,62,0.94,63,0.873,64,3.638,84,1.094,116,1.457,147,1.852,148,1.392,152,1.453,180,1.852,191,2.906,235,1.756,242,2.083,249,2.227,267,2.083,281,1.403,285,1.182,287,2.616,289,2.227,320,2.4,338,1.756,339,1.756,359,4.763,369,2.4,370,3.201,380,1.67,381,2.906,438,2.227,511,1.756,512,2.616,526,1.756,599,2.616,647,2.906,682,3.76,825,2.616,851,2.906,891,2.906,892,4.812,901,2.906,902,3.346,903,4.809,904,3.346,905,3.346,906,3.346,907,4.809,908,3.346,909,3.346,910,3.346,911,3.346,912,3.346]],["t/113",[3,1.409,10,0.708,21,1.155,24,2.319,25,2.199,29,1.002,30,1.535,34,2.351,35,1.47,36,1.681,38,2.762,42,1.605,50,1.955,53,2.069,55,0.758,56,0.514,59,0.682,60,1.078,61,0.682,62,0.993,63,1.304,64,2.896,68,2.351,73,2.271,77,2.762,78,2.351,84,1.897,91,1.409,99,1.763,116,1.07,152,1.535,161,1.155,169,1.2,188,3.068,190,1.955,229,2.534,233,1.763,237,2.534,242,2.199,243,2.762,250,3.068,256,1.763,309,2.534,359,3.327,389,2.762,400,1.955,456,1.955,527,2.534,573,2.762,594,2.534,675,4.342,729,2.762,842,2.534,892,4.933,893,3.068,894,3.068,913,3.533,914,3.533,915,3.533,916,3.533,917,3.533,918,3.533,919,3.533,920,3.533,921,3.533,922,3.533,923,3.533,924,3.533,925,3.533]],["t/115",[5,2.51,6,2.397,10,1.058,29,1.308,35,2.195,48,0.979,51,0.869,55,0.8,56,0.767,67,2.292,72,1.539,76,3.091,169,1.793,170,3.091,239,4.583,285,2.305,339,2.77,340,4.126,400,2.921,406,3.104,926,5.277,927,4.126,928,5.277]],["t/117",[10,1.115,12,1.871,18,1.347,27,1.643,42,1.871,48,1.032,50,3.729,51,0.678,53,3.686,54,2.742,55,0.625,56,0.599,59,0.795,60,0.954,61,0.795,62,1.562,63,1.074,70,2.645,109,3.221,116,1.248,119,1.871,130,1.455,192,3.221,231,2.742,281,1.622,285,1.455,347,2.954,359,3.7,406,3.448,461,3.221,493,3.578,521,3.221,572,2.742,575,2.413,927,3.221,929,4.119,930,4.347,931,4.119,932,3.578,933,4.119,934,4.119,935,3.578,936,4.119,937,4.119]],["t/119",[4,3.232,10,0.889,48,1.084,51,0.73,53,3.42,56,0.849,59,1.127,60,1.175,61,0.856,62,1.246,63,1.157,64,2.915,65,1.769,67,1.927,72,1.294,96,2.597,99,2.915,147,2.455,149,3.181,169,1.507,170,3.42,232,2.597,256,2.213,285,2.063,330,2.952,333,3.181,406,3.106,629,3.181,927,3.467,938,3.852,939,4.435,940,4.435]],["t/121",[5,2.523,6,2.41,10,1.064,12,2.41,21,1.257,28,1.6,29,0.771,31,2.394,32,2.129,35,1.6,48,0.714,51,0.633,53,3.557,56,0.559,59,1.171,60,1.176,61,0.742,62,1.081,63,1.003,64,2.648,67,1.671,70,1.829,71,2.559,72,1.122,95,2.252,114,3.804,180,2.129,233,1.919,235,2.018,256,2.648,267,2.394,285,1.874,330,2.559,364,1.919,406,2.523,511,2.018,545,2.758,593,3.34,629,2.758,682,3.007,699,3.34,737,3.34,898,3.34,938,3.34,941,3.846,942,3.846,943,3.846,944,3.846,945,3.846,946,3.846,947,3.846]],["t/124",[18,1.468,153,2.242,297,3.222,366,3.222,372,3.901,568,3.901,634,3.222,787,3.901,829,3.901,842,4.224,948,4.492,949,3.901,950,2.99,951,5.889,952,4.492,953,2.801,954,3.222,955,4.492,956,4.492,957,4.492,958,4.492,959,4.492,960,4.492,961,4.492,962,4.492,963,4.492,964,5.889,965,4.492,966,4.492,967,4.492,968,4.492,969,4.492,970,4.492,971,4.492,972,4.492,973,4.492,974,3.901,975,4.492,976,3.901,977,3.222,978,3.512,979,4.492,980,4.492,981,4.492,982,4.492]],["t/126",[8,2.758,9,2.559,25,2.394,29,1.064,36,1.829,55,0.583,65,1.534,107,1.671,119,1.747,134,2.758,190,2.129,201,2.648,215,2.018,249,2.559,297,2.758,307,3.007,313,1.919,318,1.671,386,3.34,453,3.007,564,3.34,606,3.007,616,3.34,754,3.34,842,3.804,883,3.34,884,3.007,930,4.148,953,2.523,954,2.758,974,4.607,978,3.007,983,3.107,984,3.846,985,3.302,986,3.846,987,4.607,988,3.34,989,3.007,990,3.34,991,3.846,992,3.846,993,3.846,994,3.846,995,3.34,996,3.007,997,3.846,998,3.846,999,3.34,1000,3.34,1001,3.846,1002,3.846,1003,3.846,1004,3.846,1005,3.846,1006,3.846,1007,3.34,1008,3.846,1009,3.846,1010,3.34,1011,3.846,1012,3.846,1013,3.34,1014,2.252,1015,2.559,1016,3.846]],["t/128",[35,2.525,215,3.526,457,5.271,561,2.929,627,4.086,729,3.679,884,3.679,930,3.679,950,4.039,953,3.196,978,3.679,983,3.555,1007,4.086,1014,2.756,1015,3.131,1017,4.705,1018,3.131,1019,3.679,1020,4.705,1021,4.705,1022,3.679,1023,4.705,1024,4.705,1025,4.705,1026,4.086,1027,4.705,1028,6.069,1029,4.705,1030,4.705,1031,4.705,1032,4.705,1033,4.705,1034,4.705]],["t/130",[29,0.997,35,2.07,55,0.754,65,1.984,254,4.32,307,3.889,313,2.483,428,3.889,523,2.914,575,2.914,695,5.989,780,5.462,953,3.28,976,4.32,985,3.097,1014,2.914,1035,5.462,1036,6.896,1037,4.974,1038,4.974,1039,4.974,1040,4.32,1041,4.32,1042,4.974,1043,4.974,1044,4.974]],["t/132",[130,1.879,215,2.791,775,3.813,950,4.363,953,3.119,954,3.813,983,3.114,990,4.618,999,4.618,1018,3.539,1045,5.317,1046,6.556,1047,5.317,1048,5.317,1049,5.317,1050,5.317,1051,5.317,1052,5.317,1053,5.317,1054,5.317,1055,5.317,1056,4.618]],["t/134",[21,1.914,35,2.436,561,3.645,950,3.897,953,3.306,1014,3.429,1022,4.578,1057,3.645,1058,5.085,1059,5.854,1060,3.897,1061,3.897]],["t/136",[55,0.794,65,2.089,142,2.899,161,1.712,201,2.614,324,4.548,777,4.095,935,4.548,950,3.485,953,3.358,983,3.804,995,4.548,1000,4.548,1015,4.322,1022,4.095,1057,3.26,1060,3.485,1061,3.485,1062,5.237,1063,5.237,1064,5.237,1065,5.237,1066,5.237]],["t/138",[35,1.957,101,2.756,374,2.929,392,4.086,420,2.137,561,2.929,642,4.086,777,3.679,782,3.679,953,2.887,977,4.818,983,2.756,985,3.778,989,3.679,996,3.679,1014,2.756,1018,3.131,1035,4.086,1040,4.086,1041,4.086,1056,4.086,1057,2.929,1060,4.039,1061,4.039,1067,4.705,1068,4.705,1069,4.705,1070,4.086,1071,4.086,1072,4.086,1073,4.705,1074,4.705,1075,4.086,1076,4.086,1077,3.679,1078,3.679]],["t/140",[35,1.971,65,2.431,148,1.971,201,2.364,374,2.949,420,2.152,782,3.704,953,3.385,977,4.834,983,2.775,985,3.795,989,3.704,996,3.704,1014,2.775,1015,3.153,1018,3.153,1019,3.704,1057,2.949,1060,3.153,1061,4.057,1070,4.114,1071,4.114,1072,5.294,1075,4.114,1076,4.114,1077,3.704,1078,4.766,1079,4.737,1080,4.114,1081,4.114,1082,4.737]],["t/142",[9,3.512,63,1.376,65,2.105,159,3.512,313,3.257,575,3.091,953,3.37,954,3.784,977,3.784,983,3.091,985,3.285,988,4.583,1015,3.512,1019,4.126,1057,3.285,1060,3.512,1061,3.512,1077,4.126,1078,4.126,1080,4.583,1081,4.583,1083,5.277,1084,5.277]],["t/144",[35,2.888,125,4.383,304,3.946,511,2.649,548,4.552,949,4.383,953,2.401,1014,4.066,1018,3.359,1057,3.142,1058,4.383,1085,5.047,1086,5.047,1087,5.047,1088,6.942,1089,5.047,1090,5.047,1091,5.047,1092,5.047,1093,5.047,1094,5.047,1095,5.047,1096,5.047,1097,5.047,1098,5.047]],["t/146",[21,1.11,36,2.7,50,1.879,55,0.737,84,1.11,161,1.11,168,1.988,274,2.259,297,3.485,366,2.435,391,2.654,428,2.654,439,2.654,446,2.948,561,2.113,569,2.654,599,3.8,634,2.435,720,4.22,746,2.654,775,2.435,932,2.948,985,3.533,987,2.948,1010,2.948,1013,4.22,1026,2.948,1099,3.395,1100,3.395,1101,6.196,1102,4.859,1103,3.395,1104,3.395,1105,3.395,1106,3.395,1107,3.395,1108,3.395,1109,3.395,1110,3.395,1111,3.395,1112,3.395,1113,3.395,1114,6.196,1115,7.314,1116,3.395,1117,4.859,1118,3.395,1119,3.395,1120,3.395,1121,3.395,1122,3.395,1123,3.395,1124,3.395,1125,3.395,1126,3.395,1127,4.859,1128,3.395,1129,3.395,1130,4.859,1131,3.395,1132,3.395,1133,3.395,1134,3.395,1135,3.395,1136,3.395,1137,3.395,1138,3.395,1139,3.395,1140,3.395,1141,3.395,1142,3.395,1143,3.395]]],"invertedIndex":[["",{"_index":60,"t":{"4":{"position":[[212,1],[222,1],[286,1],[316,1],[340,1],[342,1]]},"6":{"position":[[332,1],[342,1],[417,1],[466,2],[475,1],[510,1],[512,1]]},"8":{"position":[[144,1],[156,1],[190,1],[204,1],[247,1]]},"10":{"position":[[63,1]]},"12":{"position":[[643,2],[646,3],[701,1],[703,2],[706,3],[723,1],[753,1],[776,1],[778,1],[780,2],[783,3],[787,1]]},"16":{"position":[[304,1],[314,1],[354,1],[396,1],[411,2],[477,1],[524,1],[554,1],[569,1],[584,1],[607,2],[647,2],[731,1],[758,1],[805,2],[848,1],[943,1],[967,1],[1108,1],[1110,1],[1112,1]]},"18":{"position":[[370,1],[391,1],[425,1],[444,1],[528,1],[579,2],[600,1],[639,1],[641,1],[643,2],[668,2],[746,3],[758,1],[778,1],[840,2],[879,1],[924,1],[1019,1],[1021,1]]},"20":{"position":[[563,1],[573,1],[611,2],[643,1],[658,1],[712,1],[734,1],[777,1],[806,1],[808,1]]},"22":{"position":[[220,2],[223,3],[234,1],[252,1],[332,1],[334,2],[337,3],[388,2],[484,1],[492,1],[515,1],[517,1],[539,2],[542,4],[569,1],[647,2],[650,1],[680,2],[705,3],[805,2],[808,1],[850,3],[929,1],[931,1],[933,2],[936,3],[940,1],[1067,1],[1224,2]]},"29":{"position":[[109,1],[140,1],[167,2],[248,2]]},"33":{"position":[[129,1],[141,1],[168,2],[231,1],[299,3],[315,2],[380,1],[461,3]]},"37":{"position":[[197,2],[274,2],[647,2],[724,2],[802,1],[825,3],[1431,1],[1490,1],[1516,2],[1591,2]]},"39":{"position":[[39,1],[66,1],[93,2],[155,2],[224,1],[267,1],[319,1],[337,1],[383,1],[405,3],[409,2],[496,1],[549,1],[551,2],[619,2],[726,2],[768,1],[770,2],[773,3],[798,1],[800,2],[862,1],[901,2],[904,3],[908,1]]},"41":{"position":[[364,1],[391,1],[418,2],[480,2],[549,1],[592,1],[644,1],[646,2],[649,3],[653,1],[655,2],[658,3],[683,1],[685,2],[734,1],[780,1],[798,3],[821,3],[831,1],[833,2],[896,1],[898,2],[960,1],[994,2],[997,3],[1001,1]]},"43":{"position":[[819,1],[831,1],[858,2],[951,2],[1017,1],[1079,3]]},"45":{"position":[[345,1],[424,1],[484,1],[558,1],[579,1],[581,2],[584,3],[588,1],[609,1]]},"49":{"position":[[506,1],[518,1]]},"51":{"position":[[979,1],[1000,1],[1038,2],[1057,1],[1059,1],[1082,1]]},"53":{"position":[[425,1],[437,1],[485,1]]},"55":{"position":[[289,1],[309,1]]},"57":{"position":[[289,1],[301,1],[328,2],[376,1],[490,1],[492,1],[494,3],[531,2]]},"59":{"position":[[213,1],[244,1],[272,1]]},"67":{"position":[[114,1],[124,1],[174,2],[177,3],[205,1],[221,1],[257,1],[287,1],[311,1],[313,1]]},"69":{"position":[[502,1],[512,1],[562,2],[565,3],[598,1],[614,1],[632,1],[690,1],[692,2],[727,1],[773,1],[814,1],[816,1],[1061,1],[1071,1],[1105,1],[1123,1],[1160,2],[1200,2],[1203,3],[1267,1],[1281,1],[1335,2],[1382,1],[1411,1],[1413,1],[1415,2]]},"71":{"position":[[1015,1],[1059,1],[1114,2],[1140,1],[1192,1],[1224,1],[1255,1],[1257,1],[1259,1]]},"75":{"position":[[289,1],[310,1],[360,1],[422,2],[425,3],[453,1],[483,1],[507,1],[509,1],[629,1]]},"77":{"position":[[114,1],[126,1],[160,1],[173,1],[210,1],[239,2],[242,13],[256,2],[281,2],[575,1],[587,1],[621,1],[645,1],[682,1]]},"81":{"position":[[572,1],[595,1],[638,2],[641,1],[839,1],[846,1],[903,1],[926,1],[972,1],[987,1],[1022,1],[1024,2],[1027,3],[1031,1],[1033,1],[1152,1],[1164,1],[1198,1],[1205,1],[1246,1],[1277,1],[1307,1],[1364,1],[1429,2],[1432,3],[1436,1],[1723,2],[1726,3],[1750,1],[1784,1],[1811,2],[1815,1]]},"87":{"position":[[232,1],[241,1]]},"89":{"position":[[679,1],[699,1],[733,1],[745,1],[771,2],[845,2],[888,1],[928,1],[936,1],[938,1],[962,2],[965,1],[985,3],[995,1],[1045,1],[1047,1],[1049,1],[1168,1]]},"91":{"position":[[961,1],[969,1],[1018,1],[1211,3],[1242,1],[1262,1],[1296,1],[1306,1],[1376,2],[1404,1],[1481,1],[1483,1],[1495,2],[1498,1],[1575,2],[1578,2],[1581,1],[1628,3],[1632,1],[1634,1],[1663,1],[1707,1],[1741,1],[1755,1],[1787,1],[1795,1],[1815,2],[1846,1],[1848,1],[1877,2],[1905,1],[1958,1],[2026,1],[2028,1],[2030,3],[2034,1],[2071,1],[2094,1],[2142,1],[2160,1],[2162,1],[2259,1],[2261,1],[2263,3],[2312,1],[2314,1],[2327,1]]},"97":{"position":[[816,1],[826,1],[878,2],[910,1],[929,2],[932,2],[935,1],[967,1],[1012,1],[1026,1],[1066,2],[1069,1],[1119,3],[1149,1],[1151,1],[1256,1],[1266,1],[1300,1],[1319,1],[1403,1],[1454,2],[1469,1],[1501,1],[1503,1]]},"101":{"position":[[210,1],[220,1],[274,2],[277,1],[279,2],[308,1],[331,1],[338,1],[367,1],[379,1],[422,1],[428,2],[431,1],[447,1],[559,1],[561,1],[712,1],[737,1],[771,1],[786,1],[842,1],[857,1],[921,2],[949,1],[1017,1],[1019,1],[1038,2],[1041,1],[1055,1],[1116,2],[1164,1],[1166,1]]},"105":{"position":[[587,1]]},"109":{"position":[[274,1],[286,1],[337,1],[350,3],[371,1],[386,1],[410,1],[412,1],[414,2],[444,1],[454,1],[506,1],[551,1],[588,2],[597,1],[632,1],[634,1],[636,2]]},"111":{"position":[[135,1],[148,1],[201,1],[221,2],[224,10],[235,2],[688,1],[700,1],[734,1],[747,1],[818,1]]},"113":{"position":[[272,1],[284,1],[335,1],[373,4],[403,1],[424,1],[448,2]]},"117":{"position":[[57,1],[65,1],[113,1]]},"119":{"position":[[77,1],[87,1],[121,1],[131,1],[201,1],[240,2],[256,1],[285,1],[287,1]]},"121":{"position":[[192,1],[204,1],[238,1],[251,1],[282,1],[292,1],[384,2],[387,3],[473,1],[649,1],[685,2],[688,1]]}}}],["100",{"_index":765,"t":{"89":{"position":[[407,4]]}}}],["17",{"_index":605,"t":{"65":{"position":[[607,5]]}}}],["2.0",{"_index":1087,"t":{"144":{"position":[[71,4]]}}}],["2015",{"_index":1103,"t":{"146":{"position":[[30,4]]}}}],["2021",{"_index":1104,"t":{"146":{"position":[[35,4]]}}}],["2023",{"_index":1106,"t":{"146":{"position":[[64,4]]}}}],["8080",{"_index":208,"t":{"16":{"position":[[641,5]]}}}],["_map",{"_index":280,"t":{"20":{"position":[[653,4]]}}}],["abil",{"_index":312,"t":{"25":{"position":[[104,7]]},"81":{"position":[[229,7],[726,7]]}}}],["abov",{"_index":84,"t":{"4":{"position":[[737,6]]},"10":{"position":[[33,6]]},"35":{"position":[[15,5]]},"37":{"position":[[833,5],[1367,5]]},"39":{"position":[[456,5]]},"41":{"position":[[298,5]]},"43":{"position":[[1090,5],[1238,5]]},"51":{"position":[[1576,5]]},"53":{"position":[[15,6]]},"69":{"position":[[1909,5]]},"73":{"position":[[824,5]]},"77":{"position":[[549,6]]},"87":{"position":[[355,5],[476,5]]},"89":{"position":[[1147,6],[1272,5]]},"93":{"position":[[404,6]]},"103":{"position":[[419,6]]},"109":{"position":[[943,5]]},"111":{"position":[[16,6]]},"113":{"position":[[222,5],[703,5],[799,5]]},"146":{"position":[[553,5]]}}}],["abstract",{"_index":79,"t":{"4":{"position":[[642,8]]},"73":{"position":[[999,9]]}}}],["abus",{"_index":1045,"t":{"132":{"position":[[13,8]]}}}],["accept",{"_index":930,"t":{"117":{"position":[[256,7],[363,9]]},"126":{"position":[[236,9],[268,9]]},"128":{"position":[[80,10]]}}}],["access",{"_index":721,"t":{"81":{"position":[[1683,6]]},"91":{"position":[[629,6]]}}}],["accompani",{"_index":445,"t":{"43":{"position":[[507,9]]}}}],["accomplish",{"_index":691,"t":{"81":{"position":[[111,10]]}}}],["accord",{"_index":933,"t":{"117":{"position":[[485,9]]}}}],["account",{"_index":1042,"t":{"130":{"position":[[271,8]]}}}],["achiev",{"_index":269,"t":{"20":{"position":[[300,7]]},"55":{"position":[[268,7]]}}}],["act",{"_index":976,"t":{"124":{"position":[[411,3]]},"130":{"position":[[283,6]]}}}],["action",{"_index":561,"t":{"57":{"position":[[710,8]]},"81":{"position":[[760,8]]},"128":{"position":[[146,6]]},"134":{"position":[[104,6]]},"138":{"position":[[69,8]]},"146":{"position":[[996,6]]}}}],["activ",{"_index":173,"t":{"12":{"position":[[623,6]]}}}],["actual",{"_index":320,"t":{"25":{"position":[[380,8]]},"51":{"position":[[1691,6]]},"99":{"position":[[212,8]]},"111":{"position":[[500,8]]}}}],["ad",{"_index":334,"t":{"27":{"position":[[170,5]]},"51":{"position":[[293,5]]},"53":{"position":[[586,6]]},"89":{"position":[[328,6]]},"107":{"position":[[30,5]]}}}],["adapt",{"_index":1085,"t":{"144":{"position":[[24,7]]}}}],["add",{"_index":572,"t":{"59":{"position":[[251,3]]},"75":{"position":[[533,3]]},"81":{"position":[[778,3]]},"89":{"position":[[386,3]]},"117":{"position":[[567,3]]}}}],["addit",{"_index":922,"t":{"113":{"position":[[720,10]]}}}],["addition",{"_index":668,"t":{"73":{"position":[[972,13]]}}}],["address",{"_index":307,"t":{"22":{"position":[[1203,7]]},"126":{"position":[[770,8]]},"130":{"position":[[225,8]]}}}],["adduser(jo",{"_index":716,"t":{"81":{"position":[[1438,13]]}}}],["adduser(rick",{"_index":717,"t":{"81":{"position":[[1452,14]]}}}],["adduser(valu",{"_index":715,"t":{"81":{"position":[[1343,14]]}}}],["adjac",{"_index":923,"t":{"113":{"position":[[741,8]]}}}],["administr",{"_index":701,"t":{"81":{"position":[[745,14]]}}}],["advanc",{"_index":1003,"t":{"126":{"position":[[574,8]]}}}],["advantag",{"_index":309,"t":{"25":{"position":[[12,9]]},"81":{"position":[[1476,9]]},"83":{"position":[[193,9]]},"113":{"position":[[98,9]]}}}],["advis",{"_index":121,"t":{"10":{"position":[[25,7]]}}}],["affect",{"_index":883,"t":{"105":{"position":[[147,6],[208,6]]},"126":{"position":[[318,8]]}}}],["ag",{"_index":956,"t":{"124":{"position":[[144,4]]}}}],["again",{"_index":450,"t":{"43":{"position":[[972,6]]}}}],["against",{"_index":495,"t":{"51":{"position":[[258,7]]}}}],["aggress",{"_index":1083,"t":{"142":{"position":[[155,10]]}}}],["aim",{"_index":655,"t":{"73":{"position":[[218,3]]}}}],["align",{"_index":1032,"t":{"128":{"position":[[408,7]]}}}],["allow",{"_index":148,"t":{"12":{"position":[[178,5],[491,5]]},"43":{"position":[[380,5]]},"49":{"position":[[324,6]]},"71":{"position":[[318,6]]},"73":{"position":[[749,8],[1340,6]]},"79":{"position":[[143,6]]},"81":{"position":[[240,5]]},"83":{"position":[[471,5]]},"89":{"position":[[1115,5]]},"93":{"position":[[20,6]]},"97":{"position":[[162,8]]},"103":{"position":[[240,6],[449,7]]},"111":{"position":[[592,6]]},"140":{"position":[[377,7]]}}}],["allowsamepar",{"_index":443,"t":{"43":{"position":[[361,18],[603,16],[1060,18]]}}}],["alongsid",{"_index":855,"t":{"101":{"position":[[151,9]]}}}],["alreadi",{"_index":126,"t":{"10":{"position":[[121,8]]},"27":{"position":[[243,7]]},"35":{"position":[[217,7]]},"37":{"position":[[398,7],[631,7]]},"39":{"position":[[421,7],[563,7]]},"43":{"position":[[135,7],[1160,7]]},"83":{"position":[[798,7]]}}}],["altogeth",{"_index":157,"t":{"12":{"position":[[288,11]]}}}],["alway",{"_index":160,"t":{"12":{"position":[[345,6]]},"41":{"position":[[210,6]]},"45":{"position":[[144,6]]},"49":{"position":[[304,6]]},"83":{"position":[[71,6]]},"87":{"position":[[453,6]]},"89":{"position":[[363,6]]},"97":{"position":[[478,6],[1614,6]]}}}],["and/or",{"_index":1121,"t":{"146":{"position":[[410,6]]}}}],["angular",{"_index":741,"t":{"83":{"position":[[773,8]]},"91":{"position":[[13,8]]}}}],["angular'",{"_index":736,"t":{"83":{"position":[[621,9]]}}}],["anoth",{"_index":289,"t":{"22":{"position":[[171,7]]},"43":{"position":[[100,7]]},"69":{"position":[[86,7],[249,7]]},"85":{"position":[[52,7]]},"111":{"position":[[563,7]]}}}],["answer",{"_index":1093,"t":{"144":{"position":[[255,7]]}}}],["anti",{"_index":158,"t":{"12":{"position":[[315,4]]},"71":{"position":[[616,4]]}}}],["api",{"_index":276,"t":{"20":{"position":[[484,4]]},"29":{"position":[[0,3]]},"31":{"position":[[0,3]]},"33":{"position":[[0,3]]},"51":{"position":[[2253,4]]},"53":{"position":[[134,3]]},"55":{"position":[[229,3]]},"61":{"position":[[145,3]]},"69":{"position":[[380,4]]},"101":{"position":[[91,4],[107,3],[598,3]]},"103":{"position":[[229,4]]},"109":{"position":[[853,3]]}}}],["apolog",{"_index":995,"t":{"126":{"position":[[297,11]]},"136":{"position":[[303,7]]}}}],["app",{"_index":255,"t":{"18":{"position":[[895,4]]},"25":{"position":[[255,4]]},"69":{"position":[[1427,6]]},"71":{"position":[[52,3]]},"73":{"position":[[532,4],[1693,4]]},"89":{"position":[[1014,3]]},"103":{"position":[[537,4]]}}}],["app'",{"_index":183,"t":{"14":{"position":[[220,5]]},"73":{"position":[[623,5]]}}}],["app_token",{"_index":768,"t":{"89":{"position":[[735,9],[780,9],[821,11],[1300,9],[1501,9]]}}}],["appear",{"_index":971,"t":{"124":{"position":[[334,11]]}}}],["append",{"_index":376,"t":{"37":{"position":[[551,6]]}}}],["appli",{"_index":780,"t":{"91":{"position":[[42,7]]},"130":{"position":[[21,7],[67,7]]}}}],["applic",{"_index":1,"t":{"2":{"position":[[15,11]]},"4":{"position":[[81,11],[655,11]]},"6":{"position":[[170,11],[237,12]]},"16":{"position":[[21,11]]},"18":{"position":[[206,13],[234,11]]},"20":{"position":[[23,12]]},"39":{"position":[[825,11]]},"41":{"position":[[118,11],[923,11]]},"47":{"position":[[140,11]]},"51":{"position":[[1994,12],[2074,12]]},"61":{"position":[[77,13],[251,12]]},"65":{"position":[[327,11],[446,11]]},"69":{"position":[[231,11],[847,11],[1636,11]]},"73":{"position":[[959,12],[1057,11]]},"81":{"position":[[369,11]]},"91":{"position":[[179,11],[545,11]]},"97":{"position":[[306,12],[664,11],[1832,12]]},"99":{"position":[[496,11]]},"105":{"position":[[158,12]]}}}],["application'",{"_index":637,"t":{"71":{"position":[[221,13]]},"105":{"position":[[220,13]]}}}],["appoint",{"_index":1043,"t":{"130":{"position":[[296,9]]}}}],["approach",{"_index":718,"t":{"81":{"position":[[1494,8]]}}}],["appropri",{"_index":457,"t":{"45":{"position":[[102,12]]},"128":{"position":[[114,11],[500,12]]}}}],["apptoken",{"_index":771,"t":{"89":{"position":[[911,9]]}}}],["aptli",{"_index":480,"t":{"49":{"position":[[53,5]]}}}],["archiv",{"_index":644,"t":{"71":{"position":[[630,9]]},"73":{"position":[[401,9],[499,9]]}}}],["aren't",{"_index":593,"t":{"65":{"position":[[21,6]]},"121":{"position":[[544,6]]}}}],["argument",{"_index":897,"t":{"109":{"position":[[822,10]]}}}],["argument'",{"_index":423,"t":{"41":{"position":[[86,10]]}}}],["aris",{"_index":446,"t":{"43":{"position":[[580,7],[642,6]]},"146":{"position":[[1035,7]]}}}],["around",{"_index":935,"t":{"117":{"position":[[538,6]]},"136":{"position":[[201,6]]}}}],["array",{"_index":896,"t":{"109":{"position":[[732,6]]}}}],["asid",{"_index":331,"t":{"27":{"position":[[107,5]]}}}],["ask",{"_index":498,"t":{"51":{"position":[[522,3]]}}}],["assert(newcontainer.par",{"_index":353,"t":{"33":{"position":[[272,26]]}}}],["assert(newnewcontainer.par",{"_index":357,"t":{"33":{"position":[[431,29]]}}}],["associ",{"_index":1116,"t":{"146":{"position":[[214,10]]}}}],["assum",{"_index":485,"t":{"49":{"position":[[240,7]]}}}],["async",{"_index":202,"t":{"16":{"position":[[504,5]]},"18":{"position":[[582,5]]},"20":{"position":[[687,5],[736,5]]},"69":{"position":[[674,5],[736,5],[1319,5],[1345,5]]},"91":{"position":[[2036,5]]},"101":{"position":[[1021,5]]}}}],["asynchron",{"_index":278,"t":{"20":{"position":[[518,13]]},"57":{"position":[[266,15]]}}}],["attach",{"_index":481,"t":{"49":{"position":[[113,8]]},"75":{"position":[[25,8]]},"97":{"position":[[338,8]]}}}],["attack",{"_index":1009,"t":{"126":{"position":[[665,7]]}}}],["attent",{"_index":1002,"t":{"126":{"position":[[561,9]]}}}],["author",{"_index":1136,"t":{"146":{"position":[[900,7]]}}}],["automat",{"_index":250,"t":{"18":{"position":[[714,14]]},"113":{"position":[[821,13]]}}}],["avail",{"_index":548,"t":{"55":{"position":[[186,9]]},"89":{"position":[[475,9]]},"97":{"position":[[363,9]]},"144":{"position":[[76,9],[385,9]]}}}],["avoid",{"_index":642,"t":{"71":{"position":[[461,7]]},"138":{"position":[[306,8]]}}}],["await",{"_index":814,"t":{"91":{"position":[[2164,5]]}}}],["away",{"_index":80,"t":{"4":{"position":[[673,4]]},"73":{"position":[[1009,4]]}}}],["ban",{"_index":1078,"t":{"138":{"position":[[455,4]]},"140":{"position":[[131,3],[451,4]]},"142":{"position":[[242,3]]}}}],["base",{"_index":394,"t":{"37":{"position":[[1224,5]]},"73":{"position":[[1320,5]]}}}],["basic",{"_index":0,"t":{"2":{"position":[[9,5],[100,5]]},"81":{"position":[[1872,5]]}}}],["be",{"_index":249,"t":{"18":{"position":[[655,5]]},"51":{"position":[[1376,5]]},"97":{"position":[[1701,5]]},"111":{"position":[[277,5]]},"126":{"position":[[146,5]]}}}],["becom",{"_index":647,"t":{"71":{"position":[[704,6]]},"111":{"position":[[406,6]]}}}],["befor",{"_index":629,"t":{"69":{"position":[[1826,6]]},"89":{"position":[[1385,6]]},"119":{"position":[[382,6]]},"121":{"position":[[66,6]]}}}],["beforehand",{"_index":39,"t":{"2":{"position":[[473,11]]},"14":{"position":[[527,11]]}}}],["begin",{"_index":47,"t":{"4":{"position":[[3,6]]}}}],["behavior",{"_index":983,"t":{"126":{"position":[[12,8],[489,8]]},"128":{"position":[[91,8],[172,8]]},"132":{"position":[[59,8]]},"136":{"position":[[57,8],[266,8]]},"138":{"position":[[133,9]]},"140":{"position":[[96,9]]},"142":{"position":[[113,9]]}}}],["behaviour",{"_index":540,"t":{"53":{"position":[[116,9]]},"75":{"position":[[87,9]]},"85":{"position":[[456,9]]},"99":{"position":[[198,9]]},"103":{"position":[[168,10]]}}}],["below",{"_index":30,"t":{"2":{"position":[[362,6]]},"14":{"position":[[416,6]]},"20":{"position":[[241,5]]},"25":{"position":[[506,6]]},"27":{"position":[[357,6]]},"39":{"position":[[171,5]]},"41":{"position":[[253,6],[496,5]]},"43":{"position":[[805,6]]},"51":{"position":[[2280,6]]},"65":{"position":[[689,5]]},"81":{"position":[[308,5],[1127,6]]},"85":{"position":[[581,5]]},"113":{"position":[[539,5]]}}}],["best",{"_index":564,"t":{"57":{"position":[[846,4]]},"126":{"position":[[397,4]]}}}],["beta",{"_index":579,"t":{"61":{"position":[[131,5]]}}}],["better",{"_index":389,"t":{"37":{"position":[[1158,6]]},"103":{"position":[[192,6]]},"113":{"position":[[637,6]]}}}],["bind",{"_index":488,"t":{"49":{"position":[[338,4]]},"61":{"position":[[9,8],[377,8]]},"75":{"position":[[220,4]]}}}],["bit",{"_index":748,"t":{"87":{"position":[[123,4]]}}}],["bitmask",{"_index":752,"t":{"87":{"position":[[203,8],[288,8],[375,7],[518,7]]}}}],["bitwis",{"_index":750,"t":{"87":{"position":[[173,7]]}}}],["blog",{"_index":783,"t":{"91":{"position":[[535,5],[601,5]]}}}],["bodi",{"_index":787,"t":{"91":{"position":[[806,4],[916,6],[1189,4]]},"124":{"position":[[149,4]]}}}],["bootstrap",{"_index":247,"t":{"18":{"position":[[588,11]]},"91":{"position":[[1485,9]]},"97":{"position":[[1457,11]]}}}],["both",{"_index":341,"t":{"29":{"position":[[57,4]]}}}],["bound",{"_index":486,"t":{"49":{"position":[[261,5]]},"51":{"position":[[1521,5]]},"53":{"position":[[39,5]]},"57":{"position":[[906,5]]}}}],["break",{"_index":224,"t":{"16":{"position":[[1033,6],[1101,6]]},"22":{"position":[[709,6],[854,6],[922,6]]},"71":{"position":[[70,8]]}}}],["breviti",{"_index":941,"t":{"121":{"position":[[108,8]]}}}],["broadli",{"_index":839,"t":{"97":{"position":[[1776,7]]}}}],["brought",{"_index":652,"t":{"73":{"position":[[131,7]]}}}],["bubbl",{"_index":1109,"t":{"146":{"position":[[107,8]]}}}],["bug",{"_index":581,"t":{"61":{"position":[[205,5]]}}}],["build",{"_index":761,"t":{"89":{"position":[[222,8]]}}}],["button",{"_index":790,"t":{"91":{"position":[[851,6]]}}}],["button').addeventlistener('click",{"_index":804,"t":{"91":{"position":[[1540,34]]}}}],["c",{"_index":1102,"t":{"146":{"position":[[26,3],[60,3]]}}}],["cach",{"_index":542,"t":{"53":{"position":[[302,6]]},"99":{"position":[[42,6]]}}}],["calcul",{"_index":848,"t":{"99":{"position":[[389,13]]},"105":{"position":[[476,12]]}}}],["call",{"_index":91,"t":{"6":{"position":[[192,4]]},"8":{"position":[[103,5]]},"18":{"position":[[46,6]]},"37":{"position":[[360,4],[591,4]]},"39":{"position":[[462,4]]},"41":{"position":[[862,4]]},"43":{"position":[[1116,4],[1244,4]]},"45":{"position":[[928,5]]},"65":{"position":[[69,6],[120,6],[266,6],[575,4]]},"71":{"position":[[493,6]]},"81":{"position":[[142,5]]},"87":{"position":[[106,7]]},"99":{"position":[[65,5]]},"103":{"position":[[380,5]]},"113":{"position":[[499,4]]}}}],["caller",{"_index":519,"t":{"51":{"position":[[1437,7]]}}}],["can't",{"_index":500,"t":{"51":{"position":[[593,5]]},"69":{"position":[[1621,5]]},"81":{"position":[[1667,5]]}}}],["carefulli",{"_index":601,"t":{"65":{"position":[[458,9]]},"91":{"position":[[473,10]]}}}],["case",{"_index":221,"t":{"16":{"position":[[969,4]]},"22":{"position":[[571,4],[716,4]]},"37":{"position":[[495,6]]},"41":{"position":[[8,6]]},"43":{"position":[[8,6],[159,5],[595,4]]},"45":{"position":[[71,5]]},"51":{"position":[[500,6]]},"55":{"position":[[75,5]]},"57":{"position":[[8,6],[176,5]]},"71":{"position":[[580,6]]},"73":{"position":[[1663,5]]},"75":{"position":[[677,5]]},"79":{"position":[[8,6],[114,6]]},"89":{"position":[[1334,4]]},"91":{"position":[[168,4]]},"97":{"position":[[154,4],[1815,4]]},"99":{"position":[[186,6],[250,5]]},"105":{"position":[[452,5]]}}}],["caus",{"_index":776,"t":{"89":{"position":[[1241,7]]}}}],["caution",{"_index":563,"t":{"57":{"position":[[823,7]]},"65":{"position":[[289,7]]},"71":{"position":[[389,7]]},"89":{"position":[[1051,7]]},"91":{"position":[[291,7]]},"109":{"position":[[639,7]]}}}],["centr",{"_index":934,"t":{"117":{"position":[[530,7]]}}}],["central",{"_index":667,"t":{"73":{"position":[[787,7]]},"101":{"position":[[1248,7]]}}}],["certain",{"_index":362,"t":{"35":{"position":[[157,7]]},"71":{"position":[[155,7],[553,7]]},"73":{"position":[[82,7]]},"75":{"position":[[601,7]]},"83":{"position":[[509,7]]},"87":{"position":[[39,7]]},"91":{"position":[[350,7]]}}}],["certainli",{"_index":745,"t":{"85":{"position":[[518,9]]}}}],["chain",{"_index":743,"t":{"85":{"position":[[336,5]]}}}],["chang",{"_index":456,"t":{"45":{"position":[[35,6]]},"61":{"position":[[163,6],[362,8]]},"73":{"position":[[1138,6]]},"75":{"position":[[209,7],[691,7]]},"87":{"position":[[571,6]]},"91":{"position":[[394,6]]},"109":{"position":[[922,8]]},"113":{"position":[[192,6]]}}}],["channel",{"_index":1074,"t":{"138":{"position":[[368,8]]}}}],["characterist",{"_index":372,"t":{"37":{"position":[[136,16]]},"124":{"position":[[208,16]]}}}],["charg",{"_index":1112,"t":{"146":{"position":[[154,7]]}}}],["chart",{"_index":531,"t":{"51":{"position":[[1932,5]]},"85":{"position":[[423,5]]},"93":{"position":[[320,5],[393,5]]}}}],["check",{"_index":438,"t":{"43":{"position":[[85,6],[662,5]]},"71":{"position":[[141,5]]},"73":{"position":[[881,5]]},"85":{"position":[[139,5],[269,6],[294,6]]},"111":{"position":[[352,8]]}}}],["child",{"_index":343,"t":{"29":{"position":[[75,5],[275,5]]},"33":{"position":[[87,5],[180,5],[340,5],[351,6]]},"37":{"position":[[286,5],[736,5],[1603,5]]},"43":{"position":[[870,5]]},"51":{"position":[[955,5],[1158,5],[1396,5],[1607,5],[1743,5]]},"53":{"position":[[367,5],[613,5]]},"91":{"position":[[673,5]]},"97":{"position":[[1591,5]]}}}],["childcontain",{"_index":513,"t":{"51":{"position":[[1067,14]]},"91":{"position":[[2079,14]]}}}],["childcontainer.get(myservic",{"_index":514,"t":{"51":{"position":[[1123,30]]}}}],["childcontainer.get(pageservice).bootstrap",{"_index":817,"t":{"91":{"position":[[2267,44]]}}}],["childdontainer.set",{"_index":816,"t":{"91":{"position":[[2186,20]]}}}],["choos",{"_index":384,"t":{"37":{"position":[[954,6]]}}}],["circumst",{"_index":496,"t":{"51":{"position":[[418,14]]}}}],["claim",{"_index":1139,"t":{"146":{"position":[[947,6]]}}}],["clarifi",{"_index":1017,"t":{"128":{"position":[[38,10]]}}}],["clariti",{"_index":1064,"t":{"136":{"position":[[193,7]]}}}],["class",{"_index":63,"t":{"4":{"position":[[269,5]]},"6":{"position":[[399,5]]},"10":{"position":[[172,6]]},"12":{"position":[[678,5]]},"16":{"position":[[454,5]]},"18":{"position":[[510,5]]},"22":{"position":[[309,5]]},"45":{"position":[[214,5],[458,5],[733,5]]},"51":{"position":[[1041,5]]},"67":{"position":[[188,5]]},"69":{"position":[[576,5],[1214,5]]},"71":{"position":[[1124,5]]},"73":{"position":[[1463,5]]},"75":{"position":[[436,5]]},"81":{"position":[[554,5],[876,5],[1817,6],[1830,5]]},"89":{"position":[[855,5]]},"91":{"position":[[903,5],[1386,5],[1887,5]]},"97":{"position":[[944,5],[1385,5]]},"101":{"position":[[289,5],[931,5]]},"109":{"position":[[354,5],[533,5]]},"111":{"position":[[70,6]]},"113":{"position":[[48,7],[592,7]]},"117":{"position":[[241,6]]},"119":{"position":[[184,5]]},"121":{"position":[[634,5]]},"142":{"position":[[193,7]]}}}],["cleverli",{"_index":906,"t":{"111":{"position":[[466,9]]}}}],["click",{"_index":791,"t":{"91":{"position":[[870,8]]}}}],["close",{"_index":162,"t":{"12":{"position":[[369,5],[505,7]]},"16":{"position":[[252,7]]}}}],["code",{"_index":35,"t":{"2":{"position":[[437,4]]},"14":{"position":[[491,4]]},"18":{"position":[[261,4],[918,5]]},"65":{"position":[[339,5]]},"77":{"position":[[544,4]]},"113":{"position":[[685,5]]},"115":{"position":[[258,5]]},"121":{"position":[[442,5]]},"128":{"position":[[345,5],[424,4]]},"130":{"position":[[5,4]]},"134":{"position":[[142,4]]},"138":{"position":[[243,4]]},"140":{"position":[[357,4]]},"144":{"position":[[5,4],[215,4],[294,4]]}}}],["collid",{"_index":399,"t":{"37":{"position":[[1333,8]]}}}],["combin",{"_index":822,"t":{"93":{"position":[[162,8]]},"95":{"position":[[84,8]]}}}],["come",{"_index":905,"t":{"111":{"position":[[456,5]]}}}],["command",{"_index":44,"t":{"2":{"position":[[558,7]]},"14":{"position":[[612,7]]}}}],["comment",{"_index":1007,"t":{"126":{"position":[[629,9]]},"128":{"position":[[326,9]]}}}],["commit",{"_index":1030,"t":{"128":{"position":[[336,8]]}}}],["common",{"_index":1094,"t":{"144":{"position":[[266,6]]}}}],["commun",{"_index":953,"t":{"124":{"position":[[77,9],[507,10]]},"126":{"position":[[72,9],[454,9]]},"128":{"position":[[0,9],[247,9],[450,11]]},"130":{"position":[[40,9],[125,9],[182,9]]},"132":{"position":[[91,9],[247,9]]},"134":{"position":[[0,9],[36,9]]},"136":{"position":[[0,9],[108,10],[164,9]]},"138":{"position":[[0,9],[331,9]]},"140":{"position":[[0,9],[41,9],[174,13],[197,9]]},"142":{"position":[[0,9],[58,9],[293,10]]},"144":{"position":[[160,9]]}}}],["compartmentalis",{"_index":535,"t":{"51":{"position":[[2104,16]]}}}],["complaint",{"_index":1048,"t":{"132":{"position":[[177,10]]}}}],["complet",{"_index":371,"t":{"37":{"position":[[115,10]]}}}],["complic",{"_index":847,"t":{"99":{"position":[[377,11]]}}}],["compon",{"_index":314,"t":{"25":{"position":[[131,10]]}}}],["comput",{"_index":636,"t":{"71":{"position":[[201,12]]},"105":{"position":[[80,8],[99,13]]}}}],["concept",{"_index":75,"t":{"4":{"position":[[534,7]]},"65":{"position":[[258,7]]},"73":{"position":[[29,8],[296,8]]},"87":{"position":[[15,7]]}}}],["concret",{"_index":510,"t":{"51":{"position":[[803,8]]}}}],["condit",{"_index":1126,"t":{"146":{"position":[[537,11]]}}}],["conduct",{"_index":1014,"t":{"126":{"position":[[819,7]]},"128":{"position":[[432,8]]},"130":{"position":[[13,7]]},"134":{"position":[[150,8]]},"138":{"position":[[251,8]]},"140":{"position":[[365,8]]},"144":{"position":[[13,7],[223,7],[302,8]]}}}],["configur",{"_index":108,"t":{"6":{"position":[[825,14]]},"85":{"position":[[487,15]]},"89":{"position":[[265,13],[752,18]]},"97":{"position":[[573,13]]}}}],["configurationreaderservic",{"_index":770,"t":{"89":{"position":[[861,26]]}}}],["conflict",{"_index":365,"t":{"35":{"position":[[235,9]]},"37":{"position":[[878,11],[926,8],[974,9],[1110,9],[1145,10]]},"39":{"position":[[690,8]]},"43":{"position":[[36,8],[219,8],[253,8],[317,9],[386,9],[476,8],[571,8],[625,8],[694,11],[1213,8]]}}}],["conflictdefinit",{"_index":451,"t":{"43":{"position":[[1040,19]]}}}],["conjoin",{"_index":749,"t":{"87":{"position":[[154,9]]}}}],["connect",{"_index":168,"t":{"12":{"position":[[472,11],[516,11]]},"14":{"position":[[201,11]]},"16":{"position":[[621,11]]},"69":{"position":[[167,10],[642,11],[654,11],[680,9],[695,7],[988,11],[1325,9],[1562,10],[1688,11]]},"73":{"position":[[604,11]]},"99":{"position":[[440,13]]},"146":{"position":[[1062,10]]}}}],["consequ",{"_index":1060,"t":{"134":{"position":[[83,12]]},"136":{"position":[[119,12]]},"138":{"position":[[78,12],[106,12]]},"140":{"position":[[106,12]]},"142":{"position":[[217,12]]}}}],["consid",{"_index":318,"t":{"25":{"position":[[274,8]]},"37":{"position":[[153,8]]},"39":{"position":[[0,8]]},"61":{"position":[[271,8]]},"65":{"position":[[433,8]]},"69":{"position":[[426,8],[1737,8]]},"71":{"position":[[414,10],[602,10]]},"81":{"position":[[342,8]]},"91":{"position":[[498,8]]},"95":{"position":[[191,8]]},"97":{"position":[[1784,10]]},"105":{"position":[[458,8]]},"126":{"position":[[853,10]]}}}],["consist",{"_index":189,"t":{"16":{"position":[[45,7]]},"61":{"position":[[386,7]]}}}],["consol",{"_index":54,"t":{"4":{"position":[[122,8]]},"6":{"position":[[616,8]]},"67":{"position":[[414,8]]},"89":{"position":[[1479,8]]},"117":{"position":[[162,11]]}}}],["console.log('dispos",{"_index":557,"t":{"57":{"position":[[534,26]]}}}],["console.log('hello",{"_index":651,"t":{"71":{"position":[[1226,18]]}}}],["console.log('web",{"_index":253,"t":{"18":{"position":[[843,16]]}}}],["console.log(getus",{"_index":725,"t":{"81":{"position":[[1786,24]]}}}],["console.log(messag",{"_index":68,"t":{"4":{"position":[[318,21]]},"67":{"position":[[289,21]]},"75":{"position":[[485,21]]},"109":{"position":[[388,21]]},"113":{"position":[[426,21]]}}}],["console.log(this.messag",{"_index":940,"t":{"119":{"position":[[258,26]]}}}],["console.warn('an",{"_index":774,"t":{"89":{"position":[[997,16]]}}}],["const",{"_index":116,"t":{"8":{"position":[[229,5]]},"16":{"position":[[571,5]]},"18":{"position":[[760,5]]},"20":{"position":[[621,5]]},"22":{"position":[[486,5]]},"33":{"position":[[212,5],[358,5]]},"37":{"position":[[1412,5],[1464,5]]},"39":{"position":[[202,5],[250,5],[321,5],[846,5]]},"41":{"position":[[527,5],[575,5],[713,5],[944,5]]},"45":{"position":[[590,5]]},"51":{"position":[[1061,5]]},"53":{"position":[[464,5]]},"57":{"position":[[355,5]]},"75":{"position":[[344,5]]},"77":{"position":[[197,5],[669,5]]},"81":{"position":[[1235,5],[1267,5],[1296,5]]},"91":{"position":[[1003,5],[2073,5],[2136,5],[2316,5]]},"101":{"position":[[433,5],[1043,5]]},"109":{"position":[[320,5],[488,5]]},"111":{"position":[[172,5],[771,5]]},"113":{"position":[[318,5]]},"117":{"position":[[99,5]]}}}],["constrain",{"_index":747,"t":{"87":{"position":[[26,12]]},"95":{"position":[[138,9]]}}}],["constraint",{"_index":731,"t":{"83":{"position":[[447,11],[666,11],[828,12]]},"87":{"position":[[328,12]]},"89":{"position":[[346,10]]},"91":{"position":[[2474,12]]},"93":{"position":[[9,10],[131,10]]},"95":{"position":[[9,10]]}}}],["construct",{"_index":754,"t":{"87":{"position":[[361,9],[503,12]]},"126":{"position":[[246,12]]}}}],["constructor",{"_index":470,"t":{"45":{"position":[[758,11],[828,12]]},"67":{"position":[[207,13],[354,11]]},"69":{"position":[[600,13]]},"89":{"position":[[890,11]]},"91":{"position":[[1406,11],[1907,11]]},"101":{"position":[[951,11]]}}}],["constructor(id",{"_index":466,"t":{"45":{"position":[[493,15]]}}}],["constructor(priv",{"_index":96,"t":{"6":{"position":[[426,19]]},"18":{"position":[[530,19]]},"22":{"position":[[341,19]]},"71":{"position":[[1142,19]]},"97":{"position":[[1405,19]]},"109":{"position":[[560,19]]},"119":{"position":[[203,19]]}}}],["constructor(publ",{"_index":699,"t":{"81":{"position":[[605,18],[939,18]]},"121":{"position":[[651,18]]}}}],["consum",{"_index":149,"t":{"12":{"position":[[188,8]]},"73":{"position":[[1507,9]]},"103":{"position":[[123,9]]},"119":{"position":[[333,7]]}}}],["contain",{"_index":51,"t":{"4":{"position":[[69,7]]},"8":{"position":[[146,9]]},"16":{"position":[[179,8]]},"18":{"position":[[293,10],[381,9]]},"27":{"position":[[26,9],[80,10],[125,11],[155,10],[214,9],[311,10]]},"29":{"position":[[81,11],[130,9],[189,10],[229,11],[260,9],[296,10],[343,11],[355,11],[449,10]]},"31":{"position":[[64,11]]},"33":{"position":[[66,9],[131,9],[201,10],[259,12],[303,11],[418,12]]},"35":{"position":[[195,9],[247,9]]},"37":{"position":[[78,9],[219,10],[255,11],[307,10],[340,12],[420,9],[464,9],[609,9],[669,10],[705,11],[757,10],[790,11],[890,9],[1049,10],[1444,12],[1503,12],[1538,10],[1624,10]]},"39":{"position":[[105,9],[191,10],[327,9],[441,10],[484,11],[582,10],[593,11],[716,9]]},"41":{"position":[[34,9],[140,9],[197,9],[430,9],[516,10],[702,10]]},"43":{"position":[[108,9],[401,10],[426,9],[706,9],[821,9],[876,9],[901,10],[938,12],[1005,11]]},"45":{"position":[[46,10],[84,10],[131,9],[283,10],[643,12],[723,9],[858,9],[917,10]]},"47":{"position":[[0,10],[164,9]]},"49":{"position":[[77,10],[282,10],[365,11],[442,10],[476,9],[508,9]]},"51":{"position":[[47,9],[151,10],[173,9],[277,10],[367,9],[549,10],[583,9],[894,10],[961,10],[981,10],[1110,12],[1164,9],[1259,10],[1402,9],[1534,10],[1613,9],[1675,11],[1749,10],[1830,10],[2036,10],[2157,11],[2179,9]]},"53":{"position":[[60,9],[324,10],[373,9],[398,10],[427,9],[513,12],[573,9],[619,9]]},"55":{"position":[[42,9],[120,9],[160,9],[203,10],[365,9]]},"57":{"position":[[43,9],[126,10],[256,9],[291,9],[344,10],[404,12],[584,10],[752,9],[881,10],[945,10],[976,9]]},"59":{"position":[[106,10]]},"61":{"position":[[197,7]]},"63":{"position":[[97,9],[141,9]]},"71":{"position":[[235,10],[361,9],[872,10],[899,9],[1162,10]]},"73":{"position":[[433,10]]},"75":{"position":[[49,10],[252,10],[300,9],[350,9],[388,12],[412,9],[703,10]]},"77":{"position":[[49,10],[116,9],[342,10],[369,10],[425,10],[496,9],[577,9],[635,9]]},"81":{"position":[[81,10],[1154,9],[1597,10]]},"83":{"position":[[206,9],[288,10],[364,9]]},"89":{"position":[[606,9],[1533,10],[1548,9]]},"91":{"position":[[89,9],[131,10],[210,9],[358,9],[679,9],[735,10],[781,10],[830,8],[1928,10]]},"93":{"position":[[43,9],[76,9],[211,9]]},"97":{"position":[[381,10],[427,9],[1597,11]]},"103":{"position":[[277,9]]},"115":{"position":[[81,10]]},"117":{"position":[[508,8]]},"119":{"position":[[407,10]]},"121":{"position":[[194,9]]}}}],["container'",{"_index":553,"t":{"57":{"position":[[206,11]]}}}],["container.get",{"_index":541,"t":{"53":{"position":[[182,13]]},"65":{"position":[[80,14],[131,13]]},"71":{"position":[[993,14]]},"99":{"position":[[74,13]]},"103":{"position":[[389,14]]}}}],["container.get(logservic",{"_index":683,"t":{"77":{"position":[[212,26],[684,26]]}}}],["container.get(logservice).log",{"_index":943,"t":{"121":{"position":[[391,32]]}}}],["container.get(rootservic",{"_index":117,"t":{"8":{"position":[[249,27]]},"18":{"position":[[780,27]]},"91":{"position":[[2329,27]]}}}],["container.getmani",{"_index":826,"t":{"95":{"position":[[50,18]]}}}],["container.getmany(us",{"_index":724,"t":{"81":{"position":[[1759,24]]}}}],["container.has(myservic",{"_index":650,"t":{"71":{"position":[[1197,26]]}}}],["container.ofchild('mi",{"_index":352,"t":{"33":{"position":[[233,21]]},"37":{"position":[[318,21],[768,21]]},"43":{"position":[[912,21],[979,21]]},"51":{"position":[[1084,21]]},"53":{"position":[[487,21]]},"57":{"position":[[378,21]]},"75":{"position":[[362,21]]}}}],["container.set",{"_index":545,"t":{"53":{"position":[[633,14]]},"81":{"position":[[1366,15]]},"91":{"position":[[1960,15]]},"121":{"position":[[318,15]]}}}],["container.setvalue(start_tim",{"_index":415,"t":{"39":{"position":[[498,30]]}}}],["containeridentifi",{"_index":464,"t":{"45":{"position":[[404,19],[509,20]]}}}],["containerinst",{"_index":344,"t":{"29":{"position":[[111,18]]},"39":{"position":[[41,18]]},"41":{"position":[[366,18]]},"45":{"position":[[166,18],[347,18],[539,18],[794,17]]},"55":{"position":[[291,17]]},"71":{"position":[[1017,18],[1173,18]]},"91":{"position":[[1665,18],[1939,18]]}}}],["containerinstance.of",{"_index":472,"t":{"45":{"position":[[953,20]]}}}],["containerinstance.of('mi",{"_index":345,"t":{"29":{"position":[[200,24],[307,24]]},"37":{"position":[[230,24],[680,24]]},"55":{"position":[[336,24]]}}}],["containerinstance.of(my_contain",{"_index":404,"t":{"37":{"position":[[1549,34]]}}}],["containerinstance.of(my_second_contain",{"_index":405,"t":{"37":{"position":[[1635,42]]}}}],["containerinstance.of(value_contain",{"_index":414,"t":{"39":{"position":[[339,37],[729,38]]},"41":{"position":[[736,37]]}}}],["containerregistri",{"_index":462,"t":{"45":{"position":[[366,18]]}}}],["containerregistry.registercontainer(newcontain",{"_index":469,"t":{"45":{"position":[[656,50]]}}}],["context",{"_index":240,"t":{"18":{"position":[[277,7]]},"83":{"position":[[256,7]]}}}],["continu",{"_index":1069,"t":{"138":{"position":[[123,9]]}}}],["contract",{"_index":1142,"t":{"146":{"position":[[1006,9]]}}}],["contrari",{"_index":843,"t":{"97":{"position":[[1990,9]]}}}],["contribut",{"_index":978,"t":{"124":{"position":[[441,10]]},"126":{"position":[[26,11]]},"128":{"position":[[381,13]]}}}],["contributor",{"_index":949,"t":{"124":{"position":[[15,13]]},"144":{"position":[[41,11]]}}}],["contriv",{"_index":819,"t":{"91":{"position":[[2415,9]]}}}],["control",{"_index":661,"t":{"73":{"position":[[425,7]]}}}],["convent",{"_index":86,"t":{"6":{"position":[[10,10]]}}}],["copi",{"_index":1114,"t":{"146":{"position":[[188,4],[356,5],[422,6],[628,6]]}}}],["copyright",{"_index":1101,"t":{"146":{"position":[[16,9],[50,9],[559,9],[911,9]]}}}],["core",{"_index":74,"t":{"4":{"position":[[529,4]]},"73":{"position":[[24,4]]}}}],["correct",{"_index":1021,"t":{"128":{"position":[[135,10]]}}}],["correctli",{"_index":426,"t":{"41":{"position":[[230,9]]}}}],["correspond",{"_index":854,"t":{"101":{"position":[[118,10]]}}}],["cours",{"_index":533,"t":{"51":{"position":[[1980,6]]}}}],["coven",{"_index":1086,"t":{"144":{"position":[[53,9]]}}}],["covenant.org/faq",{"_index":1096,"t":{"144":{"position":[[350,17]]}}}],["covenant.org/transl",{"_index":1098,"t":{"144":{"position":[[422,26]]}}}],["covenant.org/version/2/0/code_of_conduct.html",{"_index":1089,"t":{"144":{"position":[[113,46]]}}}],["cover",{"_index":133,"t":{"10":{"position":[[298,7]]},"77":{"position":[[410,7]]}}}],["creat",{"_index":48,"t":{"4":{"position":[[25,6],[462,6]]},"6":{"position":[[51,6]]},"8":{"position":[[43,6]]},"10":{"position":[[196,7]]},"12":{"position":[[41,7],[403,6]]},"16":{"position":[[143,6]]},"25":{"position":[[389,6],[448,7]]},"27":{"position":[[147,7],[302,6]]},"29":{"position":[[50,6],[170,6],[251,6]]},"31":{"position":[[57,6]]},"33":{"position":[[57,6],[171,6],[331,6]]},"37":{"position":[[200,6],[277,6],[650,6],[727,6],[1519,6],[1594,6]]},"39":{"position":[[180,6],[429,7]]},"41":{"position":[[50,7],[505,6]]},"43":{"position":[[861,6]]},"51":{"position":[[947,7],[1359,7],[1551,7]]},"53":{"position":[[358,6]]},"55":{"position":[[33,6]]},"57":{"position":[[331,6]]},"61":{"position":[[28,7]]},"65":{"position":[[28,7],[312,6]]},"67":{"position":[[3,6]]},"69":{"position":[[343,6],[1552,7],[1661,8],[1746,8]]},"77":{"position":[[488,7]]},"79":{"position":[[30,6],[85,6],[235,6]]},"81":{"position":[[654,6]]},"91":{"position":[[557,7]]},"97":{"position":[[44,7],[106,8],[273,7],[513,7],[641,6],[738,7],[2021,8]]},"99":{"position":[[19,6]]},"101":{"position":[[45,6]]},"105":{"position":[[116,7]]},"115":{"position":[[33,6]]},"117":{"position":[[13,6],[196,7]]},"119":{"position":[[351,7],[395,7]]},"121":{"position":[[76,6]]}}}],["createcontaineropt",{"_index":360,"t":{"35":{"position":[[59,22]]}}}],["createserv",{"_index":213,"t":{"16":{"position":[[743,14]]}}}],["creation",{"_index":230,"t":{"16":{"position":[[1148,8]]}}}],["crucial",{"_index":478,"t":{"47":{"position":[[110,10]]}}}],["current",{"_index":152,"t":{"12":{"position":[[222,10]]},"33":{"position":[[100,8]]},"43":{"position":[[275,10]]},"45":{"position":[[774,10]]},"55":{"position":[[214,10]]},"61":{"position":[[118,9]]},"69":{"position":[[1607,10]]},"81":{"position":[[1673,9]]},"83":{"position":[[271,7],[356,7]]},"91":{"position":[[1050,7]]},"93":{"position":[[203,7]]},"111":{"position":[[902,9]]},"113":{"position":[[769,10]]}}}],["custom",{"_index":332,"t":{"27":{"position":[[118,6]]},"45":{"position":[[77,6],[225,6],[716,6],[851,6],[985,6]]}}}],["d.t",{"_index":924,"t":{"113":{"position":[[750,5]]}}}],["damag",{"_index":1140,"t":{"146":{"position":[[954,7]]}}}],["danger",{"_index":577,"t":{"61":{"position":[[91,6]]},"65":{"position":[[702,8]]},"69":{"position":[[352,9]]},"87":{"position":[[435,6]]}}}],["dark",{"_index":788,"t":{"91":{"position":[[841,4],[891,5]]}}}],["data",{"_index":277,"t":{"20":{"position":[[513,4]]}}}],["databas",{"_index":167,"t":{"12":{"position":[[463,8]]},"14":{"position":[[226,9]]},"20":{"position":[[147,9],[214,8],[373,9],[433,8]]},"22":{"position":[[14,9],[361,9]]},"69":{"position":[[185,8],[710,8],[979,8],[1580,9],[1679,8],[1802,8]]},"73":{"position":[[629,9],[1160,8],[1230,9]]},"99":{"position":[[431,8]]}}}],["database.servic",{"_index":290,"t":{"22":{"position":[[259,21]]}}}],["databaseservic",{"_index":182,"t":{"14":{"position":[[171,16]]},"20":{"position":[[627,15]]},"22":{"position":[[236,15],[371,16]]},"69":{"position":[[146,16],[582,15],[871,15],[1107,15],[1184,15],[1251,15],[1471,15]]},"73":{"position":[[574,16],[1191,15]]}}}],["date",{"_index":264,"t":{"20":{"position":[[112,5]]}}}],["deal",{"_index":1117,"t":{"146":{"position":[[266,4],[1111,8]]}}}],["debug",{"_index":931,"t":{"117":{"position":[[391,9]]}}}],["decis",{"_index":1034,"t":{"128":{"position":[[485,9]]}}}],["declar",{"_index":69,"t":{"4":{"position":[[372,7]]},"6":{"position":[[522,8],[778,7]]},"14":{"position":[[139,7]]},"67":{"position":[[50,12]]},"69":{"position":[[7,7]]},"73":{"position":[[1355,7],[1619,11]]},"75":{"position":[[570,12]]},"97":{"position":[[610,9]]}}}],["decor",{"_index":102,"t":{"6":{"position":[[706,10]]},"71":{"position":[[106,9]]},"73":{"position":[[1310,9]]},"75":{"position":[[146,10]]},"79":{"position":[[133,9]]},"83":{"position":[[634,11]]}}}],["decorator'",{"_index":547,"t":{"55":{"position":[[148,11]]}}}],["deem",{"_index":1022,"t":{"128":{"position":[[191,4]]},"134":{"position":[[116,4]]},"136":{"position":[[66,6]]}}}],["default",{"_index":225,"t":{"16":{"position":[[1040,8]]},"22":{"position":[[861,8]]},"27":{"position":[[200,8]]},"29":{"position":[[288,7],[425,8],[441,7]]},"33":{"position":[[193,7]]},"37":{"position":[[299,7],[749,7],[1072,8],[1616,7]]},"43":{"position":[[70,8],[352,8],[530,8],[893,7]]},"49":{"position":[[35,8],[69,7],[91,8],[274,7],[434,7]]},"51":{"position":[[886,7],[1667,7]]},"53":{"position":[[52,7],[73,8],[316,7],[390,7],[565,7]]},"57":{"position":[[873,7],[968,7]]},"63":{"position":[[117,8],[133,7]]},"65":{"position":[[547,7]]},"75":{"position":[[3,8],[41,7]]},"97":{"position":[[373,7]]}}}],["defer",{"_index":502,"t":{"51":{"position":[[627,5]]}}}],["defin",{"_index":441,"t":{"43":{"position":[[205,6],[308,6]]},"83":{"position":[[565,7]]}}}],["definit",{"_index":436,"t":{"43":{"position":[[20,10],[262,12],[485,10],[1222,11]]}}}],["defualt",{"_index":516,"t":{"51":{"position":[[1251,7]]}}}],["deletecom",{"_index":702,"t":{"81":{"position":[[784,13]]}}}],["deletecomment(commentid",{"_index":707,"t":{"81":{"position":[[989,24]]}}}],["demand",{"_index":140,"t":{"12":{"position":[[68,7]]}}}],["demo",{"_index":841,"t":{"97":{"position":[[1827,4]]}}}],["demonstr",{"_index":9,"t":{"2":{"position":[[106,13]]},"27":{"position":[[344,12]]},"101":{"position":[[3,11]]},"126":{"position":[[91,13]]},"142":{"position":[[18,13]]}}}],["demystifi",{"_index":657,"t":{"73":{"position":[[373,12]]}}}],["depend",{"_index":72,"t":{"4":{"position":[[430,12],[510,12],[557,10],[603,6]]},"6":{"position":[[24,10],[566,7],[659,7]]},"10":{"position":[[234,13]]},"18":{"position":[[87,6]]},"25":{"position":[[43,10]]},"47":{"position":[[130,9]]},"53":{"position":[[212,12]]},"57":{"position":[[476,13]]},"65":{"position":[[167,11]]},"71":{"position":[[163,12],[675,12]]},"73":{"position":[[41,10],[253,10],[351,11],[452,10],[1399,7]]},"81":{"position":[[1415,13]]},"83":{"position":[[47,11],[517,10]]},"85":{"position":[[85,11],[101,10]]},"89":{"position":[[24,11],[452,10],[1315,11]]},"91":{"position":[[64,12],[335,9],[2012,13],[2245,13]]},"97":{"position":[[1553,11]]},"99":{"position":[[122,11]]},"103":{"position":[[38,11]]},"109":{"position":[[690,12]]},"115":{"position":[[143,13]]},"119":{"position":[[370,11]]},"121":{"position":[[370,13]]}}}],["deploy",{"_index":194,"t":{"16":{"position":[[202,9]]}}}],["derogatori",{"_index":1006,"t":{"126":{"position":[[618,10]]}}}],["design",{"_index":499,"t":{"51":{"position":[[541,7],[1485,6]]},"83":{"position":[[694,8]]}}}],["desir",{"_index":879,"t":{"103":{"position":[[160,7]]}}}],["deterior",{"_index":852,"t":{"99":{"position":[[516,13]]}}}],["determin",{"_index":1059,"t":{"134":{"position":[[67,11]]}}}],["develop",{"_index":890,"t":{"109":{"position":[[20,9]]}}}],["di",{"_index":241,"t":{"18":{"position":[[290,2]]},"71":{"position":[[869,2]]},"83":{"position":[[631,2]]}}}],["diagnost",{"_index":666,"t":{"73":{"position":[[770,11]]},"101":{"position":[[1256,11]]}}}],["diagnosticsservic",{"_index":664,"t":{"73":{"position":[[729,19]]}}}],["dictat",{"_index":361,"t":{"35":{"position":[[124,7]]}}}],["didn't",{"_index":515,"t":{"51":{"position":[[1174,6]]},"83":{"position":[[163,8]]}}}],["differ",{"_index":107,"t":{"6":{"position":[[815,9]]},"25":{"position":[[179,9]]},"37":{"position":[[126,9]]},"43":{"position":[[49,6]]},"49":{"position":[[355,9]]},"51":{"position":[[1872,9],[2051,9],[2147,9],[2198,9]]},"57":{"position":[[935,9]]},"73":{"position":[[1220,9]]},"75":{"position":[[242,9]]},"77":{"position":[[39,9]]},"81":{"position":[[452,9]]},"91":{"position":[[245,9]]},"126":{"position":[[166,9]]}}}],["disabl",{"_index":960,"t":{"124":{"position":[[181,11]]}}}],["disadvantag",{"_index":632,"t":{"69":{"position":[[1915,14]]}}}],["discourag",{"_index":607,"t":{"65":{"position":[[660,12]]}}}],["disparag",{"_index":1084,"t":{"142":{"position":[[176,13]]}}}],["dispos",{"_index":554,"t":{"57":{"position":[[218,7],[240,8],[573,8],[775,8],[858,7]]}}}],["distribut",{"_index":1119,"t":{"146":{"position":[[386,11]]}}}],["divers",{"_index":980,"t":{"124":{"position":[[475,8]]}}}],["do",{"_index":13,"t":{"2":{"position":[[163,5]]},"6":{"position":[[288,5]]},"69":{"position":[[1534,5]]}}}],["document",{"_index":569,"t":{"59":{"position":[[22,14]]},"91":{"position":[[1201,9]]},"146":{"position":[[225,13]]}}}],["document.bodi",{"_index":809,"t":{"91":{"position":[[1997,14]]}}}],["doesn't",{"_index":147,"t":{"12":{"position":[[164,7]]},"73":{"position":[[210,7]]},"83":{"position":[[374,7]]},"89":{"position":[[40,7]]},"93":{"position":[[221,7]]},"105":{"position":[[345,7]]},"111":{"position":[[34,7]]},"119":{"position":[[425,7]]}}}],["dom",{"_index":785,"t":{"91":{"position":[[723,3],[1058,3]]}}}],["dom_nod",{"_index":784,"t":{"91":{"position":[[643,8],[1009,8],[1343,9],[1353,10],[1980,9],[2211,9]]}}}],["don't",{"_index":685,"t":{"77":{"position":[[380,5]]},"87":{"position":[[259,5]]},"109":{"position":[[664,5]]}}}],["done",{"_index":232,"t":{"16":{"position":[[1285,4]]},"43":{"position":[[240,4]]},"59":{"position":[[311,5]]},"87":{"position":[[62,4]]},"97":{"position":[[1164,4]]},"109":{"position":[[1010,4]]},"119":{"position":[[300,4]]}}}],["down",{"_index":151,"t":{"12":{"position":[[205,4],[375,4]]}}}],["due",{"_index":381,"t":{"37":{"position":[[867,3]]},"111":{"position":[[858,3]]}}}],["dure",{"_index":1082,"t":{"140":{"position":[[385,6]]}}}],["e",{"_index":1037,"t":{"130":{"position":[[218,1]]}}}],["e.g",{"_index":850,"t":{"99":{"position":[[425,5]]}}}],["each",{"_index":338,"t":{"27":{"position":[[322,4]]},"35":{"position":[[3,4]]},"45":{"position":[[126,4]]},"51":{"position":[[168,4],[2174,4]]},"73":{"position":[[63,4],[115,4],[922,4],[986,4]]},"81":{"position":[[1044,4],[1545,4]]},"91":{"position":[[584,4],[607,4],[820,4]]},"103":{"position":[[502,4]]},"111":{"position":[[52,4]]}}}],["eager",{"_index":596,"t":{"65":{"position":[[273,5],[297,5],[505,5],[641,5]]},"67":{"position":[[162,6]]},"69":{"position":[[18,5],[140,5],[271,5],[550,6],[1721,5]]}}}],["earli",{"_index":610,"t":{"69":{"position":[[215,5]]}}}],["easi",{"_index":325,"t":{"25":{"position":[[566,4]]}}}],["easier",{"_index":272,"t":{"20":{"position":[[394,6]]},"81":{"position":[[1521,6]]},"107":{"position":[[81,7]]},"109":{"position":[[73,6]]}}}],["easili",{"_index":673,"t":{"73":{"position":[[1443,6]]}}}],["econom",{"_index":968,"t":{"124":{"position":[[295,8]]}}}],["edit",{"_index":1028,"t":{"128":{"position":[[310,5],[356,6]]}}}],["editor",{"_index":920,"t":{"113":{"position":[[658,7]]}}}],["educ",{"_index":966,"t":{"124":{"position":[[278,10]]}}}],["effect",{"_index":614,"t":{"69":{"position":[[317,7],[1786,7]]},"97":{"position":[[89,8]]},"99":{"position":[[417,7]]},"105":{"position":[[129,7],[498,7]]}}}],["element",{"_index":786,"t":{"91":{"position":[[727,7],[811,8],[923,8],[1143,8]]}}}],["elid",{"_index":908,"t":{"111":{"position":[[638,5]]}}}],["email",{"_index":1012,"t":{"126":{"position":[[764,5]]}}}],["emit",{"_index":849,"t":{"99":{"position":[[406,5]]}}}],["empathi",{"_index":986,"t":{"126":{"position":[[105,7]]}}}],["enableeagerload",{"_index":604,"t":{"65":{"position":[[583,18]]}}}],["encount",{"_index":633,"t":{"71":{"position":[[18,9]]}}}],["end",{"_index":762,"t":{"89":{"position":[[313,3]]},"101":{"position":[[424,3],[463,5]]}}}],["endnam",{"_index":861,"t":{"101":{"position":[[439,7],[549,9]]}}}],["endpoint",{"_index":306,"t":{"22":{"position":[[1189,8]]}}}],["enforc",{"_index":1018,"t":{"128":{"position":[[53,9]]},"132":{"position":[[125,11]]},"138":{"position":[[229,9]]},"140":{"position":[[343,9]]},"144":{"position":[[231,11]]}}}],["ensur",{"_index":89,"t":{"6":{"position":[[113,7]]},"25":{"position":[[438,6]]},"41":{"position":[[186,6]]},"59":{"position":[[68,6]]}}}],["entri",{"_index":877,"t":{"101":{"position":[[1225,7]]}}}],["environ",{"_index":25,"t":{"2":{"position":[[307,11]]},"6":{"position":[[125,11]]},"59":{"position":[[94,11]]},"69":{"position":[[1849,11]]},"113":{"position":[[125,12]]},"126":{"position":[[52,11]]}}}],["equival",{"_index":825,"t":{"95":{"position":[[36,10]]},"109":{"position":[[901,11]]},"111":{"position":[[935,10]]}}}],["error",{"_index":380,"t":{"37":{"position":[[861,5],[1099,5]]},"43":{"position":[[560,5]]},"51":{"position":[[748,5]]},"57":{"position":[[816,6]]},"85":{"position":[[359,5]]},"89":{"position":[[1257,7],[1580,6]]},"91":{"position":[[458,7]]},"93":{"position":[[255,5]]},"97":{"position":[[1922,6]]},"111":{"position":[[649,7]]}}}],["es5",{"_index":914,"t":{"113":{"position":[[121,3]]}}}],["es6",{"_index":675,"t":{"73":{"position":[[1459,3]]},"113":{"position":[[70,3],[588,3]]}}}],["escap",{"_index":640,"t":{"71":{"position":[[428,7]]}}}],["essenti",{"_index":558,"t":{"57":{"position":[[600,11]]}}}],["ethnic",{"_index":961,"t":{"124":{"position":[[193,10]]}}}],["even",{"_index":397,"t":{"37":{"position":[[1297,4]]},"43":{"position":[[1131,4]]},"51":{"position":[[1591,4]]},"57":{"position":[[665,5]]}}}],["event",{"_index":428,"t":{"41":{"position":[[276,5]]},"130":{"position":[[345,6]]},"146":{"position":[[884,5]]}}}],["everyon",{"_index":955,"t":{"124":{"position":[[120,9]]}}}],["everyth",{"_index":111,"t":{"8":{"position":[[16,10]]}}}],["examin",{"_index":259,"t":{"18":{"position":[[1001,7]]}}}],["exampl",{"_index":29,"t":{"2":{"position":[[353,8]]},"12":{"position":[[435,8]]},"14":{"position":[[334,8],[407,8]]},"16":{"position":[[694,8]]},"18":{"position":[[12,7]]},"20":{"position":[[233,7],[278,7]]},"25":{"position":[[337,8],[497,8]]},"33":{"position":[[113,8]]},"37":{"position":[[188,8],[839,7],[1359,7]]},"39":{"position":[[23,8]]},"41":{"position":[[290,7]]},"43":{"position":[[797,7],[1096,8]]},"49":{"position":[[197,9]]},"51":{"position":[[812,7],[1582,8]]},"57":{"position":[[159,8]]},"59":{"position":[[345,7]]},"69":{"position":[[462,8]]},"73":{"position":[[913,8],[1040,8]]},"75":{"position":[[192,7]]},"81":{"position":[[327,8],[355,7],[1878,7]]},"89":{"position":[[213,8],[551,7]]},"91":{"position":[[521,7],[2425,8]]},"95":{"position":[[174,7]]},"97":{"position":[[626,8]]},"101":{"position":[[61,8]]},"103":{"position":[[411,7]]},"109":{"position":[[153,7],[239,8],[935,7]]},"111":{"position":[[7,8]]},"113":{"position":[[177,8],[695,7]]},"115":{"position":[[163,8],[202,7]]},"121":{"position":[[148,7]]},"126":{"position":[[0,8],[464,8]]},"130":{"position":[[153,8]]}}}],["execut",{"_index":449,"t":{"43":{"position":[[770,9]]},"53":{"position":[[247,7]]},"71":{"position":[[351,9]]}}}],["exhaust",{"_index":509,"t":{"51":{"position":[[787,10]]},"85":{"position":[[345,10]]}}}],["exist",{"_index":336,"t":{"27":{"position":[[251,7]]},"35":{"position":[[225,6],[278,5]]},"37":{"position":[[406,6],[444,8],[639,7],[1040,8]]},"43":{"position":[[143,7],[1168,6]]},"71":{"position":[[176,6]]},"83":{"position":[[104,8]]},"89":{"position":[[629,6],[1234,6]]}}}],["exit",{"_index":7,"t":{"2":{"position":[[83,6]]}}}],["expect",{"_index":448,"t":{"43":{"position":[[736,9]]}}}],["expens",{"_index":882,"t":{"105":{"position":[[89,9]]}}}],["experi",{"_index":842,"t":{"97":{"position":[[1903,10]]},"113":{"position":[[644,10]]},"124":{"position":[[105,10],[266,11]]},"126":{"position":[[202,11],[366,10]]}}}],["explan",{"_index":1066,"t":{"136":{"position":[[243,11]]}}}],["explicit",{"_index":453,"t":{"43":{"position":[[1204,8]]},"65":{"position":[[566,8]]},"126":{"position":[[793,8]]}}}],["explicitli",{"_index":236,"t":{"18":{"position":[[141,10]]},"55":{"position":[[97,10]]},"65":{"position":[[58,10]]},"105":{"position":[[353,10]]}}}],["explor",{"_index":537,"t":{"51":{"position":[[2272,7]]},"53":{"position":[[6,8]]},"73":{"position":[[1574,9]]},"75":{"position":[[163,7]]},"81":{"position":[[295,7]]},"85":{"position":[[603,7]]},"89":{"position":[[503,7]]}}}],["export",{"_index":62,"t":{"4":{"position":[[262,6]]},"6":{"position":[[392,6]]},"16":{"position":[[447,6]]},"18":{"position":[[503,6]]},"20":{"position":[[614,6]]},"37":{"position":[[1405,6],[1457,6]]},"39":{"position":[[243,6]]},"41":{"position":[[568,6]]},"45":{"position":[[451,6]]},"67":{"position":[[181,6]]},"69":{"position":[[569,6],[1207,6]]},"71":{"position":[[1117,6]]},"75":{"position":[[337,6],[429,6]]},"81":{"position":[[547,6],[869,6],[1228,6]]},"89":{"position":[[848,6]]},"91":{"position":[[996,6],[1379,6],[1880,6]]},"97":{"position":[[937,6],[1378,6]]},"101":{"position":[[282,6],[924,6]]},"109":{"position":[[313,6],[481,6]]},"111":{"position":[[924,6]]},"113":{"position":[[311,6]]},"117":{"position":[[92,6],[545,9]]},"119":{"position":[[177,6]]},"121":{"position":[[627,6]]}}}],["express",{"_index":634,"t":{"71":{"position":[[95,10]]},"73":{"position":[[1271,7],[1299,10]]},"124":{"position":[[245,11]]},"146":{"position":[[740,7]]}}}],["extend",{"_index":458,"t":{"45":{"position":[[202,6]]},"53":{"position":[[554,6]]},"81":{"position":[[890,7]]}}}],["extern",{"_index":1073,"t":{"138":{"position":[[359,8]]}}}],["extra",{"_index":831,"t":{"97":{"position":[[567,5]]}}}],["fact",{"_index":737,"t":{"83":{"position":[[649,5]]},"121":{"position":[[573,5]]}}}],["factori",{"_index":689,"t":{"79":{"position":[[164,7]]}}}],["fail",{"_index":369,"t":{"37":{"position":[[48,4],[599,4]]},"83":{"position":[[152,4]]},"91":{"position":[[433,5]]},"111":{"position":[[107,5]]}}}],["fair",{"_index":1020,"t":{"128":{"position":[[130,4]]}}}],["fairli",{"_index":1052,"t":{"132":{"position":[[235,7]]}}}],["fakedatabaseservic",{"_index":625,"t":{"69":{"position":[[1220,19]]}}}],["familiar",{"_index":740,"t":{"83":{"position":[[759,8]]}}}],["faq",{"_index":1095,"t":{"144":{"position":[[319,3]]}}}],["fear",{"_index":132,"t":{"10":{"position":[[268,4]]}}}],["featur",{"_index":490,"t":{"51":{"position":[[25,8]]},"65":{"position":[[424,8]]},"81":{"position":[[204,7]]},"83":{"position":[[407,8],[594,7],[718,8]]}}}],["feedback",{"_index":994,"t":{"126":{"position":[[259,8]]}}}],["few",{"_index":598,"t":{"65":{"position":[[374,3]]}}}],["fiction",{"_index":864,"t":{"101":{"position":[[625,9]]}}}],["file",{"_index":50,"t":{"4":{"position":[[52,5]]},"6":{"position":[[273,5]]},"8":{"position":[[65,4]]},"69":{"position":[[94,5]]},"111":{"position":[[980,5]]},"113":{"position":[[756,6]]},"117":{"position":[[22,4],[479,5],[525,4],[599,4]]},"146":{"position":[[239,5]]}}}],["final",{"_index":109,"t":{"8":{"position":[[0,8]]},"101":{"position":[[163,5]]},"117":{"position":[[336,8]]}}}],["find",{"_index":501,"t":{"51":{"position":[[599,4]]},"77":{"position":[[509,4]]},"93":{"position":[[107,5]]},"99":{"position":[[462,4]]},"105":{"position":[[179,4]]}}}],["finish",{"_index":550,"t":{"57":{"position":[[65,8]]}}}],["first",{"_index":192,"t":{"16":{"position":[[120,6]]},"51":{"position":[[111,5]]},"117":{"position":[[0,6]]}}}],["fit",{"_index":1133,"t":{"146":{"position":[[824,7]]}}}],["fix",{"_index":722,"t":{"81":{"position":[[1702,3]]},"99":{"position":[[533,3]]}}}],["flag",{"_index":759,"t":{"89":{"position":[[92,5]]}}}],["flexibl",{"_index":524,"t":{"51":{"position":[[1791,11]]}}}],["fli",{"_index":477,"t":{"47":{"position":[[105,4]]}}}],["flow",{"_index":530,"t":{"51":{"position":[[1927,4]]},"69":{"position":[[243,5]]},"85":{"position":[[418,4]]},"93":{"position":[[315,4],[388,4]]}}}],["focus",{"_index":998,"t":{"126":{"position":[[377,8]]}}}],["follow",{"_index":21,"t":{"2":{"position":[[218,8]]},"14":{"position":[[151,9]]},"18":{"position":[[908,9]]},"25":{"position":[[574,6]]},"37":{"position":[[166,9],[1002,8]]},"39":{"position":[[13,9]]},"45":{"position":[[327,10]]},"55":{"position":[[246,9]]},"61":{"position":[[401,9]]},"67":{"position":[[77,10]]},"69":{"position":[[439,9]]},"73":{"position":[[554,9]]},"77":{"position":[[64,9]]},"91":{"position":[[511,9]]},"95":{"position":[[204,10]]},"111":{"position":[[92,9]]},"113":{"position":[[235,10]]},"121":{"position":[[462,10]]},"134":{"position":[[23,6]]},"146":{"position":[[527,9]]}}}],["forget",{"_index":609,"t":{"69":{"position":[[118,6]]},"89":{"position":[[1204,6]]},"109":{"position":[[670,6]]}}}],["forgotten",{"_index":434,"t":{"41":{"position":[[849,9]]}}}],["form",{"_index":751,"t":{"87":{"position":[[196,4]]}}}],["format",{"_index":326,"t":{"25":{"position":[[581,7]]},"73":{"position":[[1469,6]]}}}],["found",{"_index":228,"t":{"16":{"position":[[1092,8]]},"22":{"position":[[913,8]]},"41":{"position":[[247,5]]},"51":{"position":[[713,5]]},"77":{"position":[[329,5]]},"85":{"position":[[190,6],[259,6]]},"89":{"position":[[126,6]]}}}],["fowler",{"_index":663,"t":{"73":{"position":[[492,6]]}}}],["fragil",{"_index":597,"t":{"65":{"position":[[319,7]]}}}],["framework",{"_index":742,"t":{"85":{"position":[[122,9]]}}}],["free",{"_index":366,"t":{"35":{"position":[[284,6]]},"41":{"position":[[332,4]]},"124":{"position":[[100,4]]},"146":{"position":[[146,4]]}}}],["freshgum",{"_index":1107,"t":{"146":{"position":[[69,8]]}}}],["freshgum.bubbles@protonmail.com",{"_index":1047,"t":{"132":{"position":[[140,32]]}}}],["freshgum/typedi",{"_index":61,"t":{"4":{"position":[[229,19]]},"6":{"position":[[349,19]]},"8":{"position":[[163,19]]},"16":{"position":[[321,19]]},"18":{"position":[[398,19]]},"20":{"position":[[580,19]]},"29":{"position":[[147,19]]},"33":{"position":[[148,19]]},"39":{"position":[[73,19]]},"41":{"position":[[398,19]]},"43":{"position":[[838,19]]},"45":{"position":[[431,19]]},"49":{"position":[[525,19]]},"51":{"position":[[1007,19]]},"53":{"position":[[444,19]]},"55":{"position":[[316,19]]},"57":{"position":[[308,19]]},"59":{"position":[[227,16],[255,16],[287,16]]},"67":{"position":[[131,19]]},"69":{"position":[[519,19],[1078,19]]},"71":{"position":[[1066,19]]},"75":{"position":[[317,19]]},"77":{"position":[[133,19],[594,19]]},"81":{"position":[[1171,19]]},"89":{"position":[[706,19]]},"91":{"position":[[976,19],[1269,19],[1714,19]]},"97":{"position":[[833,19],[1273,19]]},"101":{"position":[[227,19],[744,19]]},"109":{"position":[[293,19],[461,19]]},"111":{"position":[[707,19]]},"113":{"position":[[291,19]]},"117":{"position":[[72,19]]},"119":{"position":[[94,19]]},"121":{"position":[[211,19]]}}}],["freshgum/typedi/contrib/transi",{"_index":867,"t":{"101":{"position":[[793,35]]}}}],["friendli",{"_index":899,"t":{"109":{"position":[[892,8]]}}}],["frugal",{"_index":603,"t":{"65":{"position":[[484,9]]}}}],["function",{"_index":24,"t":{"2":{"position":[[295,11]]},"22":{"position":[[959,11]]},"39":{"position":[[162,8],[290,8],[777,8]]},"41":{"position":[[487,8],[615,8],[662,8]]},"45":{"position":[[232,14],[892,9]]},"47":{"position":[[177,9]]},"55":{"position":[[256,8]]},"71":{"position":[[302,9],[820,8]]},"73":{"position":[[164,13]]},"79":{"position":[[53,8],[172,9]]},"81":{"position":[[1334,8],[1730,8]]},"87":{"position":[[84,9],[137,9],[345,9],[482,9]]},"95":{"position":[[23,12]]},"107":{"position":[[17,8]]},"109":{"position":[[125,8]]},"111":{"position":[[534,8]]},"113":{"position":[[14,8],[37,10],[351,8],[405,8]]}}}],["fundament",{"_index":103,"t":{"6":{"position":[[728,11]]}}}],["furnish",{"_index":1124,"t":{"146":{"position":[[492,9]]}}}],["further",{"_index":827,"t":{"95":{"position":[[130,7]]},"99":{"position":[[57,7]]}}}],["futur",{"_index":586,"t":{"61":{"position":[[324,6]]},"65":{"position":[[497,7]]}}}],["g",{"_index":41,"t":{"2":{"position":[[498,1]]},"14":{"position":[[552,1]]}}}],["gave",{"_index":128,"t":{"10":{"position":[[148,4]]}}}],["gender",{"_index":963,"t":{"124":{"position":[[225,6]]}}}],["gener",{"_index":77,"t":{"4":{"position":[[581,8]]},"25":{"position":[[67,8]]},"113":{"position":[[559,9]]}}}],["get",{"_index":23,"t":{"2":{"position":[[247,7]]},"63":{"position":[[31,4]]}}}],["getus",{"_index":723,"t":{"81":{"position":[[1739,10]]}}}],["getvalue(nam",{"_index":620,"t":{"69":{"position":[[742,14],[1351,14]]}}}],["getvaluecontain",{"_index":413,"t":{"39":{"position":[[299,19]]},"41":{"position":[[624,19],[867,20]]}}}],["getvaluecontainer().get(start_tim",{"_index":422,"t":{"39":{"position":[[864,36]]}}}],["give",{"_index":8,"t":{"2":{"position":[[93,4]]},"51":{"position":[[1777,5]]},"75":{"position":[[588,5]]},"126":{"position":[[214,6]]}}}],["global",{"_index":43,"t":{"2":{"position":[[523,8]]},"14":{"position":[[577,8]]},"27":{"position":[[19,6]]},"97":{"position":[[354,8]]}}}],["go",{"_index":186,"t":{"14":{"position":[[349,5]]},"16":{"position":[[36,5],[101,5]]},"81":{"position":[[1858,3]]}}}],["good",{"_index":231,"t":{"16":{"position":[[1259,4]]},"41":{"position":[[174,4]]},"51":{"position":[[1768,5]]},"97":{"position":[[1797,4]]},"117":{"position":[[452,4]]}}}],["gracefulli",{"_index":993,"t":{"126":{"position":[[225,10]]}}}],["grant",{"_index":1111,"t":{"146":{"position":[[137,8]]}}}],["great",{"_index":880,"t":{"105":{"position":[[38,5]]}}}],["greatli",{"_index":310,"t":{"25":{"position":[[82,7]]}}}],["guid",{"_index":484,"t":{"49":{"position":[[227,6]]},"73":{"position":[[244,5]]},"77":{"position":[[436,6]]},"91":{"position":[[2449,5]]}}}],["guidelin",{"_index":1058,"t":{"134":{"position":[[53,10]]},"144":{"position":[[177,10]]}}}],["handl",{"_index":141,"t":{"12":{"position":[[87,8]]},"14":{"position":[[192,8],[266,6]]},"35":{"position":[[150,6]]},"51":{"position":[[390,6],[458,6]]},"73":{"position":[[595,8],[669,6]]}}}],["handlerequest(request",{"_index":217,"t":{"16":{"position":[[860,22]]},"22":{"position":[[401,22]]}}}],["happen",{"_index":503,"t":{"51":{"position":[[667,7],[844,7]]}}}],["harass",{"_index":954,"t":{"124":{"position":[[89,10]]},"126":{"position":[[691,10]]},"132":{"position":[[22,10]]},"142":{"position":[[123,10]]}}}],["hard",{"_index":928,"t":{"115":{"position":[[253,4]]}}}],["harder",{"_index":618,"t":{"69":{"position":[[410,6]]}}}],["harm",{"_index":1025,"t":{"128":{"position":[[238,8]]}}}],["hatch",{"_index":641,"t":{"71":{"position":[[436,7]]}}}],["have",{"_index":37,"t":{"2":{"position":[[450,6]]},"14":{"position":[[504,6]]},"51":{"position":[[2189,6]]}}}],["healthi",{"_index":982,"t":{"124":{"position":[[499,7]]}}}],["hear",{"_index":124,"t":{"10":{"position":[[102,4]]}}}],["hello",{"_index":5,"t":{"2":{"position":[[59,6]]},"10":{"position":[[87,5]]},"16":{"position":[[974,9]]},"22":{"position":[[576,9],[1182,6]]},"49":{"position":[[184,5]]},"57":{"position":[[461,6]]},"59":{"position":[[332,5]]},"75":{"position":[[179,5]]},"109":{"position":[[226,5]]},"115":{"position":[[189,5]]},"121":{"position":[[354,6],[497,5]]}}}],["helpfulli",{"_index":440,"t":{"43":{"position":[[177,9]]},"71":{"position":[[265,9]]}}}],["here",{"_index":267,"t":{"20":{"position":[[223,5]]},"39":{"position":[[658,5]]},"69":{"position":[[719,7]]},"73":{"position":[[305,4]]},"111":{"position":[[298,5]]},"121":{"position":[[167,5]]}}}],["here'",{"_index":529,"t":{"51":{"position":[[1918,6]]},"85":{"position":[[409,6]]},"93":{"position":[[306,6]]}}}],["herebi",{"_index":1110,"t":{"146":{"position":[[130,6]]}}}],["highlight",{"_index":520,"t":{"51":{"position":[[1454,10]]}}}],["hoist",{"_index":853,"t":{"99":{"position":[[551,7]]},"105":{"position":[[467,8]]}}}],["hold",{"_index":493,"t":{"51":{"position":[[183,5]]},"117":{"position":[[33,5]]}}}],["holder",{"_index":1137,"t":{"146":{"position":[[921,7]]}}}],["hook",{"_index":578,"t":{"61":{"position":[[108,5],[411,6]]},"63":{"position":[[5,4]]}}}],["host",{"_index":832,"t":{"97":{"position":[[681,5],[1955,6]]}}}],["hostcontain",{"_index":638,"t":{"71":{"position":[[288,13],[397,13],[806,13],[957,13],[1036,14],[1097,16]]},"91":{"position":[[1693,13],[1861,15]]},"101":{"position":[[723,13]]},"103":{"position":[[213,15]]},"107":{"position":[[129,14]]}}}],["htmlelement",{"_index":801,"t":{"91":{"position":[[1437,12],[1468,12]]}}}],["http",{"_index":174,"t":{"12":{"position":[[630,4]]},"16":{"position":[[348,5],[403,7],[421,4],[1223,4]]},"25":{"position":[[309,4],[398,4],[458,4]]},"97":{"position":[[860,4],[870,7],[888,4]]}}}],["http.createserver((request",{"_index":214,"t":{"16":{"position":[[767,27]]},"97":{"position":[[1028,27]]}}}],["http.server",{"_index":833,"t":{"97":{"position":[[985,12]]}}}],["http://localhost:3000/hello",{"_index":258,"t":{"18":{"position":[[969,27]]}}}],["http://localhost:3000/setname?name=jo",{"_index":305,"t":{"22":{"position":[[1138,39]]}}}],["https://github.com/freshgum",{"_index":1108,"t":{"146":{"position":[[78,28]]}}}],["https://www.contributor",{"_index":1088,"t":{"144":{"position":[[89,23],[326,23],[398,23]]}}}],["id",{"_index":364,"t":{"35":{"position":[[214,2],[266,2]]},"37":{"position":[[102,3],[389,2],[628,2],[900,4]]},"39":{"position":[[115,2]]},"41":{"position":[[65,2],[440,2]]},"43":{"position":[[132,2],[1157,2]]},"57":{"position":[[438,3]]},"69":{"position":[[942,2],[1180,3],[1498,2]]},"81":{"position":[[285,3],[1382,3]]},"91":{"position":[[1976,3],[2207,3]]},"121":{"position":[[334,3]]}}}],["idea",{"_index":840,"t":{"97":{"position":[[1802,5]]}}}],["ident",{"_index":964,"t":{"124":{"position":[[232,8],[372,8]]}}}],["identifi",{"_index":522,"t":{"51":{"position":[[1636,10]]},"53":{"position":[[166,11]]},"63":{"position":[[62,10]]},"77":{"position":[[310,10]]},"85":{"position":[[27,10],[171,10],[238,10]]},"89":{"position":[[105,10],[586,10]]},"93":{"position":[[440,11]]}}}],["imageri",{"_index":1001,"t":{"126":{"position":[[541,8]]}}}],["immedi",{"_index":595,"t":{"65":{"position":[[227,12]]},"67":{"position":[[29,11],[371,11]]}}}],["immut",{"_index":544,"t":{"53":{"position":[[544,9]]}}}],["impact",{"_index":1057,"t":{"134":{"position":[[46,6]]},"136":{"position":[[10,7]]},"138":{"position":[[10,7]]},"140":{"position":[[10,7]]},"142":{"position":[[10,7]]},"144":{"position":[[170,6]]}}}],["implement",{"_index":180,"t":{"14":{"position":[[42,14],[366,12]]},"16":{"position":[[110,9]]},"25":{"position":[[200,15],[287,14]]},"69":{"position":[[1240,10]]},"71":{"position":[[786,15]]},"73":{"position":[[858,11],[1014,14],[1169,14],[1416,14]]},"111":{"position":[[543,15]]},"121":{"position":[[583,14]]}}}],["impli",{"_index":1131,"t":{"146":{"position":[[751,8]]}}}],["import",{"_index":59,"t":{"4":{"position":[[205,6]]},"6":{"position":[[325,6]]},"8":{"position":[[137,6],[183,6]]},"16":{"position":[[297,6],[341,6]]},"18":{"position":[[363,6],[418,6]]},"20":{"position":[[556,6]]},"22":{"position":[[227,6]]},"29":{"position":[[102,6]]},"33":{"position":[[122,6]]},"39":{"position":[[32,6]]},"41":{"position":[[357,6]]},"43":{"position":[[812,6]]},"45":{"position":[[338,6]]},"49":{"position":[[469,6],[499,6]]},"51":{"position":[[972,6],[1468,9]]},"53":{"position":[[418,6]]},"55":{"position":[[282,6]]},"57":{"position":[[282,6]]},"67":{"position":[[107,6],[340,9]]},"69":{"position":[[74,8],[128,6],[332,7],[495,6],[921,6],[1054,6],[1098,6],[1462,8]]},"71":{"position":[[1008,6]]},"75":{"position":[[282,6]]},"77":{"position":[[107,6],[153,6],[568,6],[614,6]]},"81":{"position":[[194,9],[832,6],[1145,6],[1191,6]]},"89":{"position":[[672,6],[726,6]]},"91":{"position":[[954,6],[1235,6],[1289,6],[1656,6],[1734,6],[1780,6]]},"97":{"position":[[809,6],[853,6],[1249,6],[1293,6]]},"101":{"position":[[203,6],[705,6],[764,6],[835,6]]},"109":{"position":[[267,6],[437,6]]},"111":{"position":[[128,6],[490,6],[513,8],[681,6],[727,6]]},"113":{"position":[[265,6]]},"117":{"position":[[50,6]]},"119":{"position":[[70,6],[114,6]]},"121":{"position":[[185,6],[231,6],[275,6]]}}}],["improv",{"_index":311,"t":{"25":{"position":[[90,8]]}}}],["inacess",{"_index":567,"t":{"57":{"position":[[1004,12]]}}}],["inappropri",{"_index":1015,"t":{"126":{"position":[[864,13]]},"128":{"position":[[196,14]]},"136":{"position":[[25,13],[279,14]]},"140":{"position":[[82,13]]},"142":{"position":[[99,13]]}}}],["incid",{"_index":1056,"t":{"132":{"position":[[338,9]]},"138":{"position":[[47,8]]}}}],["includ",{"_index":985,"t":{"126":{"position":[[82,8],[498,8]]},"130":{"position":[[192,7]]},"138":{"position":[[184,9],[297,8]]},"140":{"position":[[62,9],[298,9]]},"142":{"position":[[79,9]]},"146":{"position":[[308,9],[612,8],[760,9]]}}}],["inclus",{"_index":981,"t":{"124":{"position":[[484,10]]}}}],["incomingmessag",{"_index":197,"t":{"16":{"position":[[364,16],[883,16]]},"22":{"position":[[424,16]]}}}],["incorpor",{"_index":429,"t":{"41":{"position":[[307,11]]}}}],["incorrect",{"_index":373,"t":{"37":{"position":[[176,11]]}}}],["individu",{"_index":313,"t":{"25":{"position":[[120,10]]},"51":{"position":[[140,10]]},"57":{"position":[[115,10]]},"81":{"position":[[508,10],[1646,10]]},"91":{"position":[[53,10],[750,10],[1084,10]]},"97":{"position":[[171,10]]},"105":{"position":[[513,10]]},"126":{"position":[[421,12]]},"130":{"position":[[83,10]]},"142":{"position":[[140,11],[204,12]]}}}],["infer",{"_index":925,"t":{"113":{"position":[[835,8]]}}}],["info",{"_index":918,"t":{"113":{"position":[[549,4]]}}}],["inform",{"_index":606,"t":{"65":{"position":[[622,11]]},"81":{"position":[[402,11]]},"126":{"position":[[729,12]]}}}],["inherit",{"_index":491,"t":{"51":{"position":[[57,12],[88,11]]},"83":{"position":[[216,11]]},"91":{"position":[[220,11]]}}}],["initialis",{"_index":88,"t":{"6":{"position":[[82,11]]},"18":{"position":[[246,14]]},"65":{"position":[[532,11]]},"69":{"position":[[203,11],[1811,14]]},"75":{"position":[[657,12]]}}}],["inject",{"_index":76,"t":{"4":{"position":[[568,9]]},"6":{"position":[[35,9]]},"25":{"position":[[54,9]]},"71":{"position":[[332,6]]},"73":{"position":[[52,10],[264,10],[363,9],[463,9]]},"85":{"position":[[112,9]]},"115":{"position":[[109,8]]}}}],["input",{"_index":262,"t":{"20":{"position":[[62,6]]}}}],["insid",{"_index":239,"t":{"18":{"position":[[266,6]]},"115":{"position":[[70,6]]}}}],["inspir",{"_index":1090,"t":{"144":{"position":[[193,8]]}}}],["instal",{"_index":33,"t":{"2":{"position":[[394,10],[489,7],[513,9]]},"14":{"position":[[448,10],[543,7],[567,9]]},"59":{"position":[[183,7],[219,7],[279,7]]}}}],["instanc",{"_index":130,"t":{"10":{"position":[[207,8]]},"25":{"position":[[264,9]]},"31":{"position":[[18,8]]},"33":{"position":[[18,8]]},"37":{"position":[[1267,9]]},"45":{"position":[[154,8],[992,9]]},"51":{"position":[[1367,8],[1507,9],[1698,8]]},"53":{"position":[[278,9]]},"63":{"position":[[151,9]]},"79":{"position":[[245,8]]},"81":{"position":[[50,9],[171,9],[1558,9]]},"85":{"position":[[207,8]]},"91":{"position":[[488,9]]},"97":{"position":[[243,8],[1651,9],[1868,9],[2039,9]]},"99":{"position":[[153,8]]},"103":{"position":[[59,8],[261,8],[473,8]]},"117":{"position":[[218,9]]},"132":{"position":[[0,9]]}}}],["instanti",{"_index":184,"t":{"14":{"position":[[277,13]]},"41":{"position":[[217,12]]},"47":{"position":[[77,11]]},"73":{"position":[[680,13]]},"99":{"position":[[305,12]]}}}],["instead",{"_index":400,"t":{"37":{"position":[[1396,8]]},"41":{"position":[[348,8]]},"69":{"position":[[1704,7]]},"77":{"position":[[443,8]]},"79":{"position":[[62,7],[204,7]]},"87":{"position":[[492,7]]},"113":{"position":[[518,8]]},"115":{"position":[[240,7]]}}}],["instruct",{"_index":22,"t":{"2":{"position":[[231,12]]},"75":{"position":[[609,12]]}}}],["insult",{"_index":1005,"t":{"126":{"position":[[605,9]]}}}],["interact",{"_index":977,"t":{"124":{"position":[[419,8]]},"138":{"position":[[146,11],[206,11],[315,12]]},"140":{"position":[[152,11],[260,11],[320,11]]},"142":{"position":[[270,11]]}}}],["interfac",{"_index":676,"t":{"73":{"position":[[1493,9]]}}}],["intern",{"_index":494,"t":{"51":{"position":[[192,8],[307,8]]},"85":{"position":[[149,8]]}}}],["interpret",{"_index":902,"t":{"111":{"position":[[42,9]]}}}],["introduc",{"_index":679,"t":{"75":{"position":[[100,11]]}}}],["introductori",{"_index":656,"t":{"73":{"position":[[231,12]]}}}],["invers",{"_index":660,"t":{"73":{"position":[[411,10]]}}}],["investig",{"_index":1050,"t":{"132":{"position":[[209,12]]}}}],["invis",{"_index":959,"t":{"124":{"position":[[171,9]]}}}],["involv",{"_index":1070,"t":{"138":{"position":[[174,9]]},"140":{"position":[[288,9]]}}}],["isn't",{"_index":209,"t":{"16":{"position":[[665,5]]},"37":{"position":[[507,5]]},"41":{"position":[[68,5]]},"49":{"position":[[298,5]]},"89":{"position":[[357,5],[1444,5]]},"103":{"position":[[150,5]]}}}],["isol",{"_index":315,"t":{"25":{"position":[[145,10]]}}}],["issu",{"_index":627,"t":{"69":{"position":[[1449,6]]},"128":{"position":[[363,7]]}}}],["it'",{"_index":42,"t":{"2":{"position":[[508,4]]},"14":{"position":[[562,4]]},"51":{"position":[[288,4]]},"57":{"position":[[595,4],[831,4]]},"69":{"position":[[64,4]]},"71":{"position":[[533,4],[587,4]]},"81":{"position":[[1511,4]]},"99":{"position":[[37,4]]},"105":{"position":[[264,4]]},"111":{"position":[[893,4]]},"113":{"position":[[554,4]]},"117":{"position":[[447,4]]}}}],["it'll",{"_index":122,"t":{"10":{"position":[[40,5]]}}}],["itself",{"_index":497,"t":{"51":{"position":[[475,7],[612,7]]},"71":{"position":[[909,7]]},"89":{"position":[[1558,6]]}}}],["jame",{"_index":658,"t":{"73":{"position":[[389,5]]}}}],["javascript",{"_index":891,"t":{"109":{"position":[[101,11],[967,10]]},"111":{"position":[[361,10]]}}}],["jest",{"_index":323,"t":{"25":{"position":[[536,5]]}}}],["joe",{"_index":711,"t":{"81":{"position":[[1273,3]]}}}],["js",{"_index":911,"t":{"111":{"position":[[976,3]]}}}],["jsservic",{"_index":892,"t":{"109":{"position":[[115,9],[276,9],[339,10],[508,10]]},"111":{"position":[[441,9],[480,9],[690,9],[946,9]]},"113":{"position":[[4,9],[274,9],[337,13],[507,10]]}}}],["jsservice('th",{"_index":929,"t":{"117":{"position":[[119,18]]}}}],["token this.handleRequest(request, response)); } protected handleRequest(request: IncomingMessage, response: ServerResponse) { switch (response.url) { case '/hello': response.writeHead(200); response.end('Hello!'); break; default: response.writeHead(404); response.end('Not Found'); break; } } } The WebServerService supports the creation of the server and management of requests. This lets it respond to HTTP requests from users. This is a good start, but we're not done yet...","s":"Creating our Web Server Service","u":"/docs/examples/nodejs-web-server/implementation","h":"#creating-our-web-server-service","p":13},{"i":18,"t":"To make our example run, we'll need something called a root service. This service will depend on our web server and start it. note While not explicitly required, the root service pattern is recommended for applications. It keeps your application initialisation code inside the context of a DI container, with as little as possible outside it. src/root.service.ts import { Service, Container } from '@freshgum/typedi'; import { WebServerService } from './webserver.service'; @Service([WebServerService]) export class RootService { constructor(private webServer: WebServerService) {} async bootstrap() { return this.webServer.startServer(); } } // If we're being run as \"$ ts-node root.service.ts\", start the server automatically. if (require.main === module) { const rootService = Container.get(RootService); rootService.bootstrap().then(() => console.log('Web server online!')); } Let's run our app! Run the following code: $ ts-node ./root.service.ts Now, navigate to http://localhost:3000/hello and examine your work :-)","s":"Creating our RootService","u":"/docs/examples/nodejs-web-server/implementation","h":"#creating-our-rootservice","p":13},{"i":20,"t":"As with any modern web application, we'll need a way to store inputs from users and then output them at a later date. To do this, we'll be using a database. note This section is skippable. We won't be setting up a database here. The example below makes use of a map to keep the example simple. We'll achieve this through a service which will read and write to an in-memory database. To make it easier to migrate to an out-of-process database like SQLite later on, we'll also make the APIs for reading and writing data asynchronous. src/database.service.ts import { Service } from '@freshgum/typedi'; @Service([ ]) export const DatabaseService { private _map = new Map(); async read (key: string) { this._map.get(key); } async write (key: string, value: string) { this._map.set(key, value); } }","s":"Adding a database","u":"/docs/examples/nodejs-web-server/implementation","h":"#adding-a-database","p":13},{"i":22,"t":"Now we have a database, we can update the web server to read and write values to it. Let's update our web-server service with two new routes: one for reading a value, and another for writing it. src/webserver.service.ts // ... import { DatabaseService } from './database.service'; @Service([DatabaseService]) class WebServerService { // ... constructor(private database: DatabaseService) {} protected handleRequest(request: IncomingMessage, response: ServerResponse) { const { searchParams: params } = new URL(request.url ?? ''); switch (response.url) { case '/hello': response.writeHead(200); this.database.get('name').then(name => { response.end(`Hello, ${name ?? 'unknown person'}!`); }); break; case '/setname': response.writeHead(200); this.database.set('name', params.name).then(() => { response.end(`Hello, ${params.name}!`); }); break; default: response.writeHead(404); response.end('Not Found'); break; } } // ... } Now, we've got a functioning web-server which can store the user's name in memory. Try running the updated version, like so: $ ts-node ./root.service.ts Now, when we tell the server our name with http://localhost:3000/setname?name=Joe, the /hello endpoint will address you by name! 🎉","s":"Updating our WebServerService","u":"/docs/examples/nodejs-web-server/implementation","h":"#updating-our-webserverservice","p":13},{"i":25,"t":"One primary advantage of using TypeDI, and Dependency Injection in general, is it greatly improves your ability to test individual components in isolation, by providing them with different values and implementations than would normally be present in your app. For instance, consider the implementation of the HTTP server in the previous example. In testing, we may not want it to actually create a HTTP server, though we would want it to ensure it creates a HTTP server successfully. note For the examples below, we'll be making use of Jest. Tests are written in an easy-to-follow format.","s":"Testing our App","u":"/docs/examples/nodejs-web-server/testing","h":"","p":24},{"i":27,"t":"Welcome to the TypeDI documentation! To get started, you'll need to ensure you have a working environment containing Node and NPM (or any other package manager). Then, you'll need to install TypeDI: NPM Yarn PNPM $ npm install @freshgum/typedi $ yarn add @freshgum/typedi $ pnpm install @freshgum/typedi You're done! Move on to the Hello World! example to learn how to use TypeDI.","s":"Getting Started","u":"/docs/getting-started","h":"","p":26},{"i":29,"t":"TypeDI maintains a global container registry, which is a shared registry of all containers it knows about. Aside from custom containers, all newly-created containers are added to the registry. tip By default, if a container with the same name already exists, it is returned. There are multiple ways to create a container, each of which will be demonstrated below.","s":"Creating Containers","u":"/docs/guide/containers/creating-containers","h":"","p":28},{"i":31,"t":"API Reference The static of method can be used to create both orphaned and child containers, like so: import { ContainerInstance, Container } from '@freshgum/typedi'; // Create an orphaned container: ContainerInstance.of('my-new-container', null); // Create a container as a child of the default container: ContainerInstance.of('my-second-new-container', Container); If the second parameter, parent, is not provided, then it defaults to the default container.","s":"ContainerInstance.of(id, parent?, options?)","u":"/docs/guide/containers/creating-containers","h":"#containerinstanceofid-parent-options","p":28},{"i":33,"t":"API Reference The instance method of can also be used to create containers, in XXX","s":"Container.of(id, options?)","u":"/docs/guide/containers/creating-containers","h":"#containerofid-options","p":28},{"i":35,"t":"API Reference The instance ofChild method can be used to create a container which is a child of the current. For example: import { Container } from '@freshgum/typedi'; // Create a child of the default container: const newContainer = Container.ofChild('my-new-container'); assert(newContainer.parent === Container); // You can also create a child of a child! const newNewContainer = newContainer.ofChild('my-really-new-container'); assert(newNewContainer.parent === newContainer);","s":"Container.ofChild(id, options?)","u":"/docs/guide/containers/creating-containers","h":"#containerofchildid-options","p":28},{"i":37,"t":"In each of the above methods, an options parameter of type CreateContainerOptions can optionally be provided. These options dictate how TypeDI should handle certain situations, such as when... a container with the ID already exists (a conflict) a container with the ID does not exist (free)","s":"Creation Options","u":"/docs/guide/containers/creating-containers","h":"#creation-options","p":28},{"i":39,"t":"In many situations, you'll want an operation to fail if it means it returns a container with the same ID, but with completely different characteristics. Consider the following (incorrect) example: // Create an orphaned container. ContainerInstance.of('my-container', null); // Create a child of the default container. Container.ofChild('my-container'); As the call to ofChild specifies an ID which already exists in the container registry, the existing (orphaned) container is returned. In most cases, this isn't what you want. To remedy this, we can append a list of options to our ofChild call to fail if a container with the ID already exists. // Create an orphaned container. ContainerInstance.of('my-container', null); // Create a child of the default container. Container.ofChild('my-container', { onConflict: 'throw', }); The above example will throw an error due to the conflicting container IDs. This is one of three conflict strategies you can choose to resolve a conflict. The others are as follows: 'returnExisting': Return the existing container. This is the default. 'throw': Throw an error upon conflict. 'null': Return null upon conflict.` A better solution would be to restrict the use of well-known string-based keys, replacing them with well-known instances of Symbol. Symbols, even with the same name, will never collide. Let's update our example above to make use of Symbols instead: export const MY_CONTAINER = Symbol('my-container'); export const MY_SECOND_CONTAINER = Symbol('my-container'); // Create an orphaned container. ContainerInstance.of(MY_CONTAINER, null); // Create a child of the default container. ContainerInstance.of(MY_SECOND_CONTAINER);","s":"Dealing with conflicts","u":"/docs/guide/containers/creating-containers","h":"#dealing-with-conflicts","p":28},{"i":41,"t":"Consider the following example: import { ContainerInstance, Token } from '@freshgum/typedi'; // Keep the container ID local, so other packages have to use // our function below to create the container. const VALUE_CONTAINER = Symbol('value'); export const START_TIME = new Token(); function getValueContainer() { const container = ContainerInstance.of(VALUE_CONTAINER, null, { onConflict: 'null', }); // If we've already created the container, the above call returns null. if (container) { container.setValue(START_TIME, performance.now()); } // If we've already set up the container, 'container' will be null. // However, we still want to return it here, so we re-get it without a conflict strategy. return container ?? ContainerInstance.of(VALUE_CONTAINER); } // ... function logEvents() { // Get the time when the application started. const startTime = getValueContainer().get(START_TIME); // ... }","s":"Real-life example of conflict strategies","u":"/docs/guide/containers/creating-containers","h":"#real-life-example-of-conflict-strategies","p":28},{"i":43,"t":"In some cases, you may not want a container to be created if the ID isn't in use. For argument's sake, let's say your application sets up a container with specific values. A good way to ensure the container is always instantiated correctly can be found below. Let's tweak our event-logging example above to incorporate the usage of free strategies instead. import { ContainerInstance, Token } from '@freshgum/typedi'; // Keep the container ID local, so other packages have to use // our function below to create the container. const VALUE_CONTAINER = Symbol('value'); export const START_TIME = new Token(); function getValueContainer() { // ... } // ... function logEvents() { // Get the value container. const valueContainer = ContainerInstance.of(VALUE_CONTAINER, null, { onFree: 'null', }); if (valueContainer === null) { // Oh no! We've forgotten to call `getValueContainer`. return; } // Get the time when the application started. const startTime = valueContainer.get(START_TIME); // ... }","s":"Dealing with free IDs","u":"/docs/guide/containers/creating-containers","h":"#dealing-with-free-ids","p":28},{"i":45,"t":"In some cases, your definition of a conflict may differ from TypeDI's default, which checks whether another container with the same ID already exists. In this case, the library helpfully provides a way to define what a conflict is. This is done through conflict definitions. Currently, there are two ways to define a conflict: 'rejectAll': This is the default. 'allowSameParent': Allow conflicts with containers with the same container to the one provided. note If you pass a conflict definition without an accompany strategy, by default, TypeDI will throw an error if a conflict arises. In the case of allowSameParent, if a conflict were to arise, TypeDI would check whether the parent of the conflicting container matches the one you expected. If not, the strategy is executed. Let's look at an example below: import { Container } from '@freshgum/typedi'; // Create a child container of the default container. Container.ofChild('my-new-container'); // Do the same thing again. Container.ofChild('my-new-container', { onConflict: 'throw', conflictDefinition: 'allowSameParent', }); In the above example, the second call succeeds, even though the specified ID already exists in the registry. Without the explicit conflict definition, the above call would throw.","s":"Defining a conflict","u":"/docs/guide/containers/creating-containers","h":"#defining-a-conflict","p":28},{"i":47,"t":"In some scenarios, you may wish to change how containers work. In this case, custom containers may be appropriate. In TypeDI, each container is always an instance of ContainerInstance. However, you can extend this class with custom functionality, and then register it as an ordinary container. In practice, this looks like the following: import { ContainerInstance, ContainerRegistry, ServiceIdentifier, ContainerIdentifier } from '@freshgum/typedi'; export class MyContainerInstance { public constructor(id: ContainerIdentifier, parent?: ContainerInstance) { super(id, parent); } // ... } const newContainer = new MyContainerInstance('my-new-container'); ContainerRegistry.registerContainer(newContainer); tip Your custom container class will need a public constructor as, currently, TypeDI's ContainerInstance has a protected constructor. Once your custom container has been registered, it functions as an ordinary container. Calls to methods such as ContainerInstance.of return the custom instance.","s":"Custom Containers","u":"/docs/guide/containers/custom-containers","h":"","p":46},{"i":49,"t":"Containers power the majority of TypeDI. They're used to store, retrieve and instantiate services on-the-fly. Crucially, a TypeDI-dependent application must have a container to function.","s":"Containers","u":"/docs/guide/containers/introduction","h":"","p":48},{"i":51,"t":"Thankfully, TypeDI provides one by default, which is aptly named the default container. By default, services are attached to this, and can be retrieved at any time (like we saw in our Hello World! example.) tip Throughout this guide, we've assumed services are bound to the default container. This isn't always true! TypeDI allows you to bind services to different containers. Read more about this in the Services section. To get the default container, we just need to import Container from TypeDI: import { Container } from '@freshgum/typedi';","s":"Default Container","u":"/docs/guide/containers/introduction","h":"#default-container","p":48},{"i":53,"t":"One of the most powerful features of TypeDI is container inheritance. To understand how inheritance works, you first have to understand how individual containers work. Each container holds an internal map of services and values. When a service is registered against a specific container, it's added to that internal registry. Then, when the service is requested, the container knows how to handle the request. In most circumstances, the service knows how to handle the value itself. However, in some cases, it may have to ask its parent. By design, containers can have parents. If a container can't find a value itself, it can defer the operation to its parent. This happens recursively until either the value is found somewhere in the tree, or an error is thrown once the tree has been exhausted. As a concrete example of this, let's see what happens when we register a service to the default container, and then request the service from a newly-created child container. import { Container, Service } from '@freshgum/typedi'; @Service([ ]) class MyService { } const childContainer = Container.ofChild('my-new-container'); childContainer.get(MyService); The child container didn't know how to resolve that value, so it looked it up in its parent, the defualt container, which did. The metadata for that service was then pulled from the parent, with the newly-created instance being stored in the child container and then returned to the caller. tip This highlights an important TypeDI design point: service instances are bound to the containers which created them. So, in the above example, even though the child container resolved the identifier via its parent (the default container), the actual instance of MyService was then stored in the child container. This is good! It gives you the flexibility to use services from other containers while also supplying them with different values. If you're a visual learner, here's a flow-chart of the value resolution process. Over the course of our application, we may want to make separate containers for different parts of the application. This will let us compartmentalise values and services under different containers, with each container having a different responsibility. To do this, we have multiple APIs which we will explore below.","s":"Container Inheritance","u":"/docs/guide/containers/introduction","h":"#container-inheritance","p":48},{"i":55,"t":"As we explored above, all services are bound to the default container by default. However, one potentially unwanted behaviour in this API is that, if you request any identifiers via Container.get (or use them as dependencies in a service and then execute that service), service instances would then be cached in the default container. To remedy this, we can create a child container of the default container, like so: import { Container } from '@freshgum/typedi'; const myNewContainer = Container.ofChild('my-new-container'); This also lets us immutably extend the default container by adding new services to our child container via Container.set.","s":"Creating child containers","u":"/docs/guide/containers/introduction","h":"#creating-child-containers","p":48},{"i":57,"t":"Sometimes, you might not want to create a container with a parent. In this case, only the values explicitly set in that container (and via @Service decorator's container option) will be available in the container. Currently, the API provides the following function to achieve this: import { ContainerInstance } from '@freshgum/typedi'; ContainerInstance.of('my-new-container-without-a-parent', null);","s":"Creating containers with no parent","u":"/docs/guide/containers/introduction","h":"#creating-containers-with-no-parent","p":48},{"i":59,"t":"In many cases, you'll want to get rid of a container once you're finished with it. This might be when you're using individual containers for worker tasks, for example. In this case, you can make use of the container's dispose method, which disposes of the container asynchronously. import { Container } from '@freshgum/typedi'; // Create a new container. const myNewContainer = Container.ofChild('my-new-container'); myNewContainer.set({ id: 'my-value', value: 'hello-world', dependencies: [ ] }); myNewContainer.dispose().then(() => console.log('disposed!')); Once you've disposed a container, it's essentially useless. You won't be able to resolve values from it (even from its parent), or perform any other actions. If you try to get a value from a container after you've disposed it, TypeDI will throw a runtime error. caution It's typically best not to dispose of the default container. Unless you've bound all your services to a different container, without the default container they're virtually inacessible.","s":"Disposing a container","u":"/docs/guide/containers/introduction","h":"#disposing-a-container","p":48},{"i":61,"t":"A set of bindings have been created to simplify usage of TypeDI within React applications. danger The React hooks are currently in beta, and the API surface could change at any time. They may also contain bugs. If you wish to use them in a production application, please consider locking the package version used to prevent future updates from making unexpected changes. These bindings consist of the following hooks: useService useServiceOrNull useContainer useTreeVisitor","s":"React Bindings","u":"/docs/guide/react/introduction","h":"","p":60},{"i":63,"t":"This hook is rather simple: it gets a service with a specific identifier from within a specified container which, by default, is the default container instance.","s":"useService","u":"/docs/guide/react/introduction","h":"#useservice","p":60},{"i":65,"t":"Ordinarily, services aren't created until either: They're explicitly called via Container.get, or... A service which is called via Container.get uses the service as a dependency. Therefore, if you need a way to start a service immediately, TypeDI provides a concept called Eager Services. caution Eager Services create fragile application code, and should only be used in a few limited scenarios. If you think you need this feature, consider its application carefully and use it very frugally. In future, eager services will not be initialised by default without an explicit call to enableEagerLoading (see #17). For more information on why eager services are discouraged, see the section below on its dangers.","s":"Eager Services","u":"/docs/guide/services/eager-services","h":"","p":64},{"i":67,"t":"To create a service which is immediately run upon declaration, we can do the following: src/log.service.ts import { Service } from '@freshgum/typedi'; @Service({ eager: true }, []) export class LogService { constructor() { this.log('LogService is ready!'); } public log(message: string) { console.log(message); } } Then, once LogService is imported, its constructor will immediately run and log the message to the console.","s":"Example","u":"/docs/guide/services/eager-services","h":"#example","p":64},{"i":69,"t":"If you declare an eager service, the service won't be run until it's been imported by another file. Therefore, if you forget to import your eager DatabaseService, the connection to the database won't be initialised early on in the application flow. Another pain-point of eager services is testability: by making side-effects run on import, we create a dangerous precedent for the API, and overall make it much harder to test. Consider the following (simplified) example: src/database.service.ts import { Service } from '@freshgum/typedi'; @Service({ eager: true }, []) export class DatabaseService { constructor() { this.connect(); } private connection: Connection; private async connect() { // Connect to the database here... } public async getValue(name: string): string { return this.connection.getValue(name); } } If we're looking to test our application and replace DatabaseService with something else, how would we import it to get the ID to replace? Normally, to stub the database connection, you would do something like this: spec/app.service.ts import { Service } from '@freshgum/typedi'; import { DatabaseService } from '../src/database.service.ts'; // Oops! @Service({ id: DatabaseService }, []) export class FakeDatabaseService implements DatabaseService { private map = new Map(); private async connect() {} public async getValue(name: string): string { return this.map.get(name); } } // Test our app... Do you see the issue? We've imported DatabaseService to get its ID (to replace with a stub), but by doing that, we've created a connection to the database! This means that, currently, we can't test the application without also creating a wasted database connection. tip Instead of using eager services, consider creating a root service which runs side effects such as database initialisation before the rest of the environment is loaded. This does the same thing without the above disadvantages.","s":"The Dangers of eager: true","u":"/docs/guide/services/eager-services","h":"#the-dangers-of-eager-true","p":64},{"i":71,"t":"Sometimes, you'll encounter a situation within your app that requires breaking out of the more expressive decorator syntax. This might be to check whether certain dependencies exist, or to perform any computations on the application's container. To do this, TypeDI helpfully provides the HostContainer function, which allows you to inject a service's executing container into the service. caution HostContainer is considered an \"escape hatch\", and it should be avoided where possible. This is called the Service Locator pattern, and it's only useful in certain scenarios. In many cases, it's typically considered an anti-pattern. (archive) If misused, it could mean that the dependencies of your serivce become opaque, where the only way to see what the service requires is to view its implementation. The HostContainer function returns a Token which, when passed to a DI container, resolves to the container itself. This means that the returned Token from HostContainer can also be passed to Container.get. import { ContainerInstance, HostContainer, Service } from '@freshgum/typedi'; @Service([ HostContainer(), ]) export class MyService { constructor(private container: ContainerInstance) { if (container.has(MyService)) { console.log('Hello world!'); } } }","s":"HostContainer","u":"/docs/guide/services/host-container","h":"","p":70},{"i":73,"t":"Services are one of the core concepts of Dependency Injection. Each service has a certain responsibility and, when each service is brought together, they power the functionality of your project. note This page doesn't aim to be an introductory guide to Dependency Injection. If you're new to the concept, here are some recommended learning resources: \"Dependency Injection Demystified\" by James Shore (archive) \"Inversion of Control Containers and the Dependency Injection pattern\" by Martin Fowler (archive) In your typical NodeJS app, you may have the following services: DatabaseService, for handling connections to the app's database. WebServerService, which would handle the instantiation and management of your web server. DiagnosticsService, allowing for sending diagnostics to a central service. tip To see what the above server would look like when implemented in TypeDI, check out the NodeJS Web Server example. Each service manages one part of the application. Additionally, each service abstracts away implementation logic. For example, if your application makes use of PostgreSQL now, it is most likely possible that you can change the underlying database implementation within DatabaseService to support a different database, such as MySQL. TypeDI lets you express services through an expressive decorator-based syntax, which allows you to: Declare any neighbouring services a service depends on Store implementation logic in an easily-readable ES6 class format Provide a public interface for consumers of your service Let's put that into practice, while also exploring the various ways you can tweak the declaration of services to meet various use-cases you may require in your app.","s":"Services","u":"/docs/guide/services/introduction","h":"","p":72},{"i":75,"t":"By default, services are attached to the default container. However, we can tweak this behaviour by introducing an options object to the @Service decorator. Let's explore how our Hello World! example could be changed to bind the service to a different container. src/log.service.ts import { Service, Container } from '@freshgum/typedi'; export const container = Container.ofChild('my-new-container'); @Service({ container }, []) export class LogService { public log(message: string) { console.log(message); } } What we did there was add an options object to our service declaration. This gives TypeDI certain instructions on how & why the service should be initialised. In our case, we only changed the container.","s":"Attaching to Containers","u":"/docs/guide/services/introduction","h":"#attaching-to-containers","p":72},{"i":77,"t":"As we've now moved the LogService to a different container, the following will no longer work: src/main.ts import { Container } from '@freshgum/typedi'; import { LogService } from './log.service'; const logger = Container.get(LogService); // ^^^^^^^^^^^^^ // ServiceNotFoundError: // Service with \"LogService\" identifier was not found in the container. This is because containers don't search upwards. This is covered in the Containers guide. Instead, what we have to do is use our newly-created container to find the service. Let's update our code above. src/main.ts import { Container } from '@freshgum/typedi'; import { LogService, container } from './log.service'; const logger = container.get(LogService); Perfect!","s":"Finding our Service","u":"/docs/guide/services/introduction","h":"#finding-our-service","p":72},{"i":79,"t":"In some cases, you'll want to create a service via a function instead of have TypeDI create it for you. For these cases, the Service decorator allows you provide a factory function, which TypeDI will use instead of the new operator to create an instance of your service. XXX","s":"Creating Instances via Factories","u":"/docs/guide/services/introduction","h":"#creating-instances-via-factories","p":72},{"i":81,"t":"Many times, you'll want a service to rely on a dependency, but there's always the possibility of it not existing (and you wouldn't want your service to fail if it didn't). Or, you want to take advantage of container inheritance and resolve a symbol in the context of the current parent's container, or restrict the resolution process to return null if the current container doesn't have it. (There are more features too.) This is where resolution constraints shine. They allow you to specify how you'd like a certain dependency to be resolved, by a set-list of pre-defined strategies. tip This feature is very similar to Angular's DI decorators. In fact, resolution constraints were originally designed to mimic these features in TypeDI. Therefore, if you're familiar with Angular, you most likely already understand resolution constraints.","s":"Resolution Constraints","u":"/docs/guide/services/resolution-constraints","h":"","p":80},{"i":83,"t":"When a service requests an identifier (which can be another service or a token) as a dependency, the Dependency Injection framework has to check its internal map for that identifier and, if found, return an instance of that value. If the identifier cannot be found, it checks its parent, which checks its parent (recursively) until the chain is exhausted. An error is then thrown. If you're a visual learner, here's a flow-chart of the process. While this behaviour makes sense for most configurations, there are most certainly times when you'll want to modify it a little. In the below sections, we'll explore how to do that in TypeDI.","s":"Introduction","u":"/docs/guide/services/resolution-constraints","h":"#introduction","p":80},{"i":85,"t":"In TypeDI, the concept of constraining certain resolutions is done through specific functions which, when called, return a bit. Multiple functions can be conjoined with the Bitwise OR operator to form a bitmask, like so: Optional() | Many() | Self() note You don't have to understand how bitmasks work to make use of resolution constraints. The functions above construct the bitmask for you, which can then be safely passed to TypeDI. danger You should always make use of the above functions instead of constructing a bitmask yourself, as the signature of the mask could change at any time.","s":"Resolution Constraint Flags","u":"/docs/guide/services/resolution-constraints","h":"#resolution-constraint-flags","p":80},{"i":87,"t":"If your service wants a dependency, but doesn't need it, you can make use of the Optional() flag. If the identifier cannot be found, the value will be substituted with null. (This would be useful if you were, for example, building a library where some parts of the configuration might not have been set-up by the end-user.) tip Adding an optinal constraint isn't always necessary: only add it if you're not 100% sure that the service you're using as a dependency will not be available at runtime. Let's explore how we could make use of Optional in an example service, which requests an identifier from the container that may not exist. src/configuration-reader.service.ts import { Service, Optional } from '@freshgum/typedi'; import { APP_TOKEN } from './configuration'; // Where APP_TOKEN is a Token. @Service([ [APP_TOKEN, Optional()] ]) export class ConfigurationReaderService { constructor (private appToken: string | null) { } validateConfiguration () { if (this.appToken === null) { console.warn('An app token was not provided!'); } } } caution If you're using an optional service, make sure you also allow the type to be null (like above, where we used | null) Otherwise in usage, you may forget that the value may not exist, causing runtime errors. In the above service, we requested APP_TOKEN as a dependency. In the case of our library, this would be set by the user before they start the root service. However, if that value isn't set, we log a warning to the console. Normally, if APP_TOKEN wasn't present in the container, the container itself would throw an error.","s":"Making dependencies optional with Optional()","u":"/docs/guide/services/resolution-constraints","h":"#making-dependencies-optional-with-optional","p":80},{"i":89,"t":"Much like in Angular, the SkipSelf can be applied to individual dependencies to tell the container to resolve them from its parent container. This can be useful in the case of an application which makes use of container inheritance to provide a different set of tokens to services under it. caution Use of SkipSelf makes your services dependent on a certain container structure. If you were to change that structure, resolutions may fail, leading to runtime errors. Use it carefully. For instance, consider the following example of an blog. The application creates a Page service for each page of the blog. Each Page service has access to the DOM_NODE token, which: in the child container the Page is run in, is set to the DOM element containing the individual page. in the parent container, is set to the body element. Each page contains a dark mode button which, when clicked, toggles the \"dark-mode\" class on the element. src/dom-node.token.ts import { Token } from '@freshgum/typedi'; export const DOM_NODE = new Token(`\\ The current DOM node. In services for individual pages, this will be set to the node of the page element. In the root, this will be set to the body of the document. `); src/page.service.ts import { Service, SkipSelf } from '@freshgum/typedi'; import { STORAGE } from './storage.token'; @Service([ DOM_NODE, [DOM_NODE, SkipSelf()] ]) export class PageService { constructor (private pageNode: HTMLElement, private rootNode: HTMLElement) { } bootstrap () { this.pageNode.getElementById('dark-mode-button').addEventListener('click', () => { this.rootNode.classList.toggle('dark-mode'); }); } } src/root.service.ts import { ContainerInstance, Service, HostContainer } from '@freshgum/typedi'; import { PageService } from './page.service'; import { route } from 'my-router'; // Placeholder for your router :-) @Service([ HostContainer() ]) export class RootService { constructor (private container: ContainerInstance) { container.set({ id: DOM_NODE, value: document.body, dependencies: [ ] }); } async renderPage (pageUrl: string) { const childContainer = this.container.ofChild(Symbol('page')); const { renderedElement } = await route(pageUrl); childDontainer.set({ id: DOM_NODE, value: renderedElement, dependencies: [ ] }); childContainer.get(PageService).bootstrap(); } } const root = Container.get(RootService); root.renderPage('/introduction'); (While this is a rather contrived example, it serves as a guide for how to use the constraint.)","s":"Resolve via the container's parent with SkipSelf()","u":"/docs/guide/services/resolution-constraints","h":"#resolve-via-the-containers-parent-with-skipself","p":80},{"i":91,"t":"The Self constraint allows you to tell the container not to traverse up the container parent tree until it finds a value. tip This constraint is most useful when combined with Optional. That way, if the current container doesn't have the value, a runtime error would not occur. If you're a visual learner, here's a flow-chart of the resolution process with Self. If we were to modify our flow-chart from above, the resolution for resolving identifiers marked with Self would look like this:","s":"Resolve non-recursively with Self()","u":"/docs/guide/services/resolution-constraints","h":"#resolve-non-recursively-with-self","p":80},{"i":93,"t":"The Many constraint is functionally equivalent to Container.getMany. It can also be combined with Optional, SkipSelf (or Self) to further constrain resolution. To provide an example of this, consider the following: XXX","s":"Acquire multiple services with Many()","u":"/docs/guide/services/resolution-constraints","h":"#acquire-multiple-services-with-many","p":80},{"i":95,"t":"Normally, when you create a service, it's cached and any further calls to Container.get (or when the service is used as a dependency) result in the same instance of the service. In some cases, that behaviour may actually be undesirable. For this use-case, TypeDI provides transient services, which are re-instantiated every time they're requested. tip If your service performs complicated calculations, or emits side-effects (e.g. database connections), you may find that the performance of your application quickly deteriorates. To fix this, you can \"hoist\" the logic outside of your transient service. Read more about this in the Performance section.","s":"Transient Services","u":"/docs/guide/services/transient-services","h":"","p":94},{"i":97,"t":"To demonstrate how transient services, let's create a simple example: a performance timing API. The timing API should correspond with one set of marks alongside a final measurement. src/timer.service.ts import { Service } from '@freshgum/typedi'; @Service({ transient: true }, [ ]) export class TimerService { private name: string | null = null; start (name: string) { this.name = name; performance.mark(`${name}-start`); } end () { const endName = `${this.name}-end`; performance.mark(endName); performance.measure(this.name, `${this.name}-start`, endName); } } Now, we'll make use of this timing API in our page service, a fictional service which is responsible for rendering pages. src/page.service.ts import { Service, HostContainer } from '@freshgum/typedi'; import { TransientRef } from '@freshgum/typedi/contrib/transient-ref'; import { TimerService } from './timer.service'; @Service([ TransientRef(TimerService) ]) export class PageService { constructor (private timerServiceRef: TransientRef) { } async renderPage () { const timer = this.timerServiceRef.create(); timer.start('page-render'); // Perform page rendering logic... timer.end(); } } Now, when a page is rendered, we'll have new performance entries to upload to a central diagnostics server.","s":"Demo","u":"/docs/guide/services/transient-services","h":"#demo","p":94},{"i":99,"t":"When you use a transient service as a dependency, the same instance of the service will be used over the lifetime over the consuming service. If this isn't the desired behaviour, you would be better served by the HostContainer() API, which allows you to get an instance of the container the service is running under. Then, you can replace references to the transient service with calls to Container.get. In the example above, we did just that. This allowed us to get a new instance of TimerService for each page that was rendered in the app.","s":"Transient Services as Dependencies","u":"/docs/guide/services/transient-services","h":"#transient-services-as-dependencies","p":94},{"i":101,"t":"If your transient service relies on a great number of other transient services, computes expensive computations, or creates side-effects which may affect the application, you may find that transient services affect your application's performance. For this reason, it's typically recommended to use static services or singletons if your workflow doesn't explicitly require services to be transient. If you would still prefer transient scenarios in this case, consider hoisting calculations and side-effects out of individual transient services, replacing them with references to a static / singleton service.","s":"Performance","u":"/docs/guide/services/transient-services","h":"#performance","p":94},{"i":103,"t":"In v0.5.0, a new function was added to make the management of transient services easier. This should replace any prior usages of HostContainer.","s":"TransientRef","u":"/docs/guide/services/transient-services","h":"#transientref","p":94},{"i":105,"t":"TypeDI is primarily developed for use in TypeScript. However, to make it easier to make use of it in JavaScript, a JSService function is provided. As an example of how to use it, let's tweak the logging service we made in the Hello World! example: src/log.service.js import { JSService } from '@freshgum/typedi'; export const LogService = JSService( [], class LogService { log(message) { console.log(message); } } ); src/root.service.js import { Service } from '@freshgum/typedi'; export const RootService = JSService( [LogService], class RootService { public constructor(private logger) {} run() { this.logger.log('Hello World!'); } } ); caution As with Service, don't forget to place any dependencies your service requires in the array. Otherwise, TypeDI won't know your service requires them, and won't pass them in as arguments. As you can see, the API is quite similar to its TypeScript-friendly equivalent. With our changes, the example above will run in plain JavaScript with no problems. But we're not done yet.","s":"Usage in JavaScript","u":"/docs/guide/services/usage-in-javascript","h":"","p":104},{"i":107,"t":"In the examples above, TypeScript doesn't interpret each service as a class. That means the following will fail: src/example.ts import { LogService } from './log.service'; const logService: LogService = new LogService(); // ^^^^^^^^^^ // 'LogService' refers to a value, but is being used as a type here. Did you mean 'typeof MyService'? If you're type-checking JavaScript with TypeScript, that can quickly become a problem. That's where the JSService type comes in. Cleverly, the JSService import is actually two imports: one for the function implementation, and another for a type. The type allows you to wrap the service in the type to elide type errors, like so: src/example.ts import { JSService } from '@freshgum/typedi'; import { LogService } from './log.service'; const logService: JSService = new LogService(); note Unfortunately, due to a limitation in TypeScript, it's not currently possible to export the equivalent JSService-wrapped type from a .js file. See microsoft/TypeScript#48104.","s":"JSService type","u":"/docs/guide/services/usage-in-javascript","h":"#jsservice-type","p":104},{"i":109,"t":"The JSService function also supports functional classes as opposed to ES6 ones. This lets us take advantage of TypeDI in ES5 environments without any transpilation steps. As an example, let's change the LogService we made above to the following: src/log.service.js import { JSService } from '@freshgum/typedi'; export const LogService = JSService([], function LogService() {}); LogService.prototype.log = function (message) { console.log(message); }; We've now moved our methods outside of the main call to JSService. Instead, they reside below it. info It's generally recommended to use ES6 classes wherever possible, as they provide a better experience in editors such Visual Studio Code. The example above might need additional typing in adjacent .d.ts files. As of currently, the methods in the above service are not automatically inferred by TypeScript. Therefore, when used, they are of type any.","s":"Function classes","u":"/docs/guide/services/usage-in-javascript","h":"#function-classes","p":104},{"i":111,"t":"Sometimes, you'll want a service to only be created once. This might be when it has side-effects, such as creating a web server. TypeDI supports this use-case by allowing individual services to be marked as singletons. When they are, only one instance of them will ever be created over the lifetime of the application. tip Singletons are attached to the globally-available default container. This means that, regardless of the container which resolves them, the same value will always be returned. Singletons are created very similarly to ordinary services, with one extra configuration parameter that must be declared. As an example, let's create services for an application that hosts a web server. We'd only want that web server to be created once, so we'd mark it as a singleton. src/webserver.service.ts import { Service } from '@freshgum/typedi'; import http from 'http'; // Node's HTTP module @Service( { singleton: true, }, [] ) export class WebServerService { private server: http.Server; startServer() { this.server = http.createServer((request, response) => { response.write('Hello world!'); response.end(); }); this.server.listen(3000); } } Once we've done that, we can then start the web server in our root service. src/root.service.ts import { Service } from '@freshgum/typedi'; import { WebServerService } from './webserver.service'; @Service([WebServerService]) export class RootService { constructor(private webServer: WebServerService) {} bootstrap() { this.webServer.startServer(); } } Now, any services which use the web-server as a dependency, regardless of if they are child containers, will always refer to that same web server instance. This prevents multiple web servers from being started at once. tip Utilising singletons for run-once operations is broadly considered a good idea. In the case of our demo application, if multiple web server instances were to start, you would experience runtime errors as only one server can be hosted on a port at a time. On the contrary, TypeDI also supports creating multiple instances of a service.","s":"Singletons","u":"/docs/guide/services/singletons","h":"","p":110},{"i":113,"t":"In TypeDI, tokens can be used to create a reference to a static value inside the container. They can then be injected into services as regular dependencies. As an example, let's update our Hello World! example to print the value of a token instead of a hard-coded string.","s":"Tokens","u":"/docs/guide/tokens/introduction","h":"","p":112},{"i":115,"t":"First, we'll create a file which holds the token. import { Token } from '@freshgum/typedi'; export const MESSAGE = new Token('The message to print to the console.'); In TypeDI, tokens are created by making new instances of the Token class. It also accepts a type parameter, which sets the type of the value the token points to. Finally, a message is also accepted, which is used for debugging purposes within TypeDI. tip As with services, it's good practice to name your files according to what they contain. As this file centres around exporting a token, we add a \".token.ts\" suffix to the file name.","s":"Creating our Token","u":"/docs/guide/tokens/introduction","h":"#creating-our-token","p":112},{"i":117,"t":"Let's now update our logging service to print the value of the token. import { Service } from '@freshgum/typedi'; import { MESSAGE } from './message.token'; @Service([MESSAGE]) export class LogService { constructor(private message: string) {} public log() { console.log(this.message); } } What we've done is update our LogService to consume the newly-created token as a dependency. Before we've created our container, TypeDI doesn't know what the value of the token is.","s":"Consuming our Token","u":"/docs/guide/tokens/introduction","h":"#consuming-our-token","p":112},{"i":119,"t":"We'll now need to tell TypeDI what the value of MESSAGE should be before we create our LogService. note For brevity, the RootService service in the example is skipped here. src/main.ts import { Container } from '@freshgum/typedi'; import { LogService } from './log.service'; import { MESSAGE } from './message.token'; Container.set({ id: MESSAGE, value: 'Hello World!', dependencies: [] }); Container.get(LogService).log(); If we now run our code, we'll see the following: $ ts-node ./src/main.ts Hello World! Did you know... In TypeDI, tokens aren't treated specially. In fact, the implementation of Token is quite literally: export class Token { constructor(public name?: string) {} }","s":"Setting the value of a Token","u":"/docs/guide/tokens/introduction","h":"#setting-the-value-of-a-token","p":112},{"i":122,"t":"The MIT License Copyright (c) 2015-2021 TypeStack Copyright (c) 2023 freshgum (https://github.com/freshgum-bubbles) 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.","s":"License","u":"/docs/meta/license","h":"","p":121},{"i":125,"t":"In some scenarios, you may want to store multiple instances of a service in your container. Using get wouldn't accomplish this, as subsequent calls would provide the same instance. However, one important feature of TypeDI is its ability to allow you to store multiple values under one ID. Let's explore this below with a quick example. Let's consider the example of an application which needs to store information about multiple users. Some users have different roles, which we'll also need to represent via individual services. src/user.class.ts export class UserService { public readonly role = 'user'; constructor(public name: string) {} } Now, let's create a ManagerService to represent managers. Managers should have the ability to perform administrative actions, so we'll add a deleteComment method. src/manager-user.class.ts import { User } from './user.class'; export class Manager extends User { public readonly role = 'manager'; constructor(public name: string) { super(name); } deleteComment(commentId: string) { // ... } } To store each user, we'd also want a Token that we can use to reference them. Let's do this below. src/app.ts import { Container } from '@freshgum/typedi'; import { User } from './user.class'; export const USER = new Token(); const joe = new User('Joe'); const rick = new ManagerUser('Rick'); function addUser(value: User) { Container.set({ id: USER, multiple: true, value, dependencies: [] }); } addUser(joe); addUser(rick); note The advantage of this approach is that it's much easier to keep track of each service instance, as they're all stored in one container. You'll notice that while we can store individual users, we can't currently access them. Let's fix that. src/app.ts // ... function getUsers() { return Container.getMany(USER); } console.log(getUsers()); // -> [class User, class ManagerUser] There we go! There's a basic example of how to use multiple services in TypeDI.","s":"Multiple Services","u":"/docs/guide/services/multiple-services","h":"","p":124},{"i":128,"t":"We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.","s":"Our Pledge","u":"/docs/meta/code-of-conduct","h":"#our-pledge","p":126},{"i":130,"t":"Examples of behavior that contributes to a positive environment for our community include: Demonstrating empathy and kindness toward other people Being respectful of differing opinions, viewpoints, and experiences Giving and gracefully accepting constructive feedback Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience Focusing on what is best not just for us as individuals, but for the overall community Examples of unacceptable behavior include: The use of sexualized language or imagery, and sexual attention or advances of any kind Trolling, insulting or derogatory comments, and personal or political attacks Public or private harassment Publishing others' private information, such as a physical or email address, without their explicit permission Other conduct which could reasonably be considered inappropriate in a professional setting","s":"Our Standards","u":"/docs/meta/code-of-conduct","h":"#our-standards","p":126},{"i":132,"t":"Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.","s":"Enforcement Responsibilities","u":"/docs/meta/code-of-conduct","h":"#enforcement-responsibilities","p":126},{"i":134,"t":"This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.","s":"Scope","u":"/docs/meta/code-of-conduct","h":"#scope","p":126},{"i":136,"t":"Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at freshgum.bubbles@protonmail.com. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the reporter of any incident.","s":"Enforcement","u":"/docs/meta/code-of-conduct","h":"#enforcement","p":126},{"i":138,"t":"Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:","s":"Enforcement Guidelines","u":"/docs/meta/code-of-conduct","h":"#enforcement-guidelines","p":126},{"i":140,"t":"Community Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. Consequence: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.","s":"1. Correction","u":"/docs/meta/code-of-conduct","h":"#1-correction","p":126},{"i":142,"t":"Community Impact: A violation through a single incident or series of actions. Consequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.","s":"2. Warning","u":"/docs/meta/code-of-conduct","h":"#2-warning","p":126},{"i":144,"t":"Community Impact: A serious violation of community standards, including sustained inappropriate behavior. Consequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.","s":"3. Temporary Ban","u":"/docs/meta/code-of-conduct","h":"#3-temporary-ban","p":126},{"i":146,"t":"Community Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. Consequence: A permanent ban from any sort of public interaction within the community.","s":"4. Permanent Ban","u":"/docs/meta/code-of-conduct","h":"#4-permanent-ban","p":126},{"i":148,"t":"This Code of Conduct is adapted from the Contributor Covenant, version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. Community Impact Guidelines were inspired by Mozilla's code of conduct enforcement ladder. For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.","s":"Attribution","u":"/docs/meta/code-of-conduct","h":"#attribution","p":126}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,4.848,1,1.408,2,3.24,3,1.653,4,2.294,5,1.971,6,1.882,7,4.144,8,2.972,9,2.758,10,1.119,11,2.294,12,1.882,13,3.24,14,4.144,15,2.655,16,2.535,17,2.226,18,1.825,19,4.364,20,3.599,21,1.355,22,3.599,23,3.599,24,1.523,25,2.58,26,3.24,27,1.653,28,2.626,29,0.831,30,1.8,31,3.929,32,3.493,33,4.935,34,2.758,35,1.724,36,1.971,37,3.24,38,3.24,39,3.599,40,3.24,41,3.599,42,1.882,43,2.972,44,3.599,45,3.599,46,3.24]],["t/4",[1,1.845,4,3.421,10,1.088,12,1.807,16,1.807,17,1.587,47,3.978,48,1.007,49,3.978,50,2.202,51,0.655,52,3.613,53,3.62,54,2.647,55,0.603,56,1.102,57,3.11,58,3.11,59,0.767,60,1.088,61,0.767,62,1.118,63,1.037,64,2.71,65,1.587,66,2.853,67,1.728,68,2.647,69,2.202,70,1.892,71,2.647,72,1.937,73,1.807,74,3.455,75,2.853,76,2.33,77,3.11,78,2.647,79,3.455,80,3.455,81,3.455,82,3.978,83,3.11,84,1.3]],["t/6",[1,1.809,4,2.14,6,1.757,10,0.775,12,2.419,13,3.024,25,2.407,28,2.215,48,0.718,50,2.14,53,2.265,54,2.574,56,1.059,57,3.024,59,0.746,60,1.105,61,0.746,62,1.087,63,1.009,64,3.04,65,1.542,69,2.947,70,1.84,72,1.777,73,1.757,76,2.265,85,3.544,86,3.867,87,3.315,88,2.574,89,2.773,90,3.359,91,1.542,92,3.024,93,2.773,94,3.867,95,3.567,96,2.265,97,3.024,98,3.359,99,1.93,100,3.867,101,2.265,102,2.407,103,3.867,104,2.574,105,3.024,106,3.867,107,1.68,108,2.773]],["t/8",[12,2.326,15,2.436,28,2.131,46,4.004,48,0.95,50,2.835,51,0.843,59,1.236,60,1.143,61,0.988,73,2.326,91,2.043,95,4.093,109,4.004,110,4.448,111,5.121,112,4.448,113,5.121,114,3.673,115,5.121,116,1.551,117,4.004,118,5.121]],["t/10",[5,2.366,6,2.26,10,1.261,11,3.481,31,3.915,32,3.481,48,0.923,60,0.754,63,1.297,70,2.366,72,1.451,84,1.626,114,3.568,119,2.26,120,2.914,121,4.974,122,4.974,123,3.311,124,4.974,125,4.32,126,2.914,127,4.974,128,4.974,129,4.974,130,1.758,131,3.097,132,4.974,133,4.32,134,3.568,135,2.914]],["t/12",[3,1.525,27,1.525,29,0.767,48,0.981,56,0.88,60,1.175,63,0.998,73,1.737,136,3.095,137,3.824,138,3.824,139,3.428,140,3.824,141,2.545,142,2.117,143,2.545,144,3.824,145,2.99,146,2.99,147,2.117,148,2.198,149,2.743,150,3.824,151,5.284,152,1.661,153,2.638,154,3.824,155,3.824,156,2.381,157,3.824,158,3.322,159,2.545,160,2.117,161,1.727,162,4.589,163,3.322,164,2.743,165,2.99,166,2.24,167,2.24,168,3.095,169,1.299,170,2.24,171,2.117,172,5.284,173,3.824,174,2.743,175,3.322,176,3.824,177,3.322,178,3.824]],["t/14",[10,0.831,16,1.882,17,1.653,21,1.355,27,1.653,28,2.626,29,1.119,30,1.8,31,3.929,32,3.493,33,4.935,34,3.715,35,1.724,36,1.971,37,3.24,38,3.24,39,3.599,40,3.24,41,3.599,42,1.882,43,2.972,44,3.599,45,3.599,46,3.24,56,0.811,69,2.294,101,2.427,123,2.758,135,2.427,136,2.427,139,3.545,141,3.715,166,2.427,167,2.427,168,2.427,171,3.089,179,4.144,180,3.089,181,3.599,182,2.758,183,3.599,184,2.758,185,2.758,186,3.24,187,2.427]],["t/16",[1,1.023,5,1.433,15,2.119,18,0.985,19,2.355,28,1.253,29,0.604,48,0.559,51,0.496,52,2.005,56,0.648,59,0.859,60,1.192,61,0.581,62,0.846,63,0.786,78,2.005,104,2.005,116,0.912,136,2.609,139,3.648,142,2.934,143,2.005,145,2.355,162,2.616,166,1.764,168,1.764,169,1.023,171,1.667,174,4.2,177,2.616,180,1.667,185,2.965,186,3.483,188,2.616,189,2.616,190,1.667,191,2.616,192,2.355,193,3.012,194,3.012,195,4.454,196,2.355,197,3.869,198,3.012,199,2.616,200,2.355,201,1.503,202,1.875,203,2.616,204,2.114,205,1.581,206,3.012,207,3.012,208,3.012,209,1.875,210,3.012,211,3.012,212,3.483,213,3.012,214,2.616,215,2.782,216,3.012,217,2.616,218,2.616,219,2.616,220,2.616,221,1.064,222,2.616,223,3.012,224,3.483,225,1.201,226,2.616,227,2.616,228,1.764,229,2.16,230,3.012,231,2.005,232,1.764]],["t/18",[1,1.628,11,1.843,12,1.512,15,2.28,18,1.088,21,1.088,28,2.555,29,0.668,31,2.984,32,2.653,35,1.994,51,0.789,56,0.893,59,0.925,60,1.197,61,0.642,62,0.936,63,0.868,72,0.971,83,2.603,87,2.984,88,2.216,91,1.328,92,3.747,93,2.388,95,2.807,96,1.95,116,1.009,117,2.603,131,2.073,136,2.807,139,2.947,159,2.216,169,1.131,171,1.843,185,2.216,200,2.603,202,2.073,204,1.328,233,1.662,234,2.892,235,1.748,236,2.388,237,2.388,238,2.216,239,2.892,240,2.892,241,2.603,242,2.073,243,2.603,244,2.892,245,2.892,246,2.892,247,2.603,248,2.892,249,2.216,250,2.892,251,3.33,252,3.33,253,3.33,254,2.892,255,1.95,256,1.662,257,3.33,258,3.33,259,3.33]],["t/20",[1,1.206,2,4.549,12,2.872,18,1.902,29,1.006,30,1.543,55,0.761,56,0.846,57,3.923,59,0.685,60,1.136,61,0.685,62,0.998,67,2.747,101,2.08,116,1.076,119,1.613,120,2.08,123,2.363,135,2.08,143,2.363,153,1.772,156,2.211,167,3.703,171,1.965,182,2.363,201,1.772,202,3.124,233,1.772,235,1.864,238,2.363,260,3.551,261,2.211,262,3.551,263,3.551,264,3.551,265,3.551,266,2.547,267,2.211,268,2.547,269,3.084,270,4.173,271,3.084,272,2.547,273,3.551,274,2.363,275,3.551,276,1.613,277,3.551,278,3.084,279,3.084,280,3.551,281,1.036,282,3.084,283,4.358,284,3.551,285,1.773,286,3.551]],["t/22",[2,3.551,3,1.234,5,2.161,24,1.137,28,1.287,31,1.925,32,1.712,56,0.45,59,0.597,60,1.222,63,0.807,70,2.822,71,2.058,92,2.418,96,1.811,99,1.544,116,0.937,136,1.811,139,3.113,167,2.66,169,1.051,170,3.153,171,2.979,175,2.686,182,3.023,196,2.418,197,2.686,212,2.418,215,1.623,217,2.686,218,2.686,219,2.686,220,2.686,221,1.605,222,3.945,224,4.209,225,1.234,226,2.686,227,2.686,228,1.811,256,2.687,261,1.925,270,3.257,271,2.686,281,1.325,285,1.605,287,2.418,288,2.686,289,2.058,290,3.092,291,3.092,292,3.092,293,3.092,294,3.092,295,4.542,296,2.686,297,2.218,298,3.092,299,3.092,300,3.092,301,3.092,302,3.092,303,2.686,304,2.418,305,3.092,306,3.092,307,2.418]],["t/25",[3,1.736,10,0.872,12,1.977,17,2.3,18,1.422,21,1.422,26,5.057,29,1.156,30,1.89,48,1.07,55,0.875,72,1.27,76,2.549,77,3.402,89,3.121,107,1.89,130,1.537,139,3.395,161,1.422,174,4.639,180,3.192,235,2.284,255,2.549,285,1.537,308,4.351,309,3.121,310,4.351,311,4.351,312,3.779,313,2.172,314,4.351,315,4.351,316,3.121,317,3.779,318,1.89,319,4.351,320,3.121,321,3.402,322,4.351,323,4.351,324,3.779,325,4.351,326,3.779]],["t/27",[5,2.238,6,2.137,10,1.347,11,2.604,15,2.238,16,2.757,25,2.929,29,0.943,32,2.604,33,5.253,40,5.253,51,0.775,55,0.713,60,1.019,61,1.296,89,3.374,134,3.374,166,2.756,232,2.756,233,3.029,327,4.086,328,3.679,329,3.374,330,6.069,331,6.069,332,3.131,333,2.47,334,3.679]],["t/29",[9,3.359,10,1.012,27,2.013,30,2.192,43,3.619,48,1.178,51,1.262,70,2.401,126,2.956,153,2.519,204,2.013,225,2.013,335,5.047,336,4.979,337,5.047,338,3.359,339,5.047,340,4.383,341,3.619,342,3.359,343,2.793,344,2.956,345,3.359,346,2.649]],["t/31",[48,1.247,51,1.29,55,0.713,59,0.908,60,1.076,61,0.908,73,2.137,161,1.538,205,2.47,225,2.68,276,2.137,281,1.771,347,2.47,348,3.679,349,4.705,350,5.271,351,3.359,352,2.756,353,4.745,354,5.271,355,3.374,356,2.47]],["t/33",[48,1.134,51,1.007,55,0.927,73,2.776,130,2.16,276,2.776,347,3.208,357,4.779]],["t/35",[29,0.931,48,1.239,51,1.234,55,0.704,59,0.896,60,1.173,61,0.896,73,2.109,116,1.823,130,1.64,152,2.017,225,1.852,276,2.109,281,1.755,347,2.437,351,3.909,358,4.032,359,5.225,360,2.719,361,4.642,362,4.642,363,4.642,364,4.642,365,4.642]],["t/37",[10,1.066,51,1.08,73,2.415,84,1.738,126,3.114,141,3.539,161,1.738,190,2.943,344,3.84,346,2.791,355,3.813,366,3.934,367,3.539,368,5.317,369,5.317,370,3.114,371,4.157,372,3.272,373,3.813,374,3.813]],["t/39",[3,1.043,16,1.188,17,1.598,18,0.855,21,1.309,29,0.976,48,1.151,51,1.25,55,0.607,60,1.057,62,1.126,67,1.136,70,1.244,84,1.309,91,1.598,107,1.136,116,1.213,126,2.346,130,0.924,169,0.889,170,1.532,204,2.176,205,3.086,209,1.628,221,0.924,225,2.176,283,2.271,318,1.136,336,1.876,343,2.217,344,3.195,350,4.737,351,2.694,353,3.132,358,3.478,360,2.346,366,1.448,371,2.045,372,2.722,373,4.217,375,1.628,376,1.741,377,2.872,378,1.741,379,2.615,380,2.271,381,2.615,382,1.628,383,2.271,384,2.615,385,2.271,386,2.045,387,3.912,388,1.999,389,2.271,390,2.615,391,1.741,392,2.615,393,1.448,394,2.271,395,2.615,396,3.478,397,2.045,398,2.615,399,2.045,400,3.478,401,4.005,402,2.271,403,1.741,404,4.227,405,1.876,406,2.615,407,2.615,408,1.448,409,2.615,410,4.005,411,2.615,412,2.615,413,2.615]],["t/41",[1,1.176,15,1.647,17,1.381,21,1.132,24,2.11,29,0.694,30,1.504,36,1.647,48,0.915,51,1.189,55,0.525,59,0.668,60,1.224,61,0.668,62,0.973,84,1.132,91,1.381,99,2.46,116,1.894,119,1.573,120,2.028,126,2.887,204,2.289,205,3.281,238,2.304,267,2.156,281,1.01,318,1.504,329,2.483,352,2.028,372,1.728,373,2.483,386,2.707,391,2.304,414,1.647,415,3.007,416,3.007,417,3.007,418,3.007,419,3.007,420,3.007,421,4.28,422,3.462,423,3.462,424,3.007,425,3.007,426,3.007,427,1.573,428,3.007,429,3.462]],["t/43",[1,1.59,4,1.783,15,1.533,17,1.285,24,2.026,29,0.646,30,2.033,48,0.868,51,1.104,55,0.71,59,0.622,60,1.219,61,0.622,62,0.905,84,1.053,89,2.311,91,1.285,99,1.608,116,1.832,119,1.463,120,1.887,153,1.608,160,1.783,169,1.59,184,2.144,204,1.285,205,2.892,209,2.006,221,1.138,228,1.887,231,2.144,238,2.144,281,0.94,285,1.653,329,2.311,352,1.887,372,2.336,374,2.311,391,2.144,408,1.783,414,1.533,415,2.798,416,2.798,417,2.798,418,2.798,419,2.798,420,4.064,421,2.798,426,2.798,427,1.463,428,2.798,430,3.222,431,3.222,432,2.311,433,3.222,434,2.311,435,2.519,436,3.222,437,2.311,438,4.679,439,3.222,440,3.222,441,3.222,442,3.222]],["t/45",[3,1.818,10,0.914,29,0.914,30,1.349,36,2.168,48,0.576,51,1.178,59,0.599,60,1.003,61,0.599,84,1.49,91,1.818,101,1.819,105,2.429,107,1.349,126,2.669,146,2.429,148,1.292,152,1.349,153,2.274,161,1.49,169,1.055,187,1.819,221,1.907,225,2.371,232,1.819,235,1.63,281,1.329,287,2.429,289,2.067,321,2.429,336,2.228,343,2.987,344,2.669,351,1.719,354,2.698,356,1.63,360,2.669,372,2.274,373,5.216,382,1.934,386,2.429,387,3.87,388,1.55,391,3.033,405,2.228,443,5.944,444,2.698,445,3.033,446,3.563,447,2.698,448,3.957,449,3.106,450,5.396,451,2.228,452,3.106,453,3.957,454,3.106,455,3.106,456,2.429,457,3.106,458,3.106,459,3.106,460,2.429]],["t/47",[10,0.738,11,2.038,21,1.204,24,1.892,27,1.469,51,1.208,59,0.71,60,1.13,61,0.71,62,1.035,63,1.548,65,2.053,73,1.673,91,1.469,116,1.116,130,1.819,152,1.6,160,2.038,187,2.157,190,2.038,204,1.469,212,2.879,221,1.301,233,1.838,281,1.502,340,5.872,346,1.933,352,3.763,356,2.702,359,3.198,444,3.198,461,2.451,462,3.198,463,2.038,464,3.198,465,2.879,466,4.471,467,4.471,468,2.879,469,3.683,470,3.683,471,5.147,472,3.683,473,3.683,474,3.683,475,3.683,476,3.683,477,3.205,478,2.451,479,3.683]],["t/49",[1,1.924,10,1.366,24,2.082,51,1.122,55,0.859,56,0.823,72,1.652,184,3.769,261,3.526,480,4.428,481,5.664,482,3.769,483,4.919,484,5.664,485,5.664]],["t/51",[3,1.769,5,2.11,6,2.014,10,1.309,27,1.769,29,0.889,51,1.219,56,1.009,59,1.127,60,0.886,61,0.856,70,2.11,99,2.213,107,1.927,135,2.597,148,1.845,160,2.455,161,1.45,209,2.761,225,2.876,233,2.213,270,3.181,427,2.014,483,3.852,486,4.435,487,4.435,488,3.467,489,4.435,490,4.435,491,3.181,492,4.435,493,3.181,494,2.761,495,3.467,496,2.952]],["t/53",[1,1.227,3,0.913,8,1.641,10,0.724,11,1.998,17,0.913,18,0.748,27,0.913,29,0.724,30,0.994,37,1.789,42,1.039,48,0.83,51,1.252,55,0.347,56,1.012,59,0.696,60,0.89,61,0.441,63,0.597,84,0.748,104,1.523,107,2.205,116,0.693,120,1.34,130,1.58,141,2.403,142,2.475,156,1.424,164,1.641,169,0.777,187,1.34,192,1.789,204,0.913,215,1.201,221,0.808,225,1.44,228,1.34,231,1.523,249,1.523,261,2.247,268,1.641,276,1.039,281,0.668,285,2.25,313,1.142,320,1.641,321,1.789,333,1.201,336,1.641,338,2.975,341,2.589,342,1.523,345,1.523,346,1.895,351,3.058,356,3.081,360,1.34,376,1.523,388,1.142,393,1.998,405,1.641,432,1.641,466,3.135,478,1.523,480,1.789,493,1.641,497,1.641,498,2.822,499,2.822,500,1.987,501,3.135,502,2.288,503,2.288,504,2.822,505,2.288,506,3.135,507,1.789,508,1.523,509,2.288,510,3.61,511,1.987,512,1.523,513,2.288,514,3.135,515,1.987,516,1.987,517,2.288,518,1.201,519,2.822,520,1.987,521,2.288,522,1.987,523,2.288,524,2.288,525,2.288,526,2.288,527,2.288,528,1.789,529,1.34,530,1.34,531,2.288,532,2.288,533,1.641,534,1.789,535,1.789,536,1.641,537,1.789,538,1.424,539,2.288,540,2.288,541,2.288,542,1.641,543,1.34]],["t/55",[3,1.725,48,0.802,51,1.254,55,0.656,56,1.039,59,0.834,60,0.978,61,0.834,72,1.262,78,2.878,84,1.414,116,1.31,130,1.528,142,2.394,225,2.852,276,1.964,281,1.676,342,2.878,351,3.179,360,2.533,383,3.756,456,3.381,465,3.381,493,3.101,529,2.533,530,3.364,543,2.533,544,4.324,545,4.324,546,2.878,547,2.878,548,3.756,549,3.756,550,4.324,551,3.101]],["t/57",[17,1.984,21,1.626,24,1.829,36,2.366,48,0.923,51,1.231,56,0.723,59,0.96,60,0.954,61,0.96,119,2.26,152,2.161,161,1.626,205,2.611,221,1.758,236,3.568,269,4.32,276,2.26,281,1.451,285,1.758,352,2.914,353,3.889,356,3.301,366,2.753,530,2.914,552,3.889,553,4.974,554,3.568]],["t/59",[5,1.647,6,1.573,10,0.694,16,1.573,17,1.381,18,1.132,20,4.984,29,0.694,36,1.647,42,2.239,48,0.642,51,1.242,55,0.747,56,0.503,59,0.668,60,1.095,61,0.668,72,1.01,73,1.573,85,2.304,107,1.504,116,1.049,221,1.741,225,1.966,266,2.483,278,3.007,281,1.438,285,2.209,303,3.007,313,1.728,333,2.587,356,1.817,360,2.028,372,1.728,375,2.156,387,2.483,388,1.728,393,1.916,405,2.483,478,3.28,482,2.304,493,2.483,549,3.007,555,3.462,556,3.462,557,3.462,558,3.462,559,3.462,560,6.607,561,3.462,562,3.462,563,3.462,564,3.462,565,3.462,566,2.156,567,2.156,568,2.304,569,2.156,570,3.007,571,3.462,572,3.462,573,3.462]],["t/61",[1,2.044,10,0.931,18,1.518,21,1.518,48,0.861,51,0.764,55,0.912,119,2.109,152,2.017,170,2.719,189,4.032,276,2.109,304,3.63,318,2.017,329,3.329,427,2.109,437,3.329,462,4.032,463,3.33,495,4.704,574,4.032,575,2.719,576,6.016,577,3.329,578,5.225,579,4.642,580,4.642,581,4.642,582,4.642,583,4.642,584,4.642,585,4.032,586,4.032,587,4.642,588,4.642,589,4.642,590,4.642,591,4.642]],["t/63",[23,5.085,51,1.144,56,0.851,123,3.897,130,2.069,225,2.772,382,3.645,432,4.199,529,3.429,575,3.429,578,5.085]],["t/65",[1,1.845,10,0.797,15,1.892,30,1.728,35,1.655,36,1.892,48,1.007,55,0.937,56,1.086,72,1.16,75,2.853,88,2.647,91,2.649,135,2.33,153,1.985,161,1.3,225,1.587,233,2.71,236,2.853,318,1.728,460,3.11,461,2.647,482,2.647,496,2.647,497,2.853,512,2.647,518,2.849,530,3.18,547,3.613,569,2.476,577,2.853,586,3.455,592,3.978,593,3.455,594,2.853,595,3.455,596,5.192,597,3.978,598,3.978,599,3.11,600,3.978,601,3.455,602,3.11,603,3.978,604,3.978,605,3.978,606,3.11,607,3.978]],["t/67",[4,2.587,21,1.528,28,2.514,48,0.867,53,2.737,54,3.11,56,0.973,58,3.654,59,1.166,60,1.197,61,0.902,62,1.313,63,1.219,64,3.016,65,1.864,66,3.352,67,2.03,68,3.11,69,2.587,90,4.059,396,4.059,477,3.762,478,3.11,494,2.909,595,5.248,596,3.654,608,4.673]],["t/69",[1,1.522,13,1.795,18,1.183,21,0.75,25,1.429,26,3.976,27,0.916,28,1.864,29,0.46,36,1.722,42,1.043,48,0.944,50,1.271,55,0.348,56,0.954,59,1.23,60,1.177,61,0.698,62,1.017,63,0.944,65,1.444,67,2.209,69,1.271,84,0.75,87,1.429,88,2.409,99,1.806,146,1.795,152,0.997,167,3.443,168,3.843,180,1.271,182,4.095,185,1.528,187,1.345,190,1.271,201,2.538,202,3.166,204,1.444,234,3.143,255,1.345,266,2.596,267,1.429,268,1.646,276,1.043,279,3.143,281,0.67,282,1.994,289,2.409,296,1.994,316,1.646,318,1.572,343,1.271,372,2.236,378,1.528,403,2.982,408,1.271,477,1.429,494,1.429,507,1.795,512,1.528,518,1.205,528,1.795,536,1.646,574,1.994,577,1.646,594,1.646,596,4.327,609,1.795,610,2.296,611,2.296,612,2.296,613,2.596,614,2.596,615,2.296,616,1.994,617,1.795,618,2.296,619,2.296,620,3.619,621,2.296,622,3.619,623,2.296,624,2.296,625,2.296,626,2.296,627,1.994,628,2.296,629,1.646,630,2.296,631,2.296,632,2.296]],["t/71",[6,1.47,10,0.649,16,1.47,24,1.726,42,2.133,51,1.06,55,0.491,56,0.935,59,0.624,60,1.096,61,0.624,62,0.91,63,0.844,72,1.37,76,1.896,85,2.154,91,1.291,96,1.896,102,2.015,131,2.923,148,1.347,153,1.615,158,2.811,159,3.125,161,1.058,180,1.791,204,1.873,221,1.144,224,2.531,241,2.531,242,2.015,255,1.896,274,2.154,318,2.04,344,1.896,352,2.75,370,2.75,371,2.531,375,2.015,378,3.125,393,1.791,414,2.234,445,2.154,446,2.531,447,2.811,451,3.367,456,2.531,461,2.154,496,2.154,504,2.531,518,1.699,519,2.531,547,2.154,552,2.531,566,2.015,569,2.015,575,1.896,633,3.237,634,2.321,635,2.811,636,2.811,637,2.811,638,4.467,639,3.237,640,3.237,641,3.237,642,2.811,643,3.237,644,2.811,645,3.237,646,3.237,647,2.811,648,3.237,649,3.237,650,3.237,651,3.237]],["t/73",[1,1.377,3,1.616,10,0.812,18,0.868,21,0.868,24,0.976,27,1.059,29,0.812,51,0.437,52,2.697,55,0.614,56,1.049,63,0.693,65,1.059,69,2.243,72,1.727,74,2.306,75,2.906,76,3.22,78,1.767,79,2.306,80,2.306,84,0.868,85,1.767,101,1.555,102,1.653,104,1.767,107,1.154,110,2.306,112,2.306,131,1.653,134,1.904,136,1.555,139,2.579,141,2.697,147,1.47,148,1.686,149,1.904,153,1.325,159,1.767,161,0.868,163,2.306,166,2.373,167,2.878,168,1.555,169,0.902,171,2.243,180,3.043,181,3.519,182,2.697,183,2.306,184,1.767,187,1.555,190,1.47,215,1.394,221,0.938,229,1.904,235,1.394,237,1.904,242,1.653,255,2.373,256,1.325,261,1.653,267,1.653,274,1.767,281,0.775,326,2.306,333,1.394,346,2.886,370,1.555,402,2.306,434,1.904,445,1.767,463,1.47,468,2.076,480,2.076,491,1.904,518,1.394,543,1.555,575,1.555,634,2.906,635,2.306,644,3.519,652,2.655,653,2.655,654,1.904,655,2.655,656,2.655,657,2.655,658,2.655,659,2.655,660,2.655,661,2.655,662,2.655,663,2.655,664,2.655,665,2.655,666,2.306,667,2.306,668,2.655,669,2.655,670,2.655,671,2.655,672,2.655,673,2.655,674,2.655,675,2.306,676,2.655,677,4.052,678,2.655]],["t/75",[5,1.925,6,1.838,8,2.903,10,0.811,22,3.515,29,0.811,51,1.215,56,1.072,58,3.164,59,0.781,60,1.166,61,0.781,62,1.544,63,1.056,64,2.02,65,1.614,66,2.903,67,1.758,68,2.694,69,2.24,88,2.694,102,2.52,107,1.758,116,1.226,169,1.375,221,1.43,225,2.191,281,1.181,332,2.694,360,2.371,366,3.041,370,2.371,434,2.903,463,3.041,488,3.164,495,3.164,543,2.371,546,2.694,679,4.047,680,5.493]],["t/77",[11,2.202,21,1.3,35,1.655,48,0.738,51,1.231,55,0.603,56,0.789,59,1.281,60,1.198,61,1.047,64,3.314,84,1.3,97,4.245,99,1.985,107,1.728,114,3.894,116,1.645,133,3.455,169,1.352,170,2.33,228,2.33,256,1.985,334,3.11,341,2.853,408,2.202,491,2.853,508,2.647,529,2.33,681,3.978,682,4.245,683,5.429,684,3.978,685,3.11,686,3.978,687,3.978,688,3.978]],["t/79",[10,1.308,16,2.397,17,2.105,24,2.399,48,1.314,55,0.8,56,1.03,102,3.285,130,1.864,148,2.195,161,1.725,221,2.305,281,1.539,357,4.126,376,3.512,408,3.612,530,3.091,689,5.277]],["t/81",[10,0.775,16,1.757,17,2.429,27,1.542,51,1.003,56,0.774,72,1.554,102,2.407,119,1.757,126,2.265,147,2.14,148,1.609,152,2.313,156,2.407,160,2.14,204,1.542,205,2.03,240,3.359,241,3.024,242,2.407,309,2.773,333,2.03,344,2.265,370,2.265,375,2.407,377,2.773,382,2.407,385,3.359,391,2.574,393,2.947,399,3.024,404,3.359,427,1.757,448,3.359,496,2.574,497,4.368,498,3.024,499,3.024,506,3.359,522,3.359,538,4.085,594,2.773,602,3.024,690,3.359,691,3.359,692,3.359,693,3.024,694,3.867,695,3.791,696,3.867,697,3.867,698,3.867,699,3.359,700,3.867,701,3.359,702,3.867,703,3.867,704,3.867,705,3.359]],["t/83",[10,0.883,12,2.002,16,2.002,17,1.758,18,1.441,30,1.914,56,0.845,72,1.697,76,2.581,83,3.445,108,3.16,130,1.557,135,2.581,142,2.439,156,2.743,204,1.758,228,3.406,268,3.16,285,1.557,289,2.933,333,2.313,356,3.052,388,2.199,414,2.096,427,2.002,445,4.332,501,3.827,511,3.827,512,2.933,515,3.827,516,3.827,529,3.812,533,3.16,534,3.445,535,3.445,536,3.16,537,3.445,543,2.581,546,2.933,706,4.406,707,4.406,708,4.406,709,4.406,710,3.445]],["t/85",[10,1.156,11,2.409,18,1.885,24,2.532,55,0.875,60,0.875,75,3.121,84,1.885,91,1.736,101,2.549,160,2.409,204,1.736,232,2.549,235,2.284,345,2.896,366,2.409,370,2.549,375,2.709,376,2.896,408,2.409,427,1.977,432,3.121,451,3.121,463,2.409,499,3.402,538,3.59,577,3.121,685,3.402,695,2.709,711,3.779,712,4.351,713,4.351,714,4.351,715,4.351,716,6.887,717,3.402,718,5.008,719,4.351,720,4.351,721,4.351,722,4.351]],["t/87",[4,1.522,15,1.308,18,1.641,19,3.253,27,1.097,29,0.834,51,0.827,54,1.83,55,0.959,56,0.983,59,0.803,60,1.16,61,0.53,62,0.773,63,0.717,67,1.195,72,1.464,84,1.36,87,1.712,104,1.83,105,3.253,108,2.984,119,2.28,120,1.611,142,2.303,143,2.769,147,1.522,148,1.144,160,1.522,161,0.899,169,0.934,201,1.372,205,3.156,209,2.59,221,0.972,228,1.611,233,1.372,255,1.611,285,1.774,316,1.972,317,2.388,332,1.83,333,2.635,342,1.83,344,2.437,366,3.328,367,1.83,387,1.972,388,2.077,414,1.308,437,1.972,477,1.712,504,2.15,529,2.437,543,1.611,554,1.972,568,2.769,569,1.712,609,2.15,629,1.972,695,1.712,723,2.75,724,2.75,725,2.75,726,2.388,727,2.75,728,2.75,729,2.75,730,2.75,731,2.75,732,6.012,733,2.75,734,2.75,735,2.75,736,2.75,737,2.75,738,2.75,739,1.972,740,2.75,741,2.15,742,2.75]],["t/89",[1,1.096,18,1.054,21,0.65,28,0.827,29,0.646,32,1.785,48,0.369,51,1.03,55,0.781,56,0.909,59,1.064,60,1.211,61,0.785,62,1.144,63,1.061,67,0.863,71,1.323,72,1.366,87,2.007,93,1.425,95,1.164,107,0.863,116,1.419,117,1.554,119,2.338,130,0.702,152,0.863,161,0.65,201,2.031,202,1.237,221,0.702,247,1.554,281,0.58,285,1.139,288,1.726,313,2.031,318,0.863,328,1.554,346,2.136,351,1.1,352,1.889,356,1.692,370,1.164,372,1.609,377,1.425,388,0.992,393,1.1,414,1.936,463,1.1,477,2.007,491,1.425,498,1.554,520,1.726,538,1.237,542,1.425,551,1.425,568,1.323,569,1.237,601,1.726,617,1.554,638,2.146,654,4.339,695,1.237,705,1.726,743,4.067,744,1.726,745,3.224,746,1.554,747,3.224,748,1.726,749,5.513,750,3.224,751,4.682,752,3.534,753,3.224,754,4.682,755,1.987,756,1.987,757,1.987,758,1.987,759,1.987,760,1.987,761,1.726,762,1.987,763,1.987,764,2.8,765,1.987,766,3.224,767,1.987,768,1.987,769,1.987,770,1.987,771,1.987,772,3.224,773,1.987,774,1.987,775,1.726,776,1.987,777,1.987,778,3.224,779,1.987,780,1.987,781,1.987,782,1.987,783,1.987,784,1.987,785,1.726]],["t/91",[27,1.839,51,1.096,55,0.699,71,3.069,84,1.507,120,2.701,147,2.552,148,1.918,152,2.003,153,2.302,156,2.871,187,2.701,285,2.117,333,2.42,356,2.42,366,2.552,388,2.302,393,2.552,508,3.069,512,3.069,514,4.005,529,2.701,533,3.307,534,3.606,535,3.606,536,4.296,537,4.684,538,3.729,568,3.069,695,3.729,710,3.606,717,5.203,786,4.611,787,4.005,788,4.611,789,3.606]],["t/93",[21,1.851,24,2.082,29,1.136,161,1.851,318,2.46,357,4.428,366,3.135,375,3.526,538,3.526,695,3.526,711,4.919,717,4.428,743,4.919,787,4.919,790,4.428,791,5.664,792,4.919]],["t/95",[1,1.46,10,0.862,27,1.714,42,1.952,48,0.797,52,2.86,55,0.867,56,1.067,72,1.254,91,1.714,130,1.518,135,2.517,142,2.379,161,1.405,167,2.517,168,2.517,184,2.86,221,2.021,243,3.36,270,3.082,316,3.082,320,3.082,343,2.379,425,3.732,427,1.952,482,2.86,496,2.86,508,2.86,546,2.86,547,2.86,548,3.732,566,4.002,613,3.082,614,3.082,792,3.732,793,4.297,794,4.297,795,3.807,796,4.297,797,3.732,798,4.297,799,4.297,800,3.732,801,4.297,802,3.732,803,3.732]],["t/97",[3,1.128,9,1.882,12,1.931,15,2.429,18,0.925,29,0.567,48,0.525,52,1.882,55,0.429,56,0.964,59,1.095,60,1.219,61,0.82,62,1.194,63,1.109,67,1.846,70,2.429,109,2.211,116,1.288,119,1.285,123,1.882,139,1.484,169,0.961,201,2.121,202,1.761,205,2.231,215,1.484,256,2.121,276,2.319,281,0.825,427,2.319,477,1.761,494,1.761,566,3.179,638,1.882,654,4.072,666,2.456,667,2.456,726,3.691,761,2.456,764,2.456,775,2.456,789,2.211,795,2.829,804,2.828,805,2.828,806,2.828,807,2.828,808,3.691,809,5.106,810,2.828,811,4.25,812,2.828,813,2.828,814,2.828,815,4.931,816,2.828,817,2.828,818,2.828,819,2.828,820,2.828,821,2.828,822,2.828,823,2.828,824,2.828,825,2.828,826,2.828,827,2.828,828,2.828]],["t/99",[28,1.957,29,0.943,51,0.775,55,0.92,56,1.068,72,1.373,84,1.538,91,1.877,130,2.374,148,2.525,149,3.374,164,4.353,165,3.679,209,2.929,255,2.756,276,2.137,281,1.373,343,2.604,346,2.47,347,2.47,397,3.679,403,3.131,542,3.374,546,3.131,547,3.131,638,3.131,654,3.374,785,4.086,795,4.039,808,4.086,815,4.086,829,4.705]],["t/101",[1,1.469,42,1.964,48,0.802,55,0.656,56,1.09,60,0.656,85,2.878,131,2.692,147,2.394,221,1.528,236,3.101,237,3.101,274,2.878,313,2.158,318,1.879,347,2.27,348,4.49,403,2.878,424,3.756,461,2.878,508,2.878,566,2.692,613,4.119,614,4.119,636,4.988,637,3.756,690,3.756,795,4.892,797,3.756,803,3.756,830,4.324,831,4.324,832,4.324,833,4.988,834,3.381,835,4.988,836,4.324,837,4.324]],["t/103",[18,1.914,24,2.152,56,0.851,166,3.429,272,4.199,281,1.708,342,3.897,403,3.897,437,4.199,638,3.897,795,3.897,838,5.854,839,5.854]],["t/105",[4,1.834,5,1.576,6,2.169,10,0.958,18,1.561,24,1.218,28,1.987,29,1.123,34,3.179,55,0.849,56,0.944,59,0.921,60,1.192,61,0.921,62,1.342,63,1.246,64,2.795,65,1.322,66,2.377,68,2.205,72,0.967,81,2.878,84,1.083,95,2.797,96,1.941,97,2.591,98,2.878,116,1.447,131,2.973,161,1.083,169,1.126,185,2.205,232,1.941,266,3.425,272,2.377,276,1.505,338,2.205,434,2.377,451,2.377,463,1.834,518,1.739,569,2.063,609,2.591,685,2.591,699,2.878,739,2.377,790,2.591,840,3.314,841,3.314,842,4.148,843,4.791,844,2.878,845,2.878,846,3.314,847,3.314,848,3.314,849,2.878,850,3.314,851,3.314,852,2.878]],["t/107",[3,1.334,21,1.094,24,1.23,29,0.671,34,3.747,42,1.52,50,1.852,55,0.507,56,0.699,59,1.258,60,1.136,61,0.645,62,0.94,63,0.873,64,3.638,84,1.094,116,1.457,147,1.852,148,1.392,152,1.453,180,1.852,191,2.906,235,1.756,242,2.083,249,2.227,267,2.083,281,1.403,285,1.182,287,2.616,289,2.227,320,2.4,333,1.756,346,1.756,347,1.756,367,4.763,377,2.4,378,3.201,388,1.67,389,2.906,445,2.227,518,1.756,519,2.616,599,2.616,647,2.906,682,3.76,790,2.616,800,2.906,842,2.906,843,4.812,852,2.906,853,3.346,854,4.809,855,3.346,856,3.346,857,3.346,858,4.809,859,3.346,860,3.346,861,3.346,862,3.346,863,3.346]],["t/109",[3,1.409,10,0.708,21,1.155,24,2.319,25,2.199,29,1.002,30,1.535,34,2.351,35,1.47,36,1.681,38,2.762,42,1.605,50,1.955,53,2.069,55,0.758,56,0.514,59,0.682,60,1.078,61,0.682,62,0.993,63,1.304,64,2.896,68,2.351,73,2.271,77,2.762,78,2.351,84,1.897,91,1.409,99,1.763,116,1.07,152,1.535,161,1.155,169,1.2,188,3.068,190,1.955,229,2.534,233,1.763,237,2.534,242,2.199,243,2.762,250,3.068,256,1.763,309,2.534,334,2.762,367,3.327,397,2.762,408,1.955,463,1.955,533,2.534,594,2.534,675,4.342,693,2.762,843,4.933,844,3.068,845,3.068,864,3.533,865,3.533,866,3.533,867,3.533,868,3.533,869,3.533,870,3.533,871,2.534,872,3.533,873,3.533,874,3.533,875,3.533,876,3.533,877,3.533]],["t/111",[1,1.513,3,1.776,6,1.033,10,0.72,15,2.118,16,1.033,17,1.432,27,1.432,28,0.946,29,0.456,43,1.63,48,1.138,51,0.733,55,0.545,56,0.974,59,0.976,60,1.162,61,0.693,62,1.009,63,0.937,69,1.258,72,0.663,87,1.415,93,1.63,95,1.331,96,1.331,99,1.135,108,1.63,130,1.787,136,2.607,139,3.516,145,1.777,148,0.946,160,1.988,164,1.63,165,1.777,169,0.772,171,3.517,174,3.193,190,1.258,196,1.777,199,1.974,200,1.777,201,1.135,203,1.974,204,0.907,214,1.974,215,1.193,221,1.269,225,0.907,229,2.576,231,1.513,232,1.331,244,1.974,245,1.974,246,1.974,247,1.777,248,1.974,249,1.513,256,1.135,285,0.803,313,1.135,318,0.987,343,1.988,345,2.963,347,1.193,351,1.258,355,1.63,376,1.513,378,1.513,388,1.135,393,1.258,427,1.033,467,1.974,478,3.665,488,1.777,494,1.415,552,1.777,554,1.63,568,1.513,585,1.974,602,1.777,613,1.63,614,1.63,789,2.808,835,5.084,871,1.63,878,3.119,879,2.273,880,2.273,881,3.591,882,3.119,883,2.273,884,2.273,885,2.273,886,2.273,887,2.273,888,2.273,889,2.273,890,2.273,891,2.273,892,2.273]],["t/113",[5,2.51,6,2.397,10,1.058,29,1.308,35,2.195,48,0.979,51,0.869,55,0.8,56,0.767,67,2.292,72,1.539,76,3.091,169,1.793,170,3.091,239,4.583,285,2.305,347,2.77,348,4.126,408,2.921,414,3.104,893,5.277,894,4.126,895,5.277]],["t/115",[10,1.115,12,1.871,18,1.347,27,1.643,42,1.871,48,1.032,50,3.729,51,0.678,53,3.686,54,2.742,55,0.625,56,0.599,59,0.795,60,0.954,61,0.795,62,1.562,63,1.074,70,2.645,109,3.221,116,1.248,119,1.871,130,1.455,192,3.221,231,2.742,281,1.622,285,1.455,332,2.742,355,2.954,367,3.7,414,3.448,468,3.221,500,3.578,528,3.221,575,2.413,894,3.221,896,4.119,897,4.347,898,4.119,899,3.578,900,4.119,901,4.119,902,3.578,903,4.119,904,4.119]],["t/117",[4,3.232,10,0.889,48,1.084,51,0.73,53,3.42,56,0.849,59,1.127,60,1.175,61,0.856,62,1.246,63,1.157,64,2.915,65,1.769,67,1.927,72,1.294,96,2.597,99,2.915,147,2.455,149,3.181,169,1.507,170,3.42,232,2.597,256,2.213,285,2.063,338,2.952,341,3.181,414,3.106,629,3.181,894,3.467,905,3.852,906,4.435,907,4.435]],["t/119",[5,2.523,6,2.41,10,1.064,12,2.41,21,1.257,28,1.6,29,0.771,31,2.394,32,2.129,35,1.6,48,0.714,51,0.633,53,3.557,56,0.559,59,1.171,60,1.176,61,0.742,62,1.081,63,1.003,64,2.648,67,1.671,70,1.829,71,2.559,72,1.122,95,2.252,114,3.804,180,2.129,233,1.919,235,2.018,256,2.648,267,2.394,285,1.874,338,2.559,372,1.919,414,2.523,518,2.018,551,2.758,593,3.34,629,2.758,682,3.007,701,3.34,849,3.34,905,3.34,908,3.846,909,3.846,910,3.846,911,3.846,912,3.846,913,3.846,914,3.846,915,3.34]],["t/122",[21,1.11,36,2.7,50,1.879,55,0.737,84,1.11,161,1.11,168,1.988,274,2.259,297,3.485,328,2.654,374,2.435,399,2.654,435,2.654,446,2.654,453,2.948,567,2.113,599,3.8,634,2.435,710,2.654,739,2.435,899,2.948,916,3.395,917,3.395,918,6.196,919,4.859,920,3.395,921,3.395,922,3.395,923,3.395,924,3.395,925,3.395,926,3.395,927,4.22,928,3.395,929,3.395,930,3.395,931,3.395,932,6.196,933,7.314,934,3.395,935,4.859,936,3.533,937,2.948,938,3.395,939,2.948,940,3.395,941,3.395,942,3.395,943,3.395,944,3.395,945,3.395,946,3.395,947,3.395,948,4.22,949,4.859,950,3.395,951,3.395,952,4.859,953,2.948,954,3.395,955,3.395,956,3.395,957,3.395,958,3.395,959,3.395,960,3.395,961,3.395,962,3.395,963,3.395,964,3.395,965,3.395,966,3.395]],["t/125",[0,1.894,1,0.741,3,1.728,10,0.697,12,1.578,16,0.99,17,1.386,24,1.277,29,0.868,30,1.509,42,0.99,48,0.405,51,0.713,55,0.657,56,0.718,59,0.953,60,1.188,61,0.421,62,1.217,63,1.289,65,1.386,67,1.882,70,1.653,72,0.636,73,0.99,91,0.87,107,0.947,116,1.312,130,1.53,143,4.575,148,0.907,152,0.947,161,0.713,166,2.894,169,1.833,186,1.705,204,0.87,233,1.734,235,1.144,238,1.451,256,1.088,261,3.579,272,1.564,281,1.264,285,1.228,309,1.564,312,3.018,313,1.734,318,0.947,332,1.451,343,1.207,345,3.591,346,1.824,347,1.144,372,1.734,414,1.037,461,1.451,465,1.705,482,1.451,494,1.357,497,1.564,507,1.705,530,1.277,542,1.564,543,1.277,551,1.564,566,1.357,567,1.357,606,1.705,617,1.705,691,1.894,692,1.894,748,1.894,802,1.894,882,1.894,915,3.018,948,1.894,967,2.18,968,2.18,969,2.18,970,4.331,971,3.018,972,2.18,973,2.18,974,3.474,975,2.18,976,2.18,977,2.18,978,2.18,979,2.18,980,3.474,981,2.18,982,2.18,983,3.474,984,2.18,985,2.18,986,2.18,987,2.18,988,2.18,989,2.18,990,2.18,991,2.18,992,2.18,993,2.18,994,2.18,995,2.18,996,2.18,997,2.18]],["t/128",[18,1.468,153,2.242,297,3.222,327,3.901,374,3.222,380,3.901,634,3.222,752,3.901,871,4.224,878,3.901,998,4.492,999,3.901,1000,2.99,1001,5.889,1002,4.492,1003,2.801,1004,3.222,1005,4.492,1006,4.492,1007,4.492,1008,4.492,1009,4.492,1010,4.492,1011,4.492,1012,4.492,1013,4.492,1014,5.889,1015,4.492,1016,4.492,1017,4.492,1018,4.492,1019,4.492,1020,4.492,1021,4.492,1022,4.492,1023,4.492,1024,3.901,1025,4.492,1026,3.901,1027,3.222,1028,3.512,1029,4.492,1030,4.492,1031,4.492,1032,4.492]],["t/130",[8,2.758,9,2.559,25,2.394,29,1.064,36,1.829,55,0.583,65,1.534,107,1.671,119,1.747,134,2.758,190,2.129,201,2.648,215,2.018,249,2.559,297,2.758,307,3.007,313,1.919,318,1.671,394,3.34,460,3.007,570,3.34,606,3.007,616,3.34,718,3.34,833,3.34,834,3.007,871,3.804,897,4.148,927,3.34,936,3.302,939,3.34,953,4.607,1003,2.523,1004,2.758,1024,4.607,1028,3.007,1033,3.107,1034,3.846,1035,3.846,1036,3.34,1037,3.007,1038,3.34,1039,3.846,1040,3.846,1041,3.846,1042,3.846,1043,3.34,1044,3.007,1045,3.846,1046,3.846,1047,3.34,1048,3.34,1049,3.846,1050,3.846,1051,3.846,1052,3.846,1053,3.846,1054,3.846,1055,3.34,1056,3.846,1057,3.846,1058,3.846,1059,3.846,1060,2.252,1061,2.559,1062,3.846]],["t/132",[35,2.525,215,3.526,464,5.271,567,2.929,627,4.086,693,3.679,834,3.679,897,3.679,937,4.086,1000,4.039,1003,3.196,1028,3.679,1033,3.555,1055,4.086,1060,2.756,1061,3.131,1063,4.705,1064,3.131,1065,3.679,1066,4.705,1067,4.705,1068,3.679,1069,4.705,1070,4.705,1071,4.705,1072,4.705,1073,6.069,1074,4.705,1075,4.705,1076,4.705,1077,4.705,1078,4.705,1079,4.705]],["t/134",[29,0.997,35,2.07,55,0.754,65,1.984,254,4.32,307,3.889,313,2.483,435,3.889,530,2.914,575,2.914,744,5.462,936,3.097,971,5.989,1003,3.28,1026,4.32,1060,2.914,1080,5.462,1081,6.896,1082,4.974,1083,4.974,1084,4.974,1085,4.32,1086,4.32,1087,4.974,1088,4.974,1089,4.974]],["t/136",[130,1.879,215,2.791,739,3.813,1000,4.363,1003,3.119,1004,3.813,1033,3.114,1038,4.618,1047,4.618,1064,3.539,1090,5.317,1091,6.556,1092,5.317,1093,5.317,1094,5.317,1095,5.317,1096,5.317,1097,5.317,1098,5.317,1099,5.317,1100,5.317,1101,4.618]],["t/138",[21,1.914,35,2.436,567,3.645,1000,3.897,1003,3.306,1060,3.429,1068,4.578,1102,3.645,1103,5.085,1104,5.854,1105,3.897,1106,3.897]],["t/140",[55,0.794,65,2.089,142,2.899,161,1.712,201,2.614,324,4.548,741,4.095,902,4.548,1000,3.485,1003,3.358,1033,3.804,1043,4.548,1048,4.548,1061,4.322,1068,4.095,1102,3.26,1105,3.485,1106,3.485,1107,5.237,1108,5.237,1109,5.237,1110,5.237,1111,5.237]],["t/142",[35,1.957,101,2.756,382,2.929,400,4.086,427,2.137,567,2.929,642,4.086,741,3.679,746,3.679,936,3.778,1003,2.887,1027,4.818,1033,2.756,1037,3.679,1044,3.679,1060,2.756,1064,3.131,1080,4.086,1085,4.086,1086,4.086,1101,4.086,1102,2.929,1105,4.039,1106,4.039,1112,4.705,1113,4.705,1114,4.705,1115,4.086,1116,4.086,1117,4.086,1118,4.705,1119,4.705,1120,4.086,1121,4.086,1122,3.679,1123,3.679]],["t/144",[35,1.971,65,2.431,148,1.971,201,2.364,382,2.949,427,2.152,746,3.704,936,3.795,1003,3.385,1027,4.834,1033,2.775,1037,3.704,1044,3.704,1060,2.775,1061,3.153,1064,3.153,1065,3.704,1102,2.949,1105,3.153,1106,4.057,1115,4.114,1116,4.114,1117,5.294,1120,4.114,1121,4.114,1122,3.704,1123,4.766,1124,4.737,1125,4.114,1126,4.114,1127,4.737]],["t/146",[9,3.512,63,1.376,65,2.105,159,3.512,313,3.257,575,3.091,936,3.285,1003,3.37,1004,3.784,1027,3.784,1033,3.091,1036,4.583,1061,3.512,1065,4.126,1102,3.285,1105,3.512,1106,3.512,1122,4.126,1123,4.126,1125,4.583,1126,4.583,1128,5.277,1129,5.277]],["t/148",[35,2.888,125,4.383,304,3.946,518,2.649,554,4.552,999,4.383,1003,2.401,1060,4.066,1064,3.359,1102,3.142,1103,4.383,1130,5.047,1131,5.047,1132,5.047,1133,6.942,1134,5.047,1135,5.047,1136,5.047,1137,5.047,1138,5.047,1139,5.047,1140,5.047,1141,5.047,1142,5.047,1143,5.047]]],"invertedIndex":[["",{"_index":60,"t":{"4":{"position":[[212,1],[222,1],[286,1],[316,1],[340,1],[342,1]]},"6":{"position":[[332,1],[342,1],[417,1],[466,2],[475,1],[510,1],[512,1]]},"8":{"position":[[144,1],[156,1],[190,1],[204,1],[247,1]]},"10":{"position":[[63,1]]},"12":{"position":[[643,2],[646,3],[701,1],[703,2],[706,3],[723,1],[753,1],[776,1],[778,1],[780,2],[783,3],[787,1]]},"16":{"position":[[304,1],[314,1],[354,1],[396,1],[411,2],[477,1],[524,1],[554,1],[569,1],[584,1],[607,2],[647,2],[731,1],[758,1],[805,2],[848,1],[943,1],[967,1],[1108,1],[1110,1],[1112,1]]},"18":{"position":[[370,1],[391,1],[425,1],[444,1],[528,1],[579,2],[600,1],[639,1],[641,1],[643,2],[668,2],[746,3],[758,1],[778,1],[840,2],[879,1],[924,1],[1019,1],[1021,1]]},"20":{"position":[[563,1],[573,1],[611,2],[643,1],[658,1],[712,1],[734,1],[777,1],[806,1],[808,1]]},"22":{"position":[[220,2],[223,3],[234,1],[252,1],[332,1],[334,2],[337,3],[388,2],[484,1],[492,1],[515,1],[517,1],[539,2],[542,4],[569,1],[647,2],[650,1],[680,2],[705,3],[805,2],[808,1],[850,3],[929,1],[931,1],[933,2],[936,3],[940,1],[1067,1],[1224,2]]},"27":{"position":[[213,1],[244,1],[272,1]]},"31":{"position":[[109,1],[140,1],[167,2],[248,2]]},"35":{"position":[[129,1],[141,1],[168,2],[231,1],[299,3],[315,2],[380,1],[461,3]]},"39":{"position":[[197,2],[274,2],[647,2],[724,2],[802,1],[825,3],[1431,1],[1490,1],[1516,2],[1591,2]]},"41":{"position":[[39,1],[66,1],[93,2],[155,2],[224,1],[267,1],[319,1],[337,1],[383,1],[405,3],[409,2],[496,1],[549,1],[551,2],[619,2],[726,2],[768,1],[770,2],[773,3],[798,1],[800,2],[862,1],[901,2],[904,3],[908,1]]},"43":{"position":[[364,1],[391,1],[418,2],[480,2],[549,1],[592,1],[644,1],[646,2],[649,3],[653,1],[655,2],[658,3],[683,1],[685,2],[734,1],[780,1],[798,3],[821,3],[831,1],[833,2],[896,1],[898,2],[960,1],[994,2],[997,3],[1001,1]]},"45":{"position":[[819,1],[831,1],[858,2],[951,2],[1017,1],[1079,3]]},"47":{"position":[[345,1],[424,1],[484,1],[558,1],[579,1],[581,2],[584,3],[588,1],[609,1]]},"51":{"position":[[506,1],[518,1]]},"53":{"position":[[979,1],[1000,1],[1038,2],[1057,1],[1059,1],[1082,1]]},"55":{"position":[[425,1],[437,1],[485,1]]},"57":{"position":[[289,1],[309,1]]},"59":{"position":[[289,1],[301,1],[328,2],[376,1],[490,1],[492,1],[494,3],[531,2]]},"67":{"position":[[114,1],[124,1],[174,2],[177,3],[205,1],[221,1],[257,1],[287,1],[311,1],[313,1]]},"69":{"position":[[502,1],[512,1],[562,2],[565,3],[598,1],[614,1],[632,1],[690,1],[692,2],[727,1],[773,1],[814,1],[816,1],[1061,1],[1071,1],[1105,1],[1123,1],[1160,2],[1200,2],[1203,3],[1267,1],[1281,1],[1335,2],[1382,1],[1411,1],[1413,1],[1415,2]]},"71":{"position":[[1015,1],[1059,1],[1114,2],[1140,1],[1192,1],[1224,1],[1255,1],[1257,1],[1259,1]]},"75":{"position":[[289,1],[310,1],[360,1],[422,2],[425,3],[453,1],[483,1],[507,1],[509,1],[629,1]]},"77":{"position":[[114,1],[126,1],[160,1],[173,1],[210,1],[239,2],[242,13],[256,2],[281,2],[575,1],[587,1],[621,1],[645,1],[682,1]]},"85":{"position":[[232,1],[241,1]]},"87":{"position":[[679,1],[699,1],[733,1],[745,1],[771,2],[845,2],[888,1],[928,1],[936,1],[938,1],[962,2],[965,1],[985,3],[995,1],[1045,1],[1047,1],[1049,1],[1168,1]]},"89":{"position":[[961,1],[969,1],[1018,1],[1211,3],[1242,1],[1262,1],[1296,1],[1306,1],[1376,2],[1404,1],[1481,1],[1483,1],[1495,2],[1498,1],[1575,2],[1578,2],[1581,1],[1628,3],[1632,1],[1634,1],[1663,1],[1707,1],[1741,1],[1755,1],[1787,1],[1795,1],[1815,2],[1846,1],[1848,1],[1877,2],[1905,1],[1958,1],[2026,1],[2028,1],[2030,3],[2034,1],[2071,1],[2094,1],[2142,1],[2160,1],[2162,1],[2259,1],[2261,1],[2263,3],[2312,1],[2314,1],[2327,1]]},"97":{"position":[[210,1],[220,1],[274,2],[277,1],[279,2],[308,1],[331,1],[338,1],[367,1],[379,1],[422,1],[428,2],[431,1],[447,1],[559,1],[561,1],[712,1],[737,1],[771,1],[786,1],[842,1],[857,1],[921,2],[949,1],[1017,1],[1019,1],[1038,2],[1041,1],[1055,1],[1116,2],[1164,1],[1166,1]]},"101":{"position":[[587,1]]},"105":{"position":[[274,1],[286,1],[337,1],[350,3],[371,1],[386,1],[410,1],[412,1],[414,2],[444,1],[454,1],[506,1],[551,1],[588,2],[597,1],[632,1],[634,1],[636,2]]},"107":{"position":[[135,1],[148,1],[201,1],[221,2],[224,10],[235,2],[688,1],[700,1],[734,1],[747,1],[818,1]]},"109":{"position":[[272,1],[284,1],[335,1],[373,4],[403,1],[424,1],[448,2]]},"111":{"position":[[816,1],[826,1],[878,2],[910,1],[929,2],[932,2],[935,1],[967,1],[1012,1],[1026,1],[1066,2],[1069,1],[1119,3],[1149,1],[1151,1],[1256,1],[1266,1],[1300,1],[1319,1],[1403,1],[1454,2],[1469,1],[1501,1],[1503,1]]},"115":{"position":[[57,1],[65,1],[113,1]]},"117":{"position":[[77,1],[87,1],[121,1],[131,1],[201,1],[240,2],[256,1],[285,1],[287,1]]},"119":{"position":[[192,1],[204,1],[238,1],[251,1],[282,1],[292,1],[384,2],[387,3],[473,1],[649,1],[685,2],[688,1]]},"125":{"position":[[572,1],[595,1],[638,2],[641,1],[839,1],[846,1],[903,1],[926,1],[972,1],[987,1],[1022,1],[1024,2],[1027,3],[1031,1],[1033,1],[1152,1],[1164,1],[1198,1],[1205,1],[1246,1],[1277,1],[1307,1],[1364,1],[1429,2],[1432,3],[1436,1],[1723,2],[1726,3],[1750,1],[1784,1],[1811,2],[1815,1]]}}}],["100",{"_index":729,"t":{"87":{"position":[[407,4]]}}}],["17",{"_index":605,"t":{"65":{"position":[[607,5]]}}}],["2.0",{"_index":1132,"t":{"148":{"position":[[71,4]]}}}],["2015",{"_index":920,"t":{"122":{"position":[[30,4]]}}}],["2021",{"_index":921,"t":{"122":{"position":[[35,4]]}}}],["2023",{"_index":923,"t":{"122":{"position":[[64,4]]}}}],["8080",{"_index":208,"t":{"16":{"position":[[641,5]]}}}],["_map",{"_index":280,"t":{"20":{"position":[[653,4]]}}}],["abil",{"_index":312,"t":{"25":{"position":[[104,7]]},"125":{"position":[[229,7],[726,7]]}}}],["abov",{"_index":84,"t":{"4":{"position":[[737,6]]},"10":{"position":[[33,6]]},"37":{"position":[[15,5]]},"39":{"position":[[833,5],[1367,5]]},"41":{"position":[[456,5]]},"43":{"position":[[298,5]]},"45":{"position":[[1090,5],[1238,5]]},"53":{"position":[[1576,5]]},"55":{"position":[[15,6]]},"69":{"position":[[1909,5]]},"73":{"position":[[824,5]]},"77":{"position":[[549,6]]},"85":{"position":[[355,5],[476,5]]},"87":{"position":[[1147,6],[1272,5]]},"91":{"position":[[404,6]]},"99":{"position":[[419,6]]},"105":{"position":[[943,5]]},"107":{"position":[[16,6]]},"109":{"position":[[222,5],[703,5],[799,5]]},"122":{"position":[[553,5]]}}}],["abstract",{"_index":79,"t":{"4":{"position":[[642,8]]},"73":{"position":[[999,9]]}}}],["abus",{"_index":1090,"t":{"136":{"position":[[13,8]]}}}],["accept",{"_index":897,"t":{"115":{"position":[[256,7],[363,9]]},"130":{"position":[[236,9],[268,9]]},"132":{"position":[[80,10]]}}}],["access",{"_index":748,"t":{"89":{"position":[[629,6]]},"125":{"position":[[1683,6]]}}}],["accompani",{"_index":452,"t":{"45":{"position":[[507,9]]}}}],["accomplish",{"_index":967,"t":{"125":{"position":[[111,10]]}}}],["accord",{"_index":900,"t":{"115":{"position":[[485,9]]}}}],["account",{"_index":1087,"t":{"134":{"position":[[271,8]]}}}],["achiev",{"_index":269,"t":{"20":{"position":[[300,7]]},"57":{"position":[[268,7]]}}}],["act",{"_index":1026,"t":{"128":{"position":[[411,3]]},"134":{"position":[[283,6]]}}}],["action",{"_index":567,"t":{"59":{"position":[[710,8]]},"122":{"position":[[996,6]]},"125":{"position":[[760,8]]},"132":{"position":[[146,6]]},"138":{"position":[[104,6]]},"142":{"position":[[69,8]]}}}],["activ",{"_index":173,"t":{"12":{"position":[[623,6]]}}}],["actual",{"_index":320,"t":{"25":{"position":[[380,8]]},"53":{"position":[[1691,6]]},"95":{"position":[[212,8]]},"107":{"position":[[500,8]]}}}],["ad",{"_index":342,"t":{"29":{"position":[[170,5]]},"53":{"position":[[293,5]]},"55":{"position":[[586,6]]},"87":{"position":[[328,6]]},"103":{"position":[[30,5]]}}}],["adapt",{"_index":1130,"t":{"148":{"position":[[24,7]]}}}],["add",{"_index":332,"t":{"27":{"position":[[251,3]]},"75":{"position":[[533,3]]},"87":{"position":[[386,3]]},"115":{"position":[[567,3]]},"125":{"position":[[778,3]]}}}],["addit",{"_index":874,"t":{"109":{"position":[[720,10]]}}}],["addition",{"_index":668,"t":{"73":{"position":[[972,13]]}}}],["address",{"_index":307,"t":{"22":{"position":[[1203,7]]},"130":{"position":[[770,8]]},"134":{"position":[[225,8]]}}}],["adduser(jo",{"_index":990,"t":{"125":{"position":[[1438,13]]}}}],["adduser(rick",{"_index":991,"t":{"125":{"position":[[1452,14]]}}}],["adduser(valu",{"_index":989,"t":{"125":{"position":[[1343,14]]}}}],["adjac",{"_index":875,"t":{"109":{"position":[[741,8]]}}}],["administr",{"_index":976,"t":{"125":{"position":[[745,14]]}}}],["advanc",{"_index":1051,"t":{"130":{"position":[[574,8]]}}}],["advantag",{"_index":309,"t":{"25":{"position":[[12,9]]},"81":{"position":[[193,9]]},"109":{"position":[[98,9]]},"125":{"position":[[1476,9]]}}}],["advis",{"_index":121,"t":{"10":{"position":[[25,7]]}}}],["affect",{"_index":833,"t":{"101":{"position":[[147,6],[208,6]]},"130":{"position":[[318,8]]}}}],["ag",{"_index":1006,"t":{"128":{"position":[[144,4]]}}}],["again",{"_index":457,"t":{"45":{"position":[[972,6]]}}}],["against",{"_index":502,"t":{"53":{"position":[[258,7]]}}}],["aggress",{"_index":1128,"t":{"146":{"position":[[155,10]]}}}],["aim",{"_index":655,"t":{"73":{"position":[[218,3]]}}}],["align",{"_index":1077,"t":{"132":{"position":[[408,7]]}}}],["allow",{"_index":148,"t":{"12":{"position":[[178,5],[491,5]]},"45":{"position":[[380,5]]},"51":{"position":[[324,6]]},"71":{"position":[[318,6]]},"73":{"position":[[749,8],[1340,6]]},"79":{"position":[[143,6]]},"81":{"position":[[471,5]]},"87":{"position":[[1115,5]]},"91":{"position":[[20,6]]},"99":{"position":[[240,6],[449,7]]},"107":{"position":[[592,6]]},"111":{"position":[[162,8]]},"125":{"position":[[240,5]]},"144":{"position":[[377,7]]}}}],["allowsamepar",{"_index":450,"t":{"45":{"position":[[361,18],[603,16],[1060,18]]}}}],["alongsid",{"_index":805,"t":{"97":{"position":[[151,9]]}}}],["alreadi",{"_index":126,"t":{"10":{"position":[[121,8]]},"29":{"position":[[243,7]]},"37":{"position":[[217,7]]},"39":{"position":[[398,7],[631,7]]},"41":{"position":[[421,7],[563,7]]},"45":{"position":[[135,7],[1160,7]]},"81":{"position":[[798,7]]}}}],["altogeth",{"_index":157,"t":{"12":{"position":[[288,11]]}}}],["alway",{"_index":160,"t":{"12":{"position":[[345,6]]},"43":{"position":[[210,6]]},"47":{"position":[[144,6]]},"51":{"position":[[304,6]]},"81":{"position":[[71,6]]},"85":{"position":[[453,6]]},"87":{"position":[[363,6]]},"111":{"position":[[478,6],[1614,6]]}}}],["and/or",{"_index":942,"t":{"122":{"position":[[410,6]]}}}],["angular",{"_index":705,"t":{"81":{"position":[[773,8]]},"89":{"position":[[13,8]]}}}],["angular'",{"_index":700,"t":{"81":{"position":[[621,9]]}}}],["anoth",{"_index":289,"t":{"22":{"position":[[171,7]]},"45":{"position":[[100,7]]},"69":{"position":[[86,7],[249,7]]},"83":{"position":[[52,7]]},"107":{"position":[[563,7]]}}}],["answer",{"_index":1138,"t":{"148":{"position":[[255,7]]}}}],["anti",{"_index":158,"t":{"12":{"position":[[315,4]]},"71":{"position":[[616,4]]}}}],["api",{"_index":276,"t":{"20":{"position":[[484,4]]},"31":{"position":[[0,3]]},"33":{"position":[[0,3]]},"35":{"position":[[0,3]]},"53":{"position":[[2253,4]]},"55":{"position":[[134,3]]},"57":{"position":[[229,3]]},"61":{"position":[[145,3]]},"69":{"position":[[380,4]]},"97":{"position":[[91,4],[107,3],[598,3]]},"99":{"position":[[229,4]]},"105":{"position":[[853,3]]}}}],["apolog",{"_index":1043,"t":{"130":{"position":[[297,11]]},"140":{"position":[[303,7]]}}}],["app",{"_index":255,"t":{"18":{"position":[[895,4]]},"25":{"position":[[255,4]]},"69":{"position":[[1427,6]]},"71":{"position":[[52,3]]},"73":{"position":[[532,4],[1693,4]]},"87":{"position":[[1014,3]]},"99":{"position":[[537,4]]}}}],["app'",{"_index":183,"t":{"14":{"position":[[220,5]]},"73":{"position":[[623,5]]}}}],["app_token",{"_index":732,"t":{"87":{"position":[[735,9],[780,9],[821,11],[1300,9],[1501,9]]}}}],["appear",{"_index":1021,"t":{"128":{"position":[[334,11]]}}}],["append",{"_index":384,"t":{"39":{"position":[[551,6]]}}}],["appli",{"_index":744,"t":{"89":{"position":[[42,7]]},"134":{"position":[[21,7],[67,7]]}}}],["applic",{"_index":1,"t":{"2":{"position":[[15,11]]},"4":{"position":[[81,11],[655,11]]},"6":{"position":[[170,11],[237,12]]},"16":{"position":[[21,11]]},"18":{"position":[[206,13],[234,11]]},"20":{"position":[[23,12]]},"41":{"position":[[825,11]]},"43":{"position":[[118,11],[923,11]]},"49":{"position":[[140,11]]},"53":{"position":[[1994,12],[2074,12]]},"61":{"position":[[77,13],[251,12]]},"65":{"position":[[327,11],[446,11]]},"69":{"position":[[231,11],[847,11],[1636,11]]},"73":{"position":[[959,12],[1057,11]]},"89":{"position":[[179,11],[545,11]]},"95":{"position":[[496,11]]},"101":{"position":[[158,12]]},"111":{"position":[[306,12],[664,11],[1832,12]]},"125":{"position":[[369,11]]}}}],["application'",{"_index":637,"t":{"71":{"position":[[221,13]]},"101":{"position":[[220,13]]}}}],["appoint",{"_index":1088,"t":{"134":{"position":[[296,9]]}}}],["approach",{"_index":992,"t":{"125":{"position":[[1494,8]]}}}],["appropri",{"_index":464,"t":{"47":{"position":[[102,12]]},"132":{"position":[[114,11],[500,12]]}}}],["apptoken",{"_index":735,"t":{"87":{"position":[[911,9]]}}}],["aptli",{"_index":487,"t":{"51":{"position":[[53,5]]}}}],["archiv",{"_index":644,"t":{"71":{"position":[[630,9]]},"73":{"position":[[401,9],[499,9]]}}}],["aren't",{"_index":593,"t":{"65":{"position":[[21,6]]},"119":{"position":[[544,6]]}}}],["argument",{"_index":848,"t":{"105":{"position":[[822,10]]}}}],["argument'",{"_index":430,"t":{"43":{"position":[[86,10]]}}}],["aris",{"_index":453,"t":{"45":{"position":[[580,7],[642,6]]},"122":{"position":[[1035,7]]}}}],["around",{"_index":902,"t":{"115":{"position":[[538,6]]},"140":{"position":[[201,6]]}}}],["array",{"_index":847,"t":{"105":{"position":[[732,6]]}}}],["asid",{"_index":339,"t":{"29":{"position":[[107,5]]}}}],["ask",{"_index":505,"t":{"53":{"position":[[522,3]]}}}],["assert(newcontainer.par",{"_index":361,"t":{"35":{"position":[[272,26]]}}}],["assert(newnewcontainer.par",{"_index":365,"t":{"35":{"position":[[431,29]]}}}],["associ",{"_index":934,"t":{"122":{"position":[[214,10]]}}}],["assum",{"_index":492,"t":{"51":{"position":[[240,7]]}}}],["async",{"_index":202,"t":{"16":{"position":[[504,5]]},"18":{"position":[[582,5]]},"20":{"position":[[687,5],[736,5]]},"69":{"position":[[674,5],[736,5],[1319,5],[1345,5]]},"89":{"position":[[2036,5]]},"97":{"position":[[1021,5]]}}}],["asynchron",{"_index":278,"t":{"20":{"position":[[518,13]]},"59":{"position":[[266,15]]}}}],["attach",{"_index":488,"t":{"51":{"position":[[113,8]]},"75":{"position":[[25,8]]},"111":{"position":[[338,8]]}}}],["attack",{"_index":1057,"t":{"130":{"position":[[665,7]]}}}],["attent",{"_index":1050,"t":{"130":{"position":[[561,9]]}}}],["author",{"_index":959,"t":{"122":{"position":[[900,7]]}}}],["automat",{"_index":250,"t":{"18":{"position":[[714,14]]},"109":{"position":[[821,13]]}}}],["avail",{"_index":554,"t":{"57":{"position":[[186,9]]},"87":{"position":[[475,9]]},"111":{"position":[[363,9]]},"148":{"position":[[76,9],[385,9]]}}}],["avoid",{"_index":642,"t":{"71":{"position":[[461,7]]},"142":{"position":[[306,8]]}}}],["await",{"_index":779,"t":{"89":{"position":[[2164,5]]}}}],["away",{"_index":80,"t":{"4":{"position":[[673,4]]},"73":{"position":[[1009,4]]}}}],["ban",{"_index":1123,"t":{"142":{"position":[[455,4]]},"144":{"position":[[131,3],[451,4]]},"146":{"position":[[242,3]]}}}],["base",{"_index":402,"t":{"39":{"position":[[1224,5]]},"73":{"position":[[1320,5]]}}}],["basic",{"_index":0,"t":{"2":{"position":[[9,5],[100,5]]},"125":{"position":[[1872,5]]}}}],["be",{"_index":249,"t":{"18":{"position":[[655,5]]},"53":{"position":[[1376,5]]},"107":{"position":[[277,5]]},"111":{"position":[[1701,5]]},"130":{"position":[[146,5]]}}}],["becom",{"_index":647,"t":{"71":{"position":[[704,6]]},"107":{"position":[[406,6]]}}}],["befor",{"_index":629,"t":{"69":{"position":[[1826,6]]},"87":{"position":[[1385,6]]},"117":{"position":[[382,6]]},"119":{"position":[[66,6]]}}}],["beforehand",{"_index":39,"t":{"2":{"position":[[473,11]]},"14":{"position":[[527,11]]}}}],["begin",{"_index":47,"t":{"4":{"position":[[3,6]]}}}],["behavior",{"_index":1033,"t":{"130":{"position":[[12,8],[489,8]]},"132":{"position":[[91,8],[172,8]]},"136":{"position":[[59,8]]},"140":{"position":[[57,8],[266,8]]},"142":{"position":[[133,9]]},"144":{"position":[[96,9]]},"146":{"position":[[113,9]]}}}],["behaviour",{"_index":546,"t":{"55":{"position":[[116,9]]},"75":{"position":[[87,9]]},"83":{"position":[[456,9]]},"95":{"position":[[198,9]]},"99":{"position":[[168,10]]}}}],["below",{"_index":30,"t":{"2":{"position":[[362,6]]},"14":{"position":[[416,6]]},"20":{"position":[[241,5]]},"25":{"position":[[506,6]]},"29":{"position":[[357,6]]},"41":{"position":[[171,5]]},"43":{"position":[[253,6],[496,5]]},"45":{"position":[[805,6]]},"53":{"position":[[2280,6]]},"65":{"position":[[689,5]]},"83":{"position":[[581,5]]},"109":{"position":[[539,5]]},"125":{"position":[[308,5],[1127,6]]}}}],["best",{"_index":570,"t":{"59":{"position":[[846,4]]},"130":{"position":[[397,4]]}}}],["beta",{"_index":579,"t":{"61":{"position":[[131,5]]}}}],["better",{"_index":397,"t":{"39":{"position":[[1158,6]]},"99":{"position":[[192,6]]},"109":{"position":[[637,6]]}}}],["bind",{"_index":495,"t":{"51":{"position":[[338,4]]},"61":{"position":[[9,8],[377,8]]},"75":{"position":[[220,4]]}}}],["bit",{"_index":712,"t":{"85":{"position":[[123,4]]}}}],["bitmask",{"_index":716,"t":{"85":{"position":[[203,8],[288,8],[375,7],[518,7]]}}}],["bitwis",{"_index":714,"t":{"85":{"position":[[173,7]]}}}],["blog",{"_index":747,"t":{"89":{"position":[[535,5],[601,5]]}}}],["bodi",{"_index":752,"t":{"89":{"position":[[806,4],[916,6],[1189,4]]},"128":{"position":[[149,4]]}}}],["bootstrap",{"_index":247,"t":{"18":{"position":[[588,11]]},"89":{"position":[[1485,9]]},"111":{"position":[[1457,11]]}}}],["both",{"_index":349,"t":{"31":{"position":[[57,4]]}}}],["bound",{"_index":493,"t":{"51":{"position":[[261,5]]},"53":{"position":[[1521,5]]},"55":{"position":[[39,5]]},"59":{"position":[[906,5]]}}}],["break",{"_index":224,"t":{"16":{"position":[[1033,6],[1101,6]]},"22":{"position":[[709,6],[854,6],[922,6]]},"71":{"position":[[70,8]]}}}],["breviti",{"_index":908,"t":{"119":{"position":[[108,8]]}}}],["broadli",{"_index":889,"t":{"111":{"position":[[1776,7]]}}}],["brought",{"_index":652,"t":{"73":{"position":[[131,7]]}}}],["bubbl",{"_index":926,"t":{"122":{"position":[[107,8]]}}}],["bug",{"_index":581,"t":{"61":{"position":[[205,5]]}}}],["build",{"_index":725,"t":{"87":{"position":[[222,8]]}}}],["button",{"_index":755,"t":{"89":{"position":[[851,6]]}}}],["button').addeventlistener('click",{"_index":769,"t":{"89":{"position":[[1540,34]]}}}],["c",{"_index":919,"t":{"122":{"position":[[26,3],[60,3]]}}}],["cach",{"_index":548,"t":{"55":{"position":[[302,6]]},"95":{"position":[[42,6]]}}}],["calcul",{"_index":797,"t":{"95":{"position":[[389,13]]},"101":{"position":[[476,12]]}}}],["call",{"_index":91,"t":{"6":{"position":[[192,4]]},"8":{"position":[[103,5]]},"18":{"position":[[46,6]]},"39":{"position":[[360,4],[591,4]]},"41":{"position":[[462,4]]},"43":{"position":[[862,4]]},"45":{"position":[[1116,4],[1244,4]]},"47":{"position":[[928,5]]},"65":{"position":[[69,6],[120,6],[266,6],[575,4]]},"71":{"position":[[493,6]]},"85":{"position":[[106,7]]},"95":{"position":[[65,5]]},"99":{"position":[[380,5]]},"109":{"position":[[499,4]]},"125":{"position":[[142,5]]}}}],["caller",{"_index":526,"t":{"53":{"position":[[1437,7]]}}}],["can't",{"_index":507,"t":{"53":{"position":[[593,5]]},"69":{"position":[[1621,5]]},"125":{"position":[[1667,5]]}}}],["carefulli",{"_index":601,"t":{"65":{"position":[[458,9]]},"89":{"position":[[473,10]]}}}],["case",{"_index":221,"t":{"16":{"position":[[969,4]]},"22":{"position":[[571,4],[716,4]]},"39":{"position":[[495,6]]},"43":{"position":[[8,6]]},"45":{"position":[[8,6],[159,5],[595,4]]},"47":{"position":[[71,5]]},"53":{"position":[[500,6]]},"57":{"position":[[75,5]]},"59":{"position":[[8,6],[176,5]]},"71":{"position":[[580,6]]},"73":{"position":[[1663,5]]},"75":{"position":[[677,5]]},"79":{"position":[[8,6],[114,6]]},"87":{"position":[[1334,4]]},"89":{"position":[[168,4]]},"95":{"position":[[186,6],[250,5]]},"101":{"position":[[452,5]]},"111":{"position":[[154,4],[1815,4]]}}}],["caus",{"_index":740,"t":{"87":{"position":[[1241,7]]}}}],["caution",{"_index":569,"t":{"59":{"position":[[823,7]]},"65":{"position":[[289,7]]},"71":{"position":[[389,7]]},"87":{"position":[[1051,7]]},"89":{"position":[[291,7]]},"105":{"position":[[639,7]]}}}],["centr",{"_index":901,"t":{"115":{"position":[[530,7]]}}}],["central",{"_index":667,"t":{"73":{"position":[[787,7]]},"97":{"position":[[1248,7]]}}}],["certain",{"_index":370,"t":{"37":{"position":[[157,7]]},"71":{"position":[[155,7],[553,7]]},"73":{"position":[[82,7]]},"75":{"position":[[601,7]]},"81":{"position":[[509,7]]},"85":{"position":[[39,7]]},"89":{"position":[[350,7]]}}}],["certainli",{"_index":709,"t":{"83":{"position":[[518,9]]}}}],["chain",{"_index":707,"t":{"83":{"position":[[336,5]]}}}],["chang",{"_index":463,"t":{"47":{"position":[[35,6]]},"61":{"position":[[163,6],[362,8]]},"73":{"position":[[1138,6]]},"75":{"position":[[209,7],[691,7]]},"85":{"position":[[571,6]]},"89":{"position":[[394,6]]},"105":{"position":[[922,8]]},"109":{"position":[[192,6]]}}}],["channel",{"_index":1119,"t":{"142":{"position":[[368,8]]}}}],["characterist",{"_index":380,"t":{"39":{"position":[[136,16]]},"128":{"position":[[208,16]]}}}],["charg",{"_index":930,"t":{"122":{"position":[[154,7]]}}}],["chart",{"_index":537,"t":{"53":{"position":[[1932,5]]},"83":{"position":[[423,5]]},"91":{"position":[[320,5],[393,5]]}}}],["check",{"_index":445,"t":{"45":{"position":[[85,6],[662,5]]},"71":{"position":[[141,5]]},"73":{"position":[[881,5]]},"83":{"position":[[139,5],[269,6],[294,6]]},"107":{"position":[[352,8]]}}}],["child",{"_index":351,"t":{"31":{"position":[[75,5],[275,5]]},"35":{"position":[[87,5],[180,5],[340,5],[351,6]]},"39":{"position":[[286,5],[736,5],[1603,5]]},"45":{"position":[[870,5]]},"53":{"position":[[955,5],[1158,5],[1396,5],[1607,5],[1743,5]]},"55":{"position":[[367,5],[613,5]]},"89":{"position":[[673,5]]},"111":{"position":[[1591,5]]}}}],["childcontain",{"_index":520,"t":{"53":{"position":[[1067,14]]},"89":{"position":[[2079,14]]}}}],["childcontainer.get(myservic",{"_index":521,"t":{"53":{"position":[[1123,30]]}}}],["childcontainer.get(pageservice).bootstrap",{"_index":782,"t":{"89":{"position":[[2267,44]]}}}],["childdontainer.set",{"_index":781,"t":{"89":{"position":[[2186,20]]}}}],["choos",{"_index":392,"t":{"39":{"position":[[954,6]]}}}],["circumst",{"_index":503,"t":{"53":{"position":[[418,14]]}}}],["claim",{"_index":962,"t":{"122":{"position":[[947,6]]}}}],["clarifi",{"_index":1063,"t":{"132":{"position":[[38,10]]}}}],["clariti",{"_index":1109,"t":{"140":{"position":[[193,7]]}}}],["class",{"_index":63,"t":{"4":{"position":[[269,5]]},"6":{"position":[[399,5]]},"10":{"position":[[172,6]]},"12":{"position":[[678,5]]},"16":{"position":[[454,5]]},"18":{"position":[[510,5]]},"22":{"position":[[309,5]]},"47":{"position":[[214,5],[458,5],[733,5]]},"53":{"position":[[1041,5]]},"67":{"position":[[188,5]]},"69":{"position":[[576,5],[1214,5]]},"71":{"position":[[1124,5]]},"73":{"position":[[1463,5]]},"75":{"position":[[436,5]]},"87":{"position":[[855,5]]},"89":{"position":[[903,5],[1386,5],[1887,5]]},"97":{"position":[[289,5],[931,5]]},"105":{"position":[[354,5],[533,5]]},"107":{"position":[[70,6]]},"109":{"position":[[48,7],[592,7]]},"111":{"position":[[944,5],[1385,5]]},"115":{"position":[[241,6]]},"117":{"position":[[184,5]]},"119":{"position":[[634,5]]},"125":{"position":[[554,5],[876,5],[1817,6],[1830,5]]},"146":{"position":[[193,7]]}}}],["cleverli",{"_index":857,"t":{"107":{"position":[[466,9]]}}}],["click",{"_index":756,"t":{"89":{"position":[[870,8]]}}}],["close",{"_index":162,"t":{"12":{"position":[[369,5],[505,7]]},"16":{"position":[[252,7]]}}}],["code",{"_index":35,"t":{"2":{"position":[[437,4]]},"14":{"position":[[491,4]]},"18":{"position":[[261,4],[918,5]]},"65":{"position":[[339,5]]},"77":{"position":[[544,4]]},"109":{"position":[[685,5]]},"113":{"position":[[258,5]]},"119":{"position":[[442,5]]},"132":{"position":[[345,5],[424,4]]},"134":{"position":[[5,4]]},"138":{"position":[[142,4]]},"142":{"position":[[243,4]]},"144":{"position":[[357,4]]},"148":{"position":[[5,4],[215,4],[294,4]]}}}],["collid",{"_index":407,"t":{"39":{"position":[[1333,8]]}}}],["combin",{"_index":787,"t":{"91":{"position":[[162,8]]},"93":{"position":[[84,8]]}}}],["come",{"_index":856,"t":{"107":{"position":[[456,5]]}}}],["command",{"_index":44,"t":{"2":{"position":[[558,7]]},"14":{"position":[[612,7]]}}}],["comment",{"_index":1055,"t":{"130":{"position":[[629,9]]},"132":{"position":[[326,9]]}}}],["commit",{"_index":1075,"t":{"132":{"position":[[336,8]]}}}],["common",{"_index":1139,"t":{"148":{"position":[[266,6]]}}}],["commun",{"_index":1003,"t":{"128":{"position":[[77,9],[507,10]]},"130":{"position":[[72,9],[454,9]]},"132":{"position":[[0,9],[247,9],[450,11]]},"134":{"position":[[40,9],[125,9],[182,9]]},"136":{"position":[[91,9],[247,9]]},"138":{"position":[[0,9],[36,9]]},"140":{"position":[[0,9],[108,10],[164,9]]},"142":{"position":[[0,9],[331,9]]},"144":{"position":[[0,9],[41,9],[174,13],[197,9]]},"146":{"position":[[0,9],[58,9],[293,10]]},"148":{"position":[[160,9]]}}}],["compartmentalis",{"_index":541,"t":{"53":{"position":[[2104,16]]}}}],["complaint",{"_index":1093,"t":{"136":{"position":[[177,10]]}}}],["complet",{"_index":379,"t":{"39":{"position":[[115,10]]}}}],["complic",{"_index":796,"t":{"95":{"position":[[377,11]]}}}],["compon",{"_index":314,"t":{"25":{"position":[[131,10]]}}}],["comput",{"_index":636,"t":{"71":{"position":[[201,12]]},"101":{"position":[[80,8],[99,13]]}}}],["concept",{"_index":75,"t":{"4":{"position":[[534,7]]},"65":{"position":[[258,7]]},"73":{"position":[[29,8],[296,8]]},"85":{"position":[[15,7]]}}}],["concret",{"_index":517,"t":{"53":{"position":[[803,8]]}}}],["condit",{"_index":947,"t":{"122":{"position":[[537,11]]}}}],["conduct",{"_index":1060,"t":{"130":{"position":[[819,7]]},"132":{"position":[[432,8]]},"134":{"position":[[13,7]]},"138":{"position":[[150,8]]},"142":{"position":[[251,8]]},"144":{"position":[[365,8]]},"148":{"position":[[13,7],[223,7],[302,8]]}}}],["configur",{"_index":108,"t":{"6":{"position":[[825,14]]},"83":{"position":[[487,15]]},"87":{"position":[[265,13],[752,18]]},"111":{"position":[[573,13]]}}}],["configurationreaderservic",{"_index":734,"t":{"87":{"position":[[861,26]]}}}],["conflict",{"_index":373,"t":{"37":{"position":[[235,9]]},"39":{"position":[[878,11],[926,8],[974,9],[1110,9],[1145,10]]},"41":{"position":[[690,8]]},"45":{"position":[[36,8],[219,8],[253,8],[317,9],[386,9],[476,8],[571,8],[625,8],[694,11],[1213,8]]}}}],["conflictdefinit",{"_index":458,"t":{"45":{"position":[[1040,19]]}}}],["conjoin",{"_index":713,"t":{"85":{"position":[[154,9]]}}}],["connect",{"_index":168,"t":{"12":{"position":[[472,11],[516,11]]},"14":{"position":[[201,11]]},"16":{"position":[[621,11]]},"69":{"position":[[167,10],[642,11],[654,11],[680,9],[695,7],[988,11],[1325,9],[1562,10],[1688,11]]},"73":{"position":[[604,11]]},"95":{"position":[[440,13]]},"122":{"position":[[1062,10]]}}}],["consequ",{"_index":1105,"t":{"138":{"position":[[83,12]]},"140":{"position":[[119,12]]},"142":{"position":[[78,12],[106,12]]},"144":{"position":[[106,12]]},"146":{"position":[[217,12]]}}}],["consid",{"_index":318,"t":{"25":{"position":[[274,8]]},"39":{"position":[[153,8]]},"41":{"position":[[0,8]]},"61":{"position":[[271,8]]},"65":{"position":[[433,8]]},"69":{"position":[[426,8],[1737,8]]},"71":{"position":[[414,10],[602,10]]},"89":{"position":[[498,8]]},"93":{"position":[[191,8]]},"101":{"position":[[458,8]]},"111":{"position":[[1784,10]]},"125":{"position":[[342,8]]},"130":{"position":[[853,10]]}}}],["consist",{"_index":189,"t":{"16":{"position":[[45,7]]},"61":{"position":[[386,7]]}}}],["consol",{"_index":54,"t":{"4":{"position":[[122,8]]},"6":{"position":[[616,8]]},"67":{"position":[[414,8]]},"87":{"position":[[1479,8]]},"115":{"position":[[162,11]]}}}],["console.log('dispos",{"_index":563,"t":{"59":{"position":[[534,26]]}}}],["console.log('hello",{"_index":651,"t":{"71":{"position":[[1226,18]]}}}],["console.log('web",{"_index":253,"t":{"18":{"position":[[843,16]]}}}],["console.log(getus",{"_index":996,"t":{"125":{"position":[[1786,24]]}}}],["console.log(messag",{"_index":68,"t":{"4":{"position":[[318,21]]},"67":{"position":[[289,21]]},"75":{"position":[[485,21]]},"105":{"position":[[388,21]]},"109":{"position":[[426,21]]}}}],["console.log(this.messag",{"_index":907,"t":{"117":{"position":[[258,26]]}}}],["console.warn('an",{"_index":738,"t":{"87":{"position":[[997,16]]}}}],["const",{"_index":116,"t":{"8":{"position":[[229,5]]},"16":{"position":[[571,5]]},"18":{"position":[[760,5]]},"20":{"position":[[621,5]]},"22":{"position":[[486,5]]},"35":{"position":[[212,5],[358,5]]},"39":{"position":[[1412,5],[1464,5]]},"41":{"position":[[202,5],[250,5],[321,5],[846,5]]},"43":{"position":[[527,5],[575,5],[713,5],[944,5]]},"47":{"position":[[590,5]]},"53":{"position":[[1061,5]]},"55":{"position":[[464,5]]},"59":{"position":[[355,5]]},"75":{"position":[[344,5]]},"77":{"position":[[197,5],[669,5]]},"89":{"position":[[1003,5],[2073,5],[2136,5],[2316,5]]},"97":{"position":[[433,5],[1043,5]]},"105":{"position":[[320,5],[488,5]]},"107":{"position":[[172,5],[771,5]]},"109":{"position":[[318,5]]},"115":{"position":[[99,5]]},"125":{"position":[[1235,5],[1267,5],[1296,5]]}}}],["constrain",{"_index":711,"t":{"85":{"position":[[26,12]]},"93":{"position":[[138,9]]}}}],["constraint",{"_index":695,"t":{"81":{"position":[[447,11],[666,11],[828,12]]},"85":{"position":[[328,12]]},"87":{"position":[[346,10]]},"89":{"position":[[2474,12]]},"91":{"position":[[9,10],[131,10]]},"93":{"position":[[9,10]]}}}],["construct",{"_index":718,"t":{"85":{"position":[[361,9],[503,12]]},"130":{"position":[[246,12]]}}}],["constructor",{"_index":477,"t":{"47":{"position":[[758,11],[828,12]]},"67":{"position":[[207,13],[354,11]]},"69":{"position":[[600,13]]},"87":{"position":[[890,11]]},"89":{"position":[[1406,11],[1907,11]]},"97":{"position":[[951,11]]}}}],["constructor(id",{"_index":473,"t":{"47":{"position":[[493,15]]}}}],["constructor(priv",{"_index":96,"t":{"6":{"position":[[426,19]]},"18":{"position":[[530,19]]},"22":{"position":[[341,19]]},"71":{"position":[[1142,19]]},"105":{"position":[[560,19]]},"111":{"position":[[1405,19]]},"117":{"position":[[203,19]]}}}],["constructor(publ",{"_index":915,"t":{"119":{"position":[[651,18]]},"125":{"position":[[605,18],[939,18]]}}}],["consum",{"_index":149,"t":{"12":{"position":[[188,8]]},"73":{"position":[[1507,9]]},"99":{"position":[[123,9]]},"117":{"position":[[333,7]]}}}],["contain",{"_index":51,"t":{"4":{"position":[[69,7]]},"8":{"position":[[146,9]]},"16":{"position":[[179,8]]},"18":{"position":[[293,10],[381,9]]},"27":{"position":[[106,10]]},"29":{"position":[[26,9],[80,10],[125,11],[155,10],[214,9],[311,10]]},"31":{"position":[[81,11],[130,9],[189,10],[229,11],[260,9],[296,10],[343,11],[355,11],[449,10]]},"33":{"position":[[64,11]]},"35":{"position":[[66,9],[131,9],[201,10],[259,12],[303,11],[418,12]]},"37":{"position":[[195,9],[247,9]]},"39":{"position":[[78,9],[219,10],[255,11],[307,10],[340,12],[420,9],[464,9],[609,9],[669,10],[705,11],[757,10],[790,11],[890,9],[1049,10],[1444,12],[1503,12],[1538,10],[1624,10]]},"41":{"position":[[105,9],[191,10],[327,9],[441,10],[484,11],[582,10],[593,11],[716,9]]},"43":{"position":[[34,9],[140,9],[197,9],[430,9],[516,10],[702,10]]},"45":{"position":[[108,9],[401,10],[426,9],[706,9],[821,9],[876,9],[901,10],[938,12],[1005,11]]},"47":{"position":[[46,10],[84,10],[131,9],[283,10],[643,12],[723,9],[858,9],[917,10]]},"49":{"position":[[0,10],[164,9]]},"51":{"position":[[77,10],[282,10],[365,11],[442,10],[476,9],[508,9]]},"53":{"position":[[47,9],[151,10],[173,9],[277,10],[367,9],[549,10],[583,9],[894,10],[961,10],[981,10],[1110,12],[1164,9],[1259,10],[1402,9],[1534,10],[1613,9],[1675,11],[1749,10],[1830,10],[2036,10],[2157,11],[2179,9]]},"55":{"position":[[60,9],[324,10],[373,9],[398,10],[427,9],[513,12],[573,9],[619,9]]},"57":{"position":[[42,9],[120,9],[160,9],[203,10],[365,9]]},"59":{"position":[[43,9],[126,10],[256,9],[291,9],[344,10],[404,12],[584,10],[752,9],[881,10],[945,10],[976,9]]},"61":{"position":[[197,7]]},"63":{"position":[[97,9],[141,9]]},"71":{"position":[[235,10],[361,9],[872,10],[899,9],[1162,10]]},"73":{"position":[[433,10]]},"75":{"position":[[49,10],[252,10],[300,9],[350,9],[388,12],[412,9],[703,10]]},"77":{"position":[[49,10],[116,9],[342,10],[369,10],[425,10],[496,9],[577,9],[635,9]]},"81":{"position":[[206,9],[288,10],[364,9]]},"87":{"position":[[606,9],[1533,10],[1548,9]]},"89":{"position":[[89,9],[131,10],[210,9],[358,9],[679,9],[735,10],[781,10],[830,8],[1928,10]]},"91":{"position":[[43,9],[76,9],[211,9]]},"99":{"position":[[277,9]]},"111":{"position":[[381,10],[427,9],[1597,11]]},"113":{"position":[[81,10]]},"115":{"position":[[508,8]]},"117":{"position":[[407,10]]},"119":{"position":[[194,9]]},"125":{"position":[[81,10],[1154,9],[1597,10]]}}}],["container'",{"_index":559,"t":{"59":{"position":[[206,11]]}}}],["container.get",{"_index":547,"t":{"55":{"position":[[182,13]]},"65":{"position":[[80,14],[131,13]]},"71":{"position":[[993,14]]},"95":{"position":[[74,13]]},"99":{"position":[[389,14]]}}}],["container.get(logservic",{"_index":683,"t":{"77":{"position":[[212,26],[684,26]]}}}],["container.get(logservice).log",{"_index":910,"t":{"119":{"position":[[391,32]]}}}],["container.get(rootservic",{"_index":117,"t":{"8":{"position":[[249,27]]},"18":{"position":[[780,27]]},"89":{"position":[[2329,27]]}}}],["container.getmani",{"_index":791,"t":{"93":{"position":[[50,18]]}}}],["container.getmany(us",{"_index":995,"t":{"125":{"position":[[1759,24]]}}}],["container.has(myservic",{"_index":650,"t":{"71":{"position":[[1197,26]]}}}],["container.ofchild('mi",{"_index":360,"t":{"35":{"position":[[233,21]]},"39":{"position":[[318,21],[768,21]]},"45":{"position":[[912,21],[979,21]]},"53":{"position":[[1084,21]]},"55":{"position":[[487,21]]},"59":{"position":[[378,21]]},"75":{"position":[[362,21]]}}}],["container.set",{"_index":551,"t":{"55":{"position":[[633,14]]},"89":{"position":[[1960,15]]},"119":{"position":[[318,15]]},"125":{"position":[[1366,15]]}}}],["container.setvalue(start_tim",{"_index":422,"t":{"41":{"position":[[498,30]]}}}],["containeridentifi",{"_index":471,"t":{"47":{"position":[[404,19],[509,20]]}}}],["containerinst",{"_index":352,"t":{"31":{"position":[[111,18]]},"41":{"position":[[41,18]]},"43":{"position":[[366,18]]},"47":{"position":[[166,18],[347,18],[539,18],[794,17]]},"57":{"position":[[291,17]]},"71":{"position":[[1017,18],[1173,18]]},"89":{"position":[[1665,18],[1939,18]]}}}],["containerinstance.of",{"_index":479,"t":{"47":{"position":[[953,20]]}}}],["containerinstance.of('mi",{"_index":353,"t":{"31":{"position":[[200,24],[307,24]]},"39":{"position":[[230,24],[680,24]]},"57":{"position":[[336,24]]}}}],["containerinstance.of(my_contain",{"_index":412,"t":{"39":{"position":[[1549,34]]}}}],["containerinstance.of(my_second_contain",{"_index":413,"t":{"39":{"position":[[1635,42]]}}}],["containerinstance.of(value_contain",{"_index":421,"t":{"41":{"position":[[339,37],[729,38]]},"43":{"position":[[736,37]]}}}],["containerregistri",{"_index":469,"t":{"47":{"position":[[366,18]]}}}],["containerregistry.registercontainer(newcontain",{"_index":476,"t":{"47":{"position":[[656,50]]}}}],["context",{"_index":240,"t":{"18":{"position":[[277,7]]},"81":{"position":[[256,7]]}}}],["continu",{"_index":1114,"t":{"142":{"position":[[123,9]]}}}],["contract",{"_index":965,"t":{"122":{"position":[[1006,9]]}}}],["contrari",{"_index":892,"t":{"111":{"position":[[1990,9]]}}}],["contribut",{"_index":1028,"t":{"128":{"position":[[441,10]]},"130":{"position":[[26,11]]},"132":{"position":[[381,13]]}}}],["contributor",{"_index":999,"t":{"128":{"position":[[15,13]]},"148":{"position":[[41,11]]}}}],["contriv",{"_index":784,"t":{"89":{"position":[[2415,9]]}}}],["control",{"_index":661,"t":{"73":{"position":[[425,7]]}}}],["convent",{"_index":86,"t":{"6":{"position":[[10,10]]}}}],["copi",{"_index":932,"t":{"122":{"position":[[188,4],[356,5],[422,6],[628,6]]}}}],["copyright",{"_index":918,"t":{"122":{"position":[[16,9],[50,9],[559,9],[911,9]]}}}],["core",{"_index":74,"t":{"4":{"position":[[529,4]]},"73":{"position":[[24,4]]}}}],["correct",{"_index":1067,"t":{"132":{"position":[[135,10]]}}}],["correctli",{"_index":433,"t":{"43":{"position":[[230,9]]}}}],["correspond",{"_index":804,"t":{"97":{"position":[[118,10]]}}}],["cours",{"_index":539,"t":{"53":{"position":[[1980,6]]}}}],["coven",{"_index":1131,"t":{"148":{"position":[[53,9]]}}}],["covenant.org/faq",{"_index":1141,"t":{"148":{"position":[[350,17]]}}}],["covenant.org/transl",{"_index":1143,"t":{"148":{"position":[[422,26]]}}}],["covenant.org/version/2/0/code_of_conduct.html",{"_index":1134,"t":{"148":{"position":[[113,46]]}}}],["cover",{"_index":133,"t":{"10":{"position":[[298,7]]},"77":{"position":[[410,7]]}}}],["creat",{"_index":48,"t":{"4":{"position":[[25,6],[462,6]]},"6":{"position":[[51,6]]},"8":{"position":[[43,6]]},"10":{"position":[[196,7]]},"12":{"position":[[41,7],[403,6]]},"16":{"position":[[143,6]]},"25":{"position":[[389,6],[448,7]]},"29":{"position":[[147,7],[302,6]]},"31":{"position":[[50,6],[170,6],[251,6]]},"33":{"position":[[57,6]]},"35":{"position":[[57,6],[171,6],[331,6]]},"39":{"position":[[200,6],[277,6],[650,6],[727,6],[1519,6],[1594,6]]},"41":{"position":[[180,6],[429,7]]},"43":{"position":[[50,7],[505,6]]},"45":{"position":[[861,6]]},"53":{"position":[[947,7],[1359,7],[1551,7]]},"55":{"position":[[358,6]]},"57":{"position":[[33,6]]},"59":{"position":[[331,6]]},"61":{"position":[[28,7]]},"65":{"position":[[28,7],[312,6]]},"67":{"position":[[3,6]]},"69":{"position":[[343,6],[1552,7],[1661,8],[1746,8]]},"77":{"position":[[488,7]]},"79":{"position":[[30,6],[85,6],[235,6]]},"89":{"position":[[557,7]]},"95":{"position":[[19,6]]},"97":{"position":[[45,6]]},"101":{"position":[[116,7]]},"111":{"position":[[44,7],[106,8],[273,7],[513,7],[641,6],[738,7],[2021,8]]},"113":{"position":[[33,6]]},"115":{"position":[[13,6],[196,7]]},"117":{"position":[[351,7],[395,7]]},"119":{"position":[[76,6]]},"125":{"position":[[654,6]]}}}],["createcontaineropt",{"_index":368,"t":{"37":{"position":[[59,22]]}}}],["createserv",{"_index":213,"t":{"16":{"position":[[743,14]]}}}],["creation",{"_index":230,"t":{"16":{"position":[[1148,8]]}}}],["crucial",{"_index":485,"t":{"49":{"position":[[110,10]]}}}],["current",{"_index":152,"t":{"12":{"position":[[222,10]]},"35":{"position":[[100,8]]},"45":{"position":[[275,10]]},"47":{"position":[[774,10]]},"57":{"position":[[214,10]]},"61":{"position":[[118,9]]},"69":{"position":[[1607,10]]},"81":{"position":[[271,7],[356,7]]},"89":{"position":[[1050,7]]},"91":{"position":[[203,7]]},"107":{"position":[[902,9]]},"109":{"position":[[769,10]]},"125":{"position":[[1673,9]]}}}],["custom",{"_index":340,"t":{"29":{"position":[[118,6]]},"47":{"position":[[77,6],[225,6],[716,6],[851,6],[985,6]]}}}],["d.t",{"_index":876,"t":{"109":{"position":[[750,5]]}}}],["damag",{"_index":963,"t":{"122":{"position":[[954,7]]}}}],["danger",{"_index":577,"t":{"61":{"position":[[91,6]]},"65":{"position":[[702,8]]},"69":{"position":[[352,9]]},"85":{"position":[[435,6]]}}}],["dark",{"_index":753,"t":{"89":{"position":[[841,4],[891,5]]}}}],["data",{"_index":277,"t":{"20":{"position":[[513,4]]}}}],["databas",{"_index":167,"t":{"12":{"position":[[463,8]]},"14":{"position":[[226,9]]},"20":{"position":[[147,9],[214,8],[373,9],[433,8]]},"22":{"position":[[14,9],[361,9]]},"69":{"position":[[185,8],[710,8],[979,8],[1580,9],[1679,8],[1802,8]]},"73":{"position":[[629,9],[1160,8],[1230,9]]},"95":{"position":[[431,8]]}}}],["database.servic",{"_index":290,"t":{"22":{"position":[[259,21]]}}}],["databaseservic",{"_index":182,"t":{"14":{"position":[[171,16]]},"20":{"position":[[627,15]]},"22":{"position":[[236,15],[371,16]]},"69":{"position":[[146,16],[582,15],[871,15],[1107,15],[1184,15],[1251,15],[1471,15]]},"73":{"position":[[574,16],[1191,15]]}}}],["date",{"_index":264,"t":{"20":{"position":[[112,5]]}}}],["deal",{"_index":935,"t":{"122":{"position":[[266,4],[1111,8]]}}}],["debug",{"_index":898,"t":{"115":{"position":[[391,9]]}}}],["decis",{"_index":1079,"t":{"132":{"position":[[485,9]]}}}],["declar",{"_index":69,"t":{"4":{"position":[[372,7]]},"6":{"position":[[522,8],[778,7]]},"14":{"position":[[139,7]]},"67":{"position":[[50,12]]},"69":{"position":[[7,7]]},"73":{"position":[[1355,7],[1619,11]]},"75":{"position":[[570,12]]},"111":{"position":[[610,9]]}}}],["decor",{"_index":102,"t":{"6":{"position":[[706,10]]},"71":{"position":[[106,9]]},"73":{"position":[[1310,9]]},"75":{"position":[[146,10]]},"79":{"position":[[133,9]]},"81":{"position":[[634,11]]}}}],["decorator'",{"_index":553,"t":{"57":{"position":[[148,11]]}}}],["deem",{"_index":1068,"t":{"132":{"position":[[191,4]]},"138":{"position":[[116,4]]},"140":{"position":[[66,6]]}}}],["default",{"_index":225,"t":{"16":{"position":[[1040,8]]},"22":{"position":[[861,8]]},"29":{"position":[[200,8]]},"31":{"position":[[288,7],[425,8],[441,7]]},"35":{"position":[[193,7]]},"39":{"position":[[299,7],[749,7],[1072,8],[1616,7]]},"45":{"position":[[70,8],[352,8],[530,8],[893,7]]},"51":{"position":[[35,8],[69,7],[91,8],[274,7],[434,7]]},"53":{"position":[[886,7],[1667,7]]},"55":{"position":[[52,7],[73,8],[316,7],[390,7],[565,7]]},"59":{"position":[[873,7],[968,7]]},"63":{"position":[[117,8],[133,7]]},"65":{"position":[[547,7]]},"75":{"position":[[3,8],[41,7]]},"111":{"position":[[373,7]]}}}],["defer",{"_index":509,"t":{"53":{"position":[[627,5]]}}}],["defin",{"_index":448,"t":{"45":{"position":[[205,6],[308,6]]},"81":{"position":[[565,7]]}}}],["definit",{"_index":443,"t":{"45":{"position":[[20,10],[262,12],[485,10],[1222,11]]}}}],["defualt",{"_index":523,"t":{"53":{"position":[[1251,7]]}}}],["deletecom",{"_index":977,"t":{"125":{"position":[[784,13]]}}}],["deletecomment(commentid",{"_index":982,"t":{"125":{"position":[[989,24]]}}}],["demand",{"_index":140,"t":{"12":{"position":[[68,7]]}}}],["demo",{"_index":891,"t":{"111":{"position":[[1827,4]]}}}],["demonstr",{"_index":9,"t":{"2":{"position":[[106,13]]},"29":{"position":[[344,12]]},"97":{"position":[[3,11]]},"130":{"position":[[91,13]]},"146":{"position":[[18,13]]}}}],["demystifi",{"_index":657,"t":{"73":{"position":[[373,12]]}}}],["depend",{"_index":72,"t":{"4":{"position":[[430,12],[510,12],[557,10],[603,6]]},"6":{"position":[[24,10],[566,7],[659,7]]},"10":{"position":[[234,13]]},"18":{"position":[[87,6]]},"25":{"position":[[43,10]]},"49":{"position":[[130,9]]},"55":{"position":[[212,12]]},"59":{"position":[[476,13]]},"65":{"position":[[167,11]]},"71":{"position":[[163,12],[675,12]]},"73":{"position":[[41,10],[253,10],[351,11],[452,10],[1399,7]]},"81":{"position":[[47,11],[517,10]]},"83":{"position":[[85,11],[101,10]]},"87":{"position":[[24,11],[452,10],[1315,11]]},"89":{"position":[[64,12],[335,9],[2012,13],[2245,13]]},"95":{"position":[[122,11]]},"99":{"position":[[38,11]]},"105":{"position":[[690,12]]},"111":{"position":[[1553,11]]},"113":{"position":[[143,13]]},"117":{"position":[[370,11]]},"119":{"position":[[370,13]]},"125":{"position":[[1415,13]]}}}],["deploy",{"_index":194,"t":{"16":{"position":[[202,9]]}}}],["derogatori",{"_index":1054,"t":{"130":{"position":[[618,10]]}}}],["design",{"_index":506,"t":{"53":{"position":[[541,7],[1485,6]]},"81":{"position":[[694,8]]}}}],["desir",{"_index":829,"t":{"99":{"position":[[160,7]]}}}],["deterior",{"_index":801,"t":{"95":{"position":[[516,13]]}}}],["determin",{"_index":1104,"t":{"138":{"position":[[67,11]]}}}],["develop",{"_index":841,"t":{"105":{"position":[[20,9]]}}}],["di",{"_index":241,"t":{"18":{"position":[[290,2]]},"71":{"position":[[869,2]]},"81":{"position":[[631,2]]}}}],["diagnost",{"_index":666,"t":{"73":{"position":[[770,11]]},"97":{"position":[[1256,11]]}}}],["diagnosticsservic",{"_index":664,"t":{"73":{"position":[[729,19]]}}}],["dictat",{"_index":369,"t":{"37":{"position":[[124,7]]}}}],["didn't",{"_index":522,"t":{"53":{"position":[[1174,6]]},"81":{"position":[[163,8]]}}}],["differ",{"_index":107,"t":{"6":{"position":[[815,9]]},"25":{"position":[[179,9]]},"39":{"position":[[126,9]]},"45":{"position":[[49,6]]},"51":{"position":[[355,9]]},"53":{"position":[[1872,9],[2051,9],[2147,9],[2198,9]]},"59":{"position":[[935,9]]},"73":{"position":[[1220,9]]},"75":{"position":[[242,9]]},"77":{"position":[[39,9]]},"89":{"position":[[245,9]]},"125":{"position":[[452,9]]},"130":{"position":[[166,9]]}}}],["disabl",{"_index":1010,"t":{"128":{"position":[[181,11]]}}}],["disadvantag",{"_index":632,"t":{"69":{"position":[[1915,14]]}}}],["discourag",{"_index":607,"t":{"65":{"position":[[660,12]]}}}],["disparag",{"_index":1129,"t":{"146":{"position":[[176,13]]}}}],["dispos",{"_index":560,"t":{"59":{"position":[[218,7],[240,8],[573,8],[775,8],[858,7]]}}}],["distribut",{"_index":940,"t":{"122":{"position":[[386,11]]}}}],["divers",{"_index":1030,"t":{"128":{"position":[[475,8]]}}}],["do",{"_index":13,"t":{"2":{"position":[[163,5]]},"6":{"position":[[288,5]]},"69":{"position":[[1534,5]]}}}],["document",{"_index":328,"t":{"27":{"position":[[22,14]]},"89":{"position":[[1201,9]]},"122":{"position":[[225,13]]}}}],["document.bodi",{"_index":774,"t":{"89":{"position":[[1997,14]]}}}],["doesn't",{"_index":147,"t":{"12":{"position":[[164,7]]},"73":{"position":[[210,7]]},"81":{"position":[[374,7]]},"87":{"position":[[40,7]]},"91":{"position":[[221,7]]},"101":{"position":[[345,7]]},"107":{"position":[[34,7]]},"117":{"position":[[425,7]]}}}],["dom",{"_index":750,"t":{"89":{"position":[[723,3],[1058,3]]}}}],["dom_nod",{"_index":749,"t":{"89":{"position":[[643,8],[1009,8],[1343,9],[1353,10],[1980,9],[2211,9]]}}}],["don't",{"_index":685,"t":{"77":{"position":[[380,5]]},"85":{"position":[[259,5]]},"105":{"position":[[664,5]]}}}],["done",{"_index":232,"t":{"16":{"position":[[1285,4]]},"27":{"position":[[311,5]]},"45":{"position":[[240,4]]},"85":{"position":[[62,4]]},"105":{"position":[[1010,4]]},"111":{"position":[[1164,4]]},"117":{"position":[[300,4]]}}}],["down",{"_index":151,"t":{"12":{"position":[[205,4],[375,4]]}}}],["due",{"_index":389,"t":{"39":{"position":[[867,3]]},"107":{"position":[[858,3]]}}}],["dure",{"_index":1127,"t":{"144":{"position":[[385,6]]}}}],["e",{"_index":1082,"t":{"134":{"position":[[218,1]]}}}],["e.g",{"_index":799,"t":{"95":{"position":[[425,5]]}}}],["each",{"_index":346,"t":{"29":{"position":[[322,4]]},"37":{"position":[[3,4]]},"47":{"position":[[126,4]]},"53":{"position":[[168,4],[2174,4]]},"73":{"position":[[63,4],[115,4],[922,4],[986,4]]},"89":{"position":[[584,4],[607,4],[820,4]]},"99":{"position":[[502,4]]},"107":{"position":[[52,4]]},"125":{"position":[[1044,4],[1545,4]]}}}],["eager",{"_index":596,"t":{"65":{"position":[[273,5],[297,5],[505,5],[641,5]]},"67":{"position":[[162,6]]},"69":{"position":[[18,5],[140,5],[271,5],[550,6],[1721,5]]}}}],["earli",{"_index":610,"t":{"69":{"position":[[215,5]]}}}],["easi",{"_index":325,"t":{"25":{"position":[[566,4]]}}}],["easier",{"_index":272,"t":{"20":{"position":[[394,6]]},"103":{"position":[[81,7]]},"105":{"position":[[73,6]]},"125":{"position":[[1521,6]]}}}],["easili",{"_index":673,"t":{"73":{"position":[[1443,6]]}}}],["econom",{"_index":1018,"t":{"128":{"position":[[295,8]]}}}],["edit",{"_index":1073,"t":{"132":{"position":[[310,5],[356,6]]}}}],["editor",{"_index":872,"t":{"109":{"position":[[658,7]]}}}],["educ",{"_index":1016,"t":{"128":{"position":[[278,10]]}}}],["effect",{"_index":614,"t":{"69":{"position":[[317,7],[1786,7]]},"95":{"position":[[417,7]]},"101":{"position":[[129,7],[498,7]]},"111":{"position":[[89,8]]}}}],["element",{"_index":751,"t":{"89":{"position":[[727,7],[811,8],[923,8],[1143,8]]}}}],["elid",{"_index":859,"t":{"107":{"position":[[638,5]]}}}],["email",{"_index":1059,"t":{"130":{"position":[[764,5]]}}}],["emit",{"_index":798,"t":{"95":{"position":[[406,5]]}}}],["empathi",{"_index":1035,"t":{"130":{"position":[[105,7]]}}}],["enableeagerload",{"_index":604,"t":{"65":{"position":[[583,18]]}}}],["encount",{"_index":633,"t":{"71":{"position":[[18,9]]}}}],["end",{"_index":726,"t":{"87":{"position":[[313,3]]},"97":{"position":[[424,3],[463,5]]}}}],["endnam",{"_index":811,"t":{"97":{"position":[[439,7],[549,9]]}}}],["endpoint",{"_index":306,"t":{"22":{"position":[[1189,8]]}}}],["enforc",{"_index":1064,"t":{"132":{"position":[[53,9]]},"136":{"position":[[125,11]]},"142":{"position":[[229,9]]},"144":{"position":[[343,9]]},"148":{"position":[[231,11]]}}}],["ensur",{"_index":89,"t":{"6":{"position":[[113,7]]},"25":{"position":[[438,6]]},"27":{"position":[[68,6]]},"43":{"position":[[186,6]]}}}],["entri",{"_index":827,"t":{"97":{"position":[[1225,7]]}}}],["environ",{"_index":25,"t":{"2":{"position":[[307,11]]},"6":{"position":[[125,11]]},"27":{"position":[[94,11]]},"69":{"position":[[1849,11]]},"109":{"position":[[125,12]]},"130":{"position":[[52,11]]}}}],["equival",{"_index":790,"t":{"93":{"position":[[36,10]]},"105":{"position":[[901,11]]},"107":{"position":[[935,10]]}}}],["error",{"_index":388,"t":{"39":{"position":[[861,5],[1099,5]]},"45":{"position":[[560,5]]},"53":{"position":[[748,5]]},"59":{"position":[[816,6]]},"83":{"position":[[359,5]]},"87":{"position":[[1257,7],[1580,6]]},"89":{"position":[[458,7]]},"91":{"position":[[255,5]]},"107":{"position":[[649,7]]},"111":{"position":[[1922,6]]}}}],["es5",{"_index":865,"t":{"109":{"position":[[121,3]]}}}],["es6",{"_index":675,"t":{"73":{"position":[[1459,3]]},"109":{"position":[[70,3],[588,3]]}}}],["escap",{"_index":640,"t":{"71":{"position":[[428,7]]}}}],["essenti",{"_index":564,"t":{"59":{"position":[[600,11]]}}}],["ethnic",{"_index":1011,"t":{"128":{"position":[[193,10]]}}}],["even",{"_index":405,"t":{"39":{"position":[[1297,4]]},"45":{"position":[[1131,4]]},"53":{"position":[[1591,4]]},"59":{"position":[[665,5]]}}}],["event",{"_index":435,"t":{"43":{"position":[[276,5]]},"122":{"position":[[884,5]]},"134":{"position":[[345,6]]}}}],["everyon",{"_index":1005,"t":{"128":{"position":[[120,9]]}}}],["everyth",{"_index":111,"t":{"8":{"position":[[16,10]]}}}],["examin",{"_index":259,"t":{"18":{"position":[[1001,7]]}}}],["exampl",{"_index":29,"t":{"2":{"position":[[353,8]]},"12":{"position":[[435,8]]},"14":{"position":[[334,8],[407,8]]},"16":{"position":[[694,8]]},"18":{"position":[[12,7]]},"20":{"position":[[233,7],[278,7]]},"25":{"position":[[337,8],[497,8]]},"27":{"position":[[345,7]]},"35":{"position":[[113,8]]},"39":{"position":[[188,8],[839,7],[1359,7]]},"41":{"position":[[23,8]]},"43":{"position":[[290,7]]},"45":{"position":[[797,7],[1096,8]]},"51":{"position":[[197,9]]},"53":{"position":[[812,7],[1582,8]]},"59":{"position":[[159,8]]},"69":{"position":[[462,8]]},"73":{"position":[[913,8],[1040,8]]},"75":{"position":[[192,7]]},"87":{"position":[[213,8],[551,7]]},"89":{"position":[[521,7],[2425,8]]},"93":{"position":[[174,7]]},"97":{"position":[[61,8]]},"99":{"position":[[411,7]]},"105":{"position":[[153,7],[239,8],[935,7]]},"107":{"position":[[7,8]]},"109":{"position":[[177,8],[695,7]]},"111":{"position":[[626,8]]},"113":{"position":[[163,8],[202,7]]},"119":{"position":[[148,7]]},"125":{"position":[[327,8],[355,7],[1878,7]]},"130":{"position":[[0,8],[464,8]]},"134":{"position":[[153,8]]}}}],["execut",{"_index":456,"t":{"45":{"position":[[770,9]]},"55":{"position":[[247,7]]},"71":{"position":[[351,9]]}}}],["exhaust",{"_index":516,"t":{"53":{"position":[[787,10]]},"83":{"position":[[345,10]]}}}],["exist",{"_index":344,"t":{"29":{"position":[[251,7]]},"37":{"position":[[225,6],[278,5]]},"39":{"position":[[406,6],[444,8],[639,7],[1040,8]]},"45":{"position":[[143,7],[1168,6]]},"71":{"position":[[176,6]]},"81":{"position":[[104,8]]},"87":{"position":[[629,6],[1234,6]]}}}],["exit",{"_index":7,"t":{"2":{"position":[[83,6]]}}}],["expect",{"_index":455,"t":{"45":{"position":[[736,9]]}}}],["expens",{"_index":832,"t":{"101":{"position":[[89,9]]}}}],["experi",{"_index":871,"t":{"109":{"position":[[644,10]]},"111":{"position":[[1903,10]]},"128":{"position":[[105,10],[266,11]]},"130":{"position":[[202,11],[366,10]]}}}],["explan",{"_index":1111,"t":{"140":{"position":[[243,11]]}}}],["explicit",{"_index":460,"t":{"45":{"position":[[1204,8]]},"65":{"position":[[566,8]]},"130":{"position":[[793,8]]}}}],["explicitli",{"_index":236,"t":{"18":{"position":[[141,10]]},"57":{"position":[[97,10]]},"65":{"position":[[58,10]]},"101":{"position":[[353,10]]}}}],["explor",{"_index":543,"t":{"53":{"position":[[2272,7]]},"55":{"position":[[6,8]]},"73":{"position":[[1574,9]]},"75":{"position":[[163,7]]},"83":{"position":[[603,7]]},"87":{"position":[[503,7]]},"125":{"position":[[295,7]]}}}],["export",{"_index":62,"t":{"4":{"position":[[262,6]]},"6":{"position":[[392,6]]},"16":{"position":[[447,6]]},"18":{"position":[[503,6]]},"20":{"position":[[614,6]]},"39":{"position":[[1405,6],[1457,6]]},"41":{"position":[[243,6]]},"43":{"position":[[568,6]]},"47":{"position":[[451,6]]},"67":{"position":[[181,6]]},"69":{"position":[[569,6],[1207,6]]},"71":{"position":[[1117,6]]},"75":{"position":[[337,6],[429,6]]},"87":{"position":[[848,6]]},"89":{"position":[[996,6],[1379,6],[1880,6]]},"97":{"position":[[282,6],[924,6]]},"105":{"position":[[313,6],[481,6]]},"107":{"position":[[924,6]]},"109":{"position":[[311,6]]},"111":{"position":[[937,6],[1378,6]]},"115":{"position":[[92,6],[545,9]]},"117":{"position":[[177,6]]},"119":{"position":[[627,6]]},"125":{"position":[[547,6],[869,6],[1228,6]]}}}],["express",{"_index":634,"t":{"71":{"position":[[95,10]]},"73":{"position":[[1271,7],[1299,10]]},"122":{"position":[[740,7]]},"128":{"position":[[245,11]]}}}],["extend",{"_index":465,"t":{"47":{"position":[[202,6]]},"55":{"position":[[554,6]]},"125":{"position":[[890,7]]}}}],["extern",{"_index":1118,"t":{"142":{"position":[[359,8]]}}}],["extra",{"_index":880,"t":{"111":{"position":[[567,5]]}}}],["fact",{"_index":701,"t":{"81":{"position":[[649,5]]},"119":{"position":[[573,5]]}}}],["factori",{"_index":689,"t":{"79":{"position":[[164,7]]}}}],["fail",{"_index":377,"t":{"39":{"position":[[48,4],[599,4]]},"81":{"position":[[152,4]]},"89":{"position":[[433,5]]},"107":{"position":[[107,5]]}}}],["fair",{"_index":1066,"t":{"132":{"position":[[130,4]]}}}],["fairli",{"_index":1097,"t":{"136":{"position":[[235,7]]}}}],["fakedatabaseservic",{"_index":625,"t":{"69":{"position":[[1220,19]]}}}],["familiar",{"_index":704,"t":{"81":{"position":[[759,8]]}}}],["faq",{"_index":1140,"t":{"148":{"position":[[319,3]]}}}],["fear",{"_index":132,"t":{"10":{"position":[[268,4]]}}}],["featur",{"_index":497,"t":{"53":{"position":[[25,8]]},"65":{"position":[[424,8]]},"81":{"position":[[407,8],[594,7],[718,8]]},"125":{"position":[[204,7]]}}}],["feedback",{"_index":1042,"t":{"130":{"position":[[259,8]]}}}],["few",{"_index":598,"t":{"65":{"position":[[374,3]]}}}],["fiction",{"_index":814,"t":{"97":{"position":[[625,9]]}}}],["file",{"_index":50,"t":{"4":{"position":[[52,5]]},"6":{"position":[[273,5]]},"8":{"position":[[65,4]]},"69":{"position":[[94,5]]},"107":{"position":[[980,5]]},"109":{"position":[[756,6]]},"115":{"position":[[22,4],[479,5],[525,4],[599,4]]},"122":{"position":[[239,5]]}}}],["final",{"_index":109,"t":{"8":{"position":[[0,8]]},"97":{"position":[[163,5]]},"115":{"position":[[336,8]]}}}],["find",{"_index":508,"t":{"53":{"position":[[599,4]]},"77":{"position":[[509,4]]},"91":{"position":[[107,5]]},"95":{"position":[[462,4]]},"101":{"position":[[179,4]]}}}],["finish",{"_index":556,"t":{"59":{"position":[[65,8]]}}}],["first",{"_index":192,"t":{"16":{"position":[[120,6]]},"53":{"position":[[111,5]]},"115":{"position":[[0,6]]}}}],["fit",{"_index":956,"t":{"122":{"position":[[824,7]]}}}],["fix",{"_index":802,"t":{"95":{"position":[[533,3]]},"125":{"position":[[1702,3]]}}}],["flag",{"_index":723,"t":{"87":{"position":[[92,5]]}}}],["flexibl",{"_index":531,"t":{"53":{"position":[[1791,11]]}}}],["fli",{"_index":484,"t":{"49":{"position":[[105,4]]}}}],["flow",{"_index":536,"t":{"53":{"position":[[1927,4]]},"69":{"position":[[243,5]]},"83":{"position":[[418,4]]},"91":{"position":[[315,4],[388,4]]}}}],["focus",{"_index":1046,"t":{"130":{"position":[[377,8]]}}}],["follow",{"_index":21,"t":{"2":{"position":[[218,8]]},"14":{"position":[[151,9]]},"18":{"position":[[908,9]]},"25":{"position":[[574,6]]},"39":{"position":[[166,9],[1002,8]]},"41":{"position":[[13,9]]},"47":{"position":[[327,10]]},"57":{"position":[[246,9]]},"61":{"position":[[401,9]]},"67":{"position":[[77,10]]},"69":{"position":[[439,9]]},"73":{"position":[[554,9]]},"77":{"position":[[64,9]]},"89":{"position":[[511,9]]},"93":{"position":[[204,10]]},"107":{"position":[[92,9]]},"109":{"position":[[235,10]]},"119":{"position":[[462,10]]},"122":{"position":[[527,9]]},"138":{"position":[[23,6]]}}}],["forget",{"_index":609,"t":{"69":{"position":[[118,6]]},"87":{"position":[[1204,6]]},"105":{"position":[[670,6]]}}}],["forgotten",{"_index":441,"t":{"43":{"position":[[849,9]]}}}],["form",{"_index":715,"t":{"85":{"position":[[196,4]]}}}],["format",{"_index":326,"t":{"25":{"position":[[581,7]]},"73":{"position":[[1469,6]]}}}],["found",{"_index":228,"t":{"16":{"position":[[1092,8]]},"22":{"position":[[913,8]]},"43":{"position":[[247,5]]},"53":{"position":[[713,5]]},"77":{"position":[[329,5]]},"83":{"position":[[190,6],[259,6]]},"87":{"position":[[126,6]]}}}],["fowler",{"_index":663,"t":{"73":{"position":[[492,6]]}}}],["fragil",{"_index":597,"t":{"65":{"position":[[319,7]]}}}],["framework",{"_index":706,"t":{"83":{"position":[[122,9]]}}}],["free",{"_index":374,"t":{"37":{"position":[[284,6]]},"43":{"position":[[332,4]]},"122":{"position":[[146,4]]},"128":{"position":[[100,4]]}}}],["freshgum",{"_index":924,"t":{"122":{"position":[[69,8]]}}}],["freshgum.bubbles@protonmail.com",{"_index":1092,"t":{"136":{"position":[[140,32]]}}}],["freshgum/typedi",{"_index":61,"t":{"4":{"position":[[229,19]]},"6":{"position":[[349,19]]},"8":{"position":[[163,19]]},"16":{"position":[[321,19]]},"18":{"position":[[398,19]]},"20":{"position":[[580,19]]},"27":{"position":[[227,16],[255,16],[287,16]]},"31":{"position":[[147,19]]},"35":{"position":[[148,19]]},"41":{"position":[[73,19]]},"43":{"position":[[398,19]]},"45":{"position":[[838,19]]},"47":{"position":[[431,19]]},"51":{"position":[[525,19]]},"53":{"position":[[1007,19]]},"55":{"position":[[444,19]]},"57":{"position":[[316,19]]},"59":{"position":[[308,19]]},"67":{"position":[[131,19]]},"69":{"position":[[519,19],[1078,19]]},"71":{"position":[[1066,19]]},"75":{"position":[[317,19]]},"77":{"position":[[133,19],[594,19]]},"87":{"position":[[706,19]]},"89":{"position":[[976,19],[1269,19],[1714,19]]},"97":{"position":[[227,19],[744,19]]},"105":{"position":[[293,19],[461,19]]},"107":{"position":[[707,19]]},"109":{"position":[[291,19]]},"111":{"position":[[833,19],[1273,19]]},"115":{"position":[[72,19]]},"117":{"position":[[94,19]]},"119":{"position":[[211,19]]},"125":{"position":[[1171,19]]}}}],["freshgum/typedi/contrib/transi",{"_index":817,"t":{"97":{"position":[[793,35]]}}}],["friendli",{"_index":850,"t":{"105":{"position":[[892,8]]}}}],["frugal",{"_index":603,"t":{"65":{"position":[[484,9]]}}}],["function",{"_index":24,"t":{"2":{"position":[[295,11]]},"22":{"position":[[959,11]]},"41":{"position":[[162,8],[290,8],[777,8]]},"43":{"position":[[487,8],[615,8],[662,8]]},"47":{"position":[[232,14],[892,9]]},"49":{"position":[[177,9]]},"57":{"position":[[256,8]]},"71":{"position":[[302,9],[820,8]]},"73":{"position":[[164,13]]},"79":{"position":[[53,8],[172,9]]},"85":{"position":[[84,9],[137,9],[345,9],[482,9]]},"93":{"position":[[23,12]]},"103":{"position":[[17,8]]},"105":{"position":[[125,8]]},"107":{"position":[[534,8]]},"109":{"position":[[14,8],[37,10],[351,8],[405,8]]},"125":{"position":[[1334,8],[1730,8]]}}}],["fundament",{"_index":103,"t":{"6":{"position":[[728,11]]}}}],["furnish",{"_index":945,"t":{"122":{"position":[[492,9]]}}}],["further",{"_index":792,"t":{"93":{"position":[[130,7]]},"95":{"position":[[57,7]]}}}],["futur",{"_index":586,"t":{"61":{"position":[[324,6]]},"65":{"position":[[497,7]]}}}],["g",{"_index":41,"t":{"2":{"position":[[498,1]]},"14":{"position":[[552,1]]}}}],["gave",{"_index":128,"t":{"10":{"position":[[148,4]]}}}],["gender",{"_index":1013,"t":{"128":{"position":[[225,6]]}}}],["gener",{"_index":77,"t":{"4":{"position":[[581,8]]},"25":{"position":[[67,8]]},"109":{"position":[[559,9]]}}}],["get",{"_index":23,"t":{"2":{"position":[[247,7]]},"63":{"position":[[31,4]]}}}],["getus",{"_index":994,"t":{"125":{"position":[[1739,10]]}}}],["getvalue(nam",{"_index":620,"t":{"69":{"position":[[742,14],[1351,14]]}}}],["getvaluecontain",{"_index":420,"t":{"41":{"position":[[299,19]]},"43":{"position":[[624,19],[867,20]]}}}],["getvaluecontainer().get(start_tim",{"_index":429,"t":{"41":{"position":[[864,36]]}}}],["give",{"_index":8,"t":{"2":{"position":[[93,4]]},"53":{"position":[[1777,5]]},"75":{"position":[[588,5]]},"130":{"position":[[214,6]]}}}],["global",{"_index":43,"t":{"2":{"position":[[523,8]]},"14":{"position":[[577,8]]},"29":{"position":[[19,6]]},"111":{"position":[[354,8]]}}}],["go",{"_index":186,"t":{"14":{"position":[[349,5]]},"16":{"position":[[36,5],[101,5]]},"125":{"position":[[1858,3]]}}}],["good",{"_index":231,"t":{"16":{"position":[[1259,4]]},"43":{"position":[[174,4]]},"53":{"position":[[1768,5]]},"111":{"position":[[1797,4]]},"115":{"position":[[452,4]]}}}],["gracefulli",{"_index":1041,"t":{"130":{"position":[[225,10]]}}}],["grant",{"_index":929,"t":{"122":{"position":[[137,8]]}}}],["great",{"_index":830,"t":{"101":{"position":[[38,5]]}}}],["greatli",{"_index":310,"t":{"25":{"position":[[82,7]]}}}],["guid",{"_index":491,"t":{"51":{"position":[[227,6]]},"73":{"position":[[244,5]]},"77":{"position":[[436,6]]},"89":{"position":[[2449,5]]}}}],["guidelin",{"_index":1103,"t":{"138":{"position":[[53,10]]},"148":{"position":[[177,10]]}}}],["handl",{"_index":141,"t":{"12":{"position":[[87,8]]},"14":{"position":[[192,8],[266,6]]},"37":{"position":[[150,6]]},"53":{"position":[[390,6],[458,6]]},"73":{"position":[[595,8],[669,6]]}}}],["handlerequest(request",{"_index":217,"t":{"16":{"position":[[860,22]]},"22":{"position":[[401,22]]}}}],["happen",{"_index":510,"t":{"53":{"position":[[667,7],[844,7]]}}}],["harass",{"_index":1004,"t":{"128":{"position":[[89,10]]},"130":{"position":[[691,10]]},"136":{"position":[[22,10]]},"146":{"position":[[123,10]]}}}],["hard",{"_index":895,"t":{"113":{"position":[[253,4]]}}}],["harder",{"_index":618,"t":{"69":{"position":[[410,6]]}}}],["harm",{"_index":1071,"t":{"132":{"position":[[238,8]]}}}],["hatch",{"_index":641,"t":{"71":{"position":[[436,7]]}}}],["have",{"_index":37,"t":{"2":{"position":[[450,6]]},"14":{"position":[[504,6]]},"53":{"position":[[2189,6]]}}}],["healthi",{"_index":1032,"t":{"128":{"position":[[499,7]]}}}],["hear",{"_index":124,"t":{"10":{"position":[[102,4]]}}}],["hello",{"_index":5,"t":{"2":{"position":[[59,6]]},"10":{"position":[[87,5]]},"16":{"position":[[974,9]]},"22":{"position":[[576,9],[1182,6]]},"27":{"position":[[332,5]]},"51":{"position":[[184,5]]},"59":{"position":[[461,6]]},"75":{"position":[[179,5]]},"105":{"position":[[226,5]]},"113":{"position":[[189,5]]},"119":{"position":[[354,6],[497,5]]}}}],["helpfulli",{"_index":447,"t":{"45":{"position":[[177,9]]},"71":{"position":[[265,9]]}}}],["here",{"_index":267,"t":{"20":{"position":[[223,5]]},"41":{"position":[[658,5]]},"69":{"position":[[719,7]]},"73":{"position":[[305,4]]},"107":{"position":[[298,5]]},"119":{"position":[[167,5]]}}}],["here'",{"_index":535,"t":{"53":{"position":[[1918,6]]},"83":{"position":[[409,6]]},"91":{"position":[[306,6]]}}}],["herebi",{"_index":928,"t":{"122":{"position":[[130,6]]}}}],["highlight",{"_index":527,"t":{"53":{"position":[[1454,10]]}}}],["hoist",{"_index":803,"t":{"95":{"position":[[551,7]]},"101":{"position":[[467,8]]}}}],["hold",{"_index":500,"t":{"53":{"position":[[183,5]]},"115":{"position":[[33,5]]}}}],["holder",{"_index":960,"t":{"122":{"position":[[921,7]]}}}],["hook",{"_index":578,"t":{"61":{"position":[[108,5],[411,6]]},"63":{"position":[[5,4]]}}}],["host",{"_index":881,"t":{"111":{"position":[[681,5],[1955,6]]}}}],["hostcontain",{"_index":638,"t":{"71":{"position":[[288,13],[397,13],[806,13],[957,13],[1036,14],[1097,16]]},"89":{"position":[[1693,13],[1861,15]]},"97":{"position":[[723,13]]},"99":{"position":[[213,15]]},"103":{"position":[[129,14]]}}}],["htmlelement",{"_index":766,"t":{"89":{"position":[[1437,12],[1468,12]]}}}],["http",{"_index":174,"t":{"12":{"position":[[630,4]]},"16":{"position":[[348,5],[403,7],[421,4],[1223,4]]},"25":{"position":[[309,4],[398,4],[458,4]]},"111":{"position":[[860,4],[870,7],[888,4]]}}}],["http.createserver((request",{"_index":214,"t":{"16":{"position":[[767,27]]},"111":{"position":[[1028,27]]}}}],["http.server",{"_index":883,"t":{"111":{"position":[[985,12]]}}}],["http://localhost:3000/hello",{"_index":258,"t":{"18":{"position":[[969,27]]}}}],["http://localhost:3000/setname?name=jo",{"_index":305,"t":{"22":{"position":[[1138,39]]}}}],["https://github.com/freshgum",{"_index":925,"t":{"122":{"position":[[78,28]]}}}],["https://www.contributor",{"_index":1133,"t":{"148":{"position":[[89,23],[326,23],[398,23]]}}}],["id",{"_index":372,"t":{"37":{"position":[[214,2],[266,2]]},"39":{"position":[[102,3],[389,2],[628,2],[900,4]]},"41":{"position":[[115,2]]},"43":{"position":[[65,2],[440,2]]},"45":{"position":[[132,2],[1157,2]]},"59":{"position":[[438,3]]},"69":{"position":[[942,2],[1180,3],[1498,2]]},"89":{"position":[[1976,3],[2207,3]]},"119":{"position":[[334,3]]},"125":{"position":[[285,3],[1382,3]]}}}],["idea",{"_index":890,"t":{"111":{"position":[[1802,5]]}}}],["ident",{"_index":1014,"t":{"128":{"position":[[232,8],[372,8]]}}}],["identifi",{"_index":529,"t":{"53":{"position":[[1636,10]]},"55":{"position":[[166,11]]},"63":{"position":[[62,10]]},"77":{"position":[[310,10]]},"83":{"position":[[27,10],[171,10],[238,10]]},"87":{"position":[[105,10],[586,10]]},"91":{"position":[[440,11]]}}}],["imageri",{"_index":1049,"t":{"130":{"position":[[541,8]]}}}],["immedi",{"_index":595,"t":{"65":{"position":[[227,12]]},"67":{"position":[[29,11],[371,11]]}}}],["immut",{"_index":550,"t":{"55":{"position":[[544,9]]}}}],["impact",{"_index":1102,"t":{"138":{"position":[[46,6]]},"140":{"position":[[10,7]]},"142":{"position":[[10,7]]},"144":{"position":[[10,7]]},"146":{"position":[[10,7]]},"148":{"position":[[170,6]]}}}],["implement",{"_index":180,"t":{"14":{"position":[[42,14],[366,12]]},"16":{"position":[[110,9]]},"25":{"position":[[200,15],[287,14]]},"69":{"position":[[1240,10]]},"71":{"position":[[786,15]]},"73":{"position":[[858,11],[1014,14],[1169,14],[1416,14]]},"107":{"position":[[543,15]]},"119":{"position":[[583,14]]}}}],["impli",{"_index":954,"t":{"122":{"position":[[751,8]]}}}],["import",{"_index":59,"t":{"4":{"position":[[205,6]]},"6":{"position":[[325,6]]},"8":{"position":[[137,6],[183,6]]},"16":{"position":[[297,6],[341,6]]},"18":{"position":[[363,6],[418,6]]},"20":{"position":[[556,6]]},"22":{"position":[[227,6]]},"31":{"position":[[102,6]]},"35":{"position":[[122,6]]},"41":{"position":[[32,6]]},"43":{"position":[[357,6]]},"45":{"position":[[812,6]]},"47":{"position":[[338,6]]},"51":{"position":[[469,6],[499,6]]},"53":{"position":[[972,6],[1468,9]]},"55":{"position":[[418,6]]},"57":{"position":[[282,6]]},"59":{"position":[[282,6]]},"67":{"position":[[107,6],[340,9]]},"69":{"position":[[74,8],[128,6],[332,7],[495,6],[921,6],[1054,6],[1098,6],[1462,8]]},"71":{"position":[[1008,6]]},"75":{"position":[[282,6]]},"77":{"position":[[107,6],[153,6],[568,6],[614,6]]},"87":{"position":[[672,6],[726,6]]},"89":{"position":[[954,6],[1235,6],[1289,6],[1656,6],[1734,6],[1780,6]]},"97":{"position":[[203,6],[705,6],[764,6],[835,6]]},"105":{"position":[[267,6],[437,6]]},"107":{"position":[[128,6],[490,6],[513,8],[681,6],[727,6]]},"109":{"position":[[265,6]]},"111":{"position":[[809,6],[853,6],[1249,6],[1293,6]]},"115":{"position":[[50,6]]},"117":{"position":[[70,6],[114,6]]},"119":{"position":[[185,6],[231,6],[275,6]]},"125":{"position":[[194,9],[832,6],[1145,6],[1191,6]]}}}],["improv",{"_index":311,"t":{"25":{"position":[[90,8]]}}}],["inacess",{"_index":573,"t":{"59":{"position":[[1004,12]]}}}],["inappropri",{"_index":1061,"t":{"130":{"position":[[864,13]]},"132":{"position":[[196,14]]},"140":{"position":[[25,13],[279,14]]},"144":{"position":[[82,13]]},"146":{"position":[[99,13]]}}}],["incid",{"_index":1101,"t":{"136":{"position":[[338,9]]},"142":{"position":[[47,8]]}}}],["includ",{"_index":936,"t":{"122":{"position":[[308,9],[612,8],[760,9]]},"130":{"position":[[82,8],[498,8]]},"134":{"position":[[192,7]]},"142":{"position":[[184,9],[297,8]]},"144":{"position":[[62,9],[298,9]]},"146":{"position":[[79,9]]}}}],["inclus",{"_index":1031,"t":{"128":{"position":[[484,10]]}}}],["incomingmessag",{"_index":197,"t":{"16":{"position":[[364,16],[883,16]]},"22":{"position":[[424,16]]}}}],["incorpor",{"_index":436,"t":{"43":{"position":[[307,11]]}}}],["incorrect",{"_index":381,"t":{"39":{"position":[[176,11]]}}}],["individu",{"_index":313,"t":{"25":{"position":[[120,10]]},"53":{"position":[[140,10]]},"59":{"position":[[115,10]]},"89":{"position":[[53,10],[750,10],[1084,10]]},"101":{"position":[[513,10]]},"111":{"position":[[171,10]]},"125":{"position":[[508,10],[1646,10]]},"130":{"position":[[421,12]]},"134":{"position":[[83,10]]},"146":{"position":[[140,11],[204,12]]}}}],["infer",{"_index":877,"t":{"109":{"position":[[835,8]]}}}],["info",{"_index":869,"t":{"109":{"position":[[549,4]]}}}],["inform",{"_index":606,"t":{"65":{"position":[[622,11]]},"125":{"position":[[402,11]]},"130":{"position":[[729,12]]}}}],["inherit",{"_index":498,"t":{"53":{"position":[[57,12],[88,11]]},"81":{"position":[[216,11]]},"89":{"position":[[220,11]]}}}],["initialis",{"_index":88,"t":{"6":{"position":[[82,11]]},"18":{"position":[[246,14]]},"65":{"position":[[532,11]]},"69":{"position":[[203,11],[1811,14]]},"75":{"position":[[657,12]]}}}],["inject",{"_index":76,"t":{"4":{"position":[[568,9]]},"6":{"position":[[35,9]]},"25":{"position":[[54,9]]},"71":{"position":[[332,6]]},"73":{"position":[[52,10],[264,10],[363,9],[463,9]]},"83":{"position":[[112,9]]},"113":{"position":[[109,8]]}}}],["input",{"_index":262,"t":{"20":{"position":[[62,6]]}}}],["insid",{"_index":239,"t":{"18":{"position":[[266,6]]},"113":{"position":[[70,6]]}}}],["inspir",{"_index":1135,"t":{"148":{"position":[[193,8]]}}}],["instal",{"_index":33,"t":{"2":{"position":[[394,10],[489,7],[513,9]]},"14":{"position":[[448,10],[543,7],[567,9]]},"27":{"position":[[183,7],[219,7],[279,7]]}}}],["instanc",{"_index":130,"t":{"10":{"position":[[207,8]]},"25":{"position":[[264,9]]},"33":{"position":[[18,8]]},"35":{"position":[[18,8]]},"39":{"position":[[1267,9]]},"47":{"position":[[154,8],[992,9]]},"53":{"position":[[1367,8],[1507,9],[1698,8]]},"55":{"position":[[278,9]]},"63":{"position":[[151,9]]},"79":{"position":[[245,8]]},"83":{"position":[[207,8]]},"89":{"position":[[488,9]]},"95":{"position":[[153,8]]},"99":{"position":[[59,8],[261,8],[473,8]]},"111":{"position":[[243,8],[1651,9],[1868,9],[2039,9]]},"115":{"position":[[218,9]]},"125":{"position":[[50,9],[171,9],[1558,9]]},"136":{"position":[[0,9]]}}}],["instanti",{"_index":184,"t":{"14":{"position":[[277,13]]},"43":{"position":[[217,12]]},"49":{"position":[[77,11]]},"73":{"position":[[680,13]]},"95":{"position":[[305,12]]}}}],["instead",{"_index":408,"t":{"39":{"position":[[1396,8]]},"43":{"position":[[348,8]]},"69":{"position":[[1704,7]]},"77":{"position":[[443,8]]},"79":{"position":[[62,7],[204,7]]},"85":{"position":[[492,7]]},"109":{"position":[[518,8]]},"113":{"position":[[240,7]]}}}],["instruct",{"_index":22,"t":{"2":{"position":[[231,12]]},"75":{"position":[[609,12]]}}}],["insult",{"_index":1053,"t":{"130":{"position":[[605,9]]}}}],["interact",{"_index":1027,"t":{"128":{"position":[[419,8]]},"142":{"position":[[146,11],[206,11],[315,12]]},"144":{"position":[[152,11],[260,11],[320,11]]},"146":{"position":[[270,11]]}}}],["interfac",{"_index":676,"t":{"73":{"position":[[1493,9]]}}}],["intern",{"_index":501,"t":{"53":{"position":[[192,8],[307,8]]},"83":{"position":[[149,8]]}}}],["interpret",{"_index":853,"t":{"107":{"position":[[42,9]]}}}],["introduc",{"_index":679,"t":{"75":{"position":[[100,11]]}}}],["introductori",{"_index":656,"t":{"73":{"position":[[231,12]]}}}],["invers",{"_index":660,"t":{"73":{"position":[[411,10]]}}}],["investig",{"_index":1095,"t":{"136":{"position":[[209,12]]}}}],["invis",{"_index":1009,"t":{"128":{"position":[[171,9]]}}}],["involv",{"_index":1115,"t":{"142":{"position":[[174,9]]},"144":{"position":[[288,9]]}}}],["isn't",{"_index":209,"t":{"16":{"position":[[665,5]]},"39":{"position":[[507,5]]},"43":{"position":[[68,5]]},"51":{"position":[[298,5]]},"87":{"position":[[357,5],[1444,5]]},"99":{"position":[[150,5]]}}}],["isol",{"_index":315,"t":{"25":{"position":[[145,10]]}}}],["issu",{"_index":627,"t":{"69":{"position":[[1449,6]]},"132":{"position":[[363,7]]}}}],["it'",{"_index":42,"t":{"2":{"position":[[508,4]]},"14":{"position":[[562,4]]},"53":{"position":[[288,4]]},"59":{"position":[[595,4],[831,4]]},"69":{"position":[[64,4]]},"71":{"position":[[533,4],[587,4]]},"95":{"position":[[37,4]]},"101":{"position":[[264,4]]},"107":{"position":[[893,4]]},"109":{"position":[[554,4]]},"115":{"position":[[447,4]]},"125":{"position":[[1511,4]]}}}],["it'll",{"_index":122,"t":{"10":{"position":[[40,5]]}}}],["itself",{"_index":504,"t":{"53":{"position":[[475,7],[612,7]]},"71":{"position":[[909,7]]},"87":{"position":[[1558,6]]}}}],["jame",{"_index":658,"t":{"73":{"position":[[389,5]]}}}],["javascript",{"_index":842,"t":{"105":{"position":[[101,11],[967,10]]},"107":{"position":[[361,10]]}}}],["jest",{"_index":323,"t":{"25":{"position":[[536,5]]}}}],["joe",{"_index":985,"t":{"125":{"position":[[1273,3]]}}}],["js",{"_index":862,"t":{"107":{"position":[[976,3]]}}}],["jsservic",{"_index":843,"t":{"105":{"position":[[115,9],[276,9],[339,10],[508,10]]},"107":{"position":[[441,9],[480,9],[690,9],[946,9]]},"109":{"position":[[4,9],[274,9],[337,13],[507,10]]}}}],["jsservice('th",{"_index":896,"t":{"115":{"position":[[119,18]]}}}],["token