diff --git a/404.html b/404.html index 14e70d8e..5b5bd922 100644 --- a/404.html +++ b/404.html @@ -4,13 +4,13 @@ Page Not Found | Pluto - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- + \ No newline at end of file diff --git a/assets/js/1de72b33.c87e27a2.js b/assets/js/1de72b33.d54dd947.js similarity index 96% rename from assets/js/1de72b33.c87e27a2.js rename to assets/js/1de72b33.d54dd947.js index 9485b492..77c0e38a 100644 --- a/assets/js/1de72b33.c87e27a2.js +++ b/assets/js/1de72b33.d54dd947.js @@ -1 +1 @@ -"use strict";(self.webpackChunkpluto=self.webpackChunkpluto||[]).push([[305],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>c});var n=a(7294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var d=n.createContext({}),p=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},s=function(e){var t=p(e.components);return n.createElement(d.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},k=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,i=e.originalType,d=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),u=p(a),k=l,c=u["".concat(d,".").concat(k)]||u[k]||m[k]||i;return a?n.createElement(c,r(r({ref:t},s),{},{components:a})):n.createElement(c,r({ref:t},s))}));function c(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=a.length,r=new Array(i);r[0]=k;var o={};for(var d in t)hasOwnProperty.call(t,d)&&(o[d]=t[d]);o.originalType=e,o[u]="string"==typeof e?e:l,r[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var n=a(7462),l=(a(7294),a(3905));const i={sidebar_position:12},r=void 0,o={unversionedId:"Changelog",id:"Changelog",title:"Changelog",description:"This page contains the changelogs from all releases of Pluto.",source:"@site/docs/Changelog.md",sourceDirName:".",slug:"/Changelog",permalink:"/docs/Changelog",draft:!1,tags:[],version:"current",sidebarPosition:12,frontMatter:{sidebar_position:12},sidebar:"tutorialSidebar",previous:{title:"For Integrators",permalink:"/docs/For Integrators"}},d={},p=[{value:"0.10.0",id:"0100",level:2},{value:"0.9.5",id:"095",level:2},{value:"0.9.4",id:"094",level:2},{value:"0.9.3",id:"093",level:2},{value:"0.9.2",id:"092",level:2},{value:"0.9.1",id:"091",level:2},{value:"0.9.0",id:"090",level:2},{value:"0.8.2",id:"082",level:2},{value:"0.8.1",id:"081",level:2},{value:"0.8.0",id:"080",level:2},{value:"0.7.4",id:"074",level:2},{value:"0.7.3",id:"073",level:2},{value:"0.7.2",id:"072",level:2},{value:"0.7.1",id:"071",level:2},{value:"0.7.0",id:"070",level:2},{value:"0.6.3",id:"063",level:2},{value:"0.6.2",id:"062",level:2},{value:"0.6.1",id:"061",level:2},{value:"0.6.0",id:"060",level:2},{value:"0.5.4",id:"054",level:2},{value:"0.5.3",id:"053",level:2},{value:"0.5.2",id:"052",level:2},{value:"0.5.1",id:"051",level:2},{value:"0.5.0",id:"050",level:2},{value:"0.4.5",id:"045",level:2},{value:"0.4.4",id:"044",level:2},{value:"0.4.3",id:"043",level:2},{value:"0.4.2",id:"042",level:2},{value:"0.4.1",id:"041",level:2},{value:"0.4.0",id:"040",level:2},{value:"0.3.2",id:"032",level:2},{value:"0.3.1",id:"031",level:2},{value:"0.3.0",id:"030",level:2},{value:"0.2.2",id:"022",level:2},{value:"0.2.1",id:"021",level:2},{value:"0.2.0",id:"020",level:2},{value:"0.1.0",id:"010",level:2}],s={toc:p},u="wrapper";function m(e){let{components:t,...a}=e;return(0,l.kt)(u,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"This page contains the changelogs from all ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/PlutoLang/Pluto/releases"},"releases of Pluto"),"."),(0,l.kt)("h2",{id:"0100"},"0.10.0"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added chained comparisons (e.g. ",(0,l.kt)("inlineCode",{parentName:"li"},"1 <= i <= #t"),")"),(0,l.kt)("li",{parentName:"ul"},"Added private methods to classes"),(0,l.kt)("li",{parentName:"ul"},"Private fields (and methods) can be declared and accessed anywhere inside the class now. Previously, you needed to define a private field ",(0,l.kt)("em",{parentName:"li"},"before")," you accessed it. This is no longer a restriction."),(0,l.kt)("li",{parentName:"ul"},"Pluto now automatically detects if non-compatible keywords should be enabled or disabled based on usage",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"This is overwritten by the scripter using ",(0,l.kt)("inlineCode",{parentName:"li"},"pluto_use")," or the integrator or user managing compatibility mode, so it only applies when absolutely zero configuration has been applied. This is a significant improvement for lua source code compatibility. "))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"do")," can now be used instead of ",(0,l.kt)("inlineCode",{parentName:"li"},"then")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"begin")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"if")," expressions are now no longer deprecated but require an ",(0,l.kt)("inlineCode",{parentName:"li"},"end")," (e.g. ",(0,l.kt)("inlineCode",{parentName:"li"},"print(if a then b else c end)"),")"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"$define")," statement now requires an assignment"),(0,l.kt)("li",{parentName:"ul"},"Fixed handling when an invalid RSA private key is passed to crypto.encrypt, crypto.decrypt, crypto.sign"),(0,l.kt)("li",{parentName:"ul"},"Fixed not being able to load Lua C modules on Linux",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"For simplicity in this regard, Pluto now always uses the C ABI to export ",(0,l.kt)("inlineCode",{parentName:"li"},"lua_")," functions and the C++ ABI for ",(0,l.kt)("inlineCode",{parentName:"li"},"pluto_")," functions.")))),(0,l.kt)("p",null,"Standard library:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added canvas library"),(0,l.kt)("li",{parentName:"ul"},"Added ffi library"),(0,l.kt)("li",{parentName:"ul"},"Added regex library"),(0,l.kt)("li",{parentName:"ul"},"Added assert.contains"),(0,l.kt)("li",{parentName:"ul"},"Added bigint.eq, bigint.lt, & bigint.le"),(0,l.kt)("li",{parentName:"ul"},"Added crypto.ripemd160"),(0,l.kt)("li",{parentName:"ul"},"Added crypto.exportkey & crypto.importkey"),(0,l.kt)("li",{parentName:"ul"},"Added crypto.decompress"),(0,l.kt)("li",{parentName:"ul"},"Added string.tohex & string.fromhex"),(0,l.kt)("li",{parentName:"ul"},"Added table.findindex/findkey, table.back, table.keys, table.modget, table.modset, table.slice, table.countvalues, & table.chunk"),(0,l.kt)("li",{parentName:"ul"},"Added socket.getpeer, socket.peek, socket.getside, socket.istls, & socket.isopen"),(0,l.kt)("li",{parentName:"ul"},"Added optional limit argument to string.split"),(0,l.kt)("li",{parentName:"ul"},"Added io.cwd and io.chdir as aliases for io.currentdir"),(0,l.kt)("li",{parentName:"ul"},"socket.starttls can now be used on server sockets"),(0,l.kt)("li",{parentName:"ul"},"Optimized json.encode with ",(0,l.kt)("inlineCode",{parentName:"li"},"__order"))),(0,l.kt)("h2",{id:"095"},"0.9.5"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed io.contents not returning an empty string for empty files on Windows"),(0,l.kt)("li",{parentName:"ul"},"Fixed table.clear not resetting cached length"),(0,l.kt)("li",{parentName:"ul"},"Fixed http.request allowing header values to contain CR and LF (CVE-2024-45597)"),(0,l.kt)("li",{parentName:"ul"},"Fixed strings implicitly concatenating with each other"),(0,l.kt)("li",{parentName:"ul"},"Fixed incorrect formatting with some instances of VM dumping"),(0,l.kt)("li",{parentName:"ul"},"PHP build scripts now pass on additional arguments to the compiler")),(0,l.kt)("p",null,"From Lua:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed wrong code gen for indices with comparisons")),(0,l.kt)("h2",{id:"094"},"0.9.4"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Improved field-shadow warning to say which field is shadowed"),(0,l.kt)("li",{parentName:"ul"},"Improved handing of ",(0,l.kt)("inlineCode",{parentName:"li"},"parent")," keyword"),(0,l.kt)("li",{parentName:"ul"},"Improved error message for ",(0,l.kt)("inlineCode",{parentName:"li"},"if then")),(0,l.kt)("li",{parentName:"ul"},"Fixed an 'else if' warning false-positive"),(0,l.kt)("li",{parentName:"ul"},"Fixed compile-time concat sometimes causing a parse error"),(0,l.kt)("li",{parentName:"ul"},"Fixed infinite loop with nested switch expressions when flow should go to default case"),(0,l.kt)("li",{parentName:"ul"},"Fixed exception when raising argument type mismatch warning when expected type is a function"),(0,l.kt)("li",{parentName:"ul"},"Fixed a compatibility issue with ",(0,l.kt)("inlineCode",{parentName:"li"},"return case"))),(0,l.kt)("p",null,"Standard library:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Made string.replace binary-safe and faster"),(0,l.kt)("li",{parentName:"ul"},"CaT module now supports the optional ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/calamity-inc/Soup/blob/senpai/docs/user/cat.md#value-encoding"},"value encoding")," feature")),(0,l.kt)("h2",{id:"093"},"0.9.3"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added a warning for '(' being used instead of '|' for pipe operator arguments"),(0,l.kt)("li",{parentName:"ul"},"Improved error reporting when an invalid parent is given to 'extends'"),(0,l.kt)("li",{parentName:"ul"},"Fixed extending a global class unexpectedly pushing _G"),(0,l.kt)("li",{parentName:"ul"},"Fixed incorrect results when using 'not' on result of null coalescing operator",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"As a result of this fix, the null coalescing operator is now bytecode-compatible with Lua"))),(0,l.kt)("li",{parentName:"ul"},"Fixed parsing ambiguities with ternary expressions in switch cases")),(0,l.kt)("p",null,"Standard library:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed ",(0,l.kt)("inlineCode",{parentName:"li"},"json.encode(json.decode(..., json.withnull + json.withorder))")," producing unexpected artifacts"),(0,l.kt)("li",{parentName:"ul"},"Fixed data corruption when json.decode is used on large data"),(0,l.kt)("li",{parentName:"ul"},"Fixed insufficient TLS peer verification in HTTP library and socket.starttls in non-WASM builds (CVE-2024-32973)")),(0,l.kt)("h2",{id:"092"},"0.9.2"),(0,l.kt)("p",null,"This release fixes several regressions made in 0.9.1:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed failing to compile on aarch64"),(0,l.kt)("li",{parentName:"ul"},"Fixed method calls no longer working in ternary expressions even with parentheses"),(0,l.kt)("li",{parentName:"ul"},"Fixed walrus operator no longer being usable within unary operator expressions")),(0,l.kt)("p",null,"Furthermore, it improves the walrus operator in regards to disallowing UB and clarifying related error messages."),(0,l.kt)("h2",{id:"091"},"0.9.1"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Improved try/catch"),(0,l.kt)("li",{parentName:"ul"},"Improved parsing of for-as loops"),(0,l.kt)("li",{parentName:"ul"},"Deprecated if expressions (",(0,l.kt)("inlineCode",{parentName:"li"},"if a then b else c"),") in favor of ternary expressions (",(0,l.kt)("inlineCode",{parentName:"li"},"a ? b : c"),")"),(0,l.kt)("li",{parentName:"ul"},"Fixed instances of ",(0,l.kt)("inlineCode",{parentName:"li"},":")," starting method call when it should delimit ternary expression"),(0,l.kt)("li",{parentName:"ul"},"Fixed unreachable-code triggering for non-constant values"),(0,l.kt)("li",{parentName:"ul"},"Fixed repeat + continue being able to read uninitialized variables"),(0,l.kt)("li",{parentName:"ul"},"Fixed break and continue possibly not closing upvalues"),(0,l.kt)("li",{parentName:"ul"},"Fixed continue not working as expected when passing through switch statement"),(0,l.kt)("li",{parentName:"ul"},"Fixed switch cases being able to read uninitialized variables"),(0,l.kt)("li",{parentName:"ul"},"Fixed inconsistent behavior with safe navigtion method calls and multiple return values"),(0,l.kt)("li",{parentName:"ul"},"Fixed walrus operator being able to cause UB or corrupt the stack"),(0,l.kt)("li",{parentName:"ul"},"Fixed pipe operator possibly generating incorrect code")),(0,l.kt)("p",null,"Huge thanks to @XmiliaH for reporting the majority of bugs fixed in this update and helping fix them."),(0,l.kt)("h2",{id:"090"},"0.9.0"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"$define")," statement"),(0,l.kt)("li",{parentName:"ul"},"Added pipe operator (",(0,l.kt)("inlineCode",{parentName:"li"},"|>"),")"),(0,l.kt)("li",{parentName:"ul"},"Added compound XOR operator (",(0,l.kt)("inlineCode",{parentName:"li"},"~="),")"),(0,l.kt)("li",{parentName:"ul"},"Added optional ",(0,l.kt)("inlineCode",{parentName:"li"},"global")," keyword and 'implicit-global' warning"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"@fallthrough")," annotation and 'unannotated-fallthrough' warning"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"")," function attribute and 'discarded-return' warning"),(0,l.kt)("li",{parentName:"ul"},"Added 'field-shadow' warning"),(0,l.kt)("li",{parentName:"ul"},"Lambdas can now have full bodies by starting with 'do' (e.g. ",(0,l.kt)("inlineCode",{parentName:"li"},"|a| -> do return a end"),")"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"pluto_use")," can now also be used via ",(0,l.kt)("inlineCode",{parentName:"li"},"@pluto_use")," in comments"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"new")," operator now also supports static 'new' function"),(0,l.kt)("li",{parentName:"ul"},"Deprecated ",(0,l.kt)("inlineCode",{parentName:"li"},"**")," operator (use ",(0,l.kt)("inlineCode",{parentName:"li"},"^")," instead)"),(0,l.kt)("li",{parentName:"ul"},"Deprecated ",(0,l.kt)("inlineCode",{parentName:"li"},"let")," statement (use ",(0,l.kt)("inlineCode",{parentName:"li"},"local")," instead)"),(0,l.kt)("li",{parentName:"ul"},"Deprecated ",(0,l.kt)("inlineCode",{parentName:"li"},"const")," statement (use ",(0,l.kt)("inlineCode",{parentName:"li"},"local")," with ",(0,l.kt)("inlineCode",{parentName:"li"},"")," or ",(0,l.kt)("inlineCode",{parentName:"li"},"$define")," instead)"),(0,l.kt)("li",{parentName:"ul"},"Deprecated ",(0,l.kt)("inlineCode",{parentName:"li"},"")," attribute (replaced by ",(0,l.kt)("inlineCode",{parentName:"li"},"$define")," statement)"),(0,l.kt)("li",{parentName:"ul"},"Re-added compile-time concat optimization"),(0,l.kt)("li",{parentName:"ul"},"Fixed switch cases being able to jump into the scope of a variable"),(0,l.kt)("li",{parentName:"ul"},"Fixed being able to set ",(0,l.kt)("inlineCode",{parentName:"li"},"nil")," as a default argument")),(0,l.kt)("p",null,"Standard library:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added '*' library"),(0,l.kt)("li",{parentName:"ul"},"Added 'cat' library"),(0,l.kt)("li",{parentName:"ul"},"Added 'http' library"),(0,l.kt)("li",{parentName:"ul"},"Added 'socket' library"),(0,l.kt)("li",{parentName:"ul"},"Added 'xml' library"),(0,l.kt)("li",{parentName:"ul"},"Added 'bigint' class"),(0,l.kt)("li",{parentName:"ul"},"Added 'scheduler' class"),(0,l.kt)("li",{parentName:"ul"},"Added os.platform constant"),(0,l.kt)("li",{parentName:"ul"},"Added range function"),(0,l.kt)("li",{parentName:"ul"},"Added io.contents function"),(0,l.kt)("li",{parentName:"ul"},"Added io.relative function"),(0,l.kt)("li",{parentName:"ul"},"Added copying variants of existing functions (table.sorted, table.mapped, table.filtered, table.reversed, table.reordered)"),(0,l.kt)("li",{parentName:"ul"},"Added table.size function"),(0,l.kt)("li",{parentName:"ul"},"Added table.clear function"),(0,l.kt)("li",{parentName:"ul"},"Added table.reduce, table.min, & table.max functions"),(0,l.kt)("li",{parentName:"ul"},"Added table.find function"),(0,l.kt)("li",{parentName:"ul"},"Added table.checkall function"),(0,l.kt)("li",{parentName:"ul"},"Added coroutine.sleep function"),(0,l.kt)("li",{parentName:"ul"},"Added crypto.generatekeypair function"),(0,l.kt)("li",{parentName:"ul"},"Added crypto.encrypt & crypto.decrypt functions"),(0,l.kt)("li",{parentName:"ul"},"Added crypto.sign & crypto.verify functions"),(0,l.kt)("li",{parentName:"ul"},"Added crypto.sha1, crypto.sha384, & crypto.sha512 functions"),(0,l.kt)("li",{parentName:"ul"},"Added crypto.adler32 function"),(0,l.kt)("li",{parentName:"ul"},"Added url.parse function"),(0,l.kt)("li",{parentName:"ul"},"Added math.round function"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"json.encode")," now supports ",(0,l.kt)("inlineCode",{parentName:"li"},"__order")," for objects"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"json.decode")," now has an optional flags parameter, they can be combined via binary OR",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"json.withnull")," makes it decode JSON nulls as ",(0,l.kt)("inlineCode",{parentName:"li"},"json.null")," instead of ",(0,l.kt)("inlineCode",{parentName:"li"},"nil")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"json.withorder")," makes it produce ",(0,l.kt)("inlineCode",{parentName:"li"},"__order")," field for objects"))),(0,l.kt)("li",{parentName:"ul"},"coroutines/threads now have a metatable by default"),(0,l.kt)("li",{parentName:"ul"},"base64.encode & base32.encode changed padding parameter's default value from false to true (base64.urlencode is unchanged)"),(0,l.kt)("li",{parentName:"ul"},"Fixed crypto.fnv1 & crypto.fnv1a producing incorrect hashes for non-ASCII strings")),(0,l.kt)("p",null,"CLI:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added '-c' flag to pluto & plutoc to enable compatibility mode")),(0,l.kt)("p",null,"For integrators:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_READ_FILE_HOOK")," & ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_WRITE_FILE_HOOK")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_HTTP_REQUEST_HOOK")),(0,l.kt)("li",{parentName:"ul"},"Removed ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_USE_THROW")," as we now default to using C++ exceptions for Lua errors to avoid breaking RAII semantics. You can still specify ",(0,l.kt)("inlineCode",{parentName:"li"},"LUA_USE_LONGJMP")," if you want long jumps.")),(0,l.kt)("h2",{id:"082"},"0.8.2"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added variable scoping warnings to switch statements to highlight code that will break in 0.9.0"),(0,l.kt)("li",{parentName:"ul"},"Improved some error messages"),(0,l.kt)("li",{parentName:"ul"},"Fixed base32 & base64 functions not being binary-safe"),(0,l.kt)("li",{parentName:"ul"},"Removed compile-time concat optimization because it could produce incorrect results")),(0,l.kt)("h2",{id:"081"},"0.8.1"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added a specialized error message for ",(0,l.kt)("inlineCode",{parentName:"li"},"local class =")," etc"),(0,l.kt)("li",{parentName:"ul"},"'exportvar' now prefixes function bytecode with 'load'"),(0,l.kt)("li",{parentName:"ul"},"Improved code generation for switch blocks"),(0,l.kt)("li",{parentName:"ul"},'Improved "possibly unwanted function call" warning'),(0,l.kt)("li",{parentName:"ul"},"Fixed dumpvar & exportvar not handling recursion of sub-tables"),(0,l.kt)("li",{parentName:"ul"},"Fixed assert.equal & assert.nequal ignoring extra fields in value2"),(0,l.kt)("li",{parentName:"ul"},"Fixed 'until' possibly using a variable from wrong scope due to 'continue'"),(0,l.kt)("li",{parentName:"ul"},"Fixed var-shadow warning for named vararg being raised on the wrong line")),(0,l.kt)("p",null,"For integrators:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_MEMORY_LIMIT")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_NO_DEBUGLIB")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_NO_COROLIB"))),(0,l.kt)("p",null,"For a more comprehensive overview of the changes, ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/PlutoLang/Pluto/compare/0.8.0...0.8.1"},"take a look at the commit log"),"."),(0,l.kt)("h2",{id:"080"},"0.8.0"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added switch expressions"),(0,l.kt)("li",{parentName:"ul"},"Added shorthand fallthrough syntax for switch statement & expression, e.g. ",(0,l.kt)("inlineCode",{parentName:"li"},"case 1, 2: ...")),(0,l.kt)("li",{parentName:"ul"},"Added try...catch statement"),(0,l.kt)("li",{parentName:"ul"},"Added spaceship operator (",(0,l.kt)("inlineCode",{parentName:"li"},"<=>"),")"),(0,l.kt)("li",{parentName:"ul"},"Added safe navigation for method calls: ",(0,l.kt)("inlineCode",{parentName:"li"},"nilable_inst?:method()"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"inst:nilable_method?()"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"nilable_inst?:nilable_method?()")),(0,l.kt)("li",{parentName:"ul"},"Added optional 'const' keyword as shorthand for ",(0,l.kt)("inlineCode",{parentName:"li"},"local ... [= ...]"),", enabled with ",(0,l.kt)("inlineCode",{parentName:"li"},"pluto_use const"),"."),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},'pluto_use "VERSION+"')),(0,l.kt)("li",{parentName:"ul"},"Tables now have a metatable by default (",(0,l.kt)("inlineCode",{parentName:"li"},"{ __index = _G.table }"),")."),(0,l.kt)("li",{parentName:"ul"},"Added '!' as an alias for 'not'"),(0,l.kt)("li",{parentName:"ul"},"Added 'private' modifier for class fields"),(0,l.kt)("li",{parentName:"ul"},"Improved 'class' and 'extends' to support indexed names"),(0,l.kt)("li",{parentName:"ul"},"Improved 'instanceof' to be usable with more complex expressions"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"export")," now works in all scopes, not just the main body"),(0,l.kt)("li",{parentName:"ul"},"Updated ",(0,l.kt)("inlineCode",{parentName:"li"},"in")," operator on tables to check values instead of keys"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"\\{")," is now a valid escape sequence (for interpolated strings)"),(0,l.kt)("li",{parentName:"ul"},"Fixed to-be-closed variables not working in switch cases"),(0,l.kt)("li",{parentName:"ul"},"Fixed 'new' not working as expected if it was disabled by the environment and re-enabled by 'pluto_use'"),(0,l.kt)("li",{parentName:"ul"},"Fixed 'enum class' not incrementing enumerator values"),(0,l.kt)("li",{parentName:"ul"},"Fixed not being able to use expressions such as increment in enum without parentheses"),(0,l.kt)("li",{parentName:"ul"},"Added compile-time concat optimization")),(0,l.kt)("p",null,"Warnings:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added warning for local attributes used without '","<","' ... '",">","'"),(0,l.kt)("li",{parentName:"ul"},"Now propagating types for global variables so when their value is assigned to something, mismatches can be detected."),(0,l.kt)("li",{parentName:"ul"},"Added optional ",(0,l.kt)("inlineCode",{parentName:"li"},"global-shadow")," warning which is like ",(0,l.kt)("inlineCode",{parentName:"li"},"var-shadow")," but for globals that are especially vulnerable to obscure shadowing bugs (to prevent excessive annoyance).",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"These globals include: ",(0,l.kt)("inlineCode",{parentName:"li"},"arg"),",",(0,l.kt)("inlineCode",{parentName:"li"},"string"),", and ",(0,l.kt)("inlineCode",{parentName:"li"},"table"),". Integrators can change this via ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_COMMON_GLOBAL_NAMES")),(0,l.kt)("li",{parentName:"ul"},"Global shadow warnings do not apply to localization optimization (i.e, ",(0,l.kt)("inlineCode",{parentName:"li"},"local table = table"),")"))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"var-shadow")," has been improved to check more enclosing scopes"),(0,l.kt)("li",{parentName:"ul"},"Improved ",(0,l.kt)("inlineCode",{parentName:"li"},"unreachable-code")),(0,l.kt)("li",{parentName:"ul"},"Fixed var-shadow warning for locals used in switch cases despite break"),(0,l.kt)("li",{parentName:"ul"},"Added optional ",(0,l.kt)("inlineCode",{parentName:"li"},"non-portable-code"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"non-portable-bytecode"),", and ",(0,l.kt)("inlineCode",{parentName:"li"},"non-portable-name")," warning types"),(0,l.kt)("li",{parentName:"ul"},"Warnings can now be promoted to errors, e.g. ",(0,l.kt)("inlineCode",{parentName:"li"},"@pluto_warnings error-all"))),(0,l.kt)("p",null,"Standard library:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Soup is now always linked in, obsoleting ",(0,l.kt)("inlineCode",{parentName:"li"},"_PSOUP")),(0,l.kt)("li",{parentName:"ul"},"Added assertion library (see ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/PlutoLang/Pluto/pull/426"},"here")," for more preliminary detail)"),(0,l.kt)("li",{parentName:"ul"},"Added url library (encode & decode)"),(0,l.kt)("li",{parentName:"ul"},"Added exception class"),(0,l.kt)("li",{parentName:"ul"},"Added vector3 class"),(0,l.kt)("li",{parentName:"ul"},"Added dumpvar & exportvar"),(0,l.kt)("li",{parentName:"ul"},"Added string.truncate"),(0,l.kt)("li",{parentName:"ul"},"Added string.replace \u2014 a slightly faster, but mostly more straightforward alternative to gsub.",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Most notably, not burdened by ",(0,l.kt)("inlineCode",{parentName:"li"},"MAX_CAPTURES")))),(0,l.kt)("li",{parentName:"ul"},"Added string.formatint (supports any BigInt impl that can offer the user a string representation)",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Also supports any grouping & any separator without concerning locale."))),(0,l.kt)("li",{parentName:"ul"},"Added table.filter"),(0,l.kt)("li",{parentName:"ul"},"Added table.map"),(0,l.kt)("li",{parentName:"ul"},"Added table.reverse"),(0,l.kt)("li",{parentName:"ul"},"Added table.reorder"),(0,l.kt)("li",{parentName:"ul"},"Added io.currentdir"),(0,l.kt)("li",{parentName:"ul"},"Added io.part"),(0,l.kt)("li",{parentName:"ul"},"Added io.writetime"),(0,l.kt)("li",{parentName:"ul"},"Added math.isnan"),(0,l.kt)("li",{parentName:"ul"},"Added compareversions"),(0,l.kt)("li",{parentName:"ul"},"Added wcall"),(0,l.kt)("li",{parentName:"ul"},"Added math.atan2 as an alias for math.atan"),(0,l.kt)("li",{parentName:"ul"},"Added json.null"),(0,l.kt)("li",{parentName:"ul"},"io.absolute now has an optional argument to request a canonicalized absolute path"),(0,l.kt)("li",{parentName:"ul"},"Updated string.rfind to accept Lua patterns"),(0,l.kt)("li",{parentName:"ul"},"Renamed io.copyto to io.copy"),(0,l.kt)("li",{parentName:"ul"},"Renamed base64.url_encode & base64.url_decode to base64.urlencode & base64.urldecode"),(0,l.kt)("li",{parentName:"ul"},"Deprecated string.find_first_of & string.find_first_not_of in favor of string.find"),(0,l.kt)("li",{parentName:"ul"},"Deprecated string.find_last_of & string.find_last_not_of in favor of string.rfind"),(0,l.kt)("li",{parentName:"ul"},"Deprecated string.lfind in favor of string.find"),(0,l.kt)("li",{parentName:"ul"},"Deprecated crypto.hexdigest in favor of string.format"),(0,l.kt)("li",{parentName:"ul"},"Modified ",(0,l.kt)("inlineCode",{parentName:"li"},"require"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Prioritizes local files now to ensure compatibility. Added ",(0,l.kt)("inlineCode",{parentName:"li"},'require("pluto:libname")')," to explicitly request pluto libraries if ever needed (normal still works for pluto libraries, we just check for local files first)."))),(0,l.kt)("li",{parentName:"ul"},"Removed base58")),(0,l.kt)("p",null,"For integrators:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_NO_FILESYSTEM")," - disables all filesystem access (for sandboxing)."),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_WARN_NON_PORTABLE_CODE")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_WARN_NON_PORTABLE_BYTECODE")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_WARN_NON_PORTABLE_NAME")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_NO_BINARIES")," - disables all dll/so/c module loading (for sandboxing)"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"luaG_addsrcinfo"))),(0,l.kt)("p",null,"Far more information can be found at our documentation: ",(0,l.kt)("a",{parentName:"p",href:"https://pluto-lang.org/"},"https://pluto-lang.org/")),(0,l.kt)("h2",{id:"074"},"0.7.4"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed unexpected behavior when using a ternary expression inside of an interpolated string"),(0,l.kt)("li",{parentName:"ul"},"Fixed ",(0,l.kt)("inlineCode",{parentName:"li"},"table.contains")," returning ",(0,l.kt)("inlineCode",{parentName:"li"},"0")," instead of the actual key for non-integer key types"),(0,l.kt)("li",{parentName:"ul"},"Fixed REPL not recognizing multi-line statements"),(0,l.kt)("li",{parentName:"ul"},"Fixed Pluto-injected code corrupting bytecode")),(0,l.kt)("p",null,"For integrators:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_LOADCLIB_HOOK"))),(0,l.kt)("h2",{id:"073"},"0.7.3"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Updated error semantics of os.remove & os.rename to match Lua's again (return false instead of raising error), Pluto's 'io' versions of these functions remain unchanged"),(0,l.kt)("li",{parentName:"ul"},"Fixed ",(0,l.kt)("inlineCode",{parentName:"li"},"extends")," not copying over metamethods"),(0,l.kt)("li",{parentName:"ul"},'Fixed "memory allocation error: block too big" when parsing ',(0,l.kt)("inlineCode",{parentName:"li"},"--[[]]")),(0,l.kt)("li",{parentName:"ul"},"Fixed allowing function calls to primitives, causing ambiguities with exprstat after assignment"),(0,l.kt)("li",{parentName:"ul"},"Fixed string.upper & string.lower delimiting on '\\0'"),(0,l.kt)("li",{parentName:"ul"},"Some other improvements and bugfixes")),(0,l.kt)("h2",{id:"072"},"0.7.2"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"String interpolation now allows nested strings"),(0,l.kt)("li",{parentName:"ul"},'Improved "unreachable code" warning'),(0,l.kt)("li",{parentName:"ul"},"Improved some error messages"),(0,l.kt)("li",{parentName:"ul"},"Fixed string interpolation not working with string call syntax"),(0,l.kt)("li",{parentName:"ul"},"Fixed rare issues with 'new', 'extends' and 'instanceof' operators")),(0,l.kt)("h2",{id:"071"},"0.7.1"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed string interpolation not working with single-quoted strings after 0.7.0"),(0,l.kt)("li",{parentName:"ul"},"Fixed os.sleep disregarding execution time limit"),(0,l.kt)("li",{parentName:"ul"},"Fixed scripts being able to go past execution time limit with coroutines")),(0,l.kt)("h2",{id:"070"},"0.7.0"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added table destructuring (",(0,l.kt)("inlineCode",{parentName:"li"},"local '{' NAME [= FIELD][, ...] '}' '=' TABLE"),")"),(0,l.kt)("li",{parentName:"ul"},"Added array destructuring (",(0,l.kt)("inlineCode",{parentName:"li"},"local '[' NAME[, ...] ']' '=' TABLE"),")"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"pluto_use <* | version | token> [= false]")," to toggle non-compatible keywords"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"pluto_use let [= false]")," to toggle 'let' alias for 'local'"),(0,l.kt)("li",{parentName:"ul"},"Added ++ statement",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Also supports ",(0,l.kt)("inlineCode",{parentName:"li"},"++t.prop")))),(0,l.kt)("li",{parentName:"ul"},"Added constructor promotion"),(0,l.kt)("li",{parentName:"ul"},"Added compile-time conditionals"),(0,l.kt)("li",{parentName:"ul"},"Improved class expression & statement",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Now supports property declaration without value"),(0,l.kt)("li",{parentName:"ul"},"Now supports type hints (currently without warnings)"),(0,l.kt)("li",{parentName:"ul"},"Now supports access modifiers (currently without warnings or errors)"),(0,l.kt)("li",{parentName:"ul"},"Can now optionally use 'begin' before body"))),(0,l.kt)("li",{parentName:"ul"},"Improved string interpolation to support any expression, not just variable names"),(0,l.kt)("li",{parentName:"ul"},"Improved type hints to support alternatives, e.g. ",(0,l.kt)("inlineCode",{parentName:"li"},"string|int")),(0,l.kt)("li",{parentName:"ul"},"Named arguments may now be used in conjunction with positional arguments"),(0,l.kt)("li",{parentName:"ul"},"Improved 'new' expression to support direct member access into the table it created, e.g. ",(0,l.kt)("inlineCode",{parentName:"li"},'print(new Human("John").name)')),(0,l.kt)("li",{parentName:"ul"},"'new' may now also be used as a statement"),(0,l.kt)("li",{parentName:"ul"},"Fixed loading of precompiled code from files with non-Latin path on Windows"),(0,l.kt)("li",{parentName:"ul"},"Fixed behavior of 'in' expression when used on a temporary table")),(0,l.kt)("p",null,"Out-of-the-box Compatibility:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"'parent' may now be overwritten via local or parameter name"),(0,l.kt)("li",{parentName:"ul"},"All reserved identifiers can now be used with shorthand table syntax and goto")),(0,l.kt)("p",null,"Standard library:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added coroutine.xresume")),(0,l.kt)("p",null,"For integrators:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_USE_LET"))),(0,l.kt)("p",null,"More detailed documentation can be found ",(0,l.kt)("a",{parentName:"p",href:"https://pluto-lang.org/"},"here"),"."),(0,l.kt)("h2",{id:"063"},"0.6.3"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Defaults arguments now produce Lua-compatible bytecode"),(0,l.kt)("li",{parentName:"ul"},"Fixed default arguments not working for methods"),(0,l.kt)("li",{parentName:"ul"},"Fixed named arguments, etc. not working for upvalue functions"),(0,l.kt)("li",{parentName:"ul"},"Fixed 'in' expression for when right-hand operand is nested table"),(0,l.kt)("li",{parentName:"ul"},"Fixed 'in' expression being too greedy in consuming righthand operand")),(0,l.kt)("p",null,"For integrators:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added PLUTO_LUA_LINKABLE")),(0,l.kt)("h2",{id:"062"},"0.6.2"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},'Optional Parentheses now works for table types and with chained "suffix expressions"'),(0,l.kt)("li",{parentName:"ul"},"Fixed ",(0,l.kt)("inlineCode",{parentName:"li"},"new")," overwriting user-defined ",(0,l.kt)("inlineCode",{parentName:"li"},"__index")),(0,l.kt)("li",{parentName:"ul"},"Fixed infinite recursion with multi-level parent calls"),(0,l.kt)("li",{parentName:"ul"},"Fixed some other small issues")),(0,l.kt)("p",null,"Performance:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Optimized lua_insert, lua_remove, & lua_replace (Optimization by @gottfriedleibniz)"),(0,l.kt)("li",{parentName:"ul"},"Optimized luaO_ceillog2 (Inspired by @gottfriedleibniz)"),(0,l.kt)("li",{parentName:"ul"},"Enabled Lua's jump table for clang build as well"),(0,l.kt)("li",{parentName:"ul"},"Fixed a VM performance regression introduced by Pluto")),(0,l.kt)("h2",{id:"061"},"0.6.1"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Improved suggestions (for when using plutoc with the language server)"),(0,l.kt)("li",{parentName:"ul"},"Optimized switch statement code generation (now omits cases leading to default case)"),(0,l.kt)("li",{parentName:"ul"},"Fixed producing syntax error when 'case' or 'default' is used outside of switch"),(0,l.kt)("li",{parentName:"ul"},"Fixed using 'export' outside of global scope not producing an error"),(0,l.kt)("li",{parentName:"ul"},"Fixed some confusing error messages"),(0,l.kt)("li",{parentName:"ul"},"Pulled in the latest Lua changes so some Lua bugs are now fixed")),(0,l.kt)("h2",{id:"060"},"0.6.0"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"")," attribute to force locals to be compile-time constants"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"$expr")," syntax for compile-time evaluation of select functions"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"export [NAME=VALUE | function | class]")," syntax"),(0,l.kt)("li",{parentName:"ul"},"Added named arguments (",(0,l.kt)("inlineCode",{parentName:"li"},"name=value")," in funcargs)"),(0,l.kt)("li",{parentName:"ul"},"Added named varargs (",(0,l.kt)("inlineCode",{parentName:"li"},"...NAME"),"), automatically puts the varargs into a table with the given name"),(0,l.kt)("li",{parentName:"ul"},"A subset of Soup is now vendored with Pluto so standard library features that rely on it should now be more viable"),(0,l.kt)("li",{parentName:"ul"},'Removed deprecated "pluto_case" and "pluto_default" keywords'),(0,l.kt)("li",{parentName:"ul"},"Removed ",(0,l.kt)("inlineCode",{parentName:"li"},"when")," statement")),(0,l.kt)("p",null,"Enums:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"ENUM.ENUMERATOR")," syntax for named enums",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"ENUM CLASS NAME ...")," syntax to force usage of this syntax"))),(0,l.kt)("li",{parentName:"ul"},"Added enum reflection for named enums (",(0,l.kt)("inlineCode",{parentName:"li"},":names()"),", ",(0,l.kt)("inlineCode",{parentName:"li"},":values()"),", ",(0,l.kt)("inlineCode",{parentName:"li"},":kvmap()"),", ",(0,l.kt)("inlineCode",{parentName:"li"},":vkmap()"),")")),(0,l.kt)("p",null,"Object-oriented programming:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"new TABLE(...)")," syntax (creates new table, sets TABLE as its metatable + ",(0,l.kt)("strong",{parentName:"li"},"index, calls `:"),"construct(...)` if exists)"),(0,l.kt)("li",{parentName:"ul"},"Added 'class' statement & expression (similar to table but without need for ',' or ';' after properties and functions)",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"'class' and 'local class' statements also support ",(0,l.kt)("inlineCode",{parentName:"li"},"extends NAME")," which sets ",(0,l.kt)("strong",{parentName:"li"},"parent property and metatable with "),"index"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"static function NAME")," for use within table constructor/class definition (equal to ",(0,l.kt)("inlineCode",{parentName:"li"},"NAME = function"),")"))),(0,l.kt)("li",{parentName:"ul"},"Added 'parent' expression",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"parent.PROP")," -> ",(0,l.kt)("inlineCode",{parentName:"li"},"self.__parent.PROP")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"parent:METHOD(...)")," -> ",(0,l.kt)("inlineCode",{parentName:"li"},"self.__parent.METHOD(self, ...)")))),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"TABLE instanceof METATABLE")," operator")),(0,l.kt)("p",null,"Type hints:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added 'int' & 'float' type hints (more restrictive than 'number')"),(0,l.kt)("li",{parentName:"ul"},"Added 'void' type hint for function return type")),(0,l.kt)("p",null,"Standard library:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added utonumber, utostring, & string.uformat"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"instanceof(TABLE, METATABLE)"))),(0,l.kt)("p",null,"For integrators upgrading to Pluto 0.6.0:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Consider defining ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_COMPATIBLE_NEW"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_COMPATIBLE_CLASS"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_COMPATIBLE_PARENT")," & ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_COMPATIBLE_EXPORT")," so 'new', 'class', 'parent' & 'export' will not be reserved keywords just yet, instead 'pluto_new', 'pluto_class', 'pluto_parent' & 'pluto_export' can be used.")),(0,l.kt)("p",null,"More detailed documentation can be found ",(0,l.kt)("a",{parentName:"p",href:"https://pluto-lang.org/"},"here"),"."),(0,l.kt)("h2",{id:"054"},"0.5.4"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Default arguments now support tables"),(0,l.kt)("li",{parentName:"ul"},"Pluto now supports building with C ABI so you can replace Lua's shared library with Pluto's without needing to change the program"),(0,l.kt)("li",{parentName:"ul"},"Fixed ",(0,l.kt)("inlineCode",{parentName:"li"},"return")," before ",(0,l.kt)("inlineCode",{parentName:"li"},"case")," or ",(0,l.kt)("inlineCode",{parentName:"li"},"default")," causing a syntax error"),(0,l.kt)("li",{parentName:"ul"},"Fixed access violation on lua_close with strings as default parameters")),(0,l.kt)("h2",{id:"053"},"0.5.3"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Default arguments now support compile-time constant variables, unary ",(0,l.kt)("inlineCode",{parentName:"li"},"-"),", and pseudo-unary ",(0,l.kt)("inlineCode",{parentName:"li"},"+")),(0,l.kt)("li",{parentName:"ul"},"Re-added ",(0,l.kt)("inlineCode",{parentName:"li"},"os.remove")," & ",(0,l.kt)("inlineCode",{parentName:"li"},"os.rename")," because they originated in Lua and should not have been removed"),(0,l.kt)("li",{parentName:"ul"},"Fixed some instances of errors not providing a code snippet and reporting the wrong line"),(0,l.kt)("li",{parentName:"ul"},"Fixed enumerators being limited to 32-bit values"),(0,l.kt)("li",{parentName:"ul"},"Fixed warning disable/enable being global-only"),(0,l.kt)("li",{parentName:"ul"},"Removed if-goto optimisation due to various edge cases where goto is not executed")),(0,l.kt)("h2",{id:"052"},"0.5.2"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Enum statement: Now supports compile-time constant variables when setting value"),(0,l.kt)("li",{parentName:"ul"},"Fixed ",(0,l.kt)("inlineCode",{parentName:"li"},"require"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"dofile"),", etc. not taking UTF-8 encoded paths on Windows"),(0,l.kt)("li",{parentName:"ul"},"Fixed pluto & plutoc not being able to execute files with foreign names on Windows")),(0,l.kt)("h2",{id:"051"},"0.5.1"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Enum Statement: Now supports unary ",(0,l.kt)("inlineCode",{parentName:"li"},"-")," and pseudo-unary ",(0,l.kt)("inlineCode",{parentName:"li"},"+")," when setting value"),(0,l.kt)("li",{parentName:"ul"},"Replaced locals limit with registers limit so you can have more compile-time constants"),(0,l.kt)("li",{parentName:"ul"},"Fixed Pluto's IO functions not taking UTF-8 encoded paths"),(0,l.kt)("li",{parentName:"ul"},"Fixed UB when emitting unfinished string error, possibly resulting in an access violation")),(0,l.kt)("h2",{id:"050"},"0.5.0"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},'Added "for ITERABLE as VALUE" loop'),(0,l.kt)("li",{parentName:"ul"},"Added $-strings (string interpolation)"),(0,l.kt)("li",{parentName:"ul"},"Added prefix ++ operator"),(0,l.kt)("li",{parentName:"ul"},"Added support for binary number literals."),(0,l.kt)("li",{parentName:"ul"},"Added C-style enums"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"_PSOUP")," global"),(0,l.kt)("li",{parentName:"ul"},"Updated ",(0,l.kt)("inlineCode",{parentName:"li"},"package.path")," to look for .pluto files in working directory by default"),(0,l.kt)("li",{parentName:"ul"},'Deprecated "pluto_case" and "pluto_default" (now "case" and "default", respectively)'),(0,l.kt)("li",{parentName:"ul"},"Removed what was deprecated in 0.4.0 (sleep -> os.sleep, os.remove -> io.remove, os.rename -> io.rename)"),(0,l.kt)("li",{parentName:"ul"},"Added execution time limit (optional, must be enabled in luaconf.h)"),(0,l.kt)("li",{parentName:"ul"},"Added content moderation")),(0,l.kt)("p",null,"Standard Library:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added io.makedirs")),(0,l.kt)("p",null,"Standard Library (Soup):"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"base64")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"base58")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"base32")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"json"))),(0,l.kt)("h2",{id:"045"},"0.4.5"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Improved wording of some warning & error messages"),(0,l.kt)("li",{parentName:"ul"},'Fixed excessive "duplicate local declaration" warnings'),(0,l.kt)("li",{parentName:"ul"},"Cherry-picked some Lua commits, so the following Lua bugs are now fixed:",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"'break' may not properly close variable in a 'for' loop"),(0,l.kt)("li",{parentName:"ul"},"error message in 'table.remove'"),(0,l.kt)("li",{parentName:"ul"},"'utf8.codes' accepts spurious continuation bytes"),(0,l.kt)("li",{parentName:"ul"},"Negation in constant folding of '>>' may overflow"),(0,l.kt)("li",{parentName:"ul"},"stack overflow with nesting of coroutine.close")))),(0,l.kt)("h2",{id:"044"},"0.4.4"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added math.rand as an alias for math.random"),(0,l.kt)("li",{parentName:"ul"},"Changed unknown type hint to be warning instead of error"),(0,l.kt)("li",{parentName:"ul"},"Reverted table.insert optimation due to unexpected behavior"),(0,l.kt)("li",{parentName:"ul"},"Some minor tweaks")),(0,l.kt)("h2",{id:"043"},"0.4.3"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Improved most error messages, and vastly improved the internal code for them."),(0,l.kt)("li",{parentName:"ul"},"These reserved tokens can be used as identifiers outside of their functional context: ",(0,l.kt)("inlineCode",{parentName:"li"},"default"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"case")),(0,l.kt)("li",{parentName:"ul"},"Optimized the performance of ",(0,l.kt)("inlineCode",{parentName:"li"},"table.insert"),". Roughly 3x faster, but still slightly slower than ",(0,l.kt)("inlineCode",{parentName:"li"},"t[#t + 1]")),(0,l.kt)("li",{parentName:"ul"},"Pluto can now be built using ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/calamity-inc/Sun"},"Sun"),".")),(0,l.kt)("h2",{id:"042"},"0.4.2"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixes a regression introduced in Pluto 0.4.1 that prevented the walrus operator from working within lambda functions that are passed as function arguments")),(0,l.kt)("h2",{id:"041"},"0.4.1"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Updated lexer to tokenise in a separate pass",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"This fixes Pluto's error messages sometimes not showing the full line"))),(0,l.kt)("li",{parentName:"ul"},"Disallowed use of the walrus operator within a function call because it was found to be more janky than expected")),(0,l.kt)("h2",{id:"040"},"0.4.0"),(0,l.kt)("p",null,"Additions:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Walrus Operator"),(0,l.kt)("li",{parentName:"ul"},"Default parameters for functions."),(0,l.kt)("li",{parentName:"ul"},"New standard library: ",(0,l.kt)("inlineCode",{parentName:"li"},"lcryptlib"),", for various hash algorithms and cryptographic PRNGs. "),(0,l.kt)("li",{parentName:"ul"},"New warnings:",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Unreachable code."),(0,l.kt)("li",{parentName:"ul"},"Too many function arguments.")))),(0,l.kt)("p",null,"Improvements:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Switch case may now use variables."),(0,l.kt)("li",{parentName:"ul"},"Shorthand ternary syntax from C/C++."),(0,l.kt)("li",{parentName:"ul"},"Warnings can be configured with comments."),(0,l.kt)("li",{parentName:"ul"},"Improved performance of some common arithmetic algorithms."),(0,l.kt)("li",{parentName:"ul"},"VM Dumping has been rewritten for superb runtime detail on all opcodes, their arguments, their results, etc."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"string.upper")," & ",(0,l.kt)("inlineCode",{parentName:"li"},"string.lower")," take a second parameter indicating a specific index to change. Absence of this parameter preserves default behavior.")),(0,l.kt)("h2",{id:"032"},"0.3.2"),(0,l.kt)("p",null,"Improvements:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"io.copyto")," will now overwrite existing files instead of throwing an exception."),(0,l.kt)("li",{parentName:"ul"},"Improve error handling of other exception-prone IO functions.")),(0,l.kt)("h2",{id:"031"},"0.3.1"),(0,l.kt)("p",null,"Bugfix:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"String.split would previously invoke an infinite loop when an empty string is used as the delimiter.")),(0,l.kt)("h2",{id:"030"},"0.3.0"),(0,l.kt)("p",null,"Additions:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Inlined method creation."),(0,l.kt)("li",{parentName:"ul"},"STR in STR expressions."),(0,l.kt)("li",{parentName:"ul"},"KEY in INDEXABLE expressions."),(0,l.kt)("li",{parentName:"ul"},"Generalized iteration, no need for ",(0,l.kt)("inlineCode",{parentName:"li"},"pairs"),"."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"io.listdir")),(0,l.kt)("li",{parentName:"ul"},"Reserved keywords as valid fields."),(0,l.kt)("li",{parentName:"ul"},"Null-coalescing operator (w/ compound operator)."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"continue N")," & ",(0,l.kt)("inlineCode",{parentName:"li"},"break N")," for manipulating outer loops."),(0,l.kt)("li",{parentName:"ul"},"Optional type-hinting, with parser warnings."),(0,l.kt)("li",{parentName:"ul"},'Safe accessor navigation, to avoid "attempt to index nil" errors for deeply nested fields.')),(0,l.kt)("p",null,"Changes:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"table.contains")," now returns an index if found and nil otherwise (previously returned true or false).")),(0,l.kt)("p",null,"Improvements:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Switch no longer has syntactic restrictions"),(0,l.kt)("li",{parentName:"ul"},"Greater switch performance")),(0,l.kt)("p",null,"Documentation for the new changes can be found ",(0,l.kt)("a",{parentName:"p",href:"https://plutolang.github.io/"},"here"),"."),(0,l.kt)("h2",{id:"022"},"0.2.2"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixes a bug with the ",(0,l.kt)("inlineCode",{parentName:"li"},"continue")," keyword")),(0,l.kt)("h2",{id:"021"},"0.2.1"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added VM Dump"),(0,l.kt)("li",{parentName:"ul"},"Implemented long jump optimisation")),(0,l.kt)("h2",{id:"020"},"0.2.0"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added compile-time warnings for duplicate local declarations"),(0,l.kt)("li",{parentName:"ul"},"Added optional ANSI color sequences in various error & warning messages"),(0,l.kt)("li",{parentName:"ul"},"Added support for ternary expressions"),(0,l.kt)("li",{parentName:"ul"},"Added continue statement"),(0,l.kt)("li",{parentName:"ul"},"Added Table Freezing / Immutability"),(0,l.kt)("li",{parentName:"ul"},"Added Switch/Case statements"),(0,l.kt)("li",{parentName:"ul"},"Added user_data to global_State"),(0,l.kt)("li",{parentName:"ul"},"Added !="),(0,l.kt)("li",{parentName:"ul"},"Added compatibility mode"),(0,l.kt)("li",{parentName:"ul"},"Added table.contains"),(0,l.kt)("li",{parentName:"ul"},"Added new time functions to os api"),(0,l.kt)("li",{parentName:"ul"},"Added negative string indexing"),(0,l.kt)("li",{parentName:"ul"},"Added compound concatenation operator"),(0,l.kt)("li",{parentName:"ul"},"Added new string functions"),(0,l.kt)("li",{parentName:"ul"},"Added portable jumptable implementation that can be optionally enabled"),(0,l.kt)("li",{parentName:"ul"},"Added REPEAT .. WHEN loop support"),(0,l.kt)("li",{parentName:"ul"},"Added new IO library functions"),(0,l.kt)("li",{parentName:"ul"},"Added _PVERSION"),(0,l.kt)("li",{parentName:"ul"},"Implemented table length cache optimisation (2x speedup)"),(0,l.kt)("li",{parentName:"ul"},"Implemented optional parentheses around string literals for method invocation"),(0,l.kt)("li",{parentName:"ul"},"Increased local variable limit from 200 to 249"),(0,l.kt)("li",{parentName:"ul"},"Rebased with Lua for latest bugfixes")),(0,l.kt)("h2",{id:"010"},"0.1.0"),(0,l.kt)("p",null,"Initial version."),(0,l.kt)("p",null,"Notable features:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Lambda expressions"),(0,l.kt)("li",{parentName:"ul"},"Arbitrary character insertion in numeral literals"),(0,l.kt)("li",{parentName:"ul"},"Many compound operators"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"**")," exponent operator")))}m.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunkpluto=self.webpackChunkpluto||[]).push([[305],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>c});var n=a(7294);function l(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function r(e){for(var t=1;t=0||(l[a]=e[a]);return l}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(l[a]=e[a])}return l}var d=n.createContext({}),p=function(e){var t=n.useContext(d),a=t;return e&&(a="function"==typeof e?e(t):r(r({},t),e)),a},s=function(e){var t=p(e.components);return n.createElement(d.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},k=n.forwardRef((function(e,t){var a=e.components,l=e.mdxType,i=e.originalType,d=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),u=p(a),k=l,c=u["".concat(d,".").concat(k)]||u[k]||m[k]||i;return a?n.createElement(c,r(r({ref:t},s),{},{components:a})):n.createElement(c,r({ref:t},s))}));function c(e,t){var a=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var i=a.length,r=new Array(i);r[0]=k;var o={};for(var d in t)hasOwnProperty.call(t,d)&&(o[d]=t[d]);o.originalType=e,o[u]="string"==typeof e?e:l,r[1]=o;for(var p=2;p{a.r(t),a.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>p});var n=a(7462),l=(a(7294),a(3905));const i={sidebar_position:12},r=void 0,o={unversionedId:"Changelog",id:"Changelog",title:"Changelog",description:"This page contains the changelogs from all releases of Pluto.",source:"@site/docs/Changelog.md",sourceDirName:".",slug:"/Changelog",permalink:"/docs/Changelog",draft:!1,tags:[],version:"current",sidebarPosition:12,frontMatter:{sidebar_position:12},sidebar:"tutorialSidebar",previous:{title:"For Integrators",permalink:"/docs/For Integrators"}},d={},p=[{value:"0.10.0",id:"0100",level:2},{value:"0.9.5",id:"095",level:2},{value:"0.9.4",id:"094",level:2},{value:"0.9.3",id:"093",level:2},{value:"0.9.2",id:"092",level:2},{value:"0.9.1",id:"091",level:2},{value:"0.9.0",id:"090",level:2},{value:"0.8.2",id:"082",level:2},{value:"0.8.1",id:"081",level:2},{value:"0.8.0",id:"080",level:2},{value:"0.7.4",id:"074",level:2},{value:"0.7.3",id:"073",level:2},{value:"0.7.2",id:"072",level:2},{value:"0.7.1",id:"071",level:2},{value:"0.7.0",id:"070",level:2},{value:"0.6.3",id:"063",level:2},{value:"0.6.2",id:"062",level:2},{value:"0.6.1",id:"061",level:2},{value:"0.6.0",id:"060",level:2},{value:"0.5.4",id:"054",level:2},{value:"0.5.3",id:"053",level:2},{value:"0.5.2",id:"052",level:2},{value:"0.5.1",id:"051",level:2},{value:"0.5.0",id:"050",level:2},{value:"0.4.5",id:"045",level:2},{value:"0.4.4",id:"044",level:2},{value:"0.4.3",id:"043",level:2},{value:"0.4.2",id:"042",level:2},{value:"0.4.1",id:"041",level:2},{value:"0.4.0",id:"040",level:2},{value:"0.3.2",id:"032",level:2},{value:"0.3.1",id:"031",level:2},{value:"0.3.0",id:"030",level:2},{value:"0.2.2",id:"022",level:2},{value:"0.2.1",id:"021",level:2},{value:"0.2.0",id:"020",level:2},{value:"0.1.0",id:"010",level:2}],s={toc:p},u="wrapper";function m(e){let{components:t,...a}=e;return(0,l.kt)(u,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"This page contains the changelogs from all ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/PlutoLang/Pluto/releases"},"releases of Pluto"),"."),(0,l.kt)("h2",{id:"0100"},"0.10.0"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added chained comparisons (e.g. ",(0,l.kt)("inlineCode",{parentName:"li"},"1 <= i <= #t"),")"),(0,l.kt)("li",{parentName:"ul"},"Added private methods to classes"),(0,l.kt)("li",{parentName:"ul"},"Private fields (and methods) can be declared and accessed anywhere inside the class now. Previously, you needed to define a private field ",(0,l.kt)("em",{parentName:"li"},"before")," you accessed it. This is no longer a restriction."),(0,l.kt)("li",{parentName:"ul"},"Pluto now automatically detects if non-compatible keywords should be enabled or disabled based on usage",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"This is overwritten by the scripter using ",(0,l.kt)("inlineCode",{parentName:"li"},"pluto_use")," or the integrator or user managing compatibility mode, so it only applies when absolutely zero configuration has been applied. This is a significant improvement for lua source code compatibility. "))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"do")," can now be used instead of ",(0,l.kt)("inlineCode",{parentName:"li"},"then")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"begin")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"if")," expressions are now no longer deprecated but require an ",(0,l.kt)("inlineCode",{parentName:"li"},"end")," (e.g. ",(0,l.kt)("inlineCode",{parentName:"li"},"print(if a then b else c end)"),")"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"$define")," statement now requires an assignment"),(0,l.kt)("li",{parentName:"ul"},"Fixed not being able to load Lua C modules on Linux",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"For simplicity in this regard, Pluto now always uses the C ABI to export ",(0,l.kt)("inlineCode",{parentName:"li"},"lua_")," functions and the C++ ABI for ",(0,l.kt)("inlineCode",{parentName:"li"},"pluto_")," functions.")))),(0,l.kt)("p",null,"Standard library:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added canvas library"),(0,l.kt)("li",{parentName:"ul"},"Added ffi library"),(0,l.kt)("li",{parentName:"ul"},"Added regex library"),(0,l.kt)("li",{parentName:"ul"},"Added assert.contains"),(0,l.kt)("li",{parentName:"ul"},"Added bigint.eq, bigint.lt, & bigint.le"),(0,l.kt)("li",{parentName:"ul"},"Added crypto.ripemd160"),(0,l.kt)("li",{parentName:"ul"},"Added crypto.exportkey & crypto.importkey"),(0,l.kt)("li",{parentName:"ul"},"Added crypto.decompress"),(0,l.kt)("li",{parentName:"ul"},"Added string.tohex & string.fromhex"),(0,l.kt)("li",{parentName:"ul"},"Added table.findindex/findkey, table.back, table.keys, table.modget, table.modset, table.slice, table.countvalues, & table.chunk"),(0,l.kt)("li",{parentName:"ul"},"Added socket.getpeer, socket.peek, socket.getside, socket.istls, & socket.isopen"),(0,l.kt)("li",{parentName:"ul"},"Added optional limit argument to string.split"),(0,l.kt)("li",{parentName:"ul"},"Added io.cwd and io.chdir as aliases for io.currentdir"),(0,l.kt)("li",{parentName:"ul"},"socket.starttls can now be used on server sockets"),(0,l.kt)("li",{parentName:"ul"},"Optimized json.encode with ",(0,l.kt)("inlineCode",{parentName:"li"},"__order")),(0,l.kt)("li",{parentName:"ul"},"Fixed handling when an invalid RSA private key is passed to crypto.encrypt, crypto.decrypt, crypto.sign")),(0,l.kt)("h2",{id:"095"},"0.9.5"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed io.contents not returning an empty string for empty files on Windows"),(0,l.kt)("li",{parentName:"ul"},"Fixed table.clear not resetting cached length"),(0,l.kt)("li",{parentName:"ul"},"Fixed http.request allowing header values to contain CR and LF (CVE-2024-45597)"),(0,l.kt)("li",{parentName:"ul"},"Fixed strings implicitly concatenating with each other"),(0,l.kt)("li",{parentName:"ul"},"Fixed incorrect formatting with some instances of VM dumping"),(0,l.kt)("li",{parentName:"ul"},"PHP build scripts now pass on additional arguments to the compiler")),(0,l.kt)("p",null,"From Lua:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed wrong code gen for indices with comparisons")),(0,l.kt)("h2",{id:"094"},"0.9.4"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Improved field-shadow warning to say which field is shadowed"),(0,l.kt)("li",{parentName:"ul"},"Improved handing of ",(0,l.kt)("inlineCode",{parentName:"li"},"parent")," keyword"),(0,l.kt)("li",{parentName:"ul"},"Improved error message for ",(0,l.kt)("inlineCode",{parentName:"li"},"if then")),(0,l.kt)("li",{parentName:"ul"},"Fixed an 'else if' warning false-positive"),(0,l.kt)("li",{parentName:"ul"},"Fixed compile-time concat sometimes causing a parse error"),(0,l.kt)("li",{parentName:"ul"},"Fixed infinite loop with nested switch expressions when flow should go to default case"),(0,l.kt)("li",{parentName:"ul"},"Fixed exception when raising argument type mismatch warning when expected type is a function"),(0,l.kt)("li",{parentName:"ul"},"Fixed a compatibility issue with ",(0,l.kt)("inlineCode",{parentName:"li"},"return case"))),(0,l.kt)("p",null,"Standard library:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Made string.replace binary-safe and faster"),(0,l.kt)("li",{parentName:"ul"},"CaT module now supports the optional ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/calamity-inc/Soup/blob/senpai/docs/user/cat.md#value-encoding"},"value encoding")," feature")),(0,l.kt)("h2",{id:"093"},"0.9.3"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added a warning for '(' being used instead of '|' for pipe operator arguments"),(0,l.kt)("li",{parentName:"ul"},"Improved error reporting when an invalid parent is given to 'extends'"),(0,l.kt)("li",{parentName:"ul"},"Fixed extending a global class unexpectedly pushing _G"),(0,l.kt)("li",{parentName:"ul"},"Fixed incorrect results when using 'not' on result of null coalescing operator",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"As a result of this fix, the null coalescing operator is now bytecode-compatible with Lua"))),(0,l.kt)("li",{parentName:"ul"},"Fixed parsing ambiguities with ternary expressions in switch cases")),(0,l.kt)("p",null,"Standard library:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed ",(0,l.kt)("inlineCode",{parentName:"li"},"json.encode(json.decode(..., json.withnull + json.withorder))")," producing unexpected artifacts"),(0,l.kt)("li",{parentName:"ul"},"Fixed data corruption when json.decode is used on large data"),(0,l.kt)("li",{parentName:"ul"},"Fixed insufficient TLS peer verification in HTTP library and socket.starttls in non-WASM builds (CVE-2024-32973)")),(0,l.kt)("h2",{id:"092"},"0.9.2"),(0,l.kt)("p",null,"This release fixes several regressions made in 0.9.1:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed failing to compile on aarch64"),(0,l.kt)("li",{parentName:"ul"},"Fixed method calls no longer working in ternary expressions even with parentheses"),(0,l.kt)("li",{parentName:"ul"},"Fixed walrus operator no longer being usable within unary operator expressions")),(0,l.kt)("p",null,"Furthermore, it improves the walrus operator in regards to disallowing UB and clarifying related error messages."),(0,l.kt)("h2",{id:"091"},"0.9.1"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Improved try/catch"),(0,l.kt)("li",{parentName:"ul"},"Improved parsing of for-as loops"),(0,l.kt)("li",{parentName:"ul"},"Deprecated if expressions (",(0,l.kt)("inlineCode",{parentName:"li"},"if a then b else c"),") in favor of ternary expressions (",(0,l.kt)("inlineCode",{parentName:"li"},"a ? b : c"),")"),(0,l.kt)("li",{parentName:"ul"},"Fixed instances of ",(0,l.kt)("inlineCode",{parentName:"li"},":")," starting method call when it should delimit ternary expression"),(0,l.kt)("li",{parentName:"ul"},"Fixed unreachable-code triggering for non-constant values"),(0,l.kt)("li",{parentName:"ul"},"Fixed repeat + continue being able to read uninitialized variables"),(0,l.kt)("li",{parentName:"ul"},"Fixed break and continue possibly not closing upvalues"),(0,l.kt)("li",{parentName:"ul"},"Fixed continue not working as expected when passing through switch statement"),(0,l.kt)("li",{parentName:"ul"},"Fixed switch cases being able to read uninitialized variables"),(0,l.kt)("li",{parentName:"ul"},"Fixed inconsistent behavior with safe navigtion method calls and multiple return values"),(0,l.kt)("li",{parentName:"ul"},"Fixed walrus operator being able to cause UB or corrupt the stack"),(0,l.kt)("li",{parentName:"ul"},"Fixed pipe operator possibly generating incorrect code")),(0,l.kt)("p",null,"Huge thanks to @XmiliaH for reporting the majority of bugs fixed in this update and helping fix them."),(0,l.kt)("h2",{id:"090"},"0.9.0"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"$define")," statement"),(0,l.kt)("li",{parentName:"ul"},"Added pipe operator (",(0,l.kt)("inlineCode",{parentName:"li"},"|>"),")"),(0,l.kt)("li",{parentName:"ul"},"Added compound XOR operator (",(0,l.kt)("inlineCode",{parentName:"li"},"~="),")"),(0,l.kt)("li",{parentName:"ul"},"Added optional ",(0,l.kt)("inlineCode",{parentName:"li"},"global")," keyword and 'implicit-global' warning"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"@fallthrough")," annotation and 'unannotated-fallthrough' warning"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"")," function attribute and 'discarded-return' warning"),(0,l.kt)("li",{parentName:"ul"},"Added 'field-shadow' warning"),(0,l.kt)("li",{parentName:"ul"},"Lambdas can now have full bodies by starting with 'do' (e.g. ",(0,l.kt)("inlineCode",{parentName:"li"},"|a| -> do return a end"),")"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"pluto_use")," can now also be used via ",(0,l.kt)("inlineCode",{parentName:"li"},"@pluto_use")," in comments"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"new")," operator now also supports static 'new' function"),(0,l.kt)("li",{parentName:"ul"},"Deprecated ",(0,l.kt)("inlineCode",{parentName:"li"},"**")," operator (use ",(0,l.kt)("inlineCode",{parentName:"li"},"^")," instead)"),(0,l.kt)("li",{parentName:"ul"},"Deprecated ",(0,l.kt)("inlineCode",{parentName:"li"},"let")," statement (use ",(0,l.kt)("inlineCode",{parentName:"li"},"local")," instead)"),(0,l.kt)("li",{parentName:"ul"},"Deprecated ",(0,l.kt)("inlineCode",{parentName:"li"},"const")," statement (use ",(0,l.kt)("inlineCode",{parentName:"li"},"local")," with ",(0,l.kt)("inlineCode",{parentName:"li"},"")," or ",(0,l.kt)("inlineCode",{parentName:"li"},"$define")," instead)"),(0,l.kt)("li",{parentName:"ul"},"Deprecated ",(0,l.kt)("inlineCode",{parentName:"li"},"")," attribute (replaced by ",(0,l.kt)("inlineCode",{parentName:"li"},"$define")," statement)"),(0,l.kt)("li",{parentName:"ul"},"Re-added compile-time concat optimization"),(0,l.kt)("li",{parentName:"ul"},"Fixed switch cases being able to jump into the scope of a variable"),(0,l.kt)("li",{parentName:"ul"},"Fixed being able to set ",(0,l.kt)("inlineCode",{parentName:"li"},"nil")," as a default argument")),(0,l.kt)("p",null,"Standard library:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added '*' library"),(0,l.kt)("li",{parentName:"ul"},"Added 'cat' library"),(0,l.kt)("li",{parentName:"ul"},"Added 'http' library"),(0,l.kt)("li",{parentName:"ul"},"Added 'socket' library"),(0,l.kt)("li",{parentName:"ul"},"Added 'xml' library"),(0,l.kt)("li",{parentName:"ul"},"Added 'bigint' class"),(0,l.kt)("li",{parentName:"ul"},"Added 'scheduler' class"),(0,l.kt)("li",{parentName:"ul"},"Added os.platform constant"),(0,l.kt)("li",{parentName:"ul"},"Added range function"),(0,l.kt)("li",{parentName:"ul"},"Added io.contents function"),(0,l.kt)("li",{parentName:"ul"},"Added io.relative function"),(0,l.kt)("li",{parentName:"ul"},"Added copying variants of existing functions (table.sorted, table.mapped, table.filtered, table.reversed, table.reordered)"),(0,l.kt)("li",{parentName:"ul"},"Added table.size function"),(0,l.kt)("li",{parentName:"ul"},"Added table.clear function"),(0,l.kt)("li",{parentName:"ul"},"Added table.reduce, table.min, & table.max functions"),(0,l.kt)("li",{parentName:"ul"},"Added table.find function"),(0,l.kt)("li",{parentName:"ul"},"Added table.checkall function"),(0,l.kt)("li",{parentName:"ul"},"Added coroutine.sleep function"),(0,l.kt)("li",{parentName:"ul"},"Added crypto.generatekeypair function"),(0,l.kt)("li",{parentName:"ul"},"Added crypto.encrypt & crypto.decrypt functions"),(0,l.kt)("li",{parentName:"ul"},"Added crypto.sign & crypto.verify functions"),(0,l.kt)("li",{parentName:"ul"},"Added crypto.sha1, crypto.sha384, & crypto.sha512 functions"),(0,l.kt)("li",{parentName:"ul"},"Added crypto.adler32 function"),(0,l.kt)("li",{parentName:"ul"},"Added url.parse function"),(0,l.kt)("li",{parentName:"ul"},"Added math.round function"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"json.encode")," now supports ",(0,l.kt)("inlineCode",{parentName:"li"},"__order")," for objects"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"json.decode")," now has an optional flags parameter, they can be combined via binary OR",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"json.withnull")," makes it decode JSON nulls as ",(0,l.kt)("inlineCode",{parentName:"li"},"json.null")," instead of ",(0,l.kt)("inlineCode",{parentName:"li"},"nil")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"json.withorder")," makes it produce ",(0,l.kt)("inlineCode",{parentName:"li"},"__order")," field for objects"))),(0,l.kt)("li",{parentName:"ul"},"coroutines/threads now have a metatable by default"),(0,l.kt)("li",{parentName:"ul"},"base64.encode & base32.encode changed padding parameter's default value from false to true (base64.urlencode is unchanged)"),(0,l.kt)("li",{parentName:"ul"},"Fixed crypto.fnv1 & crypto.fnv1a producing incorrect hashes for non-ASCII strings")),(0,l.kt)("p",null,"CLI:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added '-c' flag to pluto & plutoc to enable compatibility mode")),(0,l.kt)("p",null,"For integrators:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_READ_FILE_HOOK")," & ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_WRITE_FILE_HOOK")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_HTTP_REQUEST_HOOK")),(0,l.kt)("li",{parentName:"ul"},"Removed ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_USE_THROW")," as we now default to using C++ exceptions for Lua errors to avoid breaking RAII semantics. You can still specify ",(0,l.kt)("inlineCode",{parentName:"li"},"LUA_USE_LONGJMP")," if you want long jumps.")),(0,l.kt)("h2",{id:"082"},"0.8.2"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added variable scoping warnings to switch statements to highlight code that will break in 0.9.0"),(0,l.kt)("li",{parentName:"ul"},"Improved some error messages"),(0,l.kt)("li",{parentName:"ul"},"Fixed base32 & base64 functions not being binary-safe"),(0,l.kt)("li",{parentName:"ul"},"Removed compile-time concat optimization because it could produce incorrect results")),(0,l.kt)("h2",{id:"081"},"0.8.1"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added a specialized error message for ",(0,l.kt)("inlineCode",{parentName:"li"},"local class =")," etc"),(0,l.kt)("li",{parentName:"ul"},"'exportvar' now prefixes function bytecode with 'load'"),(0,l.kt)("li",{parentName:"ul"},"Improved code generation for switch blocks"),(0,l.kt)("li",{parentName:"ul"},'Improved "possibly unwanted function call" warning'),(0,l.kt)("li",{parentName:"ul"},"Fixed dumpvar & exportvar not handling recursion of sub-tables"),(0,l.kt)("li",{parentName:"ul"},"Fixed assert.equal & assert.nequal ignoring extra fields in value2"),(0,l.kt)("li",{parentName:"ul"},"Fixed 'until' possibly using a variable from wrong scope due to 'continue'"),(0,l.kt)("li",{parentName:"ul"},"Fixed var-shadow warning for named vararg being raised on the wrong line")),(0,l.kt)("p",null,"For integrators:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_MEMORY_LIMIT")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_NO_DEBUGLIB")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_NO_COROLIB"))),(0,l.kt)("p",null,"For a more comprehensive overview of the changes, ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/PlutoLang/Pluto/compare/0.8.0...0.8.1"},"take a look at the commit log"),"."),(0,l.kt)("h2",{id:"080"},"0.8.0"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added switch expressions"),(0,l.kt)("li",{parentName:"ul"},"Added shorthand fallthrough syntax for switch statement & expression, e.g. ",(0,l.kt)("inlineCode",{parentName:"li"},"case 1, 2: ...")),(0,l.kt)("li",{parentName:"ul"},"Added try...catch statement"),(0,l.kt)("li",{parentName:"ul"},"Added spaceship operator (",(0,l.kt)("inlineCode",{parentName:"li"},"<=>"),")"),(0,l.kt)("li",{parentName:"ul"},"Added safe navigation for method calls: ",(0,l.kt)("inlineCode",{parentName:"li"},"nilable_inst?:method()"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"inst:nilable_method?()"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"nilable_inst?:nilable_method?()")),(0,l.kt)("li",{parentName:"ul"},"Added optional 'const' keyword as shorthand for ",(0,l.kt)("inlineCode",{parentName:"li"},"local ... [= ...]"),", enabled with ",(0,l.kt)("inlineCode",{parentName:"li"},"pluto_use const"),"."),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},'pluto_use "VERSION+"')),(0,l.kt)("li",{parentName:"ul"},"Tables now have a metatable by default (",(0,l.kt)("inlineCode",{parentName:"li"},"{ __index = _G.table }"),")."),(0,l.kt)("li",{parentName:"ul"},"Added '!' as an alias for 'not'"),(0,l.kt)("li",{parentName:"ul"},"Added 'private' modifier for class fields"),(0,l.kt)("li",{parentName:"ul"},"Improved 'class' and 'extends' to support indexed names"),(0,l.kt)("li",{parentName:"ul"},"Improved 'instanceof' to be usable with more complex expressions"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"export")," now works in all scopes, not just the main body"),(0,l.kt)("li",{parentName:"ul"},"Updated ",(0,l.kt)("inlineCode",{parentName:"li"},"in")," operator on tables to check values instead of keys"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"\\{")," is now a valid escape sequence (for interpolated strings)"),(0,l.kt)("li",{parentName:"ul"},"Fixed to-be-closed variables not working in switch cases"),(0,l.kt)("li",{parentName:"ul"},"Fixed 'new' not working as expected if it was disabled by the environment and re-enabled by 'pluto_use'"),(0,l.kt)("li",{parentName:"ul"},"Fixed 'enum class' not incrementing enumerator values"),(0,l.kt)("li",{parentName:"ul"},"Fixed not being able to use expressions such as increment in enum without parentheses"),(0,l.kt)("li",{parentName:"ul"},"Added compile-time concat optimization")),(0,l.kt)("p",null,"Warnings:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added warning for local attributes used without '","<","' ... '",">","'"),(0,l.kt)("li",{parentName:"ul"},"Now propagating types for global variables so when their value is assigned to something, mismatches can be detected."),(0,l.kt)("li",{parentName:"ul"},"Added optional ",(0,l.kt)("inlineCode",{parentName:"li"},"global-shadow")," warning which is like ",(0,l.kt)("inlineCode",{parentName:"li"},"var-shadow")," but for globals that are especially vulnerable to obscure shadowing bugs (to prevent excessive annoyance).",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"These globals include: ",(0,l.kt)("inlineCode",{parentName:"li"},"arg"),",",(0,l.kt)("inlineCode",{parentName:"li"},"string"),", and ",(0,l.kt)("inlineCode",{parentName:"li"},"table"),". Integrators can change this via ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_COMMON_GLOBAL_NAMES")),(0,l.kt)("li",{parentName:"ul"},"Global shadow warnings do not apply to localization optimization (i.e, ",(0,l.kt)("inlineCode",{parentName:"li"},"local table = table"),")"))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"var-shadow")," has been improved to check more enclosing scopes"),(0,l.kt)("li",{parentName:"ul"},"Improved ",(0,l.kt)("inlineCode",{parentName:"li"},"unreachable-code")),(0,l.kt)("li",{parentName:"ul"},"Fixed var-shadow warning for locals used in switch cases despite break"),(0,l.kt)("li",{parentName:"ul"},"Added optional ",(0,l.kt)("inlineCode",{parentName:"li"},"non-portable-code"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"non-portable-bytecode"),", and ",(0,l.kt)("inlineCode",{parentName:"li"},"non-portable-name")," warning types"),(0,l.kt)("li",{parentName:"ul"},"Warnings can now be promoted to errors, e.g. ",(0,l.kt)("inlineCode",{parentName:"li"},"@pluto_warnings error-all"))),(0,l.kt)("p",null,"Standard library:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Soup is now always linked in, obsoleting ",(0,l.kt)("inlineCode",{parentName:"li"},"_PSOUP")),(0,l.kt)("li",{parentName:"ul"},"Added assertion library (see ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/PlutoLang/Pluto/pull/426"},"here")," for more preliminary detail)"),(0,l.kt)("li",{parentName:"ul"},"Added url library (encode & decode)"),(0,l.kt)("li",{parentName:"ul"},"Added exception class"),(0,l.kt)("li",{parentName:"ul"},"Added vector3 class"),(0,l.kt)("li",{parentName:"ul"},"Added dumpvar & exportvar"),(0,l.kt)("li",{parentName:"ul"},"Added string.truncate"),(0,l.kt)("li",{parentName:"ul"},"Added string.replace \u2014 a slightly faster, but mostly more straightforward alternative to gsub.",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Most notably, not burdened by ",(0,l.kt)("inlineCode",{parentName:"li"},"MAX_CAPTURES")))),(0,l.kt)("li",{parentName:"ul"},"Added string.formatint (supports any BigInt impl that can offer the user a string representation)",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Also supports any grouping & any separator without concerning locale."))),(0,l.kt)("li",{parentName:"ul"},"Added table.filter"),(0,l.kt)("li",{parentName:"ul"},"Added table.map"),(0,l.kt)("li",{parentName:"ul"},"Added table.reverse"),(0,l.kt)("li",{parentName:"ul"},"Added table.reorder"),(0,l.kt)("li",{parentName:"ul"},"Added io.currentdir"),(0,l.kt)("li",{parentName:"ul"},"Added io.part"),(0,l.kt)("li",{parentName:"ul"},"Added io.writetime"),(0,l.kt)("li",{parentName:"ul"},"Added math.isnan"),(0,l.kt)("li",{parentName:"ul"},"Added compareversions"),(0,l.kt)("li",{parentName:"ul"},"Added wcall"),(0,l.kt)("li",{parentName:"ul"},"Added math.atan2 as an alias for math.atan"),(0,l.kt)("li",{parentName:"ul"},"Added json.null"),(0,l.kt)("li",{parentName:"ul"},"io.absolute now has an optional argument to request a canonicalized absolute path"),(0,l.kt)("li",{parentName:"ul"},"Updated string.rfind to accept Lua patterns"),(0,l.kt)("li",{parentName:"ul"},"Renamed io.copyto to io.copy"),(0,l.kt)("li",{parentName:"ul"},"Renamed base64.url_encode & base64.url_decode to base64.urlencode & base64.urldecode"),(0,l.kt)("li",{parentName:"ul"},"Deprecated string.find_first_of & string.find_first_not_of in favor of string.find"),(0,l.kt)("li",{parentName:"ul"},"Deprecated string.find_last_of & string.find_last_not_of in favor of string.rfind"),(0,l.kt)("li",{parentName:"ul"},"Deprecated string.lfind in favor of string.find"),(0,l.kt)("li",{parentName:"ul"},"Deprecated crypto.hexdigest in favor of string.format"),(0,l.kt)("li",{parentName:"ul"},"Modified ",(0,l.kt)("inlineCode",{parentName:"li"},"require"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Prioritizes local files now to ensure compatibility. Added ",(0,l.kt)("inlineCode",{parentName:"li"},'require("pluto:libname")')," to explicitly request pluto libraries if ever needed (normal still works for pluto libraries, we just check for local files first)."))),(0,l.kt)("li",{parentName:"ul"},"Removed base58")),(0,l.kt)("p",null,"For integrators:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_NO_FILESYSTEM")," - disables all filesystem access (for sandboxing)."),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_WARN_NON_PORTABLE_CODE")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_WARN_NON_PORTABLE_BYTECODE")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_WARN_NON_PORTABLE_NAME")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_NO_BINARIES")," - disables all dll/so/c module loading (for sandboxing)"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"luaG_addsrcinfo"))),(0,l.kt)("p",null,"Far more information can be found at our documentation: ",(0,l.kt)("a",{parentName:"p",href:"https://pluto-lang.org/"},"https://pluto-lang.org/")),(0,l.kt)("h2",{id:"074"},"0.7.4"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed unexpected behavior when using a ternary expression inside of an interpolated string"),(0,l.kt)("li",{parentName:"ul"},"Fixed ",(0,l.kt)("inlineCode",{parentName:"li"},"table.contains")," returning ",(0,l.kt)("inlineCode",{parentName:"li"},"0")," instead of the actual key for non-integer key types"),(0,l.kt)("li",{parentName:"ul"},"Fixed REPL not recognizing multi-line statements"),(0,l.kt)("li",{parentName:"ul"},"Fixed Pluto-injected code corrupting bytecode")),(0,l.kt)("p",null,"For integrators:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_LOADCLIB_HOOK"))),(0,l.kt)("h2",{id:"073"},"0.7.3"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Updated error semantics of os.remove & os.rename to match Lua's again (return false instead of raising error), Pluto's 'io' versions of these functions remain unchanged"),(0,l.kt)("li",{parentName:"ul"},"Fixed ",(0,l.kt)("inlineCode",{parentName:"li"},"extends")," not copying over metamethods"),(0,l.kt)("li",{parentName:"ul"},'Fixed "memory allocation error: block too big" when parsing ',(0,l.kt)("inlineCode",{parentName:"li"},"--[[]]")),(0,l.kt)("li",{parentName:"ul"},"Fixed allowing function calls to primitives, causing ambiguities with exprstat after assignment"),(0,l.kt)("li",{parentName:"ul"},"Fixed string.upper & string.lower delimiting on '\\0'"),(0,l.kt)("li",{parentName:"ul"},"Some other improvements and bugfixes")),(0,l.kt)("h2",{id:"072"},"0.7.2"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"String interpolation now allows nested strings"),(0,l.kt)("li",{parentName:"ul"},'Improved "unreachable code" warning'),(0,l.kt)("li",{parentName:"ul"},"Improved some error messages"),(0,l.kt)("li",{parentName:"ul"},"Fixed string interpolation not working with string call syntax"),(0,l.kt)("li",{parentName:"ul"},"Fixed rare issues with 'new', 'extends' and 'instanceof' operators")),(0,l.kt)("h2",{id:"071"},"0.7.1"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixed string interpolation not working with single-quoted strings after 0.7.0"),(0,l.kt)("li",{parentName:"ul"},"Fixed os.sleep disregarding execution time limit"),(0,l.kt)("li",{parentName:"ul"},"Fixed scripts being able to go past execution time limit with coroutines")),(0,l.kt)("h2",{id:"070"},"0.7.0"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added table destructuring (",(0,l.kt)("inlineCode",{parentName:"li"},"local '{' NAME [= FIELD][, ...] '}' '=' TABLE"),")"),(0,l.kt)("li",{parentName:"ul"},"Added array destructuring (",(0,l.kt)("inlineCode",{parentName:"li"},"local '[' NAME[, ...] ']' '=' TABLE"),")"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"pluto_use <* | version | token> [= false]")," to toggle non-compatible keywords"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"pluto_use let [= false]")," to toggle 'let' alias for 'local'"),(0,l.kt)("li",{parentName:"ul"},"Added ++ statement",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Also supports ",(0,l.kt)("inlineCode",{parentName:"li"},"++t.prop")))),(0,l.kt)("li",{parentName:"ul"},"Added constructor promotion"),(0,l.kt)("li",{parentName:"ul"},"Added compile-time conditionals"),(0,l.kt)("li",{parentName:"ul"},"Improved class expression & statement",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Now supports property declaration without value"),(0,l.kt)("li",{parentName:"ul"},"Now supports type hints (currently without warnings)"),(0,l.kt)("li",{parentName:"ul"},"Now supports access modifiers (currently without warnings or errors)"),(0,l.kt)("li",{parentName:"ul"},"Can now optionally use 'begin' before body"))),(0,l.kt)("li",{parentName:"ul"},"Improved string interpolation to support any expression, not just variable names"),(0,l.kt)("li",{parentName:"ul"},"Improved type hints to support alternatives, e.g. ",(0,l.kt)("inlineCode",{parentName:"li"},"string|int")),(0,l.kt)("li",{parentName:"ul"},"Named arguments may now be used in conjunction with positional arguments"),(0,l.kt)("li",{parentName:"ul"},"Improved 'new' expression to support direct member access into the table it created, e.g. ",(0,l.kt)("inlineCode",{parentName:"li"},'print(new Human("John").name)')),(0,l.kt)("li",{parentName:"ul"},"'new' may now also be used as a statement"),(0,l.kt)("li",{parentName:"ul"},"Fixed loading of precompiled code from files with non-Latin path on Windows"),(0,l.kt)("li",{parentName:"ul"},"Fixed behavior of 'in' expression when used on a temporary table")),(0,l.kt)("p",null,"Out-of-the-box Compatibility:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"'parent' may now be overwritten via local or parameter name"),(0,l.kt)("li",{parentName:"ul"},"All reserved identifiers can now be used with shorthand table syntax and goto")),(0,l.kt)("p",null,"Standard library:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added coroutine.xresume")),(0,l.kt)("p",null,"For integrators:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_USE_LET"))),(0,l.kt)("p",null,"More detailed documentation can be found ",(0,l.kt)("a",{parentName:"p",href:"https://pluto-lang.org/"},"here"),"."),(0,l.kt)("h2",{id:"063"},"0.6.3"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Defaults arguments now produce Lua-compatible bytecode"),(0,l.kt)("li",{parentName:"ul"},"Fixed default arguments not working for methods"),(0,l.kt)("li",{parentName:"ul"},"Fixed named arguments, etc. not working for upvalue functions"),(0,l.kt)("li",{parentName:"ul"},"Fixed 'in' expression for when right-hand operand is nested table"),(0,l.kt)("li",{parentName:"ul"},"Fixed 'in' expression being too greedy in consuming righthand operand")),(0,l.kt)("p",null,"For integrators:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added PLUTO_LUA_LINKABLE")),(0,l.kt)("h2",{id:"062"},"0.6.2"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},'Optional Parentheses now works for table types and with chained "suffix expressions"'),(0,l.kt)("li",{parentName:"ul"},"Fixed ",(0,l.kt)("inlineCode",{parentName:"li"},"new")," overwriting user-defined ",(0,l.kt)("inlineCode",{parentName:"li"},"__index")),(0,l.kt)("li",{parentName:"ul"},"Fixed infinite recursion with multi-level parent calls"),(0,l.kt)("li",{parentName:"ul"},"Fixed some other small issues")),(0,l.kt)("p",null,"Performance:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Optimized lua_insert, lua_remove, & lua_replace (Optimization by @gottfriedleibniz)"),(0,l.kt)("li",{parentName:"ul"},"Optimized luaO_ceillog2 (Inspired by @gottfriedleibniz)"),(0,l.kt)("li",{parentName:"ul"},"Enabled Lua's jump table for clang build as well"),(0,l.kt)("li",{parentName:"ul"},"Fixed a VM performance regression introduced by Pluto")),(0,l.kt)("h2",{id:"061"},"0.6.1"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Improved suggestions (for when using plutoc with the language server)"),(0,l.kt)("li",{parentName:"ul"},"Optimized switch statement code generation (now omits cases leading to default case)"),(0,l.kt)("li",{parentName:"ul"},"Fixed producing syntax error when 'case' or 'default' is used outside of switch"),(0,l.kt)("li",{parentName:"ul"},"Fixed using 'export' outside of global scope not producing an error"),(0,l.kt)("li",{parentName:"ul"},"Fixed some confusing error messages"),(0,l.kt)("li",{parentName:"ul"},"Pulled in the latest Lua changes so some Lua bugs are now fixed")),(0,l.kt)("h2",{id:"060"},"0.6.0"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"")," attribute to force locals to be compile-time constants"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"$expr")," syntax for compile-time evaluation of select functions"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"export [NAME=VALUE | function | class]")," syntax"),(0,l.kt)("li",{parentName:"ul"},"Added named arguments (",(0,l.kt)("inlineCode",{parentName:"li"},"name=value")," in funcargs)"),(0,l.kt)("li",{parentName:"ul"},"Added named varargs (",(0,l.kt)("inlineCode",{parentName:"li"},"...NAME"),"), automatically puts the varargs into a table with the given name"),(0,l.kt)("li",{parentName:"ul"},"A subset of Soup is now vendored with Pluto so standard library features that rely on it should now be more viable"),(0,l.kt)("li",{parentName:"ul"},'Removed deprecated "pluto_case" and "pluto_default" keywords'),(0,l.kt)("li",{parentName:"ul"},"Removed ",(0,l.kt)("inlineCode",{parentName:"li"},"when")," statement")),(0,l.kt)("p",null,"Enums:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"ENUM.ENUMERATOR")," syntax for named enums",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"ENUM CLASS NAME ...")," syntax to force usage of this syntax"))),(0,l.kt)("li",{parentName:"ul"},"Added enum reflection for named enums (",(0,l.kt)("inlineCode",{parentName:"li"},":names()"),", ",(0,l.kt)("inlineCode",{parentName:"li"},":values()"),", ",(0,l.kt)("inlineCode",{parentName:"li"},":kvmap()"),", ",(0,l.kt)("inlineCode",{parentName:"li"},":vkmap()"),")")),(0,l.kt)("p",null,"Object-oriented programming:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"new TABLE(...)")," syntax (creates new table, sets TABLE as its metatable + ",(0,l.kt)("strong",{parentName:"li"},"index, calls `:"),"construct(...)` if exists)"),(0,l.kt)("li",{parentName:"ul"},"Added 'class' statement & expression (similar to table but without need for ',' or ';' after properties and functions)",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"'class' and 'local class' statements also support ",(0,l.kt)("inlineCode",{parentName:"li"},"extends NAME")," which sets ",(0,l.kt)("strong",{parentName:"li"},"parent property and metatable with "),"index"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"static function NAME")," for use within table constructor/class definition (equal to ",(0,l.kt)("inlineCode",{parentName:"li"},"NAME = function"),")"))),(0,l.kt)("li",{parentName:"ul"},"Added 'parent' expression",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"parent.PROP")," -> ",(0,l.kt)("inlineCode",{parentName:"li"},"self.__parent.PROP")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"parent:METHOD(...)")," -> ",(0,l.kt)("inlineCode",{parentName:"li"},"self.__parent.METHOD(self, ...)")))),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"TABLE instanceof METATABLE")," operator")),(0,l.kt)("p",null,"Type hints:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added 'int' & 'float' type hints (more restrictive than 'number')"),(0,l.kt)("li",{parentName:"ul"},"Added 'void' type hint for function return type")),(0,l.kt)("p",null,"Standard library:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added utonumber, utostring, & string.uformat"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"instanceof(TABLE, METATABLE)"))),(0,l.kt)("p",null,"For integrators upgrading to Pluto 0.6.0:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Consider defining ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_COMPATIBLE_NEW"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_COMPATIBLE_CLASS"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_COMPATIBLE_PARENT")," & ",(0,l.kt)("inlineCode",{parentName:"li"},"PLUTO_COMPATIBLE_EXPORT")," so 'new', 'class', 'parent' & 'export' will not be reserved keywords just yet, instead 'pluto_new', 'pluto_class', 'pluto_parent' & 'pluto_export' can be used.")),(0,l.kt)("p",null,"More detailed documentation can be found ",(0,l.kt)("a",{parentName:"p",href:"https://pluto-lang.org/"},"here"),"."),(0,l.kt)("h2",{id:"054"},"0.5.4"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Default arguments now support tables"),(0,l.kt)("li",{parentName:"ul"},"Pluto now supports building with C ABI so you can replace Lua's shared library with Pluto's without needing to change the program"),(0,l.kt)("li",{parentName:"ul"},"Fixed ",(0,l.kt)("inlineCode",{parentName:"li"},"return")," before ",(0,l.kt)("inlineCode",{parentName:"li"},"case")," or ",(0,l.kt)("inlineCode",{parentName:"li"},"default")," causing a syntax error"),(0,l.kt)("li",{parentName:"ul"},"Fixed access violation on lua_close with strings as default parameters")),(0,l.kt)("h2",{id:"053"},"0.5.3"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Default arguments now support compile-time constant variables, unary ",(0,l.kt)("inlineCode",{parentName:"li"},"-"),", and pseudo-unary ",(0,l.kt)("inlineCode",{parentName:"li"},"+")),(0,l.kt)("li",{parentName:"ul"},"Re-added ",(0,l.kt)("inlineCode",{parentName:"li"},"os.remove")," & ",(0,l.kt)("inlineCode",{parentName:"li"},"os.rename")," because they originated in Lua and should not have been removed"),(0,l.kt)("li",{parentName:"ul"},"Fixed some instances of errors not providing a code snippet and reporting the wrong line"),(0,l.kt)("li",{parentName:"ul"},"Fixed enumerators being limited to 32-bit values"),(0,l.kt)("li",{parentName:"ul"},"Fixed warning disable/enable being global-only"),(0,l.kt)("li",{parentName:"ul"},"Removed if-goto optimisation due to various edge cases where goto is not executed")),(0,l.kt)("h2",{id:"052"},"0.5.2"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Enum statement: Now supports compile-time constant variables when setting value"),(0,l.kt)("li",{parentName:"ul"},"Fixed ",(0,l.kt)("inlineCode",{parentName:"li"},"require"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"dofile"),", etc. not taking UTF-8 encoded paths on Windows"),(0,l.kt)("li",{parentName:"ul"},"Fixed pluto & plutoc not being able to execute files with foreign names on Windows")),(0,l.kt)("h2",{id:"051"},"0.5.1"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Enum Statement: Now supports unary ",(0,l.kt)("inlineCode",{parentName:"li"},"-")," and pseudo-unary ",(0,l.kt)("inlineCode",{parentName:"li"},"+")," when setting value"),(0,l.kt)("li",{parentName:"ul"},"Replaced locals limit with registers limit so you can have more compile-time constants"),(0,l.kt)("li",{parentName:"ul"},"Fixed Pluto's IO functions not taking UTF-8 encoded paths"),(0,l.kt)("li",{parentName:"ul"},"Fixed UB when emitting unfinished string error, possibly resulting in an access violation")),(0,l.kt)("h2",{id:"050"},"0.5.0"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},'Added "for ITERABLE as VALUE" loop'),(0,l.kt)("li",{parentName:"ul"},"Added $-strings (string interpolation)"),(0,l.kt)("li",{parentName:"ul"},"Added prefix ++ operator"),(0,l.kt)("li",{parentName:"ul"},"Added support for binary number literals."),(0,l.kt)("li",{parentName:"ul"},"Added C-style enums"),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"_PSOUP")," global"),(0,l.kt)("li",{parentName:"ul"},"Updated ",(0,l.kt)("inlineCode",{parentName:"li"},"package.path")," to look for .pluto files in working directory by default"),(0,l.kt)("li",{parentName:"ul"},'Deprecated "pluto_case" and "pluto_default" (now "case" and "default", respectively)'),(0,l.kt)("li",{parentName:"ul"},"Removed what was deprecated in 0.4.0 (sleep -> os.sleep, os.remove -> io.remove, os.rename -> io.rename)"),(0,l.kt)("li",{parentName:"ul"},"Added execution time limit (optional, must be enabled in luaconf.h)"),(0,l.kt)("li",{parentName:"ul"},"Added content moderation")),(0,l.kt)("p",null,"Standard Library:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added io.makedirs")),(0,l.kt)("p",null,"Standard Library (Soup):"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"base64")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"base58")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"base32")),(0,l.kt)("li",{parentName:"ul"},"Added ",(0,l.kt)("inlineCode",{parentName:"li"},"json"))),(0,l.kt)("h2",{id:"045"},"0.4.5"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Improved wording of some warning & error messages"),(0,l.kt)("li",{parentName:"ul"},'Fixed excessive "duplicate local declaration" warnings'),(0,l.kt)("li",{parentName:"ul"},"Cherry-picked some Lua commits, so the following Lua bugs are now fixed:",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"'break' may not properly close variable in a 'for' loop"),(0,l.kt)("li",{parentName:"ul"},"error message in 'table.remove'"),(0,l.kt)("li",{parentName:"ul"},"'utf8.codes' accepts spurious continuation bytes"),(0,l.kt)("li",{parentName:"ul"},"Negation in constant folding of '>>' may overflow"),(0,l.kt)("li",{parentName:"ul"},"stack overflow with nesting of coroutine.close")))),(0,l.kt)("h2",{id:"044"},"0.4.4"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added math.rand as an alias for math.random"),(0,l.kt)("li",{parentName:"ul"},"Changed unknown type hint to be warning instead of error"),(0,l.kt)("li",{parentName:"ul"},"Reverted table.insert optimation due to unexpected behavior"),(0,l.kt)("li",{parentName:"ul"},"Some minor tweaks")),(0,l.kt)("h2",{id:"043"},"0.4.3"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Improved most error messages, and vastly improved the internal code for them."),(0,l.kt)("li",{parentName:"ul"},"These reserved tokens can be used as identifiers outside of their functional context: ",(0,l.kt)("inlineCode",{parentName:"li"},"default"),", ",(0,l.kt)("inlineCode",{parentName:"li"},"case")),(0,l.kt)("li",{parentName:"ul"},"Optimized the performance of ",(0,l.kt)("inlineCode",{parentName:"li"},"table.insert"),". Roughly 3x faster, but still slightly slower than ",(0,l.kt)("inlineCode",{parentName:"li"},"t[#t + 1]")),(0,l.kt)("li",{parentName:"ul"},"Pluto can now be built using ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/calamity-inc/Sun"},"Sun"),".")),(0,l.kt)("h2",{id:"042"},"0.4.2"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixes a regression introduced in Pluto 0.4.1 that prevented the walrus operator from working within lambda functions that are passed as function arguments")),(0,l.kt)("h2",{id:"041"},"0.4.1"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Updated lexer to tokenise in a separate pass",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"This fixes Pluto's error messages sometimes not showing the full line"))),(0,l.kt)("li",{parentName:"ul"},"Disallowed use of the walrus operator within a function call because it was found to be more janky than expected")),(0,l.kt)("h2",{id:"040"},"0.4.0"),(0,l.kt)("p",null,"Additions:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Walrus Operator"),(0,l.kt)("li",{parentName:"ul"},"Default parameters for functions."),(0,l.kt)("li",{parentName:"ul"},"New standard library: ",(0,l.kt)("inlineCode",{parentName:"li"},"lcryptlib"),", for various hash algorithms and cryptographic PRNGs. "),(0,l.kt)("li",{parentName:"ul"},"New warnings:",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"Unreachable code."),(0,l.kt)("li",{parentName:"ul"},"Too many function arguments.")))),(0,l.kt)("p",null,"Improvements:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Switch case may now use variables."),(0,l.kt)("li",{parentName:"ul"},"Shorthand ternary syntax from C/C++."),(0,l.kt)("li",{parentName:"ul"},"Warnings can be configured with comments."),(0,l.kt)("li",{parentName:"ul"},"Improved performance of some common arithmetic algorithms."),(0,l.kt)("li",{parentName:"ul"},"VM Dumping has been rewritten for superb runtime detail on all opcodes, their arguments, their results, etc."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"string.upper")," & ",(0,l.kt)("inlineCode",{parentName:"li"},"string.lower")," take a second parameter indicating a specific index to change. Absence of this parameter preserves default behavior.")),(0,l.kt)("h2",{id:"032"},"0.3.2"),(0,l.kt)("p",null,"Improvements:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"io.copyto")," will now overwrite existing files instead of throwing an exception."),(0,l.kt)("li",{parentName:"ul"},"Improve error handling of other exception-prone IO functions.")),(0,l.kt)("h2",{id:"031"},"0.3.1"),(0,l.kt)("p",null,"Bugfix:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"String.split would previously invoke an infinite loop when an empty string is used as the delimiter.")),(0,l.kt)("h2",{id:"030"},"0.3.0"),(0,l.kt)("p",null,"Additions:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Inlined method creation."),(0,l.kt)("li",{parentName:"ul"},"STR in STR expressions."),(0,l.kt)("li",{parentName:"ul"},"KEY in INDEXABLE expressions."),(0,l.kt)("li",{parentName:"ul"},"Generalized iteration, no need for ",(0,l.kt)("inlineCode",{parentName:"li"},"pairs"),"."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"io.listdir")),(0,l.kt)("li",{parentName:"ul"},"Reserved keywords as valid fields."),(0,l.kt)("li",{parentName:"ul"},"Null-coalescing operator (w/ compound operator)."),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"continue N")," & ",(0,l.kt)("inlineCode",{parentName:"li"},"break N")," for manipulating outer loops."),(0,l.kt)("li",{parentName:"ul"},"Optional type-hinting, with parser warnings."),(0,l.kt)("li",{parentName:"ul"},'Safe accessor navigation, to avoid "attempt to index nil" errors for deeply nested fields.')),(0,l.kt)("p",null,"Changes:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"table.contains")," now returns an index if found and nil otherwise (previously returned true or false).")),(0,l.kt)("p",null,"Improvements:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Switch no longer has syntactic restrictions"),(0,l.kt)("li",{parentName:"ul"},"Greater switch performance")),(0,l.kt)("p",null,"Documentation for the new changes can be found ",(0,l.kt)("a",{parentName:"p",href:"https://plutolang.github.io/"},"here"),"."),(0,l.kt)("h2",{id:"022"},"0.2.2"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Fixes a bug with the ",(0,l.kt)("inlineCode",{parentName:"li"},"continue")," keyword")),(0,l.kt)("h2",{id:"021"},"0.2.1"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added VM Dump"),(0,l.kt)("li",{parentName:"ul"},"Implemented long jump optimisation")),(0,l.kt)("h2",{id:"020"},"0.2.0"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added compile-time warnings for duplicate local declarations"),(0,l.kt)("li",{parentName:"ul"},"Added optional ANSI color sequences in various error & warning messages"),(0,l.kt)("li",{parentName:"ul"},"Added support for ternary expressions"),(0,l.kt)("li",{parentName:"ul"},"Added continue statement"),(0,l.kt)("li",{parentName:"ul"},"Added Table Freezing / Immutability"),(0,l.kt)("li",{parentName:"ul"},"Added Switch/Case statements"),(0,l.kt)("li",{parentName:"ul"},"Added user_data to global_State"),(0,l.kt)("li",{parentName:"ul"},"Added !="),(0,l.kt)("li",{parentName:"ul"},"Added compatibility mode"),(0,l.kt)("li",{parentName:"ul"},"Added table.contains"),(0,l.kt)("li",{parentName:"ul"},"Added new time functions to os api"),(0,l.kt)("li",{parentName:"ul"},"Added negative string indexing"),(0,l.kt)("li",{parentName:"ul"},"Added compound concatenation operator"),(0,l.kt)("li",{parentName:"ul"},"Added new string functions"),(0,l.kt)("li",{parentName:"ul"},"Added portable jumptable implementation that can be optionally enabled"),(0,l.kt)("li",{parentName:"ul"},"Added REPEAT .. WHEN loop support"),(0,l.kt)("li",{parentName:"ul"},"Added new IO library functions"),(0,l.kt)("li",{parentName:"ul"},"Added _PVERSION"),(0,l.kt)("li",{parentName:"ul"},"Implemented table length cache optimisation (2x speedup)"),(0,l.kt)("li",{parentName:"ul"},"Implemented optional parentheses around string literals for method invocation"),(0,l.kt)("li",{parentName:"ul"},"Increased local variable limit from 200 to 249"),(0,l.kt)("li",{parentName:"ul"},"Rebased with Lua for latest bugfixes")),(0,l.kt)("h2",{id:"010"},"0.1.0"),(0,l.kt)("p",null,"Initial version."),(0,l.kt)("p",null,"Notable features:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Lambda expressions"),(0,l.kt)("li",{parentName:"ul"},"Arbitrary character insertion in numeral literals"),(0,l.kt)("li",{parentName:"ul"},"Many compound operators"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"**")," exponent operator")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.26c4aa6b.js b/assets/js/runtime~main.5c7406db.js similarity index 99% rename from assets/js/runtime~main.26c4aa6b.js rename to assets/js/runtime~main.5c7406db.js index c209d6c2..67425e6b 100644 --- a/assets/js/runtime~main.26c4aa6b.js +++ b/assets/js/runtime~main.5c7406db.js @@ -1 +1 @@ -(()=>{"use strict";var e,f,a,d,c,b={},t={};function r(e){var f=t[e];if(void 0!==f)return f.exports;var a=t[e]={exports:{}};return b[e].call(a.exports,a,a.exports,r),a.exports}r.m=b,e=[],r.O=(f,a,d,c)=>{if(!a){var b=1/0;for(i=0;i=c)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[a,d,c]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};f=f||[null,a({}),a([]),a(a)];for(var t=2&d&&e;"object"==typeof t&&!~f.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((f=>b[f]=()=>e[f]));return b.default=()=>e,r.d(c,b),c},r.d=(e,f)=>{for(var a in f)r.o(f,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:f[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,a)=>(r.f[a](e,f),f)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",58:"8b32d810",60:"2e9aabad",305:"1de72b33",394:"e0a19902",684:"5b3ce2d7",821:"ed6b6a43",1044:"f2f8d974",1155:"dd7a9681",2049:"5572491f",2427:"c459eb7d",2674:"0034903a",2704:"02389cdc",2797:"e4b9287f",2890:"871e1111",3466:"83156343",3577:"d037c94c",3583:"8e3b1f2f",3616:"c79b562e",3990:"e86e00b1",4043:"30212137",4195:"c4f5d8e4",4250:"ab6d44ab",4452:"1e33aabf",4456:"14fb3a76",4582:"883b1a08",4723:"2fe108ae",4889:"fe59fd14",5037:"abac9f7e",5049:"8d8f025d",5091:"30d00a07",5181:"413eb15f",5277:"ef218fa5",5283:"d81fa0e5",5461:"3eb63321",5498:"9f43fc60",5507:"8c64e7a6",5559:"8d7b091f",5881:"389ebece",5895:"853dab43",5922:"53537473",5992:"3ba36259",6038:"7efe30ee",6100:"3d1a2b43",6282:"ddde9844",6355:"186e575c",6442:"f1fa4584",6668:"04c377ef",6705:"54c50845",6771:"02b1ccdd",6890:"f18b32fa",6916:"e22c3ce6",7150:"1efc24b5",7196:"dfdf755e",7234:"9e2b6020",7437:"4dbc4eab",7508:"998c02ee",7784:"26960d50",7846:"a87c8fc0",7906:"5c990b78",7918:"17896441",7920:"1a4e3797",8281:"d08eaa4d",8387:"bced9760",8400:"20639b4d",8452:"41586035",8544:"337e617e",8618:"6c9c7408",8870:"1f9adaf9",8987:"95224dc4",9101:"bd751cc9",9190:"1f68d8b4",9217:"5b328157",9279:"6d37f50b",9415:"f5454c7f",9432:"95939464",9514:"1be78505",9817:"14eb3368",9907:"e358ed3f",9956:"62afbdfe"}[e]||e)+"."+{53:"d30cdfdf",58:"ee267326",60:"6500e928",305:"c87e27a2",394:"45e0ff03",684:"40bac81c",821:"1af1e15a",1044:"2d9cc4e9",1155:"18c9c860",2049:"d83b8a9a",2427:"9b6af93c",2674:"1fd9dcf7",2704:"7c9a9332",2797:"f0bc8658",2890:"6b7e451c",3466:"0a7cfa6e",3577:"3d876123",3583:"db7ee579",3616:"1f5898bf",3990:"b08f3f7e",4043:"3fd95aa8",4195:"a83f9df5",4250:"b9bf4f02",4452:"740b8d7f",4456:"28bcf989",4582:"976ae476",4723:"228dcf25",4889:"c142d4d6",4972:"50741f71",5037:"1cf438e4",5049:"77c0c71b",5091:"9c0dcb44",5181:"40ef8433",5277:"d7625c94",5283:"9cff45c9",5461:"1ffe6dce",5498:"d877bf45",5507:"130a079e",5525:"286e47bc",5559:"d1e61a21",5881:"9835871c",5895:"c803efb4",5922:"e7627f3a",5992:"5631d536",6038:"8d4d5eec",6100:"959e1c7f",6282:"96c49a2b",6355:"0925380f",6442:"9dea4016",6668:"3443e1c8",6705:"de9a74ce",6771:"ba8e064c",6890:"8d80f347",6916:"7161a989",7150:"29850f78",7196:"ea9dab51",7234:"b2bd9a7d",7437:"010cb1bf",7508:"918ea713",7784:"f928c9d1",7846:"1dfeefee",7906:"9e01b410",7918:"4c851e46",7920:"b9fe7bb8",8281:"66357ea1",8387:"38f82b3a",8400:"767a0ba1",8443:"15145b3e",8452:"7b46d7d7",8544:"662ef69f",8618:"343313bc",8870:"b9d09c29",8987:"d34c5b1a",9101:"35c00209",9190:"39e450b1",9217:"c3cc5a3e",9279:"a4bc036a",9415:"dd77faa6",9432:"222be0e8",9514:"a62113cd",9817:"244d9ab5",9907:"1bb9ef9e",9956:"635cd058"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),d={},c="pluto:",r.l=(e,f,a,b)=>{if(d[e])d[e].push(f);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var c=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((e=>e(a))),f)return f(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"7918",30212137:"4043",41586035:"8452",53537473:"5922",83156343:"3466",95939464:"9432","935f2afb":"53","8b32d810":"58","2e9aabad":"60","1de72b33":"305",e0a19902:"394","5b3ce2d7":"684",ed6b6a43:"821",f2f8d974:"1044",dd7a9681:"1155","5572491f":"2049",c459eb7d:"2427","0034903a":"2674","02389cdc":"2704",e4b9287f:"2797","871e1111":"2890",d037c94c:"3577","8e3b1f2f":"3583",c79b562e:"3616",e86e00b1:"3990",c4f5d8e4:"4195",ab6d44ab:"4250","1e33aabf":"4452","14fb3a76":"4456","883b1a08":"4582","2fe108ae":"4723",fe59fd14:"4889",abac9f7e:"5037","8d8f025d":"5049","30d00a07":"5091","413eb15f":"5181",ef218fa5:"5277",d81fa0e5:"5283","3eb63321":"5461","9f43fc60":"5498","8c64e7a6":"5507","8d7b091f":"5559","389ebece":"5881","853dab43":"5895","3ba36259":"5992","7efe30ee":"6038","3d1a2b43":"6100",ddde9844:"6282","186e575c":"6355",f1fa4584:"6442","04c377ef":"6668","54c50845":"6705","02b1ccdd":"6771",f18b32fa:"6890",e22c3ce6:"6916","1efc24b5":"7150",dfdf755e:"7196","9e2b6020":"7234","4dbc4eab":"7437","998c02ee":"7508","26960d50":"7784",a87c8fc0:"7846","5c990b78":"7906","1a4e3797":"7920",d08eaa4d:"8281",bced9760:"8387","20639b4d":"8400","337e617e":"8544","6c9c7408":"8618","1f9adaf9":"8870","95224dc4":"8987",bd751cc9:"9101","1f68d8b4":"9190","5b328157":"9217","6d37f50b":"9279",f5454c7f:"9415","1be78505":"9514","14eb3368":"9817",e358ed3f:"9907","62afbdfe":"9956"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(f,a)=>{var d=r.o(e,f)?e[f]:void 0;if(0!==d)if(d)a.push(d[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var c=new Promise(((a,c)=>d=e[f]=[a,c]));a.push(d[2]=c);var b=r.p+r.u(f),t=new Error;r.l(b,(a=>{if(r.o(e,f)&&(0!==(d=e[f])&&(e[f]=void 0),d)){var c=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;t.message="Loading chunk "+f+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,d[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,a)=>{var d,c,b=a[0],t=a[1],o=a[2],n=0;if(b.some((f=>0!==e[f]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(f&&f(a);n{"use strict";var e,f,a,d,c,b={},t={};function r(e){var f=t[e];if(void 0!==f)return f.exports;var a=t[e]={exports:{}};return b[e].call(a.exports,a,a.exports,r),a.exports}r.m=b,e=[],r.O=(f,a,d,c)=>{if(!a){var b=1/0;for(i=0;i=c)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[a,d,c]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};f=f||[null,a({}),a([]),a(a)];for(var t=2&d&&e;"object"==typeof t&&!~f.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((f=>b[f]=()=>e[f]));return b.default=()=>e,r.d(c,b),c},r.d=(e,f)=>{for(var a in f)r.o(f,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:f[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,a)=>(r.f[a](e,f),f)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",58:"8b32d810",60:"2e9aabad",305:"1de72b33",394:"e0a19902",684:"5b3ce2d7",821:"ed6b6a43",1044:"f2f8d974",1155:"dd7a9681",2049:"5572491f",2427:"c459eb7d",2674:"0034903a",2704:"02389cdc",2797:"e4b9287f",2890:"871e1111",3466:"83156343",3577:"d037c94c",3583:"8e3b1f2f",3616:"c79b562e",3990:"e86e00b1",4043:"30212137",4195:"c4f5d8e4",4250:"ab6d44ab",4452:"1e33aabf",4456:"14fb3a76",4582:"883b1a08",4723:"2fe108ae",4889:"fe59fd14",5037:"abac9f7e",5049:"8d8f025d",5091:"30d00a07",5181:"413eb15f",5277:"ef218fa5",5283:"d81fa0e5",5461:"3eb63321",5498:"9f43fc60",5507:"8c64e7a6",5559:"8d7b091f",5881:"389ebece",5895:"853dab43",5922:"53537473",5992:"3ba36259",6038:"7efe30ee",6100:"3d1a2b43",6282:"ddde9844",6355:"186e575c",6442:"f1fa4584",6668:"04c377ef",6705:"54c50845",6771:"02b1ccdd",6890:"f18b32fa",6916:"e22c3ce6",7150:"1efc24b5",7196:"dfdf755e",7234:"9e2b6020",7437:"4dbc4eab",7508:"998c02ee",7784:"26960d50",7846:"a87c8fc0",7906:"5c990b78",7918:"17896441",7920:"1a4e3797",8281:"d08eaa4d",8387:"bced9760",8400:"20639b4d",8452:"41586035",8544:"337e617e",8618:"6c9c7408",8870:"1f9adaf9",8987:"95224dc4",9101:"bd751cc9",9190:"1f68d8b4",9217:"5b328157",9279:"6d37f50b",9415:"f5454c7f",9432:"95939464",9514:"1be78505",9817:"14eb3368",9907:"e358ed3f",9956:"62afbdfe"}[e]||e)+"."+{53:"d30cdfdf",58:"ee267326",60:"6500e928",305:"d54dd947",394:"45e0ff03",684:"40bac81c",821:"1af1e15a",1044:"2d9cc4e9",1155:"18c9c860",2049:"d83b8a9a",2427:"9b6af93c",2674:"1fd9dcf7",2704:"7c9a9332",2797:"f0bc8658",2890:"6b7e451c",3466:"0a7cfa6e",3577:"3d876123",3583:"db7ee579",3616:"1f5898bf",3990:"b08f3f7e",4043:"3fd95aa8",4195:"a83f9df5",4250:"b9bf4f02",4452:"740b8d7f",4456:"28bcf989",4582:"976ae476",4723:"228dcf25",4889:"c142d4d6",4972:"50741f71",5037:"1cf438e4",5049:"77c0c71b",5091:"9c0dcb44",5181:"40ef8433",5277:"d7625c94",5283:"9cff45c9",5461:"1ffe6dce",5498:"d877bf45",5507:"130a079e",5525:"286e47bc",5559:"d1e61a21",5881:"9835871c",5895:"c803efb4",5922:"e7627f3a",5992:"5631d536",6038:"8d4d5eec",6100:"959e1c7f",6282:"96c49a2b",6355:"0925380f",6442:"9dea4016",6668:"3443e1c8",6705:"de9a74ce",6771:"ba8e064c",6890:"8d80f347",6916:"7161a989",7150:"29850f78",7196:"ea9dab51",7234:"b2bd9a7d",7437:"010cb1bf",7508:"918ea713",7784:"f928c9d1",7846:"1dfeefee",7906:"9e01b410",7918:"4c851e46",7920:"b9fe7bb8",8281:"66357ea1",8387:"38f82b3a",8400:"767a0ba1",8443:"15145b3e",8452:"7b46d7d7",8544:"662ef69f",8618:"343313bc",8870:"b9d09c29",8987:"d34c5b1a",9101:"35c00209",9190:"39e450b1",9217:"c3cc5a3e",9279:"a4bc036a",9415:"dd77faa6",9432:"222be0e8",9514:"a62113cd",9817:"244d9ab5",9907:"1bb9ef9e",9956:"635cd058"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),d={},c="pluto:",r.l=(e,f,a,b)=>{if(d[e])d[e].push(f);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var c=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((e=>e(a))),f)return f(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={17896441:"7918",30212137:"4043",41586035:"8452",53537473:"5922",83156343:"3466",95939464:"9432","935f2afb":"53","8b32d810":"58","2e9aabad":"60","1de72b33":"305",e0a19902:"394","5b3ce2d7":"684",ed6b6a43:"821",f2f8d974:"1044",dd7a9681:"1155","5572491f":"2049",c459eb7d:"2427","0034903a":"2674","02389cdc":"2704",e4b9287f:"2797","871e1111":"2890",d037c94c:"3577","8e3b1f2f":"3583",c79b562e:"3616",e86e00b1:"3990",c4f5d8e4:"4195",ab6d44ab:"4250","1e33aabf":"4452","14fb3a76":"4456","883b1a08":"4582","2fe108ae":"4723",fe59fd14:"4889",abac9f7e:"5037","8d8f025d":"5049","30d00a07":"5091","413eb15f":"5181",ef218fa5:"5277",d81fa0e5:"5283","3eb63321":"5461","9f43fc60":"5498","8c64e7a6":"5507","8d7b091f":"5559","389ebece":"5881","853dab43":"5895","3ba36259":"5992","7efe30ee":"6038","3d1a2b43":"6100",ddde9844:"6282","186e575c":"6355",f1fa4584:"6442","04c377ef":"6668","54c50845":"6705","02b1ccdd":"6771",f18b32fa:"6890",e22c3ce6:"6916","1efc24b5":"7150",dfdf755e:"7196","9e2b6020":"7234","4dbc4eab":"7437","998c02ee":"7508","26960d50":"7784",a87c8fc0:"7846","5c990b78":"7906","1a4e3797":"7920",d08eaa4d:"8281",bced9760:"8387","20639b4d":"8400","337e617e":"8544","6c9c7408":"8618","1f9adaf9":"8870","95224dc4":"8987",bd751cc9:"9101","1f68d8b4":"9190","5b328157":"9217","6d37f50b":"9279",f5454c7f:"9415","1be78505":"9514","14eb3368":"9817",e358ed3f:"9907","62afbdfe":"9956"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(f,a)=>{var d=r.o(e,f)?e[f]:void 0;if(0!==d)if(d)a.push(d[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var c=new Promise(((a,c)=>d=e[f]=[a,c]));a.push(d[2]=c);var b=r.p+r.u(f),t=new Error;r.l(b,(a=>{if(r.o(e,f)&&(0!==(d=e[f])&&(e[f]=void 0),d)){var c=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;t.message="Loading chunk "+f+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,d[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,a)=>{var d,c,b=a[0],t=a[1],o=a[2],n=0;if(b.some((f=>0!==e[f]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(f&&f(a);n Changelog | Pluto - +
-

Changelog

This page contains the changelogs from all releases of Pluto.

0.10.0

  • Added chained comparisons (e.g. 1 <= i <= #t)
  • Added private methods to classes
  • Private fields (and methods) can be declared and accessed anywhere inside the class now. Previously, you needed to define a private field before you accessed it. This is no longer a restriction.
  • Pluto now automatically detects if non-compatible keywords should be enabled or disabled based on usage
    • This is overwritten by the scripter using pluto_use or the integrator or user managing compatibility mode, so it only applies when absolutely zero configuration has been applied. This is a significant improvement for lua source code compatibility.
  • do can now be used instead of then and begin
  • if expressions are now no longer deprecated but require an end (e.g. print(if a then b else c end))
  • $define statement now requires an assignment
  • Fixed handling when an invalid RSA private key is passed to crypto.encrypt, crypto.decrypt, crypto.sign
  • Fixed not being able to load Lua C modules on Linux
    • For simplicity in this regard, Pluto now always uses the C ABI to export lua_ functions and the C++ ABI for pluto_ functions.

Standard library:

  • Added canvas library
  • Added ffi library
  • Added regex library
  • Added assert.contains
  • Added bigint.eq, bigint.lt, & bigint.le
  • Added crypto.ripemd160
  • Added crypto.exportkey & crypto.importkey
  • Added crypto.decompress
  • Added string.tohex & string.fromhex
  • Added table.findindex/findkey, table.back, table.keys, table.modget, table.modset, table.slice, table.countvalues, & table.chunk
  • Added socket.getpeer, socket.peek, socket.getside, socket.istls, & socket.isopen
  • Added optional limit argument to string.split
  • Added io.cwd and io.chdir as aliases for io.currentdir
  • socket.starttls can now be used on server sockets
  • Optimized json.encode with __order

0.9.5

  • Fixed io.contents not returning an empty string for empty files on Windows
  • Fixed table.clear not resetting cached length
  • Fixed http.request allowing header values to contain CR and LF (CVE-2024-45597)
  • Fixed strings implicitly concatenating with each other
  • Fixed incorrect formatting with some instances of VM dumping
  • PHP build scripts now pass on additional arguments to the compiler

From Lua:

  • Fixed wrong code gen for indices with comparisons

0.9.4

  • Improved field-shadow warning to say which field is shadowed
  • Improved handing of parent keyword
  • Improved error message for if then
  • Fixed an 'else if' warning false-positive
  • Fixed compile-time concat sometimes causing a parse error
  • Fixed infinite loop with nested switch expressions when flow should go to default case
  • Fixed exception when raising argument type mismatch warning when expected type is a function
  • Fixed a compatibility issue with return case

Standard library:

  • Made string.replace binary-safe and faster
  • CaT module now supports the optional value encoding feature

0.9.3

  • Added a warning for '(' being used instead of '|' for pipe operator arguments
  • Improved error reporting when an invalid parent is given to 'extends'
  • Fixed extending a global class unexpectedly pushing _G
  • Fixed incorrect results when using 'not' on result of null coalescing operator
    • As a result of this fix, the null coalescing operator is now bytecode-compatible with Lua
  • Fixed parsing ambiguities with ternary expressions in switch cases

Standard library:

  • Fixed json.encode(json.decode(..., json.withnull + json.withorder)) producing unexpected artifacts
  • Fixed data corruption when json.decode is used on large data
  • Fixed insufficient TLS peer verification in HTTP library and socket.starttls in non-WASM builds (CVE-2024-32973)

0.9.2

This release fixes several regressions made in 0.9.1:

  • Fixed failing to compile on aarch64
  • Fixed method calls no longer working in ternary expressions even with parentheses
  • Fixed walrus operator no longer being usable within unary operator expressions

Furthermore, it improves the walrus operator in regards to disallowing UB and clarifying related error messages.

0.9.1

  • Improved try/catch
  • Improved parsing of for-as loops
  • Deprecated if expressions (if a then b else c) in favor of ternary expressions (a ? b : c)
  • Fixed instances of : starting method call when it should delimit ternary expression
  • Fixed unreachable-code triggering for non-constant values
  • Fixed repeat + continue being able to read uninitialized variables
  • Fixed break and continue possibly not closing upvalues
  • Fixed continue not working as expected when passing through switch statement
  • Fixed switch cases being able to read uninitialized variables
  • Fixed inconsistent behavior with safe navigtion method calls and multiple return values
  • Fixed walrus operator being able to cause UB or corrupt the stack
  • Fixed pipe operator possibly generating incorrect code

Huge thanks to @XmiliaH for reporting the majority of bugs fixed in this update and helping fix them.

0.9.0

  • Added $define statement
  • Added pipe operator (|>)
  • Added compound XOR operator (~=)
  • Added optional global keyword and 'implicit-global' warning
  • Added @fallthrough annotation and 'unannotated-fallthrough' warning
  • Added <nodiscard> function attribute and 'discarded-return' warning
  • Added 'field-shadow' warning
  • Lambdas can now have full bodies by starting with 'do' (e.g. |a| -> do return a end)
  • pluto_use can now also be used via @pluto_use in comments
  • new operator now also supports static 'new' function
  • Deprecated ** operator (use ^ instead)
  • Deprecated let statement (use local instead)
  • Deprecated const statement (use local with <const> or $define instead)
  • Deprecated <constexpr> attribute (replaced by $define statement)
  • Re-added compile-time concat optimization
  • Fixed switch cases being able to jump into the scope of a variable
  • Fixed being able to set nil as a default argument

Standard library:

  • Added '*' library
  • Added 'cat' library
  • Added 'http' library
  • Added 'socket' library
  • Added 'xml' library
  • Added 'bigint' class
  • Added 'scheduler' class
  • Added os.platform constant
  • Added range function
  • Added io.contents function
  • Added io.relative function
  • Added copying variants of existing functions (table.sorted, table.mapped, table.filtered, table.reversed, table.reordered)
  • Added table.size function
  • Added table.clear function
  • Added table.reduce, table.min, & table.max functions
  • Added table.find function
  • Added table.checkall function
  • Added coroutine.sleep function
  • Added crypto.generatekeypair function
  • Added crypto.encrypt & crypto.decrypt functions
  • Added crypto.sign & crypto.verify functions
  • Added crypto.sha1, crypto.sha384, & crypto.sha512 functions
  • Added crypto.adler32 function
  • Added url.parse function
  • Added math.round function
  • json.encode now supports __order for objects
  • json.decode now has an optional flags parameter, they can be combined via binary OR
    • json.withnull makes it decode JSON nulls as json.null instead of nil
    • json.withorder makes it produce __order field for objects
  • coroutines/threads now have a metatable by default
  • base64.encode & base32.encode changed padding parameter's default value from false to true (base64.urlencode is unchanged)
  • Fixed crypto.fnv1 & crypto.fnv1a producing incorrect hashes for non-ASCII strings

CLI:

  • Added '-c' flag to pluto & plutoc to enable compatibility mode

For integrators:

  • Added PLUTO_READ_FILE_HOOK & PLUTO_WRITE_FILE_HOOK
  • Added PLUTO_HTTP_REQUEST_HOOK
  • Removed PLUTO_USE_THROW as we now default to using C++ exceptions for Lua errors to avoid breaking RAII semantics. You can still specify LUA_USE_LONGJMP if you want long jumps.

0.8.2

  • Added variable scoping warnings to switch statements to highlight code that will break in 0.9.0
  • Improved some error messages
  • Fixed base32 & base64 functions not being binary-safe
  • Removed compile-time concat optimization because it could produce incorrect results

0.8.1

  • Added a specialized error message for local class = etc
  • 'exportvar' now prefixes function bytecode with 'load'
  • Improved code generation for switch blocks
  • Improved "possibly unwanted function call" warning
  • Fixed dumpvar & exportvar not handling recursion of sub-tables
  • Fixed assert.equal & assert.nequal ignoring extra fields in value2
  • Fixed 'until' possibly using a variable from wrong scope due to 'continue'
  • Fixed var-shadow warning for named vararg being raised on the wrong line

For integrators:

  • Added PLUTO_MEMORY_LIMIT
  • Added PLUTO_NO_DEBUGLIB
  • Added PLUTO_NO_COROLIB

For a more comprehensive overview of the changes, take a look at the commit log.

0.8.0

  • Added switch expressions
  • Added shorthand fallthrough syntax for switch statement & expression, e.g. case 1, 2: ...
  • Added try...catch statement
  • Added spaceship operator (<=>)
  • Added safe navigation for method calls: nilable_inst?:method(), inst:nilable_method?(), nilable_inst?:nilable_method?()
  • Added optional 'const' keyword as shorthand for local ... <const> [= ...], enabled with pluto_use const.
  • Added pluto_use "VERSION+"
  • Tables now have a metatable by default ({ __index = _G.table }).
  • Added '!' as an alias for 'not'
  • Added 'private' modifier for class fields
  • Improved 'class' and 'extends' to support indexed names
  • Improved 'instanceof' to be usable with more complex expressions
  • export now works in all scopes, not just the main body
  • Updated in operator on tables to check values instead of keys
  • \{ is now a valid escape sequence (for interpolated strings)
  • Fixed to-be-closed variables not working in switch cases
  • Fixed 'new' not working as expected if it was disabled by the environment and re-enabled by 'pluto_use'
  • Fixed 'enum class' not incrementing enumerator values
  • Fixed not being able to use expressions such as increment in enum without parentheses
  • Added compile-time concat optimization

Warnings:

  • Added warning for local attributes used without '<' ... '>'
  • Now propagating types for global variables so when their value is assigned to something, mismatches can be detected.
  • Added optional global-shadow warning which is like var-shadow but for globals that are especially vulnerable to obscure shadowing bugs (to prevent excessive annoyance).
    • These globals include: arg,string, and table. Integrators can change this via PLUTO_COMMON_GLOBAL_NAMES
    • Global shadow warnings do not apply to localization optimization (i.e, local table = table)
  • var-shadow has been improved to check more enclosing scopes
  • Improved unreachable-code
  • Fixed var-shadow warning for locals used in switch cases despite break
  • Added optional non-portable-code, non-portable-bytecode, and non-portable-name warning types
  • Warnings can now be promoted to errors, e.g. @pluto_warnings error-all

Standard library:

  • Soup is now always linked in, obsoleting _PSOUP
  • Added assertion library (see here for more preliminary detail)
  • Added url library (encode & decode)
  • Added exception class
  • Added vector3 class
  • Added dumpvar & exportvar
  • Added string.truncate
  • Added string.replace — a slightly faster, but mostly more straightforward alternative to gsub.
    • Most notably, not burdened by MAX_CAPTURES
  • Added string.formatint (supports any BigInt impl that can offer the user a string representation)
    • Also supports any grouping & any separator without concerning locale.
  • Added table.filter
  • Added table.map
  • Added table.reverse
  • Added table.reorder
  • Added io.currentdir
  • Added io.part
  • Added io.writetime
  • Added math.isnan
  • Added compareversions
  • Added wcall
  • Added math.atan2 as an alias for math.atan
  • Added json.null
  • io.absolute now has an optional argument to request a canonicalized absolute path
  • Updated string.rfind to accept Lua patterns
  • Renamed io.copyto to io.copy
  • Renamed base64.url_encode & base64.url_decode to base64.urlencode & base64.urldecode
  • Deprecated string.find_first_of & string.find_first_not_of in favor of string.find
  • Deprecated string.find_last_of & string.find_last_not_of in favor of string.rfind
  • Deprecated string.lfind in favor of string.find
  • Deprecated crypto.hexdigest in favor of string.format
  • Modified require
    • Prioritizes local files now to ensure compatibility. Added require("pluto:libname") to explicitly request pluto libraries if ever needed (normal still works for pluto libraries, we just check for local files first).
  • Removed base58

For integrators:

  • Added PLUTO_NO_FILESYSTEM - disables all filesystem access (for sandboxing).
  • Added PLUTO_WARN_NON_PORTABLE_CODE
  • Added PLUTO_WARN_NON_PORTABLE_BYTECODE
  • Added PLUTO_WARN_NON_PORTABLE_NAME
  • Added PLUTO_NO_BINARIES - disables all dll/so/c module loading (for sandboxing)
  • Added luaG_addsrcinfo

Far more information can be found at our documentation: https://pluto-lang.org/

0.7.4

  • Fixed unexpected behavior when using a ternary expression inside of an interpolated string
  • Fixed table.contains returning 0 instead of the actual key for non-integer key types
  • Fixed REPL not recognizing multi-line statements
  • Fixed Pluto-injected code corrupting bytecode

For integrators:

  • Added PLUTO_LOADCLIB_HOOK

0.7.3

  • Updated error semantics of os.remove & os.rename to match Lua's again (return false instead of raising error), Pluto's 'io' versions of these functions remain unchanged
  • Fixed extends not copying over metamethods
  • Fixed "memory allocation error: block too big" when parsing --[[]]
  • Fixed allowing function calls to primitives, causing ambiguities with exprstat after assignment
  • Fixed string.upper & string.lower delimiting on '\0'
  • Some other improvements and bugfixes

0.7.2

  • String interpolation now allows nested strings
  • Improved "unreachable code" warning
  • Improved some error messages
  • Fixed string interpolation not working with string call syntax
  • Fixed rare issues with 'new', 'extends' and 'instanceof' operators

0.7.1

  • Fixed string interpolation not working with single-quoted strings after 0.7.0
  • Fixed os.sleep disregarding execution time limit
  • Fixed scripts being able to go past execution time limit with coroutines

0.7.0

  • Added table destructuring (local '{' NAME [= FIELD][, ...] '}' '=' TABLE)
  • Added array destructuring (local '[' NAME[, ...] ']' '=' TABLE)
  • Added pluto_use <* | version | token> [= false] to toggle non-compatible keywords
  • Added pluto_use let [= false] to toggle 'let' alias for 'local'
  • Added ++ statement
    • Also supports ++t.prop
  • Added constructor promotion
  • Added compile-time conditionals
  • Improved class expression & statement
    • Now supports property declaration without value
    • Now supports type hints (currently without warnings)
    • Now supports access modifiers (currently without warnings or errors)
    • Can now optionally use 'begin' before body
  • Improved string interpolation to support any expression, not just variable names
  • Improved type hints to support alternatives, e.g. string|int
  • Named arguments may now be used in conjunction with positional arguments
  • Improved 'new' expression to support direct member access into the table it created, e.g. print(new Human("John").name)
  • 'new' may now also be used as a statement
  • Fixed loading of precompiled code from files with non-Latin path on Windows
  • Fixed behavior of 'in' expression when used on a temporary table

Out-of-the-box Compatibility:

  • 'parent' may now be overwritten via local or parameter name
  • All reserved identifiers can now be used with shorthand table syntax and goto

Standard library:

  • Added coroutine.xresume

For integrators:

  • Added PLUTO_USE_LET

More detailed documentation can be found here.

0.6.3

  • Defaults arguments now produce Lua-compatible bytecode
  • Fixed default arguments not working for methods
  • Fixed named arguments, etc. not working for upvalue functions
  • Fixed 'in' expression for when right-hand operand is nested table
  • Fixed 'in' expression being too greedy in consuming righthand operand

For integrators:

  • Added PLUTO_LUA_LINKABLE

0.6.2

  • Optional Parentheses now works for table types and with chained "suffix expressions"
  • Fixed new overwriting user-defined __index
  • Fixed infinite recursion with multi-level parent calls
  • Fixed some other small issues

Performance:

  • Optimized lua_insert, lua_remove, & lua_replace (Optimization by @gottfriedleibniz)
  • Optimized luaO_ceillog2 (Inspired by @gottfriedleibniz)
  • Enabled Lua's jump table for clang build as well
  • Fixed a VM performance regression introduced by Pluto

0.6.1

  • Improved suggestions (for when using plutoc with the language server)
  • Optimized switch statement code generation (now omits cases leading to default case)
  • Fixed producing syntax error when 'case' or 'default' is used outside of switch
  • Fixed using 'export' outside of global scope not producing an error
  • Fixed some confusing error messages
  • Pulled in the latest Lua changes so some Lua bugs are now fixed

0.6.0

  • Added <constexpr> attribute to force locals to be compile-time constants
  • Added $expr syntax for compile-time evaluation of select functions
  • Added export [NAME=VALUE | function | class] syntax
  • Added named arguments (name=value in funcargs)
  • Added named varargs (...NAME), automatically puts the varargs into a table with the given name
  • A subset of Soup is now vendored with Pluto so standard library features that rely on it should now be more viable
  • Removed deprecated "pluto_case" and "pluto_default" keywords
  • Removed when statement

Enums:

  • Added ENUM.ENUMERATOR syntax for named enums
    • Added ENUM CLASS NAME ... syntax to force usage of this syntax
  • Added enum reflection for named enums (:names(), :values(), :kvmap(), :vkmap())

Object-oriented programming:

  • Added new TABLE(...) syntax (creates new table, sets TABLE as its metatable + index, calls `:construct(...)` if exists)
  • Added 'class' statement & expression (similar to table but without need for ',' or ';' after properties and functions)
    • 'class' and 'local class' statements also support extends NAME which sets parent property and metatable with index
    • Added static function NAME for use within table constructor/class definition (equal to NAME = function)
  • Added 'parent' expression
    • parent.PROP -> self.__parent.PROP
    • parent:METHOD(...) -> self.__parent.METHOD(self, ...)
  • Added TABLE instanceof METATABLE operator

Type hints:

  • Added 'int' & 'float' type hints (more restrictive than 'number')
  • Added 'void' type hint for function return type

Standard library:

  • Added utonumber, utostring, & string.uformat
  • Added instanceof(TABLE, METATABLE)

For integrators upgrading to Pluto 0.6.0:

  • Consider defining PLUTO_COMPATIBLE_NEW, PLUTO_COMPATIBLE_CLASS, PLUTO_COMPATIBLE_PARENT & PLUTO_COMPATIBLE_EXPORT so 'new', 'class', 'parent' & 'export' will not be reserved keywords just yet, instead 'pluto_new', 'pluto_class', 'pluto_parent' & 'pluto_export' can be used.

More detailed documentation can be found here.

0.5.4

  • Default arguments now support tables
  • Pluto now supports building with C ABI so you can replace Lua's shared library with Pluto's without needing to change the program
  • Fixed return before case or default causing a syntax error
  • Fixed access violation on lua_close with strings as default parameters

0.5.3

  • Default arguments now support compile-time constant variables, unary -, and pseudo-unary +
  • Re-added os.remove & os.rename because they originated in Lua and should not have been removed
  • Fixed some instances of errors not providing a code snippet and reporting the wrong line
  • Fixed enumerators being limited to 32-bit values
  • Fixed warning disable/enable being global-only
  • Removed if-goto optimisation due to various edge cases where goto is not executed

0.5.2

  • Enum statement: Now supports compile-time constant variables when setting value
  • Fixed require, dofile, etc. not taking UTF-8 encoded paths on Windows
  • Fixed pluto & plutoc not being able to execute files with foreign names on Windows

0.5.1

  • Enum Statement: Now supports unary - and pseudo-unary + when setting value
  • Replaced locals limit with registers limit so you can have more compile-time constants
  • Fixed Pluto's IO functions not taking UTF-8 encoded paths
  • Fixed UB when emitting unfinished string error, possibly resulting in an access violation

0.5.0

  • Added "for ITERABLE as VALUE" loop
  • Added $-strings (string interpolation)
  • Added prefix ++ operator
  • Added support for binary number literals.
  • Added C-style enums
  • Added _PSOUP global
  • Updated package.path to look for .pluto files in working directory by default
  • Deprecated "pluto_case" and "pluto_default" (now "case" and "default", respectively)
  • Removed what was deprecated in 0.4.0 (sleep -> os.sleep, os.remove -> io.remove, os.rename -> io.rename)
  • Added execution time limit (optional, must be enabled in luaconf.h)
  • Added content moderation

Standard Library:

  • Added io.makedirs

Standard Library (Soup):

  • Added base64
  • Added base58
  • Added base32
  • Added json

0.4.5

  • Improved wording of some warning & error messages
  • Fixed excessive "duplicate local declaration" warnings
  • Cherry-picked some Lua commits, so the following Lua bugs are now fixed:
    • 'break' may not properly close variable in a 'for' loop
    • error message in 'table.remove'
    • 'utf8.codes' accepts spurious continuation bytes
    • Negation in constant folding of '>>' may overflow
    • stack overflow with nesting of coroutine.close

0.4.4

  • Added math.rand as an alias for math.random
  • Changed unknown type hint to be warning instead of error
  • Reverted table.insert optimation due to unexpected behavior
  • Some minor tweaks

0.4.3

  • Improved most error messages, and vastly improved the internal code for them.
  • These reserved tokens can be used as identifiers outside of their functional context: default, case
  • Optimized the performance of table.insert. Roughly 3x faster, but still slightly slower than t[#t + 1]
  • Pluto can now be built using Sun.

0.4.2

  • Fixes a regression introduced in Pluto 0.4.1 that prevented the walrus operator from working within lambda functions that are passed as function arguments

0.4.1

  • Updated lexer to tokenise in a separate pass
    • This fixes Pluto's error messages sometimes not showing the full line
  • Disallowed use of the walrus operator within a function call because it was found to be more janky than expected

0.4.0

Additions:

  • Walrus Operator
  • Default parameters for functions.
  • New standard library: lcryptlib, for various hash algorithms and cryptographic PRNGs.
  • New warnings:
    • Unreachable code.
    • Too many function arguments.

Improvements:

  • Switch case may now use variables.
  • Shorthand ternary syntax from C/C++.
  • Warnings can be configured with comments.
  • Improved performance of some common arithmetic algorithms.
  • VM Dumping has been rewritten for superb runtime detail on all opcodes, their arguments, their results, etc.
  • string.upper & string.lower take a second parameter indicating a specific index to change. Absence of this parameter preserves default behavior.

0.3.2

Improvements:

  • io.copyto will now overwrite existing files instead of throwing an exception.
  • Improve error handling of other exception-prone IO functions.

0.3.1

Bugfix:

  • String.split would previously invoke an infinite loop when an empty string is used as the delimiter.

0.3.0

Additions:

  • Inlined method creation.
  • STR in STR expressions.
  • KEY in INDEXABLE expressions.
  • Generalized iteration, no need for pairs.
  • io.listdir
  • Reserved keywords as valid fields.
  • Null-coalescing operator (w/ compound operator).
  • continue N & break N for manipulating outer loops.
  • Optional type-hinting, with parser warnings.
  • Safe accessor navigation, to avoid "attempt to index nil" errors for deeply nested fields.

Changes:

  • table.contains now returns an index if found and nil otherwise (previously returned true or false).

Improvements:

  • Switch no longer has syntactic restrictions
  • Greater switch performance

Documentation for the new changes can be found here.

0.2.2

  • Fixes a bug with the continue keyword

0.2.1

  • Added VM Dump
  • Implemented long jump optimisation

0.2.0

  • Added compile-time warnings for duplicate local declarations
  • Added optional ANSI color sequences in various error & warning messages
  • Added support for ternary expressions
  • Added continue statement
  • Added Table Freezing / Immutability
  • Added Switch/Case statements
  • Added user_data to global_State
  • Added !=
  • Added compatibility mode
  • Added table.contains
  • Added new time functions to os api
  • Added negative string indexing
  • Added compound concatenation operator
  • Added new string functions
  • Added portable jumptable implementation that can be optionally enabled
  • Added REPEAT .. WHEN loop support
  • Added new IO library functions
  • Added _PVERSION
  • Implemented table length cache optimisation (2x speedup)
  • Implemented optional parentheses around string literals for method invocation
  • Increased local variable limit from 200 to 249
  • Rebased with Lua for latest bugfixes

0.1.0

Initial version.

Notable features:

  • Lambda expressions
  • Arbitrary character insertion in numeral literals
  • Many compound operators
  • ** exponent operator
- +

Changelog

This page contains the changelogs from all releases of Pluto.

0.10.0

  • Added chained comparisons (e.g. 1 <= i <= #t)
  • Added private methods to classes
  • Private fields (and methods) can be declared and accessed anywhere inside the class now. Previously, you needed to define a private field before you accessed it. This is no longer a restriction.
  • Pluto now automatically detects if non-compatible keywords should be enabled or disabled based on usage
    • This is overwritten by the scripter using pluto_use or the integrator or user managing compatibility mode, so it only applies when absolutely zero configuration has been applied. This is a significant improvement for lua source code compatibility.
  • do can now be used instead of then and begin
  • if expressions are now no longer deprecated but require an end (e.g. print(if a then b else c end))
  • $define statement now requires an assignment
  • Fixed not being able to load Lua C modules on Linux
    • For simplicity in this regard, Pluto now always uses the C ABI to export lua_ functions and the C++ ABI for pluto_ functions.

Standard library:

  • Added canvas library
  • Added ffi library
  • Added regex library
  • Added assert.contains
  • Added bigint.eq, bigint.lt, & bigint.le
  • Added crypto.ripemd160
  • Added crypto.exportkey & crypto.importkey
  • Added crypto.decompress
  • Added string.tohex & string.fromhex
  • Added table.findindex/findkey, table.back, table.keys, table.modget, table.modset, table.slice, table.countvalues, & table.chunk
  • Added socket.getpeer, socket.peek, socket.getside, socket.istls, & socket.isopen
  • Added optional limit argument to string.split
  • Added io.cwd and io.chdir as aliases for io.currentdir
  • socket.starttls can now be used on server sockets
  • Optimized json.encode with __order
  • Fixed handling when an invalid RSA private key is passed to crypto.encrypt, crypto.decrypt, crypto.sign

0.9.5

  • Fixed io.contents not returning an empty string for empty files on Windows
  • Fixed table.clear not resetting cached length
  • Fixed http.request allowing header values to contain CR and LF (CVE-2024-45597)
  • Fixed strings implicitly concatenating with each other
  • Fixed incorrect formatting with some instances of VM dumping
  • PHP build scripts now pass on additional arguments to the compiler

From Lua:

  • Fixed wrong code gen for indices with comparisons

0.9.4

  • Improved field-shadow warning to say which field is shadowed
  • Improved handing of parent keyword
  • Improved error message for if then
  • Fixed an 'else if' warning false-positive
  • Fixed compile-time concat sometimes causing a parse error
  • Fixed infinite loop with nested switch expressions when flow should go to default case
  • Fixed exception when raising argument type mismatch warning when expected type is a function
  • Fixed a compatibility issue with return case

Standard library:

  • Made string.replace binary-safe and faster
  • CaT module now supports the optional value encoding feature

0.9.3

  • Added a warning for '(' being used instead of '|' for pipe operator arguments
  • Improved error reporting when an invalid parent is given to 'extends'
  • Fixed extending a global class unexpectedly pushing _G
  • Fixed incorrect results when using 'not' on result of null coalescing operator
    • As a result of this fix, the null coalescing operator is now bytecode-compatible with Lua
  • Fixed parsing ambiguities with ternary expressions in switch cases

Standard library:

  • Fixed json.encode(json.decode(..., json.withnull + json.withorder)) producing unexpected artifacts
  • Fixed data corruption when json.decode is used on large data
  • Fixed insufficient TLS peer verification in HTTP library and socket.starttls in non-WASM builds (CVE-2024-32973)

0.9.2

This release fixes several regressions made in 0.9.1:

  • Fixed failing to compile on aarch64
  • Fixed method calls no longer working in ternary expressions even with parentheses
  • Fixed walrus operator no longer being usable within unary operator expressions

Furthermore, it improves the walrus operator in regards to disallowing UB and clarifying related error messages.

0.9.1

  • Improved try/catch
  • Improved parsing of for-as loops
  • Deprecated if expressions (if a then b else c) in favor of ternary expressions (a ? b : c)
  • Fixed instances of : starting method call when it should delimit ternary expression
  • Fixed unreachable-code triggering for non-constant values
  • Fixed repeat + continue being able to read uninitialized variables
  • Fixed break and continue possibly not closing upvalues
  • Fixed continue not working as expected when passing through switch statement
  • Fixed switch cases being able to read uninitialized variables
  • Fixed inconsistent behavior with safe navigtion method calls and multiple return values
  • Fixed walrus operator being able to cause UB or corrupt the stack
  • Fixed pipe operator possibly generating incorrect code

Huge thanks to @XmiliaH for reporting the majority of bugs fixed in this update and helping fix them.

0.9.0

  • Added $define statement
  • Added pipe operator (|>)
  • Added compound XOR operator (~=)
  • Added optional global keyword and 'implicit-global' warning
  • Added @fallthrough annotation and 'unannotated-fallthrough' warning
  • Added <nodiscard> function attribute and 'discarded-return' warning
  • Added 'field-shadow' warning
  • Lambdas can now have full bodies by starting with 'do' (e.g. |a| -> do return a end)
  • pluto_use can now also be used via @pluto_use in comments
  • new operator now also supports static 'new' function
  • Deprecated ** operator (use ^ instead)
  • Deprecated let statement (use local instead)
  • Deprecated const statement (use local with <const> or $define instead)
  • Deprecated <constexpr> attribute (replaced by $define statement)
  • Re-added compile-time concat optimization
  • Fixed switch cases being able to jump into the scope of a variable
  • Fixed being able to set nil as a default argument

Standard library:

  • Added '*' library
  • Added 'cat' library
  • Added 'http' library
  • Added 'socket' library
  • Added 'xml' library
  • Added 'bigint' class
  • Added 'scheduler' class
  • Added os.platform constant
  • Added range function
  • Added io.contents function
  • Added io.relative function
  • Added copying variants of existing functions (table.sorted, table.mapped, table.filtered, table.reversed, table.reordered)
  • Added table.size function
  • Added table.clear function
  • Added table.reduce, table.min, & table.max functions
  • Added table.find function
  • Added table.checkall function
  • Added coroutine.sleep function
  • Added crypto.generatekeypair function
  • Added crypto.encrypt & crypto.decrypt functions
  • Added crypto.sign & crypto.verify functions
  • Added crypto.sha1, crypto.sha384, & crypto.sha512 functions
  • Added crypto.adler32 function
  • Added url.parse function
  • Added math.round function
  • json.encode now supports __order for objects
  • json.decode now has an optional flags parameter, they can be combined via binary OR
    • json.withnull makes it decode JSON nulls as json.null instead of nil
    • json.withorder makes it produce __order field for objects
  • coroutines/threads now have a metatable by default
  • base64.encode & base32.encode changed padding parameter's default value from false to true (base64.urlencode is unchanged)
  • Fixed crypto.fnv1 & crypto.fnv1a producing incorrect hashes for non-ASCII strings

CLI:

  • Added '-c' flag to pluto & plutoc to enable compatibility mode

For integrators:

  • Added PLUTO_READ_FILE_HOOK & PLUTO_WRITE_FILE_HOOK
  • Added PLUTO_HTTP_REQUEST_HOOK
  • Removed PLUTO_USE_THROW as we now default to using C++ exceptions for Lua errors to avoid breaking RAII semantics. You can still specify LUA_USE_LONGJMP if you want long jumps.

0.8.2

  • Added variable scoping warnings to switch statements to highlight code that will break in 0.9.0
  • Improved some error messages
  • Fixed base32 & base64 functions not being binary-safe
  • Removed compile-time concat optimization because it could produce incorrect results

0.8.1

  • Added a specialized error message for local class = etc
  • 'exportvar' now prefixes function bytecode with 'load'
  • Improved code generation for switch blocks
  • Improved "possibly unwanted function call" warning
  • Fixed dumpvar & exportvar not handling recursion of sub-tables
  • Fixed assert.equal & assert.nequal ignoring extra fields in value2
  • Fixed 'until' possibly using a variable from wrong scope due to 'continue'
  • Fixed var-shadow warning for named vararg being raised on the wrong line

For integrators:

  • Added PLUTO_MEMORY_LIMIT
  • Added PLUTO_NO_DEBUGLIB
  • Added PLUTO_NO_COROLIB

For a more comprehensive overview of the changes, take a look at the commit log.

0.8.0

  • Added switch expressions
  • Added shorthand fallthrough syntax for switch statement & expression, e.g. case 1, 2: ...
  • Added try...catch statement
  • Added spaceship operator (<=>)
  • Added safe navigation for method calls: nilable_inst?:method(), inst:nilable_method?(), nilable_inst?:nilable_method?()
  • Added optional 'const' keyword as shorthand for local ... <const> [= ...], enabled with pluto_use const.
  • Added pluto_use "VERSION+"
  • Tables now have a metatable by default ({ __index = _G.table }).
  • Added '!' as an alias for 'not'
  • Added 'private' modifier for class fields
  • Improved 'class' and 'extends' to support indexed names
  • Improved 'instanceof' to be usable with more complex expressions
  • export now works in all scopes, not just the main body
  • Updated in operator on tables to check values instead of keys
  • \{ is now a valid escape sequence (for interpolated strings)
  • Fixed to-be-closed variables not working in switch cases
  • Fixed 'new' not working as expected if it was disabled by the environment and re-enabled by 'pluto_use'
  • Fixed 'enum class' not incrementing enumerator values
  • Fixed not being able to use expressions such as increment in enum without parentheses
  • Added compile-time concat optimization

Warnings:

  • Added warning for local attributes used without '<' ... '>'
  • Now propagating types for global variables so when their value is assigned to something, mismatches can be detected.
  • Added optional global-shadow warning which is like var-shadow but for globals that are especially vulnerable to obscure shadowing bugs (to prevent excessive annoyance).
    • These globals include: arg,string, and table. Integrators can change this via PLUTO_COMMON_GLOBAL_NAMES
    • Global shadow warnings do not apply to localization optimization (i.e, local table = table)
  • var-shadow has been improved to check more enclosing scopes
  • Improved unreachable-code
  • Fixed var-shadow warning for locals used in switch cases despite break
  • Added optional non-portable-code, non-portable-bytecode, and non-portable-name warning types
  • Warnings can now be promoted to errors, e.g. @pluto_warnings error-all

Standard library:

  • Soup is now always linked in, obsoleting _PSOUP
  • Added assertion library (see here for more preliminary detail)
  • Added url library (encode & decode)
  • Added exception class
  • Added vector3 class
  • Added dumpvar & exportvar
  • Added string.truncate
  • Added string.replace — a slightly faster, but mostly more straightforward alternative to gsub.
    • Most notably, not burdened by MAX_CAPTURES
  • Added string.formatint (supports any BigInt impl that can offer the user a string representation)
    • Also supports any grouping & any separator without concerning locale.
  • Added table.filter
  • Added table.map
  • Added table.reverse
  • Added table.reorder
  • Added io.currentdir
  • Added io.part
  • Added io.writetime
  • Added math.isnan
  • Added compareversions
  • Added wcall
  • Added math.atan2 as an alias for math.atan
  • Added json.null
  • io.absolute now has an optional argument to request a canonicalized absolute path
  • Updated string.rfind to accept Lua patterns
  • Renamed io.copyto to io.copy
  • Renamed base64.url_encode & base64.url_decode to base64.urlencode & base64.urldecode
  • Deprecated string.find_first_of & string.find_first_not_of in favor of string.find
  • Deprecated string.find_last_of & string.find_last_not_of in favor of string.rfind
  • Deprecated string.lfind in favor of string.find
  • Deprecated crypto.hexdigest in favor of string.format
  • Modified require
    • Prioritizes local files now to ensure compatibility. Added require("pluto:libname") to explicitly request pluto libraries if ever needed (normal still works for pluto libraries, we just check for local files first).
  • Removed base58

For integrators:

  • Added PLUTO_NO_FILESYSTEM - disables all filesystem access (for sandboxing).
  • Added PLUTO_WARN_NON_PORTABLE_CODE
  • Added PLUTO_WARN_NON_PORTABLE_BYTECODE
  • Added PLUTO_WARN_NON_PORTABLE_NAME
  • Added PLUTO_NO_BINARIES - disables all dll/so/c module loading (for sandboxing)
  • Added luaG_addsrcinfo

Far more information can be found at our documentation: https://pluto-lang.org/

0.7.4

  • Fixed unexpected behavior when using a ternary expression inside of an interpolated string
  • Fixed table.contains returning 0 instead of the actual key for non-integer key types
  • Fixed REPL not recognizing multi-line statements
  • Fixed Pluto-injected code corrupting bytecode

For integrators:

  • Added PLUTO_LOADCLIB_HOOK

0.7.3

  • Updated error semantics of os.remove & os.rename to match Lua's again (return false instead of raising error), Pluto's 'io' versions of these functions remain unchanged
  • Fixed extends not copying over metamethods
  • Fixed "memory allocation error: block too big" when parsing --[[]]
  • Fixed allowing function calls to primitives, causing ambiguities with exprstat after assignment
  • Fixed string.upper & string.lower delimiting on '\0'
  • Some other improvements and bugfixes

0.7.2

  • String interpolation now allows nested strings
  • Improved "unreachable code" warning
  • Improved some error messages
  • Fixed string interpolation not working with string call syntax
  • Fixed rare issues with 'new', 'extends' and 'instanceof' operators

0.7.1

  • Fixed string interpolation not working with single-quoted strings after 0.7.0
  • Fixed os.sleep disregarding execution time limit
  • Fixed scripts being able to go past execution time limit with coroutines

0.7.0

  • Added table destructuring (local '{' NAME [= FIELD][, ...] '}' '=' TABLE)
  • Added array destructuring (local '[' NAME[, ...] ']' '=' TABLE)
  • Added pluto_use <* | version | token> [= false] to toggle non-compatible keywords
  • Added pluto_use let [= false] to toggle 'let' alias for 'local'
  • Added ++ statement
    • Also supports ++t.prop
  • Added constructor promotion
  • Added compile-time conditionals
  • Improved class expression & statement
    • Now supports property declaration without value
    • Now supports type hints (currently without warnings)
    • Now supports access modifiers (currently without warnings or errors)
    • Can now optionally use 'begin' before body
  • Improved string interpolation to support any expression, not just variable names
  • Improved type hints to support alternatives, e.g. string|int
  • Named arguments may now be used in conjunction with positional arguments
  • Improved 'new' expression to support direct member access into the table it created, e.g. print(new Human("John").name)
  • 'new' may now also be used as a statement
  • Fixed loading of precompiled code from files with non-Latin path on Windows
  • Fixed behavior of 'in' expression when used on a temporary table

Out-of-the-box Compatibility:

  • 'parent' may now be overwritten via local or parameter name
  • All reserved identifiers can now be used with shorthand table syntax and goto

Standard library:

  • Added coroutine.xresume

For integrators:

  • Added PLUTO_USE_LET

More detailed documentation can be found here.

0.6.3

  • Defaults arguments now produce Lua-compatible bytecode
  • Fixed default arguments not working for methods
  • Fixed named arguments, etc. not working for upvalue functions
  • Fixed 'in' expression for when right-hand operand is nested table
  • Fixed 'in' expression being too greedy in consuming righthand operand

For integrators:

  • Added PLUTO_LUA_LINKABLE

0.6.2

  • Optional Parentheses now works for table types and with chained "suffix expressions"
  • Fixed new overwriting user-defined __index
  • Fixed infinite recursion with multi-level parent calls
  • Fixed some other small issues

Performance:

  • Optimized lua_insert, lua_remove, & lua_replace (Optimization by @gottfriedleibniz)
  • Optimized luaO_ceillog2 (Inspired by @gottfriedleibniz)
  • Enabled Lua's jump table for clang build as well
  • Fixed a VM performance regression introduced by Pluto

0.6.1

  • Improved suggestions (for when using plutoc with the language server)
  • Optimized switch statement code generation (now omits cases leading to default case)
  • Fixed producing syntax error when 'case' or 'default' is used outside of switch
  • Fixed using 'export' outside of global scope not producing an error
  • Fixed some confusing error messages
  • Pulled in the latest Lua changes so some Lua bugs are now fixed

0.6.0

  • Added <constexpr> attribute to force locals to be compile-time constants
  • Added $expr syntax for compile-time evaluation of select functions
  • Added export [NAME=VALUE | function | class] syntax
  • Added named arguments (name=value in funcargs)
  • Added named varargs (...NAME), automatically puts the varargs into a table with the given name
  • A subset of Soup is now vendored with Pluto so standard library features that rely on it should now be more viable
  • Removed deprecated "pluto_case" and "pluto_default" keywords
  • Removed when statement

Enums:

  • Added ENUM.ENUMERATOR syntax for named enums
    • Added ENUM CLASS NAME ... syntax to force usage of this syntax
  • Added enum reflection for named enums (:names(), :values(), :kvmap(), :vkmap())

Object-oriented programming:

  • Added new TABLE(...) syntax (creates new table, sets TABLE as its metatable + index, calls `:construct(...)` if exists)
  • Added 'class' statement & expression (similar to table but without need for ',' or ';' after properties and functions)
    • 'class' and 'local class' statements also support extends NAME which sets parent property and metatable with index
    • Added static function NAME for use within table constructor/class definition (equal to NAME = function)
  • Added 'parent' expression
    • parent.PROP -> self.__parent.PROP
    • parent:METHOD(...) -> self.__parent.METHOD(self, ...)
  • Added TABLE instanceof METATABLE operator

Type hints:

  • Added 'int' & 'float' type hints (more restrictive than 'number')
  • Added 'void' type hint for function return type

Standard library:

  • Added utonumber, utostring, & string.uformat
  • Added instanceof(TABLE, METATABLE)

For integrators upgrading to Pluto 0.6.0:

  • Consider defining PLUTO_COMPATIBLE_NEW, PLUTO_COMPATIBLE_CLASS, PLUTO_COMPATIBLE_PARENT & PLUTO_COMPATIBLE_EXPORT so 'new', 'class', 'parent' & 'export' will not be reserved keywords just yet, instead 'pluto_new', 'pluto_class', 'pluto_parent' & 'pluto_export' can be used.

More detailed documentation can be found here.

0.5.4

  • Default arguments now support tables
  • Pluto now supports building with C ABI so you can replace Lua's shared library with Pluto's without needing to change the program
  • Fixed return before case or default causing a syntax error
  • Fixed access violation on lua_close with strings as default parameters

0.5.3

  • Default arguments now support compile-time constant variables, unary -, and pseudo-unary +
  • Re-added os.remove & os.rename because they originated in Lua and should not have been removed
  • Fixed some instances of errors not providing a code snippet and reporting the wrong line
  • Fixed enumerators being limited to 32-bit values
  • Fixed warning disable/enable being global-only
  • Removed if-goto optimisation due to various edge cases where goto is not executed

0.5.2

  • Enum statement: Now supports compile-time constant variables when setting value
  • Fixed require, dofile, etc. not taking UTF-8 encoded paths on Windows
  • Fixed pluto & plutoc not being able to execute files with foreign names on Windows

0.5.1

  • Enum Statement: Now supports unary - and pseudo-unary + when setting value
  • Replaced locals limit with registers limit so you can have more compile-time constants
  • Fixed Pluto's IO functions not taking UTF-8 encoded paths
  • Fixed UB when emitting unfinished string error, possibly resulting in an access violation

0.5.0

  • Added "for ITERABLE as VALUE" loop
  • Added $-strings (string interpolation)
  • Added prefix ++ operator
  • Added support for binary number literals.
  • Added C-style enums
  • Added _PSOUP global
  • Updated package.path to look for .pluto files in working directory by default
  • Deprecated "pluto_case" and "pluto_default" (now "case" and "default", respectively)
  • Removed what was deprecated in 0.4.0 (sleep -> os.sleep, os.remove -> io.remove, os.rename -> io.rename)
  • Added execution time limit (optional, must be enabled in luaconf.h)
  • Added content moderation

Standard Library:

  • Added io.makedirs

Standard Library (Soup):

  • Added base64
  • Added base58
  • Added base32
  • Added json

0.4.5

  • Improved wording of some warning & error messages
  • Fixed excessive "duplicate local declaration" warnings
  • Cherry-picked some Lua commits, so the following Lua bugs are now fixed:
    • 'break' may not properly close variable in a 'for' loop
    • error message in 'table.remove'
    • 'utf8.codes' accepts spurious continuation bytes
    • Negation in constant folding of '>>' may overflow
    • stack overflow with nesting of coroutine.close

0.4.4

  • Added math.rand as an alias for math.random
  • Changed unknown type hint to be warning instead of error
  • Reverted table.insert optimation due to unexpected behavior
  • Some minor tweaks

0.4.3

  • Improved most error messages, and vastly improved the internal code for them.
  • These reserved tokens can be used as identifiers outside of their functional context: default, case
  • Optimized the performance of table.insert. Roughly 3x faster, but still slightly slower than t[#t + 1]
  • Pluto can now be built using Sun.

0.4.2

  • Fixes a regression introduced in Pluto 0.4.1 that prevented the walrus operator from working within lambda functions that are passed as function arguments

0.4.1

  • Updated lexer to tokenise in a separate pass
    • This fixes Pluto's error messages sometimes not showing the full line
  • Disallowed use of the walrus operator within a function call because it was found to be more janky than expected

0.4.0

Additions:

  • Walrus Operator
  • Default parameters for functions.
  • New standard library: lcryptlib, for various hash algorithms and cryptographic PRNGs.
  • New warnings:
    • Unreachable code.
    • Too many function arguments.

Improvements:

  • Switch case may now use variables.
  • Shorthand ternary syntax from C/C++.
  • Warnings can be configured with comments.
  • Improved performance of some common arithmetic algorithms.
  • VM Dumping has been rewritten for superb runtime detail on all opcodes, their arguments, their results, etc.
  • string.upper & string.lower take a second parameter indicating a specific index to change. Absence of this parameter preserves default behavior.

0.3.2

Improvements:

  • io.copyto will now overwrite existing files instead of throwing an exception.
  • Improve error handling of other exception-prone IO functions.

0.3.1

Bugfix:

  • String.split would previously invoke an infinite loop when an empty string is used as the delimiter.

0.3.0

Additions:

  • Inlined method creation.
  • STR in STR expressions.
  • KEY in INDEXABLE expressions.
  • Generalized iteration, no need for pairs.
  • io.listdir
  • Reserved keywords as valid fields.
  • Null-coalescing operator (w/ compound operator).
  • continue N & break N for manipulating outer loops.
  • Optional type-hinting, with parser warnings.
  • Safe accessor navigation, to avoid "attempt to index nil" errors for deeply nested fields.

Changes:

  • table.contains now returns an index if found and nil otherwise (previously returned true or false).

Improvements:

  • Switch no longer has syntactic restrictions
  • Greater switch performance

Documentation for the new changes can be found here.

0.2.2

  • Fixes a bug with the continue keyword

0.2.1

  • Added VM Dump
  • Implemented long jump optimisation

0.2.0

  • Added compile-time warnings for duplicate local declarations
  • Added optional ANSI color sequences in various error & warning messages
  • Added support for ternary expressions
  • Added continue statement
  • Added Table Freezing / Immutability
  • Added Switch/Case statements
  • Added user_data to global_State
  • Added !=
  • Added compatibility mode
  • Added table.contains
  • Added new time functions to os api
  • Added negative string indexing
  • Added compound concatenation operator
  • Added new string functions
  • Added portable jumptable implementation that can be optionally enabled
  • Added REPEAT .. WHEN loop support
  • Added new IO library functions
  • Added _PVERSION
  • Implemented table length cache optimisation (2x speedup)
  • Implemented optional parentheses around string literals for method invocation
  • Increased local variable limit from 200 to 249
  • Rebased with Lua for latest bugfixes

0.1.0

Initial version.

Notable features:

  • Lambda expressions
  • Arbitrary character insertion in numeral literals
  • Many compound operators
  • ** exponent operator
+ \ No newline at end of file diff --git a/docs/Compatibility.html b/docs/Compatibility.html index 12fc1f54..6fd297b5 100644 --- a/docs/Compatibility.html +++ b/docs/Compatibility.html @@ -4,13 +4,13 @@ Compatibility | Pluto - +

Compatibility

Pluto aims to be source- and bytecode-compatible with existing Lua code such that it can simply be used as a drop-in replacement for Lua, and Lua modules can simply be used in Pluto codebases. In the vast majority of cases, we do succeed, but there are a few things to be aware of.

New Keywords

While Pluto does add a handful of new keywords (switch, continue, enum, new, class, parent, export, try, catch), it can automatically infer when these are used as identifiers to preserve compatibility with Lua:

lua
local class = "supercar"
print("it's a "..class) --> it's a supercar

However, if a script does actually end up using a feature, its respective keyword can no longer be used as an identifier:

pluto
class Vehicle
-- ...
end
local class = "supercar" -- Error: expected a class name, found '='

The only exception to this is short-hand table syntax and goto labels because Pluto allows reserved keywords to be used in those contexts.

Compatibility Mode

Some users may wish for Pluto keywords to be off by default, for which we provide the following options:

  • For Integrators: Check your luaconf.h file to find the relevant macros under the "Compatibility" heading.
  • For Scripters: Put -- @pluto_use * = false at the top of your script.
  • For Users: Pass the -c flag to pluto or plutoc.

Note that when keywords have been disabled like this, Pluto will not infer that a script requires them automatically, instead requiring explicit opt-in via pluto_use.

Compile-time Configuration (pluto_use)

You can change the meaning of Pluto's reserved tokens at any point in your scripts using the --@pluto_use comment or pluto_use statement.

For example, to disable all non-compatible keywords except for switch:

pluto
-- @pluto_use * = false, switch

It is also possible to specify a version number, which is a shorthand for the keywords available at that version:

  • "0.2.0" corresponds to * = false, switch, continue
  • "0.5.0" corresponds to * = false, switch, continue, enum
  • "0.6.0" corresponds to * = false, switch, continue, enum, new, class, parent, export
  • "0.8.0" corresponds to * = false, switch, continue, enum, new, class, parent, export, try, catch

So, writing a portable script that only makes use of Pluto 0.8.0's features requires this at the beginning:

pluto
pluto_use "0.8.0"

This feature also supports quick encompassing of optional features. So, instead of:

pluto
pluto_use "0.8.0", global

You can use a '+' after the version number to also enable all of the optional features. As of 0.9.0, the only optional feature is explicit globals (global).

pluto
pluto_use "0.9.0+"
-- The same as pluto_use "0.9.0", global

For module developers and scripts which may be used in future versions of Pluto, we recommend you use pluto_use for two reasons:

  • Portability. This will override the compatibility mode settings compiled into Pluto so your script will be parsed identically in all Pluto environments.
  • Proactive compatibility. Any keywords added by future versions of Pluto will also be put in compatibility mode by these statements, so in the off-chance your script uses a future reserved keyword as a variable name, it would still parse as you intended when you wrote it.

Compatible Keywords

Another way of using Pluto's features regardless of compatibility mode is by prefixing the keyword with pluto_. For example, switch becomes pluto_switch. These Compatibility Mode variants will always be valid, even when Compatibility Mode is disabled.

These are what they look like:

  • pluto_switch
  • pluto_continue
  • pluto_enum
  • pluto_new
  • pluto_class
  • pluto_parent
  • pluto_export
  • pluto_try
  • pluto_catch

Default Table Metatable

This is a feature in Pluto that, by itself, is a benign QoL improvement for developers. However, in combination with our added standard library functions like table.min, it can be an unexpected semantic change:

pluto
local function roll(opts)
return math.random(opts.min or 1, opts.max or 100)
end
print(roll{ max = 10 })
pluto: test.pluto:2: bad argument #1 to 'random' (number expected, got function)
stack traceback:
[C]: in function 'math.rand'
test.pluto:2: in local 'roll'
test.pluto:4: in main chunk

Integrators can disable this feature by defining the PLUTO_NO_DEFAULT_TABLE_METATABLE macro in their luaconf.h or build config, to aid in a smooth transition, should scripts in their ecosystem require it.

Scripters are advised to use rawget and/or type to better codify their expectations. For example, the example above seems to care only about providing fallback values and not at all about type-checking, so rawget would be an excellent fit for it:

pluto
local function roll(opts)
return math.random(rawget(opts, "min") or 1, rawget(opts, "max") or 100)
end
print(roll{ max = 10 })
- + \ No newline at end of file diff --git a/docs/Editor Integration.html b/docs/Editor Integration.html index 1ecd8d36..0cf684e1 100644 --- a/docs/Editor Integration.html +++ b/docs/Editor Integration.html @@ -4,13 +4,13 @@ Editor Integration | Pluto - +

Editor Integration

Although Pluto can theoretically be used with Lua-based tooling, we provide specialized support for .pluto files to enhance your coding experience with features such as:

  • Syntax Highlighting
  • Snippets — e.g. for when you type "fun" and press tab
  • Comment Information — for editor features such as "Toggle Comment", "Toggle Block Comment"
  • Indentation Rules — for editor features such as "Reindent Lines"
  • Build Systems — run & lint scripts directly in your editor with Ctrl+(Shift+)B in Sublime Text or Ctrl+Shift+P in VS Code

Installation

The installation process depends on your editor:

  • VS Code: Search for calamity-inc.pluto-syntax-highlighting in the marketplace and press "Install."
  • Sublime Text: Open the command palette (Ctrl+Shift+P), select "Package Control: Install Package", search for "Pluto", and press enter.
  • Visual Studio: Click on Extensions > Manage Extensions. In the Online section, search for calamity-inc.pluto-vsix and press "Download."
  • IntelliJ: Clone our syntax highlighting repository and add the tmbundle folder to Editor > TextMate Bundles.

If your editor is not listed here, check if it is able to load TextMate bundles, in which case you should be able to do something similar to the IntelliJ instructions above.

- + \ No newline at end of file diff --git a/docs/For Integrators.html b/docs/For Integrators.html index 40198fff..a113910a 100644 --- a/docs/For Integrators.html +++ b/docs/For Integrators.html @@ -4,13 +4,13 @@ For Integrators | Pluto - +

For Integrators

The luaconf.h in Pluto provides various battle-tested mechanisms for locking down your Pluto environments. In this article, we've documented some of those. If you are an integrator who needs help configuring any of this, or who wants us to implement another mechanism, feel free to contact us on GitHub.

Content Moderation

Compiled Code

You can disable execution of compiled bytecode by defining PLUTO_DISABLE_COMPILED in luaconf.h or your build config.

Custom Module Filters

You may already have filters before passing scripts to run onto Pluto, but mechanisms such as dofile and require may be used to bypass them. To help you combat this, Pluto provides PLUTO_LOADFILE_HOOK. For example, if you set it to ContmodOnLoadfile in luaconf.h or your build config, you only need to define that function somewhere in your code, like this:

cpp
extern "C" bool ContmodOnLoadfile(const char* filename) {
return !isCodeProhibited(soup::string::fromFile(filename));
}

This requires you to use Pluto as a static library, as otherwise this linking relationship won't work.

Prevent Loading of Binary Modules

The PLUTO_NO_BINARIES macro can be defined to totally eliminate package.loadlib and any DLL/SO loading capability from the require function. This is helpful because package.loadlib can be used to bypass sandbox restrictions by manually loading symbols from a Lua/Pluto library, and the require function can load any Lua/Pluto C Module which may or may not provide dangerous functions. This is generally vital for any sandbox. This mechanism cannot be bypassed, since it configures Pluto to compile without support for any of the aforementioned features.

Execution Time Limit

To aid environments that have to be sandboxed, Pluto provides Execution Time Limit (ETL), which can be enabled by defining PLUTO_ETL_ENABLE in luaconf.h or your build config.

By default, ETL allows code to run for a total of 1 ms (1.000.000 nanos). This can be changed by overwriting PLUTO_ETL_NANOS.

Note that this is a hammer solution. If you only want to prevent stupid mistakes, Infinite Loop Prevention is a far better tool.

Infinite Loop Prevention

Pluto can detect infinite loops by preventing too many successive iterations. This was implemented because game threads usually force users to call some sort of yield mechanism to return control to the game thread. In Pluto, you specify a hard bottleneck on iterations, then you specify a function pointer which should prevent ILP within the loop it's called in.

This will produce an error due to ILP:
pluto
while true do
end
This will not, with correct configuration:
pluto
while true do
yield()
end

If your scheduling system calls coroutine.yield at least once per tick, configuring the ILP mechanism can be as simple as defining PLUTO_ILP_ENABLE. In any case, Pluto's configuration file (luaconf.h) is worth a look at, especially to properly configure this feature.

info

This is a very simple mechanic. It has no performance overhead & it's lightweight. However, the compromise for this was coverage. This will reliably prevent most user error, however malicious users can find a way to block a thread still. For example, any forward jump will prevent the mechanism from breaking a loop. This can be exploited, so don't rely on this for security.

VM Dumping

Pluto offers an optional, configurable feature to see every instruction that is executed in the Lua VM.

Configuration

VM Dump can be enabled by defining PLUTO_VMDUMP in luaconf.h or your build config.

  • To reduce noise, you can modify PLUTO_VMDUMP_COND to set a custom condition for when VM Dump is active. By default, the condition is true.
  • Although not a configuration specific to VM Dump, it should be noted that you can modify the output macros lua_writestring and lua_writeline.

What it looks like

Given the following code:

pluto
local value = 3
switch value do
case 1:
case 2:
case 3:
case 4:
case 5:
print("Got 1-5.")
break
default:
print("Value is greater than 5.")
end
-- Break jumps here.

It will output:

VARARGPREP 0 ; prepare for 0 varargs
LOADI 0 3 ; push 3
EQI 0 1 0 ; 3 == 1
EQI 0 2 1 ; 3 == 2
EQI 0 3 1 ; 3 == 3
GETTABUP 1 0 0 ; push T['print'] for function-00007FF6211485A0 (T=table-0000019FEDA45580)
LOADK 2 1 ; push "Got 1-5."
CALL 1 2 1 ; call function-00007FF6211485A0 (nresults=0 nparams=1)
<OUTPUT> Got 1-5.
JMP 13 ; offset=13 newpc=0000019FEDA5C2C4
RETURN 1 1 1 ; return 0 value(s)

This is great at deciphering obfuscated code which may be causing problems for your environment.

- + \ No newline at end of file diff --git a/docs/Getting Started.html b/docs/Getting Started.html index 4dbde741..75d8ced4 100644 --- a/docs/Getting Started.html +++ b/docs/Getting Started.html @@ -4,13 +4,13 @@ Getting Started | Pluto - +

Getting Started

This document will explain how to get started with writing Pluto in no time.

Write Pluto Online

The easiest way to get started writing Pluto is to use Write Pluto Online, which runs Pluto code directly in your browser using WASM.

Prebuilt Binaries

You can find pre-built binaries of Pluto for Windows, Linux, & Mac OS over on Pluto's Github Releases page.

Packages

Chocolatey

You can easily install pluto and plutoc via Chocolatey as follows:

choco install plutolang

APT Repository

You can easily install Pluto via APT as follows:

wget -qO- https://calamity-inc.github.io/deb-repo/key.gpg | sudo tee /usr/share/keyrings/calamity-inc.gpg > /dev/null
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/calamity-inc.gpg] https://calamity-inc.github.io/deb-repo/ buster main" | sudo tee /etc/apt/sources.list.d/calamity-inc.list > /dev/null
sudo apt update
sudo apt install pluto

This package includes the pluto and plutoc executables, shared library, as well as headers for developers (#include <pluto/...>).

As the "buster" part implies, these binaries were compiled on Debian 10, but they work on all subsequent Debian releases, as well as Ubuntu 20 and above.

AUR

Pluto is in the Arch User Repository under the name plutolang.

This package includes the pluto and plutoc executables, shared library, as well as headers for developers (#include <pluto/...>).

Termux

Pluto is available in the Termux package main repository under plutolang for binaries and libpluto for development library.

Compile Pluto Yourself

Pluto can compile on virtually any platform, as long as there's a C++ 17 compiler for it.

First, you need to clone the repository:

git clone https://github.com/PlutoLang/Pluto
cd Pluto

Then, you can use any of the build methods documented here.

PHP Scripts

info

PHP is required for this method. You can check if PHP is installed by running php -v. You can install it via sudo apt intall php-cli on Debian or sudo pacman -S php on Arch.

Simply run the following commands:

php scripts/compile.php clang
php scripts/link_pluto.php clang
php scripts/link_plutoc.php clang
php scripts/link_static.php

You can easily modify these commands to a compiler other than clang, if you wish. There are also additional scripts for the various types of shared libraries.

The binaries will be placed in the src/ directory.

Visual Studio

In the repository you just cloned, there's a Pluto.sln you can open with Visual Studio.

Within Visual Studio, open the Build > Batch Build dialog. Here, click "Select All", then "Build".

The binaries will be placed in the out/ directory.

Make

You can simply run the make command:

make -j PLAT={yourplatform}

The platform list can be found here.

The binaries will be placed in the src/ directory.

Sun

Pluto supports the Sun build system by providing .sun files in the src/ directory, you can use them to build pluto & plutoc:

cd src
sun pluto
sun plutoc

The binaries will be placed in the src/ directory.

If you wish to use Pluto as a static library in your own projects, simply add the following to your project's .sun file:

require ../Pluto/src

Assuming a directory structure where your own project and Pluto share the same parent.

- + \ No newline at end of file diff --git a/docs/Introduction.html b/docs/Introduction.html index 7290f0f1..c7c685f3 100644 --- a/docs/Introduction.html +++ b/docs/Introduction.html @@ -4,13 +4,13 @@ What is Pluto? | Pluto - +

What is Pluto?

Pluto is a superset of Lua 5.4 with a focus on general-purpose programming. While being remarkably compatible with Lua 5.4 source-code & bytecode, it enhances the standard library & adds more than a dozen highly-desired syntaxes such as switch statements, compound operators, classes, class inheritance, string interpolation, type hinting, enums, and so on.

What does Pluto aspire to be?

Pluto aspires to be a version of Lua with a larger feature-set, that is all. Pluto is not a Lua-killer, an attempted successor, or any of that. Many people (rightly so) love Lua precisely because of the design philosophy. And fundamentally, Pluto is a major deviation from Lua's design philosophy. Some may prefer this, some may not.

- + \ No newline at end of file diff --git a/docs/New Features/Break Statement.html b/docs/New Features/Break Statement.html index 841ba574..c5fd5086 100644 --- a/docs/New Features/Break Statement.html +++ b/docs/New Features/Break Statement.html @@ -4,13 +4,13 @@ Break Statement | Pluto - +

Break Statement

This keyword accepts an optional integral argument which tells it how many levels of enclosing loops it should break. The default value is 1, thus breaking out of the current loop.

Example 1
pluto
for i = 1, 10 do -- Loop 1.
break 1 -- This is identical to `break` without any arguments.
end
Example 2
pluto
for i = 1, 10 do -- Loop 1.
for ii = 1, 5 do -- Loop 2.
break 1 -- This will break from Loop 2.
break 2 -- This will break from Loop 1.
end
end
- + \ No newline at end of file diff --git a/docs/New Features/Compile-Time Evaluation.html b/docs/New Features/Compile-Time Evaluation.html index 70a3a23b..4f8e38c1 100644 --- a/docs/New Features/Compile-Time Evaluation.html +++ b/docs/New Features/Compile-Time Evaluation.html @@ -4,13 +4,13 @@ Compile-Time Evaluation | Pluto - +

Compile-Time Evaluation

Pluto's parser provides some powerful constructs which allow you to write code that will never be seen at runtime.

Function calls

Certain standard library functions can be called at compile-time, as long as the arguments are also known at compile-time, by using the "$" symbol before the function call.

pluto
local runtime = require("crypto").joaat("Hello, World!")
local compile = $crypto.joaat("Hello, World!")
assert(runtime == compile)

If you're unfamiliar with compile-time evaluation, this is essentially what the code turns into:

pluto
local runtime = require("crypto").joaat("Hello, World!")
local compile = 847757641 -- The JOAAT hash of "Hello, World!"
assert(runtime == compile)

This is available on preloaded Pluto libraries, such as:

  • json
  • base32
  • base58
  • base64
  • crypto

And on the following functions:

  • tostring
  • utostring
  • tonumber
  • utonumber

Variables

Compile-time constant variables can be defined via the $define statement:

pluto
$define a = 123

This may seem identical to a local declared with the const attribute:

pluto
local a <const> = 123

However, $define also enforces that the assigned variable is a compile-time constant:

pluto
local a <const> = {}
$define a = {} -- Error: variable was not assigned a compile-time constant value

Conditionals

If there is certain code you only want to have compiled in for a certain build, such as a debug build, you can use compile-time conditionals:

pluto
$define DEBUG = true
$if DEBUG then
print("Script running in debug mode")
$else
print("Script running in release mode")
$end

In this case, only one of the two paths will be compiled in; the rest will not take up any space.

- + \ No newline at end of file diff --git a/docs/New Features/Compiler Warnings.html b/docs/New Features/Compiler Warnings.html index 14a1485a..68dbbce1 100644 --- a/docs/New Features/Compiler Warnings.html +++ b/docs/New Features/Compiler Warnings.html @@ -4,13 +4,13 @@ Compiler Warnings | Pluto - +

Compiler Warnings

Pluto offers optional compiler warnings for certain misbehaviors.

Warning Types

var-shadow

This is raised when a new local is created with the same name as an existing one.

pluto
local var = 5
do
local var = "hello"
end
file.pluto:3: warning: duplicate local declaration [var-shadow]
3 | local var = "hello"
| ^^^^^^^^^^^^^^^^^^^ here: this shadows the initial declaration of 'var' on line 1.

global-shadow

This is raised when a new local is created with the same name as a global variable.

pluto
local table = {}
file.pluto:1: warning: duplicate global declaration [global-shadow]
1 | local table = {}
| ^^^^^^^^^^^^^^^^ here: this shadows the initial global definition of 'table'

To avoid excessive annoyance, this warning type is off by default. To enable it, scripters can use the compile-time configuration and integrators can define the PLUTO_WARN_GLOBAL_SHADOW macro.

Furthermore, this only covers the globals 'table', 'string', and 'arg' by default. Integrators can overwrite the PLUTO_COMMON_GLOBAL_NAMES macro to change this list.

field-shadow

This is raised when the same field is declared multiple times in a table constructor:

pluto
local t = {
key = "fruit",
value = "apple",
value = "banana"
}
file.pluto:4: warning: duplicate table field [field-shadow]
4 | value = "banana"
| ^^^^^^^^^^^^^^^^ here: this overwrites the value assigned to this field earlier

type-mismatch

This is raised when the type of an expression doesn't match the hinted type. See Type Hinting.

pluto
local var: number = 5
var = "hello"
file.pluto:2: warning: variable type mismatch [type-mismatch]
2 | var = "hello"
| ^^^^^^^^^^^^^ here: 'var' type-hinted as 'number', but assigned a string value.

unreachable-code

This is raised when a block of code will never be ran.

pluto
for i = 1, 10 do
if i == 5 then
continue
print("message")
end
end
file.pluto:4: warning: unreachable code [unreachable-code]
4 | print("message")
| ^^^^^^^^^^^^^^^^ here: this code comes after an escaping 'continue' statement.

excessive-arguments

This is raised when too many arguments are given to a non-vararg function.

pluto
local function func(a, b, c)
end
func(1, 2, 3, 4)
file.pluto:5: warning: too many arguments [excessive-arguments]
5 | func(1, 2, 3, 4)
| ^^^^^^^^^^^^^^^^ here: expected 3 arguments, got 4.

bad-practice

This is raised when the code does something stupid but not quite stupid enough to cause an error.

pluto
pluto_use *
file.pluto:1: warning: 'pluto_use *' is a bad idea because future Pluto versions may add keywords that will break your script [bad-practice]
1 | pluto_use *
| ^^^^^^^^^^^ here: consider using 'pluto_use "0.8.0"' instead

possible-typo

This is raised when the code seems syntactically incorrect.

pluto
local magic const = 42
file.pluto:1: warning: Possibly mistyped attribute [possible-typo]
1 | local magic const = 42
| ^^^^^^^^^^^^^^^^^^^^^^ here: Did you mean '<const>'?

non-portable-code

This is raised when the code may not be considered valid by all Pluto environments due to compatibility mode.

pluto
new exception("Not implemented")
file.pluto:1: warning: non-portable keyword usage [non-portable-code]
1 | new exception("Not implemented")
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ here: use 'pluto_new' instead, or 'pluto_use' this keyword: https://pluto.do/compat

To avoid excessive annoyance, this warning type is off by default. To enable it, scripters can use the compile-time configuration and integrators can define the PLUTO_WARN_NON_PORTABLE_CODE macro.

non-portable-name

This is raised when a variable name is only valid due to compatibility mode.

pluto
local class = "fruit"
file.pluto:1: warning: 'class' is a non-portable name [non-portable-name]
1 | local class = "fruit"
| ^^^^^^^^^^^^^^^^^^^^^ here: use a different name, or use 'pluto_use' to disable this keyword: https://pluto.do/compat

To avoid excessive annoyance, this warning type is off by default. To enable it, scripters can use the compile-time configuration and integrators can define the PLUTO_WARN_NON_PORTABLE_NAME macro.

non-portable-bytecode

This is raised when the code will not run in Lua environments (when compiling Pluto to bytecode).

pluto
print("h" in "hello")
file.pluto:1: warning: non-portable operator usage [non-portable-bytecode]
1 | print("h" in "hello")
| ^^^^^^^^^^^^^^^^^^^^^ here: this operator generates bytecode which is incompatible with Lua.

To avoid excessive annoyance, this warning type is off by default. To enable it, scripters can use the compile-time configuration and integrators can define the PLUTO_WARN_NON_PORTABLE_BYTECODE macro.

unannotated-fallthrough

This is raised when there's a non-obvious fallthrough in a switch block:

pluto
local a = 1
switch a do
case 1:
print("Case 1")
case 2:
print("Case 2")
end
file.pluto:5: warning: possibly unwanted fallthrough [unannotated-fallthrough]
5 | case 2:
| ^^^^^^^ here: the case on line 3 flows into this case
+ note: place `--@fallthrough` before this case if this is intended

As the warning points out, a @fallthrough annotation can be used to label the fallthrough, in turn silencing the warning:

pluto
local a = 1
switch a do
case 1:
print("Case 1")
-- @fallthrough
case 2:
print("Case 2")
end

implicit-global

This is raised when the global keyword is enabled and a global was declared without it. See Explicit Globals.

pluto
pluto_use global
a = 1
file.pluto:3: warning: implicit global creation [implicit-global]
3 | a = 1
| ^^^^^ here: prefix this with 'global' if creating a global was intended

discarded-return

This is raised when the return value of a function declared <nodiscard> was discarded. See Nodiscard Functions.

pluto
local function add(a, b) <nodiscard>
return a + b
end
add(1, 2)
file.pluto:5: warning: discarding return value of function declared '<nodiscard>' [discarded-return]
5 | add(1, 2)
| ^^^^^^^^^ here

Compile-time Configuration

The state of each warning type can be changed during compile-time and exceptions for certain code can be made.

Changing Warning States

Warnings have 3 states: 'disable', 'enable', and 'error'. The 'error' state is a more aggressive version of 'enable' that causes compilation to fail if the warning type is raied.

To change the state of a warning, write a @pluto_warnings comment with the state and warning type joined by a hyphen (-):

pluto
local var = 5
do
-- @pluto_warnings: disable-var-shadow
local var = "hello"
-- @pluto_warnings: enable-var-shadow
end

For this, there is also the special type, 'all', which can be used e.g. to enable all warnings except for non-portable-bytecode:

pluto
-- @pluto_warnings: enable-all, disable-non-portable-bytecode

Disable Warnings On Line

To disable warnings on a specific line of code, simply put a comment on the line before it with @pluto_warnings: disable-next.

pluto
local var = 5
do
-- @pluto_warnings: disable-next
local var = "hello"
end
- + \ No newline at end of file diff --git a/docs/New Features/Continue Statement.html b/docs/New Features/Continue Statement.html index 62e3bc18..f97ce93a 100644 --- a/docs/New Features/Continue Statement.html +++ b/docs/New Features/Continue Statement.html @@ -4,13 +4,13 @@ Continue Statement | Pluto - +

Continue Statement

Continue statements, like break, are meant to be used in loops. They skip the current iteration of the loop.

They introduce a new keyword, continue. These cannot be used inside switch statements.

Example Code
pluto
-- Print every number besides five.
for i = 1, 10 do
if i == 5 then
continue
end
print(i)
-- continue jumps here.
end
caution

Note, continue will skip code. If any code within your loop will determine if the loop continues, make sure continue doesn't jump over it.

Continue's Only Argument

This keyword accepts an optional integral argument which tells it how many levels of enclosing loops it should skip to the end of. The default value is 1, thus skipping to the end of the current loop.

Example 1
pluto
for i = 1, 10 do -- Loop 1.
continue 1 -- This is identical to `continue` without any arguments.
end
Example 2
pluto
for i = 1, 10 do -- Loop 1.
for ii = 1, 5 do -- Loop 2.
continue 1 -- This will continue from Loop 2.
continue 2 -- This will continue from Loop 1.
end
end

Using Compatibility Mode?

You may need to use pluto_continue instead of continue. Alternatively, pluto_use continue will enable the keyword independently of environment settings.

- + \ No newline at end of file diff --git a/docs/New Features/Default Arguments.html b/docs/New Features/Default Arguments.html index 9d204b17..db565878 100644 --- a/docs/New Features/Default Arguments.html +++ b/docs/New Features/Default Arguments.html @@ -4,13 +4,13 @@ Default Arguments | Pluto - +

Default Arguments

During a function declaration, parameters can now declare their own default value.

Example Code
pluto
local function write(text = "No text provided.")
print(text)
end
write() --> No text provided.
write("Hello!") --> Hello!
This code behaves identically.
pluto
local function write(text)
if text == nil then
text = "No text provided."
end
print(text)
end
write() --> No text provided.
write("Hello!") --> Hello!
- + \ No newline at end of file diff --git a/docs/New Features/Destructuring.html b/docs/New Features/Destructuring.html index 75055a0e..69f3ca50 100644 --- a/docs/New Features/Destructuring.html +++ b/docs/New Features/Destructuring.html @@ -4,13 +4,13 @@ Destructuring | Pluto - +

Destructuring

Destructuring is a better way to assign local variables from expressions that return a table.

Array destructuring

Assuming we have this table:

pluto
local t = { 3, 6, 9 }

This is how we would assign each value to variables called a, b, and c using the Lua and Pluto ways:

Lua way
pluto
local a, b, c = table.unpack(t)
Pluto way
pluto
local [a, b, c] = t

Table destructuring

Assuming we have this table:

pluto
local t = {
name = "John",
age = 42
}

This is how we would assign each field to a variable of the same name using the Lua and Pluto ways:

Lua way
pluto
local name = t.name
local age = t.age
Pluto way
pluto
local { name, age } = t

Different variable name

Assuming we have the same table as above, this is how we'd assign the name and age fields to n and a variables, respectively, using the Lua and Pluto ways:

Lua way
pluto
local n = t.name
local a = t.age
Pluto way
pluto
local { n = name, a = age } = t

Standard Library

Table destructuring can be used to require multiple standard library modules at once using the '*' module:

pluto
local { base64, json } = require "*"
- + \ No newline at end of file diff --git a/docs/New Features/Enumerations.html b/docs/New Features/Enumerations.html index b6132a97..0571c18e 100644 --- a/docs/New Features/Enumerations.html +++ b/docs/New Features/Enumerations.html @@ -4,13 +4,13 @@ Enumerations | Pluto - +

Enumerations

Pluto adds the following syntax:

pluto
enum MyEnum begin
OPTION_1,
OPTION_2,
OPTION_3
end
assert(OPTION_1 == 1)
assert(OPTION_2 == 2)
assert(OPTION_3 == 3)

Enums can start at a base number, and increment from there.

pluto
enum MyEnum begin
OPTION_1 = 0,
OPTION_2,
OPTION_3 = 5,
OPTION_4
end
assert(OPTION_1 == 0)
assert(OPTION_2 == 1)
assert(OPTION_3 == 5)
assert(OPTION_4 == 6)

Since this enum has a name, we can also access its enumerators with that:

pluto
assert(MyEnum.OPTION_1 == 0)

Scoped Enums

You can force usage of the ENUM.ENUMERATOR syntax by using 'enum class':

pluto
enum class MyEnum begin
OPTION_1,
OPTION_2,
OPTION_3
end
assert(OPTION_1 == nil)
assert(MyEnum.OPTION_1 == 1)

Reflection

When you have a named enum, not only can you get its enumerators, but also reflect upon it with some methods:

pluto
enum MyEnum begin
OPTION_1,
OPTION_2,
OPTION_3
end
for k, v in MyEnum:kvmap() do
print(k, v) -- "OPTION_1 1" ...
end

The following methods are available: :names(), :values(), :kvmap(), :vkmap()

Anonymous Enums

Enums can also be anonymous:

pluto
enum begin
OPTION_1,
OPTION_2,
OPTION_3
end
assert(OPTION_1 == 1)
assert(OPTION_2 == 2)
assert(OPTION_3 == 3)

Using Compatibility Mode?

You may need to use pluto_enum instead of enum. Alternatively, pluto_use enum will enable the keyword independently of environment settings.

- + \ No newline at end of file diff --git a/docs/New Features/Explicit Globals.html b/docs/New Features/Explicit Globals.html index 817524ce..90a44704 100644 --- a/docs/New Features/Explicit Globals.html +++ b/docs/New Features/Explicit Globals.html @@ -4,13 +4,13 @@ Explicit Globals | Pluto - +

Explicit Globals

The optional global keyword can be used to explicitly declare global variables.

To enable it, simply do:

pluto
pluto_use global

Then it can be used like this:

pluto
global a = 1

Being identical to the following code:

pluto
a = 1

Compiler Warnings

When the global keyword is enabled, an 'implicit-global' warning is raised for any globals declared without it:

pluto
pluto_use global
a = 1
file.pluto:3: warning: implicit global creation [implicit-global]
3 | a = 1
| ^^^^^ here: prefix this with 'global' if creating a global was intended
- + \ No newline at end of file diff --git a/docs/New Features/Export Modifier.html b/docs/New Features/Export Modifier.html index a94e3081..d90e8f89 100644 --- a/docs/New Features/Export Modifier.html +++ b/docs/New Features/Export Modifier.html @@ -4,13 +4,13 @@ Export Modifier | Pluto - +

Export Modifier

The export modifier allows you to automatically aggregate things you want to export into a table.

Old Code
pluto
local version = 2
local function add(a, b)
return a + b
end
return {
version = version,
add = add
}
New Code
pluto
export version = 2
export function add(a, b)
return a + b
end

The return statement is automatically generated at the end of the block, so it is not limited to the top-level function:

pluto
package.preload["test"] = function()
export version = 2
export function add(a, b)
return a + b
end
-- end of scope; 'return' is automatically generated
end
print(require"test".version)

Using Compatibility Mode?

You may need to use pluto_export instead of export. Alternatively, pluto_use export will enable the keyword independently of environment settings.

- + \ No newline at end of file diff --git a/docs/New Features/For-As Loop.html b/docs/New Features/For-As Loop.html index e058b199..8059d9e2 100644 --- a/docs/New Features/For-As Loop.html +++ b/docs/New Features/For-As Loop.html @@ -4,13 +4,13 @@ For-As Loop | Pluto - +

For-As Loop

When you only want to iterate over the values of a table, you can use Pluto's for-as syntax.

New Code
pluto
local t = { 1, 2, 3, "hello", "world" }
for t as value do
print(value)
end
--> 1
--> 2
--> 3
--> hello
--> world

That code is identical to this:

Old Code
pluto
local t = { 1, 2, 3, "hello", "world" }
for _, value in t do
print(value)
end
info

The bytecode of this feature is only backwards-compatible with Lua when pairs, ipairs, or next is used. See Generalized Iteration.

- + \ No newline at end of file diff --git a/docs/New Features/In Expressions.html b/docs/New Features/In Expressions.html index d66f3b6b..1b1b1ccf 100644 --- a/docs/New Features/In Expressions.html +++ b/docs/New Features/In Expressions.html @@ -4,13 +4,13 @@ In Expressions | Pluto - +

In Expressions

The in operator has been extended to support string searches and table searches. For these purposes, it's the fastest possible solution.

Searching for a substring.
pluto
assert("world" in "hello world")

When used on tables, the in operator searches for values. It'll search for array elements and it'll search keys for their values.

Searching a table for a value.
pluto
local t = { "a", "b", key = "value" }
assert("a" in t) -- "a" is an element inside of t.
assert("b" in t) -- "b" is an element inside of t.
assert("value" in t) -- "value" is the value of a key inside of t.
assert(not "random" in t) -- "random" is not an element OR the value of a key inside of t.

Rules

  • The right-hand operand must always be a table or a string.
  • The left-hand operand must be a string if the right-hand operand is a string.
  • The left-hand operand can be anything if the right-hand operand is a table.
caution

The bytecode of this feature is not backwards-compatible with Lua.

- + \ No newline at end of file diff --git a/docs/New Features/Lambda Expressions.html b/docs/New Features/Lambda Expressions.html index 7444ca85..416d5f25 100644 --- a/docs/New Features/Lambda Expressions.html +++ b/docs/New Features/Lambda Expressions.html @@ -4,13 +4,13 @@ Lambda Expressions | Pluto - +

Lambda Expressions

Lambda expressions are an alternative way of writing anonymous functions.

Lua Way
pluto
local s1 = "123"
local s2 = s1:gsub(".", function(c) return tonumber(c) + 1 end)
print(s2) --> 234
Pluto Way
pluto
local s1 = "123"
local s2 = s1:gsub(".", |c| -> tonumber(c) + 1)
print(s2) --> 234

As you can see, they take an expression after the arrow, the result of which is implicitly returned.

However, lambda expressions can also have full bodies using do...end:

pluto
local add = |a, b| -> do
print($"Adding {a} and {b} together")
return a + b
end

They also support all other syntax you would expect of functions, such as type hints and default arguments.

- + \ No newline at end of file diff --git a/docs/New Features/Named Arguments.html b/docs/New Features/Named Arguments.html index 14af9d88..cb4331ec 100644 --- a/docs/New Features/Named Arguments.html +++ b/docs/New Features/Named Arguments.html @@ -4,13 +4,13 @@ Named Arguments | Pluto - +

Named Arguments

Instead of positional arguments, you can use the names of arguments you want to set:

pluto
local function process_file(file, mode = "r", version = 1)
print($"Processing {file} with mode '{mode}' and version {version}")
end
process_file(file = "hello.txt", version = 2) -- "Processing hello.txt with mode 'r' and version 2"

Note that this example also makes use of default arguments and string interpolation.

Mixing arguments

You can use positional arguments for the first few arguments and then use named arguments for the latter ones, for example:

pluto
local function process_file(file, mode = "r", version = 1)
print($"Processing {file} with mode '{mode}' and version {version}")
end
process_file("hello.txt", version = 2) -- "Processing hello.txt with mode 'r' and version 2"

Limitations

This feature is implemented entirely in the parser and therefore only works for local functions at the moment.

- + \ No newline at end of file diff --git a/docs/New Features/Named Varargs.html b/docs/New Features/Named Varargs.html index ac0a504f..9e6604c0 100644 --- a/docs/New Features/Named Varargs.html +++ b/docs/New Features/Named Varargs.html @@ -4,13 +4,13 @@ Named Varargs | Pluto - + - + \ No newline at end of file diff --git a/docs/New Features/Nodiscard Functions.html b/docs/New Features/Nodiscard Functions.html index 71d0d9c1..a7db0cf8 100644 --- a/docs/New Features/Nodiscard Functions.html +++ b/docs/New Features/Nodiscard Functions.html @@ -4,13 +4,13 @@ Nodiscard Functions | Pluto - +

Nodiscard Functions

Functions can be declared nodiscard, causing a warning to be raised when the return value is discarded:

pluto
local function add(a, b) <nodiscard>
return a + b
end
add(1, 2)
file.pluto:5: warning: discarding return value of function declared '<nodiscard>' [discarded-return]
5 | add(1, 2)
| ^^^^^^^^^ here

This can also be combined with type hints:

pluto
local function add(a: number, b: number): number <nodiscard>
return a + b
end
info

The warning coverage is currently limited to local functions.

- + \ No newline at end of file diff --git a/docs/New Features/Numeral Parsing.html b/docs/New Features/Numeral Parsing.html index e7d38654..4b7c8e30 100644 --- a/docs/New Features/Numeral Parsing.html +++ b/docs/New Features/Numeral Parsing.html @@ -4,13 +4,13 @@ Numeral Parsing | Pluto - +

Numeral Parsing

Pluto makes two small changes to numeral parsing.

Cosmetic Underscores

You can add underscores to your numeric literals to make them more readable.

Example Code
pluto
local n = 10_000_000
assert(n == 10000000)

These underscores are ignored by the compiler, so they are purely cosmetic.

Binary Integers

Similar to how Lua allows you to input numbers in hexadecimal:

Example Code
pluto
local n = 0x420
assert(n == 1056)

Pluto allows you to input numbers in binary as well:

Example Code
pluto
local n = 0b1000101
assert(n == 69)
- + \ No newline at end of file diff --git a/docs/New Features/Object-Oriented Programming.html b/docs/New Features/Object-Oriented Programming.html index e8f24ae6..4567f3c3 100644 --- a/docs/New Features/Object-Oriented Programming.html +++ b/docs/New Features/Object-Oriented Programming.html @@ -4,13 +4,13 @@ Object-Oriented Programming | Pluto - +

Object-Oriented Programming

Pluto makes a plethora of improvements when it comes to object-oriented programming.

Method Creation

A series of methods was otherwise ugly to implement into a Lua table.

Old Code
pluto
local t = {}
function t:f1(...) end
function t:f2(...) end
function t:f3(...) end

Now, you can inline these statements inside of your table.

New Code
pluto
local t = {
function f1() end,
function f2() end,
function f3() end
}

This automatically marks the functions as methods.

caution

Keep in mind, this produces methods, meaning you'll need to use the colon invocation syntax to avoid positional ambiguities in your parameters.

Static Functions

For consistency with the above syntax, you can use 'static function' to declare non-method functions in your tables:

pluto
local t = {
static function say(msg)
print(msg)
end
}
t.say("Hello") --> Hello

New Operator

Pluto adds an easy way to make instances with the new operator. This operator will also call the __construct method if it exists.

pluto
local Human = {
function __construct(name)
self.name = name
end
}
local john = new Human("John")
print(john.name) --> John

Note that for compatibility with Lua and C API classes, the new operator checks for the existence of a static 'new' function. If it exists, new X(...) will be identical to X.new(...).

Class Statement

The class statement is similar to a table constructor, but it does not require commas or semicolons:

pluto
class Human
function __construct(name)
self.name = name
end
function __gc()
print(self.name .. " died of irrelevance")
end
end
local john = new Human("John")

The class statement also supports modifiers: local class NAME, export class NAME

Class Expression

There is also a class expression, which can be used e.g. when assigning to a variable:

pluto
local Human = class
function __construct(name)
self.name = name
end
end

Extends

The class statement also supports extends to specify a parent:

pluto
class Entity
age = 1
end
class Human extends Entity
end
local human = new Human()
print(human.age) --> 1

This also adds a __parent field to Human.

Parent Expression

The parent expression is a shorthand for self.__parent, which also supports method call syntax, in which case it's a shorthand for self.__parent.METHOD(self, ...).

pluto
class Entity
function __construct(name)
self.name = name
end
end
class Human extends Entity
-- If we don't define __construct, the parent-constructor would be called automatically.
-- However, if we overwrite it, we can use parent:__construct to call it manually.
function __construct(name)
parent:__construct(name)
end
end
local human = new Human("John")
print(human.name) --> John

Note that if you have a local variable (or function parameter) called "parent", the parent expression will defer to it.

Private Fields

Pluto allows you to specify if a field is 'public' or 'private'. Private fields can only be accessed by the class that defined them.

pluto
class Human
public name
private age
function __construct(name, age)
self.name = name
self.age = age
end
function getAge()
return self.age
end
end
local human = new Human("John", 42)
print(human.name) -- "John"
print(human:getAge()) -- 42
print(human.age) -- nil

Constructor Promotion

Because a common task of __construct methods is to assign the value of arguments to table fields, Pluto provides a simple syntax to reduce this boilerplate:

pluto
class Human
function __construct(public name, private age)
end
function getAge()
return self.age
end
end
local human = new Human("John", 42)
print(human.name) -- "John"
print(human:getAge()) -- 42
print(human.age) -- nil

Instanceof Operator

The instanceof operator can be used to check if a table is a class instance, including inherited classes:

pluto
class Entity end
class Human extends Entity end
local e = new Entity()
local h = new Human()
print(e instanceof Entity) -- true
print(e instanceof Human) -- false
print(h instanceof Entity) -- true (by inheritance)
print(h instanceof Human) -- true

It can also be used as a function:

pluto
class Entity end
local e = new Entity()
print(instanceof(e, Entity)) -- true

Try It Yourself

info

Note that, while the instanceof operator generates Lua-compatible bytecode, the instanceof function is a part of Pluto's standard library, and hence unavailable under Lua.

Using Compatibility Mode?

Some of the syntax discussed here may be different due to compatiblity mode:

  • new -> pluto_new
  • class -> pluto_class
  • parent -> pluto_parent

Alternatively, pluto_use new, class, parent will enable these keywords independently of environment settings.

- + \ No newline at end of file diff --git a/docs/New Features/Safe Navigation.html b/docs/New Features/Safe Navigation.html index 0eae2819..e307327b 100644 --- a/docs/New Features/Safe Navigation.html +++ b/docs/New Features/Safe Navigation.html @@ -4,13 +4,13 @@ Safe Navigation | Pluto - +

Safe Navigation

For Member Access

Accessing deeply nested fields which can potentially be nil was problematic, because you'd need an unreasonable amount of guard clauses to prevent an "attempt to index nil" error. Pluto now offers this syntax:

Basic Usage
pluto
local person = {
name = "Alice"
}
local pet_name = person.pet?.name

In this example, person.pet is nil. However, this does not throw an "attempt to index nil" error. pet_name is simply set to nil.

Practical Usage
pluto
-- Pretend userConfig is parsed from a JSON file, or something.
--- Returning the user's preferred color, or Red if they have no preferred color.
local function get_color()
return userConfig.colors?.preferred ?? "Red"
end
print(get_color())

In this example, we also use the null coalescing operator ??.

info

These cannot be used for statements, like a?.b?.c = 0. They're only valid as expressions.

Safe Navigation (for member access) was written by Sven Olsen.

For Method Calls

Similarly, if you want to have optional hook functions, you can use safe method calls instead of writing conditionals:

Lua Way
pluto
if self.onEvent then
self:onEvent(event)
end
Pluto Way
pluto
self:onEvent?(event)

You can also check if the left-hand side of : is not nil:

pluto
object?:onEvent(event) -- 'object' may be nil
object?:onEvent?(event) -- 'object' and 'object.onEvent' may be nil

Note that this feature will truncate multiple return values if they're not used as part of a fixed assignment:

pluto
function myfunc()
return 1, 2
end
local a, b, c = _G:myfunc?()
print(a, b, c) --> 1 2 nil
print(_G:myfunc?()) --> 1
- + \ No newline at end of file diff --git a/docs/New Features/String Indexing.html b/docs/New Features/String Indexing.html index 270af3cb..86800faa 100644 --- a/docs/New Features/String Indexing.html +++ b/docs/New Features/String Indexing.html @@ -4,13 +4,13 @@ String Indexing | Pluto - +

String Indexing

You can index strings for their characters now, which is cleaner & 3x faster than using string.sub. String indexing only occurs when you index with an integer, either positive or negative. Positive integers index from the start of the string, and negative integers index from the end.

Example Code
pluto
local str = "hello world"
print(str[5]) -- "o"
print(str[200]) -- nil
print(str[-1]) -- "d"

Any character-intensive task — for example, a hash algorithm — will greatly benefit from this.

caution

The bytecode of this feature is not backwards-compatible with Lua.

- + \ No newline at end of file diff --git a/docs/New Features/String Interpolation.html b/docs/New Features/String Interpolation.html index 0f6f29b4..9e51c93a 100644 --- a/docs/New Features/String Interpolation.html +++ b/docs/New Features/String Interpolation.html @@ -4,13 +4,13 @@ String Interpolation | Pluto - +

String Interpolation

String interpolation is a simple alternative syntax to concatenation.

Concatenation
pluto
local label = "meaning of life"
local data = { value = 42 }
print("The " .. label .. " is " .. data.value) --> The meaning of life is 42
String Interpolation
pluto
local label = "meaning of life"
local data = { value = 42 }
print($"The {label} is {data.value}") --> The meaning of life is 42

As you can see, you declare a string interpolated by prefixing it with the "$" symbol. Brackets can contain any expression. The result of expressions will be converted to a string as with normal concatenation, although note that Pluto supports boolean concatenation unlike Lua.

- + \ No newline at end of file diff --git a/docs/New Features/Switch Blocks.html b/docs/New Features/Switch Blocks.html index cb9abfbe..cfbb7435 100644 --- a/docs/New Features/Switch Blocks.html +++ b/docs/New Features/Switch Blocks.html @@ -4,13 +4,13 @@ Switch Blocks | Pluto - +

Switch Blocks

Switch blocks consists of the following new keywords:

  • case
  • switch
  • default

Switch Statement

pluto
local value = 1
switch value do
case 1:
print("There is only one!")
break
case 2:
print("There is only two!")
break
end
-- Break jumps here.

Switch statements also support fallthrough.

pluto
local value = 1
switch value do
case 1:
case 2:
case 3:
case 4:
case 5:
print("Got 1-5.")
break
default:
print("Value is greater than 5.")
end
-- Break jumps here.

In this example, cases 1-4 fall through to case 5.

Remember to use break whenever you do not want fallthrough. Here is an example of a potential bug:

pluto
local value = 1
switch value do
case 1:
print("There is only one!")
case 2:
print("There is only two!")
end
-- Output:
-- There is only one!
-- There is only two! <-- Uh oh.

The default case is executed if none of the other cases are true. For example:

pluto
local value = 1
switch value do
case 2:
case 3:
break
default:
print("Value is neither 2 nor 3!")
end

The default case can be placed anywhere in the block. It also supports fallthrough, so remember to use break if you place it above any cases.

Case Blocks

Any expression can be used for the case condition:

pluto
switch true do
case 42 == 42:
print("42 is 42 is true")
break
end

There is a short-hand fallthrough syntax:

pluto
switch value do
case 1, 2, 3:
print("1-3")
break
case 4, 5, 6:
print("4-6")
break
end

However, note that method calls needs to be encapsulated with parentheses:

pluto
local t = {
function getVal()
return 42
end
}
switch 42 do
case t:getVal(): -- This is interpreted as `case t: getVal():print("val is 42")`
print("val is 42")
break
case (t:getVal()): -- This works as expected
print("val is 42")
break
end

Switch Expression

Just like ternary expressions, these allow you to conditionally provide values, with massively simplified case blocks:

pluto
local place = 1
place = switch place do
case 1 -> "1st"
case 2 -> "2nd"
case 3 -> "3rd"
default -> $"{place}th"
end
print(place) --> 1st

Note that the case blocks here have their conditions delimited by an arrow (->) instead of a colon (:).

Despite not being able to manually fall through, the shorthand fallthrough syntax still works:

pluto
local function print_range(value)
print(switch value do
case 1, 2, 3 -> "1-3"
case 4, 5, 6 -> "4-6"
end)
end
print_range(1) --> 1-3
print_range(6) --> 4-6
print_range(9) --> nil

Notice how the default case was omitted in this example, so it was implicitly set to default -> nil.

Using Compatibility Mode?

You may need to use pluto_switch instead of switch. Alternatively, pluto_use switch will enable the keyword independently of environment settings.

- + \ No newline at end of file diff --git a/docs/New Features/Table Freezing.html b/docs/New Features/Table Freezing.html index d4032fe8..6e53a706 100644 --- a/docs/New Features/Table Freezing.html +++ b/docs/New Features/Table Freezing.html @@ -4,13 +4,13 @@ Table Freezing | Pluto - +

Table Freezing

Tables can now be frozen at their current state to forbid any future modification. This action is irreversible and permanent for the lifespan of the table.

pluto
-- Disallowing any edits to the global environment table.
table.freeze(_G)
_G.string = {}
-- file.pluto:4: attempt to modify frozen table.
pluto
-- Creating a constant local that's associated with a frozen table.
local Frozen <const> = table.freeze({ 1, 2, 3 })
Frozen = {}
-- file.pluto:4: attempt to reassign constant.
Frozen[1] = "new value"
-- file.pluto:7: attempt to modify frozen table.
rawset(Frozen, "key", "value")
-- file.pluto:10: attempt to modify frozen table.
pluto
--- Trying to swap the value with the debug library.
for i = 1, 249 do
local name, value = debug.getlocal(1, i)
if name == "Frozen" then
debug.setlocal(1, i, { ["key"] = "hello world" })
-- file.pluto:5: attempt to modify local variable with a frozen table.
end
end

What will this prevent?

All modifications to the table from within the Lua environment will be prevented, including those from the debug library.

caution

If you're going to use this for a sandbox, ensure you call table.freeze before any users can access the Lua environment, otherwise they can replace that function.

- + \ No newline at end of file diff --git a/docs/New Features/Ternary Expressions.html b/docs/New Features/Ternary Expressions.html index 55b9b3ea..fb2be41e 100644 --- a/docs/New Features/Ternary Expressions.html +++ b/docs/New Features/Ternary Expressions.html @@ -4,13 +4,13 @@ Ternary Expressions | Pluto - +

Ternary Expressions

Ternary expressions behave identical as to how they would in C. They introduce no new keywords.

Old Code
pluto
local max
if a > b then
max = a
else
max = b
end
New Code
pluto
local max = a > b ? a : b

Try It Yourself

If Expressions

If expressions are an alternative syntax for ternary expressions:

pluto
local a = 6
local b = 9
local max = if a > b then a else b end
print(max) --> 9

Doesn't Lua already have ternaries?

While it is true that you can do something like this:

pluto
local max = a > b and a or b

Keep in mind that this falls apart when the true-expression has a falsy value:

pluto
local x = -1
x = (x == -1 and nil or x)

In this case, x will be -1 despite the intention being to set it to nil. There are no such issues using Pluto's ternary expressions.

- + \ No newline at end of file diff --git a/docs/New Features/Try-Catch Statement.html b/docs/New Features/Try-Catch Statement.html index aa91d619..a2470e58 100644 --- a/docs/New Features/Try-Catch Statement.html +++ b/docs/New Features/Try-Catch Statement.html @@ -4,13 +4,13 @@ Try-Catch Statement | Pluto - +

Try-Catch Statement

Pluto provides a more intuitive way to handle errors than pcall and xpcall.

pluto
local function get_fruit_rating(fruit)
return switch fruit do
case "apple" -> 8
case "banana" -> 7
case "orange" -> 9
case "mango" -> 10
case "grape" -> 6
case "strawberry" -> 9
case "cucumber", "tomato" -> error("What are you, a botanist?")
end
end
local function try_get_fruit_rating(fruit)
try
return get_fruit_rating(fruit)
catch e then
if e:find("What are you, a botanist?") then
return -10
end
end
end
print(try_get_fruit_rating("apple")) --> 8
print(try_get_fruit_rating("cucumber")) --> -10
print(try_get_fruit_rating("car")) --> nil

Using Compatibility Mode?

You may need to use pluto_try and pluto_catch instead. Alternatively, pluto_use try, catch will enable both keywords independently of the environment settings.

- + \ No newline at end of file diff --git a/docs/New Features/Type Hinting.html b/docs/New Features/Type Hinting.html index 2aa2c773..fc99b1b8 100644 --- a/docs/New Features/Type Hinting.html +++ b/docs/New Features/Type Hinting.html @@ -4,13 +4,13 @@ Type Hinting | Pluto - +

Type Hinting

Type-hinting looks like this:

pluto
local var: string = "hello world"

It works with functions too:

pluto
local function myfunc(a: string, b: string): number
return tonumber(a) + tonumber(b)
end
print(myfunc(1, "1")) -- This will emit a warning for argument type mismatch.

There's no effect on performance. This is implemented entirely during the compilation phase.

What types can I use?

  • string
  • number
    • int
    • float
  • boolean/bool
  • function
  • table
  • userdata
  • void (return type only)

Prefix a ? to indicate nil-able types, e.g. ?string indicates that it may be nil or a string.

You can also use | to delimit alternatives, e.g. string|int indicates that it may be a string or an int.

Putting all of this together, we could also have e.g. ?string|int to indicate that it may be nil, a string, or an int.

info

This is a WIP feature, and it's very difficult to implement in a one-pass compiler. Allow tolerance for missing coverage, and report any bugs.

- + \ No newline at end of file diff --git a/docs/New Operators.html b/docs/New Operators.html index 4e15f63e..ee570d5c 100644 --- a/docs/New Operators.html +++ b/docs/New Operators.html @@ -4,13 +4,13 @@ New Operators | Pluto - +

New Operators

Operator Aliases

These operators function the same, but they're more consistent with what's been standardized through programming today.

  • ! is an alias for not, the boolean inversion operator.
  • != is an alias for ~=, the inequality operator.

Compound Operators

A plethora of compound operators are available in Pluto:

  • Addition: +=
  • Subtraction: -=
  • Multiplication: *=
  • Float division: /=
  • Integer division: //=
  • Modulo: %=
  • Exponent: ^=
  • Bitwise AND: &=
  • Bitwise OR: |=
  • Bitwise XOR: ~=
    • In Lua, the inequality operator cannot be used in statements. It must be used in expressions. Because compound operators can only be used in statements (and cannot be used in expressions), this is not a compatibility break.
  • Bitshift left: <<=
  • Bitshift right: >>=
  • Concatenation: ..=
  • Nil-Coalescing: ??=
pluto
local a = 1
a = a + 1
a += 1
info

Compound operators are syntactic sugar. They'll call the same metamethods as their non-compound counterparts.

Comparison Chaining

The <, <=, >, and >= operators can now be chained successively.

pluto
if 1 < 2 < 3 then
print("Hello, world!")
end
-- Pluto generates code which effectively evaluates to this:
if 1 < 2 and 2 < 3 then
print("Hello, world!")
end

Coalescing Operator

The nil-coalescing operator is helpful for evaluating values against nil.

If the left-hand operand is nil, it returns the right-hand operand. Otherwise, it returns the left-hand operand.

pluto
local function say(message)
print(message ?? "The message was nil.")
end
say() --> The message was nil.
say(nil) --> The message was nil.
say("Hello, world!") --> Hello, world!

It's a cleaner version of this code:

pluto
local function say(message)
if message == nil then
message = "The message was nil."
end
print(message)
end
say() --> The message was nil.
say(nil) --> The message was nil.
say("Hello, world!") --> Hello, world!

You can even use compound assignment:

pluto
local function say(message)
message ??= "The message was nil."
print(message)
end
say() --> The message was nil.
say(nil) --> The message was nil.
say("Hello, world!") --> Hello, world!
info

This operator does not implement any metamethods.

Walrus Operator

The Walrus operator allows you to perform assignments inside of conditional expresssions.

pluto
if a := get_value() then
-- 'a' was assigned a truthy value.
else
-- 'a' was assigned a falsy value.
end

You can imagine it like this, but note they're not always the same:

pluto
do
local a = get_value()
if a then
-- 'a' was assigned a truthy value.
else
-- 'a' was assigned a falsy value.
end
end

Note that for while-loops, it will be executed as many times as the condition:

Pluto Way
pluto
while a := next_value() do
-- ...
end
Lua Way
pluto
while true do
local a = next_value()
if not a then break end
-- ...
end

Spaceship Operator

The spaceship operator, also known as the three-way comparison operator, allows you to quickly compare 2 values for equality and order.

pluto
local eq = 1 <=> 1
local lt = 3 <=> 42
local gt = 9 <=> 5
print(eq, lt, gt) --> 0, -1, 1

It works with any type that supports __eq and __lt, making it well-suited for usage in generic algorithms like sorting. The return values are designed such that you can compare them to 0, e.g. with the values from above:

pluto
print(eq <= 0) --> true
print(lt <= 0) --> true
print(gt <= 0) --> false

Pipe Operator

The pipe operator allows you represent data pipelines more succinctly.

pluto
local { http, json } = require "pluto:*"
http.request("https://httpbin.org/get")
|> json.decode
|> dumpvar
|> print
--> {
--> ["args"] = {},
--> ["headers"] = {
--> ["Host"] = string(11) "httpbin.org",
--> ["User-Agent"] = string(56) "Mozilla/5.0 (compatible; Soup Library; +https://soup.do)",
--> ["X-Amzn-Trace-Id"] = string(40) "Root=1-65e05b66-6aa8b7c94e7580774a804c24",
--> ["Accept-Encoding"] = string(13) "deflate, gzip",
--> },
--> ["origin"] = string(13) "1.2.3.4",
--> ["url"] = string(23) "https://httpbin.org/get",
--> }

The HTTP-to-print pipeline here would otherwise be written like this:

pluto
print(dumpvar(json.decode((http.request("https://httpbin.org/get")))))

Note that the pipe operator only passes on the first return value, which is classically achieved by wrapping the expression in an extra pair of parentheses.

Additional Arguments

It is also possible to provide additional arguments for the righthand side of the pipe operator:

pluto
local producer = || -> "10"
producer()
|> tonumber|16|
|> print --> 16

Methods Calls

There is specialized syntax for method calls with the pipe operator, too:

pluto
local producer = || -> 21
local obj = {
function multiply(value)
return value * self.factor
end
}
obj.factor = 2
producer()
|> obj:multiply
|> print --> 42

Anonymous Functions

The righthand side of the pipe operator can also be an anonymous function, allowing for more advanced usage like this:

pluto
local producer = || -> 42
producer()
|> |res| -> print($"The result was {res}")
--> The result was 42
- + \ No newline at end of file diff --git a/docs/Optimizations/For Loops.html b/docs/Optimizations/For Loops.html index 4d90a747..360170d4 100644 --- a/docs/Optimizations/For Loops.html +++ b/docs/Optimizations/For Loops.html @@ -4,13 +4,13 @@ For Loops | Pluto - +

For Loops

The pairs and ipairs functions are optimized in Pluto. On a consistent basis, pairs & ipairs loops are 3.5x faster than their Lua counterparts.

How does it work?

It doesn't operate under all circumstances though, the state of the iterator is stored in the to-be-closed variable returned by these functions, which is the last variable they give. If you interact or modify this variable, then the optimization won't occur.

pairs: next, table, nil, nil
ipairs: ipairsaux, table, integer, nil

As long as you don't access the last nil value, you're fine.

info

This optimization was published and implemented entirely by Xmelia Hermit.

- + \ No newline at end of file diff --git a/docs/Optimizations/Jump Table.html b/docs/Optimizations/Jump Table.html index 2657fcf7..efa64090 100644 --- a/docs/Optimizations/Jump Table.html +++ b/docs/Optimizations/Jump Table.html @@ -4,13 +4,13 @@ Jump Table | Pluto - +

Jump Table

Lua implemented a jump table, but it is only compatible with clang and gcc. Pluto has an additional jump table implementation for other compilers; however, it is not enabled by default because it can add minutes to compile time, depending on the setup. However, it may be beneficial to you regardless, as a jump table can increase virtual machine performance by up to 5%.

If you would like to try it, define PLUTO_FORCE_JUMPTABLE in luaconf.h or your build config.

- + \ No newline at end of file diff --git a/docs/Optimizations/Special Arithmetic.html b/docs/Optimizations/Special Arithmetic.html index a329d81b..ce343fcb 100644 --- a/docs/Optimizations/Special Arithmetic.html +++ b/docs/Optimizations/Special Arithmetic.html @@ -4,13 +4,13 @@ Special Arithmetic | Pluto - +

Special Arithmetic

Special arithmetic algorithms are optimized by Pluto during compile-time.

For example:

  • x << 1 => x + x
  • x ** 2 => x * x
  • x // 2 => x >> 1

These can offer upwards of a 20% performance boost.

These expressions are only optimized when both operands are integers, and no metamethod will be called.

- + \ No newline at end of file diff --git a/docs/Optimizations/Table Length.html b/docs/Optimizations/Table Length.html index 4f2d3677..379f5b9b 100644 --- a/docs/Optimizations/Table Length.html +++ b/docs/Optimizations/Table Length.html @@ -4,13 +4,13 @@ Table Length | Pluto - +

Table Length

Pluto will cache the length of a table when you request it for the first time. This cache is refreshed whenever you make an edit to the table. It's still advisable to localize this value though, since looking through the cache and the virtual machine is expensive compared to looking up a local.

- + \ No newline at end of file diff --git a/docs/QoL Improvements/Boolean Concatenation.html b/docs/QoL Improvements/Boolean Concatenation.html index 3f1f672c..4598e495 100644 --- a/docs/QoL Improvements/Boolean Concatenation.html +++ b/docs/QoL Improvements/Boolean Concatenation.html @@ -4,13 +4,13 @@ Boolean Concatenation | Pluto - +

Boolean Concatenation

Pluto allows you to concatenate boolean values just like you would number values:

pluto
local iVar = 13
local bVar = true
print("iVar = " .. iVar)
print("bVar = " .. tostring(bVar)) -- Lua way
print("bVar = " .. bVar) -- Pluto way
- + \ No newline at end of file diff --git a/docs/QoL Improvements/Generalized Iteration.html b/docs/QoL Improvements/Generalized Iteration.html index 2a76a1b6..85e02e97 100644 --- a/docs/QoL Improvements/Generalized Iteration.html +++ b/docs/QoL Improvements/Generalized Iteration.html @@ -4,13 +4,13 @@ Generalized Iteration | Pluto - +

Generalized Iteration

Pluto's virtual machine allows you to simply iterate over tables without having to explicitly call a function:

New Code
pluto
local t = { 1, 2, 3, "hello", "world" }
for key, value in t do
print(key, value)
end

When you omit the function from the loop preparation, next is implicitly inserted. So, that code is identical to this:

Old Code
pluto
local t = { 1, 2, 3, "hello", "world" }
for key, value in next(t) do
print(key, value)
end

This is compatible with for-loop optimizations.

caution

The bytecode of this feature is not backwards-compatible with Lua.

- + \ No newline at end of file diff --git a/docs/QoL Improvements/Optional Parentheses.html b/docs/QoL Improvements/Optional Parentheses.html index 68a97b03..c1a26ed9 100644 --- a/docs/QoL Improvements/Optional Parentheses.html +++ b/docs/QoL Improvements/Optional Parentheses.html @@ -4,13 +4,13 @@ Optional Parentheses | Pluto - +

Optional Parentheses

The parenthesis around some types of expressions are optional now.

Gross Way
pluto
print(("hello world"):contains("world"))
Clean Way
pluto
print("hello world":contains("world"))

This also works for table types.

- + \ No newline at end of file diff --git a/docs/QoL Improvements/Removed Locals Limit.html b/docs/QoL Improvements/Removed Locals Limit.html index 0f13477b..196d181e 100644 --- a/docs/QoL Improvements/Removed Locals Limit.html +++ b/docs/QoL Improvements/Removed Locals Limit.html @@ -4,13 +4,13 @@ Removed Locals Limit | Pluto - +

Removed Locals Limit

Pluto removes the locals limit, allowing you to use compile-time constants, including enums, as much as you want.

Note that you are still limited to 255 registers, so you can't have infinite dynamic variables per function.

- + \ No newline at end of file diff --git a/docs/QoL Improvements/Reserved Identifiers.html b/docs/QoL Improvements/Reserved Identifiers.html index 3da20350..a5c5d9ce 100644 --- a/docs/QoL Improvements/Reserved Identifiers.html +++ b/docs/QoL Improvements/Reserved Identifiers.html @@ -4,13 +4,13 @@ Reserved Identifiers | Pluto - +

Reserved Identifiers

Pluto allows you to use reserved tokens such as if from Lua and class from Pluto as identifiers with shorthand table syntax and for goto labels.

Reserved tokens as identifiers with shorthand table syntax
pluto
local t = {
class = "key"
}
print(t.class)
Reserved tokens as identifiers for goto labels
pluto
-- Print every number besides five.
for i = 1, 10 do
if i == 5 then
goto continue
end
print(i)
::continue::
end

However, variable names and function calls will not allow you to use reserved tokens as identifiers.

- + \ No newline at end of file diff --git a/docs/QoL Improvements/Syntax Errors.html b/docs/QoL Improvements/Syntax Errors.html index e80c7bcf..80a8cc62 100644 --- a/docs/QoL Improvements/Syntax Errors.html +++ b/docs/QoL Improvements/Syntax Errors.html @@ -4,7 +4,7 @@ Syntax Errors | Pluto - + @@ -14,7 +14,7 @@ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ here: expected 'then' symbol.

Example 2

Problematic Code
pluto
local fn = |a, b, c| => (a == b and a < c)
Emitted Syntax Error
syntax error: file.pluto:1: impromper lambda definition 1 | local fn = |a, b, c| => (a == b and a < c) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ here: expected '->' arrow syntax for lambda expression.

ANSI Coloring

These errors support coloring, but it's disabled by default. Define the PLUTO_USE_COLORED_OUTPUT macro in luaconf.h or your build config to enable colored error messages.

tip

For Windows users, you can enable ANSI coloring support with the following command:

  • REG ADD HKCU\CONSOLE /f /v VirtualTerminalLevel /t REG_DWORD /d 1
- + \ No newline at end of file diff --git a/docs/QoL Improvements/Universal Block Opener.html b/docs/QoL Improvements/Universal Block Opener.html index 1009f35c..66ef5b10 100644 --- a/docs/QoL Improvements/Universal Block Opener.html +++ b/docs/QoL Improvements/Universal Block Opener.html @@ -4,13 +4,13 @@ Universal Block Opener | Pluto - +

Universal Block Opener

Pluto allows do to be used as a universal block opener, meaning it can be used instead of then and begin.

If Statement Example
pluto
local x = 3
if x == 3 do
print("x is 3!")
end
Class Statement Example
pluto
class Human do
function __construct(public name) end
function greet() print($"Hello, {self.name}!") end
end
new Human("John"):greet()
Enum Statement Example
pluto
enum Suit do
HEARTS,
DIAMONDS,
CLUBS,
SPADES
end
assert(HEARTS == 1)
- + \ No newline at end of file diff --git a/docs/Runtime Environment/Assert.html b/docs/Runtime Environment/Assert.html index 9b06a4ac..83413a5e 100644 --- a/docs/Runtime Environment/Assert.html +++ b/docs/Runtime Environment/Assert.html @@ -4,14 +4,14 @@ Assert | Pluto - +

Assert

Must be included via require.


assert.isnil

Asserts that value is nil

Parameters

  1. value — The value which should be nil.

Errors

An assertion error is thrown if the value is not nil.

pluto
local assert = require("assert")
assert.isnil(nil) -- Passes.
assert.isnil(5) -- Error:
--[[
test.pluto:4 -> Assertion Error: (assert.isnil)
Intended Value: nil
Received Value: 5
stack traceback:
[C]: in function 'error'
[string "pluto:assert"]:75: in function <[string "pluto:assert"]:46>
(...tail calls...)
[C]: in ?
--]]

assert.istrue

Asserts that value is true.

Parameters

  1. value — The value which should be true.

Errors

An assertion error is thrown if value is not true

pluto
local assert = require("assert")
assert.istrue(true) -- Passes.
assert.istrue(false) -- Error:
--[[
pluto: test.pluto:4 -> Assertion Error: (assert.istrue)
Intended Value: true
Received Value: false
stack traceback:
[C]: in function 'error'
[string "pluto:assert"]:75: in function <[string "pluto:assert"]:46>
(...tail calls...)
test.pluto:4: in main chunk
[C]: in ?
--]]

assert.isfalse

Asserts that value is false.

Parameters

  1. value — The value which should be false.

Errors

An assertion error is thrown if value is not false.

pluto
local assert = require("assert")
assert.isfalse(false) -- Passes.
assert.isfalse(true) -- Error:
--[[
pluto: test.pluto:4 -> Assertion Error: (assert.isfalse)
Intended Value: false
Received Value: true
stack traceback:
[C]: in function 'error'
[string "pluto:assert"]:75: in function <[string "pluto:assert"]:46>
(...tail calls...)
test.pluto:4: in main chunk
[C]: in ?
--]]

assert.falsy

Asserts that value is a "falsy" value. Falsy means the value is nil or false.

Parameters

  1. value — The value which should be falsy.

Errors

An assertion error is thrown if value is not falsy.

pluto
local assert = require("assert")
assert.falsy(nil) -- Passes.
assert.falsy(false) -- Passes.
assert.falsy("Hello, world!") -- Error:
--[[
pluto: test.pluto:4 -> Assertion Error: (assert.falsy)
Intended Value: nil or false
Received Value: string(13) "Hello, world!"
stack traceback:
[C]: in function 'error'
[string "pluto:assert"]:75: in function <[string "pluto:assert"]:46>
(...tail calls...)
test.pluto:4: in main chunk
[C]: in ?
--]]

assert.truthy

Asserts that value is a "truthy" value. This is the inverse of "falsy", a.k.a, any value that isn't nil or false is truthy.

Parameters

  1. value — The value which should be truthy, a.k.a it should not be nil or false.

Errors

An assertion error is thrown if value is not truthy, i.e if value is nil or false.

pluto
local assert = require("assert")
assert.truthy("Hello, world!") -- Passes.
assert.truthy(nil) -- Error:
--[[
pluto: test.pluto:4 -> Assertion Error: (assert.truthy)
Intended Value: not nil or false
Received Value: nil
stack traceback:
[C]: in function 'error'
[string "pluto:assert"]:75: in function <[string "pluto:assert"]:46>
(...tail calls...)
test.pluto:4: in main chunk
[C]: in ?
--]]

assert.notnil

Asserts that value is not nil.

Parameters

  1. value — The value which should not be nil.

Errors

An assertion error is thrown if value is nil.

pluto
local assert = require("assert")
assert.notnil("Hello, world!") -- Passes.
assert.notnil(nil) -- Error:
--[[
pluto: test.pluto:4 -> Assertion Error: (assert.notnil)
Intended Value: not nil
Received Value: nil
stack traceback:
[C]: in function 'error'
[string "pluto:assert"]:75: in function <[string "pluto:assert"]:46>
(...tail calls...)
test.pluto:4: in main chunk
[C]: in ?
--]]

assert.equal

Asserts that value1 is equal to value2.

This function can compare tables, looking at both the table's reference and what's inside it. If the tables aren't exactly the same (meaning they don't reference the same table), the function will go through the contents of the tables and compare them step by step.

Parameters

  1. value1 — The first value.
  2. value2 — The second value.

Errors

An assertion error is thrown if value1 does not equal value2.

pluto
local assert = require("assert")
assert.equal("Hello, world!", "Hello, world...") -- Error:
--[[
pluto: test.pluto:3 -> Assertion Error: (assert.equal)
Intended Value: string(13) "Hello, world!"
Received Value: string(15) "Hello, world..."
--]]
assert.equal("Hi there.":split(" "), "Hello there.":split(" ")) -- Error:
--[[
pluto: test.pluto:4 -> Assertion Error: (assert.equal)
Intended Value: { [1] = string(2) "Hi", [2] = string(6) "there.", }
Received Value: { [1] = string(5) "Hello", [2] = string(6) "there.", }
--]]

assert.nequal

Asserts that value1 is not equal to value2.

This function can compare tables, looking at both the table's reference and what's inside it. If the tables aren't exactly the same (meaning they don't reference the same table), the function will go through the contents of the tables and compare them step by step.

Parameters

  1. value1 — The first value.
  2. value2 — The second value.

Errors

An assertion error is thrown of value1 does equal value2.

pluto
local assert = require("assert")
assert.nequal("Hello, world!", "Hi, world!") -- Passes.
assert.nequal("Hi there.":split(" "), "Hello there.":split(" ")) -- Passes.

assert.less

Asserts that value1 is less than value2.

Parameters

  1. value1 — The first number.
  2. value2 — The second number.

Errors

An assertion error is thrown if value1 is not less than value2.

pluto
local assert = require("assert")
assert.less(1, 2) -- Passes.
assert.less(1, 1) -- Error:
--[[
pluto: test.pluto:4 -> Assertion Error: (assert.less)
Expression: (1 < 1) == false
--]]

assert.lesseq

Asserts that value1 is less than or equal to value2.

Parameters

  1. value1 — The first number.
  2. value2 — The second number.

Errors

An assertion error is thrown if value1 is not less than or equal to value2.

pluto
local assert = require("assert")
assert.lesseq(1, 2) -- Passes.
assert.lesseq(1, 0) -- Error:
--[[
pluto: test.pluto:3 -> Assertion Error: (assert.lesseq)
Expression: (1 <= 0) == false
--]]

assert.greater

Asserts that value1 is greater than value2.

Parameters

  1. value1 — The first number.
  2. value2 — The second number.

Errors

An assertion errros is thrown if value1 is not greater than value2.

pluto
local assert = require("assert")
assert.greater(3, 2) -- Passes.
assert.greater(3, 3) -- Error:
--[[
pluto: test.pluto:4 -> Assertion Error: (assert.greater)
Expression: (3 > 3) == false
--]]

assert.greatereq

Asserts that value1 is greater than or equal to value2.

Parameters

  1. value1 — The first number.
  2. value2 — The second number.

Errors

An assertion errros is thrown if value1 is not greater than or equal to value2.

pluto
local assert = require("assert")
assert.greatereq(3, 2) -- Passes.
assert.greatereq(3, 3) -- Passes.

assert.noerror

Asserts that callback does not raise an error when called.

Parameters

  1. callback — A function reference.
  2. ... — Any other parameters passed to this function will be passed to the callback.

Errors

An assertion error is thrown if callback raises an error.

pluto
local assert = require("assert")
assert.noerror(tostring, 400) -- Passes.
assert.noerror(error, "argument argument") -- Error:
--[[
pluto: test.pluto:4 -> Assertion Error: (assert.noerror)
An error was raised: argument argument
--]]

assert.haserror

Asserts that callback does raise an error when called.

Parameters

  1. callback — A function reference.
  2. ... — Any other parameters passed to this function will be passed to the callback.

Errors

An assertion error is thrown if callback does not raise an error.

pluto
local assert = require("assert")
assert.haserror(error, "argument argument") -- Passes.
assert.haserror(tostring, 400) -- Error:
--[[
pluto: test.pluto:4 -> Assertion Error: (assert.haserror)
Expected an error, but there was none.
--]]

assert.searcherror

Asserts that callback raises an error, and that substring is present within the error message.

Parameters

  1. substring — The substring that should be inside of the error message.
  2. callback — A function reference.
  3. ... — Any other parameters passed to this function will be passed to the callback.

Errors

An assertion error is thrown if:

  1. callback does not raise an error.
  2. callback does raise an error, but the error message does not contain substring.
pluto
local assert = require("assert")
assert.searcherror("argument", error, "argument argument") -- Passes.
assert.searcherror("something", tostring, 400) -- Error:
--[[
pluto: test.pluto:4 -> Assertion Error: (assert.searcherror)
Expected an error, but there was none.
--]]
assert.searcherror("argument", error, "argument argument") -- Passes.
assert.searcherror("argument", error, "something something") -- Error:
--[[
pluto: test.pluto:4 -> Assertion Error: (assert.searcherror)
Absent String: argument
Error Message: something s
--]]

assert.contains

Asserts that element is contained inside of container by using Pluto's modified in operator. It's important to understand the type constraints of in to understand the type constraints here.

Parameters

  1. element — The element to search for. If container is a string, element must be a string. If container is a table, element can be any type.
  2. container — The container that element should be inside of. The container should be a string or table.

Errors

An assertion error is thrown if:

  1. element is not contained inside of container.
  2. element or container are of the wrong type and cannot be used with Pluto's modified in operator.
pluto
assert.contains("hello", { "hello", "world" }) -- Passes.
assert.contains("world", { "hello", "hello" }) -- Fails.
- + \ No newline at end of file diff --git a/docs/Runtime Environment/Base32.html b/docs/Runtime Environment/Base32.html index a76ef500..f04ad73d 100644 --- a/docs/Runtime Environment/Base32.html +++ b/docs/Runtime Environment/Base32.html @@ -4,13 +4,13 @@ Base32 | Pluto - +

Base32

Must be included via require.


base32.encode

Returns an encoded base32 string.

Parameters

  1. data — A string of data to encode.
  2. pad — Whether or not to apply padding. Defaults to true.

base32.decode

Returns a decoded base32 string.

Parameters

  1. data — A string of base32 data to decode.
- + \ No newline at end of file diff --git a/docs/Runtime Environment/Base64.html b/docs/Runtime Environment/Base64.html index 0890fd73..62745a39 100644 --- a/docs/Runtime Environment/Base64.html +++ b/docs/Runtime Environment/Base64.html @@ -4,13 +4,13 @@ Base64 | Pluto - +

Base64

Must be included via require.


base64.encode

Returns a base64-encoded string.

Parameters

  1. data — A string of data to encode.
  2. pad — Whether or not to apply padding. Defaults to true.
pluto
local base64 = require("base64")
print(base64.encode("Hello, World!")) --> SGVsbG8sIFdvcmxkIQ==

base64.decode

Returns a decoded base64 string.

Parameters

  1. data — A string of base64 data.
pluto
local base64 = require("base64")
print(base64.decode("SGVsbG8sIFdvcmxkIQ==")) --> Hello, world!

base64.urlencode

Returns a base64url-encoded string. This variant is sometimes refered to as filename safe base64.

Parameters

  1. data — A string of data to encode.
  2. pad — Whether or not to apply padding. Defaults to false.
pluto
local base64 = require("base64")
print(base64.urlencode("Hello, World!")) --> SGVsbG8sIFdvcmxkIQ

base64.urldecode

Similar to base64.decode except for base64url.

Parameters

  1. data — A string of base64 data.
pluto
local base64 = require("base64")
print(base64.urldecode("SGVsbG8sIFdvcmxkIQ")) --> Hello, world!
- + \ No newline at end of file diff --git a/docs/Runtime Environment/Bigint.html b/docs/Runtime Environment/Bigint.html index 34052953..437a7517 100644 --- a/docs/Runtime Environment/Bigint.html +++ b/docs/Runtime Environment/Bigint.html @@ -4,13 +4,13 @@ Bigint | Pluto - +

Bigint

Must be included via require.


bigint.new

To instantiate a bigint, you can call the bigint.new function, or use the new operator.

Parameters

  1. The decimal value of the bigint.
pluto
local bigint = require "pluto:bigint"
print(new bigint("123")) --> 123

bigint.tostring, __tostring

As seen above, the __tostring metamethod provides a string representation of the Bigint in decimal.

bigint.hex

Provides a hexadecimal representation of the Bigint.

pluto
local bigint = require "pluto:bigint"
print(new bigint("420"):hex()) --> 1A4

bigint.binary

Provides a binary representation of the Bigint.

pluto
local bigint = require "pluto:bigint"
print(new bigint("420"):binary()) --> 110100100

bigint.add, __add

Adds two bigints together. Returns a new bigint.

bigint.sub, __sub

Performs subtraction on two bigints. Returns a new bigint.

bigint.mul, __mul

Performs multiplication on two bigints. Returns a new bigint.

bigint.div

Performs division on two bigints. Returns two new bigints: quotient and remainder.

pluto
local bigint = require "pluto:bigint"
print(new bigint(10):div(new bigint(3))) --> 3 1

__div

Performs division on two bigints. Returns a new bigint with the quotient.

pluto
local bigint = require "pluto:bigint"
print(new bigint(10) / new bigint(3)) --> 3

bigint.mod, __mod

Performs divison on two bigints. Returns a new bigint with the remainder.

pluto
local bigint = require "pluto:bigint"
print(new bigint(10) % new bigint(3)) --> 1

bigint.pow, __pow

Performs expontentiation on two bigints. Returns a new bigint.

pluto
local bigint = require "pluto:bigint"
print(new bigint(2) ^ new bigint(10)) --> 1024

bigint.bitlength

Returns the position of the most significant set bit as a plain integer.

pluto
local bigint = require "pluto:bigint"
print(new bigint(420):bitlength()) --> 9
- + \ No newline at end of file diff --git a/docs/Runtime Environment/CaT.html b/docs/Runtime Environment/CaT.html index 9a4ef00e..545fca61 100644 --- a/docs/Runtime Environment/CaT.html +++ b/docs/Runtime Environment/CaT.html @@ -4,13 +4,13 @@ CaT | Pluto - +

CaT

The CaT module is available via require "pluto:cat" and provides encoding and decoding for the Colons and Tabs format.


cat.encode

Returns a string of CaT.

Parameters

  1. data — The table to encode in CaT.
pluto
local cat = require "pluto:cat"
cat.encode {
List = {
__value = "With Value",
Child = "Also With Value"
}
} |> io.write
--> List: With Value
--> Child: Also With Value

cat.decode

Returns a table representing the CaT data.

Parameters

  1. data — The CaT data to decode.
  2. presentation — How to represent the data as a table. Can be "flat", "flatwithorder", or "full" (default).
pluto
local cat = require "pluto:cat"
local data = cat.decode [[
List: With Value
Child: Also With Value
]]
print(dumpvar(data))
--> {
--> [1] = {
--> ["value"] = string(10) "With Value",
--> ["name"] = string(4) "List",
--> ["children"] = {
--> [1] = {
--> ["name"] = string(5) "Child",
--> ["value"] = string(15) "Also With Value",
--> },
--> },
--> },
--> }

With the default "full" representation, the retuned table has an __index metamethod for ease of use:

pluto
print(data.List.value) --> With Value
print(data.List.Child.value) --> Also With Value

Alternatively, the other representations are available:

pluto
local cat = require "pluto:cat"
print(dumpvar(cat.decode([[
home
john
hello.txt: Hello, world!
]], "flat")))
--> {
--> ["home"] = {
--> ["john"] = {
--> ["hello.txt"] = string(13) "Hello, world!",
--> },
--> },
--> }
pluto
local cat = require "pluto:cat"
print(dumpvar(cat.decode([[
Primary Color: Purple
Secondary Color: White
]], "flatwithorder")))
--> {
--> ["__order"] = {
--> [1] = string(13) "Primary Color",
--> [2] = string(15) "Secondary Color",
--> },
--> ["Primary Color"] = string(6) "Purple",
--> ["Secondary Color"] = string(5) "White",
--> }
- + \ No newline at end of file diff --git a/docs/Runtime Environment/Canvas.html b/docs/Runtime Environment/Canvas.html index 40cdb143..a7ae41fb 100644 --- a/docs/Runtime Environment/Canvas.html +++ b/docs/Runtime Environment/Canvas.html @@ -4,13 +4,13 @@ Canvas | Pluto - +

Canvas

Must be included via require.


canvas.new

Creates a new canvas instance.

Parameters

  1. Width.
  2. Height.

canvas.bmp

Creates a new canvas instance based on a BMP image.

Parameters

  1. The BMP image as a string.

canvas.qrcode

Creates a new canvas instance containing a QR code.

Parameters

  1. The string to be encoded.
  2. An optional table of options.

Options

  • "ecl" specifies the error correction level between "low", "medium", "quartile", "high". defaults to "low".
  • "border" specifies the number of pixels around the QR code. defaults to 0.
  • "bg" specifies the background color. defaults to 0x000000 for black.
  • "fg" specifies the background color. defaults to 0xffffff for white.
pluto
local canvas = require "canvas"
local c = canvas.qrcode("Hello from Pluto!", { fg = 0xffffff, bg = 0x000000 })
print(c:tobwstring(0xffffff))
--> █▀▀▀▀▀█ ▄ █▄▄ █▀▀▀▀▀█
--> █ ███ █ ▄█▄▄█ █ ███ █
--> █ ▀▀▀ █ ▄▀ █▄ █ ▀▀▀ █
--> ▀▀▀▀▀▀▀ ▀▄▀▄█ ▀▀▀▀▀▀▀
--> ▀▀███ ▀███ █▀▀ ▀▄█▄▀▄
--> █▄▀▄▀█▀█▀▀ ▀█▄▀▄▄██▀
--> ▀▀▀▀▀ ▀ █▀█▀ ▄█▄▄▄ ▀
--> █▀▀▀▀▀█ ▀ ▀██▀▄ ▄██
--> █ ███ █ █▄ ▄█▄██▄▄ ▄
--> █ ▀▀▀ █ █▄ ▀█▀ ▀▄▄█
--> ▀▀▀▀▀▀▀ ▀ ▀ ▀ ▀ ▀

canvas.get

Gets the color of the pixel at the given coordinates.

Parameters

  1. The canvas instance.
  2. The X coordinate.
  3. The Y coordinate.

Returns

The color as an integer.


canvas.set

Sets the color of the pixel at the given coordinates.

Parameters

  1. The canvas instance.
  2. The X coordinate.
  3. The Y coordinate.
  4. The color as an integer.

canvas.fill

Sets every pixel to the given color.

Parameters

  1. The canvas instance.
  2. The color as an integer.

canvas.size

Get the size of a canvas.

Parameters

  1. The canvas instance.

Returns

  1. Width.
  2. Height.

canvas.mulsize

Multiplies the size of a canvas.

Parameters

  1. The canvas instance.
  2. The multiplier. Must be 2 or higher.

canvas.tobmp

Convert a canvas to a BMP image.

Parameters

  1. The canvas instance.

Returns

A string.


canvas.topng

Convert a canvas to a PNG image.

Parameters

  1. The canvas instance.

Returns

A string.

pluto
local { base64, canvas } = require "*"
local c = new canvas(5, 5)
c:fill(0xff0000)
print("data:image/png;base64,"..base64.encode(c:topng()))
--> data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAIAAAACDbGyAAAAW0lEQVQIHQFQAK//AP8AAP8AAP8AAP8AAP8AAAD/AAD/AAD/AAD/AAD/AAAA/wAA/wAA/wAA/wAA/wAAAP8AAP8AAP8AAP8AAP8AAAD/AAD/AAD/AAD/AAD/AAD9fBjo3iScjwAAAABJRU5ErkJggg==

canvas.tobwstring

Convert a canvas to a black and white unicode string.

Parameters

  1. The canvas instance.
  2. The color to be "white." Any other color will be "black."

Returns

A string.

- + \ No newline at end of file diff --git a/docs/Runtime Environment/Coroutine.html b/docs/Runtime Environment/Coroutine.html index 8e39f3cb..c165d674 100644 --- a/docs/Runtime Environment/Coroutine.html +++ b/docs/Runtime Environment/Coroutine.html @@ -4,13 +4,13 @@ Coroutine | Pluto - +

Coroutine

This page documents the changes & additions to the coroutine library in Pluto, which is built on top of Lua 5.4's.


coroutine.xresume

An alternative to coroutine.resume that rethrows any errors thrown by the coroutine.


coroutine.sleep

Yields the current coroutine for the given number of milliseconds.

Parameters

  1. The number of milliseconds to yield for.
- + \ No newline at end of file diff --git a/docs/Runtime Environment/Crypto.html b/docs/Runtime Environment/Crypto.html index f22584d8..2507c34c 100644 --- a/docs/Runtime Environment/Crypto.html +++ b/docs/Runtime Environment/Crypto.html @@ -4,13 +4,13 @@ Crypto | Pluto - +

Crypto

Must be included via require.


Non-Cryptographic Hashing Algorithms

crypto.lua

Hash a string using Lua's version of the DJB2 non-cryptographic hashing algorithm.

Parameters

  1. The string to hash.
pluto
local crypto = require("crypto")
local str = "hello world"
assert(crypto.lua(str) == 2871868277)

crypto.md5

Hash a string using the MD5 semi-cryptographic hashing algorithm.

Parameters

  1. The string to hash.
pluto
local crypto = require("crypto")
local str = "hello world"
assert(crypto.md5(str) == "5eb63bbbe01eeed093cb22bb8f5acdc3")

crypto.djb2

Hash a string using the DJB2 non-cryptographic hashing algorithm.

Parameters

  1. The string to hash.

Returns

An integer between 0 and 0xffffffff, inclusive.

pluto
local crypto = require("crypto")
local str = "hello world"
assert(crypto.djb2(str) == 894552257)

crypto.fnv1

Hash a string using the FNV1 non-cryptographic hashing algorithm.

Parameters

  1. The string to hash.
pluto
local crypto = require("crypto")
local str = "hello world"
assert(crypto.fnv1(str) == 9065573210506989167)

crypto.fnv1a

Hash a string using the FNV1A non-cryptographic hashing algorithm.

Parameters

  1. The string to hash.
pluto
local crypto = require("crypto")
local str = "hello world"
assert(crypto.fnv1a(str) == 8618312879776256743)

crypto.joaat

Hash a string using the JOAAT non-cryptographic hashing algorithm.

Parameters

  1. The string to hash.

Returns

An integer between 0 and 0xffffffff, inclusive.

pluto
local crypto = require("crypto")
local str = "hello world"
assert(crypto.joaat(str) == 1045060183)

crypto.sdbm

Hash a string using the SDBM non-cryptographic hashing algorithm.

Parameters

  1. The string to hash.

Returns

An integer between 0 and 0xffffffff, inclusive.

pluto
local crypto = require("crypto")
local str = "hello world"
assert(crypto.sdbm(str) == 430867652)

crypto.crc32

Hash a string using the CRC32 non-cryptographic hashing algorithm.

Parameters

  1. The string to hash.
  2. The initial value for the hash. By default, this is zero.

Returns

An integer between 0 and 0xffffffff, inclusive.

pluto
local crypto = require("crypto")
local str = "hello world"
assert(crypto.crc32(str) == 222957957)

crypto.adler32

Hash a string using the Adler-32 non-cryptographic hashing algorithm.

Parameters

  1. The string to hash.
  2. The initial value for the hash. By default, this is zero.
pluto
local crypto = require("crypto")
local str = "hello"
assert(crypto.adler32(str) == 103547413)

crypto.lookup3

Hash a string using the Lookup3 non-cryptographic hashing algorithm.

Parameters

  1. The string to hash.
pluto
local crypto = require("crypto")
local str = "hello world"
assert(crypto.lookup3(str) == 1252609637)

crypto.times33

Hash a string using the Times33 non-cryptographic hashing algorithm.

Parameters

  1. The string to hash.

Returns

An integer between 0 and 0xffffffff, inclusive.

pluto
local crypto = require("crypto")
local str = "hello world"
assert(crypto.times33(str) == 3889643616)

crypto.murmur1

Hash a string using the Murmur1 non-cryptographic hashing algorithm.

Parameters

  1. The string to hash.

Returns

An integer between 0 and 0xffffffff, inclusive.

pluto
local crypto = require("crypto")
local str = "hello world"
assert(crypto.murmur1(str) == 3154674178)

crypto.murmur2

Hash a string using the Murmur2 non-cryptographic hashing algorithm.

Parameters

  1. The string to hash.

Returns

An integer between 0 and 0xffffffff, inclusive.

pluto
local crypto = require("crypto")
local str = "hello world"
assert(crypto.murmur2(str) == 1151865881)

crypto.murmur2a

Hash a string using the Murmur2A non-cryptographic hashing algorithm.

Parameters

  1. The string to hash.

Returns

An integer between 0 and 0xffffffff, inclusive.

pluto
local crypto = require("crypto")
local str = "hello world"
assert(crypto.murmur2a(str) == 2650573207)

crypto.murmur64a

Hash a string using the Murmur64A non-cryptographic hashing algorithm.

Parameters

  1. The string to hash.
pluto
local crypto = require("crypto")
local str = "hello world"
assert(crypto.murmur64a(str) == -3190198453633110066)

crypto.murmur64b

Hash a string using the Murmur64A non-cryptographic hashing algorithm.

Parameters

  1. The string to hash.
pluto
local crypto = require("crypto")
local str = "hello world"
assert(crypto.murmur64b(str) == 7088720765356542432)

crypto.murmur2neutral

Hash a string using the Murmur2Neutral non-cryptographic hashing algorithm.

Parameters

  1. The string to hash.
pluto
local crypto = require("crypto")
local str = "hello world"
assert(crypto.murmur2neutral(str) == 1151865881)

Cryptographic Hashing Algorithms

crypto.sha1

Hash a string using the SHA-1 cryptographic hashing algorithm.

Parameters

  1. The string to hash.
  2. When set to true, returns raw binary data. false outputs lowercase hex digits. By default, this is false.
pluto
local crypto = require("crypto")
assert(crypto.sha1("Pluto") == "bce8c9aca4120776fad6b517874aa09c46405454")
assert(crypto.sha1("Pluto", true) == "\xbc\xe8\xc9\xac\xa4\x12\x07\x76\xfa\xd6\xb5\x17\x87\x4a\xa0\x9c\x46\x40\x54\x54")

crypto.sha256

Hash a string using the SHA-256 cryptographic hashing algorithm.

Parameters

  1. The string to hash.
  2. When set to true, returns raw binary data. false outputs lowercase hex digits. By default, this is false.
pluto
local crypto = require("crypto")
assert(crypto.sha256("Pluto") == "8dad5f6a7dd2dcd8c35ec2fd7babb499bcad60d27d73fe73eca2ce025dfd3b47")
assert(crypto.sha256("Pluto", true) == "\x8d\xad\x5f\x6a\x7d\xd2\xdc\xd8\xc3\x5e\xc2\xfd\x7b\xab\xb4\x99\xbc\xad\x60\xd2\x7d\x73\xfe\x73\xec\xa2\xce\x02\x5d\xfd\x3b\x47")

crypto.sha384

Hash a string using the SHA-384 cryptographic hashing algorithm.

Parameters

  1. The string to hash.
  2. When set to true, returns raw binary data. false outputs lowercase hex digits. By default, this is false.
pluto
local crypto = require("crypto")
assert(crypto.sha384("Pluto", false) == "db890233a919b6745d632633c419e14540ff79f1a89bc4ac194b00e7f913f0f06d5d4d7d6cc2b4aaf9485d223afb8cf0")

crypto.sha512

Hash a string using the SHA-512 cryptographic hashing algorithm.

Parameters

  1. The string to hash.
  2. When set to true, returns raw binary data. false outputs lowercase hex digits. By default, this is false.
pluto
local crypto = require("crypto")
assert(crypto.sha512("Pluto", false) == "ee8410a8bf9511b94fd6669b5c3e0c4b86e8e4bf7baa8dbd2773d4d6381dd1aecebbe391bef4c6158620ab3f6b794907652d4432c2301d7e1a6caf520565cdf2")

crypto.ripemd160

Hash a string using the RIPEMD-160 cryptographic hashing algorithm.

Parameters

  1. The string to hash.
  2. When set to true, returns raw binary data. false outputs lowercase hex digits. By default, this is false.
pluto
assert(require"crypto".ripemd160("Pluto") == "c2072a85f4a691803b8942709036072086fd9550")

Cryptographic PRNGs

crypto.random

This is a cryptographically secure PRNG, assuming the platform's implementation of the underlying primitive is secure.

Returns

A random lua integer, in the range from math.mininteger to math.maxinteger.

pluto
local crypto = require("crypto")
print(crypto.random())

AES-CBC, AES-CFB

These unauthenticated AES modes take both a key and an IV. The IV must be unique and unpredictable for each encryption session to ensure security.

crypto.encrypt

Parameters

  1. data — The data to be encrypted.
  2. mode — "aes-cbc-pkcs7" or "aes-cfb-pkcs7" for PKCS#7 padding, or "aes-cbc" or "aes-cfb" if you know what you're doing.
  3. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively.
  4. iv — Must have a length of 16.

crypto.decrypt

Parameters

  1. data — The ciphertext to decrypt.
  2. mode — "aes-cbc-pkcs7" or "aes-cfb-pkcs7" for PKCS#7 padding, or "aes-cbc" or "aes-cfb" if you know what you're doing.
  3. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively.
  4. iv — Must have a length of 16.

Returns the decrypted data on success. Throws an error if the padding was incorrect.

pluto
local crypto = require "pluto:crypto"
local key <const> = "A Top Secret Key"
-- Encrypt
local iv = range(16):map(|| -> string.char(math.random(0, 255))):concat("")
local plain = "Hello, world!"
local enc = plain |> crypto.encrypt|"aes-cbc-pkcs7", key, iv|
print(dumpvar(enc))
-- Decrypt
print(crypto.decrypt(enc, "aes-cbc-pkcs7", key, iv)) --> Hello, world!

AES-ECB

This unauthenticated AES mode takes only a key, and is considered to be the weakest. Identical plaintext blocks result in identical ciphertext blocks.

crypto.encrypt

Parameters

  1. data — The data to be encrypted.
  2. mode — "aes-ecb-pkcs7" for PKCS#7 padding, or "aes-ecb" if you know what you're doing.
  3. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively.

crypto.decrypt

Parameters

  1. mode — "aes-ecb-pkcs7" for PKCS#7 padding, or "aes-ecb" if you know what you're doing.
  2. data — The ciphertext to decrypt.
  3. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively.

Returns the decrypted data on success. Throws an error if the padding was incorrect.

pluto
local crypto = require "pluto:crypto"
local key <const> = "A Top Secret Key"
-- Encrypt
local plain = "Hello, world!"
local enc = plain |> crypto.encrypt|"aes-ecb-pkcs7", key|
print(dumpvar(enc)) --> string(16) "`p{����k\21*.>jG"
-- Decrypt
print(crypto.decrypt(enc, "aes-ecb-pkcs7", key)) --> Hello, world!

AES-GCM

This authenticated AES mode allows for additional data that will be validated although not encrypted, such as a Message Authentication Code (MAC).

crypto.encrypt

Parameters

  1. data — The data to be encrypted.
  2. mode — Must be "aes-gcm". AES-GCM can deal with unpadded data, hence does not need PKCS#7 padding.
  3. aadata — Authenticated data. Will not be encrypted.
  4. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively.
  5. iv — Must have a length of 16.

Returns two strings: the ciphertext and the authentication tag.

crypto.decrypt

Parameters

  1. data — The ciphertext to decrypt.
  2. mode — Must be "aes-gcm".
  3. aadata — Authenticated data.
  4. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively.
  5. iv — Must have a length of 16.
  6. tag — The authentication tag produced by the "encrypt" procedure.

Returns the decrypted data on success. Throws an error if authentication or unpadding failed.

pluto
local crypto = require "pluto:crypto"
local key <const> = "A Top Secret Key"
local aadata = "This is Pluto!"
-- Encrypt
local iv = range(16):map(|| -> string.char(math.random(0, 255))):concat("")
local plain = "Hello, world!"
local enc, tag = plain |> crypto.encrypt|"aes-gcm", aadata, key, iv|
print(dumpvar(enc))
print(dumpvar(tag))
-- Decrypt
print(crypto.decrypt(enc, "aes-gcm", aadata, key, iv, tag)) --> Hello, world!

RSA

crypto.generatekeypair

Parameters

  1. mode — Must be "rsa".
  2. bits — A positive integer for a strict bit-length requirement, or a negative integer for a lax requirement. Common values are 1024, 2048, and 4096.

Returns two tables: The public key (consisting of n and e), and the private key (consisting of p and q). The Bigint class is used for all values.

pluto
local pub, priv = crypto.generatekeypair("rsa", 512)
print(dumpvar(pub))
--> {
--> ["n"] = 11355630182234424425429331560518598643298965915936825610957270519615363349759012613228119611304846673085167794661819394470107090216347491908311079792054357,
--> ["e"] = 65537,
--> }
print(dumpvar(priv))
--> {
--> ["p"] = 115443384115231951475820445136871322101870729500298182134363293112660251666017,
--> ["q"] = 98365361248415863235179644468056200977592391948608651522703704315152579004021,
--> }

crypto.exportkey

Exports a private key.

Parameters

  1. The key to export.
  2. The exchange format to use. Only "pem" is supported right now.
pluto
local { bigint, crypto } = require "pluto:*"
local priv = {
p = new bigint("115443384115231951475820445136871322101870729500298182134363293112660251666017"),
q = new bigint("98365361248415863235179644468056200977592391948608651522703704315152579004021"),
}
print(crypto.exportkey(priv, "pem"))
-----BEGIN RSA PRIVATE KEY-----
MIIBOwIBAAJBANjRKgOuLxSxbL/fFg/3rJeRGGKz0EjxjjuV6QmgjZGq1LpI2KH+
TrxVV4L94U0TCFo19vYtV6T4bOH/MlA6kFUCAwEAAQJANcTrfzWpgd99WXkM6uFQ
iVcHneS7fPeAvziubf+F1E98zwFgLbIOiPSJcVkXc79A2PQZdbGq7dFAxVD0EpIs
oQIhAP86o9Ap9KOH4rgZn8ElHyWKO/Cj8m7oHjSmHG/CBGZhAiEA2XjSTZJ37mg3
gJOXlMjG4SK15/jRCB1CMx8f4VhBhnUCIQCWK0p3EDiAf1NGPs1gNxc8XzklPVFH
MAuVrqbMmrs8AQIhAJ1aqvCuFlFO3zoNkRR64kxsjSq4AqfYY9oRn0OyVFcxAiBj
ueZ/sI52jgP8+xK2x7coiX5/tDmXCGlp5utUAjk2+Q==
-----END RSA PRIVATE KEY-----

crypto.importkey

Imports a private key.

Parameters

  1. The encoded key.
  2. The exchange format to use. Only "pem" is supported right now.
pluto
local { bigint, crypto } = require "pluto:*"
print(dumpvar(crypto.importkey([[-----BEGIN RSA PRIVATE KEY-----
MIIBOwIBAAJBANjRKgOuLxSxbL/fFg/3rJeRGGKz0EjxjjuV6QmgjZGq1LpI2KH+
TrxVV4L94U0TCFo19vYtV6T4bOH/MlA6kFUCAwEAAQJANcTrfzWpgd99WXkM6uFQ
iVcHneS7fPeAvziubf+F1E98zwFgLbIOiPSJcVkXc79A2PQZdbGq7dFAxVD0EpIs
oQIhAP86o9Ap9KOH4rgZn8ElHyWKO/Cj8m7oHjSmHG/CBGZhAiEA2XjSTZJ37mg3
gJOXlMjG4SK15/jRCB1CMx8f4VhBhnUCIQCWK0p3EDiAf1NGPs1gNxc8XzklPVFH
MAuVrqbMmrs8AQIhAJ1aqvCuFlFO3zoNkRR64kxsjSq4AqfYY9oRn0OyVFcxAiBj
ueZ/sI52jgP8+xK2x7coiX5/tDmXCGlp5utUAjk2+Q==
-----END RSA PRIVATE KEY-----]], "pem")))
{
["p"] = 115443384115231951475820445136871322101870729500298182134363293112660251666017,
["q"] = 98365361248415863235179644468056200977592391948608651522703704315152579004021,
}

crypto.encrypt

Parameters

  1. data — The data to be encrypted.
  2. mode — "rsa-pkcs1" for PKCS#1 padding, or "rsa" if you know what you're doing.
  3. key — The public or private key to use. Commonly, a public key is used to encrypt data.

crypto.decrypt

Parameters

  1. data — The ciphertext to decrypt.
  2. mode — "rsa-pkcs1" for PKCS#1 padding, or "rsa" if you know what you're doing.
  3. key — The public or private key to use. If the data was encrypted with the public key, the private key is needed to decrypt it.
pluto
local { base64, bigint, crypto } = require "pluto:*"
local priv = {
p = new bigint("115443384115231951475820445136871322101870729500298182134363293112660251666017"),
q = new bigint("98365361248415863235179644468056200977592391948608651522703704315152579004021"),
}
-- Derive public key
local pub = {
n = priv.p * priv.q, -- 11355630182234424425429331560518598643298965915936825610957270519615363349759012613228119611304846673085167794661819394470107090216347491908311079792054357
e = new bigint(0x10001) -- 65537
}
-- Encrypt
local enc = crypto.encrypt("A secret message to the owner of the private key.", "rsa-pkcs1", pub)
print(base64.encode(enc))
-- Decrypt
print(enc |> crypto.decrypt|"rsa-pkcs1", priv|) --> A secret message to the owner of the private key.

crypto.sign

Parameters

  1. data — The data to sign.
  2. mode — "rsa-sha256" or "rsa-sha1".
  3. key — The private key to use.

crypto.verify

Parameters

  1. data — The data that was signed.
  2. mode — "rsa-sha256" or "rsa-sha1".
  3. key — The public key corresponding to the signer's private key.
  4. signature — The signature produced by the "sign" procedure.

Returns a boolean that indicates if the signature validated successfully.

pluto
local { base64, bigint, crypto } = require "pluto:*"
local priv = {
p = new bigint("115443384115231951475820445136871322101870729500298182134363293112660251666017"),
q = new bigint("98365361248415863235179644468056200977592391948608651522703704315152579004021"),
}
-- Derive public key
local pub = {
n = priv.p * priv.q, -- 11355630182234424425429331560518598643298965915936825610957270519615363349759012613228119611304846673085167794661819394470107090216347491908311079792054357
e = new bigint(0x10001) -- 65537
}
-- Sign
local msg = "The canary has left the nest."
local sig = msg |> crypto.sign|"rsa-sha256", priv|
print(base64.encode(sig)) --> un1g04+cwG8WxYDpSlj4PO/hsTqSITgYKycRuR+m3AE6ypLyUCrVHC/0j4M3DeW81ADZVda6TVkC/Ht8EdYeFw==
-- Verify
print(crypto.verify(msg, "rsa-sha256", pub, sig)) --> true

Miscellaneous

crypto.decompress

Decompresses a DEFLATE-compressed string (one might call this an "INFLATE" function). Compatible with gzip and zlib headers and footers.

Parameters

  1. The string to decompress.

Returns

  1. The decompressed string.
  2. A table with extra information: compressed_size, checksum_present, checksum_mismatch
pluto
local decompressed, info = require"crypto".decompress("\xF3\x48\xCD\xC9\xC9\xD7\x51\x08\xC8\x29\x2D\xC9\x57\x04")
print(decompressed) --> Hello, Pluto!
print(info.compressed_size) --> 14
print(info.checksum_present) --> false
print(info.checksum_mismatch) --> false
- + \ No newline at end of file diff --git a/docs/Runtime Environment/Exception.html b/docs/Runtime Environment/Exception.html index c4ac17f7..c921184c 100644 --- a/docs/Runtime Environment/Exception.html +++ b/docs/Runtime Environment/Exception.html @@ -4,13 +4,13 @@ Exception | Pluto - +

Exception

The exception class makes errors easier to parse with where and what members, as opposed to having a string with both.

For ease of use, constructing an exception automatically throws it.

pluto
try
new exception("Not implemented")
catch e then
print(e) -- same as error("Not implemented")
print(e.what)
print(e.where)
end

Output:

script.pluto:2: Not implemented
Not implemented
script.pluto:2
- + \ No newline at end of file diff --git a/docs/Runtime Environment/FFI.html b/docs/Runtime Environment/FFI.html index 841cc681..785aa258 100644 --- a/docs/Runtime Environment/FFI.html +++ b/docs/Runtime Environment/FFI.html @@ -4,13 +4,13 @@ FFI | Pluto - +

FFI

Must be included via require.

caution

This is intended for advanced users.


ffi.open

Loads a DLL/SO (dynamic link library/shared object).

Parameters

  1. The name of the library which is to be located by the operating system. A relative or absolute path also works.

Returns

An FFI library instance.

Example

The following C++ code:

lib.cpp
cpp
#ifdef _WIN32
#define EXPORT __declspec(dllexport)
#else
#define EXPORT
#endif
extern "C" EXPORT int MY_MAGIC_INT = 69;
extern "C" EXPORT int add(int a, int b) {
return a + b;
}

Compiled like this:

  • Windows: clang -std=c++17 --shared -o lib.dll lib.cpp
  • Linux/MacOS: clang -std=c++17 --shared -o liblib.so lib.cpp

Can be used like this:

pluto
local ffi = require "pluto:ffi"
local lib = ffi.open(os.platform == "windows" ? "lib" : "./liblib.so")
assert(lib:value("i32", "MY_MAGIC_INT") == 69)
assert(lib:wrap("i32", "add", "i32", "i32")(38, 4) == 42)

ffi.struct

Parses a subset of C for a struct.

Paramters

  1. The C source code.

Returns

An FFI Struct Type instance.

Example

pluto
local ffi = require "pluto:ffi"
local Color = ffi.struct[[
struct Color {
uint8_t r;
uint8_t g;
uint8_t b;
};
]]
local c = new Color()
c.r = 255
print(c.r) --> 255

ffi.new

Instantiate an FFI Struct Type by name or instance.

Parameters

  1. An FFI Struct Type instance or the name of one stored on the FFI library itself.

Returns

A new instance of the struct.


ffi.cdef

Parses a subset of C for structs to be stored on the FFI library itself.

Parameters

  1. The C source code.

Example

pluto
local ffi = require "pluto:ffi"
ffi.cdef[[
struct Color {
uint8_t r;
uint8_t g;
uint8_t b;
};
]]
local c = ffi.new("Color")
c.r = 255
print(c.r) --> 255

ffi.sizeof

Measures the size of an FFI Struct Type.

Parameters

  1. An FFI Struct Type instance, the name of a struct stored on the FFI library itself, or an instance of the struct.

Returns

The size in bytes.


ffi.offsetof

Measures the offset of a field on an FFI Struct Type.

Parameters

  1. An FFI Struct Type instance, the name of a struct stored on the FFI library itself, or an instance of the struct.
  2. The name of the field.

Returns

The offset in bytes.


ffi.nullptr

This constant can be used to give 0 to a "ptr"-type argument.


FFI Library Class

Obtained from ffi.open.

wrap

Creates a function wrapper.

Parameters

  1. The return type. Can be "void", "i8", "i16", "i32", "i64", "u8", "u16", "u32", "u64", "f32", "f64", "ptr" or "str".
  2. The name of the function.
  3. The argument type(s). Can be "void", "i8", "i16", "i32", "i64", "u8", "u16", "u32", "u64", "f32", "f64", "ptr" or "str".

Returns

A new function wrapper instance, which can be called.

value

Gets an exported value and interprets it using the given type.

Parameters

  1. The type. Can be "void", "i8", "i16", "i32", "i64", "u8", "u16", "u32", "u64", "f32", "f64", "ptr" or "str".
  2. The name of the export.

Returns

The interpreted value.

cdef

Parses a subset of C for values and functions and puts them on the library instance.

Parameters

  1. The C source code.

Example

pluto
local ffi = require "pluto:ffi"
local lib = ffi.open(os.platform == "windows" ? "lib" : "./liblib.so")
lib:cdef[[
int MY_MAGIC_INT;
int add(int a, int b);
]]
assert(lib.MY_MAGIC_INT == 69)
assert(lib.add(38, 4) == 42)

This is equivalent to the following:

pluto
local ffi = require "pluto:ffi"
local lib = ffi.open(os.platform == "windows" ? "lib" : "./liblib.so")
lib.MY_MAGIC_INT = lib:value("i32", "MY_MAGIC_INT")
lib.add = lib:wrap("i32", "add", "i32", "i32")
assert(lib.MY_MAGIC_INT == 69)
assert(lib.add(38, 4) == 42)
- + \ No newline at end of file diff --git a/docs/Runtime Environment/Global & Base.html b/docs/Runtime Environment/Global & Base.html index 2885ed4b..cccb031f 100644 --- a/docs/Runtime Environment/Global & Base.html +++ b/docs/Runtime Environment/Global & Base.html @@ -4,13 +4,13 @@ Global & Base | Pluto - +

Global & Base

This page documents the changes & additions to Pluto's runtime environment, which is built on top of Lua 5.4's.


_PVERSION

_PVERSION is the global to check your current version of Pluto.

_PSOUP

_PSOUP is a global boolean you can access to check linkage with Soup. Always true as of 0.8.0.

os.platform

os.platform is a global string containing the host platform. Can be "windows", "wasm", "linux", "macos", "android", or "unknown".

pluto
if _PVERSION == nil then
print("Plain Lua detected (".._VERSION..")")
else
io.write("Pluto detected (".._PVERSION.."), based on ".._VERSION)
if os.platform then
io.write(", running on "..os.platform)
end
io.write("\n")
end

package.path

package.path is modified to also search for .pluto files.


Default Metatables

Tables and coroutines/threads have metatables by default, akin to how each string has a metatable by default.

pluto
local t = {}
local c = coroutine.create(|| -> do end)
-- Can do this:
t:contains(1)
t:concat("\n")
c:resume()
-- As opposed to this:
table.contains(t, 1)
table.concat(t, "\n")
coroutine.resume(c)

This behavior is implemented by setting the __index metamethod to the respective library (_G.table or _G.coroutine). If you override the metatable, you may want to replicate that.


dumpvar

A debug function designed to dump values into human-readable formats.

Parameters

  1. The value to dump.

Returns

A string representation of the value.

pluto
local t = {
["hello"] = 1234,
["goodbye"] = _G.table,
["name"] = "John",
["lastname"] = "Doe",
["details"] = {
"No details available."
}
}
print(dumpvar(t))
{
["lastname"] = string(3) "Doe",
["name"] = string(4) "John",
["goodbye"] = {
["unpack"] = function: 00007FF7738B3C20,
["insert"] = function: 00007FF7738B30D0,
["freeze"] = function: 00007FF7738B43F0,
["foreach"] = function: 00007FF7738B3220,
["filter"] = function: 00007FF7738B4700,
["isfrozen"] = function: 00007FF7738B44B0,
["getn"] = function: 00007FF7738B43B0,
["pack"] = function: 00007FF7738B3B10,
["contains"] = function: 00007FF7738B4540,
["move"] = function: 00007FF7738B34D0,
["concat"] = function: 00007FF7738B37F0,
["sort"] = function: 00007FF7738B42B0,
["remove"] = function: 00007FF7738B33C0,
["map"] = function: 00007FF7738B49A0,
},
["hello"] = 1234,
["details"] = {
[1] = string(21) "No details available.",
},
}

exportvar

Similar to dumpvar, but returns valid Lua/Pluto code. May error if the value can not be represented accordingly.

Parameters

  1. The value to dump.
pluto
-- Slightly altered data from last example as C functions can not be exported.
local t = {
["hello"] = 1234,
["name"] = "John",
["lastname"] = "Doe",
["details"] = {
"No details available."
}
}
print(exportvar(t))
{
["hello"] = 1234,
["name"] = "John",
["details"] = {
[1] = "No details available.",
},
["lastname"] = "Doe",
}

range

Returns a table of numbers in the given range.

pluto
print(range(10):unpack()) --> 1 2 3 4 5 6 7 8 9 10
print(range(4, 8):unpack()) --> 4 5 6 7 8

compareversions

Performs a three-way comparison on 2 version numbers, similar to the Spaceship Operator.

pluto
assert(compareversions("1.0.0", "0.9.0") >= 0)
assert(compareversions("1.0.0", "1.0.0-dev") >= 0)

Note that pre-release versions (e.g. with -dev suffix) are considered to be less than their final counterparts.


wcall

Calls the given function and returns a string of warnings raised by it.

pluto
local w = wcall(|| -> warn("Bad!"))
print(w ~= "" ? (w:strip()) : "No warnings")
-- Output: "Bad!"
- + \ No newline at end of file diff --git a/docs/Runtime Environment/HTTP.html b/docs/Runtime Environment/HTTP.html index 21cdd24f..354a9d02 100644 --- a/docs/Runtime Environment/HTTP.html +++ b/docs/Runtime Environment/HTTP.html @@ -4,13 +4,13 @@ HTTP | Pluto - +

HTTP

Must be included via require.


http.request

Performs an HTTP request.

Parameters

  1. The URL to send a request to as a string. This parameter is optional in the sense that the options table (parameter 2) can be parameter 1 instead, but must have the "url" option then.
  2. The table of options. This parameter is optional if a URL was given.

Options

  • method: The HTTP request method to use. Defaults to GET.
  • headers: A table of headers, e.g. { ["Content-Type"] = "application/json" }.
  • body: An optional request payload. If provided, the Content-Length header is set appropriately, and the method is set to POST unless otherwise specified.
  • prefer_ipv6: (Does nothing in WASM builds of Pluto.) When establishing a new connection, we attempt to lookup and connect via IPv4, retrying with IPv6 if needed. If this is set to true, we instead start with IPv6. This may be useful for "LAN" services that identify the LAN via IPv6 instead of IPv4.
  • dont_reuse: (Does nothing in WASM builds of Pluto.) Force the implementation not to reuse an existing socket, which may involve waiting. Instead a new connection is opened. This may be useful when many requests are headed to the same remote and you consider the time taken by a fresh handshake to be less than the time taken to wait to reuse.
  • dont_make_reusable: (Does nothing in WASM builds of Pluto.) If a new connection to the remote was opened to carry out the request, close it again after the request. This is useful to avoid burdening the remote for one-off requests.

Returns

On success:

  1. The response body as a string.
  2. The status code as an integer.
  3. A table of response headers. Empty in WASM builds of Pluto.
  4. The status text as a string.

On failure:

  1. Nil.
  2. An approximate failure reason as an English string. Not available in WASM builds of Pluto.

Multitasking

If called inside of a coroutine, this function yields. Otherwise, it blocks. In WASM builds of Pluto, it must be called inside of a coroutine that yields to the environment as otherwise the request cannot be dispatched.

info

The first request to a remote may take a while — especially with HTTPS — due to the TCP and TLS handshakes. We use keep-alive to keep the connection open, so subsequent requests to the same remote will be significantly faster.

pluto
local http = require "pluto:http"
local body, status_code, headers, status_text = http.request("https://httpbin.org/anything")
print(status_code.." "..status_text)
if os.platform != "wasm" then
print(dumpvar(headers))
end
print(body)

http.hasconnection

Queries if a keep-alive connection is available for a remote. This function is not available in WASM builds of Pluto.

Parameters

  1. A partial URL identifying the remote. Partial because only the protocol, host, and port are used; additional components such as path are ignored.

Multitasking

If called inside of a coroutine, this function may yield. Otherwise, it may block.

pluto
local { http, scheduler } = require "*"
local sched = new scheduler()
sched:addloop(function()
print(http.hasconnection("https://httpbin.org"))
end)
sched:add(function()
print((http.request("https://httpbin.org/anything")))
end)
sched:run()

http.closeconnections

Closes all keep-alive connections like when closing the Lua state but in a non-blocking way. This function does nothing in WASM builds of Pluto.

Multitasking

This function must be called inside of a coroutine, as it will yield.

- + \ No newline at end of file diff --git a/docs/Runtime Environment/IO.html b/docs/Runtime Environment/IO.html index 3e81737c..de2e0cc3 100644 --- a/docs/Runtime Environment/IO.html +++ b/docs/Runtime Environment/IO.html @@ -4,13 +4,13 @@ IO | Pluto - +

IO

This page documents the changes & additions to the io library in Pluto, which is built on top of Lua 5.4's.


io.rename

A variant of Lua's os.rename that raises an error on failure and instead has no return values.


io.remove

A variant of Lua's os.remove that raises an error on failure and instead has no return values.


io.copy

Copy a file to another file, creating a new file if needed.

Parameters

  1. A string path or file stream.
  2. A path towards the file to copy into.

Returns

A boolean indicating if the file was successfully copied.

pluto
if io.copy("./cfg/config.txt", "./backup_cfg/config.txt") then
print("Successfully created a backup config!")
else
print("Failed to create a backup config.")
end

io.part

Extracts the given part from a path.

Parameters

  1. A string path or file stream.
  2. The part to return, "parent" or "name".

Returns

The extracted part.

pluto
print(io.part("/path/to/foo.txt", "parent")) -- "/path/to"
print(io.part("/path/to/foo.txt", "name")) -- "foo.txt"

io.isdir

Parameters

  1. A string path or file stream.

Returns

A boolean indicating if the path led toward a directory.

pluto
local path = "./dir/main/"
local bool = io.isdir(path)
if bool then
print("Directory!")
else
print("Not a directory!")
end

io.isfile

Parameters

  1. A string path or file stream.

Returns

A boolean indicating if the path led towards a file.

pluto
local path = "./isfile/file"
local bool = io.isfile(path)
if bool then
print("File!")
else
print("Not a file!")
end

io.exists

Parameters

  1. A string path or file stream.

Returns

A boolean indicating if the path led towards an existing file or directory.

pluto
if io.exists("cfg/config.txt") then
print("Config exists!")
else
print("Config does not exist!")
end

io.makedir

Create a directory.

Parameters

  1. The path for the new directory.

Returns

A boolean indicating if the directory was successfully created.

pluto
if io.makedir("./cfg") then
print("Created cfg directory.")
else
print("Failed to create cfg directory.")
end

io.listdir

List all the files within a directory.

Parameters

  1. A string path to the directory.
  2. A boolean indicating whether or not to recurse sub-directories.

Returns

An index-based table containing file paths.

pluto
for _, filepath in io.listdir(".") do
print(filepath)
end

io.makedirs

Creates a directory and all the non-existing parent directories in the given path.

Parameters

  1. The string path for your new directory.
pluto
io.makedirs("A/B/C") -- Creates "C:\Users\Username\Desktop\Project\A\B\C"

io.absolute

Convert a relative path into an absolute one.

Parameters

  1. A string path or file stream.
  2. An optional bool if the path should be canonicalized. A canonical path does not go through symlinks.

Returns

A string representing the new file path.

pluto
io.absolute("cfg/cfg.txt") -- "C:\Users\Username\Desktop\Project\cfg\cfg.txt"

io.relative

Convert an absolute path into a relative one.

Parameters

  1. A string path or file stream.

Returns

A string representing the new file path.

pluto
io.relative(io.absolute("cfg/cfg.txt")) -- "cfg\cfg.txt"

io.contents

Get or set a file's contents.

Parameters

  1. A string path or file stream.
  2. The desired content. If this parameter is absent, this function works as a getter.

Returns

If this function is acting as a getter, it will return the file's contents or nil if there was an error.

pluto
local text = io.contents("foo.txt") or ""
text ..= "bar"
io.contents("foo.txt", text)

This function is not only easier to use than the traditional io.open approach, it also performs significantly better.


io.filesize

Fetch the size of a file in bytes.

Parameters

  1. A string path or file stream.
pluto
if io.filesize("cfg/config.txt") <= 1 then
print("Config is too small or empty.")
end

io.writetime

Get or set a file's modification time.

Parameters

  1. A string path or file stream.
  2. The desired timestamp. If this parameter is absent, this function works as a getter.

Returns

If this function is acting as a getter, it will return the file's last write time as seconds since the UNIX epoch.

pluto
local time = io.writetime("foo.txt")
time += 3600
io.writetime("foo.txt", time)

This example adds an hour (= 60 minutes = 3600 seconds) to the last write time of "foo.txt" (or errors if that file does not exist).


io.currentdir, io.chdir, io.cwd

Get or set the current working directory.

Parameters

  1. A path to the desired current working directory. If this parameter is absent, this function works as a getter.

Returns

If this function is acting as a getter, it will return the current working directory.

pluto
local cwd = io.currentdir() -- Get cwd
io.currentdir("abc/abc") -- Set a new cwd
- + \ No newline at end of file diff --git a/docs/Runtime Environment/JSON.html b/docs/Runtime Environment/JSON.html index 0673bc57..2b8f5a6c 100644 --- a/docs/Runtime Environment/JSON.html +++ b/docs/Runtime Environment/JSON.html @@ -4,13 +4,13 @@ JSON | Pluto - +

JSON

Must be included via require.


json.encode

Returns a string of JSON.

Parameters

  1. data — A boolean, number, string, or table to encode as JSON.
  2. pretty — Whether to return a human-readable string of JSON. Defaults to false.
pluto
local json = require("json")
local data
data = "Hello, World!"
print(json.encode(data, true))
--> "Hello, World!"
data = {
key = "Hello, World!",
nested = {
nested_key = 1337
}
}
print(json.encode(data, true))
--> {
--> "key": "Hello, World!",
--> "nested": {
--> "nested_key": 1337
--> }
--> }

Because Lua tables do not have order guarantees, you can add an __order field to fix the order:

pluto
local t = {
__order = { "a", "b", "c" },
a = 1,
b = 2,
c = 3
}
print(require"json".encode(t)) -- {"a":1,"b":2,"c":3}

The json.null value — assuming you did local json = require("json") — can be used to encode JSON null values.

pluto
local json = require("json")
print(json.encode(json.null)) --> null

json.decode

Returns multiple potential types. If you pass a serialized boolean, number, or string, then it will return the same type. If you pass a complex JSON object, it will return a table.

Parameters

  1. data — The JSON data to decode.
  2. flags — Options to augment the return value. Multiple options can be combined with bitwise OR (|). Defaults to 0.
    • json.withnull — decodes JSON null values as json.null instead of nil.
    • json.withorder — adds an __order field to tables of decoded JSON objects. json.encode respects this, so this is perfect for modifying data while preserving order.
pluto
local json = require("json")
local data, encoded, decoded
-- Basic Type
data = "Hello, World!"
encoded = json.encode(data, true)
decoded = json.decode(encoded)
assert(decoded == data)
assert(type(decoded) == "string")
-- Complex Type
data = {
key = "Hello",
nested = {
nested_key = 1337
}
}
encoded = json.encode(data, true)
decoded = json.decode(encoded)
assert(decoded.key == "Hello")
assert(type(decoded) == "table")
assert(decoded.nested.nested_key == 1337)
-- Flags
encoded = [[{
"null": null,
"string": "Hello"
}]]
decoded = json.decode(encoded, json.withnull | json.withorder)
assert(decoded.__order[1] == "null")
assert(decoded.null == json.null)
assert(json.encode(decoded, true) == encoded)
- + \ No newline at end of file diff --git a/docs/Runtime Environment/Math.html b/docs/Runtime Environment/Math.html index ee8dee02..74211e07 100644 --- a/docs/Runtime Environment/Math.html +++ b/docs/Runtime Environment/Math.html @@ -4,13 +4,13 @@ Math | Pluto - +

Math

This page documents the changes & additions to the math library in Pluto, which is built on top of Lua 5.4's.


math.isnan

Checks if a number is NaN.

Parameters

  1. The number to check.
pluto
local x = 0 / 0
print(x ~= x) -- Lua way: Prove the variable is NaN because it is not equal to itself. Works, but unintuitive.
print(math.isnan(x))

math.round

Rounds a number to the nearest integer.

Parameters

  1. The number to round.
pluto
print(math.round(2.4)) --> 2
print(math.round(2.5)) --> 3

math.atan2

An alias of math.atan.

- + \ No newline at end of file diff --git a/docs/Runtime Environment/OS.html b/docs/Runtime Environment/OS.html index 94ce3b2e..876e3b55 100644 --- a/docs/Runtime Environment/OS.html +++ b/docs/Runtime Environment/OS.html @@ -4,13 +4,13 @@ OS | Pluto - +

OS

This page documents the changes & additions to the os library in Pluto, which is built on top of Lua 5.4's.


os.sleep

Parameters

  1. The amount of milliseconds to sleep for.

Example

pluto
os.sleep(1000) -- Pause this thread for 1000ms.

os.nanos, os.micros, os.millis, os.seconds

All of these return their respective times since implementation-specific epoch.

os.unixseconds

Returns seconds since UNIX epoch.

- + \ No newline at end of file diff --git a/docs/Runtime Environment/Regex.html b/docs/Runtime Environment/Regex.html index 4592c595..71001a67 100644 --- a/docs/Runtime Environment/Regex.html +++ b/docs/Runtime Environment/Regex.html @@ -4,13 +4,13 @@ Regex | Pluto - +

Regex

The Regex module is available via require "pluto:regex" and provides Soup's flavor of the popular string matching language.

regex.new

Parses a pattern and creates an instance for it.

Parameters

  1. The regex to be compiled.

Returns

A pattern instance.

regex.match

Attempt to match a pattern instance.

Parameters

  1. The pattern instance.

Returns

A table with an index/key for each matching group or nil if no matches.

pluto
local regex = require "pluto:regex"
local pattern = new regex [[/^the (?:(.+) )?one$/]]
print(dumpvar(pattern:match("the one")))
--> {
--> [0] = string(7) "the one",
--> }
print(dumpvar(pattern:match("the chosen one")))
--> {
--> [1] = string(6) "chosen",
--> [0] = string(14) "the chosen one",
--> }
print(pattern:match("not the one"))
--> nil

The overall pattern match is in index 0, and in this case there is only the 1 capturing group, that being (.+).

Capture group names will be used if available:

pluto
local regex = require "pluto:regex"
local pattern = new regex [[/^the (?:(?'what'.+) )?one$/]]
print(dumpvar(pattern:match("the chosen one")))
--> {
--> [0] = string(14) "the chosen one",
--> ["what"] = string(6) "chosen",
--> }
- + \ No newline at end of file diff --git a/docs/Runtime Environment/Scheduler.html b/docs/Runtime Environment/Scheduler.html index 8b5a9aed..ec654715 100644 --- a/docs/Runtime Environment/Scheduler.html +++ b/docs/Runtime Environment/Scheduler.html @@ -4,13 +4,13 @@ Scheduler | Pluto - +

Scheduler

The scheduler class — available via require — can be used to easily set up coroutine-based cooperative multitasking.

__construct

The constructor takes no arguments.

add

The add method can be used to turn a function into a coroutine. The coroutine is resumed once and then added to the scheduler.

addloop

The addloop method is a wrapper for the add method that keeps invoking the given function until it returns false.

run

The run method activates the scheduler. The scheduler resumes all coroutines and then calls its yieldfunc until either all coroutines are finished, or coroutine throws an error — in which case it is rethrown.

pluto
local scheduler = new (require"pluto:scheduler") ()
local loops = 0
scheduler:addloop(function()
++loops
print(loops)
return loops != 5
end)
scheduler:run()
--> 1
--> 2
--> 3
--> 4
--> 5
scheduler:add(function()
print("3...")
coroutine.sleep(1000)
print("2...")
coroutine.sleep(1000)
print("1...")
coroutine.sleep(1000)
print("Boom!")
end)
scheduler:run()
--> 3...
--> 2...
--> 1...
--> Boom!

yieldfunc

yieldfunc is a property on the scheduler that can be used to customize how the scheduler itself yields. By default, this is a function calling os.sleep(1).

pluto
local scheduler = new (require"pluto:scheduler") ()
-- Yield to OS every second instead of every millisecond.
scheduler.yieldfunc = || -> os.sleep(1000)
local loops = 0
scheduler:addloop(function()
++loops
print(loops)
return loops != 5
end)
scheduler:run()
--> 1
--> 2
--> 3
--> 4
--> 5

errorfunc

errorfunc is a property on the scheduler that can optionally be set to customize how the scheduler reports errors in its coroutines. By default, this is nil, in which case any coroutine errors are rethrown (via coroutine.xresume).

pluto
local { scheduler } = require "*"
local sched = new scheduler()
sched.errorfunc = |err| -> do print(debug.traceback(err)) end
sched:add(function()
error("this is urgent: fatal error")
end)
- + \ No newline at end of file diff --git a/docs/Runtime Environment/Socket.html b/docs/Runtime Environment/Socket.html index f0950a6e..d81ee7b3 100644 --- a/docs/Runtime Environment/Socket.html +++ b/docs/Runtime Environment/Socket.html @@ -4,13 +4,13 @@ Socket | Pluto - +

Socket

Must be included via require. This library is not available in WASM builds of Pluto.


socket.connect

Establishes a TCP connection.

Parameters

  1. The host to connect to. Either an IPv4 or IPv6 address, or a domain name resolving to one.
  2. The port to contact the host on.

Returns

A socket instance on success. Nil on failure.

Multitasking

If called inside of a coroutine, this function yields. Otherwise, it blocks.


socket.listen

Creates a new listener for the given port.

Parameters

  1. The port to listen on.

Returns

A listener instance on success. Nil on failure.


socket.bind

A convenience function that wraps socket.listen, automatically accepting new clients and spinning up a coroutine for them.

Parameters

  1. A scheduler instance.
  2. The port to listen on.
  3. The callback function that will be called in a new coroutine for each client socket.
pluto
local { scheduler, socket } = require "*"
local sched = new scheduler()
socket.bind(sched, 80, |s| -> do
local content = "Hello, world!"
s:send("HTTP/1.1 200 OK\r\nConnection: Close\r\nContent-Length: "..#content.."\r\n\r\n"..content)
end)
sched:run()

Socket Class

Socket instances are obtained by calling socket.connect (client), or from a listener (server).

socket.send

Sends data on a socket.

Parameters

  1. The socket instance.
  2. The data to send.

socket.recv

Receive data from a socket.

Parameters

  1. The socket instance.

Returns

  • If the socket is open: The oldest chunk of data received on the transport layer (TCP packet) or crypto layer (TLS record) as a string.
  • If the socket is closed: Nil.

Multitasking

If a message is buffered, the function can return immediately. If not, it will yield if inside a coroutine, and block otherwise.

pluto
local socket = require "pluto:socket"
local s = socket.connect("google.com", 80)
s:send("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")
print(s:recv())

socket.peek

Look at received data without consuming it.

Parameters

  1. The socket instances.

Returns

Either the string that would be returned next by socket.recv or nothing if there is no message in the receive buffer.

socket.unrecv

Pushes a chunk of data to the front of the receive buffer, making it oldest for the purposes of socket.recv.

Parameters

  1. The socket instance.
  2. The data to push.
pluto
local socket = require "pluto:socket"
local sock = socket.connect("google.com", 80)
sock:unrecv("World")
sock:unrecv("Hello")
print(sock:recv()) --> Hello
print(sock:recv()) --> World

socket.starttls

Attempts to add the TLS crypto layer to the socket, making the transport layer a sole carrier for TLS traffic.

Parameters (Client)

  1. The socket instance.
  2. The host name of the intended remote. This may be the same as what was passed to socket.connect. This name must be on the certificate that the remote will send.

Parameters (Server)

  1. The socket instance.
  2. An array of tables describing available certificates. Each certificate needs a chain and private_key field, which should be a string containing valid PEM. The private_key must be RSA.

Returns

True on success. On failure, returns false and the socket is closed. If the socket is already using TLS, returns nil.

Multitasking

If called inside of a coroutine, this function yields. Otherwise, it blocks.

Client Example
pluto
local socket = require "pluto:socket"
local s = socket.connect("pluto-lang.org", 443)
assert(s:starttls("pluto-lang.org"), "Failed to establish secure connection.")
s:send("GET / HTTP/1.1\r\nHost: pluto-lang.org\r\nConnection: close\r\n\r\n")
while data := s:recv() do
print(data)
end
Server Example
pluto
local { http, scheduler, socket } = require "*"
local certs = {
{
chain = http.request("https://tls.cat/certs/viatls-2024/cert.pem"),
private_key = http.request("https://tls.cat/certs/viatls-2024/key.pem"),
}
}
local sched = new scheduler()
socket.bind(sched, 443, |s| -> do
if s:starttls(certs) then
local content = "Hello, world!"
s:send("HTTP/1.1 200 OK\r\nConnection: Close\r\nContent-Length: "..#content.."\r\n\r\n"..content)
end
end)
print("https://127-0-0-1.viatls.com/")
sched:run()

socket.close

Closes a socket.

Parameters

  1. The socket instance.

socket.getpeer

Get information about the other end of a connection.

Parameters

  1. The socket instance.

Returns

  1. The IP address as a string.
  2. The port.
pluto
local sock = require"socket".connect("1.1.1.1", 443)
local ip, port = sock:getpeer()
print(ip) --> 1.1.1.1
print(port) --> 443

socket.getside

Get which side of the connection a socket is.

Parameters

  1. The socket instance.

Returns

Either "client" or "server".

pluto
local sock = require"socket".connect("1.1.1.1", 443)
print(sock:getside()) --> client

socket.istls

Check if a connection is encrypted.

Parameters

  1. The socket instance.
pluto
local sock = require"socket".connect("1.1.1.1", 443)
print(sock:istls()) --> false
assert(sock:starttls("1.1.1.1"))
print(sock:istls()) --> true

socket.isopen

Check if a connection is still open.

Parameters

  1. The socket instance.
pluto
local sock = require"socket".connect("1.1.1.1", 443)
print(sock:isopen()) --> true
sock:close()
print(sock:isopen()) --> false

Listener Class

Listener instances are obtained by calling socket.listen.

accept

Accepts an incoming client connection, waiting until there is one.

Returns

A new socket instance. The socket can be used as per usual, with the exception of the starttls function being unavailable.

Multitasking

  • If there is an incoming client connection, this function returns immediately.
  • If there is not, it waits for one. Waiting means yielding if called inside a coroutine, and blocking otherwise.

hasconnection

Checks if there is an incoming client connection. If this function returns true, the next call to accept is guaranteed not to block or yield.

pluto
local socket = require "pluto:socket"
local l = socket.listen(80) or error("Failed to bind TCP/80")
while not l:hasconnection() do -- Visit http://localhost to break this loop
os.sleep(1)
end
print(l:accept():recv())
- + \ No newline at end of file diff --git a/docs/Runtime Environment/String.html b/docs/Runtime Environment/String.html index f2e0088a..b22a1a97 100644 --- a/docs/Runtime Environment/String.html +++ b/docs/Runtime Environment/String.html @@ -4,13 +4,13 @@ String | Pluto - +

String

This page documents the changes & additions to the string library in Pluto, which is built on top of Lua 5.4's.


string.upper

This function now takes a second parameter that specifies which index to capitalize.

pluto
local s = "hello"
assert(s:upper(1) == "Hello")

string.lower

This function now takes a second parameter that specifies which index to make lowercase.

pluto
local s = "HELLO"
assert(s:lower(1) == "hELLO")

string.split

Splits a string by a separator.

Parameters

  1. The string to split.
  2. The separator to split a string by. This can be any string.
  3. An optional limit for the returned table size.

Returns

A table.

Splitting a string by a single character
pluto
local s = "hello world, how is everyone doing?"
string.split(s, " ") -- { "hello", "world,", "how", "is", "everyone", "doing?" }
Splitting a string by a substring
pluto
local s = "helloFOOworld,FOOhowFOOisFOOeveryoneFOOdoing?"
string.split(s, "FOO") -- { "hello", "world,", "how", "is", "everyone", "doing?" }
Splitting a string by a single character with a limit
pluto
local s = "hello world, how is everyone doing?"
string.split(s, " ", 3) -- { "hello", "world,", "how is everyone doing?" }

string.rfind

Identical to the base Lua string.find in every way, except it searches right-to-left instead of left-to-right.


string.strip

Strips or trims characters from both ends of a string.

Parameters

  1. The string to strip.
  2. A string of characters to strip. Defaults to \n\r\t\v\0.

Returns

The new string.

pluto
local s = "{|}hello world{|}"
print(string.strip(s, "{}|")) --> hello world

string.lstrip

Strips or trims characters from the left side of a string.

Parameters

  1. The string to strip.
  2. A string of characters to strip. Defaults to \n\r\t\v\0.

Returns

The new string.

pluto
local s = "{|}hello world{|}"
print(string.lstrip(s, "{}|")) --> hello world{|}

string.rstrip

Strips or trims characters from the right side of a string.

Parameters

  1. The string to strip.
  2. A string of characters to strip. Defaults to \n\r\t\v\0.

Returns

The new string.

pluto
local s = "{|}hello world{|}"
print(string.rstrip(s, "{}|")) --> {|}hello world

string.isascii

Checks if a string is entirely composed of ASCII characters.

Parameters

  1. The string to check.
pluto
local s = "HELLOWORLD123"
print(string.isascii(s)) --> true
info

This would exclude any multi-byte characters, like emojis.


string.islower

Checks if a string is entirely composed of lowercase characters.

Parameters

  1. The string to check.
pluto
local s = "helloworld"
print(string.islower(s)) --> true
info

Whitespace characters are not lowercase characters.


string.isalpha

Checks if a string is entirely composed of alphabetic characters.

Parameters

  1. The string to check.
pluto
local s = "HELLOWORLD"
print(string.isalpha(s)) --> true
info

Whitespace characters are not alphabetic characters.


string.isupper

Checks if a string is entirely composed of uppercase characters.

Parameters

  1. The string to check.
pluto
local s = "HELLOWORLD"
print(string.isupper(s)) --> true
info

Whitespace characters are not uppercase characters.


string.isalnum

Checks if a string is entirely composed of alphanumeric characters.

Parameters

  1. The string to check.
pluto
local s = "HELLOWORLD123"
print(string.isalnum(s)) --> true
info

Whitespace characters are not alphanumeric characters.


string.iswhitespace

Checks if this string is entirely composed of whitespace characters.

Paramaters

  1. The string to check.
pluto
local s = " \t \v \f \t\t\t\t"
print(string.iswhitespace(s)) --> true

string.uformat

Same as string.format, but performs the operation under the en_US.UTF-8 locale. Ensures the same result on all systems.


string.replace

Replace substrings with another substring. Similar to string.gsub, but it operates on plain-text and is not burdened by a pattern capture limit.

Parameters

  1. original — The substring to replace.
  2. substitute — The replacement substring.
  3. max_replace — The maximum number of replacements you wish to occur. The default value is effectively 0, which means "infinite". If you pass 1, this leads to a maximum of one replacement, and so on.

Errors

An error is thrown under the following conditions:

  1. max_replace is less than zero.
  2. The length of substitute is zero.
pluto
print(string.replace("Hello, world!", "!", ".")) --> Hello, world.
print(string.replace("Hello, world!", "apple", "")) --> Hello, world!
print(string.replace("Hello, world!", "Hello", "Apple")) --> Apple, world!
print(string.replace("Hello, world!", "Hello, ", "")) --> world!

string.truncate

Truncates a given string to a specified length. If an elipsis is desired and the string was actually truncated, the last three characters of the resultant string will be replaced with an elipsis.

Parameters

  1. The string to truncate.
  2. The desired length of the truncated string.
  3. A boolean indicating whether or not to replace the last three character of the string with ... if it is truncated. This is false by default.

Returns

The truncated string.

pluto
print(string.truncate("Hello, world!", 50)) --> Hello, world!
print(string.truncate("Hello, world!", 5)) --> Hello
print(string.truncate("Hello, world!", 5, true)) --> He...

string.contains

Checks if a string contains a substring.

Parameters

  1. The string to check.
  2. The substring to check for.
pluto
local s = "hello world"
print(string.contains(s, "worl")) --> true

string.casefold

Compares two strings, agnostic of any capitalization.

Parameters

  1. The first string to compare.
  2. The second string to compare.
pluto
local s1 = "hello world"
local s2 = "heLLo WoRlD"
print(string.casefold(s1, s2)) --> true

string.formatint

This function makes an integer easier to read by inserting separator every N characters. It can handle strings representing integers, making it suitable for BigInt modules or any integer beyond Lua's representation limits. If you provide a string, it should consist solely of digits. A single unary operator is permitted at the beginning of the string to indicate whether it's a negative or positive number.

Parameters

  1. integer — The integer or string input.
  2. sep — The separator to use. This must be a single-character string.
  3. group — The grouping of each digit pair. This is N.

Errors

If the input is a string and does not meet the aforementioned criteria, an error will be thrown.

Usage Example
pluto
print(string.formatint(500)) --> 500
print(string.formatint(-5000)) --> -5,000
print(string.formatint(50000)) --> 50,000
print(string.formatint(-500000)) --> -500,000
print(string.formatint(500, ".", 2)) --> 5.00
print(string.formatint("-5000", ",", 1)) --> -5,0,0,0
print(string.formatint(50000, ",", 4)) --> 5,0000
Error Example
pluto
string.formatint("-500000.4")
pluto: test.pluto:3: argument 'integer' for string.formatint was a string, but does not represent a valid integer (bad character: '.')
stack traceback:
[C]: in function 'string.formatint'
test.pluto:3: in main chunk
[C]: in ?

string.partition

Splits a string once, on the first occurance of a separator.

Parameters

  1. The string to partition.
  2. The separator to partition the string by.
  3. A boolean specifying whether to search from the right. By default, this is false, which starts at the left.

Returns

Two strings: A substring for all the content before the first occurance of sep, and another substring for all the content afterwards.

A Basic Partition
pluto
local s = "hello world, what's up?"
local before, after = string.partition(s, " ")
assert(before == "hello")
assert(after == "world, what's up?")
Partioning From The Right
pluto
local s = "hello world, what's up?"
local before, after = string.partition(s, " ", true)
assert(before == "hello world, what's")
assert(after == "up?")

string.endswith

Checks if a string ends with a suffix.

Parameters

  1. The string to check.
  2. The substring suffix to check for.
pluto
local s = "hello world"
print(string.endswith(s, "world")) --> true

string.startswith

Checks if a string starts with a prefix.

Parameters

  1. The string to check.
  2. The substring prefix to check for.
pluto
local s = "hello world"
print(string.startswith(s, "hello")) --> true

string.tohex

Converts a (binary) string to a hex representation.

Parameters

  1. The string to convert.
  2. An optional bool to indicate that spaces should be used.
  3. An optional bool to indicate that the result should be upper-cased.

Returns

A new string.

pluto
print("XYZ":tohex()) --> 58595a
print("XYZ":tohex(true)) --> 58 59 5a
print("XYZ":tohex(false, true)) --> 58595A
print("XYZ":tohex(true, true)) --> 58 59 5A

string.fromhex

Converts a hex string to binary.

Parameters

  1. The string to convert.

Returns

A new string.

pluto
print("58595a":fromhex()) --> XYZ
print("58 59 5A":fromhex()) --> XYZ
- + \ No newline at end of file diff --git a/docs/Runtime Environment/Table.html b/docs/Runtime Environment/Table.html index f67b40cf..da16831b 100644 --- a/docs/Runtime Environment/Table.html +++ b/docs/Runtime Environment/Table.html @@ -4,13 +4,13 @@ Table | Pluto - +

Table

This page documents the changes & additions to the table library in Pluto, which is built on top of Lua 5.4's.


table.sort

This function was modified to return the input table instead of nil, such that:

pluto
local t = { 3, 2, 1 }
t = t:sort(...)

Will not result in t becoming nil.

table.sorted

Copying variant of table.sort; returns a new table instead of modifying the input table. Note that nested tables will not be copied.


table.size

Returns the number of elements in the table, counting both the array part and hash part.

Parameters

  1. The table to check.
pluto
local t = { 1, 2, 3, ["foo"] = "bar" }
print(t:size()) --> 4

table.clear

Remove all elements from the table.

Parameters

  1. The table to clear.
pluto
local t = { 1, 2, 3, ["foo"] = "bar" }
print(t:size()) --> 4
t:clear()
print(t:size()) --> 0

table.freeze

Freezes a table to prevent modification.

Parameters

  1. The table to freeze

Returns

The input table.

pluto
local t = table.freeze({...})
-- `table.freeze(t)` on another line will work fine too.
t.key = "value" -- Fails.

table.isfrozen

Checks if this table is frozen.

Parameters

  1. The table to check.
pluto
local t = {}
table.freeze(t)
assert(table.isfrozen(t) == true)

table.contains

Checks if this table contains an element.

Parameters

  1. The table to check.
  2. The element to check for.

Returns

The index or key if found, otherwise nil.

pluto
local t = { 1, 2, 3, 4, 5, 6, key = "value" }
assert(table.contains(t, 4) == 4)
assert(table.contains(t, "value") == "key")
assert(table.contains(t, "nothing") == nil)

table.find

Search a table for an element, returning its value.

Parameters

  1. The table to check.
  2. The callback function responsible for checking each element.

Returns

The element if found, otherwise nil.

pluto
local items = {
{ id = 1, name = "Apple" },
{ id = 2, name = "Banana" },
}
print(items:find(|item| -> item.id == 1).name) --> Apple

table.findkey, table.findindex

Search a table for an element, returning its key/index.

Parameters

  1. The table to check.
  2. The callback function responsible for checking each element.

Returns

The key/index if found, otherwise nil.

pluto
local fruit = { "apple", "banana", "orange" }
print(fruit:findkey(|x| -> x == "banana")) --> 2
print(fruit[2]) --> banana

table.reverse

Reverses the array elements of a table.

Parameters

  1. The table to reverse.

Returns

The input table.

pluto
local t = { 1, 2, hello = "world", 3, 4, 5, key = "value" }
print(dumpvar(t))
local same = t:reverse()
assert(same == t)
print(dumpvar(t))
--[[
Before:
{
[1] = 1,
[2] = 2,
[3] = 3,
[4] = 4,
[5] = 5,
["key"] = string(5) "value",
["hello"] = string(5) "world",
}
After:
{
[1] = 5,
[2] = 4,
[3] = 3,
[4] = 2,
[5] = 1,
["key"] = string(5) "value",
["hello"] = string(5) "world",
}
--]]

table.reversed

Copying variant of table.reverse; returns a new table instead of modifying the input table. Note that nested tables will not be copied.


table.reorder

Reorders the array portion of a table so it becomes a continuous array with no holes.

Parameters

  1. The table.

Returns

The input table.

pluto
local assert = require("assert")
local t1 = { 1, nil, 2, nil, nil, 3, nil, 4 }
assert.equal(t1:reorder(), { 1, 2, 3, 4 })

table.reordered

Copying variant of table.reorder; returns a new table instead of modifying the input table. Note that nested tables will not be copied.


table.foreach

Note that this function is not the same as the Lua function that was deprecated/removed in 5.1.

Parameters

  1. The table.
  2. The callback to be called for every element.
  3. An optional bool if the callback function also takes a key (|k, v|) as opposed to only a value (|v|).
pluto
local t = { 1, 2, 3 }
t:foreach(print)
--> 1
--> 2
--> 3

table.filter

Filters away keys (both array and non-array) that fail to meet the condition established by callback. Elimination is done by setting the value to nil, consider using table.reorder if you want a continuous array after filtering.

Parameters

  1. The table.
  2. The callback responsible for deciding which keys to keep or remove. This should return false or nil if you want the key to be eliminated.
  3. An optional bool if the callback function also takes a key (|k, v|) as opposed to only a value (|v|).

Returns

The input table.

pluto
data = { 1, 2, 3, 4, 5 }
data:filter(|v| -> v % 2 ~= 0):reorder():concat(" ") |> print -- "1 3 5"
data = { 2, 2, 3, 4, 4 }
data:filter(|k, v| -> k == v, true):reorder():concat(" ") |> print -- "2 3 4"

table.filtered

Copying variant of table.filter; returns a new table instead of modifying the input table. Note that nested tables will not be copied.


table.map

Remaps every key to a new value, provided by the callback function.

Parameters

  1. The table.
  2. The callback responsible for producing the updated values.
  3. An optional bool if the callback function also takes a key (|k, v|) as opposed to only a value (|v|).

Returns

The input table.

pluto
data = "41 20 68"
data:split(" "):map(tonumber):map(|v| -> v + 1):concat(" ") |> print -- "42 21 69"
data = "10 15 10"
data:split(" "):map(tonumber):map(|k, v| -> k * v, true):concat(" ") |> print -- "10 30 30"

In this example, we first use the tonumber function to turn the strings into numbers, then add 1 to them. (Although the first step is not needed in Lua/Pluto since the + operator would take care of it, it is used here for demonstration purposes.)

table.mapped

Copying variant of table.map; returns a new table instead of modifying the input table. Note that nested tables will not be copied.


table.reduce

For every value stored in the table, computes accumulator = f(value, accumulator), returning the accumulator at the end.

Parameters

  1. The table.
  2. The callback responsible for producing the updated accumulator.
  3. The initial value of accumulator. If absent, the accumulator is initialized with 0.

Returns

The accumulator.

pluto
local t = { 1, 2, 3 }
t:reduce(|value, accumulator| -> value + accumulator) |> print --> 6

table.min

Returns the smallest value stored in the table.

Parameters

  1. The table.
pluto
local t = { 1, 2, 3 }
print(t:min()) --> 1

This is identical to :reduce(math.min, math.maxinteger).

table.max

Returns the largest value stored in the table.

Parameters

  1. The table.
pluto
local t = { 1, 2, 3 }
print(t:max()) --> 3

This is identical to :reduce(math.max, math.mininteger).


table.checkall

Runs the given function against all elements, returning true if all of them match.

Parameters

  1. The table.
  2. The callback responsible for checking each element.
pluto
print({ 2, 4, 6 }:checkall(|x| -> x % 2 == 0) ? "All are even" : "Some are odd") --> All are even
print({ 1, 2, 3 }:checkall(|x| -> x % 2 == 0) ? "All are even" : "Some are odd") --> Some are odd

table.keys

Returns a new array-like table containing all keys from the table.

Parameters

  1. The table.
pluto
local t = {
["key1"] = "value1",
["key2"] = "value2",
"sequence",
"sequence sequence"
}
t:keys() -- { 1, 2, "key1", "key2" }

table.countvalues

Returns a key-value based table which describes how many times a value appears inside of a table.

Parameters

  1. The table
pluto
local t = {
1,
2, 2
3, 3, 3,
4, 4, 4, 4
["key1"] = "value"
["key2"] = "value"
}
t:countvalues() -- { [1] = 1, [2] = 2, [3] = 3, [4] = 4, ["value"] = 2 }

table.chunk

Generates a new table which collects the values of the input and represents them in chunks of a specified size.

Parameters

  1. The table.
  2. The desired size of each chunk.

Errors

An error is thrown if size is not greater than zero.

pluto
local t = {
1,
2,
3,
["key"] = "hello",
["other key"] = "world"
}
t:chunk(3) -- { { 1, 2, 3 }, { "hello", "world" } }

table.back

Returns the last element of a table. This is functionally identical to t[#t].

Parameters

  1. The table.
pluto
local t = { "a", "b", "c" }
print(t[#t]) --> "c"
-- Now can be fit into one line.
print({ "a", "b", "c" }:back()) --> c

table.slice

Returns a new table composed of the elements between the specified range. This is intended to be used on sequences.

Parameters

  1. The table.
  2. The starting index.
  3. The ending index. This is optional. By default, this is the length of the table.
pluto
local t = { 1, 2, 3, 4, 5 }
t:slice(3) -- { 3, 4, 5 }
t:slice(2, 4) -- { 2, 3, 4 }

table.modget

Returns an element by index with wrap-around.

Parameters

  1. The table.
  2. The index to get.
pluto
local mask = { 0xf0, 0x0f }
local data = { 0x11, 0x22, 0x33, 0x44 }
for i, v in data do
-- Old way: data[i] = data[i] ~ mask[((i - 1) % #mask) + 1]
data[i] = data[i] ~ mask:modget(i)
end
assert(data[1] == 0x11 ~ 0xf0)
assert(data[2] == 0x22 ~ 0x0f)
assert(data[3] == 0x33 ~ 0xf0)
assert(data[4] == 0x44 ~ 0x0f)

table.modset

Updates an element by index with wrap-around.

Parameters

  1. The table.
  2. The index to set.
  3. The value to set.
pluto
local test = { 1, 2, 3 }
test:modset(5, 5)
test:modset(6, 6)
assert(test[1] == 1)
assert(test[2] == 5)
assert(test[3] == 6)
- + \ No newline at end of file diff --git a/docs/Runtime Environment/URL.html b/docs/Runtime Environment/URL.html index 5f9ba964..b8d1c292 100644 --- a/docs/Runtime Environment/URL.html +++ b/docs/Runtime Environment/URL.html @@ -4,13 +4,13 @@ URL | Pluto - +

URL

Must be included via require.


url.encode

Returns a URL-encoded string.

Parameters

  1. The string to be encoded.
pluto
local url = require"pluto:url"
print("https://google.com/search?q="..url.encode("Pluto, a superset of Lua"))
--> https://google.com/search?q=Pluto%2C%20a%20superset%20of%20Lua

url.decode

Returns a plain string from URL-decoding the input string.

Parameters

  1. The string to be decoded.
pluto
local url = require"pluto:url"
print(url.decode("Pluto%2C%20a%20superset%20of%20Lua")) -- "Pluto, a superset of Lua"

url.parse

Splits a URL into its constituent parts.

Parameters

  1. The URL to be dissected.
pluto
local url = require"pluto:url"
print(dumpvar(url.parse("http://username:password@hostname:9090/path?arg=value#anchor")))
--> {
--> ["scheme"] = string(4) "http",
--> ["user"] = string(8) "username",
--> ["pass"] = string(8) "password",
--> ["host"] = string(8) "hostname",
--> ["port"] = 9090,
--> ["path"] = string(5) "/path",
--> ["query"] = string(9) "arg=value",
--> ["fragment"] = string(6) "anchor",
--> }
- + \ No newline at end of file diff --git a/docs/Runtime Environment/Vector3.html b/docs/Runtime Environment/Vector3.html index 0b83d75b..cc346443 100644 --- a/docs/Runtime Environment/Vector3.html +++ b/docs/Runtime Environment/Vector3.html @@ -4,13 +4,13 @@ Vector3 | Pluto - +

Vector3

Must be included via require.


__construct

The constructor takes up to 3 arguments:

pluto
local vector3 = require "pluto:vector3"
print(new vector3()) --> vector3(0, 0, 0)
print(new vector3(1)) --> vector3(1, 1, 1)
print(new vector3(1, 2)) --> vector3(1, 2, 0)
print(new vector3(1, 2, 3)) --> vector3(1, 2, 3)

There is also a shorthand for this:

pluto
local vector3 = require "pluto:vector3"
print(vector3(1, 2, 3)) --> vector3(1, 2, 3)

__tostring

As seen above, the __tostring metamethod provides a string representation of the class.

__add, __sub, __mul, __div

Vector3 instances support arithmetic operations. The right-hand side can either be a Vector3 instance or a number. They create a new instance for the result.

pluto
local vector3 = require "pluto:vector3"
print(new vector3(1) + new vector3(2)) --> vector3(3, 3, 3)
print(new vector3(0, 0.6, 0.4) * 3) --> vector3(0, 1.8, 1.2)

__eq

Vector3 instances can effortlessly be compared to each other.

pluto
local vector3 = require "pluto:vector3"
print(new vector3(2, 2, 2) == new vector3(2)) --> true
print(new vector3(1, 2, 3) == new vector3(2)) --> false

__len, magnitude

To get the magnitude of a vector, you can either use the unary length operator (#) or call the magnitude method:

pluto
local vec = new (require"pluto:vector3") (1, 2, 3)
print(#vec) --> 3.7416573867739
print(vec:magnitude()) --> 3.7416573867739

sum

Computes the sum of the x, y and z fields.

pluto
local vec = new (require"pluto:vector3") (1, 2, 3)
print(vec:sum()) --> 6

min

Returns the value of axis with the lowest value.

pluto
local vec = new (require"pluto:vector3") (1, 2, 3)
print(vec:min()) --> 1

max

Returns the value of axis with the highest value.

pluto
local vec = new (require"pluto:vector3") (1, 2, 3)
print(vec:max()) --> 3

dot

Computes the dot product with the Vector3 given as an argument.

pluto
local vector3 = require "pluto:vector3"
print(new vector3(1):dot(new vector3(2))) --> 6

abs

Returns a new Vector3 instance with each axis being an absolute value.

pluto
local vector3 = require "pluto:vector3"
print(new vector3(-1, -2, 3):abs()) --> vector3(1, 2, 3)

normalized, normalised

Returns a new Vector3 instance that is a unit vector equivalent.

pluto
local vector3 = require "pluto:vector3"
print(new vector3(0, 3, 0):normalized()) --> vector3(0.0, 1.0, 0.0)

torot

Returns a rotation vector based on the direction given by the current vector.

You can specify the up-axis and handedness of the coordinate system. By default, a left-handed Y-up system is used.

The up-axis also determines which axis contains which value:

  • Y-Up: Pitch, Yaw, Roll
  • Z-Up: Pitch, Roll, Yaw
pluto
local vector3 = require "pluto:vector3"
print(new vector3(0, 1, 0):torot("y")) -- Y up. Pointing up -> vector3(90.0, 0.0, 0)
print(new vector3(0, 0, -1):torot("z")) -- Z up. Pointing down -> vector3(-90.0, 0, -0.0)
print(new vector3(1, 0, 0):torot("yr")) -- Y up, right-handed. Pointing right -> vector3(0.0, -90.0, 0)
print(new vector3(1, 0, 0):torot("yl")) -- Y up, left-handed. Pointing right -> vector3(0.0, 90.0, 0)
print(new vector3(1, 0, 0):torot("zr")) -- Z up, right-handed. Pointing right -> vector3(0.0, 0, 90.0)
print(new vector3(0, 0, 1):torot("y")) -- Y up. Pointing forward -> vector3(0.0, 0.0, 0)
print(new vector3(0, 0, -1):torot("y")) -- Y up. Pointing backward -> vector3(0.0, 180.0, 0)

lookat

Returns a rotation vector based on the position given by the current vector and argument.

pluto
local v3 = require "pluto:vector3"
print(new v3(0):lookat(new v3(0, 1, 0), "y")) -- Y up. From origin to a point above -> vector3(90.0, 0.0, 0)

todir

Returns a direction vector based on the rotation given by the current vector.

pluto
local vector3 = require "pluto:vector3"
print(new vector3(90, 0, 0):todir("y")) -- Y up. Pointing up -> vector3(0.0, 1.0, 6.1232339957368e-17)
print(new vector3(0, 90, 0):todir("yl")) -- Y up, left-handed. Pointing right -> vector3(1.0, 0.0, 6.1232339957368e-17)
print(new vector3(0, 90, 0):todir("yr")) -- Y up, right-handed. Pointing right -> vector3(-1.0, 0.0, 6.1232339957368e-17)
- + \ No newline at end of file diff --git a/docs/Runtime Environment/XML.html b/docs/Runtime Environment/XML.html index a580f819..358f7c25 100644 --- a/docs/Runtime Environment/XML.html +++ b/docs/Runtime Environment/XML.html @@ -4,13 +4,13 @@ XML | Pluto - +

XML

Must be included via require.


xml.encode

Returns a string of XML.

Parameters

  1. data — A table or string to encode as XML.
  2. pretty — Whether to return a human-readable string of XML. Defaults to false.
pluto
local xml = require "pluto:xml"
print(xml.encode({
tag = "root",
children = {
{
tag = "entry",
attributes = {
["type"] = "primary"
},
children = {
"Text node"
}
},
{
tag = "entry"
}
}
}, true))
--> <root>
--> <entry type="primary">
--> Text node
--> </entry>
--> <entry></entry>
--> </root>

xml.decode

Returns a table representing the XML data.

Parameters

  1. data — The XML data to decode.
  2. parser — Which parser to use against the data. Can be "html", "xml" (default), or "lax" (XML but accepts attributes without =).
pluto
local xml = require "pluto:xml"
local root = xml.decode([[
<entries>
<entry type="primary">
<name>primary</name>
</entry>
</entries>
]])
print(dumpvar(root))
--> {
--> ["tag"] = string(7) "entries",
--> ["children"] = {
--> [1] = {
--> ["tag"] = string(5) "entry",
--> ["attributes"] = {
--> ["type"] = string(7) "primary",
--> },
--> ["children"] = {
--> [1] = {
--> ["tag"] = string(4) "name",
--> ["children"] = {
--> [1] = string(7) "primary",
--> },
--> },
--> },
--> },
--> },
--> }

For ease of use, the returned tables have an __index metamethod:

pluto
-- root is <entries>, so its first child is <entry>.
-- we make use of the metamethod to get to <name>:
print(dumpvar(root.children[1].name))
--> {
--> ["tag"] = string(4) "name",
--> ["children"] = {
--> [1] = string(7) "primary",
--> },
--> }

If there is no single root element, a "body" element is implied as the root:

pluto
local xml = require "pluto:xml"
print(dumpvar(xml.decode([[
<entry/>
<entry/>
]])))
--> {
--> ["tag"] = string(4) "body",
--> ["children"] = {
--> [1] = {
--> ["tag"] = string(5) "entry",
--> },
--> [2] = {
--> ["tag"] = string(5) "entry",
--> },
--> },
--> }
- + \ No newline at end of file diff --git a/docs/category/new-features.html b/docs/category/new-features.html index 47cd12e1..e70d49d6 100644 --- a/docs/category/new-features.html +++ b/docs/category/new-features.html @@ -4,13 +4,13 @@ New Features | Pluto - +

New Features

New features implemented by Pluto.

- + \ No newline at end of file diff --git a/docs/category/optimizations.html b/docs/category/optimizations.html index 3a2a4533..0df8e69b 100644 --- a/docs/category/optimizations.html +++ b/docs/category/optimizations.html @@ -4,13 +4,13 @@ Optimizations | Pluto - + - + \ No newline at end of file diff --git a/docs/category/qol-improvements.html b/docs/category/qol-improvements.html index f72a990e..8b5cf4d8 100644 --- a/docs/category/qol-improvements.html +++ b/docs/category/qol-improvements.html @@ -4,13 +4,13 @@ QoL Improvements | Pluto - +
- + \ No newline at end of file diff --git a/docs/category/runtime-environment.html b/docs/category/runtime-environment.html index 0a822dc4..048a57fd 100644 --- a/docs/category/runtime-environment.html +++ b/docs/category/runtime-environment.html @@ -4,13 +4,13 @@ Runtime Environment | Pluto - +

Runtime Environment

Pluto's changes to the runtime environment.

- + \ No newline at end of file diff --git a/index.html b/index.html index ebaf7fcb..de1040e1 100644 --- a/index.html +++ b/index.html @@ -4,13 +4,13 @@ Pluto | Pluto - +

Pluto

A superset of Lua 5.4 with a focus on general-purpose programming.

New Syntax

Pluto implements various popular syntaxes that are absent in Lua, such as switch statements, compound operators, ternary expressions, etc.

Compatibility

Pluto is remarkably compatible with Lua's source & bytecode. The only conflict is how our new keywords may conflict with identifiers, however we offer "Compatibility Mode" to resolve this issue.

Larger Standard Library

Dozens of new string functions, table functions, portable filesystem functions, assertion libraries for unit testing, hashing algorithms, JSON, Base64, URL encoding, Vector3, and more.

- + \ No newline at end of file diff --git a/search-index.json b/search-index.json index b2d3609d..fa01fcc7 100644 --- a/search-index.json +++ b/search-index.json @@ -1 +1 @@ -[{"documents":[{"i":1,"t":"Changelog","u":"/docs/Changelog","b":["Documentation"]},{"i":77,"t":"For Integrators","u":"/docs/For Integrators","b":["Documentation"]},{"i":96,"t":"Editor Integration","u":"/docs/Editor Integration","b":["Documentation"]},{"i":100,"t":"Compatibility","u":"/docs/Compatibility","b":["Documentation"]},{"i":112,"t":"Getting Started","u":"/docs/Getting Started","b":["Documentation"]},{"i":137,"t":"What is Pluto?","u":"/docs/Introduction","b":["Documentation"]},{"i":141,"t":"Break Statement","u":"/docs/New Features/Break Statement","b":["Documentation","New Features"]},{"i":143,"t":"Compile-Time Evaluation","u":"/docs/New Features/Compile-Time Evaluation","b":["Documentation","New Features"]},{"i":151,"t":"Continue Statement","u":"/docs/New Features/Continue Statement","b":["Documentation","New Features"]},{"i":157,"t":"Compiler Warnings","u":"/docs/New Features/Compiler Warnings","b":["Documentation","New Features"]},{"i":194,"t":"Default Arguments","u":"/docs/New Features/Default Arguments","b":["Documentation","New Features"]},{"i":196,"t":"Destructuring","u":"/docs/New Features/Destructuring","b":["Documentation","New Features"]},{"i":206,"t":"Explicit Globals","u":"/docs/New Features/Explicit Globals","b":["Documentation","New Features"]},{"i":210,"t":"Export Modifier","u":"/docs/New Features/Export Modifier","b":["Documentation","New Features"]},{"i":214,"t":"Enumerations","u":"/docs/New Features/Enumerations","b":["Documentation","New Features"]},{"i":224,"t":"For-As Loop","u":"/docs/New Features/For-As Loop","b":["Documentation","New Features"]},{"i":226,"t":"Lambda Expressions","u":"/docs/New Features/Lambda Expressions","b":["Documentation","New Features"]},{"i":228,"t":"In Expressions","u":"/docs/New Features/In Expressions","b":["Documentation","New Features"]},{"i":232,"t":"Named Varargs","u":"/docs/New Features/Named Varargs","b":["Documentation","New Features"]},{"i":234,"t":"Named Arguments","u":"/docs/New Features/Named Arguments","b":["Documentation","New Features"]},{"i":240,"t":"Nodiscard Functions","u":"/docs/New Features/Nodiscard Functions","b":["Documentation","New Features"]},{"i":242,"t":"Numeral Parsing","u":"/docs/New Features/Numeral Parsing","b":["Documentation","New Features"]},{"i":248,"t":"Safe Navigation","u":"/docs/New Features/Safe Navigation","b":["Documentation","New Features"]},{"i":253,"t":"String Indexing","u":"/docs/New Features/String Indexing","b":["Documentation","New Features"]},{"i":255,"t":"String Interpolation","u":"/docs/New Features/String Interpolation","b":["Documentation","New Features"]},{"i":257,"t":"Object-Oriented Programming","u":"/docs/New Features/Object-Oriented Programming","b":["Documentation","New Features"]},{"i":281,"t":"Table Freezing","u":"/docs/New Features/Table Freezing","b":["Documentation","New Features"]},{"i":285,"t":"Switch Blocks","u":"/docs/New Features/Switch Blocks","b":["Documentation","New Features"]},{"i":295,"t":"Type Hinting","u":"/docs/New Features/Type Hinting","b":["Documentation","New Features"]},{"i":299,"t":"Try-Catch Statement","u":"/docs/New Features/Try-Catch Statement","b":["Documentation","New Features"]},{"i":303,"t":"Ternary Expressions","u":"/docs/New Features/Ternary Expressions","b":["Documentation","New Features"]},{"i":309,"t":"New Operators","u":"/docs/New Operators","b":["Documentation"]},{"i":330,"t":"For Loops","u":"/docs/Optimizations/For Loops","b":["Documentation","Optimizations"]},{"i":334,"t":"Jump Table","u":"/docs/Optimizations/Jump Table","b":["Documentation","Optimizations"]},{"i":336,"t":"Special Arithmetic","u":"/docs/Optimizations/Special Arithmetic","b":["Documentation","Optimizations"]},{"i":338,"t":"Generalized Iteration","u":"/docs/QoL Improvements/Generalized Iteration","b":["Documentation","QoL Improvements"]},{"i":340,"t":"Table Length","u":"/docs/Optimizations/Table Length","b":["Documentation","Optimizations"]},{"i":342,"t":"Boolean Concatenation","u":"/docs/QoL Improvements/Boolean Concatenation","b":["Documentation","QoL Improvements"]},{"i":344,"t":"Optional Parentheses","u":"/docs/QoL Improvements/Optional Parentheses","b":["Documentation","QoL Improvements"]},{"i":346,"t":"Reserved Identifiers","u":"/docs/QoL Improvements/Reserved Identifiers","b":["Documentation","QoL Improvements"]},{"i":348,"t":"Removed Locals Limit","u":"/docs/QoL Improvements/Removed Locals Limit","b":["Documentation","QoL Improvements"]},{"i":350,"t":"Syntax Errors","u":"/docs/QoL Improvements/Syntax Errors","b":["Documentation","QoL Improvements"]},{"i":358,"t":"Universal Block Opener","u":"/docs/QoL Improvements/Universal Block Opener","b":["Documentation","QoL Improvements"]},{"i":360,"t":"Assert","u":"/docs/Runtime Environment/Assert","b":["Documentation","Runtime Environment"]},{"i":394,"t":"Base32","u":"/docs/Runtime Environment/Base32","b":["Documentation","Runtime Environment"]},{"i":400,"t":"Base64","u":"/docs/Runtime Environment/Base64","b":["Documentation","Runtime Environment"]},{"i":410,"t":"Bigint","u":"/docs/Runtime Environment/Bigint","b":["Documentation","Runtime Environment"]},{"i":436,"t":"Canvas","u":"/docs/Runtime Environment/Canvas","b":["Documentation","Runtime Environment"]},{"i":460,"t":"CaT","u":"/docs/Runtime Environment/CaT","b":["Documentation","Runtime Environment"]},{"i":466,"t":"Coroutine","u":"/docs/Runtime Environment/Coroutine","b":["Documentation","Runtime Environment"]},{"i":472,"t":"Exception","u":"/docs/Runtime Environment/Exception","b":["Documentation","Runtime Environment"]},{"i":474,"t":"Crypto","u":"/docs/Runtime Environment/Crypto","b":["Documentation","Runtime Environment"]},{"i":561,"t":"FFI","u":"/docs/Runtime Environment/FFI","b":["Documentation","Runtime Environment"]},{"i":585,"t":"Global & Base","u":"/docs/Runtime Environment/Global & Base","b":["Documentation","Runtime Environment"]},{"i":607,"t":"HTTP","u":"/docs/Runtime Environment/HTTP","b":["Documentation","Runtime Environment"]},{"i":615,"t":"JSON","u":"/docs/Runtime Environment/JSON","b":["Documentation","Runtime Environment"]},{"i":621,"t":"IO","u":"/docs/Runtime Environment/IO","b":["Documentation","Runtime Environment"]},{"i":655,"t":"Math","u":"/docs/Runtime Environment/Math","b":["Documentation","Runtime Environment"]},{"i":663,"t":"Regex","u":"/docs/Runtime Environment/Regex","b":["Documentation","Runtime Environment"]},{"i":669,"t":"Scheduler","u":"/docs/Runtime Environment/Scheduler","b":["Documentation","Runtime Environment"]},{"i":683,"t":"OS","u":"/docs/Runtime Environment/OS","b":["Documentation","Runtime Environment"]},{"i":691,"t":"Socket","u":"/docs/Runtime Environment/Socket","b":["Documentation","Runtime Environment"]},{"i":727,"t":"Table","u":"/docs/Runtime Environment/Table","b":["Documentation","Runtime Environment"]},{"i":787,"t":"String","u":"/docs/Runtime Environment/String","b":["Documentation","Runtime Environment"]},{"i":837,"t":"XML","u":"/docs/Runtime Environment/XML","b":["Documentation","Runtime Environment"]},{"i":843,"t":"URL","u":"/docs/Runtime Environment/URL","b":["Documentation","Runtime Environment"]},{"i":851,"t":"Vector3","u":"/docs/Runtime Environment/Vector3","b":["Documentation","Runtime Environment"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,4.515]],["t/77",[1,3.911]],["t/96",[1,3.007,2,3.472]],["t/100",[3,4.515]],["t/112",[4,3.472,5,3.472]],["t/137",[6,4.515]],["t/141",[7,3.472,8,2.701]],["t/143",[9,2.443,10,2.82,11,2.82]],["t/151",[8,2.701,12,3.472]],["t/157",[9,3.007,13,3.472]],["t/194",[14,3.472,15,3.007]],["t/196",[16,4.515]],["t/206",[17,3.472,18,3.007]],["t/210",[19,3.472,20,3.472]],["t/214",[21,4.515]],["t/224",[22,3.911]],["t/226",[23,3.472,24,2.701]],["t/228",[24,3.512]],["t/232",[25,3.007,26,3.472]],["t/234",[15,3.007,25,3.007]],["t/240",[27,3.472,28,3.472]],["t/242",[29,3.472,30,3.472]],["t/248",[31,3.472,32,3.472]],["t/253",[33,2.701,34,3.472]],["t/255",[33,2.701,35,3.472]],["t/257",[36,2.82,37,2.82,38,2.82]],["t/281",[39,2.472,40,3.472]],["t/285",[41,3.472,42,3.007]],["t/295",[43,3.472,44,3.472]],["t/299",[8,2.194,45,2.82,46,2.82]],["t/303",[24,2.701,47,3.472]],["t/309",[48,3.472,49,3.472]],["t/330",[22,3.911]],["t/334",[39,2.472,50,3.472]],["t/336",[51,3.472,52,3.472]],["t/338",[53,3.472,54,3.472]],["t/340",[39,2.472,55,3.472]],["t/342",[56,3.472,57,3.472]],["t/344",[58,3.472,59,3.472]],["t/346",[60,3.472,61,3.472]],["t/348",[62,2.82,63,2.82,64,2.82]],["t/350",[65,3.472,66,3.472]],["t/358",[42,2.443,67,2.82,68,2.82]],["t/360",[69,4.515]],["t/394",[70,4.515]],["t/400",[71,4.515]],["t/410",[72,4.515]],["t/436",[73,4.515]],["t/460",[74,4.515]],["t/466",[75,4.515]],["t/472",[76,4.515]],["t/474",[77,4.515]],["t/561",[78,4.515]],["t/585",[18,2.443,79,2.82,80,2.82]],["t/607",[81,4.515]],["t/615",[82,4.515]],["t/621",[83,4.515]],["t/655",[84,4.515]],["t/663",[85,4.515]],["t/669",[86,4.515]],["t/683",[87,4.515]],["t/691",[88,4.515]],["t/727",[39,3.215]],["t/787",[33,3.512]],["t/837",[89,4.515]],["t/843",[90,4.515]],["t/851",[91,4.515]]],"invertedIndex":[["",{"_index":79,"t":{"585":{"position":[[7,1]]}}}],["argument",{"_index":15,"t":{"194":{"position":[[8,9]]},"234":{"position":[[6,9]]}}}],["arithmet",{"_index":52,"t":{"336":{"position":[[8,10]]}}}],["assert",{"_index":69,"t":{"360":{"position":[[0,6]]}}}],["base",{"_index":80,"t":{"585":{"position":[[9,4]]}}}],["base32",{"_index":70,"t":{"394":{"position":[[0,6]]}}}],["base64",{"_index":71,"t":{"400":{"position":[[0,6]]}}}],["bigint",{"_index":72,"t":{"410":{"position":[[0,6]]}}}],["block",{"_index":42,"t":{"285":{"position":[[7,6]]},"358":{"position":[[10,5]]}}}],["boolean",{"_index":56,"t":{"342":{"position":[[0,7]]}}}],["break",{"_index":7,"t":{"141":{"position":[[0,5]]}}}],["canva",{"_index":73,"t":{"436":{"position":[[0,6]]}}}],["cat",{"_index":74,"t":{"460":{"position":[[0,3]]}}}],["catch",{"_index":46,"t":{"299":{"position":[[4,5]]}}}],["changelog",{"_index":0,"t":{"1":{"position":[[0,9]]}}}],["compat",{"_index":3,"t":{"100":{"position":[[0,13]]}}}],["compil",{"_index":9,"t":{"143":{"position":[[0,7]]},"157":{"position":[[0,8]]}}}],["concaten",{"_index":57,"t":{"342":{"position":[[8,13]]}}}],["continu",{"_index":12,"t":{"151":{"position":[[0,8]]}}}],["coroutin",{"_index":75,"t":{"466":{"position":[[0,9]]}}}],["crypto",{"_index":77,"t":{"474":{"position":[[0,6]]}}}],["default",{"_index":14,"t":{"194":{"position":[[0,7]]}}}],["destructur",{"_index":16,"t":{"196":{"position":[[0,13]]}}}],["editor",{"_index":2,"t":{"96":{"position":[[0,6]]}}}],["enumer",{"_index":21,"t":{"214":{"position":[[0,12]]}}}],["error",{"_index":66,"t":{"350":{"position":[[7,6]]}}}],["evalu",{"_index":11,"t":{"143":{"position":[[13,10]]}}}],["except",{"_index":76,"t":{"472":{"position":[[0,9]]}}}],["explicit",{"_index":17,"t":{"206":{"position":[[0,8]]}}}],["export",{"_index":19,"t":{"210":{"position":[[0,6]]}}}],["express",{"_index":24,"t":{"226":{"position":[[7,11]]},"228":{"position":[[3,11]]},"303":{"position":[[8,11]]}}}],["ffi",{"_index":78,"t":{"561":{"position":[[0,3]]}}}],["freez",{"_index":40,"t":{"281":{"position":[[6,8]]}}}],["function",{"_index":28,"t":{"240":{"position":[[10,9]]}}}],["gener",{"_index":53,"t":{"338":{"position":[[0,11]]}}}],["get",{"_index":4,"t":{"112":{"position":[[0,7]]}}}],["global",{"_index":18,"t":{"206":{"position":[[9,7]]},"585":{"position":[[0,6]]}}}],["hint",{"_index":44,"t":{"295":{"position":[[5,7]]}}}],["http",{"_index":81,"t":{"607":{"position":[[0,4]]}}}],["identifi",{"_index":61,"t":{"346":{"position":[[9,11]]}}}],["index",{"_index":34,"t":{"253":{"position":[[7,8]]}}}],["integr",{"_index":1,"t":{"77":{"position":[[4,11]]},"96":{"position":[[7,11]]}}}],["interpol",{"_index":35,"t":{"255":{"position":[[7,13]]}}}],["io",{"_index":83,"t":{"621":{"position":[[0,2]]}}}],["iter",{"_index":54,"t":{"338":{"position":[[12,9]]}}}],["json",{"_index":82,"t":{"615":{"position":[[0,4]]}}}],["jump",{"_index":50,"t":{"334":{"position":[[0,4]]}}}],["lambda",{"_index":23,"t":{"226":{"position":[[0,6]]}}}],["length",{"_index":55,"t":{"340":{"position":[[6,6]]}}}],["limit",{"_index":64,"t":{"348":{"position":[[15,5]]}}}],["local",{"_index":63,"t":{"348":{"position":[[8,6]]}}}],["loop",{"_index":22,"t":{"224":{"position":[[7,4]]},"330":{"position":[[4,5]]}}}],["math",{"_index":84,"t":{"655":{"position":[[0,4]]}}}],["modifi",{"_index":20,"t":{"210":{"position":[[7,8]]}}}],["name",{"_index":25,"t":{"232":{"position":[[0,5]]},"234":{"position":[[0,5]]}}}],["navig",{"_index":32,"t":{"248":{"position":[[5,10]]}}}],["new",{"_index":48,"t":{"309":{"position":[[0,3]]}}}],["nodiscard",{"_index":27,"t":{"240":{"position":[[0,9]]}}}],["numer",{"_index":29,"t":{"242":{"position":[[0,7]]}}}],["object",{"_index":36,"t":{"257":{"position":[[0,6]]}}}],["open",{"_index":68,"t":{"358":{"position":[[16,6]]}}}],["oper",{"_index":49,"t":{"309":{"position":[[4,9]]}}}],["option",{"_index":58,"t":{"344":{"position":[[0,8]]}}}],["orient",{"_index":37,"t":{"257":{"position":[[7,8]]}}}],["os",{"_index":87,"t":{"683":{"position":[[0,2]]}}}],["parenthes",{"_index":59,"t":{"344":{"position":[[9,11]]}}}],["pars",{"_index":30,"t":{"242":{"position":[[8,7]]}}}],["pluto",{"_index":6,"t":{"137":{"position":[[8,6]]}}}],["program",{"_index":38,"t":{"257":{"position":[[16,11]]}}}],["regex",{"_index":85,"t":{"663":{"position":[[0,5]]}}}],["remov",{"_index":62,"t":{"348":{"position":[[0,7]]}}}],["reserv",{"_index":60,"t":{"346":{"position":[[0,8]]}}}],["safe",{"_index":31,"t":{"248":{"position":[[0,4]]}}}],["schedul",{"_index":86,"t":{"669":{"position":[[0,9]]}}}],["socket",{"_index":88,"t":{"691":{"position":[[0,6]]}}}],["special",{"_index":51,"t":{"336":{"position":[[0,7]]}}}],["start",{"_index":5,"t":{"112":{"position":[[8,7]]}}}],["statement",{"_index":8,"t":{"141":{"position":[[6,9]]},"151":{"position":[[9,9]]},"299":{"position":[[10,9]]}}}],["string",{"_index":33,"t":{"253":{"position":[[0,6]]},"255":{"position":[[0,6]]},"787":{"position":[[0,6]]}}}],["switch",{"_index":41,"t":{"285":{"position":[[0,6]]}}}],["syntax",{"_index":65,"t":{"350":{"position":[[0,6]]}}}],["tabl",{"_index":39,"t":{"281":{"position":[[0,5]]},"334":{"position":[[5,5]]},"340":{"position":[[0,5]]},"727":{"position":[[0,5]]}}}],["ternari",{"_index":47,"t":{"303":{"position":[[0,7]]}}}],["time",{"_index":10,"t":{"143":{"position":[[8,4]]}}}],["tri",{"_index":45,"t":{"299":{"position":[[0,3]]}}}],["type",{"_index":43,"t":{"295":{"position":[[0,4]]}}}],["univers",{"_index":67,"t":{"358":{"position":[[0,9]]}}}],["url",{"_index":90,"t":{"843":{"position":[[0,3]]}}}],["vararg",{"_index":26,"t":{"232":{"position":[[6,7]]}}}],["vector3",{"_index":91,"t":{"851":{"position":[[0,7]]}}}],["warn",{"_index":13,"t":{"157":{"position":[[9,8]]}}}],["xml",{"_index":89,"t":{"837":{"position":[[0,3]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"0.10.0","u":"/docs/Changelog","h":"#0100","p":1},{"i":5,"t":"0.9.5","u":"/docs/Changelog","h":"#095","p":1},{"i":7,"t":"0.9.4","u":"/docs/Changelog","h":"#094","p":1},{"i":9,"t":"0.9.3","u":"/docs/Changelog","h":"#093","p":1},{"i":11,"t":"0.9.2","u":"/docs/Changelog","h":"#092","p":1},{"i":13,"t":"0.9.1","u":"/docs/Changelog","h":"#091","p":1},{"i":15,"t":"0.9.0","u":"/docs/Changelog","h":"#090","p":1},{"i":17,"t":"0.8.2","u":"/docs/Changelog","h":"#082","p":1},{"i":19,"t":"0.8.1","u":"/docs/Changelog","h":"#081","p":1},{"i":21,"t":"0.8.0","u":"/docs/Changelog","h":"#080","p":1},{"i":23,"t":"0.7.4","u":"/docs/Changelog","h":"#074","p":1},{"i":25,"t":"0.7.3","u":"/docs/Changelog","h":"#073","p":1},{"i":27,"t":"0.7.2","u":"/docs/Changelog","h":"#072","p":1},{"i":29,"t":"0.7.1","u":"/docs/Changelog","h":"#071","p":1},{"i":31,"t":"0.7.0","u":"/docs/Changelog","h":"#070","p":1},{"i":33,"t":"0.6.3","u":"/docs/Changelog","h":"#063","p":1},{"i":35,"t":"0.6.2","u":"/docs/Changelog","h":"#062","p":1},{"i":37,"t":"0.6.1","u":"/docs/Changelog","h":"#061","p":1},{"i":39,"t":"0.6.0","u":"/docs/Changelog","h":"#060","p":1},{"i":41,"t":"0.5.4","u":"/docs/Changelog","h":"#054","p":1},{"i":43,"t":"0.5.3","u":"/docs/Changelog","h":"#053","p":1},{"i":45,"t":"0.5.2","u":"/docs/Changelog","h":"#052","p":1},{"i":47,"t":"0.5.1","u":"/docs/Changelog","h":"#051","p":1},{"i":49,"t":"0.5.0","u":"/docs/Changelog","h":"#050","p":1},{"i":51,"t":"0.4.5","u":"/docs/Changelog","h":"#045","p":1},{"i":53,"t":"0.4.4","u":"/docs/Changelog","h":"#044","p":1},{"i":55,"t":"0.4.3","u":"/docs/Changelog","h":"#043","p":1},{"i":57,"t":"0.4.2","u":"/docs/Changelog","h":"#042","p":1},{"i":59,"t":"0.4.1","u":"/docs/Changelog","h":"#041","p":1},{"i":61,"t":"0.4.0","u":"/docs/Changelog","h":"#040","p":1},{"i":63,"t":"0.3.2","u":"/docs/Changelog","h":"#032","p":1},{"i":65,"t":"0.3.1","u":"/docs/Changelog","h":"#031","p":1},{"i":67,"t":"0.3.0","u":"/docs/Changelog","h":"#030","p":1},{"i":69,"t":"0.2.2","u":"/docs/Changelog","h":"#022","p":1},{"i":71,"t":"0.2.1","u":"/docs/Changelog","h":"#021","p":1},{"i":73,"t":"0.2.0","u":"/docs/Changelog","h":"#020","p":1},{"i":75,"t":"0.1.0","u":"/docs/Changelog","h":"#010","p":1},{"i":79,"t":"Content Moderation","u":"/docs/For Integrators","h":"#content-moderation","p":77},{"i":80,"t":"Compiled Code","u":"/docs/For Integrators","h":"#compiled-code","p":77},{"i":82,"t":"Custom Module Filters","u":"/docs/For Integrators","h":"#custom-module-filters","p":77},{"i":84,"t":"Prevent Loading of Binary Modules","u":"/docs/For Integrators","h":"#prevent-loading-of-binary-modules","p":77},{"i":86,"t":"Execution Time Limit","u":"/docs/For Integrators","h":"#execution-time-limit","p":77},{"i":88,"t":"Infinite Loop Prevention","u":"/docs/For Integrators","h":"#infinite-loop-prevention","p":77},{"i":90,"t":"VM Dumping","u":"/docs/For Integrators","h":"#vm-dumping","p":77},{"i":92,"t":"Configuration","u":"/docs/For Integrators","h":"#configuration","p":77},{"i":94,"t":"What it looks like","u":"/docs/For Integrators","h":"#what-it-looks-like","p":77},{"i":98,"t":"Installation","u":"/docs/Editor Integration","h":"#installation","p":96},{"i":102,"t":"New Keywords","u":"/docs/Compatibility","h":"#new-keywords","p":100},{"i":104,"t":"Compatibility Mode","u":"/docs/Compatibility","h":"#compatibility-mode","p":100},{"i":106,"t":"Compile-time Configuration (pluto_use)","u":"/docs/Compatibility","h":"#compile-time-configuration-pluto_use","p":100},{"i":108,"t":"Compatible Keywords","u":"/docs/Compatibility","h":"#compatible-keywords","p":100},{"i":110,"t":"Default Table Metatable","u":"/docs/Compatibility","h":"#default-table-metatable","p":100},{"i":114,"t":"Write Pluto Online","u":"/docs/Getting Started","h":"#write-pluto-online","p":112},{"i":116,"t":"Prebuilt Binaries","u":"/docs/Getting Started","h":"#prebuilt-binaries","p":112},{"i":118,"t":"Packages","u":"/docs/Getting Started","h":"#packages","p":112},{"i":119,"t":"Chocolatey","u":"/docs/Getting Started","h":"#chocolatey","p":112},{"i":121,"t":"APT Repository","u":"/docs/Getting Started","h":"#apt-repository","p":112},{"i":123,"t":"AUR","u":"/docs/Getting Started","h":"#aur","p":112},{"i":125,"t":"Termux","u":"/docs/Getting Started","h":"#termux","p":112},{"i":127,"t":"Compile Pluto Yourself","u":"/docs/Getting Started","h":"#compile-pluto-yourself","p":112},{"i":129,"t":"PHP Scripts","u":"/docs/Getting Started","h":"#php-scripts","p":112},{"i":131,"t":"Visual Studio","u":"/docs/Getting Started","h":"#visual-studio","p":112},{"i":133,"t":"Make","u":"/docs/Getting Started","h":"#make","p":112},{"i":135,"t":"Sun","u":"/docs/Getting Started","h":"#sun","p":112},{"i":139,"t":"What does Pluto aspire to be?","u":"/docs/Introduction","h":"#what-does-pluto-aspire-to-be","p":137},{"i":145,"t":"Function calls","u":"/docs/New Features/Compile-Time Evaluation","h":"#function-calls","p":143},{"i":147,"t":"Variables","u":"/docs/New Features/Compile-Time Evaluation","h":"#variables","p":143},{"i":149,"t":"Conditionals","u":"/docs/New Features/Compile-Time Evaluation","h":"#conditionals","p":143},{"i":153,"t":"Continue's Only Argument","u":"/docs/New Features/Continue Statement","h":"#continues-only-argument","p":151},{"i":155,"t":"Using Compatibility Mode?","u":"/docs/New Features/Continue Statement","h":"#using-compatibility-mode","p":151},{"i":159,"t":"Warning Types","u":"/docs/New Features/Compiler Warnings","h":"#warning-types","p":157},{"i":160,"t":"var-shadow","u":"/docs/New Features/Compiler Warnings","h":"#var-shadow","p":157},{"i":162,"t":"global-shadow","u":"/docs/New Features/Compiler Warnings","h":"#global-shadow","p":157},{"i":164,"t":"field-shadow","u":"/docs/New Features/Compiler Warnings","h":"#field-shadow","p":157},{"i":166,"t":"type-mismatch","u":"/docs/New Features/Compiler Warnings","h":"#type-mismatch","p":157},{"i":168,"t":"unreachable-code","u":"/docs/New Features/Compiler Warnings","h":"#unreachable-code","p":157},{"i":170,"t":"excessive-arguments","u":"/docs/New Features/Compiler Warnings","h":"#excessive-arguments","p":157},{"i":172,"t":"bad-practice","u":"/docs/New Features/Compiler Warnings","h":"#bad-practice","p":157},{"i":174,"t":"possible-typo","u":"/docs/New Features/Compiler Warnings","h":"#possible-typo","p":157},{"i":176,"t":"non-portable-code","u":"/docs/New Features/Compiler Warnings","h":"#non-portable-code","p":157},{"i":178,"t":"non-portable-name","u":"/docs/New Features/Compiler Warnings","h":"#non-portable-name","p":157},{"i":180,"t":"non-portable-bytecode","u":"/docs/New Features/Compiler Warnings","h":"#non-portable-bytecode","p":157},{"i":182,"t":"unannotated-fallthrough","u":"/docs/New Features/Compiler Warnings","h":"#unannotated-fallthrough","p":157},{"i":184,"t":"implicit-global","u":"/docs/New Features/Compiler Warnings","h":"#implicit-global","p":157},{"i":186,"t":"discarded-return","u":"/docs/New Features/Compiler Warnings","h":"#discarded-return","p":157},{"i":188,"t":"Compile-time Configuration","u":"/docs/New Features/Compiler Warnings","h":"#compile-time-configuration","p":157},{"i":190,"t":"Changing Warning States","u":"/docs/New Features/Compiler Warnings","h":"#changing-warning-states","p":157},{"i":192,"t":"Disable Warnings On Line","u":"/docs/New Features/Compiler Warnings","h":"#disable-warnings-on-line","p":157},{"i":198,"t":"Array destructuring","u":"/docs/New Features/Destructuring","h":"#array-destructuring","p":196},{"i":200,"t":"Table destructuring","u":"/docs/New Features/Destructuring","h":"#table-destructuring","p":196},{"i":202,"t":"Different variable name","u":"/docs/New Features/Destructuring","h":"#different-variable-name","p":196},{"i":204,"t":"Standard Library","u":"/docs/New Features/Destructuring","h":"#standard-library","p":196},{"i":208,"t":"Compiler Warnings","u":"/docs/New Features/Explicit Globals","h":"#compiler-warnings","p":206},{"i":212,"t":"Using Compatibility Mode?","u":"/docs/New Features/Export Modifier","h":"#using-compatibility-mode","p":210},{"i":216,"t":"Scoped Enums","u":"/docs/New Features/Enumerations","h":"#scoped-enums","p":214},{"i":218,"t":"Reflection","u":"/docs/New Features/Enumerations","h":"#reflection","p":214},{"i":220,"t":"Anonymous Enums","u":"/docs/New Features/Enumerations","h":"#anonymous-enums","p":214},{"i":222,"t":"Using Compatibility Mode?","u":"/docs/New Features/Enumerations","h":"#using-compatibility-mode","p":214},{"i":230,"t":"Rules","u":"/docs/New Features/In Expressions","h":"#rules","p":228},{"i":236,"t":"Mixing arguments","u":"/docs/New Features/Named Arguments","h":"#mixing-arguments","p":234},{"i":238,"t":"Limitations","u":"/docs/New Features/Named Arguments","h":"#limitations","p":234},{"i":244,"t":"Cosmetic Underscores","u":"/docs/New Features/Numeral Parsing","h":"#cosmetic-underscores","p":242},{"i":246,"t":"Binary Integers","u":"/docs/New Features/Numeral Parsing","h":"#binary-integers","p":242},{"i":249,"t":"For Member Access","u":"/docs/New Features/Safe Navigation","h":"#for-member-access","p":248},{"i":251,"t":"For Method Calls","u":"/docs/New Features/Safe Navigation","h":"#for-method-calls","p":248},{"i":259,"t":"Method Creation","u":"/docs/New Features/Object-Oriented Programming","h":"#method-creation","p":257},{"i":261,"t":"Static Functions","u":"/docs/New Features/Object-Oriented Programming","h":"#static-functions","p":257},{"i":263,"t":"New Operator","u":"/docs/New Features/Object-Oriented Programming","h":"#new-operator","p":257},{"i":265,"t":"Class Statement","u":"/docs/New Features/Object-Oriented Programming","h":"#class-statement","p":257},{"i":267,"t":"Class Expression","u":"/docs/New Features/Object-Oriented Programming","h":"#class-expression","p":257},{"i":269,"t":"Extends","u":"/docs/New Features/Object-Oriented Programming","h":"#extends","p":257},{"i":271,"t":"Parent Expression","u":"/docs/New Features/Object-Oriented Programming","h":"#parent-expression","p":257},{"i":273,"t":"Private Fields","u":"/docs/New Features/Object-Oriented Programming","h":"#private-fields","p":257},{"i":275,"t":"Constructor Promotion","u":"/docs/New Features/Object-Oriented Programming","h":"#constructor-promotion","p":257},{"i":277,"t":"Instanceof Operator","u":"/docs/New Features/Object-Oriented Programming","h":"#instanceof-operator","p":257},{"i":279,"t":"Using Compatibility Mode?","u":"/docs/New Features/Object-Oriented Programming","h":"#using-compatibility-mode","p":257},{"i":283,"t":"What will this prevent?","u":"/docs/New Features/Table Freezing","h":"#what-will-this-prevent","p":281},{"i":287,"t":"Switch Statement","u":"/docs/New Features/Switch Blocks","h":"#switch-statement","p":285},{"i":289,"t":"Case Blocks","u":"/docs/New Features/Switch Blocks","h":"#case-blocks","p":285},{"i":291,"t":"Switch Expression","u":"/docs/New Features/Switch Blocks","h":"#switch-expression","p":285},{"i":293,"t":"Using Compatibility Mode?","u":"/docs/New Features/Switch Blocks","h":"#using-compatibility-mode","p":285},{"i":297,"t":"What types can I use?","u":"/docs/New Features/Type Hinting","h":"#what-types-can-i-use","p":295},{"i":301,"t":"Using Compatibility Mode?","u":"/docs/New Features/Try-Catch Statement","h":"#using-compatibility-mode","p":299},{"i":305,"t":"If Expressions","u":"/docs/New Features/Ternary Expressions","h":"#if-expressions","p":303},{"i":307,"t":"Doesn't Lua already have ternaries?","u":"/docs/New Features/Ternary Expressions","h":"#doesnt-lua-already-have-ternaries","p":303},{"i":310,"t":"Operator Aliases","u":"/docs/New Operators","h":"#operator-aliases","p":309},{"i":312,"t":"Compound Operators","u":"/docs/New Operators","h":"#compound-operators","p":309},{"i":314,"t":"Comparison Chaining","u":"/docs/New Operators","h":"#comparison-chaining","p":309},{"i":316,"t":"Coalescing Operator","u":"/docs/New Operators","h":"#coalescing-operator","p":309},{"i":318,"t":"Walrus Operator","u":"/docs/New Operators","h":"#walrus-operator","p":309},{"i":320,"t":"Spaceship Operator","u":"/docs/New Operators","h":"#spaceship-operator","p":309},{"i":322,"t":"Pipe Operator","u":"/docs/New Operators","h":"#pipe-operator","p":309},{"i":324,"t":"Additional Arguments","u":"/docs/New Operators","h":"#additional-arguments","p":309},{"i":326,"t":"Methods Calls","u":"/docs/New Operators","h":"#methods-calls","p":309},{"i":328,"t":"Anonymous Functions","u":"/docs/New Operators","h":"#anonymous-functions","p":309},{"i":332,"t":"How does it work?","u":"/docs/Optimizations/For Loops","h":"#how-does-it-work","p":330},{"i":352,"t":"Example 1","u":"/docs/QoL Improvements/Syntax Errors","h":"#example-1","p":350},{"i":354,"t":"Example 2","u":"/docs/QoL Improvements/Syntax Errors","h":"#example-2","p":350},{"i":356,"t":"ANSI Coloring","u":"/docs/QoL Improvements/Syntax Errors","h":"#ansi-coloring","p":350},{"i":362,"t":"assert.isnil","u":"/docs/Runtime Environment/Assert","h":"#assertisnil","p":360},{"i":364,"t":"assert.istrue","u":"/docs/Runtime Environment/Assert","h":"#assertistrue","p":360},{"i":366,"t":"assert.isfalse","u":"/docs/Runtime Environment/Assert","h":"#assertisfalse","p":360},{"i":368,"t":"assert.falsy","u":"/docs/Runtime Environment/Assert","h":"#assertfalsy","p":360},{"i":370,"t":"assert.truthy","u":"/docs/Runtime Environment/Assert","h":"#asserttruthy","p":360},{"i":372,"t":"assert.notnil","u":"/docs/Runtime Environment/Assert","h":"#assertnotnil","p":360},{"i":374,"t":"assert.equal","u":"/docs/Runtime Environment/Assert","h":"#assertequal","p":360},{"i":376,"t":"assert.nequal","u":"/docs/Runtime Environment/Assert","h":"#assertnequal","p":360},{"i":378,"t":"assert.less","u":"/docs/Runtime Environment/Assert","h":"#assertless","p":360},{"i":380,"t":"assert.lesseq","u":"/docs/Runtime Environment/Assert","h":"#assertlesseq","p":360},{"i":382,"t":"assert.greater","u":"/docs/Runtime Environment/Assert","h":"#assertgreater","p":360},{"i":384,"t":"assert.greatereq","u":"/docs/Runtime Environment/Assert","h":"#assertgreatereq","p":360},{"i":386,"t":"assert.noerror","u":"/docs/Runtime Environment/Assert","h":"#assertnoerror","p":360},{"i":388,"t":"assert.haserror","u":"/docs/Runtime Environment/Assert","h":"#asserthaserror","p":360},{"i":390,"t":"assert.searcherror","u":"/docs/Runtime Environment/Assert","h":"#assertsearcherror","p":360},{"i":392,"t":"assert.contains","u":"/docs/Runtime Environment/Assert","h":"#assertcontains","p":360},{"i":396,"t":"base32.encode","u":"/docs/Runtime Environment/Base32","h":"#base32encode","p":394},{"i":398,"t":"base32.decode","u":"/docs/Runtime Environment/Base32","h":"#base32decode","p":394},{"i":402,"t":"base64.encode","u":"/docs/Runtime Environment/Base64","h":"#base64encode","p":400},{"i":404,"t":"base64.decode","u":"/docs/Runtime Environment/Base64","h":"#base64decode","p":400},{"i":406,"t":"base64.urlencode","u":"/docs/Runtime Environment/Base64","h":"#base64urlencode","p":400},{"i":408,"t":"base64.urldecode","u":"/docs/Runtime Environment/Base64","h":"#base64urldecode","p":400},{"i":412,"t":"bigint.new","u":"/docs/Runtime Environment/Bigint","h":"#bigintnew","p":410},{"i":414,"t":"bigint.tostring, __tostring","u":"/docs/Runtime Environment/Bigint","h":"#biginttostring-__tostring","p":410},{"i":416,"t":"bigint.hex","u":"/docs/Runtime Environment/Bigint","h":"#biginthex","p":410},{"i":418,"t":"bigint.binary","u":"/docs/Runtime Environment/Bigint","h":"#bigintbinary","p":410},{"i":420,"t":"bigint.add, __add","u":"/docs/Runtime Environment/Bigint","h":"#bigintadd-__add","p":410},{"i":422,"t":"bigint.sub, __sub","u":"/docs/Runtime Environment/Bigint","h":"#bigintsub-__sub","p":410},{"i":424,"t":"bigint.mul, __mul","u":"/docs/Runtime Environment/Bigint","h":"#bigintmul-__mul","p":410},{"i":426,"t":"bigint.div","u":"/docs/Runtime Environment/Bigint","h":"#bigintdiv","p":410},{"i":428,"t":"__div","u":"/docs/Runtime Environment/Bigint","h":"#__div","p":410},{"i":430,"t":"bigint.mod, __mod","u":"/docs/Runtime Environment/Bigint","h":"#bigintmod-__mod","p":410},{"i":432,"t":"bigint.pow, __pow","u":"/docs/Runtime Environment/Bigint","h":"#bigintpow-__pow","p":410},{"i":434,"t":"bigint.bitlength","u":"/docs/Runtime Environment/Bigint","h":"#bigintbitlength","p":410},{"i":438,"t":"canvas.new","u":"/docs/Runtime Environment/Canvas","h":"#canvasnew","p":436},{"i":440,"t":"canvas.bmp","u":"/docs/Runtime Environment/Canvas","h":"#canvasbmp","p":436},{"i":442,"t":"canvas.qrcode","u":"/docs/Runtime Environment/Canvas","h":"#canvasqrcode","p":436},{"i":444,"t":"canvas.get","u":"/docs/Runtime Environment/Canvas","h":"#canvasget","p":436},{"i":446,"t":"canvas.set","u":"/docs/Runtime Environment/Canvas","h":"#canvasset","p":436},{"i":448,"t":"canvas.fill","u":"/docs/Runtime Environment/Canvas","h":"#canvasfill","p":436},{"i":450,"t":"canvas.size","u":"/docs/Runtime Environment/Canvas","h":"#canvassize","p":436},{"i":452,"t":"canvas.mulsize","u":"/docs/Runtime Environment/Canvas","h":"#canvasmulsize","p":436},{"i":454,"t":"canvas.tobmp","u":"/docs/Runtime Environment/Canvas","h":"#canvastobmp","p":436},{"i":456,"t":"canvas.topng","u":"/docs/Runtime Environment/Canvas","h":"#canvastopng","p":436},{"i":458,"t":"canvas.tobwstring","u":"/docs/Runtime Environment/Canvas","h":"#canvastobwstring","p":436},{"i":462,"t":"cat.encode","u":"/docs/Runtime Environment/CaT","h":"#catencode","p":460},{"i":464,"t":"cat.decode","u":"/docs/Runtime Environment/CaT","h":"#catdecode","p":460},{"i":468,"t":"coroutine.xresume","u":"/docs/Runtime Environment/Coroutine","h":"#coroutinexresume","p":466},{"i":470,"t":"coroutine.sleep","u":"/docs/Runtime Environment/Coroutine","h":"#coroutinesleep","p":466},{"i":476,"t":"Non-Cryptographic Hashing Algorithms","u":"/docs/Runtime Environment/Crypto","h":"#non-cryptographic-hashing-algorithms","p":474},{"i":477,"t":"crypto.lua","u":"/docs/Runtime Environment/Crypto","h":"#cryptolua","p":474},{"i":479,"t":"crypto.md5","u":"/docs/Runtime Environment/Crypto","h":"#cryptomd5","p":474},{"i":481,"t":"crypto.djb2","u":"/docs/Runtime Environment/Crypto","h":"#cryptodjb2","p":474},{"i":483,"t":"crypto.fnv1","u":"/docs/Runtime Environment/Crypto","h":"#cryptofnv1","p":474},{"i":485,"t":"crypto.fnv1a","u":"/docs/Runtime Environment/Crypto","h":"#cryptofnv1a","p":474},{"i":487,"t":"crypto.joaat","u":"/docs/Runtime Environment/Crypto","h":"#cryptojoaat","p":474},{"i":489,"t":"crypto.sdbm","u":"/docs/Runtime Environment/Crypto","h":"#cryptosdbm","p":474},{"i":491,"t":"crypto.crc32","u":"/docs/Runtime Environment/Crypto","h":"#cryptocrc32","p":474},{"i":493,"t":"crypto.adler32","u":"/docs/Runtime Environment/Crypto","h":"#cryptoadler32","p":474},{"i":495,"t":"crypto.lookup3","u":"/docs/Runtime Environment/Crypto","h":"#cryptolookup3","p":474},{"i":497,"t":"crypto.times33","u":"/docs/Runtime Environment/Crypto","h":"#cryptotimes33","p":474},{"i":499,"t":"crypto.murmur1","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur1","p":474},{"i":501,"t":"crypto.murmur2","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur2","p":474},{"i":503,"t":"crypto.murmur2a","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur2a","p":474},{"i":505,"t":"crypto.murmur64a","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur64a","p":474},{"i":507,"t":"crypto.murmur64b","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur64b","p":474},{"i":509,"t":"crypto.murmur2neutral","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur2neutral","p":474},{"i":511,"t":"Cryptographic Hashing Algorithms","u":"/docs/Runtime Environment/Crypto","h":"#cryptographic-hashing-algorithms","p":474},{"i":512,"t":"crypto.sha1","u":"/docs/Runtime Environment/Crypto","h":"#cryptosha1","p":474},{"i":514,"t":"crypto.sha256","u":"/docs/Runtime Environment/Crypto","h":"#cryptosha256","p":474},{"i":516,"t":"crypto.sha384","u":"/docs/Runtime Environment/Crypto","h":"#cryptosha384","p":474},{"i":518,"t":"crypto.sha512","u":"/docs/Runtime Environment/Crypto","h":"#cryptosha512","p":474},{"i":520,"t":"crypto.ripemd160","u":"/docs/Runtime Environment/Crypto","h":"#cryptoripemd160","p":474},{"i":522,"t":"Cryptographic PRNGs","u":"/docs/Runtime Environment/Crypto","h":"#cryptographic-prngs","p":474},{"i":523,"t":"crypto.random","u":"/docs/Runtime Environment/Crypto","h":"#cryptorandom","p":474},{"i":525,"t":"AES-CBC, AES-CFB","u":"/docs/Runtime Environment/Crypto","h":"#aes-cbc-aes-cfb","p":474},{"i":527,"t":"crypto.encrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptoencrypt","p":474},{"i":529,"t":"crypto.decrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecrypt","p":474},{"i":531,"t":"AES-ECB","u":"/docs/Runtime Environment/Crypto","h":"#aes-ecb","p":474},{"i":533,"t":"crypto.encrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptoencrypt-1","p":474},{"i":535,"t":"crypto.decrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecrypt-1","p":474},{"i":537,"t":"AES-GCM","u":"/docs/Runtime Environment/Crypto","h":"#aes-gcm","p":474},{"i":539,"t":"crypto.encrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptoencrypt-2","p":474},{"i":541,"t":"crypto.decrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecrypt-2","p":474},{"i":543,"t":"RSA","u":"/docs/Runtime Environment/Crypto","h":"#rsa","p":474},{"i":544,"t":"crypto.generatekeypair","u":"/docs/Runtime Environment/Crypto","h":"#cryptogeneratekeypair","p":474},{"i":546,"t":"crypto.exportkey","u":"/docs/Runtime Environment/Crypto","h":"#cryptoexportkey","p":474},{"i":548,"t":"crypto.importkey","u":"/docs/Runtime Environment/Crypto","h":"#cryptoimportkey","p":474},{"i":550,"t":"crypto.encrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptoencrypt-3","p":474},{"i":552,"t":"crypto.decrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecrypt-3","p":474},{"i":554,"t":"crypto.sign","u":"/docs/Runtime Environment/Crypto","h":"#cryptosign","p":474},{"i":556,"t":"crypto.verify","u":"/docs/Runtime Environment/Crypto","h":"#cryptoverify","p":474},{"i":558,"t":"Miscellaneous","u":"/docs/Runtime Environment/Crypto","h":"#miscellaneous","p":474},{"i":559,"t":"crypto.decompress","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecompress","p":474},{"i":563,"t":"ffi.open","u":"/docs/Runtime Environment/FFI","h":"#ffiopen","p":561},{"i":565,"t":"ffi.struct","u":"/docs/Runtime Environment/FFI","h":"#ffistruct","p":561},{"i":567,"t":"ffi.new","u":"/docs/Runtime Environment/FFI","h":"#ffinew","p":561},{"i":569,"t":"ffi.cdef","u":"/docs/Runtime Environment/FFI","h":"#fficdef","p":561},{"i":571,"t":"ffi.sizeof","u":"/docs/Runtime Environment/FFI","h":"#ffisizeof","p":561},{"i":573,"t":"ffi.offsetof","u":"/docs/Runtime Environment/FFI","h":"#ffioffsetof","p":561},{"i":575,"t":"ffi.nullptr","u":"/docs/Runtime Environment/FFI","h":"#ffinullptr","p":561},{"i":577,"t":"FFI Library Class","u":"/docs/Runtime Environment/FFI","h":"#ffi-library-class","p":561},{"i":579,"t":"wrap","u":"/docs/Runtime Environment/FFI","h":"#wrap","p":561},{"i":581,"t":"value","u":"/docs/Runtime Environment/FFI","h":"#value","p":561},{"i":583,"t":"cdef","u":"/docs/Runtime Environment/FFI","h":"#cdef","p":561},{"i":587,"t":"_PVERSION","u":"/docs/Runtime Environment/Global & Base","h":"#_pversion","p":585},{"i":589,"t":"_PSOUP","u":"/docs/Runtime Environment/Global & Base","h":"#_psoup","p":585},{"i":591,"t":"os.platform","u":"/docs/Runtime Environment/Global & Base","h":"#osplatform","p":585},{"i":593,"t":"package.path","u":"/docs/Runtime Environment/Global & Base","h":"#packagepath","p":585},{"i":595,"t":"Default Metatables","u":"/docs/Runtime Environment/Global & Base","h":"#default-metatables","p":585},{"i":597,"t":"dumpvar","u":"/docs/Runtime Environment/Global & Base","h":"#dumpvar","p":585},{"i":599,"t":"exportvar","u":"/docs/Runtime Environment/Global & Base","h":"#exportvar","p":585},{"i":601,"t":"range","u":"/docs/Runtime Environment/Global & Base","h":"#range","p":585},{"i":603,"t":"compareversions","u":"/docs/Runtime Environment/Global & Base","h":"#compareversions","p":585},{"i":605,"t":"wcall","u":"/docs/Runtime Environment/Global & Base","h":"#wcall","p":585},{"i":609,"t":"http.request","u":"/docs/Runtime Environment/HTTP","h":"#httprequest","p":607},{"i":611,"t":"http.hasconnection","u":"/docs/Runtime Environment/HTTP","h":"#httphasconnection","p":607},{"i":613,"t":"http.closeconnections","u":"/docs/Runtime Environment/HTTP","h":"#httpcloseconnections","p":607},{"i":617,"t":"json.encode","u":"/docs/Runtime Environment/JSON","h":"#jsonencode","p":615},{"i":619,"t":"json.decode","u":"/docs/Runtime Environment/JSON","h":"#jsondecode","p":615},{"i":623,"t":"io.rename","u":"/docs/Runtime Environment/IO","h":"#iorename","p":621},{"i":625,"t":"io.remove","u":"/docs/Runtime Environment/IO","h":"#ioremove","p":621},{"i":627,"t":"io.copy","u":"/docs/Runtime Environment/IO","h":"#iocopy","p":621},{"i":629,"t":"io.part","u":"/docs/Runtime Environment/IO","h":"#iopart","p":621},{"i":631,"t":"io.isdir","u":"/docs/Runtime Environment/IO","h":"#ioisdir","p":621},{"i":633,"t":"io.isfile","u":"/docs/Runtime Environment/IO","h":"#ioisfile","p":621},{"i":635,"t":"io.exists","u":"/docs/Runtime Environment/IO","h":"#ioexists","p":621},{"i":637,"t":"io.makedir","u":"/docs/Runtime Environment/IO","h":"#iomakedir","p":621},{"i":639,"t":"io.listdir","u":"/docs/Runtime Environment/IO","h":"#iolistdir","p":621},{"i":641,"t":"io.makedirs","u":"/docs/Runtime Environment/IO","h":"#iomakedirs","p":621},{"i":643,"t":"io.absolute","u":"/docs/Runtime Environment/IO","h":"#ioabsolute","p":621},{"i":645,"t":"io.relative","u":"/docs/Runtime Environment/IO","h":"#iorelative","p":621},{"i":647,"t":"io.contents","u":"/docs/Runtime Environment/IO","h":"#iocontents","p":621},{"i":649,"t":"io.filesize","u":"/docs/Runtime Environment/IO","h":"#iofilesize","p":621},{"i":651,"t":"io.writetime","u":"/docs/Runtime Environment/IO","h":"#iowritetime","p":621},{"i":653,"t":"io.currentdir, io.chdir, io.cwd","u":"/docs/Runtime Environment/IO","h":"#iocurrentdir-iochdir-iocwd","p":621},{"i":657,"t":"math.isnan","u":"/docs/Runtime Environment/Math","h":"#mathisnan","p":655},{"i":659,"t":"math.round","u":"/docs/Runtime Environment/Math","h":"#mathround","p":655},{"i":661,"t":"math.atan2","u":"/docs/Runtime Environment/Math","h":"#mathatan2","p":655},{"i":665,"t":"regex.new","u":"/docs/Runtime Environment/Regex","h":"#regexnew","p":663},{"i":667,"t":"regex.match","u":"/docs/Runtime Environment/Regex","h":"#regexmatch","p":663},{"i":671,"t":"__construct","u":"/docs/Runtime Environment/Scheduler","h":"#__construct","p":669},{"i":673,"t":"add","u":"/docs/Runtime Environment/Scheduler","h":"#add","p":669},{"i":675,"t":"addloop","u":"/docs/Runtime Environment/Scheduler","h":"#addloop","p":669},{"i":677,"t":"run","u":"/docs/Runtime Environment/Scheduler","h":"#run","p":669},{"i":679,"t":"yieldfunc","u":"/docs/Runtime Environment/Scheduler","h":"#yieldfunc","p":669},{"i":681,"t":"errorfunc","u":"/docs/Runtime Environment/Scheduler","h":"#errorfunc","p":669},{"i":685,"t":"os.sleep","u":"/docs/Runtime Environment/OS","h":"#ossleep","p":683},{"i":687,"t":"os.nanos, os.micros, os.millis, os.seconds","u":"/docs/Runtime Environment/OS","h":"#osnanos-osmicros-osmillis-osseconds","p":683},{"i":689,"t":"os.unixseconds","u":"/docs/Runtime Environment/OS","h":"#osunixseconds","p":683},{"i":693,"t":"socket.connect","u":"/docs/Runtime Environment/Socket","h":"#socketconnect","p":691},{"i":695,"t":"socket.listen","u":"/docs/Runtime Environment/Socket","h":"#socketlisten","p":691},{"i":697,"t":"socket.bind","u":"/docs/Runtime Environment/Socket","h":"#socketbind","p":691},{"i":699,"t":"Socket Class","u":"/docs/Runtime Environment/Socket","h":"#socket-class","p":691},{"i":701,"t":"socket.send","u":"/docs/Runtime Environment/Socket","h":"#socketsend","p":691},{"i":703,"t":"socket.recv","u":"/docs/Runtime Environment/Socket","h":"#socketrecv","p":691},{"i":705,"t":"socket.peek","u":"/docs/Runtime Environment/Socket","h":"#socketpeek","p":691},{"i":707,"t":"socket.unrecv","u":"/docs/Runtime Environment/Socket","h":"#socketunrecv","p":691},{"i":709,"t":"socket.starttls","u":"/docs/Runtime Environment/Socket","h":"#socketstarttls","p":691},{"i":711,"t":"socket.close","u":"/docs/Runtime Environment/Socket","h":"#socketclose","p":691},{"i":713,"t":"socket.getpeer","u":"/docs/Runtime Environment/Socket","h":"#socketgetpeer","p":691},{"i":715,"t":"socket.getside","u":"/docs/Runtime Environment/Socket","h":"#socketgetside","p":691},{"i":717,"t":"socket.istls","u":"/docs/Runtime Environment/Socket","h":"#socketistls","p":691},{"i":719,"t":"socket.isopen","u":"/docs/Runtime Environment/Socket","h":"#socketisopen","p":691},{"i":721,"t":"Listener Class","u":"/docs/Runtime Environment/Socket","h":"#listener-class","p":691},{"i":723,"t":"accept","u":"/docs/Runtime Environment/Socket","h":"#accept","p":691},{"i":725,"t":"hasconnection","u":"/docs/Runtime Environment/Socket","h":"#hasconnection","p":691},{"i":729,"t":"table.sort","u":"/docs/Runtime Environment/Table","h":"#tablesort","p":727},{"i":731,"t":"table.sorted","u":"/docs/Runtime Environment/Table","h":"#tablesorted","p":727},{"i":733,"t":"table.size","u":"/docs/Runtime Environment/Table","h":"#tablesize","p":727},{"i":735,"t":"table.clear","u":"/docs/Runtime Environment/Table","h":"#tableclear","p":727},{"i":737,"t":"table.freeze","u":"/docs/Runtime Environment/Table","h":"#tablefreeze","p":727},{"i":739,"t":"table.isfrozen","u":"/docs/Runtime Environment/Table","h":"#tableisfrozen","p":727},{"i":741,"t":"table.contains","u":"/docs/Runtime Environment/Table","h":"#tablecontains","p":727},{"i":743,"t":"table.find","u":"/docs/Runtime Environment/Table","h":"#tablefind","p":727},{"i":745,"t":"table.findkey, table.findindex","u":"/docs/Runtime Environment/Table","h":"#tablefindkey-tablefindindex","p":727},{"i":747,"t":"table.reverse","u":"/docs/Runtime Environment/Table","h":"#tablereverse","p":727},{"i":749,"t":"table.reversed","u":"/docs/Runtime Environment/Table","h":"#tablereversed","p":727},{"i":751,"t":"table.reorder","u":"/docs/Runtime Environment/Table","h":"#tablereorder","p":727},{"i":753,"t":"table.reordered","u":"/docs/Runtime Environment/Table","h":"#tablereordered","p":727},{"i":755,"t":"table.foreach","u":"/docs/Runtime Environment/Table","h":"#tableforeach","p":727},{"i":757,"t":"table.filter","u":"/docs/Runtime Environment/Table","h":"#tablefilter","p":727},{"i":759,"t":"table.filtered","u":"/docs/Runtime Environment/Table","h":"#tablefiltered","p":727},{"i":761,"t":"table.map","u":"/docs/Runtime Environment/Table","h":"#tablemap","p":727},{"i":763,"t":"table.mapped","u":"/docs/Runtime Environment/Table","h":"#tablemapped","p":727},{"i":765,"t":"table.reduce","u":"/docs/Runtime Environment/Table","h":"#tablereduce","p":727},{"i":767,"t":"table.min","u":"/docs/Runtime Environment/Table","h":"#tablemin","p":727},{"i":769,"t":"table.max","u":"/docs/Runtime Environment/Table","h":"#tablemax","p":727},{"i":771,"t":"table.checkall","u":"/docs/Runtime Environment/Table","h":"#tablecheckall","p":727},{"i":773,"t":"table.keys","u":"/docs/Runtime Environment/Table","h":"#tablekeys","p":727},{"i":775,"t":"table.countvalues","u":"/docs/Runtime Environment/Table","h":"#tablecountvalues","p":727},{"i":777,"t":"table.chunk","u":"/docs/Runtime Environment/Table","h":"#tablechunk","p":727},{"i":779,"t":"table.back","u":"/docs/Runtime Environment/Table","h":"#tableback","p":727},{"i":781,"t":"table.slice","u":"/docs/Runtime Environment/Table","h":"#tableslice","p":727},{"i":783,"t":"table.modget","u":"/docs/Runtime Environment/Table","h":"#tablemodget","p":727},{"i":785,"t":"table.modset","u":"/docs/Runtime Environment/Table","h":"#tablemodset","p":727},{"i":789,"t":"string.upper","u":"/docs/Runtime Environment/String","h":"#stringupper","p":787},{"i":791,"t":"string.lower","u":"/docs/Runtime Environment/String","h":"#stringlower","p":787},{"i":793,"t":"string.split","u":"/docs/Runtime Environment/String","h":"#stringsplit","p":787},{"i":795,"t":"string.rfind","u":"/docs/Runtime Environment/String","h":"#stringrfind","p":787},{"i":797,"t":"string.strip","u":"/docs/Runtime Environment/String","h":"#stringstrip","p":787},{"i":799,"t":"string.lstrip","u":"/docs/Runtime Environment/String","h":"#stringlstrip","p":787},{"i":801,"t":"string.rstrip","u":"/docs/Runtime Environment/String","h":"#stringrstrip","p":787},{"i":803,"t":"string.isascii","u":"/docs/Runtime Environment/String","h":"#stringisascii","p":787},{"i":805,"t":"string.islower","u":"/docs/Runtime Environment/String","h":"#stringislower","p":787},{"i":807,"t":"string.isalpha","u":"/docs/Runtime Environment/String","h":"#stringisalpha","p":787},{"i":809,"t":"string.isupper","u":"/docs/Runtime Environment/String","h":"#stringisupper","p":787},{"i":811,"t":"string.isalnum","u":"/docs/Runtime Environment/String","h":"#stringisalnum","p":787},{"i":813,"t":"string.iswhitespace","u":"/docs/Runtime Environment/String","h":"#stringiswhitespace","p":787},{"i":815,"t":"string.uformat","u":"/docs/Runtime Environment/String","h":"#stringuformat","p":787},{"i":817,"t":"string.replace","u":"/docs/Runtime Environment/String","h":"#stringreplace","p":787},{"i":819,"t":"string.truncate","u":"/docs/Runtime Environment/String","h":"#stringtruncate","p":787},{"i":821,"t":"string.contains","u":"/docs/Runtime Environment/String","h":"#stringcontains","p":787},{"i":823,"t":"string.casefold","u":"/docs/Runtime Environment/String","h":"#stringcasefold","p":787},{"i":825,"t":"string.formatint","u":"/docs/Runtime Environment/String","h":"#stringformatint","p":787},{"i":827,"t":"string.partition","u":"/docs/Runtime Environment/String","h":"#stringpartition","p":787},{"i":829,"t":"string.endswith","u":"/docs/Runtime Environment/String","h":"#stringendswith","p":787},{"i":831,"t":"string.startswith","u":"/docs/Runtime Environment/String","h":"#stringstartswith","p":787},{"i":833,"t":"string.tohex","u":"/docs/Runtime Environment/String","h":"#stringtohex","p":787},{"i":835,"t":"string.fromhex","u":"/docs/Runtime Environment/String","h":"#stringfromhex","p":787},{"i":839,"t":"xml.encode","u":"/docs/Runtime Environment/XML","h":"#xmlencode","p":837},{"i":841,"t":"xml.decode","u":"/docs/Runtime Environment/XML","h":"#xmldecode","p":837},{"i":845,"t":"url.encode","u":"/docs/Runtime Environment/URL","h":"#urlencode","p":843},{"i":847,"t":"url.decode","u":"/docs/Runtime Environment/URL","h":"#urldecode","p":843},{"i":849,"t":"url.parse","u":"/docs/Runtime Environment/URL","h":"#urlparse","p":843},{"i":853,"t":"__construct","u":"/docs/Runtime Environment/Vector3","h":"#__construct","p":851},{"i":855,"t":"__tostring","u":"/docs/Runtime Environment/Vector3","h":"#__tostring","p":851},{"i":857,"t":"__add, __sub, __mul, __div","u":"/docs/Runtime Environment/Vector3","h":"#__add-__sub-__mul-__div","p":851},{"i":859,"t":"__eq","u":"/docs/Runtime Environment/Vector3","h":"#__eq","p":851},{"i":861,"t":"__len, magnitude","u":"/docs/Runtime Environment/Vector3","h":"#__len-magnitude","p":851},{"i":863,"t":"sum","u":"/docs/Runtime Environment/Vector3","h":"#sum","p":851},{"i":865,"t":"min","u":"/docs/Runtime Environment/Vector3","h":"#min","p":851},{"i":867,"t":"max","u":"/docs/Runtime Environment/Vector3","h":"#max","p":851},{"i":869,"t":"dot","u":"/docs/Runtime Environment/Vector3","h":"#dot","p":851},{"i":871,"t":"abs","u":"/docs/Runtime Environment/Vector3","h":"#abs","p":851},{"i":873,"t":"normalized, normalised","u":"/docs/Runtime Environment/Vector3","h":"#normalized-normalised","p":851},{"i":875,"t":"torot","u":"/docs/Runtime Environment/Vector3","h":"#torot","p":851},{"i":877,"t":"lookat","u":"/docs/Runtime Environment/Vector3","h":"#lookat","p":851},{"i":879,"t":"todir","u":"/docs/Runtime Environment/Vector3","h":"#todir","p":851}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,6.228]],["t/5",[1,6.228]],["t/7",[2,6.228]],["t/9",[3,6.228]],["t/11",[4,6.228]],["t/13",[5,6.228]],["t/15",[6,6.228]],["t/17",[7,6.228]],["t/19",[8,6.228]],["t/21",[9,6.228]],["t/23",[10,6.228]],["t/25",[11,6.228]],["t/27",[12,6.228]],["t/29",[13,6.228]],["t/31",[14,6.228]],["t/33",[15,6.228]],["t/35",[16,6.228]],["t/37",[17,6.228]],["t/39",[18,6.228]],["t/41",[19,6.228]],["t/43",[20,6.228]],["t/45",[21,6.228]],["t/47",[22,6.228]],["t/49",[23,6.228]],["t/51",[24,6.228]],["t/53",[25,6.228]],["t/55",[26,6.228]],["t/57",[27,6.228]],["t/59",[28,6.228]],["t/61",[29,6.228]],["t/63",[30,6.228]],["t/65",[31,6.228]],["t/67",[32,6.228]],["t/69",[33,6.228]],["t/71",[34,6.228]],["t/73",[35,6.228]],["t/75",[36,6.228]],["t/79",[37,4.666,38,4.666]],["t/80",[39,3.57,40,3.951]],["t/82",[41,3.73,42,3.386,43,3.73]],["t/84",[42,2.82,44,2.631,45,3.107,46,2.631]],["t/86",[47,3.73,48,3.159,49,3.386]],["t/88",[44,3.159,50,3.73,51,3.73]],["t/90",[52,4.666,53,4.666]],["t/92",[54,5.274]],["t/94",[55,6.228]],["t/98",[56,6.228]],["t/102",[57,4.235,58,4.235]],["t/104",[59,3.203,60,3.308]],["t/106",[39,2.377,48,2.631,54,2.631,61,3.107]],["t/108",[58,4.235,59,3.203]],["t/110",[62,3.386,63,3.386,64,3.386]],["t/114",[65,3.73,66,3.159,67,3.73]],["t/116",[46,3.951,68,4.666]],["t/118",[69,6.228]],["t/119",[70,6.228]],["t/121",[71,4.666,72,4.666]],["t/123",[73,6.228]],["t/125",[74,6.228]],["t/127",[39,2.854,66,3.159,75,3.73]],["t/129",[76,4.666,77,4.666]],["t/131",[78,4.666,79,4.666]],["t/133",[80,6.228]],["t/135",[81,6.228]],["t/139",[66,3.951,82,4.666]],["t/145",[83,3.951,84,3.951]],["t/147",[85,5.653]],["t/149",[86,6.228]],["t/153",[87,4.666,88,3.739]],["t/155",[59,2.561,60,2.645,89,2.645]],["t/159",[90,3.739,91,3.951]],["t/160",[92,4.666,93,3.951]],["t/162",[93,3.951,94,4.235]],["t/164",[93,3.951,95,4.235]],["t/166",[91,3.951,96,4.666]],["t/168",[40,3.951,97,4.666]],["t/170",[88,3.739,98,4.666]],["t/172",[99,4.666,100,4.666]],["t/174",[101,4.666,102,4.666]],["t/176",[40,3.159,103,2.989,104,3.159]],["t/178",[103,2.989,104,3.159,105,3.386]],["t/180",[103,2.989,104,3.159,106,3.73]],["t/182",[107,4.666,108,4.666]],["t/184",[94,4.235,109,4.666]],["t/186",[110,4.666,111,4.666]],["t/188",[39,2.854,48,3.159,54,3.159]],["t/190",[90,2.989,112,3.73,113,3.73]],["t/192",[90,2.989,114,3.73,115,3.73]],["t/198",[116,4.666,117,4.235]],["t/200",[63,4.235,117,4.235]],["t/202",[85,3.386,105,3.386,118,3.73]],["t/204",[119,4.666,120,4.235]],["t/208",[39,3.57,90,3.739]],["t/212",[59,2.561,60,2.645,89,2.645]],["t/216",[121,4.666,122,4.235]],["t/218",[123,6.228]],["t/220",[122,4.235,124,4.235]],["t/222",[59,2.561,60,2.645,89,2.645]],["t/230",[125,6.228]],["t/236",[88,3.739,126,4.666]],["t/238",[49,5.653]],["t/244",[127,4.666,128,4.666]],["t/246",[46,3.951,129,4.666]],["t/249",[130,4.666,131,4.666]],["t/251",[84,3.951,132,3.951]],["t/259",[132,3.951,133,4.666]],["t/261",[83,3.951,134,4.666]],["t/263",[57,4.235,135,3.203]],["t/265",[136,3.57,137,4.235]],["t/267",[136,3.57,138,3.739]],["t/269",[139,6.228]],["t/271",[138,3.739,140,4.666]],["t/273",[95,4.235,141,4.666]],["t/275",[142,4.666,143,4.666]],["t/277",[135,3.203,144,4.666]],["t/279",[59,2.561,60,2.645,89,2.645]],["t/283",[44,5.274]],["t/287",[137,4.235,145,4.235]],["t/289",[146,4.666,147,4.666]],["t/291",[138,3.739,145,4.235]],["t/293",[59,2.561,60,2.645,89,2.645]],["t/297",[89,3.308,91,3.951]],["t/301",[59,2.561,60,2.645,89,2.645]],["t/305",[138,4.991]],["t/307",[148,3.107,149,3.107,150,3.107,151,3.107]],["t/310",[135,3.203,152,4.666]],["t/312",[135,3.203,153,4.666]],["t/314",[154,4.666,155,4.666]],["t/316",[135,3.203,156,4.666]],["t/318",[135,3.203,157,4.666]],["t/320",[135,3.203,158,4.666]],["t/322",[135,3.203,159,4.666]],["t/324",[88,3.739,160,4.666]],["t/326",[84,3.951,132,3.951]],["t/328",[83,3.951,124,4.235]],["t/332",[161,6.228]],["t/352",[162,4.235,163,4.666]],["t/354",[162,4.235,164,4.666]],["t/356",[165,4.666,166,4.666]],["t/362",[167,6.228]],["t/364",[168,6.228]],["t/366",[169,6.228]],["t/368",[170,6.228]],["t/370",[171,6.228]],["t/372",[172,6.228]],["t/374",[173,6.228]],["t/376",[174,6.228]],["t/378",[175,6.228]],["t/380",[176,6.228]],["t/382",[177,6.228]],["t/384",[178,6.228]],["t/386",[179,6.228]],["t/388",[180,6.228]],["t/390",[181,6.228]],["t/392",[182,6.228]],["t/396",[183,6.228]],["t/398",[184,6.228]],["t/402",[185,6.228]],["t/404",[186,6.228]],["t/406",[187,6.228]],["t/408",[188,6.228]],["t/412",[189,6.228]],["t/414",[190,4.666,191,4.235]],["t/416",[192,6.228]],["t/418",[193,6.228]],["t/420",[194,4.666,195,4.235]],["t/422",[196,4.666,197,4.235]],["t/424",[198,4.666,199,4.235]],["t/426",[200,6.228]],["t/428",[201,5.653]],["t/430",[202,4.666,203,4.666]],["t/432",[204,4.666,205,4.666]],["t/434",[206,6.228]],["t/438",[207,6.228]],["t/440",[208,6.228]],["t/442",[209,6.228]],["t/444",[210,6.228]],["t/446",[211,6.228]],["t/448",[212,6.228]],["t/450",[213,6.228]],["t/452",[214,6.228]],["t/454",[215,6.228]],["t/456",[216,6.228]],["t/458",[217,6.228]],["t/462",[218,6.228]],["t/464",[219,6.228]],["t/468",[220,6.228]],["t/470",[221,6.228]],["t/476",[103,2.49,222,2.631,223,2.82,224,2.82]],["t/477",[225,6.228]],["t/479",[226,6.228]],["t/481",[227,6.228]],["t/483",[228,6.228]],["t/485",[229,6.228]],["t/487",[230,6.228]],["t/489",[231,6.228]],["t/491",[232,6.228]],["t/493",[233,6.228]],["t/495",[234,6.228]],["t/497",[235,6.228]],["t/499",[236,6.228]],["t/501",[237,6.228]],["t/503",[238,6.228]],["t/505",[239,6.228]],["t/507",[240,6.228]],["t/509",[241,6.228]],["t/511",[222,3.159,223,3.386,224,3.386]],["t/512",[242,6.228]],["t/514",[243,6.228]],["t/516",[244,6.228]],["t/518",[245,6.228]],["t/520",[246,6.228]],["t/522",[222,3.951,247,4.666]],["t/523",[248,6.228]],["t/525",[249,4.192,250,3.107,251,3.107]],["t/527",[252,4.991]],["t/529",[253,4.991]],["t/531",[249,3.951,254,4.666]],["t/533",[252,4.991]],["t/535",[253,4.991]],["t/537",[249,3.951,255,4.666]],["t/539",[252,4.991]],["t/541",[253,4.991]],["t/543",[256,6.228]],["t/544",[257,6.228]],["t/546",[258,6.228]],["t/548",[259,6.228]],["t/550",[252,4.991]],["t/552",[253,4.991]],["t/554",[260,6.228]],["t/556",[261,6.228]],["t/558",[262,6.228]],["t/559",[263,6.228]],["t/563",[264,6.228]],["t/565",[265,6.228]],["t/567",[266,6.228]],["t/569",[267,6.228]],["t/571",[268,6.228]],["t/573",[269,6.228]],["t/575",[270,6.228]],["t/577",[120,3.386,136,2.854,271,3.73]],["t/579",[272,6.228]],["t/581",[273,6.228]],["t/583",[274,6.228]],["t/587",[275,6.228]],["t/589",[276,6.228]],["t/591",[277,6.228]],["t/593",[278,6.228]],["t/595",[62,4.235,64,4.235]],["t/597",[279,6.228]],["t/599",[280,6.228]],["t/601",[281,6.228]],["t/603",[282,6.228]],["t/605",[283,6.228]],["t/609",[284,6.228]],["t/611",[285,6.228]],["t/613",[286,6.228]],["t/617",[287,6.228]],["t/619",[288,6.228]],["t/623",[289,6.228]],["t/625",[290,6.228]],["t/627",[291,6.228]],["t/629",[292,6.228]],["t/631",[293,6.228]],["t/633",[294,6.228]],["t/635",[295,6.228]],["t/637",[296,5.653]],["t/639",[297,6.228]],["t/641",[296,5.653]],["t/643",[298,6.228]],["t/645",[299,6.228]],["t/647",[300,6.228]],["t/649",[301,6.228]],["t/651",[302,6.228]],["t/653",[303,3.73,304,3.73,305,3.73]],["t/657",[306,6.228]],["t/659",[307,6.228]],["t/661",[308,6.228]],["t/665",[309,6.228]],["t/667",[310,6.228]],["t/671",[311,5.653]],["t/673",[312,6.228]],["t/675",[313,6.228]],["t/677",[314,6.228]],["t/679",[315,6.228]],["t/681",[316,6.228]],["t/685",[317,6.228]],["t/687",[318,3.107,319,3.107,320,3.107,321,3.107]],["t/689",[322,6.228]],["t/693",[323,6.228]],["t/695",[324,6.228]],["t/697",[325,6.228]],["t/699",[136,3.57,326,4.666]],["t/701",[327,6.228]],["t/703",[328,6.228]],["t/705",[329,6.228]],["t/707",[330,6.228]],["t/709",[331,6.228]],["t/711",[332,6.228]],["t/713",[333,6.228]],["t/715",[334,6.228]],["t/717",[335,6.228]],["t/719",[336,6.228]],["t/721",[136,3.57,337,4.666]],["t/723",[338,6.228]],["t/725",[339,6.228]],["t/729",[340,5.653]],["t/731",[340,5.653]],["t/733",[341,6.228]],["t/735",[342,6.228]],["t/737",[343,6.228]],["t/739",[344,6.228]],["t/741",[345,6.228]],["t/743",[346,6.228]],["t/745",[347,4.666,348,4.666]],["t/747",[349,5.653]],["t/749",[349,5.653]],["t/751",[350,5.653]],["t/753",[350,5.653]],["t/755",[351,6.228]],["t/757",[352,5.653]],["t/759",[352,5.653]],["t/761",[353,5.653]],["t/763",[353,5.653]],["t/765",[354,6.228]],["t/767",[355,6.228]],["t/769",[356,6.228]],["t/771",[357,6.228]],["t/773",[358,6.228]],["t/775",[359,6.228]],["t/777",[360,6.228]],["t/779",[361,6.228]],["t/781",[362,6.228]],["t/783",[363,6.228]],["t/785",[364,6.228]],["t/789",[365,6.228]],["t/791",[366,6.228]],["t/793",[367,6.228]],["t/795",[368,6.228]],["t/797",[369,6.228]],["t/799",[370,6.228]],["t/801",[371,6.228]],["t/803",[372,6.228]],["t/805",[373,6.228]],["t/807",[374,6.228]],["t/809",[375,6.228]],["t/811",[376,6.228]],["t/813",[377,6.228]],["t/815",[378,6.228]],["t/817",[379,6.228]],["t/819",[380,6.228]],["t/821",[381,6.228]],["t/823",[382,6.228]],["t/825",[383,6.228]],["t/827",[384,6.228]],["t/829",[385,6.228]],["t/831",[386,6.228]],["t/833",[387,6.228]],["t/835",[388,6.228]],["t/839",[389,6.228]],["t/841",[390,6.228]],["t/845",[391,6.228]],["t/847",[392,6.228]],["t/849",[393,6.228]],["t/853",[311,5.653]],["t/855",[191,5.653]],["t/857",[195,2.82,197,2.82,199,2.82,201,2.82]],["t/859",[394,6.228]],["t/861",[395,4.666,396,4.666]],["t/863",[397,6.228]],["t/865",[398,6.228]],["t/867",[399,6.228]],["t/869",[400,6.228]],["t/871",[401,6.228]],["t/873",[402,4.666,403,4.666]],["t/875",[404,6.228]],["t/877",[405,6.228]],["t/879",[406,6.228]]],"invertedIndex":[["0.1.0",{"_index":36,"t":{"75":{"position":[[0,5]]}}}],["0.10.0",{"_index":0,"t":{"3":{"position":[[0,6]]}}}],["0.2.0",{"_index":35,"t":{"73":{"position":[[0,5]]}}}],["0.2.1",{"_index":34,"t":{"71":{"position":[[0,5]]}}}],["0.2.2",{"_index":33,"t":{"69":{"position":[[0,5]]}}}],["0.3.0",{"_index":32,"t":{"67":{"position":[[0,5]]}}}],["0.3.1",{"_index":31,"t":{"65":{"position":[[0,5]]}}}],["0.3.2",{"_index":30,"t":{"63":{"position":[[0,5]]}}}],["0.4.0",{"_index":29,"t":{"61":{"position":[[0,5]]}}}],["0.4.1",{"_index":28,"t":{"59":{"position":[[0,5]]}}}],["0.4.2",{"_index":27,"t":{"57":{"position":[[0,5]]}}}],["0.4.3",{"_index":26,"t":{"55":{"position":[[0,5]]}}}],["0.4.4",{"_index":25,"t":{"53":{"position":[[0,5]]}}}],["0.4.5",{"_index":24,"t":{"51":{"position":[[0,5]]}}}],["0.5.0",{"_index":23,"t":{"49":{"position":[[0,5]]}}}],["0.5.1",{"_index":22,"t":{"47":{"position":[[0,5]]}}}],["0.5.2",{"_index":21,"t":{"45":{"position":[[0,5]]}}}],["0.5.3",{"_index":20,"t":{"43":{"position":[[0,5]]}}}],["0.5.4",{"_index":19,"t":{"41":{"position":[[0,5]]}}}],["0.6.0",{"_index":18,"t":{"39":{"position":[[0,5]]}}}],["0.6.1",{"_index":17,"t":{"37":{"position":[[0,5]]}}}],["0.6.2",{"_index":16,"t":{"35":{"position":[[0,5]]}}}],["0.6.3",{"_index":15,"t":{"33":{"position":[[0,5]]}}}],["0.7.0",{"_index":14,"t":{"31":{"position":[[0,5]]}}}],["0.7.1",{"_index":13,"t":{"29":{"position":[[0,5]]}}}],["0.7.2",{"_index":12,"t":{"27":{"position":[[0,5]]}}}],["0.7.3",{"_index":11,"t":{"25":{"position":[[0,5]]}}}],["0.7.4",{"_index":10,"t":{"23":{"position":[[0,5]]}}}],["0.8.0",{"_index":9,"t":{"21":{"position":[[0,5]]}}}],["0.8.1",{"_index":8,"t":{"19":{"position":[[0,5]]}}}],["0.8.2",{"_index":7,"t":{"17":{"position":[[0,5]]}}}],["0.9.0",{"_index":6,"t":{"15":{"position":[[0,5]]}}}],["0.9.1",{"_index":5,"t":{"13":{"position":[[0,5]]}}}],["0.9.2",{"_index":4,"t":{"11":{"position":[[0,5]]}}}],["0.9.3",{"_index":3,"t":{"9":{"position":[[0,5]]}}}],["0.9.4",{"_index":2,"t":{"7":{"position":[[0,5]]}}}],["0.9.5",{"_index":1,"t":{"5":{"position":[[0,5]]}}}],["1",{"_index":163,"t":{"352":{"position":[[8,1]]}}}],["2",{"_index":164,"t":{"354":{"position":[[8,1]]}}}],["__add",{"_index":195,"t":{"420":{"position":[[12,5]]},"857":{"position":[[0,6]]}}}],["__construct",{"_index":311,"t":{"671":{"position":[[0,11]]},"853":{"position":[[0,11]]}}}],["__div",{"_index":201,"t":{"428":{"position":[[0,5]]},"857":{"position":[[21,5]]}}}],["__eq",{"_index":394,"t":{"859":{"position":[[0,4]]}}}],["__len",{"_index":395,"t":{"861":{"position":[[0,6]]}}}],["__mod",{"_index":203,"t":{"430":{"position":[[12,5]]}}}],["__mul",{"_index":199,"t":{"424":{"position":[[12,5]]},"857":{"position":[[14,6]]}}}],["__pow",{"_index":205,"t":{"432":{"position":[[12,5]]}}}],["__sub",{"_index":197,"t":{"422":{"position":[[12,5]]},"857":{"position":[[7,6]]}}}],["__tostr",{"_index":191,"t":{"414":{"position":[[17,10]]},"855":{"position":[[0,10]]}}}],["_psoup",{"_index":276,"t":{"589":{"position":[[0,6]]}}}],["_pversion",{"_index":275,"t":{"587":{"position":[[0,9]]}}}],["ab",{"_index":401,"t":{"871":{"position":[[0,3]]}}}],["accept",{"_index":338,"t":{"723":{"position":[[0,6]]}}}],["access",{"_index":131,"t":{"249":{"position":[[11,6]]}}}],["add",{"_index":312,"t":{"673":{"position":[[0,3]]}}}],["addit",{"_index":160,"t":{"324":{"position":[[0,10]]}}}],["addloop",{"_index":313,"t":{"675":{"position":[[0,7]]}}}],["ae",{"_index":249,"t":{"525":{"position":[[0,3],[9,3]]},"531":{"position":[[0,3]]},"537":{"position":[[0,3]]}}}],["algorithm",{"_index":224,"t":{"476":{"position":[[26,10]]},"511":{"position":[[22,10]]}}}],["alias",{"_index":152,"t":{"310":{"position":[[9,7]]}}}],["alreadi",{"_index":150,"t":{"307":{"position":[[12,7]]}}}],["anonym",{"_index":124,"t":{"220":{"position":[[0,9]]},"328":{"position":[[0,9]]}}}],["ansi",{"_index":165,"t":{"356":{"position":[[0,4]]}}}],["apt",{"_index":71,"t":{"121":{"position":[[0,3]]}}}],["argument",{"_index":88,"t":{"153":{"position":[[16,8]]},"170":{"position":[[10,9]]},"236":{"position":[[7,9]]},"324":{"position":[[11,9]]}}}],["array",{"_index":116,"t":{"198":{"position":[[0,5]]}}}],["aspir",{"_index":82,"t":{"139":{"position":[[16,6]]}}}],["assert.contain",{"_index":182,"t":{"392":{"position":[[0,15]]}}}],["assert.equ",{"_index":173,"t":{"374":{"position":[[0,12]]}}}],["assert.falsi",{"_index":170,"t":{"368":{"position":[[0,12]]}}}],["assert.great",{"_index":177,"t":{"382":{"position":[[0,14]]}}}],["assert.greatereq",{"_index":178,"t":{"384":{"position":[[0,16]]}}}],["assert.haserror",{"_index":180,"t":{"388":{"position":[[0,15]]}}}],["assert.isfals",{"_index":169,"t":{"366":{"position":[[0,14]]}}}],["assert.isnil",{"_index":167,"t":{"362":{"position":[[0,12]]}}}],["assert.istru",{"_index":168,"t":{"364":{"position":[[0,13]]}}}],["assert.less",{"_index":175,"t":{"378":{"position":[[0,11]]}}}],["assert.lesseq",{"_index":176,"t":{"380":{"position":[[0,13]]}}}],["assert.nequ",{"_index":174,"t":{"376":{"position":[[0,13]]}}}],["assert.noerror",{"_index":179,"t":{"386":{"position":[[0,14]]}}}],["assert.notnil",{"_index":172,"t":{"372":{"position":[[0,13]]}}}],["assert.searcherror",{"_index":181,"t":{"390":{"position":[[0,18]]}}}],["assert.truthi",{"_index":171,"t":{"370":{"position":[[0,13]]}}}],["aur",{"_index":73,"t":{"123":{"position":[[0,3]]}}}],["bad",{"_index":99,"t":{"172":{"position":[[0,3]]}}}],["base32.decod",{"_index":184,"t":{"398":{"position":[[0,13]]}}}],["base32.encod",{"_index":183,"t":{"396":{"position":[[0,13]]}}}],["base64.decod",{"_index":186,"t":{"404":{"position":[[0,13]]}}}],["base64.encod",{"_index":185,"t":{"402":{"position":[[0,13]]}}}],["base64.urldecod",{"_index":188,"t":{"408":{"position":[[0,16]]}}}],["base64.urlencod",{"_index":187,"t":{"406":{"position":[[0,16]]}}}],["bigint.add",{"_index":194,"t":{"420":{"position":[[0,11]]}}}],["bigint.binari",{"_index":193,"t":{"418":{"position":[[0,13]]}}}],["bigint.bitlength",{"_index":206,"t":{"434":{"position":[[0,16]]}}}],["bigint.div",{"_index":200,"t":{"426":{"position":[[0,10]]}}}],["bigint.hex",{"_index":192,"t":{"416":{"position":[[0,10]]}}}],["bigint.mod",{"_index":202,"t":{"430":{"position":[[0,11]]}}}],["bigint.mul",{"_index":198,"t":{"424":{"position":[[0,11]]}}}],["bigint.new",{"_index":189,"t":{"412":{"position":[[0,10]]}}}],["bigint.pow",{"_index":204,"t":{"432":{"position":[[0,11]]}}}],["bigint.sub",{"_index":196,"t":{"422":{"position":[[0,11]]}}}],["bigint.tostr",{"_index":190,"t":{"414":{"position":[[0,16]]}}}],["binari",{"_index":46,"t":{"84":{"position":[[19,6]]},"116":{"position":[[9,8]]},"246":{"position":[[0,6]]}}}],["block",{"_index":147,"t":{"289":{"position":[[5,6]]}}}],["bytecod",{"_index":106,"t":{"180":{"position":[[13,8]]}}}],["call",{"_index":84,"t":{"145":{"position":[[9,5]]},"251":{"position":[[11,5]]},"326":{"position":[[8,5]]}}}],["canvas.bmp",{"_index":208,"t":{"440":{"position":[[0,10]]}}}],["canvas.fil",{"_index":212,"t":{"448":{"position":[[0,11]]}}}],["canvas.get",{"_index":210,"t":{"444":{"position":[[0,10]]}}}],["canvas.muls",{"_index":214,"t":{"452":{"position":[[0,14]]}}}],["canvas.new",{"_index":207,"t":{"438":{"position":[[0,10]]}}}],["canvas.qrcod",{"_index":209,"t":{"442":{"position":[[0,13]]}}}],["canvas.s",{"_index":213,"t":{"450":{"position":[[0,11]]}}}],["canvas.set",{"_index":211,"t":{"446":{"position":[[0,10]]}}}],["canvas.tobmp",{"_index":215,"t":{"454":{"position":[[0,12]]}}}],["canvas.tobwstr",{"_index":217,"t":{"458":{"position":[[0,17]]}}}],["canvas.topng",{"_index":216,"t":{"456":{"position":[[0,12]]}}}],["case",{"_index":146,"t":{"289":{"position":[[0,4]]}}}],["cat.decod",{"_index":219,"t":{"464":{"position":[[0,10]]}}}],["cat.encod",{"_index":218,"t":{"462":{"position":[[0,10]]}}}],["cbc",{"_index":250,"t":{"525":{"position":[[4,4]]}}}],["cdef",{"_index":274,"t":{"583":{"position":[[0,4]]}}}],["cfb",{"_index":251,"t":{"525":{"position":[[13,3]]}}}],["chain",{"_index":155,"t":{"314":{"position":[[11,8]]}}}],["chang",{"_index":112,"t":{"190":{"position":[[0,8]]}}}],["chocolatey",{"_index":70,"t":{"119":{"position":[[0,10]]}}}],["class",{"_index":136,"t":{"265":{"position":[[0,5]]},"267":{"position":[[0,5]]},"577":{"position":[[12,5]]},"699":{"position":[[7,5]]},"721":{"position":[[9,5]]}}}],["coalesc",{"_index":156,"t":{"316":{"position":[[0,10]]}}}],["code",{"_index":40,"t":{"80":{"position":[[9,4]]},"168":{"position":[[12,4]]},"176":{"position":[[13,4]]}}}],["color",{"_index":166,"t":{"356":{"position":[[5,8]]}}}],["comparevers",{"_index":282,"t":{"603":{"position":[[0,15]]}}}],["comparison",{"_index":154,"t":{"314":{"position":[[0,10]]}}}],["compat",{"_index":59,"t":{"104":{"position":[[0,13]]},"108":{"position":[[0,10]]},"155":{"position":[[6,13]]},"212":{"position":[[6,13]]},"222":{"position":[[6,13]]},"279":{"position":[[6,13]]},"293":{"position":[[6,13]]},"301":{"position":[[6,13]]}}}],["compil",{"_index":39,"t":{"80":{"position":[[0,8]]},"106":{"position":[[0,7]]},"127":{"position":[[0,7]]},"188":{"position":[[0,7]]},"208":{"position":[[0,8]]}}}],["compound",{"_index":153,"t":{"312":{"position":[[0,8]]}}}],["condit",{"_index":86,"t":{"149":{"position":[[0,12]]}}}],["configur",{"_index":54,"t":{"92":{"position":[[0,13]]},"106":{"position":[[13,13]]},"188":{"position":[[13,13]]}}}],["constructor",{"_index":142,"t":{"275":{"position":[[0,11]]}}}],["content",{"_index":37,"t":{"79":{"position":[[0,7]]}}}],["continue'",{"_index":87,"t":{"153":{"position":[[0,10]]}}}],["coroutine.sleep",{"_index":221,"t":{"470":{"position":[[0,15]]}}}],["coroutine.xresum",{"_index":220,"t":{"468":{"position":[[0,17]]}}}],["cosmet",{"_index":127,"t":{"244":{"position":[[0,8]]}}}],["creation",{"_index":133,"t":{"259":{"position":[[7,8]]}}}],["crypto.adler32",{"_index":233,"t":{"493":{"position":[[0,14]]}}}],["crypto.crc32",{"_index":232,"t":{"491":{"position":[[0,12]]}}}],["crypto.decompress",{"_index":263,"t":{"559":{"position":[[0,17]]}}}],["crypto.decrypt",{"_index":253,"t":{"529":{"position":[[0,14]]},"535":{"position":[[0,14]]},"541":{"position":[[0,14]]},"552":{"position":[[0,14]]}}}],["crypto.djb2",{"_index":227,"t":{"481":{"position":[[0,11]]}}}],["crypto.encrypt",{"_index":252,"t":{"527":{"position":[[0,14]]},"533":{"position":[[0,14]]},"539":{"position":[[0,14]]},"550":{"position":[[0,14]]}}}],["crypto.exportkey",{"_index":258,"t":{"546":{"position":[[0,16]]}}}],["crypto.fnv1",{"_index":228,"t":{"483":{"position":[[0,11]]}}}],["crypto.fnv1a",{"_index":229,"t":{"485":{"position":[[0,12]]}}}],["crypto.generatekeypair",{"_index":257,"t":{"544":{"position":[[0,22]]}}}],["crypto.importkey",{"_index":259,"t":{"548":{"position":[[0,16]]}}}],["crypto.joaat",{"_index":230,"t":{"487":{"position":[[0,12]]}}}],["crypto.lookup3",{"_index":234,"t":{"495":{"position":[[0,14]]}}}],["crypto.lua",{"_index":225,"t":{"477":{"position":[[0,10]]}}}],["crypto.md5",{"_index":226,"t":{"479":{"position":[[0,10]]}}}],["crypto.murmur1",{"_index":236,"t":{"499":{"position":[[0,14]]}}}],["crypto.murmur2",{"_index":237,"t":{"501":{"position":[[0,14]]}}}],["crypto.murmur2a",{"_index":238,"t":{"503":{"position":[[0,15]]}}}],["crypto.murmur2neutr",{"_index":241,"t":{"509":{"position":[[0,21]]}}}],["crypto.murmur64a",{"_index":239,"t":{"505":{"position":[[0,16]]}}}],["crypto.murmur64b",{"_index":240,"t":{"507":{"position":[[0,16]]}}}],["crypto.random",{"_index":248,"t":{"523":{"position":[[0,13]]}}}],["crypto.ripemd160",{"_index":246,"t":{"520":{"position":[[0,16]]}}}],["crypto.sdbm",{"_index":231,"t":{"489":{"position":[[0,11]]}}}],["crypto.sha1",{"_index":242,"t":{"512":{"position":[[0,11]]}}}],["crypto.sha256",{"_index":243,"t":{"514":{"position":[[0,13]]}}}],["crypto.sha384",{"_index":244,"t":{"516":{"position":[[0,13]]}}}],["crypto.sha512",{"_index":245,"t":{"518":{"position":[[0,13]]}}}],["crypto.sign",{"_index":260,"t":{"554":{"position":[[0,11]]}}}],["crypto.times33",{"_index":235,"t":{"497":{"position":[[0,14]]}}}],["crypto.verifi",{"_index":261,"t":{"556":{"position":[[0,13]]}}}],["cryptograph",{"_index":222,"t":{"476":{"position":[[4,13]]},"511":{"position":[[0,13]]},"522":{"position":[[0,13]]}}}],["custom",{"_index":41,"t":{"82":{"position":[[0,6]]}}}],["default",{"_index":62,"t":{"110":{"position":[[0,7]]},"595":{"position":[[0,7]]}}}],["destructur",{"_index":117,"t":{"198":{"position":[[6,13]]},"200":{"position":[[6,13]]}}}],["differ",{"_index":118,"t":{"202":{"position":[[0,9]]}}}],["disabl",{"_index":114,"t":{"192":{"position":[[0,7]]}}}],["discard",{"_index":110,"t":{"186":{"position":[[0,9]]}}}],["doesn't",{"_index":148,"t":{"307":{"position":[[0,7]]}}}],["dot",{"_index":400,"t":{"869":{"position":[[0,3]]}}}],["dump",{"_index":53,"t":{"90":{"position":[[3,7]]}}}],["dumpvar",{"_index":279,"t":{"597":{"position":[[0,7]]}}}],["ecb",{"_index":254,"t":{"531":{"position":[[4,3]]}}}],["enum",{"_index":122,"t":{"216":{"position":[[7,5]]},"220":{"position":[[10,5]]}}}],["errorfunc",{"_index":316,"t":{"681":{"position":[[0,9]]}}}],["exampl",{"_index":162,"t":{"352":{"position":[[0,7]]},"354":{"position":[[0,7]]}}}],["excess",{"_index":98,"t":{"170":{"position":[[0,9]]}}}],["execut",{"_index":47,"t":{"86":{"position":[[0,9]]}}}],["exportvar",{"_index":280,"t":{"599":{"position":[[0,9]]}}}],["express",{"_index":138,"t":{"267":{"position":[[6,10]]},"271":{"position":[[7,10]]},"291":{"position":[[7,10]]},"305":{"position":[[3,11]]}}}],["extend",{"_index":139,"t":{"269":{"position":[[0,7]]}}}],["fallthrough",{"_index":108,"t":{"182":{"position":[[12,11]]}}}],["ffi",{"_index":271,"t":{"577":{"position":[[0,3]]}}}],["ffi.cdef",{"_index":267,"t":{"569":{"position":[[0,8]]}}}],["ffi.new",{"_index":266,"t":{"567":{"position":[[0,7]]}}}],["ffi.nullptr",{"_index":270,"t":{"575":{"position":[[0,11]]}}}],["ffi.offsetof",{"_index":269,"t":{"573":{"position":[[0,12]]}}}],["ffi.open",{"_index":264,"t":{"563":{"position":[[0,8]]}}}],["ffi.sizeof",{"_index":268,"t":{"571":{"position":[[0,10]]}}}],["ffi.struct",{"_index":265,"t":{"565":{"position":[[0,10]]}}}],["field",{"_index":95,"t":{"164":{"position":[[0,5]]},"273":{"position":[[8,6]]}}}],["filter",{"_index":43,"t":{"82":{"position":[[14,7]]}}}],["function",{"_index":83,"t":{"145":{"position":[[0,8]]},"261":{"position":[[7,9]]},"328":{"position":[[10,9]]}}}],["gcm",{"_index":255,"t":{"537":{"position":[[4,3]]}}}],["global",{"_index":94,"t":{"162":{"position":[[0,6]]},"184":{"position":[[9,6]]}}}],["hasconnect",{"_index":339,"t":{"725":{"position":[[0,13]]}}}],["hash",{"_index":223,"t":{"476":{"position":[[18,7]]},"511":{"position":[[14,7]]}}}],["http.closeconnect",{"_index":286,"t":{"613":{"position":[[0,21]]}}}],["http.hasconnect",{"_index":285,"t":{"611":{"position":[[0,18]]}}}],["http.request",{"_index":284,"t":{"609":{"position":[[0,12]]}}}],["implicit",{"_index":109,"t":{"184":{"position":[[0,8]]}}}],["infinit",{"_index":50,"t":{"88":{"position":[[0,8]]}}}],["instal",{"_index":56,"t":{"98":{"position":[[0,12]]}}}],["instanceof",{"_index":144,"t":{"277":{"position":[[0,10]]}}}],["integ",{"_index":129,"t":{"246":{"position":[[7,8]]}}}],["io.absolut",{"_index":298,"t":{"643":{"position":[[0,11]]}}}],["io.chdir",{"_index":304,"t":{"653":{"position":[[15,9]]}}}],["io.cont",{"_index":300,"t":{"647":{"position":[[0,11]]}}}],["io.copi",{"_index":291,"t":{"627":{"position":[[0,7]]}}}],["io.currentdir",{"_index":303,"t":{"653":{"position":[[0,14]]}}}],["io.cwd",{"_index":305,"t":{"653":{"position":[[25,6]]}}}],["io.exist",{"_index":295,"t":{"635":{"position":[[0,9]]}}}],["io.files",{"_index":301,"t":{"649":{"position":[[0,11]]}}}],["io.isdir",{"_index":293,"t":{"631":{"position":[[0,8]]}}}],["io.isfil",{"_index":294,"t":{"633":{"position":[[0,9]]}}}],["io.listdir",{"_index":297,"t":{"639":{"position":[[0,10]]}}}],["io.makedir",{"_index":296,"t":{"637":{"position":[[0,10]]},"641":{"position":[[0,11]]}}}],["io.part",{"_index":292,"t":{"629":{"position":[[0,7]]}}}],["io.rel",{"_index":299,"t":{"645":{"position":[[0,11]]}}}],["io.remov",{"_index":290,"t":{"625":{"position":[[0,9]]}}}],["io.renam",{"_index":289,"t":{"623":{"position":[[0,9]]}}}],["io.writetim",{"_index":302,"t":{"651":{"position":[[0,12]]}}}],["json.decod",{"_index":288,"t":{"619":{"position":[[0,11]]}}}],["json.encod",{"_index":287,"t":{"617":{"position":[[0,11]]}}}],["keyword",{"_index":58,"t":{"102":{"position":[[4,8]]},"108":{"position":[[11,8]]}}}],["librari",{"_index":120,"t":{"204":{"position":[[9,7]]},"577":{"position":[[4,7]]}}}],["limit",{"_index":49,"t":{"86":{"position":[[15,5]]},"238":{"position":[[0,11]]}}}],["line",{"_index":115,"t":{"192":{"position":[[20,4]]}}}],["listen",{"_index":337,"t":{"721":{"position":[[0,8]]}}}],["load",{"_index":45,"t":{"84":{"position":[[8,7]]}}}],["look",{"_index":55,"t":{"94":{"position":[[8,5]]}}}],["lookat",{"_index":405,"t":{"877":{"position":[[0,6]]}}}],["loop",{"_index":51,"t":{"88":{"position":[[9,4]]}}}],["lua",{"_index":149,"t":{"307":{"position":[[8,3]]}}}],["magnitud",{"_index":396,"t":{"861":{"position":[[7,9]]}}}],["make",{"_index":80,"t":{"133":{"position":[[0,4]]}}}],["math.atan2",{"_index":308,"t":{"661":{"position":[[0,10]]}}}],["math.isnan",{"_index":306,"t":{"657":{"position":[[0,10]]}}}],["math.round",{"_index":307,"t":{"659":{"position":[[0,10]]}}}],["max",{"_index":399,"t":{"867":{"position":[[0,3]]}}}],["member",{"_index":130,"t":{"249":{"position":[[4,6]]}}}],["metat",{"_index":64,"t":{"110":{"position":[[14,9]]},"595":{"position":[[8,10]]}}}],["method",{"_index":132,"t":{"251":{"position":[[4,6]]},"259":{"position":[[0,6]]},"326":{"position":[[0,7]]}}}],["min",{"_index":398,"t":{"865":{"position":[[0,3]]}}}],["miscellan",{"_index":262,"t":{"558":{"position":[[0,13]]}}}],["mismatch",{"_index":96,"t":{"166":{"position":[[5,8]]}}}],["mix",{"_index":126,"t":{"236":{"position":[[0,6]]}}}],["mode",{"_index":60,"t":{"104":{"position":[[14,4]]},"155":{"position":[[20,5]]},"212":{"position":[[20,5]]},"222":{"position":[[20,5]]},"279":{"position":[[20,5]]},"293":{"position":[[20,5]]},"301":{"position":[[20,5]]}}}],["moder",{"_index":38,"t":{"79":{"position":[[8,10]]}}}],["modul",{"_index":42,"t":{"82":{"position":[[7,6]]},"84":{"position":[[26,7]]}}}],["name",{"_index":105,"t":{"178":{"position":[[13,4]]},"202":{"position":[[19,4]]}}}],["new",{"_index":57,"t":{"102":{"position":[[0,3]]},"263":{"position":[[0,3]]}}}],["non",{"_index":103,"t":{"176":{"position":[[0,3]]},"178":{"position":[[0,3]]},"180":{"position":[[0,3]]},"476":{"position":[[0,3]]}}}],["normal",{"_index":402,"t":{"873":{"position":[[0,11]]}}}],["normalis",{"_index":403,"t":{"873":{"position":[[12,10]]}}}],["onlin",{"_index":67,"t":{"114":{"position":[[12,6]]}}}],["oper",{"_index":135,"t":{"263":{"position":[[4,8]]},"277":{"position":[[11,8]]},"310":{"position":[[0,8]]},"312":{"position":[[9,9]]},"316":{"position":[[11,8]]},"318":{"position":[[7,8]]},"320":{"position":[[10,8]]},"322":{"position":[[5,8]]}}}],["os.micro",{"_index":319,"t":{"687":{"position":[[10,10]]}}}],["os.milli",{"_index":320,"t":{"687":{"position":[[21,10]]}}}],["os.nano",{"_index":318,"t":{"687":{"position":[[0,9]]}}}],["os.platform",{"_index":277,"t":{"591":{"position":[[0,11]]}}}],["os.second",{"_index":321,"t":{"687":{"position":[[32,10]]}}}],["os.sleep",{"_index":317,"t":{"685":{"position":[[0,8]]}}}],["os.unixsecond",{"_index":322,"t":{"689":{"position":[[0,14]]}}}],["packag",{"_index":69,"t":{"118":{"position":[[0,8]]}}}],["package.path",{"_index":278,"t":{"593":{"position":[[0,12]]}}}],["parent",{"_index":140,"t":{"271":{"position":[[0,6]]}}}],["php",{"_index":76,"t":{"129":{"position":[[0,3]]}}}],["pipe",{"_index":159,"t":{"322":{"position":[[0,4]]}}}],["pluto",{"_index":66,"t":{"114":{"position":[[6,5]]},"127":{"position":[[8,5]]},"139":{"position":[[10,5]]}}}],["pluto_us",{"_index":61,"t":{"106":{"position":[[27,11]]}}}],["portabl",{"_index":104,"t":{"176":{"position":[[4,8]]},"178":{"position":[[4,8]]},"180":{"position":[[4,8]]}}}],["possibl",{"_index":101,"t":{"174":{"position":[[0,8]]}}}],["practic",{"_index":100,"t":{"172":{"position":[[4,8]]}}}],["prebuilt",{"_index":68,"t":{"116":{"position":[[0,8]]}}}],["prevent",{"_index":44,"t":{"84":{"position":[[0,7]]},"88":{"position":[[14,10]]},"283":{"position":[[15,8]]}}}],["privat",{"_index":141,"t":{"273":{"position":[[0,7]]}}}],["prng",{"_index":247,"t":{"522":{"position":[[14,5]]}}}],["promot",{"_index":143,"t":{"275":{"position":[[12,9]]}}}],["rang",{"_index":281,"t":{"601":{"position":[[0,5]]}}}],["reflect",{"_index":123,"t":{"218":{"position":[[0,10]]}}}],["regex.match",{"_index":310,"t":{"667":{"position":[[0,11]]}}}],["regex.new",{"_index":309,"t":{"665":{"position":[[0,9]]}}}],["repositori",{"_index":72,"t":{"121":{"position":[[4,10]]}}}],["return",{"_index":111,"t":{"186":{"position":[[10,6]]}}}],["rsa",{"_index":256,"t":{"543":{"position":[[0,3]]}}}],["rule",{"_index":125,"t":{"230":{"position":[[0,5]]}}}],["run",{"_index":314,"t":{"677":{"position":[[0,3]]}}}],["scope",{"_index":121,"t":{"216":{"position":[[0,6]]}}}],["script",{"_index":77,"t":{"129":{"position":[[4,7]]}}}],["shadow",{"_index":93,"t":{"160":{"position":[[4,6]]},"162":{"position":[[7,6]]},"164":{"position":[[6,6]]}}}],["socket",{"_index":326,"t":{"699":{"position":[[0,6]]}}}],["socket.bind",{"_index":325,"t":{"697":{"position":[[0,11]]}}}],["socket.clos",{"_index":332,"t":{"711":{"position":[[0,12]]}}}],["socket.connect",{"_index":323,"t":{"693":{"position":[[0,14]]}}}],["socket.getp",{"_index":333,"t":{"713":{"position":[[0,14]]}}}],["socket.getsid",{"_index":334,"t":{"715":{"position":[[0,14]]}}}],["socket.isopen",{"_index":336,"t":{"719":{"position":[[0,13]]}}}],["socket.istl",{"_index":335,"t":{"717":{"position":[[0,12]]}}}],["socket.listen",{"_index":324,"t":{"695":{"position":[[0,13]]}}}],["socket.peek",{"_index":329,"t":{"705":{"position":[[0,11]]}}}],["socket.recv",{"_index":328,"t":{"703":{"position":[[0,11]]}}}],["socket.send",{"_index":327,"t":{"701":{"position":[[0,11]]}}}],["socket.starttl",{"_index":331,"t":{"709":{"position":[[0,15]]}}}],["socket.unrecv",{"_index":330,"t":{"707":{"position":[[0,13]]}}}],["spaceship",{"_index":158,"t":{"320":{"position":[[0,9]]}}}],["standard",{"_index":119,"t":{"204":{"position":[[0,8]]}}}],["state",{"_index":113,"t":{"190":{"position":[[17,6]]}}}],["statement",{"_index":137,"t":{"265":{"position":[[6,9]]},"287":{"position":[[7,9]]}}}],["static",{"_index":134,"t":{"261":{"position":[[0,6]]}}}],["string.casefold",{"_index":382,"t":{"823":{"position":[[0,15]]}}}],["string.contain",{"_index":381,"t":{"821":{"position":[[0,15]]}}}],["string.endswith",{"_index":385,"t":{"829":{"position":[[0,15]]}}}],["string.formatint",{"_index":383,"t":{"825":{"position":[[0,16]]}}}],["string.fromhex",{"_index":388,"t":{"835":{"position":[[0,14]]}}}],["string.isalnum",{"_index":376,"t":{"811":{"position":[[0,14]]}}}],["string.isalpha",{"_index":374,"t":{"807":{"position":[[0,14]]}}}],["string.isascii",{"_index":372,"t":{"803":{"position":[[0,14]]}}}],["string.islow",{"_index":373,"t":{"805":{"position":[[0,14]]}}}],["string.isupp",{"_index":375,"t":{"809":{"position":[[0,14]]}}}],["string.iswhitespac",{"_index":377,"t":{"813":{"position":[[0,19]]}}}],["string.low",{"_index":366,"t":{"791":{"position":[[0,12]]}}}],["string.lstrip",{"_index":370,"t":{"799":{"position":[[0,13]]}}}],["string.partit",{"_index":384,"t":{"827":{"position":[[0,16]]}}}],["string.replac",{"_index":379,"t":{"817":{"position":[[0,14]]}}}],["string.rfind",{"_index":368,"t":{"795":{"position":[[0,12]]}}}],["string.rstrip",{"_index":371,"t":{"801":{"position":[[0,13]]}}}],["string.split",{"_index":367,"t":{"793":{"position":[[0,12]]}}}],["string.startswith",{"_index":386,"t":{"831":{"position":[[0,17]]}}}],["string.strip",{"_index":369,"t":{"797":{"position":[[0,12]]}}}],["string.tohex",{"_index":387,"t":{"833":{"position":[[0,12]]}}}],["string.trunc",{"_index":380,"t":{"819":{"position":[[0,15]]}}}],["string.uformat",{"_index":378,"t":{"815":{"position":[[0,14]]}}}],["string.upp",{"_index":365,"t":{"789":{"position":[[0,12]]}}}],["studio",{"_index":79,"t":{"131":{"position":[[7,6]]}}}],["sum",{"_index":397,"t":{"863":{"position":[[0,3]]}}}],["sun",{"_index":81,"t":{"135":{"position":[[0,3]]}}}],["switch",{"_index":145,"t":{"287":{"position":[[0,6]]},"291":{"position":[[0,6]]}}}],["tabl",{"_index":63,"t":{"110":{"position":[[8,5]]},"200":{"position":[[0,5]]}}}],["table.back",{"_index":361,"t":{"779":{"position":[[0,10]]}}}],["table.checkal",{"_index":357,"t":{"771":{"position":[[0,14]]}}}],["table.chunk",{"_index":360,"t":{"777":{"position":[[0,11]]}}}],["table.clear",{"_index":342,"t":{"735":{"position":[[0,11]]}}}],["table.contain",{"_index":345,"t":{"741":{"position":[[0,14]]}}}],["table.countvalu",{"_index":359,"t":{"775":{"position":[[0,17]]}}}],["table.filt",{"_index":352,"t":{"757":{"position":[[0,12]]},"759":{"position":[[0,14]]}}}],["table.find",{"_index":346,"t":{"743":{"position":[[0,10]]}}}],["table.findindex",{"_index":348,"t":{"745":{"position":[[15,15]]}}}],["table.findkey",{"_index":347,"t":{"745":{"position":[[0,14]]}}}],["table.foreach",{"_index":351,"t":{"755":{"position":[[0,13]]}}}],["table.freez",{"_index":343,"t":{"737":{"position":[[0,12]]}}}],["table.isfrozen",{"_index":344,"t":{"739":{"position":[[0,14]]}}}],["table.key",{"_index":358,"t":{"773":{"position":[[0,10]]}}}],["table.map",{"_index":353,"t":{"761":{"position":[[0,9]]},"763":{"position":[[0,12]]}}}],["table.max",{"_index":356,"t":{"769":{"position":[[0,9]]}}}],["table.min",{"_index":355,"t":{"767":{"position":[[0,9]]}}}],["table.modget",{"_index":363,"t":{"783":{"position":[[0,12]]}}}],["table.modset",{"_index":364,"t":{"785":{"position":[[0,12]]}}}],["table.reduc",{"_index":354,"t":{"765":{"position":[[0,12]]}}}],["table.reord",{"_index":350,"t":{"751":{"position":[[0,13]]},"753":{"position":[[0,15]]}}}],["table.revers",{"_index":349,"t":{"747":{"position":[[0,13]]},"749":{"position":[[0,14]]}}}],["table.s",{"_index":341,"t":{"733":{"position":[[0,10]]}}}],["table.slic",{"_index":362,"t":{"781":{"position":[[0,11]]}}}],["table.sort",{"_index":340,"t":{"729":{"position":[[0,10]]},"731":{"position":[[0,12]]}}}],["termux",{"_index":74,"t":{"125":{"position":[[0,6]]}}}],["ternari",{"_index":151,"t":{"307":{"position":[[25,10]]}}}],["time",{"_index":48,"t":{"86":{"position":[[10,4]]},"106":{"position":[[8,4]]},"188":{"position":[[8,4]]}}}],["todir",{"_index":406,"t":{"879":{"position":[[0,5]]}}}],["torot",{"_index":404,"t":{"875":{"position":[[0,5]]}}}],["type",{"_index":91,"t":{"159":{"position":[[8,5]]},"166":{"position":[[0,4]]},"297":{"position":[[5,5]]}}}],["typo",{"_index":102,"t":{"174":{"position":[[9,4]]}}}],["unannot",{"_index":107,"t":{"182":{"position":[[0,11]]}}}],["underscor",{"_index":128,"t":{"244":{"position":[[9,11]]}}}],["unreach",{"_index":97,"t":{"168":{"position":[[0,11]]}}}],["url.decod",{"_index":392,"t":{"847":{"position":[[0,10]]}}}],["url.encod",{"_index":391,"t":{"845":{"position":[[0,10]]}}}],["url.pars",{"_index":393,"t":{"849":{"position":[[0,9]]}}}],["us",{"_index":89,"t":{"155":{"position":[[0,5]]},"212":{"position":[[0,5]]},"222":{"position":[[0,5]]},"279":{"position":[[0,5]]},"293":{"position":[[0,5]]},"297":{"position":[[17,4]]},"301":{"position":[[0,5]]}}}],["valu",{"_index":273,"t":{"581":{"position":[[0,5]]}}}],["var",{"_index":92,"t":{"160":{"position":[[0,3]]}}}],["variabl",{"_index":85,"t":{"147":{"position":[[0,9]]},"202":{"position":[[10,8]]}}}],["visual",{"_index":78,"t":{"131":{"position":[[0,6]]}}}],["vm",{"_index":52,"t":{"90":{"position":[[0,2]]}}}],["walru",{"_index":157,"t":{"318":{"position":[[0,6]]}}}],["warn",{"_index":90,"t":{"159":{"position":[[0,7]]},"190":{"position":[[9,7]]},"192":{"position":[[8,8]]},"208":{"position":[[9,8]]}}}],["wcall",{"_index":283,"t":{"605":{"position":[[0,5]]}}}],["work",{"_index":161,"t":{"332":{"position":[[12,5]]}}}],["wrap",{"_index":272,"t":{"579":{"position":[[0,4]]}}}],["write",{"_index":65,"t":{"114":{"position":[[0,5]]}}}],["xml.decod",{"_index":390,"t":{"841":{"position":[[0,10]]}}}],["xml.encod",{"_index":389,"t":{"839":{"position":[[0,10]]}}}],["yieldfunc",{"_index":315,"t":{"679":{"position":[[0,9]]}}}],["yourself",{"_index":75,"t":{"127":{"position":[[14,8]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":2,"t":"This page contains the changelogs from all releases of Pluto.","s":"Changelog","u":"/docs/Changelog","h":"","p":1},{"i":4,"t":"Added chained comparisons (e.g. 1 <= i <= #t) Added private methods to classes Private fields (and methods) can be declared and accessed anywhere inside the class now. Previously, you needed to define a private field before you accessed it. This is no longer a restriction. Pluto now automatically detects if non-compatible keywords should be enabled or disabled based on usage This is overwritten by the scripter using pluto_use or the integrator or user managing compatibility mode, so it only applies when absolutely zero configuration has been applied. This is a significant improvement for lua source code compatibility. do can now be used instead of then and begin if expressions are now no longer deprecated but require an end (e.g. print(if a then b else c end)) $define statement now requires an assignment Fixed handling when an invalid RSA private key is passed to crypto.encrypt, crypto.decrypt, crypto.sign Fixed not being able to load Lua C modules on Linux For simplicity in this regard, Pluto now always uses the C ABI to export lua_ functions and the C++ ABI for pluto_ functions. Standard library: Added canvas library Added ffi library Added regex library Added assert.contains Added bigint.eq, bigint.lt, & bigint.le Added crypto.ripemd160 Added crypto.exportkey & crypto.importkey Added crypto.decompress Added string.tohex & string.fromhex Added table.findindex/findkey, table.back, table.keys, table.modget, table.modset, table.slice, table.countvalues, & table.chunk Added socket.getpeer, socket.peek, socket.getside, socket.istls, & socket.isopen Added optional limit argument to string.split Added io.cwd and io.chdir as aliases for io.currentdir socket.starttls can now be used on server sockets Optimized json.encode with __order","s":"0.10.0","u":"/docs/Changelog","h":"#0100","p":1},{"i":6,"t":"Fixed io.contents not returning an empty string for empty files on Windows Fixed table.clear not resetting cached length Fixed http.request allowing header values to contain CR and LF (CVE-2024-45597) Fixed strings implicitly concatenating with each other Fixed incorrect formatting with some instances of VM dumping PHP build scripts now pass on additional arguments to the compiler From Lua: Fixed wrong code gen for indices with comparisons","s":"0.9.5","u":"/docs/Changelog","h":"#095","p":1},{"i":8,"t":"Improved field-shadow warning to say which field is shadowed Improved handing of parent keyword Improved error message for if then Fixed an 'else if' warning false-positive Fixed compile-time concat sometimes causing a parse error Fixed infinite loop with nested switch expressions when flow should go to default case Fixed exception when raising argument type mismatch warning when expected type is a function Fixed a compatibility issue with return case Standard library: Made string.replace binary-safe and faster CaT module now supports the optional value encoding feature","s":"0.9.4","u":"/docs/Changelog","h":"#094","p":1},{"i":10,"t":"Added a warning for '(' being used instead of '|' for pipe operator arguments Improved error reporting when an invalid parent is given to 'extends' Fixed extending a global class unexpectedly pushing _G Fixed incorrect results when using 'not' on result of null coalescing operator As a result of this fix, the null coalescing operator is now bytecode-compatible with Lua Fixed parsing ambiguities with ternary expressions in switch cases Standard library: Fixed json.encode(json.decode(..., json.withnull + json.withorder)) producing unexpected artifacts Fixed data corruption when json.decode is used on large data Fixed insufficient TLS peer verification in HTTP library and socket.starttls in non-WASM builds (CVE-2024-32973)","s":"0.9.3","u":"/docs/Changelog","h":"#093","p":1},{"i":12,"t":"This release fixes several regressions made in 0.9.1: Fixed failing to compile on aarch64 Fixed method calls no longer working in ternary expressions even with parentheses Fixed walrus operator no longer being usable within unary operator expressions Furthermore, it improves the walrus operator in regards to disallowing UB and clarifying related error messages.","s":"0.9.2","u":"/docs/Changelog","h":"#092","p":1},{"i":14,"t":"Improved try/catch Improved parsing of for-as loops Deprecated if expressions (if a then b else c) in favor of ternary expressions (a ? b : c) Fixed instances of : starting method call when it should delimit ternary expression Fixed unreachable-code triggering for non-constant values Fixed repeat + continue being able to read uninitialized variables Fixed break and continue possibly not closing upvalues Fixed continue not working as expected when passing through switch statement Fixed switch cases being able to read uninitialized variables Fixed inconsistent behavior with safe navigtion method calls and multiple return values Fixed walrus operator being able to cause UB or corrupt the stack Fixed pipe operator possibly generating incorrect code Huge thanks to @XmiliaH for reporting the majority of bugs fixed in this update and helping fix them.","s":"0.9.1","u":"/docs/Changelog","h":"#091","p":1},{"i":16,"t":"Added $define statement Added pipe operator (|>) Added compound XOR operator (~=) Added optional global keyword and 'implicit-global' warning Added @fallthrough annotation and 'unannotated-fallthrough' warning Added function attribute and 'discarded-return' warning Added 'field-shadow' warning Lambdas can now have full bodies by starting with 'do' (e.g. |a| -> do return a end) pluto_use can now also be used via @pluto_use in comments new operator now also supports static 'new' function Deprecated ** operator (use ^ instead) Deprecated let statement (use local instead) Deprecated const statement (use local with or $define instead) Deprecated attribute (replaced by $define statement) Re-added compile-time concat optimization Fixed switch cases being able to jump into the scope of a variable Fixed being able to set nil as a default argument Standard library: Added '*' library Added 'cat' library Added 'http' library Added 'socket' library Added 'xml' library Added 'bigint' class Added 'scheduler' class Added os.platform constant Added range function Added io.contents function Added io.relative function Added copying variants of existing functions (table.sorted, table.mapped, table.filtered, table.reversed, table.reordered) Added table.size function Added table.clear function Added table.reduce, table.min, & table.max functions Added table.find function Added table.checkall function Added coroutine.sleep function Added crypto.generatekeypair function Added crypto.encrypt & crypto.decrypt functions Added crypto.sign & crypto.verify functions Added crypto.sha1, crypto.sha384, & crypto.sha512 functions Added crypto.adler32 function Added url.parse function Added math.round function json.encode now supports __order for objects json.decode now has an optional flags parameter, they can be combined via binary OR json.withnull makes it decode JSON nulls as json.null instead of nil json.withorder makes it produce __order field for objects coroutines/threads now have a metatable by default base64.encode & base32.encode changed padding parameter's default value from false to true (base64.urlencode is unchanged) Fixed crypto.fnv1 & crypto.fnv1a producing incorrect hashes for non-ASCII strings CLI: Added '-c' flag to pluto & plutoc to enable compatibility mode For integrators: Added PLUTO_READ_FILE_HOOK & PLUTO_WRITE_FILE_HOOK Added PLUTO_HTTP_REQUEST_HOOK Removed PLUTO_USE_THROW as we now default to using C++ exceptions for Lua errors to avoid breaking RAII semantics. You can still specify LUA_USE_LONGJMP if you want long jumps.","s":"0.9.0","u":"/docs/Changelog","h":"#090","p":1},{"i":18,"t":"Added variable scoping warnings to switch statements to highlight code that will break in 0.9.0 Improved some error messages Fixed base32 & base64 functions not being binary-safe Removed compile-time concat optimization because it could produce incorrect results","s":"0.8.2","u":"/docs/Changelog","h":"#082","p":1},{"i":20,"t":"Added a specialized error message for local class = etc 'exportvar' now prefixes function bytecode with 'load' Improved code generation for switch blocks Improved \"possibly unwanted function call\" warning Fixed dumpvar & exportvar not handling recursion of sub-tables Fixed assert.equal & assert.nequal ignoring extra fields in value2 Fixed 'until' possibly using a variable from wrong scope due to 'continue' Fixed var-shadow warning for named vararg being raised on the wrong line For integrators: Added PLUTO_MEMORY_LIMIT Added PLUTO_NO_DEBUGLIB Added PLUTO_NO_COROLIB For a more comprehensive overview of the changes, take a look at the commit log.","s":"0.8.1","u":"/docs/Changelog","h":"#081","p":1},{"i":22,"t":"Added switch expressions Added shorthand fallthrough syntax for switch statement & expression, e.g. case 1, 2: ... Added try...catch statement Added spaceship operator (<=>) Added safe navigation for method calls: nilable_inst?:method(), inst:nilable_method?(), nilable_inst?:nilable_method?() Added optional 'const' keyword as shorthand for local ... [= ...], enabled with pluto_use const. Added pluto_use \"VERSION+\" Tables now have a metatable by default ({ __index = _G.table }). Added '!' as an alias for 'not' Added 'private' modifier for class fields Improved 'class' and 'extends' to support indexed names Improved 'instanceof' to be usable with more complex expressions export now works in all scopes, not just the main body Updated in operator on tables to check values instead of keys \\{ is now a valid escape sequence (for interpolated strings) Fixed to-be-closed variables not working in switch cases Fixed 'new' not working as expected if it was disabled by the environment and re-enabled by 'pluto_use' Fixed 'enum class' not incrementing enumerator values Fixed not being able to use expressions such as increment in enum without parentheses Added compile-time concat optimization Warnings: Added warning for local attributes used without '<' ... '>' Now propagating types for global variables so when their value is assigned to something, mismatches can be detected. Added optional global-shadow warning which is like var-shadow but for globals that are especially vulnerable to obscure shadowing bugs (to prevent excessive annoyance). These globals include: arg,string, and table. Integrators can change this via PLUTO_COMMON_GLOBAL_NAMES Global shadow warnings do not apply to localization optimization (i.e, local table = table) var-shadow has been improved to check more enclosing scopes Improved unreachable-code Fixed var-shadow warning for locals used in switch cases despite break Added optional non-portable-code, non-portable-bytecode, and non-portable-name warning types Warnings can now be promoted to errors, e.g. @pluto_warnings error-all Standard library: Soup is now always linked in, obsoleting _PSOUP Added assertion library (see here for more preliminary detail) Added url library (encode & decode) Added exception class Added vector3 class Added dumpvar & exportvar Added string.truncate Added string.replace — a slightly faster, but mostly more straightforward alternative to gsub. Most notably, not burdened by MAX_CAPTURES Added string.formatint (supports any BigInt impl that can offer the user a string representation) Also supports any grouping & any separator without concerning locale. Added table.filter Added table.map Added table.reverse Added table.reorder Added io.currentdir Added io.part Added io.writetime Added math.isnan Added compareversions Added wcall Added math.atan2 as an alias for math.atan Added json.null io.absolute now has an optional argument to request a canonicalized absolute path Updated string.rfind to accept Lua patterns Renamed io.copyto to io.copy Renamed base64.url_encode & base64.url_decode to base64.urlencode & base64.urldecode Deprecated string.find_first_of & string.find_first_not_of in favor of string.find Deprecated string.find_last_of & string.find_last_not_of in favor of string.rfind Deprecated string.lfind in favor of string.find Deprecated crypto.hexdigest in favor of string.format Modified require Prioritizes local files now to ensure compatibility. Added require(\"pluto:libname\") to explicitly request pluto libraries if ever needed (normal still works for pluto libraries, we just check for local files first). Removed base58 For integrators: Added PLUTO_NO_FILESYSTEM - disables all filesystem access (for sandboxing). Added PLUTO_WARN_NON_PORTABLE_CODE Added PLUTO_WARN_NON_PORTABLE_BYTECODE Added PLUTO_WARN_NON_PORTABLE_NAME Added PLUTO_NO_BINARIES - disables all dll/so/c module loading (for sandboxing) Added luaG_addsrcinfo Far more information can be found at our documentation: https://pluto-lang.org/","s":"0.8.0","u":"/docs/Changelog","h":"#080","p":1},{"i":24,"t":"Fixed unexpected behavior when using a ternary expression inside of an interpolated string Fixed table.contains returning 0 instead of the actual key for non-integer key types Fixed REPL not recognizing multi-line statements Fixed Pluto-injected code corrupting bytecode For integrators: Added PLUTO_LOADCLIB_HOOK","s":"0.7.4","u":"/docs/Changelog","h":"#074","p":1},{"i":26,"t":"Updated error semantics of os.remove & os.rename to match Lua's again (return false instead of raising error), Pluto's 'io' versions of these functions remain unchanged Fixed extends not copying over metamethods Fixed \"memory allocation error: block too big\" when parsing --[[]] Fixed allowing function calls to primitives, causing ambiguities with exprstat after assignment Fixed string.upper & string.lower delimiting on '\\0' Some other improvements and bugfixes","s":"0.7.3","u":"/docs/Changelog","h":"#073","p":1},{"i":28,"t":"String interpolation now allows nested strings Improved \"unreachable code\" warning Improved some error messages Fixed string interpolation not working with string call syntax Fixed rare issues with 'new', 'extends' and 'instanceof' operators","s":"0.7.2","u":"/docs/Changelog","h":"#072","p":1},{"i":30,"t":"Fixed string interpolation not working with single-quoted strings after 0.7.0 Fixed os.sleep disregarding execution time limit Fixed scripts being able to go past execution time limit with coroutines","s":"0.7.1","u":"/docs/Changelog","h":"#071","p":1},{"i":32,"t":"Added table destructuring (local '{' NAME [= FIELD][, ...] '}' '=' TABLE) Added array destructuring (local '[' NAME[, ...] ']' '=' TABLE) Added pluto_use <* | version | token> [= false] to toggle non-compatible keywords Added pluto_use let [= false] to toggle 'let' alias for 'local' Added ++ statement Also supports ++t.prop Added constructor promotion Added compile-time conditionals Improved class expression & statement Now supports property declaration without value Now supports type hints (currently without warnings) Now supports access modifiers (currently without warnings or errors) Can now optionally use 'begin' before body Improved string interpolation to support any expression, not just variable names Improved type hints to support alternatives, e.g. string|int Named arguments may now be used in conjunction with positional arguments Improved 'new' expression to support direct member access into the table it created, e.g. print(new Human(\"John\").name) 'new' may now also be used as a statement Fixed loading of precompiled code from files with non-Latin path on Windows Fixed behavior of 'in' expression when used on a temporary table Out-of-the-box Compatibility: 'parent' may now be overwritten via local or parameter name All reserved identifiers can now be used with shorthand table syntax and goto Standard library: Added coroutine.xresume For integrators: Added PLUTO_USE_LET More detailed documentation can be found here.","s":"0.7.0","u":"/docs/Changelog","h":"#070","p":1},{"i":34,"t":"Defaults arguments now produce Lua-compatible bytecode Fixed default arguments not working for methods Fixed named arguments, etc. not working for upvalue functions Fixed 'in' expression for when right-hand operand is nested table Fixed 'in' expression being too greedy in consuming righthand operand For integrators: Added PLUTO_LUA_LINKABLE","s":"0.6.3","u":"/docs/Changelog","h":"#063","p":1},{"i":36,"t":"Optional Parentheses now works for table types and with chained \"suffix expressions\" Fixed new overwriting user-defined __index Fixed infinite recursion with multi-level parent calls Fixed some other small issues Performance: Optimized lua_insert, lua_remove, & lua_replace (Optimization by @gottfriedleibniz) Optimized luaO_ceillog2 (Inspired by @gottfriedleibniz) Enabled Lua's jump table for clang build as well Fixed a VM performance regression introduced by Pluto","s":"0.6.2","u":"/docs/Changelog","h":"#062","p":1},{"i":38,"t":"Improved suggestions (for when using plutoc with the language server) Optimized switch statement code generation (now omits cases leading to default case) Fixed producing syntax error when 'case' or 'default' is used outside of switch Fixed using 'export' outside of global scope not producing an error Fixed some confusing error messages Pulled in the latest Lua changes so some Lua bugs are now fixed","s":"0.6.1","u":"/docs/Changelog","h":"#061","p":1},{"i":40,"t":"Added attribute to force locals to be compile-time constants Added $expr syntax for compile-time evaluation of select functions Added export [NAME=VALUE | function | class] syntax Added named arguments (name=value in funcargs) Added named varargs (...NAME), automatically puts the varargs into a table with the given name A subset of Soup is now vendored with Pluto so standard library features that rely on it should now be more viable Removed deprecated \"pluto_case\" and \"pluto_default\" keywords Removed when statement Enums: Added ENUM.ENUMERATOR syntax for named enums Added ENUM CLASS NAME ... syntax to force usage of this syntax Added enum reflection for named enums (:names(), :values(), :kvmap(), :vkmap()) Object-oriented programming: Added new TABLE(...) syntax (creates new table, sets TABLE as its metatable + index, calls `:construct(...)` if exists) Added 'class' statement & expression (similar to table but without need for ',' or ';' after properties and functions) 'class' and 'local class' statements also support extends NAME which sets parent property and metatable with index Added static function NAME for use within table constructor/class definition (equal to NAME = function) Added 'parent' expression parent.PROP -> self.__parent.PROP parent:METHOD(...) -> self.__parent.METHOD(self, ...) Added TABLE instanceof METATABLE operator Type hints: Added 'int' & 'float' type hints (more restrictive than 'number') Added 'void' type hint for function return type Standard library: Added utonumber, utostring, & string.uformat Added instanceof(TABLE, METATABLE) For integrators upgrading to Pluto 0.6.0: Consider defining PLUTO_COMPATIBLE_NEW, PLUTO_COMPATIBLE_CLASS, PLUTO_COMPATIBLE_PARENT & PLUTO_COMPATIBLE_EXPORT so 'new', 'class', 'parent' & 'export' will not be reserved keywords just yet, instead 'pluto_new', 'pluto_class', 'pluto_parent' & 'pluto_export' can be used. More detailed documentation can be found here.","s":"0.6.0","u":"/docs/Changelog","h":"#060","p":1},{"i":42,"t":"Default arguments now support tables Pluto now supports building with C ABI so you can replace Lua's shared library with Pluto's without needing to change the program Fixed return before case or default causing a syntax error Fixed access violation on lua_close with strings as default parameters","s":"0.5.4","u":"/docs/Changelog","h":"#054","p":1},{"i":44,"t":"Default arguments now support compile-time constant variables, unary -, and pseudo-unary + Re-added os.remove & os.rename because they originated in Lua and should not have been removed Fixed some instances of errors not providing a code snippet and reporting the wrong line Fixed enumerators being limited to 32-bit values Fixed warning disable/enable being global-only Removed if-goto optimisation due to various edge cases where goto is not executed","s":"0.5.3","u":"/docs/Changelog","h":"#053","p":1},{"i":46,"t":"Enum statement: Now supports compile-time constant variables when setting value Fixed require, dofile, etc. not taking UTF-8 encoded paths on Windows Fixed pluto & plutoc not being able to execute files with foreign names on Windows","s":"0.5.2","u":"/docs/Changelog","h":"#052","p":1},{"i":48,"t":"Enum Statement: Now supports unary - and pseudo-unary + when setting value Replaced locals limit with registers limit so you can have more compile-time constants Fixed Pluto's IO functions not taking UTF-8 encoded paths Fixed UB when emitting unfinished string error, possibly resulting in an access violation","s":"0.5.1","u":"/docs/Changelog","h":"#051","p":1},{"i":50,"t":"Added \"for ITERABLE as VALUE\" loop Added $-strings (string interpolation) Added prefix ++ operator Added support for binary number literals. Added C-style enums Added _PSOUP global Updated package.path to look for .pluto files in working directory by default Deprecated \"pluto_case\" and \"pluto_default\" (now \"case\" and \"default\", respectively) Removed what was deprecated in 0.4.0 (sleep -> os.sleep, os.remove -> io.remove, os.rename -> io.rename) Added execution time limit (optional, must be enabled in luaconf.h) Added content moderation Standard Library: Added io.makedirs Standard Library (Soup): Added base64 Added base58 Added base32 Added json","s":"0.5.0","u":"/docs/Changelog","h":"#050","p":1},{"i":52,"t":"Improved wording of some warning & error messages Fixed excessive \"duplicate local declaration\" warnings Cherry-picked some Lua commits, so the following Lua bugs are now fixed: 'break' may not properly close variable in a 'for' loop error message in 'table.remove' 'utf8.codes' accepts spurious continuation bytes Negation in constant folding of '>>' may overflow stack overflow with nesting of coroutine.close","s":"0.4.5","u":"/docs/Changelog","h":"#045","p":1},{"i":54,"t":"Added math.rand as an alias for math.random Changed unknown type hint to be warning instead of error Reverted table.insert optimation due to unexpected behavior Some minor tweaks","s":"0.4.4","u":"/docs/Changelog","h":"#044","p":1},{"i":56,"t":"Improved most error messages, and vastly improved the internal code for them. These reserved tokens can be used as identifiers outside of their functional context: default, case Optimized the performance of table.insert. Roughly 3x faster, but still slightly slower than t[#t + 1] Pluto can now be built using Sun.","s":"0.4.3","u":"/docs/Changelog","h":"#043","p":1},{"i":58,"t":"Fixes a regression introduced in Pluto 0.4.1 that prevented the walrus operator from working within lambda functions that are passed as function arguments","s":"0.4.2","u":"/docs/Changelog","h":"#042","p":1},{"i":60,"t":"Updated lexer to tokenise in a separate pass This fixes Pluto's error messages sometimes not showing the full line Disallowed use of the walrus operator within a function call because it was found to be more janky than expected","s":"0.4.1","u":"/docs/Changelog","h":"#041","p":1},{"i":62,"t":"Additions: Walrus Operator Default parameters for functions. New standard library: lcryptlib, for various hash algorithms and cryptographic PRNGs. New warnings: Unreachable code. Too many function arguments. Improvements: Switch case may now use variables. Shorthand ternary syntax from C/C++. Warnings can be configured with comments. Improved performance of some common arithmetic algorithms. VM Dumping has been rewritten for superb runtime detail on all opcodes, their arguments, their results, etc. string.upper & string.lower take a second parameter indicating a specific index to change. Absence of this parameter preserves default behavior.","s":"0.4.0","u":"/docs/Changelog","h":"#040","p":1},{"i":64,"t":"Improvements: io.copyto will now overwrite existing files instead of throwing an exception. Improve error handling of other exception-prone IO functions.","s":"0.3.2","u":"/docs/Changelog","h":"#032","p":1},{"i":66,"t":"Bugfix: String.split would previously invoke an infinite loop when an empty string is used as the delimiter.","s":"0.3.1","u":"/docs/Changelog","h":"#031","p":1},{"i":68,"t":"Additions: Inlined method creation. STR in STR expressions. KEY in INDEXABLE expressions. Generalized iteration, no need for pairs. io.listdir Reserved keywords as valid fields. Null-coalescing operator (w/ compound operator). continue N & break N for manipulating outer loops. Optional type-hinting, with parser warnings. Safe accessor navigation, to avoid \"attempt to index nil\" errors for deeply nested fields. Changes: table.contains now returns an index if found and nil otherwise (previously returned true or false). Improvements: Switch no longer has syntactic restrictions Greater switch performance Documentation for the new changes can be found here.","s":"0.3.0","u":"/docs/Changelog","h":"#030","p":1},{"i":70,"t":"Fixes a bug with the continue keyword","s":"0.2.2","u":"/docs/Changelog","h":"#022","p":1},{"i":72,"t":"Added VM Dump Implemented long jump optimisation","s":"0.2.1","u":"/docs/Changelog","h":"#021","p":1},{"i":74,"t":"Added compile-time warnings for duplicate local declarations Added optional ANSI color sequences in various error & warning messages Added support for ternary expressions Added continue statement Added Table Freezing / Immutability Added Switch/Case statements Added user_data to global_State Added != Added compatibility mode Added table.contains Added new time functions to os api Added negative string indexing Added compound concatenation operator Added new string functions Added portable jumptable implementation that can be optionally enabled Added REPEAT .. WHEN loop support Added new IO library functions Added _PVERSION Implemented table length cache optimisation (2x speedup) Implemented optional parentheses around string literals for method invocation Increased local variable limit from 200 to 249 Rebased with Lua for latest bugfixes","s":"0.2.0","u":"/docs/Changelog","h":"#020","p":1},{"i":76,"t":"Initial version. Notable features: Lambda expressions Arbitrary character insertion in numeral literals Many compound operators ** exponent operator","s":"0.1.0","u":"/docs/Changelog","h":"#010","p":1},{"i":78,"t":"The luaconf.h in Pluto provides various battle-tested mechanisms for locking down your Pluto environments. In this article, we've documented some of those. If you are an integrator who needs help configuring any of this, or who wants us to implement another mechanism, feel free to contact us on GitHub.","s":"For Integrators","u":"/docs/For Integrators","h":"","p":77},{"i":81,"t":"You can disable execution of compiled bytecode by defining PLUTO_DISABLE_COMPILED in luaconf.h or your build config.","s":"Compiled Code","u":"/docs/For Integrators","h":"#compiled-code","p":77},{"i":83,"t":"You may already have filters before passing scripts to run onto Pluto, but mechanisms such as dofile and require may be used to bypass them. To help you combat this, Pluto provides PLUTO_LOADFILE_HOOK. For example, if you set it to ContmodOnLoadfile in luaconf.h or your build config, you only need to define that function somewhere in your code, like this: cpp extern \"C\" bool ContmodOnLoadfile(const char* filename) { return !isCodeProhibited(soup::string::fromFile(filename)); } Copy This requires you to use Pluto as a static library, as otherwise this linking relationship won't work.","s":"Custom Module Filters","u":"/docs/For Integrators","h":"#custom-module-filters","p":77},{"i":85,"t":"The PLUTO_NO_BINARIES macro can be defined to totally eliminate package.loadlib and any DLL/SO loading capability from the require function. This is helpful because package.loadlib can be used to bypass sandbox restrictions by manually loading symbols from a Lua/Pluto library, and the require function can load any Lua/Pluto C Module which may or may not provide dangerous functions. This is generally vital for any sandbox. This mechanism cannot be bypassed, since it configures Pluto to compile without support for any of the aforementioned features.","s":"Prevent Loading of Binary Modules","u":"/docs/For Integrators","h":"#prevent-loading-of-binary-modules","p":77},{"i":87,"t":"To aid environments that have to be sandboxed, Pluto provides Execution Time Limit (ETL), which can be enabled by defining PLUTO_ETL_ENABLE in luaconf.h or your build config. By default, ETL allows code to run for a total of 1 ms (1.000.000 nanos). This can be changed by overwriting PLUTO_ETL_NANOS. Note that this is a hammer solution. If you only want to prevent stupid mistakes, Infinite Loop Prevention is a far better tool.","s":"Execution Time Limit","u":"/docs/For Integrators","h":"#execution-time-limit","p":77},{"i":89,"t":"Pluto can detect infinite loops by preventing too many successive iterations. This was implemented because game threads usually force users to call some sort of yield mechanism to return control to the game thread. In Pluto, you specify a hard bottleneck on iterations, then you specify a function pointer which should prevent ILP within the loop it's called in. This will produce an error due to ILP: pluto while true do end Copy This will not, with correct configuration: pluto while true do yield() end Copy If your scheduling system calls coroutine.yield at least once per tick, configuring the ILP mechanism can be as simple as defining PLUTO_ILP_ENABLE. In any case, Pluto's configuration file (luaconf.h) is worth a look at, especially to properly configure this feature. info This is a very simple mechanic. It has no performance overhead & it's lightweight. However, the compromise for this was coverage. This will reliably prevent most user error, however malicious users can find a way to block a thread still. For example, any forward jump will prevent the mechanism from breaking a loop. This can be exploited, so don't rely on this for security.","s":"Infinite Loop Prevention","u":"/docs/For Integrators","h":"#infinite-loop-prevention","p":77},{"i":91,"t":"Pluto offers an optional, configurable feature to see every instruction that is executed in the Lua VM.","s":"VM Dumping","u":"/docs/For Integrators","h":"#vm-dumping","p":77},{"i":93,"t":"VM Dump can be enabled by defining PLUTO_VMDUMP in luaconf.h or your build config. To reduce noise, you can modify PLUTO_VMDUMP_COND to set a custom condition for when VM Dump is active. By default, the condition is true. Although not a configuration specific to VM Dump, it should be noted that you can modify the output macros lua_writestring and lua_writeline.","s":"Configuration","u":"/docs/For Integrators","h":"#configuration","p":77},{"i":95,"t":"Given the following code: pluto local value = 3 switch value do case 1: case 2: case 3: case 4: case 5: print(\"Got 1-5.\") break default: print(\"Value is greater than 5.\") end -- Break jumps here. Copy It will output: VARARGPREP 0 ; prepare for 0 varargs LOADI 0 3 ; push 3 EQI 0 1 0 ; 3 == 1 EQI 0 2 1 ; 3 == 2 EQI 0 3 1 ; 3 == 3 GETTABUP 1 0 0 ; push T['print'] for function-00007FF6211485A0 (T=table-0000019FEDA45580) LOADK 2 1 ; push \"Got 1-5.\" CALL 1 2 1 ; call function-00007FF6211485A0 (nresults=0 nparams=1) Got 1-5. JMP 13 ; offset=13 newpc=0000019FEDA5C2C4 RETURN 1 1 1 ; return 0 value(s) Copy This is great at deciphering obfuscated code which may be causing problems for your environment.","s":"What it looks like","u":"/docs/For Integrators","h":"#what-it-looks-like","p":77},{"i":97,"t":"Although Pluto can theoretically be used with Lua-based tooling, we provide specialized support for .pluto files to enhance your coding experience with features such as: Syntax Highlighting Snippets — e.g. for when you type \"fun\" and press tab Comment Information — for editor features such as \"Toggle Comment\", \"Toggle Block Comment\" Indentation Rules — for editor features such as \"Reindent Lines\" Build Systems — run & lint scripts directly in your editor with Ctrl+(Shift+)B in Sublime Text or Ctrl+Shift+P in VS Code","s":"Editor Integration","u":"/docs/Editor Integration","h":"","p":96},{"i":99,"t":"The installation process depends on your editor: VS Code: Search for calamity-inc.pluto-syntax-highlighting in the marketplace and press \"Install.\" Sublime Text: Open the command palette (Ctrl+Shift+P), select \"Package Control: Install Package\", search for \"Pluto\", and press enter. Visual Studio: Click on Extensions > Manage Extensions. In the Online section, search for calamity-inc.pluto-vsix and press \"Download.\" IntelliJ: Clone our syntax highlighting repository and add the tmbundle folder to Editor > TextMate Bundles. If your editor is not listed here, check if it is able to load TextMate bundles, in which case you should be able to do something similar to the IntelliJ instructions above.","s":"Installation","u":"/docs/Editor Integration","h":"#installation","p":96},{"i":101,"t":"Pluto aims to be source- and bytecode-compatible with existing Lua code such that it can simply be used as a drop-in replacement for Lua, and Lua modules can simply be used in Pluto codebases. In the vast majority of cases, we do succeed, but there are a few things to be aware of.","s":"Compatibility","u":"/docs/Compatibility","h":"","p":100},{"i":103,"t":"While Pluto does add a handful of new keywords (switch, continue, enum, new, class, parent, export, try, catch), it can automatically infer when these are used as identifiers to preserve compatibility with Lua: lua local class = \"supercar\" print(\"it's a \"..class) --> it's a supercar Copy However, if a script does actually end up using a feature, its respective keyword can no longer be used as an identifier: pluto class Vehicle -- ... end local class = \"supercar\" -- Error: expected a class name, found '=' Copy The only exception to this is short-hand table syntax and goto labels because Pluto allows reserved keywords to be used in those contexts.","s":"New Keywords","u":"/docs/Compatibility","h":"#new-keywords","p":100},{"i":105,"t":"Some users may wish for Pluto keywords to be off by default, for which we provide the following options: For Integrators: Check your luaconf.h file to find the relevant macros under the \"Compatibility\" heading. For Scripters: Put -- @pluto_use * = false at the top of your script. For Users: Pass the -c flag to pluto or plutoc. Note that when keywords have been disabled like this, Pluto will not infer that a script requires them automatically, instead requiring explicit opt-in via pluto_use.","s":"Compatibility Mode","u":"/docs/Compatibility","h":"#compatibility-mode","p":100},{"i":107,"t":"You can change the meaning of Pluto's reserved tokens at any point in your scripts using the --@pluto_use comment or pluto_use statement. For example, to disable all non-compatible keywords except for switch: pluto -- @pluto_use * = false, switch Copy It is also possible to specify a version number, which is a shorthand for the keywords available at that version: \"0.2.0\" corresponds to * = false, switch, continue \"0.5.0\" corresponds to * = false, switch, continue, enum \"0.6.0\" corresponds to * = false, switch, continue, enum, new, class, parent, export \"0.8.0\" corresponds to * = false, switch, continue, enum, new, class, parent, export, try, catch So, writing a portable script that only makes use of Pluto 0.8.0's features requires this at the beginning: pluto pluto_use \"0.8.0\" Copy This feature also supports quick encompassing of optional features. So, instead of: pluto pluto_use \"0.8.0\", global Copy You can use a '+' after the version number to also enable all of the optional features. As of 0.9.0, the only optional feature is explicit globals (global). pluto pluto_use \"0.9.0+\" -- The same as pluto_use \"0.9.0\", global Copy For module developers and scripts which may be used in future versions of Pluto, we recommend you use pluto_use for two reasons: Portability. This will override the compatibility mode settings compiled into Pluto so your script will be parsed identically in all Pluto environments. Proactive compatibility. Any keywords added by future versions of Pluto will also be put in compatibility mode by these statements, so in the off-chance your script uses a future reserved keyword as a variable name, it would still parse as you intended when you wrote it.","s":"Compile-time Configuration (pluto_use)","u":"/docs/Compatibility","h":"#compile-time-configuration-pluto_use","p":100},{"i":109,"t":"Another way of using Pluto's features regardless of compatibility mode is by prefixing the keyword with pluto_. For example, switch becomes pluto_switch. These Compatibility Mode variants will always be valid, even when Compatibility Mode is disabled. These are what they look like: pluto_switch pluto_continue pluto_enum pluto_new pluto_class pluto_parent pluto_export pluto_try pluto_catch","s":"Compatible Keywords","u":"/docs/Compatibility","h":"#compatible-keywords","p":100},{"i":111,"t":"This is a feature in Pluto that, by itself, is a benign QoL improvement for developers. However, in combination with our added standard library functions like table.min, it can be an unexpected semantic change: pluto local function roll(opts) return math.random(opts.min or 1, opts.max or 100) end print(roll{ max = 10 }) Copy pluto: test.pluto:2: bad argument #1 to 'random' (number expected, got function) stack traceback: [C]: in function 'math.rand' test.pluto:2: in local 'roll' test.pluto:4: in main chunk Copy Integrators can disable this feature by defining the PLUTO_NO_DEFAULT_TABLE_METATABLE macro in their luaconf.h or build config, to aid in a smooth transition, should scripts in their ecosystem require it. Scripters are advised to use rawget and/or type to better codify their expectations. For example, the example above seems to care only about providing fallback values and not at all about type-checking, so rawget would be an excellent fit for it: pluto local function roll(opts) return math.random(rawget(opts, \"min\") or 1, rawget(opts, \"max\") or 100) end print(roll{ max = 10 }) Copy","s":"Default Table Metatable","u":"/docs/Compatibility","h":"#default-table-metatable","p":100},{"i":113,"t":"This document will explain how to get started with writing Pluto in no time.","s":"Getting Started","u":"/docs/Getting Started","h":"","p":112},{"i":115,"t":"The easiest way to get started writing Pluto is to use Write Pluto Online, which runs Pluto code directly in your browser using WASM.","s":"Write Pluto Online","u":"/docs/Getting Started","h":"#write-pluto-online","p":112},{"i":117,"t":"You can find pre-built binaries of Pluto for Windows, Linux, & Mac OS over on Pluto's Github Releases page.","s":"Prebuilt Binaries","u":"/docs/Getting Started","h":"#prebuilt-binaries","p":112},{"i":120,"t":"You can easily install pluto and plutoc via Chocolatey as follows: choco install plutolang Copy","s":"Chocolatey","u":"/docs/Getting Started","h":"#chocolatey","p":112},{"i":122,"t":"You can easily install Pluto via APT as follows: wget -qO- https://calamity-inc.github.io/deb-repo/key.gpg | sudo tee /usr/share/keyrings/calamity-inc.gpg > /dev/null echo \"deb [arch=amd64 signed-by=/usr/share/keyrings/calamity-inc.gpg] https://calamity-inc.github.io/deb-repo/ buster main\" | sudo tee /etc/apt/sources.list.d/calamity-inc.list > /dev/null sudo apt update sudo apt install pluto Copy This package includes the pluto and plutoc executables, shared library, as well as headers for developers (#include ). As the \"buster\" part implies, these binaries were compiled on Debian 10, but they work on all subsequent Debian releases, as well as Ubuntu 20 and above.","s":"APT Repository","u":"/docs/Getting Started","h":"#apt-repository","p":112},{"i":124,"t":"Pluto is in the Arch User Repository under the name plutolang. This package includes the pluto and plutoc executables, shared library, as well as headers for developers (#include ).","s":"AUR","u":"/docs/Getting Started","h":"#aur","p":112},{"i":126,"t":"Pluto is available in the Termux package main repository under plutolang for binaries and libpluto for development library.","s":"Termux","u":"/docs/Getting Started","h":"#termux","p":112},{"i":128,"t":"Pluto can compile on virtually any platform, as long as there's a C++ 17 compiler for it. First, you need to clone the repository: git clone https://github.com/PlutoLang/Pluto cd Pluto Copy Then, you can use any of the build methods documented here.","s":"Compile Pluto Yourself","u":"/docs/Getting Started","h":"#compile-pluto-yourself","p":112},{"i":130,"t":"info PHP is required for this method. You can check if PHP is installed by running php -v. You can install it via sudo apt intall php-cli on Debian or sudo pacman -S php on Arch. Simply run the following commands: php scripts/compile.php clang php scripts/link_pluto.php clang php scripts/link_plutoc.php clang php scripts/link_static.php Copy You can easily modify these commands to a compiler other than clang, if you wish. There are also additional scripts for the various types of shared libraries. The binaries will be placed in the src/ directory.","s":"PHP Scripts","u":"/docs/Getting Started","h":"#php-scripts","p":112},{"i":132,"t":"In the repository you just cloned, there's a Pluto.sln you can open with Visual Studio. Within Visual Studio, open the Build > Batch Build dialog. Here, click \"Select All\", then \"Build\". The binaries will be placed in the out/ directory.","s":"Visual Studio","u":"/docs/Getting Started","h":"#visual-studio","p":112},{"i":134,"t":"You can simply run the make command: make -j PLAT={yourplatform} Copy The platform list can be found here. The binaries will be placed in the src/ directory.","s":"Make","u":"/docs/Getting Started","h":"#make","p":112},{"i":136,"t":"Pluto supports the Sun build system by providing .sun files in the src/ directory, you can use them to build pluto & plutoc: cd src sun pluto sun plutoc Copy The binaries will be placed in the src/ directory. If you wish to use Pluto as a static library in your own projects, simply add the following to your project's .sun file: require ../Pluto/src Copy Assuming a directory structure where your own project and Pluto share the same parent.","s":"Sun","u":"/docs/Getting Started","h":"#sun","p":112},{"i":138,"t":"Pluto is a superset of Lua 5.4 with a focus on general-purpose programming. While being remarkably compatible with Lua 5.4 source-code & bytecode, it enhances the standard library & adds more than a dozen highly-desired syntaxes such as switch statements, compound operators, classes, class inheritance, string interpolation, type hinting, enums, and so on.","s":"What is Pluto?","u":"/docs/Introduction","h":"","p":137},{"i":140,"t":"Pluto aspires to be a version of Lua with a larger feature-set, that is all. Pluto is not a Lua-killer, an attempted successor, or any of that. Many people (rightly so) love Lua precisely because of the design philosophy. And fundamentally, Pluto is a major deviation from Lua's design philosophy. Some may prefer this, some may not.","s":"What does Pluto aspire to be?","u":"/docs/Introduction","h":"#what-does-pluto-aspire-to-be","p":137},{"i":142,"t":"This keyword accepts an optional integral argument which tells it how many levels of enclosing loops it should break. The default value is 1, thus breaking out of the current loop. Example 1 pluto for i = 1, 10 do -- Loop 1. break 1 -- This is identical to `break` without any arguments. end Copy Example 2 pluto for i = 1, 10 do -- Loop 1. for ii = 1, 5 do -- Loop 2. break 1 -- This will break from Loop 2. break 2 -- This will break from Loop 1. end end Copy","s":"Break Statement","u":"/docs/New Features/Break Statement","h":"","p":141},{"i":144,"t":"Pluto's parser provides some powerful constructs which allow you to write code that will never be seen at runtime.","s":"Compile-Time Evaluation","u":"/docs/New Features/Compile-Time Evaluation","h":"","p":143},{"i":146,"t":"Certain standard library functions can be called at compile-time, as long as the arguments are also known at compile-time, by using the \"$\" symbol before the function call. pluto local runtime = require(\"crypto\").joaat(\"Hello, World!\") local compile = $crypto.joaat(\"Hello, World!\") assert(runtime == compile) Copy If you're unfamiliar with compile-time evaluation, this is essentially what the code turns into: pluto local runtime = require(\"crypto\").joaat(\"Hello, World!\") local compile = 847757641 -- The JOAAT hash of \"Hello, World!\" assert(runtime == compile) Copy This is available on preloaded Pluto libraries, such as: json base32 base58 base64 crypto And on the following functions: tostring utostring tonumber utonumber","s":"Function calls","u":"/docs/New Features/Compile-Time Evaluation","h":"#function-calls","p":143},{"i":148,"t":"Compile-time constant variables can be defined via the $define statement: pluto $define a = 123 Copy This may seem identical to a local declared with the const attribute: pluto local a = 123 Copy However, $define also enforces that the assigned variable is a compile-time constant: pluto local a = {} $define a = {} -- Error: variable was not assigned a compile-time constant value Copy","s":"Variables","u":"/docs/New Features/Compile-Time Evaluation","h":"#variables","p":143},{"i":150,"t":"If there is certain code you only want to have compiled in for a certain build, such as a debug build, you can use compile-time conditionals: pluto $define DEBUG = true $if DEBUG then print(\"Script running in debug mode\") $else print(\"Script running in release mode\") $end Copy In this case, only one of the two paths will be compiled in; the rest will not take up any space.","s":"Conditionals","u":"/docs/New Features/Compile-Time Evaluation","h":"#conditionals","p":143},{"i":152,"t":"Continue statements, like break, are meant to be used in loops. They skip the current iteration of the loop. They introduce a new keyword, continue. These cannot be used inside switch statements. Example Code pluto -- Print every number besides five. for i = 1, 10 do if i == 5 then continue end print(i) -- continue jumps here. end Copy caution Note, continue will skip code. If any code within your loop will determine if the loop continues, make sure continue doesn't jump over it.","s":"Continue Statement","u":"/docs/New Features/Continue Statement","h":"","p":151},{"i":154,"t":"This keyword accepts an optional integral argument which tells it how many levels of enclosing loops it should skip to the end of. The default value is 1, thus skipping to the end of the current loop. Example 1 pluto for i = 1, 10 do -- Loop 1. continue 1 -- This is identical to `continue` without any arguments. end Copy Example 2 pluto for i = 1, 10 do -- Loop 1. for ii = 1, 5 do -- Loop 2. continue 1 -- This will continue from Loop 2. continue 2 -- This will continue from Loop 1. end end Copy","s":"Continue's Only Argument","u":"/docs/New Features/Continue Statement","h":"#continues-only-argument","p":151},{"i":156,"t":"You may need to use pluto_continue instead of continue. Alternatively, pluto_use continue will enable the keyword independently of environment settings.","s":"Using Compatibility Mode?","u":"/docs/New Features/Continue Statement","h":"#using-compatibility-mode","p":151},{"i":158,"t":"Pluto offers optional compiler warnings for certain misbehaviors.","s":"Compiler Warnings","u":"/docs/New Features/Compiler Warnings","h":"","p":157},{"i":161,"t":"This is raised when a new local is created with the same name as an existing one. pluto local var = 5 do local var = \"hello\" end Copy file.pluto:3: warning: duplicate local declaration [var-shadow] 3 | local var = \"hello\" | ^^^^^^^^^^^^^^^^^^^ here: this shadows the initial declaration of 'var' on line 1. Copy","s":"var-shadow","u":"/docs/New Features/Compiler Warnings","h":"#var-shadow","p":157},{"i":163,"t":"This is raised when a new local is created with the same name as a global variable. pluto local table = {} Copy file.pluto:1: warning: duplicate global declaration [global-shadow] 1 | local table = {} | ^^^^^^^^^^^^^^^^ here: this shadows the initial global definition of 'table' Copy To avoid excessive annoyance, this warning type is off by default. To enable it, scripters can use the compile-time configuration and integrators can define the PLUTO_WARN_GLOBAL_SHADOW macro. Furthermore, this only covers the globals 'table', 'string', and 'arg' by default. Integrators can overwrite the PLUTO_COMMON_GLOBAL_NAMES macro to change this list.","s":"global-shadow","u":"/docs/New Features/Compiler Warnings","h":"#global-shadow","p":157},{"i":165,"t":"This is raised when the same field is declared multiple times in a table constructor: pluto local t = { key = \"fruit\", value = \"apple\", value = \"banana\" } Copy file.pluto:4: warning: duplicate table field [field-shadow] 4 | value = \"banana\" | ^^^^^^^^^^^^^^^^ here: this overwrites the value assigned to this field earlier Copy","s":"field-shadow","u":"/docs/New Features/Compiler Warnings","h":"#field-shadow","p":157},{"i":167,"t":"This is raised when the type of an expression doesn't match the hinted type. See Type Hinting. pluto local var: number = 5 var = \"hello\" Copy file.pluto:2: warning: variable type mismatch [type-mismatch] 2 | var = \"hello\" | ^^^^^^^^^^^^^ here: 'var' type-hinted as 'number', but assigned a string value. Copy","s":"type-mismatch","u":"/docs/New Features/Compiler Warnings","h":"#type-mismatch","p":157},{"i":169,"t":"This is raised when a block of code will never be ran. pluto for i = 1, 10 do if i == 5 then continue print(\"message\") end end Copy file.pluto:4: warning: unreachable code [unreachable-code] 4 | print(\"message\") | ^^^^^^^^^^^^^^^^ here: this code comes after an escaping 'continue' statement. Copy","s":"unreachable-code","u":"/docs/New Features/Compiler Warnings","h":"#unreachable-code","p":157},{"i":171,"t":"This is raised when too many arguments are given to a non-vararg function. pluto local function func(a, b, c) end func(1, 2, 3, 4) Copy file.pluto:5: warning: too many arguments [excessive-arguments] 5 | func(1, 2, 3, 4) | ^^^^^^^^^^^^^^^^ here: expected 3 arguments, got 4. Copy","s":"excessive-arguments","u":"/docs/New Features/Compiler Warnings","h":"#excessive-arguments","p":157},{"i":173,"t":"This is raised when the code does something stupid but not quite stupid enough to cause an error. pluto pluto_use * Copy file.pluto:1: warning: 'pluto_use *' is a bad idea because future Pluto versions may add keywords that will break your script [bad-practice] 1 | pluto_use * | ^^^^^^^^^^^ here: consider using 'pluto_use \"0.8.0\"' instead Copy","s":"bad-practice","u":"/docs/New Features/Compiler Warnings","h":"#bad-practice","p":157},{"i":175,"t":"This is raised when the code seems syntactically incorrect. pluto local magic const = 42 Copy file.pluto:1: warning: Possibly mistyped attribute [possible-typo] 1 | local magic const = 42 | ^^^^^^^^^^^^^^^^^^^^^^ here: Did you mean ''? Copy","s":"possible-typo","u":"/docs/New Features/Compiler Warnings","h":"#possible-typo","p":157},{"i":177,"t":"This is raised when the code may not be considered valid by all Pluto environments due to compatibility mode. pluto new exception(\"Not implemented\") Copy file.pluto:1: warning: non-portable keyword usage [non-portable-code] 1 | new exception(\"Not implemented\") | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ here: use 'pluto_new' instead, or 'pluto_use' this keyword: https://pluto.do/compat Copy To avoid excessive annoyance, this warning type is off by default. To enable it, scripters can use the compile-time configuration and integrators can define the PLUTO_WARN_NON_PORTABLE_CODE macro.","s":"non-portable-code","u":"/docs/New Features/Compiler Warnings","h":"#non-portable-code","p":157},{"i":179,"t":"This is raised when a variable name is only valid due to compatibility mode. pluto local class = \"fruit\" Copy file.pluto:1: warning: 'class' is a non-portable name [non-portable-name] 1 | local class = \"fruit\" | ^^^^^^^^^^^^^^^^^^^^^ here: use a different name, or use 'pluto_use' to disable this keyword: https://pluto.do/compat Copy To avoid excessive annoyance, this warning type is off by default. To enable it, scripters can use the compile-time configuration and integrators can define the PLUTO_WARN_NON_PORTABLE_NAME macro.","s":"non-portable-name","u":"/docs/New Features/Compiler Warnings","h":"#non-portable-name","p":157},{"i":181,"t":"This is raised when the code will not run in Lua environments (when compiling Pluto to bytecode). pluto print(\"h\" in \"hello\") Copy file.pluto:1: warning: non-portable operator usage [non-portable-bytecode] 1 | print(\"h\" in \"hello\") | ^^^^^^^^^^^^^^^^^^^^^ here: this operator generates bytecode which is incompatible with Lua. Copy To avoid excessive annoyance, this warning type is off by default. To enable it, scripters can use the compile-time configuration and integrators can define the PLUTO_WARN_NON_PORTABLE_BYTECODE macro.","s":"non-portable-bytecode","u":"/docs/New Features/Compiler Warnings","h":"#non-portable-bytecode","p":157},{"i":183,"t":"This is raised when there's a non-obvious fallthrough in a switch block: pluto local a = 1 switch a do case 1: print(\"Case 1\") case 2: print(\"Case 2\") end Copy file.pluto:5: warning: possibly unwanted fallthrough [unannotated-fallthrough] 5 | case 2: | ^^^^^^^ here: the case on line 3 flows into this case + note: place `--@fallthrough` before this case if this is intended Copy As the warning points out, a @fallthrough annotation can be used to label the fallthrough, in turn silencing the warning: pluto local a = 1 switch a do case 1: print(\"Case 1\") -- @fallthrough case 2: print(\"Case 2\") end Copy","s":"unannotated-fallthrough","u":"/docs/New Features/Compiler Warnings","h":"#unannotated-fallthrough","p":157},{"i":185,"t":"This is raised when the global keyword is enabled and a global was declared without it. See Explicit Globals. pluto pluto_use global a = 1 Copy file.pluto:3: warning: implicit global creation [implicit-global] 3 | a = 1 | ^^^^^ here: prefix this with 'global' if creating a global was intended Copy","s":"implicit-global","u":"/docs/New Features/Compiler Warnings","h":"#implicit-global","p":157},{"i":187,"t":"This is raised when the return value of a function declared was discarded. See Nodiscard Functions. pluto local function add(a, b) return a + b end add(1, 2) Copy file.pluto:5: warning: discarding return value of function declared '' [discarded-return] 5 | add(1, 2) | ^^^^^^^^^ here Copy","s":"discarded-return","u":"/docs/New Features/Compiler Warnings","h":"#discarded-return","p":157},{"i":189,"t":"The state of each warning type can be changed during compile-time and exceptions for certain code can be made.","s":"Compile-time Configuration","u":"/docs/New Features/Compiler Warnings","h":"#compile-time-configuration","p":157},{"i":191,"t":"Warnings have 3 states: 'disable', 'enable', and 'error'. The 'error' state is a more aggressive version of 'enable' that causes compilation to fail if the warning type is raied. To change the state of a warning, write a @pluto_warnings comment with the state and warning type joined by a hyphen (-): pluto local var = 5 do -- @pluto_warnings: disable-var-shadow local var = \"hello\" -- @pluto_warnings: enable-var-shadow end Copy For this, there is also the special type, 'all', which can be used e.g. to enable all warnings except for non-portable-bytecode: pluto -- @pluto_warnings: enable-all, disable-non-portable-bytecode Copy","s":"Changing Warning States","u":"/docs/New Features/Compiler Warnings","h":"#changing-warning-states","p":157},{"i":193,"t":"To disable warnings on a specific line of code, simply put a comment on the line before it with @pluto_warnings: disable-next. pluto local var = 5 do -- @pluto_warnings: disable-next local var = \"hello\" end Copy","s":"Disable Warnings On Line","u":"/docs/New Features/Compiler Warnings","h":"#disable-warnings-on-line","p":157},{"i":195,"t":"During a function declaration, parameters can now declare their own default value. Example Code pluto local function write(text = \"No text provided.\") print(text) end write() --> No text provided. write(\"Hello!\") --> Hello! Copy This code behaves identically. pluto local function write(text) if text == nil then text = \"No text provided.\" end print(text) end write() --> No text provided. write(\"Hello!\") --> Hello! Copy","s":"Default Arguments","u":"/docs/New Features/Default Arguments","h":"","p":194},{"i":197,"t":"Destructuring is a better way to assign local variables from expressions that return a table.","s":"Destructuring","u":"/docs/New Features/Destructuring","h":"","p":196},{"i":199,"t":"Assuming we have this table: pluto local t = { 3, 6, 9 } Copy This is how we would assign each value to variables called a, b, and c using the Lua and Pluto ways: Lua way pluto local a, b, c = table.unpack(t) Copy Pluto way pluto local [a, b, c] = t Copy","s":"Array destructuring","u":"/docs/New Features/Destructuring","h":"#array-destructuring","p":196},{"i":201,"t":"Assuming we have this table: pluto local t = { name = \"John\", age = 42 } Copy This is how we would assign each field to a variable of the same name using the Lua and Pluto ways: Lua way pluto local name = t.name local age = t.age Copy Pluto way pluto local { name, age } = t Copy","s":"Table destructuring","u":"/docs/New Features/Destructuring","h":"#table-destructuring","p":196},{"i":203,"t":"Assuming we have the same table as above, this is how we'd assign the name and age fields to n and a variables, respectively, using the Lua and Pluto ways: Lua way pluto local n = t.name local a = t.age Copy Pluto way pluto local { n = name, a = age } = t Copy","s":"Different variable name","u":"/docs/New Features/Destructuring","h":"#different-variable-name","p":196},{"i":205,"t":"Table destructuring can be used to require multiple standard library modules at once using the '*' module: pluto local { base64, json } = require \"*\" Copy","s":"Standard Library","u":"/docs/New Features/Destructuring","h":"#standard-library","p":196},{"i":207,"t":"The optional global keyword can be used to explicitly declare global variables. To enable it, simply do: pluto pluto_use global Copy Then it can be used like this: pluto global a = 1 Copy Being identical to the following code: pluto a = 1 Copy","s":"Explicit Globals","u":"/docs/New Features/Explicit Globals","h":"","p":206},{"i":209,"t":"When the global keyword is enabled, an 'implicit-global' warning is raised for any globals declared without it: pluto pluto_use global a = 1 Copy file.pluto:3: warning: implicit global creation [implicit-global] 3 | a = 1 | ^^^^^ here: prefix this with 'global' if creating a global was intended Copy","s":"Compiler Warnings","u":"/docs/New Features/Explicit Globals","h":"#compiler-warnings","p":206},{"i":211,"t":"The export modifier allows you to automatically aggregate things you want to export into a table. Old Code pluto local version = 2 local function add(a, b) return a + b end return { version = version, add = add } Copy New Code pluto export version = 2 export function add(a, b) return a + b end Copy The return statement is automatically generated at the end of the block, so it is not limited to the top-level function: pluto package.preload[\"test\"] = function() export version = 2 export function add(a, b) return a + b end -- end of scope; 'return' is automatically generated end print(require\"test\".version) Copy","s":"Export Modifier","u":"/docs/New Features/Export Modifier","h":"","p":210},{"i":213,"t":"You may need to use pluto_export instead of export. Alternatively, pluto_use export will enable the keyword independently of environment settings.","s":"Using Compatibility Mode?","u":"/docs/New Features/Export Modifier","h":"#using-compatibility-mode","p":210},{"i":215,"t":"Pluto adds the following syntax: pluto enum MyEnum begin OPTION_1, OPTION_2, OPTION_3 end assert(OPTION_1 == 1) assert(OPTION_2 == 2) assert(OPTION_3 == 3) Copy Enums can start at a base number, and increment from there. pluto enum MyEnum begin OPTION_1 = 0, OPTION_2, OPTION_3 = 5, OPTION_4 end assert(OPTION_1 == 0) assert(OPTION_2 == 1) assert(OPTION_3 == 5) assert(OPTION_4 == 6) Copy Since this enum has a name, we can also access its enumerators with that: pluto assert(MyEnum.OPTION_1 == 0) Copy","s":"Enumerations","u":"/docs/New Features/Enumerations","h":"","p":214},{"i":217,"t":"You can force usage of the ENUM.ENUMERATOR syntax by using 'enum class': pluto enum class MyEnum begin OPTION_1, OPTION_2, OPTION_3 end assert(OPTION_1 == nil) assert(MyEnum.OPTION_1 == 1) Copy","s":"Scoped Enums","u":"/docs/New Features/Enumerations","h":"#scoped-enums","p":214},{"i":219,"t":"When you have a named enum, not only can you get its enumerators, but also reflect upon it with some methods: pluto enum MyEnum begin OPTION_1, OPTION_2, OPTION_3 end for k, v in MyEnum:kvmap() do print(k, v) -- \"OPTION_1 1\" ... end Copy The following methods are available: :names(), :values(), :kvmap(), :vkmap()","s":"Reflection","u":"/docs/New Features/Enumerations","h":"#reflection","p":214},{"i":221,"t":"Enums can also be anonymous: pluto enum begin OPTION_1, OPTION_2, OPTION_3 end assert(OPTION_1 == 1) assert(OPTION_2 == 2) assert(OPTION_3 == 3) Copy","s":"Anonymous Enums","u":"/docs/New Features/Enumerations","h":"#anonymous-enums","p":214},{"i":223,"t":"You may need to use pluto_enum instead of enum. Alternatively, pluto_use enum will enable the keyword independently of environment settings.","s":"Using Compatibility Mode?","u":"/docs/New Features/Enumerations","h":"#using-compatibility-mode","p":214},{"i":225,"t":"When you only want to iterate over the values of a table, you can use Pluto's for-as syntax. New Code pluto local t = { 1, 2, 3, \"hello\", \"world\" } for t as value do print(value) end --> 1 --> 2 --> 3 --> hello --> world Copy That code is identical to this: Old Code pluto local t = { 1, 2, 3, \"hello\", \"world\" } for _, value in t do print(value) end Copy info The bytecode of this feature is only backwards-compatible with Lua when pairs, ipairs, or next is used. See Generalized Iteration.","s":"For-As Loop","u":"/docs/New Features/For-As Loop","h":"","p":224},{"i":227,"t":"Lambda expressions are an alternative way of writing anonymous functions. Lua Way pluto local s1 = \"123\" local s2 = s1:gsub(\".\", function(c) return tonumber(c) + 1 end) print(s2) --> 234 Copy Pluto Way pluto local s1 = \"123\" local s2 = s1:gsub(\".\", |c| -> tonumber(c) + 1) print(s2) --> 234 Copy As you can see, they take an expression after the arrow, the result of which is implicitly returned. However, lambda expressions can also have full bodies using do...end: pluto local add = |a, b| -> do print($\"Adding {a} and {b} together\") return a + b end Copy They also support all other syntax you would expect of functions, such as type hints and default arguments.","s":"Lambda Expressions","u":"/docs/New Features/Lambda Expressions","h":"","p":226},{"i":229,"t":"The in operator has been extended to support string searches and table searches. For these purposes, it's the fastest possible solution. Searching for a substring. pluto assert(\"world\" in \"hello world\") Copy When used on tables, the in operator searches for values. It'll search for array elements and it'll search keys for their values. Searching a table for a value. pluto local t = { \"a\", \"b\", key = \"value\" } assert(\"a\" in t) -- \"a\" is an element inside of t. assert(\"b\" in t) -- \"b\" is an element inside of t. assert(\"value\" in t) -- \"value\" is the value of a key inside of t. assert(not \"random\" in t) -- \"random\" is not an element OR the value of a key inside of t. Copy","s":"In Expressions","u":"/docs/New Features/In Expressions","h":"","p":228},{"i":231,"t":"The right-hand operand must always be a table or a string. The left-hand operand must be a string if the right-hand operand is a string. The left-hand operand can be anything if the right-hand operand is a table. caution The bytecode of this feature is not backwards-compatible with Lua.","s":"Rules","u":"/docs/New Features/In Expressions","h":"#rules","p":228},{"i":233,"t":"If you have a function that takes varargs and you want them in a table, you'd have to do something like this: pluto function vfunc(...) local args = { ... } for args as arg do print(arg) end end vfunc(\"Hello\") --> Hello Copy But, with named varargs, it can be as simple as this: pluto function vfunc(...args) for args as arg do print(arg) end end vfunc(\"Hello\") --> Hello Copy","s":"Named Varargs","u":"/docs/New Features/Named Varargs","h":"","p":232},{"i":235,"t":"Instead of positional arguments, you can use the names of arguments you want to set: pluto local function process_file(file, mode = \"r\", version = 1) print($\"Processing {file} with mode '{mode}' and version {version}\") end process_file(file = \"hello.txt\", version = 2) -- \"Processing hello.txt with mode 'r' and version 2\" Copy Note that this example also makes use of default arguments and string interpolation.","s":"Named Arguments","u":"/docs/New Features/Named Arguments","h":"","p":234},{"i":237,"t":"You can use positional arguments for the first few arguments and then use named arguments for the latter ones, for example: pluto local function process_file(file, mode = \"r\", version = 1) print($\"Processing {file} with mode '{mode}' and version {version}\") end process_file(\"hello.txt\", version = 2) -- \"Processing hello.txt with mode 'r' and version 2\" Copy","s":"Mixing arguments","u":"/docs/New Features/Named Arguments","h":"#mixing-arguments","p":234},{"i":239,"t":"This feature is implemented entirely in the parser and therefore only works for local functions at the moment.","s":"Limitations","u":"/docs/New Features/Named Arguments","h":"#limitations","p":234},{"i":241,"t":"Functions can be declared nodiscard, causing a warning to be raised when the return value is discarded: pluto local function add(a, b) return a + b end add(1, 2) Copy file.pluto:5: warning: discarding return value of function declared '' [discarded-return] 5 | add(1, 2) | ^^^^^^^^^ here Copy This can also be combined with type hints: pluto local function add(a: number, b: number): number return a + b end Copy info The warning coverage is currently limited to local functions.","s":"Nodiscard Functions","u":"/docs/New Features/Nodiscard Functions","h":"","p":240},{"i":243,"t":"Pluto makes two small changes to numeral parsing.","s":"Numeral Parsing","u":"/docs/New Features/Numeral Parsing","h":"","p":242},{"i":245,"t":"You can add underscores to your numeric literals to make them more readable. Example Code pluto local n = 10_000_000 assert(n == 10000000) Copy These underscores are ignored by the compiler, so they are purely cosmetic.","s":"Cosmetic Underscores","u":"/docs/New Features/Numeral Parsing","h":"#cosmetic-underscores","p":242},{"i":247,"t":"Similar to how Lua allows you to input numbers in hexadecimal: Example Code pluto local n = 0x420 assert(n == 1056) Copy Pluto allows you to input numbers in binary as well: Example Code pluto local n = 0b1000101 assert(n == 69) Copy","s":"Binary Integers","u":"/docs/New Features/Numeral Parsing","h":"#binary-integers","p":242},{"i":250,"t":"Accessing deeply nested fields which can potentially be nil was problematic, because you'd need an unreasonable amount of guard clauses to prevent an \"attempt to index nil\" error. Pluto now offers this syntax: Basic Usage pluto local person = { name = \"Alice\" } local pet_name = person.pet?.name Copy In this example, person.pet is nil. However, this does not throw an \"attempt to index nil\" error. pet_name is simply set to nil. Practical Usage pluto -- Pretend userConfig is parsed from a JSON file, or something. --- Returning the user's preferred color, or Red if they have no preferred color. local function get_color() return userConfig.colors?.preferred ?? \"Red\" end print(get_color()) Copy In this example, we also use the null coalescing operator ??. info These cannot be used for statements, like a?.b?.c = 0. They're only valid as expressions. Safe Navigation (for member access) was written by Sven Olsen.","s":"For Member Access","u":"/docs/New Features/Safe Navigation","h":"#for-member-access","p":248},{"i":252,"t":"Similarly, if you want to have optional hook functions, you can use safe method calls instead of writing conditionals: Lua Way pluto if self.onEvent then self:onEvent(event) end Copy Pluto Way pluto self:onEvent?(event) Copy You can also check if the left-hand side of : is not nil: pluto object?:onEvent(event) -- 'object' may be nil object?:onEvent?(event) -- 'object' and 'object.onEvent' may be nil Copy Note that this feature will truncate multiple return values if they're not used as part of a fixed assignment: pluto function myfunc() return 1, 2 end local a, b, c = _G:myfunc?() print(a, b, c) --> 1 2 nil print(_G:myfunc?()) --> 1 Copy","s":"For Method Calls","u":"/docs/New Features/Safe Navigation","h":"#for-method-calls","p":248},{"i":254,"t":"You can index strings for their characters now, which is cleaner & 3x faster than using string.sub. String indexing only occurs when you index with an integer, either positive or negative. Positive integers index from the start of the string, and negative integers index from the end. Example Code pluto local str = \"hello world\" print(str[5]) -- \"o\" print(str[200]) -- nil print(str[-1]) -- \"d\" Copy Any character-intensive task — for example, a hash algorithm — will greatly benefit from this. caution The bytecode of this feature is not backwards-compatible with Lua.","s":"String Indexing","u":"/docs/New Features/String Indexing","h":"","p":253},{"i":256,"t":"String interpolation is a simple alternative syntax to concatenation. Concatenation pluto local label = \"meaning of life\" local data = { value = 42 } print(\"The \" .. label .. \" is \" .. data.value) --> The meaning of life is 42 Copy String Interpolation pluto local label = \"meaning of life\" local data = { value = 42 } print($\"The {label} is {data.value}\") --> The meaning of life is 42 Copy As you can see, you declare a string interpolated by prefixing it with the \"$\" symbol. Brackets can contain any expression. The result of expressions will be converted to a string as with normal concatenation, although note that Pluto supports boolean concatenation unlike Lua.","s":"String Interpolation","u":"/docs/New Features/String Interpolation","h":"","p":255},{"i":258,"t":"Pluto makes a plethora of improvements when it comes to object-oriented programming.","s":"Object-Oriented Programming","u":"/docs/New Features/Object-Oriented Programming","h":"","p":257},{"i":260,"t":"A series of methods was otherwise ugly to implement into a Lua table. Old Code pluto local t = {} function t:f1(...) end function t:f2(...) end function t:f3(...) end Copy Now, you can inline these statements inside of your table. New Code pluto local t = { function f1() end, function f2() end, function f3() end } Copy This automatically marks the functions as methods. caution Keep in mind, this produces methods, meaning you'll need to use the colon invocation syntax to avoid positional ambiguities in your parameters.","s":"Method Creation","u":"/docs/New Features/Object-Oriented Programming","h":"#method-creation","p":257},{"i":262,"t":"For consistency with the above syntax, you can use 'static function' to declare non-method functions in your tables: pluto local t = { static function say(msg) print(msg) end } t.say(\"Hello\") --> Hello Copy","s":"Static Functions","u":"/docs/New Features/Object-Oriented Programming","h":"#static-functions","p":257},{"i":264,"t":"Pluto adds an easy way to make instances with the new operator. This operator will also call the __construct method if it exists. pluto local Human = { function __construct(name) self.name = name end } local john = new Human(\"John\") print(john.name) --> John Copy Note that for compatibility with Lua and C API classes, the new operator checks for the existence of a static 'new' function. If it exists, new X(...) will be identical to X.new(...).","s":"New Operator","u":"/docs/New Features/Object-Oriented Programming","h":"#new-operator","p":257},{"i":266,"t":"The class statement is similar to a table constructor, but it does not require commas or semicolons: pluto class Human function __construct(name) self.name = name end function __gc() print(self.name .. \" died of irrelevance\") end end local john = new Human(\"John\") Copy The class statement also supports modifiers: local class NAME, export class NAME","s":"Class Statement","u":"/docs/New Features/Object-Oriented Programming","h":"#class-statement","p":257},{"i":268,"t":"There is also a class expression, which can be used e.g. when assigning to a variable: pluto local Human = class function __construct(name) self.name = name end end Copy","s":"Class Expression","u":"/docs/New Features/Object-Oriented Programming","h":"#class-expression","p":257},{"i":270,"t":"The class statement also supports extends to specify a parent: pluto class Entity age = 1 end class Human extends Entity end local human = new Human() print(human.age) --> 1 Copy This also adds a __parent field to Human.","s":"Extends","u":"/docs/New Features/Object-Oriented Programming","h":"#extends","p":257},{"i":272,"t":"The parent expression is a shorthand for self.__parent, which also supports method call syntax, in which case it's a shorthand for self.__parent.METHOD(self, ...). pluto class Entity function __construct(name) self.name = name end end class Human extends Entity -- If we don't define __construct, the parent-constructor would be called automatically. -- However, if we overwrite it, we can use parent:__construct to call it manually. function __construct(name) parent:__construct(name) end end local human = new Human(\"John\") print(human.name) --> John Copy Note that if you have a local variable (or function parameter) called \"parent\", the parent expression will defer to it.","s":"Parent Expression","u":"/docs/New Features/Object-Oriented Programming","h":"#parent-expression","p":257},{"i":274,"t":"Pluto allows you to specify if a field is 'public' or 'private'. Private fields can only be accessed by the class that defined them. pluto class Human public name private age function __construct(name, age) self.name = name self.age = age end function getAge() return self.age end end local human = new Human(\"John\", 42) print(human.name) -- \"John\" print(human:getAge()) -- 42 print(human.age) -- nil Copy","s":"Private Fields","u":"/docs/New Features/Object-Oriented Programming","h":"#private-fields","p":257},{"i":276,"t":"Because a common task of __construct methods is to assign the value of arguments to table fields, Pluto provides a simple syntax to reduce this boilerplate: pluto class Human function __construct(public name, private age) end function getAge() return self.age end end local human = new Human(\"John\", 42) print(human.name) -- \"John\" print(human:getAge()) -- 42 print(human.age) -- nil Copy","s":"Constructor Promotion","u":"/docs/New Features/Object-Oriented Programming","h":"#constructor-promotion","p":257},{"i":278,"t":"The instanceof operator can be used to check if a table is a class instance, including inherited classes: pluto class Entity end class Human extends Entity end local e = new Entity() local h = new Human() print(e instanceof Entity) -- true print(e instanceof Human) -- false print(h instanceof Entity) -- true (by inheritance) print(h instanceof Human) -- true Copy It can also be used as a function: pluto class Entity end local e = new Entity() print(instanceof(e, Entity)) -- true Copy Try It Yourself​ info Note that, while the instanceof operator generates Lua-compatible bytecode, the instanceof function is a part of Pluto's standard library, and hence unavailable under Lua.","s":"Instanceof Operator","u":"/docs/New Features/Object-Oriented Programming","h":"#instanceof-operator","p":257},{"i":280,"t":"Some of the syntax discussed here may be different due to compatiblity mode: new -> pluto_new class -> pluto_class parent -> pluto_parent Alternatively, pluto_use new, class, parent will enable these keywords independently of environment settings.","s":"Using Compatibility Mode?","u":"/docs/New Features/Object-Oriented Programming","h":"#using-compatibility-mode","p":257},{"i":282,"t":"Tables can now be frozen at their current state to forbid any future modification. This action is irreversible and permanent for the lifespan of the table. pluto -- Disallowing any edits to the global environment table. table.freeze(_G) _G.string = {} -- file.pluto:4: attempt to modify frozen table. Copy pluto -- Creating a constant local that's associated with a frozen table. local Frozen = table.freeze({ 1, 2, 3 }) Frozen = {} -- file.pluto:4: attempt to reassign constant. Frozen[1] = \"new value\" -- file.pluto:7: attempt to modify frozen table. rawset(Frozen, \"key\", \"value\") -- file.pluto:10: attempt to modify frozen table. Copy pluto --- Trying to swap the value with the debug library. for i = 1, 249 do local name, value = debug.getlocal(1, i) if name == \"Frozen\" then debug.setlocal(1, i, { [\"key\"] = \"hello world\" }) -- file.pluto:5: attempt to modify local variable with a frozen table. end end Copy","s":"Table Freezing","u":"/docs/New Features/Table Freezing","h":"","p":281},{"i":284,"t":"All modifications to the table from within the Lua environment will be prevented, including those from the debug library. caution If you're going to use this for a sandbox, ensure you call table.freeze before any users can access the Lua environment, otherwise they can replace that function.","s":"What will this prevent?","u":"/docs/New Features/Table Freezing","h":"#what-will-this-prevent","p":281},{"i":286,"t":"Switch blocks consists of the following new keywords: case switch default","s":"Switch Blocks","u":"/docs/New Features/Switch Blocks","h":"","p":285},{"i":288,"t":"pluto local value = 1 switch value do case 1: print(\"There is only one!\") break case 2: print(\"There is only two!\") break end -- Break jumps here. Copy Switch statements also support fallthrough. pluto local value = 1 switch value do case 1: case 2: case 3: case 4: case 5: print(\"Got 1-5.\") break default: print(\"Value is greater than 5.\") end -- Break jumps here. Copy In this example, cases 1-4 fall through to case 5. Remember to use break whenever you do not want fallthrough. Here is an example of a potential bug: pluto local value = 1 switch value do case 1: print(\"There is only one!\") case 2: print(\"There is only two!\") end -- Output: -- There is only one! -- There is only two! <-- Uh oh. Copy The default case is executed if none of the other cases are true. For example: pluto local value = 1 switch value do case 2: case 3: break default: print(\"Value is neither 2 nor 3!\") end Copy The default case can be placed anywhere in the block. It also supports fallthrough, so remember to use break if you place it above any cases.","s":"Switch Statement","u":"/docs/New Features/Switch Blocks","h":"#switch-statement","p":285},{"i":290,"t":"Any expression can be used for the case condition: pluto switch true do case 42 == 42: print(\"42 is 42 is true\") break end Copy There is a short-hand fallthrough syntax: pluto switch value do case 1, 2, 3: print(\"1-3\") break case 4, 5, 6: print(\"4-6\") break end Copy However, note that method calls needs to be encapsulated with parentheses: pluto local t = { function getVal() return 42 end } switch 42 do case t:getVal(): -- This is interpreted as `case t: getVal():print(\"val is 42\")` print(\"val is 42\") break case (t:getVal()): -- This works as expected print(\"val is 42\") break end Copy","s":"Case Blocks","u":"/docs/New Features/Switch Blocks","h":"#case-blocks","p":285},{"i":292,"t":"Just like ternary expressions, these allow you to conditionally provide values, with massively simplified case blocks: pluto local place = 1 place = switch place do case 1 -> \"1st\" case 2 -> \"2nd\" case 3 -> \"3rd\" default -> $\"{place}th\" end print(place) --> 1st Copy Note that the case blocks here have their conditions delimited by an arrow (->) instead of a colon (:). Despite not being able to manually fall through, the shorthand fallthrough syntax still works: pluto local function print_range(value) print(switch value do case 1, 2, 3 -> \"1-3\" case 4, 5, 6 -> \"4-6\" end) end print_range(1) --> 1-3 print_range(6) --> 4-6 print_range(9) --> nil Copy Notice how the default case was omitted in this example, so it was implicitly set to default -> nil.","s":"Switch Expression","u":"/docs/New Features/Switch Blocks","h":"#switch-expression","p":285},{"i":294,"t":"You may need to use pluto_switch instead of switch. Alternatively, pluto_use switch will enable the keyword independently of environment settings.","s":"Using Compatibility Mode?","u":"/docs/New Features/Switch Blocks","h":"#using-compatibility-mode","p":285},{"i":296,"t":"Type-hinting looks like this: pluto local var: string = \"hello world\" Copy It works with functions too: pluto local function myfunc(a: string, b: string): number return tonumber(a) + tonumber(b) end print(myfunc(1, \"1\")) -- This will emit a warning for argument type mismatch. Copy There's no effect on performance. This is implemented entirely during the compilation phase.","s":"Type Hinting","u":"/docs/New Features/Type Hinting","h":"","p":295},{"i":298,"t":"string number int float boolean/bool function table userdata void (return type only) Prefix a ? to indicate nil-able types, e.g. ?string indicates that it may be nil or a string. You can also use | to delimit alternatives, e.g. string|int indicates that it may be a string or an int. Putting all of this together, we could also have e.g. ?string|int to indicate that it may be nil, a string, or an int. info This is a WIP feature, and it's very difficult to implement in a one-pass compiler. Allow tolerance for missing coverage, and report any bugs.","s":"What types can I use?","u":"/docs/New Features/Type Hinting","h":"#what-types-can-i-use","p":295},{"i":300,"t":"Pluto provides a more intuitive way to handle errors than pcall and xpcall. pluto local function get_fruit_rating(fruit) return switch fruit do case \"apple\" -> 8 case \"banana\" -> 7 case \"orange\" -> 9 case \"mango\" -> 10 case \"grape\" -> 6 case \"strawberry\" -> 9 case \"cucumber\", \"tomato\" -> error(\"What are you, a botanist?\") end end local function try_get_fruit_rating(fruit) try return get_fruit_rating(fruit) catch e then if e:find(\"What are you, a botanist?\") then return -10 end end end print(try_get_fruit_rating(\"apple\")) --> 8 print(try_get_fruit_rating(\"cucumber\")) --> -10 print(try_get_fruit_rating(\"car\")) --> nil Copy","s":"Try-Catch Statement","u":"/docs/New Features/Try-Catch Statement","h":"","p":299},{"i":302,"t":"You may need to use pluto_try and pluto_catch instead. Alternatively, pluto_use try, catch will enable both keywords independently of the environment settings.","s":"Using Compatibility Mode?","u":"/docs/New Features/Try-Catch Statement","h":"#using-compatibility-mode","p":299},{"i":304,"t":"Ternary expressions behave identical as to how they would in C. They introduce no new keywords. Old Code pluto local max if a > b then max = a else max = b end Copy New Code pluto local max = a > b ? a : b Copy Try It Yourself​","s":"Ternary Expressions","u":"/docs/New Features/Ternary Expressions","h":"","p":303},{"i":306,"t":"If expressions are an alternative syntax for ternary expressions: pluto local a = 6 local b = 9 local max = if a > b then a else b end print(max) --> 9 Copy","s":"If Expressions","u":"/docs/New Features/Ternary Expressions","h":"#if-expressions","p":303},{"i":308,"t":"While it is true that you can do something like this: pluto local max = a > b and a or b Copy Keep in mind that this falls apart when the true-expression has a falsy value: pluto local x = -1 x = (x == -1 and nil or x) Copy In this case, x will be -1 despite the intention being to set it to nil. There are no such issues using Pluto's ternary expressions.","s":"Doesn't Lua already have ternaries?","u":"/docs/New Features/Ternary Expressions","h":"#doesnt-lua-already-have-ternaries","p":303},{"i":311,"t":"These operators function the same, but they're more consistent with what's been standardized through programming today. ! is an alias for not, the boolean inversion operator. != is an alias for ~=, the inequality operator.","s":"Operator Aliases","u":"/docs/New Operators","h":"#operator-aliases","p":309},{"i":313,"t":"A plethora of compound operators are available in Pluto: Addition: += Subtraction: -= Multiplication: *= Float division: /= Integer division: //= Modulo: %= Exponent: ^= Bitwise AND: &= Bitwise OR: |= Bitwise XOR: ~= In Lua, the inequality operator cannot be used in statements. It must be used in expressions. Because compound operators can only be used in statements (and cannot be used in expressions), this is not a compatibility break. Bitshift left: <<= Bitshift right: >>= Concatenation: ..= Nil-Coalescing: ??= pluto local a = 1 a = a + 1 a += 1 Copy info Compound operators are syntactic sugar. They'll call the same metamethods as their non-compound counterparts.","s":"Compound Operators","u":"/docs/New Operators","h":"#compound-operators","p":309},{"i":315,"t":"The <, <=, >, and >= operators can now be chained successively. pluto if 1 < 2 < 3 then print(\"Hello, world!\") end -- Pluto generates code which effectively evaluates to this: if 1 < 2 and 2 < 3 then print(\"Hello, world!\") end Copy","s":"Comparison Chaining","u":"/docs/New Operators","h":"#comparison-chaining","p":309},{"i":317,"t":"The nil-coalescing operator is helpful for evaluating values against nil. If the left-hand operand is nil, it returns the right-hand operand. Otherwise, it returns the left-hand operand. pluto local function say(message) print(message ?? \"The message was nil.\") end say() --> The message was nil. say(nil) --> The message was nil. say(\"Hello, world!\") --> Hello, world! Copy It's a cleaner version of this code: pluto local function say(message) if message == nil then message = \"The message was nil.\" end print(message) end say() --> The message was nil. say(nil) --> The message was nil. say(\"Hello, world!\") --> Hello, world! Copy You can even use compound assignment: pluto local function say(message) message ??= \"The message was nil.\" print(message) end say() --> The message was nil. say(nil) --> The message was nil. say(\"Hello, world!\") --> Hello, world! Copy info This operator does not implement any metamethods.","s":"Coalescing Operator","u":"/docs/New Operators","h":"#coalescing-operator","p":309},{"i":319,"t":"The Walrus operator allows you to perform assignments inside of conditional expresssions. pluto if a := get_value() then -- 'a' was assigned a truthy value. else -- 'a' was assigned a falsy value. end Copy You can imagine it like this, but note they're not always the same: pluto do local a = get_value() if a then -- 'a' was assigned a truthy value. else -- 'a' was assigned a falsy value. end end Copy Note that for while-loops, it will be executed as many times as the condition: Pluto Way pluto while a := next_value() do -- ... end Copy Lua Way pluto while true do local a = next_value() if not a then break end -- ... end Copy","s":"Walrus Operator","u":"/docs/New Operators","h":"#walrus-operator","p":309},{"i":321,"t":"The spaceship operator, also known as the three-way comparison operator, allows you to quickly compare 2 values for equality and order. pluto local eq = 1 <=> 1 local lt = 3 <=> 42 local gt = 9 <=> 5 print(eq, lt, gt) --> 0, -1, 1 Copy It works with any type that supports __eq and __lt, making it well-suited for usage in generic algorithms like sorting. The return values are designed such that you can compare them to 0, e.g. with the values from above: pluto print(eq <= 0) --> true print(lt <= 0) --> true print(gt <= 0) --> false Copy","s":"Spaceship Operator","u":"/docs/New Operators","h":"#spaceship-operator","p":309},{"i":323,"t":"The pipe operator allows you represent data pipelines more succinctly. pluto local { http, json } = require \"pluto:*\" http.request(\"https://httpbin.org/get\") |> json.decode |> dumpvar |> print --> { --> [\"args\"] = {}, --> [\"headers\"] = { --> [\"Host\"] = string(11) \"httpbin.org\", --> [\"User-Agent\"] = string(56) \"Mozilla/5.0 (compatible; Soup Library; +https://soup.do)\", --> [\"X-Amzn-Trace-Id\"] = string(40) \"Root=1-65e05b66-6aa8b7c94e7580774a804c24\", --> [\"Accept-Encoding\"] = string(13) \"deflate, gzip\", --> }, --> [\"origin\"] = string(13) \"1.2.3.4\", --> [\"url\"] = string(23) \"https://httpbin.org/get\", --> } Copy The HTTP-to-print pipeline here would otherwise be written like this: pluto print(dumpvar(json.decode((http.request(\"https://httpbin.org/get\"))))) Copy Note that the pipe operator only passes on the first return value, which is classically achieved by wrapping the expression in an extra pair of parentheses.","s":"Pipe Operator","u":"/docs/New Operators","h":"#pipe-operator","p":309},{"i":325,"t":"It is also possible to provide additional arguments for the righthand side of the pipe operator: pluto local producer = || -> \"10\" producer() |> tonumber|16| |> print --> 16 Copy","s":"Additional Arguments","u":"/docs/New Operators","h":"#additional-arguments","p":309},{"i":327,"t":"There is specialized syntax for method calls with the pipe operator, too: pluto local producer = || -> 21 local obj = { function multiply(value) return value * self.factor end } obj.factor = 2 producer() |> obj:multiply |> print --> 42 Copy","s":"Methods Calls","u":"/docs/New Operators","h":"#methods-calls","p":309},{"i":329,"t":"The righthand side of the pipe operator can also be an anonymous function, allowing for more advanced usage like this: pluto local producer = || -> 42 producer() |> |res| -> print($\"The result was {res}\") --> The result was 42 Copy","s":"Anonymous Functions","u":"/docs/New Operators","h":"#anonymous-functions","p":309},{"i":331,"t":"The pairs and ipairs functions are optimized in Pluto. On a consistent basis, pairs & ipairs loops are 3.5x faster than their Lua counterparts.","s":"For Loops","u":"/docs/Optimizations/For Loops","h":"","p":330},{"i":333,"t":"It doesn't operate under all circumstances though, the state of the iterator is stored in the to-be-closed variable returned by these functions, which is the last variable they give. If you interact or modify this variable, then the optimization won't occur. pairs: next, table, nil, nil ipairs: ipairsaux, table, integer, nil Copy As long as you don't access the last nil value, you're fine. info This optimization was published and implemented entirely by Xmelia Hermit.","s":"How does it work?","u":"/docs/Optimizations/For Loops","h":"#how-does-it-work","p":330},{"i":335,"t":"Lua implemented a jump table, but it is only compatible with clang and gcc. Pluto has an additional jump table implementation for other compilers; however, it is not enabled by default because it can add minutes to compile time, depending on the setup. However, it may be beneficial to you regardless, as a jump table can increase virtual machine performance by up to 5%. If you would like to try it, define PLUTO_FORCE_JUMPTABLE in luaconf.h or your build config.","s":"Jump Table","u":"/docs/Optimizations/Jump Table","h":"","p":334},{"i":337,"t":"Special arithmetic algorithms are optimized by Pluto during compile-time. For example: x << 1 => x + x x ** 2 => x * x x // 2 => x >> 1 These can offer upwards of a 20% performance boost. These expressions are only optimized when both operands are integers, and no metamethod will be called.","s":"Special Arithmetic","u":"/docs/Optimizations/Special Arithmetic","h":"","p":336},{"i":339,"t":"Pluto's virtual machine allows you to simply iterate over tables without having to explicitly call a function: New Code pluto local t = { 1, 2, 3, \"hello\", \"world\" } for key, value in t do print(key, value) end Copy When you omit the function from the loop preparation, next is implicitly inserted. So, that code is identical to this: Old Code pluto local t = { 1, 2, 3, \"hello\", \"world\" } for key, value in next(t) do print(key, value) end Copy This is compatible with for-loop optimizations. caution The bytecode of this feature is not backwards-compatible with Lua.","s":"Generalized Iteration","u":"/docs/QoL Improvements/Generalized Iteration","h":"","p":338},{"i":341,"t":"Pluto will cache the length of a table when you request it for the first time. This cache is refreshed whenever you make an edit to the table. It's still advisable to localize this value though, since looking through the cache and the virtual machine is expensive compared to looking up a local.","s":"Table Length","u":"/docs/Optimizations/Table Length","h":"","p":340},{"i":343,"t":"Pluto allows you to concatenate boolean values just like you would number values: pluto local iVar = 13 local bVar = true print(\"iVar = \" .. iVar) print(\"bVar = \" .. tostring(bVar)) -- Lua way print(\"bVar = \" .. bVar) -- Pluto way Copy","s":"Boolean Concatenation","u":"/docs/QoL Improvements/Boolean Concatenation","h":"","p":342},{"i":345,"t":"The parenthesis around some types of expressions are optional now. Gross Way pluto print((\"hello world\"):contains(\"world\")) Copy Clean Way pluto print(\"hello world\":contains(\"world\")) Copy This also works for table types.","s":"Optional Parentheses","u":"/docs/QoL Improvements/Optional Parentheses","h":"","p":344},{"i":347,"t":"Pluto allows you to use reserved tokens such as if from Lua and class from Pluto as identifiers with shorthand table syntax and for goto labels. Reserved tokens as identifiers with shorthand table syntax pluto local t = { class = \"key\" } print(t.class) Copy Reserved tokens as identifiers for goto labels pluto -- Print every number besides five. for i = 1, 10 do if i == 5 then goto continue end print(i) ::continue:: end Copy However, variable names and function calls will not allow you to use reserved tokens as identifiers.","s":"Reserved Identifiers","u":"/docs/QoL Improvements/Reserved Identifiers","h":"","p":346},{"i":349,"t":"Pluto removes the locals limit, allowing you to use compile-time constants, including enums, as much as you want. Note that you are still limited to 255 registers, so you can't have infinite dynamic variables per function.","s":"Removed Locals Limit","u":"/docs/QoL Improvements/Removed Locals Limit","h":"","p":348},{"i":351,"t":"The messages for syntax errors are enhanced. They include tailored messages and code snippets, which should help newer programmers identify problems quicker. It's not a game changer, but it's neat.","s":"Syntax Errors","u":"/docs/QoL Improvements/Syntax Errors","h":"","p":350},{"i":353,"t":"Problematic Code pluto if a < b and t == 5 return \"Gottem\" end Copy Emitted Syntax Error syntax error: file.pluto:1: expected 'then' to delimit condition. 1 | if a < b and t == 5 return \"Gottem\" end | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ here: expected 'then' symbol. Copy","s":"Example 1","u":"/docs/QoL Improvements/Syntax Errors","h":"#example-1","p":350},{"i":355,"t":"Problematic Code pluto local fn = |a, b, c| => (a == b and a < c) Copy Emitted Syntax Error syntax error: file.pluto:1: impromper lambda definition 1 | local fn = |a, b, c| => (a == b and a < c) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ here: expected '->' arrow syntax for lambda expression. Copy","s":"Example 2","u":"/docs/QoL Improvements/Syntax Errors","h":"#example-2","p":350},{"i":357,"t":"These errors support coloring, but it's disabled by default. Define the PLUTO_USE_COLORED_OUTPUT macro in luaconf.h or your build config to enable colored error messages. tip For Windows users, you can enable ANSI coloring support with the following command: REG ADD HKCU\\CONSOLE /f /v VirtualTerminalLevel /t REG_DWORD /d 1","s":"ANSI Coloring","u":"/docs/QoL Improvements/Syntax Errors","h":"#ansi-coloring","p":350},{"i":359,"t":"Pluto allows do to be used as a universal block opener, meaning it can be used instead of then and begin. If Statement Example pluto local x = 3 if x == 3 do print(\"x is 3!\") end Copy Class Statement Example pluto class Human do function __construct(public name) end function greet() print($\"Hello, {self.name}!\") end end new Human(\"John\"):greet() Copy Enum Statement Example pluto enum Suit do HEARTS, DIAMONDS, CLUBS, SPADES end assert(HEARTS == 1) Copy","s":"Universal Block Opener","u":"/docs/QoL Improvements/Universal Block Opener","h":"","p":358},{"i":361,"t":"Must be included via require.","s":"Assert","u":"/docs/Runtime Environment/Assert","h":"","p":360},{"i":363,"t":"Asserts that value is nil Parameters​ value — The value which should be nil. Errors​ An assertion error is thrown if the value is not nil. pluto local assert = require(\"assert\") assert.isnil(nil) -- Passes. assert.isnil(5) -- Error: --[[ test.pluto:4 -> Assertion Error: (assert.isnil) Intended Value: nil Received Value: 5 stack traceback: [C]: in function 'error' [string \"pluto:assert\"]:75: in function <[string \"pluto:assert\"]:46> (...tail calls...) [C]: in ? --]] Copy","s":"assert.isnil","u":"/docs/Runtime Environment/Assert","h":"#assertisnil","p":360},{"i":365,"t":"Asserts that value is true. Parameters​ value — The value which should be true. Errors​ An assertion error is thrown if value is not true pluto local assert = require(\"assert\") assert.istrue(true) -- Passes. assert.istrue(false) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.istrue) Intended Value: true Received Value: false stack traceback: [C]: in function 'error' [string \"pluto:assert\"]:75: in function <[string \"pluto:assert\"]:46> (...tail calls...) test.pluto:4: in main chunk [C]: in ? --]] Copy","s":"assert.istrue","u":"/docs/Runtime Environment/Assert","h":"#assertistrue","p":360},{"i":367,"t":"Asserts that value is false. Parameters​ value — The value which should be false. Errors​ An assertion error is thrown if value is not false. pluto local assert = require(\"assert\") assert.isfalse(false) -- Passes. assert.isfalse(true) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.isfalse) Intended Value: false Received Value: true stack traceback: [C]: in function 'error' [string \"pluto:assert\"]:75: in function <[string \"pluto:assert\"]:46> (...tail calls...) test.pluto:4: in main chunk [C]: in ? --]] Copy","s":"assert.isfalse","u":"/docs/Runtime Environment/Assert","h":"#assertisfalse","p":360},{"i":369,"t":"Asserts that value is a \"falsy\" value. Falsy means the value is nil or false. Parameters​ value — The value which should be falsy. Errors​ An assertion error is thrown if value is not falsy. pluto local assert = require(\"assert\") assert.falsy(nil) -- Passes. assert.falsy(false) -- Passes. assert.falsy(\"Hello, world!\") -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.falsy) Intended Value: nil or false Received Value: string(13) \"Hello, world!\" stack traceback: [C]: in function 'error' [string \"pluto:assert\"]:75: in function <[string \"pluto:assert\"]:46> (...tail calls...) test.pluto:4: in main chunk [C]: in ? --]] Copy","s":"assert.falsy","u":"/docs/Runtime Environment/Assert","h":"#assertfalsy","p":360},{"i":371,"t":"Asserts that value is a \"truthy\" value. This is the inverse of \"falsy\", a.k.a, any value that isn't nil or false is truthy. Parameters​ value — The value which should be truthy, a.k.a it should not be nil or false. Errors​ An assertion error is thrown if value is not truthy, i.e if value is nil or false. pluto local assert = require(\"assert\") assert.truthy(\"Hello, world!\") -- Passes. assert.truthy(nil) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.truthy) Intended Value: not nil or false Received Value: nil stack traceback: [C]: in function 'error' [string \"pluto:assert\"]:75: in function <[string \"pluto:assert\"]:46> (...tail calls...) test.pluto:4: in main chunk [C]: in ? --]] Copy","s":"assert.truthy","u":"/docs/Runtime Environment/Assert","h":"#asserttruthy","p":360},{"i":373,"t":"Asserts that value is not nil. Parameters​ value — The value which should not be nil. Errors​ An assertion error is thrown if value is nil. pluto local assert = require(\"assert\") assert.notnil(\"Hello, world!\") -- Passes. assert.notnil(nil) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.notnil) Intended Value: not nil Received Value: nil stack traceback: [C]: in function 'error' [string \"pluto:assert\"]:75: in function <[string \"pluto:assert\"]:46> (...tail calls...) test.pluto:4: in main chunk [C]: in ? --]] Copy","s":"assert.notnil","u":"/docs/Runtime Environment/Assert","h":"#assertnotnil","p":360},{"i":375,"t":"Asserts that value1 is equal to value2. This function can compare tables, looking at both the table's reference and what's inside it. If the tables aren't exactly the same (meaning they don't reference the same table), the function will go through the contents of the tables and compare them step by step. Parameters​ value1 — The first value. value2 — The second value. Errors​ An assertion error is thrown if value1 does not equal value2. pluto local assert = require(\"assert\") assert.equal(\"Hello, world!\", \"Hello, world...\") -- Error: --[[ pluto: test.pluto:3 -> Assertion Error: (assert.equal) Intended Value: string(13) \"Hello, world!\" Received Value: string(15) \"Hello, world...\" --]] assert.equal(\"Hi there.\":split(\" \"), \"Hello there.\":split(\" \")) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.equal) Intended Value: { [1] = string(2) \"Hi\", [2] = string(6) \"there.\", } Received Value: { [1] = string(5) \"Hello\", [2] = string(6) \"there.\", } --]] Copy","s":"assert.equal","u":"/docs/Runtime Environment/Assert","h":"#assertequal","p":360},{"i":377,"t":"Asserts that value1 is not equal to value2. This function can compare tables, looking at both the table's reference and what's inside it. If the tables aren't exactly the same (meaning they don't reference the same table), the function will go through the contents of the tables and compare them step by step. Parameters​ value1 — The first value. value2 — The second value. Errors​ An assertion error is thrown of value1 does equal value2. pluto local assert = require(\"assert\") assert.nequal(\"Hello, world!\", \"Hi, world!\") -- Passes. assert.nequal(\"Hi there.\":split(\" \"), \"Hello there.\":split(\" \")) -- Passes. Copy","s":"assert.nequal","u":"/docs/Runtime Environment/Assert","h":"#assertnequal","p":360},{"i":379,"t":"Asserts that value1 is less than value2. Parameters​ value1 — The first number. value2 — The second number. Errors​ An assertion error is thrown if value1 is not less than value2. pluto local assert = require(\"assert\") assert.less(1, 2) -- Passes. assert.less(1, 1) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.less) Expression: (1 < 1) == false --]] Copy","s":"assert.less","u":"/docs/Runtime Environment/Assert","h":"#assertless","p":360},{"i":381,"t":"Asserts that value1 is less than or equal to value2. Parameters​ value1 — The first number. value2 — The second number. Errors​ An assertion error is thrown if value1 is not less than or equal to value2. pluto local assert = require(\"assert\") assert.lesseq(1, 2) -- Passes. assert.lesseq(1, 0) -- Error: --[[ pluto: test.pluto:3 -> Assertion Error: (assert.lesseq) Expression: (1 <= 0) == false --]] Copy","s":"assert.lesseq","u":"/docs/Runtime Environment/Assert","h":"#assertlesseq","p":360},{"i":383,"t":"Asserts that value1 is greater than value2. Parameters​ value1 — The first number. value2 — The second number. Errors​ An assertion errros is thrown if value1 is not greater than value2. pluto local assert = require(\"assert\") assert.greater(3, 2) -- Passes. assert.greater(3, 3) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.greater) Expression: (3 > 3) == false --]] Copy","s":"assert.greater","u":"/docs/Runtime Environment/Assert","h":"#assertgreater","p":360},{"i":385,"t":"Asserts that value1 is greater than or equal to value2. Parameters​ value1 — The first number. value2 — The second number. Errors​ An assertion errros is thrown if value1 is not greater than or equal to value2. pluto local assert = require(\"assert\") assert.greatereq(3, 2) -- Passes. assert.greatereq(3, 3) -- Passes. Copy","s":"assert.greatereq","u":"/docs/Runtime Environment/Assert","h":"#assertgreatereq","p":360},{"i":387,"t":"Asserts that callback does not raise an error when called. Parameters​ callback — A function reference. ... — Any other parameters passed to this function will be passed to the callback. Errors​ An assertion error is thrown if callback raises an error. pluto local assert = require(\"assert\") assert.noerror(tostring, 400) -- Passes. assert.noerror(error, \"argument argument\") -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.noerror) An error was raised: argument argument --]] Copy","s":"assert.noerror","u":"/docs/Runtime Environment/Assert","h":"#assertnoerror","p":360},{"i":389,"t":"Asserts that callback does raise an error when called. Parameters​ callback — A function reference. ... — Any other parameters passed to this function will be passed to the callback. Errors​ An assertion error is thrown if callback does not raise an error. pluto local assert = require(\"assert\") assert.haserror(error, \"argument argument\") -- Passes. assert.haserror(tostring, 400) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.haserror) Expected an error, but there was none. --]] Copy","s":"assert.haserror","u":"/docs/Runtime Environment/Assert","h":"#asserthaserror","p":360},{"i":391,"t":"Asserts that callback raises an error, and that substring is present within the error message. Parameters​ substring — The substring that should be inside of the error message. callback — A function reference. ... — Any other parameters passed to this function will be passed to the callback. Errors​ An assertion error is thrown if: callback does not raise an error. callback does raise an error, but the error message does not contain substring. pluto local assert = require(\"assert\") assert.searcherror(\"argument\", error, \"argument argument\") -- Passes. assert.searcherror(\"something\", tostring, 400) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.searcherror) Expected an error, but there was none. --]] assert.searcherror(\"argument\", error, \"argument argument\") -- Passes. assert.searcherror(\"argument\", error, \"something something\") -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.searcherror) Absent String: argument Error Message: something s --]] Copy","s":"assert.searcherror","u":"/docs/Runtime Environment/Assert","h":"#assertsearcherror","p":360},{"i":393,"t":"Asserts that element is contained inside of container by using Pluto's modified in operator. It's important to understand the type constraints of in to understand the type constraints here. Parameters​ element — The element to search for. If container is a string, element must be a string. If container is a table, element can be any type. container — The container that element should be inside of. The container should be a string or table. Errors​ An assertion error is thrown if: element is not contained inside of container. element or container are of the wrong type and cannot be used with Pluto's modified in operator. pluto assert.contains(\"hello\", { \"hello\", \"world\" }) -- Passes. assert.contains(\"world\", { \"hello\", \"hello\" }) -- Fails. Copy","s":"assert.contains","u":"/docs/Runtime Environment/Assert","h":"#assertcontains","p":360},{"i":395,"t":"Must be included via require.","s":"Base32","u":"/docs/Runtime Environment/Base32","h":"","p":394},{"i":397,"t":"Returns an encoded base32 string. Parameters​ data — A string of data to encode. pad — Whether or not to apply padding. Defaults to true.","s":"base32.encode","u":"/docs/Runtime Environment/Base32","h":"#base32encode","p":394},{"i":399,"t":"Returns a decoded base32 string. Parameters​ data — A string of base32 data to decode.","s":"base32.decode","u":"/docs/Runtime Environment/Base32","h":"#base32decode","p":394},{"i":401,"t":"Must be included via require.","s":"Base64","u":"/docs/Runtime Environment/Base64","h":"","p":400},{"i":403,"t":"Returns a base64-encoded string. Parameters​ data — A string of data to encode. pad — Whether or not to apply padding. Defaults to true. pluto local base64 = require(\"base64\") print(base64.encode(\"Hello, World!\")) --> SGVsbG8sIFdvcmxkIQ== Copy","s":"base64.encode","u":"/docs/Runtime Environment/Base64","h":"#base64encode","p":400},{"i":405,"t":"Returns a decoded base64 string. Parameters​ data — A string of base64 data. pluto local base64 = require(\"base64\") print(base64.decode(\"SGVsbG8sIFdvcmxkIQ==\")) --> Hello, world! Copy","s":"base64.decode","u":"/docs/Runtime Environment/Base64","h":"#base64decode","p":400},{"i":407,"t":"Returns a base64url-encoded string. This variant is sometimes refered to as filename safe base64. Parameters​ data — A string of data to encode. pad — Whether or not to apply padding. Defaults to false. pluto local base64 = require(\"base64\") print(base64.urlencode(\"Hello, World!\")) --> SGVsbG8sIFdvcmxkIQ Copy","s":"base64.urlencode","u":"/docs/Runtime Environment/Base64","h":"#base64urlencode","p":400},{"i":409,"t":"Similar to base64.decode except for base64url. Parameters​ data — A string of base64 data. pluto local base64 = require(\"base64\") print(base64.urldecode(\"SGVsbG8sIFdvcmxkIQ\")) --> Hello, world! Copy","s":"base64.urldecode","u":"/docs/Runtime Environment/Base64","h":"#base64urldecode","p":400},{"i":411,"t":"Must be included via require.","s":"Bigint","u":"/docs/Runtime Environment/Bigint","h":"","p":410},{"i":413,"t":"To instantiate a bigint, you can call the bigint.new function, or use the new operator. Parameters​ The decimal value of the bigint. pluto local bigint = require \"pluto:bigint\" print(new bigint(\"123\")) --> 123 Copy","s":"bigint.new","u":"/docs/Runtime Environment/Bigint","h":"#bigintnew","p":410},{"i":415,"t":"As seen above, the __tostring metamethod provides a string representation of the Bigint in decimal.","s":"bigint.tostring, __tostring","u":"/docs/Runtime Environment/Bigint","h":"#biginttostring-__tostring","p":410},{"i":417,"t":"Provides a hexadecimal representation of the Bigint. pluto local bigint = require \"pluto:bigint\" print(new bigint(\"420\"):hex()) --> 1A4 Copy","s":"bigint.hex","u":"/docs/Runtime Environment/Bigint","h":"#biginthex","p":410},{"i":419,"t":"Provides a binary representation of the Bigint. pluto local bigint = require \"pluto:bigint\" print(new bigint(\"420\"):binary()) --> 110100100 Copy","s":"bigint.binary","u":"/docs/Runtime Environment/Bigint","h":"#bigintbinary","p":410},{"i":421,"t":"Adds two bigints together. Returns a new bigint.","s":"bigint.add, __add","u":"/docs/Runtime Environment/Bigint","h":"#bigintadd-__add","p":410},{"i":423,"t":"Performs subtraction on two bigints. Returns a new bigint.","s":"bigint.sub, __sub","u":"/docs/Runtime Environment/Bigint","h":"#bigintsub-__sub","p":410},{"i":425,"t":"Performs multiplication on two bigints. Returns a new bigint.","s":"bigint.mul, __mul","u":"/docs/Runtime Environment/Bigint","h":"#bigintmul-__mul","p":410},{"i":427,"t":"Performs division on two bigints. Returns two new bigints: quotient and remainder. pluto local bigint = require \"pluto:bigint\" print(new bigint(10):div(new bigint(3))) --> 3 1 Copy","s":"bigint.div","u":"/docs/Runtime Environment/Bigint","h":"#bigintdiv","p":410},{"i":429,"t":"Performs division on two bigints. Returns a new bigint with the quotient. pluto local bigint = require \"pluto:bigint\" print(new bigint(10) / new bigint(3)) --> 3 Copy","s":"__div","u":"/docs/Runtime Environment/Bigint","h":"#__div","p":410},{"i":431,"t":"Performs divison on two bigints. Returns a new bigint with the remainder. pluto local bigint = require \"pluto:bigint\" print(new bigint(10) % new bigint(3)) --> 1 Copy","s":"bigint.mod, __mod","u":"/docs/Runtime Environment/Bigint","h":"#bigintmod-__mod","p":410},{"i":433,"t":"Performs expontentiation on two bigints. Returns a new bigint. pluto local bigint = require \"pluto:bigint\" print(new bigint(2) ^ new bigint(10)) --> 1024 Copy","s":"bigint.pow, __pow","u":"/docs/Runtime Environment/Bigint","h":"#bigintpow-__pow","p":410},{"i":435,"t":"Returns the position of the most significant set bit as a plain integer. pluto local bigint = require \"pluto:bigint\" print(new bigint(420):bitlength()) --> 9 Copy","s":"bigint.bitlength","u":"/docs/Runtime Environment/Bigint","h":"#bigintbitlength","p":410},{"i":437,"t":"Must be included via require.","s":"Canvas","u":"/docs/Runtime Environment/Canvas","h":"","p":436},{"i":439,"t":"Creates a new canvas instance. Parameters​ Width. Height.","s":"canvas.new","u":"/docs/Runtime Environment/Canvas","h":"#canvasnew","p":436},{"i":441,"t":"Creates a new canvas instance based on a BMP image. Parameters​ The BMP image as a string.","s":"canvas.bmp","u":"/docs/Runtime Environment/Canvas","h":"#canvasbmp","p":436},{"i":443,"t":"Creates a new canvas instance containing a QR code. Parameters​ The string to be encoded. An optional table of options. Options​ \"ecl\" specifies the error correction level between \"low\", \"medium\", \"quartile\", \"high\". defaults to \"low\". \"border\" specifies the number of pixels around the QR code. defaults to 0. \"bg\" specifies the background color. defaults to 0x000000 for black. \"fg\" specifies the background color. defaults to 0xffffff for white. pluto local canvas = require \"canvas\" local c = canvas.qrcode(\"Hello from Pluto!\", { fg = 0xffffff, bg = 0x000000 }) print(c:tobwstring(0xffffff)) --> █▀▀▀▀▀█ ▄ █▄▄ █▀▀▀▀▀█ --> █ ███ █ ▄█▄▄█ █ ███ █ --> █ ▀▀▀ █ ▄▀ █▄ █ ▀▀▀ █ --> ▀▀▀▀▀▀▀ ▀▄▀▄█ ▀▀▀▀▀▀▀ --> ▀▀███ ▀███ █▀▀ ▀▄█▄▀▄ --> █▄▀▄▀█▀█▀▀ ▀█▄▀▄▄██▀ --> ▀▀▀▀▀ ▀ █▀█▀ ▄█▄▄▄ ▀ --> █▀▀▀▀▀█ ▀ ▀██▀▄ ▄██ --> █ ███ █ █▄ ▄█▄██▄▄ ▄ --> █ ▀▀▀ █ █▄ ▀█▀ ▀▄▄█ --> ▀▀▀▀▀▀▀ ▀ ▀ ▀ ▀ ▀ Copy","s":"canvas.qrcode","u":"/docs/Runtime Environment/Canvas","h":"#canvasqrcode","p":436},{"i":445,"t":"Gets the color of the pixel at the given coordinates. Parameters​ The canvas instance. The X coordinate. The Y coordinate. Returns​ The color as an integer.","s":"canvas.get","u":"/docs/Runtime Environment/Canvas","h":"#canvasget","p":436},{"i":447,"t":"Sets the color of the pixel at the given coordinates. Parameters​ The canvas instance. The X coordinate. The Y coordinate. The color as an integer.","s":"canvas.set","u":"/docs/Runtime Environment/Canvas","h":"#canvasset","p":436},{"i":449,"t":"Sets every pixel to the given color. Parameters​ The canvas instance. The color as an integer.","s":"canvas.fill","u":"/docs/Runtime Environment/Canvas","h":"#canvasfill","p":436},{"i":451,"t":"Get the size of a canvas. Parameters​ The canvas instance. Returns​ Width. Height.","s":"canvas.size","u":"/docs/Runtime Environment/Canvas","h":"#canvassize","p":436},{"i":453,"t":"Multiplies the size of a canvas. Parameters​ The canvas instance. The multiplier. Must be 2 or higher.","s":"canvas.mulsize","u":"/docs/Runtime Environment/Canvas","h":"#canvasmulsize","p":436},{"i":455,"t":"Convert a canvas to a BMP image. Parameters​ The canvas instance. Returns​ A string.","s":"canvas.tobmp","u":"/docs/Runtime Environment/Canvas","h":"#canvastobmp","p":436},{"i":457,"t":"Convert a canvas to a PNG image. Parameters​ The canvas instance. Returns​ A string. pluto local { base64, canvas } = require \"*\" local c = new canvas(5, 5) c:fill(0xff0000) print(\"data:image/png;base64,\"..base64.encode(c:topng())) --> data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAIAAAACDbGyAAAAW0lEQVQIHQFQAK//AP8AAP8AAP8AAP8AAP8AAAD/AAD/AAD/AAD/AAD/AAAA/wAA/wAA/wAA/wAA/wAAAP8AAP8AAP8AAP8AAP8AAAD/AAD/AAD/AAD/AAD/AAD9fBjo3iScjwAAAABJRU5ErkJggg== Copy","s":"canvas.topng","u":"/docs/Runtime Environment/Canvas","h":"#canvastopng","p":436},{"i":459,"t":"Convert a canvas to a black and white unicode string. Parameters​ The canvas instance. The color to be \"white.\" Any other color will be \"black.\" Returns​ A string.","s":"canvas.tobwstring","u":"/docs/Runtime Environment/Canvas","h":"#canvastobwstring","p":436},{"i":461,"t":"The CaT module is available via require \"pluto:cat\" and provides encoding and decoding for the Colons and Tabs format.","s":"CaT","u":"/docs/Runtime Environment/CaT","h":"","p":460},{"i":463,"t":"Returns a string of CaT. Parameters​ data — The table to encode in CaT. pluto local cat = require \"pluto:cat\" cat.encode { List = { __value = \"With Value\", Child = \"Also With Value\" } } |> io.write --> List: With Value --> Child: Also With Value Copy","s":"cat.encode","u":"/docs/Runtime Environment/CaT","h":"#catencode","p":460},{"i":465,"t":"Returns a table representing the CaT data. Parameters​ data — The CaT data to decode. presentation — How to represent the data as a table. Can be \"flat\", \"flatwithorder\", or \"full\" (default). pluto local cat = require \"pluto:cat\" local data = cat.decode [[ List: With Value Child: Also With Value ]] print(dumpvar(data)) --> { --> [1] = { --> [\"value\"] = string(10) \"With Value\", --> [\"name\"] = string(4) \"List\", --> [\"children\"] = { --> [1] = { --> [\"name\"] = string(5) \"Child\", --> [\"value\"] = string(15) \"Also With Value\", --> }, --> }, --> }, --> } Copy With the default \"full\" representation, the retuned table has an __index metamethod for ease of use: pluto print(data.List.value) --> With Value print(data.List.Child.value) --> Also With Value Copy Alternatively, the other representations are available: pluto local cat = require \"pluto:cat\" print(dumpvar(cat.decode([[ home john hello.txt: Hello, world! ]], \"flat\"))) --> { --> [\"home\"] = { --> [\"john\"] = { --> [\"hello.txt\"] = string(13) \"Hello, world!\", --> }, --> }, --> } Copy pluto local cat = require \"pluto:cat\" print(dumpvar(cat.decode([[ Primary Color: Purple Secondary Color: White ]], \"flatwithorder\"))) --> { --> [\"__order\"] = { --> [1] = string(13) \"Primary Color\", --> [2] = string(15) \"Secondary Color\", --> }, --> [\"Primary Color\"] = string(6) \"Purple\", --> [\"Secondary Color\"] = string(5) \"White\", --> } Copy","s":"cat.decode","u":"/docs/Runtime Environment/CaT","h":"#catdecode","p":460},{"i":467,"t":"This page documents the changes & additions to the coroutine library in Pluto, which is built on top of Lua 5.4's.","s":"Coroutine","u":"/docs/Runtime Environment/Coroutine","h":"","p":466},{"i":469,"t":"An alternative to coroutine.resume that rethrows any errors thrown by the coroutine.","s":"coroutine.xresume","u":"/docs/Runtime Environment/Coroutine","h":"#coroutinexresume","p":466},{"i":471,"t":"Yields the current coroutine for the given number of milliseconds. Parameters​ The number of milliseconds to yield for.","s":"coroutine.sleep","u":"/docs/Runtime Environment/Coroutine","h":"#coroutinesleep","p":466},{"i":473,"t":"The exception class makes errors easier to parse with where and what members, as opposed to having a string with both. For ease of use, constructing an exception automatically throws it. pluto try new exception(\"Not implemented\") catch e then print(e) -- same as error(\"Not implemented\") print(e.what) print(e.where) end Copy Output: script.pluto:2: Not implemented Not implemented script.pluto:2 Copy","s":"Exception","u":"/docs/Runtime Environment/Exception","h":"","p":472},{"i":475,"t":"Must be included via require.","s":"Crypto","u":"/docs/Runtime Environment/Crypto","h":"","p":474},{"i":478,"t":"Hash a string using Lua's version of the DJB2 non-cryptographic hashing algorithm. Parameters​ The string to hash. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.lua(str) == 2871868277) Copy","s":"crypto.lua","u":"/docs/Runtime Environment/Crypto","h":"#cryptolua","p":474},{"i":480,"t":"Hash a string using the MD5 semi-cryptographic hashing algorithm. Parameters​ The string to hash. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.md5(str) == \"5eb63bbbe01eeed093cb22bb8f5acdc3\") Copy","s":"crypto.md5","u":"/docs/Runtime Environment/Crypto","h":"#cryptomd5","p":474},{"i":482,"t":"Hash a string using the DJB2 non-cryptographic hashing algorithm. Parameters​ The string to hash. Returns​ An integer between 0 and 0xffffffff, inclusive. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.djb2(str) == 894552257) Copy","s":"crypto.djb2","u":"/docs/Runtime Environment/Crypto","h":"#cryptodjb2","p":474},{"i":484,"t":"Hash a string using the FNV1 non-cryptographic hashing algorithm. Parameters​ The string to hash. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.fnv1(str) == 9065573210506989167) Copy","s":"crypto.fnv1","u":"/docs/Runtime Environment/Crypto","h":"#cryptofnv1","p":474},{"i":486,"t":"Hash a string using the FNV1A non-cryptographic hashing algorithm. Parameters​ The string to hash. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.fnv1a(str) == 8618312879776256743) Copy","s":"crypto.fnv1a","u":"/docs/Runtime Environment/Crypto","h":"#cryptofnv1a","p":474},{"i":488,"t":"Hash a string using the JOAAT non-cryptographic hashing algorithm. Parameters​ The string to hash. Returns​ An integer between 0 and 0xffffffff, inclusive. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.joaat(str) == 1045060183) Copy","s":"crypto.joaat","u":"/docs/Runtime Environment/Crypto","h":"#cryptojoaat","p":474},{"i":490,"t":"Hash a string using the SDBM non-cryptographic hashing algorithm. Parameters​ The string to hash. Returns​ An integer between 0 and 0xffffffff, inclusive. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.sdbm(str) == 430867652) Copy","s":"crypto.sdbm","u":"/docs/Runtime Environment/Crypto","h":"#cryptosdbm","p":474},{"i":492,"t":"Hash a string using the CRC32 non-cryptographic hashing algorithm. Parameters​ The string to hash. The initial value for the hash. By default, this is zero. Returns​ An integer between 0 and 0xffffffff, inclusive. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.crc32(str) == 222957957) Copy","s":"crypto.crc32","u":"/docs/Runtime Environment/Crypto","h":"#cryptocrc32","p":474},{"i":494,"t":"Hash a string using the Adler-32 non-cryptographic hashing algorithm. Parameters​ The string to hash. The initial value for the hash. By default, this is zero. pluto local crypto = require(\"crypto\") local str = \"hello\" assert(crypto.adler32(str) == 103547413) Copy","s":"crypto.adler32","u":"/docs/Runtime Environment/Crypto","h":"#cryptoadler32","p":474},{"i":496,"t":"Hash a string using the Lookup3 non-cryptographic hashing algorithm. Parameters​ The string to hash. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.lookup3(str) == 1252609637) Copy","s":"crypto.lookup3","u":"/docs/Runtime Environment/Crypto","h":"#cryptolookup3","p":474},{"i":498,"t":"Hash a string using the Times33 non-cryptographic hashing algorithm. Parameters​ The string to hash. Returns​ An integer between 0 and 0xffffffff, inclusive. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.times33(str) == 3889643616) Copy","s":"crypto.times33","u":"/docs/Runtime Environment/Crypto","h":"#cryptotimes33","p":474},{"i":500,"t":"Hash a string using the Murmur1 non-cryptographic hashing algorithm. Parameters​ The string to hash. Returns​ An integer between 0 and 0xffffffff, inclusive. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.murmur1(str) == 3154674178) Copy","s":"crypto.murmur1","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur1","p":474},{"i":502,"t":"Hash a string using the Murmur2 non-cryptographic hashing algorithm. Parameters​ The string to hash. Returns​ An integer between 0 and 0xffffffff, inclusive. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.murmur2(str) == 1151865881) Copy","s":"crypto.murmur2","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur2","p":474},{"i":504,"t":"Hash a string using the Murmur2A non-cryptographic hashing algorithm. Parameters​ The string to hash. Returns​ An integer between 0 and 0xffffffff, inclusive. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.murmur2a(str) == 2650573207) Copy","s":"crypto.murmur2a","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur2a","p":474},{"i":506,"t":"Hash a string using the Murmur64A non-cryptographic hashing algorithm. Parameters​ The string to hash. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.murmur64a(str) == -3190198453633110066) Copy","s":"crypto.murmur64a","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur64a","p":474},{"i":508,"t":"Hash a string using the Murmur64A non-cryptographic hashing algorithm. Parameters​ The string to hash. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.murmur64b(str) == 7088720765356542432) Copy","s":"crypto.murmur64b","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur64b","p":474},{"i":510,"t":"Hash a string using the Murmur2Neutral non-cryptographic hashing algorithm. Parameters​ The string to hash. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.murmur2neutral(str) == 1151865881) Copy","s":"crypto.murmur2neutral","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur2neutral","p":474},{"i":513,"t":"Hash a string using the SHA-1 cryptographic hashing algorithm. Parameters​ The string to hash. When set to true, returns raw binary data. false outputs lowercase hex digits. By default, this is false. pluto local crypto = require(\"crypto\") assert(crypto.sha1(\"Pluto\") == \"bce8c9aca4120776fad6b517874aa09c46405454\") assert(crypto.sha1(\"Pluto\", true) == \"\\xbc\\xe8\\xc9\\xac\\xa4\\x12\\x07\\x76\\xfa\\xd6\\xb5\\x17\\x87\\x4a\\xa0\\x9c\\x46\\x40\\x54\\x54\") Copy","s":"crypto.sha1","u":"/docs/Runtime Environment/Crypto","h":"#cryptosha1","p":474},{"i":515,"t":"Hash a string using the SHA-256 cryptographic hashing algorithm. Parameters​ The string to hash. When set to true, returns raw binary data. false outputs lowercase hex digits. By default, this is false. pluto local crypto = require(\"crypto\") assert(crypto.sha256(\"Pluto\") == \"8dad5f6a7dd2dcd8c35ec2fd7babb499bcad60d27d73fe73eca2ce025dfd3b47\") assert(crypto.sha256(\"Pluto\", true) == \"\\x8d\\xad\\x5f\\x6a\\x7d\\xd2\\xdc\\xd8\\xc3\\x5e\\xc2\\xfd\\x7b\\xab\\xb4\\x99\\xbc\\xad\\x60\\xd2\\x7d\\x73\\xfe\\x73\\xec\\xa2\\xce\\x02\\x5d\\xfd\\x3b\\x47\") Copy","s":"crypto.sha256","u":"/docs/Runtime Environment/Crypto","h":"#cryptosha256","p":474},{"i":517,"t":"Hash a string using the SHA-384 cryptographic hashing algorithm. Parameters​ The string to hash. When set to true, returns raw binary data. false outputs lowercase hex digits. By default, this is false. pluto local crypto = require(\"crypto\") assert(crypto.sha384(\"Pluto\", false) == \"db890233a919b6745d632633c419e14540ff79f1a89bc4ac194b00e7f913f0f06d5d4d7d6cc2b4aaf9485d223afb8cf0\") Copy","s":"crypto.sha384","u":"/docs/Runtime Environment/Crypto","h":"#cryptosha384","p":474},{"i":519,"t":"Hash a string using the SHA-512 cryptographic hashing algorithm. Parameters​ The string to hash. When set to true, returns raw binary data. false outputs lowercase hex digits. By default, this is false. pluto local crypto = require(\"crypto\") assert(crypto.sha512(\"Pluto\", false) == \"ee8410a8bf9511b94fd6669b5c3e0c4b86e8e4bf7baa8dbd2773d4d6381dd1aecebbe391bef4c6158620ab3f6b794907652d4432c2301d7e1a6caf520565cdf2\") Copy","s":"crypto.sha512","u":"/docs/Runtime Environment/Crypto","h":"#cryptosha512","p":474},{"i":521,"t":"Hash a string using the RIPEMD-160 cryptographic hashing algorithm. Parameters​ The string to hash. When set to true, returns raw binary data. false outputs lowercase hex digits. By default, this is false. pluto assert(require\"crypto\".ripemd160(\"Pluto\") == \"c2072a85f4a691803b8942709036072086fd9550\") Copy","s":"crypto.ripemd160","u":"/docs/Runtime Environment/Crypto","h":"#cryptoripemd160","p":474},{"i":524,"t":"This is a cryptographically secure PRNG, assuming the platform's implementation of the underlying primitive is secure. Returns​ A random lua integer, in the range from math.mininteger to math.maxinteger. pluto local crypto = require(\"crypto\") print(crypto.random()) Copy","s":"crypto.random","u":"/docs/Runtime Environment/Crypto","h":"#cryptorandom","p":474},{"i":526,"t":"These unauthenticated AES modes take both a key and an IV. The IV must be unique and unpredictable for each encryption session to ensure security.","s":"AES-CBC, AES-CFB","u":"/docs/Runtime Environment/Crypto","h":"#aes-cbc-aes-cfb","p":474},{"i":528,"t":"Parameters​ data — The data to be encrypted. mode — \"aes-cbc-pkcs7\" or \"aes-cfb-pkcs7\" for PKCS#7 padding, or \"aes-cbc\" or \"aes-cfb\" if you know what you're doing. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively. iv — Must have a length of 16.","s":"crypto.encrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptoencrypt","p":474},{"i":530,"t":"Parameters​ data — The ciphertext to decrypt. mode — \"aes-cbc-pkcs7\" or \"aes-cfb-pkcs7\" for PKCS#7 padding, or \"aes-cbc\" or \"aes-cfb\" if you know what you're doing. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively. iv — Must have a length of 16. Returns the decrypted data on success. Throws an error if the padding was incorrect. pluto local crypto = require \"pluto:crypto\" local key = \"A Top Secret Key\" -- Encrypt local iv = range(16):map(|| -> string.char(math.random(0, 255))):concat(\"\") local plain = \"Hello, world!\" local enc = plain |> crypto.encrypt|\"aes-cbc-pkcs7\", key, iv| print(dumpvar(enc)) -- Decrypt print(crypto.decrypt(enc, \"aes-cbc-pkcs7\", key, iv)) --> Hello, world! Copy","s":"crypto.decrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecrypt","p":474},{"i":532,"t":"This unauthenticated AES mode takes only a key, and is considered to be the weakest. Identical plaintext blocks result in identical ciphertext blocks.","s":"AES-ECB","u":"/docs/Runtime Environment/Crypto","h":"#aes-ecb","p":474},{"i":534,"t":"Parameters​ data — The data to be encrypted. mode — \"aes-ecb-pkcs7\" for PKCS#7 padding, or \"aes-ecb\" if you know what you're doing. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively.","s":"crypto.encrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptoencrypt-1","p":474},{"i":536,"t":"Parameters​ mode — \"aes-ecb-pkcs7\" for PKCS#7 padding, or \"aes-ecb\" if you know what you're doing. data — The ciphertext to decrypt. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively. Returns the decrypted data on success. Throws an error if the padding was incorrect. pluto local crypto = require \"pluto:crypto\" local key = \"A Top Secret Key\" -- Encrypt local plain = \"Hello, world!\" local enc = plain |> crypto.encrypt|\"aes-ecb-pkcs7\", key| print(dumpvar(enc)) --> string(16) \"`p{����k\\21*.>jG\" -- Decrypt print(crypto.decrypt(enc, \"aes-ecb-pkcs7\", key)) --> Hello, world! Copy","s":"crypto.decrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecrypt-1","p":474},{"i":538,"t":"This authenticated AES mode allows for additional data that will be validated although not encrypted, such as a Message Authentication Code (MAC).","s":"AES-GCM","u":"/docs/Runtime Environment/Crypto","h":"#aes-gcm","p":474},{"i":540,"t":"Parameters​ data — The data to be encrypted. mode — Must be \"aes-gcm\". AES-GCM can deal with unpadded data, hence does not need PKCS#7 padding. aadata — Authenticated data. Will not be encrypted. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively. iv — Must have a length of 16. Returns two strings: the ciphertext and the authentication tag.","s":"crypto.encrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptoencrypt-2","p":474},{"i":542,"t":"Parameters​ data — The ciphertext to decrypt. mode — Must be \"aes-gcm\". aadata — Authenticated data. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively. iv — Must have a length of 16. tag — The authentication tag produced by the \"encrypt\" procedure. Returns the decrypted data on success. Throws an error if authentication or unpadding failed. pluto local crypto = require \"pluto:crypto\" local key = \"A Top Secret Key\" local aadata = \"This is Pluto!\" -- Encrypt local iv = range(16):map(|| -> string.char(math.random(0, 255))):concat(\"\") local plain = \"Hello, world!\" local enc, tag = plain |> crypto.encrypt|\"aes-gcm\", aadata, key, iv| print(dumpvar(enc)) print(dumpvar(tag)) -- Decrypt print(crypto.decrypt(enc, \"aes-gcm\", aadata, key, iv, tag)) --> Hello, world! Copy","s":"crypto.decrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecrypt-2","p":474},{"i":545,"t":"Parameters​ mode — Must be \"rsa\". bits — A positive integer for a strict bit-length requirement, or a negative integer for a lax requirement. Common values are 1024, 2048, and 4096. Returns two tables: The public key (consisting of n and e), and the private key (consisting of p and q). The Bigint class is used for all values. pluto local pub, priv = crypto.generatekeypair(\"rsa\", 512) print(dumpvar(pub)) --> { --> [\"n\"] = 11355630182234424425429331560518598643298965915936825610957270519615363349759012613228119611304846673085167794661819394470107090216347491908311079792054357, --> [\"e\"] = 65537, --> } print(dumpvar(priv)) --> { --> [\"p\"] = 115443384115231951475820445136871322101870729500298182134363293112660251666017, --> [\"q\"] = 98365361248415863235179644468056200977592391948608651522703704315152579004021, --> } Copy","s":"crypto.generatekeypair","u":"/docs/Runtime Environment/Crypto","h":"#cryptogeneratekeypair","p":474},{"i":547,"t":"Exports a private key. Parameters​ The key to export. The exchange format to use. Only \"pem\" is supported right now. pluto local { bigint, crypto } = require \"pluto:*\" local priv = { p = new bigint(\"115443384115231951475820445136871322101870729500298182134363293112660251666017\"), q = new bigint(\"98365361248415863235179644468056200977592391948608651522703704315152579004021\"), } print(crypto.exportkey(priv, \"pem\")) Copy -----BEGIN RSA PRIVATE KEY----- MIIBOwIBAAJBANjRKgOuLxSxbL/fFg/3rJeRGGKz0EjxjjuV6QmgjZGq1LpI2KH+ TrxVV4L94U0TCFo19vYtV6T4bOH/MlA6kFUCAwEAAQJANcTrfzWpgd99WXkM6uFQ iVcHneS7fPeAvziubf+F1E98zwFgLbIOiPSJcVkXc79A2PQZdbGq7dFAxVD0EpIs oQIhAP86o9Ap9KOH4rgZn8ElHyWKO/Cj8m7oHjSmHG/CBGZhAiEA2XjSTZJ37mg3 gJOXlMjG4SK15/jRCB1CMx8f4VhBhnUCIQCWK0p3EDiAf1NGPs1gNxc8XzklPVFH MAuVrqbMmrs8AQIhAJ1aqvCuFlFO3zoNkRR64kxsjSq4AqfYY9oRn0OyVFcxAiBj ueZ/sI52jgP8+xK2x7coiX5/tDmXCGlp5utUAjk2+Q== -----END RSA PRIVATE KEY----- Copy","s":"crypto.exportkey","u":"/docs/Runtime Environment/Crypto","h":"#cryptoexportkey","p":474},{"i":549,"t":"Imports a private key. Parameters​ The encoded key. The exchange format to use. Only \"pem\" is supported right now. pluto local { bigint, crypto } = require \"pluto:*\" print(dumpvar(crypto.importkey([[-----BEGIN RSA PRIVATE KEY----- MIIBOwIBAAJBANjRKgOuLxSxbL/fFg/3rJeRGGKz0EjxjjuV6QmgjZGq1LpI2KH+ TrxVV4L94U0TCFo19vYtV6T4bOH/MlA6kFUCAwEAAQJANcTrfzWpgd99WXkM6uFQ iVcHneS7fPeAvziubf+F1E98zwFgLbIOiPSJcVkXc79A2PQZdbGq7dFAxVD0EpIs oQIhAP86o9Ap9KOH4rgZn8ElHyWKO/Cj8m7oHjSmHG/CBGZhAiEA2XjSTZJ37mg3 gJOXlMjG4SK15/jRCB1CMx8f4VhBhnUCIQCWK0p3EDiAf1NGPs1gNxc8XzklPVFH MAuVrqbMmrs8AQIhAJ1aqvCuFlFO3zoNkRR64kxsjSq4AqfYY9oRn0OyVFcxAiBj ueZ/sI52jgP8+xK2x7coiX5/tDmXCGlp5utUAjk2+Q== -----END RSA PRIVATE KEY-----]], \"pem\"))) Copy { [\"p\"] = 115443384115231951475820445136871322101870729500298182134363293112660251666017, [\"q\"] = 98365361248415863235179644468056200977592391948608651522703704315152579004021, } Copy","s":"crypto.importkey","u":"/docs/Runtime Environment/Crypto","h":"#cryptoimportkey","p":474},{"i":551,"t":"Parameters​ data — The data to be encrypted. mode — \"rsa-pkcs1\" for PKCS#1 padding, or \"rsa\" if you know what you're doing. key — The public or private key to use. Commonly, a public key is used to encrypt data.","s":"crypto.encrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptoencrypt-3","p":474},{"i":553,"t":"Parameters​ data — The ciphertext to decrypt. mode — \"rsa-pkcs1\" for PKCS#1 padding, or \"rsa\" if you know what you're doing. key — The public or private key to use. If the data was encrypted with the public key, the private key is needed to decrypt it. pluto local { base64, bigint, crypto } = require \"pluto:*\" local priv = { p = new bigint(\"115443384115231951475820445136871322101870729500298182134363293112660251666017\"), q = new bigint(\"98365361248415863235179644468056200977592391948608651522703704315152579004021\"), } -- Derive public key local pub = { n = priv.p * priv.q, -- 11355630182234424425429331560518598643298965915936825610957270519615363349759012613228119611304846673085167794661819394470107090216347491908311079792054357 e = new bigint(0x10001) -- 65537 } -- Encrypt local enc = crypto.encrypt(\"A secret message to the owner of the private key.\", \"rsa-pkcs1\", pub) print(base64.encode(enc)) -- Decrypt print(enc |> crypto.decrypt|\"rsa-pkcs1\", priv|) --> A secret message to the owner of the private key. Copy","s":"crypto.decrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecrypt-3","p":474},{"i":555,"t":"Parameters​ data — The data to sign. mode — \"rsa-sha256\" or \"rsa-sha1\". key — The private key to use.","s":"crypto.sign","u":"/docs/Runtime Environment/Crypto","h":"#cryptosign","p":474},{"i":557,"t":"Parameters​ data — The data that was signed. mode — \"rsa-sha256\" or \"rsa-sha1\". key — The public key corresponding to the signer's private key. signature — The signature produced by the \"sign\" procedure. Returns a boolean that indicates if the signature validated successfully. pluto local { base64, bigint, crypto } = require \"pluto:*\" local priv = { p = new bigint(\"115443384115231951475820445136871322101870729500298182134363293112660251666017\"), q = new bigint(\"98365361248415863235179644468056200977592391948608651522703704315152579004021\"), } -- Derive public key local pub = { n = priv.p * priv.q, -- 11355630182234424425429331560518598643298965915936825610957270519615363349759012613228119611304846673085167794661819394470107090216347491908311079792054357 e = new bigint(0x10001) -- 65537 } -- Sign local msg = \"The canary has left the nest.\" local sig = msg |> crypto.sign|\"rsa-sha256\", priv| print(base64.encode(sig)) --> un1g04+cwG8WxYDpSlj4PO/hsTqSITgYKycRuR+m3AE6ypLyUCrVHC/0j4M3DeW81ADZVda6TVkC/Ht8EdYeFw== -- Verify print(crypto.verify(msg, \"rsa-sha256\", pub, sig)) --> true Copy","s":"crypto.verify","u":"/docs/Runtime Environment/Crypto","h":"#cryptoverify","p":474},{"i":560,"t":"Decompresses a DEFLATE-compressed string (one might call this an \"INFLATE\" function). Compatible with gzip and zlib headers and footers. Parameters​ The string to decompress. Returns​ The decompressed string. A table with extra information: compressed_size, checksum_present, checksum_mismatch pluto local decompressed, info = require\"crypto\".decompress(\"\\xF3\\x48\\xCD\\xC9\\xC9\\xD7\\x51\\x08\\xC8\\x29\\x2D\\xC9\\x57\\x04\") print(decompressed) --> Hello, Pluto! print(info.compressed_size) --> 14 print(info.checksum_present) --> false print(info.checksum_mismatch) --> false Copy","s":"crypto.decompress","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecompress","p":474},{"i":562,"t":"Must be included via require. caution This is intended for advanced users.","s":"FFI","u":"/docs/Runtime Environment/FFI","h":"","p":561},{"i":564,"t":"Loads a DLL/SO (dynamic link library/shared object). Parameters​ The name of the library which is to be located by the operating system. A relative or absolute path also works. Returns​ An FFI library instance. Example​ The following C++ code: lib.cpp cpp #ifdef _WIN32 #define EXPORT __declspec(dllexport) #else #define EXPORT #endif extern \"C\" EXPORT int MY_MAGIC_INT = 69; extern \"C\" EXPORT int add(int a, int b) { return a + b; } Copy Compiled like this: Windows: clang -std=c++17 --shared -o lib.dll lib.cpp Linux/MacOS: clang -std=c++17 --shared -o liblib.so lib.cpp Can be used like this: pluto local ffi = require \"pluto:ffi\" local lib = ffi.open(os.platform == \"windows\" ? \"lib\" : \"./liblib.so\") assert(lib:value(\"i32\", \"MY_MAGIC_INT\") == 69) assert(lib:wrap(\"i32\", \"add\", \"i32\", \"i32\")(38, 4) == 42) Copy","s":"ffi.open","u":"/docs/Runtime Environment/FFI","h":"#ffiopen","p":561},{"i":566,"t":"Parses a subset of C for a struct. Paramters​ The C source code. Returns​ An FFI Struct Type instance. Example​ pluto local ffi = require \"pluto:ffi\" local Color = ffi.struct[[ struct Color { uint8_t r; uint8_t g; uint8_t b; }; ]] local c = new Color() c.r = 255 print(c.r) --> 255 Copy","s":"ffi.struct","u":"/docs/Runtime Environment/FFI","h":"#ffistruct","p":561},{"i":568,"t":"Instantiate an FFI Struct Type by name or instance. Parameters​ An FFI Struct Type instance or the name of one stored on the FFI library itself. Returns​ A new instance of the struct.","s":"ffi.new","u":"/docs/Runtime Environment/FFI","h":"#ffinew","p":561},{"i":570,"t":"Parses a subset of C for structs to be stored on the FFI library itself. Parameters​ The C source code. Example​ pluto local ffi = require \"pluto:ffi\" ffi.cdef[[ struct Color { uint8_t r; uint8_t g; uint8_t b; }; ]] local c = ffi.new(\"Color\") c.r = 255 print(c.r) --> 255 Copy","s":"ffi.cdef","u":"/docs/Runtime Environment/FFI","h":"#fficdef","p":561},{"i":572,"t":"Measures the size of an FFI Struct Type. Parameters​ An FFI Struct Type instance, the name of a struct stored on the FFI library itself, or an instance of the struct. Returns​ The size in bytes.","s":"ffi.sizeof","u":"/docs/Runtime Environment/FFI","h":"#ffisizeof","p":561},{"i":574,"t":"Measures the offset of a field on an FFI Struct Type. Parameters​ An FFI Struct Type instance, the name of a struct stored on the FFI library itself, or an instance of the struct. The name of the field. Returns​ The offset in bytes.","s":"ffi.offsetof","u":"/docs/Runtime Environment/FFI","h":"#ffioffsetof","p":561},{"i":576,"t":"This constant can be used to give 0 to a \"ptr\"-type argument.","s":"ffi.nullptr","u":"/docs/Runtime Environment/FFI","h":"#ffinullptr","p":561},{"i":578,"t":"Obtained from ffi.open.","s":"FFI Library Class","u":"/docs/Runtime Environment/FFI","h":"#ffi-library-class","p":561},{"i":580,"t":"Creates a function wrapper. Parameters​ The return type. Can be \"void\", \"i8\", \"i16\", \"i32\", \"i64\", \"u8\", \"u16\", \"u32\", \"u64\", \"f32\", \"f64\", \"ptr\" or \"str\". The name of the function. The argument type(s). Can be \"void\", \"i8\", \"i16\", \"i32\", \"i64\", \"u8\", \"u16\", \"u32\", \"u64\", \"f32\", \"f64\", \"ptr\" or \"str\". Returns​ A new function wrapper instance, which can be called.","s":"wrap","u":"/docs/Runtime Environment/FFI","h":"#wrap","p":561},{"i":582,"t":"Gets an exported value and interprets it using the given type. Parameters​ The type. Can be \"void\", \"i8\", \"i16\", \"i32\", \"i64\", \"u8\", \"u16\", \"u32\", \"u64\", \"f32\", \"f64\", \"ptr\" or \"str\". The name of the export. Returns​ The interpreted value.","s":"value","u":"/docs/Runtime Environment/FFI","h":"#value","p":561},{"i":584,"t":"Parses a subset of C for values and functions and puts them on the library instance. Parameters​ The C source code. Example​ pluto local ffi = require \"pluto:ffi\" local lib = ffi.open(os.platform == \"windows\" ? \"lib\" : \"./liblib.so\") lib:cdef[[ int MY_MAGIC_INT; int add(int a, int b); ]] assert(lib.MY_MAGIC_INT == 69) assert(lib.add(38, 4) == 42) Copy This is equivalent to the following: pluto local ffi = require \"pluto:ffi\" local lib = ffi.open(os.platform == \"windows\" ? \"lib\" : \"./liblib.so\") lib.MY_MAGIC_INT = lib:value(\"i32\", \"MY_MAGIC_INT\") lib.add = lib:wrap(\"i32\", \"add\", \"i32\", \"i32\") assert(lib.MY_MAGIC_INT == 69) assert(lib.add(38, 4) == 42) Copy","s":"cdef","u":"/docs/Runtime Environment/FFI","h":"#cdef","p":561},{"i":586,"t":"This page documents the changes & additions to Pluto's runtime environment, which is built on top of Lua 5.4's.","s":"Global & Base","u":"/docs/Runtime Environment/Global & Base","h":"","p":585},{"i":588,"t":"_PVERSION is the global to check your current version of Pluto.","s":"_PVERSION","u":"/docs/Runtime Environment/Global & Base","h":"#_pversion","p":585},{"i":590,"t":"_PSOUP is a global boolean you can access to check linkage with Soup. Always true as of 0.8.0.","s":"_PSOUP","u":"/docs/Runtime Environment/Global & Base","h":"#_psoup","p":585},{"i":592,"t":"os.platform is a global string containing the host platform. Can be \"windows\", \"wasm\", \"linux\", \"macos\", \"android\", or \"unknown\". pluto if _PVERSION == nil then print(\"Plain Lua detected (\".._VERSION..\")\") else io.write(\"Pluto detected (\".._PVERSION..\"), based on \".._VERSION) if os.platform then io.write(\", running on \"..os.platform) end io.write(\"\\n\") end Copy","s":"os.platform","u":"/docs/Runtime Environment/Global & Base","h":"#osplatform","p":585},{"i":594,"t":"package.path is modified to also search for .pluto files.","s":"package.path","u":"/docs/Runtime Environment/Global & Base","h":"#packagepath","p":585},{"i":596,"t":"Tables and coroutines/threads have metatables by default, akin to how each string has a metatable by default. pluto local t = {} local c = coroutine.create(|| -> do end) -- Can do this: t:contains(1) t:concat(\"\\n\") c:resume() -- As opposed to this: table.contains(t, 1) table.concat(t, \"\\n\") coroutine.resume(c) Copy This behavior is implemented by setting the __index metamethod to the respective library (_G.table or _G.coroutine). If you override the metatable, you may want to replicate that.","s":"Default Metatables","u":"/docs/Runtime Environment/Global & Base","h":"#default-metatables","p":585},{"i":598,"t":"A debug function designed to dump values into human-readable formats. Parameters​ The value to dump. Returns​ A string representation of the value. pluto local t = { [\"hello\"] = 1234, [\"goodbye\"] = _G.table, [\"name\"] = \"John\", [\"lastname\"] = \"Doe\", [\"details\"] = { \"No details available.\" } } print(dumpvar(t)) Copy { [\"lastname\"] = string(3) \"Doe\", [\"name\"] = string(4) \"John\", [\"goodbye\"] = { [\"unpack\"] = function: 00007FF7738B3C20, [\"insert\"] = function: 00007FF7738B30D0, [\"freeze\"] = function: 00007FF7738B43F0, [\"foreach\"] = function: 00007FF7738B3220, [\"filter\"] = function: 00007FF7738B4700, [\"isfrozen\"] = function: 00007FF7738B44B0, [\"getn\"] = function: 00007FF7738B43B0, [\"pack\"] = function: 00007FF7738B3B10, [\"contains\"] = function: 00007FF7738B4540, [\"move\"] = function: 00007FF7738B34D0, [\"concat\"] = function: 00007FF7738B37F0, [\"sort\"] = function: 00007FF7738B42B0, [\"remove\"] = function: 00007FF7738B33C0, [\"map\"] = function: 00007FF7738B49A0, }, [\"hello\"] = 1234, [\"details\"] = { [1] = string(21) \"No details available.\", }, } Copy","s":"dumpvar","u":"/docs/Runtime Environment/Global & Base","h":"#dumpvar","p":585},{"i":600,"t":"Similar to dumpvar, but returns valid Lua/Pluto code. May error if the value can not be represented accordingly. Parameters​ The value to dump. pluto -- Slightly altered data from last example as C functions can not be exported. local t = { [\"hello\"] = 1234, [\"name\"] = \"John\", [\"lastname\"] = \"Doe\", [\"details\"] = { \"No details available.\" } } print(exportvar(t)) Copy { [\"hello\"] = 1234, [\"name\"] = \"John\", [\"details\"] = { [1] = \"No details available.\", }, [\"lastname\"] = \"Doe\", } Copy","s":"exportvar","u":"/docs/Runtime Environment/Global & Base","h":"#exportvar","p":585},{"i":602,"t":"Returns a table of numbers in the given range. pluto print(range(10):unpack()) --> 1 2 3 4 5 6 7 8 9 10 print(range(4, 8):unpack()) --> 4 5 6 7 8 Copy","s":"range","u":"/docs/Runtime Environment/Global & Base","h":"#range","p":585},{"i":604,"t":"Performs a three-way comparison on 2 version numbers, similar to the Spaceship Operator. pluto assert(compareversions(\"1.0.0\", \"0.9.0\") >= 0) assert(compareversions(\"1.0.0\", \"1.0.0-dev\") >= 0) Copy Note that pre-release versions (e.g. with -dev suffix) are considered to be less than their final counterparts.","s":"compareversions","u":"/docs/Runtime Environment/Global & Base","h":"#compareversions","p":585},{"i":606,"t":"Calls the given function and returns a string of warnings raised by it. pluto local w = wcall(|| -> warn(\"Bad!\")) print(w ~= \"\" ? (w:strip()) : \"No warnings\") -- Output: \"Bad!\" Copy","s":"wcall","u":"/docs/Runtime Environment/Global & Base","h":"#wcall","p":585},{"i":608,"t":"Must be included via require.","s":"HTTP","u":"/docs/Runtime Environment/HTTP","h":"","p":607},{"i":610,"t":"Performs an HTTP request. Parameters​ The URL to send a request to as a string. This parameter is optional in the sense that the options table (parameter 2) can be parameter 1 instead, but must have the \"url\" option then. The table of options. This parameter is optional if a URL was given. Options​ method: The HTTP request method to use. Defaults to GET. headers: A table of headers, e.g. { [\"Content-Type\"] = \"application/json\" }. body: An optional request payload. If provided, the Content-Length header is set appropriately, and the method is set to POST unless otherwise specified. prefer_ipv6: (Does nothing in WASM builds of Pluto.) When establishing a new connection, we attempt to lookup and connect via IPv4, retrying with IPv6 if needed. If this is set to true, we instead start with IPv6. This may be useful for \"LAN\" services that identify the LAN via IPv6 instead of IPv4. dont_reuse: (Does nothing in WASM builds of Pluto.) Force the implementation not to reuse an existing socket, which may involve waiting. Instead a new connection is opened. This may be useful when many requests are headed to the same remote and you consider the time taken by a fresh handshake to be less than the time taken to wait to reuse. dont_make_reusable: (Does nothing in WASM builds of Pluto.) If a new connection to the remote was opened to carry out the request, close it again after the request. This is useful to avoid burdening the remote for one-off requests. Returns​ On success: The response body as a string. The status code as an integer. A table of response headers. Empty in WASM builds of Pluto. The status text as a string. On failure: Nil. An approximate failure reason as an English string. Not available in WASM builds of Pluto. Multitasking​ If called inside of a coroutine, this function yields. Otherwise, it blocks. In WASM builds of Pluto, it must be called inside of a coroutine that yields to the environment as otherwise the request cannot be dispatched. info The first request to a remote may take a while — especially with HTTPS — due to the TCP and TLS handshakes. We use keep-alive to keep the connection open, so subsequent requests to the same remote will be significantly faster. pluto local http = require \"pluto:http\" local body, status_code, headers, status_text = http.request(\"https://httpbin.org/anything\") print(status_code..\" \"..status_text) if os.platform != \"wasm\" then print(dumpvar(headers)) end print(body) Copy","s":"http.request","u":"/docs/Runtime Environment/HTTP","h":"#httprequest","p":607},{"i":612,"t":"Queries if a keep-alive connection is available for a remote. This function is not available in WASM builds of Pluto. Parameters​ A partial URL identifying the remote. Partial because only the protocol, host, and port are used; additional components such as path are ignored. Multitasking​ If called inside of a coroutine, this function may yield. Otherwise, it may block. pluto local { http, scheduler } = require \"*\" local sched = new scheduler() sched:addloop(function() print(http.hasconnection(\"https://httpbin.org\")) end) sched:add(function() print((http.request(\"https://httpbin.org/anything\"))) end) sched:run() Copy","s":"http.hasconnection","u":"/docs/Runtime Environment/HTTP","h":"#httphasconnection","p":607},{"i":614,"t":"Closes all keep-alive connections like when closing the Lua state but in a non-blocking way. This function does nothing in WASM builds of Pluto. Multitasking​ This function must be called inside of a coroutine, as it will yield.","s":"http.closeconnections","u":"/docs/Runtime Environment/HTTP","h":"#httpcloseconnections","p":607},{"i":616,"t":"Must be included via require.","s":"JSON","u":"/docs/Runtime Environment/JSON","h":"","p":615},{"i":618,"t":"Returns a string of JSON. Parameters​ data — A boolean, number, string, or table to encode as JSON. pretty — Whether to return a human-readable string of JSON. Defaults to false. pluto local json = require(\"json\") local data data = \"Hello, World!\" print(json.encode(data, true)) --> \"Hello, World!\" data = { key = \"Hello, World!\", nested = { nested_key = 1337 } } print(json.encode(data, true)) --> { --> \"key\": \"Hello, World!\", --> \"nested\": { --> \"nested_key\": 1337 --> } --> } Copy Because Lua tables do not have order guarantees, you can add an __order field to fix the order: pluto local t = { __order = { \"a\", \"b\", \"c\" }, a = 1, b = 2, c = 3 } print(require\"json\".encode(t)) -- {\"a\":1,\"b\":2,\"c\":3} Copy The json.null value — assuming you did local json = require(\"json\") — can be used to encode JSON null values. pluto local json = require(\"json\") print(json.encode(json.null)) --> null Copy","s":"json.encode","u":"/docs/Runtime Environment/JSON","h":"#jsonencode","p":615},{"i":620,"t":"Returns multiple potential types. If you pass a serialized boolean, number, or string, then it will return the same type. If you pass a complex JSON object, it will return a table. Parameters​ data — The JSON data to decode. flags — Options to augment the return value. Multiple options can be combined with bitwise OR (|). Defaults to 0. json.withnull — decodes JSON null values as json.null instead of nil. json.withorder — adds an __order field to tables of decoded JSON objects. json.encode respects this, so this is perfect for modifying data while preserving order. pluto local json = require(\"json\") local data, encoded, decoded -- Basic Type data = \"Hello, World!\" encoded = json.encode(data, true) decoded = json.decode(encoded) assert(decoded == data) assert(type(decoded) == \"string\") -- Complex Type data = { key = \"Hello\", nested = { nested_key = 1337 } } encoded = json.encode(data, true) decoded = json.decode(encoded) assert(decoded.key == \"Hello\") assert(type(decoded) == \"table\") assert(decoded.nested.nested_key == 1337) -- Flags encoded = [[{ \"null\": null, \"string\": \"Hello\" }]] decoded = json.decode(encoded, json.withnull | json.withorder) assert(decoded.__order[1] == \"null\") assert(decoded.null == json.null) assert(json.encode(decoded, true) == encoded) Copy","s":"json.decode","u":"/docs/Runtime Environment/JSON","h":"#jsondecode","p":615},{"i":622,"t":"This page documents the changes & additions to the io library in Pluto, which is built on top of Lua 5.4's.","s":"IO","u":"/docs/Runtime Environment/IO","h":"","p":621},{"i":624,"t":"A variant of Lua's os.rename that raises an error on failure and instead has no return values.","s":"io.rename","u":"/docs/Runtime Environment/IO","h":"#iorename","p":621},{"i":626,"t":"A variant of Lua's os.remove that raises an error on failure and instead has no return values.","s":"io.remove","u":"/docs/Runtime Environment/IO","h":"#ioremove","p":621},{"i":628,"t":"Copy a file to another file, creating a new file if needed. Parameters​ A string path or file stream. A path towards the file to copy into. Returns​ A boolean indicating if the file was successfully copied. pluto if io.copy(\"./cfg/config.txt\", \"./backup_cfg/config.txt\") then print(\"Successfully created a backup config!\") else print(\"Failed to create a backup config.\") end Copy","s":"io.copy","u":"/docs/Runtime Environment/IO","h":"#iocopy","p":621},{"i":630,"t":"Extracts the given part from a path. Parameters​ A string path or file stream. The part to return, \"parent\" or \"name\". Returns​ The extracted part. pluto print(io.part(\"/path/to/foo.txt\", \"parent\")) -- \"/path/to\" print(io.part(\"/path/to/foo.txt\", \"name\")) -- \"foo.txt\" Copy","s":"io.part","u":"/docs/Runtime Environment/IO","h":"#iopart","p":621},{"i":632,"t":"Parameters​ A string path or file stream. Returns​ A boolean indicating if the path led toward a directory. pluto local path = \"./dir/main/\" local bool = io.isdir(path) if bool then print(\"Directory!\") else print(\"Not a directory!\") end Copy","s":"io.isdir","u":"/docs/Runtime Environment/IO","h":"#ioisdir","p":621},{"i":634,"t":"Parameters​ A string path or file stream. Returns​ A boolean indicating if the path led towards a file. pluto local path = \"./isfile/file\" local bool = io.isfile(path) if bool then print(\"File!\") else print(\"Not a file!\") end Copy","s":"io.isfile","u":"/docs/Runtime Environment/IO","h":"#ioisfile","p":621},{"i":636,"t":"Parameters​ A string path or file stream. Returns​ A boolean indicating if the path led towards an existing file or directory. pluto if io.exists(\"cfg/config.txt\") then print(\"Config exists!\") else print(\"Config does not exist!\") end Copy","s":"io.exists","u":"/docs/Runtime Environment/IO","h":"#ioexists","p":621},{"i":638,"t":"Create a directory. Parameters​ The path for the new directory. Returns​ A boolean indicating if the directory was successfully created. pluto if io.makedir(\"./cfg\") then print(\"Created cfg directory.\") else print(\"Failed to create cfg directory.\") end Copy","s":"io.makedir","u":"/docs/Runtime Environment/IO","h":"#iomakedir","p":621},{"i":640,"t":"List all the files within a directory. Parameters​ A string path to the directory. A boolean indicating whether or not to recurse sub-directories. Returns​ An index-based table containing file paths. pluto for _, filepath in io.listdir(\".\") do print(filepath) end Copy","s":"io.listdir","u":"/docs/Runtime Environment/IO","h":"#iolistdir","p":621},{"i":642,"t":"Creates a directory and all the non-existing parent directories in the given path. Parameters​ The string path for your new directory. pluto io.makedirs(\"A/B/C\") -- Creates \"C:\\Users\\Username\\Desktop\\Project\\A\\B\\C\" Copy","s":"io.makedirs","u":"/docs/Runtime Environment/IO","h":"#iomakedirs","p":621},{"i":644,"t":"Convert a relative path into an absolute one. Parameters​ A string path or file stream. An optional bool if the path should be canonicalized. A canonical path does not go through symlinks. Returns​ A string representing the new file path. pluto io.absolute(\"cfg/cfg.txt\") -- \"C:\\Users\\Username\\Desktop\\Project\\cfg\\cfg.txt\" Copy","s":"io.absolute","u":"/docs/Runtime Environment/IO","h":"#ioabsolute","p":621},{"i":646,"t":"Convert an absolute path into a relative one. Parameters​ A string path or file stream. Returns​ A string representing the new file path. pluto io.relative(io.absolute(\"cfg/cfg.txt\")) -- \"cfg\\cfg.txt\" Copy","s":"io.relative","u":"/docs/Runtime Environment/IO","h":"#iorelative","p":621},{"i":648,"t":"Get or set a file's contents. Parameters​ A string path or file stream. The desired content. If this parameter is absent, this function works as a getter. Returns​ If this function is acting as a getter, it will return the file's contents or nil if there was an error. pluto local text = io.contents(\"foo.txt\") or \"\" text ..= \"bar\" io.contents(\"foo.txt\", text) Copy This function is not only easier to use than the traditional io.open approach, it also performs significantly better.","s":"io.contents","u":"/docs/Runtime Environment/IO","h":"#iocontents","p":621},{"i":650,"t":"Fetch the size of a file in bytes. Parameters​ A string path or file stream. pluto if io.filesize(\"cfg/config.txt\") <= 1 then print(\"Config is too small or empty.\") end Copy","s":"io.filesize","u":"/docs/Runtime Environment/IO","h":"#iofilesize","p":621},{"i":652,"t":"Get or set a file's modification time. Parameters​ A string path or file stream. The desired timestamp. If this parameter is absent, this function works as a getter. Returns​ If this function is acting as a getter, it will return the file's last write time as seconds since the UNIX epoch. pluto local time = io.writetime(\"foo.txt\") time += 3600 io.writetime(\"foo.txt\", time) Copy This example adds an hour (= 60 minutes = 3600 seconds) to the last write time of \"foo.txt\" (or errors if that file does not exist).","s":"io.writetime","u":"/docs/Runtime Environment/IO","h":"#iowritetime","p":621},{"i":654,"t":"Get or set the current working directory. Parameters​ A path to the desired current working directory. If this parameter is absent, this function works as a getter. Returns​ If this function is acting as a getter, it will return the current working directory. pluto local cwd = io.currentdir() -- Get cwd io.currentdir(\"abc/abc\") -- Set a new cwd Copy","s":"io.currentdir, io.chdir, io.cwd","u":"/docs/Runtime Environment/IO","h":"#iocurrentdir-iochdir-iocwd","p":621},{"i":656,"t":"This page documents the changes & additions to the math library in Pluto, which is built on top of Lua 5.4's.","s":"Math","u":"/docs/Runtime Environment/Math","h":"","p":655},{"i":658,"t":"Checks if a number is NaN. Parameters​ The number to check. pluto local x = 0 / 0 print(x ~= x) -- Lua way: Prove the variable is NaN because it is not equal to itself. Works, but unintuitive. print(math.isnan(x)) Copy","s":"math.isnan","u":"/docs/Runtime Environment/Math","h":"#mathisnan","p":655},{"i":660,"t":"Rounds a number to the nearest integer. Parameters​ The number to round. pluto print(math.round(2.4)) --> 2 print(math.round(2.5)) --> 3 Copy","s":"math.round","u":"/docs/Runtime Environment/Math","h":"#mathround","p":655},{"i":662,"t":"An alias of math.atan.","s":"math.atan2","u":"/docs/Runtime Environment/Math","h":"#mathatan2","p":655},{"i":664,"t":"The Regex module is available via require \"pluto:regex\" and provides Soup's flavor of the popular string matching language.","s":"Regex","u":"/docs/Runtime Environment/Regex","h":"","p":663},{"i":666,"t":"Parses a pattern and creates an instance for it. Parameters​ The regex to be compiled. Returns​ A pattern instance.","s":"regex.new","u":"/docs/Runtime Environment/Regex","h":"#regexnew","p":663},{"i":668,"t":"Attempt to match a pattern instance. Parameters​ The pattern instance. Returns​ A table with an index/key for each matching group or nil if no matches. pluto local regex = require \"pluto:regex\" local pattern = new regex [[/^the (?:(.+) )?one$/]] print(dumpvar(pattern:match(\"the one\"))) --> { --> [0] = string(7) \"the one\", --> } print(dumpvar(pattern:match(\"the chosen one\"))) --> { --> [1] = string(6) \"chosen\", --> [0] = string(14) \"the chosen one\", --> } print(pattern:match(\"not the one\")) --> nil Copy The overall pattern match is in index 0, and in this case there is only the 1 capturing group, that being (.+). Capture group names will be used if available: pluto local regex = require \"pluto:regex\" local pattern = new regex [[/^the (?:(?'what'.+) )?one$/]] print(dumpvar(pattern:match(\"the chosen one\"))) --> { --> [0] = string(14) \"the chosen one\", --> [\"what\"] = string(6) \"chosen\", --> } Copy","s":"regex.match","u":"/docs/Runtime Environment/Regex","h":"#regexmatch","p":663},{"i":670,"t":"The scheduler class — available via require — can be used to easily set up coroutine-based cooperative multitasking.","s":"Scheduler","u":"/docs/Runtime Environment/Scheduler","h":"","p":669},{"i":672,"t":"The constructor takes no arguments.","s":"__construct","u":"/docs/Runtime Environment/Scheduler","h":"#__construct","p":669},{"i":674,"t":"The add method can be used to turn a function into a coroutine. The coroutine is resumed once and then added to the scheduler.","s":"add","u":"/docs/Runtime Environment/Scheduler","h":"#add","p":669},{"i":676,"t":"The addloop method is a wrapper for the add method that keeps invoking the given function until it returns false.","s":"addloop","u":"/docs/Runtime Environment/Scheduler","h":"#addloop","p":669},{"i":678,"t":"The run method activates the scheduler. The scheduler resumes all coroutines and then calls its yieldfunc until either all coroutines are finished, or coroutine throws an error — in which case it is rethrown. pluto local scheduler = new (require\"pluto:scheduler\") () local loops = 0 scheduler:addloop(function() ++loops print(loops) return loops != 5 end) scheduler:run() --> 1 --> 2 --> 3 --> 4 --> 5 scheduler:add(function() print(\"3...\") coroutine.sleep(1000) print(\"2...\") coroutine.sleep(1000) print(\"1...\") coroutine.sleep(1000) print(\"Boom!\") end) scheduler:run() --> 3... --> 2... --> 1... --> Boom! Copy","s":"run","u":"/docs/Runtime Environment/Scheduler","h":"#run","p":669},{"i":680,"t":"yieldfunc is a property on the scheduler that can be used to customize how the scheduler itself yields. By default, this is a function calling os.sleep(1). pluto local scheduler = new (require\"pluto:scheduler\") () -- Yield to OS every second instead of every millisecond. scheduler.yieldfunc = || -> os.sleep(1000) local loops = 0 scheduler:addloop(function() ++loops print(loops) return loops != 5 end) scheduler:run() --> 1 --> 2 --> 3 --> 4 --> 5 Copy","s":"yieldfunc","u":"/docs/Runtime Environment/Scheduler","h":"#yieldfunc","p":669},{"i":682,"t":"errorfunc is a property on the scheduler that can optionally be set to customize how the scheduler reports errors in its coroutines. By default, this is nil, in which case any coroutine errors are rethrown (via coroutine.xresume). pluto local { scheduler } = require \"*\" local sched = new scheduler() sched.errorfunc = |err| -> do print(debug.traceback(err)) end sched:add(function() error(\"this is urgent: fatal error\") end) Copy","s":"errorfunc","u":"/docs/Runtime Environment/Scheduler","h":"#errorfunc","p":669},{"i":684,"t":"This page documents the changes & additions to the os library in Pluto, which is built on top of Lua 5.4's.","s":"OS","u":"/docs/Runtime Environment/OS","h":"","p":683},{"i":686,"t":"Parameters​ The amount of milliseconds to sleep for. Example​ pluto os.sleep(1000) -- Pause this thread for 1000ms. Copy","s":"os.sleep","u":"/docs/Runtime Environment/OS","h":"#ossleep","p":683},{"i":688,"t":"All of these return their respective times since implementation-specific epoch.","s":"os.nanos, os.micros, os.millis, os.seconds","u":"/docs/Runtime Environment/OS","h":"#osnanos-osmicros-osmillis-osseconds","p":683},{"i":690,"t":"Returns seconds since UNIX epoch.","s":"os.unixseconds","u":"/docs/Runtime Environment/OS","h":"#osunixseconds","p":683},{"i":692,"t":"Must be included via require. This library is not available in WASM builds of Pluto.","s":"Socket","u":"/docs/Runtime Environment/Socket","h":"","p":691},{"i":694,"t":"Establishes a TCP connection. Parameters​ The host to connect to. Either an IPv4 or IPv6 address, or a domain name resolving to one. The port to contact the host on. Returns​ A socket instance on success. Nil on failure. Multitasking​ If called inside of a coroutine, this function yields. Otherwise, it blocks.","s":"socket.connect","u":"/docs/Runtime Environment/Socket","h":"#socketconnect","p":691},{"i":696,"t":"Creates a new listener for the given port. Parameters​ The port to listen on. Returns​ A listener instance on success. Nil on failure.","s":"socket.listen","u":"/docs/Runtime Environment/Socket","h":"#socketlisten","p":691},{"i":698,"t":"A convenience function that wraps socket.listen, automatically accepting new clients and spinning up a coroutine for them. Parameters​ A scheduler instance. The port to listen on. The callback function that will be called in a new coroutine for each client socket. pluto local { scheduler, socket } = require \"*\" local sched = new scheduler() socket.bind(sched, 80, |s| -> do local content = \"Hello, world!\" s:send(\"HTTP/1.1 200 OK\\r\\nConnection: Close\\r\\nContent-Length: \"..#content..\"\\r\\n\\r\\n\"..content) end) sched:run() Copy","s":"socket.bind","u":"/docs/Runtime Environment/Socket","h":"#socketbind","p":691},{"i":700,"t":"Socket instances are obtained by calling socket.connect (client), or from a listener (server).","s":"Socket Class","u":"/docs/Runtime Environment/Socket","h":"#socket-class","p":691},{"i":702,"t":"Sends data on a socket. Parameters​ The socket instance. The data to send.","s":"socket.send","u":"/docs/Runtime Environment/Socket","h":"#socketsend","p":691},{"i":704,"t":"Receive data from a socket. Parameters​ The socket instance. Returns​ If the socket is open: The oldest chunk of data received on the transport layer (TCP packet) or crypto layer (TLS record) as a string. If the socket is closed: Nil. Multitasking​ If a message is buffered, the function can return immediately. If not, it will yield if inside a coroutine, and block otherwise. pluto local socket = require \"pluto:socket\" local s = socket.connect(\"google.com\", 80) s:send(\"GET / HTTP/1.1\\r\\nHost: google.com\\r\\n\\r\\n\") print(s:recv()) Copy","s":"socket.recv","u":"/docs/Runtime Environment/Socket","h":"#socketrecv","p":691},{"i":706,"t":"Look at received data without consuming it. Parameters​ The socket instances. Returns​ Either the string that would be returned next by socket.recv or nothing if there is no message in the receive buffer.","s":"socket.peek","u":"/docs/Runtime Environment/Socket","h":"#socketpeek","p":691},{"i":708,"t":"Pushes a chunk of data to the front of the receive buffer, making it oldest for the purposes of socket.recv. Parameters​ The socket instance. The data to push. pluto local socket = require \"pluto:socket\" local sock = socket.connect(\"google.com\", 80) sock:unrecv(\"World\") sock:unrecv(\"Hello\") print(sock:recv()) --> Hello print(sock:recv()) --> World Copy","s":"socket.unrecv","u":"/docs/Runtime Environment/Socket","h":"#socketunrecv","p":691},{"i":710,"t":"Attempts to add the TLS crypto layer to the socket, making the transport layer a sole carrier for TLS traffic. Parameters (Client)​ The socket instance. The host name of the intended remote. This may be the same as what was passed to socket.connect. This name must be on the certificate that the remote will send. Parameters (Server)​ The socket instance. An array of tables describing available certificates. Each certificate needs a chain and private_key field, which should be a string containing valid PEM. The private_key must be RSA. Returns​ True on success. On failure, returns false and the socket is closed. If the socket is already using TLS, returns nil. Multitasking​ If called inside of a coroutine, this function yields. Otherwise, it blocks. Client Example pluto local socket = require \"pluto:socket\" local s = socket.connect(\"pluto-lang.org\", 443) assert(s:starttls(\"pluto-lang.org\"), \"Failed to establish secure connection.\") s:send(\"GET / HTTP/1.1\\r\\nHost: pluto-lang.org\\r\\nConnection: close\\r\\n\\r\\n\") while data := s:recv() do print(data) end Copy Server Example pluto local { http, scheduler, socket } = require \"*\" local certs = { { chain = http.request(\"https://tls.cat/certs/viatls-2024/cert.pem\"), private_key = http.request(\"https://tls.cat/certs/viatls-2024/key.pem\"), } } local sched = new scheduler() socket.bind(sched, 443, |s| -> do if s:starttls(certs) then local content = \"Hello, world!\" s:send(\"HTTP/1.1 200 OK\\r\\nConnection: Close\\r\\nContent-Length: \"..#content..\"\\r\\n\\r\\n\"..content) end end) print(\"https://127-0-0-1.viatls.com/\") sched:run() Copy","s":"socket.starttls","u":"/docs/Runtime Environment/Socket","h":"#socketstarttls","p":691},{"i":712,"t":"Closes a socket. Parameters​ The socket instance.","s":"socket.close","u":"/docs/Runtime Environment/Socket","h":"#socketclose","p":691},{"i":714,"t":"Get information about the other end of a connection. Parameters​ The socket instance. Returns​ The IP address as a string. The port. pluto local sock = require\"socket\".connect(\"1.1.1.1\", 443) local ip, port = sock:getpeer() print(ip) --> 1.1.1.1 print(port) --> 443 Copy","s":"socket.getpeer","u":"/docs/Runtime Environment/Socket","h":"#socketgetpeer","p":691},{"i":716,"t":"Get which side of the connection a socket is. Parameters​ The socket instance. Returns​ Either \"client\" or \"server\". pluto local sock = require\"socket\".connect(\"1.1.1.1\", 443) print(sock:getside()) --> client Copy","s":"socket.getside","u":"/docs/Runtime Environment/Socket","h":"#socketgetside","p":691},{"i":718,"t":"Check if a connection is encrypted. Parameters​ The socket instance. pluto local sock = require\"socket\".connect(\"1.1.1.1\", 443) print(sock:istls()) --> false assert(sock:starttls(\"1.1.1.1\")) print(sock:istls()) --> true Copy","s":"socket.istls","u":"/docs/Runtime Environment/Socket","h":"#socketistls","p":691},{"i":720,"t":"Check if a connection is still open. Parameters​ The socket instance. pluto local sock = require\"socket\".connect(\"1.1.1.1\", 443) print(sock:isopen()) --> true sock:close() print(sock:isopen()) --> false Copy","s":"socket.isopen","u":"/docs/Runtime Environment/Socket","h":"#socketisopen","p":691},{"i":722,"t":"Listener instances are obtained by calling socket.listen.","s":"Listener Class","u":"/docs/Runtime Environment/Socket","h":"#listener-class","p":691},{"i":724,"t":"Accepts an incoming client connection, waiting until there is one. Returns​ A new socket instance. The socket can be used as per usual, with the exception of the starttls function being unavailable. Multitasking​ If there is an incoming client connection, this function returns immediately. If there is not, it waits for one. Waiting means yielding if called inside a coroutine, and blocking otherwise.","s":"accept","u":"/docs/Runtime Environment/Socket","h":"#accept","p":691},{"i":726,"t":"Checks if there is an incoming client connection. If this function returns true, the next call to accept is guaranteed not to block or yield. pluto local socket = require \"pluto:socket\" local l = socket.listen(80) or error(\"Failed to bind TCP/80\") while not l:hasconnection() do -- Visit http://localhost to break this loop os.sleep(1) end print(l:accept():recv()) Copy","s":"hasconnection","u":"/docs/Runtime Environment/Socket","h":"#hasconnection","p":691},{"i":728,"t":"This page documents the changes & additions to the table library in Pluto, which is built on top of Lua 5.4's.","s":"Table","u":"/docs/Runtime Environment/Table","h":"","p":727},{"i":730,"t":"This function was modified to return the input table instead of nil, such that: pluto local t = { 3, 2, 1 } t = t:sort(...) Copy Will not result in t becoming nil.","s":"table.sort","u":"/docs/Runtime Environment/Table","h":"#tablesort","p":727},{"i":732,"t":"Copying variant of table.sort; returns a new table instead of modifying the input table. Note that nested tables will not be copied.","s":"table.sorted","u":"/docs/Runtime Environment/Table","h":"#tablesorted","p":727},{"i":734,"t":"Returns the number of elements in the table, counting both the array part and hash part. Parameters​ The table to check. pluto local t = { 1, 2, 3, [\"foo\"] = \"bar\" } print(t:size()) --> 4 Copy","s":"table.size","u":"/docs/Runtime Environment/Table","h":"#tablesize","p":727},{"i":736,"t":"Remove all elements from the table. Parameters​ The table to clear. pluto local t = { 1, 2, 3, [\"foo\"] = \"bar\" } print(t:size()) --> 4 t:clear() print(t:size()) --> 0 Copy","s":"table.clear","u":"/docs/Runtime Environment/Table","h":"#tableclear","p":727},{"i":738,"t":"Freezes a table to prevent modification. Parameters​ The table to freeze Returns​ The input table. pluto local t = table.freeze({...}) -- `table.freeze(t)` on another line will work fine too. t.key = \"value\" -- Fails. Copy","s":"table.freeze","u":"/docs/Runtime Environment/Table","h":"#tablefreeze","p":727},{"i":740,"t":"Checks if this table is frozen. Parameters​ The table to check. pluto local t = {} table.freeze(t) assert(table.isfrozen(t) == true) Copy","s":"table.isfrozen","u":"/docs/Runtime Environment/Table","h":"#tableisfrozen","p":727},{"i":742,"t":"Checks if this table contains an element. Parameters​ The table to check. The element to check for. Returns​ The index or key if found, otherwise nil. pluto local t = { 1, 2, 3, 4, 5, 6, key = \"value\" } assert(table.contains(t, 4) == 4) assert(table.contains(t, \"value\") == \"key\") assert(table.contains(t, \"nothing\") == nil) Copy","s":"table.contains","u":"/docs/Runtime Environment/Table","h":"#tablecontains","p":727},{"i":744,"t":"Search a table for an element, returning its value. Parameters​ The table to check. The callback function responsible for checking each element. Returns​ The element if found, otherwise nil. pluto local items = { { id = 1, name = \"Apple\" }, { id = 2, name = \"Banana\" }, } print(items:find(|item| -> item.id == 1).name) --> Apple Copy","s":"table.find","u":"/docs/Runtime Environment/Table","h":"#tablefind","p":727},{"i":746,"t":"Search a table for an element, returning its key/index. Parameters​ The table to check. The callback function responsible for checking each element. Returns​ The key/index if found, otherwise nil. pluto local fruit = { \"apple\", \"banana\", \"orange\" } print(fruit:findkey(|x| -> x == \"banana\")) --> 2 print(fruit[2]) --> banana Copy","s":"table.findkey, table.findindex","u":"/docs/Runtime Environment/Table","h":"#tablefindkey-tablefindindex","p":727},{"i":748,"t":"Reverses the array elements of a table. Parameters​ The table to reverse. Returns​ The input table. pluto local t = { 1, 2, hello = \"world\", 3, 4, 5, key = \"value\" } print(dumpvar(t)) local same = t:reverse() assert(same == t) print(dumpvar(t)) --[[ Before: { [1] = 1, [2] = 2, [3] = 3, [4] = 4, [5] = 5, [\"key\"] = string(5) \"value\", [\"hello\"] = string(5) \"world\", } After: { [1] = 5, [2] = 4, [3] = 3, [4] = 2, [5] = 1, [\"key\"] = string(5) \"value\", [\"hello\"] = string(5) \"world\", } --]] Copy","s":"table.reverse","u":"/docs/Runtime Environment/Table","h":"#tablereverse","p":727},{"i":750,"t":"Copying variant of table.reverse; returns a new table instead of modifying the input table. Note that nested tables will not be copied.","s":"table.reversed","u":"/docs/Runtime Environment/Table","h":"#tablereversed","p":727},{"i":752,"t":"Reorders the array portion of a table so it becomes a continuous array with no holes. Parameters​ The table. Returns​ The input table. pluto local assert = require(\"assert\") local t1 = { 1, nil, 2, nil, nil, 3, nil, 4 } assert.equal(t1:reorder(), { 1, 2, 3, 4 }) Copy","s":"table.reorder","u":"/docs/Runtime Environment/Table","h":"#tablereorder","p":727},{"i":754,"t":"Copying variant of table.reorder; returns a new table instead of modifying the input table. Note that nested tables will not be copied.","s":"table.reordered","u":"/docs/Runtime Environment/Table","h":"#tablereordered","p":727},{"i":756,"t":"Note that this function is not the same as the Lua function that was deprecated/removed in 5.1. Parameters​ The table. The callback to be called for every element. An optional bool if the callback function also takes a key (|k, v|) as opposed to only a value (|v|). pluto local t = { 1, 2, 3 } t:foreach(print) --> 1 --> 2 --> 3 Copy","s":"table.foreach","u":"/docs/Runtime Environment/Table","h":"#tableforeach","p":727},{"i":758,"t":"Filters away keys (both array and non-array) that fail to meet the condition established by callback. Elimination is done by setting the value to nil, consider using table.reorder if you want a continuous array after filtering. Parameters​ The table. The callback responsible for deciding which keys to keep or remove. This should return false or nil if you want the key to be eliminated. An optional bool if the callback function also takes a key (|k, v|) as opposed to only a value (|v|). Returns​ The input table. pluto data = { 1, 2, 3, 4, 5 } data:filter(|v| -> v % 2 ~= 0):reorder():concat(\" \") |> print -- \"1 3 5\" data = { 2, 2, 3, 4, 4 } data:filter(|k, v| -> k == v, true):reorder():concat(\" \") |> print -- \"2 3 4\" Copy","s":"table.filter","u":"/docs/Runtime Environment/Table","h":"#tablefilter","p":727},{"i":760,"t":"Copying variant of table.filter; returns a new table instead of modifying the input table. Note that nested tables will not be copied.","s":"table.filtered","u":"/docs/Runtime Environment/Table","h":"#tablefiltered","p":727},{"i":762,"t":"Remaps every key to a new value, provided by the callback function. Parameters​ The table. The callback responsible for producing the updated values. An optional bool if the callback function also takes a key (|k, v|) as opposed to only a value (|v|). Returns​ The input table. pluto data = \"41 20 68\" data:split(\" \"):map(tonumber):map(|v| -> v + 1):concat(\" \") |> print -- \"42 21 69\" data = \"10 15 10\" data:split(\" \"):map(tonumber):map(|k, v| -> k * v, true):concat(\" \") |> print -- \"10 30 30\" Copy In this example, we first use the tonumber function to turn the strings into numbers, then add 1 to them. (Although the first step is not needed in Lua/Pluto since the + operator would take care of it, it is used here for demonstration purposes.)","s":"table.map","u":"/docs/Runtime Environment/Table","h":"#tablemap","p":727},{"i":764,"t":"Copying variant of table.map; returns a new table instead of modifying the input table. Note that nested tables will not be copied.","s":"table.mapped","u":"/docs/Runtime Environment/Table","h":"#tablemapped","p":727},{"i":766,"t":"For every value stored in the table, computes accumulator = f(value, accumulator), returning the accumulator at the end. Parameters​ The table. The callback responsible for producing the updated accumulator. The initial value of accumulator. If absent, the accumulator is initialized with 0. Returns​ The accumulator. pluto local t = { 1, 2, 3 } t:reduce(|value, accumulator| -> value + accumulator) |> print --> 6 Copy","s":"table.reduce","u":"/docs/Runtime Environment/Table","h":"#tablereduce","p":727},{"i":768,"t":"Returns the smallest value stored in the table. Parameters​ The table. pluto local t = { 1, 2, 3 } print(t:min()) --> 1 Copy This is identical to :reduce(math.min, math.maxinteger).","s":"table.min","u":"/docs/Runtime Environment/Table","h":"#tablemin","p":727},{"i":770,"t":"Returns the largest value stored in the table. Parameters​ The table. pluto local t = { 1, 2, 3 } print(t:max()) --> 3 Copy This is identical to :reduce(math.max, math.mininteger).","s":"table.max","u":"/docs/Runtime Environment/Table","h":"#tablemax","p":727},{"i":772,"t":"Runs the given function against all elements, returning true if all of them match. Parameters​ The table. The callback responsible for checking each element. pluto print({ 2, 4, 6 }:checkall(|x| -> x % 2 == 0) ? \"All are even\" : \"Some are odd\") --> All are even print({ 1, 2, 3 }:checkall(|x| -> x % 2 == 0) ? \"All are even\" : \"Some are odd\") --> Some are odd Copy","s":"table.checkall","u":"/docs/Runtime Environment/Table","h":"#tablecheckall","p":727},{"i":774,"t":"Returns a new array-like table containing all keys from the table. Parameters​ The table. pluto local t = { [\"key1\"] = \"value1\", [\"key2\"] = \"value2\", \"sequence\", \"sequence sequence\" } t:keys() -- { 1, 2, \"key1\", \"key2\" } Copy","s":"table.keys","u":"/docs/Runtime Environment/Table","h":"#tablekeys","p":727},{"i":776,"t":"Returns a key-value based table which describes how many times a value appears inside of a table. Parameters​ The table pluto local t = { 1, 2, 2 3, 3, 3, 4, 4, 4, 4 [\"key1\"] = \"value\" [\"key2\"] = \"value\" } t:countvalues() -- { [1] = 1, [2] = 2, [3] = 3, [4] = 4, [\"value\"] = 2 } Copy","s":"table.countvalues","u":"/docs/Runtime Environment/Table","h":"#tablecountvalues","p":727},{"i":778,"t":"Generates a new table which collects the values of the input and represents them in chunks of a specified size. Parameters​ The table. The desired size of each chunk. Errors​ An error is thrown if size is not greater than zero. pluto local t = { 1, 2, 3, [\"key\"] = \"hello\", [\"other key\"] = \"world\" } t:chunk(3) -- { { 1, 2, 3 }, { \"hello\", \"world\" } } Copy","s":"table.chunk","u":"/docs/Runtime Environment/Table","h":"#tablechunk","p":727},{"i":780,"t":"Returns the last element of a table. This is functionally identical to t[#t]. Parameters​ The table. pluto local t = { \"a\", \"b\", \"c\" } print(t[#t]) --> \"c\" -- Now can be fit into one line. print({ \"a\", \"b\", \"c\" }:back()) --> c Copy","s":"table.back","u":"/docs/Runtime Environment/Table","h":"#tableback","p":727},{"i":782,"t":"Returns a new table composed of the elements between the specified range. This is intended to be used on sequences. Parameters​ The table. The starting index. The ending index. This is optional. By default, this is the length of the table. pluto local t = { 1, 2, 3, 4, 5 } t:slice(3) -- { 3, 4, 5 } t:slice(2, 4) -- { 2, 3, 4 } Copy","s":"table.slice","u":"/docs/Runtime Environment/Table","h":"#tableslice","p":727},{"i":784,"t":"Returns an element by index with wrap-around. Parameters​ The table. The index to get. pluto local mask = { 0xf0, 0x0f } local data = { 0x11, 0x22, 0x33, 0x44 } for i, v in data do -- Old way: data[i] = data[i] ~ mask[((i - 1) % #mask) + 1] data[i] = data[i] ~ mask:modget(i) end assert(data[1] == 0x11 ~ 0xf0) assert(data[2] == 0x22 ~ 0x0f) assert(data[3] == 0x33 ~ 0xf0) assert(data[4] == 0x44 ~ 0x0f) Copy","s":"table.modget","u":"/docs/Runtime Environment/Table","h":"#tablemodget","p":727},{"i":786,"t":"Updates an element by index with wrap-around. Parameters​ The table. The index to set. The value to set. pluto local test = { 1, 2, 3 } test:modset(5, 5) test:modset(6, 6) assert(test[1] == 1) assert(test[2] == 5) assert(test[3] == 6) Copy","s":"table.modset","u":"/docs/Runtime Environment/Table","h":"#tablemodset","p":727},{"i":788,"t":"This page documents the changes & additions to the string library in Pluto, which is built on top of Lua 5.4's.","s":"String","u":"/docs/Runtime Environment/String","h":"","p":787},{"i":790,"t":"This function now takes a second parameter that specifies which index to capitalize. pluto local s = \"hello\" assert(s:upper(1) == \"Hello\") Copy","s":"string.upper","u":"/docs/Runtime Environment/String","h":"#stringupper","p":787},{"i":792,"t":"This function now takes a second parameter that specifies which index to make lowercase. pluto local s = \"HELLO\" assert(s:lower(1) == \"hELLO\") Copy","s":"string.lower","u":"/docs/Runtime Environment/String","h":"#stringlower","p":787},{"i":794,"t":"Splits a string by a separator. Parameters​ The string to split. The separator to split a string by. This can be any string. An optional limit for the returned table size. Returns​ A table. Splitting a string by a single character pluto local s = \"hello world, how is everyone doing?\" string.split(s, \" \") -- { \"hello\", \"world,\", \"how\", \"is\", \"everyone\", \"doing?\" } Copy Splitting a string by a substring pluto local s = \"helloFOOworld,FOOhowFOOisFOOeveryoneFOOdoing?\" string.split(s, \"FOO\") -- { \"hello\", \"world,\", \"how\", \"is\", \"everyone\", \"doing?\" } Copy Splitting a string by a single character with a limit pluto local s = \"hello world, how is everyone doing?\" string.split(s, \" \", 3) -- { \"hello\", \"world,\", \"how is everyone doing?\" } Copy","s":"string.split","u":"/docs/Runtime Environment/String","h":"#stringsplit","p":787},{"i":796,"t":"Identical to the base Lua string.find in every way, except it searches right-to-left instead of left-to-right.","s":"string.rfind","u":"/docs/Runtime Environment/String","h":"#stringrfind","p":787},{"i":798,"t":"Strips or trims characters from both ends of a string. Parameters​ The string to strip. A string of characters to strip. Defaults to \\n\\r\\t\\v\\0. Returns​ The new string. pluto local s = \"{|}hello world{|}\" print(string.strip(s, \"{}|\")) --> hello world Copy","s":"string.strip","u":"/docs/Runtime Environment/String","h":"#stringstrip","p":787},{"i":800,"t":"Strips or trims characters from the left side of a string. Parameters​ The string to strip. A string of characters to strip. Defaults to \\n\\r\\t\\v\\0. Returns​ The new string. pluto local s = \"{|}hello world{|}\" print(string.lstrip(s, \"{}|\")) --> hello world{|} Copy","s":"string.lstrip","u":"/docs/Runtime Environment/String","h":"#stringlstrip","p":787},{"i":802,"t":"Strips or trims characters from the right side of a string. Parameters​ The string to strip. A string of characters to strip. Defaults to \\n\\r\\t\\v\\0. Returns​ The new string. pluto local s = \"{|}hello world{|}\" print(string.rstrip(s, \"{}|\")) --> {|}hello world Copy","s":"string.rstrip","u":"/docs/Runtime Environment/String","h":"#stringrstrip","p":787},{"i":804,"t":"Checks if a string is entirely composed of ASCII characters. Parameters​ The string to check. pluto local s = \"HELLOWORLD123\" print(string.isascii(s)) --> true Copy info This would exclude any multi-byte characters, like emojis.","s":"string.isascii","u":"/docs/Runtime Environment/String","h":"#stringisascii","p":787},{"i":806,"t":"Checks if a string is entirely composed of lowercase characters. Parameters​ The string to check. pluto local s = \"helloworld\" print(string.islower(s)) --> true Copy info Whitespace characters are not lowercase characters.","s":"string.islower","u":"/docs/Runtime Environment/String","h":"#stringislower","p":787},{"i":808,"t":"Checks if a string is entirely composed of alphabetic characters. Parameters​ The string to check. pluto local s = \"HELLOWORLD\" print(string.isalpha(s)) --> true Copy info Whitespace characters are not alphabetic characters.","s":"string.isalpha","u":"/docs/Runtime Environment/String","h":"#stringisalpha","p":787},{"i":810,"t":"Checks if a string is entirely composed of uppercase characters. Parameters​ The string to check. pluto local s = \"HELLOWORLD\" print(string.isupper(s)) --> true Copy info Whitespace characters are not uppercase characters.","s":"string.isupper","u":"/docs/Runtime Environment/String","h":"#stringisupper","p":787},{"i":812,"t":"Checks if a string is entirely composed of alphanumeric characters. Parameters​ The string to check. pluto local s = \"HELLOWORLD123\" print(string.isalnum(s)) --> true Copy info Whitespace characters are not alphanumeric characters.","s":"string.isalnum","u":"/docs/Runtime Environment/String","h":"#stringisalnum","p":787},{"i":814,"t":"Checks if this string is entirely composed of whitespace characters. Paramaters​ The string to check. pluto local s = \" \\t \\v \\f \\t\\t\\t\\t\" print(string.iswhitespace(s)) --> true Copy","s":"string.iswhitespace","u":"/docs/Runtime Environment/String","h":"#stringiswhitespace","p":787},{"i":816,"t":"Same as string.format, but performs the operation under the en_US.UTF-8 locale. Ensures the same result on all systems.","s":"string.uformat","u":"/docs/Runtime Environment/String","h":"#stringuformat","p":787},{"i":818,"t":"Replace substrings with another substring. Similar to string.gsub, but it operates on plain-text and is not burdened by a pattern capture limit. Parameters​ original — The substring to replace. substitute — The replacement substring. max_replace — The maximum number of replacements you wish to occur. The default value is effectively 0, which means \"infinite\". If you pass 1, this leads to a maximum of one replacement, and so on. Errors​ An error is thrown under the following conditions: max_replace is less than zero. The length of substitute is zero. pluto print(string.replace(\"Hello, world!\", \"!\", \".\")) --> Hello, world. print(string.replace(\"Hello, world!\", \"apple\", \"\")) --> Hello, world! print(string.replace(\"Hello, world!\", \"Hello\", \"Apple\")) --> Apple, world! print(string.replace(\"Hello, world!\", \"Hello, \", \"\")) --> world! Copy","s":"string.replace","u":"/docs/Runtime Environment/String","h":"#stringreplace","p":787},{"i":820,"t":"Truncates a given string to a specified length. If an elipsis is desired and the string was actually truncated, the last three characters of the resultant string will be replaced with an elipsis. Parameters​ The string to truncate. The desired length of the truncated string. A boolean indicating whether or not to replace the last three character of the string with ... if it is truncated. This is false by default. Returns​ The truncated string. pluto print(string.truncate(\"Hello, world!\", 50)) --> Hello, world! print(string.truncate(\"Hello, world!\", 5)) --> Hello print(string.truncate(\"Hello, world!\", 5, true)) --> He... Copy","s":"string.truncate","u":"/docs/Runtime Environment/String","h":"#stringtruncate","p":787},{"i":822,"t":"Checks if a string contains a substring. Parameters​ The string to check. The substring to check for. pluto local s = \"hello world\" print(string.contains(s, \"worl\")) --> true Copy","s":"string.contains","u":"/docs/Runtime Environment/String","h":"#stringcontains","p":787},{"i":824,"t":"Compares two strings, agnostic of any capitalization. Parameters​ The first string to compare. The second string to compare. pluto local s1 = \"hello world\" local s2 = \"heLLo WoRlD\" print(string.casefold(s1, s2)) --> true Copy","s":"string.casefold","u":"/docs/Runtime Environment/String","h":"#stringcasefold","p":787},{"i":826,"t":"This function makes an integer easier to read by inserting separator every N characters. It can handle strings representing integers, making it suitable for BigInt modules or any integer beyond Lua's representation limits. If you provide a string, it should consist solely of digits. A single unary operator is permitted at the beginning of the string to indicate whether it's a negative or positive number. Parameters​ integer — The integer or string input. sep — The separator to use. This must be a single-character string. group — The grouping of each digit pair. This is N. Errors​ If the input is a string and does not meet the aforementioned criteria, an error will be thrown. Usage Example pluto print(string.formatint(500)) --> 500 print(string.formatint(-5000)) --> -5,000 print(string.formatint(50000)) --> 50,000 print(string.formatint(-500000)) --> -500,000 print(string.formatint(500, \".\", 2)) --> 5.00 print(string.formatint(\"-5000\", \",\", 1)) --> -5,0,0,0 print(string.formatint(50000, \",\", 4)) --> 5,0000 Copy Error Example pluto string.formatint(\"-500000.4\") Copy pluto: test.pluto:3: argument 'integer' for string.formatint was a string, but does not represent a valid integer (bad character: '.') stack traceback: [C]: in function 'string.formatint' test.pluto:3: in main chunk [C]: in ? Copy","s":"string.formatint","u":"/docs/Runtime Environment/String","h":"#stringformatint","p":787},{"i":828,"t":"Splits a string once, on the first occurance of a separator. Parameters​ The string to partition. The separator to partition the string by. A boolean specifying whether to search from the right. By default, this is false, which starts at the left. Returns​ Two strings: A substring for all the content before the first occurance of sep, and another substring for all the content afterwards. A Basic Partition pluto local s = \"hello world, what's up?\" local before, after = string.partition(s, \" \") assert(before == \"hello\") assert(after == \"world, what's up?\") Copy Partioning From The Right pluto local s = \"hello world, what's up?\" local before, after = string.partition(s, \" \", true) assert(before == \"hello world, what's\") assert(after == \"up?\") Copy","s":"string.partition","u":"/docs/Runtime Environment/String","h":"#stringpartition","p":787},{"i":830,"t":"Checks if a string ends with a suffix. Parameters​ The string to check. The substring suffix to check for. pluto local s = \"hello world\" print(string.endswith(s, \"world\")) --> true Copy","s":"string.endswith","u":"/docs/Runtime Environment/String","h":"#stringendswith","p":787},{"i":832,"t":"Checks if a string starts with a prefix. Parameters​ The string to check. The substring prefix to check for. pluto local s = \"hello world\" print(string.startswith(s, \"hello\")) --> true Copy","s":"string.startswith","u":"/docs/Runtime Environment/String","h":"#stringstartswith","p":787},{"i":834,"t":"Converts a (binary) string to a hex representation. Parameters​ The string to convert. An optional bool to indicate that spaces should be used. An optional bool to indicate that the result should be upper-cased. Returns​ A new string. pluto print(\"XYZ\":tohex()) --> 58595a print(\"XYZ\":tohex(true)) --> 58 59 5a print(\"XYZ\":tohex(false, true)) --> 58595A print(\"XYZ\":tohex(true, true)) --> 58 59 5A Copy","s":"string.tohex","u":"/docs/Runtime Environment/String","h":"#stringtohex","p":787},{"i":836,"t":"Converts a hex string to binary. Parameters​ The string to convert. Returns​ A new string. pluto print(\"58595a\":fromhex()) --> XYZ print(\"58 59 5A\":fromhex()) --> XYZ Copy","s":"string.fromhex","u":"/docs/Runtime Environment/String","h":"#stringfromhex","p":787},{"i":838,"t":"Must be included via require.","s":"XML","u":"/docs/Runtime Environment/XML","h":"","p":837},{"i":840,"t":"Returns a string of XML. Parameters​ data — A table or string to encode as XML. pretty — Whether to return a human-readable string of XML. Defaults to false. pluto local xml = require \"pluto:xml\" print(xml.encode({ tag = \"root\", children = { { tag = \"entry\", attributes = { [\"type\"] = \"primary\" }, children = { \"Text node\" } }, { tag = \"entry\" } } }, true)) --> --> --> Text node --> --> --> Copy","s":"xml.encode","u":"/docs/Runtime Environment/XML","h":"#xmlencode","p":837},{"i":842,"t":"Returns a table representing the XML data. Parameters​ data — The XML data to decode. parser — Which parser to use against the data. Can be \"html\", \"xml\" (default), or \"lax\" (XML but accepts attributes without =). pluto local xml = require \"pluto:xml\" local root = xml.decode([[ primary ]]) print(dumpvar(root)) --> { --> [\"tag\"] = string(7) \"entries\", --> [\"children\"] = { --> [1] = { --> [\"tag\"] = string(5) \"entry\", --> [\"attributes\"] = { --> [\"type\"] = string(7) \"primary\", --> }, --> [\"children\"] = { --> [1] = { --> [\"tag\"] = string(4) \"name\", --> [\"children\"] = { --> [1] = string(7) \"primary\", --> }, --> }, --> }, --> }, --> }, --> } Copy For ease of use, the returned tables have an __index metamethod: pluto -- root is , so its first child is . -- we make use of the metamethod to get to : print(dumpvar(root.children[1].name)) --> { --> [\"tag\"] = string(4) \"name\", --> [\"children\"] = { --> [1] = string(7) \"primary\", --> }, --> } Copy If there is no single root element, a \"body\" element is implied as the root: pluto local xml = require \"pluto:xml\" print(dumpvar(xml.decode([[ ]]))) --> { --> [\"tag\"] = string(4) \"body\", --> [\"children\"] = { --> [1] = { --> [\"tag\"] = string(5) \"entry\", --> }, --> [2] = { --> [\"tag\"] = string(5) \"entry\", --> }, --> }, --> } Copy","s":"xml.decode","u":"/docs/Runtime Environment/XML","h":"#xmldecode","p":837},{"i":844,"t":"Must be included via require.","s":"URL","u":"/docs/Runtime Environment/URL","h":"","p":843},{"i":846,"t":"Returns a URL-encoded string. Parameters​ The string to be encoded. pluto local url = require\"pluto:url\" print(\"https://google.com/search?q=\"..url.encode(\"Pluto, a superset of Lua\")) --> https://google.com/search?q=Pluto%2C%20a%20superset%20of%20Lua Copy","s":"url.encode","u":"/docs/Runtime Environment/URL","h":"#urlencode","p":843},{"i":848,"t":"Returns a plain string from URL-decoding the input string. Parameters​ The string to be decoded. pluto local url = require\"pluto:url\" print(url.decode(\"Pluto%2C%20a%20superset%20of%20Lua\")) -- \"Pluto, a superset of Lua\" Copy","s":"url.decode","u":"/docs/Runtime Environment/URL","h":"#urldecode","p":843},{"i":850,"t":"Splits a URL into its constituent parts. Parameters​ The URL to be dissected. pluto local url = require\"pluto:url\" print(dumpvar(url.parse(\"http://username:password@hostname:9090/path?arg=value#anchor\"))) --> { --> [\"scheme\"] = string(4) \"http\", --> [\"user\"] = string(8) \"username\", --> [\"pass\"] = string(8) \"password\", --> [\"host\"] = string(8) \"hostname\", --> [\"port\"] = 9090, --> [\"path\"] = string(5) \"/path\", --> [\"query\"] = string(9) \"arg=value\", --> [\"fragment\"] = string(6) \"anchor\", --> } Copy","s":"url.parse","u":"/docs/Runtime Environment/URL","h":"#urlparse","p":843},{"i":852,"t":"Must be included via require.","s":"Vector3","u":"/docs/Runtime Environment/Vector3","h":"","p":851},{"i":854,"t":"The constructor takes up to 3 arguments: pluto local vector3 = require \"pluto:vector3\" print(new vector3()) --> vector3(0, 0, 0) print(new vector3(1)) --> vector3(1, 1, 1) print(new vector3(1, 2)) --> vector3(1, 2, 0) print(new vector3(1, 2, 3)) --> vector3(1, 2, 3) Copy There is also a shorthand for this: pluto local vector3 = require \"pluto:vector3\" print(vector3(1, 2, 3)) --> vector3(1, 2, 3) Copy","s":"__construct","u":"/docs/Runtime Environment/Vector3","h":"#__construct","p":851},{"i":856,"t":"As seen above, the __tostring metamethod provides a string representation of the class.","s":"__tostring","u":"/docs/Runtime Environment/Vector3","h":"#__tostring","p":851},{"i":858,"t":"Vector3 instances support arithmetic operations. The right-hand side can either be a Vector3 instance or a number. They create a new instance for the result. pluto local vector3 = require \"pluto:vector3\" print(new vector3(1) + new vector3(2)) --> vector3(3, 3, 3) print(new vector3(0, 0.6, 0.4) * 3) --> vector3(0, 1.8, 1.2) Copy","s":"__add, __sub, __mul, __div","u":"/docs/Runtime Environment/Vector3","h":"#__add-__sub-__mul-__div","p":851},{"i":860,"t":"Vector3 instances can effortlessly be compared to each other. pluto local vector3 = require \"pluto:vector3\" print(new vector3(2, 2, 2) == new vector3(2)) --> true print(new vector3(1, 2, 3) == new vector3(2)) --> false Copy","s":"__eq","u":"/docs/Runtime Environment/Vector3","h":"#__eq","p":851},{"i":862,"t":"To get the magnitude of a vector, you can either use the unary length operator (#) or call the magnitude method: pluto local vec = new (require\"pluto:vector3\") (1, 2, 3) print(#vec) --> 3.7416573867739 print(vec:magnitude()) --> 3.7416573867739 Copy","s":"__len, magnitude","u":"/docs/Runtime Environment/Vector3","h":"#__len-magnitude","p":851},{"i":864,"t":"Computes the sum of the x, y and z fields. pluto local vec = new (require\"pluto:vector3\") (1, 2, 3) print(vec:sum()) --> 6 Copy","s":"sum","u":"/docs/Runtime Environment/Vector3","h":"#sum","p":851},{"i":866,"t":"Returns the value of axis with the lowest value. pluto local vec = new (require\"pluto:vector3\") (1, 2, 3) print(vec:min()) --> 1 Copy","s":"min","u":"/docs/Runtime Environment/Vector3","h":"#min","p":851},{"i":868,"t":"Returns the value of axis with the highest value. pluto local vec = new (require\"pluto:vector3\") (1, 2, 3) print(vec:max()) --> 3 Copy","s":"max","u":"/docs/Runtime Environment/Vector3","h":"#max","p":851},{"i":870,"t":"Computes the dot product with the Vector3 given as an argument. pluto local vector3 = require \"pluto:vector3\" print(new vector3(1):dot(new vector3(2))) --> 6 Copy","s":"dot","u":"/docs/Runtime Environment/Vector3","h":"#dot","p":851},{"i":872,"t":"Returns a new Vector3 instance with each axis being an absolute value. pluto local vector3 = require \"pluto:vector3\" print(new vector3(-1, -2, 3):abs()) --> vector3(1, 2, 3) Copy","s":"abs","u":"/docs/Runtime Environment/Vector3","h":"#abs","p":851},{"i":874,"t":"Returns a new Vector3 instance that is a unit vector equivalent. pluto local vector3 = require \"pluto:vector3\" print(new vector3(0, 3, 0):normalized()) --> vector3(0.0, 1.0, 0.0) Copy","s":"normalized, normalised","u":"/docs/Runtime Environment/Vector3","h":"#normalized-normalised","p":851},{"i":876,"t":"Returns a rotation vector based on the direction given by the current vector. You can specify the up-axis and handedness of the coordinate system. By default, a left-handed Y-up system is used. The up-axis also determines which axis contains which value: Y-Up: Pitch, Yaw, Roll Z-Up: Pitch, Roll, Yaw pluto local vector3 = require \"pluto:vector3\" print(new vector3(0, 1, 0):torot(\"y\")) -- Y up. Pointing up -> vector3(90.0, 0.0, 0) print(new vector3(0, 0, -1):torot(\"z\")) -- Z up. Pointing down -> vector3(-90.0, 0, -0.0) print(new vector3(1, 0, 0):torot(\"yr\")) -- Y up, right-handed. Pointing right -> vector3(0.0, -90.0, 0) print(new vector3(1, 0, 0):torot(\"yl\")) -- Y up, left-handed. Pointing right -> vector3(0.0, 90.0, 0) print(new vector3(1, 0, 0):torot(\"zr\")) -- Z up, right-handed. Pointing right -> vector3(0.0, 0, 90.0) print(new vector3(0, 0, 1):torot(\"y\")) -- Y up. Pointing forward -> vector3(0.0, 0.0, 0) print(new vector3(0, 0, -1):torot(\"y\")) -- Y up. Pointing backward -> vector3(0.0, 180.0, 0) Copy","s":"torot","u":"/docs/Runtime Environment/Vector3","h":"#torot","p":851},{"i":878,"t":"Returns a rotation vector based on the position given by the current vector and argument. pluto local v3 = require \"pluto:vector3\" print(new v3(0):lookat(new v3(0, 1, 0), \"y\")) -- Y up. From origin to a point above -> vector3(90.0, 0.0, 0) Copy","s":"lookat","u":"/docs/Runtime Environment/Vector3","h":"#lookat","p":851},{"i":880,"t":"Returns a direction vector based on the rotation given by the current vector. pluto local vector3 = require \"pluto:vector3\" print(new vector3(90, 0, 0):todir(\"y\")) -- Y up. Pointing up -> vector3(0.0, 1.0, 6.1232339957368e-17) print(new vector3(0, 90, 0):todir(\"yl\")) -- Y up, left-handed. Pointing right -> vector3(1.0, 0.0, 6.1232339957368e-17) print(new vector3(0, 90, 0):todir(\"yr\")) -- Y up, right-handed. Pointing right -> vector3(-1.0, 0.0, 6.1232339957368e-17) Copy","s":"todir","u":"/docs/Runtime Environment/Vector3","h":"#todir","p":851}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,5.978,1,5.318,2,8.862,3,6.571,4,0.525]],["t/4",[4,0.241,5,5.446,6,1.955,7,1.955,8,2.602,9,0.645,10,0.514,11,1.072,12,3.927,13,2.09,14,1.978,15,2.224,16,1.399,17,2.602,18,2.206,19,1.351,20,3.465,21,2.062,22,1.267,23,2.122,24,1.593,25,3.274,26,1.955,27,1.635,28,1.955,29,1.072,30,2.586,31,1.151,32,1.213,33,1.554,34,1.518,35,1.635,36,2.206,37,1.736,38,1.38,39,1.351,40,1.374,41,1.554,42,2.206,43,1.213,44,3.13,45,1.798,46,1.869,47,1.554,48,2.206,49,1.328,50,1.488,51,1.798,52,0.881,53,1.084,54,1.554,55,1.084,56,1.798,57,1.274,58,1.174,59,2.424,60,1.267,61,2.74,62,1.213,63,1.426,64,1.952,65,1.869,66,2.206,67,1.635,68,1.084,69,1.166,70,2.206,71,2.206,72,2.206,73,1.328,74,1.736,75,1.593,76,2.062,77,2.424,78,2.206,79,1.798,80,3.694,81,1.485,82,2.424,83,1.036,84,2.206,85,1.426,86,2.567,87,1.518,88,1.683,89,1.955,90,2.424,91,2.424,92,2.424,93,2.424,94,2.424,95,2.424,96,2.424,97,2.424,98,2.424,99,2.424,100,2.424,101,2.424,102,2.424,103,2.424,104,2.424,105,2.424,106,2.424,107,2.424,108,2.424,109,2.424,110,2.424,111,2.424,112,2.424,113,1.151,114,1.485,115,1.084,116,2.206,117,2.424,118,2.424,119,2.424,120,2.062,121,2.206,122,1.869,123,1.351,124,1.518,125,2.062,126,1.869]],["t/6",[1,3.145,7,4.226,20,2.318,50,1.922,52,1.905,64,4.878,69,2.521,115,2.344,127,4.77,128,0.923,129,5.952,130,1.707,131,2.623,132,3.639,133,4.77,134,5.242,135,4.459,136,2.971,137,5.242,138,2.781,139,3.887,140,1.538,141,5.242,142,5.242,143,4.77,144,4.77,145,5.242,146,4.226,147,4.041,148,3.026,149,3.639,150,4.041,151,2.088,152,3.887,153,3.887,154,4.77,155,2.825,156,3.443,157,3.026,158,2.292,159,4.226,160,5.242,161,3.211]],["t/8",[15,3.69,20,2.04,30,2.278,31,2.191,49,4.359,55,2.063,64,4.475,75,3.031,83,1.178,85,2.714,86,1.933,113,2.191,115,2.063,128,0.813,140,1.354,158,2.017,162,4.676,163,3.479,164,3.031,165,2.826,166,2.269,167,2.57,168,2.087,169,3.031,170,2.112,171,3.557,172,3.924,173,3.203,174,2.889,175,3.304,176,2.57,177,2.768,178,2.375,179,4.198,180,3.421,181,1.662,182,3.239,183,2.889,184,2.309,185,2.914,186,3.72,187,2.826,188,3.72,189,3.924,190,4.198,191,2.487,192,3.203,193,3.421,194,3.557,195,2.248,196,2.663,197,2.527]],["t/10",[5,2.311,10,0.491,14,2.021,20,1.835,29,1.835,30,2.049,38,1.684,49,2.273,50,1.521,53,1.856,55,1.856,64,4.664,66,3.776,73,2.273,85,2.441,86,2.609,115,1.856,121,3.776,143,3.776,144,3.776,149,2.88,155,2.236,163,1.814,165,2.542,166,1.398,174,2.598,178,2.136,182,1.995,198,2.972,199,3.1,200,3.199,201,2.168,202,4.201,203,2.441,204,4.149,205,3.529,206,4.149,207,4.58,208,4.618,209,4.801,210,2.441,211,3.529,212,2.726,213,4.149,214,3.529,215,3.529,216,2.49,217,3.346,218,4.149,219,2.609,220,3.529,221,3.529,222,4.149,223,4.149,224,3.346,225,4.149,226,4.149,227,2.972,228,2.972,229,4.149]],["t/12",[3,4.275,13,2.968,25,6.359,49,3.158,55,3.527,64,4.648,73,3.158,78,5.246,158,2.521,166,1.942,167,3.212,189,4.904,199,3.727,212,3.787,230,5.765,231,4.904,232,5.765,233,4.129,234,5.765,235,2.211,236,2.968,237,4.648,238,4.275,239,5.848,240,5.246,241,3.787,242,4.444,243,5.246,244,4.904,245,4.904,246,5.765,247,5.765]],["t/14",[10,0.514,13,2.937,29,1.635,49,3.125,52,2.073,55,3.115,56,2.742,60,2.981,61,2.551,62,1.851,64,4.935,69,1.778,73,3.815,128,0.651,140,1.674,149,2.567,151,1.473,173,2.567,174,2.315,176,2.06,178,2.937,182,1.778,187,2.265,192,2.567,198,2.648,199,2.365,200,2.851,212,3.748,220,3.145,235,2.188,236,1.904,239,2.742,245,3.145,248,3.697,249,3.364,250,2.429,251,2.742,252,2.851,253,3.697,254,2.37,255,3.364,256,4.097,257,5.191,258,5.705,259,2.743,260,2.134,261,3.96,262,2.494,263,3.364,264,2.567,265,3.697,266,2.742,267,3.697,268,2.648,269,2.429,270,2.265,271,3.697,272,3.697,273,3.697,274,3.145,275,2.648,276,2.494,277,2.742]],["t/16",[4,0.099,5,5.891,8,1.069,10,0.572,14,1.434,15,1.612,20,2.865,23,2.063,29,0.738,30,0.823,31,0.792,32,0.835,38,1.224,39,1.639,40,0.946,43,0.835,50,0.611,53,2.13,56,3.531,58,0.483,61,1.316,62,2.383,64,1.899,70,1.518,71,1.518,72,1.518,73,1.612,83,2.375,85,0.981,86,2.513,113,1.397,115,0.746,123,0.929,124,1.044,125,1.419,126,2.269,127,1.518,128,0.518,130,0.386,133,1.518,140,0.49,149,1.158,158,0.729,162,1.158,163,2.082,166,0.562,168,0.755,170,0.763,171,1.286,178,0.859,181,1.716,182,0.802,183,1.044,191,0.899,194,1.286,195,1.434,198,1.195,199,1.975,203,1.731,208,1.237,214,1.419,215,1.419,216,1.766,221,1.419,227,1.195,250,1.096,254,1.069,259,0.802,260,0.963,278,1.195,279,1.518,280,1.419,281,2.182,282,1.518,283,1.518,284,1.419,285,2.108,286,1.419,287,1.286,288,1.345,289,1.237,290,1.453,291,1.237,292,0.827,293,1.237,294,0.333,295,2.043,296,1.518,297,1.195,298,1.345,299,2.043,300,1.237,301,0.738,302,1.287,303,1.419,304,0.899,305,1.096,306,1.419,307,1.345,308,1.668,309,0.134,310,1.096,311,1.096,312,1.518,313,1.419,314,1.419,315,1.419,316,1.345,317,1.668,318,1.668,319,1.518,320,1.668,321,1.668,322,1.668,323,1.668,324,1.668,325,1.668,326,1.668,327,1.668,328,1.668,329,1.668,330,1.668,331,1.668,332,2.182,333,2.503,334,0.268,335,1.345,336,1.668,337,1.125,338,1.158,339,1.345,340,1.518,341,1.345,342,1.668,343,1.668,344,0.872,345,1.069,346,1.668,347,0.652,348,1.518,349,1.518,350,1.668,351,1.668,352,0.813,353,1.518,354,1.518,355,1.158,356,1.668,357,1.668,358,1.668,359,1.096,360,1.668,361,1.158,362,1.668,363,1.419,364,1.125,365,1.001,366,1.668,367,1.044,368,1.286]],["t/18",[5,3.608,10,0.425,49,3.548,52,2.354,62,3.241,64,3.114,73,3.548,83,1.653,124,4.056,149,4.496,158,2.832,163,2.832,166,2.182,167,3.608,170,2.965,171,4.993,178,3.335,191,3.491,192,4.496,207,3.968,216,3.886,259,3.114,260,3.739,300,4.802,359,4.255,369,5.509,370,5.509,371,4.993,372,4.151]],["t/20",[5,4.696,10,0.499,14,2.081,15,2.34,20,1.889,38,0.962,40,2.422,49,3.487,52,1.552,64,4.054,65,3.293,73,2.34,74,3.06,83,1.625,159,5.132,162,2.966,163,2.783,166,1.439,167,2.38,178,2.2,184,2.138,210,2.513,235,1.639,256,2.513,259,2.054,261,4.419,270,2.617,294,0.483,300,3.168,344,2.232,373,3.293,374,3.445,375,5.792,376,2.966,377,2.303,378,3.887,379,3.445,380,3.634,381,3.887,382,1.236,383,3.887,384,4.272,385,3.634,386,3.634,387,2.966,388,3.445,389,2.966,390,3.06,391,1.719,392,3.293,393,2.806,394,4.272,395,4.272,396,4.272,397,2.617,398,4.272,399,4.272,400,2.422,401,2.882,402,3.887,403,4.272]],["t/22",[4,0.132,5,5.649,8,1.425,9,0.324,10,0.584,12,0.782,13,0.628,14,2.137,15,0.668,17,0.782,20,2.562,22,0.638,28,0.984,29,1.354,30,0.602,31,0.579,32,1.113,33,1.962,38,0.69,39,1.706,40,1.26,41,0.782,44,0.941,45,0.905,49,2.067,50,0.447,52,0.808,53,0.546,55,1.688,56,2.798,57,0.383,62,1.113,63,0.718,64,2.109,68,0.546,73,0.668,74,0.874,75,0.802,79,0.905,81,0.748,85,0.718,86,1.837,113,1.792,115,0.546,120,1.038,124,1.392,130,0.514,131,1.113,140,0.899,158,0.534,162,3.413,163,2.354,166,0.749,170,0.559,171,0.941,178,1.943,181,0.44,182,1.472,183,0.764,185,0.962,186,0.984,187,0.748,190,1.11,192,0.847,193,0.905,195,1.492,196,0.704,199,0.922,202,0.823,203,2.58,210,0.718,235,0.468,236,1.943,238,0.905,240,1.11,249,3.434,252,0.941,259,1.069,260,0.704,262,0.823,275,0.874,276,1.5,281,0.905,285,0.874,289,0.905,290,0.602,292,0.343,294,0.656,295,2.126,298,0.984,300,1.648,304,0.658,313,1.038,314,1.038,315,1.038,316,0.984,337,0.823,339,0.984,341,0.984,344,0.638,348,1.11,359,0.802,364,0.823,375,1.11,379,0.984,382,1.269,390,2.193,391,0.894,397,2.687,404,1.543,405,0.572,406,0.401,407,1.22,408,1.038,409,1.038,410,1.22,411,1.22,412,1.22,413,0.718,414,0.941,415,1.038,416,1.714,417,1.26,418,0.718,419,0.984,420,1.11,421,0.802,422,1.454,423,0.782,424,1.11,425,0.984,426,0.823,427,0.692,428,1.308,429,2.023,430,0.984,431,0.732,432,1.917,433,1.22,434,0.874,435,1.038,436,1.22,437,1.22,438,0.874,439,0.874,440,0.941,441,0.658,442,1.22,443,1.11,444,1.11,445,1.038,446,1.038,447,2.193,448,1.11,449,1.038,450,0.941,451,1.038,452,1.22,453,1.038,454,0.68,455,0.847,456,0.546,457,1.22,458,0.905,459,0.874,460,0.823,461,1.22,462,1.038,463,1.22,464,1.22,465,0.732,466,1.22,467,1.11,468,1.038,469,1.22,470,1.11,471,1.22,472,0.941,473,0.823,474,1.038,475,0.941,476,1.22,477,1.22,478,1.22,479,1.22,480,1.22,481,1.11,482,1.22,483,1.11,484,1.22,485,1.891,486,1.11,487,0.638,488,2.223,489,0.823,490,0.984,491,2.223,492,1.11,493,1.22,494,1.22,495,1.22,496,1.22,497,1.22,498,1.22,499,2.023,500,1.22,501,1.22,502,1.22,503,1.22,504,1.11,505,1.22,506,0.984,507,1.22,508,1.038,509,1.11,510,0.704,511,1.038,512,1.22,513,1.22,514,1.792,515,1.11,516,1.11,517,1.11,518,1.11,519,1.22,520,1.22,521,1.11,522,0.984,523,0.802,524,0.732,525,1.22,526,1.11]],["t/24",[4,0.36,5,3.38,19,3.38,29,2.683,38,1.367,40,3.44,52,2.205,53,2.714,55,2.714,62,3.037,64,4.747,68,3.652,128,1.069,130,1.403,185,2.624,210,3.57,212,3.986,217,4.893,220,5.162,266,4.499,393,3.986,426,4.093,527,5.162,528,2.778,529,5.162,530,3.171,531,6.068,532,6.068,533,5.162,534,6.068,535,6.068]],["t/26",[10,0.561,49,2.871,53,2.344,63,3.084,64,4.461,83,1.884,128,0.923,138,2.781,166,2.879,168,2.371,173,3.639,174,3.282,184,2.623,202,3.536,211,4.459,235,2.011,251,3.887,276,3.536,309,0.421,349,4.77,363,4.459,377,2.825,413,3.084,528,2.399,536,4.226,537,4.226,538,4.041,539,3.639,540,4.77,541,3.084,542,4.041,543,5.242,544,4.041,545,3.536,546,5.242,547,5.242,548,5.242,549,4.77,550,5.242,551,4.77,552,4.77,553,4.459]],["t/28",[20,2.929,49,4.741,52,2.408,64,4.162,130,2.363,138,3.515,163,2.897,166,2.232,167,3.691,177,3.975,188,5.342,199,2.747,202,4.469,235,2.541,236,3.411,252,5.107,292,1.863,405,3.107,419,5.342,426,5.839,554,6.625]],["t/30",[64,4.741,73,3.804,114,5.466,130,2.063,156,4.562,170,4.084,180,5.149,236,3.575,426,4.684,555,5.599,556,6.944,557,6.944,558,6.318,559,6.944,560,5.718,561,6.944,562,4.008]],["t/32",[5,4.838,8,2.697,10,0.657,14,1.233,15,1.386,16,1.461,17,2.697,20,3.7,24,1.662,29,1.861,30,2.078,31,1.202,36,2.303,38,1.574,39,2.344,40,1.435,49,3.448,52,0.92,54,1.622,55,2.815,62,2.703,64,2.024,74,1.813,85,1.489,86,1.06,113,1.202,115,1.882,130,0.585,131,1.267,132,1.757,140,0.743,158,1.107,163,1.84,165,1.55,166,0.853,168,1.904,169,1.662,170,1.158,185,1.82,195,3.893,259,1.217,266,1.876,289,1.876,290,1.249,292,1.183,294,0.712,334,0.406,382,2.181,391,2.811,397,1.55,404,1.757,405,1.187,413,1.489,416,1.951,417,1.435,426,1.707,432,3.382,448,2.303,456,1.132,458,1.876,465,1.518,487,1.322,523,1.662,524,1.518,563,3.579,564,1.757,565,2.04,566,3.829,567,2.531,568,1.876,569,1.662,570,2.04,571,2.839,572,2.635,573,2.303,574,2.531,575,2.153,576,2.153,577,1.435,578,1.41,579,2.531,580,2.531,581,2.531,582,2.531,583,1.951,584,2.531,585,1.813,586,1.813,587,2.04,588,2.303,589,2.531]],["t/34",[5,3.345,13,3.092,20,2.655,30,2.965,40,3.404,50,2.201,55,3.626,64,4.727,73,3.289,83,1.533,115,4.105,164,3.945,177,3.603,181,2.921,210,3.533,216,3.603,236,4.175,263,5.464,374,4.842,382,1.737,391,2.416,590,3.76,591,6.538,592,6.005,593,5.464,594,5.108,595,6.005]],["t/36",[4,0.311,6,4.226,10,0.344,20,2.318,23,2.739,32,2.623,41,3.359,55,2.344,64,4.461,113,2.489,124,5.351,152,3.887,155,2.825,165,3.211,175,3.754,185,2.267,188,4.226,231,4.459,235,2.011,236,2.699,238,3.887,292,1.474,299,3.639,380,4.459,382,2.136,414,4.041,533,4.459,539,3.639,596,4.459,597,3.887,598,4.041,599,4.459,600,4.044,601,5.242,602,5.242,603,5.242,604,7.382,605,5.242,606,5.242,607,4.226,608,4.041,609,4.226]],["t/38",[20,3.35,38,1.964,49,2.98,50,2.777,52,1.977,62,2.722,64,4.534,81,3.332,122,4.193,124,3.406,166,2.937,167,3.03,178,3.901,181,2.729,182,4.192,203,3.2,216,4.546,270,3.332,275,3.896,300,4.033,344,2.842,355,3.776,405,2.551,610,5.439,611,4.949,612,4.627,613,4.949,614,6.894,615,5.439,616,5.439,617,4.949]],["t/40",[4,0.216,5,5.406,10,0.628,14,3.359,20,1.609,22,1.113,23,1.113,26,1.717,27,1.436,31,1.727,35,1.436,38,0.819,40,1.207,53,0.952,55,1.627,56,1.579,62,2.384,81,2.229,83,1.76,85,2.14,86,1.524,115,0.952,128,0.375,140,0.625,158,1.591,165,2.918,170,1.665,185,2.437,195,1.037,197,1.166,199,0.883,201,1.113,202,1.436,235,0.817,241,1.399,254,1.365,285,1.525,292,1.339,293,1.579,294,0.412,296,1.938,301,1.609,311,1.399,332,1.579,341,4.542,359,2.39,382,2.131,391,3.482,392,2.805,397,2.918,405,3.233,418,2.14,419,1.717,428,3.722,432,1.333,450,1.642,456,0.952,458,1.579,523,1.399,524,1.278,570,2.933,571,3.213,577,1.207,585,1.525,618,2.933,619,2.129,620,1.717,621,1.811,622,3.638,623,2.129,624,1.579,625,1.717,626,2.129,627,1.938,628,2.129,629,1.938,630,1.938,631,1.938,632,1.938,633,1.938,634,1.938,635,1.938,636,1.642,637,1.811,638,1.478,639,2.129,640,1.811,641,1.525,642,2.129,643,2.129,644,2.129,645,1.938,646,1.717,647,1.811,648,0.998,649,1.717,650,1.938,651,1.938,652,2.129,653,2.129,654,2.129,655,1.938,656,1.525,657,2.129,658,2.129,659,2.129,660,2.129,661,1.717,662,1.811,663,1.811,664,1.811]],["t/42",[4,0.36,17,3.889,20,3.611,22,3.171,24,3.986,61,2.714,64,3.927,80,5.522,86,2.542,115,2.714,128,1.069,130,1.403,155,3.271,166,2.044,173,4.212,181,3.325,182,2.918,195,3.978,297,4.346,334,0.974,344,3.171,382,1.755,405,2.846,432,3.8,539,4.212,541,3.57,636,4.678,665,4.499,666,5.522,667,6.068]],["t/44",[5,2.894,10,0.558,20,2.297,50,1.904,52,1.888,64,4.089,73,4.018,114,3.182,115,2.323,140,1.525,151,2.07,158,2.271,159,4.188,163,2.271,166,1.75,170,2.378,181,1.871,182,2.498,195,2.531,200,4.005,203,3.056,242,5.655,254,3.329,259,2.498,298,4.188,359,4.819,389,3.606,393,3.412,430,4.188,536,4.188,537,4.188,560,3.329,587,5.915,668,4.727,669,4.188,670,2.636,671,4.419,672,3.606,673,3.504,674,5.194,675,4.419,676,4.005,677,5.194]],["t/46",[4,0.38,10,0.42,20,2.832,57,2.01,62,3.206,64,4.071,73,3.508,131,3.206,132,5.876,140,1.88,158,2.801,170,2.932,195,3.12,196,3.697,254,4.105,259,3.08,301,2.832,355,4.446,374,5.164,391,2.577,400,3.631,428,3.768,487,3.347,560,4.105,678,5.828,679,5.828,680,4.937,681,6.405]],["t/48",[10,0.386,17,3.77,20,2.601,62,2.944,64,3.845,83,1.501,114,4.898,130,1.36,140,1.727,158,2.572,166,1.982,170,2.693,195,2.866,196,3.396,207,3.604,242,6.164,245,5.004,254,3.77,261,4.084,294,0.666,297,4.213,301,2.601,397,3.604,400,3.335,428,3.461,487,3.074,541,3.461,542,4.535,666,5.353,668,5.353,679,5.353,680,4.535,682,5.353,683,4.743,684,5.882]],["t/50",[4,0.25,5,6.039,10,0.588,20,1.861,32,2.107,56,4.668,61,1.883,85,3.704,86,2.638,113,1.999,114,2.579,130,1.455,131,2.107,140,1.236,170,1.927,176,2.345,181,2.268,182,2.024,191,2.269,195,2.051,199,1.746,203,2.476,236,2.168,276,2.84,338,2.922,359,2.766,371,3.245,372,2.698,376,2.922,401,2.84,426,2.84,428,2.476,450,3.245,453,3.581,511,3.581,536,3.394,537,3.394,558,3.831,560,2.698,629,3.831,630,3.831,648,1.974,685,3.015,686,3.394,687,4.21,688,3.831,689,2.698,690,2.636,691,4.21,692,3.831,693,4.21,694,4.21,695,2.698,696,2.922,697,4.21,698,4.21]],["t/52",[10,0.507,16,3.231,20,2.475,49,3.066,50,2.833,64,3.716,163,3.379,166,2.604,167,4.305,176,3.118,177,3.359,254,3.587,256,3.293,259,2.692,260,3.231,262,3.776,269,3.677,275,4.009,294,0.633,402,5.093,439,4.009,489,3.776,699,5.597,700,4.315,701,5.597,702,5.597,703,3.231,704,5.093,705,5.597,706,5.597,707,5.597,708,4.315,709,5.597,710,5.597,711,7.728,712,5.597]],["t/54",[5,4.064,53,3.262,124,4.568,163,3.19,166,2.458,185,3.155,217,5.882,266,5.409,344,3.812,389,5.064,416,5.624,571,4.921,713,6.638,714,7.295,715,6.638,716,7.295,717,6.638,718,7.295,719,7.295]],["t/56",[4,0.367,9,1.648,10,0.407,20,2.741,38,1.866,49,4.537,52,2.252,83,1.582,124,3.881,166,2.088,167,3.453,181,2.233,182,2.981,193,4.596,364,4.181,462,5.272,565,4.998,585,4.44,586,4.44,600,3.395,614,5.64,717,5.64,720,6.198,721,6.198,722,5.64,723,6.198,724,5.64,725,6.198,726,5.64,727,4.181,728,5.64]],["t/58",[4,0.455,64,3.695,69,3.695,83,2.427,115,3.436,199,3.186,231,6.535,236,3.956,239,5.697,241,5.047,287,5.923,438,5.503,609,6.195,729,7.683]],["t/60",[38,1.546,64,3.3,69,3.3,83,1.751,166,2.312,167,3.822,172,5.836,187,4.203,199,2.845,235,2.632,239,5.087,241,4.507,244,5.836,276,4.628,288,5.532,393,4.507,397,4.203,475,5.29,523,4.507,541,4.036,730,6.861,731,6.861,732,6.861,733,6.861]],["t/62",[10,0.303,20,2.04,38,1.039,47,2.957,49,3.69,52,1.676,83,1.719,85,2.714,86,1.933,115,3.013,152,3.421,153,3.421,157,2.663,161,2.826,163,2.946,178,2.375,181,2.427,182,2.219,199,1.913,207,2.826,212,3.031,239,3.421,252,3.557,259,2.219,266,3.421,291,3.421,292,1.894,334,1.277,344,2.411,352,2.248,374,3.72,400,2.615,404,3.203,405,2.163,418,2.714,458,3.421,551,4.198,552,4.198,600,2.527,676,3.557,734,4.613,735,3.326,736,2.342,737,4.198,738,3.031,739,4.613,740,3.924,741,3.924,742,4.613,743,4.613,744,3.72,745,4.613,746,2.826,747,3.72,748,4.613,749,3.924]],["t/64",[20,3.353,49,5.167,53,3.391,65,5.845,83,1.935,131,3.795,166,2.554,183,5.907,311,4.981,492,6.899,542,5.845,597,5.622,750,5.431,751,7.582]],["t/66",[21,7.001,38,1.854,116,7.489,129,6.636,130,1.903,175,5.895,176,4.585,251,6.103,553,7.001,752,7.489]],["t/68",[10,0.282,13,2.216,15,3.506,20,1.903,21,3.661,22,2.249,25,3.47,26,3.47,31,2.044,49,2.358,55,2.862,68,1.925,113,2.044,128,1.128,157,2.484,163,1.882,166,1.45,168,1.947,176,2.398,177,2.582,178,3.296,185,1.861,192,2.988,199,2.654,208,3.191,209,3.318,256,2.532,260,2.484,270,2.637,278,3.083,292,1.21,302,2.799,344,3.345,347,1.682,361,2.988,409,3.661,418,4.495,423,2.758,456,1.925,523,4.205,524,2.582,527,3.661,571,2.903,585,3.083,600,2.358,685,3.083,753,3.916,754,3.661,755,3.396,756,3.191,757,3.916,758,3.916,759,4.318,760,4.304,761,4.304,762,3.47,763,4.304,764,3.083,765,3.916,766,2.532,767,3.661,768,3.191]],["t/70",[31,4.274,64,4.328,256,5.295,275,6.447]],["t/72",[5,4.79,152,6.376,153,6.376,299,5.969,368,6.629,675,7.314,769,4.874]],["t/74",[5,6.096,10,0.502,13,1.822,16,2.043,30,1.747,32,1.771,43,1.771,50,1.297,55,1.583,62,2.76,83,1.729,86,1.483,113,3.217,114,2.168,130,1.566,135,3.01,136,2.006,147,2.728,158,1.547,163,2.411,166,1.192,167,1.971,170,2.524,176,1.971,195,2.686,199,1.467,212,2.325,238,2.624,255,3.22,256,2.082,259,1.702,278,2.535,292,1.904,294,0.624,382,1.595,418,2.082,425,2.853,447,2.535,527,3.01,542,2.728,553,3.01,617,3.22,675,3.01,676,2.728,686,2.853,700,2.728,769,3.84,770,3.22,771,2.268,772,3.01,773,3.539,774,3.539,775,3.539,776,3.539,777,2.853,778,3.22,779,2.853,780,3.539,781,3.01,782,3.539,783,3.539,784,2.728,785,3.22,786,3.22,787,3.01,788,3.22,789,3.539]],["t/76",[10,0.491,55,3.347,197,4.1,199,3.88,278,5.36,287,5.77,413,4.403,467,6.81,686,6.034,738,4.916,790,5.549,791,7.484,792,4.491,793,6.034,794,6.366,795,6.81]],["t/78",[4,0.517,22,3.502,40,3.799,47,4.295,277,4.969,427,3.799,524,4.021,670,3.402,676,5.167,695,4.295,769,3.799,796,6.702,797,6.098,798,7.031,799,6.702,800,6.098,801,6.702,802,6.702,803,5.701,804,4.969,805,6.702,806,6.702,807,6.098,808,6.098]],["t/81",[23,4.363,33,5.351,155,4.5,158,3.651,210,4.912,560,5.351,695,5.351,809,8.35,810,5.796]],["t/83",[4,0.502,10,0.478,22,2.69,23,2.69,24,3.382,38,1.642,52,1.871,57,2.288,61,2.302,69,2.476,83,1.314,86,2.157,128,0.907,155,2.775,156,3.382,236,2.651,277,3.817,293,3.817,301,2.276,309,0.413,431,3.089,451,4.379,670,2.613,678,4.685,695,3.299,766,3.029,798,4.151,810,3.574,811,4.685,812,4.379,813,3.299,814,5.148,815,4.685,816,5.148,817,5.148,818,2.444,819,5.148,820,5.148,821,4.685,822,4.685,823,3.574,824,5.148,825,5.148,826,4.685,827,5.148,828,5.148,829,4.685]],["t/85",[4,0.332,23,2.925,26,4.513,38,1.261,47,3.587,57,2.426,61,2.503,74,6.34,75,3.677,83,2.259,86,2.345,158,2.448,195,2.727,197,3.066,270,3.429,277,4.15,432,3.505,514,6.231,518,5.093,670,2.841,798,4.513,815,7.032,830,3.776,831,5.093,832,5.093,833,7.728,834,5.093,835,5.597,836,4.761,837,4.513,838,6.574,839,5.597,840,5.597,841,5.093]],["t/87",[4,0.338,9,1.518,23,2.983,32,2.857,52,2.074,114,3.497,138,3.029,155,3.077,170,2.613,175,4.088,176,3.18,181,2.056,344,2.983,367,3.574,427,3.236,438,5.61,514,4.602,521,5.194,560,3.658,597,4.232,670,2.897,695,3.658,810,3.962,813,3.658,831,5.194,842,5.194,843,7.833,844,5.708,845,5.708,846,5.708,847,5.708,848,5.708,849,2.939,850,5.708,851,5.194,852,5.194,853,5.708,854,4.602,855,5.194]],["t/89",[4,0.446,10,0.225,23,1.794,28,2.769,41,4.258,47,4.822,58,1.558,83,0.876,128,0.605,131,1.719,166,1.814,175,2.459,176,3.701,182,1.651,197,1.881,216,2.06,235,2.549,241,2.256,260,1.982,299,2.384,305,2.256,309,0.432,347,2.105,364,2.316,365,3.231,377,1.851,389,2.384,401,2.316,435,2.921,438,5.389,541,2.02,600,1.881,618,2.769,627,3.124,685,3.857,695,2.201,704,3.124,738,2.256,769,1.946,798,6.067,818,1.63,856,2.316,857,4.9,858,6.046,859,3.124,860,2.921,861,3.451,862,3.124,863,3.434,864,3.434,865,3.434,866,6.644,867,3.451,868,3.124,869,2.546,870,3.434,871,2.769,872,2.921,873,3.434,874,4.342,875,3.434,876,3.434,877,1.946,878,3.124,879,3.434,880,3.434,881,3.434,882,2.921,883,3.434,884,3.434,885,2.921,886,1.851,887,3.124,888,3.434,889,2.647,890,2.769]],["t/91",[4,0.488,47,5.275,50,3.017,113,3.908,152,6.103,197,4.509,455,5.714,472,6.345,560,5.275,891,7.489]],["t/93",[23,3.274,32,3.136,47,4.016,152,6.954,153,6.954,155,3.377,181,2.257,301,2.77,347,2.449,417,4.729,569,5.48,695,4.016,747,5.052,810,4.349,830,4.227,849,3.226,892,6.266,893,5.701,894,6.266,895,6.266,896,5.33,897,5.701,898,4.83,899,4.116,900,6.266,901,6.266]],["t/95",[4,0.188,9,2.775,10,0.677,52,1.837,58,0.917,83,1.29,128,0.891,140,1.484,173,2.2,178,1.632,181,1.142,182,3.78,201,1.656,205,5.364,235,1.939,260,2.918,294,0.359,299,2.2,309,0.406,392,2.444,406,2.585,427,1.797,456,1.418,528,4.415,703,1.83,768,2.35,899,3.321,902,3.449,903,1.656,904,3.598,905,2.884,906,2.884,907,3.17,908,2.884,909,3.17,910,6.306,911,3.17,912,3.17,913,5.055,914,3.17,915,3.17,916,3.17,917,3.17,918,3.17,919,3.17,920,2.884,921,3.17,922,3.17,923,3.17,924,3.17,925,3.17,926,3.17,927,2.884]],["t/97",[4,0.411,8,3.08,10,0.621,34,3.009,38,1.082,50,1.762,52,2.522,131,2.405,155,2.59,156,3.157,185,2.078,195,2.341,197,4.461,291,6.039,369,4.088,373,3.705,377,2.59,393,3.157,405,2.253,431,4.887,522,3.875,566,6.314,670,2.439,671,4.088,813,3.08,855,4.373,869,3.563,898,3.705,928,4.805,929,4.088,930,4.805,931,4.805,932,4.373,933,4.373,934,7.41,935,4.805,936,4.805,937,4.805,938,4.805,939,4.373,940,4.805,941,4.373,942,3.442,943,4.373,944,4.373]],["t/99",[4,0.265,10,0.432,42,4.068,52,1.625,74,3.202,182,2.15,369,5.599,405,3.087,422,2.123,434,3.202,456,1.999,621,3.803,638,3.103,862,4.068,891,4.068,932,7.11,934,7.11,941,4.068,942,3.202,943,4.068,944,4.068,945,6.3,946,3.803,947,4.068,948,5.424,949,6.583,950,6.583,951,4.47,952,3.315,953,3.605,954,4.47,955,5.308,956,4.47,957,4.068,958,4.068,959,4.068,960,6.583,961,4.068,962,4.47,963,4.47,964,4.47,965,6.583,966,3.803,967,3.446,968,2.302,969,4.47,970,4.47,971,6.583,972,6.583,973,3.315,974,2.937]],["t/101",[4,0.513,30,3.271,38,1.95,50,3.534,51,4.912,52,2.408,75,4.352,182,3.186,210,3.897,274,5.635,297,4.745,311,4.352,431,3.975,975,6.625,976,6.008,977,6.625,978,6.625,979,6.625,980,6.625,981,6.028,982,6.028,983,6.625]],["t/103",[4,0.455,10,0.595,14,4.63,25,3.496,27,2.925,30,2.141,31,3.644,38,1.913,50,2.359,58,1.862,81,2.656,138,2.301,156,2.849,164,4.228,165,2.656,166,1.461,178,2.233,183,2.715,187,2.656,197,2.375,256,2.551,292,1.809,294,0.728,309,0.517,382,1.254,391,1.745,405,2.033,428,2.551,523,2.849,529,3.688,585,3.106,586,4.61,587,3.496,690,2.715,722,3.946,749,3.688,803,3.688,867,2.779,968,2.233,984,2.925,985,3.343,986,3.946,987,7.675,988,4.336,989,2.779,990,4.336,991,3.946,992,3.496]],["t/105",[4,0.517,10,0.497,27,3.669,30,2.685,31,3.597,33,3.486,37,3.896,39,4.221,40,3.083,41,4.856,53,2.432,57,2.378,61,2.432,69,2.616,113,2.583,131,2.722,156,4.977,168,2.461,181,1.959,290,2.685,333,4.627,355,3.776,422,2.583,624,4.033,670,2.761,695,3.486,703,3.14,830,3.669,849,2.801,885,4.627,986,4.949,993,4.386,994,5.439,995,3.896,996,4.949,997,3.406,998,4.627,999,5.439]],["t/107",[4,0.514,5,1.404,10,0.602,14,2.043,29,1.114,30,3.099,31,2.98,32,1.261,33,1.615,38,1.695,39,4.653,43,2.098,53,1.127,54,1.615,57,0.791,62,2.098,75,1.655,81,2.568,113,2.557,156,4.578,158,1.102,165,2.568,168,3.153,174,2.625,178,3.874,183,1.578,195,1.228,197,3.818,203,3.692,256,3.692,259,1.212,261,1.749,291,1.868,292,1.179,301,1.114,309,0.504,336,1.428,344,1.317,364,1.7,365,1.512,370,4.58,391,1.014,404,1.749,413,4.1,427,1.428,428,3.167,447,3.003,541,1.482,565,2.032,585,3.003,624,1.868,648,1.966,655,2.293,818,1.196,984,1.7,985,1.942,998,2.143,1000,1.655,1001,1.942,1002,1.454,1003,2.52,1004,5.711,1005,2.52,1006,4.58,1007,1.7,1008,2.52,1009,2.52,1010,2.52,1011,1.38,1012,1.942,1013,4.58,1014,2.52,1015,1.482,1016,2.293,1017,2.293,1018,1.482,1019,2.52,1020,2.52,1021,1.512,1022,2.52]],["t/109",[30,4.581,31,2.912,33,3.93,38,1.381,43,4.644,79,4.547,84,5.58,178,3.158,197,3.359,237,4.945,310,4.029,376,4.257,401,4.137,423,3.93,541,3.608,661,4.945,662,5.216,663,5.216,664,5.216,804,4.547,818,2.912,886,3.305,1023,5.58,1024,5.216,1025,7.483,1026,5.58,1027,5.58,1028,5.58,1029,5.58]],["t/111",[4,0.446,5,1.913,9,1.767,10,0.494,23,1.794,33,2.201,37,2.459,38,0.773,40,1.946,49,1.881,57,1.078,58,1.558,61,1.536,83,2.086,85,2.02,86,1.438,115,1.536,128,0.949,140,1.008,155,1.851,156,2.256,185,2.329,187,3.299,197,2.95,217,2.769,269,2.256,294,0.752,309,0.533,319,3.124,335,2.769,344,1.794,363,2.921,421,2.256,422,1.63,648,1.61,670,1.743,695,2.201,713,3.124,810,2.384,818,2.557,830,2.316,842,3.124,854,2.769,974,2.256,1012,2.647,1030,2.459,1031,3.434,1032,3.434,1033,5.385,1034,3.434,1035,3.434,1036,5.385,1037,5.385,1038,5.357,1039,3.451,1040,5.385,1041,2.769,1042,2.921,1043,2.384,1044,3.124,1045,2.104,1046,2.256,1047,3.434,1048,3.434,1049,3.434,1050,3.434,1051,3.124,1052,5.385,1053,3.434,1054,3.434,1055,2.921,1056,3.124,1057,3.434,1058,3.434,1059,3.124,1060,3.434,1061,3.434,1062,3.434]],["t/113",[4,0.517,170,3.995,250,5.734,524,5.237,1007,5.888,1063,8.728]],["t/115",[4,0.609,38,2.125,52,2.755,228,5.431,250,4.981,813,4.859,886,4.087,939,6.899,961,6.899,1007,6.363,1064,7.582,1065,7.582]],["t/117",[0,5.183,3,5.697,4,0.455,10,0.504,76,6.535,132,5.333,191,4.141,541,4.52,544,5.923,727,5.183,777,6.195,808,6.991,885,6.535,1066,6.991,1067,6.991]],["t/120",[4,0.481,290,4.007,309,0.652,355,5.633,703,4.684,945,7.93,1068,6.543,1069,8.115,1070,8.115,1071,6.903]],["t/122",[3,3.264,4,0.507,10,0.561,86,1.844,139,3.264,158,1.925,191,2.373,236,2.267,276,2.97,290,2.174,309,0.353,355,3.056,421,2.892,441,3.508,560,2.821,608,5.018,665,3.264,703,2.541,945,5.248,955,3.55,974,2.892,1012,3.394,1039,2.821,1068,3.55,1072,7.046,1073,4.402,1074,4.402,1075,6.508,1076,6.508,1077,4.402,1078,7.785,1079,6.508,1080,4.402,1081,6.508,1082,6.508,1083,4.402,1084,4.402,1085,4.402,1086,3.745,1087,4.402,1088,4.402,1089,6.508,1090,4.402,1091,4.402,1092,3.264,1093,4.006,1094,5.922,1095,4.006,1096,4.402,1097,3.745]],["t/124",[4,0.598,41,4.675,86,3.056,139,5.409,355,5.064,391,2.935,441,4.963,560,4.675,608,5.624,665,5.409,955,5.882,967,5.624,995,5.225,1012,5.624,1071,6.205,1098,6.638]],["t/126",[4,0.474,86,3.353,191,4.313,421,5.257,955,6.452,967,6.169,995,5.732,1002,4.619,1012,6.169,1071,6.807,1099,8.002,1100,8.002]],["t/128",[4,0.525,13,3.533,22,3.585,38,1.546,61,3.068,155,3.698,158,3.872,309,0.551,368,5.29,456,3.068,510,3.961,524,4.117,966,7.532,967,5.29,1101,5.532,1102,5.836,1103,5.532,1104,6.243,1105,6.861,1106,6.861,1107,6.243]],["t/130",[13,2.582,57,1.574,86,2.101,154,9.743,156,3.294,157,2.894,158,2.193,185,2.169,191,2.702,290,2.476,309,0.403,354,4.562,417,2.842,422,2.381,607,7.333,665,3.718,676,3.865,689,3.213,703,2.894,813,4.585,877,2.842,945,5.768,953,5.768,976,3.481,993,4.043,1068,4.043,1072,4.562,1078,6.509,1094,4.562,1098,4.562,1108,3.481,1109,5.014,1110,5.014,1111,2.66,1112,5.014,1113,5.014,1114,5.014,1115,5.014,1116,3.591,1117,4.265]],["t/132",[10,0.45,155,5.284,191,3.698,241,4.507,456,3.068,583,5.29,621,5.836,689,4.397,952,6.565,957,8.057,958,8.057,959,6.243,966,5.836,967,5.29,1103,5.532,1116,4.914,1118,6.861,1119,6.861,1120,6.861]],["t/134",[191,4.087,309,0.609,336,5.347,456,3.391,523,4.981,689,4.859,813,4.859,953,6.114,973,5.622,976,5.263,1102,6.449,1116,5.431,1117,6.449,1121,7.582,1122,7.582]],["t/136",[4,0.582,10,0.347,38,1.674,57,1.66,86,2.216,131,3.719,155,4.005,165,3.241,191,2.851,195,2.577,293,3.922,309,0.597,355,5.158,665,3.922,670,2.685,689,5.504,703,3.053,728,8.928,869,3.922,968,2.724,976,3.672,993,4.265,1011,2.898,1107,4.813,1116,3.789,1117,7.305,1123,7.43,1124,5.29,1125,5.29,1126,3.922,1127,5.29]],["t/138",[4,0.342,10,0.517,14,3.842,30,2.846,50,2.891,51,4.275,52,2.095,62,2.885,73,3.158,85,3.391,86,2.415,130,1.333,178,2.968,185,2.493,199,2.39,210,3.391,270,3.532,278,4.129,397,3.532,405,2.703,426,3.889,428,3.391,431,3.459,571,3.889,636,4.444,929,4.904,968,2.968,1128,4.904,1129,7.887,1130,5.765,1131,4.648,1132,5.765,1133,5.765,1134,5.765,1135,4.275,1136,5.246]],["t/140",[4,0.568,50,3.514,197,3.588,274,5.571,301,2.896,413,3.853,539,4.547,738,4.303,764,4.691,1137,6.55,1138,6.55,1139,6.55,1140,6.55,1141,6.55,1142,6.55,1143,6.55,1144,6.55,1145,7.307,1146,8.591,1147,6.55,1148,6.55,1149,5.96]],["t/142",[4,0.406,9,2.85,10,0.529,31,2.244,40,2.679,58,2.334,113,2.244,115,3.066,140,1.387,176,5.632,181,1.703,260,5.978,309,0.551,406,2.911,432,2.96,445,4.021,489,3.189,572,2.96,583,3.644,598,3.644,738,3.105,818,3.256,904,2.164,1018,2.781,1039,4.394,1150,4.301,1151,4.301,1152,4.301]],["t/144",[52,2.949,138,4.306,541,4.774,637,6.903,670,4.119,744,6.543,762,6.543,1007,5.474,1153,8.115,1154,7.384,1155,6.903]],["t/146",[4,0.451,10,0.643,24,2.806,38,0.962,52,1.552,83,1.942,85,2.513,86,2.667,115,1.91,158,4.282,170,3.482,235,2.441,294,0.954,309,0.511,338,2.966,352,2.081,368,3.293,371,3.293,372,2.738,431,2.563,511,3.634,620,3.445,650,3.887,651,3.887,703,2.466,744,5.132,837,3.445,1002,2.466,1156,3.445,1157,3.887,1158,6.365,1159,3.011,1160,4.272,1161,6.365,1162,2.882,1163,4.272,1164,4.272,1165,3.445,1166,4.272,1167,3.887,1168,1.416,1169,4.272,1170,1.955,1171,3.887,1172,3.887]],["t/148",[4,0.512,10,0.67,16,3.082,23,5.145,62,2.672,63,4.399,140,1.567,158,3.774,166,1.799,170,3.951,254,5.532,259,4.151,285,3.824,290,2.636,294,0.976,295,5.991,309,0.693,1018,3.141,1055,4.541,1173,6.361,1174,5.339]],["t/150",[3,4.362,4,0.349,10,0.386,23,3.074,38,1.325,43,4.002,52,2.138,58,1.702,155,4.31,158,3.972,170,2.693,182,2.829,309,0.472,347,2.299,367,3.684,400,3.335,431,3.53,487,3.074,569,3.864,813,5.124,989,3.77,1015,3.461,1156,6.447,1175,7.859,1176,7.996,1177,3.461,1178,5.882,1179,5.353]],["t/152",[4,0.297,9,1.333,10,0.469,19,2.793,31,2.381,38,1.611,52,3.031,58,2.069,62,3.58,176,5.066,178,2.582,241,3.294,256,6.053,260,2.894,292,1.41,299,4.966,309,0.403,336,2.842,456,2.242,544,3.865,572,3.14,609,4.043,648,2.351,685,3.591,818,2.381,849,2.582,904,2.295,1039,3.213,1180,5.014,1181,6.509,1182,3.294,1183,4.562,1184,4.562,1185,4.562,1186,3.591,1187,4.562,1188,5.014,1189,4.265]],["t/154",[4,0.404,9,2.845,10,0.527,31,2.226,40,2.658,58,2.709,113,2.226,115,3.048,140,1.376,176,5.618,181,1.689,256,5.749,309,0.547,406,2.9,432,2.936,445,3.988,489,3.163,572,2.936,598,3.614,738,3.08,818,3.236,904,2.146,1018,2.758,1039,4.368,1150,4.266,1151,4.266,1152,4.266,1181,6.202]],["t/156",[22,4.125,31,3.748,32,3.951,38,1.778,39,4.397,53,3.53,256,5.688,301,3.49,427,4.474,465,4.736,1026,7.182,1190,5.853]],["t/158",[4,0.51,113,4.083,158,3.76,163,3.76,472,6.629,1156,6.933,1191,8.598]],["t/161",[4,0.335,9,1.503,10,0.682,16,4.491,58,1.635,162,5.401,163,2.472,184,2.829,292,1.589,294,1.137,309,0.625,311,3.713,390,7.199,391,2.274,393,3.713,456,2.528,577,3.204,700,4.357,790,4.191,902,2.072,904,2.587,1011,3.096,1168,2.579,1177,3.325,1192,4.808]],["t/163",[4,0.273,9,1.227,10,0.658,16,2.663,23,2.411,32,2.309,37,3.304,38,1.039,40,3.819,47,2.957,130,1.066,158,2.017,162,4.676,163,2.946,170,2.112,181,2.427,184,2.309,185,1.995,203,5.474,243,4.198,259,2.219,292,1.297,294,0.9,309,0.541,344,2.411,361,3.203,382,2.531,391,1.856,439,3.304,440,3.557,443,4.198,456,2.063,577,2.615,597,3.421,640,3.924,700,3.557,790,3.421,830,4.544,973,3.421,1011,2.527,1193,3.203,1194,4.613,1195,4.613,1196,3.924]],["t/165",[4,0.325,10,0.726,11,2.428,15,5.186,16,3.17,63,3.23,68,2.456,140,2.779,162,3.812,163,2.401,170,2.513,184,2.748,268,3.933,294,0.621,309,0.612,382,2.206,456,2.456,568,4.071,597,4.071,700,4.233,903,2.869,1011,3.008,1197,4.427,1198,4.233,1199,6.149,1200,4.671,1201,5.491]],["t/167",[4,0.332,10,0.68,55,2.503,63,3.293,130,1.294,140,1.643,163,2.448,184,2.802,185,4.479,186,6.231,259,2.692,294,0.633,309,0.621,390,6.837,406,1.841,455,3.886,456,2.503,538,4.315,571,5.971,648,3.624,904,2.562,1168,2.562,1189,4.761,1202,5.597]],["t/169",[4,0.364,9,1.63,10,0.678,52,3.603,58,2.379,62,3.069,163,2.682,184,3.069,252,6.34,256,4.838,309,0.66,377,3.305,424,5.58,456,2.743,903,3.205,904,2.807,1039,3.93,1154,5.58,1200,5.216,1203,6.132,1204,8.224,1205,5.58]],["t/171",[4,0.345,10,0.593,29,2.575,58,1.685,60,3.043,61,2.604,83,2.027,115,4.34,163,2.546,184,2.915,187,3.567,201,3.043,294,0.659,309,0.638,392,4.489,406,2.612,439,4.171,456,2.604,738,5.217,902,3.313,903,4.722,904,2.666,1206,5.823,1207,7.941,1208,4.489]],["t/173",[4,0.464,9,1.518,10,0.684,31,2.71,38,1.286,39,5.362,52,2.074,53,2.553,156,3.75,163,2.496,166,1.923,173,3.962,184,2.857,260,3.295,309,0.629,413,3.358,434,4.088,456,2.553,656,4.088,852,7.128,968,2.939,1006,4.855,1013,4.855,1041,6.316,1193,3.962,1209,5.708,1210,5.708,1211,5.708,1212,5.194]],["t/175",[4,0.371,9,1.666,10,0.683,52,2.277,149,4.349,163,2.74,184,3.136,261,5.791,285,4.488,294,0.944,295,6.511,309,0.67,456,2.802,767,5.33,1000,4.116,1055,5.33,1193,4.349,1213,8.342,1214,5.224,1215,6.266,1216,6.266]],["t/177",[4,0.427,9,1.345,10,0.55,23,2.643,29,3.183,30,2.497,31,3.418,32,2.532,35,3.412,37,3.623,38,1.621,39,2.818,40,2.867,43,2.532,47,3.242,52,2.616,53,2.262,158,2.212,163,3.148,170,2.315,181,1.822,184,2.532,185,2.188,292,2.024,309,0.578,361,3.511,389,3.511,423,3.242,427,2.867,439,3.623,440,3.899,447,5.156,456,2.262,515,4.602,656,3.623,661,4.078,769,4.081,830,3.412,1193,3.511,1217,6.55,1218,4.602]],["t/179",[4,0.295,9,1.322,10,0.629,14,4.044,23,2.598,29,3.144,30,2.454,31,2.36,32,2.488,33,3.186,37,3.56,38,1.87,39,2.769,40,2.818,43,2.488,47,3.186,158,2.174,163,3.109,170,2.275,181,1.791,184,2.488,185,2.15,259,2.39,294,0.804,309,0.571,361,3.451,389,3.451,391,3.645,423,3.186,439,3.56,440,3.832,447,5.092,456,2.223,517,4.523,830,3.353,1193,3.451,1197,5.733,1218,4.523,1219,4.523]],["t/181",[4,0.438,9,1.394,10,0.561,23,2.739,29,3.264,32,2.623,35,3.536,37,3.754,38,1.181,40,2.971,47,3.359,50,2.706,52,1.905,158,3.228,163,3.228,170,2.399,181,1.888,184,2.623,185,2.267,199,3.061,210,5.027,270,3.211,309,0.593,361,3.639,427,2.971,439,3.754,440,4.041,447,5.288,456,2.344,516,4.77,813,3.359,830,3.536,1168,2.447,1193,3.639,1220,7.382,1221,5.242]],["t/183",[4,0.373,9,2.5,10,0.639,24,2.766,29,1.861,38,0.948,58,1.821,163,3.298,178,3.883,179,3.831,182,4.818,184,2.107,261,2.922,281,7.225,282,3.831,283,3.831,294,0.712,309,0.605,377,2.269,378,3.831,393,2.766,406,2.947,456,1.883,583,3.245,849,2.168,902,1.543,904,1.927,992,3.394,1001,3.245,1021,2.526,1103,3.394,1116,3.015,1165,3.394,1208,3.245,1222,4.21,1223,8.369,1224,4.21]],["t/185",[4,0.356,9,2.156,10,0.674,16,3.466,31,2.851,32,3.005,39,3.345,163,2.626,184,3.005,203,6.469,280,6.897,309,0.651,376,4.169,432,3.76,455,4.169,456,2.685,577,3.404,754,5.108,902,2.201,998,5.108,1021,3.603,1192,5.108]],["t/187",[4,0.338,10,0.632,16,4.522,58,1.651,60,4.093,83,2.457,128,1.696,140,2.299,163,2.496,184,2.857,284,8.187,286,7.607,294,0.646,309,0.629,406,2.576,455,3.962,456,2.553,904,2.613,1208,4.401,1225,4.855,1226,7.128]],["t/189",[52,2.908,148,4.619,158,3.499,163,3.499,170,3.663,183,5.011,185,3.461,189,6.807,344,4.182,1156,6.452,1227,6.169,1228,6.452]],["t/191",[4,0.392,8,2.887,10,0.568,29,2.927,32,4.613,33,5.03,38,1.015,58,1.303,158,1.97,162,4.596,163,4.03,166,2.23,173,3.128,183,2.821,185,3.395,210,3.895,233,3.227,291,3.341,294,0.749,309,0.532,344,2.354,373,3.473,390,6.196,397,2.76,413,2.65,447,4.742,449,7.359,902,1.652,904,2.062,1007,3.039,1168,1.494,1227,6.669,1229,4.505,1230,4.505,1231,4.505,1232,4.505]],["t/193",[4,0.393,10,0.568,24,4.352,33,6.178,52,2.408,58,1.917,163,2.897,291,4.912,294,0.979,309,0.532,390,6.199,393,5.686,449,7.362,624,4.912,747,5.342,904,3.033,976,4.599,1168,2.196,1233,6.418]],["t/195",[4,0.432,10,0.68,16,4.208,20,2.276,52,2.649,58,2.448,83,2.16,140,1.511,181,1.855,294,0.825,302,2.251,309,0.585,334,0.826,670,4.671,818,2.444,942,7.224,1007,4.917,1018,3.029,1168,2.416,1228,4.151,1234,7.289,1235,7.289,1236,7.289,1237,4.685]],["t/197",[55,3.734,63,4.912,128,1.471,259,4.015,294,0.945,382,2.415,563,7.102,854,6.732,886,4.5]],["t/199",[4,0.598,10,0.662,11,3.464,38,1.286,50,2.872,60,4.673,61,3.999,63,3.358,140,1.675,148,3.295,235,2.189,259,2.745,294,1.012,309,0.718,382,1.651,886,4.82,902,2.093,1126,4.232,1238,3.497,1239,4.232,1240,5.708]],["t/201",[4,0.584,10,0.722,11,3.307,15,2.924,38,1.203,50,2.741,63,3.141,148,3.082,259,2.567,294,1.058,309,0.693,382,1.544,391,3.763,886,4.652,1011,2.924,1126,3.958,1214,3.343,1241,3.601,1242,6.654,1243,4.858,1244,4.858]],["t/203",[4,0.571,10,0.7,11,2.524,15,3.127,38,1.286,50,2.872,63,3.358,259,2.745,294,1.012,309,0.629,382,1.651,391,3.152,690,3.574,759,6.033,886,4.82,974,3.75,1011,3.127,1126,4.232,1242,6.039,1243,5.194,1244,5.194,1245,5.708]],["t/205",[4,0.417,10,0.709,38,2.026,57,2.822,75,5.907,85,4.135,86,2.944,268,5.034,294,0.795,309,0.564,338,4.879,372,4.504,382,2.033,563,5.978,871,5.667]],["t/207",[4,0.568,9,2.284,10,0.564,16,3.781,31,3.11,32,3.278,38,1.935,39,3.649,52,2.38,73,3.588,113,3.11,203,5.986,259,3.15,309,0.77,508,5.571,703,3.781,976,4.547,1018,3.853]],["t/209",[4,0.356,9,2.156,10,0.674,16,3.466,31,2.851,32,3.005,39,3.345,163,3.545,184,3.005,203,6.469,280,7.809,309,0.651,376,4.169,432,3.76,456,2.685,577,3.404,754,5.108,902,2.201,1021,3.603,1192,5.108]],["t/211",[4,0.434,10,0.687,27,4.937,52,2.204,58,2.669,60,4.821,62,2.005,81,5.652,83,2.238,114,2.454,128,1.625,138,2.125,270,3.715,292,1.126,294,0.686,300,2.97,309,0.588,367,2.508,377,2.159,382,1.159,406,2.407,413,5.158,417,2.27,598,3.088,968,3.122,982,3.645,997,2.508,1225,6.225,1246,4.005,1247,2.97,1248,4.005,1249,4.005]],["t/213",[22,4.125,31,3.748,32,3.951,38,1.778,39,4.397,53,3.53,81,5.924,301,3.49,427,4.474,465,4.736,664,6.714,1190,5.853]],["t/215",[4,0.525,9,1.823,10,0.703,17,3.029,34,2.96,54,4.394,58,1.983,250,3.105,309,0.648,391,1.902,405,2.217,406,1.555,428,5.206,429,4.301,430,3.811,528,3.693,648,2.217,703,2.728,902,1.733,904,3.138,968,2.434,1238,2.896,1250,5.832,1251,5.528,1252,5.528,1253,5.528,1254,5.832,1255,6.239,1256,6.239,1257,4.727,1258,4.727,1259,4.301]],["t/217",[4,0.412,9,1.846,10,0.585,14,4.347,35,4.684,38,1.564,54,4.45,58,2.009,302,3.036,309,0.558,405,3.256,428,5.249,618,5.599,631,6.318,1250,5.906,1251,5.599,1252,5.599,1253,5.599,1254,5.906,1259,6.318]],["t/219",[4,0.375,9,1.684,10,0.416,13,4.327,54,4.06,58,2.431,140,1.859,309,0.509,391,3.381,428,4.943,430,5.107,632,5.764,633,5.764,634,5.764,703,3.656,1002,3.656,1108,5.833,1250,5.388,1251,6.776,1252,5.107,1253,5.107,1260,6.334,1261,5.107,1262,6.334,1263,6.334]],["t/221",[4,0.432,9,1.939,10,0.662,54,4.675,58,2.11,309,0.586,406,2.399,428,5.416,902,2.674,1251,5.882,1252,5.882,1253,5.882,1254,6.205,1255,6.638,1256,6.638,1264,6.205]],["t/223",[22,4.125,31,3.748,32,3.951,38,1.778,39,4.397,53,3.53,301,3.49,427,4.474,428,5.688,465,4.736,1027,7.182,1190,5.853]],["t/225",[4,0.388,9,2.068,10,0.703,11,3.797,30,2.19,38,1.474,50,1.626,52,2.827,58,1.894,140,2.283,197,2.43,210,2.61,270,2.718,292,1.247,294,0.741,309,0.526,367,2.778,382,1.283,405,2.08,406,2.558,455,3.08,541,2.61,544,3.42,685,4.688,756,3.289,877,2.515,902,2.852,1018,2.61,1159,2.778,1168,2.579,1233,3.289,1247,3.289,1265,6.545,1266,4.037,1267,3.42,1268,3.773]],["t/227",[4,0.484,9,1.612,10,0.696,38,0.902,50,1.468,55,3.273,58,1.754,60,3.824,61,1.791,83,1.548,115,1.791,128,1.289,146,3.23,181,1.443,185,1.732,187,2.454,195,1.951,207,2.454,287,4.675,288,3.23,289,2.97,294,0.992,309,0.588,400,2.27,405,1.878,431,2.403,455,2.78,465,2.403,571,2.702,886,3.944,968,2.062,1007,2.702,1173,5.158,1264,3.407,1269,5.518,1270,5.518,1271,6.064,1272,4.005,1273,6.064,1274,6.064,1275,6.064,1276,3.407,1277,4.005,1278,4.005,1279,3.407]],["t/229",[4,0.382,10,0.557,11,4.565,19,4.731,38,0.977,60,3.363,68,3.798,130,1.002,140,2.888,195,2.113,199,2.669,202,2.925,261,3.01,294,0.491,309,0.517,382,2.22,564,3.01,851,3.946,867,2.779,948,6.83,1042,5.475,1131,3.496,1159,1.549,1168,1.438,1280,4.336,1281,3.01,1282,4.336,1283,6.436,1284,4.996,1285,4.336,1286,4.336,1287,4.336,1288,4.336]],["t/231",[30,3.234,50,2.401,79,4.857,130,2.216,164,6.941,197,3.588,210,3.853,382,2.485,590,6.003,591,8.519,1186,4.691,1267,5.05,1289,5.644,1290,6.55]],["t/233",[4,0.468,10,0.686,58,2.796,83,2.294,294,0.652,309,0.633,367,3.61,382,1.668,391,2.32,392,6.08,400,3.268,434,4.129,874,4.648,1168,2.615,1196,8.609,1291,5.246,1292,5.765,1293,7.887,1294,7.887,1295,5.765]],["t/235",[4,0.322,9,1.446,10,0.619,38,1.707,43,4.719,53,2.432,58,1.573,83,1.388,115,3.899,130,1.257,131,2.722,169,3.573,181,1.959,294,0.615,301,2.405,309,0.437,336,3.083,367,3.406,391,2.188,406,2.492,413,5.831,426,3.669,818,2.583,849,2.801,946,4.627,1296,6.894,1297,6.109,1298,4.949,1299,6.444]],["t/237",[4,0.342,9,1.533,10,0.59,38,1.777,43,4.837,58,1.668,83,1.471,115,4.02,131,2.885,169,3.787,294,0.652,309,0.463,391,2.32,406,2.594,413,5.954,510,3.328,818,2.737,946,4.904,981,5.246,1177,3.391,1296,5.246,1297,6.359,1298,5.246,1299,4.904,1300,5.765,1301,5.765]],["t/239",[83,2.131,197,4.574,236,4.299,294,0.945,762,6.732,769,4.733,1302,5.633,1303,8.35,1304,8.35]],["t/241",[4,0.402,10,0.613,16,3.911,58,1.96,60,4.59,83,2.383,114,2.849,128,1.645,140,1.989,163,3.495,173,3.228,184,2.328,185,2.011,284,7.471,286,6.799,294,0.904,309,0.642,335,3.75,406,2.228,456,2.08,571,3.137,572,2.912,648,3.749,877,2.636,882,3.956,904,2.129,1208,3.585,1225,5.764,1226,6.166]],["t/243",[4,0.51,174,5.384,336,4.874,344,4.493,599,7.314,794,7.314,1015,5.058]],["t/245",[4,0.412,10,0.585,52,2.523,158,3.036,294,0.786,309,0.558,336,3.936,385,5.906,397,4.254,686,5.599,759,4.684,794,5.906,818,3.297,968,3.575,1305,8.923,1306,5.599,1307,6.944,1308,6.318,1309,6.944,1310,6.944,1311,6.944]],["t/247",[4,0.55,10,0.651,50,2.248,52,2.988,138,4.363,191,3.305,294,0.93,309,0.66,608,4.728,638,4.257,648,3.856,759,5.547,818,3.905,1308,7.483,1312,4.838,1313,5.58,1314,6.132,1315,6.132,1316,6.132,1317,4.945]],["t/250",[4,0.41,10,0.629,15,2,17,3.62,20,1.614,22,1.908,35,3.811,38,1.272,55,1.633,58,1.056,62,1.827,83,0.932,128,0.995,131,1.827,166,1.903,174,2.286,177,2.191,192,2.534,199,1.514,208,2.707,209,2.814,294,0.782,301,1.614,302,3.678,309,0.454,338,2.534,391,1.469,405,1.712,409,3.105,418,3.323,423,2.34,434,2.615,438,2.615,472,2.814,528,1.671,576,3.105,750,2.615,764,4.046,765,3.322,771,3.62,818,2.682,877,2.07,976,2.534,1149,5.14,1212,3.322,1291,3.322,1318,3.105,1319,3.105,1320,3.651,1321,3.322,1322,3.651,1323,3.651,1324,3.105,1325,3.651,1326,3.651,1327,5.649,1328,3.651,1329,3.651,1330,3.651,1331,3.651,1332,3.651,1333,5.649,1334,3.651,1335,3.651,1336,3.651,1337,3.651,1338,2.944,1339,3.322,1340,3.651,1341,3.651]],["t/252",[4,0.538,9,2.041,10,0.557,13,2.233,38,1.45,50,1.59,53,1.939,58,1.862,60,3.363,61,2.878,63,2.551,64,2.085,83,1.643,113,2.059,128,1.134,140,1.273,164,2.849,192,3.01,197,2.375,235,1.663,268,3.106,294,0.491,302,3.713,309,0.682,332,4.772,367,2.715,406,2.117,422,2.059,569,2.849,849,2.233,886,3.469,1007,2.925,1092,3.215,1289,2.849,1338,3.496,1342,4.336,1343,4.336,1344,4.336,1345,4.336,1346,4.336,1347,3.106,1348,4.336,1349,4.336,1350,4.336,1351,3.946,1352,4.336,1353,4.336,1354,4.336,1355,4.336]],["t/254",[4,0.29,9,1.299,10,0.59,20,2.161,30,2.413,38,1.101,50,1.791,52,1.776,58,1.414,130,1.9,169,4.614,193,3.623,197,2.677,210,2.875,250,3.21,294,0.553,302,2.137,309,0.392,352,2.381,418,5.601,530,4.296,724,4.447,735,2.413,755,2.593,779,5.663,792,4.214,818,3.335,1159,1.745,1168,1.62,1186,3.5,1267,3.767,1356,4.447,1357,4.887,1358,3.94,1359,4.887,1360,4.447,1361,4.887,1362,4.887,1363,4.447,1364,4.887,1365,4.447,1366,4.887,1367,4.887]],["t/256",[1,2.42,4,0.436,10,0.738,16,2.328,50,1.479,55,2.726,130,1.893,140,1.789,147,6.315,195,1.965,207,2.471,219,2.554,294,0.927,309,0.489,376,2.8,405,1.891,426,4.958,455,2.8,465,2.42,509,3.67,837,3.252,849,2.077,874,3.252,898,3.109,992,6.604,1000,5.381,1214,5.129,1368,8.191,1369,4.033,1370,6.096,1371,3.67,1372,4.033,1373,2.8,1374,2.373,1375,4.033]],["t/258",[4,0.502,49,4.641,332,6.282,336,4.803,635,7.709,636,6.532,1205,7.709,1376,7.709]],["t/260",[4,0.395,10,0.607,11,2.944,13,4.06,19,2.53,20,2.008,22,2.373,27,3.063,38,1.023,50,1.665,52,2.42,58,2.795,62,2.273,83,2.549,169,2.983,211,3.862,216,2.725,292,1.277,294,0.753,309,0.535,334,0.728,361,3.152,382,1.926,405,2.129,753,4.132,766,2.671,769,2.574,785,4.132,1000,2.983,1186,3.252,1247,3.367,1377,4.541,1378,4.541,1379,4.541,1380,4.541,1381,4.541,1382,4.541,1383,4.541,1384,4.541,1385,4.541,1386,3.252,1387,4.132,1388,4.541,1389,3.862]],["t/262",[4,0.397,10,0.674,11,2.963,13,3.451,16,3.869,29,2.963,38,1.51,58,1.939,83,2.474,293,6.466,294,0.758,309,0.538,382,1.939,405,3.143,974,4.403,1168,2.222,1390,4.969,1391,6.702,1392,6.702,1393,6.702]],["t/264",[4,0.432,10,0.662,13,2.651,14,2.508,30,2.542,50,1.887,58,1.489,61,2.302,83,1.86,151,2.051,199,3.509,235,1.975,292,2.731,293,3.817,294,0.825,309,0.413,311,5.559,336,2.918,391,2.071,422,2.444,778,4.685,849,2.651,886,2.775,968,2.651,1018,3.029,1241,4.917,1394,5.148,1395,4.379,1396,3.224,1397,3.969,1398,3.817,1399,3.969,1400,5.148,1401,3.299,1402,5.148]],["t/266",[4,0.335,10,0.629,14,4.897,57,1.774,58,2.574,62,3.894,81,3.463,83,1.986,195,2.754,292,1.589,294,0.88,309,0.454,382,1.635,391,3.58,417,3.204,568,4.191,638,3.924,1241,3.813,1396,3.539,1397,4.357,1398,4.191,1399,4.357,1403,5.652,1404,5.652,1405,5.652,1406,5.652,1407,5.652,1408,5.652]],["t/268",[4,0.432,8,4.675,10,0.604,14,4.486,38,1.643,55,3.262,58,2.664,63,4.291,83,1.862,259,3.508,294,0.825,309,0.586,391,2.935,1396,4.568,1397,5.624,1398,5.409]],["t/270",[4,0.375,9,2.234,10,0.619,14,4.594,15,3.47,58,2.431,62,3.17,165,3.881,195,3.086,202,5.669,292,1.781,294,0.717,309,0.509,365,3.801,968,3.262,1242,4.883,1396,6.289,1409,7.148,1410,5.388,1411,6.334]],["t/272",[4,0.278,10,0.579,13,2.414,14,3.321,23,2.45,27,3.163,38,1.056,55,3.048,58,2.55,83,2.05,165,5.401,182,2.255,195,2.284,202,3.163,235,3.382,259,2.255,292,1.318,294,0.771,309,0.376,334,0.752,391,1.886,404,4.731,405,2.199,568,3.476,597,3.476,645,4.266,836,3.988,849,2.414,867,3.005,889,3.614,1241,3.163,1395,3.988,1396,4.268,1397,5.255,1398,3.476,1399,3.614,1409,5.798,1412,4.688,1413,4.688,1414,4.688,1415,3.988,1416,4.688]],["t/274",[4,0.446,10,0.569,12,5.559,14,3.667,15,4.123,17,3.453,23,2.816,58,2.509,83,1.921,128,0.949,138,2.859,292,1.515,294,0.61,302,2.356,309,0.433,365,3.233,391,3.028,1214,4.713,1241,3.635,1242,6.687,1396,4.713,1397,4.154,1398,3.995,1399,4.154,1410,4.583,1415,4.583,1417,5.803,1418,6.849,1419,4.903,1420,4.903]],["t/276",[4,0.458,10,0.367,12,3.587,13,2.882,14,2.727,15,3.066,58,2.561,63,3.293,83,1.973,115,2.503,128,0.986,140,1.643,292,1.574,294,0.633,302,2.448,309,0.449,382,1.619,391,2.252,405,2.625,670,2.841,740,4.761,874,4.513,893,5.093,1214,4.839,1241,3.776,1242,4.315,1365,5.093,1395,4.761,1396,4.839,1399,4.315,1410,4.761,1415,4.761,1418,5.093,1419,5.093,1420,5.093,1421,5.597,1422,5.093]],["t/278",[4,0.363,10,0.484,14,4.298,30,2.005,38,1.381,50,2.247,58,2.135,83,1.564,85,2.389,86,1.702,151,1.618,168,1.837,199,2.541,202,2.74,210,2.389,270,2.488,292,2.075,294,0.835,309,0.492,347,3.213,382,1.175,419,7.763,422,1.929,441,2.189,541,2.389,849,2.091,877,2.302,984,2.74,995,2.909,1092,3.012,1136,5.577,1396,5.147,1409,8.431,1423,4.544,1424,4.062,1425,5.577,1426,6.129,1427,4.062,1428,3.696,1429,3.696,1430,3.696]],["t/280",[10,0.636,14,4.249,31,3.182,32,3.354,39,3.734,43,3.354,165,5.342,292,2.452,301,2.963,389,4.652,405,3.143,427,3.799,456,2.997,465,4.021,661,5.404,662,5.701,663,5.701,1190,4.969,1219,6.098,1431,6.702,1432,6.702]],["t/282",[4,0.398,9,1.452,10,0.684,20,1.546,58,1.58,68,2.443,86,1.465,140,2.23,203,2.057,244,2.974,254,3.5,259,1.681,292,0.983,294,0.86,295,2.427,309,0.54,382,2.732,391,2.197,406,1.15,417,4.307,427,1.982,572,2.189,577,1.982,764,5.904,788,3.181,902,1.282,984,2.358,1013,2.974,1159,1.249,1168,1.159,1175,2.819,1200,4.646,1208,2.695,1227,2.695,1433,8.833,1434,3.496,1435,2.819,1436,3.496,1437,3.496,1438,3.496,1439,3.496,1440,3.181,1441,3.496,1442,3.496,1443,3.496,1444,3.496,1445,2.974,1446,3.496,1447,3.496,1448,3.496,1449,3.496,1450,3.496,1451,3.496,1452,3.496,1453,3.496]],["t/284",[17,4.295,24,4.403,38,1.51,41,4.295,50,3.197,83,1.711,86,2.808,180,4.969,235,2.571,241,4.403,297,4.8,382,1.939,427,4.943,438,4.8,441,3.612,506,5.404,514,5.404,766,3.943,803,5.701,1162,4.521,1175,5.404,1186,4.8,1435,5.404,1445,5.701]],["t/286",[31,3.965,178,5.152,181,3.008,182,4.015,292,2.347,377,4.5,703,4.82,1390,6.191]],["t/288",[4,0.41,9,2.444,10,0.498,18,2.692,38,1.077,58,2.001,62,1.481,140,2.612,178,3.909,181,2.491,182,5.046,195,2.33,260,5.137,264,2.054,275,2.119,281,4.464,294,0.782,299,3.32,309,0.555,347,1.156,367,1.853,377,1.595,406,2.497,456,2.693,560,1.896,768,2.194,818,2.859,899,1.944,902,2.207,903,2.499,904,3.165,905,2.692,906,4.352,974,1.944,1015,3.542,1116,3.426,1177,3.542,1318,2.517,1454,6.915,1455,2.517,1456,4.783,1457,2.692,1458,2.959,1459,2.959,1460,2.517]],["t/290",[4,0.445,9,1.111,10,0.547,11,2.769,13,2.152,22,2.184,38,0.941,55,1.869,58,2.412,83,1.067,128,0.736,140,1.227,164,2.745,178,3.866,182,4.675,187,2.56,235,1.603,236,2.152,238,3.099,260,5.156,281,3.099,294,0.473,309,0.603,347,2.447,405,1.96,406,1.374,569,2.745,849,2.152,902,2.295,903,2.184,904,1.913,991,3.803,1214,6.26,1238,3.836,1461,4.179,1462,3.803,1463,4.179,1464,4.179,1465,4.179,1466,6.261,1467,3.803,1468,4.179,1469,6.261]],["t/292",[4,0.324,9,2.192,10,0.706,53,1.563,55,1.563,58,1.944,73,1.915,83,0.892,138,1.855,140,1.603,146,2.819,178,1.8,181,2.421,182,4.542,212,2.297,236,1.8,251,2.592,264,2.427,281,2.592,294,0.618,301,1.546,302,2.388,309,0.439,364,2.358,377,2.944,404,2.427,405,1.639,406,1.796,446,2.974,456,1.563,569,2.297,612,2.974,670,1.774,818,1.66,836,2.974,849,1.8,902,2.785,903,3.513,904,1.6,1116,4.814,1238,4.118,1276,2.974,1389,2.974,1455,2.974,1470,3.496,1471,3.496,1472,3.496,1473,5.462,1474,3.496,1475,3.496,1476,3.496,1477,3.496,1478,3.496,1479,3.496,1480,3.496,1481,3.496,1482,3.496,1483,3.496]],["t/294",[22,4.125,31,3.748,32,3.951,38,1.778,39,4.397,53,3.53,178,4.979,301,3.49,427,4.474,465,4.736,1025,7.182,1190,5.853]],["t/296",[4,0.461,9,1.503,10,0.511,58,1.635,60,2.954,83,1.986,115,2.528,128,0.996,130,2.057,158,2.472,163,2.472,185,3.365,186,4.557,236,2.91,294,0.88,309,0.625,390,4.048,401,3.813,571,3.813,600,3.096,648,2.651,683,4.557,769,3.204,1103,4.557,1159,2.019,1168,1.874,1228,4.557,1302,3.813,1484,5.652,1485,5.652,1486,5.652,1487,5.652,1488,4.808,1489,5.652]],["t/298",[8,5.371,10,0.472,38,1.139,69,2.432,83,1.291,128,0.891,130,2.23,138,2.684,158,2.212,161,5.593,185,3.113,197,2.771,200,3.899,251,3.75,275,3.623,302,3.665,376,3.511,382,1.463,465,3.035,573,6.55,624,3.75,646,6.757,647,4.302,648,2.372,649,4.078,769,2.867,867,3.242,877,2.867,878,4.602,882,4.302,1177,2.975,1279,4.302,1490,5.058,1491,5.058,1492,5.058,1493,5.058,1494,5.058,1495,5.058]],["t/300",[4,0.382,10,0.689,58,2.624,65,3.343,83,1.643,128,1.352,166,1.461,178,2.233,182,4.732,294,0.728,302,1.896,309,0.348,397,2.656,670,2.201,680,4.962,886,2.337,984,2.925,985,3.343,1039,4.919,1197,3.496,1198,3.343,1199,3.496,1238,2.656,1239,4.772,1423,3.215,1496,4.336,1497,4.336,1498,4.336,1499,6.436,1500,3.946,1501,3.946,1502,4.336,1503,4.336,1504,4.336,1505,4.336,1506,4.336,1507,4.336,1508,6.436,1509,4.336,1510,4.336,1511,4.336,1512,4.336,1513,4.336]],["t/302",[22,4.015,31,3.648,32,3.845,38,1.731,39,4.28,53,3.436,301,3.397,427,4.355,465,4.61,984,5.183,985,5.923,1028,6.991,1029,6.991,1190,5.697,1514,5.183]],["t/304",[4,0.481,10,0.71,31,2.851,52,2.946,55,2.685,58,1.737,60,5.137,61,2.685,212,3.945,292,2.279,294,0.917,309,0.651,609,4.842,984,4.051,1018,3.533,1038,7.926,1237,5.464,1247,4.453,1428,5.464]],["t/306",[4,0.407,10,0.704,55,3.96,58,1.985,60,5.123,212,4.507,294,1.109,309,0.551,405,3.218,465,4.117,1038,5.532,1238,4.203,1239,6.565,1515,6.861]],["t/308",[4,0.452,9,2.33,10,0.653,38,1.237,55,3.411,60,3.985,73,3.008,140,1.612,182,2.641,188,4.427,212,3.607,294,0.863,301,2.428,302,3.335,309,0.612,347,2.981,431,3.295,434,3.933,446,4.671,541,3.23,1038,4.427,1386,3.933,1387,4.996,1401,6.375,1455,4.671,1516,5.491,1517,4.427,1518,5.491]],["t/311",[10,0.654,83,1.816,85,4.186,199,4.135,264,4.939,397,4.359,416,6.987,636,5.485,1011,3.898,1338,5.737,1374,4.186,1390,5.276,1519,5.737,1520,7.115,1521,6.474,1522,6.474]],["t/313",[4,0.375,9,2.014,10,0.739,29,1.875,30,2.094,38,1.892,50,1.555,55,2.831,62,3.168,147,3.269,157,2.448,199,3.483,209,3.269,235,1.627,260,2.448,268,3.037,278,6.016,279,3.859,294,0.48,302,1.854,309,0.34,530,2.216,545,2.861,590,2.655,647,3.607,767,3.607,795,3.859,877,2.404,1002,2.448,1011,2.323,1289,2.786,1376,3.859,1522,3.859,1523,3.859,1524,5.385,1525,4.241,1526,6.892,1527,6.33,1528,4.241,1529,4.241,1530,3.607]],["t/315",[4,0.495,6,5.052,9,2.218,10,0.729,20,2.77,52,2.277,58,2.413,199,2.598,270,3.838,309,0.503,406,3.085,620,5.052,856,4.227,902,3.058,1159,2.98,1488,5.33,1531,7.591]],["t/317",[4,0.398,10,0.684,38,0.788,52,1.27,58,2.198,63,2.057,83,1.716,128,0.962,140,1.026,164,4.416,167,5.726,199,2.265,209,2.695,237,2.819,277,2.592,278,2.504,294,0.76,302,4.556,309,0.54,413,2.057,545,2.358,590,2.189,591,5.42,620,2.819,766,2.057,769,1.982,867,2.241,877,1.982,1159,3.121,1168,2.228,1289,3.588,1356,3.181,1532,2.974,1533,6.722,1534,6.722,1535,6.722,1536,6.722]],["t/319",[4,0.555,10,0.641,19,2.612,50,1.719,58,2.827,63,5.51,79,3.476,138,2.488,140,2.588,170,2.146,176,2.612,199,1.944,239,3.476,260,2.706,294,0.771,309,0.708,347,1.832,560,3.005,569,4.478,600,2.568,738,3.08,849,3.51,886,3.674,1011,2.568,1338,3.78,1517,5.496,1537,4.688,1538,6.816,1539,6.202,1540,4.688,1541,6.816]],["t/321",[4,0.369,7,3.346,8,2.659,9,2.209,10,0.709,35,2.799,128,0.731,138,2.202,140,2.194,168,1.877,185,1.795,195,2.021,199,2.582,236,2.136,270,2.542,294,0.846,309,0.5,336,2.352,347,2.434,406,1.365,408,3.529,431,2.49,528,4.076,608,3.199,641,2.972,735,2.049,860,3.529,886,2.236,902,1.521,904,1.899,974,2.726,1145,3.529,1157,3.776,1214,2.598,1239,3.077,1542,3.529,1543,4.149,1544,4.618,1545,3.529,1546,4.149,1547,6.228,1548,6.228,1549,6.228,1550,4.149,1551,4.149,1552,3.776,1553,4.149,1554,4.149]],["t/323",[4,0.4,10,0.755,30,1.737,41,2.254,55,1.573,57,1.104,69,1.691,86,1.474,128,0.62,138,1.866,139,2.608,140,1.032,196,2.03,198,3.931,199,2.275,219,1.474,221,2.992,227,3.931,238,2.608,294,0.398,309,0.441,338,2.442,379,2.836,386,2.992,397,2.155,450,2.712,456,1.573,459,2.519,489,2.373,510,2.03,669,2.836,756,2.608,766,2.069,849,1.811,1182,3.605,1196,2.992,1339,3.2,1401,2.254,1555,2.442,1556,5.488,1557,3.517,1558,3.517,1559,2.608,1560,3.517,1561,3.517,1562,3.517,1563,3.517,1564,3.517,1565,3.517,1566,3.517,1567,3.517,1568,3.2,1569,3.517,1570,3.517,1571,3.517,1572,3.517,1573,4.425,1574,3.2,1575,3.2,1576,3.517,1577,3.517,1578,3.517,1579,3.517,1580,3.517,1581,3.517,1582,2.836]],["t/325",[4,0.412,10,0.723,115,3.105,157,4.008,198,4.974,199,2.879,216,5.354,261,4.82,294,0.786,309,0.558,594,5.906,670,3.524,1039,4.45,1182,4.562,1347,4.974,1583,6.944,1584,4.974]],["t/327",[4,0.356,10,0.746,13,3.092,58,1.737,83,1.533,128,1.058,140,1.762,198,4.301,199,2.49,216,4.865,235,2.303,294,0.917,309,0.482,373,4.629,405,2.816,406,1.975,1182,3.945,1214,3.76,1585,5.464,1586,6.005,1587,6.005,1588,6.005,1589,6.005,1590,6.005]],["t/329",[4,0.388,10,0.711,35,4.418,83,1.672,138,3.475,198,4.691,199,2.716,207,5.263,216,5.155,294,0.741,298,6.927,309,0.526,397,4.013,594,5.571,1214,5.379,1264,5.571,1347,4.691,1371,5.96,1591,5.96]],["t/331",[4,0.455,10,0.504,50,2.817,83,1.961,124,4.811,176,4.28,193,5.697,756,7.052,1268,8.09,1390,5.697,1530,6.535,1592,7.683,1593,7.683]],["t/333",[17,3.453,83,1.375,124,4.713,128,0.949,140,1.582,199,2.234,259,4.171,262,3.635,302,4.106,309,0.433,368,4.154,382,2.177,417,3.055,530,2.816,685,3.859,756,3.995,769,3.055,829,4.903,877,3.055,889,4.154,995,3.859,1162,3.635,1189,4.583,1227,4.154,1233,3.995,1268,4.583,1302,3.635,1358,4.345,1594,5.388,1595,4.903,1596,3.741,1597,5.803,1598,4.903,1599,5.388,1600,5.388,1601,4.903,1602,5.388,1603,5.388,1604,5.388]],["t/335",[4,0.352,23,3.106,30,2.934,32,2.975,50,2.179,155,3.203,157,3.431,158,3.521,170,2.72,181,2.141,299,6.339,382,2.642,600,3.256,607,4.792,695,3.809,769,4.564,786,5.408,810,4.126,904,2.72,947,5.408,968,3.06,984,4.009,989,3.809,1023,5.408,1101,4.792,1605,5.943,1606,5.408,1607,5.943,1608,5.943,1609,5.055,1610,5.943]],["t/337",[4,0.335,9,2.069,10,0.722,55,2.528,124,4.872,158,2.472,170,2.587,235,2.168,373,4.357,406,2.559,472,4.357,530,2.954,545,3.813,591,4.557,600,3.096,735,2.791,741,4.808,818,2.684,1097,4.808,1228,4.557,1401,6.949,1514,3.813,1611,5.652,1612,5.652]],["t/339",[4,0.386,9,1.73,10,0.627,11,3.424,30,3.213,50,1.614,52,2.814,58,1.883,68,2.911,83,1.661,124,2.757,138,2.336,140,2.511,146,3.55,176,3.626,197,2.412,210,2.59,235,1.689,292,1.238,294,0.736,309,0.523,382,1.274,406,2.141,432,2.757,508,3.745,541,2.59,544,3.394,612,3.745,685,3.153,793,3.55,902,2.386,908,4.006,976,3.056,1018,2.59,1101,3.55,1159,2.325,1168,2.158,1186,3.153,1233,3.264,1247,3.264,1267,3.394,1609,3.745,1613,4.006,1614,6.508,1615,4.402]],["t/341",[4,0.384,135,8.109,136,3.671,140,1.901,170,2.965,264,4.496,294,0.965,336,3.671,364,4.369,382,2.467,401,5.752,485,5.509,510,3.739,867,4.151,989,4.151,1051,5.893,1101,5.222,1440,5.893,1457,5.893,1544,4.802,1595,5.893,1609,5.509,1616,6.476,1617,6.476]],["t/343",[4,0.544,10,0.746,50,2.201,138,3.186,140,2.38,147,4.629,294,0.917,309,0.482,347,2.347,648,2.816,886,4.37,920,5.464,1374,3.533,1618,8.108,1619,8.108,1620,6.005,1621,8.108,1622,6.005]],["t/345",[4,0.537,20,3.146,55,3.182,113,3.378,185,3.92,236,3.663,309,0.728,382,2.058,784,5.485,886,4.885,1531,6.474,1623,7.115,1624,7.115,1625,7.115,1626,7.115,1627,7.115,1628,7.115]],["t/347",[4,0.523,9,1.247,10,0.641,11,2.073,14,3.321,38,1.535,50,1.719,58,1.972,68,2.097,83,1.197,138,3.616,235,1.798,256,4.01,259,2.255,294,0.53,309,0.547,382,1.972,391,1.886,404,4.731,405,3.196,431,2.813,565,7.109,585,6.315,586,6.315,587,6.475,648,2.199,904,2.146,992,5.496,1039,3.005,1182,3.08,1183,4.266,1184,4.266,1185,4.266,1629,4.688]],["t/349",[4,0.407,38,1.546,83,1.751,114,5.424,138,3.64,158,3,170,3.141,175,4.914,254,4.397,259,3.3,294,0.776,359,4.507,364,4.628,367,4.296,428,4.036,441,3.698,682,6.243,849,3.533,872,5.836,1630,6.861,1631,5.836,1632,6.861,1633,6.243]],["t/351",[52,2.618,166,2.427,167,5.089,277,5.341,405,3.378,441,3.883,586,5.16,671,6.128,857,6.555,867,5.854,927,6.555,929,6.128,1634,7.204,1635,7.204,1636,7.204,1637,7.204,1638,7.204,1639,7.204]],["t/353",[4,0.352,9,1.58,10,0.708,11,3.56,52,2.16,58,2.329,60,4.208,128,1.419,166,2.713,187,4.933,251,4.407,309,0.646,405,3.776,456,2.658,569,3.904,683,4.792,837,4.792,904,3.686,1193,4.126,1319,5.055,1640,8.052]],["t/355",[4,0.322,9,1.446,10,0.745,52,1.977,55,2.432,60,4.927,61,4.216,166,2.552,187,3.332,287,5.841,294,0.857,309,0.608,405,4.088,456,2.432,640,4.627,683,4.386,1193,3.776,1276,4.627,1319,4.627,1641,7.576,1642,5.439]],["t/357",[9,1.613,11,2.683,23,3.171,32,4.087,33,3.889,41,3.889,132,4.212,155,3.271,166,2.751,167,3.38,181,2.186,195,3.978,695,3.889,703,3.503,770,5.522,771,5.915,810,4.212,830,4.093,867,3.889,953,4.893,968,3.124,1108,4.212,1363,5.522,1643,6.068,1644,6.068,1645,6.068,1646,6.068,1647,5.522,1648,6.068,1649,6.068]],["t/359",[4,0.533,9,1.299,10,0.539,14,3.422,38,1.582,53,2.185,54,3.132,58,2.754,62,4.115,83,1.793,138,2.593,292,1.374,294,0.553,309,0.66,377,2.634,391,1.966,428,4.132,818,3.904,902,3.014,952,3.623,1000,3.21,1396,3.06,1398,3.623,1401,4.501,1422,4.447,1552,4.447,1650,4.887,1651,4.887,1652,4.887,1653,4.887,1654,4.887,1655,4.887,1656,4.887,1657,4.887,1658,4.887,1659,4.887]],["t/361",[57,2.87,290,4.514,441,4.928]],["t/363",[4,0.308,10,0.664,61,3.281,69,2.498,83,1.872,130,1.696,140,2.969,166,3.283,235,1.992,269,3.412,294,0.588,302,4.04,309,0.417,334,0.833,454,5.147,904,2.378,1021,3.117,1043,3.606,1045,3.182,1660,2.8,1661,2.999,1662,5.194,1663,5.194,1664,5.194,1665,3.412,1666,3.852,1667,3.852,1668,3.852]],["t/365",[4,0.424,10,0.656,61,3.199,69,2.411,83,1.826,130,1.654,140,2.935,166,3.24,168,2.268,235,1.923,269,3.294,294,0.567,309,0.403,334,0.804,347,3.554,421,3.294,454,5.066,1021,3.009,1043,3.481,1045,4.383,1046,3.294,1660,2.702,1661,2.894,1665,3.294,1666,3.718,1667,3.718,1668,3.718,1669,5.014,1670,5.014,1671,5.014]],["t/367",[4,0.424,10,0.656,61,3.199,69,2.411,83,1.826,130,1.654,140,2.935,166,3.24,168,4.114,235,1.923,269,3.294,294,0.567,309,0.403,334,0.804,347,1.96,421,3.294,454,5.066,1021,3.009,1043,3.481,1045,4.383,1046,3.294,1660,2.702,1661,2.894,1665,3.294,1666,3.718,1667,3.718,1668,3.718,1672,5.014,1673,5.014,1674,5.014]],["t/369",[4,0.395,10,0.634,61,2.978,69,3.202,83,1.7,130,1.539,140,3.006,166,3.115,168,3.012,235,1.742,269,2.983,294,0.514,302,2.912,309,0.365,334,0.728,421,2.983,454,4.838,1000,2.983,1021,2.725,1043,3.152,1045,4.079,1046,2.983,1159,2.378,1168,1.505,1517,7.002,1573,3.661,1660,2.447,1661,2.621,1665,2.983,1666,3.367,1667,3.367,1668,3.367,1675,4.541,1676,4.541,1677,4.541,1678,4.541]],["t/371",[4,0.382,10,0.624,61,2.878,69,2.085,83,1.643,130,1.488,140,3.03,166,3.056,168,3.842,235,1.663,269,2.849,294,0.491,302,3.967,309,0.348,334,0.696,421,2.849,444,3.946,454,4.731,1021,2.602,1043,3.01,1045,3.943,1046,2.849,1159,1.549,1517,3.496,1521,3.946,1539,7.727,1660,2.337,1661,2.503,1665,2.849,1666,3.215,1667,3.215,1668,3.215,1679,6.436,1680,4.336,1681,4.336,1682,4.336,1683,4.336]],["t/373",[4,0.421,10,0.654,61,3.18,69,2.39,83,1.815,130,1.643,140,2.926,166,3.229,235,1.907,269,3.266,294,0.562,302,4.191,309,0.399,334,0.797,421,3.266,454,5.046,1021,2.983,1043,3.451,1045,4.356,1046,3.266,1159,1.775,1660,2.679,1661,2.869,1665,3.266,1666,3.686,1667,3.686,1668,3.686,1684,4.971,1685,4.971,1686,4.971]],["t/375",[4,0.388,9,1.406,10,0.716,19,1.868,83,1.349,140,2.52,166,2.892,180,2.487,264,2.328,294,0.379,309,0.269,334,0.538,382,2.149,383,4.811,387,4.543,401,2.262,406,1.739,454,4.502,510,1.936,641,3.787,696,2.328,746,2.055,889,2.586,1000,2.203,1011,2.896,1021,3.172,1045,2.055,1159,2.653,1168,2.679,1514,2.262,1519,2.704,1544,3.92,1573,2.704,1660,1.808,1661,1.936,1665,3.473,1687,4.687,1688,3.052,1689,3.92,1690,3.052,1691,3.052,1692,4.497,1693,3.354,1694,2.853,1695,3.052,1696,3.354,1697,4.811,1698,3.354,1699,3.052,1700,4.263,1701,2.586]],["t/377",[4,0.276,10,0.613,19,2.591,69,3.258,83,1.729,140,1.989,166,2.283,180,3.448,264,3.228,294,0.526,309,0.373,334,0.746,382,2.541,387,5.549,401,3.137,454,4.453,510,2.685,641,4.853,696,3.228,746,2.849,889,3.585,1000,3.055,1011,3.712,1159,2.42,1168,1.542,1514,3.137,1519,3.75,1544,5.024,1660,2.507,1661,2.685,1687,5.725,1688,4.232,1689,5.024,1690,4.232,1691,4.232,1692,5.764,1697,6.166,1699,4.232,1702,4.651,1703,4.651]],["t/379",[4,0.449,9,2.318,10,0.705,55,2.432,69,2.616,166,3.176,168,2.461,294,0.615,309,0.437,334,0.873,387,6.052,406,1.789,454,5.252,510,3.14,648,3.553,746,3.332,1045,3.332,1660,2.932,1661,3.14,1687,6.244,1704,5.841,1705,7.576,1706,5.439]],["t/381",[4,0.443,9,1.419,10,0.702,55,2.387,69,2.567,166,3.151,168,2.415,294,0.604,309,0.429,334,0.856,387,5.991,406,1.756,454,5.21,510,3.082,528,3.423,641,5.356,648,3.507,746,3.271,1660,2.877,1661,3.082,1687,6.182,1694,4.541,1704,5.765,1707,7.478,1708,5.339]],["t/383",[4,0.449,10,0.705,55,2.432,69,2.616,166,2.937,168,2.461,294,0.615,309,0.437,334,0.873,387,6.052,406,1.789,454,5.252,510,3.14,648,3.553,746,3.332,768,5.618,902,3.196,1045,3.332,1660,2.932,1661,3.14,1687,6.244,1709,4.949,1710,7.576,1711,5.439]],["t/385",[4,0.364,10,0.609,69,3.955,166,2.066,294,0.694,309,0.492,334,0.984,387,6.441,406,2.017,454,5.169,510,3.54,641,5.89,648,3.856,746,3.757,768,6.098,902,2.248,1660,3.305,1661,3.54,1687,6.646,1709,5.58,1712,8.224]],["t/387",[4,0.44,10,0.686,69,4.13,83,1.896,115,4.165,166,3.521,184,4.298,235,2.029,294,0.598,309,0.425,334,1.192,454,5.189,1045,3.241,1660,2.851,1661,3.053,1689,3.922,1713,5.969,1714,5.29,1715,4.499,1716,5.29,1717,5.29]],["t/389",[4,0.443,10,0.687,69,4.151,83,1.909,115,3.344,166,3.53,184,3.743,187,3.271,235,2.048,294,0.604,309,0.429,334,1.2,454,5.21,1045,3.271,1460,4.541,1660,2.877,1661,3.082,1689,3.958,1713,5.994,1715,4.541,1718,5.339,1719,5.339,1720,5.339]],["t/391",[1,2.277,4,0.42,10,0.678,19,2.114,69,3.817,83,1.485,115,3.828,130,0.877,166,3.705,167,4.422,184,3.543,187,2.325,241,2.493,294,0.429,309,0.305,334,0.934,434,5.07,454,4.769,1045,3.565,1111,2.013,1171,3.453,1281,5.51,1460,3.228,1660,2.045,1661,2.19,1689,2.814,1713,5.486,1715,3.228,1721,3.453,1722,7.079,1723,3.795,1724,5.82,1725,2.925]],["t/393",[1,6.35,4,0.265,10,0.631,19,4.353,38,1.483,69,2.15,130,1.806,159,3.605,166,2.218,185,3.728,199,2.729,233,3.202,309,0.359,334,0.717,382,1.904,417,3.732,454,3.667,456,1.999,541,3.872,867,2.865,948,3.103,1159,1.597,1168,2.59,1284,5.998,1660,2.41,1726,4.068,1727,6.583,1728,6.583,1729,4.47,1730,4.47]],["t/395",[57,2.87,290,4.514,441,4.928]],["t/397",[10,0.614,44,5.77,128,1.319,130,2.163,181,2.696,196,5.401,219,3.92,334,1.201,345,5.996,347,2.925,371,5.77,1731,5.048]],["t/399",[10,0.532,128,1.43,130,2.273,219,4.12,334,1.302,337,6.634,371,7.582]],["t/401",[57,2.87,290,4.514,441,4.928]],["t/403",[4,0.393,10,0.671,44,5.107,128,1.167,130,2.001,181,2.387,196,4.996,219,3.626,294,0.75,309,0.532,334,1.063,345,5.547,347,2.589,372,5.547,1159,2.366,1731,4.469,1732,5.342,1733,6.625,1734,6.028]],["t/405",[4,0.427,10,0.658,128,1.269,130,2.112,219,3.827,294,0.815,309,0.578,334,1.156,337,4.859,372,6.428,1159,2.573,1168,2.388,1732,5.808,1735,7.204]],["t/407",[4,0.367,10,0.653,44,4.778,128,1.092,130,1.915,168,2.804,172,5.272,181,2.233,192,4.303,196,4.781,219,3.47,294,0.701,309,0.498,310,4.072,334,0.994,345,5.308,372,5.308,826,5.64,1159,2.214,1689,4.596,1731,4.181,1732,4.998,1734,5.64,1736,5.64,1737,6.198]],["t/409",[4,0.427,10,0.658,130,1.665,183,4.511,219,3.827,294,0.815,309,0.578,334,1.156,372,5.854,638,5.001,1159,2.573,1168,2.388,1732,5.808,1736,6.555,1738,7.204,1739,7.204]],["t/411",[57,2.87,290,4.514,441,4.928]],["t/413",[4,0.412,10,0.585,38,1.564,57,2.179,83,1.772,140,2.038,199,2.879,235,2.663,292,1.952,294,0.786,304,5.314,309,0.558,334,1.114,578,3.868,1173,5.906,1740,6.318,1741,6.944,1742,6.318,1743,4.82,1744,6.944]],["t/415",[130,1.93,304,4.5,473,5.633,545,5.633,670,4.238,974,5.485,1155,7.102,1742,7.598,1745,7.598]],["t/417",[4,0.455,10,0.624,57,2.411,294,0.869,304,5.126,309,0.617,473,5.183,578,4.28,670,3.9,1313,6.991,1743,5.333,1746,7.683,1747,7.683]],["t/419",[4,0.455,10,0.624,57,2.411,191,4.141,294,0.869,304,5.126,309,0.617,473,5.183,578,4.28,670,3.9,1743,5.333,1748,7.683,1749,7.683]],["t/421",[128,1.515,292,2.417,304,5.488,968,4.427,1015,5.058,1279,7.314]],["t/423",[128,1.515,292,2.417,304,5.488,600,4.71,1015,5.058,1523,7.824]],["t/425",[128,1.515,268,6.159,292,2.417,304,5.488,600,4.71,1015,5.058]],["t/427",[4,0.412,9,1.846,10,0.585,57,2.179,128,1.223,292,1.952,294,0.786,304,5.314,309,0.558,578,3.868,600,3.804,902,2.546,1015,5.249,1524,5.906,1743,4.82,1750,6.318,1751,6.318,1752,6.944,1753,5.906]],["t/429",[4,0.417,10,0.651,57,2.206,128,1.238,292,2.528,294,0.795,304,5.344,309,0.564,578,3.915,600,3.85,902,2.577,1015,4.135,1524,5.978,1743,4.879,1750,6.395,1753,5.978,1754,5.978]],["t/431",[4,0.417,9,1.869,10,0.651,57,2.206,128,1.238,292,2.528,294,0.795,304,5.344,309,0.564,578,3.915,600,3.85,1015,4.135,1743,4.879,1751,6.395,1753,5.978,1754,5.978,1755,7.028]],["t/433",[4,0.422,10,0.654,57,2.233,128,1.254,292,2.548,294,0.805,304,5.375,309,0.571,578,3.964,600,3.898,1015,4.186,1743,4.939,1754,6.052,1756,7.115,1757,7.115,1758,6.474]],["t/435",[4,0.438,10,0.609,48,6.723,57,2.319,128,1.302,169,4.853,294,0.836,301,3.267,304,3.982,309,0.593,530,3.861,578,4.116,673,4.984,1239,5.478,1743,5.129,1759,5.478,1760,7.388]],["t/437",[57,2.87,290,4.514,441,4.928]],["t/439",[87,5.384,151,3.426,292,2.417,334,1.379,577,4.874,1761,7.824,1762,7.824]],["t/441",[34,5.082,87,5.082,130,1.876,151,3.233,292,2.281,334,1.302,577,4.6,1763,8.949,1764,8.365]],["t/443",[1,1.766,4,0.282,10,0.784,52,1.731,57,0.924,61,1.316,87,3.757,113,2.849,130,0.68,151,1.173,166,0.992,181,2.484,196,1.699,292,0.827,294,0.539,309,0.236,334,0.472,365,4.137,382,0.851,528,1.347,577,1.669,598,2.269,648,1.38,771,3.053,784,2.269,868,2.678,1765,4.763,1766,2.943,1767,1.934,1768,4.763,1769,2.943,1770,2.943,1771,2.943,1772,2.943,1773,2.373,1774,4.763,1775,4.763,1776,4.763,1777,2.678,1778,4.763,1779,4.763,1780,2.504,1781,2.943,1782,2.943]],["t/445",[87,4.811,128,1.354,151,3.061,201,4.015,334,1.233,530,4.015,771,6.095,1401,4.924,1773,6.195,1783,6.991,1784,8.787,1785,5.697]],["t/447",[87,4.876,151,3.102,201,4.069,301,3.443,334,1.249,530,4.069,771,6.146,1401,4.99,1773,6.278,1784,8.839,1785,5.774]],["t/449",[87,5.229,151,3.327,201,4.363,301,3.692,334,1.34,530,4.363,771,6.412,1773,6.732]],["t/451",[87,6.32,128,1.493,151,3.376,334,1.359,1761,7.709,1762,7.709,1786,6.282]],["t/453",[87,6.265,151,3.327,334,1.34,406,2.746,1786,6.191,1787,10.005,1788,8.35]],["t/455",[87,6.265,128,1.471,130,1.93,151,3.327,334,1.34,1373,5.796,1763,7.598,1764,7.102]],["t/457",[4,0.384,10,0.709,57,2.033,61,2.896,87,5.97,128,1.141,130,1.497,151,2.58,292,1.821,294,0.965,309,0.52,334,1.039,372,4.151,904,2.965,1373,4.496,1764,5.509,1789,6.476,1790,6.476,1791,6.476,1792,6.476,1793,6.476]],["t/459",[87,5.955,128,1.354,130,2.198,151,3.061,334,1.233,771,6.095,1373,5.333,1777,8.654,1780,8.09,1794,7.683]],["t/461",[57,2.512,75,5.257,150,6.169,194,6.169,196,4.619,290,3.951,337,5.398,670,4.062,933,7.282,1002,4.619,1389,6.807,1795,6.807]],["t/463",[4,0.352,10,0.75,57,1.865,128,1.047,130,1.374,140,2.873,194,7.04,196,3.431,219,2.49,294,0.672,309,0.477,334,0.953,382,1.719,973,5.97,1795,5.055,1796,5.943,1797,5.943,1798,6.849,1799,5.408]],["t/465",[4,0.355,9,1.356,10,0.772,38,0.526,57,1.6,126,1.801,128,0.412,140,2.374,181,1.418,194,5.149,219,2.798,288,3.173,294,0.677,309,0.48,334,0.375,337,1.576,382,1.475,391,1.583,406,0.768,414,1.801,465,1.402,473,2.655,545,1.576,771,4.64,973,2.918,1002,1.348,1159,1.406,1168,1.305,1241,2.655,1299,3.348,1555,2.732,1573,3.173,1695,3.581,1700,1.884,1701,3.034,1721,2.126,1780,3.348,1795,4.337,1798,3.348,1800,3.935,1801,3.935,1802,2.336,1803,2.336,1804,2.336,1805,1.884,1806,1.987,1807,2.336,1808,1.987,1809,2.336,1810,2.336,1811,3.935,1812,3.935,1813,4.337,1814,3.935,1815,5.099]],["t/467",[0,5.398,4,0.474,10,0.525,50,2.934,86,3.353,157,4.619,344,4.182,524,4.802,562,4.619,727,5.398,997,5.011,1816,5.732]],["t/469",[166,2.941,465,5.237,562,5.038,1660,4.704,1817,8.728,1818,8.728]],["t/471",[201,4.301,334,1.32,562,4.751,572,5.154,648,4.651,861,6.357,1819,8.437]],["t/473",[4,0.349,14,2.866,27,3.968,38,1.325,58,1.702,130,1.36,166,1.982,174,3.684,183,5.007,292,1.654,309,0.642,336,3.335,576,5.004,637,5.004,750,4.213,769,5.525,899,3.864,984,3.968,985,4.535,1011,3.222,1217,5.353,1423,4.362,1425,5.353,1514,3.968,1613,5.353,1808,5.004,1820,5.004,1821,4.535,1822,5.882,1823,5.882,1824,5.882,1825,7.996]],["t/475",[57,2.87,290,4.514,441,4.928]],["t/478",[4,0.393,10,0.633,29,2.929,38,1.492,130,2.001,294,0.979,309,0.532,334,1.063,352,4.696,413,3.897,539,4.599,735,3.271,736,3.363,755,3.515,1159,2.366,1168,2.196,1170,3.033,1826,6.028,1827,3.462,1828,6.625,1829,6.625]],["t/480",[4,0.402,10,0.64,38,1.527,130,2.031,294,0.994,309,0.544,334,1.088,352,4.749,735,3.348,736,3.442,755,3.598,1159,2.422,1168,2.248,1170,3.104,1827,3.543,1830,6.781,1831,6.781,1832,6.781,1833,6.781]],["t/482",[4,0.375,10,0.619,29,2.801,38,1.427,128,1.116,130,1.942,294,0.951,309,0.509,334,1.016,352,4.594,528,2.899,530,3.31,735,3.127,736,3.215,755,3.361,1159,2.262,1168,2.1,1170,2.899,1767,4.161,1826,5.764,1827,3.31,1834,4.397,1835,4.397,1836,6.334,1837,6.334]],["t/484",[4,0.402,10,0.64,29,2.998,38,1.527,130,2.031,294,0.994,309,0.544,334,1.088,352,4.749,735,3.348,736,3.442,755,3.598,1159,2.422,1168,2.248,1170,3.104,1827,3.543,1838,6.781,1839,6.781,1840,6.781]],["t/486",[4,0.402,10,0.64,29,2.998,38,1.527,130,2.031,294,0.994,309,0.544,334,1.088,352,4.749,735,3.348,736,3.442,755,3.598,1159,2.422,1168,2.248,1170,3.104,1827,3.543,1841,6.781,1842,6.781,1843,6.781]],["t/488",[4,0.375,10,0.619,29,2.801,38,1.427,128,1.116,130,1.942,294,0.951,309,0.509,334,1.016,352,4.594,528,2.899,530,3.31,735,3.127,736,3.215,755,3.361,1159,2.262,1167,5.764,1168,2.1,1170,2.899,1767,4.161,1827,3.31,1834,4.397,1835,4.397,1844,6.334,1845,6.334]],["t/490",[4,0.375,10,0.619,29,2.801,38,1.427,128,1.116,130,1.942,294,0.951,309,0.509,334,1.016,352,4.594,528,2.899,530,3.31,735,3.127,736,3.215,755,3.361,1159,2.262,1168,2.1,1170,2.899,1767,4.161,1827,3.31,1834,4.397,1835,4.397,1846,6.334,1847,6.334,1848,6.334]],["t/492",[4,0.356,10,0.602,29,2.655,38,1.353,46,4.629,128,1.058,130,1.874,140,1.762,181,2.163,294,0.917,309,0.482,334,0.963,352,4.789,528,2.749,530,3.138,735,2.965,736,3.048,755,3.186,790,4.453,1159,2.145,1168,1.991,1170,2.749,1767,3.945,1827,3.138,1834,4.169,1835,4.169,1849,6.005,1850,6.005,1851,6.005]],["t/494",[4,0.38,10,0.622,29,2.832,38,1.443,46,4.937,130,1.957,140,1.88,181,2.307,294,0.958,309,0.514,334,1.027,352,4.914,672,4.446,735,3.162,736,3.251,755,3.398,790,4.749,1168,2.123,1170,2.932,1827,3.347,1852,6.405,1853,6.405,1854,6.405]],["t/496",[4,0.402,10,0.64,29,2.998,38,1.527,130,2.031,294,0.994,309,0.544,334,1.088,352,4.749,735,3.348,736,3.442,755,3.598,1159,2.422,1168,2.248,1170,3.104,1827,3.543,1855,6.781,1856,6.781,1857,6.781]],["t/498",[4,0.375,10,0.619,29,2.801,38,1.427,128,1.116,130,1.942,294,0.951,309,0.509,334,1.016,352,4.594,528,2.899,530,3.31,735,3.127,736,3.215,755,3.361,1159,2.262,1168,2.1,1170,2.899,1767,4.161,1827,3.31,1834,4.397,1835,4.397,1858,6.334,1859,6.334,1860,6.334]],["t/500",[4,0.375,10,0.619,29,2.801,38,1.427,128,1.116,130,1.942,294,0.951,309,0.509,334,1.016,352,4.594,528,2.899,530,3.31,735,3.127,736,3.215,755,3.361,1159,2.262,1168,2.1,1170,2.899,1767,4.161,1827,3.31,1834,4.397,1835,4.397,1861,6.334,1862,6.334,1863,6.334]],["t/502",[4,0.375,10,0.619,29,2.801,38,1.427,128,1.116,130,1.942,294,0.951,309,0.509,334,1.016,352,4.594,528,2.899,530,3.31,735,3.127,736,3.215,755,3.361,1159,2.262,1168,2.1,1170,2.899,1767,4.161,1827,3.31,1834,4.397,1835,4.397,1864,6.334,1865,6.334,1866,5.764]],["t/504",[4,0.375,10,0.619,29,2.801,38,1.427,128,1.116,130,1.942,294,0.951,309,0.509,334,1.016,352,4.594,528,2.899,530,3.31,735,3.127,736,3.215,755,3.361,1159,2.262,1168,2.1,1170,2.899,1767,4.161,1827,3.31,1834,4.397,1835,4.397,1867,6.334,1868,6.334,1869,6.334]],["t/506",[4,0.402,10,0.64,29,2.998,38,1.527,130,2.031,294,0.994,309,0.544,334,1.088,352,4.749,735,3.348,736,3.442,755,3.598,1159,2.422,1168,2.248,1170,3.104,1827,3.543,1870,6.17,1871,6.781,1872,6.781]],["t/508",[4,0.402,10,0.64,29,2.998,38,1.527,130,2.031,294,0.994,309,0.544,334,1.088,352,4.749,735,3.348,736,3.442,755,3.598,1159,2.422,1168,2.248,1170,3.104,1827,3.543,1870,6.17,1873,6.781,1874,6.781]],["t/510",[4,0.402,10,0.64,29,2.998,38,1.527,130,2.031,294,0.994,309,0.544,334,1.088,352,4.749,735,3.348,736,3.442,755,3.598,1159,2.422,1168,2.248,1170,3.104,1827,3.543,1866,6.17,1875,6.781,1876,6.781]],["t/513",[4,0.352,9,1.58,10,0.599,38,1.339,128,1.047,130,1.861,168,3.643,181,2.141,191,3.203,219,2.49,294,0.672,301,2.628,309,0.477,334,0.953,347,3.147,352,4.449,735,2.934,736,3.016,899,3.904,1170,2.72,1827,3.106,1877,4.792,1878,4.582,1879,4.257,1880,4.257,1881,4.407,1882,8.052,1883,5.943,1884,5.943]],["t/515",[4,0.352,10,0.599,38,1.339,128,1.047,130,1.861,168,3.643,181,2.141,191,3.203,219,2.49,294,0.672,301,2.628,309,0.477,334,0.953,347,3.147,352,4.449,735,2.934,736,3.016,899,3.904,1170,2.72,1827,3.106,1877,4.792,1878,4.582,1879,4.257,1880,4.257,1881,4.407,1885,4.257,1886,8.052,1887,5.943,1888,5.943]],["t/517",[4,0.364,10,0.54,38,1.381,128,1.08,130,1.901,168,4.197,181,2.209,191,3.305,219,2.569,294,0.694,301,2.712,309,0.492,334,0.984,347,2.397,352,4.52,735,3.028,736,3.113,899,4.029,1170,2.807,1827,3.205,1877,4.945,1878,4.728,1879,4.392,1880,4.392,1881,4.547,1889,6.132,1890,6.132,1891,6.132]],["t/519",[4,0.364,10,0.54,38,1.381,128,1.08,130,1.901,168,4.197,181,2.209,191,3.305,219,2.569,294,0.694,301,2.712,309,0.492,334,0.984,347,2.397,352,4.52,735,3.028,736,3.113,899,4.029,1170,2.807,1827,3.205,1877,4.945,1878,4.728,1879,4.392,1880,4.392,1881,4.547,1892,5.58,1893,6.132,1894,6.132]],["t/521",[4,0.384,10,0.425,38,1.459,128,1.141,130,1.971,168,3.858,181,2.333,191,3.491,219,2.713,301,2.864,309,0.52,334,1.039,347,2.531,352,4.645,735,3.198,736,3.287,899,4.255,1878,4.993,1879,4.639,1880,4.639,1881,4.802,1895,6.476,1896,6.476,1897,6.476,1898,6.476]],["t/524",[4,0.412,10,0.456,50,2.546,128,1.223,294,0.786,307,5.599,309,0.558,530,3.629,549,6.318,736,3.524,737,6.318,769,3.936,890,7.194,1042,5.906,1126,5.149,1170,3.178,1827,3.629,1899,6.944,1900,6.944,1901,6.318,1902,6.318,1903,6.944]],["t/526",[43,3.845,68,3.436,148,4.435,400,4.355,506,6.195,890,6.195,1514,5.183,1904,6.991,1905,5.183,1906,7.332,1907,7.683,1908,7.683,1909,4.924,1910,7.683]],["t/528",[10,0.686,43,2.885,68,2.578,136,4.471,219,3.304,334,0.925,345,3.695,672,4.002,673,3.889,690,3.61,1162,3.889,1584,5.649,1885,4.129,1905,6.828,1906,4.444,1909,3.695,1911,7.176,1912,6.359,1913,7.176,1914,4.444,1915,4.275,1916,4.129,1917,4.275,1918,4.275,1919,4.275]],["t/530",[4,0.219,10,0.7,43,1.851,57,1.161,68,3.784,128,0.651,136,3.234,149,2.567,166,1.246,219,2.39,294,0.957,295,2.567,309,0.297,334,0.593,345,3.656,672,2.567,673,2.494,690,2.315,750,2.648,856,2.494,997,2.315,1159,2.037,1162,2.494,1168,1.891,1170,1.692,1584,4.086,1759,4.23,1885,2.648,1905,6.031,1906,6.036,1909,2.37,1911,7.125,1912,6.313,1913,5.191,1914,2.851,1915,2.742,1916,2.648,1917,2.742,1918,2.742,1919,2.742,1920,2.742,1921,5.616,1922,3.145,1923,2.981,1924,3.364,1925,3.364,1926,3.364,1927,2.981,1928,3.145,1929,3.145,1930,3.145]],["t/532",[43,3.897,68,3.482,207,4.77,377,5.169,400,4.414,656,5.577,1018,5.641,1904,7.085,1905,5.253,1920,5.774,1931,7.787,1932,7.787]],["t/534",[10,0.686,43,3.17,68,2.833,136,3.591,219,3.52,334,1.016,345,4.06,672,4.397,673,4.273,690,3.967,1162,4.273,1584,4.537,1885,4.537,1905,6.361,1909,4.06,1912,5.107,1914,4.883,1915,4.697,1916,4.537,1917,4.697,1918,4.697,1919,4.697,1933,7.646]],["t/536",[4,0.242,10,0.699,43,2.047,57,1.284,68,3.958,128,0.721,136,2.319,149,2.84,166,1.378,219,2.581,294,0.933,295,2.84,309,0.328,334,0.656,345,3.949,672,2.84,673,2.759,690,2.561,750,2.93,856,2.759,997,2.561,1159,2.201,1162,2.759,1168,2.043,1170,1.872,1584,2.93,1759,4.568,1885,2.93,1905,5.565,1909,2.622,1912,5.976,1914,3.153,1915,3.033,1916,2.93,1917,3.033,1918,3.033,1919,3.033,1920,3.033,1921,5.976,1922,3.479,1923,3.298,1927,3.298,1928,3.479,1929,3.479,1930,3.479,1933,7.506,1934,4.09,1935,4.09]],["t/538",[43,3.897,52,2.83,138,4.131,157,4.495,167,4.338,219,3.262,423,4.99,431,4.672,898,6.003,1067,7.085,1905,5.253,1909,4.99,1936,8.157]],["t/540",[10,0.689,22,2.816,43,2.697,68,2.41,128,0.949,130,1.246,136,4.267,219,3.934,334,0.864,345,3.453,672,3.741,673,3.635,690,3.374,1015,3.17,1429,4.903,1584,5.391,1885,3.859,1905,5.851,1906,4.154,1909,4.824,1914,4.154,1917,3.995,1918,3.995,1919,3.995,1920,3.995,1936,6.402,1937,6.849,1938,5.388,1939,4.903,1940,4.903,1941,4.345]],["t/542",[4,0.328,10,0.714,43,1.782,57,1.118,68,3.718,128,0.627,136,3.141,166,1.2,216,2.136,219,2.849,233,2.55,294,0.996,295,2.472,309,0.286,334,0.571,672,2.472,673,2.402,690,2.23,750,2.55,856,2.402,997,2.23,1159,1.979,1168,1.837,1170,1.63,1584,3.968,1759,4.108,1885,2.55,1905,4.588,1906,5.916,1909,3.551,1917,2.64,1918,2.64,1919,2.64,1920,2.64,1921,5.484,1922,3.029,1923,2.871,1924,3.24,1925,3.24,1926,3.24,1927,2.871,1928,3.029,1929,3.029,1930,3.029,1936,5.785,1937,6.188,1939,3.24,1940,6.983,1941,6.187,1942,3.24,1943,3.561]],["t/545",[4,0.259,10,0.746,12,2.8,14,2.129,38,0.984,43,2.187,57,2.031,67,2.947,68,2.894,128,0.77,136,2.477,140,1.9,169,2.87,294,0.494,304,2.355,309,0.351,334,0.701,382,1.264,530,3.382,673,4.366,740,3.716,759,4.366,779,3.523,1015,2.57,1390,4.799,1417,3.368,1423,4.799,1758,3.976,1892,3.976,1944,4.369,1945,3.976,1946,4.369,1947,4.369,1948,4.99,1949,4.99,1950,3.716,1951,3.523,1952,4.369,1953,4.369,1954,3.716,1955,3.716,1956,4.369,1957,3.976,1958,3.976]],["t/547",[4,0.427,10,0.692,12,5.371,20,2.237,38,1.139,54,3.242,57,1.588,58,1.463,67,4.856,68,4.083,81,4.41,150,3.899,195,2.464,292,2.024,294,0.814,304,2.726,309,0.578,334,0.811,590,3.167,1170,2.315,1948,3.899,1949,3.899,1951,4.078,1959,4.602,1960,6.123,1961,4.302,1962,4.302,1963,5.058,1964,4.602,1965,4.602,1966,4.602,1967,4.602,1968,4.602,1969,4.602,1970,4.602]],["t/549",[4,0.438,10,0.698,12,5.477,20,2.318,38,1.181,54,3.359,57,1.645,58,1.516,67,4.98,68,4.149,150,4.041,195,2.554,196,3.026,294,0.593,304,2.825,309,0.593,334,0.841,590,3.282,1170,2.399,1726,4.77,1948,4.041,1949,4.041,1957,4.77,1958,4.77,1959,4.77,1960,6.28,1964,4.77,1965,4.77,1966,4.77,1967,4.77,1968,4.77,1969,4.77,1970,4.77,1971,5.242]],["t/551",[10,0.633,12,4.246,38,1.95,43,3.316,67,5.839,68,4.311,219,4.038,334,1.063,345,4.246,1162,4.469,1417,6.673,1909,5.547,1915,4.912,1916,4.745,1972,6.028,1973,6.028,1974,6.625]],["t/553",[4,0.335,10,0.731,12,4.984,22,1.908,38,0.822,43,1.827,57,1.146,67,4.661,68,4.148,167,3.147,219,2.367,292,1.942,294,0.88,304,1.968,309,0.293,334,0.586,345,2.34,372,2.34,759,2.463,1162,2.463,1170,1.671,1417,5.327,1423,2.707,1909,3.62,1915,2.707,1916,2.615,1920,2.707,1921,5.571,1923,4.555,1927,2.944,1948,2.814,1949,2.814,1950,4.805,1951,4.555,1954,3.105,1955,3.105,1961,3.105,1962,3.105,1972,6.287,1973,3.322,1975,3.322,1976,3.322,1977,3.322,1978,3.322,1979,3.651,1980,5.649,1981,3.651,1982,3.651,1983,3.651]],["t/555",[10,0.674,12,4.859,38,1.708,43,3.795,67,6.363,68,4.218,219,3.952,334,1.216,1086,6.449,1984,6.899,1985,6.899]],["t/557",[4,0.332,10,0.74,12,2.311,43,1.804,57,1.132,67,4.624,68,3.455,128,0.635,161,2.209,177,2.163,216,2.163,219,2.344,292,1.927,294,0.946,304,1.943,309,0.289,334,0.578,347,1.409,372,2.311,423,2.311,759,2.432,1004,3.28,1086,5.831,1170,1.65,1289,2.368,1374,2.121,1417,4.313,1423,2.673,1942,3.28,1948,2.779,1949,2.779,1950,4.758,1951,4.511,1954,3.067,1955,3.067,1961,3.067,1962,3.067,1975,3.28,1976,3.28,1977,3.28,1978,3.28,1984,6.237,1985,3.28,1986,3.605,1987,6.855,1988,3.067,1989,5.594,1990,3.605,1991,5.594,1992,3.605,1993,3.605,1994,3.605,1995,3.605,1996,3.605]],["t/560",[4,0.452,10,0.653,30,2.711,83,1.402,128,0.967,130,2.025,139,4.071,168,3.45,235,2.106,294,0.621,309,0.441,334,0.881,382,1.588,386,4.671,522,4.427,877,3.113,1168,1.82,1177,3.23,1574,4.996,1575,4.996,1997,9.467,1998,5.491,1999,5.491,2000,5.491,2001,5.491,2002,5.491,2003,5.491,2004,5.491,2005,5.491,2006,5.491,2007,5.491,2008,5.491,2009,5.491,2010,5.491]],["t/562",[41,5.511,57,2.699,290,4.245,441,4.634,1021,5.159,1186,6.159,1591,7.824]],["t/564",[4,0.216,10,0.671,23,2.952,38,0.822,45,2.707,52,1.327,57,1.146,60,2.952,61,3.09,74,2.615,81,4.765,86,2.367,88,3.921,128,0.995,132,3.921,151,1.455,158,1.596,199,1.514,236,1.88,294,0.639,309,0.454,332,2.707,334,0.586,391,1.469,451,3.105,487,1.908,607,4.555,646,5.571,665,4.189,703,2.107,818,1.733,821,3.322,822,5.14,834,3.322,869,2.707,903,1.908,968,1.88,1214,2.286,1317,4.555,1360,5.14,1633,3.322,2011,3.651,2012,3.651,2013,3.105,2014,6.909,2015,3.651,2016,3.651,2017,3.651,2018,3.651,2019,5.14,2020,3.322,2021,5.649,2022,3.651,2023,3.651,2024,5.14,2025,2.944,2026,5.14,2027,3.322,2028,3.651,2029,3.651,2030,2.944,2031,3.651]],["t/566",[4,0.319,10,0.703,51,3.995,52,1.958,57,1.691,60,2.816,61,3.879,88,5.225,128,0.949,151,2.147,174,3.374,185,2.331,292,1.515,294,0.981,309,0.433,625,4.345,771,5.559,818,2.558,1297,4.345,1631,6.402,2025,4.345,2032,6.687,2033,5.388,2034,5.388,2035,7.893,2036,4.903,2037,4.903,2038,4.903]],["t/568",[86,2.981,88,6.923,128,1.254,151,3.973,185,3.92,292,2,334,1.141,391,3.646,1030,5.096,1177,4.186,1596,4.939,1740,6.474,2032,7.688]],["t/570",[4,0.335,10,0.698,51,4.191,52,2.054,57,1.774,60,2.954,61,3.979,86,2.368,88,5.401,174,3.539,294,0.88,309,0.454,334,0.907,625,4.557,771,3.622,818,2.684,1030,4.048,1297,4.557,1596,3.924,1631,6.618,2025,4.557,2032,5.998,2035,8.096,2036,5.143,2037,5.143,2038,5.143,2039,5.652,2040,5.652]],["t/572",[86,2.981,88,6.923,128,1.254,151,3.611,185,3.92,334,1.141,391,2.863,708,5.485,1030,5.096,1596,4.939,1786,6.72,2032,8.095,2041,6.474]],["t/574",[15,4.85,86,2.874,88,6.805,128,1.209,151,3.528,185,3.83,334,1.101,391,3.562,708,5.29,1030,4.914,1596,4.763,2032,7.986,2041,6.243,2042,8.854]],["t/576",[38,1.937,115,3.845,185,3.719,254,5.511,528,3.936,1598,7.824,2043,7.314]],["t/578",[2044,7.902,2045,9.29]],["t/580",[83,2.271,115,2.528,128,1.371,151,2.252,185,2.445,235,2.168,292,1.589,334,0.907,391,2.274,577,3.204,649,6.273,755,4.128,2030,6.273,2043,6.618,2046,7.08,2047,7.08,2048,7.08,2049,7.08,2050,7.08,2051,7.08,2052,7.08,2053,7.08,2054,7.08,2055,7.08,2056,5.652]],["t/582",[38,1.492,81,5.302,128,1.167,140,2.54,185,3.743,201,3.462,334,1.063,391,2.666,649,5.342,755,3.515,1467,7.876,1783,6.028,2030,5.342,2043,5.635,2047,6.028,2048,6.028,2049,6.028,2050,6.028,2051,6.028,2052,6.028,2053,6.028,2054,6.028,2055,6.028]],["t/584",[4,0.365,10,0.731,51,3.033,52,1.486,57,1.934,60,2.138,61,2.755,83,1.044,86,1.714,88,4.277,132,4.277,140,1.201,151,1.63,174,2.561,294,0.933,309,0.495,334,0.656,624,3.033,625,3.298,646,5.976,703,2.361,818,1.942,903,3.22,968,2.106,1214,3.858,1317,4.968,2019,5.606,2020,3.722,2024,5.606,2025,4.968,2026,7.506,2027,5.606,2030,4.968,2057,4.09,2058,6.161,2059,6.161,2060,3.722,2061,4.09,2062,4.09,2063,4.09,2064,4.09]],["t/586",[0,5.398,10,0.525,50,2.934,157,4.619,344,4.182,427,4.536,524,4.802,541,4.708,727,5.398,744,6.452,997,5.011,1816,5.732]],["t/588",[4,0.517,203,5.135,413,5.135,422,4.144,572,5.466,781,7.425]],["t/590",[17,5.275,79,6.103,203,4.842,347,3.217,422,3.908,450,6.345,453,7.001,1006,7.001,1374,4.842,2065,8.231]],["t/592",[1,3.719,4,0.367,10,0.407,28,6.678,34,3.881,50,2.272,58,2.396,76,5.272,130,1.433,132,4.303,203,3.646,228,4.44,302,2.71,306,7.935,309,0.498,715,5.64,781,7.045,813,3.972,1102,5.272,1559,4.596,1799,5.64,2066,6.198,2067,6.198,2068,6.198,2069,8.283,2070,6.198,2071,6.198]],["t/594",[4,0.525,131,4.436,417,5.024,688,8.064,948,6.152]],["t/596",[4,0.332,9,1.488,10,0.626,11,2.475,58,1.619,61,2.503,86,2.345,130,1.294,148,3.231,181,2.784,266,4.15,294,0.874,301,2.475,309,0.449,340,5.093,341,7.137,367,3.505,382,1.619,414,4.315,415,4.761,545,3.776,690,3.505,759,3.776,769,3.173,1017,5.093,1821,4.315,2072,5.597,2073,5.597,2074,5.597,2075,5.597,2076,5.597,2077,5.597,2078,5.597,2079,5.597,2080,5.597,2081,5.597]],["t/598",[1,1.881,4,0.186,9,0.834,10,0.756,11,1.386,83,2.657,128,0.552,130,0.725,140,1.837,150,2.417,153,3.716,171,2.417,294,0.355,309,0.402,334,0.503,359,2.06,391,2.016,415,2.667,458,5.302,473,2.115,772,2.667,793,2.528,812,2.667,860,2.667,1002,2.893,1145,2.667,1168,1.661,1175,2.528,1241,3.381,1306,2.528,1396,1.963,1805,2.528,2082,4.56,2083,5.011,2084,4.56,2085,4.56,2086,2.853,2087,3.135,2088,3.135,2089,3.135,2090,3.135,2091,3.135,2092,3.135,2093,3.135,2094,3.135,2095,3.135,2096,3.135,2097,3.135,2098,3.135,2099,3.135,2100,3.135,2101,3.135,2102,3.135,2103,3.135,2104,3.135,2105,3.135,2106,3.135,2107,3.135,2108,3.135,2109,3.135]],["t/600",[4,0.276,9,1.236,10,0.749,11,2.056,52,1.69,61,2.08,81,2.849,83,1.187,128,0.819,140,1.989,153,3.448,166,1.567,219,1.948,294,0.526,309,0.544,334,0.746,379,3.75,391,2.726,423,2.981,458,6.512,462,3.956,638,3.228,818,2.208,838,3.956,1002,3.911,1168,2.246,1241,4.571,1555,3.228,1597,3.585,2082,6.166,2084,6.166,2085,6.166,2110,4.651,2111,4.651,2112,4.651]],["t/602",[4,0.393,9,1.761,10,0.568,128,1.167,201,3.462,307,5.342,309,0.532,382,1.917,406,2.179,648,3.107,680,6.673,902,2.429,903,4.523,904,3.962,1039,4.246,1238,5.302,1239,4.912,1500,7.876,2113,6.625,2114,6.625,2115,6.625]],["t/604",[3,4.646,4,0.371,7,5.052,8,4.016,10,0.547,199,2.598,309,0.503,370,5.33,406,2.061,408,5.33,413,4.908,528,3.819,596,5.33,600,3.432,638,4.349,648,2.938,656,4.488,849,3.226,886,3.377,1066,5.701,1530,5.33,1542,5.33,1704,4.83,2116,8.342,2117,6.266,2118,8.342,2119,6.266]],["t/606",[4,0.407,10,0.721,83,1.751,128,1.209,130,1.586,163,3.872,184,3.434,201,3.585,235,2.632,294,0.776,309,0.551,481,6.243,758,6.243,899,4.507,1041,5.532,2120,6.861,2121,6.861,2122,6.861]],["t/608",[57,2.87,290,4.514,441,4.928]],["t/610",[4,0.417,8,1.245,9,0.517,10,0.488,13,2.289,19,1.873,22,1.015,38,1.349,52,0.706,53,2.369,57,0.61,58,0.562,83,0.496,113,3.339,123,1.082,128,0.342,129,1.567,130,1.225,136,1.101,139,4.439,155,3.533,170,1.539,181,0.7,185,0.84,193,1.441,201,1.015,224,1.567,227,3.794,228,5.036,235,1.29,250,1.276,262,1.311,289,3.296,290,1.66,292,1.25,294,0.38,301,1.965,302,0.85,306,1.653,309,0.156,311,1.276,334,0.96,347,0.759,361,1.349,365,1.166,377,1.047,382,1.532,389,1.349,400,1.101,406,0.639,427,1.101,435,1.653,459,3.184,468,1.653,485,7.11,510,1.122,530,1.015,540,1.768,562,1.941,583,1.498,586,1.392,600,1.064,618,1.567,656,1.392,670,0.986,696,2.334,738,1.276,764,1.392,766,2.615,769,1.101,856,1.311,861,2.155,877,1.101,942,1.392,952,3.296,996,1.768,1002,1.122,1011,1.842,1016,1.768,1095,1.768,1177,1.143,1386,2.408,1704,1.498,2123,1.653,2124,1.943,2125,1.943,2126,1.943,2127,1.943,2128,1.943,2129,1.943,2130,1.943,2131,3.584,2132,1.567,2133,3.837,2134,1.943,2135,3.06,2136,1.943,2137,4.044,2138,3.362,2139,1.943,2140,1.943,2141,3.362,2142,1.943,2143,3.06,2144,5.092,2145,3.362,2146,1.943,2147,3.362,2148,1.943,2149,1.943,2150,2.408,2151,3.362,2152,2.493,2153,1.943,2154,1.943,2155,1.349,2156,1.943,2157,1.653,2158,1.653,2159,1.768,2160,1.943,2161,1.943,2162,3.362,2163,1.943,2164,1.943,2165,1.943,2166,1.943]],["t/612",[4,0.421,10,0.629,19,2.769,38,1.12,57,1.56,58,2.057,83,1.815,155,2.679,157,2.869,227,3.56,228,3.56,235,1.907,292,1.397,294,0.804,305,4.671,309,0.399,334,0.797,377,2.679,385,4.228,431,2.983,459,3.56,487,2.598,562,2.869,586,3.56,766,2.924,861,3.186,1002,4.104,1386,3.56,1559,3.686,2133,3.186,2144,6.048,2155,3.451,2158,4.228,2167,4.523,2168,7.11,2169,4.971,2170,3.686,2171,4.971,2172,4.008,2173,4.971,2174,4.971,2175,4.523,2176,4.971,2177,4.228]],["t/614",[4,0.422,19,3.964,29,3.146,50,2.608,83,2.313,155,3.835,228,5.096,235,2.729,262,6.113,377,3.835,562,4.107,861,4.56,886,3.835,1227,5.485,1386,5.096,2131,5.737,2133,4.56,2155,4.939,2158,6.052]],["t/616",[57,2.87,290,4.514,441,4.928]],["t/618",[4,0.367,9,0.82,10,0.757,11,1.364,15,1.69,38,0.695,50,1.131,60,2.585,61,2.212,64,1.484,68,2.212,126,3.814,128,0.872,130,1.432,140,1.452,168,1.396,177,2.968,181,1.111,196,2.856,208,3.668,219,2.968,294,0.877,309,0.497,334,0.495,338,6.037,339,2.487,347,1.933,382,1.431,406,1.015,648,1.447,902,1.131,968,1.588,1126,2.287,1159,2.531,1168,2.349,1306,2.487,1374,1.815,1396,1.932,1545,4.208,1731,2.081,2178,2.807,2179,5.635,2180,4.947,2181,4.501,2182,4.501,2183,2.807,2184,3.085,2185,3.085,2186,3.085]],["t/620",[4,0.164,10,0.738,15,1.519,53,1.24,68,1.24,69,2.183,113,2.155,125,2.359,126,2.138,128,1.173,130,1.332,140,1.332,177,1.664,181,0.999,185,2.879,196,4.238,208,4.936,214,3.861,215,3.861,219,3.486,268,3.251,294,0.513,302,1.213,309,0.223,332,3.365,333,3.861,334,0.445,335,2.237,337,5.613,338,5.096,339,3.66,347,2.251,382,1.666,417,1.572,420,4.13,528,1.27,648,1.301,690,1.737,749,2.359,968,1.428,1011,1.519,1159,0.991,1168,2.207,1318,2.359,1324,2.359,1374,1.632,1526,2.524,1545,2.359,2179,2.524,2181,2.524,2182,4.13,2187,2.774,2188,2.774,2189,2.774,2190,4.539,2191,5.76,2192,2.774,2193,4.539,2194,2.774,2195,2.774,2196,2.774,2197,2.774,2198,2.774]],["t/622",[0,5.398,4,0.474,10,0.525,50,2.934,86,3.353,157,4.619,344,4.182,524,4.802,542,6.169,727,5.398,997,5.011,1816,5.732]],["t/624",[53,3.734,128,1.471,140,2.451,166,2.813,184,4.179,310,5.485,537,6.732,539,5.796,2152,6.191]],["t/626",[53,3.734,128,1.471,140,2.451,166,2.813,184,4.179,310,5.485,536,6.732,539,5.796,2152,6.191]],["t/628",[4,0.356,22,3.138,58,1.737,128,1.058,130,1.388,131,5.294,161,3.679,292,1.688,309,0.789,334,0.963,487,4.237,577,5.204,804,4.453,810,5.629,1374,3.533,1988,5.108,2199,3.945,2200,4.842,2201,6.005,2202,6.005,2203,6.005,2204,8.108,2205,5.464]],["t/630",[4,0.407,128,1.56,130,1.586,131,3.434,165,5.424,201,3.585,309,0.551,334,1.101,391,3.562,487,4.627,1092,7.269,2199,4.507,2206,8.854,2207,8.854,2208,6.861,2209,6.243]],["t/632",[4,0.393,10,0.568,58,1.917,128,1.167,130,1.531,131,3.316,161,4.059,294,0.979,309,0.532,334,1.063,487,5.037,689,5.547,823,6.008,1374,3.897,2199,4.352,2200,5.342,2210,5.635,2211,6.625,2212,6.625,2213,6.625,2214,6.028]],["t/634",[4,0.393,10,0.568,58,1.917,128,1.167,130,1.531,131,4.825,161,4.059,294,0.979,309,0.532,334,1.063,487,5.037,823,6.008,1374,3.897,2199,4.352,2200,5.342,2210,5.635,2214,6.028,2215,6.625,2216,6.625,2217,6.625]],["t/636",[4,0.417,58,2.033,128,1.238,130,1.625,131,4.501,161,4.306,309,0.564,311,6.514,334,1.128,487,4.699,689,4.504,1374,4.135,2199,4.617,2200,5.667,2210,5.978,2218,7.028,2219,8.182]],["t/638",[4,0.412,58,2.009,128,1.223,161,4.254,292,1.952,309,0.558,334,1.114,487,3.629,577,5.589,689,6.898,1374,4.085,1988,5.906,2205,6.318,2220,6.944,2221,6.944,2222,8.923]],["t/640",[1,3.93,4,0.388,34,4.102,58,1.895,128,1.154,130,1.514,131,4.3,161,4.013,241,4.303,309,0.526,334,1.051,380,5.571,381,5.96,382,1.895,418,3.853,487,4.489,689,6.144,757,5.96,973,4.857,1266,5.96,1374,3.853,1731,4.418,2223,6.55,2224,6.55]],["t/642",[4,0.438,29,3.267,130,1.708,165,4.526,201,3.861,292,2.077,309,0.593,311,4.853,334,1.185,487,4.85,577,5.261,689,6.504,2225,7.388,2226,7.388]],["t/644",[4,0.384,45,4.802,113,3.075,128,1.141,130,1.971,131,4.268,180,4.802,264,4.496,292,1.821,309,0.52,334,1.039,486,5.893,487,5.501,823,4.496,1177,3.81,1373,4.496,1555,4.496,2013,5.509,2199,4.255,2227,6.476,2228,6.476,2229,6.476,2230,6.476]],["t/646",[4,0.427,45,5.341,128,1.269,130,2.112,131,4.572,292,2.025,309,0.578,334,1.156,487,5.242,1177,4.238,1373,5.001,1555,5.001,2013,6.128,2199,4.732,2231,7.204,2232,7.204]],["t/648",[4,0.325,10,0.575,38,1.237,83,2.236,128,1.344,130,1.269,131,2.748,166,1.85,236,2.827,294,0.621,301,2.428,302,2.401,309,0.441,334,1.223,487,2.869,600,3.008,696,6.082,854,4.427,942,6.276,1135,4.071,1725,4.233,1820,4.671,2159,4.996,2199,3.607,2233,6.939,2234,6.487,2235,4.671,2236,7.626,2237,4.671,2238,5.491,2239,5.491,2240,5.491]],["t/650",[4,0.438,9,1.964,10,0.485,58,2.137,129,5.957,130,1.708,131,4.645,309,0.593,334,1.185,487,3.861,599,6.284,708,5.696,1786,5.478,2199,4.853,2219,6.723,2241,7.388,2242,7.388]],["t/652",[4,0.297,10,0.597,83,1.826,128,1.26,130,1.159,131,3.58,166,1.689,170,4.577,236,2.582,294,0.567,301,2.217,309,0.403,311,3.294,334,1.148,487,2.62,746,4.383,818,2.381,968,2.582,1007,4.826,1135,3.718,1435,4.043,1597,5.515,1606,4.562,1725,3.865,2199,3.294,2209,4.562,2233,6.509,2234,6.085,2235,4.265,2243,5.014,2244,4.562,2245,4.265,2246,7.154,2247,7.154,2248,5.014,2249,5.014]],["t/654",[4,0.364,10,0.402,83,2.099,120,5.216,128,1.449,236,5.105,292,1.724,294,0.694,301,3.636,309,0.492,334,1.319,487,3.205,572,5.81,689,5.946,1135,4.547,1725,4.728,2234,6.995,2235,5.216,2250,9.278,2251,6.132]],["t/656",[0,5.398,4,0.474,10,0.525,50,2.934,86,3.353,157,4.619,344,4.182,524,4.802,727,5.398,997,5.011,1816,5.732,2252,8.002]],["t/658",[4,0.393,10,0.633,50,2.429,236,3.411,259,3.186,294,0.75,309,0.532,334,1.063,422,4.11,528,3.962,641,4.745,648,4.059,886,3.571,1030,4.745,1401,5.547,2253,8.655,2254,6.625,2255,6.625,2256,6.625,2257,6.625]],["t/660",[4,0.455,10,0.624,309,0.617,334,1.233,406,2.527,530,4.015,648,4.46,902,2.817,2258,9.51,2259,7.683,2260,7.683,2261,7.683]],["t/662",[416,7.162,483,8.453]],["t/664",[57,2.477,75,5.185,89,6.364,130,1.825,290,3.897,538,6.085,611,7.182,670,4.006,1002,4.556,2262,7.182,2263,7.893,2264,7.893,2265,7.893]],["t/666",[89,6.636,128,1.45,151,3.952,158,3.599,174,5.154,334,1.32,490,7.998,577,4.666]],["t/668",[4,0.319,9,1.432,10,0.751,38,0.773,57,1.69,73,1.881,89,6.067,128,0.605,148,1.982,151,2.146,182,1.651,292,1.514,294,0.851,302,2.355,309,0.432,334,0.551,382,0.993,391,1.381,418,2.02,474,5.652,490,6.59,528,3.444,538,5.8,764,2.459,1002,1.982,1177,5.679,1700,4.342,2262,4.9,2266,3.434,2267,6.644,2268,3.124,2269,8.672,2270,5.385,2271,3.434,2272,3.434,2273,4.9]],["t/670",[10,0.624,14,3.743,34,4.811,38,1.731,57,2.411,290,3.793,301,3.397,305,5.047,562,4.435,989,4.924,1002,4.435,1068,6.195,2155,5.333,2274,7.683]],["t/672",[115,4.089,400,5.183,568,6.779]],["t/674",[5,4.521,13,4.178,38,1.828,83,2.071,305,5.331,562,5.677,871,6.543,968,4.178,1165,6.543,2275,7.384]],["t/676",[13,5.021,83,2.043,128,1.41,168,3.62,201,4.182,388,6.452,752,7.282,968,4.121,1386,5.732,2046,7.282,2276,8.002]],["t/678",[4,0.269,9,1.77,10,0.728,13,2.338,58,1.926,128,0.8,166,1.53,176,4.392,182,2.184,235,1.742,292,1.277,294,0.753,305,5.18,309,0.365,388,3.661,406,2.19,528,2.079,562,4.551,750,3.252,813,2.91,897,4.132,902,2.441,903,2.373,904,3.048,1462,4.132,2275,4.132,2277,4.132,2278,4.541,2279,4.132,2280,4.132,2281,4.132,2282,4.132,2283,6.059,2284,4.541,2285,4.541,2286,7.884,2287,4.541,2288,4.541,2289,4.541]],["t/680",[4,0.302,9,1.357,10,0.731,38,1.149,53,2.282,58,1.476,83,1.302,128,0.899,176,4.691,181,1.838,235,1.957,292,1.435,294,0.82,305,5.532,309,0.41,406,1.678,528,2.336,570,4.114,746,3.126,777,4.114,861,4.642,896,4.34,902,1.871,903,2.666,904,3.316,1030,3.655,1819,4.34,2277,4.643,2280,4.643,2281,4.643,2282,4.643,2283,4.643,2290,4.643,2291,5.103,2292,4.643]],["t/682",[4,0.329,10,0.695,57,1.74,58,2.221,113,2.632,166,2.967,181,1.997,182,2.666,200,4.274,290,2.737,292,1.558,294,0.869,301,2.451,302,2.424,305,6.245,309,0.445,562,4.431,570,4.47,588,5.044,896,4.716,2172,4.47,2175,5.044,2279,5.044,2293,5.544,2294,5.544,2295,5.544,2296,5.544,2297,5.544,2298,5.544,2299,5.544]],["t/684",[0,5.398,4,0.474,10,0.525,50,2.934,86,3.353,157,4.619,344,4.182,524,4.802,727,5.398,777,6.452,997,5.011,1816,5.732]],["t/686",[4,0.481,309,0.652,334,1.302,692,7.384,818,3.853,858,7.384,1321,7.384,1819,6.903,2292,7.384,2300,8.115,2301,8.115]],["t/688",[128,1.538,170,3.995,690,5.466,747,7.038,769,4.948,2245,7.425]],["t/690",[128,1.586,746,5.514,2244,8.19,2245,7.656]],["t/692",[4,0.502,57,2.659,86,3.549,155,4.566,228,6.068,290,4.183,441,4.566,1002,4.891]],["t/694",[19,3.568,83,1.635,123,3.568,128,1.128,151,2.552,235,2.457,302,2.801,334,1.027,377,3.452,391,2.577,562,3.697,766,3.768,807,5.828,856,4.32,861,4.105,1177,3.768,1559,6.276,2132,5.164,2133,5.425,2135,5.828,2137,5.828,2152,4.749,2155,4.446,2157,5.448,2170,4.749,2302,5.828,2303,6.405,2304,6.405]],["t/696",[128,1.372,151,3.102,201,4.069,292,2.189,302,3.405,334,1.249,577,4.414,856,5.253,2152,5.774,2170,7.11,2305,8.379]],["t/698",[4,0.295,10,0.674,27,3.353,57,1.56,58,1.438,83,1.815,123,3.961,136,2.818,148,2.869,151,1.98,235,1.907,292,2.333,294,0.939,305,5.453,309,0.399,334,0.797,489,3.353,562,4.104,696,3.451,787,4.228,989,3.186,1111,2.637,1159,1.775,1168,1.648,1582,4.008,1713,3.186,2170,3.686,2172,4.008,2177,4.228,2305,4.008,2306,4.971,2307,4.523,2308,5.272,2309,4.971,2310,4.523,2311,4.228,2312,4.523,2313,4.523,2314,4.523,2315,4.523]],["t/700",[122,6.532,123,4.72,151,3.376,235,3.25,2044,7.207,2305,6.831,2308,6.282,2316,7.709]],["t/702",[123,5.622,151,3.376,219,4.228,334,1.359,2123,8.585]],["t/704",[4,0.302,10,0.553,19,2.843,57,1.602,83,1.302,123,5.393,128,1.276,130,1.18,151,2.033,167,2.843,219,3.035,224,4.114,262,3.442,294,0.82,302,2.231,309,0.41,334,0.819,377,2.75,562,2.946,766,3.002,861,3.27,952,3.784,1046,3.352,1111,2.707,1170,2.336,1665,4.758,2155,3.542,2157,4.34,2311,4.34,2317,4.643,2318,4.643,2319,6.591,2320,5.103,2321,5.103,2322,4.34,2323,4.643,2324,4.114,2325,4.643,2326,4.643,2327,4.643,2328,5.103,2329,5.103]],["t/706",[123,4.169,128,1.648,130,1.73,151,2.982,167,4.169,219,3.135,334,1.201,401,5.048,432,4.686,593,6.81,1233,5.549,1665,6.147,2131,6.034,2322,6.366,2330,6.81]],["t/708",[4,0.36,10,0.648,57,1.905,123,4.549,151,2.418,205,6.946,219,3.421,294,0.924,309,0.487,334,0.974,336,3.44,1046,3.986,1131,4.893,1159,2.167,1168,2.012,1665,3.986,2311,5.162,2317,5.522,2322,5.162,2324,4.893,2325,5.522,2330,5.522,2331,6.068,2332,4.678,2333,6.068,2334,6.068,2335,8.165]],["t/710",[1,1.581,4,0.329,6,3.508,10,0.678,15,1.443,19,1.468,22,1.377,38,0.593,57,1.366,58,1.608,67,1.777,69,1.267,83,0.672,122,3.354,123,4.532,128,0.979,130,0.609,136,1.493,148,1.521,151,1.733,168,1.192,219,1.104,224,4.481,227,1.887,233,1.887,235,1.011,262,1.777,292,0.741,294,0.87,302,1.152,305,2.858,309,0.349,334,0.698,336,1.493,347,1.03,377,1.42,382,0.762,391,1.75,423,1.688,526,3.959,528,1.991,562,1.521,564,1.829,696,1.829,764,1.887,766,1.55,787,2.241,811,2.397,818,2.066,856,1.777,861,1.688,890,2.124,968,1.357,1002,1.521,1011,1.443,1021,1.581,1111,2.308,1159,0.941,1168,0.873,1170,1.206,1559,1.953,1960,2.241,2123,2.241,2132,2.124,2133,1.688,2144,3.701,2152,1.953,2155,1.829,2172,2.124,2177,2.241,2308,3.226,2310,2.397,2312,2.397,2313,2.397,2314,2.397,2315,2.397,2316,2.397,2318,2.397,2319,3.959,2324,2.124,2326,2.397,2327,2.397,2336,2.397,2337,2.635,2338,2.635,2339,5.557,2340,2.397,2341,5.557,2342,2.635,2343,3.354,2344,2.635,2345,2.635,2346,2.635,2347,2.635,2348,2.635,2349,2.635,2350,4.351,2351,2.635,2352,2.635,2353,2.635,2354,2.635,2355,2.635]],["t/712",[123,5.774,151,3.531,262,5.978,334,1.422]],["t/714",[4,0.384,10,0.665,58,1.874,123,3.608,128,1.141,130,1.497,151,2.58,294,0.965,309,0.52,334,1.039,522,5.222,2133,4.151,2170,6.323,2302,5.893,2332,4.993,2343,6.574,2356,8.527,2357,5.222,2358,6.476,2359,6.476,2360,6.476,2361,6.476]],["t/716",[4,0.432,10,0.604,122,5.624,123,5.129,128,1.285,151,2.906,294,0.825,309,0.586,334,1.17,1347,5.225,2133,4.675,2308,6.827,2332,5.624,2343,5.624,2357,5.882,2362,7.295]],["t/718",[4,0.427,10,0.658,123,4.013,151,2.87,168,3.259,294,0.815,309,0.578,334,1.156,347,2.815,422,3.42,1909,4.617,2133,4.617,2332,5.554,2343,5.554,2357,5.808,2363,9.134,2364,7.204]],["t/720",[4,0.422,10,0.654,123,3.964,151,2.835,168,3.219,294,0.805,309,0.571,334,1.141,347,2.781,364,4.8,422,3.378,952,5.276,2133,4.56,2332,5.485,2343,5.485,2357,5.737,2365,9.063,2366,7.115]],["t/722",[151,3.531,235,3.399,2044,7.538,2305,7.146,2307,8.064]],["t/724",[19,3.311,38,1.339,73,3.256,83,2.055,123,4.485,128,1.419,151,2.368,183,3.722,235,2.28,292,1.671,377,3.203,388,4.792,489,4.009,562,3.431,766,3.496,859,5.408,861,3.809,872,5.055,1000,3.904,1177,4.737,1430,5.408,2133,5.16,2143,8.309,2155,4.126,2308,5.97,2323,5.408,2367,7.326,2368,5.943]],["t/726",[4,0.36,10,0.536,57,1.905,58,1.755,83,1.549,123,3.38,128,1.069,176,3.38,235,2.327,260,3.503,294,0.924,309,0.487,347,2.372,377,3.271,422,2.881,489,4.093,861,3.889,1233,4.499,2133,3.889,2183,5.522,2290,5.522,2308,4.499,2324,4.893,2367,5.522,2369,6.068,2370,6.068,2371,6.068,2372,6.068,2373,6.068,2374,6.068,2375,6.068,2376,6.068,2377,6.068]],["t/728",[0,5.398,4,0.474,10,0.525,50,2.934,86,3.353,157,4.619,344,4.182,382,2.315,524,4.802,727,5.398,997,5.011,1816,5.732]],["t/730",[4,0.402,9,1.803,10,0.677,11,4.31,53,3.032,83,1.731,128,1.195,207,4.154,294,0.767,302,3.842,309,0.544,382,1.962,406,2.23,417,3.844,431,4.069,902,2.486,1024,5.768,1312,3.989,2378,6.781]],["t/732",[53,3.482,128,1.372,177,4.672,292,2.189,309,0.77,310,5.115,312,7.085,382,3.006,417,4.414,849,4.009,1312,4.581]],["t/734",[4,0.384,9,1.722,10,0.691,11,2.864,128,1.141,294,0.733,309,0.52,334,1.039,352,3.155,382,2.467,406,2.13,422,3.075,564,4.496,648,3.037,902,2.374,903,3.384,1092,6.323,1284,3.81,1514,4.369,2237,5.509,2379,6.476,2380,5.509,2381,5.893]],["t/736",[4,0.397,9,1.782,10,0.716,11,2.963,294,0.758,309,0.538,334,1.075,359,4.403,382,2.523,406,2.204,528,3.068,902,2.457,903,3.502,1284,3.943,2237,5.701,2380,5.701,2381,7.935,2382,6.702,2383,6.702]],["t/738",[4,0.402,10,0.577,11,2.998,128,1.195,140,1.99,233,4.857,236,3.491,294,0.767,309,0.544,334,1.088,382,2.82,393,4.454,438,4.857,772,7.474,804,5.028,1312,3.989,1435,5.467,1445,5.768,1601,6.17,2384,6.17,2385,6.781]],["t/740",[4,0.449,10,0.674,11,3.353,294,0.858,309,0.609,334,1.216,347,2.963,382,2.729,422,4.479,1433,6.899,2384,6.899,2386,7.582]],["t/742",[1,3.359,4,0.332,9,1.488,10,0.697,11,2.475,68,3.958,128,0.986,140,2.268,294,0.633,302,3.379,309,0.449,334,0.898,382,2.236,406,1.841,418,3.293,422,4.203,523,3.677,766,3.293,902,2.052,903,4.626,904,2.562,1238,3.429,1284,4.546,2131,4.513,2387,8.851]],["t/744",[4,0.314,9,1.406,10,0.746,83,1.35,128,1.309,140,1.553,148,3.053,294,0.598,302,2.313,309,0.425,334,0.849,382,2.149,391,2.989,406,1.74,422,3.528,523,3.475,766,3.112,948,3.672,1198,5.728,1199,4.265,1284,5.052,1568,6.761,1713,3.39,2150,3.789,2388,5.29,2389,5.29,2390,5.29,2391,5.29]],["t/746",[4,0.345,10,0.704,83,1.486,128,1.399,148,3.361,294,0.659,302,2.546,309,0.468,334,0.934,382,2.297,406,1.915,422,3.77,523,3.825,766,3.426,948,4.042,1197,4.695,1198,4.489,1199,7.286,1284,4.671,1401,3.732,1501,5.299,1713,3.732,2150,4.171,2392,7.941,2393,5.823,2394,5.823]],["t/748",[4,0.228,9,2.29,10,0.756,11,2.6,24,2.526,68,3.192,128,0.677,140,2.095,294,0.665,309,0.309,334,0.617,382,2.065,406,2.832,564,2.669,902,3.157,903,4.5,904,3.942,1011,2.106,1159,2.549,1168,2.366,1284,2.262,1312,2.262,1701,6.162,2086,5.349,2395,5.879,2396,3.845,2397,3.845]],["t/750",[53,3.482,128,1.372,177,4.672,292,2.189,309,0.77,310,5.115,315,6.623,382,3.006,417,4.414,849,4.009,1312,4.581]],["t/752",[4,0.345,9,2.111,10,0.688,128,1.026,256,3.426,294,0.898,302,4.244,309,0.468,334,0.934,382,2.614,406,2.612,454,3.244,564,5.512,902,2.911,903,4.15,1024,4.953,1312,3.426,1661,3.361,2398,5.823,2399,5.823,2400,5.823,2401,5.823,2402,5.823]],["t/754",[53,3.482,128,1.372,177,4.672,292,2.189,309,0.77,310,5.115,316,6.278,382,3.006,417,4.414,849,4.009,1312,4.581]],["t/756",[4,0.342,9,2.097,10,0.686,11,2.549,50,2.113,68,2.578,83,2.294,113,2.737,140,1.692,235,2.211,294,0.652,309,0.463,334,0.925,382,1.668,400,3.268,406,2.594,823,4.002,849,2.968,902,2.891,1011,3.158,1108,5.475,1261,4.648,1284,3.391,1713,5.054,1821,4.444,2403,5.765,2404,5.765,2405,5.765]],["t/758",[4,0.216,9,1.502,10,0.705,29,1.614,38,0.822,68,3.478,83,0.932,113,1.733,128,0.995,140,1.658,168,1.652,219,2.367,233,2.615,256,2.148,301,1.614,302,2.47,309,0.293,316,2.944,334,0.586,359,2.398,367,3.537,382,1.634,400,2.07,406,2.766,564,4.796,569,2.398,656,2.615,812,4.805,823,2.534,832,5.14,902,2.851,903,4.064,904,2.586,1108,5.839,1182,3.711,1261,4.555,1312,2.148,1386,2.615,1514,2.463,1713,4.428,1821,2.814,2132,2.944,2150,2.615,2406,3.651,2407,3.322,2408,3.651,2409,3.651,2410,3.651,2411,3.651,2412,3.651,2413,3.651]],["t/760",[53,3.482,128,1.372,177,4.672,292,2.189,309,0.77,310,5.115,314,6.623,382,3.006,417,4.414,849,4.009,1312,4.581]],["t/762",[4,0.229,9,1.029,10,0.681,22,2.023,38,1.331,68,2.643,83,1.829,113,1.838,128,0.682,130,0.895,140,2.103,199,1.605,216,2.323,219,2.476,276,2.611,292,1.088,309,0.311,334,0.621,382,1.709,400,3.35,456,1.731,510,3.411,648,1.815,670,1.965,818,1.838,823,2.687,838,3.293,898,2.984,968,1.993,1039,4.593,1056,3.522,1097,3.293,1108,5.996,1131,3.121,1165,3.121,1172,3.522,1182,3.882,1214,2.424,1261,4.764,1312,2.277,1317,3.121,1585,3.522,1692,3.293,1713,4.593,1821,2.984,2150,2.773,2414,3.871,2415,3.871,2416,3.871,2417,5.909,2418,3.871,2419,3.871,2420,3.871,2421,3.871,2422,3.871,2423,5.909,2424,3.871]],["t/764",[53,3.482,128,1.372,177,4.672,292,2.189,309,0.77,310,5.115,313,6.623,382,3.006,417,4.414,849,4.009,1312,4.581]],["t/766",[4,0.319,9,1.433,10,0.703,11,2.383,58,1.559,128,1.326,140,2.546,216,3.233,276,3.635,294,0.61,309,0.433,334,0.864,382,2.177,406,1.772,528,2.466,790,5.581,902,1.975,1182,3.54,1238,3.301,1596,3.741,1713,3.453,1725,4.154,2150,3.859,2425,4.583,2426,10.887,2427,5.388,2428,5.388]],["t/768",[4,0.412,9,2.372,10,0.683,11,3.07,128,1.223,140,2.038,294,0.786,309,0.558,334,1.114,382,2.581,406,2.284,902,2.546,1018,4.085,1596,4.82,1902,6.318,2429,6.944,2430,6.944,2431,6.944]],["t/770",[4,0.412,9,1.846,10,0.683,11,3.07,128,1.223,140,2.038,294,0.786,309,0.558,334,1.114,382,2.581,406,2.284,902,3.271,1018,4.085,1596,4.82,1901,6.318,2432,6.944,2433,6.944,2434,6.944]],["t/772",[4,0.308,9,1.381,10,0.733,83,1.326,128,0.915,148,2.999,201,2.714,237,6.857,309,0.417,334,0.833,347,2.03,382,1.503,406,3.039,422,2.466,528,3.358,538,4.005,813,3.329,902,1.904,903,2.714,1182,4.819,1238,3.182,1284,4.315,1401,4.701,1532,4.419,1713,3.329,2150,3.721,2435,7.335,2436,8.504]],["t/774",[1,3.76,4,0.371,9,1.666,10,0.717,11,2.77,68,2.802,128,1.104,292,1.761,294,0.709,309,0.503,334,1.005,382,2.713,387,4.349,406,2.061,425,7.562,564,4.349,1687,4.488,2437,7.591,2438,7.591,2439,6.266]],["t/776",[4,0.297,9,2.217,10,0.728,11,2.217,19,2.793,34,3.14,68,2.242,128,0.883,140,2.822,170,2.295,294,0.567,309,0.403,334,0.804,382,2.413,406,3.162,738,3.294,902,3.525,903,5.225,2340,4.562,2437,4.562,2438,4.562,2440,5.014,2441,5.014]],["t/778",[4,0.311,9,1.963,10,0.728,11,2.318,46,4.041,68,3.301,140,1.538,148,3.026,166,2.487,270,3.211,292,1.474,294,0.593,309,0.421,334,0.841,365,3.145,382,2.136,406,2.428,768,3.887,902,2.706,1046,4.85,1135,3.887,1159,2.637,1168,2.447,1312,3.084,1555,3.639,1660,2.825,1786,6.337,2442,5.242,2443,5.242]],["t/780",[4,0.375,10,0.686,11,2.801,20,2.801,60,4.391,61,4.491,83,1.617,128,1.116,294,0.717,309,0.509,334,1.016,382,2.431,393,4.161,726,5.764,1018,3.726,1059,5.764,1177,3.726,1182,4.161,1284,3.726,1597,4.883,2444,6.334,2445,6.334]],["t/782",[4,0.322,9,1.446,10,0.691,11,2.405,38,1.225,58,1.573,113,2.583,128,0.958,136,3.083,181,1.959,250,3.573,292,1.529,294,0.615,307,4.386,309,0.437,334,0.873,365,3.264,382,2.522,406,2.492,418,4.457,425,4.386,902,3.196,903,4.927,904,3.468,1021,3.264,1284,3.2,1767,3.573,2446,3.896,2447,5.439,2448,5.439]],["t/784",[4,0.271,9,1.781,10,0.754,58,1.324,128,0.806,219,2.806,294,0.758,309,0.367,334,0.734,382,1.324,418,3.94,784,3.528,886,2.467,1108,3.177,1247,3.394,1284,2.692,1582,3.69,2449,6.697,2450,7.92,2451,7.92,2452,6.697,2453,6.697,2454,6.697,2455,6.697,2456,8.716,2457,4.577,2458,4.577,2459,4.577,2460,4.577,2461,4.577,2462,4.577]],["t/786",[4,0.364,9,2.186,10,0.698,140,1.8,276,4.137,294,0.694,301,3.636,309,0.492,334,0.984,382,1.774,406,2.017,418,4.838,784,4.728,797,5.58,902,2.248,904,3.764,1238,5.038,1284,3.608,1582,4.945,2463,6.132,2464,6.132,2465,6.132,2466,6.132,2467,6.132]],["t/788",[0,5.398,4,0.474,10,0.525,50,2.934,86,3.353,130,1.85,157,4.619,344,4.182,524,4.802,727,5.398,997,5.011,1816,5.732]],["t/790",[4,0.444,10,0.614,20,3.309,83,1.91,294,0.847,309,0.601,334,1.201,365,4.491,400,4.242,418,4.403,746,4.585,1111,3.971,1168,3.102,2468,6.81,2469,7.484]],["t/792",[4,0.438,10,0.609,20,3.267,83,1.886,294,0.836,309,0.593,334,1.185,336,4.188,365,4.433,400,4.188,418,4.346,746,4.526,1111,3.92,1168,3.077,1879,5.292,2470,7.388]],["t/794",[4,0.441,10,0.708,113,1.956,114,3.795,128,1.091,130,2.236,294,0.842,309,0.598,334,0.661,382,1.792,475,4.775,555,4.995,792,3.717,902,1.51,1111,3.95,1159,3.17,1168,2.943,1281,2.86,1786,3.055,1916,6.358,2380,3.504,2471,7.932,2472,8.876,2473,7.444,2474,4.12]],["t/796",[34,5.011,50,2.934,53,3.579,183,5.011,499,7.282,590,6.106,886,4.313,948,5.555,1018,4.708,1289,6.406]],["t/798",[4,0.384,10,0.626,58,1.874,128,1.141,130,2.342,181,2.333,292,1.821,294,0.733,309,0.52,334,1.039,792,5.117,1111,3.436,1159,3.046,1168,2.827,1514,4.369,2475,8.109,2476,5.509,2477,5.509,2478,6.476]],["t/800",[4,0.384,10,0.626,128,1.141,130,2.342,181,2.333,292,1.821,294,0.733,309,0.52,334,1.039,792,5.117,1111,3.436,1159,3.046,1168,2.827,1289,4.255,1347,4.639,2475,8.109,2476,5.509,2477,5.509,2479,6.476]],["t/802",[4,0.384,10,0.626,128,1.141,130,2.342,181,2.333,292,1.821,294,0.733,309,0.52,334,1.039,590,4.056,792,5.117,1111,3.436,1159,3.046,1168,2.827,1347,4.639,2475,8.109,2476,5.509,2477,5.509,2480,6.476]],["t/804",[4,0.407,10,0.581,130,2.047,294,0.776,309,0.551,334,1.101,347,2.682,353,6.243,422,4.204,533,5.836,708,5.29,792,5.313,877,3.889,1111,3.64,1302,4.628,2446,4.914,2481,6.243,2482,6.861,2483,6.861,2484,6.861]],["t/806",[4,0.412,10,0.585,130,2.063,294,0.786,309,0.558,334,1.114,347,2.714,422,4.237,792,5.916,877,3.936,1111,3.684,1302,4.684,1879,6.391,2446,4.974,2485,5.906,2486,6.944,2487,5.353]],["t/808",[4,0.412,10,0.585,130,2.063,294,0.786,309,0.558,334,1.114,347,2.714,422,4.237,792,5.916,877,3.936,1111,3.684,1302,4.684,2446,4.974,2485,5.906,2487,5.353,2488,8.923,2489,6.944]],["t/810",[4,0.412,10,0.585,130,2.063,294,0.786,309,0.558,334,1.114,347,2.714,422,4.237,792,5.916,877,3.936,1111,3.684,1302,4.684,2446,4.974,2485,5.906,2487,5.353,2490,8.923,2491,6.944]],["t/812",[4,0.412,10,0.585,130,2.063,294,0.786,309,0.558,334,1.114,347,2.714,422,4.237,792,5.916,877,3.936,1111,3.684,1302,4.684,2446,4.974,2481,6.318,2487,5.353,2492,8.923,2493,6.944]],["t/814",[4,0.417,10,0.651,11,3.108,130,2.079,294,0.795,309,0.564,347,2.747,422,4.27,792,4.217,1108,4.879,1111,3.729,1302,4.741,1647,6.395,2446,5.034,2487,5.418,2494,7.028,2495,7.028,2496,7.028]],["t/816",[199,3.318,207,4.903,294,0.905,504,7.282,506,6.452,600,4.384,680,6.169,869,5.934,995,5.732,1011,5.342,2497,8.002]],["t/818",[4,0.239,9,1.072,10,0.697,46,4.7,69,1.94,114,2.471,136,2.286,140,1.184,166,2.054,175,2.889,181,1.453,199,1.672,297,6.3,309,0.324,334,0.647,468,3.431,490,3.252,528,1.846,569,2.65,613,3.67,638,2.8,648,1.891,669,3.252,703,2.328,804,2.991,942,2.889,993,3.252,995,2.889,1000,2.65,1159,3.532,1168,2.715,1177,2.373,1198,5.666,1281,5.686,1358,3.252,1488,3.431,1660,2.174,1704,3.109,1759,2.991,2273,3.67,2498,4.033,2499,6.096,2500,6.096,2501,6.096,2502,8.191]],["t/820",[4,0.292,10,0.592,128,0.868,130,2.367,136,4.006,161,3.019,168,2.23,181,1.775,201,2.575,207,3.019,297,5.061,309,0.396,334,0.791,347,1.926,365,2.957,529,4.192,792,4.24,904,3.234,1135,5.239,1159,3.223,1168,2.343,1351,9.045,1374,2.899,1542,6.011,1597,5.448,1731,3.325,2503,7.066,2504,8.26,2505,4.928]],["t/822",[1,4.322,4,0.427,10,0.599,130,2.112,294,0.815,309,0.578,334,1.156,347,2.815,422,4.763,1111,3.822,1159,2.573,1168,2.388,1281,6.341,2506,7.204,2507,7.204]],["t/824",[4,0.388,10,0.629,130,2.216,294,0.972,309,0.526,334,1.051,347,2.56,510,3.781,746,4.013,1015,3.853,1159,3.068,1168,2.848,1269,5.96,1270,7.817,1544,7.108,2468,5.96,2508,6.55,2509,6.55]],["t/826",[4,0.363,9,0.807,10,0.678,35,2.048,38,0.684,54,1.946,61,2.184,65,2.341,75,1.995,83,1.247,114,1.86,115,1.358,130,1.997,148,1.753,161,1.86,166,2.064,169,1.995,199,1.259,242,2.341,257,2.763,269,1.995,304,1.637,309,0.492,334,0.487,336,2.769,406,0.999,421,1.995,423,1.946,470,5.575,473,2.048,474,4.155,475,3.765,530,4.515,539,2.108,555,3.938,648,1.424,670,1.541,756,2.251,759,3.295,779,2.448,792,3.677,793,2.448,818,2.319,841,2.763,867,1.946,903,1.587,1041,2.448,1043,2.108,1046,1.995,1312,2.873,1390,2.251,1555,3.391,1660,1.637,1694,4.155,1731,2.048,1820,2.583,1881,3.622,2336,2.763,2407,2.763,2510,3.036,2511,3.036,2512,3.036,2513,2.763,2514,3.036,2515,4.884,2516,3.036,2517,6.127,2518,4.884,2519,3.036,2520,4.884,2521,3.036,2522,3.036,2523,3.036,2524,3.036,2525,3.036,2526,3.036,2527,3.036]],["t/828",[4,0.358,10,0.695,24,4.787,128,0.701,130,1.88,168,1.799,181,1.433,250,2.613,294,0.92,309,0.484,334,0.638,347,1.555,365,2.387,475,4.651,510,3.482,590,3.778,696,4.188,804,2.949,871,3.207,948,2.761,989,5.213,1015,2.34,1111,3.201,1159,2.905,1168,2.696,1281,4.188,1289,2.613,1324,3.383,1358,4.864,1374,2.34,1519,6.558,1731,2.683,2471,3.383,2513,3.619,2528,7.287,2529,3.978,2530,6.032,2531,6.032,2532,6.032,2533,3.978]],["t/830",[4,0.422,10,0.595,58,2.058,130,2.095,294,0.805,309,0.571,334,1.141,347,2.781,422,4.735,596,7.709,1111,3.775,1159,3.237,1168,2.359,1281,4.939,2534,7.115]],["t/832",[4,0.422,10,0.595,130,2.095,250,4.674,294,0.805,309,0.571,334,1.141,347,2.781,376,6.291,422,4.735,1111,3.775,1159,2.541,1168,3.004,1281,4.939,2535,7.115]],["t/834",[4,0.335,10,0.629,38,1.273,113,3.694,128,0.996,130,2.057,161,4.766,182,2.718,191,3.046,207,3.463,292,1.589,309,0.454,334,0.907,347,3.041,473,3.813,823,5.401,1179,5.143,1373,5.401,1880,4.048,2536,5.652,2537,5.652,2538,7.78,2539,7.78,2540,7.78,2541,7.08,2542,7.78,2543,5.652]],["t/836",[4,0.427,10,0.599,128,1.269,130,2.319,191,3.883,292,2.025,309,0.578,334,1.156,1373,6.341,1880,5.16,2541,6.555,2544,7.204,2545,9.134,2546,7.204,2547,7.204]],["t/838",[57,2.87,290,4.514,441,4.928]],["t/840",[4,0.255,10,0.765,57,1.351,128,1.128,130,1.766,168,1.947,181,1.55,185,1.861,196,2.484,219,1.803,285,3.083,294,0.487,303,7.197,309,0.346,334,0.69,347,1.682,382,1.245,942,4.584,1306,3.47,1396,2.695,1731,2.903,1806,5.444,1813,3.661,1941,6.161,2178,3.916,2548,3.916,2549,4.304,2550,6.953,2551,7.699,2552,6.4,2553,3.916,2554,4.304]],["t/842",[4,0.289,9,1.712,10,0.778,38,1.097,57,1.171,128,0.657,181,0.79,185,0.949,219,2.407,285,2.673,289,2.767,294,0.551,303,5.959,309,0.391,334,0.352,336,1.244,337,1.48,382,1.08,391,1.959,406,0.722,414,1.691,432,1.374,489,1.48,510,1.266,545,2.517,555,1.769,762,3.009,1093,1.996,1284,2.195,1532,1.866,1555,1.523,1701,3.754,1798,1.866,1805,3.926,1806,5.478,1808,1.866,1813,4.142,1941,6.026,1945,1.996,2268,5.228,2548,3.396,2550,5.228,2551,8.165,2553,1.996,2555,2.194,2556,2.194,2557,2.194,2558,2.194,2559,2.194,2560,2.194]],["t/844",[57,2.87,290,4.514,441,4.928]],["t/846",[4,0.438,10,0.609,50,2.708,128,1.302,130,2.145,196,5.358,294,0.836,309,0.593,334,1.185,459,6.648,1128,6.284,2561,6.284,2562,7.388,2563,7.388]],["t/848",[4,0.541,10,0.473,50,2.641,128,1.269,130,2.319,294,0.815,309,0.578,334,1.156,337,6.162,459,6.543,1128,6.128,1312,4.238,1759,5.341,2561,6.128,2564,7.204]],["t/850",[4,0.292,10,0.763,41,3.159,69,2.37,227,3.53,294,0.558,309,0.396,334,0.791,459,5.917,487,3.693,1092,3.654,1559,3.654,1700,3.974,1701,3.799,1805,3.974,2167,4.485,2170,3.654,2471,4.192,2561,4.192,2565,4.928,2566,4.928,2567,4.928,2568,4.928,2569,8.26,2570,4.928,2571,4.928,2572,4.928,2573,4.928,2574,4.928,2575,4.928,2576,4.928,2577,4.928]],["t/852",[57,2.87,290,4.514,441,4.928]],["t/854",[4,0.427,9,1.914,10,0.677,57,2.259,115,2.262,294,0.814,309,0.578,400,2.867,404,3.511,406,3.298,460,5.653,528,3.836,568,3.75,578,5.086,902,3.537,989,3.242,2578,4.856,2579,3.899,2580,7.953,2581,5.058]],["t/856",[14,4.128,130,1.958,473,5.715,545,5.715,670,4.3,974,5.566,1155,7.207,1745,7.709]],["t/858",[4,0.338,10,0.662,57,1.792,151,3.563,164,3.75,195,2.781,199,2.367,207,3.497,292,2.202,294,0.646,309,0.458,460,6.033,577,3.236,578,4.364,590,3.574,648,2.677,741,4.855,902,3.278,1347,4.088,2578,3.851,2579,6.039,2580,4.401,2582,4.855,2583,5.708,2584,5.708,2585,5.708,2586,5.708,2587,5.708]],["t/860",[4,0.38,10,0.688,57,2.01,148,3.697,151,2.552,168,2.897,292,2.38,294,0.725,309,0.514,347,2.503,406,3.118,460,5.71,578,4.716,902,2.348,1544,4.749,2578,4.32,2580,4.937,2582,8.065,2588,6.405]],["t/862",[4,0.397,9,1.782,10,0.674,13,3.451,38,1.51,136,3.799,199,2.779,235,2.571,242,5.167,292,1.884,294,0.758,309,0.538,406,2.204,902,2.457,2589,8.72,2590,5.167,2591,5.404,2592,5.404,2593,6.702,2594,8.72,2595,6.702]],["t/864",[4,0.432,9,1.939,10,0.604,15,3.996,292,2.051,294,0.825,309,0.586,406,2.399,902,2.674,1238,4.469,1401,4.675,1785,5.409,2425,6.205,2591,5.882,2592,5.882,2596,7.295,2597,6.638,2598,7.295]],["t/866",[4,0.438,9,2.468,10,0.609,128,1.302,140,2.724,292,2.077,294,0.836,309,0.593,406,2.43,902,2.708,2591,5.957,2592,5.957,2599,5.957,2600,7.388,2601,7.388]],["t/868",[4,0.438,9,1.964,10,0.609,128,1.302,140,2.724,292,2.077,294,0.836,309,0.593,406,2.43,902,3.403,2591,5.957,2592,5.957,2599,5.957,2602,7.388,2603,7.388]],["t/870",[4,0.438,10,0.609,57,2.319,115,3.304,201,3.861,294,0.836,309,0.593,460,6.261,578,4.116,1238,4.526,2425,6.284,2578,4.984,2582,6.284,2604,7.388,2605,7.388,2606,7.388]],["t/872",[4,0.402,9,1.803,10,0.577,45,5.028,57,2.128,73,3.714,128,1.195,140,1.99,148,3.914,151,2.702,292,1.906,294,0.767,309,0.544,406,2.89,460,6.576,578,3.777,902,2.486,2578,4.574,2580,5.227,2599,5.467,2607,6.781]],["t/874",[4,0.417,10,0.59,57,2.206,128,1.238,151,2.8,292,1.976,294,0.795,309,0.564,460,6.066,578,3.915,902,2.577,2060,6.395,2578,4.741,2579,5.418,2590,5.418,2608,7.028,2609,7.028,2610,5.978,2611,6.395,2612,5.667]],["t/876",[1,1.775,4,0.175,9,0.787,10,0.584,34,1.853,38,0.666,57,0.929,128,0.521,140,0.868,164,4.543,181,1.066,201,1.546,294,0.335,309,0.238,365,1.775,460,3.227,528,4.579,572,1.853,575,2.517,578,4.762,590,4.754,800,2.692,869,3.547,887,2.692,989,6.411,1001,6.591,1044,4.352,1187,2.692,1267,2.281,1289,3.142,1784,2.517,1785,6.339,2578,1.996,2579,5.331,2580,4.642,2590,3.687,2597,5.478,2599,4.855,2610,6.458,2612,4.855,2613,2.517,2614,2.959,2615,4.783,2616,4.783,2617,2.959,2618,2.692,2619,2.959,2620,6.915,2621,2.959,2622,2.959,2623,2.959,2624,4.783,2625,2.959]],["t/878",[4,0.375,9,1.684,10,0.551,34,3.967,57,1.988,115,2.833,128,1.116,169,4.161,201,3.31,294,0.717,309,0.509,528,3.846,572,3.967,578,3.529,669,5.107,974,4.161,989,4.06,1001,4.883,1785,6.231,2578,4.273,2590,6.478,2612,5.107,2613,5.388,2618,5.764,2626,6.334,2627,6.334,2628,6.334]],["t/880",[4,0.287,10,0.587,34,3.034,57,1.521,128,0.854,164,4.586,201,2.532,294,0.548,309,0.389,460,4.709,528,2.218,572,3.034,575,4.122,578,4.558,590,5.124,989,5.738,1001,6.308,1104,7.445,1289,3.183,1785,6.067,2578,3.269,2579,5.382,2590,5.382,2610,4.122,2611,6.352,2612,5.629,2613,4.122,2629,4.846,2630,4.846,2631,8.182,2632,6.981,2633,4.846,2634,4.846,2635,4.846]]],"invertedIndex":[["",{"_index":10,"t":{"4":{"position":[[34,2],[39,2],[1225,1],[1283,1],[1345,1],[1477,1],[1556,1]]},"10":{"position":[[20,3],[46,3],[506,1]]},"14":{"position":[[134,1],[138,1],[162,1],[298,1]]},"16":{"position":[[44,4],[77,4],[373,1],[514,2],[531,1],[906,3],[1356,1],[1524,1],[1569,1],[1629,1],[2057,1],[2184,1],[2259,1],[2278,1],[2360,1]]},"18":{"position":[[138,1]]},"20":{"position":[[50,1],[219,1],[287,1]]},"22":{"position":[[81,1],[111,3],[168,5],[348,3],[360,2],[363,5],[465,2],[476,1],[487,3],[497,3],[803,2],[1262,3],[1266,3],[1270,3],[1747,1],[2232,1],[2298,1],[2353,1],[2595,1],[3057,1],[3097,1],[3148,1],[3230,1]]},"26":{"position":[[37,1],[274,4],[394,1]]},"32":{"position":[[33,3],[42,2],[54,4],[59,3],[63,3],[107,3],[118,4],[123,3],[127,3],[154,2],[157,1],[167,1],[176,2],[240,2],[290,2],[412,1]]},"36":{"position":[[260,1]]},"40":{"position":[[165,1],[176,1],[607,3],[833,1],[901,1],[953,3],[960,3],[1203,1],[1254,1],[1295,1],[1324,4],[1395,1],[1543,1],[1725,1],[1779,1],[1881,1]]},"44":{"position":[[70,1],[89,1],[110,1]]},"46":{"position":[[162,1]]},"48":{"position":[[54,1]]},"50":{"position":[[41,1],[87,2],[389,1],[412,1],[436,1]]},"52":{"position":[[33,1],[347,4]]},"56":{"position":[[276,1]]},"62":{"position":[[517,1]]},"68":{"position":[[238,1]]},"74":{"position":[[114,1],[217,1],[299,2],[563,2]]},"76":{"position":[[128,2]]},"83":{"position":[[418,1],[480,1]]},"89":{"position":[[847,1]]},"95":{"position":[[44,1],[230,1],[264,1],[283,1],[287,2],[302,1],[306,2],[321,1],[325,2],[345,1],[430,1],[459,1],[540,1],[588,1]]},"97":{"position":[[199,1],[264,1],[353,1],[414,1],[420,1]]},"99":{"position":[[318,1],[508,1]]},"103":{"position":[[227,1],[266,1],[434,3],[454,1],[506,3]]},"105":{"position":[[244,1],[246,1]]},"107":{"position":[[229,1],[231,1],[389,1],[391,1],[440,1],[442,1],[497,1],[499,1],[582,1],[584,1],[928,3]]},"111":{"position":[[314,1],[319,2],[1094,1],[1099,2]]},"117":{"position":[[61,1]]},"122":{"position":[[107,1],[155,1],[291,1],[344,1]]},"132":{"position":[[125,1]]},"136":{"position":[[115,1]]},"138":{"position":[[135,1],[180,1]]},"142":{"position":[[203,1],[319,1],[348,1]]},"146":{"position":[[136,3],[193,1],[250,1],[298,2],[432,1],[489,1],[553,2]]},"148":{"position":[[90,1],[193,1],[312,1],[314,2],[327,1],[329,2]]},"150":{"position":[[162,1]]},"152":{"position":[[257,1],[273,2]]},"154":{"position":[[223,1],[345,1],[374,1]]},"161":{"position":[[98,1],[115,1],[200,1],[212,1],[222,1],[224,19]]},"163":{"position":[[102,1],[104,2],[182,1],[196,1],[198,2],[201,1],[203,16]]},"165":{"position":[[100,1],[102,1],[108,1],[125,1],[142,1],[153,1],[222,1],[230,1],[241,1],[243,16]]},"167":{"position":[[119,1],[127,1],[206,1],[212,1],[222,1],[224,13]]},"169":{"position":[[67,1],[83,2],[193,1],[212,1],[214,16]]},"171":{"position":[[202,1],[221,1],[223,16]]},"173":{"position":[[114,1],[155,2],[264,1],[276,1],[278,1],[280,11]]},"175":{"position":[[84,1],[163,1],[183,1],[188,1],[190,22]]},"177":{"position":[[226,1],[261,1],[263,32]]},"179":{"position":[[95,1],[186,1],[200,1],[210,1],[212,21]]},"181":{"position":[[208,1],[232,1],[234,21]]},"183":{"position":[[87,1],[241,1],[251,1],[253,7],[307,1],[321,1],[516,1]]},"185":{"position":[[135,1],[212,1],[216,1],[220,1],[222,5]]},"187":{"position":[[164,1],[290,1],[302,1],[304,9]]},"191":{"position":[[296,1],[298,2],[317,1],[373,1]]},"193":{"position":[[143,1],[193,1]]},"195":{"position":[[128,1],[177,1],[215,1],[301,2],[318,1],[370,1],[408,1]]},"199":{"position":[[43,1],[45,1],[55,1],[191,1],[246,1]]},"201":{"position":[[43,1],[45,1],[52,1],[66,1],[71,1],[203,1],[222,1],[257,1],[269,1],[271,1]]},"203":{"position":[[178,1],[195,1],[230,1],[234,1],[244,1],[250,1],[252,1]]},"205":{"position":[[95,3],[119,1],[134,1],[136,1],[146,3]]},"207":{"position":[[179,1],[235,1]]},"209":{"position":[[137,1],[214,1],[218,1],[222,1],[224,5]]},"211":{"position":[[127,1],[165,1],[180,1],[190,1],[205,1],[211,1],[248,1],[287,1],[451,1],[479,1],[518,1]]},"215":{"position":[[106,2],[128,2],[150,2],[254,1],[278,1],[312,2],[334,2],[356,2],[378,2],[492,2]]},"217":{"position":[[152,2],[183,2]]},"219":{"position":[[225,3]]},"221":{"position":[[95,2],[117,2],[139,2]]},"225":{"position":[[116,1],[118,1],[146,1],[185,1],[191,1],[197,1],[203,1],[213,1],[281,1],[283,1],[311,1]]},"227":{"position":[[97,1],[114,1],[160,1],[181,1],[217,1],[234,1],[254,1],[268,1],[285,1],[483,1],[493,1],[545,1]]},"229":{"position":[[383,1],[385,1],[401,1],[411,1]]},"233":{"position":[[147,1],[149,1],[151,3],[155,1],[212,1],[364,1]]},"235":{"position":[[130,1],[145,1],[241,1],[264,1]]},"237":{"position":[[169,1],[184,1],[296,1]]},"241":{"position":[[156,1],[282,1],[294,1],[296,9],[435,1]]},"245":{"position":[[104,1],[126,2]]},"247":{"position":[[90,1],[107,2],[201,1],[222,2]]},"250":{"position":[[241,1],[243,1],[250,1],[260,1],[277,1],[661,2],[756,3],[815,1]]},"252":{"position":[[269,1],[573,1],[605,1],[637,1]]},"254":{"position":[[65,1],[314,1],[430,1],[462,1]]},"256":{"position":[[102,1],[133,1],[135,1],[143,1],[148,1],[161,1],[163,2],[172,2],[175,1],[180,1],[182,2],[199,1],[271,1],[302,1],[304,1],[312,1],[317,1],[359,1],[467,3]]},"260":{"position":[[93,1],[95,2],[254,1],[256,1],[314,1]]},"262":{"position":[[131,1],[133,1],[175,1],[194,1]]},"264":{"position":[[148,1],[150,1],[189,1],[200,1],[213,1],[252,1]]},"266":{"position":[[156,1],[199,2],[202,1],[245,1]]},"268":{"position":[[105,1],[150,1]]},"270":{"position":[[86,1],[137,1],[170,1]]},"272":{"position":[[158,5],[220,1],[506,1],[546,1]]},"274":{"position":[[217,1],[233,1],[297,1]]},"276":{"position":[[280,1]]},"278":{"position":[[168,1],[191,1],[432,1]]},"280":{"position":[[82,1],[101,1],[123,1]]},"282":{"position":[[247,1],[249,2],[401,1],[426,2],[436,1],[438,2],[498,1],[712,1],[742,1],[773,2],[811,1],[821,1],[837,2]]},"288":{"position":[[18,1],[214,1],[539,1],[690,1],[803,1]]},"290":{"position":[[80,2],[356,1],[358,1],[392,1]]},"292":{"position":[[137,1],[147,1],[173,1],[189,1],[205,1],[222,1],[256,1],[342,1],[344,2],[366,4],[542,1],[564,1],[598,1],[621,1],[644,1],[749,1]]},"296":{"position":[[54,1],[181,1]]},"298":{"position":[[94,1],[196,1]]},"300":{"position":[[158,1],[177,1],[196,1],[214,1],[233,1],[256,1],[287,1],[529,1],[575,1],[618,1]]},"304":{"position":[[126,1],[139,1],[152,1],[190,1],[194,1],[198,1],[202,1]]},"306":{"position":[[80,1],[92,1],[106,1],[113,1],[148,1]]},"308":{"position":[[70,1],[74,1],[187,1],[194,1],[199,2]]},"311":{"position":[[120,1],[175,2],[194,3]]},"313":{"position":[[67,2],[84,1],[102,2],[121,2],[142,3],[154,2],[167,2],[183,2],[198,2],[214,2],[456,3],[476,3],[495,3],[515,3],[533,1],[539,1],[543,1],[549,2]]},"315":{"position":[[4,2],[7,3],[11,2],[18,2],[75,1],[79,1],[181,1],[191,1]]},"317":{"position":[[235,2],[274,1],[308,1],[354,1],[457,2],[477,1],[533,1],[567,1],[613,1],[714,3],[768,1],[802,1],[848,1]]},"319":{"position":[[101,2],[291,1],[507,2],[529,3],[578,1],[620,3]]},"321":{"position":[[151,1],[155,3],[170,1],[174,3],[190,1],[194,3],[220,1],[472,2],[480,1],[496,2],[504,1],[520,2],[528,1]]},"323":{"position":[[83,1],[96,1],[98,1],[158,2],[173,2],[184,2],[195,1],[197,1],[201,1],[212,1],[214,3],[220,1],[234,1],[236,1],[240,1],[251,1],[281,1],[298,1],[373,1],[395,1],[454,1],[476,1],[508,1],[510,2],[515,1],[528,1],[554,1],[564,1],[606,1],[608,1]]},"325":{"position":[[118,1],[120,2],[124,1],[142,2],[158,2],[169,1]]},"327":{"position":[[95,1],[97,2],[101,1],[116,1],[118,1],[158,1],[176,1],[189,1],[204,2],[220,2],[231,1]]},"329":{"position":[[140,1],[142,2],[146,1],[162,2],[172,1],[207,1]]},"331":{"position":[[84,1]]},"337":{"position":[[89,2],[94,2],[99,1],[105,2],[110,2],[115,1],[121,2],[126,2],[131,2]]},"339":{"position":[[134,1],[136,1],[164,1],[358,1],[360,1],[388,1]]},"343":{"position":[[99,1],[115,1],[134,1],[136,1],[138,2],[159,1],[161,1],[163,2],[205,1],[207,1],[209,2]]},"347":{"position":[[218,1],[220,1],[228,1],[236,1],[353,1],[369,2]]},"353":{"position":[[28,1],[38,2],[157,1],[164,1],[174,2],[199,1],[201,39]]},"355":{"position":[[32,1],[44,2],[50,2],[61,1],[150,1],[161,1],[173,2],[179,2],[190,1],[195,1],[197,42],[255,1],[257,2]]},"359":{"position":[[141,1],[150,2],[445,2]]},"363":{"position":[[44,1],[158,1],[235,2],[252,1],[462,1],[466,2]]},"365":{"position":[[46,1],[157,1],[241,2],[265,1],[509,1],[513,2]]},"367":{"position":[[47,1],[161,1],[247,2],[271,1],[516,1],[520,2]]},"369":{"position":[[96,1],[210,1],[332,2],[356,1],[628,1],[632,2]]},"371":{"position":[[142,1],[325,1],[418,2],[442,1],[696,1],[700,2]]},"373":{"position":[[49,1],[159,1],[252,2],[276,1],[521,1],[525,2]]},"375":{"position":[[325,1],[351,1],[460,1],[541,2],[565,1],[689,2],[725,3],[752,3],[768,2],[792,1],[842,1],[848,1],[870,1],[892,1],[910,1],[916,1],[941,1],[963,1],[967,2]]},"377":{"position":[[329,1],[355,1],[460,1],[570,3],[597,3]]},"379":{"position":[[60,1],[87,1],[199,1],[278,2],[302,1],[350,1],[355,2],[366,2]]},"381":{"position":[[72,1],[99,1],[223,1],[306,2],[330,1],[380,2],[386,2],[397,2]]},"383":{"position":[[63,1],[90,1],[206,1],[291,2],[315,1],[366,1],[371,2],[382,2]]},"385":{"position":[[75,1],[102,1],[230,1]]},"387":{"position":[[80,1],[104,3],[108,1],[272,1],[388,2],[412,1],[489,2]]},"389":{"position":[[76,1],[100,3],[104,1],[276,1],[394,2],[418,1],[496,2]]},"391":{"position":[[117,1],[186,1],[210,3],[214,1],[467,1],[616,2],[640,1],[721,2],[867,2],[891,1],[984,2]]},"393":{"position":[[210,1],[351,1],[659,1],[678,2],[717,1],[736,2]]},"397":{"position":[[51,1],[85,1]]},"399":{"position":[[50,1]]},"403":{"position":[[50,1],[84,1],[156,1],[216,1]]},"405":{"position":[[50,1],[96,1],[163,1]]},"407":{"position":[[115,1],[149,1],[222,1],[285,1]]},"409":{"position":[[64,1],[110,1],[178,1]]},"413":{"position":[[152,1],[204,1]]},"417":{"position":[[72,1],[130,1]]},"419":{"position":[[67,1],[128,1]]},"427":{"position":[[102,1],[170,1]]},"429":{"position":[[93,1],[139,1],[158,1]]},"431":{"position":[[93,1],[139,1],[158,1]]},"433":{"position":[[82,1],[127,1],[147,1]]},"435":{"position":[[92,1],[154,1]]},"443":{"position":[[468,1],[495,1],[532,1],[537,1],[552,1],[563,2],[598,1],[600,7],[608,1],[610,3],[614,7],[624,1],[626,1],[628,3],[632,1],[634,5],[640,1],[642,3],[646,1],[650,1],[652,1],[654,3],[658,1],[660,2],[663,2],[666,1],[668,3],[672,1],[676,1],[678,7],[686,5],[692,7],[702,1],[704,5],[710,4],[715,3],[719,6],[728,1],[730,10],[741,9],[753,1],[755,5],[761,1],[763,4],[768,5],[774,1],[778,1],[780,7],[788,1],[790,5],[796,3],[802,1],[804,1],[806,3],[810,1],[812,2],[815,7],[823,1],[827,1],[829,1],[831,3],[835,1],[837,2],[840,3],[844,4],[851,1],[853,7],[861,1],[863,1],[865,1],[867,1],[869,1]]},"457":{"position":[[97,1],[114,1],[116,1],[126,3],[138,1],[234,1]]},"463":{"position":[[42,1],[88,1],[121,1],[128,1],[130,1],[140,1],[162,1],[182,1],[184,1],[186,2],[200,1],[221,1]]},"465":{"position":[[60,1],[99,1],[208,1],[241,1],[254,2],[297,2],[323,1],[325,1],[329,1],[335,1],[337,1],[341,1],[353,1],[382,1],[393,1],[415,1],[430,1],[432,1],[436,1],[442,1],[444,1],[448,1],[459,1],[482,1],[494,1],[528,1],[530,2],[535,1],[537,2],[542,1],[544,2],[549,1],[551,1],[690,1],[734,1],[829,1],[914,3],[930,1],[932,1],[936,1],[947,1],[949,1],[953,1],[964,1],[966,1],[970,1],[986,1],[1018,1],[1020,2],[1025,1],[1027,2],[1032,1],[1034,1],[1057,1],[1152,3],[1177,1],[1179,1],[1183,1],[1197,1],[1199,1],[1203,1],[1209,1],[1241,1],[1247,1],[1281,1],[1283,2],[1288,1],[1308,1],[1332,1],[1354,1],[1377,1],[1379,1]]},"467":{"position":[[32,1]]},"478":{"position":[[134,1],[164,1],[203,2]]},"480":{"position":[[117,1],[147,1],[186,2]]},"482":{"position":[[174,1],[204,1],[244,2]]},"484":{"position":[[117,1],[147,1],[187,2]]},"486":{"position":[[118,1],[148,1],[189,2]]},"488":{"position":[[175,1],[205,1],[246,2]]},"490":{"position":[[174,1],[204,1],[244,2]]},"492":{"position":[[233,1],[263,1],[304,2]]},"494":{"position":[[179,1],[209,1],[246,2]]},"496":{"position":[[120,1],[150,1],[193,2]]},"498":{"position":[[177,1],[207,1],[250,2]]},"500":{"position":[[177,1],[207,1],[250,2]]},"502":{"position":[[177,1],[207,1],[250,2]]},"504":{"position":[[178,1],[208,1],[252,2]]},"506":{"position":[[122,1],[152,1],[197,2]]},"508":{"position":[[122,1],[152,1],[197,2]]},"510":{"position":[[127,1],[157,1],[207,2]]},"513":{"position":[[220,1],[268,2],[349,2]]},"515":{"position":[[222,1],[272,2],[379,2]]},"517":{"position":[[222,1],[279,2]]},"519":{"position":[[222,1],[279,2]]},"521":{"position":[[254,2]]},"524":{"position":[[223,1]]},"528":{"position":[[17,1],[50,1],[168,1],[213,1],[219,1],[254,1]]},"530":{"position":[[17,1],[51,1],[169,1],[214,1],[220,1],[255,1],[387,1],[430,1],[471,1],[491,1],[550,1],[578,1],[586,2],[716,1]]},"534":{"position":[[17,1],[50,1],[136,1],[181,1],[187,1]]},"536":{"position":[[17,1],[104,1],[137,1],[182,1],[188,1],[324,1],[367,1],[411,1],[439,1],[447,2],[509,1],[603,1]]},"540":{"position":[[17,1],[50,1],[151,1],[200,1],[245,1],[251,1],[286,1]]},"542":{"position":[[17,1],[51,1],[79,1],[105,1],[150,1],[156,1],[191,1],[223,1],[398,1],[441,1],[475,1],[514,1],[534,1],[593,1],[626,1],[634,2],[793,1]]},"545":{"position":[[17,1],[39,1],[350,1],[409,1],[411,1],[415,1],[423,1],[584,1],[592,1],[603,1],[605,1],[630,1],[632,1],[636,1],[644,1],[728,1],[736,1],[819,1],[821,1]]},"547":{"position":[[129,1],[146,1],[148,1],[179,1],[181,1],[185,1],[283,1],[378,1]]},"549":{"position":[[127,1],[144,1],[146,1],[695,3],[713,1],[721,1],[809,1],[890,1]]},"551":{"position":[[17,1],[50,1],[128,1]]},"553":{"position":[[17,1],[51,1],[129,1],[265,1],[290,1],[292,1],[323,1],[325,1],[329,1],[427,1],[522,1],[555,1],[557,1],[561,1],[570,1],[741,1],[772,1],[795,1],[930,2],[970,1]]},"555":{"position":[[17,1],[42,1],[76,1]]},"557":{"position":[[17,1],[50,1],[84,1],[154,1],[290,1],[315,1],[317,1],[348,1],[350,1],[354,1],[452,1],[547,1],[580,1],[582,1],[586,1],[595,1],[766,1],[797,1],[817,1],[861,1],[867,2],[930,1],[1083,1]]},"560":{"position":[[325,1],[436,1],[482,1],[518,1],[558,1]]},"564":{"position":[[370,1],[416,1],[427,1],[432,1],[612,1],[644,1],[667,2],[680,1],[688,1],[745,2],[803,2]]},"566":{"position":[[128,1],[162,1],[190,1],[225,2],[228,2],[239,1],[257,1],[276,1]]},"570":{"position":[[129,1],[175,1],[210,2],[213,2],[224,1],[247,1],[266,1]]},"584":{"position":[[141,1],[173,1],[196,2],[209,1],[217,1],[286,2],[313,2],[342,2],[407,1],[439,1],[462,2],[475,1],[483,1],[517,1],[560,1],[623,2],[652,2]]},"586":{"position":[[32,1]]},"592":{"position":[[149,2]]},"596":{"position":[[124,1],[126,2],[137,1],[160,1]]},"598":{"position":[[162,1],[164,1],[176,1],[196,1],[217,1],[240,1],[261,1],[263,1],[289,1],[291,1],[316,1],[331,1],[359,1],[391,1],[393,1],[406,1],[447,1],[488,1],[530,1],[571,1],[614,1],[653,1],[692,1],[735,1],[774,1],[815,1],[854,1],[895,1],[933,1],[963,2],[976,1],[996,1],[998,1],[1004,1],[1042,2],[1045,1]]},"600":{"position":[[237,1],[239,1],[251,1],[268,1],[291,1],[312,1],[314,1],[340,1],[342,1],[369,1],[381,1],[398,1],[420,1],[422,1],[428,1],[455,2],[471,1],[480,1]]},"602":{"position":[[81,1],[134,1]]},"604":{"position":[[136,2],[187,2]]},"606":{"position":[[86,1],[98,1],[122,2],[125,2],[128,1],[142,1]]},"610":{"position":[[391,1],[410,1],[431,2],[2029,1],[2053,1],[2226,1],[2295,1],[2394,2]]},"612":{"position":[[385,1],[403,1],[405,1],[415,3],[431,1]]},"618":{"position":[[43,1],[107,1],[196,1],[230,1],[281,1],[304,1],[306,1],[312,1],[338,1],[340,1],[353,1],[360,1],[362,1],[397,1],[399,1],[403,1],[431,1],[443,1],[447,1],[470,1],[472,1],[476,1],[478,1],[595,1],[597,1],[607,1],[609,1],[625,2],[630,1],[637,1],[644,1],[648,1],[729,1],[759,1],[777,1],[836,1],[886,1]]},"620":{"position":[[198,1],[231,1],[319,4],[353,1],[424,1],[589,1],[655,1],[681,1],[715,1],[753,2],[783,2],[817,1],[819,1],[825,1],[843,1],[845,1],[858,1],[865,1],[867,1],[877,1],[911,1],[953,2],[986,2],[1031,2],[1057,1],[1059,3],[1095,3],[1107,1],[1144,1],[1188,2],[1219,2],[1267,2]]},"622":{"position":[[32,1]]},"632":{"position":[[125,1],[152,1]]},"634":{"position":[[121,1],[150,1]]},"648":{"position":[[286,1],[314,2],[322,3]]},"650":{"position":[[116,2]]},"652":{"position":[[307,1],[338,2],[407,2],[421,1]]},"654":{"position":[[276,1]]},"656":{"position":[[32,1]]},"658":{"position":[[74,1],[78,1],[90,2]]},"660":{"position":[[104,1],[133,1]]},"668":{"position":[[170,1],[208,1],[228,7],[289,1],[291,1],[295,1],[301,1],[326,1],[328,1],[380,1],[382,1],[386,1],[392,1],[416,1],[422,1],[455,1],[457,1],[497,1],[614,5],[685,1],[723,1],[818,1],[820,1],[824,1],[830,1],[863,1],[874,1],[898,1],[900,1]]},"670":{"position":[[20,1],[44,1]]},"678":{"position":[[177,1],[231,1],[264,2],[279,1],[346,2],[374,1],[380,1],[386,1],[392,1],[398,1],[573,1],[582,1],[591,1],[600,1]]},"680":{"position":[[178,1],[211,2],[292,1],[294,2],[298,1],[327,1],[394,2],[422,1],[428,1],[434,1],[440,1],[446,1]]},"682":{"position":[[243,1],[255,1],[257,1],[267,3],[283,1],[317,1],[326,1]]},"684":{"position":[[32,1]]},"698":{"position":[[277,1],[297,1],[299,1],[309,3],[325,1],[371,1],[390,1]]},"704":{"position":[[397,1],[430,1],[477,1]]},"708":{"position":[[179,1],[215,1],[313,1],[342,1]]},"710":{"position":[[792,1],[825,1],[956,1],[1033,2],[1096,1],[1122,1],[1124,1],[1134,3],[1150,1],[1152,1],[1154,1],[1162,1],[1236,1],[1297,1],[1299,1],[1313,1],[1360,1],[1405,1]]},"714":{"position":[[150,1],[207,1],[236,1],[260,1]]},"716":{"position":[[134,1],[200,1]]},"718":{"position":[[86,1],[150,1],[213,1]]},"720":{"position":[[87,1],[152,1],[195,1]]},"726":{"position":[[161,1],[194,1]]},"728":{"position":[[32,1]]},"730":{"position":[[94,1],[96,1],[106,1],[110,1]]},"734":{"position":[[135,1],[137,1],[156,1],[164,1],[184,1]]},"736":{"position":[[82,1],[84,1],[103,1],[111,1],[131,1],[163,1]]},"738":{"position":[[113,1],[198,1]]},"740":{"position":[[78,1],[80,2],[124,2]]},"742":{"position":[[165,1],[167,1],[191,1],[201,1],[231,2],[271,2],[317,2]]},"744":{"position":[[209,1],[211,1],[213,1],[218,1],[228,1],[238,2],[241,1],[246,1],[256,1],[267,2],[270,1],[297,1],[307,2],[321,1]]},"746":{"position":[[215,1],[217,1],[247,1],[274,1],[278,2],[294,1],[316,1]]},"748":{"position":[[114,1],[116,1],[130,1],[154,1],[164,1],[195,1],[221,2],[247,2],[258,1],[264,1],[273,1],[282,1],[291,1],[300,1],[313,1],[344,1],[365,1],[374,1],[380,1],[389,1],[398,1],[407,1],[416,1],[429,1],[460,1],[481,1],[485,2]]},"752":{"position":[[154,1],[183,1],[185,1],[218,1],[247,1],[260,2]]},"756":{"position":[[280,1],[282,1],[292,1],[313,1],[319,1],[325,1]]},"758":{"position":[[528,1],[530,1],[546,1],[565,1],[569,1],[573,2],[598,2],[601,2],[626,1],[628,1],[644,1],[666,1],[670,2],[701,2],[704,2]]},"762":{"position":[[289,1],[341,1],[345,1],[359,2],[362,2],[390,1],[445,1],[449,1],[469,2],[472,2],[668,1]]},"766":{"position":[[58,1],[332,1],[334,1],[344,1],[377,1],[385,1],[400,2],[411,1]]},"768":{"position":[[85,1],[87,1],[97,1],[116,1]]},"770":{"position":[[84,1],[86,1],[96,1],[115,1]]},"772":{"position":[[196,1],[200,1],[204,2],[210,1],[227,1],[247,1],[294,1],[298,1],[302,2],[308,1],[325,1],[345,1]]},"774":{"position":[[104,1],[106,1],[117,1],[138,1],[182,1],[196,1],[219,1]]},"776":{"position":[[134,1],[136,1],[175,1],[194,1],[204,1],[225,1],[231,1],[240,1],[249,1],[258,1],[273,1],[277,1]]},"778":{"position":[[242,1],[244,1],[263,1],[288,1],[298,1],[314,1],[316,1],[326,2],[329,1],[348,1],[350,1]]},"780":{"position":[[115,1],[117,1],[133,1],[150,1],[223,1]]},"782":{"position":[[254,1],[256,1],[272,1],[288,1],[298,1],[317,1],[327,1]]},"784":{"position":[[104,1],[106,1],[119,1],[132,1],[134,1],[159,1],[201,1],[211,1],[227,1],[236,1],[249,1],[259,1],[295,2],[303,1],[326,2],[334,1],[357,2],[365,1],[388,2],[396,1]]},"786":{"position":[[122,1],[124,1],[134,1],[187,2],[208,2],[229,2]]},"788":{"position":[[32,1]]},"790":{"position":[[99,1],[127,2]]},"792":{"position":[[103,1],[131,2]]},"794":{"position":[[245,1],[301,1],[303,2],[309,1],[364,1],[419,1],[495,1],[550,1],[625,1],[681,1],[683,2],[692,1],[738,1]]},"798":{"position":[[184,1],[228,7],[238,1]]},"800":{"position":[[188,1],[233,7],[243,1]]},"802":{"position":[[189,1],[234,7],[244,1]]},"804":{"position":[[108,1],[153,1]]},"806":{"position":[[112,1],[154,1]]},"808":{"position":[[113,1],[155,1]]},"810":{"position":[[112,1],[154,1]]},"812":{"position":[[115,1],[160,1]]},"814":{"position":[[116,1],[118,1],[171,1]]},"818":{"position":[[166,1],[205,1],[246,1],[600,4],[605,5],[613,1],[676,4],[683,1],[758,1],[820,2],[823,4],[830,1]]},"820":{"position":[[367,3],[500,1],[561,1],[620,1]]},"822":{"position":[[116,1],[168,1]]},"824":{"position":[[140,1],[165,1],[214,1]]},"826":{"position":[[428,1],[463,1],[533,1],[735,1],[774,1],[816,1],[860,1],[899,4],[910,1],[949,4],[960,1],[1001,4],[1012,1],[1211,4],[1305,1]]},"828":{"position":[[423,1],[471,1],[493,1],[495,2],[512,2],[537,2],[606,1],[654,1],[676,1],[678,2],[701,2],[740,2]]},"830":{"position":[[121,1],[174,1]]},"832":{"position":[[123,1],[178,1]]},"834":{"position":[[264,1],[300,1],[345,1],[387,1]]},"836":{"position":[[125,1],[161,1]]},"840":{"position":[[42,1],[87,1],[174,1],[219,1],[238,1],[240,1],[242,1],[248,1],[270,1],[272,1],[283,1],[295,2],[307,1],[309,1],[323,1],[325,2],[328,1],[334,1],[344,1],[346,1],[348,2],[360,1],[371,1],[398,1],[412,1],[425,1],[445,1]]},"842":{"position":[[60,1],[93,1],[210,3],[230,1],[263,1],[353,3],[380,1],[382,1],[386,1],[396,1],[421,1],[436,1],[438,1],[442,1],[448,1],[450,1],[454,1],[464,1],[487,1],[504,1],[506,1],[510,1],[521,1],[546,1],[548,2],[553,1],[568,1],[570,1],[574,1],[580,1],[582,1],[586,1],[596,1],[618,1],[633,1],[635,1],[639,1],[645,1],[670,1],[672,2],[677,1],[679,2],[684,1],[686,2],[691,1],[693,2],[698,1],[700,2],[705,1],[707,1],[929,1],[931,1],[935,1],[945,1],[967,1],[982,1],[984,1],[988,1],[994,1],[1019,1],[1021,2],[1026,1],[1028,1],[1128,1],[1196,5],[1204,1],[1206,1],[1210,1],[1220,1],[1242,1],[1257,1],[1259,1],[1263,1],[1269,1],[1271,1],[1275,1],[1285,1],[1308,1],[1310,2],[1315,1],[1321,1],[1323,1],[1327,1],[1337,1],[1360,1],[1362,2],[1367,1],[1369,2],[1374,1],[1376,1]]},"846":{"position":[[84,1],[185,1]]},"848":{"position":[[113,1]]},"850":{"position":[[94,1],[207,1],[209,1],[213,1],[226,1],[248,1],[259,1],[285,1],[296,1],[322,1],[333,1],[359,1],[370,1],[380,1],[391,1],[414,1],[426,1],[453,1],[468,1],[492,1],[494,1]]},"854":{"position":[[61,1],[110,1],[153,1],[199,1],[248,1],[328,1],[380,1]]},"858":{"position":[[178,1],[225,1],[245,1],[295,1],[302,1]]},"860":{"position":[[82,1],[135,2],[156,1],[190,2],[211,1]]},"862":{"position":[[79,3],[129,1],[184,1],[227,1]]},"864":{"position":[[59,1],[119,1]]},"866":{"position":[[65,1],[125,1]]},"868":{"position":[[66,1],[126,1]]},"870":{"position":[[84,1],[154,1]]},"872":{"position":[[91,1],[155,1]]},"874":{"position":[[85,1],[154,1]]},"876":{"position":[[321,1],[408,1],[496,1],[601,1],[704,1],[807,1],[897,1],[988,1]]},"878":{"position":[[105,1],[216,1]]},"880":{"position":[[98,1],[186,1],[306,1],[427,1]]}}}],["0",{"_index":528,"t":{"24":{"position":[[122,1]]},"26":{"position":[[423,4]]},"95":{"position":[[228,1],[244,1],[260,1],[277,1],[281,1],[296,1],[315,1],[341,1],[343,1],[597,1]]},"215":{"position":[[256,2],[315,2],[495,2]]},"250":{"position":[[817,2]]},"321":{"position":[[222,2],[421,2],[475,2],[499,2],[523,2]]},"381":{"position":[[291,2],[383,2]]},"443":{"position":[[308,2]]},"482":{"position":[[126,1]]},"488":{"position":[[127,1]]},"490":{"position":[[126,1]]},"492":{"position":[[185,1]]},"498":{"position":[[129,1]]},"500":{"position":[[129,1]]},"502":{"position":[[129,1]]},"504":{"position":[[130,1]]},"576":{"position":[[34,1]]},"604":{"position":[[139,2],[190,2]]},"620":{"position":[[336,2]]},"658":{"position":[[76,1],[80,1]]},"668":{"position":[[297,3],[418,3],[546,2],[826,3]]},"678":{"position":[[281,1]]},"680":{"position":[[329,1]]},"710":{"position":[[1549,1],[1551,1]]},"736":{"position":[[165,1]]},"766":{"position":[[289,2]]},"772":{"position":[[207,2],[305,2]]},"818":{"position":[[335,2]]},"854":{"position":[[123,2],[126,2],[215,2]]},"876":{"position":[[429,2],[453,2],[513,2],[543,2],[623,2],[647,2],[725,2],[749,2],[822,2],[852,2],[917,2],[941,2],[1010,2]]},"878":{"position":[[167,3],[237,2]]},"880":{"position":[[146,2]]}}}],["0):normal",{"_index":2609,"t":{"874":{"position":[[135,16]]}}}],["0):reorder():concat",{"_index":2411,"t":{"758":{"position":[[576,21]]}}}],["0):todir(\"i",{"_index":2630,"t":{"880":{"position":[[149,14]]}}}],["0):todir(\"yl",{"_index":2633,"t":{"880":{"position":[[252,15]]}}}],["0):todir(\"yr",{"_index":2635,"t":{"880":{"position":[[372,15]]}}}],["0):torot(\"i",{"_index":2617,"t":{"876":{"position":[[371,14]]}}}],["0):torot(\"yl",{"_index":2622,"t":{"876":{"position":[[650,15]]}}}],["0):torot(\"yr",{"_index":2621,"t":{"876":{"position":[[546,15]]}}}],["0):torot(\"zr",{"_index":2623,"t":{"876":{"position":[[752,15]]}}}],["0.0",{"_index":2612,"t":{"874":{"position":[[174,4]]},"876":{"position":[[424,4],[517,4],[912,4]]},"878":{"position":[[232,4]]},"880":{"position":[[321,4],[443,4]]}}}],["0.2.0",{"_index":1003,"t":{"107":{"position":[[366,7]]}}}],["0.4",{"_index":2585,"t":{"858":{"position":[[290,4]]}}}],["0.4.0",{"_index":691,"t":{"50":{"position":[[375,5]]}}}],["0.4.1",{"_index":729,"t":{"58":{"position":[[39,5]]}}}],["0.5.0",{"_index":1005,"t":{"107":{"position":[[417,7]]}}}],["0.6",{"_index":2584,"t":{"858":{"position":[[285,4]]}}}],["0.6.0",{"_index":655,"t":{"40":{"position":[[1630,6]]},"107":{"position":[[474,7]]}}}],["0.7.0",{"_index":557,"t":{"30":{"position":[[72,5]]}}}],["0.8.0",{"_index":1006,"t":{"107":{"position":[[559,7],[780,7],[893,8]]},"173":{"position":[[324,8]]},"590":{"position":[[88,6]]}}}],["0.8.0'",{"_index":1008,"t":{"107":{"position":[[715,7]]}}}],["0.9.0",{"_index":370,"t":{"18":{"position":[[90,5]]},"107":{"position":[[1008,6],[1087,8],[1121,8]]},"604":{"position":[[127,8]]}}}],["0.9.1",{"_index":232,"t":{"12":{"position":[[47,6]]}}}],["0000019feda45580",{"_index":915,"t":{"95":{"position":[[402,17]]}}}],["00007ff6211485a0",{"_index":913,"t":{"95":{"position":[[376,16],[475,16]]}}}],["00007ff7738b30d0",{"_index":2090,"t":{"598":{"position":[[459,17]]}}}],["00007ff7738b3220",{"_index":2093,"t":{"598":{"position":[[542,17]]}}}],["00007ff7738b33c0",{"_index":2106,"t":{"598":{"position":[[907,17]]}}}],["00007ff7738b34d0",{"_index":2103,"t":{"598":{"position":[[786,17]]}}}],["00007ff7738b37f0",{"_index":2104,"t":{"598":{"position":[[827,17]]}}}],["00007ff7738b3b10",{"_index":2100,"t":{"598":{"position":[[704,17]]}}}],["00007ff7738b3c20",{"_index":2089,"t":{"598":{"position":[[418,17]]}}}],["00007ff7738b42b0",{"_index":2105,"t":{"598":{"position":[[866,17]]}}}],["00007ff7738b43b0",{"_index":2098,"t":{"598":{"position":[[665,17]]}}}],["00007ff7738b43f0",{"_index":2091,"t":{"598":{"position":[[500,17]]}}}],["00007ff7738b44b0",{"_index":2096,"t":{"598":{"position":[[626,17]]}}}],["00007ff7738b4540",{"_index":2101,"t":{"598":{"position":[[747,17]]}}}],["00007ff7738b4700",{"_index":2094,"t":{"598":{"position":[[583,17]]}}}],["00007ff7738b49a0",{"_index":2108,"t":{"598":{"position":[[945,17]]}}}],["0b1000101",{"_index":1316,"t":{"247":{"position":[[203,9]]}}}],["0x000000",{"_index":1776,"t":{"443":{"position":[[360,8],[554,8]]}}}],["0x0f",{"_index":2451,"t":{"784":{"position":[[114,4],[336,5],[398,5]]}}}],["0x11",{"_index":2452,"t":{"784":{"position":[[136,5],[298,4]]}}}],["0x22",{"_index":2453,"t":{"784":{"position":[[142,5],[329,4]]}}}],["0x33",{"_index":2454,"t":{"784":{"position":[[148,5],[360,4]]}}}],["0x420",{"_index":1314,"t":{"247":{"position":[[92,5]]}}}],["0x44",{"_index":2455,"t":{"784":{"position":[[154,4],[391,4]]}}}],["0xf0",{"_index":2450,"t":{"784":{"position":[[108,5],[305,5],[367,5]]}}}],["0xffffff",{"_index":1779,"t":{"443":{"position":[[429,8],[539,9]]}}}],["0xffffffff",{"_index":1834,"t":{"482":{"position":[[132,11]]},"488":{"position":[[133,11]]},"490":{"position":[[132,11]]},"492":{"position":[[191,11]]},"498":{"position":[[135,11]]},"500":{"position":[[135,11]]},"502":{"position":[[135,11]]},"504":{"position":[[136,11]]}}}],["1",{"_index":9,"t":{"4":{"position":[[32,1]]},"22":{"position":[[105,2]]},"56":{"position":[[278,2]]},"87":{"position":[[225,1]]},"95":{"position":[[69,2],[115,1],[279,1],[290,1],[300,1],[319,1],[339,1],[428,1],[442,1],[453,1],[457,1],[528,1],[582,1],[584,1],[586,1]]},"111":{"position":[[274,2],[361,2],[1043,2]]},"142":{"position":[[139,2],[189,1],[205,2],[222,2],[231,1],[321,2],[338,2],[350,2],[375,1],[446,2]]},"152":{"position":[[259,2]]},"154":{"position":[[152,2],[209,1],[225,2],[242,2],[254,1],[347,2],[364,2],[376,2],[404,1],[484,2]]},"161":{"position":[[304,2]]},"163":{"position":[[180,1]]},"169":{"position":[[69,2]]},"173":{"position":[[262,1]]},"175":{"position":[[161,1]]},"177":{"position":[[224,1]]},"179":{"position":[[184,1]]},"181":{"position":[[206,1]]},"183":{"position":[[89,1],[108,2],[123,3],[518,1],[537,2],[552,3]]},"185":{"position":[[137,1],[218,1]]},"207":{"position":[[181,1],[237,1]]},"209":{"position":[[139,1],[220,1]]},"215":{"position":[[109,2],[337,2]]},"217":{"position":[[186,2]]},"219":{"position":[[222,2]]},"221":{"position":[[98,2]]},"225":{"position":[[120,2],[187,1],[285,2]]},"227":{"position":[[162,1],[270,2]]},"235":{"position":[[147,2]]},"237":{"position":[[186,2]]},"252":{"position":[[550,2],[607,1],[639,1]]},"254":{"position":[[385,3]]},"270":{"position":[[88,1],[172,1]]},"282":{"position":[[418,2],[714,2]]},"288":{"position":[[20,1],[43,2],[216,1],[239,2],[285,1],[394,1],[541,1],[564,2],[805,1]]},"290":{"position":[[197,2]]},"292":{"position":[[139,1],[170,1],[533,2],[544,2],[600,1]]},"296":{"position":[[215,5]]},"308":{"position":[[190,1],[203,1],[249,1]]},"313":{"position":[[535,1],[545,1],[552,1]]},"315":{"position":[[73,1],[179,1]]},"321":{"position":[[153,1],[159,1],[226,2],[229,1]]},"337":{"position":[[92,1],[134,1]]},"339":{"position":[[138,2],[362,2]]},"347":{"position":[[355,2]]},"353":{"position":[[155,1]]},"355":{"position":[[148,1]]},"357":{"position":[[323,1]]},"359":{"position":[[448,2]]},"375":{"position":[[844,3],[912,3]]},"379":{"position":[[263,2],[347,2],[352,2]]},"381":{"position":[[377,2]]},"427":{"position":[[174,1]]},"431":{"position":[[160,1]]},"465":{"position":[[331,3],[438,3],[1205,3]]},"513":{"position":[[28,1]]},"596":{"position":[[267,2]]},"598":{"position":[[1000,3]]},"600":{"position":[[424,3]]},"602":{"position":[[83,1]]},"610":{"position":[[174,1]]},"618":{"position":[[632,2]]},"650":{"position":[[119,1]]},"668":{"position":[[388,3],[584,1]]},"678":{"position":[[376,1],[593,4]]},"680":{"position":[[424,1]]},"730":{"position":[[104,1]]},"734":{"position":[[139,2]]},"736":{"position":[[86,2]]},"742":{"position":[[169,2]]},"744":{"position":[[220,2]]},"748":{"position":[[118,2],[260,3],[266,2],[376,3],[418,2]]},"752":{"position":[[187,2],[249,2]]},"756":{"position":[[284,2],[315,1]]},"758":{"position":[[532,2],[613,2]]},"762":{"position":[[595,1]]},"766":{"position":[[336,2]]},"768":{"position":[[89,2],[118,1]]},"770":{"position":[[88,2]]},"772":{"position":[[270,2]]},"774":{"position":[[198,2]]},"776":{"position":[[138,2],[227,3],[233,2]]},"778":{"position":[[246,2],[318,2]]},"782":{"position":[[258,2]]},"784":{"position":[[224,2],[238,2]]},"786":{"position":[[126,2],[190,2]]},"818":{"position":[[374,2]]},"826":{"position":[[954,3]]},"842":{"position":[[444,3],[576,3],[641,3],[990,3],[1265,3]]},"854":{"position":[[166,2],[169,2]]},"862":{"position":[[160,3]]},"864":{"position":[[90,3]]},"866":{"position":[[96,3],[127,1]]},"868":{"position":[[97,3]]},"872":{"position":[[136,2]]},"876":{"position":[[368,2]]},"878":{"position":[[164,2]]}}}],["1).name",{"_index":2391,"t":{"744":{"position":[[310,8]]}}}],["1):concat",{"_index":2419,"t":{"762":{"position":[[347,11]]}}}],["1):torot(\"i",{"_index":2624,"t":{"876":{"position":[[855,14],[945,14]]}}}],["1):torot(\"z",{"_index":2619,"t":{"876":{"position":[[457,14]]}}}],["1.0",{"_index":2611,"t":{"874":{"position":[[169,4]]},"880":{"position":[[201,4],[438,4]]}}}],["1.0.0",{"_index":2117,"t":{"604":{"position":[[174,6]]}}}],["1.000.000",{"_index":846,"t":{"87":{"position":[[230,10]]}}}],["1.1.1.1",{"_index":2360,"t":{"714":{"position":[[238,7]]}}}],["1.2",{"_index":2587,"t":{"858":{"position":[[320,4]]}}}],["1.2.3.4",{"_index":1576,"t":{"323":{"position":[[541,10]]}}}],["1.8",{"_index":2586,"t":{"858":{"position":[[315,4]]}}}],["1.viatls.com",{"_index":2355,"t":{"710":{"position":[[1553,15]]}}}],["10",{"_index":1039,"t":{"111":{"position":[[316,2],[1096,2]]},"122":{"position":[[599,3]]},"142":{"position":[[208,2],[324,2]]},"152":{"position":[[262,2]]},"154":{"position":[[228,2],[350,2]]},"169":{"position":[[72,2]]},"300":{"position":[[216,2],[475,2],[578,2]]},"325":{"position":[[126,4]]},"347":{"position":[[358,2]]},"602":{"position":[[101,2]]},"762":{"position":[[392,3],[399,3],[484,3]]}}}],["100",{"_index":1036,"t":{"111":{"position":[[289,4],[1069,4]]}}}],["10000000",{"_index":1309,"t":{"245":{"position":[[129,9]]}}}],["1000m",{"_index":2301,"t":{"686":{"position":[[108,7]]}}}],["1024",{"_index":1758,"t":{"433":{"position":[[149,4]]},"545":{"position":[[160,5]]}}}],["103547413",{"_index":1854,"t":{"494":{"position":[[249,10]]}}}],["1045060183",{"_index":1845,"t":{"488":{"position":[[249,11]]}}}],["1056",{"_index":1315,"t":{"247":{"position":[[110,5]]}}}],["10_000_000",{"_index":1307,"t":{"245":{"position":[[106,10]]}}}],["110100100",{"_index":1749,"t":{"419":{"position":[[130,9]]}}}],["11355630182234424425429331560518598643298965915936825610957270519615363349759012613228119611304846673085167794661819394470107090216347491908311079792054357",{"_index":1954,"t":{"545":{"position":[[425,156]]},"553":{"position":[[583,155]]},"557":{"position":[[608,155]]}}}],["1151865881",{"_index":1866,"t":{"502":{"position":[[253,11]]},"510":{"position":[[210,11]]}}}],["115443384115231951475820445136871322101870729500298182134363293112660251666017",{"_index":1957,"t":{"545":{"position":[[646,79]]},"549":{"position":[[723,79]]}}}],["123",{"_index":1173,"t":{"148":{"position":[[92,3],[195,3]]},"227":{"position":[[99,5],[219,5]]},"413":{"position":[[206,3]]}}}],["1234",{"_index":2082,"t":{"598":{"position":[[178,5],[978,5]]},"600":{"position":[[253,5],[383,5]]}}}],["1252609637",{"_index":1857,"t":{"496":{"position":[[196,11]]}}}],["128",{"_index":1918,"t":{"528":{"position":[[209,3]]},"530":{"position":[[210,3]]},"534":{"position":[[177,3]]},"536":{"position":[[178,3]]},"540":{"position":[[241,3]]},"542":{"position":[[146,3]]}}}],["13",{"_index":920,"t":{"95":{"position":[[537,2]]},"343":{"position":[[101,2]]}}}],["1337",{"_index":2182,"t":{"618":{"position":[[355,4],[463,4]]},"620":{"position":[[860,4],[1034,5]]}}}],["14",{"_index":2008,"t":{"560":{"position":[[484,2]]}}}],["15",{"_index":2420,"t":{"762":{"position":[[396,2]]}}}],["16",{"_index":1584,"t":{"325":{"position":[[171,2]]},"528":{"position":[[192,3],[278,3]]},"530":{"position":[[193,3],[279,3]]},"534":{"position":[[160,3]]},"536":{"position":[[161,3]]},"540":{"position":[[224,3],[310,3]]},"542":{"position":[[129,3],[215,3]]}}}],["160",{"_index":1896,"t":{"521":{"position":[[31,3]]}}}],["17",{"_index":1104,"t":{"128":{"position":[[70,2]]},"880":{"position":[[223,3],[343,3],[465,3]]}}}],["180.0",{"_index":2625,"t":{"876":{"position":[[1003,6]]}}}],["192",{"_index":1919,"t":{"528":{"position":[[215,3]]},"530":{"position":[[216,3]]},"534":{"position":[[183,3]]},"536":{"position":[[184,3]]},"540":{"position":[[247,3]]},"542":{"position":[[152,3]]}}}],["1a4",{"_index":1747,"t":{"417":{"position":[[132,3]]}}}],["1st",{"_index":1473,"t":{"292":{"position":[[175,5],[258,3]]}}}],["2",{"_index":406,"t":{"22":{"position":[[108,2]]},"95":{"position":[[77,2],[298,1],[309,1],[426,1],[455,1]]},"142":{"position":[[305,1],[366,2],[406,2],[415,1]]},"154":{"position":[[331,1],[392,2],[438,2],[450,1]]},"167":{"position":[[204,1]]},"171":{"position":[[122,2],[212,2]]},"183":{"position":[[132,2],[147,3],[248,2],[577,2],[592,3]]},"187":{"position":[[179,2],[299,2]]},"211":{"position":[[129,1],[250,1],[481,1]]},"215":{"position":[[131,2]]},"221":{"position":[[120,2]]},"225":{"position":[[123,2],[193,1],[288,2]]},"235":{"position":[[266,2],[320,2]]},"237":{"position":[[298,2],[352,2]]},"241":{"position":[[171,2],[291,2]]},"252":{"position":[[553,1],[609,1]]},"282":{"position":[[421,2]]},"288":{"position":[[85,2],[247,2],[600,2],[828,2],[878,1]]},"290":{"position":[[200,2]]},"292":{"position":[[186,1],[536,2]]},"315":{"position":[[77,1],[183,1],[189,1]]},"321":{"position":[[103,1]]},"327":{"position":[[191,1]]},"337":{"position":[[108,1],[124,1]]},"339":{"position":[[141,2],[365,2]]},"375":{"position":[[866,3],[937,3]]},"379":{"position":[[234,2]]},"381":{"position":[[260,2]]},"383":{"position":[[244,2]]},"385":{"position":[[270,2]]},"453":{"position":[[90,1]]},"465":{"position":[[1243,3]]},"602":{"position":[[85,1]]},"604":{"position":[[35,1]]},"610":{"position":[[154,2]]},"618":{"position":[[639,2]]},"660":{"position":[[106,1]]},"678":{"position":[[382,1],[584,4]]},"680":{"position":[[430,1]]},"730":{"position":[[101,2]]},"734":{"position":[[142,2]]},"736":{"position":[[89,2]]},"742":{"position":[[172,2]]},"744":{"position":[[248,2]]},"746":{"position":[[296,1]]},"748":{"position":[[121,2],[269,3],[275,2],[385,3],[409,2]]},"752":{"position":[[195,2],[252,2]]},"756":{"position":[[287,2],[321,1]]},"758":{"position":[[535,2],[571,1],[630,2],[633,2],[716,2]]},"766":{"position":[[339,2]]},"768":{"position":[[92,2]]},"770":{"position":[[91,2]]},"772":{"position":[[172,2],[202,1],[273,2],[300,1]]},"774":{"position":[[201,2]]},"776":{"position":[[141,2],[144,1],[236,3],[242,2],[275,1]]},"778":{"position":[[249,2],[321,2]]},"782":{"position":[[261,2],[319,2]]},"786":{"position":[[129,2]]},"826":{"position":[[904,3]]},"842":{"position":[[1317,3]]},"854":{"position":[[193,3],[212,2],[239,2],[261,2],[371,2],[393,2]]},"860":{"position":[[129,2],[132,2],[184,2]]},"862":{"position":[[164,2]]},"864":{"position":[[94,2]]},"866":{"position":[[100,2]]},"868":{"position":[[101,2]]},"872":{"position":[[140,2],[168,2]]}}}],["20",{"_index":1097,"t":{"122":{"position":[[670,2]]},"337":{"position":[[165,3]]},"762":{"position":[[295,2]]}}}],["200",{"_index":787,"t":{"74":{"position":[[802,3]]},"698":{"position":[[425,3]]},"710":{"position":[[1440,3]]}}}],["2024",{"_index":144,"t":{"6":{"position":[[189,4]]},"10":{"position":[[718,4]]}}}],["2024/cert.pem",{"_index":2351,"t":{"710":{"position":[[1207,16]]}}}],["2024/key.pem",{"_index":2352,"t":{"710":{"position":[[1281,15]]}}}],["2048",{"_index":1946,"t":{"545":{"position":[[166,5]]}}}],["21",{"_index":1585,"t":{"327":{"position":[[103,2]]},"762":{"position":[[378,2]]}}}],["222957957",{"_index":1851,"t":{"492":{"position":[[307,10]]}}}],["234",{"_index":1275,"t":{"227":{"position":[[183,3],[287,3]]}}}],["24",{"_index":1917,"t":{"528":{"position":[[196,2]]},"530":{"position":[[197,2]]},"534":{"position":[[164,2]]},"536":{"position":[[165,2]]},"540":{"position":[[228,2]]},"542":{"position":[[133,2]]}}}],["249",{"_index":788,"t":{"74":{"position":[[809,3]]},"282":{"position":[[717,3]]}}}],["255",{"_index":1631,"t":{"349":{"position":[[149,3]]},"566":{"position":[[259,3],[278,3]]},"570":{"position":[[249,3],[268,3]]}}}],["255))):concat",{"_index":1926,"t":{"530":{"position":[[520,17]]},"542":{"position":[[563,17]]}}}],["256",{"_index":1885,"t":{"515":{"position":[[28,3]]},"528":{"position":[[224,3]]},"530":{"position":[[225,3]]},"534":{"position":[[192,3]]},"536":{"position":[[193,3]]},"540":{"position":[[256,3]]},"542":{"position":[[161,3]]}}}],["2650573207",{"_index":1869,"t":{"504":{"position":[[255,11]]}}}],["2871868277",{"_index":1829,"t":{"478":{"position":[[206,11]]}}}],["2nd",{"_index":1474,"t":{"292":{"position":[[191,5]]}}}],["2x",{"_index":782,"t":{"74":{"position":[[675,3]]}}}],["3",{"_index":902,"t":{"95":{"position":[[46,1],[85,2],[262,1],[271,1],[285,1],[304,1],[317,1],[323,1],[328,1]]},"161":{"position":[[198,1]]},"171":{"position":[[125,2],[215,2],[255,1]]},"183":{"position":[[284,1]]},"185":{"position":[[210,1]]},"191":{"position":[[14,1]]},"199":{"position":[[47,2]]},"209":{"position":[[212,1]]},"215":{"position":[[153,2]]},"221":{"position":[[142,2]]},"225":{"position":[[126,2],[199,1],[291,2]]},"282":{"position":[[424,1]]},"288":{"position":[[255,2],[836,2],[884,4]]},"290":{"position":[[203,2],[215,3]]},"292":{"position":[[202,1],[539,1],[547,2],[602,1]]},"315":{"position":[[81,1],[193,1]]},"321":{"position":[[172,1]]},"339":{"position":[[144,2],[368,2]]},"359":{"position":[[143,1],[153,1],[170,4]]},"383":{"position":[[276,2],[363,2],[368,2]]},"385":{"position":[[304,2]]},"427":{"position":[[172,1]]},"429":{"position":[[160,1]]},"602":{"position":[[87,1]]},"618":{"position":[[646,1]]},"660":{"position":[[135,1]]},"678":{"position":[[388,1],[575,4]]},"680":{"position":[[436,1]]},"730":{"position":[[98,2]]},"734":{"position":[[145,2]]},"736":{"position":[[92,2]]},"742":{"position":[[175,2]]},"748":{"position":[[141,2],[278,3],[284,2],[394,3],[400,2]]},"752":{"position":[[208,2],[255,2]]},"756":{"position":[[290,1],[327,1]]},"758":{"position":[[538,2],[616,1],[636,2],[719,1]]},"766":{"position":[[342,1]]},"768":{"position":[[95,1]]},"770":{"position":[[94,1],[117,1]]},"772":{"position":[[276,1]]},"776":{"position":[[146,2],[149,2],[152,2],[245,3],[251,2]]},"778":{"position":[[252,2],[324,1]]},"782":{"position":[[264,2],[290,2],[322,2]]},"786":{"position":[[132,1]]},"794":{"position":[[686,2]]},"854":{"position":[[28,1],[242,3],[264,2],[374,3],[396,2]]},"858":{"position":[[258,2],[261,2],[297,2]]},"860":{"position":[[187,2]]},"862":{"position":[[167,2]]},"864":{"position":[[97,2]]},"866":{"position":[[103,2]]},"868":{"position":[[104,2],[128,1]]},"872":{"position":[[171,2]]},"874":{"position":[[132,2]]}}}],["3):ab",{"_index":2607,"t":{"872":{"position":[[143,9]]}}}],["3.5x",{"_index":1593,"t":{"331":{"position":[[103,4]]}}}],["3.7416573867739",{"_index":2594,"t":{"862":{"position":[[186,15],[229,15]]}}}],["30",{"_index":2423,"t":{"762":{"position":[[488,2],[491,3]]}}}],["3154674178",{"_index":1863,"t":{"500":{"position":[[253,11]]}}}],["3190198453633110066",{"_index":1872,"t":{"506":{"position":[[201,20]]}}}],["32",{"_index":672,"t":{"44":{"position":[[310,2]]},"494":{"position":[[30,2]]},"528":{"position":[[202,2]]},"530":{"position":[[203,2]]},"534":{"position":[[170,2]]},"536":{"position":[[171,2]]},"540":{"position":[[234,2]]},"542":{"position":[[139,2]]}}}],["32973",{"_index":229,"t":{"10":{"position":[[723,6]]}}}],["3600",{"_index":2247,"t":{"652":{"position":[[341,4],[423,4]]}}}],["384",{"_index":1889,"t":{"517":{"position":[[28,3]]}}}],["3889643616",{"_index":1860,"t":{"498":{"position":[[253,11]]}}}],["3rd",{"_index":1475,"t":{"292":{"position":[[207,5]]}}}],["3x",{"_index":724,"t":{"56":{"position":[[229,2]]},"254":{"position":[[67,2]]}}}],["4",{"_index":903,"t":{"95":{"position":[[93,2]]},"165":{"position":[[220,1]]},"169":{"position":[[191,1]]},"171":{"position":[[128,2],[218,2],[272,2]]},"288":{"position":[[263,2],[396,1]]},"290":{"position":[[230,2]]},"292":{"position":[[555,2],[566,2],[623,1]]},"564":{"position":[[800,2]]},"584":{"position":[[339,2],[649,2]]},"602":{"position":[[89,1],[136,1]]},"678":{"position":[[394,1]]},"680":{"position":[[442,1]]},"734":{"position":[[186,1]]},"736":{"position":[[133,1]]},"742":{"position":[[178,2],[228,2],[234,2]]},"748":{"position":[[144,2],[287,3],[293,2],[391,2],[403,3]]},"752":{"position":[[216,1],[258,1]]},"758":{"position":[[541,2],[639,2],[642,1],[721,2]]},"772":{"position":[[175,2]]},"776":{"position":[[155,2],[158,2],[161,2],[164,1],[254,3],[260,2]]},"782":{"position":[[267,2],[293,2],[311,2],[325,1]]},"826":{"position":[[1006,3]]}}}],["400",{"_index":1715,"t":{"387":{"position":[[317,4]]},"389":{"position":[[377,4]]},"391":{"position":[[599,4]]}}}],["4096",{"_index":1947,"t":{"545":{"position":[[176,5]]}}}],["41",{"_index":2415,"t":{"762":{"position":[[291,3]]}}}],["42",{"_index":1214,"t":{"175":{"position":[[86,2],[185,2]]},"201":{"position":[[68,2]]},"256":{"position":[[145,2],[224,2],[314,2],[384,2]]},"274":{"position":[[317,3],[374,2]]},"276":{"position":[[300,3],[357,2]]},"290":{"position":[[77,2],[83,3],[100,2],[385,2],[401,2],[482,5],[502,4],[572,4]]},"321":{"position":[[178,2]]},"327":{"position":[[233,2]]},"329":{"position":[[148,2],[224,2]]},"564":{"position":[[806,3]]},"584":{"position":[[345,3],[655,3]]},"762":{"position":[[374,3]]}}}],["430867652",{"_index":1848,"t":{"490":{"position":[[247,10]]}}}],["443",{"_index":2343,"t":{"710":{"position":[[860,4],[1350,4]]},"714":{"position":[[187,4],[262,3]]},"716":{"position":[[171,4]]},"718":{"position":[[123,4]]},"720":{"position":[[124,4]]}}}],["45597",{"_index":145,"t":{"6":{"position":[[194,6]]}}}],["5",{"_index":904,"t":{"95":{"position":[[101,2],[117,4],[166,4],[444,3],[530,2]]},"142":{"position":[[353,1]]},"152":{"position":[[276,1]]},"154":{"position":[[379,1]]},"161":{"position":[[100,1]]},"167":{"position":[[121,1]]},"169":{"position":[[86,1]]},"171":{"position":[[200,1]]},"183":{"position":[[239,1]]},"187":{"position":[[288,1]]},"191":{"position":[[319,1]]},"193":{"position":[[145,1]]},"215":{"position":[[280,2],[359,2]]},"241":{"position":[[280,1]]},"288":{"position":[[271,2],[287,4],[336,4],[419,2]]},"290":{"position":[[233,2]]},"292":{"position":[[558,2]]},"321":{"position":[[198,1]]},"335":{"position":[[368,3]]},"347":{"position":[[372,1]]},"353":{"position":[[41,1],[177,1]]},"363":{"position":[[322,1]]},"457":{"position":[[154,2]]},"602":{"position":[[91,1],[138,1]]},"678":{"position":[[349,1],[400,1]]},"680":{"position":[[397,1],[448,1]]},"742":{"position":[[181,2]]},"748":{"position":[[147,2],[296,3],[302,2],[382,2],[412,3]]},"758":{"position":[[544,1],[618,2]]},"782":{"position":[[270,1],[296,1]]},"786":{"position":[[151,2],[211,2]]},"820":{"position":[[555,3],[608,2]]}}}],["5,0,0,0",{"_index":2525,"t":{"826":{"position":[[963,7]]}}}],["5,000",{"_index":2519,"t":{"826":{"position":[[777,5]]}}}],["5,0000",{"_index":2526,"t":{"826":{"position":[[1014,6]]}}}],["5.00",{"_index":2524,"t":{"826":{"position":[[912,4]]}}}],["5.1",{"_index":2404,"t":{"756":{"position":[[91,4]]}}}],["5.4",{"_index":1129,"t":{"138":{"position":[[27,3],[119,3]]}}}],["5.4'",{"_index":1816,"t":{"467":{"position":[[108,6]]},"586":{"position":[[105,6]]},"622":{"position":[[101,6]]},"656":{"position":[[103,6]]},"684":{"position":[[101,6]]},"728":{"position":[[104,6]]},"788":{"position":[[105,6]]}}}],["50",{"_index":2505,"t":{"820":{"position":[[493,4]]}}}],["50,000",{"_index":2521,"t":{"826":{"position":[[818,6]]}}}],["500",{"_index":2516,"t":{"826":{"position":[[737,3]]}}}],["500,000",{"_index":2523,"t":{"826":{"position":[[863,7]]}}}],["5000",{"_index":2518,"t":{"826":{"position":[[765,6],[942,6]]}}}],["500000",{"_index":2522,"t":{"826":{"position":[[849,8]]}}}],["500000.4",{"_index":2527,"t":{"826":{"position":[[1065,10]]}}}],["512",{"_index":1892,"t":{"519":{"position":[[28,3]]},"545":{"position":[[382,4]]}}}],["58",{"_index":2540,"t":{"834":{"position":[[302,2],[389,2]]}}}],["58595a",{"_index":2538,"t":{"834":{"position":[[266,6],[347,6]]}}}],["59",{"_index":2541,"t":{"834":{"position":[[305,2],[392,2]]},"836":{"position":[[141,2]]}}}],["5a",{"_index":2542,"t":{"834":{"position":[[308,2],[395,2]]}}}],["5a\":fromhex",{"_index":2547,"t":{"836":{"position":[[144,14]]}}}],["5eb63bbbe01eeed093cb22bb8f5acdc3",{"_index":1833,"t":{"480":{"position":[[189,35]]}}}],["6",{"_index":1238,"t":{"199":{"position":[[50,2]]},"215":{"position":[[381,2]]},"290":{"position":[[236,2],[248,3]]},"292":{"position":[[561,1],[569,2],[625,1]]},"300":{"position":[[235,1]]},"306":{"position":[[82,1]]},"602":{"position":[[93,1],[140,1]]},"742":{"position":[[184,2]]},"766":{"position":[[413,1]]},"772":{"position":[[178,1]]},"786":{"position":[[169,2],[232,2]]},"864":{"position":[[121,1]]},"870":{"position":[[156,1]]}}}],["6.1232339957368e",{"_index":2631,"t":{"880":{"position":[[206,16],[326,16],[448,16]]}}}],["60",{"_index":2249,"t":{"652":{"position":[[410,2]]}}}],["65537",{"_index":1955,"t":{"545":{"position":[[594,6]]},"553":{"position":[[766,5]]},"557":{"position":[[791,5]]}}}],["65e05b66",{"_index":1571,"t":{"323":{"position":[[416,8]]}}}],["68",{"_index":2416,"t":{"762":{"position":[[298,3]]}}}],["69",{"_index":1317,"t":{"247":{"position":[[225,3]]},"564":{"position":[[372,3],[748,3]]},"584":{"position":[[316,3],[626,3]]},"762":{"position":[[381,3]]}}}],["6aa8b7c94e7580774a804c24",{"_index":1572,"t":{"323":{"position":[[425,26]]}}}],["7",{"_index":1500,"t":{"300":{"position":[[179,1]]},"602":{"position":[[95,1],[142,1]]}}}],["7088720765356542432",{"_index":1874,"t":{"508":{"position":[[200,20]]}}}],["8",{"_index":680,"t":{"46":{"position":[[123,1]]},"48":{"position":[[204,1]]},"300":{"position":[[160,1],[531,1]]},"602":{"position":[[97,1],[144,1]]},"816":{"position":[[70,1]]}}}],["8):unpack",{"_index":2115,"t":{"602":{"position":[[119,12]]}}}],["80",{"_index":2311,"t":{"698":{"position":[[362,3]]},"704":{"position":[[461,3]]},"708":{"position":[[246,3]]}}}],["847757641",{"_index":1166,"t":{"146":{"position":[[491,9]]}}}],["8618312879776256743",{"_index":1843,"t":{"486":{"position":[[192,20]]}}}],["894552257",{"_index":1837,"t":{"482":{"position":[[247,10]]}}}],["8dad5f6a7dd2dcd8c35ec2fd7babb499bcad60d27d73fe73eca2ce025dfd3b47",{"_index":1887,"t":{"515":{"position":[[275,67]]}}}],["9",{"_index":1239,"t":{"199":{"position":[[53,1]]},"300":{"position":[[198,1],[258,1]]},"306":{"position":[[94,1],[150,1]]},"321":{"position":[[192,1]]},"435":{"position":[[156,1]]},"602":{"position":[[99,1]]}}}],["90",{"_index":2632,"t":{"880":{"position":[[248,3],[368,3]]}}}],["90.0",{"_index":2620,"t":{"876":{"position":[[507,5],[617,5],[719,5],[825,5]]}}}],["9065573210506989167",{"_index":1840,"t":{"484":{"position":[[190,20]]}}}],["9090",{"_index":2573,"t":{"850":{"position":[[372,5]]}}}],["98365361248415863235179644468056200977592391948608651522703704315152579004021",{"_index":1958,"t":{"545":{"position":[[738,78]]},"549":{"position":[[811,78]]}}}],["_",{"_index":1266,"t":{"225":{"position":[[317,2]]},"640":{"position":[[210,2]]}}}],["__construct",{"_index":1395,"t":{"264":{"position":[[97,11]]},"272":{"position":[[284,12]]},"276":{"position":[[25,11]]}}}],["__construct(nam",{"_index":1397,"t":{"264":{"position":[[161,17]]},"266":{"position":[[128,17]]},"268":{"position":[[122,17]]},"272":{"position":[[192,17],[443,17]]},"274":{"position":[[184,17]]}}}],["__construct(publ",{"_index":1422,"t":{"276":{"position":[[184,18]]},"359":{"position":[[238,18]]}}}],["__declspec(dllexport",{"_index":2017,"t":{"564":{"position":[[285,21]]}}}],["__eq",{"_index":1550,"t":{"321":{"position":[[273,4]]}}}],["__gc",{"_index":1405,"t":{"266":{"position":[[176,6]]}}}],["__index",{"_index":414,"t":{"22":{"position":[[468,7]]},"36":{"position":[[120,7]]},"465":{"position":[[623,7]]},"596":{"position":[[361,7]]},"842":{"position":[[759,7]]}}}],["__lt",{"_index":1551,"t":{"321":{"position":[[282,5]]}}}],["__order",{"_index":126,"t":{"4":{"position":[[1750,7]]},"16":{"position":[[1761,7],[1966,7]]},"465":{"position":[[1185,11]]},"618":{"position":[[549,7],[599,7]]},"620":{"position":[[434,7]]}}}],["__parent",{"_index":1411,"t":{"270":{"position":[[196,8]]}}}],["__tostr",{"_index":1745,"t":{"415":{"position":[[19,10]]},"856":{"position":[[19,10]]}}}],["__valu",{"_index":1797,"t":{"463":{"position":[[132,7]]}}}],["_g",{"_index":206,"t":{"10":{"position":[[200,2]]}}}],["_g.coroutin",{"_index":2080,"t":{"596":{"position":[[419,14]]}}}],["_g.string",{"_index":1442,"t":{"282":{"position":[[237,9]]}}}],["_g.tabl",{"_index":415,"t":{"22":{"position":[[478,8]]},"596":{"position":[[406,9]]},"598":{"position":[[198,9]]}}}],["_g:myfunc",{"_index":1353,"t":{"252":{"position":[[575,12]]}}}],["_psoup",{"_index":453,"t":{"22":{"position":[[2136,6]]},"50":{"position":[[167,6]]},"590":{"position":[[0,6]]}}}],["_pversion",{"_index":781,"t":{"74":{"position":[[621,9]]},"588":{"position":[[0,9]]},"592":{"position":[[139,9],[236,18]]}}}],["_version",{"_index":2069,"t":{"592":{"position":[[187,18],[264,12]]}}}],["_win32",{"_index":2016,"t":{"564":{"position":[[263,6]]}}}],["a\":1,\"b\":2,\"c\":3",{"_index":2185,"t":{"618":{"position":[[684,19]]}}}],["a.k.a",{"_index":1679,"t":{"371":{"position":[[72,6],[178,5]]}}}],["a?.b?.c",{"_index":1337,"t":{"250":{"position":[[807,7]]}}}],["aadata",{"_index":1940,"t":{"540":{"position":[[144,6]]},"542":{"position":[[72,6],[468,6],[663,7],[768,7]]}}}],["aarch64",{"_index":234,"t":{"12":{"position":[[82,7]]}}}],["abi",{"_index":80,"t":{"4":{"position":[[1031,3],[1072,3]]},"42":{"position":[[72,3]]}}}],["abov",{"_index":974,"t":{"99":{"position":[[695,6]]},"111":{"position":[[832,5]]},"122":{"position":[[677,6]]},"203":{"position":[[35,6]]},"262":{"position":[[25,5]]},"288":{"position":[[1023,5]]},"321":{"position":[[450,6]]},"415":{"position":[[8,6]]},"856":{"position":[[8,6]]},"878":{"position":[[209,5]]}}}],["absenc",{"_index":748,"t":{"62":{"position":[[595,7]]}}}],["absent",{"_index":1725,"t":{"391":{"position":[[931,6]]},"648":{"position":[[114,7]]},"652":{"position":[[125,7]]},"654":{"position":[[124,7]]},"766":{"position":[[245,7]]}}}],["absolut",{"_index":45,"t":{"4":{"position":[[509,10]]},"22":{"position":[[2944,8]]},"564":{"position":[[151,8]]},"644":{"position":[[32,8]]},"646":{"position":[[11,8]]},"872":{"position":[[55,8]]}}}],["accept",{"_index":489,"t":{"22":{"position":[[2982,6]]},"52":{"position":[[279,7]]},"142":{"position":[[13,7]]},"154":{"position":[[13,7]]},"323":{"position":[[456,8]]},"698":{"position":[[63,9]]},"724":{"position":[[0,7]]},"726":{"position":[[98,6]]},"842":{"position":[[183,7]]}}}],["access",{"_index":17,"t":{"4":{"position":[[128,8],[228,8]]},"22":{"position":[[3700,6]]},"32":{"position":[[538,6],[903,6]]},"42":{"position":[[232,6]]},"48":{"position":[[293,6]]},"215":{"position":[[429,6]]},"250":{"position":[[0,9],[883,7]]},"274":{"position":[[92,8]]},"284":{"position":[[223,6]]},"333":{"position":[[353,6]]},"590":{"position":[[35,6]]}}}],["accessor",{"_index":763,"t":{"68":{"position":[[328,8]]}}}],["accordingli",{"_index":2110,"t":{"600":{"position":[[100,12]]}}}],["accumul",{"_index":2426,"t":{"766":{"position":[[46,11],[69,13],[97,11],[195,12],[229,12],[257,11],[305,12],[363,12],[387,12]]}}}],["achiev",{"_index":1581,"t":{"323":{"position":[[855,8]]}}}],["act",{"_index":2235,"t":{"648":{"position":[[184,6]]},"652":{"position":[[195,6]]},"654":{"position":[[194,6]]}}}],["action",{"_index":1436,"t":{"282":{"position":[[88,6]]}}}],["activ",{"_index":897,"t":{"93":{"position":[[179,7]]},"678":{"position":[[15,9]]}}}],["actual",{"_index":529,"t":{"24":{"position":[[139,6]]},"103":{"position":[[315,8]]},"820":{"position":[[92,8]]}}}],["ad",{"_index":5,"t":{"4":{"position":[[0,5],[46,5],[1116,5],[1137,5],[1155,5],[1175,5],[1197,5],[1237,5],[1260,5],[1302,5],[1326,5],[1362,5],[1491,5],[1572,5],[1618,5]]},"10":{"position":[[0,5]]},"16":{"position":[[0,5],[24,5],[49,5],[82,5],[142,5],[210,5],[278,5],[726,5],[900,5],[918,5],[938,5],[959,5],[982,5],[1002,5],[1023,5],[1047,5],[1074,5],[1095,5],[1122,5],[1149,5],[1272,5],[1298,5],[1325,5],[1378,5],[1404,5],[1434,5],[1465,5],[1503,5],[1551,5],[1595,5],[1655,5],[1685,5],[1710,5],[2253,5],[2333,5],[2384,5]]},"18":{"position":[[0,5]]},"20":{"position":[[0,5],[500,5],[525,5],[549,5]]},"22":{"position":[[0,5],[25,5],[115,5],[143,5],[174,5],[294,5],[399,5],[491,5],[523,5],[1165,5],[1214,5],[1391,5],[1913,5],[2143,5],[2206,5],[2242,5],[2264,5],[2284,5],[2310,5],[2332,5],[2470,5],[2638,5],[2657,5],[2673,5],[2693,5],[2713,5],[2733,5],[2747,5],[2766,5],[2783,5],[2805,5],[2817,5],[2860,5],[3453,5],[3648,5],[3725,5],[3760,5],[3799,5],[3834,5],[3914,5]]},"24":{"position":[[288,5]]},"32":{"position":[[0,5],[74,5],[138,5],[220,5],[284,5],[326,5],[354,5],[1341,5],[1382,5]]},"34":{"position":[[318,5]]},"40":{"position":[[0,5],[73,5],[140,5],[192,5],[239,5],[540,5],[585,5],[648,5],[757,5],[877,5],[1111,5],[1215,5],[1329,5],[1383,5],[1449,5],[1515,5],[1560,5]]},"44":{"position":[[94,5]]},"50":{"position":[[0,5],[35,5],[74,5],[99,5],[141,5],[161,5],[449,5],[517,5],[560,5],[603,5],[616,5],[629,5],[642,5]]},"54":{"position":[[0,5]]},"72":{"position":[[0,5]]},"74":{"position":[[0,5],[61,5],[133,5],[171,5],[196,5],[232,5],[261,5],[293,5],[302,5],[327,5],[348,5],[383,5],[414,5],[452,5],[479,5],[550,5],[584,5],[615,5]]},"107":{"position":[[1462,5]]},"111":{"position":[[121,5]]},"674":{"position":[[103,5]]}}}],["add",{"_index":968,"t":{"99":{"position":[[474,3]]},"103":{"position":[[17,3]]},"136":{"position":[[283,3]]},"138":{"position":[[182,4]]},"173":{"position":[[206,3]]},"211":{"position":[[201,3],[207,3]]},"215":{"position":[[6,4]]},"227":{"position":[[479,3]]},"245":{"position":[[8,3]]},"264":{"position":[[6,4]]},"270":{"position":[[189,4]]},"335":{"position":[[200,3]]},"357":{"position":[[263,3]]},"421":{"position":[[0,4]]},"564":{"position":[[775,6]]},"584":{"position":[[578,6]]},"618":{"position":[[542,3]]},"620":{"position":[[426,4]]},"652":{"position":[[394,4]]},"674":{"position":[[4,3]]},"676":{"position":[[40,3]]},"710":{"position":[[12,3]]},"762":{"position":[[591,3]]}}}],["add(1",{"_index":1226,"t":{"187":{"position":[[172,6],[292,6]]},"241":{"position":[[164,6],[284,6]]}}}],["add(a",{"_index":1225,"t":{"187":{"position":[[133,6]]},"211":{"position":[[146,6],[268,6],[499,6]]},"241":{"position":[[125,6],[380,6]]}}}],["add(int",{"_index":2020,"t":{"564":{"position":[[398,7]]},"584":{"position":[[267,7]]}}}],["addit",{"_index":157,"t":{"6":{"position":[[347,10]]},"62":{"position":[[0,10]]},"68":{"position":[[0,10]]},"130":{"position":[[441,10]]},"313":{"position":[[57,9]]},"325":{"position":[[31,10]]},"335":{"position":[[89,10]]},"467":{"position":[[34,9]]},"538":{"position":[[39,10]]},"586":{"position":[[34,9]]},"612":{"position":[[228,10]]},"622":{"position":[[34,9]]},"656":{"position":[[34,9]]},"684":{"position":[[34,9]]},"728":{"position":[[34,9]]},"788":{"position":[[34,9]]}}}],["addloop",{"_index":2276,"t":{"676":{"position":[[4,7]]}}}],["address",{"_index":2302,"t":{"694":{"position":[[89,8]]},"714":{"position":[[102,7]]}}}],["adler",{"_index":1852,"t":{"494":{"position":[[24,5]]}}}],["advanc",{"_index":1591,"t":{"329":{"position":[[93,8]]},"562":{"position":[[59,8]]}}}],["advis",{"_index":1051,"t":{"111":{"position":[[736,7]]},"341":{"position":[[154,9]]}}}],["ae",{"_index":1905,"t":{"526":{"position":[[22,3]]},"528":{"position":[[52,4],[71,4],[110,4],[123,4],[232,4]]},"530":{"position":[[53,4],[72,4],[111,4],[124,4],[233,4],[687,4]]},"532":{"position":[[21,3]]},"534":{"position":[[52,4],[91,4],[200,4]]},"536":{"position":[[19,4],[58,4],[201,4],[578,4]]},"538":{"position":[[19,3]]},"540":{"position":[[60,4],[71,3],[264,4]]},"542":{"position":[[61,4],[169,4],[757,4]]}}}],["aforement",{"_index":841,"t":{"85":{"position":[[529,14]]},"826":{"position":[[634,14]]}}}],["afterward",{"_index":2529,"t":{"828":{"position":[[379,11]]}}}],["ag",{"_index":1242,"t":{"201":{"position":[[62,3],[218,3],[265,3]]},"203":{"position":[[79,3],[246,3]]},"270":{"position":[[82,3]]},"274":{"position":[[171,3],[202,4],[235,3]]},"276":{"position":[[217,4]]}}}],["again",{"_index":540,"t":{"26":{"position":[[64,5]]},"610":{"position":[[1371,5]]}}}],["against",{"_index":1532,"t":{"317":{"position":[[61,7]]},"772":{"position":[[24,7]]},"842":{"position":[[115,7]]}}}],["agent",{"_index":1562,"t":{"323":{"position":[[290,7]]}}}],["aggreg",{"_index":1246,"t":{"211":{"position":[[48,9]]}}}],["aggress",{"_index":1229,"t":{"191":{"position":[[86,10]]}}}],["agnost",{"_index":2508,"t":{"824":{"position":[[22,8]]}}}],["aid",{"_index":842,"t":{"87":{"position":[[3,3]]},"111":{"position":[[648,3]]}}}],["aim",{"_index":975,"t":{"101":{"position":[[6,4]]}}}],["akin",{"_index":2072,"t":{"596":{"position":[[58,4]]}}}],["algorithm",{"_index":735,"t":{"62":{"position":[[111,10],[383,11]]},"254":{"position":[[452,9]]},"321":{"position":[[331,10]]},"337":{"position":[[19,10]]},"478":{"position":[[72,10]]},"480":{"position":[[55,10]]},"482":{"position":[[55,10]]},"484":{"position":[[55,10]]},"486":{"position":[[56,10]]},"488":{"position":[[56,10]]},"490":{"position":[[55,10]]},"492":{"position":[[56,10]]},"494":{"position":[[59,10]]},"496":{"position":[[58,10]]},"498":{"position":[[58,10]]},"500":{"position":[[58,10]]},"502":{"position":[[58,10]]},"504":{"position":[[59,10]]},"506":{"position":[[60,10]]},"508":{"position":[[60,10]]},"510":{"position":[[65,10]]},"513":{"position":[[52,10]]},"515":{"position":[[54,10]]},"517":{"position":[[54,10]]},"519":{"position":[[54,10]]},"521":{"position":[[57,10]]}}}],["alia",{"_index":416,"t":{"22":{"position":[[507,5],[2840,5]]},"32":{"position":[[266,5]]},"54":{"position":[[22,5]]},"311":{"position":[[128,5],[184,5]]},"662":{"position":[[3,5]]}}}],["alias",{"_index":119,"t":{"4":{"position":[[1647,7]]}}}],["alic",{"_index":1326,"t":{"250":{"position":[[252,7]]}}}],["aliv",{"_index":2158,"t":{"610":{"position":[[2102,5]]},"612":{"position":[[18,5]]},"614":{"position":[[16,5]]}}}],["alloc",{"_index":547,"t":{"26":{"position":[[226,10]]}}}],["allow",{"_index":138,"t":{"6":{"position":[[140,8]]},"26":{"position":[[285,8]]},"28":{"position":[[25,6]]},"87":{"position":[[191,6]]},"103":{"position":[[599,6]]},"144":{"position":[[55,5]]},"211":{"position":[[20,6]]},"247":{"position":[[19,6],[127,6]]},"274":{"position":[[6,6]]},"292":{"position":[[37,5]]},"298":{"position":[[492,5]]},"319":{"position":[[20,6]]},"321":{"position":[[73,6]]},"323":{"position":[[18,6]]},"329":{"position":[[75,8]]},"339":{"position":[[24,6]]},"343":{"position":[[6,6]]},"347":{"position":[[6,6],[480,5]]},"349":{"position":[[32,8]]},"359":{"position":[[6,6]]},"538":{"position":[[28,6]]}}}],["alphabet",{"_index":2488,"t":{"808":{"position":[[43,10],[202,10]]}}}],["alphanumer",{"_index":2492,"t":{"812":{"position":[[43,12],[207,12]]}}}],["alreadi",{"_index":811,"t":{"83":{"position":[[8,7]]},"710":{"position":[[635,7]]}}}],["alter",{"_index":2111,"t":{"600":{"position":[[162,7]]}}}],["altern",{"_index":465,"t":{"22":{"position":[[2406,11]]},"32":{"position":[[749,13]]},"156":{"position":[[56,14]]},"213":{"position":[[52,14]]},"223":{"position":[[48,14]]},"227":{"position":[[26,11]]},"256":{"position":[[33,11]]},"280":{"position":[[138,14]]},"294":{"position":[[52,14]]},"298":{"position":[[209,13]]},"302":{"position":[[55,14]]},"306":{"position":[[22,11]]},"465":{"position":[[757,14]]},"469":{"position":[[3,11]]}}}],["although",{"_index":898,"t":{"93":{"position":[[222,8]]},"97":{"position":[[0,8]]},"256":{"position":[[602,8]]},"538":{"position":[[78,8]]},"762":{"position":[[606,9]]}}}],["alway",{"_index":79,"t":{"4":{"position":[[1013,6]]},"22":{"position":[[2107,6]]},"109":{"position":[[193,6]]},"231":{"position":[[28,6]]},"319":{"position":[[257,6]]},"590":{"position":[[70,6]]}}}],["ambigu",{"_index":211,"t":{"10":{"position":[[386,11]]},"26":{"position":[[332,11]]},"260":{"position":[[492,11]]}}}],["amount",{"_index":1321,"t":{"250":{"position":[[112,6]]},"686":{"position":[[16,6]]}}}],["amzn",{"_index":1566,"t":{"323":{"position":[[379,4]]}}}],["anchor",{"_index":2577,"t":{"850":{"position":[[480,9]]}}}],["and/or",{"_index":1053,"t":{"111":{"position":[[758,6]]}}}],["android",{"_index":2067,"t":{"592":{"position":[[105,10]]}}}],["annot",{"_index":282,"t":{"16":{"position":[[161,10]]},"183":{"position":[[422,10]]}}}],["annoy",{"_index":440,"t":{"22":{"position":[[1548,11]]},"163":{"position":[[304,10]]},"177":{"position":[[404,10]]},"179":{"position":[[354,10]]},"181":{"position":[[351,10]]}}}],["anonym",{"_index":1264,"t":{"221":{"position":[[18,10]]},"227":{"position":[[53,9]]},"329":{"position":[[55,9]]}}}],["anoth",{"_index":804,"t":{"78":{"position":[[250,7]]},"109":{"position":[[0,7]]},"628":{"position":[[15,7]]},"738":{"position":[[159,7]]},"818":{"position":[[24,7]]},"828":{"position":[[341,7]]}}}],["ansi",{"_index":770,"t":{"74":{"position":[[76,4]]},"357":{"position":[[209,4]]}}}],["anyth",{"_index":1290,"t":{"231":{"position":[[166,8]]}}}],["anywher",{"_index":18,"t":{"4":{"position":[[137,8]]},"288":{"position":[[929,8]]}}}],["apart",{"_index":1516,"t":{"308":{"position":[[123,5]]}}}],["api",{"_index":778,"t":{"74":{"position":[[379,3]]},"264":{"position":[[307,3]]}}}],["appear",{"_index":2440,"t":{"776":{"position":[[71,7]]}}}],["appl",{"_index":1198,"t":{"165":{"position":[[127,8]]},"300":{"position":[[149,7]]},"744":{"position":[[230,7],[323,5]]},"746":{"position":[[219,8]]},"818":{"position":[[667,8],[746,9],[760,6]]}}}],["appli",{"_index":44,"t":{"4":{"position":[[496,7],[548,8]]},"22":{"position":[[1694,5]]},"397":{"position":[[105,5]]},"403":{"position":[[104,5]]},"407":{"position":[[169,5]]}}}],["application/json",{"_index":2125,"t":{"610":{"position":[[412,18]]}}}],["approach",{"_index":2240,"t":{"648":{"position":[[435,9]]}}}],["appropri",{"_index":2127,"t":{"610":{"position":[[515,14]]}}}],["approxim",{"_index":2153,"t":{"610":{"position":[[1655,11]]}}}],["apt",{"_index":1072,"t":{"122":{"position":[[33,3],[361,3],[377,3]]},"130":{"position":[[119,3]]}}}],["arbitrari",{"_index":791,"t":{"76":{"position":[[54,9]]}}}],["arch",{"_index":1098,"t":{"124":{"position":[[16,4]]},"130":{"position":[[173,5]]}}}],["arch=amd64",{"_index":1085,"t":{"122":{"position":[[177,11]]}}}],["aren't",{"_index":1690,"t":{"375":{"position":[[148,6]]},"377":{"position":[[152,6]]}}}],["arg",{"_index":1196,"t":{"163":{"position":[[543,5]]},"233":{"position":[[142,4],[161,4],[169,3],[313,4],[321,3]]},"323":{"position":[[203,8]]}}}],["arg,str",{"_index":442,"t":{"22":{"position":[[1583,11]]}}}],["arg=valu",{"_index":2575,"t":{"850":{"position":[[438,12]]}}}],["argument",{"_index":115,"t":{"4":{"position":[[1593,8]]},"6":{"position":[[358,9]]},"8":{"position":[[347,8]]},"10":{"position":[[68,9]]},"16":{"position":[[873,8]]},"22":{"position":[[2908,8]]},"32":{"position":[[785,9],[842,9]]},"34":{"position":[[9,9],[69,9],[115,10]]},"40":{"position":[[204,9]]},"42":{"position":[[8,9]]},"44":{"position":[[8,9]]},"58":{"position":[[145,9]]},"62":{"position":[[197,10],[473,10]]},"111":{"position":[[352,8]]},"142":{"position":[[42,8],[277,10]]},"146":{"position":[[81,9]]},"154":{"position":[[42,8],[303,10]]},"171":{"position":[[29,9],[168,9],[189,10],[257,10]]},"227":{"position":[[655,10]]},"235":{"position":[[22,10],[58,9],[377,9]]},"237":{"position":[[23,9],[51,9],[80,9]]},"276":{"position":[[71,9]]},"296":{"position":[[253,8]]},"325":{"position":[[42,9]]},"387":{"position":[[355,9],[365,10],[469,8],[478,8]]},"389":{"position":[[319,9],[329,10]]},"391":{"position":[[525,9],[535,10],[762,9],[772,10],[946,8]]},"576":{"position":[[52,9]]},"580":{"position":[[186,8]]},"672":{"position":[[25,10]]},"826":{"position":[[1102,8]]},"854":{"position":[[30,10]]},"870":{"position":[[54,9]]},"878":{"position":[[80,9]]}}}],["arithmet",{"_index":741,"t":{"62":{"position":[[372,10]]},"337":{"position":[[8,10]]},"858":{"position":[[26,10]]}}}],["around",{"_index":784,"t":{"74":{"position":[[721,6]]},"345":{"position":[[16,6]]},"443":{"position":[[276,6]]},"784":{"position":[[38,7]]},"786":{"position":[[38,7]]}}}],["array",{"_index":564,"t":{"32":{"position":[[80,5]]},"229":{"position":[[283,5]]},"710":{"position":[[359,5]]},"734":{"position":[[63,5]]},"748":{"position":[[13,5]]},"752":{"position":[[13,5],[65,5]]},"758":{"position":[[24,5],[38,6],[205,5]]},"774":{"position":[[14,5]]}}}],["arrow",{"_index":1276,"t":{"227":{"position":[[346,6]]},"292":{"position":[[336,5]]},"355":{"position":[[260,5]]}}}],["articl",{"_index":801,"t":{"78":{"position":[[115,8]]}}}],["artifact",{"_index":218,"t":{"10":{"position":[[546,9]]}}}],["ascii",{"_index":353,"t":{"16":{"position":[[2234,5]]},"804":{"position":[[43,5]]}}}],["aspir",{"_index":1137,"t":{"140":{"position":[[6,7]]}}}],["assert",{"_index":454,"t":{"22":{"position":[[2149,9]]},"363":{"position":[[0,7],[88,9],[151,6],[254,9]]},"365":{"position":[[0,7],[91,9],[150,6],[267,9]]},"367":{"position":[[0,7],[93,9],[154,6],[273,9]]},"369":{"position":[[0,7],[142,9],[203,6],[358,9]]},"371":{"position":[[0,7],[226,9],[318,6],[444,9]]},"373":{"position":[[0,7],[97,9],[152,6],[278,9]]},"375":{"position":[[0,7],[382,9],[453,6],[567,9],[794,9]]},"377":{"position":[[0,7],[386,9],[453,6]]},"379":{"position":[[0,7],[119,9],[192,6],[304,9]]},"381":{"position":[[0,7],[131,9],[216,6],[332,9]]},"383":{"position":[[0,7],[122,9],[199,6],[317,9]]},"385":{"position":[[0,7],[134,9],[223,6]]},"387":{"position":[[0,7],[198,9],[265,6],[414,9]]},"389":{"position":[[0,7],[194,9],[269,6],[420,9]]},"391":{"position":[[0,7],[304,9],[460,6],[642,9],[893,9]]},"393":{"position":[[0,7],[455,9]]},"752":{"position":[[147,6]]}}}],["assert(\"a",{"_index":1285,"t":{"229":{"position":[[413,10]]}}}],["assert(\"b",{"_index":1286,"t":{"229":{"position":[[464,10]]}}}],["assert(\"valu",{"_index":1287,"t":{"229":{"position":[[515,14]]}}}],["assert(\"world",{"_index":1282,"t":{"229":{"position":[[170,14]]}}}],["assert(aft",{"_index":2532,"t":{"828":{"position":[[524,12],[727,12]]}}}],["assert(befor",{"_index":2531,"t":{"828":{"position":[[498,13],[687,13]]}}}],["assert(compareversions(\"1.0.0",{"_index":2116,"t":{"604":{"position":[[95,31],[142,31]]}}}],["assert(crypto.adler32(str",{"_index":1853,"t":{"494":{"position":[[219,26]]}}}],["assert(crypto.crc32(str",{"_index":1850,"t":{"492":{"position":[[279,24]]}}}],["assert(crypto.djb2(str",{"_index":1836,"t":{"482":{"position":[[220,23]]}}}],["assert(crypto.fnv1(str",{"_index":1839,"t":{"484":{"position":[[163,23]]}}}],["assert(crypto.fnv1a(str",{"_index":1842,"t":{"486":{"position":[[164,24]]}}}],["assert(crypto.joaat(str",{"_index":1844,"t":{"488":{"position":[[221,24]]}}}],["assert(crypto.lookup3(str",{"_index":1856,"t":{"496":{"position":[[166,26]]}}}],["assert(crypto.lua(str",{"_index":1828,"t":{"478":{"position":[[180,22]]}}}],["assert(crypto.md5(str",{"_index":1832,"t":{"480":{"position":[[163,22]]}}}],["assert(crypto.murmur1(str",{"_index":1862,"t":{"500":{"position":[[223,26]]}}}],["assert(crypto.murmur2(str",{"_index":1865,"t":{"502":{"position":[[223,26]]}}}],["assert(crypto.murmur2a(str",{"_index":1868,"t":{"504":{"position":[[224,27]]}}}],["assert(crypto.murmur2neutral(str",{"_index":1876,"t":{"510":{"position":[[173,33]]}}}],["assert(crypto.murmur64a(str",{"_index":1871,"t":{"506":{"position":[[168,28]]}}}],["assert(crypto.murmur64b(str",{"_index":1873,"t":{"508":{"position":[[168,28]]}}}],["assert(crypto.sdbm(str",{"_index":1847,"t":{"490":{"position":[[220,23]]}}}],["assert(crypto.sha1(\"pluto",{"_index":1882,"t":{"513":{"position":[[240,27],[315,27]]}}}],["assert(crypto.sha256(\"pluto",{"_index":1886,"t":{"515":{"position":[[242,29],[343,29]]}}}],["assert(crypto.sha384(\"pluto",{"_index":1890,"t":{"517":{"position":[[242,29]]}}}],["assert(crypto.sha512(\"pluto",{"_index":1893,"t":{"519":{"position":[[242,29]]}}}],["assert(crypto.times33(str",{"_index":1859,"t":{"498":{"position":[[223,26]]}}}],["assert(data[1",{"_index":2459,"t":{"784":{"position":[[280,14]]}}}],["assert(data[2",{"_index":2460,"t":{"784":{"position":[[311,14]]}}}],["assert(data[3",{"_index":2461,"t":{"784":{"position":[[342,14]]}}}],["assert(data[4",{"_index":2462,"t":{"784":{"position":[[373,14]]}}}],["assert(decod",{"_index":2192,"t":{"620":{"position":[[738,14]]}}}],["assert(decoded.__order[1",{"_index":2196,"t":{"620":{"position":[[1162,25]]}}}],["assert(decoded.key",{"_index":2194,"t":{"620":{"position":[[934,18]]}}}],["assert(decoded.nested.nested_key",{"_index":2195,"t":{"620":{"position":[[998,32]]}}}],["assert(decoded.nul",{"_index":2197,"t":{"620":{"position":[[1199,19]]}}}],["assert(heart",{"_index":1659,"t":{"359":{"position":[[431,13]]}}}],["assert(json.encode(decod",{"_index":2198,"t":{"620":{"position":[[1233,27]]}}}],["assert(lib.add(38",{"_index":2059,"t":{"584":{"position":[[320,18],[630,18]]}}}],["assert(lib.my_magic_int",{"_index":2058,"t":{"584":{"position":[[289,23],[599,23]]}}}],["assert(lib:value(\"i32",{"_index":2028,"t":{"564":{"position":[[705,23]]}}}],["assert(lib:wrap(\"i32",{"_index":2029,"t":{"564":{"position":[[752,22]]}}}],["assert(myenum.option_1",{"_index":1259,"t":{"215":{"position":[[469,22]]},"217":{"position":[[160,22]]}}}],["assert(n",{"_index":1308,"t":{"245":{"position":[[117,8]]},"247":{"position":[[98,8],[213,8]]}}}],["assert(not",{"_index":1288,"t":{"229":{"position":[[582,10]]}}}],["assert(option_1",{"_index":1254,"t":{"215":{"position":[[90,15],[296,15]]},"217":{"position":[[136,15]]},"221":{"position":[[79,15]]}}}],["assert(option_2",{"_index":1255,"t":{"215":{"position":[[112,15],[318,15]]},"221":{"position":[[101,15]]}}}],["assert(option_3",{"_index":1256,"t":{"215":{"position":[[134,15],[340,15]]},"221":{"position":[[123,15]]}}}],["assert(option_4",{"_index":1258,"t":{"215":{"position":[[362,15]]}}}],["assert(require\"crypto\".ripemd160(\"pluto",{"_index":1897,"t":{"521":{"position":[[212,41]]}}}],["assert(runtim",{"_index":1161,"t":{"146":{"position":[[283,14],[538,14]]}}}],["assert(s:lower(1",{"_index":2470,"t":{"792":{"position":[[113,17]]}}}],["assert(s:starttls(\"pluto",{"_index":2344,"t":{"710":{"position":[[865,24]]}}}],["assert(s:upper(1",{"_index":2469,"t":{"790":{"position":[[109,17]]}}}],["assert(sam",{"_index":2397,"t":{"748":{"position":[[209,11]]}}}],["assert(sock:starttls(\"1.1.1.1",{"_index":2364,"t":{"718":{"position":[[158,32]]}}}],["assert(table.contains(t",{"_index":2387,"t":{"742":{"position":[[203,24],[237,24],[281,24]]}}}],["assert(table.isfrozen(t",{"_index":2386,"t":{"740":{"position":[[99,24]]}}}],["assert(test[1",{"_index":2465,"t":{"786":{"position":[[172,14]]}}}],["assert(test[2",{"_index":2466,"t":{"786":{"position":[[193,14]]}}}],["assert(test[3",{"_index":2467,"t":{"786":{"position":[[214,14]]}}}],["assert(type(decod",{"_index":2193,"t":{"620":{"position":[[762,20],[965,20]]}}}],["assert.contain",{"_index":90,"t":{"4":{"position":[[1181,15]]}}}],["assert.contains(\"hello",{"_index":1729,"t":{"393":{"position":[[634,24]]}}}],["assert.contains(\"world",{"_index":1730,"t":{"393":{"position":[[692,24]]}}}],["assert.equ",{"_index":383,"t":{"20":{"position":[[274,12]]},"375":{"position":[[584,14],[811,14]]}}}],["assert.equal(\"hello",{"_index":1693,"t":{"375":{"position":[[480,20]]}}}],["assert.equal(\"hi",{"_index":1696,"t":{"375":{"position":[[692,16]]}}}],["assert.equal(t1:reord",{"_index":2402,"t":{"752":{"position":[[220,26]]}}}],["assert.falsi",{"_index":1678,"t":{"369":{"position":[[375,14]]}}}],["assert.falsy(\"hello",{"_index":1677,"t":{"369":{"position":[[290,20]]}}}],["assert.falsy(fals",{"_index":1676,"t":{"369":{"position":[[259,19]]}}}],["assert.falsy(nil",{"_index":1675,"t":{"369":{"position":[[230,17]]}}}],["assert.great",{"_index":1711,"t":{"383":{"position":[[334,16]]}}}],["assert.greater(3",{"_index":1710,"t":{"383":{"position":[[226,17],[258,17]]}}}],["assert.greatereq(3",{"_index":1712,"t":{"385":{"position":[[250,19],[284,19]]}}}],["assert.haserror",{"_index":1720,"t":{"389":{"position":[[437,17]]}}}],["assert.haserror(error",{"_index":1718,"t":{"389":{"position":[[296,22]]}}}],["assert.haserror(tostr",{"_index":1719,"t":{"389":{"position":[[351,25]]}}}],["assert.isfals",{"_index":1674,"t":{"367":{"position":[[290,16]]}}}],["assert.isfalse(fals",{"_index":1672,"t":{"367":{"position":[[181,21]]}}}],["assert.isfalse(tru",{"_index":1673,"t":{"367":{"position":[[214,20]]}}}],["assert.isnil",{"_index":1664,"t":{"363":{"position":[[271,14]]}}}],["assert.isnil(5",{"_index":1663,"t":{"363":{"position":[[207,15]]}}}],["assert.isnil(nil",{"_index":1662,"t":{"363":{"position":[[178,17]]}}}],["assert.istru",{"_index":1671,"t":{"365":{"position":[[284,15]]}}}],["assert.istrue(fals",{"_index":1670,"t":{"365":{"position":[[208,20]]}}}],["assert.istrue(tru",{"_index":1669,"t":{"365":{"position":[[177,19]]}}}],["assert.less",{"_index":1706,"t":{"379":{"position":[[321,13]]}}}],["assert.less(1",{"_index":1705,"t":{"379":{"position":[[219,14],[248,14]]}}}],["assert.lesseq",{"_index":1708,"t":{"381":{"position":[[349,15]]}}}],["assert.lesseq(1",{"_index":1707,"t":{"381":{"position":[[243,16],[274,16]]}}}],["assert.nequ",{"_index":384,"t":{"20":{"position":[[289,13]]}}}],["assert.nequal(\"hello",{"_index":1702,"t":{"377":{"position":[[480,21]]}}}],["assert.nequal(\"hi",{"_index":1703,"t":{"377":{"position":[[536,17]]}}}],["assert.noerror",{"_index":1717,"t":{"387":{"position":[[431,16]]}}}],["assert.noerror(error",{"_index":1716,"t":{"387":{"position":[[333,21]]}}}],["assert.noerror(tostr",{"_index":1714,"t":{"387":{"position":[[292,24]]}}}],["assert.notnil",{"_index":1686,"t":{"373":{"position":[[295,15]]}}}],["assert.notnil(\"hello",{"_index":1684,"t":{"373":{"position":[[179,21]]}}}],["assert.notnil(nil",{"_index":1685,"t":{"373":{"position":[[221,18]]}}}],["assert.searcherror",{"_index":1724,"t":{"391":{"position":[[659,20],[910,20]]}}}],["assert.searcherror(\"argu",{"_index":1722,"t":{"391":{"position":[[487,30],[724,30],[794,30]]}}}],["assert.searcherror(\"someth",{"_index":1723,"t":{"391":{"position":[[557,31]]}}}],["assert.truthi",{"_index":1683,"t":{"371":{"position":[[461,15]]}}}],["assert.truthy(\"hello",{"_index":1681,"t":{"371":{"position":[[345,21]]}}}],["assert.truthy(nil",{"_index":1682,"t":{"371":{"position":[[387,18]]}}}],["assign",{"_index":63,"t":{"4":{"position":[[805,10]]},"22":{"position":[[1340,8]]},"26":{"position":[[364,10]]},"148":{"position":[[244,8],[359,8]]},"165":{"position":[[292,8]]},"167":{"position":[[279,8]]},"197":{"position":[[33,6]]},"199":{"position":[[83,6]]},"201":{"position":[[99,6]]},"203":{"position":[[59,6]]},"252":{"position":[[507,11]]},"268":{"position":[[62,9]]},"276":{"position":[[51,6]]},"317":{"position":[[660,11]]},"319":{"position":[[42,11],[132,8],[173,8],[326,8],[367,8]]}}}],["associ",{"_index":1444,"t":{"282":{"position":[[348,10]]}}}],["assum",{"_index":1126,"t":{"136":{"position":[[356,8]]},"199":{"position":[[0,8]]},"201":{"position":[[0,8]]},"203":{"position":[[0,8]]},"524":{"position":[[41,8]]},"618":{"position":[[731,8]]}}}],["attempt",{"_index":764,"t":{"68":{"position":[[358,8]]},"140":{"position":[[107,9]]},"250":{"position":[[150,8],[369,8]]},"282":{"position":[[269,7],[458,7],[529,7],[610,7],[857,7]]},"610":{"position":[[680,7]]},"668":{"position":[[0,7]]},"710":{"position":[[0,8]]}}}],["attribut",{"_index":285,"t":{"16":{"position":[[237,9],[681,9]]},"22":{"position":[[1238,10]]},"40":{"position":[[18,9]]},"148":{"position":[[160,10]]},"175":{"position":[[135,9]]},"840":{"position":[[259,10]]},"842":{"position":[[191,10],[489,14]]}}}],["augment",{"_index":2188,"t":{"620":{"position":[[244,7]]}}}],["authent",{"_index":1936,"t":{"538":{"position":[[5,13],[120,14]]},"540":{"position":[[153,13],[358,14]]},"542":{"position":[[81,13],[229,14],[343,14]]}}}],["automat",{"_index":27,"t":{"4":{"position":[[284,13]]},"40":{"position":[[270,13]]},"103":{"position":[[120,13]]},"105":{"position":[[432,14]]},"211":{"position":[[34,13],[324,13],[555,13]]},"260":{"position":[[326,13]]},"272":{"position":[[336,14]]},"473":{"position":[[162,13]]},"698":{"position":[[49,13]]}}}],["avail",{"_index":1002,"t":{"107":{"position":[[339,9]]},"126":{"position":[[9,9]]},"146":{"position":[[578,9]]},"219":{"position":[[264,10]]},"313":{"position":[[37,9]]},"461":{"position":[[18,9]]},"465":{"position":[[802,10]]},"598":{"position":[[277,11],[1029,12]]},"600":{"position":[[328,11],[442,12]]},"610":{"position":[[1708,9]]},"612":{"position":[[38,9],[83,9]]},"664":{"position":[[20,9]]},"668":{"position":[[656,10]]},"670":{"position":[[22,9]]},"692":{"position":[[50,9]]},"710":{"position":[[386,9]]}}}],["avoid",{"_index":361,"t":{"16":{"position":[[2498,5]]},"68":{"position":[[352,5]]},"163":{"position":[[288,5]]},"177":{"position":[[388,5]]},"179":{"position":[[338,5]]},"181":{"position":[[335,5]]},"260":{"position":[[475,5]]},"610":{"position":[[1414,5]]}}}],["awar",{"_index":983,"t":{"101":{"position":[[272,5]]}}}],["away",{"_index":2406,"t":{"758":{"position":[[8,4]]}}}],["axi",{"_index":2599,"t":{"866":{"position":[[21,4]]},"868":{"position":[[21,4]]},"872":{"position":[[41,4]]},"876":{"position":[[101,4],[201,4],[228,4]]}}}],["b",{"_index":60,"t":{"4":{"position":[[756,1]]},"14":{"position":[[89,1],[136,1]]},"171":{"position":[[104,2]]},"187":{"position":[[140,2],[166,1]]},"199":{"position":[[124,2],[186,2],[240,2]]},"211":{"position":[[153,2],[167,1],[275,2],[289,1],[506,2],[520,1]]},"227":{"position":[[489,2],[521,3],[547,1]]},"229":{"position":[[392,4],[484,3]]},"241":{"position":[[132,2],[158,1],[395,2],[437,1]]},"252":{"position":[[568,2],[597,2]]},"296":{"position":[[143,2]]},"304":{"position":[[128,1],[154,1],[196,1],[204,1]]},"306":{"position":[[90,1],[115,1],[129,1]]},"308":{"position":[[76,1],[87,1]]},"353":{"position":[[30,1],[166,1]]},"355":{"position":[[38,2],[53,1],[167,2],[182,1]]},"564":{"position":[[413,2],[429,2]]},"566":{"position":[[222,2]]},"570":{"position":[[207,2]]},"584":{"position":[[282,3]]},"618":{"position":[[616,4],[635,1]]},"780":{"position":[[124,4],[202,4]]}}}],["back",{"_index":2445,"t":{"780":{"position":[[211,9]]}}}],["background",{"_index":1775,"t":{"443":{"position":[[330,10],[399,10]]}}}],["backup",{"_index":2204,"t":{"628":{"position":[[306,6],[354,6]]}}}],["backup_cfg/config.txt",{"_index":2202,"t":{"628":{"position":[[244,26]]}}}],["backward",{"_index":1267,"t":{"225":{"position":[[398,9]]},"231":{"position":[[257,9]]},"254":{"position":[[540,9]]},"339":{"position":[[538,9]]},"876":{"position":[[978,8]]}}}],["bad",{"_index":1041,"t":{"111":{"position":[[348,3]]},"173":{"position":[[163,3],[247,4]]},"606":{"position":[[170,6]]},"826":{"position":[[1195,4]]}}}],["banana",{"_index":1199,"t":{"165":{"position":[[144,8],[232,8]]},"300":{"position":[[167,8]]},"744":{"position":[[258,8]]},"746":{"position":[[228,9],[281,10],[318,6]]}}}],["bar",{"_index":2237,"t":{"648":{"position":[[326,5]]},"734":{"position":[[158,5]]},"736":{"position":[[105,5]]}}}],["base",{"_index":34,"t":{"4":{"position":[[363,5]]},"97":{"position":[[50,5]]},"215":{"position":[[182,4]]},"441":{"position":[[30,5]]},"592":{"position":[[255,5]]},"640":{"position":[[165,5]]},"670":{"position":[[85,5]]},"776":{"position":[[20,5]]},"796":{"position":[[17,4]]},"876":{"position":[[26,5]]},"878":{"position":[[26,5]]},"880":{"position":[[27,5]]}}}],["base32",{"_index":371,"t":{"18":{"position":[[131,6]]},"50":{"position":[[635,6]]},"146":{"position":[[632,6]]},"397":{"position":[[19,6]]},"399":{"position":[[18,6],[64,6]]}}}],["base32.encod",{"_index":343,"t":{"16":{"position":[[2059,13]]}}}],["base58",{"_index":511,"t":{"22":{"position":[[3624,6]]},"50":{"position":[[622,6]]},"146":{"position":[[639,6]]}}}],["base64",{"_index":372,"t":{"18":{"position":[[140,6]]},"50":{"position":[[609,6]]},"146":{"position":[[646,6]]},"205":{"position":[[121,7]]},"403":{"position":[[10,6],[149,6]]},"405":{"position":[[18,6],[64,6],[89,6]]},"407":{"position":[[90,7],[215,6]]},"409":{"position":[[78,6],[103,6]]},"457":{"position":[[99,7]]},"553":{"position":[[267,7]]},"557":{"position":[[292,7]]}}}],["base64.decod",{"_index":1738,"t":{"409":{"position":[[11,13]]}}}],["base64.encod",{"_index":342,"t":{"16":{"position":[[2043,13]]}}}],["base64.url_decod",{"_index":495,"t":{"22":{"position":[[3059,17]]}}}],["base64.url_encod",{"_index":494,"t":{"22":{"position":[[3039,17]]}}}],["base64.urldecod",{"_index":496,"t":{"22":{"position":[[3099,16]]}}}],["base64.urlencod",{"_index":348,"t":{"16":{"position":[[2134,17]]},"22":{"position":[[3080,16]]}}}],["base64url",{"_index":1736,"t":{"407":{"position":[[10,9]]},"409":{"position":[[36,10]]}}}],["basi",{"_index":1592,"t":{"331":{"position":[[71,6]]}}}],["basic",{"_index":1324,"t":{"250":{"position":[[210,5]]},"620":{"position":[[639,5]]},"828":{"position":[[393,5]]}}}],["batch",{"_index":1119,"t":{"132":{"position":[[127,5]]}}}],["battl",{"_index":796,"t":{"78":{"position":[[40,6]]}}}],["bce8c9aca4120776fad6b517874aa09c46405454",{"_index":1883,"t":{"513":{"position":[[271,43]]}}}],["be",{"_index":73,"t":{"4":{"position":[[930,5]]},"10":{"position":[[24,5]]},"12":{"position":[[204,5]]},"14":{"position":[[309,5],[503,5],[656,5]]},"16":{"position":[[784,5],[838,5]]},"18":{"position":[[161,5]]},"20":{"position":[[452,5]]},"22":{"position":[[1089,5]]},"30":{"position":[[141,5]]},"34":{"position":[[253,5]]},"44":{"position":[[293,5],[353,5]]},"46":{"position":[[175,5]]},"138":{"position":[[82,5]]},"207":{"position":[[188,5]]},"292":{"position":[[383,5]]},"308":{"position":[[273,5]]},"668":{"position":[[608,5]]},"724":{"position":[[180,5]]},"872":{"position":[[46,5]]}}}],["becom",{"_index":1024,"t":{"109":{"position":[[132,7]]},"730":{"position":[[150,8]]},"752":{"position":[[44,7]]}}}],["befor",{"_index":24,"t":{"4":{"position":[[217,6]]},"32":{"position":[[625,6]]},"42":{"position":[[180,6]]},"83":{"position":[[29,6]]},"146":{"position":[[147,6]]},"183":{"position":[[338,6]]},"193":{"position":[[81,6]]},"284":{"position":[[202,6]]},"748":{"position":[[250,7]]},"828":{"position":[[302,6],[457,7],[640,7]]}}}],["begin",{"_index":54,"t":{"4":{"position":[[665,5]]},"32":{"position":[[617,7]]},"107":{"position":[[753,10]]},"215":{"position":[[51,5],[239,5]]},"217":{"position":[[97,5]]},"219":{"position":[[128,5]]},"221":{"position":[[40,5]]},"359":{"position":[[99,6]]},"547":{"position":[[427,5]]},"549":{"position":[[204,5]]},"826":{"position":[[328,9]]}}}],["behav",{"_index":1237,"t":{"195":{"position":[[239,7]]},"304":{"position":[[20,6]]}}}],["behavior",{"_index":266,"t":{"14":{"position":[[565,8]]},"24":{"position":[[17,8]]},"32":{"position":[[1096,8]]},"54":{"position":[[152,8]]},"62":{"position":[[639,9]]},"596":{"position":[[322,8]]}}}],["benefici",{"_index":1608,"t":{"335":{"position":[[272,10]]}}}],["benefit",{"_index":1367,"t":{"254":{"position":[[477,7]]}}}],["benign",{"_index":1031,"t":{"111":{"position":[[49,6]]}}}],["besid",{"_index":1183,"t":{"152":{"position":[[237,7]]},"347":{"position":[[333,7]]}}}],["better",{"_index":854,"t":{"87":{"position":[[417,6]]},"111":{"position":[[773,6]]},"197":{"position":[[19,6]]},"648":{"position":[[476,7]]}}}],["between",{"_index":1767,"t":{"443":{"position":[[172,7]]},"482":{"position":[[118,7]]},"488":{"position":[[119,7]]},"490":{"position":[[118,7]]},"492":{"position":[[177,7]]},"498":{"position":[[121,7]]},"500":{"position":[[121,7]]},"502":{"position":[[121,7]]},"504":{"position":[[122,7]]},"782":{"position":[[45,7]]}}}],["beyond",{"_index":2511,"t":{"826":{"position":[[187,6]]}}}],["bg",{"_index":1774,"t":{"443":{"position":[[311,4],[549,2]]}}}],["big",{"_index":548,"t":{"26":{"position":[[254,4]]}}}],["bigint",{"_index":304,"t":{"16":{"position":[[1008,8]]},"22":{"position":[[2507,6]]},"413":{"position":[[17,7],[125,7],[145,6]]},"415":{"position":[[81,6]]},"417":{"position":[[45,7],[65,6]]},"419":{"position":[[40,7],[60,6]]},"421":{"position":[[9,7],[41,7]]},"423":{"position":[[28,8],[51,7]]},"425":{"position":[[31,8],[54,7]]},"427":{"position":[[25,8],[50,8],[95,6]]},"429":{"position":[[25,8],[48,6],[86,6]]},"431":{"position":[[24,8],[47,6],[86,6]]},"433":{"position":[[32,8],[55,7],[75,6]]},"435":{"position":[[85,6]]},"545":{"position":[[291,6]]},"547":{"position":[[131,7]]},"549":{"position":[[129,7]]},"553":{"position":[[275,7]]},"557":{"position":[[300,7]]},"826":{"position":[[157,6]]}}}],["bigint(\"115443384115231951475820445136871322101870729500298182134363293112660251666017",{"_index":1961,"t":{"547":{"position":[[191,89]]},"553":{"position":[[335,89]]},"557":{"position":[[360,89]]}}}],["bigint(\"123",{"_index":1744,"t":{"413":{"position":[[187,14]]}}}],["bigint(\"420\"):binari",{"_index":1748,"t":{"419":{"position":[[102,23]]}}}],["bigint(\"420\"):hex",{"_index":1746,"t":{"417":{"position":[[107,20]]}}}],["bigint(\"98365361248415863235179644468056200977592391948608651522703704315152579004021",{"_index":1962,"t":{"547":{"position":[[289,88]]},"553":{"position":[[433,88]]},"557":{"position":[[458,88]]}}}],["bigint(0x10001",{"_index":1978,"t":{"553":{"position":[[747,15]]},"557":{"position":[[772,15]]}}}],["bigint(10",{"_index":1754,"t":{"429":{"position":[[128,10]]},"431":{"position":[[128,10]]},"433":{"position":[[133,11]]}}}],["bigint(10):div(new",{"_index":1752,"t":{"427":{"position":[[137,18]]}}}],["bigint(2",{"_index":1757,"t":{"433":{"position":[[117,9]]}}}],["bigint(3",{"_index":1753,"t":{"427":{"position":[[156,11]]},"429":{"position":[[145,10]]},"431":{"position":[[145,10]]}}}],["bigint(420):bitlength",{"_index":1760,"t":{"435":{"position":[[127,24]]}}}],["bigint.eq",{"_index":91,"t":{"4":{"position":[[1203,10]]}}}],["bigint.l",{"_index":93,"t":{"4":{"position":[[1227,9]]}}}],["bigint.lt",{"_index":92,"t":{"4":{"position":[[1214,10]]}}}],["bigint.new",{"_index":1741,"t":{"413":{"position":[[42,10]]}}}],["binari",{"_index":191,"t":{"8":{"position":[[494,6]]},"16":{"position":[[1855,6]]},"18":{"position":[[167,6]]},"50":{"position":[[117,6]]},"117":{"position":[[23,8]]},"122":{"position":[[566,8]]},"126":{"position":[[77,8]]},"130":{"position":[[507,8]]},"132":{"position":[[191,8]]},"134":{"position":[[111,8]]},"136":{"position":[[162,8]]},"247":{"position":[[158,6]]},"419":{"position":[[11,6]]},"513":{"position":[[125,6]]},"515":{"position":[[127,6]]},"517":{"position":[[127,6]]},"519":{"position":[[127,6]]},"521":{"position":[[130,6]]},"834":{"position":[[11,8]]},"836":{"position":[[25,7]]}}}],["bind",{"_index":2372,"t":{"726":{"position":[[234,4]]}}}],["bit",{"_index":673,"t":{"44":{"position":[[313,3]]},"435":{"position":[[49,3]]},"528":{"position":[[228,3]]},"530":{"position":[[229,3]]},"534":{"position":[[196,3]]},"536":{"position":[[197,3]]},"540":{"position":[[260,3]]},"542":{"position":[[165,3]]},"545":{"position":[[34,4],[73,3]]}}}],["bitshift",{"_index":1527,"t":{"313":{"position":[[441,8],[460,8]]}}}],["bitwis",{"_index":1526,"t":{"313":{"position":[[170,7],[186,7],[201,7]]},"620":{"position":[[308,7]]}}}],["black",{"_index":1777,"t":{"443":{"position":[[373,6]]},"459":{"position":[[22,5],[136,8]]}}}],["block",{"_index":377,"t":{"20":{"position":[[147,6]]},"26":{"position":[[244,5]]},"89":{"position":[[1000,5]]},"97":{"position":[[320,5]]},"169":{"position":[[22,5]]},"183":{"position":[[66,6]]},"211":{"position":[[366,6]]},"286":{"position":[[7,6]]},"288":{"position":[[945,6]]},"292":{"position":[[111,7],[286,6]]},"359":{"position":[[42,5]]},"532":{"position":[[105,6],[143,7]]},"610":{"position":[[1826,7]]},"612":{"position":[[366,6]]},"614":{"position":[[79,8]]},"694":{"position":[[304,7]]},"704":{"position":[[361,5]]},"710":{"position":[[750,7]]},"724":{"position":[[383,8]]},"726":{"position":[[126,5]]}}}],["bmp",{"_index":1763,"t":{"441":{"position":[[41,3],[68,3]]},"455":{"position":[[22,3]]}}}],["bodi",{"_index":289,"t":{"16":{"position":[[333,6]]},"22":{"position":[[736,4]]},"32":{"position":[[632,4]]},"227":{"position":[[444,6]]},"610":{"position":[[434,5],[1497,4],[2255,5]]},"842":{"position":[[1073,6],[1232,7]]}}}],["boilerpl",{"_index":1421,"t":{"276":{"position":[[144,12]]}}}],["bool",{"_index":823,"t":{"83":{"position":[[373,4]]},"632":{"position":[[147,4],[172,4]]},"634":{"position":[[145,4],[171,4]]},"644":{"position":[[100,4]]},"756":{"position":[[176,4]]},"758":{"position":[[401,4]]},"762":{"position":[[162,4]]},"834":{"position":[[99,4],[156,4]]}}}],["boolean",{"_index":1374,"t":{"256":{"position":[[636,7]]},"311":{"position":[[147,7]]},"343":{"position":[[32,7]]},"557":{"position":[[214,7]]},"590":{"position":[[19,7]]},"618":{"position":[[47,8]]},"620":{"position":[[59,8]]},"628":{"position":[[151,7]]},"632":{"position":[[53,7]]},"634":{"position":[[53,7]]},"636":{"position":[[53,7]]},"638":{"position":[[75,7]]},"640":{"position":[[85,7]]},"820":{"position":[[278,7]]},"828":{"position":[[142,7]]}}}],["boolean/bool",{"_index":1490,"t":{"298":{"position":[[24,12]]}}}],["boom",{"_index":2289,"t":{"678":{"position":[[602,5]]}}}],["boost",{"_index":1612,"t":{"337":{"position":[[181,6]]}}}],["border",{"_index":1772,"t":{"443":{"position":[[236,8]]}}}],["botanist",{"_index":1508,"t":{"300":{"position":[[312,11],[450,11]]}}}],["both",{"_index":1514,"t":{"302":{"position":[[103,4]]},"337":{"position":[[230,4]]},"375":{"position":[[85,4]]},"377":{"position":[[89,4]]},"473":{"position":[[113,5]]},"526":{"position":[[37,4]]},"734":{"position":[[54,4]]},"758":{"position":[[18,5]]},"798":{"position":[[32,4]]}}}],["bottleneck",{"_index":864,"t":{"89":{"position":[[244,10]]}}}],["box",{"_index":584,"t":{"32":{"position":[[1166,3]]}}}],["bracket",{"_index":1372,"t":{"256":{"position":[[479,8]]}}}],["break",{"_index":260,"t":{"14":{"position":[[358,5]]},"16":{"position":[[2504,8]]},"18":{"position":[[81,5]]},"22":{"position":[[1907,5]]},"52":{"position":[[178,7]]},"68":{"position":[[240,5]]},"89":{"position":[[1084,8]]},"95":{"position":[[122,5],[178,5]]},"142":{"position":[[111,6],[147,8],[225,5],[257,7],[369,5],[390,5],[409,5],[430,5]]},"152":{"position":[[26,6]]},"173":{"position":[[229,5]]},"288":{"position":[[74,5],[116,5],[129,5],[292,5],[348,5],[438,5],[839,5],[1001,5]]},"290":{"position":[[113,5],[219,5],[252,5],[507,5],[577,5]]},"313":{"position":[[434,6]]},"319":{"position":[[607,5]]},"726":{"position":[[308,5]]}}}],["browser",{"_index":1065,"t":{"115":{"position":[[114,7]]}}}],["buffer",{"_index":2322,"t":{"704":{"position":[[265,9]]},"706":{"position":[[197,7]]},"708":{"position":[[51,7]]}}}],["bug",{"_index":275,"t":{"14":{"position":[[809,4]]},"22":{"position":[[1521,4]]},"38":{"position":[[384,4]]},"52":{"position":[[158,4]]},"70":{"position":[[8,3]]},"288":{"position":[[516,4]]},"298":{"position":[[545,5]]}}}],["bugfix",{"_index":553,"t":{"26":{"position":[[456,8]]},"66":{"position":[[0,7]]},"74":{"position":[[841,8]]}}}],["build",{"_index":155,"t":{"6":{"position":[[321,5]]},"10":{"position":[[706,6]]},"36":{"position":[[401,5]]},"42":{"position":[[56,8]]},"81":{"position":[[103,5]]},"83":{"position":[[271,5]]},"87":{"position":[[161,5]]},"93":{"position":[[69,5]]},"97":{"position":[[400,5]]},"111":{"position":[[631,5]]},"128":{"position":[[219,5]]},"132":{"position":[[119,5],[133,5],[178,8]]},"136":{"position":[[23,5],[103,5]]},"150":{"position":[[73,6],[96,6]]},"335":{"position":[[451,5]]},"357":{"position":[[124,5]]},"610":{"position":[[623,6],[922,6],[1273,6],[1589,6],[1726,6],[1842,6]]},"612":{"position":[[101,6]]},"614":{"position":[[128,6]]},"692":{"position":[[68,6]]}}}],["built",{"_index":727,"t":{"56":{"position":[[298,5]]},"117":{"position":[[17,5]]},"467":{"position":[[88,5]]},"586":{"position":[[85,5]]},"622":{"position":[[81,5]]},"656":{"position":[[83,5]]},"684":{"position":[[81,5]]},"728":{"position":[[84,5]]},"788":{"position":[[85,5]]}}}],["bundl",{"_index":972,"t":{"99":{"position":[[519,8],[600,8]]}}}],["burden",{"_index":468,"t":{"22":{"position":[[2445,8]]},"610":{"position":[[1420,9]]},"818":{"position":[[108,8]]}}}],["buster",{"_index":1089,"t":{"122":{"position":[[278,6],[537,8]]}}}],["bvar",{"_index":1619,"t":{"343":{"position":[[110,4],[212,5]]}}}],["by=/usr/share/keyrings/calam",{"_index":1087,"t":{"122":{"position":[[196,31]]}}}],["bypass",{"_index":815,"t":{"83":{"position":[[128,6]]},"85":{"position":[[196,6],[451,9]]}}}],["byte",{"_index":708,"t":{"52":{"position":[[309,5]]},"572":{"position":[[188,6]]},"574":{"position":[[226,6]]},"650":{"position":[[28,6]]},"804":{"position":[[199,4]]}}}],["bytecod",{"_index":210,"t":{"10":{"position":[[343,8]]},"20":{"position":[[90,8]]},"22":{"position":[[1960,9]]},"24":{"position":[[262,8]]},"34":{"position":[[46,8]]},"81":{"position":[[38,8]]},"101":{"position":[[29,8]]},"138":{"position":[[137,9]]},"181":{"position":[[87,10],[196,9],[286,8]]},"191":{"position":[[549,9],[618,8]]},"225":{"position":[[365,8]]},"231":{"position":[[225,8]]},"254":{"position":[[508,8]]},"278":{"position":[[577,9]]},"339":{"position":[[506,8]]}}}],["c",{"_index":61,"t":{"4":{"position":[[763,1],[953,1],[1029,1],[1068,3]]},"14":{"position":[[96,2],[140,2]]},"16":{"position":[[2261,2],[2465,3]]},"42":{"position":[[70,1]]},"50":{"position":[[147,1]]},"83":{"position":[[369,3]]},"85":{"position":[[326,1]]},"105":{"position":[[302,1]]},"111":{"position":[[425,4]]},"128":{"position":[[66,3]]},"171":{"position":[[107,2]]},"199":{"position":[[131,1],[189,1],[243,2]]},"227":{"position":[[249,3]]},"252":{"position":[[571,1],[600,2]]},"264":{"position":[[305,1]]},"304":{"position":[[61,2]]},"355":{"position":[[41,2],[63,2],[170,2],[192,2]]},"363":{"position":[[341,4],[454,4]]},"365":{"position":[[360,4],[501,4]]},"367":{"position":[[367,4],[508,4]]},"369":{"position":[[479,4],[620,4]]},"371":{"position":[[547,4],[688,4]]},"373":{"position":[[372,4],[513,4]]},"443":{"position":[[493,1]]},"457":{"position":[[136,1]]},"564":{"position":[[234,3],[342,3],[383,3]]},"566":{"position":[[19,1],[50,1],[237,1]]},"570":{"position":[[19,1],[89,1],[222,1]]},"584":{"position":[[19,1],[101,1]]},"596":{"position":[[135,1]]},"600":{"position":[[196,1]]},"618":{"position":[[621,3],[642,1]]},"780":{"position":[[129,3],[152,3],[207,3],[225,1]]},"826":{"position":[[1233,4],[1297,4]]}}}],["c.r",{"_index":2037,"t":{"566":{"position":[[253,3]]},"570":{"position":[[243,3]]}}}],["c/c",{"_index":739,"t":{"62":{"position":[[287,6]]}}}],["c2072a85f4a691803b8942709036072086fd9550",{"_index":1898,"t":{"521":{"position":[[257,43]]}}}],["c:\\users\\username\\desktop\\project\\a\\b\\c",{"_index":2226,"t":{"642":{"position":[[173,41]]}}}],["c:\\users\\username\\desktop\\project\\cfg\\cfg.txt",{"_index":2230,"t":{"644":{"position":[[275,47]]}}}],["c:fill(0xff0000",{"_index":1791,"t":{"457":{"position":[[157,16]]}}}],["c:resum",{"_index":2076,"t":{"596":{"position":[[215,10]]}}}],["cach",{"_index":135,"t":{"6":{"position":[[107,6]]},"74":{"position":[[656,5]]},"341":{"position":[[11,5],[84,5],[221,5]]}}}],["calam",{"_index":949,"t":{"99":{"position":[[69,8],[373,8]]}}}],["call",{"_index":235,"t":{"12":{"position":[[103,5]]},"14":{"position":[[180,4],[601,5]]},"20":{"position":[[191,5]]},"22":{"position":[[207,6]]},"26":{"position":[[303,5]]},"28":{"position":[[163,4]]},"36":{"position":[[177,5]]},"40":{"position":[[842,5]]},"60":{"position":[[171,4]]},"89":{"position":[[143,4],[352,6],[537,5]]},"95":{"position":[[448,4],[461,4]]},"146":{"position":[[42,6],[167,5]]},"199":{"position":[[114,6]]},"252":{"position":[[80,5]]},"264":{"position":[[88,4]]},"272":{"position":[[83,4],[329,6],[416,4],[621,6]]},"284":{"position":[[184,4]]},"290":{"position":[[293,5]]},"313":{"position":[[612,4]]},"327":{"position":[[39,5]]},"337":{"position":[[284,7]]},"339":{"position":[[94,4]]},"347":{"position":[[465,5]]},"363":{"position":[[444,9]]},"365":{"position":[[463,9]]},"367":{"position":[[470,9]]},"369":{"position":[[582,9]]},"371":{"position":[[650,9]]},"373":{"position":[[475,9]]},"387":{"position":[[51,7]]},"389":{"position":[[47,7]]},"413":{"position":[[33,4]]},"560":{"position":[[52,4]]},"580":{"position":[[358,7]]},"606":{"position":[[0,5]]},"610":{"position":[[1760,6],[1870,6]]},"612":{"position":[[293,6]]},"614":{"position":[[181,6]]},"678":{"position":[[86,5]]},"680":{"position":[[135,7]]},"694":{"position":[[238,6]]},"698":{"position":[[215,6]]},"700":{"position":[[33,7]]},"710":{"position":[[684,6]]},"722":{"position":[[35,7]]},"724":{"position":[[352,6]]},"726":{"position":[[90,4]]},"756":{"position":[[138,6]]},"862":{"position":[[86,4]]}}}],["callback",{"_index":1713,"t":{"387":{"position":[[13,8],[71,8],[177,9],[227,8]]},"389":{"position":[[13,8],[67,8],[173,9],[223,8]]},"391":{"position":[[13,8],[177,8],[283,9],[334,8],[368,8]]},"698":{"position":[[184,8]]},"744":{"position":[[88,8]]},"746":{"position":[[92,8]]},"756":{"position":[[123,8],[188,8]]},"758":{"position":[[92,9],[255,8],[413,8]]},"762":{"position":[[49,8],[95,8],[174,8]]},"766":{"position":[[148,8]]},"772":{"position":[[110,8]]}}}],["can't",{"_index":1632,"t":{"349":{"position":[[171,5]]}}}],["canari",{"_index":1990,"t":{"557":{"position":[[824,6]]}}}],["canon",{"_index":2227,"t":{"644":{"position":[[144,9]]}}}],["canonic",{"_index":486,"t":{"22":{"position":[[2930,13]]},"644":{"position":[[127,14]]}}}],["canva",{"_index":87,"t":{"4":{"position":[[1122,6]]},"439":{"position":[[14,6]]},"441":{"position":[[14,6]]},"443":{"position":[[14,6],[461,6],[478,8]]},"445":{"position":[[70,6]]},"447":{"position":[[70,6]]},"449":{"position":[[53,6]]},"451":{"position":[[18,7],[42,6]]},"453":{"position":[[25,7],[49,6]]},"455":{"position":[[10,6],[49,6]]},"457":{"position":[[10,6],[49,6],[107,6]]},"459":{"position":[[10,6],[70,6]]}}}],["canvas(5",{"_index":1790,"t":{"457":{"position":[[144,9]]}}}],["canvas.qrcode(\"hello",{"_index":1781,"t":{"443":{"position":[[497,20]]}}}],["capabl",{"_index":835,"t":{"85":{"position":[[103,10]]}}}],["capit",{"_index":2468,"t":{"790":{"position":[[73,11]]},"824":{"position":[[38,15]]}}}],["captur",{"_index":2273,"t":{"668":{"position":[[586,9],[620,7]]},"818":{"position":[[130,7]]}}}],["care",{"_index":1056,"t":{"111":{"position":[[847,4]]},"762":{"position":[[690,4]]}}}],["carri",{"_index":2149,"t":{"610":{"position":[[1339,5]]}}}],["carrier",{"_index":2337,"t":{"710":{"position":[[86,7]]}}}],["case",{"_index":182,"t":{"8":{"position":[[313,4],[451,4]]},"10":{"position":[[433,5]]},"14":{"position":[[497,5]]},"16":{"position":[[778,5]]},"22":{"position":[[100,4],[915,5],[1893,5]]},"38":{"position":[[124,5],[149,5],[189,6]]},"42":{"position":[[187,4]]},"44":{"position":[[420,5]]},"50":{"position":[[308,6]]},"56":{"position":[[173,4]]},"62":{"position":[[229,4]]},"89":{"position":[[667,5]]},"95":{"position":[[64,4],[72,4],[80,4],[88,4],[96,4]]},"99":{"position":[[618,4]]},"101":{"position":[[217,6]]},"150":{"position":[[286,5]]},"183":{"position":[[103,4],[127,4],[243,4],[271,4],[302,4],[350,4],[532,4],[572,4]]},"272":{"position":[[105,4]]},"286":{"position":[[54,4]]},"288":{"position":[[38,4],[80,4],[234,4],[242,4],[250,4],[258,4],[266,4],[388,5],[414,4],[559,4],[595,4],[718,4],[756,5],[823,4],[831,4],[910,4],[1033,6]]},"290":{"position":[[35,4],[72,4],[192,4],[225,4],[407,4],[450,5],[513,4]]},"292":{"position":[[106,4],[165,4],[181,4],[197,4],[281,4],[528,4],[550,4],[678,4]]},"300":{"position":[[144,4],[162,4],[181,4],[200,4],[219,4],[237,4],[260,4]]},"308":{"position":[[232,5]]},"668":{"position":[[561,4]]},"678":{"position":[[188,4]]},"682":{"position":[[167,4]]},"834":{"position":[[205,6]]}}}],["cat",{"_index":194,"t":{"8":{"position":[[517,3]]},"16":{"position":[[924,5]]},"461":{"position":[[4,3]]},"463":{"position":[[20,4],[67,4],[84,3]]},"465":{"position":[[33,3],[66,3],[204,3],[825,3],[1053,3]]}}}],["cat.decod",{"_index":1802,"t":{"465":{"position":[[243,10]]}}}],["cat.encod",{"_index":1796,"t":{"463":{"position":[[110,10]]}}}],["catch",{"_index":985,"t":{"103":{"position":[[105,7]]},"107":{"position":[[650,5]]},"300":{"position":[[410,5]]},"302":{"position":[[85,5]]},"473":{"position":[[230,5]]}}}],["caus",{"_index":173,"t":{"8":{"position":[[209,7]]},"14":{"position":[[670,5]]},"26":{"position":[[324,7]]},"42":{"position":[[203,7]]},"95":{"position":[[671,7]]},"173":{"position":[[82,5]]},"191":{"position":[[122,6]]},"241":{"position":[[37,7]]}}}],["caution",{"_index":1186,"t":{"152":{"position":[[338,7]]},"231":{"position":[[213,7]]},"254":{"position":[[496,7]]},"260":{"position":[[372,7]]},"284":{"position":[[122,7]]},"339":{"position":[[494,7]]},"562":{"position":[[30,7]]}}}],["cbc",{"_index":1911,"t":{"528":{"position":[[57,3],[115,4]]},"530":{"position":[[58,3],[116,4],[609,3],[692,3]]}}}],["cd",{"_index":1107,"t":{"128":{"position":[[176,2]]},"136":{"position":[[125,2]]}}}],["cert",{"_index":2349,"t":{"710":{"position":[[1144,5]]}}}],["certain",{"_index":1156,"t":{"146":{"position":[[0,7]]},"150":{"position":[[12,7],[65,7]]},"158":{"position":[[44,7]]},"189":{"position":[[85,7]]}}}],["certif",{"_index":2339,"t":{"710":{"position":[[275,11],[396,13],[415,11]]}}}],["cfb",{"_index":1913,"t":{"528":{"position":[[76,3],[128,4]]},"530":{"position":[[77,3],[129,4]]}}}],["cfg",{"_index":2222,"t":{"638":{"position":[[186,3],[232,3]]}}}],["cfg\\cfg.txt",{"_index":2232,"t":{"646":{"position":[[187,13]]}}}],["chain",{"_index":6,"t":{"4":{"position":[[6,7]]},"36":{"position":[[56,7]]},"315":{"position":[[42,7]]},"710":{"position":[[435,5],[1156,5]]}}}],["chanc",{"_index":1020,"t":{"107":{"position":[[1570,6]]}}}],["chang",{"_index":344,"t":{"16":{"position":[[2073,7]]},"20":{"position":[[613,8]]},"22":{"position":[[1622,6]]},"38":{"position":[[364,7]]},"42":{"position":[[148,6]]},"54":{"position":[[44,7]]},"62":{"position":[[587,7]]},"68":{"position":[[414,8],[634,7]]},"87":{"position":[[261,7]]},"107":{"position":[[8,6]]},"111":{"position":[[203,7]]},"163":{"position":[[626,6]]},"189":{"position":[[38,7]]},"191":{"position":[[182,6]]},"243":{"position":[[22,7]]},"467":{"position":[[24,7]]},"586":{"position":[[24,7]]},"622":{"position":[[24,7]]},"656":{"position":[[24,7]]},"684":{"position":[[24,7]]},"728":{"position":[[24,7]]},"788":{"position":[[24,7]]}}}],["changelog",{"_index":2,"t":{"2":{"position":[[23,10]]}}}],["changer",{"_index":1638,"t":{"351":{"position":[[174,8]]}}}],["char",{"_index":825,"t":{"83":{"position":[[402,5]]}}}],["charact",{"_index":792,"t":{"76":{"position":[[64,9]]},"254":{"position":[[32,10],[405,9]]},"794":{"position":[[221,9],[588,9]]},"798":{"position":[[16,10],[100,10]]},"800":{"position":[[16,10],[104,10]]},"802":{"position":[[16,10],[105,10]]},"804":{"position":[[49,11],[204,11]]},"806":{"position":[[53,11],[182,10],[211,11]]},"808":{"position":[[54,11],[183,10],[213,11]]},"810":{"position":[[53,11],[182,10],[211,11]]},"812":{"position":[[56,11],[188,10],[220,11]]},"814":{"position":[[57,11]]},"820":{"position":[[127,10],[338,9]]},"826":{"position":[[77,11],[509,9],[1200,10]]}}}],["check",{"_index":422,"t":{"22":{"position":[[774,5],[1788,5],[3586,5]]},"99":{"position":[[563,5]]},"105":{"position":[[122,5]]},"111":{"position":[[915,9]]},"130":{"position":[[46,5]]},"252":{"position":[[238,5]]},"264":{"position":[[337,6]]},"278":{"position":[[39,5]]},"588":{"position":[[27,5]]},"590":{"position":[[45,5]]},"658":{"position":[[0,6],[53,6]]},"718":{"position":[[0,5]]},"720":{"position":[[0,5]]},"726":{"position":[[0,6]]},"734":{"position":[[114,6]]},"740":{"position":[[0,6],[57,6]]},"742":{"position":[[0,6],[67,6],[89,5]]},"744":{"position":[[77,6],[122,8]]},"746":{"position":[[81,6],[126,8]]},"772":{"position":[[135,8]]},"804":{"position":[[0,6],[87,6]]},"806":{"position":[[0,6],[91,6]]},"808":{"position":[[0,6],[92,6]]},"810":{"position":[[0,6],[91,6]]},"812":{"position":[[0,6],[94,6]]},"814":{"position":[[0,6],[95,6]]},"822":{"position":[[0,6],[67,6],[91,5]]},"830":{"position":[[0,6],[65,6],[96,5]]},"832":{"position":[[0,6],[67,6],[98,5]]}}}],["checkall(|x",{"_index":2435,"t":{"772":{"position":[[180,14],[278,14]]}}}],["checksum_mismatch",{"_index":2004,"t":{"560":{"position":[[276,17]]}}}],["checksum_pres",{"_index":2003,"t":{"560":{"position":[[258,17]]}}}],["cherri",{"_index":701,"t":{"52":{"position":[[105,6]]}}}],["child",{"_index":1798,"t":{"463":{"position":[[156,5],[223,6]]},"465":{"position":[[274,6],[471,8]]},"842":{"position":[[820,5]]}}}],["children",{"_index":1806,"t":{"465":{"position":[[417,12]]},"840":{"position":[[229,8],[298,8]]},"842":{"position":[[423,12],[555,12],[620,12],[969,12],[1244,12]]}}}],["choco",{"_index":1070,"t":{"120":{"position":[[67,5]]}}}],["chocolatey",{"_index":1069,"t":{"120":{"position":[[44,10]]}}}],["chosen",{"_index":2269,"t":{"668":{"position":[[363,6],[404,9],[440,6],[801,6],[848,6],[886,9]]}}}],["chunk",{"_index":1046,"t":{"111":{"position":[[506,5]]},"365":{"position":[[495,5]]},"367":{"position":[[502,5]]},"369":{"position":[[614,5]]},"371":{"position":[[682,5]]},"373":{"position":[[507,5]]},"704":{"position":[[104,5]]},"708":{"position":[[9,5]]},"778":{"position":[[84,6],[160,6]]},"826":{"position":[[1291,5]]}}}],["ciphertext",{"_index":1920,"t":{"530":{"position":[[23,10]]},"532":{"position":[[132,10]]},"536":{"position":[[110,10]]},"540":{"position":[[339,10]]},"542":{"position":[[23,10]]},"553":{"position":[[23,10]]}}}],["circumst",{"_index":1594,"t":{"333":{"position":[[29,13]]}}}],["clang",{"_index":607,"t":{"36":{"position":[[395,5]]},"130":{"position":[[238,5],[271,5],[305,5],[406,6]]},"335":{"position":[[61,5]]},"564":{"position":[[468,5],[526,5]]}}}],["clarifi",{"_index":246,"t":{"12":{"position":[[329,10]]}}}],["class",{"_index":14,"t":{"4":{"position":[[71,7],[157,5]]},"10":{"position":[[173,5]]},"16":{"position":[[1017,5],[1041,5]]},"20":{"position":[[44,5]]},"22":{"position":[[552,5],[574,7],[1037,6],[2258,5],[2278,5]]},"32":{"position":[[395,5]]},"40":{"position":[[178,6],[596,5],[883,7],[996,7],[1015,6],[1761,8]]},"103":{"position":[[77,6],[221,5],[254,9],[417,5],[448,5],[488,5]]},"107":{"position":[[537,6],[622,6]]},"138":{"position":[[276,8],[285,5]]},"179":{"position":[[89,5],[133,7],[194,5]]},"217":{"position":[[65,7],[84,5]]},"264":{"position":[[311,8]]},"266":{"position":[[4,5],[107,5],[274,5],[321,5],[340,5]]},"268":{"position":[[16,5],[107,5]]},"270":{"position":[[4,5],[69,5],[94,5]]},"272":{"position":[[170,5],[235,5]]},"274":{"position":[[108,5],[139,5]]},"276":{"position":[[163,5]]},"278":{"position":[[61,5],[97,8],[112,5],[129,5],[407,5]]},"280":{"position":[[94,5],[168,6]]},"347":{"position":[[64,5],[222,5]]},"359":{"position":[[184,5],[214,5]]},"473":{"position":[[14,5]]},"545":{"position":[[298,5]]},"670":{"position":[[14,5]]},"856":{"position":[[81,6]]}}}],["classic",{"_index":1580,"t":{"323":{"position":[[843,11]]}}}],["claus",{"_index":1323,"t":{"250":{"position":[[128,7]]}}}],["clean",{"_index":1627,"t":{"345":{"position":[[129,5]]}}}],["cleaner",{"_index":1356,"t":{"254":{"position":[[57,7]]},"317":{"position":[[382,7]]}}}],["clear",{"_index":2382,"t":{"736":{"position":[[61,6]]}}}],["cli",{"_index":354,"t":{"16":{"position":[[2248,4]]},"130":{"position":[[134,3]]}}}],["click",{"_index":959,"t":{"99":{"position":[[298,5]]},"132":{"position":[[153,5]]}}}],["client",{"_index":2308,"t":{"698":{"position":[[77,7],[250,6]]},"700":{"position":[[56,9]]},"710":{"position":[[122,9],[758,6]]},"716":{"position":[[95,8],[202,6]]},"724":{"position":[[20,6],[237,6]]},"726":{"position":[[31,6]]}}}],["clone",{"_index":966,"t":{"99":{"position":[[429,5]]},"128":{"position":[[109,5],[135,5]]},"132":{"position":[[27,7]]}}}],["close",{"_index":262,"t":{"14":{"position":[[390,7]]},"22":{"position":[[876,6]]},"52":{"position":[[203,5]]},"333":{"position":[[100,6]]},"610":{"position":[[1362,5]]},"614":{"position":[[0,6],[44,7]]},"704":{"position":[[222,7]]},"710":{"position":[[610,7]]},"712":{"position":[[0,6]]}}}],["close\\r\\n\\r\\n",{"_index":2346,"t":{"710":{"position":[[1006,15]]}}}],["close\\r\\ncont",{"_index":2314,"t":{"698":{"position":[[447,16]]},"710":{"position":[[1462,16]]}}}],["club",{"_index":1657,"t":{"359":{"position":[[413,6]]}}}],["coalesc",{"_index":209,"t":{"10":{"position":[[262,10],[316,10]]},"68":{"position":[[183,10]]},"250":{"position":[[736,10]]},"313":{"position":[[503,11]]},"317":{"position":[[8,10]]}}}],["code",{"_index":52,"t":{"4":{"position":[[606,4]]},"6":{"position":[[406,4]]},"14":{"position":[[245,4],[750,4]]},"18":{"position":[[66,4]]},"20":{"position":[[120,4]]},"22":{"position":[[1837,4],[1941,5]]},"24":{"position":[[246,4]]},"28":{"position":[[69,5]]},"32":{"position":[[1043,4]]},"38":{"position":[[97,4]]},"44":{"position":[[233,4]]},"56":{"position":[[63,4]]},"62":{"position":[[173,5]]},"83":{"position":[[341,5]]},"87":{"position":[[198,4]]},"95":{"position":[[20,5],[653,4]]},"97":{"position":[[129,6],[517,4]]},"99":{"position":[[52,5]]},"101":{"position":[[67,4]]},"115":{"position":[[92,4]]},"138":{"position":[[130,4]]},"144":{"position":[[74,4]]},"146":{"position":[[395,4]]},"150":{"position":[[20,4]]},"152":{"position":[[204,4],[371,5],[384,4]]},"169":{"position":[[31,4],[167,4],[185,5],[242,4]]},"173":{"position":[[24,4]]},"175":{"position":[[24,4]]},"177":{"position":[[24,4],[218,5]]},"181":{"position":[[24,4]]},"189":{"position":[[93,4]]},"193":{"position":[[42,5]]},"195":{"position":[[91,4],[234,4]]},"207":{"position":[[221,5]]},"211":{"position":[[102,4],[222,4]]},"225":{"position":[[97,4],[231,4],[262,4]]},"245":{"position":[[85,4]]},"247":{"position":[[71,4],[182,4]]},"254":{"position":[[293,4]]},"260":{"position":[[74,4],[235,4]]},"304":{"position":[[100,4],[169,4]]},"315":{"position":[[134,4]]},"317":{"position":[[406,5]]},"339":{"position":[[115,4],[308,4],[339,4]]},"351":{"position":[[80,4]]},"353":{"position":[[12,4]]},"355":{"position":[[12,4]]},"443":{"position":[[46,5],[290,5]]},"538":{"position":[[135,4]]},"564":{"position":[[238,5]]},"566":{"position":[[59,5]]},"570":{"position":[[98,5]]},"584":{"position":[[110,5]]},"600":{"position":[[48,5]]},"610":{"position":[[1526,4]]}}}],["codebas",{"_index":978,"t":{"101":{"position":[[182,10]]}}}],["codifi",{"_index":1054,"t":{"111":{"position":[[780,6]]}}}],["collect",{"_index":2442,"t":{"778":{"position":[[28,8]]}}}],["colon",{"_index":1389,"t":{"260":{"position":[[448,5]]},"292":{"position":[[360,5]]},"461":{"position":[[95,6]]}}}],["color",{"_index":771,"t":{"74":{"position":[[81,5]]},"250":{"position":[[551,6],[591,6]]},"357":{"position":[[21,9],[147,7],[214,8]]},"443":{"position":[[341,6],[410,6]]},"445":{"position":[[9,5],[136,5]]},"447":{"position":[[9,5],[127,5]]},"449":{"position":[[30,6],[74,5]]},"459":{"position":[[91,5],[122,5]]},"465":{"position":[[1115,6],[1139,6],[1231,7],[1271,7],[1300,7],[1346,7]]},"566":{"position":[[156,5],[184,5],[245,7]]},"570":{"position":[[169,5]]}}}],["combat",{"_index":816,"t":{"83":{"position":[[153,6]]}}}],["combin",{"_index":335,"t":{"16":{"position":[[1842,8]]},"111":{"position":[[100,11]]},"241":{"position":[[333,8]]},"620":{"position":[[294,8]]}}}],["come",{"_index":1205,"t":{"169":{"position":[[247,5]]},"258":{"position":[[47,5]]}}}],["comma",{"_index":1403,"t":{"266":{"position":[[79,6]]}}}],["command",{"_index":953,"t":{"99":{"position":[[171,7]]},"130":{"position":[[204,9],[372,8]]},"134":{"position":[[28,8]]},"357":{"position":[[250,8]]}}}],["comment",{"_index":291,"t":{"16":{"position":[[441,8]]},"62":{"position":[[326,9]]},"97":{"position":[[244,7],[302,9],[326,8]]},"107":{"position":[[106,7]]},"191":{"position":[[237,7]]},"193":{"position":[[61,7]]}}}],["commit",{"_index":402,"t":{"20":{"position":[[641,6]]},"52":{"position":[[128,8]]}}}],["common",{"_index":740,"t":{"62":{"position":[[365,6]]},"276":{"position":[[10,6]]},"545":{"position":[[142,6]]}}}],["commonli",{"_index":1974,"t":{"551":{"position":[[164,9]]}}}],["compar",{"_index":1544,"t":{"321":{"position":[[95,7],[405,7]]},"341":{"position":[[264,8]]},"375":{"position":[[58,7],[279,7]]},"377":{"position":[[62,7],[283,7]]},"824":{"position":[[0,8],[86,8],[116,8]]},"860":{"position":[[38,8]]}}}],["comparevers",{"_index":480,"t":{"22":{"position":[[2789,15]]}}}],["comparison",{"_index":7,"t":{"4":{"position":[[14,11]]},"6":{"position":[[432,11]]},"321":{"position":[[52,10]]},"604":{"position":[[21,10]]}}}],["compat",{"_index":30,"t":{"4":{"position":[[313,10],[465,13],[611,14]]},"8":{"position":[[419,13]]},"10":{"position":[[352,10]]},"16":{"position":[[2297,13]]},"22":{"position":[[3438,14]]},"32":{"position":[[200,10],[1170,14]]},"34":{"position":[[35,10]]},"74":{"position":[[308,13]]},"101":{"position":[[38,10]]},"103":{"position":[[187,13]]},"105":{"position":[[186,15]]},"107":{"position":[[170,10],[1307,13],[1434,14],[1516,13]]},"109":{"position":[[52,13],[160,13],[220,13]]},"138":{"position":[[99,10]]},"177":{"position":[[90,13]]},"179":{"position":[[57,13]]},"225":{"position":[[408,10]]},"231":{"position":[[267,10]]},"254":{"position":[[550,10]]},"264":{"position":[[278,13]]},"278":{"position":[[566,10]]},"313":{"position":[[420,13]]},"323":{"position":[[324,12]]},"335":{"position":[[45,10]]},"339":{"position":[[454,10],[548,10]]},"560":{"position":[[86,10]]}}}],["compatibl",{"_index":1432,"t":{"280":{"position":[[58,12]]}}}],["compil",{"_index":158,"t":{"6":{"position":[[375,8]]},"8":{"position":[[179,7]]},"12":{"position":[[71,7]]},"16":{"position":[[732,7]]},"18":{"position":[[187,7]]},"22":{"position":[[1171,7]]},"32":{"position":[[360,7]]},"40":{"position":[[50,7],[96,7]]},"44":{"position":[[30,7]]},"46":{"position":[[29,7]]},"48":{"position":[[139,7]]},"74":{"position":[[6,7]]},"81":{"position":[[29,8]]},"85":{"position":[[490,7]]},"107":{"position":[[1335,8]]},"122":{"position":[[580,8]]},"128":{"position":[[10,7],[73,8]]},"130":{"position":[[386,8]]},"146":{"position":[[52,7],[109,7],[242,7],[301,8],[341,7],[481,7],[556,8]]},"148":{"position":[[0,7],[267,7],[370,7]]},"150":{"position":[[47,8],[115,7],[326,8]]},"158":{"position":[[22,8]]},"163":{"position":[[388,7]]},"177":{"position":[[488,7]]},"179":{"position":[[438,7]]},"181":{"position":[[68,9],[435,7]]},"189":{"position":[[53,7]]},"191":{"position":[[129,11]]},"245":{"position":[[181,9]]},"296":{"position":[[356,11]]},"298":{"position":[[482,9]]},"335":{"position":[[136,10],[215,7]]},"337":{"position":[[60,7]]},"349":{"position":[[52,7]]},"564":{"position":[[439,8]]},"666":{"position":[[77,9]]}}}],["complex",{"_index":420,"t":{"22":{"position":[[666,7]]},"620":{"position":[[136,7],[799,7]]}}}],["compon",{"_index":2171,"t":{"612":{"position":[[239,10]]}}}],["compos",{"_index":2446,"t":{"782":{"position":[[20,8]]},"804":{"position":[[31,8]]},"806":{"position":[[31,8]]},"808":{"position":[[31,8]]},"810":{"position":[[31,8]]},"812":{"position":[[31,8]]},"814":{"position":[[34,8]]}}}],["compound",{"_index":278,"t":{"16":{"position":[[55,8]]},"68":{"position":[[207,8]]},"74":{"position":[[420,8]]},"76":{"position":[[109,8]]},"138":{"position":[[256,8]]},"313":{"position":[[14,8],[319,8],[564,8],[651,8]]},"317":{"position":[[651,8]]}}}],["comprehens",{"_index":398,"t":{"20":{"position":[[583,13]]}}}],["compress",{"_index":1998,"t":{"560":{"position":[[23,10]]}}}],["compressed_s",{"_index":2002,"t":{"560":{"position":[[241,16]]}}}],["compromis",{"_index":881,"t":{"89":{"position":[[880,10]]}}}],["comput",{"_index":2425,"t":{"766":{"position":[[37,8]]},"864":{"position":[[0,8]]},"870":{"position":[[0,8]]}}}],["concat",{"_index":171,"t":{"8":{"position":[[192,6]]},"16":{"position":[[745,6]]},"18":{"position":[[200,6]]},"22":{"position":[[1184,6]]},"598":{"position":[[804,10]]}}}],["concaten",{"_index":147,"t":{"6":{"position":[[226,13]]},"74":{"position":[[429,13]]},"256":{"position":[[55,14],[70,13],[587,14],[644,13]]},"313":{"position":[[480,14]]},"343":{"position":[[20,11]]}}}],["concern",{"_index":476,"t":{"22":{"position":[[2619,10]]}}}],["condit",{"_index":569,"t":{"32":{"position":[[373,12]]},"93":{"position":[[149,9],[203,9]]},"150":{"position":[[128,13]]},"252":{"position":[[105,13]]},"290":{"position":[[40,10]]},"292":{"position":[[309,10]]},"319":{"position":[[64,11],[472,10]]},"353":{"position":[[144,10]]},"758":{"position":[[67,9]]},"818":{"position":[[479,11]]}}}],["condition",{"_index":1470,"t":{"292":{"position":[[50,13]]}}}],["config",{"_index":810,"t":{"81":{"position":[[109,7]]},"83":{"position":[[277,7]]},"87":{"position":[[167,7]]},"93":{"position":[[75,7]]},"111":{"position":[[637,7]]},"335":{"position":[[457,7]]},"357":{"position":[[130,6]]},"628":{"position":[[313,9],[361,9]]}}}],["configur",{"_index":47,"t":{"4":{"position":[[525,13]]},"62":{"position":[[310,10]]},"78":{"position":[[196,11]]},"85":{"position":[[470,10]]},"89":{"position":[[459,14],[583,11],[681,13],[755,9]]},"91":{"position":[[26,12]]},"93":{"position":[[237,13]]},"163":{"position":[[401,13]]},"177":{"position":[[501,13]]},"179":{"position":[[451,13]]},"181":{"position":[[448,13]]}}}],["confus",{"_index":615,"t":{"38":{"position":[[314,9]]}}}],["conjunct",{"_index":574,"t":{"32":{"position":[[814,11]]}}}],["connect",{"_index":2133,"t":{"610":{"position":[[665,11],[702,7],[1039,10],[1300,10],[2120,10]]},"612":{"position":[[24,10]]},"614":{"position":[[22,11]]},"694":{"position":[[18,11],[54,7]]},"710":{"position":[[930,13]]},"714":{"position":[[41,11]]},"716":{"position":[[22,10]]},"718":{"position":[[11,10]]},"720":{"position":[[11,10]]},"724":{"position":[[27,11],[244,11]]},"726":{"position":[[38,11]]}}}],["consid",{"_index":656,"t":{"40":{"position":[[1637,8]]},"173":{"position":[[298,8]]},"177":{"position":[[40,10]]},"532":{"position":[[55,10]]},"604":{"position":[[257,10]]},"610":{"position":[[1137,8]]},"758":{"position":[[151,8]]}}}],["consist",{"_index":1390,"t":{"262":{"position":[[4,11]]},"286":{"position":[[14,8]]},"311":{"position":[[52,10]]},"331":{"position":[[60,10]]},"545":{"position":[[217,11],[262,11]]},"826":{"position":[[258,7]]}}}],["const",{"_index":295,"t":{"16":{"position":[[598,5],[630,7]]},"22":{"position":[[309,7],[352,7],[392,6]]},"148":{"position":[[154,5],[185,7],[304,7]]},"175":{"position":[[78,5],[177,5],[232,10]]},"282":{"position":[[393,7]]},"530":{"position":[[422,7]]},"536":{"position":[[359,7]]},"542":{"position":[[433,7]]}}}],["constant",{"_index":254,"t":{"14":{"position":[[269,8]]},"16":{"position":[[1065,8]]},"40":{"position":[[63,9]]},"44":{"position":[[43,8]]},"46":{"position":[[42,8]]},"48":{"position":[[152,9]]},"52":{"position":[[327,8]]},"148":{"position":[[13,8],[280,9],[383,8]]},"282":{"position":[[326,8],[478,9]]},"349":{"position":[[65,10]]},"576":{"position":[[5,8]]}}}],["constexpr",{"_index":296,"t":{"16":{"position":[[669,11]]},"40":{"position":[[6,11]]}}}],["constitu",{"_index":2565,"t":{"850":{"position":[[22,11]]}}}],["constraint",{"_index":1728,"t":{"393":{"position":[[131,11],[172,11]]}}}],["construct",{"_index":637,"t":{"40":{"position":[[848,17]]},"144":{"position":[[38,10]]},"473":{"position":[[136,12]]}}}],["constructor",{"_index":568,"t":{"32":{"position":[[332,11]]},"165":{"position":[[73,12]]},"266":{"position":[[42,12]]},"272":{"position":[[308,11]]},"672":{"position":[[4,11]]},"854":{"position":[[4,11]]}}}],["constructor/class",{"_index":639,"t":{"40":{"position":[[1159,17]]}}}],["consum",{"_index":593,"t":{"34":{"position":[[273,9]]},"706":{"position":[[30,9]]}}}],["contact",{"_index":807,"t":{"78":{"position":[[282,7]]},"694":{"position":[[145,7]]}}}],["contain",{"_index":1,"t":{"2":{"position":[[10,8]]},"6":{"position":[[166,7]]},"256":{"position":[[492,7]]},"391":{"position":[[429,7]]},"393":{"position":[[24,9],[44,9],[242,9],[294,9],[341,9],[357,9],[405,9],[500,9],[520,10],[542,9]]},"443":{"position":[[30,10]]},"592":{"position":[[31,10]]},"598":{"position":[[722,12]]},"640":{"position":[[177,10]]},"710":{"position":[[489,10]]},"742":{"position":[[21,8]]},"774":{"position":[[31,10]]},"822":{"position":[[19,8]]},"876":{"position":[[233,8]]}}}],["content",{"_index":696,"t":{"50":{"position":[[523,7]]},"375":{"position":[[252,8]]},"377":{"position":[[256,8]]},"610":{"position":[[393,9],[486,7]]},"648":{"position":[[20,9],[84,8],[230,8]]},"698":{"position":[[382,7]]},"710":{"position":[[1397,7]]},"828":{"position":[[294,7],[371,7]]}}}],["content..\"\\r\\n\\r\\n\"..cont",{"_index":2315,"t":{"698":{"position":[[472,33]]},"710":{"position":[[1487,33]]}}}],["context",{"_index":722,"t":{"56":{"position":[[155,8]]},"103":{"position":[[644,9]]}}}],["continu",{"_index":256,"t":{"14":{"position":[[300,8],[368,8],[413,8]]},"20":{"position":[[399,10]]},"52":{"position":[[296,12]]},"68":{"position":[[227,8]]},"70":{"position":[[21,8]]},"74":{"position":[[177,8]]},"103":{"position":[[56,9]]},"107":{"position":[[408,8],[459,9],[516,9],[601,9]]},"152":{"position":[[0,8],[139,9],[283,8],[308,8],[352,8],[433,10],[454,8]]},"154":{"position":[[245,8],[280,10],[395,8],[419,8],[441,8],[465,8]]},"156":{"position":[[46,9],[81,8]]},"169":{"position":[[93,8],[271,10]]},"347":{"position":[[384,8],[406,12]]},"752":{"position":[[54,10]]},"758":{"position":[[194,10]]}}}],["contmodonloadfil",{"_index":819,"t":{"83":{"position":[[232,17]]}}}],["contmodonloadfile(const",{"_index":824,"t":{"83":{"position":[[378,23]]}}}],["control",{"_index":862,"t":{"89":{"position":[[187,7]]},"99":{"position":[[219,8]]}}}],["conveni",{"_index":2306,"t":{"698":{"position":[[2,11]]}}}],["convert",{"_index":1373,"t":{"256":{"position":[[550,9]]},"455":{"position":[[0,7]]},"457":{"position":[[0,7]]},"459":{"position":[[0,7]]},"644":{"position":[[0,7]]},"646":{"position":[[0,7]]},"834":{"position":[[0,8],[78,8]]},"836":{"position":[[0,8],[59,8]]}}}],["cooper",{"_index":2274,"t":{"670":{"position":[[91,11]]}}}],["coordin",{"_index":1784,"t":{"445":{"position":[[41,12],[93,11],[111,11]]},"447":{"position":[[41,12],[93,11],[111,11]]},"876":{"position":[[128,10]]}}}],["copi",{"_index":309,"t":{"16":{"position":[[1155,7]]},"26":{"position":[[187,7]]},"83":{"position":[[482,4]]},"89":{"position":[[426,4],[506,4]]},"95":{"position":[[196,4],[608,4]]},"103":{"position":[[284,4],[510,4]]},"107":{"position":[[247,4],[788,4],[909,4],[1137,4]]},"111":{"position":[[322,4],[512,4],[1102,4]]},"120":{"position":[[91,4]]},"122":{"position":[[395,4]]},"128":{"position":[[185,4]]},"130":{"position":[[339,4]]},"134":{"position":[[65,4]]},"136":{"position":[[153,4],[351,4]]},"142":{"position":[[292,4],[457,4]]},"146":{"position":[[310,4],[565,4]]},"148":{"position":[[96,4],[199,4],[398,4]]},"150":{"position":[[273,4]]},"152":{"position":[[333,4]]},"154":{"position":[[318,4],[495,4]]},"161":{"position":[[129,4],[307,4]]},"163":{"position":[[107,4],[280,4]]},"165":{"position":[[155,4],[323,4]]},"167":{"position":[[137,4],[304,4]]},"169":{"position":[[127,4],[293,4]]},"171":{"position":[[131,4],[275,4]]},"173":{"position":[[116,4],[341,4]]},"175":{"position":[[89,4],[243,4]]},"177":{"position":[[149,4],[380,4]]},"179":{"position":[[105,4],[330,4]]},"181":{"position":[[126,4],[327,4]]},"183":{"position":[[155,4],[375,4],[600,4]]},"185":{"position":[[139,4],[294,4]]},"187":{"position":[[182,4],[319,4]]},"191":{"position":[[425,4],[627,4]]},"193":{"position":[[207,4]]},"195":{"position":[[224,4],[417,4]]},"199":{"position":[[57,4],[209,4],[250,4]]},"201":{"position":[[73,4],[230,4],[275,4]]},"203":{"position":[[203,4],[256,4]]},"205":{"position":[[150,4]]},"207":{"position":[[128,4],[183,4],[239,4]]},"209":{"position":[[141,4],[296,4]]},"211":{"position":[[213,4],[295,4],[612,4]]},"215":{"position":[[156,4],[384,4],[498,4]]},"217":{"position":[[189,4]]},"219":{"position":[[233,4]]},"221":{"position":[[145,4]]},"225":{"position":[[221,4],[351,4]]},"227":{"position":[[187,4],[291,4],[553,4]]},"229":{"position":[[203,4],[673,4]]},"233":{"position":[[220,4],[372,4]]},"235":{"position":[[323,4]]},"237":{"position":[[355,4]]},"241":{"position":[[174,4],[311,4],[443,4]]},"245":{"position":[[139,4]]},"247":{"position":[[116,4],[229,4]]},"250":{"position":[[296,4],[693,4]]},"252":{"position":[[178,4],[220,4],[403,4],[641,4]]},"254":{"position":[[396,4]]},"256":{"position":[[227,4],[387,4]]},"260":{"position":[[167,4],[316,4]]},"262":{"position":[[202,4]]},"264":{"position":[[259,4]]},"266":{"position":[[265,4]]},"268":{"position":[[165,4]]},"270":{"position":[[174,4]]},"272":{"position":[[553,4]]},"274":{"position":[[401,4]]},"276":{"position":[[384,4]]},"278":{"position":[[361,4],[484,4]]},"282":{"position":[[301,4],[642,4],[919,4]]},"288":{"position":[[147,4],[366,4],[701,4],[893,4]]},"290":{"position":[[123,4],[262,4],[587,4]]},"292":{"position":[[262,4],[650,4]]},"296":{"position":[[70,4],[277,4]]},"300":{"position":[[624,4]]},"304":{"position":[[160,4],[206,4]]},"306":{"position":[[152,4]]},"308":{"position":[[89,4],[219,4]]},"313":{"position":[[554,4]]},"315":{"position":[[227,4]]},"317":{"position":[[370,4],[629,4],[864,4]]},"319":{"position":[[201,4],[399,4],[537,4],[628,4]]},"321":{"position":[[231,4],[536,4]]},"323":{"position":[[610,4],[762,4]]},"325":{"position":[[174,4]]},"327":{"position":[[236,4]]},"329":{"position":[[227,4]]},"333":{"position":[[327,4]]},"339":{"position":[[211,4],[441,4]]},"343":{"position":[[231,4]]},"345":{"position":[[124,4],[184,4]]},"347":{"position":[[253,4],[423,4]]},"353":{"position":[[63,4],[271,4]]},"355":{"position":[[66,4],[296,4]]},"359":{"position":[[179,4],[348,4],[451,4]]},"363":{"position":[[469,4]]},"365":{"position":[[516,4]]},"367":{"position":[[523,4]]},"369":{"position":[[635,4]]},"371":{"position":[[703,4]]},"373":{"position":[[528,4]]},"375":{"position":[[970,4]]},"377":{"position":[[612,4]]},"379":{"position":[[369,4]]},"381":{"position":[[400,4]]},"383":{"position":[[385,4]]},"385":{"position":[[318,4]]},"387":{"position":[[492,4]]},"389":{"position":[[499,4]]},"391":{"position":[[987,4]]},"393":{"position":[[749,4]]},"403":{"position":[[239,4]]},"405":{"position":[[179,4]]},"407":{"position":[[306,4]]},"409":{"position":[[194,4]]},"413":{"position":[[210,4]]},"417":{"position":[[136,4]]},"419":{"position":[[140,4]]},"427":{"position":[[176,4]]},"429":{"position":[[162,4]]},"431":{"position":[[162,4]]},"433":{"position":[[154,4]]},"435":{"position":[[158,4]]},"443":{"position":[[871,4]]},"457":{"position":[[459,4]]},"463":{"position":[[246,4]]},"465":{"position":[[553,4],[752,4],[1036,4],[1381,4]]},"473":{"position":[[321,4],[397,4]]},"478":{"position":[[218,4]]},"480":{"position":[[225,4]]},"482":{"position":[[258,4]]},"484":{"position":[[211,4]]},"486":{"position":[[213,4]]},"488":{"position":[[261,4]]},"490":{"position":[[258,4]]},"492":{"position":[[318,4]]},"494":{"position":[[260,4]]},"496":{"position":[[208,4]]},"498":{"position":[[265,4]]},"500":{"position":[[265,4]]},"502":{"position":[[265,4]]},"504":{"position":[[267,4]]},"506":{"position":[[222,4]]},"508":{"position":[[221,4]]},"510":{"position":[[222,4]]},"513":{"position":[[436,4]]},"515":{"position":[[514,4]]},"517":{"position":[[382,4]]},"519":{"position":[[414,4]]},"521":{"position":[[301,4]]},"524":{"position":[[266,4]]},"530":{"position":[[732,4]]},"536":{"position":[[619,4]]},"542":{"position":[[809,4]]},"545":{"position":[[823,4]]},"547":{"position":[[417,4],[919,4]]},"549":{"position":[[708,4],[892,4]]},"553":{"position":[[1022,4]]},"557":{"position":[[1090,4]]},"560":{"position":[[566,4]]},"564":{"position":[[434,4],[810,4]]},"566":{"position":[[282,4]]},"570":{"position":[[272,4]]},"584":{"position":[[349,4],[659,4]]},"592":{"position":[[359,4]]},"596":{"position":[[312,4]]},"598":{"position":[[311,4],[1047,4]]},"600":{"position":[[364,4],[482,4]]},"602":{"position":[[146,4]]},"604":{"position":[[193,4]]},"606":{"position":[[177,4]]},"610":{"position":[[2449,4]]},"612":{"position":[[620,4]]},"618":{"position":[[480,4],[704,4],[893,4]]},"620":{"position":[[1279,4]]},"628":{"position":[[0,4],[129,4],[199,7],[375,4]]},"630":{"position":[[269,4]]},"632":{"position":[[237,4]]},"634":{"position":[[226,4]]},"636":{"position":[[234,4]]},"638":{"position":[[253,4]]},"640":{"position":[[264,4]]},"642":{"position":[[215,4]]},"644":{"position":[[323,4]]},"646":{"position":[[201,4]]},"648":{"position":[[361,4]]},"650":{"position":[[169,4]]},"652":{"position":[[376,4]]},"654":{"position":[[347,4]]},"658":{"position":[[214,4]]},"660":{"position":[[137,4]]},"668":{"position":[[503,4],[902,4]]},"678":{"position":[[608,4]]},"680":{"position":[[450,4]]},"682":{"position":[[426,4]]},"686":{"position":[[116,4]]},"698":{"position":[[523,4]]},"704":{"position":[[534,4]]},"708":{"position":[[350,4]]},"710":{"position":[[1064,4],[1581,4]]},"714":{"position":[[266,4]]},"716":{"position":[[209,4]]},"718":{"position":[[220,4]]},"720":{"position":[[203,4]]},"726":{"position":[[365,4]]},"730":{"position":[[124,4]]},"732":{"position":[[0,7],[125,7]]},"734":{"position":[[188,4]]},"736":{"position":[[167,4]]},"738":{"position":[[218,4]]},"740":{"position":[[133,4]]},"742":{"position":[[325,4]]},"744":{"position":[[329,4]]},"746":{"position":[[325,4]]},"748":{"position":[[488,4]]},"750":{"position":[[0,7],[128,7]]},"752":{"position":[[263,4]]},"754":{"position":[[0,7],[128,7]]},"756":{"position":[[329,4]]},"758":{"position":[[724,4]]},"760":{"position":[[0,7],[127,7]]},"762":{"position":[[495,4]]},"764":{"position":[[0,7],[124,7]]},"766":{"position":[[415,4]]},"768":{"position":[[120,4]]},"770":{"position":[[119,4]]},"772":{"position":[[360,4]]},"774":{"position":[[221,4]]},"776":{"position":[[279,4]]},"778":{"position":[[352,4]]},"780":{"position":[[227,4]]},"782":{"position":[[329,4]]},"784":{"position":[[404,4]]},"786":{"position":[[235,4]]},"790":{"position":[[139,4]]},"792":{"position":[[143,4]]},"794":{"position":[[366,4],[552,4],[740,4]]},"798":{"position":[[252,4]]},"800":{"position":[[260,4]]},"802":{"position":[[261,4]]},"804":{"position":[[160,4]]},"806":{"position":[[161,4]]},"808":{"position":[[162,4]]},"810":{"position":[[161,4]]},"812":{"position":[[167,4]]},"814":{"position":[[178,4]]},"818":{"position":[[839,4]]},"820":{"position":[[628,4]]},"822":{"position":[[175,4]]},"824":{"position":[[221,4]]},"826":{"position":[[1021,4],[1076,4],[1307,4]]},"828":{"position":[[561,4],[750,4]]},"830":{"position":[[181,4]]},"832":{"position":[[185,4]]},"834":{"position":[[398,4]]},"836":{"position":[[167,4]]},"840":{"position":[[455,4]]},"842":{"position":[[709,4],[1030,4],[1378,4]]},"846":{"position":[[250,4]]},"848":{"position":[[220,4]]},"850":{"position":[[496,4]]},"854":{"position":[[267,4],[399,4]]},"858":{"position":[[325,4]]},"860":{"position":[[219,4]]},"862":{"position":[[245,4]]},"864":{"position":[[123,4]]},"866":{"position":[[129,4]]},"868":{"position":[[130,4]]},"870":{"position":[[158,4]]},"872":{"position":[[174,4]]},"874":{"position":[[179,4]]},"876":{"position":[[1013,4]]},"878":{"position":[[240,4]]},"880":{"position":[[469,4]]}}}],["coroutin",{"_index":562,"t":{"30":{"position":[[189,10]]},"467":{"position":[[51,9]]},"469":{"position":[[74,10]]},"471":{"position":[[19,9]]},"610":{"position":[[1779,10],[1889,9]]},"612":{"position":[[312,10]]},"614":{"position":[[200,10]]},"670":{"position":[[75,9]]},"674":{"position":[[53,10],[68,9]]},"678":{"position":[[66,10],[123,10],[151,9]]},"682":{"position":[[121,11],[176,9]]},"694":{"position":[[257,10]]},"698":{"position":[[103,9],[231,9]]},"704":{"position":[[346,10]]},"710":{"position":[[703,10]]},"724":{"position":[[368,10]]}}}],["coroutine.clos",{"_index":712,"t":{"52":{"position":[[396,15]]}}}],["coroutine.cr",{"_index":2073,"t":{"596":{"position":[[139,19]]}}}],["coroutine.resum",{"_index":1817,"t":{"469":{"position":[[18,16]]}}}],["coroutine.resume(c",{"_index":2079,"t":{"596":{"position":[[292,19]]}}}],["coroutine.sleep",{"_index":323,"t":{"16":{"position":[[1440,15]]}}}],["coroutine.sleep(1000",{"_index":2286,"t":{"678":{"position":[[441,21],[477,21],[513,21]]}}}],["coroutine.xresum",{"_index":588,"t":{"32":{"position":[[1347,17]]},"682":{"position":[[211,19]]}}}],["coroutine.yield",{"_index":870,"t":{"89":{"position":[[543,15]]}}}],["coroutines/thread",{"_index":340,"t":{"16":{"position":[[1992,18]]},"596":{"position":[[11,18]]}}}],["correct",{"_index":868,"t":{"89":{"position":[[451,7]]},"443":{"position":[[155,10]]}}}],["correspond",{"_index":1004,"t":{"107":{"position":[[374,11],[425,11],[482,11],[567,11]]},"557":{"position":[[101,13]]}}}],["corrupt",{"_index":220,"t":{"10":{"position":[[567,10]]},"14":{"position":[[682,7]]},"24":{"position":[[251,10]]}}}],["cosmet",{"_index":1311,"t":{"245":{"position":[[210,9]]}}}],["count",{"_index":2379,"t":{"734":{"position":[[45,8]]}}}],["counterpart",{"_index":1530,"t":{"313":{"position":[[660,13]]},"331":{"position":[[130,13]]},"604":{"position":[[296,13]]}}}],["cover",{"_index":1195,"t":{"163":{"position":[[501,6]]}}}],["coverag",{"_index":882,"t":{"89":{"position":[[904,9]]},"241":{"position":[[465,8]]},"298":{"position":[[520,9]]}}}],["cpp",{"_index":821,"t":{"83":{"position":[[358,3]]},"564":{"position":[[252,3]]}}}],["cr",{"_index":141,"t":{"6":{"position":[[174,2]]}}}],["crc32",{"_index":1849,"t":{"492":{"position":[[24,5]]}}}],["creat",{"_index":577,"t":{"32":{"position":[[928,8]]},"40":{"position":[[785,8]]},"161":{"position":[[35,7]]},"163":{"position":[[35,7]]},"185":{"position":[[263,8]]},"209":{"position":[[265,8]]},"282":{"position":[[315,8]]},"439":{"position":[[0,7]]},"441":{"position":[[0,7]]},"443":{"position":[[0,7]]},"580":{"position":[[0,7]]},"628":{"position":[[29,8],[296,7],[345,6]]},"638":{"position":[[0,6],[128,8],[225,6]]},"642":{"position":[[0,7],[165,7]]},"666":{"position":[[21,7]]},"696":{"position":[[0,7]]},"858":{"position":[[120,6]]}}}],["creation",{"_index":754,"t":{"68":{"position":[[26,9]]},"185":{"position":[[183,8]]},"209":{"position":[[185,8]]}}}],["criteria",{"_index":2514,"t":{"826":{"position":[[649,9]]}}}],["crypto",{"_index":1170,"t":{"146":{"position":[[653,6]]},"478":{"position":[[127,6]]},"480":{"position":[[110,6]]},"482":{"position":[[167,6]]},"484":{"position":[[110,6]]},"486":{"position":[[111,6]]},"488":{"position":[[168,6]]},"490":{"position":[[167,6]]},"492":{"position":[[226,6]]},"494":{"position":[[172,6]]},"496":{"position":[[113,6]]},"498":{"position":[[170,6]]},"500":{"position":[[170,6]]},"502":{"position":[[170,6]]},"504":{"position":[[171,6]]},"506":{"position":[[115,6]]},"508":{"position":[[115,6]]},"510":{"position":[[120,6]]},"513":{"position":[[213,6]]},"515":{"position":[[215,6]]},"517":{"position":[[215,6]]},"519":{"position":[[215,6]]},"524":{"position":[[216,6]]},"530":{"position":[[380,6]]},"536":{"position":[[317,6]]},"542":{"position":[[391,6]]},"547":{"position":[[139,6]]},"549":{"position":[[137,6]]},"553":{"position":[[283,6]]},"557":{"position":[[308,6]]},"704":{"position":[[166,6]]},"710":{"position":[[24,6]]}}}],["crypto.adler32",{"_index":329,"t":{"16":{"position":[[1661,14]]}}}],["crypto.decompress",{"_index":97,"t":{"4":{"position":[[1308,17]]}}}],["crypto.decrypt",{"_index":71,"t":{"4":{"position":[[892,15]]},"16":{"position":[[1526,14]]}}}],["crypto.decrypt|\"rsa",{"_index":1983,"t":{"553":{"position":[[933,19]]}}}],["crypto.encrypt",{"_index":70,"t":{"4":{"position":[[876,15]]},"16":{"position":[[1509,14]]}}}],["crypto.encrypt(\"a",{"_index":1979,"t":{"553":{"position":[[797,17]]}}}],["crypto.encrypt|\"a",{"_index":1928,"t":{"530":{"position":[[589,19]]},"536":{"position":[[450,19]]},"542":{"position":[[637,19]]}}}],["crypto.exportkey",{"_index":95,"t":{"4":{"position":[[1266,16]]}}}],["crypto.fnv1",{"_index":350,"t":{"16":{"position":[[2172,11]]}}}],["crypto.fnv1a",{"_index":351,"t":{"16":{"position":[[2186,12]]}}}],["crypto.generatekeypair",{"_index":324,"t":{"16":{"position":[[1471,22]]}}}],["crypto.generatekeypair(\"rsa",{"_index":1952,"t":{"545":{"position":[[352,29]]}}}],["crypto.hexdigest",{"_index":503,"t":{"22":{"position":[[3340,16]]}}}],["crypto.importkey",{"_index":96,"t":{"4":{"position":[[1285,16]]}}}],["crypto.joaat(\"hello",{"_index":1160,"t":{"146":{"position":[[252,21]]}}}],["crypto.ripemd160",{"_index":94,"t":{"4":{"position":[[1243,16]]}}}],["crypto.sha1",{"_index":326,"t":{"16":{"position":[[1601,12]]}}}],["crypto.sha384",{"_index":327,"t":{"16":{"position":[[1614,14]]}}}],["crypto.sha512",{"_index":328,"t":{"16":{"position":[[1631,13]]}}}],["crypto.sign",{"_index":72,"t":{"4":{"position":[[908,11]]},"16":{"position":[[1557,11]]}}}],["crypto.sign|\"rsa",{"_index":1992,"t":{"557":{"position":[[870,16]]}}}],["crypto.verifi",{"_index":325,"t":{"16":{"position":[[1571,13]]}}}],["cryptograph",{"_index":736,"t":{"62":{"position":[[126,13]]},"478":{"position":[[50,13]]},"480":{"position":[[33,13]]},"482":{"position":[[33,13]]},"484":{"position":[[33,13]]},"486":{"position":[[34,13]]},"488":{"position":[[34,13]]},"490":{"position":[[33,13]]},"492":{"position":[[34,13]]},"494":{"position":[[37,13]]},"496":{"position":[[36,13]]},"498":{"position":[[36,13]]},"500":{"position":[[36,13]]},"502":{"position":[[36,13]]},"504":{"position":[[37,13]]},"506":{"position":[[38,13]]},"508":{"position":[[38,13]]},"510":{"position":[[43,13]]},"513":{"position":[[30,13]]},"515":{"position":[[32,13]]},"517":{"position":[[32,13]]},"519":{"position":[[32,13]]},"521":{"position":[[35,13]]},"524":{"position":[[10,17]]}}}],["ctrl+(shift+)b",{"_index":940,"t":{"97":{"position":[[464,14]]}}}],["ctrl+shift+p",{"_index":943,"t":{"97":{"position":[[498,12]]},"99":{"position":[[187,15]]}}}],["cucumb",{"_index":1505,"t":{"300":{"position":[[265,11]]}}}],["current",{"_index":572,"t":{"32":{"position":[[496,10],[555,10]]},"142":{"position":[[167,7]]},"152":{"position":[[78,7]]},"154":{"position":[[187,7]]},"241":{"position":[[477,9]]},"282":{"position":[[34,7]]},"471":{"position":[[11,7]]},"588":{"position":[[38,7]]},"654":{"position":[[15,7],[76,7],[233,7]]},"876":{"position":[[62,7]]},"878":{"position":[[61,7]]},"880":{"position":[[62,7]]}}}],["custom",{"_index":896,"t":{"93":{"position":[[142,6]]},"680":{"position":[[61,9]]},"682":{"position":[[71,9]]}}}],["cve",{"_index":143,"t":{"6":{"position":[[184,4]]},"10":{"position":[[713,4]]}}}],["cwd",{"_index":2250,"t":{"654":{"position":[[272,3],[301,3],[343,3]]}}}],["d",{"_index":1363,"t":{"254":{"position":[[392,3]]},"357":{"position":[[320,2]]}}}],["danger",{"_index":839,"t":{"85":{"position":[[364,9]]}}}],["data",{"_index":219,"t":{"10":{"position":[[562,4],[612,4]]},"256":{"position":[[128,4],[297,4]]},"323":{"position":[[39,4]]},"397":{"position":[[46,4],[65,4]]},"399":{"position":[[45,4],[71,4]]},"403":{"position":[[45,4],[64,4]]},"405":{"position":[[45,4],[71,5]]},"407":{"position":[[110,4],[129,4]]},"409":{"position":[[59,4],[85,5]]},"463":{"position":[[37,4]]},"465":{"position":[[37,5],[55,4],[70,4],[122,4],[236,4]]},"513":{"position":[[132,5]]},"515":{"position":[[134,5]]},"517":{"position":[[134,5]]},"519":{"position":[[134,5]]},"521":{"position":[[137,5]]},"528":{"position":[[12,4],[23,4]]},"530":{"position":[[12,4],[305,4]]},"534":{"position":[[12,4],[23,4]]},"536":{"position":[[99,4],[242,4]]},"538":{"position":[[50,4]]},"540":{"position":[[12,4],[23,4],[102,5],[167,5]]},"542":{"position":[[12,4],[95,5],[307,4]]},"551":{"position":[[12,4],[23,4],[206,5]]},"553":{"position":[[12,4],[172,4]]},"555":{"position":[[12,4],[23,4]]},"557":{"position":[[12,4],[23,4]]},"600":{"position":[[170,4]]},"618":{"position":[[38,4],[220,4],[225,4],[299,4]]},"620":{"position":[[193,4],[209,4],[543,4],[613,5],[650,4],[756,5],[812,4]]},"702":{"position":[[6,4],[61,4]]},"704":{"position":[[8,4],[113,4]]},"706":{"position":[[17,4]]},"708":{"position":[[18,4],[146,4]]},"710":{"position":[[1028,4]]},"758":{"position":[[523,4],[621,4]]},"762":{"position":[[284,4],[385,4]]},"784":{"position":[[127,4],[173,4]]},"840":{"position":[[37,4]]},"842":{"position":[[37,5],[55,4],[70,4],[127,5]]}}}],["data.valu",{"_index":1370,"t":{"256":{"position":[[185,11],[342,14]]}}}],["data:filter(|k",{"_index":2412,"t":{"758":{"position":[[646,15]]}}}],["data:filter(|v",{"_index":2410,"t":{"758":{"position":[[548,15]]}}}],["data:image/png;base64,ivborw0kggoaaaansuheugaaaauaaaafcaiaaaacdbgyaaaaw0leqvqihqfqak//ap8aap8aap8aap8aap8aaad/aad/aad/aad/aad/aaaa/waa/waa/waa/waa/waaap8aap8aap8aap8aap8aaad/aad/aad/aad/aad/aad9fbjo3iscjwaaaabjru5erkjggg",{"_index":1793,"t":{"457":{"position":[[236,222]]}}}],["data:split",{"_index":2417,"t":{"762":{"position":[[302,12],[403,12]]}}}],["data[i",{"_index":2456,"t":{"784":{"position":[[193,7],[203,7],[241,7],[251,7]]}}}],["db890233a919b6745d632633c419e14540ff79f1a89bc4ac194b00e7f913f0f06d5d4d7d6cc2b4aaf9485d223afb8cf0",{"_index":1891,"t":{"517":{"position":[[282,99]]}}}],["deal",{"_index":1938,"t":{"540":{"position":[[83,4]]}}}],["deb",{"_index":1084,"t":{"122":{"position":[[172,4]]}}}],["debian",{"_index":1094,"t":{"122":{"position":[[592,6],[635,6]]},"130":{"position":[[141,6]]}}}],["debug",{"_index":1175,"t":{"150":{"position":[[90,5],[156,5],[173,5],[209,5]]},"282":{"position":[[691,5]]},"284":{"position":[[107,5]]},"598":{"position":[[2,5]]}}}],["debug.getlocal(1",{"_index":1452,"t":{"282":{"position":[[744,17]]}}}],["debug.setlocal(1",{"_index":1453,"t":{"282":{"position":[[790,17]]}}}],["decid",{"_index":2409,"t":{"758":{"position":[[280,8]]}}}],["decim",{"_index":1742,"t":{"413":{"position":[[104,7]]},"415":{"position":[[91,8]]}}}],["deciph",{"_index":925,"t":{"95":{"position":[[630,11]]}}}],["declar",{"_index":16,"t":{"4":{"position":[[115,8]]},"32":{"position":[[446,11]]},"52":{"position":[[83,12]]},"74":{"position":[[48,12]]},"148":{"position":[[136,8]]},"161":{"position":[[173,11],[275,11]]},"163":{"position":[[152,11]]},"165":{"position":[[38,8]]},"185":{"position":[[67,8]]},"187":{"position":[[51,8],[246,8]]},"195":{"position":[[18,12],[50,7]]},"207":{"position":[[54,7]]},"209":{"position":[[91,8]]},"241":{"position":[[17,8],[238,8]]},"256":{"position":[[412,7]]},"262":{"position":[[72,7]]}}}],["decod",{"_index":337,"t":{"16":{"position":[[1888,6]]},"22":{"position":[[2234,7]]},"399":{"position":[[10,7],[79,7]]},"405":{"position":[[10,7]]},"461":{"position":[[78,8]]},"465":{"position":[[78,7]]},"620":{"position":[[217,7],[355,7],[461,7],[628,7],[707,7],[903,7],[1099,7]]},"842":{"position":[[78,7]]},"848":{"position":[[32,8],[88,8]]}}}],["decompress",{"_index":1997,"t":{"560":{"position":[[0,12],[163,11],[188,12],[306,13]]}}}],["decrypt",{"_index":1921,"t":{"530":{"position":[[37,8],[295,9],[653,7]]},"536":{"position":[[124,8],[232,9],[544,7]]},"542":{"position":[[37,8],[297,9],[723,7]]},"553":{"position":[[37,8],[241,7],[912,7]]}}}],["deepli",{"_index":765,"t":{"68":{"position":[[392,6]]},"250":{"position":[[10,6]]}}}],["default",{"_index":181,"t":{"8":{"position":[[305,7]]},"16":{"position":[[865,7],[2035,7],[2101,7],[2448,7]]},"22":{"position":[[457,7]]},"34":{"position":[[0,8],[61,7]]},"38":{"position":[[141,7],[199,9]]},"42":{"position":[[0,7],[195,7],[278,7]]},"44":{"position":[[0,7]]},"50":{"position":[[251,7],[319,10]]},"56":{"position":[[164,8]]},"62":{"position":[[27,7],[631,7]]},"87":{"position":[[178,8]]},"93":{"position":[[190,8]]},"95":{"position":[[128,8]]},"105":{"position":[[52,8]]},"142":{"position":[[122,7]]},"154":{"position":[[135,7]]},"163":{"position":[[343,8],[552,8]]},"177":{"position":[[443,8]]},"179":{"position":[[393,8]]},"181":{"position":[[390,8]]},"195":{"position":[[68,7]]},"227":{"position":[[647,7]]},"235":{"position":[[369,7]]},"286":{"position":[[66,7]]},"288":{"position":[[298,8],[710,7],[845,8],[902,7]]},"292":{"position":[[213,7],[670,7],[740,7]]},"335":{"position":[[177,7]]},"357":{"position":[[52,8]]},"397":{"position":[[120,8]]},"403":{"position":[[119,8]]},"407":{"position":[[184,8]]},"443":{"position":[[217,8],[296,8],[348,8],[417,8]]},"465":{"position":[[181,10],[567,7]]},"492":{"position":[[134,8]]},"494":{"position":[[137,8]]},"513":{"position":[[177,8]]},"515":{"position":[[179,8]]},"517":{"position":[[179,8]]},"519":{"position":[[179,8]]},"521":{"position":[[182,8]]},"596":{"position":[[49,8],[101,8]]},"610":{"position":[[340,8]]},"618":{"position":[[160,8]]},"620":{"position":[[324,8]]},"680":{"position":[[107,8]]},"682":{"position":[[136,8]]},"782":{"position":[[198,8]]},"798":{"position":[[121,8]]},"800":{"position":[[125,8]]},"802":{"position":[[126,8]]},"818":{"position":[[306,7]]},"820":{"position":[[408,8]]},"828":{"position":[[198,8]]},"840":{"position":[[139,8]]},"842":{"position":[[154,10]]},"876":{"position":[[150,8]]}}}],["defer",{"_index":1416,"t":{"272":{"position":[[665,5]]}}}],["defin",{"_index":23,"t":{"4":{"position":[[194,6],[771,7]]},"16":{"position":[[6,7],[641,7],[704,7]]},"36":{"position":[[112,7]]},"40":{"position":[[1646,8]]},"81":{"position":[[50,8]]},"83":{"position":[[302,6]]},"85":{"position":[[35,7]]},"87":{"position":[[114,8]]},"89":{"position":[[633,8]]},"93":{"position":[[26,8]]},"111":{"position":[[557,8]]},"148":{"position":[[39,7],[55,7],[80,7],[213,7],[317,7]]},"150":{"position":[[148,7]]},"163":{"position":[[435,6]]},"177":{"position":[[535,6]]},"179":{"position":[[485,6]]},"181":{"position":[[482,6]]},"272":{"position":[[277,6]]},"274":{"position":[[119,7]]},"335":{"position":[[401,6]]},"357":{"position":[[61,6]]},"564":{"position":[[270,7],[313,7]]}}}],["definit",{"_index":640,"t":{"40":{"position":[[1177,10]]},"163":{"position":[[258,10]]},"355":{"position":[[137,10]]}}}],["deflat",{"_index":1574,"t":{"323":{"position":[[489,9]]},"560":{"position":[[15,7]]}}}],["delimit",{"_index":251,"t":{"14":{"position":[[200,7]]},"26":{"position":[[409,10]]},"66":{"position":[[98,10]]},"292":{"position":[[320,9]]},"298":{"position":[[201,7]]},"353":{"position":[[136,7]]}}}],["demonstr",{"_index":2424,"t":{"762":{"position":[[722,13]]}}}],["depend",{"_index":947,"t":{"99":{"position":[[25,7]]},"335":{"position":[[229,9]]}}}],["deprec",{"_index":56,"t":{"4":{"position":[[704,10]]},"14":{"position":[[52,10]]},"16":{"position":[[503,10],[542,10],[587,10],[658,10]]},"22":{"position":[[3116,10],[3199,10],[3281,10],[3329,10]]},"40":{"position":[[457,10]]},"50":{"position":[[259,10],[361,10]]}}}],["deprecated/remov",{"_index":2403,"t":{"756":{"position":[[69,18]]}}}],["deriv",{"_index":1975,"t":{"553":{"position":[[527,6]]},"557":{"position":[[552,6]]}}}],["describ",{"_index":2340,"t":{"710":{"position":[[375,10]]},"776":{"position":[[38,9]]}}}],["design",{"_index":1145,"t":{"140":{"position":[[203,6],[279,6]]},"321":{"position":[[378,8]]},"598":{"position":[[17,8]]}}}],["desir",{"_index":1135,"t":{"138":{"position":[[212,7]]},"648":{"position":[[76,7]]},"652":{"position":[[85,7]]},"654":{"position":[[68,7]]},"778":{"position":[[139,7]]},"820":{"position":[[65,7],[236,7]]}}}],["despit",{"_index":446,"t":{"22":{"position":[[1899,7]]},"292":{"position":[[371,7]]},"308":{"position":[[251,7]]}}}],["destructur",{"_index":563,"t":{"32":{"position":[[12,13],[86,13]]},"197":{"position":[[0,13]]},"205":{"position":[[6,13]]}}}],["detail",{"_index":458,"t":{"22":{"position":[[2198,7]]},"32":{"position":[[1407,8]]},"40":{"position":[[1916,8]]},"62":{"position":[[444,6]]},"598":{"position":[[249,11],[269,7],[984,11],[1021,7]]},"600":{"position":[[300,11],[320,7],[408,11],[434,7]]}}}],["detect",{"_index":28,"t":{"4":{"position":[[298,7]]},"22":{"position":[[1381,9]]},"89":{"position":[[10,6]]},"592":{"position":[[178,8],[227,8]]}}}],["determin",{"_index":1187,"t":{"152":{"position":[[411,9]]},"876":{"position":[[211,10]]}}}],["dev",{"_index":2118,"t":{"604":{"position":[[181,5],[241,3]]}}}],["dev/nul",{"_index":1082,"t":{"122":{"position":[[157,9],[346,9]]}}}],["develop",{"_index":1012,"t":{"107":{"position":[[1153,10]]},"111":{"position":[[76,11]]},"122":{"position":[[495,10]]},"124":{"position":[[158,10]]},"126":{"position":[[103,11]]}}}],["deviat",{"_index":1148,"t":{"140":{"position":[[258,9]]}}}],["di",{"_index":1407,"t":{"266":{"position":[[204,4]]}}}],["dialog",{"_index":1120,"t":{"132":{"position":[[139,7]]}}}],["diamond",{"_index":1656,"t":{"359":{"position":[[403,9]]}}}],["differ",{"_index":1219,"t":{"179":{"position":[[246,9]]},"280":{"position":[[41,9]]}}}],["difficult",{"_index":1493,"t":{"298":{"position":[[445,9]]}}}],["digit",{"_index":1881,"t":{"513":{"position":[[166,7]]},"515":{"position":[[168,7]]},"517":{"position":[[168,7]]},"519":{"position":[[168,7]]},"521":{"position":[[171,7]]},"826":{"position":[[276,7],[556,5]]}}}],["dir/main",{"_index":2211,"t":{"632":{"position":[[127,13]]}}}],["direct",{"_index":575,"t":{"32":{"position":[[889,6]]},"876":{"position":[[39,9]]},"880":{"position":[[10,9]]}}}],["directli",{"_index":939,"t":{"97":{"position":[[435,8]]},"115":{"position":[[97,8]]}}}],["directori",{"_index":689,"t":{"50":{"position":[[238,9]]},"130":{"position":[[543,10]]},"132":{"position":[[227,10]]},"134":{"position":[[147,10]]},"136":{"position":[[72,10],[198,10],[367,9]]},"632":{"position":[[97,10],[220,12]]},"636":{"position":[[116,10]]},"638":{"position":[[9,10],[53,10],[101,9],[190,12],[236,12]]},"640":{"position":[[28,10],[72,10],[134,12]]},"642":{"position":[[10,9],[52,11],[124,10]]},"654":{"position":[[31,10],[92,10],[249,10]]}}}],["disabl",{"_index":33,"t":{"4":{"position":[[354,8]]},"22":{"position":[[967,8],[3676,8],[3860,8]]},"81":{"position":[[8,7]]},"105":{"position":[[363,8]]},"107":{"position":[[154,7]]},"109":{"position":[[242,9]]},"111":{"position":[[533,7]]},"179":{"position":[[284,7]]},"191":{"position":[[24,10],[344,7],[597,7]]},"193":{"position":[[3,7],[113,7],[170,7]]},"357":{"position":[[40,8]]}}}],["disable/en",{"_index":674,"t":{"44":{"position":[[338,14]]}}}],["disallow",{"_index":244,"t":{"12":{"position":[[310,11]]},"60":{"position":[[115,10]]},"282":{"position":[[165,11]]}}}],["discard",{"_index":286,"t":{"16":{"position":[[251,10]]},"187":{"position":[[76,10],[210,10],[269,10]]},"241":{"position":[[93,10],[202,10],[261,10]]}}}],["discuss",{"_index":1431,"t":{"280":{"position":[[19,9]]}}}],["dispatch",{"_index":2156,"t":{"610":{"position":[[1965,11]]}}}],["disregard",{"_index":559,"t":{"30":{"position":[[93,12]]}}}],["dissect",{"_index":2566,"t":{"850":{"position":[[67,10]]}}}],["divis",{"_index":1524,"t":{"313":{"position":[[111,9],[132,9]]},"427":{"position":[[9,8]]},"429":{"position":[[9,8]]}}}],["divison",{"_index":1755,"t":{"431":{"position":[[9,7]]}}}],["djb2",{"_index":1826,"t":{"478":{"position":[[41,4]]},"482":{"position":[[24,4]]}}}],["dll/so",{"_index":834,"t":{"85":{"position":[[88,6]]},"564":{"position":[[8,6]]}}}],["dll/so/c",{"_index":519,"t":{"22":{"position":[[3873,8]]}}}],["do",{"_index":1916,"t":{"528":{"position":[[157,6]]},"530":{"position":[[158,6]]},"534":{"position":[[125,6]]},"536":{"position":[[92,6]]},"551":{"position":[[117,6]]},"553":{"position":[[118,6]]},"794":{"position":[[277,7],[355,8],[541,8],[657,7],[730,7]]}}}],["do...end",{"_index":1277,"t":{"227":{"position":[[457,9]]}}}],["document",{"_index":524,"t":{"22":{"position":[[3977,14]]},"32":{"position":[[1416,13]]},"40":{"position":[[1925,13]]},"68":{"position":[[608,13]]},"78":{"position":[[130,10]]},"113":{"position":[[5,8]]},"128":{"position":[[233,10]]},"467":{"position":[[10,9]]},"586":{"position":[[10,9]]},"622":{"position":[[10,9]]},"656":{"position":[[10,9]]},"684":{"position":[[10,9]]},"728":{"position":[[10,9]]},"788":{"position":[[10,9]]}}}],["doe",{"_index":2085,"t":{"598":{"position":[[242,6],[343,6]]},"600":{"position":[[293,6],[473,6]]}}}],["doesn't",{"_index":1189,"t":{"152":{"position":[[463,7]]},"167":{"position":[[46,7]]},"333":{"position":[[3,7]]}}}],["dofil",{"_index":678,"t":{"46":{"position":[[95,7]]},"83":{"position":[[94,6]]}}}],["domain",{"_index":2303,"t":{"694":{"position":[[103,6]]}}}],["don't",{"_index":889,"t":{"89":{"position":[[1127,5]]},"272":{"position":[[271,5]]},"333":{"position":[[347,5]]},"375":{"position":[[186,5]]},"377":{"position":[[190,5]]}}}],["done",{"_index":2408,"t":{"758":{"position":[[117,4]]}}}],["dont_make_reus",{"_index":2148,"t":{"610":{"position":[[1231,19]]}}}],["dont_reus",{"_index":2140,"t":{"610":{"position":[[888,11]]}}}],["dot",{"_index":2604,"t":{"870":{"position":[[13,3]]}}}],["down",{"_index":800,"t":{"78":{"position":[[77,4]]},"876":{"position":[[490,4]]}}}],["download",{"_index":964,"t":{"99":{"position":[[407,11]]}}}],["dozen",{"_index":1133,"t":{"138":{"position":[[199,5]]}}}],["drop",{"_index":977,"t":{"101":{"position":[[109,4]]}}}],["due",{"_index":389,"t":{"20":{"position":[[392,3]]},"44":{"position":[[400,3]]},"54":{"position":[[134,3]]},"89":{"position":[[390,3]]},"177":{"position":[[83,3]]},"179":{"position":[[50,3]]},"280":{"position":[[51,3]]},"610":{"position":[[2055,3]]}}}],["dump",{"_index":153,"t":{"6":{"position":[[309,7]]},"62":{"position":[[398,7]]},"72":{"position":[[9,4]]},"93":{"position":[[3,4],[171,4],[266,5]]},"598":{"position":[[29,4],[95,5]]},"600":{"position":[[138,5]]}}}],["dumpvar",{"_index":379,"t":{"20":{"position":[[211,7]]},"22":{"position":[[2290,7]]},"323":{"position":[[176,7]]},"600":{"position":[[11,8]]}}}],["duplic",{"_index":700,"t":{"52":{"position":[[66,10]]},"74":{"position":[[32,9]]},"161":{"position":[[157,9]]},"163":{"position":[[135,9]]},"165":{"position":[[183,9]]}}}],["dure",{"_index":1228,"t":{"189":{"position":[[46,6]]},"195":{"position":[[0,6]]},"296":{"position":[[345,6]]},"337":{"position":[[53,6]]}}}],["dynam",{"_index":1633,"t":{"349":{"position":[[191,7]]},"564":{"position":[[15,8]]}}}],["e",{"_index":1423,"t":{"278":{"position":[[166,1],[430,1]]},"300":{"position":[[416,1]]},"473":{"position":[[236,1]]},"545":{"position":[[238,3],[586,5]]},"553":{"position":[[739,1]]},"557":{"position":[[764,1]]}}}],["e.g",{"_index":8,"t":{"4":{"position":[[26,5],[734,5]]},"16":{"position":[[362,5]]},"22":{"position":[[95,4],[2046,4]]},"32":{"position":[[763,4],[937,4]]},"97":{"position":[[201,4]]},"191":{"position":[[497,4]]},"268":{"position":[[52,4]]},"298":{"position":[[124,4],[223,4],[333,4]]},"321":{"position":[[424,4]]},"604":{"position":[[229,5]]},"610":{"position":[[386,4]]}}}],["e:find(\"what",{"_index":1510,"t":{"300":{"position":[[426,12]]}}}],["each",{"_index":148,"t":{"6":{"position":[[245,4]]},"189":{"position":[[13,4]]},"199":{"position":[[90,4]]},"201":{"position":[[106,4]]},"526":{"position":[[103,4]]},"596":{"position":[[70,4]]},"668":{"position":[[110,4]]},"698":{"position":[[245,4]]},"710":{"position":[[410,4]]},"744":{"position":[[131,4]]},"746":{"position":[[135,4]]},"772":{"position":[[144,4]]},"778":{"position":[[155,4]]},"826":{"position":[[551,4]]},"860":{"position":[[50,4]]},"872":{"position":[[36,4]]}}}],["earlier",{"_index":1201,"t":{"165":{"position":[[315,7]]}}}],["eas",{"_index":1808,"t":{"465":{"position":[[646,4]]},"473":{"position":[[123,4]]},"842":{"position":[[718,4]]}}}],["easi",{"_index":1394,"t":{"264":{"position":[[14,4]]}}}],["easier",{"_index":1820,"t":{"473":{"position":[[33,6]]},"648":{"position":[[392,6]]},"826":{"position":[[31,6]]}}}],["easiest",{"_index":1064,"t":{"115":{"position":[[4,7]]}}}],["easili",{"_index":1068,"t":{"120":{"position":[[8,6]]},"122":{"position":[[8,6]]},"130":{"position":[[352,6]]},"670":{"position":[[61,6]]}}}],["ecb",{"_index":1933,"t":{"534":{"position":[[57,3],[96,4]]},"536":{"position":[[24,3],[63,4],[470,3],[583,3]]}}}],["echo",{"_index":1083,"t":{"122":{"position":[[167,4]]}}}],["ecl",{"_index":1766,"t":{"443":{"position":[[129,5]]}}}],["ecosystem",{"_index":1050,"t":{"111":{"position":[[700,9]]}}}],["edg",{"_index":677,"t":{"44":{"position":[[415,4]]}}}],["edit",{"_index":1440,"t":{"282":{"position":[[181,5]]},"341":{"position":[[124,4]]}}}],["editor",{"_index":934,"t":{"97":{"position":[[270,6],[359,6],[452,6]]},"99":{"position":[[41,7],[501,6],[536,6]]}}}],["ee8410a8bf9511b94fd6669b5c3e0c4b86e8e4bf7baa8dbd2773d4d6381dd1aecebbe391bef4c6158620ab3f6b794907652d4432c2301d7e1a6caf520565cdf2",{"_index":1894,"t":{"519":{"position":[[282,131]]}}}],["effect",{"_index":1488,"t":{"296":{"position":[[293,6]]},"315":{"position":[[145,11]]},"818":{"position":[[323,11]]}}}],["effortlessli",{"_index":2588,"t":{"860":{"position":[[22,12]]}}}],["element",{"_index":1284,"t":{"229":{"position":[[289,8],[443,7],[494,7],[630,7]]},"393":{"position":[[13,7],[202,7],[216,7],[265,7],[316,7],[372,7],[485,7],[531,7]]},"734":{"position":[[22,8]]},"736":{"position":[[11,8]]},"742":{"position":[[33,8],[78,7]]},"744":{"position":[[22,8],[136,8],[158,7]]},"746":{"position":[[22,8],[140,8]]},"748":{"position":[[19,8]]},"756":{"position":[[155,8]]},"772":{"position":[[36,9],[149,8]]},"780":{"position":[[17,7]]},"782":{"position":[[36,8]]},"784":{"position":[[11,7]]},"786":{"position":[[11,7]]},"842":{"position":[[1062,8],[1080,7]]}}}],["elimin",{"_index":832,"t":{"85":{"position":[[54,9]]},"758":{"position":[[102,11],[377,11]]}}}],["elipsi",{"_index":2503,"t":{"820":{"position":[[54,7],[187,8]]}}}],["emit",{"_index":683,"t":{"48":{"position":[[234,8]]},"296":{"position":[[234,4]]},"353":{"position":[[68,7]]},"355":{"position":[[71,7]]}}}],["emoji",{"_index":2484,"t":{"804":{"position":[[221,7]]}}}],["empti",{"_index":129,"t":{"6":{"position":[[35,5],[52,5]]},"66":{"position":[[70,5]]},"610":{"position":[[1575,5]]},"650":{"position":[[156,8]]}}}],["en_us.utf",{"_index":2497,"t":{"816":{"position":[[60,9]]}}}],["enabl",{"_index":32,"t":{"4":{"position":[[343,7]]},"16":{"position":[[2290,6]]},"22":{"position":[[369,7],[1002,7]]},"36":{"position":[[366,7]]},"50":{"position":[[495,7]]},"74":{"position":[[542,7]]},"87":{"position":[[103,7]]},"93":{"position":[[15,7]]},"107":{"position":[[965,6]]},"156":{"position":[[95,6]]},"163":{"position":[[355,6]]},"177":{"position":[[455,6]]},"179":{"position":[[405,6]]},"181":{"position":[[402,6]]},"185":{"position":[[42,7]]},"191":{"position":[[35,9],[108,8],[403,6],[505,6],[585,6]]},"207":{"position":[[83,6]]},"209":{"position":[[27,8]]},"213":{"position":[[89,6]]},"223":{"position":[[83,6]]},"280":{"position":[[187,6]]},"294":{"position":[[89,6]]},"302":{"position":[[96,6]]},"335":{"position":[[166,7]]},"357":{"position":[[140,6],[202,6]]}}}],["enc",{"_index":1927,"t":{"530":{"position":[[574,3]]},"536":{"position":[[435,3]]},"542":{"position":[[617,4]]},"553":{"position":[[791,3]]}}}],["encapsul",{"_index":1464,"t":{"290":{"position":[[311,12]]}}}],["enclos",{"_index":445,"t":{"22":{"position":[[1799,9]]},"142":{"position":[[85,9]]},"154":{"position":[[85,9]]}}}],["encod",{"_index":196,"t":{"8":{"position":[[560,8]]},"22":{"position":[[2224,7]]},"46":{"position":[[125,7]]},"48":{"position":[[206,7]]},"323":{"position":[[465,10]]},"397":{"position":[[11,7],[73,7]]},"403":{"position":[[17,7],[72,7]]},"407":{"position":[[20,7],[137,7]]},"443":{"position":[[81,8]]},"461":{"position":[[65,8]]},"463":{"position":[[57,6]]},"549":{"position":[[39,7]]},"618":{"position":[[84,6],[794,6]]},"620":{"position":[[619,8],[673,7],[869,7],[1049,7],[1270,8]]},"840":{"position":[[65,6]]},"846":{"position":[[14,7],[59,8]]}}}],["encompass",{"_index":1010,"t":{"107":{"position":[[826,12]]}}}],["encrypt",{"_index":1909,"t":{"526":{"position":[[108,10]]},"528":{"position":[[34,10]]},"530":{"position":[[454,7]]},"534":{"position":[[34,10]]},"536":{"position":[[391,7]]},"538":{"position":[[91,10]]},"540":{"position":[[34,10],[185,10]]},"542":{"position":[[264,9],[497,7]]},"551":{"position":[[34,10],[198,7]]},"553":{"position":[[181,9],[777,7]]},"718":{"position":[[25,10]]}}}],["end",{"_index":58,"t":{"4":{"position":[[730,3],[765,5]]},"16":{"position":[[387,4]]},"89":{"position":[[422,3],[502,3]]},"95":{"position":[[171,3]]},"103":{"position":[[324,3],[438,3]]},"111":{"position":[[294,3],[1074,3]]},"142":{"position":[[288,3],[449,3],[453,3]]},"150":{"position":[[268,4]]},"152":{"position":[[292,3],[329,3]]},"154":{"position":[[123,3],[176,3],[314,3],[487,3],[491,3]]},"161":{"position":[[125,3]]},"169":{"position":[[119,3],[123,3]]},"171":{"position":[[110,3]]},"183":{"position":[[151,3],[596,3]]},"187":{"position":[[168,3]]},"191":{"position":[[421,3]]},"193":{"position":[[203,3]]},"195":{"position":[[163,3],[340,3],[356,3]]},"211":{"position":[[169,3],[291,3],[355,3],[522,3],[529,3],[579,3]]},"215":{"position":[[86,3],[292,3]]},"217":{"position":[[132,3]]},"219":{"position":[[163,3],[229,3]]},"221":{"position":[[75,3]]},"225":{"position":[[179,3],[347,3]]},"227":{"position":[[164,4],[549,3]]},"233":{"position":[[187,3],[191,3],[339,3],[343,3]]},"235":{"position":[[219,3]]},"237":{"position":[[258,3]]},"241":{"position":[[160,3],[439,3]]},"250":{"position":[[670,3]]},"252":{"position":[[174,3],[555,3]]},"254":{"position":[[280,4]]},"260":{"position":[[117,3],[140,3],[163,3],[272,4],[291,4],[310,3]]},"262":{"position":[[171,3]]},"264":{"position":[[196,3]]},"266":{"position":[[163,3],[226,3],[230,3]]},"268":{"position":[[157,3],[161,3]]},"270":{"position":[[90,3],[121,3]]},"272":{"position":[[227,3],[231,3],[486,3],[490,3]]},"274":{"position":[[239,3],[277,3],[281,3]]},"276":{"position":[[222,3],[260,3],[264,3]]},"278":{"position":[[125,3],[156,3],[420,3]]},"282":{"position":[[911,3],[915,3]]},"288":{"position":[[122,3],[341,3],[631,3],[889,3]]},"290":{"position":[[119,3],[258,3],[388,3],[583,3]]},"292":{"position":[[237,3],[572,4],[577,3]]},"296":{"position":[[195,3]]},"300":{"position":[[324,3],[328,3],[478,3],[482,3],[486,3]]},"304":{"position":[[156,3]]},"306":{"position":[[131,3]]},"315":{"position":[[111,3],[223,3]]},"317":{"position":[[262,3],[502,3],[521,3],[756,3]]},"319":{"position":[[197,3],[391,3],[395,3],[533,3],[613,3],[624,3]]},"327":{"position":[[172,3]]},"339":{"position":[[207,3],[437,3]]},"347":{"position":[[393,3],[419,3]]},"353":{"position":[[59,3],[195,3]]},"359":{"position":[[175,3],[263,3],[314,3],[318,3],[427,3]]},"473":{"position":[[317,3]]},"547":{"position":[[894,3]]},"549":{"position":[[671,3]]},"592":{"position":[[336,3],[355,3]]},"596":{"position":[[165,4]]},"610":{"position":[[2433,3]]},"612":{"position":[[523,4],[603,4]]},"628":{"position":[[371,3]]},"632":{"position":[[233,3]]},"634":{"position":[[222,3]]},"636":{"position":[[230,3]]},"638":{"position":[[249,3]]},"640":{"position":[[260,3]]},"650":{"position":[[165,3]]},"678":{"position":[[351,4],[550,4]]},"680":{"position":[[399,4]]},"682":{"position":[[359,3],[421,4]]},"698":{"position":[[506,4]]},"710":{"position":[[1060,3],[1521,3],[1525,4]]},"714":{"position":[[32,3]]},"726":{"position":[[336,3]]},"766":{"position":[[116,4]]},"782":{"position":[[163,6]]},"784":{"position":[[276,3]]},"798":{"position":[[37,4]]},"830":{"position":[[19,4]]}}}],["endif",{"_index":2018,"t":{"564":{"position":[[328,6]]}}}],["enforc",{"_index":1174,"t":{"148":{"position":[[226,8]]}}}],["english",{"_index":2154,"t":{"610":{"position":[[1688,7]]}}}],["enhanc",{"_index":929,"t":{"97":{"position":[[116,7]]},"138":{"position":[[150,8]]},"351":{"position":[[35,9]]}}}],["enough",{"_index":1210,"t":{"173":{"position":[[72,6]]}}}],["ensur",{"_index":506,"t":{"22":{"position":[[3431,6]]},"284":{"position":[[173,6]]},"526":{"position":[[130,6]]},"816":{"position":[[80,7]]}}}],["enter",{"_index":956,"t":{"99":{"position":[[276,6]]}}}],["entir",{"_index":1302,"t":{"239":{"position":[[28,8]]},"296":{"position":[[336,8]]},"333":{"position":[[446,8]]},"804":{"position":[[22,8]]},"806":{"position":[[22,8]]},"808":{"position":[[22,8]]},"810":{"position":[[22,8]]},"812":{"position":[[22,8]]},"814":{"position":[[25,8]]}}}],["entiti",{"_index":1409,"t":{"270":{"position":[[75,6],[114,6]]},"272":{"position":[[176,6],[255,6]]},"278":{"position":[[118,6],[149,6],[174,8],[224,7],[294,7],[413,6],[438,8],[467,8]]}}}],["entri",{"_index":2551,"t":{"840":{"position":[[250,8],[336,7],[373,6],[414,8]]},"842":{"position":[[279,9],[289,6],[333,8],[342,10],[408,10],[476,8],[796,10],[829,8],[1178,8],[1187,8],[1297,8],[1349,8]]}}}],["entry>primaryjg",{"_index":1935,"t":{"536":{"position":[[522,18]]}}}],["q",{"_index":1949,"t":{"545":{"position":[[283,3],[730,5]]},"547":{"position":[[281,1]]},"549":{"position":[[803,5]]},"553":{"position":[[425,1]]},"557":{"position":[[450,1]]}}}],["qo",{"_index":1074,"t":{"122":{"position":[[55,2]]}}}],["qol",{"_index":1032,"t":{"111":{"position":[[56,3]]}}}],["qr",{"_index":1765,"t":{"443":{"position":[[43,2],[287,2]]}}}],["quartil",{"_index":1770,"t":{"443":{"position":[[197,11]]}}}],["queri",{"_index":2167,"t":{"612":{"position":[[0,7]]},"850":{"position":[[416,9]]}}}],["quick",{"_index":1009,"t":{"107":{"position":[[820,5]]}}}],["quicker",{"_index":1637,"t":{"351":{"position":[[149,8]]}}}],["quickli",{"_index":1543,"t":{"321":{"position":[[87,7]]}}}],["quit",{"_index":1209,"t":{"173":{"position":[[59,5]]}}}],["quot",{"_index":556,"t":{"30":{"position":[[51,6]]}}}],["quotient",{"_index":1750,"t":{"427":{"position":[[59,8]]},"429":{"position":[[64,9]]}}}],["r",{"_index":1297,"t":{"235":{"position":[[132,4],[304,3]]},"237":{"position":[[171,4],[336,3]]},"566":{"position":[[200,2]]},"570":{"position":[[185,2]]}}}],["rai",{"_index":1230,"t":{"191":{"position":[[172,6]]}}}],["raii",{"_index":362,"t":{"16":{"position":[[2513,4]]}}}],["rais",{"_index":184,"t":{"8":{"position":[[339,7]]},"20":{"position":[[458,6]]},"26":{"position":[[95,7]]},"161":{"position":[[8,6]]},"163":{"position":[[8,6]]},"165":{"position":[[8,6]]},"167":{"position":[[8,6]]},"169":{"position":[[8,6]]},"171":{"position":[[8,6]]},"173":{"position":[[8,6]]},"175":{"position":[[8,6]]},"177":{"position":[[8,6]]},"179":{"position":[[8,6]]},"181":{"position":[[8,6]]},"183":{"position":[[8,6]]},"185":{"position":[[8,6]]},"187":{"position":[[8,6]]},"209":{"position":[[68,6]]},"241":{"position":[[61,6]]},"387":{"position":[[31,5],[236,6],[461,7]]},"389":{"position":[[27,5],[241,5]]},"391":{"position":[[22,6],[352,5],[382,5]]},"606":{"position":[[58,6]]},"624":{"position":[[34,6]]},"626":{"position":[[34,6]]}}}],["ran",{"_index":1203,"t":{"169":{"position":[[50,4]]}}}],["random",{"_index":1042,"t":{"111":{"position":[[367,8]]},"229":{"position":[[593,8],[611,8]]},"524":{"position":[[130,6]]}}}],["rang",{"_index":307,"t":{"16":{"position":[[1080,5]]},"524":{"position":[[157,5]]},"602":{"position":[[40,6]]},"782":{"position":[[67,6]]}}}],["range(16):map",{"_index":1924,"t":{"530":{"position":[[473,16]]},"542":{"position":[[516,16]]}}}],["rare",{"_index":554,"t":{"28":{"position":[[181,4]]}}}],["raw",{"_index":1878,"t":{"513":{"position":[[121,3]]},"515":{"position":[[123,3]]},"517":{"position":[[123,3]]},"519":{"position":[[123,3]]},"521":{"position":[[126,3]]}}}],["rawget",{"_index":1052,"t":{"111":{"position":[[751,6],[928,6]]}}}],["rawget(opt",{"_index":1062,"t":{"111":{"position":[[1046,12]]}}}],["rawset(frozen",{"_index":1449,"t":{"282":{"position":[[561,14]]}}}],["re",{"_index":298,"t":{"16":{"position":[[723,2]]},"22":{"position":[[999,2]]},"44":{"position":[[91,2]]},"329":{"position":[[165,5],[197,7]]}}}],["read",{"_index":257,"t":{"14":{"position":[[323,4],[517,4]]},"826":{"position":[[41,4]]}}}],["readabl",{"_index":1306,"t":{"245":{"position":[[67,9]]},"598":{"position":[[52,8]]},"618":{"position":[[135,8]]},"840":{"position":[[115,8]]}}}],["reason",{"_index":1016,"t":{"107":{"position":[[1262,8]]},"610":{"position":[[1675,6]]}}}],["reassign",{"_index":1446,"t":{"282":{"position":[[469,8]]}}}],["rebas",{"_index":789,"t":{"74":{"position":[[813,7]]}}}],["receiv",{"_index":1665,"t":{"363":{"position":[[306,8]]},"365":{"position":[[321,8]]},"367":{"position":[[329,8]]},"369":{"position":[[419,8]]},"371":{"position":[[510,8]]},"373":{"position":[[335,8]]},"375":{"position":[[642,8],[894,8]]},"704":{"position":[[0,7],[118,8]]},"706":{"position":[[8,8],[189,7]]},"708":{"position":[[43,7]]}}}],["recogn",{"_index":532,"t":{"24":{"position":[[191,11]]}}}],["recommend",{"_index":1014,"t":{"107":{"position":[[1226,9]]}}}],["record",{"_index":2321,"t":{"704":{"position":[[184,7]]}}}],["recurs",{"_index":380,"t":{"20":{"position":[[244,9]]},"36":{"position":[[143,9]]},"640":{"position":[[122,7]]}}}],["red",{"_index":1333,"t":{"250":{"position":[[561,3],[664,5]]}}}],["reduc",{"_index":893,"t":{"93":{"position":[[86,6]]},"276":{"position":[[132,6]]}}}],["reduce(math.max",{"_index":2434,"t":{"770":{"position":[[145,17]]}}}],["reduce(math.min",{"_index":2431,"t":{"768":{"position":[[146,17]]}}}],["refer",{"_index":1689,"t":{"375":{"position":[[102,9],[192,9]]},"377":{"position":[[106,9],[196,9]]},"387":{"position":[[93,10]]},"389":{"position":[[89,10]]},"391":{"position":[[199,10]]},"407":{"position":[[62,7]]}}}],["reflect",{"_index":632,"t":{"40":{"position":[[659,10]]},"219":{"position":[[75,7]]}}}],["refresh",{"_index":1616,"t":{"341":{"position":[[93,9]]}}}],["reg",{"_index":1645,"t":{"357":{"position":[[259,3]]}}}],["reg_dword",{"_index":1649,"t":{"357":{"position":[[310,9]]}}}],["regard",{"_index":78,"t":{"4":{"position":[[995,7]]},"12":{"position":[[299,7]]}}}],["regardless",{"_index":1023,"t":{"109":{"position":[[38,10]]},"335":{"position":[[290,11]]}}}],["regex",{"_index":89,"t":{"4":{"position":[[1161,5]]},"664":{"position":[[4,5]]},"666":{"position":[[65,5]]},"668":{"position":[[164,5],[214,5],[679,5],[729,5]]}}}],["regist",{"_index":682,"t":{"48":{"position":[[102,9]]},"349":{"position":[[153,10]]}}}],["regress",{"_index":231,"t":{"12":{"position":[[27,11]]},"36":{"position":[[438,10]]},"58":{"position":[[8,10]]}}}],["reindent",{"_index":937,"t":{"97":{"position":[[383,9]]}}}],["rel",{"_index":2013,"t":{"564":{"position":[[139,8]]},"644":{"position":[[10,8]]},"646":{"position":[[32,8]]}}}],["relat",{"_index":247,"t":{"12":{"position":[[340,7]]}}}],["relationship",{"_index":828,"t":{"83":{"position":[[565,12]]}}}],["releas",{"_index":3,"t":{"2":{"position":[[43,8]]},"12":{"position":[[5,7]]},"117":{"position":[[93,8]]},"122":{"position":[[642,9]]},"150":{"position":[[253,7]]},"604":{"position":[[212,7]]}}}],["relev",{"_index":994,"t":{"105":{"position":[[160,8]]}}}],["reli",{"_index":627,"t":{"40":{"position":[[412,4]]},"89":{"position":[[1133,4]]}}}],["reliabl",{"_index":883,"t":{"89":{"position":[[924,8]]}}}],["remain",{"_index":543,"t":{"26":{"position":[[152,6]]}}}],["remaind",{"_index":1751,"t":{"427":{"position":[[72,10]]},"431":{"position":[[63,10]]}}}],["remap",{"_index":2414,"t":{"762":{"position":[[0,6]]}}}],["remark",{"_index":1132,"t":{"138":{"position":[[88,10]]}}}],["rememb",{"_index":1456,"t":{"288":{"position":[[422,8],[985,8]]}}}],["remot",{"_index":2144,"t":{"610":{"position":[[1122,6],[1318,6],[1434,6],[2005,6],[2172,6]]},"612":{"position":[[54,7],[160,7]]},"710":{"position":[[183,7],[296,6]]}}}],["remov",{"_index":359,"t":{"16":{"position":[[2414,7]]},"18":{"position":[[179,7]]},"22":{"position":[[3616,7]]},"40":{"position":[[449,7],[510,7]]},"44":{"position":[[178,7],[371,7]]},"50":{"position":[[344,7]]},"349":{"position":[[6,7]]},"598":{"position":[[884,10]]},"736":{"position":[[0,6]]},"758":{"position":[[311,7]]}}}],["renam",{"_index":491,"t":{"22":{"position":[[3002,7],[3031,7]]}}}],["reorder",{"_index":2398,"t":{"752":{"position":[[0,8]]}}}],["repeat",{"_index":255,"t":{"14":{"position":[[291,6]]},"74":{"position":[[556,6]]}}}],["repl",{"_index":531,"t":{"24":{"position":[[182,4]]}}}],["replac",{"_index":297,"t":{"16":{"position":[[691,9]]},"42":{"position":[[87,7]]},"48":{"position":[[75,8]]},"101":{"position":[[117,11]]},"284":{"position":[[270,7]]},"818":{"position":[[0,7],[185,8],[211,11],[270,12],[408,12]]},"820":{"position":[[170,8],[315,7]]}}}],["replic",{"_index":2081,"t":{"596":{"position":[[481,9]]}}}],["repo",{"_index":1088,"t":{"122":{"position":[[272,5]]}}}],["repo/key.gpg",{"_index":1077,"t":{"122":{"position":[[94,12]]}}}],["report",{"_index":200,"t":{"10":{"position":[[93,9]]},"14":{"position":[[783,9]]},"44":{"position":[[250,9]]},"298":{"position":[[534,6]]},"682":{"position":[[99,7]]}}}],["repositori",{"_index":967,"t":{"99":{"position":[[459,10]]},"124":{"position":[[26,10]]},"126":{"position":[[46,10]]},"128":{"position":[[119,11]]},"132":{"position":[[7,10]]}}}],["repres",{"_index":1555,"t":{"323":{"position":[[29,9]]},"465":{"position":[[16,12],[108,9]]},"600":{"position":[[88,11]]},"644":{"position":[[207,12]]},"646":{"position":[[106,12]]},"778":{"position":[[65,10]]},"826":{"position":[[111,12],[1169,9]]},"842":{"position":[[16,12]]}}}],["represent",{"_index":473,"t":{"22":{"position":[[2552,15]]},"415":{"position":[[59,14]]},"417":{"position":[[23,14]]},"419":{"position":[[18,14]]},"465":{"position":[[582,15],[782,15]]},"598":{"position":[[119,14]]},"826":{"position":[[200,14]]},"834":{"position":[[36,15]]},"856":{"position":[[59,14]]}}}],["request",{"_index":485,"t":{"22":{"position":[[2920,7],[3498,7]]},"341":{"position":[[48,7]]},"610":{"position":[[17,8],[56,7],[317,7],[452,7],[1090,8],[1353,8],[1387,8],[1453,9],[1947,7],[1992,7],[2151,8]]}}}],["requir",{"_index":57,"t":{"4":{"position":[[719,7],[793,8]]},"22":{"position":[[3392,7]]},"46":{"position":[[86,8]]},"83":{"position":[[105,7],[492,8]]},"85":{"position":[[123,7],[286,7]]},"105":{"position":[[418,8],[455,9]]},"107":{"position":[[732,8]]},"111":{"position":[[710,7]]},"130":{"position":[[12,8]]},"136":{"position":[[330,7]]},"205":{"position":[[35,7],[138,7]]},"266":{"position":[[71,7]]},"323":{"position":[[100,7]]},"361":{"position":[[21,8]]},"395":{"position":[[21,8]]},"401":{"position":[[21,8]]},"411":{"position":[[21,8]]},"413":{"position":[[154,7]]},"417":{"position":[[74,7]]},"419":{"position":[[69,7]]},"427":{"position":[[104,7]]},"429":{"position":[[95,7]]},"431":{"position":[[95,7]]},"433":{"position":[[84,7]]},"435":{"position":[[94,7]]},"437":{"position":[[21,8]]},"443":{"position":[[470,7]]},"457":{"position":[[118,7]]},"461":{"position":[[32,7]]},"463":{"position":[[90,7]]},"465":{"position":[[210,7],[831,7],[1059,7]]},"475":{"position":[[21,8]]},"530":{"position":[[389,7]]},"536":{"position":[[326,7]]},"542":{"position":[[400,7]]},"545":{"position":[[84,12],[129,12]]},"547":{"position":[[150,7]]},"549":{"position":[[148,7]]},"553":{"position":[[294,7]]},"557":{"position":[[319,7]]},"562":{"position":[[21,8]]},"564":{"position":[[614,7]]},"566":{"position":[[130,7]]},"570":{"position":[[131,7]]},"584":{"position":[[143,7],[409,7]]},"608":{"position":[[21,8]]},"610":{"position":[[2228,7]]},"612":{"position":[[407,7]]},"616":{"position":[[21,8]]},"664":{"position":[[34,7]]},"668":{"position":[[172,7],[687,7]]},"670":{"position":[[36,7]]},"682":{"position":[[259,7]]},"692":{"position":[[21,8]]},"698":{"position":[[301,7]]},"704":{"position":[[399,7]]},"708":{"position":[[181,7]]},"710":{"position":[[794,7],[1126,7]]},"726":{"position":[[163,7]]},"838":{"position":[[21,8]]},"840":{"position":[[176,7]]},"842":{"position":[[232,7],[1130,7]]},"844":{"position":[[21,8]]},"852":{"position":[[21,8]]},"854":{"position":[[63,7],[330,7]]},"858":{"position":[[180,7]]},"860":{"position":[[84,7]]},"870":{"position":[[86,7]]},"872":{"position":[[93,7]]},"874":{"position":[[87,7]]},"876":{"position":[[323,7]]},"878":{"position":[[107,7]]},"880":{"position":[[100,7]]}}}],["require\"crypto\".decompress(\"\\xf3\\x48\\xcd\\xc9\\xc9\\xd7\\x51\\x08\\xc8\\x29\\x2d\\xc9\\x57\\x04",{"_index":2005,"t":{"560":{"position":[[327,86]]}}}],["require\"pluto:schedul",{"_index":2280,"t":{"678":{"position":[[237,26]]},"680":{"position":[[184,26]]}}}],["require\"pluto:url",{"_index":2561,"t":{"846":{"position":[[86,18]]},"848":{"position":[[115,18]]},"850":{"position":[[96,18]]}}}],["require\"pluto:vector3",{"_index":2592,"t":{"862":{"position":[[135,24]]},"864":{"position":[[65,24]]},"866":{"position":[[71,24]]},"868":{"position":[[72,24]]}}}],["require\"socket\".connect(\"1.1.1.1",{"_index":2357,"t":{"714":{"position":[[152,34]]},"716":{"position":[[136,34]]},"718":{"position":[[88,34]]},"720":{"position":[[89,34]]}}}],["require(\"assert",{"_index":1661,"t":{"363":{"position":[[160,17]]},"365":{"position":[[159,17]]},"367":{"position":[[163,17]]},"369":{"position":[[212,17]]},"371":{"position":[[327,17]]},"373":{"position":[[161,17]]},"375":{"position":[[462,17]]},"377":{"position":[[462,17]]},"379":{"position":[[201,17]]},"381":{"position":[[225,17]]},"383":{"position":[[208,17]]},"385":{"position":[[232,17]]},"387":{"position":[[274,17]]},"389":{"position":[[278,17]]},"391":{"position":[[469,17]]},"752":{"position":[[156,17]]}}}],["require(\"base64",{"_index":1732,"t":{"403":{"position":[[158,17]]},"405":{"position":[[98,17]]},"407":{"position":[[224,17]]},"409":{"position":[[112,17]]}}}],["require(\"crypto",{"_index":1827,"t":{"478":{"position":[[136,17]]},"480":{"position":[[119,17]]},"482":{"position":[[176,17]]},"484":{"position":[[119,17]]},"486":{"position":[[120,17]]},"488":{"position":[[177,17]]},"490":{"position":[[176,17]]},"492":{"position":[[235,17]]},"494":{"position":[[181,17]]},"496":{"position":[[122,17]]},"498":{"position":[[179,17]]},"500":{"position":[[179,17]]},"502":{"position":[[179,17]]},"504":{"position":[[180,17]]},"506":{"position":[[124,17]]},"508":{"position":[[124,17]]},"510":{"position":[[129,17]]},"513":{"position":[[222,17]]},"515":{"position":[[224,17]]},"517":{"position":[[224,17]]},"519":{"position":[[224,17]]},"524":{"position":[[225,17]]}}}],["require(\"crypto\").joaat(\"hello",{"_index":1158,"t":{"146":{"position":[[195,31],[434,31]]}}}],["require(\"json",{"_index":2179,"t":{"618":{"position":[[198,15],[761,15],[838,15]]},"620":{"position":[[591,15]]}}}],["require(\"pluto:libnam",{"_index":507,"t":{"22":{"position":[[3459,24]]}}}],["reserv",{"_index":585,"t":{"32":{"position":[[1249,8]]},"40":{"position":[[1802,8]]},"56":{"position":[[84,8]]},"68":{"position":[[143,8]]},"103":{"position":[[606,8]]},"107":{"position":[[38,8],[1603,8]]},"347":{"position":[[24,8],[145,8],[258,8],[497,8]]}}}],["reset",{"_index":134,"t":{"6":{"position":[[97,9]]}}}],["resolv",{"_index":2304,"t":{"694":{"position":[[115,9]]}}}],["respect",{"_index":690,"t":{"50":{"position":[[330,13]]},"103":{"position":[[352,10]]},"203":{"position":[[112,13]]},"528":{"position":[[237,13]]},"530":{"position":[[238,13]]},"534":{"position":[[205,13]]},"536":{"position":[[206,13]]},"540":{"position":[[269,13]]},"542":{"position":[[174,13]]},"596":{"position":[[387,10]]},"620":{"position":[[495,8]]},"688":{"position":[[26,10]]}}}],["respons",{"_index":2150,"t":{"610":{"position":[[1488,8],[1557,8]]},"744":{"position":[[106,11]]},"746":{"position":[[110,11]]},"758":{"position":[[264,11]]},"762":{"position":[[104,11]]},"766":{"position":[[157,11]]},"772":{"position":[[119,11]]}}}],["rest",{"_index":1178,"t":{"150":{"position":[[343,4]]}}}],["restrict",{"_index":26,"t":{"4":{"position":[[261,12]]},"40":{"position":[[1422,11]]},"68":{"position":[[568,12]]},"85":{"position":[[211,12]]}}}],["result",{"_index":207,"t":{"10":{"position":[[219,7],[247,6],[287,6]]},"18":{"position":[[255,7]]},"48":{"position":[[277,9]]},"62":{"position":[[490,8]]},"227":{"position":[[357,6]]},"256":{"position":[[520,6]]},"329":{"position":[[186,6],[213,6]]},"532":{"position":[[112,6]]},"730":{"position":[[138,6]]},"816":{"position":[[97,6]]},"820":{"position":[[145,9]]},"834":{"position":[[182,6]]},"858":{"position":[[150,7]]}}}],["resum",{"_index":2275,"t":{"674":{"position":[[81,7]]},"678":{"position":[[54,7]]}}}],["rethrow",{"_index":1818,"t":{"469":{"position":[[40,8]]}}}],["rethrown",{"_index":2279,"t":{"678":{"position":[[199,9]]},"682":{"position":[[197,8]]}}}],["retri",{"_index":2136,"t":{"610":{"position":[[720,8]]}}}],["retun",{"_index":1807,"t":{"465":{"position":[[602,7]]}}}],["return",{"_index":128,"t":{"6":{"position":[[22,9]]},"8":{"position":[[444,6]]},"14":{"position":[[620,6]]},"16":{"position":[[262,7],[378,6]]},"24":{"position":[[112,9]]},"26":{"position":[[70,7]]},"40":{"position":[[1485,6]]},"42":{"position":[[173,6]]},"68":{"position":[[442,7],[498,8]]},"83":{"position":[[420,6]]},"89":{"position":[[180,6]]},"95":{"position":[[575,6],[590,6]]},"111":{"position":[[243,6],[1001,6]]},"187":{"position":[[24,6],[155,6],[221,6],[280,7]]},"197":{"position":[[78,6]]},"211":{"position":[[156,6],[173,6],[278,6],[304,6],[509,6],[543,8]]},"227":{"position":[[141,6],[387,9],[536,6]]},"241":{"position":[[77,6],[147,6],[213,6],[272,7],[426,6]]},"250":{"position":[[520,9],[625,6]]},"252":{"position":[[454,6],[543,6]]},"274":{"position":[[261,6]]},"276":{"position":[[244,6]]},"290":{"position":[[378,6]]},"296":{"position":[[162,6]]},"298":{"position":[[66,7]]},"300":{"position":[[121,6],[379,6],[467,6]]},"317":{"position":[[110,7],[156,7]]},"321":{"position":[[360,6]]},"323":{"position":[[820,6]]},"327":{"position":[[145,6]]},"333":{"position":[[116,8]]},"353":{"position":[[43,6],[179,6]]},"397":{"position":[[0,7]]},"399":{"position":[[0,7]]},"403":{"position":[[0,7]]},"405":{"position":[[0,7]]},"407":{"position":[[0,7]]},"421":{"position":[[27,7]]},"423":{"position":[[37,7]]},"425":{"position":[[40,7]]},"427":{"position":[[34,7]]},"429":{"position":[[34,7]]},"431":{"position":[[33,7]]},"433":{"position":[[41,7]]},"435":{"position":[[0,7]]},"445":{"position":[[123,8]]},"451":{"position":[[59,8]]},"455":{"position":[[66,8]]},"457":{"position":[[66,8]]},"459":{"position":[[145,8]]},"463":{"position":[[0,7]]},"465":{"position":[[0,7]]},"482":{"position":[[98,8]]},"488":{"position":[[99,8]]},"490":{"position":[[98,8]]},"492":{"position":[[157,8]]},"498":{"position":[[101,8]]},"500":{"position":[[101,8]]},"502":{"position":[[101,8]]},"504":{"position":[[102,8]]},"513":{"position":[[113,7]]},"515":{"position":[[115,7]]},"517":{"position":[[115,7]]},"519":{"position":[[115,7]]},"521":{"position":[[118,7]]},"524":{"position":[[119,8]]},"530":{"position":[[283,7]]},"536":{"position":[[220,7]]},"540":{"position":[[314,7]]},"542":{"position":[[285,7]]},"545":{"position":[[182,7]]},"557":{"position":[[204,7]]},"560":{"position":[[175,8]]},"564":{"position":[[177,8],[418,6]]},"566":{"position":[[65,8]]},"568":{"position":[[145,8]]},"572":{"position":[[167,8]]},"574":{"position":[[203,8]]},"580":{"position":[[44,6],[303,8]]},"582":{"position":[[208,8]]},"598":{"position":[[101,8]]},"600":{"position":[[24,7]]},"602":{"position":[[0,7]]},"606":{"position":[[29,7]]},"610":{"position":[[1463,8]]},"618":{"position":[[0,7],[120,6]]},"620":{"position":[[0,7],[100,6],[165,6],[256,6]]},"624":{"position":[[80,6]]},"626":{"position":[[80,6]]},"628":{"position":[[140,8]]},"630":{"position":[[91,7],[119,8]]},"632":{"position":[[42,8]]},"634":{"position":[[42,8]]},"636":{"position":[[42,8]]},"638":{"position":[[64,8]]},"640":{"position":[[147,8]]},"644":{"position":[[189,8]]},"646":{"position":[[88,8]]},"648":{"position":[[155,8],[212,6]]},"652":{"position":[[166,8],[223,6]]},"654":{"position":[[165,8],[222,6]]},"666":{"position":[[87,8]]},"668":{"position":[[71,8]]},"676":{"position":[[99,7]]},"678":{"position":[[333,6]]},"680":{"position":[[381,6]]},"688":{"position":[[13,6]]},"690":{"position":[[0,7]]},"694":{"position":[[166,8]]},"696":{"position":[[78,8]]},"704":{"position":[[61,8],[292,6]]},"706":{"position":[[78,8],[119,8]]},"710":{"position":[[540,8],[578,7],[654,7]]},"714":{"position":[[86,8]]},"716":{"position":[[79,8]]},"724":{"position":[[67,8],[270,7]]},"726":{"position":[[67,7]]},"730":{"position":[[30,6]]},"732":{"position":[[31,7]]},"734":{"position":[[0,7]]},"738":{"position":[[73,8]]},"742":{"position":[[100,8]]},"744":{"position":[[31,9],[145,8]]},"746":{"position":[[31,9],[149,8]]},"748":{"position":[[74,8]]},"750":{"position":[[34,7]]},"752":{"position":[[109,8]]},"754":{"position":[[34,7]]},"758":{"position":[[331,6],[491,8]]},"760":{"position":[[33,7]]},"762":{"position":[[252,8]]},"764":{"position":[[30,7]]},"766":{"position":[[83,9],[292,8]]},"768":{"position":[[0,7]]},"770":{"position":[[0,7]]},"772":{"position":[[46,9]]},"774":{"position":[[0,7]]},"776":{"position":[[0,7]]},"780":{"position":[[0,7]]},"782":{"position":[[0,7]]},"784":{"position":[[0,7]]},"794":{"position":[[151,8],[172,8]]},"798":{"position":[[145,8]]},"800":{"position":[[149,8]]},"802":{"position":[[150,8]]},"820":{"position":[[417,8]]},"828":{"position":[[248,8]]},"834":{"position":[[212,8]]},"836":{"position":[[68,8]]},"840":{"position":[[0,7],[100,6]]},"842":{"position":[[0,7],[735,8]]},"846":{"position":[[0,7]]},"848":{"position":[[0,7]]},"866":{"position":[[0,7]]},"868":{"position":[[0,7]]},"872":{"position":[[0,7]]},"874":{"position":[[0,7]]},"876":{"position":[[0,7]]},"878":{"position":[[0,7]]},"880":{"position":[[0,7]]}}}],["reus",{"_index":2141,"t":{"610":{"position":[[972,5],[1224,6]]}}}],["revers",{"_index":2395,"t":{"748":{"position":[[0,8],[65,8]]}}}],["revert",{"_index":716,"t":{"54":{"position":[[101,8]]}}}],["rewritten",{"_index":742,"t":{"62":{"position":[[415,9]]}}}],["right",{"_index":590,"t":{"34":{"position":[[196,5]]},"231":{"position":[[4,5],[105,5],[182,5]]},"313":{"position":[[469,6]]},"317":{"position":[[122,5]]},"547":{"position":[[106,5]]},"549":{"position":[[104,5]]},"796":{"position":[[71,5],[104,6]]},"802":{"position":[[36,5]]},"828":{"position":[[188,6],[586,5]]},"858":{"position":[[53,5]]},"876":{"position":[[571,5],[594,5],[697,5],[777,5],[800,5]]},"880":{"position":[[299,5],[397,5],[420,5]]}}}],["righthand",{"_index":594,"t":{"34":{"position":[[283,9]]},"325":{"position":[[60,9]]},"329":{"position":[[4,9]]}}}],["rightli",{"_index":1142,"t":{"140":{"position":[[156,8]]}}}],["ripemd",{"_index":1895,"t":{"521":{"position":[[24,6]]}}}],["roll",{"_index":1044,"t":{"111":{"position":[[477,6]]},"876":{"position":[[273,4],[291,5]]}}}],["roll(opt",{"_index":1033,"t":{"111":{"position":[[232,10],[990,10]]}}}],["root",{"_index":2550,"t":{"840":{"position":[[221,7],[362,6],[447,7]]},"842":{"position":[[258,4],[788,4],[1057,4],[1106,5]]}}}],["root=1",{"_index":1570,"t":{"323":{"position":[[408,7]]}}}],["rotat",{"_index":2613,"t":{"876":{"position":[[10,8]]},"878":{"position":[[10,8]]},"880":{"position":[[40,8]]}}}],["roughli",{"_index":723,"t":{"56":{"position":[[221,7]]}}}],["round",{"_index":2258,"t":{"660":{"position":[[0,6],[66,6]]}}}],["rsa",{"_index":67,"t":{"4":{"position":[[847,3]]},"545":{"position":[[27,6]]},"547":{"position":[[433,3],[898,3]]},"549":{"position":[[210,3],[675,3]]},"551":{"position":[[52,4],[87,5]]},"553":{"position":[[53,4],[88,5],[865,4]]},"555":{"position":[[44,4],[60,4]]},"557":{"position":[[52,4],[68,4],[1056,4]]},"710":{"position":[[535,4]]}}}],["rule",{"_index":936,"t":{"97":{"position":[[347,5]]}}}],["run",{"_index":813,"t":{"83":{"position":[[55,3]]},"87":{"position":[[206,3]]},"97":{"position":[[416,3]]},"115":{"position":[[81,4]]},"130":{"position":[[75,7],[186,3]]},"134":{"position":[[15,3]]},"150":{"position":[[198,7],[242,7]]},"181":{"position":[[38,3]]},"592":{"position":[[309,7]]},"678":{"position":[[4,3]]},"772":{"position":[[0,4]]}}}],["runtim",{"_index":744,"t":{"62":{"position":[[436,7]]},"144":{"position":[[106,8]]},"146":{"position":[[185,7],[424,7]]},"586":{"position":[[55,7]]}}}],["s",{"_index":1111,"t":{"130":{"position":[[164,1]]},"391":{"position":[[980,1]]},"698":{"position":[[366,3]]},"704":{"position":[[428,1]]},"710":{"position":[[823,1],[1355,3]]},"790":{"position":[[97,1]]},"792":{"position":[[101,1]]},"794":{"position":[[243,1],[417,1],[623,1]]},"798":{"position":[[182,1]]},"800":{"position":[[186,1]]},"802":{"position":[[187,1]]},"804":{"position":[[106,1]]},"806":{"position":[[110,1]]},"808":{"position":[[111,1]]},"810":{"position":[[110,1]]},"812":{"position":[[113,1]]},"814":{"position":[[114,1]]},"822":{"position":[[114,1]]},"828":{"position":[[421,1],[604,1]]},"830":{"position":[[119,1]]},"832":{"position":[[121,1]]}}}],["s1",{"_index":1269,"t":{"227":{"position":[[94,2],[214,2]]},"824":{"position":[[137,2]]}}}],["s1:gsub",{"_index":1271,"t":{"227":{"position":[[116,12],[236,12]]}}}],["s2",{"_index":1270,"t":{"227":{"position":[[111,2],[231,2]]},"824":{"position":[[162,2],[207,4]]}}}],["s:recv",{"_index":2347,"t":{"710":{"position":[[1036,8]]}}}],["s:send(\"get",{"_index":2326,"t":{"704":{"position":[[465,11]]},"710":{"position":[[944,11]]}}}],["s:send(\"http/1.1",{"_index":2312,"t":{"698":{"position":[[408,16]]},"710":{"position":[[1423,16]]}}}],["s:starttls(cert",{"_index":2353,"t":{"710":{"position":[[1368,17]]}}}],["safe",{"_index":192,"t":{"8":{"position":[[501,4]]},"14":{"position":[[579,4]]},"18":{"position":[[174,4]]},"22":{"position":[[180,4]]},"68":{"position":[[323,4]]},"250":{"position":[[855,4]]},"252":{"position":[[68,4]]},"407":{"position":[[85,4]]}}}],["same",{"_index":1011,"t":{"107":{"position":[[1103,4]]},"136":{"position":[[430,4]]},"161":{"position":[[52,4]]},"163":{"position":[[52,4]]},"165":{"position":[[24,4]]},"201":{"position":[[138,4]]},"203":{"position":[[21,4]]},"311":{"position":[[29,5]]},"313":{"position":[[621,4]]},"319":{"position":[[268,5]]},"375":{"position":[[167,4],[206,4]]},"377":{"position":[[171,4],[210,4]]},"473":{"position":[[255,4]]},"610":{"position":[[1117,4],[2167,4]]},"620":{"position":[[111,4]]},"710":{"position":[[207,4]]},"748":{"position":[[190,4]]},"756":{"position":[[35,4]]},"816":{"position":[[0,4],[92,4]]}}}],["sandbox",{"_index":514,"t":{"22":{"position":[[3712,12],[3902,11]]},"85":{"position":[[203,7],[417,8]]},"87":{"position":[[36,10]]},"284":{"position":[[164,8]]}}}],["say(\"hello",{"_index":1536,"t":{"317":{"position":[[331,11],[590,11],[825,11]]}}}],["say(messag",{"_index":1533,"t":{"317":{"position":[[208,12],[433,12],[693,12]]}}}],["say(msg",{"_index":1391,"t":{"262":{"position":[[151,8]]}}}],["say(nil",{"_index":1535,"t":{"317":{"position":[[297,8],[556,8],[791,8]]}}}],["sched",{"_index":2172,"t":{"612":{"position":[[425,5]]},"682":{"position":[[277,5]]},"698":{"position":[[319,5]]},"710":{"position":[[1307,5]]}}}],["sched.errorfunc",{"_index":2294,"t":{"682":{"position":[[301,15]]}}}],["sched:add(funct",{"_index":2175,"t":{"612":{"position":[[528,20]]},"682":{"position":[[363,20]]}}}],["sched:addloop(funct",{"_index":2173,"t":{"612":{"position":[[449,24]]}}}],["sched:run",{"_index":2177,"t":{"612":{"position":[[608,11]]},"698":{"position":[[511,11]]},"710":{"position":[[1569,11]]}}}],["schedul",{"_index":305,"t":{"16":{"position":[[1029,11]]},"89":{"position":[[519,10]]},"612":{"position":[[393,9],[437,11]]},"670":{"position":[[4,9]]},"674":{"position":[[116,10]]},"678":{"position":[[29,10],[44,9],[221,9]]},"680":{"position":[[31,9],[79,9],[168,9]]},"682":{"position":[[31,9],[89,9],[245,9],[289,11]]},"698":{"position":[[137,9],[279,10],[331,11]]},"710":{"position":[[1104,10],[1319,11]]}}}],["scheduler.yieldfunc",{"_index":2291,"t":{"680":{"position":[[272,19]]}}}],["scheduler:add(funct",{"_index":2284,"t":{"678":{"position":[[402,24]]}}}],["scheduler:addloop(funct",{"_index":2281,"t":{"678":{"position":[[283,28]]},"680":{"position":[[331,28]]}}}],["scheduler:run",{"_index":2283,"t":{"678":{"position":[[356,15],[555,15]]},"680":{"position":[[404,15]]}}}],["scheme",{"_index":2568,"t":{"850":{"position":[[215,10]]}}}],["scope",{"_index":300,"t":{"16":{"position":[[812,5]]},"18":{"position":[[15,7]]},"20":{"position":[[386,5]]},"22":{"position":[[710,7],[1809,6]]},"38":{"position":[[274,5]]},"211":{"position":[[536,6]]}}}],["script",{"_index":156,"t":{"6":{"position":[[327,7]]},"30":{"position":[[133,7]]},"83":{"position":[[44,7]]},"97":{"position":[[427,7]]},"103":{"position":[[303,6]]},"105":{"position":[[273,7],[411,6]]},"107":{"position":[[75,7],[679,6],[1168,7],[1363,6],[1582,6]]},"111":{"position":[[683,7]]},"130":{"position":[[452,7]]},"173":{"position":[[240,6]]}}}],["script.pluto:2",{"_index":1825,"t":{"473":{"position":[[334,15],[382,14]]}}}],["scripter",{"_index":37,"t":{"4":{"position":[[405,8]]},"105":{"position":[[215,10]]},"111":{"position":[[722,9]]},"163":{"position":[[366,9]]},"177":{"position":[[466,9]]},"179":{"position":[[416,9]]},"181":{"position":[[413,9]]}}}],["scripts/compile.php",{"_index":1112,"t":{"130":{"position":[[218,19]]}}}],["scripts/link_pluto.php",{"_index":1113,"t":{"130":{"position":[[248,22]]}}}],["scripts/link_plutoc.php",{"_index":1114,"t":{"130":{"position":[[281,23]]}}}],["scripts/link_static.php",{"_index":1115,"t":{"130":{"position":[[315,23]]}}}],["sdbm",{"_index":1846,"t":{"490":{"position":[[24,4]]}}}],["search",{"_index":948,"t":{"99":{"position":[[58,6],[246,6],[362,6]]},"229":{"position":[[52,8],[71,9],[137,9],[245,8],[272,6],[308,6],[338,9]]},"393":{"position":[[227,6]]},"594":{"position":[[33,6]]},"744":{"position":[[0,6]]},"746":{"position":[[0,6]]},"796":{"position":[[62,8]]},"828":{"position":[[172,6]]}}}],["second",{"_index":746,"t":{"62":{"position":[[539,6]]},"375":{"position":[[357,6]]},"377":{"position":[[361,6]]},"379":{"position":[[93,6]]},"381":{"position":[[105,6]]},"383":{"position":[[96,6]]},"385":{"position":[[108,6]]},"652":{"position":[[260,7],[428,8]]},"680":{"position":[[235,6]]},"690":{"position":[[8,7]]},"790":{"position":[[26,6]]},"792":{"position":[[26,6]]},"824":{"position":[[99,6]]}}}],["secondari",{"_index":1815,"t":{"465":{"position":[[1129,9],[1260,10],[1334,11]]}}}],["secret",{"_index":1923,"t":{"530":{"position":[[439,6]]},"536":{"position":[[376,6]]},"542":{"position":[[450,6]]},"553":{"position":[[815,6],[974,6]]}}}],["section",{"_index":962,"t":{"99":{"position":[[353,8]]}}}],["secur",{"_index":890,"t":{"89":{"position":[[1150,9]]},"524":{"position":[[28,6],[111,7]]},"526":{"position":[[137,9]]},"710":{"position":[[923,6]]}}}],["see",{"_index":455,"t":{"22":{"position":[[2167,4]]},"91":{"position":[[50,3]]},"167":{"position":[[77,3]]},"185":{"position":[[88,3]]},"187":{"position":[[87,3]]},"225":{"position":[[465,3]]},"227":{"position":[[307,4]]},"256":{"position":[[403,4]]}}}],["seem",{"_index":1055,"t":{"111":{"position":[[838,5]]},"148":{"position":[[110,4]]},"175":{"position":[[29,5]]}}}],["seen",{"_index":1155,"t":{"144":{"position":[[98,4]]},"415":{"position":[[3,4]]},"856":{"position":[[3,4]]}}}],["select",{"_index":621,"t":{"40":{"position":[[123,6]]},"99":{"position":[[203,6]]},"132":{"position":[[159,7]]}}}],["self.__par",{"_index":1412,"t":{"272":{"position":[[41,14]]}}}],["self.__parent.method(self",{"_index":645,"t":{"40":{"position":[[1297,26]]},"272":{"position":[[131,26]]}}}],["self.__parent.prop",{"_index":643,"t":{"40":{"position":[[1256,18]]}}}],["self.ag",{"_index":1418,"t":{"274":{"position":[[224,8],[268,8]]},"276":{"position":[[251,8]]}}}],["self.factor",{"_index":1588,"t":{"327":{"position":[[160,11]]}}}],["self.nam",{"_index":1398,"t":{"264":{"position":[[179,9]]},"266":{"position":[[146,9]]},"268":{"position":[[140,9]]},"272":{"position":[[210,9]]},"274":{"position":[[207,9]]},"359":{"position":[[299,14]]}}}],["self.onev",{"_index":1344,"t":{"252":{"position":[[136,12]]}}}],["self:onevent(ev",{"_index":1345,"t":{"252":{"position":[[154,19]]}}}],["self:onevent?(ev",{"_index":1346,"t":{"252":{"position":[[199,20]]}}}],["semant",{"_index":363,"t":{"16":{"position":[[2518,10]]},"26":{"position":[[14,9]]},"111":{"position":[[194,8]]}}}],["semi",{"_index":1831,"t":{"480":{"position":[[28,4]]}}}],["semicolon",{"_index":1404,"t":{"266":{"position":[[89,11]]}}}],["send",{"_index":2123,"t":{"610":{"position":[[49,4]]},"702":{"position":[[0,5],[69,5]]},"710":{"position":[[308,5]]}}}],["sens",{"_index":2124,"t":{"610":{"position":[[114,5]]}}}],["sep",{"_index":2513,"t":{"826":{"position":[[459,3]]},"828":{"position":[[332,4]]}}}],["separ",{"_index":475,"t":{"22":{"position":[[2601,9]]},"60":{"position":[[31,8]]},"794":{"position":[[21,10],[69,9]]},"826":{"position":[[59,9],[469,9]]},"828":{"position":[[50,10],[102,9]]}}}],["sequenc",{"_index":425,"t":{"22":{"position":[[828,8]]},"74":{"position":[[87,9]]},"774":{"position":[[150,11],[162,9],[172,9]]},"782":{"position":[[105,10]]}}}],["seri",{"_index":1377,"t":{"260":{"position":[[2,6]]}}}],["serial",{"_index":2187,"t":{"620":{"position":[[48,10]]}}}],["server",{"_index":122,"t":{"4":{"position":[[1708,6]]},"38":{"position":[[62,7]]},"700":{"position":[[85,9]]},"710":{"position":[[325,9],[1069,6]]},"716":{"position":[[107,9]]}}}],["servic",{"_index":2139,"t":{"610":{"position":[[831,8]]}}}],["session",{"_index":1910,"t":{"526":{"position":[[119,7]]}}}],["set",{"_index":301,"t":{"16":{"position":[[852,3]]},"40":{"position":[[805,4],[1065,4]]},"46":{"position":[[66,7]]},"48":{"position":[[61,7]]},"83":{"position":[[222,3]]},"93":{"position":[[136,3]]},"107":{"position":[[1326,8]]},"140":{"position":[[59,4]]},"156":{"position":[[143,9]]},"213":{"position":[[137,9]]},"223":{"position":[[131,9]]},"235":{"position":[[80,4]]},"250":{"position":[[418,3]]},"280":{"position":[[238,9]]},"292":{"position":[[733,3]]},"294":{"position":[[137,9]]},"302":{"position":[[150,9]]},"308":{"position":[[282,3]]},"435":{"position":[[45,3]]},"447":{"position":[[0,4]]},"449":{"position":[[0,4]]},"513":{"position":[[100,3]]},"515":{"position":[[102,3]]},"517":{"position":[[102,3]]},"519":{"position":[[102,3]]},"521":{"position":[[105,3]]},"596":{"position":[[349,7]]},"610":{"position":[[511,3],[548,3],[761,3]]},"648":{"position":[[7,3]]},"652":{"position":[[7,3]]},"654":{"position":[[7,3],[333,3]]},"670":{"position":[[68,3]]},"682":{"position":[[64,3]]},"758":{"position":[[125,7]]},"786":{"position":[[82,4],[100,4]]}}}],["setup",{"_index":1607,"t":{"335":{"position":[[246,6]]}}}],["sever",{"_index":230,"t":{"12":{"position":[[19,7]]}}}],["sgvsbg8sifdvcmxkiq",{"_index":1734,"t":{"403":{"position":[[218,20]]},"407":{"position":[[287,18]]}}}],["sha",{"_index":1877,"t":{"513":{"position":[[24,3]]},"515":{"position":[[24,3]]},"517":{"position":[[24,3]]},"519":{"position":[[24,3]]}}}],["sha1",{"_index":1985,"t":{"555":{"position":[[65,6]]},"557":{"position":[[73,6]]}}}],["sha256",{"_index":1984,"t":{"555":{"position":[[49,7]]},"557":{"position":[[57,7],[887,8],[1061,8]]}}}],["shadow",{"_index":162,"t":{"8":{"position":[[15,6],[52,8]]},"16":{"position":[[291,7]]},"20":{"position":[[420,6]]},"22":{"position":[[1413,6],[1446,6],[1511,9],[1671,6],[1760,6],[1852,6]]},"161":{"position":[[190,7],[255,7]]},"163":{"position":[[172,7],[231,7]]},"165":{"position":[[212,7]]},"191":{"position":[[356,6],[414,6]]}}}],["share",{"_index":665,"t":{"42":{"position":[[101,6]]},"122":{"position":[[456,6]]},"124":{"position":[[119,6]]},"130":{"position":[[485,6]]},"136":{"position":[[420,5]]},"564":{"position":[[487,6],[545,6]]}}}],["short",{"_index":991,"t":{"103":{"position":[[545,5]]},"290":{"position":[[139,5]]}}}],["shorthand",{"_index":404,"t":{"22":{"position":[[31,9],[328,9]]},"32":{"position":[[1291,9]]},"62":{"position":[[257,9]]},"107":{"position":[[312,9]]},"272":{"position":[[27,9],[117,9]]},"292":{"position":[[424,9]]},"347":{"position":[[101,9],[181,9]]},"854":{"position":[[288,9]]}}}],["show",{"_index":732,"t":{"60":{"position":[[93,7]]}}}],["side",{"_index":1347,"t":{"252":{"position":[[261,4]]},"325":{"position":[[70,4]]},"329":{"position":[[14,4]]},"716":{"position":[[10,4]]},"800":{"position":[[41,4]]},"802":{"position":[[42,4]]},"858":{"position":[[64,4]]}}}],["sig",{"_index":1991,"t":{"557":{"position":[[857,3],[1075,5]]}}}],["sign",{"_index":1086,"t":{"122":{"position":[[189,6]]},"555":{"position":[[31,5]]},"557":{"position":[[37,7],[186,6],[802,4]]}}}],["signatur",{"_index":1987,"t":{"557":{"position":[[144,9],[160,9],[244,9]]}}}],["signer'",{"_index":1986,"t":{"557":{"position":[[122,8]]}}}],["signific",{"_index":48,"t":{"4":{"position":[[567,11]]},"435":{"position":[[33,11]]}}}],["significantli",{"_index":2159,"t":{"610":{"position":[[2187,13]]},"648":{"position":[[462,13]]}}}],["silenc",{"_index":1224,"t":{"183":{"position":[[479,9]]}}}],["similar",{"_index":638,"t":{"40":{"position":[[914,8]]},"99":{"position":[[658,7]]},"247":{"position":[[0,7]]},"266":{"position":[[23,7]]},"409":{"position":[[0,7]]},"600":{"position":[[0,7]]},"604":{"position":[[54,7]]},"818":{"position":[[43,7]]}}}],["similarli",{"_index":1342,"t":{"252":{"position":[[0,10]]}}}],["simpl",{"_index":874,"t":{"89":{"position":[[623,6],[799,6]]},"233":{"position":[[263,6]]},"256":{"position":[[26,6]]},"276":{"position":[[115,6]]}}}],["simpli",{"_index":976,"t":{"101":{"position":[[89,6],[158,6]]},"130":{"position":[[179,6]]},"134":{"position":[[8,6]]},"136":{"position":[[276,6]]},"193":{"position":[[48,6]]},"207":{"position":[[94,6]]},"250":{"position":[[411,6]]},"339":{"position":[[38,6]]}}}],["simplic",{"_index":77,"t":{"4":{"position":[[976,10]]}}}],["simplifi",{"_index":1472,"t":{"292":{"position":[[95,10]]}}}],["singl",{"_index":555,"t":{"30":{"position":[[44,6]]},"794":{"position":[[214,6],[581,6]]},"826":{"position":[[286,6],[502,6]]},"842":{"position":[[1050,6]]}}}],["size",{"_index":1786,"t":{"451":{"position":[[8,4]]},"453":{"position":[[15,4]]},"572":{"position":[[13,4],[180,4]]},"650":{"position":[[10,4]]},"778":{"position":[[106,5],[147,4],[197,4]]},"794":{"position":[[166,5]]}}}],["skip",{"_index":1181,"t":{"152":{"position":[[69,4],[366,4]]},"154":{"position":[[111,4],[160,8]]}}}],["sleep",{"_index":692,"t":{"50":{"position":[[381,6]]},"686":{"position":[[42,5]]}}}],["slightli",{"_index":462,"t":{"22":{"position":[[2357,8]]},"56":{"position":[[250,8]]},"600":{"position":[[153,8]]}}}],["slower",{"_index":725,"t":{"56":{"position":[[259,6]]}}}],["small",{"_index":599,"t":{"36":{"position":[[200,5]]},"243":{"position":[[16,5]]},"650":{"position":[[147,5]]}}}],["smallest",{"_index":2429,"t":{"768":{"position":[[12,8]]}}}],["smooth",{"_index":1048,"t":{"111":{"position":[[657,6]]}}}],["snippet",{"_index":671,"t":{"44":{"position":[[238,7]]},"97":{"position":[[190,8]]},"351":{"position":[[85,9]]}}}],["sock",{"_index":2332,"t":{"708":{"position":[[210,4]]},"714":{"position":[[145,4]]},"716":{"position":[[129,4]]},"718":{"position":[[81,4]]},"720":{"position":[[82,4]]}}}],["sock:clos",{"_index":2366,"t":{"720":{"position":[[159,12]]}}}],["sock:getp",{"_index":2358,"t":{"714":{"position":[[209,14]]}}}],["sock:unrecv(\"hello",{"_index":2334,"t":{"708":{"position":[[271,20]]}}}],["sock:unrecv(\"world",{"_index":2333,"t":{"708":{"position":[[250,20]]}}}],["socket",{"_index":123,"t":{"4":{"position":[[1715,7]]},"16":{"position":[[965,8]]},"610":{"position":[[990,7]]},"694":{"position":[[177,6]]},"698":{"position":[[257,7],[290,6]]},"700":{"position":[[0,6]]},"702":{"position":[[16,7],[40,6]]},"704":{"position":[[20,7],[44,6],[77,6],[212,6],[390,6]]},"706":{"position":[[60,6]]},"708":{"position":[[125,6],[172,6]]},"710":{"position":[[44,7],[136,6],[339,6],[600,6],[625,6],[785,6],[1115,6]]},"712":{"position":[[9,7],[33,6]]},"714":{"position":[[69,6]]},"716":{"position":[[35,6],[62,6]]},"718":{"position":[[52,6]]},"720":{"position":[[53,6]]},"724":{"position":[[82,6],[103,6]]},"726":{"position":[[154,6]]}}}],["socket.bind(sch",{"_index":2310,"t":{"698":{"position":[[343,18]]},"710":{"position":[[1331,18]]}}}],["socket.connect",{"_index":2316,"t":{"700":{"position":[[41,14]]},"710":{"position":[[234,15]]}}}],["socket.connect(\"google.com",{"_index":2325,"t":{"704":{"position":[[432,28]]},"708":{"position":[[217,28]]}}}],["socket.connect(\"pluto",{"_index":2342,"t":{"710":{"position":[[827,21]]}}}],["socket.getp",{"_index":108,"t":{"4":{"position":[[1497,15]]}}}],["socket.getsid",{"_index":110,"t":{"4":{"position":[[1526,15]]}}}],["socket.isopen",{"_index":112,"t":{"4":{"position":[[1558,13]]}}}],["socket.istl",{"_index":111,"t":{"4":{"position":[[1542,13]]}}}],["socket.listen",{"_index":2307,"t":{"698":{"position":[[34,14]]},"722":{"position":[[43,14]]}}}],["socket.listen(80",{"_index":2370,"t":{"726":{"position":[[196,17]]}}}],["socket.peek",{"_index":109,"t":{"4":{"position":[[1513,12]]}}}],["socket.recv",{"_index":2330,"t":{"706":{"position":[[136,11]]},"708":{"position":[[96,12]]}}}],["socket.starttl",{"_index":121,"t":{"4":{"position":[[1673,15]]},"10":{"position":[[678,15]]}}}],["sole",{"_index":2336,"t":{"710":{"position":[[81,4]]},"826":{"position":[[266,6]]}}}],["solut",{"_index":851,"t":{"87":{"position":[[328,9]]},"229":{"position":[[127,9]]}}}],["someth",{"_index":434,"t":{"22":{"position":[[1352,10]]},"99":{"position":[[648,9]]},"173":{"position":[[34,9]]},"233":{"position":[[89,9]]},"250":{"position":[[505,10]]},"308":{"position":[[33,9]]},"391":{"position":[[832,10],[843,11],[970,9]]}}}],["sometim",{"_index":172,"t":{"8":{"position":[[199,9]]},"60":{"position":[[79,9]]},"407":{"position":[[52,9]]}}}],["somewher",{"_index":820,"t":{"83":{"position":[[323,9]]}}}],["sort",{"_index":860,"t":{"89":{"position":[[153,4]]},"321":{"position":[[347,8]]},"598":{"position":[[845,8]]}}}],["soup",{"_index":450,"t":{"22":{"position":[[2095,4]]},"40":{"position":[[346,4]]},"50":{"position":[[595,7]]},"323":{"position":[[337,4]]},"590":{"position":[[64,5]]}}}],["soup'",{"_index":2263,"t":{"664":{"position":[[69,6]]}}}],["sourc",{"_index":51,"t":{"4":{"position":[[599,6]]},"101":{"position":[[17,6]]},"138":{"position":[[123,6]]},"566":{"position":[[52,6]]},"570":{"position":[[91,6]]},"584":{"position":[[103,6]]}}}],["space",{"_index":1179,"t":{"150":{"position":[[369,6]]},"834":{"position":[[121,6]]}}}],["spaceship",{"_index":408,"t":{"22":{"position":[[149,9]]},"321":{"position":[[4,9]]},"604":{"position":[[69,9]]}}}],["spade",{"_index":1658,"t":{"359":{"position":[[420,6]]}}}],["special",{"_index":373,"t":{"20":{"position":[[8,11]]},"97":{"position":[[76,11]]},"191":{"position":[[458,7]]},"327":{"position":[[9,11]]},"337":{"position":[[0,7]]}}}],["specif",{"_index":747,"t":{"62":{"position":[[569,8]]},"93":{"position":[[251,8]]},"193":{"position":[[25,8]]},"688":{"position":[[64,8]]}}}],["specifi",{"_index":365,"t":{"16":{"position":[[2543,7]]},"89":{"position":[[229,7],[279,7]]},"107":{"position":[[275,7]]},"270":{"position":[[45,7]]},"274":{"position":[[20,7]]},"443":{"position":[[135,9],[245,9],[316,9],[385,9]]},"610":{"position":[[577,10]]},"778":{"position":[[96,9]]},"782":{"position":[[57,9]]},"790":{"position":[[48,9]]},"792":{"position":[[48,9]]},"820":{"position":[[30,9]]},"828":{"position":[[150,10]]},"876":{"position":[[86,7]]}}}],["speedup",{"_index":783,"t":{"74":{"position":[[679,8]]}}}],["spin",{"_index":2309,"t":{"698":{"position":[[89,8]]}}}],["split",{"_index":2471,"t":{"794":{"position":[[0,6],[58,6],[82,5],[190,9],[371,9],[557,9]]},"828":{"position":[[0,6]]},"850":{"position":[[0,6]]}}}],["spuriou",{"_index":707,"t":{"52":{"position":[[287,8]]}}}],["src",{"_index":1117,"t":{"130":{"position":[[538,4]]},"134":{"position":[[142,4]]},"136":{"position":[[67,4],[128,3],[193,4]]}}}],["stack",{"_index":269,"t":{"14":{"position":[[694,5]]},"52":{"position":[[365,5]]},"111":{"position":[[408,5]]},"363":{"position":[[324,5]]},"365":{"position":[[343,5]]},"367":{"position":[[350,5]]},"369":{"position":[[462,5]]},"371":{"position":[[530,5]]},"373":{"position":[[355,5]]},"826":{"position":[[1216,5]]}}}],["standard",{"_index":85,"t":{"4":{"position":[[1098,8]]},"8":{"position":[[456,8]]},"10":{"position":[[439,8]]},"16":{"position":[[882,8]]},"22":{"position":[[2077,8]]},"32":{"position":[[1323,8]]},"40":{"position":[[381,8],[1497,8]]},"50":{"position":[[542,8],[578,8]]},"62":{"position":[[65,8]]},"111":{"position":[[127,8]]},"138":{"position":[[163,8]]},"146":{"position":[[8,8]]},"205":{"position":[[52,8]]},"278":{"position":[[632,8]]},"311":{"position":[[80,12]]}}}],["start",{"_index":250,"t":{"14":{"position":[[164,8]]},"16":{"position":[[343,8]]},"113":{"position":[[38,7]]},"115":{"position":[[23,7]]},"215":{"position":[[171,5]]},"254":{"position":[[222,5]]},"610":{"position":[[785,5]]},"782":{"position":[[143,8]]},"828":{"position":[[228,6]]},"832":{"position":[[19,6]]}}}],["starttl",{"_index":2368,"t":{"724":{"position":[[162,8]]}}}],["state",{"_index":1227,"t":{"189":{"position":[[4,5]]},"191":{"position":[[16,7],[70,5],[193,5],[254,5]]},"282":{"position":[[42,5]]},"333":{"position":[[55,5]]},"614":{"position":[[60,5]]}}}],["statement",{"_index":62,"t":{"4":{"position":[[779,9]]},"14":{"position":[[474,9]]},"16":{"position":[[14,9],[557,9],[604,9],[712,10]]},"18":{"position":[[42,10]]},"22":{"position":[[71,9],[133,9]]},"24":{"position":[[214,10]]},"32":{"position":[[293,9],[414,9],[1004,9]]},"38":{"position":[[87,9]]},"40":{"position":[[523,9],[891,9],[1022,10]]},"46":{"position":[[5,10]]},"48":{"position":[[5,10]]},"74":{"position":[[186,9],[250,10]]},"107":{"position":[[127,10],[1544,11]]},"138":{"position":[[244,11]]},"148":{"position":[[63,10]]},"152":{"position":[[9,11],[184,11]]},"169":{"position":[[282,10]]},"211":{"position":[[311,9]]},"250":{"position":[[790,11]]},"260":{"position":[[198,10]]},"266":{"position":[[10,9],[280,9]]},"270":{"position":[[10,9]]},"288":{"position":[[159,10]]},"313":{"position":[[267,11],[358,10]]},"359":{"position":[[109,9],[190,9],[358,9]]}}}],["static",{"_index":293,"t":{"16":{"position":[[481,6]]},"40":{"position":[[1117,6]]},"83":{"position":[[523,6]]},"136":{"position":[[239,6]]},"262":{"position":[[51,7],[135,6]]},"264":{"position":[[367,6]]}}}],["statu",{"_index":2151,"t":{"610":{"position":[[1519,6],[1610,6]]}}}],["status_cod",{"_index":2161,"t":{"610":{"position":[[2261,12]]}}}],["status_text",{"_index":2162,"t":{"610":{"position":[[2283,11],[2363,15]]}}}],["std=c++17",{"_index":2021,"t":{"564":{"position":[[475,9],[533,9]]}}}],["step",{"_index":1692,"t":{"375":{"position":[[292,4],[300,5]]},"377":{"position":[[296,4],[304,5]]},"762":{"position":[[626,4]]}}}],["still",{"_index":364,"t":{"16":{"position":[[2537,5]]},"22":{"position":[[3545,5]]},"56":{"position":[[244,5]]},"89":{"position":[[1015,6]]},"107":{"position":[[1649,5]]},"292":{"position":[[453,5]]},"341":{"position":[[148,5]]},"349":{"position":[[132,5]]},"720":{"position":[[25,5]]}}}],["store",{"_index":1596,"t":{"333":{"position":[[80,6]]},"568":{"position":[[111,6]]},"570":{"position":[[39,6]]},"572":{"position":[[103,6]]},"574":{"position":[[116,6]]},"766":{"position":[[16,6]]},"768":{"position":[[27,6]]},"770":{"position":[[26,6]]}}}],["str",{"_index":755,"t":{"68":{"position":[[36,3],[43,3]]},"254":{"position":[[310,3]]},"478":{"position":[[160,3]]},"480":{"position":[[143,3]]},"482":{"position":[[200,3]]},"484":{"position":[[143,3]]},"486":{"position":[[144,3]]},"488":{"position":[[201,3]]},"490":{"position":[[200,3]]},"492":{"position":[[259,3]]},"494":{"position":[[205,3]]},"496":{"position":[[146,3]]},"498":{"position":[[203,3]]},"500":{"position":[[203,3]]},"502":{"position":[[203,3]]},"504":{"position":[[204,3]]},"506":{"position":[[148,3]]},"508":{"position":[[148,3]]},"510":{"position":[[153,3]]},"580":{"position":[[149,6],[296,6]]},"582":{"position":[[177,6]]}}}],["straightforward",{"_index":464,"t":{"22":{"position":[[2390,15]]}}}],["strawberri",{"_index":1504,"t":{"300":{"position":[[242,12]]}}}],["stream",{"_index":2199,"t":{"628":{"position":[[94,7]]},"630":{"position":[[71,7]]},"632":{"position":[[34,7]]},"634":{"position":[[34,7]]},"636":{"position":[[34,7]]},"644":{"position":[[80,7]]},"646":{"position":[[80,7]]},"648":{"position":[[64,7]]},"650":{"position":[[69,7]]},"652":{"position":[[73,7]]}}}],["strict",{"_index":1944,"t":{"545":{"position":[[66,6]]}}}],["string",{"_index":130,"t":{"6":{"position":[[41,6],[207,7]]},"16":{"position":[[2240,7]]},"22":{"position":[[855,8],[2545,6]]},"24":{"position":[[84,6]]},"28":{"position":[[0,6],[39,7],[118,6],[156,6]]},"30":{"position":[[6,6],[58,7]]},"32":{"position":[[646,6]]},"42":{"position":[[267,7]]},"48":{"position":[[254,6]]},"50":{"position":[[43,7],[51,7]]},"66":{"position":[[76,6]]},"74":{"position":[[398,6],[462,6],[728,6]]},"138":{"position":[[304,6]]},"163":{"position":[[529,9]]},"167":{"position":[[290,6]]},"229":{"position":[[45,6]]},"231":{"position":[[51,7],[91,6],[129,7]]},"235":{"position":[[391,6]]},"254":{"position":[[14,7],[100,6],[235,7]]},"256":{"position":[[0,6],[232,6],[422,6],[565,6]]},"296":{"position":[[47,6],[135,7],[146,8]]},"298":{"position":[[0,6],[129,7],[171,7],[266,6],[384,7]]},"363":{"position":[[366,7],[406,8]]},"365":{"position":[[385,7],[425,8]]},"367":{"position":[[392,7],[432,8]]},"369":{"position":[[504,7],[544,8]]},"371":{"position":[[572,7],[612,8]]},"373":{"position":[[397,7],[437,8]]},"391":{"position":[[938,7]]},"393":{"position":[[257,7],[283,7],[427,6]]},"397":{"position":[[26,7],[55,6]]},"399":{"position":[[25,7],[54,6]]},"403":{"position":[[25,7],[54,6]]},"405":{"position":[[25,7],[54,6]]},"407":{"position":[[28,7],[119,6]]},"409":{"position":[[68,6]]},"415":{"position":[[52,6]]},"441":{"position":[[83,7]]},"443":{"position":[[68,6]]},"455":{"position":[[77,7]]},"457":{"position":[[77,7]]},"459":{"position":[[46,7],[156,7]]},"463":{"position":[[10,6]]},"473":{"position":[[101,6]]},"478":{"position":[[7,6],[99,6]]},"480":{"position":[[7,6],[82,6]]},"482":{"position":[[7,6],[82,6]]},"484":{"position":[[7,6],[82,6]]},"486":{"position":[[7,6],[83,6]]},"488":{"position":[[7,6],[83,6]]},"490":{"position":[[7,6],[82,6]]},"492":{"position":[[7,6],[83,6]]},"494":{"position":[[7,6],[86,6]]},"496":{"position":[[7,6],[85,6]]},"498":{"position":[[7,6],[85,6]]},"500":{"position":[[7,6],[85,6]]},"502":{"position":[[7,6],[85,6]]},"504":{"position":[[7,6],[86,6]]},"506":{"position":[[7,6],[87,6]]},"508":{"position":[[7,6],[87,6]]},"510":{"position":[[7,6],[92,6]]},"513":{"position":[[7,6],[79,6]]},"515":{"position":[[7,6],[81,6]]},"517":{"position":[[7,6],[81,6]]},"519":{"position":[[7,6],[81,6]]},"521":{"position":[[7,6],[84,6]]},"540":{"position":[[326,8]]},"560":{"position":[[34,6],[153,6],[201,7]]},"592":{"position":[[24,6]]},"596":{"position":[[75,6]]},"598":{"position":[[112,6]]},"606":{"position":[[39,6]]},"610":{"position":[[72,7],[1507,7],[1627,7],[1696,7]]},"618":{"position":[[10,6],[64,7],[144,6]]},"620":{"position":[[79,7],[786,9],[1077,9]]},"628":{"position":[[74,6]]},"630":{"position":[[51,6]]},"632":{"position":[[14,6]]},"634":{"position":[[14,6]]},"636":{"position":[[14,6]]},"640":{"position":[[53,6]]},"642":{"position":[[99,6]]},"644":{"position":[[60,6],[200,6]]},"646":{"position":[[60,6],[99,6]]},"648":{"position":[[44,6]]},"650":{"position":[[49,6]]},"652":{"position":[[53,6]]},"664":{"position":[[98,6]]},"704":{"position":[[197,7]]},"706":{"position":[[98,6]]},"710":{"position":[[482,6]]},"714":{"position":[[115,7]]},"762":{"position":[[564,7]]},"788":{"position":[[51,6]]},"794":{"position":[[9,6],[48,6],[90,6],[117,7],[202,6],[383,6],[569,6]]},"798":{"position":[[47,7],[71,6],[90,6],[162,7]]},"800":{"position":[[51,7],[75,6],[94,6],[166,7]]},"802":{"position":[[52,7],[76,6],[95,6],[167,7]]},"804":{"position":[[12,6],[77,6]]},"806":{"position":[[12,6],[81,6]]},"808":{"position":[[12,6],[82,6]]},"810":{"position":[[12,6],[81,6]]},"812":{"position":[[12,6],[84,6]]},"814":{"position":[[15,6],[85,6]]},"820":{"position":[[18,6],[81,6],[155,6],[212,6],[268,7],[355,6],[440,7]]},"822":{"position":[[12,6],[57,6]]},"824":{"position":[[13,8],[76,6],[106,6]]},"826":{"position":[[103,7],[240,7],[345,6],[445,6],[519,7],[605,6],[1148,7]]},"828":{"position":[[9,6],[77,6],[129,6],[261,8]]},"830":{"position":[[12,6],[55,6]]},"832":{"position":[[12,6],[57,6]]},"834":{"position":[[20,6],[68,6],[227,7]]},"836":{"position":[[15,6],[49,6],[83,7]]},"840":{"position":[[10,6],[55,6],[124,6]]},"846":{"position":[[22,7],[46,6]]},"848":{"position":[[16,6],[51,7],[75,6]]},"856":{"position":[[52,6]]}}}],["string(10",{"_index":1804,"t":{"465":{"position":[[355,10]]}}}],["string(11",{"_index":1560,"t":{"323":{"position":[[253,10]]}}}],["string(13",{"_index":1573,"t":{"323":{"position":[[478,10],[530,10]]},"369":{"position":[[435,10]]},"375":{"position":[[615,10]]},"465":{"position":[[988,10],[1211,10]]}}}],["string(14",{"_index":2270,"t":{"668":{"position":[[424,10],[832,10]]}}}],["string(15",{"_index":1695,"t":{"375":{"position":[[658,10]]},"465":{"position":[[496,10],[1249,10]]}}}],["string(16",{"_index":1934,"t":{"536":{"position":[[511,10]]}}}],["string(2",{"_index":1698,"t":{"375":{"position":[[850,9]]}}}],["string(21",{"_index":2109,"t":{"598":{"position":[[1006,10]]}}}],["string(23",{"_index":1577,"t":{"323":{"position":[[566,10]]}}}],["string(3",{"_index":2087,"t":{"598":{"position":[[333,9]]}}}],["string(4",{"_index":1805,"t":{"465":{"position":[[395,9]]},"598":{"position":[[361,9]]},"842":{"position":[[598,9],[947,9],[1222,9]]},"850":{"position":[[228,9]]}}}],["string(40",{"_index":1569,"t":{"323":{"position":[[397,10]]}}}],["string(5",{"_index":1701,"t":{"375":{"position":[[918,9]]},"465":{"position":[[461,9],[1356,9]]},"748":{"position":[[315,9],[346,9],[431,9],[462,9]]},"842":{"position":[[466,9],[1287,9],[1339,9]]},"850":{"position":[[393,9]]}}}],["string(56",{"_index":1563,"t":{"323":{"position":[[300,10]]}}}],["string(6",{"_index":1700,"t":{"375":{"position":[[872,9],[943,9]]},"465":{"position":[[1310,9]]},"668":{"position":[[394,9],[876,9]]},"850":{"position":[[470,9]]}}}],["string(7",{"_index":2268,"t":{"668":{"position":[[303,9]]},"842":{"position":[[398,9],[523,9],[647,9],[996,9]]}}}],["string(8",{"_index":2569,"t":{"850":{"position":[[261,9],[298,9],[335,9]]}}}],["string(9",{"_index":2574,"t":{"850":{"position":[[428,9]]}}}],["string.char(math.random(0",{"_index":1925,"t":{"530":{"position":[[493,26]]},"542":{"position":[[536,26]]}}}],["string.find",{"_index":499,"t":{"22":{"position":[[3187,11],[3317,11]]},"796":{"position":[[26,11]]}}}],["string.find_first_not_of",{"_index":498,"t":{"22":{"position":[[3150,24]]}}}],["string.find_first_of",{"_index":497,"t":{"22":{"position":[[3127,20]]}}}],["string.find_last_not_of",{"_index":501,"t":{"22":{"position":[[3232,23]]}}}],["string.find_last_of",{"_index":500,"t":{"22":{"position":[[3210,19]]}}}],["string.format",{"_index":504,"t":{"22":{"position":[[3369,13]]},"816":{"position":[[8,14]]}}}],["string.formatint",{"_index":470,"t":{"22":{"position":[[2476,16]]},"826":{"position":[[1046,18],[1125,16],[1250,18]]}}}],["string.fromhex",{"_index":99,"t":{"4":{"position":[[1347,14]]}}}],["string.gsub",{"_index":2498,"t":{"818":{"position":[[54,12]]}}}],["string.lfind",{"_index":502,"t":{"22":{"position":[[3292,12]]}}}],["string.low",{"_index":552,"t":{"26":{"position":[[396,12]]},"62":{"position":[[519,12]]}}}],["string.partition(",{"_index":2530,"t":{"828":{"position":[[473,19],[656,19]]}}}],["string.replac",{"_index":190,"t":{"8":{"position":[[479,14]]},"22":{"position":[[2338,14]]}}}],["string.rfind",{"_index":488,"t":{"22":{"position":[[2966,12],[3268,12]]}}}],["string.split",{"_index":116,"t":{"4":{"position":[[1605,12]]},"66":{"position":[[8,12]]}}}],["string.split(",{"_index":2473,"t":{"794":{"position":[[285,15],[469,15],[665,15]]}}}],["string.sub",{"_index":1357,"t":{"254":{"position":[[88,11]]}}}],["string.tohex",{"_index":98,"t":{"4":{"position":[[1332,12]]}}}],["string.trunc",{"_index":461,"t":{"22":{"position":[[2316,15]]}}}],["string.uformat",{"_index":652,"t":{"40":{"position":[[1545,14]]}}}],["string.upp",{"_index":551,"t":{"26":{"position":[[381,12]]},"62":{"position":[[504,12]]}}}],["string|int",{"_index":573,"t":{"32":{"position":[[768,10]]},"298":{"position":[[228,10],[338,11]]}}}],["strip",{"_index":2475,"t":{"798":{"position":[[0,6],[81,6],[114,6]]},"800":{"position":[[0,6],[85,6],[118,6]]},"802":{"position":[[0,6],[86,6],[119,6]]}}}],["struct",{"_index":2032,"t":{"566":{"position":[[27,7],[81,6],[177,6]]},"568":{"position":[[19,6],[71,6],[176,7]]},"570":{"position":[[25,7],[162,6]]},"572":{"position":[[28,6],[60,6],[96,6],[159,7]]},"574":{"position":[[41,6],[73,6],[109,6],[172,7]]}}}],["structur",{"_index":1127,"t":{"136":{"position":[[377,9]]}}}],["studio",{"_index":958,"t":{"99":{"position":[[290,7]]},"132":{"position":[[80,7],[102,7]]}}}],["stupid",{"_index":852,"t":{"87":{"position":[[366,6]]},"173":{"position":[[44,6],[65,6]]}}}],["style",{"_index":687,"t":{"50":{"position":[[149,5]]}}}],["sub",{"_index":381,"t":{"20":{"position":[[257,3]]},"640":{"position":[[130,3]]}}}],["sublim",{"_index":941,"t":{"97":{"position":[[482,7]]},"99":{"position":[[148,7]]}}}],["subsequ",{"_index":1095,"t":{"122":{"position":[[624,10]]},"610":{"position":[[2140,10]]}}}],["subset",{"_index":625,"t":{"40":{"position":[[336,6]]},"566":{"position":[[9,6]]},"570":{"position":[[9,6]]},"584":{"position":[[9,6]]}}}],["substitut",{"_index":2499,"t":{"818":{"position":[[194,10],[536,10]]}}}],["substr",{"_index":1281,"t":{"229":{"position":[[153,10]]},"391":{"position":[[48,9],[107,9],[123,9],[437,10]]},"794":{"position":[[395,9]]},"818":{"position":[[8,10],[32,10],[172,9],[223,10]]},"822":{"position":[[30,10],[78,9]]},"828":{"position":[[272,9],[349,9]]},"830":{"position":[[76,9]]},"832":{"position":[[78,9]]}}}],["subtract",{"_index":1523,"t":{"313":{"position":[[70,12]]},"423":{"position":[[9,11]]}}}],["succe",{"_index":980,"t":{"101":{"position":[[230,8]]}}}],["success",{"_index":856,"t":{"89":{"position":[[55,10]]},"315":{"position":[[50,13]]},"530":{"position":[[313,8]]},"536":{"position":[[250,8]]},"542":{"position":[[315,8]]},"610":{"position":[[1475,8]]},"694":{"position":[[196,8]]},"696":{"position":[[110,8]]},"710":{"position":[[557,8]]}}}],["successfulli",{"_index":1988,"t":{"557":{"position":[[264,13]]},"628":{"position":[[186,12]]},"638":{"position":[[115,12]]}}}],["successor",{"_index":1140,"t":{"140":{"position":[[117,10]]}}}],["succinctli",{"_index":1557,"t":{"323":{"position":[[59,11]]}}}],["such",{"_index":431,"t":{"22":{"position":[[1119,4]]},"83":{"position":[[86,4]]},"97":{"position":[[161,4],[286,4],[375,4]]},"101":{"position":[[72,4]]},"138":{"position":[[229,4]]},"146":{"position":[[618,4]]},"150":{"position":[[80,4]]},"227":{"position":[[624,4]]},"308":{"position":[[310,4]]},"321":{"position":[[387,4]]},"347":{"position":[[40,4]]},"538":{"position":[[102,4]]},"612":{"position":[[250,4]]},"730":{"position":[[69,4]]}}}],["sudo",{"_index":1078,"t":{"122":{"position":[[109,4],[293,4],[356,4],[372,4]]},"130":{"position":[[114,4],[151,4]]}}}],["suffix",{"_index":596,"t":{"36":{"position":[[64,7]]},"604":{"position":[[245,7]]},"830":{"position":[[31,7],[86,6]]}}}],["sugar",{"_index":1528,"t":{"313":{"position":[[597,6]]}}}],["suggest",{"_index":610,"t":{"38":{"position":[[9,11]]}}}],["suit",{"_index":1552,"t":{"321":{"position":[[303,6]]},"359":{"position":[[387,4]]}}}],["suitabl",{"_index":2510,"t":{"826":{"position":[[144,8]]}}}],["sum",{"_index":2596,"t":{"864":{"position":[[13,3]]}}}],["sun",{"_index":728,"t":{"56":{"position":[[310,4]]},"136":{"position":[[19,3],[49,4],[132,3],[142,3],[319,4]]}}}],["superb",{"_index":743,"t":{"62":{"position":[[429,6]]}}}],["supercar",{"_index":987,"t":{"103":{"position":[[229,10],[275,8],[456,10]]}}}],["superset",{"_index":1128,"t":{"138":{"position":[[11,8]]},"846":{"position":[[164,8]]},"848":{"position":[[203,8]]}}}],["support",{"_index":195,"t":{"8":{"position":[[532,8]]},"16":{"position":[[472,8],[1752,8]]},"22":{"position":[[599,7],[2493,9],[2573,8]]},"32":{"position":[[308,8],[428,8],[476,8],[529,8],[670,7],[741,7],[881,7]]},"40":{"position":[[1038,7]]},"42":{"position":[[22,7],[47,8]]},"44":{"position":[[22,7]]},"46":{"position":[[20,8]]},"48":{"position":[[20,8]]},"50":{"position":[[105,7]]},"74":{"position":[[139,7],[576,7]]},"85":{"position":[[506,7]]},"97":{"position":[[88,7]]},"107":{"position":[[811,8]]},"136":{"position":[[6,8]]},"227":{"position":[[568,7]]},"229":{"position":[[37,7]]},"256":{"position":[[627,8]]},"266":{"position":[[295,8]]},"270":{"position":[[25,8]]},"272":{"position":[[67,8]]},"288":{"position":[[175,7],[960,8]]},"321":{"position":[[264,8]]},"357":{"position":[[13,7],[223,7]]},"547":{"position":[[96,9]]},"549":{"position":[[94,9]]},"858":{"position":[[18,7]]}}}],["sure",{"_index":1188,"t":{"152":{"position":[[449,4]]}}}],["sven",{"_index":1340,"t":{"250":{"position":[[906,4]]}}}],["swap",{"_index":1451,"t":{"282":{"position":[[667,4]]}}}],["switch",{"_index":178,"t":{"8":{"position":[[263,6]]},"10":{"position":[[426,6]]},"14":{"position":[[467,6],[490,6]]},"16":{"position":[[771,6]]},"18":{"position":[[35,6]]},"20":{"position":[[140,6]]},"22":{"position":[[6,6],[64,6],[908,6],[1886,6]]},"38":{"position":[[80,6],[228,6]]},"62":{"position":[[222,6]]},"68":{"position":[[537,6],[589,6]]},"95":{"position":[[48,6]]},"103":{"position":[[47,8]]},"107":{"position":[[201,7],[240,6],[400,7],[451,7],[508,7],[593,7]]},"109":{"position":[[125,6]]},"138":{"position":[[237,6]]},"152":{"position":[[177,6]]},"183":{"position":[[59,6],[91,6],[520,6]]},"286":{"position":[[0,6],[59,6]]},"288":{"position":[[22,6],[152,6],[218,6],[543,6],[807,6]]},"290":{"position":[[57,6],[176,6],[394,6]]},"292":{"position":[[149,6]]},"294":{"position":[[44,7],[77,6]]},"300":{"position":[[128,6]]}}}],["switch/cas",{"_index":774,"t":{"74":{"position":[[238,11]]}}}],["symbol",{"_index":837,"t":{"85":{"position":[[244,7]]},"146":{"position":[[140,6]]},"256":{"position":[[471,7]]},"353":{"position":[[263,7]]}}}],["symlink",{"_index":2228,"t":{"644":{"position":[[179,9]]}}}],["syntact",{"_index":767,"t":{"68":{"position":[[558,9]]},"175":{"position":[[35,13]]},"313":{"position":[[587,9]]}}}],["syntax",{"_index":405,"t":{"22":{"position":[[53,6]]},"28":{"position":[[168,6]]},"32":{"position":[[1307,6]]},"38":{"position":[[171,6]]},"40":{"position":[[85,6],[185,6],[562,6],[611,6],[641,6],[778,6]]},"42":{"position":[[213,6]]},"62":{"position":[[275,6]]},"97":{"position":[[170,6]]},"99":{"position":[[88,6],[439,6]]},"103":{"position":[[562,6]]},"138":{"position":[[220,8]]},"215":{"position":[[25,7]]},"217":{"position":[[43,6]]},"225":{"position":[[85,7]]},"227":{"position":[[586,6]]},"250":{"position":[[202,7]]},"256":{"position":[[45,6]]},"260":{"position":[[465,6]]},"262":{"position":[[31,7]]},"272":{"position":[[88,7]]},"276":{"position":[[122,6]]},"280":{"position":[[12,6]]},"290":{"position":[[162,7]]},"292":{"position":[[446,6]]},"306":{"position":[[34,6]]},"327":{"position":[[21,6]]},"347":{"position":[[117,6],[197,6]]},"351":{"position":[[17,6]]},"353":{"position":[[76,6],[89,6]]},"355":{"position":[[79,6],[92,6],[266,6]]}}}],["system",{"_index":869,"t":{"89":{"position":[[530,6]]},"97":{"position":[[406,7]]},"136":{"position":[[29,6]]},"564":{"position":[[129,7]]},"816":{"position":[[111,8]]},"876":{"position":[[139,7],[178,6]]}}}],["t",{"_index":11,"t":{"4":{"position":[[42,3]]},"165":{"position":[[98,1]]},"199":{"position":[[41,1],[248,1]]},"201":{"position":[[41,1],[273,1]]},"203":{"position":[[254,1]]},"225":{"position":[[114,1],[152,1],[279,1],[329,1]]},"229":{"position":[[381,1],[427,2],[461,2],[478,2],[512,2],[533,2],[579,2],[605,2],[670,2]]},"260":{"position":[[91,1],[252,1]]},"262":{"position":[[129,1]]},"290":{"position":[[354,1],[456,2]]},"339":{"position":[[132,1],[184,1],[356,1]]},"347":{"position":[[216,1]]},"353":{"position":[[36,1],[172,1]]},"357":{"position":[[307,2]]},"596":{"position":[[122,1]]},"598":{"position":[[160,1]]},"600":{"position":[[235,1]]},"618":{"position":[[593,1]]},"730":{"position":[[92,1],[108,1],[148,1]]},"734":{"position":[[133,1]]},"736":{"position":[[80,1]]},"738":{"position":[[111,1]]},"740":{"position":[[76,1]]},"742":{"position":[[163,1]]},"748":{"position":[[112,1],[224,2]]},"756":{"position":[[278,1]]},"766":{"position":[[330,1]]},"768":{"position":[[83,1]]},"770":{"position":[[82,1]]},"774":{"position":[[102,1]]},"776":{"position":[[132,1]]},"778":{"position":[[240,1]]},"780":{"position":[[113,1]]},"782":{"position":[[252,1]]},"814":{"position":[[120,2]]}}}],["t.age",{"_index":1244,"t":{"201":{"position":[[224,5]]},"203":{"position":[[197,5]]}}}],["t.key",{"_index":2385,"t":{"738":{"position":[[192,5]]}}}],["t.name",{"_index":1243,"t":{"201":{"position":[[205,6]]},"203":{"position":[[180,6]]}}}],["t.prop",{"_index":567,"t":{"32":{"position":[[317,8]]}}}],["t.say(\"hello",{"_index":1393,"t":{"262":{"position":[[177,14]]}}}],["t1",{"_index":2401,"t":{"752":{"position":[[180,2]]}}}],["t:chunk(3",{"_index":2443,"t":{"778":{"position":[[300,10]]}}}],["t:clear",{"_index":2383,"t":{"736":{"position":[[135,9]]}}}],["t:concat(\"\\n",{"_index":2075,"t":{"596":{"position":[[200,14]]}}}],["t:contains(1",{"_index":2074,"t":{"596":{"position":[[186,13]]}}}],["t:countvalu",{"_index":2441,"t":{"776":{"position":[[206,15]]}}}],["t:f1",{"_index":1379,"t":{"260":{"position":[[107,9]]}}}],["t:f2",{"_index":1380,"t":{"260":{"position":[[130,9]]}}}],["t:f3",{"_index":1381,"t":{"260":{"position":[[153,9]]}}}],["t:foreach(print",{"_index":2405,"t":{"756":{"position":[[294,16]]}}}],["t:getval",{"_index":1466,"t":{"290":{"position":[[412,11],[518,13]]}}}],["t:key",{"_index":2439,"t":{"774":{"position":[[184,8]]}}}],["t:reduce(|valu",{"_index":2428,"t":{"766":{"position":[[346,16]]}}}],["t:revers",{"_index":2396,"t":{"748":{"position":[[197,11]]}}}],["t:slice(2",{"_index":2448,"t":{"782":{"position":[[300,10]]}}}],["t:slice(3",{"_index":2447,"t":{"782":{"position":[[274,10]]}}}],["t:sort",{"_index":2378,"t":{"730":{"position":[[112,11]]}}}],["t=tabl",{"_index":914,"t":{"95":{"position":[[393,8]]}}}],["t[#t",{"_index":726,"t":{"56":{"position":[[271,4]]},"780":{"position":[[71,6]]}}}],["t['print",{"_index":912,"t":{"95":{"position":[[352,10]]}}}],["t\\t\\t\\t",{"_index":2495,"t":{"814":{"position":[[129,9]]}}}],["tab",{"_index":933,"t":{"97":{"position":[[240,3]]},"461":{"position":[[106,4]]}}}],["tabl",{"_index":382,"t":{"20":{"position":[[261,6]]},"22":{"position":[[426,6],[764,6],[1599,6],[1741,5],[1749,6]]},"32":{"position":[[6,5],[67,6],[131,6],[919,5],[1149,5],[1301,5]]},"34":{"position":[[225,5]]},"36":{"position":[[35,5],[385,5]]},"40":{"position":[[308,5],[767,10],[798,6],[810,5],[926,5],[1153,5],[1335,5]]},"42":{"position":[[30,6]]},"74":{"position":[[202,5],[643,5]]},"103":{"position":[[556,5]]},"163":{"position":[[96,5],[190,5],[272,7],[520,8]]},"165":{"position":[[67,5],[193,5]]},"197":{"position":[[87,6]]},"199":{"position":[[22,6]]},"201":{"position":[[22,6]]},"203":{"position":[[26,5]]},"205":{"position":[[0,5]]},"211":{"position":[[91,6]]},"225":{"position":[[51,6]]},"229":{"position":[[65,5],[221,7],[350,5]]},"231":{"position":[[40,5],[206,6]]},"233":{"position":[[65,6]]},"260":{"position":[[63,6],[224,6]]},"262":{"position":[[109,7]]},"266":{"position":[[36,5]]},"276":{"position":[[84,5]]},"278":{"position":[[50,5]]},"282":{"position":[[0,6],[149,6],[213,6],[294,6],[373,6],[554,6],[635,6],[904,6]]},"284":{"position":[[25,5]]},"298":{"position":[[46,5]]},"333":{"position":[[272,6],[307,6]]},"335":{"position":[[23,6],[105,5],[312,5]]},"339":{"position":[[58,6]]},"341":{"position":[[33,5],[136,6]]},"345":{"position":[[209,5]]},"347":{"position":[[111,5],[191,5]]},"375":{"position":[[66,7],[141,6],[211,7],[268,6]]},"377":{"position":[[70,7],[145,6],[215,7],[272,6]]},"393":{"position":[[309,6],[437,6]]},"443":{"position":[[102,5]]},"463":{"position":[[48,5]]},"465":{"position":[[10,5],[132,6],[610,5]]},"545":{"position":[[194,7]]},"560":{"position":[[211,5]]},"596":{"position":[[0,6]]},"602":{"position":[[10,5]]},"610":{"position":[[137,5],[226,5],[368,5],[1548,5]]},"618":{"position":[[75,5],[497,6]]},"620":{"position":[[174,6],[451,6],[989,8]]},"640":{"position":[[171,5]]},"668":{"position":[[82,5]]},"710":{"position":[[368,6]]},"728":{"position":[[51,5]]},"730":{"position":[[47,5]]},"732":{"position":[[45,5],[82,6],[106,6]]},"734":{"position":[[38,6],[105,5]]},"736":{"position":[[29,6],[52,5]]},"738":{"position":[[10,5],[57,5],[92,6]]},"740":{"position":[[15,5],[48,5]]},"742":{"position":[[15,5],[58,5]]},"744":{"position":[[9,5],[68,5]]},"746":{"position":[[9,5],[72,5]]},"748":{"position":[[33,6],[56,5],[93,6]]},"750":{"position":[[48,5],[85,6],[109,6]]},"752":{"position":[[32,5],[102,6],[128,6]]},"754":{"position":[[48,5],[85,6],[109,6]]},"756":{"position":[[112,6]]},"758":{"position":[[244,6],[510,6]]},"760":{"position":[[47,5],[84,6],[108,6]]},"762":{"position":[[84,6],[271,6]]},"764":{"position":[[44,5],[81,6],[105,6]]},"766":{"position":[[30,6],[137,6]]},"768":{"position":[[41,6],[64,6]]},"770":{"position":[[40,6],[63,6]]},"772":{"position":[[99,6]]},"774":{"position":[[25,5],[60,6],[83,6]]},"776":{"position":[[26,5],[91,6],[114,5]]},"778":{"position":[[16,5],[128,6]]},"780":{"position":[[30,6],[94,6]]},"782":{"position":[[14,5],[132,6],[233,6]]},"784":{"position":[[62,6]]},"786":{"position":[[62,6]]},"794":{"position":[[160,5],[183,6]]},"840":{"position":[[46,5]]},"842":{"position":[[10,5],[744,6]]}}}],["table'",{"_index":1688,"t":{"375":{"position":[[94,7]]},"377":{"position":[[98,7]]}}}],["table.back",{"_index":101,"t":{"4":{"position":[[1393,11]]}}}],["table.checkal",{"_index":322,"t":{"16":{"position":[[1410,14]]}}}],["table.chunk",{"_index":107,"t":{"4":{"position":[[1479,11]]}}}],["table.clear",{"_index":133,"t":{"6":{"position":[[81,11]]},"16":{"position":[[1304,11]]}}}],["table.concat(t",{"_index":2078,"t":{"596":{"position":[[270,15]]}}}],["table.contain",{"_index":527,"t":{"24":{"position":[[97,14]]},"68":{"position":[[423,14]]},"74":{"position":[[333,14]]}}}],["table.contains(t",{"_index":2077,"t":{"596":{"position":[[249,17]]}}}],["table.countvalu",{"_index":106,"t":{"4":{"position":[[1458,18]]}}}],["table.filt",{"_index":314,"t":{"16":{"position":[[1223,15]]},"22":{"position":[[2644,12]]},"760":{"position":[[19,13]]}}}],["table.find",{"_index":321,"t":{"16":{"position":[[1384,10]]}}}],["table.findindex/findkey",{"_index":100,"t":{"4":{"position":[[1368,24]]}}}],["table.freez",{"_index":1445,"t":{"282":{"position":[[403,14]]},"284":{"position":[[189,12]]},"738":{"position":[[115,19]]}}}],["table.freeze(_g",{"_index":1441,"t":{"282":{"position":[[220,16]]}}}],["table.freeze(t",{"_index":2384,"t":{"738":{"position":[[138,17]]},"740":{"position":[[83,15]]}}}],["table.insert",{"_index":717,"t":{"54":{"position":[[110,12]]},"56":{"position":[[207,13]]}}}],["table.key",{"_index":102,"t":{"4":{"position":[[1405,11]]}}}],["table.map",{"_index":313,"t":{"16":{"position":[[1209,13]]},"22":{"position":[[2663,9]]},"764":{"position":[[19,10]]}}}],["table.max",{"_index":320,"t":{"16":{"position":[[1358,9]]}}}],["table.min",{"_index":319,"t":{"16":{"position":[[1345,10]]},"111":{"position":[[159,10]]}}}],["table.modget",{"_index":103,"t":{"4":{"position":[[1417,13]]}}}],["table.modset",{"_index":104,"t":{"4":{"position":[[1431,13]]}}}],["table.reduc",{"_index":318,"t":{"16":{"position":[[1331,13]]}}}],["table.remov",{"_index":705,"t":{"52":{"position":[[251,14]]}}}],["table.reord",{"_index":316,"t":{"16":{"position":[[1255,16]]},"22":{"position":[[2699,13]]},"754":{"position":[[19,14]]},"758":{"position":[[166,13]]}}}],["table.revers",{"_index":315,"t":{"16":{"position":[[1239,15]]},"22":{"position":[[2679,13]]},"750":{"position":[[19,14]]}}}],["table.s",{"_index":317,"t":{"16":{"position":[[1278,10]]}}}],["table.slic",{"_index":105,"t":{"4":{"position":[[1445,12]]}}}],["table.sort",{"_index":312,"t":{"16":{"position":[[1194,14]]},"732":{"position":[[19,11]]}}}],["table.unpack(t",{"_index":1240,"t":{"199":{"position":[[193,15]]}}}],["tag",{"_index":1941,"t":{"540":{"position":[[373,4]]},"542":{"position":[[219,3],[244,3],[622,3],[785,5]]},"840":{"position":[[215,3],[244,3],[330,3]]},"842":{"position":[[388,7],[456,7],[588,7],[937,7],[1212,7],[1277,7],[1329,7]]}}}],["tail",{"_index":1668,"t":{"363":{"position":[[435,8]]},"365":{"position":[[454,8]]},"367":{"position":[[461,8]]},"369":{"position":[[573,8]]},"371":{"position":[[641,8]]},"373":{"position":[[466,8]]}}}],["tailor",{"_index":1634,"t":{"351":{"position":[[58,8]]}}}],["take",{"_index":400,"t":{"20":{"position":[[622,4]]},"46":{"position":[[112,6]]},"48":{"position":[[193,6]]},"62":{"position":[[532,4]]},"150":{"position":[[357,4]]},"227":{"position":[[317,4]]},"233":{"position":[[28,5]]},"526":{"position":[[32,4]]},"532":{"position":[[30,5]]},"610":{"position":[[2016,4]]},"672":{"position":[[16,5]]},"756":{"position":[[211,5]]},"758":{"position":[[436,5]]},"762":{"position":[[197,5],[685,4]]},"790":{"position":[[18,5]]},"792":{"position":[[18,5]]},"854":{"position":[[16,5]]}}}],["taken",{"_index":2145,"t":{"610":{"position":[[1155,5],[1207,5]]}}}],["task",{"_index":1365,"t":{"254":{"position":[[425,4]]},"276":{"position":[[17,4]]}}}],["tcp",{"_index":2157,"t":{"610":{"position":[[2066,3]]},"694":{"position":[[14,3]]},"704":{"position":[[150,4]]}}}],["tcp/80",{"_index":2373,"t":{"726":{"position":[[239,8]]}}}],["tee",{"_index":1079,"t":{"122":{"position":[[114,3],[298,3]]}}}],["tell",{"_index":1150,"t":{"142":{"position":[[57,5]]},"154":{"position":[[57,5]]}}}],["temporari",{"_index":582,"t":{"32":{"position":[[1139,9]]}}}],["termux",{"_index":1099,"t":{"126":{"position":[[26,6]]}}}],["ternari",{"_index":212,"t":{"10":{"position":[[403,7]]},"12":{"position":[[130,7]]},"14":{"position":[[111,7],[208,7]]},"24":{"position":[[39,7]]},"62":{"position":[[267,7]]},"74":{"position":[[151,7]]},"292":{"position":[[10,7]]},"304":{"position":[[0,7]]},"306":{"position":[[45,7]]},"308":{"position":[[336,7]]}}}],["test",{"_index":797,"t":{"78":{"position":[[47,6]]},"786":{"position":[[117,4]]}}}],["test.pluto:2",{"_index":1040,"t":{"111":{"position":[[334,13],[454,13]]}}}],["test.pluto:3",{"_index":1694,"t":{"375":{"position":[[551,12]]},"381":{"position":[[316,12]]},"826":{"position":[[1088,13],[1269,13]]}}}],["test.pluto:4",{"_index":1045,"t":{"111":{"position":[[484,13]]},"363":{"position":[[238,12]]},"365":{"position":[[251,12],[473,13]]},"367":{"position":[[257,12],[480,13]]},"369":{"position":[[342,12],[592,13]]},"371":{"position":[[428,12],[660,13]]},"373":{"position":[[262,12],[485,13]]},"375":{"position":[[778,12]]},"379":{"position":[[288,12]]},"383":{"position":[[301,12]]},"387":{"position":[[398,12]]},"389":{"position":[[404,12]]},"391":{"position":[[626,12],[877,12]]}}}],["test:modset(5",{"_index":2463,"t":{"786":{"position":[[136,14]]}}}],["test:modset(6",{"_index":2464,"t":{"786":{"position":[[154,14]]}}}],["text",{"_index":942,"t":{"97":{"position":[[490,4]]},"99":{"position":[[156,5]]},"195":{"position":[[134,4],[182,4],[296,4],[313,4],[324,4],[375,4]]},"610":{"position":[[1617,4]]},"648":{"position":[[281,4],[317,4],[355,5]]},"818":{"position":[[92,4]]},"840":{"position":[[311,5],[400,4]]}}}],["textmat",{"_index":971,"t":{"99":{"position":[[510,8],[591,8]]}}}],["thank",{"_index":272,"t":{"14":{"position":[[760,6]]}}}],["that'",{"_index":1443,"t":{"282":{"position":[[341,6]]}}}],["theoret",{"_index":928,"t":{"97":{"position":[[19,13]]}}}],["there'",{"_index":1103,"t":{"128":{"position":[[56,7]]},"132":{"position":[[35,7]]},"183":{"position":[[20,7]]},"296":{"position":[[282,7]]}}}],["there.\":split",{"_index":1697,"t":{"375":{"position":[[709,15],[736,15]]},"377":{"position":[[554,15],[581,15]]}}}],["therefor",{"_index":1303,"t":{"239":{"position":[[55,9]]}}}],["they'll",{"_index":1529,"t":{"313":{"position":[[604,7]]}}}],["they'r",{"_index":1338,"t":{"250":{"position":[[820,7]]},"252":{"position":[[471,7]]},"311":{"position":[[39,7]]},"319":{"position":[[245,7]]}}}],["thing",{"_index":982,"t":{"101":{"position":[[259,6]]},"211":{"position":[[58,6]]}}}],["those",{"_index":803,"t":{"78":{"position":[[149,6]]},"103":{"position":[[638,5]]},"284":{"position":[[92,5]]}}}],["though",{"_index":1595,"t":{"333":{"position":[[43,7]]},"341":{"position":[[187,7]]}}}],["thread",{"_index":858,"t":{"89":{"position":[[112,7],[207,7],[1008,6]]},"686":{"position":[[97,6]]}}}],["three",{"_index":1542,"t":{"321":{"position":[[42,5]]},"604":{"position":[[11,5]]},"820":{"position":[[121,5],[332,5]]}}}],["through",{"_index":264,"t":{"14":{"position":[[459,7]]},"288":{"position":[[403,7]]},"292":{"position":[[411,8]]},"311":{"position":[[93,7]]},"341":{"position":[[209,7]]},"375":{"position":[[240,7]]},"377":{"position":[[244,7]]},"644":{"position":[[171,7]]}}}],["throw",{"_index":750,"t":{"64":{"position":[[69,8]]},"250":{"position":[[360,5]]},"473":{"position":[[176,6]]},"530":{"position":[[322,6]]},"536":{"position":[[259,6]]},"542":{"position":[[324,6]]},"678":{"position":[[161,6]]}}}],["thrown",{"_index":1660,"t":{"363":{"position":[[107,6]]},"365":{"position":[[110,6]]},"367":{"position":[[112,6]]},"369":{"position":[[161,6]]},"371":{"position":[[245,6]]},"373":{"position":[[116,6]]},"375":{"position":[[401,6]]},"377":{"position":[[405,6]]},"379":{"position":[[138,6]]},"381":{"position":[[150,6]]},"383":{"position":[[142,6]]},"385":{"position":[[154,6]]},"387":{"position":[[217,6]]},"389":{"position":[[213,6]]},"391":{"position":[[323,6]]},"393":{"position":[[474,6]]},"469":{"position":[[60,6]]},"778":{"position":[[187,6]]},"818":{"position":[[452,6]]},"826":{"position":[[676,7]]}}}],["thu",{"_index":1151,"t":{"142":{"position":[[142,4]]},"154":{"position":[[155,4]]}}}],["tick",{"_index":873,"t":{"89":{"position":[[577,5]]}}}],["time",{"_index":170,"t":{"8":{"position":[[187,4]]},"16":{"position":[[740,4]]},"18":{"position":[[195,4]]},"22":{"position":[[1179,4]]},"30":{"position":[[116,4],[173,4]]},"32":{"position":[[368,4]]},"40":{"position":[[58,4],[104,4]]},"44":{"position":[[38,4]]},"46":{"position":[[37,4]]},"48":{"position":[[147,4]]},"50":{"position":[[465,4]]},"74":{"position":[[14,4],[358,4]]},"87":{"position":[[72,4]]},"113":{"position":[[71,5]]},"146":{"position":[[60,5],[117,5],[349,4]]},"148":{"position":[[8,4],[275,4],[378,4]]},"150":{"position":[[123,4]]},"163":{"position":[[396,4]]},"165":{"position":[[56,5]]},"177":{"position":[[496,4]]},"179":{"position":[[446,4]]},"181":{"position":[[443,4]]},"189":{"position":[[61,4]]},"319":{"position":[[459,5]]},"335":{"position":[[223,5]]},"337":{"position":[[68,5]]},"341":{"position":[[73,5]]},"349":{"position":[[60,4]]},"610":{"position":[[1150,4],[1202,4]]},"652":{"position":[[33,5],[252,4],[302,4],[333,4],[370,5],[455,4]]},"688":{"position":[[37,5]]},"776":{"position":[[57,5]]}}}],["times33",{"_index":1858,"t":{"498":{"position":[[24,7]]}}}],["timestamp",{"_index":2243,"t":{"652":{"position":[[93,10]]}}}],["tip",{"_index":1644,"t":{"357":{"position":[[171,3]]}}}],["tl",{"_index":224,"t":{"10":{"position":[[636,3]]},"610":{"position":[[2074,3]]},"704":{"position":[[179,4]]},"710":{"position":[[20,3],[98,3],[649,4]]}}}],["tmbundl",{"_index":969,"t":{"99":{"position":[[482,8]]}}}],["today",{"_index":1520,"t":{"311":{"position":[[113,6]]}}}],["togeth",{"_index":1279,"t":{"227":{"position":[[525,10]]},"298":{"position":[[304,9]]},"421":{"position":[[17,9]]}}}],["toggl",{"_index":566,"t":{"32":{"position":[[189,6],[253,6]]},"97":{"position":[[294,7],[312,7]]}}}],["token",{"_index":565,"t":{"32":{"position":[[169,6]]},"56":{"position":[[93,6]]},"107":{"position":[[47,6]]},"347":{"position":[[33,6],[154,6],[267,6],[506,6]]}}}],["tokenis",{"_index":731,"t":{"60":{"position":[[17,8]]}}}],["toler",{"_index":1494,"t":{"298":{"position":[[498,9]]}}}],["tomato",{"_index":1506,"t":{"300":{"position":[[277,8]]}}}],["tonumb",{"_index":1172,"t":{"146":{"position":[[711,8]]},"762":{"position":[[534,8]]}}}],["tonumber(a",{"_index":1485,"t":{"296":{"position":[[169,11]]}}}],["tonumber(b",{"_index":1486,"t":{"296":{"position":[[183,11]]}}}],["tonumber(c",{"_index":1273,"t":{"227":{"position":[[148,11],[256,11]]}}}],["tonumber|16",{"_index":1583,"t":{"325":{"position":[[145,12]]}}}],["tool",{"_index":855,"t":{"87":{"position":[[424,5]]},"97":{"position":[[56,8]]}}}],["top",{"_index":997,"t":{"105":{"position":[[261,3]]},"211":{"position":[[401,3]]},"467":{"position":[[97,3]]},"530":{"position":[[435,3]]},"536":{"position":[[372,3]]},"542":{"position":[[446,3]]},"586":{"position":[[94,3]]},"622":{"position":[[90,3]]},"656":{"position":[[92,3]]},"684":{"position":[[90,3]]},"728":{"position":[[93,3]]},"788":{"position":[[94,3]]}}}],["tostr",{"_index":1171,"t":{"146":{"position":[[692,8]]},"391":{"position":[[589,9]]}}}],["tostring(bvar",{"_index":1622,"t":{"343":{"position":[[166,15]]}}}],["total",{"_index":831,"t":{"85":{"position":[[46,7]]},"87":{"position":[[216,5]]}}}],["toward",{"_index":2200,"t":{"628":{"position":[[109,7]]},"632":{"position":[[88,6]]},"634":{"position":[[88,7]]},"636":{"position":[[88,7]]}}}],["trace",{"_index":1567,"t":{"323":{"position":[[384,5]]}}}],["traceback",{"_index":1043,"t":{"111":{"position":[[414,10]]},"363":{"position":[[330,10]]},"365":{"position":[[349,10]]},"367":{"position":[[356,10]]},"369":{"position":[[468,10]]},"371":{"position":[[536,10]]},"373":{"position":[[361,10]]},"826":{"position":[[1222,10]]}}}],["tradit",{"_index":2238,"t":{"648":{"position":[[415,11]]}}}],["traffic",{"_index":2338,"t":{"710":{"position":[[102,8]]}}}],["transit",{"_index":1049,"t":{"111":{"position":[[664,11]]}}}],["transport",{"_index":2318,"t":{"704":{"position":[[134,9]]},"710":{"position":[[63,9]]}}}],["tri",{"_index":984,"t":{"103":{"position":[[100,4]]},"107":{"position":[[645,4]]},"278":{"position":[[489,3]]},"282":{"position":[[657,6]]},"300":{"position":[[375,3]]},"302":{"position":[[80,4]]},"304":{"position":[[211,3]]},"335":{"position":[[393,3]]},"473":{"position":[[193,3]]}}}],["trigger",{"_index":253,"t":{"14":{"position":[[250,10]]}}}],["trim",{"_index":2476,"t":{"798":{"position":[[10,5]]},"800":{"position":[[10,5]]},"802":{"position":[[10,5]]}}}],["true",{"_index":347,"t":{"16":{"position":[[2129,4]]},"68":{"position":[[507,4]]},"89":{"position":[[414,4],[486,4]]},"93":{"position":[[216,5]]},"150":{"position":[[164,4]]},"278":{"position":[[235,4],[305,4],[356,4],[479,4]]},"288":{"position":[[766,5]]},"290":{"position":[[64,4],[106,6]]},"308":{"position":[[12,4],[138,4]]},"319":{"position":[[562,4]]},"321":{"position":[[482,4],[506,4]]},"343":{"position":[[117,4]]},"365":{"position":[[22,5],[74,5],[133,4],[316,4]]},"367":{"position":[[345,4]]},"397":{"position":[[132,5]]},"403":{"position":[[131,5]]},"513":{"position":[[107,5],[343,5]]},"515":{"position":[[109,5],[373,5]]},"517":{"position":[[109,5]]},"519":{"position":[[109,5]]},"521":{"position":[[112,5]]},"557":{"position":[[1085,4]]},"590":{"position":[[77,4]]},"610":{"position":[[768,5]]},"618":{"position":[[272,6],[388,6]]},"620":{"position":[[701,5],[897,5],[1261,5]]},"710":{"position":[[549,4]]},"718":{"position":[[215,4]]},"720":{"position":[[154,4]]},"726":{"position":[[75,5]]},"740":{"position":[[127,5]]},"772":{"position":[[56,4]]},"804":{"position":[[155,4]]},"806":{"position":[[156,4]]},"808":{"position":[[157,4]]},"810":{"position":[[156,4]]},"812":{"position":[[162,4]]},"814":{"position":[[173,4]]},"820":{"position":[[611,6]]},"822":{"position":[[170,4]]},"824":{"position":[[216,4]]},"828":{"position":[[681,5]]},"830":{"position":[[176,4]]},"832":{"position":[[180,4]]},"834":{"position":[[336,6],[378,6]]},"840":{"position":[[351,6]]},"860":{"position":[[158,4]]}}}],["true):concat",{"_index":2422,"t":{"762":{"position":[[454,14]]}}}],["true):reorder():concat",{"_index":2413,"t":{"758":{"position":[[676,24]]}}}],["truncat",{"_index":1351,"t":{"252":{"position":[[436,8]]},"820":{"position":[[0,9],[101,10],[222,9],[258,9],[380,10],[430,9]]}}}],["truthi",{"_index":1539,"t":{"319":{"position":[[143,6],[337,6]]},"371":{"position":[[24,8],[116,7],[170,7],[268,7]]}}}],["trxvv4l94u0tcfo19vytv6t4boh/mla6kfucaweaaqjanctrfzwpgd99wxkm6ufq",{"_index":1965,"t":{"547":{"position":[[519,64]]},"549":{"position":[[296,64]]}}}],["try...catch",{"_index":407,"t":{"22":{"position":[[121,11]]}}}],["try/catch",{"_index":248,"t":{"14":{"position":[[9,9]]}}}],["try_get_fruit_rating(fruit",{"_index":1509,"t":{"300":{"position":[[347,27]]}}}],["turn",{"_index":1165,"t":{"146":{"position":[[400,5]]},"183":{"position":[[474,4]]},"674":{"position":[[30,4]]},"762":{"position":[[555,4]]}}}],["tweak",{"_index":719,"t":{"54":{"position":[[172,6]]}}}],["two",{"_index":1015,"t":{"107":{"position":[[1258,3]]},"150":{"position":[[308,3]]},"243":{"position":[[12,3]]},"288":{"position":[[109,6],[624,6],[685,4]]},"421":{"position":[[5,3]]},"423":{"position":[[24,3]]},"425":{"position":[[27,3]]},"427":{"position":[[21,3],[42,3]]},"429":{"position":[[21,3]]},"431":{"position":[[20,3]]},"433":{"position":[[28,3]]},"540":{"position":[[322,3]]},"545":{"position":[[190,3]]},"824":{"position":[[9,3]]},"828":{"position":[[257,3]]}}}],["type",{"_index":185,"t":{"8":{"position":[[356,4],[392,4]]},"22":{"position":[[1290,5],[2000,5]]},"24":{"position":[[170,5]]},"32":{"position":[[485,4],[727,4]]},"36":{"position":[[41,5]]},"40":{"position":[[1371,4],[1405,4],[1462,4],[1492,4]]},"54":{"position":[[60,4]]},"68":{"position":[[287,4]]},"97":{"position":[[219,4]]},"111":{"position":[[765,4],[910,4]]},"130":{"position":[[476,5]]},"138":{"position":[[326,4]]},"163":{"position":[[328,4]]},"167":{"position":[[24,4],[71,5],[81,4],[174,4],[188,5],[250,4]]},"177":{"position":[[428,4]]},"179":{"position":[[378,4]]},"181":{"position":[[375,4]]},"189":{"position":[[26,4]]},"191":{"position":[[164,4],[272,4],[466,5]]},"227":{"position":[[632,4]]},"241":{"position":[[347,4]]},"296":{"position":[[0,4],[262,4]]},"298":{"position":[[74,4],[117,6]]},"321":{"position":[[254,4]]},"345":{"position":[[28,5],[215,6]]},"393":{"position":[[126,4],[167,4],[335,5],[569,4]]},"566":{"position":[[88,4]]},"568":{"position":[[26,4],[78,4]]},"572":{"position":[[35,5],[67,4]]},"574":{"position":[[48,5],[80,4]]},"576":{"position":[[47,4]]},"580":{"position":[[51,5]]},"582":{"position":[[57,5],[79,5]]},"610":{"position":[[403,6]]},"620":{"position":[[27,6],[116,5],[645,4],[807,4]]},"840":{"position":[[274,8]]},"842":{"position":[[512,8]]}}}],["type(",{"_index":2056,"t":{"580":{"position":[[195,8]]}}}],["type=\"primari",{"_index":2553,"t":{"840":{"position":[[380,15]]},"842":{"position":[[296,15]]}}}],["typo",{"_index":1216,"t":{"175":{"position":[[155,5]]}}}],["u16",{"_index":2051,"t":{"580":{"position":[[105,6],[252,6]]},"582":{"position":[[133,6]]}}}],["u32",{"_index":2052,"t":{"580":{"position":[[112,6],[259,6]]},"582":{"position":[[140,6]]}}}],["u64",{"_index":2053,"t":{"580":{"position":[[119,6],[266,6]]},"582":{"position":[[147,6]]}}}],["u8",{"_index":2050,"t":{"580":{"position":[[99,5],[246,5]]},"582":{"position":[[127,5]]}}}],["ub",{"_index":245,"t":{"12":{"position":[[322,2]]},"14":{"position":[[676,2]]},"48":{"position":[[226,2]]}}}],["ubuntu",{"_index":1096,"t":{"122":{"position":[[663,6]]}}}],["uez/si52jgp8+xk2x7coix5/tdmxcglp5utuajk2+q",{"_index":1970,"t":{"547":{"position":[[844,44]]},"549":{"position":[[621,44]]}}}],["ugli",{"_index":1378,"t":{"260":{"position":[[34,4]]}}}],["uh",{"_index":1458,"t":{"288":{"position":[[694,2]]}}}],["uint8_t",{"_index":2035,"t":{"566":{"position":[[192,7],[203,7],[214,7]]},"570":{"position":[[177,7],[188,7],[199,7]]}}}],["un1g04+cwg8wxydpslj4po/hstqsitgykycrur+m3ae6yplyucrvhc/0j4m3dew81adzvda6tvkc/ht8edyefw",{"_index":1994,"t":{"557":{"position":[[932,88]]}}}],["unannot",{"_index":283,"t":{"16":{"position":[[176,12]]},"183":{"position":[[213,12]]}}}],["unari",{"_index":242,"t":{"12":{"position":[[224,5]]},"44":{"position":[[63,5],[83,5]]},"48":{"position":[[29,5],[48,5]]},"826":{"position":[[293,5]]},"862":{"position":[[57,5]]}}}],["unauthent",{"_index":1904,"t":{"526":{"position":[[6,15]]},"532":{"position":[[5,15]]}}}],["unavail",{"_index":1430,"t":{"278":{"position":[[660,11]]},"724":{"position":[[186,12]]}}}],["unchang",{"_index":349,"t":{"16":{"position":[[2155,10]]},"26":{"position":[[159,9]]}}}],["under",{"_index":995,"t":{"105":{"position":[[176,5]]},"124":{"position":[[37,5]]},"126":{"position":[[57,5]]},"278":{"position":[[672,5]]},"333":{"position":[[19,5]]},"816":{"position":[[50,5]]},"818":{"position":[[459,5]]}}}],["underli",{"_index":1900,"t":{"524":{"position":[[87,10]]}}}],["underscor",{"_index":1305,"t":{"245":{"position":[[12,11],[150,11]]}}}],["understand",{"_index":1727,"t":{"393":{"position":[[111,10],[152,10]]}}}],["unexpect",{"_index":217,"t":{"10":{"position":[[535,10]]},"24":{"position":[[6,10]]},"54":{"position":[[141,10]]},"111":{"position":[[183,10]]}}}],["unexpectedli",{"_index":204,"t":{"10":{"position":[[179,12]]}}}],["unfamiliar",{"_index":1163,"t":{"146":{"position":[[325,10]]}}}],["unfinish",{"_index":684,"t":{"48":{"position":[[243,10]]}}}],["unicod",{"_index":1794,"t":{"459":{"position":[[38,7]]}}}],["uniniti",{"_index":258,"t":{"14":{"position":[[328,13],[522,13]]}}}],["unintuit",{"_index":2256,"t":{"658":{"position":[[180,12]]}}}],["uniqu",{"_index":1907,"t":{"526":{"position":[[74,6]]}}}],["unit",{"_index":2608,"t":{"874":{"position":[[41,4]]}}}],["univers",{"_index":1650,"t":{"359":{"position":[[32,9]]}}}],["unix",{"_index":2244,"t":{"652":{"position":[[278,4]]},"690":{"position":[[22,4]]}}}],["unknown",{"_index":715,"t":{"54":{"position":[[52,7]]},"592":{"position":[[119,10]]}}}],["unless",{"_index":2129,"t":{"610":{"position":[[560,6]]}}}],["unlik",{"_index":1375,"t":{"256":{"position":[[658,6]]}}}],["unpack",{"_index":2088,"t":{"598":{"position":[[395,10]]}}}],["unpad",{"_index":1939,"t":{"540":{"position":[[93,8]]},"542":{"position":[[361,9]]}}}],["unpredict",{"_index":1908,"t":{"526":{"position":[[85,13]]}}}],["unreach",{"_index":252,"t":{"14":{"position":[[233,11]]},"22":{"position":[[1825,11]]},"28":{"position":[[56,12]]},"62":{"position":[[161,11]]},"169":{"position":[[155,11],[172,12]]}}}],["unreason",{"_index":1320,"t":{"250":{"position":[[99,12]]}}}],["until",{"_index":388,"t":{"20":{"position":[[341,7]]},"676":{"position":[[90,5]]},"678":{"position":[[106,5]]},"724":{"position":[[47,5]]}}}],["unwant",{"_index":378,"t":{"20":{"position":[[173,8]]},"183":{"position":[[192,8]]}}}],["up",{"_index":989,"t":{"103":{"position":[[328,2]]},"150":{"position":[[362,2]]},"335":{"position":[[362,2]]},"341":{"position":[[284,2]]},"670":{"position":[[72,2]]},"698":{"position":[[98,2]]},"828":{"position":[[446,4],[555,5],[629,4],[743,6]]},"854":{"position":[[22,2]]},"876":{"position":[[98,2],[175,2],[198,2],[257,3],[280,3],[391,3],[404,2],[477,3],[567,3],[671,3],[773,3],[875,3],[965,3]]},"878":{"position":[[182,3]]},"880":{"position":[[169,3],[182,2],[273,3],[393,3]]}}}],["updat",{"_index":276,"t":{"14":{"position":[[828,6]]},"22":{"position":[[741,7],[2958,7]]},"26":{"position":[[0,7]]},"50":{"position":[[181,7]]},"60":{"position":[[0,7]]},"122":{"position":[[365,6]]},"762":{"position":[[134,7]]},"766":{"position":[[187,7]]},"786":{"position":[[0,7]]}}}],["upgrad",{"_index":654,"t":{"40":{"position":[[1611,9]]}}}],["upon",{"_index":1260,"t":{"219":{"position":[[83,4]]}}}],["upper",{"_index":2536,"t":{"834":{"position":[[199,5]]}}}],["uppercas",{"_index":2490,"t":{"810":{"position":[[43,9],[201,9]]}}}],["upvalu",{"_index":263,"t":{"14":{"position":[[398,8]]},"34":{"position":[[147,7]]}}}],["upward",{"_index":1611,"t":{"337":{"position":[[152,7]]}}}],["urgent",{"_index":2298,"t":{"682":{"position":[[399,7]]}}}],["url",{"_index":459,"t":{"22":{"position":[[2212,3]]},"323":{"position":[[556,7]]},"610":{"position":[[42,3],[203,5],[276,3]]},"612":{"position":[[140,3]]},"846":{"position":[[10,3],[80,3]]},"848":{"position":[[28,3],[109,3]]},"850":{"position":[[9,3],[57,3],[90,3]]}}}],["url.pars",{"_index":330,"t":{"16":{"position":[[1691,9]]}}}],["us",{"_index":38,"t":{"4":{"position":[[414,5],[640,4],[1020,4],[1700,4]]},"10":{"position":[[30,4],[232,5],[598,4]]},"16":{"position":[[418,4],[526,4],[567,4],[614,4],[2459,5]]},"20":{"position":[[358,5]]},"22":{"position":[[1103,3],[1249,4],[1878,4]]},"24":{"position":[[31,5]]},"32":{"position":[[613,3],[806,4],[994,4],[1129,4],[1281,4]]},"38":{"position":[[31,5],[212,4],[241,5]]},"40":{"position":[[1142,3],[1905,5]]},"56":{"position":[[107,4],[304,5]]},"60":{"position":[[126,3]]},"62":{"position":[[242,3]]},"66":{"position":[[86,4]]},"83":{"position":[[120,4],[508,3]]},"85":{"position":[[188,4]]},"97":{"position":[[36,4]]},"101":{"position":[[99,4],[168,4]]},"103":{"position":[[155,4],[331,5],[388,4],[630,4]]},"107":{"position":[[83,5],[702,3],[922,3],[1189,4],[1240,3],[1589,4]]},"109":{"position":[[15,5]]},"111":{"position":[[747,3]]},"115":{"position":[[51,3],[122,5]]},"128":{"position":[[204,3]]},"136":{"position":[[91,3],[224,3]]},"146":{"position":[[126,5]]},"150":{"position":[[111,3]]},"152":{"position":[[49,4],[165,4]]},"156":{"position":[[16,3]]},"163":{"position":[[380,3]]},"173":{"position":[[307,5]]},"177":{"position":[[302,3],[480,3]]},"179":{"position":[[240,3],[265,3],[430,3]]},"181":{"position":[[427,3]]},"183":{"position":[[440,4]]},"191":{"position":[[492,4]]},"199":{"position":[[133,5]]},"201":{"position":[[148,5]]},"203":{"position":[[126,5]]},"205":{"position":[[27,4],[85,5]]},"207":{"position":[[35,4],[148,4]]},"213":{"position":[[16,3]]},"217":{"position":[[53,5]]},"223":{"position":[[16,3]]},"225":{"position":[[66,3],[459,5]]},"227":{"position":[[451,5]]},"229":{"position":[[213,4]]},"235":{"position":[[41,3],[362,3]]},"237":{"position":[[8,3],[70,3]]},"250":{"position":[[723,3],[781,4]]},"252":{"position":[[64,3],[483,4]]},"254":{"position":[[82,5]]},"260":{"position":[[440,3]]},"262":{"position":[[47,3]]},"268":{"position":[[47,4]]},"272":{"position":[[390,3]]},"278":{"position":[[31,4],[381,4]]},"284":{"position":[[149,3]]},"288":{"position":[[434,3],[997,3]]},"290":{"position":[[22,4]]},"294":{"position":[[16,3]]},"298":{"position":[[192,3]]},"302":{"position":[[16,3]]},"308":{"position":[[322,5]]},"313":{"position":[[259,4],[290,4],[350,4],[384,4]]},"317":{"position":[[647,3]]},"347":{"position":[[20,3],[493,3]]},"349":{"position":[[48,3]]},"359":{"position":[[22,4],[74,4]]},"393":{"position":[[57,5],[588,4]]},"413":{"position":[[66,3]]},"465":{"position":[[654,4]]},"473":{"position":[[131,4]]},"478":{"position":[[14,5]]},"480":{"position":[[14,5]]},"482":{"position":[[14,5]]},"484":{"position":[[14,5]]},"486":{"position":[[14,5]]},"488":{"position":[[14,5]]},"490":{"position":[[14,5]]},"492":{"position":[[14,5]]},"494":{"position":[[14,5]]},"496":{"position":[[14,5]]},"498":{"position":[[14,5]]},"500":{"position":[[14,5]]},"502":{"position":[[14,5]]},"504":{"position":[[14,5]]},"506":{"position":[[14,5]]},"508":{"position":[[14,5]]},"510":{"position":[[14,5]]},"513":{"position":[[14,5]]},"515":{"position":[[14,5]]},"517":{"position":[[14,5]]},"519":{"position":[[14,5]]},"521":{"position":[[14,5]]},"545":{"position":[[307,4]]},"547":{"position":[[77,4]]},"549":{"position":[[75,4]]},"551":{"position":[[159,4],[190,4]]},"553":{"position":[[160,4]]},"555":{"position":[[97,4]]},"564":{"position":[[580,4]]},"576":{"position":[[21,4]]},"582":{"position":[[41,5]]},"610":{"position":[[335,4],[814,6],[1073,6],[1404,6],[2093,3]]},"612":{"position":[[222,5]]},"618":{"position":[[786,4]]},"648":{"position":[[402,3]]},"668":{"position":[[648,4]]},"670":{"position":[[53,4]]},"674":{"position":[[22,4]]},"680":{"position":[[53,4]]},"710":{"position":[[643,5]]},"724":{"position":[[117,4]]},"758":{"position":[[160,5]]},"762":{"position":[[526,3],[708,4]]},"782":{"position":[[97,4]]},"826":{"position":[[482,4]]},"834":{"position":[[138,5]]},"842":{"position":[[111,3],[726,4],[849,3]]},"862":{"position":[[49,3]]},"876":{"position":[[188,5]]}}}],["usabl",{"_index":240,"t":{"12":{"position":[[210,6]]},"22":{"position":[[649,6]]}}}],["usag",{"_index":35,"t":{"4":{"position":[[372,5]]},"40":{"position":[[627,5]]},"177":{"position":[[198,5]]},"181":{"position":[[176,5]]},"217":{"position":[[14,5]]},"250":{"position":[[216,5],[440,5]]},"321":{"position":[[314,5]]},"329":{"position":[[102,5]]},"826":{"position":[[684,5]]}}}],["user",{"_index":41,"t":{"4":{"position":[[451,4]]},"22":{"position":[[2538,4]]},"36":{"position":[[107,4]]},"89":{"position":[[134,5],[946,4],[976,5]]},"105":{"position":[[5,5],[285,6]]},"124":{"position":[[21,4]]},"284":{"position":[[213,5]]},"323":{"position":[[283,6]]},"357":{"position":[[187,6]]},"562":{"position":[[68,6]]},"850":{"position":[[250,8]]}}}],["user'",{"_index":1332,"t":{"250":{"position":[[534,6]]}}}],["user_data",{"_index":775,"t":{"74":{"position":[[267,9]]}}}],["userconfig",{"_index":1331,"t":{"250":{"position":[[463,10]]}}}],["userconfig.colors?.pref",{"_index":1335,"t":{"250":{"position":[[632,28]]}}}],["userdata",{"_index":1491,"t":{"298":{"position":[[52,8]]}}}],["usernam",{"_index":2570,"t":{"850":{"position":[[271,11]]}}}],["usr/share/keyrings/calam",{"_index":1080,"t":{"122":{"position":[[118,28]]}}}],["usual",{"_index":859,"t":{"89":{"position":[[120,7]]},"724":{"position":[[129,6]]}}}],["utf",{"_index":679,"t":{"46":{"position":[[119,3]]},"48":{"position":[[200,3]]}}}],["utf8.cod",{"_index":706,"t":{"52":{"position":[[266,12]]}}}],["utonumb",{"_index":650,"t":{"40":{"position":[[1521,10]]},"146":{"position":[[720,9]]}}}],["utostr",{"_index":651,"t":{"40":{"position":[[1532,10]]},"146":{"position":[[701,9]]}}}],["v",{"_index":1108,"t":{"130":{"position":[[88,2]]},"219":{"position":[[174,1],[206,2]]},"357":{"position":[[283,2]]},"756":{"position":[[228,3],[259,6]]},"758":{"position":[[453,3],[484,6],[567,1],[662,2],[673,2]]},"762":{"position":[[214,3],[245,6],[343,1],[441,2],[451,2]]},"784":{"position":[[168,1]]},"814":{"position":[[123,2]]}}}],["v3",{"_index":2626,"t":{"878":{"position":[[102,2]]}}}],["v3(0",{"_index":2628,"t":{"878":{"position":[[158,5]]}}}],["v3(0):lookat(new",{"_index":2627,"t":{"878":{"position":[[141,16]]}}}],["valid",{"_index":423,"t":{"22":{"position":[[815,5]]},"68":{"position":[[164,5]]},"109":{"position":[[203,6]]},"177":{"position":[[51,5]]},"179":{"position":[[44,5]]},"250":{"position":[[833,5]]},"538":{"position":[[68,9]]},"557":{"position":[[254,9]]},"600":{"position":[[32,5]]},"710":{"position":[[500,5]]},"826":{"position":[[1181,5]]}}}],["valu",{"_index":140,"t":{"6":{"position":[[156,6]]},"8":{"position":[[554,5]]},"14":{"position":[[278,6],[627,6]]},"16":{"position":[[2109,5]]},"22":{"position":[[780,6],[1072,6],[1331,5]]},"32":{"position":[[466,5]]},"40":{"position":[[697,10]]},"44":{"position":[[317,6]]},"46":{"position":[[74,5]]},"48":{"position":[[69,5]]},"50":{"position":[[23,6]]},"95":{"position":[[38,5],[55,5]]},"111":{"position":[[882,6]]},"142":{"position":[[130,5]]},"148":{"position":[[392,5]]},"154":{"position":[[143,5]]},"165":{"position":[[119,5],[136,5],[224,5],[286,5]]},"167":{"position":[[297,6]]},"187":{"position":[[31,5],[228,5]]},"195":{"position":[[76,6]]},"199":{"position":[[95,5]]},"219":{"position":[[285,10]]},"225":{"position":[[39,6],[157,5],[320,5]]},"229":{"position":[[258,7],[330,7],[362,6],[403,7],[539,7],[554,5],[645,5]]},"241":{"position":[[84,5],[220,5]]},"252":{"position":[[461,6]]},"256":{"position":[[137,5],[306,5]]},"276":{"position":[[62,5]]},"282":{"position":[[505,6],[583,8],[676,5],[736,5]]},"288":{"position":[[12,5],[29,5],[208,5],[225,5],[533,5],[550,5],[797,5],[814,5]]},"290":{"position":[[183,5]]},"292":{"position":[[72,7],[519,5]]},"308":{"position":[[166,6]]},"317":{"position":[[54,6]]},"319":{"position":[[150,6],[190,6],[344,6],[384,6]]},"321":{"position":[[105,6],[367,6],[438,6]]},"323":{"position":[[827,6]]},"327":{"position":[[152,5]]},"333":{"position":[[373,6]]},"339":{"position":[[175,5],[200,6],[399,5],[430,6]]},"341":{"position":[[181,5]]},"343":{"position":[[40,6],[74,7]]},"363":{"position":[[13,5],[38,5],[50,5],[121,5],[295,6],[315,6]]},"365":{"position":[[13,5],[40,5],[52,5],[120,5],[309,6],[330,6]]},"367":{"position":[[13,5],[41,5],[53,5],[122,5],[316,6],[338,6]]},"369":{"position":[[13,5],[32,6],[55,5],[90,5],[102,5],[171,5],[399,6],[428,6]]},"371":{"position":[[13,5],[33,6],[83,5],[136,5],[148,5],[255,5],[283,5],[486,6],[519,6]]},"373":{"position":[[13,5],[43,5],[55,5],[126,5],[320,6],[344,6]]},"375":{"position":[[337,6],[364,6],[608,6],[651,6],[835,6],[903,6]]},"377":{"position":[[341,6],[368,6]]},"413":{"position":[[112,5]]},"463":{"position":[[148,7],[175,6],[213,5],[240,5]]},"465":{"position":[[268,5],[291,5],[343,9],[372,7],[484,9],[518,7],[697,5],[746,5]]},"492":{"position":[[111,5]]},"494":{"position":[[114,5]]},"545":{"position":[[149,6],[320,7]]},"582":{"position":[[17,5],[233,6]]},"584":{"position":[[25,6]]},"598":{"position":[[34,6],[86,5],[141,6]]},"600":{"position":[[71,5],[129,5]]},"618":{"position":[[723,5],[811,7]]},"620":{"position":[[263,6],[373,6]]},"624":{"position":[[87,7]]},"626":{"position":[[87,7]]},"738":{"position":[[200,7]]},"742":{"position":[[193,7],[262,8]]},"744":{"position":[[45,6]]},"748":{"position":[[156,7],[325,8],[441,8]]},"756":{"position":[[253,5]]},"758":{"position":[[137,5],[478,5]]},"762":{"position":[[26,6],[142,7],[239,5]]},"766":{"position":[[10,5],[220,5],[379,5]]},"768":{"position":[[21,5]]},"770":{"position":[[20,5]]},"776":{"position":[[14,5],[65,5],[177,7],[196,7],[263,9]]},"778":{"position":[[41,6]]},"786":{"position":[[91,5]]},"818":{"position":[[314,5]]},"866":{"position":[[12,5],[42,6]]},"868":{"position":[[12,5],[43,6]]},"872":{"position":[[64,6]]},"876":{"position":[[248,6]]}}}],["value(",{"_index":923,"t":{"95":{"position":[[599,8]]}}}],["value1",{"_index":1687,"t":{"375":{"position":[[13,6],[318,6],[411,6]]},"377":{"position":[[13,6],[322,6],[415,6]]},"379":{"position":[[13,6],[53,6],[148,6]]},"381":{"position":[[13,6],[65,6],[160,6]]},"383":{"position":[[13,6],[56,6],[152,6]]},"385":{"position":[[13,6],[68,6],[164,6]]},"774":{"position":[[119,9]]}}}],["value2",{"_index":387,"t":{"20":{"position":[[328,6]]},"375":{"position":[[32,7],[344,6],[433,7]]},"377":{"position":[[36,7],[348,6],[433,7]]},"379":{"position":[[33,7],[80,6],[172,7]]},"381":{"position":[[45,7],[92,6],[196,7]]},"383":{"position":[[36,7],[83,6],[179,7]]},"385":{"position":[[48,7],[95,6],[203,7]]},"774":{"position":[[140,9]]}}}],["var",{"_index":390,"t":{"20":{"position":[[416,3]]},"22":{"position":[[1442,3],[1756,3],[1848,3]]},"161":{"position":[[94,3],[111,3],[185,4],[208,3],[290,5]]},"167":{"position":[[107,4],[123,3],[208,3],[244,5]]},"191":{"position":[[313,3],[352,3],[369,3],[410,3]]},"193":{"position":[[139,3],[189,3]]},"296":{"position":[[42,4]]}}}],["vararg",{"_index":392,"t":{"20":{"position":[[445,6]]},"40":{"position":[[251,7],[293,7]]},"95":{"position":[[246,7]]},"171":{"position":[[58,6]]},"233":{"position":[[34,7],[241,8]]}}}],["varargprep",{"_index":907,"t":{"95":{"position":[[217,10]]}}}],["variabl",{"_index":259,"t":{"14":{"position":[[342,9],[536,9]]},"16":{"position":[[823,8]]},"18":{"position":[[6,8]]},"20":{"position":[[366,8]]},"22":{"position":[[883,9],[1307,9]]},"32":{"position":[[703,8]]},"44":{"position":[[52,10]]},"46":{"position":[[51,9]]},"52":{"position":[[209,8]]},"62":{"position":[[246,10]]},"74":{"position":[[782,8]]},"107":{"position":[[1625,8]]},"148":{"position":[[22,9],[253,8],[342,8]]},"163":{"position":[[74,9]]},"167":{"position":[[165,8]]},"179":{"position":[[22,8]]},"197":{"position":[[46,9]]},"199":{"position":[[104,9]]},"201":{"position":[[122,8]]},"203":{"position":[[101,10]]},"207":{"position":[[69,10]]},"268":{"position":[[77,9]]},"272":{"position":[[588,8]]},"282":{"position":[[881,8]]},"333":{"position":[[107,8],[163,8],[214,9]]},"347":{"position":[[437,8]]},"349":{"position":[[199,9]]},"658":{"position":[[118,8]]}}}],["variant",{"_index":310,"t":{"16":{"position":[[1163,8]]},"109":{"position":[[179,8]]},"407":{"position":[[41,7]]},"624":{"position":[[2,7]]},"626":{"position":[[2,7]]},"732":{"position":[[8,7]]},"750":{"position":[[8,7]]},"754":{"position":[[8,7]]},"760":{"position":[[8,7]]},"764":{"position":[[8,7]]}}}],["variou",{"_index":676,"t":{"44":{"position":[[407,7]]},"62":{"position":[[98,7]]},"74":{"position":[[100,7]]},"78":{"position":[[32,7]]},"130":{"position":[[468,7]]}}}],["vast",{"_index":979,"t":{"101":{"position":[[200,4]]}}}],["vastli",{"_index":720,"t":{"56":{"position":[[34,6]]}}}],["vec",{"_index":2591,"t":{"862":{"position":[[125,3]]},"864":{"position":[[55,3]]},"866":{"position":[[61,3]]},"868":{"position":[[62,3]]}}}],["vector",{"_index":2590,"t":{"862":{"position":[[26,7]]},"874":{"position":[[46,6]]},"876":{"position":[[19,6],[70,7]]},"878":{"position":[[19,6],[69,6]]},"880":{"position":[[20,6],[70,7]]}}}],["vector3",{"_index":460,"t":{"22":{"position":[[2270,7]]},"854":{"position":[[53,7],[97,10],[320,7]]},"858":{"position":[[0,7],[85,7],[170,7]]},"860":{"position":[[0,7],[74,7]]},"870":{"position":[[34,7],[76,7]]},"872":{"position":[[14,7],[83,7],[127,8]]},"874":{"position":[[14,7],[77,7]]},"876":{"position":[[313,7],[498,8]]},"880":{"position":[[90,7],[429,8]]}}}],["vector3(0",{"_index":2579,"t":{"854":{"position":[[112,10]]},"858":{"position":[[274,10],[304,10]]},"874":{"position":[[121,10]]},"876":{"position":[[357,10],[442,10],[841,10],[930,10]]},"880":{"position":[[237,10],[357,10]]}}}],["vector3(0.0",{"_index":2610,"t":{"874":{"position":[[156,12]]},"876":{"position":[[603,12],[706,12],[809,12],[899,12],[990,12]]},"880":{"position":[[188,12]]}}}],["vector3(1",{"_index":2580,"t":{"854":{"position":[[139,11],[155,10],[182,10],[201,10],[228,10],[250,10],[382,10]]},"858":{"position":[[214,10]]},"860":{"position":[[173,10]]},"872":{"position":[[157,10]]},"876":{"position":[[532,10],[636,10],[738,10]]}}}],["vector3(1):dot(new",{"_index":2606,"t":{"870":{"position":[[120,18]]}}}],["vector3(1.0",{"_index":2634,"t":{"880":{"position":[[308,12]]}}}],["vector3(2",{"_index":2582,"t":{"858":{"position":[[231,11]]},"860":{"position":[[118,10],[142,11],[197,11]]},"870":{"position":[[139,12]]}}}],["vector3(3",{"_index":2583,"t":{"858":{"position":[[247,10]]}}}],["vector3(90",{"_index":2629,"t":{"880":{"position":[[134,11]]}}}],["vector3(90.0",{"_index":2618,"t":{"876":{"position":[[410,13]]},"878":{"position":[[218,13]]}}}],["vehicl",{"_index":990,"t":{"103":{"position":[[423,7]]}}}],["vendor",{"_index":626,"t":{"40":{"position":[[358,8]]}}}],["veri",{"_index":878,"t":{"89":{"position":[[794,4]]},"298":{"position":[[440,4]]}}}],["verif",{"_index":226,"t":{"10":{"position":[[645,12]]}}}],["verifi",{"_index":1995,"t":{"557":{"position":[[1024,6]]}}}],["version",{"_index":413,"t":{"22":{"position":[[415,10]]},"26":{"position":[[124,8]]},"32":{"position":[[159,7]]},"76":{"position":[[8,8]]},"107":{"position":[[285,7],[357,8],[942,7],[1204,8],[1478,8]]},"140":{"position":[[22,7]]},"173":{"position":[[193,8]]},"191":{"position":[[97,7]]},"211":{"position":[[119,7],[182,7],[192,8],[240,7],[471,7]]},"235":{"position":[[137,7],[199,7],[207,11],[256,7],[312,7]]},"237":{"position":[[176,7],[238,7],[246,11],[288,7],[344,7]]},"317":{"position":[[390,7]]},"478":{"position":[[26,7]]},"588":{"position":[[46,7]]},"604":{"position":[[37,7],[220,8]]}}}],["vfunc",{"_index":1292,"t":{"233":{"position":[[125,10]]}}}],["vfunc(\"hello",{"_index":1294,"t":{"233":{"position":[[195,14],[347,14]]}}}],["vfunc(...arg",{"_index":1295,"t":{"233":{"position":[[294,14]]}}}],["via",{"_index":290,"t":{"16":{"position":[[423,3],[1851,3]]},"22":{"position":[[1634,3]]},"32":{"position":[[1217,3]]},"105":{"position":[[481,3]]},"120":{"position":[[40,3]]},"122":{"position":[[29,3]]},"130":{"position":[[110,3]]},"148":{"position":[[47,3]]},"361":{"position":[[17,3]]},"395":{"position":[[17,3]]},"401":{"position":[[17,3]]},"411":{"position":[[17,3]]},"437":{"position":[[17,3]]},"461":{"position":[[28,3]]},"475":{"position":[[17,3]]},"562":{"position":[[17,3]]},"608":{"position":[[17,3]]},"610":{"position":[[710,3],[862,3]]},"616":{"position":[[17,3]]},"664":{"position":[[30,3]]},"670":{"position":[[32,3]]},"682":{"position":[[206,4]]},"692":{"position":[[17,3]]},"838":{"position":[[17,3]]},"844":{"position":[[17,3]]},"852":{"position":[[17,3]]}}}],["viabl",{"_index":628,"t":{"40":{"position":[[442,6]]}}}],["violat",{"_index":666,"t":{"42":{"position":[[239,9]]},"48":{"position":[[300,9]]}}}],["virtual",{"_index":1101,"t":{"128":{"position":[[21,9]]},"335":{"position":[[331,7]]},"339":{"position":[[8,7]]},"341":{"position":[[235,7]]}}}],["virtualterminallevel",{"_index":1648,"t":{"357":{"position":[[286,20]]}}}],["visit",{"_index":2375,"t":{"726":{"position":[[282,5]]}}}],["visual",{"_index":957,"t":{"99":{"position":[[283,6]]},"132":{"position":[[73,6],[95,6]]}}}],["vital",{"_index":840,"t":{"85":{"position":[[403,5]]}}}],["vkmap",{"_index":634,"t":{"40":{"position":[[718,9]]},"219":{"position":[[306,8]]}}}],["vm",{"_index":152,"t":{"6":{"position":[[306,2]]},"36":{"position":[[423,2]]},"62":{"position":[[395,2]]},"72":{"position":[[6,2]]},"91":{"position":[[100,3]]},"93":{"position":[[0,2],[168,2],[263,2]]}}}],["void",{"_index":649,"t":{"40":{"position":[[1455,6]]},"298":{"position":[[61,4]]},"580":{"position":[[64,7],[211,7]]},"582":{"position":[[92,7]]}}}],["vs",{"_index":944,"t":{"97":{"position":[[514,2]]},"99":{"position":[[49,2]]}}}],["vsix",{"_index":963,"t":{"99":{"position":[[392,4]]}}}],["vulner",{"_index":436,"t":{"22":{"position":[[1489,10]]}}}],["w",{"_index":758,"t":{"68":{"position":[[203,3]]},"606":{"position":[[84,1]]}}}],["w:strip",{"_index":2122,"t":{"606":{"position":[[130,11]]}}}],["wait",{"_index":2143,"t":{"610":{"position":[[1016,8],[1216,4]]},"724":{"position":[[39,7],[311,5],[326,7]]}}}],["walru",{"_index":239,"t":{"12":{"position":[[178,6],[280,6]]},"14":{"position":[[640,6]]},"58":{"position":[[64,6]]},"60":{"position":[[137,6]]},"62":{"position":[[11,6]]},"319":{"position":[[4,6]]}}}],["want",{"_index":367,"t":{"16":{"position":[[2574,4]]},"87":{"position":[[350,4]]},"150":{"position":[[34,4]]},"211":{"position":[[69,4]]},"225":{"position":[[14,4]]},"233":{"position":[[50,4]]},"235":{"position":[[72,4]]},"252":{"position":[[18,4]]},"288":{"position":[[464,4]]},"349":{"position":[[108,5]]},"596":{"position":[[473,4]]},"758":{"position":[[187,4],[358,4]]}}}],["warn",{"_index":163,"t":{"8":{"position":[[22,7],[150,7],[370,7]]},"10":{"position":[[8,7]]},"16":{"position":[[134,7],[202,7],[270,7],[299,7]]},"18":{"position":[[23,8]]},"20":{"position":[[197,7],[427,7]]},"22":{"position":[[1204,9],[1220,7],[1420,7],[1678,8],[1859,7],[1992,7],[2006,8]]},"28":{"position":[[75,7]]},"32":{"position":[[515,9],[574,8]]},"44":{"position":[[330,7]]},"52":{"position":[[25,7],[96,8]]},"54":{"position":[[76,7]]},"62":{"position":[[151,9],[294,8]]},"68":{"position":[[313,9]]},"74":{"position":[[19,8],[116,7]]},"158":{"position":[[31,8]]},"161":{"position":[[148,8]]},"163":{"position":[[126,8],[320,7]]},"165":{"position":[[174,8]]},"167":{"position":[[156,8]]},"169":{"position":[[146,8]]},"171":{"position":[[150,8]]},"173":{"position":[[135,8]]},"175":{"position":[[108,8]]},"177":{"position":[[168,8],[420,7]]},"179":{"position":[[124,8],[370,7]]},"181":{"position":[[145,8],[367,7]]},"183":{"position":[[174,8],[387,7],[493,8]]},"185":{"position":[[158,8]]},"187":{"position":[[201,8]]},"189":{"position":[[18,7]]},"191":{"position":[[0,8],[156,7],[204,8],[264,7],[516,8]]},"193":{"position":[[11,8]]},"209":{"position":[[57,7],[160,8]]},"241":{"position":[[47,7],[193,8],[457,7]]},"296":{"position":[[241,7]]},"606":{"position":[[49,8],[148,10]]}}}],["warn(\"bad",{"_index":2120,"t":{"606":{"position":[[100,13]]}}}],["wasm",{"_index":228,"t":{"10":{"position":[[701,4]]},"115":{"position":[[128,5]]},"592":{"position":[[79,7]]},"610":{"position":[[618,4],[917,4],[1268,4],[1584,4],[1721,4],[1837,4],[2397,6]]},"612":{"position":[[96,4]]},"614":{"position":[[123,4]]},"692":{"position":[[63,4]]}}}],["way",{"_index":886,"t":{"89":{"position":[[993,3]]},"109":{"position":[[8,3]]},"115":{"position":[[12,3]]},"197":{"position":[[26,3]]},"199":{"position":[[157,5],[167,3],[220,3]]},"201":{"position":[[172,5],[182,3],[241,3]]},"203":{"position":[[150,5],[160,3],[214,3]]},"227":{"position":[[38,3],[78,3],[198,3]]},"252":{"position":[[123,3],[189,3]]},"264":{"position":[[19,3]]},"300":{"position":[[32,3]]},"319":{"position":[[489,3],[546,3]]},"321":{"position":[[48,3]]},"343":{"position":[[189,3],[227,3]]},"345":{"position":[[73,3],[135,3]]},"604":{"position":[[17,3]]},"614":{"position":[[88,4]]},"658":{"position":[[103,4]]},"784":{"position":[[188,4]]},"796":{"position":[[47,4]]}}}],["wcall",{"_index":481,"t":{"22":{"position":[[2811,5]]},"606":{"position":[[88,8]]}}}],["we'd",{"_index":1245,"t":{"203":{"position":[[54,4]]}}}],["we'v",{"_index":802,"t":{"78":{"position":[[124,5]]}}}],["weakest",{"_index":1931,"t":{"532":{"position":[[76,8]]}}}],["well",{"_index":608,"t":{"36":{"position":[[410,4]]},"122":{"position":[[475,4],[655,4]]},"124":{"position":[[138,4]]},"247":{"position":[[168,5]]},"321":{"position":[[298,4]]}}}],["wget",{"_index":1073,"t":{"122":{"position":[[49,4]]}}}],["what'",{"_index":1519,"t":{"311":{"position":[[68,6]]},"375":{"position":[[116,6]]},"377":{"position":[[120,6]]},"828":{"position":[[439,6],[548,6],[622,6],[718,8]]}}}],["whenev",{"_index":1457,"t":{"288":{"position":[[444,8]]},"341":{"position":[[103,8]]}}}],["whether",{"_index":1731,"t":{"397":{"position":[[87,7]]},"403":{"position":[[86,7]]},"407":{"position":[[151,7]]},"618":{"position":[[109,7]]},"640":{"position":[[104,7]]},"820":{"position":[[297,7]]},"826":{"position":[[364,7]]},"828":{"position":[[161,7]]},"840":{"position":[[89,7]]}}}],["white",{"_index":1780,"t":{"443":{"position":[[442,6]]},"459":{"position":[[32,5],[103,8]]},"465":{"position":[[1146,5],[1366,8]]}}}],["whitespac",{"_index":2487,"t":{"806":{"position":[[171,10]]},"808":{"position":[[172,10]]},"810":{"position":[[171,10]]},"812":{"position":[[177,10]]},"814":{"position":[[46,10]]}}}],["width",{"_index":1761,"t":{"439":{"position":[[43,6]]},"451":{"position":[[68,6]]}}}],["window",{"_index":132,"t":{"6":{"position":[[67,7]]},"32":{"position":[[1082,7]]},"46":{"position":[[142,7],[225,7]]},"117":{"position":[[45,8]]},"357":{"position":[[179,7]]},"564":{"position":[[459,8],[670,9]]},"584":{"position":[[199,9],[465,9]]},"592":{"position":[[68,10]]}}}],["wip",{"_index":1492,"t":{"298":{"position":[[418,3]]}}}],["wish",{"_index":993,"t":{"105":{"position":[[15,4]]},"130":{"position":[[420,5]]},"136":{"position":[[216,4]]},"818":{"position":[[287,4]]}}}],["within",{"_index":241,"t":{"12":{"position":[[217,6]]},"40":{"position":[[1146,6]]},"58":{"position":[[93,6]]},"60":{"position":[[153,6]]},"89":{"position":[[331,6]]},"132":{"position":[[88,6]]},"152":{"position":[[389,6]]},"284":{"position":[[36,6]]},"391":{"position":[[69,6]]},"640":{"position":[[19,6]]}}}],["without",{"_index":432,"t":{"22":{"position":[[1145,7],[1254,7],[2611,7]]},"32":{"position":[[458,7],[507,7],[566,7]]},"40":{"position":[[936,7]]},"42":{"position":[[129,7]]},"85":{"position":[[498,7]]},"142":{"position":[[265,7]]},"154":{"position":[[291,7]]},"185":{"position":[[76,7]]},"209":{"position":[[100,7]]},"339":{"position":[[65,7]]},"706":{"position":[[22,7]]},"842":{"position":[[202,7]]}}}],["won't",{"_index":829,"t":{"83":{"position":[[578,5]]},"333":{"position":[[246,5]]}}}],["word",{"_index":699,"t":{"52":{"position":[[9,7]]}}}],["work",{"_index":236,"t":{"12":{"position":[[119,7]]},"14":{"position":[[426,7]]},"22":{"position":[[697,5],[897,7],[937,7],[3551,5]]},"28":{"position":[[143,7]]},"30":{"position":[[31,7]]},"34":{"position":[[83,7],[135,7]]},"36":{"position":[[25,5]]},"50":{"position":[[230,7]]},"58":{"position":[[85,7]]},"83":{"position":[[584,5]]},"122":{"position":[[612,4]]},"239":{"position":[[70,5]]},"290":{"position":[[540,5]]},"292":{"position":[[459,6]]},"296":{"position":[[78,5]]},"321":{"position":[[239,5]]},"345":{"position":[[199,5]]},"564":{"position":[[170,6]]},"648":{"position":[[136,5]]},"652":{"position":[[147,5]]},"654":{"position":[[23,7],[84,7],[146,5],[241,7]]},"658":{"position":[[169,6]]},"738":{"position":[[177,4]]}}}],["worl",{"_index":2507,"t":{"822":{"position":[[157,8]]}}}],["world",{"_index":1159,"t":{"146":{"position":[[227,8],[274,8],[466,8],[530,7]]},"225":{"position":[[138,7],[215,5],[303,7]]},"229":{"position":[[195,7]]},"254":{"position":[[323,6]]},"282":{"position":[[830,6]]},"296":{"position":[[63,6]]},"315":{"position":[[102,8],[214,8]]},"317":{"position":[[343,8],[363,6],[602,8],[622,6],[837,8],[857,6]]},"339":{"position":[[156,7],[380,7]]},"369":{"position":[[311,8],[454,7]]},"371":{"position":[[367,8]]},"373":{"position":[[201,8]]},"375":{"position":[[501,8],[518,10],[634,7],[677,9]]},"377":{"position":[[502,8],[516,8]]},"393":{"position":[[670,7]]},"403":{"position":[[204,9]]},"405":{"position":[[172,6]]},"407":{"position":[[273,9]]},"409":{"position":[[187,6]]},"465":{"position":[[907,6],[1007,8]]},"478":{"position":[[173,6]]},"480":{"position":[[156,6]]},"482":{"position":[[213,6]]},"484":{"position":[[156,6]]},"486":{"position":[[157,6]]},"488":{"position":[[214,6]]},"490":{"position":[[213,6]]},"492":{"position":[[272,6]]},"496":{"position":[[159,6]]},"498":{"position":[[216,6]]},"500":{"position":[[216,6]]},"502":{"position":[[216,6]]},"504":{"position":[[217,6]]},"506":{"position":[[161,6]]},"508":{"position":[[161,6]]},"510":{"position":[[166,6]]},"530":{"position":[[560,7],[725,6]]},"536":{"position":[[421,7],[612,6]]},"542":{"position":[[603,7],[802,6]]},"618":{"position":[[240,7],[291,7],[322,8],[420,8]]},"620":{"position":[[665,7]]},"698":{"position":[[400,7]]},"708":{"position":[[344,5]]},"710":{"position":[[1415,7]]},"748":{"position":[[132,8],[356,8],[472,8]]},"778":{"position":[[290,7],[340,7]]},"794":{"position":[[254,6],[320,9],[506,9],[634,6],[703,9]]},"798":{"position":[[196,9],[246,5]]},"800":{"position":[[200,9],[251,8]]},"802":{"position":[[201,9],[255,5]]},"818":{"position":[[591,8],[622,6],[658,8],[692,6],[728,8],[767,6],[803,8],[832,6]]},"820":{"position":[[484,8],[509,6],[546,8],[599,8]]},"822":{"position":[[125,6]]},"824":{"position":[[149,6],[174,6]]},"828":{"position":[[432,6],[540,7],[615,6],[711,6]]},"830":{"position":[[130,6],[162,9]]},"832":{"position":[[132,6]]}}}],["world\"):contains(\"world",{"_index":1626,"t":{"345":{"position":[[97,26]]}}}],["world\":contains(\"world",{"_index":1628,"t":{"345":{"position":[[158,25]]}}}],["worth",{"_index":876,"t":{"89":{"position":[[715,5]]}}}],["wrap",{"_index":1582,"t":{"323":{"position":[[867,8]]},"698":{"position":[[28,5]]},"784":{"position":[[33,4]]},"786":{"position":[[33,4]]}}}],["wrapper",{"_index":2046,"t":{"580":{"position":[[19,8],[327,7]]},"676":{"position":[[24,7]]}}}],["write",{"_index":1007,"t":{"107":{"position":[[660,7]]},"113":{"position":[[51,7]]},"115":{"position":[[31,7],[55,5]]},"144":{"position":[[68,5]]},"191":{"position":[[213,5]]},"195":{"position":[[167,7],[360,7]]},"227":{"position":[[45,7]]},"252":{"position":[[97,7]]},"652":{"position":[[246,5],[449,5]]}}}],["write(\"hello",{"_index":1236,"t":{"195":{"position":[[197,15],[390,15]]}}}],["write(text",{"_index":1234,"t":{"195":{"position":[[117,10],[281,11]]}}}],["written",{"_index":1339,"t":{"250":{"position":[[895,7]]},"323":{"position":[[666,7]]}}}],["wrong",{"_index":159,"t":{"6":{"position":[[400,5]]},"20":{"position":[[380,5],[472,5]]},"44":{"position":[[264,5]]},"393":{"position":[[563,5]]}}}],["wrote",{"_index":1022,"t":{"107":{"position":[[1686,5]]}}}],["x",{"_index":1401,"t":{"264":{"position":[[408,6]]},"308":{"position":[[185,1],[192,1],[196,2],[216,2],[238,1]]},"323":{"position":[[375,3]]},"337":{"position":[[87,1],[97,1],[101,1],[103,1],[113,1],[117,1],[119,1],[129,1]]},"359":{"position":[[139,1],[148,1]]},"445":{"position":[[91,1]]},"447":{"position":[[91,1]]},"658":{"position":[[72,1],[93,2]]},"746":{"position":[[276,1]]},"772":{"position":[[198,1],[296,1]]},"864":{"position":[[24,2]]}}}],["x.new",{"_index":1402,"t":{"264":{"position":[[436,11]]}}}],["x8d\\xad\\x5f\\x6a\\x7d\\xd2\\xdc\\xd8\\xc3\\x5e\\xc2\\xfd\\x7b\\xab\\xb4\\x99\\xbc\\xad\\x60\\xd2\\x7d\\x73\\xfe\\x73\\xec\\xa2\\xce\\x02\\x5d\\xfd\\x3b\\x47",{"_index":1888,"t":{"515":{"position":[[382,131]]}}}],["xbc\\xe8\\xc9\\xac\\xa4\\x12\\x07\\x76\\xfa\\xd6\\xb5\\x17\\x87\\x4a\\xa0\\x9c\\x46\\x40\\x54\\x54",{"_index":1884,"t":{"513":{"position":[[352,83]]}}}],["xmelia",{"_index":1603,"t":{"333":{"position":[[458,6]]}}}],["xmiliah",{"_index":273,"t":{"14":{"position":[[770,8]]}}}],["xml",{"_index":303,"t":{"16":{"position":[[988,5]]},"840":{"position":[[20,4],[75,4],[134,4],[170,3]]},"842":{"position":[[33,3],[66,3],[148,5],[174,4],[226,3],[1124,3]]}}}],["xml.decod",{"_index":2556,"t":{"842":{"position":[[265,13]]}}}],["xor",{"_index":279,"t":{"16":{"position":[[64,3]]},"313":{"position":[[209,4]]}}}],["xpcall",{"_index":1498,"t":{"300":{"position":[[68,7]]}}}],["xyz",{"_index":2545,"t":{"836":{"position":[[127,3],[163,3]]}}}],["y",{"_index":1785,"t":{"445":{"position":[[109,1]]},"447":{"position":[[109,1]]},"864":{"position":[[27,1]]},"876":{"position":[[173,1],[255,1],[389,1],[565,1],[669,1],[873,1],[963,1]]},"878":{"position":[[171,5],[180,1]]},"880":{"position":[[167,1],[271,1],[391,1]]}}}],["yaw",{"_index":2616,"t":{"876":{"position":[[268,4],[297,3]]}}}],["yield",{"_index":861,"t":{"89":{"position":[[161,5],[494,7]]},"471":{"position":[[0,6],[109,5]]},"610":{"position":[[1804,7],[1904,6]]},"612":{"position":[[341,6]]},"614":{"position":[[222,6]]},"680":{"position":[[96,7],[217,5]]},"694":{"position":[[282,7]]},"704":{"position":[[328,5]]},"710":{"position":[[728,7]]},"724":{"position":[[340,8]]},"726":{"position":[[135,6]]}}}],["yieldfunc",{"_index":2277,"t":{"678":{"position":[[96,9]]},"680":{"position":[[0,9]]}}}],["you'd",{"_index":1291,"t":{"233":{"position":[[72,5]]},"250":{"position":[[85,5]]}}}],["you'll",{"_index":1388,"t":{"260":{"position":[[425,6]]}}}],["you'r",{"_index":1162,"t":{"146":{"position":[[318,6]]},"284":{"position":[[133,6]]},"333":{"position":[[380,6]]},"528":{"position":[[150,6]]},"530":{"position":[[151,6]]},"534":{"position":[[118,6]]},"536":{"position":[[85,6]]},"551":{"position":[[110,6]]},"553":{"position":[[111,6]]}}}],["yourself",{"_index":1428,"t":{"278":{"position":[[496,9]]},"304":{"position":[[218,9]]}}}],["z",{"_index":2597,"t":{"864":{"position":[[33,1]]},"876":{"position":[[278,1],[475,1],[771,1]]}}}],["zero",{"_index":46,"t":{"4":{"position":[[520,4]]},"492":{"position":[[151,5]]},"494":{"position":[[154,5]]},"778":{"position":[[222,5]]},"818":{"position":[[516,5],[550,5]]}}}],["zlib",{"_index":2000,"t":{"560":{"position":[[111,4]]}}}]],"pipeline":["stemmer"]}}] \ No newline at end of file +[{"documents":[{"i":1,"t":"Compatibility","u":"/docs/Compatibility","b":["Documentation"]},{"i":13,"t":"Editor Integration","u":"/docs/Editor Integration","b":["Documentation"]},{"i":17,"t":"For Integrators","u":"/docs/For Integrators","b":["Documentation"]},{"i":36,"t":"Getting Started","u":"/docs/Getting Started","b":["Documentation"]},{"i":61,"t":"What is Pluto?","u":"/docs/Introduction","b":["Documentation"]},{"i":65,"t":"Break Statement","u":"/docs/New Features/Break Statement","b":["Documentation","New Features"]},{"i":67,"t":"Compile-Time Evaluation","u":"/docs/New Features/Compile-Time Evaluation","b":["Documentation","New Features"]},{"i":75,"t":"Continue Statement","u":"/docs/New Features/Continue Statement","b":["Documentation","New Features"]},{"i":81,"t":"Changelog","u":"/docs/Changelog","b":["Documentation"]},{"i":157,"t":"Default Arguments","u":"/docs/New Features/Default Arguments","b":["Documentation","New Features"]},{"i":159,"t":"Destructuring","u":"/docs/New Features/Destructuring","b":["Documentation","New Features"]},{"i":169,"t":"Compiler Warnings","u":"/docs/New Features/Compiler Warnings","b":["Documentation","New Features"]},{"i":206,"t":"Enumerations","u":"/docs/New Features/Enumerations","b":["Documentation","New Features"]},{"i":216,"t":"Explicit Globals","u":"/docs/New Features/Explicit Globals","b":["Documentation","New Features"]},{"i":220,"t":"For-As Loop","u":"/docs/New Features/For-As Loop","b":["Documentation","New Features"]},{"i":222,"t":"Export Modifier","u":"/docs/New Features/Export Modifier","b":["Documentation","New Features"]},{"i":226,"t":"In Expressions","u":"/docs/New Features/In Expressions","b":["Documentation","New Features"]},{"i":230,"t":"Named Arguments","u":"/docs/New Features/Named Arguments","b":["Documentation","New Features"]},{"i":236,"t":"Lambda Expressions","u":"/docs/New Features/Lambda Expressions","b":["Documentation","New Features"]},{"i":238,"t":"Nodiscard Functions","u":"/docs/New Features/Nodiscard Functions","b":["Documentation","New Features"]},{"i":240,"t":"Named Varargs","u":"/docs/New Features/Named Varargs","b":["Documentation","New Features"]},{"i":242,"t":"Object-Oriented Programming","u":"/docs/New Features/Object-Oriented Programming","b":["Documentation","New Features"]},{"i":266,"t":"Safe Navigation","u":"/docs/New Features/Safe Navigation","b":["Documentation","New Features"]},{"i":271,"t":"Numeral Parsing","u":"/docs/New Features/Numeral Parsing","b":["Documentation","New Features"]},{"i":277,"t":"String Interpolation","u":"/docs/New Features/String Interpolation","b":["Documentation","New Features"]},{"i":279,"t":"Switch Blocks","u":"/docs/New Features/Switch Blocks","b":["Documentation","New Features"]},{"i":289,"t":"String Indexing","u":"/docs/New Features/String Indexing","b":["Documentation","New Features"]},{"i":291,"t":"Try-Catch Statement","u":"/docs/New Features/Try-Catch Statement","b":["Documentation","New Features"]},{"i":295,"t":"Ternary Expressions","u":"/docs/New Features/Ternary Expressions","b":["Documentation","New Features"]},{"i":301,"t":"Table Freezing","u":"/docs/New Features/Table Freezing","b":["Documentation","New Features"]},{"i":305,"t":"For Loops","u":"/docs/Optimizations/For Loops","b":["Documentation","Optimizations"]},{"i":309,"t":"Table Length","u":"/docs/Optimizations/Table Length","b":["Documentation","Optimizations"]},{"i":311,"t":"Jump Table","u":"/docs/Optimizations/Jump Table","b":["Documentation","Optimizations"]},{"i":313,"t":"Type Hinting","u":"/docs/New Features/Type Hinting","b":["Documentation","New Features"]},{"i":317,"t":"Boolean Concatenation","u":"/docs/QoL Improvements/Boolean Concatenation","b":["Documentation","QoL Improvements"]},{"i":319,"t":"Generalized Iteration","u":"/docs/QoL Improvements/Generalized Iteration","b":["Documentation","QoL Improvements"]},{"i":321,"t":"Special Arithmetic","u":"/docs/Optimizations/Special Arithmetic","b":["Documentation","Optimizations"]},{"i":323,"t":"Optional Parentheses","u":"/docs/QoL Improvements/Optional Parentheses","b":["Documentation","QoL Improvements"]},{"i":325,"t":"Removed Locals Limit","u":"/docs/QoL Improvements/Removed Locals Limit","b":["Documentation","QoL Improvements"]},{"i":327,"t":"New Operators","u":"/docs/New Operators","b":["Documentation"]},{"i":348,"t":"Syntax Errors","u":"/docs/QoL Improvements/Syntax Errors","b":["Documentation","QoL Improvements"]},{"i":356,"t":"Reserved Identifiers","u":"/docs/QoL Improvements/Reserved Identifiers","b":["Documentation","QoL Improvements"]},{"i":358,"t":"Universal Block Opener","u":"/docs/QoL Improvements/Universal Block Opener","b":["Documentation","QoL Improvements"]},{"i":360,"t":"Base32","u":"/docs/Runtime Environment/Base32","b":["Documentation","Runtime Environment"]},{"i":366,"t":"Base64","u":"/docs/Runtime Environment/Base64","b":["Documentation","Runtime Environment"]},{"i":376,"t":"Bigint","u":"/docs/Runtime Environment/Bigint","b":["Documentation","Runtime Environment"]},{"i":402,"t":"Assert","u":"/docs/Runtime Environment/Assert","b":["Documentation","Runtime Environment"]},{"i":436,"t":"Canvas","u":"/docs/Runtime Environment/Canvas","b":["Documentation","Runtime Environment"]},{"i":460,"t":"Coroutine","u":"/docs/Runtime Environment/Coroutine","b":["Documentation","Runtime Environment"]},{"i":466,"t":"CaT","u":"/docs/Runtime Environment/CaT","b":["Documentation","Runtime Environment"]},{"i":472,"t":"FFI","u":"/docs/Runtime Environment/FFI","b":["Documentation","Runtime Environment"]},{"i":496,"t":"Exception","u":"/docs/Runtime Environment/Exception","b":["Documentation","Runtime Environment"]},{"i":498,"t":"Global & Base","u":"/docs/Runtime Environment/Global & Base","b":["Documentation","Runtime Environment"]},{"i":520,"t":"HTTP","u":"/docs/Runtime Environment/HTTP","b":["Documentation","Runtime Environment"]},{"i":528,"t":"JSON","u":"/docs/Runtime Environment/JSON","b":["Documentation","Runtime Environment"]},{"i":534,"t":"Math","u":"/docs/Runtime Environment/Math","b":["Documentation","Runtime Environment"]},{"i":542,"t":"IO","u":"/docs/Runtime Environment/IO","b":["Documentation","Runtime Environment"]},{"i":576,"t":"OS","u":"/docs/Runtime Environment/OS","b":["Documentation","Runtime Environment"]},{"i":584,"t":"Regex","u":"/docs/Runtime Environment/Regex","b":["Documentation","Runtime Environment"]},{"i":590,"t":"Scheduler","u":"/docs/Runtime Environment/Scheduler","b":["Documentation","Runtime Environment"]},{"i":604,"t":"Socket","u":"/docs/Runtime Environment/Socket","b":["Documentation","Runtime Environment"]},{"i":640,"t":"Crypto","u":"/docs/Runtime Environment/Crypto","b":["Documentation","Runtime Environment"]},{"i":727,"t":"URL","u":"/docs/Runtime Environment/URL","b":["Documentation","Runtime Environment"]},{"i":735,"t":"String","u":"/docs/Runtime Environment/String","b":["Documentation","Runtime Environment"]},{"i":785,"t":"Vector3","u":"/docs/Runtime Environment/Vector3","b":["Documentation","Runtime Environment"]},{"i":815,"t":"XML","u":"/docs/Runtime Environment/XML","b":["Documentation","Runtime Environment"]},{"i":821,"t":"Table","u":"/docs/Runtime Environment/Table","b":["Documentation","Runtime Environment"]}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/1",[0,4.515]],["t/13",[1,3.472,2,3.007]],["t/17",[2,3.911]],["t/36",[3,3.472,4,3.472]],["t/61",[5,4.515]],["t/65",[6,3.472,7,2.701]],["t/67",[8,2.443,9,2.82,10,2.82]],["t/75",[7,2.701,11,3.472]],["t/81",[12,4.515]],["t/157",[13,3.472,14,3.007]],["t/159",[15,4.515]],["t/169",[8,3.007,16,3.472]],["t/206",[17,4.515]],["t/216",[18,3.472,19,3.007]],["t/220",[20,3.911]],["t/222",[21,3.472,22,3.472]],["t/226",[23,3.512]],["t/230",[14,3.007,24,3.007]],["t/236",[23,2.701,25,3.472]],["t/238",[26,3.472,27,3.472]],["t/240",[24,3.007,28,3.472]],["t/242",[29,2.82,30,2.82,31,2.82]],["t/266",[32,3.472,33,3.472]],["t/271",[34,3.472,35,3.472]],["t/277",[36,2.701,37,3.472]],["t/279",[38,3.472,39,3.007]],["t/289",[36,2.701,40,3.472]],["t/291",[7,2.194,41,2.82,42,2.82]],["t/295",[23,2.701,43,3.472]],["t/301",[44,2.472,45,3.472]],["t/305",[20,3.911]],["t/309",[44,2.472,46,3.472]],["t/311",[44,2.472,47,3.472]],["t/313",[48,3.472,49,3.472]],["t/317",[50,3.472,51,3.472]],["t/319",[52,3.472,53,3.472]],["t/321",[54,3.472,55,3.472]],["t/323",[56,3.472,57,3.472]],["t/325",[58,2.82,59,2.82,60,2.82]],["t/327",[61,3.472,62,3.472]],["t/348",[63,3.472,64,3.472]],["t/356",[65,3.472,66,3.472]],["t/358",[39,2.443,67,2.82,68,2.82]],["t/360",[69,4.515]],["t/366",[70,4.515]],["t/376",[71,4.515]],["t/402",[72,4.515]],["t/436",[73,4.515]],["t/460",[74,4.515]],["t/466",[75,4.515]],["t/472",[76,4.515]],["t/496",[77,4.515]],["t/498",[19,2.443,78,2.82,79,2.82]],["t/520",[80,4.515]],["t/528",[81,4.515]],["t/534",[82,4.515]],["t/542",[83,4.515]],["t/576",[84,4.515]],["t/584",[85,4.515]],["t/590",[86,4.515]],["t/604",[87,4.515]],["t/640",[88,4.515]],["t/727",[89,4.515]],["t/735",[36,3.512]],["t/785",[90,4.515]],["t/815",[91,4.515]],["t/821",[44,3.215]]],"invertedIndex":[["",{"_index":78,"t":{"498":{"position":[[7,1]]}}}],["argument",{"_index":14,"t":{"157":{"position":[[8,9]]},"230":{"position":[[6,9]]}}}],["arithmet",{"_index":55,"t":{"321":{"position":[[8,10]]}}}],["assert",{"_index":72,"t":{"402":{"position":[[0,6]]}}}],["base",{"_index":79,"t":{"498":{"position":[[9,4]]}}}],["base32",{"_index":69,"t":{"360":{"position":[[0,6]]}}}],["base64",{"_index":70,"t":{"366":{"position":[[0,6]]}}}],["bigint",{"_index":71,"t":{"376":{"position":[[0,6]]}}}],["block",{"_index":39,"t":{"279":{"position":[[7,6]]},"358":{"position":[[10,5]]}}}],["boolean",{"_index":50,"t":{"317":{"position":[[0,7]]}}}],["break",{"_index":6,"t":{"65":{"position":[[0,5]]}}}],["canva",{"_index":73,"t":{"436":{"position":[[0,6]]}}}],["cat",{"_index":75,"t":{"466":{"position":[[0,3]]}}}],["catch",{"_index":42,"t":{"291":{"position":[[4,5]]}}}],["changelog",{"_index":12,"t":{"81":{"position":[[0,9]]}}}],["compat",{"_index":0,"t":{"1":{"position":[[0,13]]}}}],["compil",{"_index":8,"t":{"67":{"position":[[0,7]]},"169":{"position":[[0,8]]}}}],["concaten",{"_index":51,"t":{"317":{"position":[[8,13]]}}}],["continu",{"_index":11,"t":{"75":{"position":[[0,8]]}}}],["coroutin",{"_index":74,"t":{"460":{"position":[[0,9]]}}}],["crypto",{"_index":88,"t":{"640":{"position":[[0,6]]}}}],["default",{"_index":13,"t":{"157":{"position":[[0,7]]}}}],["destructur",{"_index":15,"t":{"159":{"position":[[0,13]]}}}],["editor",{"_index":1,"t":{"13":{"position":[[0,6]]}}}],["enumer",{"_index":17,"t":{"206":{"position":[[0,12]]}}}],["error",{"_index":64,"t":{"348":{"position":[[7,6]]}}}],["evalu",{"_index":10,"t":{"67":{"position":[[13,10]]}}}],["except",{"_index":77,"t":{"496":{"position":[[0,9]]}}}],["explicit",{"_index":18,"t":{"216":{"position":[[0,8]]}}}],["export",{"_index":21,"t":{"222":{"position":[[0,6]]}}}],["express",{"_index":23,"t":{"226":{"position":[[3,11]]},"236":{"position":[[7,11]]},"295":{"position":[[8,11]]}}}],["ffi",{"_index":76,"t":{"472":{"position":[[0,3]]}}}],["freez",{"_index":45,"t":{"301":{"position":[[6,8]]}}}],["function",{"_index":27,"t":{"238":{"position":[[10,9]]}}}],["gener",{"_index":52,"t":{"319":{"position":[[0,11]]}}}],["get",{"_index":3,"t":{"36":{"position":[[0,7]]}}}],["global",{"_index":19,"t":{"216":{"position":[[9,7]]},"498":{"position":[[0,6]]}}}],["hint",{"_index":49,"t":{"313":{"position":[[5,7]]}}}],["http",{"_index":80,"t":{"520":{"position":[[0,4]]}}}],["identifi",{"_index":66,"t":{"356":{"position":[[9,11]]}}}],["index",{"_index":40,"t":{"289":{"position":[[7,8]]}}}],["integr",{"_index":2,"t":{"13":{"position":[[7,11]]},"17":{"position":[[4,11]]}}}],["interpol",{"_index":37,"t":{"277":{"position":[[7,13]]}}}],["io",{"_index":83,"t":{"542":{"position":[[0,2]]}}}],["iter",{"_index":53,"t":{"319":{"position":[[12,9]]}}}],["json",{"_index":81,"t":{"528":{"position":[[0,4]]}}}],["jump",{"_index":47,"t":{"311":{"position":[[0,4]]}}}],["lambda",{"_index":25,"t":{"236":{"position":[[0,6]]}}}],["length",{"_index":46,"t":{"309":{"position":[[6,6]]}}}],["limit",{"_index":60,"t":{"325":{"position":[[15,5]]}}}],["local",{"_index":59,"t":{"325":{"position":[[8,6]]}}}],["loop",{"_index":20,"t":{"220":{"position":[[7,4]]},"305":{"position":[[4,5]]}}}],["math",{"_index":82,"t":{"534":{"position":[[0,4]]}}}],["modifi",{"_index":22,"t":{"222":{"position":[[7,8]]}}}],["name",{"_index":24,"t":{"230":{"position":[[0,5]]},"240":{"position":[[0,5]]}}}],["navig",{"_index":33,"t":{"266":{"position":[[5,10]]}}}],["new",{"_index":61,"t":{"327":{"position":[[0,3]]}}}],["nodiscard",{"_index":26,"t":{"238":{"position":[[0,9]]}}}],["numer",{"_index":34,"t":{"271":{"position":[[0,7]]}}}],["object",{"_index":29,"t":{"242":{"position":[[0,6]]}}}],["open",{"_index":68,"t":{"358":{"position":[[16,6]]}}}],["oper",{"_index":62,"t":{"327":{"position":[[4,9]]}}}],["option",{"_index":56,"t":{"323":{"position":[[0,8]]}}}],["orient",{"_index":30,"t":{"242":{"position":[[7,8]]}}}],["os",{"_index":84,"t":{"576":{"position":[[0,2]]}}}],["parenthes",{"_index":57,"t":{"323":{"position":[[9,11]]}}}],["pars",{"_index":35,"t":{"271":{"position":[[8,7]]}}}],["pluto",{"_index":5,"t":{"61":{"position":[[8,6]]}}}],["program",{"_index":31,"t":{"242":{"position":[[16,11]]}}}],["regex",{"_index":85,"t":{"584":{"position":[[0,5]]}}}],["remov",{"_index":58,"t":{"325":{"position":[[0,7]]}}}],["reserv",{"_index":65,"t":{"356":{"position":[[0,8]]}}}],["safe",{"_index":32,"t":{"266":{"position":[[0,4]]}}}],["schedul",{"_index":86,"t":{"590":{"position":[[0,9]]}}}],["socket",{"_index":87,"t":{"604":{"position":[[0,6]]}}}],["special",{"_index":54,"t":{"321":{"position":[[0,7]]}}}],["start",{"_index":4,"t":{"36":{"position":[[8,7]]}}}],["statement",{"_index":7,"t":{"65":{"position":[[6,9]]},"75":{"position":[[9,9]]},"291":{"position":[[10,9]]}}}],["string",{"_index":36,"t":{"277":{"position":[[0,6]]},"289":{"position":[[0,6]]},"735":{"position":[[0,6]]}}}],["switch",{"_index":38,"t":{"279":{"position":[[0,6]]}}}],["syntax",{"_index":63,"t":{"348":{"position":[[0,6]]}}}],["tabl",{"_index":44,"t":{"301":{"position":[[0,5]]},"309":{"position":[[0,5]]},"311":{"position":[[5,5]]},"821":{"position":[[0,5]]}}}],["ternari",{"_index":43,"t":{"295":{"position":[[0,7]]}}}],["time",{"_index":9,"t":{"67":{"position":[[8,4]]}}}],["tri",{"_index":41,"t":{"291":{"position":[[0,3]]}}}],["type",{"_index":48,"t":{"313":{"position":[[0,4]]}}}],["univers",{"_index":67,"t":{"358":{"position":[[0,9]]}}}],["url",{"_index":89,"t":{"727":{"position":[[0,3]]}}}],["vararg",{"_index":28,"t":{"240":{"position":[[6,7]]}}}],["vector3",{"_index":90,"t":{"785":{"position":[[0,7]]}}}],["warn",{"_index":16,"t":{"169":{"position":[[9,8]]}}}],["xml",{"_index":91,"t":{"815":{"position":[[0,3]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":3,"t":"New Keywords","u":"/docs/Compatibility","h":"#new-keywords","p":1},{"i":5,"t":"Compatibility Mode","u":"/docs/Compatibility","h":"#compatibility-mode","p":1},{"i":7,"t":"Compile-time Configuration (pluto_use)","u":"/docs/Compatibility","h":"#compile-time-configuration-pluto_use","p":1},{"i":9,"t":"Compatible Keywords","u":"/docs/Compatibility","h":"#compatible-keywords","p":1},{"i":11,"t":"Default Table Metatable","u":"/docs/Compatibility","h":"#default-table-metatable","p":1},{"i":15,"t":"Installation","u":"/docs/Editor Integration","h":"#installation","p":13},{"i":19,"t":"Content Moderation","u":"/docs/For Integrators","h":"#content-moderation","p":17},{"i":20,"t":"Compiled Code","u":"/docs/For Integrators","h":"#compiled-code","p":17},{"i":22,"t":"Custom Module Filters","u":"/docs/For Integrators","h":"#custom-module-filters","p":17},{"i":24,"t":"Prevent Loading of Binary Modules","u":"/docs/For Integrators","h":"#prevent-loading-of-binary-modules","p":17},{"i":26,"t":"Execution Time Limit","u":"/docs/For Integrators","h":"#execution-time-limit","p":17},{"i":28,"t":"Infinite Loop Prevention","u":"/docs/For Integrators","h":"#infinite-loop-prevention","p":17},{"i":30,"t":"VM Dumping","u":"/docs/For Integrators","h":"#vm-dumping","p":17},{"i":32,"t":"Configuration","u":"/docs/For Integrators","h":"#configuration","p":17},{"i":34,"t":"What it looks like","u":"/docs/For Integrators","h":"#what-it-looks-like","p":17},{"i":38,"t":"Write Pluto Online","u":"/docs/Getting Started","h":"#write-pluto-online","p":36},{"i":40,"t":"Prebuilt Binaries","u":"/docs/Getting Started","h":"#prebuilt-binaries","p":36},{"i":42,"t":"Packages","u":"/docs/Getting Started","h":"#packages","p":36},{"i":43,"t":"Chocolatey","u":"/docs/Getting Started","h":"#chocolatey","p":36},{"i":45,"t":"APT Repository","u":"/docs/Getting Started","h":"#apt-repository","p":36},{"i":47,"t":"AUR","u":"/docs/Getting Started","h":"#aur","p":36},{"i":49,"t":"Termux","u":"/docs/Getting Started","h":"#termux","p":36},{"i":51,"t":"Compile Pluto Yourself","u":"/docs/Getting Started","h":"#compile-pluto-yourself","p":36},{"i":53,"t":"PHP Scripts","u":"/docs/Getting Started","h":"#php-scripts","p":36},{"i":55,"t":"Visual Studio","u":"/docs/Getting Started","h":"#visual-studio","p":36},{"i":57,"t":"Make","u":"/docs/Getting Started","h":"#make","p":36},{"i":59,"t":"Sun","u":"/docs/Getting Started","h":"#sun","p":36},{"i":63,"t":"What does Pluto aspire to be?","u":"/docs/Introduction","h":"#what-does-pluto-aspire-to-be","p":61},{"i":69,"t":"Function calls","u":"/docs/New Features/Compile-Time Evaluation","h":"#function-calls","p":67},{"i":71,"t":"Variables","u":"/docs/New Features/Compile-Time Evaluation","h":"#variables","p":67},{"i":73,"t":"Conditionals","u":"/docs/New Features/Compile-Time Evaluation","h":"#conditionals","p":67},{"i":77,"t":"Continue's Only Argument","u":"/docs/New Features/Continue Statement","h":"#continues-only-argument","p":75},{"i":79,"t":"Using Compatibility Mode?","u":"/docs/New Features/Continue Statement","h":"#using-compatibility-mode","p":75},{"i":83,"t":"0.10.0","u":"/docs/Changelog","h":"#0100","p":81},{"i":85,"t":"0.9.5","u":"/docs/Changelog","h":"#095","p":81},{"i":87,"t":"0.9.4","u":"/docs/Changelog","h":"#094","p":81},{"i":89,"t":"0.9.3","u":"/docs/Changelog","h":"#093","p":81},{"i":91,"t":"0.9.2","u":"/docs/Changelog","h":"#092","p":81},{"i":93,"t":"0.9.1","u":"/docs/Changelog","h":"#091","p":81},{"i":95,"t":"0.9.0","u":"/docs/Changelog","h":"#090","p":81},{"i":97,"t":"0.8.2","u":"/docs/Changelog","h":"#082","p":81},{"i":99,"t":"0.8.1","u":"/docs/Changelog","h":"#081","p":81},{"i":101,"t":"0.8.0","u":"/docs/Changelog","h":"#080","p":81},{"i":103,"t":"0.7.4","u":"/docs/Changelog","h":"#074","p":81},{"i":105,"t":"0.7.3","u":"/docs/Changelog","h":"#073","p":81},{"i":107,"t":"0.7.2","u":"/docs/Changelog","h":"#072","p":81},{"i":109,"t":"0.7.1","u":"/docs/Changelog","h":"#071","p":81},{"i":111,"t":"0.7.0","u":"/docs/Changelog","h":"#070","p":81},{"i":113,"t":"0.6.3","u":"/docs/Changelog","h":"#063","p":81},{"i":115,"t":"0.6.2","u":"/docs/Changelog","h":"#062","p":81},{"i":117,"t":"0.6.1","u":"/docs/Changelog","h":"#061","p":81},{"i":119,"t":"0.6.0","u":"/docs/Changelog","h":"#060","p":81},{"i":121,"t":"0.5.4","u":"/docs/Changelog","h":"#054","p":81},{"i":123,"t":"0.5.3","u":"/docs/Changelog","h":"#053","p":81},{"i":125,"t":"0.5.2","u":"/docs/Changelog","h":"#052","p":81},{"i":127,"t":"0.5.1","u":"/docs/Changelog","h":"#051","p":81},{"i":129,"t":"0.5.0","u":"/docs/Changelog","h":"#050","p":81},{"i":131,"t":"0.4.5","u":"/docs/Changelog","h":"#045","p":81},{"i":133,"t":"0.4.4","u":"/docs/Changelog","h":"#044","p":81},{"i":135,"t":"0.4.3","u":"/docs/Changelog","h":"#043","p":81},{"i":137,"t":"0.4.2","u":"/docs/Changelog","h":"#042","p":81},{"i":139,"t":"0.4.1","u":"/docs/Changelog","h":"#041","p":81},{"i":141,"t":"0.4.0","u":"/docs/Changelog","h":"#040","p":81},{"i":143,"t":"0.3.2","u":"/docs/Changelog","h":"#032","p":81},{"i":145,"t":"0.3.1","u":"/docs/Changelog","h":"#031","p":81},{"i":147,"t":"0.3.0","u":"/docs/Changelog","h":"#030","p":81},{"i":149,"t":"0.2.2","u":"/docs/Changelog","h":"#022","p":81},{"i":151,"t":"0.2.1","u":"/docs/Changelog","h":"#021","p":81},{"i":153,"t":"0.2.0","u":"/docs/Changelog","h":"#020","p":81},{"i":155,"t":"0.1.0","u":"/docs/Changelog","h":"#010","p":81},{"i":161,"t":"Array destructuring","u":"/docs/New Features/Destructuring","h":"#array-destructuring","p":159},{"i":163,"t":"Table destructuring","u":"/docs/New Features/Destructuring","h":"#table-destructuring","p":159},{"i":165,"t":"Different variable name","u":"/docs/New Features/Destructuring","h":"#different-variable-name","p":159},{"i":167,"t":"Standard Library","u":"/docs/New Features/Destructuring","h":"#standard-library","p":159},{"i":171,"t":"Warning Types","u":"/docs/New Features/Compiler Warnings","h":"#warning-types","p":169},{"i":172,"t":"var-shadow","u":"/docs/New Features/Compiler Warnings","h":"#var-shadow","p":169},{"i":174,"t":"global-shadow","u":"/docs/New Features/Compiler Warnings","h":"#global-shadow","p":169},{"i":176,"t":"field-shadow","u":"/docs/New Features/Compiler Warnings","h":"#field-shadow","p":169},{"i":178,"t":"type-mismatch","u":"/docs/New Features/Compiler Warnings","h":"#type-mismatch","p":169},{"i":180,"t":"unreachable-code","u":"/docs/New Features/Compiler Warnings","h":"#unreachable-code","p":169},{"i":182,"t":"excessive-arguments","u":"/docs/New Features/Compiler Warnings","h":"#excessive-arguments","p":169},{"i":184,"t":"bad-practice","u":"/docs/New Features/Compiler Warnings","h":"#bad-practice","p":169},{"i":186,"t":"possible-typo","u":"/docs/New Features/Compiler Warnings","h":"#possible-typo","p":169},{"i":188,"t":"non-portable-code","u":"/docs/New Features/Compiler Warnings","h":"#non-portable-code","p":169},{"i":190,"t":"non-portable-name","u":"/docs/New Features/Compiler Warnings","h":"#non-portable-name","p":169},{"i":192,"t":"non-portable-bytecode","u":"/docs/New Features/Compiler Warnings","h":"#non-portable-bytecode","p":169},{"i":194,"t":"unannotated-fallthrough","u":"/docs/New Features/Compiler Warnings","h":"#unannotated-fallthrough","p":169},{"i":196,"t":"implicit-global","u":"/docs/New Features/Compiler Warnings","h":"#implicit-global","p":169},{"i":198,"t":"discarded-return","u":"/docs/New Features/Compiler Warnings","h":"#discarded-return","p":169},{"i":200,"t":"Compile-time Configuration","u":"/docs/New Features/Compiler Warnings","h":"#compile-time-configuration","p":169},{"i":202,"t":"Changing Warning States","u":"/docs/New Features/Compiler Warnings","h":"#changing-warning-states","p":169},{"i":204,"t":"Disable Warnings On Line","u":"/docs/New Features/Compiler Warnings","h":"#disable-warnings-on-line","p":169},{"i":208,"t":"Scoped Enums","u":"/docs/New Features/Enumerations","h":"#scoped-enums","p":206},{"i":210,"t":"Reflection","u":"/docs/New Features/Enumerations","h":"#reflection","p":206},{"i":212,"t":"Anonymous Enums","u":"/docs/New Features/Enumerations","h":"#anonymous-enums","p":206},{"i":214,"t":"Using Compatibility Mode?","u":"/docs/New Features/Enumerations","h":"#using-compatibility-mode","p":206},{"i":218,"t":"Compiler Warnings","u":"/docs/New Features/Explicit Globals","h":"#compiler-warnings","p":216},{"i":224,"t":"Using Compatibility Mode?","u":"/docs/New Features/Export Modifier","h":"#using-compatibility-mode","p":222},{"i":228,"t":"Rules","u":"/docs/New Features/In Expressions","h":"#rules","p":226},{"i":232,"t":"Mixing arguments","u":"/docs/New Features/Named Arguments","h":"#mixing-arguments","p":230},{"i":234,"t":"Limitations","u":"/docs/New Features/Named Arguments","h":"#limitations","p":230},{"i":244,"t":"Method Creation","u":"/docs/New Features/Object-Oriented Programming","h":"#method-creation","p":242},{"i":246,"t":"Static Functions","u":"/docs/New Features/Object-Oriented Programming","h":"#static-functions","p":242},{"i":248,"t":"New Operator","u":"/docs/New Features/Object-Oriented Programming","h":"#new-operator","p":242},{"i":250,"t":"Class Statement","u":"/docs/New Features/Object-Oriented Programming","h":"#class-statement","p":242},{"i":252,"t":"Class Expression","u":"/docs/New Features/Object-Oriented Programming","h":"#class-expression","p":242},{"i":254,"t":"Extends","u":"/docs/New Features/Object-Oriented Programming","h":"#extends","p":242},{"i":256,"t":"Parent Expression","u":"/docs/New Features/Object-Oriented Programming","h":"#parent-expression","p":242},{"i":258,"t":"Private Fields","u":"/docs/New Features/Object-Oriented Programming","h":"#private-fields","p":242},{"i":260,"t":"Constructor Promotion","u":"/docs/New Features/Object-Oriented Programming","h":"#constructor-promotion","p":242},{"i":262,"t":"Instanceof Operator","u":"/docs/New Features/Object-Oriented Programming","h":"#instanceof-operator","p":242},{"i":264,"t":"Using Compatibility Mode?","u":"/docs/New Features/Object-Oriented Programming","h":"#using-compatibility-mode","p":242},{"i":267,"t":"For Member Access","u":"/docs/New Features/Safe Navigation","h":"#for-member-access","p":266},{"i":269,"t":"For Method Calls","u":"/docs/New Features/Safe Navigation","h":"#for-method-calls","p":266},{"i":273,"t":"Cosmetic Underscores","u":"/docs/New Features/Numeral Parsing","h":"#cosmetic-underscores","p":271},{"i":275,"t":"Binary Integers","u":"/docs/New Features/Numeral Parsing","h":"#binary-integers","p":271},{"i":281,"t":"Switch Statement","u":"/docs/New Features/Switch Blocks","h":"#switch-statement","p":279},{"i":283,"t":"Case Blocks","u":"/docs/New Features/Switch Blocks","h":"#case-blocks","p":279},{"i":285,"t":"Switch Expression","u":"/docs/New Features/Switch Blocks","h":"#switch-expression","p":279},{"i":287,"t":"Using Compatibility Mode?","u":"/docs/New Features/Switch Blocks","h":"#using-compatibility-mode","p":279},{"i":293,"t":"Using Compatibility Mode?","u":"/docs/New Features/Try-Catch Statement","h":"#using-compatibility-mode","p":291},{"i":297,"t":"If Expressions","u":"/docs/New Features/Ternary Expressions","h":"#if-expressions","p":295},{"i":299,"t":"Doesn't Lua already have ternaries?","u":"/docs/New Features/Ternary Expressions","h":"#doesnt-lua-already-have-ternaries","p":295},{"i":303,"t":"What will this prevent?","u":"/docs/New Features/Table Freezing","h":"#what-will-this-prevent","p":301},{"i":307,"t":"How does it work?","u":"/docs/Optimizations/For Loops","h":"#how-does-it-work","p":305},{"i":315,"t":"What types can I use?","u":"/docs/New Features/Type Hinting","h":"#what-types-can-i-use","p":313},{"i":328,"t":"Operator Aliases","u":"/docs/New Operators","h":"#operator-aliases","p":327},{"i":330,"t":"Compound Operators","u":"/docs/New Operators","h":"#compound-operators","p":327},{"i":332,"t":"Comparison Chaining","u":"/docs/New Operators","h":"#comparison-chaining","p":327},{"i":334,"t":"Coalescing Operator","u":"/docs/New Operators","h":"#coalescing-operator","p":327},{"i":336,"t":"Walrus Operator","u":"/docs/New Operators","h":"#walrus-operator","p":327},{"i":338,"t":"Spaceship Operator","u":"/docs/New Operators","h":"#spaceship-operator","p":327},{"i":340,"t":"Pipe Operator","u":"/docs/New Operators","h":"#pipe-operator","p":327},{"i":342,"t":"Additional Arguments","u":"/docs/New Operators","h":"#additional-arguments","p":327},{"i":344,"t":"Methods Calls","u":"/docs/New Operators","h":"#methods-calls","p":327},{"i":346,"t":"Anonymous Functions","u":"/docs/New Operators","h":"#anonymous-functions","p":327},{"i":350,"t":"Example 1","u":"/docs/QoL Improvements/Syntax Errors","h":"#example-1","p":348},{"i":352,"t":"Example 2","u":"/docs/QoL Improvements/Syntax Errors","h":"#example-2","p":348},{"i":354,"t":"ANSI Coloring","u":"/docs/QoL Improvements/Syntax Errors","h":"#ansi-coloring","p":348},{"i":362,"t":"base32.encode","u":"/docs/Runtime Environment/Base32","h":"#base32encode","p":360},{"i":364,"t":"base32.decode","u":"/docs/Runtime Environment/Base32","h":"#base32decode","p":360},{"i":368,"t":"base64.encode","u":"/docs/Runtime Environment/Base64","h":"#base64encode","p":366},{"i":370,"t":"base64.decode","u":"/docs/Runtime Environment/Base64","h":"#base64decode","p":366},{"i":372,"t":"base64.urlencode","u":"/docs/Runtime Environment/Base64","h":"#base64urlencode","p":366},{"i":374,"t":"base64.urldecode","u":"/docs/Runtime Environment/Base64","h":"#base64urldecode","p":366},{"i":378,"t":"bigint.new","u":"/docs/Runtime Environment/Bigint","h":"#bigintnew","p":376},{"i":380,"t":"bigint.tostring, __tostring","u":"/docs/Runtime Environment/Bigint","h":"#biginttostring-__tostring","p":376},{"i":382,"t":"bigint.hex","u":"/docs/Runtime Environment/Bigint","h":"#biginthex","p":376},{"i":384,"t":"bigint.binary","u":"/docs/Runtime Environment/Bigint","h":"#bigintbinary","p":376},{"i":386,"t":"bigint.add, __add","u":"/docs/Runtime Environment/Bigint","h":"#bigintadd-__add","p":376},{"i":388,"t":"bigint.sub, __sub","u":"/docs/Runtime Environment/Bigint","h":"#bigintsub-__sub","p":376},{"i":390,"t":"bigint.mul, __mul","u":"/docs/Runtime Environment/Bigint","h":"#bigintmul-__mul","p":376},{"i":392,"t":"bigint.div","u":"/docs/Runtime Environment/Bigint","h":"#bigintdiv","p":376},{"i":394,"t":"__div","u":"/docs/Runtime Environment/Bigint","h":"#__div","p":376},{"i":396,"t":"bigint.mod, __mod","u":"/docs/Runtime Environment/Bigint","h":"#bigintmod-__mod","p":376},{"i":398,"t":"bigint.pow, __pow","u":"/docs/Runtime Environment/Bigint","h":"#bigintpow-__pow","p":376},{"i":400,"t":"bigint.bitlength","u":"/docs/Runtime Environment/Bigint","h":"#bigintbitlength","p":376},{"i":404,"t":"assert.isnil","u":"/docs/Runtime Environment/Assert","h":"#assertisnil","p":402},{"i":406,"t":"assert.istrue","u":"/docs/Runtime Environment/Assert","h":"#assertistrue","p":402},{"i":408,"t":"assert.isfalse","u":"/docs/Runtime Environment/Assert","h":"#assertisfalse","p":402},{"i":410,"t":"assert.falsy","u":"/docs/Runtime Environment/Assert","h":"#assertfalsy","p":402},{"i":412,"t":"assert.truthy","u":"/docs/Runtime Environment/Assert","h":"#asserttruthy","p":402},{"i":414,"t":"assert.notnil","u":"/docs/Runtime Environment/Assert","h":"#assertnotnil","p":402},{"i":416,"t":"assert.equal","u":"/docs/Runtime Environment/Assert","h":"#assertequal","p":402},{"i":418,"t":"assert.nequal","u":"/docs/Runtime Environment/Assert","h":"#assertnequal","p":402},{"i":420,"t":"assert.less","u":"/docs/Runtime Environment/Assert","h":"#assertless","p":402},{"i":422,"t":"assert.lesseq","u":"/docs/Runtime Environment/Assert","h":"#assertlesseq","p":402},{"i":424,"t":"assert.greater","u":"/docs/Runtime Environment/Assert","h":"#assertgreater","p":402},{"i":426,"t":"assert.greatereq","u":"/docs/Runtime Environment/Assert","h":"#assertgreatereq","p":402},{"i":428,"t":"assert.noerror","u":"/docs/Runtime Environment/Assert","h":"#assertnoerror","p":402},{"i":430,"t":"assert.haserror","u":"/docs/Runtime Environment/Assert","h":"#asserthaserror","p":402},{"i":432,"t":"assert.searcherror","u":"/docs/Runtime Environment/Assert","h":"#assertsearcherror","p":402},{"i":434,"t":"assert.contains","u":"/docs/Runtime Environment/Assert","h":"#assertcontains","p":402},{"i":438,"t":"canvas.new","u":"/docs/Runtime Environment/Canvas","h":"#canvasnew","p":436},{"i":440,"t":"canvas.bmp","u":"/docs/Runtime Environment/Canvas","h":"#canvasbmp","p":436},{"i":442,"t":"canvas.qrcode","u":"/docs/Runtime Environment/Canvas","h":"#canvasqrcode","p":436},{"i":444,"t":"canvas.get","u":"/docs/Runtime Environment/Canvas","h":"#canvasget","p":436},{"i":446,"t":"canvas.set","u":"/docs/Runtime Environment/Canvas","h":"#canvasset","p":436},{"i":448,"t":"canvas.fill","u":"/docs/Runtime Environment/Canvas","h":"#canvasfill","p":436},{"i":450,"t":"canvas.size","u":"/docs/Runtime Environment/Canvas","h":"#canvassize","p":436},{"i":452,"t":"canvas.mulsize","u":"/docs/Runtime Environment/Canvas","h":"#canvasmulsize","p":436},{"i":454,"t":"canvas.tobmp","u":"/docs/Runtime Environment/Canvas","h":"#canvastobmp","p":436},{"i":456,"t":"canvas.topng","u":"/docs/Runtime Environment/Canvas","h":"#canvastopng","p":436},{"i":458,"t":"canvas.tobwstring","u":"/docs/Runtime Environment/Canvas","h":"#canvastobwstring","p":436},{"i":462,"t":"coroutine.xresume","u":"/docs/Runtime Environment/Coroutine","h":"#coroutinexresume","p":460},{"i":464,"t":"coroutine.sleep","u":"/docs/Runtime Environment/Coroutine","h":"#coroutinesleep","p":460},{"i":468,"t":"cat.encode","u":"/docs/Runtime Environment/CaT","h":"#catencode","p":466},{"i":470,"t":"cat.decode","u":"/docs/Runtime Environment/CaT","h":"#catdecode","p":466},{"i":474,"t":"ffi.open","u":"/docs/Runtime Environment/FFI","h":"#ffiopen","p":472},{"i":476,"t":"ffi.struct","u":"/docs/Runtime Environment/FFI","h":"#ffistruct","p":472},{"i":478,"t":"ffi.new","u":"/docs/Runtime Environment/FFI","h":"#ffinew","p":472},{"i":480,"t":"ffi.cdef","u":"/docs/Runtime Environment/FFI","h":"#fficdef","p":472},{"i":482,"t":"ffi.sizeof","u":"/docs/Runtime Environment/FFI","h":"#ffisizeof","p":472},{"i":484,"t":"ffi.offsetof","u":"/docs/Runtime Environment/FFI","h":"#ffioffsetof","p":472},{"i":486,"t":"ffi.nullptr","u":"/docs/Runtime Environment/FFI","h":"#ffinullptr","p":472},{"i":488,"t":"FFI Library Class","u":"/docs/Runtime Environment/FFI","h":"#ffi-library-class","p":472},{"i":490,"t":"wrap","u":"/docs/Runtime Environment/FFI","h":"#wrap","p":472},{"i":492,"t":"value","u":"/docs/Runtime Environment/FFI","h":"#value","p":472},{"i":494,"t":"cdef","u":"/docs/Runtime Environment/FFI","h":"#cdef","p":472},{"i":500,"t":"_PVERSION","u":"/docs/Runtime Environment/Global & Base","h":"#_pversion","p":498},{"i":502,"t":"_PSOUP","u":"/docs/Runtime Environment/Global & Base","h":"#_psoup","p":498},{"i":504,"t":"os.platform","u":"/docs/Runtime Environment/Global & Base","h":"#osplatform","p":498},{"i":506,"t":"package.path","u":"/docs/Runtime Environment/Global & Base","h":"#packagepath","p":498},{"i":508,"t":"Default Metatables","u":"/docs/Runtime Environment/Global & Base","h":"#default-metatables","p":498},{"i":510,"t":"dumpvar","u":"/docs/Runtime Environment/Global & Base","h":"#dumpvar","p":498},{"i":512,"t":"exportvar","u":"/docs/Runtime Environment/Global & Base","h":"#exportvar","p":498},{"i":514,"t":"range","u":"/docs/Runtime Environment/Global & Base","h":"#range","p":498},{"i":516,"t":"compareversions","u":"/docs/Runtime Environment/Global & Base","h":"#compareversions","p":498},{"i":518,"t":"wcall","u":"/docs/Runtime Environment/Global & Base","h":"#wcall","p":498},{"i":522,"t":"http.request","u":"/docs/Runtime Environment/HTTP","h":"#httprequest","p":520},{"i":524,"t":"http.hasconnection","u":"/docs/Runtime Environment/HTTP","h":"#httphasconnection","p":520},{"i":526,"t":"http.closeconnections","u":"/docs/Runtime Environment/HTTP","h":"#httpcloseconnections","p":520},{"i":530,"t":"json.encode","u":"/docs/Runtime Environment/JSON","h":"#jsonencode","p":528},{"i":532,"t":"json.decode","u":"/docs/Runtime Environment/JSON","h":"#jsondecode","p":528},{"i":536,"t":"math.isnan","u":"/docs/Runtime Environment/Math","h":"#mathisnan","p":534},{"i":538,"t":"math.round","u":"/docs/Runtime Environment/Math","h":"#mathround","p":534},{"i":540,"t":"math.atan2","u":"/docs/Runtime Environment/Math","h":"#mathatan2","p":534},{"i":544,"t":"io.rename","u":"/docs/Runtime Environment/IO","h":"#iorename","p":542},{"i":546,"t":"io.remove","u":"/docs/Runtime Environment/IO","h":"#ioremove","p":542},{"i":548,"t":"io.copy","u":"/docs/Runtime Environment/IO","h":"#iocopy","p":542},{"i":550,"t":"io.part","u":"/docs/Runtime Environment/IO","h":"#iopart","p":542},{"i":552,"t":"io.isdir","u":"/docs/Runtime Environment/IO","h":"#ioisdir","p":542},{"i":554,"t":"io.isfile","u":"/docs/Runtime Environment/IO","h":"#ioisfile","p":542},{"i":556,"t":"io.exists","u":"/docs/Runtime Environment/IO","h":"#ioexists","p":542},{"i":558,"t":"io.makedir","u":"/docs/Runtime Environment/IO","h":"#iomakedir","p":542},{"i":560,"t":"io.listdir","u":"/docs/Runtime Environment/IO","h":"#iolistdir","p":542},{"i":562,"t":"io.makedirs","u":"/docs/Runtime Environment/IO","h":"#iomakedirs","p":542},{"i":564,"t":"io.absolute","u":"/docs/Runtime Environment/IO","h":"#ioabsolute","p":542},{"i":566,"t":"io.relative","u":"/docs/Runtime Environment/IO","h":"#iorelative","p":542},{"i":568,"t":"io.contents","u":"/docs/Runtime Environment/IO","h":"#iocontents","p":542},{"i":570,"t":"io.filesize","u":"/docs/Runtime Environment/IO","h":"#iofilesize","p":542},{"i":572,"t":"io.writetime","u":"/docs/Runtime Environment/IO","h":"#iowritetime","p":542},{"i":574,"t":"io.currentdir, io.chdir, io.cwd","u":"/docs/Runtime Environment/IO","h":"#iocurrentdir-iochdir-iocwd","p":542},{"i":578,"t":"os.sleep","u":"/docs/Runtime Environment/OS","h":"#ossleep","p":576},{"i":580,"t":"os.nanos, os.micros, os.millis, os.seconds","u":"/docs/Runtime Environment/OS","h":"#osnanos-osmicros-osmillis-osseconds","p":576},{"i":582,"t":"os.unixseconds","u":"/docs/Runtime Environment/OS","h":"#osunixseconds","p":576},{"i":586,"t":"regex.new","u":"/docs/Runtime Environment/Regex","h":"#regexnew","p":584},{"i":588,"t":"regex.match","u":"/docs/Runtime Environment/Regex","h":"#regexmatch","p":584},{"i":592,"t":"__construct","u":"/docs/Runtime Environment/Scheduler","h":"#__construct","p":590},{"i":594,"t":"add","u":"/docs/Runtime Environment/Scheduler","h":"#add","p":590},{"i":596,"t":"addloop","u":"/docs/Runtime Environment/Scheduler","h":"#addloop","p":590},{"i":598,"t":"run","u":"/docs/Runtime Environment/Scheduler","h":"#run","p":590},{"i":600,"t":"yieldfunc","u":"/docs/Runtime Environment/Scheduler","h":"#yieldfunc","p":590},{"i":602,"t":"errorfunc","u":"/docs/Runtime Environment/Scheduler","h":"#errorfunc","p":590},{"i":606,"t":"socket.connect","u":"/docs/Runtime Environment/Socket","h":"#socketconnect","p":604},{"i":608,"t":"socket.listen","u":"/docs/Runtime Environment/Socket","h":"#socketlisten","p":604},{"i":610,"t":"socket.bind","u":"/docs/Runtime Environment/Socket","h":"#socketbind","p":604},{"i":612,"t":"Socket Class","u":"/docs/Runtime Environment/Socket","h":"#socket-class","p":604},{"i":614,"t":"socket.send","u":"/docs/Runtime Environment/Socket","h":"#socketsend","p":604},{"i":616,"t":"socket.recv","u":"/docs/Runtime Environment/Socket","h":"#socketrecv","p":604},{"i":618,"t":"socket.peek","u":"/docs/Runtime Environment/Socket","h":"#socketpeek","p":604},{"i":620,"t":"socket.unrecv","u":"/docs/Runtime Environment/Socket","h":"#socketunrecv","p":604},{"i":622,"t":"socket.starttls","u":"/docs/Runtime Environment/Socket","h":"#socketstarttls","p":604},{"i":624,"t":"socket.close","u":"/docs/Runtime Environment/Socket","h":"#socketclose","p":604},{"i":626,"t":"socket.getpeer","u":"/docs/Runtime Environment/Socket","h":"#socketgetpeer","p":604},{"i":628,"t":"socket.getside","u":"/docs/Runtime Environment/Socket","h":"#socketgetside","p":604},{"i":630,"t":"socket.istls","u":"/docs/Runtime Environment/Socket","h":"#socketistls","p":604},{"i":632,"t":"socket.isopen","u":"/docs/Runtime Environment/Socket","h":"#socketisopen","p":604},{"i":634,"t":"Listener Class","u":"/docs/Runtime Environment/Socket","h":"#listener-class","p":604},{"i":636,"t":"accept","u":"/docs/Runtime Environment/Socket","h":"#accept","p":604},{"i":638,"t":"hasconnection","u":"/docs/Runtime Environment/Socket","h":"#hasconnection","p":604},{"i":642,"t":"Non-Cryptographic Hashing Algorithms","u":"/docs/Runtime Environment/Crypto","h":"#non-cryptographic-hashing-algorithms","p":640},{"i":643,"t":"crypto.lua","u":"/docs/Runtime Environment/Crypto","h":"#cryptolua","p":640},{"i":645,"t":"crypto.md5","u":"/docs/Runtime Environment/Crypto","h":"#cryptomd5","p":640},{"i":647,"t":"crypto.djb2","u":"/docs/Runtime Environment/Crypto","h":"#cryptodjb2","p":640},{"i":649,"t":"crypto.fnv1","u":"/docs/Runtime Environment/Crypto","h":"#cryptofnv1","p":640},{"i":651,"t":"crypto.fnv1a","u":"/docs/Runtime Environment/Crypto","h":"#cryptofnv1a","p":640},{"i":653,"t":"crypto.joaat","u":"/docs/Runtime Environment/Crypto","h":"#cryptojoaat","p":640},{"i":655,"t":"crypto.sdbm","u":"/docs/Runtime Environment/Crypto","h":"#cryptosdbm","p":640},{"i":657,"t":"crypto.crc32","u":"/docs/Runtime Environment/Crypto","h":"#cryptocrc32","p":640},{"i":659,"t":"crypto.adler32","u":"/docs/Runtime Environment/Crypto","h":"#cryptoadler32","p":640},{"i":661,"t":"crypto.lookup3","u":"/docs/Runtime Environment/Crypto","h":"#cryptolookup3","p":640},{"i":663,"t":"crypto.times33","u":"/docs/Runtime Environment/Crypto","h":"#cryptotimes33","p":640},{"i":665,"t":"crypto.murmur1","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur1","p":640},{"i":667,"t":"crypto.murmur2","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur2","p":640},{"i":669,"t":"crypto.murmur2a","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur2a","p":640},{"i":671,"t":"crypto.murmur64a","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur64a","p":640},{"i":673,"t":"crypto.murmur64b","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur64b","p":640},{"i":675,"t":"crypto.murmur2neutral","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur2neutral","p":640},{"i":677,"t":"Cryptographic Hashing Algorithms","u":"/docs/Runtime Environment/Crypto","h":"#cryptographic-hashing-algorithms","p":640},{"i":678,"t":"crypto.sha1","u":"/docs/Runtime Environment/Crypto","h":"#cryptosha1","p":640},{"i":680,"t":"crypto.sha256","u":"/docs/Runtime Environment/Crypto","h":"#cryptosha256","p":640},{"i":682,"t":"crypto.sha384","u":"/docs/Runtime Environment/Crypto","h":"#cryptosha384","p":640},{"i":684,"t":"crypto.sha512","u":"/docs/Runtime Environment/Crypto","h":"#cryptosha512","p":640},{"i":686,"t":"crypto.ripemd160","u":"/docs/Runtime Environment/Crypto","h":"#cryptoripemd160","p":640},{"i":688,"t":"Cryptographic PRNGs","u":"/docs/Runtime Environment/Crypto","h":"#cryptographic-prngs","p":640},{"i":689,"t":"crypto.random","u":"/docs/Runtime Environment/Crypto","h":"#cryptorandom","p":640},{"i":691,"t":"AES-CBC, AES-CFB","u":"/docs/Runtime Environment/Crypto","h":"#aes-cbc-aes-cfb","p":640},{"i":693,"t":"crypto.encrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptoencrypt","p":640},{"i":695,"t":"crypto.decrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecrypt","p":640},{"i":697,"t":"AES-ECB","u":"/docs/Runtime Environment/Crypto","h":"#aes-ecb","p":640},{"i":699,"t":"crypto.encrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptoencrypt-1","p":640},{"i":701,"t":"crypto.decrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecrypt-1","p":640},{"i":703,"t":"AES-GCM","u":"/docs/Runtime Environment/Crypto","h":"#aes-gcm","p":640},{"i":705,"t":"crypto.encrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptoencrypt-2","p":640},{"i":707,"t":"crypto.decrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecrypt-2","p":640},{"i":709,"t":"RSA","u":"/docs/Runtime Environment/Crypto","h":"#rsa","p":640},{"i":710,"t":"crypto.generatekeypair","u":"/docs/Runtime Environment/Crypto","h":"#cryptogeneratekeypair","p":640},{"i":712,"t":"crypto.exportkey","u":"/docs/Runtime Environment/Crypto","h":"#cryptoexportkey","p":640},{"i":714,"t":"crypto.importkey","u":"/docs/Runtime Environment/Crypto","h":"#cryptoimportkey","p":640},{"i":716,"t":"crypto.encrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptoencrypt-3","p":640},{"i":718,"t":"crypto.decrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecrypt-3","p":640},{"i":720,"t":"crypto.sign","u":"/docs/Runtime Environment/Crypto","h":"#cryptosign","p":640},{"i":722,"t":"crypto.verify","u":"/docs/Runtime Environment/Crypto","h":"#cryptoverify","p":640},{"i":724,"t":"Miscellaneous","u":"/docs/Runtime Environment/Crypto","h":"#miscellaneous","p":640},{"i":725,"t":"crypto.decompress","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecompress","p":640},{"i":729,"t":"url.encode","u":"/docs/Runtime Environment/URL","h":"#urlencode","p":727},{"i":731,"t":"url.decode","u":"/docs/Runtime Environment/URL","h":"#urldecode","p":727},{"i":733,"t":"url.parse","u":"/docs/Runtime Environment/URL","h":"#urlparse","p":727},{"i":737,"t":"string.upper","u":"/docs/Runtime Environment/String","h":"#stringupper","p":735},{"i":739,"t":"string.lower","u":"/docs/Runtime Environment/String","h":"#stringlower","p":735},{"i":741,"t":"string.split","u":"/docs/Runtime Environment/String","h":"#stringsplit","p":735},{"i":743,"t":"string.rfind","u":"/docs/Runtime Environment/String","h":"#stringrfind","p":735},{"i":745,"t":"string.strip","u":"/docs/Runtime Environment/String","h":"#stringstrip","p":735},{"i":747,"t":"string.lstrip","u":"/docs/Runtime Environment/String","h":"#stringlstrip","p":735},{"i":749,"t":"string.rstrip","u":"/docs/Runtime Environment/String","h":"#stringrstrip","p":735},{"i":751,"t":"string.isascii","u":"/docs/Runtime Environment/String","h":"#stringisascii","p":735},{"i":753,"t":"string.islower","u":"/docs/Runtime Environment/String","h":"#stringislower","p":735},{"i":755,"t":"string.isalpha","u":"/docs/Runtime Environment/String","h":"#stringisalpha","p":735},{"i":757,"t":"string.isupper","u":"/docs/Runtime Environment/String","h":"#stringisupper","p":735},{"i":759,"t":"string.isalnum","u":"/docs/Runtime Environment/String","h":"#stringisalnum","p":735},{"i":761,"t":"string.iswhitespace","u":"/docs/Runtime Environment/String","h":"#stringiswhitespace","p":735},{"i":763,"t":"string.uformat","u":"/docs/Runtime Environment/String","h":"#stringuformat","p":735},{"i":765,"t":"string.replace","u":"/docs/Runtime Environment/String","h":"#stringreplace","p":735},{"i":767,"t":"string.truncate","u":"/docs/Runtime Environment/String","h":"#stringtruncate","p":735},{"i":769,"t":"string.contains","u":"/docs/Runtime Environment/String","h":"#stringcontains","p":735},{"i":771,"t":"string.casefold","u":"/docs/Runtime Environment/String","h":"#stringcasefold","p":735},{"i":773,"t":"string.formatint","u":"/docs/Runtime Environment/String","h":"#stringformatint","p":735},{"i":775,"t":"string.partition","u":"/docs/Runtime Environment/String","h":"#stringpartition","p":735},{"i":777,"t":"string.endswith","u":"/docs/Runtime Environment/String","h":"#stringendswith","p":735},{"i":779,"t":"string.startswith","u":"/docs/Runtime Environment/String","h":"#stringstartswith","p":735},{"i":781,"t":"string.tohex","u":"/docs/Runtime Environment/String","h":"#stringtohex","p":735},{"i":783,"t":"string.fromhex","u":"/docs/Runtime Environment/String","h":"#stringfromhex","p":735},{"i":787,"t":"__construct","u":"/docs/Runtime Environment/Vector3","h":"#__construct","p":785},{"i":789,"t":"__tostring","u":"/docs/Runtime Environment/Vector3","h":"#__tostring","p":785},{"i":791,"t":"__add, __sub, __mul, __div","u":"/docs/Runtime Environment/Vector3","h":"#__add-__sub-__mul-__div","p":785},{"i":793,"t":"__eq","u":"/docs/Runtime Environment/Vector3","h":"#__eq","p":785},{"i":795,"t":"__len, magnitude","u":"/docs/Runtime Environment/Vector3","h":"#__len-magnitude","p":785},{"i":797,"t":"sum","u":"/docs/Runtime Environment/Vector3","h":"#sum","p":785},{"i":799,"t":"min","u":"/docs/Runtime Environment/Vector3","h":"#min","p":785},{"i":801,"t":"max","u":"/docs/Runtime Environment/Vector3","h":"#max","p":785},{"i":803,"t":"dot","u":"/docs/Runtime Environment/Vector3","h":"#dot","p":785},{"i":805,"t":"abs","u":"/docs/Runtime Environment/Vector3","h":"#abs","p":785},{"i":807,"t":"normalized, normalised","u":"/docs/Runtime Environment/Vector3","h":"#normalized-normalised","p":785},{"i":809,"t":"torot","u":"/docs/Runtime Environment/Vector3","h":"#torot","p":785},{"i":811,"t":"lookat","u":"/docs/Runtime Environment/Vector3","h":"#lookat","p":785},{"i":813,"t":"todir","u":"/docs/Runtime Environment/Vector3","h":"#todir","p":785},{"i":817,"t":"xml.encode","u":"/docs/Runtime Environment/XML","h":"#xmlencode","p":815},{"i":819,"t":"xml.decode","u":"/docs/Runtime Environment/XML","h":"#xmldecode","p":815},{"i":823,"t":"table.sort","u":"/docs/Runtime Environment/Table","h":"#tablesort","p":821},{"i":825,"t":"table.sorted","u":"/docs/Runtime Environment/Table","h":"#tablesorted","p":821},{"i":827,"t":"table.size","u":"/docs/Runtime Environment/Table","h":"#tablesize","p":821},{"i":829,"t":"table.clear","u":"/docs/Runtime Environment/Table","h":"#tableclear","p":821},{"i":831,"t":"table.freeze","u":"/docs/Runtime Environment/Table","h":"#tablefreeze","p":821},{"i":833,"t":"table.isfrozen","u":"/docs/Runtime Environment/Table","h":"#tableisfrozen","p":821},{"i":835,"t":"table.contains","u":"/docs/Runtime Environment/Table","h":"#tablecontains","p":821},{"i":837,"t":"table.find","u":"/docs/Runtime Environment/Table","h":"#tablefind","p":821},{"i":839,"t":"table.findkey, table.findindex","u":"/docs/Runtime Environment/Table","h":"#tablefindkey-tablefindindex","p":821},{"i":841,"t":"table.reverse","u":"/docs/Runtime Environment/Table","h":"#tablereverse","p":821},{"i":843,"t":"table.reversed","u":"/docs/Runtime Environment/Table","h":"#tablereversed","p":821},{"i":845,"t":"table.reorder","u":"/docs/Runtime Environment/Table","h":"#tablereorder","p":821},{"i":847,"t":"table.reordered","u":"/docs/Runtime Environment/Table","h":"#tablereordered","p":821},{"i":849,"t":"table.foreach","u":"/docs/Runtime Environment/Table","h":"#tableforeach","p":821},{"i":851,"t":"table.filter","u":"/docs/Runtime Environment/Table","h":"#tablefilter","p":821},{"i":853,"t":"table.filtered","u":"/docs/Runtime Environment/Table","h":"#tablefiltered","p":821},{"i":855,"t":"table.map","u":"/docs/Runtime Environment/Table","h":"#tablemap","p":821},{"i":857,"t":"table.mapped","u":"/docs/Runtime Environment/Table","h":"#tablemapped","p":821},{"i":859,"t":"table.reduce","u":"/docs/Runtime Environment/Table","h":"#tablereduce","p":821},{"i":861,"t":"table.min","u":"/docs/Runtime Environment/Table","h":"#tablemin","p":821},{"i":863,"t":"table.max","u":"/docs/Runtime Environment/Table","h":"#tablemax","p":821},{"i":865,"t":"table.checkall","u":"/docs/Runtime Environment/Table","h":"#tablecheckall","p":821},{"i":867,"t":"table.keys","u":"/docs/Runtime Environment/Table","h":"#tablekeys","p":821},{"i":869,"t":"table.countvalues","u":"/docs/Runtime Environment/Table","h":"#tablecountvalues","p":821},{"i":871,"t":"table.chunk","u":"/docs/Runtime Environment/Table","h":"#tablechunk","p":821},{"i":873,"t":"table.back","u":"/docs/Runtime Environment/Table","h":"#tableback","p":821},{"i":875,"t":"table.slice","u":"/docs/Runtime Environment/Table","h":"#tableslice","p":821},{"i":877,"t":"table.modget","u":"/docs/Runtime Environment/Table","h":"#tablemodget","p":821},{"i":879,"t":"table.modset","u":"/docs/Runtime Environment/Table","h":"#tablemodset","p":821}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/3",[0,4.235,1,4.235]],["t/5",[2,3.203,3,3.308]],["t/7",[4,2.377,5,2.631,6,2.631,7,3.107]],["t/9",[1,4.235,2,3.203]],["t/11",[8,3.386,9,3.386,10,3.386]],["t/15",[11,6.228]],["t/19",[12,4.666,13,4.666]],["t/20",[4,3.57,14,3.951]],["t/22",[15,3.73,16,3.386,17,3.73]],["t/24",[16,2.82,18,2.631,19,3.107,20,2.631]],["t/26",[5,3.159,21,3.73,22,3.386]],["t/28",[18,3.159,23,3.73,24,3.73]],["t/30",[25,4.666,26,4.666]],["t/32",[6,5.274]],["t/34",[27,6.228]],["t/38",[28,3.73,29,3.159,30,3.73]],["t/40",[20,3.951,31,4.666]],["t/42",[32,6.228]],["t/43",[33,6.228]],["t/45",[34,4.666,35,4.666]],["t/47",[36,6.228]],["t/49",[37,6.228]],["t/51",[4,2.854,29,3.159,38,3.73]],["t/53",[39,4.666,40,4.666]],["t/55",[41,4.666,42,4.666]],["t/57",[43,6.228]],["t/59",[44,6.228]],["t/63",[29,3.951,45,4.666]],["t/69",[46,3.951,47,3.951]],["t/71",[48,5.653]],["t/73",[49,6.228]],["t/77",[50,4.666,51,3.739]],["t/79",[2,2.561,3,2.645,52,2.645]],["t/83",[53,6.228]],["t/85",[54,6.228]],["t/87",[55,6.228]],["t/89",[56,6.228]],["t/91",[57,6.228]],["t/93",[58,6.228]],["t/95",[59,6.228]],["t/97",[60,6.228]],["t/99",[61,6.228]],["t/101",[62,6.228]],["t/103",[63,6.228]],["t/105",[64,6.228]],["t/107",[65,6.228]],["t/109",[66,6.228]],["t/111",[67,6.228]],["t/113",[68,6.228]],["t/115",[69,6.228]],["t/117",[70,6.228]],["t/119",[71,6.228]],["t/121",[72,6.228]],["t/123",[73,6.228]],["t/125",[74,6.228]],["t/127",[75,6.228]],["t/129",[76,6.228]],["t/131",[77,6.228]],["t/133",[78,6.228]],["t/135",[79,6.228]],["t/137",[80,6.228]],["t/139",[81,6.228]],["t/141",[82,6.228]],["t/143",[83,6.228]],["t/145",[84,6.228]],["t/147",[85,6.228]],["t/149",[86,6.228]],["t/151",[87,6.228]],["t/153",[88,6.228]],["t/155",[89,6.228]],["t/161",[90,4.666,91,4.235]],["t/163",[9,4.235,91,4.235]],["t/165",[48,3.386,92,3.73,93,3.386]],["t/167",[94,4.666,95,4.235]],["t/171",[96,3.739,97,3.951]],["t/172",[98,4.666,99,3.951]],["t/174",[99,3.951,100,4.235]],["t/176",[99,3.951,101,4.235]],["t/178",[97,3.951,102,4.666]],["t/180",[14,3.951,103,4.666]],["t/182",[51,3.739,104,4.666]],["t/184",[105,4.666,106,4.666]],["t/186",[107,4.666,108,4.666]],["t/188",[14,3.159,109,2.989,110,3.159]],["t/190",[93,3.386,109,2.989,110,3.159]],["t/192",[109,2.989,110,3.159,111,3.73]],["t/194",[112,4.666,113,4.666]],["t/196",[100,4.235,114,4.666]],["t/198",[115,4.666,116,4.666]],["t/200",[4,2.854,5,3.159,6,3.159]],["t/202",[96,2.989,117,3.73,118,3.73]],["t/204",[96,2.989,119,3.73,120,3.73]],["t/208",[121,4.666,122,4.235]],["t/210",[123,6.228]],["t/212",[122,4.235,124,4.235]],["t/214",[2,2.561,3,2.645,52,2.645]],["t/218",[4,3.57,96,3.739]],["t/224",[2,2.561,3,2.645,52,2.645]],["t/228",[125,6.228]],["t/232",[51,3.739,126,4.666]],["t/234",[22,5.653]],["t/244",[127,3.951,128,4.666]],["t/246",[46,3.951,129,4.666]],["t/248",[0,4.235,130,3.203]],["t/250",[131,3.57,132,4.235]],["t/252",[131,3.57,133,3.739]],["t/254",[134,6.228]],["t/256",[133,3.739,135,4.666]],["t/258",[101,4.235,136,4.666]],["t/260",[137,4.666,138,4.666]],["t/262",[130,3.203,139,4.666]],["t/264",[2,2.561,3,2.645,52,2.645]],["t/267",[140,4.666,141,4.666]],["t/269",[47,3.951,127,3.951]],["t/273",[142,4.666,143,4.666]],["t/275",[20,3.951,144,4.666]],["t/281",[132,4.235,145,4.235]],["t/283",[146,4.666,147,4.666]],["t/285",[133,3.739,145,4.235]],["t/287",[2,2.561,3,2.645,52,2.645]],["t/293",[2,2.561,3,2.645,52,2.645]],["t/297",[133,4.991]],["t/299",[148,3.107,149,3.107,150,3.107,151,3.107]],["t/303",[18,5.274]],["t/307",[152,6.228]],["t/315",[52,3.308,97,3.951]],["t/328",[130,3.203,153,4.666]],["t/330",[130,3.203,154,4.666]],["t/332",[155,4.666,156,4.666]],["t/334",[130,3.203,157,4.666]],["t/336",[130,3.203,158,4.666]],["t/338",[130,3.203,159,4.666]],["t/340",[130,3.203,160,4.666]],["t/342",[51,3.739,161,4.666]],["t/344",[47,3.951,127,3.951]],["t/346",[46,3.951,124,4.235]],["t/350",[162,4.235,163,4.666]],["t/352",[162,4.235,164,4.666]],["t/354",[165,4.666,166,4.666]],["t/362",[167,6.228]],["t/364",[168,6.228]],["t/368",[169,6.228]],["t/370",[170,6.228]],["t/372",[171,6.228]],["t/374",[172,6.228]],["t/378",[173,6.228]],["t/380",[174,4.666,175,4.235]],["t/382",[176,6.228]],["t/384",[177,6.228]],["t/386",[178,4.666,179,4.235]],["t/388",[180,4.666,181,4.235]],["t/390",[182,4.666,183,4.235]],["t/392",[184,6.228]],["t/394",[185,5.653]],["t/396",[186,4.666,187,4.666]],["t/398",[188,4.666,189,4.666]],["t/400",[190,6.228]],["t/404",[191,6.228]],["t/406",[192,6.228]],["t/408",[193,6.228]],["t/410",[194,6.228]],["t/412",[195,6.228]],["t/414",[196,6.228]],["t/416",[197,6.228]],["t/418",[198,6.228]],["t/420",[199,6.228]],["t/422",[200,6.228]],["t/424",[201,6.228]],["t/426",[202,6.228]],["t/428",[203,6.228]],["t/430",[204,6.228]],["t/432",[205,6.228]],["t/434",[206,6.228]],["t/438",[207,6.228]],["t/440",[208,6.228]],["t/442",[209,6.228]],["t/444",[210,6.228]],["t/446",[211,6.228]],["t/448",[212,6.228]],["t/450",[213,6.228]],["t/452",[214,6.228]],["t/454",[215,6.228]],["t/456",[216,6.228]],["t/458",[217,6.228]],["t/462",[218,6.228]],["t/464",[219,6.228]],["t/468",[220,6.228]],["t/470",[221,6.228]],["t/474",[222,6.228]],["t/476",[223,6.228]],["t/478",[224,6.228]],["t/480",[225,6.228]],["t/482",[226,6.228]],["t/484",[227,6.228]],["t/486",[228,6.228]],["t/488",[95,3.386,131,2.854,229,3.73]],["t/490",[230,6.228]],["t/492",[231,6.228]],["t/494",[232,6.228]],["t/500",[233,6.228]],["t/502",[234,6.228]],["t/504",[235,6.228]],["t/506",[236,6.228]],["t/508",[8,4.235,10,4.235]],["t/510",[237,6.228]],["t/512",[238,6.228]],["t/514",[239,6.228]],["t/516",[240,6.228]],["t/518",[241,6.228]],["t/522",[242,6.228]],["t/524",[243,6.228]],["t/526",[244,6.228]],["t/530",[245,6.228]],["t/532",[246,6.228]],["t/536",[247,6.228]],["t/538",[248,6.228]],["t/540",[249,6.228]],["t/544",[250,6.228]],["t/546",[251,6.228]],["t/548",[252,6.228]],["t/550",[253,6.228]],["t/552",[254,6.228]],["t/554",[255,6.228]],["t/556",[256,6.228]],["t/558",[257,5.653]],["t/560",[258,6.228]],["t/562",[257,5.653]],["t/564",[259,6.228]],["t/566",[260,6.228]],["t/568",[261,6.228]],["t/570",[262,6.228]],["t/572",[263,6.228]],["t/574",[264,3.73,265,3.73,266,3.73]],["t/578",[267,6.228]],["t/580",[268,3.107,269,3.107,270,3.107,271,3.107]],["t/582",[272,6.228]],["t/586",[273,6.228]],["t/588",[274,6.228]],["t/592",[275,5.653]],["t/594",[276,6.228]],["t/596",[277,6.228]],["t/598",[278,6.228]],["t/600",[279,6.228]],["t/602",[280,6.228]],["t/606",[281,6.228]],["t/608",[282,6.228]],["t/610",[283,6.228]],["t/612",[131,3.57,284,4.666]],["t/614",[285,6.228]],["t/616",[286,6.228]],["t/618",[287,6.228]],["t/620",[288,6.228]],["t/622",[289,6.228]],["t/624",[290,6.228]],["t/626",[291,6.228]],["t/628",[292,6.228]],["t/630",[293,6.228]],["t/632",[294,6.228]],["t/634",[131,3.57,295,4.666]],["t/636",[296,6.228]],["t/638",[297,6.228]],["t/642",[109,2.49,298,2.631,299,2.82,300,2.82]],["t/643",[301,6.228]],["t/645",[302,6.228]],["t/647",[303,6.228]],["t/649",[304,6.228]],["t/651",[305,6.228]],["t/653",[306,6.228]],["t/655",[307,6.228]],["t/657",[308,6.228]],["t/659",[309,6.228]],["t/661",[310,6.228]],["t/663",[311,6.228]],["t/665",[312,6.228]],["t/667",[313,6.228]],["t/669",[314,6.228]],["t/671",[315,6.228]],["t/673",[316,6.228]],["t/675",[317,6.228]],["t/677",[298,3.159,299,3.386,300,3.386]],["t/678",[318,6.228]],["t/680",[319,6.228]],["t/682",[320,6.228]],["t/684",[321,6.228]],["t/686",[322,6.228]],["t/688",[298,3.951,323,4.666]],["t/689",[324,6.228]],["t/691",[325,4.192,326,3.107,327,3.107]],["t/693",[328,4.991]],["t/695",[329,4.991]],["t/697",[325,3.951,330,4.666]],["t/699",[328,4.991]],["t/701",[329,4.991]],["t/703",[325,3.951,331,4.666]],["t/705",[328,4.991]],["t/707",[329,4.991]],["t/709",[332,6.228]],["t/710",[333,6.228]],["t/712",[334,6.228]],["t/714",[335,6.228]],["t/716",[328,4.991]],["t/718",[329,4.991]],["t/720",[336,6.228]],["t/722",[337,6.228]],["t/724",[338,6.228]],["t/725",[339,6.228]],["t/729",[340,6.228]],["t/731",[341,6.228]],["t/733",[342,6.228]],["t/737",[343,6.228]],["t/739",[344,6.228]],["t/741",[345,6.228]],["t/743",[346,6.228]],["t/745",[347,6.228]],["t/747",[348,6.228]],["t/749",[349,6.228]],["t/751",[350,6.228]],["t/753",[351,6.228]],["t/755",[352,6.228]],["t/757",[353,6.228]],["t/759",[354,6.228]],["t/761",[355,6.228]],["t/763",[356,6.228]],["t/765",[357,6.228]],["t/767",[358,6.228]],["t/769",[359,6.228]],["t/771",[360,6.228]],["t/773",[361,6.228]],["t/775",[362,6.228]],["t/777",[363,6.228]],["t/779",[364,6.228]],["t/781",[365,6.228]],["t/783",[366,6.228]],["t/787",[275,5.653]],["t/789",[175,5.653]],["t/791",[179,2.82,181,2.82,183,2.82,185,2.82]],["t/793",[367,6.228]],["t/795",[368,4.666,369,4.666]],["t/797",[370,6.228]],["t/799",[371,6.228]],["t/801",[372,6.228]],["t/803",[373,6.228]],["t/805",[374,6.228]],["t/807",[375,4.666,376,4.666]],["t/809",[377,6.228]],["t/811",[378,6.228]],["t/813",[379,6.228]],["t/817",[380,6.228]],["t/819",[381,6.228]],["t/823",[382,5.653]],["t/825",[382,5.653]],["t/827",[383,6.228]],["t/829",[384,6.228]],["t/831",[385,6.228]],["t/833",[386,6.228]],["t/835",[387,6.228]],["t/837",[388,6.228]],["t/839",[389,4.666,390,4.666]],["t/841",[391,5.653]],["t/843",[391,5.653]],["t/845",[392,5.653]],["t/847",[392,5.653]],["t/849",[393,6.228]],["t/851",[394,5.653]],["t/853",[394,5.653]],["t/855",[395,5.653]],["t/857",[395,5.653]],["t/859",[396,6.228]],["t/861",[397,6.228]],["t/863",[398,6.228]],["t/865",[399,6.228]],["t/867",[400,6.228]],["t/869",[401,6.228]],["t/871",[402,6.228]],["t/873",[403,6.228]],["t/875",[404,6.228]],["t/877",[405,6.228]],["t/879",[406,6.228]]],"invertedIndex":[["0.1.0",{"_index":89,"t":{"155":{"position":[[0,5]]}}}],["0.10.0",{"_index":53,"t":{"83":{"position":[[0,6]]}}}],["0.2.0",{"_index":88,"t":{"153":{"position":[[0,5]]}}}],["0.2.1",{"_index":87,"t":{"151":{"position":[[0,5]]}}}],["0.2.2",{"_index":86,"t":{"149":{"position":[[0,5]]}}}],["0.3.0",{"_index":85,"t":{"147":{"position":[[0,5]]}}}],["0.3.1",{"_index":84,"t":{"145":{"position":[[0,5]]}}}],["0.3.2",{"_index":83,"t":{"143":{"position":[[0,5]]}}}],["0.4.0",{"_index":82,"t":{"141":{"position":[[0,5]]}}}],["0.4.1",{"_index":81,"t":{"139":{"position":[[0,5]]}}}],["0.4.2",{"_index":80,"t":{"137":{"position":[[0,5]]}}}],["0.4.3",{"_index":79,"t":{"135":{"position":[[0,5]]}}}],["0.4.4",{"_index":78,"t":{"133":{"position":[[0,5]]}}}],["0.4.5",{"_index":77,"t":{"131":{"position":[[0,5]]}}}],["0.5.0",{"_index":76,"t":{"129":{"position":[[0,5]]}}}],["0.5.1",{"_index":75,"t":{"127":{"position":[[0,5]]}}}],["0.5.2",{"_index":74,"t":{"125":{"position":[[0,5]]}}}],["0.5.3",{"_index":73,"t":{"123":{"position":[[0,5]]}}}],["0.5.4",{"_index":72,"t":{"121":{"position":[[0,5]]}}}],["0.6.0",{"_index":71,"t":{"119":{"position":[[0,5]]}}}],["0.6.1",{"_index":70,"t":{"117":{"position":[[0,5]]}}}],["0.6.2",{"_index":69,"t":{"115":{"position":[[0,5]]}}}],["0.6.3",{"_index":68,"t":{"113":{"position":[[0,5]]}}}],["0.7.0",{"_index":67,"t":{"111":{"position":[[0,5]]}}}],["0.7.1",{"_index":66,"t":{"109":{"position":[[0,5]]}}}],["0.7.2",{"_index":65,"t":{"107":{"position":[[0,5]]}}}],["0.7.3",{"_index":64,"t":{"105":{"position":[[0,5]]}}}],["0.7.4",{"_index":63,"t":{"103":{"position":[[0,5]]}}}],["0.8.0",{"_index":62,"t":{"101":{"position":[[0,5]]}}}],["0.8.1",{"_index":61,"t":{"99":{"position":[[0,5]]}}}],["0.8.2",{"_index":60,"t":{"97":{"position":[[0,5]]}}}],["0.9.0",{"_index":59,"t":{"95":{"position":[[0,5]]}}}],["0.9.1",{"_index":58,"t":{"93":{"position":[[0,5]]}}}],["0.9.2",{"_index":57,"t":{"91":{"position":[[0,5]]}}}],["0.9.3",{"_index":56,"t":{"89":{"position":[[0,5]]}}}],["0.9.4",{"_index":55,"t":{"87":{"position":[[0,5]]}}}],["0.9.5",{"_index":54,"t":{"85":{"position":[[0,5]]}}}],["1",{"_index":163,"t":{"350":{"position":[[8,1]]}}}],["2",{"_index":164,"t":{"352":{"position":[[8,1]]}}}],["__add",{"_index":179,"t":{"386":{"position":[[12,5]]},"791":{"position":[[0,6]]}}}],["__construct",{"_index":275,"t":{"592":{"position":[[0,11]]},"787":{"position":[[0,11]]}}}],["__div",{"_index":185,"t":{"394":{"position":[[0,5]]},"791":{"position":[[21,5]]}}}],["__eq",{"_index":367,"t":{"793":{"position":[[0,4]]}}}],["__len",{"_index":368,"t":{"795":{"position":[[0,6]]}}}],["__mod",{"_index":187,"t":{"396":{"position":[[12,5]]}}}],["__mul",{"_index":183,"t":{"390":{"position":[[12,5]]},"791":{"position":[[14,6]]}}}],["__pow",{"_index":189,"t":{"398":{"position":[[12,5]]}}}],["__sub",{"_index":181,"t":{"388":{"position":[[12,5]]},"791":{"position":[[7,6]]}}}],["__tostr",{"_index":175,"t":{"380":{"position":[[17,10]]},"789":{"position":[[0,10]]}}}],["_psoup",{"_index":234,"t":{"502":{"position":[[0,6]]}}}],["_pversion",{"_index":233,"t":{"500":{"position":[[0,9]]}}}],["ab",{"_index":374,"t":{"805":{"position":[[0,3]]}}}],["accept",{"_index":296,"t":{"636":{"position":[[0,6]]}}}],["access",{"_index":141,"t":{"267":{"position":[[11,6]]}}}],["add",{"_index":276,"t":{"594":{"position":[[0,3]]}}}],["addit",{"_index":161,"t":{"342":{"position":[[0,10]]}}}],["addloop",{"_index":277,"t":{"596":{"position":[[0,7]]}}}],["ae",{"_index":325,"t":{"691":{"position":[[0,3],[9,3]]},"697":{"position":[[0,3]]},"703":{"position":[[0,3]]}}}],["algorithm",{"_index":300,"t":{"642":{"position":[[26,10]]},"677":{"position":[[22,10]]}}}],["alias",{"_index":153,"t":{"328":{"position":[[9,7]]}}}],["alreadi",{"_index":150,"t":{"299":{"position":[[12,7]]}}}],["anonym",{"_index":124,"t":{"212":{"position":[[0,9]]},"346":{"position":[[0,9]]}}}],["ansi",{"_index":165,"t":{"354":{"position":[[0,4]]}}}],["apt",{"_index":34,"t":{"45":{"position":[[0,3]]}}}],["argument",{"_index":51,"t":{"77":{"position":[[16,8]]},"182":{"position":[[10,9]]},"232":{"position":[[7,9]]},"342":{"position":[[11,9]]}}}],["array",{"_index":90,"t":{"161":{"position":[[0,5]]}}}],["aspir",{"_index":45,"t":{"63":{"position":[[16,6]]}}}],["assert.contain",{"_index":206,"t":{"434":{"position":[[0,15]]}}}],["assert.equ",{"_index":197,"t":{"416":{"position":[[0,12]]}}}],["assert.falsi",{"_index":194,"t":{"410":{"position":[[0,12]]}}}],["assert.great",{"_index":201,"t":{"424":{"position":[[0,14]]}}}],["assert.greatereq",{"_index":202,"t":{"426":{"position":[[0,16]]}}}],["assert.haserror",{"_index":204,"t":{"430":{"position":[[0,15]]}}}],["assert.isfals",{"_index":193,"t":{"408":{"position":[[0,14]]}}}],["assert.isnil",{"_index":191,"t":{"404":{"position":[[0,12]]}}}],["assert.istru",{"_index":192,"t":{"406":{"position":[[0,13]]}}}],["assert.less",{"_index":199,"t":{"420":{"position":[[0,11]]}}}],["assert.lesseq",{"_index":200,"t":{"422":{"position":[[0,13]]}}}],["assert.nequ",{"_index":198,"t":{"418":{"position":[[0,13]]}}}],["assert.noerror",{"_index":203,"t":{"428":{"position":[[0,14]]}}}],["assert.notnil",{"_index":196,"t":{"414":{"position":[[0,13]]}}}],["assert.searcherror",{"_index":205,"t":{"432":{"position":[[0,18]]}}}],["assert.truthi",{"_index":195,"t":{"412":{"position":[[0,13]]}}}],["aur",{"_index":36,"t":{"47":{"position":[[0,3]]}}}],["bad",{"_index":105,"t":{"184":{"position":[[0,3]]}}}],["base32.decod",{"_index":168,"t":{"364":{"position":[[0,13]]}}}],["base32.encod",{"_index":167,"t":{"362":{"position":[[0,13]]}}}],["base64.decod",{"_index":170,"t":{"370":{"position":[[0,13]]}}}],["base64.encod",{"_index":169,"t":{"368":{"position":[[0,13]]}}}],["base64.urldecod",{"_index":172,"t":{"374":{"position":[[0,16]]}}}],["base64.urlencod",{"_index":171,"t":{"372":{"position":[[0,16]]}}}],["bigint.add",{"_index":178,"t":{"386":{"position":[[0,11]]}}}],["bigint.binari",{"_index":177,"t":{"384":{"position":[[0,13]]}}}],["bigint.bitlength",{"_index":190,"t":{"400":{"position":[[0,16]]}}}],["bigint.div",{"_index":184,"t":{"392":{"position":[[0,10]]}}}],["bigint.hex",{"_index":176,"t":{"382":{"position":[[0,10]]}}}],["bigint.mod",{"_index":186,"t":{"396":{"position":[[0,11]]}}}],["bigint.mul",{"_index":182,"t":{"390":{"position":[[0,11]]}}}],["bigint.new",{"_index":173,"t":{"378":{"position":[[0,10]]}}}],["bigint.pow",{"_index":188,"t":{"398":{"position":[[0,11]]}}}],["bigint.sub",{"_index":180,"t":{"388":{"position":[[0,11]]}}}],["bigint.tostr",{"_index":174,"t":{"380":{"position":[[0,16]]}}}],["binari",{"_index":20,"t":{"24":{"position":[[19,6]]},"40":{"position":[[9,8]]},"275":{"position":[[0,6]]}}}],["block",{"_index":147,"t":{"283":{"position":[[5,6]]}}}],["bytecod",{"_index":111,"t":{"192":{"position":[[13,8]]}}}],["call",{"_index":47,"t":{"69":{"position":[[9,5]]},"269":{"position":[[11,5]]},"344":{"position":[[8,5]]}}}],["canvas.bmp",{"_index":208,"t":{"440":{"position":[[0,10]]}}}],["canvas.fil",{"_index":212,"t":{"448":{"position":[[0,11]]}}}],["canvas.get",{"_index":210,"t":{"444":{"position":[[0,10]]}}}],["canvas.muls",{"_index":214,"t":{"452":{"position":[[0,14]]}}}],["canvas.new",{"_index":207,"t":{"438":{"position":[[0,10]]}}}],["canvas.qrcod",{"_index":209,"t":{"442":{"position":[[0,13]]}}}],["canvas.s",{"_index":213,"t":{"450":{"position":[[0,11]]}}}],["canvas.set",{"_index":211,"t":{"446":{"position":[[0,10]]}}}],["canvas.tobmp",{"_index":215,"t":{"454":{"position":[[0,12]]}}}],["canvas.tobwstr",{"_index":217,"t":{"458":{"position":[[0,17]]}}}],["canvas.topng",{"_index":216,"t":{"456":{"position":[[0,12]]}}}],["case",{"_index":146,"t":{"283":{"position":[[0,4]]}}}],["cat.decod",{"_index":221,"t":{"470":{"position":[[0,10]]}}}],["cat.encod",{"_index":220,"t":{"468":{"position":[[0,10]]}}}],["cbc",{"_index":326,"t":{"691":{"position":[[4,4]]}}}],["cdef",{"_index":232,"t":{"494":{"position":[[0,4]]}}}],["cfb",{"_index":327,"t":{"691":{"position":[[13,3]]}}}],["chain",{"_index":156,"t":{"332":{"position":[[11,8]]}}}],["chang",{"_index":117,"t":{"202":{"position":[[0,8]]}}}],["chocolatey",{"_index":33,"t":{"43":{"position":[[0,10]]}}}],["class",{"_index":131,"t":{"250":{"position":[[0,5]]},"252":{"position":[[0,5]]},"488":{"position":[[12,5]]},"612":{"position":[[7,5]]},"634":{"position":[[9,5]]}}}],["coalesc",{"_index":157,"t":{"334":{"position":[[0,10]]}}}],["code",{"_index":14,"t":{"20":{"position":[[9,4]]},"180":{"position":[[12,4]]},"188":{"position":[[13,4]]}}}],["color",{"_index":166,"t":{"354":{"position":[[5,8]]}}}],["comparevers",{"_index":240,"t":{"516":{"position":[[0,15]]}}}],["comparison",{"_index":155,"t":{"332":{"position":[[0,10]]}}}],["compat",{"_index":2,"t":{"5":{"position":[[0,13]]},"9":{"position":[[0,10]]},"79":{"position":[[6,13]]},"214":{"position":[[6,13]]},"224":{"position":[[6,13]]},"264":{"position":[[6,13]]},"287":{"position":[[6,13]]},"293":{"position":[[6,13]]}}}],["compil",{"_index":4,"t":{"7":{"position":[[0,7]]},"20":{"position":[[0,8]]},"51":{"position":[[0,7]]},"200":{"position":[[0,7]]},"218":{"position":[[0,8]]}}}],["compound",{"_index":154,"t":{"330":{"position":[[0,8]]}}}],["condit",{"_index":49,"t":{"73":{"position":[[0,12]]}}}],["configur",{"_index":6,"t":{"7":{"position":[[13,13]]},"32":{"position":[[0,13]]},"200":{"position":[[13,13]]}}}],["constructor",{"_index":137,"t":{"260":{"position":[[0,11]]}}}],["content",{"_index":12,"t":{"19":{"position":[[0,7]]}}}],["continue'",{"_index":50,"t":{"77":{"position":[[0,10]]}}}],["coroutine.sleep",{"_index":219,"t":{"464":{"position":[[0,15]]}}}],["coroutine.xresum",{"_index":218,"t":{"462":{"position":[[0,17]]}}}],["cosmet",{"_index":142,"t":{"273":{"position":[[0,8]]}}}],["creation",{"_index":128,"t":{"244":{"position":[[7,8]]}}}],["crypto.adler32",{"_index":309,"t":{"659":{"position":[[0,14]]}}}],["crypto.crc32",{"_index":308,"t":{"657":{"position":[[0,12]]}}}],["crypto.decompress",{"_index":339,"t":{"725":{"position":[[0,17]]}}}],["crypto.decrypt",{"_index":329,"t":{"695":{"position":[[0,14]]},"701":{"position":[[0,14]]},"707":{"position":[[0,14]]},"718":{"position":[[0,14]]}}}],["crypto.djb2",{"_index":303,"t":{"647":{"position":[[0,11]]}}}],["crypto.encrypt",{"_index":328,"t":{"693":{"position":[[0,14]]},"699":{"position":[[0,14]]},"705":{"position":[[0,14]]},"716":{"position":[[0,14]]}}}],["crypto.exportkey",{"_index":334,"t":{"712":{"position":[[0,16]]}}}],["crypto.fnv1",{"_index":304,"t":{"649":{"position":[[0,11]]}}}],["crypto.fnv1a",{"_index":305,"t":{"651":{"position":[[0,12]]}}}],["crypto.generatekeypair",{"_index":333,"t":{"710":{"position":[[0,22]]}}}],["crypto.importkey",{"_index":335,"t":{"714":{"position":[[0,16]]}}}],["crypto.joaat",{"_index":306,"t":{"653":{"position":[[0,12]]}}}],["crypto.lookup3",{"_index":310,"t":{"661":{"position":[[0,14]]}}}],["crypto.lua",{"_index":301,"t":{"643":{"position":[[0,10]]}}}],["crypto.md5",{"_index":302,"t":{"645":{"position":[[0,10]]}}}],["crypto.murmur1",{"_index":312,"t":{"665":{"position":[[0,14]]}}}],["crypto.murmur2",{"_index":313,"t":{"667":{"position":[[0,14]]}}}],["crypto.murmur2a",{"_index":314,"t":{"669":{"position":[[0,15]]}}}],["crypto.murmur2neutr",{"_index":317,"t":{"675":{"position":[[0,21]]}}}],["crypto.murmur64a",{"_index":315,"t":{"671":{"position":[[0,16]]}}}],["crypto.murmur64b",{"_index":316,"t":{"673":{"position":[[0,16]]}}}],["crypto.random",{"_index":324,"t":{"689":{"position":[[0,13]]}}}],["crypto.ripemd160",{"_index":322,"t":{"686":{"position":[[0,16]]}}}],["crypto.sdbm",{"_index":307,"t":{"655":{"position":[[0,11]]}}}],["crypto.sha1",{"_index":318,"t":{"678":{"position":[[0,11]]}}}],["crypto.sha256",{"_index":319,"t":{"680":{"position":[[0,13]]}}}],["crypto.sha384",{"_index":320,"t":{"682":{"position":[[0,13]]}}}],["crypto.sha512",{"_index":321,"t":{"684":{"position":[[0,13]]}}}],["crypto.sign",{"_index":336,"t":{"720":{"position":[[0,11]]}}}],["crypto.times33",{"_index":311,"t":{"663":{"position":[[0,14]]}}}],["crypto.verifi",{"_index":337,"t":{"722":{"position":[[0,13]]}}}],["cryptograph",{"_index":298,"t":{"642":{"position":[[4,13]]},"677":{"position":[[0,13]]},"688":{"position":[[0,13]]}}}],["custom",{"_index":15,"t":{"22":{"position":[[0,6]]}}}],["default",{"_index":8,"t":{"11":{"position":[[0,7]]},"508":{"position":[[0,7]]}}}],["destructur",{"_index":91,"t":{"161":{"position":[[6,13]]},"163":{"position":[[6,13]]}}}],["differ",{"_index":92,"t":{"165":{"position":[[0,9]]}}}],["disabl",{"_index":119,"t":{"204":{"position":[[0,7]]}}}],["discard",{"_index":115,"t":{"198":{"position":[[0,9]]}}}],["doesn't",{"_index":148,"t":{"299":{"position":[[0,7]]}}}],["dot",{"_index":373,"t":{"803":{"position":[[0,3]]}}}],["dump",{"_index":26,"t":{"30":{"position":[[3,7]]}}}],["dumpvar",{"_index":237,"t":{"510":{"position":[[0,7]]}}}],["ecb",{"_index":330,"t":{"697":{"position":[[4,3]]}}}],["enum",{"_index":122,"t":{"208":{"position":[[7,5]]},"212":{"position":[[10,5]]}}}],["errorfunc",{"_index":280,"t":{"602":{"position":[[0,9]]}}}],["exampl",{"_index":162,"t":{"350":{"position":[[0,7]]},"352":{"position":[[0,7]]}}}],["excess",{"_index":104,"t":{"182":{"position":[[0,9]]}}}],["execut",{"_index":21,"t":{"26":{"position":[[0,9]]}}}],["exportvar",{"_index":238,"t":{"512":{"position":[[0,9]]}}}],["express",{"_index":133,"t":{"252":{"position":[[6,10]]},"256":{"position":[[7,10]]},"285":{"position":[[7,10]]},"297":{"position":[[3,11]]}}}],["extend",{"_index":134,"t":{"254":{"position":[[0,7]]}}}],["fallthrough",{"_index":113,"t":{"194":{"position":[[12,11]]}}}],["ffi",{"_index":229,"t":{"488":{"position":[[0,3]]}}}],["ffi.cdef",{"_index":225,"t":{"480":{"position":[[0,8]]}}}],["ffi.new",{"_index":224,"t":{"478":{"position":[[0,7]]}}}],["ffi.nullptr",{"_index":228,"t":{"486":{"position":[[0,11]]}}}],["ffi.offsetof",{"_index":227,"t":{"484":{"position":[[0,12]]}}}],["ffi.open",{"_index":222,"t":{"474":{"position":[[0,8]]}}}],["ffi.sizeof",{"_index":226,"t":{"482":{"position":[[0,10]]}}}],["ffi.struct",{"_index":223,"t":{"476":{"position":[[0,10]]}}}],["field",{"_index":101,"t":{"176":{"position":[[0,5]]},"258":{"position":[[8,6]]}}}],["filter",{"_index":17,"t":{"22":{"position":[[14,7]]}}}],["function",{"_index":46,"t":{"69":{"position":[[0,8]]},"246":{"position":[[7,9]]},"346":{"position":[[10,9]]}}}],["gcm",{"_index":331,"t":{"703":{"position":[[4,3]]}}}],["global",{"_index":100,"t":{"174":{"position":[[0,6]]},"196":{"position":[[9,6]]}}}],["hasconnect",{"_index":297,"t":{"638":{"position":[[0,13]]}}}],["hash",{"_index":299,"t":{"642":{"position":[[18,7]]},"677":{"position":[[14,7]]}}}],["http.closeconnect",{"_index":244,"t":{"526":{"position":[[0,21]]}}}],["http.hasconnect",{"_index":243,"t":{"524":{"position":[[0,18]]}}}],["http.request",{"_index":242,"t":{"522":{"position":[[0,12]]}}}],["implicit",{"_index":114,"t":{"196":{"position":[[0,8]]}}}],["infinit",{"_index":23,"t":{"28":{"position":[[0,8]]}}}],["instal",{"_index":11,"t":{"15":{"position":[[0,12]]}}}],["instanceof",{"_index":139,"t":{"262":{"position":[[0,10]]}}}],["integ",{"_index":144,"t":{"275":{"position":[[7,8]]}}}],["io.absolut",{"_index":259,"t":{"564":{"position":[[0,11]]}}}],["io.chdir",{"_index":265,"t":{"574":{"position":[[15,9]]}}}],["io.cont",{"_index":261,"t":{"568":{"position":[[0,11]]}}}],["io.copi",{"_index":252,"t":{"548":{"position":[[0,7]]}}}],["io.currentdir",{"_index":264,"t":{"574":{"position":[[0,14]]}}}],["io.cwd",{"_index":266,"t":{"574":{"position":[[25,6]]}}}],["io.exist",{"_index":256,"t":{"556":{"position":[[0,9]]}}}],["io.files",{"_index":262,"t":{"570":{"position":[[0,11]]}}}],["io.isdir",{"_index":254,"t":{"552":{"position":[[0,8]]}}}],["io.isfil",{"_index":255,"t":{"554":{"position":[[0,9]]}}}],["io.listdir",{"_index":258,"t":{"560":{"position":[[0,10]]}}}],["io.makedir",{"_index":257,"t":{"558":{"position":[[0,10]]},"562":{"position":[[0,11]]}}}],["io.part",{"_index":253,"t":{"550":{"position":[[0,7]]}}}],["io.rel",{"_index":260,"t":{"566":{"position":[[0,11]]}}}],["io.remov",{"_index":251,"t":{"546":{"position":[[0,9]]}}}],["io.renam",{"_index":250,"t":{"544":{"position":[[0,9]]}}}],["io.writetim",{"_index":263,"t":{"572":{"position":[[0,12]]}}}],["json.decod",{"_index":246,"t":{"532":{"position":[[0,11]]}}}],["json.encod",{"_index":245,"t":{"530":{"position":[[0,11]]}}}],["keyword",{"_index":1,"t":{"3":{"position":[[4,8]]},"9":{"position":[[11,8]]}}}],["librari",{"_index":95,"t":{"167":{"position":[[9,7]]},"488":{"position":[[4,7]]}}}],["limit",{"_index":22,"t":{"26":{"position":[[15,5]]},"234":{"position":[[0,11]]}}}],["line",{"_index":120,"t":{"204":{"position":[[20,4]]}}}],["listen",{"_index":295,"t":{"634":{"position":[[0,8]]}}}],["load",{"_index":19,"t":{"24":{"position":[[8,7]]}}}],["look",{"_index":27,"t":{"34":{"position":[[8,5]]}}}],["lookat",{"_index":378,"t":{"811":{"position":[[0,6]]}}}],["loop",{"_index":24,"t":{"28":{"position":[[9,4]]}}}],["lua",{"_index":149,"t":{"299":{"position":[[8,3]]}}}],["magnitud",{"_index":369,"t":{"795":{"position":[[7,9]]}}}],["make",{"_index":43,"t":{"57":{"position":[[0,4]]}}}],["math.atan2",{"_index":249,"t":{"540":{"position":[[0,10]]}}}],["math.isnan",{"_index":247,"t":{"536":{"position":[[0,10]]}}}],["math.round",{"_index":248,"t":{"538":{"position":[[0,10]]}}}],["max",{"_index":372,"t":{"801":{"position":[[0,3]]}}}],["member",{"_index":140,"t":{"267":{"position":[[4,6]]}}}],["metat",{"_index":10,"t":{"11":{"position":[[14,9]]},"508":{"position":[[8,10]]}}}],["method",{"_index":127,"t":{"244":{"position":[[0,6]]},"269":{"position":[[4,6]]},"344":{"position":[[0,7]]}}}],["min",{"_index":371,"t":{"799":{"position":[[0,3]]}}}],["miscellan",{"_index":338,"t":{"724":{"position":[[0,13]]}}}],["mismatch",{"_index":102,"t":{"178":{"position":[[5,8]]}}}],["mix",{"_index":126,"t":{"232":{"position":[[0,6]]}}}],["mode",{"_index":3,"t":{"5":{"position":[[14,4]]},"79":{"position":[[20,5]]},"214":{"position":[[20,5]]},"224":{"position":[[20,5]]},"264":{"position":[[20,5]]},"287":{"position":[[20,5]]},"293":{"position":[[20,5]]}}}],["moder",{"_index":13,"t":{"19":{"position":[[8,10]]}}}],["modul",{"_index":16,"t":{"22":{"position":[[7,6]]},"24":{"position":[[26,7]]}}}],["name",{"_index":93,"t":{"165":{"position":[[19,4]]},"190":{"position":[[13,4]]}}}],["new",{"_index":0,"t":{"3":{"position":[[0,3]]},"248":{"position":[[0,3]]}}}],["non",{"_index":109,"t":{"188":{"position":[[0,3]]},"190":{"position":[[0,3]]},"192":{"position":[[0,3]]},"642":{"position":[[0,3]]}}}],["normal",{"_index":375,"t":{"807":{"position":[[0,11]]}}}],["normalis",{"_index":376,"t":{"807":{"position":[[12,10]]}}}],["onlin",{"_index":30,"t":{"38":{"position":[[12,6]]}}}],["oper",{"_index":130,"t":{"248":{"position":[[4,8]]},"262":{"position":[[11,8]]},"328":{"position":[[0,8]]},"330":{"position":[[9,9]]},"334":{"position":[[11,8]]},"336":{"position":[[7,8]]},"338":{"position":[[10,8]]},"340":{"position":[[5,8]]}}}],["os.micro",{"_index":269,"t":{"580":{"position":[[10,10]]}}}],["os.milli",{"_index":270,"t":{"580":{"position":[[21,10]]}}}],["os.nano",{"_index":268,"t":{"580":{"position":[[0,9]]}}}],["os.platform",{"_index":235,"t":{"504":{"position":[[0,11]]}}}],["os.second",{"_index":271,"t":{"580":{"position":[[32,10]]}}}],["os.sleep",{"_index":267,"t":{"578":{"position":[[0,8]]}}}],["os.unixsecond",{"_index":272,"t":{"582":{"position":[[0,14]]}}}],["packag",{"_index":32,"t":{"42":{"position":[[0,8]]}}}],["package.path",{"_index":236,"t":{"506":{"position":[[0,12]]}}}],["parent",{"_index":135,"t":{"256":{"position":[[0,6]]}}}],["php",{"_index":39,"t":{"53":{"position":[[0,3]]}}}],["pipe",{"_index":160,"t":{"340":{"position":[[0,4]]}}}],["pluto",{"_index":29,"t":{"38":{"position":[[6,5]]},"51":{"position":[[8,5]]},"63":{"position":[[10,5]]}}}],["pluto_us",{"_index":7,"t":{"7":{"position":[[27,11]]}}}],["portabl",{"_index":110,"t":{"188":{"position":[[4,8]]},"190":{"position":[[4,8]]},"192":{"position":[[4,8]]}}}],["possibl",{"_index":107,"t":{"186":{"position":[[0,8]]}}}],["practic",{"_index":106,"t":{"184":{"position":[[4,8]]}}}],["prebuilt",{"_index":31,"t":{"40":{"position":[[0,8]]}}}],["prevent",{"_index":18,"t":{"24":{"position":[[0,7]]},"28":{"position":[[14,10]]},"303":{"position":[[15,8]]}}}],["privat",{"_index":136,"t":{"258":{"position":[[0,7]]}}}],["prng",{"_index":323,"t":{"688":{"position":[[14,5]]}}}],["promot",{"_index":138,"t":{"260":{"position":[[12,9]]}}}],["rang",{"_index":239,"t":{"514":{"position":[[0,5]]}}}],["reflect",{"_index":123,"t":{"210":{"position":[[0,10]]}}}],["regex.match",{"_index":274,"t":{"588":{"position":[[0,11]]}}}],["regex.new",{"_index":273,"t":{"586":{"position":[[0,9]]}}}],["repositori",{"_index":35,"t":{"45":{"position":[[4,10]]}}}],["return",{"_index":116,"t":{"198":{"position":[[10,6]]}}}],["rsa",{"_index":332,"t":{"709":{"position":[[0,3]]}}}],["rule",{"_index":125,"t":{"228":{"position":[[0,5]]}}}],["run",{"_index":278,"t":{"598":{"position":[[0,3]]}}}],["scope",{"_index":121,"t":{"208":{"position":[[0,6]]}}}],["script",{"_index":40,"t":{"53":{"position":[[4,7]]}}}],["shadow",{"_index":99,"t":{"172":{"position":[[4,6]]},"174":{"position":[[7,6]]},"176":{"position":[[6,6]]}}}],["socket",{"_index":284,"t":{"612":{"position":[[0,6]]}}}],["socket.bind",{"_index":283,"t":{"610":{"position":[[0,11]]}}}],["socket.clos",{"_index":290,"t":{"624":{"position":[[0,12]]}}}],["socket.connect",{"_index":281,"t":{"606":{"position":[[0,14]]}}}],["socket.getp",{"_index":291,"t":{"626":{"position":[[0,14]]}}}],["socket.getsid",{"_index":292,"t":{"628":{"position":[[0,14]]}}}],["socket.isopen",{"_index":294,"t":{"632":{"position":[[0,13]]}}}],["socket.istl",{"_index":293,"t":{"630":{"position":[[0,12]]}}}],["socket.listen",{"_index":282,"t":{"608":{"position":[[0,13]]}}}],["socket.peek",{"_index":287,"t":{"618":{"position":[[0,11]]}}}],["socket.recv",{"_index":286,"t":{"616":{"position":[[0,11]]}}}],["socket.send",{"_index":285,"t":{"614":{"position":[[0,11]]}}}],["socket.starttl",{"_index":289,"t":{"622":{"position":[[0,15]]}}}],["socket.unrecv",{"_index":288,"t":{"620":{"position":[[0,13]]}}}],["spaceship",{"_index":159,"t":{"338":{"position":[[0,9]]}}}],["standard",{"_index":94,"t":{"167":{"position":[[0,8]]}}}],["state",{"_index":118,"t":{"202":{"position":[[17,6]]}}}],["statement",{"_index":132,"t":{"250":{"position":[[6,9]]},"281":{"position":[[7,9]]}}}],["static",{"_index":129,"t":{"246":{"position":[[0,6]]}}}],["string.casefold",{"_index":360,"t":{"771":{"position":[[0,15]]}}}],["string.contain",{"_index":359,"t":{"769":{"position":[[0,15]]}}}],["string.endswith",{"_index":363,"t":{"777":{"position":[[0,15]]}}}],["string.formatint",{"_index":361,"t":{"773":{"position":[[0,16]]}}}],["string.fromhex",{"_index":366,"t":{"783":{"position":[[0,14]]}}}],["string.isalnum",{"_index":354,"t":{"759":{"position":[[0,14]]}}}],["string.isalpha",{"_index":352,"t":{"755":{"position":[[0,14]]}}}],["string.isascii",{"_index":350,"t":{"751":{"position":[[0,14]]}}}],["string.islow",{"_index":351,"t":{"753":{"position":[[0,14]]}}}],["string.isupp",{"_index":353,"t":{"757":{"position":[[0,14]]}}}],["string.iswhitespac",{"_index":355,"t":{"761":{"position":[[0,19]]}}}],["string.low",{"_index":344,"t":{"739":{"position":[[0,12]]}}}],["string.lstrip",{"_index":348,"t":{"747":{"position":[[0,13]]}}}],["string.partit",{"_index":362,"t":{"775":{"position":[[0,16]]}}}],["string.replac",{"_index":357,"t":{"765":{"position":[[0,14]]}}}],["string.rfind",{"_index":346,"t":{"743":{"position":[[0,12]]}}}],["string.rstrip",{"_index":349,"t":{"749":{"position":[[0,13]]}}}],["string.split",{"_index":345,"t":{"741":{"position":[[0,12]]}}}],["string.startswith",{"_index":364,"t":{"779":{"position":[[0,17]]}}}],["string.strip",{"_index":347,"t":{"745":{"position":[[0,12]]}}}],["string.tohex",{"_index":365,"t":{"781":{"position":[[0,12]]}}}],["string.trunc",{"_index":358,"t":{"767":{"position":[[0,15]]}}}],["string.uformat",{"_index":356,"t":{"763":{"position":[[0,14]]}}}],["string.upp",{"_index":343,"t":{"737":{"position":[[0,12]]}}}],["studio",{"_index":42,"t":{"55":{"position":[[7,6]]}}}],["sum",{"_index":370,"t":{"797":{"position":[[0,3]]}}}],["sun",{"_index":44,"t":{"59":{"position":[[0,3]]}}}],["switch",{"_index":145,"t":{"281":{"position":[[0,6]]},"285":{"position":[[0,6]]}}}],["tabl",{"_index":9,"t":{"11":{"position":[[8,5]]},"163":{"position":[[0,5]]}}}],["table.back",{"_index":403,"t":{"873":{"position":[[0,10]]}}}],["table.checkal",{"_index":399,"t":{"865":{"position":[[0,14]]}}}],["table.chunk",{"_index":402,"t":{"871":{"position":[[0,11]]}}}],["table.clear",{"_index":384,"t":{"829":{"position":[[0,11]]}}}],["table.contain",{"_index":387,"t":{"835":{"position":[[0,14]]}}}],["table.countvalu",{"_index":401,"t":{"869":{"position":[[0,17]]}}}],["table.filt",{"_index":394,"t":{"851":{"position":[[0,12]]},"853":{"position":[[0,14]]}}}],["table.find",{"_index":388,"t":{"837":{"position":[[0,10]]}}}],["table.findindex",{"_index":390,"t":{"839":{"position":[[15,15]]}}}],["table.findkey",{"_index":389,"t":{"839":{"position":[[0,14]]}}}],["table.foreach",{"_index":393,"t":{"849":{"position":[[0,13]]}}}],["table.freez",{"_index":385,"t":{"831":{"position":[[0,12]]}}}],["table.isfrozen",{"_index":386,"t":{"833":{"position":[[0,14]]}}}],["table.key",{"_index":400,"t":{"867":{"position":[[0,10]]}}}],["table.map",{"_index":395,"t":{"855":{"position":[[0,9]]},"857":{"position":[[0,12]]}}}],["table.max",{"_index":398,"t":{"863":{"position":[[0,9]]}}}],["table.min",{"_index":397,"t":{"861":{"position":[[0,9]]}}}],["table.modget",{"_index":405,"t":{"877":{"position":[[0,12]]}}}],["table.modset",{"_index":406,"t":{"879":{"position":[[0,12]]}}}],["table.reduc",{"_index":396,"t":{"859":{"position":[[0,12]]}}}],["table.reord",{"_index":392,"t":{"845":{"position":[[0,13]]},"847":{"position":[[0,15]]}}}],["table.revers",{"_index":391,"t":{"841":{"position":[[0,13]]},"843":{"position":[[0,14]]}}}],["table.s",{"_index":383,"t":{"827":{"position":[[0,10]]}}}],["table.slic",{"_index":404,"t":{"875":{"position":[[0,11]]}}}],["table.sort",{"_index":382,"t":{"823":{"position":[[0,10]]},"825":{"position":[[0,12]]}}}],["termux",{"_index":37,"t":{"49":{"position":[[0,6]]}}}],["ternari",{"_index":151,"t":{"299":{"position":[[25,10]]}}}],["time",{"_index":5,"t":{"7":{"position":[[8,4]]},"26":{"position":[[10,4]]},"200":{"position":[[8,4]]}}}],["todir",{"_index":379,"t":{"813":{"position":[[0,5]]}}}],["torot",{"_index":377,"t":{"809":{"position":[[0,5]]}}}],["type",{"_index":97,"t":{"171":{"position":[[8,5]]},"178":{"position":[[0,4]]},"315":{"position":[[5,5]]}}}],["typo",{"_index":108,"t":{"186":{"position":[[9,4]]}}}],["unannot",{"_index":112,"t":{"194":{"position":[[0,11]]}}}],["underscor",{"_index":143,"t":{"273":{"position":[[9,11]]}}}],["unreach",{"_index":103,"t":{"180":{"position":[[0,11]]}}}],["url.decod",{"_index":341,"t":{"731":{"position":[[0,10]]}}}],["url.encod",{"_index":340,"t":{"729":{"position":[[0,10]]}}}],["url.pars",{"_index":342,"t":{"733":{"position":[[0,9]]}}}],["us",{"_index":52,"t":{"79":{"position":[[0,5]]},"214":{"position":[[0,5]]},"224":{"position":[[0,5]]},"264":{"position":[[0,5]]},"287":{"position":[[0,5]]},"293":{"position":[[0,5]]},"315":{"position":[[17,4]]}}}],["valu",{"_index":231,"t":{"492":{"position":[[0,5]]}}}],["var",{"_index":98,"t":{"172":{"position":[[0,3]]}}}],["variabl",{"_index":48,"t":{"71":{"position":[[0,9]]},"165":{"position":[[10,8]]}}}],["visual",{"_index":41,"t":{"55":{"position":[[0,6]]}}}],["vm",{"_index":25,"t":{"30":{"position":[[0,2]]}}}],["walru",{"_index":158,"t":{"336":{"position":[[0,6]]}}}],["warn",{"_index":96,"t":{"171":{"position":[[0,7]]},"202":{"position":[[9,7]]},"204":{"position":[[8,8]]},"218":{"position":[[9,8]]}}}],["wcall",{"_index":241,"t":{"518":{"position":[[0,5]]}}}],["work",{"_index":152,"t":{"307":{"position":[[12,5]]}}}],["wrap",{"_index":230,"t":{"490":{"position":[[0,4]]}}}],["write",{"_index":28,"t":{"38":{"position":[[0,5]]}}}],["xml.decod",{"_index":381,"t":{"819":{"position":[[0,10]]}}}],["xml.encod",{"_index":380,"t":{"817":{"position":[[0,10]]}}}],["yieldfunc",{"_index":279,"t":{"600":{"position":[[0,9]]}}}],["yourself",{"_index":38,"t":{"51":{"position":[[14,8]]}}}]],"pipeline":["stemmer"]}},{"documents":[{"i":2,"t":"Pluto aims to be source- and bytecode-compatible with existing Lua code such that it can simply be used as a drop-in replacement for Lua, and Lua modules can simply be used in Pluto codebases. In the vast majority of cases, we do succeed, but there are a few things to be aware of.","s":"Compatibility","u":"/docs/Compatibility","h":"","p":1},{"i":4,"t":"While Pluto does add a handful of new keywords (switch, continue, enum, new, class, parent, export, try, catch), it can automatically infer when these are used as identifiers to preserve compatibility with Lua: lua local class = \"supercar\" print(\"it's a \"..class) --> it's a supercar Copy However, if a script does actually end up using a feature, its respective keyword can no longer be used as an identifier: pluto class Vehicle -- ... end local class = \"supercar\" -- Error: expected a class name, found '=' Copy The only exception to this is short-hand table syntax and goto labels because Pluto allows reserved keywords to be used in those contexts.","s":"New Keywords","u":"/docs/Compatibility","h":"#new-keywords","p":1},{"i":6,"t":"Some users may wish for Pluto keywords to be off by default, for which we provide the following options: For Integrators: Check your luaconf.h file to find the relevant macros under the \"Compatibility\" heading. For Scripters: Put -- @pluto_use * = false at the top of your script. For Users: Pass the -c flag to pluto or plutoc. Note that when keywords have been disabled like this, Pluto will not infer that a script requires them automatically, instead requiring explicit opt-in via pluto_use.","s":"Compatibility Mode","u":"/docs/Compatibility","h":"#compatibility-mode","p":1},{"i":8,"t":"You can change the meaning of Pluto's reserved tokens at any point in your scripts using the --@pluto_use comment or pluto_use statement. For example, to disable all non-compatible keywords except for switch: pluto -- @pluto_use * = false, switch Copy It is also possible to specify a version number, which is a shorthand for the keywords available at that version: \"0.2.0\" corresponds to * = false, switch, continue \"0.5.0\" corresponds to * = false, switch, continue, enum \"0.6.0\" corresponds to * = false, switch, continue, enum, new, class, parent, export \"0.8.0\" corresponds to * = false, switch, continue, enum, new, class, parent, export, try, catch So, writing a portable script that only makes use of Pluto 0.8.0's features requires this at the beginning: pluto pluto_use \"0.8.0\" Copy This feature also supports quick encompassing of optional features. So, instead of: pluto pluto_use \"0.8.0\", global Copy You can use a '+' after the version number to also enable all of the optional features. As of 0.9.0, the only optional feature is explicit globals (global). pluto pluto_use \"0.9.0+\" -- The same as pluto_use \"0.9.0\", global Copy For module developers and scripts which may be used in future versions of Pluto, we recommend you use pluto_use for two reasons: Portability. This will override the compatibility mode settings compiled into Pluto so your script will be parsed identically in all Pluto environments. Proactive compatibility. Any keywords added by future versions of Pluto will also be put in compatibility mode by these statements, so in the off-chance your script uses a future reserved keyword as a variable name, it would still parse as you intended when you wrote it.","s":"Compile-time Configuration (pluto_use)","u":"/docs/Compatibility","h":"#compile-time-configuration-pluto_use","p":1},{"i":10,"t":"Another way of using Pluto's features regardless of compatibility mode is by prefixing the keyword with pluto_. For example, switch becomes pluto_switch. These Compatibility Mode variants will always be valid, even when Compatibility Mode is disabled. These are what they look like: pluto_switch pluto_continue pluto_enum pluto_new pluto_class pluto_parent pluto_export pluto_try pluto_catch","s":"Compatible Keywords","u":"/docs/Compatibility","h":"#compatible-keywords","p":1},{"i":12,"t":"This is a feature in Pluto that, by itself, is a benign QoL improvement for developers. However, in combination with our added standard library functions like table.min, it can be an unexpected semantic change: pluto local function roll(opts) return math.random(opts.min or 1, opts.max or 100) end print(roll{ max = 10 }) Copy pluto: test.pluto:2: bad argument #1 to 'random' (number expected, got function) stack traceback: [C]: in function 'math.rand' test.pluto:2: in local 'roll' test.pluto:4: in main chunk Copy Integrators can disable this feature by defining the PLUTO_NO_DEFAULT_TABLE_METATABLE macro in their luaconf.h or build config, to aid in a smooth transition, should scripts in their ecosystem require it. Scripters are advised to use rawget and/or type to better codify their expectations. For example, the example above seems to care only about providing fallback values and not at all about type-checking, so rawget would be an excellent fit for it: pluto local function roll(opts) return math.random(rawget(opts, \"min\") or 1, rawget(opts, \"max\") or 100) end print(roll{ max = 10 }) Copy","s":"Default Table Metatable","u":"/docs/Compatibility","h":"#default-table-metatable","p":1},{"i":14,"t":"Although Pluto can theoretically be used with Lua-based tooling, we provide specialized support for .pluto files to enhance your coding experience with features such as: Syntax Highlighting Snippets — e.g. for when you type \"fun\" and press tab Comment Information — for editor features such as \"Toggle Comment\", \"Toggle Block Comment\" Indentation Rules — for editor features such as \"Reindent Lines\" Build Systems — run & lint scripts directly in your editor with Ctrl+(Shift+)B in Sublime Text or Ctrl+Shift+P in VS Code","s":"Editor Integration","u":"/docs/Editor Integration","h":"","p":13},{"i":16,"t":"The installation process depends on your editor: VS Code: Search for calamity-inc.pluto-syntax-highlighting in the marketplace and press \"Install.\" Sublime Text: Open the command palette (Ctrl+Shift+P), select \"Package Control: Install Package\", search for \"Pluto\", and press enter. Visual Studio: Click on Extensions > Manage Extensions. In the Online section, search for calamity-inc.pluto-vsix and press \"Download.\" IntelliJ: Clone our syntax highlighting repository and add the tmbundle folder to Editor > TextMate Bundles. If your editor is not listed here, check if it is able to load TextMate bundles, in which case you should be able to do something similar to the IntelliJ instructions above.","s":"Installation","u":"/docs/Editor Integration","h":"#installation","p":13},{"i":18,"t":"The luaconf.h in Pluto provides various battle-tested mechanisms for locking down your Pluto environments. In this article, we've documented some of those. If you are an integrator who needs help configuring any of this, or who wants us to implement another mechanism, feel free to contact us on GitHub.","s":"For Integrators","u":"/docs/For Integrators","h":"","p":17},{"i":21,"t":"You can disable execution of compiled bytecode by defining PLUTO_DISABLE_COMPILED in luaconf.h or your build config.","s":"Compiled Code","u":"/docs/For Integrators","h":"#compiled-code","p":17},{"i":23,"t":"You may already have filters before passing scripts to run onto Pluto, but mechanisms such as dofile and require may be used to bypass them. To help you combat this, Pluto provides PLUTO_LOADFILE_HOOK. For example, if you set it to ContmodOnLoadfile in luaconf.h or your build config, you only need to define that function somewhere in your code, like this: cpp extern \"C\" bool ContmodOnLoadfile(const char* filename) { return !isCodeProhibited(soup::string::fromFile(filename)); } Copy This requires you to use Pluto as a static library, as otherwise this linking relationship won't work.","s":"Custom Module Filters","u":"/docs/For Integrators","h":"#custom-module-filters","p":17},{"i":25,"t":"The PLUTO_NO_BINARIES macro can be defined to totally eliminate package.loadlib and any DLL/SO loading capability from the require function. This is helpful because package.loadlib can be used to bypass sandbox restrictions by manually loading symbols from a Lua/Pluto library, and the require function can load any Lua/Pluto C Module which may or may not provide dangerous functions. This is generally vital for any sandbox. This mechanism cannot be bypassed, since it configures Pluto to compile without support for any of the aforementioned features.","s":"Prevent Loading of Binary Modules","u":"/docs/For Integrators","h":"#prevent-loading-of-binary-modules","p":17},{"i":27,"t":"To aid environments that have to be sandboxed, Pluto provides Execution Time Limit (ETL), which can be enabled by defining PLUTO_ETL_ENABLE in luaconf.h or your build config. By default, ETL allows code to run for a total of 1 ms (1.000.000 nanos). This can be changed by overwriting PLUTO_ETL_NANOS. Note that this is a hammer solution. If you only want to prevent stupid mistakes, Infinite Loop Prevention is a far better tool.","s":"Execution Time Limit","u":"/docs/For Integrators","h":"#execution-time-limit","p":17},{"i":29,"t":"Pluto can detect infinite loops by preventing too many successive iterations. This was implemented because game threads usually force users to call some sort of yield mechanism to return control to the game thread. In Pluto, you specify a hard bottleneck on iterations, then you specify a function pointer which should prevent ILP within the loop it's called in. This will produce an error due to ILP: pluto while true do end Copy This will not, with correct configuration: pluto while true do yield() end Copy If your scheduling system calls coroutine.yield at least once per tick, configuring the ILP mechanism can be as simple as defining PLUTO_ILP_ENABLE. In any case, Pluto's configuration file (luaconf.h) is worth a look at, especially to properly configure this feature. info This is a very simple mechanic. It has no performance overhead & it's lightweight. However, the compromise for this was coverage. This will reliably prevent most user error, however malicious users can find a way to block a thread still. For example, any forward jump will prevent the mechanism from breaking a loop. This can be exploited, so don't rely on this for security.","s":"Infinite Loop Prevention","u":"/docs/For Integrators","h":"#infinite-loop-prevention","p":17},{"i":31,"t":"Pluto offers an optional, configurable feature to see every instruction that is executed in the Lua VM.","s":"VM Dumping","u":"/docs/For Integrators","h":"#vm-dumping","p":17},{"i":33,"t":"VM Dump can be enabled by defining PLUTO_VMDUMP in luaconf.h or your build config. To reduce noise, you can modify PLUTO_VMDUMP_COND to set a custom condition for when VM Dump is active. By default, the condition is true. Although not a configuration specific to VM Dump, it should be noted that you can modify the output macros lua_writestring and lua_writeline.","s":"Configuration","u":"/docs/For Integrators","h":"#configuration","p":17},{"i":35,"t":"Given the following code: pluto local value = 3 switch value do case 1: case 2: case 3: case 4: case 5: print(\"Got 1-5.\") break default: print(\"Value is greater than 5.\") end -- Break jumps here. Copy It will output: VARARGPREP 0 ; prepare for 0 varargs LOADI 0 3 ; push 3 EQI 0 1 0 ; 3 == 1 EQI 0 2 1 ; 3 == 2 EQI 0 3 1 ; 3 == 3 GETTABUP 1 0 0 ; push T['print'] for function-00007FF6211485A0 (T=table-0000019FEDA45580) LOADK 2 1 ; push \"Got 1-5.\" CALL 1 2 1 ; call function-00007FF6211485A0 (nresults=0 nparams=1) Got 1-5. JMP 13 ; offset=13 newpc=0000019FEDA5C2C4 RETURN 1 1 1 ; return 0 value(s) Copy This is great at deciphering obfuscated code which may be causing problems for your environment.","s":"What it looks like","u":"/docs/For Integrators","h":"#what-it-looks-like","p":17},{"i":37,"t":"This document will explain how to get started with writing Pluto in no time.","s":"Getting Started","u":"/docs/Getting Started","h":"","p":36},{"i":39,"t":"The easiest way to get started writing Pluto is to use Write Pluto Online, which runs Pluto code directly in your browser using WASM.","s":"Write Pluto Online","u":"/docs/Getting Started","h":"#write-pluto-online","p":36},{"i":41,"t":"You can find pre-built binaries of Pluto for Windows, Linux, & Mac OS over on Pluto's Github Releases page.","s":"Prebuilt Binaries","u":"/docs/Getting Started","h":"#prebuilt-binaries","p":36},{"i":44,"t":"You can easily install pluto and plutoc via Chocolatey as follows: choco install plutolang Copy","s":"Chocolatey","u":"/docs/Getting Started","h":"#chocolatey","p":36},{"i":46,"t":"You can easily install Pluto via APT as follows: wget -qO- https://calamity-inc.github.io/deb-repo/key.gpg | sudo tee /usr/share/keyrings/calamity-inc.gpg > /dev/null echo \"deb [arch=amd64 signed-by=/usr/share/keyrings/calamity-inc.gpg] https://calamity-inc.github.io/deb-repo/ buster main\" | sudo tee /etc/apt/sources.list.d/calamity-inc.list > /dev/null sudo apt update sudo apt install pluto Copy This package includes the pluto and plutoc executables, shared library, as well as headers for developers (#include ). As the \"buster\" part implies, these binaries were compiled on Debian 10, but they work on all subsequent Debian releases, as well as Ubuntu 20 and above.","s":"APT Repository","u":"/docs/Getting Started","h":"#apt-repository","p":36},{"i":48,"t":"Pluto is in the Arch User Repository under the name plutolang. This package includes the pluto and plutoc executables, shared library, as well as headers for developers (#include ).","s":"AUR","u":"/docs/Getting Started","h":"#aur","p":36},{"i":50,"t":"Pluto is available in the Termux package main repository under plutolang for binaries and libpluto for development library.","s":"Termux","u":"/docs/Getting Started","h":"#termux","p":36},{"i":52,"t":"Pluto can compile on virtually any platform, as long as there's a C++ 17 compiler for it. First, you need to clone the repository: git clone https://github.com/PlutoLang/Pluto cd Pluto Copy Then, you can use any of the build methods documented here.","s":"Compile Pluto Yourself","u":"/docs/Getting Started","h":"#compile-pluto-yourself","p":36},{"i":54,"t":"info PHP is required for this method. You can check if PHP is installed by running php -v. You can install it via sudo apt intall php-cli on Debian or sudo pacman -S php on Arch. Simply run the following commands: php scripts/compile.php clang php scripts/link_pluto.php clang php scripts/link_plutoc.php clang php scripts/link_static.php Copy You can easily modify these commands to a compiler other than clang, if you wish. There are also additional scripts for the various types of shared libraries. The binaries will be placed in the src/ directory.","s":"PHP Scripts","u":"/docs/Getting Started","h":"#php-scripts","p":36},{"i":56,"t":"In the repository you just cloned, there's a Pluto.sln you can open with Visual Studio. Within Visual Studio, open the Build > Batch Build dialog. Here, click \"Select All\", then \"Build\". The binaries will be placed in the out/ directory.","s":"Visual Studio","u":"/docs/Getting Started","h":"#visual-studio","p":36},{"i":58,"t":"You can simply run the make command: make -j PLAT={yourplatform} Copy The platform list can be found here. The binaries will be placed in the src/ directory.","s":"Make","u":"/docs/Getting Started","h":"#make","p":36},{"i":60,"t":"Pluto supports the Sun build system by providing .sun files in the src/ directory, you can use them to build pluto & plutoc: cd src sun pluto sun plutoc Copy The binaries will be placed in the src/ directory. If you wish to use Pluto as a static library in your own projects, simply add the following to your project's .sun file: require ../Pluto/src Copy Assuming a directory structure where your own project and Pluto share the same parent.","s":"Sun","u":"/docs/Getting Started","h":"#sun","p":36},{"i":62,"t":"Pluto is a superset of Lua 5.4 with a focus on general-purpose programming. While being remarkably compatible with Lua 5.4 source-code & bytecode, it enhances the standard library & adds more than a dozen highly-desired syntaxes such as switch statements, compound operators, classes, class inheritance, string interpolation, type hinting, enums, and so on.","s":"What is Pluto?","u":"/docs/Introduction","h":"","p":61},{"i":64,"t":"Pluto aspires to be a version of Lua with a larger feature-set, that is all. Pluto is not a Lua-killer, an attempted successor, or any of that. Many people (rightly so) love Lua precisely because of the design philosophy. And fundamentally, Pluto is a major deviation from Lua's design philosophy. Some may prefer this, some may not.","s":"What does Pluto aspire to be?","u":"/docs/Introduction","h":"#what-does-pluto-aspire-to-be","p":61},{"i":66,"t":"This keyword accepts an optional integral argument which tells it how many levels of enclosing loops it should break. The default value is 1, thus breaking out of the current loop. Example 1 pluto for i = 1, 10 do -- Loop 1. break 1 -- This is identical to `break` without any arguments. end Copy Example 2 pluto for i = 1, 10 do -- Loop 1. for ii = 1, 5 do -- Loop 2. break 1 -- This will break from Loop 2. break 2 -- This will break from Loop 1. end end Copy","s":"Break Statement","u":"/docs/New Features/Break Statement","h":"","p":65},{"i":68,"t":"Pluto's parser provides some powerful constructs which allow you to write code that will never be seen at runtime.","s":"Compile-Time Evaluation","u":"/docs/New Features/Compile-Time Evaluation","h":"","p":67},{"i":70,"t":"Certain standard library functions can be called at compile-time, as long as the arguments are also known at compile-time, by using the \"$\" symbol before the function call. pluto local runtime = require(\"crypto\").joaat(\"Hello, World!\") local compile = $crypto.joaat(\"Hello, World!\") assert(runtime == compile) Copy If you're unfamiliar with compile-time evaluation, this is essentially what the code turns into: pluto local runtime = require(\"crypto\").joaat(\"Hello, World!\") local compile = 847757641 -- The JOAAT hash of \"Hello, World!\" assert(runtime == compile) Copy This is available on preloaded Pluto libraries, such as: json base32 base58 base64 crypto And on the following functions: tostring utostring tonumber utonumber","s":"Function calls","u":"/docs/New Features/Compile-Time Evaluation","h":"#function-calls","p":67},{"i":72,"t":"Compile-time constant variables can be defined via the $define statement: pluto $define a = 123 Copy This may seem identical to a local declared with the const attribute: pluto local a = 123 Copy However, $define also enforces that the assigned variable is a compile-time constant: pluto local a = {} $define a = {} -- Error: variable was not assigned a compile-time constant value Copy","s":"Variables","u":"/docs/New Features/Compile-Time Evaluation","h":"#variables","p":67},{"i":74,"t":"If there is certain code you only want to have compiled in for a certain build, such as a debug build, you can use compile-time conditionals: pluto $define DEBUG = true $if DEBUG then print(\"Script running in debug mode\") $else print(\"Script running in release mode\") $end Copy In this case, only one of the two paths will be compiled in; the rest will not take up any space.","s":"Conditionals","u":"/docs/New Features/Compile-Time Evaluation","h":"#conditionals","p":67},{"i":76,"t":"Continue statements, like break, are meant to be used in loops. They skip the current iteration of the loop. They introduce a new keyword, continue. These cannot be used inside switch statements. Example Code pluto -- Print every number besides five. for i = 1, 10 do if i == 5 then continue end print(i) -- continue jumps here. end Copy caution Note, continue will skip code. If any code within your loop will determine if the loop continues, make sure continue doesn't jump over it.","s":"Continue Statement","u":"/docs/New Features/Continue Statement","h":"","p":75},{"i":78,"t":"This keyword accepts an optional integral argument which tells it how many levels of enclosing loops it should skip to the end of. The default value is 1, thus skipping to the end of the current loop. Example 1 pluto for i = 1, 10 do -- Loop 1. continue 1 -- This is identical to `continue` without any arguments. end Copy Example 2 pluto for i = 1, 10 do -- Loop 1. for ii = 1, 5 do -- Loop 2. continue 1 -- This will continue from Loop 2. continue 2 -- This will continue from Loop 1. end end Copy","s":"Continue's Only Argument","u":"/docs/New Features/Continue Statement","h":"#continues-only-argument","p":75},{"i":80,"t":"You may need to use pluto_continue instead of continue. Alternatively, pluto_use continue will enable the keyword independently of environment settings.","s":"Using Compatibility Mode?","u":"/docs/New Features/Continue Statement","h":"#using-compatibility-mode","p":75},{"i":82,"t":"This page contains the changelogs from all releases of Pluto.","s":"Changelog","u":"/docs/Changelog","h":"","p":81},{"i":84,"t":"Added chained comparisons (e.g. 1 <= i <= #t) Added private methods to classes Private fields (and methods) can be declared and accessed anywhere inside the class now. Previously, you needed to define a private field before you accessed it. This is no longer a restriction. Pluto now automatically detects if non-compatible keywords should be enabled or disabled based on usage This is overwritten by the scripter using pluto_use or the integrator or user managing compatibility mode, so it only applies when absolutely zero configuration has been applied. This is a significant improvement for lua source code compatibility. do can now be used instead of then and begin if expressions are now no longer deprecated but require an end (e.g. print(if a then b else c end)) $define statement now requires an assignment Fixed not being able to load Lua C modules on Linux For simplicity in this regard, Pluto now always uses the C ABI to export lua_ functions and the C++ ABI for pluto_ functions. Standard library: Added canvas library Added ffi library Added regex library Added assert.contains Added bigint.eq, bigint.lt, & bigint.le Added crypto.ripemd160 Added crypto.exportkey & crypto.importkey Added crypto.decompress Added string.tohex & string.fromhex Added table.findindex/findkey, table.back, table.keys, table.modget, table.modset, table.slice, table.countvalues, & table.chunk Added socket.getpeer, socket.peek, socket.getside, socket.istls, & socket.isopen Added optional limit argument to string.split Added io.cwd and io.chdir as aliases for io.currentdir socket.starttls can now be used on server sockets Optimized json.encode with __order Fixed handling when an invalid RSA private key is passed to crypto.encrypt, crypto.decrypt, crypto.sign","s":"0.10.0","u":"/docs/Changelog","h":"#0100","p":81},{"i":86,"t":"Fixed io.contents not returning an empty string for empty files on Windows Fixed table.clear not resetting cached length Fixed http.request allowing header values to contain CR and LF (CVE-2024-45597) Fixed strings implicitly concatenating with each other Fixed incorrect formatting with some instances of VM dumping PHP build scripts now pass on additional arguments to the compiler From Lua: Fixed wrong code gen for indices with comparisons","s":"0.9.5","u":"/docs/Changelog","h":"#095","p":81},{"i":88,"t":"Improved field-shadow warning to say which field is shadowed Improved handing of parent keyword Improved error message for if then Fixed an 'else if' warning false-positive Fixed compile-time concat sometimes causing a parse error Fixed infinite loop with nested switch expressions when flow should go to default case Fixed exception when raising argument type mismatch warning when expected type is a function Fixed a compatibility issue with return case Standard library: Made string.replace binary-safe and faster CaT module now supports the optional value encoding feature","s":"0.9.4","u":"/docs/Changelog","h":"#094","p":81},{"i":90,"t":"Added a warning for '(' being used instead of '|' for pipe operator arguments Improved error reporting when an invalid parent is given to 'extends' Fixed extending a global class unexpectedly pushing _G Fixed incorrect results when using 'not' on result of null coalescing operator As a result of this fix, the null coalescing operator is now bytecode-compatible with Lua Fixed parsing ambiguities with ternary expressions in switch cases Standard library: Fixed json.encode(json.decode(..., json.withnull + json.withorder)) producing unexpected artifacts Fixed data corruption when json.decode is used on large data Fixed insufficient TLS peer verification in HTTP library and socket.starttls in non-WASM builds (CVE-2024-32973)","s":"0.9.3","u":"/docs/Changelog","h":"#093","p":81},{"i":92,"t":"This release fixes several regressions made in 0.9.1: Fixed failing to compile on aarch64 Fixed method calls no longer working in ternary expressions even with parentheses Fixed walrus operator no longer being usable within unary operator expressions Furthermore, it improves the walrus operator in regards to disallowing UB and clarifying related error messages.","s":"0.9.2","u":"/docs/Changelog","h":"#092","p":81},{"i":94,"t":"Improved try/catch Improved parsing of for-as loops Deprecated if expressions (if a then b else c) in favor of ternary expressions (a ? b : c) Fixed instances of : starting method call when it should delimit ternary expression Fixed unreachable-code triggering for non-constant values Fixed repeat + continue being able to read uninitialized variables Fixed break and continue possibly not closing upvalues Fixed continue not working as expected when passing through switch statement Fixed switch cases being able to read uninitialized variables Fixed inconsistent behavior with safe navigtion method calls and multiple return values Fixed walrus operator being able to cause UB or corrupt the stack Fixed pipe operator possibly generating incorrect code Huge thanks to @XmiliaH for reporting the majority of bugs fixed in this update and helping fix them.","s":"0.9.1","u":"/docs/Changelog","h":"#091","p":81},{"i":96,"t":"Added $define statement Added pipe operator (|>) Added compound XOR operator (~=) Added optional global keyword and 'implicit-global' warning Added @fallthrough annotation and 'unannotated-fallthrough' warning Added function attribute and 'discarded-return' warning Added 'field-shadow' warning Lambdas can now have full bodies by starting with 'do' (e.g. |a| -> do return a end) pluto_use can now also be used via @pluto_use in comments new operator now also supports static 'new' function Deprecated ** operator (use ^ instead) Deprecated let statement (use local instead) Deprecated const statement (use local with or $define instead) Deprecated attribute (replaced by $define statement) Re-added compile-time concat optimization Fixed switch cases being able to jump into the scope of a variable Fixed being able to set nil as a default argument Standard library: Added '*' library Added 'cat' library Added 'http' library Added 'socket' library Added 'xml' library Added 'bigint' class Added 'scheduler' class Added os.platform constant Added range function Added io.contents function Added io.relative function Added copying variants of existing functions (table.sorted, table.mapped, table.filtered, table.reversed, table.reordered) Added table.size function Added table.clear function Added table.reduce, table.min, & table.max functions Added table.find function Added table.checkall function Added coroutine.sleep function Added crypto.generatekeypair function Added crypto.encrypt & crypto.decrypt functions Added crypto.sign & crypto.verify functions Added crypto.sha1, crypto.sha384, & crypto.sha512 functions Added crypto.adler32 function Added url.parse function Added math.round function json.encode now supports __order for objects json.decode now has an optional flags parameter, they can be combined via binary OR json.withnull makes it decode JSON nulls as json.null instead of nil json.withorder makes it produce __order field for objects coroutines/threads now have a metatable by default base64.encode & base32.encode changed padding parameter's default value from false to true (base64.urlencode is unchanged) Fixed crypto.fnv1 & crypto.fnv1a producing incorrect hashes for non-ASCII strings CLI: Added '-c' flag to pluto & plutoc to enable compatibility mode For integrators: Added PLUTO_READ_FILE_HOOK & PLUTO_WRITE_FILE_HOOK Added PLUTO_HTTP_REQUEST_HOOK Removed PLUTO_USE_THROW as we now default to using C++ exceptions for Lua errors to avoid breaking RAII semantics. You can still specify LUA_USE_LONGJMP if you want long jumps.","s":"0.9.0","u":"/docs/Changelog","h":"#090","p":81},{"i":98,"t":"Added variable scoping warnings to switch statements to highlight code that will break in 0.9.0 Improved some error messages Fixed base32 & base64 functions not being binary-safe Removed compile-time concat optimization because it could produce incorrect results","s":"0.8.2","u":"/docs/Changelog","h":"#082","p":81},{"i":100,"t":"Added a specialized error message for local class = etc 'exportvar' now prefixes function bytecode with 'load' Improved code generation for switch blocks Improved \"possibly unwanted function call\" warning Fixed dumpvar & exportvar not handling recursion of sub-tables Fixed assert.equal & assert.nequal ignoring extra fields in value2 Fixed 'until' possibly using a variable from wrong scope due to 'continue' Fixed var-shadow warning for named vararg being raised on the wrong line For integrators: Added PLUTO_MEMORY_LIMIT Added PLUTO_NO_DEBUGLIB Added PLUTO_NO_COROLIB For a more comprehensive overview of the changes, take a look at the commit log.","s":"0.8.1","u":"/docs/Changelog","h":"#081","p":81},{"i":102,"t":"Added switch expressions Added shorthand fallthrough syntax for switch statement & expression, e.g. case 1, 2: ... Added try...catch statement Added spaceship operator (<=>) Added safe navigation for method calls: nilable_inst?:method(), inst:nilable_method?(), nilable_inst?:nilable_method?() Added optional 'const' keyword as shorthand for local ... [= ...], enabled with pluto_use const. Added pluto_use \"VERSION+\" Tables now have a metatable by default ({ __index = _G.table }). Added '!' as an alias for 'not' Added 'private' modifier for class fields Improved 'class' and 'extends' to support indexed names Improved 'instanceof' to be usable with more complex expressions export now works in all scopes, not just the main body Updated in operator on tables to check values instead of keys \\{ is now a valid escape sequence (for interpolated strings) Fixed to-be-closed variables not working in switch cases Fixed 'new' not working as expected if it was disabled by the environment and re-enabled by 'pluto_use' Fixed 'enum class' not incrementing enumerator values Fixed not being able to use expressions such as increment in enum without parentheses Added compile-time concat optimization Warnings: Added warning for local attributes used without '<' ... '>' Now propagating types for global variables so when their value is assigned to something, mismatches can be detected. Added optional global-shadow warning which is like var-shadow but for globals that are especially vulnerable to obscure shadowing bugs (to prevent excessive annoyance). These globals include: arg,string, and table. Integrators can change this via PLUTO_COMMON_GLOBAL_NAMES Global shadow warnings do not apply to localization optimization (i.e, local table = table) var-shadow has been improved to check more enclosing scopes Improved unreachable-code Fixed var-shadow warning for locals used in switch cases despite break Added optional non-portable-code, non-portable-bytecode, and non-portable-name warning types Warnings can now be promoted to errors, e.g. @pluto_warnings error-all Standard library: Soup is now always linked in, obsoleting _PSOUP Added assertion library (see here for more preliminary detail) Added url library (encode & decode) Added exception class Added vector3 class Added dumpvar & exportvar Added string.truncate Added string.replace — a slightly faster, but mostly more straightforward alternative to gsub. Most notably, not burdened by MAX_CAPTURES Added string.formatint (supports any BigInt impl that can offer the user a string representation) Also supports any grouping & any separator without concerning locale. Added table.filter Added table.map Added table.reverse Added table.reorder Added io.currentdir Added io.part Added io.writetime Added math.isnan Added compareversions Added wcall Added math.atan2 as an alias for math.atan Added json.null io.absolute now has an optional argument to request a canonicalized absolute path Updated string.rfind to accept Lua patterns Renamed io.copyto to io.copy Renamed base64.url_encode & base64.url_decode to base64.urlencode & base64.urldecode Deprecated string.find_first_of & string.find_first_not_of in favor of string.find Deprecated string.find_last_of & string.find_last_not_of in favor of string.rfind Deprecated string.lfind in favor of string.find Deprecated crypto.hexdigest in favor of string.format Modified require Prioritizes local files now to ensure compatibility. Added require(\"pluto:libname\") to explicitly request pluto libraries if ever needed (normal still works for pluto libraries, we just check for local files first). Removed base58 For integrators: Added PLUTO_NO_FILESYSTEM - disables all filesystem access (for sandboxing). Added PLUTO_WARN_NON_PORTABLE_CODE Added PLUTO_WARN_NON_PORTABLE_BYTECODE Added PLUTO_WARN_NON_PORTABLE_NAME Added PLUTO_NO_BINARIES - disables all dll/so/c module loading (for sandboxing) Added luaG_addsrcinfo Far more information can be found at our documentation: https://pluto-lang.org/","s":"0.8.0","u":"/docs/Changelog","h":"#080","p":81},{"i":104,"t":"Fixed unexpected behavior when using a ternary expression inside of an interpolated string Fixed table.contains returning 0 instead of the actual key for non-integer key types Fixed REPL not recognizing multi-line statements Fixed Pluto-injected code corrupting bytecode For integrators: Added PLUTO_LOADCLIB_HOOK","s":"0.7.4","u":"/docs/Changelog","h":"#074","p":81},{"i":106,"t":"Updated error semantics of os.remove & os.rename to match Lua's again (return false instead of raising error), Pluto's 'io' versions of these functions remain unchanged Fixed extends not copying over metamethods Fixed \"memory allocation error: block too big\" when parsing --[[]] Fixed allowing function calls to primitives, causing ambiguities with exprstat after assignment Fixed string.upper & string.lower delimiting on '\\0' Some other improvements and bugfixes","s":"0.7.3","u":"/docs/Changelog","h":"#073","p":81},{"i":108,"t":"String interpolation now allows nested strings Improved \"unreachable code\" warning Improved some error messages Fixed string interpolation not working with string call syntax Fixed rare issues with 'new', 'extends' and 'instanceof' operators","s":"0.7.2","u":"/docs/Changelog","h":"#072","p":81},{"i":110,"t":"Fixed string interpolation not working with single-quoted strings after 0.7.0 Fixed os.sleep disregarding execution time limit Fixed scripts being able to go past execution time limit with coroutines","s":"0.7.1","u":"/docs/Changelog","h":"#071","p":81},{"i":112,"t":"Added table destructuring (local '{' NAME [= FIELD][, ...] '}' '=' TABLE) Added array destructuring (local '[' NAME[, ...] ']' '=' TABLE) Added pluto_use <* | version | token> [= false] to toggle non-compatible keywords Added pluto_use let [= false] to toggle 'let' alias for 'local' Added ++ statement Also supports ++t.prop Added constructor promotion Added compile-time conditionals Improved class expression & statement Now supports property declaration without value Now supports type hints (currently without warnings) Now supports access modifiers (currently without warnings or errors) Can now optionally use 'begin' before body Improved string interpolation to support any expression, not just variable names Improved type hints to support alternatives, e.g. string|int Named arguments may now be used in conjunction with positional arguments Improved 'new' expression to support direct member access into the table it created, e.g. print(new Human(\"John\").name) 'new' may now also be used as a statement Fixed loading of precompiled code from files with non-Latin path on Windows Fixed behavior of 'in' expression when used on a temporary table Out-of-the-box Compatibility: 'parent' may now be overwritten via local or parameter name All reserved identifiers can now be used with shorthand table syntax and goto Standard library: Added coroutine.xresume For integrators: Added PLUTO_USE_LET More detailed documentation can be found here.","s":"0.7.0","u":"/docs/Changelog","h":"#070","p":81},{"i":114,"t":"Defaults arguments now produce Lua-compatible bytecode Fixed default arguments not working for methods Fixed named arguments, etc. not working for upvalue functions Fixed 'in' expression for when right-hand operand is nested table Fixed 'in' expression being too greedy in consuming righthand operand For integrators: Added PLUTO_LUA_LINKABLE","s":"0.6.3","u":"/docs/Changelog","h":"#063","p":81},{"i":116,"t":"Optional Parentheses now works for table types and with chained \"suffix expressions\" Fixed new overwriting user-defined __index Fixed infinite recursion with multi-level parent calls Fixed some other small issues Performance: Optimized lua_insert, lua_remove, & lua_replace (Optimization by @gottfriedleibniz) Optimized luaO_ceillog2 (Inspired by @gottfriedleibniz) Enabled Lua's jump table for clang build as well Fixed a VM performance regression introduced by Pluto","s":"0.6.2","u":"/docs/Changelog","h":"#062","p":81},{"i":118,"t":"Improved suggestions (for when using plutoc with the language server) Optimized switch statement code generation (now omits cases leading to default case) Fixed producing syntax error when 'case' or 'default' is used outside of switch Fixed using 'export' outside of global scope not producing an error Fixed some confusing error messages Pulled in the latest Lua changes so some Lua bugs are now fixed","s":"0.6.1","u":"/docs/Changelog","h":"#061","p":81},{"i":120,"t":"Added attribute to force locals to be compile-time constants Added $expr syntax for compile-time evaluation of select functions Added export [NAME=VALUE | function | class] syntax Added named arguments (name=value in funcargs) Added named varargs (...NAME), automatically puts the varargs into a table with the given name A subset of Soup is now vendored with Pluto so standard library features that rely on it should now be more viable Removed deprecated \"pluto_case\" and \"pluto_default\" keywords Removed when statement Enums: Added ENUM.ENUMERATOR syntax for named enums Added ENUM CLASS NAME ... syntax to force usage of this syntax Added enum reflection for named enums (:names(), :values(), :kvmap(), :vkmap()) Object-oriented programming: Added new TABLE(...) syntax (creates new table, sets TABLE as its metatable + index, calls `:construct(...)` if exists) Added 'class' statement & expression (similar to table but without need for ',' or ';' after properties and functions) 'class' and 'local class' statements also support extends NAME which sets parent property and metatable with index Added static function NAME for use within table constructor/class definition (equal to NAME = function) Added 'parent' expression parent.PROP -> self.__parent.PROP parent:METHOD(...) -> self.__parent.METHOD(self, ...) Added TABLE instanceof METATABLE operator Type hints: Added 'int' & 'float' type hints (more restrictive than 'number') Added 'void' type hint for function return type Standard library: Added utonumber, utostring, & string.uformat Added instanceof(TABLE, METATABLE) For integrators upgrading to Pluto 0.6.0: Consider defining PLUTO_COMPATIBLE_NEW, PLUTO_COMPATIBLE_CLASS, PLUTO_COMPATIBLE_PARENT & PLUTO_COMPATIBLE_EXPORT so 'new', 'class', 'parent' & 'export' will not be reserved keywords just yet, instead 'pluto_new', 'pluto_class', 'pluto_parent' & 'pluto_export' can be used. More detailed documentation can be found here.","s":"0.6.0","u":"/docs/Changelog","h":"#060","p":81},{"i":122,"t":"Default arguments now support tables Pluto now supports building with C ABI so you can replace Lua's shared library with Pluto's without needing to change the program Fixed return before case or default causing a syntax error Fixed access violation on lua_close with strings as default parameters","s":"0.5.4","u":"/docs/Changelog","h":"#054","p":81},{"i":124,"t":"Default arguments now support compile-time constant variables, unary -, and pseudo-unary + Re-added os.remove & os.rename because they originated in Lua and should not have been removed Fixed some instances of errors not providing a code snippet and reporting the wrong line Fixed enumerators being limited to 32-bit values Fixed warning disable/enable being global-only Removed if-goto optimisation due to various edge cases where goto is not executed","s":"0.5.3","u":"/docs/Changelog","h":"#053","p":81},{"i":126,"t":"Enum statement: Now supports compile-time constant variables when setting value Fixed require, dofile, etc. not taking UTF-8 encoded paths on Windows Fixed pluto & plutoc not being able to execute files with foreign names on Windows","s":"0.5.2","u":"/docs/Changelog","h":"#052","p":81},{"i":128,"t":"Enum Statement: Now supports unary - and pseudo-unary + when setting value Replaced locals limit with registers limit so you can have more compile-time constants Fixed Pluto's IO functions not taking UTF-8 encoded paths Fixed UB when emitting unfinished string error, possibly resulting in an access violation","s":"0.5.1","u":"/docs/Changelog","h":"#051","p":81},{"i":130,"t":"Added \"for ITERABLE as VALUE\" loop Added $-strings (string interpolation) Added prefix ++ operator Added support for binary number literals. Added C-style enums Added _PSOUP global Updated package.path to look for .pluto files in working directory by default Deprecated \"pluto_case\" and \"pluto_default\" (now \"case\" and \"default\", respectively) Removed what was deprecated in 0.4.0 (sleep -> os.sleep, os.remove -> io.remove, os.rename -> io.rename) Added execution time limit (optional, must be enabled in luaconf.h) Added content moderation Standard Library: Added io.makedirs Standard Library (Soup): Added base64 Added base58 Added base32 Added json","s":"0.5.0","u":"/docs/Changelog","h":"#050","p":81},{"i":132,"t":"Improved wording of some warning & error messages Fixed excessive \"duplicate local declaration\" warnings Cherry-picked some Lua commits, so the following Lua bugs are now fixed: 'break' may not properly close variable in a 'for' loop error message in 'table.remove' 'utf8.codes' accepts spurious continuation bytes Negation in constant folding of '>>' may overflow stack overflow with nesting of coroutine.close","s":"0.4.5","u":"/docs/Changelog","h":"#045","p":81},{"i":134,"t":"Added math.rand as an alias for math.random Changed unknown type hint to be warning instead of error Reverted table.insert optimation due to unexpected behavior Some minor tweaks","s":"0.4.4","u":"/docs/Changelog","h":"#044","p":81},{"i":136,"t":"Improved most error messages, and vastly improved the internal code for them. These reserved tokens can be used as identifiers outside of their functional context: default, case Optimized the performance of table.insert. Roughly 3x faster, but still slightly slower than t[#t + 1] Pluto can now be built using Sun.","s":"0.4.3","u":"/docs/Changelog","h":"#043","p":81},{"i":138,"t":"Fixes a regression introduced in Pluto 0.4.1 that prevented the walrus operator from working within lambda functions that are passed as function arguments","s":"0.4.2","u":"/docs/Changelog","h":"#042","p":81},{"i":140,"t":"Updated lexer to tokenise in a separate pass This fixes Pluto's error messages sometimes not showing the full line Disallowed use of the walrus operator within a function call because it was found to be more janky than expected","s":"0.4.1","u":"/docs/Changelog","h":"#041","p":81},{"i":142,"t":"Additions: Walrus Operator Default parameters for functions. New standard library: lcryptlib, for various hash algorithms and cryptographic PRNGs. New warnings: Unreachable code. Too many function arguments. Improvements: Switch case may now use variables. Shorthand ternary syntax from C/C++. Warnings can be configured with comments. Improved performance of some common arithmetic algorithms. VM Dumping has been rewritten for superb runtime detail on all opcodes, their arguments, their results, etc. string.upper & string.lower take a second parameter indicating a specific index to change. Absence of this parameter preserves default behavior.","s":"0.4.0","u":"/docs/Changelog","h":"#040","p":81},{"i":144,"t":"Improvements: io.copyto will now overwrite existing files instead of throwing an exception. Improve error handling of other exception-prone IO functions.","s":"0.3.2","u":"/docs/Changelog","h":"#032","p":81},{"i":146,"t":"Bugfix: String.split would previously invoke an infinite loop when an empty string is used as the delimiter.","s":"0.3.1","u":"/docs/Changelog","h":"#031","p":81},{"i":148,"t":"Additions: Inlined method creation. STR in STR expressions. KEY in INDEXABLE expressions. Generalized iteration, no need for pairs. io.listdir Reserved keywords as valid fields. Null-coalescing operator (w/ compound operator). continue N & break N for manipulating outer loops. Optional type-hinting, with parser warnings. Safe accessor navigation, to avoid \"attempt to index nil\" errors for deeply nested fields. Changes: table.contains now returns an index if found and nil otherwise (previously returned true or false). Improvements: Switch no longer has syntactic restrictions Greater switch performance Documentation for the new changes can be found here.","s":"0.3.0","u":"/docs/Changelog","h":"#030","p":81},{"i":150,"t":"Fixes a bug with the continue keyword","s":"0.2.2","u":"/docs/Changelog","h":"#022","p":81},{"i":152,"t":"Added VM Dump Implemented long jump optimisation","s":"0.2.1","u":"/docs/Changelog","h":"#021","p":81},{"i":154,"t":"Added compile-time warnings for duplicate local declarations Added optional ANSI color sequences in various error & warning messages Added support for ternary expressions Added continue statement Added Table Freezing / Immutability Added Switch/Case statements Added user_data to global_State Added != Added compatibility mode Added table.contains Added new time functions to os api Added negative string indexing Added compound concatenation operator Added new string functions Added portable jumptable implementation that can be optionally enabled Added REPEAT .. WHEN loop support Added new IO library functions Added _PVERSION Implemented table length cache optimisation (2x speedup) Implemented optional parentheses around string literals for method invocation Increased local variable limit from 200 to 249 Rebased with Lua for latest bugfixes","s":"0.2.0","u":"/docs/Changelog","h":"#020","p":81},{"i":156,"t":"Initial version. Notable features: Lambda expressions Arbitrary character insertion in numeral literals Many compound operators ** exponent operator","s":"0.1.0","u":"/docs/Changelog","h":"#010","p":81},{"i":158,"t":"During a function declaration, parameters can now declare their own default value. Example Code pluto local function write(text = \"No text provided.\") print(text) end write() --> No text provided. write(\"Hello!\") --> Hello! Copy This code behaves identically. pluto local function write(text) if text == nil then text = \"No text provided.\" end print(text) end write() --> No text provided. write(\"Hello!\") --> Hello! Copy","s":"Default Arguments","u":"/docs/New Features/Default Arguments","h":"","p":157},{"i":160,"t":"Destructuring is a better way to assign local variables from expressions that return a table.","s":"Destructuring","u":"/docs/New Features/Destructuring","h":"","p":159},{"i":162,"t":"Assuming we have this table: pluto local t = { 3, 6, 9 } Copy This is how we would assign each value to variables called a, b, and c using the Lua and Pluto ways: Lua way pluto local a, b, c = table.unpack(t) Copy Pluto way pluto local [a, b, c] = t Copy","s":"Array destructuring","u":"/docs/New Features/Destructuring","h":"#array-destructuring","p":159},{"i":164,"t":"Assuming we have this table: pluto local t = { name = \"John\", age = 42 } Copy This is how we would assign each field to a variable of the same name using the Lua and Pluto ways: Lua way pluto local name = t.name local age = t.age Copy Pluto way pluto local { name, age } = t Copy","s":"Table destructuring","u":"/docs/New Features/Destructuring","h":"#table-destructuring","p":159},{"i":166,"t":"Assuming we have the same table as above, this is how we'd assign the name and age fields to n and a variables, respectively, using the Lua and Pluto ways: Lua way pluto local n = t.name local a = t.age Copy Pluto way pluto local { n = name, a = age } = t Copy","s":"Different variable name","u":"/docs/New Features/Destructuring","h":"#different-variable-name","p":159},{"i":168,"t":"Table destructuring can be used to require multiple standard library modules at once using the '*' module: pluto local { base64, json } = require \"*\" Copy","s":"Standard Library","u":"/docs/New Features/Destructuring","h":"#standard-library","p":159},{"i":170,"t":"Pluto offers optional compiler warnings for certain misbehaviors.","s":"Compiler Warnings","u":"/docs/New Features/Compiler Warnings","h":"","p":169},{"i":173,"t":"This is raised when a new local is created with the same name as an existing one. pluto local var = 5 do local var = \"hello\" end Copy file.pluto:3: warning: duplicate local declaration [var-shadow] 3 | local var = \"hello\" | ^^^^^^^^^^^^^^^^^^^ here: this shadows the initial declaration of 'var' on line 1. Copy","s":"var-shadow","u":"/docs/New Features/Compiler Warnings","h":"#var-shadow","p":169},{"i":175,"t":"This is raised when a new local is created with the same name as a global variable. pluto local table = {} Copy file.pluto:1: warning: duplicate global declaration [global-shadow] 1 | local table = {} | ^^^^^^^^^^^^^^^^ here: this shadows the initial global definition of 'table' Copy To avoid excessive annoyance, this warning type is off by default. To enable it, scripters can use the compile-time configuration and integrators can define the PLUTO_WARN_GLOBAL_SHADOW macro. Furthermore, this only covers the globals 'table', 'string', and 'arg' by default. Integrators can overwrite the PLUTO_COMMON_GLOBAL_NAMES macro to change this list.","s":"global-shadow","u":"/docs/New Features/Compiler Warnings","h":"#global-shadow","p":169},{"i":177,"t":"This is raised when the same field is declared multiple times in a table constructor: pluto local t = { key = \"fruit\", value = \"apple\", value = \"banana\" } Copy file.pluto:4: warning: duplicate table field [field-shadow] 4 | value = \"banana\" | ^^^^^^^^^^^^^^^^ here: this overwrites the value assigned to this field earlier Copy","s":"field-shadow","u":"/docs/New Features/Compiler Warnings","h":"#field-shadow","p":169},{"i":179,"t":"This is raised when the type of an expression doesn't match the hinted type. See Type Hinting. pluto local var: number = 5 var = \"hello\" Copy file.pluto:2: warning: variable type mismatch [type-mismatch] 2 | var = \"hello\" | ^^^^^^^^^^^^^ here: 'var' type-hinted as 'number', but assigned a string value. Copy","s":"type-mismatch","u":"/docs/New Features/Compiler Warnings","h":"#type-mismatch","p":169},{"i":181,"t":"This is raised when a block of code will never be ran. pluto for i = 1, 10 do if i == 5 then continue print(\"message\") end end Copy file.pluto:4: warning: unreachable code [unreachable-code] 4 | print(\"message\") | ^^^^^^^^^^^^^^^^ here: this code comes after an escaping 'continue' statement. Copy","s":"unreachable-code","u":"/docs/New Features/Compiler Warnings","h":"#unreachable-code","p":169},{"i":183,"t":"This is raised when too many arguments are given to a non-vararg function. pluto local function func(a, b, c) end func(1, 2, 3, 4) Copy file.pluto:5: warning: too many arguments [excessive-arguments] 5 | func(1, 2, 3, 4) | ^^^^^^^^^^^^^^^^ here: expected 3 arguments, got 4. Copy","s":"excessive-arguments","u":"/docs/New Features/Compiler Warnings","h":"#excessive-arguments","p":169},{"i":185,"t":"This is raised when the code does something stupid but not quite stupid enough to cause an error. pluto pluto_use * Copy file.pluto:1: warning: 'pluto_use *' is a bad idea because future Pluto versions may add keywords that will break your script [bad-practice] 1 | pluto_use * | ^^^^^^^^^^^ here: consider using 'pluto_use \"0.8.0\"' instead Copy","s":"bad-practice","u":"/docs/New Features/Compiler Warnings","h":"#bad-practice","p":169},{"i":187,"t":"This is raised when the code seems syntactically incorrect. pluto local magic const = 42 Copy file.pluto:1: warning: Possibly mistyped attribute [possible-typo] 1 | local magic const = 42 | ^^^^^^^^^^^^^^^^^^^^^^ here: Did you mean ''? Copy","s":"possible-typo","u":"/docs/New Features/Compiler Warnings","h":"#possible-typo","p":169},{"i":189,"t":"This is raised when the code may not be considered valid by all Pluto environments due to compatibility mode. pluto new exception(\"Not implemented\") Copy file.pluto:1: warning: non-portable keyword usage [non-portable-code] 1 | new exception(\"Not implemented\") | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ here: use 'pluto_new' instead, or 'pluto_use' this keyword: https://pluto.do/compat Copy To avoid excessive annoyance, this warning type is off by default. To enable it, scripters can use the compile-time configuration and integrators can define the PLUTO_WARN_NON_PORTABLE_CODE macro.","s":"non-portable-code","u":"/docs/New Features/Compiler Warnings","h":"#non-portable-code","p":169},{"i":191,"t":"This is raised when a variable name is only valid due to compatibility mode. pluto local class = \"fruit\" Copy file.pluto:1: warning: 'class' is a non-portable name [non-portable-name] 1 | local class = \"fruit\" | ^^^^^^^^^^^^^^^^^^^^^ here: use a different name, or use 'pluto_use' to disable this keyword: https://pluto.do/compat Copy To avoid excessive annoyance, this warning type is off by default. To enable it, scripters can use the compile-time configuration and integrators can define the PLUTO_WARN_NON_PORTABLE_NAME macro.","s":"non-portable-name","u":"/docs/New Features/Compiler Warnings","h":"#non-portable-name","p":169},{"i":193,"t":"This is raised when the code will not run in Lua environments (when compiling Pluto to bytecode). pluto print(\"h\" in \"hello\") Copy file.pluto:1: warning: non-portable operator usage [non-portable-bytecode] 1 | print(\"h\" in \"hello\") | ^^^^^^^^^^^^^^^^^^^^^ here: this operator generates bytecode which is incompatible with Lua. Copy To avoid excessive annoyance, this warning type is off by default. To enable it, scripters can use the compile-time configuration and integrators can define the PLUTO_WARN_NON_PORTABLE_BYTECODE macro.","s":"non-portable-bytecode","u":"/docs/New Features/Compiler Warnings","h":"#non-portable-bytecode","p":169},{"i":195,"t":"This is raised when there's a non-obvious fallthrough in a switch block: pluto local a = 1 switch a do case 1: print(\"Case 1\") case 2: print(\"Case 2\") end Copy file.pluto:5: warning: possibly unwanted fallthrough [unannotated-fallthrough] 5 | case 2: | ^^^^^^^ here: the case on line 3 flows into this case + note: place `--@fallthrough` before this case if this is intended Copy As the warning points out, a @fallthrough annotation can be used to label the fallthrough, in turn silencing the warning: pluto local a = 1 switch a do case 1: print(\"Case 1\") -- @fallthrough case 2: print(\"Case 2\") end Copy","s":"unannotated-fallthrough","u":"/docs/New Features/Compiler Warnings","h":"#unannotated-fallthrough","p":169},{"i":197,"t":"This is raised when the global keyword is enabled and a global was declared without it. See Explicit Globals. pluto pluto_use global a = 1 Copy file.pluto:3: warning: implicit global creation [implicit-global] 3 | a = 1 | ^^^^^ here: prefix this with 'global' if creating a global was intended Copy","s":"implicit-global","u":"/docs/New Features/Compiler Warnings","h":"#implicit-global","p":169},{"i":199,"t":"This is raised when the return value of a function declared was discarded. See Nodiscard Functions. pluto local function add(a, b) return a + b end add(1, 2) Copy file.pluto:5: warning: discarding return value of function declared '' [discarded-return] 5 | add(1, 2) | ^^^^^^^^^ here Copy","s":"discarded-return","u":"/docs/New Features/Compiler Warnings","h":"#discarded-return","p":169},{"i":201,"t":"The state of each warning type can be changed during compile-time and exceptions for certain code can be made.","s":"Compile-time Configuration","u":"/docs/New Features/Compiler Warnings","h":"#compile-time-configuration","p":169},{"i":203,"t":"Warnings have 3 states: 'disable', 'enable', and 'error'. The 'error' state is a more aggressive version of 'enable' that causes compilation to fail if the warning type is raied. To change the state of a warning, write a @pluto_warnings comment with the state and warning type joined by a hyphen (-): pluto local var = 5 do -- @pluto_warnings: disable-var-shadow local var = \"hello\" -- @pluto_warnings: enable-var-shadow end Copy For this, there is also the special type, 'all', which can be used e.g. to enable all warnings except for non-portable-bytecode: pluto -- @pluto_warnings: enable-all, disable-non-portable-bytecode Copy","s":"Changing Warning States","u":"/docs/New Features/Compiler Warnings","h":"#changing-warning-states","p":169},{"i":205,"t":"To disable warnings on a specific line of code, simply put a comment on the line before it with @pluto_warnings: disable-next. pluto local var = 5 do -- @pluto_warnings: disable-next local var = \"hello\" end Copy","s":"Disable Warnings On Line","u":"/docs/New Features/Compiler Warnings","h":"#disable-warnings-on-line","p":169},{"i":207,"t":"Pluto adds the following syntax: pluto enum MyEnum begin OPTION_1, OPTION_2, OPTION_3 end assert(OPTION_1 == 1) assert(OPTION_2 == 2) assert(OPTION_3 == 3) Copy Enums can start at a base number, and increment from there. pluto enum MyEnum begin OPTION_1 = 0, OPTION_2, OPTION_3 = 5, OPTION_4 end assert(OPTION_1 == 0) assert(OPTION_2 == 1) assert(OPTION_3 == 5) assert(OPTION_4 == 6) Copy Since this enum has a name, we can also access its enumerators with that: pluto assert(MyEnum.OPTION_1 == 0) Copy","s":"Enumerations","u":"/docs/New Features/Enumerations","h":"","p":206},{"i":209,"t":"You can force usage of the ENUM.ENUMERATOR syntax by using 'enum class': pluto enum class MyEnum begin OPTION_1, OPTION_2, OPTION_3 end assert(OPTION_1 == nil) assert(MyEnum.OPTION_1 == 1) Copy","s":"Scoped Enums","u":"/docs/New Features/Enumerations","h":"#scoped-enums","p":206},{"i":211,"t":"When you have a named enum, not only can you get its enumerators, but also reflect upon it with some methods: pluto enum MyEnum begin OPTION_1, OPTION_2, OPTION_3 end for k, v in MyEnum:kvmap() do print(k, v) -- \"OPTION_1 1\" ... end Copy The following methods are available: :names(), :values(), :kvmap(), :vkmap()","s":"Reflection","u":"/docs/New Features/Enumerations","h":"#reflection","p":206},{"i":213,"t":"Enums can also be anonymous: pluto enum begin OPTION_1, OPTION_2, OPTION_3 end assert(OPTION_1 == 1) assert(OPTION_2 == 2) assert(OPTION_3 == 3) Copy","s":"Anonymous Enums","u":"/docs/New Features/Enumerations","h":"#anonymous-enums","p":206},{"i":215,"t":"You may need to use pluto_enum instead of enum. Alternatively, pluto_use enum will enable the keyword independently of environment settings.","s":"Using Compatibility Mode?","u":"/docs/New Features/Enumerations","h":"#using-compatibility-mode","p":206},{"i":217,"t":"The optional global keyword can be used to explicitly declare global variables. To enable it, simply do: pluto pluto_use global Copy Then it can be used like this: pluto global a = 1 Copy Being identical to the following code: pluto a = 1 Copy","s":"Explicit Globals","u":"/docs/New Features/Explicit Globals","h":"","p":216},{"i":219,"t":"When the global keyword is enabled, an 'implicit-global' warning is raised for any globals declared without it: pluto pluto_use global a = 1 Copy file.pluto:3: warning: implicit global creation [implicit-global] 3 | a = 1 | ^^^^^ here: prefix this with 'global' if creating a global was intended Copy","s":"Compiler Warnings","u":"/docs/New Features/Explicit Globals","h":"#compiler-warnings","p":216},{"i":221,"t":"When you only want to iterate over the values of a table, you can use Pluto's for-as syntax. New Code pluto local t = { 1, 2, 3, \"hello\", \"world\" } for t as value do print(value) end --> 1 --> 2 --> 3 --> hello --> world Copy That code is identical to this: Old Code pluto local t = { 1, 2, 3, \"hello\", \"world\" } for _, value in t do print(value) end Copy info The bytecode of this feature is only backwards-compatible with Lua when pairs, ipairs, or next is used. See Generalized Iteration.","s":"For-As Loop","u":"/docs/New Features/For-As Loop","h":"","p":220},{"i":223,"t":"The export modifier allows you to automatically aggregate things you want to export into a table. Old Code pluto local version = 2 local function add(a, b) return a + b end return { version = version, add = add } Copy New Code pluto export version = 2 export function add(a, b) return a + b end Copy The return statement is automatically generated at the end of the block, so it is not limited to the top-level function: pluto package.preload[\"test\"] = function() export version = 2 export function add(a, b) return a + b end -- end of scope; 'return' is automatically generated end print(require\"test\".version) Copy","s":"Export Modifier","u":"/docs/New Features/Export Modifier","h":"","p":222},{"i":225,"t":"You may need to use pluto_export instead of export. Alternatively, pluto_use export will enable the keyword independently of environment settings.","s":"Using Compatibility Mode?","u":"/docs/New Features/Export Modifier","h":"#using-compatibility-mode","p":222},{"i":227,"t":"The in operator has been extended to support string searches and table searches. For these purposes, it's the fastest possible solution. Searching for a substring. pluto assert(\"world\" in \"hello world\") Copy When used on tables, the in operator searches for values. It'll search for array elements and it'll search keys for their values. Searching a table for a value. pluto local t = { \"a\", \"b\", key = \"value\" } assert(\"a\" in t) -- \"a\" is an element inside of t. assert(\"b\" in t) -- \"b\" is an element inside of t. assert(\"value\" in t) -- \"value\" is the value of a key inside of t. assert(not \"random\" in t) -- \"random\" is not an element OR the value of a key inside of t. Copy","s":"In Expressions","u":"/docs/New Features/In Expressions","h":"","p":226},{"i":229,"t":"The right-hand operand must always be a table or a string. The left-hand operand must be a string if the right-hand operand is a string. The left-hand operand can be anything if the right-hand operand is a table. caution The bytecode of this feature is not backwards-compatible with Lua.","s":"Rules","u":"/docs/New Features/In Expressions","h":"#rules","p":226},{"i":231,"t":"Instead of positional arguments, you can use the names of arguments you want to set: pluto local function process_file(file, mode = \"r\", version = 1) print($\"Processing {file} with mode '{mode}' and version {version}\") end process_file(file = \"hello.txt\", version = 2) -- \"Processing hello.txt with mode 'r' and version 2\" Copy Note that this example also makes use of default arguments and string interpolation.","s":"Named Arguments","u":"/docs/New Features/Named Arguments","h":"","p":230},{"i":233,"t":"You can use positional arguments for the first few arguments and then use named arguments for the latter ones, for example: pluto local function process_file(file, mode = \"r\", version = 1) print($\"Processing {file} with mode '{mode}' and version {version}\") end process_file(\"hello.txt\", version = 2) -- \"Processing hello.txt with mode 'r' and version 2\" Copy","s":"Mixing arguments","u":"/docs/New Features/Named Arguments","h":"#mixing-arguments","p":230},{"i":235,"t":"This feature is implemented entirely in the parser and therefore only works for local functions at the moment.","s":"Limitations","u":"/docs/New Features/Named Arguments","h":"#limitations","p":230},{"i":237,"t":"Lambda expressions are an alternative way of writing anonymous functions. Lua Way pluto local s1 = \"123\" local s2 = s1:gsub(\".\", function(c) return tonumber(c) + 1 end) print(s2) --> 234 Copy Pluto Way pluto local s1 = \"123\" local s2 = s1:gsub(\".\", |c| -> tonumber(c) + 1) print(s2) --> 234 Copy As you can see, they take an expression after the arrow, the result of which is implicitly returned. However, lambda expressions can also have full bodies using do...end: pluto local add = |a, b| -> do print($\"Adding {a} and {b} together\") return a + b end Copy They also support all other syntax you would expect of functions, such as type hints and default arguments.","s":"Lambda Expressions","u":"/docs/New Features/Lambda Expressions","h":"","p":236},{"i":239,"t":"Functions can be declared nodiscard, causing a warning to be raised when the return value is discarded: pluto local function add(a, b) return a + b end add(1, 2) Copy file.pluto:5: warning: discarding return value of function declared '' [discarded-return] 5 | add(1, 2) | ^^^^^^^^^ here Copy This can also be combined with type hints: pluto local function add(a: number, b: number): number return a + b end Copy info The warning coverage is currently limited to local functions.","s":"Nodiscard Functions","u":"/docs/New Features/Nodiscard Functions","h":"","p":238},{"i":241,"t":"If you have a function that takes varargs and you want them in a table, you'd have to do something like this: pluto function vfunc(...) local args = { ... } for args as arg do print(arg) end end vfunc(\"Hello\") --> Hello Copy But, with named varargs, it can be as simple as this: pluto function vfunc(...args) for args as arg do print(arg) end end vfunc(\"Hello\") --> Hello Copy","s":"Named Varargs","u":"/docs/New Features/Named Varargs","h":"","p":240},{"i":243,"t":"Pluto makes a plethora of improvements when it comes to object-oriented programming.","s":"Object-Oriented Programming","u":"/docs/New Features/Object-Oriented Programming","h":"","p":242},{"i":245,"t":"A series of methods was otherwise ugly to implement into a Lua table. Old Code pluto local t = {} function t:f1(...) end function t:f2(...) end function t:f3(...) end Copy Now, you can inline these statements inside of your table. New Code pluto local t = { function f1() end, function f2() end, function f3() end } Copy This automatically marks the functions as methods. caution Keep in mind, this produces methods, meaning you'll need to use the colon invocation syntax to avoid positional ambiguities in your parameters.","s":"Method Creation","u":"/docs/New Features/Object-Oriented Programming","h":"#method-creation","p":242},{"i":247,"t":"For consistency with the above syntax, you can use 'static function' to declare non-method functions in your tables: pluto local t = { static function say(msg) print(msg) end } t.say(\"Hello\") --> Hello Copy","s":"Static Functions","u":"/docs/New Features/Object-Oriented Programming","h":"#static-functions","p":242},{"i":249,"t":"Pluto adds an easy way to make instances with the new operator. This operator will also call the __construct method if it exists. pluto local Human = { function __construct(name) self.name = name end } local john = new Human(\"John\") print(john.name) --> John Copy Note that for compatibility with Lua and C API classes, the new operator checks for the existence of a static 'new' function. If it exists, new X(...) will be identical to X.new(...).","s":"New Operator","u":"/docs/New Features/Object-Oriented Programming","h":"#new-operator","p":242},{"i":251,"t":"The class statement is similar to a table constructor, but it does not require commas or semicolons: pluto class Human function __construct(name) self.name = name end function __gc() print(self.name .. \" died of irrelevance\") end end local john = new Human(\"John\") Copy The class statement also supports modifiers: local class NAME, export class NAME","s":"Class Statement","u":"/docs/New Features/Object-Oriented Programming","h":"#class-statement","p":242},{"i":253,"t":"There is also a class expression, which can be used e.g. when assigning to a variable: pluto local Human = class function __construct(name) self.name = name end end Copy","s":"Class Expression","u":"/docs/New Features/Object-Oriented Programming","h":"#class-expression","p":242},{"i":255,"t":"The class statement also supports extends to specify a parent: pluto class Entity age = 1 end class Human extends Entity end local human = new Human() print(human.age) --> 1 Copy This also adds a __parent field to Human.","s":"Extends","u":"/docs/New Features/Object-Oriented Programming","h":"#extends","p":242},{"i":257,"t":"The parent expression is a shorthand for self.__parent, which also supports method call syntax, in which case it's a shorthand for self.__parent.METHOD(self, ...). pluto class Entity function __construct(name) self.name = name end end class Human extends Entity -- If we don't define __construct, the parent-constructor would be called automatically. -- However, if we overwrite it, we can use parent:__construct to call it manually. function __construct(name) parent:__construct(name) end end local human = new Human(\"John\") print(human.name) --> John Copy Note that if you have a local variable (or function parameter) called \"parent\", the parent expression will defer to it.","s":"Parent Expression","u":"/docs/New Features/Object-Oriented Programming","h":"#parent-expression","p":242},{"i":259,"t":"Pluto allows you to specify if a field is 'public' or 'private'. Private fields can only be accessed by the class that defined them. pluto class Human public name private age function __construct(name, age) self.name = name self.age = age end function getAge() return self.age end end local human = new Human(\"John\", 42) print(human.name) -- \"John\" print(human:getAge()) -- 42 print(human.age) -- nil Copy","s":"Private Fields","u":"/docs/New Features/Object-Oriented Programming","h":"#private-fields","p":242},{"i":261,"t":"Because a common task of __construct methods is to assign the value of arguments to table fields, Pluto provides a simple syntax to reduce this boilerplate: pluto class Human function __construct(public name, private age) end function getAge() return self.age end end local human = new Human(\"John\", 42) print(human.name) -- \"John\" print(human:getAge()) -- 42 print(human.age) -- nil Copy","s":"Constructor Promotion","u":"/docs/New Features/Object-Oriented Programming","h":"#constructor-promotion","p":242},{"i":263,"t":"The instanceof operator can be used to check if a table is a class instance, including inherited classes: pluto class Entity end class Human extends Entity end local e = new Entity() local h = new Human() print(e instanceof Entity) -- true print(e instanceof Human) -- false print(h instanceof Entity) -- true (by inheritance) print(h instanceof Human) -- true Copy It can also be used as a function: pluto class Entity end local e = new Entity() print(instanceof(e, Entity)) -- true Copy Try It Yourself​ info Note that, while the instanceof operator generates Lua-compatible bytecode, the instanceof function is a part of Pluto's standard library, and hence unavailable under Lua.","s":"Instanceof Operator","u":"/docs/New Features/Object-Oriented Programming","h":"#instanceof-operator","p":242},{"i":265,"t":"Some of the syntax discussed here may be different due to compatiblity mode: new -> pluto_new class -> pluto_class parent -> pluto_parent Alternatively, pluto_use new, class, parent will enable these keywords independently of environment settings.","s":"Using Compatibility Mode?","u":"/docs/New Features/Object-Oriented Programming","h":"#using-compatibility-mode","p":242},{"i":268,"t":"Accessing deeply nested fields which can potentially be nil was problematic, because you'd need an unreasonable amount of guard clauses to prevent an \"attempt to index nil\" error. Pluto now offers this syntax: Basic Usage pluto local person = { name = \"Alice\" } local pet_name = person.pet?.name Copy In this example, person.pet is nil. However, this does not throw an \"attempt to index nil\" error. pet_name is simply set to nil. Practical Usage pluto -- Pretend userConfig is parsed from a JSON file, or something. --- Returning the user's preferred color, or Red if they have no preferred color. local function get_color() return userConfig.colors?.preferred ?? \"Red\" end print(get_color()) Copy In this example, we also use the null coalescing operator ??. info These cannot be used for statements, like a?.b?.c = 0. They're only valid as expressions. Safe Navigation (for member access) was written by Sven Olsen.","s":"For Member Access","u":"/docs/New Features/Safe Navigation","h":"#for-member-access","p":266},{"i":270,"t":"Similarly, if you want to have optional hook functions, you can use safe method calls instead of writing conditionals: Lua Way pluto if self.onEvent then self:onEvent(event) end Copy Pluto Way pluto self:onEvent?(event) Copy You can also check if the left-hand side of : is not nil: pluto object?:onEvent(event) -- 'object' may be nil object?:onEvent?(event) -- 'object' and 'object.onEvent' may be nil Copy Note that this feature will truncate multiple return values if they're not used as part of a fixed assignment: pluto function myfunc() return 1, 2 end local a, b, c = _G:myfunc?() print(a, b, c) --> 1 2 nil print(_G:myfunc?()) --> 1 Copy","s":"For Method Calls","u":"/docs/New Features/Safe Navigation","h":"#for-method-calls","p":266},{"i":272,"t":"Pluto makes two small changes to numeral parsing.","s":"Numeral Parsing","u":"/docs/New Features/Numeral Parsing","h":"","p":271},{"i":274,"t":"You can add underscores to your numeric literals to make them more readable. Example Code pluto local n = 10_000_000 assert(n == 10000000) Copy These underscores are ignored by the compiler, so they are purely cosmetic.","s":"Cosmetic Underscores","u":"/docs/New Features/Numeral Parsing","h":"#cosmetic-underscores","p":271},{"i":276,"t":"Similar to how Lua allows you to input numbers in hexadecimal: Example Code pluto local n = 0x420 assert(n == 1056) Copy Pluto allows you to input numbers in binary as well: Example Code pluto local n = 0b1000101 assert(n == 69) Copy","s":"Binary Integers","u":"/docs/New Features/Numeral Parsing","h":"#binary-integers","p":271},{"i":278,"t":"String interpolation is a simple alternative syntax to concatenation. Concatenation pluto local label = \"meaning of life\" local data = { value = 42 } print(\"The \" .. label .. \" is \" .. data.value) --> The meaning of life is 42 Copy String Interpolation pluto local label = \"meaning of life\" local data = { value = 42 } print($\"The {label} is {data.value}\") --> The meaning of life is 42 Copy As you can see, you declare a string interpolated by prefixing it with the \"$\" symbol. Brackets can contain any expression. The result of expressions will be converted to a string as with normal concatenation, although note that Pluto supports boolean concatenation unlike Lua.","s":"String Interpolation","u":"/docs/New Features/String Interpolation","h":"","p":277},{"i":280,"t":"Switch blocks consists of the following new keywords: case switch default","s":"Switch Blocks","u":"/docs/New Features/Switch Blocks","h":"","p":279},{"i":282,"t":"pluto local value = 1 switch value do case 1: print(\"There is only one!\") break case 2: print(\"There is only two!\") break end -- Break jumps here. Copy Switch statements also support fallthrough. pluto local value = 1 switch value do case 1: case 2: case 3: case 4: case 5: print(\"Got 1-5.\") break default: print(\"Value is greater than 5.\") end -- Break jumps here. Copy In this example, cases 1-4 fall through to case 5. Remember to use break whenever you do not want fallthrough. Here is an example of a potential bug: pluto local value = 1 switch value do case 1: print(\"There is only one!\") case 2: print(\"There is only two!\") end -- Output: -- There is only one! -- There is only two! <-- Uh oh. Copy The default case is executed if none of the other cases are true. For example: pluto local value = 1 switch value do case 2: case 3: break default: print(\"Value is neither 2 nor 3!\") end Copy The default case can be placed anywhere in the block. It also supports fallthrough, so remember to use break if you place it above any cases.","s":"Switch Statement","u":"/docs/New Features/Switch Blocks","h":"#switch-statement","p":279},{"i":284,"t":"Any expression can be used for the case condition: pluto switch true do case 42 == 42: print(\"42 is 42 is true\") break end Copy There is a short-hand fallthrough syntax: pluto switch value do case 1, 2, 3: print(\"1-3\") break case 4, 5, 6: print(\"4-6\") break end Copy However, note that method calls needs to be encapsulated with parentheses: pluto local t = { function getVal() return 42 end } switch 42 do case t:getVal(): -- This is interpreted as `case t: getVal():print(\"val is 42\")` print(\"val is 42\") break case (t:getVal()): -- This works as expected print(\"val is 42\") break end Copy","s":"Case Blocks","u":"/docs/New Features/Switch Blocks","h":"#case-blocks","p":279},{"i":286,"t":"Just like ternary expressions, these allow you to conditionally provide values, with massively simplified case blocks: pluto local place = 1 place = switch place do case 1 -> \"1st\" case 2 -> \"2nd\" case 3 -> \"3rd\" default -> $\"{place}th\" end print(place) --> 1st Copy Note that the case blocks here have their conditions delimited by an arrow (->) instead of a colon (:). Despite not being able to manually fall through, the shorthand fallthrough syntax still works: pluto local function print_range(value) print(switch value do case 1, 2, 3 -> \"1-3\" case 4, 5, 6 -> \"4-6\" end) end print_range(1) --> 1-3 print_range(6) --> 4-6 print_range(9) --> nil Copy Notice how the default case was omitted in this example, so it was implicitly set to default -> nil.","s":"Switch Expression","u":"/docs/New Features/Switch Blocks","h":"#switch-expression","p":279},{"i":288,"t":"You may need to use pluto_switch instead of switch. Alternatively, pluto_use switch will enable the keyword independently of environment settings.","s":"Using Compatibility Mode?","u":"/docs/New Features/Switch Blocks","h":"#using-compatibility-mode","p":279},{"i":290,"t":"You can index strings for their characters now, which is cleaner & 3x faster than using string.sub. String indexing only occurs when you index with an integer, either positive or negative. Positive integers index from the start of the string, and negative integers index from the end. Example Code pluto local str = \"hello world\" print(str[5]) -- \"o\" print(str[200]) -- nil print(str[-1]) -- \"d\" Copy Any character-intensive task — for example, a hash algorithm — will greatly benefit from this. caution The bytecode of this feature is not backwards-compatible with Lua.","s":"String Indexing","u":"/docs/New Features/String Indexing","h":"","p":289},{"i":292,"t":"Pluto provides a more intuitive way to handle errors than pcall and xpcall. pluto local function get_fruit_rating(fruit) return switch fruit do case \"apple\" -> 8 case \"banana\" -> 7 case \"orange\" -> 9 case \"mango\" -> 10 case \"grape\" -> 6 case \"strawberry\" -> 9 case \"cucumber\", \"tomato\" -> error(\"What are you, a botanist?\") end end local function try_get_fruit_rating(fruit) try return get_fruit_rating(fruit) catch e then if e:find(\"What are you, a botanist?\") then return -10 end end end print(try_get_fruit_rating(\"apple\")) --> 8 print(try_get_fruit_rating(\"cucumber\")) --> -10 print(try_get_fruit_rating(\"car\")) --> nil Copy","s":"Try-Catch Statement","u":"/docs/New Features/Try-Catch Statement","h":"","p":291},{"i":294,"t":"You may need to use pluto_try and pluto_catch instead. Alternatively, pluto_use try, catch will enable both keywords independently of the environment settings.","s":"Using Compatibility Mode?","u":"/docs/New Features/Try-Catch Statement","h":"#using-compatibility-mode","p":291},{"i":296,"t":"Ternary expressions behave identical as to how they would in C. They introduce no new keywords. Old Code pluto local max if a > b then max = a else max = b end Copy New Code pluto local max = a > b ? a : b Copy Try It Yourself​","s":"Ternary Expressions","u":"/docs/New Features/Ternary Expressions","h":"","p":295},{"i":298,"t":"If expressions are an alternative syntax for ternary expressions: pluto local a = 6 local b = 9 local max = if a > b then a else b end print(max) --> 9 Copy","s":"If Expressions","u":"/docs/New Features/Ternary Expressions","h":"#if-expressions","p":295},{"i":300,"t":"While it is true that you can do something like this: pluto local max = a > b and a or b Copy Keep in mind that this falls apart when the true-expression has a falsy value: pluto local x = -1 x = (x == -1 and nil or x) Copy In this case, x will be -1 despite the intention being to set it to nil. There are no such issues using Pluto's ternary expressions.","s":"Doesn't Lua already have ternaries?","u":"/docs/New Features/Ternary Expressions","h":"#doesnt-lua-already-have-ternaries","p":295},{"i":302,"t":"Tables can now be frozen at their current state to forbid any future modification. This action is irreversible and permanent for the lifespan of the table. pluto -- Disallowing any edits to the global environment table. table.freeze(_G) _G.string = {} -- file.pluto:4: attempt to modify frozen table. Copy pluto -- Creating a constant local that's associated with a frozen table. local Frozen = table.freeze({ 1, 2, 3 }) Frozen = {} -- file.pluto:4: attempt to reassign constant. Frozen[1] = \"new value\" -- file.pluto:7: attempt to modify frozen table. rawset(Frozen, \"key\", \"value\") -- file.pluto:10: attempt to modify frozen table. Copy pluto --- Trying to swap the value with the debug library. for i = 1, 249 do local name, value = debug.getlocal(1, i) if name == \"Frozen\" then debug.setlocal(1, i, { [\"key\"] = \"hello world\" }) -- file.pluto:5: attempt to modify local variable with a frozen table. end end Copy","s":"Table Freezing","u":"/docs/New Features/Table Freezing","h":"","p":301},{"i":304,"t":"All modifications to the table from within the Lua environment will be prevented, including those from the debug library. caution If you're going to use this for a sandbox, ensure you call table.freeze before any users can access the Lua environment, otherwise they can replace that function.","s":"What will this prevent?","u":"/docs/New Features/Table Freezing","h":"#what-will-this-prevent","p":301},{"i":306,"t":"The pairs and ipairs functions are optimized in Pluto. On a consistent basis, pairs & ipairs loops are 3.5x faster than their Lua counterparts.","s":"For Loops","u":"/docs/Optimizations/For Loops","h":"","p":305},{"i":308,"t":"It doesn't operate under all circumstances though, the state of the iterator is stored in the to-be-closed variable returned by these functions, which is the last variable they give. If you interact or modify this variable, then the optimization won't occur. pairs: next, table, nil, nil ipairs: ipairsaux, table, integer, nil Copy As long as you don't access the last nil value, you're fine. info This optimization was published and implemented entirely by Xmelia Hermit.","s":"How does it work?","u":"/docs/Optimizations/For Loops","h":"#how-does-it-work","p":305},{"i":310,"t":"Pluto will cache the length of a table when you request it for the first time. This cache is refreshed whenever you make an edit to the table. It's still advisable to localize this value though, since looking through the cache and the virtual machine is expensive compared to looking up a local.","s":"Table Length","u":"/docs/Optimizations/Table Length","h":"","p":309},{"i":312,"t":"Lua implemented a jump table, but it is only compatible with clang and gcc. Pluto has an additional jump table implementation for other compilers; however, it is not enabled by default because it can add minutes to compile time, depending on the setup. However, it may be beneficial to you regardless, as a jump table can increase virtual machine performance by up to 5%. If you would like to try it, define PLUTO_FORCE_JUMPTABLE in luaconf.h or your build config.","s":"Jump Table","u":"/docs/Optimizations/Jump Table","h":"","p":311},{"i":314,"t":"Type-hinting looks like this: pluto local var: string = \"hello world\" Copy It works with functions too: pluto local function myfunc(a: string, b: string): number return tonumber(a) + tonumber(b) end print(myfunc(1, \"1\")) -- This will emit a warning for argument type mismatch. Copy There's no effect on performance. This is implemented entirely during the compilation phase.","s":"Type Hinting","u":"/docs/New Features/Type Hinting","h":"","p":313},{"i":316,"t":"string number int float boolean/bool function table userdata void (return type only) Prefix a ? to indicate nil-able types, e.g. ?string indicates that it may be nil or a string. You can also use | to delimit alternatives, e.g. string|int indicates that it may be a string or an int. Putting all of this together, we could also have e.g. ?string|int to indicate that it may be nil, a string, or an int. info This is a WIP feature, and it's very difficult to implement in a one-pass compiler. Allow tolerance for missing coverage, and report any bugs.","s":"What types can I use?","u":"/docs/New Features/Type Hinting","h":"#what-types-can-i-use","p":313},{"i":318,"t":"Pluto allows you to concatenate boolean values just like you would number values: pluto local iVar = 13 local bVar = true print(\"iVar = \" .. iVar) print(\"bVar = \" .. tostring(bVar)) -- Lua way print(\"bVar = \" .. bVar) -- Pluto way Copy","s":"Boolean Concatenation","u":"/docs/QoL Improvements/Boolean Concatenation","h":"","p":317},{"i":320,"t":"Pluto's virtual machine allows you to simply iterate over tables without having to explicitly call a function: New Code pluto local t = { 1, 2, 3, \"hello\", \"world\" } for key, value in t do print(key, value) end Copy When you omit the function from the loop preparation, next is implicitly inserted. So, that code is identical to this: Old Code pluto local t = { 1, 2, 3, \"hello\", \"world\" } for key, value in next(t) do print(key, value) end Copy This is compatible with for-loop optimizations. caution The bytecode of this feature is not backwards-compatible with Lua.","s":"Generalized Iteration","u":"/docs/QoL Improvements/Generalized Iteration","h":"","p":319},{"i":322,"t":"Special arithmetic algorithms are optimized by Pluto during compile-time. For example: x << 1 => x + x x ** 2 => x * x x // 2 => x >> 1 These can offer upwards of a 20% performance boost. These expressions are only optimized when both operands are integers, and no metamethod will be called.","s":"Special Arithmetic","u":"/docs/Optimizations/Special Arithmetic","h":"","p":321},{"i":324,"t":"The parenthesis around some types of expressions are optional now. Gross Way pluto print((\"hello world\"):contains(\"world\")) Copy Clean Way pluto print(\"hello world\":contains(\"world\")) Copy This also works for table types.","s":"Optional Parentheses","u":"/docs/QoL Improvements/Optional Parentheses","h":"","p":323},{"i":326,"t":"Pluto removes the locals limit, allowing you to use compile-time constants, including enums, as much as you want. Note that you are still limited to 255 registers, so you can't have infinite dynamic variables per function.","s":"Removed Locals Limit","u":"/docs/QoL Improvements/Removed Locals Limit","h":"","p":325},{"i":329,"t":"These operators function the same, but they're more consistent with what's been standardized through programming today. ! is an alias for not, the boolean inversion operator. != is an alias for ~=, the inequality operator.","s":"Operator Aliases","u":"/docs/New Operators","h":"#operator-aliases","p":327},{"i":331,"t":"A plethora of compound operators are available in Pluto: Addition: += Subtraction: -= Multiplication: *= Float division: /= Integer division: //= Modulo: %= Exponent: ^= Bitwise AND: &= Bitwise OR: |= Bitwise XOR: ~= In Lua, the inequality operator cannot be used in statements. It must be used in expressions. Because compound operators can only be used in statements (and cannot be used in expressions), this is not a compatibility break. Bitshift left: <<= Bitshift right: >>= Concatenation: ..= Nil-Coalescing: ??= pluto local a = 1 a = a + 1 a += 1 Copy info Compound operators are syntactic sugar. They'll call the same metamethods as their non-compound counterparts.","s":"Compound Operators","u":"/docs/New Operators","h":"#compound-operators","p":327},{"i":333,"t":"The <, <=, >, and >= operators can now be chained successively. pluto if 1 < 2 < 3 then print(\"Hello, world!\") end -- Pluto generates code which effectively evaluates to this: if 1 < 2 and 2 < 3 then print(\"Hello, world!\") end Copy","s":"Comparison Chaining","u":"/docs/New Operators","h":"#comparison-chaining","p":327},{"i":335,"t":"The nil-coalescing operator is helpful for evaluating values against nil. If the left-hand operand is nil, it returns the right-hand operand. Otherwise, it returns the left-hand operand. pluto local function say(message) print(message ?? \"The message was nil.\") end say() --> The message was nil. say(nil) --> The message was nil. say(\"Hello, world!\") --> Hello, world! Copy It's a cleaner version of this code: pluto local function say(message) if message == nil then message = \"The message was nil.\" end print(message) end say() --> The message was nil. say(nil) --> The message was nil. say(\"Hello, world!\") --> Hello, world! Copy You can even use compound assignment: pluto local function say(message) message ??= \"The message was nil.\" print(message) end say() --> The message was nil. say(nil) --> The message was nil. say(\"Hello, world!\") --> Hello, world! Copy info This operator does not implement any metamethods.","s":"Coalescing Operator","u":"/docs/New Operators","h":"#coalescing-operator","p":327},{"i":337,"t":"The Walrus operator allows you to perform assignments inside of conditional expresssions. pluto if a := get_value() then -- 'a' was assigned a truthy value. else -- 'a' was assigned a falsy value. end Copy You can imagine it like this, but note they're not always the same: pluto do local a = get_value() if a then -- 'a' was assigned a truthy value. else -- 'a' was assigned a falsy value. end end Copy Note that for while-loops, it will be executed as many times as the condition: Pluto Way pluto while a := next_value() do -- ... end Copy Lua Way pluto while true do local a = next_value() if not a then break end -- ... end Copy","s":"Walrus Operator","u":"/docs/New Operators","h":"#walrus-operator","p":327},{"i":339,"t":"The spaceship operator, also known as the three-way comparison operator, allows you to quickly compare 2 values for equality and order. pluto local eq = 1 <=> 1 local lt = 3 <=> 42 local gt = 9 <=> 5 print(eq, lt, gt) --> 0, -1, 1 Copy It works with any type that supports __eq and __lt, making it well-suited for usage in generic algorithms like sorting. The return values are designed such that you can compare them to 0, e.g. with the values from above: pluto print(eq <= 0) --> true print(lt <= 0) --> true print(gt <= 0) --> false Copy","s":"Spaceship Operator","u":"/docs/New Operators","h":"#spaceship-operator","p":327},{"i":341,"t":"The pipe operator allows you represent data pipelines more succinctly. pluto local { http, json } = require \"pluto:*\" http.request(\"https://httpbin.org/get\") |> json.decode |> dumpvar |> print --> { --> [\"args\"] = {}, --> [\"headers\"] = { --> [\"Host\"] = string(11) \"httpbin.org\", --> [\"User-Agent\"] = string(56) \"Mozilla/5.0 (compatible; Soup Library; +https://soup.do)\", --> [\"X-Amzn-Trace-Id\"] = string(40) \"Root=1-65e05b66-6aa8b7c94e7580774a804c24\", --> [\"Accept-Encoding\"] = string(13) \"deflate, gzip\", --> }, --> [\"origin\"] = string(13) \"1.2.3.4\", --> [\"url\"] = string(23) \"https://httpbin.org/get\", --> } Copy The HTTP-to-print pipeline here would otherwise be written like this: pluto print(dumpvar(json.decode((http.request(\"https://httpbin.org/get\"))))) Copy Note that the pipe operator only passes on the first return value, which is classically achieved by wrapping the expression in an extra pair of parentheses.","s":"Pipe Operator","u":"/docs/New Operators","h":"#pipe-operator","p":327},{"i":343,"t":"It is also possible to provide additional arguments for the righthand side of the pipe operator: pluto local producer = || -> \"10\" producer() |> tonumber|16| |> print --> 16 Copy","s":"Additional Arguments","u":"/docs/New Operators","h":"#additional-arguments","p":327},{"i":345,"t":"There is specialized syntax for method calls with the pipe operator, too: pluto local producer = || -> 21 local obj = { function multiply(value) return value * self.factor end } obj.factor = 2 producer() |> obj:multiply |> print --> 42 Copy","s":"Methods Calls","u":"/docs/New Operators","h":"#methods-calls","p":327},{"i":347,"t":"The righthand side of the pipe operator can also be an anonymous function, allowing for more advanced usage like this: pluto local producer = || -> 42 producer() |> |res| -> print($\"The result was {res}\") --> The result was 42 Copy","s":"Anonymous Functions","u":"/docs/New Operators","h":"#anonymous-functions","p":327},{"i":349,"t":"The messages for syntax errors are enhanced. They include tailored messages and code snippets, which should help newer programmers identify problems quicker. It's not a game changer, but it's neat.","s":"Syntax Errors","u":"/docs/QoL Improvements/Syntax Errors","h":"","p":348},{"i":351,"t":"Problematic Code pluto if a < b and t == 5 return \"Gottem\" end Copy Emitted Syntax Error syntax error: file.pluto:1: expected 'then' to delimit condition. 1 | if a < b and t == 5 return \"Gottem\" end | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ here: expected 'then' symbol. Copy","s":"Example 1","u":"/docs/QoL Improvements/Syntax Errors","h":"#example-1","p":348},{"i":353,"t":"Problematic Code pluto local fn = |a, b, c| => (a == b and a < c) Copy Emitted Syntax Error syntax error: file.pluto:1: impromper lambda definition 1 | local fn = |a, b, c| => (a == b and a < c) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ here: expected '->' arrow syntax for lambda expression. Copy","s":"Example 2","u":"/docs/QoL Improvements/Syntax Errors","h":"#example-2","p":348},{"i":355,"t":"These errors support coloring, but it's disabled by default. Define the PLUTO_USE_COLORED_OUTPUT macro in luaconf.h or your build config to enable colored error messages. tip For Windows users, you can enable ANSI coloring support with the following command: REG ADD HKCU\\CONSOLE /f /v VirtualTerminalLevel /t REG_DWORD /d 1","s":"ANSI Coloring","u":"/docs/QoL Improvements/Syntax Errors","h":"#ansi-coloring","p":348},{"i":357,"t":"Pluto allows you to use reserved tokens such as if from Lua and class from Pluto as identifiers with shorthand table syntax and for goto labels. Reserved tokens as identifiers with shorthand table syntax pluto local t = { class = \"key\" } print(t.class) Copy Reserved tokens as identifiers for goto labels pluto -- Print every number besides five. for i = 1, 10 do if i == 5 then goto continue end print(i) ::continue:: end Copy However, variable names and function calls will not allow you to use reserved tokens as identifiers.","s":"Reserved Identifiers","u":"/docs/QoL Improvements/Reserved Identifiers","h":"","p":356},{"i":359,"t":"Pluto allows do to be used as a universal block opener, meaning it can be used instead of then and begin. If Statement Example pluto local x = 3 if x == 3 do print(\"x is 3!\") end Copy Class Statement Example pluto class Human do function __construct(public name) end function greet() print($\"Hello, {self.name}!\") end end new Human(\"John\"):greet() Copy Enum Statement Example pluto enum Suit do HEARTS, DIAMONDS, CLUBS, SPADES end assert(HEARTS == 1) Copy","s":"Universal Block Opener","u":"/docs/QoL Improvements/Universal Block Opener","h":"","p":358},{"i":361,"t":"Must be included via require.","s":"Base32","u":"/docs/Runtime Environment/Base32","h":"","p":360},{"i":363,"t":"Returns an encoded base32 string. Parameters​ data — A string of data to encode. pad — Whether or not to apply padding. Defaults to true.","s":"base32.encode","u":"/docs/Runtime Environment/Base32","h":"#base32encode","p":360},{"i":365,"t":"Returns a decoded base32 string. Parameters​ data — A string of base32 data to decode.","s":"base32.decode","u":"/docs/Runtime Environment/Base32","h":"#base32decode","p":360},{"i":367,"t":"Must be included via require.","s":"Base64","u":"/docs/Runtime Environment/Base64","h":"","p":366},{"i":369,"t":"Returns a base64-encoded string. Parameters​ data — A string of data to encode. pad — Whether or not to apply padding. Defaults to true. pluto local base64 = require(\"base64\") print(base64.encode(\"Hello, World!\")) --> SGVsbG8sIFdvcmxkIQ== Copy","s":"base64.encode","u":"/docs/Runtime Environment/Base64","h":"#base64encode","p":366},{"i":371,"t":"Returns a decoded base64 string. Parameters​ data — A string of base64 data. pluto local base64 = require(\"base64\") print(base64.decode(\"SGVsbG8sIFdvcmxkIQ==\")) --> Hello, world! Copy","s":"base64.decode","u":"/docs/Runtime Environment/Base64","h":"#base64decode","p":366},{"i":373,"t":"Returns a base64url-encoded string. This variant is sometimes refered to as filename safe base64. Parameters​ data — A string of data to encode. pad — Whether or not to apply padding. Defaults to false. pluto local base64 = require(\"base64\") print(base64.urlencode(\"Hello, World!\")) --> SGVsbG8sIFdvcmxkIQ Copy","s":"base64.urlencode","u":"/docs/Runtime Environment/Base64","h":"#base64urlencode","p":366},{"i":375,"t":"Similar to base64.decode except for base64url. Parameters​ data — A string of base64 data. pluto local base64 = require(\"base64\") print(base64.urldecode(\"SGVsbG8sIFdvcmxkIQ\")) --> Hello, world! Copy","s":"base64.urldecode","u":"/docs/Runtime Environment/Base64","h":"#base64urldecode","p":366},{"i":377,"t":"Must be included via require.","s":"Bigint","u":"/docs/Runtime Environment/Bigint","h":"","p":376},{"i":379,"t":"To instantiate a bigint, you can call the bigint.new function, or use the new operator. Parameters​ The decimal value of the bigint. pluto local bigint = require \"pluto:bigint\" print(new bigint(\"123\")) --> 123 Copy","s":"bigint.new","u":"/docs/Runtime Environment/Bigint","h":"#bigintnew","p":376},{"i":381,"t":"As seen above, the __tostring metamethod provides a string representation of the Bigint in decimal.","s":"bigint.tostring, __tostring","u":"/docs/Runtime Environment/Bigint","h":"#biginttostring-__tostring","p":376},{"i":383,"t":"Provides a hexadecimal representation of the Bigint. pluto local bigint = require \"pluto:bigint\" print(new bigint(\"420\"):hex()) --> 1A4 Copy","s":"bigint.hex","u":"/docs/Runtime Environment/Bigint","h":"#biginthex","p":376},{"i":385,"t":"Provides a binary representation of the Bigint. pluto local bigint = require \"pluto:bigint\" print(new bigint(\"420\"):binary()) --> 110100100 Copy","s":"bigint.binary","u":"/docs/Runtime Environment/Bigint","h":"#bigintbinary","p":376},{"i":387,"t":"Adds two bigints together. Returns a new bigint.","s":"bigint.add, __add","u":"/docs/Runtime Environment/Bigint","h":"#bigintadd-__add","p":376},{"i":389,"t":"Performs subtraction on two bigints. Returns a new bigint.","s":"bigint.sub, __sub","u":"/docs/Runtime Environment/Bigint","h":"#bigintsub-__sub","p":376},{"i":391,"t":"Performs multiplication on two bigints. Returns a new bigint.","s":"bigint.mul, __mul","u":"/docs/Runtime Environment/Bigint","h":"#bigintmul-__mul","p":376},{"i":393,"t":"Performs division on two bigints. Returns two new bigints: quotient and remainder. pluto local bigint = require \"pluto:bigint\" print(new bigint(10):div(new bigint(3))) --> 3 1 Copy","s":"bigint.div","u":"/docs/Runtime Environment/Bigint","h":"#bigintdiv","p":376},{"i":395,"t":"Performs division on two bigints. Returns a new bigint with the quotient. pluto local bigint = require \"pluto:bigint\" print(new bigint(10) / new bigint(3)) --> 3 Copy","s":"__div","u":"/docs/Runtime Environment/Bigint","h":"#__div","p":376},{"i":397,"t":"Performs divison on two bigints. Returns a new bigint with the remainder. pluto local bigint = require \"pluto:bigint\" print(new bigint(10) % new bigint(3)) --> 1 Copy","s":"bigint.mod, __mod","u":"/docs/Runtime Environment/Bigint","h":"#bigintmod-__mod","p":376},{"i":399,"t":"Performs expontentiation on two bigints. Returns a new bigint. pluto local bigint = require \"pluto:bigint\" print(new bigint(2) ^ new bigint(10)) --> 1024 Copy","s":"bigint.pow, __pow","u":"/docs/Runtime Environment/Bigint","h":"#bigintpow-__pow","p":376},{"i":401,"t":"Returns the position of the most significant set bit as a plain integer. pluto local bigint = require \"pluto:bigint\" print(new bigint(420):bitlength()) --> 9 Copy","s":"bigint.bitlength","u":"/docs/Runtime Environment/Bigint","h":"#bigintbitlength","p":376},{"i":403,"t":"Must be included via require.","s":"Assert","u":"/docs/Runtime Environment/Assert","h":"","p":402},{"i":405,"t":"Asserts that value is nil Parameters​ value — The value which should be nil. Errors​ An assertion error is thrown if the value is not nil. pluto local assert = require(\"assert\") assert.isnil(nil) -- Passes. assert.isnil(5) -- Error: --[[ test.pluto:4 -> Assertion Error: (assert.isnil) Intended Value: nil Received Value: 5 stack traceback: [C]: in function 'error' [string \"pluto:assert\"]:75: in function <[string \"pluto:assert\"]:46> (...tail calls...) [C]: in ? --]] Copy","s":"assert.isnil","u":"/docs/Runtime Environment/Assert","h":"#assertisnil","p":402},{"i":407,"t":"Asserts that value is true. Parameters​ value — The value which should be true. Errors​ An assertion error is thrown if value is not true pluto local assert = require(\"assert\") assert.istrue(true) -- Passes. assert.istrue(false) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.istrue) Intended Value: true Received Value: false stack traceback: [C]: in function 'error' [string \"pluto:assert\"]:75: in function <[string \"pluto:assert\"]:46> (...tail calls...) test.pluto:4: in main chunk [C]: in ? --]] Copy","s":"assert.istrue","u":"/docs/Runtime Environment/Assert","h":"#assertistrue","p":402},{"i":409,"t":"Asserts that value is false. Parameters​ value — The value which should be false. Errors​ An assertion error is thrown if value is not false. pluto local assert = require(\"assert\") assert.isfalse(false) -- Passes. assert.isfalse(true) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.isfalse) Intended Value: false Received Value: true stack traceback: [C]: in function 'error' [string \"pluto:assert\"]:75: in function <[string \"pluto:assert\"]:46> (...tail calls...) test.pluto:4: in main chunk [C]: in ? --]] Copy","s":"assert.isfalse","u":"/docs/Runtime Environment/Assert","h":"#assertisfalse","p":402},{"i":411,"t":"Asserts that value is a \"falsy\" value. Falsy means the value is nil or false. Parameters​ value — The value which should be falsy. Errors​ An assertion error is thrown if value is not falsy. pluto local assert = require(\"assert\") assert.falsy(nil) -- Passes. assert.falsy(false) -- Passes. assert.falsy(\"Hello, world!\") -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.falsy) Intended Value: nil or false Received Value: string(13) \"Hello, world!\" stack traceback: [C]: in function 'error' [string \"pluto:assert\"]:75: in function <[string \"pluto:assert\"]:46> (...tail calls...) test.pluto:4: in main chunk [C]: in ? --]] Copy","s":"assert.falsy","u":"/docs/Runtime Environment/Assert","h":"#assertfalsy","p":402},{"i":413,"t":"Asserts that value is a \"truthy\" value. This is the inverse of \"falsy\", a.k.a, any value that isn't nil or false is truthy. Parameters​ value — The value which should be truthy, a.k.a it should not be nil or false. Errors​ An assertion error is thrown if value is not truthy, i.e if value is nil or false. pluto local assert = require(\"assert\") assert.truthy(\"Hello, world!\") -- Passes. assert.truthy(nil) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.truthy) Intended Value: not nil or false Received Value: nil stack traceback: [C]: in function 'error' [string \"pluto:assert\"]:75: in function <[string \"pluto:assert\"]:46> (...tail calls...) test.pluto:4: in main chunk [C]: in ? --]] Copy","s":"assert.truthy","u":"/docs/Runtime Environment/Assert","h":"#asserttruthy","p":402},{"i":415,"t":"Asserts that value is not nil. Parameters​ value — The value which should not be nil. Errors​ An assertion error is thrown if value is nil. pluto local assert = require(\"assert\") assert.notnil(\"Hello, world!\") -- Passes. assert.notnil(nil) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.notnil) Intended Value: not nil Received Value: nil stack traceback: [C]: in function 'error' [string \"pluto:assert\"]:75: in function <[string \"pluto:assert\"]:46> (...tail calls...) test.pluto:4: in main chunk [C]: in ? --]] Copy","s":"assert.notnil","u":"/docs/Runtime Environment/Assert","h":"#assertnotnil","p":402},{"i":417,"t":"Asserts that value1 is equal to value2. This function can compare tables, looking at both the table's reference and what's inside it. If the tables aren't exactly the same (meaning they don't reference the same table), the function will go through the contents of the tables and compare them step by step. Parameters​ value1 — The first value. value2 — The second value. Errors​ An assertion error is thrown if value1 does not equal value2. pluto local assert = require(\"assert\") assert.equal(\"Hello, world!\", \"Hello, world...\") -- Error: --[[ pluto: test.pluto:3 -> Assertion Error: (assert.equal) Intended Value: string(13) \"Hello, world!\" Received Value: string(15) \"Hello, world...\" --]] assert.equal(\"Hi there.\":split(\" \"), \"Hello there.\":split(\" \")) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.equal) Intended Value: { [1] = string(2) \"Hi\", [2] = string(6) \"there.\", } Received Value: { [1] = string(5) \"Hello\", [2] = string(6) \"there.\", } --]] Copy","s":"assert.equal","u":"/docs/Runtime Environment/Assert","h":"#assertequal","p":402},{"i":419,"t":"Asserts that value1 is not equal to value2. This function can compare tables, looking at both the table's reference and what's inside it. If the tables aren't exactly the same (meaning they don't reference the same table), the function will go through the contents of the tables and compare them step by step. Parameters​ value1 — The first value. value2 — The second value. Errors​ An assertion error is thrown of value1 does equal value2. pluto local assert = require(\"assert\") assert.nequal(\"Hello, world!\", \"Hi, world!\") -- Passes. assert.nequal(\"Hi there.\":split(\" \"), \"Hello there.\":split(\" \")) -- Passes. Copy","s":"assert.nequal","u":"/docs/Runtime Environment/Assert","h":"#assertnequal","p":402},{"i":421,"t":"Asserts that value1 is less than value2. Parameters​ value1 — The first number. value2 — The second number. Errors​ An assertion error is thrown if value1 is not less than value2. pluto local assert = require(\"assert\") assert.less(1, 2) -- Passes. assert.less(1, 1) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.less) Expression: (1 < 1) == false --]] Copy","s":"assert.less","u":"/docs/Runtime Environment/Assert","h":"#assertless","p":402},{"i":423,"t":"Asserts that value1 is less than or equal to value2. Parameters​ value1 — The first number. value2 — The second number. Errors​ An assertion error is thrown if value1 is not less than or equal to value2. pluto local assert = require(\"assert\") assert.lesseq(1, 2) -- Passes. assert.lesseq(1, 0) -- Error: --[[ pluto: test.pluto:3 -> Assertion Error: (assert.lesseq) Expression: (1 <= 0) == false --]] Copy","s":"assert.lesseq","u":"/docs/Runtime Environment/Assert","h":"#assertlesseq","p":402},{"i":425,"t":"Asserts that value1 is greater than value2. Parameters​ value1 — The first number. value2 — The second number. Errors​ An assertion errros is thrown if value1 is not greater than value2. pluto local assert = require(\"assert\") assert.greater(3, 2) -- Passes. assert.greater(3, 3) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.greater) Expression: (3 > 3) == false --]] Copy","s":"assert.greater","u":"/docs/Runtime Environment/Assert","h":"#assertgreater","p":402},{"i":427,"t":"Asserts that value1 is greater than or equal to value2. Parameters​ value1 — The first number. value2 — The second number. Errors​ An assertion errros is thrown if value1 is not greater than or equal to value2. pluto local assert = require(\"assert\") assert.greatereq(3, 2) -- Passes. assert.greatereq(3, 3) -- Passes. Copy","s":"assert.greatereq","u":"/docs/Runtime Environment/Assert","h":"#assertgreatereq","p":402},{"i":429,"t":"Asserts that callback does not raise an error when called. Parameters​ callback — A function reference. ... — Any other parameters passed to this function will be passed to the callback. Errors​ An assertion error is thrown if callback raises an error. pluto local assert = require(\"assert\") assert.noerror(tostring, 400) -- Passes. assert.noerror(error, \"argument argument\") -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.noerror) An error was raised: argument argument --]] Copy","s":"assert.noerror","u":"/docs/Runtime Environment/Assert","h":"#assertnoerror","p":402},{"i":431,"t":"Asserts that callback does raise an error when called. Parameters​ callback — A function reference. ... — Any other parameters passed to this function will be passed to the callback. Errors​ An assertion error is thrown if callback does not raise an error. pluto local assert = require(\"assert\") assert.haserror(error, \"argument argument\") -- Passes. assert.haserror(tostring, 400) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.haserror) Expected an error, but there was none. --]] Copy","s":"assert.haserror","u":"/docs/Runtime Environment/Assert","h":"#asserthaserror","p":402},{"i":433,"t":"Asserts that callback raises an error, and that substring is present within the error message. Parameters​ substring — The substring that should be inside of the error message. callback — A function reference. ... — Any other parameters passed to this function will be passed to the callback. Errors​ An assertion error is thrown if: callback does not raise an error. callback does raise an error, but the error message does not contain substring. pluto local assert = require(\"assert\") assert.searcherror(\"argument\", error, \"argument argument\") -- Passes. assert.searcherror(\"something\", tostring, 400) -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.searcherror) Expected an error, but there was none. --]] assert.searcherror(\"argument\", error, \"argument argument\") -- Passes. assert.searcherror(\"argument\", error, \"something something\") -- Error: --[[ pluto: test.pluto:4 -> Assertion Error: (assert.searcherror) Absent String: argument Error Message: something s --]] Copy","s":"assert.searcherror","u":"/docs/Runtime Environment/Assert","h":"#assertsearcherror","p":402},{"i":435,"t":"Asserts that element is contained inside of container by using Pluto's modified in operator. It's important to understand the type constraints of in to understand the type constraints here. Parameters​ element — The element to search for. If container is a string, element must be a string. If container is a table, element can be any type. container — The container that element should be inside of. The container should be a string or table. Errors​ An assertion error is thrown if: element is not contained inside of container. element or container are of the wrong type and cannot be used with Pluto's modified in operator. pluto assert.contains(\"hello\", { \"hello\", \"world\" }) -- Passes. assert.contains(\"world\", { \"hello\", \"hello\" }) -- Fails. Copy","s":"assert.contains","u":"/docs/Runtime Environment/Assert","h":"#assertcontains","p":402},{"i":437,"t":"Must be included via require.","s":"Canvas","u":"/docs/Runtime Environment/Canvas","h":"","p":436},{"i":439,"t":"Creates a new canvas instance. Parameters​ Width. Height.","s":"canvas.new","u":"/docs/Runtime Environment/Canvas","h":"#canvasnew","p":436},{"i":441,"t":"Creates a new canvas instance based on a BMP image. Parameters​ The BMP image as a string.","s":"canvas.bmp","u":"/docs/Runtime Environment/Canvas","h":"#canvasbmp","p":436},{"i":443,"t":"Creates a new canvas instance containing a QR code. Parameters​ The string to be encoded. An optional table of options. Options​ \"ecl\" specifies the error correction level between \"low\", \"medium\", \"quartile\", \"high\". defaults to \"low\". \"border\" specifies the number of pixels around the QR code. defaults to 0. \"bg\" specifies the background color. defaults to 0x000000 for black. \"fg\" specifies the background color. defaults to 0xffffff for white. pluto local canvas = require \"canvas\" local c = canvas.qrcode(\"Hello from Pluto!\", { fg = 0xffffff, bg = 0x000000 }) print(c:tobwstring(0xffffff)) --> █▀▀▀▀▀█ ▄ █▄▄ █▀▀▀▀▀█ --> █ ███ █ ▄█▄▄█ █ ███ █ --> █ ▀▀▀ █ ▄▀ █▄ █ ▀▀▀ █ --> ▀▀▀▀▀▀▀ ▀▄▀▄█ ▀▀▀▀▀▀▀ --> ▀▀███ ▀███ █▀▀ ▀▄█▄▀▄ --> █▄▀▄▀█▀█▀▀ ▀█▄▀▄▄██▀ --> ▀▀▀▀▀ ▀ █▀█▀ ▄█▄▄▄ ▀ --> █▀▀▀▀▀█ ▀ ▀██▀▄ ▄██ --> █ ███ █ █▄ ▄█▄██▄▄ ▄ --> █ ▀▀▀ █ █▄ ▀█▀ ▀▄▄█ --> ▀▀▀▀▀▀▀ ▀ ▀ ▀ ▀ ▀ Copy","s":"canvas.qrcode","u":"/docs/Runtime Environment/Canvas","h":"#canvasqrcode","p":436},{"i":445,"t":"Gets the color of the pixel at the given coordinates. Parameters​ The canvas instance. The X coordinate. The Y coordinate. Returns​ The color as an integer.","s":"canvas.get","u":"/docs/Runtime Environment/Canvas","h":"#canvasget","p":436},{"i":447,"t":"Sets the color of the pixel at the given coordinates. Parameters​ The canvas instance. The X coordinate. The Y coordinate. The color as an integer.","s":"canvas.set","u":"/docs/Runtime Environment/Canvas","h":"#canvasset","p":436},{"i":449,"t":"Sets every pixel to the given color. Parameters​ The canvas instance. The color as an integer.","s":"canvas.fill","u":"/docs/Runtime Environment/Canvas","h":"#canvasfill","p":436},{"i":451,"t":"Get the size of a canvas. Parameters​ The canvas instance. Returns​ Width. Height.","s":"canvas.size","u":"/docs/Runtime Environment/Canvas","h":"#canvassize","p":436},{"i":453,"t":"Multiplies the size of a canvas. Parameters​ The canvas instance. The multiplier. Must be 2 or higher.","s":"canvas.mulsize","u":"/docs/Runtime Environment/Canvas","h":"#canvasmulsize","p":436},{"i":455,"t":"Convert a canvas to a BMP image. Parameters​ The canvas instance. Returns​ A string.","s":"canvas.tobmp","u":"/docs/Runtime Environment/Canvas","h":"#canvastobmp","p":436},{"i":457,"t":"Convert a canvas to a PNG image. Parameters​ The canvas instance. Returns​ A string. pluto local { base64, canvas } = require \"*\" local c = new canvas(5, 5) c:fill(0xff0000) print(\"data:image/png;base64,\"..base64.encode(c:topng())) --> data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAIAAAACDbGyAAAAW0lEQVQIHQFQAK//AP8AAP8AAP8AAP8AAP8AAAD/AAD/AAD/AAD/AAD/AAAA/wAA/wAA/wAA/wAA/wAAAP8AAP8AAP8AAP8AAP8AAAD/AAD/AAD/AAD/AAD/AAD9fBjo3iScjwAAAABJRU5ErkJggg== Copy","s":"canvas.topng","u":"/docs/Runtime Environment/Canvas","h":"#canvastopng","p":436},{"i":459,"t":"Convert a canvas to a black and white unicode string. Parameters​ The canvas instance. The color to be \"white.\" Any other color will be \"black.\" Returns​ A string.","s":"canvas.tobwstring","u":"/docs/Runtime Environment/Canvas","h":"#canvastobwstring","p":436},{"i":461,"t":"This page documents the changes & additions to the coroutine library in Pluto, which is built on top of Lua 5.4's.","s":"Coroutine","u":"/docs/Runtime Environment/Coroutine","h":"","p":460},{"i":463,"t":"An alternative to coroutine.resume that rethrows any errors thrown by the coroutine.","s":"coroutine.xresume","u":"/docs/Runtime Environment/Coroutine","h":"#coroutinexresume","p":460},{"i":465,"t":"Yields the current coroutine for the given number of milliseconds. Parameters​ The number of milliseconds to yield for.","s":"coroutine.sleep","u":"/docs/Runtime Environment/Coroutine","h":"#coroutinesleep","p":460},{"i":467,"t":"The CaT module is available via require \"pluto:cat\" and provides encoding and decoding for the Colons and Tabs format.","s":"CaT","u":"/docs/Runtime Environment/CaT","h":"","p":466},{"i":469,"t":"Returns a string of CaT. Parameters​ data — The table to encode in CaT. pluto local cat = require \"pluto:cat\" cat.encode { List = { __value = \"With Value\", Child = \"Also With Value\" } } |> io.write --> List: With Value --> Child: Also With Value Copy","s":"cat.encode","u":"/docs/Runtime Environment/CaT","h":"#catencode","p":466},{"i":471,"t":"Returns a table representing the CaT data. Parameters​ data — The CaT data to decode. presentation — How to represent the data as a table. Can be \"flat\", \"flatwithorder\", or \"full\" (default). pluto local cat = require \"pluto:cat\" local data = cat.decode [[ List: With Value Child: Also With Value ]] print(dumpvar(data)) --> { --> [1] = { --> [\"value\"] = string(10) \"With Value\", --> [\"name\"] = string(4) \"List\", --> [\"children\"] = { --> [1] = { --> [\"name\"] = string(5) \"Child\", --> [\"value\"] = string(15) \"Also With Value\", --> }, --> }, --> }, --> } Copy With the default \"full\" representation, the retuned table has an __index metamethod for ease of use: pluto print(data.List.value) --> With Value print(data.List.Child.value) --> Also With Value Copy Alternatively, the other representations are available: pluto local cat = require \"pluto:cat\" print(dumpvar(cat.decode([[ home john hello.txt: Hello, world! ]], \"flat\"))) --> { --> [\"home\"] = { --> [\"john\"] = { --> [\"hello.txt\"] = string(13) \"Hello, world!\", --> }, --> }, --> } Copy pluto local cat = require \"pluto:cat\" print(dumpvar(cat.decode([[ Primary Color: Purple Secondary Color: White ]], \"flatwithorder\"))) --> { --> [\"__order\"] = { --> [1] = string(13) \"Primary Color\", --> [2] = string(15) \"Secondary Color\", --> }, --> [\"Primary Color\"] = string(6) \"Purple\", --> [\"Secondary Color\"] = string(5) \"White\", --> } Copy","s":"cat.decode","u":"/docs/Runtime Environment/CaT","h":"#catdecode","p":466},{"i":473,"t":"Must be included via require. caution This is intended for advanced users.","s":"FFI","u":"/docs/Runtime Environment/FFI","h":"","p":472},{"i":475,"t":"Loads a DLL/SO (dynamic link library/shared object). Parameters​ The name of the library which is to be located by the operating system. A relative or absolute path also works. Returns​ An FFI library instance. Example​ The following C++ code: lib.cpp cpp #ifdef _WIN32 #define EXPORT __declspec(dllexport) #else #define EXPORT #endif extern \"C\" EXPORT int MY_MAGIC_INT = 69; extern \"C\" EXPORT int add(int a, int b) { return a + b; } Copy Compiled like this: Windows: clang -std=c++17 --shared -o lib.dll lib.cpp Linux/MacOS: clang -std=c++17 --shared -o liblib.so lib.cpp Can be used like this: pluto local ffi = require \"pluto:ffi\" local lib = ffi.open(os.platform == \"windows\" ? \"lib\" : \"./liblib.so\") assert(lib:value(\"i32\", \"MY_MAGIC_INT\") == 69) assert(lib:wrap(\"i32\", \"add\", \"i32\", \"i32\")(38, 4) == 42) Copy","s":"ffi.open","u":"/docs/Runtime Environment/FFI","h":"#ffiopen","p":472},{"i":477,"t":"Parses a subset of C for a struct. Paramters​ The C source code. Returns​ An FFI Struct Type instance. Example​ pluto local ffi = require \"pluto:ffi\" local Color = ffi.struct[[ struct Color { uint8_t r; uint8_t g; uint8_t b; }; ]] local c = new Color() c.r = 255 print(c.r) --> 255 Copy","s":"ffi.struct","u":"/docs/Runtime Environment/FFI","h":"#ffistruct","p":472},{"i":479,"t":"Instantiate an FFI Struct Type by name or instance. Parameters​ An FFI Struct Type instance or the name of one stored on the FFI library itself. Returns​ A new instance of the struct.","s":"ffi.new","u":"/docs/Runtime Environment/FFI","h":"#ffinew","p":472},{"i":481,"t":"Parses a subset of C for structs to be stored on the FFI library itself. Parameters​ The C source code. Example​ pluto local ffi = require \"pluto:ffi\" ffi.cdef[[ struct Color { uint8_t r; uint8_t g; uint8_t b; }; ]] local c = ffi.new(\"Color\") c.r = 255 print(c.r) --> 255 Copy","s":"ffi.cdef","u":"/docs/Runtime Environment/FFI","h":"#fficdef","p":472},{"i":483,"t":"Measures the size of an FFI Struct Type. Parameters​ An FFI Struct Type instance, the name of a struct stored on the FFI library itself, or an instance of the struct. Returns​ The size in bytes.","s":"ffi.sizeof","u":"/docs/Runtime Environment/FFI","h":"#ffisizeof","p":472},{"i":485,"t":"Measures the offset of a field on an FFI Struct Type. Parameters​ An FFI Struct Type instance, the name of a struct stored on the FFI library itself, or an instance of the struct. The name of the field. Returns​ The offset in bytes.","s":"ffi.offsetof","u":"/docs/Runtime Environment/FFI","h":"#ffioffsetof","p":472},{"i":487,"t":"This constant can be used to give 0 to a \"ptr\"-type argument.","s":"ffi.nullptr","u":"/docs/Runtime Environment/FFI","h":"#ffinullptr","p":472},{"i":489,"t":"Obtained from ffi.open.","s":"FFI Library Class","u":"/docs/Runtime Environment/FFI","h":"#ffi-library-class","p":472},{"i":491,"t":"Creates a function wrapper. Parameters​ The return type. Can be \"void\", \"i8\", \"i16\", \"i32\", \"i64\", \"u8\", \"u16\", \"u32\", \"u64\", \"f32\", \"f64\", \"ptr\" or \"str\". The name of the function. The argument type(s). Can be \"void\", \"i8\", \"i16\", \"i32\", \"i64\", \"u8\", \"u16\", \"u32\", \"u64\", \"f32\", \"f64\", \"ptr\" or \"str\". Returns​ A new function wrapper instance, which can be called.","s":"wrap","u":"/docs/Runtime Environment/FFI","h":"#wrap","p":472},{"i":493,"t":"Gets an exported value and interprets it using the given type. Parameters​ The type. Can be \"void\", \"i8\", \"i16\", \"i32\", \"i64\", \"u8\", \"u16\", \"u32\", \"u64\", \"f32\", \"f64\", \"ptr\" or \"str\". The name of the export. Returns​ The interpreted value.","s":"value","u":"/docs/Runtime Environment/FFI","h":"#value","p":472},{"i":495,"t":"Parses a subset of C for values and functions and puts them on the library instance. Parameters​ The C source code. Example​ pluto local ffi = require \"pluto:ffi\" local lib = ffi.open(os.platform == \"windows\" ? \"lib\" : \"./liblib.so\") lib:cdef[[ int MY_MAGIC_INT; int add(int a, int b); ]] assert(lib.MY_MAGIC_INT == 69) assert(lib.add(38, 4) == 42) Copy This is equivalent to the following: pluto local ffi = require \"pluto:ffi\" local lib = ffi.open(os.platform == \"windows\" ? \"lib\" : \"./liblib.so\") lib.MY_MAGIC_INT = lib:value(\"i32\", \"MY_MAGIC_INT\") lib.add = lib:wrap(\"i32\", \"add\", \"i32\", \"i32\") assert(lib.MY_MAGIC_INT == 69) assert(lib.add(38, 4) == 42) Copy","s":"cdef","u":"/docs/Runtime Environment/FFI","h":"#cdef","p":472},{"i":497,"t":"The exception class makes errors easier to parse with where and what members, as opposed to having a string with both. For ease of use, constructing an exception automatically throws it. pluto try new exception(\"Not implemented\") catch e then print(e) -- same as error(\"Not implemented\") print(e.what) print(e.where) end Copy Output: script.pluto:2: Not implemented Not implemented script.pluto:2 Copy","s":"Exception","u":"/docs/Runtime Environment/Exception","h":"","p":496},{"i":499,"t":"This page documents the changes & additions to Pluto's runtime environment, which is built on top of Lua 5.4's.","s":"Global & Base","u":"/docs/Runtime Environment/Global & Base","h":"","p":498},{"i":501,"t":"_PVERSION is the global to check your current version of Pluto.","s":"_PVERSION","u":"/docs/Runtime Environment/Global & Base","h":"#_pversion","p":498},{"i":503,"t":"_PSOUP is a global boolean you can access to check linkage with Soup. Always true as of 0.8.0.","s":"_PSOUP","u":"/docs/Runtime Environment/Global & Base","h":"#_psoup","p":498},{"i":505,"t":"os.platform is a global string containing the host platform. Can be \"windows\", \"wasm\", \"linux\", \"macos\", \"android\", or \"unknown\". pluto if _PVERSION == nil then print(\"Plain Lua detected (\".._VERSION..\")\") else io.write(\"Pluto detected (\".._PVERSION..\"), based on \".._VERSION) if os.platform then io.write(\", running on \"..os.platform) end io.write(\"\\n\") end Copy","s":"os.platform","u":"/docs/Runtime Environment/Global & Base","h":"#osplatform","p":498},{"i":507,"t":"package.path is modified to also search for .pluto files.","s":"package.path","u":"/docs/Runtime Environment/Global & Base","h":"#packagepath","p":498},{"i":509,"t":"Tables and coroutines/threads have metatables by default, akin to how each string has a metatable by default. pluto local t = {} local c = coroutine.create(|| -> do end) -- Can do this: t:contains(1) t:concat(\"\\n\") c:resume() -- As opposed to this: table.contains(t, 1) table.concat(t, \"\\n\") coroutine.resume(c) Copy This behavior is implemented by setting the __index metamethod to the respective library (_G.table or _G.coroutine). If you override the metatable, you may want to replicate that.","s":"Default Metatables","u":"/docs/Runtime Environment/Global & Base","h":"#default-metatables","p":498},{"i":511,"t":"A debug function designed to dump values into human-readable formats. Parameters​ The value to dump. Returns​ A string representation of the value. pluto local t = { [\"hello\"] = 1234, [\"goodbye\"] = _G.table, [\"name\"] = \"John\", [\"lastname\"] = \"Doe\", [\"details\"] = { \"No details available.\" } } print(dumpvar(t)) Copy { [\"lastname\"] = string(3) \"Doe\", [\"name\"] = string(4) \"John\", [\"goodbye\"] = { [\"unpack\"] = function: 00007FF7738B3C20, [\"insert\"] = function: 00007FF7738B30D0, [\"freeze\"] = function: 00007FF7738B43F0, [\"foreach\"] = function: 00007FF7738B3220, [\"filter\"] = function: 00007FF7738B4700, [\"isfrozen\"] = function: 00007FF7738B44B0, [\"getn\"] = function: 00007FF7738B43B0, [\"pack\"] = function: 00007FF7738B3B10, [\"contains\"] = function: 00007FF7738B4540, [\"move\"] = function: 00007FF7738B34D0, [\"concat\"] = function: 00007FF7738B37F0, [\"sort\"] = function: 00007FF7738B42B0, [\"remove\"] = function: 00007FF7738B33C0, [\"map\"] = function: 00007FF7738B49A0, }, [\"hello\"] = 1234, [\"details\"] = { [1] = string(21) \"No details available.\", }, } Copy","s":"dumpvar","u":"/docs/Runtime Environment/Global & Base","h":"#dumpvar","p":498},{"i":513,"t":"Similar to dumpvar, but returns valid Lua/Pluto code. May error if the value can not be represented accordingly. Parameters​ The value to dump. pluto -- Slightly altered data from last example as C functions can not be exported. local t = { [\"hello\"] = 1234, [\"name\"] = \"John\", [\"lastname\"] = \"Doe\", [\"details\"] = { \"No details available.\" } } print(exportvar(t)) Copy { [\"hello\"] = 1234, [\"name\"] = \"John\", [\"details\"] = { [1] = \"No details available.\", }, [\"lastname\"] = \"Doe\", } Copy","s":"exportvar","u":"/docs/Runtime Environment/Global & Base","h":"#exportvar","p":498},{"i":515,"t":"Returns a table of numbers in the given range. pluto print(range(10):unpack()) --> 1 2 3 4 5 6 7 8 9 10 print(range(4, 8):unpack()) --> 4 5 6 7 8 Copy","s":"range","u":"/docs/Runtime Environment/Global & Base","h":"#range","p":498},{"i":517,"t":"Performs a three-way comparison on 2 version numbers, similar to the Spaceship Operator. pluto assert(compareversions(\"1.0.0\", \"0.9.0\") >= 0) assert(compareversions(\"1.0.0\", \"1.0.0-dev\") >= 0) Copy Note that pre-release versions (e.g. with -dev suffix) are considered to be less than their final counterparts.","s":"compareversions","u":"/docs/Runtime Environment/Global & Base","h":"#compareversions","p":498},{"i":519,"t":"Calls the given function and returns a string of warnings raised by it. pluto local w = wcall(|| -> warn(\"Bad!\")) print(w ~= \"\" ? (w:strip()) : \"No warnings\") -- Output: \"Bad!\" Copy","s":"wcall","u":"/docs/Runtime Environment/Global & Base","h":"#wcall","p":498},{"i":521,"t":"Must be included via require.","s":"HTTP","u":"/docs/Runtime Environment/HTTP","h":"","p":520},{"i":523,"t":"Performs an HTTP request. Parameters​ The URL to send a request to as a string. This parameter is optional in the sense that the options table (parameter 2) can be parameter 1 instead, but must have the \"url\" option then. The table of options. This parameter is optional if a URL was given. Options​ method: The HTTP request method to use. Defaults to GET. headers: A table of headers, e.g. { [\"Content-Type\"] = \"application/json\" }. body: An optional request payload. If provided, the Content-Length header is set appropriately, and the method is set to POST unless otherwise specified. prefer_ipv6: (Does nothing in WASM builds of Pluto.) When establishing a new connection, we attempt to lookup and connect via IPv4, retrying with IPv6 if needed. If this is set to true, we instead start with IPv6. This may be useful for \"LAN\" services that identify the LAN via IPv6 instead of IPv4. dont_reuse: (Does nothing in WASM builds of Pluto.) Force the implementation not to reuse an existing socket, which may involve waiting. Instead a new connection is opened. This may be useful when many requests are headed to the same remote and you consider the time taken by a fresh handshake to be less than the time taken to wait to reuse. dont_make_reusable: (Does nothing in WASM builds of Pluto.) If a new connection to the remote was opened to carry out the request, close it again after the request. This is useful to avoid burdening the remote for one-off requests. Returns​ On success: The response body as a string. The status code as an integer. A table of response headers. Empty in WASM builds of Pluto. The status text as a string. On failure: Nil. An approximate failure reason as an English string. Not available in WASM builds of Pluto. Multitasking​ If called inside of a coroutine, this function yields. Otherwise, it blocks. In WASM builds of Pluto, it must be called inside of a coroutine that yields to the environment as otherwise the request cannot be dispatched. info The first request to a remote may take a while — especially with HTTPS — due to the TCP and TLS handshakes. We use keep-alive to keep the connection open, so subsequent requests to the same remote will be significantly faster. pluto local http = require \"pluto:http\" local body, status_code, headers, status_text = http.request(\"https://httpbin.org/anything\") print(status_code..\" \"..status_text) if os.platform != \"wasm\" then print(dumpvar(headers)) end print(body) Copy","s":"http.request","u":"/docs/Runtime Environment/HTTP","h":"#httprequest","p":520},{"i":525,"t":"Queries if a keep-alive connection is available for a remote. This function is not available in WASM builds of Pluto. Parameters​ A partial URL identifying the remote. Partial because only the protocol, host, and port are used; additional components such as path are ignored. Multitasking​ If called inside of a coroutine, this function may yield. Otherwise, it may block. pluto local { http, scheduler } = require \"*\" local sched = new scheduler() sched:addloop(function() print(http.hasconnection(\"https://httpbin.org\")) end) sched:add(function() print((http.request(\"https://httpbin.org/anything\"))) end) sched:run() Copy","s":"http.hasconnection","u":"/docs/Runtime Environment/HTTP","h":"#httphasconnection","p":520},{"i":527,"t":"Closes all keep-alive connections like when closing the Lua state but in a non-blocking way. This function does nothing in WASM builds of Pluto. Multitasking​ This function must be called inside of a coroutine, as it will yield.","s":"http.closeconnections","u":"/docs/Runtime Environment/HTTP","h":"#httpcloseconnections","p":520},{"i":529,"t":"Must be included via require.","s":"JSON","u":"/docs/Runtime Environment/JSON","h":"","p":528},{"i":531,"t":"Returns a string of JSON. Parameters​ data — A boolean, number, string, or table to encode as JSON. pretty — Whether to return a human-readable string of JSON. Defaults to false. pluto local json = require(\"json\") local data data = \"Hello, World!\" print(json.encode(data, true)) --> \"Hello, World!\" data = { key = \"Hello, World!\", nested = { nested_key = 1337 } } print(json.encode(data, true)) --> { --> \"key\": \"Hello, World!\", --> \"nested\": { --> \"nested_key\": 1337 --> } --> } Copy Because Lua tables do not have order guarantees, you can add an __order field to fix the order: pluto local t = { __order = { \"a\", \"b\", \"c\" }, a = 1, b = 2, c = 3 } print(require\"json\".encode(t)) -- {\"a\":1,\"b\":2,\"c\":3} Copy The json.null value — assuming you did local json = require(\"json\") — can be used to encode JSON null values. pluto local json = require(\"json\") print(json.encode(json.null)) --> null Copy","s":"json.encode","u":"/docs/Runtime Environment/JSON","h":"#jsonencode","p":528},{"i":533,"t":"Returns multiple potential types. If you pass a serialized boolean, number, or string, then it will return the same type. If you pass a complex JSON object, it will return a table. Parameters​ data — The JSON data to decode. flags — Options to augment the return value. Multiple options can be combined with bitwise OR (|). Defaults to 0. json.withnull — decodes JSON null values as json.null instead of nil. json.withorder — adds an __order field to tables of decoded JSON objects. json.encode respects this, so this is perfect for modifying data while preserving order. pluto local json = require(\"json\") local data, encoded, decoded -- Basic Type data = \"Hello, World!\" encoded = json.encode(data, true) decoded = json.decode(encoded) assert(decoded == data) assert(type(decoded) == \"string\") -- Complex Type data = { key = \"Hello\", nested = { nested_key = 1337 } } encoded = json.encode(data, true) decoded = json.decode(encoded) assert(decoded.key == \"Hello\") assert(type(decoded) == \"table\") assert(decoded.nested.nested_key == 1337) -- Flags encoded = [[{ \"null\": null, \"string\": \"Hello\" }]] decoded = json.decode(encoded, json.withnull | json.withorder) assert(decoded.__order[1] == \"null\") assert(decoded.null == json.null) assert(json.encode(decoded, true) == encoded) Copy","s":"json.decode","u":"/docs/Runtime Environment/JSON","h":"#jsondecode","p":528},{"i":535,"t":"This page documents the changes & additions to the math library in Pluto, which is built on top of Lua 5.4's.","s":"Math","u":"/docs/Runtime Environment/Math","h":"","p":534},{"i":537,"t":"Checks if a number is NaN. Parameters​ The number to check. pluto local x = 0 / 0 print(x ~= x) -- Lua way: Prove the variable is NaN because it is not equal to itself. Works, but unintuitive. print(math.isnan(x)) Copy","s":"math.isnan","u":"/docs/Runtime Environment/Math","h":"#mathisnan","p":534},{"i":539,"t":"Rounds a number to the nearest integer. Parameters​ The number to round. pluto print(math.round(2.4)) --> 2 print(math.round(2.5)) --> 3 Copy","s":"math.round","u":"/docs/Runtime Environment/Math","h":"#mathround","p":534},{"i":541,"t":"An alias of math.atan.","s":"math.atan2","u":"/docs/Runtime Environment/Math","h":"#mathatan2","p":534},{"i":543,"t":"This page documents the changes & additions to the io library in Pluto, which is built on top of Lua 5.4's.","s":"IO","u":"/docs/Runtime Environment/IO","h":"","p":542},{"i":545,"t":"A variant of Lua's os.rename that raises an error on failure and instead has no return values.","s":"io.rename","u":"/docs/Runtime Environment/IO","h":"#iorename","p":542},{"i":547,"t":"A variant of Lua's os.remove that raises an error on failure and instead has no return values.","s":"io.remove","u":"/docs/Runtime Environment/IO","h":"#ioremove","p":542},{"i":549,"t":"Copy a file to another file, creating a new file if needed. Parameters​ A string path or file stream. A path towards the file to copy into. Returns​ A boolean indicating if the file was successfully copied. pluto if io.copy(\"./cfg/config.txt\", \"./backup_cfg/config.txt\") then print(\"Successfully created a backup config!\") else print(\"Failed to create a backup config.\") end Copy","s":"io.copy","u":"/docs/Runtime Environment/IO","h":"#iocopy","p":542},{"i":551,"t":"Extracts the given part from a path. Parameters​ A string path or file stream. The part to return, \"parent\" or \"name\". Returns​ The extracted part. pluto print(io.part(\"/path/to/foo.txt\", \"parent\")) -- \"/path/to\" print(io.part(\"/path/to/foo.txt\", \"name\")) -- \"foo.txt\" Copy","s":"io.part","u":"/docs/Runtime Environment/IO","h":"#iopart","p":542},{"i":553,"t":"Parameters​ A string path or file stream. Returns​ A boolean indicating if the path led toward a directory. pluto local path = \"./dir/main/\" local bool = io.isdir(path) if bool then print(\"Directory!\") else print(\"Not a directory!\") end Copy","s":"io.isdir","u":"/docs/Runtime Environment/IO","h":"#ioisdir","p":542},{"i":555,"t":"Parameters​ A string path or file stream. Returns​ A boolean indicating if the path led towards a file. pluto local path = \"./isfile/file\" local bool = io.isfile(path) if bool then print(\"File!\") else print(\"Not a file!\") end Copy","s":"io.isfile","u":"/docs/Runtime Environment/IO","h":"#ioisfile","p":542},{"i":557,"t":"Parameters​ A string path or file stream. Returns​ A boolean indicating if the path led towards an existing file or directory. pluto if io.exists(\"cfg/config.txt\") then print(\"Config exists!\") else print(\"Config does not exist!\") end Copy","s":"io.exists","u":"/docs/Runtime Environment/IO","h":"#ioexists","p":542},{"i":559,"t":"Create a directory. Parameters​ The path for the new directory. Returns​ A boolean indicating if the directory was successfully created. pluto if io.makedir(\"./cfg\") then print(\"Created cfg directory.\") else print(\"Failed to create cfg directory.\") end Copy","s":"io.makedir","u":"/docs/Runtime Environment/IO","h":"#iomakedir","p":542},{"i":561,"t":"List all the files within a directory. Parameters​ A string path to the directory. A boolean indicating whether or not to recurse sub-directories. Returns​ An index-based table containing file paths. pluto for _, filepath in io.listdir(\".\") do print(filepath) end Copy","s":"io.listdir","u":"/docs/Runtime Environment/IO","h":"#iolistdir","p":542},{"i":563,"t":"Creates a directory and all the non-existing parent directories in the given path. Parameters​ The string path for your new directory. pluto io.makedirs(\"A/B/C\") -- Creates \"C:\\Users\\Username\\Desktop\\Project\\A\\B\\C\" Copy","s":"io.makedirs","u":"/docs/Runtime Environment/IO","h":"#iomakedirs","p":542},{"i":565,"t":"Convert a relative path into an absolute one. Parameters​ A string path or file stream. An optional bool if the path should be canonicalized. A canonical path does not go through symlinks. Returns​ A string representing the new file path. pluto io.absolute(\"cfg/cfg.txt\") -- \"C:\\Users\\Username\\Desktop\\Project\\cfg\\cfg.txt\" Copy","s":"io.absolute","u":"/docs/Runtime Environment/IO","h":"#ioabsolute","p":542},{"i":567,"t":"Convert an absolute path into a relative one. Parameters​ A string path or file stream. Returns​ A string representing the new file path. pluto io.relative(io.absolute(\"cfg/cfg.txt\")) -- \"cfg\\cfg.txt\" Copy","s":"io.relative","u":"/docs/Runtime Environment/IO","h":"#iorelative","p":542},{"i":569,"t":"Get or set a file's contents. Parameters​ A string path or file stream. The desired content. If this parameter is absent, this function works as a getter. Returns​ If this function is acting as a getter, it will return the file's contents or nil if there was an error. pluto local text = io.contents(\"foo.txt\") or \"\" text ..= \"bar\" io.contents(\"foo.txt\", text) Copy This function is not only easier to use than the traditional io.open approach, it also performs significantly better.","s":"io.contents","u":"/docs/Runtime Environment/IO","h":"#iocontents","p":542},{"i":571,"t":"Fetch the size of a file in bytes. Parameters​ A string path or file stream. pluto if io.filesize(\"cfg/config.txt\") <= 1 then print(\"Config is too small or empty.\") end Copy","s":"io.filesize","u":"/docs/Runtime Environment/IO","h":"#iofilesize","p":542},{"i":573,"t":"Get or set a file's modification time. Parameters​ A string path or file stream. The desired timestamp. If this parameter is absent, this function works as a getter. Returns​ If this function is acting as a getter, it will return the file's last write time as seconds since the UNIX epoch. pluto local time = io.writetime(\"foo.txt\") time += 3600 io.writetime(\"foo.txt\", time) Copy This example adds an hour (= 60 minutes = 3600 seconds) to the last write time of \"foo.txt\" (or errors if that file does not exist).","s":"io.writetime","u":"/docs/Runtime Environment/IO","h":"#iowritetime","p":542},{"i":575,"t":"Get or set the current working directory. Parameters​ A path to the desired current working directory. If this parameter is absent, this function works as a getter. Returns​ If this function is acting as a getter, it will return the current working directory. pluto local cwd = io.currentdir() -- Get cwd io.currentdir(\"abc/abc\") -- Set a new cwd Copy","s":"io.currentdir, io.chdir, io.cwd","u":"/docs/Runtime Environment/IO","h":"#iocurrentdir-iochdir-iocwd","p":542},{"i":577,"t":"This page documents the changes & additions to the os library in Pluto, which is built on top of Lua 5.4's.","s":"OS","u":"/docs/Runtime Environment/OS","h":"","p":576},{"i":579,"t":"Parameters​ The amount of milliseconds to sleep for. Example​ pluto os.sleep(1000) -- Pause this thread for 1000ms. Copy","s":"os.sleep","u":"/docs/Runtime Environment/OS","h":"#ossleep","p":576},{"i":581,"t":"All of these return their respective times since implementation-specific epoch.","s":"os.nanos, os.micros, os.millis, os.seconds","u":"/docs/Runtime Environment/OS","h":"#osnanos-osmicros-osmillis-osseconds","p":576},{"i":583,"t":"Returns seconds since UNIX epoch.","s":"os.unixseconds","u":"/docs/Runtime Environment/OS","h":"#osunixseconds","p":576},{"i":585,"t":"The Regex module is available via require \"pluto:regex\" and provides Soup's flavor of the popular string matching language.","s":"Regex","u":"/docs/Runtime Environment/Regex","h":"","p":584},{"i":587,"t":"Parses a pattern and creates an instance for it. Parameters​ The regex to be compiled. Returns​ A pattern instance.","s":"regex.new","u":"/docs/Runtime Environment/Regex","h":"#regexnew","p":584},{"i":589,"t":"Attempt to match a pattern instance. Parameters​ The pattern instance. Returns​ A table with an index/key for each matching group or nil if no matches. pluto local regex = require \"pluto:regex\" local pattern = new regex [[/^the (?:(.+) )?one$/]] print(dumpvar(pattern:match(\"the one\"))) --> { --> [0] = string(7) \"the one\", --> } print(dumpvar(pattern:match(\"the chosen one\"))) --> { --> [1] = string(6) \"chosen\", --> [0] = string(14) \"the chosen one\", --> } print(pattern:match(\"not the one\")) --> nil Copy The overall pattern match is in index 0, and in this case there is only the 1 capturing group, that being (.+). Capture group names will be used if available: pluto local regex = require \"pluto:regex\" local pattern = new regex [[/^the (?:(?'what'.+) )?one$/]] print(dumpvar(pattern:match(\"the chosen one\"))) --> { --> [0] = string(14) \"the chosen one\", --> [\"what\"] = string(6) \"chosen\", --> } Copy","s":"regex.match","u":"/docs/Runtime Environment/Regex","h":"#regexmatch","p":584},{"i":591,"t":"The scheduler class — available via require — can be used to easily set up coroutine-based cooperative multitasking.","s":"Scheduler","u":"/docs/Runtime Environment/Scheduler","h":"","p":590},{"i":593,"t":"The constructor takes no arguments.","s":"__construct","u":"/docs/Runtime Environment/Scheduler","h":"#__construct","p":590},{"i":595,"t":"The add method can be used to turn a function into a coroutine. The coroutine is resumed once and then added to the scheduler.","s":"add","u":"/docs/Runtime Environment/Scheduler","h":"#add","p":590},{"i":597,"t":"The addloop method is a wrapper for the add method that keeps invoking the given function until it returns false.","s":"addloop","u":"/docs/Runtime Environment/Scheduler","h":"#addloop","p":590},{"i":599,"t":"The run method activates the scheduler. The scheduler resumes all coroutines and then calls its yieldfunc until either all coroutines are finished, or coroutine throws an error — in which case it is rethrown. pluto local scheduler = new (require\"pluto:scheduler\") () local loops = 0 scheduler:addloop(function() ++loops print(loops) return loops != 5 end) scheduler:run() --> 1 --> 2 --> 3 --> 4 --> 5 scheduler:add(function() print(\"3...\") coroutine.sleep(1000) print(\"2...\") coroutine.sleep(1000) print(\"1...\") coroutine.sleep(1000) print(\"Boom!\") end) scheduler:run() --> 3... --> 2... --> 1... --> Boom! Copy","s":"run","u":"/docs/Runtime Environment/Scheduler","h":"#run","p":590},{"i":601,"t":"yieldfunc is a property on the scheduler that can be used to customize how the scheduler itself yields. By default, this is a function calling os.sleep(1). pluto local scheduler = new (require\"pluto:scheduler\") () -- Yield to OS every second instead of every millisecond. scheduler.yieldfunc = || -> os.sleep(1000) local loops = 0 scheduler:addloop(function() ++loops print(loops) return loops != 5 end) scheduler:run() --> 1 --> 2 --> 3 --> 4 --> 5 Copy","s":"yieldfunc","u":"/docs/Runtime Environment/Scheduler","h":"#yieldfunc","p":590},{"i":603,"t":"errorfunc is a property on the scheduler that can optionally be set to customize how the scheduler reports errors in its coroutines. By default, this is nil, in which case any coroutine errors are rethrown (via coroutine.xresume). pluto local { scheduler } = require \"*\" local sched = new scheduler() sched.errorfunc = |err| -> do print(debug.traceback(err)) end sched:add(function() error(\"this is urgent: fatal error\") end) Copy","s":"errorfunc","u":"/docs/Runtime Environment/Scheduler","h":"#errorfunc","p":590},{"i":605,"t":"Must be included via require. This library is not available in WASM builds of Pluto.","s":"Socket","u":"/docs/Runtime Environment/Socket","h":"","p":604},{"i":607,"t":"Establishes a TCP connection. Parameters​ The host to connect to. Either an IPv4 or IPv6 address, or a domain name resolving to one. The port to contact the host on. Returns​ A socket instance on success. Nil on failure. Multitasking​ If called inside of a coroutine, this function yields. Otherwise, it blocks.","s":"socket.connect","u":"/docs/Runtime Environment/Socket","h":"#socketconnect","p":604},{"i":609,"t":"Creates a new listener for the given port. Parameters​ The port to listen on. Returns​ A listener instance on success. Nil on failure.","s":"socket.listen","u":"/docs/Runtime Environment/Socket","h":"#socketlisten","p":604},{"i":611,"t":"A convenience function that wraps socket.listen, automatically accepting new clients and spinning up a coroutine for them. Parameters​ A scheduler instance. The port to listen on. The callback function that will be called in a new coroutine for each client socket. pluto local { scheduler, socket } = require \"*\" local sched = new scheduler() socket.bind(sched, 80, |s| -> do local content = \"Hello, world!\" s:send(\"HTTP/1.1 200 OK\\r\\nConnection: Close\\r\\nContent-Length: \"..#content..\"\\r\\n\\r\\n\"..content) end) sched:run() Copy","s":"socket.bind","u":"/docs/Runtime Environment/Socket","h":"#socketbind","p":604},{"i":613,"t":"Socket instances are obtained by calling socket.connect (client), or from a listener (server).","s":"Socket Class","u":"/docs/Runtime Environment/Socket","h":"#socket-class","p":604},{"i":615,"t":"Sends data on a socket. Parameters​ The socket instance. The data to send.","s":"socket.send","u":"/docs/Runtime Environment/Socket","h":"#socketsend","p":604},{"i":617,"t":"Receive data from a socket. Parameters​ The socket instance. Returns​ If the socket is open: The oldest chunk of data received on the transport layer (TCP packet) or crypto layer (TLS record) as a string. If the socket is closed: Nil. Multitasking​ If a message is buffered, the function can return immediately. If not, it will yield if inside a coroutine, and block otherwise. pluto local socket = require \"pluto:socket\" local s = socket.connect(\"google.com\", 80) s:send(\"GET / HTTP/1.1\\r\\nHost: google.com\\r\\n\\r\\n\") print(s:recv()) Copy","s":"socket.recv","u":"/docs/Runtime Environment/Socket","h":"#socketrecv","p":604},{"i":619,"t":"Look at received data without consuming it. Parameters​ The socket instances. Returns​ Either the string that would be returned next by socket.recv or nothing if there is no message in the receive buffer.","s":"socket.peek","u":"/docs/Runtime Environment/Socket","h":"#socketpeek","p":604},{"i":621,"t":"Pushes a chunk of data to the front of the receive buffer, making it oldest for the purposes of socket.recv. Parameters​ The socket instance. The data to push. pluto local socket = require \"pluto:socket\" local sock = socket.connect(\"google.com\", 80) sock:unrecv(\"World\") sock:unrecv(\"Hello\") print(sock:recv()) --> Hello print(sock:recv()) --> World Copy","s":"socket.unrecv","u":"/docs/Runtime Environment/Socket","h":"#socketunrecv","p":604},{"i":623,"t":"Attempts to add the TLS crypto layer to the socket, making the transport layer a sole carrier for TLS traffic. Parameters (Client)​ The socket instance. The host name of the intended remote. This may be the same as what was passed to socket.connect. This name must be on the certificate that the remote will send. Parameters (Server)​ The socket instance. An array of tables describing available certificates. Each certificate needs a chain and private_key field, which should be a string containing valid PEM. The private_key must be RSA. Returns​ True on success. On failure, returns false and the socket is closed. If the socket is already using TLS, returns nil. Multitasking​ If called inside of a coroutine, this function yields. Otherwise, it blocks. Client Example pluto local socket = require \"pluto:socket\" local s = socket.connect(\"pluto-lang.org\", 443) assert(s:starttls(\"pluto-lang.org\"), \"Failed to establish secure connection.\") s:send(\"GET / HTTP/1.1\\r\\nHost: pluto-lang.org\\r\\nConnection: close\\r\\n\\r\\n\") while data := s:recv() do print(data) end Copy Server Example pluto local { http, scheduler, socket } = require \"*\" local certs = { { chain = http.request(\"https://tls.cat/certs/viatls-2024/cert.pem\"), private_key = http.request(\"https://tls.cat/certs/viatls-2024/key.pem\"), } } local sched = new scheduler() socket.bind(sched, 443, |s| -> do if s:starttls(certs) then local content = \"Hello, world!\" s:send(\"HTTP/1.1 200 OK\\r\\nConnection: Close\\r\\nContent-Length: \"..#content..\"\\r\\n\\r\\n\"..content) end end) print(\"https://127-0-0-1.viatls.com/\") sched:run() Copy","s":"socket.starttls","u":"/docs/Runtime Environment/Socket","h":"#socketstarttls","p":604},{"i":625,"t":"Closes a socket. Parameters​ The socket instance.","s":"socket.close","u":"/docs/Runtime Environment/Socket","h":"#socketclose","p":604},{"i":627,"t":"Get information about the other end of a connection. Parameters​ The socket instance. Returns​ The IP address as a string. The port. pluto local sock = require\"socket\".connect(\"1.1.1.1\", 443) local ip, port = sock:getpeer() print(ip) --> 1.1.1.1 print(port) --> 443 Copy","s":"socket.getpeer","u":"/docs/Runtime Environment/Socket","h":"#socketgetpeer","p":604},{"i":629,"t":"Get which side of the connection a socket is. Parameters​ The socket instance. Returns​ Either \"client\" or \"server\". pluto local sock = require\"socket\".connect(\"1.1.1.1\", 443) print(sock:getside()) --> client Copy","s":"socket.getside","u":"/docs/Runtime Environment/Socket","h":"#socketgetside","p":604},{"i":631,"t":"Check if a connection is encrypted. Parameters​ The socket instance. pluto local sock = require\"socket\".connect(\"1.1.1.1\", 443) print(sock:istls()) --> false assert(sock:starttls(\"1.1.1.1\")) print(sock:istls()) --> true Copy","s":"socket.istls","u":"/docs/Runtime Environment/Socket","h":"#socketistls","p":604},{"i":633,"t":"Check if a connection is still open. Parameters​ The socket instance. pluto local sock = require\"socket\".connect(\"1.1.1.1\", 443) print(sock:isopen()) --> true sock:close() print(sock:isopen()) --> false Copy","s":"socket.isopen","u":"/docs/Runtime Environment/Socket","h":"#socketisopen","p":604},{"i":635,"t":"Listener instances are obtained by calling socket.listen.","s":"Listener Class","u":"/docs/Runtime Environment/Socket","h":"#listener-class","p":604},{"i":637,"t":"Accepts an incoming client connection, waiting until there is one. Returns​ A new socket instance. The socket can be used as per usual, with the exception of the starttls function being unavailable. Multitasking​ If there is an incoming client connection, this function returns immediately. If there is not, it waits for one. Waiting means yielding if called inside a coroutine, and blocking otherwise.","s":"accept","u":"/docs/Runtime Environment/Socket","h":"#accept","p":604},{"i":639,"t":"Checks if there is an incoming client connection. If this function returns true, the next call to accept is guaranteed not to block or yield. pluto local socket = require \"pluto:socket\" local l = socket.listen(80) or error(\"Failed to bind TCP/80\") while not l:hasconnection() do -- Visit http://localhost to break this loop os.sleep(1) end print(l:accept():recv()) Copy","s":"hasconnection","u":"/docs/Runtime Environment/Socket","h":"#hasconnection","p":604},{"i":641,"t":"Must be included via require.","s":"Crypto","u":"/docs/Runtime Environment/Crypto","h":"","p":640},{"i":644,"t":"Hash a string using Lua's version of the DJB2 non-cryptographic hashing algorithm. Parameters​ The string to hash. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.lua(str) == 2871868277) Copy","s":"crypto.lua","u":"/docs/Runtime Environment/Crypto","h":"#cryptolua","p":640},{"i":646,"t":"Hash a string using the MD5 semi-cryptographic hashing algorithm. Parameters​ The string to hash. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.md5(str) == \"5eb63bbbe01eeed093cb22bb8f5acdc3\") Copy","s":"crypto.md5","u":"/docs/Runtime Environment/Crypto","h":"#cryptomd5","p":640},{"i":648,"t":"Hash a string using the DJB2 non-cryptographic hashing algorithm. Parameters​ The string to hash. Returns​ An integer between 0 and 0xffffffff, inclusive. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.djb2(str) == 894552257) Copy","s":"crypto.djb2","u":"/docs/Runtime Environment/Crypto","h":"#cryptodjb2","p":640},{"i":650,"t":"Hash a string using the FNV1 non-cryptographic hashing algorithm. Parameters​ The string to hash. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.fnv1(str) == 9065573210506989167) Copy","s":"crypto.fnv1","u":"/docs/Runtime Environment/Crypto","h":"#cryptofnv1","p":640},{"i":652,"t":"Hash a string using the FNV1A non-cryptographic hashing algorithm. Parameters​ The string to hash. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.fnv1a(str) == 8618312879776256743) Copy","s":"crypto.fnv1a","u":"/docs/Runtime Environment/Crypto","h":"#cryptofnv1a","p":640},{"i":654,"t":"Hash a string using the JOAAT non-cryptographic hashing algorithm. Parameters​ The string to hash. Returns​ An integer between 0 and 0xffffffff, inclusive. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.joaat(str) == 1045060183) Copy","s":"crypto.joaat","u":"/docs/Runtime Environment/Crypto","h":"#cryptojoaat","p":640},{"i":656,"t":"Hash a string using the SDBM non-cryptographic hashing algorithm. Parameters​ The string to hash. Returns​ An integer between 0 and 0xffffffff, inclusive. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.sdbm(str) == 430867652) Copy","s":"crypto.sdbm","u":"/docs/Runtime Environment/Crypto","h":"#cryptosdbm","p":640},{"i":658,"t":"Hash a string using the CRC32 non-cryptographic hashing algorithm. Parameters​ The string to hash. The initial value for the hash. By default, this is zero. Returns​ An integer between 0 and 0xffffffff, inclusive. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.crc32(str) == 222957957) Copy","s":"crypto.crc32","u":"/docs/Runtime Environment/Crypto","h":"#cryptocrc32","p":640},{"i":660,"t":"Hash a string using the Adler-32 non-cryptographic hashing algorithm. Parameters​ The string to hash. The initial value for the hash. By default, this is zero. pluto local crypto = require(\"crypto\") local str = \"hello\" assert(crypto.adler32(str) == 103547413) Copy","s":"crypto.adler32","u":"/docs/Runtime Environment/Crypto","h":"#cryptoadler32","p":640},{"i":662,"t":"Hash a string using the Lookup3 non-cryptographic hashing algorithm. Parameters​ The string to hash. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.lookup3(str) == 1252609637) Copy","s":"crypto.lookup3","u":"/docs/Runtime Environment/Crypto","h":"#cryptolookup3","p":640},{"i":664,"t":"Hash a string using the Times33 non-cryptographic hashing algorithm. Parameters​ The string to hash. Returns​ An integer between 0 and 0xffffffff, inclusive. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.times33(str) == 3889643616) Copy","s":"crypto.times33","u":"/docs/Runtime Environment/Crypto","h":"#cryptotimes33","p":640},{"i":666,"t":"Hash a string using the Murmur1 non-cryptographic hashing algorithm. Parameters​ The string to hash. Returns​ An integer between 0 and 0xffffffff, inclusive. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.murmur1(str) == 3154674178) Copy","s":"crypto.murmur1","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur1","p":640},{"i":668,"t":"Hash a string using the Murmur2 non-cryptographic hashing algorithm. Parameters​ The string to hash. Returns​ An integer between 0 and 0xffffffff, inclusive. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.murmur2(str) == 1151865881) Copy","s":"crypto.murmur2","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur2","p":640},{"i":670,"t":"Hash a string using the Murmur2A non-cryptographic hashing algorithm. Parameters​ The string to hash. Returns​ An integer between 0 and 0xffffffff, inclusive. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.murmur2a(str) == 2650573207) Copy","s":"crypto.murmur2a","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur2a","p":640},{"i":672,"t":"Hash a string using the Murmur64A non-cryptographic hashing algorithm. Parameters​ The string to hash. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.murmur64a(str) == -3190198453633110066) Copy","s":"crypto.murmur64a","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur64a","p":640},{"i":674,"t":"Hash a string using the Murmur64A non-cryptographic hashing algorithm. Parameters​ The string to hash. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.murmur64b(str) == 7088720765356542432) Copy","s":"crypto.murmur64b","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur64b","p":640},{"i":676,"t":"Hash a string using the Murmur2Neutral non-cryptographic hashing algorithm. Parameters​ The string to hash. pluto local crypto = require(\"crypto\") local str = \"hello world\" assert(crypto.murmur2neutral(str) == 1151865881) Copy","s":"crypto.murmur2neutral","u":"/docs/Runtime Environment/Crypto","h":"#cryptomurmur2neutral","p":640},{"i":679,"t":"Hash a string using the SHA-1 cryptographic hashing algorithm. Parameters​ The string to hash. When set to true, returns raw binary data. false outputs lowercase hex digits. By default, this is false. pluto local crypto = require(\"crypto\") assert(crypto.sha1(\"Pluto\") == \"bce8c9aca4120776fad6b517874aa09c46405454\") assert(crypto.sha1(\"Pluto\", true) == \"\\xbc\\xe8\\xc9\\xac\\xa4\\x12\\x07\\x76\\xfa\\xd6\\xb5\\x17\\x87\\x4a\\xa0\\x9c\\x46\\x40\\x54\\x54\") Copy","s":"crypto.sha1","u":"/docs/Runtime Environment/Crypto","h":"#cryptosha1","p":640},{"i":681,"t":"Hash a string using the SHA-256 cryptographic hashing algorithm. Parameters​ The string to hash. When set to true, returns raw binary data. false outputs lowercase hex digits. By default, this is false. pluto local crypto = require(\"crypto\") assert(crypto.sha256(\"Pluto\") == \"8dad5f6a7dd2dcd8c35ec2fd7babb499bcad60d27d73fe73eca2ce025dfd3b47\") assert(crypto.sha256(\"Pluto\", true) == \"\\x8d\\xad\\x5f\\x6a\\x7d\\xd2\\xdc\\xd8\\xc3\\x5e\\xc2\\xfd\\x7b\\xab\\xb4\\x99\\xbc\\xad\\x60\\xd2\\x7d\\x73\\xfe\\x73\\xec\\xa2\\xce\\x02\\x5d\\xfd\\x3b\\x47\") Copy","s":"crypto.sha256","u":"/docs/Runtime Environment/Crypto","h":"#cryptosha256","p":640},{"i":683,"t":"Hash a string using the SHA-384 cryptographic hashing algorithm. Parameters​ The string to hash. When set to true, returns raw binary data. false outputs lowercase hex digits. By default, this is false. pluto local crypto = require(\"crypto\") assert(crypto.sha384(\"Pluto\", false) == \"db890233a919b6745d632633c419e14540ff79f1a89bc4ac194b00e7f913f0f06d5d4d7d6cc2b4aaf9485d223afb8cf0\") Copy","s":"crypto.sha384","u":"/docs/Runtime Environment/Crypto","h":"#cryptosha384","p":640},{"i":685,"t":"Hash a string using the SHA-512 cryptographic hashing algorithm. Parameters​ The string to hash. When set to true, returns raw binary data. false outputs lowercase hex digits. By default, this is false. pluto local crypto = require(\"crypto\") assert(crypto.sha512(\"Pluto\", false) == \"ee8410a8bf9511b94fd6669b5c3e0c4b86e8e4bf7baa8dbd2773d4d6381dd1aecebbe391bef4c6158620ab3f6b794907652d4432c2301d7e1a6caf520565cdf2\") Copy","s":"crypto.sha512","u":"/docs/Runtime Environment/Crypto","h":"#cryptosha512","p":640},{"i":687,"t":"Hash a string using the RIPEMD-160 cryptographic hashing algorithm. Parameters​ The string to hash. When set to true, returns raw binary data. false outputs lowercase hex digits. By default, this is false. pluto assert(require\"crypto\".ripemd160(\"Pluto\") == \"c2072a85f4a691803b8942709036072086fd9550\") Copy","s":"crypto.ripemd160","u":"/docs/Runtime Environment/Crypto","h":"#cryptoripemd160","p":640},{"i":690,"t":"This is a cryptographically secure PRNG, assuming the platform's implementation of the underlying primitive is secure. Returns​ A random lua integer, in the range from math.mininteger to math.maxinteger. pluto local crypto = require(\"crypto\") print(crypto.random()) Copy","s":"crypto.random","u":"/docs/Runtime Environment/Crypto","h":"#cryptorandom","p":640},{"i":692,"t":"These unauthenticated AES modes take both a key and an IV. The IV must be unique and unpredictable for each encryption session to ensure security.","s":"AES-CBC, AES-CFB","u":"/docs/Runtime Environment/Crypto","h":"#aes-cbc-aes-cfb","p":640},{"i":694,"t":"Parameters​ data — The data to be encrypted. mode — \"aes-cbc-pkcs7\" or \"aes-cfb-pkcs7\" for PKCS#7 padding, or \"aes-cbc\" or \"aes-cfb\" if you know what you're doing. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively. iv — Must have a length of 16.","s":"crypto.encrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptoencrypt","p":640},{"i":696,"t":"Parameters​ data — The ciphertext to decrypt. mode — \"aes-cbc-pkcs7\" or \"aes-cfb-pkcs7\" for PKCS#7 padding, or \"aes-cbc\" or \"aes-cfb\" if you know what you're doing. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively. iv — Must have a length of 16. Returns the decrypted data on success. Throws an error if the padding was incorrect. pluto local crypto = require \"pluto:crypto\" local key = \"A Top Secret Key\" -- Encrypt local iv = range(16):map(|| -> string.char(math.random(0, 255))):concat(\"\") local plain = \"Hello, world!\" local enc = plain |> crypto.encrypt|\"aes-cbc-pkcs7\", key, iv| print(dumpvar(enc)) -- Decrypt print(crypto.decrypt(enc, \"aes-cbc-pkcs7\", key, iv)) --> Hello, world! Copy","s":"crypto.decrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecrypt","p":640},{"i":698,"t":"This unauthenticated AES mode takes only a key, and is considered to be the weakest. Identical plaintext blocks result in identical ciphertext blocks.","s":"AES-ECB","u":"/docs/Runtime Environment/Crypto","h":"#aes-ecb","p":640},{"i":700,"t":"Parameters​ data — The data to be encrypted. mode — \"aes-ecb-pkcs7\" for PKCS#7 padding, or \"aes-ecb\" if you know what you're doing. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively.","s":"crypto.encrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptoencrypt-1","p":640},{"i":702,"t":"Parameters​ mode — \"aes-ecb-pkcs7\" for PKCS#7 padding, or \"aes-ecb\" if you know what you're doing. data — The ciphertext to decrypt. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively. Returns the decrypted data on success. Throws an error if the padding was incorrect. pluto local crypto = require \"pluto:crypto\" local key = \"A Top Secret Key\" -- Encrypt local plain = \"Hello, world!\" local enc = plain |> crypto.encrypt|\"aes-ecb-pkcs7\", key| print(dumpvar(enc)) --> string(16) \"`p{����k\\21*.>jG\" -- Decrypt print(crypto.decrypt(enc, \"aes-ecb-pkcs7\", key)) --> Hello, world! Copy","s":"crypto.decrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecrypt-1","p":640},{"i":704,"t":"This authenticated AES mode allows for additional data that will be validated although not encrypted, such as a Message Authentication Code (MAC).","s":"AES-GCM","u":"/docs/Runtime Environment/Crypto","h":"#aes-gcm","p":640},{"i":706,"t":"Parameters​ data — The data to be encrypted. mode — Must be \"aes-gcm\". AES-GCM can deal with unpadded data, hence does not need PKCS#7 padding. aadata — Authenticated data. Will not be encrypted. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively. iv — Must have a length of 16. Returns two strings: the ciphertext and the authentication tag.","s":"crypto.encrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptoencrypt-2","p":640},{"i":708,"t":"Parameters​ data — The ciphertext to decrypt. mode — Must be \"aes-gcm\". aadata — Authenticated data. key — Must have a length of 16, 24 or 32 for 128-, 192-, or 256-bit AES, respectively. iv — Must have a length of 16. tag — The authentication tag produced by the \"encrypt\" procedure. Returns the decrypted data on success. Throws an error if authentication or unpadding failed. pluto local crypto = require \"pluto:crypto\" local key = \"A Top Secret Key\" local aadata = \"This is Pluto!\" -- Encrypt local iv = range(16):map(|| -> string.char(math.random(0, 255))):concat(\"\") local plain = \"Hello, world!\" local enc, tag = plain |> crypto.encrypt|\"aes-gcm\", aadata, key, iv| print(dumpvar(enc)) print(dumpvar(tag)) -- Decrypt print(crypto.decrypt(enc, \"aes-gcm\", aadata, key, iv, tag)) --> Hello, world! Copy","s":"crypto.decrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecrypt-2","p":640},{"i":711,"t":"Parameters​ mode — Must be \"rsa\". bits — A positive integer for a strict bit-length requirement, or a negative integer for a lax requirement. Common values are 1024, 2048, and 4096. Returns two tables: The public key (consisting of n and e), and the private key (consisting of p and q). The Bigint class is used for all values. pluto local pub, priv = crypto.generatekeypair(\"rsa\", 512) print(dumpvar(pub)) --> { --> [\"n\"] = 11355630182234424425429331560518598643298965915936825610957270519615363349759012613228119611304846673085167794661819394470107090216347491908311079792054357, --> [\"e\"] = 65537, --> } print(dumpvar(priv)) --> { --> [\"p\"] = 115443384115231951475820445136871322101870729500298182134363293112660251666017, --> [\"q\"] = 98365361248415863235179644468056200977592391948608651522703704315152579004021, --> } Copy","s":"crypto.generatekeypair","u":"/docs/Runtime Environment/Crypto","h":"#cryptogeneratekeypair","p":640},{"i":713,"t":"Exports a private key. Parameters​ The key to export. The exchange format to use. Only \"pem\" is supported right now. pluto local { bigint, crypto } = require \"pluto:*\" local priv = { p = new bigint(\"115443384115231951475820445136871322101870729500298182134363293112660251666017\"), q = new bigint(\"98365361248415863235179644468056200977592391948608651522703704315152579004021\"), } print(crypto.exportkey(priv, \"pem\")) Copy -----BEGIN RSA PRIVATE KEY----- MIIBOwIBAAJBANjRKgOuLxSxbL/fFg/3rJeRGGKz0EjxjjuV6QmgjZGq1LpI2KH+ TrxVV4L94U0TCFo19vYtV6T4bOH/MlA6kFUCAwEAAQJANcTrfzWpgd99WXkM6uFQ iVcHneS7fPeAvziubf+F1E98zwFgLbIOiPSJcVkXc79A2PQZdbGq7dFAxVD0EpIs oQIhAP86o9Ap9KOH4rgZn8ElHyWKO/Cj8m7oHjSmHG/CBGZhAiEA2XjSTZJ37mg3 gJOXlMjG4SK15/jRCB1CMx8f4VhBhnUCIQCWK0p3EDiAf1NGPs1gNxc8XzklPVFH MAuVrqbMmrs8AQIhAJ1aqvCuFlFO3zoNkRR64kxsjSq4AqfYY9oRn0OyVFcxAiBj ueZ/sI52jgP8+xK2x7coiX5/tDmXCGlp5utUAjk2+Q== -----END RSA PRIVATE KEY----- Copy","s":"crypto.exportkey","u":"/docs/Runtime Environment/Crypto","h":"#cryptoexportkey","p":640},{"i":715,"t":"Imports a private key. Parameters​ The encoded key. The exchange format to use. Only \"pem\" is supported right now. pluto local { bigint, crypto } = require \"pluto:*\" print(dumpvar(crypto.importkey([[-----BEGIN RSA PRIVATE KEY----- MIIBOwIBAAJBANjRKgOuLxSxbL/fFg/3rJeRGGKz0EjxjjuV6QmgjZGq1LpI2KH+ TrxVV4L94U0TCFo19vYtV6T4bOH/MlA6kFUCAwEAAQJANcTrfzWpgd99WXkM6uFQ iVcHneS7fPeAvziubf+F1E98zwFgLbIOiPSJcVkXc79A2PQZdbGq7dFAxVD0EpIs oQIhAP86o9Ap9KOH4rgZn8ElHyWKO/Cj8m7oHjSmHG/CBGZhAiEA2XjSTZJ37mg3 gJOXlMjG4SK15/jRCB1CMx8f4VhBhnUCIQCWK0p3EDiAf1NGPs1gNxc8XzklPVFH MAuVrqbMmrs8AQIhAJ1aqvCuFlFO3zoNkRR64kxsjSq4AqfYY9oRn0OyVFcxAiBj ueZ/sI52jgP8+xK2x7coiX5/tDmXCGlp5utUAjk2+Q== -----END RSA PRIVATE KEY-----]], \"pem\"))) Copy { [\"p\"] = 115443384115231951475820445136871322101870729500298182134363293112660251666017, [\"q\"] = 98365361248415863235179644468056200977592391948608651522703704315152579004021, } Copy","s":"crypto.importkey","u":"/docs/Runtime Environment/Crypto","h":"#cryptoimportkey","p":640},{"i":717,"t":"Parameters​ data — The data to be encrypted. mode — \"rsa-pkcs1\" for PKCS#1 padding, or \"rsa\" if you know what you're doing. key — The public or private key to use. Commonly, a public key is used to encrypt data.","s":"crypto.encrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptoencrypt-3","p":640},{"i":719,"t":"Parameters​ data — The ciphertext to decrypt. mode — \"rsa-pkcs1\" for PKCS#1 padding, or \"rsa\" if you know what you're doing. key — The public or private key to use. If the data was encrypted with the public key, the private key is needed to decrypt it. pluto local { base64, bigint, crypto } = require \"pluto:*\" local priv = { p = new bigint(\"115443384115231951475820445136871322101870729500298182134363293112660251666017\"), q = new bigint(\"98365361248415863235179644468056200977592391948608651522703704315152579004021\"), } -- Derive public key local pub = { n = priv.p * priv.q, -- 11355630182234424425429331560518598643298965915936825610957270519615363349759012613228119611304846673085167794661819394470107090216347491908311079792054357 e = new bigint(0x10001) -- 65537 } -- Encrypt local enc = crypto.encrypt(\"A secret message to the owner of the private key.\", \"rsa-pkcs1\", pub) print(base64.encode(enc)) -- Decrypt print(enc |> crypto.decrypt|\"rsa-pkcs1\", priv|) --> A secret message to the owner of the private key. Copy","s":"crypto.decrypt","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecrypt-3","p":640},{"i":721,"t":"Parameters​ data — The data to sign. mode — \"rsa-sha256\" or \"rsa-sha1\". key — The private key to use.","s":"crypto.sign","u":"/docs/Runtime Environment/Crypto","h":"#cryptosign","p":640},{"i":723,"t":"Parameters​ data — The data that was signed. mode — \"rsa-sha256\" or \"rsa-sha1\". key — The public key corresponding to the signer's private key. signature — The signature produced by the \"sign\" procedure. Returns a boolean that indicates if the signature validated successfully. pluto local { base64, bigint, crypto } = require \"pluto:*\" local priv = { p = new bigint(\"115443384115231951475820445136871322101870729500298182134363293112660251666017\"), q = new bigint(\"98365361248415863235179644468056200977592391948608651522703704315152579004021\"), } -- Derive public key local pub = { n = priv.p * priv.q, -- 11355630182234424425429331560518598643298965915936825610957270519615363349759012613228119611304846673085167794661819394470107090216347491908311079792054357 e = new bigint(0x10001) -- 65537 } -- Sign local msg = \"The canary has left the nest.\" local sig = msg |> crypto.sign|\"rsa-sha256\", priv| print(base64.encode(sig)) --> un1g04+cwG8WxYDpSlj4PO/hsTqSITgYKycRuR+m3AE6ypLyUCrVHC/0j4M3DeW81ADZVda6TVkC/Ht8EdYeFw== -- Verify print(crypto.verify(msg, \"rsa-sha256\", pub, sig)) --> true Copy","s":"crypto.verify","u":"/docs/Runtime Environment/Crypto","h":"#cryptoverify","p":640},{"i":726,"t":"Decompresses a DEFLATE-compressed string (one might call this an \"INFLATE\" function). Compatible with gzip and zlib headers and footers. Parameters​ The string to decompress. Returns​ The decompressed string. A table with extra information: compressed_size, checksum_present, checksum_mismatch pluto local decompressed, info = require\"crypto\".decompress(\"\\xF3\\x48\\xCD\\xC9\\xC9\\xD7\\x51\\x08\\xC8\\x29\\x2D\\xC9\\x57\\x04\") print(decompressed) --> Hello, Pluto! print(info.compressed_size) --> 14 print(info.checksum_present) --> false print(info.checksum_mismatch) --> false Copy","s":"crypto.decompress","u":"/docs/Runtime Environment/Crypto","h":"#cryptodecompress","p":640},{"i":728,"t":"Must be included via require.","s":"URL","u":"/docs/Runtime Environment/URL","h":"","p":727},{"i":730,"t":"Returns a URL-encoded string. Parameters​ The string to be encoded. pluto local url = require\"pluto:url\" print(\"https://google.com/search?q=\"..url.encode(\"Pluto, a superset of Lua\")) --> https://google.com/search?q=Pluto%2C%20a%20superset%20of%20Lua Copy","s":"url.encode","u":"/docs/Runtime Environment/URL","h":"#urlencode","p":727},{"i":732,"t":"Returns a plain string from URL-decoding the input string. Parameters​ The string to be decoded. pluto local url = require\"pluto:url\" print(url.decode(\"Pluto%2C%20a%20superset%20of%20Lua\")) -- \"Pluto, a superset of Lua\" Copy","s":"url.decode","u":"/docs/Runtime Environment/URL","h":"#urldecode","p":727},{"i":734,"t":"Splits a URL into its constituent parts. Parameters​ The URL to be dissected. pluto local url = require\"pluto:url\" print(dumpvar(url.parse(\"http://username:password@hostname:9090/path?arg=value#anchor\"))) --> { --> [\"scheme\"] = string(4) \"http\", --> [\"user\"] = string(8) \"username\", --> [\"pass\"] = string(8) \"password\", --> [\"host\"] = string(8) \"hostname\", --> [\"port\"] = 9090, --> [\"path\"] = string(5) \"/path\", --> [\"query\"] = string(9) \"arg=value\", --> [\"fragment\"] = string(6) \"anchor\", --> } Copy","s":"url.parse","u":"/docs/Runtime Environment/URL","h":"#urlparse","p":727},{"i":736,"t":"This page documents the changes & additions to the string library in Pluto, which is built on top of Lua 5.4's.","s":"String","u":"/docs/Runtime Environment/String","h":"","p":735},{"i":738,"t":"This function now takes a second parameter that specifies which index to capitalize. pluto local s = \"hello\" assert(s:upper(1) == \"Hello\") Copy","s":"string.upper","u":"/docs/Runtime Environment/String","h":"#stringupper","p":735},{"i":740,"t":"This function now takes a second parameter that specifies which index to make lowercase. pluto local s = \"HELLO\" assert(s:lower(1) == \"hELLO\") Copy","s":"string.lower","u":"/docs/Runtime Environment/String","h":"#stringlower","p":735},{"i":742,"t":"Splits a string by a separator. Parameters​ The string to split. The separator to split a string by. This can be any string. An optional limit for the returned table size. Returns​ A table. Splitting a string by a single character pluto local s = \"hello world, how is everyone doing?\" string.split(s, \" \") -- { \"hello\", \"world,\", \"how\", \"is\", \"everyone\", \"doing?\" } Copy Splitting a string by a substring pluto local s = \"helloFOOworld,FOOhowFOOisFOOeveryoneFOOdoing?\" string.split(s, \"FOO\") -- { \"hello\", \"world,\", \"how\", \"is\", \"everyone\", \"doing?\" } Copy Splitting a string by a single character with a limit pluto local s = \"hello world, how is everyone doing?\" string.split(s, \" \", 3) -- { \"hello\", \"world,\", \"how is everyone doing?\" } Copy","s":"string.split","u":"/docs/Runtime Environment/String","h":"#stringsplit","p":735},{"i":744,"t":"Identical to the base Lua string.find in every way, except it searches right-to-left instead of left-to-right.","s":"string.rfind","u":"/docs/Runtime Environment/String","h":"#stringrfind","p":735},{"i":746,"t":"Strips or trims characters from both ends of a string. Parameters​ The string to strip. A string of characters to strip. Defaults to \\n\\r\\t\\v\\0. Returns​ The new string. pluto local s = \"{|}hello world{|}\" print(string.strip(s, \"{}|\")) --> hello world Copy","s":"string.strip","u":"/docs/Runtime Environment/String","h":"#stringstrip","p":735},{"i":748,"t":"Strips or trims characters from the left side of a string. Parameters​ The string to strip. A string of characters to strip. Defaults to \\n\\r\\t\\v\\0. Returns​ The new string. pluto local s = \"{|}hello world{|}\" print(string.lstrip(s, \"{}|\")) --> hello world{|} Copy","s":"string.lstrip","u":"/docs/Runtime Environment/String","h":"#stringlstrip","p":735},{"i":750,"t":"Strips or trims characters from the right side of a string. Parameters​ The string to strip. A string of characters to strip. Defaults to \\n\\r\\t\\v\\0. Returns​ The new string. pluto local s = \"{|}hello world{|}\" print(string.rstrip(s, \"{}|\")) --> {|}hello world Copy","s":"string.rstrip","u":"/docs/Runtime Environment/String","h":"#stringrstrip","p":735},{"i":752,"t":"Checks if a string is entirely composed of ASCII characters. Parameters​ The string to check. pluto local s = \"HELLOWORLD123\" print(string.isascii(s)) --> true Copy info This would exclude any multi-byte characters, like emojis.","s":"string.isascii","u":"/docs/Runtime Environment/String","h":"#stringisascii","p":735},{"i":754,"t":"Checks if a string is entirely composed of lowercase characters. Parameters​ The string to check. pluto local s = \"helloworld\" print(string.islower(s)) --> true Copy info Whitespace characters are not lowercase characters.","s":"string.islower","u":"/docs/Runtime Environment/String","h":"#stringislower","p":735},{"i":756,"t":"Checks if a string is entirely composed of alphabetic characters. Parameters​ The string to check. pluto local s = \"HELLOWORLD\" print(string.isalpha(s)) --> true Copy info Whitespace characters are not alphabetic characters.","s":"string.isalpha","u":"/docs/Runtime Environment/String","h":"#stringisalpha","p":735},{"i":758,"t":"Checks if a string is entirely composed of uppercase characters. Parameters​ The string to check. pluto local s = \"HELLOWORLD\" print(string.isupper(s)) --> true Copy info Whitespace characters are not uppercase characters.","s":"string.isupper","u":"/docs/Runtime Environment/String","h":"#stringisupper","p":735},{"i":760,"t":"Checks if a string is entirely composed of alphanumeric characters. Parameters​ The string to check. pluto local s = \"HELLOWORLD123\" print(string.isalnum(s)) --> true Copy info Whitespace characters are not alphanumeric characters.","s":"string.isalnum","u":"/docs/Runtime Environment/String","h":"#stringisalnum","p":735},{"i":762,"t":"Checks if this string is entirely composed of whitespace characters. Paramaters​ The string to check. pluto local s = \" \\t \\v \\f \\t\\t\\t\\t\" print(string.iswhitespace(s)) --> true Copy","s":"string.iswhitespace","u":"/docs/Runtime Environment/String","h":"#stringiswhitespace","p":735},{"i":764,"t":"Same as string.format, but performs the operation under the en_US.UTF-8 locale. Ensures the same result on all systems.","s":"string.uformat","u":"/docs/Runtime Environment/String","h":"#stringuformat","p":735},{"i":766,"t":"Replace substrings with another substring. Similar to string.gsub, but it operates on plain-text and is not burdened by a pattern capture limit. Parameters​ original — The substring to replace. substitute — The replacement substring. max_replace — The maximum number of replacements you wish to occur. The default value is effectively 0, which means \"infinite\". If you pass 1, this leads to a maximum of one replacement, and so on. Errors​ An error is thrown under the following conditions: max_replace is less than zero. The length of substitute is zero. pluto print(string.replace(\"Hello, world!\", \"!\", \".\")) --> Hello, world. print(string.replace(\"Hello, world!\", \"apple\", \"\")) --> Hello, world! print(string.replace(\"Hello, world!\", \"Hello\", \"Apple\")) --> Apple, world! print(string.replace(\"Hello, world!\", \"Hello, \", \"\")) --> world! Copy","s":"string.replace","u":"/docs/Runtime Environment/String","h":"#stringreplace","p":735},{"i":768,"t":"Truncates a given string to a specified length. If an elipsis is desired and the string was actually truncated, the last three characters of the resultant string will be replaced with an elipsis. Parameters​ The string to truncate. The desired length of the truncated string. A boolean indicating whether or not to replace the last three character of the string with ... if it is truncated. This is false by default. Returns​ The truncated string. pluto print(string.truncate(\"Hello, world!\", 50)) --> Hello, world! print(string.truncate(\"Hello, world!\", 5)) --> Hello print(string.truncate(\"Hello, world!\", 5, true)) --> He... Copy","s":"string.truncate","u":"/docs/Runtime Environment/String","h":"#stringtruncate","p":735},{"i":770,"t":"Checks if a string contains a substring. Parameters​ The string to check. The substring to check for. pluto local s = \"hello world\" print(string.contains(s, \"worl\")) --> true Copy","s":"string.contains","u":"/docs/Runtime Environment/String","h":"#stringcontains","p":735},{"i":772,"t":"Compares two strings, agnostic of any capitalization. Parameters​ The first string to compare. The second string to compare. pluto local s1 = \"hello world\" local s2 = \"heLLo WoRlD\" print(string.casefold(s1, s2)) --> true Copy","s":"string.casefold","u":"/docs/Runtime Environment/String","h":"#stringcasefold","p":735},{"i":774,"t":"This function makes an integer easier to read by inserting separator every N characters. It can handle strings representing integers, making it suitable for BigInt modules or any integer beyond Lua's representation limits. If you provide a string, it should consist solely of digits. A single unary operator is permitted at the beginning of the string to indicate whether it's a negative or positive number. Parameters​ integer — The integer or string input. sep — The separator to use. This must be a single-character string. group — The grouping of each digit pair. This is N. Errors​ If the input is a string and does not meet the aforementioned criteria, an error will be thrown. Usage Example pluto print(string.formatint(500)) --> 500 print(string.formatint(-5000)) --> -5,000 print(string.formatint(50000)) --> 50,000 print(string.formatint(-500000)) --> -500,000 print(string.formatint(500, \".\", 2)) --> 5.00 print(string.formatint(\"-5000\", \",\", 1)) --> -5,0,0,0 print(string.formatint(50000, \",\", 4)) --> 5,0000 Copy Error Example pluto string.formatint(\"-500000.4\") Copy pluto: test.pluto:3: argument 'integer' for string.formatint was a string, but does not represent a valid integer (bad character: '.') stack traceback: [C]: in function 'string.formatint' test.pluto:3: in main chunk [C]: in ? Copy","s":"string.formatint","u":"/docs/Runtime Environment/String","h":"#stringformatint","p":735},{"i":776,"t":"Splits a string once, on the first occurance of a separator. Parameters​ The string to partition. The separator to partition the string by. A boolean specifying whether to search from the right. By default, this is false, which starts at the left. Returns​ Two strings: A substring for all the content before the first occurance of sep, and another substring for all the content afterwards. A Basic Partition pluto local s = \"hello world, what's up?\" local before, after = string.partition(s, \" \") assert(before == \"hello\") assert(after == \"world, what's up?\") Copy Partioning From The Right pluto local s = \"hello world, what's up?\" local before, after = string.partition(s, \" \", true) assert(before == \"hello world, what's\") assert(after == \"up?\") Copy","s":"string.partition","u":"/docs/Runtime Environment/String","h":"#stringpartition","p":735},{"i":778,"t":"Checks if a string ends with a suffix. Parameters​ The string to check. The substring suffix to check for. pluto local s = \"hello world\" print(string.endswith(s, \"world\")) --> true Copy","s":"string.endswith","u":"/docs/Runtime Environment/String","h":"#stringendswith","p":735},{"i":780,"t":"Checks if a string starts with a prefix. Parameters​ The string to check. The substring prefix to check for. pluto local s = \"hello world\" print(string.startswith(s, \"hello\")) --> true Copy","s":"string.startswith","u":"/docs/Runtime Environment/String","h":"#stringstartswith","p":735},{"i":782,"t":"Converts a (binary) string to a hex representation. Parameters​ The string to convert. An optional bool to indicate that spaces should be used. An optional bool to indicate that the result should be upper-cased. Returns​ A new string. pluto print(\"XYZ\":tohex()) --> 58595a print(\"XYZ\":tohex(true)) --> 58 59 5a print(\"XYZ\":tohex(false, true)) --> 58595A print(\"XYZ\":tohex(true, true)) --> 58 59 5A Copy","s":"string.tohex","u":"/docs/Runtime Environment/String","h":"#stringtohex","p":735},{"i":784,"t":"Converts a hex string to binary. Parameters​ The string to convert. Returns​ A new string. pluto print(\"58595a\":fromhex()) --> XYZ print(\"58 59 5A\":fromhex()) --> XYZ Copy","s":"string.fromhex","u":"/docs/Runtime Environment/String","h":"#stringfromhex","p":735},{"i":786,"t":"Must be included via require.","s":"Vector3","u":"/docs/Runtime Environment/Vector3","h":"","p":785},{"i":788,"t":"The constructor takes up to 3 arguments: pluto local vector3 = require \"pluto:vector3\" print(new vector3()) --> vector3(0, 0, 0) print(new vector3(1)) --> vector3(1, 1, 1) print(new vector3(1, 2)) --> vector3(1, 2, 0) print(new vector3(1, 2, 3)) --> vector3(1, 2, 3) Copy There is also a shorthand for this: pluto local vector3 = require \"pluto:vector3\" print(vector3(1, 2, 3)) --> vector3(1, 2, 3) Copy","s":"__construct","u":"/docs/Runtime Environment/Vector3","h":"#__construct","p":785},{"i":790,"t":"As seen above, the __tostring metamethod provides a string representation of the class.","s":"__tostring","u":"/docs/Runtime Environment/Vector3","h":"#__tostring","p":785},{"i":792,"t":"Vector3 instances support arithmetic operations. The right-hand side can either be a Vector3 instance or a number. They create a new instance for the result. pluto local vector3 = require \"pluto:vector3\" print(new vector3(1) + new vector3(2)) --> vector3(3, 3, 3) print(new vector3(0, 0.6, 0.4) * 3) --> vector3(0, 1.8, 1.2) Copy","s":"__add, __sub, __mul, __div","u":"/docs/Runtime Environment/Vector3","h":"#__add-__sub-__mul-__div","p":785},{"i":794,"t":"Vector3 instances can effortlessly be compared to each other. pluto local vector3 = require \"pluto:vector3\" print(new vector3(2, 2, 2) == new vector3(2)) --> true print(new vector3(1, 2, 3) == new vector3(2)) --> false Copy","s":"__eq","u":"/docs/Runtime Environment/Vector3","h":"#__eq","p":785},{"i":796,"t":"To get the magnitude of a vector, you can either use the unary length operator (#) or call the magnitude method: pluto local vec = new (require\"pluto:vector3\") (1, 2, 3) print(#vec) --> 3.7416573867739 print(vec:magnitude()) --> 3.7416573867739 Copy","s":"__len, magnitude","u":"/docs/Runtime Environment/Vector3","h":"#__len-magnitude","p":785},{"i":798,"t":"Computes the sum of the x, y and z fields. pluto local vec = new (require\"pluto:vector3\") (1, 2, 3) print(vec:sum()) --> 6 Copy","s":"sum","u":"/docs/Runtime Environment/Vector3","h":"#sum","p":785},{"i":800,"t":"Returns the value of axis with the lowest value. pluto local vec = new (require\"pluto:vector3\") (1, 2, 3) print(vec:min()) --> 1 Copy","s":"min","u":"/docs/Runtime Environment/Vector3","h":"#min","p":785},{"i":802,"t":"Returns the value of axis with the highest value. pluto local vec = new (require\"pluto:vector3\") (1, 2, 3) print(vec:max()) --> 3 Copy","s":"max","u":"/docs/Runtime Environment/Vector3","h":"#max","p":785},{"i":804,"t":"Computes the dot product with the Vector3 given as an argument. pluto local vector3 = require \"pluto:vector3\" print(new vector3(1):dot(new vector3(2))) --> 6 Copy","s":"dot","u":"/docs/Runtime Environment/Vector3","h":"#dot","p":785},{"i":806,"t":"Returns a new Vector3 instance with each axis being an absolute value. pluto local vector3 = require \"pluto:vector3\" print(new vector3(-1, -2, 3):abs()) --> vector3(1, 2, 3) Copy","s":"abs","u":"/docs/Runtime Environment/Vector3","h":"#abs","p":785},{"i":808,"t":"Returns a new Vector3 instance that is a unit vector equivalent. pluto local vector3 = require \"pluto:vector3\" print(new vector3(0, 3, 0):normalized()) --> vector3(0.0, 1.0, 0.0) Copy","s":"normalized, normalised","u":"/docs/Runtime Environment/Vector3","h":"#normalized-normalised","p":785},{"i":810,"t":"Returns a rotation vector based on the direction given by the current vector. You can specify the up-axis and handedness of the coordinate system. By default, a left-handed Y-up system is used. The up-axis also determines which axis contains which value: Y-Up: Pitch, Yaw, Roll Z-Up: Pitch, Roll, Yaw pluto local vector3 = require \"pluto:vector3\" print(new vector3(0, 1, 0):torot(\"y\")) -- Y up. Pointing up -> vector3(90.0, 0.0, 0) print(new vector3(0, 0, -1):torot(\"z\")) -- Z up. Pointing down -> vector3(-90.0, 0, -0.0) print(new vector3(1, 0, 0):torot(\"yr\")) -- Y up, right-handed. Pointing right -> vector3(0.0, -90.0, 0) print(new vector3(1, 0, 0):torot(\"yl\")) -- Y up, left-handed. Pointing right -> vector3(0.0, 90.0, 0) print(new vector3(1, 0, 0):torot(\"zr\")) -- Z up, right-handed. Pointing right -> vector3(0.0, 0, 90.0) print(new vector3(0, 0, 1):torot(\"y\")) -- Y up. Pointing forward -> vector3(0.0, 0.0, 0) print(new vector3(0, 0, -1):torot(\"y\")) -- Y up. Pointing backward -> vector3(0.0, 180.0, 0) Copy","s":"torot","u":"/docs/Runtime Environment/Vector3","h":"#torot","p":785},{"i":812,"t":"Returns a rotation vector based on the position given by the current vector and argument. pluto local v3 = require \"pluto:vector3\" print(new v3(0):lookat(new v3(0, 1, 0), \"y\")) -- Y up. From origin to a point above -> vector3(90.0, 0.0, 0) Copy","s":"lookat","u":"/docs/Runtime Environment/Vector3","h":"#lookat","p":785},{"i":814,"t":"Returns a direction vector based on the rotation given by the current vector. pluto local vector3 = require \"pluto:vector3\" print(new vector3(90, 0, 0):todir(\"y\")) -- Y up. Pointing up -> vector3(0.0, 1.0, 6.1232339957368e-17) print(new vector3(0, 90, 0):todir(\"yl\")) -- Y up, left-handed. Pointing right -> vector3(1.0, 0.0, 6.1232339957368e-17) print(new vector3(0, 90, 0):todir(\"yr\")) -- Y up, right-handed. Pointing right -> vector3(-1.0, 0.0, 6.1232339957368e-17) Copy","s":"todir","u":"/docs/Runtime Environment/Vector3","h":"#todir","p":785},{"i":816,"t":"Must be included via require.","s":"XML","u":"/docs/Runtime Environment/XML","h":"","p":815},{"i":818,"t":"Returns a string of XML. Parameters​ data — A table or string to encode as XML. pretty — Whether to return a human-readable string of XML. Defaults to false. pluto local xml = require \"pluto:xml\" print(xml.encode({ tag = \"root\", children = { { tag = \"entry\", attributes = { [\"type\"] = \"primary\" }, children = { \"Text node\" } }, { tag = \"entry\" } } }, true)) --> --> --> Text node --> --> --> Copy","s":"xml.encode","u":"/docs/Runtime Environment/XML","h":"#xmlencode","p":815},{"i":820,"t":"Returns a table representing the XML data. Parameters​ data — The XML data to decode. parser — Which parser to use against the data. Can be \"html\", \"xml\" (default), or \"lax\" (XML but accepts attributes without =). pluto local xml = require \"pluto:xml\" local root = xml.decode([[ primary ]]) print(dumpvar(root)) --> { --> [\"tag\"] = string(7) \"entries\", --> [\"children\"] = { --> [1] = { --> [\"tag\"] = string(5) \"entry\", --> [\"attributes\"] = { --> [\"type\"] = string(7) \"primary\", --> }, --> [\"children\"] = { --> [1] = { --> [\"tag\"] = string(4) \"name\", --> [\"children\"] = { --> [1] = string(7) \"primary\", --> }, --> }, --> }, --> }, --> }, --> } Copy For ease of use, the returned tables have an __index metamethod: pluto -- root is , so its first child is . -- we make use of the metamethod to get to : print(dumpvar(root.children[1].name)) --> { --> [\"tag\"] = string(4) \"name\", --> [\"children\"] = { --> [1] = string(7) \"primary\", --> }, --> } Copy If there is no single root element, a \"body\" element is implied as the root: pluto local xml = require \"pluto:xml\" print(dumpvar(xml.decode([[ ]]))) --> { --> [\"tag\"] = string(4) \"body\", --> [\"children\"] = { --> [1] = { --> [\"tag\"] = string(5) \"entry\", --> }, --> [2] = { --> [\"tag\"] = string(5) \"entry\", --> }, --> }, --> } Copy","s":"xml.decode","u":"/docs/Runtime Environment/XML","h":"#xmldecode","p":815},{"i":822,"t":"This page documents the changes & additions to the table library in Pluto, which is built on top of Lua 5.4's.","s":"Table","u":"/docs/Runtime Environment/Table","h":"","p":821},{"i":824,"t":"This function was modified to return the input table instead of nil, such that: pluto local t = { 3, 2, 1 } t = t:sort(...) Copy Will not result in t becoming nil.","s":"table.sort","u":"/docs/Runtime Environment/Table","h":"#tablesort","p":821},{"i":826,"t":"Copying variant of table.sort; returns a new table instead of modifying the input table. Note that nested tables will not be copied.","s":"table.sorted","u":"/docs/Runtime Environment/Table","h":"#tablesorted","p":821},{"i":828,"t":"Returns the number of elements in the table, counting both the array part and hash part. Parameters​ The table to check. pluto local t = { 1, 2, 3, [\"foo\"] = \"bar\" } print(t:size()) --> 4 Copy","s":"table.size","u":"/docs/Runtime Environment/Table","h":"#tablesize","p":821},{"i":830,"t":"Remove all elements from the table. Parameters​ The table to clear. pluto local t = { 1, 2, 3, [\"foo\"] = \"bar\" } print(t:size()) --> 4 t:clear() print(t:size()) --> 0 Copy","s":"table.clear","u":"/docs/Runtime Environment/Table","h":"#tableclear","p":821},{"i":832,"t":"Freezes a table to prevent modification. Parameters​ The table to freeze Returns​ The input table. pluto local t = table.freeze({...}) -- `table.freeze(t)` on another line will work fine too. t.key = \"value\" -- Fails. Copy","s":"table.freeze","u":"/docs/Runtime Environment/Table","h":"#tablefreeze","p":821},{"i":834,"t":"Checks if this table is frozen. Parameters​ The table to check. pluto local t = {} table.freeze(t) assert(table.isfrozen(t) == true) Copy","s":"table.isfrozen","u":"/docs/Runtime Environment/Table","h":"#tableisfrozen","p":821},{"i":836,"t":"Checks if this table contains an element. Parameters​ The table to check. The element to check for. Returns​ The index or key if found, otherwise nil. pluto local t = { 1, 2, 3, 4, 5, 6, key = \"value\" } assert(table.contains(t, 4) == 4) assert(table.contains(t, \"value\") == \"key\") assert(table.contains(t, \"nothing\") == nil) Copy","s":"table.contains","u":"/docs/Runtime Environment/Table","h":"#tablecontains","p":821},{"i":838,"t":"Search a table for an element, returning its value. Parameters​ The table to check. The callback function responsible for checking each element. Returns​ The element if found, otherwise nil. pluto local items = { { id = 1, name = \"Apple\" }, { id = 2, name = \"Banana\" }, } print(items:find(|item| -> item.id == 1).name) --> Apple Copy","s":"table.find","u":"/docs/Runtime Environment/Table","h":"#tablefind","p":821},{"i":840,"t":"Search a table for an element, returning its key/index. Parameters​ The table to check. The callback function responsible for checking each element. Returns​ The key/index if found, otherwise nil. pluto local fruit = { \"apple\", \"banana\", \"orange\" } print(fruit:findkey(|x| -> x == \"banana\")) --> 2 print(fruit[2]) --> banana Copy","s":"table.findkey, table.findindex","u":"/docs/Runtime Environment/Table","h":"#tablefindkey-tablefindindex","p":821},{"i":842,"t":"Reverses the array elements of a table. Parameters​ The table to reverse. Returns​ The input table. pluto local t = { 1, 2, hello = \"world\", 3, 4, 5, key = \"value\" } print(dumpvar(t)) local same = t:reverse() assert(same == t) print(dumpvar(t)) --[[ Before: { [1] = 1, [2] = 2, [3] = 3, [4] = 4, [5] = 5, [\"key\"] = string(5) \"value\", [\"hello\"] = string(5) \"world\", } After: { [1] = 5, [2] = 4, [3] = 3, [4] = 2, [5] = 1, [\"key\"] = string(5) \"value\", [\"hello\"] = string(5) \"world\", } --]] Copy","s":"table.reverse","u":"/docs/Runtime Environment/Table","h":"#tablereverse","p":821},{"i":844,"t":"Copying variant of table.reverse; returns a new table instead of modifying the input table. Note that nested tables will not be copied.","s":"table.reversed","u":"/docs/Runtime Environment/Table","h":"#tablereversed","p":821},{"i":846,"t":"Reorders the array portion of a table so it becomes a continuous array with no holes. Parameters​ The table. Returns​ The input table. pluto local assert = require(\"assert\") local t1 = { 1, nil, 2, nil, nil, 3, nil, 4 } assert.equal(t1:reorder(), { 1, 2, 3, 4 }) Copy","s":"table.reorder","u":"/docs/Runtime Environment/Table","h":"#tablereorder","p":821},{"i":848,"t":"Copying variant of table.reorder; returns a new table instead of modifying the input table. Note that nested tables will not be copied.","s":"table.reordered","u":"/docs/Runtime Environment/Table","h":"#tablereordered","p":821},{"i":850,"t":"Note that this function is not the same as the Lua function that was deprecated/removed in 5.1. Parameters​ The table. The callback to be called for every element. An optional bool if the callback function also takes a key (|k, v|) as opposed to only a value (|v|). pluto local t = { 1, 2, 3 } t:foreach(print) --> 1 --> 2 --> 3 Copy","s":"table.foreach","u":"/docs/Runtime Environment/Table","h":"#tableforeach","p":821},{"i":852,"t":"Filters away keys (both array and non-array) that fail to meet the condition established by callback. Elimination is done by setting the value to nil, consider using table.reorder if you want a continuous array after filtering. Parameters​ The table. The callback responsible for deciding which keys to keep or remove. This should return false or nil if you want the key to be eliminated. An optional bool if the callback function also takes a key (|k, v|) as opposed to only a value (|v|). Returns​ The input table. pluto data = { 1, 2, 3, 4, 5 } data:filter(|v| -> v % 2 ~= 0):reorder():concat(\" \") |> print -- \"1 3 5\" data = { 2, 2, 3, 4, 4 } data:filter(|k, v| -> k == v, true):reorder():concat(\" \") |> print -- \"2 3 4\" Copy","s":"table.filter","u":"/docs/Runtime Environment/Table","h":"#tablefilter","p":821},{"i":854,"t":"Copying variant of table.filter; returns a new table instead of modifying the input table. Note that nested tables will not be copied.","s":"table.filtered","u":"/docs/Runtime Environment/Table","h":"#tablefiltered","p":821},{"i":856,"t":"Remaps every key to a new value, provided by the callback function. Parameters​ The table. The callback responsible for producing the updated values. An optional bool if the callback function also takes a key (|k, v|) as opposed to only a value (|v|). Returns​ The input table. pluto data = \"41 20 68\" data:split(\" \"):map(tonumber):map(|v| -> v + 1):concat(\" \") |> print -- \"42 21 69\" data = \"10 15 10\" data:split(\" \"):map(tonumber):map(|k, v| -> k * v, true):concat(\" \") |> print -- \"10 30 30\" Copy In this example, we first use the tonumber function to turn the strings into numbers, then add 1 to them. (Although the first step is not needed in Lua/Pluto since the + operator would take care of it, it is used here for demonstration purposes.)","s":"table.map","u":"/docs/Runtime Environment/Table","h":"#tablemap","p":821},{"i":858,"t":"Copying variant of table.map; returns a new table instead of modifying the input table. Note that nested tables will not be copied.","s":"table.mapped","u":"/docs/Runtime Environment/Table","h":"#tablemapped","p":821},{"i":860,"t":"For every value stored in the table, computes accumulator = f(value, accumulator), returning the accumulator at the end. Parameters​ The table. The callback responsible for producing the updated accumulator. The initial value of accumulator. If absent, the accumulator is initialized with 0. Returns​ The accumulator. pluto local t = { 1, 2, 3 } t:reduce(|value, accumulator| -> value + accumulator) |> print --> 6 Copy","s":"table.reduce","u":"/docs/Runtime Environment/Table","h":"#tablereduce","p":821},{"i":862,"t":"Returns the smallest value stored in the table. Parameters​ The table. pluto local t = { 1, 2, 3 } print(t:min()) --> 1 Copy This is identical to :reduce(math.min, math.maxinteger).","s":"table.min","u":"/docs/Runtime Environment/Table","h":"#tablemin","p":821},{"i":864,"t":"Returns the largest value stored in the table. Parameters​ The table. pluto local t = { 1, 2, 3 } print(t:max()) --> 3 Copy This is identical to :reduce(math.max, math.mininteger).","s":"table.max","u":"/docs/Runtime Environment/Table","h":"#tablemax","p":821},{"i":866,"t":"Runs the given function against all elements, returning true if all of them match. Parameters​ The table. The callback responsible for checking each element. pluto print({ 2, 4, 6 }:checkall(|x| -> x % 2 == 0) ? \"All are even\" : \"Some are odd\") --> All are even print({ 1, 2, 3 }:checkall(|x| -> x % 2 == 0) ? \"All are even\" : \"Some are odd\") --> Some are odd Copy","s":"table.checkall","u":"/docs/Runtime Environment/Table","h":"#tablecheckall","p":821},{"i":868,"t":"Returns a new array-like table containing all keys from the table. Parameters​ The table. pluto local t = { [\"key1\"] = \"value1\", [\"key2\"] = \"value2\", \"sequence\", \"sequence sequence\" } t:keys() -- { 1, 2, \"key1\", \"key2\" } Copy","s":"table.keys","u":"/docs/Runtime Environment/Table","h":"#tablekeys","p":821},{"i":870,"t":"Returns a key-value based table which describes how many times a value appears inside of a table. Parameters​ The table pluto local t = { 1, 2, 2 3, 3, 3, 4, 4, 4, 4 [\"key1\"] = \"value\" [\"key2\"] = \"value\" } t:countvalues() -- { [1] = 1, [2] = 2, [3] = 3, [4] = 4, [\"value\"] = 2 } Copy","s":"table.countvalues","u":"/docs/Runtime Environment/Table","h":"#tablecountvalues","p":821},{"i":872,"t":"Generates a new table which collects the values of the input and represents them in chunks of a specified size. Parameters​ The table. The desired size of each chunk. Errors​ An error is thrown if size is not greater than zero. pluto local t = { 1, 2, 3, [\"key\"] = \"hello\", [\"other key\"] = \"world\" } t:chunk(3) -- { { 1, 2, 3 }, { \"hello\", \"world\" } } Copy","s":"table.chunk","u":"/docs/Runtime Environment/Table","h":"#tablechunk","p":821},{"i":874,"t":"Returns the last element of a table. This is functionally identical to t[#t]. Parameters​ The table. pluto local t = { \"a\", \"b\", \"c\" } print(t[#t]) --> \"c\" -- Now can be fit into one line. print({ \"a\", \"b\", \"c\" }:back()) --> c Copy","s":"table.back","u":"/docs/Runtime Environment/Table","h":"#tableback","p":821},{"i":876,"t":"Returns a new table composed of the elements between the specified range. This is intended to be used on sequences. Parameters​ The table. The starting index. The ending index. This is optional. By default, this is the length of the table. pluto local t = { 1, 2, 3, 4, 5 } t:slice(3) -- { 3, 4, 5 } t:slice(2, 4) -- { 2, 3, 4 } Copy","s":"table.slice","u":"/docs/Runtime Environment/Table","h":"#tableslice","p":821},{"i":878,"t":"Returns an element by index with wrap-around. Parameters​ The table. The index to get. pluto local mask = { 0xf0, 0x0f } local data = { 0x11, 0x22, 0x33, 0x44 } for i, v in data do -- Old way: data[i] = data[i] ~ mask[((i - 1) % #mask) + 1] data[i] = data[i] ~ mask:modget(i) end assert(data[1] == 0x11 ~ 0xf0) assert(data[2] == 0x22 ~ 0x0f) assert(data[3] == 0x33 ~ 0xf0) assert(data[4] == 0x44 ~ 0x0f) Copy","s":"table.modget","u":"/docs/Runtime Environment/Table","h":"#tablemodget","p":821},{"i":880,"t":"Updates an element by index with wrap-around. Parameters​ The table. The index to set. The value to set. pluto local test = { 1, 2, 3 } test:modset(5, 5) test:modset(6, 6) assert(test[1] == 1) assert(test[2] == 5) assert(test[3] == 6) Copy","s":"table.modset","u":"/docs/Runtime Environment/Table","h":"#tablemodset","p":821}],"index":{"version":"2.3.9","fields":["t"],"fieldVectors":[["t/2",[0,0.513,1,6.625,2,4.912,3,3.897,4,3.271,5,4.352,6,3.534,7,2.408,8,3.975,9,6.008,10,1.95,11,6.625,12,4.745,13,4.352,14,6.625,15,6.625,16,5.635,17,3.186,18,6.625,19,6.028,20,6.028,21,6.625]],["t/4",[0,0.455,4,2.141,6,2.359,10,1.913,22,2.233,23,4.228,24,1.809,25,3.644,26,2.233,27,2.551,28,2.551,29,4.63,30,2.656,31,2.656,32,2.925,33,3.343,34,2.925,35,3.946,36,4.61,37,3.688,38,0.728,39,0.595,40,7.675,41,4.336,42,2.779,43,0.517,44,2.849,45,3.688,46,1.862,47,2.779,48,2.375,49,2.715,50,3.496,51,4.336,52,1.461,53,2.656,54,1.745,55,2.849,56,2.715,57,3.946,58,1.254,59,2.033,60,3.496,61,3.496,62,2.301,63,3.106,64,3.688,65,3.946]],["t/6",[0,0.517,4,2.685,25,3.597,34,3.669,35,4.949,39,0.497,44,4.977,66,4.856,67,4.386,68,1.959,69,2.761,70,3.14,71,2.583,72,3.083,73,2.583,74,3.486,75,2.722,76,4.627,77,5.439,78,3.669,79,3.896,80,4.949,81,3.896,82,4.033,83,4.221,84,2.461,85,3.406,86,2.616,87,2.432,88,4.627,89,3.776,90,2.801,91,3.486,92,2.378,93,2.432,94,4.627,95,5.439,96,2.685]],["t/8",[0,0.514,4,3.099,10,1.695,13,1.655,24,1.179,25,2.98,26,3.874,27,3.692,28,3.167,29,2.043,30,2.568,31,2.568,32,1.7,33,1.942,39,0.602,43,0.504,44,4.578,48,3.818,54,1.014,56,1.578,63,3.003,71,2.557,82,1.868,83,4.653,84,3.153,91,1.615,92,0.791,93,1.127,94,2.143,97,1.317,98,1.655,99,1.482,100,2.032,101,1.942,102,1.868,103,2.098,104,1.196,105,1.114,106,1.749,107,1.512,108,4.1,109,1.966,110,1.749,111,1.454,112,2.52,113,5.711,114,2.52,115,2.293,116,4.58,117,1.7,118,3.003,119,1.428,120,2.52,121,1.615,122,1.228,123,2.52,124,2.52,125,3.692,126,1.261,127,4.58,128,1.38,129,1.942,130,4.58,131,2.52,132,1.482,133,2.293,134,2.293,135,2.098,136,1.114,137,1.102,138,2.625,139,1.482,140,1.428,141,2.52,142,1.404,143,2.52,144,1.212,145,1.7,146,1.512,147,2.52]],["t/10",[4,4.581,10,1.381,25,2.912,26,3.158,48,3.359,91,3.93,99,3.608,104,2.912,135,4.644,148,4.547,149,3.305,150,5.58,151,4.257,152,5.58,153,5.216,154,7.483,155,4.029,156,4.547,157,3.93,158,4.945,159,4.137,160,5.58,161,5.58,162,4.945,163,5.216,164,5.216,165,5.216,166,5.58,167,5.58]],["t/12",[0,0.446,10,0.773,38,0.752,39,0.494,43,0.533,44,2.256,46,1.558,48,2.95,53,3.299,69,1.743,72,1.946,73,1.63,74,2.201,78,2.316,81,2.459,87,1.536,91,2.201,92,1.078,97,1.794,104,2.557,109,1.61,129,2.647,142,1.913,168,2.459,169,3.434,170,3.434,171,1.881,172,2.769,173,2.02,174,1.438,175,2.086,176,3.124,177,2.769,178,2.921,179,5.385,180,0.949,181,3.434,182,1.767,183,3.434,184,5.385,185,5.385,186,5.357,187,3.451,188,5.385,189,2.769,190,1.536,191,2.921,192,2.256,193,2.384,194,3.124,195,3.124,196,2.104,197,2.256,198,2.256,199,1.794,200,3.434,201,1.851,202,2.384,203,3.124,204,3.434,205,3.434,206,3.434,207,3.124,208,5.385,209,3.434,210,2.329,211,2.769,212,3.434,213,2.256,214,2.921,215,3.124,216,3.434,217,1.008,218,3.434,219,3.124,220,3.434,221,3.434,222,3.434]],["t/14",[0,0.411,6,1.762,7,2.522,8,4.887,10,1.082,39,0.621,44,3.157,48,4.461,59,2.253,69,2.439,75,2.405,102,6.039,122,2.341,201,2.59,210,2.078,223,3.705,224,4.805,225,3.009,226,4.373,227,3.705,228,4.088,229,4.805,230,4.088,231,4.088,232,3.08,233,4.805,234,4.373,235,4.373,236,3.875,237,7.41,238,6.314,239,2.59,240,4.805,241,4.805,242,4.805,243,3.157,244,3.563,245,3.08,246,4.805,247,4.373,248,4.805,249,4.373,250,3.442,251,4.373,252,4.373]],["t/16",[0,0.265,7,1.625,17,2.15,22,2.302,39,0.432,59,3.087,73,2.123,213,2.937,230,5.599,234,7.11,237,7.11,249,4.068,250,3.202,251,4.068,252,4.068,253,6.3,254,3.803,255,4.068,256,5.424,257,6.583,258,6.583,259,4.47,260,3.315,261,3.605,262,4.47,263,3.803,264,5.308,265,4.068,266,4.47,267,4.068,268,4.068,269,4.068,270,6.583,271,4.068,272,4.068,273,4.47,274,4.47,275,4.47,276,6.583,277,3.803,278,3.446,279,4.47,280,4.47,281,6.583,282,6.583,283,3.315,284,1.999,285,3.202,286,3.202,287,3.103,288,4.068]],["t/18",[0,0.517,64,5.701,69,3.402,72,3.799,74,4.295,140,3.799,148,4.969,289,5.167,290,6.702,291,6.098,292,7.031,293,6.702,294,6.098,295,6.702,296,6.702,297,4.021,298,3.502,299,4.969,300,4.295,301,3.799,302,6.702,303,6.702,304,6.098,305,6.098]],["t/21",[3,4.912,74,5.351,91,5.351,137,3.651,199,4.363,201,4.5,202,5.796,306,5.351,307,8.35]],["t/23",[0,0.502,7,1.871,8,3.089,10,1.642,39,0.478,43,0.413,44,3.382,69,2.613,74,3.299,86,2.476,87,2.302,92,2.288,104,2.444,136,2.276,174,2.157,175,1.314,180,0.907,199,2.69,201,2.775,202,3.574,245,3.299,292,4.151,298,2.69,299,3.817,308,4.685,309,4.379,310,3.382,311,5.148,312,4.685,313,4.685,314,5.148,315,5.148,316,5.148,317,5.148,318,4.685,319,4.685,320,3.574,321,5.148,322,5.148,323,4.685,324,5.148,325,3.817,326,3.029,327,4.379,328,5.148,329,4.685,330,2.651]],["t/25",[0,0.332,10,1.261,13,3.677,48,3.066,69,2.841,78,3.776,87,2.503,92,2.426,122,2.727,137,2.448,174,2.345,175,2.259,199,2.925,285,6.34,292,4.513,299,4.15,300,3.587,313,7.032,331,5.093,332,5.093,333,5.093,334,7.728,335,5.093,336,5.597,337,6.231,338,4.513,339,4.761,340,4.513,341,6.574,342,5.597,343,3.429,344,5.597,345,3.505,346,5.093]],["t/27",[0,0.338,7,2.074,62,3.029,68,2.056,69,2.897,74,3.658,90,2.939,97,2.983,126,2.857,140,3.236,182,1.518,199,2.983,201,3.077,202,3.962,203,5.194,211,4.602,226,5.194,245,3.658,306,3.658,332,5.194,337,4.602,347,2.613,348,3.497,349,7.833,350,5.708,351,5.708,352,5.708,353,5.708,354,4.232,355,5.708,356,5.708,357,5.194,358,3.574,359,5.61,360,5.194,361,5.708,362,4.088,363,3.18,364,5.194]],["t/29",[0,0.446,17,1.651,39,0.225,42,3.451,43,0.432,46,1.558,48,1.881,52,1.814,66,4.258,74,2.201,75,1.719,76,2.921,99,2.02,104,1.63,107,3.231,145,2.316,149,1.851,159,2.316,175,0.876,180,0.605,199,1.794,239,1.851,244,2.546,265,3.124,292,6.067,300,4.822,301,1.946,359,5.389,362,2.459,363,3.701,365,2.769,366,2.256,367,2.316,368,3.857,369,4.9,370,6.046,371,3.124,372,2.769,373,2.549,374,2.921,375,3.451,376,3.434,377,3.434,378,3.434,379,6.644,380,2.256,381,2.06,382,2.384,383,2.105,384,3.124,385,2.256,386,3.434,387,2.769,388,2.921,389,3.434,390,4.342,391,3.434,392,3.434,393,2.921,394,3.124,395,1.946,396,3.124,397,1.881,398,3.434,399,3.434,400,3.434,401,2.921,402,3.434,403,3.434,404,3.124,405,2.384,406,1.982,407,3.434,408,2.647,409,3.124,410,2.769]],["t/31",[0,0.488,6,3.017,48,4.509,71,3.908,288,7.489,300,5.275,306,5.275,411,6.345,412,5.714,413,6.103]],["t/33",[68,2.257,74,4.016,78,4.227,90,3.226,126,3.136,136,2.77,199,3.274,201,3.377,202,4.349,223,4.83,300,4.016,383,2.449,413,6.954,414,6.954,415,6.266,416,5.701,417,6.266,418,4.729,419,6.266,420,5.33,421,5.48,422,5.701,423,5.052,424,4.116,425,6.266,426,6.266]],["t/35",[0,0.188,7,1.837,17,3.78,26,1.632,38,0.359,39,0.677,43,0.406,46,0.917,68,1.142,70,1.83,140,1.797,175,1.29,180,0.891,182,2.775,217,1.484,284,1.418,373,1.939,405,2.2,406,2.918,424,3.321,427,1.656,428,3.449,429,2.585,430,1.656,431,3.598,432,2.884,433,2.884,434,2.35,435,3.17,436,4.415,437,2.884,438,2.444,439,3.17,440,5.364,441,6.306,442,3.17,443,3.17,444,5.055,445,3.17,446,3.17,447,3.17,448,3.17,449,3.17,450,3.17,451,2.884,452,3.17,453,3.17,454,3.17,455,3.17,456,3.17,457,3.17,458,2.2,459,2.884]],["t/37",[0,0.517,117,5.888,297,5.237,347,3.995,460,8.728,461,5.734]],["t/39",[0,0.609,7,2.755,10,2.125,117,6.363,149,4.087,245,4.859,247,6.899,272,6.899,461,4.981,462,7.582,463,7.582,464,5.431]],["t/41",[0,0.455,39,0.504,76,6.535,99,4.52,305,6.991,465,6.991,466,5.183,467,4.141,468,5.333,469,6.535,470,6.991,471,6.195,472,5.923,473,5.697,474,5.183]],["t/44",[0,0.481,43,0.652,70,4.684,89,5.633,96,4.007,253,7.93,475,6.543,476,8.115,477,8.115,478,6.903]],["t/46",[0,0.507,39,0.561,43,0.353,70,2.541,89,3.056,96,2.174,129,3.394,137,1.925,174,1.844,187,2.821,197,2.892,213,2.892,253,5.248,264,3.55,306,2.821,330,2.267,467,2.373,473,3.264,475,3.55,479,7.046,480,4.402,481,4.402,482,6.508,483,6.508,484,4.402,485,7.785,486,6.508,487,4.402,488,6.508,489,6.508,490,4.402,491,4.402,492,4.402,493,3.745,494,4.402,495,4.402,496,6.508,497,4.402,498,4.402,499,2.97,500,3.508,501,3.264,502,5.018,503,3.264,504,3.264,505,4.006,506,5.922,507,4.006,508,4.402,509,3.745]],["t/48",[0,0.598,54,2.935,66,4.675,79,5.225,89,5.064,129,5.624,174,3.056,264,5.882,278,5.624,306,4.675,478,6.205,500,4.963,501,5.409,502,5.624,503,5.409,510,6.638]],["t/50",[0,0.474,79,5.732,111,4.619,129,6.169,174,3.353,197,5.257,264,6.452,278,6.169,467,4.313,478,6.807,511,8.002,512,8.002]],["t/52",[0,0.525,10,1.546,43,0.551,87,3.068,137,3.872,201,3.698,277,7.532,278,5.29,284,3.068,297,4.117,298,3.585,513,5.532,514,5.836,515,5.29,516,5.532,517,6.243,518,3.961,519,6.861,520,6.861,521,6.243,522,3.533]],["t/54",[9,3.481,43,0.403,44,3.294,67,4.043,70,2.894,73,2.381,92,1.574,96,2.476,137,2.193,174,2.101,210,2.169,245,4.585,253,5.768,261,5.768,289,3.865,395,2.842,418,2.842,467,2.702,475,4.043,479,4.562,485,6.509,501,3.718,506,4.562,510,4.562,522,2.582,523,9.743,524,3.481,525,5.014,526,4.562,527,5.014,528,2.66,529,5.014,530,7.333,531,5.014,532,5.014,533,5.014,534,2.894,535,3.591,536,4.265,537,3.213]],["t/56",[39,0.45,201,5.284,260,6.565,263,5.836,267,8.057,268,8.057,269,6.243,277,5.836,278,5.29,284,3.068,380,4.507,467,3.698,516,5.532,535,4.914,537,4.397,538,6.861,539,6.861,540,6.861,541,5.29]],["t/58",[9,5.263,43,0.609,55,4.981,119,5.347,245,4.859,261,6.114,283,5.622,284,3.391,467,4.087,514,6.449,535,5.431,536,6.449,537,4.859,542,7.582,543,7.582]],["t/60",[0,0.582,9,3.672,10,1.674,22,2.724,30,3.241,39,0.347,43,0.597,67,4.265,69,2.685,70,3.053,75,3.719,89,5.158,92,1.66,122,2.577,128,2.898,174,2.216,201,4.005,244,3.922,325,3.922,467,2.851,501,3.922,521,4.813,535,3.789,536,7.305,537,5.504,544,8.928,545,7.43,546,5.29,547,5.29,548,3.922,549,5.29]],["t/62",[0,0.342,2,4.275,3,3.391,4,2.846,6,2.891,7,2.095,8,3.459,22,2.968,26,2.968,28,3.391,29,3.842,39,0.517,59,2.703,103,2.885,173,3.391,174,2.415,210,2.493,228,4.904,343,3.532,550,4.904,551,7.887,552,5.765,553,4.648,554,4.444,555,3.158,556,5.765,557,3.532,558,5.765,559,5.765,560,4.275,561,4.129,562,2.39,563,5.246,564,1.333,565,3.889,566,3.889]],["t/64",[0,0.568,6,3.514,16,5.571,48,3.588,108,3.853,136,2.896,366,4.303,567,6.55,568,6.55,569,6.55,570,4.691,571,6.55,572,6.55,573,6.55,574,6.55,575,6.55,576,7.307,577,8.591,578,6.55,579,6.55,580,4.547,581,5.96]],["t/66",[0,0.406,25,2.244,39,0.529,43,0.551,46,2.334,68,1.703,71,2.244,72,2.679,104,3.256,139,2.781,182,2.85,187,4.394,190,3.066,217,1.387,345,2.96,363,5.632,366,3.105,406,5.978,429,2.911,431,2.164,541,3.644,582,3.189,583,4.301,584,3.644,585,4.021,586,4.301,587,2.96,588,4.301]],["t/68",[7,2.949,62,4.306,69,4.119,99,4.774,117,5.474,589,6.543,590,8.115,591,6.903,592,7.384,593,6.903,594,6.543]],["t/70",[0,0.451,7,1.552,8,2.563,10,0.962,38,0.954,39,0.643,43,0.511,70,2.466,111,2.466,137,4.282,173,2.513,174,2.667,175,1.942,190,1.91,310,2.806,340,3.445,347,3.482,373,2.441,515,3.293,594,5.132,595,3.445,596,3.887,597,6.365,598,3.011,599,4.272,600,6.365,601,2.882,602,4.272,603,3.445,604,4.272,605,3.445,606,4.272,607,3.887,608,2.081,609,1.416,610,4.272,611,2.966,612,3.293,613,3.634,614,2.738,615,1.955,616,3.887,617,3.887,618,3.887,619,3.887]],["t/72",[0,0.512,38,0.976,39,0.67,43,0.693,52,1.799,96,2.636,103,2.672,137,3.774,139,3.141,144,4.151,199,5.145,214,4.541,217,1.567,347,3.951,620,5.532,621,6.361,622,3.082,623,5.991,624,3.824,625,5.339,626,4.399]],["t/74",[0,0.349,7,2.138,8,3.53,10,1.325,17,2.829,39,0.386,43,0.472,46,1.702,47,3.77,132,3.461,135,4.002,137,3.972,199,3.074,201,4.31,245,5.124,347,2.693,358,3.684,383,2.299,421,3.864,473,4.362,595,6.447,627,7.859,628,7.996,629,3.461,630,3.074,631,5.882,632,3.335,633,5.353]],["t/76",[0,0.297,7,3.031,10,1.611,24,1.41,25,2.381,26,2.582,27,6.053,39,0.469,43,0.403,46,2.069,90,2.582,103,3.58,104,2.381,109,2.351,119,2.842,182,1.333,187,3.213,284,2.242,363,5.066,368,3.591,380,3.294,405,4.966,406,2.894,431,2.295,472,3.865,587,3.14,634,5.014,635,6.509,636,4.043,637,2.793,638,3.294,639,4.562,640,4.562,641,4.562,642,3.591,643,4.562,644,5.014,645,4.265]],["t/78",[0,0.404,25,2.226,27,5.749,39,0.527,43,0.547,46,2.709,68,1.689,71,2.226,72,2.658,104,3.236,139,2.758,182,2.845,187,4.368,190,3.048,217,1.376,345,2.936,363,5.618,366,3.08,429,2.9,431,2.146,582,3.163,583,4.266,584,3.614,585,3.988,586,4.266,587,2.936,588,4.266,635,6.202]],["t/80",[10,1.778,25,3.748,27,5.688,83,4.397,93,3.53,126,3.951,136,3.49,140,4.474,160,7.182,298,4.125,646,4.736,647,5.853]],["t/82",[0,0.525,473,6.571,474,5.978,648,5.318,649,8.862]],["t/84",[0,0.241,2,1.798,4,2.586,6,1.488,7,0.881,10,1.38,13,1.593,25,1.151,29,1.978,31,1.485,34,1.635,39,0.514,46,1.174,50,3.274,66,1.554,71,1.151,72,1.374,81,1.736,83,1.351,86,1.166,87,2.74,91,1.554,92,1.274,93,1.084,103,1.213,105,1.072,121,1.554,126,1.213,135,1.213,142,5.446,152,2.206,156,1.798,171,1.328,173,1.426,174,2.567,175,1.036,182,0.645,190,1.084,199,2.122,225,1.518,232,2.602,271,2.206,285,1.736,298,1.267,300,1.554,310,1.593,338,1.955,348,1.485,365,1.955,469,2.062,522,2.09,555,1.328,622,1.399,626,1.426,637,1.351,650,1.955,651,1.955,652,1.072,653,3.927,654,2.224,655,2.602,656,2.206,657,3.465,658,2.062,659,1.635,660,2.206,661,3.13,662,1.798,663,1.869,664,2.206,665,1.084,666,1.798,667,2.424,668,1.267,669,1.952,670,2.424,671,2.206,672,3.694,673,2.424,674,1.518,675,1.683,676,1.955,677,2.424,678,2.424,679,2.424,680,2.424,681,2.424,682,2.424,683,2.424,684,2.424,685,2.424,686,2.424,687,2.424,688,2.424,689,2.424,690,2.424,691,2.424,692,2.424,693,2.424,694,2.424,695,2.424,696,2.424,697,2.424,698,2.424,699,2.424,700,2.206,701,2.424,702,2.424,703,2.424,704,2.062,705,2.206,706,1.869,707,1.351,708,1.518,709,2.062,710,1.869,711,1.869,712,2.206,713,1.635,714,1.084,715,2.206,716,2.206,717,2.206]],["t/86",[6,1.922,7,1.905,44,3.443,62,2.781,75,2.623,86,2.521,137,2.292,180,0.923,190,2.344,201,2.825,217,1.538,413,3.887,414,3.887,468,3.639,503,3.887,523,4.77,534,3.026,564,1.707,648,3.145,651,4.226,657,2.318,669,4.878,718,4.77,719,5.952,720,4.77,721,5.242,722,4.459,723,2.971,724,5.242,725,5.242,726,5.242,727,4.77,728,4.77,729,5.242,730,4.226,731,4.041,732,3.026,733,3.639,734,4.041,735,2.088,736,4.226,737,5.242,738,3.211]],["t/88",[4,2.278,13,3.031,17,3.239,23,3.031,25,2.191,26,2.375,30,2.826,48,2.527,52,2.269,53,2.826,56,2.889,68,1.662,71,2.191,84,2.087,122,2.248,137,2.017,138,2.889,171,4.359,173,2.714,174,1.933,175,1.178,180,0.813,190,2.063,210,2.914,217,1.354,347,2.112,362,3.304,363,2.57,458,3.203,467,2.487,654,3.69,657,2.04,665,2.063,669,4.475,739,4.676,740,3.479,741,2.57,742,3.031,743,3.557,744,3.924,745,2.768,746,4.198,747,3.421,748,2.309,749,3.72,750,3.72,751,3.924,752,4.198,753,3.203,754,3.421,755,3.557,756,2.663]],["t/90",[3,2.441,4,2.049,6,1.521,10,1.684,17,1.995,26,2.136,29,2.021,30,2.542,39,0.491,52,1.398,93,1.856,105,1.835,125,2.441,138,2.598,142,2.311,171,2.273,173,2.441,174,2.609,177,3.346,190,1.856,201,2.236,381,2.49,427,2.168,440,3.529,464,2.972,555,2.273,562,3.1,657,1.835,665,1.856,669,4.664,705,3.776,712,3.776,727,3.776,728,3.776,733,2.88,740,1.814,757,2.972,758,3.199,759,4.201,760,4.149,761,4.149,762,4.58,763,4.618,764,4.801,765,3.529,766,2.726,767,4.149,768,3.529,769,3.529,770,4.149,771,2.609,772,3.529,773,3.529,774,4.149,775,4.149,776,3.346,777,4.149,778,4.149,779,2.972,780,4.149]],["t/92",[50,6.359,52,1.942,137,2.521,158,4.648,171,3.158,330,2.968,373,2.211,380,3.787,473,4.275,522,2.968,555,3.158,562,3.727,665,3.527,669,4.648,671,5.246,741,3.212,751,4.904,766,3.787,781,5.765,782,4.904,783,5.765,784,4.129,785,5.765,786,4.275,787,5.848,788,5.246,789,4.444,790,5.246,791,4.904,792,4.904,793,5.765,794,5.765]],["t/94",[7,2.073,16,3.145,17,1.778,26,2.937,27,4.097,39,0.514,53,2.265,86,1.778,87,2.551,103,1.851,105,1.635,106,3.96,138,2.315,144,2.743,171,3.125,180,0.651,192,2.429,217,1.674,299,2.742,330,1.904,343,2.265,363,2.06,373,2.188,406,2.134,458,2.567,461,2.429,499,2.494,522,2.937,555,3.815,562,2.365,620,2.37,665,3.115,666,2.742,668,2.981,669,4.935,733,2.567,735,1.473,753,2.567,757,2.648,758,2.851,766,3.748,772,3.145,787,2.742,792,3.145,795,3.697,796,3.364,797,2.742,798,2.851,799,3.697,800,3.364,801,5.191,802,5.705,803,2.494,804,3.364,805,2.567,806,3.697,807,2.742,808,3.697,809,2.648,810,3.697,811,3.697,812,3.697,813,2.648]],["t/96",[0,0.099,4,0.823,5,1.096,6,0.611,10,1.224,12,1.195,17,0.802,24,0.827,25,0.792,26,0.859,29,1.434,38,0.333,39,0.572,43,0.134,46,0.483,52,0.562,56,1.044,68,1.716,71,1.397,72,0.946,83,1.639,84,0.755,87,1.316,88,2.503,89,1.158,93,2.13,96,1.453,97,0.872,102,1.237,103,2.383,105,0.738,107,1.001,119,1.668,122,1.434,125,1.731,126,0.835,135,0.835,136,0.738,137,0.729,142,5.891,144,0.802,145,1.125,155,1.096,172,1.345,173,0.981,174,2.513,175,2.375,176,1.518,178,1.419,180,0.518,190,0.746,199,2.063,217,0.49,232,1.069,325,1.237,347,0.763,358,1.044,381,1.766,383,0.652,385,1.096,405,2.043,406,0.963,461,1.096,467,0.899,515,1.286,526,1.518,555,1.612,561,1.195,562,1.975,564,0.386,608,0.813,611,1.158,620,1.069,623,2.043,624,2.108,654,1.612,657,2.865,666,3.531,669,1.899,707,0.929,708,1.044,709,1.419,710,2.269,715,1.518,716,1.518,717,1.518,718,1.518,720,1.518,733,1.158,739,1.158,740,2.082,743,1.286,755,1.286,757,1.195,763,1.237,768,1.419,769,1.419,773,1.419,779,1.195,814,1.518,815,1.419,816,2.182,817,1.518,818,1.518,819,1.419,820,1.419,821,1.286,822,1.345,823,1.237,824,1.518,825,1.345,826,1.237,827,1.287,828,1.419,829,0.899,830,1.419,831,1.345,832,1.668,833,1.518,834,1.419,835,1.419,836,1.419,837,1.345,838,1.668,839,1.668,840,1.668,841,1.668,842,1.668,843,1.668,844,1.668,845,1.668,846,1.668,847,1.668,848,1.668,849,1.668,850,1.668,851,1.668,852,2.182,853,0.268,854,1.125,855,1.345,856,1.518,857,1.345,858,1.668,859,1.668,860,1.069,861,1.668,862,1.518,863,1.518,864,1.668,865,1.668,866,1.518,867,1.668,868,1.668,869,1.668,870,1.096,871,1.668,872,1.158,873,1.668,874,1.668]],["t/98",[7,2.354,26,3.335,39,0.425,52,2.182,103,3.241,127,5.509,137,2.832,142,3.608,144,3.114,171,3.548,175,1.653,230,5.509,347,2.965,381,3.886,406,3.739,467,3.491,555,3.548,612,4.993,614,4.151,669,3.114,708,4.056,733,4.496,740,2.832,741,3.608,743,4.993,753,4.496,762,3.968,826,4.802,870,4.255]],["t/100",[3,2.513,7,1.552,10,0.962,26,2.2,27,2.513,29,2.081,38,0.483,39,0.499,52,1.439,54,1.719,58,1.236,72,2.422,97,2.232,106,4.419,142,4.696,144,2.054,151,2.966,159,2.882,171,3.487,175,1.625,227,3.293,239,2.303,243,2.806,285,3.06,343,2.617,373,1.639,382,2.966,438,3.293,555,2.34,557,2.617,632,2.422,654,2.34,657,1.889,669,4.054,711,3.293,736,5.132,739,2.966,740,2.783,741,2.38,748,2.138,826,3.168,875,3.445,876,5.792,877,3.887,878,3.445,879,3.634,880,3.887,881,3.887,882,4.272,883,3.634,884,3.634,885,2.966,886,3.445,887,3.06,888,4.272,889,4.272,890,4.272,891,4.272,892,4.272,893,3.887,894,4.272]],["t/102",[0,0.132,3,0.718,4,0.602,6,0.447,7,0.808,8,0.732,10,0.69,13,0.802,17,1.472,24,0.343,25,0.579,26,1.943,28,1.308,29,2.137,31,0.748,38,0.656,39,0.584,52,0.749,53,0.748,54,0.894,55,0.802,56,0.764,58,1.269,59,0.572,66,0.782,68,0.44,71,1.792,72,1.26,73,1.454,75,1.113,83,1.706,91,1.962,92,0.383,93,0.546,96,0.602,97,0.638,103,1.113,105,1.354,108,0.718,110,1.543,118,2.193,122,1.492,125,2.58,126,1.113,137,0.534,140,0.692,142,5.649,144,1.069,145,0.823,156,0.905,157,0.782,171,2.067,173,0.718,174,1.837,182,0.324,190,0.546,197,0.802,210,0.962,217,0.899,232,1.425,236,0.984,284,0.546,285,0.874,286,0.874,297,0.732,298,0.638,327,1.038,330,1.943,331,1.11,337,1.792,345,1.917,347,0.559,359,0.874,364,1.11,365,0.984,373,0.468,393,1.038,406,0.704,411,0.941,412,0.847,418,1.26,429,0.401,499,1.5,500,0.658,518,0.704,522,0.628,555,0.668,557,2.687,562,0.922,564,0.514,565,0.823,582,0.823,585,1.038,613,1.038,623,2.126,624,0.874,626,0.718,630,0.638,646,0.732,653,0.782,654,0.668,655,0.782,657,2.562,661,0.941,662,0.905,665,1.688,666,2.798,669,2.109,704,1.038,708,1.392,714,0.546,739,3.413,740,2.354,743,0.941,749,0.984,752,1.11,753,0.847,754,0.905,756,0.704,759,0.823,786,0.905,788,1.11,796,3.434,798,0.941,803,0.823,813,0.874,816,0.905,823,0.905,825,0.984,826,1.648,829,0.658,834,1.038,835,1.038,836,1.038,837,0.984,854,0.823,855,0.984,857,0.984,862,1.11,870,0.802,876,1.11,878,0.984,887,2.193,895,1.22,896,1.038,897,1.038,898,1.22,899,1.22,900,1.22,901,0.941,902,1.038,903,1.714,904,0.718,905,0.984,906,1.11,907,1.11,908,0.984,909,2.023,910,0.984,911,1.22,912,1.22,913,1.22,914,0.874,915,0.941,916,1.22,917,1.11,918,1.11,919,1.038,920,1.11,921,1.038,922,0.941,923,1.22,924,1.038,925,0.68,926,1.22,927,0.905,928,0.874,929,0.823,930,1.22,931,1.038,932,1.22,933,1.22,934,1.22,935,1.11,936,1.038,937,1.22,938,1.11,939,1.22,940,0.823,941,1.038,942,0.941,943,1.22,944,1.22,945,1.22,946,1.22,947,1.22,948,1.11,949,1.22,950,1.11,951,1.22,952,1.891,953,1.11,954,2.223,955,0.984,956,2.223,957,1.11,958,1.22,959,1.22,960,1.22,961,1.22,962,1.22,963,1.22,964,2.023,965,1.22,966,1.22,967,1.22,968,1.22,969,1.11,970,1.22,971,0.984,972,1.22,973,1.038,974,1.11,975,1.22,976,1.22,977,1.11,978,1.11,979,1.11,980,1.22,981,1.22,982,1.22,983,1.11]],["t/104",[0,0.36,3,3.57,7,2.205,10,1.367,45,5.162,72,3.44,93,2.714,103,3.037,105,2.683,142,3.38,177,4.893,180,1.069,210,2.624,243,3.986,436,2.778,564,1.403,565,4.093,637,3.38,665,2.714,669,4.747,714,3.652,766,3.986,772,5.162,807,4.499,984,5.162,985,3.171,986,6.068,987,6.068,988,5.162,989,6.068,990,6.068]],["t/106",[39,0.561,43,0.421,52,2.879,62,2.781,84,2.371,93,2.344,99,3.084,108,3.084,138,3.282,171,2.871,175,1.884,178,4.459,180,0.923,239,2.825,373,2.011,436,2.399,458,3.639,472,4.041,499,3.536,580,3.639,626,3.084,669,4.461,748,2.623,759,3.536,765,4.459,797,3.887,863,4.77,991,4.226,992,4.226,993,4.041,994,4.77,995,4.041,996,5.242,997,3.536,998,5.242,999,5.242,1000,5.242,1001,4.77,1002,5.242,1003,4.77,1004,4.77,1005,4.459]],["t/108",[7,2.408,24,1.863,52,2.232,59,3.107,62,3.515,171,4.741,330,3.411,373,2.541,562,2.747,564,2.363,565,5.839,657,2.929,669,4.162,740,2.897,741,3.691,745,3.975,750,5.342,759,4.469,798,5.107,905,5.342,1006,6.625]],["t/110",[44,4.562,306,5.718,330,3.575,347,4.084,348,5.466,555,3.804,564,2.063,565,4.684,669,4.741,747,5.149,1007,5.599,1008,6.944,1009,6.944,1010,6.318,1011,6.944,1012,6.944,1013,4.008]],["t/112",[4,2.078,7,0.92,10,1.574,24,1.183,25,1.202,29,1.233,30,1.55,36,1.813,38,0.712,39,0.657,52,0.853,54,2.811,55,1.662,58,2.181,59,1.187,60,2.04,63,1.813,71,1.202,72,1.435,75,1.267,83,2.344,84,1.904,96,1.249,100,2.04,103,2.703,105,1.861,108,1.489,110,1.757,121,1.622,122,3.893,137,1.107,142,4.838,144,1.217,171,3.448,173,1.489,174,1.06,190,1.882,210,1.82,217,0.743,232,2.697,238,3.829,284,1.132,285,1.813,297,1.518,310,1.662,345,3.382,347,1.158,418,1.435,421,1.662,468,1.757,541,1.951,557,1.55,564,0.585,565,1.707,566,2.839,587,2.635,622,1.461,630,1.322,646,1.518,654,1.386,655,2.697,657,3.7,660,2.303,665,2.815,669,2.024,740,1.84,742,1.662,807,1.876,823,1.876,853,0.406,903,1.951,920,2.303,927,1.876,1014,3.579,1015,1.757,1016,2.531,1017,1.876,1018,2.04,1019,2.303,1020,2.531,1021,2.153,1022,2.153,1023,1.435,1024,1.41,1025,2.531,1026,2.531,1027,2.531,1028,2.531,1029,2.531,1030,2.303,1031,2.531]],["t/114",[3,3.533,4,2.965,6,2.201,23,3.945,54,2.416,58,1.737,68,2.921,72,3.404,142,3.345,175,1.533,190,4.105,330,4.175,381,3.603,522,3.092,555,3.289,657,2.655,665,3.626,669,4.727,745,3.603,804,5.464,875,4.842,1032,3.76,1033,6.538,1034,6.005,1035,5.464,1036,5.108,1037,6.005]],["t/116",[0,0.311,24,1.474,30,3.211,39,0.344,58,2.136,66,3.359,71,2.489,126,2.623,199,2.739,201,2.825,210,2.267,330,2.699,354,3.887,362,3.754,373,2.011,397,4.044,405,3.639,413,3.887,502,4.041,530,4.226,580,3.639,584,4.041,636,4.226,650,4.226,657,2.318,665,2.344,669,4.461,708,5.351,750,4.226,782,4.459,786,3.887,879,4.459,901,4.041,988,4.459,1038,4.459,1039,4.459,1040,5.242,1041,5.242,1042,5.242,1043,7.382,1044,5.242,1045,5.242]],["t/118",[6,2.777,7,1.977,10,1.964,17,4.192,26,3.901,31,3.332,52,2.937,59,2.551,68,2.729,89,3.776,97,2.842,103,2.722,125,3.2,171,2.98,343,3.332,381,4.546,657,3.35,669,4.534,706,4.193,708,3.406,741,3.03,813,3.896,826,4.033,1046,5.439,1047,4.949,1048,4.627,1049,4.949,1050,6.894,1051,5.439,1052,5.439,1053,4.949]],["t/120",[0,0.216,5,1.399,10,0.819,24,1.339,25,1.727,28,3.722,29,3.359,30,2.918,31,2.229,34,1.436,38,0.412,39,0.628,48,1.166,54,3.482,55,1.399,58,2.131,59,3.233,63,1.525,72,1.207,82,1.579,93,0.952,103,2.384,109,0.998,115,1.938,122,1.037,136,1.609,137,1.591,142,5.406,162,1.717,163,1.811,164,1.811,165,1.811,173,2.14,174,1.524,175,1.76,180,0.375,190,0.952,199,1.113,210,2.437,217,0.625,263,1.811,284,0.952,287,1.478,297,1.278,298,1.113,325,1.579,338,1.717,345,1.333,347,1.665,372,2.933,373,0.817,380,1.399,409,1.938,427,1.113,438,2.805,554,1.642,557,2.918,562,0.883,566,3.213,591,1.811,603,1.717,617,1.938,619,1.938,620,1.365,624,1.525,657,1.609,659,1.436,665,1.627,666,1.579,759,1.436,824,1.938,852,1.579,857,4.542,870,2.39,904,2.14,905,1.717,922,1.642,927,1.579,1018,2.933,1023,1.207,1054,2.129,1055,3.638,1056,2.129,1057,1.717,1058,2.129,1059,2.129,1060,1.938,1061,1.938,1062,1.938,1063,1.938,1064,1.938,1065,1.938,1066,1.938,1067,2.129,1068,1.811,1069,1.525,1070,2.129,1071,2.129,1072,2.129,1073,1.938,1074,1.717,1075,1.811,1076,1.717,1077,2.129,1078,2.129,1079,2.129,1080,1.525,1081,2.129,1082,2.129,1083,2.129,1084,2.129]],["t/122",[0,0.36,12,4.346,17,2.918,52,2.044,58,1.755,59,2.846,68,3.325,87,2.714,97,3.171,99,3.57,122,3.978,174,2.542,180,1.069,190,2.714,201,3.271,298,3.171,310,3.986,345,3.8,458,4.212,501,4.499,554,4.678,564,1.403,580,4.212,655,3.889,657,3.611,669,3.927,672,5.522,853,0.974,1085,5.522,1086,6.068]],["t/124",[6,1.904,7,1.888,17,2.498,39,0.558,52,1.75,60,5.915,68,1.871,69,2.636,122,2.531,125,3.056,137,2.271,142,2.894,144,2.498,190,2.323,217,1.525,231,4.419,243,3.412,289,4.005,306,3.329,347,2.378,348,3.182,382,3.606,555,4.018,620,3.329,657,2.297,669,4.089,735,2.07,736,4.188,740,2.271,758,4.005,789,5.655,825,4.188,870,4.819,910,4.188,991,4.188,992,4.188,1087,4.727,1088,4.188,1089,3.606,1090,3.504,1091,5.194,1092,4.419,1093,5.194]],["t/126",[0,0.38,28,3.768,39,0.42,54,2.577,75,3.206,89,4.446,92,2.01,103,3.206,122,3.12,136,2.832,137,2.801,144,3.08,217,1.88,306,4.105,312,5.828,347,2.932,468,5.876,555,3.508,620,4.105,630,3.347,632,3.631,657,2.832,669,4.071,756,3.697,875,5.164,1094,5.828,1095,4.937,1096,6.405]],["t/128",[12,4.213,28,3.461,38,0.666,39,0.386,52,1.982,99,3.461,103,2.944,106,4.084,122,2.866,136,2.601,137,2.572,175,1.501,217,1.727,347,2.693,348,4.898,557,3.604,564,1.36,620,3.77,630,3.074,632,3.335,655,3.77,657,2.601,669,3.845,756,3.396,762,3.604,789,6.164,792,5.004,995,4.535,1085,5.353,1087,5.353,1094,5.353,1095,4.535,1097,5.353,1098,4.743,1099,5.882]],["t/130",[0,0.25,17,2.024,28,2.476,39,0.588,49,2.636,68,2.268,71,1.999,74,2.698,75,2.107,87,1.883,109,1.974,122,2.051,125,2.476,126,2.107,142,6.039,151,2.922,159,2.84,173,3.704,174,2.638,217,1.236,306,2.698,330,2.168,347,1.927,348,2.579,363,2.345,368,3.015,467,2.269,499,2.84,537,2.698,562,1.746,564,1.455,565,2.84,611,2.922,612,3.245,613,3.581,614,2.698,657,1.861,666,4.668,870,2.766,922,3.245,924,3.581,991,3.394,992,3.394,1010,3.831,1060,3.831,1061,3.831,1100,3.394,1101,4.21,1102,3.831,1103,4.21,1104,3.831,1105,4.21,1106,4.21,1107,2.922,1108,4.21,1109,4.21]],["t/132",[6,2.833,27,3.293,38,0.633,39,0.507,52,2.604,70,3.231,144,2.692,171,3.066,192,3.677,363,3.118,394,5.093,406,3.231,582,3.776,620,3.587,622,3.231,657,2.475,669,3.716,740,3.379,741,4.305,745,3.359,803,3.776,813,4.009,893,5.093,914,4.009,1110,5.597,1111,4.315,1112,5.597,1113,5.597,1114,5.597,1115,5.597,1116,5.597,1117,4.315,1118,5.597,1119,5.597,1120,7.728,1121,5.597]],["t/134",[52,2.458,93,3.262,97,3.812,142,4.064,177,5.882,194,6.638,210,3.155,382,5.064,566,4.921,708,4.568,740,3.19,807,5.409,903,5.624,1122,7.295,1123,6.638,1124,7.295,1125,6.638,1126,7.295,1127,7.295]],["t/136",[0,0.367,7,2.252,10,1.866,17,2.981,36,4.44,39,0.407,52,2.088,63,4.44,65,5.64,68,2.233,100,4.998,145,4.181,171,4.537,175,1.582,182,1.648,397,3.395,466,4.181,544,5.64,657,2.741,708,3.881,741,3.453,754,4.596,931,5.272,1050,5.64,1125,5.64,1128,6.198,1129,6.198,1130,6.198,1131,5.64,1132,6.198,1133,5.64]],["t/138",[0,0.455,86,3.695,175,2.427,190,3.436,330,3.956,359,5.503,380,5.047,562,3.186,636,6.195,669,3.695,782,6.535,787,5.697,821,5.923,1134,7.683]],["t/140",[10,1.546,52,2.312,53,4.203,55,4.507,86,3.3,99,4.036,175,1.751,243,4.507,373,2.632,380,4.507,499,4.628,557,4.203,562,2.845,669,3.3,741,3.822,744,5.836,787,5.087,791,5.836,822,5.532,942,5.29,1135,6.861,1136,6.861,1137,6.861,1138,6.861]],["t/142",[7,1.676,10,1.039,17,2.219,24,1.894,26,2.375,37,3.924,39,0.303,59,2.163,68,2.427,97,2.411,102,3.421,110,3.203,144,2.219,171,3.69,173,2.714,174,1.933,175,1.719,190,3.013,289,3.557,300,2.957,366,3.031,397,2.527,413,3.421,414,3.421,423,3.72,534,2.663,562,1.913,594,3.72,608,2.248,632,2.615,657,2.04,738,2.826,740,2.946,762,2.826,766,3.031,787,3.421,798,3.557,807,3.421,853,1.277,875,3.72,904,2.714,927,3.421,1003,4.198,1004,4.198,1139,4.613,1140,3.326,1141,2.342,1142,4.198,1143,4.613,1144,3.924,1145,3.924,1146,4.613,1147,4.613,1148,4.613,1149,2.826,1150,4.613]],["t/144",[5,4.981,52,2.554,56,5.907,75,3.795,93,3.391,171,5.167,175,1.935,354,5.622,657,3.353,711,5.845,957,6.899,995,5.845,1151,5.431,1152,7.582]],["t/146",[10,1.854,362,5.895,363,4.585,564,1.903,658,7.001,700,7.489,719,6.636,797,6.103,1005,7.001,1153,7.489]],["t/148",[24,1.21,25,2.044,26,3.296,27,2.532,39,0.282,50,3.47,52,1.45,55,4.205,63,3.083,71,2.044,84,1.947,97,3.345,157,2.758,171,2.358,180,1.128,210,1.861,284,1.925,297,2.582,298,2.249,326,2.532,338,3.47,343,2.637,363,2.398,368,3.083,383,1.682,397,2.358,406,2.484,434,3.191,522,2.216,534,2.484,561,3.083,562,2.654,566,2.903,570,3.083,589,3.47,654,3.506,657,1.903,658,3.661,665,2.862,714,1.925,740,1.882,745,2.582,753,2.988,763,3.191,764,3.318,827,2.799,872,2.988,897,3.661,904,4.495,984,3.661,1154,3.916,1155,3.661,1156,3.396,1157,3.191,1158,3.916,1159,3.916,1160,4.318,1161,4.304,1162,4.304,1163,4.304,1164,3.916,1165,3.661]],["t/150",[25,4.274,27,5.295,669,4.328,813,6.447]],["t/152",[142,4.79,301,4.874,405,5.969,413,6.376,414,6.376,515,6.629,1092,7.314]],["t/154",[4,1.747,6,1.297,24,1.904,27,2.082,38,0.624,39,0.502,52,1.192,58,1.595,71,3.217,103,2.76,118,2.535,122,2.686,126,1.771,135,1.771,137,1.547,142,6.096,144,1.702,174,1.483,175,1.729,289,2.728,301,3.84,347,2.524,348,2.168,363,1.971,471,2.853,522,1.822,561,2.535,562,1.467,564,1.566,622,2.043,665,1.583,722,3.01,723,2.006,731,2.728,740,2.411,741,1.971,766,2.325,786,2.624,800,3.22,904,2.082,908,2.853,984,3.01,995,2.728,1005,3.01,1053,3.22,1092,3.01,1100,2.853,1111,2.728,1166,3.22,1167,2.268,1168,3.01,1169,3.539,1170,3.539,1171,3.539,1172,3.539,1173,3.22,1174,2.853,1175,3.539,1176,3.01,1177,3.539,1178,3.539,1179,2.728,1180,3.22,1181,3.22,1182,3.01,1183,3.22,1184,3.539]],["t/156",[39,0.491,48,4.1,108,4.403,366,4.916,561,5.36,562,3.88,665,3.347,821,5.77,935,6.81,1100,6.034,1185,5.549,1186,7.484,1187,4.491,1188,6.034,1189,6.366,1190,6.81]],["t/158",[0,0.432,7,2.649,38,0.825,39,0.68,43,0.585,46,2.448,68,1.855,69,4.671,104,2.444,117,4.917,139,3.029,175,2.16,217,1.511,250,7.224,609,2.416,622,4.208,657,2.276,827,2.251,853,0.826,1191,4.151,1192,7.289,1193,7.289,1194,7.289,1195,4.685]],["t/160",[38,0.945,58,2.415,144,4.015,149,4.5,180,1.471,211,6.732,626,4.912,665,3.734,1014,7.102]],["t/162",[0,0.598,6,2.872,10,1.286,38,1.012,39,0.662,43,0.718,58,1.651,87,3.999,144,2.745,149,4.82,217,1.675,373,2.189,428,2.093,548,4.232,626,3.358,652,3.464,668,4.673,732,3.295,1196,3.497,1197,4.232,1198,5.708]],["t/164",[0,0.584,6,2.741,10,1.203,38,1.058,39,0.722,43,0.693,54,3.763,58,1.544,128,2.924,144,2.567,149,4.652,548,3.958,626,3.141,652,3.307,654,2.924,732,3.082,1199,3.601,1200,6.654,1201,3.343,1202,4.858,1203,4.858]],["t/166",[0,0.571,6,2.872,10,1.286,38,1.012,39,0.7,43,0.629,49,3.574,54,3.152,58,1.651,128,3.127,144,2.745,149,4.82,213,3.75,548,4.232,626,3.358,652,2.524,654,3.127,1160,6.033,1200,6.039,1202,5.194,1203,5.194,1204,5.708]],["t/168",[0,0.417,10,2.026,13,5.907,38,0.795,39,0.709,43,0.564,58,2.033,92,2.822,173,4.135,174,2.944,387,5.667,611,4.879,614,4.504,809,5.034,1014,5.978]],["t/170",[0,0.51,71,4.083,137,3.76,411,6.629,595,6.933,740,3.76,1205,8.598]],["t/173",[0,0.335,5,3.713,24,1.589,38,1.137,39,0.682,43,0.625,46,1.635,54,2.274,128,3.096,182,1.503,243,3.713,284,2.528,428,2.072,431,2.587,609,2.579,622,4.491,629,3.325,739,5.401,740,2.472,748,2.829,887,7.199,1023,3.204,1111,4.357,1185,4.191,1206,4.808]],["t/175",[0,0.273,10,1.039,24,1.297,38,0.9,39,0.658,43,0.541,54,1.856,58,2.531,68,2.427,72,3.819,78,4.544,81,3.304,97,2.411,125,5.474,126,2.309,128,2.527,137,2.017,144,2.219,182,1.227,199,2.411,210,1.995,283,3.421,284,2.063,300,2.957,347,2.112,354,3.421,564,1.066,622,2.663,739,4.676,740,2.946,748,2.309,790,4.198,872,3.203,914,3.304,915,3.557,917,4.198,1023,2.615,1068,3.924,1111,3.557,1185,3.421,1207,3.203,1208,4.613,1209,4.613,1210,3.924]],["t/177",[0,0.325,38,0.621,39,0.726,43,0.612,58,2.206,128,3.008,217,2.779,284,2.456,347,2.513,354,4.071,430,2.869,622,3.17,626,3.23,652,2.428,654,5.186,714,2.456,739,3.812,740,2.401,748,2.748,809,3.933,1017,4.071,1111,4.233,1211,4.427,1212,4.233,1213,6.149,1214,4.671,1215,5.491]],["t/179",[0,0.332,38,0.633,39,0.68,43,0.621,109,3.624,144,2.692,210,4.479,217,1.643,284,2.503,412,3.886,429,1.841,431,2.562,564,1.294,566,5.971,609,2.562,626,3.293,645,4.761,665,2.503,740,2.448,748,2.802,749,6.231,887,6.837,993,4.315,1216,5.597]],["t/181",[0,0.364,7,3.603,27,4.838,39,0.678,43,0.66,46,2.379,103,3.069,182,1.63,187,3.93,239,3.305,284,2.743,430,3.205,431,2.807,592,5.58,740,2.682,748,3.069,798,6.34,907,5.58,1214,5.216,1217,6.132,1218,8.224,1219,5.58]],["t/183",[0,0.345,38,0.659,39,0.593,43,0.638,46,1.685,53,3.567,87,2.604,105,2.575,175,2.027,190,4.34,284,2.604,366,5.217,427,3.043,428,3.313,429,2.612,430,4.722,431,2.666,438,4.489,668,3.043,740,2.546,748,2.915,914,4.171,1220,5.823,1221,7.941,1222,4.489]],["t/185",[0,0.464,7,2.074,10,1.286,22,2.939,25,2.71,39,0.684,43,0.629,44,3.75,52,1.923,83,5.362,93,2.553,108,3.358,116,4.855,130,4.855,182,1.518,189,6.316,284,2.553,286,4.088,360,7.128,406,3.295,458,3.962,740,2.496,748,2.857,1080,4.088,1207,3.962,1223,5.708,1224,5.708,1225,5.708,1226,5.194]],["t/187",[0,0.371,7,2.277,38,0.944,39,0.683,43,0.67,98,4.116,106,5.791,182,1.666,214,5.33,284,2.802,623,6.511,624,4.488,733,4.349,740,2.74,748,3.136,1165,5.33,1201,5.224,1207,4.349,1227,8.342,1228,6.266,1229,6.266]],["t/189",[0,0.427,4,2.497,7,2.616,10,1.621,24,2.024,25,3.418,39,0.55,43,0.578,68,1.822,72,2.867,78,3.412,81,3.623,83,2.818,93,2.262,105,3.183,118,5.156,126,2.532,135,2.532,137,2.212,140,2.867,157,3.242,162,4.078,182,1.345,199,2.643,210,2.188,284,2.262,300,3.242,301,4.081,347,2.315,382,3.511,659,3.412,740,3.148,748,2.532,872,3.511,914,3.623,915,3.899,977,4.602,1080,3.623,1207,3.511,1230,6.55,1231,4.602]],["t/191",[0,0.295,4,2.454,10,1.87,25,2.36,29,4.044,38,0.804,39,0.629,43,0.571,54,3.645,68,1.791,72,2.818,78,3.353,81,3.56,83,2.769,91,3.186,105,3.144,118,5.092,126,2.488,135,2.488,137,2.174,144,2.39,157,3.186,182,1.322,199,2.598,210,2.15,284,2.223,300,3.186,347,2.275,382,3.451,740,3.109,748,2.488,872,3.451,914,3.56,915,3.832,979,4.523,1207,3.451,1211,5.733,1231,4.523,1232,4.523]],["t/193",[0,0.438,3,5.027,6,2.706,7,1.905,10,1.181,39,0.561,43,0.593,68,1.888,72,2.971,78,3.536,81,3.754,105,3.264,118,5.288,126,2.623,137,3.228,140,2.971,182,1.394,199,2.739,210,2.267,245,3.359,284,2.344,300,3.359,343,3.211,347,2.399,562,3.061,609,2.447,659,3.536,740,3.228,748,2.623,872,3.639,914,3.754,915,4.041,978,4.77,1207,3.639,1233,7.382,1234,5.242]],["t/195",[0,0.373,10,0.948,17,4.818,26,3.883,38,0.712,39,0.639,43,0.605,46,1.821,61,3.394,90,2.168,101,3.245,105,1.861,106,2.922,146,2.526,182,2.5,239,2.269,243,2.766,284,1.883,310,2.766,428,1.543,429,2.947,431,1.927,516,3.394,535,3.015,541,3.245,605,3.394,740,3.298,746,3.831,748,2.107,816,7.225,817,3.831,818,3.831,877,3.831,1222,3.245,1235,4.21,1236,8.369,1237,4.21]],["t/197",[0,0.356,25,2.851,39,0.674,43,0.651,83,3.345,94,5.108,125,6.469,126,3.005,146,3.603,151,4.169,182,2.156,284,2.685,345,3.76,412,4.169,428,2.201,622,3.466,740,2.626,748,3.005,815,6.897,1023,3.404,1155,5.108,1206,5.108]],["t/199",[0,0.338,38,0.646,39,0.632,43,0.629,46,1.651,175,2.457,180,1.696,217,2.299,284,2.553,412,3.962,429,2.576,431,2.613,622,4.522,668,4.093,740,2.496,748,2.857,819,8.187,820,7.607,1222,4.401,1238,4.855,1239,7.128]],["t/201",[7,2.908,56,5.011,97,4.182,137,3.499,210,3.461,347,3.663,595,6.452,732,4.619,740,3.499,751,6.807,1191,6.452,1240,6.169]],["t/203",[0,0.392,3,3.895,10,1.015,38,0.749,39,0.568,43,0.532,46,1.303,52,2.23,56,2.821,91,5.03,97,2.354,102,3.341,105,2.927,108,2.65,117,3.039,118,4.742,126,4.613,137,1.97,210,3.395,227,3.473,232,2.887,428,1.652,431,2.062,458,3.128,557,2.76,609,1.494,739,4.596,740,4.03,784,3.227,887,6.196,921,7.359,1240,6.669,1241,4.505,1242,4.505,1243,4.505,1244,4.505]],["t/205",[0,0.393,7,2.408,9,4.599,38,0.979,39,0.568,43,0.532,46,1.917,82,4.912,91,6.178,102,4.912,243,5.686,310,4.352,423,5.342,431,3.033,609,2.196,740,2.897,887,6.199,921,7.362,1245,6.418]],["t/207",[0,0.525,22,2.434,28,5.206,39,0.703,43,0.648,46,1.983,54,1.902,59,2.217,70,2.728,109,2.217,121,4.394,182,1.823,225,2.96,428,1.733,429,1.555,431,3.138,436,3.693,461,3.105,655,3.029,909,4.301,910,3.811,1196,2.896,1246,5.832,1247,5.528,1248,5.528,1249,5.528,1250,5.832,1251,6.239,1252,6.239,1253,4.727,1254,4.727,1255,4.301]],["t/209",[0,0.412,10,1.564,28,5.249,29,4.347,39,0.585,43,0.558,46,2.009,59,3.256,121,4.45,182,1.846,372,5.599,659,4.684,827,3.036,1062,6.318,1246,5.906,1247,5.599,1248,5.599,1249,5.599,1250,5.906,1255,6.318]],["t/211",[0,0.375,28,4.943,39,0.416,43,0.509,46,2.431,54,3.381,70,3.656,111,3.656,121,4.06,182,1.684,217,1.859,522,4.327,524,5.833,910,5.107,1063,5.764,1064,5.764,1065,5.764,1246,5.388,1247,6.776,1248,5.107,1249,5.107,1256,6.334,1257,5.107,1258,6.334,1259,6.334]],["t/213",[0,0.432,28,5.416,39,0.662,43,0.586,46,2.11,121,4.675,182,1.939,428,2.674,429,2.399,1247,5.882,1248,5.882,1249,5.882,1250,6.205,1251,6.638,1252,6.638,1260,6.205]],["t/215",[10,1.778,25,3.748,28,5.688,83,4.397,93,3.53,126,3.951,136,3.49,140,4.474,161,7.182,298,4.125,646,4.736,647,5.853]],["t/217",[0,0.568,7,2.38,9,4.547,10,1.935,25,3.11,39,0.564,43,0.77,70,3.781,71,3.11,83,3.649,125,5.986,126,3.278,139,3.853,144,3.15,182,2.284,555,3.588,622,3.781,973,5.571]],["t/219",[0,0.356,25,2.851,39,0.674,43,0.651,83,3.345,125,6.469,126,3.005,146,3.603,151,4.169,182,2.156,284,2.685,345,3.76,428,2.201,622,3.466,740,3.545,748,3.005,815,7.809,1023,3.404,1155,5.108,1206,5.108]],["t/221",[0,0.388,3,2.61,4,2.19,6,1.626,7,2.827,10,1.474,24,1.247,38,0.741,39,0.703,43,0.526,46,1.894,48,2.43,58,1.283,59,2.08,99,2.61,139,2.61,182,2.068,217,2.283,343,2.718,358,2.778,368,4.688,395,2.515,412,3.08,428,2.852,429,2.558,472,3.42,598,2.778,609,2.579,652,3.797,1157,3.289,1245,3.289,1261,6.545,1262,3.289,1263,4.037,1264,3.42,1265,3.773]],["t/223",[0,0.434,7,2.204,20,3.645,22,3.122,24,1.126,31,5.652,34,4.937,38,0.686,39,0.687,43,0.588,46,2.669,58,1.159,62,2.125,85,2.508,103,2.005,108,5.158,175,2.238,180,1.625,239,2.159,343,3.715,348,2.454,358,2.508,418,2.27,429,2.407,584,3.088,668,4.821,826,2.97,1238,6.225,1262,2.97,1266,4.005,1267,4.005,1268,4.005]],["t/225",[10,1.778,25,3.748,31,5.924,83,4.397,93,3.53,126,3.951,136,3.49,140,4.474,165,6.714,298,4.125,646,4.736,647,5.853]],["t/227",[0,0.382,10,0.977,38,0.491,39,0.557,42,2.779,43,0.517,58,2.22,106,3.01,122,2.113,191,5.475,217,2.888,256,6.83,357,3.946,553,3.496,562,2.669,564,1.002,598,1.549,609,1.438,637,4.731,652,4.565,668,3.363,714,3.798,759,2.925,1015,3.01,1269,4.336,1270,3.01,1271,4.336,1272,6.436,1273,4.996,1274,4.336,1275,4.336,1276,4.336,1277,4.336]],["t/229",[3,3.853,4,3.234,6,2.401,23,6.941,48,3.588,58,2.485,156,4.857,564,2.216,642,4.691,1032,6.003,1033,8.519,1264,5.05,1278,5.644,1279,6.55]],["t/231",[0,0.322,10,1.707,38,0.615,39,0.619,43,0.437,46,1.573,54,2.188,68,1.959,75,2.722,90,2.801,93,2.432,104,2.583,108,5.831,119,3.083,135,4.719,136,2.405,175,1.388,182,1.446,190,3.899,254,4.627,358,3.406,429,2.492,564,1.257,565,3.669,742,3.573,1280,6.894,1281,6.109,1282,4.949,1283,6.444]],["t/233",[0,0.342,10,1.777,19,5.246,38,0.652,39,0.59,43,0.463,46,1.668,54,2.32,75,2.885,104,2.737,108,5.954,135,4.837,175,1.471,182,1.533,190,4.02,254,4.904,429,2.594,518,3.328,629,3.391,742,3.787,1280,5.246,1281,6.359,1282,5.246,1283,4.904,1284,5.765,1285,5.765]],["t/235",[38,0.945,48,4.574,175,2.131,301,4.733,330,4.299,589,6.732,1286,5.633,1287,8.35,1288,8.35]],["t/237",[0,0.484,6,1.468,8,2.403,10,0.902,22,2.062,38,0.992,39,0.696,43,0.588,46,1.754,53,2.454,59,1.878,68,1.443,87,1.791,117,2.702,122,1.951,149,3.944,175,1.548,180,1.289,182,1.612,190,1.791,210,1.732,412,2.78,566,2.702,621,5.158,632,2.27,646,2.403,665,3.273,668,3.824,730,3.23,762,2.454,821,4.675,822,3.23,823,2.97,1260,3.407,1289,5.518,1290,5.518,1291,6.064,1292,4.005,1293,6.064,1294,6.064,1295,6.064,1296,3.407,1297,4.005,1298,4.005,1299,3.407]],["t/239",[0,0.402,38,0.904,39,0.613,43,0.642,46,1.96,109,3.749,172,3.75,175,2.383,180,1.645,210,2.011,217,1.989,284,2.08,348,2.849,395,2.636,401,3.956,429,2.228,431,2.129,458,3.228,566,3.137,587,2.912,622,3.911,668,4.59,740,3.495,748,2.328,819,7.471,820,6.799,1222,3.585,1238,5.764,1239,6.166]],["t/241",[0,0.468,38,0.652,39,0.686,43,0.633,46,2.796,54,2.32,58,1.668,175,2.294,286,4.129,358,3.61,390,4.648,438,6.08,609,2.615,632,3.268,1210,8.609,1300,5.246,1301,5.765,1302,7.887,1303,7.887,1304,5.765]],["t/243",[0,0.502,119,4.803,171,4.641,554,6.532,852,6.282,1066,7.709,1219,7.709,1305,7.709]],["t/245",[0,0.395,6,1.665,7,2.42,10,1.023,24,1.277,34,3.063,38,0.753,39,0.607,43,0.535,46,2.795,58,1.926,59,2.129,98,2.983,103,2.273,175,2.549,298,2.373,301,2.574,326,2.671,381,2.725,522,4.06,637,2.53,642,3.252,652,2.944,657,2.008,742,2.983,765,3.862,853,0.728,872,3.152,1154,4.132,1180,4.132,1262,3.367,1306,4.541,1307,4.541,1308,4.541,1309,4.541,1310,4.541,1311,4.541,1312,4.541,1313,4.541,1314,4.541,1315,3.252,1316,4.132,1317,4.541,1318,3.862]],["t/247",[0,0.397,10,1.51,38,0.758,39,0.674,43,0.538,46,1.939,58,1.939,59,3.143,105,2.963,175,2.474,213,4.403,325,6.466,522,3.451,609,2.222,622,3.869,652,2.963,1319,4.969,1320,6.702,1321,6.702,1322,6.702]],["t/249",[0,0.432,4,2.542,5,5.559,6,1.887,22,2.651,24,2.731,29,2.508,38,0.825,39,0.662,43,0.413,46,1.489,54,2.071,73,2.444,87,2.302,90,2.651,119,2.918,139,3.029,149,2.775,175,1.86,325,3.817,373,1.975,522,2.651,562,3.509,735,2.051,1173,4.685,1199,4.917,1323,5.148,1324,4.379,1325,3.224,1326,3.969,1327,3.817,1328,3.969,1329,5.148,1330,3.299,1331,5.148]],["t/251",[0,0.335,24,1.589,29,4.897,31,3.463,38,0.88,39,0.629,43,0.454,46,2.574,54,3.58,58,1.635,92,1.774,103,3.894,122,2.754,175,1.986,287,3.924,418,3.204,1017,4.191,1199,3.813,1325,3.539,1326,4.357,1327,4.191,1328,4.357,1332,5.652,1333,5.652,1334,5.652,1335,5.652,1336,5.652,1337,5.652]],["t/253",[0,0.432,10,1.643,29,4.486,38,0.825,39,0.604,43,0.586,46,2.664,54,2.935,144,3.508,175,1.862,232,4.675,626,4.291,665,3.262,1325,4.568,1326,5.624,1327,5.409]],["t/255",[0,0.375,22,3.262,24,1.781,29,4.594,30,3.881,38,0.717,39,0.619,43,0.509,46,2.431,103,3.17,107,3.801,122,3.086,182,2.234,654,3.47,759,5.669,1200,4.883,1325,6.289,1338,7.148,1339,5.388,1340,6.334]],["t/257",[0,0.278,10,1.056,17,2.255,24,1.318,29,3.321,30,5.401,34,3.163,38,0.771,39,0.579,42,3.005,43,0.376,46,2.55,54,1.886,59,2.199,90,2.414,110,4.731,122,2.284,144,2.255,175,2.05,199,2.45,339,3.988,354,3.476,373,3.382,408,3.614,522,2.414,665,3.048,759,3.163,853,0.752,1017,3.476,1073,4.266,1199,3.163,1324,3.988,1325,4.268,1326,5.255,1327,3.476,1328,3.614,1338,5.798,1341,4.688,1342,4.688,1343,4.688,1344,3.988,1345,4.688]],["t/259",[0,0.446,24,1.515,29,3.667,38,0.61,39,0.569,43,0.433,46,2.509,54,3.028,62,2.859,107,3.233,175,1.921,180,0.949,199,2.816,653,5.559,654,4.123,655,3.453,827,2.356,1199,3.635,1200,6.687,1201,4.713,1325,4.713,1326,4.154,1327,3.995,1328,4.154,1339,4.583,1344,4.583,1346,5.803,1347,6.849,1348,4.903,1349,4.903]],["t/261",[0,0.458,24,1.574,29,2.727,38,0.633,39,0.367,43,0.449,46,2.561,54,2.252,58,1.619,59,2.625,69,2.841,175,1.973,180,0.986,190,2.503,217,1.643,390,4.513,416,5.093,522,2.882,626,3.293,653,3.587,654,3.066,827,2.448,1144,4.761,1199,3.776,1200,4.315,1201,4.839,1324,4.761,1325,4.839,1328,4.315,1339,4.761,1344,4.761,1347,5.093,1348,5.093,1349,5.093,1350,5.093,1351,5.597,1352,5.093]],["t/263",[0,0.363,3,2.389,4,2.005,6,2.247,10,1.381,24,2.075,29,4.298,32,2.74,38,0.835,39,0.484,43,0.492,46,2.135,58,1.175,73,1.929,79,2.909,84,1.837,90,2.091,99,2.389,173,2.389,174,1.702,175,1.564,343,2.488,383,3.213,395,2.302,500,2.189,504,3.012,562,2.541,563,5.577,735,1.618,759,2.74,905,7.763,1325,5.147,1338,8.431,1353,4.544,1354,4.062,1355,5.577,1356,6.129,1357,4.062,1358,3.696,1359,3.696,1360,3.696]],["t/265",[24,2.452,25,3.182,29,4.249,30,5.342,39,0.636,59,3.143,83,3.734,126,3.354,135,3.354,136,2.963,140,3.799,162,5.404,163,5.701,164,5.701,284,2.997,382,4.652,646,4.021,647,4.969,1232,6.098,1361,6.702,1362,6.702]],["t/268",[0,0.41,9,2.534,10,1.272,38,0.782,39,0.629,43,0.454,46,1.056,52,1.903,54,1.469,59,1.712,75,1.827,103,1.827,104,2.682,136,1.614,138,2.286,157,2.34,175,0.932,180,0.995,286,2.615,298,1.908,359,2.615,395,2.07,411,2.814,436,1.671,562,1.514,570,4.046,581,5.14,611,2.534,654,2,655,3.62,657,1.614,659,3.811,665,1.633,745,2.191,753,2.534,763,2.707,764,2.814,827,3.678,897,3.105,904,3.323,1022,3.105,1151,2.615,1164,3.322,1167,3.62,1226,3.322,1300,3.322,1363,3.105,1364,3.105,1365,3.651,1366,3.322,1367,3.651,1368,3.651,1369,3.105,1370,3.651,1371,3.651,1372,5.649,1373,3.651,1374,3.651,1375,3.651,1376,3.651,1377,3.651,1378,5.649,1379,3.651,1380,3.651,1381,3.651,1382,3.651,1383,2.944,1384,3.322,1385,3.651,1386,3.651]],["t/270",[0,0.538,6,1.59,10,1.45,23,2.849,38,0.491,39,0.557,43,0.682,46,1.862,48,2.375,71,2.059,73,2.059,87,2.878,90,2.233,93,1.939,117,2.925,149,3.469,175,1.643,180,1.134,182,2.041,217,1.273,358,2.715,373,1.663,421,2.849,429,2.117,504,3.215,522,2.233,626,2.551,668,3.363,669,2.085,753,3.01,809,3.106,827,3.713,852,4.772,1278,2.849,1383,3.496,1387,4.336,1388,4.336,1389,4.336,1390,4.336,1391,4.336,1392,3.106,1393,4.336,1394,4.336,1395,4.336,1396,3.946,1397,4.336,1398,4.336,1399,4.336,1400,4.336]],["t/272",[0,0.51,97,4.493,119,4.874,132,5.058,138,5.384,1039,7.314,1189,7.314]],["t/274",[0,0.412,7,2.523,22,3.575,38,0.786,39,0.585,43,0.558,104,3.297,119,3.936,137,3.036,557,4.254,883,5.906,1100,5.599,1160,4.684,1189,5.906,1401,8.923,1402,5.599,1403,6.944,1404,6.318,1405,6.944,1406,6.944,1407,6.944]],["t/276",[0,0.55,6,2.248,7,2.988,38,0.93,39,0.651,43,0.66,62,4.363,104,3.905,109,3.856,287,4.257,467,3.305,502,4.728,1160,5.547,1404,7.483,1408,4.838,1409,5.58,1410,6.132,1411,6.132,1412,6.132,1413,4.945]],["t/278",[0,0.436,6,1.479,38,0.927,39,0.738,43,0.489,59,1.891,61,6.604,90,2.077,98,5.381,122,1.965,151,2.8,217,1.789,223,3.109,340,3.252,390,3.252,412,2.8,564,1.893,565,4.958,622,2.328,646,2.42,648,2.42,665,2.726,731,6.315,762,2.471,771,2.554,974,3.67,1201,5.129,1414,8.191,1415,4.033,1416,6.096,1417,3.67,1418,4.033,1419,2.8,1420,2.373,1421,4.033]],["t/280",[17,4.015,24,2.347,25,3.965,26,5.152,68,3.008,70,4.82,239,4.5,1319,6.191]],["t/282",[0,0.41,10,1.077,17,5.046,26,3.909,38,0.782,39,0.498,43,0.555,46,2.001,68,2.491,103,1.481,104,2.859,122,2.33,132,3.542,182,2.444,213,1.944,217,2.612,239,1.595,284,2.693,306,1.896,358,1.853,383,1.156,405,3.32,406,5.137,424,1.944,428,2.207,429,2.497,430,2.499,431,3.165,432,2.692,433,4.352,434,2.194,535,3.426,629,3.542,656,2.692,805,2.054,813,2.119,816,4.464,1363,2.517,1422,6.915,1423,2.517,1424,4.783,1425,2.692,1426,2.959,1427,2.959,1428,2.517]],["t/284",[0,0.445,10,0.941,17,4.675,23,2.745,26,3.866,38,0.473,39,0.547,43,0.603,46,2.412,53,2.56,57,3.803,59,1.96,90,2.152,175,1.067,180,0.736,182,1.111,217,1.227,298,2.184,330,2.152,373,1.603,383,2.447,406,5.156,421,2.745,428,2.295,429,1.374,430,2.184,431,1.913,522,2.152,652,2.769,665,1.869,786,3.099,816,3.099,1196,3.836,1201,6.26,1429,4.179,1430,3.803,1431,4.179,1432,4.179,1433,4.179,1434,6.261,1435,3.803,1436,4.179,1437,6.261]],["t/286",[0,0.324,17,4.542,26,1.8,38,0.618,39,0.706,43,0.439,46,1.944,59,1.639,62,1.855,68,2.421,69,1.774,90,1.8,93,1.563,104,1.66,110,2.427,136,1.546,145,2.358,175,0.892,182,2.192,217,1.603,239,2.944,284,1.563,330,1.8,339,2.974,421,2.297,428,2.785,429,1.796,430,3.513,431,1.6,535,4.814,555,1.915,665,1.563,730,2.819,766,2.297,797,2.592,805,2.427,816,2.592,827,2.388,919,2.974,1048,2.974,1196,4.118,1296,2.974,1318,2.974,1423,2.974,1438,3.496,1439,3.496,1440,3.496,1441,5.462,1442,3.496,1443,3.496,1444,3.496,1445,3.496,1446,3.496,1447,3.496,1448,3.496,1449,3.496,1450,3.496,1451,3.496]],["t/288",[10,1.778,25,3.748,26,4.979,83,4.397,93,3.53,126,3.951,136,3.49,140,4.474,154,7.182,298,4.125,646,4.736,647,5.853]],["t/290",[0,0.29,3,2.875,4,2.413,6,1.791,7,1.776,10,1.101,38,0.553,39,0.59,43,0.392,46,1.414,48,2.677,104,3.335,182,1.299,461,3.21,564,1.9,598,1.745,608,2.381,609,1.62,642,3.5,657,2.161,742,4.614,754,3.623,827,2.137,904,5.601,985,4.296,1131,4.447,1140,2.413,1156,2.593,1174,5.663,1187,4.214,1264,3.767,1350,4.447,1452,4.447,1453,4.887,1454,3.94,1455,4.887,1456,4.447,1457,4.887,1458,4.887,1459,4.447,1460,4.887,1461,4.887,1462,4.887]],["t/292",[0,0.382,17,4.732,26,2.233,32,2.925,33,3.343,38,0.728,39,0.689,43,0.348,46,2.624,52,1.461,69,2.201,149,2.337,175,1.643,180,1.352,187,4.919,557,2.656,711,3.343,827,1.896,1095,4.962,1196,2.656,1197,4.772,1211,3.496,1212,3.343,1213,3.496,1353,3.215,1463,4.336,1464,4.336,1465,4.336,1466,6.436,1467,3.946,1468,3.946,1469,4.336,1470,4.336,1471,4.336,1472,4.336,1473,4.336,1474,4.336,1475,6.436,1476,4.336,1477,4.336,1478,4.336,1479,4.336,1480,4.336]],["t/294",[10,1.731,25,3.648,32,5.183,33,5.923,83,4.28,93,3.436,126,3.845,136,3.397,140,4.355,166,6.991,167,6.991,298,4.015,646,4.61,647,5.697,1481,5.183]],["t/296",[0,0.481,7,2.946,24,2.279,25,2.851,32,4.051,38,0.917,39,0.71,43,0.651,46,1.737,87,2.685,139,3.533,186,7.926,636,4.842,665,2.685,668,5.137,766,3.945,1195,5.464,1262,4.453,1358,5.464]],["t/298",[0,0.407,38,1.109,39,0.704,43,0.551,46,1.985,59,3.218,186,5.532,646,4.117,665,3.96,668,5.123,766,4.507,1196,4.203,1197,6.565,1482,6.861]],["t/300",[0,0.452,8,3.295,10,1.237,17,2.641,38,0.863,39,0.653,43,0.612,99,3.23,136,2.428,182,2.33,186,4.427,217,1.612,286,3.933,383,2.981,555,3.008,665,3.411,668,3.985,750,4.427,766,3.607,827,3.335,919,4.671,1315,3.933,1316,4.996,1330,6.375,1423,4.671,1483,5.491,1484,4.427,1485,5.491]],["t/302",[0,0.398,24,0.983,32,2.358,38,0.86,39,0.684,43,0.54,46,1.58,54,2.197,58,2.732,125,2.057,130,2.974,140,1.982,144,1.681,174,1.465,182,1.452,217,2.23,418,4.307,428,1.282,429,1.15,570,5.904,587,2.189,598,1.249,609,1.159,620,3.5,623,2.427,627,2.819,657,1.546,714,2.443,791,2.974,1023,1.982,1183,3.181,1214,4.646,1222,2.695,1240,2.695,1486,8.833,1487,3.496,1488,2.819,1489,3.496,1490,3.496,1491,3.496,1492,3.496,1493,3.181,1494,3.496,1495,3.496,1496,3.496,1497,3.496,1498,2.974,1499,3.496,1500,3.496,1501,3.496,1502,3.496,1503,3.496,1504,3.496,1505,3.496,1506,3.496]],["t/304",[6,3.197,10,1.51,12,4.8,58,1.939,64,5.701,66,4.295,140,4.943,174,2.808,175,1.711,310,4.403,326,3.943,337,5.404,359,4.8,373,2.571,380,4.403,500,3.612,601,4.521,627,5.404,642,4.8,655,4.295,747,4.969,971,5.404,1488,5.404,1498,5.701]],["t/306",[0,0.455,6,2.817,39,0.504,175,1.961,363,4.28,708,4.811,754,5.697,1157,7.052,1265,8.09,1319,5.697,1507,7.683,1508,7.683,1509,6.535]],["t/308",[43,0.433,58,2.177,79,3.859,144,4.171,175,1.375,180,0.949,217,1.582,301,3.055,329,4.903,368,3.859,395,3.055,408,4.154,418,3.055,515,4.154,562,2.234,601,3.635,645,4.583,655,3.453,708,4.713,803,3.635,827,4.106,985,2.816,1157,3.995,1240,4.154,1245,3.995,1265,4.583,1286,3.635,1454,4.345,1510,5.388,1511,4.903,1512,3.741,1513,5.803,1514,4.903,1515,5.388,1516,5.388,1517,4.903,1518,5.388,1519,5.388,1520,5.388]],["t/310",[0,0.384,38,0.965,42,4.151,47,4.151,58,2.467,119,3.671,145,4.369,159,5.752,207,5.893,217,1.901,347,2.965,513,5.222,518,3.739,722,8.109,723,3.671,805,4.496,952,5.509,1425,5.893,1493,5.893,1511,5.893,1521,6.476,1522,5.509,1523,6.476,1524,4.802]],["t/312",[0,0.352,4,2.934,6,2.179,22,3.06,32,4.009,47,3.809,58,2.642,68,2.141,74,3.809,126,2.975,137,3.521,150,5.408,199,3.106,201,3.203,202,4.126,255,5.408,301,4.564,347,2.72,397,3.256,405,6.339,431,2.72,513,4.792,530,4.792,534,3.431,1181,5.408,1522,5.055,1525,5.943,1526,5.408,1527,5.943,1528,5.943,1529,5.943]],["t/314",[0,0.461,38,0.88,39,0.511,43,0.625,46,1.635,109,2.651,137,2.472,159,3.813,175,1.986,180,0.996,182,1.503,190,2.528,210,3.365,301,3.204,330,2.91,397,3.096,516,4.557,564,2.057,566,3.813,598,2.019,609,1.874,668,2.954,740,2.472,749,4.557,887,4.048,1098,4.557,1191,4.557,1286,3.813,1530,5.652,1531,5.652,1532,5.652,1533,5.652,1534,4.808,1535,5.652]],["t/316",[10,1.139,39,0.472,42,3.242,48,2.771,58,1.463,62,2.684,82,3.75,86,2.432,109,2.372,137,2.212,151,3.511,175,1.291,180,0.891,210,3.113,232,5.371,301,2.867,395,2.867,396,4.602,401,4.302,564,2.23,629,2.975,646,3.035,738,5.593,758,3.899,797,3.75,813,3.623,827,3.665,1019,6.55,1074,6.757,1075,4.302,1076,4.078,1299,4.302,1536,5.058,1537,5.058,1538,5.058,1539,5.058,1540,5.058,1541,5.058]],["t/318",[0,0.544,6,2.201,38,0.917,39,0.746,43,0.482,62,3.186,109,2.816,149,4.37,217,2.38,383,2.347,451,5.464,731,4.629,1420,3.533,1542,8.108,1543,8.108,1544,6.005,1545,8.108,1546,6.005]],["t/320",[0,0.386,3,2.59,4,3.213,6,1.614,7,2.814,9,3.056,24,1.238,38,0.736,39,0.627,43,0.523,46,1.883,48,2.412,58,1.274,62,2.336,99,2.59,139,2.59,175,1.661,182,1.73,217,2.511,345,2.757,363,3.626,368,3.153,373,1.689,428,2.386,429,2.141,437,4.006,472,3.394,513,3.55,598,2.325,609,2.158,642,3.153,652,3.424,708,2.757,714,2.911,730,3.55,973,3.745,1048,3.745,1188,3.55,1245,3.264,1262,3.264,1264,3.394,1522,3.745,1547,4.006,1548,6.508,1549,4.402]],["t/322",[0,0.335,39,0.722,104,2.684,137,2.472,182,2.069,227,4.357,347,2.587,373,2.168,397,3.096,411,4.357,429,2.559,509,4.808,665,2.528,708,4.872,985,2.954,997,3.813,1033,4.557,1140,2.791,1145,4.808,1191,4.557,1330,6.949,1481,3.813,1550,5.652,1551,5.652]],["t/324",[0,0.537,43,0.728,58,2.058,71,3.378,149,4.885,210,3.92,330,3.663,657,3.146,665,3.182,1179,5.485,1552,7.115,1553,7.115,1554,7.115,1555,7.115,1556,7.115,1557,6.474,1558,7.115]],["t/326",[0,0.407,10,1.546,28,4.036,38,0.776,62,3.64,90,3.533,137,3,144,3.3,145,4.628,175,1.751,347,3.141,348,5.424,358,4.296,362,4.914,388,5.836,500,3.698,620,4.397,870,4.507,1097,6.243,1559,6.861,1560,5.836,1561,6.861,1562,6.243]],["t/329",[39,0.654,128,3.898,173,4.186,175,1.816,554,5.485,557,4.359,562,4.135,805,4.939,903,6.987,1319,5.276,1383,5.737,1420,4.186,1563,5.737,1564,7.115,1565,6.474,1566,6.474]],["t/331",[0,0.375,4,2.094,6,1.555,10,1.892,38,0.48,39,0.739,43,0.34,103,3.168,105,1.875,111,2.448,128,2.323,182,2.014,373,1.627,395,2.404,406,2.448,534,2.448,561,6.016,562,3.483,665,2.831,731,3.269,764,3.269,809,3.037,814,3.859,827,1.854,985,2.216,997,2.861,1032,2.655,1075,3.607,1165,3.607,1190,3.859,1278,2.786,1305,3.859,1509,3.607,1566,3.859,1567,3.859,1568,5.385,1569,4.241,1570,6.892,1571,6.33,1572,4.241,1573,4.241]],["t/333",[0,0.495,7,2.277,39,0.729,43,0.503,46,2.413,182,2.218,343,3.838,367,4.227,428,3.058,429,3.085,562,2.598,598,2.98,603,5.052,650,5.052,657,2.77,1534,5.33,1557,7.591]],["t/335",[0,0.398,7,1.27,10,0.788,23,4.416,38,0.76,39,0.684,42,2.241,43,0.54,46,2.198,108,2.057,158,2.819,175,1.716,180,0.962,217,1.026,299,2.592,301,1.982,326,2.057,395,1.982,561,2.504,562,2.265,598,3.121,603,2.819,609,2.228,626,2.057,741,5.726,764,2.695,827,4.556,997,2.358,1032,2.189,1033,5.42,1278,3.588,1452,3.181,1574,2.974,1575,6.722,1576,6.722,1577,6.722,1578,6.722]],["t/337",[0,0.555,6,1.719,38,0.771,39,0.641,43,0.708,46,2.827,62,2.488,90,3.51,128,2.568,149,3.674,156,3.476,217,2.588,306,3.005,347,2.146,363,2.612,366,3.08,383,1.832,397,2.568,406,2.706,421,4.478,562,1.944,626,5.51,637,2.612,787,3.476,1383,3.78,1484,5.496,1579,4.688,1580,6.816,1581,6.202,1582,4.688,1583,6.816]],["t/339",[0,0.369,8,2.49,38,0.846,39,0.709,43,0.5,62,2.202,84,1.877,119,2.352,122,2.021,149,2.236,180,0.731,182,2.209,210,1.795,213,2.726,217,2.194,232,2.659,330,2.136,343,2.542,374,3.529,383,2.434,428,1.521,429,1.365,431,1.899,436,4.076,502,3.199,562,2.582,576,3.529,596,3.776,651,3.346,659,2.799,896,3.529,1069,2.972,1140,2.049,1197,3.077,1201,2.598,1524,4.618,1584,3.529,1585,4.149,1586,3.529,1587,4.149,1588,6.228,1589,6.228,1590,6.228,1591,4.149,1592,4.149,1593,3.776,1594,4.149,1595,4.149]],["t/341",[0,0.4,4,1.737,38,0.398,39,0.755,43,0.441,62,1.866,66,2.254,86,1.691,90,1.811,92,1.104,174,1.474,180,0.62,217,1.032,284,1.573,326,2.069,503,2.608,518,2.03,557,2.155,562,2.275,582,2.373,611,2.442,638,3.605,665,1.573,756,2.03,757,3.931,771,1.474,773,2.992,779,3.931,786,2.608,878,2.836,884,2.992,922,2.712,928,2.519,1088,2.836,1157,2.608,1210,2.992,1330,2.254,1384,3.2,1596,2.442,1597,5.488,1598,3.517,1599,3.517,1600,2.608,1601,3.517,1602,3.517,1603,3.517,1604,3.517,1605,3.517,1606,3.517,1607,3.517,1608,3.517,1609,3.2,1610,3.517,1611,3.517,1612,3.517,1613,3.517,1614,4.425,1615,3.2,1616,3.2,1617,3.517,1618,3.517,1619,3.517,1620,3.517,1621,3.517,1622,3.517,1623,2.836]],["t/343",[0,0.412,38,0.786,39,0.723,43,0.558,69,3.524,106,4.82,187,4.45,190,3.105,381,5.354,534,4.008,562,2.879,638,4.562,757,4.974,1036,5.906,1392,4.974,1624,6.944,1625,4.974]],["t/345",[0,0.356,38,0.917,39,0.746,43,0.482,46,1.737,59,2.816,175,1.533,180,1.058,217,1.762,227,4.629,373,2.303,381,4.865,429,1.975,522,3.092,562,2.49,638,3.945,757,4.301,1201,3.76,1626,5.464,1627,6.005,1628,6.005,1629,6.005,1630,6.005,1631,6.005]],["t/347",[0,0.388,38,0.741,39,0.711,43,0.526,62,3.475,175,1.672,381,5.155,557,4.013,562,2.716,659,4.418,757,4.691,762,5.263,825,6.927,1036,5.571,1201,5.379,1260,5.571,1392,4.691,1417,5.96,1632,5.96]],["t/349",[7,2.618,36,5.16,42,5.854,52,2.427,59,3.378,228,6.128,231,6.128,299,5.341,369,6.555,459,6.555,500,3.883,741,5.089,1633,7.204,1634,7.204,1635,7.204,1636,7.204,1637,7.204,1638,7.204]],["t/351",[0,0.352,7,2.16,39,0.708,43,0.646,46,2.329,52,2.713,53,4.933,59,3.776,180,1.419,182,1.58,284,2.658,340,4.792,421,3.904,431,3.686,652,3.56,668,4.208,797,4.407,1098,4.792,1207,4.126,1364,5.055,1639,8.052]],["t/353",[0,0.322,7,1.977,38,0.857,39,0.745,43,0.608,52,2.552,53,3.332,59,4.088,87,4.216,182,1.446,284,2.432,665,2.432,668,4.927,821,5.841,1068,4.627,1098,4.386,1207,3.776,1296,4.627,1364,4.627,1640,7.576,1641,5.439]],["t/355",[22,3.124,42,3.889,52,2.751,66,3.889,68,2.186,70,3.503,74,3.889,78,4.093,91,3.889,122,3.978,126,4.087,182,1.613,199,3.171,201,3.271,202,4.212,261,4.893,468,4.212,524,4.212,652,2.683,741,3.38,1166,5.522,1167,5.915,1459,5.522,1642,6.068,1643,6.068,1644,6.068,1645,6.068,1646,5.522,1647,6.068,1648,6.068]],["t/357",[0,0.523,6,1.719,8,2.813,10,1.535,27,4.01,29,3.321,36,6.315,38,0.53,39,0.641,43,0.547,46,1.972,54,1.886,58,1.972,59,3.196,60,6.475,61,5.496,62,3.616,63,6.315,100,7.109,109,2.199,110,4.731,144,2.255,175,1.197,182,1.247,187,3.005,373,1.798,431,2.146,638,3.08,639,4.266,640,4.266,641,4.266,652,2.073,714,2.097,1649,4.688]],["t/359",[0,0.533,10,1.582,24,1.374,28,4.132,29,3.422,38,0.553,39,0.539,43,0.66,46,2.754,54,1.966,62,2.593,93,2.185,98,3.21,103,4.115,104,3.904,121,3.132,175,1.793,182,1.299,239,2.634,260,3.623,428,3.014,1325,3.06,1327,3.623,1330,4.501,1352,4.447,1593,4.447,1650,4.887,1651,4.887,1652,4.887,1653,4.887,1654,4.887,1655,4.887,1656,4.887,1657,4.887,1658,4.887,1659,4.887]],["t/361",[92,2.87,96,4.514,500,4.928]],["t/363",[39,0.614,68,2.696,180,1.319,383,2.925,564,2.163,612,5.77,661,5.77,756,5.401,771,3.92,853,1.201,860,5.996,1660,5.048]],["t/365",[39,0.532,180,1.43,564,2.273,612,7.582,771,4.12,853,1.302,854,6.634]],["t/367",[92,2.87,96,4.514,500,4.928]],["t/369",[0,0.393,38,0.75,39,0.671,43,0.532,68,2.387,180,1.167,383,2.589,564,2.001,598,2.366,614,5.547,661,5.107,756,4.996,771,3.626,853,1.063,860,5.547,1660,4.469,1661,5.342,1662,6.625,1663,6.028]],["t/371",[0,0.427,38,0.815,39,0.658,43,0.578,180,1.269,564,2.112,598,2.573,609,2.388,614,6.428,771,3.827,853,1.156,854,4.859,1661,5.808,1664,7.204]],["t/373",[0,0.367,38,0.701,39,0.653,43,0.498,68,2.233,84,2.804,155,4.072,180,1.092,323,5.64,564,1.915,598,2.214,614,5.308,661,4.778,744,5.272,753,4.303,756,4.781,771,3.47,853,0.994,860,5.308,1660,4.181,1661,4.998,1663,5.64,1665,5.64,1666,4.596,1667,6.198]],["t/375",[0,0.427,38,0.815,39,0.658,43,0.578,56,4.511,287,5.001,564,1.665,598,2.573,609,2.388,614,5.854,771,3.827,853,1.156,1661,5.808,1665,6.555,1668,7.204,1669,7.204]],["t/377",[92,2.87,96,4.514,500,4.928]],["t/379",[0,0.412,10,1.564,24,1.952,38,0.786,39,0.585,43,0.558,92,2.179,175,1.772,217,2.038,373,2.663,562,2.879,621,5.906,829,5.314,853,1.114,1024,3.868,1670,6.318,1671,6.944,1672,6.318,1673,4.82,1674,6.944]],["t/381",[69,4.238,213,5.485,564,1.93,593,7.102,829,4.5,940,5.633,997,5.633,1672,7.598,1675,7.598]],["t/383",[0,0.455,38,0.869,39,0.624,43,0.617,69,3.9,92,2.411,829,5.126,940,5.183,1024,4.28,1409,6.991,1673,5.333,1676,7.683,1677,7.683]],["t/385",[0,0.455,38,0.869,39,0.624,43,0.617,69,3.9,92,2.411,467,4.141,829,5.126,940,5.183,1024,4.28,1673,5.333,1678,7.683,1679,7.683]],["t/387",[22,4.427,24,2.417,132,5.058,180,1.515,829,5.488,1299,7.314]],["t/389",[24,2.417,132,5.058,180,1.515,397,4.71,829,5.488,1567,7.824]],["t/391",[24,2.417,132,5.058,180,1.515,397,4.71,809,6.159,829,5.488]],["t/393",[0,0.412,24,1.952,38,0.786,39,0.585,43,0.558,92,2.179,132,5.249,180,1.223,182,1.846,397,3.804,428,2.546,829,5.314,1024,3.868,1568,5.906,1673,4.82,1680,6.318,1681,6.318,1682,6.944,1683,5.906]],["t/395",[0,0.417,24,2.528,38,0.795,39,0.651,43,0.564,92,2.206,132,4.135,180,1.238,397,3.85,428,2.577,829,5.344,1024,3.915,1568,5.978,1673,4.879,1680,6.395,1683,5.978,1684,5.978]],["t/397",[0,0.417,24,2.528,38,0.795,39,0.651,43,0.564,92,2.206,132,4.135,180,1.238,182,1.869,397,3.85,829,5.344,1024,3.915,1673,4.879,1681,6.395,1683,5.978,1684,5.978,1685,7.028]],["t/399",[0,0.422,24,2.548,38,0.805,39,0.654,43,0.571,92,2.233,132,4.186,180,1.254,397,3.898,829,5.375,1024,3.964,1673,4.939,1684,6.052,1686,7.115,1687,7.115,1688,6.474]],["t/401",[0,0.438,38,0.836,39,0.609,43,0.593,92,2.319,136,3.267,180,1.302,664,6.723,742,4.853,829,3.982,985,3.861,1024,4.116,1090,4.984,1197,5.478,1673,5.129,1689,5.478,1690,7.388]],["t/403",[92,2.87,96,4.514,500,4.928]],["t/405",[0,0.308,38,0.588,39,0.664,43,0.417,52,3.283,86,2.498,87,3.281,146,3.117,175,1.872,192,3.412,193,3.606,196,3.182,217,2.969,373,1.992,431,2.378,564,1.696,827,4.04,853,0.833,925,5.147,1691,2.8,1692,2.999,1693,5.194,1694,5.194,1695,5.194,1696,3.412,1697,3.852,1698,3.852,1699,3.852]],["t/407",[0,0.424,38,0.567,39,0.656,43,0.403,52,3.24,84,2.268,86,2.411,87,3.199,146,3.009,175,1.826,192,3.294,193,3.481,196,4.383,197,3.294,198,3.294,217,2.935,373,1.923,383,3.554,564,1.654,853,0.804,925,5.066,1691,2.702,1692,2.894,1696,3.294,1697,3.718,1698,3.718,1699,3.718,1700,5.014,1701,5.014,1702,5.014]],["t/409",[0,0.424,38,0.567,39,0.656,43,0.403,52,3.24,84,4.114,86,2.411,87,3.199,146,3.009,175,1.826,192,3.294,193,3.481,196,4.383,197,3.294,198,3.294,217,2.935,373,1.923,383,1.96,564,1.654,853,0.804,925,5.066,1691,2.702,1692,2.894,1696,3.294,1697,3.718,1698,3.718,1699,3.718,1703,5.014,1704,5.014,1705,5.014]],["t/411",[0,0.395,38,0.514,39,0.634,43,0.365,52,3.115,84,3.012,86,3.202,87,2.978,98,2.983,146,2.725,175,1.7,192,2.983,193,3.152,196,4.079,197,2.983,198,2.983,217,3.006,373,1.742,564,1.539,598,2.378,609,1.505,827,2.912,853,0.728,925,4.838,1484,7.002,1614,3.661,1691,2.447,1692,2.621,1696,2.983,1697,3.367,1698,3.367,1699,3.367,1706,4.541,1707,4.541,1708,4.541,1709,4.541]],["t/413",[0,0.382,38,0.491,39,0.624,43,0.348,52,3.056,84,3.842,86,2.085,87,2.878,146,2.602,175,1.643,192,2.849,193,3.01,196,3.943,197,2.849,198,2.849,217,3.03,373,1.663,564,1.488,598,1.549,827,3.967,853,0.696,918,3.946,925,4.731,1484,3.496,1565,3.946,1581,7.727,1691,2.337,1692,2.503,1696,2.849,1697,3.215,1698,3.215,1699,3.215,1710,6.436,1711,4.336,1712,4.336,1713,4.336,1714,4.336]],["t/415",[0,0.421,38,0.562,39,0.654,43,0.399,52,3.229,86,2.39,87,3.18,146,2.983,175,1.815,192,3.266,193,3.451,196,4.356,197,3.266,198,3.266,217,2.926,373,1.907,564,1.643,598,1.775,827,4.191,853,0.797,925,5.046,1691,2.679,1692,2.869,1696,3.266,1697,3.686,1698,3.686,1699,3.686,1715,4.971,1716,4.971,1717,4.971]],["t/417",[0,0.388,38,0.379,39,0.716,43,0.269,52,2.892,58,2.149,98,2.203,128,2.896,146,3.172,159,2.262,175,1.349,182,1.406,196,2.055,217,2.52,408,2.586,429,1.739,518,1.936,598,2.653,609,2.679,637,1.868,747,2.487,805,2.328,853,0.538,881,4.811,885,4.543,925,4.502,1069,3.787,1107,2.328,1149,2.055,1481,2.262,1524,3.92,1563,2.704,1614,2.704,1666,3.92,1691,1.808,1692,1.936,1696,3.473,1718,4.687,1719,3.052,1720,3.052,1721,3.052,1722,4.497,1723,3.354,1724,2.853,1725,3.052,1726,3.354,1727,4.811,1728,3.354,1729,3.052,1730,4.263,1731,2.586]],["t/419",[0,0.276,38,0.526,39,0.613,43,0.373,52,2.283,58,2.541,86,3.258,98,3.055,128,3.712,159,3.137,175,1.729,217,1.989,408,3.585,518,2.685,598,2.42,609,1.542,637,2.591,747,3.448,805,3.228,853,0.746,885,5.549,925,4.453,1069,4.853,1107,3.228,1149,2.849,1481,3.137,1524,5.024,1563,3.75,1666,5.024,1691,2.507,1692,2.685,1718,5.725,1719,4.232,1720,4.232,1721,4.232,1722,5.764,1727,6.166,1729,4.232,1732,4.651,1733,4.651]],["t/421",[0,0.449,38,0.615,39,0.705,43,0.437,52,3.176,84,2.461,86,2.616,109,3.553,182,2.318,196,3.332,429,1.789,518,3.14,665,2.432,853,0.873,885,6.052,925,5.252,1149,3.332,1691,2.932,1692,3.14,1718,6.244,1734,5.841,1735,7.576,1736,5.439]],["t/423",[0,0.443,38,0.604,39,0.702,43,0.429,52,3.151,84,2.415,86,2.567,109,3.507,182,1.419,429,1.756,436,3.423,518,3.082,665,2.387,853,0.856,885,5.991,925,5.21,1069,5.356,1149,3.271,1691,2.877,1692,3.082,1718,6.182,1724,4.541,1734,5.765,1737,7.478,1738,5.339]],["t/425",[0,0.449,38,0.615,39,0.705,43,0.437,52,2.937,84,2.461,86,2.616,109,3.553,196,3.332,428,3.196,429,1.789,434,5.618,518,3.14,665,2.432,853,0.873,885,6.052,925,5.252,1149,3.332,1691,2.932,1692,3.14,1718,6.244,1739,4.949,1740,7.576,1741,5.439]],["t/427",[0,0.364,38,0.694,39,0.609,43,0.492,52,2.066,86,3.955,109,3.856,428,2.248,429,2.017,434,6.098,518,3.54,853,0.984,885,6.441,925,5.169,1069,5.89,1149,3.757,1691,3.305,1692,3.54,1718,6.646,1739,5.58,1742,8.224]],["t/429",[0,0.44,38,0.598,39,0.686,43,0.425,52,3.521,86,4.13,175,1.896,190,4.165,196,3.241,373,2.029,748,4.298,853,1.192,925,5.189,1666,3.922,1691,2.851,1692,3.053,1743,5.969,1744,5.29,1745,4.499,1746,5.29,1747,5.29]],["t/431",[0,0.443,38,0.604,39,0.687,43,0.429,52,3.53,53,3.271,86,4.151,175,1.909,190,3.344,196,3.271,373,2.048,748,3.743,853,1.2,925,5.21,1428,4.541,1666,3.958,1691,2.877,1692,3.082,1743,5.994,1745,4.541,1748,5.339,1749,5.339,1750,5.339]],["t/433",[0,0.42,38,0.429,39,0.678,43,0.305,52,3.705,53,2.325,86,3.817,175,1.485,190,3.828,196,3.565,286,5.07,380,2.493,528,2.013,564,0.877,616,3.453,637,2.114,648,2.277,741,4.422,748,3.543,853,0.934,925,4.769,1270,5.51,1428,3.228,1666,2.814,1691,2.045,1692,2.19,1743,5.486,1745,3.228,1751,3.453,1752,7.079,1753,3.795,1754,5.82,1755,2.925]],["t/435",[0,0.265,10,1.483,39,0.631,42,2.865,43,0.359,52,2.218,58,1.904,86,2.15,99,3.872,210,3.728,256,3.103,284,1.999,418,3.732,562,2.729,564,1.806,598,1.597,609,2.59,637,4.353,648,6.35,736,3.605,784,3.202,853,0.717,925,3.667,1273,5.998,1691,2.41,1756,4.068,1757,6.583,1758,6.583,1759,4.47,1760,4.47]],["t/437",[92,2.87,96,4.514,500,4.928]],["t/439",[24,2.417,674,5.384,735,3.426,853,1.379,1023,4.874,1761,7.824,1762,7.824]],["t/441",[24,2.281,225,5.082,564,1.876,674,5.082,735,3.233,853,1.302,1023,4.6,1763,8.949,1764,8.365]],["t/443",[0,0.282,7,1.731,24,0.827,38,0.539,39,0.784,43,0.236,52,0.992,58,0.851,68,2.484,71,2.849,87,1.316,92,0.924,107,4.137,109,1.38,384,2.678,436,1.347,564,0.68,584,2.269,648,1.766,674,3.757,735,1.173,756,1.699,853,0.472,1023,1.669,1167,3.053,1179,2.269,1765,4.763,1766,2.943,1767,1.934,1768,4.763,1769,2.943,1770,2.943,1771,2.943,1772,2.943,1773,2.373,1774,4.763,1775,4.763,1776,4.763,1777,2.678,1778,4.763,1779,4.763,1780,2.504,1781,2.943,1782,2.943]],["t/445",[180,1.354,427,4.015,674,4.811,735,3.061,853,1.233,985,4.015,1167,6.095,1330,4.924,1773,6.195,1783,6.991,1784,8.787,1785,5.697]],["t/447",[136,3.443,427,4.069,674,4.876,735,3.102,853,1.249,985,4.069,1167,6.146,1330,4.99,1773,6.278,1784,8.839,1785,5.774]],["t/449",[136,3.692,427,4.363,674,5.229,735,3.327,853,1.34,985,4.363,1167,6.412,1773,6.732]],["t/451",[180,1.493,674,6.32,735,3.376,853,1.359,1761,7.709,1762,7.709,1786,6.282]],["t/453",[429,2.746,674,6.265,735,3.327,853,1.34,1786,6.191,1787,10.005,1788,8.35]],["t/455",[180,1.471,564,1.93,674,6.265,735,3.327,853,1.34,1419,5.796,1763,7.598,1764,7.102]],["t/457",[0,0.384,24,1.821,38,0.965,39,0.709,43,0.52,87,2.896,92,2.033,180,1.141,431,2.965,564,1.497,614,4.151,674,5.97,735,2.58,853,1.039,1419,4.496,1764,5.509,1789,6.476,1790,6.476,1791,6.476,1792,6.476,1793,6.476]],["t/459",[180,1.354,564,2.198,674,5.955,735,3.061,853,1.233,1167,6.095,1419,5.333,1777,8.654,1780,8.09,1794,7.683]],["t/461",[0,0.474,6,2.934,39,0.525,85,5.011,97,4.182,174,3.353,297,4.802,466,5.398,474,5.398,534,4.619,1013,4.619,1795,5.732]],["t/463",[52,2.941,646,5.237,1013,5.038,1691,4.704,1796,8.728,1797,8.728]],["t/465",[109,4.651,375,6.357,427,4.301,587,5.154,853,1.32,1013,4.751,1798,8.437]],["t/467",[13,5.257,69,4.062,92,2.512,96,3.951,111,4.619,235,7.282,734,6.169,755,6.169,756,4.619,854,5.398,1318,6.807,1799,6.807]],["t/469",[0,0.352,38,0.672,39,0.75,43,0.477,58,1.719,92,1.865,180,1.047,217,2.873,283,5.97,564,1.374,755,7.04,756,3.431,771,2.49,853,0.953,1799,5.055,1800,5.943,1801,5.943,1802,6.849,1803,5.408]],["t/471",[0,0.355,10,0.526,38,0.677,39,0.772,43,0.48,54,1.583,58,1.475,68,1.418,92,1.6,111,1.348,180,0.412,182,1.356,217,2.374,283,2.918,429,0.768,598,1.406,609,1.305,646,1.402,710,1.801,755,5.149,771,2.798,822,3.173,853,0.375,854,1.576,901,1.801,940,2.655,997,1.576,1167,4.64,1199,2.655,1283,3.348,1596,2.732,1614,3.173,1725,3.581,1730,1.884,1731,3.034,1751,2.126,1780,3.348,1799,4.337,1802,3.348,1804,3.935,1805,3.935,1806,2.336,1807,2.336,1808,2.336,1809,1.884,1810,1.987,1811,2.336,1812,1.987,1813,2.336,1814,2.336,1815,3.935,1816,3.935,1817,4.337,1818,3.935,1819,5.099]],["t/473",[66,5.511,92,2.699,96,4.245,146,5.159,500,4.634,642,6.159,1632,7.824]],["t/475",[0,0.216,7,1.327,10,0.822,22,1.88,31,4.765,38,0.639,39,0.671,43,0.454,54,1.469,70,2.107,87,3.09,92,1.146,104,1.733,137,1.596,174,2.367,180,0.995,199,2.952,244,2.707,285,2.615,318,3.322,319,5.14,327,3.105,330,1.88,335,3.322,430,1.908,468,3.921,501,4.189,530,4.555,562,1.514,630,1.908,662,2.707,668,2.952,675,3.921,735,1.455,852,2.707,853,0.586,1074,5.571,1201,2.286,1413,4.555,1456,5.14,1562,3.322,1820,3.651,1821,3.651,1822,3.105,1823,6.909,1824,3.651,1825,3.651,1826,3.651,1827,3.651,1828,5.14,1829,3.322,1830,5.649,1831,3.651,1832,3.651,1833,5.14,1834,2.944,1835,5.14,1836,3.322,1837,3.651,1838,3.651,1839,2.944,1840,3.651]],["t/477",[0,0.319,2,3.995,7,1.958,24,1.515,38,0.981,39,0.703,43,0.433,87,3.879,92,1.691,104,2.558,138,3.374,180,0.949,210,2.331,668,2.816,675,5.225,735,2.147,1057,4.345,1167,5.559,1281,4.345,1560,6.402,1834,4.345,1841,6.687,1842,5.388,1843,5.388,1844,7.893,1845,4.903,1846,4.903,1847,4.903]],["t/479",[24,2,54,3.646,168,5.096,174,2.981,180,1.254,210,3.92,629,4.186,675,6.923,735,3.973,853,1.141,1512,4.939,1670,6.474,1841,7.688]],["t/481",[0,0.335,2,4.191,7,2.054,38,0.88,39,0.698,43,0.454,87,3.979,92,1.774,104,2.684,138,3.539,168,4.048,174,2.368,668,2.954,675,5.401,853,0.907,1057,4.557,1167,3.622,1281,4.557,1512,3.924,1560,6.618,1834,4.557,1841,5.998,1844,8.096,1845,5.143,1846,5.143,1847,5.143,1848,5.652,1849,5.652]],["t/483",[54,2.863,168,5.096,174,2.981,180,1.254,210,3.92,675,6.923,735,3.611,853,1.141,1117,5.485,1512,4.939,1786,6.72,1841,8.095,1850,6.474]],["t/485",[54,3.562,168,4.914,174,2.874,180,1.209,210,3.83,654,4.85,675,6.805,735,3.528,853,1.101,1117,5.29,1512,4.763,1841,7.986,1850,6.243,1851,8.854]],["t/487",[10,1.937,190,3.845,210,3.719,436,3.936,620,5.511,1514,7.824,1852,7.314]],["t/489",[1853,7.902,1854,9.29]],["t/491",[24,1.589,54,2.274,175,2.271,180,1.371,190,2.528,210,2.445,373,2.168,735,2.252,853,0.907,1023,3.204,1076,6.273,1156,4.128,1839,6.273,1852,6.618,1855,7.08,1856,7.08,1857,7.08,1858,7.08,1859,7.08,1860,7.08,1861,7.08,1862,7.08,1863,7.08,1864,7.08,1865,5.652]],["t/493",[10,1.492,31,5.302,54,2.666,180,1.167,210,3.743,217,2.54,427,3.462,853,1.063,1076,5.342,1156,3.515,1435,7.876,1783,6.028,1839,5.342,1852,5.635,1856,6.028,1857,6.028,1858,6.028,1859,6.028,1860,6.028,1861,6.028,1862,6.028,1863,6.028,1864,6.028]],["t/495",[0,0.365,2,3.033,7,1.486,22,2.106,38,0.933,39,0.731,43,0.495,70,2.361,82,3.033,87,2.755,92,1.934,104,1.942,138,2.561,174,1.714,175,1.044,217,1.201,430,3.22,468,4.277,668,2.138,675,4.277,735,1.63,853,0.656,1057,3.298,1074,5.976,1201,3.858,1413,4.968,1828,5.606,1829,3.722,1833,5.606,1834,4.968,1835,7.506,1836,5.606,1839,4.968,1866,4.09,1867,6.161,1868,6.161,1869,3.722,1870,4.09,1871,4.09,1872,4.09,1873,4.09]],["t/497",[0,0.349,10,1.325,24,1.654,29,2.866,32,3.968,33,4.535,34,3.968,43,0.642,46,1.702,52,1.982,56,5.007,119,3.335,128,3.222,138,3.684,301,5.525,424,3.864,564,1.36,591,5.004,1022,5.004,1151,4.213,1230,5.353,1353,4.362,1355,5.353,1481,3.968,1547,5.353,1812,5.004,1874,5.004,1875,4.535,1876,5.882,1877,5.882,1878,5.882,1879,7.996]],["t/499",[6,2.934,39,0.525,85,5.011,97,4.182,99,4.708,140,4.536,297,4.802,466,5.398,474,5.398,534,4.619,594,6.452,1795,5.732]],["t/501",[0,0.517,73,4.144,108,5.135,125,5.135,587,5.466,1176,7.425]],["t/503",[73,3.908,116,7.001,125,4.842,156,6.103,383,3.217,655,5.275,922,6.345,924,7.001,1420,4.842,1880,8.231]],["t/505",[0,0.367,6,2.272,39,0.407,43,0.498,46,2.396,125,3.646,225,3.881,245,3.972,365,6.678,464,4.44,468,4.303,469,5.272,514,5.272,564,1.433,648,3.719,827,2.71,830,7.935,1123,5.64,1176,7.045,1600,4.596,1803,5.64,1881,6.198,1882,6.198,1883,6.198,1884,8.283,1885,6.198,1886,6.198]],["t/507",[0,0.525,75,4.436,256,6.152,418,5.024,1102,8.064]],["t/509",[0,0.332,38,0.874,39,0.626,43,0.449,46,1.619,49,3.505,58,1.619,68,2.784,87,2.503,134,5.093,136,2.475,174,2.345,182,1.488,301,3.173,358,3.505,564,1.294,652,2.475,732,3.231,807,4.15,856,5.093,857,7.137,901,4.315,902,4.761,997,3.776,1160,3.776,1875,4.315,1887,5.597,1888,5.597,1889,5.597,1890,5.597,1891,5.597,1892,5.597,1893,5.597,1894,5.597,1895,5.597,1896,5.597]],["t/511",[0,0.186,38,0.355,39,0.756,43,0.402,54,2.016,111,2.893,175,2.657,180,0.552,182,0.834,217,1.837,309,2.667,374,2.667,414,3.716,564,0.725,576,2.667,609,1.661,627,2.528,648,1.881,652,1.386,734,2.417,743,2.417,853,0.503,870,2.06,902,2.667,927,5.302,940,2.115,1168,2.667,1188,2.528,1199,3.381,1325,1.963,1402,2.528,1809,2.528,1897,4.56,1898,5.011,1899,4.56,1900,4.56,1901,2.853,1902,3.135,1903,3.135,1904,3.135,1905,3.135,1906,3.135,1907,3.135,1908,3.135,1909,3.135,1910,3.135,1911,3.135,1912,3.135,1913,3.135,1914,3.135,1915,3.135,1916,3.135,1917,3.135,1918,3.135,1919,3.135,1920,3.135,1921,3.135,1922,3.135,1923,3.135,1924,3.135]],["t/513",[0,0.276,7,1.69,31,2.849,38,0.526,39,0.749,43,0.544,52,1.567,54,2.726,87,2.08,104,2.208,111,3.911,157,2.981,175,1.187,180,0.819,182,1.236,217,1.989,287,3.228,341,3.956,414,3.448,609,2.246,652,2.056,771,1.948,853,0.746,878,3.75,927,6.512,931,3.956,1199,4.571,1513,3.585,1596,3.228,1897,6.166,1899,6.166,1900,6.166,1925,4.651,1926,4.651,1927,4.651]],["t/515",[0,0.393,39,0.568,43,0.532,58,1.917,109,3.107,180,1.167,182,1.761,187,4.246,427,3.462,428,2.429,429,2.179,430,4.523,431,3.962,831,5.342,1095,6.673,1196,5.302,1197,4.912,1467,7.876,1928,6.625,1929,6.625,1930,6.625]],["t/517",[0,0.371,39,0.547,43,0.503,90,3.226,108,4.908,109,2.938,127,5.33,149,3.377,232,4.016,287,4.349,397,3.432,429,2.061,436,3.819,465,5.701,473,4.646,562,2.598,651,5.052,896,5.33,1038,5.33,1080,4.488,1509,5.33,1584,5.33,1734,4.83,1931,8.342,1932,6.266,1933,8.342,1934,6.266]],["t/519",[0,0.407,38,0.776,39,0.721,43,0.551,175,1.751,180,1.209,189,5.532,373,2.632,424,4.507,427,3.585,564,1.586,740,3.872,748,3.434,948,6.243,1159,6.243,1935,6.861,1936,6.861,1937,6.861]],["t/521",[92,2.87,96,4.514,500,4.928]],["t/523",[0,0.417,5,1.276,7,0.706,10,1.349,24,1.25,36,1.392,38,0.38,39,0.488,43,0.156,46,0.562,58,1.532,68,0.7,69,0.986,71,3.339,80,1.768,92,0.61,93,2.369,96,1.66,107,1.166,111,1.122,128,1.842,133,1.768,136,1.965,140,1.101,175,0.496,180,0.342,182,0.517,201,3.533,210,0.84,232,1.245,239,1.047,250,1.392,260,3.296,298,1.015,301,1.101,326,2.615,347,1.539,366,1.276,367,1.311,372,1.567,373,1.29,375,2.155,382,1.349,383,0.759,393,1.653,395,1.101,397,1.064,427,1.015,429,0.639,461,1.276,464,5.036,503,4.439,507,1.768,518,1.122,522,2.289,541,1.498,564,1.225,570,1.392,629,1.143,632,1.101,637,1.873,707,1.082,719,1.567,723,1.101,754,1.441,776,1.567,779,3.794,803,1.311,823,3.296,827,0.85,830,1.653,853,0.96,872,1.349,928,3.184,936,1.653,952,7.11,985,1.015,994,1.768,1013,1.941,1080,1.392,1107,2.334,1315,2.408,1734,1.498,1938,1.653,1939,1.943,1940,1.943,1941,1.943,1942,1.943,1943,1.943,1944,1.943,1945,1.943,1946,3.584,1947,1.567,1948,3.837,1949,1.943,1950,3.06,1951,1.943,1952,4.044,1953,3.362,1954,1.943,1955,1.943,1956,3.362,1957,1.943,1958,3.06,1959,5.092,1960,3.362,1961,1.943,1962,3.362,1963,1.943,1964,1.943,1965,2.408,1966,3.362,1967,2.493,1968,1.943,1969,1.943,1970,1.349,1971,1.943,1972,1.653,1973,1.653,1974,1.768,1975,1.943,1976,1.943,1977,3.362,1978,1.943,1979,1.943,1980,1.943,1981,1.943]],["t/525",[0,0.421,8,2.983,10,1.12,24,1.397,36,3.56,38,0.804,39,0.629,43,0.399,46,2.057,92,1.56,111,4.104,175,1.815,201,2.679,239,2.679,326,2.924,373,1.907,375,3.186,385,4.671,464,3.56,534,2.869,630,2.598,637,2.769,779,3.56,853,0.797,883,4.228,928,3.56,1013,2.869,1315,3.56,1600,3.686,1948,3.186,1959,6.048,1970,3.451,1973,4.228,1982,4.523,1983,7.11,1984,4.971,1985,3.686,1986,4.971,1987,4.008,1988,4.971,1989,4.971,1990,4.523,1991,4.971,1992,4.228]],["t/527",[0,0.422,6,2.608,105,3.146,149,3.835,175,2.313,201,3.835,239,3.835,373,2.729,375,4.56,464,5.096,637,3.964,803,6.113,1013,4.107,1240,5.485,1315,5.096,1946,5.737,1948,4.56,1970,4.939,1973,6.052]],["t/529",[92,2.87,96,4.514,500,4.928]],["t/531",[0,0.367,6,1.131,10,0.695,22,1.588,38,0.877,39,0.757,43,0.497,58,1.431,68,1.111,84,1.396,87,2.212,109,1.447,180,0.872,182,0.82,217,1.452,383,1.933,428,1.131,429,1.015,548,2.287,564,1.432,598,2.531,609,2.349,611,6.037,652,1.364,654,1.69,668,2.585,669,1.484,710,3.814,714,2.212,745,2.968,756,2.856,763,3.668,771,2.968,853,0.495,855,2.487,1325,1.932,1402,2.487,1420,1.815,1586,4.208,1660,2.081,1993,2.807,1994,5.635,1995,4.947,1996,4.501,1997,4.501,1998,2.807,1999,3.085,2000,3.085,2001,3.085]],["t/533",[0,0.164,22,1.428,37,2.359,38,0.513,39,0.738,43,0.223,49,1.737,58,1.666,68,0.999,71,2.155,86,2.183,88,3.861,93,1.24,109,1.301,128,1.519,172,2.237,180,1.173,210,2.879,217,1.332,383,2.251,418,1.572,436,1.27,564,1.332,598,0.991,609,2.207,611,5.096,654,1.519,709,2.359,710,2.138,714,1.24,745,1.664,756,4.238,763,4.936,768,3.861,769,3.861,771,3.486,809,3.251,827,1.213,852,3.365,853,0.445,854,5.613,855,3.66,906,4.13,1363,2.359,1369,2.359,1420,1.632,1570,2.524,1586,2.359,1994,2.524,1996,2.524,1997,4.13,2002,2.774,2003,2.774,2004,2.774,2005,4.539,2006,5.76,2007,2.774,2008,4.539,2009,2.774,2010,2.774,2011,2.774,2012,2.774,2013,2.774]],["t/535",[0,0.474,6,2.934,39,0.525,85,5.011,97,4.182,174,3.353,297,4.802,466,5.398,474,5.398,534,4.619,1795,5.732,2014,8.002]],["t/537",[0,0.393,6,2.429,38,0.75,39,0.633,43,0.532,73,4.11,109,4.059,144,3.186,149,3.571,168,4.745,330,3.411,436,3.962,853,1.063,1069,4.745,1330,5.547,2015,8.655,2016,6.625,2017,6.625,2018,6.625,2019,6.625]],["t/539",[0,0.455,39,0.624,43,0.617,109,4.46,428,2.817,429,2.527,853,1.233,985,4.015,2020,9.51,2021,7.683,2022,7.683,2023,7.683]],["t/541",[903,7.162,950,8.453]],["t/543",[0,0.474,6,2.934,39,0.525,85,5.011,97,4.182,174,3.353,297,4.802,466,5.398,474,5.398,534,4.619,995,6.169,1795,5.732]],["t/545",[52,2.813,93,3.734,155,5.485,180,1.471,217,2.451,580,5.796,748,4.179,992,6.732,1967,6.191]],["t/547",[52,2.813,93,3.734,155,5.485,180,1.471,217,2.451,580,5.796,748,4.179,991,6.732,1967,6.191]],["t/549",[0,0.356,24,1.688,43,0.789,46,1.737,75,5.294,148,4.453,180,1.058,202,5.629,298,3.138,564,1.388,630,4.237,738,3.679,853,0.963,1023,5.204,1420,3.533,2024,3.945,2025,4.842,2026,5.108,2027,6.005,2028,6.005,2029,6.005,2030,8.108,2031,5.464]],["t/551",[0,0.407,30,5.424,43,0.551,54,3.562,75,3.434,180,1.56,427,3.585,504,7.269,564,1.586,630,4.627,853,1.101,2024,4.507,2032,8.854,2033,8.854,2034,6.861,2035,6.243]],["t/553",[0,0.393,38,0.979,39,0.568,43,0.532,46,1.917,75,3.316,180,1.167,320,6.008,537,5.547,564,1.531,630,5.037,738,4.059,853,1.063,1420,3.897,2024,4.352,2025,5.342,2036,5.635,2037,6.625,2038,6.625,2039,6.625,2040,6.028]],["t/555",[0,0.393,38,0.979,39,0.568,43,0.532,46,1.917,75,4.825,180,1.167,320,6.008,564,1.531,630,5.037,738,4.059,853,1.063,1420,3.897,2024,4.352,2025,5.342,2036,5.635,2040,6.028,2041,6.625,2042,6.625,2043,6.625]],["t/557",[0,0.417,5,6.514,43,0.564,46,2.033,75,4.501,180,1.238,537,4.504,564,1.625,630,4.699,738,4.306,853,1.128,1420,4.135,2024,4.617,2025,5.667,2036,5.978,2044,7.028,2045,8.182]],["t/559",[0,0.412,24,1.952,43,0.558,46,2.009,180,1.223,537,6.898,630,3.629,738,4.254,853,1.114,1023,5.589,1420,4.085,2026,5.906,2031,6.318,2046,6.944,2047,6.944,2048,8.923]],["t/561",[0,0.388,43,0.526,46,1.895,58,1.895,75,4.3,180,1.154,225,4.102,283,4.857,380,4.303,537,6.144,564,1.514,630,4.489,648,3.93,738,4.013,853,1.051,879,5.571,880,5.96,904,3.853,1158,5.96,1263,5.96,1420,3.853,1660,4.418,2049,6.55,2050,6.55]],["t/563",[0,0.438,5,4.853,24,2.077,30,4.526,43,0.593,105,3.267,427,3.861,537,6.504,564,1.708,630,4.85,853,1.185,1023,5.261,2051,7.388,2052,7.388]],["t/565",[0,0.384,24,1.821,43,0.52,71,3.075,75,4.268,180,1.141,320,4.496,564,1.971,629,3.81,630,5.501,662,4.802,747,4.802,805,4.496,853,1.039,953,5.893,1419,4.496,1596,4.496,1822,5.509,2024,4.255,2053,6.476,2054,6.476,2055,6.476,2056,6.476]],["t/567",[0,0.427,24,2.025,43,0.578,75,4.572,180,1.269,564,2.112,629,4.238,630,5.242,662,5.341,853,1.156,1419,5.001,1596,5.001,1822,6.128,2024,4.732,2057,7.204,2058,7.204]],["t/569",[0,0.325,10,1.237,38,0.621,39,0.575,43,0.441,52,1.85,75,2.748,136,2.428,175,2.236,180,1.344,211,4.427,250,6.276,330,2.827,397,3.008,560,4.071,564,1.269,630,2.869,827,2.401,853,1.223,1107,6.082,1755,4.233,1874,4.671,1974,4.996,2024,3.607,2059,6.939,2060,6.487,2061,4.671,2062,7.626,2063,4.671,2064,5.491,2065,5.491,2066,5.491]],["t/571",[0,0.438,39,0.485,43,0.593,46,2.137,75,4.645,182,1.964,564,1.708,630,3.861,719,5.957,853,1.185,1039,6.284,1117,5.696,1786,5.478,2024,4.853,2045,6.723,2067,7.388,2068,7.388]],["t/573",[0,0.297,5,3.294,22,2.582,38,0.567,39,0.597,43,0.403,52,1.689,75,3.58,104,2.381,117,4.826,136,2.217,175,1.826,180,1.26,330,2.582,347,4.577,560,3.718,564,1.159,630,2.62,853,1.148,1149,4.383,1488,4.043,1513,5.515,1526,4.562,1755,3.865,2024,3.294,2035,4.562,2059,6.509,2060,6.085,2061,4.265,2069,5.014,2070,4.562,2071,4.265,2072,7.154,2073,7.154,2074,5.014,2075,5.014]],["t/575",[0,0.364,24,1.724,38,0.694,39,0.402,43,0.492,136,3.636,175,2.099,180,1.449,330,5.105,537,5.946,560,4.547,587,5.81,630,3.205,704,5.216,853,1.319,1755,4.728,2060,6.995,2061,5.216,2076,9.278,2077,6.132]],["t/577",[0,0.474,6,2.934,39,0.525,85,5.011,97,4.182,174,3.353,297,4.802,466,5.398,471,6.452,474,5.398,534,4.619,1795,5.732]],["t/579",[0,0.481,43,0.652,104,3.853,370,7.384,853,1.302,1104,7.384,1366,7.384,1798,6.903,2078,7.384,2079,8.115,2080,8.115]],["t/581",[49,5.466,180,1.538,301,4.948,347,3.995,423,7.038,2071,7.425]],["t/583",[180,1.586,1149,5.514,2070,8.19,2071,7.656]],["t/585",[13,5.185,69,4.006,92,2.477,96,3.897,111,4.556,564,1.825,676,6.364,993,6.085,1047,7.182,2081,7.182,2082,7.893,2083,7.893,2084,7.893]],["t/587",[137,3.599,138,5.154,180,1.45,676,6.636,735,3.952,853,1.32,955,7.998,1023,4.666]],["t/589",[0,0.319,10,0.773,17,1.651,24,1.514,38,0.851,39,0.751,43,0.432,54,1.381,58,0.993,92,1.69,111,1.982,180,0.605,182,1.432,436,3.444,555,1.881,570,2.459,629,5.679,676,6.067,732,1.982,735,2.146,827,2.355,853,0.551,904,2.02,941,5.652,955,6.59,993,5.8,1730,4.342,2081,4.9,2085,3.434,2086,6.644,2087,3.124,2088,8.672,2089,5.385,2090,3.434,2091,3.434,2092,4.9]],["t/591",[10,1.731,29,3.743,39,0.624,47,4.924,92,2.411,96,3.793,111,4.435,136,3.397,225,4.811,385,5.047,475,6.195,1013,4.435,1970,5.333,2093,7.683]],["t/593",[190,4.089,632,5.183,1017,6.779]],["t/595",[10,1.828,22,4.178,142,4.521,175,2.071,385,5.331,387,6.543,522,4.178,605,6.543,1013,5.677,2094,7.384]],["t/597",[22,4.121,84,3.62,175,2.043,180,1.41,427,4.182,522,5.021,886,6.452,1153,7.282,1315,5.732,1855,7.282,2095,8.002]],["t/599",[0,0.269,17,2.184,24,1.277,38,0.753,39,0.728,43,0.365,46,1.926,52,1.53,180,0.8,182,1.77,245,2.91,363,4.392,373,1.742,385,5.18,422,4.132,428,2.441,429,2.19,430,2.373,431,3.048,436,2.079,522,2.338,886,3.661,1013,4.551,1151,3.252,1430,4.132,2094,4.132,2096,4.132,2097,4.541,2098,4.132,2099,4.132,2100,4.132,2101,4.132,2102,6.059,2103,4.541,2104,4.541,2105,7.884,2106,4.541,2107,4.541,2108,4.541]],["t/601",[0,0.302,10,1.149,24,1.435,38,0.82,39,0.731,43,0.41,46,1.476,68,1.838,93,2.282,168,3.655,175,1.302,180,0.899,182,1.357,363,4.691,373,1.957,375,4.642,385,5.532,420,4.34,428,1.871,429,1.678,430,2.666,431,3.316,436,2.336,471,4.114,1018,4.114,1149,3.126,1798,4.34,2078,4.643,2096,4.643,2099,4.643,2100,4.643,2101,4.643,2102,4.643,2109,4.643,2110,5.103]],["t/603",[0,0.329,17,2.666,24,1.558,38,0.869,39,0.695,43,0.445,46,2.221,52,2.967,68,1.997,71,2.632,92,1.74,96,2.737,136,2.451,385,6.245,420,4.716,758,4.274,827,2.424,1013,4.431,1018,4.47,1030,5.044,1987,4.47,1990,5.044,2098,5.044,2111,5.544,2112,5.544,2113,5.544,2114,5.544,2115,5.544,2116,5.544,2117,5.544]],["t/605",[0,0.502,92,2.659,96,4.183,111,4.891,174,3.549,201,4.566,464,6.068,500,4.566]],["t/607",[54,2.577,175,1.635,180,1.128,239,3.452,304,5.828,326,3.768,367,4.32,373,2.457,375,4.105,629,3.768,637,3.568,707,3.568,735,2.552,827,2.801,853,1.027,1013,3.697,1600,6.276,1947,5.164,1948,5.425,1950,5.828,1952,5.828,1967,4.749,1970,4.446,1972,5.448,1985,4.749,2118,5.828,2119,6.405,2120,6.405]],["t/609",[24,2.189,180,1.372,367,5.253,427,4.069,735,3.102,827,3.405,853,1.249,1023,4.414,1967,5.774,1985,7.11,2121,8.379]],["t/611",[0,0.295,24,2.333,34,3.353,38,0.939,39,0.674,43,0.399,46,1.438,47,3.186,92,1.56,175,1.815,373,1.907,385,5.453,528,2.637,582,3.353,598,1.775,609,1.648,707,3.961,723,2.818,732,2.869,735,1.98,853,0.797,1013,4.104,1107,3.451,1182,4.228,1623,4.008,1743,3.186,1985,3.686,1987,4.008,1992,4.228,2121,4.008,2122,4.971,2123,4.523,2124,5.272,2125,4.971,2126,4.523,2127,4.228,2128,4.523,2129,4.523,2130,4.523,2131,4.523]],["t/613",[373,3.25,706,6.532,707,4.72,735,3.376,1853,7.207,2121,6.831,2124,6.282,2132,7.709]],["t/615",[707,5.622,735,3.376,771,4.228,853,1.359,1938,8.585]],["t/617",[0,0.302,38,0.82,39,0.553,43,0.41,92,1.602,175,1.302,180,1.276,198,3.352,239,2.75,260,3.784,326,3.002,375,3.27,528,2.707,564,1.18,615,2.336,637,2.843,707,5.393,735,2.033,741,2.843,771,3.035,776,4.114,803,3.442,827,2.231,853,0.819,1013,2.946,1696,4.758,1970,3.542,1972,4.34,2127,4.34,2133,4.643,2134,4.643,2135,6.591,2136,5.103,2137,5.103,2138,4.34,2139,4.643,2140,4.114,2141,4.643,2142,4.643,2143,4.643,2144,5.103,2145,5.103]],["t/619",[159,5.048,180,1.648,345,4.686,564,1.73,707,4.169,735,2.982,741,4.169,771,3.135,853,1.201,1035,6.81,1245,5.549,1696,6.147,1946,6.034,2138,6.366,2146,6.81]],["t/621",[0,0.36,38,0.924,39,0.648,43,0.487,92,1.905,119,3.44,198,3.986,440,6.946,553,4.893,598,2.167,609,2.012,707,4.549,735,2.418,771,3.421,853,0.974,1696,3.986,2127,5.162,2133,5.522,2138,5.162,2140,4.893,2141,5.522,2146,5.522,2147,6.068,2148,4.678,2149,6.068,2150,6.068,2151,8.165]],["t/623",[0,0.329,10,0.593,22,1.357,24,0.741,38,0.87,39,0.678,43,0.349,46,1.608,54,1.75,58,0.762,84,1.192,86,1.267,92,1.366,104,2.066,111,1.521,119,1.493,128,1.443,146,1.581,157,1.688,175,0.672,180,0.979,239,1.42,298,1.377,308,2.397,326,1.55,367,1.777,373,1.011,375,1.688,383,1.03,385,2.858,410,2.124,436,1.991,528,2.308,564,0.609,570,1.887,598,0.941,609,0.873,615,1.206,637,1.468,648,1.581,650,3.508,654,1.443,706,3.354,707,4.532,713,1.777,723,1.493,732,1.521,735,1.733,771,1.104,776,4.481,779,1.887,784,1.887,803,1.777,827,1.152,853,0.698,983,3.959,1013,1.521,1015,1.829,1107,1.829,1182,2.241,1600,1.953,1938,2.241,1947,2.124,1948,1.688,1959,3.701,1967,1.953,1970,1.829,1987,2.124,1992,2.241,2124,3.226,2126,2.397,2128,2.397,2129,2.397,2130,2.397,2131,2.397,2132,2.397,2134,2.397,2135,3.959,2140,2.124,2142,2.397,2143,2.397,2152,2.397,2153,2.635,2154,2.635,2155,5.557,2156,2.397,2157,5.557,2158,2.241,2159,2.635,2160,3.354,2161,2.635,2162,2.635,2163,2.635,2164,2.635,2165,2.635,2166,2.635,2167,4.351,2168,2.635,2169,2.635,2170,2.635,2171,2.635,2172,2.635]],["t/625",[707,5.774,735,3.531,803,5.978,853,1.422]],["t/627",[0,0.384,38,0.965,39,0.665,43,0.52,46,1.874,180,1.141,236,5.222,564,1.497,707,3.608,735,2.58,853,1.039,1948,4.151,1985,6.323,2118,5.893,2148,4.993,2160,6.574,2173,8.527,2174,5.222,2175,6.476,2176,6.476,2177,6.476,2178,6.476]],["t/629",[0,0.432,38,0.825,39,0.604,43,0.586,180,1.285,706,5.624,707,5.129,735,2.906,853,1.17,1392,5.225,1948,4.675,2124,6.827,2148,5.624,2160,5.624,2174,5.882,2179,7.295]],["t/631",[0,0.427,38,0.815,39,0.658,43,0.578,73,3.42,84,3.259,383,2.815,707,4.013,735,2.87,853,1.156,1948,4.617,2148,5.554,2160,5.554,2174,5.808,2180,4.617,2181,9.134,2182,7.204]],["t/633",[0,0.422,38,0.805,39,0.654,43,0.571,73,3.378,84,3.219,145,4.8,260,5.276,383,2.781,707,3.964,735,2.835,853,1.141,1948,4.56,2148,5.485,2160,5.485,2174,5.737,2183,9.063,2184,7.115]],["t/635",[373,3.399,735,3.531,1853,7.538,2121,7.146,2123,8.064]],["t/637",[10,1.339,24,1.671,56,3.722,98,3.904,175,2.055,180,1.419,239,3.203,326,3.496,371,5.408,373,2.28,375,3.809,388,5.055,555,3.256,582,4.009,629,4.737,637,3.311,707,4.485,735,2.368,886,4.792,1013,3.431,1360,5.408,1948,5.16,1958,8.309,1970,4.126,2124,5.97,2139,5.408,2185,7.326,2186,5.943]],["t/639",[0,0.36,38,0.924,39,0.536,43,0.487,46,1.755,73,2.881,92,1.905,175,1.549,180,1.069,239,3.271,363,3.38,373,2.327,375,3.889,383,2.372,406,3.503,582,4.093,707,3.38,1245,4.499,1948,3.889,1998,5.522,2109,5.522,2124,4.499,2140,4.893,2185,5.522,2187,6.068,2188,6.068,2189,6.068,2190,6.068,2191,6.068,2192,6.068,2193,6.068,2194,6.068,2195,6.068]],["t/641",[92,2.87,96,4.514,500,4.928]],["t/644",[0,0.393,10,1.492,38,0.979,39,0.633,43,0.532,105,2.929,108,3.897,564,2.001,580,4.599,598,2.366,608,4.696,609,2.196,615,3.033,853,1.063,1140,3.271,1141,3.363,1156,3.515,2196,6.028,2197,3.462,2198,6.625,2199,6.625]],["t/646",[0,0.402,10,1.527,38,0.994,39,0.64,43,0.544,564,2.031,598,2.422,608,4.749,609,2.248,615,3.104,853,1.088,1140,3.348,1141,3.442,1156,3.598,2197,3.543,2200,6.781,2201,6.781,2202,6.781,2203,6.781]],["t/648",[0,0.375,10,1.427,38,0.951,39,0.619,43,0.509,105,2.801,180,1.116,436,2.899,564,1.942,598,2.262,608,4.594,609,2.1,615,2.899,853,1.016,985,3.31,1140,3.127,1141,3.215,1156,3.361,1767,4.161,2196,5.764,2197,3.31,2204,4.397,2205,4.397,2206,6.334,2207,6.334]],["t/650",[0,0.402,10,1.527,38,0.994,39,0.64,43,0.544,105,2.998,564,2.031,598,2.422,608,4.749,609,2.248,615,3.104,853,1.088,1140,3.348,1141,3.442,1156,3.598,2197,3.543,2208,6.781,2209,6.781,2210,6.781]],["t/652",[0,0.402,10,1.527,38,0.994,39,0.64,43,0.544,105,2.998,564,2.031,598,2.422,608,4.749,609,2.248,615,3.104,853,1.088,1140,3.348,1141,3.442,1156,3.598,2197,3.543,2211,6.781,2212,6.781,2213,6.781]],["t/654",[0,0.375,10,1.427,38,0.951,39,0.619,43,0.509,105,2.801,180,1.116,436,2.899,564,1.942,598,2.262,607,5.764,608,4.594,609,2.1,615,2.899,853,1.016,985,3.31,1140,3.127,1141,3.215,1156,3.361,1767,4.161,2197,3.31,2204,4.397,2205,4.397,2214,6.334,2215,6.334]],["t/656",[0,0.375,10,1.427,38,0.951,39,0.619,43,0.509,105,2.801,180,1.116,436,2.899,564,1.942,598,2.262,608,4.594,609,2.1,615,2.899,853,1.016,985,3.31,1140,3.127,1141,3.215,1156,3.361,1767,4.161,2197,3.31,2204,4.397,2205,4.397,2216,6.334,2217,6.334,2218,6.334]],["t/658",[0,0.356,10,1.353,38,0.917,39,0.602,43,0.482,68,2.163,105,2.655,180,1.058,217,1.762,436,2.749,564,1.874,598,2.145,608,4.789,609,1.991,615,2.749,663,4.629,853,0.963,985,3.138,1140,2.965,1141,3.048,1156,3.186,1185,4.453,1767,3.945,2197,3.138,2204,4.169,2205,4.169,2219,6.005,2220,6.005,2221,6.005]],["t/660",[0,0.38,10,1.443,38,0.958,39,0.622,43,0.514,68,2.307,105,2.832,217,1.88,564,1.957,608,4.914,609,2.123,615,2.932,663,4.937,853,1.027,1089,4.446,1140,3.162,1141,3.251,1156,3.398,1185,4.749,2197,3.347,2222,6.405,2223,6.405,2224,6.405]],["t/662",[0,0.402,10,1.527,38,0.994,39,0.64,43,0.544,105,2.998,564,2.031,598,2.422,608,4.749,609,2.248,615,3.104,853,1.088,1140,3.348,1141,3.442,1156,3.598,2197,3.543,2225,6.781,2226,6.781,2227,6.781]],["t/664",[0,0.375,10,1.427,38,0.951,39,0.619,43,0.509,105,2.801,180,1.116,436,2.899,564,1.942,598,2.262,608,4.594,609,2.1,615,2.899,853,1.016,985,3.31,1140,3.127,1141,3.215,1156,3.361,1767,4.161,2197,3.31,2204,4.397,2205,4.397,2228,6.334,2229,6.334,2230,6.334]],["t/666",[0,0.375,10,1.427,38,0.951,39,0.619,43,0.509,105,2.801,180,1.116,436,2.899,564,1.942,598,2.262,608,4.594,609,2.1,615,2.899,853,1.016,985,3.31,1140,3.127,1141,3.215,1156,3.361,1767,4.161,2197,3.31,2204,4.397,2205,4.397,2231,6.334,2232,6.334,2233,6.334]],["t/668",[0,0.375,10,1.427,38,0.951,39,0.619,43,0.509,105,2.801,180,1.116,436,2.899,564,1.942,598,2.262,608,4.594,609,2.1,615,2.899,853,1.016,985,3.31,1140,3.127,1141,3.215,1156,3.361,1767,4.161,2197,3.31,2204,4.397,2205,4.397,2234,6.334,2235,6.334,2236,5.764]],["t/670",[0,0.375,10,1.427,38,0.951,39,0.619,43,0.509,105,2.801,180,1.116,436,2.899,564,1.942,598,2.262,608,4.594,609,2.1,615,2.899,853,1.016,985,3.31,1140,3.127,1141,3.215,1156,3.361,1767,4.161,2197,3.31,2204,4.397,2205,4.397,2237,6.334,2238,6.334,2239,6.334]],["t/672",[0,0.402,10,1.527,38,0.994,39,0.64,43,0.544,105,2.998,564,2.031,598,2.422,608,4.749,609,2.248,615,3.104,853,1.088,1140,3.348,1141,3.442,1156,3.598,2197,3.543,2240,6.17,2241,6.781,2242,6.781]],["t/674",[0,0.402,10,1.527,38,0.994,39,0.64,43,0.544,105,2.998,564,2.031,598,2.422,608,4.749,609,2.248,615,3.104,853,1.088,1140,3.348,1141,3.442,1156,3.598,2197,3.543,2240,6.17,2243,6.781,2244,6.781]],["t/676",[0,0.402,10,1.527,38,0.994,39,0.64,43,0.544,105,2.998,564,2.031,598,2.422,608,4.749,609,2.248,615,3.104,853,1.088,1140,3.348,1141,3.442,1156,3.598,2197,3.543,2236,6.17,2245,6.781,2246,6.781]],["t/679",[0,0.352,10,1.339,38,0.672,39,0.599,43,0.477,68,2.141,84,3.643,136,2.628,180,1.047,182,1.58,383,3.147,424,3.904,467,3.203,564,1.861,608,4.449,615,2.72,771,2.49,853,0.953,1140,2.934,1141,3.016,2197,3.106,2247,4.792,2248,4.582,2249,4.257,2250,4.257,2251,4.407,2252,8.052,2253,5.943,2254,5.943]],["t/681",[0,0.352,10,1.339,38,0.672,39,0.599,43,0.477,68,2.141,84,3.643,136,2.628,180,1.047,383,3.147,424,3.904,467,3.203,564,1.861,608,4.449,615,2.72,771,2.49,853,0.953,1140,2.934,1141,3.016,2197,3.106,2247,4.792,2248,4.582,2249,4.257,2250,4.257,2251,4.407,2255,4.257,2256,8.052,2257,5.943,2258,5.943]],["t/683",[0,0.364,10,1.381,38,0.694,39,0.54,43,0.492,68,2.209,84,4.197,136,2.712,180,1.08,383,2.397,424,4.029,467,3.305,564,1.901,608,4.52,615,2.807,771,2.569,853,0.984,1140,3.028,1141,3.113,2197,3.205,2247,4.945,2248,4.728,2249,4.392,2250,4.392,2251,4.547,2259,6.132,2260,6.132,2261,6.132]],["t/685",[0,0.364,10,1.381,38,0.694,39,0.54,43,0.492,68,2.209,84,4.197,136,2.712,180,1.08,383,2.397,424,4.029,467,3.305,564,1.901,608,4.52,615,2.807,771,2.569,853,0.984,1140,3.028,1141,3.113,2197,3.205,2247,4.945,2248,4.728,2249,4.392,2250,4.392,2251,4.547,2262,5.58,2263,6.132,2264,6.132]],["t/687",[0,0.384,10,1.459,39,0.425,43,0.52,68,2.333,84,3.858,136,2.864,180,1.141,383,2.531,424,4.255,467,3.491,564,1.971,608,4.645,771,2.713,853,1.039,1140,3.198,1141,3.287,2248,4.993,2249,4.639,2250,4.639,2251,4.802,2265,6.476,2266,6.476,2267,6.476,2268,6.476]],["t/690",[0,0.412,6,2.546,38,0.786,39,0.456,43,0.558,180,1.223,191,5.906,301,3.936,410,7.194,548,5.149,615,3.178,831,5.599,985,3.629,1001,6.318,1141,3.524,1142,6.318,2197,3.629,2269,6.944,2270,6.944,2271,6.318,2272,6.318,2273,6.944]],["t/692",[135,3.845,410,6.195,632,4.355,714,3.436,732,4.435,971,6.195,1481,5.183,2180,4.924,2274,6.991,2275,5.183,2276,7.332,2277,7.683,2278,7.683,2279,7.683]],["t/694",[39,0.686,49,3.61,135,2.885,601,3.889,714,2.578,723,4.471,771,3.304,853,0.925,860,3.695,1089,4.002,1090,3.889,1625,5.649,2180,3.695,2255,4.129,2275,6.828,2276,4.444,2280,7.176,2281,6.359,2282,7.176,2283,4.444,2284,4.275,2285,4.129,2286,4.275,2287,4.275,2288,4.275]],["t/696",[0,0.219,38,0.957,39,0.7,43,0.297,49,2.315,52,1.246,85,2.315,92,1.161,135,1.851,180,0.651,367,2.494,598,2.037,601,2.494,609,1.891,615,1.692,623,2.567,714,3.784,723,3.234,733,2.567,771,2.39,853,0.593,860,3.656,1089,2.567,1090,2.494,1151,2.648,1625,4.086,1689,4.23,2180,2.37,2255,2.648,2275,6.031,2276,6.036,2280,7.125,2281,6.313,2282,5.191,2283,2.851,2284,2.742,2285,2.648,2286,2.742,2287,2.742,2288,2.742,2289,2.742,2290,5.616,2291,3.145,2292,2.981,2293,3.364,2294,3.364,2295,3.364,2296,2.981,2297,3.145,2298,3.145,2299,3.145]],["t/698",[135,3.897,139,5.641,239,5.169,632,4.414,714,3.482,762,4.77,1080,5.577,2274,7.085,2275,5.253,2289,5.774,2300,7.787,2301,7.787]],["t/700",[39,0.686,49,3.967,135,3.17,601,4.273,714,2.833,723,3.591,771,3.52,853,1.016,860,4.06,1089,4.397,1090,4.273,1625,4.537,2180,4.06,2255,4.537,2275,6.361,2281,5.107,2283,4.883,2284,4.697,2285,4.537,2286,4.697,2287,4.697,2288,4.697,2302,7.646]],["t/702",[0,0.242,38,0.933,39,0.699,43,0.328,49,2.561,52,1.378,85,2.561,92,1.284,135,2.047,180,0.721,367,2.759,598,2.201,601,2.759,609,2.043,615,1.872,623,2.84,714,3.958,723,2.319,733,2.84,771,2.581,853,0.656,860,3.949,1089,2.84,1090,2.759,1151,2.93,1625,2.93,1689,4.568,2180,2.622,2255,2.93,2275,5.565,2281,5.976,2283,3.153,2284,3.033,2285,2.93,2286,3.033,2287,3.033,2288,3.033,2289,3.033,2290,5.976,2291,3.479,2292,3.298,2296,3.298,2297,3.479,2298,3.479,2299,3.479,2302,7.506,2303,4.09,2304,4.09]],["t/704",[7,2.83,8,4.672,62,4.131,135,3.897,157,4.99,223,6.003,470,7.085,534,4.495,741,4.338,771,3.262,2180,4.99,2275,5.253,2305,8.157]],["t/706",[39,0.689,49,3.374,132,3.17,135,2.697,180,0.949,298,2.816,564,1.246,714,2.41,723,4.267,771,3.934,853,0.864,860,3.453,1089,3.741,1090,3.635,1359,4.903,1625,5.391,2180,4.824,2255,3.859,2275,5.851,2276,4.154,2283,4.154,2286,3.995,2287,3.995,2288,3.995,2289,3.995,2305,6.402,2306,6.849,2307,5.388,2308,4.903,2309,4.903,2310,4.345]],["t/708",[0,0.328,38,0.996,39,0.714,43,0.286,49,2.23,52,1.2,85,2.23,92,1.118,135,1.782,180,0.627,367,2.402,381,2.136,598,1.979,609,1.837,615,1.63,623,2.472,714,3.718,723,3.141,771,2.849,784,2.55,853,0.571,1089,2.472,1090,2.402,1151,2.55,1625,3.968,1689,4.108,2180,3.551,2255,2.55,2275,4.588,2276,5.916,2286,2.64,2287,2.64,2288,2.64,2289,2.64,2290,5.484,2291,3.029,2292,2.871,2293,3.24,2294,3.24,2295,3.24,2296,2.871,2297,3.029,2298,3.029,2299,3.029,2305,5.785,2306,6.188,2308,3.24,2309,6.983,2310,6.187,2311,3.24,2312,3.561]],["t/711",[0,0.259,10,0.984,29,2.129,38,0.494,39,0.746,43,0.351,58,1.264,92,2.031,132,2.57,135,2.187,180,0.77,217,1.9,653,2.8,713,2.947,714,2.894,723,2.477,742,2.87,829,2.355,853,0.701,985,3.382,1090,4.366,1144,3.716,1160,4.366,1174,3.523,1319,4.799,1346,3.368,1353,4.799,1688,3.976,2262,3.976,2313,4.369,2314,3.976,2315,4.369,2316,4.369,2317,4.99,2318,4.99,2319,3.716,2320,3.523,2321,4.369,2322,4.369,2323,3.716,2324,3.716,2325,4.369,2326,3.976,2327,3.976]],["t/713",[0,0.427,10,1.139,24,2.024,31,4.41,38,0.814,39,0.692,43,0.578,46,1.463,92,1.588,121,3.242,122,2.464,615,2.315,653,5.371,657,2.237,713,4.856,714,4.083,734,3.899,829,2.726,853,0.811,1032,3.167,2158,6.123,2317,3.899,2318,3.899,2320,4.078,2328,4.602,2329,4.302,2330,4.302,2331,5.058,2332,4.602,2333,4.602,2334,4.602,2335,4.602,2336,4.602,2337,4.602,2338,4.602]],["t/715",[0,0.438,10,1.181,38,0.593,39,0.698,43,0.593,46,1.516,92,1.645,121,3.359,122,2.554,615,2.399,653,5.477,657,2.318,713,4.98,714,4.149,734,4.041,756,3.026,829,2.825,853,0.841,1032,3.282,1756,4.77,2158,6.28,2317,4.041,2318,4.041,2326,4.77,2327,4.77,2328,4.77,2332,4.77,2333,4.77,2334,4.77,2335,4.77,2336,4.77,2337,4.77,2338,4.77,2339,5.242]],["t/717",[10,1.95,39,0.633,135,3.316,601,4.469,653,4.246,713,5.839,714,4.311,771,4.038,853,1.063,860,4.246,1346,6.673,2180,5.547,2284,4.912,2285,4.745,2340,6.028,2341,6.028,2342,6.625]],["t/719",[0,0.335,10,0.822,24,1.942,38,0.88,39,0.731,43,0.293,92,1.146,135,1.827,298,1.908,601,2.463,614,2.34,615,1.671,653,4.984,713,4.661,714,4.148,741,3.147,771,2.367,829,1.968,853,0.586,860,2.34,1160,2.463,1346,5.327,1353,2.707,2180,3.62,2284,2.707,2285,2.615,2289,2.707,2290,5.571,2292,4.555,2296,2.944,2317,2.814,2318,2.814,2319,4.805,2320,4.555,2323,3.105,2324,3.105,2329,3.105,2330,3.105,2340,6.287,2341,3.322,2343,3.322,2344,3.322,2345,3.322,2346,3.322,2347,3.651,2348,5.649,2349,3.651,2350,3.651,2351,3.651]],["t/721",[10,1.708,39,0.674,135,3.795,493,6.449,653,4.859,713,6.363,714,4.218,771,3.952,853,1.216,2352,6.899,2353,6.899]],["t/723",[0,0.332,24,1.927,38,0.946,39,0.74,43,0.289,92,1.132,113,3.28,135,1.804,157,2.311,180,0.635,381,2.163,383,1.409,493,5.831,614,2.311,615,1.65,653,2.311,713,4.624,714,3.455,738,2.209,745,2.163,771,2.344,829,1.943,853,0.578,1160,2.432,1278,2.368,1346,4.313,1353,2.673,1420,2.121,2026,3.067,2311,3.28,2317,2.779,2318,2.779,2319,4.758,2320,4.511,2323,3.067,2324,3.067,2329,3.067,2330,3.067,2343,3.28,2344,3.28,2345,3.28,2346,3.28,2352,6.237,2353,3.28,2354,3.605,2355,6.855,2356,5.594,2357,3.605,2358,5.594,2359,3.605,2360,3.605,2361,3.605,2362,3.605,2363,3.605]],["t/726",[0,0.452,4,2.711,38,0.621,39,0.653,43,0.441,58,1.588,84,3.45,175,1.402,180,0.967,236,4.427,373,2.106,395,3.113,503,4.071,564,2.025,609,1.82,629,3.23,853,0.881,884,4.671,1615,4.996,1616,4.996,2364,9.467,2365,5.491,2366,5.491,2367,5.491,2368,5.491,2369,5.491,2370,5.491,2371,5.491,2372,5.491,2373,5.491,2374,5.491,2375,5.491,2376,5.491,2377,5.491]],["t/728",[92,2.87,96,4.514,500,4.928]],["t/730",[0,0.438,6,2.708,38,0.836,39,0.609,43,0.593,180,1.302,550,6.284,564,2.145,756,5.358,853,1.185,928,6.648,2378,6.284,2379,7.388,2380,7.388]],["t/732",[0,0.541,6,2.641,38,0.815,39,0.473,43,0.578,180,1.269,550,6.128,564,2.319,853,1.156,854,6.162,928,6.543,1408,4.238,1689,5.341,2378,6.128,2381,7.204]],["t/734",[0,0.292,38,0.558,39,0.763,43,0.396,66,3.159,86,2.37,504,3.654,630,3.693,779,3.53,853,0.791,928,5.917,1600,3.654,1730,3.974,1731,3.799,1809,3.974,1982,4.485,1985,3.654,2378,4.192,2382,4.192,2383,4.928,2384,4.928,2385,4.928,2386,4.928,2387,8.26,2388,4.928,2389,4.928,2390,4.928,2391,4.928,2392,4.928,2393,4.928,2394,4.928,2395,4.928]],["t/736",[0,0.474,6,2.934,39,0.525,85,5.011,97,4.182,174,3.353,297,4.802,466,5.398,474,5.398,534,4.619,564,1.85,1795,5.732]],["t/738",[0,0.444,38,0.847,39,0.614,43,0.601,107,4.491,175,1.91,528,3.971,609,3.102,632,4.242,657,3.309,853,1.201,904,4.403,1149,4.585,2396,6.81,2397,7.484]],["t/740",[0,0.438,38,0.836,39,0.609,43,0.593,107,4.433,119,4.188,175,1.886,528,3.92,609,3.077,632,4.188,657,3.267,853,1.185,904,4.346,1149,4.526,2249,5.292,2398,7.388]],["t/742",[0,0.441,38,0.842,39,0.708,43,0.598,58,1.792,71,1.956,180,1.091,348,3.795,428,1.51,528,3.95,564,2.236,598,3.17,609,2.943,853,0.661,942,4.775,1007,4.995,1187,3.717,1270,2.86,1786,3.055,2285,6.358,2382,7.932,2399,8.876,2400,7.444,2401,4.12,2402,3.504]],["t/744",[6,2.934,56,5.011,93,3.579,139,4.708,149,4.313,225,5.011,256,5.555,964,7.282,1032,6.106,1278,6.406]],["t/746",[0,0.384,24,1.821,38,0.733,39,0.626,43,0.52,46,1.874,68,2.333,180,1.141,528,3.436,564,2.342,598,3.046,609,2.827,853,1.039,1187,5.117,1481,4.369,2403,8.109,2404,5.509,2405,5.509,2406,6.476]],["t/748",[0,0.384,24,1.821,38,0.733,39,0.626,43,0.52,68,2.333,180,1.141,528,3.436,564,2.342,598,3.046,609,2.827,853,1.039,1187,5.117,1278,4.255,1392,4.639,2403,8.109,2404,5.509,2405,5.509,2407,6.476]],["t/750",[0,0.384,24,1.821,38,0.733,39,0.626,43,0.52,68,2.333,180,1.141,528,3.436,564,2.342,598,3.046,609,2.827,853,1.039,1032,4.056,1187,5.117,1392,4.639,2403,8.109,2404,5.509,2405,5.509,2408,6.476]],["t/752",[0,0.407,38,0.776,39,0.581,43,0.551,73,4.204,383,2.682,395,3.889,528,3.64,564,2.047,853,1.101,866,6.243,988,5.836,1117,5.29,1187,5.313,1286,4.628,2409,4.914,2410,6.243,2411,6.861,2412,6.861,2413,6.861]],["t/754",[0,0.412,38,0.786,39,0.585,43,0.558,73,4.237,383,2.714,395,3.936,528,3.684,564,2.063,853,1.114,1187,5.916,1286,4.684,2249,6.391,2409,4.974,2414,5.906,2415,6.944,2416,5.353]],["t/756",[0,0.412,38,0.786,39,0.585,43,0.558,73,4.237,383,2.714,395,3.936,528,3.684,564,2.063,853,1.114,1187,5.916,1286,4.684,2409,4.974,2414,5.906,2416,5.353,2417,8.923,2418,6.944]],["t/758",[0,0.412,38,0.786,39,0.585,43,0.558,73,4.237,383,2.714,395,3.936,528,3.684,564,2.063,853,1.114,1187,5.916,1286,4.684,2409,4.974,2414,5.906,2416,5.353,2419,8.923,2420,6.944]],["t/760",[0,0.412,38,0.786,39,0.585,43,0.558,73,4.237,383,2.714,395,3.936,528,3.684,564,2.063,853,1.114,1187,5.916,1286,4.684,2409,4.974,2410,6.318,2416,5.353,2421,8.923,2422,6.944]],["t/762",[0,0.417,38,0.795,39,0.651,43,0.564,73,4.27,383,2.747,524,4.879,528,3.729,564,2.079,652,3.108,1187,4.217,1286,4.741,1646,6.395,2409,5.034,2416,5.418,2423,7.028,2424,7.028,2425,7.028]],["t/764",[38,0.905,79,5.732,128,5.342,244,5.934,397,4.384,562,3.318,762,4.903,969,7.282,971,6.452,1095,6.169,2426,8.002]],["t/766",[0,0.239,12,6.3,39,0.697,43,0.324,52,2.054,67,3.252,68,1.453,70,2.328,79,2.889,86,1.94,98,2.65,109,1.891,148,2.991,182,1.072,217,1.184,250,2.889,287,2.8,348,2.471,362,2.889,421,2.65,436,1.846,562,1.672,598,3.532,609,2.715,629,2.373,663,4.7,723,2.286,853,0.647,936,3.431,955,3.252,1049,3.67,1088,3.252,1212,5.666,1270,5.686,1454,3.252,1534,3.431,1689,2.991,1691,2.174,1734,3.109,2092,3.67,2427,4.033,2428,6.096,2429,6.096,2430,6.096,2431,8.191]],["t/768",[0,0.292,12,5.061,39,0.592,43,0.396,45,4.192,68,1.775,84,2.23,107,2.957,180,0.868,383,1.926,427,2.575,431,3.234,560,5.239,564,2.367,598,3.223,609,2.343,723,4.006,738,3.019,762,3.019,853,0.791,1187,4.24,1396,9.045,1420,2.899,1513,5.448,1584,6.011,1660,3.325,2432,7.066,2433,8.26,2434,4.928]],["t/770",[0,0.427,38,0.815,39,0.599,43,0.578,73,4.763,383,2.815,528,3.822,564,2.112,598,2.573,609,2.388,648,4.322,853,1.156,1270,6.341,2435,7.204,2436,7.204]],["t/772",[0,0.388,38,0.972,39,0.629,43,0.526,132,3.853,383,2.56,518,3.781,564,2.216,598,3.068,609,2.848,853,1.051,1149,4.013,1289,5.96,1290,7.817,1524,7.108,2396,5.96,2437,6.55,2438,6.55]],["t/774",[0,0.363,10,0.684,13,1.995,39,0.678,42,1.946,43,0.492,52,2.064,69,1.541,87,2.184,104,2.319,109,1.424,119,2.769,121,1.946,157,1.946,175,1.247,182,0.807,189,2.448,190,1.358,192,1.995,193,2.108,197,1.995,198,1.995,346,2.763,348,1.86,429,0.999,430,1.587,562,1.259,564,1.997,580,2.108,659,2.048,711,2.341,732,1.753,738,1.86,742,1.995,789,2.341,801,2.763,829,1.637,853,0.487,938,5.575,940,2.048,941,4.155,942,3.765,985,4.515,1007,3.938,1157,2.251,1160,3.295,1174,2.448,1187,3.677,1188,2.448,1319,2.251,1408,2.873,1596,3.391,1660,2.048,1691,1.637,1724,4.155,1874,2.583,2152,2.763,2251,3.622,2439,3.036,2440,3.036,2441,3.036,2442,2.763,2443,2.763,2444,3.036,2445,4.884,2446,3.036,2447,6.127,2448,4.884,2449,3.036,2450,4.884,2451,3.036,2452,3.036,2453,3.036,2454,3.036,2455,3.036,2456,3.036,2457,3.036]],["t/776",[0,0.358,38,0.92,39,0.695,43,0.484,47,5.213,68,1.433,84,1.799,107,2.387,132,2.34,148,2.949,180,0.701,256,2.761,310,4.787,383,1.555,387,3.207,461,2.613,518,3.482,528,3.201,564,1.88,598,2.905,609,2.696,853,0.638,942,4.651,1032,3.778,1107,4.188,1270,4.188,1278,2.613,1369,3.383,1420,2.34,1454,4.864,1563,6.558,1660,2.683,2382,3.383,2442,3.619,2458,7.287,2459,3.978,2460,6.032,2461,6.032,2462,6.032,2463,3.978]],["t/778",[0,0.422,38,0.805,39,0.595,43,0.571,46,2.058,73,4.735,383,2.781,528,3.775,564,2.095,598,3.237,609,2.359,853,1.141,1038,7.709,1270,4.939,2464,7.115]],["t/780",[0,0.422,38,0.805,39,0.595,43,0.571,73,4.735,151,6.291,383,2.781,461,4.674,528,3.775,564,2.095,598,2.541,609,3.004,853,1.141,1270,4.939,2465,7.115]],["t/782",[0,0.335,10,1.273,17,2.718,24,1.589,39,0.629,43,0.454,71,3.694,180,0.996,320,5.401,383,3.041,467,3.046,564,2.057,633,5.143,738,4.766,762,3.463,853,0.907,940,3.813,1419,5.401,2250,4.048,2466,5.652,2467,5.652,2468,7.78,2469,7.78,2470,7.78,2471,7.08,2472,7.78,2473,5.652]],["t/784",[0,0.427,24,2.025,39,0.599,43,0.578,180,1.269,467,3.883,564,2.319,853,1.156,1419,6.341,2250,5.16,2471,6.555,2474,7.204,2475,9.134,2476,7.204,2477,7.204]],["t/786",[92,2.87,96,4.514,500,4.928]],["t/788",[0,0.427,38,0.814,39,0.677,43,0.578,47,3.242,92,2.259,110,3.511,182,1.914,190,2.262,428,3.537,429,3.298,436,3.836,632,2.867,929,5.653,1017,3.75,1024,5.086,2478,4.856,2479,3.899,2480,7.953,2481,5.058]],["t/790",[29,4.128,69,4.3,213,5.566,564,1.958,593,7.207,940,5.715,997,5.715,1675,7.709]],["t/792",[0,0.338,23,3.75,24,2.202,38,0.646,39,0.662,43,0.458,92,1.792,109,2.677,122,2.781,428,3.278,562,2.367,735,3.563,762,3.497,929,6.033,1023,3.236,1024,4.364,1032,3.574,1145,4.855,1392,4.088,2478,3.851,2479,6.039,2480,4.401,2482,4.855,2483,5.708,2484,5.708,2485,5.708,2486,5.708,2487,5.708]],["t/794",[0,0.38,24,2.38,38,0.725,39,0.688,43,0.514,84,2.897,92,2.01,383,2.503,428,2.348,429,3.118,732,3.697,735,2.552,929,5.71,1024,4.716,1524,4.749,2478,4.32,2480,4.937,2482,8.065,2488,6.405]],["t/796",[0,0.397,10,1.51,24,1.884,38,0.758,39,0.674,43,0.538,182,1.782,373,2.571,428,2.457,429,2.204,522,3.451,562,2.779,723,3.799,789,5.167,2489,8.72,2490,5.167,2491,5.404,2492,5.404,2493,6.702,2494,8.72,2495,6.702]],["t/798",[0,0.432,24,2.051,38,0.825,39,0.604,43,0.586,182,1.939,428,2.674,429,2.399,654,3.996,1196,4.469,1330,4.675,1785,5.409,2491,5.882,2492,5.882,2496,6.205,2497,7.295,2498,6.638,2499,7.295]],["t/800",[0,0.438,24,2.077,38,0.836,39,0.609,43,0.593,180,1.302,182,2.468,217,2.724,428,2.708,429,2.43,2491,5.957,2492,5.957,2500,5.957,2501,7.388,2502,7.388]],["t/802",[0,0.438,24,2.077,38,0.836,39,0.609,43,0.593,180,1.302,182,1.964,217,2.724,428,3.403,429,2.43,2491,5.957,2492,5.957,2500,5.957,2503,7.388,2504,7.388]],["t/804",[0,0.438,38,0.836,39,0.609,43,0.593,92,2.319,190,3.304,427,3.861,929,6.261,1024,4.116,1196,4.526,2478,4.984,2482,6.284,2496,6.284,2505,7.388,2506,7.388,2507,7.388]],["t/806",[0,0.402,24,1.906,38,0.767,39,0.577,43,0.544,92,2.128,180,1.195,182,1.803,217,1.99,428,2.486,429,2.89,555,3.714,662,5.028,732,3.914,735,2.702,929,6.576,1024,3.777,2478,4.574,2480,5.227,2500,5.467,2508,6.781]],["t/808",[0,0.417,24,1.976,38,0.795,39,0.59,43,0.564,92,2.206,180,1.238,428,2.577,735,2.8,929,6.066,1024,3.915,1869,6.395,2478,4.741,2479,5.418,2490,5.418,2509,7.028,2510,7.028,2511,5.978,2512,6.395,2513,5.667]],["t/810",[0,0.175,10,0.666,23,4.543,38,0.335,39,0.584,43,0.238,47,6.411,68,1.066,92,0.929,101,6.591,107,1.775,180,0.521,182,0.787,195,4.352,217,0.868,225,1.853,244,3.547,294,2.692,404,2.692,427,1.546,436,4.579,587,1.853,643,2.692,648,1.775,929,3.227,1021,2.517,1024,4.762,1032,4.754,1264,2.281,1278,3.142,1784,2.517,1785,6.339,2478,1.996,2479,5.331,2480,4.642,2490,3.687,2498,5.478,2500,4.855,2511,6.458,2513,4.855,2514,2.517,2515,2.959,2516,4.783,2517,4.783,2518,2.959,2519,2.692,2520,2.959,2521,6.915,2522,2.959,2523,2.959,2524,2.959,2525,4.783,2526,2.959]],["t/812",[0,0.375,38,0.717,39,0.551,43,0.509,47,4.06,92,1.988,101,4.883,180,1.116,182,1.684,190,2.833,213,4.161,225,3.967,427,3.31,436,3.846,587,3.967,742,4.161,1024,3.529,1088,5.107,1785,6.231,2478,4.273,2490,6.478,2513,5.107,2514,5.388,2519,5.764,2527,6.334,2528,6.334,2529,6.334]],["t/814",[0,0.287,23,4.586,38,0.548,39,0.587,43,0.389,47,5.738,92,1.521,101,6.308,180,0.854,225,3.034,427,2.532,436,2.218,517,7.445,587,3.034,929,4.709,1021,4.122,1024,4.558,1032,5.124,1278,3.183,1785,6.067,2478,3.269,2479,5.382,2490,5.382,2511,4.122,2512,6.352,2513,5.629,2514,4.122,2530,4.846,2531,4.846,2532,8.182,2533,6.981,2534,4.846,2535,4.846,2536,4.846]],["t/816",[92,2.87,96,4.514,500,4.928]],["t/818",[0,0.255,38,0.487,39,0.765,43,0.346,58,1.245,68,1.55,84,1.947,92,1.351,180,1.128,210,1.861,250,4.584,383,1.682,564,1.766,624,3.083,756,2.484,771,1.803,828,7.197,853,0.69,1325,2.695,1402,3.47,1660,2.903,1810,5.444,1817,3.661,1993,3.916,2310,6.161,2537,3.916,2538,4.304,2539,6.953,2540,7.699,2541,6.4,2542,3.916,2543,4.304]],["t/820",[0,0.289,10,1.097,38,0.551,39,0.778,43,0.391,54,1.959,58,1.08,68,0.79,92,1.171,119,1.244,180,0.657,182,1.712,210,0.949,345,1.374,429,0.722,505,1.996,518,1.266,582,1.48,589,3.009,624,2.673,771,2.407,823,2.767,828,5.959,853,0.352,854,1.48,901,1.691,997,2.517,1007,1.769,1273,2.195,1574,1.866,1596,1.523,1731,3.754,1802,1.866,1809,3.926,1810,5.478,1812,1.866,1817,4.142,2087,5.228,2310,6.026,2314,1.996,2537,3.396,2539,5.228,2540,8.165,2542,1.996,2544,2.194,2545,2.194,2546,2.194,2547,2.194,2548,2.194,2549,2.194]],["t/822",[0,0.474,6,2.934,39,0.525,58,2.315,85,5.011,97,4.182,174,3.353,297,4.802,466,5.398,474,5.398,534,4.619,1795,5.732]],["t/824",[0,0.402,8,4.069,38,0.767,39,0.677,43,0.544,58,1.962,93,3.032,153,5.768,175,1.731,180,1.195,182,1.803,418,3.844,428,2.486,429,2.23,652,4.31,762,4.154,827,3.842,1408,3.989,2550,6.781]],["t/826",[24,2.189,43,0.77,58,3.006,90,4.009,93,3.482,155,5.115,180,1.372,418,4.414,745,4.672,833,7.085,1408,4.581]],["t/828",[0,0.384,38,0.733,39,0.691,43,0.52,58,2.467,73,3.075,109,3.037,180,1.141,182,1.722,428,2.374,429,2.13,430,3.384,504,6.323,608,3.155,652,2.864,853,1.039,1015,4.496,1273,3.81,1481,4.369,2063,5.509,2402,5.509,2551,6.476,2552,5.893]],["t/830",[0,0.397,38,0.758,39,0.716,43,0.538,58,2.523,182,1.782,428,2.457,429,2.204,430,3.502,436,3.068,652,2.963,853,1.075,870,4.403,1273,3.943,2063,5.701,2402,5.701,2552,7.935,2553,6.702,2554,6.702]],["t/832",[0,0.402,38,0.767,39,0.577,43,0.544,58,2.82,148,5.028,180,1.195,217,1.99,243,4.454,330,3.491,359,4.857,652,2.998,784,4.857,853,1.088,1168,7.474,1408,3.989,1488,5.467,1498,5.768,1517,6.17,2555,6.17,2556,6.781]],["t/834",[0,0.449,38,0.858,39,0.674,43,0.609,58,2.729,73,4.479,383,2.963,652,3.353,853,1.216,1486,6.899,2555,6.899,2557,7.582]],["t/836",[0,0.332,38,0.633,39,0.697,43,0.449,55,3.677,58,2.236,73,4.203,180,0.986,182,1.488,217,2.268,326,3.293,428,2.052,429,1.841,430,4.626,431,2.562,648,3.359,652,2.475,714,3.958,827,3.379,853,0.898,904,3.293,1196,3.429,1273,4.546,1946,4.513,2558,8.851]],["t/838",[0,0.314,38,0.598,39,0.746,43,0.425,54,2.989,55,3.475,58,2.149,73,3.528,175,1.35,180,1.309,182,1.406,217,1.553,256,3.672,326,3.112,429,1.74,732,3.053,827,2.313,853,0.849,1212,5.728,1213,4.265,1273,5.052,1609,6.761,1743,3.39,1965,3.789,2559,5.29,2560,5.29,2561,5.29,2562,5.29]],["t/840",[0,0.345,38,0.659,39,0.704,43,0.468,55,3.825,58,2.297,73,3.77,175,1.486,180,1.399,256,4.042,326,3.426,429,1.915,732,3.361,827,2.546,853,0.934,1211,4.695,1212,4.489,1213,7.286,1273,4.671,1330,3.732,1468,5.299,1743,3.732,1965,4.171,2563,7.941,2564,5.823,2565,5.823]],["t/842",[0,0.228,38,0.665,39,0.756,43,0.309,58,2.065,128,2.106,180,0.677,182,2.29,217,2.095,310,2.526,428,3.157,429,2.832,430,4.5,431,3.942,598,2.549,609,2.366,652,2.6,714,3.192,853,0.617,1015,2.669,1273,2.262,1408,2.262,1731,6.162,1901,5.349,2566,5.879,2567,3.845,2568,3.845]],["t/844",[24,2.189,43,0.77,58,3.006,90,4.009,93,3.482,155,5.115,180,1.372,418,4.414,745,4.672,836,6.623,1408,4.581]],["t/846",[0,0.345,27,3.426,38,0.898,39,0.688,43,0.468,58,2.614,153,4.953,180,1.026,182,2.111,428,2.911,429,2.612,430,4.15,827,4.244,853,0.934,925,3.244,1015,5.512,1408,3.426,1692,3.361,2569,5.823,2570,5.823,2571,5.823,2572,5.823,2573,5.823]],["t/848",[24,2.189,43,0.77,58,3.006,90,4.009,93,3.482,155,5.115,180,1.372,418,4.414,745,4.672,837,6.278,1408,4.581]],["t/850",[0,0.342,6,2.113,38,0.652,39,0.686,43,0.463,58,1.668,71,2.737,90,2.968,128,3.158,175,2.294,182,2.097,217,1.692,320,4.002,373,2.211,428,2.891,429,2.594,524,5.475,632,3.268,652,2.549,714,2.578,853,0.925,1257,4.648,1273,3.391,1743,5.054,1875,4.444,2574,5.765,2575,5.765,2576,5.765]],["t/852",[0,0.216,10,0.822,27,2.148,39,0.705,43,0.293,58,1.634,71,1.733,84,1.652,105,1.614,136,1.614,175,0.932,180,0.995,182,1.502,217,1.658,309,4.805,320,2.534,333,5.14,358,3.537,421,2.398,428,2.851,429,2.766,430,4.064,431,2.586,524,5.839,632,2.07,638,3.711,714,3.478,771,2.367,784,2.615,827,2.47,837,2.944,853,0.586,870,2.398,1015,4.796,1080,2.615,1257,4.555,1315,2.615,1408,2.148,1481,2.463,1743,4.428,1875,2.814,1947,2.944,1965,2.615,2443,3.322,2577,3.651,2578,3.651,2579,3.651,2580,3.651,2581,3.651,2582,3.651,2583,3.651]],["t/854",[24,2.189,43,0.77,58,3.006,90,4.009,93,3.482,155,5.115,180,1.372,418,4.414,745,4.672,835,6.623,1408,4.581]],["t/856",[0,0.229,10,1.331,22,1.993,24,1.088,39,0.681,43,0.311,58,1.709,69,1.965,71,1.838,104,1.838,109,1.815,175,1.829,180,0.682,182,1.029,187,4.593,215,3.522,217,2.103,223,2.984,284,1.731,298,2.023,320,2.687,341,3.293,381,2.323,499,2.611,509,3.293,518,3.411,524,5.996,553,3.121,562,1.605,564,0.895,605,3.121,618,3.522,632,3.35,638,3.882,714,2.643,771,2.476,853,0.621,1201,2.424,1257,4.764,1408,2.277,1413,3.121,1626,3.522,1722,3.293,1743,4.593,1875,2.984,1965,2.773,2584,3.871,2585,3.871,2586,3.871,2587,5.909,2588,3.871,2589,3.871,2590,3.871,2591,3.871,2592,3.871,2593,5.909,2594,3.871]],["t/858",[24,2.189,43,0.77,58,3.006,90,4.009,93,3.482,155,5.115,180,1.372,418,4.414,745,4.672,834,6.623,1408,4.581]],["t/860",[0,0.319,38,0.61,39,0.703,43,0.433,46,1.559,58,2.177,180,1.326,182,1.433,217,2.546,381,3.233,428,1.975,429,1.772,436,2.466,499,3.635,638,3.54,652,2.383,853,0.864,1185,5.581,1196,3.301,1512,3.741,1743,3.453,1755,4.154,1965,3.859,2496,4.583,2595,10.887,2596,5.388,2597,5.388]],["t/862",[0,0.412,38,0.786,39,0.683,43,0.558,58,2.581,139,4.085,180,1.223,182,2.372,217,2.038,428,2.546,429,2.284,652,3.07,853,1.114,1512,4.82,2272,6.318,2598,6.944,2599,6.944,2600,6.944]],["t/864",[0,0.412,38,0.786,39,0.683,43,0.558,58,2.581,139,4.085,180,1.223,182,1.846,217,2.038,428,3.271,429,2.284,652,3.07,853,1.114,1512,4.82,2271,6.318,2601,6.944,2602,6.944,2603,6.944]],["t/866",[0,0.308,39,0.733,43,0.417,58,1.503,73,2.466,158,6.857,175,1.326,180,0.915,182,1.381,245,3.329,383,2.03,427,2.714,428,1.904,429,3.039,430,2.714,436,3.358,638,4.819,732,2.999,853,0.833,993,4.005,1196,3.182,1273,4.315,1330,4.701,1574,4.419,1743,3.329,1965,3.721,2604,7.335,2605,8.504]],["t/868",[0,0.371,24,1.761,38,0.709,39,0.717,43,0.503,58,2.713,180,1.104,182,1.666,429,2.061,648,3.76,652,2.77,714,2.802,853,1.005,885,4.349,908,7.562,1015,4.349,1718,4.488,2606,7.591,2607,7.591,2608,6.266]],["t/870",[0,0.297,38,0.567,39,0.728,43,0.403,58,2.413,180,0.883,182,2.217,217,2.822,225,3.14,347,2.295,366,3.294,428,3.525,429,3.162,430,5.225,637,2.793,652,2.217,714,2.242,853,0.804,2156,4.562,2606,4.562,2607,4.562,2609,5.014,2610,5.014]],["t/872",[0,0.311,24,1.474,38,0.593,39,0.728,43,0.421,52,2.487,58,2.136,107,3.145,182,1.963,198,4.85,217,1.538,343,3.211,428,2.706,429,2.428,434,3.887,560,3.887,598,2.637,609,2.447,652,2.318,663,4.041,714,3.301,732,3.026,853,0.841,1408,3.084,1596,3.639,1691,2.825,1786,6.337,2611,5.242,2612,5.242]],["t/874",[0,0.375,38,0.717,39,0.686,43,0.509,58,2.431,87,4.491,139,3.726,175,1.617,180,1.116,219,5.764,243,4.161,629,3.726,638,4.161,652,2.801,657,2.801,668,4.391,853,1.016,1133,5.764,1273,3.726,1513,4.883,2613,6.334,2614,6.334]],["t/876",[0,0.322,10,1.225,24,1.529,38,0.615,39,0.691,43,0.437,46,1.573,58,2.522,68,1.959,71,2.583,107,3.264,146,3.264,180,0.958,182,1.446,428,3.196,429,2.492,430,4.927,431,3.468,461,3.573,652,2.405,723,3.083,831,4.386,853,0.873,904,4.457,908,4.386,1273,3.2,1767,3.573,2409,3.896,2615,5.439,2616,5.439]],["t/878",[0,0.271,38,0.758,39,0.754,43,0.367,46,1.324,58,1.324,149,2.467,180,0.806,182,1.781,524,3.177,771,2.806,853,0.734,904,3.94,1179,3.528,1262,3.394,1273,2.692,1623,3.69,2617,6.697,2618,7.92,2619,7.92,2620,6.697,2621,6.697,2622,6.697,2623,6.697,2624,8.716,2625,4.577,2626,4.577,2627,4.577,2628,4.577,2629,4.577,2630,4.577]],["t/880",[0,0.364,38,0.694,39,0.698,43,0.492,58,1.774,136,3.636,182,2.186,217,1.8,291,5.58,428,2.248,429,2.017,431,3.764,499,4.137,853,0.984,904,4.838,1179,4.728,1196,5.038,1273,3.608,1623,4.945,2631,6.132,2632,6.132,2633,6.132,2634,6.132,2635,6.132]]],"invertedIndex":[["",{"_index":39,"t":{"4":{"position":[[227,1],[266,1],[434,3],[454,1],[506,3]]},"6":{"position":[[244,1],[246,1]]},"8":{"position":[[229,1],[231,1],[389,1],[391,1],[440,1],[442,1],[497,1],[499,1],[582,1],[584,1],[928,3]]},"12":{"position":[[314,1],[319,2],[1094,1],[1099,2]]},"14":{"position":[[199,1],[264,1],[353,1],[414,1],[420,1]]},"16":{"position":[[318,1],[508,1]]},"23":{"position":[[418,1],[480,1]]},"29":{"position":[[847,1]]},"35":{"position":[[44,1],[230,1],[264,1],[283,1],[287,2],[302,1],[306,2],[321,1],[325,2],[345,1],[430,1],[459,1],[540,1],[588,1]]},"41":{"position":[[61,1]]},"46":{"position":[[107,1],[155,1],[291,1],[344,1]]},"56":{"position":[[125,1]]},"60":{"position":[[115,1]]},"62":{"position":[[135,1],[180,1]]},"66":{"position":[[203,1],[319,1],[348,1]]},"70":{"position":[[136,3],[193,1],[250,1],[298,2],[432,1],[489,1],[553,2]]},"72":{"position":[[90,1],[193,1],[312,1],[314,2],[327,1],[329,2]]},"74":{"position":[[162,1]]},"76":{"position":[[257,1],[273,2]]},"78":{"position":[[223,1],[345,1],[374,1]]},"84":{"position":[[34,2],[39,2],[1121,1],[1179,1],[1241,1],[1373,1],[1452,1]]},"90":{"position":[[20,3],[46,3],[506,1]]},"94":{"position":[[134,1],[138,1],[162,1],[298,1]]},"96":{"position":[[44,4],[77,4],[373,1],[514,2],[531,1],[906,3],[1356,1],[1524,1],[1569,1],[1629,1],[2057,1],[2184,1],[2259,1],[2278,1],[2360,1]]},"98":{"position":[[138,1]]},"100":{"position":[[50,1],[219,1],[287,1]]},"102":{"position":[[81,1],[111,3],[168,5],[348,3],[360,2],[363,5],[465,2],[476,1],[487,3],[497,3],[803,2],[1262,3],[1266,3],[1270,3],[1747,1],[2232,1],[2298,1],[2353,1],[2595,1],[3057,1],[3097,1],[3148,1],[3230,1]]},"106":{"position":[[37,1],[274,4],[394,1]]},"112":{"position":[[33,3],[42,2],[54,4],[59,3],[63,3],[107,3],[118,4],[123,3],[127,3],[154,2],[157,1],[167,1],[176,2],[240,2],[290,2],[412,1]]},"116":{"position":[[260,1]]},"120":{"position":[[165,1],[176,1],[607,3],[833,1],[901,1],[953,3],[960,3],[1203,1],[1254,1],[1295,1],[1324,4],[1395,1],[1543,1],[1725,1],[1779,1],[1881,1]]},"124":{"position":[[70,1],[89,1],[110,1]]},"126":{"position":[[162,1]]},"128":{"position":[[54,1]]},"130":{"position":[[41,1],[87,2],[389,1],[412,1],[436,1]]},"132":{"position":[[33,1],[347,4]]},"136":{"position":[[276,1]]},"142":{"position":[[517,1]]},"148":{"position":[[238,1]]},"154":{"position":[[114,1],[217,1],[299,2],[563,2]]},"156":{"position":[[128,2]]},"158":{"position":[[128,1],[177,1],[215,1],[301,2],[318,1],[370,1],[408,1]]},"162":{"position":[[43,1],[45,1],[55,1],[191,1],[246,1]]},"164":{"position":[[43,1],[45,1],[52,1],[66,1],[71,1],[203,1],[222,1],[257,1],[269,1],[271,1]]},"166":{"position":[[178,1],[195,1],[230,1],[234,1],[244,1],[250,1],[252,1]]},"168":{"position":[[95,3],[119,1],[134,1],[136,1],[146,3]]},"173":{"position":[[98,1],[115,1],[200,1],[212,1],[222,1],[224,19]]},"175":{"position":[[102,1],[104,2],[182,1],[196,1],[198,2],[201,1],[203,16]]},"177":{"position":[[100,1],[102,1],[108,1],[125,1],[142,1],[153,1],[222,1],[230,1],[241,1],[243,16]]},"179":{"position":[[119,1],[127,1],[206,1],[212,1],[222,1],[224,13]]},"181":{"position":[[67,1],[83,2],[193,1],[212,1],[214,16]]},"183":{"position":[[202,1],[221,1],[223,16]]},"185":{"position":[[114,1],[155,2],[264,1],[276,1],[278,1],[280,11]]},"187":{"position":[[84,1],[163,1],[183,1],[188,1],[190,22]]},"189":{"position":[[226,1],[261,1],[263,32]]},"191":{"position":[[95,1],[186,1],[200,1],[210,1],[212,21]]},"193":{"position":[[208,1],[232,1],[234,21]]},"195":{"position":[[87,1],[241,1],[251,1],[253,7],[307,1],[321,1],[516,1]]},"197":{"position":[[135,1],[212,1],[216,1],[220,1],[222,5]]},"199":{"position":[[164,1],[290,1],[302,1],[304,9]]},"203":{"position":[[296,1],[298,2],[317,1],[373,1]]},"205":{"position":[[143,1],[193,1]]},"207":{"position":[[106,2],[128,2],[150,2],[254,1],[278,1],[312,2],[334,2],[356,2],[378,2],[492,2]]},"209":{"position":[[152,2],[183,2]]},"211":{"position":[[225,3]]},"213":{"position":[[95,2],[117,2],[139,2]]},"217":{"position":[[179,1],[235,1]]},"219":{"position":[[137,1],[214,1],[218,1],[222,1],[224,5]]},"221":{"position":[[116,1],[118,1],[146,1],[185,1],[191,1],[197,1],[203,1],[213,1],[281,1],[283,1],[311,1]]},"223":{"position":[[127,1],[165,1],[180,1],[190,1],[205,1],[211,1],[248,1],[287,1],[451,1],[479,1],[518,1]]},"227":{"position":[[383,1],[385,1],[401,1],[411,1]]},"231":{"position":[[130,1],[145,1],[241,1],[264,1]]},"233":{"position":[[169,1],[184,1],[296,1]]},"237":{"position":[[97,1],[114,1],[160,1],[181,1],[217,1],[234,1],[254,1],[268,1],[285,1],[483,1],[493,1],[545,1]]},"239":{"position":[[156,1],[282,1],[294,1],[296,9],[435,1]]},"241":{"position":[[147,1],[149,1],[151,3],[155,1],[212,1],[364,1]]},"245":{"position":[[93,1],[95,2],[254,1],[256,1],[314,1]]},"247":{"position":[[131,1],[133,1],[175,1],[194,1]]},"249":{"position":[[148,1],[150,1],[189,1],[200,1],[213,1],[252,1]]},"251":{"position":[[156,1],[199,2],[202,1],[245,1]]},"253":{"position":[[105,1],[150,1]]},"255":{"position":[[86,1],[137,1],[170,1]]},"257":{"position":[[158,5],[220,1],[506,1],[546,1]]},"259":{"position":[[217,1],[233,1],[297,1]]},"261":{"position":[[280,1]]},"263":{"position":[[168,1],[191,1],[432,1]]},"265":{"position":[[82,1],[101,1],[123,1]]},"268":{"position":[[241,1],[243,1],[250,1],[260,1],[277,1],[661,2],[756,3],[815,1]]},"270":{"position":[[269,1],[573,1],[605,1],[637,1]]},"274":{"position":[[104,1],[126,2]]},"276":{"position":[[90,1],[107,2],[201,1],[222,2]]},"278":{"position":[[102,1],[133,1],[135,1],[143,1],[148,1],[161,1],[163,2],[172,2],[175,1],[180,1],[182,2],[199,1],[271,1],[302,1],[304,1],[312,1],[317,1],[359,1],[467,3]]},"282":{"position":[[18,1],[214,1],[539,1],[690,1],[803,1]]},"284":{"position":[[80,2],[356,1],[358,1],[392,1]]},"286":{"position":[[137,1],[147,1],[173,1],[189,1],[205,1],[222,1],[256,1],[342,1],[344,2],[366,4],[542,1],[564,1],[598,1],[621,1],[644,1],[749,1]]},"290":{"position":[[65,1],[314,1],[430,1],[462,1]]},"292":{"position":[[158,1],[177,1],[196,1],[214,1],[233,1],[256,1],[287,1],[529,1],[575,1],[618,1]]},"296":{"position":[[126,1],[139,1],[152,1],[190,1],[194,1],[198,1],[202,1]]},"298":{"position":[[80,1],[92,1],[106,1],[113,1],[148,1]]},"300":{"position":[[70,1],[74,1],[187,1],[194,1],[199,2]]},"302":{"position":[[247,1],[249,2],[401,1],[426,2],[436,1],[438,2],[498,1],[712,1],[742,1],[773,2],[811,1],[821,1],[837,2]]},"306":{"position":[[84,1]]},"314":{"position":[[54,1],[181,1]]},"316":{"position":[[94,1],[196,1]]},"318":{"position":[[99,1],[115,1],[134,1],[136,1],[138,2],[159,1],[161,1],[163,2],[205,1],[207,1],[209,2]]},"320":{"position":[[134,1],[136,1],[164,1],[358,1],[360,1],[388,1]]},"322":{"position":[[89,2],[94,2],[99,1],[105,2],[110,2],[115,1],[121,2],[126,2],[131,2]]},"329":{"position":[[120,1],[175,2],[194,3]]},"331":{"position":[[67,2],[84,1],[102,2],[121,2],[142,3],[154,2],[167,2],[183,2],[198,2],[214,2],[456,3],[476,3],[495,3],[515,3],[533,1],[539,1],[543,1],[549,2]]},"333":{"position":[[4,2],[7,3],[11,2],[18,2],[75,1],[79,1],[181,1],[191,1]]},"335":{"position":[[235,2],[274,1],[308,1],[354,1],[457,2],[477,1],[533,1],[567,1],[613,1],[714,3],[768,1],[802,1],[848,1]]},"337":{"position":[[101,2],[291,1],[507,2],[529,3],[578,1],[620,3]]},"339":{"position":[[151,1],[155,3],[170,1],[174,3],[190,1],[194,3],[220,1],[472,2],[480,1],[496,2],[504,1],[520,2],[528,1]]},"341":{"position":[[83,1],[96,1],[98,1],[158,2],[173,2],[184,2],[195,1],[197,1],[201,1],[212,1],[214,3],[220,1],[234,1],[236,1],[240,1],[251,1],[281,1],[298,1],[373,1],[395,1],[454,1],[476,1],[508,1],[510,2],[515,1],[528,1],[554,1],[564,1],[606,1],[608,1]]},"343":{"position":[[118,1],[120,2],[124,1],[142,2],[158,2],[169,1]]},"345":{"position":[[95,1],[97,2],[101,1],[116,1],[118,1],[158,1],[176,1],[189,1],[204,2],[220,2],[231,1]]},"347":{"position":[[140,1],[142,2],[146,1],[162,2],[172,1],[207,1]]},"351":{"position":[[28,1],[38,2],[157,1],[164,1],[174,2],[199,1],[201,39]]},"353":{"position":[[32,1],[44,2],[50,2],[61,1],[150,1],[161,1],[173,2],[179,2],[190,1],[195,1],[197,42],[255,1],[257,2]]},"357":{"position":[[218,1],[220,1],[228,1],[236,1],[353,1],[369,2]]},"359":{"position":[[141,1],[150,2],[445,2]]},"363":{"position":[[51,1],[85,1]]},"365":{"position":[[50,1]]},"369":{"position":[[50,1],[84,1],[156,1],[216,1]]},"371":{"position":[[50,1],[96,1],[163,1]]},"373":{"position":[[115,1],[149,1],[222,1],[285,1]]},"375":{"position":[[64,1],[110,1],[178,1]]},"379":{"position":[[152,1],[204,1]]},"383":{"position":[[72,1],[130,1]]},"385":{"position":[[67,1],[128,1]]},"393":{"position":[[102,1],[170,1]]},"395":{"position":[[93,1],[139,1],[158,1]]},"397":{"position":[[93,1],[139,1],[158,1]]},"399":{"position":[[82,1],[127,1],[147,1]]},"401":{"position":[[92,1],[154,1]]},"405":{"position":[[44,1],[158,1],[235,2],[252,1],[462,1],[466,2]]},"407":{"position":[[46,1],[157,1],[241,2],[265,1],[509,1],[513,2]]},"409":{"position":[[47,1],[161,1],[247,2],[271,1],[516,1],[520,2]]},"411":{"position":[[96,1],[210,1],[332,2],[356,1],[628,1],[632,2]]},"413":{"position":[[142,1],[325,1],[418,2],[442,1],[696,1],[700,2]]},"415":{"position":[[49,1],[159,1],[252,2],[276,1],[521,1],[525,2]]},"417":{"position":[[325,1],[351,1],[460,1],[541,2],[565,1],[689,2],[725,3],[752,3],[768,2],[792,1],[842,1],[848,1],[870,1],[892,1],[910,1],[916,1],[941,1],[963,1],[967,2]]},"419":{"position":[[329,1],[355,1],[460,1],[570,3],[597,3]]},"421":{"position":[[60,1],[87,1],[199,1],[278,2],[302,1],[350,1],[355,2],[366,2]]},"423":{"position":[[72,1],[99,1],[223,1],[306,2],[330,1],[380,2],[386,2],[397,2]]},"425":{"position":[[63,1],[90,1],[206,1],[291,2],[315,1],[366,1],[371,2],[382,2]]},"427":{"position":[[75,1],[102,1],[230,1]]},"429":{"position":[[80,1],[104,3],[108,1],[272,1],[388,2],[412,1],[489,2]]},"431":{"position":[[76,1],[100,3],[104,1],[276,1],[394,2],[418,1],[496,2]]},"433":{"position":[[117,1],[186,1],[210,3],[214,1],[467,1],[616,2],[640,1],[721,2],[867,2],[891,1],[984,2]]},"435":{"position":[[210,1],[351,1],[659,1],[678,2],[717,1],[736,2]]},"443":{"position":[[468,1],[495,1],[532,1],[537,1],[552,1],[563,2],[598,1],[600,7],[608,1],[610,3],[614,7],[624,1],[626,1],[628,3],[632,1],[634,5],[640,1],[642,3],[646,1],[650,1],[652,1],[654,3],[658,1],[660,2],[663,2],[666,1],[668,3],[672,1],[676,1],[678,7],[686,5],[692,7],[702,1],[704,5],[710,4],[715,3],[719,6],[728,1],[730,10],[741,9],[753,1],[755,5],[761,1],[763,4],[768,5],[774,1],[778,1],[780,7],[788,1],[790,5],[796,3],[802,1],[804,1],[806,3],[810,1],[812,2],[815,7],[823,1],[827,1],[829,1],[831,3],[835,1],[837,2],[840,3],[844,4],[851,1],[853,7],[861,1],[863,1],[865,1],[867,1],[869,1]]},"457":{"position":[[97,1],[114,1],[116,1],[126,3],[138,1],[234,1]]},"461":{"position":[[32,1]]},"469":{"position":[[42,1],[88,1],[121,1],[128,1],[130,1],[140,1],[162,1],[182,1],[184,1],[186,2],[200,1],[221,1]]},"471":{"position":[[60,1],[99,1],[208,1],[241,1],[254,2],[297,2],[323,1],[325,1],[329,1],[335,1],[337,1],[341,1],[353,1],[382,1],[393,1],[415,1],[430,1],[432,1],[436,1],[442,1],[444,1],[448,1],[459,1],[482,1],[494,1],[528,1],[530,2],[535,1],[537,2],[542,1],[544,2],[549,1],[551,1],[690,1],[734,1],[829,1],[914,3],[930,1],[932,1],[936,1],[947,1],[949,1],[953,1],[964,1],[966,1],[970,1],[986,1],[1018,1],[1020,2],[1025,1],[1027,2],[1032,1],[1034,1],[1057,1],[1152,3],[1177,1],[1179,1],[1183,1],[1197,1],[1199,1],[1203,1],[1209,1],[1241,1],[1247,1],[1281,1],[1283,2],[1288,1],[1308,1],[1332,1],[1354,1],[1377,1],[1379,1]]},"475":{"position":[[370,1],[416,1],[427,1],[432,1],[612,1],[644,1],[667,2],[680,1],[688,1],[745,2],[803,2]]},"477":{"position":[[128,1],[162,1],[190,1],[225,2],[228,2],[239,1],[257,1],[276,1]]},"481":{"position":[[129,1],[175,1],[210,2],[213,2],[224,1],[247,1],[266,1]]},"495":{"position":[[141,1],[173,1],[196,2],[209,1],[217,1],[286,2],[313,2],[342,2],[407,1],[439,1],[462,2],[475,1],[483,1],[517,1],[560,1],[623,2],[652,2]]},"499":{"position":[[32,1]]},"505":{"position":[[149,2]]},"509":{"position":[[124,1],[126,2],[137,1],[160,1]]},"511":{"position":[[162,1],[164,1],[176,1],[196,1],[217,1],[240,1],[261,1],[263,1],[289,1],[291,1],[316,1],[331,1],[359,1],[391,1],[393,1],[406,1],[447,1],[488,1],[530,1],[571,1],[614,1],[653,1],[692,1],[735,1],[774,1],[815,1],[854,1],[895,1],[933,1],[963,2],[976,1],[996,1],[998,1],[1004,1],[1042,2],[1045,1]]},"513":{"position":[[237,1],[239,1],[251,1],[268,1],[291,1],[312,1],[314,1],[340,1],[342,1],[369,1],[381,1],[398,1],[420,1],[422,1],[428,1],[455,2],[471,1],[480,1]]},"515":{"position":[[81,1],[134,1]]},"517":{"position":[[136,2],[187,2]]},"519":{"position":[[86,1],[98,1],[122,2],[125,2],[128,1],[142,1]]},"523":{"position":[[391,1],[410,1],[431,2],[2029,1],[2053,1],[2226,1],[2295,1],[2394,2]]},"525":{"position":[[385,1],[403,1],[405,1],[415,3],[431,1]]},"531":{"position":[[43,1],[107,1],[196,1],[230,1],[281,1],[304,1],[306,1],[312,1],[338,1],[340,1],[353,1],[360,1],[362,1],[397,1],[399,1],[403,1],[431,1],[443,1],[447,1],[470,1],[472,1],[476,1],[478,1],[595,1],[597,1],[607,1],[609,1],[625,2],[630,1],[637,1],[644,1],[648,1],[729,1],[759,1],[777,1],[836,1],[886,1]]},"533":{"position":[[198,1],[231,1],[319,4],[353,1],[424,1],[589,1],[655,1],[681,1],[715,1],[753,2],[783,2],[817,1],[819,1],[825,1],[843,1],[845,1],[858,1],[865,1],[867,1],[877,1],[911,1],[953,2],[986,2],[1031,2],[1057,1],[1059,3],[1095,3],[1107,1],[1144,1],[1188,2],[1219,2],[1267,2]]},"535":{"position":[[32,1]]},"537":{"position":[[74,1],[78,1],[90,2]]},"539":{"position":[[104,1],[133,1]]},"543":{"position":[[32,1]]},"553":{"position":[[125,1],[152,1]]},"555":{"position":[[121,1],[150,1]]},"569":{"position":[[286,1],[314,2],[322,3]]},"571":{"position":[[116,2]]},"573":{"position":[[307,1],[338,2],[407,2],[421,1]]},"575":{"position":[[276,1]]},"577":{"position":[[32,1]]},"589":{"position":[[170,1],[208,1],[228,7],[289,1],[291,1],[295,1],[301,1],[326,1],[328,1],[380,1],[382,1],[386,1],[392,1],[416,1],[422,1],[455,1],[457,1],[497,1],[614,5],[685,1],[723,1],[818,1],[820,1],[824,1],[830,1],[863,1],[874,1],[898,1],[900,1]]},"591":{"position":[[20,1],[44,1]]},"599":{"position":[[177,1],[231,1],[264,2],[279,1],[346,2],[374,1],[380,1],[386,1],[392,1],[398,1],[573,1],[582,1],[591,1],[600,1]]},"601":{"position":[[178,1],[211,2],[292,1],[294,2],[298,1],[327,1],[394,2],[422,1],[428,1],[434,1],[440,1],[446,1]]},"603":{"position":[[243,1],[255,1],[257,1],[267,3],[283,1],[317,1],[326,1]]},"611":{"position":[[277,1],[297,1],[299,1],[309,3],[325,1],[371,1],[390,1]]},"617":{"position":[[397,1],[430,1],[477,1]]},"621":{"position":[[179,1],[215,1],[313,1],[342,1]]},"623":{"position":[[792,1],[825,1],[956,1],[1033,2],[1096,1],[1122,1],[1124,1],[1134,3],[1150,1],[1152,1],[1154,1],[1162,1],[1236,1],[1297,1],[1299,1],[1313,1],[1360,1],[1405,1]]},"627":{"position":[[150,1],[207,1],[236,1],[260,1]]},"629":{"position":[[134,1],[200,1]]},"631":{"position":[[86,1],[150,1],[213,1]]},"633":{"position":[[87,1],[152,1],[195,1]]},"639":{"position":[[161,1],[194,1]]},"644":{"position":[[134,1],[164,1],[203,2]]},"646":{"position":[[117,1],[147,1],[186,2]]},"648":{"position":[[174,1],[204,1],[244,2]]},"650":{"position":[[117,1],[147,1],[187,2]]},"652":{"position":[[118,1],[148,1],[189,2]]},"654":{"position":[[175,1],[205,1],[246,2]]},"656":{"position":[[174,1],[204,1],[244,2]]},"658":{"position":[[233,1],[263,1],[304,2]]},"660":{"position":[[179,1],[209,1],[246,2]]},"662":{"position":[[120,1],[150,1],[193,2]]},"664":{"position":[[177,1],[207,1],[250,2]]},"666":{"position":[[177,1],[207,1],[250,2]]},"668":{"position":[[177,1],[207,1],[250,2]]},"670":{"position":[[178,1],[208,1],[252,2]]},"672":{"position":[[122,1],[152,1],[197,2]]},"674":{"position":[[122,1],[152,1],[197,2]]},"676":{"position":[[127,1],[157,1],[207,2]]},"679":{"position":[[220,1],[268,2],[349,2]]},"681":{"position":[[222,1],[272,2],[379,2]]},"683":{"position":[[222,1],[279,2]]},"685":{"position":[[222,1],[279,2]]},"687":{"position":[[254,2]]},"690":{"position":[[223,1]]},"694":{"position":[[17,1],[50,1],[168,1],[213,1],[219,1],[254,1]]},"696":{"position":[[17,1],[51,1],[169,1],[214,1],[220,1],[255,1],[387,1],[430,1],[471,1],[491,1],[550,1],[578,1],[586,2],[716,1]]},"700":{"position":[[17,1],[50,1],[136,1],[181,1],[187,1]]},"702":{"position":[[17,1],[104,1],[137,1],[182,1],[188,1],[324,1],[367,1],[411,1],[439,1],[447,2],[509,1],[603,1]]},"706":{"position":[[17,1],[50,1],[151,1],[200,1],[245,1],[251,1],[286,1]]},"708":{"position":[[17,1],[51,1],[79,1],[105,1],[150,1],[156,1],[191,1],[223,1],[398,1],[441,1],[475,1],[514,1],[534,1],[593,1],[626,1],[634,2],[793,1]]},"711":{"position":[[17,1],[39,1],[350,1],[409,1],[411,1],[415,1],[423,1],[584,1],[592,1],[603,1],[605,1],[630,1],[632,1],[636,1],[644,1],[728,1],[736,1],[819,1],[821,1]]},"713":{"position":[[129,1],[146,1],[148,1],[179,1],[181,1],[185,1],[283,1],[378,1]]},"715":{"position":[[127,1],[144,1],[146,1],[695,3],[713,1],[721,1],[809,1],[890,1]]},"717":{"position":[[17,1],[50,1],[128,1]]},"719":{"position":[[17,1],[51,1],[129,1],[265,1],[290,1],[292,1],[323,1],[325,1],[329,1],[427,1],[522,1],[555,1],[557,1],[561,1],[570,1],[741,1],[772,1],[795,1],[930,2],[970,1]]},"721":{"position":[[17,1],[42,1],[76,1]]},"723":{"position":[[17,1],[50,1],[84,1],[154,1],[290,1],[315,1],[317,1],[348,1],[350,1],[354,1],[452,1],[547,1],[580,1],[582,1],[586,1],[595,1],[766,1],[797,1],[817,1],[861,1],[867,2],[930,1],[1083,1]]},"726":{"position":[[325,1],[436,1],[482,1],[518,1],[558,1]]},"730":{"position":[[84,1],[185,1]]},"732":{"position":[[113,1]]},"734":{"position":[[94,1],[207,1],[209,1],[213,1],[226,1],[248,1],[259,1],[285,1],[296,1],[322,1],[333,1],[359,1],[370,1],[380,1],[391,1],[414,1],[426,1],[453,1],[468,1],[492,1],[494,1]]},"736":{"position":[[32,1]]},"738":{"position":[[99,1],[127,2]]},"740":{"position":[[103,1],[131,2]]},"742":{"position":[[245,1],[301,1],[303,2],[309,1],[364,1],[419,1],[495,1],[550,1],[625,1],[681,1],[683,2],[692,1],[738,1]]},"746":{"position":[[184,1],[228,7],[238,1]]},"748":{"position":[[188,1],[233,7],[243,1]]},"750":{"position":[[189,1],[234,7],[244,1]]},"752":{"position":[[108,1],[153,1]]},"754":{"position":[[112,1],[154,1]]},"756":{"position":[[113,1],[155,1]]},"758":{"position":[[112,1],[154,1]]},"760":{"position":[[115,1],[160,1]]},"762":{"position":[[116,1],[118,1],[171,1]]},"766":{"position":[[166,1],[205,1],[246,1],[600,4],[605,5],[613,1],[676,4],[683,1],[758,1],[820,2],[823,4],[830,1]]},"768":{"position":[[367,3],[500,1],[561,1],[620,1]]},"770":{"position":[[116,1],[168,1]]},"772":{"position":[[140,1],[165,1],[214,1]]},"774":{"position":[[428,1],[463,1],[533,1],[735,1],[774,1],[816,1],[860,1],[899,4],[910,1],[949,4],[960,1],[1001,4],[1012,1],[1211,4],[1305,1]]},"776":{"position":[[423,1],[471,1],[493,1],[495,2],[512,2],[537,2],[606,1],[654,1],[676,1],[678,2],[701,2],[740,2]]},"778":{"position":[[121,1],[174,1]]},"780":{"position":[[123,1],[178,1]]},"782":{"position":[[264,1],[300,1],[345,1],[387,1]]},"784":{"position":[[125,1],[161,1]]},"788":{"position":[[61,1],[110,1],[153,1],[199,1],[248,1],[328,1],[380,1]]},"792":{"position":[[178,1],[225,1],[245,1],[295,1],[302,1]]},"794":{"position":[[82,1],[135,2],[156,1],[190,2],[211,1]]},"796":{"position":[[79,3],[129,1],[184,1],[227,1]]},"798":{"position":[[59,1],[119,1]]},"800":{"position":[[65,1],[125,1]]},"802":{"position":[[66,1],[126,1]]},"804":{"position":[[84,1],[154,1]]},"806":{"position":[[91,1],[155,1]]},"808":{"position":[[85,1],[154,1]]},"810":{"position":[[321,1],[408,1],[496,1],[601,1],[704,1],[807,1],[897,1],[988,1]]},"812":{"position":[[105,1],[216,1]]},"814":{"position":[[98,1],[186,1],[306,1],[427,1]]},"818":{"position":[[42,1],[87,1],[174,1],[219,1],[238,1],[240,1],[242,1],[248,1],[270,1],[272,1],[283,1],[295,2],[307,1],[309,1],[323,1],[325,2],[328,1],[334,1],[344,1],[346,1],[348,2],[360,1],[371,1],[398,1],[412,1],[425,1],[445,1]]},"820":{"position":[[60,1],[93,1],[210,3],[230,1],[263,1],[353,3],[380,1],[382,1],[386,1],[396,1],[421,1],[436,1],[438,1],[442,1],[448,1],[450,1],[454,1],[464,1],[487,1],[504,1],[506,1],[510,1],[521,1],[546,1],[548,2],[553,1],[568,1],[570,1],[574,1],[580,1],[582,1],[586,1],[596,1],[618,1],[633,1],[635,1],[639,1],[645,1],[670,1],[672,2],[677,1],[679,2],[684,1],[686,2],[691,1],[693,2],[698,1],[700,2],[705,1],[707,1],[929,1],[931,1],[935,1],[945,1],[967,1],[982,1],[984,1],[988,1],[994,1],[1019,1],[1021,2],[1026,1],[1028,1],[1128,1],[1196,5],[1204,1],[1206,1],[1210,1],[1220,1],[1242,1],[1257,1],[1259,1],[1263,1],[1269,1],[1271,1],[1275,1],[1285,1],[1308,1],[1310,2],[1315,1],[1321,1],[1323,1],[1327,1],[1337,1],[1360,1],[1362,2],[1367,1],[1369,2],[1374,1],[1376,1]]},"822":{"position":[[32,1]]},"824":{"position":[[94,1],[96,1],[106,1],[110,1]]},"828":{"position":[[135,1],[137,1],[156,1],[164,1],[184,1]]},"830":{"position":[[82,1],[84,1],[103,1],[111,1],[131,1],[163,1]]},"832":{"position":[[113,1],[198,1]]},"834":{"position":[[78,1],[80,2],[124,2]]},"836":{"position":[[165,1],[167,1],[191,1],[201,1],[231,2],[271,2],[317,2]]},"838":{"position":[[209,1],[211,1],[213,1],[218,1],[228,1],[238,2],[241,1],[246,1],[256,1],[267,2],[270,1],[297,1],[307,2],[321,1]]},"840":{"position":[[215,1],[217,1],[247,1],[274,1],[278,2],[294,1],[316,1]]},"842":{"position":[[114,1],[116,1],[130,1],[154,1],[164,1],[195,1],[221,2],[247,2],[258,1],[264,1],[273,1],[282,1],[291,1],[300,1],[313,1],[344,1],[365,1],[374,1],[380,1],[389,1],[398,1],[407,1],[416,1],[429,1],[460,1],[481,1],[485,2]]},"846":{"position":[[154,1],[183,1],[185,1],[218,1],[247,1],[260,2]]},"850":{"position":[[280,1],[282,1],[292,1],[313,1],[319,1],[325,1]]},"852":{"position":[[528,1],[530,1],[546,1],[565,1],[569,1],[573,2],[598,2],[601,2],[626,1],[628,1],[644,1],[666,1],[670,2],[701,2],[704,2]]},"856":{"position":[[289,1],[341,1],[345,1],[359,2],[362,2],[390,1],[445,1],[449,1],[469,2],[472,2],[668,1]]},"860":{"position":[[58,1],[332,1],[334,1],[344,1],[377,1],[385,1],[400,2],[411,1]]},"862":{"position":[[85,1],[87,1],[97,1],[116,1]]},"864":{"position":[[84,1],[86,1],[96,1],[115,1]]},"866":{"position":[[196,1],[200,1],[204,2],[210,1],[227,1],[247,1],[294,1],[298,1],[302,2],[308,1],[325,1],[345,1]]},"868":{"position":[[104,1],[106,1],[117,1],[138,1],[182,1],[196,1],[219,1]]},"870":{"position":[[134,1],[136,1],[175,1],[194,1],[204,1],[225,1],[231,1],[240,1],[249,1],[258,1],[273,1],[277,1]]},"872":{"position":[[242,1],[244,1],[263,1],[288,1],[298,1],[314,1],[316,1],[326,2],[329,1],[348,1],[350,1]]},"874":{"position":[[115,1],[117,1],[133,1],[150,1],[223,1]]},"876":{"position":[[254,1],[256,1],[272,1],[288,1],[298,1],[317,1],[327,1]]},"878":{"position":[[104,1],[106,1],[119,1],[132,1],[134,1],[159,1],[201,1],[211,1],[227,1],[236,1],[249,1],[259,1],[295,2],[303,1],[326,2],[334,1],[357,2],[365,1],[388,2],[396,1]]},"880":{"position":[[122,1],[124,1],[134,1],[187,2],[208,2],[229,2]]}}}],["0",{"_index":436,"t":{"35":{"position":[[228,1],[244,1],[260,1],[277,1],[281,1],[296,1],[315,1],[341,1],[343,1],[597,1]]},"104":{"position":[[122,1]]},"106":{"position":[[423,4]]},"207":{"position":[[256,2],[315,2],[495,2]]},"268":{"position":[[817,2]]},"339":{"position":[[222,2],[421,2],[475,2],[499,2],[523,2]]},"423":{"position":[[291,2],[383,2]]},"443":{"position":[[308,2]]},"487":{"position":[[34,1]]},"517":{"position":[[139,2],[190,2]]},"533":{"position":[[336,2]]},"537":{"position":[[76,1],[80,1]]},"589":{"position":[[297,3],[418,3],[546,2],[826,3]]},"599":{"position":[[281,1]]},"601":{"position":[[329,1]]},"623":{"position":[[1549,1],[1551,1]]},"648":{"position":[[126,1]]},"654":{"position":[[127,1]]},"656":{"position":[[126,1]]},"658":{"position":[[185,1]]},"664":{"position":[[129,1]]},"666":{"position":[[129,1]]},"668":{"position":[[129,1]]},"670":{"position":[[130,1]]},"766":{"position":[[335,2]]},"788":{"position":[[123,2],[126,2],[215,2]]},"810":{"position":[[429,2],[453,2],[513,2],[543,2],[623,2],[647,2],[725,2],[749,2],[822,2],[852,2],[917,2],[941,2],[1010,2]]},"812":{"position":[[167,3],[237,2]]},"814":{"position":[[146,2]]},"830":{"position":[[165,1]]},"860":{"position":[[289,2]]},"866":{"position":[[207,2],[305,2]]}}}],["0):normal",{"_index":2510,"t":{"808":{"position":[[135,16]]}}}],["0):reorder():concat",{"_index":2581,"t":{"852":{"position":[[576,21]]}}}],["0):todir(\"i",{"_index":2531,"t":{"814":{"position":[[149,14]]}}}],["0):todir(\"yl",{"_index":2534,"t":{"814":{"position":[[252,15]]}}}],["0):todir(\"yr",{"_index":2536,"t":{"814":{"position":[[372,15]]}}}],["0):torot(\"i",{"_index":2518,"t":{"810":{"position":[[371,14]]}}}],["0):torot(\"yl",{"_index":2523,"t":{"810":{"position":[[650,15]]}}}],["0):torot(\"yr",{"_index":2522,"t":{"810":{"position":[[546,15]]}}}],["0):torot(\"zr",{"_index":2524,"t":{"810":{"position":[[752,15]]}}}],["0.0",{"_index":2513,"t":{"808":{"position":[[174,4]]},"810":{"position":[[424,4],[517,4],[912,4]]},"812":{"position":[[232,4]]},"814":{"position":[[321,4],[443,4]]}}}],["0.2.0",{"_index":112,"t":{"8":{"position":[[366,7]]}}}],["0.4",{"_index":2485,"t":{"792":{"position":[[290,4]]}}}],["0.4.0",{"_index":1103,"t":{"130":{"position":[[375,5]]}}}],["0.4.1",{"_index":1134,"t":{"138":{"position":[[39,5]]}}}],["0.5.0",{"_index":114,"t":{"8":{"position":[[417,7]]}}}],["0.6",{"_index":2484,"t":{"792":{"position":[[285,4]]}}}],["0.6.0",{"_index":115,"t":{"8":{"position":[[474,7]]},"120":{"position":[[1630,6]]}}}],["0.7.0",{"_index":1009,"t":{"110":{"position":[[72,5]]}}}],["0.8.0",{"_index":116,"t":{"8":{"position":[[559,7],[780,7],[893,8]]},"185":{"position":[[324,8]]},"503":{"position":[[88,6]]}}}],["0.8.0'",{"_index":120,"t":{"8":{"position":[[715,7]]}}}],["0.9.0",{"_index":127,"t":{"8":{"position":[[1008,6],[1087,8],[1121,8]]},"98":{"position":[[90,5]]},"517":{"position":[[127,8]]}}}],["0.9.1",{"_index":783,"t":{"92":{"position":[[47,6]]}}}],["0000019feda45580",{"_index":446,"t":{"35":{"position":[[402,17]]}}}],["00007ff6211485a0",{"_index":444,"t":{"35":{"position":[[376,16],[475,16]]}}}],["00007ff7738b30d0",{"_index":1905,"t":{"511":{"position":[[459,17]]}}}],["00007ff7738b3220",{"_index":1908,"t":{"511":{"position":[[542,17]]}}}],["00007ff7738b33c0",{"_index":1921,"t":{"511":{"position":[[907,17]]}}}],["00007ff7738b34d0",{"_index":1918,"t":{"511":{"position":[[786,17]]}}}],["00007ff7738b37f0",{"_index":1919,"t":{"511":{"position":[[827,17]]}}}],["00007ff7738b3b10",{"_index":1915,"t":{"511":{"position":[[704,17]]}}}],["00007ff7738b3c20",{"_index":1904,"t":{"511":{"position":[[418,17]]}}}],["00007ff7738b42b0",{"_index":1920,"t":{"511":{"position":[[866,17]]}}}],["00007ff7738b43b0",{"_index":1913,"t":{"511":{"position":[[665,17]]}}}],["00007ff7738b43f0",{"_index":1906,"t":{"511":{"position":[[500,17]]}}}],["00007ff7738b44b0",{"_index":1911,"t":{"511":{"position":[[626,17]]}}}],["00007ff7738b4540",{"_index":1916,"t":{"511":{"position":[[747,17]]}}}],["00007ff7738b4700",{"_index":1909,"t":{"511":{"position":[[583,17]]}}}],["00007ff7738b49a0",{"_index":1923,"t":{"511":{"position":[[945,17]]}}}],["0b1000101",{"_index":1412,"t":{"276":{"position":[[203,9]]}}}],["0x000000",{"_index":1776,"t":{"443":{"position":[[360,8],[554,8]]}}}],["0x0f",{"_index":2619,"t":{"878":{"position":[[114,4],[336,5],[398,5]]}}}],["0x11",{"_index":2620,"t":{"878":{"position":[[136,5],[298,4]]}}}],["0x22",{"_index":2621,"t":{"878":{"position":[[142,5],[329,4]]}}}],["0x33",{"_index":2622,"t":{"878":{"position":[[148,5],[360,4]]}}}],["0x420",{"_index":1410,"t":{"276":{"position":[[92,5]]}}}],["0x44",{"_index":2623,"t":{"878":{"position":[[154,4],[391,4]]}}}],["0xf0",{"_index":2618,"t":{"878":{"position":[[108,5],[305,5],[367,5]]}}}],["0xffffff",{"_index":1779,"t":{"443":{"position":[[429,8],[539,9]]}}}],["0xffffffff",{"_index":2204,"t":{"648":{"position":[[132,11]]},"654":{"position":[[133,11]]},"656":{"position":[[132,11]]},"658":{"position":[[191,11]]},"664":{"position":[[135,11]]},"666":{"position":[[135,11]]},"668":{"position":[[135,11]]},"670":{"position":[[136,11]]}}}],["1",{"_index":182,"t":{"12":{"position":[[274,2],[361,2],[1043,2]]},"27":{"position":[[225,1]]},"35":{"position":[[69,2],[115,1],[279,1],[290,1],[300,1],[319,1],[339,1],[428,1],[442,1],[453,1],[457,1],[528,1],[582,1],[584,1],[586,1]]},"66":{"position":[[139,2],[189,1],[205,2],[222,2],[231,1],[321,2],[338,2],[350,2],[375,1],[446,2]]},"76":{"position":[[259,2]]},"78":{"position":[[152,2],[209,1],[225,2],[242,2],[254,1],[347,2],[364,2],[376,2],[404,1],[484,2]]},"84":{"position":[[32,1]]},"102":{"position":[[105,2]]},"136":{"position":[[278,2]]},"173":{"position":[[304,2]]},"175":{"position":[[180,1]]},"181":{"position":[[69,2]]},"185":{"position":[[262,1]]},"187":{"position":[[161,1]]},"189":{"position":[[224,1]]},"191":{"position":[[184,1]]},"193":{"position":[[206,1]]},"195":{"position":[[89,1],[108,2],[123,3],[518,1],[537,2],[552,3]]},"197":{"position":[[137,1],[218,1]]},"207":{"position":[[109,2],[337,2]]},"209":{"position":[[186,2]]},"211":{"position":[[222,2]]},"213":{"position":[[98,2]]},"217":{"position":[[181,1],[237,1]]},"219":{"position":[[139,1],[220,1]]},"221":{"position":[[120,2],[187,1],[285,2]]},"231":{"position":[[147,2]]},"233":{"position":[[186,2]]},"237":{"position":[[162,1],[270,2]]},"255":{"position":[[88,1],[172,1]]},"270":{"position":[[550,2],[607,1],[639,1]]},"282":{"position":[[20,1],[43,2],[216,1],[239,2],[285,1],[394,1],[541,1],[564,2],[805,1]]},"284":{"position":[[197,2]]},"286":{"position":[[139,1],[170,1],[533,2],[544,2],[600,1]]},"290":{"position":[[385,3]]},"300":{"position":[[190,1],[203,1],[249,1]]},"302":{"position":[[418,2],[714,2]]},"314":{"position":[[215,5]]},"320":{"position":[[138,2],[362,2]]},"322":{"position":[[92,1],[134,1]]},"331":{"position":[[535,1],[545,1],[552,1]]},"333":{"position":[[73,1],[179,1]]},"339":{"position":[[153,1],[159,1],[226,2],[229,1]]},"351":{"position":[[155,1]]},"353":{"position":[[148,1]]},"355":{"position":[[323,1]]},"357":{"position":[[355,2]]},"359":{"position":[[448,2]]},"393":{"position":[[174,1]]},"397":{"position":[[160,1]]},"417":{"position":[[844,3],[912,3]]},"421":{"position":[[263,2],[347,2],[352,2]]},"423":{"position":[[377,2]]},"471":{"position":[[331,3],[438,3],[1205,3]]},"509":{"position":[[267,2]]},"511":{"position":[[1000,3]]},"513":{"position":[[424,3]]},"515":{"position":[[83,1]]},"523":{"position":[[174,1]]},"531":{"position":[[632,2]]},"571":{"position":[[119,1]]},"589":{"position":[[388,3],[584,1]]},"599":{"position":[[376,1],[593,4]]},"601":{"position":[[424,1]]},"679":{"position":[[28,1]]},"766":{"position":[[374,2]]},"774":{"position":[[954,3]]},"788":{"position":[[166,2],[169,2]]},"796":{"position":[[160,3]]},"798":{"position":[[90,3]]},"800":{"position":[[96,3],[127,1]]},"802":{"position":[[97,3]]},"806":{"position":[[136,2]]},"810":{"position":[[368,2]]},"812":{"position":[[164,2]]},"820":{"position":[[444,3],[576,3],[641,3],[990,3],[1265,3]]},"824":{"position":[[104,1]]},"828":{"position":[[139,2]]},"830":{"position":[[86,2]]},"836":{"position":[[169,2]]},"838":{"position":[[220,2]]},"842":{"position":[[118,2],[260,3],[266,2],[376,3],[418,2]]},"846":{"position":[[187,2],[249,2]]},"850":{"position":[[284,2],[315,1]]},"852":{"position":[[532,2],[613,2]]},"856":{"position":[[595,1]]},"860":{"position":[[336,2]]},"862":{"position":[[89,2],[118,1]]},"864":{"position":[[88,2]]},"866":{"position":[[270,2]]},"868":{"position":[[198,2]]},"870":{"position":[[138,2],[227,3],[233,2]]},"872":{"position":[[246,2],[318,2]]},"876":{"position":[[258,2]]},"878":{"position":[[224,2],[238,2]]},"880":{"position":[[126,2],[190,2]]}}}],["1).name",{"_index":2562,"t":{"838":{"position":[[310,8]]}}}],["1):concat",{"_index":2589,"t":{"856":{"position":[[347,11]]}}}],["1):torot(\"i",{"_index":2525,"t":{"810":{"position":[[855,14],[945,14]]}}}],["1):torot(\"z",{"_index":2520,"t":{"810":{"position":[[457,14]]}}}],["1.0",{"_index":2512,"t":{"808":{"position":[[169,4]]},"814":{"position":[[201,4],[438,4]]}}}],["1.0.0",{"_index":1932,"t":{"517":{"position":[[174,6]]}}}],["1.000.000",{"_index":352,"t":{"27":{"position":[[230,10]]}}}],["1.1.1.1",{"_index":2177,"t":{"627":{"position":[[238,7]]}}}],["1.2",{"_index":2487,"t":{"792":{"position":[[320,4]]}}}],["1.2.3.4",{"_index":1617,"t":{"341":{"position":[[541,10]]}}}],["1.8",{"_index":2486,"t":{"792":{"position":[[315,4]]}}}],["1.viatls.com",{"_index":2172,"t":{"623":{"position":[[1553,15]]}}}],["10",{"_index":187,"t":{"12":{"position":[[316,2],[1096,2]]},"46":{"position":[[599,3]]},"66":{"position":[[208,2],[324,2]]},"76":{"position":[[262,2]]},"78":{"position":[[228,2],[350,2]]},"181":{"position":[[72,2]]},"292":{"position":[[216,2],[475,2],[578,2]]},"343":{"position":[[126,4]]},"357":{"position":[[358,2]]},"515":{"position":[[101,2]]},"856":{"position":[[392,3],[399,3],[484,3]]}}}],["100",{"_index":184,"t":{"12":{"position":[[289,4],[1069,4]]}}}],["10000000",{"_index":1405,"t":{"274":{"position":[[129,9]]}}}],["1000m",{"_index":2080,"t":{"579":{"position":[[108,7]]}}}],["1024",{"_index":1688,"t":{"399":{"position":[[149,4]]},"711":{"position":[[160,5]]}}}],["103547413",{"_index":2224,"t":{"660":{"position":[[249,10]]}}}],["1045060183",{"_index":2215,"t":{"654":{"position":[[249,11]]}}}],["1056",{"_index":1411,"t":{"276":{"position":[[110,5]]}}}],["10_000_000",{"_index":1403,"t":{"274":{"position":[[106,10]]}}}],["110100100",{"_index":1679,"t":{"385":{"position":[[130,9]]}}}],["11355630182234424425429331560518598643298965915936825610957270519615363349759012613228119611304846673085167794661819394470107090216347491908311079792054357",{"_index":2323,"t":{"711":{"position":[[425,156]]},"719":{"position":[[583,155]]},"723":{"position":[[608,155]]}}}],["1151865881",{"_index":2236,"t":{"668":{"position":[[253,11]]},"676":{"position":[[210,11]]}}}],["115443384115231951475820445136871322101870729500298182134363293112660251666017",{"_index":2326,"t":{"711":{"position":[[646,79]]},"715":{"position":[[723,79]]}}}],["123",{"_index":621,"t":{"72":{"position":[[92,3],[195,3]]},"237":{"position":[[99,5],[219,5]]},"379":{"position":[[206,3]]}}}],["1234",{"_index":1897,"t":{"511":{"position":[[178,5],[978,5]]},"513":{"position":[[253,5],[383,5]]}}}],["1252609637",{"_index":2227,"t":{"662":{"position":[[196,11]]}}}],["128",{"_index":2287,"t":{"694":{"position":[[209,3]]},"696":{"position":[[210,3]]},"700":{"position":[[177,3]]},"702":{"position":[[178,3]]},"706":{"position":[[241,3]]},"708":{"position":[[146,3]]}}}],["13",{"_index":451,"t":{"35":{"position":[[537,2]]},"318":{"position":[[101,2]]}}}],["1337",{"_index":1997,"t":{"531":{"position":[[355,4],[463,4]]},"533":{"position":[[860,4],[1034,5]]}}}],["14",{"_index":2375,"t":{"726":{"position":[[484,2]]}}}],["15",{"_index":2590,"t":{"856":{"position":[[396,2]]}}}],["16",{"_index":1625,"t":{"343":{"position":[[171,2]]},"694":{"position":[[192,3],[278,3]]},"696":{"position":[[193,3],[279,3]]},"700":{"position":[[160,3]]},"702":{"position":[[161,3]]},"706":{"position":[[224,3],[310,3]]},"708":{"position":[[129,3],[215,3]]}}}],["160",{"_index":2266,"t":{"687":{"position":[[31,3]]}}}],["17",{"_index":517,"t":{"52":{"position":[[70,2]]},"814":{"position":[[223,3],[343,3],[465,3]]}}}],["180.0",{"_index":2526,"t":{"810":{"position":[[1003,6]]}}}],["192",{"_index":2288,"t":{"694":{"position":[[215,3]]},"696":{"position":[[216,3]]},"700":{"position":[[183,3]]},"702":{"position":[[184,3]]},"706":{"position":[[247,3]]},"708":{"position":[[152,3]]}}}],["1a4",{"_index":1677,"t":{"383":{"position":[[132,3]]}}}],["1st",{"_index":1441,"t":{"286":{"position":[[175,5],[258,3]]}}}],["2",{"_index":429,"t":{"35":{"position":[[77,2],[298,1],[309,1],[426,1],[455,1]]},"66":{"position":[[305,1],[366,2],[406,2],[415,1]]},"78":{"position":[[331,1],[392,2],[438,2],[450,1]]},"102":{"position":[[108,2]]},"179":{"position":[[204,1]]},"183":{"position":[[122,2],[212,2]]},"195":{"position":[[132,2],[147,3],[248,2],[577,2],[592,3]]},"199":{"position":[[179,2],[299,2]]},"207":{"position":[[131,2]]},"213":{"position":[[120,2]]},"221":{"position":[[123,2],[193,1],[288,2]]},"223":{"position":[[129,1],[250,1],[481,1]]},"231":{"position":[[266,2],[320,2]]},"233":{"position":[[298,2],[352,2]]},"239":{"position":[[171,2],[291,2]]},"270":{"position":[[553,1],[609,1]]},"282":{"position":[[85,2],[247,2],[600,2],[828,2],[878,1]]},"284":{"position":[[200,2]]},"286":{"position":[[186,1],[536,2]]},"302":{"position":[[421,2]]},"320":{"position":[[141,2],[365,2]]},"322":{"position":[[108,1],[124,1]]},"333":{"position":[[77,1],[183,1],[189,1]]},"339":{"position":[[103,1]]},"345":{"position":[[191,1]]},"417":{"position":[[866,3],[937,3]]},"421":{"position":[[234,2]]},"423":{"position":[[260,2]]},"425":{"position":[[244,2]]},"427":{"position":[[270,2]]},"453":{"position":[[90,1]]},"471":{"position":[[1243,3]]},"515":{"position":[[85,1]]},"517":{"position":[[35,1]]},"523":{"position":[[154,2]]},"531":{"position":[[639,2]]},"539":{"position":[[106,1]]},"599":{"position":[[382,1],[584,4]]},"601":{"position":[[430,1]]},"774":{"position":[[904,3]]},"788":{"position":[[193,3],[212,2],[239,2],[261,2],[371,2],[393,2]]},"794":{"position":[[129,2],[132,2],[184,2]]},"796":{"position":[[164,2]]},"798":{"position":[[94,2]]},"800":{"position":[[100,2]]},"802":{"position":[[101,2]]},"806":{"position":[[140,2],[168,2]]},"820":{"position":[[1317,3]]},"824":{"position":[[101,2]]},"828":{"position":[[142,2]]},"830":{"position":[[89,2]]},"836":{"position":[[172,2]]},"838":{"position":[[248,2]]},"840":{"position":[[296,1]]},"842":{"position":[[121,2],[269,3],[275,2],[385,3],[409,2]]},"846":{"position":[[195,2],[252,2]]},"850":{"position":[[287,2],[321,1]]},"852":{"position":[[535,2],[571,1],[630,2],[633,2],[716,2]]},"860":{"position":[[339,2]]},"862":{"position":[[92,2]]},"864":{"position":[[91,2]]},"866":{"position":[[172,2],[202,1],[273,2],[300,1]]},"868":{"position":[[201,2]]},"870":{"position":[[141,2],[144,1],[236,3],[242,2],[275,1]]},"872":{"position":[[249,2],[321,2]]},"876":{"position":[[261,2],[319,2]]},"880":{"position":[[129,2]]}}}],["20",{"_index":509,"t":{"46":{"position":[[670,2]]},"322":{"position":[[165,3]]},"856":{"position":[[295,2]]}}}],["200",{"_index":1182,"t":{"154":{"position":[[802,3]]},"611":{"position":[[425,3]]},"623":{"position":[[1440,3]]}}}],["2024",{"_index":728,"t":{"86":{"position":[[189,4]]},"90":{"position":[[718,4]]}}}],["2024/cert.pem",{"_index":2168,"t":{"623":{"position":[[1207,16]]}}}],["2024/key.pem",{"_index":2169,"t":{"623":{"position":[[1281,15]]}}}],["2048",{"_index":2315,"t":{"711":{"position":[[166,5]]}}}],["21",{"_index":1626,"t":{"345":{"position":[[103,2]]},"856":{"position":[[378,2]]}}}],["222957957",{"_index":2221,"t":{"658":{"position":[[307,10]]}}}],["234",{"_index":1295,"t":{"237":{"position":[[183,3],[287,3]]}}}],["24",{"_index":2286,"t":{"694":{"position":[[196,2]]},"696":{"position":[[197,2]]},"700":{"position":[[164,2]]},"702":{"position":[[165,2]]},"706":{"position":[[228,2]]},"708":{"position":[[133,2]]}}}],["249",{"_index":1183,"t":{"154":{"position":[[809,3]]},"302":{"position":[[717,3]]}}}],["255",{"_index":1560,"t":{"326":{"position":[[149,3]]},"477":{"position":[[259,3],[278,3]]},"481":{"position":[[249,3],[268,3]]}}}],["255))):concat",{"_index":2295,"t":{"696":{"position":[[520,17]]},"708":{"position":[[563,17]]}}}],["256",{"_index":2255,"t":{"681":{"position":[[28,3]]},"694":{"position":[[224,3]]},"696":{"position":[[225,3]]},"700":{"position":[[192,3]]},"702":{"position":[[193,3]]},"706":{"position":[[256,3]]},"708":{"position":[[161,3]]}}}],["2650573207",{"_index":2239,"t":{"670":{"position":[[255,11]]}}}],["2871868277",{"_index":2199,"t":{"644":{"position":[[206,11]]}}}],["2nd",{"_index":1442,"t":{"286":{"position":[[191,5]]}}}],["2x",{"_index":1177,"t":{"154":{"position":[[675,3]]}}}],["3",{"_index":428,"t":{"35":{"position":[[46,1],[85,2],[262,1],[271,1],[285,1],[304,1],[317,1],[323,1],[328,1]]},"162":{"position":[[47,2]]},"173":{"position":[[198,1]]},"183":{"position":[[125,2],[215,2],[255,1]]},"195":{"position":[[284,1]]},"197":{"position":[[210,1]]},"203":{"position":[[14,1]]},"207":{"position":[[153,2]]},"213":{"position":[[142,2]]},"219":{"position":[[212,1]]},"221":{"position":[[126,2],[199,1],[291,2]]},"282":{"position":[[255,2],[836,2],[884,4]]},"284":{"position":[[203,2],[215,3]]},"286":{"position":[[202,1],[539,1],[547,2],[602,1]]},"302":{"position":[[424,1]]},"320":{"position":[[144,2],[368,2]]},"333":{"position":[[81,1],[193,1]]},"339":{"position":[[172,1]]},"359":{"position":[[143,1],[153,1],[170,4]]},"393":{"position":[[172,1]]},"395":{"position":[[160,1]]},"425":{"position":[[276,2],[363,2],[368,2]]},"427":{"position":[[304,2]]},"515":{"position":[[87,1]]},"531":{"position":[[646,1]]},"539":{"position":[[135,1]]},"599":{"position":[[388,1],[575,4]]},"601":{"position":[[436,1]]},"742":{"position":[[686,2]]},"788":{"position":[[28,1],[242,3],[264,2],[374,3],[396,2]]},"792":{"position":[[258,2],[261,2],[297,2]]},"794":{"position":[[187,2]]},"796":{"position":[[167,2]]},"798":{"position":[[97,2]]},"800":{"position":[[103,2]]},"802":{"position":[[104,2],[128,1]]},"806":{"position":[[171,2]]},"808":{"position":[[132,2]]},"824":{"position":[[98,2]]},"828":{"position":[[145,2]]},"830":{"position":[[92,2]]},"836":{"position":[[175,2]]},"842":{"position":[[141,2],[278,3],[284,2],[394,3],[400,2]]},"846":{"position":[[208,2],[255,2]]},"850":{"position":[[290,1],[327,1]]},"852":{"position":[[538,2],[616,1],[636,2],[719,1]]},"860":{"position":[[342,1]]},"862":{"position":[[95,1]]},"864":{"position":[[94,1],[117,1]]},"866":{"position":[[276,1]]},"870":{"position":[[146,2],[149,2],[152,2],[245,3],[251,2]]},"872":{"position":[[252,2],[324,1]]},"876":{"position":[[264,2],[290,2],[322,2]]},"880":{"position":[[132,1]]}}}],["3):ab",{"_index":2508,"t":{"806":{"position":[[143,9]]}}}],["3.5x",{"_index":1508,"t":{"306":{"position":[[103,4]]}}}],["3.7416573867739",{"_index":2494,"t":{"796":{"position":[[186,15],[229,15]]}}}],["30",{"_index":2593,"t":{"856":{"position":[[488,2],[491,3]]}}}],["3154674178",{"_index":2233,"t":{"666":{"position":[[253,11]]}}}],["3190198453633110066",{"_index":2242,"t":{"672":{"position":[[201,20]]}}}],["32",{"_index":1089,"t":{"124":{"position":[[310,2]]},"660":{"position":[[30,2]]},"694":{"position":[[202,2]]},"696":{"position":[[203,2]]},"700":{"position":[[170,2]]},"702":{"position":[[171,2]]},"706":{"position":[[234,2]]},"708":{"position":[[139,2]]}}}],["32973",{"_index":780,"t":{"90":{"position":[[723,6]]}}}],["3600",{"_index":2073,"t":{"573":{"position":[[341,4],[423,4]]}}}],["384",{"_index":2259,"t":{"683":{"position":[[28,3]]}}}],["3889643616",{"_index":2230,"t":{"664":{"position":[[253,11]]}}}],["3rd",{"_index":1443,"t":{"286":{"position":[[207,5]]}}}],["3x",{"_index":1131,"t":{"136":{"position":[[229,2]]},"290":{"position":[[67,2]]}}}],["4",{"_index":430,"t":{"35":{"position":[[93,2]]},"177":{"position":[[220,1]]},"181":{"position":[[191,1]]},"183":{"position":[[128,2],[218,2],[272,2]]},"282":{"position":[[263,2],[396,1]]},"284":{"position":[[230,2]]},"286":{"position":[[555,2],[566,2],[623,1]]},"475":{"position":[[800,2]]},"495":{"position":[[339,2],[649,2]]},"515":{"position":[[89,1],[136,1]]},"599":{"position":[[394,1]]},"601":{"position":[[442,1]]},"774":{"position":[[1006,3]]},"828":{"position":[[186,1]]},"830":{"position":[[133,1]]},"836":{"position":[[178,2],[228,2],[234,2]]},"842":{"position":[[144,2],[287,3],[293,2],[391,2],[403,3]]},"846":{"position":[[216,1],[258,1]]},"852":{"position":[[541,2],[639,2],[642,1],[721,2]]},"866":{"position":[[175,2]]},"870":{"position":[[155,2],[158,2],[161,2],[164,1],[254,3],[260,2]]},"876":{"position":[[267,2],[293,2],[311,2],[325,1]]}}}],["400",{"_index":1745,"t":{"429":{"position":[[317,4]]},"431":{"position":[[377,4]]},"433":{"position":[[599,4]]}}}],["4096",{"_index":2316,"t":{"711":{"position":[[176,5]]}}}],["41",{"_index":2585,"t":{"856":{"position":[[291,3]]}}}],["42",{"_index":1201,"t":{"164":{"position":[[68,2]]},"187":{"position":[[86,2],[185,2]]},"259":{"position":[[317,3],[374,2]]},"261":{"position":[[300,3],[357,2]]},"278":{"position":[[145,2],[224,2],[314,2],[384,2]]},"284":{"position":[[77,2],[83,3],[100,2],[385,2],[401,2],[482,5],[502,4],[572,4]]},"339":{"position":[[178,2]]},"345":{"position":[[233,2]]},"347":{"position":[[148,2],[224,2]]},"475":{"position":[[806,3]]},"495":{"position":[[345,3],[655,3]]},"856":{"position":[[374,3]]}}}],["430867652",{"_index":2218,"t":{"656":{"position":[[247,10]]}}}],["443",{"_index":2160,"t":{"623":{"position":[[860,4],[1350,4]]},"627":{"position":[[187,4],[262,3]]},"629":{"position":[[171,4]]},"631":{"position":[[123,4]]},"633":{"position":[[124,4]]}}}],["45597",{"_index":729,"t":{"86":{"position":[[194,6]]}}}],["5",{"_index":431,"t":{"35":{"position":[[101,2],[117,4],[166,4],[444,3],[530,2]]},"66":{"position":[[353,1]]},"76":{"position":[[276,1]]},"78":{"position":[[379,1]]},"173":{"position":[[100,1]]},"179":{"position":[[121,1]]},"181":{"position":[[86,1]]},"183":{"position":[[200,1]]},"195":{"position":[[239,1]]},"199":{"position":[[288,1]]},"203":{"position":[[319,1]]},"205":{"position":[[145,1]]},"207":{"position":[[280,2],[359,2]]},"239":{"position":[[280,1]]},"282":{"position":[[271,2],[287,4],[336,4],[419,2]]},"284":{"position":[[233,2]]},"286":{"position":[[558,2]]},"312":{"position":[[368,3]]},"339":{"position":[[198,1]]},"351":{"position":[[41,1],[177,1]]},"357":{"position":[[372,1]]},"405":{"position":[[322,1]]},"457":{"position":[[154,2]]},"515":{"position":[[91,1],[138,1]]},"599":{"position":[[349,1],[400,1]]},"601":{"position":[[397,1],[448,1]]},"768":{"position":[[555,3],[608,2]]},"836":{"position":[[181,2]]},"842":{"position":[[147,2],[296,3],[302,2],[382,2],[412,3]]},"852":{"position":[[544,1],[618,2]]},"876":{"position":[[270,1],[296,1]]},"880":{"position":[[151,2],[211,2]]}}}],["5,0,0,0",{"_index":2455,"t":{"774":{"position":[[963,7]]}}}],["5,000",{"_index":2449,"t":{"774":{"position":[[777,5]]}}}],["5,0000",{"_index":2456,"t":{"774":{"position":[[1014,6]]}}}],["5.00",{"_index":2454,"t":{"774":{"position":[[912,4]]}}}],["5.1",{"_index":2575,"t":{"850":{"position":[[91,4]]}}}],["5.4",{"_index":551,"t":{"62":{"position":[[27,3],[119,3]]}}}],["5.4'",{"_index":1795,"t":{"461":{"position":[[108,6]]},"499":{"position":[[105,6]]},"535":{"position":[[103,6]]},"543":{"position":[[101,6]]},"577":{"position":[[101,6]]},"736":{"position":[[105,6]]},"822":{"position":[[104,6]]}}}],["50",{"_index":2434,"t":{"768":{"position":[[493,4]]}}}],["50,000",{"_index":2451,"t":{"774":{"position":[[818,6]]}}}],["500",{"_index":2446,"t":{"774":{"position":[[737,3]]}}}],["500,000",{"_index":2453,"t":{"774":{"position":[[863,7]]}}}],["5000",{"_index":2448,"t":{"774":{"position":[[765,6],[942,6]]}}}],["500000",{"_index":2452,"t":{"774":{"position":[[849,8]]}}}],["500000.4",{"_index":2457,"t":{"774":{"position":[[1065,10]]}}}],["512",{"_index":2262,"t":{"685":{"position":[[28,3]]},"711":{"position":[[382,4]]}}}],["58",{"_index":2470,"t":{"782":{"position":[[302,2],[389,2]]}}}],["58595a",{"_index":2468,"t":{"782":{"position":[[266,6],[347,6]]}}}],["59",{"_index":2471,"t":{"782":{"position":[[305,2],[392,2]]},"784":{"position":[[141,2]]}}}],["5a",{"_index":2472,"t":{"782":{"position":[[308,2],[395,2]]}}}],["5a\":fromhex",{"_index":2477,"t":{"784":{"position":[[144,14]]}}}],["5eb63bbbe01eeed093cb22bb8f5acdc3",{"_index":2203,"t":{"646":{"position":[[189,35]]}}}],["6",{"_index":1196,"t":{"162":{"position":[[50,2]]},"207":{"position":[[381,2]]},"284":{"position":[[236,2],[248,3]]},"286":{"position":[[561,1],[569,2],[625,1]]},"292":{"position":[[235,1]]},"298":{"position":[[82,1]]},"515":{"position":[[93,1],[140,1]]},"798":{"position":[[121,1]]},"804":{"position":[[156,1]]},"836":{"position":[[184,2]]},"860":{"position":[[413,1]]},"866":{"position":[[178,1]]},"880":{"position":[[169,2],[232,2]]}}}],["6.1232339957368e",{"_index":2532,"t":{"814":{"position":[[206,16],[326,16],[448,16]]}}}],["60",{"_index":2075,"t":{"573":{"position":[[410,2]]}}}],["65537",{"_index":2324,"t":{"711":{"position":[[594,6]]},"719":{"position":[[766,5]]},"723":{"position":[[791,5]]}}}],["65e05b66",{"_index":1612,"t":{"341":{"position":[[416,8]]}}}],["68",{"_index":2586,"t":{"856":{"position":[[298,3]]}}}],["69",{"_index":1413,"t":{"276":{"position":[[225,3]]},"475":{"position":[[372,3],[748,3]]},"495":{"position":[[316,3],[626,3]]},"856":{"position":[[381,3]]}}}],["6aa8b7c94e7580774a804c24",{"_index":1613,"t":{"341":{"position":[[425,26]]}}}],["7",{"_index":1467,"t":{"292":{"position":[[179,1]]},"515":{"position":[[95,1],[142,1]]}}}],["7088720765356542432",{"_index":2244,"t":{"674":{"position":[[200,20]]}}}],["8",{"_index":1095,"t":{"126":{"position":[[123,1]]},"128":{"position":[[204,1]]},"292":{"position":[[160,1],[531,1]]},"515":{"position":[[97,1],[144,1]]},"764":{"position":[[70,1]]}}}],["8):unpack",{"_index":1930,"t":{"515":{"position":[[119,12]]}}}],["80",{"_index":2127,"t":{"611":{"position":[[362,3]]},"617":{"position":[[461,3]]},"621":{"position":[[246,3]]}}}],["847757641",{"_index":606,"t":{"70":{"position":[[491,9]]}}}],["8618312879776256743",{"_index":2213,"t":{"652":{"position":[[192,20]]}}}],["894552257",{"_index":2207,"t":{"648":{"position":[[247,10]]}}}],["8dad5f6a7dd2dcd8c35ec2fd7babb499bcad60d27d73fe73eca2ce025dfd3b47",{"_index":2257,"t":{"681":{"position":[[275,67]]}}}],["9",{"_index":1197,"t":{"162":{"position":[[53,1]]},"292":{"position":[[198,1],[258,1]]},"298":{"position":[[94,1],[150,1]]},"339":{"position":[[192,1]]},"401":{"position":[[156,1]]},"515":{"position":[[99,1]]}}}],["90",{"_index":2533,"t":{"814":{"position":[[248,3],[368,3]]}}}],["90.0",{"_index":2521,"t":{"810":{"position":[[507,5],[617,5],[719,5],[825,5]]}}}],["9065573210506989167",{"_index":2210,"t":{"650":{"position":[[190,20]]}}}],["9090",{"_index":2391,"t":{"734":{"position":[[372,5]]}}}],["98365361248415863235179644468056200977592391948608651522703704315152579004021",{"_index":2327,"t":{"711":{"position":[[738,78]]},"715":{"position":[[811,78]]}}}],["_",{"_index":1263,"t":{"221":{"position":[[317,2]]},"561":{"position":[[210,2]]}}}],["__construct",{"_index":1324,"t":{"249":{"position":[[97,11]]},"257":{"position":[[284,12]]},"261":{"position":[[25,11]]}}}],["__construct(nam",{"_index":1326,"t":{"249":{"position":[[161,17]]},"251":{"position":[[128,17]]},"253":{"position":[[122,17]]},"257":{"position":[[192,17],[443,17]]},"259":{"position":[[184,17]]}}}],["__construct(publ",{"_index":1352,"t":{"261":{"position":[[184,18]]},"359":{"position":[[238,18]]}}}],["__declspec(dllexport",{"_index":1826,"t":{"475":{"position":[[285,21]]}}}],["__eq",{"_index":1591,"t":{"339":{"position":[[273,4]]}}}],["__gc",{"_index":1334,"t":{"251":{"position":[[176,6]]}}}],["__index",{"_index":901,"t":{"102":{"position":[[468,7]]},"116":{"position":[[120,7]]},"471":{"position":[[623,7]]},"509":{"position":[[361,7]]},"820":{"position":[[759,7]]}}}],["__lt",{"_index":1592,"t":{"339":{"position":[[282,5]]}}}],["__order",{"_index":710,"t":{"84":{"position":[[1646,7]]},"96":{"position":[[1761,7],[1966,7]]},"471":{"position":[[1185,11]]},"531":{"position":[[549,7],[599,7]]},"533":{"position":[[434,7]]}}}],["__parent",{"_index":1340,"t":{"255":{"position":[[196,8]]}}}],["__tostr",{"_index":1675,"t":{"381":{"position":[[19,10]]},"790":{"position":[[19,10]]}}}],["__valu",{"_index":1801,"t":{"469":{"position":[[132,7]]}}}],["_g",{"_index":761,"t":{"90":{"position":[[200,2]]}}}],["_g.coroutin",{"_index":1895,"t":{"509":{"position":[[419,14]]}}}],["_g.string",{"_index":1495,"t":{"302":{"position":[[237,9]]}}}],["_g.tabl",{"_index":902,"t":{"102":{"position":[[478,8]]},"509":{"position":[[406,9]]},"511":{"position":[[198,9]]}}}],["_g:myfunc",{"_index":1398,"t":{"270":{"position":[[575,12]]}}}],["_psoup",{"_index":924,"t":{"102":{"position":[[2136,6]]},"130":{"position":[[167,6]]},"503":{"position":[[0,6]]}}}],["_pversion",{"_index":1176,"t":{"154":{"position":[[621,9]]},"501":{"position":[[0,9]]},"505":{"position":[[139,9],[236,18]]}}}],["_version",{"_index":1884,"t":{"505":{"position":[[187,18],[264,12]]}}}],["_win32",{"_index":1825,"t":{"475":{"position":[[263,6]]}}}],["a\":1,\"b\":2,\"c\":3",{"_index":2000,"t":{"531":{"position":[[684,19]]}}}],["a.k.a",{"_index":1710,"t":{"413":{"position":[[72,6],[178,5]]}}}],["a?.b?.c",{"_index":1382,"t":{"268":{"position":[[807,7]]}}}],["aadata",{"_index":2309,"t":{"706":{"position":[[144,6]]},"708":{"position":[[72,6],[468,6],[663,7],[768,7]]}}}],["aarch64",{"_index":785,"t":{"92":{"position":[[82,7]]}}}],["abi",{"_index":672,"t":{"84":{"position":[[927,3],[968,3]]},"122":{"position":[[72,3]]}}}],["abov",{"_index":213,"t":{"12":{"position":[[832,5]]},"16":{"position":[[695,6]]},"46":{"position":[[677,6]]},"166":{"position":[[35,6]]},"247":{"position":[[25,5]]},"282":{"position":[[1023,5]]},"339":{"position":[[450,6]]},"381":{"position":[[8,6]]},"790":{"position":[[8,6]]},"812":{"position":[[209,5]]}}}],["absenc",{"_index":1150,"t":{"142":{"position":[[595,7]]}}}],["absent",{"_index":1755,"t":{"433":{"position":[[931,6]]},"569":{"position":[[114,7]]},"573":{"position":[[125,7]]},"575":{"position":[[124,7]]},"860":{"position":[[245,7]]}}}],["absolut",{"_index":662,"t":{"84":{"position":[[509,10]]},"102":{"position":[[2944,8]]},"475":{"position":[[151,8]]},"565":{"position":[[32,8]]},"567":{"position":[[11,8]]},"806":{"position":[[55,8]]}}}],["accept",{"_index":582,"t":{"66":{"position":[[13,7]]},"78":{"position":[[13,7]]},"102":{"position":[[2982,6]]},"132":{"position":[[279,7]]},"341":{"position":[[456,8]]},"611":{"position":[[63,9]]},"637":{"position":[[0,7]]},"639":{"position":[[98,6]]},"820":{"position":[[183,7]]}}}],["access",{"_index":655,"t":{"84":{"position":[[128,8],[228,8]]},"102":{"position":[[3700,6]]},"112":{"position":[[538,6],[903,6]]},"122":{"position":[[232,6]]},"128":{"position":[[293,6]]},"207":{"position":[[429,6]]},"259":{"position":[[92,8]]},"268":{"position":[[0,9],[883,7]]},"304":{"position":[[223,6]]},"308":{"position":[[353,6]]},"503":{"position":[[35,6]]}}}],["accessor",{"_index":1163,"t":{"148":{"position":[[328,8]]}}}],["accordingli",{"_index":1925,"t":{"513":{"position":[[100,12]]}}}],["accumul",{"_index":2595,"t":{"860":{"position":[[46,11],[69,13],[97,11],[195,12],[229,12],[257,11],[305,12],[363,12],[387,12]]}}}],["achiev",{"_index":1622,"t":{"341":{"position":[[855,8]]}}}],["act",{"_index":2061,"t":{"569":{"position":[[184,6]]},"573":{"position":[[195,6]]},"575":{"position":[[194,6]]}}}],["action",{"_index":1489,"t":{"302":{"position":[[88,6]]}}}],["activ",{"_index":422,"t":{"33":{"position":[[179,7]]},"599":{"position":[[15,9]]}}}],["actual",{"_index":45,"t":{"4":{"position":[[315,8]]},"104":{"position":[[139,6]]},"768":{"position":[[92,8]]}}}],["ad",{"_index":142,"t":{"8":{"position":[[1462,5]]},"12":{"position":[[121,5]]},"84":{"position":[[0,5],[46,5],[1012,5],[1033,5],[1051,5],[1071,5],[1093,5],[1133,5],[1156,5],[1198,5],[1222,5],[1258,5],[1387,5],[1468,5],[1514,5]]},"90":{"position":[[0,5]]},"96":{"position":[[0,5],[24,5],[49,5],[82,5],[142,5],[210,5],[278,5],[726,5],[900,5],[918,5],[938,5],[959,5],[982,5],[1002,5],[1023,5],[1047,5],[1074,5],[1095,5],[1122,5],[1149,5],[1272,5],[1298,5],[1325,5],[1378,5],[1404,5],[1434,5],[1465,5],[1503,5],[1551,5],[1595,5],[1655,5],[1685,5],[1710,5],[2253,5],[2333,5],[2384,5]]},"98":{"position":[[0,5]]},"100":{"position":[[0,5],[500,5],[525,5],[549,5]]},"102":{"position":[[0,5],[25,5],[115,5],[143,5],[174,5],[294,5],[399,5],[491,5],[523,5],[1165,5],[1214,5],[1391,5],[1913,5],[2143,5],[2206,5],[2242,5],[2264,5],[2284,5],[2310,5],[2332,5],[2470,5],[2638,5],[2657,5],[2673,5],[2693,5],[2713,5],[2733,5],[2747,5],[2766,5],[2783,5],[2805,5],[2817,5],[2860,5],[3453,5],[3648,5],[3725,5],[3760,5],[3799,5],[3834,5],[3914,5]]},"104":{"position":[[288,5]]},"112":{"position":[[0,5],[74,5],[138,5],[220,5],[284,5],[326,5],[354,5],[1341,5],[1382,5]]},"114":{"position":[[318,5]]},"120":{"position":[[0,5],[73,5],[140,5],[192,5],[239,5],[540,5],[585,5],[648,5],[757,5],[877,5],[1111,5],[1215,5],[1329,5],[1383,5],[1449,5],[1515,5],[1560,5]]},"124":{"position":[[94,5]]},"130":{"position":[[0,5],[35,5],[74,5],[99,5],[141,5],[161,5],[449,5],[517,5],[560,5],[603,5],[616,5],[629,5],[642,5]]},"134":{"position":[[0,5]]},"152":{"position":[[0,5]]},"154":{"position":[[0,5],[61,5],[133,5],[171,5],[196,5],[232,5],[261,5],[293,5],[302,5],[327,5],[348,5],[383,5],[414,5],[452,5],[479,5],[550,5],[584,5],[615,5]]},"595":{"position":[[103,5]]}}}],["add",{"_index":22,"t":{"4":{"position":[[17,3]]},"16":{"position":[[474,3]]},"60":{"position":[[283,3]]},"62":{"position":[[182,4]]},"185":{"position":[[206,3]]},"207":{"position":[[6,4]]},"223":{"position":[[201,3],[207,3]]},"237":{"position":[[479,3]]},"249":{"position":[[6,4]]},"255":{"position":[[189,4]]},"274":{"position":[[8,3]]},"312":{"position":[[200,3]]},"355":{"position":[[263,3]]},"387":{"position":[[0,4]]},"475":{"position":[[775,6]]},"495":{"position":[[578,6]]},"531":{"position":[[542,3]]},"533":{"position":[[426,4]]},"573":{"position":[[394,4]]},"595":{"position":[[4,3]]},"597":{"position":[[40,3]]},"623":{"position":[[12,3]]},"856":{"position":[[591,3]]}}}],["add(1",{"_index":1239,"t":{"199":{"position":[[172,6],[292,6]]},"239":{"position":[[164,6],[284,6]]}}}],["add(a",{"_index":1238,"t":{"199":{"position":[[133,6]]},"223":{"position":[[146,6],[268,6],[499,6]]},"239":{"position":[[125,6],[380,6]]}}}],["add(int",{"_index":1829,"t":{"475":{"position":[[398,7]]},"495":{"position":[[267,7]]}}}],["addit",{"_index":534,"t":{"54":{"position":[[441,10]]},"86":{"position":[[347,10]]},"142":{"position":[[0,10]]},"148":{"position":[[0,10]]},"312":{"position":[[89,10]]},"331":{"position":[[57,9]]},"343":{"position":[[31,10]]},"461":{"position":[[34,9]]},"499":{"position":[[34,9]]},"525":{"position":[[228,10]]},"535":{"position":[[34,9]]},"543":{"position":[[34,9]]},"577":{"position":[[34,9]]},"704":{"position":[[39,10]]},"736":{"position":[[34,9]]},"822":{"position":[[34,9]]}}}],["addloop",{"_index":2095,"t":{"597":{"position":[[4,7]]}}}],["address",{"_index":2118,"t":{"607":{"position":[[89,8]]},"627":{"position":[[102,7]]}}}],["adler",{"_index":2222,"t":{"660":{"position":[[24,5]]}}}],["advanc",{"_index":1632,"t":{"347":{"position":[[93,8]]},"473":{"position":[[59,8]]}}}],["advis",{"_index":207,"t":{"12":{"position":[[736,7]]},"310":{"position":[[154,9]]}}}],["ae",{"_index":2275,"t":{"692":{"position":[[22,3]]},"694":{"position":[[52,4],[71,4],[110,4],[123,4],[232,4]]},"696":{"position":[[53,4],[72,4],[111,4],[124,4],[233,4],[687,4]]},"698":{"position":[[21,3]]},"700":{"position":[[52,4],[91,4],[200,4]]},"702":{"position":[[19,4],[58,4],[201,4],[578,4]]},"704":{"position":[[19,3]]},"706":{"position":[[60,4],[71,3],[264,4]]},"708":{"position":[[61,4],[169,4],[757,4]]}}}],["aforement",{"_index":346,"t":{"25":{"position":[[529,14]]},"774":{"position":[[634,14]]}}}],["afterward",{"_index":2459,"t":{"776":{"position":[[379,11]]}}}],["ag",{"_index":1200,"t":{"164":{"position":[[62,3],[218,3],[265,3]]},"166":{"position":[[79,3],[246,3]]},"255":{"position":[[82,3]]},"259":{"position":[[171,3],[202,4],[235,3]]},"261":{"position":[[217,4]]}}}],["again",{"_index":994,"t":{"106":{"position":[[64,5]]},"523":{"position":[[1371,5]]}}}],["against",{"_index":1574,"t":{"335":{"position":[[61,7]]},"820":{"position":[[115,7]]},"866":{"position":[[24,7]]}}}],["agent",{"_index":1603,"t":{"341":{"position":[[290,7]]}}}],["aggreg",{"_index":1266,"t":{"223":{"position":[[48,9]]}}}],["aggress",{"_index":1241,"t":{"203":{"position":[[86,10]]}}}],["agnost",{"_index":2437,"t":{"772":{"position":[[22,8]]}}}],["aid",{"_index":203,"t":{"12":{"position":[[648,3]]},"27":{"position":[[3,3]]}}}],["aim",{"_index":1,"t":{"2":{"position":[[6,4]]}}}],["akin",{"_index":1887,"t":{"509":{"position":[[58,4]]}}}],["algorithm",{"_index":1140,"t":{"142":{"position":[[111,10],[383,11]]},"290":{"position":[[452,9]]},"322":{"position":[[19,10]]},"339":{"position":[[331,10]]},"644":{"position":[[72,10]]},"646":{"position":[[55,10]]},"648":{"position":[[55,10]]},"650":{"position":[[55,10]]},"652":{"position":[[56,10]]},"654":{"position":[[56,10]]},"656":{"position":[[55,10]]},"658":{"position":[[56,10]]},"660":{"position":[[59,10]]},"662":{"position":[[58,10]]},"664":{"position":[[58,10]]},"666":{"position":[[58,10]]},"668":{"position":[[58,10]]},"670":{"position":[[59,10]]},"672":{"position":[[60,10]]},"674":{"position":[[60,10]]},"676":{"position":[[65,10]]},"679":{"position":[[52,10]]},"681":{"position":[[54,10]]},"683":{"position":[[54,10]]},"685":{"position":[[54,10]]},"687":{"position":[[57,10]]}}}],["alia",{"_index":903,"t":{"102":{"position":[[507,5],[2840,5]]},"112":{"position":[[266,5]]},"134":{"position":[[22,5]]},"329":{"position":[[128,5],[184,5]]},"541":{"position":[[3,5]]}}}],["alias",{"_index":703,"t":{"84":{"position":[[1543,7]]}}}],["alic",{"_index":1371,"t":{"268":{"position":[[252,7]]}}}],["aliv",{"_index":1973,"t":{"523":{"position":[[2102,5]]},"525":{"position":[[18,5]]},"527":{"position":[[16,5]]}}}],["alloc",{"_index":999,"t":{"106":{"position":[[226,10]]}}}],["allow",{"_index":62,"t":{"4":{"position":[[599,6]]},"27":{"position":[[191,6]]},"68":{"position":[[55,5]]},"86":{"position":[[140,8]]},"106":{"position":[[285,8]]},"108":{"position":[[25,6]]},"223":{"position":[[20,6]]},"259":{"position":[[6,6]]},"276":{"position":[[19,6],[127,6]]},"286":{"position":[[37,5]]},"316":{"position":[[492,5]]},"318":{"position":[[6,6]]},"320":{"position":[[24,6]]},"326":{"position":[[32,8]]},"337":{"position":[[20,6]]},"339":{"position":[[73,6]]},"341":{"position":[[18,6]]},"347":{"position":[[75,8]]},"357":{"position":[[6,6],[480,5]]},"359":{"position":[[6,6]]},"704":{"position":[[28,6]]}}}],["alphabet",{"_index":2417,"t":{"756":{"position":[[43,10],[202,10]]}}}],["alphanumer",{"_index":2421,"t":{"760":{"position":[[43,12],[207,12]]}}}],["alreadi",{"_index":308,"t":{"23":{"position":[[8,7]]},"623":{"position":[[635,7]]}}}],["alter",{"_index":1926,"t":{"513":{"position":[[162,7]]}}}],["altern",{"_index":646,"t":{"80":{"position":[[56,14]]},"102":{"position":[[2406,11]]},"112":{"position":[[749,13]]},"215":{"position":[[48,14]]},"225":{"position":[[52,14]]},"237":{"position":[[26,11]]},"265":{"position":[[138,14]]},"278":{"position":[[33,11]]},"288":{"position":[[52,14]]},"294":{"position":[[55,14]]},"298":{"position":[[22,11]]},"316":{"position":[[209,13]]},"463":{"position":[[3,11]]},"471":{"position":[[757,14]]}}}],["although",{"_index":223,"t":{"14":{"position":[[0,8]]},"33":{"position":[[222,8]]},"278":{"position":[[602,8]]},"704":{"position":[[78,8]]},"856":{"position":[[606,9]]}}}],["alway",{"_index":156,"t":{"10":{"position":[[193,6]]},"84":{"position":[[909,6]]},"102":{"position":[[2107,6]]},"229":{"position":[[28,6]]},"337":{"position":[[257,6]]},"503":{"position":[[70,6]]}}}],["ambigu",{"_index":765,"t":{"90":{"position":[[386,11]]},"106":{"position":[[332,11]]},"245":{"position":[[492,11]]}}}],["amount",{"_index":1366,"t":{"268":{"position":[[112,6]]},"579":{"position":[[16,6]]}}}],["amzn",{"_index":1607,"t":{"341":{"position":[[379,4]]}}}],["anchor",{"_index":2395,"t":{"734":{"position":[[480,9]]}}}],["and/or",{"_index":209,"t":{"12":{"position":[[758,6]]}}}],["android",{"_index":1882,"t":{"505":{"position":[[105,10]]}}}],["annot",{"_index":817,"t":{"96":{"position":[[161,10]]},"195":{"position":[[422,10]]}}}],["annoy",{"_index":915,"t":{"102":{"position":[[1548,11]]},"175":{"position":[[304,10]]},"189":{"position":[[404,10]]},"191":{"position":[[354,10]]},"193":{"position":[[351,10]]}}}],["anonym",{"_index":1260,"t":{"213":{"position":[[18,10]]},"237":{"position":[[53,9]]},"347":{"position":[[55,9]]}}}],["anoth",{"_index":148,"t":{"10":{"position":[[0,7]]},"18":{"position":[[250,7]]},"549":{"position":[[15,7]]},"766":{"position":[[24,7]]},"776":{"position":[[341,7]]},"832":{"position":[[159,7]]}}}],["ansi",{"_index":1166,"t":{"154":{"position":[[76,4]]},"355":{"position":[[209,4]]}}}],["anyth",{"_index":1279,"t":{"229":{"position":[[166,8]]}}}],["anywher",{"_index":656,"t":{"84":{"position":[[137,8]]},"282":{"position":[[929,8]]}}}],["apart",{"_index":1483,"t":{"300":{"position":[[123,5]]}}}],["api",{"_index":1173,"t":{"154":{"position":[[379,3]]},"249":{"position":[[307,3]]}}}],["appear",{"_index":2609,"t":{"870":{"position":[[71,7]]}}}],["appl",{"_index":1212,"t":{"177":{"position":[[127,8]]},"292":{"position":[[149,7]]},"766":{"position":[[667,8],[746,9],[760,6]]},"838":{"position":[[230,7],[323,5]]},"840":{"position":[[219,8]]}}}],["appli",{"_index":661,"t":{"84":{"position":[[496,7],[548,8]]},"102":{"position":[[1694,5]]},"363":{"position":[[105,5]]},"369":{"position":[[104,5]]},"373":{"position":[[169,5]]}}}],["application/json",{"_index":1940,"t":{"523":{"position":[[412,18]]}}}],["approach",{"_index":2066,"t":{"569":{"position":[[435,9]]}}}],["appropri",{"_index":1942,"t":{"523":{"position":[[515,14]]}}}],["approxim",{"_index":1968,"t":{"523":{"position":[[1655,11]]}}}],["apt",{"_index":479,"t":{"46":{"position":[[33,3],[361,3],[377,3]]},"54":{"position":[[119,3]]}}}],["arbitrari",{"_index":1186,"t":{"156":{"position":[[54,9]]}}}],["arch",{"_index":510,"t":{"48":{"position":[[16,4]]},"54":{"position":[[173,5]]}}}],["arch=amd64",{"_index":492,"t":{"46":{"position":[[177,11]]}}}],["aren't",{"_index":1720,"t":{"417":{"position":[[148,6]]},"419":{"position":[[152,6]]}}}],["arg",{"_index":1210,"t":{"175":{"position":[[543,5]]},"241":{"position":[[142,4],[161,4],[169,3],[313,4],[321,3]]},"341":{"position":[[203,8]]}}}],["arg,str",{"_index":916,"t":{"102":{"position":[[1583,11]]}}}],["arg=valu",{"_index":2393,"t":{"734":{"position":[[438,12]]}}}],["argument",{"_index":190,"t":{"12":{"position":[[352,8]]},"66":{"position":[[42,8],[277,10]]},"70":{"position":[[81,9]]},"78":{"position":[[42,8],[303,10]]},"84":{"position":[[1489,8]]},"86":{"position":[[358,9]]},"88":{"position":[[347,8]]},"90":{"position":[[68,9]]},"96":{"position":[[873,8]]},"102":{"position":[[2908,8]]},"112":{"position":[[785,9],[842,9]]},"114":{"position":[[9,9],[69,9],[115,10]]},"120":{"position":[[204,9]]},"122":{"position":[[8,9]]},"124":{"position":[[8,9]]},"138":{"position":[[145,9]]},"142":{"position":[[197,10],[473,10]]},"183":{"position":[[29,9],[168,9],[189,10],[257,10]]},"231":{"position":[[22,10],[58,9],[377,9]]},"233":{"position":[[23,9],[51,9],[80,9]]},"237":{"position":[[655,10]]},"261":{"position":[[71,9]]},"314":{"position":[[253,8]]},"343":{"position":[[42,9]]},"429":{"position":[[355,9],[365,10],[469,8],[478,8]]},"431":{"position":[[319,9],[329,10]]},"433":{"position":[[525,9],[535,10],[762,9],[772,10],[946,8]]},"487":{"position":[[52,9]]},"491":{"position":[[186,8]]},"593":{"position":[[25,10]]},"774":{"position":[[1102,8]]},"788":{"position":[[30,10]]},"804":{"position":[[54,9]]},"812":{"position":[[80,9]]}}}],["arithmet",{"_index":1145,"t":{"142":{"position":[[372,10]]},"322":{"position":[[8,10]]},"792":{"position":[[26,10]]}}}],["around",{"_index":1179,"t":{"154":{"position":[[721,6]]},"324":{"position":[[16,6]]},"443":{"position":[[276,6]]},"878":{"position":[[38,7]]},"880":{"position":[[38,7]]}}}],["array",{"_index":1015,"t":{"112":{"position":[[80,5]]},"227":{"position":[[283,5]]},"623":{"position":[[359,5]]},"828":{"position":[[63,5]]},"842":{"position":[[13,5]]},"846":{"position":[[13,5],[65,5]]},"852":{"position":[[24,5],[38,6],[205,5]]},"868":{"position":[[14,5]]}}}],["arrow",{"_index":1296,"t":{"237":{"position":[[346,6]]},"286":{"position":[[336,5]]},"353":{"position":[[260,5]]}}}],["articl",{"_index":295,"t":{"18":{"position":[[115,8]]}}}],["artifact",{"_index":770,"t":{"90":{"position":[[546,9]]}}}],["ascii",{"_index":866,"t":{"96":{"position":[[2234,5]]},"752":{"position":[[43,5]]}}}],["aspir",{"_index":567,"t":{"64":{"position":[[6,7]]}}}],["assert",{"_index":925,"t":{"102":{"position":[[2149,9]]},"405":{"position":[[0,7],[88,9],[151,6],[254,9]]},"407":{"position":[[0,7],[91,9],[150,6],[267,9]]},"409":{"position":[[0,7],[93,9],[154,6],[273,9]]},"411":{"position":[[0,7],[142,9],[203,6],[358,9]]},"413":{"position":[[0,7],[226,9],[318,6],[444,9]]},"415":{"position":[[0,7],[97,9],[152,6],[278,9]]},"417":{"position":[[0,7],[382,9],[453,6],[567,9],[794,9]]},"419":{"position":[[0,7],[386,9],[453,6]]},"421":{"position":[[0,7],[119,9],[192,6],[304,9]]},"423":{"position":[[0,7],[131,9],[216,6],[332,9]]},"425":{"position":[[0,7],[122,9],[199,6],[317,9]]},"427":{"position":[[0,7],[134,9],[223,6]]},"429":{"position":[[0,7],[198,9],[265,6],[414,9]]},"431":{"position":[[0,7],[194,9],[269,6],[420,9]]},"433":{"position":[[0,7],[304,9],[460,6],[642,9],[893,9]]},"435":{"position":[[0,7],[455,9]]},"846":{"position":[[147,6]]}}}],["assert(\"a",{"_index":1274,"t":{"227":{"position":[[413,10]]}}}],["assert(\"b",{"_index":1275,"t":{"227":{"position":[[464,10]]}}}],["assert(\"valu",{"_index":1276,"t":{"227":{"position":[[515,14]]}}}],["assert(\"world",{"_index":1271,"t":{"227":{"position":[[170,14]]}}}],["assert(aft",{"_index":2462,"t":{"776":{"position":[[524,12],[727,12]]}}}],["assert(befor",{"_index":2461,"t":{"776":{"position":[[498,13],[687,13]]}}}],["assert(compareversions(\"1.0.0",{"_index":1931,"t":{"517":{"position":[[95,31],[142,31]]}}}],["assert(crypto.adler32(str",{"_index":2223,"t":{"660":{"position":[[219,26]]}}}],["assert(crypto.crc32(str",{"_index":2220,"t":{"658":{"position":[[279,24]]}}}],["assert(crypto.djb2(str",{"_index":2206,"t":{"648":{"position":[[220,23]]}}}],["assert(crypto.fnv1(str",{"_index":2209,"t":{"650":{"position":[[163,23]]}}}],["assert(crypto.fnv1a(str",{"_index":2212,"t":{"652":{"position":[[164,24]]}}}],["assert(crypto.joaat(str",{"_index":2214,"t":{"654":{"position":[[221,24]]}}}],["assert(crypto.lookup3(str",{"_index":2226,"t":{"662":{"position":[[166,26]]}}}],["assert(crypto.lua(str",{"_index":2198,"t":{"644":{"position":[[180,22]]}}}],["assert(crypto.md5(str",{"_index":2202,"t":{"646":{"position":[[163,22]]}}}],["assert(crypto.murmur1(str",{"_index":2232,"t":{"666":{"position":[[223,26]]}}}],["assert(crypto.murmur2(str",{"_index":2235,"t":{"668":{"position":[[223,26]]}}}],["assert(crypto.murmur2a(str",{"_index":2238,"t":{"670":{"position":[[224,27]]}}}],["assert(crypto.murmur2neutral(str",{"_index":2246,"t":{"676":{"position":[[173,33]]}}}],["assert(crypto.murmur64a(str",{"_index":2241,"t":{"672":{"position":[[168,28]]}}}],["assert(crypto.murmur64b(str",{"_index":2243,"t":{"674":{"position":[[168,28]]}}}],["assert(crypto.sdbm(str",{"_index":2217,"t":{"656":{"position":[[220,23]]}}}],["assert(crypto.sha1(\"pluto",{"_index":2252,"t":{"679":{"position":[[240,27],[315,27]]}}}],["assert(crypto.sha256(\"pluto",{"_index":2256,"t":{"681":{"position":[[242,29],[343,29]]}}}],["assert(crypto.sha384(\"pluto",{"_index":2260,"t":{"683":{"position":[[242,29]]}}}],["assert(crypto.sha512(\"pluto",{"_index":2263,"t":{"685":{"position":[[242,29]]}}}],["assert(crypto.times33(str",{"_index":2229,"t":{"664":{"position":[[223,26]]}}}],["assert(data[1",{"_index":2627,"t":{"878":{"position":[[280,14]]}}}],["assert(data[2",{"_index":2628,"t":{"878":{"position":[[311,14]]}}}],["assert(data[3",{"_index":2629,"t":{"878":{"position":[[342,14]]}}}],["assert(data[4",{"_index":2630,"t":{"878":{"position":[[373,14]]}}}],["assert(decod",{"_index":2007,"t":{"533":{"position":[[738,14]]}}}],["assert(decoded.__order[1",{"_index":2011,"t":{"533":{"position":[[1162,25]]}}}],["assert(decoded.key",{"_index":2009,"t":{"533":{"position":[[934,18]]}}}],["assert(decoded.nested.nested_key",{"_index":2010,"t":{"533":{"position":[[998,32]]}}}],["assert(decoded.nul",{"_index":2012,"t":{"533":{"position":[[1199,19]]}}}],["assert(heart",{"_index":1659,"t":{"359":{"position":[[431,13]]}}}],["assert(json.encode(decod",{"_index":2013,"t":{"533":{"position":[[1233,27]]}}}],["assert(lib.add(38",{"_index":1868,"t":{"495":{"position":[[320,18],[630,18]]}}}],["assert(lib.my_magic_int",{"_index":1867,"t":{"495":{"position":[[289,23],[599,23]]}}}],["assert(lib:value(\"i32",{"_index":1837,"t":{"475":{"position":[[705,23]]}}}],["assert(lib:wrap(\"i32",{"_index":1838,"t":{"475":{"position":[[752,22]]}}}],["assert(myenum.option_1",{"_index":1255,"t":{"207":{"position":[[469,22]]},"209":{"position":[[160,22]]}}}],["assert(n",{"_index":1404,"t":{"274":{"position":[[117,8]]},"276":{"position":[[98,8],[213,8]]}}}],["assert(not",{"_index":1277,"t":{"227":{"position":[[582,10]]}}}],["assert(option_1",{"_index":1250,"t":{"207":{"position":[[90,15],[296,15]]},"209":{"position":[[136,15]]},"213":{"position":[[79,15]]}}}],["assert(option_2",{"_index":1251,"t":{"207":{"position":[[112,15],[318,15]]},"213":{"position":[[101,15]]}}}],["assert(option_3",{"_index":1252,"t":{"207":{"position":[[134,15],[340,15]]},"213":{"position":[[123,15]]}}}],["assert(option_4",{"_index":1254,"t":{"207":{"position":[[362,15]]}}}],["assert(require\"crypto\".ripemd160(\"pluto",{"_index":2267,"t":{"687":{"position":[[212,41]]}}}],["assert(runtim",{"_index":600,"t":{"70":{"position":[[283,14],[538,14]]}}}],["assert(s:lower(1",{"_index":2398,"t":{"740":{"position":[[113,17]]}}}],["assert(s:starttls(\"pluto",{"_index":2161,"t":{"623":{"position":[[865,24]]}}}],["assert(s:upper(1",{"_index":2397,"t":{"738":{"position":[[109,17]]}}}],["assert(sam",{"_index":2568,"t":{"842":{"position":[[209,11]]}}}],["assert(sock:starttls(\"1.1.1.1",{"_index":2182,"t":{"631":{"position":[[158,32]]}}}],["assert(table.contains(t",{"_index":2558,"t":{"836":{"position":[[203,24],[237,24],[281,24]]}}}],["assert(table.isfrozen(t",{"_index":2557,"t":{"834":{"position":[[99,24]]}}}],["assert(test[1",{"_index":2633,"t":{"880":{"position":[[172,14]]}}}],["assert(test[2",{"_index":2634,"t":{"880":{"position":[[193,14]]}}}],["assert(test[3",{"_index":2635,"t":{"880":{"position":[[214,14]]}}}],["assert(type(decod",{"_index":2008,"t":{"533":{"position":[[762,20],[965,20]]}}}],["assert.contain",{"_index":677,"t":{"84":{"position":[[1077,15]]}}}],["assert.contains(\"hello",{"_index":1759,"t":{"435":{"position":[[634,24]]}}}],["assert.contains(\"world",{"_index":1760,"t":{"435":{"position":[[692,24]]}}}],["assert.equ",{"_index":881,"t":{"100":{"position":[[274,12]]},"417":{"position":[[584,14],[811,14]]}}}],["assert.equal(\"hello",{"_index":1723,"t":{"417":{"position":[[480,20]]}}}],["assert.equal(\"hi",{"_index":1726,"t":{"417":{"position":[[692,16]]}}}],["assert.equal(t1:reord",{"_index":2573,"t":{"846":{"position":[[220,26]]}}}],["assert.falsi",{"_index":1709,"t":{"411":{"position":[[375,14]]}}}],["assert.falsy(\"hello",{"_index":1708,"t":{"411":{"position":[[290,20]]}}}],["assert.falsy(fals",{"_index":1707,"t":{"411":{"position":[[259,19]]}}}],["assert.falsy(nil",{"_index":1706,"t":{"411":{"position":[[230,17]]}}}],["assert.great",{"_index":1741,"t":{"425":{"position":[[334,16]]}}}],["assert.greater(3",{"_index":1740,"t":{"425":{"position":[[226,17],[258,17]]}}}],["assert.greatereq(3",{"_index":1742,"t":{"427":{"position":[[250,19],[284,19]]}}}],["assert.haserror",{"_index":1750,"t":{"431":{"position":[[437,17]]}}}],["assert.haserror(error",{"_index":1748,"t":{"431":{"position":[[296,22]]}}}],["assert.haserror(tostr",{"_index":1749,"t":{"431":{"position":[[351,25]]}}}],["assert.isfals",{"_index":1705,"t":{"409":{"position":[[290,16]]}}}],["assert.isfalse(fals",{"_index":1703,"t":{"409":{"position":[[181,21]]}}}],["assert.isfalse(tru",{"_index":1704,"t":{"409":{"position":[[214,20]]}}}],["assert.isnil",{"_index":1695,"t":{"405":{"position":[[271,14]]}}}],["assert.isnil(5",{"_index":1694,"t":{"405":{"position":[[207,15]]}}}],["assert.isnil(nil",{"_index":1693,"t":{"405":{"position":[[178,17]]}}}],["assert.istru",{"_index":1702,"t":{"407":{"position":[[284,15]]}}}],["assert.istrue(fals",{"_index":1701,"t":{"407":{"position":[[208,20]]}}}],["assert.istrue(tru",{"_index":1700,"t":{"407":{"position":[[177,19]]}}}],["assert.less",{"_index":1736,"t":{"421":{"position":[[321,13]]}}}],["assert.less(1",{"_index":1735,"t":{"421":{"position":[[219,14],[248,14]]}}}],["assert.lesseq",{"_index":1738,"t":{"423":{"position":[[349,15]]}}}],["assert.lesseq(1",{"_index":1737,"t":{"423":{"position":[[243,16],[274,16]]}}}],["assert.nequ",{"_index":882,"t":{"100":{"position":[[289,13]]}}}],["assert.nequal(\"hello",{"_index":1732,"t":{"419":{"position":[[480,21]]}}}],["assert.nequal(\"hi",{"_index":1733,"t":{"419":{"position":[[536,17]]}}}],["assert.noerror",{"_index":1747,"t":{"429":{"position":[[431,16]]}}}],["assert.noerror(error",{"_index":1746,"t":{"429":{"position":[[333,21]]}}}],["assert.noerror(tostr",{"_index":1744,"t":{"429":{"position":[[292,24]]}}}],["assert.notnil",{"_index":1717,"t":{"415":{"position":[[295,15]]}}}],["assert.notnil(\"hello",{"_index":1715,"t":{"415":{"position":[[179,21]]}}}],["assert.notnil(nil",{"_index":1716,"t":{"415":{"position":[[221,18]]}}}],["assert.searcherror",{"_index":1754,"t":{"433":{"position":[[659,20],[910,20]]}}}],["assert.searcherror(\"argu",{"_index":1752,"t":{"433":{"position":[[487,30],[724,30],[794,30]]}}}],["assert.searcherror(\"someth",{"_index":1753,"t":{"433":{"position":[[557,31]]}}}],["assert.truthi",{"_index":1714,"t":{"413":{"position":[[461,15]]}}}],["assert.truthy(\"hello",{"_index":1712,"t":{"413":{"position":[[345,21]]}}}],["assert.truthy(nil",{"_index":1713,"t":{"413":{"position":[[387,18]]}}}],["assign",{"_index":626,"t":{"72":{"position":[[244,8],[359,8]]},"84":{"position":[[805,10]]},"102":{"position":[[1340,8]]},"106":{"position":[[364,10]]},"160":{"position":[[33,6]]},"162":{"position":[[83,6]]},"164":{"position":[[99,6]]},"166":{"position":[[59,6]]},"177":{"position":[[292,8]]},"179":{"position":[[279,8]]},"253":{"position":[[62,9]]},"261":{"position":[[51,6]]},"270":{"position":[[507,11]]},"335":{"position":[[660,11]]},"337":{"position":[[42,11],[132,8],[173,8],[326,8],[367,8]]}}}],["associ",{"_index":1497,"t":{"302":{"position":[[348,10]]}}}],["assum",{"_index":548,"t":{"60":{"position":[[356,8]]},"162":{"position":[[0,8]]},"164":{"position":[[0,8]]},"166":{"position":[[0,8]]},"531":{"position":[[731,8]]},"690":{"position":[[41,8]]}}}],["attempt",{"_index":570,"t":{"64":{"position":[[107,9]]},"148":{"position":[[358,8]]},"268":{"position":[[150,8],[369,8]]},"302":{"position":[[269,7],[458,7],[529,7],[610,7],[857,7]]},"523":{"position":[[680,7]]},"589":{"position":[[0,7]]},"623":{"position":[[0,8]]}}}],["attribut",{"_index":624,"t":{"72":{"position":[[160,10]]},"96":{"position":[[237,9],[681,9]]},"102":{"position":[[1238,10]]},"120":{"position":[[18,9]]},"187":{"position":[[135,9]]},"818":{"position":[[259,10]]},"820":{"position":[[191,10],[489,14]]}}}],["augment",{"_index":2003,"t":{"533":{"position":[[244,7]]}}}],["authent",{"_index":2305,"t":{"704":{"position":[[5,13],[120,14]]},"706":{"position":[[153,13],[358,14]]},"708":{"position":[[81,13],[229,14],[343,14]]}}}],["automat",{"_index":34,"t":{"4":{"position":[[120,13]]},"6":{"position":[[432,14]]},"84":{"position":[[284,13]]},"120":{"position":[[270,13]]},"223":{"position":[[34,13],[324,13],[555,13]]},"245":{"position":[[326,13]]},"257":{"position":[[336,14]]},"497":{"position":[[162,13]]},"611":{"position":[[49,13]]}}}],["avail",{"_index":111,"t":{"8":{"position":[[339,9]]},"50":{"position":[[9,9]]},"70":{"position":[[578,9]]},"211":{"position":[[264,10]]},"331":{"position":[[37,9]]},"467":{"position":[[18,9]]},"471":{"position":[[802,10]]},"511":{"position":[[277,11],[1029,12]]},"513":{"position":[[328,11],[442,12]]},"523":{"position":[[1708,9]]},"525":{"position":[[38,9],[83,9]]},"585":{"position":[[20,9]]},"589":{"position":[[656,10]]},"591":{"position":[[22,9]]},"605":{"position":[[50,9]]},"623":{"position":[[386,9]]}}}],["avoid",{"_index":872,"t":{"96":{"position":[[2498,5]]},"148":{"position":[[352,5]]},"175":{"position":[[288,5]]},"189":{"position":[[388,5]]},"191":{"position":[[338,5]]},"193":{"position":[[335,5]]},"245":{"position":[[475,5]]},"523":{"position":[[1414,5]]}}}],["awar",{"_index":21,"t":{"2":{"position":[[272,5]]}}}],["away",{"_index":2577,"t":{"852":{"position":[[8,4]]}}}],["axi",{"_index":2500,"t":{"800":{"position":[[21,4]]},"802":{"position":[[21,4]]},"806":{"position":[[41,4]]},"810":{"position":[[101,4],[201,4],[228,4]]}}}],["b",{"_index":668,"t":{"84":{"position":[[756,1]]},"94":{"position":[[89,1],[136,1]]},"162":{"position":[[124,2],[186,2],[240,2]]},"183":{"position":[[104,2]]},"199":{"position":[[140,2],[166,1]]},"223":{"position":[[153,2],[167,1],[275,2],[289,1],[506,2],[520,1]]},"227":{"position":[[392,4],[484,3]]},"237":{"position":[[489,2],[521,3],[547,1]]},"239":{"position":[[132,2],[158,1],[395,2],[437,1]]},"270":{"position":[[568,2],[597,2]]},"296":{"position":[[128,1],[154,1],[196,1],[204,1]]},"298":{"position":[[90,1],[115,1],[129,1]]},"300":{"position":[[76,1],[87,1]]},"314":{"position":[[143,2]]},"351":{"position":[[30,1],[166,1]]},"353":{"position":[[38,2],[53,1],[167,2],[182,1]]},"475":{"position":[[413,2],[429,2]]},"477":{"position":[[222,2]]},"481":{"position":[[207,2]]},"495":{"position":[[282,3]]},"531":{"position":[[616,4],[635,1]]},"874":{"position":[[124,4],[202,4]]}}}],["back",{"_index":2614,"t":{"874":{"position":[[211,9]]}}}],["background",{"_index":1775,"t":{"443":{"position":[[330,10],[399,10]]}}}],["backup",{"_index":2030,"t":{"549":{"position":[[306,6],[354,6]]}}}],["backup_cfg/config.txt",{"_index":2028,"t":{"549":{"position":[[244,26]]}}}],["backward",{"_index":1264,"t":{"221":{"position":[[398,9]]},"229":{"position":[[257,9]]},"290":{"position":[[540,9]]},"320":{"position":[[538,9]]},"810":{"position":[[978,8]]}}}],["bad",{"_index":189,"t":{"12":{"position":[[348,3]]},"185":{"position":[[163,3],[247,4]]},"519":{"position":[[170,6]]},"774":{"position":[[1195,4]]}}}],["banana",{"_index":1213,"t":{"177":{"position":[[144,8],[232,8]]},"292":{"position":[[167,8]]},"838":{"position":[[258,8]]},"840":{"position":[[228,9],[281,10],[318,6]]}}}],["bar",{"_index":2063,"t":{"569":{"position":[[326,5]]},"828":{"position":[[158,5]]},"830":{"position":[[105,5]]}}}],["base",{"_index":225,"t":{"14":{"position":[[50,5]]},"84":{"position":[[363,5]]},"207":{"position":[[182,4]]},"441":{"position":[[30,5]]},"505":{"position":[[255,5]]},"561":{"position":[[165,5]]},"591":{"position":[[85,5]]},"744":{"position":[[17,4]]},"810":{"position":[[26,5]]},"812":{"position":[[26,5]]},"814":{"position":[[27,5]]},"870":{"position":[[20,5]]}}}],["base32",{"_index":612,"t":{"70":{"position":[[632,6]]},"98":{"position":[[131,6]]},"130":{"position":[[635,6]]},"363":{"position":[[19,6]]},"365":{"position":[[18,6],[64,6]]}}}],["base32.encod",{"_index":859,"t":{"96":{"position":[[2059,13]]}}}],["base58",{"_index":613,"t":{"70":{"position":[[639,6]]},"102":{"position":[[3624,6]]},"130":{"position":[[622,6]]}}}],["base64",{"_index":614,"t":{"70":{"position":[[646,6]]},"98":{"position":[[140,6]]},"130":{"position":[[609,6]]},"168":{"position":[[121,7]]},"369":{"position":[[10,6],[149,6]]},"371":{"position":[[18,6],[64,6],[89,6]]},"373":{"position":[[90,7],[215,6]]},"375":{"position":[[78,6],[103,6]]},"457":{"position":[[99,7]]},"719":{"position":[[267,7]]},"723":{"position":[[292,7]]}}}],["base64.decod",{"_index":1668,"t":{"375":{"position":[[11,13]]}}}],["base64.encod",{"_index":858,"t":{"96":{"position":[[2043,13]]}}}],["base64.url_decod",{"_index":960,"t":{"102":{"position":[[3059,17]]}}}],["base64.url_encod",{"_index":959,"t":{"102":{"position":[[3039,17]]}}}],["base64.urldecod",{"_index":961,"t":{"102":{"position":[[3099,16]]}}}],["base64.urlencod",{"_index":862,"t":{"96":{"position":[[2134,17]]},"102":{"position":[[3080,16]]}}}],["base64url",{"_index":1665,"t":{"373":{"position":[[10,9]]},"375":{"position":[[36,10]]}}}],["basi",{"_index":1507,"t":{"306":{"position":[[71,6]]}}}],["basic",{"_index":1369,"t":{"268":{"position":[[210,5]]},"533":{"position":[[639,5]]},"776":{"position":[[393,5]]}}}],["batch",{"_index":539,"t":{"56":{"position":[[127,5]]}}}],["battl",{"_index":290,"t":{"18":{"position":[[40,6]]}}}],["bce8c9aca4120776fad6b517874aa09c46405454",{"_index":2253,"t":{"679":{"position":[[271,43]]}}}],["be",{"_index":555,"t":{"62":{"position":[[82,5]]},"84":{"position":[[826,5]]},"90":{"position":[[24,5]]},"92":{"position":[[204,5]]},"94":{"position":[[309,5],[503,5],[656,5]]},"96":{"position":[[784,5],[838,5]]},"98":{"position":[[161,5]]},"100":{"position":[[452,5]]},"102":{"position":[[1089,5]]},"110":{"position":[[141,5]]},"114":{"position":[[253,5]]},"124":{"position":[[293,5],[353,5]]},"126":{"position":[[175,5]]},"217":{"position":[[188,5]]},"286":{"position":[[383,5]]},"300":{"position":[[273,5]]},"589":{"position":[[608,5]]},"637":{"position":[[180,5]]},"806":{"position":[[46,5]]}}}],["becom",{"_index":153,"t":{"10":{"position":[[132,7]]},"824":{"position":[[150,8]]},"846":{"position":[[44,7]]}}}],["befor",{"_index":310,"t":{"23":{"position":[[29,6]]},"70":{"position":[[147,6]]},"84":{"position":[[217,6]]},"112":{"position":[[625,6]]},"122":{"position":[[180,6]]},"195":{"position":[[338,6]]},"205":{"position":[[81,6]]},"304":{"position":[[202,6]]},"776":{"position":[[302,6],[457,7],[640,7]]},"842":{"position":[[250,7]]}}}],["begin",{"_index":121,"t":{"8":{"position":[[753,10]]},"84":{"position":[[665,5]]},"112":{"position":[[617,7]]},"207":{"position":[[51,5],[239,5]]},"209":{"position":[[97,5]]},"211":{"position":[[128,5]]},"213":{"position":[[40,5]]},"359":{"position":[[99,6]]},"713":{"position":[[427,5]]},"715":{"position":[[204,5]]},"774":{"position":[[328,9]]}}}],["behav",{"_index":1195,"t":{"158":{"position":[[239,7]]},"296":{"position":[[20,6]]}}}],["behavior",{"_index":807,"t":{"94":{"position":[[565,8]]},"104":{"position":[[17,8]]},"112":{"position":[[1096,8]]},"134":{"position":[[152,8]]},"142":{"position":[[639,9]]},"509":{"position":[[322,8]]}}}],["benefici",{"_index":1528,"t":{"312":{"position":[[272,10]]}}}],["benefit",{"_index":1462,"t":{"290":{"position":[[477,7]]}}}],["benign",{"_index":169,"t":{"12":{"position":[[49,6]]}}}],["besid",{"_index":639,"t":{"76":{"position":[[237,7]]},"357":{"position":[[333,7]]}}}],["better",{"_index":211,"t":{"12":{"position":[[773,6]]},"27":{"position":[[417,6]]},"160":{"position":[[19,6]]},"569":{"position":[[476,7]]}}}],["between",{"_index":1767,"t":{"443":{"position":[[172,7]]},"648":{"position":[[118,7]]},"654":{"position":[[119,7]]},"656":{"position":[[118,7]]},"658":{"position":[[177,7]]},"664":{"position":[[121,7]]},"666":{"position":[[121,7]]},"668":{"position":[[121,7]]},"670":{"position":[[122,7]]},"876":{"position":[[45,7]]}}}],["beyond",{"_index":2440,"t":{"774":{"position":[[187,6]]}}}],["bg",{"_index":1774,"t":{"443":{"position":[[311,4],[549,2]]}}}],["big",{"_index":1000,"t":{"106":{"position":[[254,4]]}}}],["bigint",{"_index":829,"t":{"96":{"position":[[1008,8]]},"102":{"position":[[2507,6]]},"379":{"position":[[17,7],[125,7],[145,6]]},"381":{"position":[[81,6]]},"383":{"position":[[45,7],[65,6]]},"385":{"position":[[40,7],[60,6]]},"387":{"position":[[9,7],[41,7]]},"389":{"position":[[28,8],[51,7]]},"391":{"position":[[31,8],[54,7]]},"393":{"position":[[25,8],[50,8],[95,6]]},"395":{"position":[[25,8],[48,6],[86,6]]},"397":{"position":[[24,8],[47,6],[86,6]]},"399":{"position":[[32,8],[55,7],[75,6]]},"401":{"position":[[85,6]]},"711":{"position":[[291,6]]},"713":{"position":[[131,7]]},"715":{"position":[[129,7]]},"719":{"position":[[275,7]]},"723":{"position":[[300,7]]},"774":{"position":[[157,6]]}}}],["bigint(\"115443384115231951475820445136871322101870729500298182134363293112660251666017",{"_index":2329,"t":{"713":{"position":[[191,89]]},"719":{"position":[[335,89]]},"723":{"position":[[360,89]]}}}],["bigint(\"123",{"_index":1674,"t":{"379":{"position":[[187,14]]}}}],["bigint(\"420\"):binari",{"_index":1678,"t":{"385":{"position":[[102,23]]}}}],["bigint(\"420\"):hex",{"_index":1676,"t":{"383":{"position":[[107,20]]}}}],["bigint(\"98365361248415863235179644468056200977592391948608651522703704315152579004021",{"_index":2330,"t":{"713":{"position":[[289,88]]},"719":{"position":[[433,88]]},"723":{"position":[[458,88]]}}}],["bigint(0x10001",{"_index":2346,"t":{"719":{"position":[[747,15]]},"723":{"position":[[772,15]]}}}],["bigint(10",{"_index":1684,"t":{"395":{"position":[[128,10]]},"397":{"position":[[128,10]]},"399":{"position":[[133,11]]}}}],["bigint(10):div(new",{"_index":1682,"t":{"393":{"position":[[137,18]]}}}],["bigint(2",{"_index":1687,"t":{"399":{"position":[[117,9]]}}}],["bigint(3",{"_index":1683,"t":{"393":{"position":[[156,11]]},"395":{"position":[[145,10]]},"397":{"position":[[145,10]]}}}],["bigint(420):bitlength",{"_index":1690,"t":{"401":{"position":[[127,24]]}}}],["bigint.eq",{"_index":678,"t":{"84":{"position":[[1099,10]]}}}],["bigint.l",{"_index":680,"t":{"84":{"position":[[1123,9]]}}}],["bigint.lt",{"_index":679,"t":{"84":{"position":[[1110,10]]}}}],["bigint.new",{"_index":1671,"t":{"379":{"position":[[42,10]]}}}],["binari",{"_index":467,"t":{"41":{"position":[[23,8]]},"46":{"position":[[566,8]]},"50":{"position":[[77,8]]},"54":{"position":[[507,8]]},"56":{"position":[[191,8]]},"58":{"position":[[111,8]]},"60":{"position":[[162,8]]},"88":{"position":[[494,6]]},"96":{"position":[[1855,6]]},"98":{"position":[[167,6]]},"130":{"position":[[117,6]]},"276":{"position":[[158,6]]},"385":{"position":[[11,6]]},"679":{"position":[[125,6]]},"681":{"position":[[127,6]]},"683":{"position":[[127,6]]},"685":{"position":[[127,6]]},"687":{"position":[[130,6]]},"782":{"position":[[11,8]]},"784":{"position":[[25,7]]}}}],["bind",{"_index":2190,"t":{"639":{"position":[[234,4]]}}}],["bit",{"_index":1090,"t":{"124":{"position":[[313,3]]},"401":{"position":[[49,3]]},"694":{"position":[[228,3]]},"696":{"position":[[229,3]]},"700":{"position":[[196,3]]},"702":{"position":[[197,3]]},"706":{"position":[[260,3]]},"708":{"position":[[165,3]]},"711":{"position":[[34,4],[73,3]]}}}],["bitshift",{"_index":1571,"t":{"331":{"position":[[441,8],[460,8]]}}}],["bitwis",{"_index":1570,"t":{"331":{"position":[[170,7],[186,7],[201,7]]},"533":{"position":[[308,7]]}}}],["black",{"_index":1777,"t":{"443":{"position":[[373,6]]},"459":{"position":[[22,5],[136,8]]}}}],["block",{"_index":239,"t":{"14":{"position":[[320,5]]},"29":{"position":[[1000,5]]},"100":{"position":[[147,6]]},"106":{"position":[[244,5]]},"181":{"position":[[22,5]]},"195":{"position":[[66,6]]},"223":{"position":[[366,6]]},"280":{"position":[[7,6]]},"282":{"position":[[945,6]]},"286":{"position":[[111,7],[286,6]]},"359":{"position":[[42,5]]},"523":{"position":[[1826,7]]},"525":{"position":[[366,6]]},"527":{"position":[[79,8]]},"607":{"position":[[304,7]]},"617":{"position":[[361,5]]},"623":{"position":[[750,7]]},"637":{"position":[[383,8]]},"639":{"position":[[126,5]]},"698":{"position":[[105,6],[143,7]]}}}],["bmp",{"_index":1763,"t":{"441":{"position":[[41,3],[68,3]]},"455":{"position":[[22,3]]}}}],["bodi",{"_index":823,"t":{"96":{"position":[[333,6]]},"102":{"position":[[736,4]]},"112":{"position":[[632,4]]},"237":{"position":[[444,6]]},"523":{"position":[[434,5],[1497,4],[2255,5]]},"820":{"position":[[1073,6],[1232,7]]}}}],["boilerpl",{"_index":1351,"t":{"261":{"position":[[144,12]]}}}],["bool",{"_index":320,"t":{"23":{"position":[[373,4]]},"553":{"position":[[147,4],[172,4]]},"555":{"position":[[145,4],[171,4]]},"565":{"position":[[100,4]]},"782":{"position":[[99,4],[156,4]]},"850":{"position":[[176,4]]},"852":{"position":[[401,4]]},"856":{"position":[[162,4]]}}}],["boolean",{"_index":1420,"t":{"278":{"position":[[636,7]]},"318":{"position":[[32,7]]},"329":{"position":[[147,7]]},"503":{"position":[[19,7]]},"531":{"position":[[47,8]]},"533":{"position":[[59,8]]},"549":{"position":[[151,7]]},"553":{"position":[[53,7]]},"555":{"position":[[53,7]]},"557":{"position":[[53,7]]},"559":{"position":[[75,7]]},"561":{"position":[[85,7]]},"723":{"position":[[214,7]]},"768":{"position":[[278,7]]},"776":{"position":[[142,7]]}}}],["boolean/bool",{"_index":1536,"t":{"316":{"position":[[24,12]]}}}],["boom",{"_index":2108,"t":{"599":{"position":[[602,5]]}}}],["boost",{"_index":1551,"t":{"322":{"position":[[181,6]]}}}],["border",{"_index":1772,"t":{"443":{"position":[[236,8]]}}}],["botanist",{"_index":1475,"t":{"292":{"position":[[312,11],[450,11]]}}}],["both",{"_index":1481,"t":{"294":{"position":[[103,4]]},"322":{"position":[[230,4]]},"417":{"position":[[85,4]]},"419":{"position":[[89,4]]},"497":{"position":[[113,5]]},"692":{"position":[[37,4]]},"746":{"position":[[32,4]]},"828":{"position":[[54,4]]},"852":{"position":[[18,5]]}}}],["bottleneck",{"_index":377,"t":{"29":{"position":[[244,10]]}}}],["box",{"_index":1029,"t":{"112":{"position":[[1166,3]]}}}],["bracket",{"_index":1418,"t":{"278":{"position":[[479,8]]}}}],["break",{"_index":406,"t":{"29":{"position":[[1084,8]]},"35":{"position":[[122,5],[178,5]]},"66":{"position":[[111,6],[147,8],[225,5],[257,7],[369,5],[390,5],[409,5],[430,5]]},"76":{"position":[[26,6]]},"94":{"position":[[358,5]]},"96":{"position":[[2504,8]]},"98":{"position":[[81,5]]},"102":{"position":[[1907,5]]},"132":{"position":[[178,7]]},"148":{"position":[[240,5]]},"185":{"position":[[229,5]]},"282":{"position":[[74,5],[116,5],[129,5],[292,5],[348,5],[438,5],[839,5],[1001,5]]},"284":{"position":[[113,5],[219,5],[252,5],[507,5],[577,5]]},"331":{"position":[[434,6]]},"337":{"position":[[607,5]]},"639":{"position":[[308,5]]}}}],["browser",{"_index":463,"t":{"39":{"position":[[114,7]]}}}],["buffer",{"_index":2138,"t":{"617":{"position":[[265,9]]},"619":{"position":[[197,7]]},"621":{"position":[[51,7]]}}}],["bug",{"_index":813,"t":{"94":{"position":[[809,4]]},"102":{"position":[[1521,4]]},"118":{"position":[[384,4]]},"132":{"position":[[158,4]]},"150":{"position":[[8,3]]},"282":{"position":[[516,4]]},"316":{"position":[[545,5]]}}}],["bugfix",{"_index":1005,"t":{"106":{"position":[[456,8]]},"146":{"position":[[0,7]]},"154":{"position":[[841,8]]}}}],["build",{"_index":201,"t":{"12":{"position":[[631,5]]},"14":{"position":[[400,5]]},"21":{"position":[[103,5]]},"23":{"position":[[271,5]]},"27":{"position":[[161,5]]},"33":{"position":[[69,5]]},"52":{"position":[[219,5]]},"56":{"position":[[119,5],[133,5],[178,8]]},"60":{"position":[[23,5],[103,5]]},"74":{"position":[[73,6],[96,6]]},"86":{"position":[[321,5]]},"90":{"position":[[706,6]]},"116":{"position":[[401,5]]},"122":{"position":[[56,8]]},"312":{"position":[[451,5]]},"355":{"position":[[124,5]]},"523":{"position":[[623,6],[922,6],[1273,6],[1589,6],[1726,6],[1842,6]]},"525":{"position":[[101,6]]},"527":{"position":[[128,6]]},"605":{"position":[[68,6]]}}}],["built",{"_index":466,"t":{"41":{"position":[[17,5]]},"136":{"position":[[298,5]]},"461":{"position":[[88,5]]},"499":{"position":[[85,5]]},"535":{"position":[[83,5]]},"543":{"position":[[81,5]]},"577":{"position":[[81,5]]},"736":{"position":[[85,5]]},"822":{"position":[[84,5]]}}}],["bundl",{"_index":282,"t":{"16":{"position":[[519,8],[600,8]]}}}],["burden",{"_index":936,"t":{"102":{"position":[[2445,8]]},"523":{"position":[[1420,9]]},"766":{"position":[[108,8]]}}}],["buster",{"_index":496,"t":{"46":{"position":[[278,6],[537,8]]}}}],["bvar",{"_index":1543,"t":{"318":{"position":[[110,4],[212,5]]}}}],["by=/usr/share/keyrings/calam",{"_index":494,"t":{"46":{"position":[[196,31]]}}}],["bypass",{"_index":313,"t":{"23":{"position":[[128,6]]},"25":{"position":[[196,6],[451,9]]}}}],["byte",{"_index":1117,"t":{"132":{"position":[[309,5]]},"483":{"position":[[188,6]]},"485":{"position":[[226,6]]},"571":{"position":[[28,6]]},"752":{"position":[[199,4]]}}}],["bytecod",{"_index":3,"t":{"2":{"position":[[29,8]]},"21":{"position":[[38,8]]},"62":{"position":[[137,9]]},"90":{"position":[[343,8]]},"100":{"position":[[90,8]]},"102":{"position":[[1960,9]]},"104":{"position":[[262,8]]},"114":{"position":[[46,8]]},"193":{"position":[[87,10],[196,9],[286,8]]},"203":{"position":[[549,9],[618,8]]},"221":{"position":[[365,8]]},"229":{"position":[[225,8]]},"263":{"position":[[577,9]]},"290":{"position":[[508,8]]},"320":{"position":[[506,8]]}}}],["c",{"_index":87,"t":{"6":{"position":[[302,1]]},"12":{"position":[[425,4]]},"23":{"position":[[369,3]]},"25":{"position":[[326,1]]},"52":{"position":[[66,3]]},"84":{"position":[[763,1],[849,1],[925,1],[964,3]]},"94":{"position":[[96,2],[140,2]]},"96":{"position":[[2261,2],[2465,3]]},"122":{"position":[[70,1]]},"130":{"position":[[147,1]]},"162":{"position":[[131,1],[189,1],[243,2]]},"183":{"position":[[107,2]]},"237":{"position":[[249,3]]},"249":{"position":[[305,1]]},"270":{"position":[[571,1],[600,2]]},"296":{"position":[[61,2]]},"353":{"position":[[41,2],[63,2],[170,2],[192,2]]},"405":{"position":[[341,4],[454,4]]},"407":{"position":[[360,4],[501,4]]},"409":{"position":[[367,4],[508,4]]},"411":{"position":[[479,4],[620,4]]},"413":{"position":[[547,4],[688,4]]},"415":{"position":[[372,4],[513,4]]},"443":{"position":[[493,1]]},"457":{"position":[[136,1]]},"475":{"position":[[234,3],[342,3],[383,3]]},"477":{"position":[[19,1],[50,1],[237,1]]},"481":{"position":[[19,1],[89,1],[222,1]]},"495":{"position":[[19,1],[101,1]]},"509":{"position":[[135,1]]},"513":{"position":[[196,1]]},"531":{"position":[[621,3],[642,1]]},"774":{"position":[[1233,4],[1297,4]]},"874":{"position":[[129,3],[152,3],[207,3],[225,1]]}}}],["c.r",{"_index":1846,"t":{"477":{"position":[[253,3]]},"481":{"position":[[243,3]]}}}],["c/c",{"_index":1143,"t":{"142":{"position":[[287,6]]}}}],["c2072a85f4a691803b8942709036072086fd9550",{"_index":2268,"t":{"687":{"position":[[257,43]]}}}],["c:\\users\\username\\desktop\\project\\a\\b\\c",{"_index":2052,"t":{"563":{"position":[[173,41]]}}}],["c:\\users\\username\\desktop\\project\\cfg\\cfg.txt",{"_index":2056,"t":{"565":{"position":[[275,47]]}}}],["c:fill(0xff0000",{"_index":1791,"t":{"457":{"position":[[157,16]]}}}],["c:resum",{"_index":1891,"t":{"509":{"position":[[215,10]]}}}],["cach",{"_index":722,"t":{"86":{"position":[[107,6]]},"154":{"position":[[656,5]]},"310":{"position":[[11,5],[84,5],[221,5]]}}}],["calam",{"_index":257,"t":{"16":{"position":[[69,8],[373,8]]}}}],["call",{"_index":373,"t":{"29":{"position":[[143,4],[352,6],[537,5]]},"35":{"position":[[448,4],[461,4]]},"70":{"position":[[42,6],[167,5]]},"92":{"position":[[103,5]]},"94":{"position":[[180,4],[601,5]]},"100":{"position":[[191,5]]},"102":{"position":[[207,6]]},"106":{"position":[[303,5]]},"108":{"position":[[163,4]]},"116":{"position":[[177,5]]},"120":{"position":[[842,5]]},"140":{"position":[[171,4]]},"162":{"position":[[114,6]]},"249":{"position":[[88,4]]},"257":{"position":[[83,4],[329,6],[416,4],[621,6]]},"270":{"position":[[80,5]]},"284":{"position":[[293,5]]},"304":{"position":[[184,4]]},"320":{"position":[[94,4]]},"322":{"position":[[284,7]]},"331":{"position":[[612,4]]},"345":{"position":[[39,5]]},"357":{"position":[[465,5]]},"379":{"position":[[33,4]]},"405":{"position":[[444,9]]},"407":{"position":[[463,9]]},"409":{"position":[[470,9]]},"411":{"position":[[582,9]]},"413":{"position":[[650,9]]},"415":{"position":[[475,9]]},"429":{"position":[[51,7]]},"431":{"position":[[47,7]]},"491":{"position":[[358,7]]},"519":{"position":[[0,5]]},"523":{"position":[[1760,6],[1870,6]]},"525":{"position":[[293,6]]},"527":{"position":[[181,6]]},"599":{"position":[[86,5]]},"601":{"position":[[135,7]]},"607":{"position":[[238,6]]},"611":{"position":[[215,6]]},"613":{"position":[[33,7]]},"623":{"position":[[684,6]]},"635":{"position":[[35,7]]},"637":{"position":[[352,6]]},"639":{"position":[[90,4]]},"726":{"position":[[52,4]]},"796":{"position":[[86,4]]},"850":{"position":[[138,6]]}}}],["callback",{"_index":1743,"t":{"429":{"position":[[13,8],[71,8],[177,9],[227,8]]},"431":{"position":[[13,8],[67,8],[173,9],[223,8]]},"433":{"position":[[13,8],[177,8],[283,9],[334,8],[368,8]]},"611":{"position":[[184,8]]},"838":{"position":[[88,8]]},"840":{"position":[[92,8]]},"850":{"position":[[123,8],[188,8]]},"852":{"position":[[92,9],[255,8],[413,8]]},"856":{"position":[[49,8],[95,8],[174,8]]},"860":{"position":[[148,8]]},"866":{"position":[[110,8]]}}}],["can't",{"_index":1561,"t":{"326":{"position":[[171,5]]}}}],["canari",{"_index":2357,"t":{"723":{"position":[[824,6]]}}}],["canon",{"_index":2053,"t":{"565":{"position":[[144,9]]}}}],["canonic",{"_index":953,"t":{"102":{"position":[[2930,13]]},"565":{"position":[[127,14]]}}}],["canva",{"_index":674,"t":{"84":{"position":[[1018,6]]},"439":{"position":[[14,6]]},"441":{"position":[[14,6]]},"443":{"position":[[14,6],[461,6],[478,8]]},"445":{"position":[[70,6]]},"447":{"position":[[70,6]]},"449":{"position":[[53,6]]},"451":{"position":[[18,7],[42,6]]},"453":{"position":[[25,7],[49,6]]},"455":{"position":[[10,6],[49,6]]},"457":{"position":[[10,6],[49,6],[107,6]]},"459":{"position":[[10,6],[70,6]]}}}],["canvas(5",{"_index":1790,"t":{"457":{"position":[[144,9]]}}}],["canvas.qrcode(\"hello",{"_index":1781,"t":{"443":{"position":[[497,20]]}}}],["capabl",{"_index":336,"t":{"25":{"position":[[103,10]]}}}],["capit",{"_index":2396,"t":{"738":{"position":[[73,11]]},"772":{"position":[[38,15]]}}}],["captur",{"_index":2092,"t":{"589":{"position":[[586,9],[620,7]]},"766":{"position":[[130,7]]}}}],["care",{"_index":215,"t":{"12":{"position":[[847,4]]},"856":{"position":[[690,4]]}}}],["carri",{"_index":1964,"t":{"523":{"position":[[1339,5]]}}}],["carrier",{"_index":2153,"t":{"623":{"position":[[86,7]]}}}],["case",{"_index":17,"t":{"2":{"position":[[217,6]]},"16":{"position":[[618,4]]},"29":{"position":[[667,5]]},"35":{"position":[[64,4],[72,4],[80,4],[88,4],[96,4]]},"74":{"position":[[286,5]]},"88":{"position":[[313,4],[451,4]]},"90":{"position":[[433,5]]},"94":{"position":[[497,5]]},"96":{"position":[[778,5]]},"102":{"position":[[100,4],[915,5],[1893,5]]},"118":{"position":[[124,5],[149,5],[189,6]]},"122":{"position":[[187,4]]},"124":{"position":[[420,5]]},"130":{"position":[[308,6]]},"136":{"position":[[173,4]]},"142":{"position":[[229,4]]},"195":{"position":[[103,4],[127,4],[243,4],[271,4],[302,4],[350,4],[532,4],[572,4]]},"257":{"position":[[105,4]]},"280":{"position":[[54,4]]},"282":{"position":[[38,4],[80,4],[234,4],[242,4],[250,4],[258,4],[266,4],[388,5],[414,4],[559,4],[595,4],[718,4],[756,5],[823,4],[831,4],[910,4],[1033,6]]},"284":{"position":[[35,4],[72,4],[192,4],[225,4],[407,4],[450,5],[513,4]]},"286":{"position":[[106,4],[165,4],[181,4],[197,4],[281,4],[528,4],[550,4],[678,4]]},"292":{"position":[[144,4],[162,4],[181,4],[200,4],[219,4],[237,4],[260,4]]},"300":{"position":[[232,5]]},"589":{"position":[[561,4]]},"599":{"position":[[188,4]]},"603":{"position":[[167,4]]},"782":{"position":[[205,6]]}}}],["cat",{"_index":755,"t":{"88":{"position":[[517,3]]},"96":{"position":[[924,5]]},"467":{"position":[[4,3]]},"469":{"position":[[20,4],[67,4],[84,3]]},"471":{"position":[[33,3],[66,3],[204,3],[825,3],[1053,3]]}}}],["cat.decod",{"_index":1806,"t":{"471":{"position":[[243,10]]}}}],["cat.encod",{"_index":1800,"t":{"469":{"position":[[110,10]]}}}],["catch",{"_index":33,"t":{"4":{"position":[[105,7]]},"8":{"position":[[650,5]]},"292":{"position":[[410,5]]},"294":{"position":[[85,5]]},"497":{"position":[[230,5]]}}}],["caus",{"_index":458,"t":{"35":{"position":[[671,7]]},"88":{"position":[[209,7]]},"94":{"position":[[670,5]]},"106":{"position":[[324,7]]},"122":{"position":[[203,7]]},"185":{"position":[[82,5]]},"203":{"position":[[122,6]]},"239":{"position":[[37,7]]}}}],["caution",{"_index":642,"t":{"76":{"position":[[338,7]]},"229":{"position":[[213,7]]},"245":{"position":[[372,7]]},"290":{"position":[[496,7]]},"304":{"position":[[122,7]]},"320":{"position":[[494,7]]},"473":{"position":[[30,7]]}}}],["cbc",{"_index":2280,"t":{"694":{"position":[[57,3],[115,4]]},"696":{"position":[[58,3],[116,4],[609,3],[692,3]]}}}],["cd",{"_index":521,"t":{"52":{"position":[[176,2]]},"60":{"position":[[125,2]]}}}],["cert",{"_index":2166,"t":{"623":{"position":[[1144,5]]}}}],["certain",{"_index":595,"t":{"70":{"position":[[0,7]]},"74":{"position":[[12,7],[65,7]]},"170":{"position":[[44,7]]},"201":{"position":[[85,7]]}}}],["certif",{"_index":2155,"t":{"623":{"position":[[275,11],[396,13],[415,11]]}}}],["cfb",{"_index":2282,"t":{"694":{"position":[[76,3],[128,4]]},"696":{"position":[[77,3],[129,4]]}}}],["cfg",{"_index":2048,"t":{"559":{"position":[[186,3],[232,3]]}}}],["cfg\\cfg.txt",{"_index":2058,"t":{"567":{"position":[[187,13]]}}}],["chain",{"_index":650,"t":{"84":{"position":[[6,7]]},"116":{"position":[[56,7]]},"333":{"position":[[42,7]]},"623":{"position":[[435,5],[1156,5]]}}}],["chanc",{"_index":143,"t":{"8":{"position":[[1570,6]]}}}],["chang",{"_index":97,"t":{"8":{"position":[[8,6]]},"12":{"position":[[203,7]]},"27":{"position":[[261,7]]},"96":{"position":[[2073,7]]},"100":{"position":[[613,8]]},"102":{"position":[[1622,6]]},"118":{"position":[[364,7]]},"122":{"position":[[148,6]]},"134":{"position":[[44,7]]},"142":{"position":[[587,7]]},"148":{"position":[[414,8],[634,7]]},"175":{"position":[[626,6]]},"201":{"position":[[38,7]]},"203":{"position":[[182,6]]},"272":{"position":[[22,7]]},"461":{"position":[[24,7]]},"499":{"position":[[24,7]]},"535":{"position":[[24,7]]},"543":{"position":[[24,7]]},"577":{"position":[[24,7]]},"736":{"position":[[24,7]]},"822":{"position":[[24,7]]}}}],["changelog",{"_index":649,"t":{"82":{"position":[[23,10]]}}}],["changer",{"_index":1637,"t":{"349":{"position":[[174,8]]}}}],["char",{"_index":322,"t":{"23":{"position":[[402,5]]}}}],["charact",{"_index":1187,"t":{"156":{"position":[[64,9]]},"290":{"position":[[32,10],[405,9]]},"742":{"position":[[221,9],[588,9]]},"746":{"position":[[16,10],[100,10]]},"748":{"position":[[16,10],[104,10]]},"750":{"position":[[16,10],[105,10]]},"752":{"position":[[49,11],[204,11]]},"754":{"position":[[53,11],[182,10],[211,11]]},"756":{"position":[[54,11],[183,10],[213,11]]},"758":{"position":[[53,11],[182,10],[211,11]]},"760":{"position":[[56,11],[188,10],[220,11]]},"762":{"position":[[57,11]]},"768":{"position":[[127,10],[338,9]]},"774":{"position":[[77,11],[509,9],[1200,10]]}}}],["check",{"_index":73,"t":{"6":{"position":[[122,5]]},"12":{"position":[[915,9]]},"16":{"position":[[563,5]]},"54":{"position":[[46,5]]},"102":{"position":[[774,5],[1788,5],[3586,5]]},"249":{"position":[[337,6]]},"263":{"position":[[39,5]]},"270":{"position":[[238,5]]},"501":{"position":[[27,5]]},"503":{"position":[[45,5]]},"537":{"position":[[0,6],[53,6]]},"631":{"position":[[0,5]]},"633":{"position":[[0,5]]},"639":{"position":[[0,6]]},"752":{"position":[[0,6],[87,6]]},"754":{"position":[[0,6],[91,6]]},"756":{"position":[[0,6],[92,6]]},"758":{"position":[[0,6],[91,6]]},"760":{"position":[[0,6],[94,6]]},"762":{"position":[[0,6],[95,6]]},"770":{"position":[[0,6],[67,6],[91,5]]},"778":{"position":[[0,6],[65,6],[96,5]]},"780":{"position":[[0,6],[67,6],[98,5]]},"828":{"position":[[114,6]]},"834":{"position":[[0,6],[57,6]]},"836":{"position":[[0,6],[67,6],[89,5]]},"838":{"position":[[77,6],[122,8]]},"840":{"position":[[81,6],[126,8]]},"866":{"position":[[135,8]]}}}],["checkall(|x",{"_index":2604,"t":{"866":{"position":[[180,14],[278,14]]}}}],["checksum_mismatch",{"_index":2371,"t":{"726":{"position":[[276,17]]}}}],["checksum_pres",{"_index":2370,"t":{"726":{"position":[[258,17]]}}}],["cherri",{"_index":1112,"t":{"132":{"position":[[105,6]]}}}],["child",{"_index":1802,"t":{"469":{"position":[[156,5],[223,6]]},"471":{"position":[[274,6],[471,8]]},"820":{"position":[[820,5]]}}}],["children",{"_index":1810,"t":{"471":{"position":[[417,12]]},"818":{"position":[[229,8],[298,8]]},"820":{"position":[[423,12],[555,12],[620,12],[969,12],[1244,12]]}}}],["choco",{"_index":477,"t":{"44":{"position":[[67,5]]}}}],["chocolatey",{"_index":476,"t":{"44":{"position":[[44,10]]}}}],["chosen",{"_index":2088,"t":{"589":{"position":[[363,6],[404,9],[440,6],[801,6],[848,6],[886,9]]}}}],["chunk",{"_index":198,"t":{"12":{"position":[[506,5]]},"407":{"position":[[495,5]]},"409":{"position":[[502,5]]},"411":{"position":[[614,5]]},"413":{"position":[[682,5]]},"415":{"position":[[507,5]]},"617":{"position":[[104,5]]},"621":{"position":[[9,5]]},"774":{"position":[[1291,5]]},"872":{"position":[[84,6],[160,6]]}}}],["ciphertext",{"_index":2289,"t":{"696":{"position":[[23,10]]},"698":{"position":[[132,10]]},"702":{"position":[[110,10]]},"706":{"position":[[339,10]]},"708":{"position":[[23,10]]},"719":{"position":[[23,10]]}}}],["circumst",{"_index":1510,"t":{"308":{"position":[[29,13]]}}}],["clang",{"_index":530,"t":{"54":{"position":[[238,5],[271,5],[305,5],[406,6]]},"116":{"position":[[395,5]]},"312":{"position":[[61,5]]},"475":{"position":[[468,5],[526,5]]}}}],["clarifi",{"_index":793,"t":{"92":{"position":[[329,10]]}}}],["class",{"_index":29,"t":{"4":{"position":[[77,6],[221,5],[254,9],[417,5],[448,5],[488,5]]},"8":{"position":[[537,6],[622,6]]},"62":{"position":[[276,8],[285,5]]},"84":{"position":[[71,7],[157,5]]},"90":{"position":[[173,5]]},"96":{"position":[[1017,5],[1041,5]]},"100":{"position":[[44,5]]},"102":{"position":[[552,5],[574,7],[1037,6],[2258,5],[2278,5]]},"112":{"position":[[395,5]]},"120":{"position":[[178,6],[596,5],[883,7],[996,7],[1015,6],[1761,8]]},"191":{"position":[[89,5],[133,7],[194,5]]},"209":{"position":[[65,7],[84,5]]},"249":{"position":[[311,8]]},"251":{"position":[[4,5],[107,5],[274,5],[321,5],[340,5]]},"253":{"position":[[16,5],[107,5]]},"255":{"position":[[4,5],[69,5],[94,5]]},"257":{"position":[[170,5],[235,5]]},"259":{"position":[[108,5],[139,5]]},"261":{"position":[[163,5]]},"263":{"position":[[61,5],[97,8],[112,5],[129,5],[407,5]]},"265":{"position":[[94,5],[168,6]]},"357":{"position":[[64,5],[222,5]]},"359":{"position":[[184,5],[214,5]]},"497":{"position":[[14,5]]},"591":{"position":[[14,5]]},"711":{"position":[[298,5]]},"790":{"position":[[81,6]]}}}],["classic",{"_index":1621,"t":{"341":{"position":[[843,11]]}}}],["claus",{"_index":1368,"t":{"268":{"position":[[128,7]]}}}],["clean",{"_index":1556,"t":{"324":{"position":[[129,5]]}}}],["cleaner",{"_index":1452,"t":{"290":{"position":[[57,7]]},"335":{"position":[[382,7]]}}}],["clear",{"_index":2553,"t":{"830":{"position":[[61,6]]}}}],["cli",{"_index":526,"t":{"54":{"position":[[134,3]]},"96":{"position":[[2248,4]]}}}],["click",{"_index":269,"t":{"16":{"position":[[298,5]]},"56":{"position":[[153,5]]}}}],["client",{"_index":2124,"t":{"611":{"position":[[77,7],[250,6]]},"613":{"position":[[56,9]]},"623":{"position":[[122,9],[758,6]]},"629":{"position":[[95,8],[202,6]]},"637":{"position":[[20,6],[237,6]]},"639":{"position":[[31,6]]}}}],["clone",{"_index":277,"t":{"16":{"position":[[429,5]]},"52":{"position":[[109,5],[135,5]]},"56":{"position":[[27,7]]}}}],["close",{"_index":803,"t":{"94":{"position":[[390,7]]},"102":{"position":[[876,6]]},"132":{"position":[[203,5]]},"308":{"position":[[100,6]]},"523":{"position":[[1362,5]]},"527":{"position":[[0,6],[44,7]]},"617":{"position":[[222,7]]},"623":{"position":[[610,7]]},"625":{"position":[[0,6]]}}}],["close\\r\\n\\r\\n",{"_index":2163,"t":{"623":{"position":[[1006,15]]}}}],["close\\r\\ncont",{"_index":2130,"t":{"611":{"position":[[447,16]]},"623":{"position":[[1462,16]]}}}],["club",{"_index":1657,"t":{"359":{"position":[[413,6]]}}}],["coalesc",{"_index":764,"t":{"90":{"position":[[262,10],[316,10]]},"148":{"position":[[183,10]]},"268":{"position":[[736,10]]},"331":{"position":[[503,11]]},"335":{"position":[[8,10]]}}}],["code",{"_index":7,"t":{"2":{"position":[[67,4]]},"14":{"position":[[129,6],[517,4]]},"16":{"position":[[52,5]]},"23":{"position":[[341,5]]},"27":{"position":[[198,4]]},"35":{"position":[[20,5],[653,4]]},"39":{"position":[[92,4]]},"62":{"position":[[130,4]]},"68":{"position":[[74,4]]},"70":{"position":[[395,4]]},"74":{"position":[[20,4]]},"76":{"position":[[204,4],[371,5],[384,4]]},"84":{"position":[[606,4]]},"86":{"position":[[406,4]]},"94":{"position":[[245,4],[750,4]]},"98":{"position":[[66,4]]},"100":{"position":[[120,4]]},"102":{"position":[[1837,4],[1941,5]]},"104":{"position":[[246,4]]},"108":{"position":[[69,5]]},"112":{"position":[[1043,4]]},"118":{"position":[[97,4]]},"124":{"position":[[233,4]]},"136":{"position":[[63,4]]},"142":{"position":[[173,5]]},"158":{"position":[[91,4],[234,4]]},"181":{"position":[[31,4],[167,4],[185,5],[242,4]]},"185":{"position":[[24,4]]},"187":{"position":[[24,4]]},"189":{"position":[[24,4],[218,5]]},"193":{"position":[[24,4]]},"201":{"position":[[93,4]]},"205":{"position":[[42,5]]},"217":{"position":[[221,5]]},"221":{"position":[[97,4],[231,4],[262,4]]},"223":{"position":[[102,4],[222,4]]},"245":{"position":[[74,4],[235,4]]},"274":{"position":[[85,4]]},"276":{"position":[[71,4],[182,4]]},"290":{"position":[[293,4]]},"296":{"position":[[100,4],[169,4]]},"320":{"position":[[115,4],[308,4],[339,4]]},"333":{"position":[[134,4]]},"335":{"position":[[406,5]]},"349":{"position":[[80,4]]},"351":{"position":[[12,4]]},"353":{"position":[[12,4]]},"443":{"position":[[46,5],[290,5]]},"475":{"position":[[238,5]]},"477":{"position":[[59,5]]},"481":{"position":[[98,5]]},"495":{"position":[[110,5]]},"513":{"position":[[48,5]]},"523":{"position":[[1526,4]]},"704":{"position":[[135,4]]}}}],["codebas",{"_index":14,"t":{"2":{"position":[[182,10]]}}}],["codifi",{"_index":212,"t":{"12":{"position":[[780,6]]}}}],["collect",{"_index":2611,"t":{"872":{"position":[[28,8]]}}}],["colon",{"_index":1318,"t":{"245":{"position":[[448,5]]},"286":{"position":[[360,5]]},"467":{"position":[[95,6]]}}}],["color",{"_index":1167,"t":{"154":{"position":[[81,5]]},"268":{"position":[[551,6],[591,6]]},"355":{"position":[[21,9],[147,7],[214,8]]},"443":{"position":[[341,6],[410,6]]},"445":{"position":[[9,5],[136,5]]},"447":{"position":[[9,5],[127,5]]},"449":{"position":[[30,6],[74,5]]},"459":{"position":[[91,5],[122,5]]},"471":{"position":[[1115,6],[1139,6],[1231,7],[1271,7],[1300,7],[1346,7]]},"477":{"position":[[156,5],[184,5],[245,7]]},"481":{"position":[[169,5]]}}}],["combat",{"_index":314,"t":{"23":{"position":[[153,6]]}}}],["combin",{"_index":172,"t":{"12":{"position":[[100,11]]},"96":{"position":[[1842,8]]},"239":{"position":[[333,8]]},"533":{"position":[[294,8]]}}}],["come",{"_index":1219,"t":{"181":{"position":[[247,5]]},"243":{"position":[[47,5]]}}}],["comma",{"_index":1332,"t":{"251":{"position":[[79,6]]}}}],["command",{"_index":261,"t":{"16":{"position":[[171,7]]},"54":{"position":[[204,9],[372,8]]},"58":{"position":[[28,8]]},"355":{"position":[[250,8]]}}}],["comment",{"_index":102,"t":{"8":{"position":[[106,7]]},"14":{"position":[[244,7],[302,9],[326,8]]},"96":{"position":[[441,8]]},"142":{"position":[[326,9]]},"203":{"position":[[237,7]]},"205":{"position":[[61,7]]}}}],["commit",{"_index":893,"t":{"100":{"position":[[641,6]]},"132":{"position":[[128,8]]}}}],["common",{"_index":1144,"t":{"142":{"position":[[365,6]]},"261":{"position":[[10,6]]},"711":{"position":[[142,6]]}}}],["commonli",{"_index":2342,"t":{"717":{"position":[[164,9]]}}}],["compar",{"_index":1524,"t":{"310":{"position":[[264,8]]},"339":{"position":[[95,7],[405,7]]},"417":{"position":[[58,7],[279,7]]},"419":{"position":[[62,7],[283,7]]},"772":{"position":[[0,8],[86,8],[116,8]]},"794":{"position":[[38,8]]}}}],["comparevers",{"_index":947,"t":{"102":{"position":[[2789,15]]}}}],["comparison",{"_index":651,"t":{"84":{"position":[[14,11]]},"86":{"position":[[432,11]]},"339":{"position":[[52,10]]},"517":{"position":[[21,10]]}}}],["compat",{"_index":4,"t":{"2":{"position":[[38,10]]},"4":{"position":[[187,13]]},"6":{"position":[[186,15]]},"8":{"position":[[170,10],[1307,13],[1434,14],[1516,13]]},"10":{"position":[[52,13],[160,13],[220,13]]},"62":{"position":[[99,10]]},"84":{"position":[[313,10],[465,13],[611,14]]},"88":{"position":[[419,13]]},"90":{"position":[[352,10]]},"96":{"position":[[2297,13]]},"102":{"position":[[3438,14]]},"112":{"position":[[200,10],[1170,14]]},"114":{"position":[[35,10]]},"154":{"position":[[308,13]]},"189":{"position":[[90,13]]},"191":{"position":[[57,13]]},"221":{"position":[[408,10]]},"229":{"position":[[267,10]]},"249":{"position":[[278,13]]},"263":{"position":[[566,10]]},"290":{"position":[[550,10]]},"312":{"position":[[45,10]]},"320":{"position":[[454,10],[548,10]]},"331":{"position":[[420,13]]},"341":{"position":[[324,12]]},"726":{"position":[[86,10]]}}}],["compatibl",{"_index":1362,"t":{"265":{"position":[[58,12]]}}}],["compil",{"_index":137,"t":{"8":{"position":[[1335,8]]},"21":{"position":[[29,8]]},"25":{"position":[[490,7]]},"46":{"position":[[580,8]]},"52":{"position":[[10,7],[73,8]]},"54":{"position":[[386,8]]},"70":{"position":[[52,7],[109,7],[242,7],[301,8],[341,7],[481,7],[556,8]]},"72":{"position":[[0,7],[267,7],[370,7]]},"74":{"position":[[47,8],[115,7],[326,8]]},"86":{"position":[[375,8]]},"88":{"position":[[179,7]]},"92":{"position":[[71,7]]},"96":{"position":[[732,7]]},"98":{"position":[[187,7]]},"102":{"position":[[1171,7]]},"112":{"position":[[360,7]]},"120":{"position":[[50,7],[96,7]]},"124":{"position":[[30,7]]},"126":{"position":[[29,7]]},"128":{"position":[[139,7]]},"154":{"position":[[6,7]]},"170":{"position":[[22,8]]},"175":{"position":[[388,7]]},"189":{"position":[[488,7]]},"191":{"position":[[438,7]]},"193":{"position":[[68,9],[435,7]]},"201":{"position":[[53,7]]},"203":{"position":[[129,11]]},"274":{"position":[[181,9]]},"312":{"position":[[136,10],[215,7]]},"314":{"position":[[356,11]]},"316":{"position":[[482,9]]},"322":{"position":[[60,7]]},"326":{"position":[[52,7]]},"475":{"position":[[439,8]]},"587":{"position":[[77,9]]}}}],["complex",{"_index":906,"t":{"102":{"position":[[666,7]]},"533":{"position":[[136,7],[799,7]]}}}],["compon",{"_index":1986,"t":{"525":{"position":[[239,10]]}}}],["compos",{"_index":2409,"t":{"752":{"position":[[31,8]]},"754":{"position":[[31,8]]},"756":{"position":[[31,8]]},"758":{"position":[[31,8]]},"760":{"position":[[31,8]]},"762":{"position":[[34,8]]},"876":{"position":[[20,8]]}}}],["compound",{"_index":561,"t":{"62":{"position":[[256,8]]},"96":{"position":[[55,8]]},"148":{"position":[[207,8]]},"154":{"position":[[420,8]]},"156":{"position":[[109,8]]},"331":{"position":[[14,8],[319,8],[564,8],[651,8]]},"335":{"position":[[651,8]]}}}],["comprehens",{"_index":891,"t":{"100":{"position":[[583,13]]}}}],["compress",{"_index":2365,"t":{"726":{"position":[[23,10]]}}}],["compressed_s",{"_index":2369,"t":{"726":{"position":[[241,16]]}}}],["compromis",{"_index":400,"t":{"29":{"position":[[880,10]]}}}],["comput",{"_index":2496,"t":{"798":{"position":[[0,8]]},"804":{"position":[[0,8]]},"860":{"position":[[37,8]]}}}],["concat",{"_index":743,"t":{"88":{"position":[[192,6]]},"96":{"position":[[745,6]]},"98":{"position":[[200,6]]},"102":{"position":[[1184,6]]},"511":{"position":[[804,10]]}}}],["concaten",{"_index":731,"t":{"86":{"position":[[226,13]]},"154":{"position":[[429,13]]},"278":{"position":[[55,14],[70,13],[587,14],[644,13]]},"318":{"position":[[20,11]]},"331":{"position":[[480,14]]}}}],["concern",{"_index":943,"t":{"102":{"position":[[2619,10]]}}}],["condit",{"_index":421,"t":{"33":{"position":[[149,9],[203,9]]},"74":{"position":[[128,13]]},"112":{"position":[[373,12]]},"270":{"position":[[105,13]]},"284":{"position":[[40,10]]},"286":{"position":[[309,10]]},"337":{"position":[[64,11],[472,10]]},"351":{"position":[[144,10]]},"766":{"position":[[479,11]]},"852":{"position":[[67,9]]}}}],["condition",{"_index":1438,"t":{"286":{"position":[[50,13]]}}}],["config",{"_index":202,"t":{"12":{"position":[[637,7]]},"21":{"position":[[109,7]]},"23":{"position":[[277,7]]},"27":{"position":[[167,7]]},"33":{"position":[[75,7]]},"312":{"position":[[457,7]]},"355":{"position":[[130,6]]},"549":{"position":[[313,9],[361,9]]}}}],["configur",{"_index":300,"t":{"18":{"position":[[196,11]]},"25":{"position":[[470,10]]},"29":{"position":[[459,14],[583,11],[681,13],[755,9]]},"31":{"position":[[26,12]]},"33":{"position":[[237,13]]},"84":{"position":[[525,13]]},"142":{"position":[[310,10]]},"175":{"position":[[401,13]]},"189":{"position":[[501,13]]},"191":{"position":[[451,13]]},"193":{"position":[[448,13]]}}}],["confus",{"_index":1051,"t":{"118":{"position":[[314,9]]}}}],["conjunct",{"_index":1020,"t":{"112":{"position":[[814,11]]}}}],["connect",{"_index":1948,"t":{"523":{"position":[[665,11],[702,7],[1039,10],[1300,10],[2120,10]]},"525":{"position":[[24,10]]},"527":{"position":[[22,11]]},"607":{"position":[[18,11],[54,7]]},"623":{"position":[[930,13]]},"627":{"position":[[41,11]]},"629":{"position":[[22,10]]},"631":{"position":[[11,10]]},"633":{"position":[[11,10]]},"637":{"position":[[27,11],[244,11]]},"639":{"position":[[38,11]]}}}],["consid",{"_index":1080,"t":{"120":{"position":[[1637,8]]},"185":{"position":[[298,8]]},"189":{"position":[[40,10]]},"517":{"position":[[257,10]]},"523":{"position":[[1137,8]]},"698":{"position":[[55,10]]},"852":{"position":[[151,8]]}}}],["consist",{"_index":1319,"t":{"247":{"position":[[4,11]]},"280":{"position":[[14,8]]},"306":{"position":[[60,10]]},"329":{"position":[[52,10]]},"711":{"position":[[217,11],[262,11]]},"774":{"position":[[258,7]]}}}],["const",{"_index":623,"t":{"72":{"position":[[154,5],[185,7],[304,7]]},"96":{"position":[[598,5],[630,7]]},"102":{"position":[[309,7],[352,7],[392,6]]},"187":{"position":[[78,5],[177,5],[232,10]]},"302":{"position":[[393,7]]},"696":{"position":[[422,7]]},"702":{"position":[[359,7]]},"708":{"position":[[433,7]]}}}],["constant",{"_index":620,"t":{"72":{"position":[[13,8],[280,9],[383,8]]},"94":{"position":[[269,8]]},"96":{"position":[[1065,8]]},"120":{"position":[[63,9]]},"124":{"position":[[43,8]]},"126":{"position":[[42,8]]},"128":{"position":[[152,9]]},"132":{"position":[[327,8]]},"302":{"position":[[326,8],[478,9]]},"326":{"position":[[65,10]]},"487":{"position":[[5,8]]}}}],["constexpr",{"_index":824,"t":{"96":{"position":[[669,11]]},"120":{"position":[[6,11]]}}}],["constitu",{"_index":2383,"t":{"734":{"position":[[22,11]]}}}],["constraint",{"_index":1758,"t":{"435":{"position":[[131,11],[172,11]]}}}],["construct",{"_index":591,"t":{"68":{"position":[[38,10]]},"120":{"position":[[848,17]]},"497":{"position":[[136,12]]}}}],["constructor",{"_index":1017,"t":{"112":{"position":[[332,11]]},"177":{"position":[[73,12]]},"251":{"position":[[42,12]]},"257":{"position":[[308,11]]},"593":{"position":[[4,11]]},"788":{"position":[[4,11]]}}}],["constructor/class",{"_index":1067,"t":{"120":{"position":[[1159,17]]}}}],["consum",{"_index":1035,"t":{"114":{"position":[[273,9]]},"619":{"position":[[30,9]]}}}],["contact",{"_index":304,"t":{"18":{"position":[[282,7]]},"607":{"position":[[145,7]]}}}],["contain",{"_index":648,"t":{"82":{"position":[[10,8]]},"86":{"position":[[166,7]]},"278":{"position":[[492,7]]},"433":{"position":[[429,7]]},"435":{"position":[[24,9],[44,9],[242,9],[294,9],[341,9],[357,9],[405,9],[500,9],[520,10],[542,9]]},"443":{"position":[[30,10]]},"505":{"position":[[31,10]]},"511":{"position":[[722,12]]},"561":{"position":[[177,10]]},"623":{"position":[[489,10]]},"770":{"position":[[19,8]]},"810":{"position":[[233,8]]},"836":{"position":[[21,8]]},"868":{"position":[[31,10]]}}}],["content",{"_index":1107,"t":{"130":{"position":[[523,7]]},"417":{"position":[[252,8]]},"419":{"position":[[256,8]]},"523":{"position":[[393,9],[486,7]]},"569":{"position":[[20,9],[84,8],[230,8]]},"611":{"position":[[382,7]]},"623":{"position":[[1397,7]]},"776":{"position":[[294,7],[371,7]]}}}],["content..\"\\r\\n\\r\\n\"..cont",{"_index":2131,"t":{"611":{"position":[[472,33]]},"623":{"position":[[1487,33]]}}}],["context",{"_index":65,"t":{"4":{"position":[[644,9]]},"136":{"position":[[155,8]]}}}],["continu",{"_index":27,"t":{"4":{"position":[[56,9]]},"8":{"position":[[408,8],[459,9],[516,9],[601,9]]},"76":{"position":[[0,8],[139,9],[283,8],[308,8],[352,8],[433,10],[454,8]]},"78":{"position":[[245,8],[280,10],[395,8],[419,8],[441,8],[465,8]]},"80":{"position":[[46,9],[81,8]]},"94":{"position":[[300,8],[368,8],[413,8]]},"100":{"position":[[399,10]]},"132":{"position":[[296,12]]},"148":{"position":[[227,8]]},"150":{"position":[[21,8]]},"154":{"position":[[177,8]]},"181":{"position":[[93,8],[271,10]]},"357":{"position":[[384,8],[406,12]]},"846":{"position":[[54,10]]},"852":{"position":[[194,10]]}}}],["contmodonloadfil",{"_index":316,"t":{"23":{"position":[[232,17]]}}}],["contmodonloadfile(const",{"_index":321,"t":{"23":{"position":[[378,23]]}}}],["control",{"_index":265,"t":{"16":{"position":[[219,8]]},"29":{"position":[[187,7]]}}}],["conveni",{"_index":2122,"t":{"611":{"position":[[2,11]]}}}],["convert",{"_index":1419,"t":{"278":{"position":[[550,9]]},"455":{"position":[[0,7]]},"457":{"position":[[0,7]]},"459":{"position":[[0,7]]},"565":{"position":[[0,7]]},"567":{"position":[[0,7]]},"782":{"position":[[0,8],[78,8]]},"784":{"position":[[0,8],[59,8]]}}}],["cooper",{"_index":2093,"t":{"591":{"position":[[91,11]]}}}],["coordin",{"_index":1784,"t":{"445":{"position":[[41,12],[93,11],[111,11]]},"447":{"position":[[41,12],[93,11],[111,11]]},"810":{"position":[[128,10]]}}}],["copi",{"_index":43,"t":{"4":{"position":[[284,4],[510,4]]},"8":{"position":[[247,4],[788,4],[909,4],[1137,4]]},"12":{"position":[[322,4],[512,4],[1102,4]]},"23":{"position":[[482,4]]},"29":{"position":[[426,4],[506,4]]},"35":{"position":[[196,4],[608,4]]},"44":{"position":[[91,4]]},"46":{"position":[[395,4]]},"52":{"position":[[185,4]]},"54":{"position":[[339,4]]},"58":{"position":[[65,4]]},"60":{"position":[[153,4],[351,4]]},"66":{"position":[[292,4],[457,4]]},"70":{"position":[[310,4],[565,4]]},"72":{"position":[[96,4],[199,4],[398,4]]},"74":{"position":[[273,4]]},"76":{"position":[[333,4]]},"78":{"position":[[318,4],[495,4]]},"96":{"position":[[1155,7]]},"106":{"position":[[187,7]]},"158":{"position":[[224,4],[417,4]]},"162":{"position":[[57,4],[209,4],[250,4]]},"164":{"position":[[73,4],[230,4],[275,4]]},"166":{"position":[[203,4],[256,4]]},"168":{"position":[[150,4]]},"173":{"position":[[129,4],[307,4]]},"175":{"position":[[107,4],[280,4]]},"177":{"position":[[155,4],[323,4]]},"179":{"position":[[137,4],[304,4]]},"181":{"position":[[127,4],[293,4]]},"183":{"position":[[131,4],[275,4]]},"185":{"position":[[116,4],[341,4]]},"187":{"position":[[89,4],[243,4]]},"189":{"position":[[149,4],[380,4]]},"191":{"position":[[105,4],[330,4]]},"193":{"position":[[126,4],[327,4]]},"195":{"position":[[155,4],[375,4],[600,4]]},"197":{"position":[[139,4],[294,4]]},"199":{"position":[[182,4],[319,4]]},"203":{"position":[[425,4],[627,4]]},"205":{"position":[[207,4]]},"207":{"position":[[156,4],[384,4],[498,4]]},"209":{"position":[[189,4]]},"211":{"position":[[233,4]]},"213":{"position":[[145,4]]},"217":{"position":[[128,4],[183,4],[239,4]]},"219":{"position":[[141,4],[296,4]]},"221":{"position":[[221,4],[351,4]]},"223":{"position":[[213,4],[295,4],[612,4]]},"227":{"position":[[203,4],[673,4]]},"231":{"position":[[323,4]]},"233":{"position":[[355,4]]},"237":{"position":[[187,4],[291,4],[553,4]]},"239":{"position":[[174,4],[311,4],[443,4]]},"241":{"position":[[220,4],[372,4]]},"245":{"position":[[167,4],[316,4]]},"247":{"position":[[202,4]]},"249":{"position":[[259,4]]},"251":{"position":[[265,4]]},"253":{"position":[[165,4]]},"255":{"position":[[174,4]]},"257":{"position":[[553,4]]},"259":{"position":[[401,4]]},"261":{"position":[[384,4]]},"263":{"position":[[361,4],[484,4]]},"268":{"position":[[296,4],[693,4]]},"270":{"position":[[178,4],[220,4],[403,4],[641,4]]},"274":{"position":[[139,4]]},"276":{"position":[[116,4],[229,4]]},"278":{"position":[[227,4],[387,4]]},"282":{"position":[[147,4],[366,4],[701,4],[893,4]]},"284":{"position":[[123,4],[262,4],[587,4]]},"286":{"position":[[262,4],[650,4]]},"290":{"position":[[396,4]]},"292":{"position":[[624,4]]},"296":{"position":[[160,4],[206,4]]},"298":{"position":[[152,4]]},"300":{"position":[[89,4],[219,4]]},"302":{"position":[[301,4],[642,4],[919,4]]},"308":{"position":[[327,4]]},"314":{"position":[[70,4],[277,4]]},"318":{"position":[[231,4]]},"320":{"position":[[211,4],[441,4]]},"324":{"position":[[124,4],[184,4]]},"331":{"position":[[554,4]]},"333":{"position":[[227,4]]},"335":{"position":[[370,4],[629,4],[864,4]]},"337":{"position":[[201,4],[399,4],[537,4],[628,4]]},"339":{"position":[[231,4],[536,4]]},"341":{"position":[[610,4],[762,4]]},"343":{"position":[[174,4]]},"345":{"position":[[236,4]]},"347":{"position":[[227,4]]},"351":{"position":[[63,4],[271,4]]},"353":{"position":[[66,4],[296,4]]},"357":{"position":[[253,4],[423,4]]},"359":{"position":[[179,4],[348,4],[451,4]]},"369":{"position":[[239,4]]},"371":{"position":[[179,4]]},"373":{"position":[[306,4]]},"375":{"position":[[194,4]]},"379":{"position":[[210,4]]},"383":{"position":[[136,4]]},"385":{"position":[[140,4]]},"393":{"position":[[176,4]]},"395":{"position":[[162,4]]},"397":{"position":[[162,4]]},"399":{"position":[[154,4]]},"401":{"position":[[158,4]]},"405":{"position":[[469,4]]},"407":{"position":[[516,4]]},"409":{"position":[[523,4]]},"411":{"position":[[635,4]]},"413":{"position":[[703,4]]},"415":{"position":[[528,4]]},"417":{"position":[[970,4]]},"419":{"position":[[612,4]]},"421":{"position":[[369,4]]},"423":{"position":[[400,4]]},"425":{"position":[[385,4]]},"427":{"position":[[318,4]]},"429":{"position":[[492,4]]},"431":{"position":[[499,4]]},"433":{"position":[[987,4]]},"435":{"position":[[749,4]]},"443":{"position":[[871,4]]},"457":{"position":[[459,4]]},"469":{"position":[[246,4]]},"471":{"position":[[553,4],[752,4],[1036,4],[1381,4]]},"475":{"position":[[434,4],[810,4]]},"477":{"position":[[282,4]]},"481":{"position":[[272,4]]},"495":{"position":[[349,4],[659,4]]},"497":{"position":[[321,4],[397,4]]},"505":{"position":[[359,4]]},"509":{"position":[[312,4]]},"511":{"position":[[311,4],[1047,4]]},"513":{"position":[[364,4],[482,4]]},"515":{"position":[[146,4]]},"517":{"position":[[193,4]]},"519":{"position":[[177,4]]},"523":{"position":[[2449,4]]},"525":{"position":[[620,4]]},"531":{"position":[[480,4],[704,4],[893,4]]},"533":{"position":[[1279,4]]},"537":{"position":[[214,4]]},"539":{"position":[[137,4]]},"549":{"position":[[0,4],[129,4],[199,7],[375,4]]},"551":{"position":[[269,4]]},"553":{"position":[[237,4]]},"555":{"position":[[226,4]]},"557":{"position":[[234,4]]},"559":{"position":[[253,4]]},"561":{"position":[[264,4]]},"563":{"position":[[215,4]]},"565":{"position":[[323,4]]},"567":{"position":[[201,4]]},"569":{"position":[[361,4]]},"571":{"position":[[169,4]]},"573":{"position":[[376,4]]},"575":{"position":[[347,4]]},"579":{"position":[[116,4]]},"589":{"position":[[503,4],[902,4]]},"599":{"position":[[608,4]]},"601":{"position":[[450,4]]},"603":{"position":[[426,4]]},"611":{"position":[[523,4]]},"617":{"position":[[534,4]]},"621":{"position":[[350,4]]},"623":{"position":[[1064,4],[1581,4]]},"627":{"position":[[266,4]]},"629":{"position":[[209,4]]},"631":{"position":[[220,4]]},"633":{"position":[[203,4]]},"639":{"position":[[365,4]]},"644":{"position":[[218,4]]},"646":{"position":[[225,4]]},"648":{"position":[[258,4]]},"650":{"position":[[211,4]]},"652":{"position":[[213,4]]},"654":{"position":[[261,4]]},"656":{"position":[[258,4]]},"658":{"position":[[318,4]]},"660":{"position":[[260,4]]},"662":{"position":[[208,4]]},"664":{"position":[[265,4]]},"666":{"position":[[265,4]]},"668":{"position":[[265,4]]},"670":{"position":[[267,4]]},"672":{"position":[[222,4]]},"674":{"position":[[221,4]]},"676":{"position":[[222,4]]},"679":{"position":[[436,4]]},"681":{"position":[[514,4]]},"683":{"position":[[382,4]]},"685":{"position":[[414,4]]},"687":{"position":[[301,4]]},"690":{"position":[[266,4]]},"696":{"position":[[732,4]]},"702":{"position":[[619,4]]},"708":{"position":[[809,4]]},"711":{"position":[[823,4]]},"713":{"position":[[417,4],[919,4]]},"715":{"position":[[708,4],[892,4]]},"719":{"position":[[1022,4]]},"723":{"position":[[1090,4]]},"726":{"position":[[566,4]]},"730":{"position":[[250,4]]},"732":{"position":[[220,4]]},"734":{"position":[[496,4]]},"738":{"position":[[139,4]]},"740":{"position":[[143,4]]},"742":{"position":[[366,4],[552,4],[740,4]]},"746":{"position":[[252,4]]},"748":{"position":[[260,4]]},"750":{"position":[[261,4]]},"752":{"position":[[160,4]]},"754":{"position":[[161,4]]},"756":{"position":[[162,4]]},"758":{"position":[[161,4]]},"760":{"position":[[167,4]]},"762":{"position":[[178,4]]},"766":{"position":[[839,4]]},"768":{"position":[[628,4]]},"770":{"position":[[175,4]]},"772":{"position":[[221,4]]},"774":{"position":[[1021,4],[1076,4],[1307,4]]},"776":{"position":[[561,4],[750,4]]},"778":{"position":[[181,4]]},"780":{"position":[[185,4]]},"782":{"position":[[398,4]]},"784":{"position":[[167,4]]},"788":{"position":[[267,4],[399,4]]},"792":{"position":[[325,4]]},"794":{"position":[[219,4]]},"796":{"position":[[245,4]]},"798":{"position":[[123,4]]},"800":{"position":[[129,4]]},"802":{"position":[[130,4]]},"804":{"position":[[158,4]]},"806":{"position":[[174,4]]},"808":{"position":[[179,4]]},"810":{"position":[[1013,4]]},"812":{"position":[[240,4]]},"814":{"position":[[469,4]]},"818":{"position":[[455,4]]},"820":{"position":[[709,4],[1030,4],[1378,4]]},"824":{"position":[[124,4]]},"826":{"position":[[0,7],[125,7]]},"828":{"position":[[188,4]]},"830":{"position":[[167,4]]},"832":{"position":[[218,4]]},"834":{"position":[[133,4]]},"836":{"position":[[325,4]]},"838":{"position":[[329,4]]},"840":{"position":[[325,4]]},"842":{"position":[[488,4]]},"844":{"position":[[0,7],[128,7]]},"846":{"position":[[263,4]]},"848":{"position":[[0,7],[128,7]]},"850":{"position":[[329,4]]},"852":{"position":[[724,4]]},"854":{"position":[[0,7],[127,7]]},"856":{"position":[[495,4]]},"858":{"position":[[0,7],[124,7]]},"860":{"position":[[415,4]]},"862":{"position":[[120,4]]},"864":{"position":[[119,4]]},"866":{"position":[[360,4]]},"868":{"position":[[221,4]]},"870":{"position":[[279,4]]},"872":{"position":[[352,4]]},"874":{"position":[[227,4]]},"876":{"position":[[329,4]]},"878":{"position":[[404,4]]},"880":{"position":[[235,4]]}}}],["coroutin",{"_index":1013,"t":{"110":{"position":[[189,10]]},"461":{"position":[[51,9]]},"463":{"position":[[74,10]]},"465":{"position":[[19,9]]},"523":{"position":[[1779,10],[1889,9]]},"525":{"position":[[312,10]]},"527":{"position":[[200,10]]},"591":{"position":[[75,9]]},"595":{"position":[[53,10],[68,9]]},"599":{"position":[[66,10],[123,10],[151,9]]},"603":{"position":[[121,11],[176,9]]},"607":{"position":[[257,10]]},"611":{"position":[[103,9],[231,9]]},"617":{"position":[[346,10]]},"623":{"position":[[703,10]]},"637":{"position":[[368,10]]}}}],["coroutine.clos",{"_index":1121,"t":{"132":{"position":[[396,15]]}}}],["coroutine.cr",{"_index":1888,"t":{"509":{"position":[[139,19]]}}}],["coroutine.resum",{"_index":1796,"t":{"463":{"position":[[18,16]]}}}],["coroutine.resume(c",{"_index":1894,"t":{"509":{"position":[[292,19]]}}}],["coroutine.sleep",{"_index":843,"t":{"96":{"position":[[1440,15]]}}}],["coroutine.sleep(1000",{"_index":2105,"t":{"599":{"position":[[441,21],[477,21],[513,21]]}}}],["coroutine.xresum",{"_index":1030,"t":{"112":{"position":[[1347,17]]},"603":{"position":[[211,19]]}}}],["coroutine.yield",{"_index":386,"t":{"29":{"position":[[543,15]]}}}],["coroutines/thread",{"_index":856,"t":{"96":{"position":[[1992,18]]},"509":{"position":[[11,18]]}}}],["correct",{"_index":384,"t":{"29":{"position":[[451,7]]},"443":{"position":[[155,10]]}}}],["correspond",{"_index":113,"t":{"8":{"position":[[374,11],[425,11],[482,11],[567,11]]},"723":{"position":[[101,13]]}}}],["corrupt",{"_index":772,"t":{"90":{"position":[[567,10]]},"94":{"position":[[682,7]]},"104":{"position":[[251,10]]}}}],["cosmet",{"_index":1407,"t":{"274":{"position":[[210,9]]}}}],["count",{"_index":2551,"t":{"828":{"position":[[45,8]]}}}],["counterpart",{"_index":1509,"t":{"306":{"position":[[130,13]]},"331":{"position":[[660,13]]},"517":{"position":[[296,13]]}}}],["cover",{"_index":1209,"t":{"175":{"position":[[501,6]]}}}],["coverag",{"_index":401,"t":{"29":{"position":[[904,9]]},"239":{"position":[[465,8]]},"316":{"position":[[520,9]]}}}],["cpp",{"_index":318,"t":{"23":{"position":[[358,3]]},"475":{"position":[[252,3]]}}}],["cr",{"_index":725,"t":{"86":{"position":[[174,2]]}}}],["crc32",{"_index":2219,"t":{"658":{"position":[[24,5]]}}}],["creat",{"_index":1023,"t":{"112":{"position":[[928,8]]},"120":{"position":[[785,8]]},"173":{"position":[[35,7]]},"175":{"position":[[35,7]]},"197":{"position":[[263,8]]},"219":{"position":[[265,8]]},"302":{"position":[[315,8]]},"439":{"position":[[0,7]]},"441":{"position":[[0,7]]},"443":{"position":[[0,7]]},"491":{"position":[[0,7]]},"549":{"position":[[29,8],[296,7],[345,6]]},"559":{"position":[[0,6],[128,8],[225,6]]},"563":{"position":[[0,7],[165,7]]},"587":{"position":[[21,7]]},"609":{"position":[[0,7]]},"792":{"position":[[120,6]]}}}],["creation",{"_index":1155,"t":{"148":{"position":[[26,9]]},"197":{"position":[[183,8]]},"219":{"position":[[185,8]]}}}],["criteria",{"_index":2444,"t":{"774":{"position":[[649,9]]}}}],["crypto",{"_index":615,"t":{"70":{"position":[[653,6]]},"617":{"position":[[166,6]]},"623":{"position":[[24,6]]},"644":{"position":[[127,6]]},"646":{"position":[[110,6]]},"648":{"position":[[167,6]]},"650":{"position":[[110,6]]},"652":{"position":[[111,6]]},"654":{"position":[[168,6]]},"656":{"position":[[167,6]]},"658":{"position":[[226,6]]},"660":{"position":[[172,6]]},"662":{"position":[[113,6]]},"664":{"position":[[170,6]]},"666":{"position":[[170,6]]},"668":{"position":[[170,6]]},"670":{"position":[[171,6]]},"672":{"position":[[115,6]]},"674":{"position":[[115,6]]},"676":{"position":[[120,6]]},"679":{"position":[[213,6]]},"681":{"position":[[215,6]]},"683":{"position":[[215,6]]},"685":{"position":[[215,6]]},"690":{"position":[[216,6]]},"696":{"position":[[380,6]]},"702":{"position":[[317,6]]},"708":{"position":[[391,6]]},"713":{"position":[[139,6]]},"715":{"position":[[137,6]]},"719":{"position":[[283,6]]},"723":{"position":[[308,6]]}}}],["crypto.adler32",{"_index":849,"t":{"96":{"position":[[1661,14]]}}}],["crypto.decompress",{"_index":684,"t":{"84":{"position":[[1204,17]]}}}],["crypto.decrypt",{"_index":716,"t":{"84":{"position":[[1730,15]]},"96":{"position":[[1526,14]]}}}],["crypto.decrypt|\"rsa",{"_index":2351,"t":{"719":{"position":[[933,19]]}}}],["crypto.encrypt",{"_index":715,"t":{"84":{"position":[[1714,15]]},"96":{"position":[[1509,14]]}}}],["crypto.encrypt(\"a",{"_index":2347,"t":{"719":{"position":[[797,17]]}}}],["crypto.encrypt|\"a",{"_index":2297,"t":{"696":{"position":[[589,19]]},"702":{"position":[[450,19]]},"708":{"position":[[637,19]]}}}],["crypto.exportkey",{"_index":682,"t":{"84":{"position":[[1162,16]]}}}],["crypto.fnv1",{"_index":864,"t":{"96":{"position":[[2172,11]]}}}],["crypto.fnv1a",{"_index":865,"t":{"96":{"position":[[2186,12]]}}}],["crypto.generatekeypair",{"_index":844,"t":{"96":{"position":[[1471,22]]}}}],["crypto.generatekeypair(\"rsa",{"_index":2321,"t":{"711":{"position":[[352,29]]}}}],["crypto.hexdigest",{"_index":968,"t":{"102":{"position":[[3340,16]]}}}],["crypto.importkey",{"_index":683,"t":{"84":{"position":[[1181,16]]}}}],["crypto.joaat(\"hello",{"_index":599,"t":{"70":{"position":[[252,21]]}}}],["crypto.ripemd160",{"_index":681,"t":{"84":{"position":[[1139,16]]}}}],["crypto.sha1",{"_index":846,"t":{"96":{"position":[[1601,12]]}}}],["crypto.sha384",{"_index":847,"t":{"96":{"position":[[1614,14]]}}}],["crypto.sha512",{"_index":848,"t":{"96":{"position":[[1631,13]]}}}],["crypto.sign",{"_index":717,"t":{"84":{"position":[[1746,11]]},"96":{"position":[[1557,11]]}}}],["crypto.sign|\"rsa",{"_index":2359,"t":{"723":{"position":[[870,16]]}}}],["crypto.verifi",{"_index":845,"t":{"96":{"position":[[1571,13]]}}}],["cryptograph",{"_index":1141,"t":{"142":{"position":[[126,13]]},"644":{"position":[[50,13]]},"646":{"position":[[33,13]]},"648":{"position":[[33,13]]},"650":{"position":[[33,13]]},"652":{"position":[[34,13]]},"654":{"position":[[34,13]]},"656":{"position":[[33,13]]},"658":{"position":[[34,13]]},"660":{"position":[[37,13]]},"662":{"position":[[36,13]]},"664":{"position":[[36,13]]},"666":{"position":[[36,13]]},"668":{"position":[[36,13]]},"670":{"position":[[37,13]]},"672":{"position":[[38,13]]},"674":{"position":[[38,13]]},"676":{"position":[[43,13]]},"679":{"position":[[30,13]]},"681":{"position":[[32,13]]},"683":{"position":[[32,13]]},"685":{"position":[[32,13]]},"687":{"position":[[35,13]]},"690":{"position":[[10,17]]}}}],["ctrl+(shift+)b",{"_index":248,"t":{"14":{"position":[[464,14]]}}}],["ctrl+shift+p",{"_index":251,"t":{"14":{"position":[[498,12]]},"16":{"position":[[187,15]]}}}],["cucumb",{"_index":1472,"t":{"292":{"position":[[265,11]]}}}],["current",{"_index":587,"t":{"66":{"position":[[167,7]]},"76":{"position":[[78,7]]},"78":{"position":[[187,7]]},"112":{"position":[[496,10],[555,10]]},"239":{"position":[[477,9]]},"302":{"position":[[34,7]]},"465":{"position":[[11,7]]},"501":{"position":[[38,7]]},"575":{"position":[[15,7],[76,7],[233,7]]},"810":{"position":[[62,7]]},"812":{"position":[[61,7]]},"814":{"position":[[62,7]]}}}],["custom",{"_index":420,"t":{"33":{"position":[[142,6]]},"601":{"position":[[61,9]]},"603":{"position":[[71,9]]}}}],["cve",{"_index":727,"t":{"86":{"position":[[184,4]]},"90":{"position":[[713,4]]}}}],["cwd",{"_index":2076,"t":{"575":{"position":[[272,3],[301,3],[343,3]]}}}],["d",{"_index":1459,"t":{"290":{"position":[[392,3]]},"355":{"position":[[320,2]]}}}],["danger",{"_index":342,"t":{"25":{"position":[[364,9]]}}}],["data",{"_index":771,"t":{"90":{"position":[[562,4],[612,4]]},"278":{"position":[[128,4],[297,4]]},"341":{"position":[[39,4]]},"363":{"position":[[46,4],[65,4]]},"365":{"position":[[45,4],[71,4]]},"369":{"position":[[45,4],[64,4]]},"371":{"position":[[45,4],[71,5]]},"373":{"position":[[110,4],[129,4]]},"375":{"position":[[59,4],[85,5]]},"469":{"position":[[37,4]]},"471":{"position":[[37,5],[55,4],[70,4],[122,4],[236,4]]},"513":{"position":[[170,4]]},"531":{"position":[[38,4],[220,4],[225,4],[299,4]]},"533":{"position":[[193,4],[209,4],[543,4],[613,5],[650,4],[756,5],[812,4]]},"615":{"position":[[6,4],[61,4]]},"617":{"position":[[8,4],[113,4]]},"619":{"position":[[17,4]]},"621":{"position":[[18,4],[146,4]]},"623":{"position":[[1028,4]]},"679":{"position":[[132,5]]},"681":{"position":[[134,5]]},"683":{"position":[[134,5]]},"685":{"position":[[134,5]]},"687":{"position":[[137,5]]},"694":{"position":[[12,4],[23,4]]},"696":{"position":[[12,4],[305,4]]},"700":{"position":[[12,4],[23,4]]},"702":{"position":[[99,4],[242,4]]},"704":{"position":[[50,4]]},"706":{"position":[[12,4],[23,4],[102,5],[167,5]]},"708":{"position":[[12,4],[95,5],[307,4]]},"717":{"position":[[12,4],[23,4],[206,5]]},"719":{"position":[[12,4],[172,4]]},"721":{"position":[[12,4],[23,4]]},"723":{"position":[[12,4],[23,4]]},"818":{"position":[[37,4]]},"820":{"position":[[37,5],[55,4],[70,4],[127,5]]},"852":{"position":[[523,4],[621,4]]},"856":{"position":[[284,4],[385,4]]},"878":{"position":[[127,4],[173,4]]}}}],["data.valu",{"_index":1416,"t":{"278":{"position":[[185,11],[342,14]]}}}],["data:filter(|k",{"_index":2582,"t":{"852":{"position":[[646,15]]}}}],["data:filter(|v",{"_index":2580,"t":{"852":{"position":[[548,15]]}}}],["data:image/png;base64,ivborw0kggoaaaansuheugaaaauaaaafcaiaaaacdbgyaaaaw0leqvqihqfqak//ap8aap8aap8aap8aap8aaad/aad/aad/aad/aad/aaaa/waa/waa/waa/waa/waaap8aap8aap8aap8aap8aaad/aad/aad/aad/aad/aad9fbjo3iscjwaaaabjru5erkjggg",{"_index":1793,"t":{"457":{"position":[[236,222]]}}}],["data:split",{"_index":2587,"t":{"856":{"position":[[302,12],[403,12]]}}}],["data[i",{"_index":2624,"t":{"878":{"position":[[193,7],[203,7],[241,7],[251,7]]}}}],["db890233a919b6745d632633c419e14540ff79f1a89bc4ac194b00e7f913f0f06d5d4d7d6cc2b4aaf9485d223afb8cf0",{"_index":2261,"t":{"683":{"position":[[282,99]]}}}],["deal",{"_index":2307,"t":{"706":{"position":[[83,4]]}}}],["deb",{"_index":491,"t":{"46":{"position":[[172,4]]}}}],["debian",{"_index":506,"t":{"46":{"position":[[592,6],[635,6]]},"54":{"position":[[141,6]]}}}],["debug",{"_index":627,"t":{"74":{"position":[[90,5],[156,5],[173,5],[209,5]]},"302":{"position":[[691,5]]},"304":{"position":[[107,5]]},"511":{"position":[[2,5]]}}}],["debug.getlocal(1",{"_index":1505,"t":{"302":{"position":[[744,17]]}}}],["debug.setlocal(1",{"_index":1506,"t":{"302":{"position":[[790,17]]}}}],["decid",{"_index":2579,"t":{"852":{"position":[[280,8]]}}}],["decim",{"_index":1672,"t":{"379":{"position":[[104,7]]},"381":{"position":[[91,8]]}}}],["deciph",{"_index":456,"t":{"35":{"position":[[630,11]]}}}],["declar",{"_index":622,"t":{"72":{"position":[[136,8]]},"84":{"position":[[115,8]]},"112":{"position":[[446,11]]},"132":{"position":[[83,12]]},"154":{"position":[[48,12]]},"158":{"position":[[18,12],[50,7]]},"173":{"position":[[173,11],[275,11]]},"175":{"position":[[152,11]]},"177":{"position":[[38,8]]},"197":{"position":[[67,8]]},"199":{"position":[[51,8],[246,8]]},"217":{"position":[[54,7]]},"219":{"position":[[91,8]]},"239":{"position":[[17,8],[238,8]]},"247":{"position":[[72,7]]},"278":{"position":[[412,7]]}}}],["decod",{"_index":854,"t":{"96":{"position":[[1888,6]]},"102":{"position":[[2234,7]]},"365":{"position":[[10,7],[79,7]]},"371":{"position":[[10,7]]},"467":{"position":[[78,8]]},"471":{"position":[[78,7]]},"533":{"position":[[217,7],[355,7],[461,7],[628,7],[707,7],[903,7],[1099,7]]},"732":{"position":[[32,8],[88,8]]},"820":{"position":[[78,7]]}}}],["decompress",{"_index":2364,"t":{"726":{"position":[[0,12],[163,11],[188,12],[306,13]]}}}],["decrypt",{"_index":2290,"t":{"696":{"position":[[37,8],[295,9],[653,7]]},"702":{"position":[[124,8],[232,9],[544,7]]},"708":{"position":[[37,8],[297,9],[723,7]]},"719":{"position":[[37,8],[241,7],[912,7]]}}}],["deepli",{"_index":1164,"t":{"148":{"position":[[392,6]]},"268":{"position":[[10,6]]}}}],["default",{"_index":68,"t":{"6":{"position":[[52,8]]},"27":{"position":[[178,8]]},"33":{"position":[[190,8]]},"35":{"position":[[128,8]]},"66":{"position":[[122,7]]},"78":{"position":[[135,7]]},"88":{"position":[[305,7]]},"96":{"position":[[865,7],[2035,7],[2101,7],[2448,7]]},"102":{"position":[[457,7]]},"114":{"position":[[0,8],[61,7]]},"118":{"position":[[141,7],[199,9]]},"122":{"position":[[0,7],[195,7],[278,7]]},"124":{"position":[[0,7]]},"130":{"position":[[251,7],[319,10]]},"136":{"position":[[164,8]]},"142":{"position":[[27,7],[631,7]]},"158":{"position":[[68,7]]},"175":{"position":[[343,8],[552,8]]},"189":{"position":[[443,8]]},"191":{"position":[[393,8]]},"193":{"position":[[390,8]]},"231":{"position":[[369,7]]},"237":{"position":[[647,7]]},"280":{"position":[[66,7]]},"282":{"position":[[298,8],[710,7],[845,8],[902,7]]},"286":{"position":[[213,7],[670,7],[740,7]]},"312":{"position":[[177,7]]},"355":{"position":[[52,8]]},"363":{"position":[[120,8]]},"369":{"position":[[119,8]]},"373":{"position":[[184,8]]},"443":{"position":[[217,8],[296,8],[348,8],[417,8]]},"471":{"position":[[181,10],[567,7]]},"509":{"position":[[49,8],[101,8]]},"523":{"position":[[340,8]]},"531":{"position":[[160,8]]},"533":{"position":[[324,8]]},"601":{"position":[[107,8]]},"603":{"position":[[136,8]]},"658":{"position":[[134,8]]},"660":{"position":[[137,8]]},"679":{"position":[[177,8]]},"681":{"position":[[179,8]]},"683":{"position":[[179,8]]},"685":{"position":[[179,8]]},"687":{"position":[[182,8]]},"746":{"position":[[121,8]]},"748":{"position":[[125,8]]},"750":{"position":[[126,8]]},"766":{"position":[[306,7]]},"768":{"position":[[408,8]]},"776":{"position":[[198,8]]},"810":{"position":[[150,8]]},"818":{"position":[[139,8]]},"820":{"position":[[154,10]]},"876":{"position":[[198,8]]}}}],["defer",{"_index":1345,"t":{"257":{"position":[[665,5]]}}}],["defin",{"_index":199,"t":{"12":{"position":[[557,8]]},"21":{"position":[[50,8]]},"23":{"position":[[302,6]]},"25":{"position":[[35,7]]},"27":{"position":[[114,8]]},"29":{"position":[[633,8]]},"33":{"position":[[26,8]]},"72":{"position":[[39,7],[55,7],[80,7],[213,7],[317,7]]},"74":{"position":[[148,7]]},"84":{"position":[[194,6],[771,7]]},"96":{"position":[[6,7],[641,7],[704,7]]},"116":{"position":[[112,7]]},"120":{"position":[[1646,8]]},"175":{"position":[[435,6]]},"189":{"position":[[535,6]]},"191":{"position":[[485,6]]},"193":{"position":[[482,6]]},"257":{"position":[[277,6]]},"259":{"position":[[119,7]]},"312":{"position":[[401,6]]},"355":{"position":[[61,6]]},"475":{"position":[[270,7],[313,7]]}}}],["definit",{"_index":1068,"t":{"120":{"position":[[1177,10]]},"175":{"position":[[258,10]]},"353":{"position":[[137,10]]}}}],["deflat",{"_index":1615,"t":{"341":{"position":[[489,9]]},"726":{"position":[[15,7]]}}}],["delimit",{"_index":797,"t":{"94":{"position":[[200,7]]},"106":{"position":[[409,10]]},"146":{"position":[[98,10]]},"286":{"position":[[320,9]]},"316":{"position":[[201,7]]},"351":{"position":[[136,7]]}}}],["demonstr",{"_index":2594,"t":{"856":{"position":[[722,13]]}}}],["depend",{"_index":255,"t":{"16":{"position":[[25,7]]},"312":{"position":[[229,9]]}}}],["deprec",{"_index":666,"t":{"84":{"position":[[704,10]]},"94":{"position":[[52,10]]},"96":{"position":[[503,10],[542,10],[587,10],[658,10]]},"102":{"position":[[3116,10],[3199,10],[3281,10],[3329,10]]},"120":{"position":[[457,10]]},"130":{"position":[[259,10],[361,10]]}}}],["deprecated/remov",{"_index":2574,"t":{"850":{"position":[[69,18]]}}}],["deriv",{"_index":2343,"t":{"719":{"position":[[527,6]]},"723":{"position":[[552,6]]}}}],["describ",{"_index":2156,"t":{"623":{"position":[[375,10]]},"870":{"position":[[38,9]]}}}],["design",{"_index":576,"t":{"64":{"position":[[203,6],[279,6]]},"339":{"position":[[378,8]]},"511":{"position":[[17,8]]}}}],["desir",{"_index":560,"t":{"62":{"position":[[212,7]]},"569":{"position":[[76,7]]},"573":{"position":[[85,7]]},"575":{"position":[[68,7]]},"768":{"position":[[65,7],[236,7]]},"872":{"position":[[139,7]]}}}],["despit",{"_index":919,"t":{"102":{"position":[[1899,7]]},"286":{"position":[[371,7]]},"300":{"position":[[251,7]]}}}],["destructur",{"_index":1014,"t":{"112":{"position":[[12,13],[86,13]]},"160":{"position":[[0,13]]},"168":{"position":[[6,13]]}}}],["detail",{"_index":927,"t":{"102":{"position":[[2198,7]]},"112":{"position":[[1407,8]]},"120":{"position":[[1916,8]]},"142":{"position":[[444,6]]},"511":{"position":[[249,11],[269,7],[984,11],[1021,7]]},"513":{"position":[[300,11],[320,7],[408,11],[434,7]]}}}],["detect",{"_index":365,"t":{"29":{"position":[[10,6]]},"84":{"position":[[298,7]]},"102":{"position":[[1381,9]]},"505":{"position":[[178,8],[227,8]]}}}],["determin",{"_index":643,"t":{"76":{"position":[[411,9]]},"810":{"position":[[211,10]]}}}],["dev",{"_index":1933,"t":{"517":{"position":[[181,5],[241,3]]}}}],["dev/nul",{"_index":489,"t":{"46":{"position":[[157,9],[346,9]]}}}],["develop",{"_index":129,"t":{"8":{"position":[[1153,10]]},"12":{"position":[[76,11]]},"46":{"position":[[495,10]]},"48":{"position":[[158,10]]},"50":{"position":[[103,11]]}}}],["deviat",{"_index":579,"t":{"64":{"position":[[258,9]]}}}],["di",{"_index":1336,"t":{"251":{"position":[[204,4]]}}}],["dialog",{"_index":540,"t":{"56":{"position":[[139,7]]}}}],["diamond",{"_index":1656,"t":{"359":{"position":[[403,9]]}}}],["differ",{"_index":1232,"t":{"191":{"position":[[246,9]]},"265":{"position":[[41,9]]}}}],["difficult",{"_index":1539,"t":{"316":{"position":[[445,9]]}}}],["digit",{"_index":2251,"t":{"679":{"position":[[166,7]]},"681":{"position":[[168,7]]},"683":{"position":[[168,7]]},"685":{"position":[[168,7]]},"687":{"position":[[171,7]]},"774":{"position":[[276,7],[556,5]]}}}],["dir/main",{"_index":2037,"t":{"553":{"position":[[127,13]]}}}],["direct",{"_index":1021,"t":{"112":{"position":[[889,6]]},"810":{"position":[[39,9]]},"814":{"position":[[10,9]]}}}],["directli",{"_index":247,"t":{"14":{"position":[[435,8]]},"39":{"position":[[97,8]]}}}],["directori",{"_index":537,"t":{"54":{"position":[[543,10]]},"56":{"position":[[227,10]]},"58":{"position":[[147,10]]},"60":{"position":[[72,10],[198,10],[367,9]]},"130":{"position":[[238,9]]},"553":{"position":[[97,10],[220,12]]},"557":{"position":[[116,10]]},"559":{"position":[[9,10],[53,10],[101,9],[190,12],[236,12]]},"561":{"position":[[28,10],[72,10],[134,12]]},"563":{"position":[[10,9],[52,11],[124,10]]},"575":{"position":[[31,10],[92,10],[249,10]]}}}],["disabl",{"_index":91,"t":{"6":{"position":[[363,8]]},"8":{"position":[[154,7]]},"10":{"position":[[242,9]]},"12":{"position":[[533,7]]},"21":{"position":[[8,7]]},"84":{"position":[[354,8]]},"102":{"position":[[967,8],[3676,8],[3860,8]]},"191":{"position":[[284,7]]},"203":{"position":[[24,10],[344,7],[597,7]]},"205":{"position":[[3,7],[113,7],[170,7]]},"355":{"position":[[40,8]]}}}],["disable/en",{"_index":1091,"t":{"124":{"position":[[338,14]]}}}],["disallow",{"_index":791,"t":{"92":{"position":[[310,11]]},"140":{"position":[[115,10]]},"302":{"position":[[165,11]]}}}],["discard",{"_index":820,"t":{"96":{"position":[[251,10]]},"199":{"position":[[76,10],[210,10],[269,10]]},"239":{"position":[[93,10],[202,10],[261,10]]}}}],["discuss",{"_index":1361,"t":{"265":{"position":[[19,9]]}}}],["dispatch",{"_index":1971,"t":{"523":{"position":[[1965,11]]}}}],["disregard",{"_index":1011,"t":{"110":{"position":[[93,12]]}}}],["dissect",{"_index":2384,"t":{"734":{"position":[[67,10]]}}}],["divis",{"_index":1568,"t":{"331":{"position":[[111,9],[132,9]]},"393":{"position":[[9,8]]},"395":{"position":[[9,8]]}}}],["divison",{"_index":1685,"t":{"397":{"position":[[9,7]]}}}],["djb2",{"_index":2196,"t":{"644":{"position":[[41,4]]},"648":{"position":[[24,4]]}}}],["dll/so",{"_index":335,"t":{"25":{"position":[[88,6]]},"475":{"position":[[8,6]]}}}],["dll/so/c",{"_index":980,"t":{"102":{"position":[[3873,8]]}}}],["do",{"_index":2285,"t":{"694":{"position":[[157,6]]},"696":{"position":[[158,6]]},"700":{"position":[[125,6]]},"702":{"position":[[92,6]]},"717":{"position":[[117,6]]},"719":{"position":[[118,6]]},"742":{"position":[[277,7],[355,8],[541,8],[657,7],[730,7]]}}}],["do...end",{"_index":1297,"t":{"237":{"position":[[457,9]]}}}],["document",{"_index":297,"t":{"18":{"position":[[130,10]]},"37":{"position":[[5,8]]},"52":{"position":[[233,10]]},"102":{"position":[[3977,14]]},"112":{"position":[[1416,13]]},"120":{"position":[[1925,13]]},"148":{"position":[[608,13]]},"461":{"position":[[10,9]]},"499":{"position":[[10,9]]},"535":{"position":[[10,9]]},"543":{"position":[[10,9]]},"577":{"position":[[10,9]]},"736":{"position":[[10,9]]},"822":{"position":[[10,9]]}}}],["doe",{"_index":1900,"t":{"511":{"position":[[242,6],[343,6]]},"513":{"position":[[293,6],[473,6]]}}}],["doesn't",{"_index":645,"t":{"76":{"position":[[463,7]]},"179":{"position":[[46,7]]},"308":{"position":[[3,7]]}}}],["dofil",{"_index":312,"t":{"23":{"position":[[94,6]]},"126":{"position":[[95,7]]}}}],["domain",{"_index":2119,"t":{"607":{"position":[[103,6]]}}}],["don't",{"_index":408,"t":{"29":{"position":[[1127,5]]},"257":{"position":[[271,5]]},"308":{"position":[[347,5]]},"417":{"position":[[186,5]]},"419":{"position":[[190,5]]}}}],["done",{"_index":2578,"t":{"852":{"position":[[117,4]]}}}],["dont_make_reus",{"_index":1963,"t":{"523":{"position":[[1231,19]]}}}],["dont_reus",{"_index":1955,"t":{"523":{"position":[[888,11]]}}}],["dot",{"_index":2505,"t":{"804":{"position":[[13,3]]}}}],["down",{"_index":294,"t":{"18":{"position":[[77,4]]},"810":{"position":[[490,4]]}}}],["download",{"_index":275,"t":{"16":{"position":[[407,11]]}}}],["dozen",{"_index":558,"t":{"62":{"position":[[199,5]]}}}],["drop",{"_index":11,"t":{"2":{"position":[[109,4]]}}}],["due",{"_index":382,"t":{"29":{"position":[[390,3]]},"100":{"position":[[392,3]]},"124":{"position":[[400,3]]},"134":{"position":[[134,3]]},"189":{"position":[[83,3]]},"191":{"position":[[50,3]]},"265":{"position":[[51,3]]},"523":{"position":[[2055,3]]}}}],["dump",{"_index":414,"t":{"33":{"position":[[3,4],[171,4],[266,5]]},"86":{"position":[[309,7]]},"142":{"position":[[398,7]]},"152":{"position":[[9,4]]},"511":{"position":[[29,4],[95,5]]},"513":{"position":[[138,5]]}}}],["dumpvar",{"_index":878,"t":{"100":{"position":[[211,7]]},"102":{"position":[[2290,7]]},"341":{"position":[[176,7]]},"513":{"position":[[11,8]]}}}],["duplic",{"_index":1111,"t":{"132":{"position":[[66,10]]},"154":{"position":[[32,9]]},"173":{"position":[[157,9]]},"175":{"position":[[135,9]]},"177":{"position":[[183,9]]}}}],["dure",{"_index":1191,"t":{"158":{"position":[[0,6]]},"201":{"position":[[46,6]]},"314":{"position":[[345,6]]},"322":{"position":[[53,6]]}}}],["dynam",{"_index":1562,"t":{"326":{"position":[[191,7]]},"475":{"position":[[15,8]]}}}],["e",{"_index":1353,"t":{"263":{"position":[[166,1],[430,1]]},"292":{"position":[[416,1]]},"497":{"position":[[236,1]]},"711":{"position":[[238,3],[586,5]]},"719":{"position":[[739,1]]},"723":{"position":[[764,1]]}}}],["e.g",{"_index":232,"t":{"14":{"position":[[201,4]]},"84":{"position":[[26,5],[734,5]]},"96":{"position":[[362,5]]},"102":{"position":[[95,4],[2046,4]]},"112":{"position":[[763,4],[937,4]]},"203":{"position":[[497,4]]},"253":{"position":[[52,4]]},"316":{"position":[[124,4],[223,4],[333,4]]},"339":{"position":[[424,4]]},"517":{"position":[[229,5]]},"523":{"position":[[386,4]]}}}],["e:find(\"what",{"_index":1477,"t":{"292":{"position":[[426,12]]}}}],["each",{"_index":732,"t":{"86":{"position":[[245,4]]},"162":{"position":[[90,4]]},"164":{"position":[[106,4]]},"201":{"position":[[13,4]]},"509":{"position":[[70,4]]},"589":{"position":[[110,4]]},"611":{"position":[[245,4]]},"623":{"position":[[410,4]]},"692":{"position":[[103,4]]},"774":{"position":[[551,4]]},"794":{"position":[[50,4]]},"806":{"position":[[36,4]]},"838":{"position":[[131,4]]},"840":{"position":[[135,4]]},"866":{"position":[[144,4]]},"872":{"position":[[155,4]]}}}],["earlier",{"_index":1215,"t":{"177":{"position":[[315,7]]}}}],["eas",{"_index":1812,"t":{"471":{"position":[[646,4]]},"497":{"position":[[123,4]]},"820":{"position":[[718,4]]}}}],["easi",{"_index":1323,"t":{"249":{"position":[[14,4]]}}}],["easier",{"_index":1874,"t":{"497":{"position":[[33,6]]},"569":{"position":[[392,6]]},"774":{"position":[[31,6]]}}}],["easiest",{"_index":462,"t":{"39":{"position":[[4,7]]}}}],["easili",{"_index":475,"t":{"44":{"position":[[8,6]]},"46":{"position":[[8,6]]},"54":{"position":[[352,6]]},"591":{"position":[[61,6]]}}}],["ecb",{"_index":2302,"t":{"700":{"position":[[57,3],[96,4]]},"702":{"position":[[24,3],[63,4],[470,3],[583,3]]}}}],["echo",{"_index":490,"t":{"46":{"position":[[167,4]]}}}],["ecl",{"_index":1766,"t":{"443":{"position":[[129,5]]}}}],["ecosystem",{"_index":206,"t":{"12":{"position":[[700,9]]}}}],["edg",{"_index":1093,"t":{"124":{"position":[[415,4]]}}}],["edit",{"_index":1493,"t":{"302":{"position":[[181,5]]},"310":{"position":[[124,4]]}}}],["editor",{"_index":237,"t":{"14":{"position":[[270,6],[359,6],[452,6]]},"16":{"position":[[41,7],[501,6],[536,6]]}}}],["ee8410a8bf9511b94fd6669b5c3e0c4b86e8e4bf7baa8dbd2773d4d6381dd1aecebbe391bef4c6158620ab3f6b794907652d4432c2301d7e1a6caf520565cdf2",{"_index":2264,"t":{"685":{"position":[[282,131]]}}}],["effect",{"_index":1534,"t":{"314":{"position":[[293,6]]},"333":{"position":[[145,11]]},"766":{"position":[[323,11]]}}}],["effortlessli",{"_index":2488,"t":{"794":{"position":[[22,12]]}}}],["element",{"_index":1273,"t":{"227":{"position":[[289,8],[443,7],[494,7],[630,7]]},"435":{"position":[[13,7],[202,7],[216,7],[265,7],[316,7],[372,7],[485,7],[531,7]]},"820":{"position":[[1062,8],[1080,7]]},"828":{"position":[[22,8]]},"830":{"position":[[11,8]]},"836":{"position":[[33,8],[78,7]]},"838":{"position":[[22,8],[136,8],[158,7]]},"840":{"position":[[22,8],[140,8]]},"842":{"position":[[19,8]]},"850":{"position":[[155,8]]},"866":{"position":[[36,9],[149,8]]},"874":{"position":[[17,7]]},"876":{"position":[[36,8]]},"878":{"position":[[11,7]]},"880":{"position":[[11,7]]}}}],["elimin",{"_index":333,"t":{"25":{"position":[[54,9]]},"852":{"position":[[102,11],[377,11]]}}}],["elipsi",{"_index":2432,"t":{"768":{"position":[[54,7],[187,8]]}}}],["emit",{"_index":1098,"t":{"128":{"position":[[234,8]]},"314":{"position":[[234,4]]},"351":{"position":[[68,7]]},"353":{"position":[[71,7]]}}}],["emoji",{"_index":2413,"t":{"752":{"position":[[221,7]]}}}],["empti",{"_index":719,"t":{"86":{"position":[[35,5],[52,5]]},"146":{"position":[[70,5]]},"523":{"position":[[1575,5]]},"571":{"position":[[156,8]]}}}],["en_us.utf",{"_index":2426,"t":{"764":{"position":[[60,9]]}}}],["enabl",{"_index":126,"t":{"8":{"position":[[965,6]]},"27":{"position":[[103,7]]},"33":{"position":[[15,7]]},"80":{"position":[[95,6]]},"84":{"position":[[343,7]]},"96":{"position":[[2290,6]]},"102":{"position":[[369,7],[1002,7]]},"116":{"position":[[366,7]]},"130":{"position":[[495,7]]},"154":{"position":[[542,7]]},"175":{"position":[[355,6]]},"189":{"position":[[455,6]]},"191":{"position":[[405,6]]},"193":{"position":[[402,6]]},"197":{"position":[[42,7]]},"203":{"position":[[35,9],[108,8],[403,6],[505,6],[585,6]]},"215":{"position":[[83,6]]},"217":{"position":[[83,6]]},"219":{"position":[[27,8]]},"225":{"position":[[89,6]]},"265":{"position":[[187,6]]},"288":{"position":[[89,6]]},"294":{"position":[[96,6]]},"312":{"position":[[166,7]]},"355":{"position":[[140,6],[202,6]]}}}],["enc",{"_index":2296,"t":{"696":{"position":[[574,3]]},"702":{"position":[[435,3]]},"708":{"position":[[617,4]]},"719":{"position":[[791,3]]}}}],["encapsul",{"_index":1432,"t":{"284":{"position":[[311,12]]}}}],["enclos",{"_index":585,"t":{"66":{"position":[[85,9]]},"78":{"position":[[85,9]]},"102":{"position":[[1799,9]]}}}],["encod",{"_index":756,"t":{"88":{"position":[[560,8]]},"102":{"position":[[2224,7]]},"126":{"position":[[125,7]]},"128":{"position":[[206,7]]},"341":{"position":[[465,10]]},"363":{"position":[[11,7],[73,7]]},"369":{"position":[[17,7],[72,7]]},"373":{"position":[[20,7],[137,7]]},"443":{"position":[[81,8]]},"467":{"position":[[65,8]]},"469":{"position":[[57,6]]},"531":{"position":[[84,6],[794,6]]},"533":{"position":[[619,8],[673,7],[869,7],[1049,7],[1270,8]]},"715":{"position":[[39,7]]},"730":{"position":[[14,7],[59,8]]},"818":{"position":[[65,6]]}}}],["encompass",{"_index":124,"t":{"8":{"position":[[826,12]]}}}],["encrypt",{"_index":2180,"t":{"631":{"position":[[25,10]]},"692":{"position":[[108,10]]},"694":{"position":[[34,10]]},"696":{"position":[[454,7]]},"700":{"position":[[34,10]]},"702":{"position":[[391,7]]},"704":{"position":[[91,10]]},"706":{"position":[[34,10],[185,10]]},"708":{"position":[[264,9],[497,7]]},"717":{"position":[[34,10],[198,7]]},"719":{"position":[[181,9],[777,7]]}}}],["end",{"_index":46,"t":{"4":{"position":[[324,3],[438,3]]},"12":{"position":[[294,3],[1074,3]]},"29":{"position":[[422,3],[502,3]]},"35":{"position":[[171,3]]},"66":{"position":[[288,3],[449,3],[453,3]]},"74":{"position":[[268,4]]},"76":{"position":[[292,3],[329,3]]},"78":{"position":[[123,3],[176,3],[314,3],[487,3],[491,3]]},"84":{"position":[[730,3],[765,5]]},"96":{"position":[[387,4]]},"158":{"position":[[163,3],[340,3],[356,3]]},"173":{"position":[[125,3]]},"181":{"position":[[119,3],[123,3]]},"183":{"position":[[110,3]]},"195":{"position":[[151,3],[596,3]]},"199":{"position":[[168,3]]},"203":{"position":[[421,3]]},"205":{"position":[[203,3]]},"207":{"position":[[86,3],[292,3]]},"209":{"position":[[132,3]]},"211":{"position":[[163,3],[229,3]]},"213":{"position":[[75,3]]},"221":{"position":[[179,3],[347,3]]},"223":{"position":[[169,3],[291,3],[355,3],[522,3],[529,3],[579,3]]},"231":{"position":[[219,3]]},"233":{"position":[[258,3]]},"237":{"position":[[164,4],[549,3]]},"239":{"position":[[160,3],[439,3]]},"241":{"position":[[187,3],[191,3],[339,3],[343,3]]},"245":{"position":[[117,3],[140,3],[163,3],[272,4],[291,4],[310,3]]},"247":{"position":[[171,3]]},"249":{"position":[[196,3]]},"251":{"position":[[163,3],[226,3],[230,3]]},"253":{"position":[[157,3],[161,3]]},"255":{"position":[[90,3],[121,3]]},"257":{"position":[[227,3],[231,3],[486,3],[490,3]]},"259":{"position":[[239,3],[277,3],[281,3]]},"261":{"position":[[222,3],[260,3],[264,3]]},"263":{"position":[[125,3],[156,3],[420,3]]},"268":{"position":[[670,3]]},"270":{"position":[[174,3],[555,3]]},"282":{"position":[[122,3],[341,3],[631,3],[889,3]]},"284":{"position":[[119,3],[258,3],[388,3],[583,3]]},"286":{"position":[[237,3],[572,4],[577,3]]},"290":{"position":[[280,4]]},"292":{"position":[[324,3],[328,3],[478,3],[482,3],[486,3]]},"296":{"position":[[156,3]]},"298":{"position":[[131,3]]},"302":{"position":[[911,3],[915,3]]},"314":{"position":[[195,3]]},"320":{"position":[[207,3],[437,3]]},"333":{"position":[[111,3],[223,3]]},"335":{"position":[[262,3],[502,3],[521,3],[756,3]]},"337":{"position":[[197,3],[391,3],[395,3],[533,3],[613,3],[624,3]]},"345":{"position":[[172,3]]},"351":{"position":[[59,3],[195,3]]},"357":{"position":[[393,3],[419,3]]},"359":{"position":[[175,3],[263,3],[314,3],[318,3],[427,3]]},"497":{"position":[[317,3]]},"505":{"position":[[336,3],[355,3]]},"509":{"position":[[165,4]]},"523":{"position":[[2433,3]]},"525":{"position":[[523,4],[603,4]]},"549":{"position":[[371,3]]},"553":{"position":[[233,3]]},"555":{"position":[[222,3]]},"557":{"position":[[230,3]]},"559":{"position":[[249,3]]},"561":{"position":[[260,3]]},"571":{"position":[[165,3]]},"599":{"position":[[351,4],[550,4]]},"601":{"position":[[399,4]]},"603":{"position":[[359,3],[421,4]]},"611":{"position":[[506,4]]},"623":{"position":[[1060,3],[1521,3],[1525,4]]},"627":{"position":[[32,3]]},"639":{"position":[[336,3]]},"713":{"position":[[894,3]]},"715":{"position":[[671,3]]},"746":{"position":[[37,4]]},"778":{"position":[[19,4]]},"860":{"position":[[116,4]]},"876":{"position":[[163,6]]},"878":{"position":[[276,3]]}}}],["endif",{"_index":1827,"t":{"475":{"position":[[328,6]]}}}],["enforc",{"_index":625,"t":{"72":{"position":[[226,8]]}}}],["english",{"_index":1969,"t":{"523":{"position":[[1688,7]]}}}],["enhanc",{"_index":228,"t":{"14":{"position":[[116,7]]},"62":{"position":[[150,8]]},"349":{"position":[[35,9]]}}}],["enough",{"_index":1224,"t":{"185":{"position":[[72,6]]}}}],["ensur",{"_index":971,"t":{"102":{"position":[[3431,6]]},"304":{"position":[[173,6]]},"692":{"position":[[130,6]]},"764":{"position":[[80,7]]}}}],["enter",{"_index":266,"t":{"16":{"position":[[276,6]]}}}],["entir",{"_index":1286,"t":{"235":{"position":[[28,8]]},"308":{"position":[[446,8]]},"314":{"position":[[336,8]]},"752":{"position":[[22,8]]},"754":{"position":[[22,8]]},"756":{"position":[[22,8]]},"758":{"position":[[22,8]]},"760":{"position":[[22,8]]},"762":{"position":[[25,8]]}}}],["entiti",{"_index":1338,"t":{"255":{"position":[[75,6],[114,6]]},"257":{"position":[[176,6],[255,6]]},"263":{"position":[[118,6],[149,6],[174,8],[224,7],[294,7],[413,6],[438,8],[467,8]]}}}],["entri",{"_index":2540,"t":{"818":{"position":[[250,8],[336,7],[373,6],[414,8]]},"820":{"position":[[279,9],[289,6],[333,8],[342,10],[408,10],[476,8],[796,10],[829,8],[1178,8],[1187,8],[1297,8],[1349,8]]}}}],["entry>primaryjg",{"_index":2304,"t":{"702":{"position":[[522,18]]}}}],["q",{"_index":2318,"t":{"711":{"position":[[283,3],[730,5]]},"713":{"position":[[281,1]]},"715":{"position":[[803,5]]},"719":{"position":[[425,1]]},"723":{"position":[[450,1]]}}}],["qo",{"_index":481,"t":{"46":{"position":[[55,2]]}}}],["qol",{"_index":170,"t":{"12":{"position":[[56,3]]}}}],["qr",{"_index":1765,"t":{"443":{"position":[[43,2],[287,2]]}}}],["quartil",{"_index":1770,"t":{"443":{"position":[[197,11]]}}}],["queri",{"_index":1982,"t":{"525":{"position":[[0,7]]},"734":{"position":[[416,9]]}}}],["quick",{"_index":123,"t":{"8":{"position":[[820,5]]}}}],["quicker",{"_index":1636,"t":{"349":{"position":[[149,8]]}}}],["quickli",{"_index":1585,"t":{"339":{"position":[[87,7]]}}}],["quit",{"_index":1223,"t":{"185":{"position":[[59,5]]}}}],["quot",{"_index":1008,"t":{"110":{"position":[[51,6]]}}}],["quotient",{"_index":1680,"t":{"393":{"position":[[59,8]]},"395":{"position":[[64,9]]}}}],["r",{"_index":1281,"t":{"231":{"position":[[132,4],[304,3]]},"233":{"position":[[171,4],[336,3]]},"477":{"position":[[200,2]]},"481":{"position":[[185,2]]}}}],["rai",{"_index":1242,"t":{"203":{"position":[[172,6]]}}}],["raii",{"_index":873,"t":{"96":{"position":[[2513,4]]}}}],["rais",{"_index":748,"t":{"88":{"position":[[339,7]]},"100":{"position":[[458,6]]},"106":{"position":[[95,7]]},"173":{"position":[[8,6]]},"175":{"position":[[8,6]]},"177":{"position":[[8,6]]},"179":{"position":[[8,6]]},"181":{"position":[[8,6]]},"183":{"position":[[8,6]]},"185":{"position":[[8,6]]},"187":{"position":[[8,6]]},"189":{"position":[[8,6]]},"191":{"position":[[8,6]]},"193":{"position":[[8,6]]},"195":{"position":[[8,6]]},"197":{"position":[[8,6]]},"199":{"position":[[8,6]]},"219":{"position":[[68,6]]},"239":{"position":[[61,6]]},"429":{"position":[[31,5],[236,6],[461,7]]},"431":{"position":[[27,5],[241,5]]},"433":{"position":[[22,6],[352,5],[382,5]]},"519":{"position":[[58,6]]},"545":{"position":[[34,6]]},"547":{"position":[[34,6]]}}}],["ran",{"_index":1217,"t":{"181":{"position":[[50,4]]}}}],["random",{"_index":191,"t":{"12":{"position":[[367,8]]},"227":{"position":[[593,8],[611,8]]},"690":{"position":[[130,6]]}}}],["rang",{"_index":831,"t":{"96":{"position":[[1080,5]]},"515":{"position":[[40,6]]},"690":{"position":[[157,5]]},"876":{"position":[[67,6]]}}}],["range(16):map",{"_index":2293,"t":{"696":{"position":[[473,16]]},"708":{"position":[[516,16]]}}}],["rare",{"_index":1006,"t":{"108":{"position":[[181,4]]}}}],["raw",{"_index":2248,"t":{"679":{"position":[[121,3]]},"681":{"position":[[123,3]]},"683":{"position":[[123,3]]},"685":{"position":[[123,3]]},"687":{"position":[[126,3]]}}}],["rawget",{"_index":208,"t":{"12":{"position":[[751,6],[928,6]]}}}],["rawget(opt",{"_index":222,"t":{"12":{"position":[[1046,12]]}}}],["rawset(frozen",{"_index":1502,"t":{"302":{"position":[[561,14]]}}}],["re",{"_index":825,"t":{"96":{"position":[[723,2]]},"102":{"position":[[999,2]]},"124":{"position":[[91,2]]},"347":{"position":[[165,5],[197,7]]}}}],["read",{"_index":801,"t":{"94":{"position":[[323,4],[517,4]]},"774":{"position":[[41,4]]}}}],["readabl",{"_index":1402,"t":{"274":{"position":[[67,9]]},"511":{"position":[[52,8]]},"531":{"position":[[135,8]]},"818":{"position":[[115,8]]}}}],["reason",{"_index":133,"t":{"8":{"position":[[1262,8]]},"523":{"position":[[1675,6]]}}}],["reassign",{"_index":1499,"t":{"302":{"position":[[469,8]]}}}],["rebas",{"_index":1184,"t":{"154":{"position":[[813,7]]}}}],["receiv",{"_index":1696,"t":{"405":{"position":[[306,8]]},"407":{"position":[[321,8]]},"409":{"position":[[329,8]]},"411":{"position":[[419,8]]},"413":{"position":[[510,8]]},"415":{"position":[[335,8]]},"417":{"position":[[642,8],[894,8]]},"617":{"position":[[0,7],[118,8]]},"619":{"position":[[8,8],[189,7]]},"621":{"position":[[43,7]]}}}],["recogn",{"_index":987,"t":{"104":{"position":[[191,11]]}}}],["recommend",{"_index":131,"t":{"8":{"position":[[1226,9]]}}}],["record",{"_index":2137,"t":{"617":{"position":[[184,7]]}}}],["recurs",{"_index":879,"t":{"100":{"position":[[244,9]]},"116":{"position":[[143,9]]},"561":{"position":[[122,7]]}}}],["red",{"_index":1378,"t":{"268":{"position":[[561,3],[664,5]]}}}],["reduc",{"_index":416,"t":{"33":{"position":[[86,6]]},"261":{"position":[[132,6]]}}}],["reduce(math.max",{"_index":2603,"t":{"864":{"position":[[145,17]]}}}],["reduce(math.min",{"_index":2600,"t":{"862":{"position":[[146,17]]}}}],["refer",{"_index":1666,"t":{"373":{"position":[[62,7]]},"417":{"position":[[102,9],[192,9]]},"419":{"position":[[106,9],[196,9]]},"429":{"position":[[93,10]]},"431":{"position":[[89,10]]},"433":{"position":[[199,10]]}}}],["reflect",{"_index":1063,"t":{"120":{"position":[[659,10]]},"211":{"position":[[75,7]]}}}],["refresh",{"_index":1521,"t":{"310":{"position":[[93,9]]}}}],["reg",{"_index":1644,"t":{"355":{"position":[[259,3]]}}}],["reg_dword",{"_index":1648,"t":{"355":{"position":[[310,9]]}}}],["regard",{"_index":671,"t":{"84":{"position":[[891,7]]},"92":{"position":[[299,7]]}}}],["regardless",{"_index":150,"t":{"10":{"position":[[38,10]]},"312":{"position":[[290,11]]}}}],["regex",{"_index":676,"t":{"84":{"position":[[1057,5]]},"585":{"position":[[4,5]]},"587":{"position":[[65,5]]},"589":{"position":[[164,5],[214,5],[679,5],[729,5]]}}}],["regist",{"_index":1097,"t":{"128":{"position":[[102,9]]},"326":{"position":[[153,10]]}}}],["regress",{"_index":782,"t":{"92":{"position":[[27,11]]},"116":{"position":[[438,10]]},"138":{"position":[[8,10]]}}}],["reindent",{"_index":242,"t":{"14":{"position":[[383,9]]}}}],["rel",{"_index":1822,"t":{"475":{"position":[[139,8]]},"565":{"position":[[10,8]]},"567":{"position":[[32,8]]}}}],["relat",{"_index":794,"t":{"92":{"position":[[340,7]]}}}],["relationship",{"_index":328,"t":{"23":{"position":[[565,12]]}}}],["releas",{"_index":473,"t":{"41":{"position":[[93,8]]},"46":{"position":[[642,9]]},"74":{"position":[[253,7]]},"82":{"position":[[43,8]]},"92":{"position":[[5,7]]},"517":{"position":[[212,7]]}}}],["relev",{"_index":77,"t":{"6":{"position":[[160,8]]}}}],["reli",{"_index":409,"t":{"29":{"position":[[1133,4]]},"120":{"position":[[412,4]]}}}],["reliabl",{"_index":402,"t":{"29":{"position":[[924,8]]}}}],["remain",{"_index":996,"t":{"106":{"position":[[152,6]]}}}],["remaind",{"_index":1681,"t":{"393":{"position":[[72,10]]},"397":{"position":[[63,10]]}}}],["remap",{"_index":2584,"t":{"856":{"position":[[0,6]]}}}],["remark",{"_index":556,"t":{"62":{"position":[[88,10]]}}}],["rememb",{"_index":1424,"t":{"282":{"position":[[422,8],[985,8]]}}}],["remot",{"_index":1959,"t":{"523":{"position":[[1122,6],[1318,6],[1434,6],[2005,6],[2172,6]]},"525":{"position":[[54,7],[160,7]]},"623":{"position":[[183,7],[296,6]]}}}],["remov",{"_index":870,"t":{"96":{"position":[[2414,7]]},"98":{"position":[[179,7]]},"102":{"position":[[3616,7]]},"120":{"position":[[449,7],[510,7]]},"124":{"position":[[178,7],[371,7]]},"130":{"position":[[344,7]]},"326":{"position":[[6,7]]},"511":{"position":[[884,10]]},"830":{"position":[[0,6]]},"852":{"position":[[311,7]]}}}],["renam",{"_index":956,"t":{"102":{"position":[[3002,7],[3031,7]]}}}],["reorder",{"_index":2569,"t":{"846":{"position":[[0,8]]}}}],["repeat",{"_index":800,"t":{"94":{"position":[[291,6]]},"154":{"position":[[556,6]]}}}],["repl",{"_index":986,"t":{"104":{"position":[[182,4]]}}}],["replac",{"_index":12,"t":{"2":{"position":[[117,11]]},"96":{"position":[[691,9]]},"122":{"position":[[87,7]]},"128":{"position":[[75,8]]},"304":{"position":[[270,7]]},"766":{"position":[[0,7],[185,8],[211,11],[270,12],[408,12]]},"768":{"position":[[170,8],[315,7]]}}}],["replic",{"_index":1896,"t":{"509":{"position":[[481,9]]}}}],["repo",{"_index":495,"t":{"46":{"position":[[272,5]]}}}],["repo/key.gpg",{"_index":484,"t":{"46":{"position":[[94,12]]}}}],["report",{"_index":758,"t":{"90":{"position":[[93,9]]},"94":{"position":[[783,9]]},"124":{"position":[[250,9]]},"316":{"position":[[534,6]]},"603":{"position":[[99,7]]}}}],["repositori",{"_index":278,"t":{"16":{"position":[[459,10]]},"48":{"position":[[26,10]]},"50":{"position":[[46,10]]},"52":{"position":[[119,11]]},"56":{"position":[[7,10]]}}}],["repres",{"_index":1596,"t":{"341":{"position":[[29,9]]},"471":{"position":[[16,12],[108,9]]},"513":{"position":[[88,11]]},"565":{"position":[[207,12]]},"567":{"position":[[106,12]]},"774":{"position":[[111,12],[1169,9]]},"820":{"position":[[16,12]]},"872":{"position":[[65,10]]}}}],["represent",{"_index":940,"t":{"102":{"position":[[2552,15]]},"381":{"position":[[59,14]]},"383":{"position":[[23,14]]},"385":{"position":[[18,14]]},"471":{"position":[[582,15],[782,15]]},"511":{"position":[[119,14]]},"774":{"position":[[200,14]]},"782":{"position":[[36,15]]},"790":{"position":[[59,14]]}}}],["request",{"_index":952,"t":{"102":{"position":[[2920,7],[3498,7]]},"310":{"position":[[48,7]]},"523":{"position":[[17,8],[56,7],[317,7],[452,7],[1090,8],[1353,8],[1387,8],[1453,9],[1947,7],[1992,7],[2151,8]]}}}],["requir",{"_index":92,"t":{"6":{"position":[[418,8],[455,9]]},"8":{"position":[[732,8]]},"12":{"position":[[710,7]]},"23":{"position":[[105,7],[492,8]]},"25":{"position":[[123,7],[286,7]]},"54":{"position":[[12,8]]},"60":{"position":[[330,7]]},"84":{"position":[[719,7],[793,8]]},"102":{"position":[[3392,7]]},"126":{"position":[[86,8]]},"168":{"position":[[35,7],[138,7]]},"251":{"position":[[71,7]]},"341":{"position":[[100,7]]},"361":{"position":[[21,8]]},"367":{"position":[[21,8]]},"377":{"position":[[21,8]]},"379":{"position":[[154,7]]},"383":{"position":[[74,7]]},"385":{"position":[[69,7]]},"393":{"position":[[104,7]]},"395":{"position":[[95,7]]},"397":{"position":[[95,7]]},"399":{"position":[[84,7]]},"401":{"position":[[94,7]]},"403":{"position":[[21,8]]},"437":{"position":[[21,8]]},"443":{"position":[[470,7]]},"457":{"position":[[118,7]]},"467":{"position":[[32,7]]},"469":{"position":[[90,7]]},"471":{"position":[[210,7],[831,7],[1059,7]]},"473":{"position":[[21,8]]},"475":{"position":[[614,7]]},"477":{"position":[[130,7]]},"481":{"position":[[131,7]]},"495":{"position":[[143,7],[409,7]]},"521":{"position":[[21,8]]},"523":{"position":[[2228,7]]},"525":{"position":[[407,7]]},"529":{"position":[[21,8]]},"585":{"position":[[34,7]]},"589":{"position":[[172,7],[687,7]]},"591":{"position":[[36,7]]},"603":{"position":[[259,7]]},"605":{"position":[[21,8]]},"611":{"position":[[301,7]]},"617":{"position":[[399,7]]},"621":{"position":[[181,7]]},"623":{"position":[[794,7],[1126,7]]},"639":{"position":[[163,7]]},"641":{"position":[[21,8]]},"696":{"position":[[389,7]]},"702":{"position":[[326,7]]},"708":{"position":[[400,7]]},"711":{"position":[[84,12],[129,12]]},"713":{"position":[[150,7]]},"715":{"position":[[148,7]]},"719":{"position":[[294,7]]},"723":{"position":[[319,7]]},"728":{"position":[[21,8]]},"786":{"position":[[21,8]]},"788":{"position":[[63,7],[330,7]]},"792":{"position":[[180,7]]},"794":{"position":[[84,7]]},"804":{"position":[[86,7]]},"806":{"position":[[93,7]]},"808":{"position":[[87,7]]},"810":{"position":[[323,7]]},"812":{"position":[[107,7]]},"814":{"position":[[100,7]]},"816":{"position":[[21,8]]},"818":{"position":[[176,7]]},"820":{"position":[[232,7],[1130,7]]}}}],["require\"crypto\".decompress(\"\\xf3\\x48\\xcd\\xc9\\xc9\\xd7\\x51\\x08\\xc8\\x29\\x2d\\xc9\\x57\\x04",{"_index":2372,"t":{"726":{"position":[[327,86]]}}}],["require\"pluto:schedul",{"_index":2099,"t":{"599":{"position":[[237,26]]},"601":{"position":[[184,26]]}}}],["require\"pluto:url",{"_index":2378,"t":{"730":{"position":[[86,18]]},"732":{"position":[[115,18]]},"734":{"position":[[96,18]]}}}],["require\"pluto:vector3",{"_index":2492,"t":{"796":{"position":[[135,24]]},"798":{"position":[[65,24]]},"800":{"position":[[71,24]]},"802":{"position":[[72,24]]}}}],["require\"socket\".connect(\"1.1.1.1",{"_index":2174,"t":{"627":{"position":[[152,34]]},"629":{"position":[[136,34]]},"631":{"position":[[88,34]]},"633":{"position":[[89,34]]}}}],["require(\"assert",{"_index":1692,"t":{"405":{"position":[[160,17]]},"407":{"position":[[159,17]]},"409":{"position":[[163,17]]},"411":{"position":[[212,17]]},"413":{"position":[[327,17]]},"415":{"position":[[161,17]]},"417":{"position":[[462,17]]},"419":{"position":[[462,17]]},"421":{"position":[[201,17]]},"423":{"position":[[225,17]]},"425":{"position":[[208,17]]},"427":{"position":[[232,17]]},"429":{"position":[[274,17]]},"431":{"position":[[278,17]]},"433":{"position":[[469,17]]},"846":{"position":[[156,17]]}}}],["require(\"base64",{"_index":1661,"t":{"369":{"position":[[158,17]]},"371":{"position":[[98,17]]},"373":{"position":[[224,17]]},"375":{"position":[[112,17]]}}}],["require(\"crypto",{"_index":2197,"t":{"644":{"position":[[136,17]]},"646":{"position":[[119,17]]},"648":{"position":[[176,17]]},"650":{"position":[[119,17]]},"652":{"position":[[120,17]]},"654":{"position":[[177,17]]},"656":{"position":[[176,17]]},"658":{"position":[[235,17]]},"660":{"position":[[181,17]]},"662":{"position":[[122,17]]},"664":{"position":[[179,17]]},"666":{"position":[[179,17]]},"668":{"position":[[179,17]]},"670":{"position":[[180,17]]},"672":{"position":[[124,17]]},"674":{"position":[[124,17]]},"676":{"position":[[129,17]]},"679":{"position":[[222,17]]},"681":{"position":[[224,17]]},"683":{"position":[[224,17]]},"685":{"position":[[224,17]]},"690":{"position":[[225,17]]}}}],["require(\"crypto\").joaat(\"hello",{"_index":597,"t":{"70":{"position":[[195,31],[434,31]]}}}],["require(\"json",{"_index":1994,"t":{"531":{"position":[[198,15],[761,15],[838,15]]},"533":{"position":[[591,15]]}}}],["require(\"pluto:libnam",{"_index":972,"t":{"102":{"position":[[3459,24]]}}}],["reserv",{"_index":63,"t":{"4":{"position":[[606,8]]},"8":{"position":[[38,8],[1603,8]]},"112":{"position":[[1249,8]]},"120":{"position":[[1802,8]]},"136":{"position":[[84,8]]},"148":{"position":[[143,8]]},"357":{"position":[[24,8],[145,8],[258,8],[497,8]]}}}],["reset",{"_index":721,"t":{"86":{"position":[[97,9]]}}}],["resolv",{"_index":2120,"t":{"607":{"position":[[115,9]]}}}],["respect",{"_index":49,"t":{"4":{"position":[[352,10]]},"130":{"position":[[330,13]]},"166":{"position":[[112,13]]},"509":{"position":[[387,10]]},"533":{"position":[[495,8]]},"581":{"position":[[26,10]]},"694":{"position":[[237,13]]},"696":{"position":[[238,13]]},"700":{"position":[[205,13]]},"702":{"position":[[206,13]]},"706":{"position":[[269,13]]},"708":{"position":[[174,13]]}}}],["respons",{"_index":1965,"t":{"523":{"position":[[1488,8],[1557,8]]},"838":{"position":[[106,11]]},"840":{"position":[[110,11]]},"852":{"position":[[264,11]]},"856":{"position":[[104,11]]},"860":{"position":[[157,11]]},"866":{"position":[[119,11]]}}}],["rest",{"_index":631,"t":{"74":{"position":[[343,4]]}}}],["restrict",{"_index":338,"t":{"25":{"position":[[211,12]]},"84":{"position":[[261,12]]},"120":{"position":[[1422,11]]},"148":{"position":[[568,12]]}}}],["result",{"_index":762,"t":{"90":{"position":[[219,7],[247,6],[287,6]]},"98":{"position":[[255,7]]},"128":{"position":[[277,9]]},"142":{"position":[[490,8]]},"237":{"position":[[357,6]]},"278":{"position":[[520,6]]},"347":{"position":[[186,6],[213,6]]},"698":{"position":[[112,6]]},"764":{"position":[[97,6]]},"768":{"position":[[145,9]]},"782":{"position":[[182,6]]},"792":{"position":[[150,7]]},"824":{"position":[[138,6]]}}}],["resum",{"_index":2094,"t":{"595":{"position":[[81,7]]},"599":{"position":[[54,7]]}}}],["rethrow",{"_index":1797,"t":{"463":{"position":[[40,8]]}}}],["rethrown",{"_index":2098,"t":{"599":{"position":[[199,9]]},"603":{"position":[[197,8]]}}}],["retri",{"_index":1951,"t":{"523":{"position":[[720,8]]}}}],["retun",{"_index":1811,"t":{"471":{"position":[[602,7]]}}}],["return",{"_index":180,"t":{"12":{"position":[[243,6],[1001,6]]},"23":{"position":[[420,6]]},"29":{"position":[[180,6]]},"35":{"position":[[575,6],[590,6]]},"86":{"position":[[22,9]]},"88":{"position":[[444,6]]},"94":{"position":[[620,6]]},"96":{"position":[[262,7],[378,6]]},"104":{"position":[[112,9]]},"106":{"position":[[70,7]]},"120":{"position":[[1485,6]]},"122":{"position":[[173,6]]},"148":{"position":[[442,7],[498,8]]},"160":{"position":[[78,6]]},"199":{"position":[[24,6],[155,6],[221,6],[280,7]]},"223":{"position":[[156,6],[173,6],[278,6],[304,6],[509,6],[543,8]]},"237":{"position":[[141,6],[387,9],[536,6]]},"239":{"position":[[77,6],[147,6],[213,6],[272,7],[426,6]]},"259":{"position":[[261,6]]},"261":{"position":[[244,6]]},"268":{"position":[[520,9],[625,6]]},"270":{"position":[[454,6],[543,6]]},"284":{"position":[[378,6]]},"292":{"position":[[121,6],[379,6],[467,6]]},"308":{"position":[[116,8]]},"314":{"position":[[162,6]]},"316":{"position":[[66,7]]},"335":{"position":[[110,7],[156,7]]},"339":{"position":[[360,6]]},"341":{"position":[[820,6]]},"345":{"position":[[145,6]]},"351":{"position":[[43,6],[179,6]]},"363":{"position":[[0,7]]},"365":{"position":[[0,7]]},"369":{"position":[[0,7]]},"371":{"position":[[0,7]]},"373":{"position":[[0,7]]},"387":{"position":[[27,7]]},"389":{"position":[[37,7]]},"391":{"position":[[40,7]]},"393":{"position":[[34,7]]},"395":{"position":[[34,7]]},"397":{"position":[[33,7]]},"399":{"position":[[41,7]]},"401":{"position":[[0,7]]},"445":{"position":[[123,8]]},"451":{"position":[[59,8]]},"455":{"position":[[66,8]]},"457":{"position":[[66,8]]},"459":{"position":[[145,8]]},"469":{"position":[[0,7]]},"471":{"position":[[0,7]]},"475":{"position":[[177,8],[418,6]]},"477":{"position":[[65,8]]},"479":{"position":[[145,8]]},"483":{"position":[[167,8]]},"485":{"position":[[203,8]]},"491":{"position":[[44,6],[303,8]]},"493":{"position":[[208,8]]},"511":{"position":[[101,8]]},"513":{"position":[[24,7]]},"515":{"position":[[0,7]]},"519":{"position":[[29,7]]},"523":{"position":[[1463,8]]},"531":{"position":[[0,7],[120,6]]},"533":{"position":[[0,7],[100,6],[165,6],[256,6]]},"545":{"position":[[80,6]]},"547":{"position":[[80,6]]},"549":{"position":[[140,8]]},"551":{"position":[[91,7],[119,8]]},"553":{"position":[[42,8]]},"555":{"position":[[42,8]]},"557":{"position":[[42,8]]},"559":{"position":[[64,8]]},"561":{"position":[[147,8]]},"565":{"position":[[189,8]]},"567":{"position":[[88,8]]},"569":{"position":[[155,8],[212,6]]},"573":{"position":[[166,8],[223,6]]},"575":{"position":[[165,8],[222,6]]},"581":{"position":[[13,6]]},"583":{"position":[[0,7]]},"587":{"position":[[87,8]]},"589":{"position":[[71,8]]},"597":{"position":[[99,7]]},"599":{"position":[[333,6]]},"601":{"position":[[381,6]]},"607":{"position":[[166,8]]},"609":{"position":[[78,8]]},"617":{"position":[[61,8],[292,6]]},"619":{"position":[[78,8],[119,8]]},"623":{"position":[[540,8],[578,7],[654,7]]},"627":{"position":[[86,8]]},"629":{"position":[[79,8]]},"637":{"position":[[67,8],[270,7]]},"639":{"position":[[67,7]]},"648":{"position":[[98,8]]},"654":{"position":[[99,8]]},"656":{"position":[[98,8]]},"658":{"position":[[157,8]]},"664":{"position":[[101,8]]},"666":{"position":[[101,8]]},"668":{"position":[[101,8]]},"670":{"position":[[102,8]]},"679":{"position":[[113,7]]},"681":{"position":[[115,7]]},"683":{"position":[[115,7]]},"685":{"position":[[115,7]]},"687":{"position":[[118,7]]},"690":{"position":[[119,8]]},"696":{"position":[[283,7]]},"702":{"position":[[220,7]]},"706":{"position":[[314,7]]},"708":{"position":[[285,7]]},"711":{"position":[[182,7]]},"723":{"position":[[204,7]]},"726":{"position":[[175,8]]},"730":{"position":[[0,7]]},"732":{"position":[[0,7]]},"742":{"position":[[151,8],[172,8]]},"746":{"position":[[145,8]]},"748":{"position":[[149,8]]},"750":{"position":[[150,8]]},"768":{"position":[[417,8]]},"776":{"position":[[248,8]]},"782":{"position":[[212,8]]},"784":{"position":[[68,8]]},"800":{"position":[[0,7]]},"802":{"position":[[0,7]]},"806":{"position":[[0,7]]},"808":{"position":[[0,7]]},"810":{"position":[[0,7]]},"812":{"position":[[0,7]]},"814":{"position":[[0,7]]},"818":{"position":[[0,7],[100,6]]},"820":{"position":[[0,7],[735,8]]},"824":{"position":[[30,6]]},"826":{"position":[[31,7]]},"828":{"position":[[0,7]]},"832":{"position":[[73,8]]},"836":{"position":[[100,8]]},"838":{"position":[[31,9],[145,8]]},"840":{"position":[[31,9],[149,8]]},"842":{"position":[[74,8]]},"844":{"position":[[34,7]]},"846":{"position":[[109,8]]},"848":{"position":[[34,7]]},"852":{"position":[[331,6],[491,8]]},"854":{"position":[[33,7]]},"856":{"position":[[252,8]]},"858":{"position":[[30,7]]},"860":{"position":[[83,9],[292,8]]},"862":{"position":[[0,7]]},"864":{"position":[[0,7]]},"866":{"position":[[46,9]]},"868":{"position":[[0,7]]},"870":{"position":[[0,7]]},"874":{"position":[[0,7]]},"876":{"position":[[0,7]]},"878":{"position":[[0,7]]}}}],["reus",{"_index":1956,"t":{"523":{"position":[[972,5],[1224,6]]}}}],["revers",{"_index":2566,"t":{"842":{"position":[[0,8],[65,8]]}}}],["revert",{"_index":1124,"t":{"134":{"position":[[101,8]]}}}],["rewritten",{"_index":1146,"t":{"142":{"position":[[415,9]]}}}],["right",{"_index":1032,"t":{"114":{"position":[[196,5]]},"229":{"position":[[4,5],[105,5],[182,5]]},"331":{"position":[[469,6]]},"335":{"position":[[122,5]]},"713":{"position":[[106,5]]},"715":{"position":[[104,5]]},"744":{"position":[[71,5],[104,6]]},"750":{"position":[[36,5]]},"776":{"position":[[188,6],[586,5]]},"792":{"position":[[53,5]]},"810":{"position":[[571,5],[594,5],[697,5],[777,5],[800,5]]},"814":{"position":[[299,5],[397,5],[420,5]]}}}],["righthand",{"_index":1036,"t":{"114":{"position":[[283,9]]},"343":{"position":[[60,9]]},"347":{"position":[[4,9]]}}}],["rightli",{"_index":573,"t":{"64":{"position":[[156,8]]}}}],["ripemd",{"_index":2265,"t":{"687":{"position":[[24,6]]}}}],["roll",{"_index":195,"t":{"12":{"position":[[477,6]]},"810":{"position":[[273,4],[291,5]]}}}],["roll(opt",{"_index":179,"t":{"12":{"position":[[232,10],[990,10]]}}}],["root",{"_index":2539,"t":{"818":{"position":[[221,7],[362,6],[447,7]]},"820":{"position":[[258,4],[788,4],[1057,4],[1106,5]]}}}],["root=1",{"_index":1611,"t":{"341":{"position":[[408,7]]}}}],["rotat",{"_index":2514,"t":{"810":{"position":[[10,8]]},"812":{"position":[[10,8]]},"814":{"position":[[40,8]]}}}],["roughli",{"_index":1130,"t":{"136":{"position":[[221,7]]}}}],["round",{"_index":2020,"t":{"539":{"position":[[0,6],[66,6]]}}}],["rsa",{"_index":713,"t":{"84":{"position":[[1685,3]]},"623":{"position":[[535,4]]},"711":{"position":[[27,6]]},"713":{"position":[[433,3],[898,3]]},"715":{"position":[[210,3],[675,3]]},"717":{"position":[[52,4],[87,5]]},"719":{"position":[[53,4],[88,5],[865,4]]},"721":{"position":[[44,4],[60,4]]},"723":{"position":[[52,4],[68,4],[1056,4]]}}}],["rule",{"_index":241,"t":{"14":{"position":[[347,5]]}}}],["run",{"_index":245,"t":{"14":{"position":[[416,3]]},"23":{"position":[[55,3]]},"27":{"position":[[206,3]]},"39":{"position":[[81,4]]},"54":{"position":[[75,7],[186,3]]},"58":{"position":[[15,3]]},"74":{"position":[[198,7],[242,7]]},"193":{"position":[[38,3]]},"505":{"position":[[309,7]]},"599":{"position":[[4,3]]},"866":{"position":[[0,4]]}}}],["runtim",{"_index":594,"t":{"68":{"position":[[106,8]]},"70":{"position":[[185,7],[424,7]]},"142":{"position":[[436,7]]},"499":{"position":[[55,7]]}}}],["s",{"_index":528,"t":{"54":{"position":[[164,1]]},"433":{"position":[[980,1]]},"611":{"position":[[366,3]]},"617":{"position":[[428,1]]},"623":{"position":[[823,1],[1355,3]]},"738":{"position":[[97,1]]},"740":{"position":[[101,1]]},"742":{"position":[[243,1],[417,1],[623,1]]},"746":{"position":[[182,1]]},"748":{"position":[[186,1]]},"750":{"position":[[187,1]]},"752":{"position":[[106,1]]},"754":{"position":[[110,1]]},"756":{"position":[[111,1]]},"758":{"position":[[110,1]]},"760":{"position":[[113,1]]},"762":{"position":[[114,1]]},"770":{"position":[[114,1]]},"776":{"position":[[421,1],[604,1]]},"778":{"position":[[119,1]]},"780":{"position":[[121,1]]}}}],["s1",{"_index":1289,"t":{"237":{"position":[[94,2],[214,2]]},"772":{"position":[[137,2]]}}}],["s1:gsub",{"_index":1291,"t":{"237":{"position":[[116,12],[236,12]]}}}],["s2",{"_index":1290,"t":{"237":{"position":[[111,2],[231,2]]},"772":{"position":[[162,2],[207,4]]}}}],["s:recv",{"_index":2164,"t":{"623":{"position":[[1036,8]]}}}],["s:send(\"get",{"_index":2142,"t":{"617":{"position":[[465,11]]},"623":{"position":[[944,11]]}}}],["s:send(\"http/1.1",{"_index":2128,"t":{"611":{"position":[[408,16]]},"623":{"position":[[1423,16]]}}}],["s:starttls(cert",{"_index":2170,"t":{"623":{"position":[[1368,17]]}}}],["safe",{"_index":753,"t":{"88":{"position":[[501,4]]},"94":{"position":[[579,4]]},"98":{"position":[[174,4]]},"102":{"position":[[180,4]]},"148":{"position":[[323,4]]},"268":{"position":[[855,4]]},"270":{"position":[[68,4]]},"373":{"position":[[85,4]]}}}],["same",{"_index":128,"t":{"8":{"position":[[1103,4]]},"60":{"position":[[430,4]]},"164":{"position":[[138,4]]},"166":{"position":[[21,4]]},"173":{"position":[[52,4]]},"175":{"position":[[52,4]]},"177":{"position":[[24,4]]},"329":{"position":[[29,5]]},"331":{"position":[[621,4]]},"337":{"position":[[268,5]]},"417":{"position":[[167,4],[206,4]]},"419":{"position":[[171,4],[210,4]]},"497":{"position":[[255,4]]},"523":{"position":[[1117,4],[2167,4]]},"533":{"position":[[111,4]]},"623":{"position":[[207,4]]},"764":{"position":[[0,4],[92,4]]},"842":{"position":[[190,4]]},"850":{"position":[[35,4]]}}}],["sandbox",{"_index":337,"t":{"25":{"position":[[203,7],[417,8]]},"27":{"position":[[36,10]]},"102":{"position":[[3712,12],[3902,11]]},"304":{"position":[[164,8]]}}}],["say(\"hello",{"_index":1578,"t":{"335":{"position":[[331,11],[590,11],[825,11]]}}}],["say(messag",{"_index":1575,"t":{"335":{"position":[[208,12],[433,12],[693,12]]}}}],["say(msg",{"_index":1320,"t":{"247":{"position":[[151,8]]}}}],["say(nil",{"_index":1577,"t":{"335":{"position":[[297,8],[556,8],[791,8]]}}}],["sched",{"_index":1987,"t":{"525":{"position":[[425,5]]},"603":{"position":[[277,5]]},"611":{"position":[[319,5]]},"623":{"position":[[1307,5]]}}}],["sched.errorfunc",{"_index":2112,"t":{"603":{"position":[[301,15]]}}}],["sched:add(funct",{"_index":1990,"t":{"525":{"position":[[528,20]]},"603":{"position":[[363,20]]}}}],["sched:addloop(funct",{"_index":1988,"t":{"525":{"position":[[449,24]]}}}],["sched:run",{"_index":1992,"t":{"525":{"position":[[608,11]]},"611":{"position":[[511,11]]},"623":{"position":[[1569,11]]}}}],["schedul",{"_index":385,"t":{"29":{"position":[[519,10]]},"96":{"position":[[1029,11]]},"525":{"position":[[393,9],[437,11]]},"591":{"position":[[4,9]]},"595":{"position":[[116,10]]},"599":{"position":[[29,10],[44,9],[221,9]]},"601":{"position":[[31,9],[79,9],[168,9]]},"603":{"position":[[31,9],[89,9],[245,9],[289,11]]},"611":{"position":[[137,9],[279,10],[331,11]]},"623":{"position":[[1104,10],[1319,11]]}}}],["scheduler.yieldfunc",{"_index":2110,"t":{"601":{"position":[[272,19]]}}}],["scheduler:add(funct",{"_index":2103,"t":{"599":{"position":[[402,24]]}}}],["scheduler:addloop(funct",{"_index":2100,"t":{"599":{"position":[[283,28]]},"601":{"position":[[331,28]]}}}],["scheduler:run",{"_index":2102,"t":{"599":{"position":[[356,15],[555,15]]},"601":{"position":[[404,15]]}}}],["scheme",{"_index":2386,"t":{"734":{"position":[[215,10]]}}}],["scope",{"_index":826,"t":{"96":{"position":[[812,5]]},"98":{"position":[[15,7]]},"100":{"position":[[386,5]]},"102":{"position":[[710,7],[1809,6]]},"118":{"position":[[274,5]]},"223":{"position":[[536,6]]}}}],["script",{"_index":44,"t":{"4":{"position":[[303,6]]},"6":{"position":[[273,7],[411,6]]},"8":{"position":[[75,7],[679,6],[1168,7],[1363,6],[1582,6]]},"12":{"position":[[683,7]]},"14":{"position":[[427,7]]},"23":{"position":[[44,7]]},"54":{"position":[[452,7]]},"86":{"position":[[327,7]]},"110":{"position":[[133,7]]},"185":{"position":[[240,6]]}}}],["script.pluto:2",{"_index":1879,"t":{"497":{"position":[[334,15],[382,14]]}}}],["scripter",{"_index":81,"t":{"6":{"position":[[215,10]]},"12":{"position":[[722,9]]},"84":{"position":[[405,8]]},"175":{"position":[[366,9]]},"189":{"position":[[466,9]]},"191":{"position":[[416,9]]},"193":{"position":[[413,9]]}}}],["scripts/compile.php",{"_index":529,"t":{"54":{"position":[[218,19]]}}}],["scripts/link_pluto.php",{"_index":531,"t":{"54":{"position":[[248,22]]}}}],["scripts/link_plutoc.php",{"_index":532,"t":{"54":{"position":[[281,23]]}}}],["scripts/link_static.php",{"_index":533,"t":{"54":{"position":[[315,23]]}}}],["sdbm",{"_index":2216,"t":{"656":{"position":[[24,4]]}}}],["search",{"_index":256,"t":{"16":{"position":[[58,6],[246,6],[362,6]]},"227":{"position":[[52,8],[71,9],[137,9],[245,8],[272,6],[308,6],[338,9]]},"435":{"position":[[227,6]]},"507":{"position":[[33,6]]},"744":{"position":[[62,8]]},"776":{"position":[[172,6]]},"838":{"position":[[0,6]]},"840":{"position":[[0,6]]}}}],["second",{"_index":1149,"t":{"142":{"position":[[539,6]]},"417":{"position":[[357,6]]},"419":{"position":[[361,6]]},"421":{"position":[[93,6]]},"423":{"position":[[105,6]]},"425":{"position":[[96,6]]},"427":{"position":[[108,6]]},"573":{"position":[[260,7],[428,8]]},"583":{"position":[[8,7]]},"601":{"position":[[235,6]]},"738":{"position":[[26,6]]},"740":{"position":[[26,6]]},"772":{"position":[[99,6]]}}}],["secondari",{"_index":1819,"t":{"471":{"position":[[1129,9],[1260,10],[1334,11]]}}}],["secret",{"_index":2292,"t":{"696":{"position":[[439,6]]},"702":{"position":[[376,6]]},"708":{"position":[[450,6]]},"719":{"position":[[815,6],[974,6]]}}}],["section",{"_index":273,"t":{"16":{"position":[[353,8]]}}}],["secur",{"_index":410,"t":{"29":{"position":[[1150,9]]},"623":{"position":[[923,6]]},"690":{"position":[[28,6],[111,7]]},"692":{"position":[[137,9]]}}}],["see",{"_index":412,"t":{"31":{"position":[[50,3]]},"102":{"position":[[2167,4]]},"179":{"position":[[77,3]]},"197":{"position":[[88,3]]},"199":{"position":[[87,3]]},"221":{"position":[[465,3]]},"237":{"position":[[307,4]]},"278":{"position":[[403,4]]}}}],["seem",{"_index":214,"t":{"12":{"position":[[838,5]]},"72":{"position":[[110,4]]},"187":{"position":[[29,5]]}}}],["seen",{"_index":593,"t":{"68":{"position":[[98,4]]},"381":{"position":[[3,4]]},"790":{"position":[[3,4]]}}}],["select",{"_index":263,"t":{"16":{"position":[[203,6]]},"56":{"position":[[159,7]]},"120":{"position":[[123,6]]}}}],["self.__par",{"_index":1341,"t":{"257":{"position":[[41,14]]}}}],["self.__parent.method(self",{"_index":1073,"t":{"120":{"position":[[1297,26]]},"257":{"position":[[131,26]]}}}],["self.__parent.prop",{"_index":1071,"t":{"120":{"position":[[1256,18]]}}}],["self.ag",{"_index":1347,"t":{"259":{"position":[[224,8],[268,8]]},"261":{"position":[[251,8]]}}}],["self.factor",{"_index":1629,"t":{"345":{"position":[[160,11]]}}}],["self.nam",{"_index":1327,"t":{"249":{"position":[[179,9]]},"251":{"position":[[146,9]]},"253":{"position":[[140,9]]},"257":{"position":[[210,9]]},"259":{"position":[[207,9]]},"359":{"position":[[299,14]]}}}],["self.onev",{"_index":1389,"t":{"270":{"position":[[136,12]]}}}],["self:onevent(ev",{"_index":1390,"t":{"270":{"position":[[154,19]]}}}],["self:onevent?(ev",{"_index":1391,"t":{"270":{"position":[[199,20]]}}}],["semant",{"_index":178,"t":{"12":{"position":[[194,8]]},"96":{"position":[[2518,10]]},"106":{"position":[[14,9]]}}}],["semi",{"_index":2201,"t":{"646":{"position":[[28,4]]}}}],["semicolon",{"_index":1333,"t":{"251":{"position":[[89,11]]}}}],["send",{"_index":1938,"t":{"523":{"position":[[49,4]]},"615":{"position":[[0,5],[69,5]]},"623":{"position":[[308,5]]}}}],["sens",{"_index":1939,"t":{"523":{"position":[[114,5]]}}}],["sep",{"_index":2442,"t":{"774":{"position":[[459,3]]},"776":{"position":[[332,4]]}}}],["separ",{"_index":942,"t":{"102":{"position":[[2601,9]]},"140":{"position":[[31,8]]},"742":{"position":[[21,10],[69,9]]},"774":{"position":[[59,9],[469,9]]},"776":{"position":[[50,10],[102,9]]}}}],["sequenc",{"_index":908,"t":{"102":{"position":[[828,8]]},"154":{"position":[[87,9]]},"868":{"position":[[150,11],[162,9],[172,9]]},"876":{"position":[[105,10]]}}}],["seri",{"_index":1306,"t":{"245":{"position":[[2,6]]}}}],["serial",{"_index":2002,"t":{"533":{"position":[[48,10]]}}}],["server",{"_index":706,"t":{"84":{"position":[[1604,6]]},"118":{"position":[[62,7]]},"613":{"position":[[85,9]]},"623":{"position":[[325,9],[1069,6]]},"629":{"position":[[107,9]]}}}],["servic",{"_index":1954,"t":{"523":{"position":[[831,8]]}}}],["session",{"_index":2279,"t":{"692":{"position":[[119,7]]}}}],["set",{"_index":136,"t":{"8":{"position":[[1326,8]]},"23":{"position":[[222,3]]},"33":{"position":[[136,3]]},"64":{"position":[[59,4]]},"80":{"position":[[143,9]]},"96":{"position":[[852,3]]},"120":{"position":[[805,4],[1065,4]]},"126":{"position":[[66,7]]},"128":{"position":[[61,7]]},"215":{"position":[[131,9]]},"225":{"position":[[137,9]]},"231":{"position":[[80,4]]},"265":{"position":[[238,9]]},"268":{"position":[[418,3]]},"286":{"position":[[733,3]]},"288":{"position":[[137,9]]},"294":{"position":[[150,9]]},"300":{"position":[[282,3]]},"401":{"position":[[45,3]]},"447":{"position":[[0,4]]},"449":{"position":[[0,4]]},"509":{"position":[[349,7]]},"523":{"position":[[511,3],[548,3],[761,3]]},"569":{"position":[[7,3]]},"573":{"position":[[7,3]]},"575":{"position":[[7,3],[333,3]]},"591":{"position":[[68,3]]},"603":{"position":[[64,3]]},"679":{"position":[[100,3]]},"681":{"position":[[102,3]]},"683":{"position":[[102,3]]},"685":{"position":[[102,3]]},"687":{"position":[[105,3]]},"852":{"position":[[125,7]]},"880":{"position":[[82,4],[100,4]]}}}],["setup",{"_index":1527,"t":{"312":{"position":[[246,6]]}}}],["sever",{"_index":781,"t":{"92":{"position":[[19,7]]}}}],["sgvsbg8sifdvcmxkiq",{"_index":1663,"t":{"369":{"position":[[218,20]]},"373":{"position":[[287,18]]}}}],["sha",{"_index":2247,"t":{"679":{"position":[[24,3]]},"681":{"position":[[24,3]]},"683":{"position":[[24,3]]},"685":{"position":[[24,3]]}}}],["sha1",{"_index":2353,"t":{"721":{"position":[[65,6]]},"723":{"position":[[73,6]]}}}],["sha256",{"_index":2352,"t":{"721":{"position":[[49,7]]},"723":{"position":[[57,7],[887,8],[1061,8]]}}}],["shadow",{"_index":739,"t":{"88":{"position":[[15,6],[52,8]]},"96":{"position":[[291,7]]},"100":{"position":[[420,6]]},"102":{"position":[[1413,6],[1446,6],[1511,9],[1671,6],[1760,6],[1852,6]]},"173":{"position":[[190,7],[255,7]]},"175":{"position":[[172,7],[231,7]]},"177":{"position":[[212,7]]},"203":{"position":[[356,6],[414,6]]}}}],["share",{"_index":501,"t":{"46":{"position":[[456,6]]},"48":{"position":[[119,6]]},"54":{"position":[[485,6]]},"60":{"position":[[420,5]]},"122":{"position":[[101,6]]},"475":{"position":[[487,6],[545,6]]}}}],["short",{"_index":57,"t":{"4":{"position":[[545,5]]},"284":{"position":[[139,5]]}}}],["shorthand",{"_index":110,"t":{"8":{"position":[[312,9]]},"102":{"position":[[31,9],[328,9]]},"112":{"position":[[1291,9]]},"142":{"position":[[257,9]]},"257":{"position":[[27,9],[117,9]]},"286":{"position":[[424,9]]},"357":{"position":[[101,9],[181,9]]},"788":{"position":[[288,9]]}}}],["show",{"_index":1137,"t":{"140":{"position":[[93,7]]}}}],["side",{"_index":1392,"t":{"270":{"position":[[261,4]]},"343":{"position":[[70,4]]},"347":{"position":[[14,4]]},"629":{"position":[[10,4]]},"748":{"position":[[41,4]]},"750":{"position":[[42,4]]},"792":{"position":[[64,4]]}}}],["sig",{"_index":2358,"t":{"723":{"position":[[857,3],[1075,5]]}}}],["sign",{"_index":493,"t":{"46":{"position":[[189,6]]},"721":{"position":[[31,5]]},"723":{"position":[[37,7],[186,6],[802,4]]}}}],["signatur",{"_index":2355,"t":{"723":{"position":[[144,9],[160,9],[244,9]]}}}],["signer'",{"_index":2354,"t":{"723":{"position":[[122,8]]}}}],["signific",{"_index":664,"t":{"84":{"position":[[567,11]]},"401":{"position":[[33,11]]}}}],["significantli",{"_index":1974,"t":{"523":{"position":[[2187,13]]},"569":{"position":[[462,13]]}}}],["silenc",{"_index":1237,"t":{"195":{"position":[[479,9]]}}}],["similar",{"_index":287,"t":{"16":{"position":[[658,7]]},"120":{"position":[[914,8]]},"251":{"position":[[23,7]]},"276":{"position":[[0,7]]},"375":{"position":[[0,7]]},"513":{"position":[[0,7]]},"517":{"position":[[54,7]]},"766":{"position":[[43,7]]}}}],["similarli",{"_index":1387,"t":{"270":{"position":[[0,10]]}}}],["simpl",{"_index":390,"t":{"29":{"position":[[623,6],[799,6]]},"241":{"position":[[263,6]]},"261":{"position":[[115,6]]},"278":{"position":[[26,6]]}}}],["simpli",{"_index":9,"t":{"2":{"position":[[89,6],[158,6]]},"54":{"position":[[179,6]]},"58":{"position":[[8,6]]},"60":{"position":[[276,6]]},"205":{"position":[[48,6]]},"217":{"position":[[94,6]]},"268":{"position":[[411,6]]},"320":{"position":[[38,6]]}}}],["simplic",{"_index":670,"t":{"84":{"position":[[872,10]]}}}],["simplifi",{"_index":1440,"t":{"286":{"position":[[95,10]]}}}],["singl",{"_index":1007,"t":{"110":{"position":[[44,6]]},"742":{"position":[[214,6],[581,6]]},"774":{"position":[[286,6],[502,6]]},"820":{"position":[[1050,6]]}}}],["size",{"_index":1786,"t":{"451":{"position":[[8,4]]},"453":{"position":[[15,4]]},"483":{"position":[[13,4],[180,4]]},"571":{"position":[[10,4]]},"742":{"position":[[166,5]]},"872":{"position":[[106,5],[147,4],[197,4]]}}}],["skip",{"_index":635,"t":{"76":{"position":[[69,4],[366,4]]},"78":{"position":[[111,4],[160,8]]}}}],["sleep",{"_index":1104,"t":{"130":{"position":[[381,6]]},"579":{"position":[[42,5]]}}}],["slightli",{"_index":931,"t":{"102":{"position":[[2357,8]]},"136":{"position":[[250,8]]},"513":{"position":[[153,8]]}}}],["slower",{"_index":1132,"t":{"136":{"position":[[259,6]]}}}],["small",{"_index":1039,"t":{"116":{"position":[[200,5]]},"272":{"position":[[16,5]]},"571":{"position":[[147,5]]}}}],["smallest",{"_index":2598,"t":{"862":{"position":[[12,8]]}}}],["smooth",{"_index":204,"t":{"12":{"position":[[657,6]]}}}],["snippet",{"_index":231,"t":{"14":{"position":[[190,8]]},"124":{"position":[[238,7]]},"349":{"position":[[85,9]]}}}],["sock",{"_index":2148,"t":{"621":{"position":[[210,4]]},"627":{"position":[[145,4]]},"629":{"position":[[129,4]]},"631":{"position":[[81,4]]},"633":{"position":[[82,4]]}}}],["sock:clos",{"_index":2184,"t":{"633":{"position":[[159,12]]}}}],["sock:getp",{"_index":2175,"t":{"627":{"position":[[209,14]]}}}],["sock:unrecv(\"hello",{"_index":2150,"t":{"621":{"position":[[271,20]]}}}],["sock:unrecv(\"world",{"_index":2149,"t":{"621":{"position":[[250,20]]}}}],["socket",{"_index":707,"t":{"84":{"position":[[1611,7]]},"96":{"position":[[965,8]]},"523":{"position":[[990,7]]},"607":{"position":[[177,6]]},"611":{"position":[[257,7],[290,6]]},"613":{"position":[[0,6]]},"615":{"position":[[16,7],[40,6]]},"617":{"position":[[20,7],[44,6],[77,6],[212,6],[390,6]]},"619":{"position":[[60,6]]},"621":{"position":[[125,6],[172,6]]},"623":{"position":[[44,7],[136,6],[339,6],[600,6],[625,6],[785,6],[1115,6]]},"625":{"position":[[9,7],[33,6]]},"627":{"position":[[69,6]]},"629":{"position":[[35,6],[62,6]]},"631":{"position":[[52,6]]},"633":{"position":[[53,6]]},"637":{"position":[[82,6],[103,6]]},"639":{"position":[[154,6]]}}}],["socket.bind(sch",{"_index":2126,"t":{"611":{"position":[[343,18]]},"623":{"position":[[1331,18]]}}}],["socket.connect",{"_index":2132,"t":{"613":{"position":[[41,14]]},"623":{"position":[[234,15]]}}}],["socket.connect(\"google.com",{"_index":2141,"t":{"617":{"position":[[432,28]]},"621":{"position":[[217,28]]}}}],["socket.connect(\"pluto",{"_index":2159,"t":{"623":{"position":[[827,21]]}}}],["socket.getp",{"_index":695,"t":{"84":{"position":[[1393,15]]}}}],["socket.getsid",{"_index":697,"t":{"84":{"position":[[1422,15]]}}}],["socket.isopen",{"_index":699,"t":{"84":{"position":[[1454,13]]}}}],["socket.istl",{"_index":698,"t":{"84":{"position":[[1438,13]]}}}],["socket.listen",{"_index":2123,"t":{"611":{"position":[[34,14]]},"635":{"position":[[43,14]]}}}],["socket.listen(80",{"_index":2188,"t":{"639":{"position":[[196,17]]}}}],["socket.peek",{"_index":696,"t":{"84":{"position":[[1409,12]]}}}],["socket.recv",{"_index":2146,"t":{"619":{"position":[[136,11]]},"621":{"position":[[96,12]]}}}],["socket.starttl",{"_index":705,"t":{"84":{"position":[[1569,15]]},"90":{"position":[[678,15]]}}}],["sole",{"_index":2152,"t":{"623":{"position":[[81,4]]},"774":{"position":[[266,6]]}}}],["solut",{"_index":357,"t":{"27":{"position":[[328,9]]},"227":{"position":[[127,9]]}}}],["someth",{"_index":286,"t":{"16":{"position":[[648,9]]},"102":{"position":[[1352,10]]},"185":{"position":[[34,9]]},"241":{"position":[[89,9]]},"268":{"position":[[505,10]]},"300":{"position":[[33,9]]},"433":{"position":[[832,10],[843,11],[970,9]]}}}],["sometim",{"_index":744,"t":{"88":{"position":[[199,9]]},"140":{"position":[[79,9]]},"373":{"position":[[52,9]]}}}],["somewher",{"_index":317,"t":{"23":{"position":[[323,9]]}}}],["sort",{"_index":374,"t":{"29":{"position":[[153,4]]},"339":{"position":[[347,8]]},"511":{"position":[[845,8]]}}}],["soup",{"_index":922,"t":{"102":{"position":[[2095,4]]},"120":{"position":[[346,4]]},"130":{"position":[[595,7]]},"341":{"position":[[337,4]]},"503":{"position":[[64,5]]}}}],["soup'",{"_index":2082,"t":{"585":{"position":[[69,6]]}}}],["sourc",{"_index":2,"t":{"2":{"position":[[17,6]]},"62":{"position":[[123,6]]},"84":{"position":[[599,6]]},"477":{"position":[[52,6]]},"481":{"position":[[91,6]]},"495":{"position":[[103,6]]}}}],["space",{"_index":633,"t":{"74":{"position":[[369,6]]},"782":{"position":[[121,6]]}}}],["spaceship",{"_index":896,"t":{"102":{"position":[[149,9]]},"339":{"position":[[4,9]]},"517":{"position":[[69,9]]}}}],["spade",{"_index":1658,"t":{"359":{"position":[[420,6]]}}}],["special",{"_index":227,"t":{"14":{"position":[[76,11]]},"100":{"position":[[8,11]]},"203":{"position":[[458,7]]},"322":{"position":[[0,7]]},"345":{"position":[[9,11]]}}}],["specif",{"_index":423,"t":{"33":{"position":[[251,8]]},"142":{"position":[[569,8]]},"205":{"position":[[25,8]]},"581":{"position":[[64,8]]}}}],["specifi",{"_index":107,"t":{"8":{"position":[[275,7]]},"29":{"position":[[229,7],[279,7]]},"96":{"position":[[2543,7]]},"255":{"position":[[45,7]]},"259":{"position":[[20,7]]},"443":{"position":[[135,9],[245,9],[316,9],[385,9]]},"523":{"position":[[577,10]]},"738":{"position":[[48,9]]},"740":{"position":[[48,9]]},"768":{"position":[[30,9]]},"776":{"position":[[150,10]]},"810":{"position":[[86,7]]},"872":{"position":[[96,9]]},"876":{"position":[[57,9]]}}}],["speedup",{"_index":1178,"t":{"154":{"position":[[679,8]]}}}],["spin",{"_index":2125,"t":{"611":{"position":[[89,8]]}}}],["split",{"_index":2382,"t":{"734":{"position":[[0,6]]},"742":{"position":[[0,6],[58,6],[82,5],[190,9],[371,9],[557,9]]},"776":{"position":[[0,6]]}}}],["spuriou",{"_index":1116,"t":{"132":{"position":[[287,8]]}}}],["src",{"_index":536,"t":{"54":{"position":[[538,4]]},"58":{"position":[[142,4]]},"60":{"position":[[67,4],[128,3],[193,4]]}}}],["stack",{"_index":192,"t":{"12":{"position":[[408,5]]},"94":{"position":[[694,5]]},"132":{"position":[[365,5]]},"405":{"position":[[324,5]]},"407":{"position":[[343,5]]},"409":{"position":[[350,5]]},"411":{"position":[[462,5]]},"413":{"position":[[530,5]]},"415":{"position":[[355,5]]},"774":{"position":[[1216,5]]}}}],["standard",{"_index":173,"t":{"12":{"position":[[127,8]]},"62":{"position":[[163,8]]},"70":{"position":[[8,8]]},"84":{"position":[[994,8]]},"88":{"position":[[456,8]]},"90":{"position":[[439,8]]},"96":{"position":[[882,8]]},"102":{"position":[[2077,8]]},"112":{"position":[[1323,8]]},"120":{"position":[[381,8],[1497,8]]},"130":{"position":[[542,8],[578,8]]},"142":{"position":[[65,8]]},"168":{"position":[[52,8]]},"263":{"position":[[632,8]]},"329":{"position":[[80,12]]}}}],["start",{"_index":461,"t":{"37":{"position":[[38,7]]},"39":{"position":[[23,7]]},"94":{"position":[[164,8]]},"96":{"position":[[343,8]]},"207":{"position":[[171,5]]},"290":{"position":[[222,5]]},"523":{"position":[[785,5]]},"776":{"position":[[228,6]]},"780":{"position":[[19,6]]},"876":{"position":[[143,8]]}}}],["starttl",{"_index":2186,"t":{"637":{"position":[[162,8]]}}}],["state",{"_index":1240,"t":{"201":{"position":[[4,5]]},"203":{"position":[[16,7],[70,5],[193,5],[254,5]]},"302":{"position":[[42,5]]},"308":{"position":[[55,5]]},"527":{"position":[[60,5]]}}}],["statement",{"_index":103,"t":{"8":{"position":[[127,10],[1544,11]]},"62":{"position":[[244,11]]},"72":{"position":[[63,10]]},"76":{"position":[[9,11],[184,11]]},"84":{"position":[[779,9]]},"94":{"position":[[474,9]]},"96":{"position":[[14,9],[557,9],[604,9],[712,10]]},"98":{"position":[[42,10]]},"102":{"position":[[71,9],[133,9]]},"104":{"position":[[214,10]]},"112":{"position":[[293,9],[414,9],[1004,9]]},"118":{"position":[[87,9]]},"120":{"position":[[523,9],[891,9],[1022,10]]},"126":{"position":[[5,10]]},"128":{"position":[[5,10]]},"154":{"position":[[186,9],[250,10]]},"181":{"position":[[282,10]]},"223":{"position":[[311,9]]},"245":{"position":[[198,10]]},"251":{"position":[[10,9],[280,9]]},"255":{"position":[[10,9]]},"268":{"position":[[790,11]]},"282":{"position":[[159,10]]},"331":{"position":[[267,11],[358,10]]},"359":{"position":[[109,9],[190,9],[358,9]]}}}],["static",{"_index":325,"t":{"23":{"position":[[523,6]]},"60":{"position":[[239,6]]},"96":{"position":[[481,6]]},"120":{"position":[[1117,6]]},"247":{"position":[[51,7],[135,6]]},"249":{"position":[[367,6]]}}}],["statu",{"_index":1966,"t":{"523":{"position":[[1519,6],[1610,6]]}}}],["status_cod",{"_index":1976,"t":{"523":{"position":[[2261,12]]}}}],["status_text",{"_index":1977,"t":{"523":{"position":[[2283,11],[2363,15]]}}}],["std=c++17",{"_index":1830,"t":{"475":{"position":[[475,9],[533,9]]}}}],["step",{"_index":1722,"t":{"417":{"position":[[292,4],[300,5]]},"419":{"position":[[296,4],[304,5]]},"856":{"position":[[626,4]]}}}],["still",{"_index":145,"t":{"8":{"position":[[1649,5]]},"29":{"position":[[1015,6]]},"96":{"position":[[2537,5]]},"102":{"position":[[3545,5]]},"136":{"position":[[244,5]]},"286":{"position":[[453,5]]},"310":{"position":[[148,5]]},"326":{"position":[[132,5]]},"633":{"position":[[25,5]]}}}],["store",{"_index":1512,"t":{"308":{"position":[[80,6]]},"479":{"position":[[111,6]]},"481":{"position":[[39,6]]},"483":{"position":[[103,6]]},"485":{"position":[[116,6]]},"860":{"position":[[16,6]]},"862":{"position":[[27,6]]},"864":{"position":[[26,6]]}}}],["str",{"_index":1156,"t":{"148":{"position":[[36,3],[43,3]]},"290":{"position":[[310,3]]},"491":{"position":[[149,6],[296,6]]},"493":{"position":[[177,6]]},"644":{"position":[[160,3]]},"646":{"position":[[143,3]]},"648":{"position":[[200,3]]},"650":{"position":[[143,3]]},"652":{"position":[[144,3]]},"654":{"position":[[201,3]]},"656":{"position":[[200,3]]},"658":{"position":[[259,3]]},"660":{"position":[[205,3]]},"662":{"position":[[146,3]]},"664":{"position":[[203,3]]},"666":{"position":[[203,3]]},"668":{"position":[[203,3]]},"670":{"position":[[204,3]]},"672":{"position":[[148,3]]},"674":{"position":[[148,3]]},"676":{"position":[[153,3]]}}}],["straightforward",{"_index":933,"t":{"102":{"position":[[2390,15]]}}}],["strawberri",{"_index":1471,"t":{"292":{"position":[[242,12]]}}}],["stream",{"_index":2024,"t":{"549":{"position":[[94,7]]},"551":{"position":[[71,7]]},"553":{"position":[[34,7]]},"555":{"position":[[34,7]]},"557":{"position":[[34,7]]},"565":{"position":[[80,7]]},"567":{"position":[[80,7]]},"569":{"position":[[64,7]]},"571":{"position":[[69,7]]},"573":{"position":[[73,7]]}}}],["strict",{"_index":2313,"t":{"711":{"position":[[66,6]]}}}],["string",{"_index":564,"t":{"62":{"position":[[304,6]]},"86":{"position":[[41,6],[207,7]]},"96":{"position":[[2240,7]]},"102":{"position":[[855,8],[2545,6]]},"104":{"position":[[84,6]]},"108":{"position":[[0,6],[39,7],[118,6],[156,6]]},"110":{"position":[[6,6],[58,7]]},"112":{"position":[[646,6]]},"122":{"position":[[267,7]]},"128":{"position":[[254,6]]},"130":{"position":[[43,7],[51,7]]},"146":{"position":[[76,6]]},"154":{"position":[[398,6],[462,6],[728,6]]},"175":{"position":[[529,9]]},"179":{"position":[[290,6]]},"227":{"position":[[45,6]]},"229":{"position":[[51,7],[91,6],[129,7]]},"231":{"position":[[391,6]]},"278":{"position":[[0,6],[232,6],[422,6],[565,6]]},"290":{"position":[[14,7],[100,6],[235,7]]},"314":{"position":[[47,6],[135,7],[146,8]]},"316":{"position":[[0,6],[129,7],[171,7],[266,6],[384,7]]},"363":{"position":[[26,7],[55,6]]},"365":{"position":[[25,7],[54,6]]},"369":{"position":[[25,7],[54,6]]},"371":{"position":[[25,7],[54,6]]},"373":{"position":[[28,7],[119,6]]},"375":{"position":[[68,6]]},"381":{"position":[[52,6]]},"405":{"position":[[366,7],[406,8]]},"407":{"position":[[385,7],[425,8]]},"409":{"position":[[392,7],[432,8]]},"411":{"position":[[504,7],[544,8]]},"413":{"position":[[572,7],[612,8]]},"415":{"position":[[397,7],[437,8]]},"433":{"position":[[938,7]]},"435":{"position":[[257,7],[283,7],[427,6]]},"441":{"position":[[83,7]]},"443":{"position":[[68,6]]},"455":{"position":[[77,7]]},"457":{"position":[[77,7]]},"459":{"position":[[46,7],[156,7]]},"469":{"position":[[10,6]]},"497":{"position":[[101,6]]},"505":{"position":[[24,6]]},"509":{"position":[[75,6]]},"511":{"position":[[112,6]]},"519":{"position":[[39,6]]},"523":{"position":[[72,7],[1507,7],[1627,7],[1696,7]]},"531":{"position":[[10,6],[64,7],[144,6]]},"533":{"position":[[79,7],[786,9],[1077,9]]},"549":{"position":[[74,6]]},"551":{"position":[[51,6]]},"553":{"position":[[14,6]]},"555":{"position":[[14,6]]},"557":{"position":[[14,6]]},"561":{"position":[[53,6]]},"563":{"position":[[99,6]]},"565":{"position":[[60,6],[200,6]]},"567":{"position":[[60,6],[99,6]]},"569":{"position":[[44,6]]},"571":{"position":[[49,6]]},"573":{"position":[[53,6]]},"585":{"position":[[98,6]]},"617":{"position":[[197,7]]},"619":{"position":[[98,6]]},"623":{"position":[[482,6]]},"627":{"position":[[115,7]]},"644":{"position":[[7,6],[99,6]]},"646":{"position":[[7,6],[82,6]]},"648":{"position":[[7,6],[82,6]]},"650":{"position":[[7,6],[82,6]]},"652":{"position":[[7,6],[83,6]]},"654":{"position":[[7,6],[83,6]]},"656":{"position":[[7,6],[82,6]]},"658":{"position":[[7,6],[83,6]]},"660":{"position":[[7,6],[86,6]]},"662":{"position":[[7,6],[85,6]]},"664":{"position":[[7,6],[85,6]]},"666":{"position":[[7,6],[85,6]]},"668":{"position":[[7,6],[85,6]]},"670":{"position":[[7,6],[86,6]]},"672":{"position":[[7,6],[87,6]]},"674":{"position":[[7,6],[87,6]]},"676":{"position":[[7,6],[92,6]]},"679":{"position":[[7,6],[79,6]]},"681":{"position":[[7,6],[81,6]]},"683":{"position":[[7,6],[81,6]]},"685":{"position":[[7,6],[81,6]]},"687":{"position":[[7,6],[84,6]]},"706":{"position":[[326,8]]},"726":{"position":[[34,6],[153,6],[201,7]]},"730":{"position":[[22,7],[46,6]]},"732":{"position":[[16,6],[51,7],[75,6]]},"736":{"position":[[51,6]]},"742":{"position":[[9,6],[48,6],[90,6],[117,7],[202,6],[383,6],[569,6]]},"746":{"position":[[47,7],[71,6],[90,6],[162,7]]},"748":{"position":[[51,7],[75,6],[94,6],[166,7]]},"750":{"position":[[52,7],[76,6],[95,6],[167,7]]},"752":{"position":[[12,6],[77,6]]},"754":{"position":[[12,6],[81,6]]},"756":{"position":[[12,6],[82,6]]},"758":{"position":[[12,6],[81,6]]},"760":{"position":[[12,6],[84,6]]},"762":{"position":[[15,6],[85,6]]},"768":{"position":[[18,6],[81,6],[155,6],[212,6],[268,7],[355,6],[440,7]]},"770":{"position":[[12,6],[57,6]]},"772":{"position":[[13,8],[76,6],[106,6]]},"774":{"position":[[103,7],[240,7],[345,6],[445,6],[519,7],[605,6],[1148,7]]},"776":{"position":[[9,6],[77,6],[129,6],[261,8]]},"778":{"position":[[12,6],[55,6]]},"780":{"position":[[12,6],[57,6]]},"782":{"position":[[20,6],[68,6],[227,7]]},"784":{"position":[[15,6],[49,6],[83,7]]},"790":{"position":[[52,6]]},"818":{"position":[[10,6],[55,6],[124,6]]},"856":{"position":[[564,7]]}}}],["string(10",{"_index":1808,"t":{"471":{"position":[[355,10]]}}}],["string(11",{"_index":1601,"t":{"341":{"position":[[253,10]]}}}],["string(13",{"_index":1614,"t":{"341":{"position":[[478,10],[530,10]]},"411":{"position":[[435,10]]},"417":{"position":[[615,10]]},"471":{"position":[[988,10],[1211,10]]}}}],["string(14",{"_index":2089,"t":{"589":{"position":[[424,10],[832,10]]}}}],["string(15",{"_index":1725,"t":{"417":{"position":[[658,10]]},"471":{"position":[[496,10],[1249,10]]}}}],["string(16",{"_index":2303,"t":{"702":{"position":[[511,10]]}}}],["string(2",{"_index":1728,"t":{"417":{"position":[[850,9]]}}}],["string(21",{"_index":1924,"t":{"511":{"position":[[1006,10]]}}}],["string(23",{"_index":1618,"t":{"341":{"position":[[566,10]]}}}],["string(3",{"_index":1902,"t":{"511":{"position":[[333,9]]}}}],["string(4",{"_index":1809,"t":{"471":{"position":[[395,9]]},"511":{"position":[[361,9]]},"734":{"position":[[228,9]]},"820":{"position":[[598,9],[947,9],[1222,9]]}}}],["string(40",{"_index":1610,"t":{"341":{"position":[[397,10]]}}}],["string(5",{"_index":1731,"t":{"417":{"position":[[918,9]]},"471":{"position":[[461,9],[1356,9]]},"734":{"position":[[393,9]]},"820":{"position":[[466,9],[1287,9],[1339,9]]},"842":{"position":[[315,9],[346,9],[431,9],[462,9]]}}}],["string(56",{"_index":1604,"t":{"341":{"position":[[300,10]]}}}],["string(6",{"_index":1730,"t":{"417":{"position":[[872,9],[943,9]]},"471":{"position":[[1310,9]]},"589":{"position":[[394,9],[876,9]]},"734":{"position":[[470,9]]}}}],["string(7",{"_index":2087,"t":{"589":{"position":[[303,9]]},"820":{"position":[[398,9],[523,9],[647,9],[996,9]]}}}],["string(8",{"_index":2387,"t":{"734":{"position":[[261,9],[298,9],[335,9]]}}}],["string(9",{"_index":2392,"t":{"734":{"position":[[428,9]]}}}],["string.char(math.random(0",{"_index":2294,"t":{"696":{"position":[[493,26]]},"708":{"position":[[536,26]]}}}],["string.find",{"_index":964,"t":{"102":{"position":[[3187,11],[3317,11]]},"744":{"position":[[26,11]]}}}],["string.find_first_not_of",{"_index":963,"t":{"102":{"position":[[3150,24]]}}}],["string.find_first_of",{"_index":962,"t":{"102":{"position":[[3127,20]]}}}],["string.find_last_not_of",{"_index":966,"t":{"102":{"position":[[3232,23]]}}}],["string.find_last_of",{"_index":965,"t":{"102":{"position":[[3210,19]]}}}],["string.format",{"_index":969,"t":{"102":{"position":[[3369,13]]},"764":{"position":[[8,14]]}}}],["string.formatint",{"_index":938,"t":{"102":{"position":[[2476,16]]},"774":{"position":[[1046,18],[1125,16],[1250,18]]}}}],["string.fromhex",{"_index":686,"t":{"84":{"position":[[1243,14]]}}}],["string.gsub",{"_index":2427,"t":{"766":{"position":[[54,12]]}}}],["string.lfind",{"_index":967,"t":{"102":{"position":[[3292,12]]}}}],["string.low",{"_index":1004,"t":{"106":{"position":[[396,12]]},"142":{"position":[[519,12]]}}}],["string.partition(",{"_index":2460,"t":{"776":{"position":[[473,19],[656,19]]}}}],["string.replac",{"_index":752,"t":{"88":{"position":[[479,14]]},"102":{"position":[[2338,14]]}}}],["string.rfind",{"_index":954,"t":{"102":{"position":[[2966,12],[3268,12]]}}}],["string.split",{"_index":700,"t":{"84":{"position":[[1501,12]]},"146":{"position":[[8,12]]}}}],["string.split(",{"_index":2400,"t":{"742":{"position":[[285,15],[469,15],[665,15]]}}}],["string.sub",{"_index":1453,"t":{"290":{"position":[[88,11]]}}}],["string.tohex",{"_index":685,"t":{"84":{"position":[[1228,12]]}}}],["string.trunc",{"_index":930,"t":{"102":{"position":[[2316,15]]}}}],["string.uformat",{"_index":1077,"t":{"120":{"position":[[1545,14]]}}}],["string.upp",{"_index":1003,"t":{"106":{"position":[[381,12]]},"142":{"position":[[504,12]]}}}],["string|int",{"_index":1019,"t":{"112":{"position":[[768,10]]},"316":{"position":[[228,10],[338,11]]}}}],["strip",{"_index":2403,"t":{"746":{"position":[[0,6],[81,6],[114,6]]},"748":{"position":[[0,6],[85,6],[118,6]]},"750":{"position":[[0,6],[86,6],[119,6]]}}}],["struct",{"_index":1841,"t":{"477":{"position":[[27,7],[81,6],[177,6]]},"479":{"position":[[19,6],[71,6],[176,7]]},"481":{"position":[[25,7],[162,6]]},"483":{"position":[[28,6],[60,6],[96,6],[159,7]]},"485":{"position":[[41,6],[73,6],[109,6],[172,7]]}}}],["structur",{"_index":549,"t":{"60":{"position":[[377,9]]}}}],["studio",{"_index":268,"t":{"16":{"position":[[290,7]]},"56":{"position":[[80,7],[102,7]]}}}],["stupid",{"_index":360,"t":{"27":{"position":[[366,6]]},"185":{"position":[[44,6],[65,6]]}}}],["style",{"_index":1101,"t":{"130":{"position":[[149,5]]}}}],["sub",{"_index":880,"t":{"100":{"position":[[257,3]]},"561":{"position":[[130,3]]}}}],["sublim",{"_index":249,"t":{"14":{"position":[[482,7]]},"16":{"position":[[148,7]]}}}],["subsequ",{"_index":507,"t":{"46":{"position":[[624,10]]},"523":{"position":[[2140,10]]}}}],["subset",{"_index":1057,"t":{"120":{"position":[[336,6]]},"477":{"position":[[9,6]]},"481":{"position":[[9,6]]},"495":{"position":[[9,6]]}}}],["substitut",{"_index":2428,"t":{"766":{"position":[[194,10],[536,10]]}}}],["substr",{"_index":1270,"t":{"227":{"position":[[153,10]]},"433":{"position":[[48,9],[107,9],[123,9],[437,10]]},"742":{"position":[[395,9]]},"766":{"position":[[8,10],[32,10],[172,9],[223,10]]},"770":{"position":[[30,10],[78,9]]},"776":{"position":[[272,9],[349,9]]},"778":{"position":[[76,9]]},"780":{"position":[[78,9]]}}}],["subtract",{"_index":1567,"t":{"331":{"position":[[70,12]]},"389":{"position":[[9,11]]}}}],["succe",{"_index":18,"t":{"2":{"position":[[230,8]]}}}],["success",{"_index":367,"t":{"29":{"position":[[55,10]]},"333":{"position":[[50,13]]},"523":{"position":[[1475,8]]},"607":{"position":[[196,8]]},"609":{"position":[[110,8]]},"623":{"position":[[557,8]]},"696":{"position":[[313,8]]},"702":{"position":[[250,8]]},"708":{"position":[[315,8]]}}}],["successfulli",{"_index":2026,"t":{"549":{"position":[[186,12]]},"559":{"position":[[115,12]]},"723":{"position":[[264,13]]}}}],["successor",{"_index":571,"t":{"64":{"position":[[117,10]]}}}],["succinctli",{"_index":1598,"t":{"341":{"position":[[59,11]]}}}],["such",{"_index":8,"t":{"2":{"position":[[72,4]]},"14":{"position":[[161,4],[286,4],[375,4]]},"23":{"position":[[86,4]]},"62":{"position":[[229,4]]},"70":{"position":[[618,4]]},"74":{"position":[[80,4]]},"102":{"position":[[1119,4]]},"237":{"position":[[624,4]]},"300":{"position":[[310,4]]},"339":{"position":[[387,4]]},"357":{"position":[[40,4]]},"525":{"position":[[250,4]]},"704":{"position":[[102,4]]},"824":{"position":[[69,4]]}}}],["sudo",{"_index":485,"t":{"46":{"position":[[109,4],[293,4],[356,4],[372,4]]},"54":{"position":[[114,4],[151,4]]}}}],["suffix",{"_index":1038,"t":{"116":{"position":[[64,7]]},"517":{"position":[[245,7]]},"778":{"position":[[31,7],[86,6]]}}}],["sugar",{"_index":1572,"t":{"331":{"position":[[597,6]]}}}],["suggest",{"_index":1046,"t":{"118":{"position":[[9,11]]}}}],["suit",{"_index":1593,"t":{"339":{"position":[[303,6]]},"359":{"position":[[387,4]]}}}],["suitabl",{"_index":2439,"t":{"774":{"position":[[144,8]]}}}],["sum",{"_index":2497,"t":{"798":{"position":[[13,3]]}}}],["sun",{"_index":544,"t":{"60":{"position":[[19,3],[49,4],[132,3],[142,3],[319,4]]},"136":{"position":[[310,4]]}}}],["superb",{"_index":1147,"t":{"142":{"position":[[429,6]]}}}],["supercar",{"_index":40,"t":{"4":{"position":[[229,10],[275,8],[456,10]]}}}],["superset",{"_index":550,"t":{"62":{"position":[[11,8]]},"730":{"position":[[164,8]]},"732":{"position":[[203,8]]}}}],["support",{"_index":122,"t":{"8":{"position":[[811,8]]},"14":{"position":[[88,7]]},"25":{"position":[[506,7]]},"60":{"position":[[6,8]]},"88":{"position":[[532,8]]},"96":{"position":[[472,8],[1752,8]]},"102":{"position":[[599,7],[2493,9],[2573,8]]},"112":{"position":[[308,8],[428,8],[476,8],[529,8],[670,7],[741,7],[881,7]]},"120":{"position":[[1038,7]]},"122":{"position":[[22,7],[47,8]]},"124":{"position":[[22,7]]},"126":{"position":[[20,8]]},"128":{"position":[[20,8]]},"130":{"position":[[105,7]]},"154":{"position":[[139,7],[576,7]]},"227":{"position":[[37,7]]},"237":{"position":[[568,7]]},"251":{"position":[[295,8]]},"255":{"position":[[25,8]]},"257":{"position":[[67,8]]},"278":{"position":[[627,8]]},"282":{"position":[[175,7],[960,8]]},"339":{"position":[[264,8]]},"355":{"position":[[13,7],[223,7]]},"713":{"position":[[96,9]]},"715":{"position":[[94,9]]},"792":{"position":[[18,7]]}}}],["sure",{"_index":644,"t":{"76":{"position":[[449,4]]}}}],["sven",{"_index":1385,"t":{"268":{"position":[[906,4]]}}}],["swap",{"_index":1504,"t":{"302":{"position":[[667,4]]}}}],["switch",{"_index":26,"t":{"4":{"position":[[47,8]]},"8":{"position":[[201,7],[240,6],[400,7],[451,7],[508,7],[593,7]]},"10":{"position":[[125,6]]},"35":{"position":[[48,6]]},"62":{"position":[[237,6]]},"76":{"position":[[177,6]]},"88":{"position":[[263,6]]},"90":{"position":[[426,6]]},"94":{"position":[[467,6],[490,6]]},"96":{"position":[[771,6]]},"98":{"position":[[35,6]]},"100":{"position":[[140,6]]},"102":{"position":[[6,6],[64,6],[908,6],[1886,6]]},"118":{"position":[[80,6],[228,6]]},"142":{"position":[[222,6]]},"148":{"position":[[537,6],[589,6]]},"195":{"position":[[59,6],[91,6],[520,6]]},"280":{"position":[[0,6],[59,6]]},"282":{"position":[[22,6],[152,6],[218,6],[543,6],[807,6]]},"284":{"position":[[57,6],[176,6],[394,6]]},"286":{"position":[[149,6]]},"288":{"position":[[44,7],[77,6]]},"292":{"position":[[128,6]]}}}],["switch/cas",{"_index":1170,"t":{"154":{"position":[[238,11]]}}}],["symbol",{"_index":340,"t":{"25":{"position":[[244,7]]},"70":{"position":[[140,6]]},"278":{"position":[[471,7]]},"351":{"position":[[263,7]]}}}],["symlink",{"_index":2054,"t":{"565":{"position":[[179,9]]}}}],["syntact",{"_index":1165,"t":{"148":{"position":[[558,9]]},"187":{"position":[[35,13]]},"331":{"position":[[587,9]]}}}],["syntax",{"_index":59,"t":{"4":{"position":[[562,6]]},"14":{"position":[[170,6]]},"16":{"position":[[88,6],[439,6]]},"62":{"position":[[220,8]]},"102":{"position":[[53,6]]},"108":{"position":[[168,6]]},"112":{"position":[[1307,6]]},"118":{"position":[[171,6]]},"120":{"position":[[85,6],[185,6],[562,6],[611,6],[641,6],[778,6]]},"122":{"position":[[213,6]]},"142":{"position":[[275,6]]},"207":{"position":[[25,7]]},"209":{"position":[[43,6]]},"221":{"position":[[85,7]]},"237":{"position":[[586,6]]},"245":{"position":[[465,6]]},"247":{"position":[[31,7]]},"257":{"position":[[88,7]]},"261":{"position":[[122,6]]},"265":{"position":[[12,6]]},"268":{"position":[[202,7]]},"278":{"position":[[45,6]]},"284":{"position":[[162,7]]},"286":{"position":[[446,6]]},"298":{"position":[[34,6]]},"345":{"position":[[21,6]]},"349":{"position":[[17,6]]},"351":{"position":[[76,6],[89,6]]},"353":{"position":[[79,6],[92,6],[266,6]]},"357":{"position":[[117,6],[197,6]]}}}],["system",{"_index":244,"t":{"14":{"position":[[406,7]]},"29":{"position":[[530,6]]},"60":{"position":[[29,6]]},"475":{"position":[[129,7]]},"764":{"position":[[111,8]]},"810":{"position":[[139,7],[178,6]]}}}],["t",{"_index":652,"t":{"84":{"position":[[42,3]]},"162":{"position":[[41,1],[248,1]]},"164":{"position":[[41,1],[273,1]]},"166":{"position":[[254,1]]},"177":{"position":[[98,1]]},"221":{"position":[[114,1],[152,1],[279,1],[329,1]]},"227":{"position":[[381,1],[427,2],[461,2],[478,2],[512,2],[533,2],[579,2],[605,2],[670,2]]},"245":{"position":[[91,1],[252,1]]},"247":{"position":[[129,1]]},"284":{"position":[[354,1],[456,2]]},"320":{"position":[[132,1],[184,1],[356,1]]},"351":{"position":[[36,1],[172,1]]},"355":{"position":[[307,2]]},"357":{"position":[[216,1]]},"509":{"position":[[122,1]]},"511":{"position":[[160,1]]},"513":{"position":[[235,1]]},"531":{"position":[[593,1]]},"762":{"position":[[120,2]]},"824":{"position":[[92,1],[108,1],[148,1]]},"828":{"position":[[133,1]]},"830":{"position":[[80,1]]},"832":{"position":[[111,1]]},"834":{"position":[[76,1]]},"836":{"position":[[163,1]]},"842":{"position":[[112,1],[224,2]]},"850":{"position":[[278,1]]},"860":{"position":[[330,1]]},"862":{"position":[[83,1]]},"864":{"position":[[82,1]]},"868":{"position":[[102,1]]},"870":{"position":[[132,1]]},"872":{"position":[[240,1]]},"874":{"position":[[113,1]]},"876":{"position":[[252,1]]}}}],["t.age",{"_index":1203,"t":{"164":{"position":[[224,5]]},"166":{"position":[[197,5]]}}}],["t.key",{"_index":2556,"t":{"832":{"position":[[192,5]]}}}],["t.name",{"_index":1202,"t":{"164":{"position":[[205,6]]},"166":{"position":[[180,6]]}}}],["t.prop",{"_index":1016,"t":{"112":{"position":[[317,8]]}}}],["t.say(\"hello",{"_index":1322,"t":{"247":{"position":[[177,14]]}}}],["t1",{"_index":2572,"t":{"846":{"position":[[180,2]]}}}],["t:chunk(3",{"_index":2612,"t":{"872":{"position":[[300,10]]}}}],["t:clear",{"_index":2554,"t":{"830":{"position":[[135,9]]}}}],["t:concat(\"\\n",{"_index":1890,"t":{"509":{"position":[[200,14]]}}}],["t:contains(1",{"_index":1889,"t":{"509":{"position":[[186,13]]}}}],["t:countvalu",{"_index":2610,"t":{"870":{"position":[[206,15]]}}}],["t:f1",{"_index":1308,"t":{"245":{"position":[[107,9]]}}}],["t:f2",{"_index":1309,"t":{"245":{"position":[[130,9]]}}}],["t:f3",{"_index":1310,"t":{"245":{"position":[[153,9]]}}}],["t:foreach(print",{"_index":2576,"t":{"850":{"position":[[294,16]]}}}],["t:getval",{"_index":1434,"t":{"284":{"position":[[412,11],[518,13]]}}}],["t:key",{"_index":2608,"t":{"868":{"position":[[184,8]]}}}],["t:reduce(|valu",{"_index":2597,"t":{"860":{"position":[[346,16]]}}}],["t:revers",{"_index":2567,"t":{"842":{"position":[[197,11]]}}}],["t:slice(2",{"_index":2616,"t":{"876":{"position":[[300,10]]}}}],["t:slice(3",{"_index":2615,"t":{"876":{"position":[[274,10]]}}}],["t:sort",{"_index":2550,"t":{"824":{"position":[[112,11]]}}}],["t=tabl",{"_index":445,"t":{"35":{"position":[[393,8]]}}}],["t[#t",{"_index":1133,"t":{"136":{"position":[[271,4]]},"874":{"position":[[71,6]]}}}],["t['print",{"_index":443,"t":{"35":{"position":[[352,10]]}}}],["t\\t\\t\\t",{"_index":2424,"t":{"762":{"position":[[129,9]]}}}],["tab",{"_index":235,"t":{"14":{"position":[[240,3]]},"467":{"position":[[106,4]]}}}],["tabl",{"_index":58,"t":{"4":{"position":[[556,5]]},"100":{"position":[[261,6]]},"102":{"position":[[426,6],[764,6],[1599,6],[1741,5],[1749,6]]},"112":{"position":[[6,5],[67,6],[131,6],[919,5],[1149,5],[1301,5]]},"114":{"position":[[225,5]]},"116":{"position":[[35,5],[385,5]]},"120":{"position":[[308,5],[767,10],[798,6],[810,5],[926,5],[1153,5],[1335,5]]},"122":{"position":[[30,6]]},"154":{"position":[[202,5],[643,5]]},"160":{"position":[[87,6]]},"162":{"position":[[22,6]]},"164":{"position":[[22,6]]},"166":{"position":[[26,5]]},"168":{"position":[[0,5]]},"175":{"position":[[96,5],[190,5],[272,7],[520,8]]},"177":{"position":[[67,5],[193,5]]},"221":{"position":[[51,6]]},"223":{"position":[[91,6]]},"227":{"position":[[65,5],[221,7],[350,5]]},"229":{"position":[[40,5],[206,6]]},"241":{"position":[[65,6]]},"245":{"position":[[63,6],[224,6]]},"247":{"position":[[109,7]]},"251":{"position":[[36,5]]},"261":{"position":[[84,5]]},"263":{"position":[[50,5]]},"302":{"position":[[0,6],[149,6],[213,6],[294,6],[373,6],[554,6],[635,6],[904,6]]},"304":{"position":[[25,5]]},"308":{"position":[[272,6],[307,6]]},"310":{"position":[[33,5],[136,6]]},"312":{"position":[[23,6],[105,5],[312,5]]},"316":{"position":[[46,5]]},"320":{"position":[[58,6]]},"324":{"position":[[209,5]]},"357":{"position":[[111,5],[191,5]]},"417":{"position":[[66,7],[141,6],[211,7],[268,6]]},"419":{"position":[[70,7],[145,6],[215,7],[272,6]]},"435":{"position":[[309,6],[437,6]]},"443":{"position":[[102,5]]},"469":{"position":[[48,5]]},"471":{"position":[[10,5],[132,6],[610,5]]},"509":{"position":[[0,6]]},"515":{"position":[[10,5]]},"523":{"position":[[137,5],[226,5],[368,5],[1548,5]]},"531":{"position":[[75,5],[497,6]]},"533":{"position":[[174,6],[451,6],[989,8]]},"561":{"position":[[171,5]]},"589":{"position":[[82,5]]},"623":{"position":[[368,6]]},"711":{"position":[[194,7]]},"726":{"position":[[211,5]]},"742":{"position":[[160,5],[183,6]]},"818":{"position":[[46,5]]},"820":{"position":[[10,5],[744,6]]},"822":{"position":[[51,5]]},"824":{"position":[[47,5]]},"826":{"position":[[45,5],[82,6],[106,6]]},"828":{"position":[[38,6],[105,5]]},"830":{"position":[[29,6],[52,5]]},"832":{"position":[[10,5],[57,5],[92,6]]},"834":{"position":[[15,5],[48,5]]},"836":{"position":[[15,5],[58,5]]},"838":{"position":[[9,5],[68,5]]},"840":{"position":[[9,5],[72,5]]},"842":{"position":[[33,6],[56,5],[93,6]]},"844":{"position":[[48,5],[85,6],[109,6]]},"846":{"position":[[32,5],[102,6],[128,6]]},"848":{"position":[[48,5],[85,6],[109,6]]},"850":{"position":[[112,6]]},"852":{"position":[[244,6],[510,6]]},"854":{"position":[[47,5],[84,6],[108,6]]},"856":{"position":[[84,6],[271,6]]},"858":{"position":[[44,5],[81,6],[105,6]]},"860":{"position":[[30,6],[137,6]]},"862":{"position":[[41,6],[64,6]]},"864":{"position":[[40,6],[63,6]]},"866":{"position":[[99,6]]},"868":{"position":[[25,5],[60,6],[83,6]]},"870":{"position":[[26,5],[91,6],[114,5]]},"872":{"position":[[16,5],[128,6]]},"874":{"position":[[30,6],[94,6]]},"876":{"position":[[14,5],[132,6],[233,6]]},"878":{"position":[[62,6]]},"880":{"position":[[62,6]]}}}],["table'",{"_index":1719,"t":{"417":{"position":[[94,7]]},"419":{"position":[[98,7]]}}}],["table.back",{"_index":688,"t":{"84":{"position":[[1289,11]]}}}],["table.checkal",{"_index":842,"t":{"96":{"position":[[1410,14]]}}}],["table.chunk",{"_index":694,"t":{"84":{"position":[[1375,11]]}}}],["table.clear",{"_index":720,"t":{"86":{"position":[[81,11]]},"96":{"position":[[1304,11]]}}}],["table.concat(t",{"_index":1893,"t":{"509":{"position":[[270,15]]}}}],["table.contain",{"_index":984,"t":{"104":{"position":[[97,14]]},"148":{"position":[[423,14]]},"154":{"position":[[333,14]]}}}],["table.contains(t",{"_index":1892,"t":{"509":{"position":[[249,17]]}}}],["table.countvalu",{"_index":693,"t":{"84":{"position":[[1354,18]]}}}],["table.filt",{"_index":835,"t":{"96":{"position":[[1223,15]]},"102":{"position":[[2644,12]]},"854":{"position":[[19,13]]}}}],["table.find",{"_index":841,"t":{"96":{"position":[[1384,10]]}}}],["table.findindex/findkey",{"_index":687,"t":{"84":{"position":[[1264,24]]}}}],["table.freez",{"_index":1498,"t":{"302":{"position":[[403,14]]},"304":{"position":[[189,12]]},"832":{"position":[[115,19]]}}}],["table.freeze(_g",{"_index":1494,"t":{"302":{"position":[[220,16]]}}}],["table.freeze(t",{"_index":2555,"t":{"832":{"position":[[138,17]]},"834":{"position":[[83,15]]}}}],["table.insert",{"_index":1125,"t":{"134":{"position":[[110,12]]},"136":{"position":[[207,13]]}}}],["table.key",{"_index":689,"t":{"84":{"position":[[1301,11]]}}}],["table.map",{"_index":834,"t":{"96":{"position":[[1209,13]]},"102":{"position":[[2663,9]]},"858":{"position":[[19,10]]}}}],["table.max",{"_index":840,"t":{"96":{"position":[[1358,9]]}}}],["table.min",{"_index":176,"t":{"12":{"position":[[159,10]]},"96":{"position":[[1345,10]]}}}],["table.modget",{"_index":690,"t":{"84":{"position":[[1313,13]]}}}],["table.modset",{"_index":691,"t":{"84":{"position":[[1327,13]]}}}],["table.reduc",{"_index":839,"t":{"96":{"position":[[1331,13]]}}}],["table.remov",{"_index":1114,"t":{"132":{"position":[[251,14]]}}}],["table.reord",{"_index":837,"t":{"96":{"position":[[1255,16]]},"102":{"position":[[2699,13]]},"848":{"position":[[19,14]]},"852":{"position":[[166,13]]}}}],["table.revers",{"_index":836,"t":{"96":{"position":[[1239,15]]},"102":{"position":[[2679,13]]},"844":{"position":[[19,14]]}}}],["table.s",{"_index":838,"t":{"96":{"position":[[1278,10]]}}}],["table.slic",{"_index":692,"t":{"84":{"position":[[1341,12]]}}}],["table.sort",{"_index":833,"t":{"96":{"position":[[1194,14]]},"826":{"position":[[19,11]]}}}],["table.unpack(t",{"_index":1198,"t":{"162":{"position":[[193,15]]}}}],["tag",{"_index":2310,"t":{"706":{"position":[[373,4]]},"708":{"position":[[219,3],[244,3],[622,3],[785,5]]},"818":{"position":[[215,3],[244,3],[330,3]]},"820":{"position":[[388,7],[456,7],[588,7],[937,7],[1212,7],[1277,7],[1329,7]]}}}],["tail",{"_index":1699,"t":{"405":{"position":[[435,8]]},"407":{"position":[[454,8]]},"409":{"position":[[461,8]]},"411":{"position":[[573,8]]},"413":{"position":[[641,8]]},"415":{"position":[[466,8]]}}}],["tailor",{"_index":1633,"t":{"349":{"position":[[58,8]]}}}],["take",{"_index":632,"t":{"74":{"position":[[357,4]]},"100":{"position":[[622,4]]},"126":{"position":[[112,6]]},"128":{"position":[[193,6]]},"142":{"position":[[532,4]]},"237":{"position":[[317,4]]},"241":{"position":[[28,5]]},"523":{"position":[[2016,4]]},"593":{"position":[[16,5]]},"692":{"position":[[32,4]]},"698":{"position":[[30,5]]},"738":{"position":[[18,5]]},"740":{"position":[[18,5]]},"788":{"position":[[16,5]]},"850":{"position":[[211,5]]},"852":{"position":[[436,5]]},"856":{"position":[[197,5],[685,4]]}}}],["taken",{"_index":1960,"t":{"523":{"position":[[1155,5],[1207,5]]}}}],["task",{"_index":1350,"t":{"261":{"position":[[17,4]]},"290":{"position":[[425,4]]}}}],["tcp",{"_index":1972,"t":{"523":{"position":[[2066,3]]},"607":{"position":[[14,3]]},"617":{"position":[[150,4]]}}}],["tcp/80",{"_index":2191,"t":{"639":{"position":[[239,8]]}}}],["tee",{"_index":486,"t":{"46":{"position":[[114,3],[298,3]]}}}],["tell",{"_index":583,"t":{"66":{"position":[[57,5]]},"78":{"position":[[57,5]]}}}],["temporari",{"_index":1028,"t":{"112":{"position":[[1139,9]]}}}],["termux",{"_index":511,"t":{"50":{"position":[[26,6]]}}}],["ternari",{"_index":766,"t":{"90":{"position":[[403,7]]},"92":{"position":[[130,7]]},"94":{"position":[[111,7],[208,7]]},"104":{"position":[[39,7]]},"142":{"position":[[267,7]]},"154":{"position":[[151,7]]},"286":{"position":[[10,7]]},"296":{"position":[[0,7]]},"298":{"position":[[45,7]]},"300":{"position":[[336,7]]}}}],["test",{"_index":291,"t":{"18":{"position":[[47,6]]},"880":{"position":[[117,4]]}}}],["test.pluto:2",{"_index":188,"t":{"12":{"position":[[334,13],[454,13]]}}}],["test.pluto:3",{"_index":1724,"t":{"417":{"position":[[551,12]]},"423":{"position":[[316,12]]},"774":{"position":[[1088,13],[1269,13]]}}}],["test.pluto:4",{"_index":196,"t":{"12":{"position":[[484,13]]},"405":{"position":[[238,12]]},"407":{"position":[[251,12],[473,13]]},"409":{"position":[[257,12],[480,13]]},"411":{"position":[[342,12],[592,13]]},"413":{"position":[[428,12],[660,13]]},"415":{"position":[[262,12],[485,13]]},"417":{"position":[[778,12]]},"421":{"position":[[288,12]]},"425":{"position":[[301,12]]},"429":{"position":[[398,12]]},"431":{"position":[[404,12]]},"433":{"position":[[626,12],[877,12]]}}}],["test:modset(5",{"_index":2631,"t":{"880":{"position":[[136,14]]}}}],["test:modset(6",{"_index":2632,"t":{"880":{"position":[[154,14]]}}}],["text",{"_index":250,"t":{"14":{"position":[[490,4]]},"16":{"position":[[156,5]]},"158":{"position":[[134,4],[182,4],[296,4],[313,4],[324,4],[375,4]]},"523":{"position":[[1617,4]]},"569":{"position":[[281,4],[317,4],[355,5]]},"766":{"position":[[92,4]]},"818":{"position":[[311,5],[400,4]]}}}],["textmat",{"_index":281,"t":{"16":{"position":[[510,8],[591,8]]}}}],["thank",{"_index":811,"t":{"94":{"position":[[760,6]]}}}],["that'",{"_index":1496,"t":{"302":{"position":[[341,6]]}}}],["theoret",{"_index":224,"t":{"14":{"position":[[19,13]]}}}],["there'",{"_index":516,"t":{"52":{"position":[[56,7]]},"56":{"position":[[35,7]]},"195":{"position":[[20,7]]},"314":{"position":[[282,7]]}}}],["there.\":split",{"_index":1727,"t":{"417":{"position":[[709,15],[736,15]]},"419":{"position":[[554,15],[581,15]]}}}],["therefor",{"_index":1287,"t":{"235":{"position":[[55,9]]}}}],["they'll",{"_index":1573,"t":{"331":{"position":[[604,7]]}}}],["they'r",{"_index":1383,"t":{"268":{"position":[[820,7]]},"270":{"position":[[471,7]]},"329":{"position":[[39,7]]},"337":{"position":[[245,7]]}}}],["thing",{"_index":20,"t":{"2":{"position":[[259,6]]},"223":{"position":[[58,6]]}}}],["those",{"_index":64,"t":{"4":{"position":[[638,5]]},"18":{"position":[[149,6]]},"304":{"position":[[92,5]]}}}],["though",{"_index":1511,"t":{"308":{"position":[[43,7]]},"310":{"position":[[187,7]]}}}],["thread",{"_index":370,"t":{"29":{"position":[[112,7],[207,7],[1008,6]]},"579":{"position":[[97,6]]}}}],["three",{"_index":1584,"t":{"339":{"position":[[42,5]]},"517":{"position":[[11,5]]},"768":{"position":[[121,5],[332,5]]}}}],["through",{"_index":805,"t":{"94":{"position":[[459,7]]},"282":{"position":[[403,7]]},"286":{"position":[[411,8]]},"310":{"position":[[209,7]]},"329":{"position":[[93,7]]},"417":{"position":[[240,7]]},"419":{"position":[[244,7]]},"565":{"position":[[171,7]]}}}],["throw",{"_index":1151,"t":{"144":{"position":[[69,8]]},"268":{"position":[[360,5]]},"497":{"position":[[176,6]]},"599":{"position":[[161,6]]},"696":{"position":[[322,6]]},"702":{"position":[[259,6]]},"708":{"position":[[324,6]]}}}],["thrown",{"_index":1691,"t":{"405":{"position":[[107,6]]},"407":{"position":[[110,6]]},"409":{"position":[[112,6]]},"411":{"position":[[161,6]]},"413":{"position":[[245,6]]},"415":{"position":[[116,6]]},"417":{"position":[[401,6]]},"419":{"position":[[405,6]]},"421":{"position":[[138,6]]},"423":{"position":[[150,6]]},"425":{"position":[[142,6]]},"427":{"position":[[154,6]]},"429":{"position":[[217,6]]},"431":{"position":[[213,6]]},"433":{"position":[[323,6]]},"435":{"position":[[474,6]]},"463":{"position":[[60,6]]},"766":{"position":[[452,6]]},"774":{"position":[[676,7]]},"872":{"position":[[187,6]]}}}],["thu",{"_index":586,"t":{"66":{"position":[[142,4]]},"78":{"position":[[155,4]]}}}],["tick",{"_index":389,"t":{"29":{"position":[[577,5]]}}}],["time",{"_index":347,"t":{"27":{"position":[[72,4]]},"37":{"position":[[71,5]]},"70":{"position":[[60,5],[117,5],[349,4]]},"72":{"position":[[8,4],[275,4],[378,4]]},"74":{"position":[[123,4]]},"88":{"position":[[187,4]]},"96":{"position":[[740,4]]},"98":{"position":[[195,4]]},"102":{"position":[[1179,4]]},"110":{"position":[[116,4],[173,4]]},"112":{"position":[[368,4]]},"120":{"position":[[58,4],[104,4]]},"124":{"position":[[38,4]]},"126":{"position":[[37,4]]},"128":{"position":[[147,4]]},"130":{"position":[[465,4]]},"154":{"position":[[14,4],[358,4]]},"175":{"position":[[396,4]]},"177":{"position":[[56,5]]},"189":{"position":[[496,4]]},"191":{"position":[[446,4]]},"193":{"position":[[443,4]]},"201":{"position":[[61,4]]},"310":{"position":[[73,5]]},"312":{"position":[[223,5]]},"322":{"position":[[68,5]]},"326":{"position":[[60,4]]},"337":{"position":[[459,5]]},"523":{"position":[[1150,4],[1202,4]]},"573":{"position":[[33,5],[252,4],[302,4],[333,4],[370,5],[455,4]]},"581":{"position":[[37,5]]},"870":{"position":[[57,5]]}}}],["times33",{"_index":2228,"t":{"664":{"position":[[24,7]]}}}],["timestamp",{"_index":2069,"t":{"573":{"position":[[93,10]]}}}],["tip",{"_index":1643,"t":{"355":{"position":[[171,3]]}}}],["tl",{"_index":776,"t":{"90":{"position":[[636,3]]},"523":{"position":[[2074,3]]},"617":{"position":[[179,4]]},"623":{"position":[[20,3],[98,3],[649,4]]}}}],["tmbundl",{"_index":279,"t":{"16":{"position":[[482,8]]}}}],["today",{"_index":1564,"t":{"329":{"position":[[113,6]]}}}],["togeth",{"_index":1299,"t":{"237":{"position":[[525,10]]},"316":{"position":[[304,9]]},"387":{"position":[[17,9]]}}}],["toggl",{"_index":238,"t":{"14":{"position":[[294,7],[312,7]]},"112":{"position":[[189,6],[253,6]]}}}],["token",{"_index":100,"t":{"8":{"position":[[47,6]]},"112":{"position":[[169,6]]},"136":{"position":[[93,6]]},"357":{"position":[[33,6],[154,6],[267,6],[506,6]]}}}],["tokenis",{"_index":1136,"t":{"140":{"position":[[17,8]]}}}],["toler",{"_index":1540,"t":{"316":{"position":[[498,9]]}}}],["tomato",{"_index":1473,"t":{"292":{"position":[[277,8]]}}}],["tonumb",{"_index":618,"t":{"70":{"position":[[711,8]]},"856":{"position":[[534,8]]}}}],["tonumber(a",{"_index":1531,"t":{"314":{"position":[[169,11]]}}}],["tonumber(b",{"_index":1532,"t":{"314":{"position":[[183,11]]}}}],["tonumber(c",{"_index":1293,"t":{"237":{"position":[[148,11],[256,11]]}}}],["tonumber|16",{"_index":1624,"t":{"343":{"position":[[145,12]]}}}],["tool",{"_index":226,"t":{"14":{"position":[[56,8]]},"27":{"position":[[424,5]]}}}],["top",{"_index":85,"t":{"6":{"position":[[261,3]]},"223":{"position":[[401,3]]},"461":{"position":[[97,3]]},"499":{"position":[[94,3]]},"535":{"position":[[92,3]]},"543":{"position":[[90,3]]},"577":{"position":[[90,3]]},"696":{"position":[[435,3]]},"702":{"position":[[372,3]]},"708":{"position":[[446,3]]},"736":{"position":[[94,3]]},"822":{"position":[[93,3]]}}}],["tostr",{"_index":616,"t":{"70":{"position":[[692,8]]},"433":{"position":[[589,9]]}}}],["tostring(bvar",{"_index":1546,"t":{"318":{"position":[[166,15]]}}}],["total",{"_index":332,"t":{"25":{"position":[[46,7]]},"27":{"position":[[216,5]]}}}],["toward",{"_index":2025,"t":{"549":{"position":[[109,7]]},"553":{"position":[[88,6]]},"555":{"position":[[88,7]]},"557":{"position":[[88,7]]}}}],["trace",{"_index":1608,"t":{"341":{"position":[[384,5]]}}}],["traceback",{"_index":193,"t":{"12":{"position":[[414,10]]},"405":{"position":[[330,10]]},"407":{"position":[[349,10]]},"409":{"position":[[356,10]]},"411":{"position":[[468,10]]},"413":{"position":[[536,10]]},"415":{"position":[[361,10]]},"774":{"position":[[1222,10]]}}}],["tradit",{"_index":2064,"t":{"569":{"position":[[415,11]]}}}],["traffic",{"_index":2154,"t":{"623":{"position":[[102,8]]}}}],["transit",{"_index":205,"t":{"12":{"position":[[664,11]]}}}],["transport",{"_index":2134,"t":{"617":{"position":[[134,9]]},"623":{"position":[[63,9]]}}}],["tri",{"_index":32,"t":{"4":{"position":[[100,4]]},"8":{"position":[[645,4]]},"263":{"position":[[489,3]]},"292":{"position":[[375,3]]},"294":{"position":[[80,4]]},"296":{"position":[[211,3]]},"302":{"position":[[657,6]]},"312":{"position":[[393,3]]},"497":{"position":[[193,3]]}}}],["trigger",{"_index":799,"t":{"94":{"position":[[250,10]]}}}],["trim",{"_index":2404,"t":{"746":{"position":[[10,5]]},"748":{"position":[[10,5]]},"750":{"position":[[10,5]]}}}],["true",{"_index":383,"t":{"29":{"position":[[414,4],[486,4]]},"33":{"position":[[216,5]]},"74":{"position":[[164,4]]},"96":{"position":[[2129,4]]},"148":{"position":[[507,4]]},"263":{"position":[[235,4],[305,4],[356,4],[479,4]]},"282":{"position":[[766,5]]},"284":{"position":[[64,4],[106,6]]},"300":{"position":[[12,4],[138,4]]},"318":{"position":[[117,4]]},"337":{"position":[[562,4]]},"339":{"position":[[482,4],[506,4]]},"363":{"position":[[132,5]]},"369":{"position":[[131,5]]},"407":{"position":[[22,5],[74,5],[133,4],[316,4]]},"409":{"position":[[345,4]]},"503":{"position":[[77,4]]},"523":{"position":[[768,5]]},"531":{"position":[[272,6],[388,6]]},"533":{"position":[[701,5],[897,5],[1261,5]]},"623":{"position":[[549,4]]},"631":{"position":[[215,4]]},"633":{"position":[[154,4]]},"639":{"position":[[75,5]]},"679":{"position":[[107,5],[343,5]]},"681":{"position":[[109,5],[373,5]]},"683":{"position":[[109,5]]},"685":{"position":[[109,5]]},"687":{"position":[[112,5]]},"723":{"position":[[1085,4]]},"752":{"position":[[155,4]]},"754":{"position":[[156,4]]},"756":{"position":[[157,4]]},"758":{"position":[[156,4]]},"760":{"position":[[162,4]]},"762":{"position":[[173,4]]},"768":{"position":[[611,6]]},"770":{"position":[[170,4]]},"772":{"position":[[216,4]]},"776":{"position":[[681,5]]},"778":{"position":[[176,4]]},"780":{"position":[[180,4]]},"782":{"position":[[336,6],[378,6]]},"794":{"position":[[158,4]]},"818":{"position":[[351,6]]},"834":{"position":[[127,5]]},"866":{"position":[[56,4]]}}}],["true):concat",{"_index":2592,"t":{"856":{"position":[[454,14]]}}}],["true):reorder():concat",{"_index":2583,"t":{"852":{"position":[[676,24]]}}}],["truncat",{"_index":1396,"t":{"270":{"position":[[436,8]]},"768":{"position":[[0,9],[101,10],[222,9],[258,9],[380,10],[430,9]]}}}],["truthi",{"_index":1581,"t":{"337":{"position":[[143,6],[337,6]]},"413":{"position":[[24,8],[116,7],[170,7],[268,7]]}}}],["trxvv4l94u0tcfo19vytv6t4boh/mla6kfucaweaaqjanctrfzwpgd99wxkm6ufq",{"_index":2333,"t":{"713":{"position":[[519,64]]},"715":{"position":[[296,64]]}}}],["try...catch",{"_index":895,"t":{"102":{"position":[[121,11]]}}}],["try/catch",{"_index":795,"t":{"94":{"position":[[9,9]]}}}],["try_get_fruit_rating(fruit",{"_index":1476,"t":{"292":{"position":[[347,27]]}}}],["turn",{"_index":605,"t":{"70":{"position":[[400,5]]},"195":{"position":[[474,4]]},"595":{"position":[[30,4]]},"856":{"position":[[555,4]]}}}],["tweak",{"_index":1127,"t":{"134":{"position":[[172,6]]}}}],["two",{"_index":132,"t":{"8":{"position":[[1258,3]]},"74":{"position":[[308,3]]},"272":{"position":[[12,3]]},"282":{"position":[[109,6],[624,6],[685,4]]},"387":{"position":[[5,3]]},"389":{"position":[[24,3]]},"391":{"position":[[27,3]]},"393":{"position":[[21,3],[42,3]]},"395":{"position":[[21,3]]},"397":{"position":[[20,3]]},"399":{"position":[[28,3]]},"706":{"position":[[322,3]]},"711":{"position":[[190,3]]},"772":{"position":[[9,3]]},"776":{"position":[[257,3]]}}}],["type",{"_index":210,"t":{"12":{"position":[[765,4],[910,4]]},"14":{"position":[[219,4]]},"54":{"position":[[476,5]]},"62":{"position":[[326,4]]},"88":{"position":[[356,4],[392,4]]},"102":{"position":[[1290,5],[2000,5]]},"104":{"position":[[170,5]]},"112":{"position":[[485,4],[727,4]]},"116":{"position":[[41,5]]},"120":{"position":[[1371,4],[1405,4],[1462,4],[1492,4]]},"134":{"position":[[60,4]]},"148":{"position":[[287,4]]},"175":{"position":[[328,4]]},"179":{"position":[[24,4],[71,5],[81,4],[174,4],[188,5],[250,4]]},"189":{"position":[[428,4]]},"191":{"position":[[378,4]]},"193":{"position":[[375,4]]},"201":{"position":[[26,4]]},"203":{"position":[[164,4],[272,4],[466,5]]},"237":{"position":[[632,4]]},"239":{"position":[[347,4]]},"314":{"position":[[0,4],[262,4]]},"316":{"position":[[74,4],[117,6]]},"324":{"position":[[28,5],[215,6]]},"339":{"position":[[254,4]]},"435":{"position":[[126,4],[167,4],[335,5],[569,4]]},"477":{"position":[[88,4]]},"479":{"position":[[26,4],[78,4]]},"483":{"position":[[35,5],[67,4]]},"485":{"position":[[48,5],[80,4]]},"487":{"position":[[47,4]]},"491":{"position":[[51,5]]},"493":{"position":[[57,5],[79,5]]},"523":{"position":[[403,6]]},"533":{"position":[[27,6],[116,5],[645,4],[807,4]]},"818":{"position":[[274,8]]},"820":{"position":[[512,8]]}}}],["type(",{"_index":1865,"t":{"491":{"position":[[195,8]]}}}],["type=\"primari",{"_index":2542,"t":{"818":{"position":[[380,15]]},"820":{"position":[[296,15]]}}}],["typo",{"_index":1229,"t":{"187":{"position":[[155,5]]}}}],["u16",{"_index":1860,"t":{"491":{"position":[[105,6],[252,6]]},"493":{"position":[[133,6]]}}}],["u32",{"_index":1861,"t":{"491":{"position":[[112,6],[259,6]]},"493":{"position":[[140,6]]}}}],["u64",{"_index":1862,"t":{"491":{"position":[[119,6],[266,6]]},"493":{"position":[[147,6]]}}}],["u8",{"_index":1859,"t":{"491":{"position":[[99,5],[246,5]]},"493":{"position":[[127,5]]}}}],["ub",{"_index":792,"t":{"92":{"position":[[322,2]]},"94":{"position":[[676,2]]},"128":{"position":[[226,2]]}}}],["ubuntu",{"_index":508,"t":{"46":{"position":[[663,6]]}}}],["uez/si52jgp8+xk2x7coix5/tdmxcglp5utuajk2+q",{"_index":2338,"t":{"713":{"position":[[844,44]]},"715":{"position":[[621,44]]}}}],["ugli",{"_index":1307,"t":{"245":{"position":[[34,4]]}}}],["uh",{"_index":1426,"t":{"282":{"position":[[694,2]]}}}],["uint8_t",{"_index":1844,"t":{"477":{"position":[[192,7],[203,7],[214,7]]},"481":{"position":[[177,7],[188,7],[199,7]]}}}],["un1g04+cwg8wxydpslj4po/hstqsitgykycrur+m3ae6yplyucrvhc/0j4m3dew81adzvda6tvkc/ht8edyefw",{"_index":2361,"t":{"723":{"position":[[932,88]]}}}],["unannot",{"_index":818,"t":{"96":{"position":[[176,12]]},"195":{"position":[[213,12]]}}}],["unari",{"_index":789,"t":{"92":{"position":[[224,5]]},"124":{"position":[[63,5],[83,5]]},"128":{"position":[[29,5],[48,5]]},"774":{"position":[[293,5]]},"796":{"position":[[57,5]]}}}],["unauthent",{"_index":2274,"t":{"692":{"position":[[6,15]]},"698":{"position":[[5,15]]}}}],["unavail",{"_index":1360,"t":{"263":{"position":[[660,11]]},"637":{"position":[[186,12]]}}}],["unchang",{"_index":863,"t":{"96":{"position":[[2155,10]]},"106":{"position":[[159,9]]}}}],["under",{"_index":79,"t":{"6":{"position":[[176,5]]},"48":{"position":[[37,5]]},"50":{"position":[[57,5]]},"263":{"position":[[672,5]]},"308":{"position":[[19,5]]},"764":{"position":[[50,5]]},"766":{"position":[[459,5]]}}}],["underli",{"_index":2270,"t":{"690":{"position":[[87,10]]}}}],["underscor",{"_index":1401,"t":{"274":{"position":[[12,11],[150,11]]}}}],["understand",{"_index":1757,"t":{"435":{"position":[[111,10],[152,10]]}}}],["unexpect",{"_index":177,"t":{"12":{"position":[[183,10]]},"90":{"position":[[535,10]]},"104":{"position":[[6,10]]},"134":{"position":[[141,10]]}}}],["unexpectedli",{"_index":760,"t":{"90":{"position":[[179,12]]}}}],["unfamiliar",{"_index":602,"t":{"70":{"position":[[325,10]]}}}],["unfinish",{"_index":1099,"t":{"128":{"position":[[243,10]]}}}],["unicod",{"_index":1794,"t":{"459":{"position":[[38,7]]}}}],["uniniti",{"_index":802,"t":{"94":{"position":[[328,13],[522,13]]}}}],["unintuit",{"_index":2018,"t":{"537":{"position":[[180,12]]}}}],["uniqu",{"_index":2277,"t":{"692":{"position":[[74,6]]}}}],["unit",{"_index":2509,"t":{"808":{"position":[[41,4]]}}}],["univers",{"_index":1650,"t":{"359":{"position":[[32,9]]}}}],["unix",{"_index":2070,"t":{"573":{"position":[[278,4]]},"583":{"position":[[22,4]]}}}],["unknown",{"_index":1123,"t":{"134":{"position":[[52,7]]},"505":{"position":[[119,10]]}}}],["unless",{"_index":1944,"t":{"523":{"position":[[560,6]]}}}],["unlik",{"_index":1421,"t":{"278":{"position":[[658,6]]}}}],["unpack",{"_index":1903,"t":{"511":{"position":[[395,10]]}}}],["unpad",{"_index":2308,"t":{"706":{"position":[[93,8]]},"708":{"position":[[361,9]]}}}],["unpredict",{"_index":2278,"t":{"692":{"position":[[85,13]]}}}],["unreach",{"_index":798,"t":{"94":{"position":[[233,11]]},"102":{"position":[[1825,11]]},"108":{"position":[[56,12]]},"142":{"position":[[161,11]]},"181":{"position":[[155,11],[172,12]]}}}],["unreason",{"_index":1365,"t":{"268":{"position":[[99,12]]}}}],["until",{"_index":886,"t":{"100":{"position":[[341,7]]},"597":{"position":[[90,5]]},"599":{"position":[[106,5]]},"637":{"position":[[47,5]]}}}],["unwant",{"_index":877,"t":{"100":{"position":[[173,8]]},"195":{"position":[[192,8]]}}}],["up",{"_index":47,"t":{"4":{"position":[[328,2]]},"74":{"position":[[362,2]]},"310":{"position":[[284,2]]},"312":{"position":[[362,2]]},"591":{"position":[[72,2]]},"611":{"position":[[98,2]]},"776":{"position":[[446,4],[555,5],[629,4],[743,6]]},"788":{"position":[[22,2]]},"810":{"position":[[98,2],[175,2],[198,2],[257,3],[280,3],[391,3],[404,2],[477,3],[567,3],[671,3],[773,3],[875,3],[965,3]]},"812":{"position":[[182,3]]},"814":{"position":[[169,3],[182,2],[273,3],[393,3]]}}}],["updat",{"_index":499,"t":{"46":{"position":[[365,6]]},"94":{"position":[[828,6]]},"102":{"position":[[741,7],[2958,7]]},"106":{"position":[[0,7]]},"130":{"position":[[181,7]]},"140":{"position":[[0,7]]},"856":{"position":[[134,7]]},"860":{"position":[[187,7]]},"880":{"position":[[0,7]]}}}],["upgrad",{"_index":1079,"t":{"120":{"position":[[1611,9]]}}}],["upon",{"_index":1256,"t":{"211":{"position":[[83,4]]}}}],["upper",{"_index":2466,"t":{"782":{"position":[[199,5]]}}}],["uppercas",{"_index":2419,"t":{"758":{"position":[[43,9],[201,9]]}}}],["upvalu",{"_index":804,"t":{"94":{"position":[[398,8]]},"114":{"position":[[147,7]]}}}],["upward",{"_index":1550,"t":{"322":{"position":[[152,7]]}}}],["urgent",{"_index":2116,"t":{"603":{"position":[[399,7]]}}}],["url",{"_index":928,"t":{"102":{"position":[[2212,3]]},"341":{"position":[[556,7]]},"523":{"position":[[42,3],[203,5],[276,3]]},"525":{"position":[[140,3]]},"730":{"position":[[10,3],[80,3]]},"732":{"position":[[28,3],[109,3]]},"734":{"position":[[9,3],[57,3],[90,3]]}}}],["url.pars",{"_index":850,"t":{"96":{"position":[[1691,9]]}}}],["us",{"_index":10,"t":{"2":{"position":[[99,4],[168,4]]},"4":{"position":[[155,4],[331,5],[388,4],[630,4]]},"8":{"position":[[83,5],[702,3],[922,3],[1189,4],[1240,3],[1589,4]]},"10":{"position":[[15,5]]},"12":{"position":[[747,3]]},"14":{"position":[[36,4]]},"23":{"position":[[120,4],[508,3]]},"25":{"position":[[188,4]]},"39":{"position":[[51,3],[122,5]]},"52":{"position":[[204,3]]},"60":{"position":[[91,3],[224,3]]},"70":{"position":[[126,5]]},"74":{"position":[[111,3]]},"76":{"position":[[49,4],[165,4]]},"80":{"position":[[16,3]]},"84":{"position":[[414,5],[640,4],[916,4],[1596,4]]},"90":{"position":[[30,4],[232,5],[598,4]]},"96":{"position":[[418,4],[526,4],[567,4],[614,4],[2459,5]]},"100":{"position":[[358,5]]},"102":{"position":[[1103,3],[1249,4],[1878,4]]},"104":{"position":[[31,5]]},"112":{"position":[[613,3],[806,4],[994,4],[1129,4],[1281,4]]},"118":{"position":[[31,5],[212,4],[241,5]]},"120":{"position":[[1142,3],[1905,5]]},"136":{"position":[[107,4],[304,5]]},"140":{"position":[[126,3]]},"142":{"position":[[242,3]]},"146":{"position":[[86,4]]},"162":{"position":[[133,5]]},"164":{"position":[[148,5]]},"166":{"position":[[126,5]]},"168":{"position":[[27,4],[85,5]]},"175":{"position":[[380,3]]},"185":{"position":[[307,5]]},"189":{"position":[[302,3],[480,3]]},"191":{"position":[[240,3],[265,3],[430,3]]},"193":{"position":[[427,3]]},"195":{"position":[[440,4]]},"203":{"position":[[492,4]]},"209":{"position":[[53,5]]},"215":{"position":[[16,3]]},"217":{"position":[[35,4],[148,4]]},"221":{"position":[[66,3],[459,5]]},"225":{"position":[[16,3]]},"227":{"position":[[213,4]]},"231":{"position":[[41,3],[362,3]]},"233":{"position":[[8,3],[70,3]]},"237":{"position":[[451,5]]},"245":{"position":[[440,3]]},"247":{"position":[[47,3]]},"253":{"position":[[47,4]]},"257":{"position":[[390,3]]},"263":{"position":[[31,4],[381,4]]},"268":{"position":[[723,3],[781,4]]},"270":{"position":[[64,3],[483,4]]},"282":{"position":[[434,3],[997,3]]},"284":{"position":[[22,4]]},"288":{"position":[[16,3]]},"290":{"position":[[82,5]]},"294":{"position":[[16,3]]},"300":{"position":[[322,5]]},"304":{"position":[[149,3]]},"316":{"position":[[192,3]]},"326":{"position":[[48,3]]},"331":{"position":[[259,4],[290,4],[350,4],[384,4]]},"335":{"position":[[647,3]]},"357":{"position":[[20,3],[493,3]]},"359":{"position":[[22,4],[74,4]]},"379":{"position":[[66,3]]},"435":{"position":[[57,5],[588,4]]},"471":{"position":[[654,4]]},"475":{"position":[[580,4]]},"487":{"position":[[21,4]]},"493":{"position":[[41,5]]},"497":{"position":[[131,4]]},"523":{"position":[[335,4],[814,6],[1073,6],[1404,6],[2093,3]]},"525":{"position":[[222,5]]},"531":{"position":[[786,4]]},"569":{"position":[[402,3]]},"589":{"position":[[648,4]]},"591":{"position":[[53,4]]},"595":{"position":[[22,4]]},"601":{"position":[[53,4]]},"623":{"position":[[643,5]]},"637":{"position":[[117,4]]},"644":{"position":[[14,5]]},"646":{"position":[[14,5]]},"648":{"position":[[14,5]]},"650":{"position":[[14,5]]},"652":{"position":[[14,5]]},"654":{"position":[[14,5]]},"656":{"position":[[14,5]]},"658":{"position":[[14,5]]},"660":{"position":[[14,5]]},"662":{"position":[[14,5]]},"664":{"position":[[14,5]]},"666":{"position":[[14,5]]},"668":{"position":[[14,5]]},"670":{"position":[[14,5]]},"672":{"position":[[14,5]]},"674":{"position":[[14,5]]},"676":{"position":[[14,5]]},"679":{"position":[[14,5]]},"681":{"position":[[14,5]]},"683":{"position":[[14,5]]},"685":{"position":[[14,5]]},"687":{"position":[[14,5]]},"711":{"position":[[307,4]]},"713":{"position":[[77,4]]},"715":{"position":[[75,4]]},"717":{"position":[[159,4],[190,4]]},"719":{"position":[[160,4]]},"721":{"position":[[97,4]]},"774":{"position":[[482,4]]},"782":{"position":[[138,5]]},"796":{"position":[[49,3]]},"810":{"position":[[188,5]]},"820":{"position":[[111,3],[726,4],[849,3]]},"852":{"position":[[160,5]]},"856":{"position":[[526,3],[708,4]]},"876":{"position":[[97,4]]}}}],["usabl",{"_index":788,"t":{"92":{"position":[[210,6]]},"102":{"position":[[649,6]]}}}],["usag",{"_index":659,"t":{"84":{"position":[[372,5]]},"120":{"position":[[627,5]]},"189":{"position":[[198,5]]},"193":{"position":[[176,5]]},"209":{"position":[[14,5]]},"268":{"position":[[216,5],[440,5]]},"339":{"position":[[314,5]]},"347":{"position":[[102,5]]},"774":{"position":[[684,5]]}}}],["user",{"_index":66,"t":{"6":{"position":[[5,5],[285,6]]},"29":{"position":[[134,5],[946,4],[976,5]]},"48":{"position":[[21,4]]},"84":{"position":[[451,4]]},"102":{"position":[[2538,4]]},"116":{"position":[[107,4]]},"304":{"position":[[213,5]]},"341":{"position":[[283,6]]},"355":{"position":[[187,6]]},"473":{"position":[[68,6]]},"734":{"position":[[250,8]]}}}],["user'",{"_index":1377,"t":{"268":{"position":[[534,6]]}}}],["user_data",{"_index":1171,"t":{"154":{"position":[[267,9]]}}}],["userconfig",{"_index":1376,"t":{"268":{"position":[[463,10]]}}}],["userconfig.colors?.pref",{"_index":1380,"t":{"268":{"position":[[632,28]]}}}],["userdata",{"_index":1537,"t":{"316":{"position":[[52,8]]}}}],["usernam",{"_index":2388,"t":{"734":{"position":[[271,11]]}}}],["usr/share/keyrings/calam",{"_index":487,"t":{"46":{"position":[[118,28]]}}}],["usual",{"_index":371,"t":{"29":{"position":[[120,7]]},"637":{"position":[[129,6]]}}}],["utf",{"_index":1094,"t":{"126":{"position":[[119,3]]},"128":{"position":[[200,3]]}}}],["utf8.cod",{"_index":1115,"t":{"132":{"position":[[266,12]]}}}],["utonumb",{"_index":619,"t":{"70":{"position":[[720,9]]},"120":{"position":[[1521,10]]}}}],["utostr",{"_index":617,"t":{"70":{"position":[[701,9]]},"120":{"position":[[1532,10]]}}}],["v",{"_index":524,"t":{"54":{"position":[[88,2]]},"211":{"position":[[174,1],[206,2]]},"355":{"position":[[283,2]]},"762":{"position":[[123,2]]},"850":{"position":[[228,3],[259,6]]},"852":{"position":[[453,3],[484,6],[567,1],[662,2],[673,2]]},"856":{"position":[[214,3],[245,6],[343,1],[441,2],[451,2]]},"878":{"position":[[168,1]]}}}],["v3",{"_index":2527,"t":{"812":{"position":[[102,2]]}}}],["v3(0",{"_index":2529,"t":{"812":{"position":[[158,5]]}}}],["v3(0):lookat(new",{"_index":2528,"t":{"812":{"position":[[141,16]]}}}],["valid",{"_index":157,"t":{"10":{"position":[[203,6]]},"102":{"position":[[815,5]]},"148":{"position":[[164,5]]},"189":{"position":[[51,5]]},"191":{"position":[[44,5]]},"268":{"position":[[833,5]]},"513":{"position":[[32,5]]},"623":{"position":[[500,5]]},"704":{"position":[[68,9]]},"723":{"position":[[254,9]]},"774":{"position":[[1181,5]]}}}],["valu",{"_index":217,"t":{"12":{"position":[[882,6]]},"35":{"position":[[38,5],[55,5]]},"66":{"position":[[130,5]]},"72":{"position":[[392,5]]},"78":{"position":[[143,5]]},"86":{"position":[[156,6]]},"88":{"position":[[554,5]]},"94":{"position":[[278,6],[627,6]]},"96":{"position":[[2109,5]]},"102":{"position":[[780,6],[1072,6],[1331,5]]},"112":{"position":[[466,5]]},"120":{"position":[[697,10]]},"124":{"position":[[317,6]]},"126":{"position":[[74,5]]},"128":{"position":[[69,5]]},"130":{"position":[[23,6]]},"158":{"position":[[76,6]]},"162":{"position":[[95,5]]},"177":{"position":[[119,5],[136,5],[224,5],[286,5]]},"179":{"position":[[297,6]]},"199":{"position":[[31,5],[228,5]]},"211":{"position":[[285,10]]},"221":{"position":[[39,6],[157,5],[320,5]]},"227":{"position":[[258,7],[330,7],[362,6],[403,7],[539,7],[554,5],[645,5]]},"239":{"position":[[84,5],[220,5]]},"261":{"position":[[62,5]]},"270":{"position":[[461,6]]},"278":{"position":[[137,5],[306,5]]},"282":{"position":[[12,5],[29,5],[208,5],[225,5],[533,5],[550,5],[797,5],[814,5]]},"284":{"position":[[183,5]]},"286":{"position":[[72,7],[519,5]]},"300":{"position":[[166,6]]},"302":{"position":[[505,6],[583,8],[676,5],[736,5]]},"308":{"position":[[373,6]]},"310":{"position":[[181,5]]},"318":{"position":[[40,6],[74,7]]},"320":{"position":[[175,5],[200,6],[399,5],[430,6]]},"335":{"position":[[54,6]]},"337":{"position":[[150,6],[190,6],[344,6],[384,6]]},"339":{"position":[[105,6],[367,6],[438,6]]},"341":{"position":[[827,6]]},"345":{"position":[[152,5]]},"379":{"position":[[112,5]]},"405":{"position":[[13,5],[38,5],[50,5],[121,5],[295,6],[315,6]]},"407":{"position":[[13,5],[40,5],[52,5],[120,5],[309,6],[330,6]]},"409":{"position":[[13,5],[41,5],[53,5],[122,5],[316,6],[338,6]]},"411":{"position":[[13,5],[32,6],[55,5],[90,5],[102,5],[171,5],[399,6],[428,6]]},"413":{"position":[[13,5],[33,6],[83,5],[136,5],[148,5],[255,5],[283,5],[486,6],[519,6]]},"415":{"position":[[13,5],[43,5],[55,5],[126,5],[320,6],[344,6]]},"417":{"position":[[337,6],[364,6],[608,6],[651,6],[835,6],[903,6]]},"419":{"position":[[341,6],[368,6]]},"469":{"position":[[148,7],[175,6],[213,5],[240,5]]},"471":{"position":[[268,5],[291,5],[343,9],[372,7],[484,9],[518,7],[697,5],[746,5]]},"493":{"position":[[17,5],[233,6]]},"495":{"position":[[25,6]]},"511":{"position":[[34,6],[86,5],[141,6]]},"513":{"position":[[71,5],[129,5]]},"531":{"position":[[723,5],[811,7]]},"533":{"position":[[263,6],[373,6]]},"545":{"position":[[87,7]]},"547":{"position":[[87,7]]},"658":{"position":[[111,5]]},"660":{"position":[[114,5]]},"711":{"position":[[149,6],[320,7]]},"766":{"position":[[314,5]]},"800":{"position":[[12,5],[42,6]]},"802":{"position":[[12,5],[43,6]]},"806":{"position":[[64,6]]},"810":{"position":[[248,6]]},"832":{"position":[[200,7]]},"836":{"position":[[193,7],[262,8]]},"838":{"position":[[45,6]]},"842":{"position":[[156,7],[325,8],[441,8]]},"850":{"position":[[253,5]]},"852":{"position":[[137,5],[478,5]]},"856":{"position":[[26,6],[142,7],[239,5]]},"860":{"position":[[10,5],[220,5],[379,5]]},"862":{"position":[[21,5]]},"864":{"position":[[20,5]]},"870":{"position":[[14,5],[65,5],[177,7],[196,7],[263,9]]},"872":{"position":[[41,6]]},"880":{"position":[[91,5]]}}}],["value(",{"_index":454,"t":{"35":{"position":[[599,8]]}}}],["value1",{"_index":1718,"t":{"417":{"position":[[13,6],[318,6],[411,6]]},"419":{"position":[[13,6],[322,6],[415,6]]},"421":{"position":[[13,6],[53,6],[148,6]]},"423":{"position":[[13,6],[65,6],[160,6]]},"425":{"position":[[13,6],[56,6],[152,6]]},"427":{"position":[[13,6],[68,6],[164,6]]},"868":{"position":[[119,9]]}}}],["value2",{"_index":885,"t":{"100":{"position":[[328,6]]},"417":{"position":[[32,7],[344,6],[433,7]]},"419":{"position":[[36,7],[348,6],[433,7]]},"421":{"position":[[33,7],[80,6],[172,7]]},"423":{"position":[[45,7],[92,6],[196,7]]},"425":{"position":[[36,7],[83,6],[179,7]]},"427":{"position":[[48,7],[95,6],[203,7]]},"868":{"position":[[140,9]]}}}],["var",{"_index":887,"t":{"100":{"position":[[416,3]]},"102":{"position":[[1442,3],[1756,3],[1848,3]]},"173":{"position":[[94,3],[111,3],[185,4],[208,3],[290,5]]},"179":{"position":[[107,4],[123,3],[208,3],[244,5]]},"203":{"position":[[313,3],[352,3],[369,3],[410,3]]},"205":{"position":[[139,3],[189,3]]},"314":{"position":[[42,4]]}}}],["vararg",{"_index":438,"t":{"35":{"position":[[246,7]]},"100":{"position":[[445,6]]},"120":{"position":[[251,7],[293,7]]},"183":{"position":[[58,6]]},"241":{"position":[[34,7],[241,8]]}}}],["varargprep",{"_index":435,"t":{"35":{"position":[[217,10]]}}}],["variabl",{"_index":144,"t":{"8":{"position":[[1625,8]]},"72":{"position":[[22,9],[253,8],[342,8]]},"94":{"position":[[342,9],[536,9]]},"96":{"position":[[823,8]]},"98":{"position":[[6,8]]},"100":{"position":[[366,8]]},"102":{"position":[[883,9],[1307,9]]},"112":{"position":[[703,8]]},"124":{"position":[[52,10]]},"126":{"position":[[51,9]]},"132":{"position":[[209,8]]},"142":{"position":[[246,10]]},"154":{"position":[[782,8]]},"160":{"position":[[46,9]]},"162":{"position":[[104,9]]},"164":{"position":[[122,8]]},"166":{"position":[[101,10]]},"175":{"position":[[74,9]]},"179":{"position":[[165,8]]},"191":{"position":[[22,8]]},"217":{"position":[[69,10]]},"253":{"position":[[77,9]]},"257":{"position":[[588,8]]},"302":{"position":[[881,8]]},"308":{"position":[[107,8],[163,8],[214,9]]},"326":{"position":[[199,9]]},"357":{"position":[[437,8]]},"537":{"position":[[118,8]]}}}],["variant",{"_index":155,"t":{"10":{"position":[[179,8]]},"96":{"position":[[1163,8]]},"373":{"position":[[41,7]]},"545":{"position":[[2,7]]},"547":{"position":[[2,7]]},"826":{"position":[[8,7]]},"844":{"position":[[8,7]]},"848":{"position":[[8,7]]},"854":{"position":[[8,7]]},"858":{"position":[[8,7]]}}}],["variou",{"_index":289,"t":{"18":{"position":[[32,7]]},"54":{"position":[[468,7]]},"124":{"position":[[407,7]]},"142":{"position":[[98,7]]},"154":{"position":[[100,7]]}}}],["vast",{"_index":15,"t":{"2":{"position":[[200,4]]}}}],["vastli",{"_index":1128,"t":{"136":{"position":[[34,6]]}}}],["vec",{"_index":2491,"t":{"796":{"position":[[125,3]]},"798":{"position":[[55,3]]},"800":{"position":[[61,3]]},"802":{"position":[[62,3]]}}}],["vector",{"_index":2490,"t":{"796":{"position":[[26,7]]},"808":{"position":[[46,6]]},"810":{"position":[[19,6],[70,7]]},"812":{"position":[[19,6],[69,6]]},"814":{"position":[[20,6],[70,7]]}}}],["vector3",{"_index":929,"t":{"102":{"position":[[2270,7]]},"788":{"position":[[53,7],[97,10],[320,7]]},"792":{"position":[[0,7],[85,7],[170,7]]},"794":{"position":[[0,7],[74,7]]},"804":{"position":[[34,7],[76,7]]},"806":{"position":[[14,7],[83,7],[127,8]]},"808":{"position":[[14,7],[77,7]]},"810":{"position":[[313,7],[498,8]]},"814":{"position":[[90,7],[429,8]]}}}],["vector3(0",{"_index":2479,"t":{"788":{"position":[[112,10]]},"792":{"position":[[274,10],[304,10]]},"808":{"position":[[121,10]]},"810":{"position":[[357,10],[442,10],[841,10],[930,10]]},"814":{"position":[[237,10],[357,10]]}}}],["vector3(0.0",{"_index":2511,"t":{"808":{"position":[[156,12]]},"810":{"position":[[603,12],[706,12],[809,12],[899,12],[990,12]]},"814":{"position":[[188,12]]}}}],["vector3(1",{"_index":2480,"t":{"788":{"position":[[139,11],[155,10],[182,10],[201,10],[228,10],[250,10],[382,10]]},"792":{"position":[[214,10]]},"794":{"position":[[173,10]]},"806":{"position":[[157,10]]},"810":{"position":[[532,10],[636,10],[738,10]]}}}],["vector3(1):dot(new",{"_index":2507,"t":{"804":{"position":[[120,18]]}}}],["vector3(1.0",{"_index":2535,"t":{"814":{"position":[[308,12]]}}}],["vector3(2",{"_index":2482,"t":{"792":{"position":[[231,11]]},"794":{"position":[[118,10],[142,11],[197,11]]},"804":{"position":[[139,12]]}}}],["vector3(3",{"_index":2483,"t":{"792":{"position":[[247,10]]}}}],["vector3(90",{"_index":2530,"t":{"814":{"position":[[134,11]]}}}],["vector3(90.0",{"_index":2519,"t":{"810":{"position":[[410,13]]},"812":{"position":[[218,13]]}}}],["vehicl",{"_index":51,"t":{"4":{"position":[[423,7]]}}}],["vendor",{"_index":1058,"t":{"120":{"position":[[358,8]]}}}],["veri",{"_index":396,"t":{"29":{"position":[[794,4]]},"316":{"position":[[440,4]]}}}],["verif",{"_index":778,"t":{"90":{"position":[[645,12]]}}}],["verifi",{"_index":2362,"t":{"723":{"position":[[1024,6]]}}}],["version",{"_index":108,"t":{"8":{"position":[[285,7],[357,8],[942,7],[1204,8],[1478,8]]},"64":{"position":[[22,7]]},"102":{"position":[[415,10]]},"106":{"position":[[124,8]]},"112":{"position":[[159,7]]},"156":{"position":[[8,8]]},"185":{"position":[[193,8]]},"203":{"position":[[97,7]]},"223":{"position":[[119,7],[182,7],[192,8],[240,7],[471,7]]},"231":{"position":[[137,7],[199,7],[207,11],[256,7],[312,7]]},"233":{"position":[[176,7],[238,7],[246,11],[288,7],[344,7]]},"335":{"position":[[390,7]]},"501":{"position":[[46,7]]},"517":{"position":[[37,7],[220,8]]},"644":{"position":[[26,7]]}}}],["vfunc",{"_index":1301,"t":{"241":{"position":[[125,10]]}}}],["vfunc(\"hello",{"_index":1303,"t":{"241":{"position":[[195,14],[347,14]]}}}],["vfunc(...arg",{"_index":1304,"t":{"241":{"position":[[294,14]]}}}],["via",{"_index":96,"t":{"6":{"position":[[481,3]]},"44":{"position":[[40,3]]},"46":{"position":[[29,3]]},"54":{"position":[[110,3]]},"72":{"position":[[47,3]]},"96":{"position":[[423,3],[1851,3]]},"102":{"position":[[1634,3]]},"112":{"position":[[1217,3]]},"361":{"position":[[17,3]]},"367":{"position":[[17,3]]},"377":{"position":[[17,3]]},"403":{"position":[[17,3]]},"437":{"position":[[17,3]]},"467":{"position":[[28,3]]},"473":{"position":[[17,3]]},"521":{"position":[[17,3]]},"523":{"position":[[710,3],[862,3]]},"529":{"position":[[17,3]]},"585":{"position":[[30,3]]},"591":{"position":[[32,3]]},"603":{"position":[[206,4]]},"605":{"position":[[17,3]]},"641":{"position":[[17,3]]},"728":{"position":[[17,3]]},"786":{"position":[[17,3]]},"816":{"position":[[17,3]]}}}],["viabl",{"_index":1059,"t":{"120":{"position":[[442,6]]}}}],["violat",{"_index":1085,"t":{"122":{"position":[[239,9]]},"128":{"position":[[300,9]]}}}],["virtual",{"_index":513,"t":{"52":{"position":[[21,9]]},"310":{"position":[[235,7]]},"312":{"position":[[331,7]]},"320":{"position":[[8,7]]}}}],["virtualterminallevel",{"_index":1647,"t":{"355":{"position":[[286,20]]}}}],["visit",{"_index":2193,"t":{"639":{"position":[[282,5]]}}}],["visual",{"_index":267,"t":{"16":{"position":[[283,6]]},"56":{"position":[[73,6],[95,6]]}}}],["vital",{"_index":344,"t":{"25":{"position":[[403,5]]}}}],["vkmap",{"_index":1065,"t":{"120":{"position":[[718,9]]},"211":{"position":[[306,8]]}}}],["vm",{"_index":413,"t":{"31":{"position":[[100,3]]},"33":{"position":[[0,2],[168,2],[263,2]]},"86":{"position":[[306,2]]},"116":{"position":[[423,2]]},"142":{"position":[[395,2]]},"152":{"position":[[6,2]]}}}],["void",{"_index":1076,"t":{"120":{"position":[[1455,6]]},"316":{"position":[[61,4]]},"491":{"position":[[64,7],[211,7]]},"493":{"position":[[92,7]]}}}],["vs",{"_index":252,"t":{"14":{"position":[[514,2]]},"16":{"position":[[49,2]]}}}],["vsix",{"_index":274,"t":{"16":{"position":[[392,4]]}}}],["vulner",{"_index":912,"t":{"102":{"position":[[1489,10]]}}}],["w",{"_index":1159,"t":{"148":{"position":[[203,3]]},"519":{"position":[[84,1]]}}}],["w:strip",{"_index":1937,"t":{"519":{"position":[[130,11]]}}}],["wait",{"_index":1958,"t":{"523":{"position":[[1016,8],[1216,4]]},"637":{"position":[[39,7],[311,5],[326,7]]}}}],["walru",{"_index":787,"t":{"92":{"position":[[178,6],[280,6]]},"94":{"position":[[640,6]]},"138":{"position":[[64,6]]},"140":{"position":[[137,6]]},"142":{"position":[[11,6]]},"337":{"position":[[4,6]]}}}],["want",{"_index":358,"t":{"27":{"position":[[350,4]]},"74":{"position":[[34,4]]},"96":{"position":[[2574,4]]},"221":{"position":[[14,4]]},"223":{"position":[[69,4]]},"231":{"position":[[72,4]]},"241":{"position":[[50,4]]},"270":{"position":[[18,4]]},"282":{"position":[[464,4]]},"326":{"position":[[108,5]]},"509":{"position":[[473,4]]},"852":{"position":[[187,4],[358,4]]}}}],["warn",{"_index":740,"t":{"88":{"position":[[22,7],[150,7],[370,7]]},"90":{"position":[[8,7]]},"96":{"position":[[134,7],[202,7],[270,7],[299,7]]},"98":{"position":[[23,8]]},"100":{"position":[[197,7],[427,7]]},"102":{"position":[[1204,9],[1220,7],[1420,7],[1678,8],[1859,7],[1992,7],[2006,8]]},"108":{"position":[[75,7]]},"112":{"position":[[515,9],[574,8]]},"124":{"position":[[330,7]]},"132":{"position":[[25,7],[96,8]]},"134":{"position":[[76,7]]},"142":{"position":[[151,9],[294,8]]},"148":{"position":[[313,9]]},"154":{"position":[[19,8],[116,7]]},"170":{"position":[[31,8]]},"173":{"position":[[148,8]]},"175":{"position":[[126,8],[320,7]]},"177":{"position":[[174,8]]},"179":{"position":[[156,8]]},"181":{"position":[[146,8]]},"183":{"position":[[150,8]]},"185":{"position":[[135,8]]},"187":{"position":[[108,8]]},"189":{"position":[[168,8],[420,7]]},"191":{"position":[[124,8],[370,7]]},"193":{"position":[[145,8],[367,7]]},"195":{"position":[[174,8],[387,7],[493,8]]},"197":{"position":[[158,8]]},"199":{"position":[[201,8]]},"201":{"position":[[18,7]]},"203":{"position":[[0,8],[156,7],[204,8],[264,7],[516,8]]},"205":{"position":[[11,8]]},"219":{"position":[[57,7],[160,8]]},"239":{"position":[[47,7],[193,8],[457,7]]},"314":{"position":[[241,7]]},"519":{"position":[[49,8],[148,10]]}}}],["warn(\"bad",{"_index":1935,"t":{"519":{"position":[[100,13]]}}}],["wasm",{"_index":464,"t":{"39":{"position":[[128,5]]},"90":{"position":[[701,4]]},"505":{"position":[[79,7]]},"523":{"position":[[618,4],[917,4],[1268,4],[1584,4],[1721,4],[1837,4],[2397,6]]},"525":{"position":[[96,4]]},"527":{"position":[[123,4]]},"605":{"position":[[63,4]]}}}],["way",{"_index":149,"t":{"10":{"position":[[8,3]]},"29":{"position":[[993,3]]},"39":{"position":[[12,3]]},"160":{"position":[[26,3]]},"162":{"position":[[157,5],[167,3],[220,3]]},"164":{"position":[[172,5],[182,3],[241,3]]},"166":{"position":[[150,5],[160,3],[214,3]]},"237":{"position":[[38,3],[78,3],[198,3]]},"249":{"position":[[19,3]]},"270":{"position":[[123,3],[189,3]]},"292":{"position":[[32,3]]},"318":{"position":[[189,3],[227,3]]},"324":{"position":[[73,3],[135,3]]},"337":{"position":[[489,3],[546,3]]},"339":{"position":[[48,3]]},"517":{"position":[[17,3]]},"527":{"position":[[88,4]]},"537":{"position":[[103,4]]},"744":{"position":[[47,4]]},"878":{"position":[[188,4]]}}}],["wcall",{"_index":948,"t":{"102":{"position":[[2811,5]]},"519":{"position":[[88,8]]}}}],["we'd",{"_index":1204,"t":{"166":{"position":[[54,4]]}}}],["we'v",{"_index":296,"t":{"18":{"position":[[124,5]]}}}],["weakest",{"_index":2300,"t":{"698":{"position":[[76,8]]}}}],["well",{"_index":502,"t":{"46":{"position":[[475,4],[655,4]]},"48":{"position":[[138,4]]},"116":{"position":[[410,4]]},"276":{"position":[[168,5]]},"339":{"position":[[298,4]]}}}],["wget",{"_index":480,"t":{"46":{"position":[[49,4]]}}}],["what'",{"_index":1563,"t":{"329":{"position":[[68,6]]},"417":{"position":[[116,6]]},"419":{"position":[[120,6]]},"776":{"position":[[439,6],[548,6],[622,6],[718,8]]}}}],["whenev",{"_index":1425,"t":{"282":{"position":[[444,8]]},"310":{"position":[[103,8]]}}}],["whether",{"_index":1660,"t":{"363":{"position":[[87,7]]},"369":{"position":[[86,7]]},"373":{"position":[[151,7]]},"531":{"position":[[109,7]]},"561":{"position":[[104,7]]},"768":{"position":[[297,7]]},"774":{"position":[[364,7]]},"776":{"position":[[161,7]]},"818":{"position":[[89,7]]}}}],["white",{"_index":1780,"t":{"443":{"position":[[442,6]]},"459":{"position":[[32,5],[103,8]]},"471":{"position":[[1146,5],[1366,8]]}}}],["whitespac",{"_index":2416,"t":{"754":{"position":[[171,10]]},"756":{"position":[[172,10]]},"758":{"position":[[171,10]]},"760":{"position":[[177,10]]},"762":{"position":[[46,10]]}}}],["width",{"_index":1761,"t":{"439":{"position":[[43,6]]},"451":{"position":[[68,6]]}}}],["window",{"_index":468,"t":{"41":{"position":[[45,8]]},"86":{"position":[[67,7]]},"112":{"position":[[1082,7]]},"126":{"position":[[142,7],[225,7]]},"355":{"position":[[179,7]]},"475":{"position":[[459,8],[670,9]]},"495":{"position":[[199,9],[465,9]]},"505":{"position":[[68,10]]}}}],["wip",{"_index":1538,"t":{"316":{"position":[[418,3]]}}}],["wish",{"_index":67,"t":{"6":{"position":[[15,4]]},"54":{"position":[[420,5]]},"60":{"position":[[216,4]]},"766":{"position":[[287,4]]}}}],["within",{"_index":380,"t":{"29":{"position":[[331,6]]},"56":{"position":[[88,6]]},"76":{"position":[[389,6]]},"92":{"position":[[217,6]]},"120":{"position":[[1146,6]]},"138":{"position":[[93,6]]},"140":{"position":[[153,6]]},"304":{"position":[[36,6]]},"433":{"position":[[69,6]]},"561":{"position":[[19,6]]}}}],["without",{"_index":345,"t":{"25":{"position":[[498,7]]},"66":{"position":[[265,7]]},"78":{"position":[[291,7]]},"102":{"position":[[1145,7],[1254,7],[2611,7]]},"112":{"position":[[458,7],[507,7],[566,7]]},"120":{"position":[[936,7]]},"122":{"position":[[129,7]]},"197":{"position":[[76,7]]},"219":{"position":[[100,7]]},"320":{"position":[[65,7]]},"619":{"position":[[22,7]]},"820":{"position":[[202,7]]}}}],["won't",{"_index":329,"t":{"23":{"position":[[578,5]]},"308":{"position":[[246,5]]}}}],["word",{"_index":1110,"t":{"132":{"position":[[9,7]]}}}],["work",{"_index":330,"t":{"23":{"position":[[584,5]]},"46":{"position":[[612,4]]},"92":{"position":[[119,7]]},"94":{"position":[[426,7]]},"102":{"position":[[697,5],[897,7],[937,7],[3551,5]]},"108":{"position":[[143,7]]},"110":{"position":[[31,7]]},"114":{"position":[[83,7],[135,7]]},"116":{"position":[[25,5]]},"130":{"position":[[230,7]]},"138":{"position":[[85,7]]},"235":{"position":[[70,5]]},"284":{"position":[[540,5]]},"286":{"position":[[459,6]]},"314":{"position":[[78,5]]},"324":{"position":[[199,5]]},"339":{"position":[[239,5]]},"475":{"position":[[170,6]]},"537":{"position":[[169,6]]},"569":{"position":[[136,5]]},"573":{"position":[[147,5]]},"575":{"position":[[23,7],[84,7],[146,5],[241,7]]},"832":{"position":[[177,4]]}}}],["worl",{"_index":2436,"t":{"770":{"position":[[157,8]]}}}],["world",{"_index":598,"t":{"70":{"position":[[227,8],[274,8],[466,8],[530,7]]},"221":{"position":[[138,7],[215,5],[303,7]]},"227":{"position":[[195,7]]},"290":{"position":[[323,6]]},"302":{"position":[[830,6]]},"314":{"position":[[63,6]]},"320":{"position":[[156,7],[380,7]]},"333":{"position":[[102,8],[214,8]]},"335":{"position":[[343,8],[363,6],[602,8],[622,6],[837,8],[857,6]]},"369":{"position":[[204,9]]},"371":{"position":[[172,6]]},"373":{"position":[[273,9]]},"375":{"position":[[187,6]]},"411":{"position":[[311,8],[454,7]]},"413":{"position":[[367,8]]},"415":{"position":[[201,8]]},"417":{"position":[[501,8],[518,10],[634,7],[677,9]]},"419":{"position":[[502,8],[516,8]]},"435":{"position":[[670,7]]},"471":{"position":[[907,6],[1007,8]]},"531":{"position":[[240,7],[291,7],[322,8],[420,8]]},"533":{"position":[[665,7]]},"611":{"position":[[400,7]]},"621":{"position":[[344,5]]},"623":{"position":[[1415,7]]},"644":{"position":[[173,6]]},"646":{"position":[[156,6]]},"648":{"position":[[213,6]]},"650":{"position":[[156,6]]},"652":{"position":[[157,6]]},"654":{"position":[[214,6]]},"656":{"position":[[213,6]]},"658":{"position":[[272,6]]},"662":{"position":[[159,6]]},"664":{"position":[[216,6]]},"666":{"position":[[216,6]]},"668":{"position":[[216,6]]},"670":{"position":[[217,6]]},"672":{"position":[[161,6]]},"674":{"position":[[161,6]]},"676":{"position":[[166,6]]},"696":{"position":[[560,7],[725,6]]},"702":{"position":[[421,7],[612,6]]},"708":{"position":[[603,7],[802,6]]},"742":{"position":[[254,6],[320,9],[506,9],[634,6],[703,9]]},"746":{"position":[[196,9],[246,5]]},"748":{"position":[[200,9],[251,8]]},"750":{"position":[[201,9],[255,5]]},"766":{"position":[[591,8],[622,6],[658,8],[692,6],[728,8],[767,6],[803,8],[832,6]]},"768":{"position":[[484,8],[509,6],[546,8],[599,8]]},"770":{"position":[[125,6]]},"772":{"position":[[149,6],[174,6]]},"776":{"position":[[432,6],[540,7],[615,6],[711,6]]},"778":{"position":[[130,6],[162,9]]},"780":{"position":[[132,6]]},"842":{"position":[[132,8],[356,8],[472,8]]},"872":{"position":[[290,7],[340,7]]}}}],["world\"):contains(\"world",{"_index":1555,"t":{"324":{"position":[[97,26]]}}}],["world\":contains(\"world",{"_index":1558,"t":{"324":{"position":[[158,25]]}}}],["worth",{"_index":392,"t":{"29":{"position":[[715,5]]}}}],["wrap",{"_index":1623,"t":{"341":{"position":[[867,8]]},"611":{"position":[[28,5]]},"878":{"position":[[33,4]]},"880":{"position":[[33,4]]}}}],["wrapper",{"_index":1855,"t":{"491":{"position":[[19,8],[327,7]]},"597":{"position":[[24,7]]}}}],["write",{"_index":117,"t":{"8":{"position":[[660,7]]},"37":{"position":[[51,7]]},"39":{"position":[[31,7],[55,5]]},"68":{"position":[[68,5]]},"158":{"position":[[167,7],[360,7]]},"203":{"position":[[213,5]]},"237":{"position":[[45,7]]},"270":{"position":[[97,7]]},"573":{"position":[[246,5],[449,5]]}}}],["write(\"hello",{"_index":1194,"t":{"158":{"position":[[197,15],[390,15]]}}}],["write(text",{"_index":1192,"t":{"158":{"position":[[117,10],[281,11]]}}}],["written",{"_index":1384,"t":{"268":{"position":[[895,7]]},"341":{"position":[[666,7]]}}}],["wrong",{"_index":736,"t":{"86":{"position":[[400,5]]},"100":{"position":[[380,5],[472,5]]},"124":{"position":[[264,5]]},"435":{"position":[[563,5]]}}}],["wrote",{"_index":147,"t":{"8":{"position":[[1686,5]]}}}],["x",{"_index":1330,"t":{"249":{"position":[[408,6]]},"300":{"position":[[185,1],[192,1],[196,2],[216,2],[238,1]]},"322":{"position":[[87,1],[97,1],[101,1],[103,1],[113,1],[117,1],[119,1],[129,1]]},"341":{"position":[[375,3]]},"359":{"position":[[139,1],[148,1]]},"445":{"position":[[91,1]]},"447":{"position":[[91,1]]},"537":{"position":[[72,1],[93,2]]},"798":{"position":[[24,2]]},"840":{"position":[[276,1]]},"866":{"position":[[198,1],[296,1]]}}}],["x.new",{"_index":1331,"t":{"249":{"position":[[436,11]]}}}],["x8d\\xad\\x5f\\x6a\\x7d\\xd2\\xdc\\xd8\\xc3\\x5e\\xc2\\xfd\\x7b\\xab\\xb4\\x99\\xbc\\xad\\x60\\xd2\\x7d\\x73\\xfe\\x73\\xec\\xa2\\xce\\x02\\x5d\\xfd\\x3b\\x47",{"_index":2258,"t":{"681":{"position":[[382,131]]}}}],["xbc\\xe8\\xc9\\xac\\xa4\\x12\\x07\\x76\\xfa\\xd6\\xb5\\x17\\x87\\x4a\\xa0\\x9c\\x46\\x40\\x54\\x54",{"_index":2254,"t":{"679":{"position":[[352,83]]}}}],["xmelia",{"_index":1519,"t":{"308":{"position":[[458,6]]}}}],["xmiliah",{"_index":812,"t":{"94":{"position":[[770,8]]}}}],["xml",{"_index":828,"t":{"96":{"position":[[988,5]]},"818":{"position":[[20,4],[75,4],[134,4],[170,3]]},"820":{"position":[[33,3],[66,3],[148,5],[174,4],[226,3],[1124,3]]}}}],["xml.decod",{"_index":2545,"t":{"820":{"position":[[265,13]]}}}],["xor",{"_index":814,"t":{"96":{"position":[[64,3]]},"331":{"position":[[209,4]]}}}],["xpcall",{"_index":1465,"t":{"292":{"position":[[68,7]]}}}],["xyz",{"_index":2475,"t":{"784":{"position":[[127,3],[163,3]]}}}],["y",{"_index":1785,"t":{"445":{"position":[[109,1]]},"447":{"position":[[109,1]]},"798":{"position":[[27,1]]},"810":{"position":[[173,1],[255,1],[389,1],[565,1],[669,1],[873,1],[963,1]]},"812":{"position":[[171,5],[180,1]]},"814":{"position":[[167,1],[271,1],[391,1]]}}}],["yaw",{"_index":2517,"t":{"810":{"position":[[268,4],[297,3]]}}}],["yield",{"_index":375,"t":{"29":{"position":[[161,5],[494,7]]},"465":{"position":[[0,6],[109,5]]},"523":{"position":[[1804,7],[1904,6]]},"525":{"position":[[341,6]]},"527":{"position":[[222,6]]},"601":{"position":[[96,7],[217,5]]},"607":{"position":[[282,7]]},"617":{"position":[[328,5]]},"623":{"position":[[728,7]]},"637":{"position":[[340,8]]},"639":{"position":[[135,6]]}}}],["yieldfunc",{"_index":2096,"t":{"599":{"position":[[96,9]]},"601":{"position":[[0,9]]}}}],["you'd",{"_index":1300,"t":{"241":{"position":[[72,5]]},"268":{"position":[[85,5]]}}}],["you'll",{"_index":1317,"t":{"245":{"position":[[425,6]]}}}],["you'r",{"_index":601,"t":{"70":{"position":[[318,6]]},"304":{"position":[[133,6]]},"308":{"position":[[380,6]]},"694":{"position":[[150,6]]},"696":{"position":[[151,6]]},"700":{"position":[[118,6]]},"702":{"position":[[85,6]]},"717":{"position":[[110,6]]},"719":{"position":[[111,6]]}}}],["yourself",{"_index":1358,"t":{"263":{"position":[[496,9]]},"296":{"position":[[218,9]]}}}],["z",{"_index":2498,"t":{"798":{"position":[[33,1]]},"810":{"position":[[278,1],[475,1],[771,1]]}}}],["zero",{"_index":663,"t":{"84":{"position":[[520,4]]},"658":{"position":[[151,5]]},"660":{"position":[[154,5]]},"766":{"position":[[516,5],[550,5]]},"872":{"position":[[222,5]]}}}],["zlib",{"_index":2367,"t":{"726":{"position":[[111,4]]}}}]],"pipeline":["stemmer"]}}] \ No newline at end of file diff --git a/search.html b/search.html index a240d15f..147ebec4 100644 --- a/search.html +++ b/search.html @@ -4,13 +4,13 @@ Search the documentation - +

Search the documentation

- + \ No newline at end of file