@datagrok/sequence-translator 1.3.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +1 -1
- package/CHANGELOG.md +18 -0
- package/dist/package-test.js +1 -2
- package/dist/package-test.js.map +1 -1
- package/dist/package.js +1 -1
- package/dist/package.js.map +1 -1
- package/files/monomers-sample/README.md +12 -0
- package/files/polytool-rules/rules_example.json +34 -0
- package/files/samples/bulk-translation-axolabs.csv +6 -0
- package/files/tests/README.md +2 -0
- package/files/tests/axolabs1.csv +2 -0
- package/package.json +23 -13
- package/src/apps/common/model/data-loader/const.ts +1 -2
- package/src/apps/common/model/data-loader/json-loader.ts +22 -31
- package/src/apps/common/model/monomer-lib/lib-wrapper.ts +13 -19
- package/src/apps/common/model/oligo-toolkit-package.ts +80 -13
- package/src/apps/common/model/parsing-validation/format-detector.ts +9 -6
- package/src/apps/common/model/parsing-validation/format-handler.ts +16 -13
- package/src/apps/common/model/parsing-validation/sequence-validator.ts +8 -3
- package/src/apps/common/view/combined-app-ui.ts +12 -10
- package/src/apps/common/view/components/colored-input/input-painters.ts +4 -3
- package/src/apps/common/view/monomer-lib-viewer.ts +2 -1
- package/src/apps/common/view/utils.ts +5 -4
- package/src/apps/pattern/model/data-manager.ts +9 -6
- package/src/apps/pattern/model/translator.ts +8 -10
- package/src/apps/pattern/model/utils.ts +0 -1
- package/src/apps/pattern/view/components/strand-editor/strand-controls.ts +0 -1
- package/src/apps/pattern/view/components/translation-examples-block.ts +2 -1
- package/src/apps/pattern/view/svg-utils/utils.ts +6 -4
- package/src/apps/pattern/view/ui.ts +4 -1
- package/src/apps/structure/model/monomer-code-parser.ts +15 -5
- package/src/apps/structure/model/oligo-structure.ts +17 -16
- package/src/apps/structure/model/sequence-to-molfile.ts +2 -1
- package/src/apps/structure/view/ui.ts +19 -11
- package/src/apps/translator/model/conversion-utils.ts +16 -11
- package/src/apps/translator/model/format-converter.ts +15 -5
- package/src/apps/translator/view/ui.ts +32 -20
- package/src/demo/demo-st-ui.ts +2 -2
- package/src/package-test.ts +9 -2
- package/src/package.ts +18 -17
- package/src/plugins/mermade.ts +11 -8
- package/src/polytool/pt-rules.ts +1 -1
- package/src/tests/const.ts +7 -5
- package/src/tests/files-tests.ts +75 -0
- package/src/tests/formats-support.ts +12 -11
- package/src/tests/formats-to-helm.ts +12 -19
- package/src/tests/helm-to-nucleotides.ts +12 -6
- package/src/tests/utils.ts +20 -0
- package/src/types.ts +18 -0
- package/dist/package-test.js.LICENSE.txt +0 -8
- /package/files/{codes-to-symbols.json → monomers-sample/codes-to-symbols.json} +0 -0
- /package/files/{formats-to-helm.json → monomers-sample/formats-to-helm.json} +0 -0
- /package/files/{linkers.json → monomers-sample/linkers.json} +0 -0
- /package/files/{monomer-lib.json → monomers-sample/monomer-lib.json} +0 -0
- /package/files/{pattern-app-data.json → monomers-sample/pattern-app-data.json} +0 -0
package/dist/package.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! For license information please see package.js.LICENSE.txt */
|
|
2
|
-
var sequencetranslator;(()=>{var t={415:(t,e,n)=>{"use strict";n.d(e,{cb:()=>o}),n(328);var r=n(82);n(982),r.DataFrame.fromCsv('countries,fasta,smiles,molregno,LON,Zip Code,Street Address Line 1,ImageUrl,user_id,error_message,xray,flag,magnitude,CS-id,pdb_id,accel_a,time_offset,chart,fit,Questions,empty_number,empty_string\nBelgium,MSNFHNEHVMQFYRNNLKTKGVFGRQ,CC(C(=O)OCCCc1cccnc1)c2cccc(c2)C(=O)c3ccccc3,1480014,36.276729583740234,995042300,14016 ROUTE 31W,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,1,1,1QBS,1,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.497360340644872, 1.7058694986686864, 5.278052678195135, 0.16000320889028383],""points"":[{""x"":0.10000000149011612,""y"":2.374499797821045},{""x"":0.6000000238418579,""y"":2.6242473125457764},{""x"":1.100000023841858,""y"":2.367267608642578},{""x"":1.600000023841858,""y"":2.6723148822784424},{""x"":2.0999999046325684,""y"":2.6537344455718994},{""x"":2.5999999046325684,""y"":2.3651671409606934},{""x"":3.0999999046325684,""y"":2.5654284954071045},{""x"":3.5999999046325684,""y"":2.4160959720611572},{""x"":4.099999904632568,""y"":2.286726713180542},{""x"":4.599999904632568,""y"":2.5100042819976807},{""x"":5.099999904632568,""y"":1.6676985025405884},{""x"":5.599999904632568,""y"":0.680136501789093},{""x"":6.099999904632568,""y"":0.3391543924808502},{""x"":6.599999904632568,""y"":0.09038983285427094},{""x"":7.099999904632568,""y"":0.19802775979042053}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[7.525235855508179, 1.3186911876809984, 5.335672608564294, 0.7860743343958098],""points"":[{""x"":0.10000000149011612,""y"":7.988070487976074},{""x"":0.6000000238418579,""y"":7.018453121185303},{""x"":1.100000023841858,""y"":8.115279197692871},{""x"":1.600000023841858,""y"":7.486658096313477},{""x"":2.0999999046325684,""y"":7.396438121795654},{""x"":2.5999999046325684,""y"":7.477052211761475},{""x"":3.0999999046325684,""y"":6.913095474243164},{""x"":3.5999999046325684,""y"":8.01385498046875},{""x"":4.099999904632568,""y"":6.985900402069092},{""x"":4.599999904632568,""y"":6.970335960388184},{""x"":5.099999904632568,""y"":5.448817253112793},{""x"":5.599999904632568,""y"":2.5534818172454834},{""x"":6.099999904632568,""y"":1.893947958946228},{""x"":6.599999904632568,""y"":0.6340042352676392},{""x"":7.099999904632568,""y"":0.8403874039649963}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,100,abc\nBurundi,MDYKETLLMPKTDFPMRGGLPNKEPQIQEKW,COc1ccc2cc(ccc2c1)C(C)C(=O)Oc3ccc(C)cc3OC,1480015,36.276729583740234,995073444,80 STATE HIGHWAY 310,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,2,2,1ZP8,2,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[4.431460753103398, 2.1691498799246745, 5.266445597102774, 0.7825762827017926],""points"":[{""x"":0.10000000149011612,""y"":4.751083850860596},{""x"":0.6000000238418579,""y"":4.203000068664551},{""x"":1.100000023841858,""y"":4.415858745574951},{""x"":1.600000023841858,""y"":4.68414306640625},{""x"":2.0999999046325684,""y"":4.198400974273682},{""x"":2.5999999046325684,""y"":4.179222106933594},{""x"":3.0999999046325684,""y"":4.638473987579346},{""x"":3.5999999046325684,""y"":4.708553314208984},{""x"":4.099999904632568,""y"":4.291589260101318},{""x"":4.599999904632568,""y"":4.038082599639893},{""x"":5.099999904632568,""y"":3.4349939823150635},{""x"":5.599999904632568,""y"":1.2194708585739136},{""x"":6.099999904632568,""y"":1.1920831203460693},{""x"":6.599999904632568,""y"":0.5352635979652405},{""x"":7.099999904632568,""y"":0.3346920311450958}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[2.339458017970126, -1.0734184310171178, 4.746332950550934, 0.2482416857595658],""points"":[{""x"":0.10000000149011612,""y"":0.2139337658882141},{""x"":0.6000000238418579,""y"":0.4269562065601349},{""x"":1.100000023841858,""y"":0.2441573292016983},{""x"":1.600000023841858,""y"":0.146635964512825},{""x"":2.0999999046325684,""y"":0.08818462491035461},{""x"":2.5999999046325684,""y"":0.2560656666755676},{""x"":3.0999999046325684,""y"":0.42434045672416687},{""x"":3.5999999046325684,""y"":0.37111231684684753},{""x"":4.099999904632568,""y"":0.5581737160682678},{""x"":4.599999904632568,""y"":1.183590054512024},{""x"":5.099999904632568,""y"":1.5629843473434448},{""x"":5.599999904632568,""y"":2.3211288452148438},{""x"":6.099999904632568,""y"":2.229961633682251},{""x"":6.599999904632568,""y"":2.2560226917266846},{""x"":7.099999904632568,""y"":2.2142398357391357}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCameroon,MIEVFLFGIVLGLIPITLAGLFVTAYLQYRRGDQLDL,COc1ccc2cc(ccc2c1)C(C)C(=O)OCCCc3cccnc3,1480016,36.26095962524414,995153596,30-56 WHITESTONE EXPY,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,3,3,2BDJ,3,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[4.6760652578642325, 0.9046956320756703, 5.651408971856738, 0.07738846012184185],""points"":[{""x"":0.10000000149011612,""y"":4.32425594329834},{""x"":0.6000000238418579,""y"":4.668442249298096},{""x"":1.100000023841858,""y"":4.379785060882568},{""x"":1.600000023841858,""y"":5.0345139503479},{""x"":2.0999999046325684,""y"":4.878653526306152},{""x"":2.5999999046325684,""y"":4.3451313972473145},{""x"":3.0999999046325684,""y"":4.336992263793945},{""x"":3.5999999046325684,""y"":5.037430286407471},{""x"":4.099999904632568,""y"":5.0092692375183105},{""x"":4.599999904632568,""y"":4.151902675628662},{""x"":5.099999904632568,""y"":3.4066951274871826},{""x"":5.599999904632568,""y"":2.3732759952545166},{""x"":6.099999904632568,""y"":1.673728108406067},{""x"":6.599999904632568,""y"":0.48574790358543396},{""x"":7.099999904632568,""y"":0.2783052325248718}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[2.938395863010111, -1.4658480661392117, 5.462702751996584, 0.3473139023615039],""points"":[{""x"":0.10000000149011612,""y"":0.4941710829734802},{""x"":0.6000000238418579,""y"":0.15323974192142487},{""x"":1.100000023841858,""y"":0.46373432874679565},{""x"":1.600000023841858,""y"":0.3370431363582611},{""x"":2.0999999046325684,""y"":0.5179030299186707},{""x"":2.5999999046325684,""y"":0.27899765968322754},{""x"":3.0999999046325684,""y"":0.22075064480304718},{""x"":3.5999999046325684,""y"":0.5789918899536133},{""x"":4.099999904632568,""y"":0.21169911324977875},{""x"":4.599999904632568,""y"":0.27857646346092224},{""x"":5.099999904632568,""y"":1.0906332731246948},{""x"":5.599999904632568,""y"":1.8520300388336182},{""x"":6.099999904632568,""y"":2.7177059650421143},{""x"":6.599999904632568,""y"":2.8680918216705322},{""x"":7.099999904632568,""y"":3.2413077354431152}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCanada,MMELVLKTIIGPIVVGVVLRIVDKWLNKDK,CC(C(=O)NCCS)c1cccc(c1)C(=O)c2ccccc2,1480017,36.26095962524414,99515,30-56 WHITESTONE EXPY,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,4,4,1IAN,4,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[0.8597390975430008, 1.0957625732481946, 5.260537067987958, 0.07974187998177736],""points"":[{""x"":0.10000000149011612,""y"":0.8190152645111084},{""x"":0.6000000238418579,""y"":0.8421689867973328},{""x"":1.100000023841858,""y"":0.8740922212600708},{""x"":1.600000023841858,""y"":0.8924275040626526},{""x"":2.0999999046325684,""y"":0.8249067664146423},{""x"":2.5999999046325684,""y"":0.9327669143676758},{""x"":3.0999999046325684,""y"":0.8522974252700806},{""x"":3.5999999046325684,""y"":0.8174492716789246},{""x"":4.099999904632568,""y"":0.8394647240638733},{""x"":4.599999904632568,""y"":0.7139387726783752},{""x"":5.099999904632568,""y"":0.5561167597770691},{""x"":5.599999904632568,""y"":0.3276226818561554},{""x"":6.099999904632568,""y"":0.12479474395513535},{""x"":6.599999904632568,""y"":0.13006797432899475},{""x"":7.099999904632568,""y"":0.059702079743146896}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.760930219582546, 1.6591793293833013, 4.667155929720851, 0.7858109544121652],""points"":[{""x"":0.10000000149011612,""y"":6.156993389129639},{""x"":0.6000000238418579,""y"":5.236701965332031},{""x"":1.100000023841858,""y"":6.010560512542725},{""x"":1.600000023841858,""y"":5.495512962341309},{""x"":2.0999999046325684,""y"":6.087770462036133},{""x"":2.5999999046325684,""y"":5.79986572265625},{""x"":3.0999999046325684,""y"":5.597546577453613},{""x"":3.5999999046325684,""y"":5.520902156829834},{""x"":4.099999904632568,""y"":5.360654354095459},{""x"":4.599999904632568,""y"":3.5539746284484863},{""x"":5.099999904632568,""y"":1.577236294746399},{""x"":5.599999904632568,""y"":1.0001264810562134},{""x"":6.099999904632568,""y"":0.9305797815322876},{""x"":6.599999904632568,""y"":0.6033638715744019},{""x"":7.099999904632568,""y"":0.4203685522079468}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nColombia,MDRTDEVSNHTHDKPTLTWFEEIFEEYHSPFHN,FC(F)(F)c1ccc(OC2CCNCC2)cc1,1480029,36.3309440612793,995152050,1 COURT HOUSE SQUARE,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,5,5,4UJ1,5,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[6.4995088314153655, 2.4270351004539914, 5.178659535348579, 0.625653346241577],""points"":[{""x"":0.10000000149011612,""y"":6.496231555938721},{""x"":0.6000000238418579,""y"":6.42543363571167},{""x"":1.100000023841858,""y"":7.040063858032227},{""x"":1.600000023841858,""y"":6.1115403175354},{""x"":2.0999999046325684,""y"":6.680728435516357},{""x"":2.5999999046325684,""y"":6.406774520874023},{""x"":3.0999999046325684,""y"":6.611269474029541},{""x"":3.5999999046325684,""y"":5.889094352722168},{""x"":4.099999904632568,""y"":6.75344705581665},{""x"":4.599999904632568,""y"":6.361435890197754},{""x"":5.099999904632568,""y"":4.1666975021362305},{""x"":5.599999904632568,""y"":1.172118902206421},{""x"":6.099999904632568,""y"":0.801048994064331},{""x"":6.599999904632568,""y"":0.4640021026134491},{""x"":7.099999904632568,""y"":0.0010357667924836278}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[1.4734381347446401, 1.1649805188074196, 4.82958608866421, 0.09500545496710007],""points"":[{""x"":0.10000000149011612,""y"":1.5279096364974976},{""x"":0.6000000238418579,""y"":1.3559974431991577},{""x"":1.100000023841858,""y"":1.5246378183364868},{""x"":1.600000023841858,""y"":1.5567657947540283},{""x"":2.0999999046325684,""y"":1.4114240407943726},{""x"":2.5999999046325684,""y"":1.4045010805130005},{""x"":3.0999999046325684,""y"":1.4769829511642456},{""x"":3.5999999046325684,""y"":1.4875500202178955},{""x"":4.099999904632568,""y"":1.2991987466812134},{""x"":4.599999904632568,""y"":0.922961413860321},{""x"":5.099999904632568,""y"":0.6520044803619385},{""x"":5.599999904632568,""y"":0.15350978076457977},{""x"":6.099999904632568,""y"":0.1078903079032898},{""x"":6.599999904632568,""y"":0.17276449501514435},{""x"":7.099999904632568,""y"":0.14066608250141144}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCosta Rica,MKSTKEEIQTIKTLLKDSRTAKYHKRLQIVL,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCCc3ccccc3,1480018,36.3309440612793,995084218,4041 SOUTHWESTERN BLVD,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,6,6,2BPW,6,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.4833641843311227, -1.8945978742090062, 4.671127708092568, 0.24159861311815153],""points"":[{""x"":0.10000000149011612,""y"":0.0969524160027504},{""x"":0.6000000238418579,""y"":0.028483040630817413},{""x"":1.100000023841858,""y"":0.22087176144123077},{""x"":1.600000023841858,""y"":0.0068915546871721745},{""x"":2.0999999046325684,""y"":0.4305879771709442},{""x"":2.5999999046325684,""y"":0.44774115085601807},{""x"":3.0999999046325684,""y"":0.45346319675445557},{""x"":3.5999999046325684,""y"":0.2370593100786209},{""x"":4.099999904632568,""y"":0.4657953977584839},{""x"":4.599999904632568,""y"":1.155200719833374},{""x"":5.099999904632568,""y"":2.2294070720672607},{""x"":5.599999904632568,""y"":2.4311530590057373},{""x"":6.099999904632568,""y"":2.33846116065979},{""x"":6.599999904632568,""y"":2.608201026916504},{""x"":7.099999904632568,""y"":2.8136143684387207}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.224573521642033, 1.4454033924198528, 5.6014197746076535, 0.2823216054197577],""points"":[{""x"":0.10000000149011612,""y"":4.95027494430542},{""x"":0.6000000238418579,""y"":5.1754679679870605},{""x"":1.100000023841858,""y"":5.276752948760986},{""x"":1.600000023841858,""y"":5.589294910430908},{""x"":2.0999999046325684,""y"":5.616994857788086},{""x"":2.5999999046325684,""y"":5.120813846588135},{""x"":3.0999999046325684,""y"":5.340766906738281},{""x"":3.5999999046325684,""y"":4.876471042633057},{""x"":4.099999904632568,""y"":4.94999361038208},{""x"":4.599999904632568,""y"":5.162564754486084},{""x"":5.099999904632568,""y"":4.399557590484619},{""x"":5.599999904632568,""y"":2.7977969646453857},{""x"":6.099999904632568,""y"":1.0229872465133667},{""x"":6.599999904632568,""y"":0.48275601863861084},{""x"":7.099999904632568,""y"":0.10408931970596313}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCuba,MHAILRYFIRRLFYHIFYKIYSLISKKHQSLPSDVRQF,COc1ccc2c(c1)c(CC(=O)N3CCCC3C(=O)Oc4ccc(C)cc4OC)c(C)n2C(=O)c5ccc(Cl)cc5,1480019,36.33115768432617,995081928,1227 US HIGHWAY 11,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,7,7,1QBS,7,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[3.320838679713925, -1.2421619987316728, 4.831325425225256, 0.3236011098403072],""points"":[{""x"":0.10000000149011612,""y"":0.3727470338344574},{""x"":0.6000000238418579,""y"":0.12365014106035233},{""x"":1.100000023841858,""y"":0.48422467708587646},{""x"":1.600000023841858,""y"":0.2264465093612671},{""x"":2.0999999046325684,""y"":0.16821794211864471},{""x"":2.5999999046325684,""y"":0.3879014551639557},{""x"":3.0999999046325684,""y"":0.5470244884490967},{""x"":3.5999999046325684,""y"":0.3419053554534912},{""x"":4.099999904632568,""y"":0.7655120491981506},{""x"":4.599999904632568,""y"":1.2346516847610474},{""x"":5.099999904632568,""y"":2.453336715698242},{""x"":5.599999904632568,""y"":2.9565491676330566},{""x"":6.099999904632568,""y"":3.335299491882324},{""x"":6.599999904632568,""y"":3.240290880203247},{""x"":7.099999904632568,""y"":3.1107218265533447}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[3.6401853521511094, 1.26211588875013, 5.399028074402744, 0.5089580830068091],""points"":[{""x"":0.10000000149011612,""y"":3.8585598468780518},{""x"":0.6000000238418579,""y"":3.6077206134796143},{""x"":1.100000023841858,""y"":3.855252265930176},{""x"":1.600000023841858,""y"":3.619039297103882},{""x"":2.0999999046325684,""y"":3.839388370513916},{""x"":2.5999999046325684,""y"":3.335283041000366},{""x"":3.0999999046325684,""y"":3.571141481399536},{""x"":3.5999999046325684,""y"":3.4155046939849854},{""x"":4.099999904632568,""y"":3.7316646575927734},{""x"":4.599999904632568,""y"":3.0680155754089355},{""x"":5.099999904632568,""y"":2.891066551208496},{""x"":5.599999904632568,""y"":1.6022753715515137},{""x"":6.099999904632568,""y"":0.7652576565742493},{""x"":6.599999904632568,""y"":0.6875326037406921},{""x"":7.099999904632568,""y"":0.5828871726989746}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nItaly,MSNFHNEHVMQFYRNNLKTKGVFGRQ,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCO[N+](=O)[O-],1480020,36.33115768432617,99502,"168-46 91ST AVE., 2ND FLR",https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,8,8,1ZP8,8,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.293592105923809, 1.3781586549141835, 5.1025898038676605, 0.03493851245291291],""points"":[{""x"":0.10000000149011612,""y"":2.1287283897399902},{""x"":0.6000000238418579,""y"":2.267972230911255},{""x"":1.100000023841858,""y"":2.398442506790161},{""x"":1.600000023841858,""y"":2.5130622386932373},{""x"":2.0999999046325684,""y"":2.3255116939544678},{""x"":2.5999999046325684,""y"":2.127340793609619},{""x"":3.0999999046325684,""y"":2.47259783744812},{""x"":3.5999999046325684,""y"":2.131181478500366},{""x"":4.099999904632568,""y"":2.090421438217163},{""x"":4.599999904632568,""y"":2.02299165725708},{""x"":5.099999904632568,""y"":1.1105059385299683},{""x"":5.599999904632568,""y"":0.4494485855102539},{""x"":6.099999904632568,""y"":0.1375635862350464},{""x"":6.599999904632568,""y"":0.036351121962070465},{""x"":7.099999904632568,""y"":0.1619771122932434}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.953125499439879, 1.2528620255306528, 5.187637440149802, 0.3110348753260886],""points"":[{""x"":0.10000000149011612,""y"":5.6585283279418945},{""x"":0.6000000238418579,""y"":5.911152362823486},{""x"":1.100000023841858,""y"":5.924920082092285},{""x"":1.600000023841858,""y"":5.8469438552856445},{""x"":2.0999999046325684,""y"":5.929472923278809},{""x"":2.5999999046325684,""y"":6.190037727355957},{""x"":3.0999999046325684,""y"":6.236179828643799},{""x"":3.5999999046325684,""y"":6.141019344329834},{""x"":4.099999904632568,""y"":5.295210838317871},{""x"":4.599999904632568,""y"":5.265801906585693},{""x"":5.099999904632568,""y"":3.3722851276397705},{""x"":5.599999904632568,""y"":1.8299226760864258},{""x"":6.099999904632568,""y"":0.32690900564193726},{""x"":6.599999904632568,""y"":0.6274543404579163},{""x"":7.099999904632568,""y"":0.8441857099533081}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nRwanda,MPNSEPASLLELFNSIATQGELVRSLKAGNASK,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCO,1480021,36.33137130737305,995037247,"168-46 91ST AVE., 2ND FLR",https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,9,9,2BDJ,9,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[3.8209972202654474, 1.3779216716448506, 5.299882228439686, 0.06040645519069608],""points"":[{""x"":0.10000000149011612,""y"":3.7821109294891357},{""x"":0.6000000238418579,""y"":3.542433023452759},{""x"":1.100000023841858,""y"":3.7008674144744873},{""x"":1.600000023841858,""y"":3.717301607131958},{""x"":2.0999999046325684,""y"":4.024452209472656},{""x"":2.5999999046325684,""y"":4.013899326324463},{""x"":3.0999999046325684,""y"":3.945094347000122},{""x"":3.5999999046325684,""y"":3.866621971130371},{""x"":4.099999904632568,""y"":3.7461626529693604},{""x"":4.599999904632568,""y"":3.3454740047454834},{""x"":5.099999904632568,""y"":2.61944317817688},{""x"":5.599999904632568,""y"":0.999405026435852},{""x"":6.099999904632568,""y"":0.46259793639183044},{""x"":6.599999904632568,""y"":0.054134611040353775},{""x"":7.099999904632568,""y"":0.05711187422275543}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.6318079657726035, 1.8495493770000595, 5.391793312471116, 0.17060707587348442],""points"":[{""x"":0.10000000149011612,""y"":5.458079814910889},{""x"":0.6000000238418579,""y"":5.554427146911621},{""x"":1.100000023841858,""y"":5.799983024597168},{""x"":1.600000023841858,""y"":5.364140033721924},{""x"":2.0999999046325684,""y"":5.864485740661621},{""x"":2.5999999046325684,""y"":5.4509806632995605},{""x"":3.0999999046325684,""y"":5.702574729919434},{""x"":3.5999999046325684,""y"":5.7314534187316895},{""x"":4.099999904632568,""y"":5.5123443603515625},{""x"":4.599999904632568,""y"":5.724395751953125},{""x"":5.099999904632568,""y"":4.354506969451904},{""x"":5.599999904632568,""y"":1.7307666540145874},{""x"":6.099999904632568,""y"":0.6305936574935913},{""x"":6.599999904632568,""y"":0.035183437168598175},{""x"":7.099999904632568,""y"":0.7575169205665588}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nSwitzerland,IRVVGRYLIEVWKAAGMDMDKVLFLWSSDEI,CN1CCC(CC1)Oc2ccc(cc2)C(F)(F)F,1480028,36.33137130737305,99504,92-11 179TH PLACE,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,9,10,1IAN,10,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[1.1190255865097471, 2.3163895161544437, 5.4968866182279195, 0.2035204047289052],""points"":[{""x"":0.10000000149011612,""y"":1.1057683229446411},{""x"":0.6000000238418579,""y"":1.1019697189331055},{""x"":1.100000023841858,""y"":1.0818607807159424},{""x"":1.600000023841858,""y"":1.062997817993164},{""x"":2.0999999046325684,""y"":1.046447515487671},{""x"":2.5999999046325684,""y"":1.1217249631881714},{""x"":3.0999999046325684,""y"":1.2166996002197266},{""x"":3.5999999046325684,""y"":1.215477705001831},{""x"":4.099999904632568,""y"":1.0581893920898438},{""x"":4.599999904632568,""y"":1.1747995615005493},{""x"":5.099999904632568,""y"":1.0181127786636353},{""x"":5.599999904632568,""y"":0.5344523191452026},{""x"":6.099999904632568,""y"":0.2569526433944702},{""x"":6.599999904632568,""y"":0.1912207305431366},{""x"":7.099999904632568,""y"":0.15060538053512573}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[3.1038581025805785, 2.0032224204185245, 5.087602825989163, 0.13277988512492753],""points"":[{""x"":0.10000000149011612,""y"":3.0498509407043457},{""x"":0.6000000238418579,""y"":2.805217742919922},{""x"":1.100000023841858,""y"":3.3415253162384033},{""x"":1.600000023841858,""y"":3.0549843311309814},{""x"":2.0999999046325684,""y"":3.250074863433838},{""x"":2.5999999046325684,""y"":3.0432586669921875},{""x"":3.0999999046325684,""y"":3.265852451324463},{""x"":3.5999999046325684,""y"":2.9475724697113037},{""x"":4.099999904632568,""y"":3.1929898262023926},{""x"":4.599999904632568,""y"":2.7460060119628906},{""x"":5.099999904632568,""y"":1.6175861358642578},{""x"":5.599999904632568,""y"":0.3006608486175537},{""x"":6.099999904632568,""y"":0.3444803059101105},{""x"":6.599999904632568,""y"":0.015537971630692482},{""x"":7.099999904632568,""y"":0.5527358055114746}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\n,,,,,,,,,,,,,,,,,,,,,').columns.add(r.Column.fromList(r.TYPE.BYTE_ARRAY,"BinaryImage",Array.from(new Uint8Array(11))));var i,s=function(t,e,n,r){return new(n||(n=Promise))((function(i,s){function o(t){try{u(r.next(t))}catch(t){s(t)}}function a(t){try{u(r.throw(t))}catch(t){s(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(o,a)}u((r=r.apply(t,e||[])).next())}))};function o(t){return s(this,void 0,void 0,(function*(){yield new Promise((e=>setTimeout(e,t)))}))}console.log.bind(console),console.info.bind(console),console.warn.bind(console),console.error.bind(console),function(t){t.notNull=function(t,e){if(null==t)throw new Error(`${null==e?"Value":e} not defined`)}}(i||(i={})),r.DataFrame.fromColumns([r.Column.fromStrings("col",["val1","val2","val3"])])},74:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var r=n(354),i=n.n(r),s=n(314),o=n.n(s)()(i());o.push([t.id,".colored-text-input > textarea {\n width: 100%;\n -webkit-text-fill-color: transparent;\n background-color: transparent;\n position: relative;\n z-index: 1;\n resize: none;\n height: 22px; /* Fine tuned value to avoid \"jumping\" of the textarea upon autoresize */\n}\n\n.colored-text-input > div {\n /* The values here are fine tuned to those of the ui.input textarea in order\n * to achieve precise overlap */\n overflow: auto;\n position: absolute;\n pointer-events: none;\n cursor: text;\n z-index: 0;\n max-width: 100%;\n padding: 2px;\n line-height: normal;\n font-family: 'Roboto Mono', 'Roboto Mono Local', monospace;\n font-size: 12px;\n color: transparent;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n","",{version:3,sources:["webpack://./src/apps/common/view/components/colored-input/style.css"],names:[],mappings:"AAAA;EACE,WAAW;EACX,oCAAoC;EACpC,6BAA6B;EAC7B,kBAAkB;EAClB,UAAU;EACV,YAAY;EACZ,YAAY,EAAE,wEAAwE;AACxF;;AAEA;EACE;iCAC+B;EAC/B,cAAc;EACd,kBAAkB;EAClB,oBAAoB;EACpB,YAAY;EACZ,UAAU;EACV,eAAe;EACf,YAAY;EACZ,mBAAmB;EACnB,0DAA0D;EAC1D,eAAe;EACf,kBAAkB;EAClB,qBAAqB;EACrB,qBAAqB;AACvB",sourcesContent:[".colored-text-input > textarea {\n width: 100%;\n -webkit-text-fill-color: transparent;\n background-color: transparent;\n position: relative;\n z-index: 1;\n resize: none;\n height: 22px; /* Fine tuned value to avoid \"jumping\" of the textarea upon autoresize */\n}\n\n.colored-text-input > div {\n /* The values here are fine tuned to those of the ui.input textarea in order\n * to achieve precise overlap */\n overflow: auto;\n position: absolute;\n pointer-events: none;\n cursor: text;\n z-index: 0;\n max-width: 100%;\n padding: 2px;\n line-height: normal;\n font-family: 'Roboto Mono', 'Roboto Mono Local', monospace;\n font-size: 12px;\n color: transparent;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n"],sourceRoot:""}]);const a=o},252:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var r=n(354),i=n.n(r),s=n(314),o=n.n(s)()(i());o.push([t.id,"/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-pattern-text-input > textarea {\n resize: none;\n}\n","",{version:3,sources:["webpack://./src/apps/pattern/view/style.css"],names:[],mappings:"AAAA,gGAAgG;;AAEhG;EACE,YAAY;AACd",sourcesContent:["/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-pattern-text-input > textarea {\n resize: none;\n}\n"],sourceRoot:""}]);const a=o},507:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var r=n(354),i=n.n(r),s=n(314),o=n.n(s)()(i());o.push([t.id,"/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-structure-body {\n padding-right: 20px;\n}\n\n.st-structure-input-form {\n text-align: right;\n vertical-align: top;\n min-width: 95px;\n}\n\n.st-structure-direction-choice label {\n min-width: 100px;\n float: right;\n}\n\n.st-structure-direction-choice div {\n justify-content: right;\n}\n\n.st-structure-text-input-td { /* Style for td containing textarea */\n width: 100%;\n}\n\n.st-structure-mol-img {\n margin-right: 30px;\n float: right;\n}\n\n.st-structure-bool-button-block {\n justify-content: right;\n margin-bottom: 10px;\n}\n\n.st-structure-bottom {\n flex-direction: row-reverse;\n padding-top: 20px;\n}\n","",{version:3,sources:["webpack://./src/apps/structure/view/style.css"],names:[],mappings:"AAAA,gGAAgG;;AAEhG;EACE,mBAAmB;AACrB;;AAEA;EACE,iBAAiB;EACjB,mBAAmB;EACnB,eAAe;AACjB;;AAEA;EACE,gBAAgB;EAChB,YAAY;AACd;;AAEA;EACE,sBAAsB;AACxB;;AAEA,8BAA8B,qCAAqC;EACjE,WAAW;AACb;;AAEA;EACE,kBAAkB;EAClB,YAAY;AACd;;AAEA;EACE,sBAAsB;EACtB,mBAAmB;AACrB;;AAEA;EACE,2BAA2B;EAC3B,iBAAiB;AACnB",sourcesContent:["/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-structure-body {\n padding-right: 20px;\n}\n\n.st-structure-input-form {\n text-align: right;\n vertical-align: top;\n min-width: 95px;\n}\n\n.st-structure-direction-choice label {\n min-width: 100px;\n float: right;\n}\n\n.st-structure-direction-choice div {\n justify-content: right;\n}\n\n.st-structure-text-input-td { /* Style for td containing textarea */\n width: 100%;\n}\n\n.st-structure-mol-img {\n margin-right: 30px;\n float: right;\n}\n\n.st-structure-bool-button-block {\n justify-content: right;\n margin-bottom: 10px;\n}\n\n.st-structure-bottom {\n flex-direction: row-reverse;\n padding-top: 20px;\n}\n"],sourceRoot:""}]);const a=o},254:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var r=n(354),i=n.n(r),s=n(314),o=n.n(s)()(i());o.push([t.id,"/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n.st-translator-input-table {\n /* width: 100%; */\n margin-right: 20px;\n}\n\n.st-translator-input-table td:has(textarea) {\n width: 100%;\n}\n\n.st-translator-input-table td:has(select) {\n min-width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table {\n margin-top: 20px;\n margin-right: 20px;\n margin-bottom: 10px;\n}\n\n.st-translator-output-table table {\n width: 100%;\n table-layout: fixed;\n}\n\n/* .st-translator-output-table table tbody tr td { */\n/* max-width: 20%; */\n/* } */\n\n.st-translator-output-table td {\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.st-translator-output-table tr:nth-child(even) {\n background-color: var(--grey-1);\n}\n\n.st-translator-output-table td:nth-child(odd) {\n width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table td a {\n overflow-wrap: break-word;\n}\n","",{version:3,sources:["webpack://./src/apps/translator/view/style.css"],names:[],mappings:"AAAA,gGAAgG;AAChG;EACE,iBAAiB;EACjB,kBAAkB;AACpB;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,gBAAgB;EAChB,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;AACrB;;AAEA;EACE,WAAW;EACX,mBAAmB;AACrB;;AAEA,oDAAoD;AACpD,sBAAsB;AACtB,MAAM;;AAEN;EACE,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,+BAA+B;AACjC;;AAEA;EACE,YAAY;EACZ,mBAAmB;AACrB;;AAEA;EACE,yBAAyB;AAC3B",sourcesContent:["/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n.st-translator-input-table {\n /* width: 100%; */\n margin-right: 20px;\n}\n\n.st-translator-input-table td:has(textarea) {\n width: 100%;\n}\n\n.st-translator-input-table td:has(select) {\n min-width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table {\n margin-top: 20px;\n margin-right: 20px;\n margin-bottom: 10px;\n}\n\n.st-translator-output-table table {\n width: 100%;\n table-layout: fixed;\n}\n\n/* .st-translator-output-table table tbody tr td { */\n/* max-width: 20%; */\n/* } */\n\n.st-translator-output-table td {\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.st-translator-output-table tr:nth-child(even) {\n background-color: var(--grey-1);\n}\n\n.st-translator-output-table td:nth-child(odd) {\n width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table td a {\n overflow-wrap: break-word;\n}\n"],sourceRoot:""}]);const a=o},314:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",r=void 0!==e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),r&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),r&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,r,i,s){"string"==typeof t&&(t=[[null,t,void 0]]);var o={};if(r)for(var a=0;a<this.length;a++){var u=this[a][0];null!=u&&(o[u]=!0)}for(var l=0;l<t.length;l++){var c=[].concat(t[l]);r&&o[c[0]]||(void 0!==s&&(void 0===c[5]||(c[1]="@layer".concat(c[5].length>0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=s),n&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=n):c[2]=n),i&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=i):c[4]="".concat(i)),e.push(c))}},e}},354:t=>{"use strict";t.exports=function(t){var e=t[1],n=t[3];if(!n)return e;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),s="/*# ".concat(i," */");return[e].concat([s]).join("\n")}return[e].join("\n")}},982:function(t,e,n){var r;!function(e,i){var s={};!function(t){"use strict";t.__esModule=!0,t.digestLength=32,t.blockSize=64;var e=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function n(t,n,r,i,s){for(var o,a,u,l,c,h,f,d,p,g,m,v,y;s>=64;){for(o=n[0],a=n[1],u=n[2],l=n[3],c=n[4],h=n[5],f=n[6],d=n[7],g=0;g<16;g++)m=i+4*g,t[g]=(255&r[m])<<24|(255&r[m+1])<<16|(255&r[m+2])<<8|255&r[m+3];for(g=16;g<64;g++)v=((p=t[g-2])>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,y=((p=t[g-15])>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,t[g]=(v+t[g-7]|0)+(y+t[g-16]|0);for(g=0;g<64;g++)v=(((c>>>6|c<<26)^(c>>>11|c<<21)^(c>>>25|c<<7))+(c&h^~c&f)|0)+(d+(e[g]+t[g]|0)|0)|0,y=((o>>>2|o<<30)^(o>>>13|o<<19)^(o>>>22|o<<10))+(o&a^o&u^a&u)|0,d=f,f=h,h=c,c=l+v|0,l=u,u=a,a=o,o=v+y|0;n[0]+=o,n[1]+=a,n[2]+=u,n[3]+=l,n[4]+=c,n[5]+=h,n[6]+=f,n[7]+=d,i+=64,s-=64}return i}var r=function(){function e(){this.digestLength=t.digestLength,this.blockSize=t.blockSize,this.state=new Int32Array(8),this.temp=new Int32Array(64),this.buffer=new Uint8Array(128),this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this.reset()}return e.prototype.reset=function(){return this.state[0]=1779033703,this.state[1]=3144134277,this.state[2]=1013904242,this.state[3]=2773480762,this.state[4]=1359893119,this.state[5]=2600822924,this.state[6]=528734635,this.state[7]=1541459225,this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this},e.prototype.clean=function(){for(var t=0;t<this.buffer.length;t++)this.buffer[t]=0;for(t=0;t<this.temp.length;t++)this.temp[t]=0;this.reset()},e.prototype.update=function(t,e){if(void 0===e&&(e=t.length),this.finished)throw new Error("SHA256: can't update because hash was finished.");var r=0;if(this.bytesHashed+=e,this.bufferLength>0){for(;this.bufferLength<64&&e>0;)this.buffer[this.bufferLength++]=t[r++],e--;64===this.bufferLength&&(n(this.temp,this.state,this.buffer,0,64),this.bufferLength=0)}for(e>=64&&(r=n(this.temp,this.state,t,r,e),e%=64);e>0;)this.buffer[this.bufferLength++]=t[r++],e--;return this},e.prototype.finish=function(t){if(!this.finished){var e=this.bytesHashed,r=this.bufferLength,i=e/536870912|0,s=e<<3,o=e%64<56?64:128;this.buffer[r]=128;for(var a=r+1;a<o-8;a++)this.buffer[a]=0;this.buffer[o-8]=i>>>24&255,this.buffer[o-7]=i>>>16&255,this.buffer[o-6]=i>>>8&255,this.buffer[o-5]=i>>>0&255,this.buffer[o-4]=s>>>24&255,this.buffer[o-3]=s>>>16&255,this.buffer[o-2]=s>>>8&255,this.buffer[o-1]=s>>>0&255,n(this.temp,this.state,this.buffer,0,o),this.finished=!0}for(a=0;a<8;a++)t[4*a+0]=this.state[a]>>>24&255,t[4*a+1]=this.state[a]>>>16&255,t[4*a+2]=this.state[a]>>>8&255,t[4*a+3]=this.state[a]>>>0&255;return this},e.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},e.prototype._saveState=function(t){for(var e=0;e<this.state.length;e++)t[e]=this.state[e]},e.prototype._restoreState=function(t,e){for(var n=0;n<this.state.length;n++)this.state[n]=t[n];this.bytesHashed=e,this.finished=!1,this.bufferLength=0},e}();t.Hash=r;var i=function(){function t(t){this.inner=new r,this.outer=new r,this.blockSize=this.inner.blockSize,this.digestLength=this.inner.digestLength;var e=new Uint8Array(this.blockSize);if(t.length>this.blockSize)(new r).update(t).finish(e).clean();else for(var n=0;n<t.length;n++)e[n]=t[n];for(n=0;n<e.length;n++)e[n]^=54;for(this.inner.update(e),n=0;n<e.length;n++)e[n]^=106;for(this.outer.update(e),this.istate=new Uint32Array(8),this.ostate=new Uint32Array(8),this.inner._saveState(this.istate),this.outer._saveState(this.ostate),n=0;n<e.length;n++)e[n]=0}return t.prototype.reset=function(){return this.inner._restoreState(this.istate,this.inner.blockSize),this.outer._restoreState(this.ostate,this.outer.blockSize),this},t.prototype.clean=function(){for(var t=0;t<this.istate.length;t++)this.ostate[t]=this.istate[t]=0;this.inner.clean(),this.outer.clean()},t.prototype.update=function(t){return this.inner.update(t),this},t.prototype.finish=function(t){return this.outer.finished?this.outer.finish(t):(this.inner.finish(t),this.outer.update(t,this.digestLength).finish(t)),this},t.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},t}();function s(t){var e=(new r).update(t),n=e.digest();return e.clean(),n}function o(t,e){var n=new i(t).update(e),r=n.digest();return n.clean(),r}function a(t,e,n,r){var i=r[0];if(0===i)throw new Error("hkdf: cannot expand more");e.reset(),i>1&&e.update(t),n&&e.update(n),e.update(r),e.finish(t),r[0]++}t.HMAC=i,t.hash=s,t.default=s,t.hmac=o;var u=new Uint8Array(t.digestLength);t.hkdf=function(t,e,n,r){void 0===e&&(e=u),void 0===r&&(r=32);for(var s=new Uint8Array([1]),l=o(e,t),c=new i(l),h=new Uint8Array(c.digestLength),f=h.length,d=new Uint8Array(r),p=0;p<r;p++)f===h.length&&(a(h,c,n,s),f=0),d[p]=h[f++];return c.clean(),h.fill(0),s.fill(0),d},t.pbkdf2=function(t,e,n,r){for(var s=new i(t),o=s.digestLength,a=new Uint8Array(4),u=new Uint8Array(o),l=new Uint8Array(o),c=new Uint8Array(r),h=0;h*o<r;h++){var f=h+1;a[0]=f>>>24&255,a[1]=f>>>16&255,a[2]=f>>>8&255,a[3]=f>>>0&255,s.reset(),s.update(e),s.update(a),s.finish(l);for(var d=0;d<o;d++)u[d]=l[d];for(d=2;d<=n;d++){s.reset(),s.update(l).finish(l);for(var p=0;p<o;p++)u[p]^=l[p]}for(d=0;d<o&&h*o+d<r;d++)c[h*o+d]=u[d]}for(h=0;h<o;h++)u[h]=l[h]=0;for(h=0;h<4;h++)a[h]=0;return s.clean(),c}}(s);var o=s.default;for(var a in s)o[a]=s[a];"object"==typeof t.exports?t.exports=o:void 0===(r=function(){return o}.call(s,n,s,t))||(t.exports=r)}()},543:function(t,e,n){var r;t=n.nmd(t),function(){var i,s="Expected a function",o="__lodash_hash_undefined__",a="__lodash_placeholder__",u=32,l=128,c=1/0,h=9007199254740991,f=NaN,d=4294967295,p=[["ary",l],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",u],["partialRight",64],["rearg",256]],g="[object Arguments]",m="[object Array]",v="[object Boolean]",y="[object Date]",b="[object Error]",A="[object Function]",w="[object GeneratorFunction]",C="[object Map]",x="[object Number]",_="[object Object]",S="[object Promise]",E="[object RegExp]",T="[object Set]",I="[object String]",N="[object Symbol]",O="[object WeakMap]",M="[object ArrayBuffer]",L="[object DataView]",B="[object Float32Array]",P="[object Float64Array]",R="[object Int8Array]",D="[object Int16Array]",F="[object Int32Array]",U="[object Uint8Array]",k="[object Uint8ClampedArray]",$="[object Uint16Array]",H="[object Uint32Array]",V=/\b__p \+= '';/g,j=/\b(__p \+=) '' \+/g,q=/(__e\(.*?\)|\b__t\)) \+\n'';/g,G=/&(?:amp|lt|gt|quot|#39);/g,W=/[&<>"']/g,z=RegExp(G.source),Y=RegExp(W.source),K=/<%-([\s\S]+?)%>/g,Q=/<%([\s\S]+?)%>/g,J=/<%=([\s\S]+?)%>/g,X=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Z=/^\w*$/,tt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,et=/[\\^$.*+?()[\]{}|]/g,nt=RegExp(et.source),rt=/^\s+/,it=/\s/,st=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ot=/\{\n\/\* \[wrapped with (.+)\] \*/,at=/,? & /,ut=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,lt=/[()=,{}\[\]\/\s]/,ct=/\\(\\)?/g,ht=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ft=/\w*$/,dt=/^[-+]0x[0-9a-f]+$/i,pt=/^0b[01]+$/i,gt=/^\[object .+?Constructor\]$/,mt=/^0o[0-7]+$/i,vt=/^(?:0|[1-9]\d*)$/,yt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,bt=/($^)/,At=/['\n\r\u2028\u2029\\]/g,wt="\\ud800-\\udfff",Ct="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",xt="\\u2700-\\u27bf",_t="a-z\\xdf-\\xf6\\xf8-\\xff",St="A-Z\\xc0-\\xd6\\xd8-\\xde",Et="\\ufe0e\\ufe0f",Tt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",It="["+wt+"]",Nt="["+Tt+"]",Ot="["+Ct+"]",Mt="\\d+",Lt="["+xt+"]",Bt="["+_t+"]",Pt="[^"+wt+Tt+Mt+xt+_t+St+"]",Rt="\\ud83c[\\udffb-\\udfff]",Dt="[^"+wt+"]",Ft="(?:\\ud83c[\\udde6-\\uddff]){2}",Ut="[\\ud800-\\udbff][\\udc00-\\udfff]",kt="["+St+"]",$t="\\u200d",Ht="(?:"+Bt+"|"+Pt+")",Vt="(?:"+kt+"|"+Pt+")",jt="(?:['’](?:d|ll|m|re|s|t|ve))?",qt="(?:['’](?:D|LL|M|RE|S|T|VE))?",Gt="(?:"+Ot+"|"+Rt+")?",Wt="["+Et+"]?",zt=Wt+Gt+"(?:"+$t+"(?:"+[Dt,Ft,Ut].join("|")+")"+Wt+Gt+")*",Yt="(?:"+[Lt,Ft,Ut].join("|")+")"+zt,Kt="(?:"+[Dt+Ot+"?",Ot,Ft,Ut,It].join("|")+")",Qt=RegExp("['’]","g"),Jt=RegExp(Ot,"g"),Xt=RegExp(Rt+"(?="+Rt+")|"+Kt+zt,"g"),Zt=RegExp([kt+"?"+Bt+"+"+jt+"(?="+[Nt,kt,"$"].join("|")+")",Vt+"+"+qt+"(?="+[Nt,kt+Ht,"$"].join("|")+")",kt+"?"+Ht+"+"+jt,kt+"+"+qt,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Mt,Yt].join("|"),"g"),te=RegExp("["+$t+wt+Ct+Et+"]"),ee=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,ne=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],re=-1,ie={};ie[B]=ie[P]=ie[R]=ie[D]=ie[F]=ie[U]=ie[k]=ie[$]=ie[H]=!0,ie[g]=ie[m]=ie[M]=ie[v]=ie[L]=ie[y]=ie[b]=ie[A]=ie[C]=ie[x]=ie[_]=ie[E]=ie[T]=ie[I]=ie[O]=!1;var se={};se[g]=se[m]=se[M]=se[L]=se[v]=se[y]=se[B]=se[P]=se[R]=se[D]=se[F]=se[C]=se[x]=se[_]=se[E]=se[T]=se[I]=se[N]=se[U]=se[k]=se[$]=se[H]=!0,se[b]=se[A]=se[O]=!1;var oe={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ae=parseFloat,ue=parseInt,le="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,ce="object"==typeof self&&self&&self.Object===Object&&self,he=le||ce||Function("return this")(),fe=e&&!e.nodeType&&e,de=fe&&t&&!t.nodeType&&t,pe=de&&de.exports===fe,ge=pe&&le.process,me=function(){try{return de&&de.require&&de.require("util").types||ge&&ge.binding&&ge.binding("util")}catch(t){}}(),ve=me&&me.isArrayBuffer,ye=me&&me.isDate,be=me&&me.isMap,Ae=me&&me.isRegExp,we=me&&me.isSet,Ce=me&&me.isTypedArray;function xe(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function _e(t,e,n,r){for(var i=-1,s=null==t?0:t.length;++i<s;){var o=t[i];e(r,o,n(o),t)}return r}function Se(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}function Ee(t,e){for(var n=null==t?0:t.length;n--&&!1!==e(t[n],n,t););return t}function Te(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function Ie(t,e){for(var n=-1,r=null==t?0:t.length,i=0,s=[];++n<r;){var o=t[n];e(o,n,t)&&(s[i++]=o)}return s}function Ne(t,e){return!(null==t||!t.length)&&ke(t,e,0)>-1}function Oe(t,e,n){for(var r=-1,i=null==t?0:t.length;++r<i;)if(n(e,t[r]))return!0;return!1}function Me(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}function Le(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}function Be(t,e,n,r){var i=-1,s=null==t?0:t.length;for(r&&s&&(n=t[++i]);++i<s;)n=e(n,t[i],i,t);return n}function Pe(t,e,n,r){var i=null==t?0:t.length;for(r&&i&&(n=t[--i]);i--;)n=e(n,t[i],i,t);return n}function Re(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}var De=je("length");function Fe(t,e,n){var r;return n(t,(function(t,n,i){if(e(t,n,i))return r=n,!1})),r}function Ue(t,e,n,r){for(var i=t.length,s=n+(r?1:-1);r?s--:++s<i;)if(e(t[s],s,t))return s;return-1}function ke(t,e,n){return e==e?function(t,e,n){for(var r=n-1,i=t.length;++r<i;)if(t[r]===e)return r;return-1}(t,e,n):Ue(t,He,n)}function $e(t,e,n,r){for(var i=n-1,s=t.length;++i<s;)if(r(t[i],e))return i;return-1}function He(t){return t!=t}function Ve(t,e){var n=null==t?0:t.length;return n?We(t,e)/n:f}function je(t){return function(e){return null==e?i:e[t]}}function qe(t){return function(e){return null==t?i:t[e]}}function Ge(t,e,n,r,i){return i(t,(function(t,i,s){n=r?(r=!1,t):e(n,t,i,s)})),n}function We(t,e){for(var n,r=-1,s=t.length;++r<s;){var o=e(t[r]);o!==i&&(n=n===i?o:n+o)}return n}function ze(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}function Ye(t){return t?t.slice(0,fn(t)+1).replace(rt,""):t}function Ke(t){return function(e){return t(e)}}function Qe(t,e){return Me(e,(function(e){return t[e]}))}function Je(t,e){return t.has(e)}function Xe(t,e){for(var n=-1,r=t.length;++n<r&&ke(e,t[n],0)>-1;);return n}function Ze(t,e){for(var n=t.length;n--&&ke(e,t[n],0)>-1;);return n}var tn=qe({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"}),en=qe({"&":"&","<":"<",">":">",'"':""","'":"'"});function nn(t){return"\\"+oe[t]}function rn(t){return te.test(t)}function sn(t){var e=-1,n=Array(t.size);return t.forEach((function(t,r){n[++e]=[r,t]})),n}function on(t,e){return function(n){return t(e(n))}}function an(t,e){for(var n=-1,r=t.length,i=0,s=[];++n<r;){var o=t[n];o!==e&&o!==a||(t[n]=a,s[i++]=n)}return s}function un(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}function ln(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=[t,t]})),n}function cn(t){return rn(t)?function(t){for(var e=Xt.lastIndex=0;Xt.test(t);)++e;return e}(t):De(t)}function hn(t){return rn(t)?function(t){return t.match(Xt)||[]}(t):function(t){return t.split("")}(t)}function fn(t){for(var e=t.length;e--&&it.test(t.charAt(e)););return e}var dn=qe({"&":"&","<":"<",">":">",""":'"',"'":"'"}),pn=function t(e){var n,r=(e=null==e?he:pn.defaults(he.Object(),e,pn.pick(he,ne))).Array,it=e.Date,wt=e.Error,Ct=e.Function,xt=e.Math,_t=e.Object,St=e.RegExp,Et=e.String,Tt=e.TypeError,It=r.prototype,Nt=Ct.prototype,Ot=_t.prototype,Mt=e["__core-js_shared__"],Lt=Nt.toString,Bt=Ot.hasOwnProperty,Pt=0,Rt=(n=/[^.]+$/.exec(Mt&&Mt.keys&&Mt.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",Dt=Ot.toString,Ft=Lt.call(_t),Ut=he._,kt=St("^"+Lt.call(Bt).replace(et,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),$t=pe?e.Buffer:i,Ht=e.Symbol,Vt=e.Uint8Array,jt=$t?$t.allocUnsafe:i,qt=on(_t.getPrototypeOf,_t),Gt=_t.create,Wt=Ot.propertyIsEnumerable,zt=It.splice,Yt=Ht?Ht.isConcatSpreadable:i,Kt=Ht?Ht.iterator:i,Xt=Ht?Ht.toStringTag:i,te=function(){try{var t=us(_t,"defineProperty");return t({},"",{}),t}catch(t){}}(),oe=e.clearTimeout!==he.clearTimeout&&e.clearTimeout,le=it&&it.now!==he.Date.now&&it.now,ce=e.setTimeout!==he.setTimeout&&e.setTimeout,fe=xt.ceil,de=xt.floor,ge=_t.getOwnPropertySymbols,me=$t?$t.isBuffer:i,De=e.isFinite,qe=It.join,gn=on(_t.keys,_t),mn=xt.max,vn=xt.min,yn=it.now,bn=e.parseInt,An=xt.random,wn=It.reverse,Cn=us(e,"DataView"),xn=us(e,"Map"),_n=us(e,"Promise"),Sn=us(e,"Set"),En=us(e,"WeakMap"),Tn=us(_t,"create"),In=En&&new En,Nn={},On=Ds(Cn),Mn=Ds(xn),Ln=Ds(_n),Bn=Ds(Sn),Pn=Ds(En),Rn=Ht?Ht.prototype:i,Dn=Rn?Rn.valueOf:i,Fn=Rn?Rn.toString:i;function Un(t){if(ta(t)&&!jo(t)&&!(t instanceof Vn)){if(t instanceof Hn)return t;if(Bt.call(t,"__wrapped__"))return Fs(t)}return new Hn(t)}var kn=function(){function t(){}return function(e){if(!Zo(e))return{};if(Gt)return Gt(e);t.prototype=e;var n=new t;return t.prototype=i,n}}();function $n(){}function Hn(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=i}function Vn(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=d,this.__views__=[]}function jn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function qn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Gn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Wn(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new Gn;++e<n;)this.add(t[e])}function zn(t){var e=this.__data__=new qn(t);this.size=e.size}function Yn(t,e){var n=jo(t),r=!n&&Vo(t),i=!n&&!r&&zo(t),s=!n&&!r&&!i&&ua(t),o=n||r||i||s,a=o?ze(t.length,Et):[],u=a.length;for(var l in t)!e&&!Bt.call(t,l)||o&&("length"==l||i&&("offset"==l||"parent"==l)||s&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||gs(l,u))||a.push(l);return a}function Kn(t){var e=t.length;return e?t[Gr(0,e-1)]:i}function Qn(t,e){return Ms(Ei(t),sr(e,0,t.length))}function Jn(t){return Ms(Ei(t))}function Xn(t,e,n){(n!==i&&!ko(t[e],n)||n===i&&!(e in t))&&rr(t,e,n)}function Zn(t,e,n){var r=t[e];Bt.call(t,e)&&ko(r,n)&&(n!==i||e in t)||rr(t,e,n)}function tr(t,e){for(var n=t.length;n--;)if(ko(t[n][0],e))return n;return-1}function er(t,e,n,r){return cr(t,(function(t,i,s){e(r,t,n(t),s)})),r}function nr(t,e){return t&&Ti(e,Oa(e),t)}function rr(t,e,n){"__proto__"==e&&te?te(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function ir(t,e){for(var n=-1,s=e.length,o=r(s),a=null==t;++n<s;)o[n]=a?i:Sa(t,e[n]);return o}function sr(t,e,n){return t==t&&(n!==i&&(t=t<=n?t:n),e!==i&&(t=t>=e?t:e)),t}function or(t,e,n,r,s,o){var a,u=1&e,l=2&e,c=4&e;if(n&&(a=s?n(t,r,s,o):n(t)),a!==i)return a;if(!Zo(t))return t;var h=jo(t);if(h){if(a=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&Bt.call(t,"index")&&(n.index=t.index,n.input=t.input),n}(t),!u)return Ei(t,a)}else{var f=hs(t),d=f==A||f==w;if(zo(t))return Ai(t,u);if(f==_||f==g||d&&!s){if(a=l||d?{}:ds(t),!u)return l?function(t,e){return Ti(t,cs(t),e)}(t,function(t,e){return t&&Ti(e,Ma(e),t)}(a,t)):function(t,e){return Ti(t,ls(t),e)}(t,nr(a,t))}else{if(!se[f])return s?t:{};a=function(t,e,n){var r,i=t.constructor;switch(e){case M:return wi(t);case v:case y:return new i(+t);case L:return function(t,e){var n=e?wi(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case B:case P:case R:case D:case F:case U:case k:case $:case H:return Ci(t,n);case C:return new i;case x:case I:return new i(t);case E:return function(t){var e=new t.constructor(t.source,ft.exec(t));return e.lastIndex=t.lastIndex,e}(t);case T:return new i;case N:return r=t,Dn?_t(Dn.call(r)):{}}}(t,f,u)}}o||(o=new zn);var p=o.get(t);if(p)return p;o.set(t,a),sa(t)?t.forEach((function(r){a.add(or(r,e,n,r,t,o))})):ea(t)&&t.forEach((function(r,i){a.set(i,or(r,e,n,i,t,o))}));var m=h?i:(c?l?es:ts:l?Ma:Oa)(t);return Se(m||t,(function(r,i){m&&(r=t[i=r]),Zn(a,i,or(r,e,n,i,t,o))})),a}function ar(t,e,n){var r=n.length;if(null==t)return!r;for(t=_t(t);r--;){var s=n[r],o=e[s],a=t[s];if(a===i&&!(s in t)||!o(a))return!1}return!0}function ur(t,e,n){if("function"!=typeof t)throw new Tt(s);return Ts((function(){t.apply(i,n)}),e)}function lr(t,e,n,r){var i=-1,s=Ne,o=!0,a=t.length,u=[],l=e.length;if(!a)return u;n&&(e=Me(e,Ke(n))),r?(s=Oe,o=!1):e.length>=200&&(s=Je,o=!1,e=new Wn(e));t:for(;++i<a;){var c=t[i],h=null==n?c:n(c);if(c=r||0!==c?c:0,o&&h==h){for(var f=l;f--;)if(e[f]===h)continue t;u.push(c)}else s(e,h,r)||u.push(c)}return u}Un.templateSettings={escape:K,evaluate:Q,interpolate:J,variable:"",imports:{_:Un}},Un.prototype=$n.prototype,Un.prototype.constructor=Un,Hn.prototype=kn($n.prototype),Hn.prototype.constructor=Hn,Vn.prototype=kn($n.prototype),Vn.prototype.constructor=Vn,jn.prototype.clear=function(){this.__data__=Tn?Tn(null):{},this.size=0},jn.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},jn.prototype.get=function(t){var e=this.__data__;if(Tn){var n=e[t];return n===o?i:n}return Bt.call(e,t)?e[t]:i},jn.prototype.has=function(t){var e=this.__data__;return Tn?e[t]!==i:Bt.call(e,t)},jn.prototype.set=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Tn&&e===i?o:e,this},qn.prototype.clear=function(){this.__data__=[],this.size=0},qn.prototype.delete=function(t){var e=this.__data__,n=tr(e,t);return!(n<0||(n==e.length-1?e.pop():zt.call(e,n,1),--this.size,0))},qn.prototype.get=function(t){var e=this.__data__,n=tr(e,t);return n<0?i:e[n][1]},qn.prototype.has=function(t){return tr(this.__data__,t)>-1},qn.prototype.set=function(t,e){var n=this.__data__,r=tr(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},Gn.prototype.clear=function(){this.size=0,this.__data__={hash:new jn,map:new(xn||qn),string:new jn}},Gn.prototype.delete=function(t){var e=os(this,t).delete(t);return this.size-=e?1:0,e},Gn.prototype.get=function(t){return os(this,t).get(t)},Gn.prototype.has=function(t){return os(this,t).has(t)},Gn.prototype.set=function(t,e){var n=os(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},Wn.prototype.add=Wn.prototype.push=function(t){return this.__data__.set(t,o),this},Wn.prototype.has=function(t){return this.__data__.has(t)},zn.prototype.clear=function(){this.__data__=new qn,this.size=0},zn.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},zn.prototype.get=function(t){return this.__data__.get(t)},zn.prototype.has=function(t){return this.__data__.has(t)},zn.prototype.set=function(t,e){var n=this.__data__;if(n instanceof qn){var r=n.__data__;if(!xn||r.length<199)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new Gn(r)}return n.set(t,e),this.size=n.size,this};var cr=Oi(yr),hr=Oi(br,!0);function fr(t,e){var n=!0;return cr(t,(function(t,r,i){return n=!!e(t,r,i)})),n}function dr(t,e,n){for(var r=-1,s=t.length;++r<s;){var o=t[r],a=e(o);if(null!=a&&(u===i?a==a&&!aa(a):n(a,u)))var u=a,l=o}return l}function pr(t,e){var n=[];return cr(t,(function(t,r,i){e(t,r,i)&&n.push(t)})),n}function gr(t,e,n,r,i){var s=-1,o=t.length;for(n||(n=ps),i||(i=[]);++s<o;){var a=t[s];e>0&&n(a)?e>1?gr(a,e-1,n,r,i):Le(i,a):r||(i[i.length]=a)}return i}var mr=Mi(),vr=Mi(!0);function yr(t,e){return t&&mr(t,e,Oa)}function br(t,e){return t&&vr(t,e,Oa)}function Ar(t,e){return Ie(e,(function(e){return Qo(t[e])}))}function wr(t,e){for(var n=0,r=(e=mi(e,t)).length;null!=t&&n<r;)t=t[Rs(e[n++])];return n&&n==r?t:i}function Cr(t,e,n){var r=e(t);return jo(t)?r:Le(r,n(t))}function xr(t){return null==t?t===i?"[object Undefined]":"[object Null]":Xt&&Xt in _t(t)?function(t){var e=Bt.call(t,Xt),n=t[Xt];try{t[Xt]=i;var r=!0}catch(t){}var s=Dt.call(t);return r&&(e?t[Xt]=n:delete t[Xt]),s}(t):function(t){return Dt.call(t)}(t)}function _r(t,e){return t>e}function Sr(t,e){return null!=t&&Bt.call(t,e)}function Er(t,e){return null!=t&&e in _t(t)}function Tr(t,e,n){for(var s=n?Oe:Ne,o=t[0].length,a=t.length,u=a,l=r(a),c=1/0,h=[];u--;){var f=t[u];u&&e&&(f=Me(f,Ke(e))),c=vn(f.length,c),l[u]=!n&&(e||o>=120&&f.length>=120)?new Wn(u&&f):i}f=t[0];var d=-1,p=l[0];t:for(;++d<o&&h.length<c;){var g=f[d],m=e?e(g):g;if(g=n||0!==g?g:0,!(p?Je(p,m):s(h,m,n))){for(u=a;--u;){var v=l[u];if(!(v?Je(v,m):s(t[u],m,n)))continue t}p&&p.push(m),h.push(g)}}return h}function Ir(t,e,n){var r=null==(t=_s(t,e=mi(e,t)))?t:t[Rs(Ys(e))];return null==r?i:xe(r,t,n)}function Nr(t){return ta(t)&&xr(t)==g}function Or(t,e,n,r,s){return t===e||(null==t||null==e||!ta(t)&&!ta(e)?t!=t&&e!=e:function(t,e,n,r,s,o){var a=jo(t),u=jo(e),l=a?m:hs(t),c=u?m:hs(e),h=(l=l==g?_:l)==_,f=(c=c==g?_:c)==_,d=l==c;if(d&&zo(t)){if(!zo(e))return!1;a=!0,h=!1}if(d&&!h)return o||(o=new zn),a||ua(t)?Xi(t,e,n,r,s,o):function(t,e,n,r,i,s,o){switch(n){case L:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case M:return!(t.byteLength!=e.byteLength||!s(new Vt(t),new Vt(e)));case v:case y:case x:return ko(+t,+e);case b:return t.name==e.name&&t.message==e.message;case E:case I:return t==e+"";case C:var a=sn;case T:var u=1&r;if(a||(a=un),t.size!=e.size&&!u)return!1;var l=o.get(t);if(l)return l==e;r|=2,o.set(t,e);var c=Xi(a(t),a(e),r,i,s,o);return o.delete(t),c;case N:if(Dn)return Dn.call(t)==Dn.call(e)}return!1}(t,e,l,n,r,s,o);if(!(1&n)){var p=h&&Bt.call(t,"__wrapped__"),A=f&&Bt.call(e,"__wrapped__");if(p||A){var w=p?t.value():t,S=A?e.value():e;return o||(o=new zn),s(w,S,n,r,o)}}return!!d&&(o||(o=new zn),function(t,e,n,r,s,o){var a=1&n,u=ts(t),l=u.length;if(l!=ts(e).length&&!a)return!1;for(var c=l;c--;){var h=u[c];if(!(a?h in e:Bt.call(e,h)))return!1}var f=o.get(t),d=o.get(e);if(f&&d)return f==e&&d==t;var p=!0;o.set(t,e),o.set(e,t);for(var g=a;++c<l;){var m=t[h=u[c]],v=e[h];if(r)var y=a?r(v,m,h,e,t,o):r(m,v,h,t,e,o);if(!(y===i?m===v||s(m,v,n,r,o):y)){p=!1;break}g||(g="constructor"==h)}if(p&&!g){var b=t.constructor,A=e.constructor;b==A||!("constructor"in t)||!("constructor"in e)||"function"==typeof b&&b instanceof b&&"function"==typeof A&&A instanceof A||(p=!1)}return o.delete(t),o.delete(e),p}(t,e,n,r,s,o))}(t,e,n,r,Or,s))}function Mr(t,e,n,r){var s=n.length,o=s,a=!r;if(null==t)return!o;for(t=_t(t);s--;){var u=n[s];if(a&&u[2]?u[1]!==t[u[0]]:!(u[0]in t))return!1}for(;++s<o;){var l=(u=n[s])[0],c=t[l],h=u[1];if(a&&u[2]){if(c===i&&!(l in t))return!1}else{var f=new zn;if(r)var d=r(c,h,l,t,e,f);if(!(d===i?Or(h,c,3,r,f):d))return!1}}return!0}function Lr(t){return!(!Zo(t)||(e=t,Rt&&Rt in e))&&(Qo(t)?kt:gt).test(Ds(t));var e}function Br(t){return"function"==typeof t?t:null==t?nu:"object"==typeof t?jo(t)?Ur(t[0],t[1]):Fr(t):hu(t)}function Pr(t){if(!As(t))return gn(t);var e=[];for(var n in _t(t))Bt.call(t,n)&&"constructor"!=n&&e.push(n);return e}function Rr(t,e){return t<e}function Dr(t,e){var n=-1,i=Go(t)?r(t.length):[];return cr(t,(function(t,r,s){i[++n]=e(t,r,s)})),i}function Fr(t){var e=as(t);return 1==e.length&&e[0][2]?Cs(e[0][0],e[0][1]):function(n){return n===t||Mr(n,t,e)}}function Ur(t,e){return vs(t)&&ws(e)?Cs(Rs(t),e):function(n){var r=Sa(n,t);return r===i&&r===e?Ea(n,t):Or(e,r,3)}}function kr(t,e,n,r,s){t!==e&&mr(e,(function(o,a){if(s||(s=new zn),Zo(o))!function(t,e,n,r,s,o,a){var u=Ss(t,n),l=Ss(e,n),c=a.get(l);if(c)Xn(t,n,c);else{var h=o?o(u,l,n+"",t,e,a):i,f=h===i;if(f){var d=jo(l),p=!d&&zo(l),g=!d&&!p&&ua(l);h=l,d||p||g?jo(u)?h=u:Wo(u)?h=Ei(u):p?(f=!1,h=Ai(l,!0)):g?(f=!1,h=Ci(l,!0)):h=[]:ra(l)||Vo(l)?(h=u,Vo(u)?h=ma(u):Zo(u)&&!Qo(u)||(h=ds(l))):f=!1}f&&(a.set(l,h),s(h,l,r,o,a),a.delete(l)),Xn(t,n,h)}}(t,e,a,n,kr,r,s);else{var u=r?r(Ss(t,a),o,a+"",t,e,s):i;u===i&&(u=o),Xn(t,a,u)}}),Ma)}function $r(t,e){var n=t.length;if(n)return gs(e+=e<0?n:0,n)?t[e]:i}function Hr(t,e,n){e=e.length?Me(e,(function(t){return jo(t)?function(e){return wr(e,1===t.length?t[0]:t)}:t})):[nu];var r=-1;e=Me(e,Ke(ss()));var i=Dr(t,(function(t,n,i){var s=Me(e,(function(e){return e(t)}));return{criteria:s,index:++r,value:t}}));return function(t,e){var r=t.length;for(t.sort((function(t,e){return function(t,e,n){for(var r=-1,i=t.criteria,s=e.criteria,o=i.length,a=n.length;++r<o;){var u=xi(i[r],s[r]);if(u)return r>=a?u:u*("desc"==n[r]?-1:1)}return t.index-e.index}(t,e,n)}));r--;)t[r]=t[r].value;return t}(i)}function Vr(t,e,n){for(var r=-1,i=e.length,s={};++r<i;){var o=e[r],a=wr(t,o);n(a,o)&&Qr(s,mi(o,t),a)}return s}function jr(t,e,n,r){var i=r?$e:ke,s=-1,o=e.length,a=t;for(t===e&&(e=Ei(e)),n&&(a=Me(t,Ke(n)));++s<o;)for(var u=0,l=e[s],c=n?n(l):l;(u=i(a,c,u,r))>-1;)a!==t&&zt.call(a,u,1),zt.call(t,u,1);return t}function qr(t,e){for(var n=t?e.length:0,r=n-1;n--;){var i=e[n];if(n==r||i!==s){var s=i;gs(i)?zt.call(t,i,1):ui(t,i)}}return t}function Gr(t,e){return t+de(An()*(e-t+1))}function Wr(t,e){var n="";if(!t||e<1||e>h)return n;do{e%2&&(n+=t),(e=de(e/2))&&(t+=t)}while(e);return n}function zr(t,e){return Is(xs(t,e,nu),t+"")}function Yr(t){return Kn(ka(t))}function Kr(t,e){var n=ka(t);return Ms(n,sr(e,0,n.length))}function Qr(t,e,n,r){if(!Zo(t))return t;for(var s=-1,o=(e=mi(e,t)).length,a=o-1,u=t;null!=u&&++s<o;){var l=Rs(e[s]),c=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return t;if(s!=a){var h=u[l];(c=r?r(h,l,u):i)===i&&(c=Zo(h)?h:gs(e[s+1])?[]:{})}Zn(u,l,c),u=u[l]}return t}var Jr=In?function(t,e){return In.set(t,e),t}:nu,Xr=te?function(t,e){return te(t,"toString",{configurable:!0,enumerable:!1,value:Za(e),writable:!0})}:nu;function Zr(t){return Ms(ka(t))}function ti(t,e,n){var i=-1,s=t.length;e<0&&(e=-e>s?0:s+e),(n=n>s?s:n)<0&&(n+=s),s=e>n?0:n-e>>>0,e>>>=0;for(var o=r(s);++i<s;)o[i]=t[i+e];return o}function ei(t,e){var n;return cr(t,(function(t,r,i){return!(n=e(t,r,i))})),!!n}function ni(t,e,n){var r=0,i=null==t?r:t.length;if("number"==typeof e&&e==e&&i<=2147483647){for(;r<i;){var s=r+i>>>1,o=t[s];null!==o&&!aa(o)&&(n?o<=e:o<e)?r=s+1:i=s}return i}return ri(t,e,nu,n)}function ri(t,e,n,r){var s=0,o=null==t?0:t.length;if(0===o)return 0;for(var a=(e=n(e))!=e,u=null===e,l=aa(e),c=e===i;s<o;){var h=de((s+o)/2),f=n(t[h]),d=f!==i,p=null===f,g=f==f,m=aa(f);if(a)var v=r||g;else v=c?g&&(r||d):u?g&&d&&(r||!p):l?g&&d&&!p&&(r||!m):!p&&!m&&(r?f<=e:f<e);v?s=h+1:o=h}return vn(o,4294967294)}function ii(t,e){for(var n=-1,r=t.length,i=0,s=[];++n<r;){var o=t[n],a=e?e(o):o;if(!n||!ko(a,u)){var u=a;s[i++]=0===o?0:o}}return s}function si(t){return"number"==typeof t?t:aa(t)?f:+t}function oi(t){if("string"==typeof t)return t;if(jo(t))return Me(t,oi)+"";if(aa(t))return Fn?Fn.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function ai(t,e,n){var r=-1,i=Ne,s=t.length,o=!0,a=[],u=a;if(n)o=!1,i=Oe;else if(s>=200){var l=e?null:Wi(t);if(l)return un(l);o=!1,i=Je,u=new Wn}else u=e?[]:a;t:for(;++r<s;){var c=t[r],h=e?e(c):c;if(c=n||0!==c?c:0,o&&h==h){for(var f=u.length;f--;)if(u[f]===h)continue t;e&&u.push(h),a.push(c)}else i(u,h,n)||(u!==a&&u.push(h),a.push(c))}return a}function ui(t,e){return null==(t=_s(t,e=mi(e,t)))||delete t[Rs(Ys(e))]}function li(t,e,n,r){return Qr(t,e,n(wr(t,e)),r)}function ci(t,e,n,r){for(var i=t.length,s=r?i:-1;(r?s--:++s<i)&&e(t[s],s,t););return n?ti(t,r?0:s,r?s+1:i):ti(t,r?s+1:0,r?i:s)}function hi(t,e){var n=t;return n instanceof Vn&&(n=n.value()),Be(e,(function(t,e){return e.func.apply(e.thisArg,Le([t],e.args))}),n)}function fi(t,e,n){var i=t.length;if(i<2)return i?ai(t[0]):[];for(var s=-1,o=r(i);++s<i;)for(var a=t[s],u=-1;++u<i;)u!=s&&(o[s]=lr(o[s]||a,t[u],e,n));return ai(gr(o,1),e,n)}function di(t,e,n){for(var r=-1,s=t.length,o=e.length,a={};++r<s;){var u=r<o?e[r]:i;n(a,t[r],u)}return a}function pi(t){return Wo(t)?t:[]}function gi(t){return"function"==typeof t?t:nu}function mi(t,e){return jo(t)?t:vs(t,e)?[t]:Ps(va(t))}var vi=zr;function yi(t,e,n){var r=t.length;return n=n===i?r:n,!e&&n>=r?t:ti(t,e,n)}var bi=oe||function(t){return he.clearTimeout(t)};function Ai(t,e){if(e)return t.slice();var n=t.length,r=jt?jt(n):new t.constructor(n);return t.copy(r),r}function wi(t){var e=new t.constructor(t.byteLength);return new Vt(e).set(new Vt(t)),e}function Ci(t,e){var n=e?wi(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function xi(t,e){if(t!==e){var n=t!==i,r=null===t,s=t==t,o=aa(t),a=e!==i,u=null===e,l=e==e,c=aa(e);if(!u&&!c&&!o&&t>e||o&&a&&l&&!u&&!c||r&&a&&l||!n&&l||!s)return 1;if(!r&&!o&&!c&&t<e||c&&n&&s&&!r&&!o||u&&n&&s||!a&&s||!l)return-1}return 0}function _i(t,e,n,i){for(var s=-1,o=t.length,a=n.length,u=-1,l=e.length,c=mn(o-a,0),h=r(l+c),f=!i;++u<l;)h[u]=e[u];for(;++s<a;)(f||s<o)&&(h[n[s]]=t[s]);for(;c--;)h[u++]=t[s++];return h}function Si(t,e,n,i){for(var s=-1,o=t.length,a=-1,u=n.length,l=-1,c=e.length,h=mn(o-u,0),f=r(h+c),d=!i;++s<h;)f[s]=t[s];for(var p=s;++l<c;)f[p+l]=e[l];for(;++a<u;)(d||s<o)&&(f[p+n[a]]=t[s++]);return f}function Ei(t,e){var n=-1,i=t.length;for(e||(e=r(i));++n<i;)e[n]=t[n];return e}function Ti(t,e,n,r){var s=!n;n||(n={});for(var o=-1,a=e.length;++o<a;){var u=e[o],l=r?r(n[u],t[u],u,n,t):i;l===i&&(l=t[u]),s?rr(n,u,l):Zn(n,u,l)}return n}function Ii(t,e){return function(n,r){var i=jo(n)?_e:er,s=e?e():{};return i(n,t,ss(r,2),s)}}function Ni(t){return zr((function(e,n){var r=-1,s=n.length,o=s>1?n[s-1]:i,a=s>2?n[2]:i;for(o=t.length>3&&"function"==typeof o?(s--,o):i,a&&ms(n[0],n[1],a)&&(o=s<3?i:o,s=1),e=_t(e);++r<s;){var u=n[r];u&&t(e,u,r,o)}return e}))}function Oi(t,e){return function(n,r){if(null==n)return n;if(!Go(n))return t(n,r);for(var i=n.length,s=e?i:-1,o=_t(n);(e?s--:++s<i)&&!1!==r(o[s],s,o););return n}}function Mi(t){return function(e,n,r){for(var i=-1,s=_t(e),o=r(e),a=o.length;a--;){var u=o[t?a:++i];if(!1===n(s[u],u,s))break}return e}}function Li(t){return function(e){var n=rn(e=va(e))?hn(e):i,r=n?n[0]:e.charAt(0),s=n?yi(n,1).join(""):e.slice(1);return r[t]()+s}}function Bi(t){return function(e){return Be(Qa(Va(e).replace(Qt,"")),t,"")}}function Pi(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var n=kn(t.prototype),r=t.apply(n,e);return Zo(r)?r:n}}function Ri(t){return function(e,n,r){var s=_t(e);if(!Go(e)){var o=ss(n,3);e=Oa(e),n=function(t){return o(s[t],t,s)}}var a=t(e,n,r);return a>-1?s[o?e[a]:a]:i}}function Di(t){return Zi((function(e){var n=e.length,r=n,o=Hn.prototype.thru;for(t&&e.reverse();r--;){var a=e[r];if("function"!=typeof a)throw new Tt(s);if(o&&!u&&"wrapper"==rs(a))var u=new Hn([],!0)}for(r=u?r:n;++r<n;){var l=rs(a=e[r]),c="wrapper"==l?ns(a):i;u=c&&ys(c[0])&&424==c[1]&&!c[4].length&&1==c[9]?u[rs(c[0])].apply(u,c[3]):1==a.length&&ys(a)?u[l]():u.thru(a)}return function(){var t=arguments,r=t[0];if(u&&1==t.length&&jo(r))return u.plant(r).value();for(var i=0,s=n?e[i].apply(this,t):r;++i<n;)s=e[i].call(this,s);return s}}))}function Fi(t,e,n,s,o,a,u,c,h,f){var d=e&l,p=1&e,g=2&e,m=24&e,v=512&e,y=g?i:Pi(t);return function l(){for(var b=arguments.length,A=r(b),w=b;w--;)A[w]=arguments[w];if(m)var C=is(l),x=function(t,e){for(var n=t.length,r=0;n--;)t[n]===e&&++r;return r}(A,C);if(s&&(A=_i(A,s,o,m)),a&&(A=Si(A,a,u,m)),b-=x,m&&b<f){var _=an(A,C);return qi(t,e,Fi,l.placeholder,n,A,_,c,h,f-b)}var S=p?n:this,E=g?S[t]:t;return b=A.length,c?A=function(t,e){for(var n=t.length,r=vn(e.length,n),s=Ei(t);r--;){var o=e[r];t[r]=gs(o,n)?s[o]:i}return t}(A,c):v&&b>1&&A.reverse(),d&&h<b&&(A.length=h),this&&this!==he&&this instanceof l&&(E=y||Pi(E)),E.apply(S,A)}}function Ui(t,e){return function(n,r){return function(t,e,n,r){return yr(t,(function(t,i,s){e(r,n(t),i,s)})),r}(n,t,e(r),{})}}function ki(t,e){return function(n,r){var s;if(n===i&&r===i)return e;if(n!==i&&(s=n),r!==i){if(s===i)return r;"string"==typeof n||"string"==typeof r?(n=oi(n),r=oi(r)):(n=si(n),r=si(r)),s=t(n,r)}return s}}function $i(t){return Zi((function(e){return e=Me(e,Ke(ss())),zr((function(n){var r=this;return t(e,(function(t){return xe(t,r,n)}))}))}))}function Hi(t,e){var n=(e=e===i?" ":oi(e)).length;if(n<2)return n?Wr(e,t):e;var r=Wr(e,fe(t/cn(e)));return rn(e)?yi(hn(r),0,t).join(""):r.slice(0,t)}function Vi(t){return function(e,n,s){return s&&"number"!=typeof s&&ms(e,n,s)&&(n=s=i),e=fa(e),n===i?(n=e,e=0):n=fa(n),function(t,e,n,i){for(var s=-1,o=mn(fe((e-t)/(n||1)),0),a=r(o);o--;)a[i?o:++s]=t,t+=n;return a}(e,n,s=s===i?e<n?1:-1:fa(s),t)}}function ji(t){return function(e,n){return"string"==typeof e&&"string"==typeof n||(e=ga(e),n=ga(n)),t(e,n)}}function qi(t,e,n,r,s,o,a,l,c,h){var f=8&e;e|=f?u:64,4&(e&=~(f?64:u))||(e&=-4);var d=[t,e,s,f?o:i,f?a:i,f?i:o,f?i:a,l,c,h],p=n.apply(i,d);return ys(t)&&Es(p,d),p.placeholder=r,Ns(p,t,e)}function Gi(t){var e=xt[t];return function(t,n){if(t=ga(t),(n=null==n?0:vn(da(n),292))&&De(t)){var r=(va(t)+"e").split("e");return+((r=(va(e(r[0]+"e"+(+r[1]+n)))+"e").split("e"))[0]+"e"+(+r[1]-n))}return e(t)}}var Wi=Sn&&1/un(new Sn([,-0]))[1]==c?function(t){return new Sn(t)}:au;function zi(t){return function(e){var n=hs(e);return n==C?sn(e):n==T?ln(e):function(t,e){return Me(e,(function(e){return[e,t[e]]}))}(e,t(e))}}function Yi(t,e,n,o,c,h,f,d){var p=2&e;if(!p&&"function"!=typeof t)throw new Tt(s);var g=o?o.length:0;if(g||(e&=-97,o=c=i),f=f===i?f:mn(da(f),0),d=d===i?d:da(d),g-=c?c.length:0,64&e){var m=o,v=c;o=c=i}var y=p?i:ns(t),b=[t,e,n,o,c,m,v,h,f,d];if(y&&function(t,e){var n=t[1],r=e[1],i=n|r,s=i<131,o=r==l&&8==n||r==l&&256==n&&t[7].length<=e[8]||384==r&&e[7].length<=e[8]&&8==n;if(!s&&!o)return t;1&r&&(t[2]=e[2],i|=1&n?0:4);var u=e[3];if(u){var c=t[3];t[3]=c?_i(c,u,e[4]):u,t[4]=c?an(t[3],a):e[4]}(u=e[5])&&(c=t[5],t[5]=c?Si(c,u,e[6]):u,t[6]=c?an(t[5],a):e[6]),(u=e[7])&&(t[7]=u),r&l&&(t[8]=null==t[8]?e[8]:vn(t[8],e[8])),null==t[9]&&(t[9]=e[9]),t[0]=e[0],t[1]=i}(b,y),t=b[0],e=b[1],n=b[2],o=b[3],c=b[4],!(d=b[9]=b[9]===i?p?0:t.length:mn(b[9]-g,0))&&24&e&&(e&=-25),e&&1!=e)A=8==e||16==e?function(t,e,n){var s=Pi(t);return function o(){for(var a=arguments.length,u=r(a),l=a,c=is(o);l--;)u[l]=arguments[l];var h=a<3&&u[0]!==c&&u[a-1]!==c?[]:an(u,c);return(a-=h.length)<n?qi(t,e,Fi,o.placeholder,i,u,h,i,i,n-a):xe(this&&this!==he&&this instanceof o?s:t,this,u)}}(t,e,d):e!=u&&33!=e||c.length?Fi.apply(i,b):function(t,e,n,i){var s=1&e,o=Pi(t);return function e(){for(var a=-1,u=arguments.length,l=-1,c=i.length,h=r(c+u),f=this&&this!==he&&this instanceof e?o:t;++l<c;)h[l]=i[l];for(;u--;)h[l++]=arguments[++a];return xe(f,s?n:this,h)}}(t,e,n,o);else var A=function(t,e,n){var r=1&e,i=Pi(t);return function e(){return(this&&this!==he&&this instanceof e?i:t).apply(r?n:this,arguments)}}(t,e,n);return Ns((y?Jr:Es)(A,b),t,e)}function Ki(t,e,n,r){return t===i||ko(t,Ot[n])&&!Bt.call(r,n)?e:t}function Qi(t,e,n,r,s,o){return Zo(t)&&Zo(e)&&(o.set(e,t),kr(t,e,i,Qi,o),o.delete(e)),t}function Ji(t){return ra(t)?i:t}function Xi(t,e,n,r,s,o){var a=1&n,u=t.length,l=e.length;if(u!=l&&!(a&&l>u))return!1;var c=o.get(t),h=o.get(e);if(c&&h)return c==e&&h==t;var f=-1,d=!0,p=2&n?new Wn:i;for(o.set(t,e),o.set(e,t);++f<u;){var g=t[f],m=e[f];if(r)var v=a?r(m,g,f,e,t,o):r(g,m,f,t,e,o);if(v!==i){if(v)continue;d=!1;break}if(p){if(!Re(e,(function(t,e){if(!Je(p,e)&&(g===t||s(g,t,n,r,o)))return p.push(e)}))){d=!1;break}}else if(g!==m&&!s(g,m,n,r,o)){d=!1;break}}return o.delete(t),o.delete(e),d}function Zi(t){return Is(xs(t,i,js),t+"")}function ts(t){return Cr(t,Oa,ls)}function es(t){return Cr(t,Ma,cs)}var ns=In?function(t){return In.get(t)}:au;function rs(t){for(var e=t.name+"",n=Nn[e],r=Bt.call(Nn,e)?n.length:0;r--;){var i=n[r],s=i.func;if(null==s||s==t)return i.name}return e}function is(t){return(Bt.call(Un,"placeholder")?Un:t).placeholder}function ss(){var t=Un.iteratee||ru;return t=t===ru?Br:t,arguments.length?t(arguments[0],arguments[1]):t}function os(t,e){var n,r,i=t.__data__;return("string"==(r=typeof(n=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof e?"string":"hash"]:i.map}function as(t){for(var e=Oa(t),n=e.length;n--;){var r=e[n],i=t[r];e[n]=[r,i,ws(i)]}return e}function us(t,e){var n=function(t,e){return null==t?i:t[e]}(t,e);return Lr(n)?n:i}var ls=ge?function(t){return null==t?[]:(t=_t(t),Ie(ge(t),(function(e){return Wt.call(t,e)})))}:pu,cs=ge?function(t){for(var e=[];t;)Le(e,ls(t)),t=qt(t);return e}:pu,hs=xr;function fs(t,e,n){for(var r=-1,i=(e=mi(e,t)).length,s=!1;++r<i;){var o=Rs(e[r]);if(!(s=null!=t&&n(t,o)))break;t=t[o]}return s||++r!=i?s:!!(i=null==t?0:t.length)&&Xo(i)&&gs(o,i)&&(jo(t)||Vo(t))}function ds(t){return"function"!=typeof t.constructor||As(t)?{}:kn(qt(t))}function ps(t){return jo(t)||Vo(t)||!!(Yt&&t&&t[Yt])}function gs(t,e){var n=typeof t;return!!(e=null==e?h:e)&&("number"==n||"symbol"!=n&&vt.test(t))&&t>-1&&t%1==0&&t<e}function ms(t,e,n){if(!Zo(n))return!1;var r=typeof e;return!!("number"==r?Go(n)&&gs(e,n.length):"string"==r&&e in n)&&ko(n[e],t)}function vs(t,e){if(jo(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!aa(t))||Z.test(t)||!X.test(t)||null!=e&&t in _t(e)}function ys(t){var e=rs(t),n=Un[e];if("function"!=typeof n||!(e in Vn.prototype))return!1;if(t===n)return!0;var r=ns(n);return!!r&&t===r[0]}(Cn&&hs(new Cn(new ArrayBuffer(1)))!=L||xn&&hs(new xn)!=C||_n&&hs(_n.resolve())!=S||Sn&&hs(new Sn)!=T||En&&hs(new En)!=O)&&(hs=function(t){var e=xr(t),n=e==_?t.constructor:i,r=n?Ds(n):"";if(r)switch(r){case On:return L;case Mn:return C;case Ln:return S;case Bn:return T;case Pn:return O}return e});var bs=Mt?Qo:gu;function As(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Ot)}function ws(t){return t==t&&!Zo(t)}function Cs(t,e){return function(n){return null!=n&&n[t]===e&&(e!==i||t in _t(n))}}function xs(t,e,n){return e=mn(e===i?t.length-1:e,0),function(){for(var i=arguments,s=-1,o=mn(i.length-e,0),a=r(o);++s<o;)a[s]=i[e+s];s=-1;for(var u=r(e+1);++s<e;)u[s]=i[s];return u[e]=n(a),xe(t,this,u)}}function _s(t,e){return e.length<2?t:wr(t,ti(e,0,-1))}function Ss(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var Es=Os(Jr),Ts=ce||function(t,e){return he.setTimeout(t,e)},Is=Os(Xr);function Ns(t,e,n){var r=e+"";return Is(t,function(t,e){var n=e.length;if(!n)return t;var r=n-1;return e[r]=(n>1?"& ":"")+e[r],e=e.join(n>2?", ":" "),t.replace(st,"{\n/* [wrapped with "+e+"] */\n")}(r,function(t,e){return Se(p,(function(n){var r="_."+n[0];e&n[1]&&!Ne(t,r)&&t.push(r)})),t.sort()}(function(t){var e=t.match(ot);return e?e[1].split(at):[]}(r),n)))}function Os(t){var e=0,n=0;return function(){var r=yn(),s=16-(r-n);if(n=r,s>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(i,arguments)}}function Ms(t,e){var n=-1,r=t.length,s=r-1;for(e=e===i?r:e;++n<e;){var o=Gr(n,s),a=t[o];t[o]=t[n],t[n]=a}return t.length=e,t}var Ls,Bs,Ps=(Ls=Bo((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(tt,(function(t,n,r,i){e.push(r?i.replace(ct,"$1"):n||t)})),e}),(function(t){return 500===Bs.size&&Bs.clear(),t})),Bs=Ls.cache,Ls);function Rs(t){if("string"==typeof t||aa(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function Ds(t){if(null!=t){try{return Lt.call(t)}catch(t){}try{return t+""}catch(t){}}return""}function Fs(t){if(t instanceof Vn)return t.clone();var e=new Hn(t.__wrapped__,t.__chain__);return e.__actions__=Ei(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}var Us=zr((function(t,e){return Wo(t)?lr(t,gr(e,1,Wo,!0)):[]})),ks=zr((function(t,e){var n=Ys(e);return Wo(n)&&(n=i),Wo(t)?lr(t,gr(e,1,Wo,!0),ss(n,2)):[]})),$s=zr((function(t,e){var n=Ys(e);return Wo(n)&&(n=i),Wo(t)?lr(t,gr(e,1,Wo,!0),i,n):[]}));function Hs(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:da(n);return i<0&&(i=mn(r+i,0)),Ue(t,ss(e,3),i)}function Vs(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var s=r-1;return n!==i&&(s=da(n),s=n<0?mn(r+s,0):vn(s,r-1)),Ue(t,ss(e,3),s,!0)}function js(t){return null!=t&&t.length?gr(t,1):[]}function qs(t){return t&&t.length?t[0]:i}var Gs=zr((function(t){var e=Me(t,pi);return e.length&&e[0]===t[0]?Tr(e):[]})),Ws=zr((function(t){var e=Ys(t),n=Me(t,pi);return e===Ys(n)?e=i:n.pop(),n.length&&n[0]===t[0]?Tr(n,ss(e,2)):[]})),zs=zr((function(t){var e=Ys(t),n=Me(t,pi);return(e="function"==typeof e?e:i)&&n.pop(),n.length&&n[0]===t[0]?Tr(n,i,e):[]}));function Ys(t){var e=null==t?0:t.length;return e?t[e-1]:i}var Ks=zr(Qs);function Qs(t,e){return t&&t.length&&e&&e.length?jr(t,e):t}var Js=Zi((function(t,e){var n=null==t?0:t.length,r=ir(t,e);return qr(t,Me(e,(function(t){return gs(t,n)?+t:t})).sort(xi)),r}));function Xs(t){return null==t?t:wn.call(t)}var Zs=zr((function(t){return ai(gr(t,1,Wo,!0))})),to=zr((function(t){var e=Ys(t);return Wo(e)&&(e=i),ai(gr(t,1,Wo,!0),ss(e,2))})),eo=zr((function(t){var e=Ys(t);return e="function"==typeof e?e:i,ai(gr(t,1,Wo,!0),i,e)}));function no(t){if(!t||!t.length)return[];var e=0;return t=Ie(t,(function(t){if(Wo(t))return e=mn(t.length,e),!0})),ze(e,(function(e){return Me(t,je(e))}))}function ro(t,e){if(!t||!t.length)return[];var n=no(t);return null==e?n:Me(n,(function(t){return xe(e,i,t)}))}var io=zr((function(t,e){return Wo(t)?lr(t,e):[]})),so=zr((function(t){return fi(Ie(t,Wo))})),oo=zr((function(t){var e=Ys(t);return Wo(e)&&(e=i),fi(Ie(t,Wo),ss(e,2))})),ao=zr((function(t){var e=Ys(t);return e="function"==typeof e?e:i,fi(Ie(t,Wo),i,e)})),uo=zr(no),lo=zr((function(t){var e=t.length,n=e>1?t[e-1]:i;return n="function"==typeof n?(t.pop(),n):i,ro(t,n)}));function co(t){var e=Un(t);return e.__chain__=!0,e}function ho(t,e){return e(t)}var fo=Zi((function(t){var e=t.length,n=e?t[0]:0,r=this.__wrapped__,s=function(e){return ir(e,t)};return!(e>1||this.__actions__.length)&&r instanceof Vn&&gs(n)?((r=r.slice(n,+n+(e?1:0))).__actions__.push({func:ho,args:[s],thisArg:i}),new Hn(r,this.__chain__).thru((function(t){return e&&!t.length&&t.push(i),t}))):this.thru(s)})),po=Ii((function(t,e,n){Bt.call(t,n)?++t[n]:rr(t,n,1)})),go=Ri(Hs),mo=Ri(Vs);function vo(t,e){return(jo(t)?Se:cr)(t,ss(e,3))}function yo(t,e){return(jo(t)?Ee:hr)(t,ss(e,3))}var bo=Ii((function(t,e,n){Bt.call(t,n)?t[n].push(e):rr(t,n,[e])})),Ao=zr((function(t,e,n){var i=-1,s="function"==typeof e,o=Go(t)?r(t.length):[];return cr(t,(function(t){o[++i]=s?xe(e,t,n):Ir(t,e,n)})),o})),wo=Ii((function(t,e,n){rr(t,n,e)}));function Co(t,e){return(jo(t)?Me:Dr)(t,ss(e,3))}var xo=Ii((function(t,e,n){t[n?0:1].push(e)}),(function(){return[[],[]]})),_o=zr((function(t,e){if(null==t)return[];var n=e.length;return n>1&&ms(t,e[0],e[1])?e=[]:n>2&&ms(e[0],e[1],e[2])&&(e=[e[0]]),Hr(t,gr(e,1),[])})),So=le||function(){return he.Date.now()};function Eo(t,e,n){return e=n?i:e,e=t&&null==e?t.length:e,Yi(t,l,i,i,i,i,e)}function To(t,e){var n;if("function"!=typeof e)throw new Tt(s);return t=da(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=i),n}}var Io=zr((function(t,e,n){var r=1;if(n.length){var i=an(n,is(Io));r|=u}return Yi(t,r,e,n,i)})),No=zr((function(t,e,n){var r=3;if(n.length){var i=an(n,is(No));r|=u}return Yi(e,r,t,n,i)}));function Oo(t,e,n){var r,o,a,u,l,c,h=0,f=!1,d=!1,p=!0;if("function"!=typeof t)throw new Tt(s);function g(e){var n=r,s=o;return r=o=i,h=e,u=t.apply(s,n)}function m(t){var n=t-c;return c===i||n>=e||n<0||d&&t-h>=a}function v(){var t=So();if(m(t))return y(t);l=Ts(v,function(t){var n=e-(t-c);return d?vn(n,a-(t-h)):n}(t))}function y(t){return l=i,p&&r?g(t):(r=o=i,u)}function b(){var t=So(),n=m(t);if(r=arguments,o=this,c=t,n){if(l===i)return function(t){return h=t,l=Ts(v,e),f?g(t):u}(c);if(d)return bi(l),l=Ts(v,e),g(c)}return l===i&&(l=Ts(v,e)),u}return e=ga(e)||0,Zo(n)&&(f=!!n.leading,a=(d="maxWait"in n)?mn(ga(n.maxWait)||0,e):a,p="trailing"in n?!!n.trailing:p),b.cancel=function(){l!==i&&bi(l),h=0,r=c=o=l=i},b.flush=function(){return l===i?u:y(So())},b}var Mo=zr((function(t,e){return ur(t,1,e)})),Lo=zr((function(t,e,n){return ur(t,ga(e)||0,n)}));function Bo(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new Tt(s);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],s=n.cache;if(s.has(i))return s.get(i);var o=t.apply(this,r);return n.cache=s.set(i,o)||s,o};return n.cache=new(Bo.Cache||Gn),n}function Po(t){if("function"!=typeof t)throw new Tt(s);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}Bo.Cache=Gn;var Ro=vi((function(t,e){var n=(e=1==e.length&&jo(e[0])?Me(e[0],Ke(ss())):Me(gr(e,1),Ke(ss()))).length;return zr((function(r){for(var i=-1,s=vn(r.length,n);++i<s;)r[i]=e[i].call(this,r[i]);return xe(t,this,r)}))})),Do=zr((function(t,e){var n=an(e,is(Do));return Yi(t,u,i,e,n)})),Fo=zr((function(t,e){var n=an(e,is(Fo));return Yi(t,64,i,e,n)})),Uo=Zi((function(t,e){return Yi(t,256,i,i,i,e)}));function ko(t,e){return t===e||t!=t&&e!=e}var $o=ji(_r),Ho=ji((function(t,e){return t>=e})),Vo=Nr(function(){return arguments}())?Nr:function(t){return ta(t)&&Bt.call(t,"callee")&&!Wt.call(t,"callee")},jo=r.isArray,qo=ve?Ke(ve):function(t){return ta(t)&&xr(t)==M};function Go(t){return null!=t&&Xo(t.length)&&!Qo(t)}function Wo(t){return ta(t)&&Go(t)}var zo=me||gu,Yo=ye?Ke(ye):function(t){return ta(t)&&xr(t)==y};function Ko(t){if(!ta(t))return!1;var e=xr(t);return e==b||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!ra(t)}function Qo(t){if(!Zo(t))return!1;var e=xr(t);return e==A||e==w||"[object AsyncFunction]"==e||"[object Proxy]"==e}function Jo(t){return"number"==typeof t&&t==da(t)}function Xo(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=h}function Zo(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function ta(t){return null!=t&&"object"==typeof t}var ea=be?Ke(be):function(t){return ta(t)&&hs(t)==C};function na(t){return"number"==typeof t||ta(t)&&xr(t)==x}function ra(t){if(!ta(t)||xr(t)!=_)return!1;var e=qt(t);if(null===e)return!0;var n=Bt.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&Lt.call(n)==Ft}var ia=Ae?Ke(Ae):function(t){return ta(t)&&xr(t)==E},sa=we?Ke(we):function(t){return ta(t)&&hs(t)==T};function oa(t){return"string"==typeof t||!jo(t)&&ta(t)&&xr(t)==I}function aa(t){return"symbol"==typeof t||ta(t)&&xr(t)==N}var ua=Ce?Ke(Ce):function(t){return ta(t)&&Xo(t.length)&&!!ie[xr(t)]},la=ji(Rr),ca=ji((function(t,e){return t<=e}));function ha(t){if(!t)return[];if(Go(t))return oa(t)?hn(t):Ei(t);if(Kt&&t[Kt])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[Kt]());var e=hs(t);return(e==C?sn:e==T?un:ka)(t)}function fa(t){return t?(t=ga(t))===c||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function da(t){var e=fa(t),n=e%1;return e==e?n?e-n:e:0}function pa(t){return t?sr(da(t),0,d):0}function ga(t){if("number"==typeof t)return t;if(aa(t))return f;if(Zo(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Zo(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Ye(t);var n=pt.test(t);return n||mt.test(t)?ue(t.slice(2),n?2:8):dt.test(t)?f:+t}function ma(t){return Ti(t,Ma(t))}function va(t){return null==t?"":oi(t)}var ya=Ni((function(t,e){if(As(e)||Go(e))Ti(e,Oa(e),t);else for(var n in e)Bt.call(e,n)&&Zn(t,n,e[n])})),ba=Ni((function(t,e){Ti(e,Ma(e),t)})),Aa=Ni((function(t,e,n,r){Ti(e,Ma(e),t,r)})),wa=Ni((function(t,e,n,r){Ti(e,Oa(e),t,r)})),Ca=Zi(ir),xa=zr((function(t,e){t=_t(t);var n=-1,r=e.length,s=r>2?e[2]:i;for(s&&ms(e[0],e[1],s)&&(r=1);++n<r;)for(var o=e[n],a=Ma(o),u=-1,l=a.length;++u<l;){var c=a[u],h=t[c];(h===i||ko(h,Ot[c])&&!Bt.call(t,c))&&(t[c]=o[c])}return t})),_a=zr((function(t){return t.push(i,Qi),xe(Ba,i,t)}));function Sa(t,e,n){var r=null==t?i:wr(t,e);return r===i?n:r}function Ea(t,e){return null!=t&&fs(t,e,Er)}var Ta=Ui((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=Dt.call(e)),t[e]=n}),Za(nu)),Ia=Ui((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=Dt.call(e)),Bt.call(t,e)?t[e].push(n):t[e]=[n]}),ss),Na=zr(Ir);function Oa(t){return Go(t)?Yn(t):Pr(t)}function Ma(t){return Go(t)?Yn(t,!0):function(t){if(!Zo(t))return function(t){var e=[];if(null!=t)for(var n in _t(t))e.push(n);return e}(t);var e=As(t),n=[];for(var r in t)("constructor"!=r||!e&&Bt.call(t,r))&&n.push(r);return n}(t)}var La=Ni((function(t,e,n){kr(t,e,n)})),Ba=Ni((function(t,e,n,r){kr(t,e,n,r)})),Pa=Zi((function(t,e){var n={};if(null==t)return n;var r=!1;e=Me(e,(function(e){return e=mi(e,t),r||(r=e.length>1),e})),Ti(t,es(t),n),r&&(n=or(n,7,Ji));for(var i=e.length;i--;)ui(n,e[i]);return n})),Ra=Zi((function(t,e){return null==t?{}:function(t,e){return Vr(t,e,(function(e,n){return Ea(t,n)}))}(t,e)}));function Da(t,e){if(null==t)return{};var n=Me(es(t),(function(t){return[t]}));return e=ss(e),Vr(t,n,(function(t,n){return e(t,n[0])}))}var Fa=zi(Oa),Ua=zi(Ma);function ka(t){return null==t?[]:Qe(t,Oa(t))}var $a=Bi((function(t,e,n){return e=e.toLowerCase(),t+(n?Ha(e):e)}));function Ha(t){return Ka(va(t).toLowerCase())}function Va(t){return(t=va(t))&&t.replace(yt,tn).replace(Jt,"")}var ja=Bi((function(t,e,n){return t+(n?"-":"")+e.toLowerCase()})),qa=Bi((function(t,e,n){return t+(n?" ":"")+e.toLowerCase()})),Ga=Li("toLowerCase"),Wa=Bi((function(t,e,n){return t+(n?"_":"")+e.toLowerCase()})),za=Bi((function(t,e,n){return t+(n?" ":"")+Ka(e)})),Ya=Bi((function(t,e,n){return t+(n?" ":"")+e.toUpperCase()})),Ka=Li("toUpperCase");function Qa(t,e,n){return t=va(t),(e=n?i:e)===i?function(t){return ee.test(t)}(t)?function(t){return t.match(Zt)||[]}(t):function(t){return t.match(ut)||[]}(t):t.match(e)||[]}var Ja=zr((function(t,e){try{return xe(t,i,e)}catch(t){return Ko(t)?t:new wt(t)}})),Xa=Zi((function(t,e){return Se(e,(function(e){e=Rs(e),rr(t,e,Io(t[e],t))})),t}));function Za(t){return function(){return t}}var tu=Di(),eu=Di(!0);function nu(t){return t}function ru(t){return Br("function"==typeof t?t:or(t,1))}var iu=zr((function(t,e){return function(n){return Ir(n,t,e)}})),su=zr((function(t,e){return function(n){return Ir(t,n,e)}}));function ou(t,e,n){var r=Oa(e),i=Ar(e,r);null!=n||Zo(e)&&(i.length||!r.length)||(n=e,e=t,t=this,i=Ar(e,Oa(e)));var s=!(Zo(n)&&"chain"in n&&!n.chain),o=Qo(t);return Se(i,(function(n){var r=e[n];t[n]=r,o&&(t.prototype[n]=function(){var e=this.__chain__;if(s||e){var n=t(this.__wrapped__);return(n.__actions__=Ei(this.__actions__)).push({func:r,args:arguments,thisArg:t}),n.__chain__=e,n}return r.apply(t,Le([this.value()],arguments))})})),t}function au(){}var uu=$i(Me),lu=$i(Te),cu=$i(Re);function hu(t){return vs(t)?je(Rs(t)):function(t){return function(e){return wr(e,t)}}(t)}var fu=Vi(),du=Vi(!0);function pu(){return[]}function gu(){return!1}var mu,vu=ki((function(t,e){return t+e}),0),yu=Gi("ceil"),bu=ki((function(t,e){return t/e}),1),Au=Gi("floor"),wu=ki((function(t,e){return t*e}),1),Cu=Gi("round"),xu=ki((function(t,e){return t-e}),0);return Un.after=function(t,e){if("function"!=typeof e)throw new Tt(s);return t=da(t),function(){if(--t<1)return e.apply(this,arguments)}},Un.ary=Eo,Un.assign=ya,Un.assignIn=ba,Un.assignInWith=Aa,Un.assignWith=wa,Un.at=Ca,Un.before=To,Un.bind=Io,Un.bindAll=Xa,Un.bindKey=No,Un.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return jo(t)?t:[t]},Un.chain=co,Un.chunk=function(t,e,n){e=(n?ms(t,e,n):e===i)?1:mn(da(e),0);var s=null==t?0:t.length;if(!s||e<1)return[];for(var o=0,a=0,u=r(fe(s/e));o<s;)u[a++]=ti(t,o,o+=e);return u},Un.compact=function(t){for(var e=-1,n=null==t?0:t.length,r=0,i=[];++e<n;){var s=t[e];s&&(i[r++]=s)}return i},Un.concat=function(){var t=arguments.length;if(!t)return[];for(var e=r(t-1),n=arguments[0],i=t;i--;)e[i-1]=arguments[i];return Le(jo(n)?Ei(n):[n],gr(e,1))},Un.cond=function(t){var e=null==t?0:t.length,n=ss();return t=e?Me(t,(function(t){if("function"!=typeof t[1])throw new Tt(s);return[n(t[0]),t[1]]})):[],zr((function(n){for(var r=-1;++r<e;){var i=t[r];if(xe(i[0],this,n))return xe(i[1],this,n)}}))},Un.conforms=function(t){return function(t){var e=Oa(t);return function(n){return ar(n,t,e)}}(or(t,1))},Un.constant=Za,Un.countBy=po,Un.create=function(t,e){var n=kn(t);return null==e?n:nr(n,e)},Un.curry=function t(e,n,r){var s=Yi(e,8,i,i,i,i,i,n=r?i:n);return s.placeholder=t.placeholder,s},Un.curryRight=function t(e,n,r){var s=Yi(e,16,i,i,i,i,i,n=r?i:n);return s.placeholder=t.placeholder,s},Un.debounce=Oo,Un.defaults=xa,Un.defaultsDeep=_a,Un.defer=Mo,Un.delay=Lo,Un.difference=Us,Un.differenceBy=ks,Un.differenceWith=$s,Un.drop=function(t,e,n){var r=null==t?0:t.length;return r?ti(t,(e=n||e===i?1:da(e))<0?0:e,r):[]},Un.dropRight=function(t,e,n){var r=null==t?0:t.length;return r?ti(t,0,(e=r-(e=n||e===i?1:da(e)))<0?0:e):[]},Un.dropRightWhile=function(t,e){return t&&t.length?ci(t,ss(e,3),!0,!0):[]},Un.dropWhile=function(t,e){return t&&t.length?ci(t,ss(e,3),!0):[]},Un.fill=function(t,e,n,r){var s=null==t?0:t.length;return s?(n&&"number"!=typeof n&&ms(t,e,n)&&(n=0,r=s),function(t,e,n,r){var s=t.length;for((n=da(n))<0&&(n=-n>s?0:s+n),(r=r===i||r>s?s:da(r))<0&&(r+=s),r=n>r?0:pa(r);n<r;)t[n++]=e;return t}(t,e,n,r)):[]},Un.filter=function(t,e){return(jo(t)?Ie:pr)(t,ss(e,3))},Un.flatMap=function(t,e){return gr(Co(t,e),1)},Un.flatMapDeep=function(t,e){return gr(Co(t,e),c)},Un.flatMapDepth=function(t,e,n){return n=n===i?1:da(n),gr(Co(t,e),n)},Un.flatten=js,Un.flattenDeep=function(t){return null!=t&&t.length?gr(t,c):[]},Un.flattenDepth=function(t,e){return null!=t&&t.length?gr(t,e=e===i?1:da(e)):[]},Un.flip=function(t){return Yi(t,512)},Un.flow=tu,Un.flowRight=eu,Un.fromPairs=function(t){for(var e=-1,n=null==t?0:t.length,r={};++e<n;){var i=t[e];r[i[0]]=i[1]}return r},Un.functions=function(t){return null==t?[]:Ar(t,Oa(t))},Un.functionsIn=function(t){return null==t?[]:Ar(t,Ma(t))},Un.groupBy=bo,Un.initial=function(t){return null!=t&&t.length?ti(t,0,-1):[]},Un.intersection=Gs,Un.intersectionBy=Ws,Un.intersectionWith=zs,Un.invert=Ta,Un.invertBy=Ia,Un.invokeMap=Ao,Un.iteratee=ru,Un.keyBy=wo,Un.keys=Oa,Un.keysIn=Ma,Un.map=Co,Un.mapKeys=function(t,e){var n={};return e=ss(e,3),yr(t,(function(t,r,i){rr(n,e(t,r,i),t)})),n},Un.mapValues=function(t,e){var n={};return e=ss(e,3),yr(t,(function(t,r,i){rr(n,r,e(t,r,i))})),n},Un.matches=function(t){return Fr(or(t,1))},Un.matchesProperty=function(t,e){return Ur(t,or(e,1))},Un.memoize=Bo,Un.merge=La,Un.mergeWith=Ba,Un.method=iu,Un.methodOf=su,Un.mixin=ou,Un.negate=Po,Un.nthArg=function(t){return t=da(t),zr((function(e){return $r(e,t)}))},Un.omit=Pa,Un.omitBy=function(t,e){return Da(t,Po(ss(e)))},Un.once=function(t){return To(2,t)},Un.orderBy=function(t,e,n,r){return null==t?[]:(jo(e)||(e=null==e?[]:[e]),jo(n=r?i:n)||(n=null==n?[]:[n]),Hr(t,e,n))},Un.over=uu,Un.overArgs=Ro,Un.overEvery=lu,Un.overSome=cu,Un.partial=Do,Un.partialRight=Fo,Un.partition=xo,Un.pick=Ra,Un.pickBy=Da,Un.property=hu,Un.propertyOf=function(t){return function(e){return null==t?i:wr(t,e)}},Un.pull=Ks,Un.pullAll=Qs,Un.pullAllBy=function(t,e,n){return t&&t.length&&e&&e.length?jr(t,e,ss(n,2)):t},Un.pullAllWith=function(t,e,n){return t&&t.length&&e&&e.length?jr(t,e,i,n):t},Un.pullAt=Js,Un.range=fu,Un.rangeRight=du,Un.rearg=Uo,Un.reject=function(t,e){return(jo(t)?Ie:pr)(t,Po(ss(e,3)))},Un.remove=function(t,e){var n=[];if(!t||!t.length)return n;var r=-1,i=[],s=t.length;for(e=ss(e,3);++r<s;){var o=t[r];e(o,r,t)&&(n.push(o),i.push(r))}return qr(t,i),n},Un.rest=function(t,e){if("function"!=typeof t)throw new Tt(s);return zr(t,e=e===i?e:da(e))},Un.reverse=Xs,Un.sampleSize=function(t,e,n){return e=(n?ms(t,e,n):e===i)?1:da(e),(jo(t)?Qn:Kr)(t,e)},Un.set=function(t,e,n){return null==t?t:Qr(t,e,n)},Un.setWith=function(t,e,n,r){return r="function"==typeof r?r:i,null==t?t:Qr(t,e,n,r)},Un.shuffle=function(t){return(jo(t)?Jn:Zr)(t)},Un.slice=function(t,e,n){var r=null==t?0:t.length;return r?(n&&"number"!=typeof n&&ms(t,e,n)?(e=0,n=r):(e=null==e?0:da(e),n=n===i?r:da(n)),ti(t,e,n)):[]},Un.sortBy=_o,Un.sortedUniq=function(t){return t&&t.length?ii(t):[]},Un.sortedUniqBy=function(t,e){return t&&t.length?ii(t,ss(e,2)):[]},Un.split=function(t,e,n){return n&&"number"!=typeof n&&ms(t,e,n)&&(e=n=i),(n=n===i?d:n>>>0)?(t=va(t))&&("string"==typeof e||null!=e&&!ia(e))&&!(e=oi(e))&&rn(t)?yi(hn(t),0,n):t.split(e,n):[]},Un.spread=function(t,e){if("function"!=typeof t)throw new Tt(s);return e=null==e?0:mn(da(e),0),zr((function(n){var r=n[e],i=yi(n,0,e);return r&&Le(i,r),xe(t,this,i)}))},Un.tail=function(t){var e=null==t?0:t.length;return e?ti(t,1,e):[]},Un.take=function(t,e,n){return t&&t.length?ti(t,0,(e=n||e===i?1:da(e))<0?0:e):[]},Un.takeRight=function(t,e,n){var r=null==t?0:t.length;return r?ti(t,(e=r-(e=n||e===i?1:da(e)))<0?0:e,r):[]},Un.takeRightWhile=function(t,e){return t&&t.length?ci(t,ss(e,3),!1,!0):[]},Un.takeWhile=function(t,e){return t&&t.length?ci(t,ss(e,3)):[]},Un.tap=function(t,e){return e(t),t},Un.throttle=function(t,e,n){var r=!0,i=!0;if("function"!=typeof t)throw new Tt(s);return Zo(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),Oo(t,e,{leading:r,maxWait:e,trailing:i})},Un.thru=ho,Un.toArray=ha,Un.toPairs=Fa,Un.toPairsIn=Ua,Un.toPath=function(t){return jo(t)?Me(t,Rs):aa(t)?[t]:Ei(Ps(va(t)))},Un.toPlainObject=ma,Un.transform=function(t,e,n){var r=jo(t),i=r||zo(t)||ua(t);if(e=ss(e,4),null==n){var s=t&&t.constructor;n=i?r?new s:[]:Zo(t)&&Qo(s)?kn(qt(t)):{}}return(i?Se:yr)(t,(function(t,r,i){return e(n,t,r,i)})),n},Un.unary=function(t){return Eo(t,1)},Un.union=Zs,Un.unionBy=to,Un.unionWith=eo,Un.uniq=function(t){return t&&t.length?ai(t):[]},Un.uniqBy=function(t,e){return t&&t.length?ai(t,ss(e,2)):[]},Un.uniqWith=function(t,e){return e="function"==typeof e?e:i,t&&t.length?ai(t,i,e):[]},Un.unset=function(t,e){return null==t||ui(t,e)},Un.unzip=no,Un.unzipWith=ro,Un.update=function(t,e,n){return null==t?t:li(t,e,gi(n))},Un.updateWith=function(t,e,n,r){return r="function"==typeof r?r:i,null==t?t:li(t,e,gi(n),r)},Un.values=ka,Un.valuesIn=function(t){return null==t?[]:Qe(t,Ma(t))},Un.without=io,Un.words=Qa,Un.wrap=function(t,e){return Do(gi(e),t)},Un.xor=so,Un.xorBy=oo,Un.xorWith=ao,Un.zip=uo,Un.zipObject=function(t,e){return di(t||[],e||[],Zn)},Un.zipObjectDeep=function(t,e){return di(t||[],e||[],Qr)},Un.zipWith=lo,Un.entries=Fa,Un.entriesIn=Ua,Un.extend=ba,Un.extendWith=Aa,ou(Un,Un),Un.add=vu,Un.attempt=Ja,Un.camelCase=$a,Un.capitalize=Ha,Un.ceil=yu,Un.clamp=function(t,e,n){return n===i&&(n=e,e=i),n!==i&&(n=(n=ga(n))==n?n:0),e!==i&&(e=(e=ga(e))==e?e:0),sr(ga(t),e,n)},Un.clone=function(t){return or(t,4)},Un.cloneDeep=function(t){return or(t,5)},Un.cloneDeepWith=function(t,e){return or(t,5,e="function"==typeof e?e:i)},Un.cloneWith=function(t,e){return or(t,4,e="function"==typeof e?e:i)},Un.conformsTo=function(t,e){return null==e||ar(t,e,Oa(e))},Un.deburr=Va,Un.defaultTo=function(t,e){return null==t||t!=t?e:t},Un.divide=bu,Un.endsWith=function(t,e,n){t=va(t),e=oi(e);var r=t.length,s=n=n===i?r:sr(da(n),0,r);return(n-=e.length)>=0&&t.slice(n,s)==e},Un.eq=ko,Un.escape=function(t){return(t=va(t))&&Y.test(t)?t.replace(W,en):t},Un.escapeRegExp=function(t){return(t=va(t))&&nt.test(t)?t.replace(et,"\\$&"):t},Un.every=function(t,e,n){var r=jo(t)?Te:fr;return n&&ms(t,e,n)&&(e=i),r(t,ss(e,3))},Un.find=go,Un.findIndex=Hs,Un.findKey=function(t,e){return Fe(t,ss(e,3),yr)},Un.findLast=mo,Un.findLastIndex=Vs,Un.findLastKey=function(t,e){return Fe(t,ss(e,3),br)},Un.floor=Au,Un.forEach=vo,Un.forEachRight=yo,Un.forIn=function(t,e){return null==t?t:mr(t,ss(e,3),Ma)},Un.forInRight=function(t,e){return null==t?t:vr(t,ss(e,3),Ma)},Un.forOwn=function(t,e){return t&&yr(t,ss(e,3))},Un.forOwnRight=function(t,e){return t&&br(t,ss(e,3))},Un.get=Sa,Un.gt=$o,Un.gte=Ho,Un.has=function(t,e){return null!=t&&fs(t,e,Sr)},Un.hasIn=Ea,Un.head=qs,Un.identity=nu,Un.includes=function(t,e,n,r){t=Go(t)?t:ka(t),n=n&&!r?da(n):0;var i=t.length;return n<0&&(n=mn(i+n,0)),oa(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&ke(t,e,n)>-1},Un.indexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:da(n);return i<0&&(i=mn(r+i,0)),ke(t,e,i)},Un.inRange=function(t,e,n){return e=fa(e),n===i?(n=e,e=0):n=fa(n),function(t,e,n){return t>=vn(e,n)&&t<mn(e,n)}(t=ga(t),e,n)},Un.invoke=Na,Un.isArguments=Vo,Un.isArray=jo,Un.isArrayBuffer=qo,Un.isArrayLike=Go,Un.isArrayLikeObject=Wo,Un.isBoolean=function(t){return!0===t||!1===t||ta(t)&&xr(t)==v},Un.isBuffer=zo,Un.isDate=Yo,Un.isElement=function(t){return ta(t)&&1===t.nodeType&&!ra(t)},Un.isEmpty=function(t){if(null==t)return!0;if(Go(t)&&(jo(t)||"string"==typeof t||"function"==typeof t.splice||zo(t)||ua(t)||Vo(t)))return!t.length;var e=hs(t);if(e==C||e==T)return!t.size;if(As(t))return!Pr(t).length;for(var n in t)if(Bt.call(t,n))return!1;return!0},Un.isEqual=function(t,e){return Or(t,e)},Un.isEqualWith=function(t,e,n){var r=(n="function"==typeof n?n:i)?n(t,e):i;return r===i?Or(t,e,i,n):!!r},Un.isError=Ko,Un.isFinite=function(t){return"number"==typeof t&&De(t)},Un.isFunction=Qo,Un.isInteger=Jo,Un.isLength=Xo,Un.isMap=ea,Un.isMatch=function(t,e){return t===e||Mr(t,e,as(e))},Un.isMatchWith=function(t,e,n){return n="function"==typeof n?n:i,Mr(t,e,as(e),n)},Un.isNaN=function(t){return na(t)&&t!=+t},Un.isNative=function(t){if(bs(t))throw new wt("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Lr(t)},Un.isNil=function(t){return null==t},Un.isNull=function(t){return null===t},Un.isNumber=na,Un.isObject=Zo,Un.isObjectLike=ta,Un.isPlainObject=ra,Un.isRegExp=ia,Un.isSafeInteger=function(t){return Jo(t)&&t>=-9007199254740991&&t<=h},Un.isSet=sa,Un.isString=oa,Un.isSymbol=aa,Un.isTypedArray=ua,Un.isUndefined=function(t){return t===i},Un.isWeakMap=function(t){return ta(t)&&hs(t)==O},Un.isWeakSet=function(t){return ta(t)&&"[object WeakSet]"==xr(t)},Un.join=function(t,e){return null==t?"":qe.call(t,e)},Un.kebabCase=ja,Un.last=Ys,Un.lastIndexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var s=r;return n!==i&&(s=(s=da(n))<0?mn(r+s,0):vn(s,r-1)),e==e?function(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}(t,e,s):Ue(t,He,s,!0)},Un.lowerCase=qa,Un.lowerFirst=Ga,Un.lt=la,Un.lte=ca,Un.max=function(t){return t&&t.length?dr(t,nu,_r):i},Un.maxBy=function(t,e){return t&&t.length?dr(t,ss(e,2),_r):i},Un.mean=function(t){return Ve(t,nu)},Un.meanBy=function(t,e){return Ve(t,ss(e,2))},Un.min=function(t){return t&&t.length?dr(t,nu,Rr):i},Un.minBy=function(t,e){return t&&t.length?dr(t,ss(e,2),Rr):i},Un.stubArray=pu,Un.stubFalse=gu,Un.stubObject=function(){return{}},Un.stubString=function(){return""},Un.stubTrue=function(){return!0},Un.multiply=wu,Un.nth=function(t,e){return t&&t.length?$r(t,da(e)):i},Un.noConflict=function(){return he._===this&&(he._=Ut),this},Un.noop=au,Un.now=So,Un.pad=function(t,e,n){t=va(t);var r=(e=da(e))?cn(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return Hi(de(i),n)+t+Hi(fe(i),n)},Un.padEnd=function(t,e,n){t=va(t);var r=(e=da(e))?cn(t):0;return e&&r<e?t+Hi(e-r,n):t},Un.padStart=function(t,e,n){t=va(t);var r=(e=da(e))?cn(t):0;return e&&r<e?Hi(e-r,n)+t:t},Un.parseInt=function(t,e,n){return n||null==e?e=0:e&&(e=+e),bn(va(t).replace(rt,""),e||0)},Un.random=function(t,e,n){if(n&&"boolean"!=typeof n&&ms(t,e,n)&&(e=n=i),n===i&&("boolean"==typeof e?(n=e,e=i):"boolean"==typeof t&&(n=t,t=i)),t===i&&e===i?(t=0,e=1):(t=fa(t),e===i?(e=t,t=0):e=fa(e)),t>e){var r=t;t=e,e=r}if(n||t%1||e%1){var s=An();return vn(t+s*(e-t+ae("1e-"+((s+"").length-1))),e)}return Gr(t,e)},Un.reduce=function(t,e,n){var r=jo(t)?Be:Ge,i=arguments.length<3;return r(t,ss(e,4),n,i,cr)},Un.reduceRight=function(t,e,n){var r=jo(t)?Pe:Ge,i=arguments.length<3;return r(t,ss(e,4),n,i,hr)},Un.repeat=function(t,e,n){return e=(n?ms(t,e,n):e===i)?1:da(e),Wr(va(t),e)},Un.replace=function(){var t=arguments,e=va(t[0]);return t.length<3?e:e.replace(t[1],t[2])},Un.result=function(t,e,n){var r=-1,s=(e=mi(e,t)).length;for(s||(s=1,t=i);++r<s;){var o=null==t?i:t[Rs(e[r])];o===i&&(r=s,o=n),t=Qo(o)?o.call(t):o}return t},Un.round=Cu,Un.runInContext=t,Un.sample=function(t){return(jo(t)?Kn:Yr)(t)},Un.size=function(t){if(null==t)return 0;if(Go(t))return oa(t)?cn(t):t.length;var e=hs(t);return e==C||e==T?t.size:Pr(t).length},Un.snakeCase=Wa,Un.some=function(t,e,n){var r=jo(t)?Re:ei;return n&&ms(t,e,n)&&(e=i),r(t,ss(e,3))},Un.sortedIndex=function(t,e){return ni(t,e)},Un.sortedIndexBy=function(t,e,n){return ri(t,e,ss(n,2))},Un.sortedIndexOf=function(t,e){var n=null==t?0:t.length;if(n){var r=ni(t,e);if(r<n&&ko(t[r],e))return r}return-1},Un.sortedLastIndex=function(t,e){return ni(t,e,!0)},Un.sortedLastIndexBy=function(t,e,n){return ri(t,e,ss(n,2),!0)},Un.sortedLastIndexOf=function(t,e){if(null!=t&&t.length){var n=ni(t,e,!0)-1;if(ko(t[n],e))return n}return-1},Un.startCase=za,Un.startsWith=function(t,e,n){return t=va(t),n=null==n?0:sr(da(n),0,t.length),e=oi(e),t.slice(n,n+e.length)==e},Un.subtract=xu,Un.sum=function(t){return t&&t.length?We(t,nu):0},Un.sumBy=function(t,e){return t&&t.length?We(t,ss(e,2)):0},Un.template=function(t,e,n){var r=Un.templateSettings;n&&ms(t,e,n)&&(e=i),t=va(t),e=Aa({},e,r,Ki);var s,o,a=Aa({},e.imports,r.imports,Ki),u=Oa(a),l=Qe(a,u),c=0,h=e.interpolate||bt,f="__p += '",d=St((e.escape||bt).source+"|"+h.source+"|"+(h===J?ht:bt).source+"|"+(e.evaluate||bt).source+"|$","g"),p="//# sourceURL="+(Bt.call(e,"sourceURL")?(e.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++re+"]")+"\n";t.replace(d,(function(e,n,r,i,a,u){return r||(r=i),f+=t.slice(c,u).replace(At,nn),n&&(s=!0,f+="' +\n__e("+n+") +\n'"),a&&(o=!0,f+="';\n"+a+";\n__p += '"),r&&(f+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),c=u+e.length,e})),f+="';\n";var g=Bt.call(e,"variable")&&e.variable;if(g){if(lt.test(g))throw new wt("Invalid `variable` option passed into `_.template`")}else f="with (obj) {\n"+f+"\n}\n";f=(o?f.replace(V,""):f).replace(j,"$1").replace(q,"$1;"),f="function("+(g||"obj")+") {\n"+(g?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(s?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+f+"return __p\n}";var m=Ja((function(){return Ct(u,p+"return "+f).apply(i,l)}));if(m.source=f,Ko(m))throw m;return m},Un.times=function(t,e){if((t=da(t))<1||t>h)return[];var n=d,r=vn(t,d);e=ss(e),t-=d;for(var i=ze(r,e);++n<t;)e(n);return i},Un.toFinite=fa,Un.toInteger=da,Un.toLength=pa,Un.toLower=function(t){return va(t).toLowerCase()},Un.toNumber=ga,Un.toSafeInteger=function(t){return t?sr(da(t),-9007199254740991,h):0===t?t:0},Un.toString=va,Un.toUpper=function(t){return va(t).toUpperCase()},Un.trim=function(t,e,n){if((t=va(t))&&(n||e===i))return Ye(t);if(!t||!(e=oi(e)))return t;var r=hn(t),s=hn(e);return yi(r,Xe(r,s),Ze(r,s)+1).join("")},Un.trimEnd=function(t,e,n){if((t=va(t))&&(n||e===i))return t.slice(0,fn(t)+1);if(!t||!(e=oi(e)))return t;var r=hn(t);return yi(r,0,Ze(r,hn(e))+1).join("")},Un.trimStart=function(t,e,n){if((t=va(t))&&(n||e===i))return t.replace(rt,"");if(!t||!(e=oi(e)))return t;var r=hn(t);return yi(r,Xe(r,hn(e))).join("")},Un.truncate=function(t,e){var n=30,r="...";if(Zo(e)){var s="separator"in e?e.separator:s;n="length"in e?da(e.length):n,r="omission"in e?oi(e.omission):r}var o=(t=va(t)).length;if(rn(t)){var a=hn(t);o=a.length}if(n>=o)return t;var u=n-cn(r);if(u<1)return r;var l=a?yi(a,0,u).join(""):t.slice(0,u);if(s===i)return l+r;if(a&&(u+=l.length-u),ia(s)){if(t.slice(u).search(s)){var c,h=l;for(s.global||(s=St(s.source,va(ft.exec(s))+"g")),s.lastIndex=0;c=s.exec(h);)var f=c.index;l=l.slice(0,f===i?u:f)}}else if(t.indexOf(oi(s),u)!=u){var d=l.lastIndexOf(s);d>-1&&(l=l.slice(0,d))}return l+r},Un.unescape=function(t){return(t=va(t))&&z.test(t)?t.replace(G,dn):t},Un.uniqueId=function(t){var e=++Pt;return va(t)+e},Un.upperCase=Ya,Un.upperFirst=Ka,Un.each=vo,Un.eachRight=yo,Un.first=qs,ou(Un,(mu={},yr(Un,(function(t,e){Bt.call(Un.prototype,e)||(mu[e]=t)})),mu),{chain:!1}),Un.VERSION="4.17.21",Se(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){Un[t].placeholder=Un})),Se(["drop","take"],(function(t,e){Vn.prototype[t]=function(n){n=n===i?1:mn(da(n),0);var r=this.__filtered__&&!e?new Vn(this):this.clone();return r.__filtered__?r.__takeCount__=vn(n,r.__takeCount__):r.__views__.push({size:vn(n,d),type:t+(r.__dir__<0?"Right":"")}),r},Vn.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),Se(["filter","map","takeWhile"],(function(t,e){var n=e+1,r=1==n||3==n;Vn.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:ss(t,3),type:n}),e.__filtered__=e.__filtered__||r,e}})),Se(["head","last"],(function(t,e){var n="take"+(e?"Right":"");Vn.prototype[t]=function(){return this[n](1).value()[0]}})),Se(["initial","tail"],(function(t,e){var n="drop"+(e?"":"Right");Vn.prototype[t]=function(){return this.__filtered__?new Vn(this):this[n](1)}})),Vn.prototype.compact=function(){return this.filter(nu)},Vn.prototype.find=function(t){return this.filter(t).head()},Vn.prototype.findLast=function(t){return this.reverse().find(t)},Vn.prototype.invokeMap=zr((function(t,e){return"function"==typeof t?new Vn(this):this.map((function(n){return Ir(n,t,e)}))})),Vn.prototype.reject=function(t){return this.filter(Po(ss(t)))},Vn.prototype.slice=function(t,e){t=da(t);var n=this;return n.__filtered__&&(t>0||e<0)?new Vn(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==i&&(n=(e=da(e))<0?n.dropRight(-e):n.take(e-t)),n)},Vn.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},Vn.prototype.toArray=function(){return this.take(d)},yr(Vn.prototype,(function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),s=Un[r?"take"+("last"==e?"Right":""):e],o=r||/^find/.test(e);s&&(Un.prototype[e]=function(){var e=this.__wrapped__,a=r?[1]:arguments,u=e instanceof Vn,l=a[0],c=u||jo(e),h=function(t){var e=s.apply(Un,Le([t],a));return r&&f?e[0]:e};c&&n&&"function"==typeof l&&1!=l.length&&(u=c=!1);var f=this.__chain__,d=!!this.__actions__.length,p=o&&!f,g=u&&!d;if(!o&&c){e=g?e:new Vn(this);var m=t.apply(e,a);return m.__actions__.push({func:ho,args:[h],thisArg:i}),new Hn(m,f)}return p&&g?t.apply(this,a):(m=this.thru(h),p?r?m.value()[0]:m.value():m)})})),Se(["pop","push","shift","sort","splice","unshift"],(function(t){var e=It[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);Un.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var i=this.value();return e.apply(jo(i)?i:[],t)}return this[n]((function(n){return e.apply(jo(n)?n:[],t)}))}})),yr(Vn.prototype,(function(t,e){var n=Un[e];if(n){var r=n.name+"";Bt.call(Nn,r)||(Nn[r]=[]),Nn[r].push({name:e,func:n})}})),Nn[Fi(i,2).name]=[{name:"wrapper",func:i}],Vn.prototype.clone=function(){var t=new Vn(this.__wrapped__);return t.__actions__=Ei(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=Ei(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=Ei(this.__views__),t},Vn.prototype.reverse=function(){if(this.__filtered__){var t=new Vn(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},Vn.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=jo(t),r=e<0,i=n?t.length:0,s=function(t,e,n){for(var r=-1,i=n.length;++r<i;){var s=n[r],o=s.size;switch(s.type){case"drop":t+=o;break;case"dropRight":e-=o;break;case"take":e=vn(e,t+o);break;case"takeRight":t=mn(t,e-o)}}return{start:t,end:e}}(0,i,this.__views__),o=s.start,a=s.end,u=a-o,l=r?a:o-1,c=this.__iteratees__,h=c.length,f=0,d=vn(u,this.__takeCount__);if(!n||!r&&i==u&&d==u)return hi(t,this.__actions__);var p=[];t:for(;u--&&f<d;){for(var g=-1,m=t[l+=e];++g<h;){var v=c[g],y=v.iteratee,b=v.type,A=y(m);if(2==b)m=A;else if(!A){if(1==b)continue t;break t}}p[f++]=m}return p},Un.prototype.at=fo,Un.prototype.chain=function(){return co(this)},Un.prototype.commit=function(){return new Hn(this.value(),this.__chain__)},Un.prototype.next=function(){this.__values__===i&&(this.__values__=ha(this.value()));var t=this.__index__>=this.__values__.length;return{done:t,value:t?i:this.__values__[this.__index__++]}},Un.prototype.plant=function(t){for(var e,n=this;n instanceof $n;){var r=Fs(n);r.__index__=0,r.__values__=i,e?s.__wrapped__=r:e=r;var s=r;n=n.__wrapped__}return s.__wrapped__=t,e},Un.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof Vn){var e=t;return this.__actions__.length&&(e=new Vn(this)),(e=e.reverse()).__actions__.push({func:ho,args:[Xs],thisArg:i}),new Hn(e,this.__chain__)}return this.thru(Xs)},Un.prototype.toJSON=Un.prototype.valueOf=Un.prototype.value=function(){return hi(this.__wrapped__,this.__actions__)},Un.prototype.first=Un.prototype.head,Kt&&(Un.prototype[Kt]=function(){return this}),Un}();he._=pn,(r=function(){return pn}.call(e,n,e,t))===i||(t.exports=r)}.call(this)},802:t=>{t.exports=function t(e,n,r){function i(o,a){if(!n[o]){if(!e[o]){if(s)return s(o,!0);throw new Error("Cannot find module '"+o+"'")}a=n[o]={exports:{}},e[o][0].call(a.exports,(function(t){return i(e[o][1][t]||t)}),a,a.exports,t,e,n,r)}return n[o].exports}for(var s=void 0,o=0;o<r.length;o++)i(r[o]);return i}({1:[function(t,e,n){(function(r,i,s,o,a,u,l,c,h){"use strict";var f=t("crypto");function d(t,e){var n;return void 0===(n="passthrough"!==(e=m(t,e)).algorithm?f.createHash(e.algorithm):new b).write&&(n.write=n.update,n.end=n.update),y(e,n).dispatch(t),n.update||n.end(""),n.digest?n.digest("buffer"===e.encoding?void 0:e.encoding):(t=n.read(),"buffer"!==e.encoding?t.toString(e.encoding):t)}(n=e.exports=d).sha1=function(t){return d(t)},n.keys=function(t){return d(t,{excludeValues:!0,algorithm:"sha1",encoding:"hex"})},n.MD5=function(t){return d(t,{algorithm:"md5",encoding:"hex"})},n.keysMD5=function(t){return d(t,{algorithm:"md5",encoding:"hex",excludeValues:!0})};var p=f.getHashes?f.getHashes().slice():["sha1","md5"],g=(p.push("passthrough"),["buffer","hex","binary","base64"]);function m(t,e){var n={};if(n.algorithm=(e=e||{}).algorithm||"sha1",n.encoding=e.encoding||"hex",n.excludeValues=!!e.excludeValues,n.algorithm=n.algorithm.toLowerCase(),n.encoding=n.encoding.toLowerCase(),n.ignoreUnknown=!0===e.ignoreUnknown,n.respectType=!1!==e.respectType,n.respectFunctionNames=!1!==e.respectFunctionNames,n.respectFunctionProperties=!1!==e.respectFunctionProperties,n.unorderedArrays=!0===e.unorderedArrays,n.unorderedSets=!1!==e.unorderedSets,n.unorderedObjects=!1!==e.unorderedObjects,n.replacer=e.replacer||void 0,n.excludeKeys=e.excludeKeys||void 0,void 0===t)throw new Error("Object argument required.");for(var r=0;r<p.length;++r)p[r].toLowerCase()===n.algorithm.toLowerCase()&&(n.algorithm=p[r]);if(-1===p.indexOf(n.algorithm))throw new Error('Algorithm "'+n.algorithm+'" not supported. supported values: '+p.join(", "));if(-1===g.indexOf(n.encoding)&&"passthrough"!==n.algorithm)throw new Error('Encoding "'+n.encoding+'" not supported. supported values: '+g.join(", "));return n}function v(t){if("function"==typeof t)return null!=/^function\s+\w*\s*\(\s*\)\s*{\s+\[native code\]\s+}$/i.exec(Function.prototype.toString.call(t))}function y(t,e,n){function r(t){return e.update?e.update(t,"utf8"):e.write(t,"utf8")}return n=n||[],{dispatch:function(e){return this["_"+(null===(e=t.replacer?t.replacer(e):e)?"null":typeof e)](e)},_object:function(e){var i,o=Object.prototype.toString.call(e),a=/\[object (.*)\]/i.exec(o);if(a=(a=a?a[1]:"unknown:["+o+"]").toLowerCase(),0<=(o=n.indexOf(e)))return this.dispatch("[CIRCULAR:"+o+"]");if(n.push(e),void 0!==s&&s.isBuffer&&s.isBuffer(e))return r("buffer:"),r(e);if("object"===a||"function"===a||"asyncfunction"===a)return o=Object.keys(e),t.unorderedObjects&&(o=o.sort()),!1===t.respectType||v(e)||o.splice(0,0,"prototype","__proto__","constructor"),t.excludeKeys&&(o=o.filter((function(e){return!t.excludeKeys(e)}))),r("object:"+o.length+":"),i=this,o.forEach((function(n){i.dispatch(n),r(":"),t.excludeValues||i.dispatch(e[n]),r(",")}));if(!this["_"+a]){if(t.ignoreUnknown)return r("["+a+"]");throw new Error('Unknown object type "'+a+'"')}this["_"+a](e)},_array:function(e,i){i=void 0!==i?i:!1!==t.unorderedArrays;var s=this;if(r("array:"+e.length+":"),!i||e.length<=1)return e.forEach((function(t){return s.dispatch(t)}));var o=[];return i=e.map((function(e){var r=new b,i=n.slice();return y(t,r,i).dispatch(e),o=o.concat(i.slice(n.length)),r.read().toString()})),n=n.concat(o),i.sort(),this._array(i,!1)},_date:function(t){return r("date:"+t.toJSON())},_symbol:function(t){return r("symbol:"+t.toString())},_error:function(t){return r("error:"+t.toString())},_boolean:function(t){return r("bool:"+t.toString())},_string:function(t){r("string:"+t.length+":"),r(t.toString())},_function:function(e){r("fn:"),v(e)?this.dispatch("[native]"):this.dispatch(e.toString()),!1!==t.respectFunctionNames&&this.dispatch("function-name:"+String(e.name)),t.respectFunctionProperties&&this._object(e)},_number:function(t){return r("number:"+t.toString())},_xml:function(t){return r("xml:"+t.toString())},_null:function(){return r("Null")},_undefined:function(){return r("Undefined")},_regexp:function(t){return r("regex:"+t.toString())},_uint8array:function(t){return r("uint8array:"),this.dispatch(Array.prototype.slice.call(t))},_uint8clampedarray:function(t){return r("uint8clampedarray:"),this.dispatch(Array.prototype.slice.call(t))},_int8array:function(t){return r("int8array:"),this.dispatch(Array.prototype.slice.call(t))},_uint16array:function(t){return r("uint16array:"),this.dispatch(Array.prototype.slice.call(t))},_int16array:function(t){return r("int16array:"),this.dispatch(Array.prototype.slice.call(t))},_uint32array:function(t){return r("uint32array:"),this.dispatch(Array.prototype.slice.call(t))},_int32array:function(t){return r("int32array:"),this.dispatch(Array.prototype.slice.call(t))},_float32array:function(t){return r("float32array:"),this.dispatch(Array.prototype.slice.call(t))},_float64array:function(t){return r("float64array:"),this.dispatch(Array.prototype.slice.call(t))},_arraybuffer:function(t){return r("arraybuffer:"),this.dispatch(new Uint8Array(t))},_url:function(t){return r("url:"+t.toString())},_map:function(e){return r("map:"),e=Array.from(e),this._array(e,!1!==t.unorderedSets)},_set:function(e){return r("set:"),e=Array.from(e),this._array(e,!1!==t.unorderedSets)},_file:function(t){return r("file:"),this.dispatch([t.name,t.size,t.type,t.lastModfied])},_blob:function(){if(t.ignoreUnknown)return r("[blob]");throw Error('Hashing Blob objects is currently not supported\n(see https://github.com/puleos/object-hash/issues/26)\nUse "options.replacer" or "options.ignoreUnknown"\n')},_domwindow:function(){return r("domwindow")},_bigint:function(t){return r("bigint:"+t.toString())},_process:function(){return r("process")},_timer:function(){return r("timer")},_pipe:function(){return r("pipe")},_tcp:function(){return r("tcp")},_udp:function(){return r("udp")},_tty:function(){return r("tty")},_statwatcher:function(){return r("statwatcher")},_securecontext:function(){return r("securecontext")},_connection:function(){return r("connection")},_zlib:function(){return r("zlib")},_context:function(){return r("context")},_nodescript:function(){return r("nodescript")},_httpparser:function(){return r("httpparser")},_dataview:function(){return r("dataview")},_signal:function(){return r("signal")},_fsevent:function(){return r("fsevent")},_tlswrap:function(){return r("tlswrap")}}}function b(){return{buf:"",write:function(t){this.buf+=t},end:function(t){this.buf+=t},read:function(){return this.buf}}}n.writeToStream=function(t,e,n){return void 0===n&&(n=e,e={}),y(e=m(t,e),n).dispatch(t)}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/fake_9a5aa49d.js","/")},{buffer:3,crypto:5,lYpoI2:11}],2:[function(t,e,n){(function(t,e,r,i,s,o,a,u,l){!function(t){"use strict";var e="undefined"!=typeof Uint8Array?Uint8Array:Array,n="+".charCodeAt(0),r="/".charCodeAt(0),i="0".charCodeAt(0),s="a".charCodeAt(0),o="A".charCodeAt(0),a="-".charCodeAt(0),u="_".charCodeAt(0);function l(t){return(t=t.charCodeAt(0))===n||t===a?62:t===r||t===u?63:t<i?-1:t<i+10?t-i+26+26:t<o+26?t-o:t<s+26?t-s+26:void 0}t.toByteArray=function(t){var n,r;if(0<t.length%4)throw new Error("Invalid string. Length must be a multiple of 4");var i=t.length,s=(i="="===t.charAt(i-2)?2:"="===t.charAt(i-1)?1:0,new e(3*t.length/4-i)),o=0<i?t.length-4:t.length,a=0;function u(t){s[a++]=t}for(n=0;n<o;n+=4,0)u((16711680&(r=l(t.charAt(n))<<18|l(t.charAt(n+1))<<12|l(t.charAt(n+2))<<6|l(t.charAt(n+3))))>>16),u((65280&r)>>8),u(255&r);return 2==i?u(255&(r=l(t.charAt(n))<<2|l(t.charAt(n+1))>>4)):1==i&&(u((r=l(t.charAt(n))<<10|l(t.charAt(n+1))<<4|l(t.charAt(n+2))>>2)>>8&255),u(255&r)),s},t.fromByteArray=function(t){var e,n,r,i,s=t.length%3,o="";function a(t){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(t)}for(e=0,r=t.length-s;e<r;e+=3)o+=a((i=n=(t[e]<<16)+(t[e+1]<<8)+t[e+2])>>18&63)+a(i>>12&63)+a(i>>6&63)+a(63&i);switch(s){case 1:o=(o+=a((n=t[t.length-1])>>2))+a(n<<4&63)+"==";break;case 2:o=(o=(o+=a((n=(t[t.length-2]<<8)+t[t.length-1])>>10))+a(n>>4&63))+a(n<<2&63)+"="}return o}}(void 0===n?this.base64js={}:n)}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/base64-js/lib/b64.js","/node_modules/gulp-browserify/node_modules/base64-js/lib")},{buffer:3,lYpoI2:11}],3:[function(t,e,n){(function(e,r,i,s,o,a,u,l,c){var h=t("base64-js"),f=t("ieee754");function i(t,e,n){if(!(this instanceof i))return new i(t,e,n);var r,s,o,a,u=typeof t;if("base64"===e&&"string"==u)for(t=(a=t).trim?a.trim():a.replace(/^\s+|\s+$/g,"");t.length%4!=0;)t+="=";if("number"==u)r=T(t);else if("string"==u)r=i.byteLength(t,e);else{if("object"!=u)throw new Error("First argument needs to be a number, array or string.");r=T(t.length)}if(i._useTypedArrays?s=i._augment(new Uint8Array(r)):((s=this).length=r,s._isBuffer=!0),i._useTypedArrays&&"number"==typeof t.byteLength)s._set(t);else if(I(a=t)||i.isBuffer(a)||a&&"object"==typeof a&&"number"==typeof a.length)for(o=0;o<r;o++)i.isBuffer(t)?s[o]=t.readUInt8(o):s[o]=t[o];else if("string"==u)s.write(t,0,e);else if("number"==u&&!i._useTypedArrays&&!n)for(o=0;o<r;o++)s[o]=0;return s}function d(t,e,n,r){var i;if(r||(F("boolean"==typeof n,"missing or invalid endian"),F(null!=e,"missing offset"),F(e+1<t.length,"Trying to read beyond buffer length")),!((r=t.length)<=e))return n?(i=t[e],e+1<r&&(i|=t[e+1]<<8)):(i=t[e]<<8,e+1<r&&(i|=t[e+1])),i}function p(t,e,n,r){var i;if(r||(F("boolean"==typeof n,"missing or invalid endian"),F(null!=e,"missing offset"),F(e+3<t.length,"Trying to read beyond buffer length")),!((r=t.length)<=e))return n?(e+2<r&&(i=t[e+2]<<16),e+1<r&&(i|=t[e+1]<<8),i|=t[e],e+3<r&&(i+=t[e+3]<<24>>>0)):(e+1<r&&(i=t[e+1]<<16),e+2<r&&(i|=t[e+2]<<8),e+3<r&&(i|=t[e+3]),i+=t[e]<<24>>>0),i}function g(t,e,n,r){if(r||(F("boolean"==typeof n,"missing or invalid endian"),F(null!=e,"missing offset"),F(e+1<t.length,"Trying to read beyond buffer length")),!(t.length<=e))return 32768&(r=d(t,e,n,!0))?-1*(65535-r+1):r}function m(t,e,n,r){if(r||(F("boolean"==typeof n,"missing or invalid endian"),F(null!=e,"missing offset"),F(e+3<t.length,"Trying to read beyond buffer length")),!(t.length<=e))return 2147483648&(r=p(t,e,n,!0))?-1*(4294967295-r+1):r}function v(t,e,n,r){return r||(F("boolean"==typeof n,"missing or invalid endian"),F(e+3<t.length,"Trying to read beyond buffer length")),f.read(t,e,n,23,4)}function y(t,e,n,r){return r||(F("boolean"==typeof n,"missing or invalid endian"),F(e+7<t.length,"Trying to read beyond buffer length")),f.read(t,e,n,52,8)}function b(t,e,n,r,i){if(i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+1<t.length,"trying to write beyond buffer length"),P(e,65535)),!((i=t.length)<=n))for(var s=0,o=Math.min(i-n,2);s<o;s++)t[n+s]=(e&255<<8*(r?s:1-s))>>>8*(r?s:1-s)}function A(t,e,n,r,i){if(i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+3<t.length,"trying to write beyond buffer length"),P(e,4294967295)),!((i=t.length)<=n))for(var s=0,o=Math.min(i-n,4);s<o;s++)t[n+s]=e>>>8*(r?s:3-s)&255}function w(t,e,n,r,i){i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+1<t.length,"Trying to write beyond buffer length"),R(e,32767,-32768)),t.length<=n||b(t,0<=e?e:65535+e+1,n,r,i)}function C(t,e,n,r,i){i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+3<t.length,"Trying to write beyond buffer length"),R(e,2147483647,-2147483648)),t.length<=n||A(t,0<=e?e:4294967295+e+1,n,r,i)}function x(t,e,n,r,i){i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+3<t.length,"Trying to write beyond buffer length"),D(e,34028234663852886e22,-34028234663852886e22)),t.length<=n||f.write(t,e,n,r,23,4)}function _(t,e,n,r,i){i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+7<t.length,"Trying to write beyond buffer length"),D(e,17976931348623157e292,-17976931348623157e292)),t.length<=n||f.write(t,e,n,r,52,8)}n.Buffer=i,n.SlowBuffer=i,n.INSPECT_MAX_BYTES=50,i.poolSize=8192,i._useTypedArrays=function(){try{var t=new ArrayBuffer(0),e=new Uint8Array(t);return e.foo=function(){return 42},42===e.foo()&&"function"==typeof e.subarray}catch(t){return!1}}(),i.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},i.isBuffer=function(t){return!(null==t||!t._isBuffer)},i.byteLength=function(t,e){var n;switch(t+="",e||"utf8"){case"hex":n=t.length/2;break;case"utf8":case"utf-8":n=O(t).length;break;case"ascii":case"binary":case"raw":n=t.length;break;case"base64":n=M(t).length;break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":n=2*t.length;break;default:throw new Error("Unknown encoding")}return n},i.concat=function(t,e){if(F(I(t),"Usage: Buffer.concat(list, [totalLength])\nlist should be an Array."),0===t.length)return new i(0);if(1===t.length)return t[0];if("number"!=typeof e)for(s=e=0;s<t.length;s++)e+=t[s].length;for(var n=new i(e),r=0,s=0;s<t.length;s++){var o=t[s];o.copy(n,r),r+=o.length}return n},i.prototype.write=function(t,e,n,r){isFinite(e)?isFinite(n)||(r=n,n=void 0):(l=r,r=e,e=n,n=l),e=Number(e)||0;var s,o,a,u,l=this.length-e;switch((!n||l<(n=Number(n)))&&(n=l),r=String(r||"utf8").toLowerCase()){case"hex":s=function(t,e,n,r){n=Number(n)||0;var s=t.length-n;(!r||s<(r=Number(r)))&&(r=s),F((s=e.length)%2==0,"Invalid hex string"),s/2<r&&(r=s/2);for(var o=0;o<r;o++){var a=parseInt(e.substr(2*o,2),16);F(!isNaN(a),"Invalid hex string"),t[n+o]=a}return i._charsWritten=2*o,o}(this,t,e,n);break;case"utf8":case"utf-8":o=this,a=e,u=n,s=i._charsWritten=L(O(t),o,a,u);break;case"ascii":case"binary":s=function(t,e,n,r){return i._charsWritten=L(function(t){for(var e=[],n=0;n<t.length;n++)e.push(255&t.charCodeAt(n));return e}(e),t,n,r)}(this,t,e,n);break;case"base64":o=this,a=e,u=n,s=i._charsWritten=L(M(t),o,a,u);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":s=function(t,e,n,r){return i._charsWritten=L(function(t){for(var e,n,r=[],i=0;i<t.length;i++)e=(n=t.charCodeAt(i))>>8,n%=256,r.push(n),r.push(e);return r}(e),t,n,r)}(this,t,e,n);break;default:throw new Error("Unknown encoding")}return s},i.prototype.toString=function(t,e,n){var r,i,s,o,a=this;if(t=String(t||"utf8").toLowerCase(),e=Number(e)||0,(n=void 0!==n?Number(n):a.length)===e)return"";switch(t){case"hex":r=function(t,e,n){var r=t.length;(!e||e<0)&&(e=0),(!n||n<0||r<n)&&(n=r);for(var i="",s=e;s<n;s++)i+=N(t[s]);return i}(a,e,n);break;case"utf8":case"utf-8":r=function(t,e,n){var r="",i="";n=Math.min(t.length,n);for(var s=e;s<n;s++)t[s]<=127?(r+=B(i)+String.fromCharCode(t[s]),i=""):i+="%"+t[s].toString(16);return r+B(i)}(a,e,n);break;case"ascii":case"binary":r=function(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;i<n;i++)r+=String.fromCharCode(t[i]);return r}(a,e,n);break;case"base64":i=a,o=n,r=0===(s=e)&&o===i.length?h.fromByteArray(i):h.fromByteArray(i.slice(s,o));break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":r=function(t,e,n){for(var r=t.slice(e,n),i="",s=0;s<r.length;s+=2)i+=String.fromCharCode(r[s]+256*r[s+1]);return i}(a,e,n);break;default:throw new Error("Unknown encoding")}return r},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},i.prototype.copy=function(t,e,n,r){if(e=e||0,(r=r||0===r?r:this.length)!==(n=n||0)&&0!==t.length&&0!==this.length){F(n<=r,"sourceEnd < sourceStart"),F(0<=e&&e<t.length,"targetStart out of bounds"),F(0<=n&&n<this.length,"sourceStart out of bounds"),F(0<=r&&r<=this.length,"sourceEnd out of bounds"),r>this.length&&(r=this.length);var s=(r=t.length-e<r-n?t.length-e+n:r)-n;if(s<100||!i._useTypedArrays)for(var o=0;o<s;o++)t[o+e]=this[o+n];else t._set(this.subarray(n,n+s),e)}},i.prototype.slice=function(t,e){var n=this.length;if(t=E(t,n,0),e=E(e,n,n),i._useTypedArrays)return i._augment(this.subarray(t,e));for(var r=e-t,s=new i(r,void 0,!0),o=0;o<r;o++)s[o]=this[o+t];return s},i.prototype.get=function(t){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(t)},i.prototype.set=function(t,e){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(t,e)},i.prototype.readUInt8=function(t,e){if(e||(F(null!=t,"missing offset"),F(t<this.length,"Trying to read beyond buffer length")),!(t>=this.length))return this[t]},i.prototype.readUInt16LE=function(t,e){return d(this,t,!0,e)},i.prototype.readUInt16BE=function(t,e){return d(this,t,!1,e)},i.prototype.readUInt32LE=function(t,e){return p(this,t,!0,e)},i.prototype.readUInt32BE=function(t,e){return p(this,t,!1,e)},i.prototype.readInt8=function(t,e){if(e||(F(null!=t,"missing offset"),F(t<this.length,"Trying to read beyond buffer length")),!(t>=this.length))return 128&this[t]?-1*(255-this[t]+1):this[t]},i.prototype.readInt16LE=function(t,e){return g(this,t,!0,e)},i.prototype.readInt16BE=function(t,e){return g(this,t,!1,e)},i.prototype.readInt32LE=function(t,e){return m(this,t,!0,e)},i.prototype.readInt32BE=function(t,e){return m(this,t,!1,e)},i.prototype.readFloatLE=function(t,e){return v(this,t,!0,e)},i.prototype.readFloatBE=function(t,e){return v(this,t,!1,e)},i.prototype.readDoubleLE=function(t,e){return y(this,t,!0,e)},i.prototype.readDoubleBE=function(t,e){return y(this,t,!1,e)},i.prototype.writeUInt8=function(t,e,n){n||(F(null!=t,"missing value"),F(null!=e,"missing offset"),F(e<this.length,"trying to write beyond buffer length"),P(t,255)),e>=this.length||(this[e]=t)},i.prototype.writeUInt16LE=function(t,e,n){b(this,t,e,!0,n)},i.prototype.writeUInt16BE=function(t,e,n){b(this,t,e,!1,n)},i.prototype.writeUInt32LE=function(t,e,n){A(this,t,e,!0,n)},i.prototype.writeUInt32BE=function(t,e,n){A(this,t,e,!1,n)},i.prototype.writeInt8=function(t,e,n){n||(F(null!=t,"missing value"),F(null!=e,"missing offset"),F(e<this.length,"Trying to write beyond buffer length"),R(t,127,-128)),e>=this.length||(0<=t?this.writeUInt8(t,e,n):this.writeUInt8(255+t+1,e,n))},i.prototype.writeInt16LE=function(t,e,n){w(this,t,e,!0,n)},i.prototype.writeInt16BE=function(t,e,n){w(this,t,e,!1,n)},i.prototype.writeInt32LE=function(t,e,n){C(this,t,e,!0,n)},i.prototype.writeInt32BE=function(t,e,n){C(this,t,e,!1,n)},i.prototype.writeFloatLE=function(t,e,n){x(this,t,e,!0,n)},i.prototype.writeFloatBE=function(t,e,n){x(this,t,e,!1,n)},i.prototype.writeDoubleLE=function(t,e,n){_(this,t,e,!0,n)},i.prototype.writeDoubleBE=function(t,e,n){_(this,t,e,!1,n)},i.prototype.fill=function(t,e,n){if(e=e||0,n=n||this.length,F("number"==typeof(t="string"==typeof(t=t||0)?t.charCodeAt(0):t)&&!isNaN(t),"value is not a number"),F(e<=n,"end < start"),n!==e&&0!==this.length){F(0<=e&&e<this.length,"start out of bounds"),F(0<=n&&n<=this.length,"end out of bounds");for(var r=e;r<n;r++)this[r]=t}},i.prototype.inspect=function(){for(var t=[],e=this.length,r=0;r<e;r++)if(t[r]=N(this[r]),r===n.INSPECT_MAX_BYTES){t[r+1]="...";break}return"<Buffer "+t.join(" ")+">"},i.prototype.toArrayBuffer=function(){if("undefined"==typeof Uint8Array)throw new Error("Buffer.toArrayBuffer not supported in this browser");if(i._useTypedArrays)return new i(this).buffer;for(var t=new Uint8Array(this.length),e=0,n=t.length;e<n;e+=1)t[e]=this[e];return t.buffer};var S=i.prototype;function E(t,e,n){return"number"!=typeof t?n:e<=(t=~~t)?e:0<=t||0<=(t+=e)?t:0}function T(t){return(t=~~Math.ceil(+t))<0?0:t}function I(t){return(Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)})(t)}function N(t){return t<16?"0"+t.toString(16):t.toString(16)}function O(t){for(var e=[],n=0;n<t.length;n++){var r=t.charCodeAt(n);if(r<=127)e.push(t.charCodeAt(n));else for(var i=n,s=(55296<=r&&r<=57343&&n++,encodeURIComponent(t.slice(i,n+1)).substr(1).split("%")),o=0;o<s.length;o++)e.push(parseInt(s[o],16))}return e}function M(t){return h.toByteArray(t)}function L(t,e,n,r){for(var i=0;i<r&&!(i+n>=e.length||i>=t.length);i++)e[i+n]=t[i];return i}function B(t){try{return decodeURIComponent(t)}catch(t){return String.fromCharCode(65533)}}function P(t,e){F("number"==typeof t,"cannot write a non-number as a number"),F(0<=t,"specified a negative value for writing an unsigned value"),F(t<=e,"value is larger than maximum value for type"),F(Math.floor(t)===t,"value has a fractional component")}function R(t,e,n){F("number"==typeof t,"cannot write a non-number as a number"),F(t<=e,"value larger than maximum allowed value"),F(n<=t,"value smaller than minimum allowed value"),F(Math.floor(t)===t,"value has a fractional component")}function D(t,e,n){F("number"==typeof t,"cannot write a non-number as a number"),F(t<=e,"value larger than maximum allowed value"),F(n<=t,"value smaller than minimum allowed value")}function F(t,e){if(!t)throw new Error(e||"Failed assertion")}i._augment=function(t){return t._isBuffer=!0,t._get=t.get,t._set=t.set,t.get=S.get,t.set=S.set,t.write=S.write,t.toString=S.toString,t.toLocaleString=S.toString,t.toJSON=S.toJSON,t.copy=S.copy,t.slice=S.slice,t.readUInt8=S.readUInt8,t.readUInt16LE=S.readUInt16LE,t.readUInt16BE=S.readUInt16BE,t.readUInt32LE=S.readUInt32LE,t.readUInt32BE=S.readUInt32BE,t.readInt8=S.readInt8,t.readInt16LE=S.readInt16LE,t.readInt16BE=S.readInt16BE,t.readInt32LE=S.readInt32LE,t.readInt32BE=S.readInt32BE,t.readFloatLE=S.readFloatLE,t.readFloatBE=S.readFloatBE,t.readDoubleLE=S.readDoubleLE,t.readDoubleBE=S.readDoubleBE,t.writeUInt8=S.writeUInt8,t.writeUInt16LE=S.writeUInt16LE,t.writeUInt16BE=S.writeUInt16BE,t.writeUInt32LE=S.writeUInt32LE,t.writeUInt32BE=S.writeUInt32BE,t.writeInt8=S.writeInt8,t.writeInt16LE=S.writeInt16LE,t.writeInt16BE=S.writeInt16BE,t.writeInt32LE=S.writeInt32LE,t.writeInt32BE=S.writeInt32BE,t.writeFloatLE=S.writeFloatLE,t.writeFloatBE=S.writeFloatBE,t.writeDoubleLE=S.writeDoubleLE,t.writeDoubleBE=S.writeDoubleBE,t.fill=S.fill,t.inspect=S.inspect,t.toArrayBuffer=S.toArrayBuffer,t}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/buffer/index.js","/node_modules/gulp-browserify/node_modules/buffer")},{"base64-js":2,buffer:3,ieee754:10,lYpoI2:11}],4:[function(t,e,n){(function(n,r,i,s,o,a,u,l,c){i=t("buffer").Buffer;var h=new i(4);h.fill(0),e.exports={hash:function(t,e,n,r){for(var s=e(function(t,e){t.length%4!=0&&(n=t.length+(4-t.length%4),t=i.concat([t,h],n));for(var n,r=[],s=e?t.readInt32BE:t.readInt32LE,o=0;o<t.length;o+=4)r.push(s.call(t,o));return r}(t=i.isBuffer(t)?t:new i(t),r),8*t.length),o=(e=r,new i(n)),a=e?o.writeInt32BE:o.writeInt32LE,u=0;u<s.length;u++)a.call(o,s[u],4*u,!0);return o}}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/helpers.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{buffer:3,lYpoI2:11}],5:[function(t,e,n){(function(e,r,i,s,o,a,u,l,c){i=t("buffer").Buffer;var h=t("./sha"),f=t("./sha256"),d=t("./rng"),p={sha1:h,sha256:f,md5:t("./md5")},g=64,m=new i(g);function v(t,e){var n=p[t=t||"sha1"],r=[];return n||y("algorithm:",t,"is not yet supported"),{update:function(t){return i.isBuffer(t)||(t=new i(t)),r.push(t),t.length,this},digest:function(t){var s=i.concat(r);return s=e?function(t,e,n){i.isBuffer(e)||(e=new i(e)),i.isBuffer(n)||(n=new i(n)),e.length>g?e=t(e):e.length<g&&(e=i.concat([e,m],g));for(var r=new i(g),s=new i(g),o=0;o<g;o++)r[o]=54^e[o],s[o]=92^e[o];return n=t(i.concat([r,n])),t(i.concat([s,n]))}(n,e,s):n(s),r=null,t?s.toString(t):s}}}function y(){var t=[].slice.call(arguments).join(" ");throw new Error([t,"we accept pull requests","http://github.com/dominictarr/crypto-browserify"].join("\n"))}m.fill(0),n.createHash=function(t){return v(t)},n.createHmac=v,n.randomBytes=function(t,e){if(!e||!e.call)return new i(d(t));try{e.call(this,void 0,new i(d(t)))}catch(t){e(t)}};var b,A=["createCredentials","createCipher","createCipheriv","createDecipher","createDecipheriv","createSign","createVerify","createDiffieHellman","pbkdf2"],w=function(t){n[t]=function(){y("sorry,",t,"is not implemented yet")}};for(b in A)w(A[b])}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/index.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./md5":6,"./rng":7,"./sha":8,"./sha256":9,buffer:3,lYpoI2:11}],6:[function(t,e,n){(function(n,r,i,s,o,a,u,l,c){var h=t("./helpers");function f(t,e){t[e>>5]|=128<<e%32,t[14+(e+64>>>9<<4)]=e;for(var n=1732584193,r=-271733879,i=-1732584194,s=271733878,o=0;o<t.length;o+=16){var a=n,u=r,l=i,c=s;n=p(n,r,i,s,t[o+0],7,-680876936),s=p(s,n,r,i,t[o+1],12,-389564586),i=p(i,s,n,r,t[o+2],17,606105819),r=p(r,i,s,n,t[o+3],22,-1044525330),n=p(n,r,i,s,t[o+4],7,-176418897),s=p(s,n,r,i,t[o+5],12,1200080426),i=p(i,s,n,r,t[o+6],17,-1473231341),r=p(r,i,s,n,t[o+7],22,-45705983),n=p(n,r,i,s,t[o+8],7,1770035416),s=p(s,n,r,i,t[o+9],12,-1958414417),i=p(i,s,n,r,t[o+10],17,-42063),r=p(r,i,s,n,t[o+11],22,-1990404162),n=p(n,r,i,s,t[o+12],7,1804603682),s=p(s,n,r,i,t[o+13],12,-40341101),i=p(i,s,n,r,t[o+14],17,-1502002290),n=g(n,r=p(r,i,s,n,t[o+15],22,1236535329),i,s,t[o+1],5,-165796510),s=g(s,n,r,i,t[o+6],9,-1069501632),i=g(i,s,n,r,t[o+11],14,643717713),r=g(r,i,s,n,t[o+0],20,-373897302),n=g(n,r,i,s,t[o+5],5,-701558691),s=g(s,n,r,i,t[o+10],9,38016083),i=g(i,s,n,r,t[o+15],14,-660478335),r=g(r,i,s,n,t[o+4],20,-405537848),n=g(n,r,i,s,t[o+9],5,568446438),s=g(s,n,r,i,t[o+14],9,-1019803690),i=g(i,s,n,r,t[o+3],14,-187363961),r=g(r,i,s,n,t[o+8],20,1163531501),n=g(n,r,i,s,t[o+13],5,-1444681467),s=g(s,n,r,i,t[o+2],9,-51403784),i=g(i,s,n,r,t[o+7],14,1735328473),n=m(n,r=g(r,i,s,n,t[o+12],20,-1926607734),i,s,t[o+5],4,-378558),s=m(s,n,r,i,t[o+8],11,-2022574463),i=m(i,s,n,r,t[o+11],16,1839030562),r=m(r,i,s,n,t[o+14],23,-35309556),n=m(n,r,i,s,t[o+1],4,-1530992060),s=m(s,n,r,i,t[o+4],11,1272893353),i=m(i,s,n,r,t[o+7],16,-155497632),r=m(r,i,s,n,t[o+10],23,-1094730640),n=m(n,r,i,s,t[o+13],4,681279174),s=m(s,n,r,i,t[o+0],11,-358537222),i=m(i,s,n,r,t[o+3],16,-722521979),r=m(r,i,s,n,t[o+6],23,76029189),n=m(n,r,i,s,t[o+9],4,-640364487),s=m(s,n,r,i,t[o+12],11,-421815835),i=m(i,s,n,r,t[o+15],16,530742520),n=v(n,r=m(r,i,s,n,t[o+2],23,-995338651),i,s,t[o+0],6,-198630844),s=v(s,n,r,i,t[o+7],10,1126891415),i=v(i,s,n,r,t[o+14],15,-1416354905),r=v(r,i,s,n,t[o+5],21,-57434055),n=v(n,r,i,s,t[o+12],6,1700485571),s=v(s,n,r,i,t[o+3],10,-1894986606),i=v(i,s,n,r,t[o+10],15,-1051523),r=v(r,i,s,n,t[o+1],21,-2054922799),n=v(n,r,i,s,t[o+8],6,1873313359),s=v(s,n,r,i,t[o+15],10,-30611744),i=v(i,s,n,r,t[o+6],15,-1560198380),r=v(r,i,s,n,t[o+13],21,1309151649),n=v(n,r,i,s,t[o+4],6,-145523070),s=v(s,n,r,i,t[o+11],10,-1120210379),i=v(i,s,n,r,t[o+2],15,718787259),r=v(r,i,s,n,t[o+9],21,-343485551),n=y(n,a),r=y(r,u),i=y(i,l),s=y(s,c)}return Array(n,r,i,s)}function d(t,e,n,r,i,s){return y((e=y(y(e,t),y(r,s)))<<i|e>>>32-i,n)}function p(t,e,n,r,i,s,o){return d(e&n|~e&r,t,e,i,s,o)}function g(t,e,n,r,i,s,o){return d(e&r|n&~r,t,e,i,s,o)}function m(t,e,n,r,i,s,o){return d(e^n^r,t,e,i,s,o)}function v(t,e,n,r,i,s,o){return d(n^(e|~r),t,e,i,s,o)}function y(t,e){var n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n}e.exports=function(t){return h.hash(t,f,16)}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/md5.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],7:[function(t,e,n){(function(t,n,r,i,s,o,a,u,l){e.exports=function(t){for(var e,n=new Array(t),r=0;r<t;r++)!(3&r)&&(e=4294967296*Math.random()),n[r]=e>>>((3&r)<<3)&255;return n}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/rng.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{buffer:3,lYpoI2:11}],8:[function(t,e,n){(function(n,r,i,s,o,a,u,l,c){var h=t("./helpers");function f(t,e){t[e>>5]|=128<<24-e%32,t[15+(e+64>>9<<4)]=e;for(var n,r,i,s=Array(80),o=1732584193,a=-271733879,u=-1732584194,l=271733878,c=-1009589776,h=0;h<t.length;h+=16){for(var f=o,g=a,m=u,v=l,y=c,b=0;b<80;b++){s[b]=b<16?t[h+b]:p(s[b-3]^s[b-8]^s[b-14]^s[b-16],1);var A=d(d(p(o,5),(A=a,r=u,i=l,(n=b)<20?A&r|~A&i:!(n<40)&&n<60?A&r|A&i|r&i:A^r^i)),d(d(c,s[b]),(n=b)<20?1518500249:n<40?1859775393:n<60?-1894007588:-899497514));c=l,l=u,u=p(a,30),a=o,o=A}o=d(o,f),a=d(a,g),u=d(u,m),l=d(l,v),c=d(c,y)}return Array(o,a,u,l,c)}function d(t,e){var n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n}function p(t,e){return t<<e|t>>>32-e}e.exports=function(t){return h.hash(t,f,20,!0)}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],9:[function(t,e,n){(function(n,r,i,s,o,a,u,l,c){function h(t,e){var n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n}function f(t,e){var n,r=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),i=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),s=new Array(64);t[e>>5]|=128<<24-e%32,t[15+(e+64>>9<<4)]=e;for(var o,a,u=0;u<t.length;u+=16){for(var l=i[0],c=i[1],f=i[2],d=i[3],m=i[4],v=i[5],y=i[6],b=i[7],A=0;A<64;A++)s[A]=A<16?t[A+u]:h(h(h((a=s[A-2],p(a,17)^p(a,19)^g(a,10)),s[A-7]),(a=s[A-15],p(a,7)^p(a,18)^g(a,3))),s[A-16]),n=h(h(h(h(b,p(a=m,6)^p(a,11)^p(a,25)),m&v^~m&y),r[A]),s[A]),o=h(p(o=l,2)^p(o,13)^p(o,22),l&c^l&f^c&f),b=y,y=v,v=m,m=h(d,n),d=f,f=c,c=l,l=h(n,o);i[0]=h(l,i[0]),i[1]=h(c,i[1]),i[2]=h(f,i[2]),i[3]=h(d,i[3]),i[4]=h(m,i[4]),i[5]=h(v,i[5]),i[6]=h(y,i[6]),i[7]=h(b,i[7])}return i}var d=t("./helpers"),p=function(t,e){return t>>>e|t<<32-e},g=function(t,e){return t>>>e};e.exports=function(t){return d.hash(t,f,32,!0)}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha256.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],10:[function(t,e,n){(function(t,e,r,i,s,o,a,u,l){n.read=function(t,e,n,r,i){var s,o,a=8*i-r-1,u=(1<<a)-1,l=u>>1,c=-7,h=n?i-1:0,f=n?-1:1;for(i=t[e+h],h+=f,s=i&(1<<-c)-1,i>>=-c,c+=a;0<c;s=256*s+t[e+h],h+=f,c-=8);for(o=s&(1<<-c)-1,s>>=-c,c+=r;0<c;o=256*o+t[e+h],h+=f,c-=8);if(0===s)s=1-l;else{if(s===u)return o?NaN:1/0*(i?-1:1);o+=Math.pow(2,r),s-=l}return(i?-1:1)*o*Math.pow(2,s-r)},n.write=function(t,e,n,r,i,s){var o,a,u=8*s-i-1,l=(1<<u)-1,c=l>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:s-1,d=r?1:-1;for(s=e<0||0===e&&1/e<0?1:0,e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=l):(o=Math.floor(Math.log(e)/Math.LN2),e*(r=Math.pow(2,-o))<1&&(o--,r*=2),2<=(e+=1<=o+c?h/r:h*Math.pow(2,1-c))*r&&(o++,r/=2),l<=o+c?(a=0,o=l):1<=o+c?(a=(e*r-1)*Math.pow(2,i),o+=c):(a=e*Math.pow(2,c-1)*Math.pow(2,i),o=0));8<=i;t[n+f]=255&a,f+=d,a/=256,i-=8);for(o=o<<i|a,u+=i;0<u;t[n+f]=255&o,f+=d,o/=256,u-=8);t[n+f-d]|=128*s}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/ieee754/index.js","/node_modules/gulp-browserify/node_modules/ieee754")},{buffer:3,lYpoI2:11}],11:[function(t,e,n){(function(t,n,r,i,s,o,a,u,l){var c,h,f;function d(){}(t=e.exports={}).nextTick=(h="undefined"!=typeof window&&window.setImmediate,f="undefined"!=typeof window&&window.postMessage&&window.addEventListener,h?function(t){return window.setImmediate(t)}:f?(c=[],window.addEventListener("message",(function(t){var e=t.source;e!==window&&null!==e||"process-tick"!==t.data||(t.stopPropagation(),0<c.length&&c.shift()())}),!0),function(t){c.push(t),window.postMessage("process-tick","*")}):function(t){setTimeout(t,0)}),t.title="browser",t.browser=!0,t.env={},t.argv=[],t.on=d,t.addListener=d,t.once=d,t.off=d,t.removeListener=d,t.removeAllListeners=d,t.emit=d,t.binding=function(t){throw new Error("process.binding is not supported")},t.cwd=function(){return"/"},t.chdir=function(t){throw new Error("process.chdir is not supported")}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/process/browser.js","/node_modules/gulp-browserify/node_modules/process")},{buffer:3,lYpoI2:11}]},{},[1])(1)},146:(t,e)=>{"use strict";var n;!function(){var r=e||{}||this||window;void 0===(n=function(){return r}.apply(e,[]))||(t.exports=n),r.default=r;var i="http://www.w3.org/2000/xmlns/",s="http://www.w3.org/2000/svg",o=/url\(["']?(.+?)["']?\)/,a={woff2:"font/woff2",woff:"font/woff",otf:"application/x-font-opentype",ttf:"application/x-font-ttf",eot:"application/vnd.ms-fontobject",sfnt:"application/font-sfnt",svg:"image/svg+xml"},u=function(t){return t instanceof HTMLElement||t instanceof SVGElement},l=function(t){if(!u(t))throw new Error("an HTMLElement or SVGElement is required; got "+t)},c=function(t){return new Promise((function(e,n){u(t)?e(t):n(new Error("an HTMLElement or SVGElement is required; got "+t))}))},h=function(t,e,n){var r=t.viewBox&&t.viewBox.baseVal&&t.viewBox.baseVal[n]||null!==e.getAttribute(n)&&!e.getAttribute(n).match(/%$/)&&parseInt(e.getAttribute(n))||t.getBoundingClientRect()[n]||parseInt(e.style[n])||parseInt(window.getComputedStyle(t).getPropertyValue(n));return null==r||isNaN(parseFloat(r))?0:r},f=function(t){for(var e=window.atob(t.split(",")[1]),n=t.split(",")[0].split(":")[1].split(";")[0],r=new ArrayBuffer(e.length),i=new Uint8Array(r),s=0;s<e.length;s++)i[s]=e.charCodeAt(s);return new Blob([r],{type:n})},d={},p=null,g=function(t,e){var n=e||{},r=n.selectorRemap,i=n.modifyStyle,s=n.modifyCss,u=n.fonts,l=n.excludeUnusedCss,c=s||function(t,e){return(r?r(t):t)+"{"+(i?i(e):e)+"}\n"},h=[],f=void 0===u,g=u||[];return(p||(p=Array.from(document.styleSheets).map((function(t){try{return{rules:t.cssRules,href:t.href}}catch(e){return console.warn("Stylesheet could not be loaded: "+t.href,e),{}}})))).forEach((function(e){var n=e.rules,r=e.href;n&&Array.from(n).forEach((function(e){if(void 0!==e.style)if(function(t,e){if(e)try{return t.querySelector(e)||t.parentNode&&t.parentNode.querySelector(e)}catch(t){console.warn('Invalid CSS selector "'+e+'"',t)}}(t,e.selectorText))h.push(c(e.selectorText,e.style.cssText));else if(f&&e.cssText.match(/^@font-face/)){var n=function(t,e){var n=t.cssText.match(o),r=n&&n[1]||"";if(r&&!r.match(/^data:/)&&"about:blank"!==r){var i,s,u=r.startsWith("../")?e+"/../"+r:r.startsWith("./")?e+"/."+r:r;return{text:t.cssText,format:(i=u,s=Object.keys(a).filter((function(t){return i.indexOf("."+t)>0})).map((function(t){return a[t]})),s?s[0]:(console.error("Unknown font format for "+i+". Fonts may not be working correctly."),"application/octet-stream")),url:u}}}(e,r);n&&g.push(n)}else l||h.push(e.cssText)}))})),function(t){return Promise.all(t.map((function(t){return new Promise((function(e,n){if(d[t.url])return e(d[t.url]);var r=new XMLHttpRequest;r.addEventListener("load",(function(){var n=function(t){for(var e="",n=new Uint8Array(t),r=0;r<n.byteLength;r++)e+=String.fromCharCode(n[r]);return window.btoa(e)}(r.response),i=t.text.replace(o,'url("data:'+t.format+";base64,"+n+'")')+"\n";d[t.url]=i,e(i)})),r.addEventListener("error",(function(n){console.warn("Failed to load font from: "+t.url,n),d[t.url]=null,e(null)})),r.addEventListener("abort",(function(n){console.warn("Aborted loading font from: "+t.url,n),e(null)})),r.open("GET",t.url),r.responseType="arraybuffer",r.send()}))}))).then((function(t){return t.filter((function(t){return t})).join("")}))}(g).then((function(t){return h.join("\n")+t}))},m=function(){if(!navigator.msSaveOrOpenBlob&&!("download"in document.createElement("a")))return{popup:window.open()}};r.prepareSvg=function(t,e,n){l(t);var r=e||{},o=r.left,a=void 0===o?0:o,u=r.top,c=void 0===u?0:u,f=r.width,d=r.height,p=r.scale,m=void 0===p?1:p,v=r.responsive,y=void 0!==v&&v,b=r.excludeCss,A=void 0!==b&&b;return function(t){return Promise.all(Array.from(t.querySelectorAll("image")).map((function(t){var e,n=t.getAttributeNS("http://www.w3.org/1999/xlink","href")||t.getAttribute("href");return n?((e=n)&&0===e.lastIndexOf("http",0)&&-1===e.lastIndexOf(window.location.host)&&(n+=(-1===n.indexOf("?")?"?":"&")+"t="+(new Date).valueOf()),new Promise((function(e,r){var i=document.createElement("canvas"),s=new Image;s.crossOrigin="anonymous",s.src=n,s.onerror=function(){return r(new Error("Could not load "+n))},s.onload=function(){i.width=s.width,i.height=s.height,i.getContext("2d").drawImage(s,0,0),t.setAttributeNS("http://www.w3.org/1999/xlink","href",i.toDataURL("image/png")),e(!0)}}))):Promise.resolve(null)})))}(t).then((function(){var r=t.cloneNode(!0);r.style.backgroundColor=(e||{}).backgroundColor||t.style.backgroundColor;var o=function(t,e,n,r){if("svg"===t.tagName)return{width:n||h(t,e,"width"),height:r||h(t,e,"height")};if(t.getBBox){var i=t.getBBox(),s=i.x,o=i.y;return{width:s+i.width,height:o+i.height}}}(t,r,f,d),u=o.width,l=o.height;if("svg"!==t.tagName){if(!t.getBBox)return void console.error("Attempted to render non-SVG element",t);null!=r.getAttribute("transform")&&r.setAttribute("transform",r.getAttribute("transform").replace(/translate\(.*?\)/,""));var p=document.createElementNS("http://www.w3.org/2000/svg","svg");p.appendChild(r),r=p}if(r.setAttribute("version","1.1"),r.setAttribute("viewBox",[a,c,u,l].join(" ")),r.getAttribute("xmlns")||r.setAttributeNS(i,"xmlns",s),r.getAttribute("xmlns:xlink")||r.setAttributeNS(i,"xmlns:xlink","http://www.w3.org/1999/xlink"),y?(r.removeAttribute("width"),r.removeAttribute("height"),r.setAttribute("preserveAspectRatio","xMinYMin meet")):(r.setAttribute("width",u*m),r.setAttribute("height",l*m)),Array.from(r.querySelectorAll("foreignObject > *")).forEach((function(t){t.setAttributeNS(i,"xmlns","svg"===t.tagName?s:"http://www.w3.org/1999/xhtml")})),!A)return g(t,e).then((function(t){var e=document.createElement("style");e.setAttribute("type","text/css"),e.innerHTML="<![CDATA[\n"+t+"\n]]>";var i=document.createElement("defs");i.appendChild(e),r.insertBefore(i,r.firstChild);var s=document.createElement("div");s.appendChild(r);var o=s.innerHTML.replace(/NS\d+:href/gi,'xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href');if("function"!=typeof n)return{src:o,width:u,height:l};n(o,u,l)}));var v=document.createElement("div");v.appendChild(r);var b=v.innerHTML;if("function"!=typeof n)return{src:b,width:u,height:l};n(b,u,l)}))},r.svgAsDataUri=function(t,e,n){return l(t),r.prepareSvg(t,e).then((function(t){var e=t.src,r=t.width,i=t.height,s="data:image/svg+xml;base64,"+window.btoa(decodeURIComponent(encodeURIComponent('<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [<!ENTITY nbsp " ">]>'+e).replace(/%([0-9A-F]{2})/g,(function(t,e){var n=String.fromCharCode("0x"+e);return"%"===n?"%25":n}))));return"function"==typeof n&&n(s,r,i),s}))},r.svgAsPngUri=function(t,e,n){l(t);var i=e||{},s=i.encoderType,o=void 0===s?"image/png":s,a=i.encoderOptions,u=void 0===a?.8:a,c=i.canvg,h=function(t){var e=t.src,r=t.width,i=t.height,s=document.createElement("canvas"),a=s.getContext("2d"),l=window.devicePixelRatio||1;s.width=r*l,s.height=i*l,s.style.width=s.width+"px",s.style.height=s.height+"px",a.setTransform(l,0,0,l,0,0),c?c(s,e):a.drawImage(e,0,0);var h=void 0;try{h=s.toDataURL(o,u)}catch(t){if("undefined"!=typeof SecurityError&&t instanceof SecurityError||"SecurityError"===t.name)return void console.error("Rendered SVG images cannot be downloaded in this browser.");throw t}return"function"==typeof n&&n(h,s.width,s.height),Promise.resolve(h)};return c?r.prepareSvg(t,e).then(h):r.svgAsDataUri(t,e).then((function(t){return new Promise((function(e,n){var r=new Image;r.onload=function(){return e(h({src:r,width:r.width,height:r.height}))},r.onerror=function(){n("There was an error loading the data URI as an image on the following SVG\n"+window.atob(t.slice(26))+"Open the following link to see browser's diagnosis\n"+t)},r.src=t}))}))},r.download=function(t,e,n){if(navigator.msSaveOrOpenBlob)navigator.msSaveOrOpenBlob(f(e),t);else{var r=document.createElement("a");if("download"in r){r.download=t,r.style.display="none",document.body.appendChild(r);try{var i=f(e),s=URL.createObjectURL(i);r.href=s,r.onclick=function(){return requestAnimationFrame((function(){return URL.revokeObjectURL(s)}))}}catch(t){console.error(t),console.warn("Error while getting object URL. Falling back to string URL."),r.href=e}r.click(),document.body.removeChild(r)}else n&&n.popup&&(n.popup.document.title=t,n.popup.location.replace(e))}},r.saveSvg=function(t,e,n){var i=m();return c(t).then((function(t){return r.svgAsDataUri(t,n||{})})).then((function(t){return r.download(e,t,i)}))},r.saveSvgAsPng=function(t,e,n){var i=m();return c(t).then((function(t){return r.svgAsPngUri(t,n||{})})).then((function(t){return r.download(e,t,i)}))}}()},72:t=>{"use strict";var e=[];function n(t){for(var n=-1,r=0;r<e.length;r++)if(e[r].identifier===t){n=r;break}return n}function r(t,r){for(var s={},o=[],a=0;a<t.length;a++){var u=t[a],l=r.base?u[0]+r.base:u[0],c=s[l]||0,h="".concat(l," ").concat(c);s[l]=c+1;var f=n(h),d={css:u[1],media:u[2],sourceMap:u[3],supports:u[4],layer:u[5]};if(-1!==f)e[f].references++,e[f].updater(d);else{var p=i(d,r);r.byIndex=a,e.splice(a,0,{identifier:h,updater:p,references:1})}o.push(h)}return o}function i(t,e){var n=e.domAPI(e);return n.update(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap&&e.supports===t.supports&&e.layer===t.layer)return;n.update(t=e)}else n.remove()}}t.exports=function(t,i){var s=r(t=t||[],i=i||{});return function(t){t=t||[];for(var o=0;o<s.length;o++){var a=n(s[o]);e[a].references--}for(var u=r(t,i),l=0;l<s.length;l++){var c=n(s[l]);0===e[c].references&&(e[c].updater(),e.splice(c,1))}s=u}}},659:t=>{"use strict";var e={};t.exports=function(t,n){var r=function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}(t);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},540:t=>{"use strict";t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},56:(t,e,n)=>{"use strict";t.exports=function(t){var e=n.nc;e&&t.setAttribute("nonce",e)}},825:t=>{"use strict";t.exports=function(t){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var e=t.insertStyleElement(t);return{update:function(n){!function(t,e,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var i=void 0!==n.layer;i&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,i&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var s=n.sourceMap;s&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(s))))," */")),e.styleTagTransform(r,t,e.options)}(e,t,n)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(e)}}}},113:t=>{"use strict";t.exports=function(t,e){if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}},686:(t,e,n)=>{"use strict";n.d(e,{AL:()=>r,NO:()=>i});const r=["A","G","C","U"];var i;!function(t){t.HELM="HELM",t.AXOLABS="Axolabs"}(i||(i={}))},373:(t,e,n)=>{"use strict";n.d(e,{BP:()=>l,H6:()=>u,Nf:()=>a,Q_:()=>o,c6:()=>i,so:()=>r,y1:()=>s});const r="System:AppData/SequenceTranslator",i="monomer-lib.json",s="System:AppData/SequenceTranslator",o="pattern-app-data.json",a="formats-to-helm.json",u="codes-to-symbols.json",l="linkers.json"},620:(t,e,n)=>{"use strict";n.d(e,{$D:()=>a,QC:()=>u,TJ:()=>l,a1:()=>o,hH:()=>c});var r=n(82),i=n(373);const s=new r.FileSource(i.y1);let o,a,u,l;async function c(){if([o,a,u,l].every((t=>void 0!==t)))return;const t=[i.Q_,i.Nf,i.H6,i.BP];[o,a,u,l]=await Promise.all(t.map((t=>async function(t){try{const e=await s.readAsText(t);return JSON.parse(e)}catch(e){console.error(`Error loading json from ${t}:`,e)}}(t))))}},124:(t,e,n)=>{"use strict";n.d(e,{RG:()=>s,TX:()=>o,iD:()=>i});var r=n(328);function i(t){return t.sort(((t,e)=>e.length-t.length))}function s(t,e){const n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+e),n.setAttribute("download",t),n.click()}async function o(t,e,n="Oligo app"){try{return await t()}catch(t){const e=t.hasOwnProperty("message")?t.message:t.toString();throw r.shell.error(`${n} error: `+e),t}finally{e&&e()}}},448:(t,e,n)=>{"use strict";n.d(e,{k:()=>a});var r=n(82),i=n(470),s=n(686),o=n(620);class a{constructor(){const t=i._package.monomerLib;if(null===t)throw new Error("SequenceTranslator: monomer library is null");this.lib=t,this.allMonomers=this.getAllMonomers()}formatMonomerForViewer(t){const e={};return e.name=t.symbol,e.symbol=t.symbol,e.molfile=t.molfile,this.getAllFormats().forEach((n=>{if(n===s.NO.HELM)return;const r=o.QC[n],i=Object.keys(r).filter((e=>r[e]===t.symbol));e[n]=i.join(", ")})),e}getAllMonomers(){const t=this.lib.getPolymerTypes();let e=[];for(const n of t){const t=this.lib.getMonomerSymbolsByType(n).map((t=>this.lib.getMonomer(n,t))).filter((t=>null!==t));e=e.concat(t)}return e}getMonomer(t){const e=this.lib.getMonomer("RNA",t);if(void 0===e)throw new Error(`SequenceTranslator: no monomer with symbol ${t}`);return e}static getInstance(){return void 0===a.instance&&(a.instance=new a),a.instance}getMolfileBySymbol(t){return this.getMonomer(t).molfile}getNaturalAnalogBySymbol(t){const e=this.getMonomer(t).naturalAnalog;if(!e)throw new Error(`ST: no natural analog for ${t}`);return e}isModification(t){return!!this.getMolfileBySymbol(t).includes("MODIFICATION")}getCodeToSymbolMap(t){return new Map(Object.entries(o.QC[t]))}getCodesByFormat(t){return Object.keys(o.QC[t])}getAllFormats(){return Object.keys(o.QC)}getTableForViewer(){const t=this.allMonomers.map((t=>this.formatMonomerForViewer(t)));return r.DataFrame.fromObjects(t)}getCodesToWeightsMap(){const t=new Map;return Object.entries(o.QC).forEach((([e,n])=>{Object.entries(n).forEach((([e,n])=>{const r=this.getMonomer(n),i=r.meta?.molecularWeight;t.set(e,i)}))})),t}}},838:(t,e,n)=>{"use strict";n.d(e,{q:()=>o});var r=n(686),i=n(448),s=n(124);class o{constructor(t){this.sequence=t,this.libWrapper=i.k.getInstance()}getInvalidCodeIndex(t){if(t===r.NO.HELM)return this.sequence.length;const e=["r","d"],n=(0,s.iD)(this.libWrapper.getCodesByFormat(t));let i=0;for(;i<this.sequence.length;){const t=n.find((t=>t===this.sequence.substring(i,i+t.length)));if(!t)break;if(i>1&&r.AL.includes(this.sequence[i])&&e.includes(this.sequence[i-2]))break;if(e.includes(this.sequence[i+1])&&r.AL.includes(this.sequence[i])){i++;break}i+=t.length}return i===this.sequence.length&&(i=-1),i}isValidSequence(t){return-1===this.getInvalidCodeIndex(t)}}},670:(t,e,n)=>{"use strict";function r(t,e=!0){let n="\n Datagrok macromolecule handler\n\n";n+=" 0 0 0 0 0 0 999 V3000\n",n+="M V30 BEGIN CTAB\n";let r="",a="",u="";const l=[];let c=0,h=0,f=0;if(t.antiStrands.length>0)for(let e=0;e<t.antiStrands.length;e++)t.antiStrands[e]=i(t.antiStrands[e]);let d=!1;const p=t.senseStrands.concat(t.antiStrands);let g=0;for(let e=0;e<p.length;e++){p[e]=p[e].replaceAll("(-\nM V30 ","(").replaceAll("-\nM V30 ","").replaceAll(" )",")");const n=s(p[e]),i=o(p[e]);if(e>=t.senseStrands.length?!1===d&&(d=!0,f=0):g=Math.min(g,Math.min(...i.y.filter((t=>t<0)))),d){const t=Math.min(...i.x)-f,e=Math.max(...i.y)+5;for(let e=0;e<i.x.length;e++)i.x[e]-=t;for(let t=0;t<i.y.length;t++)i.y[t]-=e-g}let u=p[e].indexOf("M V30 BEGIN ATOM");u=p[e].indexOf("\n",u);let m=u,v=u;for(let t=0;t<n.natom;t++){m=p[e].indexOf("V30",m)+4,v=p[e].indexOf(" ",m);const n=parseInt(p[e].substring(m,v))+c;p[e]=p[e].slice(0,m)+n+p[e].slice(v),m=p[e].indexOf(" ",m)+1,m=p[e].indexOf(" ",m)+1,v=p[e].indexOf(" ",m);let r=Math.round(1e4*i.x[t])/1e4;p[e]=p[e].slice(0,m)+r+p[e].slice(v),m=p[e].indexOf(" ",m)+1,v=p[e].indexOf(" ",m),r=Math.round(1e4*i.y[t])/1e4,p[e]=p[e].slice(0,m)+r+p[e].slice(v),m=p[e].indexOf("\n",m)+1}const y=p[e].indexOf("M V30 END ATOM");r+=p[e].substring(u+1,y);let b=p[e].indexOf("M V30 BEGIN BOND");b=p[e].indexOf("\n",b),m=b,v=b;for(let t=0;t<n.nbond;t++){m=p[e].indexOf("V30",m)+4,v=p[e].indexOf(" ",m);const t=parseInt(p[e].substring(m,v))+h;p[e]=p[e].slice(0,m)+t+p[e].slice(v),m=p[e].indexOf(" ",m)+1,m=p[e].indexOf(" ",m)+1,v=p[e].indexOf(" ",m);let n=parseInt(p[e].substring(m,v))+c;p[e]=p[e].slice(0,m)+n+p[e].slice(v),m=p[e].indexOf(" ",m)+1,v=Math.min(p[e].indexOf("\n",m),p[e].indexOf(" ",m)),n=parseInt(p[e].substring(m,v))+c,p[e]=p[e].slice(0,m)+n+p[e].slice(v),m=p[e].indexOf("\n",m)+1}const A=p[e].indexOf("M V30 END BOND");a+=p[e].substring(b+1,A);let w=p[e].indexOf("M V30 MDLV30/STEABS ATOMS=(");for(;-1!==w;){w+=28;const t=p[e].indexOf(")",w);p[e].substring(w,t).split(" ").slice(1).forEach((t=>{l.push(parseInt(t)+c)})),w=t,w=p[e].indexOf("M V30 MDLV30/STEABS ATOMS=(",w)}c+=n.natom,h+=n.nbond,f+=Math.max(...i.x)+5}const m=Math.ceil(l.length/4);u+="M V30 MDLV30/STEABS ATOMS=("+l.length+" -\n";for(let t=0;t<m;t++){u+="M V30 ";const e=t+1===m?l.length-4*(m-1):4;for(let n=0;n<e;n++)u+=n+1===e?t===m-1?l[4*t+n]+")\n":l[4*t+n]+" -\n":l[4*t+n]+" "}return n+="M V30 COUNTS "+c+" "+h+" 0 0 0\n",n+="M V30 BEGIN ATOM\n",n+=r,n+="M V30 END ATOM\n",n+="M V30 BEGIN BOND\n",n+=a,n+="M V30 END BOND\n",e&&l.length>0?(n+="M V30 BEGIN COLLECTION\n",n+=u,n+="M V30 END COLLECTION\n"):n=n.replace(/ CFG=\d/g," "),n+="M V30 END CTAB\n",n+="M END",n}function i(t){const e=o(t),n=e.atomIndex.length,r=(Math.max(...e.x)+Math.min(...e.x))/2,i=(Math.max(...e.y)+Math.min(...e.y))/2;for(let t=0;t<n;t++)e.x[t]-=r,e.y[t]-=i;const s=Math.PI,a=Math.cos(s),u=Math.sin(s);for(let t=0;t<n;t++){const n=e.x[t];e.x[t]=n*a-e.y[t]*u,e.y[t]=n*u+e.y[t]*a}const l=Math.max(...e.y);for(let t=0;t<n;t++)e.x[t]+=r,e.y[t]-=l;let c=t.indexOf("M V30 BEGIN ATOM");c=t.indexOf("\n",c);let h=c;for(let r=0;r<n;r++)c=t.indexOf("V30",c)+4,c=t.indexOf(" ",c)+1,c=t.indexOf(" ",c)+1,h=t.indexOf(" ",c)+1,h=t.indexOf(" ",h),c=(t=t.slice(0,c)+e.x[r]+" "+e.y[r]+t.slice(h)).indexOf("\n",c)+1;return t}function s(t){let e=(t=t.replaceAll("\r","")).indexOf("COUNTS")+7,n=t.indexOf(" ",e);const r=parseInt(t.substring(e,n));return e=n+1,n=t.indexOf(" ",e),{natom:r,nbond:parseInt(t.substring(e,n))}}function o(t){const e=s(t);let n=t.indexOf("M V30 BEGIN ATOM");n=t.indexOf("\n",n);let r=n;const i=Array(e.natom),o=Array(e.natom),a=Array(e.natom),u=Array(e.natom);for(let s=0;s<e.natom;s++)n=t.indexOf("V30",n)+4,r=t.indexOf(" ",n),i[s]=parseInt(t.substring(n,r)),n=r+1,r=t.indexOf(" ",n),o[s]=t.substring(n,r),n=r+1,r=t.indexOf(" ",n),a[s]=parseFloat(t.substring(n,r)),n=r+1,r=t.indexOf(" ",n),u[s]=parseFloat(t.substring(n,r)),n=t.indexOf("\n",n)+1;return{atomIndex:i,atomType:o,x:a,y:u}}n.d(e,{cx:()=>o,vS:()=>r})},537:(t,e,n)=>{"use strict";n.d(e,{iL:()=>s,q7:()=>i,ti:()=>r});const r={NUCLEOSIDE:"nucleoside",LINKAGE:"phosphateBackbone"},i="p",s="<?>"},480:(t,e,n)=>{"use strict";n.d(e,{C6:()=>h,OT:()=>f,bD:()=>l});var r=n(686),i=n(67),s=n(537),o=n(348),a=n(620),u=n(448);function l(t,e,n){const i=Object.keys(a.$D).concat([r.NO.HELM]);if(!t||-1!==e&&n!==r.NO.HELM)return{};if(!i.includes(n))throw new Error(`${n} format is not supported by SequenceTranslator`);const s=i.filter((t=>t!=n)).sort(((t,e)=>t.localeCompare(e))),l=new o.y(t,n),h=Object.fromEntries(s.map((t=>{let e;try{e=l.convertTo(t)}catch{e=null}return[t,e]})).filter((([t,e])=>e))),f=c(n===r.NO.HELM?t:h[r.NO.HELM],u.k.getInstance());return f&&(h.Nucleotides=f),h}function c(t,e){const n=new RegExp("\\([^()]*\\)","g"),i=t.match(n);return i?i.map((t=>{const n=t.replace(/[\[\]()]/g,"");return r.AL.includes(n)?n:e.getNaturalAnalogBySymbol(n)})).map((t=>t||s.iL)).join(""):null}function h(t,e,n){const s=new o.y(t,e);return n===i.qP?c(s.convertTo(r.NO.HELM),u.k.getInstance()):s.convertTo(n)}function f(){return Object.keys(a.$D).concat([r.NO.HELM,i.qP]).sort()}},348:(t,e,n)=>{"use strict";n.d(e,{y:()=>c});var r=n(686),i=n(537),s=n(620);const o=(t,e)=>e.length-t.length;class a{constructor(){this.formats=this.getFormats()}getFormatNames(){return this.formats.sort()}getCodesByFormat(t){if(this.validateFormat(t),this.isHelm(t))throw new Error("Codes cannot be obtained for HELM");return this.getFormatCodes(t)}getHelmToFormatDict(t){return this.validateFormat(t),function(t){const e={};return Object.values(t).forEach((t=>{Object.entries(t).forEach((([t,n])=>{const r=n.replace(/\)p/g,")").replace(/\]p/g,"]");void 0===e[r]?e[r]=[t]:e[r].push(t)}))})),Object.entries(e).forEach((([t,n])=>{const r=n.sort(o);e[t]=r[0]})),e}(s.$D[t])}getFormatToHelmDict(t){this.validateFormat(t);const e=s.$D[t];return Object.assign({},...Object.values(e))}getTargetFormatHelmCodes(t){this.validateFormat(t);const e=this.getHelmToFormatDict(t);return Object.keys(e).sort(o)}getTargetFormatHelmCodesRegExp(t){this.validateFormat(t);const e=this.getTargetFormatHelmCodes(t);return new RegExp(u(e)+"|.","g")}getFormatRegExp(t){if(this.validateFormat(t),this.isHelm(t))throw new Error("Helm RegExp can be built for non-HELM target formats");return this.getNonHelmFormatRegExp(t)}getPhosphateHelmCodesRegExp(t){this.validateFormat(t);const e=s.$D[t],n=u(Array.from(new Set(Object.values(e[i.ti.LINKAGE]))).sort(o));return new RegExp(`${i.q7}.(${n})`,"g")}isValidFormat(t){return this.formats.includes(t)}getFormats(){return Object.keys(s.$D)}validateFormat(t){if(!this.isValidFormat(t))throw new Error(`Invalid format: ${t}`)}isHelm(t){return t===r.NO.HELM}getFormatCodes(t){const e=this.getFormatToHelmDict(t);return Object.keys(e).sort(o)}getNonHelmFormatRegExp(t){const e=this.getCodesByFormat(t);return new RegExp(u(e)+"|\\([^()]*\\)|.","g")}}function u(t){return t.map((t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))).map((t=>t.includes("(")||t.includes(")")?t:`(?<!\\([^()]*)${t}(?![^()]*\\))`)).join("|")}const l={LEFT:"RNA1{",RIGHT:"}$$$$"};class c{constructor(t,e){this.sequence=t,this.sourceFormat=e,this.formats=new a}convertTo(t){const e=this.formats.getFormatNames();if(this.sourceFormat===r.NO.HELM&&e.includes(t))return this.helmToFormat(this.sequence,t);if(e.includes(this.sourceFormat)&&t===r.NO.HELM)return this.formatToHelm(this.sequence,this.sourceFormat);if([this.sourceFormat,t].every((t=>e.includes(t)))){const e=this.formatToHelm(this.sequence,this.sourceFormat);return this.helmToFormat(e,t)}throw new Error(`ST: unsupported translation direction ${this.sourceFormat} -> ${t}`)}helmToFormat(t,e){const n=new RegExp(u(Object.values(l)),"g");let r=t.replace(n,"");const s=this.formats.getHelmToFormatDict(e),o=this.formats.getTargetFormatHelmCodes(e),a=this.formats.getTargetFormatHelmCodesRegExp(e);return r=r.replace(a,(t=>o.includes(t)?s[t]:"p"===t||"."===t?t:"?")).replace(/\?+/g,i.iL).replace(/p\.|\./g,""),r=r.replace(/<empty>/g,""),r=r.replace(/\/\//g,"/"),r}formatToHelm(t,e){const n=this.formats.getFormatToHelmDict(e),r=this.formats.getCodesByFormat(e),s=this.formats.getFormatRegExp(e),o=this.formats.getPhosphateHelmCodesRegExp(e);let a=t.replace(s,(t=>r.includes(t)?n[t]+".":"?"));return a=a.replace(/\?+/g,`${i.iL}.`),a=a.slice(0,-1),a[a.length-1]===i.q7&&(a=a.slice(0,-1)),a=a.replace(o,((t,e)=>e)),a=a.replace(/<empty>/g,""),`${l.LEFT+a+l.RIGHT}`}}},67:(t,e,n)=>{"use strict";n.d(e,{U_:()=>i,n_:()=>r,qP:()=>s});const r="Copied",i="Copy sequence",s="Nucleotides"},470:(t,e,n)=>{"use strict";n.r(e),n.d(e,{_package:()=>Xn,createMonomerLibraryForPolyTool:()=>mr,demoOligoPattern:()=>lr,demoOligoStructure:()=>cr,demoTranslateSequence:()=>ur,getCodeToWeightsMap:()=>ir,getMolfileFromGcrsSequence:()=>or,initSequenceTranslatorLibData:()=>rr,linkStrands:()=>ar,oligoPatternApp:()=>er,oligoStructureApp:()=>nr,oligoToolkitApp:()=>Zn,oligoTranslatorApp:()=>tr,polyToolColumnChoice:()=>gr,polyToolConvert:()=>dr,polyToolEnumerate:()=>pr,translateOligonucleotideSequence:()=>hr,validateSequence:()=>sr});var r,i,s,o,a,u,l,c=n(82),h=n.n(c),f=n(328),d=n(620),p=n(448);class g{constructor(t,e=!1){if(this._length=0,this._version=0,this._updateLevel=0,this._selectedCount=0,this._selectedCountVersion=-1,this._selectedIndexesVersion=-1,this._versionedName="",this._versionedNameVersion=-1,this.SHRINK_THRESHOLD=256,"number"==typeof t){const n=t,r=g._createBuffer(n);if(e)for(let t=0;t<r.length;t++)r[t]=-1;this._data=r,this._length=n}else{if(!(t instanceof Uint32Array))throw new Error("Invalid constructor");this._data=t,this._length=e}}getRawData(){return this._data}assureGoez(t,e){if(t<0)throw new Error(`${e} should be greater than zero`)}assureInRange(t,e,n,r){if(t<e||t>n)throw new Error(`Argument ${r} (${t}) out of range (${e}, ${n})`)}copy(t,e,n){for(let r=0;r<n;r++)e[r]=t[r]}copyFrom(t){if(this._length!=t._length)throw new Error(`Lengths differ (${this._length} != ${t._length})`);this.copy(t._data,this._data,this.lengthInInts),this._version++}get length(){return this._length}get buffer(){return this._data}set buffer(t){this._data=t,this._version++}get version(){return this._version}set version(t){this._version=t}incrementVersion(t=!0){this._version++}get lengthInInts(){return Math.floor((this._length+31)/32)}get versionedName(){return this._version==this._versionedNameVersion?this._versionedName:""}set versionedName(t){this._versionedName=t,this._versionedNameVersion=this._version}get self(){return this}setLength(t){if(t<0)throw new Error("should be >= 0");if(t==this._length)return;const e=Math.floor((t+31)/32);if(e>this._data.length||e+this.SHRINK_THRESHOLD<this._data.length){const t=new Uint32Array(e);this.copy(this._data,t,e>this._data.length?this._data.length:e),this._data=t}t>this._length&&(this._length%32>0&&(this._data[this.lengthInInts-1]&=(1<<(this._length%32&31))-1),this._data.fill(0,this.lengthInInts,e)),this._length=t,this._version++}static fromAnd(t,e){if(t._length!=e._length)throw new Error(`Lengths differ (${t._length} != ${e._length})`);const n=new g(t._length);n._length=t._length,n._data=g._createBuffer(n._length),n._version=0;const r=t.lengthInInts;for(let i=0;i<r;i++)n._data[i]=t._data[i]&e._data[i];return n}static _createBuffer(t){return new Uint32Array(Math.floor((t+31)/32))}static fromValues(t){const e=new g(t.length);e._version=0;for(let n=0;n<e._length;n++)t[n]&&(e._data[Math.floor(n/32)]|=1<<(n%32&31));return e}static fromSeq(t,e){const n=new g(t);for(let r=0;r<t;++r)n.setBit(r,e(r));return n._version=0,n}static fromString(t){return g.fromSeq(t.length,(e=>"1"==t.charAt(e)))}static fromUint32Array(t,e){const n=new g(t);return n._data=e,n}static fromBytes(t){const e=t.length,n=new g(8*e);n._data=new Uint32Array(Math.floor((e+3)/4)),n._length=8*e;let r=0,i=0;for(;e-i>=4;)n._data[r++]=255&t[i]|(255&t[i+1])<<8|(255&t[i+2])<<16|(255&t[i+3])<<24,i+=4;return e-i==3&&(n._data[r]=(255&t[i+2])<<16),e-i==2&&(n._data[r]|=(255&t[i+1])<<8),e-i==1&&(n._data[r]|=255&t[i]),n._version=0,n}toString(){return`${this._length} bits, ${this.countBits(!0)} set`}equals(t){if(this==t)return!0;if(null==t)return!1;if(this._length!=t._length)return!1;if(0==this._length)return!0;for(let e=0;e<this._data.length-1;e++)if(this._data[e]!=t._data[e])return!1;for(let e=8*(this._data.length-1);e<this._length;e++)if(this.getBit(e)!=t.getBit(e))return!1;return!0}clone(){const t=new g(0,!1);return t._data=Uint32Array.from(this._data),t._length=this._length,t._version=this._version,t}init(t,e){this.setAll(!1,!1);for(let e=0;e<this._length;e++)t(e)&&(this._data[Math.floor(e/32)]|=1<<(e%32&31));return this.incrementVersion(e),this}invert(t=!0){for(let t=0;t<this._data.length;t++)this._data[t]^=-1;this.incrementVersion(t)}setAll(t,e=!1){const n=t?-1:0,r=this.lengthInInts;for(let t=0;t<r;t++)this._data[t]=n;this.incrementVersion(e)}setIndexes(t,e=!0,n=!0,r=!0){n&&this.setAll(!e,!1);for(const n of t)this.setFast(n,e);this.incrementVersion(r)}everyIndex(t,e=!0){for(const n of t)if(this.getBit(n)!=e)return!1;return!0}anyIndex(t,e=!0){for(const n of t)if(this.getBit(n)==e)return!0;return!1}setWhere(t,e=!0,n=!0,r=!0,i=!0){if(n&&i&&this.setAll(!e,!1),i)for(let n=0;n<this._length;n++)t(n)&&this.setFast(n,e);else for(let n=0;n<this._length;n++)this.setFast(n,t(n)?e:!e);this.incrementVersion(r)}getRange(t,e){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length,"to");const n=[];for(let r=t;r<e;++r)n.push(this.getBit(r));return g.fromValues(n)}getRangeAsList(t,e){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length,"to");const n=[];for(let r=t;r<e;++r)n.push(this.getBit(r));return n}setRange(t,e,n,r=!0){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length-1,"to");const i=Math.min(t,e),s=Math.max(t,e);if(n)for(let t=i;t<=s;t++)this.setTrue(t);else for(let t=i;t<=s;t++)this.setFalse(t);return this.incrementVersion(r),this}setRandom(t,e,n=!0){if(t<0||t>this._length)throw new Error("n must be >= 0 && <= Count");t>this._length/2&&this.setRandom(this._length-t,!e),this.setAll(!e);for(let n=0;n<t;){const t=Math.floor(Math.random()*this._length);this.getBit(t)!=e&&(this.setFast(t,e),n++)}this.incrementVersion(n)}and(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]&=t._data[e];return this.incrementVersion(e),this}andNot(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");const n=this.lengthInInts;for(let e=0;e<n;e++)this._data[e]&=~t._data[e];return this.incrementVersion(e),this}notAnd(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]=~this._data[e]&t._data[e];return this.incrementVersion(e),this}not(t=!0){for(let t=0,e=this.lengthInInts;t<e;t++)this._data[t]=~this._data[t];return this.incrementVersion(t),this}or(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]|=t._data[e];return this.incrementVersion(e),this}xor(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]^=t._data[e];return this.incrementVersion(e),this}insertAt(t,e,n=!1){if(this.assureInRange(t,0,this._length,"pos"),0==e)return;const r=this._length;this.setLength(this._length+e);for(let n=r-1;n>=t;n--)this.setBit(n+e,this.getBit(n));for(let r=t;r<t+e;r++)this.setBit(r,n)}removeAt(t,e=1){if(e<0)throw new Error("n cannot be negative");if(this.assureInRange(t,0,this._length-e,"pos"),this.contains(!0))for(let n=t;n<this._length-e;n++)this.setBit(n,this.getBit(n+e));this.setLength(this._length-e)}removeByMask(t,e=!0){if(this._length!=t.length)throw new Error("length != mask.length");if(t==this)this.setLength(t.countBits(!e)),this.setAll(!e);else{let n=0;for(let r=-1;-1!=(r=t.findNext(r,!e));)this.setFast(n++,this.getBit(r));this._length=n,this._version++}return this}getBit(t){return!!(this._data[Math.floor(t/32)]&1<<(31&t))}setBit(t,e,n=!0){this.setFast(t,e),this._version++}setFast(t,e){e?this._data[Math.floor(t/32)]|=1<<(31&t):this._data[Math.floor(t/32)]&=~(1<<(31&t))}setTrue(t){this._data[Math.floor(t/32)]|=1<<(31&t)}setFalse(t){this._data[Math.floor(t/32)]&=~(1<<(31&t))}trueCount(){return this.countBits(!0)}falseCount(){return this.countBits(!1)}countBits(t){if(0==this._length)return 0;if(this._selectedCountVersion!=this._version){this._selectedCount=0;const t=this.lengthInInts;let e=0;for(;e<t-1;e++)for(let t=this._data[e];0!=t;t>>>=8)this._selectedCount+=g._onBitCount[255&t];let n=this._data[e];const r=31&this._length;for(0!=r&&(n&=~(4294967295<<r));0!=n;n>>>=8)this._selectedCount+=g._onBitCount[255&n];this._selectedCountVersion=this._version}return t?this._selectedCount:this._length-this._selectedCount}countWhere(t){let e=0;if(this.trueCount()==this._length)for(let n=0;n<this._length;n++)e+=t(n)?1:0;else for(let n=-1;-1!=(n=this.findNext(n,!0));)e+=t(n)?1:0;return e}andWithCountBits(t,e){if(0==this._length)return 0;let n=0;const r=this.lengthInInts;let i=0;for(;i<r-1;i++)for(let e=this._data[i]&t._data[i];0!=e;e>>>=8)n+=g._onBitCount[255&e];let s=this._data[i]&t._data[i];const o=31&this._length;for(0!=o&&(s&=~(4294967295<<o));0!=s;s>>>=8)n+=g._onBitCount[255&s];return e?n:this._length-n}clear(){this.setLength(0)}contains(t){return this.findNext(-1,t)>=0}get allTrue(){return this.countBits(!0)==this._length}get allFalse(){return this.countBits(!1)==this._length}get anyTrue(){return this.countBits(!0)>0}get anyFalse(){return this.countBits(!1)>0}findNext(t,e=!0){if(this.assureInRange(t,-1,this._length,"index"),t>=this._length-1)return-1;let n=31&(t=t<0?0:t+1);const r=this.lengthInInts;for(let i=Math.floor(t/32);i<r;i++){let r=e?this._data[i]:~this._data[i];if(0!=n)r&=4294967295<<n&4294967295,n=0;else if(!e&&-4294967296==r)continue;for(let e=0;0!=r;e+=8,r>>>=8){const n=g._firstOnBit[255&r];if(n>=0)return(t=n+32*i+e)>=this._length?-1:t}}return-1}findPrev(t,e=!0){if(0==t)return-1;this.assureInRange(t,-1,this._length,"index");let n=1+(t=t<0?this._length-1:t-1)&31;for(let r=Math.floor(t/32);r>=0;r--){let t=e?this._data[r]:~this._data[r];0!=n&&(t&=~(4294967295<<n),n=0);for(let e=24;0!=t;e-=8,t<<=8){const n=g._lastOnBit[t>>>24];if(n>=0)return n+32*r+e}}return-1}}function m(t={}){const e=function(){if(!t||!t.scoringMatrix||!t.alphabetIndexes)return(t,e)=>t===e?0:1;if(t.scoringMatrix.length!==Object.keys(t.alphabetIndexes).length)throw new Error("Scoring matrix and alphabet indexes should have the same length");const e=t.alphabetIndexes,n=t.scoringMatrix,r=Math.min(...Object.keys(e).map((t=>t.charCodeAt(0))))+1,i=new Float32Array((n.length+r)*(n.length+r));return Object.entries(e).forEach((([t,r])=>{const s=n[r];Object.entries(e).forEach((([e,r])=>{i[t.charCodeAt(0)*n.length+e.charCodeAt(0)]=s[r]}))})),(t,e)=>1-i[t.charCodeAt(0)*n.length+e.charCodeAt(0)]}(),n=t?.threshold??0;return(t,r)=>{let i=0;const s=t.length,o=r.length,a=Math.ceil(Math.max(s,o)*(1-n));s!==o&&(i=Math.abs(s-o));let u=0;for(let n=0;n<Math.min(s,o);n++)if(t[n]!==r[n]&&(u+=e(t[n],r[n]),u>a))return 1;return u+=i,u/=Math.max(s,o),u}}g._onBitCount=Int8Array.from([0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8]),g._firstOnBit=Int8Array.from([-1,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0]),g._lastOnBit=Int8Array.from([-1,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7]),function(t){t.Levenshtein="Levenshtein",t.JaroWinkler="Jaro-Winkler",t.Manhattan="Manhattan",t.Onehot="One-Hot"}(r||(r={})),function(t){t.Euclidean="Euclidean"}(i||(i={})),function(t){t.Tanimoto="Tanimoto",t.Dice="Dice",t.Asymmetric="Asymmetric",t.BraunBlanquet="Braun-Blanquet",t.Cosine="Cosine",t.Kulczynski="Kulczynski",t.McConnaughey="Mc-Connaughey",t.RogotGoldberg="Rogot-Goldberg",t.Russel="Russel",t.Sokal="Sokal",t.Hamming="Hamming",t.Euclidean="Euclidean"}(s||(s={})),function(t){t.TanimotoIntArray="TanimotoIntArray"}(o||(o={})),function(t){t.Vector="Vector",t.String="String",t.BitArray="BitArray",t.MacroMolecule="MacroMolecule",t.Number="Number",t.IntArray="IntArray",t.NumberArray="NumberArray"}(a||(a={})),function(t){t.Difference="Difference"}(u||(u={})),function(t){t.CommonItems="Common Items"}(l||(l={}));const v=new Uint32Array(65536),y={gapOpen:1,gapExtend:.6,scoringMatrix:[[4,-1,-2,-2,0,-1,-1,0,-2,-1,-1,-1,-1,-2,-1,1,0,-3,-2,0,-2,-1,0,-4],[-1,5,0,-2,-3,1,0,-2,0,-3,-2,2,-1,-3,-2,-1,-1,-3,-2,-3,-1,0,-1,-4],[-2,0,6,1,-3,0,0,0,1,-3,-3,0,-2,-3,-2,1,0,-4,-2,-3,3,0,-1,-4],[-2,-2,1,6,-3,0,2,-1,-1,-3,-4,-1,-3,-3,-1,0,-1,-4,-3,-3,4,1,-1,-4],[0,-3,-3,-3,9,-3,-4,-3,-3,-1,-1,-3,-1,-2,-3,-1,-1,-2,-2,-1,-3,-3,-2,-4],[-1,1,0,0,-3,5,2,-2,0,-3,-2,1,0,-3,-1,0,-1,-2,-1,-2,0,3,-1,-4],[-1,0,0,2,-4,2,5,-2,0,-3,-3,1,-2,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-2,0,-1,-3,-2,-2,6,-2,-4,-4,-2,-3,-3,-2,0,-2,-2,-3,-3,-1,-2,-1,-4],[-2,0,1,-1,-3,0,0,-2,8,-3,-3,-1,-2,-1,-2,-1,-2,-2,2,-3,0,0,-1,-4],[-1,-3,-3,-3,-1,-3,-3,-4,-3,4,2,-3,1,0,-3,-2,-1,-3,-1,3,-3,-3,-1,-4],[-1,-2,-3,-4,-1,-2,-3,-4,-3,2,4,-2,2,0,-3,-2,-1,-2,-1,1,-4,-3,-1,-4],[-1,2,0,-1,-3,1,1,-2,-1,-3,-2,5,-1,-3,-1,0,-1,-3,-2,-2,0,1,-1,-4],[-1,-1,-2,-3,-1,0,-2,-3,-2,1,2,-1,5,0,-2,-1,-1,-1,-1,1,-3,-1,-1,-4],[-2,-3,-3,-3,-2,-3,-3,-3,-1,0,0,-3,0,6,-4,-2,-2,1,3,-1,-3,-3,-1,-4],[-1,-2,-2,-1,-3,-1,-1,-2,-2,-3,-3,-1,-2,-4,7,-1,-1,-4,-3,-2,-2,-1,-2,-4],[1,-1,1,0,-1,0,0,0,-1,-2,-2,0,-1,-2,-1,4,1,-3,-2,-2,0,0,0,-4],[0,-1,0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1,1,5,-2,-2,0,-1,-1,0,-4],[-3,-3,-4,-4,-2,-2,-3,-2,-2,-3,-2,-3,-1,1,-4,-3,-2,11,2,-3,-4,-3,-2,-4],[-2,-2,-2,-3,-2,-1,-2,-3,2,-1,-1,-2,-1,3,-3,-2,-2,2,7,-1,-3,-2,-1,-4],[0,-3,-3,-3,-1,-2,-2,-3,-3,3,1,-2,1,-1,-2,-2,0,-3,-1,4,-3,-2,-1,-4],[-2,-1,3,4,-3,0,1,-1,0,-3,-4,0,-3,-3,-2,0,-1,-4,-3,-3,4,1,-1,-4],[-1,0,0,1,-3,3,4,-2,0,-3,-3,1,-1,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,0,0,-2,-1,-1,-1,-1,-1,-4],[-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1]],alphabetIndexes:{A:0,R:1,N:2,D:3,C:4,Q:5,E:6,G:7,H:8,I:9,L:10,K:11,M:12,F:13,P:14,S:15,T:16,W:17,Y:18,V:19,B:20,Z:21,X:22,"*":23}};var b;!function(t){t.HAMMING="Hamming",t.LEVENSHTEIN="Levenshtein",t.NEEDLEMANN_WUNSCH="Needlemann-Wunsch",t.MONOMER_CHEMICAL_DISTANCE="Monomer chemical distance"}(b||(b={}));const A={[b.HAMMING]:m,[b.LEVENSHTEIN]:function(){return(t,e)=>((t,e)=>{if(t.length<e.length){const n=e;e=t,t=n}return 0===e.length?t.length:t.length<=32?((t,e)=>{const n=t.length,r=e.length,i=1<<n-1;let s=-1,o=0,a=n,u=n;for(;u--;)v[t.charCodeAt(u)]|=1<<u;for(u=0;u<r;u++){let t=v[e.charCodeAt(u)];const n=t|o;t|=(t&s)+s^s,o|=~(t|s),s&=t,o&i&&a++,s&i&&a--,o=o<<1|1,s=s<<1|~(n|o),o&=n}for(u=n;u--;)v[t.charCodeAt(u)]=0;return a})(t,e):((t,e)=>{const n=e.length,r=t.length,i=[],s=[],o=Math.ceil(n/32),a=Math.ceil(r/32);for(let t=0;t<o;t++)s[t]=-1,i[t]=0;let u=0;for(;u<a-1;u++){let o=0,a=-1;const l=32*u,c=Math.min(32,r)+l;for(let e=l;e<c;e++)v[t.charCodeAt(e)]|=1<<e;for(let t=0;t<n;t++){const n=v[e.charCodeAt(t)],r=s[t/32|0]>>>t&1,u=i[t/32|0]>>>t&1,l=n|o,c=((n|u)&a)+a^a|n|u;let h=o|~(c|a),f=a&c;h>>>31^r&&(s[t/32|0]^=1<<t),f>>>31^u&&(i[t/32|0]^=1<<t),h=h<<1|r,f=f<<1|u,a=f|~(l|h),o=h&l}for(let e=l;e<c;e++)v[t.charCodeAt(e)]=0}let l=0,c=-1;const h=32*u,f=Math.min(32,r-h)+h;for(let e=h;e<f;e++)v[t.charCodeAt(e)]|=1<<e;let d=r;for(let t=0;t<n;t++){const n=v[e.charCodeAt(t)],o=s[t/32|0]>>>t&1,a=i[t/32|0]>>>t&1,u=n|l,h=((n|a)&c)+c^c|n|a;let f=l|~(h|c),p=c&h;d+=f>>>r-1&1,d-=p>>>r-1&1,f>>>31^o&&(s[t/32|0]^=1<<t),p>>>31^a&&(i[t/32|0]^=1<<t),f=f<<1|o,p=p<<1|a,c=p|~(u|f),l=f&u}for(let e=h;e<f;e++)v[t.charCodeAt(e)]=0;return d})(t,e)})(t,e)/Math.max(t.length,e.length)},[b.NEEDLEMANN_WUNSCH]:function(t){const e=new Uint16Array(65536),{gapOpen:n,gapExtend:r,scoringMatrix:i,alphabetIndexes:s}={...y,...t};Object.entries(s).forEach((([t,n])=>e[t.charCodeAt(0)]=n));const o=[new Float32Array(1e4),new Float32Array(1e4)];return(t,s)=>{const a=new Array(t.length+1).fill(!1),u=new Array(t.length+1).fill(!1);let l=0,c=1;for(let e=1;e<t.length+1;e++)o[0][e]=-n-(e-1)*r,o[1][e]=0;o[0][0]=0;for(let h=1;h<s.length+1;h++){o[c][0]=-n-(h-1)*r;for(let f=1;f<t.length+1;f++){const d=o[l][f-1]+i[e[t.charCodeAt(f-1)]][e[s.charCodeAt(h-1)]],p=o[l][f]-(a[f]?r:n),g=o[c][f-1]-(u[f-1]?r:n);o[c][f]=Math.max(d,g,p),o[c][f]===d?(a[f]=!1,u[f]=!1):o[c][f]===g?(a[f]=!1,u[f]=!0):(a[f]=!0,u[f]=!1)}l=c,c=(c+1)%2}const h=Math.max(t.length,s.length);return(h-o[l][t.length])/h}},[b.MONOMER_CHEMICAL_DISTANCE]:m};s.Tanimoto,s.Dice,s.Asymmetric,s.BraunBlanquet,s.Cosine,s.Kulczynski,s.McConnaughey,s.RogotGoldberg,s.Russel,s.Sokal,s.Hamming,s.Euclidean,s.Tanimoto,s.Dice,s.Asymmetric,s.BraunBlanquet,s.Cosine,s.Kulczynski,s.McConnaughey,s.RogotGoldberg,s.Russel,s.Sokal,s.Hamming,s.Euclidean,s.Tanimoto,s.Dice,s.Cosine,s.Tanimoto,s.Asymmetric,s.Cosine,s.Sokal,b.HAMMING,b.LEVENSHTEIN,b.MONOMER_CHEMICAL_DISTANCE,b.NEEDLEMANN_WUNSCH;const w={monomerType:"Backbone",smiles:"",name:"",author:"Datagrok",molfile:"",naturalAnalog:"",rgroups:[],createDate:null,id:0,polymerType:"PEPTIDE",symbol:""},C="p",x=new RegExp(`[rd]\\((\\w)\\)${C}?`,"g");class _{constructor(t,e,n){this.name=t,this.alphabet=e,this.cutoff=n}}class S extends _{constructor(t,e,n){super(t.name,t.alphabet,t.cutoff),this.freq=e,this.similarity=n}}const E=wu;var T,I,N,O,M,L=n.n(E);(M=T||(T={})).FASTA="fasta",M.SEPARATOR="separator",M.HELM="helm",(O=I||(I={})).DNA="DNA",O.RNA="RNA",O.PT="PT",O.UN="UN",function(t){t.aligned="aligned",t.alphabet="alphabet",t.alphabetSize=".alphabetSize",t.alphabetIsMultichar=".alphabetIsMultichar",t.separator="separator",t.isHelmCompatible=".isHelmCompatible",t.positionNames=".positionNames",t.positionLabels=".positionLabels",t.regions=".regions"}(N||(N={}));const B=/(?:\[([A-Za-z0-9_\-,()]+)\])|([A-Za-z\-])/g,P=new class{constructor(){this.fasta={peptide:new Set(["G","L","Y","S","E","Q","D","N","F","A","K","R","H","C","V","P","W","I","M","T"]),dna:new Set(["A","C","G","T"]),rna:new Set(["A","C","G","U"])}}},R=[new _(I.PT,P.fasta.peptide,.5),new _(I.DNA,P.fasta.dna,.55),new _(I.RNA,P.fasta.rna,.55)];class D extends Float32Array{}function F(t){let e=0;for(let n=0;n<t.length;n++)e+=t[n]*t[n];return Math.sqrt(e)}class U{static makePalette(t,e=!1,n=U){const r={};return t.forEach((t=>{const n=t[0],i=t[1];n.forEach(((t,n)=>{r[t]=this.colourPalette[i][e?0:n]}))})),new n(r)}constructor(t){this._palette=t}get(t){return this._palette[t]}}U.undefinedColor="rgb(100,100,100)",U.colourPalette={orange:["rgb(255,187,120)","rgb(245,167,100)","rgb(235,137,70)","rgb(205, 111, 71)"],all_green:["rgb(44,160,44)","rgb(74,160,74)","rgb(23,103,57)","rgb(30,110,96)","rgb(60,131,95)","rgb(24,110,79)","rgb(152,223,138)","rgb(182, 223, 138)","rgb(152, 193, 138)"],all_blue:["rgb(31,119,180)","rgb(23,190,207)","rgb(122, 102, 189)","rgb(158,218,229)","rgb(141, 124, 217)","rgb(31, 120, 150)"],magenta:["rgb(162,106,192)","rgb(197,165,224)","rgb(208,113,218)"],red:["rgb(214,39,40)","rgb(255,152,150)"],st_blue:["rgb(23,190,207)","rgb(158,218,229)","rgb(31,119,180)"],dark_blue:["rgb(31,119,180)","rgb(31, 120, 150)"],light_blue:["rgb(23,190,207)","rgb(158,218,229)","rgb(108, 218, 229)","rgb(23,190,227)"],lilac_blue:["rgb(124,102,211)","rgb(149,134,217)","rgb(97, 81, 150)"],dark_green:["rgb(23,103,57)","rgb(30,110,96)","rgb(60,131,95)","rgb(24,110,79)"],green:["rgb(44,160,44)","rgb(74,160,74)"],light_green:["rgb(152,223,138)","rgb(182, 223, 138)","rgb(152, 193, 138)"],st_green:["rgb(44,160,44)","rgb(152,223,138)","rgb(39, 174, 96)","rgb(74,160,74)"],pink:["rgb(247,182,210)"],brown:["rgb(140,86,75)","rgb(102, 62, 54)"],gray:["rgb(127,127,127)","rgb(199,199,199)","rgb(196,156,148)","rgb(222, 222, 180)"],yellow:["rgb(188,189,34)"],white:["rgb(230,230,230)"]};class k extends U{static get Lesk(){return void 0===this.lesk&&(this.lesk=this.makePalette([[["G","A","S","T"],"orange"],[["C","V","I","L","P","F","Y","M","W"],"all_green"],[["N","Q","H"],"magenta"],[["D","E"],"red"],[["K","R"],"all_blue"]],!1,k)),this.lesk}static get GrokGroups(){return void 0===this.grokGroups&&(this.grokGroups=this.makePalette([[["C","U"],"yellow"],[["G","P"],"red"],[["A","V","I","L","M","F","Y","W"],"all_green"],[["R","H","K"],"light_blue"],[["D","E"],"dark_blue"],[["S","T","N","Q"],"orange"]],!1,k)),this.grokGroups}static get RasMol(){return void 0===this.rasMol&&(this.rasMol=new k({D:"#E60A0A",E:"#E60A0A",C:"#E6E600",M:"#E6E600",K:"#145AFF",R:"#145AFF",S:"#FA9600",T:"#FA9600",F:"#3232AA",Y:"#3232AA",N:"#00DCDC",Q:"#00DCDC",G:"#EBEBEB",L:"#0F820F",V:"#0F820F",I:"#0F820F",A:"#C8C8C8",W:"#B45AB4",H:"#8282D2",P:"#DC9682",others:"#BEA06E"})),this.rasMol}get(t){const e=t in k.aaSynonyms?k.aaSynonyms[t]:t;return super.get(e)}}k.aaSynonyms={MeNle:"L",MeA:"A",MeG:"G",MeF:"F"};class H{static getPalette(t="grok"){switch(t){case"grok":return k.GrokGroups;case"lesk":return k.Lesk;default:throw new Error(`ChemPalette: scheme \`${t}\` does not exist`)}}static getInnerOuter(t){let e=0,n="",r="";for(const i of t)"("==i?e++:")"==i?e--:e?n+=i:r+=i;return isNaN(parseInt(n))?[r,n]:[r,""]}static getColorAAPivot(t="",e="grok"){const n=this.getPalette(e);let[r,i]=this.getInnerOuter(t);if(r=r.length>6?`${r.slice(0,3)}...`:r,i=i.length>6?`${i.slice(0,3)}...`:i,1==t.length||"("==t[1]){const e=t[0]?.toUpperCase();return e in n?[n.get(e),e,i,1]:[this.undefinedColor,r,i,1]}if("d"==t[0]&&t[1]in n&&(2==t.length||"("==t[2])){const e=t[1]?.toUpperCase();return e in n?[n.get(e),e,i,2]:[this.undefinedColor,r,i,2]}if(t.substring(0,3)in this.AAFullNames&&(3==t.length||"("==t[3])){const e=this.AAFullNames[t.substring(0,3)];return e in n?[n.get(e),e,i,3]:[this.undefinedColor,r,i,3]}if(t[0]?.toLowerCase()==t[0]&&t.substring(1,3)in this.AAFullNames&&(4==t.length||"("==t[4])){const e=this.AAFullNames[t.substring(1,3)];return e in n?[n.get(e),e,i,4]:[this.undefinedColor,r,i,4]}return[this.undefinedColor,r,i,0]}}H.SemType="Aminoacids",H.SemTypeMultipleAlignment="AminoacidsMultipleAlignment",H.undefinedColor="rgb(100,100,100)",H.Names={G:"Glycine",L:"Leucine",Y:"Tyrosine",S:"Serine",E:"Glutamic acid",Q:"Glutamine",D:"Aspartic acid",N:"Asparagine",F:"Phenylalanine",A:"Alanine",K:"Lysine",R:"Arginine",H:"Histidine",C:"Cysteine",V:"Valine",P:"Proline",W:"Tryptophan",I:"Isoleucine",M:"Methionine",T:"Threonine"},H.AASmiles={G:"NCC(=O)O",L:"N[C@H](CC(C)C)C(=O)O",Y:"NC(CC1=CC=C(O)C=C1)C(=O)O",S:"NC(CO)C(=O)O",E:"N[C@@H](CCC(O)=O)C(=O)O",Q:"N[C@@H](CCC(N)=O)C(=O)O",D:"N[C@@H](CC(O)=O)C(=O)O",N:"N[C@@H](CC(N)=O)C(=O)O",F:"NC(CC1=CC=CC=C1)C(=O)O",A:"N[C@H](C)C(=O)O",K:"NC(CCCCN)C(=O)O",R:"N[C@H](CCCNC(=N)C)C(=O)O",H:"NC(CC1=CN=C[N]1)C(=O)O",C:"N[C@@H](CS)C(=O)O",V:"NC(C(C)C)C(=O)O",P:"N(CCC1)C1C(=O)O",W:"N[C@@H](Cc1c2ccccc2n([H])c1)C(=O)O",I:"N[C@H]([C@H](C)CC)C(=O)O",M:"NC(CCSC)C(=O)O",T:"NC(C(O)C)C(=O)O"},H.AASmilesTruncated={G:"*C*",L:"CC(C)C[C@H](*)*",Y:"C1=CC(=CC=C1CC(*)*)O",S:"OCC(*)C*",E:"*[C@@H](CCC(O)=O)*",Q:"*N[C@@H](CCC(N)=O)*",D:"*[C@@H](CC(O)=O)*",N:"*[C@@H](CC(N)=O)*",F:"C1=CC=C(C=C1)CC(*)*",A:"C[C@H](*)*",K:"C(CCN)CC(*)*",R:"*[C@H](CCCNC(=N)C)*",H:"C1=C(NC=N1)CC(*)*",C:"C([C@@H](*)*)S",V:"CC(C)C(*)*",P:"C1CCN(*)C1*",W:"*[C@@H](Cc1c2ccccc2n([H])c1)*",I:"CC[C@H](C)[C@H](*)*",M:"CSCCC(*)*",T:"CC(O)C(*)*"},H.AAFullNames={Ala:"A",Arg:"R",Asn:"N",Asp:"D",Cys:"C",Gln:"Q",Glu:"E",Gly:"G",His:"H",Ile:"I",Leu:"L",Lys:"K",Met:"M",Phe:"F",Pro:"P",Ser:"S",Thr:"T",Trp:"W",Tyr:"Y",Val:"V"};class V{}V.SemType="Nucleotides",V.SemTypeMultipleAlignment="NucleotidesMultipleAlignment",V.Names={A:"Adenine",C:"Cytosine",G:"Guanine",T:"Thymine",U:"Uracil"};class j{static hashCode(t){let e=0;if(0===t.length)return e;for(let n=0;n<t.length;n++)e=(e<<5)-e+t.charCodeAt(n),e|=0;return e}}class q{}class G extends q{static buildPalette(){return[].concat(...Object.values(U.colourPalette))}get(t){const e=j.hashCode(t)%G.palette.length;return function(t){if(null==t)return"rgb(100,100,100)";const e=c.Color.fromHtml(t),n=c.Color.g(e),r=c.Color.r(e),i=c.Color.b(e),s=Math.sqrt(Math.pow(0-r,2)+Math.pow(0-n,2)+Math.pow(0-i,2));return s>210?`rgb(${r/s*210},${n/s*210},${i/s*210})`:c.Color.toRgb(e)}(G.palette[e])}}G.palette=G.buildPalette();class W{get length(){return this.mList.length}get canonicals(){return this.mList}get originals(){return this.mList}isGap(t){return this.getOriginal(t)===this.gapOriginalMonomer}getCanonical(t){if(this.length<=t)throw new Error("Index out of bounds");return this.mList[t]}getOriginal(t){if(this.length<=t)throw new Error("Index out of bounds");return this.mList[t]}constructor(t,e){this.mList=t,this.gapOriginalMonomer=e}}class z{get length(){return this.seqS.length}get canonicals(){return this.seqS}get originals(){return this.seqS}isGap(t){return this.getOriginal(t)===nt[T.FASTA]}getCanonical(t){if(this.length<=t)throw new Error("Index out of bounds");return this.isGap(t)?"":this.seqS[t]}getOriginal(t){if(this.length<=t)throw new Error("Index out of bounds");return this.seqS[t]}constructor(t){this.seqS=t}}const Y=t=>{const e=L()(t.toString().matchAll(B)).map((t=>t[2]??t[1])).toArray();return new W(e,nt[T.FASTA])},K=t=>t?new z(t):new W([],nt[T.FASTA]);function Q(t,e=void 0){return n=>{if(n){let r;const i=new RegExp(String.raw`"-"|'-'|[^${t}]+`,"g");if(void 0!==e){i.lastIndex=0,r=new Array(Math.ceil(e));let t=null,s=0;for(;null!==(t=i.exec(n))&&s<e;)r[s++]=t[0].replace('"-"',"").replace("'-'","");r.splice(s)}else r=n.replaceAll('"-"',"").replaceAll("'-'","").split(t,e);return new W(r,nt[T.SEPARATOR])}return new W([],nt[T.SEPARATOR])}}const J=/(PEPTIDE1|DNA1|RNA1)\{([^}]+)}/g,X=/\[([^\[\]]+)]/g,Z=t=>{J.lastIndex=0;const e=J.exec(t.toString()),n=e?e[2]:null,r=n?n.split("."):[];return new W(r.map((t=>{X.lastIndex=0;const e=X.exec(t);return e&&e.length>=2?e[1]:t})),nt[T.HELM])};function tt(t,e,n="-"){const r=e.map((e=>{const r=function(t,e,n="-"){const r=new Set([...new Set(Object.keys(t)),...e]);r.delete(n);const i=[],s=[];for(const n of r)i.push(n in t?t[n]:0),s.push(e.has(n)?1:0);const o=new D(i),a=new D(s);return function(t,e){if(t.length!=e.length)throw new Error("The dimensionality of the vectors must match");let n=0;for(let r=0;r<t.length;r++)n+=t[r]*e[r];return n}(o,a)/(F(o)*F(a))}(t,e.alphabet,n);return new S(e,t,r)}));let i;const s=Math.max(...r.map((t=>t.similarity>t.cutoff?t.similarity:-1)));return i=s>0?r.find((t=>t.similarity===s)).name:I.UN,i}const et=new class{constructor(){this.seqHandler="seq-handler",this.notationProvider="seq-handler.notation-provider"}},nt={[T.FASTA]:"-",[T.SEPARATOR]:"",[T.HELM]:"*"};class rt{constructor(t){if(this._splitter=null,this.cached=!0,this._splitted=null,this.columnVersion=null,this._stats=null,this._maxLength=null,this._posList=null,this._joiner=void 0,t.type!==c.TYPE.STRING)throw new Error(`Unexpected column type '${t.type}', must be '${c.TYPE.STRING}'.`);this._column=t;const e=this._column.getTag(c.TAGS.UNITS);if(null==e)throw new Error("Units are not specified in column");if(this._units=e,this._notation=this.getNotation(),this._defaultGapOriginal=this.isFasta()?nt[T.FASTA]:this.isHelm()?nt[T.HELM]:nt[T.SEPARATOR],!this.column.tags.has(N.aligned)||!this.column.tags.has(N.alphabet)||!this.column.tags.has(N.alphabetIsMultichar)&&!this.isHelm()&&this.alphabet===I.UN)if(this.isFasta())rt.setUnitsToFastaColumn(this);else if(this.isSeparator()){const e=t.getTag(N.separator);rt.setUnitsToSeparatorColumn(this,e)}else{if(!this.isHelm())throw new Error(`Unexpected units '${this.column.getTag(c.TAGS.UNITS)}'.`);rt.setUnitsToHelmColumn(this)}if(!this.column.tags.has(N.alphabetIsMultichar))if(this.isHelm())this.column.setTag(N.alphabetIsMultichar,"true");else if(["UN"].includes(this.alphabet))throw new Error(`For column '${this.column.name}' of alphabet '${this.alphabet}' tag '${N.alphabetIsMultichar}' is mandatory.`);this.notationProvider=this.column.temp[et.notationProvider]??null,this.columnVersion=this.column.version}static setUnitsToFastaColumn(t){if(t.column.semType!==c.SEMTYPE.MACROMOLECULE||t.column.getTag(c.TAGS.UNITS)!==T.FASTA)throw new Error(`The column of notation '${T.FASTA}' must be '${c.SEMTYPE.MACROMOLECULE}'.`);t.column.setTag(c.TAGS.UNITS,T.FASTA),rt.setTags(t)}static setUnitsToSeparatorColumn(t,e){if(t.column.semType!==c.SEMTYPE.MACROMOLECULE||t.column.getTag(c.TAGS.UNITS)!==T.SEPARATOR)throw new Error(`The column of notation '${T.SEPARATOR}' must be '${c.SEMTYPE.MACROMOLECULE}'.`);if(!e)throw new Error(`The column of notation '${T.SEPARATOR}' must have the separator tag.`);t.column.setTag(c.TAGS.UNITS,T.SEPARATOR),t.column.setTag(N.separator,e),rt.setTags(t)}static setUnitsToHelmColumn(t){if(t.column.semType!==c.SEMTYPE.MACROMOLECULE)throw new Error(`The column of notation '${T.HELM}' must be '${c.SEMTYPE.MACROMOLECULE}'`);t.column.setTag(c.TAGS.UNITS,T.HELM),rt.setTags(t)}static setTags(t){const e=t.column.getTag(c.TAGS.UNITS);if([T.FASTA,T.SEPARATOR].includes(e)){if(!t.column.getTag(N.alphabet)&&0===Object.keys(t.stats.freq).length)throw new Error("Alphabet is empty and not annotated.");let e=t.column.getTag(N.aligned);null===e&&(e=t.stats.sameLength?"SEQ.MSA":"SEQ",t.column.setTag(N.aligned,e));let n=t.column.getTag(N.alphabet);if(null===n&&(n=tt(t.stats.freq,R),t.column.setTag(N.alphabet,n)),n===I.UN){const e=Object.keys(t.stats.freq).length,n=Object.keys(t.stats.freq).some((t=>t.length>1));t.column.setTag(N.alphabetSize,e.toString()),t.column.setTag(N.alphabetIsMultichar,n?"true":"false")}}}get column(){return this._column}get length(){return this._column.length}get units(){return this._units}get notation(){return this._notation}get defaultGapOriginal(){return this._defaultGapOriginal}get separator(){const t=this.column.getTag(N.separator)??void 0;if(this.notation===T.SEPARATOR&&void 0===t)throw new Error(`Separator is mandatory for column '${this.column.name}' of notation '${this.notation}'.`);return t}get aligned(){const t=this.column.getTag(N.aligned);if(!t&&(this.isFasta()||this.isSeparator()))throw new Error("Tag aligned not set");return t}get alphabet(){const t=this.column.getTag(N.alphabet);if(!t&&(this.isFasta()||this.isSeparator()))throw new Error("Tag alphabet not set");return t}get helmCompatible(){return this.column.getTag(N.isHelmCompatible)}getAlphabetSize(){if(this.notation==T.HELM||this.alphabet==I.UN){const t=this.column.getTag(N.alphabetSize);let e;if(t)e=parseInt(t);else{const t=this.stats;e=Object.keys(t.freq).length}return e}switch(this.alphabet){case I.PT:return 20;case I.DNA:case I.RNA:return 4;case"NT":return console.warn("Unexpected alphabet 'NT'."),4;default:throw new Error(`Unexpected alphabet '${this.alphabet}'.`)}}getAlphabetIsMultichar(){return this.notation===T.HELM||this.alphabet===I.UN&&"true"===this.column.getTag(N.alphabetIsMultichar)}getSplitted(t,e){if(this.cached&&void 0===e){this.column.version===this.columnVersion&&null!==this._splitted||(this.columnVersion=this.column.version,this._splitted=new Array(this.column.length));let e=this._splitted[t]?this._splitted[t].deref():void 0;if(!e){const n=this.column.get(t);e=this.splitter(n),this._splitted[t]=new WeakRef(e)}return e}{const n=this.column.get(t);return this.getSplitter(e)(n)}}get stats(){if(null===this._stats){const t={};let e=!0,n=null;const r=this.column.length;for(let i=0;i<r;++i){const r=this.getSplitted(i);null==n?n=r.length:r.length!==n&&(e=!1);for(const e of r.canonicals)e in t||(t[e]=0),t[e]+=1}this._stats={freq:t,sameLength:e}}return this._stats}get maxLength(){return null===this._maxLength&&(this._maxLength=0===this.column.length?0:Math.max(...L().count(0).take(this.column.length).map((t=>this.getSplitted(t).length)))),this._maxLength}get posList(){if(null===this._posList){const t=this.column.getTag(N.positionNames);this._posList=t?t.split(", ").map((t=>t.trim())):L().count(1).take(this.maxLength).map((t=>t.toString())).toArray()}return this._posList}isFasta(){return this.notation===T.FASTA}isSeparator(){return this.notation===T.SEPARATOR}isHelm(){return this.notation===T.HELM}isRna(){return this.alphabet===I.RNA}isDna(){return this.alphabet===I.DNA}isPeptide(){return this.alphabet===I.PT}isMsa(){return!!this.aligned&&this.aligned.toUpperCase().includes("MSA")}isHelmCompatible(){return"true"===this.helmCompatible}isGap(t){return!t||t===this._defaultGapOriginal}getNotation(){if(this.units.toLowerCase().startsWith(T.FASTA))return T.FASTA;if(this.units.toLowerCase().startsWith(T.SEPARATOR))return T.SEPARATOR;if(this.units.toLowerCase().startsWith(T.HELM))return T.HELM;throw new Error(`Column '${this.column.name}' has unexpected notation '${this.units}'.`)}getHelmWrappers(){return[this.isDna()||this.isRna()||this.isHelmCompatible()?"RNA1{":"PEPTIDE1{",this.isDna()?"d(":this.isRna()?"r(":"",this.isDna()||this.isRna()?")p":"","}$$$$"]}getNewColumn(t,e,n,r){const i=this.column,s=t.toLowerCase()+"("+i.name+")",o=n??i.dataFrame.columns.getUnusedName(s),a=c.Column.fromList("string",o,r??new Array(this.column.length).fill(""));if(a.semType=c.SEMTYPE.MACROMOLECULE,a.setTag(c.TAGS.UNITS,t),t===T.SEPARATOR){if(!e)throw new Error(`Notation '${T.SEPARATOR}' requires separator value.`);a.setTag(N.separator,e)}a.setTag(c.TAGS.CELL_RENDERER,t===T.HELM?"helm":"sequence");const u=i.getTag(N.aligned);u&&a.setTag(N.aligned,u);let l=i.getTag(N.alphabet);l||this.notation!==T.HELM||t===T.HELM||(l=I.UN),null!=l&&a.setTag(N.alphabet,l);let h=i.getTag(N.alphabetSize);null!=l&&h&&a.setTag(N.alphabetSize,h);const f=i.getTag(N.alphabetIsMultichar);return null!=l&&void 0!==f&&a.setTag(N.alphabetIsMultichar,f),t==T.HELM&&(h=this.getAlphabetSize().toString(),a.setTag(N.alphabetSize,h)),a}getNewColumnFromList(t,e){return this.getNewColumn(this.notation,this.separator,t,e)}static getNewColumn(t){const e=rt.forColumn(t),n=e.notation;return e.getNewColumn(n)}static unitsStringIsValid(t){return t=t.toLowerCase(),[T.FASTA,T.SEPARATOR,T.HELM].some((e=>t.startsWith(e.toLowerCase())))}static getNewColumnFromParams(t,e,n){if(!rt.unitsStringIsValid(n))throw new Error("Invalid format of 'units' parameter");const r=c.Column.fromList("string",e,new Array(t).fill(""));return r.semType=c.SEMTYPE.MACROMOLECULE,r.setTag(c.TAGS.UNITS,n),r}getSplitter(t){let e=null;if(e=this.notationProvider?this.notationProvider.splitter:null,e)return e;if(this.units.toLowerCase().startsWith(T.FASTA))return null===this.column.getTag(N.alphabet)||this.getAlphabetIsMultichar()?Y:K;if(this.units.toLowerCase().startsWith(T.SEPARATOR))return Q(this.separator,t);if(this.units.toLowerCase().startsWith(T.HELM))return Z;throw new Error(`Unexpected units ${this.units} .`)}split(t){return this.splitter(t)}getDistanceFunctionName(){if(!this.isFasta())throw new Error("Only FASTA notation is supported");if(this.isMsa())return b.HAMMING;switch(this.alphabet){case I.DNA:case I.RNA:case I.PT:}return b.LEVENSHTEIN}getDistanceFunction(){return A[this.getDistanceFunctionName()]()}async checkHelmCompatibility(){if(this.column.tags.has(N.isHelmCompatible))return"true"===this.column.getTag(N.isHelmCompatible);const t=(await ot()).getBioLib().getMonomerSymbolsByType("PEPTIDE"),e=new Set(t),n=(Q(this.separator),new Set),r=this.column.length,i=this.column.getRawData();for(let t=0;t<r;++t){const r=i[t];if(!(r in n)){n.add(r);const i=this.getSplitted(t);for(const t of i.canonicals)if(!e.has(t))return this.column.setTag(N.isHelmCompatible,"false"),!1}}return this.column.setTag(N.isHelmCompatible,"true"),!0}get splitter(){return null===this._splitter&&(this._splitter=this.getSplitter()),this._splitter}toFasta(t){return t===T.FASTA}toSeparator(t){return t===T.SEPARATOR}toHelm(t){return t===T.HELM}convertHelmToFastaSeparator(t,e,n,r){r||(r=this.toFasta(e)?nt[T.FASTA]:nt[T.SEPARATOR]),n||(n=this.toFasta(e)?"":this.separator);const i=t.startsWith("RNA"),s=this.splitter(t),o=[];for(let t=0;t<s.length;++t){let n=s.getOriginal(t);if(i&&(n=n.replace(x,"")),n===nt[T.HELM])o.push(r);else if(this.toFasta(e)&&n.length>1){const t="["+n+"]";o.push(t)}else o.push(n)}return o.join(n)}convert(t,e){const n=this.getJoiner({notation:t,separator:e}),r=this.getNewColumn(t,e);return r.init((t=>{const e=this.getSplitted(t);return n(e)})),r}getRegion(t,e,n){const r=this.getNewColumn(this.notation,this.separator);r.name=n;const i=t??0,s=e??this.maxLength-1,o=this.getJoiner(),a=s-i+1,u=nt[this.notation];r.init((t=>{const e=this.getSplitted(t),n=new Array(a);for(let t=0;t<a;++t){const r=i+t;n[t]=r<e.length?e.getOriginal(r):u}return o(new W(n,u))}));const l=t=>{const e=t.split(",").map((t=>t.trim())),n=new Array(a);for(let t=0;t<a;++t){const r=i+t;n[t]=r<e.length?e[r]:"?"}return n.join(", ")},c=this.column.getTag(N.positionNames);c&&r.setTag(N.positionNames,l(c));const h=this.column.getTag(N.positionLabels);return h&&r.setTag(N.positionLabels,l(h)),r}get joiner(){return this._joiner||(this._joiner=this.getJoiner()),this._joiner}getJoiner(t){const e=t?t.notation:this.notation,n=t?t.separator:this.separator;let r;const i=this;switch(e){case T.FASTA:r=function(t){return i.joinToFasta(t,i.isHelm())};break;case T.SEPARATOR:if(!n)throw new Error(`Separator is mandatory for notation '${e}'.`);r=function(t){return it(t,n,i.isHelm())};break;case T.HELM:{const t=i.alphabet===I.DNA||i.alphabet===I.RNA,e=i.getHelmWrappers();r=function(n){return st(n,e,t)};break}default:throw new Error(`Unexpected notation '${e}'.`)}return r}getConverter(t,e=void 0){if(t===T.SEPARATOR&&!e)throw new Error(`Target separator is not specified for target units '${T.SEPARATOR}'.`);const n=this;if(t===T.FASTA)return function(t){return n.convertToFasta(t)};if(t===T.HELM)return function(t){return n.convertToHelm(t)};if(t===T.SEPARATOR)return function(t){return n.convertToSeparator(t,e)};throw new Error}static forColumn(t){let e=t.temp[et.seqHandler];return e&&e.columnVersion===t.version||(e=t.temp[et.seqHandler]=new rt(t)),e}joinToFasta(t,e){const n=new Array(t.length);for(let r=0;r<t.length;++r){const i=t.getOriginal(r);let s=t.getOriginal(r);e&&(s=s.replace(x,"$1")),""===i?s=nt[T.FASTA]:i===C?s="":s.length>1&&(s="["+s+"]"),n[r]=s}return n.join("")}convertToFasta(t){const e=this.splitter,n=this.isHelm()?this.splitterAsHelmNucl(t):e(t);return this.joinToFasta(n,this.isHelm())}convertToSeparator(t,e){return it(this.isHelm()?this.splitterAsHelmNucl(t):this.splitter(t),e,this.isHelm())}convertToHelm(t){const e=this.getHelmWrappers(),n=t.startsWith("DNA")||t.startsWith("RNA");return st(this.splitter(t),e,n)}splitterAsHelmNucl(t){const e=this.splitter(t),n=new Array(e.length),r=t.startsWith("DNA"),i=t.startsWith("RNA");for(let t=0;t<e.length;++t){let s=e.getOriginal(t);(r||i)&&(s=s.replace(x,"$1"),s=s===C?null:s),n[t]=s||null}return new W(n.filter((t=>!!t)),nt[T.HELM])}}function it(t,e,n){const r=new Array(t.length);for(let e=0;e<t.length;++e){const i=t.getCanonical(e);let s=t.getOriginal(e);n&&(s=s.replace(x,"$1")),""===i?s=nt[T.SEPARATOR]:i===C&&(s=""),r[e]=s}return r.join(e)}function st(t,e,n){const[r,i,s,o]=e,a=new Array(t.length);for(let e=0;e<t.length;++e){const r=t.getCanonical(e);let o=t.getOriginal(e);""===r?o=nt[T.HELM]:(n&&(o=o.replace(x,"$1")),o=1===o.length?`${i}${o}${s}`:`${i}[${o}]${s}`),a[e]=o}return`${r}${a.join(".")}${o}`}async function ot(){const t=c.Func.find({package:"Bio",name:"getMonomerLibHelper"});if(0===t.length)throw new Error('Package "Bio" must be installed for MonomerLibHelper.');return(await t[0].prepare().call()).getOutputParamValue()}var at=n(373),ut=n(124);class lt extends c.Package{get monomerLib(){if(!this._monomerLib)throw new Error("Monomer lib not loaded");return this._monomerLib}async initMonomerLib(){if(void 0!==this._monomerLib)return;const t=c.TaskBarProgressIndicator.create("Initializing Oligo Toolkit monomer library ...");await(0,ut.TX)((async()=>{const t=await ot();this._monomerLib=await t.readLibrary(at.so,at.c6)}),(()=>t.close()))}}var ct=n(686),ht=n(838);class ft{constructor(t){this.sequence=t,this.libWrapper=p.k.getInstance(),this.formats=Object.keys(d.$D)}getFormat(){if(this.sequence.startsWith("RNA"))return ct.NO.HELM;const t=this.getListOfPossibleSynthesizersByFirstMatchedCode();if(0===t.length)return null;const e=new ht.q(this.sequence),n=Array(t.length).fill(0);for(let r=0;r<t.length;++r){const i=t[r];n[r]=e.getInvalidCodeIndex(i)}const r=n.some((t=>-1===t))?-1:Math.max(...n);return t[n.indexOf(r)]}getListOfPossibleSynthesizersByFirstMatchedCode(){const t=this.sequence,e=[];for(const n of this.formats){const r=(0,ut.iD)(this.libWrapper.getCodesByFormat(n));let i=0;for(let e=0;e<t.length;e++)if(")"===t[e]&&e!==t.length-1){i=e+1;break}r.some((e=>e===t.slice(i,i+e.length)))&&e.push(n)}return e}}const dt=ui;class pt{constructor(t,e){this.appName=t,this.parentAppName=e}async getAppView(){const t=c.TaskBarProgressIndicator.create(`Loading ${this.appName}...`),e=f.shell.v?.root;e&&dt.setUpdateIndicator(e,!0);try{return await this.constructView()}finally{t.close(),e&&dt.setUpdateIndicator(e,!1)}}}class gt extends pt{constructor(t){super(t),this.view=c.View.create(),this.configureView()}async constructView(){await this.initView();const t=this.parentAppName?this.parentAppName+"/"+this.appName:this.appName;return this.view.path=`/apps/${Xn.name}/${t.replace(/\s/g,"")}/`,this.view}async initView(){const t=await this.getContent();this.view.append(t)}configureView(){this.view.box=!0,this.view.name=this.appName;const t=f.shell.windows;t.showProperties=!1,t.showToolbox=!1,t.showHelp=!1}getView(){return this.view}}const mt=["SS","AS"],vt={SS:"Sense strand",AS:"Anti sense"},yt=["3'","5'"],bt="OligoToolkit";var At,wt,Ct;!function(t){t.IS_ANTISENSE_STRAND_INCLUDED="isAntisenseStrandIncluded",t.NUCLEOTIDE_SEQUENCES="nucleotideSequences",t.PHOSPHOROTHIOATE_LINKAGE_FLAGS="phosphorothioateLinkageFlags",t.STRAND_TERMINUS_MODIFICATIONS="strandTerminusModifications"}(At||(At={})),function(t){t.PATTERN_NAME="patternName",t.PATTERN_COMMENT="patternComment",t.NUCLEOTIDES_WITH_NUMERIC_LABELS="nucleotidesWithNumericLabels"}(wt||(wt={})),function(t){t.PATTERN_CONFIG="patternConfig",t.AUTHOR_ID="authorID"}(Ct||(Ct={}));const xt=[At.IS_ANTISENSE_STRAND_INCLUDED,At.NUCLEOTIDE_SEQUENCES,At.PHOSPHOROTHIOATE_LINKAGE_FLAGS,At.STRAND_TERMINUS_MODIFICATIONS],_t=(wt.PATTERN_NAME,wt.PATTERN_COMMENT,wt.NUCLEOTIDES_WITH_NUMERIC_LABELS,Ct.PATTERN_CONFIG,Ct.AUTHOR_ID,{patternConfig:{patternName:"<default example>",isAntisenseStrandIncluded:!0,nucleotideSequences:{SS:["RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA"],AS:["RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA"]},phosphorothioateLinkageFlags:{SS:[!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0],AS:[!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0]},strandTerminusModifications:{SS:{"3'":"","5'":""},AS:{"3'":"","5'":""}},patternComment:"",nucleotidesWithNumericLabels:["RNA"]},authorID:""});class St extends Error{constructor(t){super(t),this.name="PatternNameExistsError"}}class Et extends Error{constructor(t){super(t),this.name="PatternExistsError"}}var Tt=n(802),It=n.n(Tt);class Nt{constructor(){this.otherUsersPatternNameToHash=new Map,this.currentUserPatternNameToHash=new Map}static async getInstance(){const t=new Nt;t.currentUserName=await t.fetchCurrentUserName(),t.currentUserId=await t.fetchCurrentUserId();const e=await t.fetchPatterns();return await t.initializePatternMaps(e),t}getCurrentUserPatternNames(){return Array.from(this.currentUserPatternNameToHash.keys()).sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase())))}getOtherUsersPatternNames(){return Array.from(this.otherUsersPatternNameToHash.keys()).sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase())))}getCurrentUserName(){return this.currentUserName}validatePatternNameUniqueness(t){if(this.currentUserPatternNameToHash.has(t))throw new St(`Pattern with name ${t} already exists`)}validatePatternUniqueness(t){if(Array.from(this.currentUserPatternNameToHash.values()).concat(Array.from(this.otherUsersPatternNameToHash.values())).includes(t))throw new Et(t)}getPatternHash(t,e){const n=e?this.currentUserPatternNameToHash.get(t):this.otherUsersPatternNameToHash.get(t);if(void 0===n)throw new Error(`Pattern with name ${t} not found`);return n}async getPatternRecord(t){if(null===t||""===t)return null;try{const e=await f.dapi.userDataStorage.getValue(bt,t,!1);return JSON.parse(e)}catch{return null}}async getPatternConfig(t){if(""===t||null===t)return null;const e=await this.getPatternRecord(t);return null===e?null:e[Ct.PATTERN_CONFIG]}getDefaultPatternRecord(){const t=_t;return t[Ct.AUTHOR_ID]=this.currentUserId,t}getDefaultPatternConfig(){return _t[Ct.PATTERN_CONFIG]}getAuthorCategoryByHash(t){if(this.isCurrentUserPattern(t))return this.getCurrentUserAuthorshipCategory();if(this.isOtherUserPattern(t))return this.getOtherUsersAuthorshipCategory();throw new Error(`Pattern with hash ${t} not found`)}isCurrentUserPattern(t){return Array.from(this.currentUserPatternNameToHash.values()).includes(t)}isOtherUserPattern(t){return Array.from(this.otherUsersPatternNameToHash.values()).includes(t)}getPatternNameByHash(t){const e=[this.currentUserPatternNameToHash,this.otherUsersPatternNameToHash];for(const n of e)for(const[e,r]of n.entries())if(r===t)return e;throw new Error(`Pattern with hash ${t} not found`)}getHashOfPatternToBeLoadedAfterDeletion(){const t=this.getCurrentUserPatternNames()[0];if(!t)throw new Error("Cannot load pattern after deletion, as there are no patterns left");const e=this.currentUserPatternNameToHash.get(t);if(void 0===e)throw new Error(`Pattern with name ${t} not found`);return e}async getRecordFromPattern(t){const e={[Ct.PATTERN_CONFIG]:t,[Ct.AUTHOR_ID]:await f.dapi.users.current().then((t=>t.id))};return JSON.stringify(e)}getHash(t){const e=xt.reduce(((e,n)=>(e[n]=t[n],e)),{});return It().sha1(e)}async savePatternToUserStorage(t){const e=t.getPatternConfig();try{const n=this.getHash(e);this.validatePatternUniqueness(n);const r=e[wt.PATTERN_NAME];this.validatePatternNameUniqueness(r);const i=await this.getRecordFromPattern(e);await f.dapi.userDataStorage.postValue(bt,n,i,!1),this.currentUserPatternNameToHash.set(r,n),t.selectAuthor(this.getCurrentUserAuthorshipCategory()),t.updatePatternList()}catch(t){if(t instanceof St||t instanceof Et)throw t;console.error("Error while saving pattern to user storage",t)}}async overwritePatternInUserStorage(t){const e=t.getPatternConfig(),n=this.getHash(e),r=e[wt.PATTERN_NAME],i=await this.getRecordFromPattern(e);await f.dapi.userDataStorage.postValue(bt,n,i,!1),this.currentUserPatternNameToHash.set(r,n),t.updatePatternList()}async deletePattern(t,e){const n=this.currentUserPatternNameToHash.get(t);if(t===this.getDefaultPatternName())return void f.shell.warning("Cannot delete default pattern");if(void 0===n)throw new Error(`Pattern with name ${t} not found`);await f.dapi.userDataStorage.remove(bt,n,!1),this.currentUserPatternNameToHash.delete(t),e.updatePatternList();const r=this.getHashOfPatternToBeLoadedAfterDeletion();e.requestPatternLoad(r)}fetchDefaultNucleobase(){return this.fetchAvailableNucleotideBases()[0]}fetchAvailableNucleotideBases(){const t=Object.keys(d.a1)[0];return Object.keys(d.a1[t])}async fetchCurrentUserName(){return(await f.dapi.users.current()).friendlyName}async fetchCurrentUserId(){return(await f.dapi.users.current()).id}async fetchPatterns(){return await f.dapi.userDataStorage.get(bt,!1)}async initializePatternMaps(t){if(!this.currentUserId)throw new Error("Current user ID is not set");const e=new Map;for(const[n,r]of Object.entries(t))await this.extractDataFromRecordToMaps(n,r,e);this.setDefaultPattern()}setDefaultPattern(){const t=_t[Ct.PATTERN_CONFIG];this.currentUserPatternNameToHash.set(t[wt.PATTERN_NAME],"")}async extractDataFromRecordToMaps(t,e,n){const r=JSON.parse(e),i=r[Ct.PATTERN_CONFIG].patternName,s=r[Ct.AUTHOR_ID];if(this.isCurrentUserId(s))this.currentUserPatternNameToHash.set(i,t);else{if(!n.has(s)){const t=(await f.dapi.users.find(s)).friendlyName;n.set(s,t)}const e=i+` (created by ${n.get(s)})`;this.otherUsersPatternNameToHash.set(e,t)}}getDefaultPatternName(){return _t[Ct.PATTERN_CONFIG][wt.PATTERN_NAME]}getCurrentUserAuthorshipCategory(){return this.currentUserName+" (me)"}getOtherUsersAuthorshipCategory(){return"Other users"}isCurrentUserId(t){return t===this.currentUserId}}const Ot=rxjs,Mt=rxjs.operators;function Lt(t){return t.endsWith("(o)")}function Bt(t){const e=Object.values(t).flat().reduce(((t,e)=>(t[e]=(t[e]||0)+1,t)),{});return Object.entries(e).reduce(((t,e)=>t[1]>e[1]?t:e),["",0])[0]}var Pt;function Rt(t){const e=Array.from(new Set(t));return Array.from(e).sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase())))}!function(t){t.getTruncatedStrandData=function(t,e,n){return{nucleotides:t.slice(0,n),ptoFlags:e.slice(0,n+1)}},t.getExtendedStrandData=function(t,e,n,r){const i=n-t.length,s=t.concat(new Array(n-t.length).fill(r)),o=0===t.length?n+1:i;return{nucleotides:s,ptoFlags:e.concat(new Array(o).fill(!0))}}}(Pt||(Pt={}));var Dt=n(543),Ft=n.n(Dt);class Ut{constructor(t,e){this.dataManager=t,this._patternListUpdated$=new Ot.Subject,this._patternLoadRequested$=new Ot.Subject,this._patternLoaded$=new Ot.Subject,this._uniqueNucleotides$=new Ot.BehaviorSubject([]),this._patternDeletionRequested$=new Ot.Subject,this._tableSelection$=new Ot.BehaviorSubject(null),this._svgSaveRequested$=new Ot.Subject,this._loadPatternInNewTabRequested$=new Ot.Subject,this._urlStateUpdated$=new Ot.Subject,this._patternHasUnsavedChanges$=new Ot.BehaviorSubject(!1),this._selectedStrandColumn=new Ot.BehaviorSubject(null),this._selectedIdColumn=new Ot.BehaviorSubject(null),this.initializeAuthorSelection(e),this.initializePatternState(e),this._lastLoadedPatternConfig=new Ot.BehaviorSubject(Ft().cloneDeep(this.getPatternConfig())),this.setupSubscriptions()}setupSubscriptions(){this._nucleotideSequences$.subscribe((()=>{this.updateUniqueNucleotides(),this.updateSequenceBase()})),this._isAntisenseStrandActive$.subscribe((t=>{t||yt.forEach((t=>{this.updateTerminusModification("AS",t,"")}))})),this.patternStateChanged$.pipe((0,Mt.debounceTime)(20)).subscribe((()=>{const t=this._lastLoadedPatternConfig.getValue(),e=this.getPatternConfig(),n=!Ft().isEqual(e,t);this._patternHasUnsavedChanges$.next(n)}))}updateUniqueNucleotides(){const t=(e=this._nucleotideSequences$.getValue(),Rt(Object.values(e).flat()));var e;this._uniqueNucleotides$.next(t)}updateSequenceBase(){const t=Bt(this._nucleotideSequences$.getValue());this._sequenceBase$.next(t)}get nucleotideSequencesChanged$(){return this._nucleotideSequences$.asObservable()}initializeAuthorSelection(t){const e=t[Ct.AUTHOR_ID];this.dataManager.isCurrentUserId(e)?this._patternAuthorSelection$=new Ot.BehaviorSubject(this.dataManager.getCurrentUserAuthorshipCategory()):this._patternAuthorSelection$=new Ot.BehaviorSubject(this.dataManager.getOtherUsersAuthorshipCategory())}initializePatternState(t){const e=t[Ct.PATTERN_CONFIG];this._patternName$=new Ot.BehaviorSubject(e[wt.PATTERN_NAME]),this._isAntisenseStrandActive$=new Ot.BehaviorSubject(e[At.IS_ANTISENSE_STRAND_INCLUDED]),this._nucleotideSequences$=new Ot.BehaviorSubject(e[At.NUCLEOTIDE_SEQUENCES]),this._phosphorothioateLinkageFlags=new Ot.BehaviorSubject(e[At.PHOSPHOROTHIOATE_LINKAGE_FLAGS]),this._terminalModifications=new Ot.BehaviorSubject(e[At.STRAND_TERMINUS_MODIFICATIONS]),this._comment$=new Ot.BehaviorSubject(e[wt.PATTERN_COMMENT]),this._modificationsWithNumericLabels$=new Ot.BehaviorSubject(e[wt.NUCLEOTIDES_WITH_NUMERIC_LABELS]),this._sequenceBase$=new Ot.BehaviorSubject(Bt(e[At.NUCLEOTIDE_SEQUENCES]))}getPatternName(){return this._patternName$.getValue()}updatePatternName(t){this._patternName$.next(t)}get antisenseStrandToggled$(){return this._isAntisenseStrandActive$.asObservable()}isAntisenseStrandActive(){return this._isAntisenseStrandActive$.getValue()}toggleAntisenseStrand(t){t?this.updateStrandLength("AS",this.getNucleotideSequences().SS.length):this.updateStrandLength("AS",0),this._isAntisenseStrandActive$.next(t)}getNucleotideSequences(){return this._nucleotideSequences$.getValue()}updateNucleotideSequences(t){this._nucleotideSequences$.next(t)}updateStrandLength(t,e){const n=this.getNucleotideSequences()[t];if(n.length===e)return;const r=this.getPhosphorothioateLinkageFlags()[t];if(0===e)return void this.setNewStrandData([],[],t);if(n.length>e){const{nucleotides:i,ptoFlags:s}=Pt.getTruncatedStrandData(n,r,e);return void this.setNewStrandData(i,s,t)}const i=this.getSequenceBase(),{nucleotides:s,ptoFlags:o}=Pt.getExtendedStrandData(n,r,e,i);this.setNewStrandData(s,o,t)}setNewStrandData(t,e,n){this.updateNucleotideSequences({...this.getNucleotideSequences(),[n]:t}),this.updatePhosphorothioateLinkageFlags({...this.getPhosphorothioateLinkageFlags(),[n]:e})}getPhosphorothioateLinkageFlags(){return this._phosphorothioateLinkageFlags.getValue()}updatePhosphorothioateLinkageFlags(t){this._phosphorothioateLinkageFlags.next(t)}get phosphorothioateLingeFlagsChanged$(){return this._phosphorothioateLinkageFlags.asObservable()}getTerminalModifications(){return this._terminalModifications.getValue()}updateTerminalModifications(t){this._terminalModifications.next(t)}updateTerminusModification(t,e,n){const r=this.getTerminalModifications();r[t][e]=n,this.updateTerminalModifications(r)}terminalModificationsUpdated$(){return this._terminalModifications.asObservable()}getComment(){return this._comment$.getValue()}updateComment(t){this._comment$.next(t)}getModificationsWithNumericLabels(){return this._modificationsWithNumericLabels$.getValue()}updateModificationsWithNumericLabels(t){const e=function(t){return Rt(t).filter((t=>!Lt(t)))}(t);this._modificationsWithNumericLabels$.next(e)}get patternLoadRequested$(){return this._patternLoadRequested$.asObservable()}requestPatternLoad(t){this._patternLoadRequested$.next(t)}get patternListUpdated$(){return this._patternListUpdated$.asObservable()}updatePatternList(){this._patternListUpdated$.next()}get tableSelectionChanged$(){return this._tableSelection$.asObservable()}selectTable(t){this._tableSelection$.next(t)}getTableSelection(){return this._tableSelection$.getValue()}requestPatternDeletion(t){this._patternDeletionRequested$.next(t)}get patternDeletionRequested$(){return this._patternDeletionRequested$.asObservable()}replaceSequenceBase(t){const e=this._nucleotideSequences$.getValue(),n={};mt.forEach((r=>{n[r]=e[r].map((()=>t))})),this._nucleotideSequences$.next(n);const r=this._modificationsWithNumericLabels$.getValue();r.includes(t)||this.updateModificationsWithNumericLabels(r.concat(t))}get patternStateChanged$(){return Ot.merge(this._patternName$.pipe((0,Mt.debounceTime)(300),(0,Mt.map)((()=>{}))),this._isAntisenseStrandActive$,this._nucleotideSequences$,this._phosphorothioateLinkageFlags,this._terminalModifications,this._comment$.pipe((0,Mt.debounceTime)(300)),this._modificationsWithNumericLabels$)}getSequenceBase(){return this._sequenceBase$.getValue()}uniqueNucleotidesChanged$(){return this.patternStateChanged$.pipe((0,Mt.switchMap)((()=>this._uniqueNucleotides$)))}getUniqueNucleotides(){return this._uniqueNucleotides$.getValue()}get svgSaveRequested$(){return this._svgSaveRequested$.asObservable()}requestSvgSave(){this._svgSaveRequested$.next()}setAllPTOLinkages(t){const e=this.getPhosphorothioateLinkageFlags();mt.forEach((n=>{e[n]=e[n].map((()=>t))})),this.updatePhosphorothioateLinkageFlags(e)}setPatternConfig(t){this._patternName$.next(t[wt.PATTERN_NAME]),this._isAntisenseStrandActive$.next(t[At.IS_ANTISENSE_STRAND_INCLUDED]),this._nucleotideSequences$.next(t[At.NUCLEOTIDE_SEQUENCES]),this._phosphorothioateLinkageFlags.next(t[At.PHOSPHOROTHIOATE_LINKAGE_FLAGS]),this._terminalModifications.next(t[At.STRAND_TERMINUS_MODIFICATIONS]),this._comment$.next(t[wt.PATTERN_COMMENT]),this._modificationsWithNumericLabels$.next(t[wt.NUCLEOTIDES_WITH_NUMERIC_LABELS])}setLastLoadedPatternConfig(t){this._lastLoadedPatternConfig.next(Ft().cloneDeep(t))}getPatternConfig(){return{[wt.PATTERN_NAME]:this.getPatternName(),[At.IS_ANTISENSE_STRAND_INCLUDED]:this.isAntisenseStrandActive(),[At.NUCLEOTIDE_SEQUENCES]:this.getNucleotideSequences(),[At.PHOSPHOROTHIOATE_LINKAGE_FLAGS]:this.getPhosphorothioateLinkageFlags(),[At.STRAND_TERMINUS_MODIFICATIONS]:this.getTerminalModifications(),[wt.PATTERN_COMMENT]:this.getComment(),[wt.NUCLEOTIDES_WITH_NUMERIC_LABELS]:this.getModificationsWithNumericLabels()}}setPhosphorothioateLinkageFlag(t,e,n){const r=this.getPhosphorothioateLinkageFlags();r[t][e]=n,this.updatePhosphorothioateLinkageFlags(r)}setNucleotide(t,e,n){const r=this.getNucleotideSequences();r[t][e]=n;const i=this.getModificationsWithNumericLabels();this.updateModificationsWithNumericLabels(i.concat(n)),this.updateNucleotideSequences(r)}get strandsUpdated$(){return Ot.merge(this._isAntisenseStrandActive$.asObservable().pipe((0,Mt.map)((()=>{}))),this._nucleotideSequences$.asObservable().pipe((0,Mt.map)((()=>{}))),this._patternLoaded$.asObservable().pipe((0,Mt.map)((()=>{})))).pipe((0,Mt.debounceTime)(10))}get strandsLinkagesAndTerminalsUpdated$(){return Ot.merge(this.strandsUpdated$,this._phosphorothioateLinkageFlags.asObservable().pipe((0,Mt.map)((()=>{}))),this._terminalModifications.asObservable().pipe((0,Mt.map)((()=>{}))))}updateControlsUponPatternLoaded(t){this._patternLoaded$.next(t)}get patternLoaded$(){return this._patternLoaded$.asObservable()}get userSelection$(){return this._patternAuthorSelection$.asObservable().pipe((0,Mt.skip)(1))}selectAuthor(t){this._patternAuthorSelection$.next(t)}getSelectedAuthor(){return this._patternAuthorSelection$.getValue()}get loadPatternInNewTabRequested$(){return this._loadPatternInNewTabRequested$.asObservable()}requestLoadPatternInNewTab(t){this._loadPatternInNewTabRequested$.next(t)}updateUrlState(t){this._urlStateUpdated$.next(t)}get urlStateUpdated$(){return this._urlStateUpdated$.asObservable()}get patternHasUnsavedChanges$(){return this._patternHasUnsavedChanges$.asObservable()}selectStrandColumn(t,e){this._selectedStrandColumn.next({...this._selectedStrandColumn.getValue(),[t]:e})}getSelectedStrandColumn(t){const e=this._selectedStrandColumn.getValue();return e?e[t]:null}selectIdColumn(t){this._selectedIdColumn.next(t)}getSelectedIdColumn(){return this._selectedIdColumn.getValue()}get updateSvgContainer$(){return this.patternStateChanged$.pipe((0,Mt.debounceTime)(100))}}const kt="pattern";class $t{constructor(){this.urlSearchParams=new URLSearchParams(window.location.search)}subscribeToObservables(t){t.urlStateUpdated$.subscribe((t=>this.setPatternURL(t))),t.loadPatternInNewTabRequested$.subscribe((t=>{const e=`${window.location.origin}${window.location.pathname}?${kt}=${t}`;window.open(e,"_blank")})),window.addEventListener("popstate",(()=>{this.urlSearchParams=new URLSearchParams(window.location.search);const e=this.getPatternHash();null!==e&&t.requestPatternLoad(e)}))}getPatternHash(){return this.urlSearchParams.get(kt)}setPatternURL(t){null!==t&&""!==t?(this.urlSearchParams.set(kt,t),window.history.pushState({},"",`${window.location.pathname}?${this.urlSearchParams}`)):this.clearPatternURL()}clearPatternURL(){this.urlSearchParams.delete(kt),window.history.pushState({},"",`${window.location.pathname}`)}}const Ht=$;var Vt=n.n(Ht),jt=n(72),qt=n.n(jt),Gt=n(825),Wt=n.n(Gt),zt=n(659),Yt=n.n(zt),Kt=n(56),Qt=n.n(Kt),Jt=n(540),Xt=n.n(Jt),Zt=n(113),te=n.n(Zt),ee=n(252),ne={};ne.styleTagTransform=te(),ne.setAttributes=Qt(),ne.insert=Yt().bind(null,"head"),ne.domAPI=Wt(),ne.insertStyleElement=Xt(),qt()(ee.A,ne),ee.A&&ee.A.locals&&ee.A.locals;class re{constructor(t){this.eventBus=t,this.columnControlsContainer=dt.div([]),this.eventBus.tableSelectionChanged$.subscribe((()=>this.handleTableChoice())),this.refreshColumnControls()}getColumnControlsContainer(){return this.columnControlsContainer}get selectedTable(){return this.eventBus.getTableSelection()}handleTableChoice(){this.refreshColumnControls()}refreshColumnControls(){Vt()(this.columnControlsContainer).empty(),Vt()(this.columnControlsContainer).append(this.constructColumnControls())}constructColumnControls(){const t=this.createStrandColumnInput(),e=t.SS,n=t.AS;this.eventBus.antisenseStrandToggled$.subscribe((t=>{Vt()(n).toggle(t)}));const r=this.createIdColumnInput();return[e,n,r]}createStrandColumnInput(){const t=this.selectedTable?this.selectedTable.columns.names().sort(((t,e)=>t.localeCompare(e))):[];return Object.fromEntries(mt.map((e=>{const n=dt.choiceInput(`${vt[e]} column`,t[0],t,(t=>this.eventBus.selectStrandColumn(e,t)));return this.eventBus.selectStrandColumn(e,t[0]),[e,n.root]})))}createIdColumnInput(){const t=this.selectedTable?this.selectedTable.columns.names():[],e=dt.choiceInput("ID column",t[0],t,(t=>this.eventBus.selectIdColumn(t)));return this.eventBus.selectIdColumn(t[0]),e.root}}class ie{constructor(t){this.eventBus=t,this.availableTables=[],this.tableInputContainer=dt.div([]),this.subscribeToTableEvents(),this.refreshTableInput()}getTableInputContainer(){return this.tableInputContainer}subscribeToTableEvents(){f.events.onTableAdded.subscribe((t=>this.handleTableAdded(t))),f.events.onTableRemoved.subscribe((t=>this.handleTableRemoved(t))),this.eventBus.tableSelectionChanged$.subscribe((()=>this.handleTableChoice()))}getTableFromEventData(t){if(!t&&t.args&&t.args.dataFrame instanceof c.DataFrame)throw new Error("EventData does not contain a dataframe",t);return t.args.dataFrame}handleTableAdded(t){const e=this.getTableFromEventData(t);this.availableTables.some((t=>t.name===e.name))||(this.availableTables.push(e),this.eventBus.selectTable(e),this.refreshTableInput())}handleTableRemoved(t){const e=this.getTableFromEventData(t);this.availableTables=this.availableTables.filter((t=>t.name!==e.name));const n=this.availableTables[0];this.eventBus.selectTable(n||null),this.refreshTableInput()}refreshTableInput(){const t=this.createTableInput();Vt()(this.tableInputContainer).empty(),this.tableInputContainer.append(t.root)}createTableInput(){const t=this.eventBus.getTableSelection();return dt.tableInput("Tables",t,this.availableTables,(t=>{null!==t&&t instanceof c.DataFrame&&this.eventBus.selectTable(t)}))}handleTableChoice(){const t=this.eventBus.getTableSelection();t&&(this.isTableDisplayed(t)||this.displayTable(t))}isTableDisplayed(t){return f.shell.tableNames.includes(t.name)}displayTable(t){const e=f.shell.v;f.shell.addTableView(t),f.shell.v=e}}class se{constructor(t){this.eventBus=t,this.tableInputManager=new ie(t),this.columnInputManager=new re(t)}createControls(){const t=dt.h1("Bulk convert"),e=this.tableInputManager.getTableInputContainer(),n=this.columnInputManager.getColumnControlsContainer(),r=dt.bigButton("Convert",(()=>this.processConvertButtonClick()));return[t,e,n,dt.buttonsInput([r])]}processConvertButtonClick(){!function(t){const e=t.getTableSelection();if(!e)return void f.shell.warning("Please select a table");const n=mt.filter((e=>!("AS"===e&&!t.isAntisenseStrandActive()))).map((e=>t.getSelectedStrandColumn(e))).filter((t=>t));if(0===n.length)return void f.shell.warning("Please column for sense strand");const r=t.getSelectedIdColumn();if(!r)throw new Error("No ID column selected");e.getCol(r),n.map((t=>e.getCol(t)))}(this.eventBus)}}class oe{constructor(t,e,n){this.eventBus=t,this.initialPatternConfig=e,this.subscriptions=n}create(){return dt.divV([dt.h1("PTO"),dt.divH([this.createAllPtoActivationInput().root,...this.createFirstPtoInputs().map((t=>t.root))],{style:{gap:"12px"}})])}areAllPtoLinkagesSet(t){return mt.map((e=>t[e].filter((t=>t)).length)).reduce(((t,e)=>t+e),0)===mt.map((t=>this.initialPatternConfig.nucleotideSequences[t].length)).reduce(((t,e)=>t+e),0)+mt.filter((e=>t[e].length)).length}createAllPtoActivationInput(){const t=this.initialPatternConfig.phosphorothioateLinkageFlags,e=this.areAllPtoLinkagesSet(t),n=dt.boolInput("All PTO",e);n.onInput((()=>{const t=n.value;this.eventBus.setAllPTOLinkages(t)}));const r=this.eventBus.phosphorothioateLingeFlagsChanged$.subscribe((()=>{const t=this.eventBus.getPatternConfig().phosphorothioateLinkageFlags,e=this.areAllPtoLinkagesSet(t);n.value=e}));return this.subscriptions.add(r),this.addStyleToPtoInput(n),dt.tooltip.bind(n.captionLabel,"Activate all phosphothioates"),n}addStyleToPtoInput(t){const e=t.captionLabel;e.classList.add("ui-label-right"),Object.assign(e.style,{textAlign:"left",maxWidth:"100px",minWidth:"40px",width:"auto"})}createFirstPtoInputs(){return mt.map((t=>{if(!this.eventBus.isAntisenseStrandActive()&&"AS"===t)return;const e=this.isFirstPtoActive(t),n=dt.boolInput(`First ${t} PTO`,e);n.onInput((()=>{const e=n.value;this.eventBus.setPhosphorothioateLinkageFlag(t,0,e)}));const r=this.eventBus.phosphorothioateLingeFlagsChanged$.subscribe((e=>{const r=e[t][0];n.value=r}));return this.subscriptions.add(r),this.addStyleToPtoInput(n),dt.tooltip.bind(n.captionLabel,`Activate first phosphothioate in ${t}`),n})).filter((t=>void 0!==t))}isFirstPtoActive(t){return this.initialPatternConfig.phosphorothioateLinkageFlags[t][0]}}class ae{constructor(t,e,n){this.eventBus=t,this.dataManager=e,this.subscriptions=n;const r=this.eventBus.nucleotideSequencesChanged$.subscribe((()=>{this.displayedInputLabels=this.computeDisplayedInputLabels()}));this.subscriptions.add(r)}create(){const t=mt.map((t=>this.constructControlsPanel(t)));return dt.divH(t,{style:{gap:"24px"}})}constructControlsPanel(t){if(!this.eventBus.isAntisenseStrandActive()&&"AS"===t)return dt.div([]);const e=this.constructHeader(),n=this.createControls(t);return dt.block([dt.h1(`${vt[t]}`),e,n],{style:{paddingTop:"12px"}})}constructHeader(){return dt.divH([dt.div([dt.divText("#")],{style:{width:"20px"}}),dt.block75([dt.divText("Modification")]),dt.div([dt.divText("PTO")])])}createControls(t){const e=this.createNucleobaseInputs(t),n=this.createLabelDivs(t),r=this.createPTOFlagInputs(t);return dt.div(e.map(((t,e)=>dt.divH([n[e],dt.block75([t.root]),r[e].root],{style:{alignItems:"center"}}))))}createNucleobaseInputs(t){const e=this.dataManager.fetchAvailableNucleotideBases().sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase())));return this.eventBus.getNucleotideSequences()[t].map(((n,r)=>{const i=dt.choiceInput("",n,e);return i.onInput((()=>{const e=i.value;this.eventBus.setNucleotide(t,r,e)})),i}))}createPTOFlagInputs(t){return this.eventBus.getPhosphorothioateLinkageFlags()[t].slice(1).map(((e,n)=>{const r=dt.boolInput("",e);r.onInput((()=>{const e=r.value;this.eventBus.setPhosphorothioateLinkageFlag(t,n+1,e)}));const i=this.eventBus.phosphorothioateLingeFlagsChanged$.subscribe((e=>{const i=e[t][n+1];r.value=i}));return this.subscriptions.add(i),r}))}computeDisplayedInputLabels(){const t=this.eventBus.getNucleotideSequences(),e=new Map;return mt.forEach((n=>{let r=1;const i=t[n].map((t=>{if(Lt(t))return"";const e=String(r);return r++,e}));e.set(n,i)})),e}createLabelDivs(t){const e=this.createLabels(t).map((t=>dt.div([t],{style:{width:"20px"}}))),n=this.eventBus.nucleotideSequencesChanged$.subscribe((()=>{this.createLabels(t).forEach(((t,n)=>{Vt()(e[n]).empty(),Vt()(e[n]).append(t)}))}));return this.subscriptions.add(n),e}createLabels(t){return this.eventBus.getNucleotideSequences()[t].map(((e,n)=>{const r=this.displayedInputLabels.get(t)[n];return dt.label(r)}))}}class ue{constructor(){this.rxjsSubscriptions=[],this.dgSubscriptions=[]}add(t){t instanceof Ot.Subscription?this.rxjsSubscriptions.push(t):this.dgSubscriptions.push(t)}unsubscribeAll(){for(const t of[this.rxjsSubscriptions,this.dgSubscriptions])t.forEach((t=>t.unsubscribe())),t.length=0}}class le{constructor(t,e){this.eventBus=t,this.dataManager=e,this.subscriptions=new ue}static open(t,e){le.isDialogOpen||(le.instance||(le.instance=new le(t,e)),le.instance.openDialog())}openDialog(){this.initialPatternConfig=Ft().cloneDeep(this.eventBus.getPatternConfig()),le.isDialogOpen=!0,this.createDialog().show()}createDialog(){const t=dt.divV([]);this.subscriptions.add(this.eventBus.strandsUpdated$.subscribe((()=>this.onStrandsUpdated(t))));const e=dt.dialog("Edit strands").add(t).onOK((()=>{})).onCancel((()=>this.resetToInitialState()));return this.subscriptions.add(e.onClose.subscribe((()=>{le.isDialogOpen=!1,this.subscriptions.unsubscribeAll()}))),e}onStrandsUpdated(t){const e=new oe(this.eventBus,this.initialPatternConfig,this.subscriptions).create(),n=new ae(this.eventBus,this.dataManager,this.subscriptions).create();Vt()(t).empty(),Vt()(t).append(e,n)}resetToInitialState(){this.eventBus.setPatternConfig(this.initialPatternConfig)}}le.isDialogOpen=!1;class ce{constructor(t){this.eventBus=t,this.subscriptions=new ue}static open(t){ce.isDialogOpen||(ce.instance||(ce.instance=new ce(t)),ce.instance.openDialog())}openDialog(){this.initialPatternConfig=Ft().cloneDeep(this.eventBus.getPatternConfig()),ce.isDialogOpen=!0,this.createDialog().show()}createDialog(){const t=dt.divV([]);this.subscriptions.add(this.eventBus.strandsUpdated$.subscribe((()=>this.onStrandsUpdated(t))));const e=dt.dialog("Edit terminal modifications").add(t).onOK((()=>{})).onCancel((()=>this.resetToInitialState()));return this.subscriptions.add(e.onClose.subscribe((()=>{ce.isDialogOpen=!1,this.subscriptions.unsubscribeAll()}))),e}onStrandsUpdated(t){const e=new he(this.eventBus).create();Vt()(t).empty(),Vt()(t).append(e)}resetToInitialState(){this.eventBus.setPatternConfig(this.initialPatternConfig)}}ce.isDialogOpen=!1;class he{constructor(t){this.eventBus=t}create(){const t=mt.map((t=>this.constructControlsPanel(t)));return dt.divH(t,{style:{gap:"24px"}})}constructControlsPanel(t){if(!this.eventBus.isAntisenseStrandActive()&&"AS"===t)return dt.div([]);const e=this.createInputs(t);return dt.block([dt.h1(`${vt[t]}`),e],{style:{paddingTop:"12px"}})}createInputs(t){const e=("SS"===t?[...yt].reverse():yt).map((e=>this.createInputForTerminus(t,e)));return dt.form(e)}createInputForTerminus(t,e){const n=this.eventBus.getTerminalModifications()[t][e],r=dt.textInput(e,n);return this.applyStylingToInput(r),r.onInput((()=>{const n=r.value;null!==n&&this.eventBus.updateTerminusModification(t,e,n)})),r}applyStylingToInput(t){const e=t.root.getElementsByTagName("textarea")[0];Vt()(e).css("resize","none")}}class fe{constructor(t,e){this.eventBus=t,this.dataManager=e}createControls(){const t=this.createAntisenseStrandToggle(),e=this.createStrandLengthInputs(),n=e.SS.root,r=e.AS.root,i=this.createSequenceBaseInput().root,s=this.createPatternCommentInput().root,o=this.createPatternNameInputBlock(),a=this.createEditPatternButton(),u=this.createEditTerminalModificationsButton();return[dt.h1("Edit"),t,n,r,i,o,s,dt.buttonsInput([u,a])]}createEditPatternButton(){const t=dt.button("Edit strands",(()=>le.open(this.eventBus,this.dataManager)));return dt.tooltip.bind(t,"Edit strand modifications and PTOs"),t}createEditTerminalModificationsButton(){const t=dt.button("Edit terminals",(()=>ce.open(this.eventBus)));return dt.tooltip.bind(t,"Edit terminal modifications"),Vt()(t).css("margin-right","20px"),t}createAntisenseStrandToggle(){const t=dt.switchInput(`${vt.AS} strand`,this.eventBus.isAntisenseStrandActive());return t.onInput((()=>this.eventBus.toggleAntisenseStrand(t.value))),this.eventBus.patternLoaded$.subscribe((()=>{t.value=this.eventBus.isAntisenseStrandActive()})),t.setTooltip("Toggle antisense strand"),t.root}createStrandLengthInputs(){const t=t=>{const n=this.eventBus.getNucleotideSequences()[t].length,r=dt.intInput(`${vt[t]} length`,n);return r.onInput((()=>e(t,r))),this.eventBus.nucleotideSequencesChanged$.subscribe((()=>{r.value=this.eventBus.getNucleotideSequences()[t].length})),r.setTooltip(`Number of nucleotides in ${t}, including overhangs`),[t,r]},e=(t,e)=>{const n=e.value;null!==n&&(n<=0&&(f.shell.warning("Sequence length must be greater than 0"),e.value=1),n>34&&(f.shell.warning("Sequence length must be less than 35"),e.value=34),this.eventBus.updateStrandLength(t,e.value))},n=Object.fromEntries(mt.map((e=>t(e))));return this.eventBus.antisenseStrandToggled$.subscribe((t=>{Vt()(n.AS.root).toggle(t)})),n}createSequenceBaseInput(){const t=this.dataManager.fetchAvailableNucleotideBases().sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase()))),e=this.dataManager.fetchDefaultNucleobase(),n=dt.choiceInput("Sequence basis",e,t);return n.onInput((()=>this.eventBus.replaceSequenceBase(n.value))),this.eventBus.nucleotideSequencesChanged$.subscribe((()=>{n.value=this.eventBus.getSequenceBase()})),n.setTooltip("Most frequent nucleobase in the strands"),n}createPatternCommentInput(){const t=dt.textInput("Comment",this.eventBus.getComment());return Vt()(t.root).addClass("st-pattern-text-input"),t.onInput((()=>this.eventBus.updateComment(t.value))),this.eventBus.patternLoaded$.subscribe((()=>{t.value=this.eventBus.getComment()})),t}createPatternNameInputBlock(){const t=dt.textInput("Pattern name",this.eventBus.getPatternName());return Vt()(t.root).addClass("st-pattern-text-input"),t.onInput((()=>this.eventBus.updatePatternName(t.value))),this.eventBus.patternLoaded$.subscribe((()=>{t.value=this.eventBus.getPatternName()})),t.setTooltip("Name under which pattern will be saved"),t.root}}class de{constructor(t,e){this.eventBus=t,this.dataManager=e,this.subscriptions=new ue,this.authorSelectedByUser=!1,this.eventBus.patternLoadRequested$.subscribe((t=>this.handlePatternChoice(t))),this.eventBus.patternDeletionRequested$.subscribe((async t=>{await this.dataManager.deletePattern(t,this.eventBus)}))}async handlePatternChoice(t){let e=await this.dataManager.getPatternConfig(t);null===e&&(e=this.dataManager.getDefaultPatternConfig()),this.eventBus.setPatternConfig(e),this.eventBus.updateControlsUponPatternLoaded(t),this.eventBus.setLastLoadedPatternConfig(e)}isCurrentUserSelected(){return this.eventBus.getSelectedAuthor()!==this.dataManager.getOtherUsersAuthorshipCategory()}createControls(){const t=this.getPatternInputsContainer();return[dt.h1("Load"),t]}getPatternInputsContainer(){const t=dt.divH(this.createPatternInputs());return this.eventBus.patternListUpdated$.subscribe((()=>{this.subscriptions.unsubscribeAll(),Vt()(t).empty(),Vt()(t).append(this.createPatternInputs())})),t}createPatternInputs(){const t=this.createAuthorChoiceInput(),e=this.createPatternChoiceInputContainer(),n=this.createDeletePatternButton();return[t.root,e,n]}createPatternChoiceInputContainer(){const t=this.createPatternChoiceInput(),e=dt.div([t.root]),n=this.eventBus.userSelection$.subscribe((()=>{Vt()(e).empty(),Vt()(e).append(this.createPatternChoiceInput().root)}));return this.subscriptions.add(n),e}createAuthorChoiceInput(){const t=[this.dataManager.getCurrentUserAuthorshipCategory()];this.dataManager.getOtherUsersPatternNames().length>0&&t.push(this.dataManager.getOtherUsersAuthorshipCategory());const e=dt.choiceInput("Author",this.eventBus.getSelectedAuthor(),t,(t=>{this.authorSelectedByUser=!0,this.eventBus.selectAuthor(t)}));return this.setAuthorChoiceInputStyle(e),e.setTooltip("Select pattern author"),e}setAuthorChoiceInputStyle(t){Vt()(t.input).css({"max-width":"100px","min-width":"100px"}),Vt()(t.root).css({"padding-right":"30px","padding-left":"30px"})}createPatternChoiceInput(){const t=this.isCurrentUserSelected()?this.dataManager.getCurrentUserPatternNames():this.dataManager.getOtherUsersPatternNames();if(this.authorSelectedByUser){const e=this.dataManager.getPatternHash(t[0],this.isCurrentUserSelected());this.eventBus.requestPatternLoad(e),this.eventBus.updateUrlState(e),this.authorSelectedByUser=!1}const e=this.getPatternName(t),n=dt.choiceInput("Pattern",e,t);return n.setTooltip("Select pattern to load"),Vt()(n.input).css({"max-width":"100px","min-width":"100px"}),this.subscriptions.add(n.onInput((()=>{const t=this.dataManager.getPatternHash(n.value,this.isCurrentUserSelected());this.eventBus.requestPatternLoad(t),this.eventBus.updateUrlState(t)}))),this.subscriptions.add(this.eventBus.patternLoaded$.subscribe((()=>{const e=this.eventBus.getPatternName();n.value!==e&&(n.value=this.getPatternName(t))}))),n}getPatternName(t){return t.find((t=>t===this.eventBus.getPatternName()))??t[0]}createDeletePatternButton(){const t=dt.button(dt.iconFA("trash-alt"),(()=>{this.eventBus.getPatternName()!==this.dataManager.getDefaultPatternName()?this.showDeletePatternDialog():f.shell.warning("Cannot delete example pattern")}));dt.tooltip.bind(t,"Delete pattern from user storage");const e=this.eventBus.userSelection$.subscribe((()=>{t.disabled=!this.isCurrentUserSelected()}));return this.subscriptions.add(e),t}showDeletePatternDialog(){const t=dt.dialog("Delete pattern"),e=this.eventBus.getPatternName();t.add(dt.divText(`Are you sure you want to delete pattern ${e}?`)),t.onOK((()=>this.eventBus.requestPatternDeletion(e))),t.show()}}class pe{constructor(t,e){this.eventBus=t,this.dataManager=e}getLayout(){const t=new de(this.eventBus,this.dataManager),e=new fe(this.eventBus,this.dataManager),n=new se(this.eventBus),r=t.createControls(),i=e.createControls(),s=n.createControls(),o=dt.div(r);Vt()(o).css({"padding-bottom":"20px"});const a=dt.div([...i,...s],"ui-form"),u=dt.div([o,a]);return Vt()(u).css({padding:"25px"}),dt.box(u,{style:{maxWidth:"450px"}})}}var ge=n(146);class me{constructor(t,e,n){this.svgElementFactory=t,this.config=e,this.yShift=n}shiftElements(t){this.svgElements.forEach((e=>{const n=e.getAttribute("transform")||"",r=n.match(/translate\(([^,]+),([^,]+)\)/),i=r?parseFloat(r[1]):0,s=r?parseFloat(r[2]):0,o=`translate(${i+t.x},${s+t.y})`;e.setAttribute("transform",`${n} ${o}`)}))}adjustContentWithinGlobalContainer(t){const e=this.getContentWidth();if(e<t){const n=(t-e)/2;this.shiftElements({x:n,y:0})}}}class ve{constructor(){}static getInstance(){return ve.instance||(ve.instance=new ve,ve.instance.canvas=document.createElement("canvas")),ve.instance}static getTextDimensions(t,e){const n=ve.getInstance().canvas.getContext("2d");if(!n)throw new Error("Canvas 2D context is not available");return n.font=`${e}px Arial`,{width:1.1*n.measureText(t).width,height:1.1*e}}}function ye(t){const e=Object.keys(d.a1)[0];if(!e)throw new Error("No format found in PATTERN_APP_DATA");return d.a1[e][t].color||""}class be extends me{constructor(t,e,n){super(t,e,n);const r=mt.filter((t=>e.nucleotideSequences[t].length>0));this.strands=r.map((t=>new Ae(this.svgElementFactory,e,n,t))),this.labels=r.map(((t,r)=>new we(this.svgElementFactory,e,n,t,this.strands[r])))}get svgElements(){return[...this.strands,...this.labels].map((t=>t.svgElements)).flat()}getContentWidth(){return Math.max(...this.labels.map((t=>t.getContentWidth())))}getContentHeight(){return this.strands.reduce(((t,e)=>t+e.getContentHeight()),0)}}class Ae extends me{constructor(t,e,n,r){super(t,e,n),this.svgElementFactory=t,this.config=e,this.yShift=n,this.strand=r,this.nucleotideNumericLabels=this.computeNucleotideNumericLabels(),"AS"===this.strand&&(this.config.phosphorothioateLinkageFlags[this.strand].reverse(),this.config.nucleotideSequences[this.strand].reverse(),this.nucleotideNumericLabels.reverse()),this._svgElements=[this.createStrandCircles(),this.createPTOLinkageStars()].flat()}computeNucleotideNumericLabels(){let t=0;return this.config.nucleotideSequences[this.strand].map((e=>Lt(e)?null:(t++,t)))}get svgElements(){return this._svgElements}getStrandCircleYShift(){return Ce(this.strand,this.yShift)}createStrandCircles(){const t={x:80,y:this.getStrandCircleYShift()};return this.config.nucleotideSequences[this.strand].map(((e,n)=>this.createNucleotideElementGroup(e,n,t))).flat()}createNucleotideElementGroup(t,e,n){return[...this.createNucleotideCircleElements(t,e,n),this.config.nucleotidesWithNumericLabels.includes(t)?this.createNucleotideNumericLabel(e,n):null].filter((t=>null!==t))}createNucleotideCircleElements(t,e,n){const r=ye(t),i={...n,x:n.x+30*e};return[this.svgElementFactory.createCircleElement(i,15,r),this.createNucleotideLetterLabel(e,n,t)]}getNucleotideCircleCenterPosition(t,e){return{x:e.x+30*t,y:e.y}}createNucleotideLetterLabel(t,e,n){if(!ct.AL.includes(n))return null;const r=function(t){return!Lt(t)&&ct.AL.includes(t)?t:""}(n),i=function(t){const e=ye(t),n=e.match(/\d+/g)?.map(Number);if(!n||n.length<3)return"#ffffff";const[r,i,s]=n;return.299*r+.587*i+.114*s>186?"#333333":"#ffffff"}(n),s=this.getPositionForNucleotideLabel(t,e);return this.svgElementFactory.createTextElement(r,s,17,i)}getPositionForNucleotideLabel(t,e){const n=this.getNucleotideCircleCenterPosition(t,e),r=ve.getTextDimensions("A",17);return{x:n.x-r.width/2,y:n.y+r.height/3}}getNumericLabelYShift(t){return"SS"===this.strand?t.y-20:t.y+15+5+15}createNucleotideNumericLabel(t,e){const n=this.nucleotideNumericLabels[t];if(null===n)return null;const r=ve.getTextDimensions(n.toString(),15).width,i={x:e.x+30*t-r/2,y:this.getNumericLabelYShift(e)};return this.svgElementFactory.createTextElement(n.toString(),i,15,"var(--grey-6)")}createPTOLinkageStars(){const t=this.config.phosphorothioateLinkageFlags[this.strand],e=this.getStrandCircleYShift()+12;return t.map(((t,n)=>{if(!t)return null;const r={x:65+30*n,y:e};return this.svgElementFactory.createStarElement(r,"red")})).filter((t=>null!==t))}getContentWidth(){return 30*this.config.nucleotideSequences[this.strand].length}getContentHeight(){return 62}}class we extends me{constructor(t,e,n,r,i){super(t,e,n),this.svgElementFactory=t,this.config=e,this.yShift=n,this.strand=r,this.strandSvgWrapper=i,this._svgElements=this.createSVGElements()}createSVGElements(){return[this.createLeftLabel(),this.createRightLabel()]}getLeftLabelWidth(){return 55}getRightLabelWidth(){return 20}createLeftLabel(){const t="SS"===this.strand?"5'":"3'",e=`${this.strand}: ${t} `,n=ve.getTextDimensions(e,17),r={x:10,y:Ce(this.strand,this.yShift)+n.height/3};return this.svgElementFactory.createTextElement(e,r,17,"var(--grey-6)")}createRightLabel(){const t=" "+("SS"===this.strand?"3'":"5'"),e=ve.getTextDimensions(t,17),n={x:65+this.strandSvgWrapper.getContentWidth()+5,y:Ce(this.strand,this.yShift)+e.height/3};return this.svgElementFactory.createTextElement(t,n,17,"var(--grey-6)")}get svgElements(){return this._svgElements}getContentWidth(){return this.strandSvgWrapper.getContentWidth()+this.getLeftLabelWidth()+this.getRightLabelWidth()+10}getContentHeight(){return this.strandSvgWrapper.getContentHeight()}}function Ce(t,e){return"SS"===t?e+5+15+15:e+52+10+15}class xe{constructor(){this.xmlNamespace="http://www.w3.org/2000/svg"}createElement(t){return document.createElementNS(this.xmlNamespace,t)}setAttributes(t,e){Object.entries(e).forEach((([e,n])=>{t.setAttribute(e,String(n))}))}createCanvas(t,e){const n=this.createElement("svg");return this.setAttributes(n,{id:"mySvg",width:t,height:e}),n}createCircleElement(t,e,n){const r=this.createElement("circle");return this.setAttributes(r,{cx:t.x,cy:t.y,r:e,fill:n}),r}createTextElement(t,e,n,r){const i=this.createElement("text");return this.setAttributes(i,{x:e.x,y:e.y,"font-size":n,"font-weight":"normal","font-family":"Arial",fill:r}),i.textContent=t,i}createStarElement(t,e){const n=this.createElement("polygon"),r=this.computeStarVertexCoordinates(t).map((t=>t.join(","))).join(" ");return this.setAttributes(n,{points:r,fill:e}),n}computeStarVertexCoordinates(t){const e=Math.PI/5,n=-e/2;return Array.from({length:10},((r,i)=>{const s=i%2==0?6:3,o=i*e+n;return[t.x+Math.cos(o)*s,t.y+Math.sin(o)*s]}))}createRectangleElement(t,e,n,r){const i=this.createElement("rect");return this.setAttributes(i,{x:t.x,y:t.y,width:e,height:n,fill:r}),i}}class _e extends me{constructor(t,e,n){super(t,e,n),this.svgElementFactory=t,this.config=e,this.yShift=n,this._svgElements=[],this.titleText=this.getTitleText(),this._svgElements=[this.getTitle()]}get svgElements(){return this._svgElements}getTitle(){return this.svgElementFactory.createTextElement(this.titleText,{x:15,y:this.yShift+17},17,"black")}getContentWidth(){return ve.getTextDimensions(this.titleText,17).width}getContentHeight(){return ve.getTextDimensions(this.titleText,17).height}getTitleText(){const t=`${this.config.nucleotideSequences.SS.length}`,e=this.config.isAntisenseStrandIncluded?`/${this.config.nucleotideSequences.AS.length}`:"";return`${this.config.patternName} for ${t}${e}-mer`}}class Se extends me{constructor(t,e,n){super(t,e,n),this._svgElements=[];const{elements:r,width:i}=this.createLegendItems();this._svgElements=r,this.width=i}isPhosphorothioatePresent(){return Object.values(this.config.phosphorothioateLinkageFlags).flat().some((t=>t))}getModificationTypesList(){return[...new Set(Object.values(this.config.nucleotideSequences).flat().sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase()))))]}get svgElements(){return this._svgElements}createLegendItem(t,e){const n={x:e,y:this.yShift-6},r=t.includes("linkage")?this.svgElementFactory.createStarElement(n,"red"):this.svgElementFactory.createCircleElement(n,6,ye(t));e+=12;const i={y:this.yShift,x:e};return{elements:[r,this.svgElementFactory.createTextElement(t,i,15,"var(--grey-6)")],width:12+ve.getTextDimensions(t,15).width}}createLegendItems(){let t=10;const e=[],n=e=>t+=e+15;if(this.isPhosphorothioatePresent()){const{elements:r,width:i}=this.createLegendItem("PTO linkage",t);n(i),e.push(r)}return this.getModificationTypesList().forEach((r=>{const{elements:i,width:s}=this.createLegendItem(r,t);n(s),e.push(i)})),{elements:e.flat(),width:t}}getContentHeight(){return 20}getContentWidth(){return this.width}}class Ee{constructor(t){this.svgElementFactory=new xe;const e=Ft().cloneDeep(t);let n=10;this.title=new _e(this.svgElementFactory,e,n),n+=this.title.getContentHeight(),this.strands=new be(this.svgElementFactory,e,n),n+=this.strands.getContentHeight()+10,this.legend=new Se(this.svgElementFactory,e,n)}renderPattern(){const t=this.getGlobalWidth(),e=this.getGlobalHeight(),n=this.svgElementFactory.createCanvas(t,e),r=[this.title,this.strands,this.legend].map((t=>t.svgElements)).flat();return n.append(...r),n}getGlobalWidth(){const t=[this.title,this.strands,this.legend];return Math.max(...t.map((t=>t.getContentWidth())))}getGlobalHeight(){return[this.title,this.strands,this.legend].reduce(((t,e)=>t+e.getContentHeight()),10)}}class Te{constructor(t){this.eventBus=t,this.svgDisplayDiv=dt.div([]),t.updateSvgContainer$.subscribe((()=>this.updateSvgContainer())),t.svgSaveRequested$.subscribe((()=>this.saveSvgAsPng()))}static createSvgDiv(t){return new Te(t).svgDisplayDiv}updateSvgContainer(){$(this.svgDisplayDiv).empty();const t=this.eventBus.getPatternConfig();this.svgElement=this.createSvg(t),this.svgDisplayDiv.append(this.svgElement)}createSvg(t){return new Ee(t).renderPattern()}saveSvgAsPng(){const t=this.eventBus.getPatternName();ge.saveSvgAsPng(this.svgElement,t,{backgroundColor:"white"})}}class Ie{constructor(t){this.eventBus=t,this.togglesContainer=dt.div([]),this.eventBus.uniqueNucleotidesChanged$().subscribe((()=>{this.updateContainer()}))}getContainer(){return this.togglesContainer}updateContainer(){Vt()(this.togglesContainer).empty(),Vt()(this.togglesContainer).append(this.createInputs())}createInputs(){const t=this.eventBus.getUniqueNucleotides().filter((t=>!Lt(t))).map((t=>this.createSingleInput(t)));return t.sort(((t,e)=>t.captionLabel.textContent.localeCompare(e.captionLabel.textContent))),dt.divH(t.map((t=>t.root)))}createSingleInput(t){const e=this.eventBus.getModificationsWithNumericLabels().includes(t),n=dt.boolInput(t,e,(e=>this.handleNumericLabelToggle(t,e)));return Vt()(n.root).css("padding-right","20px"),n.setTooltip(`Show numeric labels for ${t}`),n}handleNumericLabelToggle(t,e){const n=this.eventBus.getModificationsWithNumericLabels();if(n.includes(t)===e)return;const r=e?n.concat(t):n.filter((e=>e!==t));this.eventBus.updateModificationsWithNumericLabels(r)}}class Ne{constructor(t,e){this.eventBus=t,this.dataManager=e,this.subscriptions=new ue}createContainer(){return dt.div([dt.h1("Translation example"),this.createTranslationExamples()],{style:{paddingTop:"20px"}})}createTranslationExamples(){const t=dt.divH([...this.getExampleElements()],"ui-form");return this.eventBus.antisenseStrandToggled$.subscribe((()=>{this.subscriptions.unsubscribeAll(),Vt()(t).empty(),Vt()(t).append(this.getExampleElements())})),t}getExampleElements(){return mt.map((t=>new Oe(t,this.eventBus,this.subscriptions).create()))}}class Oe{constructor(t,e,n){this.strand=t,this.eventBus=e,this.subscriptions=n}create(){return this.eventBus.isAntisenseStrandActive()||"AS"!==this.strand?(this.inputExample=this.createInputExample(),this.outputExample=this.createOutputExample(this.inputExample.value),this.subscribeToEvents(),dt.block50([dt.h2(vt[this.strand]),this.inputExample.root,this.outputExample.root],{style:{paddingRight:"20px"}})):dt.div([])}subscribeToEvents(){const t=this.eventBus.strandsLinkagesAndTerminalsUpdated$.subscribe((()=>{const t=this.generateExampleSequence();this.inputExample.value=t,this.outputExample.value=this.computeOutputValue(t)}));"AS"===this.strand&&this.subscriptions.add(t)}createInputExample(){const t=this.createTextInputForExamples(),e=this.generateExampleSequence();return t.value=e,t.setTooltip(`Example raw nucleotides input for ${vt[this.strand]}`),t}generateExampleSequence(){return this.eventBus.getNucleotideSequences()[this.strand].map(((t,e)=>ct.AL[e%ct.AL.length])).join("")}createOutputExample(t){const e=this.createTextInputForExamples();return e.value=this.computeOutputValue(t),e.setTooltip(`Pattern applied to the example input for ${vt[this.strand]}`),e}computeOutputValue(t){const e=this.eventBus.getNucleotideSequences()[this.strand],n=this.eventBus.getTerminalModifications()[this.strand];return function(t,e,n,r){const i=function(t,e,n){const r=new Array(t.length+e.filter((t=>t)).length+yt.length);r[0]=n["5'"],r[r.length-1]=n["3'"];let i=1;return e[0]&&(r[i]="ps",i++),t.forEach(((t,n)=>{r[n+i]=t,e[n+1]&&(r[n+i+1]="ps",i++)})),r}(t.split("").map(((t,n)=>{const r=function(t,e){const n=Object.keys(d.a1)[0],r=d.a1[n][e].substitution;return t.replace(/([AGCTU])/,r)}(t,e[n]);return r})),n,r);return i.join("")}(t,e,this.eventBus.getPhosphorothioateLinkageFlags()[this.strand],n)}createTextInputForExamples(){const t=dt.textInput("","");return this.applyStylingToInput(t),t}applyStylingToInput(t){const e=t.root.getElementsByTagName("textarea")[0];e.setAttribute("readonly","true"),Vt()(e).css("resize","none"),Vt()(t.root).css("opacity","75%")}}class Me{constructor(t,e){this.eventBus=t,this.dataManager=e,this.svgDisplay=Te.createSvgDiv(t)}getLayout(){const t=new Ie(this.eventBus).getContainer(),e=this.generateDownloadControls(),n=new Ne(this.eventBus,this.dataManager).createContainer();return dt.panel([this.svgDisplay,t,e,n],{style:{overflowX:"scroll",padding:"12px 24px"}})}generateDownloadControls(){return dt.divH([this.createSavePatternButton(),this.createDownloadPngButton(),this.createShareLinkButton()],{style:{gap:"12px",marginTop:"12px"}})}createDownloadPngButton(){const t=dt.button("Get PNG",(()=>this.eventBus.requestSvgSave()));return dt.tooltip.bind(t,"Download pattern as PNG"),t}createShareLinkButton(){const t=dt.button(dt.iconFA("link"),(()=>navigator.clipboard.writeText(window.location.href).then((()=>f.shell.info("Link to pattern copied to clipboard")))));return this.eventBus.patternHasUnsavedChanges$.subscribe((e=>{t.disabled=e})),dt.tooltip.bind(t,"Share pattern link"),t}createSavePatternButton(){const t=dt.button("Save",(()=>this.processSaveButtonClick()));return this.eventBus.patternHasUnsavedChanges$.subscribe((e=>{t.disabled=!e})),dt.tooltip.bind(t,"Save pattern to user storage"),t}processSaveButtonClick(){const t=this.eventBus.getPatternName();t!==this.dataManager.getDefaultPatternName()?""!==t?this.dataManager.savePatternToUserStorage(this.eventBus).then((()=>{f.shell.info(`Pattern ${t} saved`)})).catch((t=>this.handleErrorWhileSavingPattern(t))):f.shell.warning("Insert pattern name"):f.shell.warning("Cannot save default pattern")}handleErrorWhileSavingPattern(t){t instanceof St?new Le(this.eventBus,this.dataManager).show():t instanceof Et?f.shell.warning(dt.div([dt.divText("Pattern already exists"),dt.button("Load",(()=>{const e=t.message;this.eventBus.requestLoadPatternInNewTab(e)}))])):console.error("Error while saving pattern",t)}}class Le{constructor(t,e){this.eventBus=t,this.dataManager=e}show(){const t=this.eventBus.getPatternName(),e=dt.dialog(`Pattern "${t}" already exists`);e.add(dt.divText(`Pattern "${t}" already exists. Do you want to overwrite it?`)),e.show(),e.onOK((()=>this.processOverwriteNamesakePattern()))}processOverwriteNamesakePattern(){const t=this.eventBus.getPatternName();this.dataManager.overwritePatternInUserStorage(this.eventBus).then((()=>{f.shell.info(`Pattern ${t} overwritten`)})).catch((t=>{console.error("Error while overwriting pattern in user storage",t),f.shell.error("Error while overwriting pattern")}))}}class Be extends gt{constructor(){super("Oligo Pattern")}getContent(){return async function(){const t=await Nt.getInstance(),e=new $t,n=await async function(t,e){const n=e.getPatternHash();if(!n)return e.clearPatternURL(),t.getDefaultPatternRecord();let r=await t.getPatternRecord(n);return r||(e.clearPatternURL(),r=t.getDefaultPatternRecord()),r}(t,e),r=new Ut(t,n);e.subscribeToObservables(r);const i=new pe(r,t).getLayout(),s=new Me(r,t).getLayout();return dt.splitH([i,s],{},!0)}()}}var Pe=n(507),Re={};function De(t){var e;return"string"==typeof t||t instanceof String?t:("object"==typeof t||t instanceof Object)&&"$thrownJsError"in t?De(t.$thrownJsError):t instanceof Error?null!==(e=t.stack)&&void 0!==e?e:t.message:t.toString()}Re.styleTagTransform=te(),Re.setAttributes=Qt(),Re.insert=Yt().bind(null,"head"),Re.domAPI=Wt(),Re.insertStyleElement=Xt(),qt()(Pe.A,Re),Pe.A&&Pe.A.locals&&Pe.A.locals;var Fe,Ue=n(74),ke={};ke.styleTagTransform=te(),ke.setAttributes=Qt(),ke.insert=Yt().bind(null,"head"),ke.domAPI=Wt(),ke.insertStyleElement=Xt(),qt()(Ue.A,ke),Ue.A&&Ue.A.locals&&Ue.A.locals;class $e{constructor(t,e,n=!0){this.textInputBase=t,this.painter=e,Vt()(this.root).addClass("colored-text-input"),n&&this.textInputBase.onChanged((()=>{Vt()(this.textArea).css("height",0),Vt()(this.textArea).css("height",this.textArea.scrollHeight+"px")})),this.highlights=dt.div([]),this.root.appendChild(this.highlights),this.colorize(),this.textInputBase.onChanged((()=>this.colorize()))}get textArea(){return this.textInputBase.root.getElementsByTagName("textarea").item(0)}get inputBase(){return this.textInputBase}get root(){return this.textInputBase.root}colorize(){const t=this.painter(this.textInputBase.value);this.highlights.innerHTML="",t.forEach((t=>this.highlights.appendChild(t)))}}function He(t){let e=0;const n=new ft(t).getFormat();null!==n&&(e=new ht.q(t).getInvalidCodeIndex(n));const r=e<0||""===t,i=dt.span([]);Vt()(i).css("-webkit-text-fill-color","var(--grey-6)");const s=dt.span([]);return Vt()(s).css("-webkit-text-fill-color","red"),r?i.innerHTML=t:(i.innerHTML=t.slice(0,e),s.innerHTML=t.slice(e)),[i,s]}!function(t){t.TYPE="V2000",t[t.NUM_OF_HEADER_LINES=3]="NUM_OF_HEADER_LINES",t[t.NUM_OF_COUNTS_DIGITS=3]="NUM_OF_COUNTS_DIGITS",t[t.ATOM_TYPE_COL=4]="ATOM_TYPE_COL",t[t.FIRST_BONDED_ATOM_COL=1]="FIRST_BONDED_ATOM_COL",t[t.BOND_TYPE_COL=3]="BOND_TYPE_COL",t[t.RGP_SHIFT=8]="RGP_SHIFT",t[t.MAX_ATOM_COUNT=999]="MAX_ATOM_COUNT",t.RGP_LINE_START="M RGP",t.ATOM_ALIAS_LINE_START="A ",t.END="M END"}(Fe||(Fe={}));class Ve{constructor(t){this.init(t)}init(t){this.fileContent=t.replace(/\r/g,""),this._atomCount=void 0,this._atomTypes=void 0,this._bondCount=void 0,this._bondTypes=void 0,this.xyzAtomCoordinates=void 0,this._pairsOfBondedAtoms=void 0}get atomCount(){return void 0===this._atomCount&&this.setAtomAndBondCounts(),this._atomCount}get bondCount(){return void 0===this._bondCount&&this.setAtomAndBondCounts(),this._bondCount}get x(){var t;return null!==(t=this.xyzAtomCoordinates)&&void 0!==t||(this.xyzAtomCoordinates=this.parseAtomCoordinates()),this.xyzAtomCoordinates.x}get y(){var t;return null!==(t=this.xyzAtomCoordinates)&&void 0!==t||(this.xyzAtomCoordinates=this.parseAtomCoordinates()),this.xyzAtomCoordinates.y}get z(){var t;return null!==(t=this.xyzAtomCoordinates)&&void 0!==t||(this.xyzAtomCoordinates=this.parseAtomCoordinates()),this.xyzAtomCoordinates.z}get atomTypes(){var t;return null!==(t=this._atomTypes)&&void 0!==t||(this._atomTypes=this.parseAtomTypes()),this._atomTypes}get pairsOfBondedAtoms(){var t;return null!==(t=this._pairsOfBondedAtoms)&&void 0!==t||(this._pairsOfBondedAtoms=this.parseBondedAtomPairs()),this._pairsOfBondedAtoms}get bondTypes(){var t;return null!==(t=this._bondTypes)&&void 0!==t||(this._bondTypes=this.parseBondTypes()),this._bondTypes}setAtomAndBondCounts(){const{atomCount:t,bondCount:e}=this.parseAtomAndBondCounts();this._atomCount=t,this._bondCount=e}getNextColumnIdx(t){for(;!this.isWhitespace(t);)++t;for(;this.isWhitespace(t);)++t;return t}shiftIdxToSpecifiedColumn(t,e){let n=t;const r=this.isWhitespace(n)?e:e-1;for(let t=0;t<r;t++)n=this.getNextColumnIdx(n);return n}parseAtomTypes(){const t=this.atomCount,e=new Array(t);let n=this.getAtomBlockIdx();for(let r=0;r<t;r++)n=this.shiftIdxToAtomType(n),e[r]=this.parseAtomType(n),n=this.getNextLineIdx(n);return e}parseAtomCoordinates(){const t=new Float32Array(this.atomCount),e=new Float32Array(this.atomCount),n=new Float32Array(this.atomCount);let r=this.getAtomBlockIdx();for(let i=0;i<this.atomCount;i++){r=this.shiftIdxToXColumn(r);for(const s of[t,e,n])s[i]=this.parseFloatValue(r),r=this.getNextColumnIdx(r);r=this.getNextLineIdx(r)}return{x:t,y:e,z:n}}parseBondedAtomPairs(){const t=new Array(this.bondCount);let e=this.getBondBlockIdx();for(let n=0;n<this.bondCount;n++){e=this.shiftIdxToBondedAtomsPair(e);const r=new Uint16Array(2);r[0]=this.parseIntValue(e),e=this.getNextColumnIdx(e),r[1]=this.parseIntValue(e),t[n]=r,e=this.getNextLineIdx(e)}return t}parseBondTypes(){const t=this.bondCount,e=new Uint16Array(t);let n=this.getBondBlockIdx();for(let r=0;r<t;r++)n=this.shiftIdxToBondType(n),e[r]=this.parseIntValue(n),n=this.getNextLineIdx(n);return e}isWhitespace(t){const e=this.fileContent[t];return" "===e||"\t"===e}getNextLineIdx(t){return"\n"!==this.fileContent[t]?this.fileContent.indexOf("\n",t)+1:t+1}parseFloatValue(t){return this.parseNumericValue(parseFloat,t)}parseIntValue(t){return this.parseNumericValue(parseInt,t)}parseNumericValue(t,e){let n=e+1;for(;!this.isWhitespace(n);)++n;return t(this.fileContent.substring(e,n))}}class je extends Ve{constructor(t){super(t),this.init(t)}init(t){super.init(t)}parseAtomType(t){let e=t,n=e;return this.isQuote(e)?(n=this.getNextIdenticalChar(e),e++):n=this.fileContent.indexOf(" ",n),this.fileContent.substring(e,n)}isQuote(t){const e=this.fileContent[t].charCodeAt(0);return 39===e||34===e}getNextIdenticalChar(t){const e=this.fileContent[t];return e?this.fileContent.indexOf(e,t+1):-1}isQuery(){return this.isQueryOrFragment(((t,e)=>{return 39===t||34===t||76===t&&!((n=this.fileContent.charCodeAt(e+1))>64&&n<91||n>96&&n<123);var n}))}isFragment(){return this.isQueryOrFragment((t=>82===t||42===t))}isQueryOrFragment(t){const e=this.atomCount;let n=this.getAtomBlockIdx();for(let r=0;r<e;r++){if(n=this.shiftIdxToAtomType(n),t(this.fileContent.charCodeAt(n),n))return!0;n=this.getNextLineIdx(n)}return!1}}class qe extends je{constructor(t){super(t)}getAtomLines(){const t=this.getAtomBlockIdx(),e=this.getBondBlockIdx();return this.fileContent.substring(t,e).split("\n").slice(0,this.atomCount)}getBondLines(){const t=this.getBondBlockIdx();return this.fileContent.substring(t).split("\n").slice(0,this.bondCount)}getRGroupIdToAtomicIdxMap(){const t=new Map,e=this.fileContent.split("\n");e.filter((t=>t.startsWith(Fe.RGP_LINE_START))).forEach((e=>{const n=this.getAtomIdxToRgpIdxList(e);for(const[e,r]of n){if(t.has(e))throw new Error(`R group ${e} is already in the map`);t.set(e,r)}}));const n=e.map(((t,e)=>{if(t.startsWith(Fe.ATOM_ALIAS_LINE_START))return e})).filter((t=>void 0!==t)),r=n.map((t=>e[t])),i=n.map((t=>e[t+1]));r.forEach(((e,n)=>{const r=parseInt(e.split(/\s+/)[1])-1,s=parseInt(i[n].substring(1));if(t.has(s))throw new Error(`R group ${s} is already in the map`);t.set(s,r)}));const s=this.getRGroupAtomicIndices().filter((e=>!Array.from(t.values()).includes(e)));if(0!==s.length)throw new Error(`Unaccounted R group indices: ${s}`);return t}getAtomIdxToRgpIdxList(t){const e=t.split(/\s+/).filter((t=>t)).slice(3).map((t=>parseInt(t))),n=new Array(e.length/2);for(let t=0;t<e.length;t+=2)n[t/2]=[e[t+1],e[t]-1];return n}getRGroupAtomicIndices(){return this.atomTypes.map(((t,e)=>{if(t.includes("R#"))return e})).filter((t=>void 0!==t))}static isValidMolfile(t){return-1!==t.indexOf(Fe.TYPE)&&-1!==t.indexOf(Fe.END)}shiftIdxToAtomType(t){return this.shiftIdxToSpecifiedColumn(t,Fe.ATOM_TYPE_COL)}getCountsLineIdx(){let t=0;for(let e=0;e<Fe.NUM_OF_HEADER_LINES;++e)t=this.getNextLineIdx(t);return t}getAtomBlockIdx(){let t=this.getCountsLineIdx();return t=this.getNextLineIdx(t),t}shiftIdxToXColumn(t){return this.getNextColumnIdx(t)}shiftIdxToBondedAtomsPair(t){return this.shiftIdxToSpecifiedColumn(t,Fe.FIRST_BONDED_ATOM_COL)}shiftIdxToBondType(t){return this.shiftIdxToSpecifiedColumn(t,Fe.BOND_TYPE_COL)}getBondBlockIdx(){let t=this.getAtomBlockIdx();for(let e=0;e<this.atomCount;e++)t=this.getNextLineIdx(t);return t}parseAtomAndBondCounts(){let t=this.getCountsLineIdx(),e=t+Fe.NUM_OF_COUNTS_DIGITS;const n=parseInt(this.fileContent.substring(t,e));return t=e,e+=Fe.NUM_OF_COUNTS_DIGITS,{atomCount:n,bondCount:parseInt(this.fileContent.substring(t,e))}}}class Ge extends je{constructor(t){super(t),this.init(t)}getAtomLines(){const t=this.getAtomBlockIdx(),e=this.getBondBlockIdx();return this.fileContent.substring(t,e).split("\n").slice(0,this.atomCount)}getBondLines(){const t=this.getBondBlockIdx();return this.fileContent.substring(t).split("\n").slice(0,this.bondCount)}getRGroupIdToAtomicIdxMap(){const t=new Map;return this.getAtomLines().forEach(((e,n)=>{const r=e.match(/RGROUPS=\(([\d\s]+)\)/);if(r){const e=r[1].split(/\s+/).map((t=>parseInt(t)));if(e.length>2)throw new Error(`R group data ${e} has more than 2 elements`);const i=e[1];if(t.has(i))throw new Error(`R group ${i} is already in the map`);t.set(i,n)}})),t}shiftIdxToAtomType(t){return this.shiftIdxToSpecifiedColumn(t,4)}getCountsLineIdx(){return this.fileContent.indexOf("M V30 COUNTS ")}getAtomBlockIdx(){let t=this.fileContent.indexOf("M V30 BEGIN ATOM");return t=this.getNextLineIdx(t),t}shiftIdxToXColumn(t){let e=this.shiftIdxToAtomType(t);return this.isQuote(e)?(e=this.getNextIdenticalChar(e),e=this.getNextColumnIdx(e),e):this.shiftIdxToSpecifiedColumn(t,5)}shiftIdxToBondedAtomsPair(t){return this.shiftIdxToSpecifiedColumn(t,5)}shiftIdxToBondType(t){return this.shiftIdxToSpecifiedColumn(t,4)}getBondBlockIdx(){return this.getNextLineIdx(this.fileContent.indexOf("M V30 BEGIN BOND"))}static isValidMolfile(t){return-1!==t.indexOf("V3000")&&-1!==t.indexOf("M END")}parseAtomAndBondCounts(){let t=this.fileContent.indexOf("M V30 COUNTS ")+14,e=this.fileContent.indexOf(" ",t+1);const n=parseInt(this.fileContent.substring(t,e));return t=e+1,e=this.fileContent.indexOf(" ",t+1),{atomCount:n,bondCount:parseInt(this.fileContent.substring(t,e))}}}class We{constructor(){}static getInstance(t){if(We.isMolfileV2K(t))return new qe(t);if(We.isMolfileV3K(t))return new Ge(t);throw new Error("Malformed molfile")}static isMolfileV2K(t){return qe.isValidMolfile(t)}static isMolfileV3K(t){return Ge.isValidMolfile(t)}}const ze=class extends Error{constructor(t){super(t)}};class Ye{constructor(t){this.molblock=t}get molblock(){return this._validMolBlock}set molblock(t){if(""!==t){try{this.validateMolBlock(t)}catch(e){e instanceof ze&&(t="");const n=De(e);console.error(n)}this._validMolBlock=t}else this._validMolBlock=t}validateMolBlock(t){if(""===t)throw new ze("MoleculeImage: invalid molblock")}async drawMolBlockOnCanvas(t){try{await f.functions.call("Chem:canvasMol",{x:0,y:0,w:t.width,h:t.height,canvas:t,molString:this.molblock,scaffoldMolString:"",options:{normalizeDepiction:!1,straightenDepiction:!1}})}catch(t){const e=De(t);console.error(e)}}getMoleculeDimensions(){const t=We.getInstance(this.molblock),e=Math.max(...t.x)-Math.min(...t.x);return{height:Math.max(...t.y)-Math.min(...t.y),width:e}}async zoomIn(){const t=dt.dialog({title:"Molecule",showFooter:!1}),e=.7*Vt()(window).height(),n=this.getMoleculeDimensions(),r=e/n.height,i=e,s=n.width*r,o=dt.canvas(s,i);await this.drawMolBlockOnCanvas(o);const a=dt.block([o],{style:{overflowX:"scroll"}});t.add(a).showModal(!0),Vt()(t.root).find(".d4-dialog-contents").removeClass("ui-form"),Vt()(t.root).find(".d4-dialog-contents").removeClass("ui-panel"),Vt()(t.root).find(".d4-dialog-contents").addClass("ui-box"),Vt()(t.root).find(".d4-dialog-contents").css("padding","0")}async drawMolecule(t,e,n){t.innerHTML="";const r=dt.canvas(e*window.devicePixelRatio,n*window.devicePixelRatio);r.style.width=`${e}px`,r.style.height=`${n}px`,r.style.cursor="zoom-in",this.drawMolBlockOnCanvas(r),r.addEventListener("click",(async()=>{await this.zoomIn()})),t.append(dt.tooltip.bind(r,"Click to zoom"))}}class Ke{constructor(t,e){this.sequence=t,this.codeMap=e}parseSequence(){const t=this.parseRawSequence();return this.addLinkers(t)}addLinkers(t){const e=[];return t.forEach(((n,r)=>{const i=this.getSymbolForCode(n);r>0&&function(t){return d.TJ.left.includes(t)}(i)&&e.pop(),e.push(i);const s=Qe(i),o=r===t.length-1,a=r+1<t.length&&Qe(this.getSymbolForCode(t[r+1]));s||function(t){return d.TJ.right.includes(t)}(i)||a||o||e.push("p")})),e}getSymbolForCode(t){let e=this.codeMap.get(t);return e??(e=t),e}parseRawSequence(){const t=this.getAllCodesOfFormat(),e=[];let n=0;for(;n<this.sequence.length;){const r=t.find((t=>t===this.sequence.substring(n,n+t.length)));e.push(r),n+=r.length}return e}getAllCodesOfFormat(){const t=Array.from(this.codeMap.keys());return(0,ut.iD)(t)}}function Qe(t){return d.TJ.phosphate.includes(t)}class Je{constructor(t,e=!1,n){this.invert=e,this.lib=p.k.getInstance();const r=this.lib.getCodeToSymbolMap(n);this.parser=new Ke(t,r)}convert(){const t=this.parser.parseSequence(),e=[];t.forEach(((t,n)=>{const r=this.getMonomerMolfile(t,n);e.push(r)}));let n=this.getPolymerMolfile(e);return this.invert&&(n=this.reflect(n),n=this.invertBondConfiguration(n)),n}invertBondConfiguration(t){const e=t.indexOf("M V30 BEGIN BOND"),n=t.indexOf("M V30 END BOND");let r=t.substring(e,n);return r=r.replace(/(CFG=)([13])/g,((t,e,n)=>"1"===n?`${e}3`:"3"===n?`${e}1`:t)),t.substring(0,e)+r+t.substring(n)}getMonomerMolfile(t,e){const n=this.lib.getMolfileBySymbol(t);return this.lib.isModification(t)?0===e?this.reflect(n):n:this.rotateNucleotidesV3000(n)}getPolymerMolfile(t){return this.linkV3000(t)}reflect(t){const e=this.extractAtomDataV3000(t),n=e.atomIndex.length,r=e.atomIndex.indexOf(1),i=e.atomIndex.indexOf(n),s=(e.x[i]+e.x[r])/2,o=(e.y[i]+e.y[r])/2;for(let t=0;t<n;t++)e.x[t]-=s,e.y[t]-=o;for(let t=0;t<n;t++)e.x[t]=-e.x[t];const a=e.x[r];for(let t=0;t<n;t++)e.x[t]-=a;let u=t.indexOf("M V30 BEGIN ATOM");u=t.indexOf("\n",u);let l=u;for(let r=0;r<n;r++)u=t.indexOf("V30",u)+4,u=t.indexOf(" ",u)+1,u=t.indexOf(" ",u)+1,l=t.indexOf(" ",u)+1,l=t.indexOf(" ",l),u=(t=t.slice(0,u)+e.x[r]+" "+e.y[r]+t.slice(l)).indexOf("\n",u)+1;return t}extractAtomDataV3000(t){const e=this.extractAtomsBondsNumbersV3000(t);let n=t.indexOf("M V30 BEGIN ATOM");n=t.indexOf("\n",n);let r=n;const i=Array(e.natom),s=Array(e.natom),o=Array(e.natom),a=Array(e.natom);for(let u=0;u<e.natom;u++)n=t.indexOf("V30",n)+4,r=t.indexOf(" ",n),i[u]=parseInt(t.substring(n,r)),n=r+1,r=t.indexOf(" ",n),s[u]=t.substring(n,r),n=r+1,r=t.indexOf(" ",n),o[u]=parseFloat(t.substring(n,r)),n=r+1,r=t.indexOf(" ",n),a[u]=parseFloat(t.substring(n,r)),n=t.indexOf("\n",n)+1;return{atomIndex:i,atomType:s,x:o,y:a}}extractAtomsBondsNumbersV3000(t){let e=(t=t.replaceAll("\r","")).indexOf("COUNTS")+7,n=t.indexOf(" ",e);const r=parseInt(t.substring(e,n));return e=n+1,n=t.indexOf(" ",e),{natom:r,nbond:parseInt(t.substring(e,n))}}rotateNucleotidesV3000(t){const e=this.extractAtomDataV3000(t),n=e.atomIndex.length,r=e.atomIndex.indexOf(1),i=e.atomIndex.indexOf(n);n>8&&this.fix5Prime(e,r,i);const s=(e.x[i]+e.x[r])/2,o=(e.y[i]+e.y[r])/2;for(let t=0;t<n;t++)e.x[t]-=s,e.y[t]-=o;let a=0;if(0===e.x[r])a=e.y[r]>e.y[i]?Math.PI/2:3*Math.PI/2;else if(0===e.y[r])a=e.x[r]>e.x[i]?Math.PI:0;else{const t=e.y[r]/e.x[r];a=t>0?e.x[r]>0?Math.PI-Math.atan(t):2*Math.PI-Math.atan(t):e.x[r]>0?-Math.PI-Math.atan(t):Math.atan(t)}const u=Math.cos(a),l=Math.sin(a);for(let t=0;t<n;t++){const n=e.x[t];e.x[t]=n*u-e.y[t]*l,e.y[t]=n*l+e.y[t]*u}const c=e.x[r];for(let t=0;t<n;t++)e.x[t]-=c;let h=t.indexOf("M V30 BEGIN ATOM");h=t.indexOf("\n",h);let f=h;for(let r=0;r<n;r++)h=t.indexOf("V30",h)+4,h=t.indexOf(" ",h)+1,h=t.indexOf(" ",h)+1,f=t.indexOf(" ",h)+1,f=t.indexOf(" ",f),h=(t=t.slice(0,h)+e.x[r]+" "+e.y[r]+t.slice(f)).indexOf("\n",h)+1;return t}linkV3000(t,e=!0){let n="\n Datagrok macromolecule handler\n\n";n+=" 0 0 0 0 0 0 999 V3000\n",n+="M V30 BEGIN CTAB\n";let r="",i="",s="";const o=[];let a=0,u=0,l=0;for(let e=0;e<t.length;e++){const n=t[e].includes("MODIFICATION")&&0===e;let s=0;n&&(s=this.extractAtomDataV3000(t[e]).atomIndex.length),t[e]=t[e].replaceAll("(-\nM V30 ","(").replaceAll("-\nM V30 ","").replaceAll(" )",")");const c=this.extractAtomsBondsNumbersV3000(t[e]),h=this.extractAtomDataV3000(t[e]);let f=t[e].indexOf("M V30 BEGIN ATOM");f=t[e].indexOf("\n",f);let d=f,p=f;for(let r=0;r<c.natom;r++)if(1!==h.atomIndex[r]||0===e){d=t[e].indexOf("V30",d)+4,p=t[e].indexOf(" ",d);let r=0;n?(r=parseInt(t[e].substring(d,p)),1===r?r=s:r===s&&(r=1),r+=a):r=parseInt(t[e].substring(d,p))+a,t[e]=t[e].slice(0,d)+r+t[e].slice(p),d=t[e].indexOf(" ",d)+1,d=t[e].indexOf(" ",d)+1,p=t[e].indexOf(" ",d);const i=l-h.x[0];let o=Math.round(1e4*(parseFloat(t[e].substring(d,p))+i))/1e4;t[e]=t[e].slice(0,d)+o+t[e].slice(p),d=t[e].indexOf(" ",d)+1,p=t[e].indexOf(" ",d),o=Math.round(1e4*parseFloat(t[e].substring(d,p)))/1e4,t[e]=t[e].slice(0,d)+o+t[e].slice(p),d=t[e].indexOf("\n",d)+1}else d=t[e].indexOf("M V30",d)-1,p=t[e].indexOf("\n",d+1),t[e]=t[e].slice(0,d)+t[e].slice(p);const g=t[e].indexOf("M V30 END ATOM");r+=t[e].substring(f+1,g);let m=t[e].indexOf("M V30 BEGIN BOND");m=t[e].indexOf("\n",m),d=m,p=m;for(let r=0;r<c.nbond;r++){d=t[e].indexOf("V30",d)+4,p=t[e].indexOf(" ",d);const r=parseInt(t[e].substring(d,p))+u;t[e]=t[e].slice(0,d)+r+t[e].slice(p),d=t[e].indexOf(" ",d)+1,d=t[e].indexOf(" ",d)+1,p=t[e].indexOf(" ",d);let i=0;n?(i=parseInt(t[e].substring(d,p)),1===i?i=s:i===s&&(i=1),i+=a):i=parseInt(t[e].substring(d,p))+a,t[e]=t[e].slice(0,d)+i+t[e].slice(p),d=t[e].indexOf(" ",d)+1,p=Math.min(t[e].indexOf("\n",d),t[e].indexOf(" ",d)),i=0,n?(i=parseInt(t[e].substring(d,p)),1===i?i=s:i===s&&(i=1),i+=a):i=parseInt(t[e].substring(d,p))+a,t[e]=t[e].slice(0,d)+i+t[e].slice(p),d=t[e].indexOf("\n",d)+1}const v=t[e].indexOf("M V30 END BOND");i+=t[e].substring(m+1,v);let y=t[e].indexOf("M V30 MDLV30/STEABS ATOMS=(");for(;-1!==y;){y+=28;const n=t[e].indexOf(")",y);t[e].substring(y,n).split(" ").slice(1).forEach((t=>{o.push(parseInt(t)+a)})),y=n,y=t[e].indexOf("M V30 MDLV30/STEABS ATOMS=(",y)}a+=c.natom-1,u+=c.nbond,l+=n?Math.max(...h.x):h.x[c.natom-1]-h.x[0]}const c=Math.ceil(o.length/4);s+="M V30 MDLV30/STEABS ATOMS=("+o.length+" -\n";for(let t=0;t<c;t++){s+="M V30 ";const e=t+1===c?o.length-4*(c-1):4;for(let n=0;n<e;n++)s+=n+1===e?t===c-1?o[4*t+n]+")\n":o[4*t+n]+" -\n":o[4*t+n]+" "}return a++,n+="M V30 COUNTS "+a+" "+u+" 0 0 0\n",n+="M V30 BEGIN ATOM\n",n+=r,n+="M V30 END ATOM\n",n+="M V30 BEGIN BOND\n",n+=i,n+="M V30 END BOND\n",e&&o.length>0?(n+="M V30 BEGIN COLLECTION\n",n+=s,n+="M V30 END COLLECTION\n"):n=n.replace(/ CFG=\d/g," "),n+="M V30 END CTAB\n",n+="M END",n}fix5Prime(t,e,n){const r=e+1,i=t.x[r],s=t.y[r],o=t.x[n]-i,a=t.y[n]-s,u=t.x[e]-i,l=t.y[e]-s,c=u*Math.cos(2*Math.PI/3)-l*Math.sin(2*Math.PI/3),h=u*Math.sin(2*Math.PI/3)+l*Math.cos(2*Math.PI/3),f=u-o,d=l-a,p=c-o,g=h-a;Math.sqrt(g*g+p*p)>=Math.sqrt(d*d+f*f)&&(t.x[e]=c+i,t.y[e]=h+s)}}var Xe=n(670);function Ze(t,e){if(""===t)return"";const n=new ft(t).getFormat();if(!n)return"";let r="";try{r=new Je(t,e,n).convert()}catch(t){const e=De(t);console.error(e)}return r}function tn(t,e,n,r){const i=[t,e,n].filter((t=>""!==t.strand));if(1===i.length)return Ze(i[0].strand,i[0].invert);{const i=Ze(t.strand,t.invert),s=[Ze(e.strand,e.invert),Ze(n.strand,n.invert)].filter((t=>""!==t));return(0,Xe.vS)({senseStrands:[i],antiStrands:s},r)}}const en=["ss","as","as2"];class nn{constructor(){this.onInput=new Ot.Subject,this.onInvalidInput=new Ot.Subject,this.inputBase=Object.fromEntries(en.map((t=>[t,dt.textInput("","",(()=>{this.onInput.next()}))]))),this.useChiralInput=dt.boolInput("Use chiral",!0),this.saveAllStrandsInput=dt.boolInput("Save as one entity",!0),dt.tooltip.bind(this.saveAllStrandsInput.root,"Save SDF with all strands in one molfile"),this.directionInversion=Object.fromEntries(en.map((t=>[t,!1]))),this.moleculeImgDiv=dt.block([]),Vt()(this.moleculeImgDiv).addClass("st-structure-mol-img"),c.debounce(this.onInput,300).subscribe((async()=>{await this.updateMoleculeImg()})),c.debounce(this.onInvalidInput,1e3).subscribe((async()=>{f.shell.warning("Insert Sense strand")}))}async getHtmlDivElement(){const t=this.getTableInput(),e=this.getBoolInputsAndButton();await this.updateMoleculeImg();const n=dt.divH([e,this.moleculeImgDiv]);Vt()(n).addClass("st-structure-bottom");const r=dt.divV([t,n]);return Vt()(r).addClass("st-structure-body"),r}getBoolInputsAndButton(){const t=dt.buttonsInput([dt.bigButton("Save SDF",(()=>{const t=this.getStrandData();!function(t,e,n,r,i){const s=[t.strand,e.strand,n.strand].filter((t=>""!==t));if(0===s.length||1===s.length&&""===t.strand)f.shell.warning("Enter SENSE_STRAND and optionally ANTISENSE_STRAND/AS2 to save SDF");else{let o;if(i)o=tn(t,e,n,r)+"\n$$$$\n";else{const c=Ze(t.strand,t.invert),h=Ze(e.strand,e.invert),d=Ze(n.strand,n.invert);o=c+"\n> <Sequence>\nSense Strand\n$$$$\n",h&&(o+=h+"\n> <Sequence>\nAnti Sense\n$$$$\n"),d&&(o+=d+"\n> <Sequence>\nAnti Sense 2\n$$$$\n")}const a=new Date;function u(t){return t>=10?t.toString():"0"+t.toString()}const l=a.getFullYear()+"-"+u(a.getMonth()+1)+"-"+u(a.getDate())+"_"+u(a.getHours())+"-"+u(a.getMinutes())+"-"+u(a.getSeconds());(0,ut.RG)(`SequenceTranslator-${l}.sdf`,encodeURIComponent(o))}}(t.ss,t.as,t.as2,this.useChiralInput.value,this.saveAllStrandsInput.value)}))]),e=[this.saveAllStrandsInput.root,this.useChiralInput.root,t],n=dt.divV(e);for(const t of e)Vt()(t).addClass("st-structure-bool-button-block");return n}getTableInput(){const t=Object.fromEntries(en.map((t=>[t,new $e(this.inputBase[t],He)]))),e=Object.fromEntries(en.map(((t,e)=>{const n=0===e?"5′ → 3′":"3′ → 5′";return[t,dt.choiceInput(`${t.toUpperCase()} direction`,n,["5′ → 3′","3′ → 5′"])]})));en.forEach(((t,n)=>{e[t].onChanged((()=>{let r="3′ → 5′"===e[t].value;n>0&&(r=!r),this.directionInversion[t]=r,this.onInput.next()}))}));const n=["Sense Strand","Anti Sense","Anti Sense 2"],r=new Map(en.map(((t,e)=>[t,n[e]]))),i=Object.fromEntries(en.map((t=>[t,dt.label(r.get(t))]))),s=Object.fromEntries(en.map((e=>{const n=dt.icons.delete((()=>{t[e].inputBase.value=""})),r=dt.button(n,(()=>{}));return dt.tooltip.bind(r,`Clear ${e.toUpperCase()}`),[e,n]}))),o=en.map((n=>({label:i[n],textInput:t[n].root,clear:s[n],choiceInput:e[n].root}))),a=dt.table(o,(t=>[t.label,t.textInput,t.clear,t.choiceInput]));Vt()(a).css("margin-top","10px");for(const t of en){let n=i[t].parentElement;n.classList.add("st-structure-input-form"),Vt()(n).css("padding-top","3px"),n=e[t].root.parentElement,n.classList.add("st-structure-input-form","st-structure-direction-choice"),n=this.inputBase[t].root.parentElement,n.classList.add("st-structure-text-input-td")}return a}getStrandData(){return Object.fromEntries(en.map((t=>{const e=this.directionInversion[t];return[t,{strand:this.inputBase[t].value.replace(/\s*/g,""),invert:e}]})))}getMolfile(t,e,n){return tn(t,e,n,this.useChiralInput.value)}async updateMoleculeImg(){let t="";try{const e=this.getStrandData();Object.values(e).some((t=>""!==t.strand))&&(t=this.getMolfile(e.ss,e.as,e.as2))}catch(t){const e=De(t);console.error(e)}const e=new Ye(t);await e.drawMolecule(this.moleculeImgDiv,650,150),Vt()(this.moleculeImgDiv).find("canvas").css("float","inherit")}}class rn extends gt{constructor(){super("Oligo Structure"),this.layout=new nn}getContent(){return this.layout.getHtmlDivElement()}}async function sn(t){try{const e={overflowX:"scroll"},n=dt.div([],{style:e}),r=(0,Xe.cx)(t),i=.7*Vt()(window).height(),s=Math.max(...r.x)-Math.min(...r.x),o=Math.max(...r.y)-Math.min(...r.y),a=i/o,u=a*s,l=a*o,c=dt.canvas(u*window.devicePixelRatio,l*window.devicePixelRatio);c.style.width=`${u}px`,c.style.height=`${l}px`,await async function(t,e){await f.functions.call("Chem:canvasMol",{x:0,y:0,w:t.width,h:t.height,canvas:t,molString:e,scaffoldMolString:"",options:{normalizeDepiction:!1,straightenDepiction:!1}})}(c,t),n.appendChild(c),dt.dialog("Molecule").add(n).showModal(!0)}catch(t){const e=De(t);console.error(e)}}class on{static async view(){const t=p.k.getInstance().getTableForViewer();t.name="Monomer Library";const e=f.shell.addTableView(t);e.grid.props.allowEdit=!1,e.grid.onCellDoubleClick.subscribe((async t=>{const e=t.cell.value;"Molecule"===t.tableColumn?.semType&&await sn(e)}))}}var an=n(480),un=n(348),ln=n(67),cn=n(254),hn={};hn.styleTagTransform=te(),hn.setAttributes=Qt(),hn.insert=Yt().bind(null,"head"),hn.domAPI=Wt(),hn.insertStyleElement=Xt(),qt()(cn.A,hn),cn.A&&cn.A.locals&&cn.A.locals;const fn=["Sequence"];class dn{constructor(){this.inputFormats=Object.keys(d.$D).concat(ct.NO.HELM),this.onInput=new Ot.Subject,this.moleculeImgDiv=dt.div([]),this.moleculeImgDiv.className="mol-host",this.moleculeImgDiv.style.border="1px solid var(--grey-2)",this.moleculeImgDiv.style.borderRadius="1px",this.moleculeImgDiv.style.marginTop="12px",this.outputTableDiv=dt.div([]),this.formatChoiceInput=dt.choiceInput("",ct.NO.HELM,this.inputFormats,(async()=>{this.format=this.formatChoiceInput.value,this.updateTable(),await this.updateMolImg()})),this.sequenceInputBase=dt.textInput("","Afcgacsu",(()=>{this.onInput.next()})),this.init(),c.debounce(this.onInput,300).subscribe((async()=>{this.init(),this.formatChoiceInput.value=this.format,this.updateTable(),await this.updateMolImg()})),this.eventBus=vn.getInstance()}async getHtmlElement(){const t=this.constructSingleSequenceControls(),e=this.constructBulkTranslationControls(),n=dt.box(dt.panel([t,e,dt.block([dt.box(this.moleculeImgDiv)])]));return this.formatChoiceInput.value=this.format,this.updateTable(),await this.updateMolImg(),n}constructBulkTranslationControls(){const t=dt.h1("Bulk");dt.tooltip.bind(t,"Bulk translation from table input");const e=new pn(this.eventBus).createUIComponents(),n=dt.choiceInput("Input format",ct.NO.AXOLABS,this.inputFormats,(t=>this.eventBus.selectInputFormat(t))),r=dt.choiceInput("Output format",ln.qP,(0,an.OT)(),(t=>this.eventBus.selectOutputFormat(t))),i=this.createConvertBulkButton(),s=dt.div([...e,n,r,i],"ui-form");return dt.block25([t,s])}createConvertBulkButton(){const t=dt.bigButton("Convert",(()=>this.processConvertBulkButtonClick()));return dt.tooltip.bind(t,"Convert sequences from table input"),$(t).css({float:"right","margin-top":"20px"}),t}processConvertBulkButtonClick(){const t=this.eventBus.getSelectedTable();if(!t)return void f.shell.warning("No table selected");const e=this.eventBus.getSelectedInputFormat(),n=this.eventBus.getSelectedOutputFormat(),r=this.eventBus.getSelectedColumn("Sequence");if(!r)return void f.shell.warning("No sequence column selected");const i=`${r.name} (${n})`,s=c.Column.fromList(c.TYPE.STRING,i,r.toList().map((t=>(0,an.C6)(t,e,n))));if(n===ln.qP||n===ct.NO.HELM){s.semType=c.SEMTYPE.MACROMOLECULE;const t=n==ln.qP?T.FASTA:T.HELM;s.setTag(c.TAGS.UNITS,t);const e=rt.forColumn(s);(n==ln.qP?rt.setUnitsToFastaColumn:rt.setUnitsToHelmColumn)(e)}t.columns.add(s),f.data.detectSemanticTypes(t),f.shell.v=f.shell.getTableView(t.name)}constructSingleSequenceControls(){const t=new $e(this.sequenceInputBase,He),e=dt.button("Get SDF",(()=>{this.saveMolfile()}),"Save structure as SDF"),n=dt.button("Copy SMILES",(()=>{this.copySmiles()}),"Copy SMILES for the sequence"),r=dt.div([this.formatChoiceInput]),i=dt.button(dt.icons.delete((()=>{t.inputBase.value=""})),(()=>{}));dt.tooltip.bind(i,"Clear input");const s={format:r,textInput:t.root,clearBtn:i},o=dt.table([s],(t=>[t.format,t.textInput,t.clearBtn]));o.classList.add("st-translator-input-table");const a=dt.block([this.outputTableDiv,e,n]);return dt.block75([dt.h1("Single sequence"),o,a])}saveMolfile(){const t=new Je(this.sequence,!1,this.formatChoiceInput.value).convert()+"\n$$$$";(0,ut.RG)(this.sequence+".sdf",encodeURIComponent(t))}copySmiles(){const t=c.chem.convert(this.molfile,c.chem.Notation.MolBlock,c.chem.Notation.Smiles);navigator.clipboard.writeText(t).then((()=>f.shell.info(ln.n_)))}updateTable(){this.outputTableDiv.innerHTML="";const t=this.format?new ht.q(this.sequence).getInvalidCodeIndex(this.format):0,e=(0,an.bD)(this.sequence,t,this.format),n=[];for(const t of Object.keys(e)){const r="indexOfFirstInvalidChar"in e?dt.divH([]):dt.link(e[t],(()=>navigator.clipboard.writeText(e[t]).then((()=>f.shell.info(ln.n_)))),ln.U_,"");n.push({format:t,sequence:r})}const r=dt.table(n,(t=>[t.format,t.sequence]),["FORMAT","SEQUENCE"]);this.outputTableDiv.append(r),this.outputTableDiv.classList.add("st-translator-output-table")}async updateMolImg(){const t=new Ye(this.molfile);await t.drawMolecule(this.moleculeImgDiv,500,170)}init(){this.sequence=this.getFormattedSequence(),this.format=new ft(this.sequence).getFormat(),this.molfile=this.getMolfile()}getFormattedSequence(){return this.sequenceInputBase.value.replace(/\s/g,"")}getMolfile(){if(!this.format)return"";if(this.format===ct.NO.HELM){const t=new un.y(this.sequence,this.format).convertTo(ct.NO.AXOLABS);return new Je(t,!1,ct.NO.AXOLABS).convert()}return new Je(this.sequence,!1,this.format).convert()}}class pn{constructor(t){this.tableInputManager=new gn(t),this.columnInputManager=new mn(t)}createUIComponents(){return[this.tableInputManager.getTableInputContainer(),this.columnInputManager.getColumnControlsContainer()]}}class gn{constructor(t){this.eventBus=t,this.availableTables=[],this.tableInputContainer=dt.div([]),this.subscribeToTableEvents(),this.refreshTableInput()}getTableInputContainer(){return this.tableInputContainer}subscribeToTableEvents(){f.events.onTableAdded.subscribe((t=>this.handleTableAdded(t))),f.events.onTableRemoved.subscribe((t=>this.handleTableRemoved(t))),this.eventBus.tableSelected$.subscribe((()=>this.handleTableChoice()))}getTableFromEventData(t){return t.args.dataFrame}handleTableAdded(t){const e=this.getTableFromEventData(t);this.availableTables.some((t=>t.name===e.name))||(this.availableTables.push(e),this.eventBus.selectTable(e),this.refreshTableInput())}handleTableRemoved(t){const e=this.getTableFromEventData(t);this.availableTables=this.availableTables.filter((t=>t.name!==e.name));const n=this.availableTables[0];this.eventBus.selectTable(n||null),this.refreshTableInput()}refreshTableInput(){const t=this.createTableInput();$(this.tableInputContainer).empty(),this.tableInputContainer.append(t.root)}createTableInput(){const t=this.eventBus.getSelectedTable();return dt.tableInput("Table",t,this.availableTables,(t=>{null!==t&&t instanceof c.DataFrame&&this.eventBus.selectTable(t)}))}handleTableChoice(){const t=this.eventBus.getSelectedTable();t&&(this.isTableDisplayed(t)||this.displayTable(t))}isTableDisplayed(t){return f.shell.tableNames.includes(t.name)}displayTable(t){const e=f.shell.v;f.shell.addTableView(t),f.shell.v=e}}class mn{constructor(t){this.eventBus=t,this.columnControlsContainer=dt.div([]),this.eventBus.tableSelected$.subscribe((()=>this.handleTableChoice())),this.refreshColumnControls()}getColumnControlsContainer(){return this.columnControlsContainer}handleTableChoice(){this.refreshColumnControls()}refreshColumnControls(){const t=this.createColumnInputs();$(this.columnControlsContainer).empty();const e=t.map((t=>t.root));this.columnControlsContainer.append(...e)}createColumnInputs(){const t=this.eventBus.getSelectedTable(),e=null!==t?t.columns.names().sort(((t,e)=>t.localeCompare(e))):[];return fn.map((n=>this.createColumnInput(n,e,t)))}createColumnInput(t,e,n){const r=t.toLowerCase(),i=e.find((t=>t.toLowerCase().includes(r)))||e[0];return this.selectColumnIfTableNotNull(n,i,t),dt.choiceInput(`${t}`,i,e,(e=>this.selectColumnIfTableNotNull(n,e,t)))}selectColumnIfTableNotNull(t,e,n){if(null!==t){const r=t.getCol(e);this.eventBus.selectColumn(n,r)}}}class vn{constructor(){this._tableSelection$=new Ot.BehaviorSubject(null),this._columnSelection=Object.fromEntries(fn.map((t=>[t,new Ot.BehaviorSubject(null)]))),this._inputFormatSelection$=new Ot.BehaviorSubject(ct.NO.AXOLABS),this._outputFormatSelection$=new Ot.BehaviorSubject(ln.qP)}static getInstance(){return void 0===vn._instance&&(vn._instance=new vn),vn._instance}get tableSelected$(){return this._tableSelection$.asObservable()}getSelectedTable(){return this._tableSelection$.getValue()}selectTable(t){this._tableSelection$.next(t)}selectColumn(t,e){this._columnSelection[t].next(e)}getSelectedColumn(t){return this._columnSelection[t].getValue()}getSelectedInputFormat(){return this._inputFormatSelection$.getValue()}selectInputFormat(t){this._inputFormatSelection$.next(t)}selectOutputFormat(t){this._outputFormatSelection$.next(t)}getSelectedOutputFormat(){return this._outputFormatSelection$.getValue()}}class yn extends gt{constructor(){super("Oligo Translator"),this.layout=new dn;const t=dt.iconFA("book",on.view,"View monomer library");this.topPanel=[t],this.view.setRibbonPanels([this.topPanel])}getContent(){return this.layout.getHtmlElement()}}class bn extends gt{constructor(t,e){super(t),this.content=e}getContent(){return Promise.resolve(this.content)}}class An extends pt{constructor(t){super("Oligo Toolkit"),this.externalViewFactories=t;const e=this.getViewFactories();this.multiView=new c.MultiView({viewFactories:e})}getViewFactories(){function t(t){const e=c.View.create(),n=new t(e);return n.initView().catch((e=>console.error(`Failed to initialize ${t.name}: ${e}`))),()=>n.getView()}let e={TRANSLATOR:t(yn),PATTERN:t(Be),STRUCTURE:t(rn)};return this.externalViewFactories&&(e=Object.assign({},e,this.externalViewFactories)),e}getCurrentPanePath(){let t=this.multiView.tabs.currentPane.name;return t=t.charAt(0).toUpperCase()+t.substring(1).toLowerCase(),`/apps/${Xn.name}/OligoToolkit/${t}`}setUrl(){this.multiView.path=this.getCurrentPanePath()}async constructView(){return this.multiView.tabs.onTabChanged.subscribe((()=>this.setUrl())),this.setUrl(),this.multiView}}var wn=n(415);function Cn(){const t=dt.textInput("","");return{coloredInput:new $e(t,He),codes:d.QC}}var xn=function(t,e,n,r){return new(n||(n=Promise))((function(i,s){function o(t){try{u(r.next(t))}catch(t){s(t)}}function a(t){try{u(r.throw(t))}catch(t){s(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(o,a)}u((r=r.apply(t,e||[])).next())}))};class _n{constructor(t,e,n=".csv"){this.path=t,this.userStorageName=e,this.ext=n,"/"!==this.path[this.path.length-1]&&(this.path+="/"),"."!==this.ext[0]&&(this.ext="."+this.ext)}getUserSettings(){return xn(this,void 0,void 0,(function*(){if(this.settings)return this.settings;const t=yield f.dapi.userDataStorage.getValue(this.userStorageName,"Settings",!0),e=t?JSON.parse(t):{excluded:[],explicit:[]};return e.explicit=e.explicit instanceof Array?e.explicit:[],e.excluded=e.excluded instanceof Array?e.excluded:[],this.settings=e}))}setUserSettings(t){return xn(this,void 0,void 0,(function*(){this.settings=t,yield f.dapi.userDataStorage.postValue(this.userStorageName,"Settings",JSON.stringify(t),!0)}))}getAllAvailable(){return xn(this,void 0,void 0,(function*(){return(yield f.dapi.files.list(this.path)).map((t=>t.fullPath.replace(`${this.path}`,"")))}))}getActive(){return xn(this,void 0,void 0,(function*(){const t=yield this.getUserSettings();return t.explicit.length>0?t.explicit:(yield this.getAllAvailable()).filter((e=>!t.excluded.includes(e)))}))}createInput(t,e){const n=dt.boolInput(t,e,(e=>this.updateSelectionStatus(t,e)));return n.addOptions(dt.button(dt.iconFA("trash"),(()=>{dt.dialog({title:"Warning"}).add(dt.divText(`Delete file '${t}'?`)).onOK((()=>{n.root.remove(),this.availableRemove(t)})).show()}),`Delete ${t}`)),n}getInputs(){return xn(this,void 0,void 0,(function*(){const t=yield this.getAllAvailable(),e=yield this.getActive(),n=new Array(t.length);for(let r=0;r<t.length;r++){const i=e.includes(t[r]);n[r]=this.createInput(t[r],i)}return n}))}getForm(){return xn(this,void 0,void 0,(function*(){const t=yield this.getInputs(),e=dt.divV(t);return dt.divV([e,dt.button("ADD",(()=>xn(this,void 0,void 0,(function*(){let t="";t=yield this.getNewAvailable(),""!==t&&e.append(this.createInput(t,!0).root)}))))])}))}updateSelectionStatus(t,e){return xn(this,void 0,void 0,(function*(){const n=yield this.getUserSettings();if(!n.excluded.includes(t)!==e){if(e){const e=n.excluded.indexOf(t);e>-1&&n.excluded.splice(e,1)}else n.excluded.push(t);this.setUserSettings(n)}}))}availableRemove(t){return xn(this,void 0,void 0,(function*(){const e=yield this.getUserSettings(),n=e.excluded.indexOf(t);n>-1&&e.excluded.splice(n,1),yield Promise.all([this.setUserSettings(e),f.dapi.files.delete(this.path+t)]),f.shell.info(`File ${t} successfully deleted`)}))}getNewAvailable(){return xn(this,void 0,void 0,(function*(){return new Promise(((t,e)=>{c.Utils.openFile({accept:this.ext,open:e=>xn(this,void 0,void 0,(function*(){const n=e.name,r=yield e.arrayBuffer();yield f.dapi.files.write(this.path+`${e.name}`,new Uint8Array(r)),t(n)}))})}))}))}}const Sn="System:AppData/Bio/polytool-rules/",En="Polytool",Tn="link",In="fragmentDuplication",Nn="differentFragments";class On extends _n{constructor(t,e,n){super(t,e,n)}}class Mn{constructor(t,e){this.linkages=e,this.monomers=t}static fromHelm(t){const e=t.split("$"),n=e[0].split("|"),r=e[1].split("|"),i=new Array(n.length),s=[];for(let t=0;t<n.length;t++){const e=n[t].indexOf("{"),r=n[t].indexOf("}");i[t]=n[t].slice(e+1,r).split(".")}for(let t=0;t<r.length;t++)if(""!==r[t]&&"V2.0"!==r[t]){const e=r[t].split(","),n=e[0].replace("PEPTIDE","")-1,i=e[1].replace("PEPTIDE","")-1,o=e[2].split("-"),a=o[0].split(":"),u=o[1].split(":");s.push({fChain:n,sChain:i,fMonomer:a[0],sMonomer:u[0],fR:a[1].replace("R",""),sR:u[1].replace("R","")})}return new Mn(i,s)}static fromNotation(t,e){const n=e.heterodimerCode,r=e.homodimerCode,i=[],s=[],o=null!==n?t.split(`(${e.heterodimerCode})`):"";null!==n&&o.length>1?(s.push({fChain:0,sChain:1,fMonomer:1,sMonomer:1,fR:1,sR:1}),i.push(o[1].replaceAll("{","").replaceAll("}","")),i.push(o[2].replaceAll("{","").replaceAll("}",""))):i.push(t);for(let t=0;t<i.length;t++)if(null!==r&&i[t].includes(`(${r})`)){const e=i.length;s.push({fChain:t,sChain:e,fMonomer:1,sMonomer:1,fR:1,sR:1});const n=i[t].replace(`(${r})`,""),o=n.indexOf("{"),a=n.slice(0,o),u=n.replace(a,"").replaceAll("{","").replaceAll("}","");i[t]=a+u,i.push(u)}const a=new Array(i.length);for(let t=0;t<i.length;t++){const n=i[t].split("-"),r=this.getLinkedPositions(n,e.linkRules),[o,u,l,c,h]=this.getAllCycles(e.linkRules,n,r),f=new Array(o.length);for(let t=0;t<o.length;t++)f[t]=`[${o[t]}]`;for(let e=0;e<u.length;e++)s.push({fChain:t,sChain:t,fMonomer:u[e],sMonomer:l[e],fR:c[e],sR:h[e]});a[t]=f}return new Mn(a,s)}getHelmChanged(t,e){let n=0,r=0,i=0;t:for(let e=0;e<this.monomers.length;e++)for(let s=0;s<this.monomers[e].length;s++){if(n==t){r=e,i=s;break t}n++}const s=this.monomers[r][i];this.monomers[r][i]=`[${e}]`;const o=this.getHelm();return this.monomers[r][i]=s,o}getHelm(){let t="";for(let e=0;e<this.monomers.length;e++){e>0&&(t+="|"),t+=`PEPTIDE${e+1}{`;for(let n=0;n<this.monomers[e].length;n++)n>0&&(t+="."),t+=this.monomers[e][n];t+="}"}t+="$";for(let e=0;e<this.linkages.length;e++)e>0&&(t+="|"),t+=`PEPTIDE${this.linkages[e].fChain+1},PEPTIDE${this.linkages[e].sChain+1},`,t+=`${this.linkages[e].fMonomer}:R${this.linkages[e].fR}-`,t+=`${this.linkages[e].sMonomer}:R${this.linkages[e].sR}`;return t+="$$$",t}static getLinkedPositions(t,e){const n=new Array(e.length);for(let r=0;r<e.length;r++){let i=!1,s=!1,o=!1,a=-1,u=-1;const l=`(${e[r].code})`;for(let n=0;n<t.length;n++)if(t[n].includes(l)){if(i){if(o&&t[n]==e[r].secondMonomer+l){s=!0,u=n;break}if(o||t[n]!=e[r].firstMonomer+l)continue;s=!0,u=n;break}if(t[n]==e[r].firstMonomer+l)i=!0,o=!0,a=n;else{if(t[n]!=e[r].secondMonomer+l)continue;i=!0,o=!1,a=n}}n[r]=i&&s?o?[a,u]:[u,a]:[-1,-1]}return n}static getAllCycles(t,e,n){const r=[],i=[],s=[],o=[],a=t.length;for(let u=0;u<a;u++){if(-1==n[u][0])continue;const a=e[n[u][0]],l=e[n[u][1]];e[n[u][0]]=e[n[u][0]].replace(a,t[u].firstSubstitution),e[n[u][1]]=e[n[u][1]].replace(l,t[u].secondSubstitution),r.push(n[u][0]+1),i.push(n[u][1]+1),s.push(t[u].firstLinkingGroup),o.push(t[u].secondLinkingGroup)}return[e,r,i,s,o]}}const Ln="System:AppData/Bio/monomer-libraries/",Bn="PEPTIDE1{[R].[F].[T].[G].[H].[F].[G].[A].[A].[Y].[P].[E].[NH2]}$$$$";class Pn{constructor(t,e){this.helmString=Bn,this.helmHelper=t,this.editor=e,this.webEditorHost=null,this.webEditorApp=null,[].push((0,Ot.fromEvent)(e.host,"click").subscribe((()=>{this.webEditorHost=dt.div(),this.webEditorApp=t.createWebEditorApp(this.webEditorHost,this.getHelmString()),dt.dialog({showHeader:!1,showFooter:!0}).add(this.webEditorHost).onOK((()=>{try{const t=this.webEditorApp.canvas.getHelm(!0).replace(/<\/span>/g,"").replace(/<span style='background:#bbf;'>/g,"");e.editor.setHelm(t),this.helmString=t,this.helmSelection=[];const n=this.webEditorApp?.canvas.helm.jsd.m.atoms;for(let t=0;t<n.length;t++)n[t].selected&&this.helmSelection.push(t)}catch(t){}finally{Vt()(this.webEditorHost).empty(),this.webEditorHost=null,this.webEditorApp=null}})).onCancel((()=>{Vt()(this.webEditorHost).empty(),this.webEditorHost=null,this.webEditorApp=null})).show({modal:!0,fullScreen:!0})})))}static async init(){const t=await async function(){const t="Helm",e=c.Func.find({package:t,name:"getHelmHelper"});if(0===e.length)throw new Error(`Package '${t}' must be installed for HelmHelper.`);return(await e[0].prepare().call()).getOutputParamValue()}(),e=t.createHelmWebEditor();return e.host.style.width="200px",e.host.style.height="100px",e.host.style.paddingLeft="40px",e.editor.setHelm(Bn),new Pn(t,e)}getHelmString(){return this.helmString}getHelmSelections(){return this.helmSelection}getDiv(){const t=dt.divText("Macromolecule",{style:{paddingTop:"43px",color:"var(--grey-4)"}});return dt.divH([t,this.editor.host],{style:{paddingLeft:"48px"}})}}const Rn="No dataframe with macromolecule columns open",Dn="No marcomolecule column chosen!",Fn="Get HELM",Un="Add HELM column",kn="Chirality engine",$n="Poly Tool Conversion",Hn="Poly Tool Enumeration",Vn="Rules used";async function jn(){const t=f.shell.t.columns.bySemTypeAll(c.SEMTYPE.MACROMOLECULE);if(!t)throw new Error(Rn);const e=dt.columnInput("Column",f.shell.t,t[0],null,{filter:t=>t.semType===c.SEMTYPE.MACROMOLECULE}),n=dt.boolInput(Fn,!0);dt.tooltip.bind(n.root,Un);const r=dt.boolInput(kn,!1),i=new On(Sn,En,".json"),s=dt.inlineText([Vn]);dt.tooltip.bind(s,"Add or specify rules to use");const o=await i.getForm(),a=dt.div([e,n,r,s,o]);return dt.dialog($n).add(a).onOK((async()=>{const t=c.TaskBarProgressIndicator.create("PolyTool converting");try{const t=e.value;if(!t)return void f.shell.warning(Dn);const s=await i.getActive();!async function(t,e,n,r){const i=t.dataFrame,s=await async function(t){const e=new c.FileSource(Sn),n=[],r={homodimerCode:null,heterodimerCode:null,linkRules:n};for(let i=0;i<t.length;i++){const s=await e.readAsText(t[i].replace(Sn,"")),o=JSON.parse(s);for(let t=0;t<o.length;t++)if(void 0!==o[t].type&&void 0!==o[t].code)switch(o[t].type){case Tn:{const e=o[t].monomericSubstitution;e.code=o[t].code,n.push(e);break}case In:r.homodimerCode&&f.shell.warning("PolyTool: homodimer code is duplicated in rules."),r.homodimerCode=o[t].code;break;case Nn:r.heterodimerCode&&f.shell.warning("PolyTool: heterodimer code is duplicated in rules."),r.heterodimerCode=o[t].code;break;default:f.shell.warning(`PolyTool: Unexpected type - '${o[t]}'.`)}else f.shell.warning("Polytool: rules contain invalid rule")}return r}(n),o=function(t,e){const n=new Array(t.length);for(let r=0;r<t.length;r++){const i=Mn.fromNotation(t[r],e);n[r]=i.getHelm()}return n}(t.toList(),s),a=i.columns.getUnusedName("transformed("+t.name+")"),u=c.Column.fromList("string",a,o);var l;(l=u).setTag("quality",c.SEMTYPE.MACROMOLECULE),l.setTag("aligned","SEQ"),l.setTag("alphabet",I.PT),u.setTag("units",T.HELM);const h=await f.functions.call("Bio:getMolFromHelm",{df:i,helmCol:u,chiralityEngine:r});h.name=i.columns.getUnusedName("molfile("+t.name+")"),h.semType=c.SEMTYPE.MOLECULE,e&&(u.setTag("cell.renderer","helm"),i.columns.add(u)),i.columns.add(h,!0),await f.data.detectSemanticTypes(i)}(t,n.value,s,r.value)}catch(t){!function(t){const e=t instanceof Error?t.message:t.toString(),n=t instanceof Error?t.stack:void 0;f.shell.error(e),Xn.logger.error(t.message,void 0,n)}(t)}finally{t.close()}}))}async function qn(){const t=await Pn.init(),e=await async function(){const t=await f.functions.call("Bio:getMonomerLibHelper",{});return(await t.getFileManager()).getValidLibraryPaths()}(),n=dt.choiceInput("Library to use",null,e);n.input.setAttribute("style","min-width:250px!important;");const r=dt.div([t.getDiv(),n.root]);return dt.dialog(Hn).add(r).onOK((async()=>{try{const e=t.getHelmString(),r=t.getHelmSelections();if(void 0===e||""===e)f.shell.warning("PolyTool: no molecule was provided");else if(void 0===r||r.length<1)f.shell.warning("PolyTool: no selection was provided");else{const t=await async function(t,e,n){const r=await async function(t){const e=await f.functions.call("Bio:getMonomerLibHelper",{});return(await e.readLibrary(Ln,t)).getMonomerSymbolsByType("PEPTIDE")}(n),i=Mn.fromHelm(t),s=e.length*r.length,o=new Array(s);for(let t=0;t<e.length;t++)for(let n=0;n<r.length;n++)o[t*r.length+n]=i.getHelmChanged(e[t],r[n]);return o}(e,r,n.value),i=c.Column.fromStrings("Enumerated",t),s=c.DataFrame.fromColumns([i]);f.shell.addTableView(s)}}catch(t){}})).onCancel((()=>{}))}const Gn={symbol:"Short Name",name:"Medium Name",smiles:"SMILES"},Wn=[{capGroupSmiles:"[*:1][H]",alternateId:"R1-H",capGroupName:"H",label:"R1"},{capGroupSmiles:"O[*:2]",alternateId:"R2-OH",capGroupName:"OH",label:"R2"},{capGroupSmiles:"[*:3][H]",alternateId:"R3-H",capGroupName:"H",label:"R3"}];class zn{constructor(t){this.rawLib=t}isValid(){return this.rawLib.every((t=>"object"==typeof t&&Object.values(Gn).every((e=>e in t&&"string"==typeof t[e]))))}getJsonMonomerLib(){const t=[];return this.rawLib.forEach((e=>{const n=this.prepareMonomer(e);t.push(n)})),t}prepareMonomer(t){const e={...w};Object.entries(Gn).forEach((([n,r])=>{const i=t[r];e[n]=i}));let n="smiles";const r=t[Gn[n]],i=new Yn(r),s=i.getCappedSmiles();return e[n]=s,n="rgroups",e[n]=Kn.getRGroups(i.getNumberOfRGroups()),n="molfile",e[n]=new Qn(i.getSmilesWithRGroups()).getMolfile(),e}}class Yn{constructor(t){let e=0;this.smilesWithRGroups=t.replace(/\[R(\d+)\]/g,((t,n)=>(++e,`[${n}*]`))),this.numberOfRGroups=e}getSmilesWithRGroups(){return this.smilesWithRGroups}getCappedSmiles(){return this.capRGroups()}getNumberOfRGroups(){return this.numberOfRGroups}capRGroups(){let t=this.smilesWithRGroups.replace("[1*]","[H:1]");return t=t.replace("[2*]","[OH:2]"),t.replace("[3*]","[H:3]")}}class Kn{constructor(){}static getRGroups(t){return Wn.slice(0,t)}}class Qn{constructor(t){this.smilesWithRGroups=t}getMolfile(){let t=c.chem.convert(this.smilesWithRGroups,c.chem.Notation.Smiles,c.chem.Notation.MolBlock);return t=this.restoreRGPLine(t),t=this.fixRGroupSymbols(t),t}restoreRGPLine(t){return t.replace("M ISO","M RGP")}fixRGroupSymbols(t){return t.replace(/\bR\b/g,"R#")}}class Jn{constructor(t,e){this.fileName=t,this.fileContent=e,this.validateFileType();const n=c.DataFrame.fromCsv(this.fileContent),r=this.toJson(n);this.polyToolMonomerLib=new zn(r),this.validateContent()}async getJson(){return this.polyToolMonomerLib.getJsonMonomerLib()}toJson(t){return Array.from({length:t.rowCount},((e,n)=>t.columns.names().reduce(((e,r)=>(e[r]=t.get(r,n),e)),{})))}validateFileType(){if(!this.fileName.endsWith(".csv"))throw new Error(`File ${this.fileName} is not an CSV file`)}validateContent(){if(!this.polyToolMonomerLib.isValid())throw new Error("Invalid format of CSV monomer lib")}}const Xn=new lt;async function Zn(){await rr();const t=await async function(){const t={"Mermadesynthesis:merMadeSynthesis":{tabName:"SYNTHESIZE",parameters:Cn()}},e={};for(const[n,r]of Object.entries(t)){let t;try{t=await f.functions.call(n,r.parameters);const i=new bn(r.tabName,t);i.initView(),e[r.tabName]=()=>i.getView()}catch(t){console.warn(`Plugin ${n} not loaded, reason:`,t);continue}}return e}();if(!t)throw new Error("External app view factories not loaded");const e=new An(t);return await e.getAppView()}async function tr(){return await fr("Oligo Translator")}async function er(){return await fr("Oligo Pattern")}async function nr(){return await fr("Oligo Structure")}async function rr(){await(0,d.hH)(),await Xn.initMonomerLib()}function ir(){const t=p.k.getInstance().getCodesToWeightsMap();return Object.fromEntries(t)}function sr(t){const e=new ht.q(t),n=new ft(t).getFormat();return null!==n&&e.isValidSequence(n)}function or(t,e){return new Je(t,e,"GCRS").convert()}function ar(t){return(0,Xe.vS)(t,!0)}async function ur(){await async function(){await(0,ut.TX)((async()=>{const t=await tr();f.shell.addView(t)}))}()}async function lr(){await async function(){await(0,ut.TX)((async()=>{const t=await er();f.shell.addView(t)}))}()}async function cr(){await async function(){await(0,ut.TX)((async()=>{const t=await nr();f.shell.addView(t),["Afcgacsu","Afcgacsu","Afcgacsu"].forEach((async(t,e)=>{await async function(t,e){await(0,wn.cb)(500);const n=document.querySelectorAll(".colored-text-input > textarea")[t];n.value=e;const r=new Event("input");n.dispatchEvent(r)}(e,t)}))}))}()}async function hr(t,e,n){return await rr(),new un.y(t,e).convertTo(n)}async function fr(t){await rr();const e=function(t){switch(t){case"Oligo Translator":return new yn;case"Oligo Pattern":return new Be;case"Oligo Structure":return new rn;default:throw new Error(`Unknown app name: ${t}`)}}(t);return await e.getAppView()}async function dr(){let t;try{t=await jn(),t.show()}catch(t){f.shell.warning("To run PolyTool Conversion, open a dataframe with macromolecules")}}async function pr(){let t;try{t=await qn(),t.show()}catch(t){f.shell.warning("To run PolyTool Enumeration, sketch the macromolecule and select monomers to vary")}}async function gr(t,e){var n;(function(t){t.setTag("quality",c.SEMTYPE.MACROMOLECULE),t.setTag("aligned","SEQ"),t.setTag("alphabet",I.PT)})(n=e),n.setTag("units",T.SEPARATOR),n.setTag("separator","-"),await f.data.detectSemanticTypes(t)}async function mr(t){const e=await t.readAsString(),n=new Jn(t.fileName,e),r=await n.getJson(),i=t.fileName.replace(/\.csv$/,".json"),s=JSON.stringify(r,null,2);h().Utils.download(i,s)}},82:t=>{"use strict";t.exports=DG},328:t=>{"use strict";t.exports=grok}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var s=e[r]={id:r,loaded:!1,exports:{}};return t[r].call(s.exports,s,s.exports,n),s.loaded=!0,s.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),n.nc=void 0;var r=n(470);sequencetranslator=r})();
|
|
2
|
+
var sequencetranslator;(()=>{var t={74:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var r=n(354),i=n.n(r),s=n(314),o=n.n(s)()(i());o.push([t.id,".colored-text-input > textarea {\n width: 100%;\n -webkit-text-fill-color: transparent;\n background-color: transparent;\n position: relative;\n z-index: 1;\n resize: none;\n height: 22px; /* Fine tuned value to avoid \"jumping\" of the textarea upon autoresize */\n}\n\n.colored-text-input > div {\n /* The values here are fine tuned to those of the ui.input textarea in order\n * to achieve precise overlap */\n overflow: auto;\n position: absolute;\n pointer-events: none;\n cursor: text;\n z-index: 0;\n max-width: 100%;\n padding: 2px;\n line-height: normal;\n font-family: 'Roboto Mono', 'Roboto Mono Local', monospace;\n font-size: 12px;\n color: transparent;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n","",{version:3,sources:["webpack://./src/apps/common/view/components/colored-input/style.css"],names:[],mappings:"AAAA;EACE,WAAW;EACX,oCAAoC;EACpC,6BAA6B;EAC7B,kBAAkB;EAClB,UAAU;EACV,YAAY;EACZ,YAAY,EAAE,wEAAwE;AACxF;;AAEA;EACE;iCAC+B;EAC/B,cAAc;EACd,kBAAkB;EAClB,oBAAoB;EACpB,YAAY;EACZ,UAAU;EACV,eAAe;EACf,YAAY;EACZ,mBAAmB;EACnB,0DAA0D;EAC1D,eAAe;EACf,kBAAkB;EAClB,qBAAqB;EACrB,qBAAqB;AACvB",sourcesContent:[".colored-text-input > textarea {\n width: 100%;\n -webkit-text-fill-color: transparent;\n background-color: transparent;\n position: relative;\n z-index: 1;\n resize: none;\n height: 22px; /* Fine tuned value to avoid \"jumping\" of the textarea upon autoresize */\n}\n\n.colored-text-input > div {\n /* The values here are fine tuned to those of the ui.input textarea in order\n * to achieve precise overlap */\n overflow: auto;\n position: absolute;\n pointer-events: none;\n cursor: text;\n z-index: 0;\n max-width: 100%;\n padding: 2px;\n line-height: normal;\n font-family: 'Roboto Mono', 'Roboto Mono Local', monospace;\n font-size: 12px;\n color: transparent;\n white-space: pre-wrap;\n word-wrap: break-word;\n}\n"],sourceRoot:""}]);const a=o},252:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var r=n(354),i=n.n(r),s=n(314),o=n.n(s)()(i());o.push([t.id,"/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-pattern-text-input > textarea {\n resize: none;\n}\n","",{version:3,sources:["webpack://./src/apps/pattern/view/style.css"],names:[],mappings:"AAAA,gGAAgG;;AAEhG;EACE,YAAY;AACd",sourcesContent:["/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-pattern-text-input > textarea {\n resize: none;\n}\n"],sourceRoot:""}]);const a=o},507:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var r=n(354),i=n.n(r),s=n(314),o=n.n(s)()(i());o.push([t.id,"/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-structure-body {\n padding-right: 20px;\n}\n\n.st-structure-input-form {\n text-align: right;\n vertical-align: top;\n min-width: 95px;\n}\n\n.st-structure-direction-choice label {\n min-width: 100px;\n float: right;\n}\n\n.st-structure-direction-choice div {\n justify-content: right;\n}\n\n.st-structure-text-input-td { /* Style for td containing textarea */\n width: 100%;\n}\n\n.st-structure-mol-img {\n margin-right: 30px;\n float: right;\n}\n\n.st-structure-bool-button-block {\n justify-content: right;\n margin-bottom: 10px;\n}\n\n.st-structure-bottom {\n flex-direction: row-reverse;\n padding-top: 20px;\n}\n","",{version:3,sources:["webpack://./src/apps/structure/view/style.css"],names:[],mappings:"AAAA,gGAAgG;;AAEhG;EACE,mBAAmB;AACrB;;AAEA;EACE,iBAAiB;EACjB,mBAAmB;EACnB,eAAe;AACjB;;AAEA;EACE,gBAAgB;EAChB,YAAY;AACd;;AAEA;EACE,sBAAsB;AACxB;;AAEA,8BAA8B,qCAAqC;EACjE,WAAW;AACb;;AAEA;EACE,kBAAkB;EAClB,YAAY;AACd;;AAEA;EACE,sBAAsB;EACtB,mBAAmB;AACrB;;AAEA;EACE,2BAA2B;EAC3B,iBAAiB;AACnB",sourcesContent:["/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n\n.st-structure-body {\n padding-right: 20px;\n}\n\n.st-structure-input-form {\n text-align: right;\n vertical-align: top;\n min-width: 95px;\n}\n\n.st-structure-direction-choice label {\n min-width: 100px;\n float: right;\n}\n\n.st-structure-direction-choice div {\n justify-content: right;\n}\n\n.st-structure-text-input-td { /* Style for td containing textarea */\n width: 100%;\n}\n\n.st-structure-mol-img {\n margin-right: 30px;\n float: right;\n}\n\n.st-structure-bool-button-block {\n justify-content: right;\n margin-bottom: 10px;\n}\n\n.st-structure-bottom {\n flex-direction: row-reverse;\n padding-top: 20px;\n}\n"],sourceRoot:""}]);const a=o},254:(t,e,n)=>{"use strict";n.d(e,{A:()=>a});var r=n(354),i=n.n(r),s=n(314),o=n.n(s)()(i());o.push([t.id,"/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n.st-translator-input-table {\n /* width: 100%; */\n margin-right: 20px;\n}\n\n.st-translator-input-table td:has(textarea) {\n width: 100%;\n}\n\n.st-translator-input-table td:has(select) {\n min-width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table {\n margin-top: 20px;\n margin-right: 20px;\n margin-bottom: 10px;\n}\n\n.st-translator-output-table table {\n width: 100%;\n table-layout: fixed;\n}\n\n/* .st-translator-output-table table tbody tr td { */\n/* max-width: 20%; */\n/* } */\n\n.st-translator-output-table td {\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.st-translator-output-table tr:nth-child(even) {\n background-color: var(--grey-1);\n}\n\n.st-translator-output-table td:nth-child(odd) {\n width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table td a {\n overflow-wrap: break-word;\n}\n","",{version:3,sources:["webpack://./src/apps/translator/view/style.css"],names:[],mappings:"AAAA,gGAAgG;AAChG;EACE,iBAAiB;EACjB,kBAAkB;AACpB;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,gBAAgB;EAChB,mBAAmB;AACrB;;AAEA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,mBAAmB;AACrB;;AAEA;EACE,WAAW;EACX,mBAAmB;AACrB;;AAEA,oDAAoD;AACpD,sBAAsB;AACtB,MAAM;;AAEN;EACE,gBAAgB;EAChB,mBAAmB;AACrB;AACA;EACE,+BAA+B;AACjC;;AAEA;EACE,YAAY;EACZ,mBAAmB;AACrB;;AAEA;EACE,yBAAyB;AAC3B",sourcesContent:["/* Naming convention: class names should begin with st and app name to avoid naming collitions */\n.st-translator-input-table {\n /* width: 100%; */\n margin-right: 20px;\n}\n\n.st-translator-input-table td:has(textarea) {\n width: 100%;\n}\n\n.st-translator-input-table td:has(select) {\n min-width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table {\n margin-top: 20px;\n margin-right: 20px;\n margin-bottom: 10px;\n}\n\n.st-translator-output-table table {\n width: 100%;\n table-layout: fixed;\n}\n\n/* .st-translator-output-table table tbody tr td { */\n/* max-width: 20%; */\n/* } */\n\n.st-translator-output-table td {\n padding-top: 6px;\n padding-bottom: 6px;\n}\n.st-translator-output-table tr:nth-child(even) {\n background-color: var(--grey-1);\n}\n\n.st-translator-output-table td:nth-child(odd) {\n width: 120px;\n vertical-align: top;\n}\n\n.st-translator-output-table td a {\n overflow-wrap: break-word;\n}\n"],sourceRoot:""}]);const a=o},314:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",r=void 0!==e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),r&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),r&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,r,i,s){"string"==typeof t&&(t=[[null,t,void 0]]);var o={};if(r)for(var a=0;a<this.length;a++){var u=this[a][0];null!=u&&(o[u]=!0)}for(var l=0;l<t.length;l++){var c=[].concat(t[l]);r&&o[c[0]]||(void 0!==s&&(void 0===c[5]||(c[1]="@layer".concat(c[5].length>0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=s),n&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=n):c[2]=n),i&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=i):c[4]="".concat(i)),e.push(c))}},e}},354:t=>{"use strict";t.exports=function(t){var e=t[1],n=t[3];if(!n)return e;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),s="/*# ".concat(i," */");return[e].concat([s]).join("\n")}return[e].join("\n")}},982:function(t,e,n){var r;!function(e,i){var s={};!function(t){"use strict";t.__esModule=!0,t.digestLength=32,t.blockSize=64;var e=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function n(t,n,r,i,s){for(var o,a,u,l,c,h,f,d,p,g,m,v,y;s>=64;){for(o=n[0],a=n[1],u=n[2],l=n[3],c=n[4],h=n[5],f=n[6],d=n[7],g=0;g<16;g++)m=i+4*g,t[g]=(255&r[m])<<24|(255&r[m+1])<<16|(255&r[m+2])<<8|255&r[m+3];for(g=16;g<64;g++)v=((p=t[g-2])>>>17|p<<15)^(p>>>19|p<<13)^p>>>10,y=((p=t[g-15])>>>7|p<<25)^(p>>>18|p<<14)^p>>>3,t[g]=(v+t[g-7]|0)+(y+t[g-16]|0);for(g=0;g<64;g++)v=(((c>>>6|c<<26)^(c>>>11|c<<21)^(c>>>25|c<<7))+(c&h^~c&f)|0)+(d+(e[g]+t[g]|0)|0)|0,y=((o>>>2|o<<30)^(o>>>13|o<<19)^(o>>>22|o<<10))+(o&a^o&u^a&u)|0,d=f,f=h,h=c,c=l+v|0,l=u,u=a,a=o,o=v+y|0;n[0]+=o,n[1]+=a,n[2]+=u,n[3]+=l,n[4]+=c,n[5]+=h,n[6]+=f,n[7]+=d,i+=64,s-=64}return i}var r=function(){function e(){this.digestLength=t.digestLength,this.blockSize=t.blockSize,this.state=new Int32Array(8),this.temp=new Int32Array(64),this.buffer=new Uint8Array(128),this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this.reset()}return e.prototype.reset=function(){return this.state[0]=1779033703,this.state[1]=3144134277,this.state[2]=1013904242,this.state[3]=2773480762,this.state[4]=1359893119,this.state[5]=2600822924,this.state[6]=528734635,this.state[7]=1541459225,this.bufferLength=0,this.bytesHashed=0,this.finished=!1,this},e.prototype.clean=function(){for(var t=0;t<this.buffer.length;t++)this.buffer[t]=0;for(t=0;t<this.temp.length;t++)this.temp[t]=0;this.reset()},e.prototype.update=function(t,e){if(void 0===e&&(e=t.length),this.finished)throw new Error("SHA256: can't update because hash was finished.");var r=0;if(this.bytesHashed+=e,this.bufferLength>0){for(;this.bufferLength<64&&e>0;)this.buffer[this.bufferLength++]=t[r++],e--;64===this.bufferLength&&(n(this.temp,this.state,this.buffer,0,64),this.bufferLength=0)}for(e>=64&&(r=n(this.temp,this.state,t,r,e),e%=64);e>0;)this.buffer[this.bufferLength++]=t[r++],e--;return this},e.prototype.finish=function(t){if(!this.finished){var e=this.bytesHashed,r=this.bufferLength,i=e/536870912|0,s=e<<3,o=e%64<56?64:128;this.buffer[r]=128;for(var a=r+1;a<o-8;a++)this.buffer[a]=0;this.buffer[o-8]=i>>>24&255,this.buffer[o-7]=i>>>16&255,this.buffer[o-6]=i>>>8&255,this.buffer[o-5]=i>>>0&255,this.buffer[o-4]=s>>>24&255,this.buffer[o-3]=s>>>16&255,this.buffer[o-2]=s>>>8&255,this.buffer[o-1]=s>>>0&255,n(this.temp,this.state,this.buffer,0,o),this.finished=!0}for(a=0;a<8;a++)t[4*a+0]=this.state[a]>>>24&255,t[4*a+1]=this.state[a]>>>16&255,t[4*a+2]=this.state[a]>>>8&255,t[4*a+3]=this.state[a]>>>0&255;return this},e.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},e.prototype._saveState=function(t){for(var e=0;e<this.state.length;e++)t[e]=this.state[e]},e.prototype._restoreState=function(t,e){for(var n=0;n<this.state.length;n++)this.state[n]=t[n];this.bytesHashed=e,this.finished=!1,this.bufferLength=0},e}();t.Hash=r;var i=function(){function t(t){this.inner=new r,this.outer=new r,this.blockSize=this.inner.blockSize,this.digestLength=this.inner.digestLength;var e=new Uint8Array(this.blockSize);if(t.length>this.blockSize)(new r).update(t).finish(e).clean();else for(var n=0;n<t.length;n++)e[n]=t[n];for(n=0;n<e.length;n++)e[n]^=54;for(this.inner.update(e),n=0;n<e.length;n++)e[n]^=106;for(this.outer.update(e),this.istate=new Uint32Array(8),this.ostate=new Uint32Array(8),this.inner._saveState(this.istate),this.outer._saveState(this.ostate),n=0;n<e.length;n++)e[n]=0}return t.prototype.reset=function(){return this.inner._restoreState(this.istate,this.inner.blockSize),this.outer._restoreState(this.ostate,this.outer.blockSize),this},t.prototype.clean=function(){for(var t=0;t<this.istate.length;t++)this.ostate[t]=this.istate[t]=0;this.inner.clean(),this.outer.clean()},t.prototype.update=function(t){return this.inner.update(t),this},t.prototype.finish=function(t){return this.outer.finished?this.outer.finish(t):(this.inner.finish(t),this.outer.update(t,this.digestLength).finish(t)),this},t.prototype.digest=function(){var t=new Uint8Array(this.digestLength);return this.finish(t),t},t}();function s(t){var e=(new r).update(t),n=e.digest();return e.clean(),n}function o(t,e){var n=new i(t).update(e),r=n.digest();return n.clean(),r}function a(t,e,n,r){var i=r[0];if(0===i)throw new Error("hkdf: cannot expand more");e.reset(),i>1&&e.update(t),n&&e.update(n),e.update(r),e.finish(t),r[0]++}t.HMAC=i,t.hash=s,t.default=s,t.hmac=o;var u=new Uint8Array(t.digestLength);t.hkdf=function(t,e,n,r){void 0===e&&(e=u),void 0===r&&(r=32);for(var s=new Uint8Array([1]),l=o(e,t),c=new i(l),h=new Uint8Array(c.digestLength),f=h.length,d=new Uint8Array(r),p=0;p<r;p++)f===h.length&&(a(h,c,n,s),f=0),d[p]=h[f++];return c.clean(),h.fill(0),s.fill(0),d},t.pbkdf2=function(t,e,n,r){for(var s=new i(t),o=s.digestLength,a=new Uint8Array(4),u=new Uint8Array(o),l=new Uint8Array(o),c=new Uint8Array(r),h=0;h*o<r;h++){var f=h+1;a[0]=f>>>24&255,a[1]=f>>>16&255,a[2]=f>>>8&255,a[3]=f>>>0&255,s.reset(),s.update(e),s.update(a),s.finish(l);for(var d=0;d<o;d++)u[d]=l[d];for(d=2;d<=n;d++){s.reset(),s.update(l).finish(l);for(var p=0;p<o;p++)u[p]^=l[p]}for(d=0;d<o&&h*o+d<r;d++)c[h*o+d]=u[d]}for(h=0;h<o;h++)u[h]=l[h]=0;for(h=0;h<4;h++)a[h]=0;return s.clean(),c}}(s);var o=s.default;for(var a in s)o[a]=s[a];"object"==typeof t.exports?t.exports=o:void 0===(r=function(){return o}.call(s,n,s,t))||(t.exports=r)}()},543:function(t,e,n){var r;t=n.nmd(t),function(){var i,s="Expected a function",o="__lodash_hash_undefined__",a="__lodash_placeholder__",u=32,l=128,c=1/0,h=9007199254740991,f=NaN,d=4294967295,p=[["ary",l],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",u],["partialRight",64],["rearg",256]],g="[object Arguments]",m="[object Array]",v="[object Boolean]",y="[object Date]",b="[object Error]",A="[object Function]",w="[object GeneratorFunction]",C="[object Map]",x="[object Number]",_="[object Object]",S="[object Promise]",E="[object RegExp]",T="[object Set]",I="[object String]",N="[object Symbol]",O="[object WeakMap]",M="[object ArrayBuffer]",L="[object DataView]",B="[object Float32Array]",P="[object Float64Array]",R="[object Int8Array]",D="[object Int16Array]",F="[object Int32Array]",U="[object Uint8Array]",k="[object Uint8ClampedArray]",H="[object Uint16Array]",$="[object Uint32Array]",j=/\b__p \+= '';/g,V=/\b(__p \+=) '' \+/g,q=/(__e\(.*?\)|\b__t\)) \+\n'';/g,G=/&(?:amp|lt|gt|quot|#39);/g,W=/[&<>"']/g,z=RegExp(G.source),Y=RegExp(W.source),K=/<%-([\s\S]+?)%>/g,Q=/<%([\s\S]+?)%>/g,J=/<%=([\s\S]+?)%>/g,X=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Z=/^\w*$/,tt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,et=/[\\^$.*+?()[\]{}|]/g,nt=RegExp(et.source),rt=/^\s+/,it=/\s/,st=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,ot=/\{\n\/\* \[wrapped with (.+)\] \*/,at=/,? & /,ut=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,lt=/[()=,{}\[\]\/\s]/,ct=/\\(\\)?/g,ht=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ft=/\w*$/,dt=/^[-+]0x[0-9a-f]+$/i,pt=/^0b[01]+$/i,gt=/^\[object .+?Constructor\]$/,mt=/^0o[0-7]+$/i,vt=/^(?:0|[1-9]\d*)$/,yt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,bt=/($^)/,At=/['\n\r\u2028\u2029\\]/g,wt="\\ud800-\\udfff",Ct="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",xt="\\u2700-\\u27bf",_t="a-z\\xdf-\\xf6\\xf8-\\xff",St="A-Z\\xc0-\\xd6\\xd8-\\xde",Et="\\ufe0e\\ufe0f",Tt="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",It="["+wt+"]",Nt="["+Tt+"]",Ot="["+Ct+"]",Mt="\\d+",Lt="["+xt+"]",Bt="["+_t+"]",Pt="[^"+wt+Tt+Mt+xt+_t+St+"]",Rt="\\ud83c[\\udffb-\\udfff]",Dt="[^"+wt+"]",Ft="(?:\\ud83c[\\udde6-\\uddff]){2}",Ut="[\\ud800-\\udbff][\\udc00-\\udfff]",kt="["+St+"]",Ht="\\u200d",$t="(?:"+Bt+"|"+Pt+")",jt="(?:"+kt+"|"+Pt+")",Vt="(?:['’](?:d|ll|m|re|s|t|ve))?",qt="(?:['’](?:D|LL|M|RE|S|T|VE))?",Gt="(?:"+Ot+"|"+Rt+")?",Wt="["+Et+"]?",zt=Wt+Gt+"(?:"+Ht+"(?:"+[Dt,Ft,Ut].join("|")+")"+Wt+Gt+")*",Yt="(?:"+[Lt,Ft,Ut].join("|")+")"+zt,Kt="(?:"+[Dt+Ot+"?",Ot,Ft,Ut,It].join("|")+")",Qt=RegExp("['’]","g"),Jt=RegExp(Ot,"g"),Xt=RegExp(Rt+"(?="+Rt+")|"+Kt+zt,"g"),Zt=RegExp([kt+"?"+Bt+"+"+Vt+"(?="+[Nt,kt,"$"].join("|")+")",jt+"+"+qt+"(?="+[Nt,kt+$t,"$"].join("|")+")",kt+"?"+$t+"+"+Vt,kt+"+"+qt,"\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Mt,Yt].join("|"),"g"),te=RegExp("["+Ht+wt+Ct+Et+"]"),ee=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,ne=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],re=-1,ie={};ie[B]=ie[P]=ie[R]=ie[D]=ie[F]=ie[U]=ie[k]=ie[H]=ie[$]=!0,ie[g]=ie[m]=ie[M]=ie[v]=ie[L]=ie[y]=ie[b]=ie[A]=ie[C]=ie[x]=ie[_]=ie[E]=ie[T]=ie[I]=ie[O]=!1;var se={};se[g]=se[m]=se[M]=se[L]=se[v]=se[y]=se[B]=se[P]=se[R]=se[D]=se[F]=se[C]=se[x]=se[_]=se[E]=se[T]=se[I]=se[N]=se[U]=se[k]=se[H]=se[$]=!0,se[b]=se[A]=se[O]=!1;var oe={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},ae=parseFloat,ue=parseInt,le="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,ce="object"==typeof self&&self&&self.Object===Object&&self,he=le||ce||Function("return this")(),fe=e&&!e.nodeType&&e,de=fe&&t&&!t.nodeType&&t,pe=de&&de.exports===fe,ge=pe&&le.process,me=function(){try{return de&&de.require&&de.require("util").types||ge&&ge.binding&&ge.binding("util")}catch(t){}}(),ve=me&&me.isArrayBuffer,ye=me&&me.isDate,be=me&&me.isMap,Ae=me&&me.isRegExp,we=me&&me.isSet,Ce=me&&me.isTypedArray;function xe(t,e,n){switch(n.length){case 0:return t.call(e);case 1:return t.call(e,n[0]);case 2:return t.call(e,n[0],n[1]);case 3:return t.call(e,n[0],n[1],n[2])}return t.apply(e,n)}function _e(t,e,n,r){for(var i=-1,s=null==t?0:t.length;++i<s;){var o=t[i];e(r,o,n(o),t)}return r}function Se(t,e){for(var n=-1,r=null==t?0:t.length;++n<r&&!1!==e(t[n],n,t););return t}function Ee(t,e){for(var n=null==t?0:t.length;n--&&!1!==e(t[n],n,t););return t}function Te(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(!e(t[n],n,t))return!1;return!0}function Ie(t,e){for(var n=-1,r=null==t?0:t.length,i=0,s=[];++n<r;){var o=t[n];e(o,n,t)&&(s[i++]=o)}return s}function Ne(t,e){return!(null==t||!t.length)&&ke(t,e,0)>-1}function Oe(t,e,n){for(var r=-1,i=null==t?0:t.length;++r<i;)if(n(e,t[r]))return!0;return!1}function Me(t,e){for(var n=-1,r=null==t?0:t.length,i=Array(r);++n<r;)i[n]=e(t[n],n,t);return i}function Le(t,e){for(var n=-1,r=e.length,i=t.length;++n<r;)t[i+n]=e[n];return t}function Be(t,e,n,r){var i=-1,s=null==t?0:t.length;for(r&&s&&(n=t[++i]);++i<s;)n=e(n,t[i],i,t);return n}function Pe(t,e,n,r){var i=null==t?0:t.length;for(r&&i&&(n=t[--i]);i--;)n=e(n,t[i],i,t);return n}function Re(t,e){for(var n=-1,r=null==t?0:t.length;++n<r;)if(e(t[n],n,t))return!0;return!1}var De=Ve("length");function Fe(t,e,n){var r;return n(t,(function(t,n,i){if(e(t,n,i))return r=n,!1})),r}function Ue(t,e,n,r){for(var i=t.length,s=n+(r?1:-1);r?s--:++s<i;)if(e(t[s],s,t))return s;return-1}function ke(t,e,n){return e==e?function(t,e,n){for(var r=n-1,i=t.length;++r<i;)if(t[r]===e)return r;return-1}(t,e,n):Ue(t,$e,n)}function He(t,e,n,r){for(var i=n-1,s=t.length;++i<s;)if(r(t[i],e))return i;return-1}function $e(t){return t!=t}function je(t,e){var n=null==t?0:t.length;return n?We(t,e)/n:f}function Ve(t){return function(e){return null==e?i:e[t]}}function qe(t){return function(e){return null==t?i:t[e]}}function Ge(t,e,n,r,i){return i(t,(function(t,i,s){n=r?(r=!1,t):e(n,t,i,s)})),n}function We(t,e){for(var n,r=-1,s=t.length;++r<s;){var o=e(t[r]);o!==i&&(n=n===i?o:n+o)}return n}function ze(t,e){for(var n=-1,r=Array(t);++n<t;)r[n]=e(n);return r}function Ye(t){return t?t.slice(0,fn(t)+1).replace(rt,""):t}function Ke(t){return function(e){return t(e)}}function Qe(t,e){return Me(e,(function(e){return t[e]}))}function Je(t,e){return t.has(e)}function Xe(t,e){for(var n=-1,r=t.length;++n<r&&ke(e,t[n],0)>-1;);return n}function Ze(t,e){for(var n=t.length;n--&&ke(e,t[n],0)>-1;);return n}var tn=qe({À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"}),en=qe({"&":"&","<":"<",">":">",'"':""","'":"'"});function nn(t){return"\\"+oe[t]}function rn(t){return te.test(t)}function sn(t){var e=-1,n=Array(t.size);return t.forEach((function(t,r){n[++e]=[r,t]})),n}function on(t,e){return function(n){return t(e(n))}}function an(t,e){for(var n=-1,r=t.length,i=0,s=[];++n<r;){var o=t[n];o!==e&&o!==a||(t[n]=a,s[i++]=n)}return s}function un(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=t})),n}function ln(t){var e=-1,n=Array(t.size);return t.forEach((function(t){n[++e]=[t,t]})),n}function cn(t){return rn(t)?function(t){for(var e=Xt.lastIndex=0;Xt.test(t);)++e;return e}(t):De(t)}function hn(t){return rn(t)?function(t){return t.match(Xt)||[]}(t):function(t){return t.split("")}(t)}function fn(t){for(var e=t.length;e--&&it.test(t.charAt(e)););return e}var dn=qe({"&":"&","<":"<",">":">",""":'"',"'":"'"}),pn=function t(e){var n,r=(e=null==e?he:pn.defaults(he.Object(),e,pn.pick(he,ne))).Array,it=e.Date,wt=e.Error,Ct=e.Function,xt=e.Math,_t=e.Object,St=e.RegExp,Et=e.String,Tt=e.TypeError,It=r.prototype,Nt=Ct.prototype,Ot=_t.prototype,Mt=e["__core-js_shared__"],Lt=Nt.toString,Bt=Ot.hasOwnProperty,Pt=0,Rt=(n=/[^.]+$/.exec(Mt&&Mt.keys&&Mt.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",Dt=Ot.toString,Ft=Lt.call(_t),Ut=he._,kt=St("^"+Lt.call(Bt).replace(et,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ht=pe?e.Buffer:i,$t=e.Symbol,jt=e.Uint8Array,Vt=Ht?Ht.allocUnsafe:i,qt=on(_t.getPrototypeOf,_t),Gt=_t.create,Wt=Ot.propertyIsEnumerable,zt=It.splice,Yt=$t?$t.isConcatSpreadable:i,Kt=$t?$t.iterator:i,Xt=$t?$t.toStringTag:i,te=function(){try{var t=us(_t,"defineProperty");return t({},"",{}),t}catch(t){}}(),oe=e.clearTimeout!==he.clearTimeout&&e.clearTimeout,le=it&&it.now!==he.Date.now&&it.now,ce=e.setTimeout!==he.setTimeout&&e.setTimeout,fe=xt.ceil,de=xt.floor,ge=_t.getOwnPropertySymbols,me=Ht?Ht.isBuffer:i,De=e.isFinite,qe=It.join,gn=on(_t.keys,_t),mn=xt.max,vn=xt.min,yn=it.now,bn=e.parseInt,An=xt.random,wn=It.reverse,Cn=us(e,"DataView"),xn=us(e,"Map"),_n=us(e,"Promise"),Sn=us(e,"Set"),En=us(e,"WeakMap"),Tn=us(_t,"create"),In=En&&new En,Nn={},On=Ds(Cn),Mn=Ds(xn),Ln=Ds(_n),Bn=Ds(Sn),Pn=Ds(En),Rn=$t?$t.prototype:i,Dn=Rn?Rn.valueOf:i,Fn=Rn?Rn.toString:i;function Un(t){if(ta(t)&&!Vo(t)&&!(t instanceof jn)){if(t instanceof $n)return t;if(Bt.call(t,"__wrapped__"))return Fs(t)}return new $n(t)}var kn=function(){function t(){}return function(e){if(!Zo(e))return{};if(Gt)return Gt(e);t.prototype=e;var n=new t;return t.prototype=i,n}}();function Hn(){}function $n(t,e){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=i}function jn(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=d,this.__views__=[]}function Vn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function qn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Gn(t){var e=-1,n=null==t?0:t.length;for(this.clear();++e<n;){var r=t[e];this.set(r[0],r[1])}}function Wn(t){var e=-1,n=null==t?0:t.length;for(this.__data__=new Gn;++e<n;)this.add(t[e])}function zn(t){var e=this.__data__=new qn(t);this.size=e.size}function Yn(t,e){var n=Vo(t),r=!n&&jo(t),i=!n&&!r&&zo(t),s=!n&&!r&&!i&&ua(t),o=n||r||i||s,a=o?ze(t.length,Et):[],u=a.length;for(var l in t)!e&&!Bt.call(t,l)||o&&("length"==l||i&&("offset"==l||"parent"==l)||s&&("buffer"==l||"byteLength"==l||"byteOffset"==l)||gs(l,u))||a.push(l);return a}function Kn(t){var e=t.length;return e?t[Gr(0,e-1)]:i}function Qn(t,e){return Ms(Ei(t),sr(e,0,t.length))}function Jn(t){return Ms(Ei(t))}function Xn(t,e,n){(n!==i&&!ko(t[e],n)||n===i&&!(e in t))&&rr(t,e,n)}function Zn(t,e,n){var r=t[e];Bt.call(t,e)&&ko(r,n)&&(n!==i||e in t)||rr(t,e,n)}function tr(t,e){for(var n=t.length;n--;)if(ko(t[n][0],e))return n;return-1}function er(t,e,n,r){return cr(t,(function(t,i,s){e(r,t,n(t),s)})),r}function nr(t,e){return t&&Ti(e,Oa(e),t)}function rr(t,e,n){"__proto__"==e&&te?te(t,e,{configurable:!0,enumerable:!0,value:n,writable:!0}):t[e]=n}function ir(t,e){for(var n=-1,s=e.length,o=r(s),a=null==t;++n<s;)o[n]=a?i:Sa(t,e[n]);return o}function sr(t,e,n){return t==t&&(n!==i&&(t=t<=n?t:n),e!==i&&(t=t>=e?t:e)),t}function or(t,e,n,r,s,o){var a,u=1&e,l=2&e,c=4&e;if(n&&(a=s?n(t,r,s,o):n(t)),a!==i)return a;if(!Zo(t))return t;var h=Vo(t);if(h){if(a=function(t){var e=t.length,n=new t.constructor(e);return e&&"string"==typeof t[0]&&Bt.call(t,"index")&&(n.index=t.index,n.input=t.input),n}(t),!u)return Ei(t,a)}else{var f=hs(t),d=f==A||f==w;if(zo(t))return Ai(t,u);if(f==_||f==g||d&&!s){if(a=l||d?{}:ds(t),!u)return l?function(t,e){return Ti(t,cs(t),e)}(t,function(t,e){return t&&Ti(e,Ma(e),t)}(a,t)):function(t,e){return Ti(t,ls(t),e)}(t,nr(a,t))}else{if(!se[f])return s?t:{};a=function(t,e,n){var r,i=t.constructor;switch(e){case M:return wi(t);case v:case y:return new i(+t);case L:return function(t,e){var n=e?wi(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.byteLength)}(t,n);case B:case P:case R:case D:case F:case U:case k:case H:case $:return Ci(t,n);case C:return new i;case x:case I:return new i(t);case E:return function(t){var e=new t.constructor(t.source,ft.exec(t));return e.lastIndex=t.lastIndex,e}(t);case T:return new i;case N:return r=t,Dn?_t(Dn.call(r)):{}}}(t,f,u)}}o||(o=new zn);var p=o.get(t);if(p)return p;o.set(t,a),sa(t)?t.forEach((function(r){a.add(or(r,e,n,r,t,o))})):ea(t)&&t.forEach((function(r,i){a.set(i,or(r,e,n,i,t,o))}));var m=h?i:(c?l?es:ts:l?Ma:Oa)(t);return Se(m||t,(function(r,i){m&&(r=t[i=r]),Zn(a,i,or(r,e,n,i,t,o))})),a}function ar(t,e,n){var r=n.length;if(null==t)return!r;for(t=_t(t);r--;){var s=n[r],o=e[s],a=t[s];if(a===i&&!(s in t)||!o(a))return!1}return!0}function ur(t,e,n){if("function"!=typeof t)throw new Tt(s);return Ts((function(){t.apply(i,n)}),e)}function lr(t,e,n,r){var i=-1,s=Ne,o=!0,a=t.length,u=[],l=e.length;if(!a)return u;n&&(e=Me(e,Ke(n))),r?(s=Oe,o=!1):e.length>=200&&(s=Je,o=!1,e=new Wn(e));t:for(;++i<a;){var c=t[i],h=null==n?c:n(c);if(c=r||0!==c?c:0,o&&h==h){for(var f=l;f--;)if(e[f]===h)continue t;u.push(c)}else s(e,h,r)||u.push(c)}return u}Un.templateSettings={escape:K,evaluate:Q,interpolate:J,variable:"",imports:{_:Un}},Un.prototype=Hn.prototype,Un.prototype.constructor=Un,$n.prototype=kn(Hn.prototype),$n.prototype.constructor=$n,jn.prototype=kn(Hn.prototype),jn.prototype.constructor=jn,Vn.prototype.clear=function(){this.__data__=Tn?Tn(null):{},this.size=0},Vn.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},Vn.prototype.get=function(t){var e=this.__data__;if(Tn){var n=e[t];return n===o?i:n}return Bt.call(e,t)?e[t]:i},Vn.prototype.has=function(t){var e=this.__data__;return Tn?e[t]!==i:Bt.call(e,t)},Vn.prototype.set=function(t,e){var n=this.__data__;return this.size+=this.has(t)?0:1,n[t]=Tn&&e===i?o:e,this},qn.prototype.clear=function(){this.__data__=[],this.size=0},qn.prototype.delete=function(t){var e=this.__data__,n=tr(e,t);return!(n<0||(n==e.length-1?e.pop():zt.call(e,n,1),--this.size,0))},qn.prototype.get=function(t){var e=this.__data__,n=tr(e,t);return n<0?i:e[n][1]},qn.prototype.has=function(t){return tr(this.__data__,t)>-1},qn.prototype.set=function(t,e){var n=this.__data__,r=tr(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this},Gn.prototype.clear=function(){this.size=0,this.__data__={hash:new Vn,map:new(xn||qn),string:new Vn}},Gn.prototype.delete=function(t){var e=os(this,t).delete(t);return this.size-=e?1:0,e},Gn.prototype.get=function(t){return os(this,t).get(t)},Gn.prototype.has=function(t){return os(this,t).has(t)},Gn.prototype.set=function(t,e){var n=os(this,t),r=n.size;return n.set(t,e),this.size+=n.size==r?0:1,this},Wn.prototype.add=Wn.prototype.push=function(t){return this.__data__.set(t,o),this},Wn.prototype.has=function(t){return this.__data__.has(t)},zn.prototype.clear=function(){this.__data__=new qn,this.size=0},zn.prototype.delete=function(t){var e=this.__data__,n=e.delete(t);return this.size=e.size,n},zn.prototype.get=function(t){return this.__data__.get(t)},zn.prototype.has=function(t){return this.__data__.has(t)},zn.prototype.set=function(t,e){var n=this.__data__;if(n instanceof qn){var r=n.__data__;if(!xn||r.length<199)return r.push([t,e]),this.size=++n.size,this;n=this.__data__=new Gn(r)}return n.set(t,e),this.size=n.size,this};var cr=Oi(yr),hr=Oi(br,!0);function fr(t,e){var n=!0;return cr(t,(function(t,r,i){return n=!!e(t,r,i)})),n}function dr(t,e,n){for(var r=-1,s=t.length;++r<s;){var o=t[r],a=e(o);if(null!=a&&(u===i?a==a&&!aa(a):n(a,u)))var u=a,l=o}return l}function pr(t,e){var n=[];return cr(t,(function(t,r,i){e(t,r,i)&&n.push(t)})),n}function gr(t,e,n,r,i){var s=-1,o=t.length;for(n||(n=ps),i||(i=[]);++s<o;){var a=t[s];e>0&&n(a)?e>1?gr(a,e-1,n,r,i):Le(i,a):r||(i[i.length]=a)}return i}var mr=Mi(),vr=Mi(!0);function yr(t,e){return t&&mr(t,e,Oa)}function br(t,e){return t&&vr(t,e,Oa)}function Ar(t,e){return Ie(e,(function(e){return Qo(t[e])}))}function wr(t,e){for(var n=0,r=(e=mi(e,t)).length;null!=t&&n<r;)t=t[Rs(e[n++])];return n&&n==r?t:i}function Cr(t,e,n){var r=e(t);return Vo(t)?r:Le(r,n(t))}function xr(t){return null==t?t===i?"[object Undefined]":"[object Null]":Xt&&Xt in _t(t)?function(t){var e=Bt.call(t,Xt),n=t[Xt];try{t[Xt]=i;var r=!0}catch(t){}var s=Dt.call(t);return r&&(e?t[Xt]=n:delete t[Xt]),s}(t):function(t){return Dt.call(t)}(t)}function _r(t,e){return t>e}function Sr(t,e){return null!=t&&Bt.call(t,e)}function Er(t,e){return null!=t&&e in _t(t)}function Tr(t,e,n){for(var s=n?Oe:Ne,o=t[0].length,a=t.length,u=a,l=r(a),c=1/0,h=[];u--;){var f=t[u];u&&e&&(f=Me(f,Ke(e))),c=vn(f.length,c),l[u]=!n&&(e||o>=120&&f.length>=120)?new Wn(u&&f):i}f=t[0];var d=-1,p=l[0];t:for(;++d<o&&h.length<c;){var g=f[d],m=e?e(g):g;if(g=n||0!==g?g:0,!(p?Je(p,m):s(h,m,n))){for(u=a;--u;){var v=l[u];if(!(v?Je(v,m):s(t[u],m,n)))continue t}p&&p.push(m),h.push(g)}}return h}function Ir(t,e,n){var r=null==(t=_s(t,e=mi(e,t)))?t:t[Rs(Ys(e))];return null==r?i:xe(r,t,n)}function Nr(t){return ta(t)&&xr(t)==g}function Or(t,e,n,r,s){return t===e||(null==t||null==e||!ta(t)&&!ta(e)?t!=t&&e!=e:function(t,e,n,r,s,o){var a=Vo(t),u=Vo(e),l=a?m:hs(t),c=u?m:hs(e),h=(l=l==g?_:l)==_,f=(c=c==g?_:c)==_,d=l==c;if(d&&zo(t)){if(!zo(e))return!1;a=!0,h=!1}if(d&&!h)return o||(o=new zn),a||ua(t)?Xi(t,e,n,r,s,o):function(t,e,n,r,i,s,o){switch(n){case L:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case M:return!(t.byteLength!=e.byteLength||!s(new jt(t),new jt(e)));case v:case y:case x:return ko(+t,+e);case b:return t.name==e.name&&t.message==e.message;case E:case I:return t==e+"";case C:var a=sn;case T:var u=1&r;if(a||(a=un),t.size!=e.size&&!u)return!1;var l=o.get(t);if(l)return l==e;r|=2,o.set(t,e);var c=Xi(a(t),a(e),r,i,s,o);return o.delete(t),c;case N:if(Dn)return Dn.call(t)==Dn.call(e)}return!1}(t,e,l,n,r,s,o);if(!(1&n)){var p=h&&Bt.call(t,"__wrapped__"),A=f&&Bt.call(e,"__wrapped__");if(p||A){var w=p?t.value():t,S=A?e.value():e;return o||(o=new zn),s(w,S,n,r,o)}}return!!d&&(o||(o=new zn),function(t,e,n,r,s,o){var a=1&n,u=ts(t),l=u.length;if(l!=ts(e).length&&!a)return!1;for(var c=l;c--;){var h=u[c];if(!(a?h in e:Bt.call(e,h)))return!1}var f=o.get(t),d=o.get(e);if(f&&d)return f==e&&d==t;var p=!0;o.set(t,e),o.set(e,t);for(var g=a;++c<l;){var m=t[h=u[c]],v=e[h];if(r)var y=a?r(v,m,h,e,t,o):r(m,v,h,t,e,o);if(!(y===i?m===v||s(m,v,n,r,o):y)){p=!1;break}g||(g="constructor"==h)}if(p&&!g){var b=t.constructor,A=e.constructor;b==A||!("constructor"in t)||!("constructor"in e)||"function"==typeof b&&b instanceof b&&"function"==typeof A&&A instanceof A||(p=!1)}return o.delete(t),o.delete(e),p}(t,e,n,r,s,o))}(t,e,n,r,Or,s))}function Mr(t,e,n,r){var s=n.length,o=s,a=!r;if(null==t)return!o;for(t=_t(t);s--;){var u=n[s];if(a&&u[2]?u[1]!==t[u[0]]:!(u[0]in t))return!1}for(;++s<o;){var l=(u=n[s])[0],c=t[l],h=u[1];if(a&&u[2]){if(c===i&&!(l in t))return!1}else{var f=new zn;if(r)var d=r(c,h,l,t,e,f);if(!(d===i?Or(h,c,3,r,f):d))return!1}}return!0}function Lr(t){return!(!Zo(t)||(e=t,Rt&&Rt in e))&&(Qo(t)?kt:gt).test(Ds(t));var e}function Br(t){return"function"==typeof t?t:null==t?nu:"object"==typeof t?Vo(t)?Ur(t[0],t[1]):Fr(t):hu(t)}function Pr(t){if(!As(t))return gn(t);var e=[];for(var n in _t(t))Bt.call(t,n)&&"constructor"!=n&&e.push(n);return e}function Rr(t,e){return t<e}function Dr(t,e){var n=-1,i=Go(t)?r(t.length):[];return cr(t,(function(t,r,s){i[++n]=e(t,r,s)})),i}function Fr(t){var e=as(t);return 1==e.length&&e[0][2]?Cs(e[0][0],e[0][1]):function(n){return n===t||Mr(n,t,e)}}function Ur(t,e){return vs(t)&&ws(e)?Cs(Rs(t),e):function(n){var r=Sa(n,t);return r===i&&r===e?Ea(n,t):Or(e,r,3)}}function kr(t,e,n,r,s){t!==e&&mr(e,(function(o,a){if(s||(s=new zn),Zo(o))!function(t,e,n,r,s,o,a){var u=Ss(t,n),l=Ss(e,n),c=a.get(l);if(c)Xn(t,n,c);else{var h=o?o(u,l,n+"",t,e,a):i,f=h===i;if(f){var d=Vo(l),p=!d&&zo(l),g=!d&&!p&&ua(l);h=l,d||p||g?Vo(u)?h=u:Wo(u)?h=Ei(u):p?(f=!1,h=Ai(l,!0)):g?(f=!1,h=Ci(l,!0)):h=[]:ra(l)||jo(l)?(h=u,jo(u)?h=ma(u):Zo(u)&&!Qo(u)||(h=ds(l))):f=!1}f&&(a.set(l,h),s(h,l,r,o,a),a.delete(l)),Xn(t,n,h)}}(t,e,a,n,kr,r,s);else{var u=r?r(Ss(t,a),o,a+"",t,e,s):i;u===i&&(u=o),Xn(t,a,u)}}),Ma)}function Hr(t,e){var n=t.length;if(n)return gs(e+=e<0?n:0,n)?t[e]:i}function $r(t,e,n){e=e.length?Me(e,(function(t){return Vo(t)?function(e){return wr(e,1===t.length?t[0]:t)}:t})):[nu];var r=-1;e=Me(e,Ke(ss()));var i=Dr(t,(function(t,n,i){var s=Me(e,(function(e){return e(t)}));return{criteria:s,index:++r,value:t}}));return function(t,e){var r=t.length;for(t.sort((function(t,e){return function(t,e,n){for(var r=-1,i=t.criteria,s=e.criteria,o=i.length,a=n.length;++r<o;){var u=xi(i[r],s[r]);if(u)return r>=a?u:u*("desc"==n[r]?-1:1)}return t.index-e.index}(t,e,n)}));r--;)t[r]=t[r].value;return t}(i)}function jr(t,e,n){for(var r=-1,i=e.length,s={};++r<i;){var o=e[r],a=wr(t,o);n(a,o)&&Qr(s,mi(o,t),a)}return s}function Vr(t,e,n,r){var i=r?He:ke,s=-1,o=e.length,a=t;for(t===e&&(e=Ei(e)),n&&(a=Me(t,Ke(n)));++s<o;)for(var u=0,l=e[s],c=n?n(l):l;(u=i(a,c,u,r))>-1;)a!==t&&zt.call(a,u,1),zt.call(t,u,1);return t}function qr(t,e){for(var n=t?e.length:0,r=n-1;n--;){var i=e[n];if(n==r||i!==s){var s=i;gs(i)?zt.call(t,i,1):ui(t,i)}}return t}function Gr(t,e){return t+de(An()*(e-t+1))}function Wr(t,e){var n="";if(!t||e<1||e>h)return n;do{e%2&&(n+=t),(e=de(e/2))&&(t+=t)}while(e);return n}function zr(t,e){return Is(xs(t,e,nu),t+"")}function Yr(t){return Kn(ka(t))}function Kr(t,e){var n=ka(t);return Ms(n,sr(e,0,n.length))}function Qr(t,e,n,r){if(!Zo(t))return t;for(var s=-1,o=(e=mi(e,t)).length,a=o-1,u=t;null!=u&&++s<o;){var l=Rs(e[s]),c=n;if("__proto__"===l||"constructor"===l||"prototype"===l)return t;if(s!=a){var h=u[l];(c=r?r(h,l,u):i)===i&&(c=Zo(h)?h:gs(e[s+1])?[]:{})}Zn(u,l,c),u=u[l]}return t}var Jr=In?function(t,e){return In.set(t,e),t}:nu,Xr=te?function(t,e){return te(t,"toString",{configurable:!0,enumerable:!1,value:Za(e),writable:!0})}:nu;function Zr(t){return Ms(ka(t))}function ti(t,e,n){var i=-1,s=t.length;e<0&&(e=-e>s?0:s+e),(n=n>s?s:n)<0&&(n+=s),s=e>n?0:n-e>>>0,e>>>=0;for(var o=r(s);++i<s;)o[i]=t[i+e];return o}function ei(t,e){var n;return cr(t,(function(t,r,i){return!(n=e(t,r,i))})),!!n}function ni(t,e,n){var r=0,i=null==t?r:t.length;if("number"==typeof e&&e==e&&i<=2147483647){for(;r<i;){var s=r+i>>>1,o=t[s];null!==o&&!aa(o)&&(n?o<=e:o<e)?r=s+1:i=s}return i}return ri(t,e,nu,n)}function ri(t,e,n,r){var s=0,o=null==t?0:t.length;if(0===o)return 0;for(var a=(e=n(e))!=e,u=null===e,l=aa(e),c=e===i;s<o;){var h=de((s+o)/2),f=n(t[h]),d=f!==i,p=null===f,g=f==f,m=aa(f);if(a)var v=r||g;else v=c?g&&(r||d):u?g&&d&&(r||!p):l?g&&d&&!p&&(r||!m):!p&&!m&&(r?f<=e:f<e);v?s=h+1:o=h}return vn(o,4294967294)}function ii(t,e){for(var n=-1,r=t.length,i=0,s=[];++n<r;){var o=t[n],a=e?e(o):o;if(!n||!ko(a,u)){var u=a;s[i++]=0===o?0:o}}return s}function si(t){return"number"==typeof t?t:aa(t)?f:+t}function oi(t){if("string"==typeof t)return t;if(Vo(t))return Me(t,oi)+"";if(aa(t))return Fn?Fn.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function ai(t,e,n){var r=-1,i=Ne,s=t.length,o=!0,a=[],u=a;if(n)o=!1,i=Oe;else if(s>=200){var l=e?null:Wi(t);if(l)return un(l);o=!1,i=Je,u=new Wn}else u=e?[]:a;t:for(;++r<s;){var c=t[r],h=e?e(c):c;if(c=n||0!==c?c:0,o&&h==h){for(var f=u.length;f--;)if(u[f]===h)continue t;e&&u.push(h),a.push(c)}else i(u,h,n)||(u!==a&&u.push(h),a.push(c))}return a}function ui(t,e){return null==(t=_s(t,e=mi(e,t)))||delete t[Rs(Ys(e))]}function li(t,e,n,r){return Qr(t,e,n(wr(t,e)),r)}function ci(t,e,n,r){for(var i=t.length,s=r?i:-1;(r?s--:++s<i)&&e(t[s],s,t););return n?ti(t,r?0:s,r?s+1:i):ti(t,r?s+1:0,r?i:s)}function hi(t,e){var n=t;return n instanceof jn&&(n=n.value()),Be(e,(function(t,e){return e.func.apply(e.thisArg,Le([t],e.args))}),n)}function fi(t,e,n){var i=t.length;if(i<2)return i?ai(t[0]):[];for(var s=-1,o=r(i);++s<i;)for(var a=t[s],u=-1;++u<i;)u!=s&&(o[s]=lr(o[s]||a,t[u],e,n));return ai(gr(o,1),e,n)}function di(t,e,n){for(var r=-1,s=t.length,o=e.length,a={};++r<s;){var u=r<o?e[r]:i;n(a,t[r],u)}return a}function pi(t){return Wo(t)?t:[]}function gi(t){return"function"==typeof t?t:nu}function mi(t,e){return Vo(t)?t:vs(t,e)?[t]:Ps(va(t))}var vi=zr;function yi(t,e,n){var r=t.length;return n=n===i?r:n,!e&&n>=r?t:ti(t,e,n)}var bi=oe||function(t){return he.clearTimeout(t)};function Ai(t,e){if(e)return t.slice();var n=t.length,r=Vt?Vt(n):new t.constructor(n);return t.copy(r),r}function wi(t){var e=new t.constructor(t.byteLength);return new jt(e).set(new jt(t)),e}function Ci(t,e){var n=e?wi(t.buffer):t.buffer;return new t.constructor(n,t.byteOffset,t.length)}function xi(t,e){if(t!==e){var n=t!==i,r=null===t,s=t==t,o=aa(t),a=e!==i,u=null===e,l=e==e,c=aa(e);if(!u&&!c&&!o&&t>e||o&&a&&l&&!u&&!c||r&&a&&l||!n&&l||!s)return 1;if(!r&&!o&&!c&&t<e||c&&n&&s&&!r&&!o||u&&n&&s||!a&&s||!l)return-1}return 0}function _i(t,e,n,i){for(var s=-1,o=t.length,a=n.length,u=-1,l=e.length,c=mn(o-a,0),h=r(l+c),f=!i;++u<l;)h[u]=e[u];for(;++s<a;)(f||s<o)&&(h[n[s]]=t[s]);for(;c--;)h[u++]=t[s++];return h}function Si(t,e,n,i){for(var s=-1,o=t.length,a=-1,u=n.length,l=-1,c=e.length,h=mn(o-u,0),f=r(h+c),d=!i;++s<h;)f[s]=t[s];for(var p=s;++l<c;)f[p+l]=e[l];for(;++a<u;)(d||s<o)&&(f[p+n[a]]=t[s++]);return f}function Ei(t,e){var n=-1,i=t.length;for(e||(e=r(i));++n<i;)e[n]=t[n];return e}function Ti(t,e,n,r){var s=!n;n||(n={});for(var o=-1,a=e.length;++o<a;){var u=e[o],l=r?r(n[u],t[u],u,n,t):i;l===i&&(l=t[u]),s?rr(n,u,l):Zn(n,u,l)}return n}function Ii(t,e){return function(n,r){var i=Vo(n)?_e:er,s=e?e():{};return i(n,t,ss(r,2),s)}}function Ni(t){return zr((function(e,n){var r=-1,s=n.length,o=s>1?n[s-1]:i,a=s>2?n[2]:i;for(o=t.length>3&&"function"==typeof o?(s--,o):i,a&&ms(n[0],n[1],a)&&(o=s<3?i:o,s=1),e=_t(e);++r<s;){var u=n[r];u&&t(e,u,r,o)}return e}))}function Oi(t,e){return function(n,r){if(null==n)return n;if(!Go(n))return t(n,r);for(var i=n.length,s=e?i:-1,o=_t(n);(e?s--:++s<i)&&!1!==r(o[s],s,o););return n}}function Mi(t){return function(e,n,r){for(var i=-1,s=_t(e),o=r(e),a=o.length;a--;){var u=o[t?a:++i];if(!1===n(s[u],u,s))break}return e}}function Li(t){return function(e){var n=rn(e=va(e))?hn(e):i,r=n?n[0]:e.charAt(0),s=n?yi(n,1).join(""):e.slice(1);return r[t]()+s}}function Bi(t){return function(e){return Be(Qa(ja(e).replace(Qt,"")),t,"")}}function Pi(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var n=kn(t.prototype),r=t.apply(n,e);return Zo(r)?r:n}}function Ri(t){return function(e,n,r){var s=_t(e);if(!Go(e)){var o=ss(n,3);e=Oa(e),n=function(t){return o(s[t],t,s)}}var a=t(e,n,r);return a>-1?s[o?e[a]:a]:i}}function Di(t){return Zi((function(e){var n=e.length,r=n,o=$n.prototype.thru;for(t&&e.reverse();r--;){var a=e[r];if("function"!=typeof a)throw new Tt(s);if(o&&!u&&"wrapper"==rs(a))var u=new $n([],!0)}for(r=u?r:n;++r<n;){var l=rs(a=e[r]),c="wrapper"==l?ns(a):i;u=c&&ys(c[0])&&424==c[1]&&!c[4].length&&1==c[9]?u[rs(c[0])].apply(u,c[3]):1==a.length&&ys(a)?u[l]():u.thru(a)}return function(){var t=arguments,r=t[0];if(u&&1==t.length&&Vo(r))return u.plant(r).value();for(var i=0,s=n?e[i].apply(this,t):r;++i<n;)s=e[i].call(this,s);return s}}))}function Fi(t,e,n,s,o,a,u,c,h,f){var d=e&l,p=1&e,g=2&e,m=24&e,v=512&e,y=g?i:Pi(t);return function l(){for(var b=arguments.length,A=r(b),w=b;w--;)A[w]=arguments[w];if(m)var C=is(l),x=function(t,e){for(var n=t.length,r=0;n--;)t[n]===e&&++r;return r}(A,C);if(s&&(A=_i(A,s,o,m)),a&&(A=Si(A,a,u,m)),b-=x,m&&b<f){var _=an(A,C);return qi(t,e,Fi,l.placeholder,n,A,_,c,h,f-b)}var S=p?n:this,E=g?S[t]:t;return b=A.length,c?A=function(t,e){for(var n=t.length,r=vn(e.length,n),s=Ei(t);r--;){var o=e[r];t[r]=gs(o,n)?s[o]:i}return t}(A,c):v&&b>1&&A.reverse(),d&&h<b&&(A.length=h),this&&this!==he&&this instanceof l&&(E=y||Pi(E)),E.apply(S,A)}}function Ui(t,e){return function(n,r){return function(t,e,n,r){return yr(t,(function(t,i,s){e(r,n(t),i,s)})),r}(n,t,e(r),{})}}function ki(t,e){return function(n,r){var s;if(n===i&&r===i)return e;if(n!==i&&(s=n),r!==i){if(s===i)return r;"string"==typeof n||"string"==typeof r?(n=oi(n),r=oi(r)):(n=si(n),r=si(r)),s=t(n,r)}return s}}function Hi(t){return Zi((function(e){return e=Me(e,Ke(ss())),zr((function(n){var r=this;return t(e,(function(t){return xe(t,r,n)}))}))}))}function $i(t,e){var n=(e=e===i?" ":oi(e)).length;if(n<2)return n?Wr(e,t):e;var r=Wr(e,fe(t/cn(e)));return rn(e)?yi(hn(r),0,t).join(""):r.slice(0,t)}function ji(t){return function(e,n,s){return s&&"number"!=typeof s&&ms(e,n,s)&&(n=s=i),e=fa(e),n===i?(n=e,e=0):n=fa(n),function(t,e,n,i){for(var s=-1,o=mn(fe((e-t)/(n||1)),0),a=r(o);o--;)a[i?o:++s]=t,t+=n;return a}(e,n,s=s===i?e<n?1:-1:fa(s),t)}}function Vi(t){return function(e,n){return"string"==typeof e&&"string"==typeof n||(e=ga(e),n=ga(n)),t(e,n)}}function qi(t,e,n,r,s,o,a,l,c,h){var f=8&e;e|=f?u:64,4&(e&=~(f?64:u))||(e&=-4);var d=[t,e,s,f?o:i,f?a:i,f?i:o,f?i:a,l,c,h],p=n.apply(i,d);return ys(t)&&Es(p,d),p.placeholder=r,Ns(p,t,e)}function Gi(t){var e=xt[t];return function(t,n){if(t=ga(t),(n=null==n?0:vn(da(n),292))&&De(t)){var r=(va(t)+"e").split("e");return+((r=(va(e(r[0]+"e"+(+r[1]+n)))+"e").split("e"))[0]+"e"+(+r[1]-n))}return e(t)}}var Wi=Sn&&1/un(new Sn([,-0]))[1]==c?function(t){return new Sn(t)}:au;function zi(t){return function(e){var n=hs(e);return n==C?sn(e):n==T?ln(e):function(t,e){return Me(e,(function(e){return[e,t[e]]}))}(e,t(e))}}function Yi(t,e,n,o,c,h,f,d){var p=2&e;if(!p&&"function"!=typeof t)throw new Tt(s);var g=o?o.length:0;if(g||(e&=-97,o=c=i),f=f===i?f:mn(da(f),0),d=d===i?d:da(d),g-=c?c.length:0,64&e){var m=o,v=c;o=c=i}var y=p?i:ns(t),b=[t,e,n,o,c,m,v,h,f,d];if(y&&function(t,e){var n=t[1],r=e[1],i=n|r,s=i<131,o=r==l&&8==n||r==l&&256==n&&t[7].length<=e[8]||384==r&&e[7].length<=e[8]&&8==n;if(!s&&!o)return t;1&r&&(t[2]=e[2],i|=1&n?0:4);var u=e[3];if(u){var c=t[3];t[3]=c?_i(c,u,e[4]):u,t[4]=c?an(t[3],a):e[4]}(u=e[5])&&(c=t[5],t[5]=c?Si(c,u,e[6]):u,t[6]=c?an(t[5],a):e[6]),(u=e[7])&&(t[7]=u),r&l&&(t[8]=null==t[8]?e[8]:vn(t[8],e[8])),null==t[9]&&(t[9]=e[9]),t[0]=e[0],t[1]=i}(b,y),t=b[0],e=b[1],n=b[2],o=b[3],c=b[4],!(d=b[9]=b[9]===i?p?0:t.length:mn(b[9]-g,0))&&24&e&&(e&=-25),e&&1!=e)A=8==e||16==e?function(t,e,n){var s=Pi(t);return function o(){for(var a=arguments.length,u=r(a),l=a,c=is(o);l--;)u[l]=arguments[l];var h=a<3&&u[0]!==c&&u[a-1]!==c?[]:an(u,c);return(a-=h.length)<n?qi(t,e,Fi,o.placeholder,i,u,h,i,i,n-a):xe(this&&this!==he&&this instanceof o?s:t,this,u)}}(t,e,d):e!=u&&33!=e||c.length?Fi.apply(i,b):function(t,e,n,i){var s=1&e,o=Pi(t);return function e(){for(var a=-1,u=arguments.length,l=-1,c=i.length,h=r(c+u),f=this&&this!==he&&this instanceof e?o:t;++l<c;)h[l]=i[l];for(;u--;)h[l++]=arguments[++a];return xe(f,s?n:this,h)}}(t,e,n,o);else var A=function(t,e,n){var r=1&e,i=Pi(t);return function e(){return(this&&this!==he&&this instanceof e?i:t).apply(r?n:this,arguments)}}(t,e,n);return Ns((y?Jr:Es)(A,b),t,e)}function Ki(t,e,n,r){return t===i||ko(t,Ot[n])&&!Bt.call(r,n)?e:t}function Qi(t,e,n,r,s,o){return Zo(t)&&Zo(e)&&(o.set(e,t),kr(t,e,i,Qi,o),o.delete(e)),t}function Ji(t){return ra(t)?i:t}function Xi(t,e,n,r,s,o){var a=1&n,u=t.length,l=e.length;if(u!=l&&!(a&&l>u))return!1;var c=o.get(t),h=o.get(e);if(c&&h)return c==e&&h==t;var f=-1,d=!0,p=2&n?new Wn:i;for(o.set(t,e),o.set(e,t);++f<u;){var g=t[f],m=e[f];if(r)var v=a?r(m,g,f,e,t,o):r(g,m,f,t,e,o);if(v!==i){if(v)continue;d=!1;break}if(p){if(!Re(e,(function(t,e){if(!Je(p,e)&&(g===t||s(g,t,n,r,o)))return p.push(e)}))){d=!1;break}}else if(g!==m&&!s(g,m,n,r,o)){d=!1;break}}return o.delete(t),o.delete(e),d}function Zi(t){return Is(xs(t,i,Vs),t+"")}function ts(t){return Cr(t,Oa,ls)}function es(t){return Cr(t,Ma,cs)}var ns=In?function(t){return In.get(t)}:au;function rs(t){for(var e=t.name+"",n=Nn[e],r=Bt.call(Nn,e)?n.length:0;r--;){var i=n[r],s=i.func;if(null==s||s==t)return i.name}return e}function is(t){return(Bt.call(Un,"placeholder")?Un:t).placeholder}function ss(){var t=Un.iteratee||ru;return t=t===ru?Br:t,arguments.length?t(arguments[0],arguments[1]):t}function os(t,e){var n,r,i=t.__data__;return("string"==(r=typeof(n=e))||"number"==r||"symbol"==r||"boolean"==r?"__proto__"!==n:null===n)?i["string"==typeof e?"string":"hash"]:i.map}function as(t){for(var e=Oa(t),n=e.length;n--;){var r=e[n],i=t[r];e[n]=[r,i,ws(i)]}return e}function us(t,e){var n=function(t,e){return null==t?i:t[e]}(t,e);return Lr(n)?n:i}var ls=ge?function(t){return null==t?[]:(t=_t(t),Ie(ge(t),(function(e){return Wt.call(t,e)})))}:pu,cs=ge?function(t){for(var e=[];t;)Le(e,ls(t)),t=qt(t);return e}:pu,hs=xr;function fs(t,e,n){for(var r=-1,i=(e=mi(e,t)).length,s=!1;++r<i;){var o=Rs(e[r]);if(!(s=null!=t&&n(t,o)))break;t=t[o]}return s||++r!=i?s:!!(i=null==t?0:t.length)&&Xo(i)&&gs(o,i)&&(Vo(t)||jo(t))}function ds(t){return"function"!=typeof t.constructor||As(t)?{}:kn(qt(t))}function ps(t){return Vo(t)||jo(t)||!!(Yt&&t&&t[Yt])}function gs(t,e){var n=typeof t;return!!(e=null==e?h:e)&&("number"==n||"symbol"!=n&&vt.test(t))&&t>-1&&t%1==0&&t<e}function ms(t,e,n){if(!Zo(n))return!1;var r=typeof e;return!!("number"==r?Go(n)&&gs(e,n.length):"string"==r&&e in n)&&ko(n[e],t)}function vs(t,e){if(Vo(t))return!1;var n=typeof t;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=t&&!aa(t))||Z.test(t)||!X.test(t)||null!=e&&t in _t(e)}function ys(t){var e=rs(t),n=Un[e];if("function"!=typeof n||!(e in jn.prototype))return!1;if(t===n)return!0;var r=ns(n);return!!r&&t===r[0]}(Cn&&hs(new Cn(new ArrayBuffer(1)))!=L||xn&&hs(new xn)!=C||_n&&hs(_n.resolve())!=S||Sn&&hs(new Sn)!=T||En&&hs(new En)!=O)&&(hs=function(t){var e=xr(t),n=e==_?t.constructor:i,r=n?Ds(n):"";if(r)switch(r){case On:return L;case Mn:return C;case Ln:return S;case Bn:return T;case Pn:return O}return e});var bs=Mt?Qo:gu;function As(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Ot)}function ws(t){return t==t&&!Zo(t)}function Cs(t,e){return function(n){return null!=n&&n[t]===e&&(e!==i||t in _t(n))}}function xs(t,e,n){return e=mn(e===i?t.length-1:e,0),function(){for(var i=arguments,s=-1,o=mn(i.length-e,0),a=r(o);++s<o;)a[s]=i[e+s];s=-1;for(var u=r(e+1);++s<e;)u[s]=i[s];return u[e]=n(a),xe(t,this,u)}}function _s(t,e){return e.length<2?t:wr(t,ti(e,0,-1))}function Ss(t,e){if(("constructor"!==e||"function"!=typeof t[e])&&"__proto__"!=e)return t[e]}var Es=Os(Jr),Ts=ce||function(t,e){return he.setTimeout(t,e)},Is=Os(Xr);function Ns(t,e,n){var r=e+"";return Is(t,function(t,e){var n=e.length;if(!n)return t;var r=n-1;return e[r]=(n>1?"& ":"")+e[r],e=e.join(n>2?", ":" "),t.replace(st,"{\n/* [wrapped with "+e+"] */\n")}(r,function(t,e){return Se(p,(function(n){var r="_."+n[0];e&n[1]&&!Ne(t,r)&&t.push(r)})),t.sort()}(function(t){var e=t.match(ot);return e?e[1].split(at):[]}(r),n)))}function Os(t){var e=0,n=0;return function(){var r=yn(),s=16-(r-n);if(n=r,s>0){if(++e>=800)return arguments[0]}else e=0;return t.apply(i,arguments)}}function Ms(t,e){var n=-1,r=t.length,s=r-1;for(e=e===i?r:e;++n<e;){var o=Gr(n,s),a=t[o];t[o]=t[n],t[n]=a}return t.length=e,t}var Ls,Bs,Ps=(Ls=Bo((function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(tt,(function(t,n,r,i){e.push(r?i.replace(ct,"$1"):n||t)})),e}),(function(t){return 500===Bs.size&&Bs.clear(),t})),Bs=Ls.cache,Ls);function Rs(t){if("string"==typeof t||aa(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function Ds(t){if(null!=t){try{return Lt.call(t)}catch(t){}try{return t+""}catch(t){}}return""}function Fs(t){if(t instanceof jn)return t.clone();var e=new $n(t.__wrapped__,t.__chain__);return e.__actions__=Ei(t.__actions__),e.__index__=t.__index__,e.__values__=t.__values__,e}var Us=zr((function(t,e){return Wo(t)?lr(t,gr(e,1,Wo,!0)):[]})),ks=zr((function(t,e){var n=Ys(e);return Wo(n)&&(n=i),Wo(t)?lr(t,gr(e,1,Wo,!0),ss(n,2)):[]})),Hs=zr((function(t,e){var n=Ys(e);return Wo(n)&&(n=i),Wo(t)?lr(t,gr(e,1,Wo,!0),i,n):[]}));function $s(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:da(n);return i<0&&(i=mn(r+i,0)),Ue(t,ss(e,3),i)}function js(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var s=r-1;return n!==i&&(s=da(n),s=n<0?mn(r+s,0):vn(s,r-1)),Ue(t,ss(e,3),s,!0)}function Vs(t){return null!=t&&t.length?gr(t,1):[]}function qs(t){return t&&t.length?t[0]:i}var Gs=zr((function(t){var e=Me(t,pi);return e.length&&e[0]===t[0]?Tr(e):[]})),Ws=zr((function(t){var e=Ys(t),n=Me(t,pi);return e===Ys(n)?e=i:n.pop(),n.length&&n[0]===t[0]?Tr(n,ss(e,2)):[]})),zs=zr((function(t){var e=Ys(t),n=Me(t,pi);return(e="function"==typeof e?e:i)&&n.pop(),n.length&&n[0]===t[0]?Tr(n,i,e):[]}));function Ys(t){var e=null==t?0:t.length;return e?t[e-1]:i}var Ks=zr(Qs);function Qs(t,e){return t&&t.length&&e&&e.length?Vr(t,e):t}var Js=Zi((function(t,e){var n=null==t?0:t.length,r=ir(t,e);return qr(t,Me(e,(function(t){return gs(t,n)?+t:t})).sort(xi)),r}));function Xs(t){return null==t?t:wn.call(t)}var Zs=zr((function(t){return ai(gr(t,1,Wo,!0))})),to=zr((function(t){var e=Ys(t);return Wo(e)&&(e=i),ai(gr(t,1,Wo,!0),ss(e,2))})),eo=zr((function(t){var e=Ys(t);return e="function"==typeof e?e:i,ai(gr(t,1,Wo,!0),i,e)}));function no(t){if(!t||!t.length)return[];var e=0;return t=Ie(t,(function(t){if(Wo(t))return e=mn(t.length,e),!0})),ze(e,(function(e){return Me(t,Ve(e))}))}function ro(t,e){if(!t||!t.length)return[];var n=no(t);return null==e?n:Me(n,(function(t){return xe(e,i,t)}))}var io=zr((function(t,e){return Wo(t)?lr(t,e):[]})),so=zr((function(t){return fi(Ie(t,Wo))})),oo=zr((function(t){var e=Ys(t);return Wo(e)&&(e=i),fi(Ie(t,Wo),ss(e,2))})),ao=zr((function(t){var e=Ys(t);return e="function"==typeof e?e:i,fi(Ie(t,Wo),i,e)})),uo=zr(no),lo=zr((function(t){var e=t.length,n=e>1?t[e-1]:i;return n="function"==typeof n?(t.pop(),n):i,ro(t,n)}));function co(t){var e=Un(t);return e.__chain__=!0,e}function ho(t,e){return e(t)}var fo=Zi((function(t){var e=t.length,n=e?t[0]:0,r=this.__wrapped__,s=function(e){return ir(e,t)};return!(e>1||this.__actions__.length)&&r instanceof jn&&gs(n)?((r=r.slice(n,+n+(e?1:0))).__actions__.push({func:ho,args:[s],thisArg:i}),new $n(r,this.__chain__).thru((function(t){return e&&!t.length&&t.push(i),t}))):this.thru(s)})),po=Ii((function(t,e,n){Bt.call(t,n)?++t[n]:rr(t,n,1)})),go=Ri($s),mo=Ri(js);function vo(t,e){return(Vo(t)?Se:cr)(t,ss(e,3))}function yo(t,e){return(Vo(t)?Ee:hr)(t,ss(e,3))}var bo=Ii((function(t,e,n){Bt.call(t,n)?t[n].push(e):rr(t,n,[e])})),Ao=zr((function(t,e,n){var i=-1,s="function"==typeof e,o=Go(t)?r(t.length):[];return cr(t,(function(t){o[++i]=s?xe(e,t,n):Ir(t,e,n)})),o})),wo=Ii((function(t,e,n){rr(t,n,e)}));function Co(t,e){return(Vo(t)?Me:Dr)(t,ss(e,3))}var xo=Ii((function(t,e,n){t[n?0:1].push(e)}),(function(){return[[],[]]})),_o=zr((function(t,e){if(null==t)return[];var n=e.length;return n>1&&ms(t,e[0],e[1])?e=[]:n>2&&ms(e[0],e[1],e[2])&&(e=[e[0]]),$r(t,gr(e,1),[])})),So=le||function(){return he.Date.now()};function Eo(t,e,n){return e=n?i:e,e=t&&null==e?t.length:e,Yi(t,l,i,i,i,i,e)}function To(t,e){var n;if("function"!=typeof e)throw new Tt(s);return t=da(t),function(){return--t>0&&(n=e.apply(this,arguments)),t<=1&&(e=i),n}}var Io=zr((function(t,e,n){var r=1;if(n.length){var i=an(n,is(Io));r|=u}return Yi(t,r,e,n,i)})),No=zr((function(t,e,n){var r=3;if(n.length){var i=an(n,is(No));r|=u}return Yi(e,r,t,n,i)}));function Oo(t,e,n){var r,o,a,u,l,c,h=0,f=!1,d=!1,p=!0;if("function"!=typeof t)throw new Tt(s);function g(e){var n=r,s=o;return r=o=i,h=e,u=t.apply(s,n)}function m(t){var n=t-c;return c===i||n>=e||n<0||d&&t-h>=a}function v(){var t=So();if(m(t))return y(t);l=Ts(v,function(t){var n=e-(t-c);return d?vn(n,a-(t-h)):n}(t))}function y(t){return l=i,p&&r?g(t):(r=o=i,u)}function b(){var t=So(),n=m(t);if(r=arguments,o=this,c=t,n){if(l===i)return function(t){return h=t,l=Ts(v,e),f?g(t):u}(c);if(d)return bi(l),l=Ts(v,e),g(c)}return l===i&&(l=Ts(v,e)),u}return e=ga(e)||0,Zo(n)&&(f=!!n.leading,a=(d="maxWait"in n)?mn(ga(n.maxWait)||0,e):a,p="trailing"in n?!!n.trailing:p),b.cancel=function(){l!==i&&bi(l),h=0,r=c=o=l=i},b.flush=function(){return l===i?u:y(So())},b}var Mo=zr((function(t,e){return ur(t,1,e)})),Lo=zr((function(t,e,n){return ur(t,ga(e)||0,n)}));function Bo(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new Tt(s);var n=function(){var r=arguments,i=e?e.apply(this,r):r[0],s=n.cache;if(s.has(i))return s.get(i);var o=t.apply(this,r);return n.cache=s.set(i,o)||s,o};return n.cache=new(Bo.Cache||Gn),n}function Po(t){if("function"!=typeof t)throw new Tt(s);return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}Bo.Cache=Gn;var Ro=vi((function(t,e){var n=(e=1==e.length&&Vo(e[0])?Me(e[0],Ke(ss())):Me(gr(e,1),Ke(ss()))).length;return zr((function(r){for(var i=-1,s=vn(r.length,n);++i<s;)r[i]=e[i].call(this,r[i]);return xe(t,this,r)}))})),Do=zr((function(t,e){var n=an(e,is(Do));return Yi(t,u,i,e,n)})),Fo=zr((function(t,e){var n=an(e,is(Fo));return Yi(t,64,i,e,n)})),Uo=Zi((function(t,e){return Yi(t,256,i,i,i,e)}));function ko(t,e){return t===e||t!=t&&e!=e}var Ho=Vi(_r),$o=Vi((function(t,e){return t>=e})),jo=Nr(function(){return arguments}())?Nr:function(t){return ta(t)&&Bt.call(t,"callee")&&!Wt.call(t,"callee")},Vo=r.isArray,qo=ve?Ke(ve):function(t){return ta(t)&&xr(t)==M};function Go(t){return null!=t&&Xo(t.length)&&!Qo(t)}function Wo(t){return ta(t)&&Go(t)}var zo=me||gu,Yo=ye?Ke(ye):function(t){return ta(t)&&xr(t)==y};function Ko(t){if(!ta(t))return!1;var e=xr(t);return e==b||"[object DOMException]"==e||"string"==typeof t.message&&"string"==typeof t.name&&!ra(t)}function Qo(t){if(!Zo(t))return!1;var e=xr(t);return e==A||e==w||"[object AsyncFunction]"==e||"[object Proxy]"==e}function Jo(t){return"number"==typeof t&&t==da(t)}function Xo(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=h}function Zo(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function ta(t){return null!=t&&"object"==typeof t}var ea=be?Ke(be):function(t){return ta(t)&&hs(t)==C};function na(t){return"number"==typeof t||ta(t)&&xr(t)==x}function ra(t){if(!ta(t)||xr(t)!=_)return!1;var e=qt(t);if(null===e)return!0;var n=Bt.call(e,"constructor")&&e.constructor;return"function"==typeof n&&n instanceof n&&Lt.call(n)==Ft}var ia=Ae?Ke(Ae):function(t){return ta(t)&&xr(t)==E},sa=we?Ke(we):function(t){return ta(t)&&hs(t)==T};function oa(t){return"string"==typeof t||!Vo(t)&&ta(t)&&xr(t)==I}function aa(t){return"symbol"==typeof t||ta(t)&&xr(t)==N}var ua=Ce?Ke(Ce):function(t){return ta(t)&&Xo(t.length)&&!!ie[xr(t)]},la=Vi(Rr),ca=Vi((function(t,e){return t<=e}));function ha(t){if(!t)return[];if(Go(t))return oa(t)?hn(t):Ei(t);if(Kt&&t[Kt])return function(t){for(var e,n=[];!(e=t.next()).done;)n.push(e.value);return n}(t[Kt]());var e=hs(t);return(e==C?sn:e==T?un:ka)(t)}function fa(t){return t?(t=ga(t))===c||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}function da(t){var e=fa(t),n=e%1;return e==e?n?e-n:e:0}function pa(t){return t?sr(da(t),0,d):0}function ga(t){if("number"==typeof t)return t;if(aa(t))return f;if(Zo(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=Zo(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=Ye(t);var n=pt.test(t);return n||mt.test(t)?ue(t.slice(2),n?2:8):dt.test(t)?f:+t}function ma(t){return Ti(t,Ma(t))}function va(t){return null==t?"":oi(t)}var ya=Ni((function(t,e){if(As(e)||Go(e))Ti(e,Oa(e),t);else for(var n in e)Bt.call(e,n)&&Zn(t,n,e[n])})),ba=Ni((function(t,e){Ti(e,Ma(e),t)})),Aa=Ni((function(t,e,n,r){Ti(e,Ma(e),t,r)})),wa=Ni((function(t,e,n,r){Ti(e,Oa(e),t,r)})),Ca=Zi(ir),xa=zr((function(t,e){t=_t(t);var n=-1,r=e.length,s=r>2?e[2]:i;for(s&&ms(e[0],e[1],s)&&(r=1);++n<r;)for(var o=e[n],a=Ma(o),u=-1,l=a.length;++u<l;){var c=a[u],h=t[c];(h===i||ko(h,Ot[c])&&!Bt.call(t,c))&&(t[c]=o[c])}return t})),_a=zr((function(t){return t.push(i,Qi),xe(Ba,i,t)}));function Sa(t,e,n){var r=null==t?i:wr(t,e);return r===i?n:r}function Ea(t,e){return null!=t&&fs(t,e,Er)}var Ta=Ui((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=Dt.call(e)),t[e]=n}),Za(nu)),Ia=Ui((function(t,e,n){null!=e&&"function"!=typeof e.toString&&(e=Dt.call(e)),Bt.call(t,e)?t[e].push(n):t[e]=[n]}),ss),Na=zr(Ir);function Oa(t){return Go(t)?Yn(t):Pr(t)}function Ma(t){return Go(t)?Yn(t,!0):function(t){if(!Zo(t))return function(t){var e=[];if(null!=t)for(var n in _t(t))e.push(n);return e}(t);var e=As(t),n=[];for(var r in t)("constructor"!=r||!e&&Bt.call(t,r))&&n.push(r);return n}(t)}var La=Ni((function(t,e,n){kr(t,e,n)})),Ba=Ni((function(t,e,n,r){kr(t,e,n,r)})),Pa=Zi((function(t,e){var n={};if(null==t)return n;var r=!1;e=Me(e,(function(e){return e=mi(e,t),r||(r=e.length>1),e})),Ti(t,es(t),n),r&&(n=or(n,7,Ji));for(var i=e.length;i--;)ui(n,e[i]);return n})),Ra=Zi((function(t,e){return null==t?{}:function(t,e){return jr(t,e,(function(e,n){return Ea(t,n)}))}(t,e)}));function Da(t,e){if(null==t)return{};var n=Me(es(t),(function(t){return[t]}));return e=ss(e),jr(t,n,(function(t,n){return e(t,n[0])}))}var Fa=zi(Oa),Ua=zi(Ma);function ka(t){return null==t?[]:Qe(t,Oa(t))}var Ha=Bi((function(t,e,n){return e=e.toLowerCase(),t+(n?$a(e):e)}));function $a(t){return Ka(va(t).toLowerCase())}function ja(t){return(t=va(t))&&t.replace(yt,tn).replace(Jt,"")}var Va=Bi((function(t,e,n){return t+(n?"-":"")+e.toLowerCase()})),qa=Bi((function(t,e,n){return t+(n?" ":"")+e.toLowerCase()})),Ga=Li("toLowerCase"),Wa=Bi((function(t,e,n){return t+(n?"_":"")+e.toLowerCase()})),za=Bi((function(t,e,n){return t+(n?" ":"")+Ka(e)})),Ya=Bi((function(t,e,n){return t+(n?" ":"")+e.toUpperCase()})),Ka=Li("toUpperCase");function Qa(t,e,n){return t=va(t),(e=n?i:e)===i?function(t){return ee.test(t)}(t)?function(t){return t.match(Zt)||[]}(t):function(t){return t.match(ut)||[]}(t):t.match(e)||[]}var Ja=zr((function(t,e){try{return xe(t,i,e)}catch(t){return Ko(t)?t:new wt(t)}})),Xa=Zi((function(t,e){return Se(e,(function(e){e=Rs(e),rr(t,e,Io(t[e],t))})),t}));function Za(t){return function(){return t}}var tu=Di(),eu=Di(!0);function nu(t){return t}function ru(t){return Br("function"==typeof t?t:or(t,1))}var iu=zr((function(t,e){return function(n){return Ir(n,t,e)}})),su=zr((function(t,e){return function(n){return Ir(t,n,e)}}));function ou(t,e,n){var r=Oa(e),i=Ar(e,r);null!=n||Zo(e)&&(i.length||!r.length)||(n=e,e=t,t=this,i=Ar(e,Oa(e)));var s=!(Zo(n)&&"chain"in n&&!n.chain),o=Qo(t);return Se(i,(function(n){var r=e[n];t[n]=r,o&&(t.prototype[n]=function(){var e=this.__chain__;if(s||e){var n=t(this.__wrapped__);return(n.__actions__=Ei(this.__actions__)).push({func:r,args:arguments,thisArg:t}),n.__chain__=e,n}return r.apply(t,Le([this.value()],arguments))})})),t}function au(){}var uu=Hi(Me),lu=Hi(Te),cu=Hi(Re);function hu(t){return vs(t)?Ve(Rs(t)):function(t){return function(e){return wr(e,t)}}(t)}var fu=ji(),du=ji(!0);function pu(){return[]}function gu(){return!1}var mu,vu=ki((function(t,e){return t+e}),0),yu=Gi("ceil"),bu=ki((function(t,e){return t/e}),1),Au=Gi("floor"),wu=ki((function(t,e){return t*e}),1),Cu=Gi("round"),xu=ki((function(t,e){return t-e}),0);return Un.after=function(t,e){if("function"!=typeof e)throw new Tt(s);return t=da(t),function(){if(--t<1)return e.apply(this,arguments)}},Un.ary=Eo,Un.assign=ya,Un.assignIn=ba,Un.assignInWith=Aa,Un.assignWith=wa,Un.at=Ca,Un.before=To,Un.bind=Io,Un.bindAll=Xa,Un.bindKey=No,Un.castArray=function(){if(!arguments.length)return[];var t=arguments[0];return Vo(t)?t:[t]},Un.chain=co,Un.chunk=function(t,e,n){e=(n?ms(t,e,n):e===i)?1:mn(da(e),0);var s=null==t?0:t.length;if(!s||e<1)return[];for(var o=0,a=0,u=r(fe(s/e));o<s;)u[a++]=ti(t,o,o+=e);return u},Un.compact=function(t){for(var e=-1,n=null==t?0:t.length,r=0,i=[];++e<n;){var s=t[e];s&&(i[r++]=s)}return i},Un.concat=function(){var t=arguments.length;if(!t)return[];for(var e=r(t-1),n=arguments[0],i=t;i--;)e[i-1]=arguments[i];return Le(Vo(n)?Ei(n):[n],gr(e,1))},Un.cond=function(t){var e=null==t?0:t.length,n=ss();return t=e?Me(t,(function(t){if("function"!=typeof t[1])throw new Tt(s);return[n(t[0]),t[1]]})):[],zr((function(n){for(var r=-1;++r<e;){var i=t[r];if(xe(i[0],this,n))return xe(i[1],this,n)}}))},Un.conforms=function(t){return function(t){var e=Oa(t);return function(n){return ar(n,t,e)}}(or(t,1))},Un.constant=Za,Un.countBy=po,Un.create=function(t,e){var n=kn(t);return null==e?n:nr(n,e)},Un.curry=function t(e,n,r){var s=Yi(e,8,i,i,i,i,i,n=r?i:n);return s.placeholder=t.placeholder,s},Un.curryRight=function t(e,n,r){var s=Yi(e,16,i,i,i,i,i,n=r?i:n);return s.placeholder=t.placeholder,s},Un.debounce=Oo,Un.defaults=xa,Un.defaultsDeep=_a,Un.defer=Mo,Un.delay=Lo,Un.difference=Us,Un.differenceBy=ks,Un.differenceWith=Hs,Un.drop=function(t,e,n){var r=null==t?0:t.length;return r?ti(t,(e=n||e===i?1:da(e))<0?0:e,r):[]},Un.dropRight=function(t,e,n){var r=null==t?0:t.length;return r?ti(t,0,(e=r-(e=n||e===i?1:da(e)))<0?0:e):[]},Un.dropRightWhile=function(t,e){return t&&t.length?ci(t,ss(e,3),!0,!0):[]},Un.dropWhile=function(t,e){return t&&t.length?ci(t,ss(e,3),!0):[]},Un.fill=function(t,e,n,r){var s=null==t?0:t.length;return s?(n&&"number"!=typeof n&&ms(t,e,n)&&(n=0,r=s),function(t,e,n,r){var s=t.length;for((n=da(n))<0&&(n=-n>s?0:s+n),(r=r===i||r>s?s:da(r))<0&&(r+=s),r=n>r?0:pa(r);n<r;)t[n++]=e;return t}(t,e,n,r)):[]},Un.filter=function(t,e){return(Vo(t)?Ie:pr)(t,ss(e,3))},Un.flatMap=function(t,e){return gr(Co(t,e),1)},Un.flatMapDeep=function(t,e){return gr(Co(t,e),c)},Un.flatMapDepth=function(t,e,n){return n=n===i?1:da(n),gr(Co(t,e),n)},Un.flatten=Vs,Un.flattenDeep=function(t){return null!=t&&t.length?gr(t,c):[]},Un.flattenDepth=function(t,e){return null!=t&&t.length?gr(t,e=e===i?1:da(e)):[]},Un.flip=function(t){return Yi(t,512)},Un.flow=tu,Un.flowRight=eu,Un.fromPairs=function(t){for(var e=-1,n=null==t?0:t.length,r={};++e<n;){var i=t[e];r[i[0]]=i[1]}return r},Un.functions=function(t){return null==t?[]:Ar(t,Oa(t))},Un.functionsIn=function(t){return null==t?[]:Ar(t,Ma(t))},Un.groupBy=bo,Un.initial=function(t){return null!=t&&t.length?ti(t,0,-1):[]},Un.intersection=Gs,Un.intersectionBy=Ws,Un.intersectionWith=zs,Un.invert=Ta,Un.invertBy=Ia,Un.invokeMap=Ao,Un.iteratee=ru,Un.keyBy=wo,Un.keys=Oa,Un.keysIn=Ma,Un.map=Co,Un.mapKeys=function(t,e){var n={};return e=ss(e,3),yr(t,(function(t,r,i){rr(n,e(t,r,i),t)})),n},Un.mapValues=function(t,e){var n={};return e=ss(e,3),yr(t,(function(t,r,i){rr(n,r,e(t,r,i))})),n},Un.matches=function(t){return Fr(or(t,1))},Un.matchesProperty=function(t,e){return Ur(t,or(e,1))},Un.memoize=Bo,Un.merge=La,Un.mergeWith=Ba,Un.method=iu,Un.methodOf=su,Un.mixin=ou,Un.negate=Po,Un.nthArg=function(t){return t=da(t),zr((function(e){return Hr(e,t)}))},Un.omit=Pa,Un.omitBy=function(t,e){return Da(t,Po(ss(e)))},Un.once=function(t){return To(2,t)},Un.orderBy=function(t,e,n,r){return null==t?[]:(Vo(e)||(e=null==e?[]:[e]),Vo(n=r?i:n)||(n=null==n?[]:[n]),$r(t,e,n))},Un.over=uu,Un.overArgs=Ro,Un.overEvery=lu,Un.overSome=cu,Un.partial=Do,Un.partialRight=Fo,Un.partition=xo,Un.pick=Ra,Un.pickBy=Da,Un.property=hu,Un.propertyOf=function(t){return function(e){return null==t?i:wr(t,e)}},Un.pull=Ks,Un.pullAll=Qs,Un.pullAllBy=function(t,e,n){return t&&t.length&&e&&e.length?Vr(t,e,ss(n,2)):t},Un.pullAllWith=function(t,e,n){return t&&t.length&&e&&e.length?Vr(t,e,i,n):t},Un.pullAt=Js,Un.range=fu,Un.rangeRight=du,Un.rearg=Uo,Un.reject=function(t,e){return(Vo(t)?Ie:pr)(t,Po(ss(e,3)))},Un.remove=function(t,e){var n=[];if(!t||!t.length)return n;var r=-1,i=[],s=t.length;for(e=ss(e,3);++r<s;){var o=t[r];e(o,r,t)&&(n.push(o),i.push(r))}return qr(t,i),n},Un.rest=function(t,e){if("function"!=typeof t)throw new Tt(s);return zr(t,e=e===i?e:da(e))},Un.reverse=Xs,Un.sampleSize=function(t,e,n){return e=(n?ms(t,e,n):e===i)?1:da(e),(Vo(t)?Qn:Kr)(t,e)},Un.set=function(t,e,n){return null==t?t:Qr(t,e,n)},Un.setWith=function(t,e,n,r){return r="function"==typeof r?r:i,null==t?t:Qr(t,e,n,r)},Un.shuffle=function(t){return(Vo(t)?Jn:Zr)(t)},Un.slice=function(t,e,n){var r=null==t?0:t.length;return r?(n&&"number"!=typeof n&&ms(t,e,n)?(e=0,n=r):(e=null==e?0:da(e),n=n===i?r:da(n)),ti(t,e,n)):[]},Un.sortBy=_o,Un.sortedUniq=function(t){return t&&t.length?ii(t):[]},Un.sortedUniqBy=function(t,e){return t&&t.length?ii(t,ss(e,2)):[]},Un.split=function(t,e,n){return n&&"number"!=typeof n&&ms(t,e,n)&&(e=n=i),(n=n===i?d:n>>>0)?(t=va(t))&&("string"==typeof e||null!=e&&!ia(e))&&!(e=oi(e))&&rn(t)?yi(hn(t),0,n):t.split(e,n):[]},Un.spread=function(t,e){if("function"!=typeof t)throw new Tt(s);return e=null==e?0:mn(da(e),0),zr((function(n){var r=n[e],i=yi(n,0,e);return r&&Le(i,r),xe(t,this,i)}))},Un.tail=function(t){var e=null==t?0:t.length;return e?ti(t,1,e):[]},Un.take=function(t,e,n){return t&&t.length?ti(t,0,(e=n||e===i?1:da(e))<0?0:e):[]},Un.takeRight=function(t,e,n){var r=null==t?0:t.length;return r?ti(t,(e=r-(e=n||e===i?1:da(e)))<0?0:e,r):[]},Un.takeRightWhile=function(t,e){return t&&t.length?ci(t,ss(e,3),!1,!0):[]},Un.takeWhile=function(t,e){return t&&t.length?ci(t,ss(e,3)):[]},Un.tap=function(t,e){return e(t),t},Un.throttle=function(t,e,n){var r=!0,i=!0;if("function"!=typeof t)throw new Tt(s);return Zo(n)&&(r="leading"in n?!!n.leading:r,i="trailing"in n?!!n.trailing:i),Oo(t,e,{leading:r,maxWait:e,trailing:i})},Un.thru=ho,Un.toArray=ha,Un.toPairs=Fa,Un.toPairsIn=Ua,Un.toPath=function(t){return Vo(t)?Me(t,Rs):aa(t)?[t]:Ei(Ps(va(t)))},Un.toPlainObject=ma,Un.transform=function(t,e,n){var r=Vo(t),i=r||zo(t)||ua(t);if(e=ss(e,4),null==n){var s=t&&t.constructor;n=i?r?new s:[]:Zo(t)&&Qo(s)?kn(qt(t)):{}}return(i?Se:yr)(t,(function(t,r,i){return e(n,t,r,i)})),n},Un.unary=function(t){return Eo(t,1)},Un.union=Zs,Un.unionBy=to,Un.unionWith=eo,Un.uniq=function(t){return t&&t.length?ai(t):[]},Un.uniqBy=function(t,e){return t&&t.length?ai(t,ss(e,2)):[]},Un.uniqWith=function(t,e){return e="function"==typeof e?e:i,t&&t.length?ai(t,i,e):[]},Un.unset=function(t,e){return null==t||ui(t,e)},Un.unzip=no,Un.unzipWith=ro,Un.update=function(t,e,n){return null==t?t:li(t,e,gi(n))},Un.updateWith=function(t,e,n,r){return r="function"==typeof r?r:i,null==t?t:li(t,e,gi(n),r)},Un.values=ka,Un.valuesIn=function(t){return null==t?[]:Qe(t,Ma(t))},Un.without=io,Un.words=Qa,Un.wrap=function(t,e){return Do(gi(e),t)},Un.xor=so,Un.xorBy=oo,Un.xorWith=ao,Un.zip=uo,Un.zipObject=function(t,e){return di(t||[],e||[],Zn)},Un.zipObjectDeep=function(t,e){return di(t||[],e||[],Qr)},Un.zipWith=lo,Un.entries=Fa,Un.entriesIn=Ua,Un.extend=ba,Un.extendWith=Aa,ou(Un,Un),Un.add=vu,Un.attempt=Ja,Un.camelCase=Ha,Un.capitalize=$a,Un.ceil=yu,Un.clamp=function(t,e,n){return n===i&&(n=e,e=i),n!==i&&(n=(n=ga(n))==n?n:0),e!==i&&(e=(e=ga(e))==e?e:0),sr(ga(t),e,n)},Un.clone=function(t){return or(t,4)},Un.cloneDeep=function(t){return or(t,5)},Un.cloneDeepWith=function(t,e){return or(t,5,e="function"==typeof e?e:i)},Un.cloneWith=function(t,e){return or(t,4,e="function"==typeof e?e:i)},Un.conformsTo=function(t,e){return null==e||ar(t,e,Oa(e))},Un.deburr=ja,Un.defaultTo=function(t,e){return null==t||t!=t?e:t},Un.divide=bu,Un.endsWith=function(t,e,n){t=va(t),e=oi(e);var r=t.length,s=n=n===i?r:sr(da(n),0,r);return(n-=e.length)>=0&&t.slice(n,s)==e},Un.eq=ko,Un.escape=function(t){return(t=va(t))&&Y.test(t)?t.replace(W,en):t},Un.escapeRegExp=function(t){return(t=va(t))&&nt.test(t)?t.replace(et,"\\$&"):t},Un.every=function(t,e,n){var r=Vo(t)?Te:fr;return n&&ms(t,e,n)&&(e=i),r(t,ss(e,3))},Un.find=go,Un.findIndex=$s,Un.findKey=function(t,e){return Fe(t,ss(e,3),yr)},Un.findLast=mo,Un.findLastIndex=js,Un.findLastKey=function(t,e){return Fe(t,ss(e,3),br)},Un.floor=Au,Un.forEach=vo,Un.forEachRight=yo,Un.forIn=function(t,e){return null==t?t:mr(t,ss(e,3),Ma)},Un.forInRight=function(t,e){return null==t?t:vr(t,ss(e,3),Ma)},Un.forOwn=function(t,e){return t&&yr(t,ss(e,3))},Un.forOwnRight=function(t,e){return t&&br(t,ss(e,3))},Un.get=Sa,Un.gt=Ho,Un.gte=$o,Un.has=function(t,e){return null!=t&&fs(t,e,Sr)},Un.hasIn=Ea,Un.head=qs,Un.identity=nu,Un.includes=function(t,e,n,r){t=Go(t)?t:ka(t),n=n&&!r?da(n):0;var i=t.length;return n<0&&(n=mn(i+n,0)),oa(t)?n<=i&&t.indexOf(e,n)>-1:!!i&&ke(t,e,n)>-1},Un.indexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var i=null==n?0:da(n);return i<0&&(i=mn(r+i,0)),ke(t,e,i)},Un.inRange=function(t,e,n){return e=fa(e),n===i?(n=e,e=0):n=fa(n),function(t,e,n){return t>=vn(e,n)&&t<mn(e,n)}(t=ga(t),e,n)},Un.invoke=Na,Un.isArguments=jo,Un.isArray=Vo,Un.isArrayBuffer=qo,Un.isArrayLike=Go,Un.isArrayLikeObject=Wo,Un.isBoolean=function(t){return!0===t||!1===t||ta(t)&&xr(t)==v},Un.isBuffer=zo,Un.isDate=Yo,Un.isElement=function(t){return ta(t)&&1===t.nodeType&&!ra(t)},Un.isEmpty=function(t){if(null==t)return!0;if(Go(t)&&(Vo(t)||"string"==typeof t||"function"==typeof t.splice||zo(t)||ua(t)||jo(t)))return!t.length;var e=hs(t);if(e==C||e==T)return!t.size;if(As(t))return!Pr(t).length;for(var n in t)if(Bt.call(t,n))return!1;return!0},Un.isEqual=function(t,e){return Or(t,e)},Un.isEqualWith=function(t,e,n){var r=(n="function"==typeof n?n:i)?n(t,e):i;return r===i?Or(t,e,i,n):!!r},Un.isError=Ko,Un.isFinite=function(t){return"number"==typeof t&&De(t)},Un.isFunction=Qo,Un.isInteger=Jo,Un.isLength=Xo,Un.isMap=ea,Un.isMatch=function(t,e){return t===e||Mr(t,e,as(e))},Un.isMatchWith=function(t,e,n){return n="function"==typeof n?n:i,Mr(t,e,as(e),n)},Un.isNaN=function(t){return na(t)&&t!=+t},Un.isNative=function(t){if(bs(t))throw new wt("Unsupported core-js use. Try https://npms.io/search?q=ponyfill.");return Lr(t)},Un.isNil=function(t){return null==t},Un.isNull=function(t){return null===t},Un.isNumber=na,Un.isObject=Zo,Un.isObjectLike=ta,Un.isPlainObject=ra,Un.isRegExp=ia,Un.isSafeInteger=function(t){return Jo(t)&&t>=-9007199254740991&&t<=h},Un.isSet=sa,Un.isString=oa,Un.isSymbol=aa,Un.isTypedArray=ua,Un.isUndefined=function(t){return t===i},Un.isWeakMap=function(t){return ta(t)&&hs(t)==O},Un.isWeakSet=function(t){return ta(t)&&"[object WeakSet]"==xr(t)},Un.join=function(t,e){return null==t?"":qe.call(t,e)},Un.kebabCase=Va,Un.last=Ys,Un.lastIndexOf=function(t,e,n){var r=null==t?0:t.length;if(!r)return-1;var s=r;return n!==i&&(s=(s=da(n))<0?mn(r+s,0):vn(s,r-1)),e==e?function(t,e,n){for(var r=n+1;r--;)if(t[r]===e)return r;return r}(t,e,s):Ue(t,$e,s,!0)},Un.lowerCase=qa,Un.lowerFirst=Ga,Un.lt=la,Un.lte=ca,Un.max=function(t){return t&&t.length?dr(t,nu,_r):i},Un.maxBy=function(t,e){return t&&t.length?dr(t,ss(e,2),_r):i},Un.mean=function(t){return je(t,nu)},Un.meanBy=function(t,e){return je(t,ss(e,2))},Un.min=function(t){return t&&t.length?dr(t,nu,Rr):i},Un.minBy=function(t,e){return t&&t.length?dr(t,ss(e,2),Rr):i},Un.stubArray=pu,Un.stubFalse=gu,Un.stubObject=function(){return{}},Un.stubString=function(){return""},Un.stubTrue=function(){return!0},Un.multiply=wu,Un.nth=function(t,e){return t&&t.length?Hr(t,da(e)):i},Un.noConflict=function(){return he._===this&&(he._=Ut),this},Un.noop=au,Un.now=So,Un.pad=function(t,e,n){t=va(t);var r=(e=da(e))?cn(t):0;if(!e||r>=e)return t;var i=(e-r)/2;return $i(de(i),n)+t+$i(fe(i),n)},Un.padEnd=function(t,e,n){t=va(t);var r=(e=da(e))?cn(t):0;return e&&r<e?t+$i(e-r,n):t},Un.padStart=function(t,e,n){t=va(t);var r=(e=da(e))?cn(t):0;return e&&r<e?$i(e-r,n)+t:t},Un.parseInt=function(t,e,n){return n||null==e?e=0:e&&(e=+e),bn(va(t).replace(rt,""),e||0)},Un.random=function(t,e,n){if(n&&"boolean"!=typeof n&&ms(t,e,n)&&(e=n=i),n===i&&("boolean"==typeof e?(n=e,e=i):"boolean"==typeof t&&(n=t,t=i)),t===i&&e===i?(t=0,e=1):(t=fa(t),e===i?(e=t,t=0):e=fa(e)),t>e){var r=t;t=e,e=r}if(n||t%1||e%1){var s=An();return vn(t+s*(e-t+ae("1e-"+((s+"").length-1))),e)}return Gr(t,e)},Un.reduce=function(t,e,n){var r=Vo(t)?Be:Ge,i=arguments.length<3;return r(t,ss(e,4),n,i,cr)},Un.reduceRight=function(t,e,n){var r=Vo(t)?Pe:Ge,i=arguments.length<3;return r(t,ss(e,4),n,i,hr)},Un.repeat=function(t,e,n){return e=(n?ms(t,e,n):e===i)?1:da(e),Wr(va(t),e)},Un.replace=function(){var t=arguments,e=va(t[0]);return t.length<3?e:e.replace(t[1],t[2])},Un.result=function(t,e,n){var r=-1,s=(e=mi(e,t)).length;for(s||(s=1,t=i);++r<s;){var o=null==t?i:t[Rs(e[r])];o===i&&(r=s,o=n),t=Qo(o)?o.call(t):o}return t},Un.round=Cu,Un.runInContext=t,Un.sample=function(t){return(Vo(t)?Kn:Yr)(t)},Un.size=function(t){if(null==t)return 0;if(Go(t))return oa(t)?cn(t):t.length;var e=hs(t);return e==C||e==T?t.size:Pr(t).length},Un.snakeCase=Wa,Un.some=function(t,e,n){var r=Vo(t)?Re:ei;return n&&ms(t,e,n)&&(e=i),r(t,ss(e,3))},Un.sortedIndex=function(t,e){return ni(t,e)},Un.sortedIndexBy=function(t,e,n){return ri(t,e,ss(n,2))},Un.sortedIndexOf=function(t,e){var n=null==t?0:t.length;if(n){var r=ni(t,e);if(r<n&&ko(t[r],e))return r}return-1},Un.sortedLastIndex=function(t,e){return ni(t,e,!0)},Un.sortedLastIndexBy=function(t,e,n){return ri(t,e,ss(n,2),!0)},Un.sortedLastIndexOf=function(t,e){if(null!=t&&t.length){var n=ni(t,e,!0)-1;if(ko(t[n],e))return n}return-1},Un.startCase=za,Un.startsWith=function(t,e,n){return t=va(t),n=null==n?0:sr(da(n),0,t.length),e=oi(e),t.slice(n,n+e.length)==e},Un.subtract=xu,Un.sum=function(t){return t&&t.length?We(t,nu):0},Un.sumBy=function(t,e){return t&&t.length?We(t,ss(e,2)):0},Un.template=function(t,e,n){var r=Un.templateSettings;n&&ms(t,e,n)&&(e=i),t=va(t),e=Aa({},e,r,Ki);var s,o,a=Aa({},e.imports,r.imports,Ki),u=Oa(a),l=Qe(a,u),c=0,h=e.interpolate||bt,f="__p += '",d=St((e.escape||bt).source+"|"+h.source+"|"+(h===J?ht:bt).source+"|"+(e.evaluate||bt).source+"|$","g"),p="//# sourceURL="+(Bt.call(e,"sourceURL")?(e.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++re+"]")+"\n";t.replace(d,(function(e,n,r,i,a,u){return r||(r=i),f+=t.slice(c,u).replace(At,nn),n&&(s=!0,f+="' +\n__e("+n+") +\n'"),a&&(o=!0,f+="';\n"+a+";\n__p += '"),r&&(f+="' +\n((__t = ("+r+")) == null ? '' : __t) +\n'"),c=u+e.length,e})),f+="';\n";var g=Bt.call(e,"variable")&&e.variable;if(g){if(lt.test(g))throw new wt("Invalid `variable` option passed into `_.template`")}else f="with (obj) {\n"+f+"\n}\n";f=(o?f.replace(j,""):f).replace(V,"$1").replace(q,"$1;"),f="function("+(g||"obj")+") {\n"+(g?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(s?", __e = _.escape":"")+(o?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+f+"return __p\n}";var m=Ja((function(){return Ct(u,p+"return "+f).apply(i,l)}));if(m.source=f,Ko(m))throw m;return m},Un.times=function(t,e){if((t=da(t))<1||t>h)return[];var n=d,r=vn(t,d);e=ss(e),t-=d;for(var i=ze(r,e);++n<t;)e(n);return i},Un.toFinite=fa,Un.toInteger=da,Un.toLength=pa,Un.toLower=function(t){return va(t).toLowerCase()},Un.toNumber=ga,Un.toSafeInteger=function(t){return t?sr(da(t),-9007199254740991,h):0===t?t:0},Un.toString=va,Un.toUpper=function(t){return va(t).toUpperCase()},Un.trim=function(t,e,n){if((t=va(t))&&(n||e===i))return Ye(t);if(!t||!(e=oi(e)))return t;var r=hn(t),s=hn(e);return yi(r,Xe(r,s),Ze(r,s)+1).join("")},Un.trimEnd=function(t,e,n){if((t=va(t))&&(n||e===i))return t.slice(0,fn(t)+1);if(!t||!(e=oi(e)))return t;var r=hn(t);return yi(r,0,Ze(r,hn(e))+1).join("")},Un.trimStart=function(t,e,n){if((t=va(t))&&(n||e===i))return t.replace(rt,"");if(!t||!(e=oi(e)))return t;var r=hn(t);return yi(r,Xe(r,hn(e))).join("")},Un.truncate=function(t,e){var n=30,r="...";if(Zo(e)){var s="separator"in e?e.separator:s;n="length"in e?da(e.length):n,r="omission"in e?oi(e.omission):r}var o=(t=va(t)).length;if(rn(t)){var a=hn(t);o=a.length}if(n>=o)return t;var u=n-cn(r);if(u<1)return r;var l=a?yi(a,0,u).join(""):t.slice(0,u);if(s===i)return l+r;if(a&&(u+=l.length-u),ia(s)){if(t.slice(u).search(s)){var c,h=l;for(s.global||(s=St(s.source,va(ft.exec(s))+"g")),s.lastIndex=0;c=s.exec(h);)var f=c.index;l=l.slice(0,f===i?u:f)}}else if(t.indexOf(oi(s),u)!=u){var d=l.lastIndexOf(s);d>-1&&(l=l.slice(0,d))}return l+r},Un.unescape=function(t){return(t=va(t))&&z.test(t)?t.replace(G,dn):t},Un.uniqueId=function(t){var e=++Pt;return va(t)+e},Un.upperCase=Ya,Un.upperFirst=Ka,Un.each=vo,Un.eachRight=yo,Un.first=qs,ou(Un,(mu={},yr(Un,(function(t,e){Bt.call(Un.prototype,e)||(mu[e]=t)})),mu),{chain:!1}),Un.VERSION="4.17.21",Se(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){Un[t].placeholder=Un})),Se(["drop","take"],(function(t,e){jn.prototype[t]=function(n){n=n===i?1:mn(da(n),0);var r=this.__filtered__&&!e?new jn(this):this.clone();return r.__filtered__?r.__takeCount__=vn(n,r.__takeCount__):r.__views__.push({size:vn(n,d),type:t+(r.__dir__<0?"Right":"")}),r},jn.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}})),Se(["filter","map","takeWhile"],(function(t,e){var n=e+1,r=1==n||3==n;jn.prototype[t]=function(t){var e=this.clone();return e.__iteratees__.push({iteratee:ss(t,3),type:n}),e.__filtered__=e.__filtered__||r,e}})),Se(["head","last"],(function(t,e){var n="take"+(e?"Right":"");jn.prototype[t]=function(){return this[n](1).value()[0]}})),Se(["initial","tail"],(function(t,e){var n="drop"+(e?"":"Right");jn.prototype[t]=function(){return this.__filtered__?new jn(this):this[n](1)}})),jn.prototype.compact=function(){return this.filter(nu)},jn.prototype.find=function(t){return this.filter(t).head()},jn.prototype.findLast=function(t){return this.reverse().find(t)},jn.prototype.invokeMap=zr((function(t,e){return"function"==typeof t?new jn(this):this.map((function(n){return Ir(n,t,e)}))})),jn.prototype.reject=function(t){return this.filter(Po(ss(t)))},jn.prototype.slice=function(t,e){t=da(t);var n=this;return n.__filtered__&&(t>0||e<0)?new jn(n):(t<0?n=n.takeRight(-t):t&&(n=n.drop(t)),e!==i&&(n=(e=da(e))<0?n.dropRight(-e):n.take(e-t)),n)},jn.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},jn.prototype.toArray=function(){return this.take(d)},yr(jn.prototype,(function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),s=Un[r?"take"+("last"==e?"Right":""):e],o=r||/^find/.test(e);s&&(Un.prototype[e]=function(){var e=this.__wrapped__,a=r?[1]:arguments,u=e instanceof jn,l=a[0],c=u||Vo(e),h=function(t){var e=s.apply(Un,Le([t],a));return r&&f?e[0]:e};c&&n&&"function"==typeof l&&1!=l.length&&(u=c=!1);var f=this.__chain__,d=!!this.__actions__.length,p=o&&!f,g=u&&!d;if(!o&&c){e=g?e:new jn(this);var m=t.apply(e,a);return m.__actions__.push({func:ho,args:[h],thisArg:i}),new $n(m,f)}return p&&g?t.apply(this,a):(m=this.thru(h),p?r?m.value()[0]:m.value():m)})})),Se(["pop","push","shift","sort","splice","unshift"],(function(t){var e=It[t],n=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",r=/^(?:pop|shift)$/.test(t);Un.prototype[t]=function(){var t=arguments;if(r&&!this.__chain__){var i=this.value();return e.apply(Vo(i)?i:[],t)}return this[n]((function(n){return e.apply(Vo(n)?n:[],t)}))}})),yr(jn.prototype,(function(t,e){var n=Un[e];if(n){var r=n.name+"";Bt.call(Nn,r)||(Nn[r]=[]),Nn[r].push({name:e,func:n})}})),Nn[Fi(i,2).name]=[{name:"wrapper",func:i}],jn.prototype.clone=function(){var t=new jn(this.__wrapped__);return t.__actions__=Ei(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=Ei(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=Ei(this.__views__),t},jn.prototype.reverse=function(){if(this.__filtered__){var t=new jn(this);t.__dir__=-1,t.__filtered__=!0}else(t=this.clone()).__dir__*=-1;return t},jn.prototype.value=function(){var t=this.__wrapped__.value(),e=this.__dir__,n=Vo(t),r=e<0,i=n?t.length:0,s=function(t,e,n){for(var r=-1,i=n.length;++r<i;){var s=n[r],o=s.size;switch(s.type){case"drop":t+=o;break;case"dropRight":e-=o;break;case"take":e=vn(e,t+o);break;case"takeRight":t=mn(t,e-o)}}return{start:t,end:e}}(0,i,this.__views__),o=s.start,a=s.end,u=a-o,l=r?a:o-1,c=this.__iteratees__,h=c.length,f=0,d=vn(u,this.__takeCount__);if(!n||!r&&i==u&&d==u)return hi(t,this.__actions__);var p=[];t:for(;u--&&f<d;){for(var g=-1,m=t[l+=e];++g<h;){var v=c[g],y=v.iteratee,b=v.type,A=y(m);if(2==b)m=A;else if(!A){if(1==b)continue t;break t}}p[f++]=m}return p},Un.prototype.at=fo,Un.prototype.chain=function(){return co(this)},Un.prototype.commit=function(){return new $n(this.value(),this.__chain__)},Un.prototype.next=function(){this.__values__===i&&(this.__values__=ha(this.value()));var t=this.__index__>=this.__values__.length;return{done:t,value:t?i:this.__values__[this.__index__++]}},Un.prototype.plant=function(t){for(var e,n=this;n instanceof Hn;){var r=Fs(n);r.__index__=0,r.__values__=i,e?s.__wrapped__=r:e=r;var s=r;n=n.__wrapped__}return s.__wrapped__=t,e},Un.prototype.reverse=function(){var t=this.__wrapped__;if(t instanceof jn){var e=t;return this.__actions__.length&&(e=new jn(this)),(e=e.reverse()).__actions__.push({func:ho,args:[Xs],thisArg:i}),new $n(e,this.__chain__)}return this.thru(Xs)},Un.prototype.toJSON=Un.prototype.valueOf=Un.prototype.value=function(){return hi(this.__wrapped__,this.__actions__)},Un.prototype.first=Un.prototype.head,Kt&&(Un.prototype[Kt]=function(){return this}),Un}();he._=pn,(r=function(){return pn}.call(e,n,e,t))===i||(t.exports=r)}.call(this)},802:t=>{t.exports=function t(e,n,r){function i(o,a){if(!n[o]){if(!e[o]){if(s)return s(o,!0);throw new Error("Cannot find module '"+o+"'")}a=n[o]={exports:{}},e[o][0].call(a.exports,(function(t){return i(e[o][1][t]||t)}),a,a.exports,t,e,n,r)}return n[o].exports}for(var s=void 0,o=0;o<r.length;o++)i(r[o]);return i}({1:[function(t,e,n){(function(r,i,s,o,a,u,l,c,h){"use strict";var f=t("crypto");function d(t,e){var n;return void 0===(n="passthrough"!==(e=m(t,e)).algorithm?f.createHash(e.algorithm):new b).write&&(n.write=n.update,n.end=n.update),y(e,n).dispatch(t),n.update||n.end(""),n.digest?n.digest("buffer"===e.encoding?void 0:e.encoding):(t=n.read(),"buffer"!==e.encoding?t.toString(e.encoding):t)}(n=e.exports=d).sha1=function(t){return d(t)},n.keys=function(t){return d(t,{excludeValues:!0,algorithm:"sha1",encoding:"hex"})},n.MD5=function(t){return d(t,{algorithm:"md5",encoding:"hex"})},n.keysMD5=function(t){return d(t,{algorithm:"md5",encoding:"hex",excludeValues:!0})};var p=f.getHashes?f.getHashes().slice():["sha1","md5"],g=(p.push("passthrough"),["buffer","hex","binary","base64"]);function m(t,e){var n={};if(n.algorithm=(e=e||{}).algorithm||"sha1",n.encoding=e.encoding||"hex",n.excludeValues=!!e.excludeValues,n.algorithm=n.algorithm.toLowerCase(),n.encoding=n.encoding.toLowerCase(),n.ignoreUnknown=!0===e.ignoreUnknown,n.respectType=!1!==e.respectType,n.respectFunctionNames=!1!==e.respectFunctionNames,n.respectFunctionProperties=!1!==e.respectFunctionProperties,n.unorderedArrays=!0===e.unorderedArrays,n.unorderedSets=!1!==e.unorderedSets,n.unorderedObjects=!1!==e.unorderedObjects,n.replacer=e.replacer||void 0,n.excludeKeys=e.excludeKeys||void 0,void 0===t)throw new Error("Object argument required.");for(var r=0;r<p.length;++r)p[r].toLowerCase()===n.algorithm.toLowerCase()&&(n.algorithm=p[r]);if(-1===p.indexOf(n.algorithm))throw new Error('Algorithm "'+n.algorithm+'" not supported. supported values: '+p.join(", "));if(-1===g.indexOf(n.encoding)&&"passthrough"!==n.algorithm)throw new Error('Encoding "'+n.encoding+'" not supported. supported values: '+g.join(", "));return n}function v(t){if("function"==typeof t)return null!=/^function\s+\w*\s*\(\s*\)\s*{\s+\[native code\]\s+}$/i.exec(Function.prototype.toString.call(t))}function y(t,e,n){function r(t){return e.update?e.update(t,"utf8"):e.write(t,"utf8")}return n=n||[],{dispatch:function(e){return this["_"+(null===(e=t.replacer?t.replacer(e):e)?"null":typeof e)](e)},_object:function(e){var i,o=Object.prototype.toString.call(e),a=/\[object (.*)\]/i.exec(o);if(a=(a=a?a[1]:"unknown:["+o+"]").toLowerCase(),0<=(o=n.indexOf(e)))return this.dispatch("[CIRCULAR:"+o+"]");if(n.push(e),void 0!==s&&s.isBuffer&&s.isBuffer(e))return r("buffer:"),r(e);if("object"===a||"function"===a||"asyncfunction"===a)return o=Object.keys(e),t.unorderedObjects&&(o=o.sort()),!1===t.respectType||v(e)||o.splice(0,0,"prototype","__proto__","constructor"),t.excludeKeys&&(o=o.filter((function(e){return!t.excludeKeys(e)}))),r("object:"+o.length+":"),i=this,o.forEach((function(n){i.dispatch(n),r(":"),t.excludeValues||i.dispatch(e[n]),r(",")}));if(!this["_"+a]){if(t.ignoreUnknown)return r("["+a+"]");throw new Error('Unknown object type "'+a+'"')}this["_"+a](e)},_array:function(e,i){i=void 0!==i?i:!1!==t.unorderedArrays;var s=this;if(r("array:"+e.length+":"),!i||e.length<=1)return e.forEach((function(t){return s.dispatch(t)}));var o=[];return i=e.map((function(e){var r=new b,i=n.slice();return y(t,r,i).dispatch(e),o=o.concat(i.slice(n.length)),r.read().toString()})),n=n.concat(o),i.sort(),this._array(i,!1)},_date:function(t){return r("date:"+t.toJSON())},_symbol:function(t){return r("symbol:"+t.toString())},_error:function(t){return r("error:"+t.toString())},_boolean:function(t){return r("bool:"+t.toString())},_string:function(t){r("string:"+t.length+":"),r(t.toString())},_function:function(e){r("fn:"),v(e)?this.dispatch("[native]"):this.dispatch(e.toString()),!1!==t.respectFunctionNames&&this.dispatch("function-name:"+String(e.name)),t.respectFunctionProperties&&this._object(e)},_number:function(t){return r("number:"+t.toString())},_xml:function(t){return r("xml:"+t.toString())},_null:function(){return r("Null")},_undefined:function(){return r("Undefined")},_regexp:function(t){return r("regex:"+t.toString())},_uint8array:function(t){return r("uint8array:"),this.dispatch(Array.prototype.slice.call(t))},_uint8clampedarray:function(t){return r("uint8clampedarray:"),this.dispatch(Array.prototype.slice.call(t))},_int8array:function(t){return r("int8array:"),this.dispatch(Array.prototype.slice.call(t))},_uint16array:function(t){return r("uint16array:"),this.dispatch(Array.prototype.slice.call(t))},_int16array:function(t){return r("int16array:"),this.dispatch(Array.prototype.slice.call(t))},_uint32array:function(t){return r("uint32array:"),this.dispatch(Array.prototype.slice.call(t))},_int32array:function(t){return r("int32array:"),this.dispatch(Array.prototype.slice.call(t))},_float32array:function(t){return r("float32array:"),this.dispatch(Array.prototype.slice.call(t))},_float64array:function(t){return r("float64array:"),this.dispatch(Array.prototype.slice.call(t))},_arraybuffer:function(t){return r("arraybuffer:"),this.dispatch(new Uint8Array(t))},_url:function(t){return r("url:"+t.toString())},_map:function(e){return r("map:"),e=Array.from(e),this._array(e,!1!==t.unorderedSets)},_set:function(e){return r("set:"),e=Array.from(e),this._array(e,!1!==t.unorderedSets)},_file:function(t){return r("file:"),this.dispatch([t.name,t.size,t.type,t.lastModfied])},_blob:function(){if(t.ignoreUnknown)return r("[blob]");throw Error('Hashing Blob objects is currently not supported\n(see https://github.com/puleos/object-hash/issues/26)\nUse "options.replacer" or "options.ignoreUnknown"\n')},_domwindow:function(){return r("domwindow")},_bigint:function(t){return r("bigint:"+t.toString())},_process:function(){return r("process")},_timer:function(){return r("timer")},_pipe:function(){return r("pipe")},_tcp:function(){return r("tcp")},_udp:function(){return r("udp")},_tty:function(){return r("tty")},_statwatcher:function(){return r("statwatcher")},_securecontext:function(){return r("securecontext")},_connection:function(){return r("connection")},_zlib:function(){return r("zlib")},_context:function(){return r("context")},_nodescript:function(){return r("nodescript")},_httpparser:function(){return r("httpparser")},_dataview:function(){return r("dataview")},_signal:function(){return r("signal")},_fsevent:function(){return r("fsevent")},_tlswrap:function(){return r("tlswrap")}}}function b(){return{buf:"",write:function(t){this.buf+=t},end:function(t){this.buf+=t},read:function(){return this.buf}}}n.writeToStream=function(t,e,n){return void 0===n&&(n=e,e={}),y(e=m(t,e),n).dispatch(t)}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/fake_9a5aa49d.js","/")},{buffer:3,crypto:5,lYpoI2:11}],2:[function(t,e,n){(function(t,e,r,i,s,o,a,u,l){!function(t){"use strict";var e="undefined"!=typeof Uint8Array?Uint8Array:Array,n="+".charCodeAt(0),r="/".charCodeAt(0),i="0".charCodeAt(0),s="a".charCodeAt(0),o="A".charCodeAt(0),a="-".charCodeAt(0),u="_".charCodeAt(0);function l(t){return(t=t.charCodeAt(0))===n||t===a?62:t===r||t===u?63:t<i?-1:t<i+10?t-i+26+26:t<o+26?t-o:t<s+26?t-s+26:void 0}t.toByteArray=function(t){var n,r;if(0<t.length%4)throw new Error("Invalid string. Length must be a multiple of 4");var i=t.length,s=(i="="===t.charAt(i-2)?2:"="===t.charAt(i-1)?1:0,new e(3*t.length/4-i)),o=0<i?t.length-4:t.length,a=0;function u(t){s[a++]=t}for(n=0;n<o;n+=4,0)u((16711680&(r=l(t.charAt(n))<<18|l(t.charAt(n+1))<<12|l(t.charAt(n+2))<<6|l(t.charAt(n+3))))>>16),u((65280&r)>>8),u(255&r);return 2==i?u(255&(r=l(t.charAt(n))<<2|l(t.charAt(n+1))>>4)):1==i&&(u((r=l(t.charAt(n))<<10|l(t.charAt(n+1))<<4|l(t.charAt(n+2))>>2)>>8&255),u(255&r)),s},t.fromByteArray=function(t){var e,n,r,i,s=t.length%3,o="";function a(t){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(t)}for(e=0,r=t.length-s;e<r;e+=3)o+=a((i=n=(t[e]<<16)+(t[e+1]<<8)+t[e+2])>>18&63)+a(i>>12&63)+a(i>>6&63)+a(63&i);switch(s){case 1:o=(o+=a((n=t[t.length-1])>>2))+a(n<<4&63)+"==";break;case 2:o=(o=(o+=a((n=(t[t.length-2]<<8)+t[t.length-1])>>10))+a(n>>4&63))+a(n<<2&63)+"="}return o}}(void 0===n?this.base64js={}:n)}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/base64-js/lib/b64.js","/node_modules/gulp-browserify/node_modules/base64-js/lib")},{buffer:3,lYpoI2:11}],3:[function(t,e,n){(function(e,r,i,s,o,a,u,l,c){var h=t("base64-js"),f=t("ieee754");function i(t,e,n){if(!(this instanceof i))return new i(t,e,n);var r,s,o,a,u=typeof t;if("base64"===e&&"string"==u)for(t=(a=t).trim?a.trim():a.replace(/^\s+|\s+$/g,"");t.length%4!=0;)t+="=";if("number"==u)r=T(t);else if("string"==u)r=i.byteLength(t,e);else{if("object"!=u)throw new Error("First argument needs to be a number, array or string.");r=T(t.length)}if(i._useTypedArrays?s=i._augment(new Uint8Array(r)):((s=this).length=r,s._isBuffer=!0),i._useTypedArrays&&"number"==typeof t.byteLength)s._set(t);else if(I(a=t)||i.isBuffer(a)||a&&"object"==typeof a&&"number"==typeof a.length)for(o=0;o<r;o++)i.isBuffer(t)?s[o]=t.readUInt8(o):s[o]=t[o];else if("string"==u)s.write(t,0,e);else if("number"==u&&!i._useTypedArrays&&!n)for(o=0;o<r;o++)s[o]=0;return s}function d(t,e,n,r){var i;if(r||(F("boolean"==typeof n,"missing or invalid endian"),F(null!=e,"missing offset"),F(e+1<t.length,"Trying to read beyond buffer length")),!((r=t.length)<=e))return n?(i=t[e],e+1<r&&(i|=t[e+1]<<8)):(i=t[e]<<8,e+1<r&&(i|=t[e+1])),i}function p(t,e,n,r){var i;if(r||(F("boolean"==typeof n,"missing or invalid endian"),F(null!=e,"missing offset"),F(e+3<t.length,"Trying to read beyond buffer length")),!((r=t.length)<=e))return n?(e+2<r&&(i=t[e+2]<<16),e+1<r&&(i|=t[e+1]<<8),i|=t[e],e+3<r&&(i+=t[e+3]<<24>>>0)):(e+1<r&&(i=t[e+1]<<16),e+2<r&&(i|=t[e+2]<<8),e+3<r&&(i|=t[e+3]),i+=t[e]<<24>>>0),i}function g(t,e,n,r){if(r||(F("boolean"==typeof n,"missing or invalid endian"),F(null!=e,"missing offset"),F(e+1<t.length,"Trying to read beyond buffer length")),!(t.length<=e))return 32768&(r=d(t,e,n,!0))?-1*(65535-r+1):r}function m(t,e,n,r){if(r||(F("boolean"==typeof n,"missing or invalid endian"),F(null!=e,"missing offset"),F(e+3<t.length,"Trying to read beyond buffer length")),!(t.length<=e))return 2147483648&(r=p(t,e,n,!0))?-1*(4294967295-r+1):r}function v(t,e,n,r){return r||(F("boolean"==typeof n,"missing or invalid endian"),F(e+3<t.length,"Trying to read beyond buffer length")),f.read(t,e,n,23,4)}function y(t,e,n,r){return r||(F("boolean"==typeof n,"missing or invalid endian"),F(e+7<t.length,"Trying to read beyond buffer length")),f.read(t,e,n,52,8)}function b(t,e,n,r,i){if(i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+1<t.length,"trying to write beyond buffer length"),P(e,65535)),!((i=t.length)<=n))for(var s=0,o=Math.min(i-n,2);s<o;s++)t[n+s]=(e&255<<8*(r?s:1-s))>>>8*(r?s:1-s)}function A(t,e,n,r,i){if(i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+3<t.length,"trying to write beyond buffer length"),P(e,4294967295)),!((i=t.length)<=n))for(var s=0,o=Math.min(i-n,4);s<o;s++)t[n+s]=e>>>8*(r?s:3-s)&255}function w(t,e,n,r,i){i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+1<t.length,"Trying to write beyond buffer length"),R(e,32767,-32768)),t.length<=n||b(t,0<=e?e:65535+e+1,n,r,i)}function C(t,e,n,r,i){i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+3<t.length,"Trying to write beyond buffer length"),R(e,2147483647,-2147483648)),t.length<=n||A(t,0<=e?e:4294967295+e+1,n,r,i)}function x(t,e,n,r,i){i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+3<t.length,"Trying to write beyond buffer length"),D(e,34028234663852886e22,-34028234663852886e22)),t.length<=n||f.write(t,e,n,r,23,4)}function _(t,e,n,r,i){i||(F(null!=e,"missing value"),F("boolean"==typeof r,"missing or invalid endian"),F(null!=n,"missing offset"),F(n+7<t.length,"Trying to write beyond buffer length"),D(e,17976931348623157e292,-17976931348623157e292)),t.length<=n||f.write(t,e,n,r,52,8)}n.Buffer=i,n.SlowBuffer=i,n.INSPECT_MAX_BYTES=50,i.poolSize=8192,i._useTypedArrays=function(){try{var t=new ArrayBuffer(0),e=new Uint8Array(t);return e.foo=function(){return 42},42===e.foo()&&"function"==typeof e.subarray}catch(t){return!1}}(),i.isEncoding=function(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},i.isBuffer=function(t){return!(null==t||!t._isBuffer)},i.byteLength=function(t,e){var n;switch(t+="",e||"utf8"){case"hex":n=t.length/2;break;case"utf8":case"utf-8":n=O(t).length;break;case"ascii":case"binary":case"raw":n=t.length;break;case"base64":n=M(t).length;break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":n=2*t.length;break;default:throw new Error("Unknown encoding")}return n},i.concat=function(t,e){if(F(I(t),"Usage: Buffer.concat(list, [totalLength])\nlist should be an Array."),0===t.length)return new i(0);if(1===t.length)return t[0];if("number"!=typeof e)for(s=e=0;s<t.length;s++)e+=t[s].length;for(var n=new i(e),r=0,s=0;s<t.length;s++){var o=t[s];o.copy(n,r),r+=o.length}return n},i.prototype.write=function(t,e,n,r){isFinite(e)?isFinite(n)||(r=n,n=void 0):(l=r,r=e,e=n,n=l),e=Number(e)||0;var s,o,a,u,l=this.length-e;switch((!n||l<(n=Number(n)))&&(n=l),r=String(r||"utf8").toLowerCase()){case"hex":s=function(t,e,n,r){n=Number(n)||0;var s=t.length-n;(!r||s<(r=Number(r)))&&(r=s),F((s=e.length)%2==0,"Invalid hex string"),s/2<r&&(r=s/2);for(var o=0;o<r;o++){var a=parseInt(e.substr(2*o,2),16);F(!isNaN(a),"Invalid hex string"),t[n+o]=a}return i._charsWritten=2*o,o}(this,t,e,n);break;case"utf8":case"utf-8":o=this,a=e,u=n,s=i._charsWritten=L(O(t),o,a,u);break;case"ascii":case"binary":s=function(t,e,n,r){return i._charsWritten=L(function(t){for(var e=[],n=0;n<t.length;n++)e.push(255&t.charCodeAt(n));return e}(e),t,n,r)}(this,t,e,n);break;case"base64":o=this,a=e,u=n,s=i._charsWritten=L(M(t),o,a,u);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":s=function(t,e,n,r){return i._charsWritten=L(function(t){for(var e,n,r=[],i=0;i<t.length;i++)e=(n=t.charCodeAt(i))>>8,n%=256,r.push(n),r.push(e);return r}(e),t,n,r)}(this,t,e,n);break;default:throw new Error("Unknown encoding")}return s},i.prototype.toString=function(t,e,n){var r,i,s,o,a=this;if(t=String(t||"utf8").toLowerCase(),e=Number(e)||0,(n=void 0!==n?Number(n):a.length)===e)return"";switch(t){case"hex":r=function(t,e,n){var r=t.length;(!e||e<0)&&(e=0),(!n||n<0||r<n)&&(n=r);for(var i="",s=e;s<n;s++)i+=N(t[s]);return i}(a,e,n);break;case"utf8":case"utf-8":r=function(t,e,n){var r="",i="";n=Math.min(t.length,n);for(var s=e;s<n;s++)t[s]<=127?(r+=B(i)+String.fromCharCode(t[s]),i=""):i+="%"+t[s].toString(16);return r+B(i)}(a,e,n);break;case"ascii":case"binary":r=function(t,e,n){var r="";n=Math.min(t.length,n);for(var i=e;i<n;i++)r+=String.fromCharCode(t[i]);return r}(a,e,n);break;case"base64":i=a,o=n,r=0===(s=e)&&o===i.length?h.fromByteArray(i):h.fromByteArray(i.slice(s,o));break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":r=function(t,e,n){for(var r=t.slice(e,n),i="",s=0;s<r.length;s+=2)i+=String.fromCharCode(r[s]+256*r[s+1]);return i}(a,e,n);break;default:throw new Error("Unknown encoding")}return r},i.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},i.prototype.copy=function(t,e,n,r){if(e=e||0,(r=r||0===r?r:this.length)!==(n=n||0)&&0!==t.length&&0!==this.length){F(n<=r,"sourceEnd < sourceStart"),F(0<=e&&e<t.length,"targetStart out of bounds"),F(0<=n&&n<this.length,"sourceStart out of bounds"),F(0<=r&&r<=this.length,"sourceEnd out of bounds"),r>this.length&&(r=this.length);var s=(r=t.length-e<r-n?t.length-e+n:r)-n;if(s<100||!i._useTypedArrays)for(var o=0;o<s;o++)t[o+e]=this[o+n];else t._set(this.subarray(n,n+s),e)}},i.prototype.slice=function(t,e){var n=this.length;if(t=E(t,n,0),e=E(e,n,n),i._useTypedArrays)return i._augment(this.subarray(t,e));for(var r=e-t,s=new i(r,void 0,!0),o=0;o<r;o++)s[o]=this[o+t];return s},i.prototype.get=function(t){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(t)},i.prototype.set=function(t,e){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(t,e)},i.prototype.readUInt8=function(t,e){if(e||(F(null!=t,"missing offset"),F(t<this.length,"Trying to read beyond buffer length")),!(t>=this.length))return this[t]},i.prototype.readUInt16LE=function(t,e){return d(this,t,!0,e)},i.prototype.readUInt16BE=function(t,e){return d(this,t,!1,e)},i.prototype.readUInt32LE=function(t,e){return p(this,t,!0,e)},i.prototype.readUInt32BE=function(t,e){return p(this,t,!1,e)},i.prototype.readInt8=function(t,e){if(e||(F(null!=t,"missing offset"),F(t<this.length,"Trying to read beyond buffer length")),!(t>=this.length))return 128&this[t]?-1*(255-this[t]+1):this[t]},i.prototype.readInt16LE=function(t,e){return g(this,t,!0,e)},i.prototype.readInt16BE=function(t,e){return g(this,t,!1,e)},i.prototype.readInt32LE=function(t,e){return m(this,t,!0,e)},i.prototype.readInt32BE=function(t,e){return m(this,t,!1,e)},i.prototype.readFloatLE=function(t,e){return v(this,t,!0,e)},i.prototype.readFloatBE=function(t,e){return v(this,t,!1,e)},i.prototype.readDoubleLE=function(t,e){return y(this,t,!0,e)},i.prototype.readDoubleBE=function(t,e){return y(this,t,!1,e)},i.prototype.writeUInt8=function(t,e,n){n||(F(null!=t,"missing value"),F(null!=e,"missing offset"),F(e<this.length,"trying to write beyond buffer length"),P(t,255)),e>=this.length||(this[e]=t)},i.prototype.writeUInt16LE=function(t,e,n){b(this,t,e,!0,n)},i.prototype.writeUInt16BE=function(t,e,n){b(this,t,e,!1,n)},i.prototype.writeUInt32LE=function(t,e,n){A(this,t,e,!0,n)},i.prototype.writeUInt32BE=function(t,e,n){A(this,t,e,!1,n)},i.prototype.writeInt8=function(t,e,n){n||(F(null!=t,"missing value"),F(null!=e,"missing offset"),F(e<this.length,"Trying to write beyond buffer length"),R(t,127,-128)),e>=this.length||(0<=t?this.writeUInt8(t,e,n):this.writeUInt8(255+t+1,e,n))},i.prototype.writeInt16LE=function(t,e,n){w(this,t,e,!0,n)},i.prototype.writeInt16BE=function(t,e,n){w(this,t,e,!1,n)},i.prototype.writeInt32LE=function(t,e,n){C(this,t,e,!0,n)},i.prototype.writeInt32BE=function(t,e,n){C(this,t,e,!1,n)},i.prototype.writeFloatLE=function(t,e,n){x(this,t,e,!0,n)},i.prototype.writeFloatBE=function(t,e,n){x(this,t,e,!1,n)},i.prototype.writeDoubleLE=function(t,e,n){_(this,t,e,!0,n)},i.prototype.writeDoubleBE=function(t,e,n){_(this,t,e,!1,n)},i.prototype.fill=function(t,e,n){if(e=e||0,n=n||this.length,F("number"==typeof(t="string"==typeof(t=t||0)?t.charCodeAt(0):t)&&!isNaN(t),"value is not a number"),F(e<=n,"end < start"),n!==e&&0!==this.length){F(0<=e&&e<this.length,"start out of bounds"),F(0<=n&&n<=this.length,"end out of bounds");for(var r=e;r<n;r++)this[r]=t}},i.prototype.inspect=function(){for(var t=[],e=this.length,r=0;r<e;r++)if(t[r]=N(this[r]),r===n.INSPECT_MAX_BYTES){t[r+1]="...";break}return"<Buffer "+t.join(" ")+">"},i.prototype.toArrayBuffer=function(){if("undefined"==typeof Uint8Array)throw new Error("Buffer.toArrayBuffer not supported in this browser");if(i._useTypedArrays)return new i(this).buffer;for(var t=new Uint8Array(this.length),e=0,n=t.length;e<n;e+=1)t[e]=this[e];return t.buffer};var S=i.prototype;function E(t,e,n){return"number"!=typeof t?n:e<=(t=~~t)?e:0<=t||0<=(t+=e)?t:0}function T(t){return(t=~~Math.ceil(+t))<0?0:t}function I(t){return(Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)})(t)}function N(t){return t<16?"0"+t.toString(16):t.toString(16)}function O(t){for(var e=[],n=0;n<t.length;n++){var r=t.charCodeAt(n);if(r<=127)e.push(t.charCodeAt(n));else for(var i=n,s=(55296<=r&&r<=57343&&n++,encodeURIComponent(t.slice(i,n+1)).substr(1).split("%")),o=0;o<s.length;o++)e.push(parseInt(s[o],16))}return e}function M(t){return h.toByteArray(t)}function L(t,e,n,r){for(var i=0;i<r&&!(i+n>=e.length||i>=t.length);i++)e[i+n]=t[i];return i}function B(t){try{return decodeURIComponent(t)}catch(t){return String.fromCharCode(65533)}}function P(t,e){F("number"==typeof t,"cannot write a non-number as a number"),F(0<=t,"specified a negative value for writing an unsigned value"),F(t<=e,"value is larger than maximum value for type"),F(Math.floor(t)===t,"value has a fractional component")}function R(t,e,n){F("number"==typeof t,"cannot write a non-number as a number"),F(t<=e,"value larger than maximum allowed value"),F(n<=t,"value smaller than minimum allowed value"),F(Math.floor(t)===t,"value has a fractional component")}function D(t,e,n){F("number"==typeof t,"cannot write a non-number as a number"),F(t<=e,"value larger than maximum allowed value"),F(n<=t,"value smaller than minimum allowed value")}function F(t,e){if(!t)throw new Error(e||"Failed assertion")}i._augment=function(t){return t._isBuffer=!0,t._get=t.get,t._set=t.set,t.get=S.get,t.set=S.set,t.write=S.write,t.toString=S.toString,t.toLocaleString=S.toString,t.toJSON=S.toJSON,t.copy=S.copy,t.slice=S.slice,t.readUInt8=S.readUInt8,t.readUInt16LE=S.readUInt16LE,t.readUInt16BE=S.readUInt16BE,t.readUInt32LE=S.readUInt32LE,t.readUInt32BE=S.readUInt32BE,t.readInt8=S.readInt8,t.readInt16LE=S.readInt16LE,t.readInt16BE=S.readInt16BE,t.readInt32LE=S.readInt32LE,t.readInt32BE=S.readInt32BE,t.readFloatLE=S.readFloatLE,t.readFloatBE=S.readFloatBE,t.readDoubleLE=S.readDoubleLE,t.readDoubleBE=S.readDoubleBE,t.writeUInt8=S.writeUInt8,t.writeUInt16LE=S.writeUInt16LE,t.writeUInt16BE=S.writeUInt16BE,t.writeUInt32LE=S.writeUInt32LE,t.writeUInt32BE=S.writeUInt32BE,t.writeInt8=S.writeInt8,t.writeInt16LE=S.writeInt16LE,t.writeInt16BE=S.writeInt16BE,t.writeInt32LE=S.writeInt32LE,t.writeInt32BE=S.writeInt32BE,t.writeFloatLE=S.writeFloatLE,t.writeFloatBE=S.writeFloatBE,t.writeDoubleLE=S.writeDoubleLE,t.writeDoubleBE=S.writeDoubleBE,t.fill=S.fill,t.inspect=S.inspect,t.toArrayBuffer=S.toArrayBuffer,t}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/buffer/index.js","/node_modules/gulp-browserify/node_modules/buffer")},{"base64-js":2,buffer:3,ieee754:10,lYpoI2:11}],4:[function(t,e,n){(function(n,r,i,s,o,a,u,l,c){i=t("buffer").Buffer;var h=new i(4);h.fill(0),e.exports={hash:function(t,e,n,r){for(var s=e(function(t,e){t.length%4!=0&&(n=t.length+(4-t.length%4),t=i.concat([t,h],n));for(var n,r=[],s=e?t.readInt32BE:t.readInt32LE,o=0;o<t.length;o+=4)r.push(s.call(t,o));return r}(t=i.isBuffer(t)?t:new i(t),r),8*t.length),o=(e=r,new i(n)),a=e?o.writeInt32BE:o.writeInt32LE,u=0;u<s.length;u++)a.call(o,s[u],4*u,!0);return o}}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/helpers.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{buffer:3,lYpoI2:11}],5:[function(t,e,n){(function(e,r,i,s,o,a,u,l,c){i=t("buffer").Buffer;var h=t("./sha"),f=t("./sha256"),d=t("./rng"),p={sha1:h,sha256:f,md5:t("./md5")},g=64,m=new i(g);function v(t,e){var n=p[t=t||"sha1"],r=[];return n||y("algorithm:",t,"is not yet supported"),{update:function(t){return i.isBuffer(t)||(t=new i(t)),r.push(t),t.length,this},digest:function(t){var s=i.concat(r);return s=e?function(t,e,n){i.isBuffer(e)||(e=new i(e)),i.isBuffer(n)||(n=new i(n)),e.length>g?e=t(e):e.length<g&&(e=i.concat([e,m],g));for(var r=new i(g),s=new i(g),o=0;o<g;o++)r[o]=54^e[o],s[o]=92^e[o];return n=t(i.concat([r,n])),t(i.concat([s,n]))}(n,e,s):n(s),r=null,t?s.toString(t):s}}}function y(){var t=[].slice.call(arguments).join(" ");throw new Error([t,"we accept pull requests","http://github.com/dominictarr/crypto-browserify"].join("\n"))}m.fill(0),n.createHash=function(t){return v(t)},n.createHmac=v,n.randomBytes=function(t,e){if(!e||!e.call)return new i(d(t));try{e.call(this,void 0,new i(d(t)))}catch(t){e(t)}};var b,A=["createCredentials","createCipher","createCipheriv","createDecipher","createDecipheriv","createSign","createVerify","createDiffieHellman","pbkdf2"],w=function(t){n[t]=function(){y("sorry,",t,"is not implemented yet")}};for(b in A)w(A[b])}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/index.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./md5":6,"./rng":7,"./sha":8,"./sha256":9,buffer:3,lYpoI2:11}],6:[function(t,e,n){(function(n,r,i,s,o,a,u,l,c){var h=t("./helpers");function f(t,e){t[e>>5]|=128<<e%32,t[14+(e+64>>>9<<4)]=e;for(var n=1732584193,r=-271733879,i=-1732584194,s=271733878,o=0;o<t.length;o+=16){var a=n,u=r,l=i,c=s;n=p(n,r,i,s,t[o+0],7,-680876936),s=p(s,n,r,i,t[o+1],12,-389564586),i=p(i,s,n,r,t[o+2],17,606105819),r=p(r,i,s,n,t[o+3],22,-1044525330),n=p(n,r,i,s,t[o+4],7,-176418897),s=p(s,n,r,i,t[o+5],12,1200080426),i=p(i,s,n,r,t[o+6],17,-1473231341),r=p(r,i,s,n,t[o+7],22,-45705983),n=p(n,r,i,s,t[o+8],7,1770035416),s=p(s,n,r,i,t[o+9],12,-1958414417),i=p(i,s,n,r,t[o+10],17,-42063),r=p(r,i,s,n,t[o+11],22,-1990404162),n=p(n,r,i,s,t[o+12],7,1804603682),s=p(s,n,r,i,t[o+13],12,-40341101),i=p(i,s,n,r,t[o+14],17,-1502002290),n=g(n,r=p(r,i,s,n,t[o+15],22,1236535329),i,s,t[o+1],5,-165796510),s=g(s,n,r,i,t[o+6],9,-1069501632),i=g(i,s,n,r,t[o+11],14,643717713),r=g(r,i,s,n,t[o+0],20,-373897302),n=g(n,r,i,s,t[o+5],5,-701558691),s=g(s,n,r,i,t[o+10],9,38016083),i=g(i,s,n,r,t[o+15],14,-660478335),r=g(r,i,s,n,t[o+4],20,-405537848),n=g(n,r,i,s,t[o+9],5,568446438),s=g(s,n,r,i,t[o+14],9,-1019803690),i=g(i,s,n,r,t[o+3],14,-187363961),r=g(r,i,s,n,t[o+8],20,1163531501),n=g(n,r,i,s,t[o+13],5,-1444681467),s=g(s,n,r,i,t[o+2],9,-51403784),i=g(i,s,n,r,t[o+7],14,1735328473),n=m(n,r=g(r,i,s,n,t[o+12],20,-1926607734),i,s,t[o+5],4,-378558),s=m(s,n,r,i,t[o+8],11,-2022574463),i=m(i,s,n,r,t[o+11],16,1839030562),r=m(r,i,s,n,t[o+14],23,-35309556),n=m(n,r,i,s,t[o+1],4,-1530992060),s=m(s,n,r,i,t[o+4],11,1272893353),i=m(i,s,n,r,t[o+7],16,-155497632),r=m(r,i,s,n,t[o+10],23,-1094730640),n=m(n,r,i,s,t[o+13],4,681279174),s=m(s,n,r,i,t[o+0],11,-358537222),i=m(i,s,n,r,t[o+3],16,-722521979),r=m(r,i,s,n,t[o+6],23,76029189),n=m(n,r,i,s,t[o+9],4,-640364487),s=m(s,n,r,i,t[o+12],11,-421815835),i=m(i,s,n,r,t[o+15],16,530742520),n=v(n,r=m(r,i,s,n,t[o+2],23,-995338651),i,s,t[o+0],6,-198630844),s=v(s,n,r,i,t[o+7],10,1126891415),i=v(i,s,n,r,t[o+14],15,-1416354905),r=v(r,i,s,n,t[o+5],21,-57434055),n=v(n,r,i,s,t[o+12],6,1700485571),s=v(s,n,r,i,t[o+3],10,-1894986606),i=v(i,s,n,r,t[o+10],15,-1051523),r=v(r,i,s,n,t[o+1],21,-2054922799),n=v(n,r,i,s,t[o+8],6,1873313359),s=v(s,n,r,i,t[o+15],10,-30611744),i=v(i,s,n,r,t[o+6],15,-1560198380),r=v(r,i,s,n,t[o+13],21,1309151649),n=v(n,r,i,s,t[o+4],6,-145523070),s=v(s,n,r,i,t[o+11],10,-1120210379),i=v(i,s,n,r,t[o+2],15,718787259),r=v(r,i,s,n,t[o+9],21,-343485551),n=y(n,a),r=y(r,u),i=y(i,l),s=y(s,c)}return Array(n,r,i,s)}function d(t,e,n,r,i,s){return y((e=y(y(e,t),y(r,s)))<<i|e>>>32-i,n)}function p(t,e,n,r,i,s,o){return d(e&n|~e&r,t,e,i,s,o)}function g(t,e,n,r,i,s,o){return d(e&r|n&~r,t,e,i,s,o)}function m(t,e,n,r,i,s,o){return d(e^n^r,t,e,i,s,o)}function v(t,e,n,r,i,s,o){return d(n^(e|~r),t,e,i,s,o)}function y(t,e){var n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n}e.exports=function(t){return h.hash(t,f,16)}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/md5.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],7:[function(t,e,n){(function(t,n,r,i,s,o,a,u,l){e.exports=function(t){for(var e,n=new Array(t),r=0;r<t;r++)!(3&r)&&(e=4294967296*Math.random()),n[r]=e>>>((3&r)<<3)&255;return n}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/rng.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{buffer:3,lYpoI2:11}],8:[function(t,e,n){(function(n,r,i,s,o,a,u,l,c){var h=t("./helpers");function f(t,e){t[e>>5]|=128<<24-e%32,t[15+(e+64>>9<<4)]=e;for(var n,r,i,s=Array(80),o=1732584193,a=-271733879,u=-1732584194,l=271733878,c=-1009589776,h=0;h<t.length;h+=16){for(var f=o,g=a,m=u,v=l,y=c,b=0;b<80;b++){s[b]=b<16?t[h+b]:p(s[b-3]^s[b-8]^s[b-14]^s[b-16],1);var A=d(d(p(o,5),(A=a,r=u,i=l,(n=b)<20?A&r|~A&i:!(n<40)&&n<60?A&r|A&i|r&i:A^r^i)),d(d(c,s[b]),(n=b)<20?1518500249:n<40?1859775393:n<60?-1894007588:-899497514));c=l,l=u,u=p(a,30),a=o,o=A}o=d(o,f),a=d(a,g),u=d(u,m),l=d(l,v),c=d(c,y)}return Array(o,a,u,l,c)}function d(t,e){var n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n}function p(t,e){return t<<e|t>>>32-e}e.exports=function(t){return h.hash(t,f,20,!0)}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],9:[function(t,e,n){(function(n,r,i,s,o,a,u,l,c){function h(t,e){var n=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(n>>16)<<16|65535&n}function f(t,e){var n,r=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),i=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),s=new Array(64);t[e>>5]|=128<<24-e%32,t[15+(e+64>>9<<4)]=e;for(var o,a,u=0;u<t.length;u+=16){for(var l=i[0],c=i[1],f=i[2],d=i[3],m=i[4],v=i[5],y=i[6],b=i[7],A=0;A<64;A++)s[A]=A<16?t[A+u]:h(h(h((a=s[A-2],p(a,17)^p(a,19)^g(a,10)),s[A-7]),(a=s[A-15],p(a,7)^p(a,18)^g(a,3))),s[A-16]),n=h(h(h(h(b,p(a=m,6)^p(a,11)^p(a,25)),m&v^~m&y),r[A]),s[A]),o=h(p(o=l,2)^p(o,13)^p(o,22),l&c^l&f^c&f),b=y,y=v,v=m,m=h(d,n),d=f,f=c,c=l,l=h(n,o);i[0]=h(l,i[0]),i[1]=h(c,i[1]),i[2]=h(f,i[2]),i[3]=h(d,i[3]),i[4]=h(m,i[4]),i[5]=h(v,i[5]),i[6]=h(y,i[6]),i[7]=h(b,i[7])}return i}var d=t("./helpers"),p=function(t,e){return t>>>e|t<<32-e},g=function(t,e){return t>>>e};e.exports=function(t){return d.hash(t,f,32,!0)}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha256.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],10:[function(t,e,n){(function(t,e,r,i,s,o,a,u,l){n.read=function(t,e,n,r,i){var s,o,a=8*i-r-1,u=(1<<a)-1,l=u>>1,c=-7,h=n?i-1:0,f=n?-1:1;for(i=t[e+h],h+=f,s=i&(1<<-c)-1,i>>=-c,c+=a;0<c;s=256*s+t[e+h],h+=f,c-=8);for(o=s&(1<<-c)-1,s>>=-c,c+=r;0<c;o=256*o+t[e+h],h+=f,c-=8);if(0===s)s=1-l;else{if(s===u)return o?NaN:1/0*(i?-1:1);o+=Math.pow(2,r),s-=l}return(i?-1:1)*o*Math.pow(2,s-r)},n.write=function(t,e,n,r,i,s){var o,a,u=8*s-i-1,l=(1<<u)-1,c=l>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=r?0:s-1,d=r?1:-1;for(s=e<0||0===e&&1/e<0?1:0,e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=l):(o=Math.floor(Math.log(e)/Math.LN2),e*(r=Math.pow(2,-o))<1&&(o--,r*=2),2<=(e+=1<=o+c?h/r:h*Math.pow(2,1-c))*r&&(o++,r/=2),l<=o+c?(a=0,o=l):1<=o+c?(a=(e*r-1)*Math.pow(2,i),o+=c):(a=e*Math.pow(2,c-1)*Math.pow(2,i),o=0));8<=i;t[n+f]=255&a,f+=d,a/=256,i-=8);for(o=o<<i|a,u+=i;0<u;t[n+f]=255&o,f+=d,o/=256,u-=8);t[n+f-d]|=128*s}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/ieee754/index.js","/node_modules/gulp-browserify/node_modules/ieee754")},{buffer:3,lYpoI2:11}],11:[function(t,e,n){(function(t,n,r,i,s,o,a,u,l){var c,h,f;function d(){}(t=e.exports={}).nextTick=(h="undefined"!=typeof window&&window.setImmediate,f="undefined"!=typeof window&&window.postMessage&&window.addEventListener,h?function(t){return window.setImmediate(t)}:f?(c=[],window.addEventListener("message",(function(t){var e=t.source;e!==window&&null!==e||"process-tick"!==t.data||(t.stopPropagation(),0<c.length&&c.shift()())}),!0),function(t){c.push(t),window.postMessage("process-tick","*")}):function(t){setTimeout(t,0)}),t.title="browser",t.browser=!0,t.env={},t.argv=[],t.on=d,t.addListener=d,t.once=d,t.off=d,t.removeListener=d,t.removeAllListeners=d,t.emit=d,t.binding=function(t){throw new Error("process.binding is not supported")},t.cwd=function(){return"/"},t.chdir=function(t){throw new Error("process.chdir is not supported")}}).call(this,t("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},t("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/process/browser.js","/node_modules/gulp-browserify/node_modules/process")},{buffer:3,lYpoI2:11}]},{},[1])(1)},146:(t,e)=>{"use strict";var n;!function(){var r=e||{}||this||window;void 0===(n=function(){return r}.apply(e,[]))||(t.exports=n),r.default=r;var i="http://www.w3.org/2000/xmlns/",s="http://www.w3.org/2000/svg",o=/url\(["']?(.+?)["']?\)/,a={woff2:"font/woff2",woff:"font/woff",otf:"application/x-font-opentype",ttf:"application/x-font-ttf",eot:"application/vnd.ms-fontobject",sfnt:"application/font-sfnt",svg:"image/svg+xml"},u=function(t){return t instanceof HTMLElement||t instanceof SVGElement},l=function(t){if(!u(t))throw new Error("an HTMLElement or SVGElement is required; got "+t)},c=function(t){return new Promise((function(e,n){u(t)?e(t):n(new Error("an HTMLElement or SVGElement is required; got "+t))}))},h=function(t,e,n){var r=t.viewBox&&t.viewBox.baseVal&&t.viewBox.baseVal[n]||null!==e.getAttribute(n)&&!e.getAttribute(n).match(/%$/)&&parseInt(e.getAttribute(n))||t.getBoundingClientRect()[n]||parseInt(e.style[n])||parseInt(window.getComputedStyle(t).getPropertyValue(n));return null==r||isNaN(parseFloat(r))?0:r},f=function(t){for(var e=window.atob(t.split(",")[1]),n=t.split(",")[0].split(":")[1].split(";")[0],r=new ArrayBuffer(e.length),i=new Uint8Array(r),s=0;s<e.length;s++)i[s]=e.charCodeAt(s);return new Blob([r],{type:n})},d={},p=null,g=function(t,e){var n=e||{},r=n.selectorRemap,i=n.modifyStyle,s=n.modifyCss,u=n.fonts,l=n.excludeUnusedCss,c=s||function(t,e){return(r?r(t):t)+"{"+(i?i(e):e)+"}\n"},h=[],f=void 0===u,g=u||[];return(p||(p=Array.from(document.styleSheets).map((function(t){try{return{rules:t.cssRules,href:t.href}}catch(e){return console.warn("Stylesheet could not be loaded: "+t.href,e),{}}})))).forEach((function(e){var n=e.rules,r=e.href;n&&Array.from(n).forEach((function(e){if(void 0!==e.style)if(function(t,e){if(e)try{return t.querySelector(e)||t.parentNode&&t.parentNode.querySelector(e)}catch(t){console.warn('Invalid CSS selector "'+e+'"',t)}}(t,e.selectorText))h.push(c(e.selectorText,e.style.cssText));else if(f&&e.cssText.match(/^@font-face/)){var n=function(t,e){var n=t.cssText.match(o),r=n&&n[1]||"";if(r&&!r.match(/^data:/)&&"about:blank"!==r){var i,s,u=r.startsWith("../")?e+"/../"+r:r.startsWith("./")?e+"/."+r:r;return{text:t.cssText,format:(i=u,s=Object.keys(a).filter((function(t){return i.indexOf("."+t)>0})).map((function(t){return a[t]})),s?s[0]:(console.error("Unknown font format for "+i+". Fonts may not be working correctly."),"application/octet-stream")),url:u}}}(e,r);n&&g.push(n)}else l||h.push(e.cssText)}))})),function(t){return Promise.all(t.map((function(t){return new Promise((function(e,n){if(d[t.url])return e(d[t.url]);var r=new XMLHttpRequest;r.addEventListener("load",(function(){var n=function(t){for(var e="",n=new Uint8Array(t),r=0;r<n.byteLength;r++)e+=String.fromCharCode(n[r]);return window.btoa(e)}(r.response),i=t.text.replace(o,'url("data:'+t.format+";base64,"+n+'")')+"\n";d[t.url]=i,e(i)})),r.addEventListener("error",(function(n){console.warn("Failed to load font from: "+t.url,n),d[t.url]=null,e(null)})),r.addEventListener("abort",(function(n){console.warn("Aborted loading font from: "+t.url,n),e(null)})),r.open("GET",t.url),r.responseType="arraybuffer",r.send()}))}))).then((function(t){return t.filter((function(t){return t})).join("")}))}(g).then((function(t){return h.join("\n")+t}))},m=function(){if(!navigator.msSaveOrOpenBlob&&!("download"in document.createElement("a")))return{popup:window.open()}};r.prepareSvg=function(t,e,n){l(t);var r=e||{},o=r.left,a=void 0===o?0:o,u=r.top,c=void 0===u?0:u,f=r.width,d=r.height,p=r.scale,m=void 0===p?1:p,v=r.responsive,y=void 0!==v&&v,b=r.excludeCss,A=void 0!==b&&b;return function(t){return Promise.all(Array.from(t.querySelectorAll("image")).map((function(t){var e,n=t.getAttributeNS("http://www.w3.org/1999/xlink","href")||t.getAttribute("href");return n?((e=n)&&0===e.lastIndexOf("http",0)&&-1===e.lastIndexOf(window.location.host)&&(n+=(-1===n.indexOf("?")?"?":"&")+"t="+(new Date).valueOf()),new Promise((function(e,r){var i=document.createElement("canvas"),s=new Image;s.crossOrigin="anonymous",s.src=n,s.onerror=function(){return r(new Error("Could not load "+n))},s.onload=function(){i.width=s.width,i.height=s.height,i.getContext("2d").drawImage(s,0,0),t.setAttributeNS("http://www.w3.org/1999/xlink","href",i.toDataURL("image/png")),e(!0)}}))):Promise.resolve(null)})))}(t).then((function(){var r=t.cloneNode(!0);r.style.backgroundColor=(e||{}).backgroundColor||t.style.backgroundColor;var o=function(t,e,n,r){if("svg"===t.tagName)return{width:n||h(t,e,"width"),height:r||h(t,e,"height")};if(t.getBBox){var i=t.getBBox(),s=i.x,o=i.y;return{width:s+i.width,height:o+i.height}}}(t,r,f,d),u=o.width,l=o.height;if("svg"!==t.tagName){if(!t.getBBox)return void console.error("Attempted to render non-SVG element",t);null!=r.getAttribute("transform")&&r.setAttribute("transform",r.getAttribute("transform").replace(/translate\(.*?\)/,""));var p=document.createElementNS("http://www.w3.org/2000/svg","svg");p.appendChild(r),r=p}if(r.setAttribute("version","1.1"),r.setAttribute("viewBox",[a,c,u,l].join(" ")),r.getAttribute("xmlns")||r.setAttributeNS(i,"xmlns",s),r.getAttribute("xmlns:xlink")||r.setAttributeNS(i,"xmlns:xlink","http://www.w3.org/1999/xlink"),y?(r.removeAttribute("width"),r.removeAttribute("height"),r.setAttribute("preserveAspectRatio","xMinYMin meet")):(r.setAttribute("width",u*m),r.setAttribute("height",l*m)),Array.from(r.querySelectorAll("foreignObject > *")).forEach((function(t){t.setAttributeNS(i,"xmlns","svg"===t.tagName?s:"http://www.w3.org/1999/xhtml")})),!A)return g(t,e).then((function(t){var e=document.createElement("style");e.setAttribute("type","text/css"),e.innerHTML="<![CDATA[\n"+t+"\n]]>";var i=document.createElement("defs");i.appendChild(e),r.insertBefore(i,r.firstChild);var s=document.createElement("div");s.appendChild(r);var o=s.innerHTML.replace(/NS\d+:href/gi,'xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href');if("function"!=typeof n)return{src:o,width:u,height:l};n(o,u,l)}));var v=document.createElement("div");v.appendChild(r);var b=v.innerHTML;if("function"!=typeof n)return{src:b,width:u,height:l};n(b,u,l)}))},r.svgAsDataUri=function(t,e,n){return l(t),r.prepareSvg(t,e).then((function(t){var e=t.src,r=t.width,i=t.height,s="data:image/svg+xml;base64,"+window.btoa(decodeURIComponent(encodeURIComponent('<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [<!ENTITY nbsp " ">]>'+e).replace(/%([0-9A-F]{2})/g,(function(t,e){var n=String.fromCharCode("0x"+e);return"%"===n?"%25":n}))));return"function"==typeof n&&n(s,r,i),s}))},r.svgAsPngUri=function(t,e,n){l(t);var i=e||{},s=i.encoderType,o=void 0===s?"image/png":s,a=i.encoderOptions,u=void 0===a?.8:a,c=i.canvg,h=function(t){var e=t.src,r=t.width,i=t.height,s=document.createElement("canvas"),a=s.getContext("2d"),l=window.devicePixelRatio||1;s.width=r*l,s.height=i*l,s.style.width=s.width+"px",s.style.height=s.height+"px",a.setTransform(l,0,0,l,0,0),c?c(s,e):a.drawImage(e,0,0);var h=void 0;try{h=s.toDataURL(o,u)}catch(t){if("undefined"!=typeof SecurityError&&t instanceof SecurityError||"SecurityError"===t.name)return void console.error("Rendered SVG images cannot be downloaded in this browser.");throw t}return"function"==typeof n&&n(h,s.width,s.height),Promise.resolve(h)};return c?r.prepareSvg(t,e).then(h):r.svgAsDataUri(t,e).then((function(t){return new Promise((function(e,n){var r=new Image;r.onload=function(){return e(h({src:r,width:r.width,height:r.height}))},r.onerror=function(){n("There was an error loading the data URI as an image on the following SVG\n"+window.atob(t.slice(26))+"Open the following link to see browser's diagnosis\n"+t)},r.src=t}))}))},r.download=function(t,e,n){if(navigator.msSaveOrOpenBlob)navigator.msSaveOrOpenBlob(f(e),t);else{var r=document.createElement("a");if("download"in r){r.download=t,r.style.display="none",document.body.appendChild(r);try{var i=f(e),s=URL.createObjectURL(i);r.href=s,r.onclick=function(){return requestAnimationFrame((function(){return URL.revokeObjectURL(s)}))}}catch(t){console.error(t),console.warn("Error while getting object URL. Falling back to string URL."),r.href=e}r.click(),document.body.removeChild(r)}else n&&n.popup&&(n.popup.document.title=t,n.popup.location.replace(e))}},r.saveSvg=function(t,e,n){var i=m();return c(t).then((function(t){return r.svgAsDataUri(t,n||{})})).then((function(t){return r.download(e,t,i)}))},r.saveSvgAsPng=function(t,e,n){var i=m();return c(t).then((function(t){return r.svgAsPngUri(t,n||{})})).then((function(t){return r.download(e,t,i)}))}}()},72:t=>{"use strict";var e=[];function n(t){for(var n=-1,r=0;r<e.length;r++)if(e[r].identifier===t){n=r;break}return n}function r(t,r){for(var s={},o=[],a=0;a<t.length;a++){var u=t[a],l=r.base?u[0]+r.base:u[0],c=s[l]||0,h="".concat(l," ").concat(c);s[l]=c+1;var f=n(h),d={css:u[1],media:u[2],sourceMap:u[3],supports:u[4],layer:u[5]};if(-1!==f)e[f].references++,e[f].updater(d);else{var p=i(d,r);r.byIndex=a,e.splice(a,0,{identifier:h,updater:p,references:1})}o.push(h)}return o}function i(t,e){var n=e.domAPI(e);return n.update(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap&&e.supports===t.supports&&e.layer===t.layer)return;n.update(t=e)}else n.remove()}}t.exports=function(t,i){var s=r(t=t||[],i=i||{});return function(t){t=t||[];for(var o=0;o<s.length;o++){var a=n(s[o]);e[a].references--}for(var u=r(t,i),l=0;l<s.length;l++){var c=n(s[l]);0===e[c].references&&(e[c].updater(),e.splice(c,1))}s=u}}},659:t=>{"use strict";var e={};t.exports=function(t,n){var r=function(t){if(void 0===e[t]){var n=document.querySelector(t);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(t){n=null}e[t]=n}return e[t]}(t);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},540:t=>{"use strict";t.exports=function(t){var e=document.createElement("style");return t.setAttributes(e,t.attributes),t.insert(e,t.options),e}},56:(t,e,n)=>{"use strict";t.exports=function(t){var e=n.nc;e&&t.setAttribute("nonce",e)}},825:t=>{"use strict";t.exports=function(t){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var e=t.insertStyleElement(t);return{update:function(n){!function(t,e,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var i=void 0!==n.layer;i&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,i&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var s=n.sourceMap;s&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(s))))," */")),e.styleTagTransform(r,t,e.options)}(e,t,n)},remove:function(){!function(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t)}(e)}}}},113:t=>{"use strict";t.exports=function(t,e){if(e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var s=e[r]={id:r,loaded:!1,exports:{}};return t[r].call(s.exports,s,s.exports,n),s.loaded=!0,s.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"==typeof window)return window}}(),n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),n.nc=void 0;var r={};(()=>{"use strict";n.r(r),n.d(r,{_package:()=>yr,createMonomerLibraryForPolyTool:()=>Dr,demoOligoPattern:()=>Nr,demoOligoStructure:()=>Or,demoTranslateSequence:()=>Ir,getCodeToWeightsMap:()=>_r,getMolfileFromGcrsSequence:()=>Er,getTranslationHelper:()=>xr,linkStrands:()=>Tr,oligoPatternApp:()=>wr,oligoStructureApp:()=>Cr,oligoToolkitApp:()=>br,oligoTranslatorApp:()=>Ar,polyToolColumnChoice:()=>Rr,polyToolConvert:()=>Br,polyToolEnumerate:()=>Pr,translateOligonucleotideSequence:()=>Mr,validateSequence:()=>Sr});const t=DG;var e=n.n(t);const i=grok;class s{constructor(t,e=!1){if(this._length=0,this._version=0,this._updateLevel=0,this._selectedCount=0,this._selectedCountVersion=-1,this._selectedIndexesVersion=-1,this._versionedName="",this._versionedNameVersion=-1,this.SHRINK_THRESHOLD=256,"number"==typeof t){const n=t,r=s._createBuffer(n);if(e)for(let t=0;t<r.length;t++)r[t]=-1;this._data=r,this._length=n}else{if(!(t instanceof Uint32Array))throw new Error("Invalid constructor");this._data=t,this._length=e}}getRawData(){return this._data}assureGoez(t,e){if(t<0)throw new Error(`${e} should be greater than zero`)}assureInRange(t,e,n,r){if(t<e||t>n)throw new Error(`Argument ${r} (${t}) out of range (${e}, ${n})`)}copy(t,e,n){for(let r=0;r<n;r++)e[r]=t[r]}copyFrom(t){if(this._length!=t._length)throw new Error(`Lengths differ (${this._length} != ${t._length})`);this.copy(t._data,this._data,this.lengthInInts),this._version++}get length(){return this._length}get buffer(){return this._data}set buffer(t){this._data=t,this._version++}get version(){return this._version}set version(t){this._version=t}incrementVersion(t=!0){this._version++}get lengthInInts(){return Math.floor((this._length+31)/32)}get versionedName(){return this._version==this._versionedNameVersion?this._versionedName:""}set versionedName(t){this._versionedName=t,this._versionedNameVersion=this._version}get self(){return this}setLength(t){if(t<0)throw new Error("should be >= 0");if(t==this._length)return;const e=Math.floor((t+31)/32);if(e>this._data.length||e+this.SHRINK_THRESHOLD<this._data.length){const t=new Uint32Array(e);this.copy(this._data,t,e>this._data.length?this._data.length:e),this._data=t}t>this._length&&(this._length%32>0&&(this._data[this.lengthInInts-1]&=(1<<(this._length%32&31))-1),this._data.fill(0,this.lengthInInts,e)),this._length=t,this._version++}static fromAnd(t,e){if(t._length!=e._length)throw new Error(`Lengths differ (${t._length} != ${e._length})`);const n=new s(t._length);n._length=t._length,n._data=s._createBuffer(n._length),n._version=0;const r=t.lengthInInts;for(let i=0;i<r;i++)n._data[i]=t._data[i]&e._data[i];return n}static _createBuffer(t){return new Uint32Array(Math.floor((t+31)/32))}static fromValues(t){const e=new s(t.length);e._version=0;for(let n=0;n<e._length;n++)t[n]&&(e._data[Math.floor(n/32)]|=1<<(n%32&31));return e}static fromSeq(t,e){const n=new s(t);for(let r=0;r<t;++r)n.setBit(r,e(r));return n._version=0,n}static fromString(t){return s.fromSeq(t.length,(e=>"1"==t.charAt(e)))}static fromUint32Array(t,e){const n=new s(t);return n._data=e,n}static fromBytes(t){const e=t.length,n=new s(8*e);n._data=new Uint32Array(Math.floor((e+3)/4)),n._length=8*e;let r=0,i=0;for(;e-i>=4;)n._data[r++]=255&t[i]|(255&t[i+1])<<8|(255&t[i+2])<<16|(255&t[i+3])<<24,i+=4;return e-i==3&&(n._data[r]=(255&t[i+2])<<16),e-i==2&&(n._data[r]|=(255&t[i+1])<<8),e-i==1&&(n._data[r]|=255&t[i]),n._version=0,n}toString(){return`${this._length} bits, ${this.countBits(!0)} set`}equals(t){if(this==t)return!0;if(null==t)return!1;if(this._length!=t._length)return!1;if(0==this._length)return!0;for(let e=0;e<this._data.length-1;e++)if(this._data[e]!=t._data[e])return!1;for(let e=8*(this._data.length-1);e<this._length;e++)if(this.getBit(e)!=t.getBit(e))return!1;return!0}clone(){const t=new s(0,!1);return t._data=Uint32Array.from(this._data),t._length=this._length,t._version=this._version,t}init(t,e){this.setAll(!1,!1);for(let e=0;e<this._length;e++)t(e)&&(this._data[Math.floor(e/32)]|=1<<(e%32&31));return this.incrementVersion(e),this}invert(t=!0){for(let t=0;t<this._data.length;t++)this._data[t]^=-1;this.incrementVersion(t)}setAll(t,e=!1){const n=t?-1:0,r=this.lengthInInts;for(let t=0;t<r;t++)this._data[t]=n;this.incrementVersion(e)}setIndexes(t,e=!0,n=!0,r=!0){n&&this.setAll(!e,!1);for(const n of t)this.setFast(n,e);this.incrementVersion(r)}everyIndex(t,e=!0){for(const n of t)if(this.getBit(n)!=e)return!1;return!0}anyIndex(t,e=!0){for(const n of t)if(this.getBit(n)==e)return!0;return!1}setWhere(t,e=!0,n=!0,r=!0,i=!0){if(n&&i&&this.setAll(!e,!1),i)for(let n=0;n<this._length;n++)t(n)&&this.setFast(n,e);else for(let n=0;n<this._length;n++)this.setFast(n,t(n)?e:!e);this.incrementVersion(r)}getRange(t,e){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length,"to");const n=[];for(let r=t;r<e;++r)n.push(this.getBit(r));return s.fromValues(n)}getRangeAsList(t,e){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length,"to");const n=[];for(let r=t;r<e;++r)n.push(this.getBit(r));return n}setRange(t,e,n,r=!0){this.assureInRange(t,0,this._length-1,"from"),this.assureInRange(e,0,this._length-1,"to");const i=Math.min(t,e),s=Math.max(t,e);if(n)for(let t=i;t<=s;t++)this.setTrue(t);else for(let t=i;t<=s;t++)this.setFalse(t);return this.incrementVersion(r),this}setRandom(t,e,n=!0){if(t<0||t>this._length)throw new Error("n must be >= 0 && <= Count");t>this._length/2&&this.setRandom(this._length-t,!e),this.setAll(!e);for(let n=0;n<t;){const t=Math.floor(Math.random()*this._length);this.getBit(t)!=e&&(this.setFast(t,e),n++)}this.incrementVersion(n)}and(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]&=t._data[e];return this.incrementVersion(e),this}andNot(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");const n=this.lengthInInts;for(let e=0;e<n;e++)this._data[e]&=~t._data[e];return this.incrementVersion(e),this}notAnd(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]=~this._data[e]&t._data[e];return this.incrementVersion(e),this}not(t=!0){for(let t=0,e=this.lengthInInts;t<e;t++)this._data[t]=~this._data[t];return this.incrementVersion(t),this}or(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]|=t._data[e];return this.incrementVersion(e),this}xor(t,e=!0){if(this._length!=t._length)throw new Error("Array lengths differ.");for(let e=0,n=this.lengthInInts;e<n;e++)this._data[e]^=t._data[e];return this.incrementVersion(e),this}insertAt(t,e,n=!1){if(this.assureInRange(t,0,this._length,"pos"),0==e)return;const r=this._length;this.setLength(this._length+e);for(let n=r-1;n>=t;n--)this.setBit(n+e,this.getBit(n));for(let r=t;r<t+e;r++)this.setBit(r,n)}removeAt(t,e=1){if(e<0)throw new Error("n cannot be negative");if(this.assureInRange(t,0,this._length-e,"pos"),this.contains(!0))for(let n=t;n<this._length-e;n++)this.setBit(n,this.getBit(n+e));this.setLength(this._length-e)}removeByMask(t,e=!0){if(this._length!=t.length)throw new Error("length != mask.length");if(t==this)this.setLength(t.countBits(!e)),this.setAll(!e);else{let n=0;for(let r=-1;-1!=(r=t.findNext(r,!e));)this.setFast(n++,this.getBit(r));this._length=n,this._version++}return this}getBit(t){return!!(this._data[Math.floor(t/32)]&1<<(31&t))}setBit(t,e,n=!0){this.setFast(t,e),this._version++}setFast(t,e){e?this._data[Math.floor(t/32)]|=1<<(31&t):this._data[Math.floor(t/32)]&=~(1<<(31&t))}setTrue(t){this._data[Math.floor(t/32)]|=1<<(31&t)}setFalse(t){this._data[Math.floor(t/32)]&=~(1<<(31&t))}trueCount(){return this.countBits(!0)}falseCount(){return this.countBits(!1)}countBits(t){if(0==this._length)return 0;if(this._selectedCountVersion!=this._version){this._selectedCount=0;const t=this.lengthInInts;let e=0;for(;e<t-1;e++)for(let t=this._data[e];0!=t;t>>>=8)this._selectedCount+=s._onBitCount[255&t];let n=this._data[e];const r=31&this._length;for(0!=r&&(n&=~(4294967295<<r));0!=n;n>>>=8)this._selectedCount+=s._onBitCount[255&n];this._selectedCountVersion=this._version}return t?this._selectedCount:this._length-this._selectedCount}countWhere(t){let e=0;if(this.trueCount()==this._length)for(let n=0;n<this._length;n++)e+=t(n)?1:0;else for(let n=-1;-1!=(n=this.findNext(n,!0));)e+=t(n)?1:0;return e}andWithCountBits(t,e){if(0==this._length)return 0;let n=0;const r=this.lengthInInts;let i=0;for(;i<r-1;i++)for(let e=this._data[i]&t._data[i];0!=e;e>>>=8)n+=s._onBitCount[255&e];let o=this._data[i]&t._data[i];const a=31&this._length;for(0!=a&&(o&=~(4294967295<<a));0!=o;o>>>=8)n+=s._onBitCount[255&o];return e?n:this._length-n}clear(){this.setLength(0)}contains(t){return this.findNext(-1,t)>=0}get allTrue(){return this.countBits(!0)==this._length}get allFalse(){return this.countBits(!1)==this._length}get anyTrue(){return this.countBits(!0)>0}get anyFalse(){return this.countBits(!1)>0}findNext(t,e=!0){if(this.assureInRange(t,-1,this._length,"index"),t>=this._length-1)return-1;let n=31&(t=t<0?0:t+1);const r=this.lengthInInts;for(let i=Math.floor(t/32);i<r;i++){let r=e?this._data[i]:~this._data[i];if(0!=n)r&=4294967295<<n&4294967295,n=0;else if(!e&&-4294967296==r)continue;for(let e=0;0!=r;e+=8,r>>>=8){const n=s._firstOnBit[255&r];if(n>=0)return(t=n+32*i+e)>=this._length?-1:t}}return-1}findPrev(t,e=!0){if(0==t)return-1;this.assureInRange(t,-1,this._length,"index");let n=1+(t=t<0?this._length-1:t-1)&31;for(let r=Math.floor(t/32);r>=0;r--){let t=e?this._data[r]:~this._data[r];0!=n&&(t&=~(4294967295<<n),n=0);for(let e=24;0!=t;e-=8,t<<=8){const n=s._lastOnBit[t>>>24];if(n>=0)return n+32*r+e}}return-1}}var o,a,u,l,c,h,f;function d(t={}){const e=function(){if(!t||!t.scoringMatrix||!t.alphabetIndexes)return(t,e)=>t===e?0:1;if(t.scoringMatrix.length!==Object.keys(t.alphabetIndexes).length)throw new Error("Scoring matrix and alphabet indexes should have the same length");const e=t.alphabetIndexes,n=t.scoringMatrix,r=Math.min(...Object.keys(e).map((t=>t.charCodeAt(0))))+1,i=new Float32Array((n.length+r)*(n.length+r));return Object.entries(e).forEach((([t,r])=>{const s=n[r];Object.entries(e).forEach((([e,r])=>{i[t.charCodeAt(0)*n.length+e.charCodeAt(0)]=s[r]}))})),(t,e)=>1-i[t.charCodeAt(0)*n.length+e.charCodeAt(0)]}(),n=t?.threshold??0;return(t,r)=>{let i=0;const s=t.length,o=r.length,a=Math.ceil(Math.max(s,o)*(1-n));s!==o&&(i=Math.abs(s-o));let u=0;for(let n=0;n<Math.min(s,o);n++)if(t[n]!==r[n]&&(u+=e(t[n],r[n]),u>a))return 1;return u+=i,u/=Math.max(s,o),u}}s._onBitCount=Int8Array.from([0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8]),s._firstOnBit=Int8Array.from([-1,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0]),s._lastOnBit=Int8Array.from([-1,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7]),function(t){t.Levenshtein="Levenshtein",t.JaroWinkler="Jaro-Winkler",t.Manhattan="Manhattan",t.Onehot="One-Hot"}(o||(o={})),function(t){t.Euclidean="Euclidean"}(a||(a={})),function(t){t.Tanimoto="Tanimoto",t.Dice="Dice",t.Asymmetric="Asymmetric",t.BraunBlanquet="Braun-Blanquet",t.Cosine="Cosine",t.Kulczynski="Kulczynski",t.McConnaughey="Mc-Connaughey",t.RogotGoldberg="Rogot-Goldberg",t.Russel="Russel",t.Sokal="Sokal",t.Hamming="Hamming",t.Euclidean="Euclidean"}(u||(u={})),function(t){t.TanimotoIntArray="TanimotoIntArray"}(l||(l={})),function(t){t.Vector="Vector",t.String="String",t.BitArray="BitArray",t.MacroMolecule="MacroMolecule",t.Number="Number",t.IntArray="IntArray",t.NumberArray="NumberArray"}(c||(c={})),function(t){t.Difference="Difference"}(h||(h={})),function(t){t.CommonItems="Common Items"}(f||(f={}));const p=new Uint32Array(65536),g={gapOpen:1,gapExtend:.6,scoringMatrix:[[4,-1,-2,-2,0,-1,-1,0,-2,-1,-1,-1,-1,-2,-1,1,0,-3,-2,0,-2,-1,0,-4],[-1,5,0,-2,-3,1,0,-2,0,-3,-2,2,-1,-3,-2,-1,-1,-3,-2,-3,-1,0,-1,-4],[-2,0,6,1,-3,0,0,0,1,-3,-3,0,-2,-3,-2,1,0,-4,-2,-3,3,0,-1,-4],[-2,-2,1,6,-3,0,2,-1,-1,-3,-4,-1,-3,-3,-1,0,-1,-4,-3,-3,4,1,-1,-4],[0,-3,-3,-3,9,-3,-4,-3,-3,-1,-1,-3,-1,-2,-3,-1,-1,-2,-2,-1,-3,-3,-2,-4],[-1,1,0,0,-3,5,2,-2,0,-3,-2,1,0,-3,-1,0,-1,-2,-1,-2,0,3,-1,-4],[-1,0,0,2,-4,2,5,-2,0,-3,-3,1,-2,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-2,0,-1,-3,-2,-2,6,-2,-4,-4,-2,-3,-3,-2,0,-2,-2,-3,-3,-1,-2,-1,-4],[-2,0,1,-1,-3,0,0,-2,8,-3,-3,-1,-2,-1,-2,-1,-2,-2,2,-3,0,0,-1,-4],[-1,-3,-3,-3,-1,-3,-3,-4,-3,4,2,-3,1,0,-3,-2,-1,-3,-1,3,-3,-3,-1,-4],[-1,-2,-3,-4,-1,-2,-3,-4,-3,2,4,-2,2,0,-3,-2,-1,-2,-1,1,-4,-3,-1,-4],[-1,2,0,-1,-3,1,1,-2,-1,-3,-2,5,-1,-3,-1,0,-1,-3,-2,-2,0,1,-1,-4],[-1,-1,-2,-3,-1,0,-2,-3,-2,1,2,-1,5,0,-2,-1,-1,-1,-1,1,-3,-1,-1,-4],[-2,-3,-3,-3,-2,-3,-3,-3,-1,0,0,-3,0,6,-4,-2,-2,1,3,-1,-3,-3,-1,-4],[-1,-2,-2,-1,-3,-1,-1,-2,-2,-3,-3,-1,-2,-4,7,-1,-1,-4,-3,-2,-2,-1,-2,-4],[1,-1,1,0,-1,0,0,0,-1,-2,-2,0,-1,-2,-1,4,1,-3,-2,-2,0,0,0,-4],[0,-1,0,-1,-1,-1,-1,-2,-2,-1,-1,-1,-1,-2,-1,1,5,-2,-2,0,-1,-1,0,-4],[-3,-3,-4,-4,-2,-2,-3,-2,-2,-3,-2,-3,-1,1,-4,-3,-2,11,2,-3,-4,-3,-2,-4],[-2,-2,-2,-3,-2,-1,-2,-3,2,-1,-1,-2,-1,3,-3,-2,-2,2,7,-1,-3,-2,-1,-4],[0,-3,-3,-3,-1,-2,-2,-3,-3,3,1,-2,1,-1,-2,-2,0,-3,-1,4,-3,-2,-1,-4],[-2,-1,3,4,-3,0,1,-1,0,-3,-4,0,-3,-3,-2,0,-1,-4,-3,-3,4,1,-1,-4],[-1,0,0,1,-3,3,4,-2,0,-3,-3,1,-1,-3,-1,0,-1,-3,-2,-2,1,4,-1,-4],[0,-1,-1,-1,-2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-2,0,0,-2,-1,-1,-1,-1,-1,-4],[-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,-4,1]],alphabetIndexes:{A:0,R:1,N:2,D:3,C:4,Q:5,E:6,G:7,H:8,I:9,L:10,K:11,M:12,F:13,P:14,S:15,T:16,W:17,Y:18,V:19,B:20,Z:21,X:22,"*":23}};var m;!function(t){t.HAMMING="Hamming",t.LEVENSHTEIN="Levenshtein",t.NEEDLEMANN_WUNSCH="Needlemann-Wunsch",t.MONOMER_CHEMICAL_DISTANCE="Monomer chemical distance"}(m||(m={}));const v={[m.HAMMING]:d,[m.LEVENSHTEIN]:function(){return(t,e)=>((t,e)=>{if(t.length<e.length){const n=e;e=t,t=n}return 0===e.length?t.length:t.length<=32?((t,e)=>{const n=t.length,r=e.length,i=1<<n-1;let s=-1,o=0,a=n,u=n;for(;u--;)p[t.charCodeAt(u)]|=1<<u;for(u=0;u<r;u++){let t=p[e.charCodeAt(u)];const n=t|o;t|=(t&s)+s^s,o|=~(t|s),s&=t,o&i&&a++,s&i&&a--,o=o<<1|1,s=s<<1|~(n|o),o&=n}for(u=n;u--;)p[t.charCodeAt(u)]=0;return a})(t,e):((t,e)=>{const n=e.length,r=t.length,i=[],s=[],o=Math.ceil(n/32),a=Math.ceil(r/32);for(let t=0;t<o;t++)s[t]=-1,i[t]=0;let u=0;for(;u<a-1;u++){let o=0,a=-1;const l=32*u,c=Math.min(32,r)+l;for(let e=l;e<c;e++)p[t.charCodeAt(e)]|=1<<e;for(let t=0;t<n;t++){const n=p[e.charCodeAt(t)],r=s[t/32|0]>>>t&1,u=i[t/32|0]>>>t&1,l=n|o,c=((n|u)&a)+a^a|n|u;let h=o|~(c|a),f=a&c;h>>>31^r&&(s[t/32|0]^=1<<t),f>>>31^u&&(i[t/32|0]^=1<<t),h=h<<1|r,f=f<<1|u,a=f|~(l|h),o=h&l}for(let e=l;e<c;e++)p[t.charCodeAt(e)]=0}let l=0,c=-1;const h=32*u,f=Math.min(32,r-h)+h;for(let e=h;e<f;e++)p[t.charCodeAt(e)]|=1<<e;let d=r;for(let t=0;t<n;t++){const n=p[e.charCodeAt(t)],o=s[t/32|0]>>>t&1,a=i[t/32|0]>>>t&1,u=n|l,h=((n|a)&c)+c^c|n|a;let f=l|~(h|c),g=c&h;d+=f>>>r-1&1,d-=g>>>r-1&1,f>>>31^o&&(s[t/32|0]^=1<<t),g>>>31^a&&(i[t/32|0]^=1<<t),f=f<<1|o,g=g<<1|a,c=g|~(u|f),l=f&u}for(let e=h;e<f;e++)p[t.charCodeAt(e)]=0;return d})(t,e)})(t,e)/Math.max(t.length,e.length)},[m.NEEDLEMANN_WUNSCH]:function(t){const e=new Uint16Array(65536),{gapOpen:n,gapExtend:r,scoringMatrix:i,alphabetIndexes:s}={...g,...t};Object.entries(s).forEach((([t,n])=>e[t.charCodeAt(0)]=n));const o=[new Float32Array(1e4),new Float32Array(1e4)];return(t,s)=>{const a=new Array(t.length+1).fill(!1),u=new Array(t.length+1).fill(!1);let l=0,c=1;for(let e=1;e<t.length+1;e++)o[0][e]=-n-(e-1)*r,o[1][e]=0;o[0][0]=0;for(let h=1;h<s.length+1;h++){o[c][0]=-n-(h-1)*r;for(let f=1;f<t.length+1;f++){const d=o[l][f-1]+i[e[t.charCodeAt(f-1)]][e[s.charCodeAt(h-1)]],p=o[l][f]-(a[f]?r:n),g=o[c][f-1]-(u[f-1]?r:n);o[c][f]=Math.max(d,g,p),o[c][f]===d?(a[f]=!1,u[f]=!1):o[c][f]===g?(a[f]=!1,u[f]=!0):(a[f]=!0,u[f]=!1)}l=c,c=(c+1)%2}const h=Math.max(t.length,s.length);return(h-o[l][t.length])/h}},[m.MONOMER_CHEMICAL_DISTANCE]:d};u.Tanimoto,u.Dice,u.Asymmetric,u.BraunBlanquet,u.Cosine,u.Kulczynski,u.McConnaughey,u.RogotGoldberg,u.Russel,u.Sokal,u.Hamming,u.Euclidean,u.Tanimoto,u.Dice,u.Asymmetric,u.BraunBlanquet,u.Cosine,u.Kulczynski,u.McConnaughey,u.RogotGoldberg,u.Russel,u.Sokal,u.Hamming,u.Euclidean,u.Tanimoto,u.Dice,u.Cosine,u.Tanimoto,u.Asymmetric,u.Cosine,u.Sokal,m.HAMMING,m.LEVENSHTEIN,m.MONOMER_CHEMICAL_DISTANCE,m.NEEDLEMANN_WUNSCH;const y={monomerType:"Backbone",smiles:"",name:"",author:"Datagrok",molfile:"",naturalAnalog:"",rgroups:[],createDate:null,id:0,polymerType:"PEPTIDE",symbol:""},b="p",A=new RegExp(`[rd]\\((\\w)\\)${b}?`,"g");class w{constructor(t,e,n){this.name=t,this.alphabet=e,this.cutoff=n}}class C extends w{constructor(t,e,n){super(t.name,t.alphabet,t.cutoff),this.freq=e,this.similarity=n}}const x=wu;var _,S,E,T,I,N=n.n(x);(I=_||(_={})).FASTA="fasta",I.SEPARATOR="separator",I.HELM="helm",(T=S||(S={})).DNA="DNA",T.RNA="RNA",T.PT="PT",T.UN="UN",function(t){t.aligned="aligned",t.alphabet="alphabet",t.alphabetSize=".alphabetSize",t.alphabetIsMultichar=".alphabetIsMultichar",t.separator="separator",t.isHelmCompatible=".isHelmCompatible",t.positionNames=".positionNames",t.positionLabels=".positionLabels",t.regions=".regions"}(E||(E={}));const O=/(?:\[([A-Za-z0-9_\-,()]+)\])|([A-Za-z\-])/g,M=new class{constructor(){this.fasta={peptide:new Set(["G","L","Y","S","E","Q","D","N","F","A","K","R","H","C","V","P","W","I","M","T"]),dna:new Set(["A","C","G","T"]),rna:new Set(["A","C","G","U"])}}},L=[new w(S.PT,M.fasta.peptide,.5),new w(S.DNA,M.fasta.dna,.55),new w(S.RNA,M.fasta.rna,.55)];class B extends Float32Array{}function P(t){let e=0;for(let n=0;n<t.length;n++)e+=t[n]*t[n];return Math.sqrt(e)}class R{static makePalette(t,e=!1,n=R){const r={};return t.forEach((t=>{const n=t[0],i=t[1];n.forEach(((t,n)=>{r[t]=this.colourPalette[i][e?0:n]}))})),new n(r)}constructor(t){this._palette=t}get(t){return this._palette[t]}}R.undefinedColor="rgb(100,100,100)",R.colourPalette={orange:["rgb(255,187,120)","rgb(245,167,100)","rgb(235,137,70)","rgb(205, 111, 71)"],all_green:["rgb(44,160,44)","rgb(74,160,74)","rgb(23,103,57)","rgb(30,110,96)","rgb(60,131,95)","rgb(24,110,79)","rgb(152,223,138)","rgb(182, 223, 138)","rgb(152, 193, 138)"],all_blue:["rgb(31,119,180)","rgb(23,190,207)","rgb(122, 102, 189)","rgb(158,218,229)","rgb(141, 124, 217)","rgb(31, 120, 150)"],magenta:["rgb(162,106,192)","rgb(197,165,224)","rgb(208,113,218)"],red:["rgb(214,39,40)","rgb(255,152,150)"],st_blue:["rgb(23,190,207)","rgb(158,218,229)","rgb(31,119,180)"],dark_blue:["rgb(31,119,180)","rgb(31, 120, 150)"],light_blue:["rgb(23,190,207)","rgb(158,218,229)","rgb(108, 218, 229)","rgb(23,190,227)"],lilac_blue:["rgb(124,102,211)","rgb(149,134,217)","rgb(97, 81, 150)"],dark_green:["rgb(23,103,57)","rgb(30,110,96)","rgb(60,131,95)","rgb(24,110,79)"],green:["rgb(44,160,44)","rgb(74,160,74)"],light_green:["rgb(152,223,138)","rgb(182, 223, 138)","rgb(152, 193, 138)"],st_green:["rgb(44,160,44)","rgb(152,223,138)","rgb(39, 174, 96)","rgb(74,160,74)"],pink:["rgb(247,182,210)"],brown:["rgb(140,86,75)","rgb(102, 62, 54)"],gray:["rgb(127,127,127)","rgb(199,199,199)","rgb(196,156,148)","rgb(222, 222, 180)"],yellow:["rgb(188,189,34)"],white:["rgb(230,230,230)"]};class D extends R{static get Lesk(){return void 0===this.lesk&&(this.lesk=this.makePalette([[["G","A","S","T"],"orange"],[["C","V","I","L","P","F","Y","M","W"],"all_green"],[["N","Q","H"],"magenta"],[["D","E"],"red"],[["K","R"],"all_blue"]],!1,D)),this.lesk}static get GrokGroups(){return void 0===this.grokGroups&&(this.grokGroups=this.makePalette([[["C","U"],"yellow"],[["G","P"],"red"],[["A","V","I","L","M","F","Y","W"],"all_green"],[["R","H","K"],"light_blue"],[["D","E"],"dark_blue"],[["S","T","N","Q"],"orange"]],!1,D)),this.grokGroups}static get RasMol(){return void 0===this.rasMol&&(this.rasMol=new D({D:"#E60A0A",E:"#E60A0A",C:"#E6E600",M:"#E6E600",K:"#145AFF",R:"#145AFF",S:"#FA9600",T:"#FA9600",F:"#3232AA",Y:"#3232AA",N:"#00DCDC",Q:"#00DCDC",G:"#EBEBEB",L:"#0F820F",V:"#0F820F",I:"#0F820F",A:"#C8C8C8",W:"#B45AB4",H:"#8282D2",P:"#DC9682",others:"#BEA06E"})),this.rasMol}get(t){const e=t in D.aaSynonyms?D.aaSynonyms[t]:t;return super.get(e)}}D.aaSynonyms={MeNle:"L",MeA:"A",MeG:"G",MeF:"F"};class F{static getPalette(t="grok"){switch(t){case"grok":return D.GrokGroups;case"lesk":return D.Lesk;default:throw new Error(`ChemPalette: scheme \`${t}\` does not exist`)}}static getInnerOuter(t){let e=0,n="",r="";for(const i of t)"("==i?e++:")"==i?e--:e?n+=i:r+=i;return isNaN(parseInt(n))?[r,n]:[r,""]}static getColorAAPivot(t="",e="grok"){const n=this.getPalette(e);let[r,i]=this.getInnerOuter(t);if(r=r.length>6?`${r.slice(0,3)}...`:r,i=i.length>6?`${i.slice(0,3)}...`:i,1==t.length||"("==t[1]){const e=t[0]?.toUpperCase();return e in n?[n.get(e),e,i,1]:[this.undefinedColor,r,i,1]}if("d"==t[0]&&t[1]in n&&(2==t.length||"("==t[2])){const e=t[1]?.toUpperCase();return e in n?[n.get(e),e,i,2]:[this.undefinedColor,r,i,2]}if(t.substring(0,3)in this.AAFullNames&&(3==t.length||"("==t[3])){const e=this.AAFullNames[t.substring(0,3)];return e in n?[n.get(e),e,i,3]:[this.undefinedColor,r,i,3]}if(t[0]?.toLowerCase()==t[0]&&t.substring(1,3)in this.AAFullNames&&(4==t.length||"("==t[4])){const e=this.AAFullNames[t.substring(1,3)];return e in n?[n.get(e),e,i,4]:[this.undefinedColor,r,i,4]}return[this.undefinedColor,r,i,0]}}F.SemType="Aminoacids",F.SemTypeMultipleAlignment="AminoacidsMultipleAlignment",F.undefinedColor="rgb(100,100,100)",F.Names={G:"Glycine",L:"Leucine",Y:"Tyrosine",S:"Serine",E:"Glutamic acid",Q:"Glutamine",D:"Aspartic acid",N:"Asparagine",F:"Phenylalanine",A:"Alanine",K:"Lysine",R:"Arginine",H:"Histidine",C:"Cysteine",V:"Valine",P:"Proline",W:"Tryptophan",I:"Isoleucine",M:"Methionine",T:"Threonine"},F.AASmiles={G:"NCC(=O)O",L:"N[C@H](CC(C)C)C(=O)O",Y:"NC(CC1=CC=C(O)C=C1)C(=O)O",S:"NC(CO)C(=O)O",E:"N[C@@H](CCC(O)=O)C(=O)O",Q:"N[C@@H](CCC(N)=O)C(=O)O",D:"N[C@@H](CC(O)=O)C(=O)O",N:"N[C@@H](CC(N)=O)C(=O)O",F:"NC(CC1=CC=CC=C1)C(=O)O",A:"N[C@H](C)C(=O)O",K:"NC(CCCCN)C(=O)O",R:"N[C@H](CCCNC(=N)C)C(=O)O",H:"NC(CC1=CN=C[N]1)C(=O)O",C:"N[C@@H](CS)C(=O)O",V:"NC(C(C)C)C(=O)O",P:"N(CCC1)C1C(=O)O",W:"N[C@@H](Cc1c2ccccc2n([H])c1)C(=O)O",I:"N[C@H]([C@H](C)CC)C(=O)O",M:"NC(CCSC)C(=O)O",T:"NC(C(O)C)C(=O)O"},F.AASmilesTruncated={G:"*C*",L:"CC(C)C[C@H](*)*",Y:"C1=CC(=CC=C1CC(*)*)O",S:"OCC(*)C*",E:"*[C@@H](CCC(O)=O)*",Q:"*N[C@@H](CCC(N)=O)*",D:"*[C@@H](CC(O)=O)*",N:"*[C@@H](CC(N)=O)*",F:"C1=CC=C(C=C1)CC(*)*",A:"C[C@H](*)*",K:"C(CCN)CC(*)*",R:"*[C@H](CCCNC(=N)C)*",H:"C1=C(NC=N1)CC(*)*",C:"C([C@@H](*)*)S",V:"CC(C)C(*)*",P:"C1CCN(*)C1*",W:"*[C@@H](Cc1c2ccccc2n([H])c1)*",I:"CC[C@H](C)[C@H](*)*",M:"CSCCC(*)*",T:"CC(O)C(*)*"},F.AAFullNames={Ala:"A",Arg:"R",Asn:"N",Asp:"D",Cys:"C",Gln:"Q",Glu:"E",Gly:"G",His:"H",Ile:"I",Leu:"L",Lys:"K",Met:"M",Phe:"F",Pro:"P",Ser:"S",Thr:"T",Trp:"W",Tyr:"Y",Val:"V"};class U{}U.SemType="Nucleotides",U.SemTypeMultipleAlignment="NucleotidesMultipleAlignment",U.Names={A:"Adenine",C:"Cytosine",G:"Guanine",T:"Thymine",U:"Uracil"};class k{static hashCode(t){let e=0;if(0===t.length)return e;for(let n=0;n<t.length;n++)e=(e<<5)-e+t.charCodeAt(n),e|=0;return e}}class H{}class j extends H{static buildPalette(){return[].concat(...Object.values(R.colourPalette))}get(e){const n=k.hashCode(e)%j.palette.length;return function(e){if(null==e)return"rgb(100,100,100)";const n=t.Color.fromHtml(e),r=t.Color.g(n),i=t.Color.r(n),s=t.Color.b(n),o=Math.sqrt(Math.pow(0-i,2)+Math.pow(0-r,2)+Math.pow(0-s,2));return o>210?`rgb(${i/o*210},${r/o*210},${s/o*210})`:t.Color.toRgb(n)}(j.palette[n])}}j.palette=j.buildPalette();class V{get length(){return this.mList.length}get canonicals(){return this.mList}get originals(){return this.mList}isGap(t){return this.getOriginal(t)===this.gapOriginalMonomer}getCanonical(t){if(this.length<=t)throw new Error("Index out of bounds");return this.mList[t]}getOriginal(t){if(this.length<=t)throw new Error("Index out of bounds");return this.mList[t]}constructor(t,e){this.mList=t,this.gapOriginalMonomer=e}}class q{get length(){return this.seqS.length}get canonicals(){return this.seqS}get originals(){return this.seqS}isGap(t){return this.getOriginal(t)===Z[_.FASTA]}getCanonical(t){if(this.length<=t)throw new Error("Index out of bounds");return this.isGap(t)?"":this.seqS[t]}getOriginal(t){if(this.length<=t)throw new Error("Index out of bounds");return this.seqS[t]}constructor(t){this.seqS=t}}const G=t=>{const e=N()(t.toString().matchAll(O)).map((t=>t[2]??t[1])).toArray();return new V(e,Z[_.FASTA])},W=t=>t?new q(t):new V([],Z[_.FASTA]);function z(t,e=void 0){return n=>{if(n){let r;const i=new RegExp(String.raw`"-"|'-'|[^${t}]+`,"g");if(void 0!==e){i.lastIndex=0,r=new Array(Math.ceil(e));let t=null,s=0;for(;null!==(t=i.exec(n))&&s<e;)r[s++]=t[0].replace('"-"',"").replace("'-'","");r.splice(s)}else r=n.replaceAll('"-"',"").replaceAll("'-'","").split(t,e);return new V(r,Z[_.SEPARATOR])}return new V([],Z[_.SEPARATOR])}}const Y=/(PEPTIDE1|DNA1|RNA1)\{([^}]+)}/g,K=/\[([^\[\]]+)]/g,Q=t=>{Y.lastIndex=0;const e=Y.exec(t.toString()),n=e?e[2]:null,r=n?n.split("."):[];return new V(r.map((t=>{K.lastIndex=0;const e=K.exec(t);return e&&e.length>=2?e[1]:t})),Z[_.HELM])};function J(t,e,n="-"){const r=e.map((e=>{const r=function(t,e,n="-"){const r=new Set([...new Set(Object.keys(t)),...e]);r.delete(n);const i=[],s=[];for(const n of r)i.push(n in t?t[n]:0),s.push(e.has(n)?1:0);const o=new B(i),a=new B(s);return function(t,e){if(t.length!=e.length)throw new Error("The dimensionality of the vectors must match");let n=0;for(let r=0;r<t.length;r++)n+=t[r]*e[r];return n}(o,a)/(P(o)*P(a))}(t,e.alphabet,n);return new C(e,t,r)}));let i;const s=Math.max(...r.map((t=>t.similarity>t.cutoff?t.similarity:-1)));return i=s>0?r.find((t=>t.similarity===s)).name:S.UN,i}const X=new class{constructor(){this.seqHandler="seq-handler",this.notationProvider="seq-handler.notation-provider"}},Z={[_.FASTA]:"-",[_.SEPARATOR]:"",[_.HELM]:"*"};class tt{constructor(e){if(this._splitter=null,this.cached=!0,this._splitted=null,this.columnVersion=null,this._stats=null,this._maxLength=null,this._posList=null,this._joiner=void 0,e.type!==t.TYPE.STRING)throw new Error(`Unexpected column type '${e.type}', must be '${t.TYPE.STRING}'.`);this._column=e;const n=this._column.getTag(t.TAGS.UNITS);if(null==n)throw new Error("Units are not specified in column");if(this._units=n,this._notation=this.getNotation(),this._defaultGapOriginal=this.isFasta()?Z[_.FASTA]:this.isHelm()?Z[_.HELM]:Z[_.SEPARATOR],!this.column.tags.has(E.aligned)||!this.column.tags.has(E.alphabet)||!this.column.tags.has(E.alphabetIsMultichar)&&!this.isHelm()&&this.alphabet===S.UN)if(this.isFasta())tt.setUnitsToFastaColumn(this);else if(this.isSeparator()){const t=e.getTag(E.separator);tt.setUnitsToSeparatorColumn(this,t)}else{if(!this.isHelm())throw new Error(`Unexpected units '${this.column.getTag(t.TAGS.UNITS)}'.`);tt.setUnitsToHelmColumn(this)}if(!this.column.tags.has(E.alphabetIsMultichar))if(this.isHelm())this.column.setTag(E.alphabetIsMultichar,"true");else if(["UN"].includes(this.alphabet))throw new Error(`For column '${this.column.name}' of alphabet '${this.alphabet}' tag '${E.alphabetIsMultichar}' is mandatory.`);this.notationProvider=this.column.temp[X.notationProvider]??null,this.columnVersion=this.column.version}static setUnitsToFastaColumn(e){if(e.column.semType!==t.SEMTYPE.MACROMOLECULE||e.column.getTag(t.TAGS.UNITS)!==_.FASTA)throw new Error(`The column of notation '${_.FASTA}' must be '${t.SEMTYPE.MACROMOLECULE}'.`);e.column.setTag(t.TAGS.UNITS,_.FASTA),tt.setTags(e)}static setUnitsToSeparatorColumn(e,n){if(e.column.semType!==t.SEMTYPE.MACROMOLECULE||e.column.getTag(t.TAGS.UNITS)!==_.SEPARATOR)throw new Error(`The column of notation '${_.SEPARATOR}' must be '${t.SEMTYPE.MACROMOLECULE}'.`);if(!n)throw new Error(`The column of notation '${_.SEPARATOR}' must have the separator tag.`);e.column.setTag(t.TAGS.UNITS,_.SEPARATOR),e.column.setTag(E.separator,n),tt.setTags(e)}static setUnitsToHelmColumn(e){if(e.column.semType!==t.SEMTYPE.MACROMOLECULE)throw new Error(`The column of notation '${_.HELM}' must be '${t.SEMTYPE.MACROMOLECULE}'`);e.column.setTag(t.TAGS.UNITS,_.HELM),tt.setTags(e)}static setTags(e){const n=e.column.getTag(t.TAGS.UNITS);if([_.FASTA,_.SEPARATOR].includes(n)){if(!e.column.getTag(E.alphabet)&&0===Object.keys(e.stats.freq).length)throw new Error("Alphabet is empty and not annotated.");let t=e.column.getTag(E.aligned);null===t&&(t=e.stats.sameLength?"SEQ.MSA":"SEQ",e.column.setTag(E.aligned,t));let n=e.column.getTag(E.alphabet);if(null===n&&(n=J(e.stats.freq,L),e.column.setTag(E.alphabet,n)),n===S.UN){const t=Object.keys(e.stats.freq).length,n=Object.keys(e.stats.freq).some((t=>t.length>1));e.column.setTag(E.alphabetSize,t.toString()),e.column.setTag(E.alphabetIsMultichar,n?"true":"false")}}}get column(){return this._column}get length(){return this._column.length}get units(){return this._units}get notation(){return this._notation}get defaultGapOriginal(){return this._defaultGapOriginal}get separator(){const t=this.column.getTag(E.separator)??void 0;if(this.notation===_.SEPARATOR&&void 0===t)throw new Error(`Separator is mandatory for column '${this.column.name}' of notation '${this.notation}'.`);return t}get aligned(){const t=this.column.getTag(E.aligned);if(!t&&(this.isFasta()||this.isSeparator()))throw new Error("Tag aligned not set");return t}get alphabet(){const t=this.column.getTag(E.alphabet);if(!t&&(this.isFasta()||this.isSeparator()))throw new Error("Tag alphabet not set");return t}get helmCompatible(){return this.column.getTag(E.isHelmCompatible)}getAlphabetSize(){if(this.notation==_.HELM||this.alphabet==S.UN){const t=this.column.getTag(E.alphabetSize);let e;if(t)e=parseInt(t);else{const t=this.stats;e=Object.keys(t.freq).length}return e}switch(this.alphabet){case S.PT:return 20;case S.DNA:case S.RNA:return 4;case"NT":return console.warn("Unexpected alphabet 'NT'."),4;default:throw new Error(`Unexpected alphabet '${this.alphabet}'.`)}}getAlphabetIsMultichar(){return this.notation===_.HELM||this.alphabet===S.UN&&"true"===this.column.getTag(E.alphabetIsMultichar)}getSplitted(t,e){if(this.cached&&void 0===e){this.column.version===this.columnVersion&&null!==this._splitted||(this.columnVersion=this.column.version,this._splitted=new Array(this.column.length));let e=this._splitted[t]?this._splitted[t].deref():void 0;if(!e){const n=this.column.get(t);e=this.splitter(n),this._splitted[t]=new WeakRef(e)}return e}{const n=this.column.get(t);return this.getSplitter(e)(n)}}get stats(){if(null===this._stats){const t={};let e=!0,n=null;const r=this.column.length;for(let i=0;i<r;++i){const r=this.getSplitted(i);null==n?n=r.length:r.length!==n&&(e=!1);for(const e of r.canonicals)e in t||(t[e]=0),t[e]+=1}this._stats={freq:t,sameLength:e}}return this._stats}get maxLength(){return null===this._maxLength&&(this._maxLength=0===this.column.length?0:Math.max(...N().count(0).take(this.column.length).map((t=>this.getSplitted(t).length)))),this._maxLength}get posList(){if(null===this._posList){const t=this.column.getTag(E.positionNames);this._posList=t?t.split(", ").map((t=>t.trim())):N().count(1).take(this.maxLength).map((t=>t.toString())).toArray()}return this._posList}isFasta(){return this.notation===_.FASTA}isSeparator(){return this.notation===_.SEPARATOR}isHelm(){return this.notation===_.HELM}isRna(){return this.alphabet===S.RNA}isDna(){return this.alphabet===S.DNA}isPeptide(){return this.alphabet===S.PT}isMsa(){return!!this.aligned&&this.aligned.toUpperCase().includes("MSA")}isHelmCompatible(){return"true"===this.helmCompatible}isGap(t){return!t||t===this._defaultGapOriginal}getNotation(){if(this.units.toLowerCase().startsWith(_.FASTA))return _.FASTA;if(this.units.toLowerCase().startsWith(_.SEPARATOR))return _.SEPARATOR;if(this.units.toLowerCase().startsWith(_.HELM))return _.HELM;throw new Error(`Column '${this.column.name}' has unexpected notation '${this.units}'.`)}getHelmWrappers(){return[this.isDna()||this.isRna()||this.isHelmCompatible()?"RNA1{":"PEPTIDE1{",this.isDna()?"d(":this.isRna()?"r(":"",this.isDna()||this.isRna()?")p":"","}$$$$"]}getNewColumn(e,n,r,i){const s=this.column,o=e.toLowerCase()+"("+s.name+")",a=r??s.dataFrame.columns.getUnusedName(o),u=t.Column.fromList("string",a,i??new Array(this.column.length).fill(""));if(u.semType=t.SEMTYPE.MACROMOLECULE,u.setTag(t.TAGS.UNITS,e),e===_.SEPARATOR){if(!n)throw new Error(`Notation '${_.SEPARATOR}' requires separator value.`);u.setTag(E.separator,n)}u.setTag(t.TAGS.CELL_RENDERER,e===_.HELM?"helm":"sequence");const l=s.getTag(E.aligned);l&&u.setTag(E.aligned,l);let c=s.getTag(E.alphabet);c||this.notation!==_.HELM||e===_.HELM||(c=S.UN),null!=c&&u.setTag(E.alphabet,c);let h=s.getTag(E.alphabetSize);null!=c&&h&&u.setTag(E.alphabetSize,h);const f=s.getTag(E.alphabetIsMultichar);return null!=c&&void 0!==f&&u.setTag(E.alphabetIsMultichar,f),e==_.HELM&&(h=this.getAlphabetSize().toString(),u.setTag(E.alphabetSize,h)),u}getNewColumnFromList(t,e){return this.getNewColumn(this.notation,this.separator,t,e)}static getNewColumn(t){const e=tt.forColumn(t),n=e.notation;return e.getNewColumn(n)}static unitsStringIsValid(t){return t=t.toLowerCase(),[_.FASTA,_.SEPARATOR,_.HELM].some((e=>t.startsWith(e.toLowerCase())))}static getNewColumnFromParams(e,n,r){if(!tt.unitsStringIsValid(r))throw new Error("Invalid format of 'units' parameter");const i=t.Column.fromList("string",n,new Array(e).fill(""));return i.semType=t.SEMTYPE.MACROMOLECULE,i.setTag(t.TAGS.UNITS,r),i}getSplitter(t){let e=null;if(e=this.notationProvider?this.notationProvider.splitter:null,e)return e;if(this.units.toLowerCase().startsWith(_.FASTA))return null===this.column.getTag(E.alphabet)||this.getAlphabetIsMultichar()?G:W;if(this.units.toLowerCase().startsWith(_.SEPARATOR))return z(this.separator,t);if(this.units.toLowerCase().startsWith(_.HELM))return Q;throw new Error(`Unexpected units ${this.units} .`)}split(t){return this.splitter(t)}getDistanceFunctionName(){if(!this.isFasta())throw new Error("Only FASTA notation is supported");if(this.isMsa())return m.HAMMING;switch(this.alphabet){case S.DNA:case S.RNA:case S.PT:}return m.LEVENSHTEIN}getDistanceFunction(){return v[this.getDistanceFunctionName()]()}async checkHelmCompatibility(){if(this.column.tags.has(E.isHelmCompatible))return"true"===this.column.getTag(E.isHelmCompatible);const t=(await rt()).getBioLib().getMonomerSymbolsByType("PEPTIDE"),e=new Set(t),n=(z(this.separator),new Set),r=this.column.length,i=this.column.getRawData();for(let t=0;t<r;++t){const r=i[t];if(!(r in n)){n.add(r);const i=this.getSplitted(t);for(const t of i.canonicals)if(!e.has(t))return this.column.setTag(E.isHelmCompatible,"false"),!1}}return this.column.setTag(E.isHelmCompatible,"true"),!0}get splitter(){return null===this._splitter&&(this._splitter=this.getSplitter()),this._splitter}toFasta(t){return t===_.FASTA}toSeparator(t){return t===_.SEPARATOR}toHelm(t){return t===_.HELM}convertHelmToFastaSeparator(t,e,n,r){r||(r=this.toFasta(e)?Z[_.FASTA]:Z[_.SEPARATOR]),n||(n=this.toFasta(e)?"":this.separator);const i=t.startsWith("RNA"),s=this.splitter(t),o=[];for(let t=0;t<s.length;++t){let n=s.getOriginal(t);if(i&&(n=n.replace(A,"")),n===Z[_.HELM])o.push(r);else if(this.toFasta(e)&&n.length>1){const t="["+n+"]";o.push(t)}else o.push(n)}return o.join(n)}convert(t,e){const n=this.getJoiner({notation:t,separator:e}),r=this.getNewColumn(t,e);return r.init((t=>{const e=this.getSplitted(t);return n(e)})),r}getRegion(t,e,n){const r=this.getNewColumn(this.notation,this.separator);r.name=n;const i=t??0,s=e??this.maxLength-1,o=this.getJoiner(),a=s-i+1,u=Z[this.notation];r.init((t=>{const e=this.getSplitted(t),n=new Array(a);for(let t=0;t<a;++t){const r=i+t;n[t]=r<e.length?e.getOriginal(r):u}return o(new V(n,u))}));const l=t=>{const e=t.split(",").map((t=>t.trim())),n=new Array(a);for(let t=0;t<a;++t){const r=i+t;n[t]=r<e.length?e[r]:"?"}return n.join(", ")},c=this.column.getTag(E.positionNames);c&&r.setTag(E.positionNames,l(c));const h=this.column.getTag(E.positionLabels);return h&&r.setTag(E.positionLabels,l(h)),r}get joiner(){return this._joiner||(this._joiner=this.getJoiner()),this._joiner}getJoiner(t){const e=t?t.notation:this.notation,n=t?t.separator:this.separator;let r;const i=this;switch(e){case _.FASTA:r=function(t){return i.joinToFasta(t,i.isHelm())};break;case _.SEPARATOR:if(!n)throw new Error(`Separator is mandatory for notation '${e}'.`);r=function(t){return et(t,n,i.isHelm())};break;case _.HELM:{const t=i.alphabet===S.DNA||i.alphabet===S.RNA,e=i.getHelmWrappers();r=function(n){return nt(n,e,t)};break}default:throw new Error(`Unexpected notation '${e}'.`)}return r}getConverter(t,e=void 0){if(t===_.SEPARATOR&&!e)throw new Error(`Target separator is not specified for target units '${_.SEPARATOR}'.`);const n=this;if(t===_.FASTA)return function(t){return n.convertToFasta(t)};if(t===_.HELM)return function(t){return n.convertToHelm(t)};if(t===_.SEPARATOR)return function(t){return n.convertToSeparator(t,e)};throw new Error}static forColumn(t){let e=t.temp[X.seqHandler];return e&&e.columnVersion===t.version||(e=t.temp[X.seqHandler]=new tt(t)),e}joinToFasta(t,e){const n=new Array(t.length);for(let r=0;r<t.length;++r){const i=t.getOriginal(r);let s=t.getOriginal(r);e&&(s=s.replace(A,"$1")),""===i?s=Z[_.FASTA]:i===b?s="":s.length>1&&(s="["+s+"]"),n[r]=s}return n.join("")}convertToFasta(t){const e=this.splitter,n=this.isHelm()?this.splitterAsHelmNucl(t):e(t);return this.joinToFasta(n,this.isHelm())}convertToSeparator(t,e){return et(this.isHelm()?this.splitterAsHelmNucl(t):this.splitter(t),e,this.isHelm())}convertToHelm(t){const e=this.getHelmWrappers(),n=t.startsWith("DNA")||t.startsWith("RNA");return nt(this.splitter(t),e,n)}splitterAsHelmNucl(t){const e=this.splitter(t),n=new Array(e.length),r=t.startsWith("DNA"),i=t.startsWith("RNA");for(let t=0;t<e.length;++t){let s=e.getOriginal(t);(r||i)&&(s=s.replace(A,"$1"),s=s===b?null:s),n[t]=s||null}return new V(n.filter((t=>!!t)),Z[_.HELM])}}function et(t,e,n){const r=new Array(t.length);for(let e=0;e<t.length;++e){const i=t.getCanonical(e);let s=t.getOriginal(e);n&&(s=s.replace(A,"$1")),""===i?s=Z[_.SEPARATOR]:i===b&&(s=""),r[e]=s}return r.join(e)}function nt(t,e,n){const[r,i,s,o]=e,a=new Array(t.length);for(let e=0;e<t.length;++e){const r=t.getCanonical(e);let o=t.getOriginal(e);""===r?o=Z[_.HELM]:(n&&(o=o.replace(A,"$1")),o=1===o.length?`${i}${o}${s}`:`${i}[${o}]${s}`),a[e]=o}return`${r}${a.join(".")}${o}`}async function rt(){const e=t.Func.find({package:"Bio",name:"getMonomerLibHelper"});if(0===e.length)throw new Error('Package "Bio" must be installed for MonomerLibHelper.');return(await e[0].prepare().call()).getOutputParamValue()}const it="System:AppData/SequenceTranslator/monomers-sample",st="pattern-app-data.json",ot="formats-to-helm.json",at="codes-to-symbols.json",ut="linkers.json",lt=["A","G","C","U"];var ct;function ht(t){return t.sort(((t,e)=>e.length-t.length))}function ft(t,e){const n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+e),n.setAttribute("download",t),n.click()}async function dt(t,e,n="Oligo app"){try{return await t()}catch(t){const e=t.hasOwnProperty("message")?t.message:t.toString();throw i.shell.error(`${n} error: `+e),t}finally{e&&e()}}!function(t){t.HELM="HELM",t.AXOLABS="Axolabs"}(ct||(ct={}));class pt{constructor(t,e){this.sequence=t,this.th=e,this.libWrapper=this.th.monomerLibWrapper}getInvalidCodeIndex(t){if(t===ct.HELM)return this.sequence.length;const e=["r","d"],n=ht(this.libWrapper.getCodesByFormat(t));let r=0;for(;r<this.sequence.length;){const t=n.find((t=>t===this.sequence.substring(r,r+t.length)));if(!t)break;if(r>1&<.includes(this.sequence[r])&&e.includes(this.sequence[r-2]))break;if(e.includes(this.sequence[r+1])&<.includes(this.sequence[r])){r++;break}r+=t.length}return r===this.sequence.length&&(r=-1),r}isValidSequence(t){return-1===this.getInvalidCodeIndex(t)}}class gt{constructor(t,e,n,r){this.patternAppData=t,this.codesToHelmDict=e,this.codesToSymbolsDict=n,this.monomersWithPhosphate=r}}async function mt(t){const e=await Promise.all([st,ot,at,ut].map((e=>async function(t,e){const n=t.endsWith("/")?`${t}${e}`:`${t}/${e}`;try{const t=await i.dapi.files.readAsText(n);return JSON.parse(t)}catch(t){console.error(`Error loading json from '${n}':`,t)}}(t,e))));return new gt(e[0],e[1],e[2],e[3])}class vt{constructor(t,e){if(this.lib=t,this.jsonData=e,null===this.lib)throw new Error("SequenceTranslator: monomer library is null");this.allMonomers=this.getAllMonomers()}formatMonomerForViewer(t){const e={};return e.name=t.symbol,e.symbol=t.symbol,e.molfile=t.molfile,this.getAllFormats().forEach((n=>{if(n===ct.HELM)return;const r=this.jsonData.codesToSymbolsDict[n],i=Object.keys(r).filter((e=>r[e]===t.symbol));e[n]=i.join(", ")})),e}getAllMonomers(){const t=this.lib.getPolymerTypes();let e=[];for(const n of t){const t=this.lib.getMonomerSymbolsByType(n).map((t=>this.lib.getMonomer(n,t))).filter((t=>null!==t));e=e.concat(t)}return e}getMonomer(t){const e=this.lib.getMonomer("RNA",t);if(void 0===e)throw new Error(`SequenceTranslator: no monomer with symbol ${t}`);return e}getMolfileBySymbol(t){return this.getMonomer(t).molfile}getNaturalAnalogBySymbol(t){const e=this.getMonomer(t).naturalAnalog;if(!e)throw new Error(`ST: no natural analog for ${t}`);return e}isModification(t){return!!this.getMolfileBySymbol(t).includes("MODIFICATION")}getCodeToSymbolMap(t){return new Map(Object.entries(this.jsonData.codesToSymbolsDict[t]))}getCodesByFormat(t){return Object.keys(this.jsonData.codesToSymbolsDict[t])}getAllFormats(){return Object.keys(this.jsonData.codesToSymbolsDict)}getTableForViewer(){const e=this.allMonomers.map((t=>this.formatMonomerForViewer(t)));return t.DataFrame.fromObjects(e)}getCodesToWeightsMap(){const t=new Map;return Object.entries(this.jsonData.codesToSymbolsDict).forEach((([e,n])=>{Object.entries(n).forEach((([e,n])=>{const r=this.getMonomer(n),i=r.meta?.molecularWeight;t.set(e,i)}))})),t}}const yt="<?>",bt=(t,e)=>e.length-t.length;class At{constructor(t){this.th=t,this.formats=this.getFormats()}getFormatNames(){return this.formats.sort()}getCodesByFormat(t){if(this.validateFormat(t),this.isHelm(t))throw new Error("Codes cannot be obtained for HELM");return this.getFormatCodes(t)}getHelmToFormatDict(t){return this.validateFormat(t),function(t){const e={};return Object.values(t).forEach((t=>{Object.entries(t).forEach((([t,n])=>{const r=n.replace(/\)p/g,")").replace(/\]p/g,"]");void 0===e[r]?e[r]=[t]:e[r].push(t)}))})),Object.entries(e).forEach((([t,n])=>{const r=n.sort(bt);e[t]=r[0]})),e}(this.th.jsonData.codesToHelmDict[t])}getFormatToHelmDict(t){this.validateFormat(t);const e=this.th.jsonData.codesToHelmDict[t];return Object.assign({},...Object.values(e))}getTargetFormatHelmCodes(t){this.validateFormat(t);const e=this.getHelmToFormatDict(t);return Object.keys(e).sort(bt)}getTargetFormatHelmCodesRegExp(t){this.validateFormat(t);const e=this.getTargetFormatHelmCodes(t);return new RegExp(wt(e)+"|.","g")}getFormatRegExp(t){if(this.validateFormat(t),this.isHelm(t))throw new Error("Helm RegExp can be built for non-HELM target formats");return this.getNonHelmFormatRegExp(t)}getPhosphateHelmCodesRegExp(t){this.validateFormat(t);const e=this.th.jsonData.codesToHelmDict[t],n=wt(Array.from(new Set(Object.values(e.phosphateBackbone))).sort(bt));return new RegExp(`p.(${n})`,"g")}isValidFormat(t){return this.formats.includes(t)}getFormats(){return Object.keys(this.th.jsonData.codesToHelmDict)}validateFormat(t){if(!this.isValidFormat(t))throw new Error(`Invalid format: ${t}`)}isHelm(t){return t===ct.HELM}getFormatCodes(t){const e=this.getFormatToHelmDict(t);return Object.keys(e).sort(bt)}getNonHelmFormatRegExp(t){const e=this.getCodesByFormat(t);return new RegExp(wt(e)+"|\\([^()]*\\)|.","g")}}function wt(t){return t.map((t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))).map((t=>t.includes("(")||t.includes(")")?t:`(?<!\\([^()]*)${t}(?![^()]*\\))`)).join("|")}const Ct={LEFT:"RNA1{",RIGHT:"}$$$$"};class xt{constructor(t,e,n){this.sequence=t,this.sourceFormat=e,this.th=n,this.formats=new At(this.th)}convertTo(t){const e=this.formats.getFormatNames();if(this.sourceFormat===ct.HELM&&e.includes(t))return this.helmToFormat(this.sequence,t);if(e.includes(this.sourceFormat)&&t===ct.HELM)return this.formatToHelm(this.sequence,this.sourceFormat);if([this.sourceFormat,t].every((t=>e.includes(t)))){const e=this.formatToHelm(this.sequence,this.sourceFormat);return this.helmToFormat(e,t)}throw new Error(`ST: unsupported translation direction ${this.sourceFormat} -> ${t}`)}helmToFormat(t,e){const n=new RegExp(wt(Object.values(Ct)),"g");let r=t.replace(n,"");const i=this.formats.getHelmToFormatDict(e),s=this.formats.getTargetFormatHelmCodes(e),o=this.formats.getTargetFormatHelmCodesRegExp(e);return r=r.replace(o,(t=>s.includes(t)?i[t]:"p"===t||"."===t?t:"?")).replace(/\?+/g,yt).replace(/p\.|\./g,""),r=r.replace(/<empty>/g,""),r=r.replace(/\/\//g,"/"),r}formatToHelm(t,e){const n=this.formats.getFormatToHelmDict(e),r=this.formats.getCodesByFormat(e),i=this.formats.getFormatRegExp(e),s=this.formats.getPhosphateHelmCodesRegExp(e);let o=t?t.replace(i,(t=>r.includes(t)?n[t]+".":"?")):"";return o=o.replace(/\?+/g,`${yt}.`),o=o.slice(0,-1),"p"===o[o.length-1]&&(o=o.slice(0,-1)),o=o.replace(s,((t,e)=>e)),o=o.replace(/<empty>/g,""),`${Ct.LEFT+o+Ct.RIGHT}`}}class _t{constructor(t,e){this.sequence=t,this.th=e,this.libWrapper=this.th.monomerLibWrapper,this.formats=Object.keys(this.th.jsonData.codesToHelmDict)}getFormat(){if(this.sequence.startsWith("RNA"))return ct.HELM;const t=this.getListOfPossibleSynthesizersByFirstMatchedCode();if(0===t.length)return null;const e=this.th.createSequenceValidator(this.sequence),n=Array(t.length).fill(0);for(let r=0;r<t.length;++r){const i=t[r];n[r]=e.getInvalidCodeIndex(i)}const r=n.some((t=>-1===t))?-1:Math.max(...n);return t[n.indexOf(r)]}getListOfPossibleSynthesizersByFirstMatchedCode(){const t=this.sequence,e=[];for(const n of this.formats){const r=ht(this.libWrapper.getCodesByFormat(n));let i=0;for(let e=0;e<t.length;e++)if(")"===t[e]&&e!==t.length-1){i=e+1;break}r.some((e=>e===t.slice(i,i+e.length)))&&e.push(n)}return e}}const St=ui,Et=$;var Tt=n.n(Et);function It(t,e){let n=0;const r=e.createFormatDetector(t).getFormat();null!==r&&(n=new pt(t,e).getInvalidCodeIndex(r));const i=n<0||""===t,s=St.span([]);Tt()(s).css("-webkit-text-fill-color","var(--grey-6)");const o=St.span([]);return Tt()(o).css("-webkit-text-fill-color","red"),i?s.innerHTML=t:(s.innerHTML=t.slice(0,n),o.innerHTML=t.slice(n)),[s,o]}class Nt extends t.Package{get monomerLib(){if(!this._monomerLib)throw new Error("Monomer lib not loaded");return this._monomerLib}get jsonData(){if(!this._jsonData)throw new Error("Json data not loaded");return this._jsonData}get monomerLibWrapper(){if(!this._monomerLibWrapper)throw new Error("Monomer lib wrapper not loaded");return this._monomerLibWrapper}constructor(){super(),this.highlightInvalidSubsequence=t=>It(t,this)}async initLibData(){return this.initPromise||(this.initPromise=(async()=>{let t=(await this.getSettings()).MonomersPath;t&&await i.dapi.files.exists(t)||(yr.logger.warning(`Monomers path '${t}' not found. Fallback to monomers sample path '${it}'.`),t=it),[this._jsonData,this._monomerLib]=await Promise.all([mt(t),Ot(t)]),this._monomerLibWrapper=new vt(this.monomerLib,this.jsonData)})()),this.initPromise}async getTranslationHelper(){return await i.functions.call(`${this.name}:getTranslationHelper`)}createSequenceValidator(t){return new pt(t,this)}createFormatConverter(t,e){return new xt(t,e,this)}createFormatDetector(t){return new _t(t,this)}}async function Ot(e){const n=t.TaskBarProgressIndicator.create("Initializing Oligo Toolkit monomer library ...");try{const t=await rt();return await t.readLibrary(e,"monomer-lib.json")}finally{n.close()}}class Mt{constructor(t,e){this.appName=t,this.parentAppName=e}async getAppView(){const e=t.TaskBarProgressIndicator.create(`Loading ${this.appName}...`),n=i.shell.v?.root;n&&St.setUpdateIndicator(n,!0);try{return await this.constructView()}finally{e.close(),n&&St.setUpdateIndicator(n,!1)}}}class Lt extends Mt{constructor(e){super(e),this.view=t.View.create(),this.configureView()}async constructView(){await this.initView();const t=this.parentAppName?this.parentAppName+"/"+this.appName:this.appName;return this.view.path=`/apps/${yr.name}/${t.replace(/\s/g,"")}/`,this.view}async initView(){const t=await this.getContent();this.view.append(t)}configureView(){this.view.box=!0,this.view.name=this.appName;const t=i.shell.windows;t.showProperties=!1,t.showToolbox=!1,t.showHelp=!1}getView(){return this.view}}const Bt=["SS","AS"],Pt={SS:"Sense strand",AS:"Anti sense"},Rt=["3'","5'"],Dt="OligoToolkit";var Ft,Ut,kt;!function(t){t.IS_ANTISENSE_STRAND_INCLUDED="isAntisenseStrandIncluded",t.NUCLEOTIDE_SEQUENCES="nucleotideSequences",t.PHOSPHOROTHIOATE_LINKAGE_FLAGS="phosphorothioateLinkageFlags",t.STRAND_TERMINUS_MODIFICATIONS="strandTerminusModifications"}(Ft||(Ft={})),function(t){t.PATTERN_NAME="patternName",t.PATTERN_COMMENT="patternComment",t.NUCLEOTIDES_WITH_NUMERIC_LABELS="nucleotidesWithNumericLabels"}(Ut||(Ut={})),function(t){t.PATTERN_CONFIG="patternConfig",t.AUTHOR_ID="authorID"}(kt||(kt={}));const Ht=[Ft.IS_ANTISENSE_STRAND_INCLUDED,Ft.NUCLEOTIDE_SEQUENCES,Ft.PHOSPHOROTHIOATE_LINKAGE_FLAGS,Ft.STRAND_TERMINUS_MODIFICATIONS],$t=(Ut.PATTERN_NAME,Ut.PATTERN_COMMENT,Ut.NUCLEOTIDES_WITH_NUMERIC_LABELS,kt.PATTERN_CONFIG,kt.AUTHOR_ID,{patternConfig:{patternName:"<default example>",isAntisenseStrandIncluded:!0,nucleotideSequences:{SS:["RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA"],AS:["RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA","RNA"]},phosphorothioateLinkageFlags:{SS:[!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0],AS:[!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0,!0]},strandTerminusModifications:{SS:{"3'":"","5'":""},AS:{"3'":"","5'":""}},patternComment:"",nucleotidesWithNumericLabels:["RNA"]},authorID:""});class jt extends Error{constructor(t){super(t),this.name="PatternNameExistsError"}}class Vt extends Error{constructor(t){super(t),this.name="PatternExistsError"}}var qt=n(802),Gt=n.n(qt);class Wt{constructor(t){this.th=t,this.otherUsersPatternNameToHash=new Map,this.currentUserPatternNameToHash=new Map}static async getInstance(){const t=await yr.getTranslationHelper(),e=new Wt(t);e.currentUserName=await e.fetchCurrentUserName(),e.currentUserId=await e.fetchCurrentUserId();const n=await e.fetchPatterns();return await e.initializePatternMaps(n),e}getCurrentUserPatternNames(){return Array.from(this.currentUserPatternNameToHash.keys()).sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase())))}getOtherUsersPatternNames(){return Array.from(this.otherUsersPatternNameToHash.keys()).sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase())))}getCurrentUserName(){return this.currentUserName}validatePatternNameUniqueness(t){if(this.currentUserPatternNameToHash.has(t))throw new jt(`Pattern with name ${t} already exists`)}validatePatternUniqueness(t){if(Array.from(this.currentUserPatternNameToHash.values()).concat(Array.from(this.otherUsersPatternNameToHash.values())).includes(t))throw new Vt(t)}getPatternHash(t,e){const n=e?this.currentUserPatternNameToHash.get(t):this.otherUsersPatternNameToHash.get(t);if(void 0===n)throw new Error(`Pattern with name ${t} not found`);return n}async getPatternRecord(t){if(null===t||""===t)return null;try{const e=await i.dapi.userDataStorage.getValue(Dt,t,!1);return JSON.parse(e)}catch{return null}}async getPatternConfig(t){if(""===t||null===t)return null;const e=await this.getPatternRecord(t);return null===e?null:e[kt.PATTERN_CONFIG]}getDefaultPatternRecord(){const t=$t;return t[kt.AUTHOR_ID]=this.currentUserId,t}getDefaultPatternConfig(){return $t[kt.PATTERN_CONFIG]}getAuthorCategoryByHash(t){if(this.isCurrentUserPattern(t))return this.getCurrentUserAuthorshipCategory();if(this.isOtherUserPattern(t))return this.getOtherUsersAuthorshipCategory();throw new Error(`Pattern with hash ${t} not found`)}isCurrentUserPattern(t){return Array.from(this.currentUserPatternNameToHash.values()).includes(t)}isOtherUserPattern(t){return Array.from(this.otherUsersPatternNameToHash.values()).includes(t)}getPatternNameByHash(t){const e=[this.currentUserPatternNameToHash,this.otherUsersPatternNameToHash];for(const n of e)for(const[e,r]of n.entries())if(r===t)return e;throw new Error(`Pattern with hash ${t} not found`)}getHashOfPatternToBeLoadedAfterDeletion(){const t=this.getCurrentUserPatternNames()[0];if(!t)throw new Error("Cannot load pattern after deletion, as there are no patterns left");const e=this.currentUserPatternNameToHash.get(t);if(void 0===e)throw new Error(`Pattern with name ${t} not found`);return e}async getRecordFromPattern(t){const e={[kt.PATTERN_CONFIG]:t,[kt.AUTHOR_ID]:await i.dapi.users.current().then((t=>t.id))};return JSON.stringify(e)}getHash(t){const e=Ht.reduce(((e,n)=>(e[n]=t[n],e)),{});return Gt().sha1(e)}async savePatternToUserStorage(t){const e=t.getPatternConfig();try{const n=this.getHash(e);this.validatePatternUniqueness(n);const r=e[Ut.PATTERN_NAME];this.validatePatternNameUniqueness(r);const s=await this.getRecordFromPattern(e);await i.dapi.userDataStorage.postValue(Dt,n,s,!1),this.currentUserPatternNameToHash.set(r,n),t.selectAuthor(this.getCurrentUserAuthorshipCategory()),t.updatePatternList()}catch(t){if(t instanceof jt||t instanceof Vt)throw t;console.error("Error while saving pattern to user storage",t)}}async overwritePatternInUserStorage(t){const e=t.getPatternConfig(),n=this.getHash(e),r=e[Ut.PATTERN_NAME],s=await this.getRecordFromPattern(e);await i.dapi.userDataStorage.postValue(Dt,n,s,!1),this.currentUserPatternNameToHash.set(r,n),t.updatePatternList()}async deletePattern(t,e){const n=this.currentUserPatternNameToHash.get(t);if(t===this.getDefaultPatternName())return void i.shell.warning("Cannot delete default pattern");if(void 0===n)throw new Error(`Pattern with name ${t} not found`);await i.dapi.userDataStorage.remove(Dt,n,!1),this.currentUserPatternNameToHash.delete(t),e.updatePatternList();const r=this.getHashOfPatternToBeLoadedAfterDeletion();e.requestPatternLoad(r)}fetchDefaultNucleobase(){return this.fetchAvailableNucleotideBases()[0]}fetchAvailableNucleotideBases(){const t=Object.keys(this.th.jsonData.patternAppData)[0];return Object.keys(this.th.jsonData.patternAppData[t])}async fetchCurrentUserName(){return(await i.dapi.users.current()).friendlyName}async fetchCurrentUserId(){return(await i.dapi.users.current()).id}async fetchPatterns(){return await i.dapi.userDataStorage.get(Dt,!1)}async initializePatternMaps(t){if(!this.currentUserId)throw new Error("Current user ID is not set");const e=new Map;for(const[n,r]of Object.entries(t))await this.extractDataFromRecordToMaps(n,r,e);this.setDefaultPattern()}setDefaultPattern(){const t=$t[kt.PATTERN_CONFIG];this.currentUserPatternNameToHash.set(t[Ut.PATTERN_NAME],"")}async extractDataFromRecordToMaps(t,e,n){const r=JSON.parse(e),s=r[kt.PATTERN_CONFIG].patternName,o=r[kt.AUTHOR_ID];if(this.isCurrentUserId(o))this.currentUserPatternNameToHash.set(s,t);else{if(!n.has(o)){const t=(await i.dapi.users.find(o)).friendlyName;n.set(o,t)}const e=s+` (created by ${n.get(o)})`;this.otherUsersPatternNameToHash.set(e,t)}}getDefaultPatternName(){return $t[kt.PATTERN_CONFIG][Ut.PATTERN_NAME]}getCurrentUserAuthorshipCategory(){return this.currentUserName+" (me)"}getOtherUsersAuthorshipCategory(){return"Other users"}isCurrentUserId(t){return t===this.currentUserId}}const zt=rxjs,Yt=rxjs.operators;function Kt(t){return t.endsWith("(o)")}function Qt(t){const e=Object.values(t).flat().reduce(((t,e)=>(t[e]=(t[e]||0)+1,t)),{});return Object.entries(e).reduce(((t,e)=>t[1]>e[1]?t:e),["",0])[0]}var Jt;function Xt(t){const e=Array.from(new Set(t));return Array.from(e).sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase())))}!function(t){t.getTruncatedStrandData=function(t,e,n){return{nucleotides:t.slice(0,n),ptoFlags:e.slice(0,n+1)}},t.getExtendedStrandData=function(t,e,n,r){const i=n-t.length,s=t.concat(new Array(n-t.length).fill(r)),o=0===t.length?n+1:i;return{nucleotides:s,ptoFlags:e.concat(new Array(o).fill(!0))}}}(Jt||(Jt={}));var Zt=n(543),te=n.n(Zt);class ee{constructor(t,e){this.dataManager=t,this._patternListUpdated$=new zt.Subject,this._patternLoadRequested$=new zt.Subject,this._patternLoaded$=new zt.Subject,this._uniqueNucleotides$=new zt.BehaviorSubject([]),this._patternDeletionRequested$=new zt.Subject,this._tableSelection$=new zt.BehaviorSubject(null),this._svgSaveRequested$=new zt.Subject,this._loadPatternInNewTabRequested$=new zt.Subject,this._urlStateUpdated$=new zt.Subject,this._patternHasUnsavedChanges$=new zt.BehaviorSubject(!1),this._selectedStrandColumn=new zt.BehaviorSubject(null),this._selectedIdColumn=new zt.BehaviorSubject(null),this.initializeAuthorSelection(e),this.initializePatternState(e),this._lastLoadedPatternConfig=new zt.BehaviorSubject(te().cloneDeep(this.getPatternConfig())),this.setupSubscriptions()}setupSubscriptions(){this._nucleotideSequences$.subscribe((()=>{this.updateUniqueNucleotides(),this.updateSequenceBase()})),this._isAntisenseStrandActive$.subscribe((t=>{t||Rt.forEach((t=>{this.updateTerminusModification("AS",t,"")}))})),this.patternStateChanged$.pipe((0,Yt.debounceTime)(20)).subscribe((()=>{const t=this._lastLoadedPatternConfig.getValue(),e=this.getPatternConfig(),n=!te().isEqual(e,t);this._patternHasUnsavedChanges$.next(n)}))}updateUniqueNucleotides(){const t=(e=this._nucleotideSequences$.getValue(),Xt(Object.values(e).flat()));var e;this._uniqueNucleotides$.next(t)}updateSequenceBase(){const t=Qt(this._nucleotideSequences$.getValue());this._sequenceBase$.next(t)}get nucleotideSequencesChanged$(){return this._nucleotideSequences$.asObservable()}initializeAuthorSelection(t){const e=t[kt.AUTHOR_ID];this.dataManager.isCurrentUserId(e)?this._patternAuthorSelection$=new zt.BehaviorSubject(this.dataManager.getCurrentUserAuthorshipCategory()):this._patternAuthorSelection$=new zt.BehaviorSubject(this.dataManager.getOtherUsersAuthorshipCategory())}initializePatternState(t){const e=t[kt.PATTERN_CONFIG];this._patternName$=new zt.BehaviorSubject(e[Ut.PATTERN_NAME]),this._isAntisenseStrandActive$=new zt.BehaviorSubject(e[Ft.IS_ANTISENSE_STRAND_INCLUDED]),this._nucleotideSequences$=new zt.BehaviorSubject(e[Ft.NUCLEOTIDE_SEQUENCES]),this._phosphorothioateLinkageFlags=new zt.BehaviorSubject(e[Ft.PHOSPHOROTHIOATE_LINKAGE_FLAGS]),this._terminalModifications=new zt.BehaviorSubject(e[Ft.STRAND_TERMINUS_MODIFICATIONS]),this._comment$=new zt.BehaviorSubject(e[Ut.PATTERN_COMMENT]),this._modificationsWithNumericLabels$=new zt.BehaviorSubject(e[Ut.NUCLEOTIDES_WITH_NUMERIC_LABELS]),this._sequenceBase$=new zt.BehaviorSubject(Qt(e[Ft.NUCLEOTIDE_SEQUENCES]))}getPatternName(){return this._patternName$.getValue()}updatePatternName(t){this._patternName$.next(t)}get antisenseStrandToggled$(){return this._isAntisenseStrandActive$.asObservable()}isAntisenseStrandActive(){return this._isAntisenseStrandActive$.getValue()}toggleAntisenseStrand(t){t?this.updateStrandLength("AS",this.getNucleotideSequences().SS.length):this.updateStrandLength("AS",0),this._isAntisenseStrandActive$.next(t)}getNucleotideSequences(){return this._nucleotideSequences$.getValue()}updateNucleotideSequences(t){this._nucleotideSequences$.next(t)}updateStrandLength(t,e){const n=this.getNucleotideSequences()[t];if(n.length===e)return;const r=this.getPhosphorothioateLinkageFlags()[t];if(0===e)return void this.setNewStrandData([],[],t);if(n.length>e){const{nucleotides:i,ptoFlags:s}=Jt.getTruncatedStrandData(n,r,e);return void this.setNewStrandData(i,s,t)}const i=this.getSequenceBase(),{nucleotides:s,ptoFlags:o}=Jt.getExtendedStrandData(n,r,e,i);this.setNewStrandData(s,o,t)}setNewStrandData(t,e,n){this.updateNucleotideSequences({...this.getNucleotideSequences(),[n]:t}),this.updatePhosphorothioateLinkageFlags({...this.getPhosphorothioateLinkageFlags(),[n]:e})}getPhosphorothioateLinkageFlags(){return this._phosphorothioateLinkageFlags.getValue()}updatePhosphorothioateLinkageFlags(t){this._phosphorothioateLinkageFlags.next(t)}get phosphorothioateLingeFlagsChanged$(){return this._phosphorothioateLinkageFlags.asObservable()}getTerminalModifications(){return this._terminalModifications.getValue()}updateTerminalModifications(t){this._terminalModifications.next(t)}updateTerminusModification(t,e,n){const r=this.getTerminalModifications();r[t][e]=n,this.updateTerminalModifications(r)}terminalModificationsUpdated$(){return this._terminalModifications.asObservable()}getComment(){return this._comment$.getValue()}updateComment(t){this._comment$.next(t)}getModificationsWithNumericLabels(){return this._modificationsWithNumericLabels$.getValue()}updateModificationsWithNumericLabels(t){const e=function(t){return Xt(t).filter((t=>!Kt(t)))}(t);this._modificationsWithNumericLabels$.next(e)}get patternLoadRequested$(){return this._patternLoadRequested$.asObservable()}requestPatternLoad(t){this._patternLoadRequested$.next(t)}get patternListUpdated$(){return this._patternListUpdated$.asObservable()}updatePatternList(){this._patternListUpdated$.next()}get tableSelectionChanged$(){return this._tableSelection$.asObservable()}selectTable(t){this._tableSelection$.next(t)}getTableSelection(){return this._tableSelection$.getValue()}requestPatternDeletion(t){this._patternDeletionRequested$.next(t)}get patternDeletionRequested$(){return this._patternDeletionRequested$.asObservable()}replaceSequenceBase(t){const e=this._nucleotideSequences$.getValue(),n={};Bt.forEach((r=>{n[r]=e[r].map((()=>t))})),this._nucleotideSequences$.next(n);const r=this._modificationsWithNumericLabels$.getValue();r.includes(t)||this.updateModificationsWithNumericLabels(r.concat(t))}get patternStateChanged$(){return zt.merge(this._patternName$.pipe((0,Yt.debounceTime)(300),(0,Yt.map)((()=>{}))),this._isAntisenseStrandActive$,this._nucleotideSequences$,this._phosphorothioateLinkageFlags,this._terminalModifications,this._comment$.pipe((0,Yt.debounceTime)(300)),this._modificationsWithNumericLabels$)}getSequenceBase(){return this._sequenceBase$.getValue()}uniqueNucleotidesChanged$(){return this.patternStateChanged$.pipe((0,Yt.switchMap)((()=>this._uniqueNucleotides$)))}getUniqueNucleotides(){return this._uniqueNucleotides$.getValue()}get svgSaveRequested$(){return this._svgSaveRequested$.asObservable()}requestSvgSave(){this._svgSaveRequested$.next()}setAllPTOLinkages(t){const e=this.getPhosphorothioateLinkageFlags();Bt.forEach((n=>{e[n]=e[n].map((()=>t))})),this.updatePhosphorothioateLinkageFlags(e)}setPatternConfig(t){this._patternName$.next(t[Ut.PATTERN_NAME]),this._isAntisenseStrandActive$.next(t[Ft.IS_ANTISENSE_STRAND_INCLUDED]),this._nucleotideSequences$.next(t[Ft.NUCLEOTIDE_SEQUENCES]),this._phosphorothioateLinkageFlags.next(t[Ft.PHOSPHOROTHIOATE_LINKAGE_FLAGS]),this._terminalModifications.next(t[Ft.STRAND_TERMINUS_MODIFICATIONS]),this._comment$.next(t[Ut.PATTERN_COMMENT]),this._modificationsWithNumericLabels$.next(t[Ut.NUCLEOTIDES_WITH_NUMERIC_LABELS])}setLastLoadedPatternConfig(t){this._lastLoadedPatternConfig.next(te().cloneDeep(t))}getPatternConfig(){return{[Ut.PATTERN_NAME]:this.getPatternName(),[Ft.IS_ANTISENSE_STRAND_INCLUDED]:this.isAntisenseStrandActive(),[Ft.NUCLEOTIDE_SEQUENCES]:this.getNucleotideSequences(),[Ft.PHOSPHOROTHIOATE_LINKAGE_FLAGS]:this.getPhosphorothioateLinkageFlags(),[Ft.STRAND_TERMINUS_MODIFICATIONS]:this.getTerminalModifications(),[Ut.PATTERN_COMMENT]:this.getComment(),[Ut.NUCLEOTIDES_WITH_NUMERIC_LABELS]:this.getModificationsWithNumericLabels()}}setPhosphorothioateLinkageFlag(t,e,n){const r=this.getPhosphorothioateLinkageFlags();r[t][e]=n,this.updatePhosphorothioateLinkageFlags(r)}setNucleotide(t,e,n){const r=this.getNucleotideSequences();r[t][e]=n;const i=this.getModificationsWithNumericLabels();this.updateModificationsWithNumericLabels(i.concat(n)),this.updateNucleotideSequences(r)}get strandsUpdated$(){return zt.merge(this._isAntisenseStrandActive$.asObservable().pipe((0,Yt.map)((()=>{}))),this._nucleotideSequences$.asObservable().pipe((0,Yt.map)((()=>{}))),this._patternLoaded$.asObservable().pipe((0,Yt.map)((()=>{})))).pipe((0,Yt.debounceTime)(10))}get strandsLinkagesAndTerminalsUpdated$(){return zt.merge(this.strandsUpdated$,this._phosphorothioateLinkageFlags.asObservable().pipe((0,Yt.map)((()=>{}))),this._terminalModifications.asObservable().pipe((0,Yt.map)((()=>{}))))}updateControlsUponPatternLoaded(t){this._patternLoaded$.next(t)}get patternLoaded$(){return this._patternLoaded$.asObservable()}get userSelection$(){return this._patternAuthorSelection$.asObservable().pipe((0,Yt.skip)(1))}selectAuthor(t){this._patternAuthorSelection$.next(t)}getSelectedAuthor(){return this._patternAuthorSelection$.getValue()}get loadPatternInNewTabRequested$(){return this._loadPatternInNewTabRequested$.asObservable()}requestLoadPatternInNewTab(t){this._loadPatternInNewTabRequested$.next(t)}updateUrlState(t){this._urlStateUpdated$.next(t)}get urlStateUpdated$(){return this._urlStateUpdated$.asObservable()}get patternHasUnsavedChanges$(){return this._patternHasUnsavedChanges$.asObservable()}selectStrandColumn(t,e){this._selectedStrandColumn.next({...this._selectedStrandColumn.getValue(),[t]:e})}getSelectedStrandColumn(t){const e=this._selectedStrandColumn.getValue();return e?e[t]:null}selectIdColumn(t){this._selectedIdColumn.next(t)}getSelectedIdColumn(){return this._selectedIdColumn.getValue()}get updateSvgContainer$(){return this.patternStateChanged$.pipe((0,Yt.debounceTime)(100))}}const ne="pattern";class re{constructor(){this.urlSearchParams=new URLSearchParams(window.location.search)}subscribeToObservables(t){t.urlStateUpdated$.subscribe((t=>this.setPatternURL(t))),t.loadPatternInNewTabRequested$.subscribe((t=>{const e=`${window.location.origin}${window.location.pathname}?${ne}=${t}`;window.open(e,"_blank")})),window.addEventListener("popstate",(()=>{this.urlSearchParams=new URLSearchParams(window.location.search);const e=this.getPatternHash();null!==e&&t.requestPatternLoad(e)}))}getPatternHash(){return this.urlSearchParams.get(ne)}setPatternURL(t){null!==t&&""!==t?(this.urlSearchParams.set(ne,t),window.history.pushState({},"",`${window.location.pathname}?${this.urlSearchParams}`)):this.clearPatternURL()}clearPatternURL(){this.urlSearchParams.delete(ne),window.history.pushState({},"",`${window.location.pathname}`)}}var ie=n(72),se=n.n(ie),oe=n(825),ae=n.n(oe),ue=n(659),le=n.n(ue),ce=n(56),he=n.n(ce),fe=n(540),de=n.n(fe),pe=n(113),ge=n.n(pe),me=n(252),ve={};ve.styleTagTransform=ge(),ve.setAttributes=he(),ve.insert=le().bind(null,"head"),ve.domAPI=ae(),ve.insertStyleElement=de(),se()(me.A,ve),me.A&&me.A.locals&&me.A.locals;class ye{constructor(t){this.eventBus=t,this.columnControlsContainer=St.div([]),this.eventBus.tableSelectionChanged$.subscribe((()=>this.handleTableChoice())),this.refreshColumnControls()}getColumnControlsContainer(){return this.columnControlsContainer}get selectedTable(){return this.eventBus.getTableSelection()}handleTableChoice(){this.refreshColumnControls()}refreshColumnControls(){Tt()(this.columnControlsContainer).empty(),Tt()(this.columnControlsContainer).append(this.constructColumnControls())}constructColumnControls(){const t=this.createStrandColumnInput(),e=t.SS,n=t.AS;this.eventBus.antisenseStrandToggled$.subscribe((t=>{Tt()(n).toggle(t)}));const r=this.createIdColumnInput();return[e,n,r]}createStrandColumnInput(){const t=this.selectedTable?this.selectedTable.columns.names().sort(((t,e)=>t.localeCompare(e))):[];return Object.fromEntries(Bt.map((e=>{const n=St.choiceInput(`${Pt[e]} column`,t[0],t,(t=>this.eventBus.selectStrandColumn(e,t)));return this.eventBus.selectStrandColumn(e,t[0]),[e,n.root]})))}createIdColumnInput(){const t=this.selectedTable?this.selectedTable.columns.names():[],e=St.choiceInput("ID column",t[0],t,(t=>this.eventBus.selectIdColumn(t)));return this.eventBus.selectIdColumn(t[0]),e.root}}class be{constructor(t){this.eventBus=t,this.availableTables=[],this.tableInputContainer=St.div([]),this.subscribeToTableEvents(),this.refreshTableInput()}getTableInputContainer(){return this.tableInputContainer}subscribeToTableEvents(){i.events.onTableAdded.subscribe((t=>this.handleTableAdded(t))),i.events.onTableRemoved.subscribe((t=>this.handleTableRemoved(t))),this.eventBus.tableSelectionChanged$.subscribe((()=>this.handleTableChoice()))}getTableFromEventData(e){if(!e&&e.args&&e.args.dataFrame instanceof t.DataFrame)throw new Error("EventData does not contain a dataframe",e);return e.args.dataFrame}handleTableAdded(t){const e=this.getTableFromEventData(t);this.availableTables.some((t=>t.name===e.name))||(this.availableTables.push(e),this.eventBus.selectTable(e),this.refreshTableInput())}handleTableRemoved(t){const e=this.getTableFromEventData(t);this.availableTables=this.availableTables.filter((t=>t.name!==e.name));const n=this.availableTables[0];this.eventBus.selectTable(n||null),this.refreshTableInput()}refreshTableInput(){const t=this.createTableInput();Tt()(this.tableInputContainer).empty(),this.tableInputContainer.append(t.root)}createTableInput(){const e=this.eventBus.getTableSelection();return St.tableInput("Tables",e,this.availableTables,(e=>{null!==e&&e instanceof t.DataFrame&&this.eventBus.selectTable(e)}))}handleTableChoice(){const t=this.eventBus.getTableSelection();t&&(this.isTableDisplayed(t)||this.displayTable(t))}isTableDisplayed(t){return i.shell.tableNames.includes(t.name)}displayTable(t){const e=i.shell.v;i.shell.addTableView(t),i.shell.v=e}}class Ae{constructor(t){this.eventBus=t,this.tableInputManager=new be(t),this.columnInputManager=new ye(t)}createControls(){const t=St.h1("Bulk convert"),e=this.tableInputManager.getTableInputContainer(),n=this.columnInputManager.getColumnControlsContainer(),r=St.bigButton("Convert",(()=>this.processConvertButtonClick()));return[t,e,n,St.buttonsInput([r])]}processConvertButtonClick(){!function(t){const e=t.getTableSelection();if(!e)return void i.shell.warning("Please select a table");const n=Bt.filter((e=>!("AS"===e&&!t.isAntisenseStrandActive()))).map((e=>t.getSelectedStrandColumn(e))).filter((t=>t));if(0===n.length)return void i.shell.warning("Please column for sense strand");const r=t.getSelectedIdColumn();if(!r)throw new Error("No ID column selected");e.getCol(r),n.map((t=>e.getCol(t)))}(this.eventBus)}}class we{constructor(t,e,n){this.eventBus=t,this.initialPatternConfig=e,this.subscriptions=n}create(){return St.divV([St.h1("PTO"),St.divH([this.createAllPtoActivationInput().root,...this.createFirstPtoInputs().map((t=>t.root))],{style:{gap:"12px"}})])}areAllPtoLinkagesSet(t){return Bt.map((e=>t[e].filter((t=>t)).length)).reduce(((t,e)=>t+e),0)===Bt.map((t=>this.initialPatternConfig.nucleotideSequences[t].length)).reduce(((t,e)=>t+e),0)+Bt.filter((e=>t[e].length)).length}createAllPtoActivationInput(){const t=this.initialPatternConfig.phosphorothioateLinkageFlags,e=this.areAllPtoLinkagesSet(t),n=St.boolInput("All PTO",e);n.onInput((()=>{const t=n.value;this.eventBus.setAllPTOLinkages(t)}));const r=this.eventBus.phosphorothioateLingeFlagsChanged$.subscribe((()=>{const t=this.eventBus.getPatternConfig().phosphorothioateLinkageFlags,e=this.areAllPtoLinkagesSet(t);n.value=e}));return this.subscriptions.add(r),this.addStyleToPtoInput(n),St.tooltip.bind(n.captionLabel,"Activate all phosphothioates"),n}addStyleToPtoInput(t){const e=t.captionLabel;e.classList.add("ui-label-right"),Object.assign(e.style,{textAlign:"left",maxWidth:"100px",minWidth:"40px",width:"auto"})}createFirstPtoInputs(){return Bt.map((t=>{if(!this.eventBus.isAntisenseStrandActive()&&"AS"===t)return;const e=this.isFirstPtoActive(t),n=St.boolInput(`First ${t} PTO`,e);n.onInput((()=>{const e=n.value;this.eventBus.setPhosphorothioateLinkageFlag(t,0,e)}));const r=this.eventBus.phosphorothioateLingeFlagsChanged$.subscribe((e=>{const r=e[t][0];n.value=r}));return this.subscriptions.add(r),this.addStyleToPtoInput(n),St.tooltip.bind(n.captionLabel,`Activate first phosphothioate in ${t}`),n})).filter((t=>void 0!==t))}isFirstPtoActive(t){return this.initialPatternConfig.phosphorothioateLinkageFlags[t][0]}}class Ce{constructor(t,e,n){this.eventBus=t,this.dataManager=e,this.subscriptions=n;const r=this.eventBus.nucleotideSequencesChanged$.subscribe((()=>{this.displayedInputLabels=this.computeDisplayedInputLabels()}));this.subscriptions.add(r)}create(){const t=Bt.map((t=>this.constructControlsPanel(t)));return St.divH(t,{style:{gap:"24px"}})}constructControlsPanel(t){if(!this.eventBus.isAntisenseStrandActive()&&"AS"===t)return St.div([]);const e=this.constructHeader(),n=this.createControls(t);return St.block([St.h1(`${Pt[t]}`),e,n],{style:{paddingTop:"12px"}})}constructHeader(){return St.divH([St.div([St.divText("#")],{style:{width:"20px"}}),St.block75([St.divText("Modification")]),St.div([St.divText("PTO")])])}createControls(t){const e=this.createNucleobaseInputs(t),n=this.createLabelDivs(t),r=this.createPTOFlagInputs(t);return St.div(e.map(((t,e)=>St.divH([n[e],St.block75([t.root]),r[e].root],{style:{alignItems:"center"}}))))}createNucleobaseInputs(t){const e=this.dataManager.fetchAvailableNucleotideBases().sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase())));return this.eventBus.getNucleotideSequences()[t].map(((n,r)=>{const i=St.choiceInput("",n,e);return i.onInput((()=>{const e=i.value;this.eventBus.setNucleotide(t,r,e)})),i}))}createPTOFlagInputs(t){return this.eventBus.getPhosphorothioateLinkageFlags()[t].slice(1).map(((e,n)=>{const r=St.boolInput("",e);r.onInput((()=>{const e=r.value;this.eventBus.setPhosphorothioateLinkageFlag(t,n+1,e)}));const i=this.eventBus.phosphorothioateLingeFlagsChanged$.subscribe((e=>{const i=e[t][n+1];r.value=i}));return this.subscriptions.add(i),r}))}computeDisplayedInputLabels(){const t=this.eventBus.getNucleotideSequences(),e=new Map;return Bt.forEach((n=>{let r=1;const i=t[n].map((t=>{if(Kt(t))return"";const e=String(r);return r++,e}));e.set(n,i)})),e}createLabelDivs(t){const e=this.createLabels(t).map((t=>St.div([t],{style:{width:"20px"}}))),n=this.eventBus.nucleotideSequencesChanged$.subscribe((()=>{this.createLabels(t).forEach(((t,n)=>{Tt()(e[n]).empty(),Tt()(e[n]).append(t)}))}));return this.subscriptions.add(n),e}createLabels(t){return this.eventBus.getNucleotideSequences()[t].map(((e,n)=>{const r=this.displayedInputLabels.get(t)[n];return St.label(r)}))}}class xe{constructor(){this.rxjsSubscriptions=[],this.dgSubscriptions=[]}add(t){t instanceof zt.Subscription?this.rxjsSubscriptions.push(t):this.dgSubscriptions.push(t)}unsubscribeAll(){for(const t of[this.rxjsSubscriptions,this.dgSubscriptions])t.forEach((t=>t.unsubscribe())),t.length=0}}class _e{constructor(t,e){this.eventBus=t,this.dataManager=e,this.subscriptions=new xe}static open(t,e){_e.isDialogOpen||(_e.instance||(_e.instance=new _e(t,e)),_e.instance.openDialog())}openDialog(){this.initialPatternConfig=te().cloneDeep(this.eventBus.getPatternConfig()),_e.isDialogOpen=!0,this.createDialog().show()}createDialog(){const t=St.divV([]);this.subscriptions.add(this.eventBus.strandsUpdated$.subscribe((()=>this.onStrandsUpdated(t))));const e=St.dialog("Edit strands").add(t).onOK((()=>{})).onCancel((()=>this.resetToInitialState()));return this.subscriptions.add(e.onClose.subscribe((()=>{_e.isDialogOpen=!1,this.subscriptions.unsubscribeAll()}))),e}onStrandsUpdated(t){const e=new we(this.eventBus,this.initialPatternConfig,this.subscriptions).create(),n=new Ce(this.eventBus,this.dataManager,this.subscriptions).create();Tt()(t).empty(),Tt()(t).append(e,n)}resetToInitialState(){this.eventBus.setPatternConfig(this.initialPatternConfig)}}_e.isDialogOpen=!1;class Se{constructor(t){this.eventBus=t,this.subscriptions=new xe}static open(t){Se.isDialogOpen||(Se.instance||(Se.instance=new Se(t)),Se.instance.openDialog())}openDialog(){this.initialPatternConfig=te().cloneDeep(this.eventBus.getPatternConfig()),Se.isDialogOpen=!0,this.createDialog().show()}createDialog(){const t=St.divV([]);this.subscriptions.add(this.eventBus.strandsUpdated$.subscribe((()=>this.onStrandsUpdated(t))));const e=St.dialog("Edit terminal modifications").add(t).onOK((()=>{})).onCancel((()=>this.resetToInitialState()));return this.subscriptions.add(e.onClose.subscribe((()=>{Se.isDialogOpen=!1,this.subscriptions.unsubscribeAll()}))),e}onStrandsUpdated(t){const e=new Ee(this.eventBus).create();Tt()(t).empty(),Tt()(t).append(e)}resetToInitialState(){this.eventBus.setPatternConfig(this.initialPatternConfig)}}Se.isDialogOpen=!1;class Ee{constructor(t){this.eventBus=t}create(){const t=Bt.map((t=>this.constructControlsPanel(t)));return St.divH(t,{style:{gap:"24px"}})}constructControlsPanel(t){if(!this.eventBus.isAntisenseStrandActive()&&"AS"===t)return St.div([]);const e=this.createInputs(t);return St.block([St.h1(`${Pt[t]}`),e],{style:{paddingTop:"12px"}})}createInputs(t){const e=("SS"===t?[...Rt].reverse():Rt).map((e=>this.createInputForTerminus(t,e)));return St.form(e)}createInputForTerminus(t,e){const n=this.eventBus.getTerminalModifications()[t][e],r=St.textInput(e,n);return this.applyStylingToInput(r),r.onInput((()=>{const n=r.value;null!==n&&this.eventBus.updateTerminusModification(t,e,n)})),r}applyStylingToInput(t){const e=t.root.getElementsByTagName("textarea")[0];Tt()(e).css("resize","none")}}class Te{constructor(t,e){this.eventBus=t,this.dataManager=e}createControls(){const t=this.createAntisenseStrandToggle(),e=this.createStrandLengthInputs(),n=e.SS.root,r=e.AS.root,i=this.createSequenceBaseInput().root,s=this.createPatternCommentInput().root,o=this.createPatternNameInputBlock(),a=this.createEditPatternButton(),u=this.createEditTerminalModificationsButton();return[St.h1("Edit"),t,n,r,i,o,s,St.buttonsInput([u,a])]}createEditPatternButton(){const t=St.button("Edit strands",(()=>_e.open(this.eventBus,this.dataManager)));return St.tooltip.bind(t,"Edit strand modifications and PTOs"),t}createEditTerminalModificationsButton(){const t=St.button("Edit terminals",(()=>Se.open(this.eventBus)));return St.tooltip.bind(t,"Edit terminal modifications"),Tt()(t).css("margin-right","20px"),t}createAntisenseStrandToggle(){const t=St.switchInput(`${Pt.AS} strand`,this.eventBus.isAntisenseStrandActive());return t.onInput((()=>this.eventBus.toggleAntisenseStrand(t.value))),this.eventBus.patternLoaded$.subscribe((()=>{t.value=this.eventBus.isAntisenseStrandActive()})),t.setTooltip("Toggle antisense strand"),t.root}createStrandLengthInputs(){const t=t=>{const n=this.eventBus.getNucleotideSequences()[t].length,r=St.intInput(`${Pt[t]} length`,n);return r.onInput((()=>e(t,r))),this.eventBus.nucleotideSequencesChanged$.subscribe((()=>{r.value=this.eventBus.getNucleotideSequences()[t].length})),r.setTooltip(`Number of nucleotides in ${t}, including overhangs`),[t,r]},e=(t,e)=>{const n=e.value;null!==n&&(n<=0&&(i.shell.warning("Sequence length must be greater than 0"),e.value=1),n>34&&(i.shell.warning("Sequence length must be less than 35"),e.value=34),this.eventBus.updateStrandLength(t,e.value))},n=Object.fromEntries(Bt.map((e=>t(e))));return this.eventBus.antisenseStrandToggled$.subscribe((t=>{Tt()(n.AS.root).toggle(t)})),n}createSequenceBaseInput(){const t=this.dataManager.fetchAvailableNucleotideBases().sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase()))),e=this.dataManager.fetchDefaultNucleobase(),n=St.choiceInput("Sequence basis",e,t);return n.onInput((()=>this.eventBus.replaceSequenceBase(n.value))),this.eventBus.nucleotideSequencesChanged$.subscribe((()=>{n.value=this.eventBus.getSequenceBase()})),n.setTooltip("Most frequent nucleobase in the strands"),n}createPatternCommentInput(){const t=St.textInput("Comment",this.eventBus.getComment());return Tt()(t.root).addClass("st-pattern-text-input"),t.onInput((()=>this.eventBus.updateComment(t.value))),this.eventBus.patternLoaded$.subscribe((()=>{t.value=this.eventBus.getComment()})),t}createPatternNameInputBlock(){const t=St.textInput("Pattern name",this.eventBus.getPatternName());return Tt()(t.root).addClass("st-pattern-text-input"),t.onInput((()=>this.eventBus.updatePatternName(t.value))),this.eventBus.patternLoaded$.subscribe((()=>{t.value=this.eventBus.getPatternName()})),t.setTooltip("Name under which pattern will be saved"),t.root}}class Ie{constructor(t,e){this.eventBus=t,this.dataManager=e,this.subscriptions=new xe,this.authorSelectedByUser=!1,this.eventBus.patternLoadRequested$.subscribe((t=>this.handlePatternChoice(t))),this.eventBus.patternDeletionRequested$.subscribe((async t=>{await this.dataManager.deletePattern(t,this.eventBus)}))}async handlePatternChoice(t){let e=await this.dataManager.getPatternConfig(t);null===e&&(e=this.dataManager.getDefaultPatternConfig()),this.eventBus.setPatternConfig(e),this.eventBus.updateControlsUponPatternLoaded(t),this.eventBus.setLastLoadedPatternConfig(e)}isCurrentUserSelected(){return this.eventBus.getSelectedAuthor()!==this.dataManager.getOtherUsersAuthorshipCategory()}createControls(){const t=this.getPatternInputsContainer();return[St.h1("Load"),t]}getPatternInputsContainer(){const t=St.divH(this.createPatternInputs());return this.eventBus.patternListUpdated$.subscribe((()=>{this.subscriptions.unsubscribeAll(),Tt()(t).empty(),Tt()(t).append(this.createPatternInputs())})),t}createPatternInputs(){const t=this.createAuthorChoiceInput(),e=this.createPatternChoiceInputContainer(),n=this.createDeletePatternButton();return[t.root,e,n]}createPatternChoiceInputContainer(){const t=this.createPatternChoiceInput(),e=St.div([t.root]),n=this.eventBus.userSelection$.subscribe((()=>{Tt()(e).empty(),Tt()(e).append(this.createPatternChoiceInput().root)}));return this.subscriptions.add(n),e}createAuthorChoiceInput(){const t=[this.dataManager.getCurrentUserAuthorshipCategory()];this.dataManager.getOtherUsersPatternNames().length>0&&t.push(this.dataManager.getOtherUsersAuthorshipCategory());const e=St.choiceInput("Author",this.eventBus.getSelectedAuthor(),t,(t=>{this.authorSelectedByUser=!0,this.eventBus.selectAuthor(t)}));return this.setAuthorChoiceInputStyle(e),e.setTooltip("Select pattern author"),e}setAuthorChoiceInputStyle(t){Tt()(t.input).css({"max-width":"100px","min-width":"100px"}),Tt()(t.root).css({"padding-right":"30px","padding-left":"30px"})}createPatternChoiceInput(){const t=this.isCurrentUserSelected()?this.dataManager.getCurrentUserPatternNames():this.dataManager.getOtherUsersPatternNames();if(this.authorSelectedByUser){const e=this.dataManager.getPatternHash(t[0],this.isCurrentUserSelected());this.eventBus.requestPatternLoad(e),this.eventBus.updateUrlState(e),this.authorSelectedByUser=!1}const e=this.getPatternName(t),n=St.choiceInput("Pattern",e,t);return n.setTooltip("Select pattern to load"),Tt()(n.input).css({"max-width":"100px","min-width":"100px"}),this.subscriptions.add(n.onInput((()=>{const t=this.dataManager.getPatternHash(n.value,this.isCurrentUserSelected());this.eventBus.requestPatternLoad(t),this.eventBus.updateUrlState(t)}))),this.subscriptions.add(this.eventBus.patternLoaded$.subscribe((()=>{const e=this.eventBus.getPatternName();n.value!==e&&(n.value=this.getPatternName(t))}))),n}getPatternName(t){return t.find((t=>t===this.eventBus.getPatternName()))??t[0]}createDeletePatternButton(){const t=St.button(St.iconFA("trash-alt"),(()=>{this.eventBus.getPatternName()!==this.dataManager.getDefaultPatternName()?this.showDeletePatternDialog():i.shell.warning("Cannot delete example pattern")}));St.tooltip.bind(t,"Delete pattern from user storage");const e=this.eventBus.userSelection$.subscribe((()=>{t.disabled=!this.isCurrentUserSelected()}));return this.subscriptions.add(e),t}showDeletePatternDialog(){const t=St.dialog("Delete pattern"),e=this.eventBus.getPatternName();t.add(St.divText(`Are you sure you want to delete pattern ${e}?`)),t.onOK((()=>this.eventBus.requestPatternDeletion(e))),t.show()}}class Ne{constructor(t,e){this.eventBus=t,this.dataManager=e}getLayout(){const t=new Ie(this.eventBus,this.dataManager),e=new Te(this.eventBus,this.dataManager),n=new Ae(this.eventBus),r=t.createControls(),i=e.createControls(),s=n.createControls(),o=St.div(r);Tt()(o).css({"padding-bottom":"20px"});const a=St.div([...i,...s],"ui-form"),u=St.div([o,a]);return Tt()(u).css({padding:"25px"}),St.box(u,{style:{maxWidth:"450px"}})}}var Oe=n(146);class Me{constructor(t,e,n){this.svgElementFactory=t,this.config=e,this.yShift=n}shiftElements(t){this.svgElements.forEach((e=>{const n=e.getAttribute("transform")||"",r=n.match(/translate\(([^,]+),([^,]+)\)/),i=r?parseFloat(r[1]):0,s=r?parseFloat(r[2]):0,o=`translate(${i+t.x},${s+t.y})`;e.setAttribute("transform",`${n} ${o}`)}))}adjustContentWithinGlobalContainer(t){const e=this.getContentWidth();if(e<t){const n=(t-e)/2;this.shiftElements({x:n,y:0})}}}class Le{constructor(){}static getInstance(){return Le.instance||(Le.instance=new Le,Le.instance.canvas=document.createElement("canvas")),Le.instance}static getTextDimensions(t,e){const n=Le.getInstance().canvas.getContext("2d");if(!n)throw new Error("Canvas 2D context is not available");return n.font=`${e}px Arial`,{width:1.1*n.measureText(t).width,height:1.1*e}}}function Be(t){const e=Object.keys(yr.jsonData.patternAppData)[0];if(!e)throw new Error(`No format found in '${st}'`);return yr.jsonData.patternAppData[e][t].color||""}class Pe extends Me{constructor(t,e,n){super(t,e,n);const r=Bt.filter((t=>e.nucleotideSequences[t].length>0));this.strands=r.map((t=>new Re(this.svgElementFactory,e,n,t))),this.labels=r.map(((t,r)=>new De(this.svgElementFactory,e,n,t,this.strands[r])))}get svgElements(){return[...this.strands,...this.labels].map((t=>t.svgElements)).flat()}getContentWidth(){return Math.max(...this.labels.map((t=>t.getContentWidth())))}getContentHeight(){return this.strands.reduce(((t,e)=>t+e.getContentHeight()),0)}}class Re extends Me{constructor(t,e,n,r){super(t,e,n),this.svgElementFactory=t,this.config=e,this.yShift=n,this.strand=r,this.nucleotideNumericLabels=this.computeNucleotideNumericLabels(),"AS"===this.strand&&(this.config.phosphorothioateLinkageFlags[this.strand].reverse(),this.config.nucleotideSequences[this.strand].reverse(),this.nucleotideNumericLabels.reverse()),this._svgElements=[this.createStrandCircles(),this.createPTOLinkageStars()].flat()}computeNucleotideNumericLabels(){let t=0;return this.config.nucleotideSequences[this.strand].map((e=>Kt(e)?null:(t++,t)))}get svgElements(){return this._svgElements}getStrandCircleYShift(){return Fe(this.strand,this.yShift)}createStrandCircles(){const t={x:80,y:this.getStrandCircleYShift()};return this.config.nucleotideSequences[this.strand].map(((e,n)=>this.createNucleotideElementGroup(e,n,t))).flat()}createNucleotideElementGroup(t,e,n){return[...this.createNucleotideCircleElements(t,e,n),this.config.nucleotidesWithNumericLabels.includes(t)?this.createNucleotideNumericLabel(e,n):null].filter((t=>null!==t))}createNucleotideCircleElements(t,e,n){const r=Be(t),i={...n,x:n.x+30*e};return[this.svgElementFactory.createCircleElement(i,15,r),this.createNucleotideLetterLabel(e,n,t)]}getNucleotideCircleCenterPosition(t,e){return{x:e.x+30*t,y:e.y}}createNucleotideLetterLabel(t,e,n){if(!lt.includes(n))return null;const r=function(t){return!Kt(t)&<.includes(t)?t:""}(n),i=function(t){const e=Be(t),n=e.match(/\d+/g)?.map(Number);if(!n||n.length<3)return"#ffffff";const[r,i,s]=n;return.299*r+.587*i+.114*s>186?"#333333":"#ffffff"}(n),s=this.getPositionForNucleotideLabel(t,e);return this.svgElementFactory.createTextElement(r,s,17,i)}getPositionForNucleotideLabel(t,e){const n=this.getNucleotideCircleCenterPosition(t,e),r=Le.getTextDimensions("A",17);return{x:n.x-r.width/2,y:n.y+r.height/3}}getNumericLabelYShift(t){return"SS"===this.strand?t.y-20:t.y+15+5+15}createNucleotideNumericLabel(t,e){const n=this.nucleotideNumericLabels[t];if(null===n)return null;const r=Le.getTextDimensions(n.toString(),15).width,i={x:e.x+30*t-r/2,y:this.getNumericLabelYShift(e)};return this.svgElementFactory.createTextElement(n.toString(),i,15,"var(--grey-6)")}createPTOLinkageStars(){const t=this.config.phosphorothioateLinkageFlags[this.strand],e=this.getStrandCircleYShift()+12;return t.map(((t,n)=>{if(!t)return null;const r={x:65+30*n,y:e};return this.svgElementFactory.createStarElement(r,"red")})).filter((t=>null!==t))}getContentWidth(){return 30*this.config.nucleotideSequences[this.strand].length}getContentHeight(){return 62}}class De extends Me{constructor(t,e,n,r,i){super(t,e,n),this.svgElementFactory=t,this.config=e,this.yShift=n,this.strand=r,this.strandSvgWrapper=i,this._svgElements=this.createSVGElements()}createSVGElements(){return[this.createLeftLabel(),this.createRightLabel()]}getLeftLabelWidth(){return 55}getRightLabelWidth(){return 20}createLeftLabel(){const t="SS"===this.strand?"5'":"3'",e=`${this.strand}: ${t} `,n=Le.getTextDimensions(e,17),r={x:10,y:Fe(this.strand,this.yShift)+n.height/3};return this.svgElementFactory.createTextElement(e,r,17,"var(--grey-6)")}createRightLabel(){const t=" "+("SS"===this.strand?"3'":"5'"),e=Le.getTextDimensions(t,17),n={x:65+this.strandSvgWrapper.getContentWidth()+5,y:Fe(this.strand,this.yShift)+e.height/3};return this.svgElementFactory.createTextElement(t,n,17,"var(--grey-6)")}get svgElements(){return this._svgElements}getContentWidth(){return this.strandSvgWrapper.getContentWidth()+this.getLeftLabelWidth()+this.getRightLabelWidth()+10}getContentHeight(){return this.strandSvgWrapper.getContentHeight()}}function Fe(t,e){return"SS"===t?e+5+15+15:e+52+10+15}class Ue{constructor(){this.xmlNamespace="http://www.w3.org/2000/svg"}createElement(t){return document.createElementNS(this.xmlNamespace,t)}setAttributes(t,e){Object.entries(e).forEach((([e,n])=>{t.setAttribute(e,String(n))}))}createCanvas(t,e){const n=this.createElement("svg");return this.setAttributes(n,{id:"mySvg",width:t,height:e}),n}createCircleElement(t,e,n){const r=this.createElement("circle");return this.setAttributes(r,{cx:t.x,cy:t.y,r:e,fill:n}),r}createTextElement(t,e,n,r){const i=this.createElement("text");return this.setAttributes(i,{x:e.x,y:e.y,"font-size":n,"font-weight":"normal","font-family":"Arial",fill:r}),i.textContent=t,i}createStarElement(t,e){const n=this.createElement("polygon"),r=this.computeStarVertexCoordinates(t).map((t=>t.join(","))).join(" ");return this.setAttributes(n,{points:r,fill:e}),n}computeStarVertexCoordinates(t){const e=Math.PI/5,n=-e/2;return Array.from({length:10},((r,i)=>{const s=i%2==0?6:3,o=i*e+n;return[t.x+Math.cos(o)*s,t.y+Math.sin(o)*s]}))}createRectangleElement(t,e,n,r){const i=this.createElement("rect");return this.setAttributes(i,{x:t.x,y:t.y,width:e,height:n,fill:r}),i}}class ke extends Me{constructor(t,e,n){super(t,e,n),this.svgElementFactory=t,this.config=e,this.yShift=n,this._svgElements=[],this.titleText=this.getTitleText(),this._svgElements=[this.getTitle()]}get svgElements(){return this._svgElements}getTitle(){return this.svgElementFactory.createTextElement(this.titleText,{x:15,y:this.yShift+17},17,"black")}getContentWidth(){return Le.getTextDimensions(this.titleText,17).width}getContentHeight(){return Le.getTextDimensions(this.titleText,17).height}getTitleText(){const t=`${this.config.nucleotideSequences.SS.length}`,e=this.config.isAntisenseStrandIncluded?`/${this.config.nucleotideSequences.AS.length}`:"";return`${this.config.patternName} for ${t}${e}-mer`}}class He extends Me{constructor(t,e,n){super(t,e,n),this._svgElements=[];const{elements:r,width:i}=this.createLegendItems();this._svgElements=r,this.width=i}isPhosphorothioatePresent(){return Object.values(this.config.phosphorothioateLinkageFlags).flat().some((t=>t))}getModificationTypesList(){return[...new Set(Object.values(this.config.nucleotideSequences).flat().sort(((t,e)=>t.toLowerCase().localeCompare(e.toLowerCase()))))]}get svgElements(){return this._svgElements}createLegendItem(t,e){const n={x:e,y:this.yShift-6},r=t.includes("linkage")?this.svgElementFactory.createStarElement(n,"red"):this.svgElementFactory.createCircleElement(n,6,Be(t));e+=12;const i={y:this.yShift,x:e};return{elements:[r,this.svgElementFactory.createTextElement(t,i,15,"var(--grey-6)")],width:12+Le.getTextDimensions(t,15).width}}createLegendItems(){let t=10;const e=[],n=e=>t+=e+15;if(this.isPhosphorothioatePresent()){const{elements:r,width:i}=this.createLegendItem("PTO linkage",t);n(i),e.push(r)}return this.getModificationTypesList().forEach((r=>{const{elements:i,width:s}=this.createLegendItem(r,t);n(s),e.push(i)})),{elements:e.flat(),width:t}}getContentHeight(){return 20}getContentWidth(){return this.width}}class $e{constructor(t){this.svgElementFactory=new Ue;const e=te().cloneDeep(t);let n=10;this.title=new ke(this.svgElementFactory,e,n),n+=this.title.getContentHeight(),this.strands=new Pe(this.svgElementFactory,e,n),n+=this.strands.getContentHeight()+10,this.legend=new He(this.svgElementFactory,e,n)}renderPattern(){const t=this.getGlobalWidth(),e=this.getGlobalHeight(),n=this.svgElementFactory.createCanvas(t,e),r=[this.title,this.strands,this.legend].map((t=>t.svgElements)).flat();return n.append(...r),n}getGlobalWidth(){const t=[this.title,this.strands,this.legend];return Math.max(...t.map((t=>t.getContentWidth())))}getGlobalHeight(){return[this.title,this.strands,this.legend].reduce(((t,e)=>t+e.getContentHeight()),10)}}class je{constructor(t){this.eventBus=t,this.svgDisplayDiv=St.div([]),t.updateSvgContainer$.subscribe((()=>this.updateSvgContainer())),t.svgSaveRequested$.subscribe((()=>this.saveSvgAsPng()))}static createSvgDiv(t){return new je(t).svgDisplayDiv}updateSvgContainer(){$(this.svgDisplayDiv).empty();const t=this.eventBus.getPatternConfig();this.svgElement=this.createSvg(t),this.svgDisplayDiv.append(this.svgElement)}createSvg(t){return new $e(t).renderPattern()}saveSvgAsPng(){const t=this.eventBus.getPatternName();Oe.saveSvgAsPng(this.svgElement,t,{backgroundColor:"white"})}}class Ve{constructor(t){this.eventBus=t,this.togglesContainer=St.div([]),this.eventBus.uniqueNucleotidesChanged$().subscribe((()=>{this.updateContainer()}))}getContainer(){return this.togglesContainer}updateContainer(){Tt()(this.togglesContainer).empty(),Tt()(this.togglesContainer).append(this.createInputs())}createInputs(){const t=this.eventBus.getUniqueNucleotides().filter((t=>!Kt(t))).map((t=>this.createSingleInput(t)));return t.sort(((t,e)=>t.captionLabel.textContent.localeCompare(e.captionLabel.textContent))),St.divH(t.map((t=>t.root)))}createSingleInput(t){const e=this.eventBus.getModificationsWithNumericLabels().includes(t),n=St.boolInput(t,e,(e=>this.handleNumericLabelToggle(t,e)));return Tt()(n.root).css("padding-right","20px"),n.setTooltip(`Show numeric labels for ${t}`),n}handleNumericLabelToggle(t,e){const n=this.eventBus.getModificationsWithNumericLabels();if(n.includes(t)===e)return;const r=e?n.concat(t):n.filter((e=>e!==t));this.eventBus.updateModificationsWithNumericLabels(r)}}class qe{constructor(t,e){this.eventBus=t,this.dataManager=e,this.subscriptions=new xe}createContainer(){return St.div([St.h1("Translation example"),this.createTranslationExamples()],{style:{paddingTop:"20px"}})}createTranslationExamples(){const t=St.divH([...this.getExampleElements()],"ui-form");return this.eventBus.antisenseStrandToggled$.subscribe((()=>{this.subscriptions.unsubscribeAll(),Tt()(t).empty(),Tt()(t).append(this.getExampleElements())})),t}getExampleElements(){return Bt.map((t=>new Ge(t,this.eventBus,this.subscriptions).create()))}}class Ge{constructor(t,e,n){this.strand=t,this.eventBus=e,this.subscriptions=n}create(){return this.eventBus.isAntisenseStrandActive()||"AS"!==this.strand?(this.inputExample=this.createInputExample(),this.outputExample=this.createOutputExample(this.inputExample.value),this.subscribeToEvents(),St.block50([St.h2(Pt[this.strand]),this.inputExample.root,this.outputExample.root],{style:{paddingRight:"20px"}})):St.div([])}subscribeToEvents(){const t=this.eventBus.strandsLinkagesAndTerminalsUpdated$.subscribe((()=>{const t=this.generateExampleSequence();this.inputExample.value=t,this.outputExample.value=this.computeOutputValue(t)}));"AS"===this.strand&&this.subscriptions.add(t)}createInputExample(){const t=this.createTextInputForExamples(),e=this.generateExampleSequence();return t.value=e,t.setTooltip(`Example raw nucleotides input for ${Pt[this.strand]}`),t}generateExampleSequence(){return this.eventBus.getNucleotideSequences()[this.strand].map(((t,e)=>lt[e%lt.length])).join("")}createOutputExample(t){const e=this.createTextInputForExamples();return e.value=this.computeOutputValue(t),e.setTooltip(`Pattern applied to the example input for ${Pt[this.strand]}`),e}computeOutputValue(t){const e=this.eventBus.getNucleotideSequences()[this.strand],n=this.eventBus.getTerminalModifications()[this.strand];return function(t,e,n,r){const i=function(t,e,n){const r=new Array(t.length+e.filter((t=>t)).length+Rt.length);r[0]=n["5'"],r[r.length-1]=n["3'"];let i=1;return e[0]&&(r[i]="ps",i++),t.forEach(((t,n)=>{r[n+i]=t,e[n+1]&&(r[n+i+1]="ps",i++)})),r}(t.split("").map(((t,n)=>{const r=function(t,e,n){const r=Object.keys(n.patternAppData)[0],i=n.patternAppData[r][e].substitution;return t.replace(/([AGCTU])/,i)}(t,e[n],yr.jsonData);return r})),n,r);return i.join("")}(t,e,this.eventBus.getPhosphorothioateLinkageFlags()[this.strand],n)}createTextInputForExamples(){const t=St.textInput("","");return this.applyStylingToInput(t),t}applyStylingToInput(t){const e=t.root.getElementsByTagName("textarea")[0];e.setAttribute("readonly","true"),Tt()(e).css("resize","none"),Tt()(t.root).css("opacity","75%")}}class We{constructor(t,e){this.eventBus=t,this.dataManager=e,this.svgDisplay=je.createSvgDiv(t)}getLayout(){const t=new Ve(this.eventBus).getContainer(),e=this.generateDownloadControls(),n=new qe(this.eventBus,this.dataManager).createContainer();return St.panel([this.svgDisplay,t,e,n],{style:{overflowX:"scroll",padding:"12px 24px"}})}generateDownloadControls(){return St.divH([this.createSavePatternButton(),this.createDownloadPngButton(),this.createShareLinkButton()],{style:{gap:"12px",marginTop:"12px"}})}createDownloadPngButton(){const t=St.button("Get PNG",(()=>this.eventBus.requestSvgSave()));return St.tooltip.bind(t,"Download pattern as PNG"),t}createShareLinkButton(){const t=St.button(St.iconFA("link"),(()=>navigator.clipboard.writeText(window.location.href).then((()=>i.shell.info("Link to pattern copied to clipboard")))));return this.eventBus.patternHasUnsavedChanges$.subscribe((e=>{t.disabled=e})),St.tooltip.bind(t,"Share pattern link"),t}createSavePatternButton(){const t=St.button("Save",(()=>this.processSaveButtonClick()));return this.eventBus.patternHasUnsavedChanges$.subscribe((e=>{t.disabled=!e})),St.tooltip.bind(t,"Save pattern to user storage"),t}processSaveButtonClick(){const t=this.eventBus.getPatternName();t!==this.dataManager.getDefaultPatternName()?""!==t?this.dataManager.savePatternToUserStorage(this.eventBus).then((()=>{i.shell.info(`Pattern ${t} saved`)})).catch((t=>this.handleErrorWhileSavingPattern(t))):i.shell.warning("Insert pattern name"):i.shell.warning("Cannot save default pattern")}handleErrorWhileSavingPattern(t){t instanceof jt?new ze(this.eventBus,this.dataManager).show():t instanceof Vt?i.shell.warning(St.div([St.divText("Pattern already exists"),St.button("Load",(()=>{const e=t.message;this.eventBus.requestLoadPatternInNewTab(e)}))])):console.error("Error while saving pattern",t)}}class ze{constructor(t,e){this.eventBus=t,this.dataManager=e}show(){const t=this.eventBus.getPatternName(),e=St.dialog(`Pattern "${t}" already exists`);e.add(St.divText(`Pattern "${t}" already exists. Do you want to overwrite it?`)),e.show(),e.onOK((()=>this.processOverwriteNamesakePattern()))}processOverwriteNamesakePattern(){const t=this.eventBus.getPatternName();this.dataManager.overwritePatternInUserStorage(this.eventBus).then((()=>{i.shell.info(`Pattern ${t} overwritten`)})).catch((t=>{console.error("Error while overwriting pattern in user storage",t),i.shell.error("Error while overwriting pattern")}))}}class Ye extends Lt{constructor(t){super("Oligo Pattern"),this.th=t}getContent(){return async function(){const t=await Wt.getInstance(),e=new re,n=await async function(t,e){const n=e.getPatternHash();if(!n)return e.clearPatternURL(),t.getDefaultPatternRecord();let r=await t.getPatternRecord(n);return r||(e.clearPatternURL(),r=t.getDefaultPatternRecord()),r}(t,e),r=new ee(t,n);e.subscribeToObservables(r);const i=new Ne(r,t).getLayout(),s=new We(r,t).getLayout();return St.splitH([i,s],{},!0)}()}}var Ke=n(507),Qe={};function Je(t){var e;return"string"==typeof t||t instanceof String?t:("object"==typeof t||t instanceof Object)&&"$thrownJsError"in t?Je(t.$thrownJsError):t instanceof Error?null!==(e=t.stack)&&void 0!==e?e:t.message:t.toString()}Qe.styleTagTransform=ge(),Qe.setAttributes=he(),Qe.insert=le().bind(null,"head"),Qe.domAPI=ae(),Qe.insertStyleElement=de(),se()(Ke.A,Qe),Ke.A&&Ke.A.locals&&Ke.A.locals;var Xe,Ze=n(74),tn={};tn.styleTagTransform=ge(),tn.setAttributes=he(),tn.insert=le().bind(null,"head"),tn.domAPI=ae(),tn.insertStyleElement=de(),se()(Ze.A,tn),Ze.A&&Ze.A.locals&&Ze.A.locals;class en{constructor(t,e,n=!0){this.textInputBase=t,this.painter=e,Tt()(this.root).addClass("colored-text-input"),n&&this.textInputBase.onChanged((()=>{Tt()(this.textArea).css("height",0),Tt()(this.textArea).css("height",this.textArea.scrollHeight+"px")})),this.highlights=St.div([]),this.root.appendChild(this.highlights),this.colorize(),this.textInputBase.onChanged((()=>this.colorize()))}get textArea(){return this.textInputBase.root.getElementsByTagName("textarea").item(0)}get inputBase(){return this.textInputBase}get root(){return this.textInputBase.root}colorize(){const t=this.painter(this.textInputBase.value);this.highlights.innerHTML="",t.forEach((t=>this.highlights.appendChild(t)))}}!function(t){t.TYPE="V2000",t[t.NUM_OF_HEADER_LINES=3]="NUM_OF_HEADER_LINES",t[t.NUM_OF_COUNTS_DIGITS=3]="NUM_OF_COUNTS_DIGITS",t[t.ATOM_TYPE_COL=4]="ATOM_TYPE_COL",t[t.FIRST_BONDED_ATOM_COL=1]="FIRST_BONDED_ATOM_COL",t[t.BOND_TYPE_COL=3]="BOND_TYPE_COL",t[t.RGP_SHIFT=8]="RGP_SHIFT",t[t.MAX_ATOM_COUNT=999]="MAX_ATOM_COUNT",t.RGP_LINE_START="M RGP",t.ATOM_ALIAS_LINE_START="A ",t.END="M END"}(Xe||(Xe={}));class nn{constructor(t){this.init(t)}init(t){this.fileContent=t.replace(/\r/g,""),this._atomCount=void 0,this._atomTypes=void 0,this._bondCount=void 0,this._bondTypes=void 0,this.xyzAtomCoordinates=void 0,this._pairsOfBondedAtoms=void 0}get atomCount(){return void 0===this._atomCount&&this.setAtomAndBondCounts(),this._atomCount}get bondCount(){return void 0===this._bondCount&&this.setAtomAndBondCounts(),this._bondCount}get x(){var t;return null!==(t=this.xyzAtomCoordinates)&&void 0!==t||(this.xyzAtomCoordinates=this.parseAtomCoordinates()),this.xyzAtomCoordinates.x}get y(){var t;return null!==(t=this.xyzAtomCoordinates)&&void 0!==t||(this.xyzAtomCoordinates=this.parseAtomCoordinates()),this.xyzAtomCoordinates.y}get z(){var t;return null!==(t=this.xyzAtomCoordinates)&&void 0!==t||(this.xyzAtomCoordinates=this.parseAtomCoordinates()),this.xyzAtomCoordinates.z}get atomTypes(){var t;return null!==(t=this._atomTypes)&&void 0!==t||(this._atomTypes=this.parseAtomTypes()),this._atomTypes}get pairsOfBondedAtoms(){var t;return null!==(t=this._pairsOfBondedAtoms)&&void 0!==t||(this._pairsOfBondedAtoms=this.parseBondedAtomPairs()),this._pairsOfBondedAtoms}get bondTypes(){var t;return null!==(t=this._bondTypes)&&void 0!==t||(this._bondTypes=this.parseBondTypes()),this._bondTypes}setAtomAndBondCounts(){const{atomCount:t,bondCount:e}=this.parseAtomAndBondCounts();this._atomCount=t,this._bondCount=e}getNextColumnIdx(t){for(;!this.isWhitespace(t);)++t;for(;this.isWhitespace(t);)++t;return t}shiftIdxToSpecifiedColumn(t,e){let n=t;const r=this.isWhitespace(n)?e:e-1;for(let t=0;t<r;t++)n=this.getNextColumnIdx(n);return n}parseAtomTypes(){const t=this.atomCount,e=new Array(t);let n=this.getAtomBlockIdx();for(let r=0;r<t;r++)n=this.shiftIdxToAtomType(n),e[r]=this.parseAtomType(n),n=this.getNextLineIdx(n);return e}parseAtomCoordinates(){const t=new Float32Array(this.atomCount),e=new Float32Array(this.atomCount),n=new Float32Array(this.atomCount);let r=this.getAtomBlockIdx();for(let i=0;i<this.atomCount;i++){r=this.shiftIdxToXColumn(r);for(const s of[t,e,n])s[i]=this.parseFloatValue(r),r=this.getNextColumnIdx(r);r=this.getNextLineIdx(r)}return{x:t,y:e,z:n}}parseBondedAtomPairs(){const t=new Array(this.bondCount);let e=this.getBondBlockIdx();for(let n=0;n<this.bondCount;n++){e=this.shiftIdxToBondedAtomsPair(e);const r=new Uint16Array(2);r[0]=this.parseIntValue(e),e=this.getNextColumnIdx(e),r[1]=this.parseIntValue(e),t[n]=r,e=this.getNextLineIdx(e)}return t}parseBondTypes(){const t=this.bondCount,e=new Uint16Array(t);let n=this.getBondBlockIdx();for(let r=0;r<t;r++)n=this.shiftIdxToBondType(n),e[r]=this.parseIntValue(n),n=this.getNextLineIdx(n);return e}isWhitespace(t){const e=this.fileContent[t];return" "===e||"\t"===e}getNextLineIdx(t){return"\n"!==this.fileContent[t]?this.fileContent.indexOf("\n",t)+1:t+1}parseFloatValue(t){return this.parseNumericValue(parseFloat,t)}parseIntValue(t){return this.parseNumericValue(parseInt,t)}parseNumericValue(t,e){let n=e+1;for(;!this.isWhitespace(n);)++n;return t(this.fileContent.substring(e,n))}}class rn extends nn{constructor(t){super(t),this.init(t)}init(t){super.init(t)}parseAtomType(t){let e=t,n=e;return this.isQuote(e)?(n=this.getNextIdenticalChar(e),e++):n=this.fileContent.indexOf(" ",n),this.fileContent.substring(e,n)}isQuote(t){const e=this.fileContent[t].charCodeAt(0);return 39===e||34===e}getNextIdenticalChar(t){const e=this.fileContent[t];return e?this.fileContent.indexOf(e,t+1):-1}isQuery(){return this.isQueryOrFragment(((t,e)=>{return 39===t||34===t||76===t&&!((n=this.fileContent.charCodeAt(e+1))>64&&n<91||n>96&&n<123);var n}))}isFragment(){return this.isQueryOrFragment((t=>82===t||42===t))}isQueryOrFragment(t){const e=this.atomCount;let n=this.getAtomBlockIdx();for(let r=0;r<e;r++){if(n=this.shiftIdxToAtomType(n),t(this.fileContent.charCodeAt(n),n))return!0;n=this.getNextLineIdx(n)}return!1}}class sn extends rn{constructor(t){super(t)}getAtomLines(){const t=this.getAtomBlockIdx(),e=this.getBondBlockIdx();return this.fileContent.substring(t,e).split("\n").slice(0,this.atomCount)}getBondLines(){const t=this.getBondBlockIdx();return this.fileContent.substring(t).split("\n").slice(0,this.bondCount)}getRGroupIdToAtomicIdxMap(){const t=new Map,e=this.fileContent.split("\n");e.filter((t=>t.startsWith(Xe.RGP_LINE_START))).forEach((e=>{const n=this.getAtomIdxToRgpIdxList(e);for(const[e,r]of n){if(t.has(e))throw new Error(`R group ${e} is already in the map`);t.set(e,r)}}));const n=e.map(((t,e)=>{if(t.startsWith(Xe.ATOM_ALIAS_LINE_START))return e})).filter((t=>void 0!==t)),r=n.map((t=>e[t])),i=n.map((t=>e[t+1]));r.forEach(((e,n)=>{const r=parseInt(e.split(/\s+/)[1])-1,s=parseInt(i[n].substring(1));if(t.has(s))throw new Error(`R group ${s} is already in the map`);t.set(s,r)}));const s=this.getRGroupAtomicIndices().filter((e=>!Array.from(t.values()).includes(e)));if(0!==s.length)throw new Error(`Unaccounted R group indices: ${s}`);return t}getAtomIdxToRgpIdxList(t){const e=t.split(/\s+/).filter((t=>t)).slice(3).map((t=>parseInt(t))),n=new Array(e.length/2);for(let t=0;t<e.length;t+=2)n[t/2]=[e[t+1],e[t]-1];return n}getRGroupAtomicIndices(){return this.atomTypes.map(((t,e)=>{if(t.includes("R#"))return e})).filter((t=>void 0!==t))}static isValidMolfile(t){return-1!==t.indexOf(Xe.TYPE)&&-1!==t.indexOf(Xe.END)}shiftIdxToAtomType(t){return this.shiftIdxToSpecifiedColumn(t,Xe.ATOM_TYPE_COL)}getCountsLineIdx(){let t=0;for(let e=0;e<Xe.NUM_OF_HEADER_LINES;++e)t=this.getNextLineIdx(t);return t}getAtomBlockIdx(){let t=this.getCountsLineIdx();return t=this.getNextLineIdx(t),t}shiftIdxToXColumn(t){return this.getNextColumnIdx(t)}shiftIdxToBondedAtomsPair(t){return this.shiftIdxToSpecifiedColumn(t,Xe.FIRST_BONDED_ATOM_COL)}shiftIdxToBondType(t){return this.shiftIdxToSpecifiedColumn(t,Xe.BOND_TYPE_COL)}getBondBlockIdx(){let t=this.getAtomBlockIdx();for(let e=0;e<this.atomCount;e++)t=this.getNextLineIdx(t);return t}parseAtomAndBondCounts(){let t=this.getCountsLineIdx(),e=t+Xe.NUM_OF_COUNTS_DIGITS;const n=parseInt(this.fileContent.substring(t,e));return t=e,e+=Xe.NUM_OF_COUNTS_DIGITS,{atomCount:n,bondCount:parseInt(this.fileContent.substring(t,e))}}}class on extends rn{constructor(t){super(t),this.init(t)}getAtomLines(){const t=this.getAtomBlockIdx(),e=this.getBondBlockIdx();return this.fileContent.substring(t,e).split("\n").slice(0,this.atomCount)}getBondLines(){const t=this.getBondBlockIdx();return this.fileContent.substring(t).split("\n").slice(0,this.bondCount)}getRGroupIdToAtomicIdxMap(){const t=new Map;return this.getAtomLines().forEach(((e,n)=>{const r=e.match(/RGROUPS=\(([\d\s]+)\)/);if(r){const e=r[1].split(/\s+/).map((t=>parseInt(t)));if(e.length>2)throw new Error(`R group data ${e} has more than 2 elements`);const i=e[1];if(t.has(i))throw new Error(`R group ${i} is already in the map`);t.set(i,n)}})),t}shiftIdxToAtomType(t){return this.shiftIdxToSpecifiedColumn(t,4)}getCountsLineIdx(){return this.fileContent.indexOf("M V30 COUNTS ")}getAtomBlockIdx(){let t=this.fileContent.indexOf("M V30 BEGIN ATOM");return t=this.getNextLineIdx(t),t}shiftIdxToXColumn(t){let e=this.shiftIdxToAtomType(t);return this.isQuote(e)?(e=this.getNextIdenticalChar(e),e=this.getNextColumnIdx(e),e):this.shiftIdxToSpecifiedColumn(t,5)}shiftIdxToBondedAtomsPair(t){return this.shiftIdxToSpecifiedColumn(t,5)}shiftIdxToBondType(t){return this.shiftIdxToSpecifiedColumn(t,4)}getBondBlockIdx(){return this.getNextLineIdx(this.fileContent.indexOf("M V30 BEGIN BOND"))}static isValidMolfile(t){return-1!==t.indexOf("V3000")&&-1!==t.indexOf("M END")}parseAtomAndBondCounts(){let t=this.fileContent.indexOf("M V30 COUNTS ")+14,e=this.fileContent.indexOf(" ",t+1);const n=parseInt(this.fileContent.substring(t,e));return t=e+1,e=this.fileContent.indexOf(" ",t+1),{atomCount:n,bondCount:parseInt(this.fileContent.substring(t,e))}}}class an{constructor(){}static getInstance(t){if(an.isMolfileV2K(t))return new sn(t);if(an.isMolfileV3K(t))return new on(t);throw new Error("Malformed molfile")}static isMolfileV2K(t){return sn.isValidMolfile(t)}static isMolfileV3K(t){return on.isValidMolfile(t)}}const un=class extends Error{constructor(t){super(t)}};class ln{constructor(t){this.molblock=t}get molblock(){return this._validMolBlock}set molblock(t){if(""!==t){try{this.validateMolBlock(t)}catch(e){e instanceof un&&(t="");const n=Je(e);console.error(n)}this._validMolBlock=t}else this._validMolBlock=t}validateMolBlock(t){if(""===t)throw new un("MoleculeImage: invalid molblock")}async drawMolBlockOnCanvas(t){try{await i.functions.call("Chem:canvasMol",{x:0,y:0,w:t.width,h:t.height,canvas:t,molString:this.molblock,scaffoldMolString:"",options:{normalizeDepiction:!1,straightenDepiction:!1}})}catch(t){const e=Je(t);console.error(e)}}getMoleculeDimensions(){const t=an.getInstance(this.molblock),e=Math.max(...t.x)-Math.min(...t.x);return{height:Math.max(...t.y)-Math.min(...t.y),width:e}}async zoomIn(){const t=St.dialog({title:"Molecule",showFooter:!1}),e=.7*Tt()(window).height(),n=this.getMoleculeDimensions(),r=e/n.height,i=e,s=n.width*r,o=St.canvas(s,i);await this.drawMolBlockOnCanvas(o);const a=St.block([o],{style:{overflowX:"scroll"}});t.add(a).showModal(!0),Tt()(t.root).find(".d4-dialog-contents").removeClass("ui-form"),Tt()(t.root).find(".d4-dialog-contents").removeClass("ui-panel"),Tt()(t.root).find(".d4-dialog-contents").addClass("ui-box"),Tt()(t.root).find(".d4-dialog-contents").css("padding","0")}async drawMolecule(t,e,n){t.innerHTML="";const r=St.canvas(e*window.devicePixelRatio,n*window.devicePixelRatio);r.style.width=`${e}px`,r.style.height=`${n}px`,r.style.cursor="zoom-in",this.drawMolBlockOnCanvas(r),r.addEventListener("click",(async()=>{await this.zoomIn()})),t.append(St.tooltip.bind(r,"Click to zoom"))}}class cn extends Error{constructor(t,e){super(t,e)}}class hn{constructor(t,e){this.sequence=t,this.codeMap=e}parseSequence(){const t=this.parseRawSequence();return this.addLinkers(t)}addLinkers(t){const e=[];return t.forEach(((n,r)=>{const i=this.getSymbolForCode(n);r>0&&function(t){return yr.jsonData.monomersWithPhosphate.left.includes(t)}(i)&&e.pop(),e.push(i);const s=fn(i),o=r===t.length-1,a=r+1<t.length&&fn(this.getSymbolForCode(t[r+1]));s||function(t){return yr.jsonData.monomersWithPhosphate.right.includes(t)}(i)||a||o||e.push("p")})),e}getSymbolForCode(t){let e=this.codeMap.get(t);return e??(e=t),e}parseRawSequence(){const t=this.getAllCodesOfFormat(),e=[];let n=0;for(;n<this.sequence.length;){const r=t.find((t=>t===this.sequence.substring(n,n+t.length)));if(void 0===r)throw new cn(`Unable to match a monomer for the rest of the sequence '${this.sequence.slice(n)}'.`);e.push(r),n+=r.length}return e}getAllCodesOfFormat(){return ht(Array.from(this.codeMap.keys()))}}function fn(t){return yr.jsonData.monomersWithPhosphate.phosphate.includes(t)}class dn{constructor(t,e=!1,n){this.invert=e,this.lib=yr.monomerLibWrapper;const r=this.lib.getCodeToSymbolMap(n);this.parser=new hn(t,r)}convert(){const t=this.parser.parseSequence(),e=[];t.forEach(((t,n)=>{const r=this.getMonomerMolfile(t,n);e.push(r)}));let n=this.getPolymerMolfile(e);return this.invert&&(n=this.reflect(n),n=this.invertBondConfiguration(n)),n}invertBondConfiguration(t){const e=t.indexOf("M V30 BEGIN BOND"),n=t.indexOf("M V30 END BOND");let r=t.substring(e,n);return r=r.replace(/(CFG=)([13])/g,((t,e,n)=>"1"===n?`${e}3`:"3"===n?`${e}1`:t)),t.substring(0,e)+r+t.substring(n)}getMonomerMolfile(t,e){const n=this.lib.getMolfileBySymbol(t);return this.lib.isModification(t)?0===e?this.reflect(n):n:this.rotateNucleotidesV3000(n)}getPolymerMolfile(t){return this.linkV3000(t)}reflect(t){const e=this.extractAtomDataV3000(t),n=e.atomIndex.length,r=e.atomIndex.indexOf(1),i=e.atomIndex.indexOf(n),s=(e.x[i]+e.x[r])/2,o=(e.y[i]+e.y[r])/2;for(let t=0;t<n;t++)e.x[t]-=s,e.y[t]-=o;for(let t=0;t<n;t++)e.x[t]=-e.x[t];const a=e.x[r];for(let t=0;t<n;t++)e.x[t]-=a;let u=t.indexOf("M V30 BEGIN ATOM");u=t.indexOf("\n",u);let l=u;for(let r=0;r<n;r++)u=t.indexOf("V30",u)+4,u=t.indexOf(" ",u)+1,u=t.indexOf(" ",u)+1,l=t.indexOf(" ",u)+1,l=t.indexOf(" ",l),u=(t=t.slice(0,u)+e.x[r]+" "+e.y[r]+t.slice(l)).indexOf("\n",u)+1;return t}extractAtomDataV3000(t){const e=this.extractAtomsBondsNumbersV3000(t);let n=t.indexOf("M V30 BEGIN ATOM");n=t.indexOf("\n",n);let r=n;const i=Array(e.natom),s=Array(e.natom),o=Array(e.natom),a=Array(e.natom);for(let u=0;u<e.natom;u++)n=t.indexOf("V30",n)+4,r=t.indexOf(" ",n),i[u]=parseInt(t.substring(n,r)),n=r+1,r=t.indexOf(" ",n),s[u]=t.substring(n,r),n=r+1,r=t.indexOf(" ",n),o[u]=parseFloat(t.substring(n,r)),n=r+1,r=t.indexOf(" ",n),a[u]=parseFloat(t.substring(n,r)),n=t.indexOf("\n",n)+1;return{atomIndex:i,atomType:s,x:o,y:a}}extractAtomsBondsNumbersV3000(t){let e=(t=t.replaceAll("\r","")).indexOf("COUNTS")+7,n=t.indexOf(" ",e);const r=parseInt(t.substring(e,n));return e=n+1,n=t.indexOf(" ",e),{natom:r,nbond:parseInt(t.substring(e,n))}}rotateNucleotidesV3000(t){const e=this.extractAtomDataV3000(t),n=e.atomIndex.length,r=e.atomIndex.indexOf(1),i=e.atomIndex.indexOf(n);n>8&&this.fix5Prime(e,r,i);const s=(e.x[i]+e.x[r])/2,o=(e.y[i]+e.y[r])/2;for(let t=0;t<n;t++)e.x[t]-=s,e.y[t]-=o;let a=0;if(0===e.x[r])a=e.y[r]>e.y[i]?Math.PI/2:3*Math.PI/2;else if(0===e.y[r])a=e.x[r]>e.x[i]?Math.PI:0;else{const t=e.y[r]/e.x[r];a=t>0?e.x[r]>0?Math.PI-Math.atan(t):2*Math.PI-Math.atan(t):e.x[r]>0?-Math.PI-Math.atan(t):Math.atan(t)}const u=Math.cos(a),l=Math.sin(a);for(let t=0;t<n;t++){const n=e.x[t];e.x[t]=n*u-e.y[t]*l,e.y[t]=n*l+e.y[t]*u}const c=e.x[r];for(let t=0;t<n;t++)e.x[t]-=c;let h=t.indexOf("M V30 BEGIN ATOM");h=t.indexOf("\n",h);let f=h;for(let r=0;r<n;r++)h=t.indexOf("V30",h)+4,h=t.indexOf(" ",h)+1,h=t.indexOf(" ",h)+1,f=t.indexOf(" ",h)+1,f=t.indexOf(" ",f),h=(t=t.slice(0,h)+e.x[r]+" "+e.y[r]+t.slice(f)).indexOf("\n",h)+1;return t}linkV3000(t,e=!0){let n="\n Datagrok macromolecule handler\n\n";n+=" 0 0 0 0 0 0 999 V3000\n",n+="M V30 BEGIN CTAB\n";let r="",i="",s="";const o=[];let a=0,u=0,l=0;for(let e=0;e<t.length;e++){const n=t[e].includes("MODIFICATION")&&0===e;let s=0;n&&(s=this.extractAtomDataV3000(t[e]).atomIndex.length),t[e]=t[e].replaceAll("(-\nM V30 ","(").replaceAll("-\nM V30 ","").replaceAll(" )",")");const c=this.extractAtomsBondsNumbersV3000(t[e]),h=this.extractAtomDataV3000(t[e]);let f=t[e].indexOf("M V30 BEGIN ATOM");f=t[e].indexOf("\n",f);let d=f,p=f;for(let r=0;r<c.natom;r++)if(1!==h.atomIndex[r]||0===e){d=t[e].indexOf("V30",d)+4,p=t[e].indexOf(" ",d);let r=0;n?(r=parseInt(t[e].substring(d,p)),1===r?r=s:r===s&&(r=1),r+=a):r=parseInt(t[e].substring(d,p))+a,t[e]=t[e].slice(0,d)+r+t[e].slice(p),d=t[e].indexOf(" ",d)+1,d=t[e].indexOf(" ",d)+1,p=t[e].indexOf(" ",d);const i=l-h.x[0];let o=Math.round(1e4*(parseFloat(t[e].substring(d,p))+i))/1e4;t[e]=t[e].slice(0,d)+o+t[e].slice(p),d=t[e].indexOf(" ",d)+1,p=t[e].indexOf(" ",d),o=Math.round(1e4*parseFloat(t[e].substring(d,p)))/1e4,t[e]=t[e].slice(0,d)+o+t[e].slice(p),d=t[e].indexOf("\n",d)+1}else d=t[e].indexOf("M V30",d)-1,p=t[e].indexOf("\n",d+1),t[e]=t[e].slice(0,d)+t[e].slice(p);const g=t[e].indexOf("M V30 END ATOM");r+=t[e].substring(f+1,g);let m=t[e].indexOf("M V30 BEGIN BOND");m=t[e].indexOf("\n",m),d=m,p=m;for(let r=0;r<c.nbond;r++){d=t[e].indexOf("V30",d)+4,p=t[e].indexOf(" ",d);const r=parseInt(t[e].substring(d,p))+u;t[e]=t[e].slice(0,d)+r+t[e].slice(p),d=t[e].indexOf(" ",d)+1,d=t[e].indexOf(" ",d)+1,p=t[e].indexOf(" ",d);let i=0;n?(i=parseInt(t[e].substring(d,p)),1===i?i=s:i===s&&(i=1),i+=a):i=parseInt(t[e].substring(d,p))+a,t[e]=t[e].slice(0,d)+i+t[e].slice(p),d=t[e].indexOf(" ",d)+1,p=Math.min(t[e].indexOf("\n",d),t[e].indexOf(" ",d)),i=0,n?(i=parseInt(t[e].substring(d,p)),1===i?i=s:i===s&&(i=1),i+=a):i=parseInt(t[e].substring(d,p))+a,t[e]=t[e].slice(0,d)+i+t[e].slice(p),d=t[e].indexOf("\n",d)+1}const v=t[e].indexOf("M V30 END BOND");i+=t[e].substring(m+1,v);let y=t[e].indexOf("M V30 MDLV30/STEABS ATOMS=(");for(;-1!==y;){y+=28;const n=t[e].indexOf(")",y);t[e].substring(y,n).split(" ").slice(1).forEach((t=>{o.push(parseInt(t)+a)})),y=n,y=t[e].indexOf("M V30 MDLV30/STEABS ATOMS=(",y)}a+=c.natom-1,u+=c.nbond,l+=n?Math.max(...h.x):h.x[c.natom-1]-h.x[0]}const c=Math.ceil(o.length/4);s+="M V30 MDLV30/STEABS ATOMS=("+o.length+" -\n";for(let t=0;t<c;t++){s+="M V30 ";const e=t+1===c?o.length-4*(c-1):4;for(let n=0;n<e;n++)s+=n+1===e?t===c-1?o[4*t+n]+")\n":o[4*t+n]+" -\n":o[4*t+n]+" "}return a++,n+="M V30 COUNTS "+a+" "+u+" 0 0 0\n",n+="M V30 BEGIN ATOM\n",n+=r,n+="M V30 END ATOM\n",n+="M V30 BEGIN BOND\n",n+=i,n+="M V30 END BOND\n",e&&o.length>0?(n+="M V30 BEGIN COLLECTION\n",n+=s,n+="M V30 END COLLECTION\n"):n=n.replace(/ CFG=\d/g," "),n+="M V30 END CTAB\n",n+="M END",n}fix5Prime(t,e,n){const r=e+1,i=t.x[r],s=t.y[r],o=t.x[n]-i,a=t.y[n]-s,u=t.x[e]-i,l=t.y[e]-s,c=u*Math.cos(2*Math.PI/3)-l*Math.sin(2*Math.PI/3),h=u*Math.sin(2*Math.PI/3)+l*Math.cos(2*Math.PI/3),f=u-o,d=l-a,p=c-o,g=h-a;Math.sqrt(g*g+p*p)>=Math.sqrt(d*d+f*f)&&(t.x[e]=c+i,t.y[e]=h+s)}}function pn(t,e=!0){let n="\n Datagrok macromolecule handler\n\n";n+=" 0 0 0 0 0 0 999 V3000\n",n+="M V30 BEGIN CTAB\n";let r="",i="",s="";const o=[];let a=0,u=0,l=0;if(t.antiStrands.length>0)for(let e=0;e<t.antiStrands.length;e++)t.antiStrands[e]=gn(t.antiStrands[e]);let c=!1;const h=t.senseStrands.concat(t.antiStrands);let f=0;for(let e=0;e<h.length;e++){h[e]=h[e].replaceAll("(-\nM V30 ","(").replaceAll("-\nM V30 ","").replaceAll(" )",")");const n=mn(h[e]),s=vn(h[e]);if(e>=t.senseStrands.length?!1===c&&(c=!0,l=0):f=Math.min(f,Math.min(...s.y.filter((t=>t<0)))),c){const t=Math.min(...s.x)-l,e=Math.max(...s.y)+5;for(let e=0;e<s.x.length;e++)s.x[e]-=t;for(let t=0;t<s.y.length;t++)s.y[t]-=e-f}let d=h[e].indexOf("M V30 BEGIN ATOM");d=h[e].indexOf("\n",d);let p=d,g=d;for(let t=0;t<n.natom;t++){p=h[e].indexOf("V30",p)+4,g=h[e].indexOf(" ",p);const n=parseInt(h[e].substring(p,g))+a;h[e]=h[e].slice(0,p)+n+h[e].slice(g),p=h[e].indexOf(" ",p)+1,p=h[e].indexOf(" ",p)+1,g=h[e].indexOf(" ",p);let r=Math.round(1e4*s.x[t])/1e4;h[e]=h[e].slice(0,p)+r+h[e].slice(g),p=h[e].indexOf(" ",p)+1,g=h[e].indexOf(" ",p),r=Math.round(1e4*s.y[t])/1e4,h[e]=h[e].slice(0,p)+r+h[e].slice(g),p=h[e].indexOf("\n",p)+1}const m=h[e].indexOf("M V30 END ATOM");r+=h[e].substring(d+1,m);let v=h[e].indexOf("M V30 BEGIN BOND");v=h[e].indexOf("\n",v),p=v,g=v;for(let t=0;t<n.nbond;t++){p=h[e].indexOf("V30",p)+4,g=h[e].indexOf(" ",p);const t=parseInt(h[e].substring(p,g))+u;h[e]=h[e].slice(0,p)+t+h[e].slice(g),p=h[e].indexOf(" ",p)+1,p=h[e].indexOf(" ",p)+1,g=h[e].indexOf(" ",p);let n=parseInt(h[e].substring(p,g))+a;h[e]=h[e].slice(0,p)+n+h[e].slice(g),p=h[e].indexOf(" ",p)+1,g=Math.min(h[e].indexOf("\n",p),h[e].indexOf(" ",p)),n=parseInt(h[e].substring(p,g))+a,h[e]=h[e].slice(0,p)+n+h[e].slice(g),p=h[e].indexOf("\n",p)+1}const y=h[e].indexOf("M V30 END BOND");i+=h[e].substring(v+1,y);let b=h[e].indexOf("M V30 MDLV30/STEABS ATOMS=(");for(;-1!==b;){b+=28;const t=h[e].indexOf(")",b);h[e].substring(b,t).split(" ").slice(1).forEach((t=>{o.push(parseInt(t)+a)})),b=t,b=h[e].indexOf("M V30 MDLV30/STEABS ATOMS=(",b)}a+=n.natom,u+=n.nbond,l+=Math.max(...s.x)+5}const d=Math.ceil(o.length/4);s+="M V30 MDLV30/STEABS ATOMS=("+o.length+" -\n";for(let t=0;t<d;t++){s+="M V30 ";const e=t+1===d?o.length-4*(d-1):4;for(let n=0;n<e;n++)s+=n+1===e?t===d-1?o[4*t+n]+")\n":o[4*t+n]+" -\n":o[4*t+n]+" "}return n+="M V30 COUNTS "+a+" "+u+" 0 0 0\n",n+="M V30 BEGIN ATOM\n",n+=r,n+="M V30 END ATOM\n",n+="M V30 BEGIN BOND\n",n+=i,n+="M V30 END BOND\n",e&&o.length>0?(n+="M V30 BEGIN COLLECTION\n",n+=s,n+="M V30 END COLLECTION\n"):n=n.replace(/ CFG=\d/g," "),n+="M V30 END CTAB\n",n+="M END",n}function gn(t){const e=vn(t),n=e.atomIndex.length,r=(Math.max(...e.x)+Math.min(...e.x))/2,i=(Math.max(...e.y)+Math.min(...e.y))/2;for(let t=0;t<n;t++)e.x[t]-=r,e.y[t]-=i;const s=Math.PI,o=Math.cos(s),a=Math.sin(s);for(let t=0;t<n;t++){const n=e.x[t];e.x[t]=n*o-e.y[t]*a,e.y[t]=n*a+e.y[t]*o}const u=Math.max(...e.y);for(let t=0;t<n;t++)e.x[t]+=r,e.y[t]-=u;let l=t.indexOf("M V30 BEGIN ATOM");l=t.indexOf("\n",l);let c=l;for(let r=0;r<n;r++)l=t.indexOf("V30",l)+4,l=t.indexOf(" ",l)+1,l=t.indexOf(" ",l)+1,c=t.indexOf(" ",l)+1,c=t.indexOf(" ",c),l=(t=t.slice(0,l)+e.x[r]+" "+e.y[r]+t.slice(c)).indexOf("\n",l)+1;return t}function mn(t){let e=(t=t.replaceAll("\r","")).indexOf("COUNTS")+7,n=t.indexOf(" ",e);const r=parseInt(t.substring(e,n));return e=n+1,n=t.indexOf(" ",e),{natom:r,nbond:parseInt(t.substring(e,n))}}function vn(t){const e=mn(t);let n=t.indexOf("M V30 BEGIN ATOM");n=t.indexOf("\n",n);let r=n;const i=Array(e.natom),s=Array(e.natom),o=Array(e.natom),a=Array(e.natom);for(let u=0;u<e.natom;u++)n=t.indexOf("V30",n)+4,r=t.indexOf(" ",n),i[u]=parseInt(t.substring(n,r)),n=r+1,r=t.indexOf(" ",n),s[u]=t.substring(n,r),n=r+1,r=t.indexOf(" ",n),o[u]=parseFloat(t.substring(n,r)),n=r+1,r=t.indexOf(" ",n),a[u]=parseFloat(t.substring(n,r)),n=t.indexOf("\n",n)+1;return{atomIndex:i,atomType:s,x:o,y:a}}function yn(t,e,n){if(""===t)return"";const r=n.createFormatDetector(t).getFormat();if(!r)return"";let i="";try{i=new dn(t,e,r).convert()}catch(t){const e=Je(t);console.error(e)}return i}function bn(t,e,n,r,i){const s=[t,e,n].filter((t=>""!==t.strand));return 1===s.length?yn(s[0].strand,s[0].invert,i):pn({senseStrands:[yn(t.strand,t.invert,i)],antiStrands:[yn(e.strand,e.invert,i),yn(n.strand,n.invert,i)].filter((t=>""!==t))},r)}const An=["ss","as","as2"];class wn{constructor(){this.th=yr,this.onInput=new zt.Subject,this.onInvalidInput=new zt.Subject,this.inputBase=Object.fromEntries(An.map((t=>[t,St.textInput("","",(()=>{this.onInput.next()}))]))),this.useChiralInput=St.boolInput("Use chiral",!0),this.saveAllStrandsInput=St.boolInput("Save as one entity",!0),St.tooltip.bind(this.saveAllStrandsInput.root,"Save SDF with all strands in one molfile"),this.directionInversion=Object.fromEntries(An.map((t=>[t,!1]))),this.moleculeImgDiv=St.block([]),Tt()(this.moleculeImgDiv).addClass("st-structure-mol-img"),t.debounce(this.onInput,300).subscribe((async()=>{await this.updateMoleculeImg()})),t.debounce(this.onInvalidInput,1e3).subscribe((async()=>{i.shell.warning("Insert Sense strand")}))}async getHtmlDivElement(t){const e=this.getTableInput(t),n=this.getBoolInputsAndButton();await this.updateMoleculeImg();const r=St.divH([n,this.moleculeImgDiv]);Tt()(r).addClass("st-structure-bottom");const i=St.divV([e,r]);return Tt()(i).addClass("st-structure-body"),i}getBoolInputsAndButton(){const t=St.buttonsInput([St.bigButton("Save SDF",(()=>{const t=this.getStrandData();!function(t,e,n,r,s,o){const a=[t.strand,e.strand,n.strand].filter((t=>""!==t));if(0===a.length||1===a.length&&""===t.strand)i.shell.warning("Enter SENSE_STRAND and optionally ANTISENSE_STRAND/AS2 to save SDF");else{let u;if(s)u=bn(t,e,n,r,o)+"\n$$$$\n";else{const h=yn(t.strand,t.invert,o),f=yn(e.strand,e.invert,o),d=yn(n.strand,n.invert,o);u=h+"\n> <Sequence>\nSense Strand\n$$$$\n",f&&(u+=f+"\n> <Sequence>\nAnti Sense\n$$$$\n"),d&&(u+=d+"\n> <Sequence>\nAnti Sense 2\n$$$$\n")}const l=new Date;function c(t){return t>=10?t.toString():"0"+t.toString()}ft(`SequenceTranslator-${l.getFullYear()+"-"+c(l.getMonth()+1)+"-"+c(l.getDate())+"_"+c(l.getHours())+"-"+c(l.getMinutes())+"-"+c(l.getSeconds())}.sdf`,encodeURIComponent(u))}}(t.ss,t.as,t.as2,this.useChiralInput.value,this.saveAllStrandsInput.value,this.th)}))]),e=[this.saveAllStrandsInput.root,this.useChiralInput.root,t],n=St.divV(e);for(const t of e)Tt()(t).addClass("st-structure-bool-button-block");return n}getTableInput(t){const e=Object.fromEntries(An.map((e=>[e,new en(this.inputBase[e],t.highlightInvalidSubsequence)]))),n=Object.fromEntries(An.map(((t,e)=>{const n=0===e?"5′ → 3′":"3′ → 5′";return[t,St.choiceInput(`${t.toUpperCase()} direction`,n,["5′ → 3′","3′ → 5′"])]})));An.forEach(((t,e)=>{n[t].onChanged((()=>{let r="3′ → 5′"===n[t].value;e>0&&(r=!r),this.directionInversion[t]=r,this.onInput.next()}))}));const r=["Sense Strand","Anti Sense","Anti Sense 2"],i=new Map(An.map(((t,e)=>[t,r[e]]))),s=Object.fromEntries(An.map((t=>[t,St.label(i.get(t))]))),o=Object.fromEntries(An.map((t=>{const n=St.icons.delete((()=>{e[t].inputBase.value=""})),r=St.button(n,(()=>{}));return St.tooltip.bind(r,`Clear ${t.toUpperCase()}`),[t,n]}))),a=An.map((t=>({label:s[t],textInput:e[t].root,clear:o[t],choiceInput:n[t].root}))),u=St.table(a,(t=>[t.label,t.textInput,t.clear,t.choiceInput]));Tt()(u).css("margin-top","10px");for(const t of An){let e=s[t].parentElement;e.classList.add("st-structure-input-form"),Tt()(e).css("padding-top","3px"),e=n[t].root.parentElement,e.classList.add("st-structure-input-form","st-structure-direction-choice"),e=this.inputBase[t].root.parentElement,e.classList.add("st-structure-text-input-td")}return u}getStrandData(){return Object.fromEntries(An.map((t=>{const e=this.directionInversion[t];return[t,{strand:this.inputBase[t].value.replace(/\s*/g,""),invert:e}]})))}getMolfile(t,e,n){return bn(t,e,n,this.useChiralInput.value,this.th)}async updateMoleculeImg(){let t="";try{const e=this.getStrandData();Object.values(e).some((t=>""!==t.strand))&&(t=this.getMolfile(e.ss,e.as,e.as2))}catch(t){const e=Je(t);console.error(e)}const e=new ln(t);await e.drawMolecule(this.moleculeImgDiv,650,150),Tt()(this.moleculeImgDiv).find("canvas").css("float","inherit")}}class Cn extends Lt{constructor(t){super("Oligo Structure"),this.th=t,this.layout=new wn}getContent(){return this.layout.getHtmlDivElement(this.th)}}async function xn(t){try{const e={overflowX:"scroll"},n=St.div([],{style:e}),r=vn(t),s=.7*Tt()(window).height(),o=Math.max(...r.x)-Math.min(...r.x),a=Math.max(...r.y)-Math.min(...r.y),u=s/a,l=u*o,c=u*a,h=St.canvas(l*window.devicePixelRatio,c*window.devicePixelRatio);h.style.width=`${l}px`,h.style.height=`${c}px`,await async function(t,e){await i.functions.call("Chem:canvasMol",{x:0,y:0,w:t.width,h:t.height,canvas:t,molString:e,scaffoldMolString:"",options:{normalizeDepiction:!1,straightenDepiction:!1}})}(h,t),n.appendChild(h),St.dialog("Molecule").add(n).showModal(!0)}catch(t){const e=Je(t);console.error(e)}}class _n{static async view(){const t=yr.monomerLibWrapper.getTableForViewer();t.name="Monomer Library";const e=i.shell.addTableView(t);e.grid.props.allowEdit=!1,e.grid.onCellDoubleClick.subscribe((async t=>{const e=t.cell.value;"Molecule"===t.tableColumn?.semType&&await xn(e)}))}}const Sn="Copied",En="Nucleotides";function Tn(t,e){const n=new RegExp("\\([^()]*\\)","g"),r=t.match(n);return r?r.map((t=>{const n=t.replace(/[\[\]()]/g,"");return lt.includes(n)?n:e.getNaturalAnalogBySymbol(n)})).map((t=>t||yt)).join(""):null}var In=n(254),Nn={};Nn.styleTagTransform=ge(),Nn.setAttributes=he(),Nn.insert=le().bind(null,"head"),Nn.domAPI=ae(),Nn.insertStyleElement=de(),se()(In.A,Nn),In.A&&In.A.locals&&In.A.locals;const On=["Sequence"];class Mn{constructor(e){this.th=e,this.inputFormats=Object.keys(yr.jsonData.codesToHelmDict).concat(ct.HELM),this.onInput=new zt.Subject,this.moleculeImgDiv=St.div([]),this.moleculeImgDiv.className="mol-host",this.moleculeImgDiv.style.border="1px solid var(--grey-2)",this.moleculeImgDiv.style.borderRadius="1px",this.moleculeImgDiv.style.marginTop="12px",this.outputTableDiv=St.div([]),this.formatChoiceInput=St.choiceInput("",ct.HELM,this.inputFormats,(async()=>{this.format=this.formatChoiceInput.value,this.updateTable(),await this.updateMolImg()})),this.sequenceInputBase=St.textInput("","Afcgacsu",(()=>{this.onInput.next()})),this.init(),t.debounce(this.onInput,300).subscribe((async()=>{this.init(),this.formatChoiceInput.value=this.format,this.updateTable(),await this.updateMolImg()})),this.eventBus=Rn.getInstance()}async getHtmlElement(){const t=this.constructSingleSequenceControls(),e=this.constructBulkTranslationControls(),n=St.box(St.panel([t,e,St.block([St.box(this.moleculeImgDiv)])]));return this.formatChoiceInput.value=this.format,this.updateTable(),await this.updateMolImg(),n}constructBulkTranslationControls(){const t=St.h1("Bulk");St.tooltip.bind(t,"Bulk translation from table input");const e=new Ln(this.eventBus).createUIComponents(),n=St.choiceInput("Input format",ct.AXOLABS,this.inputFormats,(t=>this.eventBus.selectInputFormat(t))),r=St.choiceInput("Output format",En,(i=this.th,Object.keys(i.jsonData.codesToHelmDict).concat([ct.HELM,En]).sort()),(t=>this.eventBus.selectOutputFormat(t)));var i;const s=this.createConvertBulkButton(),o=St.div([...e,n,r,s],"ui-form");return St.block25([t,o])}createConvertBulkButton(){const t=St.bigButton("Convert",(()=>this.processConvertBulkButtonClick()));return St.tooltip.bind(t,"Convert sequences from table input"),$(t).css({float:"right","margin-top":"20px"}),t}processConvertBulkButtonClick(){const e=this.eventBus.getSelectedTable();if(!e)return void i.shell.warning("No table selected");const n=this.eventBus.getSelectedInputFormat(),r=this.eventBus.getSelectedOutputFormat(),s=this.eventBus.getSelectedColumn("Sequence");if(!s)return void i.shell.warning("No sequence column selected");const o=`${s.name} (${r})`,a=t.Column.fromList(t.TYPE.STRING,o,s.toList().map((t=>{const e=function(t,e,n,r){const i=r.createFormatConverter(t,e);return n===En?Tn(i.convertTo(ct.HELM),r.monomerLibWrapper):i.convertTo(n)}(t,n,r,this.th);return e})));if(r===En||r===ct.HELM){a.semType=t.SEMTYPE.MACROMOLECULE;const e=r==En?_.FASTA:_.HELM;a.setTag(t.TAGS.UNITS,e);const n=tt.forColumn(a);(r==En?tt.setUnitsToFastaColumn:tt.setUnitsToHelmColumn)(n)}e.columns.add(a),i.data.detectSemanticTypes(e),i.shell.v=i.shell.getTableView(e.name)}constructSingleSequenceControls(){const t=new en(this.sequenceInputBase,(t=>It(t,this.th))),e=St.button("Get SDF",(()=>{this.saveMolfile()}),"Save structure as SDF"),n=St.button("Copy SMILES",(()=>{this.copySmiles()}),"Copy SMILES for the sequence"),r=St.div([this.formatChoiceInput]),i=St.button(St.icons.delete((()=>{t.inputBase.value=""})),(()=>{}));St.tooltip.bind(i,"Clear input");const s={format:r,textInput:t.root,clearBtn:i},o=St.table([s],(t=>[t.format,t.textInput,t.clearBtn]));o.classList.add("st-translator-input-table");const a=St.block([this.outputTableDiv,e,n]);return St.block75([St.h1("Single sequence"),o,a])}saveMolfile(){const t=new dn(this.sequence,!1,this.formatChoiceInput.value).convert()+"\n$$$$";ft(this.sequence+".sdf",encodeURIComponent(t))}copySmiles(){const e=t.chem.convert(this.molfile,t.chem.Notation.MolBlock,t.chem.Notation.Smiles);navigator.clipboard.writeText(e).then((()=>i.shell.info(Sn)))}updateTable(){this.outputTableDiv.innerHTML="";const t=this.format?this.th.createSequenceValidator(this.sequence).getInvalidCodeIndex(this.format):0,e=function(t,e,n,r){const i=Object.keys(r.jsonData.codesToHelmDict).concat([ct.HELM]);if(!t||-1!==e&&n!==ct.HELM)return{};if(!i.includes(n))throw new Error(`${n} format is not supported by SequenceTranslator`);const s=i.filter((t=>t!=n)).sort(((t,e)=>t.localeCompare(e))),o=r.createFormatConverter(t,n),a=Object.fromEntries(s.map((t=>{let e;try{e=o.convertTo(t)}catch{e=null}return[t,e]})).filter((([t,e])=>e))),u=Tn(n===ct.HELM?t:a[ct.HELM],r.monomerLibWrapper);return u&&(a.Nucleotides=u),a}(this.sequence,t,this.format,this.th),n=[];for(const t of Object.keys(e)){const r="indexOfFirstInvalidChar"in e?St.divH([]):St.link(e[t],(()=>navigator.clipboard.writeText(e[t]).then((()=>i.shell.info(Sn)))),"Copy sequence","");n.push({format:t,sequence:r})}const r=St.table(n,(t=>[t.format,t.sequence]),["FORMAT","SEQUENCE"]);this.outputTableDiv.append(r),this.outputTableDiv.classList.add("st-translator-output-table")}async updateMolImg(){const t=new ln(this.molfile);await t.drawMolecule(this.moleculeImgDiv,500,170)}init(){this.sequence=this.getFormattedSequence(),this.format=this.th.createFormatDetector(this.sequence).getFormat(),this.molfile=this.getMolfile()}getFormattedSequence(){return this.sequenceInputBase.value.replace(/\s/g,"")}getMolfile(){if(!this.format)return"";if(this.format===ct.HELM){const t=this.th.createFormatConverter(this.sequence,this.format).convertTo(ct.AXOLABS);return new dn(t,!1,ct.AXOLABS).convert()}return new dn(this.sequence,!1,this.format).convert()}}class Ln{constructor(t){this.tableInputManager=new Bn(t),this.columnInputManager=new Pn(t)}createUIComponents(){return[this.tableInputManager.getTableInputContainer(),this.columnInputManager.getColumnControlsContainer()]}}class Bn{constructor(t){this.eventBus=t,this.availableTables=[],this.tableInputContainer=St.div([]),this.subscribeToTableEvents(),this.refreshTableInput()}getTableInputContainer(){return this.tableInputContainer}subscribeToTableEvents(){i.events.onTableAdded.subscribe((t=>this.handleTableAdded(t))),i.events.onTableRemoved.subscribe((t=>this.handleTableRemoved(t))),this.eventBus.tableSelected$.subscribe((()=>this.handleTableChoice()))}getTableFromEventData(t){return t.args.dataFrame}handleTableAdded(t){const e=this.getTableFromEventData(t);this.availableTables.some((t=>t.name===e.name))||(this.availableTables.push(e),this.eventBus.selectTable(e),this.refreshTableInput())}handleTableRemoved(t){const e=this.getTableFromEventData(t);this.availableTables=this.availableTables.filter((t=>t.name!==e.name));const n=this.availableTables[0];this.eventBus.selectTable(n||null),this.refreshTableInput()}refreshTableInput(){const t=this.createTableInput();$(this.tableInputContainer).empty(),this.tableInputContainer.append(t.root)}createTableInput(){const e=this.eventBus.getSelectedTable();return St.tableInput("Table",e,this.availableTables,(e=>{null!==e&&e instanceof t.DataFrame&&this.eventBus.selectTable(e)}))}handleTableChoice(){const t=this.eventBus.getSelectedTable();t&&(this.isTableDisplayed(t)||this.displayTable(t))}isTableDisplayed(t){return i.shell.tableNames.includes(t.name)}displayTable(t){const e=i.shell.v;i.shell.addTableView(t),i.shell.v=e}}class Pn{constructor(t){this.eventBus=t,this.columnControlsContainer=St.div([]),this.eventBus.tableSelected$.subscribe((()=>this.handleTableChoice())),this.refreshColumnControls()}getColumnControlsContainer(){return this.columnControlsContainer}handleTableChoice(){this.refreshColumnControls()}refreshColumnControls(){const t=this.createColumnInputs();$(this.columnControlsContainer).empty();const e=t.map((t=>t.root));this.columnControlsContainer.append(...e)}createColumnInputs(){const t=this.eventBus.getSelectedTable(),e=null!==t?t.columns.names().sort(((t,e)=>t.localeCompare(e))):[];return On.map((n=>this.createColumnInput(n,e,t)))}createColumnInput(t,e,n){const r=t.toLowerCase(),i=e.find((t=>t.toLowerCase().includes(r)))||e[0];return this.selectColumnIfTableNotNull(n,i,t),St.choiceInput(`${t}`,i,e,(e=>this.selectColumnIfTableNotNull(n,e,t)))}selectColumnIfTableNotNull(t,e,n){if(null!==t){const r=t.getCol(e);this.eventBus.selectColumn(n,r)}}}class Rn{constructor(){this._tableSelection$=new zt.BehaviorSubject(null),this._columnSelection=Object.fromEntries(On.map((t=>[t,new zt.BehaviorSubject(null)]))),this._inputFormatSelection$=new zt.BehaviorSubject(ct.AXOLABS),this._outputFormatSelection$=new zt.BehaviorSubject(En)}static getInstance(){return void 0===Rn._instance&&(Rn._instance=new Rn),Rn._instance}get tableSelected$(){return this._tableSelection$.asObservable()}getSelectedTable(){return this._tableSelection$.getValue()}selectTable(t){this._tableSelection$.next(t)}selectColumn(t,e){this._columnSelection[t].next(e)}getSelectedColumn(t){return this._columnSelection[t].getValue()}getSelectedInputFormat(){return this._inputFormatSelection$.getValue()}selectInputFormat(t){this._inputFormatSelection$.next(t)}selectOutputFormat(t){this._outputFormatSelection$.next(t)}getSelectedOutputFormat(){return this._outputFormatSelection$.getValue()}}class Dn extends Lt{constructor(t){super("Oligo Translator"),this.th=t,this.th=yr,this.layout=new Mn(this.th);const e=St.iconFA("book",_n.view,"View monomer library");this.topPanel=[e],this.view.setRibbonPanels([this.topPanel])}getContent(){return this.layout.getHtmlElement()}}class Fn extends Lt{constructor(t,e){super(t),this.content=e}getContent(){return Promise.resolve(this.content)}}class Un extends Mt{constructor(e,n){super("Oligo Toolkit"),this.externalViewFactories=e,this.th=n;const r=this.getViewFactories(this.th);this.multiView=new t.MultiView({viewFactories:r})}getViewFactories(e){function n(n){t.View.create();const r=new n(e);return r.initView().catch((t=>console.error(`Failed to initialize ${n.name}: ${t}`))),()=>r.getView()}let r={TRANSLATOR:n(Dn),PATTERN:n(Ye),STRUCTURE:n(Cn)};return this.externalViewFactories&&(r=Object.assign({},r,this.externalViewFactories)),r}getCurrentPanePath(){let t=this.multiView.tabs.currentPane.name;return t=t.charAt(0).toUpperCase()+t.substring(1).toLowerCase(),`/apps/${yr.name}/OligoToolkit/${t}`}setUrl(){this.multiView.path=this.getCurrentPanePath()}async constructView(){return this.multiView.tabs.onTabChanged.subscribe((()=>this.setUrl())),this.setUrl(),this.multiView}}n(982),t.DataFrame.fromCsv('countries,fasta,smiles,molregno,LON,Zip Code,Street Address Line 1,ImageUrl,user_id,error_message,xray,flag,magnitude,CS-id,pdb_id,accel_a,time_offset,chart,fit,Questions,empty_number,empty_string\nBelgium,MSNFHNEHVMQFYRNNLKTKGVFGRQ,CC(C(=O)OCCCc1cccnc1)c2cccc(c2)C(=O)c3ccccc3,1480014,36.276729583740234,995042300,14016 ROUTE 31W,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,1,1,1QBS,1,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.497360340644872, 1.7058694986686864, 5.278052678195135, 0.16000320889028383],""points"":[{""x"":0.10000000149011612,""y"":2.374499797821045},{""x"":0.6000000238418579,""y"":2.6242473125457764},{""x"":1.100000023841858,""y"":2.367267608642578},{""x"":1.600000023841858,""y"":2.6723148822784424},{""x"":2.0999999046325684,""y"":2.6537344455718994},{""x"":2.5999999046325684,""y"":2.3651671409606934},{""x"":3.0999999046325684,""y"":2.5654284954071045},{""x"":3.5999999046325684,""y"":2.4160959720611572},{""x"":4.099999904632568,""y"":2.286726713180542},{""x"":4.599999904632568,""y"":2.5100042819976807},{""x"":5.099999904632568,""y"":1.6676985025405884},{""x"":5.599999904632568,""y"":0.680136501789093},{""x"":6.099999904632568,""y"":0.3391543924808502},{""x"":6.599999904632568,""y"":0.09038983285427094},{""x"":7.099999904632568,""y"":0.19802775979042053}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[7.525235855508179, 1.3186911876809984, 5.335672608564294, 0.7860743343958098],""points"":[{""x"":0.10000000149011612,""y"":7.988070487976074},{""x"":0.6000000238418579,""y"":7.018453121185303},{""x"":1.100000023841858,""y"":8.115279197692871},{""x"":1.600000023841858,""y"":7.486658096313477},{""x"":2.0999999046325684,""y"":7.396438121795654},{""x"":2.5999999046325684,""y"":7.477052211761475},{""x"":3.0999999046325684,""y"":6.913095474243164},{""x"":3.5999999046325684,""y"":8.01385498046875},{""x"":4.099999904632568,""y"":6.985900402069092},{""x"":4.599999904632568,""y"":6.970335960388184},{""x"":5.099999904632568,""y"":5.448817253112793},{""x"":5.599999904632568,""y"":2.5534818172454834},{""x"":6.099999904632568,""y"":1.893947958946228},{""x"":6.599999904632568,""y"":0.6340042352676392},{""x"":7.099999904632568,""y"":0.8403874039649963}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,100,abc\nBurundi,MDYKETLLMPKTDFPMRGGLPNKEPQIQEKW,COc1ccc2cc(ccc2c1)C(C)C(=O)Oc3ccc(C)cc3OC,1480015,36.276729583740234,995073444,80 STATE HIGHWAY 310,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,2,2,1ZP8,2,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[4.431460753103398, 2.1691498799246745, 5.266445597102774, 0.7825762827017926],""points"":[{""x"":0.10000000149011612,""y"":4.751083850860596},{""x"":0.6000000238418579,""y"":4.203000068664551},{""x"":1.100000023841858,""y"":4.415858745574951},{""x"":1.600000023841858,""y"":4.68414306640625},{""x"":2.0999999046325684,""y"":4.198400974273682},{""x"":2.5999999046325684,""y"":4.179222106933594},{""x"":3.0999999046325684,""y"":4.638473987579346},{""x"":3.5999999046325684,""y"":4.708553314208984},{""x"":4.099999904632568,""y"":4.291589260101318},{""x"":4.599999904632568,""y"":4.038082599639893},{""x"":5.099999904632568,""y"":3.4349939823150635},{""x"":5.599999904632568,""y"":1.2194708585739136},{""x"":6.099999904632568,""y"":1.1920831203460693},{""x"":6.599999904632568,""y"":0.5352635979652405},{""x"":7.099999904632568,""y"":0.3346920311450958}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[2.339458017970126, -1.0734184310171178, 4.746332950550934, 0.2482416857595658],""points"":[{""x"":0.10000000149011612,""y"":0.2139337658882141},{""x"":0.6000000238418579,""y"":0.4269562065601349},{""x"":1.100000023841858,""y"":0.2441573292016983},{""x"":1.600000023841858,""y"":0.146635964512825},{""x"":2.0999999046325684,""y"":0.08818462491035461},{""x"":2.5999999046325684,""y"":0.2560656666755676},{""x"":3.0999999046325684,""y"":0.42434045672416687},{""x"":3.5999999046325684,""y"":0.37111231684684753},{""x"":4.099999904632568,""y"":0.5581737160682678},{""x"":4.599999904632568,""y"":1.183590054512024},{""x"":5.099999904632568,""y"":1.5629843473434448},{""x"":5.599999904632568,""y"":2.3211288452148438},{""x"":6.099999904632568,""y"":2.229961633682251},{""x"":6.599999904632568,""y"":2.2560226917266846},{""x"":7.099999904632568,""y"":2.2142398357391357}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCameroon,MIEVFLFGIVLGLIPITLAGLFVTAYLQYRRGDQLDL,COc1ccc2cc(ccc2c1)C(C)C(=O)OCCCc3cccnc3,1480016,36.26095962524414,995153596,30-56 WHITESTONE EXPY,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,3,3,2BDJ,3,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[4.6760652578642325, 0.9046956320756703, 5.651408971856738, 0.07738846012184185],""points"":[{""x"":0.10000000149011612,""y"":4.32425594329834},{""x"":0.6000000238418579,""y"":4.668442249298096},{""x"":1.100000023841858,""y"":4.379785060882568},{""x"":1.600000023841858,""y"":5.0345139503479},{""x"":2.0999999046325684,""y"":4.878653526306152},{""x"":2.5999999046325684,""y"":4.3451313972473145},{""x"":3.0999999046325684,""y"":4.336992263793945},{""x"":3.5999999046325684,""y"":5.037430286407471},{""x"":4.099999904632568,""y"":5.0092692375183105},{""x"":4.599999904632568,""y"":4.151902675628662},{""x"":5.099999904632568,""y"":3.4066951274871826},{""x"":5.599999904632568,""y"":2.3732759952545166},{""x"":6.099999904632568,""y"":1.673728108406067},{""x"":6.599999904632568,""y"":0.48574790358543396},{""x"":7.099999904632568,""y"":0.2783052325248718}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[2.938395863010111, -1.4658480661392117, 5.462702751996584, 0.3473139023615039],""points"":[{""x"":0.10000000149011612,""y"":0.4941710829734802},{""x"":0.6000000238418579,""y"":0.15323974192142487},{""x"":1.100000023841858,""y"":0.46373432874679565},{""x"":1.600000023841858,""y"":0.3370431363582611},{""x"":2.0999999046325684,""y"":0.5179030299186707},{""x"":2.5999999046325684,""y"":0.27899765968322754},{""x"":3.0999999046325684,""y"":0.22075064480304718},{""x"":3.5999999046325684,""y"":0.5789918899536133},{""x"":4.099999904632568,""y"":0.21169911324977875},{""x"":4.599999904632568,""y"":0.27857646346092224},{""x"":5.099999904632568,""y"":1.0906332731246948},{""x"":5.599999904632568,""y"":1.8520300388336182},{""x"":6.099999904632568,""y"":2.7177059650421143},{""x"":6.599999904632568,""y"":2.8680918216705322},{""x"":7.099999904632568,""y"":3.2413077354431152}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCanada,MMELVLKTIIGPIVVGVVLRIVDKWLNKDK,CC(C(=O)NCCS)c1cccc(c1)C(=O)c2ccccc2,1480017,36.26095962524414,99515,30-56 WHITESTONE EXPY,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,4,4,1IAN,4,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[0.8597390975430008, 1.0957625732481946, 5.260537067987958, 0.07974187998177736],""points"":[{""x"":0.10000000149011612,""y"":0.8190152645111084},{""x"":0.6000000238418579,""y"":0.8421689867973328},{""x"":1.100000023841858,""y"":0.8740922212600708},{""x"":1.600000023841858,""y"":0.8924275040626526},{""x"":2.0999999046325684,""y"":0.8249067664146423},{""x"":2.5999999046325684,""y"":0.9327669143676758},{""x"":3.0999999046325684,""y"":0.8522974252700806},{""x"":3.5999999046325684,""y"":0.8174492716789246},{""x"":4.099999904632568,""y"":0.8394647240638733},{""x"":4.599999904632568,""y"":0.7139387726783752},{""x"":5.099999904632568,""y"":0.5561167597770691},{""x"":5.599999904632568,""y"":0.3276226818561554},{""x"":6.099999904632568,""y"":0.12479474395513535},{""x"":6.599999904632568,""y"":0.13006797432899475},{""x"":7.099999904632568,""y"":0.059702079743146896}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.760930219582546, 1.6591793293833013, 4.667155929720851, 0.7858109544121652],""points"":[{""x"":0.10000000149011612,""y"":6.156993389129639},{""x"":0.6000000238418579,""y"":5.236701965332031},{""x"":1.100000023841858,""y"":6.010560512542725},{""x"":1.600000023841858,""y"":5.495512962341309},{""x"":2.0999999046325684,""y"":6.087770462036133},{""x"":2.5999999046325684,""y"":5.79986572265625},{""x"":3.0999999046325684,""y"":5.597546577453613},{""x"":3.5999999046325684,""y"":5.520902156829834},{""x"":4.099999904632568,""y"":5.360654354095459},{""x"":4.599999904632568,""y"":3.5539746284484863},{""x"":5.099999904632568,""y"":1.577236294746399},{""x"":5.599999904632568,""y"":1.0001264810562134},{""x"":6.099999904632568,""y"":0.9305797815322876},{""x"":6.599999904632568,""y"":0.6033638715744019},{""x"":7.099999904632568,""y"":0.4203685522079468}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nColombia,MDRTDEVSNHTHDKPTLTWFEEIFEEYHSPFHN,FC(F)(F)c1ccc(OC2CCNCC2)cc1,1480029,36.3309440612793,995152050,1 COURT HOUSE SQUARE,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,5,5,4UJ1,5,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[6.4995088314153655, 2.4270351004539914, 5.178659535348579, 0.625653346241577],""points"":[{""x"":0.10000000149011612,""y"":6.496231555938721},{""x"":0.6000000238418579,""y"":6.42543363571167},{""x"":1.100000023841858,""y"":7.040063858032227},{""x"":1.600000023841858,""y"":6.1115403175354},{""x"":2.0999999046325684,""y"":6.680728435516357},{""x"":2.5999999046325684,""y"":6.406774520874023},{""x"":3.0999999046325684,""y"":6.611269474029541},{""x"":3.5999999046325684,""y"":5.889094352722168},{""x"":4.099999904632568,""y"":6.75344705581665},{""x"":4.599999904632568,""y"":6.361435890197754},{""x"":5.099999904632568,""y"":4.1666975021362305},{""x"":5.599999904632568,""y"":1.172118902206421},{""x"":6.099999904632568,""y"":0.801048994064331},{""x"":6.599999904632568,""y"":0.4640021026134491},{""x"":7.099999904632568,""y"":0.0010357667924836278}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[1.4734381347446401, 1.1649805188074196, 4.82958608866421, 0.09500545496710007],""points"":[{""x"":0.10000000149011612,""y"":1.5279096364974976},{""x"":0.6000000238418579,""y"":1.3559974431991577},{""x"":1.100000023841858,""y"":1.5246378183364868},{""x"":1.600000023841858,""y"":1.5567657947540283},{""x"":2.0999999046325684,""y"":1.4114240407943726},{""x"":2.5999999046325684,""y"":1.4045010805130005},{""x"":3.0999999046325684,""y"":1.4769829511642456},{""x"":3.5999999046325684,""y"":1.4875500202178955},{""x"":4.099999904632568,""y"":1.2991987466812134},{""x"":4.599999904632568,""y"":0.922961413860321},{""x"":5.099999904632568,""y"":0.6520044803619385},{""x"":5.599999904632568,""y"":0.15350978076457977},{""x"":6.099999904632568,""y"":0.1078903079032898},{""x"":6.599999904632568,""y"":0.17276449501514435},{""x"":7.099999904632568,""y"":0.14066608250141144}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCosta Rica,MKSTKEEIQTIKTLLKDSRTAKYHKRLQIVL,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCCc3ccccc3,1480018,36.3309440612793,995084218,4041 SOUTHWESTERN BLVD,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,6,6,2BPW,6,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.4833641843311227, -1.8945978742090062, 4.671127708092568, 0.24159861311815153],""points"":[{""x"":0.10000000149011612,""y"":0.0969524160027504},{""x"":0.6000000238418579,""y"":0.028483040630817413},{""x"":1.100000023841858,""y"":0.22087176144123077},{""x"":1.600000023841858,""y"":0.0068915546871721745},{""x"":2.0999999046325684,""y"":0.4305879771709442},{""x"":2.5999999046325684,""y"":0.44774115085601807},{""x"":3.0999999046325684,""y"":0.45346319675445557},{""x"":3.5999999046325684,""y"":0.2370593100786209},{""x"":4.099999904632568,""y"":0.4657953977584839},{""x"":4.599999904632568,""y"":1.155200719833374},{""x"":5.099999904632568,""y"":2.2294070720672607},{""x"":5.599999904632568,""y"":2.4311530590057373},{""x"":6.099999904632568,""y"":2.33846116065979},{""x"":6.599999904632568,""y"":2.608201026916504},{""x"":7.099999904632568,""y"":2.8136143684387207}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.224573521642033, 1.4454033924198528, 5.6014197746076535, 0.2823216054197577],""points"":[{""x"":0.10000000149011612,""y"":4.95027494430542},{""x"":0.6000000238418579,""y"":5.1754679679870605},{""x"":1.100000023841858,""y"":5.276752948760986},{""x"":1.600000023841858,""y"":5.589294910430908},{""x"":2.0999999046325684,""y"":5.616994857788086},{""x"":2.5999999046325684,""y"":5.120813846588135},{""x"":3.0999999046325684,""y"":5.340766906738281},{""x"":3.5999999046325684,""y"":4.876471042633057},{""x"":4.099999904632568,""y"":4.94999361038208},{""x"":4.599999904632568,""y"":5.162564754486084},{""x"":5.099999904632568,""y"":4.399557590484619},{""x"":5.599999904632568,""y"":2.7977969646453857},{""x"":6.099999904632568,""y"":1.0229872465133667},{""x"":6.599999904632568,""y"":0.48275601863861084},{""x"":7.099999904632568,""y"":0.10408931970596313}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nCuba,MHAILRYFIRRLFYHIFYKIYSLISKKHQSLPSDVRQF,COc1ccc2c(c1)c(CC(=O)N3CCCC3C(=O)Oc4ccc(C)cc4OC)c(C)n2C(=O)c5ccc(Cl)cc5,1480019,36.33115768432617,995081928,1227 US HIGHWAY 11,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,7,7,1QBS,7,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[3.320838679713925, -1.2421619987316728, 4.831325425225256, 0.3236011098403072],""points"":[{""x"":0.10000000149011612,""y"":0.3727470338344574},{""x"":0.6000000238418579,""y"":0.12365014106035233},{""x"":1.100000023841858,""y"":0.48422467708587646},{""x"":1.600000023841858,""y"":0.2264465093612671},{""x"":2.0999999046325684,""y"":0.16821794211864471},{""x"":2.5999999046325684,""y"":0.3879014551639557},{""x"":3.0999999046325684,""y"":0.5470244884490967},{""x"":3.5999999046325684,""y"":0.3419053554534912},{""x"":4.099999904632568,""y"":0.7655120491981506},{""x"":4.599999904632568,""y"":1.2346516847610474},{""x"":5.099999904632568,""y"":2.453336715698242},{""x"":5.599999904632568,""y"":2.9565491676330566},{""x"":6.099999904632568,""y"":3.335299491882324},{""x"":6.599999904632568,""y"":3.240290880203247},{""x"":7.099999904632568,""y"":3.1107218265533447}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[3.6401853521511094, 1.26211588875013, 5.399028074402744, 0.5089580830068091],""points"":[{""x"":0.10000000149011612,""y"":3.8585598468780518},{""x"":0.6000000238418579,""y"":3.6077206134796143},{""x"":1.100000023841858,""y"":3.855252265930176},{""x"":1.600000023841858,""y"":3.619039297103882},{""x"":2.0999999046325684,""y"":3.839388370513916},{""x"":2.5999999046325684,""y"":3.335283041000366},{""x"":3.0999999046325684,""y"":3.571141481399536},{""x"":3.5999999046325684,""y"":3.4155046939849854},{""x"":4.099999904632568,""y"":3.7316646575927734},{""x"":4.599999904632568,""y"":3.0680155754089355},{""x"":5.099999904632568,""y"":2.891066551208496},{""x"":5.599999904632568,""y"":1.6022753715515137},{""x"":6.099999904632568,""y"":0.7652576565742493},{""x"":6.599999904632568,""y"":0.6875326037406921},{""x"":7.099999904632568,""y"":0.5828871726989746}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nItaly,MSNFHNEHVMQFYRNNLKTKGVFGRQ,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCO[N+](=O)[O-],1480020,36.33115768432617,99502,"168-46 91ST AVE., 2ND FLR",https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,8,8,1ZP8,8,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[2.293592105923809, 1.3781586549141835, 5.1025898038676605, 0.03493851245291291],""points"":[{""x"":0.10000000149011612,""y"":2.1287283897399902},{""x"":0.6000000238418579,""y"":2.267972230911255},{""x"":1.100000023841858,""y"":2.398442506790161},{""x"":1.600000023841858,""y"":2.5130622386932373},{""x"":2.0999999046325684,""y"":2.3255116939544678},{""x"":2.5999999046325684,""y"":2.127340793609619},{""x"":3.0999999046325684,""y"":2.47259783744812},{""x"":3.5999999046325684,""y"":2.131181478500366},{""x"":4.099999904632568,""y"":2.090421438217163},{""x"":4.599999904632568,""y"":2.02299165725708},{""x"":5.099999904632568,""y"":1.1105059385299683},{""x"":5.599999904632568,""y"":0.4494485855102539},{""x"":6.099999904632568,""y"":0.1375635862350464},{""x"":6.599999904632568,""y"":0.036351121962070465},{""x"":7.099999904632568,""y"":0.1619771122932434}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.953125499439879, 1.2528620255306528, 5.187637440149802, 0.3110348753260886],""points"":[{""x"":0.10000000149011612,""y"":5.6585283279418945},{""x"":0.6000000238418579,""y"":5.911152362823486},{""x"":1.100000023841858,""y"":5.924920082092285},{""x"":1.600000023841858,""y"":5.8469438552856445},{""x"":2.0999999046325684,""y"":5.929472923278809},{""x"":2.5999999046325684,""y"":6.190037727355957},{""x"":3.0999999046325684,""y"":6.236179828643799},{""x"":3.5999999046325684,""y"":6.141019344329834},{""x"":4.099999904632568,""y"":5.295210838317871},{""x"":4.599999904632568,""y"":5.265801906585693},{""x"":5.099999904632568,""y"":3.3722851276397705},{""x"":5.599999904632568,""y"":1.8299226760864258},{""x"":6.099999904632568,""y"":0.32690900564193726},{""x"":6.599999904632568,""y"":0.6274543404579163},{""x"":7.099999904632568,""y"":0.8441857099533081}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nRwanda,MPNSEPASLLELFNSIATQGELVRSLKAGNASK,CC(C)Cc1ccc(cc1)C(C)C(=O)N2CCCC2C(=O)OCCO,1480021,36.33137130737305,995037247,"168-46 91ST AVE., 2ND FLR",https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,9,9,2BDJ,9,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[3.8209972202654474, 1.3779216716448506, 5.299882228439686, 0.06040645519069608],""points"":[{""x"":0.10000000149011612,""y"":3.7821109294891357},{""x"":0.6000000238418579,""y"":3.542433023452759},{""x"":1.100000023841858,""y"":3.7008674144744873},{""x"":1.600000023841858,""y"":3.717301607131958},{""x"":2.0999999046325684,""y"":4.024452209472656},{""x"":2.5999999046325684,""y"":4.013899326324463},{""x"":3.0999999046325684,""y"":3.945094347000122},{""x"":3.5999999046325684,""y"":3.866621971130371},{""x"":4.099999904632568,""y"":3.7461626529693604},{""x"":4.599999904632568,""y"":3.3454740047454834},{""x"":5.099999904632568,""y"":2.61944317817688},{""x"":5.599999904632568,""y"":0.999405026435852},{""x"":6.099999904632568,""y"":0.46259793639183044},{""x"":6.599999904632568,""y"":0.054134611040353775},{""x"":7.099999904632568,""y"":0.05711187422275543}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[5.6318079657726035, 1.8495493770000595, 5.391793312471116, 0.17060707587348442],""points"":[{""x"":0.10000000149011612,""y"":5.458079814910889},{""x"":0.6000000238418579,""y"":5.554427146911621},{""x"":1.100000023841858,""y"":5.799983024597168},{""x"":1.600000023841858,""y"":5.364140033721924},{""x"":2.0999999046325684,""y"":5.864485740661621},{""x"":2.5999999046325684,""y"":5.4509806632995605},{""x"":3.0999999046325684,""y"":5.702574729919434},{""x"":3.5999999046325684,""y"":5.7314534187316895},{""x"":4.099999904632568,""y"":5.5123443603515625},{""x"":4.599999904632568,""y"":5.724395751953125},{""x"":5.099999904632568,""y"":4.354506969451904},{""x"":5.599999904632568,""y"":1.7307666540145874},{""x"":6.099999904632568,""y"":0.6305936574935913},{""x"":6.599999904632568,""y"":0.035183437168598175},{""x"":7.099999904632568,""y"":0.7575169205665588}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\nSwitzerland,IRVVGRYLIEVWKAAGMDMDKVLFLWSSDEI,CN1CCC(CC1)Oc2ccc(cc2)C(F)(F)F,1480028,36.33137130737305,99504,92-11 179TH PLACE,https://datagrok.ai/img/slides/access-db-connect.png,id,ErrorMessage,"COMPND \nATOM \nEND",flag,9,10,1IAN,10,1.23,<chart></chart>,"{""series"":[{""name"":""Run:2023-08-08"",""fitFunction"":""sigmoid"",""fitLineColor"":""#1f77b4"",""pointColor"":""#1f77b4"",""showPoints"":""points"",""parameters"":[1.1190255865097471, 2.3163895161544437, 5.4968866182279195, 0.2035204047289052],""points"":[{""x"":0.10000000149011612,""y"":1.1057683229446411},{""x"":0.6000000238418579,""y"":1.1019697189331055},{""x"":1.100000023841858,""y"":1.0818607807159424},{""x"":1.600000023841858,""y"":1.062997817993164},{""x"":2.0999999046325684,""y"":1.046447515487671},{""x"":2.5999999046325684,""y"":1.1217249631881714},{""x"":3.0999999046325684,""y"":1.2166996002197266},{""x"":3.5999999046325684,""y"":1.215477705001831},{""x"":4.099999904632568,""y"":1.0581893920898438},{""x"":4.599999904632568,""y"":1.1747995615005493},{""x"":5.099999904632568,""y"":1.0181127786636353},{""x"":5.599999904632568,""y"":0.5344523191452026},{""x"":6.099999904632568,""y"":0.2569526433944702},{""x"":6.599999904632568,""y"":0.1912207305431366},{""x"":7.099999904632568,""y"":0.15060538053512573}]},{""name"":""Run:2023-08-08"",""fitLineColor"":""#ffbb78"",""pointColor"":""#ffbb78"",""showPoints"":""points"",""parameters"":[3.1038581025805785, 2.0032224204185245, 5.087602825989163, 0.13277988512492753],""points"":[{""x"":0.10000000149011612,""y"":3.0498509407043457},{""x"":0.6000000238418579,""y"":2.805217742919922},{""x"":1.100000023841858,""y"":3.3415253162384033},{""x"":1.600000023841858,""y"":3.0549843311309814},{""x"":2.0999999046325684,""y"":3.250074863433838},{""x"":2.5999999046325684,""y"":3.0432586669921875},{""x"":3.0999999046325684,""y"":3.265852451324463},{""x"":3.5999999046325684,""y"":2.9475724697113037},{""x"":4.099999904632568,""y"":3.1929898262023926},{""x"":4.599999904632568,""y"":2.7460060119628906},{""x"":5.099999904632568,""y"":1.6175861358642578},{""x"":5.599999904632568,""y"":0.3006608486175537},{""x"":6.099999904632568,""y"":0.3444803059101105},{""x"":6.599999904632568,""y"":0.015537971630692482},{""x"":7.099999904632568,""y"":0.5527358055114746}]}],""chartOptions"":{""xAxisName"":""Conc."",""yAxisName"":""Activity"",""title"":""Dose-Response curves""}}",text,,\n,,,,,,,,,,,,,,,,,,,,,').columns.add(t.Column.fromList(t.TYPE.BYTE_ARRAY,"BinaryImage",Array.from(new Uint8Array(11))));var kn,Hn=function(t,e,n,r){return new(n||(n=Promise))((function(i,s){function o(t){try{u(r.next(t))}catch(t){s(t)}}function a(t){try{u(r.throw(t))}catch(t){s(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(o,a)}u((r=r.apply(t,e||[])).next())}))};async function $n(){await dt((async()=>{const t=await Cr();i.shell.addView(t),["Afcgacsu","Afcgacsu","Afcgacsu"].forEach((async(t,e)=>{await async function(t,e){await function(t){return Hn(this,void 0,void 0,(function*(){yield new Promise((e=>setTimeout(e,t)))}))}(500);const n=document.querySelectorAll(".colored-text-input > textarea")[t];n.value=e;const r=new Event("input");n.dispatchEvent(r)}(e,t)}))}))}function jn(t){const e=St.textInput("","");return{coloredInput:new en(e,t.highlightInvalidSubsequence),codes:t.jsonData.codesToSymbolsDict}}console.log.bind(console),console.info.bind(console),console.warn.bind(console),console.error.bind(console),function(t){t.notNull=function(t,e){if(null==t)throw new Error(`${null==e?"Value":e} not defined`)}}(kn||(kn={})),t.DataFrame.fromColumns([t.Column.fromStrings("col",["val1","val2","val3"])]);var Vn=function(t,e,n,r){return new(n||(n=Promise))((function(i,s){function o(t){try{u(r.next(t))}catch(t){s(t)}}function a(t){try{u(r.throw(t))}catch(t){s(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(o,a)}u((r=r.apply(t,e||[])).next())}))};class qn{constructor(t,e,n=".csv"){this.path=t,this.userStorageName=e,this.ext=n,"/"!==this.path[this.path.length-1]&&(this.path+="/"),"."!==this.ext[0]&&(this.ext="."+this.ext)}getUserSettings(){return Vn(this,void 0,void 0,(function*(){if(this.settings)return this.settings;const t=yield i.dapi.userDataStorage.getValue(this.userStorageName,"Settings",!0),e=t?JSON.parse(t):{excluded:[],explicit:[]};return e.explicit=e.explicit instanceof Array?e.explicit:[],e.excluded=e.excluded instanceof Array?e.excluded:[],this.settings=e}))}setUserSettings(t){return Vn(this,void 0,void 0,(function*(){this.settings=t,yield i.dapi.userDataStorage.postValue(this.userStorageName,"Settings",JSON.stringify(t),!0)}))}getAllAvailable(){return Vn(this,void 0,void 0,(function*(){return(yield i.dapi.files.list(this.path)).map((t=>t.fullPath.replace(`${this.path}`,"")))}))}getActive(){return Vn(this,void 0,void 0,(function*(){const t=yield this.getUserSettings();return t.explicit.length>0?t.explicit:(yield this.getAllAvailable()).filter((e=>!t.excluded.includes(e)))}))}createInput(t,e){const n=St.boolInput(t,e,(e=>this.updateSelectionStatus(t,e)));return n.addOptions(St.button(St.iconFA("trash"),(()=>{St.dialog({title:"Warning"}).add(St.divText(`Delete file '${t}'?`)).onOK((()=>{n.root.remove(),this.availableRemove(t)})).show()}),`Delete ${t}`)),n}getInputs(){return Vn(this,void 0,void 0,(function*(){const t=yield this.getAllAvailable(),e=yield this.getActive(),n=new Array(t.length);for(let r=0;r<t.length;r++){const i=e.includes(t[r]);n[r]=this.createInput(t[r],i)}return n}))}getForm(){return Vn(this,void 0,void 0,(function*(){const t=yield this.getInputs(),e=St.divV(t);return St.divV([e,St.button("ADD",(()=>Vn(this,void 0,void 0,(function*(){let t="";t=yield this.getNewAvailable(),""!==t&&e.append(this.createInput(t,!0).root)}))))])}))}updateSelectionStatus(t,e){return Vn(this,void 0,void 0,(function*(){const n=yield this.getUserSettings();if(!n.excluded.includes(t)!==e){if(e){const e=n.excluded.indexOf(t);e>-1&&n.excluded.splice(e,1)}else n.excluded.push(t);this.setUserSettings(n)}}))}availableRemove(t){return Vn(this,void 0,void 0,(function*(){const e=yield this.getUserSettings(),n=e.excluded.indexOf(t);n>-1&&e.excluded.splice(n,1),yield Promise.all([this.setUserSettings(e),i.dapi.files.delete(this.path+t)]),i.shell.info(`File ${t} successfully deleted`)}))}getNewAvailable(){return Vn(this,void 0,void 0,(function*(){return new Promise(((e,n)=>{t.Utils.openFile({accept:this.ext,open:t=>Vn(this,void 0,void 0,(function*(){const n=t.name,r=yield t.arrayBuffer();yield i.dapi.files.write(this.path+`${t.name}`,new Uint8Array(r)),e(n)}))})}))}))}}const Gn="System:AppData/SequenceTranslator/polytool-rules/",Wn="Polytool",zn="link",Yn="fragmentDuplication",Kn="differentFragments";class Qn extends qn{constructor(t,e,n){super(t,e,n)}}class Jn{constructor(t,e){this.linkages=e,this.monomers=t}static fromHelm(t){const e=t.split("$"),n=e[0].split("|"),r=e[1].split("|"),i=new Array(n.length),s=[];for(let t=0;t<n.length;t++){const e=n[t].indexOf("{"),r=n[t].indexOf("}");i[t]=n[t].slice(e+1,r).split(".")}for(let t=0;t<r.length;t++)if(""!==r[t]&&"V2.0"!==r[t]){const e=r[t].split(","),n=e[0].replace("PEPTIDE","")-1,i=e[1].replace("PEPTIDE","")-1,o=e[2].split("-"),a=o[0].split(":"),u=o[1].split(":");s.push({fChain:n,sChain:i,fMonomer:a[0],sMonomer:u[0],fR:a[1].replace("R",""),sR:u[1].replace("R","")})}return new Jn(i,s)}static fromNotation(t,e){const n=e.heterodimerCode,r=e.homodimerCode,i=[],s=[],o=null!==n?t.split(`(${e.heterodimerCode})`):"";null!==n&&o.length>1?(s.push({fChain:0,sChain:1,fMonomer:1,sMonomer:1,fR:1,sR:1}),i.push(o[1].replaceAll("{","").replaceAll("}","")),i.push(o[2].replaceAll("{","").replaceAll("}",""))):i.push(t);for(let t=0;t<i.length;t++)if(null!==r&&i[t].includes(`(${r})`)){const e=i.length;s.push({fChain:t,sChain:e,fMonomer:1,sMonomer:1,fR:1,sR:1});const n=i[t].replace(`(${r})`,""),o=n.indexOf("{"),a=n.slice(0,o),u=n.replace(a,"").replaceAll("{","").replaceAll("}","");i[t]=a+u,i.push(u)}const a=new Array(i.length);for(let t=0;t<i.length;t++){const n=i[t].split("-"),r=this.getLinkedPositions(n,e.linkRules),[o,u,l,c,h]=this.getAllCycles(e.linkRules,n,r),f=new Array(o.length);for(let t=0;t<o.length;t++)f[t]=`[${o[t]}]`;for(let e=0;e<u.length;e++)s.push({fChain:t,sChain:t,fMonomer:u[e],sMonomer:l[e],fR:c[e],sR:h[e]});a[t]=f}return new Jn(a,s)}getHelmChanged(t,e){let n=0,r=0,i=0;t:for(let e=0;e<this.monomers.length;e++)for(let s=0;s<this.monomers[e].length;s++){if(n==t){r=e,i=s;break t}n++}const s=this.monomers[r][i];this.monomers[r][i]=`[${e}]`;const o=this.getHelm();return this.monomers[r][i]=s,o}getHelm(){let t="";for(let e=0;e<this.monomers.length;e++){e>0&&(t+="|"),t+=`PEPTIDE${e+1}{`;for(let n=0;n<this.monomers[e].length;n++)n>0&&(t+="."),t+=this.monomers[e][n];t+="}"}t+="$";for(let e=0;e<this.linkages.length;e++)e>0&&(t+="|"),t+=`PEPTIDE${this.linkages[e].fChain+1},PEPTIDE${this.linkages[e].sChain+1},`,t+=`${this.linkages[e].fMonomer}:R${this.linkages[e].fR}-`,t+=`${this.linkages[e].sMonomer}:R${this.linkages[e].sR}`;return t+="$$$",t}static getLinkedPositions(t,e){const n=new Array(e.length);for(let r=0;r<e.length;r++){let i=!1,s=!1,o=!1,a=-1,u=-1;const l=`(${e[r].code})`;for(let n=0;n<t.length;n++)if(t[n].includes(l)){if(i){if(o&&t[n]==e[r].secondMonomer+l){s=!0,u=n;break}if(o||t[n]!=e[r].firstMonomer+l)continue;s=!0,u=n;break}if(t[n]==e[r].firstMonomer+l)i=!0,o=!0,a=n;else{if(t[n]!=e[r].secondMonomer+l)continue;i=!0,o=!1,a=n}}n[r]=i&&s?o?[a,u]:[u,a]:[-1,-1]}return n}static getAllCycles(t,e,n){const r=[],i=[],s=[],o=[],a=t.length;for(let u=0;u<a;u++){if(-1==n[u][0])continue;const a=e[n[u][0]],l=e[n[u][1]];e[n[u][0]]=e[n[u][0]].replace(a,t[u].firstSubstitution),e[n[u][1]]=e[n[u][1]].replace(l,t[u].secondSubstitution),r.push(n[u][0]+1),i.push(n[u][1]+1),s.push(t[u].firstLinkingGroup),o.push(t[u].secondLinkingGroup)}return[e,r,i,s,o]}}const Xn="System:AppData/Bio/monomer-libraries/",Zn="PEPTIDE1{[R].[F].[T].[G].[H].[F].[G].[A].[A].[Y].[P].[E].[NH2]}$$$$";class tr{constructor(t,e){this.helmString=Zn,this.helmHelper=t,this.editor=e,this.webEditorHost=null,this.webEditorApp=null,[].push((0,zt.fromEvent)(e.host,"click").subscribe((()=>{this.webEditorHost=St.div(),this.webEditorApp=t.createWebEditorApp(this.webEditorHost,this.getHelmString()),St.dialog({showHeader:!1,showFooter:!0}).add(this.webEditorHost).onOK((()=>{try{const t=this.webEditorApp.canvas.getHelm(!0).replace(/<\/span>/g,"").replace(/<span style='background:#bbf;'>/g,"");e.editor.setHelm(t),this.helmString=t,this.helmSelection=[];const n=this.webEditorApp?.canvas.helm.jsd.m.atoms;for(let t=0;t<n.length;t++)n[t].selected&&this.helmSelection.push(t)}catch(t){}finally{Tt()(this.webEditorHost).empty(),this.webEditorHost=null,this.webEditorApp=null}})).onCancel((()=>{Tt()(this.webEditorHost).empty(),this.webEditorHost=null,this.webEditorApp=null})).show({modal:!0,fullScreen:!0})})))}static async init(){const e=await async function(){const e="Helm",n=t.Func.find({package:e,name:"getHelmHelper"});if(0===n.length)throw new Error(`Package '${e}' must be installed for HelmHelper.`);return(await n[0].prepare().call()).getOutputParamValue()}(),n=e.createHelmWebEditor();return n.host.style.width="200px",n.host.style.height="100px",n.host.style.paddingLeft="40px",n.editor.setHelm(Zn),new tr(e,n)}getHelmString(){return this.helmString}getHelmSelections(){return this.helmSelection}getDiv(){const t=St.divText("Macromolecule",{style:{paddingTop:"43px",color:"var(--grey-4)"}});return St.divH([t,this.editor.host],{style:{paddingLeft:"48px"}})}}const er="No dataframe with macromolecule columns open",nr="No marcomolecule column chosen!",rr="Get HELM",ir="Add HELM column",sr="Chirality engine",or="Poly Tool Conversion",ar="Poly Tool Enumeration",ur="Rules used";async function lr(){const e=i.shell.t.columns.bySemTypeAll(t.SEMTYPE.MACROMOLECULE);if(!e)throw new Error(er);const n=St.columnInput("Column",i.shell.t,e[0],null,{filter:e=>e.semType===t.SEMTYPE.MACROMOLECULE}),r=St.boolInput(rr,!0);St.tooltip.bind(r.root,ir);const s=St.boolInput(sr,!1),o=new Qn(Gn,Wn,".json"),a=St.inlineText([ur]);St.tooltip.bind(a,"Add or specify rules to use");const u=await o.getForm(),l=St.div([n,r,s,a,u]);return St.dialog(or).add(l).onOK((async()=>{const e=t.TaskBarProgressIndicator.create("PolyTool converting");try{const e=n.value;if(!e)return void i.shell.warning(nr);const a=await o.getActive();!async function(e,n,r,s){const o=e.dataFrame,a=await async function(e){const n=new t.FileSource(Gn),r=[],s={homodimerCode:null,heterodimerCode:null,linkRules:r};for(let t=0;t<e.length;t++){const o=await n.readAsText(e[t].replace(Gn,"")),a=JSON.parse(o);for(let t=0;t<a.length;t++)if(void 0!==a[t].type&&void 0!==a[t].code)switch(a[t].type){case zn:{const e=a[t].monomericSubstitution;e.code=a[t].code,r.push(e);break}case Yn:s.homodimerCode&&i.shell.warning("PolyTool: homodimer code is duplicated in rules."),s.homodimerCode=a[t].code;break;case Kn:s.heterodimerCode&&i.shell.warning("PolyTool: heterodimer code is duplicated in rules."),s.heterodimerCode=a[t].code;break;default:i.shell.warning(`PolyTool: Unexpected type - '${a[t]}'.`)}else i.shell.warning("Polytool: rules contain invalid rule")}return s}(r),u=function(t,e){const n=new Array(t.length);for(let r=0;r<t.length;r++){const i=Jn.fromNotation(t[r],e);n[r]=i.getHelm()}return n}(e.toList(),a),l=o.columns.getUnusedName("transformed("+e.name+")"),c=t.Column.fromList("string",l,u);var h;(h=c).setTag("quality",t.SEMTYPE.MACROMOLECULE),h.setTag("aligned","SEQ"),h.setTag("alphabet",S.PT),c.setTag("units",_.HELM);const f=await i.functions.call("Bio:getMolFromHelm",{df:o,helmCol:c,chiralityEngine:s});f.name=o.columns.getUnusedName("molfile("+e.name+")"),f.semType=t.SEMTYPE.MOLECULE,n&&(c.setTag("cell.renderer","helm"),o.columns.add(c)),o.columns.add(f,!0),await i.data.detectSemanticTypes(o)}(e,r.value,a,s.value)}catch(t){!function(t){const e=t instanceof Error?t.message:t.toString(),n=t instanceof Error?t.stack:void 0;i.shell.error(e),yr.logger.error(t.message,void 0,n)}(t)}finally{e.close()}}))}async function cr(){const e=await tr.init(),n=await async function(){const t=await i.functions.call("Bio:getMonomerLibHelper",{});return(await t.getFileManager()).getValidLibraryPaths()}(),r=St.choiceInput("Library to use",null,n);r.input.setAttribute("style","min-width:250px!important;");const s=St.div([e.getDiv(),r.root]);return St.dialog(ar).add(s).onOK((async()=>{try{const n=e.getHelmString(),s=e.getHelmSelections();if(void 0===n||""===n)i.shell.warning("PolyTool: no molecule was provided");else if(void 0===s||s.length<1)i.shell.warning("PolyTool: no selection was provided");else{const e=await async function(t,e,n){const r=await async function(t){const e=await i.functions.call("Bio:getMonomerLibHelper",{});return(await e.readLibrary(Xn,t)).getMonomerSymbolsByType("PEPTIDE")}(n),s=Jn.fromHelm(t),o=e.length*r.length,a=new Array(o);for(let t=0;t<e.length;t++)for(let n=0;n<r.length;n++)a[t*r.length+n]=s.getHelmChanged(e[t],r[n]);return a}(n,s,r.value),o=t.Column.fromStrings("Enumerated",e),a=t.DataFrame.fromColumns([o]);i.shell.addTableView(a)}}catch(t){}})).onCancel((()=>{}))}const hr={symbol:"Short Name",name:"Medium Name",smiles:"SMILES"},fr=[{capGroupSmiles:"[*:1][H]",alternateId:"R1-H",capGroupName:"H",label:"R1"},{capGroupSmiles:"O[*:2]",alternateId:"R2-OH",capGroupName:"OH",label:"R2"},{capGroupSmiles:"[*:3][H]",alternateId:"R3-H",capGroupName:"H",label:"R3"}];class dr{constructor(t){this.rawLib=t}isValid(){return this.rawLib.every((t=>"object"==typeof t&&Object.values(hr).every((e=>e in t&&"string"==typeof t[e]))))}getJsonMonomerLib(){const t=[];return this.rawLib.forEach((e=>{const n=this.prepareMonomer(e);t.push(n)})),t}prepareMonomer(t){const e={...y};Object.entries(hr).forEach((([n,r])=>{const i=t[r];e[n]=i}));let n="smiles";const r=t[hr[n]],i=new pr(r),s=i.getCappedSmiles();return e[n]=s,n="rgroups",e[n]=gr.getRGroups(i.getNumberOfRGroups()),n="molfile",e[n]=new mr(i.getSmilesWithRGroups()).getMolfile(),e}}class pr{constructor(t){let e=0;this.smilesWithRGroups=t.replace(/\[R(\d+)\]/g,((t,n)=>(++e,`[${n}*]`))),this.numberOfRGroups=e}getSmilesWithRGroups(){return this.smilesWithRGroups}getCappedSmiles(){return this.capRGroups()}getNumberOfRGroups(){return this.numberOfRGroups}capRGroups(){let t=this.smilesWithRGroups.replace("[1*]","[H:1]");return t=t.replace("[2*]","[OH:2]"),t.replace("[3*]","[H:3]")}}class gr{constructor(){}static getRGroups(t){return fr.slice(0,t)}}class mr{constructor(t){this.smilesWithRGroups=t}getMolfile(){let e=t.chem.convert(this.smilesWithRGroups,t.chem.Notation.Smiles,t.chem.Notation.MolBlock);return e=this.restoreRGPLine(e),e=this.fixRGroupSymbols(e),e}restoreRGPLine(t){return t.replace("M ISO","M RGP")}fixRGroupSymbols(t){return t.replace(/\bR\b/g,"R#")}}class vr{constructor(e,n){this.fileName=e,this.fileContent=n,this.validateFileType();const r=t.DataFrame.fromCsv(this.fileContent),i=this.toJson(r);this.polyToolMonomerLib=new dr(i),this.validateContent()}async getJson(){return this.polyToolMonomerLib.getJsonMonomerLib()}toJson(t){return Array.from({length:t.rowCount},((e,n)=>t.columns.names().reduce(((e,r)=>(e[r]=t.get(r,n),e)),{})))}validateFileType(){if(!this.fileName.endsWith(".csv"))throw new Error(`File ${this.fileName} is not an CSV file`)}validateContent(){if(!this.polyToolMonomerLib.isValid())throw new Error("Invalid format of CSV monomer lib")}}const yr=new Nt;async function br(){await yr.initLibData();const t=await async function(t){const e={"Mermadesynthesis:merMadeSynthesis":{tabName:"SYNTHESIZE",parameters:jn(t)}},n={};for(const[t,r]of Object.entries(e)){let e;try{e=await i.functions.call(t,r.parameters);const s=new Fn(r.tabName,e);s.initView(),n[r.tabName]=()=>s.getView()}catch(e){console.warn(`Plugin ${t} not loaded, reason:`,e);continue}}return n}(yr);if(!t)throw new Error("External app view factories not loaded");const e=new Un(t,yr);return await e.getAppView()}async function Ar(){return await Lr("Oligo Translator")}async function wr(){return await Lr("Oligo Pattern")}async function Cr(){return await Lr("Oligo Structure")}async function xr(){return await yr.initLibData(),yr}function _r(){const t=yr.monomerLibWrapper.getCodesToWeightsMap();return Object.fromEntries(t)}function Sr(t){const e=yr.createSequenceValidator(t),n=yr.createFormatDetector(t).getFormat();return null!==n&&e.isValidSequence(n)}function Er(t,e){return new dn(t,e,"GCRS").convert()}function Tr(t){return pn(t,!0)}async function Ir(){await async function(){await dt((async()=>{const t=await Ar();i.shell.addView(t)}))}()}async function Nr(){await async function(){await dt((async()=>{const t=await wr();i.shell.addView(t)}))}()}async function Or(){await $n()}async function Mr(t,e,n){return await yr.initLibData(),yr.createFormatConverter(t,e).convertTo(n)}async function Lr(t){await yr.initLibData();const e=function(t,e){switch(t){case"Oligo Translator":return new Dn(e);case"Oligo Pattern":return new Ye(e);case"Oligo Structure":return new Cn(e);default:throw new Error(`Unknown app name: ${t}`)}}(t,yr);return await e.getAppView()}async function Br(){let t;try{t=await lr(),t.show()}catch(t){i.shell.warning("To run PolyTool Conversion, open a dataframe with macromolecules")}}async function Pr(){let t;try{t=await cr(),t.show()}catch(t){i.shell.warning("To run PolyTool Enumeration, sketch the macromolecule and select monomers to vary")}}async function Rr(e,n){var r;(function(e){e.setTag("quality",t.SEMTYPE.MACROMOLECULE),e.setTag("aligned","SEQ"),e.setTag("alphabet",S.PT)})(r=n),r.setTag("units",_.SEPARATOR),r.setTag("separator","-"),await i.data.detectSemanticTypes(e)}async function Dr(t){const n=await t.readAsString(),r=new vr(t.fileName,n),i=await r.getJson(),s=t.fileName.replace(/\.csv$/,".json"),o=JSON.stringify(i,null,2);e().Utils.download(s,o)}})(),sequencetranslator=r})();
|
|
3
3
|
//# sourceMappingURL=package.js.map
|